Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 19

create or replace PACKAGE CSD_REPAIRS_PUB AUTHID CURRENT_USER as

/* $Header: csdpdras.pls 120.27.12020000.5 2015/09/02 23:50:12 takwong ship $


*/
/*#
* This is the public interface for managing a repair order. It allows
* creation of repair order for a service request.
* @rep:scope public
* @rep:product CSD
* @rep:displayname Repair Order
* @rep:lifecycle active
* @rep:category BUSINESS_ENTITY CSD_REPAIR_ORDER
*/

--
-- Package name : CSD_REPAIRS_PUB
-- Purpose : This package contains the public APIs for creating,
-- updating repair orders.
-- History :
-- Version Date Name Description
-- 115.0 11/17/99 pkdas Created.
-- 115.1 12/18/99 pkdas
-- 115.2 01/04/00 pkdas
-- 115.3 01/18/00 pkdas Added DATE_CLOSED to REPLN_Rec_Type
-- 115.4 02/09/00 pkdas Added p_REPAIR_LINE_ID as IN parameter
in the
-- Create_Repairs procedure.
-- Added p_REPAIR_NUMBER as OUT parameter
in the
-- Create_Repairs procedure.
-- 115.5 02/29/00 pkdas Changed the procedure name
-- Create_Repairs -> Create_Repair_Order
-- Update_Repairs -> Update_Repair_Order
-- Added p_validation_level to
Create_Repair_Order and
-- Update_Repair_Order
-- 115.6 11/30/01 travi Added
AUTO_PROCESS_RMA,OBJECT_VERSION_NUMBER and REPAIR_MODE
-- 115.7 01/14/02 travi Added Item_REVISION column
-- 115.11 05/02/02 askumar Added RO_GROUP_ID and RO_TXN_STATUS
-- to REPLN_REC_type for 11.5.7.1
-- development
-- 115.10 04/28/2004 saupadhy Added item supercession_inv_item_id to
repln_rec_type
--
-- 115.23 05/20/2005 vparvath R12 development: adding new api
update_ro_status

TYPE REPLN_Rec_Type IS RECORD(


REPAIR_NUMBER VARCHAR2(30) := FND_API.G_MISS_CHAR,
INCIDENT_ID NUMBER := FND_API.G_MISS_NUM,
INVENTORY_ITEM_ID NUMBER := FND_API.G_MISS_NUM,
CUSTOMER_PRODUCT_ID NUMBER := FND_API.G_MISS_NUM,
UNIT_OF_MEASURE VARCHAR2(3) := FND_API.G_MISS_CHAR,
REPAIR_TYPE_ID NUMBER := FND_API.G_MISS_NUM,
-- RESOURCE_GROUP Added by Vijay 10/28/2004
RESOURCE_GROUP NUMBER := FND_API.G_MISS_NUM, -- swai: bug
7565999, revert change for FP bug#5197546
RESOURCE_ID NUMBER := FND_API.G_MISS_NUM,
PROJECT_ID NUMBER := FND_API.G_MISS_NUM,
TASK_ID NUMBER := FND_API.G_MISS_NUM,
UNIT_NUMBER VARCHAR2(30) := FND_API.G_MISS_CHAR, -- rfieldma,
prj integration
LOT_NUMBER VARCHAR2(30) := FND_API.G_MISS_CHAR, --
bug#20017282
CONTRACT_LINE_ID NUMBER := FND_API.G_MISS_NUM,
AUTO_PROCESS_RMA VARCHAR2(1) := FND_API.G_MISS_CHAR,
REPAIR_MODE VARCHAR2(30) := FND_API.G_MISS_CHAR,
OBJECT_VERSION_NUMBER NUMBER := FND_API.G_MISS_NUM,
ITEM_REVISION VARCHAR2(3) := FND_API.G_MISS_CHAR,
INSTANCE_ID NUMBER := FND_API.G_MISS_NUM,
STATUS VARCHAR2(30) := FND_API.G_MISS_CHAR,
STATUS_REASON_CODE VARCHAR2(30) := FND_API.G_MISS_CHAR,
DATE_CLOSED DATE := FND_API.G_MISS_DATE,
APPROVAL_REQUIRED_FLAG VARCHAR2(1) := FND_API.G_MISS_CHAR,
APPROVAL_STATUS VARCHAR2(30) := FND_API.G_MISS_CHAR,
SERIAL_NUMBER VARCHAR2(30) := FND_API.G_MISS_CHAR,
PROMISE_DATE DATE := FND_API.G_MISS_DATE,
ATTRIBUTE_CATEGORY VARCHAR2(30) := FND_API.G_MISS_CHAR,
ATTRIBUTE1 VARCHAR2(150) := FND_API.G_MISS_CHAR,
ATTRIBUTE2 VARCHAR2(150) := FND_API.G_MISS_CHAR,
ATTRIBUTE3 VARCHAR2(150) := FND_API.G_MISS_CHAR,
ATTRIBUTE4 VARCHAR2(150) := FND_API.G_MISS_CHAR,
ATTRIBUTE5 VARCHAR2(150) := FND_API.G_MISS_CHAR,
ATTRIBUTE6 VARCHAR2(150) := FND_API.G_MISS_CHAR,
ATTRIBUTE7 VARCHAR2(150) := FND_API.G_MISS_CHAR,
ATTRIBUTE8 VARCHAR2(150) := FND_API.G_MISS_CHAR,
ATTRIBUTE9 VARCHAR2(150) := FND_API.G_MISS_CHAR,
ATTRIBUTE10 VARCHAR2(150) := FND_API.G_MISS_CHAR,
ATTRIBUTE11 VARCHAR2(150) := FND_API.G_MISS_CHAR,
ATTRIBUTE12 VARCHAR2(150) := FND_API.G_MISS_CHAR,
ATTRIBUTE13 VARCHAR2(150) := FND_API.G_MISS_CHAR,
ATTRIBUTE14 VARCHAR2(150) := FND_API.G_MISS_CHAR,
ATTRIBUTE15 VARCHAR2(150) := FND_API.G_MISS_CHAR,
QUANTITY NUMBER := FND_API.G_MISS_NUM,
QUANTITY_IN_WIP NUMBER := FND_API.G_MISS_NUM,
QUANTITY_RCVD NUMBER := FND_API.G_MISS_NUM,
QUANTITY_SHIPPED NUMBER := FND_API.G_MISS_NUM,
CURRENCY_CODE VARCHAR2(15) := FND_API.G_MISS_CHAR,
DEFAULT_PO_NUM VARCHAR2(80) := FND_API.G_MISS_CHAR,
REPAIR_GROUP_ID NUMBER := FND_API.G_MISS_NUM,
RO_TXN_STATUS VARCHAR2(30) := FND_API.G_MISS_CHAR,
ORDER_LINE_ID NUMBER := FND_API.G_MISS_NUM,
ORIGINAL_SOURCE_REFERENCE VARCHAR2(30) := FND_API.G_MISS_CHAR,
ORIGINAL_SOURCE_HEADER_ID NUMBER := FND_API.G_MISS_NUM,
ORIGINAL_SOURCE_LINE_ID NUMBER := FND_API.G_MISS_NUM,
PRICE_LIST_HEADER_ID NUMBER := FND_API.G_MISS_NUM,
SUPERCESSION_INV_ITEM_ID NUMBER := FND_API.G_MISS_NUM,
FLOW_STATUS_ID NUMBER := FND_API.G_MISS_NUM,
FLOW_STATUS_CODE VARCHAR2(30) := FND_API.G_MISS_CHAR,
FLOW_STATUS VARCHAR2(80) := FND_API.G_MISS_CHAR,
INVENTORY_ORG_ID NUMBER := FND_API.G_MISS_NUM,
-- swai: bug 4666344 added problem description
PROBLEM_DESCRIPTION VARCHAR(240):= FND_API.G_MISS_CHAR,
RO_PRIORITY_CODE VARCHAR(80):= FND_API.G_MISS_CHAR, -- swai: R12
RESOLVE_BY_DATE DATE := FND_API.G_MISS_DATE, --
rfieldma: 5355051
BULLETIN_CHECK_DATE DATE := FND_API.G_MISS_DATE,
ESCALATION_CODE VARCHAR(30) := FND_API.G_MISS_CHAR,
RO_WARRANTY_STATUS_CODE VARCHAR(30) := FND_API.G_MISS_CHAR,
REPAIR_YIELD_QUANTITY NUMBER := FND_API.G_MISS_NUM, --bug#6692459
ATTRIBUTE16 VARCHAR2(150) := FND_API.G_MISS_CHAR, -- SUBHAT,
DFF CHANGES(bug#7497907)
ATTRIBUTE17 VARCHAR2(150) := FND_API.G_MISS_CHAR,
ATTRIBUTE18 VARCHAR2(150) := FND_API.G_MISS_CHAR,
ATTRIBUTE19 VARCHAR2(150) := FND_API.G_MISS_CHAR,
ATTRIBUTE20 VARCHAR2(150) := FND_API.G_MISS_CHAR,
ATTRIBUTE21 VARCHAR2(150) := FND_API.G_MISS_CHAR,
ATTRIBUTE22 VARCHAR2(150) := FND_API.G_MISS_CHAR,
ATTRIBUTE23 VARCHAR2(150) := FND_API.G_MISS_CHAR,
ATTRIBUTE24 VARCHAR2(150) := FND_API.G_MISS_CHAR,
ATTRIBUTE25 VARCHAR2(150) := FND_API.G_MISS_CHAR,
ATTRIBUTE26 VARCHAR2(150) := FND_API.G_MISS_CHAR,
ATTRIBUTE27 VARCHAR2(150) := FND_API.G_MISS_CHAR,
ATTRIBUTE28 VARCHAR2(150) := FND_API.G_MISS_CHAR,
ATTRIBUTE29 VARCHAR2(150) := FND_API.G_MISS_CHAR,
ATTRIBUTE30 VARCHAR2(150) := FND_API.G_MISS_CHAR,
RETURN_ATTRIBUTE_CATEGORY VARCHAR2(30) := FND_API.G_MISS_CHAR, --
returns management fields. 12.2, subhat
RETURN_ATTRIBUTE1 VARCHAR2(150) := FND_API.G_MISS_CHAR,
RETURN_ATTRIBUTE2 VARCHAR2(150) := FND_API.G_MISS_CHAR,
RETURN_ATTRIBUTE3 VARCHAR2(150) := FND_API.G_MISS_CHAR,
RETURN_ATTRIBUTE4 VARCHAR2(150) := FND_API.G_MISS_CHAR,
RETURN_ATTRIBUTE5 VARCHAR2(150) := FND_API.G_MISS_CHAR,
RETURN_ATTRIBUTE6 VARCHAR2(150) := FND_API.G_MISS_CHAR,
RETURN_ATTRIBUTE7 VARCHAR2(150) := FND_API.G_MISS_CHAR,
RETURN_ATTRIBUTE8 VARCHAR2(150) := FND_API.G_MISS_CHAR,
RETURN_ATTRIBUTE9 VARCHAR2(150) := FND_API.G_MISS_CHAR,
RETURN_ATTRIBUTE10 VARCHAR2(150) := FND_API.G_MISS_CHAR,
RETURN_ATTRIBUTE11 VARCHAR2(150) := FND_API.G_MISS_CHAR,
RETURN_ATTRIBUTE12 VARCHAR2(150) := FND_API.G_MISS_CHAR,
RETURN_ATTRIBUTE13 VARCHAR2(150) := FND_API.G_MISS_CHAR,
RETURN_ATTRIBUTE14 VARCHAR2(150) := FND_API.G_MISS_CHAR,
RETURN_ATTRIBUTE15 VARCHAR2(150) := FND_API.G_MISS_CHAR,
RETURN_ATTRIBUTE16 VARCHAR2(150) := FND_API.G_MISS_CHAR,
RETURN_ATTRIBUTE17 VARCHAR2(150) := FND_API.G_MISS_CHAR,
RETURN_ATTRIBUTE18 VARCHAR2(150) := FND_API.G_MISS_CHAR,
RETURN_ATTRIBUTE19 VARCHAR2(150) := FND_API.G_MISS_CHAR,
RETURN_ATTRIBUTE20 VARCHAR2(150) := FND_API.G_MISS_CHAR,
RETURN_ATTRIBUTE21 VARCHAR2(150) := FND_API.G_MISS_CHAR,
RETURN_ATTRIBUTE22 VARCHAR2(150) := FND_API.G_MISS_CHAR,
RETURN_ATTRIBUTE23 VARCHAR2(150) := FND_API.G_MISS_CHAR,
RETURN_ATTRIBUTE24 VARCHAR2(150) := FND_API.G_MISS_CHAR,
RETURN_ATTRIBUTE25 VARCHAR2(150) := FND_API.G_MISS_CHAR,
RETURN_ATTRIBUTE26 VARCHAR2(150) := FND_API.G_MISS_CHAR,
RETURN_ATTRIBUTE27 VARCHAR2(150) := FND_API.G_MISS_CHAR,
RETURN_ATTRIBUTE28 VARCHAR2(150) := FND_API.G_MISS_CHAR,
RETURN_ATTRIBUTE29 VARCHAR2(150) := FND_API.G_MISS_CHAR,
RETURN_ATTRIBUTE30 VARCHAR2(150) := FND_API.G_MISS_CHAR,
WAYBILL_NO VARCHAR2(30) := FND_API.G_MISS_CHAR,
RETURN_TYPE_ID NUMBER := FND_API.G_MISS_NUM,
PARENT_REPAIR_LINE_ID NUMBER := FND_API.G_MISS_NUM, --
bug#13698799 auto create ro, parent ro
CARRIER_ID NUMBER := FND_API.G_MISS_NUM,
PROCESSOR_ID NUMBER := FND_API.G_MISS_NUM,
DISPOSITION_CODE VARCHAR2(30) := FND_API.G_MISS_CHAR
);
-- bug#12884352
TYPE Repair_Type_Rec_Type IS RECORD(
repair_line_id NUMBER := FND_API.G_MISS_NUM,
from_repair_type_id NUMBER := FND_API.G_MISS_NUM,
to_repair_type_id NUMBER := FND_API.G_MISS_NUM,
common_flow_status_id NUMBER := FND_API.G_MISS_NUM,
reason_code VARCHAR2(30) := FND_API.G_MISS_CHAR,
object_version_number NUMBER := FND_API.G_MISS_NUM
);

--
G_MISS_REPLN_REC REPLN_Rec_Type;
--
TYPE REPLN_Tbl_Type IS TABLE OF REPLN_Rec_Type INDEX BY BINARY_INTEGER;

--
G_MISS_REPLN_TBL REPLN_Tbl_Type;
--
-- *******************************************************
-- API Name: Create_Repair_Order
-- Type : Public
-- Pre-Req : None
-- Parameters:
-- IN
-- p_api_version_number IN NUMBER Required
-- p_init_msg_list IN VARCHAR2 Optional Default =
FND_API.G_FALSE
-- p_commit IN VARCHAR2 Optional Default =
FND_API.G_FALSE
-- p_validation_level IN NUMBER Optional Default =
FND_API.G_VALID_LEVEL_FULL
-- p_repair_line_id IN NUMBER Optional Default =
FND_API.G_MISS_NUM
-- P_REPLN_Rec IN CSD_REPAIRS_PUB.REPLN_Rec_Type Required
-- p_create_default_logistics IN VARCHAR2 Optional Default = N
--
-- OUT:
-- x_return_status OUT VARCHAR2
-- x_msg_count OUT NUMBER
-- x_msg_data OUT VARCHAR2
-- x_repair_line_id OUT NUMBER
-- x_repair_number OUT NUMBER
--
-- Version : Current Version 1.0
-- Initial Version 1.0
--
-- Notes: This API will create a Repair Order. User can pass REPAIR_LINE_ID.
-- If passed, it will be validated
-- for uniqueness and if valid, the same ID will be returned.
-- User can pass REPAIR_NUMBER also. If passed, it will be validated
-- for uniqueness and if valid, the same NUMBER will be returned.
--
/*#
* Creates a new Repair Order for the given Service Request. The Repair Number
* is generated if a unique number is not passed. Returns the Repair Number.
* @param P_Api_Version_Number api version number
* @param P_Init_Msg_List initial the message stack, default to false
* @param P_Commit to decide whether to commit the transaction or not, default
to false
* @param p_validation_level validation level, default to full level
* @param p_repair_line_id repair line id is unique id
* @param P_REPLN_Rec repiar line record
* @param p_create_default_logistics flag to create logistics lines, default to
N
* @param X_REPAIR_LINE_ID repair line id of the created repair order
* @param X_REPAIR_NUMBER repair number of the created repair order which
display on Depot UI
* @param X_Return_Status return status
* @param X_Msg_Count return message count
* @param X_Msg_Data return message data
* @rep:scope public
* @rep:lifecycle active
* @rep:displayname Create Repair Order
*/
PROCEDURE Create_Repair_Order(P_Api_Version_Number IN NUMBER,
P_Init_Msg_List IN VARCHAR2 :=
FND_API.G_FALSE,
P_Commit IN VARCHAR2 :=
FND_API.G_FALSE,
p_validation_level IN NUMBER :=
FND_API.G_VALID_LEVEL_FULL,
p_repair_line_id IN NUMBER :=
FND_API.G_MISS_NUM,
P_REPLN_Rec IN
CSD_REPAIRS_PUB.REPLN_Rec_Type,
p_create_default_logistics IN VARCHAR2 := 'N',
X_REPAIR_LINE_ID OUT NOCOPY NUMBER,
X_REPAIR_NUMBER OUT NOCOPY VARCHAR2,
X_Return_Status OUT NOCOPY VARCHAR2,
X_Msg_Count OUT NOCOPY NUMBER,
X_Msg_Data OUT NOCOPY VARCHAR2);
--
-- *******************************************************
-- API Name: Update_Repair_Order
-- Type : Public
-- Pre-Req : None
-- Parameters:
-- IN
-- p_api_version_number IN NUMBER Required
-- p_init_msg_list IN VARCHAR2 Optional Default =
FND_API.G_FALSE
-- p_commit IN VARCHAR2 Optional Default =
FND_API.G_FALSE
-- p_validation_level IN NUMBER Optional Default =
FND_API.G_VALID_LEVEL_FULL
-- p_repair_line_id IN NUMBER Required
-- P_REPLN_Rec IN CSD_REPAIRS_PUB.REPLN_Rec_Type Required
--
-- OUT:
-- x_return_status OUT VARCHAR2
-- x_msg_count OUT NUMBER
-- x_msg_data OUT VARCHAR2
--
-- Version : Current Version 1.0
-- Initial Version 1.0
--
PROCEDURE Update_Repair_Order(P_Api_Version_Number IN NUMBER,
P_Init_Msg_List IN VARCHAR2 :=
FND_API.G_FALSE,
P_Commit IN VARCHAR2 :=
FND_API.G_FALSE,
p_validation_level IN NUMBER :=
FND_API.G_VALID_LEVEL_FULL,
p_repair_line_id IN NUMBER,
P_REPLN_Rec IN OUT NOCOPY
CSD_REPAIRS_PUB.REPLN_Rec_Type,
X_Return_Status OUT NOCOPY VARCHAR2,
X_Msg_Count OUT NOCOPY NUMBER,
X_Msg_Data OUT NOCOPY VARCHAR2);

-- R12 development changes begin...


TYPE REPAIR_STATUS_REC_TYPE IS RECORD(
repair_line_id NUMBER,
repair_number VARCHAR2(30),
repair_status VARCHAR2(30),
repair_status_id NUMBER,
from_status_id NUMBER,
from_status NUMBER,
repair_state VARCHAR2(30),
reason_code VARCHAR2(30),
comments VARCHAR2(2000),
object_version_number NUMBER);
TYPE STATUS_UPD_CONTROL_REC_TYPE IS RECORD(
check_task_wip VARCHAR2(1));
-- *******************************************************
-- API Name: update_ro_status
-- Type : Public
-- Pre-Req : None
-- Parameters:
-- IN
-- p_api_version IN NUMBER,
-- p_commit IN VARCHAR2,
-- p_init_msg_list IN VARCHAR2,
-- p_validation_level IN NUMBER,
-- p_repair_line_id IN VARCHAR2,
-- p_repair_status IN VARCHAR2,
-- p_reason_code IN VARCHAR2,
-- p_comments IN VARCHAR2,
-- p_check_task_wip IN VARCHAR2,
-- p_object_version_number IN NUMBER
-- OUT
-- x_return_status
-- x_msg_count
-- x_msg_data
-- x_object_version_number
--
-- Version : Current version 1.0
-- Initial Version 1.0
--
-- Description : This API updates the repair status to a given value.
-- It checks for the open tasks/wipjobs based on the input
-- flag p_check_task_wip.
--
--
-- ***********************************************************
/*#
* Updates a repair order status. If the status setup is done so that
* it needs a reason, the reason is mandatory.
*
* @param P_Api_Version api version number
* @param P_Commit to decide whether to commit the transaction or not, default
to false
* @param P_Init_Msg_List initial the message stack, default to false
* @param X_Return_Status return status
* @param X_Msg_Count return message count
* @param X_Msg_Data return message data
* @param P_Repair_status_rec repair order status record.
* @param P_status_upd_control_rec repair order status update control record.
* Determines how the status record is updated, like any checks to be
made etc...
* @param X_OBJECT_VERSION_NUMBER updated object version number.
* @rep:scope public
* @rep:lifecycle active
* @rep:displayname Update Repair Order Status
*/
PROCEDURE UPDATE_RO_STATUS(p_api_version IN NUMBER,
p_commit IN VARCHAR2,
p_init_msg_list IN VARCHAR2,
x_return_status OUT NOCOPY VARCHAR2,
x_msg_count OUT NOCOPY NUMBER,
x_msg_data OUT NOCOPY VARCHAR2,
p_repair_status_rec IN REPAIR_STATUS_REC_TYPE,
p_status_upd_control_rec IN
STATUS_UPD_CONTROL_REC_TYPE,
x_object_version_number OUT NOCOPY NUMBER);

-- R12 development changes End...

-- bug#12884352
PROCEDURE Update_Repair_Type (
p_api_version IN NUMBER,
p_commit IN VARCHAR2 := fnd_api.g_false,
p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
x_return_status OUT NOCOPY VARCHAR2,
x_msg_count OUT NOCOPY NUMBER,
x_msg_data OUT NOCOPY VARCHAR2,
p_repair_type_rec IN CSD_REPAIRS_PUB.Repair_Type_Rec_Type,
x_object_version_number OUT NOCOPY NUMBER
);

--bug#11851465
TYPE LINE_REC_TYPE IS RECORD
(
incident_id NUMBER := null,
repair_line_id NUMBER := null,
repair_estimate_line_id NUMBER := null,
repair_estimate_id NUMBER := null,
inventory_item_id NUMBER := null,
unit_of_measure_code VARCHAR2(3) := null,
quantity NUMBER := null,
currency_code VARCHAR2(15) := null,
account_id NUMBER := null,
party_id NUMBER := null,
bill_to_site_use_id NUMBER := null,
ship_to_site_use_id NUMBER := null,
customer_class VARCHAR2(30) := null,
org_id NUMBER := null,
order_type_id NUMBER := null,
line_type_id NUMBER := null,
line_category_code VARCHAR2(30) := null,
txn_billing_type_id NUMBER := null,
price_list_header_id NUMBER := null,
pricing_context VARCHAR2(30) := null,
pricing_attribute1 VARCHAR2(150):= null,
pricing_attribute2 VARCHAR2(150):= null,
pricing_attribute3 VARCHAR2(150):= null,
pricing_attribute4 VARCHAR2(150):= null,
pricing_attribute5 VARCHAR2(150):= null,
pricing_attribute6 VARCHAR2(150):= null,
pricing_attribute7 VARCHAR2(150):= null,
pricing_attribute8 VARCHAR2(150):= null,
pricing_attribute9 VARCHAR2(150):= null,
pricing_attribute10 VARCHAR2(150):= null,
pricing_attribute11 VARCHAR2(150):= null,
pricing_attribute12 VARCHAR2(150):= null,
pricing_attribute13 VARCHAR2(150):= null,
pricing_attribute14 VARCHAR2(150):= null,
pricing_attribute15 VARCHAR2(150):= null,
pricing_attribute16 VARCHAR2(150):= null,
pricing_attribute17 VARCHAR2(150):= null,
pricing_attribute18 VARCHAR2(150):= null,
pricing_attribute19 VARCHAR2(150):= null,
pricing_attribute20 VARCHAR2(150):= null,
pricing_attribute21 VARCHAR2(150):= null,
pricing_attribute22 VARCHAR2(150):= null,
pricing_attribute23 VARCHAR2(150):= null,
pricing_attribute24 VARCHAR2(150):= null,
pricing_attribute25 VARCHAR2(150):= null,
pricing_attribute26 VARCHAR2(150):= null,
pricing_attribute27 VARCHAR2(150):= null,
pricing_attribute28 VARCHAR2(150):= null,
pricing_attribute29 VARCHAR2(150):= null,
pricing_attribute30 VARCHAR2(150):= null,
pricing_attribute31 VARCHAR2(150):= null,
pricing_attribute32 VARCHAR2(150):= null,
pricing_attribute33 VARCHAR2(150):= null,
pricing_attribute34 VARCHAR2(150):= null,
pricing_attribute35 VARCHAR2(150):= null,
pricing_attribute36 VARCHAR2(150):= null,
pricing_attribute37 VARCHAR2(150):= null,
pricing_attribute38 VARCHAR2(150):= null,
pricing_attribute39 VARCHAR2(150):= null,
pricing_attribute40 VARCHAR2(150):= null,
pricing_attribute41 VARCHAR2(150):= null,
pricing_attribute42 VARCHAR2(150):= null,
pricing_attribute43 VARCHAR2(150):= null,
pricing_attribute44 VARCHAR2(150):= null,
pricing_attribute45 VARCHAR2(150):= null,
pricing_attribute46 VARCHAR2(150):= null,
pricing_attribute47 VARCHAR2(150):= null,
pricing_attribute48 VARCHAR2(150):= null,
pricing_attribute49 VARCHAR2(150):= null,
pricing_attribute50 VARCHAR2(150):= null,
pricing_attribute51 VARCHAR2(150):= null,
pricing_attribute52 VARCHAR2(150):= null,
pricing_attribute53 VARCHAR2(150):= null,
pricing_attribute54 VARCHAR2(150):= null,
pricing_attribute55 VARCHAR2(150):= null,
pricing_attribute56 VARCHAR2(150):= null,
pricing_attribute57 VARCHAR2(150):= null,
pricing_attribute58 VARCHAR2(150):= null,
pricing_attribute59 VARCHAR2(150):= null,
pricing_attribute60 VARCHAR2(150):= null,
pricing_attribute61 VARCHAR2(150):= null,
pricing_attribute62 VARCHAR2(150):= null,
pricing_attribute63 VARCHAR2(150):= null,
pricing_attribute64 VARCHAR2(150):= null,
pricing_attribute65 VARCHAR2(150):= null,
pricing_attribute66 VARCHAR2(150):= null,
pricing_attribute67 VARCHAR2(150):= null,
pricing_attribute68 VARCHAR2(150):= null,
pricing_attribute69 VARCHAR2(150):= null,
pricing_attribute70 VARCHAR2(150):= null,
pricing_attribute71 VARCHAR2(150):= null,
pricing_attribute72 VARCHAR2(150):= null,
pricing_attribute73 VARCHAR2(150):= null,
pricing_attribute74 VARCHAR2(150):= null,
pricing_attribute75 VARCHAR2(150):= null,
pricing_attribute76 VARCHAR2(150):= null,
pricing_attribute77 VARCHAR2(150):= null,
pricing_attribute78 VARCHAR2(150):= null,
pricing_attribute79 VARCHAR2(150):= null,
pricing_attribute80 VARCHAR2(150):= null,
pricing_attribute81 VARCHAR2(150):= null,
pricing_attribute82 VARCHAR2(150):= null,
pricing_attribute83 VARCHAR2(150):= null,
pricing_attribute84 VARCHAR2(150):= null,
pricing_attribute85 VARCHAR2(150):= null,
pricing_attribute86 VARCHAR2(150):= null,
pricing_attribute87 VARCHAR2(150):= null,
pricing_attribute88 VARCHAR2(150):= null,
pricing_attribute89 VARCHAR2(150):= null,
pricing_attribute90 VARCHAR2(150):= null,
pricing_attribute91 VARCHAR2(150):= null,
pricing_attribute92 VARCHAR2(150):= null,
pricing_attribute93 VARCHAR2(150):= null,
pricing_attribute94 VARCHAR2(150):= null,
pricing_attribute95 VARCHAR2(150):= null,
pricing_attribute96 VARCHAR2(150):= null,
pricing_attribute97 VARCHAR2(150):= null,
pricing_attribute98 VARCHAR2(150):= null,
pricing_attribute99 VARCHAR2(150):= null,
pricing_attribute100 VARCHAR2(150):= null
);

--Global Variables for Attribute Mapping during Pricing


G_LINE LINE_REC_TYPE;

--bug#11851465

End CSD_REPAIRS_PUB;
create or replace PACKAGE BODY CSD_REPAIRS_PUB as
/* $Header: csdpdrab.pls 120.15 2011/12/02 06:46:56 vicli ship $ */
/*#
* This is the public interface for the Depot Repair API. It allows
* execution of various Depot Repair APIs.
* @rep:scope public
* @rep:product CSD
* @rep:displayname Depot Repair APIs
* @rep:lifecycle active
* @rep:category BUSINESS_ENTITY CSD_REPAIR_ORDER
*/
--
-- Package name : CSD_REPAIRS_PUB
-- Purpose : This package contains the public APIs for creating
-- and updating repair orders.
-- History :
-- Version Date Name Description
-- 115.0 11/17/99 pkdas Created.
-- 115.1 12/18/99 pkdas
-- 115.2 01/04/00 pkdas
-- 115.3 02/09/00 pkdas Added p_REPAIR_LINE_ID as IN parameter
in the
-- Create_Repairs procedure.
-- Added p_REPAIR_NUMBER as OUT parameter
in the
-- Create_Repairs procedure.
-- 115.4 02/29/00 pkdas Changed the procedure name
-- Create_Repairs -> Create_Repair_Order
-- Update_Repairs -> Update_Repair_Order
-- Added p_validation_level to
Create_Repair_Order and
-- Update_Repair_Order
--
-- NOTE :
--
G_PKG_NAME CONSTANT VARCHAR2(30) := 'CSD_REPAIRS_PUB';
G_FILE_NAME CONSTANT VARCHAR2(12) := 'csdpdrab.pls';
g_debug NUMBER := csd_gen_utility_pvt.g_debug_level;
--
/*#
* Create Repair Order
* @param P_Api_Version_Number api version number
* @param P_Init_Msg_List initial the message stack, default to false
* @param P_Commit to decide whether to commit the transaction or not, default
to false
* @param p_validation_level validation level, default to full level
* @param p_repair_line_id repair line id is unique id
* @param P_REPLN_Rec repiar line record
* @param p_create_default_logistics flag to create logistics lines, default to
N
* @param X_REPAIR_LINE_ID repair line id of the created repair order
* @param X_REPAIR_NUMBER repair number of the created repair order which
display on Depot UI
* @param X_Return_Status return status
* @param X_Msg_Count return message count
* @param X_Msg_Data return message data
* @rep:scope public
* @rep:lifecycle active
* @rep:displayname Create Repair Order
*/
PROCEDURE Create_Repair_Order(P_Api_Version_Number IN NUMBER,
P_Init_Msg_List IN VARCHAR2 :=
FND_API.G_FALSE,
P_Commit IN VARCHAR2 :=
FND_API.G_FALSE,
p_validation_level IN NUMBER :=
FND_API.G_VALID_LEVEL_FULL,
P_REPAIR_LINE_ID IN NUMBER :=
FND_API.G_MISS_NUM,
P_REPLN_Rec IN
CSD_REPAIRS_PUB.REPLN_Rec_Type,
p_create_default_logistics IN VARCHAR2 := 'N',
X_REPAIR_LINE_ID OUT NOCOPY NUMBER,
X_REPAIR_NUMBER OUT NOCOPY VARCHAR2,
X_Return_Status OUT NOCOPY VARCHAR2,
X_Msg_Count OUT NOCOPY NUMBER,
X_Msg_Data OUT NOCOPY VARCHAR2) IS
--
l_api_name CONSTANT VARCHAR2(30) := 'Create_Repair_Order';
l_api_version_number CONSTANT NUMBER := 1.0;
--

-- swai: 12.1.1 bug 7176940 service bulletin check


l_ro_sc_ids_tbl CSD_RO_BULLETINS_PVT.CSD_RO_SC_IDS_TBL_TYPE;
l_return_status VARCHAR2 (1) ;
l_msg_count NUMBER;
l_msg_data VARCHAR2 (2000);
BEGIN
--
-- Standard Start of API savepoint
SAVEPOINT CREATE_REPAIR_ORDER_PUB;
-- Standard call to check for call compatibility.
IF NOT FND_API.Compatible_API_Call(l_api_version_number,
p_api_version_number,
l_api_name,
G_PKG_NAME)
THEN
RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
END IF;
-- Initialize message list if p_init_msg_list is set to TRUE.
IF FND_API.to_Boolean(p_init_msg_list)
THEN
FND_MSG_PUB.initialize;
END IF;
-- Initialize API return status to success
x_return_status := FND_API.G_RET_STS_SUCCESS;
--
-- API body
--
CSD_REPAIRS_PVT.Create_Repair_Order(P_Api_Version_Number => 1.0,
P_Init_Msg_List =>
p_init_msg_list,
P_Commit => p_commit,
P_Validation_Level =>
p_validation_level,
P_REPAIR_LINE_ID =>
p_REPAIR_LINE_ID,
P_REPLN_Rec => p_REPLN_Rec,
X_REPAIR_LINE_ID =>
x_REPAIR_LINE_ID,
X_REPAIR_NUMBER =>
x_REPAIR_NUMBER,
X_Return_Status =>
x_return_status,
X_Msg_Count => x_msg_count,
X_Msg_Data => x_msg_data);
--
-- Check return status from the above procedure call
IF not (x_return_status = FND_API.G_RET_STS_SUCCESS)
then
ROLLBACK TO CREATE_REPAIR_ORDER_PUB;
return;
END IF;

IF (P_CREATE_DEFAULT_LOGISTICS = 'Y') THEN

CSD_LOGISTICS_PVT.Create_Default_Logistics
( p_api_version => P_Api_Version_Number,
p_commit => P_Commit,
p_init_msg_list => P_Init_Msg_List,
p_validation_level => p_validation_level,
p_repair_line_id => X_REPAIR_LINE_ID, -- swai: bug 7654143
x_return_status => X_Return_Status,
x_msg_count => X_Msg_Count,
x_msg_data => X_Msg_Data
);

IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN


RAISE FND_API.G_EXC_ERROR;
END IF;

END IF;

-- swai: 12.1.1 bug 7176940 - check service bulletins after RO creation


IF (nvl(fnd_profile.value('CSD_AUTO_CHECK_BULLETINS'),'N') = 'Y') THEN
CSD_RO_BULLETINS_PVT.LINK_BULLETINS_TO_RO(
p_api_version_number => 1.0,
p_init_msg_list => Fnd_Api.G_FALSE,
p_commit => Fnd_Api.G_FALSE,
p_validation_level => Fnd_Api.G_VALID_LEVEL_FULL,
p_repair_line_id => x_repair_line_id,
px_ro_sc_ids_tbl => l_ro_sc_ids_tbl,
x_return_status => l_return_status,
x_msg_count => l_msg_count,
x_msg_data => l_msg_data
);
-- ignore return status for now.
END IF;

--
-- End of API body.
--
-- Standard check for p_commit
IF FND_API.to_Boolean(p_commit)
THEN
COMMIT WORK;
END IF;
-- Standard call to get message count and if count is 1, get message info.
FND_MSG_PUB.Count_And_Get(p_count => x_msg_count,
p_data => x_msg_data);
--
EXCEPTION
WHEN FND_API.G_EXC_ERROR THEN
JTF_PLSQL_API.HANDLE_EXCEPTIONS(P_API_NAME => L_API_NAME,
P_PKG_NAME => G_PKG_NAME,
P_EXCEPTION_LEVEL =>
FND_MSG_PUB.G_MSG_LVL_ERROR,
P_PACKAGE_TYPE =>
JTF_PLSQL_API.G_PUB,
X_MSG_COUNT => X_MSG_COUNT,
X_MSG_DATA => X_MSG_DATA,
X_RETURN_STATUS => X_RETURN_STATUS);
-- RAISE;
--
WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
JTF_PLSQL_API.HANDLE_EXCEPTIONS(P_API_NAME => L_API_NAME,
P_PKG_NAME => G_PKG_NAME,
P_EXCEPTION_LEVEL =>
FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR,
P_PACKAGE_TYPE =>
JTF_PLSQL_API.G_PUB,
X_MSG_COUNT => X_MSG_COUNT,
X_MSG_DATA => X_MSG_DATA,
X_RETURN_STATUS => X_RETURN_STATUS);
-- RAISE;
--
WHEN OTHERS THEN
JTF_PLSQL_API.HANDLE_EXCEPTIONS(P_API_NAME => L_API_NAME,
P_PKG_NAME => G_PKG_NAME,
P_EXCEPTION_LEVEL =>
JTF_PLSQL_API.G_EXC_OTHERS,
P_PACKAGE_TYPE =>
JTF_PLSQL_API.G_PUB,
X_MSG_COUNT => X_MSG_COUNT,
X_MSG_DATA => X_MSG_DATA,
X_RETURN_STATUS => X_RETURN_STATUS);
-- RAISE;
--
End Create_Repair_Order;

PROCEDURE Update_Repair_Order(P_Api_Version_Number IN NUMBER,


P_Init_Msg_List IN VARCHAR2 :=
FND_API.G_FALSE,
P_Commit IN VARCHAR2 :=
FND_API.G_FALSE,
p_validation_level IN NUMBER :=
FND_API.G_VALID_LEVEL_FULL,
p_REPAIR_LINE_ID IN NUMBER,
P_REPLN_Rec IN OUT NOCOPY
CSD_REPAIRS_PUB.REPLN_Rec_Type,
X_Return_Status OUT NOCOPY VARCHAR2,
X_Msg_Count OUT NOCOPY NUMBER,
X_Msg_Data OUT NOCOPY VARCHAR2) IS
--
l_api_name CONSTANT VARCHAR2(30) := 'Update_Repair_Order';
l_api_version_number CONSTANT NUMBER := 1.0;
--
BEGIN
--
-- Standard Start of API savepoint
SAVEPOINT UPDATE_REPAIR_ORDER_PUB;
-- Standard call to check for call compatibility.
IF NOT FND_API.Compatible_API_Call(l_api_version_number,
p_api_version_number,
l_api_name,
G_PKG_NAME)
THEN
RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
END IF;
-- Initialize message list if p_init_msg_list is set to TRUE.
IF FND_API.to_Boolean(p_init_msg_list)
THEN
FND_MSG_PUB.initialize;
END IF;
-- Initialize API return status to SUCCESS
x_return_status := FND_API.G_RET_STS_SUCCESS;
--
-- API body
--
CSD_repairs_PVT.Update_Repair_Order(P_Api_Version_Number => 1.0,
P_Init_Msg_List =>
p_init_msg_list,
P_Commit => p_commit,
P_Validation_Level =>
p_validation_level,
p_REPAIR_LINE_ID =>
p_repair_line_id,
P_REPLN_Rec => p_REPLN_Rec,
X_Return_Status =>
x_return_status,
X_Msg_Count => x_msg_count,
X_Msg_Data => x_msg_data);
--
-- Check return status from the above procedure call
IF not (x_return_status = FND_API.G_RET_STS_SUCCESS)
then
ROLLBACK TO UPDATE_REPAIR_ORDER_PUB;
return;
END IF;
--
-- End of API body.
--
-- Standard check for p_commit
IF FND_API.to_Boolean(p_commit)
THEN
COMMIT WORK;
END IF;
-- Standard call to get message count and if count is 1, get message info.
FND_MSG_PUB.Count_And_Get(p_count => x_msg_count,
p_data => x_msg_data);
--
EXCEPTION
WHEN FND_API.G_EXC_ERROR THEN
JTF_PLSQL_API.HANDLE_EXCEPTIONS(P_API_NAME => L_API_NAME,
P_PKG_NAME => G_PKG_NAME,
P_EXCEPTION_LEVEL =>
FND_MSG_PUB.G_MSG_LVL_ERROR,
P_PACKAGE_TYPE =>
JTF_PLSQL_API.G_PUB,
X_MSG_COUNT => X_MSG_COUNT,
X_MSG_DATA => X_MSG_DATA,
X_RETURN_STATUS => X_RETURN_STATUS);
-- RAISE;
--
WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
JTF_PLSQL_API.HANDLE_EXCEPTIONS(P_API_NAME => L_API_NAME,
P_PKG_NAME => G_PKG_NAME,
P_EXCEPTION_LEVEL =>
FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR,
P_PACKAGE_TYPE =>
JTF_PLSQL_API.G_PUB,
X_MSG_COUNT => X_MSG_COUNT,
X_MSG_DATA => X_MSG_DATA,
X_RETURN_STATUS => X_RETURN_STATUS);
-- RAISE;
--
WHEN OTHERS THEN
JTF_PLSQL_API.HANDLE_EXCEPTIONS(P_API_NAME => L_API_NAME,
P_PKG_NAME => G_PKG_NAME,
P_EXCEPTION_LEVEL =>
JTF_PLSQL_API.G_EXC_OTHERS,
P_PACKAGE_TYPE =>
JTF_PLSQL_API.G_PUB,
X_MSG_COUNT => X_MSG_COUNT,
X_MSG_DATA => X_MSG_DATA,
X_RETURN_STATUS => X_RETURN_STATUS);
-- RAISE;
End Update_Repair_Order;

-- bug#12884352
PROCEDURE Update_Repair_Type (
p_api_version IN NUMBER,
p_commit IN VARCHAR2 := fnd_api.g_false,
p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
x_return_status OUT NOCOPY VARCHAR2,
x_msg_count OUT NOCOPY NUMBER,
x_msg_data OUT NOCOPY VARCHAR2,
p_repair_type_rec IN CSD_REPAIRS_PUB.Repair_Type_Rec_Type,
x_object_version_number OUT NOCOPY NUMBER
) IS

--
l_api_name CONSTANT VARCHAR2(30) := 'Update_Repair_Type';
l_api_version_number CONSTANT NUMBER := 1.0;
--
BEGIN
--
-- Standard Start of API savepoint
SAVEPOINT UPDATE_REPAIR_TYPE_PUB;
-- Standard call to check for call compatibility.
IF NOT FND_API.Compatible_API_Call(l_api_version_number,
p_api_version,
l_api_name,
G_PKG_NAME)
THEN
RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
END IF;
-- Initialize message list if p_init_msg_list is set to TRUE.
IF FND_API.to_Boolean(p_init_msg_list)
THEN
FND_MSG_PUB.initialize;
END IF;
-- Initialize API return status to success
x_return_status := FND_API.G_RET_STS_SUCCESS;
--
-- API body
--
CSD_REPAIRS_PVT.UPDATE_REPAIR_TYPE(P_Api_Version =>
p_api_version,
p_commit =>
CSD_PROCESS_UTIL.g_false,
p_init_msg_list =>
CSD_PROCESS_UTIL.g_false,
p_validation_level =>
p_validation_level,
x_return_status => x_return_status,
x_msg_count => x_msg_count,
x_msg_data => x_msg_data,
p_repair_line_id =>
p_repair_type_rec.repair_line_id,
p_from_repair_type_id =>
p_repair_type_rec.from_repair_type_id,
p_to_repair_type_id =>
p_repair_type_rec.to_repair_type_id,
p_common_flow_status_id =>
p_repair_type_rec.common_flow_status_id,
p_reason_code =>
p_repair_type_rec.reason_code,
p_object_version_number =>
p_repair_type_rec.object_version_number,
x_object_version_number =>
x_object_version_number
);

--
-- Check return status from the above procedure call
IF not (x_return_status = FND_API.G_RET_STS_SUCCESS)
then
ROLLBACK TO UPDATE_REPAIR_TYPE_PUB;
return;
END IF;
--
-- End of API body.
--
-- Standard check for p_commit
IF FND_API.to_Boolean(p_commit)
THEN
COMMIT WORK;
END IF;
-- Standard call to get message count and if count is 1, get message info.
FND_MSG_PUB.Count_And_Get(p_count => x_msg_count,
p_data => x_msg_data);
--
EXCEPTION
WHEN Fnd_Api.G_EXC_ERROR THEN
x_return_status := Fnd_Api.G_RET_STS_ERROR;
ROLLBACK TO UPDATE_REPAIR_TYPE_PUB;
Fnd_Msg_Pub.Count_And_Get(p_count => x_msg_count,
p_data => x_msg_data);
IF (Fnd_Log.level_error >= Fnd_Log.g_current_runtime_level)
THEN
Fnd_Log.STRING(Fnd_Log.level_error,
'csd.plsql.CSD_REPAIRS_PUB.Update_Repair_Type',
'EXC_ERROR[' || x_msg_data || ']');
END IF;

WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN


x_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
ROLLBACK TO UPDATE_REPAIR_TYPE_PUB;
Fnd_Msg_Pub.Count_And_Get(p_count => x_msg_count,
p_data => x_msg_data);
IF (Fnd_Log.level_exception >= Fnd_Log.g_current_runtime_level)
THEN
Fnd_Log.STRING(Fnd_Log.level_exception,
'csd.plsql.CSD_REPAIRS_PUB.Update_Repair_Type',
'EXC_UNEXP_ERROR[' || x_msg_data || ']');
END IF;
WHEN OTHERS THEN
x_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
Rollback TO UPDATE_REPAIR_TYPE_PUB;
IF Fnd_Msg_Pub.Check_Msg_Level(Fnd_Msg_Pub.G_MSG_LVL_UNEXP_ERROR)
THEN
Fnd_Msg_Pub.Add_Exc_Msg(G_PKG_NAME, l_api_name);
END IF;
Fnd_Msg_Pub.Count_And_Get(p_count => x_msg_count,
p_data => x_msg_data);
IF (Fnd_Log.level_exception >= Fnd_Log.g_current_runtime_level)
THEN
Fnd_Log.STRING(Fnd_Log.level_exception,
'csd.plsql.CSD_REPAIRS_PUB.Update_Repair_Type',
'SQL MEssage[' || SQLERRM || ']');
END IF;

End Update_Repair_Type;

--
-- R12 Development Begin
/*#
* Update Repair Order Status
* @param P_Api_Version api version number
* @param P_Commit to decide whether to commit the transaction or not, default
to false
* @param P_Init_Msg_List initial the message stack, default to false
* @param X_Return_Status return status
* @param X_Msg_Count return message count
* @param X_Msg_Data return message data
* @param P_Repair_status_rec repair status attributes record.
* @param P_status_upd_control_rec repair status record control flags.
* @param X_OBJECT_VERSION_NUMBER
* @rep:scope public
* @rep:lifecycle active
* @rep:displayname Update Repair Order Status
*/
PROCEDURE Update_Ro_Status(P_Api_Version IN NUMBER,
P_Commit IN VARCHAR2,
P_Init_Msg_List IN VARCHAR2,
X_Return_Status OUT NOCOPY VARCHAR2,
X_Msg_Count OUT NOCOPY NUMBER,
X_Msg_Data OUT NOCOPY VARCHAR2,
P_REPAIR_STATUS_Rec IN REPAIR_STATUS_REC_TYPE,
P_STATUS_UPD_CONTROL_REC IN
STATUS_UPD_CONTROL_REC_TYPE,
X_OBJECT_VERSION_NUMBER OUT NOCOPY NUMBER) IS
--
l_api_name CONSTANT VARCHAR2(30) := 'Update_Ro_Status';
l_api_version_number CONSTANT NUMBER := 1.0;
--
BEGIN
--
-- Standard Start of API savepoint
SAVEPOINT UPDATE_RO_STATUS_PUB;
-- Standard call to check for call compatibility.
IF NOT FND_API.Compatible_API_Call(l_api_version_number,
p_api_version,
l_api_name,
G_PKG_NAME)
THEN
RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
END IF;
-- Initialize message list if p_init_msg_list is set to TRUE.
IF FND_API.to_Boolean(p_init_msg_list)
THEN
FND_MSG_PUB.initialize;
END IF;
-- Initialize API return status to success
x_return_status := FND_API.G_RET_STS_SUCCESS;
--
-- API body
--
CSD_REPAIRS_PVT.UPDATE_RO_STATUS(P_Api_Version => p_api_version,
P_Commit => p_commit,
P_Init_Msg_List =>
p_init_msg_list,
P_Validation_Level =>
FND_API.G_VALID_LEVEL_FULL,
X_Return_Status =>
x_return_status,
X_Msg_Count => x_msg_count,
X_Msg_Data => x_msg_data,
P_REPAIR_STATUS_REC =>
p_repair_status_rec,
P_STATUS_CONTROL_REC =>
p_status_upd_control_rec,
X_OBJECT_VERSION_NUMBER =>
x_object_Version_number);
--
-- Check return status from the above procedure call
IF not (x_return_status = FND_API.G_RET_STS_SUCCESS)
then
ROLLBACK TO UPDATE_RO_STATUS_PUB;
return;
END IF;
--
-- End of API body.
--
-- Standard check for p_commit
IF FND_API.to_Boolean(p_commit)
THEN
COMMIT WORK;
END IF;
-- Standard call to get message count and if count is 1, get message info.
FND_MSG_PUB.Count_And_Get(p_count => x_msg_count,
p_data => x_msg_data);
--
EXCEPTION
WHEN Fnd_Api.G_EXC_ERROR THEN
x_return_status := Fnd_Api.G_RET_STS_ERROR;
ROLLBACK TO UPDATE_RO_STATUS_PUB;
Fnd_Msg_Pub.Count_And_Get(p_count => x_msg_count,
p_data => x_msg_data);
IF (Fnd_Log.level_error >= Fnd_Log.g_current_runtime_level)
THEN
Fnd_Log.STRING(Fnd_Log.level_error,
'csd.plsql.CSD_REPAIRS_PUB.Update_ro_status',
'EXC_ERROR[' || x_msg_data || ']');
END IF;

WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN


x_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
ROLLBACK TO UPDATE_RO_STATUS_PUB;
Fnd_Msg_Pub.Count_And_Get(p_count => x_msg_count,
p_data => x_msg_data);
IF (Fnd_Log.level_exception >= Fnd_Log.g_current_runtime_level)
THEN
Fnd_Log.STRING(Fnd_Log.level_exception,
'csd.plsql.CSD_REPAIRS_PUB.Update_ro_status',
'EXC_UNEXP_ERROR[' || x_msg_data || ']');
END IF;
WHEN OTHERS THEN
x_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
Rollback TO UPDATE_RO_STATUS_PUB;
IF Fnd_Msg_Pub.Check_Msg_Level(Fnd_Msg_Pub.G_MSG_LVL_UNEXP_ERROR)
THEN
Fnd_Msg_Pub.Add_Exc_Msg(G_PKG_NAME, l_api_name);
END IF;
Fnd_Msg_Pub.Count_And_Get(p_count => x_msg_count,
p_data => x_msg_data);
IF (Fnd_Log.level_exception >= Fnd_Log.g_current_runtime_level)
THEN
Fnd_Log.STRING(Fnd_Log.level_exception,
'csd.plsql.CSD_REPAIRS_PUB.Update_ro_status',
'SQL MEssage[' || SQLERRM || ']');
END IF;

End Update_ro_status;
-- R12 Development End
End CSD_REPAIRS_PUB;

You might also like