[Home] [Help]
PACKAGE BODY: APPS.CSI_ITEM_INSTANCE_PVT
Source
1 PACKAGE BODY CSI_ITEM_INSTANCE_PVT as
2 /* $Header: csiviib.pls 120.100.12020000.11 2013/04/22 12:27:51 mvaradam ship $ */
3
4 -- ---------------------------------------------------------
5 -- Define global variables
6 -- ---------------------------------------------------------
7
8 G_PKG_NAME CONSTANT VARCHAR2(30):= 'CSI_ITEM_INSTANCE_PVT';
9 G_FILE_NAME CONSTANT VARCHAR2(12) := 'csiviib.pls';
10 g_expire_ext_att_flag VARCHAR2(1) := 'N';
11
12 --Start of: Added for bug 5615169
13
14 /*-------------------------------------------------------------*/
15 /* Procedure name: Build_Inst_Hist_Rec_of_Table */
16 /* Description : This function is used in Explode_Bom to */
17 /* check whether the given component qualifies */
18 /* as a parent or not. */
19 /*-------------------------------------------------------------*/
20
21 PROCEDURE Build_Inst_Hist_Rec_of_Table
22 (
23 p_inst_hist_tbl IN csi_datastructures_pub.instance_history_tbl ,
24 p_inst_hist_rec_tab IN OUT NOCOPY csi_item_instance_grp.instance_history_rec_tab )
25 IS
26 BEGIN
27 FOR i in p_inst_hist_tbl.FIRST .. p_inst_hist_tbl.LAST
28 LOOP
29 p_inst_hist_rec_tab.instance_id(i) := p_inst_hist_tbl(i).instance_id ;
30 p_inst_hist_rec_tab.old_instance_number(i) := p_inst_hist_tbl(i).old_instance_number ;
31 p_inst_hist_rec_tab.new_instance_number(i) := p_inst_hist_tbl(i).new_instance_number ;
32 p_inst_hist_rec_tab.old_external_reference(i) := p_inst_hist_tbl(i).old_external_reference ;
33 p_inst_hist_rec_tab.new_external_reference(i) := p_inst_hist_tbl(i).new_external_reference ;
34 p_inst_hist_rec_tab.old_inventory_item_id(i) := p_inst_hist_tbl(i).old_inventory_item_id ;
35 p_inst_hist_rec_tab.new_inventory_item_id(i) := p_inst_hist_tbl(i).new_inventory_item_id ;
36 p_inst_hist_rec_tab.old_inventory_revision(i) := p_inst_hist_tbl(i).old_inventory_revision ;
37 p_inst_hist_rec_tab.new_inventory_revision(i) := p_inst_hist_tbl(i).new_inventory_revision ;
38 p_inst_hist_rec_tab.old_inv_master_org_id(i) := p_inst_hist_tbl(i).old_inv_master_org_id ;
39 p_inst_hist_rec_tab.new_inv_master_org_id(i) := p_inst_hist_tbl(i).new_inv_master_org_id ;
40 p_inst_hist_rec_tab.old_serial_number(i) := p_inst_hist_tbl(i).old_serial_number ;
41 p_inst_hist_rec_tab.new_serial_number(i) := p_inst_hist_tbl(i).new_serial_number ;
42 p_inst_hist_rec_tab.old_mfg_serial_number_flag(i) := p_inst_hist_tbl(i).old_mfg_serial_number_flag ;
43 p_inst_hist_rec_tab.new_mfg_serial_number_flag(i) := p_inst_hist_tbl(i).new_mfg_serial_number_flag ;
44 p_inst_hist_rec_tab.old_lot_number(i) := p_inst_hist_tbl(i).old_lot_number ;
45 p_inst_hist_rec_tab.new_lot_number(i) := p_inst_hist_tbl(i).new_lot_number ;
46 p_inst_hist_rec_tab.old_quantity(i) := p_inst_hist_tbl(i).old_quantity ;
47 p_inst_hist_rec_tab.new_quantity(i) := p_inst_hist_tbl(i).new_quantity ;
48 p_inst_hist_rec_tab.old_unit_of_measure_name(i) := p_inst_hist_tbl(i).old_unit_of_measure_name ;
49 p_inst_hist_rec_tab.new_unit_of_measure_name(i) := p_inst_hist_tbl(i).new_unit_of_measure_name ;
50 p_inst_hist_rec_tab.old_unit_of_measure(i) := p_inst_hist_tbl(i).old_unit_of_measure ;
51 p_inst_hist_rec_tab.new_unit_of_measure(i) := p_inst_hist_tbl(i).new_unit_of_measure ;
52 p_inst_hist_rec_tab.old_accounting_class(i) := p_inst_hist_tbl(i).old_accounting_class ;
53 p_inst_hist_rec_tab.new_accounting_class(i) := p_inst_hist_tbl(i).new_accounting_class ;
54 p_inst_hist_rec_tab.old_accounting_class_code(i) := p_inst_hist_tbl(i).old_accounting_class_code ;
55 p_inst_hist_rec_tab.new_accounting_class_code(i) := p_inst_hist_tbl(i).new_accounting_class_code ;
56 p_inst_hist_rec_tab.old_instance_condition(i) := p_inst_hist_tbl(i).old_instance_condition ;
57 p_inst_hist_rec_tab.new_instance_condition(i) := p_inst_hist_tbl(i).new_instance_condition ;
58 p_inst_hist_rec_tab.old_instance_condition_id(i) := p_inst_hist_tbl(i).old_instance_condition_id ;
59 p_inst_hist_rec_tab.new_instance_condition_id(i) := p_inst_hist_tbl(i).new_instance_condition_id ;
60 p_inst_hist_rec_tab.old_instance_status(i) := p_inst_hist_tbl(i).old_instance_status ;
61 p_inst_hist_rec_tab.new_instance_status(i) := p_inst_hist_tbl(i).new_instance_status ;
62 p_inst_hist_rec_tab.old_instance_status_id(i) := p_inst_hist_tbl(i).old_instance_status_id ;
63 p_inst_hist_rec_tab.new_instance_status_id(i) := p_inst_hist_tbl(i).new_instance_status_id ;
64 p_inst_hist_rec_tab.old_customer_view_flag(i) := p_inst_hist_tbl(i).old_customer_view_flag ;
65 p_inst_hist_rec_tab.new_customer_view_flag(i) := p_inst_hist_tbl(i).new_customer_view_flag ;
66 p_inst_hist_rec_tab.old_merchant_view_flag(i) := p_inst_hist_tbl(i).old_merchant_view_flag ;
67 p_inst_hist_rec_tab.new_merchant_view_flag(i) := p_inst_hist_tbl(i).new_merchant_view_flag ;
68 p_inst_hist_rec_tab.old_sellable_flag(i) := p_inst_hist_tbl(i).old_sellable_flag ;
69 p_inst_hist_rec_tab.new_sellable_flag(i) := p_inst_hist_tbl(i).new_sellable_flag ;
70 p_inst_hist_rec_tab.old_system_id(i) := p_inst_hist_tbl(i).old_system_id ;
71 p_inst_hist_rec_tab.new_system_id(i) := p_inst_hist_tbl(i).new_system_id ;
72 p_inst_hist_rec_tab.old_system_name(i) := p_inst_hist_tbl(i).old_system_name ;
73 p_inst_hist_rec_tab.new_system_name(i) := p_inst_hist_tbl(i).new_system_name ;
74 p_inst_hist_rec_tab.old_instance_type_code(i) := p_inst_hist_tbl(i).old_instance_type_code ;
75 p_inst_hist_rec_tab.new_instance_type_code(i) := p_inst_hist_tbl(i).new_instance_type_code ;
76 p_inst_hist_rec_tab.old_instance_type_name(i) := p_inst_hist_tbl(i).old_instance_type_name ;
77 p_inst_hist_rec_tab.new_instance_type_name(i) := p_inst_hist_tbl(i).new_instance_type_name ;
78 p_inst_hist_rec_tab.old_active_start_date(i) := p_inst_hist_tbl(i).old_active_start_date ;
79 p_inst_hist_rec_tab.new_active_start_date(i) := p_inst_hist_tbl(i).new_active_start_date ;
80 p_inst_hist_rec_tab.old_active_end_date(i) := p_inst_hist_tbl(i).old_active_end_date ;
81 p_inst_hist_rec_tab.new_active_end_date(i) := p_inst_hist_tbl(i).new_active_end_date ;
82 p_inst_hist_rec_tab.old_location_type_code(i) := p_inst_hist_tbl(i).old_location_type_code ;
83 p_inst_hist_rec_tab.new_location_type_code(i) := p_inst_hist_tbl(i).new_location_type_code ;
84 p_inst_hist_rec_tab.old_location_id(i) := p_inst_hist_tbl(i).old_location_id ;
85 p_inst_hist_rec_tab.new_location_id(i) := p_inst_hist_tbl(i).new_location_id ;
86 p_inst_hist_rec_tab.old_inv_organization_id(i) := p_inst_hist_tbl(i).old_inv_organization_id ;
87 p_inst_hist_rec_tab.new_inv_organization_id(i) := p_inst_hist_tbl(i).new_inv_organization_id ;
88 p_inst_hist_rec_tab.old_inv_organization_name(i) := p_inst_hist_tbl(i).old_inv_organization_name ;
89 p_inst_hist_rec_tab.new_inv_organization_name(i) := p_inst_hist_tbl(i).new_inv_organization_name ;
90 p_inst_hist_rec_tab.old_inv_subinventory_name(i) := p_inst_hist_tbl(i).old_inv_subinventory_name ;
91 p_inst_hist_rec_tab.new_inv_subinventory_name(i) := p_inst_hist_tbl(i).new_inv_subinventory_name ;
92 p_inst_hist_rec_tab.old_inv_locator_id(i) := p_inst_hist_tbl(i).old_inv_locator_id ;
93 p_inst_hist_rec_tab.new_inv_locator_id(i) := p_inst_hist_tbl(i).new_inv_locator_id ;
94 p_inst_hist_rec_tab.old_pa_project_id(i) := p_inst_hist_tbl(i).old_pa_project_id ;
95 p_inst_hist_rec_tab.new_pa_project_id(i) := p_inst_hist_tbl(i).new_pa_project_id ;
96 p_inst_hist_rec_tab.old_pa_project_task_id(i) := p_inst_hist_tbl(i).old_pa_project_task_id ;
97 p_inst_hist_rec_tab.new_pa_project_task_id(i) := p_inst_hist_tbl(i).new_pa_project_task_id ;
98 p_inst_hist_rec_tab.old_pa_project_name(i) := p_inst_hist_tbl(i).old_pa_project_name ;
99 p_inst_hist_rec_tab.new_pa_project_name(i) := p_inst_hist_tbl(i).new_pa_project_name ;
100 p_inst_hist_rec_tab.old_pa_project_number(i) := p_inst_hist_tbl(i).old_pa_project_number ;
101 p_inst_hist_rec_tab.new_pa_project_number(i) := p_inst_hist_tbl(i).new_pa_project_number ;
102 p_inst_hist_rec_tab.old_pa_task_name(i) := p_inst_hist_tbl(i).old_pa_task_name ;
103 p_inst_hist_rec_tab.new_pa_task_name(i) := p_inst_hist_tbl(i).new_pa_task_name ;
104 p_inst_hist_rec_tab.old_pa_task_number(i) := p_inst_hist_tbl(i).old_pa_task_number ;
105 p_inst_hist_rec_tab.new_pa_task_number(i) := p_inst_hist_tbl(i).new_pa_task_number ;
106 p_inst_hist_rec_tab.old_in_transit_order_line_id(i) := p_inst_hist_tbl(i).old_in_transit_order_line_id ;
107 p_inst_hist_rec_tab.new_in_transit_order_line_id(i) := p_inst_hist_tbl(i).new_in_transit_order_line_id ;
108 p_inst_hist_rec_tab.old_in_transit_order_line_num(i) := p_inst_hist_tbl(i).old_in_transit_order_line_num ;
109 p_inst_hist_rec_tab.new_in_transit_order_line_num(i) := p_inst_hist_tbl(i).new_in_transit_order_line_num ;
110 p_inst_hist_rec_tab.old_in_transit_order_number(i) := p_inst_hist_tbl(i).old_in_transit_order_number ;
111 p_inst_hist_rec_tab.new_in_transit_order_number(i) := p_inst_hist_tbl(i).new_in_transit_order_number ;
112 p_inst_hist_rec_tab.old_wip_job_id(i) := p_inst_hist_tbl(i).old_wip_job_id ;
113 p_inst_hist_rec_tab.new_wip_job_id(i) := p_inst_hist_tbl(i).new_wip_job_id ;
114 p_inst_hist_rec_tab.old_wip_entity_name(i) := p_inst_hist_tbl(i).old_wip_entity_name ;
115 p_inst_hist_rec_tab.new_wip_entity_name(i) := p_inst_hist_tbl(i).new_wip_entity_name ;
116 p_inst_hist_rec_tab.old_po_order_line_id(i) := p_inst_hist_tbl(i).old_po_order_line_id ;
117 p_inst_hist_rec_tab.new_po_order_line_id(i) := p_inst_hist_tbl(i).new_po_order_line_id ;
118 p_inst_hist_rec_tab.old_last_oe_order_line_id(i) := p_inst_hist_tbl(i).old_last_oe_order_line_id ;
119 p_inst_hist_rec_tab.new_last_oe_order_line_id(i) := p_inst_hist_tbl(i).new_last_oe_order_line_id ;
120 p_inst_hist_rec_tab.old_last_oe_rma_line_id(i) := p_inst_hist_tbl(i).old_last_oe_rma_line_id ;
121 p_inst_hist_rec_tab.new_last_oe_rma_line_id(i) := p_inst_hist_tbl(i).new_last_oe_rma_line_id ;
122 p_inst_hist_rec_tab.old_last_po_po_line_id(i) := p_inst_hist_tbl(i).old_last_po_po_line_id ;
123 p_inst_hist_rec_tab.new_last_po_po_line_id(i) := p_inst_hist_tbl(i).new_last_po_po_line_id ;
124 p_inst_hist_rec_tab.old_last_oe_po_number(i) := p_inst_hist_tbl(i).old_last_oe_po_number ;
125 p_inst_hist_rec_tab.new_last_oe_po_number(i) := p_inst_hist_tbl(i).new_last_oe_po_number ;
126 p_inst_hist_rec_tab.old_last_wip_job_id(i) := p_inst_hist_tbl(i).old_last_wip_job_id ;
127 p_inst_hist_rec_tab.new_last_wip_job_id(i) := p_inst_hist_tbl(i).new_last_wip_job_id ;
128 p_inst_hist_rec_tab.old_last_pa_project_id(i) := p_inst_hist_tbl(i).old_last_pa_project_id ;
129 p_inst_hist_rec_tab.new_last_pa_project_id(i) := p_inst_hist_tbl(i).new_last_pa_project_id ;
130 p_inst_hist_rec_tab.old_last_pa_task_id(i) := p_inst_hist_tbl(i).old_last_pa_task_id ;
131 p_inst_hist_rec_tab.new_last_pa_task_id(i) := p_inst_hist_tbl(i).new_last_pa_task_id ;
132 p_inst_hist_rec_tab.old_last_oe_agreement_id(i) := p_inst_hist_tbl(i).old_last_oe_agreement_id ;
133 p_inst_hist_rec_tab.new_last_oe_agreement_id(i) := p_inst_hist_tbl(i).new_last_oe_agreement_id ;
134 p_inst_hist_rec_tab.old_install_date(i) := p_inst_hist_tbl(i).old_install_date ;
135 p_inst_hist_rec_tab.new_install_date(i) := p_inst_hist_tbl(i).new_install_date ;
136 p_inst_hist_rec_tab.old_manually_created_flag(i) := p_inst_hist_tbl(i).old_manually_created_flag ;
137 p_inst_hist_rec_tab.new_manually_created_flag(i) := p_inst_hist_tbl(i).new_manually_created_flag ;
138 p_inst_hist_rec_tab.old_return_by_date(i) := p_inst_hist_tbl(i).old_return_by_date ;
139 p_inst_hist_rec_tab.new_return_by_date(i) := p_inst_hist_tbl(i).new_return_by_date ;
140 p_inst_hist_rec_tab.old_actual_return_date(i) := p_inst_hist_tbl(i).old_actual_return_date ;
141 p_inst_hist_rec_tab.new_actual_return_date(i) := p_inst_hist_tbl(i).new_actual_return_date ;
142 p_inst_hist_rec_tab.old_creation_complete_flag(i) := p_inst_hist_tbl(i).old_creation_complete_flag ;
143 p_inst_hist_rec_tab.new_creation_complete_flag(i) := p_inst_hist_tbl(i).new_creation_complete_flag ;
144 p_inst_hist_rec_tab.old_completeness_flag(i) := p_inst_hist_tbl(i).old_completeness_flag ;
145 p_inst_hist_rec_tab.new_completeness_flag(i) := p_inst_hist_tbl(i).new_completeness_flag ;
146 p_inst_hist_rec_tab.old_context(i) := p_inst_hist_tbl(i).old_context ;
147 p_inst_hist_rec_tab.new_context(i) := p_inst_hist_tbl(i).new_context ;
148 p_inst_hist_rec_tab.old_attribute1(i) := p_inst_hist_tbl(i).old_attribute1 ;
149 p_inst_hist_rec_tab.new_attribute1(i) := p_inst_hist_tbl(i).new_attribute1 ;
150 p_inst_hist_rec_tab.old_attribute2(i) := p_inst_hist_tbl(i).old_attribute2 ;
151 p_inst_hist_rec_tab.new_attribute2(i) := p_inst_hist_tbl(i).new_attribute2 ;
152 p_inst_hist_rec_tab.old_attribute3(i) := p_inst_hist_tbl(i).old_attribute3 ;
153 p_inst_hist_rec_tab.new_attribute3(i) := p_inst_hist_tbl(i).new_attribute3 ;
154 p_inst_hist_rec_tab.old_attribute4(i) := p_inst_hist_tbl(i).old_attribute4 ;
155 p_inst_hist_rec_tab.new_attribute4(i) := p_inst_hist_tbl(i).new_attribute4 ;
156 p_inst_hist_rec_tab.old_attribute5(i) := p_inst_hist_tbl(i).old_attribute5 ;
157 p_inst_hist_rec_tab.new_attribute5(i) := p_inst_hist_tbl(i).new_attribute5 ;
158 p_inst_hist_rec_tab.old_attribute6(i) := p_inst_hist_tbl(i).old_attribute6 ;
159 p_inst_hist_rec_tab.new_attribute6(i) := p_inst_hist_tbl(i).new_attribute6 ;
160 p_inst_hist_rec_tab.old_attribute7(i) := p_inst_hist_tbl(i).old_attribute7 ;
161 p_inst_hist_rec_tab.new_attribute7(i) := p_inst_hist_tbl(i).new_attribute7 ;
162 p_inst_hist_rec_tab.old_attribute8(i) := p_inst_hist_tbl(i).old_attribute8 ;
163 p_inst_hist_rec_tab.new_attribute8(i) := p_inst_hist_tbl(i).new_attribute8 ;
164 p_inst_hist_rec_tab.old_attribute9(i) := p_inst_hist_tbl(i).old_attribute9 ;
165 p_inst_hist_rec_tab.new_attribute9(i) := p_inst_hist_tbl(i).new_attribute9 ;
166 p_inst_hist_rec_tab.old_attribute10(i) := p_inst_hist_tbl(i).old_attribute10 ;
167 p_inst_hist_rec_tab.new_attribute10(i) := p_inst_hist_tbl(i).new_attribute10 ;
168 p_inst_hist_rec_tab.old_attribute11(i) := p_inst_hist_tbl(i).old_attribute11 ;
169 p_inst_hist_rec_tab.new_attribute11(i) := p_inst_hist_tbl(i).new_attribute11 ;
170 p_inst_hist_rec_tab.old_attribute12(i) := p_inst_hist_tbl(i).old_attribute12 ;
171 p_inst_hist_rec_tab.new_attribute12(i) := p_inst_hist_tbl(i).new_attribute12 ;
172 p_inst_hist_rec_tab.old_attribute13(i) := p_inst_hist_tbl(i).old_attribute13 ;
173 p_inst_hist_rec_tab.new_attribute13(i) := p_inst_hist_tbl(i).new_attribute13 ;
174 p_inst_hist_rec_tab.old_attribute14(i) := p_inst_hist_tbl(i).old_attribute14 ;
175 p_inst_hist_rec_tab.new_attribute14(i) := p_inst_hist_tbl(i).new_attribute14 ;
176 p_inst_hist_rec_tab.old_attribute15(i) := p_inst_hist_tbl(i).old_attribute15 ;
177 p_inst_hist_rec_tab.new_attribute15(i) := p_inst_hist_tbl(i).new_attribute15 ;
178 p_inst_hist_rec_tab.old_last_txn_line_detail_id(i) := p_inst_hist_tbl(i).old_last_txn_line_detail_id ;
179 p_inst_hist_rec_tab.new_last_txn_line_detail_id(i) := p_inst_hist_tbl(i).new_last_txn_line_detail_id ;
180 p_inst_hist_rec_tab.old_install_location_type_code(i) := p_inst_hist_tbl(i).old_install_location_type_code ;
181 p_inst_hist_rec_tab.new_install_location_type_code(i) := p_inst_hist_tbl(i).new_install_location_type_code ;
182 p_inst_hist_rec_tab.old_install_location_id(i) := p_inst_hist_tbl(i).old_install_location_id ;
183 p_inst_hist_rec_tab.new_install_location_id(i) := p_inst_hist_tbl(i).new_install_location_id ;
184 p_inst_hist_rec_tab.old_instance_usage_code(i) := p_inst_hist_tbl(i).old_instance_usage_code ;
185 p_inst_hist_rec_tab.new_instance_usage_code(i) := p_inst_hist_tbl(i).new_instance_usage_code ;
186 p_inst_hist_rec_tab.old_current_loc_address1(i) := p_inst_hist_tbl(i).old_current_loc_address1 ;
187 p_inst_hist_rec_tab.new_current_loc_address1(i) := p_inst_hist_tbl(i).new_current_loc_address1 ;
188 p_inst_hist_rec_tab.old_current_loc_address2(i) := p_inst_hist_tbl(i).old_current_loc_address2 ;
189 p_inst_hist_rec_tab.new_current_loc_address2(i) := p_inst_hist_tbl(i).new_current_loc_address2 ;
190 p_inst_hist_rec_tab.old_current_loc_address3(i) := p_inst_hist_tbl(i).old_current_loc_address3 ;
191 p_inst_hist_rec_tab.new_current_loc_address3(i) := p_inst_hist_tbl(i).new_current_loc_address3 ;
192 p_inst_hist_rec_tab.old_current_loc_address4(i) := p_inst_hist_tbl(i).old_current_loc_address4 ;
193 p_inst_hist_rec_tab.new_current_loc_address4(i) := p_inst_hist_tbl(i).new_current_loc_address4 ;
194 p_inst_hist_rec_tab.old_current_loc_city(i) := p_inst_hist_tbl(i).old_current_loc_city ;
195 p_inst_hist_rec_tab.new_current_loc_city(i) := p_inst_hist_tbl(i).new_current_loc_city ;
196 p_inst_hist_rec_tab.old_current_loc_postal_code(i) := p_inst_hist_tbl(i).old_current_loc_postal_code ;
197 p_inst_hist_rec_tab.new_current_loc_postal_code(i) := p_inst_hist_tbl(i).new_current_loc_postal_code ;
198 p_inst_hist_rec_tab.old_current_loc_country(i) := p_inst_hist_tbl(i).old_current_loc_country ;
199 p_inst_hist_rec_tab.new_current_loc_country(i) := p_inst_hist_tbl(i).new_current_loc_country ;
200 p_inst_hist_rec_tab.old_sales_order_number(i) := p_inst_hist_tbl(i).old_sales_order_number ;
201 p_inst_hist_rec_tab.new_sales_order_number(i) := p_inst_hist_tbl(i).new_sales_order_number ;
202 p_inst_hist_rec_tab.old_sales_order_line_number(i) := p_inst_hist_tbl(i).old_sales_order_line_number ;
203 p_inst_hist_rec_tab.new_sales_order_line_number(i) := p_inst_hist_tbl(i).new_sales_order_line_number ;
204 p_inst_hist_rec_tab.old_sales_order_date(i) := p_inst_hist_tbl(i).old_sales_order_date ;
205 p_inst_hist_rec_tab.new_sales_order_date(i) := p_inst_hist_tbl(i).new_sales_order_date ;
206 p_inst_hist_rec_tab.old_purchase_order_number(i) := p_inst_hist_tbl(i).old_purchase_order_number ;
207 p_inst_hist_rec_tab.new_purchase_order_number(i) := p_inst_hist_tbl(i).new_purchase_order_number ;
208 p_inst_hist_rec_tab.old_instance_usage_name(i) := p_inst_hist_tbl(i).old_instance_usage_name ;
209 p_inst_hist_rec_tab.new_instance_usage_name(i) := p_inst_hist_tbl(i).new_instance_usage_name ;
210 p_inst_hist_rec_tab.old_current_loc_state(i) := p_inst_hist_tbl(i).old_current_loc_state ;
211 p_inst_hist_rec_tab.new_current_loc_state(i) := p_inst_hist_tbl(i).new_current_loc_state ;
212 p_inst_hist_rec_tab.old_install_loc_address1(i) := p_inst_hist_tbl(i).old_install_loc_address1 ;
213 p_inst_hist_rec_tab.new_install_loc_address1(i) := p_inst_hist_tbl(i).new_install_loc_address1 ;
214 p_inst_hist_rec_tab.old_install_loc_address2(i) := p_inst_hist_tbl(i).old_install_loc_address2 ;
215 p_inst_hist_rec_tab.new_install_loc_address2(i) := p_inst_hist_tbl(i).new_install_loc_address2 ;
216 p_inst_hist_rec_tab.old_install_loc_address3(i) := p_inst_hist_tbl(i).old_install_loc_address3 ;
217 p_inst_hist_rec_tab.new_install_loc_address3(i) := p_inst_hist_tbl(i).new_install_loc_address3 ;
218 p_inst_hist_rec_tab.old_install_loc_address4(i) := p_inst_hist_tbl(i).old_install_loc_address4 ;
219 p_inst_hist_rec_tab.new_install_loc_address4(i) := p_inst_hist_tbl(i).new_install_loc_address4 ;
220 p_inst_hist_rec_tab.old_install_loc_city(i) := p_inst_hist_tbl(i).old_install_loc_city ;
221 p_inst_hist_rec_tab.new_install_loc_city(i) := p_inst_hist_tbl(i).new_install_loc_city ;
222 p_inst_hist_rec_tab.old_install_loc_state(i) := p_inst_hist_tbl(i).old_install_loc_state ;
223 p_inst_hist_rec_tab.new_install_loc_state(i) := p_inst_hist_tbl(i).new_install_loc_state ;
224 p_inst_hist_rec_tab.old_install_loc_postal_code(i) := p_inst_hist_tbl(i).old_install_loc_postal_code ;
225 p_inst_hist_rec_tab.new_install_loc_postal_code(i) := p_inst_hist_tbl(i).new_install_loc_postal_code ;
226 p_inst_hist_rec_tab.old_install_loc_country(i) := p_inst_hist_tbl(i).old_install_loc_country ;
227 p_inst_hist_rec_tab.new_install_loc_country(i) := p_inst_hist_tbl(i).new_install_loc_country ;
228 p_inst_hist_rec_tab.old_config_inst_rev_num(i) := p_inst_hist_tbl(i).old_config_inst_rev_num ;
229 p_inst_hist_rec_tab.new_config_inst_rev_num(i) := p_inst_hist_tbl(i).new_config_inst_rev_num ;
230 p_inst_hist_rec_tab.old_config_valid_status(i) := p_inst_hist_tbl(i).old_config_valid_status ;
231 p_inst_hist_rec_tab.new_config_valid_status(i) := p_inst_hist_tbl(i).new_config_valid_status ;
232 p_inst_hist_rec_tab.old_instance_description(i) := p_inst_hist_tbl(i).old_instance_description ;
233 p_inst_hist_rec_tab.new_instance_description(i) := p_inst_hist_tbl(i).new_instance_description ;
234 p_inst_hist_rec_tab.instance_history_id(i) := p_inst_hist_tbl(i).instance_history_id ;
235 p_inst_hist_rec_tab.transaction_id(i) := p_inst_hist_tbl(i).transaction_id ;
236 p_inst_hist_rec_tab.old_last_vld_organization_id(i) := p_inst_hist_tbl(i).old_last_vld_organization_id ;
237 p_inst_hist_rec_tab.new_last_vld_organization_id(i) := p_inst_hist_tbl(i).new_last_vld_organization_id ;
238 p_inst_hist_rec_tab.old_network_asset_flag(i) := p_inst_hist_tbl(i).old_network_asset_flag ;
239 p_inst_hist_rec_tab.new_network_asset_flag(i) := p_inst_hist_tbl(i).new_network_asset_flag ;
240 p_inst_hist_rec_tab.old_maintainable_flag(i) := p_inst_hist_tbl(i).old_maintainable_flag ;
241 p_inst_hist_rec_tab.new_maintainable_flag(i) := p_inst_hist_tbl(i).new_maintainable_flag ;
242 p_inst_hist_rec_tab.old_pn_location_id(i) := p_inst_hist_tbl(i).old_pn_location_id;
243 p_inst_hist_rec_tab.new_pn_location_id(i) := p_inst_hist_tbl(i).new_pn_location_id;
244 p_inst_hist_rec_tab.old_asset_criticality_code(i) := p_inst_hist_tbl(i).old_asset_criticality_code ;
245 p_inst_hist_rec_tab.new_asset_criticality_code(i) := p_inst_hist_tbl(i).new_asset_criticality_code ;
246 p_inst_hist_rec_tab.old_category_id(i) := p_inst_hist_tbl(i).old_category_id ;
247 p_inst_hist_rec_tab.new_category_id(i) := p_inst_hist_tbl(i).new_category_id ;
248 p_inst_hist_rec_tab.old_equipment_gen_object_id(i) := p_inst_hist_tbl(i).old_equipment_gen_object_id ;
249 p_inst_hist_rec_tab.new_equipment_gen_object_id(i) := p_inst_hist_tbl(i).new_equipment_gen_object_id ;
250 p_inst_hist_rec_tab.old_instantiation_flag(i) := p_inst_hist_tbl(i).old_instantiation_flag ;
251 p_inst_hist_rec_tab.new_instantiation_flag(i) := p_inst_hist_tbl(i).new_instantiation_flag ;
252 p_inst_hist_rec_tab.old_linear_location_id(i) := p_inst_hist_tbl(i).old_linear_location_id;
253 p_inst_hist_rec_tab.new_linear_location_id(i) := p_inst_hist_tbl(i).new_linear_location_id;
254 p_inst_hist_rec_tab.old_operational_log_flag(i) := p_inst_hist_tbl(i).old_operational_log_flag ;
255 p_inst_hist_rec_tab.new_operational_log_flag(i) := p_inst_hist_tbl(i).new_operational_log_flag ;
256 p_inst_hist_rec_tab.old_checkin_status(i) := p_inst_hist_tbl(i).old_checkin_status;
257 p_inst_hist_rec_tab.new_checkin_status(i) := p_inst_hist_tbl(i).new_checkin_status;
258 p_inst_hist_rec_tab.old_supplier_warranty_exp_date(i) := p_inst_hist_tbl(i).old_supplier_warranty_exp_date ;
259 p_inst_hist_rec_tab.new_supplier_warranty_exp_date(i) := p_inst_hist_tbl(i).new_supplier_warranty_exp_date ;
260 p_inst_hist_rec_tab.old_attribute16(i) := p_inst_hist_tbl(i).old_attribute16 ;
261 p_inst_hist_rec_tab.new_attribute16(i) := p_inst_hist_tbl(i).new_attribute16 ;
262 p_inst_hist_rec_tab.old_attribute17(i) := p_inst_hist_tbl(i).old_attribute17 ;
263 p_inst_hist_rec_tab.new_attribute17(i) := p_inst_hist_tbl(i).new_attribute17 ;
264 p_inst_hist_rec_tab.old_attribute18(i) := p_inst_hist_tbl(i).old_attribute18 ;
265 p_inst_hist_rec_tab.new_attribute18(i) := p_inst_hist_tbl(i).new_attribute18 ;
266 p_inst_hist_rec_tab.old_attribute19(i) := p_inst_hist_tbl(i).old_attribute19 ;
267 p_inst_hist_rec_tab.new_attribute19(i) := p_inst_hist_tbl(i).new_attribute19 ;
268 p_inst_hist_rec_tab.old_attribute20(i) := p_inst_hist_tbl(i).old_attribute20 ;
269 p_inst_hist_rec_tab.new_attribute20(i) := p_inst_hist_tbl(i).new_attribute20 ;
270 p_inst_hist_rec_tab.old_attribute21(i) := p_inst_hist_tbl(i).old_attribute21 ;
271 p_inst_hist_rec_tab.new_attribute21(i) := p_inst_hist_tbl(i).new_attribute21 ;
272 p_inst_hist_rec_tab.old_attribute22(i) := p_inst_hist_tbl(i).old_attribute22 ;
273 p_inst_hist_rec_tab.new_attribute22(i) := p_inst_hist_tbl(i).new_attribute22 ;
274 p_inst_hist_rec_tab.old_attribute23(i) := p_inst_hist_tbl(i).old_attribute23 ;
275 p_inst_hist_rec_tab.new_attribute23(i) := p_inst_hist_tbl(i).new_attribute23 ;
276 p_inst_hist_rec_tab.old_attribute24(i) := p_inst_hist_tbl(i).old_attribute24 ;
277 p_inst_hist_rec_tab.new_attribute24(i) := p_inst_hist_tbl(i).new_attribute24 ;
278 p_inst_hist_rec_tab.old_attribute25(i) := p_inst_hist_tbl(i).old_attribute25 ;
279 p_inst_hist_rec_tab.new_attribute25(i) := p_inst_hist_tbl(i).new_attribute25 ;
280 p_inst_hist_rec_tab.old_attribute26(i) := p_inst_hist_tbl(i).old_attribute26 ;
281 p_inst_hist_rec_tab.new_attribute26(i) := p_inst_hist_tbl(i).new_attribute26 ;
282 p_inst_hist_rec_tab.old_attribute27(i) := p_inst_hist_tbl(i).old_attribute27 ;
283 p_inst_hist_rec_tab.new_attribute27(i) := p_inst_hist_tbl(i).new_attribute27 ;
284 p_inst_hist_rec_tab.old_attribute28(i) := p_inst_hist_tbl(i).old_attribute28 ;
285 p_inst_hist_rec_tab.new_attribute28(i) := p_inst_hist_tbl(i).new_attribute28 ;
286 p_inst_hist_rec_tab.old_attribute29(i) := p_inst_hist_tbl(i).old_attribute29 ;
287 p_inst_hist_rec_tab.new_attribute29(i) := p_inst_hist_tbl(i).new_attribute29 ;
288 p_inst_hist_rec_tab.old_attribute30(i) := p_inst_hist_tbl(i).old_attribute30 ;
289 p_inst_hist_rec_tab.new_attribute30(i) := p_inst_hist_tbl(i).new_attribute30 ;
290 p_inst_hist_rec_tab.old_payables_currency_code(i) := p_inst_hist_tbl(i).old_payables_currency_code ;
291 p_inst_hist_rec_tab.new_payables_currency_code(i) := p_inst_hist_tbl(i).new_payables_currency_code ;
292 p_inst_hist_rec_tab.old_purchase_unit_price(i) := p_inst_hist_tbl(i).old_purchase_unit_price ;
293 p_inst_hist_rec_tab.new_purchase_unit_price(i) := p_inst_hist_tbl(i).new_purchase_unit_price ;
294 p_inst_hist_rec_tab.old_purchase_currency_code(i) := p_inst_hist_tbl(i).old_purchase_currency_code ;
295 p_inst_hist_rec_tab.new_purchase_currency_code(i) := p_inst_hist_tbl(i).new_purchase_currency_code ;
296 p_inst_hist_rec_tab.old_payables_unit_price(i) := p_inst_hist_tbl(i).old_payables_unit_price ;
297 p_inst_hist_rec_tab.new_payables_unit_price(i) := p_inst_hist_tbl(i).new_payables_unit_price ;
298 p_inst_hist_rec_tab.old_sales_unit_price(i) := p_inst_hist_tbl(i).old_sales_unit_price ;
299 p_inst_hist_rec_tab.new_sales_unit_price(i) := p_inst_hist_tbl(i).new_sales_unit_price ;
300 p_inst_hist_rec_tab.old_sales_currency_code(i) := p_inst_hist_tbl(i).old_sales_currency_code ;
301 p_inst_hist_rec_tab.new_sales_currency_code(i) := p_inst_hist_tbl(i).new_sales_currency_code ;
302 p_inst_hist_rec_tab.old_operational_status_code(i) := p_inst_hist_tbl(i).old_operational_status_code ;
303 p_inst_hist_rec_tab.new_operational_status_code(i) := p_inst_hist_tbl(i).new_operational_status_code ;
304 p_inst_hist_rec_tab.full_dump_flag(i) := p_inst_hist_tbl(i).full_dump_flag ;
305 END LOOP;
306 END Build_Inst_Hist_Rec_of_Table;
307 --End of: Added for bug 5615169
308
309 /*-------------------------------------------------------------*/
310 /* Function name: Is_Parent */
311 /* Description : This function is used in Explode_Bom to */
312 /* check whether the given component qualifies */
313 /* as a parent or not. */
314 /*-------------------------------------------------------------*/
315 FUNCTION Is_Parent(
316 p_child_sort_order IN VARCHAR2
317 ,p_parent_child_tbl IN csi_item_instance_pvt.parent_child_tbl
318 ) return BOOLEAN IS
319 --
320 l_return_status BOOLEAN := TRUE;
321 --
322 BEGIN
323 IF p_parent_child_tbl.count > 0 THEN
324 l_return_status := FALSE;
325 For par_row in p_parent_child_tbl.FIRST .. p_parent_child_tbl.LAST
326 Loop
327 IF p_parent_child_tbl(par_row).parent_sort_order = p_child_sort_order THEN
328 l_return_status := TRUE;
329 EXIT;
330 END IF;
331 End Loop;
332 --
333 ELSE
334 l_return_status := FALSE;
335 END IF;
336 --
337 return l_return_status;
338 END Is_Parent;
339 --
340 /*-------------------------------------------------------------*/
341 /* Procedure name: Get_parent_sort_order */
342 /* Description : This procedure is used in Explode_Bom to */
343 /* get the immediate trackable parent for any */
344 /* given component. */
345 /*-------------------------------------------------------------*/
346 PROCEDURE Get_parent_sort_order
347 (
348 p_parent_sort_order IN OUT NOCOPY VARCHAR2
349 ,p_parent_child_tbl IN csi_item_instance_pvt.parent_child_tbl
350 ,p_bom_sort_order_tbl IN csi_item_instance_pvt.bom_sort_order_tbl
351 ) IS
352 l_exists_flag VARCHAR2(1) := 'N';
353 l_init_sort_code VARCHAR2(2000);
354 BEGIN
355 l_init_sort_code := Bom_Common_Definitions.get_initial_sort_code;
356 -- Check the passed parent_sort_order exists in ins_tbl.
357 -- This means the parent is trackable and the OUT parent_sort_order is same as IN
358 IF p_parent_sort_order = l_init_sort_code THEN
359 RETURN;
360 END IF;
361 --
362 IF p_bom_sort_order_tbl.count > 0 THEN
363 For ins_row in p_bom_sort_order_tbl.FIRST .. p_bom_sort_order_tbl.LAST
364 Loop
365 IF p_bom_sort_order_tbl(ins_row).child_sort_order = p_parent_sort_order THEN
366 -- Parent is trackable
367 l_exists_flag := 'Y';
368 EXIT;
369 END IF;
370 End Loop;
371 --
372 IF l_exists_flag = 'Y' THEN
373 RETURN;
374 END IF;
375 END IF;
376 --
377 -- Check the next immediate parent
378 For tab_row in p_parent_child_tbl.FIRST .. p_parent_child_tbl.LAST
379 Loop
380 IF p_parent_child_tbl(tab_row).child_sort_order = p_parent_sort_order THEN
381 p_parent_sort_order := p_parent_child_tbl(tab_row).parent_sort_order;
382 EXIT;
383 END IF;
384 End Loop;
385 --
386 -- Call this recursively
387 csi_item_instance_pvt.Get_parent_sort_order
388 (
389 p_parent_sort_order => p_parent_sort_order
390 ,p_parent_child_tbl => p_parent_child_tbl
391 ,p_bom_sort_order_tbl => p_bom_sort_order_tbl
392 );
393 END Get_Parent_Sort_Order;
394 --
395 /*-------------------------------------------------------------*/
396 /* Function name: Has_Trackable_Component */
397 /* Description : This function is used in Explode_Bom to */
398 /* check whether the given sub-assembly has */
399 /* at least one trackable child or not. */
400 /*-------------------------------------------------------------*/
401 FUNCTION Has_Trackable_Component
402 (
403 p_inventory_item_id IN NUMBER
404 ,p_organization_id IN NUMBER
405 ,p_explosion_level IN NUMBER
406 ) RETURN BOOLEAN IS
407 --
408 l_return_status BOOLEAN;
409 l_exists_flag VARCHAR2(1);
410 l_group_id NUMBER;
411 l_err_msg VARCHAR2(2000) := NULL;
412 l_error_code VARCHAR2(30) := NULL;
413 --
414 process_next EXCEPTION;
415 --
416 CURSOR BOM_CSR (p_group_id NUMBER)
417 IS
418 SELECT bet.component_item_id component_item_id
419 ,mp.master_organization_id master_organization_id
420 FROM bom_small_expl_temp bet
421 ,bom_bill_of_materials bom
422 ,mtl_system_items msi
423 ,mtl_system_items msip
424 ,mtl_parameters mp
425 WHERE bet.group_id = p_group_id
426 AND bet.plan_level > 0 -- Ignore Top Most
427 AND bet.component_item_id = msi.inventory_item_id
428 AND bet.organization_id = msi.organization_id
429 AND bet.bill_sequence_id = bom.bill_sequence_id
430 AND bet.extended_quantity > 0
431 AND bom.assembly_item_id = msip.inventory_item_id
432 AND bom.organization_id = msip.organization_id
433 AND msi.organization_id = mp.organization_id
434 ORDER BY bet.sort_order;
435 BEGIN
436 IF p_explosion_level <= 0 THEN
437 l_return_status := FALSE;
438 RETURN l_return_status;
439 END IF;
440 --
441 SELECT Bom_Explosion_Temp_S.NextVal
442 INTO l_group_id
443 FROM sys.dual;
444
445 Bompxinq.Exploder_Userexit(
446 grp_id => l_group_id,
447 org_id => p_organization_id,
448 item_id => p_inventory_item_id,
449 unit_number_from => '',
450 unit_number_to => '',
451 levels_to_explode => p_explosion_level,
452 expl_qty => 1,
453 show_rev => 1,
454 material_ctrl => 1,
455 err_msg => l_err_msg,
456 error_code => l_error_code);
457 IF l_Error_Code <> 0 THEN
458 csi_gen_utility_pvt.put_line (' Bom explosion error code <> 0 '|| l_Error_Code ||' '||l_err_msg);
459 IF l_Error_Code < 0 THEN
460 csi_gen_utility_pvt.put_line (' Bom explosion error code > 0 '|| l_Error_Code ||' '||l_err_msg);
461 ELSIF l_Error_Code > 0 THEN
462 csi_gen_utility_pvt.put_line (' Bom explosion error code < 0'|| l_Error_Code ||' '||l_err_msg);
463 END IF;
464 FND_MESSAGE.SET_NAME('CSI','CSI_API_CORE_BOM_EXPL_ERROR');
465 FND_MSG_PUB.Add;
466 l_return_status := FALSE;
467 RETURN l_return_status;
468 END IF;
469 --
470 l_exists_flag := 'N';
471 For v_rec in BOM_CSR(l_group_id)
472 Loop
473 Begin
474 IF v_rec.component_item_id = p_inventory_item_id THEN
475 Raise Process_next;
476 END IF;
477 --
478 IF csi_item_instance_vld_pvt.Is_Trackable
479 (p_inv_item_id => v_rec.component_item_id,
480 p_org_id => v_rec.master_organization_id,
481 p_stack_err_msg => FALSE) THEN
482 l_exists_flag := 'Y';
483 EXIT;
484 END IF;
485 Exception
486 when process_next then
487 null;
488 End;
489 End Loop;
490 --
491 -- Delete records from bom_small_exp_temp
492 DELETE FROM bom_small_expl_temp where group_id = l_group_id;
493 --
494 IF l_exists_flag = 'Y' THEN
495 l_return_status := TRUE;
496 ELSE
497 l_return_status := FALSE;
498 END IF;
499 --
500 RETURN l_return_status;
501 END Has_Trackable_Component;
502 --
503 /*---------------------------------------------------------*/
504 /* Procedure name: Initialize_inst_rec */
505 /* Description : This procudure recontructs the record */
506 /* from the history */
507 /*---------------------------------------------------------*/
508
509 PROCEDURE Initialize_inst_rec
510 (
511 x_instance_rec IN OUT NOCOPY csi_datastructures_pub.instance_header_rec,
512 p_instance_hist_id IN NUMBER ,
513 x_nearest_full_dump IN OUT NOCOPY DATE
514 ) IS
515
516 CURSOR Int_nearest_full_dump(p_instance_hist_id IN NUMBER ) IS
517 SELECT
518 CREATION_DATE
519 ,NEW_INSTANCE_NUMBER
520 ,NEW_EXTERNAL_REFERENCE
521 ,NEW_INVENTORY_ITEM_ID
522 ,NEW_INVENTORY_REVISION
523 ,NEW_INV_MASTER_ORGANIZATION_ID
524 ,NEW_SERIAL_NUMBER
525 ,NEW_MFG_SERIAL_NUMBER_FLAG
526 ,NEW_LOT_NUMBER
527 ,NEW_QUANTITY
528 ,NEW_UNIT_OF_MEASURE
529 ,NEW_ACCOUNTING_CLASS_CODE
530 ,NEW_INSTANCE_CONDITION_ID
531 ,NEW_INSTANCE_STATUS_ID
532 ,NEW_CUSTOMER_VIEW_FLAG
533 ,NEW_MERCHANT_VIEW_FLAG
534 ,NEW_SELLABLE_FLAG
535 ,NEW_SYSTEM_ID
536 ,NEW_INSTANCE_TYPE_CODE
537 ,NEW_ACTIVE_START_DATE
538 ,NEW_ACTIVE_END_DATE
539 ,NEW_LOCATION_TYPE_CODE
540 ,NEW_LOCATION_ID
541 ,NEW_INV_ORGANIZATION_ID
542 ,NEW_INV_SUBINVENTORY_NAME
543 ,NEW_INV_LOCATOR_ID
544 ,NEW_PA_PROJECT_ID
545 ,NEW_PA_PROJECT_TASK_ID
546 ,NEW_IN_TRANSIT_ORDER_LINE_ID
547 ,NEW_WIP_JOB_ID
548 ,NEW_PO_ORDER_LINE_ID
549 ,NEW_COMPLETENESS_FLAG
550 ,NEW_CONTEXT
551 ,NEW_ATTRIBUTE1
552 ,NEW_ATTRIBUTE2
553 ,NEW_ATTRIBUTE3
554 ,NEW_ATTRIBUTE4
555 ,NEW_ATTRIBUTE5
556 ,NEW_ATTRIBUTE6
557 ,NEW_ATTRIBUTE7
558 ,NEW_ATTRIBUTE8
559 ,NEW_ATTRIBUTE9
560 ,NEW_ATTRIBUTE10
561 ,NEW_ATTRIBUTE11
562 ,NEW_ATTRIBUTE12
563 ,NEW_ATTRIBUTE13
564 ,NEW_ATTRIBUTE14
565 ,NEW_ATTRIBUTE15
566 ,NEW_INST_LOC_TYPE_CODE
567 ,NEW_INST_LOC_ID
568 ,NEW_INST_USAGE_CODE
569 ,NEW_LAST_OE_ORDER_LINE_ID
570 ,NEW_LAST_OE_RMA_LINE_ID
571 ,NEW_LAST_WIP_JOB_ID
572 ,NEW_LAST_PO_PO_LINE_ID
573 ,NEW_LAST_PA_PROJECT_ID
574 ,NEW_LAST_PA_TASK_ID
575 ,NEW_LAST_TXN_LINE_DETAIL_ID
576 ,NEW_LAST_OE_PO_NUMBER
577 ,NEW_OE_AGREEMENT_ID
578 --start of column addition for eam integration--
579 ,NEW_NETWORK_ASSET_FLAG
580 ,NEW_MAINTAINABLE_FLAG
581 ,NEW_PN_LOCATION_ID
582 ,NEW_ASSET_CRITICALITY_CODE
583 ,NEW_CATEGORY_ID
584 ,NEW_EQUIPMENT_GEN_OBJECT_ID
585 ,NEW_INSTANTIATION_FLAG
586 ,NEW_LINEAR_LOCATION_ID
587 ,NEW_OPERATIONAL_LOG_FLAG
588 ,NEW_CHECKIN_STATUS
589 ,NEW_SUPPLIER_WARRANTY_EXP_DATE
590 ,NEW_ATTRIBUTE16
591 ,NEW_ATTRIBUTE17
592 ,NEW_ATTRIBUTE18
593 ,NEW_ATTRIBUTE19
594 ,NEW_ATTRIBUTE20
595 ,NEW_ATTRIBUTE21
596 ,NEW_ATTRIBUTE22
597 ,NEW_ATTRIBUTE23
598 ,NEW_ATTRIBUTE24
599 ,NEW_ATTRIBUTE25
600 ,NEW_ATTRIBUTE26
601 ,NEW_ATTRIBUTE27
602 ,NEW_ATTRIBUTE28
603 ,NEW_ATTRIBUTE29
604 ,NEW_ATTRIBUTE30
605 --end of column addition for eam integration--
606 -- Addition of columns for FA Integration
607 ,NEW_PURCHASE_UNIT_PRICE
608 ,NEW_PURCHASE_CURRENCY_CODE
609 ,NEW_PAYABLES_UNIT_PRICE
610 ,NEW_PAYABLES_CURRENCY_CODE
611 ,NEW_SALES_UNIT_PRICE
612 ,NEW_SALES_CURRENCY_CODE
613 ,NEW_OPERATIONAL_STATUS_CODE
614 -- End addition of columns for FA Integration
615 FROM CSI_ITEM_INSTANCES_H
616 WHERE instance_history_id = p_instance_hist_id
617 AND full_dump_flag = 'Y' ;
618
619 BEGIN
620
621 FOR C1 IN Int_nearest_full_dump(p_instance_hist_id) LOOP
622 x_nearest_full_dump := C1.creation_date;
623 x_instance_rec.INSTANCE_NUMBER := C1.NEW_INSTANCE_NUMBER;
624 x_instance_rec.EXTERNAL_REFERENCE := C1.NEW_EXTERNAL_REFERENCE;
625 x_instance_rec.INVENTORY_ITEM_ID := C1.NEW_INVENTORY_ITEM_ID;
626 x_instance_rec.INVENTORY_REVISION := C1.NEW_INVENTORY_REVISION;
627 x_instance_rec.INV_MASTER_ORGANIZATION_ID := C1.NEW_INV_MASTER_ORGANIZATION_ID;
628 x_instance_rec.SERIAL_NUMBER := C1.NEW_SERIAL_NUMBER;
629 x_instance_rec.MFG_SERIAL_NUMBER_FLAG := C1.NEW_MFG_SERIAL_NUMBER_FLAG;
630 x_instance_rec.LOT_NUMBER := C1.NEW_LOT_NUMBER;
631 x_instance_rec.QUANTITY := C1.NEW_QUANTITY;
632 x_instance_rec.UNIT_OF_MEASURE := C1.NEW_UNIT_OF_MEASURE;
633 x_instance_rec.ACCOUNTING_CLASS_CODE := C1.NEW_ACCOUNTING_CLASS_CODE;
634 x_instance_rec.INSTANCE_CONDITION_ID := C1.NEW_INSTANCE_CONDITION_ID;
635 x_instance_rec.INSTANCE_STATUS_ID := C1.NEW_INSTANCE_STATUS_ID;
636 x_instance_rec.CUSTOMER_VIEW_FLAG := C1.NEW_CUSTOMER_VIEW_FLAG;
637 x_instance_rec.MERCHANT_VIEW_FLAG := C1.NEW_MERCHANT_VIEW_FLAG;
638 x_instance_rec.SELLABLE_FLAG := C1.NEW_SELLABLE_FLAG;
639 x_instance_rec.SYSTEM_ID := C1.NEW_SYSTEM_ID;
640 x_instance_rec.INSTANCE_TYPE_CODE := C1.NEW_INSTANCE_TYPE_CODE;
641 x_instance_rec.ACTIVE_START_DATE := C1.NEW_ACTIVE_START_DATE;
642 x_instance_rec.ACTIVE_END_DATE := C1.NEW_ACTIVE_END_DATE;
643 x_instance_rec.LOCATION_TYPE_CODE := C1.NEW_LOCATION_TYPE_CODE;
644 x_instance_rec.LOCATION_ID := C1.NEW_LOCATION_ID;
645 x_instance_rec.INV_ORGANIZATION_ID := C1.NEW_INV_ORGANIZATION_ID;
646 x_instance_rec.INV_SUBINVENTORY_NAME := C1.NEW_INV_SUBINVENTORY_NAME;
647 x_instance_rec.INV_LOCATOR_ID := C1.NEW_INV_LOCATOR_ID;
648 x_instance_rec.PA_PROJECT_ID := C1.NEW_PA_PROJECT_ID;
649 x_instance_rec.PA_PROJECT_TASK_ID := C1.NEW_PA_PROJECT_TASK_ID;
650 x_instance_rec.IN_TRANSIT_ORDER_LINE_ID := C1.NEW_IN_TRANSIT_ORDER_LINE_ID;
651 x_instance_rec.WIP_JOB_ID := C1.NEW_WIP_JOB_ID;
652 x_instance_rec.PO_ORDER_LINE_ID := C1.NEW_PO_ORDER_LINE_ID;
653 x_instance_rec.COMPLETENESS_FLAG := C1.NEW_COMPLETENESS_FLAG;
654 x_instance_rec.CONTEXT := C1.NEW_CONTEXT;
655 x_instance_rec.ATTRIBUTE1 := C1.NEW_ATTRIBUTE1;
656 x_instance_rec.ATTRIBUTE2 := C1.NEW_ATTRIBUTE2;
657 x_instance_rec.ATTRIBUTE3 := C1.NEW_ATTRIBUTE3;
658 x_instance_rec.ATTRIBUTE4 := C1.NEW_ATTRIBUTE4;
659 x_instance_rec.ATTRIBUTE5 := C1.NEW_ATTRIBUTE5;
660 x_instance_rec.ATTRIBUTE6 := C1.NEW_ATTRIBUTE6;
661 x_instance_rec.ATTRIBUTE7 := C1.NEW_ATTRIBUTE7;
662 x_instance_rec.ATTRIBUTE8 := C1.NEW_ATTRIBUTE8;
663 x_instance_rec.ATTRIBUTE9 := C1.NEW_ATTRIBUTE9;
664 x_instance_rec.ATTRIBUTE10 := C1.NEW_ATTRIBUTE10;
665 x_instance_rec.ATTRIBUTE11 := C1.NEW_ATTRIBUTE11;
666 x_instance_rec.ATTRIBUTE12 := C1.NEW_ATTRIBUTE12;
667 x_instance_rec.ATTRIBUTE13 := C1.NEW_ATTRIBUTE13;
668 x_instance_rec.ATTRIBUTE14 := C1.NEW_ATTRIBUTE14;
669 x_instance_rec.ATTRIBUTE15 := C1.NEW_ATTRIBUTE15;
670 x_instance_rec.INSTALL_LOCATION_TYPE_CODE := C1.NEW_INST_LOC_TYPE_CODE;
671 x_instance_rec.INSTALL_LOCATION_ID := C1.NEW_INST_LOC_ID;
672 x_instance_rec.INSTANCE_USAGE_CODE := C1.NEW_INST_USAGE_CODE;
673 x_instance_rec.LAST_OE_ORDER_LINE_ID := C1.NEW_LAST_OE_ORDER_LINE_ID;
674 x_instance_rec.LAST_OE_RMA_LINE_ID := C1.NEW_LAST_OE_RMA_LINE_ID;
675 x_instance_rec.LAST_WIP_JOB_ID := C1.NEW_LAST_WIP_JOB_ID;
676 x_instance_rec.LAST_PO_PO_LINE_ID := C1.NEW_LAST_PO_PO_LINE_ID;
677 x_instance_rec.LAST_PA_PROJECT_ID := C1.NEW_LAST_PA_PROJECT_ID;
678 x_instance_rec.LAST_PA_TASK_ID := C1.NEW_LAST_PA_TASK_ID;
679 x_instance_rec.LAST_TXN_LINE_DETAIL_ID := C1.NEW_LAST_TXN_LINE_DETAIL_ID;
680 x_instance_rec.LAST_OE_PO_NUMBER := C1.NEW_LAST_OE_PO_NUMBER;
681 x_instance_rec.LAST_OE_AGREEMENT_ID := C1.NEW_OE_AGREEMENT_ID;
682 --start of code for eam integration--
683 x_instance_rec.NETWORK_ASSET_FLAG := C1.NEW_NETWORK_ASSET_FLAG;
684 x_instance_rec.MAINTAINABLE_FLAG := C1.NEW_MAINTAINABLE_FLAG;
685 x_instance_rec.PN_LOCATION_ID := C1.NEW_PN_LOCATION_ID;
686 x_instance_rec.ASSET_CRITICALITY_CODE := C1.NEW_ASSET_CRITICALITY_CODE;
687 x_instance_rec.CATEGORY_ID := C1.NEW_CATEGORY_ID;
688 x_instance_rec.EQUIPMENT_GEN_OBJECT_ID := C1.NEW_EQUIPMENT_GEN_OBJECT_ID;
689 x_instance_rec.INSTANTIATION_FLAG := C1.NEW_INSTANTIATION_FLAG;
690 x_instance_rec.LINEAR_LOCATION_ID := C1.NEW_LINEAR_LOCATION_ID;
691 x_instance_rec.OPERATIONAL_LOG_FLAG := C1.NEW_OPERATIONAL_LOG_FLAG;
692 x_instance_rec.CHECKIN_STATUS := C1.NEW_CHECKIN_STATUS;
693 x_instance_rec.SUPPLIER_WARRANTY_EXP_DATE := C1.NEW_SUPPLIER_WARRANTY_EXP_DATE;
694 x_instance_rec.ATTRIBUTE16 := C1.NEW_ATTRIBUTE16;
695 x_instance_rec.ATTRIBUTE17 := C1.NEW_ATTRIBUTE17;
696 x_instance_rec.ATTRIBUTE18 := C1.NEW_ATTRIBUTE18;
697 x_instance_rec.ATTRIBUTE19 := C1.NEW_ATTRIBUTE19;
698 x_instance_rec.ATTRIBUTE20 := C1.NEW_ATTRIBUTE20;
699 x_instance_rec.ATTRIBUTE21 := C1.NEW_ATTRIBUTE21;
700 x_instance_rec.ATTRIBUTE22 := C1.NEW_ATTRIBUTE22;
701 x_instance_rec.ATTRIBUTE23 := C1.NEW_ATTRIBUTE23;
702 x_instance_rec.ATTRIBUTE24 := C1.NEW_ATTRIBUTE24;
703 x_instance_rec.ATTRIBUTE25 := C1.NEW_ATTRIBUTE25;
704 x_instance_rec.ATTRIBUTE26 := C1.NEW_ATTRIBUTE26;
705 x_instance_rec.ATTRIBUTE27 := C1.NEW_ATTRIBUTE27;
706 x_instance_rec.ATTRIBUTE28 := C1.NEW_ATTRIBUTE28;
707 x_instance_rec.ATTRIBUTE29 := C1.NEW_ATTRIBUTE29;
708 x_instance_rec.ATTRIBUTE30 := C1.NEW_ATTRIBUTE30;
709 --end of code for eam integration--
710 -- Addition of columns for FA Integration
711 x_instance_rec.PURCHASE_UNIT_PRICE := C1.NEW_PURCHASE_UNIT_PRICE;
712 x_instance_rec.PURCHASE_CURRENCY_CODE := C1.NEW_PURCHASE_CURRENCY_CODE;
713 x_instance_rec.PAYABLES_UNIT_PRICE := C1.NEW_PAYABLES_UNIT_PRICE;
714 x_instance_rec.PAYABLES_CURRENCY_CODE := C1.NEW_PAYABLES_CURRENCY_CODE;
715 x_instance_rec.SALES_UNIT_PRICE := C1.NEW_SALES_UNIT_PRICE;
716 x_instance_rec.SALES_CURRENCY_CODE := C1.NEW_SALES_CURRENCY_CODE;
717 x_instance_rec.OPERATIONAL_STATUS_CODE := C1.NEW_OPERATIONAL_STATUS_CODE;
718 -- End addition of columns for FA Integration
719 END LOOP;
720 END Initialize_inst_rec ;
721
722 /*---------------------------------------------------*/
723 /* Procedure name: Initialize_inst_rec_no_dump */
724 /* Description : This procudure gets the first */
725 /* record from the history table */
726 /*---------------------------------------------------*/
727
728 PROCEDURE Initialize_inst_rec_no_dump
729 (
730 x_instance_rec IN OUT NOCOPY csi_datastructures_pub.instance_header_rec,
731 p_instance_id IN NUMBER ,
732 x_first_no_dump IN OUT NOCOPY DATE
733 ) IS
734
735 CURSOR Int_no_dump(p_instance_id IN NUMBER) IS
736 SELECT
737 CREATION_DATE
738 ,NEW_INSTANCE_NUMBER
739 ,NEW_EXTERNAL_REFERENCE
740 ,NEW_INVENTORY_ITEM_ID
741 ,NEW_INVENTORY_REVISION
742 ,NEW_INV_MASTER_ORGANIZATION_ID
743 ,NEW_SERIAL_NUMBER
744 ,NEW_MFG_SERIAL_NUMBER_FLAG
745 ,NEW_LOT_NUMBER
746 ,NEW_QUANTITY
747 ,NEW_UNIT_OF_MEASURE
748 ,NEW_ACCOUNTING_CLASS_CODE
749 ,NEW_INSTANCE_CONDITION_ID
750 ,NEW_INSTANCE_STATUS_ID
751 ,NEW_CUSTOMER_VIEW_FLAG
752 ,NEW_MERCHANT_VIEW_FLAG
753 ,NEW_SELLABLE_FLAG
754 ,NEW_SYSTEM_ID
755 ,NEW_INSTANCE_TYPE_CODE
756 ,NEW_ACTIVE_START_DATE
757 ,NEW_ACTIVE_END_DATE
758 ,NEW_LOCATION_TYPE_CODE
759 ,NEW_LOCATION_ID
760 ,NEW_INV_ORGANIZATION_ID
761 ,NEW_INV_SUBINVENTORY_NAME
762 ,NEW_INV_LOCATOR_ID
763 ,NEW_PA_PROJECT_ID
764 ,NEW_PA_PROJECT_TASK_ID
765 ,NEW_IN_TRANSIT_ORDER_LINE_ID
766 ,NEW_WIP_JOB_ID
767 ,NEW_PO_ORDER_LINE_ID
768 ,NEW_COMPLETENESS_FLAG
769 ,NEW_CONTEXT
770 ,NEW_ATTRIBUTE1
771 ,NEW_ATTRIBUTE2
772 ,NEW_ATTRIBUTE3
773 ,NEW_ATTRIBUTE4
774 ,NEW_ATTRIBUTE5
775 ,NEW_ATTRIBUTE6
776 ,NEW_ATTRIBUTE7
777 ,NEW_ATTRIBUTE8
778 ,NEW_ATTRIBUTE9
779 ,NEW_ATTRIBUTE10
780 ,NEW_ATTRIBUTE11
781 ,NEW_ATTRIBUTE12
782 ,NEW_ATTRIBUTE13
783 ,NEW_ATTRIBUTE14
784 ,NEW_ATTRIBUTE15
785 ,NEW_INST_LOC_TYPE_CODE
786 ,NEW_INST_LOC_ID
787 ,NEW_INST_USAGE_CODE
788 ,NEW_LAST_OE_ORDER_LINE_ID
789 ,NEW_LAST_OE_RMA_LINE_ID
790 ,NEW_LAST_WIP_JOB_ID
791 ,NEW_LAST_PO_PO_LINE_ID
792 ,NEW_LAST_PA_PROJECT_ID
793 ,NEW_LAST_PA_TASK_ID
794 ,NEW_LAST_TXN_LINE_DETAIL_ID
795 ,NEW_LAST_OE_PO_NUMBER
796 ,NEW_OE_AGREEMENT_ID
797 --start of column addition for eam integration--
798 ,NEW_NETWORK_ASSET_FLAG
799 ,NEW_MAINTAINABLE_FLAG
800 ,NEW_PN_LOCATION_ID
801 ,NEW_ASSET_CRITICALITY_CODE
802 ,NEW_CATEGORY_ID
803 ,NEW_EQUIPMENT_GEN_OBJECT_ID
804 ,NEW_INSTANTIATION_FLAG
805 ,NEW_LINEAR_LOCATION_ID
806 ,NEW_OPERATIONAL_LOG_FLAG
807 ,NEW_CHECKIN_STATUS
808 ,NEW_SUPPLIER_WARRANTY_EXP_DATE
809 ,NEW_ATTRIBUTE16
810 ,NEW_ATTRIBUTE17
811 ,NEW_ATTRIBUTE18
812 ,NEW_ATTRIBUTE19
813 ,NEW_ATTRIBUTE20
814 ,NEW_ATTRIBUTE21
815 ,NEW_ATTRIBUTE22
816 ,NEW_ATTRIBUTE23
817 ,NEW_ATTRIBUTE24
818 ,NEW_ATTRIBUTE25
819 ,NEW_ATTRIBUTE26
820 ,NEW_ATTRIBUTE27
821 ,NEW_ATTRIBUTE28
822 ,NEW_ATTRIBUTE29
823 ,NEW_ATTRIBUTE30
824 --end of column addition for eam integration--
825 -- Addition of columns for FA Integration
826 ,NEW_PURCHASE_UNIT_PRICE
827 ,NEW_PURCHASE_CURRENCY_CODE
828 ,NEW_PAYABLES_UNIT_PRICE
829 ,NEW_PAYABLES_CURRENCY_CODE
830 ,NEW_SALES_UNIT_PRICE
831 ,NEW_SALES_CURRENCY_CODE
832 ,NEW_OPERATIONAL_STATUS_CODE
833 -- End addition of columns for FA Integration
834 FROM CSI_ITEM_INSTANCES_H
835 WHERE instance_id = p_instance_id
836 --and creation_date <= x_first_no_dump
837 --and full_dump_flag = 'N'
838 ORDER BY creation_date;
839
840 BEGIN
841
842 FOR C1 IN Int_no_dump(p_instance_id) LOOP
843 IF Int_no_dump%ROWCOUNT = 1 THEN
844 x_first_no_dump := NVL(C1.NEW_ACTIVE_START_DATE,C1.CREATION_DATE);
845 x_instance_rec.INSTANCE_NUMBER := C1.NEW_INSTANCE_NUMBER;
846 x_instance_rec.EXTERNAL_REFERENCE := C1.NEW_EXTERNAL_REFERENCE;
847 x_instance_rec.INVENTORY_ITEM_ID := C1.NEW_INVENTORY_ITEM_ID;
848 x_instance_rec.INVENTORY_REVISION := C1.NEW_INVENTORY_REVISION;
849 x_instance_rec.INV_MASTER_ORGANIZATION_ID := C1.NEW_INV_MASTER_ORGANIZATION_ID;
850 x_instance_rec.SERIAL_NUMBER := C1.NEW_SERIAL_NUMBER;
851 x_instance_rec.MFG_SERIAL_NUMBER_FLAG := C1.NEW_MFG_SERIAL_NUMBER_FLAG;
852 x_instance_rec.LOT_NUMBER := C1.NEW_LOT_NUMBER;
853 x_instance_rec.QUANTITY := C1.NEW_QUANTITY;
854 x_instance_rec.UNIT_OF_MEASURE := C1.NEW_UNIT_OF_MEASURE;
855 x_instance_rec.ACCOUNTING_CLASS_CODE := C1.NEW_ACCOUNTING_CLASS_CODE;
856 x_instance_rec.INSTANCE_CONDITION_ID := C1.NEW_INSTANCE_CONDITION_ID;
857 x_instance_rec.INSTANCE_STATUS_ID := C1.NEW_INSTANCE_STATUS_ID;
858 x_instance_rec.CUSTOMER_VIEW_FLAG := C1.NEW_CUSTOMER_VIEW_FLAG;
859 x_instance_rec.MERCHANT_VIEW_FLAG := C1.NEW_MERCHANT_VIEW_FLAG;
860 x_instance_rec.SELLABLE_FLAG := C1.NEW_SELLABLE_FLAG;
861 x_instance_rec.SYSTEM_ID := C1.NEW_SYSTEM_ID;
862 x_instance_rec.INSTANCE_TYPE_CODE := C1.NEW_INSTANCE_TYPE_CODE;
863 x_instance_rec.ACTIVE_START_DATE := C1.NEW_ACTIVE_START_DATE;
864 x_instance_rec.ACTIVE_END_DATE := C1.NEW_ACTIVE_END_DATE;
865 x_instance_rec.LOCATION_TYPE_CODE := C1.NEW_LOCATION_TYPE_CODE;
866 x_instance_rec.LOCATION_ID := C1.NEW_LOCATION_ID;
867 x_instance_rec.INV_ORGANIZATION_ID := C1.NEW_INV_ORGANIZATION_ID;
868 x_instance_rec.INV_SUBINVENTORY_NAME := C1.NEW_INV_SUBINVENTORY_NAME;
869 x_instance_rec.INV_LOCATOR_ID := C1.NEW_INV_LOCATOR_ID;
870 x_instance_rec.PA_PROJECT_ID := C1.NEW_PA_PROJECT_ID;
871 x_instance_rec.PA_PROJECT_TASK_ID := C1.NEW_PA_PROJECT_TASK_ID;
872 x_instance_rec.IN_TRANSIT_ORDER_LINE_ID := C1.NEW_IN_TRANSIT_ORDER_LINE_ID;
873 x_instance_rec.WIP_JOB_ID := C1.NEW_WIP_JOB_ID;
874 x_instance_rec.PO_ORDER_LINE_ID := C1.NEW_PO_ORDER_LINE_ID;
875 x_instance_rec.COMPLETENESS_FLAG := C1.NEW_COMPLETENESS_FLAG;
876 x_instance_rec.CONTEXT := C1.NEW_CONTEXT;
877 x_instance_rec.ATTRIBUTE1 := C1.NEW_ATTRIBUTE1;
878 x_instance_rec.ATTRIBUTE2 := C1.NEW_ATTRIBUTE2;
879 x_instance_rec.ATTRIBUTE3 := C1.NEW_ATTRIBUTE3;
880 x_instance_rec.ATTRIBUTE4 := C1.NEW_ATTRIBUTE4;
881 x_instance_rec.ATTRIBUTE5 := C1.NEW_ATTRIBUTE5;
882 x_instance_rec.ATTRIBUTE6 := C1.NEW_ATTRIBUTE6;
883 x_instance_rec.ATTRIBUTE7 := C1.NEW_ATTRIBUTE7;
884 x_instance_rec.ATTRIBUTE8 := C1.NEW_ATTRIBUTE8;
885 x_instance_rec.ATTRIBUTE9 := C1.NEW_ATTRIBUTE9;
886 x_instance_rec.ATTRIBUTE10 := C1.NEW_ATTRIBUTE10;
887 x_instance_rec.ATTRIBUTE11 := C1.NEW_ATTRIBUTE11;
888 x_instance_rec.ATTRIBUTE12 := C1.NEW_ATTRIBUTE12;
889 x_instance_rec.ATTRIBUTE13 := C1.NEW_ATTRIBUTE13;
890 x_instance_rec.ATTRIBUTE14 := C1.NEW_ATTRIBUTE14;
891 x_instance_rec.ATTRIBUTE15 := C1.NEW_ATTRIBUTE15;
892 x_instance_rec.INSTALL_LOCATION_TYPE_CODE := C1.NEW_INST_LOC_TYPE_CODE;
893 x_instance_rec.INSTALL_LOCATION_ID := C1.NEW_INST_LOC_ID;
894 x_instance_rec.INSTANCE_USAGE_CODE := C1.NEW_INST_USAGE_CODE;
895 x_instance_rec.LAST_OE_ORDER_LINE_ID := C1.NEW_LAST_OE_ORDER_LINE_ID;
896 x_instance_rec.LAST_OE_RMA_LINE_ID := C1.NEW_LAST_OE_RMA_LINE_ID;
897 x_instance_rec.LAST_WIP_JOB_ID := C1.NEW_LAST_WIP_JOB_ID;
898 x_instance_rec.LAST_PO_PO_LINE_ID := C1.NEW_LAST_PO_PO_LINE_ID;
899 x_instance_rec.LAST_PA_PROJECT_ID := C1.NEW_LAST_PA_PROJECT_ID;
900 x_instance_rec.LAST_PA_TASK_ID := C1.NEW_LAST_PA_TASK_ID;
901 x_instance_rec.LAST_TXN_LINE_DETAIL_ID := C1.NEW_LAST_TXN_LINE_DETAIL_ID;
902 x_instance_rec.LAST_OE_PO_NUMBER := C1.NEW_LAST_OE_PO_NUMBER;
903 x_instance_rec.LAST_OE_AGREEMENT_ID := C1.NEW_OE_AGREEMENT_ID;
904 --start of code for eam integration--
905 x_instance_rec.NETWORK_ASSET_FLAG := C1.NEW_NETWORK_ASSET_FLAG;
906 x_instance_rec.MAINTAINABLE_FLAG := C1.NEW_MAINTAINABLE_FLAG;
907 x_instance_rec.PN_LOCATION_ID := C1.NEW_PN_LOCATION_ID;
908 x_instance_rec.ASSET_CRITICALITY_CODE := C1.NEW_ASSET_CRITICALITY_CODE;
909 x_instance_rec.CATEGORY_ID := C1.NEW_CATEGORY_ID;
910 x_instance_rec.EQUIPMENT_GEN_OBJECT_ID := C1.NEW_EQUIPMENT_GEN_OBJECT_ID;
911 x_instance_rec.INSTANTIATION_FLAG := C1.NEW_INSTANTIATION_FLAG;
912 x_instance_rec.LINEAR_LOCATION_ID := C1.NEW_LINEAR_LOCATION_ID;
913 x_instance_rec.OPERATIONAL_LOG_FLAG := C1.NEW_OPERATIONAL_LOG_FLAG;
914 x_instance_rec.CHECKIN_STATUS := C1.NEW_CHECKIN_STATUS;
915 x_instance_rec.SUPPLIER_WARRANTY_EXP_DATE := C1.NEW_SUPPLIER_WARRANTY_EXP_DATE;
916 x_instance_rec.ATTRIBUTE16 := C1.NEW_ATTRIBUTE16;
917 x_instance_rec.ATTRIBUTE17 := C1.NEW_ATTRIBUTE17;
918 x_instance_rec.ATTRIBUTE18 := C1.NEW_ATTRIBUTE18;
919 x_instance_rec.ATTRIBUTE19 := C1.NEW_ATTRIBUTE19;
920 x_instance_rec.ATTRIBUTE20 := C1.NEW_ATTRIBUTE20;
921 x_instance_rec.ATTRIBUTE21 := C1.NEW_ATTRIBUTE21;
922 x_instance_rec.ATTRIBUTE22 := C1.NEW_ATTRIBUTE22;
923 x_instance_rec.ATTRIBUTE23 := C1.NEW_ATTRIBUTE23;
924 x_instance_rec.ATTRIBUTE24 := C1.NEW_ATTRIBUTE24;
925 x_instance_rec.ATTRIBUTE25 := C1.NEW_ATTRIBUTE25;
926 x_instance_rec.ATTRIBUTE26 := C1.NEW_ATTRIBUTE26;
927 x_instance_rec.ATTRIBUTE27 := C1.NEW_ATTRIBUTE27;
928 x_instance_rec.ATTRIBUTE28 := C1.NEW_ATTRIBUTE28;
929 x_instance_rec.ATTRIBUTE29 := C1.NEW_ATTRIBUTE29;
930 x_instance_rec.ATTRIBUTE30 := C1.NEW_ATTRIBUTE30;
931 --end of code for eam integration--
932 -- Addition of columns for FA Integration
933 x_instance_rec.PURCHASE_UNIT_PRICE := C1.NEW_PURCHASE_UNIT_PRICE;
934 x_instance_rec.PURCHASE_CURRENCY_CODE := C1.NEW_PURCHASE_CURRENCY_CODE;
935 x_instance_rec.PAYABLES_UNIT_PRICE := C1.NEW_PAYABLES_UNIT_PRICE;
936 x_instance_rec.PAYABLES_CURRENCY_CODE := C1.NEW_PAYABLES_CURRENCY_CODE;
937 x_instance_rec.SALES_UNIT_PRICE := C1.NEW_SALES_UNIT_PRICE;
938 x_instance_rec.SALES_CURRENCY_CODE := C1.NEW_SALES_CURRENCY_CODE;
939 x_instance_rec.OPERATIONAL_STATUS_CODE := C1.NEW_OPERATIONAL_STATUS_CODE;
940 -- End addition of columns for FA Integration
941 ELSE
942 EXIT;
943 END IF;
944
945 END LOOP;
946 END Initialize_inst_rec_no_dump ;
947
948
949
950
951 /*---------------------------------------------------------*/
952 /* Procedure name: Construct_inst_from_hist */
953 /* Description : This procudure recontructs the record */
954 /* from the history */
955 /*---------------------------------------------------------*/
956
957 PROCEDURE Construct_inst_from_hist
958 (
959 x_instance_rec IN OUT NOCOPY csi_datastructures_pub.instance_header_rec,
960 p_time_stamp IN DATE
961 ) IS
962
963 l_nearest_full_dump DATE := p_time_stamp;
964 l_instance_hist_id NUMBER;
965
966 CURSOR get_nearest_full_dump(p_instance_id IN NUMBER ,p_time IN DATE) IS
967 SELECT
968 MAX(instance_history_id)
969 FROM CSI_ITEM_INSTANCES_H
970 WHERE creation_date <= p_time
971 and instance_id = p_instance_id
972 and full_dump_flag = 'Y' ;
973
974 CURSOR get_instance_hist(p_instance_id IN NUMBER ,
975 p_nearest_full_dump IN DATE,
976 p_time IN DATE ) IS
977 SELECT
978 OLD_INSTANCE_NUMBER
979 ,NEW_INSTANCE_NUMBER
980 ,OLD_EXTERNAL_REFERENCE
981 ,NEW_EXTERNAL_REFERENCE
982 ,OLD_INVENTORY_ITEM_ID
983 ,NEW_INVENTORY_ITEM_ID
984 ,OLD_INVENTORY_REVISION
985 ,NEW_INVENTORY_REVISION
986 ,OLD_INV_MASTER_ORGANIZATION_ID
987 ,NEW_INV_MASTER_ORGANIZATION_ID
988 ,OLD_SERIAL_NUMBER
989 ,NEW_SERIAL_NUMBER
990 ,OLD_MFG_SERIAL_NUMBER_FLAG
991 ,NEW_MFG_SERIAL_NUMBER_FLAG
992 ,OLD_LOT_NUMBER
993 ,NEW_LOT_NUMBER
994 ,OLD_QUANTITY
995 ,NEW_QUANTITY
996 ,OLD_UNIT_OF_MEASURE
997 ,NEW_UNIT_OF_MEASURE
998 ,OLD_ACCOUNTING_CLASS_CODE
999 ,NEW_ACCOUNTING_CLASS_CODE
1000 ,OLD_INSTANCE_CONDITION_ID
1001 ,NEW_INSTANCE_CONDITION_ID
1002 ,OLD_INSTANCE_STATUS_ID
1003 ,NEW_INSTANCE_STATUS_ID
1004 ,OLD_CUSTOMER_VIEW_FLAG
1005 ,NEW_CUSTOMER_VIEW_FLAG
1006 ,OLD_MERCHANT_VIEW_FLAG
1007 ,NEW_MERCHANT_VIEW_FLAG
1008 ,OLD_SELLABLE_FLAG
1009 ,NEW_SELLABLE_FLAG
1010 ,OLD_SYSTEM_ID
1011 ,NEW_SYSTEM_ID
1012 ,OLD_INSTANCE_TYPE_CODE
1013 ,NEW_INSTANCE_TYPE_CODE
1014 ,OLD_ACTIVE_START_DATE
1015 ,NEW_ACTIVE_START_DATE
1016 ,OLD_ACTIVE_END_DATE
1017 ,NEW_ACTIVE_END_DATE
1018 ,OLD_LOCATION_TYPE_CODE
1019 ,NEW_LOCATION_TYPE_CODE
1020 ,OLD_LOCATION_ID
1021 ,NEW_LOCATION_ID
1022 ,OLD_INV_ORGANIZATION_ID
1023 ,NEW_INV_ORGANIZATION_ID
1024 ,OLD_INV_SUBINVENTORY_NAME
1025 ,NEW_INV_SUBINVENTORY_NAME
1026 ,OLD_INV_LOCATOR_ID
1027 ,NEW_INV_LOCATOR_ID
1028 ,OLD_PA_PROJECT_ID
1029 ,NEW_PA_PROJECT_ID
1030 ,OLD_PA_PROJECT_TASK_ID
1031 ,NEW_PA_PROJECT_TASK_ID
1032 ,OLD_IN_TRANSIT_ORDER_LINE_ID
1033 ,NEW_IN_TRANSIT_ORDER_LINE_ID
1034 ,OLD_WIP_JOB_ID
1035 ,NEW_WIP_JOB_ID
1036 ,OLD_PO_ORDER_LINE_ID
1037 ,NEW_PO_ORDER_LINE_ID
1038 ,OLD_COMPLETENESS_FLAG
1039 ,NEW_COMPLETENESS_FLAG
1040 ,OLD_CONTEXT
1041 ,NEW_CONTEXT
1042 ,OLD_ATTRIBUTE1
1043 ,NEW_ATTRIBUTE1
1044 ,OLD_ATTRIBUTE2
1045 ,NEW_ATTRIBUTE2
1046 ,OLD_ATTRIBUTE3
1047 ,NEW_ATTRIBUTE3
1048 ,OLD_ATTRIBUTE4
1049 ,NEW_ATTRIBUTE4
1050 ,OLD_ATTRIBUTE5
1051 ,NEW_ATTRIBUTE5
1052 ,OLD_ATTRIBUTE6
1053 ,NEW_ATTRIBUTE6
1054 ,OLD_ATTRIBUTE7
1055 ,NEW_ATTRIBUTE7
1056 ,OLD_ATTRIBUTE8
1057 ,NEW_ATTRIBUTE8
1058 ,OLD_ATTRIBUTE9
1059 ,NEW_ATTRIBUTE9
1060 ,OLD_ATTRIBUTE10
1061 ,NEW_ATTRIBUTE10
1062 ,OLD_ATTRIBUTE11
1063 ,NEW_ATTRIBUTE11
1064 ,OLD_ATTRIBUTE12
1065 ,NEW_ATTRIBUTE12
1066 ,OLD_ATTRIBUTE13
1067 ,NEW_ATTRIBUTE13
1068 ,OLD_ATTRIBUTE14
1069 ,NEW_ATTRIBUTE14
1070 ,OLD_ATTRIBUTE15
1071 ,NEW_ATTRIBUTE15
1072 ,OLD_INST_LOC_TYPE_CODE
1073 ,NEW_INST_LOC_TYPE_CODE
1074 ,OLD_INST_LOC_ID
1075 ,NEW_INST_LOC_ID
1076 ,OLD_INST_USAGE_CODE
1077 ,NEW_INST_USAGE_CODE
1078 ,CREATION_DATE
1079 ,OLD_CONFIG_INST_REV_NUM
1080 ,NEW_CONFIG_INST_REV_NUM
1081 ,OLD_CONFIG_VALID_STATUS
1082 ,NEW_CONFIG_VALID_STATUS
1083 ,OLD_INSTANCE_DESCRIPTION
1084 ,NEW_INSTANCE_DESCRIPTION
1085 ,OLD_LAST_VLD_ORGANIZATION_ID
1086 ,NEW_LAST_VLD_ORGANIZATION_ID
1087 ,OLD_INSTALL_DATE
1088 ,NEW_INSTALL_DATE
1089 ,OLD_RETURN_BY_DATE
1090 ,NEW_RETURN_BY_DATE
1091 ,OLD_ACTUAL_RETURN_DATE
1092 ,NEW_ACTUAL_RETURN_DATE
1093 ,OLD_OE_AGREEMENT_ID
1094 ,NEW_OE_AGREEMENT_ID
1095 ,OLD_LAST_OE_ORDER_LINE_ID
1096 ,NEW_LAST_OE_ORDER_LINE_ID
1097 ,OLD_LAST_OE_RMA_LINE_ID
1098 ,NEW_LAST_OE_RMA_LINE_ID
1099 ,OLD_LAST_WIP_JOB_ID
1100 ,NEW_LAST_WIP_JOB_ID
1101 ,OLD_LAST_PO_PO_LINE_ID
1102 ,NEW_LAST_PO_PO_LINE_ID
1103 ,OLD_LAST_PA_PROJECT_ID
1104 ,NEW_LAST_PA_PROJECT_ID
1105 ,OLD_LAST_PA_TASK_ID
1106 ,NEW_LAST_PA_TASK_ID
1107 ,OLD_LAST_TXN_LINE_DETAIL_ID
1108 ,NEW_LAST_TXN_LINE_DETAIL_ID
1109 ,OLD_LAST_OE_PO_NUMBER
1110 ,NEW_LAST_OE_PO_NUMBER
1111 --start of column addition for eam integration--
1112 ,OLD_NETWORK_ASSET_FLAG
1113 ,NEW_NETWORK_ASSET_FLAG
1114 ,OLD_MAINTAINABLE_FLAG
1115 ,NEW_MAINTAINABLE_FLAG
1116 ,OLD_PN_LOCATION_ID
1117 ,NEW_PN_LOCATION_ID
1118 ,OLD_ASSET_CRITICALITY_CODE
1119 ,NEW_ASSET_CRITICALITY_CODE
1120 ,OLD_CATEGORY_ID
1121 ,NEW_CATEGORY_ID
1122 ,OLD_EQUIPMENT_GEN_OBJECT_ID
1123 ,NEW_EQUIPMENT_GEN_OBJECT_ID
1124 ,OLD_INSTANTIATION_FLAG
1125 ,NEW_INSTANTIATION_FLAG
1126 ,OLD_LINEAR_LOCATION_ID
1127 ,NEW_LINEAR_LOCATION_ID
1128 ,OLD_OPERATIONAL_LOG_FLAG
1129 ,NEW_OPERATIONAL_LOG_FLAG
1130 ,OLD_CHECKIN_STATUS
1131 ,NEW_CHECKIN_STATUS
1132 ,OLD_SUPPLIER_WARRANTY_EXP_DATE
1133 ,NEW_SUPPLIER_WARRANTY_EXP_DATE
1134 ,OLD_ATTRIBUTE16
1135 ,NEW_ATTRIBUTE16
1136 ,OLD_ATTRIBUTE17
1137 ,NEW_ATTRIBUTE17
1138 ,OLD_ATTRIBUTE18
1139 ,NEW_ATTRIBUTE18
1140 ,OLD_ATTRIBUTE19
1141 ,NEW_ATTRIBUTE19
1142 ,OLD_ATTRIBUTE20
1143 ,NEW_ATTRIBUTE20
1144 ,OLD_ATTRIBUTE21
1145 ,NEW_ATTRIBUTE21
1146 ,OLD_ATTRIBUTE22
1147 ,NEW_ATTRIBUTE22
1148 ,OLD_ATTRIBUTE23
1149 ,NEW_ATTRIBUTE23
1150 ,OLD_ATTRIBUTE24
1151 ,NEW_ATTRIBUTE24
1152 ,OLD_ATTRIBUTE25
1153 ,NEW_ATTRIBUTE25
1154 ,OLD_ATTRIBUTE26
1155 ,NEW_ATTRIBUTE26
1156 ,OLD_ATTRIBUTE27
1157 ,NEW_ATTRIBUTE27
1158 ,OLD_ATTRIBUTE28
1159 ,NEW_ATTRIBUTE28
1160 ,OLD_ATTRIBUTE29
1161 ,NEW_ATTRIBUTE29
1162 ,OLD_ATTRIBUTE30
1163 ,NEW_ATTRIBUTE30
1164 --end of column addition for eam integration--
1165 -- Addition of columns for FA Integration
1166 ,OLD_PURCHASE_UNIT_PRICE
1167 ,NEW_PURCHASE_UNIT_PRICE
1168 ,OLD_PURCHASE_CURRENCY_CODE
1169 ,NEW_PURCHASE_CURRENCY_CODE
1170 ,OLD_PAYABLES_UNIT_PRICE
1171 ,NEW_PAYABLES_UNIT_PRICE
1172 ,OLD_PAYABLES_CURRENCY_CODE
1173 ,NEW_PAYABLES_CURRENCY_CODE
1174 ,OLD_SALES_UNIT_PRICE
1175 ,NEW_SALES_UNIT_PRICE
1176 ,OLD_SALES_CURRENCY_CODE
1177 ,NEW_SALES_CURRENCY_CODE
1178 ,OLD_OPERATIONAL_STATUS_CODE
1179 ,NEW_OPERATIONAL_STATUS_CODE
1180 -- End addition of columns for FA Integration
1181 FROM CSI_ITEM_INSTANCES_H
1182 WHERE creation_date <= p_time
1183 and creation_date >= p_nearest_full_dump
1184 and instance_id = p_instance_id
1185 ORDER BY creation_date;
1186
1187 l_time_stamp DATE := p_time_stamp;
1188
1189 BEGIN
1190
1191 OPEN get_nearest_full_dump(x_instance_rec.instance_id,p_time_stamp);
1192 FETCH get_nearest_full_dump INTO l_instance_hist_id;
1193 CLOSE get_nearest_full_dump;
1194
1195 IF l_instance_hist_id IS NOT NULL THEN
1196 Initialize_inst_rec( x_instance_rec, l_instance_hist_id ,l_nearest_full_dump);
1197 ELSE
1198 Initialize_inst_rec_no_dump(x_instance_rec, x_instance_rec.instance_id, l_time_stamp);
1199 l_nearest_full_dump := l_time_stamp;
1200 -- If the user chooses a date before the creation date of the instance
1201 -- then raise an error
1202 IF p_time_stamp < l_time_stamp THEN
1203 FND_MESSAGE.SET_NAME('CSI','CSI_H_DATE_BEFORE_CRE_DATE');
1204 FND_MESSAGE.SET_TOKEN('CREATION_DATE',to_char(l_time_stamp, 'DD-MON-YYYY HH24:MI:SS'));
1205 FND_MESSAGE.SET_TOKEN('USER_DATE',to_char(p_time_stamp, 'DD-MON-YYYY HH24:MI:SS'));
1206 FND_MSG_PUB.Add;
1207 RAISE FND_API.G_EXC_ERROR;
1208 END IF;
1209 END IF;
1210 FOR C2 IN get_instance_hist(x_instance_rec.instance_id ,l_nearest_full_dump,p_time_stamp ) LOOP
1211
1212 IF (C2.OLD_INSTANCE_NUMBER IS NULL AND C2.NEW_INSTANCE_NUMBER IS NOT NULL)
1213 OR (C2.OLD_INSTANCE_NUMBER IS NOT NULL AND C2.NEW_INSTANCE_NUMBER IS NULL)
1214 OR (C2.OLD_INSTANCE_NUMBER <> C2.NEW_INSTANCE_NUMBER) THEN
1215 x_instance_rec.INSTANCE_NUMBER := C2.NEW_INSTANCE_NUMBER;
1216 END IF;
1217
1218 IF (C2.OLD_EXTERNAL_REFERENCE IS NULL AND C2.NEW_EXTERNAL_REFERENCE IS NOT NULL)
1219 OR (C2.OLD_EXTERNAL_REFERENCE IS NOT NULL AND C2.NEW_EXTERNAL_REFERENCE IS NULL)
1220 OR (C2.OLD_EXTERNAL_REFERENCE <> C2.NEW_EXTERNAL_REFERENCE) THEN
1221 x_instance_rec.EXTERNAL_REFERENCE := C2.NEW_EXTERNAL_REFERENCE;
1222 END IF;
1223
1224 IF (C2.OLD_INVENTORY_ITEM_ID IS NULL AND C2.NEW_INVENTORY_ITEM_ID IS NOT NULL)
1225 OR (C2.OLD_INVENTORY_ITEM_ID IS NOT NULL AND C2.NEW_INVENTORY_ITEM_ID IS NULL)
1226 OR (C2.OLD_INVENTORY_ITEM_ID <> C2.NEW_INVENTORY_ITEM_ID) THEN
1227 x_instance_rec.INVENTORY_ITEM_ID := C2.NEW_INVENTORY_ITEM_ID;
1228 END IF;
1229
1230 IF (C2.OLD_INVENTORY_REVISION IS NULL AND C2.NEW_INVENTORY_REVISION IS NOT NULL)
1231 OR (C2.OLD_INVENTORY_REVISION IS NOT NULL AND C2.NEW_INVENTORY_REVISION IS NULL)
1232 OR (C2.OLD_INVENTORY_REVISION <> C2.NEW_INVENTORY_REVISION) THEN
1233 x_instance_rec.INVENTORY_REVISION := C2.NEW_INVENTORY_REVISION;
1234 END IF;
1235
1236 IF (C2.OLD_INV_MASTER_ORGANIZATION_ID IS NULL AND C2.NEW_INV_MASTER_ORGANIZATION_ID IS NOT NULL)
1237 OR (C2.OLD_INV_MASTER_ORGANIZATION_ID IS NOT NULL AND C2.NEW_INV_MASTER_ORGANIZATION_ID IS NULL)
1238 OR (C2.OLD_INV_MASTER_ORGANIZATION_ID <> C2.NEW_INV_MASTER_ORGANIZATION_ID) THEN
1239 x_instance_rec.INV_MASTER_ORGANIZATION_ID := C2.NEW_INV_MASTER_ORGANIZATION_ID;
1240 END IF;
1241
1242 IF (C2.OLD_SERIAL_NUMBER IS NULL AND C2.NEW_SERIAL_NUMBER IS NOT NULL)
1243 OR (C2.OLD_SERIAL_NUMBER IS NOT NULL AND C2.NEW_SERIAL_NUMBER IS NULL)
1244 OR (C2.OLD_SERIAL_NUMBER <> C2.NEW_SERIAL_NUMBER) THEN
1245 x_instance_rec.SERIAL_NUMBER := C2.NEW_SERIAL_NUMBER;
1246 END IF;
1247
1248 IF (C2.OLD_MFG_SERIAL_NUMBER_FLAG IS NULL AND C2.NEW_MFG_SERIAL_NUMBER_FLAG IS NOT NULL)
1249 OR (C2.OLD_MFG_SERIAL_NUMBER_FLAG IS NOT NULL AND C2.NEW_MFG_SERIAL_NUMBER_FLAG IS NULL)
1250 OR (C2.OLD_MFG_SERIAL_NUMBER_FLAG <> C2.NEW_MFG_SERIAL_NUMBER_FLAG) THEN
1251 x_instance_rec.MFG_SERIAL_NUMBER_FLAG := C2.NEW_MFG_SERIAL_NUMBER_FLAG;
1252 END IF;
1253
1254 IF (C2.OLD_LOT_NUMBER IS NULL AND C2.NEW_LOT_NUMBER IS NOT NULL)
1255 OR (C2.OLD_LOT_NUMBER IS NOT NULL AND C2.NEW_LOT_NUMBER IS NULL)
1256 OR (C2.OLD_LOT_NUMBER <> C2.NEW_LOT_NUMBER) THEN
1257 x_instance_rec.LOT_NUMBER := C2.NEW_LOT_NUMBER;
1258 END IF;
1259
1260 IF (C2.OLD_QUANTITY IS NULL AND C2.NEW_QUANTITY IS NOT NULL)
1261 OR (C2.OLD_QUANTITY IS NOT NULL AND C2.NEW_QUANTITY IS NULL)
1262 OR (C2.OLD_QUANTITY <> C2.NEW_QUANTITY) THEN
1263 x_instance_rec.QUANTITY := C2.NEW_QUANTITY;
1264 END IF;
1265
1266 IF (C2.OLD_UNIT_OF_MEASURE IS NULL AND C2.NEW_UNIT_OF_MEASURE IS NOT NULL)
1267 OR (C2.OLD_UNIT_OF_MEASURE IS NOT NULL AND C2.NEW_UNIT_OF_MEASURE IS NULL)
1268 OR (C2.OLD_UNIT_OF_MEASURE <> C2.NEW_UNIT_OF_MEASURE) THEN
1269 x_instance_rec.UNIT_OF_MEASURE := C2.NEW_UNIT_OF_MEASURE;
1270 END IF;
1271
1272 IF (C2.OLD_ACCOUNTING_CLASS_CODE IS NULL AND C2.NEW_ACCOUNTING_CLASS_CODE IS NOT NULL)
1273 OR (C2.OLD_ACCOUNTING_CLASS_CODE IS NOT NULL AND C2.NEW_ACCOUNTING_CLASS_CODE IS NULL)
1274 OR (C2.OLD_ACCOUNTING_CLASS_CODE <> C2.NEW_ACCOUNTING_CLASS_CODE) THEN
1275 x_instance_rec.ACCOUNTING_CLASS_CODE := C2.NEW_ACCOUNTING_CLASS_CODE;
1276 END IF;
1277
1278 IF (C2.OLD_INSTANCE_CONDITION_ID IS NULL AND C2.NEW_INSTANCE_CONDITION_ID IS NOT NULL)
1279 OR (C2.OLD_INSTANCE_CONDITION_ID IS NOT NULL AND C2.NEW_INSTANCE_CONDITION_ID IS NULL)
1280 OR (C2.OLD_INSTANCE_CONDITION_ID <> C2.NEW_INSTANCE_CONDITION_ID) THEN
1281 x_instance_rec.INSTANCE_CONDITION_ID := C2.NEW_INSTANCE_CONDITION_ID;
1282 END IF;
1283
1284 IF (C2.OLD_INSTANCE_STATUS_ID IS NULL AND C2.NEW_INSTANCE_STATUS_ID IS NOT NULL)
1285 OR (C2.OLD_INSTANCE_STATUS_ID IS NOT NULL AND C2.NEW_INSTANCE_STATUS_ID IS NULL)
1286 OR (C2.OLD_INSTANCE_STATUS_ID <> C2.NEW_INSTANCE_STATUS_ID) THEN
1287 x_instance_rec.INSTANCE_STATUS_ID := C2.NEW_INSTANCE_STATUS_ID;
1288 END IF;
1289
1290 IF (C2.OLD_CUSTOMER_VIEW_FLAG IS NULL AND C2.NEW_CUSTOMER_VIEW_FLAG IS NOT NULL)
1291 OR (C2.OLD_CUSTOMER_VIEW_FLAG IS NOT NULL AND C2.NEW_CUSTOMER_VIEW_FLAG IS NULL)
1292 OR (C2.OLD_CUSTOMER_VIEW_FLAG <> C2.NEW_CUSTOMER_VIEW_FLAG) THEN
1293 x_instance_rec.CUSTOMER_VIEW_FLAG := C2.NEW_CUSTOMER_VIEW_FLAG;
1294 END IF;
1295
1296 IF (C2.OLD_MERCHANT_VIEW_FLAG IS NULL AND C2.NEW_MERCHANT_VIEW_FLAG IS NOT NULL)
1297 OR (C2.OLD_MERCHANT_VIEW_FLAG IS NOT NULL AND C2.NEW_MERCHANT_VIEW_FLAG IS NULL)
1298 OR (C2.OLD_MERCHANT_VIEW_FLAG <> C2.NEW_MERCHANT_VIEW_FLAG) THEN
1299 x_instance_rec.MERCHANT_VIEW_FLAG := C2.NEW_MERCHANT_VIEW_FLAG;
1300 END IF;
1301
1302
1303 IF (C2.OLD_SELLABLE_FLAG IS NULL AND C2.NEW_SELLABLE_FLAG IS NOT NULL)
1304 OR (C2.OLD_SELLABLE_FLAG IS NOT NULL AND C2.NEW_SELLABLE_FLAG IS NULL)
1305 OR (C2.OLD_SELLABLE_FLAG <> C2.NEW_SELLABLE_FLAG) THEN
1306 x_instance_rec.SELLABLE_FLAG := C2.NEW_SELLABLE_FLAG;
1307 END IF;
1308
1309 IF (C2.OLD_SYSTEM_ID IS NULL AND C2.NEW_SYSTEM_ID IS NOT NULL)
1310 OR (C2.OLD_SYSTEM_ID IS NOT NULL AND C2.NEW_SYSTEM_ID IS NULL)
1311 OR (C2.OLD_SYSTEM_ID <> C2.NEW_SYSTEM_ID) THEN
1312 x_instance_rec.SYSTEM_ID := C2.NEW_SYSTEM_ID;
1313 END IF;
1314
1315
1316 IF (C2.OLD_INSTANCE_TYPE_CODE IS NULL AND C2.NEW_INSTANCE_TYPE_CODE IS NOT NULL)
1317 OR (C2.OLD_INSTANCE_TYPE_CODE IS NOT NULL AND C2.NEW_INSTANCE_TYPE_CODE IS NULL)
1318 OR (C2.OLD_INSTANCE_TYPE_CODE <> C2.NEW_INSTANCE_TYPE_CODE) THEN
1319 x_instance_rec.INSTANCE_TYPE_CODE := C2.NEW_INSTANCE_TYPE_CODE;
1320 END IF;
1321
1322
1323 IF (C2.OLD_ACTIVE_START_DATE IS NULL AND C2.NEW_ACTIVE_START_DATE IS NOT NULL)
1324 OR (C2.OLD_ACTIVE_START_DATE IS NOT NULL AND C2.NEW_ACTIVE_START_DATE IS NULL)
1325 OR (C2.OLD_ACTIVE_START_DATE <> C2.NEW_ACTIVE_START_DATE) THEN
1326 x_instance_rec.ACTIVE_START_DATE := C2.NEW_ACTIVE_START_DATE;
1327 END IF;
1328
1329
1330 IF (C2.OLD_ACTIVE_END_DATE IS NULL AND C2.NEW_ACTIVE_END_DATE IS NOT NULL)
1331 OR (C2.OLD_ACTIVE_END_DATE IS NOT NULL AND C2.NEW_ACTIVE_END_DATE IS NULL)
1332 OR (C2.OLD_ACTIVE_END_DATE <> C2.NEW_ACTIVE_END_DATE) THEN
1333 x_instance_rec.ACTIVE_END_DATE := C2.NEW_ACTIVE_END_DATE;
1334 END IF;
1335
1336 -- Added for bug 2671179
1337 IF (C2.OLD_INSTALL_DATE IS NULL AND C2.NEW_INSTALL_DATE IS NOT NULL)
1338 OR (C2.OLD_INSTALL_DATE IS NOT NULL AND C2.NEW_INSTALL_DATE IS NULL)
1339 OR (C2.OLD_INSTALL_DATE <> C2.NEW_INSTALL_DATE) THEN
1340 x_instance_rec.INSTALL_DATE := C2.NEW_INSTALL_DATE;
1341 END IF;
1342
1343
1344 IF (C2.OLD_RETURN_BY_DATE IS NULL AND C2.NEW_RETURN_BY_DATE IS NOT NULL)
1345 OR (C2.OLD_RETURN_BY_DATE IS NOT NULL AND C2.NEW_RETURN_BY_DATE IS NULL)
1346 OR (C2.OLD_RETURN_BY_DATE <> C2.NEW_RETURN_BY_DATE) THEN
1347 x_instance_rec.RETURN_BY_DATE := C2.NEW_RETURN_BY_DATE;
1348 END IF;
1349
1350 IF (C2.OLD_ACTUAL_RETURN_DATE IS NULL AND C2.NEW_ACTUAL_RETURN_DATE IS NOT NULL)
1351 OR (C2.OLD_ACTUAL_RETURN_DATE IS NOT NULL AND C2.NEW_ACTUAL_RETURN_DATE IS NULL)
1352 OR (C2.OLD_ACTUAL_RETURN_DATE <> C2.NEW_ACTUAL_RETURN_DATE) THEN
1353 x_instance_rec.ACTUAL_RETURN_DATE := C2.NEW_ACTUAL_RETURN_DATE;
1354 END IF;
1355 -- End addition for bug 2671179
1356
1357 IF (C2.OLD_LOCATION_TYPE_CODE IS NULL AND C2.NEW_LOCATION_TYPE_CODE IS NOT NULL)
1358 OR (C2.OLD_LOCATION_TYPE_CODE IS NOT NULL AND C2.NEW_LOCATION_TYPE_CODE IS NULL)
1359 OR (C2.OLD_LOCATION_TYPE_CODE <> C2.NEW_LOCATION_TYPE_CODE) THEN
1360 x_instance_rec.LOCATION_TYPE_CODE := C2.NEW_LOCATION_TYPE_CODE;
1361 END IF;
1362
1363 IF (C2.OLD_LOCATION_ID IS NULL AND C2.NEW_LOCATION_ID IS NOT NULL)
1364 OR (C2.OLD_LOCATION_ID IS NOT NULL AND C2.NEW_LOCATION_ID IS NULL)
1365 OR (C2.OLD_LOCATION_ID <> C2.NEW_LOCATION_ID) THEN
1366 x_instance_rec.LOCATION_ID := C2.NEW_LOCATION_ID;
1367 END IF;
1368
1369
1370 IF (C2.OLD_INV_ORGANIZATION_ID IS NULL AND C2.NEW_INV_ORGANIZATION_ID IS NOT NULL)
1371 OR (C2.OLD_INV_ORGANIZATION_ID IS NOT NULL AND C2.NEW_INV_ORGANIZATION_ID IS NULL)
1372 OR (C2.OLD_INV_ORGANIZATION_ID <> C2.NEW_INV_ORGANIZATION_ID) THEN
1373 x_instance_rec.INV_ORGANIZATION_ID := C2.NEW_INV_ORGANIZATION_ID;
1374 END IF;
1375
1376
1377 IF (C2.OLD_INV_SUBINVENTORY_NAME IS NULL AND C2.NEW_INV_SUBINVENTORY_NAME IS NOT NULL)
1378 OR (C2.OLD_INV_SUBINVENTORY_NAME IS NOT NULL AND C2.NEW_INV_SUBINVENTORY_NAME IS NULL)
1379 OR (C2.OLD_INV_SUBINVENTORY_NAME <> C2.NEW_INV_SUBINVENTORY_NAME) THEN
1380 x_instance_rec.INV_SUBINVENTORY_NAME := C2.NEW_INV_SUBINVENTORY_NAME;
1381 END IF;
1382
1383 IF (C2.OLD_INV_LOCATOR_ID IS NULL AND C2.NEW_INV_LOCATOR_ID IS NOT NULL)
1384 OR (C2.OLD_INV_LOCATOR_ID IS NOT NULL AND C2.NEW_INV_LOCATOR_ID IS NULL)
1385 OR (C2.OLD_INV_LOCATOR_ID <> C2.NEW_INV_LOCATOR_ID) THEN
1386 x_instance_rec.INV_LOCATOR_ID := C2.NEW_INV_LOCATOR_ID;
1387 END IF;
1388
1389 IF (C2.OLD_PA_PROJECT_ID IS NULL AND C2.NEW_PA_PROJECT_ID IS NOT NULL)
1390 OR (C2.OLD_PA_PROJECT_ID IS NOT NULL AND C2.NEW_PA_PROJECT_ID IS NULL)
1391 OR (C2.OLD_PA_PROJECT_ID <> C2.NEW_PA_PROJECT_ID) THEN
1392 x_instance_rec.PA_PROJECT_ID := C2.NEW_PA_PROJECT_ID;
1393 END IF;
1394
1395 IF (C2.OLD_PA_PROJECT_TASK_ID IS NULL AND C2.NEW_PA_PROJECT_TASK_ID IS NOT NULL)
1396 OR (C2.OLD_PA_PROJECT_TASK_ID IS NOT NULL AND C2.NEW_PA_PROJECT_TASK_ID IS NULL)
1397 OR (C2.OLD_PA_PROJECT_TASK_ID <> C2.NEW_PA_PROJECT_TASK_ID) THEN
1398 x_instance_rec.PA_PROJECT_TASK_ID := C2.NEW_PA_PROJECT_TASK_ID;
1399 END IF;
1400
1401 IF (C2.OLD_IN_TRANSIT_ORDER_LINE_ID IS NULL AND C2.NEW_IN_TRANSIT_ORDER_LINE_ID IS NOT NULL)
1402 OR (C2.OLD_IN_TRANSIT_ORDER_LINE_ID IS NOT NULL AND C2.NEW_IN_TRANSIT_ORDER_LINE_ID IS NULL)
1403 OR (C2.OLD_IN_TRANSIT_ORDER_LINE_ID <> C2.NEW_IN_TRANSIT_ORDER_LINE_ID) THEN
1404 x_instance_rec.IN_TRANSIT_ORDER_LINE_ID := C2.NEW_IN_TRANSIT_ORDER_LINE_ID;
1405 END IF;
1406
1407 IF (C2.OLD_WIP_JOB_ID IS NULL AND C2.NEW_WIP_JOB_ID IS NOT NULL)
1408 OR (C2.OLD_WIP_JOB_ID IS NOT NULL AND C2.NEW_WIP_JOB_ID IS NULL)
1409 OR (C2.OLD_WIP_JOB_ID <> C2.NEW_WIP_JOB_ID) THEN
1410 x_instance_rec.WIP_JOB_ID := C2.NEW_WIP_JOB_ID;
1411 END IF;
1412
1413 IF (C2.OLD_PO_ORDER_LINE_ID IS NULL AND C2.NEW_PO_ORDER_LINE_ID IS NOT NULL)
1414 OR (C2.OLD_PO_ORDER_LINE_ID IS NOT NULL AND C2.NEW_PO_ORDER_LINE_ID IS NULL)
1415 OR (C2.OLD_PO_ORDER_LINE_ID <> C2.NEW_PO_ORDER_LINE_ID) THEN
1416 x_instance_rec.PO_ORDER_LINE_ID := C2.NEW_PO_ORDER_LINE_ID;
1417 END IF;
1418
1419 IF (C2.OLD_COMPLETENESS_FLAG IS NULL AND C2.NEW_COMPLETENESS_FLAG IS NOT NULL)
1420 OR (C2.OLD_COMPLETENESS_FLAG IS NOT NULL AND C2.NEW_COMPLETENESS_FLAG IS NULL)
1421 OR (C2.OLD_COMPLETENESS_FLAG <> C2.NEW_COMPLETENESS_FLAG) THEN
1422 x_instance_rec.COMPLETENESS_FLAG := C2.NEW_COMPLETENESS_FLAG;
1423 END IF;
1424
1425 IF (C2.OLD_CONTEXT IS NULL AND C2.NEW_CONTEXT IS NOT NULL)
1426 OR (C2.OLD_CONTEXT IS NOT NULL AND C2.NEW_CONTEXT IS NULL)
1427 OR (C2.OLD_CONTEXT <> C2.NEW_CONTEXT) THEN
1428 x_instance_rec.CONTEXT := C2.NEW_CONTEXT;
1429 END IF;
1430
1431 IF (C2.OLD_ATTRIBUTE1 IS NULL AND C2.NEW_ATTRIBUTE1 IS NOT NULL)
1432 OR (C2.OLD_ATTRIBUTE1 IS NOT NULL AND C2.NEW_ATTRIBUTE1 IS NULL)
1433 OR (C2.OLD_ATTRIBUTE1 <> C2.NEW_ATTRIBUTE1) THEN
1434 x_instance_rec.ATTRIBUTE1 := C2.NEW_ATTRIBUTE1;
1435 END IF;
1436
1437 IF (C2.OLD_ATTRIBUTE2 IS NULL AND C2.NEW_ATTRIBUTE2 IS NOT NULL)
1438 OR (C2.OLD_ATTRIBUTE2 IS NOT NULL AND C2.NEW_ATTRIBUTE2 IS NULL)
1439 OR (C2.OLD_ATTRIBUTE2 <> C2.NEW_ATTRIBUTE2) THEN
1440 x_instance_rec.ATTRIBUTE2 := C2.NEW_ATTRIBUTE2;
1441 END IF;
1442
1443 IF (C2.OLD_ATTRIBUTE3 IS NULL AND C2.NEW_ATTRIBUTE3 IS NOT NULL)
1444 OR (C2.OLD_ATTRIBUTE3 IS NOT NULL AND C2.NEW_ATTRIBUTE3 IS NULL)
1445 OR (C2.OLD_ATTRIBUTE3 <> C2.NEW_ATTRIBUTE3) THEN
1446 x_instance_rec.ATTRIBUTE3 := C2.NEW_ATTRIBUTE3;
1447 END IF;
1448
1449 IF (C2.OLD_ATTRIBUTE4 IS NULL AND C2.NEW_ATTRIBUTE4 IS NOT NULL)
1450 OR (C2.OLD_ATTRIBUTE4 IS NOT NULL AND C2.NEW_ATTRIBUTE4 IS NULL)
1451 OR (C2.OLD_ATTRIBUTE4 <> C2.NEW_ATTRIBUTE4) THEN
1452 x_instance_rec.ATTRIBUTE4 := C2.NEW_ATTRIBUTE4;
1453 END IF;
1454
1455
1456 IF (C2.OLD_ATTRIBUTE5 IS NULL AND C2.NEW_ATTRIBUTE5 IS NOT NULL)
1457 OR (C2.OLD_ATTRIBUTE5 IS NOT NULL AND C2.NEW_ATTRIBUTE5 IS NULL)
1458 OR (C2.OLD_ATTRIBUTE5 <> C2.NEW_ATTRIBUTE5) THEN
1459 x_instance_rec.ATTRIBUTE5 := C2.NEW_ATTRIBUTE5;
1460 END IF;
1461
1462
1463 IF (C2.OLD_ATTRIBUTE6 IS NULL AND C2.NEW_ATTRIBUTE6 IS NOT NULL)
1464 OR (C2.OLD_ATTRIBUTE6 IS NOT NULL AND C2.NEW_ATTRIBUTE6 IS NULL)
1465 OR (C2.OLD_ATTRIBUTE6 <> C2.NEW_ATTRIBUTE6) THEN
1466 x_instance_rec.ATTRIBUTE6 := C2.NEW_ATTRIBUTE6;
1467 END IF;
1468
1469 IF (C2.OLD_ATTRIBUTE7 IS NULL AND C2.NEW_ATTRIBUTE7 IS NOT NULL)
1470 OR (C2.OLD_ATTRIBUTE7 IS NOT NULL AND C2.NEW_ATTRIBUTE7 IS NULL)
1471 OR (C2.OLD_ATTRIBUTE7 <> C2.NEW_ATTRIBUTE7) THEN
1472 x_instance_rec.ATTRIBUTE7 := C2.NEW_ATTRIBUTE7;
1473 END IF;
1474
1475 IF (C2.OLD_ATTRIBUTE8 IS NULL AND C2.NEW_ATTRIBUTE8 IS NOT NULL)
1476 OR (C2.OLD_ATTRIBUTE8 IS NOT NULL AND C2.NEW_ATTRIBUTE8 IS NULL)
1477 OR (C2.OLD_ATTRIBUTE8 <> C2.NEW_ATTRIBUTE8) THEN
1478 x_instance_rec.ATTRIBUTE8 := C2.NEW_ATTRIBUTE8;
1479 END IF;
1480
1481 IF (C2.OLD_ATTRIBUTE9 IS NULL AND C2.NEW_ATTRIBUTE9 IS NOT NULL)
1482 OR (C2.OLD_ATTRIBUTE9 IS NOT NULL AND C2.NEW_ATTRIBUTE9 IS NULL)
1483 OR (C2.OLD_ATTRIBUTE9 <> C2.NEW_ATTRIBUTE9) THEN
1484 x_instance_rec.ATTRIBUTE9 := C2.NEW_ATTRIBUTE9; --Updated to 9 for bug 8624613
1485 END IF;
1486
1487
1488 IF (C2.OLD_ATTRIBUTE10 IS NULL AND C2.NEW_ATTRIBUTE10 IS NOT NULL)
1489 OR (C2.OLD_ATTRIBUTE10 IS NOT NULL AND C2.NEW_ATTRIBUTE10 IS NULL)
1490 OR (C2.OLD_ATTRIBUTE10 <> C2.NEW_ATTRIBUTE10) THEN
1491 x_instance_rec.ATTRIBUTE10 := C2.NEW_ATTRIBUTE10;
1492 END IF;
1493
1494
1495
1496 IF (C2.OLD_ATTRIBUTE11 IS NULL AND C2.NEW_ATTRIBUTE11 IS NOT NULL)
1497 OR (C2.OLD_ATTRIBUTE11 IS NOT NULL AND C2.NEW_ATTRIBUTE11 IS NULL)
1498 OR (C2.OLD_ATTRIBUTE11 <> C2.NEW_ATTRIBUTE11) THEN
1499 x_instance_rec.ATTRIBUTE11 := C2.NEW_ATTRIBUTE11;
1500 END IF;
1501
1502 IF (C2.OLD_ATTRIBUTE12 IS NULL AND C2.NEW_ATTRIBUTE12 IS NOT NULL)
1503 OR (C2.OLD_ATTRIBUTE12 IS NOT NULL AND C2.NEW_ATTRIBUTE12 IS NULL)
1504 OR (C2.OLD_ATTRIBUTE12 <> C2.NEW_ATTRIBUTE12) THEN
1505 x_instance_rec.ATTRIBUTE12 := C2.NEW_ATTRIBUTE12;
1506 END IF;
1507
1508
1509 IF (C2.OLD_ATTRIBUTE13 IS NULL AND C2.NEW_ATTRIBUTE13 IS NOT NULL)
1510 OR (C2.OLD_ATTRIBUTE13 IS NOT NULL AND C2.NEW_ATTRIBUTE13 IS NULL)
1511 OR (C2.OLD_ATTRIBUTE13 <> C2.NEW_ATTRIBUTE13) THEN
1512 x_instance_rec.ATTRIBUTE13 := C2.NEW_ATTRIBUTE13;
1513 END IF;
1514
1515
1516 IF (C2.OLD_ATTRIBUTE14 IS NULL AND C2.NEW_ATTRIBUTE14 IS NOT NULL)
1517 OR (C2.OLD_ATTRIBUTE14 IS NOT NULL AND C2.NEW_ATTRIBUTE14 IS NULL)
1518 OR (C2.OLD_ATTRIBUTE14 <> C2.NEW_ATTRIBUTE14) THEN
1519 x_instance_rec.ATTRIBUTE14 := C2.NEW_ATTRIBUTE14;
1520 END IF;
1521
1522 IF (C2.OLD_ATTRIBUTE15 IS NULL AND C2.NEW_ATTRIBUTE15 IS NOT NULL)
1523 OR (C2.OLD_ATTRIBUTE15 IS NOT NULL AND C2.NEW_ATTRIBUTE15 IS NULL)
1524 OR (C2.OLD_ATTRIBUTE15 <> C2.NEW_ATTRIBUTE15) THEN
1525 x_instance_rec.ATTRIBUTE15 := C2.NEW_ATTRIBUTE15;
1526 END IF;
1527
1528 IF (C2.OLD_INST_LOC_TYPE_CODE IS NULL AND C2.NEW_INST_LOC_TYPE_CODE IS NOT NULL)
1529 OR (C2.OLD_INST_LOC_TYPE_CODE IS NOT NULL AND C2.NEW_INST_LOC_TYPE_CODE IS NULL)
1530 OR (C2.OLD_INST_LOC_TYPE_CODE <> C2.NEW_INST_LOC_TYPE_CODE) THEN
1531 x_instance_rec.INSTALL_LOCATION_TYPE_CODE := C2.NEW_INST_LOC_TYPE_CODE;
1532 END IF;
1533
1534 IF (C2.OLD_INST_LOC_ID IS NULL AND C2.NEW_INST_LOC_ID IS NOT NULL)
1535 OR (C2.OLD_INST_LOC_ID IS NOT NULL AND C2.NEW_INST_LOC_ID IS NULL)
1536 OR (C2.OLD_INST_LOC_ID <> C2.NEW_INST_LOC_ID) THEN
1537 x_instance_rec.INSTALL_LOCATION_ID := C2.NEW_INST_LOC_ID;
1538 END IF;
1539
1540 IF (C2.OLD_INST_USAGE_CODE IS NULL AND C2.NEW_INST_USAGE_CODE IS NOT NULL)
1541 OR (C2.OLD_INST_USAGE_CODE IS NOT NULL AND C2.NEW_INST_USAGE_CODE IS NULL)
1542 OR (C2.OLD_INST_USAGE_CODE <> C2.NEW_INST_USAGE_CODE) THEN
1543 x_instance_rec.INSTANCE_USAGE_CODE := C2.NEW_INST_USAGE_CODE;
1544 END IF;
1545
1546 IF (C2.OLD_LAST_VLD_ORGANIZATION_ID IS NULL AND C2.NEW_LAST_VLD_ORGANIZATION_ID IS NOT NULL)
1547 OR (C2.OLD_LAST_VLD_ORGANIZATION_ID IS NOT NULL AND C2.NEW_LAST_VLD_ORGANIZATION_ID IS NULL)
1548 OR (C2.OLD_LAST_VLD_ORGANIZATION_ID <> C2.NEW_LAST_VLD_ORGANIZATION_ID) THEN
1549 x_instance_rec.VLD_ORGANIZATION_ID := C2.NEW_LAST_VLD_ORGANIZATION_ID;
1550 END IF;
1551
1552 IF (C2.OLD_OE_AGREEMENT_ID IS NULL AND C2.NEW_OE_AGREEMENT_ID IS NOT NULL)
1553 OR (C2.OLD_OE_AGREEMENT_ID IS NOT NULL AND C2.NEW_OE_AGREEMENT_ID IS NULL)
1554 OR (C2.OLD_OE_AGREEMENT_ID <> C2.NEW_OE_AGREEMENT_ID) THEN
1555 x_instance_rec.LAST_OE_AGREEMENT_ID := C2.NEW_OE_AGREEMENT_ID;
1556 END IF;
1557
1558 IF (C2.OLD_LAST_OE_ORDER_LINE_ID IS NULL AND C2.NEW_LAST_OE_ORDER_LINE_ID IS NOT NULL)
1559 OR (C2.OLD_LAST_OE_ORDER_LINE_ID IS NOT NULL AND C2.NEW_LAST_OE_ORDER_LINE_ID IS NULL)
1560 OR (C2.OLD_LAST_OE_ORDER_LINE_ID <> C2.NEW_LAST_OE_ORDER_LINE_ID) THEN
1561 x_instance_rec.LAST_OE_ORDER_LINE_ID := C2.NEW_LAST_OE_ORDER_LINE_ID;
1562 END IF;
1563
1564 IF (C2.OLD_LAST_OE_RMA_LINE_ID IS NULL AND C2.NEW_LAST_OE_RMA_LINE_ID IS NOT NULL)
1565 OR (C2.OLD_LAST_OE_RMA_LINE_ID IS NOT NULL AND C2.NEW_LAST_OE_RMA_LINE_ID IS NULL)
1566 OR (C2.OLD_LAST_OE_RMA_LINE_ID <> C2.NEW_LAST_OE_RMA_LINE_ID) THEN
1567 x_instance_rec.LAST_OE_RMA_LINE_ID := C2.NEW_LAST_OE_RMA_LINE_ID;
1568 END IF;
1569
1570 IF (C2.OLD_LAST_WIP_JOB_ID IS NULL AND C2.NEW_LAST_WIP_JOB_ID IS NOT NULL)
1571 OR (C2.OLD_LAST_WIP_JOB_ID IS NOT NULL AND C2.NEW_LAST_WIP_JOB_ID IS NULL)
1572 OR (C2.OLD_LAST_WIP_JOB_ID <> C2.NEW_LAST_WIP_JOB_ID) THEN
1573 x_instance_rec.LAST_WIP_JOB_ID := C2.NEW_LAST_WIP_JOB_ID;
1574 END IF;
1575
1576 IF (C2.OLD_LAST_PO_PO_LINE_ID IS NULL AND C2.NEW_LAST_PO_PO_LINE_ID IS NOT NULL)
1577 OR (C2.OLD_LAST_PO_PO_LINE_ID IS NOT NULL AND C2.NEW_LAST_PO_PO_LINE_ID IS NULL)
1578 OR (C2.OLD_LAST_PO_PO_LINE_ID <> C2.NEW_LAST_PO_PO_LINE_ID) THEN
1579 x_instance_rec.LAST_PO_PO_LINE_ID := C2.NEW_LAST_PO_PO_LINE_ID;
1580 END IF;
1581
1582 IF (C2.OLD_LAST_PA_PROJECT_ID IS NULL AND C2.NEW_LAST_PA_PROJECT_ID IS NOT NULL)
1583 OR (C2.OLD_LAST_PA_PROJECT_ID IS NOT NULL AND C2.NEW_LAST_PA_PROJECT_ID IS NULL)
1584 OR (C2.OLD_LAST_PA_PROJECT_ID <> C2.NEW_LAST_PA_PROJECT_ID) THEN
1585 x_instance_rec.LAST_PA_PROJECT_ID := C2.NEW_LAST_PA_PROJECT_ID;
1586 END IF;
1587
1588 IF (C2.OLD_LAST_PA_TASK_ID IS NULL AND C2.NEW_LAST_PA_TASK_ID IS NOT NULL)
1589 OR (C2.OLD_LAST_PA_TASK_ID IS NOT NULL AND C2.NEW_LAST_PA_TASK_ID IS NULL)
1590 OR (C2.OLD_LAST_PA_TASK_ID <> C2.NEW_LAST_PA_TASK_ID) THEN
1591 x_instance_rec.LAST_PA_TASK_ID := C2.NEW_LAST_PA_TASK_ID;
1592 END IF;
1593
1594 IF (C2.OLD_LAST_TXN_LINE_DETAIL_ID IS NULL AND C2.NEW_LAST_TXN_LINE_DETAIL_ID IS NOT NULL)
1595 OR (C2.OLD_LAST_TXN_LINE_DETAIL_ID IS NOT NULL AND C2.NEW_LAST_TXN_LINE_DETAIL_ID IS NULL)
1596 OR (C2.OLD_LAST_TXN_LINE_DETAIL_ID <> C2.NEW_LAST_TXN_LINE_DETAIL_ID) THEN
1597 x_instance_rec.LAST_TXN_LINE_DETAIL_ID := C2.NEW_LAST_TXN_LINE_DETAIL_ID;
1598 END IF;
1599
1600 IF (C2.OLD_LAST_OE_PO_NUMBER IS NULL AND C2.NEW_LAST_OE_PO_NUMBER IS NOT NULL)
1601 OR (C2.OLD_LAST_OE_PO_NUMBER IS NOT NULL AND C2.NEW_LAST_OE_PO_NUMBER IS NULL)
1602 OR (C2.OLD_LAST_OE_PO_NUMBER <> C2.NEW_LAST_OE_PO_NUMBER) THEN
1603 x_instance_rec.LAST_OE_PO_NUMBER := C2.NEW_LAST_OE_PO_NUMBER;
1604 END IF;
1605
1606 -- sguthiva added for att enhancements
1607 IF (C2.OLD_CONFIG_INST_REV_NUM IS NULL AND C2.NEW_CONFIG_INST_REV_NUM IS NOT NULL)
1608 OR (C2.OLD_CONFIG_INST_REV_NUM IS NOT NULL AND C2.NEW_CONFIG_INST_REV_NUM IS NULL)
1609 OR (C2.OLD_CONFIG_INST_REV_NUM <> C2.NEW_CONFIG_INST_REV_NUM) THEN
1610 x_instance_rec.CONFIG_INST_REV_NUM := C2.NEW_CONFIG_INST_REV_NUM;
1611 END IF;
1612
1613 IF (C2.OLD_CONFIG_VALID_STATUS IS NULL AND C2.NEW_CONFIG_VALID_STATUS IS NOT NULL)
1614 OR (C2.OLD_CONFIG_VALID_STATUS IS NOT NULL AND C2.NEW_CONFIG_VALID_STATUS IS NULL)
1615 OR (C2.OLD_CONFIG_VALID_STATUS <> C2.NEW_CONFIG_VALID_STATUS) THEN
1616 x_instance_rec.CONFIG_VALID_STATUS := C2.NEW_CONFIG_VALID_STATUS;
1617 END IF;
1618
1619 IF (C2.OLD_INSTANCE_DESCRIPTION IS NULL AND C2.NEW_INSTANCE_DESCRIPTION IS NOT NULL)
1620 OR (C2.OLD_INSTANCE_DESCRIPTION IS NOT NULL AND C2.NEW_INSTANCE_DESCRIPTION IS NULL)
1621 OR (C2.OLD_INSTANCE_DESCRIPTION <> C2.NEW_INSTANCE_DESCRIPTION) THEN
1622 x_instance_rec.INSTANCE_DESCRIPTION := C2.NEW_INSTANCE_DESCRIPTION;
1623 END IF;
1624 -- End of addition
1625
1626 --start of code for eam integration--
1627 IF (C2.OLD_NETWORK_ASSET_FLAG IS NULL AND C2.NEW_NETWORK_ASSET_FLAG IS NOT NULL)
1628 OR (C2.OLD_NETWORK_ASSET_FLAG IS NOT NULL AND C2.NEW_NETWORK_ASSET_FLAG IS NULL)
1629 OR (C2.OLD_NETWORK_ASSET_FLAG <> C2.NEW_NETWORK_ASSET_FLAG) THEN
1630 x_instance_rec.NETWORK_ASSET_FLAG := C2.NEW_NETWORK_ASSET_FLAG;
1631 END IF;
1632
1633 IF (C2.OLD_MAINTAINABLE_FLAG IS NULL AND C2.NEW_MAINTAINABLE_FLAG IS NOT NULL)
1634 OR (C2.OLD_MAINTAINABLE_FLAG IS NOT NULL AND C2.NEW_MAINTAINABLE_FLAG IS NULL)
1635 OR (C2.OLD_MAINTAINABLE_FLAG <> C2.NEW_MAINTAINABLE_FLAG) THEN
1636 x_instance_rec.MAINTAINABLE_FLAG := C2.NEW_MAINTAINABLE_FLAG;
1637 END IF;
1638
1639 IF (C2.OLD_PN_LOCATION_ID IS NULL AND C2.NEW_PN_LOCATION_ID IS NOT NULL)
1640 OR (C2.OLD_PN_LOCATION_ID IS NOT NULL AND C2.NEW_PN_LOCATION_ID IS NULL)
1641 OR (C2.OLD_PN_LOCATION_ID <> C2.NEW_PN_LOCATION_ID) THEN
1642 x_instance_rec.PN_LOCATION_ID := C2.NEW_PN_LOCATION_ID;
1643 END IF;
1644
1645 IF (C2.OLD_ASSET_CRITICALITY_CODE IS NULL AND C2.NEW_ASSET_CRITICALITY_CODE IS NOT NULL)
1646 OR (C2.OLD_ASSET_CRITICALITY_CODE IS NOT NULL AND C2.NEW_ASSET_CRITICALITY_CODE IS NULL)
1647 OR (C2.OLD_ASSET_CRITICALITY_CODE <> C2.NEW_ASSET_CRITICALITY_CODE) THEN
1648 x_instance_rec.ASSET_CRITICALITY_CODE := C2.NEW_ASSET_CRITICALITY_CODE;
1649 END IF;
1650
1651 IF (C2.OLD_CATEGORY_ID IS NULL AND C2.NEW_CATEGORY_ID IS NOT NULL)
1652 OR (C2.OLD_CATEGORY_ID IS NOT NULL AND C2.NEW_CATEGORY_ID IS NULL)
1653 OR (C2.OLD_CATEGORY_ID <> C2.NEW_CATEGORY_ID) THEN
1654 x_instance_rec.CATEGORY_ID := C2.NEW_CATEGORY_ID;
1655 END IF;
1656
1657 IF (C2.OLD_EQUIPMENT_GEN_OBJECT_ID IS NULL AND C2.NEW_EQUIPMENT_GEN_OBJECT_ID IS NOT NULL)
1658 OR (C2.OLD_EQUIPMENT_GEN_OBJECT_ID IS NOT NULL AND C2.NEW_EQUIPMENT_GEN_OBJECT_ID IS NULL)
1659 OR (C2.OLD_EQUIPMENT_GEN_OBJECT_ID <> C2.NEW_EQUIPMENT_GEN_OBJECT_ID) THEN
1660 x_instance_rec.EQUIPMENT_GEN_OBJECT_ID := C2.NEW_EQUIPMENT_GEN_OBJECT_ID;
1661 END IF;
1662
1663 IF (C2.OLD_INSTANTIATION_FLAG IS NULL AND C2.NEW_INSTANTIATION_FLAG IS NOT NULL)
1664 OR (C2.OLD_INSTANTIATION_FLAG IS NOT NULL AND C2.NEW_INSTANTIATION_FLAG IS NULL)
1665 OR (C2.OLD_INSTANTIATION_FLAG <> C2.NEW_INSTANTIATION_FLAG) THEN
1666 x_instance_rec.INSTANTIATION_FLAG := C2.NEW_INSTANTIATION_FLAG;
1667 END IF;
1668
1669 IF (C2.OLD_LINEAR_LOCATION_ID IS NULL AND C2.NEW_LINEAR_LOCATION_ID IS NOT NULL)
1670 OR (C2.OLD_LINEAR_LOCATION_ID IS NOT NULL AND C2.NEW_LINEAR_LOCATION_ID IS NULL)
1671 OR (C2.OLD_LINEAR_LOCATION_ID <> C2.NEW_LINEAR_LOCATION_ID) THEN
1672 x_instance_rec.LINEAR_LOCATION_ID := C2.NEW_LINEAR_LOCATION_ID;
1673 END IF;
1674
1675 IF (C2.OLD_OPERATIONAL_LOG_FLAG IS NULL AND C2.NEW_OPERATIONAL_LOG_FLAG IS NOT NULL)
1676 OR (C2.OLD_OPERATIONAL_LOG_FLAG IS NOT NULL AND C2.NEW_OPERATIONAL_LOG_FLAG IS NULL)
1677 OR (C2.OLD_OPERATIONAL_LOG_FLAG <> C2.NEW_OPERATIONAL_LOG_FLAG) THEN
1678 x_instance_rec.OPERATIONAL_LOG_FLAG := C2.NEW_OPERATIONAL_LOG_FLAG;
1679 END IF;
1680
1681 IF (C2.OLD_CHECKIN_STATUS IS NULL AND C2.NEW_CHECKIN_STATUS IS NOT NULL)
1682 OR (C2.OLD_CHECKIN_STATUS IS NOT NULL AND C2.NEW_CHECKIN_STATUS IS NULL)
1683 OR (C2.OLD_CHECKIN_STATUS <> C2.NEW_CHECKIN_STATUS) THEN
1684 x_instance_rec.CHECKIN_STATUS := C2.NEW_CHECKIN_STATUS;
1685 END IF;
1686
1687 IF (C2.OLD_SUPPLIER_WARRANTY_EXP_DATE IS NULL AND C2.NEW_SUPPLIER_WARRANTY_EXP_DATE IS NOT NULL)
1688 OR (C2.OLD_SUPPLIER_WARRANTY_EXP_DATE IS NOT NULL AND C2.NEW_SUPPLIER_WARRANTY_EXP_DATE IS NULL)
1689 OR (C2.OLD_SUPPLIER_WARRANTY_EXP_DATE <> C2.NEW_SUPPLIER_WARRANTY_EXP_DATE) THEN
1690 x_instance_rec.SUPPLIER_WARRANTY_EXP_DATE := C2.NEW_SUPPLIER_WARRANTY_EXP_DATE;
1691 END IF;
1692
1693 IF (C2.OLD_ATTRIBUTE16 IS NULL AND C2.NEW_ATTRIBUTE16 IS NOT NULL)
1694 OR (C2.OLD_ATTRIBUTE16 IS NOT NULL AND C2.NEW_ATTRIBUTE16 IS NULL)
1695 OR (C2.OLD_ATTRIBUTE16 <> C2.NEW_ATTRIBUTE16) THEN
1696 x_instance_rec.ATTRIBUTE16 := C2.NEW_ATTRIBUTE16;
1697 END IF;
1698
1699 IF (C2.OLD_ATTRIBUTE17 IS NULL AND C2.NEW_ATTRIBUTE17 IS NOT NULL)
1700 OR (C2.OLD_ATTRIBUTE17 IS NOT NULL AND C2.NEW_ATTRIBUTE17 IS NULL)
1701 OR (C2.OLD_ATTRIBUTE17 <> C2.NEW_ATTRIBUTE17) THEN
1702 x_instance_rec.ATTRIBUTE17 := C2.NEW_ATTRIBUTE17;
1703 END IF;
1704
1705 IF (C2.OLD_ATTRIBUTE18 IS NULL AND C2.NEW_ATTRIBUTE18 IS NOT NULL)
1706 OR (C2.OLD_ATTRIBUTE18 IS NOT NULL AND C2.NEW_ATTRIBUTE18 IS NULL)
1707 OR (C2.OLD_ATTRIBUTE18 <> C2.NEW_ATTRIBUTE18) THEN
1708 x_instance_rec.ATTRIBUTE18 := C2.NEW_ATTRIBUTE18;
1709 END IF;
1710
1711 IF (C2.OLD_ATTRIBUTE19 IS NULL AND C2.NEW_ATTRIBUTE19 IS NOT NULL)
1712 OR (C2.OLD_ATTRIBUTE19 IS NOT NULL AND C2.NEW_ATTRIBUTE19 IS NULL)
1713 OR (C2.OLD_ATTRIBUTE19 <> C2.NEW_ATTRIBUTE19) THEN
1714 x_instance_rec.ATTRIBUTE19 := C2.NEW_ATTRIBUTE19;
1715 END IF;
1716
1717 IF (C2.OLD_ATTRIBUTE20 IS NULL AND C2.NEW_ATTRIBUTE20 IS NOT NULL)
1718 OR (C2.OLD_ATTRIBUTE20 IS NOT NULL AND C2.NEW_ATTRIBUTE20 IS NULL)
1719 OR (C2.OLD_ATTRIBUTE20 <> C2.NEW_ATTRIBUTE20) THEN
1720 x_instance_rec.ATTRIBUTE20 := C2.NEW_ATTRIBUTE20;
1721 END IF;
1722
1723 IF (C2.OLD_ATTRIBUTE21 IS NULL AND C2.NEW_ATTRIBUTE21 IS NOT NULL)
1724 OR (C2.OLD_ATTRIBUTE21 IS NOT NULL AND C2.NEW_ATTRIBUTE21 IS NULL)
1725 OR (C2.OLD_ATTRIBUTE21 <> C2.NEW_ATTRIBUTE21) THEN
1726 x_instance_rec.ATTRIBUTE21 := C2.NEW_ATTRIBUTE21;
1727 END IF;
1728
1729 IF (C2.OLD_ATTRIBUTE22 IS NULL AND C2.NEW_ATTRIBUTE22 IS NOT NULL)
1730 OR (C2.OLD_ATTRIBUTE22 IS NOT NULL AND C2.NEW_ATTRIBUTE22 IS NULL)
1731 OR (C2.OLD_ATTRIBUTE22 <> C2.NEW_ATTRIBUTE22) THEN
1732 x_instance_rec.ATTRIBUTE22 := C2.NEW_ATTRIBUTE22;
1733 END IF;
1734
1735 IF (C2.OLD_ATTRIBUTE23 IS NULL AND C2.NEW_ATTRIBUTE23 IS NOT NULL)
1736 OR (C2.OLD_ATTRIBUTE23 IS NOT NULL AND C2.NEW_ATTRIBUTE23 IS NULL)
1737 OR (C2.OLD_ATTRIBUTE23 <> C2.NEW_ATTRIBUTE23) THEN
1738 x_instance_rec.ATTRIBUTE23 := C2.NEW_ATTRIBUTE23;
1739 END IF;
1740
1741 IF (C2.OLD_ATTRIBUTE24 IS NULL AND C2.NEW_ATTRIBUTE24 IS NOT NULL)
1742 OR (C2.OLD_ATTRIBUTE24 IS NOT NULL AND C2.NEW_ATTRIBUTE24 IS NULL)
1743 OR (C2.OLD_ATTRIBUTE24 <> C2.NEW_ATTRIBUTE24) THEN
1744 x_instance_rec.ATTRIBUTE24 := C2.NEW_ATTRIBUTE24;
1745 END IF;
1746
1747 IF (C2.OLD_ATTRIBUTE25 IS NULL AND C2.NEW_ATTRIBUTE25 IS NOT NULL)
1748 OR (C2.OLD_ATTRIBUTE25 IS NOT NULL AND C2.NEW_ATTRIBUTE25 IS NULL)
1749 OR (C2.OLD_ATTRIBUTE25 <> C2.NEW_ATTRIBUTE25) THEN
1750 x_instance_rec.ATTRIBUTE25 := C2.NEW_ATTRIBUTE25;
1751 END IF;
1752
1753 IF (C2.OLD_ATTRIBUTE26 IS NULL AND C2.NEW_ATTRIBUTE26 IS NOT NULL)
1754 OR (C2.OLD_ATTRIBUTE26 IS NOT NULL AND C2.NEW_ATTRIBUTE26 IS NULL)
1755 OR (C2.OLD_ATTRIBUTE26 <> C2.NEW_ATTRIBUTE26) THEN
1756 x_instance_rec.ATTRIBUTE26 := C2.NEW_ATTRIBUTE26;
1757 END IF;
1758
1759 IF (C2.OLD_ATTRIBUTE27 IS NULL AND C2.NEW_ATTRIBUTE27 IS NOT NULL)
1760 OR (C2.OLD_ATTRIBUTE27 IS NOT NULL AND C2.NEW_ATTRIBUTE27 IS NULL)
1761 OR (C2.OLD_ATTRIBUTE27 <> C2.NEW_ATTRIBUTE27) THEN
1762 x_instance_rec.ATTRIBUTE27 := C2.NEW_ATTRIBUTE27;
1763 END IF;
1764
1765 IF (C2.OLD_ATTRIBUTE28 IS NULL AND C2.NEW_ATTRIBUTE28 IS NOT NULL)
1766 OR (C2.OLD_ATTRIBUTE28 IS NOT NULL AND C2.NEW_ATTRIBUTE28 IS NULL)
1767 OR (C2.OLD_ATTRIBUTE28 <> C2.NEW_ATTRIBUTE28) THEN
1768 x_instance_rec.ATTRIBUTE28 := C2.NEW_ATTRIBUTE28;
1769 END IF;
1770
1771 IF (C2.OLD_ATTRIBUTE29 IS NULL AND C2.NEW_ATTRIBUTE29 IS NOT NULL)
1772 OR (C2.OLD_ATTRIBUTE29 IS NOT NULL AND C2.NEW_ATTRIBUTE29 IS NULL)
1773 OR (C2.OLD_ATTRIBUTE29 <> C2.NEW_ATTRIBUTE29) THEN
1774 x_instance_rec.ATTRIBUTE29 := C2.NEW_ATTRIBUTE29;
1775 END IF;
1776
1777 IF (C2.OLD_ATTRIBUTE30 IS NULL AND C2.NEW_ATTRIBUTE30 IS NOT NULL)
1778 OR (C2.OLD_ATTRIBUTE30 IS NOT NULL AND C2.NEW_ATTRIBUTE30 IS NULL)
1779 OR (C2.OLD_ATTRIBUTE30 <> C2.NEW_ATTRIBUTE30) THEN
1780 x_instance_rec.ATTRIBUTE30 := C2.NEW_ATTRIBUTE30;
1781 END IF;
1782 --end of code for eam integration--
1783
1784 -- Addition of columns for FA Integration
1785 IF (C2.OLD_PURCHASE_UNIT_PRICE IS NULL AND C2.NEW_PURCHASE_UNIT_PRICE IS NOT NULL)
1786 OR (C2.OLD_PURCHASE_UNIT_PRICE IS NOT NULL AND C2.NEW_PURCHASE_UNIT_PRICE IS NULL)
1787 OR (C2.OLD_PURCHASE_UNIT_PRICE <> C2.NEW_PURCHASE_UNIT_PRICE) THEN
1788 x_instance_rec.PURCHASE_UNIT_PRICE := C2.NEW_PURCHASE_UNIT_PRICE;
1789 END IF;
1790
1791 IF (C2.OLD_PURCHASE_CURRENCY_CODE IS NULL AND C2.NEW_PURCHASE_CURRENCY_CODE IS NOT NULL)
1792 OR (C2.OLD_PURCHASE_CURRENCY_CODE IS NOT NULL AND C2.NEW_PURCHASE_CURRENCY_CODE IS NULL)
1793 OR (C2.OLD_PURCHASE_CURRENCY_CODE <> C2.NEW_PURCHASE_CURRENCY_CODE) THEN
1794 x_instance_rec.PURCHASE_CURRENCY_CODE := C2.NEW_PURCHASE_CURRENCY_CODE;
1795 END IF;
1796
1797 IF (C2.OLD_PAYABLES_UNIT_PRICE IS NULL AND C2.NEW_PAYABLES_UNIT_PRICE IS NOT NULL)
1798 OR (C2.OLD_PAYABLES_UNIT_PRICE IS NOT NULL AND C2.NEW_PAYABLES_UNIT_PRICE IS NULL)
1799 OR (C2.OLD_PAYABLES_UNIT_PRICE <> C2.NEW_PAYABLES_UNIT_PRICE) THEN
1800 x_instance_rec.PAYABLES_UNIT_PRICE := C2.NEW_PAYABLES_UNIT_PRICE;
1801 END IF;
1802
1803 IF (C2.OLD_PAYABLES_CURRENCY_CODE IS NULL AND C2.NEW_PAYABLES_CURRENCY_CODE IS NOT NULL)
1804 OR (C2.OLD_PAYABLES_CURRENCY_CODE IS NOT NULL AND C2.NEW_PAYABLES_CURRENCY_CODE IS NULL)
1805 OR (C2.OLD_PAYABLES_CURRENCY_CODE <> C2.NEW_PAYABLES_CURRENCY_CODE) THEN
1806 x_instance_rec.PAYABLES_CURRENCY_CODE := C2.NEW_PAYABLES_CURRENCY_CODE;
1807 END IF;
1808
1809 IF (C2.OLD_SALES_UNIT_PRICE IS NULL AND C2.NEW_SALES_UNIT_PRICE IS NOT NULL)
1810 OR (C2.OLD_SALES_UNIT_PRICE IS NOT NULL AND C2.NEW_SALES_UNIT_PRICE IS NULL)
1811 OR (C2.OLD_SALES_UNIT_PRICE <> C2.NEW_SALES_UNIT_PRICE) THEN
1812 x_instance_rec.SALES_UNIT_PRICE := C2.NEW_SALES_UNIT_PRICE;
1813 END IF;
1814
1815 IF (C2.OLD_SALES_CURRENCY_CODE IS NULL AND C2.NEW_SALES_CURRENCY_CODE IS NOT NULL)
1816 OR (C2.OLD_SALES_CURRENCY_CODE IS NOT NULL AND C2.NEW_SALES_CURRENCY_CODE IS NULL)
1817 OR (C2.OLD_SALES_CURRENCY_CODE <> C2.NEW_SALES_CURRENCY_CODE) THEN
1818 x_instance_rec.SALES_CURRENCY_CODE := C2.NEW_SALES_CURRENCY_CODE;
1819 END IF;
1820
1821 IF (C2.OLD_OPERATIONAL_STATUS_CODE IS NULL AND C2.NEW_OPERATIONAL_STATUS_CODE IS NOT NULL)
1822 OR (C2.OLD_OPERATIONAL_STATUS_CODE IS NOT NULL AND C2.NEW_OPERATIONAL_STATUS_CODE IS NULL)
1823 OR (C2.OLD_OPERATIONAL_STATUS_CODE <> C2.NEW_OPERATIONAL_STATUS_CODE) THEN
1824 x_instance_rec.OPERATIONAL_STATUS_CODE := C2.NEW_OPERATIONAL_STATUS_CODE;
1825 END IF;
1826
1827 -- End addition of columns for FA Integration
1828
1829 END LOOP;
1830
1831 IF x_instance_rec.location_type_code IN ('WIP', 'PROJECT','IN_TRANSIT','PO','INTERNAL_SITE')
1832 AND
1833 nvl(x_instance_rec.location_id, fnd_api.g_miss_num) = fnd_api.g_miss_num
1834 THEN
1835 BEGIN
1836 SELECT location_id
1837 INTO x_instance_rec.location_id
1838 FROM hr_all_organization_units
1839 WHERE organization_id = x_instance_rec.vld_organization_id;
1840 EXCEPTION
1841 WHEN NO_DATA_FOUND THEN
1842 fnd_message.set_name('CSI','CSI_NO_HR_LOCATIONS');
1843 fnd_message.set_token('ORGANIZATION_ID',x_instance_rec.vld_organization_id);
1844 fnd_msg_pub.ADD;
1845 RAISE fnd_api.g_exc_error;
1846 END;
1847 END IF;
1848
1849 END Construct_inst_from_hist;
1850
1851 /*-------------------------------------------------------*/
1852 /* Procedure name: Construct_inst_header_rec */
1853 /* Description : This procedure defines the columns */
1854 /* for the Dynamic SQL */
1855 /*-------------------------------------------------------*/
1856 -- srramakr Bug # 2636868. Instead of using IN p_instance_id_list, we use = p_inst_id. This
1857 -- is to avoid large memory usage in the SGA.
1858 PROCEDURE Construct_inst_header_rec
1859 (
1860 p_inst_id IN NUMBER,
1861 x_instance_header_tbl IN OUT NOCOPY csi_datastructures_pub.instance_header_tbl
1862 ) IS
1863
1864 l_inst_header_cursor_id INTEGER;
1865 l_rows_processed NUMBER;
1866 l_instance_header_rec csi_datastructures_pub.instance_header_rec;
1867 l_count NUMBER := 0;
1868
1869 l_select_stmt VARCHAR2(2000) := ' select instance_id, instance_number, external_reference, '||
1870 ' inventory_item_id ,inventory_revision ,inv_master_organization_id, '||
1871 ' serial_number ,mfg_serial_number_flag, lot_number, quantity,unit_of_measure ,'||
1872 ' accounting_class_code, instance_condition_id, instance_status_id,customer_view_flag, '||
1873 ' merchant_view_flag, sellable_flag, system_id, instance_type_code ,active_start_date, '||
1874 ' active_end_date, location_type_code ,location_id, inv_organization_id, inv_subinventory_name, '||
1875 ' inv_locator_id, pa_project_id, pa_project_task_id, in_transit_order_line_id, '||
1876 ' wip_job_id, po_order_line_id ,last_oe_order_line_id, last_oe_rma_line_id , '||
1877 ' last_po_po_line_id, last_oe_po_number, last_wip_job_id, last_pa_project_id, '||
1878 ' last_pa_task_id, last_oe_agreement_id, install_date, manually_created_flag, '||
1879 ' return_by_date, actual_return_date, creation_complete_flag, completeness_flag, '||
1880 ' context, attribute1, attribute2, attribute3, attribute4, attribute5, attribute6, '||
1881 ' attribute7, attribute8, attribute9, attribute10, attribute11, attribute12, attribute13, '||
1882 ' attribute14, attribute15, object_version_number, last_txn_line_detail_id, '||
1883 ' install_location_type_code, install_location_id, instance_usage_code, last_vld_organization_id, '||
1884 ' config_inst_hdr_id, config_inst_rev_num, config_inst_item_id, '||
1885 ' config_valid_status, instance_description, '||
1886 --start of code for eam integration columns--
1887 ' network_asset_flag, maintainable_flag, pn_location_id, asset_criticality_code, '||
1888 ' category_id, equipment_gen_object_id, instantiation_flag, linear_location_id, '||
1889 ' operational_log_flag, checkin_status, supplier_warranty_exp_date, attribute16, '||
1890 ' attribute17, attribute18, attribute19, attribute20, attribute21, attribute22, attribute23, '||
1891 ' attribute24, attribute25, attribute26, attribute27, attribute28, attribute29, attribute30, '||
1892 --end of code for eam integration columns--
1893 -- Addition of columns for FA Integration
1894 ' purchase_unit_price, purchase_currency_code, payables_unit_price, payables_currency_code, '||
1895 ' sales_unit_price, sales_currency_code, operational_status_code '||
1896 -- End addition of columns for FA Integration
1897 ' from csi_item_instances where instance_id = :l_inst_id';
1898
1899 BEGIN
1900
1901 -- Open the cursor
1902 l_inst_header_cursor_id := dbms_sql.open_cursor;
1903
1904 -- Parse the select statement
1905 dbms_sql.parse(l_inst_header_cursor_id, l_select_stmt , dbms_sql.native);
1906 dbms_sql.bind_variable(l_inst_header_cursor_id,':l_inst_id',p_inst_id);
1907
1908 -- define columns
1909 dbms_sql.define_column(l_inst_header_cursor_id, 1, l_instance_header_rec.instance_id);
1910 dbms_sql.define_column(l_inst_header_cursor_id, 2, l_instance_header_rec.instance_number,30);
1911 dbms_sql.define_column(l_inst_header_cursor_id, 3, l_instance_header_rec.external_reference,30);
1912 dbms_sql.define_column(l_inst_header_cursor_id, 4, l_instance_header_rec.inventory_item_id);
1913 dbms_sql.define_column(l_inst_header_cursor_id, 5, l_instance_header_rec.inventory_revision,30);
1914 dbms_sql.define_column(l_inst_header_cursor_id, 6, l_instance_header_rec.inv_master_organization_id);
1915 dbms_sql.define_column(l_inst_header_cursor_id, 7, l_instance_header_rec.serial_number,30);
1916 dbms_sql.define_column(l_inst_header_cursor_id, 8, l_instance_header_rec.mfg_serial_number_flag,1);
1917 dbms_sql.define_column(l_inst_header_cursor_id, 9, l_instance_header_rec.lot_number,80);
1918 dbms_sql.define_column(l_inst_header_cursor_id, 10, l_instance_header_rec.quantity);
1919 dbms_sql.define_column(l_inst_header_cursor_id, 11, l_instance_header_rec.unit_of_measure,3);
1920 dbms_sql.define_column(l_inst_header_cursor_id, 12, l_instance_header_rec.accounting_class_code,10);
1921 dbms_sql.define_column(l_inst_header_cursor_id, 13, l_instance_header_rec.instance_condition_id);
1922 dbms_sql.define_column(l_inst_header_cursor_id, 14, l_instance_header_rec.instance_status_id);
1923 dbms_sql.define_column(l_inst_header_cursor_id, 15, l_instance_header_rec.customer_view_flag,1);
1924 dbms_sql.define_column(l_inst_header_cursor_id, 16, l_instance_header_rec.merchant_view_flag,1);
1925 dbms_sql.define_column(l_inst_header_cursor_id, 17, l_instance_header_rec.sellable_flag,1);
1926 dbms_sql.define_column(l_inst_header_cursor_id, 18, l_instance_header_rec.system_id);
1927 dbms_sql.define_column(l_inst_header_cursor_id, 19, l_instance_header_rec.instance_type_code,30);
1928 dbms_sql.define_column(l_inst_header_cursor_id, 20, l_instance_header_rec.active_start_date);
1929 dbms_sql.define_column(l_inst_header_cursor_id, 21, l_instance_header_rec.active_end_date);
1930 dbms_sql.define_column(l_inst_header_cursor_id, 22, l_instance_header_rec.location_type_code,30);
1931 dbms_sql.define_column(l_inst_header_cursor_id, 23, l_instance_header_rec.location_id);
1932 dbms_sql.define_column(l_inst_header_cursor_id, 24, l_instance_header_rec.inv_organization_id);
1933 dbms_sql.define_column(l_inst_header_cursor_id, 25, l_instance_header_rec.inv_subinventory_name,30);
1934 dbms_sql.define_column(l_inst_header_cursor_id, 26, l_instance_header_rec.inv_locator_id);
1935 dbms_sql.define_column(l_inst_header_cursor_id, 27, l_instance_header_rec.pa_project_id);
1936 dbms_sql.define_column(l_inst_header_cursor_id, 28, l_instance_header_rec.pa_project_task_id);
1937 dbms_sql.define_column(l_inst_header_cursor_id, 29, l_instance_header_rec.in_transit_order_line_id);
1938 dbms_sql.define_column(l_inst_header_cursor_id, 30, l_instance_header_rec.wip_job_id);
1939 dbms_sql.define_column(l_inst_header_cursor_id, 31, l_instance_header_rec.po_order_line_id);
1940 dbms_sql.define_column(l_inst_header_cursor_id, 32, l_instance_header_rec.last_oe_order_line_id);
1941 dbms_sql.define_column(l_inst_header_cursor_id, 33, l_instance_header_rec.last_oe_rma_line_id);
1942 dbms_sql.define_column(l_inst_header_cursor_id, 34, l_instance_header_rec.last_po_po_line_id);
1943 dbms_sql.define_column(l_inst_header_cursor_id, 35, l_instance_header_rec.last_oe_po_number,30);
1944 dbms_sql.define_column(l_inst_header_cursor_id, 36, l_instance_header_rec.last_wip_job_id);
1945 dbms_sql.define_column(l_inst_header_cursor_id, 37, l_instance_header_rec.last_pa_project_id);
1946 dbms_sql.define_column(l_inst_header_cursor_id, 38, l_instance_header_rec.last_pa_task_id);
1947 dbms_sql.define_column(l_inst_header_cursor_id, 39, l_instance_header_rec.last_oe_agreement_id);
1948 dbms_sql.define_column(l_inst_header_cursor_id, 40, l_instance_header_rec.install_date);
1949 dbms_sql.define_column(l_inst_header_cursor_id, 41, l_instance_header_rec.manually_created_flag,1);
1950 dbms_sql.define_column(l_inst_header_cursor_id, 42, l_instance_header_rec.return_by_date);
1951 dbms_sql.define_column(l_inst_header_cursor_id, 43, l_instance_header_rec.actual_return_date);
1952 dbms_sql.define_column(l_inst_header_cursor_id, 44, l_instance_header_rec.creation_complete_flag,1);
1953 dbms_sql.define_column(l_inst_header_cursor_id, 45, l_instance_header_rec.completeness_flag,1);
1954 dbms_sql.define_column(l_inst_header_cursor_id, 46, l_instance_header_rec.context,30);
1955 dbms_sql.define_column(l_inst_header_cursor_id, 47, l_instance_header_rec.attribute1,150);
1956 dbms_sql.define_column(l_inst_header_cursor_id, 48, l_instance_header_rec.attribute2,150);
1957 dbms_sql.define_column(l_inst_header_cursor_id, 49, l_instance_header_rec.attribute3,150);
1958 dbms_sql.define_column(l_inst_header_cursor_id, 50, l_instance_header_rec.attribute4,150);
1959 dbms_sql.define_column(l_inst_header_cursor_id, 51, l_instance_header_rec.attribute5,150);
1960 dbms_sql.define_column(l_inst_header_cursor_id, 52, l_instance_header_rec.attribute6,150);
1961 dbms_sql.define_column(l_inst_header_cursor_id, 53, l_instance_header_rec.attribute7,150);
1962 dbms_sql.define_column(l_inst_header_cursor_id, 54, l_instance_header_rec.attribute8,150);
1963 dbms_sql.define_column(l_inst_header_cursor_id, 55, l_instance_header_rec.attribute9,150);
1964 dbms_sql.define_column(l_inst_header_cursor_id, 56, l_instance_header_rec.attribute10,150);
1965 dbms_sql.define_column(l_inst_header_cursor_id, 57, l_instance_header_rec.attribute11,150);
1966 dbms_sql.define_column(l_inst_header_cursor_id, 58, l_instance_header_rec.attribute12,150);
1967 dbms_sql.define_column(l_inst_header_cursor_id, 59, l_instance_header_rec.attribute13,150);
1968 dbms_sql.define_column(l_inst_header_cursor_id, 60, l_instance_header_rec.attribute14,150);
1969 dbms_sql.define_column(l_inst_header_cursor_id, 61, l_instance_header_rec.attribute15,150);
1970 dbms_sql.define_column(l_inst_header_cursor_id, 62, l_instance_header_rec.object_version_number);
1971 dbms_sql.define_column(l_inst_header_cursor_id, 63, l_instance_header_rec.last_txn_line_detail_id);
1972 dbms_sql.define_column(l_inst_header_cursor_id, 64, l_instance_header_rec.install_location_type_code,30);
1973 dbms_sql.define_column(l_inst_header_cursor_id, 65, l_instance_header_rec.install_location_id);
1974 dbms_sql.define_column(l_inst_header_cursor_id, 66, l_instance_header_rec.instance_usage_code,30);
1975 dbms_sql.define_column(l_inst_header_cursor_id, 67, l_instance_header_rec.vld_organization_id);
1976 -- following code has been added by sguthiva for att enhancements
1977 dbms_sql.define_column(l_inst_header_cursor_id, 68, l_instance_header_rec.config_inst_hdr_id);
1978 dbms_sql.define_column(l_inst_header_cursor_id, 69, l_instance_header_rec.config_inst_rev_num);
1979 dbms_sql.define_column(l_inst_header_cursor_id, 70, l_instance_header_rec.config_inst_item_id);
1980 dbms_sql.define_column(l_inst_header_cursor_id, 71, l_instance_header_rec.config_valid_status,30);
1981 dbms_sql.define_column(l_inst_header_cursor_id, 72, l_instance_header_rec.instance_description,240);
1982 -- end of addition
1983
1984 --start of code for eam integration columns--
1985 dbms_sql.define_column(l_inst_header_cursor_id, 73, l_instance_header_rec.network_asset_flag,1);
1986 dbms_sql.define_column(l_inst_header_cursor_id, 74, l_instance_header_rec.maintainable_flag,1);
1987 dbms_sql.define_column(l_inst_header_cursor_id, 75, l_instance_header_rec.pn_location_id);
1988 dbms_sql.define_column(l_inst_header_cursor_id, 76, l_instance_header_rec.asset_criticality_code,30);
1989 dbms_sql.define_column(l_inst_header_cursor_id, 77, l_instance_header_rec.category_id);
1990 dbms_sql.define_column(l_inst_header_cursor_id, 78, l_instance_header_rec.equipment_gen_object_id);
1991 dbms_sql.define_column(l_inst_header_cursor_id, 79, l_instance_header_rec.instantiation_flag,1);
1992 dbms_sql.define_column(l_inst_header_cursor_id, 80, l_instance_header_rec.linear_location_id);
1993 dbms_sql.define_column(l_inst_header_cursor_id, 81, l_instance_header_rec.operational_log_flag,1);
1994 dbms_sql.define_column(l_inst_header_cursor_id, 82, l_instance_header_rec.checkin_status);
1995 dbms_sql.define_column(l_inst_header_cursor_id, 83, l_instance_header_rec.supplier_warranty_exp_date);
1996 dbms_sql.define_column(l_inst_header_cursor_id, 84, l_instance_header_rec.attribute16,240);
1997 dbms_sql.define_column(l_inst_header_cursor_id, 85, l_instance_header_rec.attribute17,240);
1998 dbms_sql.define_column(l_inst_header_cursor_id, 86, l_instance_header_rec.attribute18,240);
1999 dbms_sql.define_column(l_inst_header_cursor_id, 87, l_instance_header_rec.attribute19,240);
2000 dbms_sql.define_column(l_inst_header_cursor_id, 88, l_instance_header_rec.attribute20,240);
2001 dbms_sql.define_column(l_inst_header_cursor_id, 89, l_instance_header_rec.attribute21,240);
2002 dbms_sql.define_column(l_inst_header_cursor_id, 90, l_instance_header_rec.attribute22,240);
2003 dbms_sql.define_column(l_inst_header_cursor_id, 91, l_instance_header_rec.attribute23,240);
2004 dbms_sql.define_column(l_inst_header_cursor_id, 92, l_instance_header_rec.attribute24,240);
2005 dbms_sql.define_column(l_inst_header_cursor_id, 93, l_instance_header_rec.attribute25,240);
2006 dbms_sql.define_column(l_inst_header_cursor_id, 94, l_instance_header_rec.attribute26,240);
2007 dbms_sql.define_column(l_inst_header_cursor_id, 95, l_instance_header_rec.attribute27,240);
2008 dbms_sql.define_column(l_inst_header_cursor_id, 96, l_instance_header_rec.attribute28,240);
2009 dbms_sql.define_column(l_inst_header_cursor_id, 97, l_instance_header_rec.attribute29,240);
2010 dbms_sql.define_column(l_inst_header_cursor_id, 98, l_instance_header_rec.attribute30,240);
2011 --end of code for eam integration columns--
2012
2013 -- Addition of columns for FA Integration
2014 dbms_sql.define_column(l_inst_header_cursor_id, 99, l_instance_header_rec.purchase_unit_price);
2015 dbms_sql.define_column(l_inst_header_cursor_id, 100, l_instance_header_rec.purchase_currency_code,15);
2016 dbms_sql.define_column(l_inst_header_cursor_id, 101, l_instance_header_rec.payables_unit_price);
2017 dbms_sql.define_column(l_inst_header_cursor_id, 102, l_instance_header_rec.payables_currency_code,15);
2018 dbms_sql.define_column(l_inst_header_cursor_id, 103, l_instance_header_rec.sales_unit_price);
2019 dbms_sql.define_column(l_inst_header_cursor_id, 104, l_instance_header_rec.sales_currency_code,15);
2020 dbms_sql.define_column(l_inst_header_cursor_id, 105, l_instance_header_rec.operational_status_code,30);
2021 -- End addition of columns for FA Integration
2022 -- Execute the query
2023 l_rows_processed := dbms_sql.execute(l_inst_header_cursor_id);
2024
2025 LOOP
2026 EXIT WHEN DBMS_SQL.FETCH_ROWS(l_inst_header_cursor_id) = 0;
2027 -- get the values
2028 l_count := x_instance_header_tbl.count + 1 ;
2029
2030 dbms_sql.column_value(l_inst_header_cursor_id, 1, x_instance_header_tbl(l_count).instance_id);
2031 dbms_sql.column_value(l_inst_header_cursor_id, 2, x_instance_header_tbl(l_count).instance_number);
2032 dbms_sql.column_value(l_inst_header_cursor_id, 3, x_instance_header_tbl(l_count).external_reference);
2033 dbms_sql.column_value(l_inst_header_cursor_id, 4, x_instance_header_tbl(l_count).inventory_item_id);
2034 dbms_sql.column_value(l_inst_header_cursor_id, 5, x_instance_header_tbl(l_count).inventory_revision);
2035 dbms_sql.column_value(l_inst_header_cursor_id, 6, x_instance_header_tbl(l_count).inv_master_organization_id);
2036 dbms_sql.column_value(l_inst_header_cursor_id, 7, x_instance_header_tbl(l_count).serial_number);
2037 dbms_sql.column_value(l_inst_header_cursor_id, 8, x_instance_header_tbl(l_count).mfg_serial_number_flag);
2038 dbms_sql.column_value(l_inst_header_cursor_id, 9, x_instance_header_tbl(l_count).lot_number);
2039 dbms_sql.column_value(l_inst_header_cursor_id, 10, x_instance_header_tbl(l_count).quantity);
2040 dbms_sql.column_value(l_inst_header_cursor_id, 11, x_instance_header_tbl(l_count).unit_of_measure);
2041 dbms_sql.column_value(l_inst_header_cursor_id, 12, x_instance_header_tbl(l_count).accounting_class_code);
2042 dbms_sql.column_value(l_inst_header_cursor_id, 13, x_instance_header_tbl(l_count).instance_condition_id);
2043 dbms_sql.column_value(l_inst_header_cursor_id, 14, x_instance_header_tbl(l_count).instance_status_id);
2044 dbms_sql.column_value(l_inst_header_cursor_id, 15, x_instance_header_tbl(l_count).customer_view_flag);
2045 dbms_sql.column_value(l_inst_header_cursor_id, 16, x_instance_header_tbl(l_count).merchant_view_flag);
2046 dbms_sql.column_value(l_inst_header_cursor_id, 17, x_instance_header_tbl(l_count).sellable_flag);
2047 dbms_sql.column_value(l_inst_header_cursor_id, 18, x_instance_header_tbl(l_count).system_id);
2048 dbms_sql.column_value(l_inst_header_cursor_id, 19, x_instance_header_tbl(l_count).instance_type_code);
2049 dbms_sql.column_value(l_inst_header_cursor_id, 20, x_instance_header_tbl(l_count).active_start_date);
2050 dbms_sql.column_value(l_inst_header_cursor_id, 21, x_instance_header_tbl(l_count).active_end_date);
2051 dbms_sql.column_value(l_inst_header_cursor_id, 22, x_instance_header_tbl(l_count).location_type_code);
2052 dbms_sql.column_value(l_inst_header_cursor_id, 23, x_instance_header_tbl(l_count).location_id);
2053 dbms_sql.column_value(l_inst_header_cursor_id, 24, x_instance_header_tbl(l_count).inv_organization_id);
2054 dbms_sql.column_value(l_inst_header_cursor_id, 25, x_instance_header_tbl(l_count).inv_subinventory_name);
2055 dbms_sql.column_value(l_inst_header_cursor_id, 26, x_instance_header_tbl(l_count).inv_locator_id);
2056 dbms_sql.column_value(l_inst_header_cursor_id, 27, x_instance_header_tbl(l_count).pa_project_id);
2057 dbms_sql.column_value(l_inst_header_cursor_id, 28, x_instance_header_tbl(l_count).pa_project_task_id);
2058 dbms_sql.column_value(l_inst_header_cursor_id, 29, x_instance_header_tbl(l_count).in_transit_order_line_id);
2059 dbms_sql.column_value(l_inst_header_cursor_id, 30, x_instance_header_tbl(l_count).wip_job_id);
2060 dbms_sql.column_value(l_inst_header_cursor_id, 31, x_instance_header_tbl(l_count).po_order_line_id);
2061 dbms_sql.column_value(l_inst_header_cursor_id, 32, x_instance_header_tbl(l_count).last_oe_order_line_id);
2062 dbms_sql.column_value(l_inst_header_cursor_id, 33, x_instance_header_tbl(l_count).last_oe_rma_line_id);
2063 dbms_sql.column_value(l_inst_header_cursor_id, 34, x_instance_header_tbl(l_count).last_po_po_line_id);
2064 dbms_sql.column_value(l_inst_header_cursor_id, 35, x_instance_header_tbl(l_count).last_oe_po_number);
2065 dbms_sql.column_value(l_inst_header_cursor_id, 36, x_instance_header_tbl(l_count).last_wip_job_id);
2066 dbms_sql.column_value(l_inst_header_cursor_id, 37, x_instance_header_tbl(l_count).last_pa_project_id);
2067 dbms_sql.column_value(l_inst_header_cursor_id, 38, x_instance_header_tbl(l_count).last_pa_task_id);
2068 dbms_sql.column_value(l_inst_header_cursor_id, 39, x_instance_header_tbl(l_count).last_oe_agreement_id);
2069 dbms_sql.column_value(l_inst_header_cursor_id, 40, x_instance_header_tbl(l_count).install_date);
2070 dbms_sql.column_value(l_inst_header_cursor_id, 41, x_instance_header_tbl(l_count).manually_created_flag);
2071 dbms_sql.column_value(l_inst_header_cursor_id, 42, x_instance_header_tbl(l_count).return_by_date);
2072 dbms_sql.column_value(l_inst_header_cursor_id, 43, x_instance_header_tbl(l_count).actual_return_date);
2073 dbms_sql.column_value(l_inst_header_cursor_id, 44, x_instance_header_tbl(l_count).creation_complete_flag);
2074 dbms_sql.column_value(l_inst_header_cursor_id, 45, x_instance_header_tbl(l_count).completeness_flag);
2075 dbms_sql.column_value(l_inst_header_cursor_id, 46, x_instance_header_tbl(l_count).context);
2076 dbms_sql.column_value(l_inst_header_cursor_id, 47, x_instance_header_tbl(l_count).attribute1);
2077 dbms_sql.column_value(l_inst_header_cursor_id, 48, x_instance_header_tbl(l_count).attribute2);
2078 dbms_sql.column_value(l_inst_header_cursor_id, 49, x_instance_header_tbl(l_count).attribute3);
2079 dbms_sql.column_value(l_inst_header_cursor_id, 50, x_instance_header_tbl(l_count).attribute4);
2080 dbms_sql.column_value(l_inst_header_cursor_id, 51, x_instance_header_tbl(l_count).attribute5);
2081 dbms_sql.column_value(l_inst_header_cursor_id, 52, x_instance_header_tbl(l_count).attribute6);
2082 dbms_sql.column_value(l_inst_header_cursor_id, 53, x_instance_header_tbl(l_count).attribute7);
2083 dbms_sql.column_value(l_inst_header_cursor_id, 54, x_instance_header_tbl(l_count).attribute8);
2084 dbms_sql.column_value(l_inst_header_cursor_id, 55, x_instance_header_tbl(l_count).attribute9);
2085 dbms_sql.column_value(l_inst_header_cursor_id, 56, x_instance_header_tbl(l_count).attribute10);
2086 dbms_sql.column_value(l_inst_header_cursor_id, 57, x_instance_header_tbl(l_count).attribute11);
2087 dbms_sql.column_value(l_inst_header_cursor_id, 58, x_instance_header_tbl(l_count).attribute12);
2088 dbms_sql.column_value(l_inst_header_cursor_id, 59, x_instance_header_tbl(l_count).attribute13);
2089 dbms_sql.column_value(l_inst_header_cursor_id, 60, x_instance_header_tbl(l_count).attribute14);
2090 dbms_sql.column_value(l_inst_header_cursor_id, 61, x_instance_header_tbl(l_count).attribute15);
2091 dbms_sql.column_value(l_inst_header_cursor_id, 62, x_instance_header_tbl(l_count).object_version_number);
2092 dbms_sql.column_value(l_inst_header_cursor_id, 63, x_instance_header_tbl(l_count).last_txn_line_detail_id);
2093 dbms_sql.column_value(l_inst_header_cursor_id, 64, x_instance_header_tbl(l_count).install_location_type_code);
2094 dbms_sql.column_value(l_inst_header_cursor_id, 65, x_instance_header_tbl(l_count).install_location_id);
2095 dbms_sql.column_value(l_inst_header_cursor_id, 66, x_instance_header_tbl(l_count).instance_usage_code);
2096 dbms_sql.column_value(l_inst_header_cursor_id, 67, x_instance_header_tbl(l_count).vld_organization_id);
2097 -- following code has been added by sguthiva for att enhancements
2098 dbms_sql.column_value(l_inst_header_cursor_id, 68, x_instance_header_tbl(l_count).config_inst_hdr_id);
2099 dbms_sql.column_value(l_inst_header_cursor_id, 69, x_instance_header_tbl(l_count).config_inst_rev_num);
2100 dbms_sql.column_value(l_inst_header_cursor_id, 70, x_instance_header_tbl(l_count).config_inst_item_id);
2101 dbms_sql.column_value(l_inst_header_cursor_id, 71, x_instance_header_tbl(l_count).config_valid_status);
2102 dbms_sql.column_value(l_inst_header_cursor_id, 72, x_instance_header_tbl(l_count).instance_description);
2103 -- end of code addition
2104
2105 --start of code for eam integration columns--
2106 dbms_sql.column_value(l_inst_header_cursor_id, 73, x_instance_header_tbl(l_count).network_asset_flag);
2107 dbms_sql.column_value(l_inst_header_cursor_id, 74, x_instance_header_tbl(l_count).maintainable_flag);
2108 dbms_sql.column_value(l_inst_header_cursor_id, 75, x_instance_header_tbl(l_count).pn_location_id);
2109 dbms_sql.column_value(l_inst_header_cursor_id, 76, x_instance_header_tbl(l_count).asset_criticality_code);
2110 dbms_sql.column_value(l_inst_header_cursor_id, 77, x_instance_header_tbl(l_count).category_id);
2111 dbms_sql.column_value(l_inst_header_cursor_id, 78, x_instance_header_tbl(l_count).equipment_gen_object_id);
2112 dbms_sql.column_value(l_inst_header_cursor_id, 79, x_instance_header_tbl(l_count).instantiation_flag);
2113 dbms_sql.column_value(l_inst_header_cursor_id, 80, x_instance_header_tbl(l_count).linear_location_id);
2114 dbms_sql.column_value(l_inst_header_cursor_id, 81, x_instance_header_tbl(l_count).operational_log_flag);
2115 dbms_sql.column_value(l_inst_header_cursor_id, 82, x_instance_header_tbl(l_count).checkin_status);
2116 dbms_sql.column_value(l_inst_header_cursor_id, 83, x_instance_header_tbl(l_count).supplier_warranty_exp_date);
2117 dbms_sql.column_value(l_inst_header_cursor_id, 84, x_instance_header_tbl(l_count).attribute16);
2118 dbms_sql.column_value(l_inst_header_cursor_id, 85, x_instance_header_tbl(l_count).attribute17);
2119 dbms_sql.column_value(l_inst_header_cursor_id, 86, x_instance_header_tbl(l_count).attribute18);
2120 dbms_sql.column_value(l_inst_header_cursor_id, 87, x_instance_header_tbl(l_count).attribute19);
2121 dbms_sql.column_value(l_inst_header_cursor_id, 88, x_instance_header_tbl(l_count).attribute20);
2122 dbms_sql.column_value(l_inst_header_cursor_id, 89, x_instance_header_tbl(l_count).attribute21);
2123 dbms_sql.column_value(l_inst_header_cursor_id, 90, x_instance_header_tbl(l_count).attribute22);
2124 dbms_sql.column_value(l_inst_header_cursor_id, 91, x_instance_header_tbl(l_count).attribute23);
2125 dbms_sql.column_value(l_inst_header_cursor_id, 92, x_instance_header_tbl(l_count).attribute24);
2126 dbms_sql.column_value(l_inst_header_cursor_id, 93, x_instance_header_tbl(l_count).attribute25);
2127 dbms_sql.column_value(l_inst_header_cursor_id, 94, x_instance_header_tbl(l_count).attribute26);
2128 dbms_sql.column_value(l_inst_header_cursor_id, 95, x_instance_header_tbl(l_count).attribute27);
2129 dbms_sql.column_value(l_inst_header_cursor_id, 96, x_instance_header_tbl(l_count).attribute28);
2130 dbms_sql.column_value(l_inst_header_cursor_id, 97, x_instance_header_tbl(l_count).attribute29);
2131 dbms_sql.column_value(l_inst_header_cursor_id, 98, x_instance_header_tbl(l_count).attribute30);
2132 --end of code for eam integration columns--
2133
2134 -- Addition of columns for FA Integration
2135 dbms_sql.column_value(l_inst_header_cursor_id, 99, x_instance_header_tbl(l_count).purchase_unit_price);
2136 dbms_sql.column_value(l_inst_header_cursor_id, 100, x_instance_header_tbl(l_count).purchase_currency_code);
2137 dbms_sql.column_value(l_inst_header_cursor_id, 101, x_instance_header_tbl(l_count).payables_unit_price);
2138 dbms_sql.column_value(l_inst_header_cursor_id, 102, x_instance_header_tbl(l_count).payables_currency_code);
2139 dbms_sql.column_value(l_inst_header_cursor_id, 103, x_instance_header_tbl(l_count).sales_unit_price);
2140 dbms_sql.column_value(l_inst_header_cursor_id, 104, x_instance_header_tbl(l_count).sales_currency_code);
2141 dbms_sql.column_value(l_inst_header_cursor_id, 105, x_instance_header_tbl(l_count).operational_status_code);
2142 -- End addition of columns for FA Integration
2143
2144
2145
2146 END LOOP;
2147
2148 -- Close the cursor
2149 DBMS_SQL.CLOSE_CURSOR(l_inst_header_cursor_id);
2150
2151 EXCEPTION
2152 WHEN OTHERS THEN
2153 IF DBMS_SQL.IS_OPEN(l_inst_header_cursor_id) THEN
2154 DBMS_SQL.CLOSE_CURSOR(l_inst_header_cursor_id);
2155 END IF;
2156 END Construct_inst_header_rec;
2157
2158 /*----------------------------------------------------------*/
2159 /* Procedure name: Resolve_Id_Columns */
2160 /* Description : This procedure gets the column values */
2161 /* for the Dynamic SQL */
2162 /*----------------------------------------------------------*/
2163
2164 PROCEDURE Resolve_id_columns
2165 (p_instance_header_tbl IN OUT NOCOPY csi_datastructures_pub.instance_header_tbl)
2166
2167 IS
2168
2169 l_acct_lookup_type VARCHAR2(30) := 'CSI_ACCOUNTING_CLASS_CODE';
2170 l_inst_lookup_type VARCHAR2(30) := 'CSI_INST_TYPE_CODE';
2171 l_usage_lookup_type VARCHAR2(30) := 'CSI_INSTANCE_USAGE_CODE';
2172 l_op_status_lookup_type VARCHAR2(30) := 'CSI_OPERATIONAL_STATUS_CODE'; --5154813
2173 l_ver_label_lookup_type VARCHAR2(30) := 'CSI_INSTANCE_VERSION_LABELS';
2174 l_yesno_lookup_type VARCHAR2(30) := 'CSI_YES_NO'; --included for bug5211068
2175
2176 l_maint_organization_id NUMBER;
2177 l_department_id NUMBER;
2178 l_location_id NUMBER;
2179 l_gen_object_id NUMBER;
2180
2181 l_vld_organization_id NUMBER; --bug 4754569
2182 l_inventory_item_id NUMBER; --bug 4754569
2183
2184 BEGIN
2185
2186 FOR tab_row in p_instance_header_tbl.FIRST ..p_instance_header_tbl.LAST
2187 LOOP
2188 IF p_instance_header_tbl.EXISTS(tab_row) THEN
2189
2190 IF p_instance_header_tbl(tab_row).location_type_code = 'INVENTORY' THEN
2191 BEGIN
2192 SELECT name
2193 INTO p_instance_header_tbl(tab_row).inv_organization_name
2194 FROM hr_all_organization_units
2195 WHERE organization_id = p_instance_header_tbl(tab_row).inv_organization_id;
2196 EXCEPTION
2197 WHEN OTHERS THEN
2198 null;
2199 END;
2200 END IF;
2201 --
2202 IF p_instance_header_tbl(tab_row).inv_locator_id IS NOT NULL THEN
2203 Begin
2204 -- Bug 4605780. Modified the query to get Project and Task information.
2205 select INV_PROJECT.GET_LOCSEGS(milk.INVENTORY_LOCATION_ID,milk.organization_id) ||
2206 decode(inv_project.GET_PROJECT_NUMBER(milk.SEGMENT19),'','','.'||
2207 inv_project.GET_PROJECT_NUMBER(milk.SEGMENT19)||
2208 decode(inv_project.GET_TASK_NUMBER(milk.SEGMENT20),'','','.'||
2209 inv_project.GET_TASK_NUMBER(milk.SEGMENT20) ) )
2210 into p_instance_header_tbl(tab_row).inv_locator_name
2211 from MTL_ITEM_LOCATIONS milk
2212 where milk.inventory_location_id = p_instance_header_tbl(tab_row).inv_locator_id;
2213 Exception
2214 when no_data_found then
2215 p_instance_header_tbl(tab_row).inv_locator_name := NULL;
2216 End;
2217 END IF;
2218 --
2219 IF p_instance_header_tbl(tab_row).last_oe_agreement_id IS NOT NULL THEN
2220 Begin
2221 select name
2222 into p_instance_header_tbl(tab_row).last_oe_agreement_name
2223 from OE_AGREEMENTS
2224 where agreement_id = p_instance_header_tbl(tab_row).last_oe_agreement_id;
2225 Exception
2226 when no_data_found then
2227 null;
2228 End;
2229 END IF;
2230 --
2231 IF p_instance_header_tbl(tab_row).location_type_code = 'HZ_LOCATIONS' THEN
2232 BEGIN
2233 SELECT
2234 hzl.address1,
2235 hzl.address2,
2236 hzl.address3,
2237 hzl.address4,
2238 hzl.city,
2239 hzl.state,
2240 hzl.postal_code,
2241 hzl.country,
2242 hps.party_site_number,
2243 hzp.party_name,
2244 hzp.party_number
2245 INTO p_instance_header_tbl(tab_row).current_loc_address1,
2246 p_instance_header_tbl(tab_row).current_loc_address2,
2247 p_instance_header_tbl(tab_row).current_loc_address3,
2248 p_instance_header_tbl(tab_row).current_loc_address4,
2249 p_instance_header_tbl(tab_row).current_loc_city,
2250 p_instance_header_tbl(tab_row).current_loc_state,
2251 p_instance_header_tbl(tab_row).current_loc_postal_code,
2252 p_instance_header_tbl(tab_row).current_loc_country,
2253 p_instance_header_tbl(tab_row).current_loc_number,
2254 p_instance_header_tbl(tab_row).current_party_name,
2255 p_instance_header_tbl(tab_row).current_party_number
2256 FROM hz_locations hzl,
2257 hz_party_sites hps,
2258 hz_parties hzp
2259 WHERE hzl.location_id = hps.location_id(+) --(+)added for bug 5213645
2260 AND hps.party_id = hzp.party_id(+)
2261 AND hzl.location_id = p_instance_header_tbl(tab_row).location_id
2262 AND rownum < 2;
2263
2264 EXCEPTION
2265 WHEN OTHERS THEN
2266 NULL;
2267 END;
2268 END IF;
2269
2270 IF p_instance_header_tbl(tab_row).install_location_type_code = 'HZ_LOCATIONS' THEN
2271 BEGIN
2272 SELECT
2273 hzl.address1,
2274 hzl.address2,
2275 hzl.address3,
2276 hzl.address4,
2277 hzl.city,
2278 hzl.state,
2279 hzl.postal_code,
2280 hzl.country,
2281 hps.party_site_number,
2282 hzp.party_name,
2283 hzp.party_number
2284 INTO p_instance_header_tbl(tab_row).install_loc_address1,
2285 p_instance_header_tbl(tab_row).install_loc_address2,
2286 p_instance_header_tbl(tab_row).install_loc_address3,
2287 p_instance_header_tbl(tab_row).install_loc_address4,
2288 p_instance_header_tbl(tab_row).install_loc_city,
2289 p_instance_header_tbl(tab_row).install_loc_state,
2290 p_instance_header_tbl(tab_row).install_loc_postal_code,
2291 p_instance_header_tbl(tab_row).install_loc_country,
2292 p_instance_header_tbl(tab_row).install_loc_number,
2293 p_instance_header_tbl(tab_row).install_party_name,
2294 p_instance_header_tbl(tab_row).install_party_number
2295 FROM hz_locations hzl,
2296 hz_party_sites hps,
2297 hz_parties hzp
2298 WHERE hzl.location_id = hps.location_id(+) --(+)added for bug 5213645
2299 AND hps.party_id = hzp.party_id(+)
2300 AND hzl.location_id = p_instance_header_tbl(tab_row).install_location_id
2301 AND rownum < 2;
2302
2303 EXCEPTION
2304 WHEN OTHERS THEN
2305 NULL;
2306 END;
2307 END IF;
2308
2309 IF p_instance_header_tbl(tab_row).location_type_code = 'HR_LOCATIONS' THEN
2310 BEGIN
2311 SELECT hr.address_line_1,
2312 hr.address_line_2,
2313 hr.address_line_3,
2314 hr.town_or_city,
2315 hr.region_2,
2316 hr.postal_code,
2317 hr.country
2318 INTO p_instance_header_tbl(tab_row).current_loc_address1,
2319 p_instance_header_tbl(tab_row).current_loc_address2,
2320 p_instance_header_tbl(tab_row).current_loc_address3,
2321 p_instance_header_tbl(tab_row).current_loc_city,
2322 p_instance_header_tbl(tab_row).current_loc_state,
2323 p_instance_header_tbl(tab_row).current_loc_postal_code,
2324 p_instance_header_tbl(tab_row).current_loc_country
2325 FROM hr_locations_all hr
2326 WHERE hr.location_id = p_instance_header_tbl(tab_row).location_id;
2327 EXCEPTION
2328 WHEN OTHERS THEN
2329 NULL;
2330 END;
2331 END IF;
2332
2333 --4926773
2334 IF p_instance_header_tbl(tab_row).Install_location_type_code = 'HR_LOCATIONS' THEN
2335 BEGIN
2336 SELECT hr.address_line_1,
2337 hr.address_line_2,
2338 hr.address_line_3,
2339 hr.town_or_city,
2340 hr.region_2,
2341 hr.postal_code,
2342 hr.country
2343 INTO p_instance_header_tbl(tab_row).current_loc_address1,
2344 p_instance_header_tbl(tab_row).current_loc_address2,
2345 p_instance_header_tbl(tab_row).current_loc_address3,
2346 p_instance_header_tbl(tab_row).current_loc_city,
2347 p_instance_header_tbl(tab_row).current_loc_state,
2348 p_instance_header_tbl(tab_row).current_loc_postal_code,
2349 p_instance_header_tbl(tab_row).current_loc_country
2350 FROM hr_locations_all hr
2351 WHERE hr.location_id = p_instance_header_tbl(tab_row).location_id;
2352 EXCEPTION
2353 WHEN OTHERS THEN
2354 NULL;
2355 END;
2356 END IF;
2357
2358 IF p_instance_header_tbl(tab_row).location_type_code = 'HZ_PARTY_SITES' THEN
2359 BEGIN
2360 SELECT
2361 hzl.address1,
2362 hzl.address2,
2363 hzl.address3,
2364 hzl.address4,
2365 hzl.city,
2366 hzl.state,
2367 hzl.postal_code,
2368 hzl.country,
2369 hps.party_site_number,
2370 hzp.party_name,
2371 hzp.party_number
2372 INTO p_instance_header_tbl(tab_row).current_loc_address1,
2373 p_instance_header_tbl(tab_row).current_loc_address2,
2374 p_instance_header_tbl(tab_row).current_loc_address3,
2375 p_instance_header_tbl(tab_row).current_loc_address4,
2376 p_instance_header_tbl(tab_row).current_loc_city,
2377 p_instance_header_tbl(tab_row).current_loc_state,
2378 p_instance_header_tbl(tab_row).current_loc_postal_code,
2379 p_instance_header_tbl(tab_row).current_loc_country,
2380 p_instance_header_tbl(tab_row).current_loc_number,
2381 p_instance_header_tbl(tab_row).current_party_name,
2382 p_instance_header_tbl(tab_row).current_party_number
2383 FROM hz_locations hzl,
2384 hz_party_sites hps,
2385 hz_parties hzp
2386 WHERE hps.location_id = hzl.location_id
2387 AND hps.party_id = hzp.party_id
2388 AND hps.party_site_id = p_instance_header_tbl(tab_row).location_id;
2389
2390 EXCEPTION
2391 WHEN OTHERS THEN
2392 NULL;
2393 END;
2394 END IF;
2395
2396 IF p_instance_header_tbl(tab_row).install_location_type_code = 'HZ_PARTY_SITES' THEN
2397 BEGIN
2398 SELECT
2399 hzl.address1,
2400 hzl.address2,
2401 hzl.address3,
2402 hzl.address4,
2403 hzl.city,
2404 hzl.state,
2405 hzl.postal_code,
2406 hzl.country,
2407 hps.party_site_number,
2408 hzp.party_name,
2409 hzp.party_number
2410 INTO p_instance_header_tbl(tab_row).install_loc_address1,
2411 p_instance_header_tbl(tab_row).install_loc_address2,
2412 p_instance_header_tbl(tab_row).install_loc_address3,
2413 p_instance_header_tbl(tab_row).install_loc_address4,
2414 p_instance_header_tbl(tab_row).install_loc_city,
2415 p_instance_header_tbl(tab_row).install_loc_state,
2416 p_instance_header_tbl(tab_row).install_loc_postal_code,
2417 p_instance_header_tbl(tab_row).install_loc_country,
2418 p_instance_header_tbl(tab_row).install_loc_number,
2419 p_instance_header_tbl(tab_row).install_party_name,
2420 p_instance_header_tbl(tab_row).install_party_number
2421 FROM hz_locations hzl,
2422 hz_party_sites hps,
2423 hz_parties hzp
2424 WHERE hps.location_id = hzl.location_id
2425 AND hps.party_id = hzp.party_id
2426 AND hps.party_site_id = p_instance_header_tbl(tab_row).install_location_id;
2427
2428 EXCEPTION
2429 WHEN OTHERS THEN
2430 NULL;
2431 END;
2432 END IF;
2433
2434 IF p_instance_header_tbl(tab_row).location_type_code = 'INTERNAL_SITE' THEN
2435 BEGIN
2436 SELECT hr.address_line_1,
2437 hr.address_line_2,
2438 hr.address_line_3,
2439 hr.town_or_city,
2440 hr.region_2,
2441 hr.postal_code,
2442 hr.country
2443 INTO p_instance_header_tbl(tab_row).current_loc_address1,
2444 p_instance_header_tbl(tab_row).current_loc_address2,
2445 p_instance_header_tbl(tab_row).current_loc_address3,
2446 p_instance_header_tbl(tab_row).current_loc_city,
2447 p_instance_header_tbl(tab_row).current_loc_state,
2448 p_instance_header_tbl(tab_row).current_loc_postal_code,
2449 p_instance_header_tbl(tab_row).current_loc_country
2450 FROM hr_locations_all hr
2451 WHERE hr.location_id = p_instance_header_tbl(tab_row).location_id;
2452 EXCEPTION
2453 WHEN OTHERS THEN
2454 NULL;
2455 END;
2456 END IF;
2457
2458 IF p_instance_header_tbl(tab_row).install_location_type_code = 'INTERNAL_SITE' THEN
2459 BEGIN
2460 SELECT hr.address_line_1,
2461 hr.address_line_2,
2462 hr.address_line_3,
2463 hr.town_or_city,
2464 hr.region_2,
2465 hr.postal_code,
2466 hr.country
2467 INTO p_instance_header_tbl(tab_row).install_loc_address1,
2468 p_instance_header_tbl(tab_row).install_loc_address2,
2469 p_instance_header_tbl(tab_row).install_loc_address3,
2470 p_instance_header_tbl(tab_row).install_loc_city,
2471 p_instance_header_tbl(tab_row).install_loc_state,
2472 p_instance_header_tbl(tab_row).install_loc_postal_code,
2473 p_instance_header_tbl(tab_row).install_loc_country
2474 FROM hr_locations_all hr
2475 WHERE hr.location_id = p_instance_header_tbl(tab_row).install_location_id;
2476 EXCEPTION
2477 WHEN OTHERS THEN
2478 NULL;
2479 END;
2480 END IF;
2481
2482 IF p_instance_header_tbl(tab_row).location_type_code = 'VENDOR_SITE' THEN
2483 BEGIN
2484 SELECT
2485 pvs.address_line1,
2486 pvs.address_line2,
2487 pvs.address_line3,
2488 pvs.city,
2489 pvs.state,
2490 pvs.zip,
2491 pvs.country
2492 INTO p_instance_header_tbl(tab_row).current_loc_address1,
2493 p_instance_header_tbl(tab_row).current_loc_address2,
2494 p_instance_header_tbl(tab_row).current_loc_address3,
2495 p_instance_header_tbl(tab_row).current_loc_city,
2496 p_instance_header_tbl(tab_row).current_loc_state,
2497 p_instance_header_tbl(tab_row).current_loc_postal_code,
2498 p_instance_header_tbl(tab_row).current_loc_country
2499 FROM po_vendor_sites_all pvs
2500 WHERE pvs.vendor_site_id = p_instance_header_tbl(tab_row).location_id;
2501 EXCEPTION
2502 WHEN OTHERS THEN
2503 NULL;
2504 END;
2505 END IF;
2506
2507 IF p_instance_header_tbl(tab_row).install_location_type_code = 'VENDOR_SITE' THEN
2508 BEGIN
2509 SELECT
2510 pvs.address_line1,
2511 pvs.address_line2,
2512 pvs.address_line3,
2513 pvs.city,
2514 pvs.state,
2515 pvs.zip,
2516 pvs.country
2517 INTO p_instance_header_tbl(tab_row).install_loc_address1,
2518 p_instance_header_tbl(tab_row).install_loc_address2,
2519 p_instance_header_tbl(tab_row).install_loc_address3,
2520 p_instance_header_tbl(tab_row).install_loc_city,
2521 p_instance_header_tbl(tab_row).install_loc_state,
2522 p_instance_header_tbl(tab_row).install_loc_postal_code,
2523 p_instance_header_tbl(tab_row).install_loc_country
2524 FROM po_vendor_sites_all pvs
2525 WHERE pvs.vendor_site_id = p_instance_header_tbl(tab_row).install_location_id;
2526 EXCEPTION
2527 WHEN OTHERS THEN
2528 NULL;
2529 END;
2530 END IF;
2531
2532 IF p_instance_header_tbl(tab_row).location_type_code = 'IN_TRANSIT' THEN
2533 BEGIN
2534 SELECT a.order_number,
2535 b.line_number
2536 INTO p_instance_header_tbl(tab_row).in_transit_order_number,
2537 p_instance_header_tbl(tab_row).in_transit_order_line_number
2538 FROM oe_order_headers_all a, oe_order_lines_all b
2539 WHERE a.header_id = b.header_id
2540 AND b.line_id = p_instance_header_tbl(tab_row).in_transit_order_line_id;
2541 EXCEPTION
2542 WHEN OTHERS THEN
2543 null;
2544 END;
2545 END IF;
2546
2547 IF p_instance_header_tbl(tab_row).location_type_code = 'PROJECT' THEN
2548 BEGIN
2549 SELECT a.name,
2550 a.segment1,
2551 b.task_name,
2552 b.task_number
2553 INTO p_instance_header_tbl(tab_row).pa_project_name,
2554 p_instance_header_tbl(tab_row).pa_project_number,
2555 p_instance_header_tbl(tab_row).pa_task_name,
2556 p_instance_header_tbl(tab_row).pa_task_number
2557 FROM pa_projects_all a,
2558 pa_tasks b
2559 WHERE a.project_id = b.project_id
2560 AND b.task_id = p_instance_header_tbl(tab_row).pa_project_task_id;
2561 EXCEPTION
2562 WHEN OTHERS THEN
2563 null;
2564 END;
2565 END IF;
2566
2567 IF p_instance_header_tbl(tab_row).location_type_code = 'WIP' THEN
2568 BEGIN
2569 SELECT wip_entity_name
2570 INTO p_instance_header_tbl(tab_row).wip_entity_name
2571 FROM wip_entities
2572 WHERE wip_entity_id = p_instance_header_tbl(tab_row).wip_job_id;
2573 EXCEPTION
2574 WHEN OTHERS THEN
2575 null;
2576 END;
2577 END IF;
2578
2579 --Changes for bug 9177957
2580 --Inventory Item Name
2581 IF p_instance_header_tbl(tab_row).inventory_item_id IS NOT NULL
2582 THEN
2583 BEGIN
2584 SELECT msi.concatenated_segments
2585 INTO p_instance_header_tbl(tab_row).INVENTORY_ITEM_NAME
2586 FROM mtl_system_items_b_kfv msi
2587 ,csi_item_instances cii
2588 WHERE msi.inventory_item_id = p_instance_header_tbl(tab_row).inventory_item_id
2589 AND msi.organization_id = Nvl(p_instance_header_tbl(tab_row).vld_organization_id,cii.last_vld_organization_id)
2590 AND cii.instance_id = p_instance_header_tbl(tab_row).instance_id;
2591 EXCEPTION
2592 WHEN OTHERS THEN
2593 NULL;
2594 END;
2595 END IF;
2596 --End of Changes for bug 9177957
2597
2598 BEGIN
2599 SELECT meaning
2600 INTO p_instance_header_tbl(tab_row).accounting_class
2601 FROM csi_lookups
2602 WHERE lookup_code = p_instance_header_tbl(tab_row).accounting_class_code
2603 AND lookup_type = l_acct_lookup_type;
2604 EXCEPTION
2605 WHEN OTHERS THEN
2606 null;
2607 END;
2608
2609 BEGIN
2610 SELECT meaning
2611 INTO p_instance_header_tbl(tab_row).instance_type_name
2612 FROM csi_lookups
2613 WHERE lookup_code = p_instance_header_tbl(tab_row).instance_type_code
2614 AND lookup_type = l_inst_lookup_type;
2615 EXCEPTION
2616 WHEN OTHERS THEN
2617 null;
2618 END;
2619
2620 BEGIN
2621 SELECT meaning
2622 INTO p_instance_header_tbl(tab_row).instance_usage_name
2623 FROM csi_lookups
2624 WHERE lookup_code = p_instance_header_tbl(tab_row).instance_usage_code
2625 AND lookup_type = l_usage_lookup_type;
2626 EXCEPTION
2627 WHEN OTHERS THEN
2628 null;
2629 END;
2630
2631
2632 BEGIN
2633 SELECT meaning
2634 INTO p_instance_header_tbl(tab_row).operational_status_name
2635 FROM csi_lookups
2636 WHERE lookup_code = p_instance_header_tbl(tab_row).operational_status_code
2637 AND lookup_type = l_op_status_lookup_type;
2638 EXCEPTION
2639 WHEN OTHERS THEN
2640 null;
2641 END;
2642
2643 IF p_instance_header_tbl(tab_row).version_label IS NOT NULL THEN
2644 BEGIN
2645 SELECT meaning
2646 INTO p_instance_header_tbl(tab_row).version_label_meaning
2647 FROM csi_lookups
2648 WHERE lookup_code = p_instance_header_tbl(tab_row).version_label
2649 AND lookup_type = l_ver_label_lookup_type;
2650 EXCEPTION
2651 WHEN OTHERS THEN
2652 null;
2653 END;
2654 END IF;
2655
2656 BEGIN
2657 SELECT status_code
2658 INTO p_instance_header_tbl(tab_row).instance_condition
2659 FROM mtl_material_statuses
2660 WHERE status_id = p_instance_header_tbl(tab_row).instance_condition_id;
2661 EXCEPTION
2662 WHEN OTHERS THEN
2663 null;
2664 END;
2665
2666 BEGIN
2667 SELECT unit_of_measure
2668 INTO p_instance_header_tbl(tab_row).unit_of_measure_name
2669 FROM mtl_units_of_measure_vl
2670 WHERE uom_code = p_instance_header_tbl(tab_row).unit_of_measure;
2671 EXCEPTION
2672 WHEN OTHERS THEN
2673 null;
2674 END;
2675
2676
2677 BEGIN
2678 SELECT name
2679 INTO p_instance_header_tbl(tab_row).instance_status
2680 FROM csi_instance_statuses
2681 WHERE instance_status_id = p_instance_header_tbl(tab_row).instance_status_id;
2682 EXCEPTION
2683 WHEN OTHERS THEN
2684 null;
2685 END;
2686
2687 BEGIN
2688 SELECT name
2689 INTO p_instance_header_tbl(tab_row).system_name
2690 FROM csi_systems_vl
2691 WHERE system_id = p_instance_header_tbl(tab_row).system_id;
2692 EXCEPTION
2693 WHEN OTHERS THEN
2694 null;
2695 END;
2696
2697 IF ( (p_instance_header_tbl(tab_row).vld_organization_id IS NOT NULL) AND
2698 (p_instance_header_tbl(tab_row).vld_organization_id <> FND_API.G_MISS_NUM) ) THEN
2699 BEGIN
2700 l_vld_organization_id := p_instance_header_tbl(tab_row).vld_organization_id; --bug4754569
2701
2702 SELECT name
2703 INTO p_instance_header_tbl(tab_row).vld_organization_name
2704 FROM hr_all_organization_units
2705 WHERE organization_id = p_instance_header_tbl(tab_row).vld_organization_id;
2706 EXCEPTION
2707 WHEN OTHERS THEN
2708 null;
2709 END;
2710 --start of code for bug 4754569--
2711 ELSE
2712 --To get the vld_organization_id from csi_item_instances--
2713 BEGIN
2714 SELECT last_vld_organization_id
2715 INTO l_vld_organization_id
2716 FROM csi_item_instances
2717 WHERE instance_id = p_instance_header_tbl(tab_row).instance_id;
2718 EXCEPTION
2719 WHEN OTHERS THEN
2720 NULL;
2721 END;
2722
2723 END IF;
2724
2725 IF ( (p_instance_header_tbl(tab_row).inventory_item_id IS NOT NULL) AND
2726 (p_instance_header_tbl(tab_row).inventory_item_id <> FND_API.G_MISS_NUM) ) THEN
2727 l_inventory_item_id:=p_instance_header_tbl(tab_row).inventory_item_id;
2728 ELSE
2729 --To get the inventory_item_id from csi_item_instances--
2730 BEGIN
2731 SELECT inventory_item_id
2732 INTO l_inventory_item_id
2733 FROM csi_item_instances
2734 WHERE instance_id = p_instance_header_tbl(tab_row).instance_id;
2735 EXCEPTION
2736 WHEN OTHERS THEN
2737 NULL;
2738 END;
2739 END IF;
2740 --end of code for bug 4754569--
2741
2742 IF csi_item_instance_vld_pvt.Check_for_eam_item
2743 (p_inventory_item_id => l_inventory_item_id,
2744 p_organization_id => l_vld_organization_id)--bug 4754569
2745 THEN
2746 l_maint_organization_id := NULL;
2747 l_department_id := NULL;
2748 l_location_id := NULL;
2749 l_gen_object_id := NULL;
2750 -- Maintenance organization
2751 BEGIN
2752 SELECT maint_organization_id
2753 INTO l_maint_organization_id
2754 FROM mtl_parameters
2755 WHERE organization_id = p_instance_header_tbl(tab_row).vld_organization_id;
2756 EXCEPTION
2757 WHEN NO_DATA_FOUND THEN
2758 NULL;
2759 END;
2760
2761 IF l_maint_organization_id IS NOT NULL
2762 THEN
2763 BEGIN
2764 SELECT organization_code
2765 INTO p_instance_header_tbl(tab_row).maintenance_organization
2766 FROM mtl_parameters
2767 WHERE organization_id = l_maint_organization_id;
2768 EXCEPTION
2769 WHEN NO_DATA_FOUND THEN
2770 NULL;
2771 END;
2772 END IF;
2773
2774 -- Department
2775 BEGIN
2776 SELECT owning_department_id
2777 ,area_id
2778 INTO l_department_id
2779 ,l_location_id
2780 FROM eam_org_maint_defaults
2781 WHERE object_type = 50
2782 AND object_id = p_instance_header_tbl(tab_row).instance_id;
2783 -- Defining when others as constraints were not defined in eam schema
2784 -- for the eam_org_maint_defaults table.
2785 EXCEPTION
2786 WHEN OTHERS THEN
2787 NULL;
2788 END ;
2789
2790 BEGIN
2791 IF l_department_id IS NOT NULL
2792 THEN
2793 SELECT department_code
2794 INTO p_instance_header_tbl(tab_row).department
2795 FROM bom_departments
2796 WHERE department_id = l_department_id;
2797 END IF;
2798 EXCEPTION
2799 WHEN NO_DATA_FOUND THEN
2800 NULL;
2801 END;
2802
2803 -- Area
2804 IF l_location_id IS NOT NULL
2805 THEN
2806 BEGIN
2807 SELECT location_codes
2808 INTO p_instance_header_tbl(tab_row).area
2809 FROM mtl_eam_locations
2810 WHERE location_id = l_location_id;
2811 EXCEPTION
2812 WHEN NO_DATA_FOUND THEN
2813 NULL;
2814 END;
2815 END IF;
2816
2817 -- Wip_accounting_class
2818 IF l_maint_organization_id IS NOT NULL
2819 THEN
2820 BEGIN
2821 SELECT class_code
2822 INTO p_instance_header_tbl(tab_row).wip_accounting_class
2823 FROM wip_accounting_classes
2824 WHERE organization_id = l_maint_organization_id
2825 AND class_type = 6
2826 AND sysdate <= nvl(disable_date, sysdate)
2827 AND ROWNUM=1;
2828 EXCEPTION
2829 WHEN NO_DATA_FOUND THEN
2830 NULL;
2831 END;
2832 END IF;
2833
2834 -- Parent_asset_number
2835 BEGIN
2836 SELECT msn.gen_object_id
2837 INTO l_gen_object_id
2838 FROM mtl_serial_numbers msn
2839 ,csi_item_instances cii
2840 WHERE msn.inventory_item_id = cii.inventory_item_id
2841 AND msn.serial_number = cii.serial_number
2842 AND cii.instance_id = p_instance_header_tbl(tab_row).instance_id;
2843 EXCEPTION
2844 WHEN NO_DATA_FOUND THEN
2845 NULL;
2846 END;
2847
2848 IF l_gen_object_id IS NOT NULL
2849 THEN
2850 BEGIN
2851 SELECT msi.concatenated_segments
2852 ,cii.instance_number
2853 INTO p_instance_header_tbl(tab_row).parent_asset_group
2854 ,p_instance_header_tbl(tab_row).parent_asset_number
2855 FROM mtl_system_items_b_kfv msi
2856 ,mtl_serial_numbers msn
2857 ,csi_item_instances cii
2858 ,mtl_object_genealogy mog
2859 WHERE msn.gen_object_id= mog.parent_object_id
2860 AND mog.object_id = l_gen_object_id
2861 AND mog.genealogy_type =5
2862 AND (sysdate BETWEEN mog.start_date_active AND nvl(mog.end_date_active,sysdate))
2863 AND msi.inventory_item_id = msn.inventory_item_id
2864 AND msi.organization_id= cii.last_vld_organization_id
2865 AND msn.inventory_item_id=cii.inventory_item_id
2866 AND msn.serial_number=cii.serial_number;
2867 EXCEPTION
2868 WHEN OTHERS THEN
2869 NULL;
2870 END;
2871 END IF;
2872
2873 IF p_instance_header_tbl(tab_row).asset_criticality_code IS NOT NULL AND
2874 p_instance_header_tbl(tab_row).asset_criticality_code <> fnd_api.g_miss_char
2875 THEN
2876 BEGIN
2877 SELECT meaning
2878 INTO p_instance_header_tbl(tab_row).criticality
2879 FROM mfg_lookups
2880 WHERE lookup_code = p_instance_header_tbl(tab_row).asset_criticality_code
2881 AND lookup_type = 'MTL_EAM_ASSET_CRITICALITY';
2882 EXCEPTION
2883 WHEN OTHERS THEN
2884 NULL;
2885 END;
2886 END IF;
2887
2888 IF p_instance_header_tbl(tab_row).category_id IS NOT NULL AND
2889 p_instance_header_tbl(tab_row).category_id <> fnd_api.g_miss_num
2890 THEN
2891 BEGIN
2892 SELECT concatenated_segments
2893 INTO p_instance_header_tbl(tab_row).category_name
2894 FROM mtl_categories_kfv
2895 WHERE category_id=p_instance_header_tbl(tab_row).category_id;
2896 EXCEPTION
2897 WHEN OTHERS THEN
2898 NULL;
2899 END;
2900 END IF;
2901
2902 --included for bug 5211068
2903 IF p_instance_header_tbl(tab_row).maintainable_flag IS NOT NULL AND
2904 p_instance_header_tbl(tab_row).maintainable_flag <> fnd_api.g_miss_char
2905 THEN
2906 BEGIN
2907 SELECT meaning
2908 INTO p_instance_header_tbl(tab_row).maintainable
2909 FROM csi_lookups
2910 WHERE lookup_code = DECODE(p_instance_header_tbl(tab_row).maintainable_flag,'Y','YES','N','NO')
2911 AND lookup_type = l_yesno_lookup_type;
2912 EXCEPTION WHEN OTHERS THEN
2913 NULL;
2914 END;
2915 END IF;
2916
2917 END IF; -- <IF csi_item_instance_vld_pvt.Check_for_eam_item>
2918
2919 END IF;
2920 END LOOP;
2921 END Resolve_id_columns;
2922
2923
2924 /*----------------------------------------------------------*/
2925 /* Procedure name: Get_Inst_Column_Values */
2926 /* Description : This procedure gets the column values */
2927 /* for the Dynamic SQL */
2928 /*----------------------------------------------------------*/
2929
2930 PROCEDURE Get_Inst_Column_Values
2931 (
2932 p_get_inst_cursor_id IN NUMBER,
2933 x_instance_id OUT NOCOPY NUMBER
2934 ) IS
2935
2936 BEGIN
2937
2938 dbms_sql.column_value(p_get_inst_cursor_id, 1, x_instance_id);
2939
2940 END Get_Inst_Column_Values;
2941
2942
2943 /*--------------------------------------------------------*/
2944 /* Procedure name: Define_Inst_Columns */
2945 /* Description : This procedure defines the columns */
2946 /* for the Dynamic SQL */
2947 /*--------------------------------------------------------*/
2948
2949 PROCEDURE Define_Inst_Columns
2950 (
2951 p_get_inst_cursor_id IN NUMBER,
2952 p_instance_query_rec IN csi_datastructures_pub.instance_query_rec
2953 ) IS
2954
2955 l_instance_header_rec csi_datastructures_pub.instance_header_rec;
2956
2957 BEGIN
2958
2959 dbms_sql.define_column(p_get_inst_cursor_id, 1, l_instance_header_rec.instance_id);
2960
2961 END Define_Inst_Columns;
2962
2963
2964 /*---------------------------------------------------------*/
2965 /* Procedure name: Bind_Inst_variable */
2966 /* Description : Procedure used to generate the where */
2967 /* clause for Item Instances */
2968 /*---------------------------------------------------------*/
2969
2970 PROCEDURE Bind_Inst_variable
2971 (
2972 p_instance_query_rec IN csi_datastructures_pub.instance_query_rec,
2973 p_party_query_rec IN csi_datastructures_pub.party_query_rec,
2974 p_pty_acct_query_rec IN csi_datastructures_pub.party_account_query_rec,
2975 p_transaction_id IN NUMBER,
2976 p_cur_get_inst_rel IN NUMBER
2977 ) IS
2978 BEGIN
2979
2980 IF(( p_instance_query_rec.instance_id IS NOT NULL) AND
2981 ( p_instance_query_rec.instance_id <> FND_API.G_MISS_NUM)) THEN
2982
2983 DBMS_SQL.BIND_VARIABLE(p_cur_get_inst_rel, ':INSTANCE_ID', p_instance_query_rec.instance_id);
2984 END IF;
2985
2986 IF( (p_instance_query_rec.inventory_item_id IS NOT NULL)
2987 AND (p_instance_query_rec.inventory_item_id <> FND_API.G_MISS_NUM)) THEN
2988 DBMS_SQL.BIND_VARIABLE(p_cur_get_inst_rel, ':INVENTORY_ITEM_ID', p_instance_query_rec.inventory_item_id);
2989 END IF;
2990
2991 IF( (p_instance_query_rec.inventory_revision IS NOT NULL)
2992 AND (p_instance_query_rec.inventory_revision <> FND_API.G_MISS_CHAR)) THEN
2993 DBMS_SQL.BIND_VARIABLE(p_cur_get_inst_rel, ':INVENTORY_REVISION', p_instance_query_rec.inventory_revision);
2994 END IF;
2995
2996 IF( (p_instance_query_rec.inv_master_organization_id IS NOT NULL)
2997 AND (p_instance_query_rec.inv_master_organization_id <> FND_API.G_MISS_NUM)) THEN
2998 DBMS_SQL.BIND_VARIABLE(p_cur_get_inst_rel, 'INV_MASTER_ORGANIZATION_ID', p_instance_query_rec.inv_master_organization_id);
2999 END IF;
3000
3001 IF( (p_instance_query_rec.serial_number IS NOT NULL)
3002 AND (p_instance_query_rec.serial_number <> FND_API.G_MISS_CHAR)) THEN
3003 DBMS_SQL.BIND_VARIABLE(p_cur_get_inst_rel, ':serial_number', p_instance_query_rec.serial_number);
3004 END IF;
3005
3006 IF( (p_instance_query_rec.lot_number IS NOT NULL)
3007 AND (p_instance_query_rec.lot_number <> FND_API.G_MISS_CHAR)) THEN
3008 DBMS_SQL.BIND_VARIABLE(p_cur_get_inst_rel, ':lot_number', p_instance_query_rec.lot_number);
3009 END IF;
3010
3011 IF( (p_instance_query_rec.unit_of_measure IS NOT NULL)
3012 AND (p_instance_query_rec.unit_of_measure <> FND_API.G_MISS_CHAR)) THEN
3013 DBMS_SQL.BIND_VARIABLE(p_cur_get_inst_rel, ':unit_of_measure', p_instance_query_rec.unit_of_measure);
3014 END IF;
3015
3016 IF( (p_instance_query_rec.instance_condition_id IS NOT NULL)
3017 AND (p_instance_query_rec.instance_condition_id <> FND_API.G_MISS_NUM)) THEN
3018 DBMS_SQL.BIND_VARIABLE(p_cur_get_inst_rel, ':instance_condition_id', p_instance_query_rec.instance_condition_id);
3019 END IF;
3020
3021 IF( (p_instance_query_rec.instance_status_id IS NOT NULL)
3022 AND (p_instance_query_rec.instance_status_id <> FND_API.G_MISS_NUM)) THEN
3023 DBMS_SQL.BIND_VARIABLE(p_cur_get_inst_rel, ':instance_status_id', p_instance_query_rec.instance_status_id);
3024 END IF;
3025
3026 IF( (p_instance_query_rec.system_id IS NOT NULL)
3027 AND (p_instance_query_rec.system_id <> FND_API.G_MISS_NUM)) THEN
3028 DBMS_SQL.BIND_VARIABLE(p_cur_get_inst_rel, ':system_id', p_instance_query_rec.system_id);
3029 END IF;
3030
3031 IF( (p_instance_query_rec.instance_type_code IS NOT NULL)
3032 AND (p_instance_query_rec.instance_type_code <> FND_API.G_MISS_CHAR)) THEN
3033 DBMS_SQL.BIND_VARIABLE(p_cur_get_inst_rel, ':instance_type_code', p_instance_query_rec.instance_type_code);
3034 END IF;
3035
3036 IF( (p_instance_query_rec.location_type_code IS NOT NULL)
3037 AND (p_instance_query_rec.location_type_code <> FND_API.G_MISS_CHAR)) THEN
3038 DBMS_SQL.BIND_VARIABLE(p_cur_get_inst_rel, ':location_type_code', p_instance_query_rec.location_type_code);
3039 END IF;
3040
3041 IF( (p_instance_query_rec.location_id IS NOT NULL)
3042 AND (p_instance_query_rec.location_id <> FND_API.G_MISS_NUM)) THEN
3043 DBMS_SQL.BIND_VARIABLE(p_cur_get_inst_rel, ':location_id', p_instance_query_rec.location_id);
3044 END IF;
3045
3046 IF( (p_instance_query_rec.inv_organization_id IS NOT NULL)
3047 AND (p_instance_query_rec.inv_organization_id <> FND_API.G_MISS_NUM)) THEN
3048 DBMS_SQL.BIND_VARIABLE(p_cur_get_inst_rel, ':inv_organization_id', p_instance_query_rec.inv_organization_id);
3049 END IF;
3050
3051 IF( (p_instance_query_rec.inv_subinventory_name IS NOT NULL)
3052 AND (p_instance_query_rec.inv_subinventory_name <> FND_API.G_MISS_CHAR)) THEN
3053 DBMS_SQL.BIND_VARIABLE(p_cur_get_inst_rel, ':inv_subinventory_name', p_instance_query_rec.inv_subinventory_name);
3054 END IF;
3055
3056 IF( (p_instance_query_rec.inv_locator_id IS NOT NULL)
3057 AND (p_instance_query_rec.inv_locator_id <> FND_API.G_MISS_NUM)) THEN
3058 DBMS_SQL.BIND_VARIABLE(p_cur_get_inst_rel, ':inv_locator_id', p_instance_query_rec.inv_locator_id);
3059 END IF;
3060
3061 IF( (p_instance_query_rec.pa_project_id IS NOT NULL)
3062 AND (p_instance_query_rec.pa_project_id <> FND_API.G_MISS_NUM)) THEN
3063 DBMS_SQL.BIND_VARIABLE(p_cur_get_inst_rel, ':pa_project_id', p_instance_query_rec.pa_project_id);
3064 END IF;
3065
3066 IF( (p_instance_query_rec.pa_project_task_id IS NOT NULL)
3067 AND (p_instance_query_rec.pa_project_task_id <> FND_API.G_MISS_NUM)) THEN
3068 DBMS_SQL.BIND_VARIABLE(p_cur_get_inst_rel, ':pa_project_task_id', p_instance_query_rec.pa_project_task_id);
3069 END IF;
3070
3071 IF( (p_instance_query_rec.in_transit_order_line_id IS NOT NULL)
3072 AND (p_instance_query_rec.in_transit_order_line_id <> FND_API.G_MISS_NUM)) THEN
3073 DBMS_SQL.BIND_VARIABLE(p_cur_get_inst_rel, ':in_transit_order_line_id', p_instance_query_rec.in_transit_order_line_id);
3074 END IF;
3075
3076 IF( (p_instance_query_rec.wip_job_id IS NOT NULL)
3077 AND (p_instance_query_rec.wip_job_id <> FND_API.G_MISS_NUM)) THEN
3078 DBMS_SQL.BIND_VARIABLE(p_cur_get_inst_rel, ':wip_job_id', p_instance_query_rec.wip_job_id);
3079 END IF;
3080
3081 IF( (p_instance_query_rec.po_order_line_id IS NOT NULL)
3082 AND (p_instance_query_rec.po_order_line_id <> FND_API.G_MISS_NUM)) THEN
3083 DBMS_SQL.BIND_VARIABLE(p_cur_get_inst_rel, ':po_order_line_id', p_instance_query_rec.po_order_line_id);
3084 END IF;
3085
3086 IF( (p_instance_query_rec.last_oe_order_line_id IS NOT NULL)
3087 AND (p_instance_query_rec.last_oe_order_line_id <> FND_API.G_MISS_NUM)) THEN
3088 DBMS_SQL.BIND_VARIABLE(p_cur_get_inst_rel, ':last_oe_order_line_id', p_instance_query_rec.last_oe_order_line_id);
3089 END IF;
3090
3091 IF( (p_instance_query_rec.last_oe_rma_line_id IS NOT NULL)
3092 AND (p_instance_query_rec.last_oe_rma_line_id <> FND_API.G_MISS_NUM)) THEN
3093 DBMS_SQL.BIND_VARIABLE(p_cur_get_inst_rel, ':last_oe_rma_line_id', p_instance_query_rec.last_oe_rma_line_id);
3094 END IF;
3095
3096 IF( (p_instance_query_rec.last_po_po_line_id IS NOT NULL)
3097 AND (p_instance_query_rec.last_po_po_line_id <> FND_API.G_MISS_NUM)) THEN
3098 DBMS_SQL.BIND_VARIABLE(p_cur_get_inst_rel, ':last_po_po_line_id', p_instance_query_rec.last_po_po_line_id);
3099 END IF;
3100
3101 IF( (p_instance_query_rec.last_oe_po_number IS NOT NULL)
3102 AND (p_instance_query_rec.last_oe_po_number <> FND_API.G_MISS_CHAR)) THEN
3103 DBMS_SQL.BIND_VARIABLE(p_cur_get_inst_rel, ':last_oe_po_number', p_instance_query_rec.last_oe_po_number);
3104 END IF;
3105
3106 IF( (p_instance_query_rec.last_wip_job_id IS NOT NULL)
3107 AND (p_instance_query_rec.last_wip_job_id <> FND_API.G_MISS_NUM)) THEN
3108 DBMS_SQL.BIND_VARIABLE(p_cur_get_inst_rel, ':last_wip_job_id', p_instance_query_rec.last_wip_job_id);
3109 END IF;
3110
3111 IF( (p_instance_query_rec.last_pa_project_id IS NOT NULL)
3112 AND (p_instance_query_rec.last_pa_project_id <> FND_API.G_MISS_NUM)) THEN
3113 DBMS_SQL.BIND_VARIABLE(p_cur_get_inst_rel, ':last_pa_project_id', p_instance_query_rec.last_pa_project_id);
3114 END IF;
3115
3116 IF( (p_instance_query_rec.last_pa_task_id IS NOT NULL)
3117 AND (p_instance_query_rec.last_pa_task_id <> FND_API.G_MISS_NUM)) THEN
3118 DBMS_SQL.BIND_VARIABLE(p_cur_get_inst_rel, ':last_pa_task_id', p_instance_query_rec.last_pa_task_id);
3119 END IF;
3120
3121 IF( (p_instance_query_rec.last_oe_agreement_id IS NOT NULL)
3122 AND (p_instance_query_rec.last_oe_agreement_id <> FND_API.G_MISS_NUM)) THEN
3123 DBMS_SQL.BIND_VARIABLE(p_cur_get_inst_rel, ':last_oe_agreement_id', p_instance_query_rec.last_oe_agreement_id);
3124 END IF;
3125
3126 IF( (p_instance_query_rec.install_date IS NOT NULL)
3127 AND (p_instance_query_rec.install_date <> FND_API.G_MISS_DATE)) THEN
3128 DBMS_SQL.BIND_VARIABLE(p_cur_get_inst_rel, ':install_date', p_instance_query_rec.install_date);
3129 END IF;
3130
3131 IF( (p_instance_query_rec.manually_created_flag IS NOT NULL)
3132 AND (p_instance_query_rec.manually_created_flag <> FND_API.G_MISS_CHAR)) THEN
3133 DBMS_SQL.BIND_VARIABLE(p_cur_get_inst_rel, ':manually_created_flag', p_instance_query_rec.manually_created_flag);
3134 END IF;
3135
3136 IF( (p_instance_query_rec.return_by_date IS NOT NULL)
3137 AND (p_instance_query_rec.return_by_date <> FND_API.G_MISS_DATE)) THEN
3138 DBMS_SQL.BIND_VARIABLE(p_cur_get_inst_rel, ':return_by_date', p_instance_query_rec.return_by_date);
3139 END IF;
3140
3141 IF( (p_instance_query_rec.actual_return_date IS NOT NULL)
3142 AND (p_instance_query_rec.actual_return_date <> FND_API.G_MISS_DATE)) THEN
3143 DBMS_SQL.BIND_VARIABLE(p_cur_get_inst_rel, ':actual_return_date', p_instance_query_rec.actual_return_date);
3144 END IF;
3145
3146 IF( (p_instance_query_rec.instance_usage_code IS NOT NULL)
3147 AND (p_instance_query_rec.instance_usage_code <> FND_API.G_MISS_CHAR)) THEN
3148 DBMS_SQL.BIND_VARIABLE(p_cur_get_inst_rel, ':instance_usage_code', p_instance_query_rec.instance_usage_code);
3149 END IF;
3150
3151 -- The following code has been added by sguthiva for att enhancements
3152
3153 IF( (p_instance_query_rec.config_inst_hdr_id IS NOT NULL)
3154 AND (p_instance_query_rec.config_inst_hdr_id <> FND_API.G_MISS_NUM)) THEN
3155 DBMS_SQL.BIND_VARIABLE(p_cur_get_inst_rel, ':config_inst_hdr_id', p_instance_query_rec.config_inst_hdr_id);
3156 END IF;
3157
3158 IF( (p_instance_query_rec.config_inst_rev_num IS NOT NULL)
3159 AND (p_instance_query_rec.config_inst_rev_num <> FND_API.G_MISS_NUM)) THEN
3160 DBMS_SQL.BIND_VARIABLE(p_cur_get_inst_rel, ':config_inst_rev_num', p_instance_query_rec.config_inst_rev_num);
3161 END IF;
3162
3163 IF( (p_instance_query_rec.config_inst_item_id IS NOT NULL)
3164 AND (p_instance_query_rec.config_inst_item_id <> FND_API.G_MISS_NUM)) THEN
3165 DBMS_SQL.BIND_VARIABLE(p_cur_get_inst_rel, ':config_inst_item_id', p_instance_query_rec.config_inst_item_id);
3166 END IF;
3167
3168 IF( (p_instance_query_rec.instance_description IS NOT NULL)
3169 AND (p_instance_query_rec.instance_description <> FND_API.G_MISS_CHAR)) THEN
3170 DBMS_SQL.BIND_VARIABLE(p_cur_get_inst_rel, ':instance_description', p_instance_query_rec.instance_description);
3171 END IF;
3172
3173 -- End of code addition
3174 -- Addition of columns for FA Integration
3175 IF( (p_instance_query_rec.operational_status_code IS NOT NULL)
3176 AND (p_instance_query_rec.operational_status_code <> FND_API.G_MISS_CHAR)) THEN
3177 DBMS_SQL.BIND_VARIABLE(p_cur_get_inst_rel, ':operational_status_code', p_instance_query_rec.operational_status_code);
3178 END IF;
3179 -- End addition of columns for FA Integration
3180 ----
3181 IF( (p_party_query_rec.instance_party_id IS NOT NULL)
3182 AND (p_party_query_rec.instance_party_id <> FND_API.G_MISS_NUM)) THEN
3183 DBMS_SQL.BIND_VARIABLE(p_cur_get_inst_rel, ':instance_party_id', p_party_query_rec.instance_party_id);
3184 END IF;
3185
3186 IF( (p_party_query_rec.instance_id IS NOT NULL)
3187 AND (p_party_query_rec.instance_id <> FND_API.G_MISS_NUM)) THEN
3188 DBMS_SQL.BIND_VARIABLE(p_cur_get_inst_rel, ':instance_id', p_party_query_rec.instance_id);
3189 END IF;
3190
3191 IF( (p_party_query_rec.party_id IS NOT NULL)
3192 AND (p_party_query_rec.party_id <> FND_API.G_MISS_NUM)) THEN
3193 DBMS_SQL.BIND_VARIABLE(p_cur_get_inst_rel, ':party_id', p_party_query_rec.party_id);
3194 END IF;
3195
3196 IF( (p_party_query_rec.relationship_type_code IS NOT NULL)
3197 AND (p_party_query_rec.relationship_type_code <> FND_API.G_MISS_CHAR)) THEN
3198 DBMS_SQL.BIND_VARIABLE(p_cur_get_inst_rel, ':relationship_type_code', p_party_query_rec.relationship_type_code);
3199 END IF;
3200
3201 ----
3202 IF( (p_pty_acct_query_rec.ip_account_id IS NOT NULL)
3203 AND (p_pty_acct_query_rec.ip_account_id <> FND_API.G_MISS_NUM)) THEN
3204 DBMS_SQL.BIND_VARIABLE(p_cur_get_inst_rel, ':ip_account_id', p_pty_acct_query_rec.ip_account_id);
3205 END IF;
3206
3207 IF( (p_pty_acct_query_rec.instance_party_id IS NOT NULL)
3208 AND (p_pty_acct_query_rec.instance_party_id <> FND_API.G_MISS_NUM)) THEN
3209 DBMS_SQL.BIND_VARIABLE(p_cur_get_inst_rel, ':instance_party_id', p_pty_acct_query_rec.instance_party_id);
3210 END IF;
3211
3212 IF( (p_pty_acct_query_rec.party_account_id IS NOT NULL)
3213 AND (p_pty_acct_query_rec.party_account_id <> FND_API.G_MISS_NUM)) THEN
3214 DBMS_SQL.BIND_VARIABLE(p_cur_get_inst_rel, ':party_account_id', p_pty_acct_query_rec.party_account_id);
3215 END IF;
3216
3217 IF( (p_pty_acct_query_rec.relationship_type_code IS NOT NULL)
3218 AND (p_pty_acct_query_rec.relationship_type_code <> FND_API.G_MISS_CHAR)) THEN
3219 DBMS_SQL.BIND_VARIABLE(p_cur_get_inst_rel, ':relationship_type_code', p_pty_acct_query_rec.relationship_type_code);
3220 END IF;
3221
3222 IF p_transaction_id is not null then
3223 DBMS_SQL.BIND_VARIABLE(p_cur_get_inst_rel, ':p_transaction_id', p_transaction_id);
3224 END IF;
3225 END Bind_Inst_variable;
3226
3227
3228 /*-----------------------------------------------------------*/
3229 /* Procedure name: Gen_Inst_Where_Clause */
3230 /* Description : Procedure used to generate the where */
3231 /* clause for Party relationship */
3232 /*-----------------------------------------------------------*/
3233
3234 PROCEDURE Gen_Inst_Where_Clause
3235 (
3236 p_instance_query_rec IN csi_datastructures_pub.instance_query_rec,
3237 p_party_query_rec IN csi_datastructures_pub.party_query_rec,
3238 p_pty_acct_query_rec IN csi_datastructures_pub.party_account_query_rec,
3239 p_transaction_id IN NUMBER,
3240 x_select_stmt OUT NOCOPY VARCHAR2,
3241 p_active_instance_only IN VARCHAR2
3242 ) IS
3243
3244 l_join_condition VARCHAR2(2000):= '';
3245 l_from_clause VARCHAR2(2000):= '';
3246 l_select_columns VARCHAR2(2000):= '';
3247 x_where_clause VARCHAR2(2000):= '';
3248 l_instance_rec_exists BOOLEAN := FALSE;
3249 l_party_rec_exists BOOLEAN := FALSE;
3250 l_party_acct_rec_exists BOOLEAN := FALSE;
3251 --Added
3252 l_flag VARCHAR2(3);
3253 l_inp_rec OKS_ENTITLEMENTS_PUB.inp_cont_rec;
3254 x_return_status VARCHAR2(2000);
3255 x_msg_count NUMBER;
3256 x_msg_data VARCHAR2(2000);
3257 l_ent_contracts OKS_ENTITLEMENTS_PUB.ent_cont_tbl;
3258 l_msg_data VARCHAR2(2000);
3259 l_msg_index NUMBER;
3260 l_msg_count NUMBER;
3261 l_rec_count NUMBER:=1;
3262 l_row_count NUMBER;
3263 l_covered_cp_id VARCHAR2(2000) DEFAULT NULL;
3264 l_covered_level_code OKC_LINE_STYLES_B.LTY_CODE%TYPE;
3265 l_coverage_level_id NUMBER;
3266 --End Addition
3267
3268 l_union_stmt VARCHAR2(2000) := ' select instance_id from csi_item_instances_h '||
3269 ' where transaction_id = :p_transaction_id UNION select a.instance_id '||
3270 ' from csi_i_parties a, csi_i_parties_h b where a.instance_party_id = b.instance_party_id '||
3271 ' and b.transaction_id = :p_transaction_id UNION select a.instance_id '||
3272 ' from csi_i_assets a, csi_i_assets_h b where a.instance_asset_id = b.instance_asset_id '||
3273 ' and transaction_id = :p_transaction_id UNION '||
3274 ' select a.instance_id from csi_i_parties a, csi_ip_accounts b, '||
3275 ' csi_ip_accounts_h c where a.instance_party_id = b.instance_party_id '||
3276 ' and b.ip_account_id = c.ip_account_id and c.transaction_id = :p_transaction_id UNION '||
3277 ' SELECT b.instance_id FROM csi_iea_values_h a, csi_iea_values b '||
3278 ' WHERE a.attribute_value_id = b.attribute_value_id AND a.transaction_id = :p_transaction_id '||
3279 ' UNION SELECT b.subject_id FROM csi_ii_relationships_h a, csi_ii_relationships b '||
3280 ' WHERE a.relationship_id = b.relationship_id AND a.transaction_id = :p_transaction_id '||
3281 ' UNION SELECT a.instance_id FROM csi_i_org_assignments a, csi_i_org_assignments_h b '||
3282 ' WHERE a.instance_ou_id = b.instance_ou_id and b.transaction_id = :p_transaction_id '||
3283 ' UNION SELECT a.instance_id FROM csi_i_pricing_attribs a , csi_i_pricing_attribs_h b '||
3284 ' WHERE a.pricing_attribute_id = b.pricing_attribute_id and b.transaction_id = :p_transaction_id '||
3285 ' UNION SELECT a.instance_id FROM csi_i_version_labels a, csi_i_version_labels_h b '||
3286 ' WHERE a.version_label_id = b.version_label_id and b.transaction_id = :p_transaction_id '||
3287 ' UNION SELECT a.instance_id FROM csi_item_instances a, csi_systems_b b, csi_systems_h c '||
3288 ' WHERE a.system_id = b.system_id and b.system_id = c.system_id and c.transaction_id = :p_transaction_id ';
3289
3290
3291 BEGIN
3292
3293 IF (p_instance_query_rec.INSTANCE_ID <> FND_API.G_MISS_NUM)
3294 OR (p_instance_query_rec.INSTANCE_ID IS NULL )
3295 OR (p_instance_query_rec.INVENTORY_ITEM_ID <> FND_API.G_MISS_NUM)
3296 OR (p_instance_query_rec.INVENTORY_ITEM_ID IS NULL )
3297 OR (p_instance_query_rec.INVENTORY_REVISION <> FND_API.G_MISS_CHAR)
3298 OR (p_instance_query_rec.INVENTORY_REVISION IS NULL )
3299 OR (p_instance_query_rec.INV_MASTER_ORGANIZATION_ID <> FND_API.G_MISS_NUM)
3300 OR (p_instance_query_rec.INV_MASTER_ORGANIZATION_ID IS NULL )
3301 OR (p_instance_query_rec.SERIAL_NUMBER <> FND_API.G_MISS_CHAR)
3302 OR (p_instance_query_rec.SERIAL_NUMBER IS NULL )
3303 OR (p_instance_query_rec.LOT_NUMBER <> FND_API.G_MISS_CHAR)
3304 OR (p_instance_query_rec.LOT_NUMBER IS NULL )
3305 OR (p_instance_query_rec.UNIT_OF_MEASURE <> FND_API.G_MISS_CHAR)
3306 OR (p_instance_query_rec.UNIT_OF_MEASURE IS NULL )
3307 OR (p_instance_query_rec.INSTANCE_CONDITION_ID <> FND_API.G_MISS_NUM)
3308 OR (p_instance_query_rec.INSTANCE_CONDITION_ID IS NULL )
3309 OR (p_instance_query_rec.INSTANCE_STATUS_ID <> FND_API.G_MISS_NUM)
3310 OR (p_instance_query_rec.INSTANCE_STATUS_ID IS NULL )
3311 OR (p_instance_query_rec.SYSTEM_ID <> FND_API.G_MISS_NUM)
3312 OR (p_instance_query_rec.SYSTEM_ID IS NULL )
3313 OR (p_instance_query_rec.INSTANCE_TYPE_CODE <> FND_API.G_MISS_CHAR)
3314 OR (p_instance_query_rec.INSTANCE_TYPE_CODE IS NULL )
3315 OR (p_instance_query_rec.LOCATION_TYPE_CODE <> FND_API.G_MISS_CHAR)
3316 OR (p_instance_query_rec.LOCATION_TYPE_CODE IS NULL )
3317 OR (p_instance_query_rec.LOCATION_ID <> FND_API.G_MISS_NUM)
3318 OR (p_instance_query_rec.LOCATION_ID IS NULL )
3319 OR (p_instance_query_rec.INV_ORGANIZATION_ID <> FND_API.G_MISS_NUM)
3320 OR (p_instance_query_rec.INV_ORGANIZATION_ID IS NULL )
3321 OR (p_instance_query_rec.INV_SUBINVENTORY_NAME <> FND_API.G_MISS_CHAR)
3322 OR (p_instance_query_rec.INV_SUBINVENTORY_NAME IS NULL )
3323 OR (p_instance_query_rec.INV_LOCATOR_ID <> FND_API.G_MISS_NUM)
3324 OR (p_instance_query_rec.INV_LOCATOR_ID IS NULL )
3325 OR (p_instance_query_rec.PA_PROJECT_ID <> FND_API.G_MISS_NUM)
3326 OR (p_instance_query_rec.PA_PROJECT_ID IS NULL )
3327 OR (p_instance_query_rec.PA_PROJECT_TASK_ID <> FND_API.G_MISS_NUM)
3328 OR (p_instance_query_rec.PA_PROJECT_TASK_ID IS NULL )
3329 OR (p_instance_query_rec.IN_TRANSIT_ORDER_LINE_ID <> FND_API.G_MISS_NUM)
3330 OR (p_instance_query_rec.IN_TRANSIT_ORDER_LINE_ID IS NULL )
3331 OR (p_instance_query_rec.WIP_JOB_ID <> FND_API.G_MISS_NUM)
3332 OR (p_instance_query_rec.WIP_JOB_ID IS NULL )
3333 OR (p_instance_query_rec.PO_ORDER_LINE_ID <> FND_API.G_MISS_NUM)
3334 OR (p_instance_query_rec.PO_ORDER_LINE_ID IS NULL )
3335 OR (p_instance_query_rec.LAST_OE_ORDER_LINE_ID <> FND_API.G_MISS_NUM)
3336 OR (p_instance_query_rec.LAST_OE_ORDER_LINE_ID IS NULL )
3337 OR (p_instance_query_rec.LAST_OE_RMA_LINE_ID <> FND_API.G_MISS_NUM)
3338 OR (p_instance_query_rec.LAST_OE_RMA_LINE_ID IS NULL )
3339 OR (p_instance_query_rec.LAST_PO_PO_LINE_ID <> FND_API.G_MISS_NUM)
3340 OR (p_instance_query_rec.LAST_PO_PO_LINE_ID IS NULL )
3341 OR (p_instance_query_rec.LAST_OE_PO_NUMBER <> FND_API.G_MISS_CHAR)
3342 OR (p_instance_query_rec.LAST_OE_PO_NUMBER IS NULL )
3343 OR (p_instance_query_rec.LAST_WIP_JOB_ID <> FND_API.G_MISS_NUM)
3344 OR (p_instance_query_rec.LAST_WIP_JOB_ID IS NULL )
3345 OR (p_instance_query_rec.LAST_PA_PROJECT_ID <> FND_API.G_MISS_NUM)
3346 OR (p_instance_query_rec.LAST_PA_PROJECT_ID IS NULL )
3347 OR (p_instance_query_rec.LAST_PA_TASK_ID <> FND_API.G_MISS_NUM)
3348 OR (p_instance_query_rec.LAST_PA_TASK_ID IS NULL )
3349 OR (p_instance_query_rec.LAST_OE_AGREEMENT_ID <> FND_API.G_MISS_NUM)
3350 OR (p_instance_query_rec.LAST_OE_AGREEMENT_ID IS NULL )
3351 OR (p_instance_query_rec.INSTALL_DATE <> FND_API.G_MISS_DATE)
3352 OR (p_instance_query_rec.INSTALL_DATE IS NULL )
3353 OR (p_instance_query_rec.MANUALLY_CREATED_FLAG <> FND_API.G_MISS_CHAR)
3354 OR (p_instance_query_rec.MANUALLY_CREATED_FLAG IS NULL )
3355 OR (p_instance_query_rec.RETURN_BY_DATE <> FND_API.G_MISS_DATE)
3356 OR (p_instance_query_rec.RETURN_BY_DATE IS NULL )
3357 OR (p_instance_query_rec.ACTUAL_RETURN_DATE <> FND_API.G_MISS_DATE)
3358 OR (p_instance_query_rec.ACTUAL_RETURN_DATE IS NULL )
3359 OR (p_instance_query_rec.INSTANCE_USAGE_CODE <> FND_API.G_MISS_CHAR)
3360 OR (p_instance_query_rec.INSTANCE_USAGE_CODE IS NULL )
3361 OR (p_instance_query_rec.CONTRACT_NUMBER <> FND_API.G_MISS_CHAR)
3362 OR (p_instance_query_rec.CONTRACT_NUMBER IS NULL )
3363 OR (p_instance_query_rec.CONFIG_INST_HDR_ID <> FND_API.G_MISS_NUM) -- sguthiva added for att
3364 OR (p_instance_query_rec.CONFIG_INST_HDR_ID IS NULL )
3365 OR (p_instance_query_rec.CONFIG_INST_REV_NUM <> FND_API.G_MISS_NUM) -- sguthiva added for att
3366 OR (p_instance_query_rec.CONFIG_INST_REV_NUM IS NULL )
3367 OR (p_instance_query_rec.CONFIG_INST_ITEM_ID <> FND_API.G_MISS_NUM) -- sguthiva added for att
3368 OR (p_instance_query_rec.CONFIG_INST_ITEM_ID IS NULL )
3369 OR (p_instance_query_rec.INSTANCE_DESCRIPTION <> FND_API.G_MISS_CHAR) -- sguthiva added for att
3370 OR (p_instance_query_rec.INSTANCE_DESCRIPTION IS NULL )
3371 OR (p_instance_query_rec.OPERATIONAL_STATUS_CODE <> FND_API.G_MISS_CHAR) -- Addition of columns for FA Integration
3372 OR (p_instance_query_rec.OPERATIONAL_STATUS_CODE IS NULL )
3373 THEN
3374
3375 l_instance_rec_exists := TRUE;
3376 l_from_clause := ' csi_item_instances a ';
3377 l_select_columns := ' a.INSTANCE_ID ';
3378
3379
3380 END IF;
3381
3382 IF (p_party_query_rec.instance_party_id <> FND_API.G_MISS_NUM)
3383 OR (p_party_query_rec.instance_party_id IS NULL )
3384 OR (p_party_query_rec.instance_id <> FND_API.G_MISS_NUM)
3385 OR (p_party_query_rec.instance_id IS NULL )
3386 OR (p_party_query_rec.party_id <> FND_API.G_MISS_NUM)
3387 OR (p_party_query_rec.party_id IS NULL )
3388 OR (p_party_query_rec.relationship_type_code <> FND_API.G_MISS_CHAR )
3389 OR (p_party_query_rec.relationship_type_code IS NULL ) THEN
3390
3391 l_party_rec_exists := TRUE;
3392 IF l_instance_rec_exists THEN
3393 l_from_clause := l_from_clause||' , csi_i_parties b ';
3394 l_join_condition := ' a.instance_id = b.instance_id ';
3395 ELSE
3396 l_from_clause := ' csi_i_parties b ';
3397 l_select_columns := ' b.instance_id ';
3398 END IF;
3399
3400 END IF;
3401
3402 IF (p_pty_acct_query_rec.ip_account_id <> FND_API.G_MISS_NUM)
3403 OR (p_pty_acct_query_rec.ip_account_id IS NULL )
3404 OR (p_pty_acct_query_rec.instance_party_id <> FND_API.G_MISS_NUM)
3405 OR (p_pty_acct_query_rec.instance_party_id IS NULL )
3406 OR (p_pty_acct_query_rec.party_account_id <> FND_API.G_MISS_NUM)
3407 OR (p_pty_acct_query_rec.party_account_id IS NULL)
3408 OR (p_pty_acct_query_rec.relationship_type_code <> FND_API.G_MISS_CHAR )
3409 OR (p_pty_acct_query_rec.relationship_type_code IS NULL ) THEN
3410
3411 l_party_acct_rec_exists := TRUE;
3412
3413 IF l_party_rec_exists then
3414
3415 IF l_instance_rec_exists THEN
3416 l_from_clause := l_from_clause||' , csi_ip_accounts c ';
3417 l_join_condition := l_join_condition||' AND b.instance_party_id = c.instance_party_id ';
3418
3419 ELSE
3420 l_from_clause := l_from_clause||' , csi_ip_accounts c ';
3421 l_join_condition := ' b.instance_party_id = c.instance_party_id ';
3422
3423 END IF;
3424
3425 ELSE
3426
3427 IF l_instance_rec_exists THEN
3428 l_from_clause := l_from_clause||' , csi_i_parties b , csi_ip_accounts c ';
3429 l_join_condition := ' a.instance_id = b.instance_id AND b.instance_party_id = c.instance_party_id ';
3430 ELSE
3431 l_from_clause := ' csi_i_parties b , csi_ip_accounts c ';
3432 l_join_condition := ' b.instance_party_id = c.instance_party_id ';
3433 l_select_columns := ' b.instance_id ';
3434 END IF;
3435
3436 END IF;
3437
3438 END IF;
3439
3440 IF (( p_instance_query_rec.instance_id IS NOT NULL) AND
3441 ( p_instance_query_rec.instance_id <> FND_API.G_MISS_NUM)) THEN
3442 IF x_where_clause IS NULL THEN
3443 x_where_clause := ' a.instance_id = :INSTANCE_ID ';
3444 ELSE
3445 x_where_clause := x_where_clause||' AND '||' a.instance_id = :INSTANCE_ID ';
3446 END IF;
3447 ELSIF ( p_instance_query_rec.instance_id IS NULL) THEN
3448 IF x_where_clause IS NULL THEN
3449 x_where_clause := ' a.instance_id IS NULL ';
3450 ELSE
3451 x_where_clause := x_where_clause||' AND '||' a.instance_id IS NULL ';
3452 END IF;
3453 END IF;
3454 IF (( p_instance_query_rec.inventory_item_id IS NOT NULL) AND
3455 ( p_instance_query_rec.inventory_item_id <> FND_API.G_MISS_NUM)) THEN
3456 IF x_where_clause IS NULL THEN
3457 x_where_clause := ' a.inventory_item_id = :INVENTORY_ITEM_ID ';
3458 ELSE
3459 x_where_clause := x_where_clause||' AND '||' a.inventory_item_id = :INVENTORY_ITEM_ID ';
3460 END IF;
3461 ELSIF ( p_instance_query_rec.inventory_item_id IS NULL) THEN
3462 IF x_where_clause IS NULL THEN
3463 x_where_clause := ' a.inventory_item_id IS NULL ';
3464 ELSE
3465 x_where_clause := x_where_clause||' AND '||' a.inventory_item_id IS NULL ';
3466 END IF;
3467 END IF;
3468 IF (( p_instance_query_rec.inventory_revision IS NOT NULL) AND
3469 ( p_instance_query_rec.inventory_revision <> FND_API.G_MISS_CHAR)) THEN
3470 IF x_where_clause IS NULL THEN
3471 x_where_clause := ' a.inventory_revision = :INVENTORY_REVISION ';
3472 ELSE
3473 x_where_clause := x_where_clause||' AND '||' a.inventory_revision = :INVENTORY_REVISION ';
3474
3475 END IF;
3476 ELSIF ( p_instance_query_rec.inventory_revision IS NULL) THEN
3477 IF x_where_clause IS NULL THEN
3478 x_where_clause := ' a.inventory_revision IS NULL ';
3479 ELSE
3480 x_where_clause := x_where_clause||' AND '||' a.inventory_revision IS NULL ';
3481 END IF;
3482 END IF;
3483 IF (( p_instance_query_rec.inv_master_organization_id IS NOT NULL) AND
3484 ( p_instance_query_rec.inv_master_organization_id <> FND_API.G_MISS_NUM)) THEN
3485 IF x_where_clause IS NULL THEN
3486 x_where_clause := ' a.inv_master_organization_id = :INV_MASTER_ORGANIZATION_ID ';
3487 ELSE
3488 x_where_clause := x_where_clause||' AND '||' a.inv_master_organization_id = :INV_MASTER_ORGANIZATION_ID ';
3489
3490 END IF;
3491 ELSIF ( p_instance_query_rec.inv_master_organization_id IS NULL) THEN
3492 IF x_where_clause IS NULL THEN
3493 x_where_clause := ' a.inv_master_organization_id IS NULL ';
3494 ELSE
3495 x_where_clause := x_where_clause||' AND '||' a.inv_master_organization_id IS NULL ';
3496 END IF;
3497 END IF;
3498
3499 IF (( p_instance_query_rec.serial_number IS NOT NULL) AND
3500 ( p_instance_query_rec.serial_number <> FND_API.G_MISS_CHAR)) THEN
3501 IF x_where_clause IS NULL THEN
3502 x_where_clause := ' a.serial_number = :serial_number ';
3503 ELSE
3504 x_where_clause := x_where_clause||' AND '||' a.serial_number = :serial_number ';
3505 END IF;
3506
3507 ELSIF ( p_instance_query_rec.serial_number IS NULL) THEN
3508 IF x_where_clause IS NULL THEN
3509 x_where_clause := ' a.serial_number IS NULL ';
3510 ELSE
3511 x_where_clause := x_where_clause||' AND '||' a.serial_number IS NULL ';
3512 END IF;
3513 END IF;
3514
3515 IF (( p_instance_query_rec.lot_number IS NOT NULL) AND
3516 ( p_instance_query_rec.lot_number <> FND_API.G_MISS_CHAR)) THEN
3517 IF x_where_clause IS NULL THEN
3518 x_where_clause := ' a.lot_number = :lot_number ';
3519 ELSE
3520 x_where_clause := x_where_clause||' AND '||' a.lot_number = :lot_number ';
3521 END IF;
3522
3523 ELSIF ( p_instance_query_rec.lot_number IS NULL) THEN
3524 IF x_where_clause IS NULL THEN
3525 x_where_clause := ' a.lot_number IS NULL ';
3526 ELSE
3527 x_where_clause := x_where_clause||' AND '||' a.lot_number IS NULL ';
3528
3529 END IF;
3530 END IF;
3531
3532 IF( (p_instance_query_rec.unit_of_measure IS NOT NULL)
3533 AND (p_instance_query_rec.unit_of_measure <> FND_API.G_MISS_CHAR)) THEN
3534 IF x_where_clause IS NULL THEN
3535 x_where_clause := ' a.unit_of_measure = :unit_of_measure ';
3536 ELSE
3537 x_where_clause := x_where_clause||' AND '||' a.unit_of_measure = :unit_of_measure ';
3538 END IF;
3539 ELSIF (p_instance_query_rec.unit_of_measure IS NULL) THEN
3540 IF x_where_clause IS NULL THEN
3541 x_where_clause := ' a.unit_of_measure IS NULL ';
3542 ELSE
3543 x_where_clause := x_where_clause||' AND '||' a.unit_of_measure IS NULL ';
3544 END IF;
3545 END IF;
3546
3547 IF (( p_instance_query_rec.instance_condition_id IS NOT NULL) AND
3548 ( p_instance_query_rec.instance_condition_id <> FND_API.G_MISS_NUM)) THEN
3549 IF x_where_clause IS NULL THEN
3550 x_where_clause := ' a.instance_condition_id = :instance_condition_id ';
3551 ELSE
3552 x_where_clause := x_where_clause||' AND '||' a.instance_condition_id = :instance_condition_id ';
3553 END IF;
3554 ELSIF ( p_instance_query_rec.instance_condition_id IS NULL) THEN
3555 IF x_where_clause IS NULL THEN
3556 x_where_clause := ' a.instance_condition_id IS NULL ';
3557 ELSE
3558 x_where_clause := x_where_clause||' AND '||' a.instance_condition_id IS NULL ';
3559 END IF;
3560
3561 END IF;
3562
3563 IF (( p_instance_query_rec.instance_status_id IS NOT NULL) AND
3564 ( p_instance_query_rec.instance_status_id <> FND_API.G_MISS_NUM)) THEN
3565 IF x_where_clause IS NULL THEN
3566 x_where_clause := ' a.instance_status_id = :instance_status_id ';
3567 ELSE
3568 x_where_clause := x_where_clause||' AND '||' a.instance_status_id = :instance_status_id ';
3569 END IF;
3570 ELSIF ( p_instance_query_rec.instance_status_id IS NULL) THEN
3571 IF x_where_clause IS NULL THEN
3572 x_where_clause := ' a.instance_status_id IS NULL ';
3573 ELSE
3574 x_where_clause := x_where_clause||' AND '||' a.instance_status_id IS NULL ';
3575 END IF;
3576 END IF;
3577
3578 IF (( p_instance_query_rec.system_id IS NOT NULL) AND
3579 ( p_instance_query_rec.system_id <> FND_API.G_MISS_NUM)) THEN
3580 IF x_where_clause IS NULL THEN
3581 x_where_clause := ' a.system_id = :system_id ';
3582 ELSE
3583 x_where_clause := x_where_clause||' AND '||' a.system_id = :system_id ';
3584 END IF;
3585
3586 ELSIF ( p_instance_query_rec.system_id IS NULL) THEN
3587 IF x_where_clause IS NULL THEN
3588 x_where_clause := ' a.system_id IS NULL ';
3589 ELSE
3590 x_where_clause := x_where_clause||' AND '||' a.system_id IS NULL ';
3591 END IF;
3592 END IF;
3593
3594 IF (( p_instance_query_rec.instance_type_code IS NOT NULL) AND
3595 ( p_instance_query_rec.instance_type_code <> FND_API.G_MISS_CHAR)) THEN
3596 IF x_where_clause IS NULL THEN
3597 x_where_clause := ' a.instance_type_code = :instance_type_code ';
3598 ELSE
3599 x_where_clause := x_where_clause||' AND '||' a.instance_type_code = :instance_type_code ';
3600 END IF;
3601 ELSIF ( p_instance_query_rec.instance_type_code IS NULL) THEN
3602 IF x_where_clause IS NULL THEN
3603 x_where_clause := ' a.instance_type_code IS NULL ';
3604 ELSE
3605 x_where_clause := x_where_clause||' AND '||' a.instance_type_code IS NULL ';
3606 END IF;
3607 END IF;
3608
3609 IF (( p_instance_query_rec.location_type_code IS NOT NULL) AND
3610 ( p_instance_query_rec.location_type_code <> FND_API.G_MISS_CHAR)) THEN
3611 IF x_where_clause IS NULL THEN
3612 x_where_clause := ' a.location_type_code = :location_type_code ';
3613 ELSE
3614 x_where_clause := x_where_clause||' AND '||' a.location_type_code = :location_type_code ';
3615 END IF;
3616 ELSIF ( p_instance_query_rec.location_type_code IS NULL) THEN
3617 IF x_where_clause IS NULL THEN
3618 x_where_clause := ' a.location_type_code IS NULL ';
3619 ELSE
3620 x_where_clause := x_where_clause||' AND '||' a.location_type_code IS NULL ';
3621 END IF;
3622 END IF;
3623
3624 IF (( p_instance_query_rec.location_id IS NOT NULL) AND
3625 ( p_instance_query_rec.location_id <> FND_API.G_MISS_NUM)) THEN
3626 IF x_where_clause IS NULL THEN
3627 x_where_clause := ' a.location_id = :location_id ';
3628 ELSE
3629 x_where_clause := x_where_clause||' AND '||' a.location_id = :location_id ';
3630 END IF;
3631 ELSIF ( p_instance_query_rec.location_id IS NULL) THEN
3632 IF x_where_clause IS NULL THEN
3633 x_where_clause := ' a.location_id IS NULL ';
3634 ELSE
3635 x_where_clause := x_where_clause||' AND '||' a.location_id IS NULL ';
3636 END IF;
3637 END IF;
3638
3639 IF (( p_instance_query_rec.inv_organization_id IS NOT NULL) AND
3640 ( p_instance_query_rec.inv_organization_id <> FND_API.G_MISS_NUM)) THEN
3641 IF x_where_clause IS NULL THEN
3642 x_where_clause := ' a.inv_organization_id = :inv_organization_id ';
3643 ELSE
3644 x_where_clause := x_where_clause||' AND '||' a.inv_organization_id = :inv_organization_id ';
3645 END IF;
3646 ELSIF ( p_instance_query_rec.inv_organization_id IS NULL) THEN
3647 IF x_where_clause IS NULL THEN
3648 x_where_clause := ' a.inv_organization_id IS NULL ';
3649 ELSE
3650 x_where_clause := x_where_clause||' AND '||' a.inv_organization_id IS NULL ';
3651 END IF;
3652 END IF;
3653
3654 IF (( p_instance_query_rec.inv_subinventory_name IS NOT NULL) AND
3655 ( p_instance_query_rec.inv_subinventory_name <> FND_API.G_MISS_CHAR)) THEN
3656 IF x_where_clause IS NULL THEN
3657 x_where_clause := ' a.inv_subinventory_name = :inv_subinventory_name ';
3658 ELSE
3659 x_where_clause := x_where_clause||' AND '||' a.inv_subinventory_name = :inv_subinventory_name ';
3660 END IF;
3661 ELSIF ( p_instance_query_rec.inv_subinventory_name IS NULL) THEN
3662 IF x_where_clause IS NULL THEN
3663 x_where_clause := ' a.inv_subinventory_name IS NULL ';
3664 ELSE
3665 x_where_clause := x_where_clause||' AND '||' a.inv_subinventory_name IS NULL ';
3666 END IF;
3667 END IF;
3668
3669 IF (( p_instance_query_rec.inv_locator_id IS NOT NULL) AND
3670 ( p_instance_query_rec.inv_locator_id <> FND_API.G_MISS_NUM)) THEN
3671 IF x_where_clause IS NULL THEN
3672 x_where_clause := ' a.inv_locator_id = :inv_locator_id ';
3673 ELSE
3674 x_where_clause := x_where_clause||' AND '||' a.inv_locator_id = :inv_locator_id ';
3675 END IF;
3676 ELSIF ( p_instance_query_rec.inv_locator_id IS NULL) THEN
3677 IF x_where_clause IS NULL THEN
3678 x_where_clause := ' a.inv_locator_id IS NULL ';
3679 ELSE
3680 x_where_clause := x_where_clause||' AND '||' a.inv_locator_id IS NULL ';
3681 END IF;
3682 END IF;
3683
3684 IF (( p_instance_query_rec.pa_project_id IS NOT NULL) AND
3685 ( p_instance_query_rec.pa_project_id <> FND_API.G_MISS_NUM)) THEN
3686 IF x_where_clause IS NULL THEN
3687 x_where_clause := ' a.pa_project_id = :pa_project_id ';
3688 ELSE
3689 x_where_clause := x_where_clause||' AND '||' a.pa_project_id = :pa_project_id ';
3690 END IF;
3691 ELSIF ( p_instance_query_rec.pa_project_id IS NULL) THEN
3692 IF x_where_clause IS NULL THEN
3693 x_where_clause := ' a.pa_project_id IS NULL ';
3694 ELSE
3695 x_where_clause := x_where_clause||' AND '||' a.pa_project_id IS NULL ';
3696 END IF;
3697 END IF;
3698
3699 IF (( p_instance_query_rec.pa_project_task_id IS NOT NULL) AND
3700 ( p_instance_query_rec.pa_project_task_id <> FND_API.G_MISS_NUM)) THEN
3701 IF x_where_clause IS NULL THEN
3702 x_where_clause := ' a.pa_project_task_id = :pa_project_task_id ';
3703 ELSE
3704 x_where_clause := x_where_clause||' AND '||' a.pa_project_task_id = :pa_project_task_id ';
3705 END IF;
3706 ELSIF ( p_instance_query_rec.pa_project_task_id IS NULL) THEN
3707 IF x_where_clause IS NULL THEN
3708 x_where_clause := ' a.pa_project_task_id IS NULL ';
3709 ELSE
3710 x_where_clause := x_where_clause||' AND '||' a.pa_project_task_id IS NULL ';
3711 END IF;
3712 END IF;
3713
3714 IF (( p_instance_query_rec.in_transit_order_line_id IS NOT NULL) AND
3715 ( p_instance_query_rec.in_transit_order_line_id <> FND_API.G_MISS_NUM)) THEN
3716 IF x_where_clause IS NULL THEN
3717 x_where_clause := ' a.in_transit_order_line_id = :in_transit_order_line_id ';
3718 ELSE
3719 x_where_clause := x_where_clause||' AND '||' a.in_transit_order_line_id = :in_transit_order_line_id ';
3720 END IF;
3721 ELSIF ( p_instance_query_rec.in_transit_order_line_id IS NULL) THEN
3722 IF x_where_clause IS NULL THEN
3723 x_where_clause := ' a.in_transit_order_line_id IS NULL ';
3724 ELSE
3725 x_where_clause := x_where_clause||' AND '||' a.in_transit_order_line_id IS NULL ';
3726 END IF;
3727 END IF;
3728
3729 IF (( p_instance_query_rec.wip_job_id IS NOT NULL) AND
3730 ( p_instance_query_rec.wip_job_id <> FND_API.G_MISS_NUM)) THEN
3731 IF x_where_clause IS NULL THEN
3732 x_where_clause := ' a.wip_job_id = :wip_job_id ';
3733 ELSE
3734 x_where_clause := x_where_clause||' AND '||' a.wip_job_id = :wip_job_id ';
3735 END IF;
3736 ELSIF ( p_instance_query_rec.wip_job_id IS NULL) THEN
3737 IF x_where_clause IS NULL THEN
3738 x_where_clause := ' a.wip_job_id IS NULL ';
3739 ELSE
3740 x_where_clause := x_where_clause||' AND '||' a.wip_job_id IS NULL ';
3741 END IF;
3742 END IF;
3743 IF (( p_instance_query_rec.po_order_line_id IS NOT NULL) AND
3744 ( p_instance_query_rec.po_order_line_id <> FND_API.G_MISS_NUM)) THEN
3745 IF x_where_clause IS NULL THEN
3746 x_where_clause := ' a.po_order_line_id = :po_order_line_id ';
3747 ELSE
3748 x_where_clause := x_where_clause||' AND '||' a.po_order_line_id = :po_order_line_id ';
3749 END IF;
3750 ELSIF ( p_instance_query_rec.po_order_line_id IS NULL) THEN
3751 IF x_where_clause IS NULL THEN
3752 x_where_clause := ' a.po_order_line_id IS NULL ';
3753 ELSE
3754 x_where_clause := x_where_clause||' AND '||' a.po_order_line_id IS NULL ';
3755 END IF;
3756 END IF;
3757
3758 IF (( p_instance_query_rec.last_oe_order_line_id IS NOT NULL) AND
3759 ( p_instance_query_rec.last_oe_order_line_id <> FND_API.G_MISS_NUM)) THEN
3760 IF x_where_clause IS NULL THEN
3761 x_where_clause := ' a.last_oe_order_line_id = :last_oe_order_line_id ';
3762 ELSE
3763 x_where_clause := x_where_clause||' AND '||' a.last_oe_order_line_id = :last_oe_order_line_id ';
3764 END IF;
3765 ELSIF ( p_instance_query_rec.last_oe_order_line_id IS NULL) THEN
3766 IF x_where_clause IS NULL THEN
3767 x_where_clause := ' a.last_oe_order_line_id IS NULL ';
3768 ELSE
3769 x_where_clause := x_where_clause||' AND '||' a.last_oe_order_line_id IS NULL ';
3770 END IF;
3771 END IF;
3772
3773 IF (( p_instance_query_rec.last_oe_rma_line_id IS NOT NULL) AND
3774 ( p_instance_query_rec.last_oe_rma_line_id <> FND_API.G_MISS_NUM)) THEN
3775 IF x_where_clause IS NULL THEN
3776 x_where_clause := ' a.last_oe_rma_line_id = :last_oe_rma_line_id ';
3777 ELSE
3778 x_where_clause := x_where_clause||' AND '||' a.last_oe_rma_line_id = :last_oe_rma_line_id ';
3779 END IF;
3780 ELSIF ( p_instance_query_rec.last_oe_rma_line_id IS NULL) THEN
3781 IF x_where_clause IS NULL THEN
3782 x_where_clause := ' a.last_oe_rma_line_id IS NULL ';
3783 ELSE
3784 x_where_clause := x_where_clause||' AND '||' a.last_oe_rma_line_id IS NULL ';
3785 END IF;
3786 END IF;
3787
3788 IF (( p_instance_query_rec.last_po_po_line_id IS NOT NULL) AND
3789 ( p_instance_query_rec.last_po_po_line_id <> FND_API.G_MISS_NUM)) THEN
3790 IF x_where_clause IS NULL THEN
3791 x_where_clause := ' a.last_po_po_line_id = :last_po_po_line_id ';
3792 ELSE
3793 x_where_clause := x_where_clause||' AND '||' a.last_po_po_line_id = :last_po_po_line_id ';
3794 END IF;
3795 ELSIF ( p_instance_query_rec.last_po_po_line_id IS NULL) THEN
3796 IF x_where_clause IS NULL THEN
3797 x_where_clause := ' a.last_po_po_line_id IS NULL ';
3798 ELSE
3799 x_where_clause := x_where_clause||' AND '||' a.last_po_po_line_id IS NULL ';
3800 END IF;
3801 END IF;
3802
3803 IF (( p_instance_query_rec.last_oe_po_number IS NOT NULL) AND
3804 ( p_instance_query_rec.last_oe_po_number <> FND_API.G_MISS_CHAR)) THEN
3805 IF x_where_clause IS NULL THEN
3806 x_where_clause := ' a.last_oe_po_number = :last_oe_po_number ';
3807 ELSE
3808 x_where_clause := x_where_clause||' AND '||' a.last_oe_po_number = :last_oe_po_number ';
3809 END IF;
3810 ELSIF ( p_instance_query_rec.last_oe_po_number IS NULL) THEN
3811 IF x_where_clause IS NULL THEN
3812 x_where_clause := ' a.last_oe_po_number IS NULL ';
3813 ELSE
3814 x_where_clause := x_where_clause||' AND '||' a.last_oe_po_number IS NULL ';
3815 END IF;
3816 END IF;
3817
3818 IF (( p_instance_query_rec.last_wip_job_id IS NOT NULL) AND
3819 ( p_instance_query_rec.last_wip_job_id <> FND_API.G_MISS_NUM)) THEN
3820 IF x_where_clause IS NULL THEN
3821 x_where_clause := ' a.last_wip_job_id = :last_wip_job_id ';
3822 ELSE
3823 x_where_clause := x_where_clause||' AND '||' a.last_wip_job_id = :last_wip_job_id ';
3824 END IF;
3825 ELSIF ( p_instance_query_rec.last_wip_job_id IS NULL) THEN
3826 IF x_where_clause IS NULL THEN
3827 x_where_clause := ' a.last_wip_job_id IS NULL ';
3828 ELSE
3829 x_where_clause := x_where_clause||' AND '||' a.last_wip_job_id IS NULL ';
3830 END IF;
3831 END IF;
3832
3833 IF (( p_instance_query_rec.last_pa_project_id IS NOT NULL) AND
3834 ( p_instance_query_rec.last_pa_project_id <> FND_API.G_MISS_NUM)) THEN
3835 IF x_where_clause IS NULL THEN
3836 x_where_clause := ' a.last_pa_project_id = :last_pa_project_id ';
3837 ELSE
3838 x_where_clause := x_where_clause||' AND '||' a.last_pa_project_id = :last_pa_project_id ';
3839 END IF;
3840 ELSIF ( p_instance_query_rec.last_pa_project_id IS NULL) THEN
3841 IF x_where_clause IS NULL THEN
3842 x_where_clause := ' a.last_pa_project_id IS NULL ';
3843 ELSE
3844 x_where_clause := x_where_clause||' AND '||' a.last_pa_project_id IS NULL ';
3845 END IF;
3846 END IF;
3847
3848 IF (( p_instance_query_rec.last_pa_task_id IS NOT NULL) AND
3849 ( p_instance_query_rec.last_pa_task_id <> FND_API.G_MISS_NUM)) THEN
3850 IF x_where_clause IS NULL THEN
3851 x_where_clause := ' a.last_pa_task_id = :last_pa_task_id ';
3852 ELSE
3853 x_where_clause := x_where_clause||' AND '||' a.last_pa_task_id = :last_pa_task_id ';
3854 END IF;
3855 ELSIF ( p_instance_query_rec.last_pa_task_id IS NULL) THEN
3856 IF x_where_clause IS NULL THEN
3857 x_where_clause := ' a.last_pa_task_id IS NULL ';
3858 ELSE
3859 x_where_clause := x_where_clause||' AND '||' a.last_pa_task_id IS NULL ';
3860 END IF;
3861 END IF;
3862
3863 IF (( p_instance_query_rec.last_oe_agreement_id IS NOT NULL) AND
3864 ( p_instance_query_rec.last_oe_agreement_id <> FND_API.G_MISS_NUM)) THEN
3865 IF x_where_clause IS NULL THEN
3866 x_where_clause := ' a.last_oe_agreement_id = :last_oe_agreement_id ';
3867 ELSE
3868 x_where_clause := x_where_clause||' AND '||' a.last_oe_agreement_id = :last_oe_agreement_id ';
3869 END IF;
3870 ELSIF ( p_instance_query_rec.last_oe_agreement_id IS NULL) THEN
3871 IF x_where_clause IS NULL THEN
3872 x_where_clause := ' a.last_oe_agreement_id IS NULL ';
3873 ELSE
3874 x_where_clause := x_where_clause||' AND '||' a.last_oe_agreement_id IS NULL ';
3875 END IF;
3876 END IF;
3877
3878 IF (( p_instance_query_rec.install_date IS NOT NULL) AND
3879 ( p_instance_query_rec.install_date <> FND_API.G_MISS_DATE)) THEN
3880 IF x_where_clause IS NULL THEN
3881 x_where_clause := ' a.install_date = :install_date ';
3882 ELSE
3883 x_where_clause := x_where_clause||' AND '||' a.install_date = :install_date ';
3884 END IF;
3885 ELSIF ( p_instance_query_rec.install_date IS NULL) THEN
3886 IF x_where_clause IS NULL THEN
3887 x_where_clause := ' a.install_date IS NULL ';
3888 ELSE
3889 x_where_clause := x_where_clause||' AND '||' a.install_date IS NULL ';
3890 END IF;
3891 END IF;
3892
3893 IF (( p_instance_query_rec.manually_created_flag IS NOT NULL) AND
3894 ( p_instance_query_rec.manually_created_flag <> FND_API.G_MISS_CHAR)) THEN
3895 IF x_where_clause IS NULL THEN
3896 x_where_clause := ' a.manually_created_flag = :manually_created_flag ';
3897 ELSE
3898 x_where_clause := x_where_clause||' AND '||' a.manually_created_flag = :manually_created_flag ';
3899 END IF;
3900 ELSIF ( p_instance_query_rec.manually_created_flag IS NULL) THEN
3901 IF x_where_clause IS NULL THEN
3902 x_where_clause := ' a.manually_created_flag IS NULL ';
3903 ELSE
3904 x_where_clause := x_where_clause||' AND '||' a.manually_created_flag IS NULL ';
3905 END IF;
3906 END IF;
3907
3908 IF (( p_instance_query_rec.return_by_date IS NOT NULL) AND
3909 ( p_instance_query_rec.return_by_date <> FND_API.G_MISS_DATE)) THEN
3910 IF x_where_clause IS NULL THEN
3911 x_where_clause := ' a.return_by_date = :return_by_date ';
3912 ELSE
3913 x_where_clause := x_where_clause||' AND '||' a.return_by_date = :return_by_date ';
3914 END IF;
3915 ELSIF ( p_instance_query_rec.return_by_date IS NULL) THEN
3916 IF x_where_clause IS NULL THEN
3917 x_where_clause := ' a.return_by_date IS NULL ';
3918 ELSE
3919 x_where_clause := x_where_clause||' AND '||' a.return_by_date IS NULL ';
3920 END IF;
3921 END IF;
3922
3923 IF (( p_instance_query_rec.instance_usage_code IS NOT NULL) AND
3924 ( p_instance_query_rec.instance_usage_code <> FND_API.G_MISS_CHAR)) THEN
3925 IF x_where_clause IS NULL THEN
3926 x_where_clause := ' a.instance_usage_code = :instance_usage_code ';
3927 ELSE
3928 x_where_clause := x_where_clause||' AND '||' a.instance_usage_code = :instance_usage_code ';
3929 END IF;
3930 ELSIF ( p_instance_query_rec.instance_usage_code IS NULL) THEN
3931 IF x_where_clause IS NULL THEN
3932 x_where_clause := ' a.instance_usage_code IS NULL ';
3933 ELSE
3934 x_where_clause := x_where_clause||' AND '||' a.instance_usage_code IS NULL ';
3935 END IF;
3936 END IF;
3937
3938 -- Following code has been added by sguthiva for att enhancements
3939
3940 IF (( p_instance_query_rec.config_inst_hdr_id IS NOT NULL) AND
3941 ( p_instance_query_rec.config_inst_hdr_id <> FND_API.G_MISS_NUM)) THEN
3942 IF x_where_clause IS NULL THEN
3943 x_where_clause := ' a.config_inst_hdr_id = :config_inst_hdr_id ';
3944 ELSE
3945 x_where_clause := x_where_clause||' AND '||' a.config_inst_hdr_id = :config_inst_hdr_id ';
3946 END IF;
3947 ELSIF ( p_instance_query_rec.config_inst_hdr_id IS NULL) THEN
3948 IF x_where_clause IS NULL THEN
3949 x_where_clause := ' a.config_inst_hdr_id IS NULL ';
3950 ELSE
3951 x_where_clause := x_where_clause||' AND '||' a.config_inst_hdr_id IS NULL ';
3952 END IF;
3953 END IF;
3954
3955 IF (( p_instance_query_rec.config_inst_rev_num IS NOT NULL) AND
3956 ( p_instance_query_rec.config_inst_rev_num <> FND_API.G_MISS_NUM)) THEN
3957 IF x_where_clause IS NULL THEN
3958 x_where_clause := ' a.config_inst_rev_num = :config_inst_rev_num ';
3959 ELSE
3960 x_where_clause := x_where_clause||' AND '||' a.config_inst_rev_num = :config_inst_rev_num ';
3961 END IF;
3962 ELSIF ( p_instance_query_rec.config_inst_rev_num IS NULL) THEN
3963 IF x_where_clause IS NULL THEN
3964 x_where_clause := ' a.config_inst_rev_num IS NULL ';
3965 ELSE
3966 x_where_clause := x_where_clause||' AND '||' a.config_inst_rev_num IS NULL ';
3967 END IF;
3968 END IF;
3969
3970 IF (( p_instance_query_rec.config_inst_item_id IS NOT NULL) AND
3971 ( p_instance_query_rec.config_inst_item_id <> FND_API.G_MISS_NUM)) THEN
3972 IF x_where_clause IS NULL THEN
3973 x_where_clause := ' a.config_inst_item_id = :config_inst_item_id ';
3974 ELSE
3975 x_where_clause := x_where_clause||' AND '||' a.config_inst_item_id = :config_inst_item_id ';
3976 END IF;
3977 ELSIF ( p_instance_query_rec.config_inst_item_id IS NULL) THEN
3978 IF x_where_clause IS NULL THEN
3979 x_where_clause := ' a.config_inst_item_id IS NULL ';
3980 ELSE
3981 x_where_clause := x_where_clause||' AND '||' a.config_inst_item_id IS NULL ';
3982 END IF;
3983 END IF;
3984
3985 IF (( p_instance_query_rec.instance_description IS NOT NULL) AND
3986 ( p_instance_query_rec.instance_description <> FND_API.G_MISS_CHAR)) THEN
3987 IF x_where_clause IS NULL THEN
3988 x_where_clause := ' a.instance_description = :instance_description ';
3989 ELSE
3990 x_where_clause := x_where_clause||' AND '||' a.instance_description = :instance_description ';
3991 END IF;
3992 ELSIF ( p_instance_query_rec.instance_description IS NULL) THEN
3993 IF x_where_clause IS NULL THEN
3994 x_where_clause := ' a.instance_description IS NULL ';
3995 ELSE
3996 x_where_clause := x_where_clause||' AND '||' a.instance_description IS NULL ';
3997 END IF;
3998 END IF;
3999
4000 -- End of addition for att
4001 -- Addition of columns for FA Integration
4002 IF (( p_instance_query_rec.operational_status_code IS NOT NULL) AND
4003 ( p_instance_query_rec.operational_status_code <> FND_API.G_MISS_CHAR)) THEN
4004 IF x_where_clause IS NULL THEN
4005 x_where_clause := ' a.operational_status_code = :operational_status_code ';
4006 ELSE
4007 x_where_clause := x_where_clause||' AND '||' a.operational_status_code = :operational_status_code ';
4008 END IF;
4009 ELSIF ( p_instance_query_rec.operational_status_code IS NULL) THEN
4010 IF x_where_clause IS NULL THEN
4011 x_where_clause := ' a.operational_status_code IS NULL ';
4012 ELSE
4013 x_where_clause := x_where_clause||' AND '||' a.operational_status_code IS NULL ';
4014 END IF;
4015 END IF;
4016 -- End addition of columns for FA Integration
4017
4018 IF (( p_instance_query_rec.actual_return_date IS NOT NULL) AND
4019 ( p_instance_query_rec.actual_return_date <> FND_API.G_MISS_DATE)) THEN
4020 IF x_where_clause IS NULL THEN
4021 x_where_clause := ' a.actual_return_date = :actual_return_date ';
4022 ELSE
4023 x_where_clause := x_where_clause||' AND '||' a.actual_return_date = :actual_return_date ';
4024 END IF;
4025 ELSIF ( p_instance_query_rec.actual_return_date IS NULL) THEN
4026 IF x_where_clause IS NULL THEN
4027 x_where_clause := ' a.actual_return_date IS NULL ';
4028 ELSE
4029 x_where_clause := x_where_clause||' AND '||' a.actual_return_date IS NULL ';
4030 END IF;
4031 END IF;
4032
4033 --sk added
4034 IF (( p_instance_query_rec.contract_number IS NOT NULL) AND
4035 ( p_instance_query_rec.contract_number <> FND_API.G_MISS_CHAR)) THEN
4036 BEGIN
4037 l_flag := nvl(FND_PROFILE.VALUE('CSI_CONTRACTS_ENABLED'), 'N');
4038 l_inp_rec.contract_number := p_instance_query_rec.contract_number;
4039 l_inp_rec.party_id := NULL;
4040 l_inp_rec.site_id := NULL;
4041 l_inp_rec.cust_acct_id := NULL;
4042 l_inp_rec.system_id := NULL;
4043 l_inp_rec.item_id := NULL;
4044 l_inp_rec.product_id := NULL;
4045 l_inp_rec.request_date := sysdate;
4046 l_inp_rec.validate_flag := l_flag;
4047 OKS_ENTITLEMENTS_PUB.GET_CONTRACTS( p_api_version => 1.0,
4048 p_init_msg_list => 'T',
4049 p_inp_rec => l_inp_rec,
4050 x_return_status => x_return_status,
4051 x_msg_count => x_msg_count,
4052 x_msg_data => x_msg_data,
4053 x_ent_contracts => l_ent_contracts);
4054
4055 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
4056 l_msg_index := 1;
4057 l_msg_count := x_msg_count;
4058 WHILE l_msg_count > 0 LOOP
4059 x_msg_data := FND_MSG_PUB.GET
4060 ( l_msg_index,
4061 FND_API.G_FALSE );
4062 csi_gen_utility_pvt.put_line( ' Error from OKS_ENTITLEMENTS_PUB.GET_CONTRACTS.. ');
4063 csi_gen_utility_pvt.put_line('MESSAGE DATA = '||x_msg_data);
4064 l_msg_index := l_msg_index + 1;
4065 l_msg_count := l_msg_count - 1;
4066 END LOOP;
4067 RAISE FND_API.G_EXC_ERROR;
4068 END IF;
4069 l_row_count := 1;
4070 l_rec_count := l_ent_contracts.FIRST;
4071 WHILE l_rec_count IS NOT NULL
4072 LOOP
4073 BEGIN
4074 l_covered_level_code := l_ent_contracts(l_rec_count).coverage_level_code ;
4075 l_coverage_level_id := l_ent_contracts(l_rec_count).coverage_level_id ;
4076 IF (l_covered_level_code = 'COVER_PROD') THEN
4077 IF l_covered_cp_id IS NULL THEN
4078
4079 l_covered_cp_id := to_char(l_coverage_level_id) ;
4080 ELSE
4081
4082 l_covered_cp_id := l_covered_cp_id ||','||to_char(l_coverage_level_id) ;
4083 END IF;
4084 END IF;
4085 l_rec_count := l_ent_contracts.NEXT(l_rec_count);
4086 EXCEPTION
4087 WHEN OTHERS THEN
4088 NULL;
4089 END;
4090 END LOOP;
4091 IF (l_covered_cp_id IS NOT NULL) THEN
4092 IF x_where_clause IS NULL THEN
4093 x_where_clause := ' a.instance_id IN ( ' ||l_covered_cp_id ||' )' ;
4094 ELSE
4095 x_where_clause := x_where_clause||' AND '||' a.instance_id IN ( ' ||l_covered_cp_id ||' )' ;
4096 END IF;
4097 ELSE
4098
4099 IF x_where_clause IS NULL THEN
4100 x_where_clause := ' a.instance_id IS NULL' ;
4101 ELSE
4102 x_where_clause := x_where_clause||' AND '||' a.instance_id IS NULL' ;
4103 END IF;
4104 END IF;
4105
4106 EXCEPTION
4107 WHEN OTHERS THEN
4108 NULL;
4109 END;
4110 END IF;
4111 --end sk addition
4112
4113 IF (( p_party_query_rec.instance_party_id IS NOT NULL) AND
4114 ( p_party_query_rec.instance_party_id <> FND_API.G_MISS_NUM)) THEN
4115 IF x_where_clause IS NULL THEN
4116 x_where_clause := ' b.instance_party_id = :instance_party_id ';
4117 ELSE
4118 x_where_clause := x_where_clause||' AND '||' b.instance_party_id = :instance_party_id ';
4119 END IF;
4120
4121 ELSIF ( p_party_query_rec.instance_party_id IS NULL) THEN
4122 IF x_where_clause IS NULL THEN
4123 x_where_clause := ' b.instance_party_id IS NULL ';
4124 ELSE
4125 x_where_clause := x_where_clause||' AND '||' b.instance_party_id IS NULL ';
4126 END IF;
4127 END IF;
4128
4129 IF ((p_party_query_rec.instance_id IS NOT NULL) AND
4130 (p_party_query_rec.instance_id <> FND_API.G_MISS_NUM)) THEN
4131 IF x_where_clause IS NULL THEN
4132 x_where_clause := ' b.instance_id = :instance_id ';
4133 ELSE
4134 x_where_clause := x_where_clause||' AND '||' b.instance_id = :instance_id ';
4135 END IF;
4136 ELSIF (p_party_query_rec.instance_id IS NULL) THEN
4137 IF x_where_clause IS NULL THEN
4138 x_where_clause := ' b.instance_id IS NULL ';
4139 ELSE
4140 x_where_clause := x_where_clause||' AND '||' b.instance_id IS NULL ';
4141 END IF;
4142 END IF;
4143
4144 IF ((p_party_query_rec.party_id IS NOT NULL) AND
4145 (p_party_query_rec.party_id <> FND_API.G_MISS_NUM)) THEN
4146 IF x_where_clause IS NULL THEN
4147 x_where_clause := ' b.party_id = :party_id ';
4148 ELSE
4149 x_where_clause := x_where_clause||' AND '||' b.party_id = :party_id ';
4150 END IF;
4151
4152 ELSIF (p_party_query_rec.party_id IS NULL) THEN
4153 IF x_where_clause IS NULL THEN
4154 x_where_clause := ' b.party_id IS NULL ';
4155 ELSE
4156 x_where_clause := x_where_clause||' AND '||' b.party_id IS NULL ';
4157 END IF;
4158 END IF ;
4159
4160 IF ((p_party_query_rec.relationship_type_code IS NOT NULL) AND
4161 (p_party_query_rec.relationship_type_code <> FND_API.G_MISS_CHAR)) THEN
4162 IF x_where_clause IS NULL THEN
4163 x_where_clause := ' b.relationship_type_code = :relationship_type_code ';
4164 ELSE
4165 x_where_clause := x_where_clause||' AND '||' b.relationship_type_code = :relationship_type_code ';
4166 END IF;
4167 ELSIF (p_party_query_rec.relationship_type_code IS NULL) THEN
4168 IF x_where_clause IS NULL THEN
4169 x_where_clause := ' b.relationship_type_code IS NULL ';
4170 ELSE
4171 x_where_clause := x_where_clause||' AND '||' b.relationship_type_code IS NULL ';
4172 END IF;
4173 END IF;
4174 -----
4175
4176 IF (( p_pty_acct_query_rec.ip_account_id IS NOT NULL) AND
4177 ( p_pty_acct_query_rec.ip_account_id <> FND_API.G_MISS_NUM)) THEN
4178 IF x_where_clause IS NULL THEN
4179 x_where_clause := x_where_clause||' c.ip_account_id = :ip_account_id ';
4180 ELSE
4181 x_where_clause := x_where_clause||' AND '||' c.ip_account_id = :ip_account_id ';
4182 END IF;
4183 ELSIF ( p_pty_acct_query_rec.ip_account_id IS NULL) THEN
4184 IF x_where_clause IS NULL THEN
4185 x_where_clause := x_where_clause||' c.ip_account_id IS NULL ';
4186 ELSE
4187 x_where_clause := x_where_clause||' AND '||' c.ip_account_id IS NULL ';
4188 END IF;
4189 END IF;
4190
4191 IF ((p_pty_acct_query_rec.instance_party_id IS NOT NULL) AND
4192 (p_pty_acct_query_rec.instance_party_id <> FND_API.G_MISS_NUM)) THEN
4193 IF x_where_clause IS NULL THEN
4194 x_where_clause := x_where_clause||' c.instance_party_id = :instance_party_id ';
4195 ELSE
4196 x_where_clause := x_where_clause||' AND '||' c.instance_party_id = :instance_party_id ';
4197 END IF;
4198 ELSIF (p_pty_acct_query_rec.instance_party_id IS NULL) THEN
4199 IF x_where_clause IS NULL THEN
4200 x_where_clause := x_where_clause||' c.instance_party_id IS NULL ';
4201 ELSE
4202 x_where_clause := x_where_clause||' AND '||' c.instance_party_id IS NULL ';
4203 END IF;
4204 END IF;
4205
4206 IF ((p_pty_acct_query_rec.party_account_id IS NOT NULL) AND
4207 (p_pty_acct_query_rec.party_account_id <> FND_API.G_MISS_NUM)) THEN
4208 IF x_where_clause IS NULL THEN
4209 x_where_clause := x_where_clause||' c.party_account_id = :party_account_id ';
4210 ELSE
4211 x_where_clause := x_where_clause||' AND '||' c.party_account_id = :party_account_id ';
4212 END IF;
4213 ELSIF (p_pty_acct_query_rec.party_account_id IS NULL) THEN
4214 IF x_where_clause IS NULL THEN
4215 x_where_clause := x_where_clause||' c.party_account_id IS NULL ';
4216 ELSE
4217 x_where_clause := x_where_clause||' AND '||' c.party_account_id IS NULL ';
4218 END IF;
4219 END IF ;
4220
4221 IF ((p_pty_acct_query_rec.relationship_type_code IS NOT NULL) AND
4222 (p_pty_acct_query_rec.relationship_type_code <> FND_API.G_MISS_CHAR)) THEN
4223 IF x_where_clause IS NULL THEN
4224 x_where_clause := x_where_clause||' c.relationship_type_code = :relationship_type_code ';
4225 ELSE
4226 x_where_clause := x_where_clause||' AND '||' c.relationship_type_code = :relationship_type_code ';
4227 END IF;
4228 ELSIF (p_pty_acct_query_rec.relationship_type_code IS NULL) THEN
4229 IF x_where_clause IS NULL THEN
4230 x_where_clause := x_where_clause||' c.relationship_type_code IS NULL ';
4231 ELSE
4232 x_where_clause := x_where_clause||' AND '||' c.relationship_type_code IS NULL ';
4233 END IF;
4234 END IF;
4235
4236 IF p_active_instance_only = 'T' THEN
4237 x_where_clause := x_where_clause||' AND '||'( a.active_end_date IS NULL '||' OR '||' a.active_end_date > SYSDATE)';
4238 END IF;
4239
4240 IF l_join_condition IS null THEN
4241 x_select_stmt := ' SELECT '||l_select_columns ||' from '||l_from_clause ||' where '||l_join_condition||x_where_clause;
4242 ELSE
4243 x_select_stmt := ' SELECT '||l_select_columns ||' from '||l_from_clause ||' where '||l_join_condition||' AND '||x_where_clause;
4244 END IF;
4245
4246 IF ((l_instance_rec_exists OR
4247 l_party_rec_exists OR
4248 l_party_acct_rec_exists) AND
4249 (p_transaction_id is not null)) then
4250 x_select_stmt := x_select_stmt || ' INTERSECT '||l_union_stmt;
4251
4252 ELSIF NOT(l_instance_rec_exists) AND
4253 NOT(l_party_rec_exists) AND
4254 NOT(l_party_acct_rec_exists) AND
4255 (p_transaction_id is not null) then
4256 x_select_stmt := l_union_stmt;
4257 END IF;
4258 END Gen_Inst_Where_Clause;
4259
4260 /*----------------------------------------------------------*/
4261 /* Procedure name: Get_Inst_Column_Values */
4262 /* Description : This procedure gets the column values */
4263 /* for the Dynamic SQL */
4264 /*----------------------------------------------------------*/
4265
4266 PROCEDURE Get_Instance_Col_Values
4267 (
4268 p_get_instance_cur_id IN NUMBER,
4269 x_instance_rec IN OUT NOCOPY csi_datastructures_pub.instance_header_rec
4270 ) IS
4271
4272 BEGIN
4273 dbms_sql.column_value(p_get_instance_cur_id, 1, x_instance_rec.instance_id);
4274 dbms_sql.column_value(p_get_instance_cur_id, 2, x_instance_rec.instance_number);
4275 dbms_sql.column_value(p_get_instance_cur_id, 3, x_instance_rec.external_reference);
4276 dbms_sql.column_value(p_get_instance_cur_id, 4, x_instance_rec.inventory_item_id);
4277 dbms_sql.column_value(p_get_instance_cur_id, 5, x_instance_rec.inventory_revision);
4278 dbms_sql.column_value(p_get_instance_cur_id, 6, x_instance_rec.inv_master_organization_id);
4279 dbms_sql.column_value(p_get_instance_cur_id, 7, x_instance_rec.serial_number);
4280 dbms_sql.column_value(p_get_instance_cur_id, 8, x_instance_rec.mfg_serial_number_flag);
4281 dbms_sql.column_value(p_get_instance_cur_id, 9, x_instance_rec.lot_number);
4282 dbms_sql.column_value(p_get_instance_cur_id, 10, x_instance_rec.quantity);
4283 dbms_sql.column_value(p_get_instance_cur_id, 11, x_instance_rec.unit_of_measure);
4284 dbms_sql.column_value(p_get_instance_cur_id, 12, x_instance_rec.accounting_class_code);
4285 dbms_sql.column_value(p_get_instance_cur_id, 13, x_instance_rec.instance_condition_id);
4286 dbms_sql.column_value(p_get_instance_cur_id, 14, x_instance_rec.instance_status_id);
4287 dbms_sql.column_value(p_get_instance_cur_id, 15, x_instance_rec.customer_view_flag);
4288 dbms_sql.column_value(p_get_instance_cur_id, 16, x_instance_rec.merchant_view_flag);
4289 dbms_sql.column_value(p_get_instance_cur_id, 17, x_instance_rec.sellable_flag);
4290 dbms_sql.column_value(p_get_instance_cur_id, 18, x_instance_rec.system_id);
4291 dbms_sql.column_value(p_get_instance_cur_id, 19, x_instance_rec.instance_type_code);
4292 dbms_sql.column_value(p_get_instance_cur_id, 20, x_instance_rec.active_start_date);
4293 dbms_sql.column_value(p_get_instance_cur_id, 21, x_instance_rec.active_end_date);
4294 dbms_sql.column_value(p_get_instance_cur_id, 22, x_instance_rec.location_type_code);
4295 dbms_sql.column_value(p_get_instance_cur_id, 23, x_instance_rec.location_id);
4296 dbms_sql.column_value(p_get_instance_cur_id, 24, x_instance_rec.inv_organization_id);
4297 dbms_sql.column_value(p_get_instance_cur_id, 25, x_instance_rec.inv_subinventory_name);
4298 dbms_sql.column_value(p_get_instance_cur_id, 26, x_instance_rec.inv_locator_id);
4299 dbms_sql.column_value(p_get_instance_cur_id, 27, x_instance_rec.pa_project_id);
4300 dbms_sql.column_value(p_get_instance_cur_id, 28, x_instance_rec.pa_project_task_id);
4301 dbms_sql.column_value(p_get_instance_cur_id, 29, x_instance_rec.in_transit_order_line_id);
4302 dbms_sql.column_value(p_get_instance_cur_id, 30, x_instance_rec.wip_job_id);
4303 dbms_sql.column_value(p_get_instance_cur_id, 31, x_instance_rec.po_order_line_id);
4304 dbms_sql.column_value(p_get_instance_cur_id, 32, x_instance_rec.last_oe_order_line_id);
4305 dbms_sql.column_value(p_get_instance_cur_id, 33, x_instance_rec.last_oe_rma_line_id);
4306 dbms_sql.column_value(p_get_instance_cur_id, 34, x_instance_rec.last_po_po_line_id);
4307 dbms_sql.column_value(p_get_instance_cur_id, 35, x_instance_rec.last_oe_po_number);
4308 dbms_sql.column_value(p_get_instance_cur_id, 36, x_instance_rec.last_wip_job_id);
4309 dbms_sql.column_value(p_get_instance_cur_id, 37, x_instance_rec.last_pa_project_id);
4310 dbms_sql.column_value(p_get_instance_cur_id, 38, x_instance_rec.last_pa_task_id);
4311 dbms_sql.column_value(p_get_instance_cur_id, 39, x_instance_rec.last_oe_agreement_id);
4312 dbms_sql.column_value(p_get_instance_cur_id, 40, x_instance_rec.install_date);
4313 dbms_sql.column_value(p_get_instance_cur_id, 41, x_instance_rec.manually_created_flag);
4314 dbms_sql.column_value(p_get_instance_cur_id, 42, x_instance_rec.return_by_date);
4315 dbms_sql.column_value(p_get_instance_cur_id, 43, x_instance_rec.actual_return_date);
4316 dbms_sql.column_value(p_get_instance_cur_id, 44, x_instance_rec.creation_complete_flag);
4317 dbms_sql.column_value(p_get_instance_cur_id, 45, x_instance_rec.completeness_flag);
4318 dbms_sql.column_value(p_get_instance_cur_id, 46, x_instance_rec.context);
4319 dbms_sql.column_value(p_get_instance_cur_id, 47, x_instance_rec.attribute1);
4320 dbms_sql.column_value(p_get_instance_cur_id, 48, x_instance_rec.attribute2);
4321 dbms_sql.column_value(p_get_instance_cur_id, 49, x_instance_rec.attribute3);
4322 dbms_sql.column_value(p_get_instance_cur_id, 50, x_instance_rec.attribute4);
4323 dbms_sql.column_value(p_get_instance_cur_id, 51, x_instance_rec.attribute5);
4324 dbms_sql.column_value(p_get_instance_cur_id, 52, x_instance_rec.attribute6);
4325 dbms_sql.column_value(p_get_instance_cur_id, 53, x_instance_rec.attribute7);
4326 dbms_sql.column_value(p_get_instance_cur_id, 54, x_instance_rec.attribute8);
4327 dbms_sql.column_value(p_get_instance_cur_id, 55, x_instance_rec.attribute9);
4328 dbms_sql.column_value(p_get_instance_cur_id, 56, x_instance_rec.attribute10);
4329 dbms_sql.column_value(p_get_instance_cur_id, 57, x_instance_rec.attribute11);
4330 dbms_sql.column_value(p_get_instance_cur_id, 58, x_instance_rec.attribute12);
4331 dbms_sql.column_value(p_get_instance_cur_id, 59, x_instance_rec.attribute13);
4332 dbms_sql.column_value(p_get_instance_cur_id, 60, x_instance_rec.attribute14);
4333 dbms_sql.column_value(p_get_instance_cur_id, 61, x_instance_rec.attribute15);
4334 dbms_sql.column_value(p_get_instance_cur_id, 62, x_instance_rec.object_version_number);
4335 dbms_sql.column_value(p_get_instance_cur_id, 63, x_instance_rec.last_txn_line_detail_id);
4336 dbms_sql.column_value(p_get_instance_cur_id, 64, x_instance_rec.install_location_type_code);
4337 dbms_sql.column_value(p_get_instance_cur_id, 65, x_instance_rec.install_location_id);
4338 dbms_sql.column_value(p_get_instance_cur_id, 66, x_instance_rec.instance_usage_code);
4339 dbms_sql.column_value(p_get_instance_cur_id, 67, x_instance_rec.vld_organization_id);
4340 dbms_sql.column_value(p_get_instance_cur_id, 68, x_instance_rec.config_inst_hdr_id);
4341 dbms_sql.column_value(p_get_instance_cur_id, 69, x_instance_rec.config_inst_rev_num);
4342 dbms_sql.column_value(p_get_instance_cur_id, 70, x_instance_rec.config_inst_item_id);
4343 dbms_sql.column_value(p_get_instance_cur_id, 71, x_instance_rec.config_valid_status);
4344 dbms_sql.column_value(p_get_instance_cur_id, 72, x_instance_rec.instance_description);
4345 --start of code for eam integration columns--
4346 dbms_sql.column_value(p_get_instance_cur_id, 73, x_instance_rec.network_asset_flag);
4347 dbms_sql.column_value(p_get_instance_cur_id, 74, x_instance_rec.maintainable_flag);
4348 dbms_sql.column_value(p_get_instance_cur_id, 75, x_instance_rec.pn_location_id);
4349 dbms_sql.column_value(p_get_instance_cur_id, 76, x_instance_rec.asset_criticality_code);
4350 dbms_sql.column_value(p_get_instance_cur_id, 77, x_instance_rec.category_id);
4351 dbms_sql.column_value(p_get_instance_cur_id, 78, x_instance_rec.equipment_gen_object_id);
4352 dbms_sql.column_value(p_get_instance_cur_id, 79, x_instance_rec.instantiation_flag);
4353 dbms_sql.column_value(p_get_instance_cur_id, 80, x_instance_rec.linear_location_id);
4354 dbms_sql.column_value(p_get_instance_cur_id, 81, x_instance_rec.operational_log_flag);
4355 dbms_sql.column_value(p_get_instance_cur_id, 82, x_instance_rec.checkin_status);
4356 dbms_sql.column_value(p_get_instance_cur_id, 83, x_instance_rec.supplier_warranty_exp_date);
4357 dbms_sql.column_value(p_get_instance_cur_id, 84, x_instance_rec.attribute16);
4358 dbms_sql.column_value(p_get_instance_cur_id, 85, x_instance_rec.attribute17);
4359 dbms_sql.column_value(p_get_instance_cur_id, 86, x_instance_rec.attribute18);
4360 dbms_sql.column_value(p_get_instance_cur_id, 87, x_instance_rec.attribute19);
4361 dbms_sql.column_value(p_get_instance_cur_id, 88, x_instance_rec.attribute20);
4362 dbms_sql.column_value(p_get_instance_cur_id, 89, x_instance_rec.attribute21);
4363 dbms_sql.column_value(p_get_instance_cur_id, 90, x_instance_rec.attribute22);
4364 dbms_sql.column_value(p_get_instance_cur_id, 91, x_instance_rec.attribute23);
4365 dbms_sql.column_value(p_get_instance_cur_id, 92, x_instance_rec.attribute24);
4366 dbms_sql.column_value(p_get_instance_cur_id, 93, x_instance_rec.attribute25);
4367 dbms_sql.column_value(p_get_instance_cur_id, 94, x_instance_rec.attribute26);
4368 dbms_sql.column_value(p_get_instance_cur_id, 95, x_instance_rec.attribute27);
4369 dbms_sql.column_value(p_get_instance_cur_id, 96, x_instance_rec.attribute28);
4370 dbms_sql.column_value(p_get_instance_cur_id, 97, x_instance_rec.attribute29);
4371 dbms_sql.column_value(p_get_instance_cur_id, 98, x_instance_rec.attribute30);
4372 --end of code for eam integration columns--
4373
4374 -- Addition of columns for FA Integration
4375 dbms_sql.column_value(p_get_instance_cur_id, 99, x_instance_rec.purchase_unit_price);
4376 dbms_sql.column_value(p_get_instance_cur_id, 100, x_instance_rec.purchase_currency_code);
4377 dbms_sql.column_value(p_get_instance_cur_id, 101, x_instance_rec.payables_unit_price);
4378 dbms_sql.column_value(p_get_instance_cur_id, 102, x_instance_rec.payables_currency_code);
4379 dbms_sql.column_value(p_get_instance_cur_id, 103, x_instance_rec.sales_unit_price);
4380 dbms_sql.column_value(p_get_instance_cur_id, 104, x_instance_rec.sales_currency_code);
4381 dbms_sql.column_value(p_get_instance_cur_id, 105, x_instance_rec.operational_status_code);
4382 -- End addition of columns for FA Integration
4383
4384 END Get_Instance_Col_Values;
4385
4386
4387 /*-------------------------------------------------------*/
4388 /* Procedure name: Define_Inst_Columns */
4389 /* Description : This procedure defines the columns */
4390 /* for the Dynamic SQL */
4391 /*-------------------------------------------------------*/
4392
4393 PROCEDURE Define_Instance_Columns
4394 (
4395 p_get_instance_cur_id IN NUMBER
4396 ) IS
4397
4398 l_instance_rec csi_datastructures_pub.instance_header_rec;
4399
4400 BEGIN
4401 dbms_sql.define_column(p_get_instance_cur_id, 1, l_instance_rec.instance_id);
4402 dbms_sql.define_column(p_get_instance_cur_id, 2, l_instance_rec.instance_number,30);
4403 dbms_sql.define_column(p_get_instance_cur_id, 3, l_instance_rec.external_reference,30);
4404 dbms_sql.define_column(p_get_instance_cur_id, 4, l_instance_rec.inventory_item_id);
4405 dbms_sql.define_column(p_get_instance_cur_id, 5, l_instance_rec.inventory_revision,3);
4406 dbms_sql.define_column(p_get_instance_cur_id, 6, l_instance_rec.inv_master_organization_id);
4407 dbms_sql.define_column(p_get_instance_cur_id, 7, l_instance_rec.serial_number,30);
4408 dbms_sql.define_column(p_get_instance_cur_id, 8, l_instance_rec.mfg_serial_number_flag,1);
4409 dbms_sql.define_column(p_get_instance_cur_id, 9, l_instance_rec.lot_number,80);
4410 dbms_sql.define_column(p_get_instance_cur_id, 10, l_instance_rec.quantity);
4411 dbms_sql.define_column(p_get_instance_cur_id, 11, l_instance_rec.unit_of_measure,3);
4412 dbms_sql.define_column(p_get_instance_cur_id, 12, l_instance_rec.accounting_class_code,10);
4413 dbms_sql.define_column(p_get_instance_cur_id, 13, l_instance_rec.instance_condition_id);
4414 dbms_sql.define_column(p_get_instance_cur_id, 14, l_instance_rec.instance_status_id);
4415 dbms_sql.define_column(p_get_instance_cur_id, 15, l_instance_rec.customer_view_flag,1);
4416 dbms_sql.define_column(p_get_instance_cur_id, 16, l_instance_rec.merchant_view_flag,1);
4417 dbms_sql.define_column(p_get_instance_cur_id, 17, l_instance_rec.sellable_flag,1);
4418 dbms_sql.define_column(p_get_instance_cur_id, 18, l_instance_rec.system_id);
4419 dbms_sql.define_column(p_get_instance_cur_id, 19, l_instance_rec.instance_type_code,30);
4420 dbms_sql.define_column(p_get_instance_cur_id, 20, l_instance_rec.active_start_date);
4421 dbms_sql.define_column(p_get_instance_cur_id, 21, l_instance_rec.active_end_date);
4422 dbms_sql.define_column(p_get_instance_cur_id, 22, l_instance_rec.location_type_code,30);
4423 dbms_sql.define_column(p_get_instance_cur_id, 23, l_instance_rec.location_id);
4424 dbms_sql.define_column(p_get_instance_cur_id, 24, l_instance_rec.inv_organization_id);
4425 dbms_sql.define_column(p_get_instance_cur_id, 25, l_instance_rec.inv_subinventory_name,10);
4426 dbms_sql.define_column(p_get_instance_cur_id, 26, l_instance_rec.inv_locator_id);
4427 dbms_sql.define_column(p_get_instance_cur_id, 27, l_instance_rec.pa_project_id);
4428 dbms_sql.define_column(p_get_instance_cur_id, 28, l_instance_rec.pa_project_task_id);
4429 dbms_sql.define_column(p_get_instance_cur_id, 29, l_instance_rec.in_transit_order_line_id);
4430 dbms_sql.define_column(p_get_instance_cur_id, 30, l_instance_rec.wip_job_id);
4431 dbms_sql.define_column(p_get_instance_cur_id, 31, l_instance_rec.po_order_line_id);
4432 dbms_sql.define_column(p_get_instance_cur_id, 32, l_instance_rec.last_oe_order_line_id);
4433 dbms_sql.define_column(p_get_instance_cur_id, 33, l_instance_rec.last_oe_rma_line_id);
4434 dbms_sql.define_column(p_get_instance_cur_id, 34, l_instance_rec.last_po_po_line_id);
4435 dbms_sql.define_column(p_get_instance_cur_id, 35, l_instance_rec.last_oe_po_number,30);
4436 dbms_sql.define_column(p_get_instance_cur_id, 36, l_instance_rec.last_wip_job_id);
4437 dbms_sql.define_column(p_get_instance_cur_id, 37, l_instance_rec.last_pa_project_id);
4438 dbms_sql.define_column(p_get_instance_cur_id, 38, l_instance_rec.last_pa_task_id);
4439 dbms_sql.define_column(p_get_instance_cur_id, 39, l_instance_rec.last_oe_agreement_id);
4440 dbms_sql.define_column(p_get_instance_cur_id, 40, l_instance_rec.install_date);
4441 dbms_sql.define_column(p_get_instance_cur_id, 41, l_instance_rec.manually_created_flag,1);
4442 dbms_sql.define_column(p_get_instance_cur_id, 42, l_instance_rec.return_by_date);
4443 dbms_sql.define_column(p_get_instance_cur_id, 43, l_instance_rec.actual_return_date);
4444 dbms_sql.define_column(p_get_instance_cur_id, 44, l_instance_rec.creation_complete_flag,1);
4445 dbms_sql.define_column(p_get_instance_cur_id, 45, l_instance_rec.completeness_flag,1);
4446 dbms_sql.define_column(p_get_instance_cur_id, 46, l_instance_rec.context,30);
4447 dbms_sql.define_column(p_get_instance_cur_id, 47, l_instance_rec.attribute1,150);
4448 dbms_sql.define_column(p_get_instance_cur_id, 48, l_instance_rec.attribute2,150);
4449 dbms_sql.define_column(p_get_instance_cur_id, 49, l_instance_rec.attribute3,150);
4450 dbms_sql.define_column(p_get_instance_cur_id, 50, l_instance_rec.attribute4,150);
4451 dbms_sql.define_column(p_get_instance_cur_id, 51, l_instance_rec.attribute5,150);
4452 dbms_sql.define_column(p_get_instance_cur_id, 52, l_instance_rec.attribute6,150);
4453 dbms_sql.define_column(p_get_instance_cur_id, 53, l_instance_rec.attribute7,150);
4454 dbms_sql.define_column(p_get_instance_cur_id, 54, l_instance_rec.attribute8,150);
4455 dbms_sql.define_column(p_get_instance_cur_id, 55, l_instance_rec.attribute9,150);
4456 dbms_sql.define_column(p_get_instance_cur_id, 56, l_instance_rec.attribute10,150);
4457 dbms_sql.define_column(p_get_instance_cur_id, 57, l_instance_rec.attribute11,150);
4458 dbms_sql.define_column(p_get_instance_cur_id, 58, l_instance_rec.attribute12,150);
4459 dbms_sql.define_column(p_get_instance_cur_id, 59, l_instance_rec.attribute13,150);
4460 dbms_sql.define_column(p_get_instance_cur_id, 60, l_instance_rec.attribute14,150);
4461 dbms_sql.define_column(p_get_instance_cur_id, 61, l_instance_rec.attribute15,150);
4462 dbms_sql.define_column(p_get_instance_cur_id, 62, l_instance_rec.object_version_number);
4463 dbms_sql.define_column(p_get_instance_cur_id, 63, l_instance_rec.last_txn_line_detail_id);
4464 dbms_sql.define_column(p_get_instance_cur_id, 64, l_instance_rec.install_location_type_code,30);
4465 dbms_sql.define_column(p_get_instance_cur_id, 65, l_instance_rec.install_location_id);
4466 dbms_sql.define_column(p_get_instance_cur_id, 66, l_instance_rec.instance_usage_code,30);
4467 dbms_sql.define_column(p_get_instance_cur_id, 67, l_instance_rec.vld_organization_id);
4468 dbms_sql.define_column(p_get_instance_cur_id, 68, l_instance_rec.config_inst_hdr_id);
4469 dbms_sql.define_column(p_get_instance_cur_id, 69, l_instance_rec.config_inst_rev_num);
4470 dbms_sql.define_column(p_get_instance_cur_id, 70, l_instance_rec.config_inst_item_id);
4471 dbms_sql.define_column(p_get_instance_cur_id, 71, l_instance_rec.config_valid_status,30);
4472 dbms_sql.define_column(p_get_instance_cur_id, 72, l_instance_rec.instance_description,240);
4473 --start of code for eam integration columns--
4474 dbms_sql.define_column(p_get_instance_cur_id, 73, l_instance_rec.network_asset_flag,1);
4475 dbms_sql.define_column(p_get_instance_cur_id, 74, l_instance_rec.maintainable_flag,1);
4476 dbms_sql.define_column(p_get_instance_cur_id, 75, l_instance_rec.pn_location_id);
4477 dbms_sql.define_column(p_get_instance_cur_id, 76, l_instance_rec.asset_criticality_code,30);
4478 dbms_sql.define_column(p_get_instance_cur_id, 77, l_instance_rec.category_id);
4479 dbms_sql.define_column(p_get_instance_cur_id, 78, l_instance_rec.equipment_gen_object_id);
4480 dbms_sql.define_column(p_get_instance_cur_id, 79, l_instance_rec.instantiation_flag,1);
4481 dbms_sql.define_column(p_get_instance_cur_id, 80, l_instance_rec.linear_location_id);
4482 dbms_sql.define_column(p_get_instance_cur_id, 81, l_instance_rec.operational_log_flag,1);
4483 dbms_sql.define_column(p_get_instance_cur_id, 82, l_instance_rec.checkin_status);
4484 dbms_sql.define_column(p_get_instance_cur_id, 83, l_instance_rec.supplier_warranty_exp_date);
4485 dbms_sql.define_column(p_get_instance_cur_id, 84, l_instance_rec.attribute16,240);
4486 dbms_sql.define_column(p_get_instance_cur_id, 85, l_instance_rec.attribute17,240);
4487 dbms_sql.define_column(p_get_instance_cur_id, 86, l_instance_rec.attribute18,240);
4488 dbms_sql.define_column(p_get_instance_cur_id, 87, l_instance_rec.attribute19,240);
4489 dbms_sql.define_column(p_get_instance_cur_id, 88, l_instance_rec.attribute20,240);
4490 dbms_sql.define_column(p_get_instance_cur_id, 89, l_instance_rec.attribute21,240);
4491 dbms_sql.define_column(p_get_instance_cur_id, 90, l_instance_rec.attribute22,240);
4492 dbms_sql.define_column(p_get_instance_cur_id, 91, l_instance_rec.attribute23,240);
4493 dbms_sql.define_column(p_get_instance_cur_id, 92, l_instance_rec.attribute24,240);
4494 dbms_sql.define_column(p_get_instance_cur_id, 93, l_instance_rec.attribute25,240);
4495 dbms_sql.define_column(p_get_instance_cur_id, 94, l_instance_rec.attribute26,240);
4496 dbms_sql.define_column(p_get_instance_cur_id, 95, l_instance_rec.attribute27,240);
4497 dbms_sql.define_column(p_get_instance_cur_id, 96, l_instance_rec.attribute28,240);
4498 dbms_sql.define_column(p_get_instance_cur_id, 97, l_instance_rec.attribute29,240);
4499 dbms_sql.define_column(p_get_instance_cur_id, 98, l_instance_rec.attribute30,240);
4500 --end of code for eam integration columns--
4501 -- Addition of columns for FA Integration
4502 dbms_sql.define_column(p_get_instance_cur_id, 99, l_instance_rec.purchase_unit_price);
4503 dbms_sql.define_column(p_get_instance_cur_id, 100, l_instance_rec.purchase_currency_code,15);
4504 dbms_sql.define_column(p_get_instance_cur_id, 101, l_instance_rec.payables_unit_price);
4505 dbms_sql.define_column(p_get_instance_cur_id, 102, l_instance_rec.payables_currency_code,15);
4506 dbms_sql.define_column(p_get_instance_cur_id, 103, l_instance_rec.sales_unit_price);
4507 dbms_sql.define_column(p_get_instance_cur_id, 104, l_instance_rec.sales_currency_code,15);
4508 dbms_sql.define_column(p_get_instance_cur_id, 105, l_instance_rec.operational_status_code,30);
4509 -- End addition of columns for FA Integration
4510
4511 END Define_Instance_Columns;
4512
4513 /*---------------------------------------------------------*/
4514 /* Procedure name: Bind_Inst_variable */
4515 /* Description : Procedure used to generate the where */
4516 /* clause for Item Instances */
4517 /*---------------------------------------------------------*/
4518
4519 PROCEDURE Bind_Instance_variable
4520 (
4521 p_instance_rec IN csi_datastructures_pub.instance_header_rec,
4522 p_cur_get_instance_rel IN NUMBER
4523 ) IS
4524
4525 BEGIN
4526
4527 IF( (p_instance_rec.instance_id IS NOT NULL)
4528 AND (p_instance_rec.instance_id <> FND_API.G_MISS_NUM)) THEN
4529 DBMS_SQL.BIND_VARIABLE(p_cur_get_instance_rel, ':INSTANCE_ID', p_instance_rec.instance_id);
4530 END IF;
4531
4532 END Bind_Instance_variable;
4533
4534
4535 /*--------------------------------------------------*/
4536 /* procedure name: create_item_instance */
4537 /* description : procedure used to */
4538 /* create item instances */
4539 /* */
4540 /*--------------------------------------------------*/
4541
4542 PROCEDURE create_item_instance
4543 (
4544 p_api_version IN NUMBER
4545 ,p_commit IN VARCHAR2
4546 ,p_init_msg_list IN VARCHAR2
4547 ,p_validation_level IN NUMBER
4548 ,p_instance_rec IN OUT NOCOPY csi_datastructures_pub.instance_rec
4549 ,p_txn_rec IN OUT NOCOPY csi_datastructures_pub.transaction_rec
4550 ,p_party_tbl IN OUT NOCOPY csi_datastructures_pub.party_tbl
4551 ,p_asset_tbl IN OUT NOCOPY csi_datastructures_pub.instance_asset_tbl
4552 ,x_return_status OUT NOCOPY VARCHAR2
4553 ,x_msg_count OUT NOCOPY NUMBER
4554 ,x_msg_data OUT NOCOPY VARCHAR2
4555 ,p_item_attribute_tbl IN OUT NOCOPY csi_item_instance_pvt.item_attribute_tbl
4556 ,p_location_tbl IN OUT NOCOPY csi_item_instance_pvt.location_tbl
4557 ,p_generic_id_tbl IN OUT NOCOPY csi_item_instance_pvt.generic_id_tbl
4558 ,p_lookup_tbl IN OUT NOCOPY csi_item_instance_pvt.lookup_tbl
4559 ,p_ins_count_rec IN OUT NOCOPY csi_item_instance_pvt.ins_count_rec
4560 ,p_called_from_grp IN VARCHAR2
4561 ,p_internal_party_id IN NUMBER
4562 )
4563 IS
4564
4565 l_api_name CONSTANT VARCHAR2(30) := 'CREATE_ITEM_INSTANCE_PVT';
4566 l_api_version CONSTANT NUMBER := 1.0;
4567 l_debug_level NUMBER;
4568 l_instance_id NUMBER;
4569 l_party_owner_rec csi_datastructures_pub.party_rec;
4570 l_csi_item_instance_h_id NUMBER;
4571 l_old_oks_cp_rec OKS_IBINT_PUB.CP_REC_TYPE;
4572 l_new_oks_cp_rec OKS_IBINT_PUB.CP_REC_TYPE;
4573 l_ctr_grp_id_template NUMBER;
4574 l_ctr_grp_id_instance NUMBER;
4575 l_ctr_id_template csi_counter_template_pub.ctr_template_autoinst_tbl;
4576 l_ctr_id_instance csi_counter_template_pub.counter_autoinstantiate_tbl;
4577 l_msg_count NUMBER;
4578 l_msg_data VARCHAR2(100);
4579 l_msg_index NUMBER;
4580 l_line_count NUMBER;
4581 l_version_label_rec csi_datastructures_pub.version_label_rec;
4582 l_process_flag BOOLEAN := TRUE;
4583 l_return_value BOOLEAN;
4584 l_owner NUMBER;
4585 l_owner_count NUMBER := 0;
4586 l_int_party_id NUMBER;
4587 l_serial_control NUMBER;
4588 l_lot_control NUMBER;
4589 l_shelf_life_code NUMBER;
4590 l_instance_status VARCHAR2(50);
4591 l_contracts_status VARCHAR2(3);
4592 l_account_id NUMBER;
4593 l_version_label VARCHAR2(30);
4594 l_sys_date DATE := SYSDATE;
4595 l_last_vld_organization_id NUMBER;
4596 l_temp VARCHAR2(1);
4597 l_base_item_id NUMBER;
4598 l_ctr_association_id NUMBER;
4599 l_object_version_number NUMBER;
4600 l_association_type VARCHAR2(30) := 'PROD_ITEM';
4601 -- l_desc_flex CS_COUNTERS_EXT_PVT.DFF_Rec_Type;
4602 -- Counter ref r12 changes
4603 l_desc_flex csi_ctr_datastructures_pub.dff_rec_type;
4604 l_ctr_item_associations_rec csi_ctr_datastructures_pub.ctr_item_associations_rec;
4605 l_trackable_flag VARCHAR2(1);
4606 l_uom_code VARCHAR2(3);
4607 l_rev_control NUMBER;
4608 l_exists_flag VARCHAR2(1);
4609 l_valid_flag VARCHAR2(1);
4610 l_call_counters VARCHAR2(1) := FND_PROFILE.VALUE('CSI_COUNTERS_ENABLED');
4611 l_config_key csi_utility_grp.config_instance_key;
4612 l_config_valid_status VARCHAR2(10);
4613 l_return_message VARCHAR2(100);
4614 l_component_ins_type VARCHAR2(1):=NULL ;
4615 l_config_hdr_id NUMBER;
4616 l_config_rev_nbr NUMBER;
4617 l_terminated_flag VARCHAR2(1);
4618 l_check_instance_rec csi_datastructures_pub.instance_rec;
4619 l_prior_txn_id NUMBER;
4620 l_ins_flag VARCHAR2(1);
4621 l_eam_item BOOLEAN := FALSE;
4622 l_eam_item_type NUMBER;
4623 l_reason_failed VARCHAR2(30);
4624 l_token VARCHAR2(30);
4625 l_dummy_location VARCHAR2(1);
4626 l_counter_group_id NUMBER :=0;
4627 l_gen_object_id NUMBER;
4628 l_equipment_type NUMBER;
4629 --
4630 -- Added variables for bug 8516781, FP bug 8551918
4631 l_exp_rltns_rec csi_datastructures_pub.ii_relationship_rec;
4632 l_instance_id_lst csi_datastructures_pub.id_tbl;
4633 l_msg_data VARCHAR2(2000);
4634
4635 l_transaction_type_id NUMBER := 0;
4636 l_serial_tagged NUMBER := 1;
4637
4638
4639 CURSOR CTR_GROUP(p_src_object_id IN NUMBER) IS
4640 /* R12 Changes ...
4641 SELECT counter_group_id
4642 FROM CS_CTR_ASSOCIATIONS
4643 WHERE source_object_id = p_src_object_id;
4644 */
4645 SELECT group_id,
4646 associated_to_group,--Added for bug 9142776
4647 COUNTER_ID --Added for bug 9142776
4648 FROM csi_ctr_item_associations
4649 WHERE inventory_item_id = p_src_object_id;
4650 BEGIN
4651 -- Standard Start of API savepoint
4652 SAVEPOINT create_item_instance_pvt;
4653
4654 -- Standard call to check for call compatibility.
4655 IF NOT FND_API.Compatible_API_Call (l_api_version,
4656 p_api_version,
4657 l_api_name ,
4658 G_PKG_NAME )
4659 THEN
4660 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4661 END IF;
4662
4663 -- Initialize message list if p_init_msg_list is set to TRUE.
4664 IF FND_API.to_Boolean( p_init_msg_list ) THEN
4665 FND_MSG_PUB.initialize;
4666 END IF;
4667
4668 -- Initialize API return status to success
4669 x_return_status := FND_API.G_RET_STS_SUCCESS;
4670
4671 -- Check the profile option debug_level for debug message reporting
4672 l_debug_level:=fnd_profile.value('CSI_DEBUG_LEVEL');
4673 -- If debug_level = 1 then dump the procedure name
4674 IF (l_debug_level > 0) THEN
4675 csi_gen_utility_pvt.put_line ('create_item_instance_pvt');
4676 END IF;
4677
4678 -- If the debug level = 2 then dump all the parameters values.
4679 IF (l_debug_level > 1) THEN
4680 csi_gen_utility_pvt.put_line ( 'create_item_instance_pvt' ||
4681 p_api_version ||'-'||
4682 p_commit ||'-'||
4683 p_init_msg_list );
4684 -- Dump the records in the log file
4685 csi_gen_utility_pvt.dump_instance_rec(p_instance_rec);
4686 csi_gen_utility_pvt.dump_party_tbl(p_party_tbl);
4687 csi_gen_utility_pvt.dump_txn_rec(p_txn_rec);
4688 END IF;
4689
4690 -- Start API body
4691 CSI_Item_Instance_vld_pvt.Check_Reqd_Param_Num
4692 ( p_instance_rec.INVENTORY_ITEM_ID ,
4693 ' p_instance_rec.INVENTORY_ITEM_ID ',
4694 l_api_name
4695 );
4696 /* Code commented by sk for bug 2198575
4697
4698 CSI_Item_Instance_vld_pvt.Check_Reqd_Param_Num
4699 ( p_instance_rec.INV_MASTER_ORGANIZATION_ID ,
4700 ' p_instance_rec.INV_MASTER_ORGANIZATION_ID ',
4701 l_api_name
4702 );
4703 */
4704 CSI_Item_Instance_vld_pvt.Check_Reqd_Param_Num
4705 ( p_instance_rec.QUANTITY ,
4706 ' p_instance_rec.QUANTITY ',
4707 l_api_name
4708 );
4709
4710 CSI_Item_Instance_vld_pvt.Check_Reqd_Param_Char
4711 ( p_instance_rec.UNIT_OF_MEASURE ,
4712 ' p_instance_rec.UNIT_OF_MEASURE ',
4713 l_api_name
4714 );
4715 --
4716 -- Initialize the Instance count
4717 --
4718 If p_ins_count_rec.inv_count is NULL OR
4719 p_ins_count_rec.inv_count = FND_API.G_MISS_NUM THEN
4720 p_ins_count_rec.inv_count := 0;
4721 End if;
4722 --
4723 If p_ins_count_rec.generic_count is NULL OR
4724 p_ins_count_rec.generic_count = FND_API.G_MISS_NUM THEN
4725 p_ins_count_rec.generic_count := 0;
4726 End if;
4727 --
4728 If p_ins_count_rec.location_count is NULL OR
4729 p_ins_count_rec.location_count = FND_API.G_MISS_NUM THEN
4730 p_ins_count_rec.location_count := 0;
4731 End if;
4732 --
4733 If p_ins_count_rec.lookup_count is NULL OR
4734 p_ins_count_rec.lookup_count = FND_API.G_MISS_NUM THEN
4735 p_ins_count_rec.lookup_count := 0;
4736 End if;
4737 --
4738
4739 --Validations for the Create Item Instance
4740 --If vld_organization_id is passed and inv_master_organization_id is
4741 --not passed then derive master_organization_id from mtl_parameters.
4742 -- Start of modifications by sk on 02/19/02 for bug 2198575
4743 IF ((p_instance_rec.vld_organization_id IS NOT NULL) AND
4744 (p_instance_rec.vld_organization_id <> FND_API.G_MISS_NUM)) AND
4745 ((p_instance_rec.inv_master_organization_id IS NULL) OR
4746 (p_instance_rec.inv_master_organization_id = FND_API.G_MISS_NUM))
4747 THEN
4748 BEGIN
4749 SELECT master_organization_id
4750 INTO p_instance_rec.inv_master_organization_id
4751 FROM mtl_parameters
4752 WHERE organization_id = p_instance_rec.vld_organization_id;
4753 EXCEPTION
4754 WHEN OTHERS THEN
4755 NULL;
4756 END;
4757 --If vld_organization_id is not passed and inv_master_organization_id is
4758 --passed then assign inv_master_organization_id to vld_organization_id.
4759 ELSIF ((p_instance_rec.vld_organization_id IS NULL) OR
4760 (p_instance_rec.vld_organization_id = FND_API.G_MISS_NUM)) AND
4761 ((p_instance_rec.inv_master_organization_id IS NOT NULL) AND
4762 (p_instance_rec.inv_master_organization_id <> FND_API.G_MISS_NUM))
4763 THEN
4764 IF NOT (csi_Item_Instance_Vld_Pvt.Is_Valid_Master_Org
4765 (p_instance_rec.inv_master_organization_id)) THEN
4766 FND_MESSAGE.SET_NAME('CSI','CSI_INVALID_MAST_ORG');
4767 FND_MSG_PUB.Add;
4768 RAISE FND_API.G_EXC_ERROR;
4769 END IF;
4770 p_instance_rec.vld_organization_id := p_instance_rec.inv_master_organization_id;
4771 --If both vld_organization_id and inv_master_organization_id are
4772 --passed then check the validity of passed inv_master_organization_id.
4773 ELSIF ((p_instance_rec.vld_organization_id IS NOT NULL) AND
4774 (p_instance_rec.vld_organization_id <> FND_API.G_MISS_NUM)) AND
4775 ((p_instance_rec.inv_master_organization_id IS NOT NULL) AND
4776 (p_instance_rec.inv_master_organization_id <> FND_API.G_MISS_NUM))
4777 THEN
4778 BEGIN
4779 SELECT 'x'
4780 INTO l_temp
4781 FROM mtl_parameters
4782 WHERE organization_id = p_instance_rec.vld_organization_id
4783 AND master_organization_id = p_instance_rec.inv_master_organization_id;
4784 EXCEPTION
4785 WHEN NO_DATA_FOUND THEN
4786 FND_MESSAGE.SET_NAME('CSI','CSI_INVALID_VLD_MAST_COMB');
4787 FND_MSG_PUB.Add;
4788 RAISE FND_API.G_EXC_ERROR;
4789 END;
4790 ELSE
4791 FND_MESSAGE.SET_NAME('CSI','CSI_NO_VLD_ORG');
4792 FND_MSG_PUB.Add;
4793 RAISE FND_API.G_EXC_ERROR;
4794 END IF;
4795 -- End of modifications by sk on 02/19/02 for bug 2198575
4796
4797 -- Validating the Instance Id
4798 IF ((p_instance_rec.INSTANCE_ID IS NULL) OR
4799 (p_instance_rec.INSTANCE_ID = FND_API.G_MISS_NUM)) THEN
4800 -- If the instance_id passed is null then generate from sequence
4801 -- and check if the value exists . If exists then generate
4802 -- again from the sequence till we get a value that does not exist
4803 WHILE l_process_flag LOOP
4804 p_instance_rec.INSTANCE_ID := CSI_Item_Instance_vld_pvt.get_instance_id;
4805 IF NOT(CSI_Item_Instance_vld_pvt.InstanceExists(p_instance_rec.INSTANCE_ID,
4806 FALSE )) THEN
4807 l_process_flag := FALSE;
4808 END IF;
4809 END LOOP;
4810 ELSE
4811 -- Validate the instance_id if exist then raise CSI_API_INVALID_PRIMARY_KEY error
4812 IF CSI_Item_Instance_vld_pvt.InstanceExists(p_instance_rec.INSTANCE_ID,
4813 TRUE ) THEN
4814 RAISE FND_API.G_EXC_ERROR;
4815 END IF;
4816 END IF;
4817
4818 -- IF l_eam_item
4819 -- THEN
4820 IF (p_instance_rec.location_id IS NULL OR
4821 p_instance_rec.location_id =fnd_api.g_miss_num)
4822 THEN
4823 IF p_instance_rec.location_type_code IN ('WIP', 'HR_LOCATIONS','PROJECT','IN_TRANSIT','PO','INTERNAL_SITE')
4824 THEN
4825 BEGIN
4826 SELECT location_id
4827 INTO p_instance_rec.location_id
4828 FROM hr_all_organization_units
4829 WHERE organization_id = p_instance_rec.vld_organization_id;
4830 EXCEPTION
4831 WHEN NO_DATA_FOUND THEN
4832 fnd_message.set_name('CSI','CSI_NO_HR_LOCATIONS');
4833 fnd_message.set_token('ORGANIZATION_ID',p_instance_rec.vld_organization_id);
4834 fnd_msg_pub.ADD;
4835 RAISE fnd_api.g_exc_error;
4836 END;
4837 IF p_instance_rec.location_id IS NULL
4838 THEN
4839 fnd_message.set_name('CSI','CSI_NO_HR_LOCATIONS');
4840 fnd_message.set_token('ORGANIZATION_ID',p_instance_rec.vld_organization_id);
4841 fnd_msg_pub.ADD;
4842 RAISE fnd_api.g_exc_error;
4843 END IF;
4844 END IF;
4845 END IF;
4846
4847 IF (p_instance_rec.install_location_id IS NULL OR
4848 p_instance_rec.install_location_id =fnd_api.g_miss_num)
4849 THEN
4850 IF p_instance_rec.install_location_type_code IN ('WIP','HR_LOCATIONS','PROJECT','IN_TRANSIT','PO','INTERNAL_SITE')
4851 THEN
4852 BEGIN
4853 SELECT location_id
4854 INTO p_instance_rec.install_location_id
4855 FROM hr_all_organization_units
4856 WHERE organization_id = p_instance_rec.vld_organization_id;
4857 EXCEPTION
4858 WHEN NO_DATA_FOUND THEN
4859 fnd_message.set_name('CSI','CSI_NO_HR_LOCATIONS');
4860 fnd_message.set_token('ORGANIZATION_ID',p_instance_rec.vld_organization_id);
4861 fnd_msg_pub.ADD;
4862 RAISE fnd_api.g_exc_error;
4863 END;
4864 IF p_instance_rec.install_location_id IS NULL
4865 THEN
4866 fnd_message.set_name('CSI','CSI_NO_HR_LOCATIONS');
4867 fnd_message.set_token('ORGANIZATION_ID',p_instance_rec.vld_organization_id);
4868 fnd_msg_pub.ADD;
4869 RAISE fnd_api.g_exc_error;
4870 END IF;
4871 END IF;
4872 END IF;
4873 -- END IF;
4874 -- End addition of code for eam integration
4875
4876 IF csi_item_Instance_Vld_pvt.Is_InstanceNum_Valid(p_instance_rec.instance_id,
4877 p_instance_rec.instance_number,
4878 'CREATE')
4879 THEN
4880 IF p_instance_rec.instance_number IS NULL OR
4881 p_instance_rec.instance_number = fnd_api.g_miss_char
4882 THEN
4883 p_instance_rec.instance_number := substr(to_char(p_instance_rec.instance_id),1,30);
4884 END IF;
4885 ELSE
4886 RAISE fnd_api.g_exc_error;
4887 END IF;
4888 --
4889 -- Get the Required Inventory Attributes
4890 l_exists_flag := 'N';
4891 l_valid_flag := 'Y';
4892 IF p_item_attribute_tbl.count > 0 then
4893 FOR item_count in p_item_attribute_tbl.FIRST .. p_item_attribute_tbl.LAST
4894 LOOP
4895 IF p_item_attribute_tbl(item_count).inventory_item_id = p_instance_rec.inventory_item_id AND
4896 p_item_attribute_tbl(item_count).organization_id = p_instance_rec.vld_organization_id AND
4897 p_item_attribute_tbl(item_count).master_organization_id = p_instance_rec.inv_master_organization_id
4898 THEN
4899 l_trackable_flag := p_item_attribute_tbl(item_count).trackable_flag;
4900 l_rev_control := p_item_attribute_tbl(item_count).revision_control_code;
4901 l_serial_control := p_item_attribute_tbl(item_count).serial_number_control_code;
4902 l_lot_control := p_item_attribute_tbl(item_count).lot_control_code;
4903 l_shelf_life_code := p_item_attribute_tbl(item_count).shelf_life_code;
4904 l_uom_code := p_item_attribute_tbl(item_count).uom_code;
4905 l_eam_item_type := p_item_attribute_tbl(item_count).eam_item_type;
4906 l_equipment_type := p_item_attribute_tbl(item_count).equipment_type;
4907 l_valid_flag := p_item_attribute_tbl(item_count).valid_flag;
4908 l_exists_flag := 'Y';
4909 EXIT;
4910 END IF;
4911 END LOOP;
4912 IF l_valid_flag <> 'Y'
4913 THEN
4914 FND_MESSAGE.SET_NAME('CSI','CSI_API_INVALID_ITEM');
4915 FND_MESSAGE.SET_TOKEN('INVENTORY_ITEM_ID',p_instance_rec.inventory_item_id);
4916 FND_MESSAGE.SET_TOKEN('INVENTORY_ORGANIZATION_ID',p_instance_rec.vld_organization_id);
4917 FND_MSG_PUB.Add;
4918 RAISE fnd_api.g_exc_error;
4919 END IF;
4920 END IF;
4921 --
4922 -- if item does not exist in cache then get from database.
4923 if l_exists_flag = 'N' then
4924 p_ins_count_rec.inv_count := p_ins_count_rec.inv_count + 1;
4925 p_item_attribute_tbl(p_ins_count_rec.inv_count).inventory_item_id := p_instance_rec.inventory_item_id;
4926 p_item_attribute_tbl(p_ins_count_rec.inv_count).organization_id := p_instance_rec.vld_organization_id;
4927 p_item_attribute_tbl(p_ins_count_rec.inv_count).master_organization_id := p_instance_rec.inv_master_organization_id;
4928 Begin
4929 select comms_nl_trackable_flag,primary_uom_code
4930 into l_trackable_flag,l_uom_code
4931 from MTL_SYSTEM_ITEMS_B
4932 where inventory_item_id = p_instance_rec.inventory_item_id
4933 and organization_id = p_instance_rec.inv_master_organization_id
4934 and enabled_flag = 'Y'
4935 and nvl (start_date_active, sysdate) <= sysdate
4936 and nvl (end_date_active, sysdate+1) > sysdate;
4937 --
4938 p_item_attribute_tbl(p_ins_count_rec.inv_count).trackable_flag := l_trackable_flag;
4939 p_item_attribute_tbl(p_ins_count_rec.inv_count).uom_code := l_uom_code;
4940 p_item_attribute_tbl(p_ins_count_rec.inv_count).valid_flag := 'Y';
4941 Exception
4942 when others then
4943
4944 FND_MESSAGE.SET_NAME('CSI','CSI_API_INVALID_ITEM');
4945 FND_MESSAGE.SET_TOKEN('INVENTORY_ITEM_ID',p_instance_rec.inventory_item_id);
4946 FND_MESSAGE.SET_TOKEN('INVENTORY_ORGANIZATION_ID',p_instance_rec.vld_organization_id);
4947 FND_MSG_PUB.Add;
4948 RAISE fnd_api.g_exc_error;
4949 End;
4950 --
4951 BEGIN
4952 SELECT revision_qty_control_code
4953 ,serial_number_control_code
4954 --,lot_control_code
4955 ,nvl(csi_utl_pkg.get_lot_ctrl_code(p_txn_rec.inv_material_transaction_id),lot_control_code) lot_control_code-- Added for bug#14835893
4956 ,shelf_life_code
4957 ,eam_item_type
4958 ,equipment_type
4959 INTO l_rev_control
4960 ,l_serial_control
4961 ,l_lot_control
4962 ,l_shelf_life_code
4963 ,l_eam_item_type
4964 ,l_equipment_type
4965 FROM mtl_system_items_b
4966 WHERE inventory_item_id = p_instance_rec.inventory_item_id
4967 AND organization_id = p_instance_rec.vld_organization_id
4968 AND enabled_flag = 'Y'
4969 AND nvl (start_date_active, sysdate) <= sysdate
4970 AND nvl (end_date_active, sysdate+1) > sysdate;
4971 --
4972 p_item_attribute_tbl(p_ins_count_rec.inv_count).valid_flag := 'Y';
4973 p_item_attribute_tbl(p_ins_count_rec.inv_count).revision_control_code := l_rev_control;
4974 p_item_attribute_tbl(p_ins_count_rec.inv_count).serial_number_control_code := l_serial_control;
4975 p_item_attribute_tbl(p_ins_count_rec.inv_count).lot_control_code := l_lot_control;
4976 p_item_attribute_tbl(p_ins_count_rec.inv_count).shelf_life_code := l_shelf_life_code;
4977 p_item_attribute_tbl(p_ins_count_rec.inv_count).eam_item_type := l_eam_item_type;
4978 p_item_attribute_tbl(p_ins_count_rec.inv_count).equipment_type := l_equipment_type;
4979 EXCEPTION
4980 WHEN OTHERS THEN
4981 p_item_attribute_tbl(p_ins_count_rec.inv_count).valid_flag := 'N';
4982 FND_MESSAGE.SET_NAME('CSI','CSI_API_INVALID_ITEM');
4983 FND_MESSAGE.SET_TOKEN('INVENTORY_ITEM_ID',p_instance_rec.inventory_item_id);
4984 FND_MESSAGE.SET_TOKEN('INVENTORY_ORGANIZATION_ID',p_instance_rec.vld_organization_id);
4985 FND_MSG_PUB.Add;
4986 RAISE fnd_api.g_exc_error;
4987 END;
4988 End if;
4989 -- Added the following code to fix bug 5506231
4990 IF p_instance_rec.instance_usage_code IS NULL OR
4991 p_instance_rec.instance_usage_code = fnd_api.g_miss_char
4992 THEN
4993 csi_gen_utility_pvt.put_line ('Instance_usage_code is passed as null or g_miss value');
4994 csi_gen_utility_pvt.put_line ('Hence deriving instance usage code');
4995 IF l_serial_control = 6 AND
4996 p_instance_rec.serial_number IS NOT NULL AND
4997 p_instance_rec.location_type_code = 'INVENTORY'
4998 THEN
4999 p_instance_rec.instance_usage_code := 'RETURNED';
5000 ELSE
5001 IF p_instance_rec.location_type_code = 'INVENTORY'
5002 THEN
5003 p_instance_rec.instance_usage_code := 'IN_INVENTORY';
5004 ELSIF p_instance_rec.location_type_code = 'WIP'
5005 THEN
5006 p_instance_rec.instance_usage_code := 'IN_WIP';
5007 ELSE
5008 p_instance_rec.instance_usage_code := 'OUT_OF_ENTERPRISE';
5009 END IF;
5010 END IF;
5011 csi_gen_utility_pvt.put_line ('Value of derived instance_usage_code is : '||p_instance_rec.instance_usage_code);
5012 END IF;
5013 -- End addition of code to fix bug 5506231
5014
5015 -- Checking for Trackable Flag
5016 IF NOT csi_item_instance_vld_pvt.Is_Trackable
5017 (p_instance_rec.inventory_item_id,
5018 p_instance_rec.inv_master_organization_id,
5019 l_trackable_flag
5020 ) THEN
5021 RAISE fnd_api.g_exc_error;
5022 END IF;
5023 --
5024 -- Added following code for eam integration
5025 -- Check if the item is a rebuildable or an asset group
5026
5027 IF csi_item_instance_vld_pvt.Check_for_eam_item
5028 (p_inventory_item_id => p_instance_rec.inventory_item_id,
5029 p_organization_id => p_instance_rec.vld_organization_id,
5030 p_eam_item_type => l_eam_item_type)
5031 THEN
5032 l_eam_item := TRUE;
5033 END IF;
5034 -- Added for eam
5035 IF ((p_instance_rec.network_asset_flag IS NOT NULL AND
5036 p_instance_rec.network_asset_flag <> fnd_api.g_miss_char) OR
5037 (p_instance_rec.maintainable_flag IS NOT NULL AND
5038 p_instance_rec.maintainable_flag <> fnd_api.g_miss_char) OR
5039 (p_instance_rec.pn_location_id IS NOT NULL AND
5040 p_instance_rec.pn_location_id <> fnd_api.g_miss_num) OR
5041 (p_instance_rec.asset_criticality_code IS NOT NULL AND
5042 p_instance_rec.asset_criticality_code <> fnd_api.g_miss_char) OR
5043 (p_instance_rec.category_id IS NOT NULL AND
5044 p_instance_rec.category_id <> fnd_api.g_miss_num) OR
5045 (p_instance_rec.equipment_gen_object_id IS NOT NULL AND
5046 p_instance_rec.equipment_gen_object_id <> fnd_api.g_miss_num) OR
5047 (p_instance_rec.linear_location_id IS NOT NULL AND
5048 p_instance_rec.linear_location_id <> fnd_api.g_miss_num) OR
5049 (p_instance_rec.operational_log_flag IS NOT NULL AND
5050 p_instance_rec.operational_log_flag <> fnd_api.g_miss_char) OR
5051 (p_instance_rec.checkin_status IS NOT NULL AND
5052 p_instance_rec.checkin_status <> fnd_api.g_miss_num) OR
5053 (p_instance_rec.supplier_warranty_exp_date IS NOT NULL AND
5054 p_instance_rec.supplier_warranty_exp_date <> fnd_api.g_miss_date))
5055 THEN
5056 IF l_eam_item
5057 THEN
5058 IF p_instance_rec.maintainable_flag IS NULL OR
5059 p_instance_rec.maintainable_flag = fnd_api.g_miss_char
5060 THEN
5061 p_instance_rec.maintainable_flag :='Y';
5062 END IF;
5063
5064 IF NOT eam_assetnumber_pub.validate_fields
5065 (p_current_organization_id => p_instance_rec.vld_organization_id
5066 ,p_inventory_item_id => p_instance_rec.inventory_item_id
5067 ,p_serial_number => p_instance_rec.serial_number
5068 ,p_network_asset_flag => p_instance_rec.network_asset_flag
5069 ,p_maintainable_flag => p_instance_rec.maintainable_flag
5070 ,p_pn_location_id => p_instance_rec.pn_location_id
5071 ,p_asset_criticality_code => p_instance_rec.asset_criticality_code
5072 ,p_category_id => p_instance_rec.category_id
5073 ,p_equipment_object_id => p_instance_rec.equipment_gen_object_id
5074 ,p_eam_linear_id => p_instance_rec.linear_location_id
5075 ,p_operational_log_flag => p_instance_rec.operational_log_flag
5076 ,p_checkin_status => p_instance_rec.checkin_status
5077 ,p_supplier_warranty_exp_date => p_instance_rec.supplier_warranty_exp_date
5078 ,p_owning_department_id => NULL
5079 ,x_reason_failed => l_reason_failed
5080 ,x_token => l_token
5081 )
5082 THEN
5083 -- FND_MESSAGE.SET_NAME('CSI', l_reason_failed); -- commented for bug 5351886
5084 -- FND_MSG_PUB.Add; -- commented for bug 5351886
5085 csi_gen_utility_pvt.put_line('Call to eam_assetnumber_pub.validate_fields failed with following reason');
5086 csi_gen_utility_pvt.put_line(l_reason_failed);
5087 RAISE FND_API.G_EXC_ERROR;
5088 END IF;
5089 ELSE
5090 FND_MESSAGE.SET_NAME('CSI', 'CSI_NON_EAM_ITEM');
5091 FND_MSG_PUB.Add;
5092 RAISE FND_API.G_EXC_ERROR;
5093 END IF;
5094 END IF;
5095 -- Adding the following code as there could be a case
5096 -- where the item is an eam item but none of the eam columns were
5097 -- populated then above code will not assign a value to
5098 -- maintainable_flag.
5099 IF l_eam_item
5100 THEN
5101 IF p_instance_rec.maintainable_flag IS NULL OR
5102 p_instance_rec.maintainable_flag = fnd_api.g_miss_char
5103 THEN
5104 p_instance_rec.maintainable_flag :='Y';
5105 END IF;
5106 END IF;
5107 -- End addition for eam
5108
5109 -- Validation for the Revision
5110 csi_item_instance_vld_pvt.Validate_Revision
5111 (
5112 p_inv_item_id => p_instance_rec.inventory_item_id ,
5113 p_inv_org_id => p_instance_rec.vld_organization_id,
5114 p_creation_complete_flag => p_instance_rec.creation_complete_flag,
5115 p_revision => p_instance_rec.inventory_revision,
5116 l_return_value => l_return_value,
5117 p_rev_control_code => l_rev_control
5118 );
5119
5120 IF l_return_value = FALSE THEN
5121 RAISE fnd_api.g_exc_error;
5122 END IF;
5123 -- Validation for the Lot Number
5124 csi_Item_Instance_Vld_pvt.Validate_Lot_Number
5125 (
5126 p_inv_org_id => p_instance_rec.vld_organization_id,
5127 p_inv_item_id => p_instance_rec.inventory_item_id ,
5128 p_lot_number => p_instance_rec.lot_number,
5129 p_mfg_serial_number_flag => p_instance_rec.mfg_serial_number_flag,
5130 p_txn_rec => p_txn_rec,
5131 p_creation_complete_flag => p_instance_rec.creation_complete_flag,
5132 l_return_value => l_return_value,
5133 p_lot_control_code => l_lot_control
5134 );
5135 IF l_return_value = FALSE THEN
5136 RAISE fnd_api.g_exc_error;
5137 END IF;
5138
5139 -- Validates the lot uniqueness and creates lot numbers in MLNs for manually created Instances
5140 -- Bug# 4011408
5141 IF ((p_instance_rec.lot_number <> FND_API.G_MISS_CHAR) AND
5142 (p_instance_rec.lot_number IS NOT NULL))
5143 THEN
5144 csi_gen_utility_pvt.put_line('Calling Create_Lot routine...');
5145 csi_item_instance_vld_pvt.Create_Lot
5146 (
5147 p_inv_org_id => p_instance_rec.vld_organization_id,
5148 p_inv_item_id => p_instance_rec.inventory_item_id,
5149 p_lot_number => p_instance_rec.lot_number,
5150 p_shelf_life_code => l_shelf_life_code,
5151 p_instance_id => p_instance_rec.instance_id,
5152 l_return_value => l_return_value
5153 );
5154 IF l_return_value = FALSE THEN
5155 RAISE fnd_api.g_exc_error;
5156 END IF;
5157 END IF;
5158 -- Creates Serial number in MSNs for manually created serialized CPs
5159 l_ins_flag := FND_API.G_FALSE;
5160 IF ((p_instance_rec.serial_number <> FND_API.G_MISS_CHAR) AND
5161 (p_instance_rec.serial_number IS NOT NULL)) /* AND
5162 (nvl(p_instance_rec.mfg_serial_number_flag,'N') <> 'Y') ) */
5163 THEN
5164 csi_gen_utility_pvt.put_line('Calling Create_Serial...');
5165 csi_item_instance_vld_pvt.Create_Serial
5166 (
5167 p_inv_org_id => p_instance_rec.vld_organization_id,
5168 p_inv_item_id => p_instance_rec.inventory_item_id,
5169 p_serial_number => p_instance_rec.serial_number,
5170 p_mfg_srl_num_flag => p_instance_rec.mfg_serial_number_flag,
5171 p_location_type_code => p_instance_rec.location_type_code,
5172 p_ins_flag => l_ins_flag,
5173 p_lot_number => p_instance_rec.lot_number,
5174 p_gen_object_id => l_gen_object_id,
5175 l_return_value => l_return_value
5176 );
5177
5178 IF l_return_value = FALSE THEN
5179 RAISE fnd_api.g_exc_error;
5180 ELSE
5181 IF nvl(p_instance_rec.mfg_serial_number_flag,'N') <> 'Y'
5182 THEN
5183 p_instance_rec.mfg_serial_number_flag := 'Y';
5184 END IF;
5185 END IF;
5186
5187 IF l_eam_item AND
5188 l_equipment_type = 1
5189 THEN
5190 p_instance_rec.equipment_gen_object_id := l_gen_object_id;
5191 END IF;
5192
5193 IF l_eam_item
5194 THEN
5195 csi_gen_utility_pvt.put_line( 'Calling eam_common_utilities_pvt.update_logical_asset...');
5196 csi_gen_utility_pvt.put_line( 'Inventory_item_id is :'||p_instance_rec.inventory_item_id);
5197 csi_gen_utility_pvt.put_line( 'Serial_number is :'||p_instance_rec.serial_number);
5198 csi_gen_utility_pvt.put_line( 'Network_asset_flag is :'||p_instance_rec.network_asset_flag);
5199 csi_gen_utility_pvt.put_line( 'Pn_location_id is :'||p_instance_rec.pn_location_id);
5200 csi_gen_utility_pvt.put_line( 'Equipment_gen_object_id is :'||p_instance_rec.equipment_gen_object_id);
5201 eam_common_utilities_pvt.update_logical_asset
5202 ( p_inventory_item_id => p_instance_rec.inventory_item_id
5203 ,p_serial_number => p_instance_rec.serial_number
5204 ,p_network_asset_flag => p_instance_rec.network_asset_flag
5205 ,p_pn_location_id => p_instance_rec.pn_location_id
5206 ,p_equipment_gen_object_id => p_instance_rec.equipment_gen_object_id
5207 ,x_return_status => x_return_status
5208 );
5209 IF NOT (x_return_status = FND_API.G_RET_STS_SUCCESS)
5210 THEN
5211 csi_gen_utility_pvt.put_line( 'Error from eam_common_utilities_pvt.update_logical_asset...');
5212 RAISE fnd_api.g_exc_error;
5213 END IF;
5214 END IF;
5215
5216 END IF;
5217 -- Transaction Sequencing check
5218 -- By-pass sequencing if the serial number got created by the above routine
5219 IF p_instance_rec.serial_number IS NOT NULL AND
5220 p_instance_rec.serial_number <> FND_API.G_MISS_CHAR AND
5221 l_ins_flag = FND_API.G_FALSE THEN
5222 -- l_check_instance_rec.instance_id := p_instance_rec.instance_id;
5223 l_check_instance_rec.inventory_item_id := p_instance_rec.inventory_item_id;
5224 l_check_instance_rec.serial_number := p_instance_rec.serial_number;
5225 l_check_instance_rec.lot_number := p_instance_rec.lot_number;
5226 l_check_instance_rec.last_txn_line_detail_id := p_instance_rec.last_txn_line_detail_id;
5227 csi_gen_utility_pvt.put_line('Calling Check_Prior_Txn');
5228 csi_Item_Instance_Vld_pvt.Check_Prior_Txn
5229 (
5230 p_instance_rec => l_check_instance_rec
5231 ,p_txn_rec => p_txn_rec
5232 ,p_prior_txn_id => l_prior_txn_id
5233 ,p_mode => 'CREATE'
5234 ,x_return_status => x_return_status
5235 );
5236 IF NOT (x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
5237 RAISE fnd_api.g_exc_error;
5238 END IF;
5239 END IF;
5240 -- Validation for the Serial Number
5241 csi_gen_utility_pvt.put_line('Calling Validate_Serial_Number...');
5242 csi_Item_Instance_Vld_pvt.Validate_Serial_Number
5243 (
5244 p_inv_org_id => p_instance_rec.vld_organization_id,
5245 p_inv_item_id => p_instance_rec.inventory_item_id ,
5246 p_serial_number => p_instance_rec.serial_number,
5247 p_mfg_serial_number_flag => p_instance_rec.mfg_serial_number_flag,
5248 p_txn_rec => p_txn_rec,
5249 p_creation_complete_flag => p_instance_rec.creation_complete_flag,
5250 p_location_type_code => p_instance_rec.location_type_code,
5251 p_instance_usage_code => p_instance_rec.instance_usage_code,
5252 l_return_value => l_return_value,
5253 p_srl_control_code => l_serial_control
5254 );
5255 IF l_return_value = FALSE THEN
5256 RAISE fnd_api.g_exc_error;
5257 END IF;
5258 -- Validation for the Unit of Measure
5259 -- validate/convert only if the uom is not a primary uom
5260 IF p_instance_rec.unit_of_measure <> l_uom_code THEN
5261 csi_item_instance_vld_pvt.Is_Valid_Uom
5262 (
5263 --p_inv_org_id => p_instance_rec.inv_master_organization_id, --bug#13568912
5264 p_inv_org_id => p_instance_rec.vld_organization_id, --bug#13568912
5265 p_inv_item_id => p_instance_rec.inventory_item_id ,
5266 p_uom_code => p_instance_rec.unit_of_measure,
5267 p_quantity => p_instance_rec.quantity,
5268 p_creation_complete_flag => p_instance_rec.creation_complete_flag,
5269 l_return_value => l_return_value
5270 );
5271 IF l_return_value = FALSE THEN
5272 RAISE FND_API.G_EXC_ERROR;
5273 END IF;
5274 END IF;
5275 -- Validation for Location Source and Location ID
5276 IF p_instance_rec.location_type_code = FND_API.G_MISS_CHAR OR
5277 p_instance_rec.location_type_code IS NULL THEN
5278 IF p_instance_rec.creation_complete_flag = 'Y' THEN
5279 FND_MESSAGE.SET_NAME('CSI','CSI_API_INVALID_LOCATION');
5280 FND_MSG_PUB.ADD;
5281 RAISE fnd_api.g_exc_error;
5282 ELSE
5283 p_instance_rec.creation_complete_flag := 'N';
5284 END IF;
5285 ELSE
5286 IF p_instance_rec.location_id IS NULL OR
5287 p_instance_rec.location_id = FND_API.G_MISS_NUM THEN
5288 FND_MESSAGE.SET_NAME('CSI','CSI_API_LOCATION_NOT_VALID');
5289 FND_MSG_PUB.ADD;
5290 RAISE fnd_api.g_exc_error;
5291 ELSE
5292 -- Validate location_id
5293 l_exists_flag := 'N';
5294 l_valid_flag := 'Y';
5295 IF p_location_tbl.count > 0 THEN
5296 For loc_row in p_location_tbl.FIRST .. p_location_tbl.LAST
5297 Loop
5298 IF p_location_tbl(loc_row).location_type_code = p_instance_rec.location_type_code AND
5299 p_location_tbl(loc_row).location_id = p_instance_rec.location_id THEN
5300 l_exists_flag := 'Y';
5301 l_valid_flag := p_location_tbl(loc_row).valid_flag;
5302 EXIT;
5303 END IF;
5304 End Loop;
5305 --
5306 IF l_valid_flag <> 'Y' THEN
5307 FND_MESSAGE.SET_NAME('CSI','CSI_API_LOCATION_NOT_VALID');
5308 FND_MSG_PUB.ADD;
5309 RAISE fnd_api.g_exc_error;
5310 END IF;
5311 END IF; -- p_location_tbl count
5312 --
5313 IF l_exists_flag <> 'Y' THEN
5314 p_ins_count_rec.location_count := p_ins_count_rec.location_count + 1;
5315 p_location_tbl(p_ins_count_rec.location_count).location_type_code :=
5316 p_instance_rec.location_type_code;
5317 p_location_tbl(p_ins_count_rec.location_count).location_id := p_instance_rec.location_id;
5318 IF csi_item_instance_vld_pvt.Is_Valid_Location_ID
5319 (p_location_source_table => p_instance_rec.location_type_code
5320 ,p_location_id => p_instance_rec.location_id) THEN
5321 p_location_tbl(p_ins_count_rec.location_count).valid_flag := 'Y';
5322 ELSE
5323 p_location_tbl(p_ins_count_rec.location_count).valid_flag := 'N';
5324 RAISE fnd_api.g_exc_error;
5325 END IF;
5326 END IF;
5327 -- Validate Related Parameters
5328 IF NOT csi_item_instance_vld_pvt.Validate_Related_Loc_Params
5329 (
5330 p_location_source_table => p_instance_rec.location_type_code,
5331 p_location_id => p_instance_rec.location_id,
5332 p_organization_id => p_instance_rec.inv_organization_id,
5333 p_subinventory => p_instance_rec.inv_subinventory_name,
5334 p_locator_id => p_instance_rec.inv_locator_id,
5335 p_project_id => p_instance_rec.pa_project_id,
5336 p_task_id => p_instance_rec.pa_project_task_id,
5337 p_sales_ord_line_id => p_instance_rec.in_transit_order_line_id,
5338 p_wip_job_id => p_instance_rec.wip_job_id,
5339 p_po_line_id => p_instance_rec.po_order_line_id,
5340 p_inst_usage_code => p_instance_rec.instance_usage_code
5341 ) THEN
5342 RAISE fnd_api.g_exc_error;
5343 END IF;
5344 END IF; -- Location ID Valid
5345 END IF; -- Location Type code valid
5346 --
5347 -- Validation for the Quantity
5348 IF NOT csi_Item_Instance_Vld_pvt.Is_Quantity_Valid(
5349 p_instance_id => p_instance_rec.instance_id,
5350 p_inv_organization_id => p_instance_rec.vld_organization_id,
5351 p_quantity => p_instance_rec.quantity ,
5352 p_serial_control_code => l_serial_control,
5353 p_location_type_code => p_instance_rec.location_type_code,
5354 p_flag => 'CREATE',
5355 p_csi_txn_type_id => p_txn_rec.transaction_type_id
5356 ) -- Added serial_control and location by sk on 09/14/01
5357 THEN
5358 RAISE fnd_api.g_exc_error;
5359 END IF;
5360 --validation for accounting classification_code
5361 IF (p_party_tbl.count < 1) THEN
5362 FND_MESSAGE.SET_NAME('CSI','CSI_API_NO_PARTY_RECORD');
5363 FND_MSG_PUB.Add;
5364 RAISE FND_API.G_EXC_ERROR;
5365 ELSE
5366 FOR l_count IN p_party_tbl.FIRST..p_party_tbl.LAST LOOP
5367 IF p_party_tbl.EXISTS(l_count) THEN
5368 IF p_party_tbl(l_count).relationship_type_code = 'OWNER' THEN
5369 l_owner_count := l_owner_count + 1;
5370 l_owner := P_PARTY_TBL(l_count).party_id;
5371 END IF;
5372 END IF;
5373 END LOOP;
5374 IF l_owner_count <> 1 THEN
5375 FND_MESSAGE.SET_NAME('CSI','CSI_API_INVALID_OWNER_EXISTS');
5376 FND_MESSAGE.SET_TOKEN('OWNER',l_owner);
5377 FND_MSG_PUB.Add;
5378 RAISE fnd_api.g_exc_error;
5379 END IF;
5380 --
5381 IF csi_datastructures_pub.g_install_param_rec.fetch_flag IS NULL THEN
5382 csi_gen_utility_pvt.populate_install_param_rec;
5383 END IF;
5384 --
5385 l_int_party_id := csi_datastructures_pub.g_install_param_rec.internal_party_id;
5386 --
5387 IF l_int_party_id IS NULL THEN
5388 FND_MESSAGE.SET_NAME('CSI','CSI_API_UNINSTALLED_PARAMETER');
5389 FND_MSG_PUB.ADD;
5390 RAISE FND_API.G_EXC_ERROR;
5391 END IF;
5392 --
5393 -- Start code addition for eam integration
5394 /* Commented code for bug 4906588
5395 IF l_eam_item
5396 THEN
5397 p_instance_rec.ACCOUNTING_CLASS_CODE := 'ASSET';
5398 ELSE
5399 */
5400 -- End code addition for eam integration
5401 IF l_owner = l_int_party_id THEN
5402 IF p_asset_tbl.COUNT > 0 THEN
5403 p_instance_rec.ACCOUNTING_CLASS_CODE := 'ASSET';
5404 ELSIF p_instance_rec.location_type_code = 'WIP' THEN
5405 p_instance_rec.ACCOUNTING_CLASS_CODE := 'WIP';
5406 ELSIF p_instance_rec.location_type_code = 'PROJECT' THEN
5407 p_instance_rec.ACCOUNTING_CLASS_CODE := 'PROJECT';
5408 ELSE
5409 p_instance_rec.ACCOUNTING_CLASS_CODE := 'INV';
5410 END IF;
5411 ELSE
5412 IF ((p_instance_rec.accounting_class_code IS NULL) OR
5413 (p_instance_rec.accounting_class_code = FND_API.G_MISS_CHAR)) THEN
5414 p_instance_rec.accounting_class_code := 'CUST_PROD';
5415 ELSE
5416 IF ((p_instance_rec.accounting_class_code = 'WIP') OR
5417 (p_instance_rec.accounting_class_code = 'PROJECT')) THEN
5418 FND_MESSAGE.SET_NAME('CSI','CSI_API_INVALID_ACCOUNT_CLASS');
5419 FND_MSG_PUB.Add;
5420 RAISE FND_API.G_EXC_ERROR;
5421 END IF;
5422 END IF;
5423 END IF;
5424 -- END IF;
5425 END IF;
5426
5427 --validation for owner uniqueness
5428 FOR l_count IN p_party_tbl.FIRST..p_party_tbl.LAST LOOP
5429 IF p_party_tbl.EXISTS(l_count) THEN
5430 IF p_party_tbl(l_count).relationship_type_code = 'OWNER' THEN
5431 l_party_owner_rec := p_party_tbl(l_count);
5432 END IF;
5433 END IF;
5434 END LOOP;
5435
5436 --Changes for bug 10114652
5437 IF(nvl(p_txn_rec.inv_material_transaction_id, fnd_api.g_miss_num) <> fnd_api.g_miss_num) THEN
5438 BEGIN
5439 SELECT transaction_type_id INTO l_transaction_type_id
5440 FROM mtl_material_transactions
5441 WHERE transaction_id = p_txn_rec.inv_material_transaction_id;
5442 EXCEPTION
5443 WHEN NO_DATA_FOUND THEN
5444 csi_gen_utility_pvt.put_line('No data Found while fetching txn type id, from Inv Mtl txn id');
5445 RAISE FND_API.G_EXC_ERROR;
5446 WHEN OTHERS THEN
5447 csi_gen_utility_pvt.put_line('Other Exception while fetching txn type id, from Inv Mtl txn id');
5448 RAISE FND_API.G_EXC_ERROR;
5449 END;
5450 csi_gen_utility_pvt.put_line('Serial Tagging Control before API call 1 - '||l_serial_tagged);
5451 csi_gen_utility_pvt.put_line('inventory_item_id : ' || p_instance_rec.inventory_item_id);
5452 csi_gen_utility_pvt.put_line('inv_organization_id : ' || p_instance_rec.inv_organization_id);
5453 csi_gen_utility_pvt.put_line('transaction_type_id: '||l_transaction_type_id);
5454
5455 -- Get serial tagging control
5456 l_serial_tagged := inv_cache.get_serial_tagged (
5457 p_inventory_item_id => p_instance_rec.inventory_item_id,
5458 p_organization_id => p_instance_rec.inv_organization_id,
5459 p_transaction_type_id => l_transaction_type_id);
5460 END IF;
5461
5462 csi_gen_utility_pvt.put_line('Serial Tagging Control - '||l_serial_tagged);
5463
5464 IF l_serial_tagged <> 2 THEN
5465 csi_gen_utility_pvt.put_line('l_serial_tagged is not 2');
5466 IF NOT csi_item_instance_vld_pvt.Validate_Uniqueness
5467 (p_instance_rec => p_instance_rec,
5468 p_party_rec => l_party_owner_rec,
5469 p_srl_control_code => l_serial_control,
5470 p_csi_txn_type_id => p_txn_rec.transaction_type_id) THEN
5471
5472 RAISE FND_API.G_EXC_ERROR;
5473 END IF;
5474 END IF;
5475 -- validating the effective active start date
5476 IF ((p_instance_rec.active_start_date = FND_API.G_MISS_DATE) OR
5477 (p_instance_rec.active_start_date IS NULL)) THEN
5478 p_instance_rec.active_start_date := SYSDATE;
5479 END IF;
5480
5481 IF (p_instance_rec.active_end_date = FND_API.G_MISS_DATE) THEN
5482 p_instance_rec.active_end_date := NULL;
5483 END IF;
5484
5485 IF NOT (csi_item_instance_vld_pvt.Is_StartDate_Valid
5486 (p_instance_rec.active_start_date,
5487 p_instance_rec.active_end_date
5488 )) THEN
5489 RAISE FND_API.G_EXC_ERROR;
5490 END IF;
5491
5492 --Check whether the active start date is > sysdate.
5493 IF ((p_instance_rec.active_start_date IS NOT NULL) AND
5494 (p_instance_rec.active_start_date <> FND_API.G_MISS_DATE)) AND
5495 (p_instance_rec.active_start_date > SYSDATE)
5496 THEN
5497 FND_MESSAGE.SET_NAME('CSI','CSI_API_INSTANCE_START_DATE');
5498 FND_MSG_PUB.Add;
5499 RAISE FND_API.G_EXC_ERROR;
5500 END IF;
5501
5502 -- validating the effective active start date
5503 IF NOT (csi_item_instance_vld_pvt.Is_EndDate_Valid
5504 (p_instance_rec.active_start_date,
5505 p_instance_rec.active_end_date
5506 )) THEN
5507 RAISE FND_API.G_EXC_ERROR;
5508 END IF;
5509
5510 --validation for the instance condition id
5511 l_valid_flag := 'Y';
5512 l_exists_flag := 'N';
5513 IF p_instance_rec.instance_condition_id is not null AND
5514 p_instance_rec.instance_condition_id <> FND_API.G_MISS_NUM then
5515 IF p_generic_id_tbl.count > 0 then
5516 For gen_count in p_generic_id_tbl.FIRST .. p_generic_id_tbl.LAST
5517 LOOP
5518 IF p_generic_id_tbl(gen_count).generic_id = p_instance_rec.instance_condition_id AND
5519 p_generic_id_tbl(gen_count).id_type = 'INS_CONDITION' then
5520 l_valid_flag := p_generic_id_tbl(gen_count).valid_flag;
5521 l_exists_flag := 'Y';
5522 exit;
5523 END IF;
5524 END LOOP;
5525 --
5526 IF l_valid_flag <> 'Y' THEN
5527 FND_MESSAGE.SET_NAME('CSI','CSI_API_INVALID_ITEM_CONDITION');
5528 FND_MESSAGE.SET_TOKEN('INSTANCE_CONDITION_ID',p_instance_rec.instance_condition_id);
5529 FND_MSG_PUB.Add;
5530 RAISE fnd_api.g_exc_error;
5531 END IF;
5532 END IF;
5533 --
5534 IF l_exists_flag = 'N' THEN
5535 p_ins_count_rec.generic_count := p_ins_count_rec.generic_count + 1;
5536 p_generic_id_tbl(p_ins_count_rec.generic_count).generic_id := p_instance_rec.instance_condition_id;
5537 p_generic_id_tbl(p_ins_count_rec.generic_count).id_type := 'INS_CONDITION';
5538 csi_item_instance_vld_pvt.Is_Valid_Condition
5539 (
5540 p_instance_condition_id => p_instance_rec.instance_condition_id,
5541 p_creation_complete_flag => p_instance_rec.creation_complete_flag,
5542 l_return_value => l_return_value
5543 );
5544 IF l_return_value = FALSE THEN
5545 p_generic_id_tbl(p_ins_count_rec.generic_count).valid_flag := 'N';
5546 RAISE fnd_api.g_exc_error;
5547 ELSE
5548 p_generic_id_tbl(p_ins_count_rec.generic_count).valid_flag := 'Y';
5549 END IF;
5550 END IF;
5551 END IF;
5552 --
5553 --validation for the instance status id
5554 l_valid_flag := 'Y';
5555 l_exists_flag := 'N';
5556 IF ((p_instance_rec.instance_status_id IS NULL) OR
5557 (p_instance_rec.instance_status_id = FND_API.G_MISS_NUM)) THEN
5558 l_instance_status := FND_PROFILE.VALUE('CSI_DEFAULT_INSTANCE_STATUS');
5559 BEGIN
5560 SELECT instance_status_id,terminated_flag
5561 INTO p_instance_rec.instance_status_id
5562 ,l_terminated_flag
5563 FROM csi_instance_statuses
5564 WHERE name = l_instance_status;
5565 --
5566 IF nvl(l_terminated_flag,'N') = 'Y' THEN
5567 FND_MESSAGE.SET_NAME('CSI','CSI_API_STATUS_NOT_ALLOWED');
5568 FND_MESSAGE.SET_TOKEN('INSTANCE_STATUS',p_instance_rec.instance_status_id);
5569 FND_MSG_PUB.Add;
5570 RAISE FND_API.G_EXC_ERROR;
5571 END IF;
5572 EXCEPTION
5573 WHEN NO_DATA_FOUND THEN
5574 FND_MESSAGE.SET_NAME('CSI','CSI_API_INVALID_STATUS_ID');
5575 FND_MESSAGE.SET_TOKEN('INSTANCE_STATUS',p_instance_rec.instance_status_id);
5576 FND_MSG_PUB.Add;
5577 RAISE FND_API.G_EXC_ERROR;
5578 END;
5579 ELSIF (p_instance_rec.instance_status_id = 1) THEN
5580 FND_MESSAGE.SET_NAME('CSI','CSI_API_STATUS_NOT_ALLOWED');
5581 FND_MESSAGE.SET_TOKEN('INSTANCE_STATUS',p_instance_rec.instance_status_id);
5582 FND_MSG_PUB.Add;
5583 RAISE FND_API.G_EXC_ERROR;
5584 ELSE
5585 IF p_generic_id_tbl.count > 0 THEN
5586 For gen_count in p_generic_id_tbl.FIRST .. p_generic_id_tbl.LAST
5587 LOOP
5588 IF p_generic_id_tbl(gen_count).generic_id = p_instance_rec.instance_status_id AND
5589 p_generic_id_tbl(gen_count).id_type = 'INS_STATUS' THEN
5590 l_valid_flag := p_generic_id_tbl(gen_count).valid_flag;
5591 l_terminated_flag := p_generic_id_tbl(gen_count).terminated_flag;
5592 l_exists_flag := 'Y';
5593 exit;
5594 END IF;
5595 END LOOP;
5596 --
5597 IF l_valid_flag <> 'Y' THEN
5598 FND_MESSAGE.SET_NAME('CSI','CSI_API_INVALID_STATUS_ID');
5599 FND_MESSAGE.SET_TOKEN('INSTANCE_STATUS',p_instance_rec.instance_status_id);
5600 FND_MSG_PUB.Add;
5601 RAISE FND_API.G_EXC_ERROR;
5602 END IF;
5603 --
5604 IF nvl(l_terminated_flag,'N') = 'Y' THEN
5605 FND_MESSAGE.SET_NAME('CSI','CSI_API_STATUS_NOT_ALLOWED');
5606 FND_MESSAGE.SET_TOKEN('INSTANCE_STATUS',p_instance_rec.instance_status_id);
5607 FND_MSG_PUB.Add;
5608 RAISE FND_API.G_EXC_ERROR;
5609 END IF;
5610 END IF;
5611 --
5612 IF l_exists_flag <> 'Y' THEN
5613 p_ins_count_rec.generic_count := p_ins_count_rec.generic_count + 1;
5614 p_generic_id_tbl(p_ins_count_rec.generic_count).generic_id := p_instance_rec.instance_status_id;
5615 p_generic_id_tbl(p_ins_count_rec.generic_count).id_type := 'INS_STATUS';
5616 Begin
5617 select terminated_flag
5618 into l_terminated_flag
5619 from CSI_INSTANCE_STATUSES
5620 where instance_status_id = p_instance_rec.instance_status_id;
5621 --
5622 p_generic_id_tbl(p_ins_count_rec.generic_count).valid_flag := 'Y';
5623 p_generic_id_tbl(p_ins_count_rec.generic_count).terminated_flag := l_terminated_flag;
5624 --
5625 IF nvl(l_terminated_flag,'N') = 'Y' THEN
5626 FND_MESSAGE.SET_NAME('CSI','CSI_API_STATUS_NOT_ALLOWED');
5627 FND_MESSAGE.SET_TOKEN('INSTANCE_STATUS',p_instance_rec.instance_status_id);
5628 FND_MSG_PUB.Add;
5629 RAISE FND_API.G_EXC_ERROR;
5630 END IF;
5631 Exception
5632 when others then
5633 p_generic_id_tbl(p_ins_count_rec.generic_count).valid_flag := 'N';
5634 p_generic_id_tbl(p_ins_count_rec.generic_count).terminated_flag := NULL;
5635 FND_MESSAGE.SET_NAME('CSI','CSI_API_INVALID_STATUS_ID');
5636 FND_MESSAGE.SET_TOKEN('INSTANCE_STATUS',p_instance_rec.instance_status_id);
5637 FND_MSG_PUB.Add;
5638 RAISE FND_API.G_EXC_ERROR;
5639 End;
5640 END IF;
5641 END IF;
5642
5643 --validation for the system id
5644 l_valid_flag := 'Y';
5645 l_exists_flag := 'N';
5646 IF p_instance_rec.system_id is not null AND
5647 p_instance_rec.system_id <> FND_API.G_MISS_NUM THEN
5648 IF p_generic_id_tbl.count > 0 then
5649 For gen_count in p_generic_id_tbl.FIRST .. p_generic_id_tbl.LAST
5650 LOOP
5651 IF p_generic_id_tbl(gen_count).generic_id = p_instance_rec.system_id AND
5652 p_generic_id_tbl(gen_count).id_type = 'SYSTEM' then
5653 l_valid_flag := p_generic_id_tbl(gen_count).valid_flag;
5654 l_exists_flag := 'Y';
5655 exit;
5656 END IF;
5657 END LOOP;
5658 --
5659 IF l_valid_flag <> 'Y' THEN
5660 FND_MESSAGE.SET_NAME('CSI','CSI_API_INVALID_SYSTEM_ID');
5661 FND_MESSAGE.SET_TOKEN('SYSTEM_ID',p_instance_rec.system_id);
5662 FND_MSG_PUB.Add;
5663 RAISE fnd_api.g_exc_error;
5664 END IF;
5665 END IF;
5666 --
5667 IF l_exists_flag <> 'Y' THEN
5668 p_ins_count_rec.generic_count := p_ins_count_rec.generic_count + 1;
5669 p_generic_id_tbl(p_ins_count_rec.generic_count).generic_id := p_instance_rec.system_id;
5670 p_generic_id_tbl(p_ins_count_rec.generic_count).id_type := 'SYSTEM';
5671 IF NOT csi_Item_Instance_Vld_pvt.Is_Valid_System_id(
5672 p_instance_rec.system_id) THEN
5673 p_generic_id_tbl(p_ins_count_rec.generic_count).valid_flag := 'N';
5674 RAISE fnd_api.g_exc_error;
5675 ELSE
5676 p_generic_id_tbl(p_ins_count_rec.generic_count).valid_flag := 'Y';
5677 END IF;
5678 END IF;
5679 END IF;
5680
5681 --validation for the instance type
5682 l_valid_flag := 'Y';
5683 l_exists_flag := 'N';
5684 IF ((p_instance_rec.instance_type_code IS NOT NULL) AND
5685 (p_instance_rec.instance_type_code <> FND_API.G_MISS_CHAR)) THEN
5686 IF p_lookup_tbl.count > 0 then
5687 For lookup_count in p_lookup_tbl.FIRST .. p_lookup_tbl.LAST
5688 LOOP
5689 IF p_lookup_tbl(lookup_count).lookup_type = 'INSTANCE_TYPE' AND
5690 p_lookup_tbl(lookup_count).lookup_code = p_instance_rec.instance_type_code THEN
5691 l_valid_flag := p_lookup_tbl(lookup_count).valid_flag;
5692 l_exists_flag := 'Y';
5693 exit;
5694 END IF;
5695 END LOOP;
5696 --
5697 IF l_valid_flag <> 'Y' THEN
5698 FND_MESSAGE.SET_NAME('CSI','CSI_API_INVALID_INSTANCE_TYPE');
5699 FND_MESSAGE.SET_TOKEN('INSTANCE_TYPE_CODE',p_instance_rec.instance_type_code);
5700 FND_MSG_PUB.Add;
5701 RAISE fnd_api.g_exc_error;
5702 END IF;
5703 END IF;
5704 --
5705 IF l_exists_flag <> 'Y' THEN
5706 p_ins_count_rec.lookup_count := p_ins_count_rec.lookup_count + 1;
5707 p_lookup_tbl(p_ins_count_rec.lookup_count).lookup_type := 'INSTANCE_TYPE';
5708 p_lookup_tbl(p_ins_count_rec.lookup_count).lookup_code := p_instance_rec.instance_type_code;
5709 IF NOT csi_Item_Instance_Vld_pvt.Is_Valid_Instance_Type(
5710 p_instance_rec.instance_type_code) THEN
5711 p_lookup_tbl(p_ins_count_rec.lookup_count).valid_flag := 'N';
5712 RAISE fnd_api.g_exc_error;
5713 ELSE
5714 p_lookup_tbl(p_ins_count_rec.lookup_count).valid_flag := 'Y';
5715 END IF;
5716 END IF;
5717 END IF;
5718 --validation for the instance usage code
5719 l_valid_flag := 'Y';
5720 l_exists_flag := 'N';
5721 IF ((p_instance_rec.instance_usage_code IS NOT NULL) AND
5722 (p_instance_rec.instance_usage_code <> FND_API.G_MISS_CHAR)) THEN
5723 IF p_lookup_tbl.count > 0 THEN
5724 For lookup_count in p_lookup_tbl.FIRST .. p_lookup_tbl.LAST
5725 LOOP
5726 IF p_lookup_tbl(lookup_count).lookup_type = 'INSTANCE_USAGE' AND
5727 p_lookup_tbl(lookup_count).lookup_code = p_instance_rec.instance_usage_code THEN
5728 l_valid_flag := p_lookup_tbl(lookup_count).valid_flag;
5729 l_exists_flag := 'Y';
5730 exit;
5731 END IF;
5732 End Loop;
5733 --
5734 if l_valid_flag <> 'Y' then
5735 FND_MESSAGE.SET_NAME('CSI','CSI_API_INVALID_USAGE_CODE');
5736 FND_MESSAGE.SET_TOKEN('INSTANCE_USAGE_CODE',p_instance_rec.instance_usage_code);
5737 FND_MSG_PUB.Add;
5738 RAISE fnd_api.g_exc_error;
5739 end if;
5740 End if;
5741 --
5742 IF l_exists_flag <> 'Y' THEN
5743 p_ins_count_rec.lookup_count := p_ins_count_rec.lookup_count + 1;
5744 p_lookup_tbl(p_ins_count_rec.lookup_count).lookup_type := 'INSTANCE_USAGE';
5745 p_lookup_tbl(p_ins_count_rec.lookup_count).lookup_code := p_instance_rec.instance_usage_code;
5746 IF NOT csi_Item_Instance_Vld_pvt.Valid_Inst_Usage_Code(
5747 p_instance_rec.instance_usage_code) THEN
5748 p_lookup_tbl(p_ins_count_rec.lookup_count).valid_flag := 'N';
5749 RAISE fnd_api.g_exc_error;
5750 ELSE
5751 p_lookup_tbl(p_ins_count_rec.lookup_count).valid_flag := 'Y';
5752 END IF;
5753 END IF;
5754 END IF;
5755 -- Addition of columns for FA Integration
5756 --validation for the operational status
5757 l_valid_flag := 'Y';
5758 l_exists_flag := 'N';
5759 IF ((p_instance_rec.operational_status_code IS NOT NULL) AND
5760 (p_instance_rec.operational_status_code <> FND_API.G_MISS_CHAR)) THEN
5761 IF p_lookup_tbl.count > 0 THEN
5762 For lookup_count in p_lookup_tbl.FIRST .. p_lookup_tbl.LAST
5763 LOOP
5764 IF p_lookup_tbl(lookup_count).lookup_type = 'OPERATIONAL_STATUS' AND
5765 p_lookup_tbl(lookup_count).lookup_code = p_instance_rec.operational_status_code
5766 THEN
5767 l_valid_flag := p_lookup_tbl(lookup_count).valid_flag;
5768 l_exists_flag := 'Y';
5769 exit;
5770 END IF;
5771 End Loop;
5772 --
5773 if l_valid_flag <> 'Y' then
5774 FND_MESSAGE.SET_NAME('CSI','CSI_OPERATIONAL_STATUS_CODE');
5775 FND_MESSAGE.SET_TOKEN('OPERATIONAL_STATUS_CODE',p_instance_rec.operational_status_code);
5776 FND_MSG_PUB.Add;
5777 RAISE fnd_api.g_exc_error;
5778 end if;
5779 End if;
5780 --
5781 IF l_exists_flag <> 'Y' THEN
5782 p_ins_count_rec.lookup_count := p_ins_count_rec.lookup_count + 1;
5783 p_lookup_tbl(p_ins_count_rec.lookup_count).lookup_type := 'OPERATIONAL_STATUS';
5784 p_lookup_tbl(p_ins_count_rec.lookup_count).lookup_code := p_instance_rec.operational_status_code;
5785 IF NOT csi_Item_Instance_Vld_pvt.Valid_operational_status(
5786 p_instance_rec.operational_status_code) THEN
5787 p_lookup_tbl(p_ins_count_rec.lookup_count).valid_flag := 'N';
5788 RAISE fnd_api.g_exc_error;
5789 ELSE
5790 p_lookup_tbl(p_ins_count_rec.lookup_count).valid_flag := 'Y';
5791 END IF;
5792 END IF;
5793 ELSE
5794 IF ((p_instance_rec.operational_status_code IS NULL) OR
5795 (p_instance_rec.operational_status_code = FND_API.G_MISS_CHAR))
5796 THEN
5797 p_instance_rec.operational_status_code:='NOT_USED';
5798 END IF;
5799 END IF;
5800
5801
5802 -- Following code has been added for operational_status_code
5803 -- If owner is Internal then
5804
5805
5806 IF l_owner = l_int_party_id
5807 THEN
5808 IF p_instance_rec.location_type_code IN ('WIP','IN_TRANSIT','VENDOR_SITE')
5809 AND p_instance_rec.operational_status_code NOT IN ('NOT_USED','OUT_OF_SERVICE')
5810 THEN
5811 p_instance_rec.operational_status_code := 'NOT_USED';
5812 ELSIF p_instance_rec.location_type_code IN ('PROJECT')
5813 AND p_instance_rec.operational_status_code ='IN_SERVICE'
5814 THEN
5815 p_instance_rec.operational_status_code := 'NOT_USED';
5816 ELSIF p_instance_rec.location_type_code IN ('INVENTORY','HZ_LOCATIONS')
5817 AND p_instance_rec.operational_status_code NOT IN ('NOT_USED','INSTALLED','OUT_OF_SERVICE','IN_SERVICE')
5818 THEN
5819 p_instance_rec.operational_status_code := 'NOT_USED';
5820 END IF;
5821 ELSE -- Owner is an external party
5822 IF p_instance_rec.location_type_code IN ('WIP','IN_TRANSIT','VENDOR_SITE')
5823 AND p_instance_rec.operational_status_code NOT IN ('NOT_USED','OUT_OF_SERVICE')
5824 THEN
5825 p_instance_rec.operational_status_code := 'NOT_USED';
5826 ELSIF p_instance_rec.location_type_code ='PROJECT'
5827 AND p_instance_rec.operational_status_code ='IN_SERVICE'
5828 THEN
5829 p_instance_rec.operational_status_code := 'NOT_USED';
5830 ELSIF p_instance_rec.location_type_code IN ('INVENTORY','HZ_LOCATIONS')
5831 AND p_instance_rec.operational_status_code NOT IN ('NOT_USED','INSTALLED','OUT_OF_SERVICE','IN_SERVICE')
5832 THEN
5833 p_instance_rec.operational_status_code := 'NOT_USED';
5834 END IF;
5835 END IF;
5836
5837
5838 IF ((p_instance_rec.purchase_currency_code IS NOT NULL) AND
5839 (p_instance_rec.purchase_currency_code <> FND_API.G_MISS_CHAR)
5840 )
5841 THEN
5842 p_instance_rec.purchase_currency_code := UPPER(p_instance_rec.purchase_currency_code);
5843 IF NOT csi_item_instance_vld_pvt.valid_currency_code
5844 (p_currency_code => p_instance_rec.purchase_currency_code)
5845 THEN
5846 RAISE fnd_api.g_exc_error;
5847 END IF;
5848 END IF;
5849
5850 IF ((p_instance_rec.payables_currency_code IS NOT NULL) AND
5851 (p_instance_rec.payables_currency_code <> FND_API.G_MISS_CHAR)
5852 )
5853 THEN
5854 p_instance_rec.payables_currency_code := UPPER(p_instance_rec.payables_currency_code);
5855 IF NOT csi_item_instance_vld_pvt.valid_currency_code
5856 (p_currency_code => p_instance_rec.payables_currency_code)
5857 THEN
5858 RAISE fnd_api.g_exc_error;
5859 END IF;
5860 END IF;
5861
5862 IF ((p_instance_rec.sales_currency_code IS NOT NULL) AND
5863 (p_instance_rec.sales_currency_code <> FND_API.G_MISS_CHAR)
5864 )
5865 THEN
5866 p_instance_rec.sales_currency_code := UPPER(p_instance_rec.sales_currency_code);
5867 IF NOT csi_item_instance_vld_pvt.valid_currency_code
5868 (p_currency_code => p_instance_rec.sales_currency_code)
5869 THEN
5870 RAISE fnd_api.g_exc_error;
5871 END IF;
5872 END IF;
5873
5874 IF (
5875 ((p_instance_rec.purchase_currency_code IS NOT NULL AND
5876 p_instance_rec.purchase_currency_code <> FND_API.G_MISS_CHAR) AND
5877 (p_instance_rec.purchase_unit_price IS NULL OR
5878 p_instance_rec.purchase_unit_price = FND_API.G_MISS_NUM))
5879 OR
5880 ((p_instance_rec.purchase_currency_code IS NULL OR
5881 p_instance_rec.purchase_currency_code = FND_API.G_MISS_CHAR) AND
5882 (p_instance_rec.purchase_unit_price IS NOT NULL AND
5883 p_instance_rec.purchase_unit_price <> FND_API.G_MISS_NUM))
5884 OR
5885 ((p_instance_rec.payables_currency_code IS NOT NULL AND
5886 p_instance_rec.payables_currency_code <> FND_API.G_MISS_CHAR) AND
5887 (p_instance_rec.payables_unit_price IS NULL OR
5888 p_instance_rec.payables_unit_price = FND_API.G_MISS_NUM))
5889 OR
5890 ((p_instance_rec.payables_currency_code IS NULL OR
5891 p_instance_rec.payables_currency_code = FND_API.G_MISS_CHAR) AND
5892 (p_instance_rec.payables_unit_price IS NOT NULL AND
5893 p_instance_rec.payables_unit_price <> FND_API.G_MISS_NUM))
5894 OR
5895 ((p_instance_rec.sales_currency_code IS NOT NULL AND
5896 p_instance_rec.sales_currency_code <> FND_API.G_MISS_CHAR) AND
5897 (p_instance_rec.sales_unit_price IS NULL OR
5898 p_instance_rec.sales_unit_price = FND_API.G_MISS_NUM))
5899 OR
5900 ((p_instance_rec.sales_currency_code IS NULL OR
5901 p_instance_rec.sales_currency_code = FND_API.G_MISS_CHAR) AND
5902 (p_instance_rec.sales_unit_price IS NOT NULL AND
5903 p_instance_rec.sales_unit_price <> FND_API.G_MISS_NUM))
5904 )
5905 THEN
5906 FND_MESSAGE.SET_NAME('CSI','CSI_NO_PRICE_OR_CODE');
5907 FND_MSG_PUB.Add;
5908 RAISE fnd_api.g_exc_error;
5909 END IF;
5910 -- End addition of columns for FA Integration
5911
5912 --validation for customer view flag
5913 IF ((p_instance_rec.CUSTOMER_VIEW_FLAG IS NULL) OR
5914 (p_instance_rec.CUSTOMER_VIEW_FLAG = FND_API.G_MISS_CHAR)) THEN
5915 p_instance_rec.CUSTOMER_VIEW_FLAG := 'Y';
5916 END IF;
5917
5918 --validation for merchant view flag
5919 IF ((p_instance_rec.MERCHANT_VIEW_FLAG IS NULL) OR
5920 (p_instance_rec.MERCHANT_VIEW_FLAG = FND_API.G_MISS_CHAR)) THEN
5921 p_instance_rec.MERCHANT_VIEW_FLAG := 'N';
5922 END IF;
5923
5924 --validation for sellable flag
5925 IF ((p_instance_rec.SELLABLE_FLAG IS NULL) OR
5926 (p_instance_rec.SELLABLE_FLAG = FND_API.G_MISS_CHAR)) THEN
5927 p_instance_rec.SELLABLE_FLAG := 'Y';
5928 END IF;
5929
5930 -- Begin Add Code for Siebel Genesis Project
5931 --validation for source_code
5932 IF ((p_instance_rec.SOURCE_CODE IS NULL) OR
5933 (p_instance_rec.SOURCE_CODE = FND_API.G_MISS_CHAR)) THEN
5934 p_instance_rec.SOURCE_CODE := 'ORCL';
5935 END IF;
5936 -- End Add Code for Siebel Genesis Project
5937
5938 -- Validation of Creation_completion_flag
5939 IF ((p_instance_rec.instance_id IS NOT NULL)
5940 AND (p_instance_rec.inventory_item_id IS NOT NULL)
5941 AND (p_instance_rec.inv_master_organization_id IS NOT NULL)
5942 -- AND (((l_serial_control IN (2,5,6))
5943 AND (((csi_Item_Instance_Vld_pvt.Is_treated_serialized
5944 ( p_serial_control_code => l_serial_control
5945 ,p_location_type_code => p_instance_rec.location_type_code
5946 ,p_transaction_type_id => p_txn_rec.transaction_type_id
5947 )) --Added by sk on 09/13/01
5948 AND ((p_instance_rec.serial_number IS NOT NULL)
5949 AND (p_instance_rec.serial_number <> FND_API.G_MISS_CHAR)))
5950 -- OR (l_serial_control NOT IN (2,5,6)))
5951 OR ( NOT (csi_Item_Instance_Vld_pvt.Is_treated_serialized
5952 ( p_serial_control_code => l_serial_control
5953 ,p_location_type_code => p_instance_rec.location_type_code
5954 ,p_transaction_type_id => p_txn_rec.transaction_type_id
5955 )) ) ) --Added by sk on 09/13/01
5956 AND (((l_lot_control = 2)
5957 AND ((p_instance_rec.lot_number IS NOT NULL)
5958 AND (p_instance_rec.lot_number <> FND_API.G_MISS_CHAR)))
5959 OR (l_lot_control <> 2))
5960 AND (p_instance_rec.instance_status_id IS NOT NULL)
5961 AND (((l_rev_control = 2)
5962 AND ((p_instance_rec.inventory_revision IS NOT NULL)
5963 AND (p_instance_rec.inventory_revision <> FND_API.G_MISS_CHAR)))
5964 OR (l_rev_control <> 2))
5965 AND ((p_instance_rec.location_type_code IS NOT NULL) AND
5966 (p_instance_rec.location_type_code <> FND_API.G_MISS_CHAR)))
5967 THEN
5968 p_instance_rec.creation_complete_flag := 'Y';
5969 ELSE
5970 p_instance_rec.creation_complete_flag := 'N';
5971 END IF;
5972
5973 IF p_instance_rec.vld_organization_id IS NOT NULL
5974 AND p_instance_rec.vld_organization_id <> fnd_api.g_miss_num
5975 THEN
5976 l_last_vld_organization_id := p_instance_rec.vld_organization_id;
5977 ELSE
5978 l_last_vld_organization_id := p_instance_rec.inv_master_organization_id;
5979 END IF;
5980
5981 -- Validation for install location
5982 -- Start addition by sk on 02/06/02 for bug 2213922
5983 IF p_instance_rec.install_location_type_code IS NOT NULL AND
5984 p_instance_rec.install_location_type_code <> fnd_api.g_miss_char
5985 THEN
5986 IF p_instance_rec.install_location_type_code = 'HZ_PARTY_SITES' OR
5987 p_instance_rec.install_location_type_code = 'HZ_LOCATIONS' OR
5988 p_instance_rec.install_location_type_code = 'VENDOR_SITE' OR
5989 p_instance_rec.install_location_type_code = 'INTERNAL_SITE' OR --4926773
5990 p_instance_rec.install_location_type_code = 'HR_LOCATIONS'
5991 THEN
5992 IF p_instance_rec.install_location_id IS NULL OR
5993 p_instance_rec.install_location_id = FND_API.G_MISS_NUM THEN
5994 FND_MESSAGE.SET_NAME('CSI','CSI_INVALID_INSTALL_LOC');
5995 FND_MSG_PUB.ADD;
5996 RAISE fnd_api.g_exc_error;
5997 END IF;
5998 --
5999 l_exists_flag := 'N';
6000 l_valid_flag := 'Y';
6001 IF p_location_tbl.count > 0 THEN
6002 For loc_row in p_location_tbl.FIRST .. p_location_tbl.LAST
6003 Loop
6004 IF p_location_tbl(loc_row).location_type_code = p_instance_rec.install_location_type_code
6005 AND p_location_tbl(loc_row).location_id = p_instance_rec.install_location_id THEN
6006 l_exists_flag := 'Y';
6007 l_valid_flag := p_location_tbl(loc_row).valid_flag;
6008 EXIT;
6009 END IF;
6010 End Loop;
6011 --
6012 IF l_valid_flag <> 'Y' THEN
6013 FND_MESSAGE.SET_NAME('CSI','CSI_INVALID_INSTALL_LOC');
6014 FND_MSG_PUB.ADD;
6015 RAISE fnd_api.g_exc_error;
6016 END IF;
6017 END IF;
6018 --
6019 IF l_exists_flag <> 'Y' THEN
6020 p_ins_count_rec.location_count := p_ins_count_rec.location_count + 1;
6021 p_location_tbl(p_ins_count_rec.location_count).location_type_code :=
6022 p_instance_rec.install_location_type_code;
6023 p_location_tbl(p_ins_count_rec.location_count).location_id :=
6024 p_instance_rec.install_location_id;
6025 IF csi_item_instance_vld_pvt.Is_Valid_Location_ID
6026 (
6027 p_location_source_table => p_instance_rec.install_location_type_code
6028 ,p_location_id => p_instance_rec.install_location_id
6029 ) THEN
6030 p_location_tbl(p_ins_count_rec.location_count).valid_flag := 'Y';
6031 ELSE
6032 p_location_tbl(p_ins_count_rec.location_count).valid_flag := 'N';
6033 RAISE fnd_api.g_exc_error;
6034 END IF;
6035 END IF;
6036 ELSE
6037 FND_MESSAGE.SET_NAME('CSI','CSI_INVALID_INSTALL_LOC');
6038 FND_MSG_PUB.Add;
6039 RAISE FND_API.G_EXC_ERROR;
6040 END IF;
6041 END IF;
6042 csi_gen_utility_pvt.put_line('Before Insert row...');
6043 -- End addition by sk on 02/06/02 for bug 2213922
6044 IF p_called_from_grp <> fnd_api.g_true THEN
6045 -- Create a row in csi_item_instances
6046 CSI_ITEM_INSTANCES_PKG.Insert_Row
6047 ( px_INSTANCE_ID => p_instance_rec.INSTANCE_ID
6048 ,p_INSTANCE_NUMBER => p_instance_rec.INSTANCE_NUMBER
6049 ,p_EXTERNAL_REFERENCE => p_instance_rec.EXTERNAL_REFERENCE
6050 ,p_INVENTORY_ITEM_ID => p_instance_rec.INVENTORY_ITEM_ID
6051 ,p_INVENTORY_REVISION => p_instance_rec.INVENTORY_REVISION
6052 ,p_INV_MASTER_ORGANIZATION_ID => p_instance_rec.INV_MASTER_ORGANIZATION_ID
6053 ,p_SERIAL_NUMBER => p_instance_rec.SERIAL_NUMBER
6054 ,p_MFG_SERIAL_NUMBER_FLAG => p_instance_rec.MFG_SERIAL_NUMBER_FLAG
6055 ,p_LOT_NUMBER => p_instance_rec.LOT_NUMBER
6056 ,p_QUANTITY => p_instance_rec.QUANTITY
6057 ,p_UNIT_OF_MEASURE => p_instance_rec.UNIT_OF_MEASURE
6058 ,p_ACCOUNTING_CLASS_CODE => p_instance_rec.ACCOUNTING_CLASS_CODE
6059 ,p_INSTANCE_CONDITION_ID => p_instance_rec.INSTANCE_CONDITION_ID
6060 ,p_INSTANCE_STATUS_ID => p_instance_rec.INSTANCE_STATUS_ID
6061 ,p_CUSTOMER_VIEW_FLAG => p_instance_rec.CUSTOMER_VIEW_FLAG
6062 ,p_MERCHANT_VIEW_FLAG => p_instance_rec.MERCHANT_VIEW_FLAG
6063 ,p_SELLABLE_FLAG => p_instance_rec.SELLABLE_FLAG
6064 ,p_SYSTEM_ID => p_instance_rec.SYSTEM_ID
6065 ,p_INSTANCE_TYPE_CODE => p_instance_rec.INSTANCE_TYPE_CODE
6066 ,p_ACTIVE_START_DATE => p_instance_rec.ACTIVE_START_DATE
6067 ,p_ACTIVE_END_DATE => p_instance_rec.ACTIVE_END_DATE
6068 ,p_LOCATION_TYPE_CODE => p_instance_rec.LOCATION_TYPE_CODE
6069 ,p_LOCATION_ID => p_instance_rec.LOCATION_ID
6070 ,p_INV_ORGANIZATION_ID => p_instance_rec.INV_ORGANIZATION_ID
6071 ,p_INV_SUBINVENTORY_NAME => p_instance_rec.INV_SUBINVENTORY_NAME
6072 ,p_INV_LOCATOR_ID => p_instance_rec.INV_LOCATOR_ID
6073 ,p_PA_PROJECT_ID => p_instance_rec.PA_PROJECT_ID
6074 ,p_PA_PROJECT_TASK_ID => p_instance_rec.PA_PROJECT_TASK_ID
6075 ,p_IN_TRANSIT_ORDER_LINE_ID => p_instance_rec.IN_TRANSIT_ORDER_LINE_ID
6076 ,p_WIP_JOB_ID => p_instance_rec.WIP_JOB_ID
6077 ,p_PO_ORDER_LINE_ID => p_instance_rec.PO_ORDER_LINE_ID
6078 ,p_LAST_OE_ORDER_LINE_ID => p_instance_rec.LAST_OE_ORDER_LINE_ID
6079 ,p_LAST_OE_RMA_LINE_ID => p_instance_rec.LAST_OE_RMA_LINE_ID
6080 ,p_LAST_PO_PO_LINE_ID => p_instance_rec.LAST_PO_PO_LINE_ID
6081 ,p_LAST_OE_PO_NUMBER => p_instance_rec.LAST_OE_PO_NUMBER
6082 ,p_LAST_WIP_JOB_ID => p_instance_rec.LAST_WIP_JOB_ID
6083 ,p_LAST_PA_PROJECT_ID => p_instance_rec.LAST_PA_PROJECT_ID
6084 ,p_LAST_PA_TASK_ID => p_instance_rec.LAST_PA_TASK_ID
6085 ,p_LAST_OE_AGREEMENT_ID => p_instance_rec.LAST_OE_AGREEMENT_ID
6086 ,p_INSTALL_DATE => p_instance_rec.INSTALL_DATE
6087 ,p_MANUALLY_CREATED_FLAG => p_instance_rec.MANUALLY_CREATED_FLAG
6088 ,p_RETURN_BY_DATE => p_instance_rec.RETURN_BY_DATE
6089 ,p_ACTUAL_RETURN_DATE => p_instance_rec.ACTUAL_RETURN_DATE
6090 ,p_CREATION_COMPLETE_FLAG => p_instance_rec.CREATION_COMPLETE_FLAG
6091 ,p_COMPLETENESS_FLAG => p_instance_rec.COMPLETENESS_FLAG
6092 ,p_CONTEXT => p_instance_rec.CONTEXT
6093 ,p_ATTRIBUTE1 => p_instance_rec.ATTRIBUTE1
6094 ,p_ATTRIBUTE2 => p_instance_rec.ATTRIBUTE2
6095 ,p_ATTRIBUTE3 => p_instance_rec.ATTRIBUTE3
6096 ,p_ATTRIBUTE4 => p_instance_rec.ATTRIBUTE4
6097 ,p_ATTRIBUTE5 => p_instance_rec.ATTRIBUTE5
6098 ,p_ATTRIBUTE6 => p_instance_rec.ATTRIBUTE6
6099 ,p_ATTRIBUTE7 => p_instance_rec.ATTRIBUTE7
6100 ,p_ATTRIBUTE8 => p_instance_rec.ATTRIBUTE8
6101 ,p_ATTRIBUTE9 => p_instance_rec.ATTRIBUTE9
6102 ,p_ATTRIBUTE10 => p_instance_rec.ATTRIBUTE10
6103 ,p_ATTRIBUTE11 => p_instance_rec.ATTRIBUTE11
6104 ,p_ATTRIBUTE12 => p_instance_rec.ATTRIBUTE12
6105 ,p_ATTRIBUTE13 => p_instance_rec.ATTRIBUTE13
6106 ,p_ATTRIBUTE14 => p_instance_rec.ATTRIBUTE14
6107 ,p_ATTRIBUTE15 => p_instance_rec.ATTRIBUTE15
6108 ,p_CREATED_BY => FND_GLOBAL.USER_ID
6109 ,p_CREATION_DATE => SYSDATE
6110 ,p_LAST_UPDATED_BY => FND_GLOBAL.USER_ID
6111 ,p_LAST_UPDATE_DATE => SYSDATE
6112 ,p_LAST_UPDATE_LOGIN => FND_GLOBAL.CONC_LOGIN_ID
6113 ,p_OBJECT_VERSION_NUMBER => 1
6114 ,p_LAST_TXN_LINE_DETAIL_ID => p_instance_rec.LAST_TXN_LINE_DETAIL_ID
6115 ,p_INSTALL_LOCATION_TYPE_CODE => p_instance_rec.INSTALL_LOCATION_TYPE_CODE
6116 ,p_INSTALL_LOCATION_ID => p_instance_rec.INSTALL_LOCATION_ID
6117 ,p_INSTANCE_USAGE_CODE => p_instance_rec.INSTANCE_USAGE_CODE
6118 ,p_last_vld_organization_id => l_last_vld_organization_id
6119 ,p_CONFIG_INST_HDR_ID => p_instance_rec.CONFIG_INST_HDR_ID
6120 ,p_CONFIG_INST_REV_NUM => p_instance_rec.CONFIG_INST_REV_NUM
6121 ,p_CONFIG_INST_ITEM_ID => p_instance_rec.CONFIG_INST_ITEM_ID
6122 ,p_CONFIG_VALID_STATUS => p_instance_rec.CONFIG_VALID_STATUS
6123 ,p_INSTANCE_DESCRIPTION => p_instance_rec.INSTANCE_DESCRIPTION
6124 ,p_REQUEST_ID => p_instance_rec.REQUEST_ID
6125 ,p_PROGRAM_APPLICATION_ID => p_instance_rec.PROGRAM_APPLICATION_ID
6126 ,p_PROGRAM_ID => p_instance_rec.PROGRAM_ID
6127 ,p_PROGRAM_UPDATE_DATE => p_instance_rec.PROGRAM_UPDATE_DATE
6128 --start of parameters addition for eam integration--
6129 ,p_NETWORK_ASSET_FLAG => p_instance_rec.NETWORK_ASSET_FLAG
6130 ,p_MAINTAINABLE_FLAG => p_instance_rec.MAINTAINABLE_FLAG
6131 ,p_PN_LOCATION_ID => p_instance_rec.PN_LOCATION_ID
6132 ,p_ASSET_CRITICALITY_CODE => p_instance_rec.ASSET_CRITICALITY_CODE
6133 ,p_CATEGORY_ID => p_instance_rec.CATEGORY_ID
6134 ,p_EQUIPMENT_GEN_OBJECT_ID => p_instance_rec.EQUIPMENT_GEN_OBJECT_ID
6135 ,p_INSTANTIATION_FLAG => p_instance_rec.INSTANTIATION_FLAG
6136 ,p_LINEAR_LOCATION_ID => p_instance_rec.LINEAR_LOCATION_ID
6137 ,p_OPERATIONAL_LOG_FLAG => p_instance_rec.OPERATIONAL_LOG_FLAG
6138 ,p_CHECKIN_STATUS => p_instance_rec.CHECKIN_STATUS
6139 ,p_SUPPLIER_WARRANTY_EXP_DATE => p_instance_rec.SUPPLIER_WARRANTY_EXP_DATE
6140 ,p_ATTRIBUTE16 => p_instance_rec.ATTRIBUTE16
6141 ,p_ATTRIBUTE17 => p_instance_rec.ATTRIBUTE17
6142 ,p_ATTRIBUTE18 => p_instance_rec.ATTRIBUTE18
6143 ,p_ATTRIBUTE19 => p_instance_rec.ATTRIBUTE19
6144 ,p_ATTRIBUTE20 => p_instance_rec.ATTRIBUTE20
6145 ,p_ATTRIBUTE21 => p_instance_rec.ATTRIBUTE21
6146 ,p_ATTRIBUTE22 => p_instance_rec.ATTRIBUTE22
6147 ,p_ATTRIBUTE23 => p_instance_rec.ATTRIBUTE23
6148 ,p_ATTRIBUTE24 => p_instance_rec.ATTRIBUTE24
6149 ,p_ATTRIBUTE25 => p_instance_rec.ATTRIBUTE25
6150 ,p_ATTRIBUTE26 => p_instance_rec.ATTRIBUTE26
6151 ,p_ATTRIBUTE27 => p_instance_rec.ATTRIBUTE27
6152 ,p_ATTRIBUTE28 => p_instance_rec.ATTRIBUTE28
6153 ,p_ATTRIBUTE29 => p_instance_rec.ATTRIBUTE29
6154 ,p_ATTRIBUTE30 => p_instance_rec.ATTRIBUTE30
6155 --end of parameters addition for eam integration--
6156 -- Addition of columns for FA Integration
6157 ,p_PURCHASE_UNIT_PRICE => p_instance_rec.PURCHASE_UNIT_PRICE
6158 ,p_PURCHASE_CURRENCY_CODE => p_instance_rec.PURCHASE_CURRENCY_CODE
6159 ,p_PAYABLES_UNIT_PRICE => p_instance_rec.PAYABLES_UNIT_PRICE
6160 ,p_PAYABLES_CURRENCY_CODE => p_instance_rec.PAYABLES_CURRENCY_CODE
6161 ,p_SALES_UNIT_PRICE => p_instance_rec.SALES_UNIT_PRICE
6162 ,p_SALES_CURRENCY_CODE => p_instance_rec.SALES_CURRENCY_CODE
6163 ,p_OPERATIONAL_STATUS_CODE => p_instance_rec.OPERATIONAL_STATUS_CODE
6164 -- End addition of columns for FA Integration
6165 ,p_SOURCE_CODE => p_instance_rec.SOURCE_CODE -- Added Code for Siebel Genesis Project
6166 );
6167
6168
6169
6170 IF NVL(l_call_counters,'N') = 'Y' AND
6171 NVL(p_instance_rec.network_asset_flag,'N') <> 'Y' -- Added for 5219534
6172 THEN
6173 IF p_instance_rec.quantity = 1 THEN
6174 -- calling the Counters API to associate counters to an instance
6175 -- Added to restrict the counter instantiation for an item in 'INVENTORY',
6176 -- by rtalluri for the enh. 2308703
6177 IF NOT((l_serial_control IN (1,6)) AND
6178 (p_instance_rec.location_type_code = 'INVENTORY')) THEN
6179
6180 -- Since the replacement API CSI_COUNTER_TEMPLATE_PUB does not
6181 -- for CS_Counters_PUB.Ctr_Grp_Template_Exists
6182 -- does not provide a function Ctr_Grp_Template_Exists,
6183 -- Hence writing the following code...
6184 --l_counter_group_id := NULL;
6185 BEGIN
6186 SELECT count(*)
6187 INTO l_counter_group_id
6188 FROM csi_ctr_item_associations
6189 WHERE inventory_item_id = p_instance_rec.inventory_item_id
6190 AND ROWNUM = 1;
6191 EXCEPTION
6192 WHEN NO_DATA_FOUND THEN
6193 NULL;
6194 -- Too many rows exception will not arise
6195 -- as ctr API will make sure there will be only one record in
6196 -- csi_ctr_item_associations with a particular inv_id.
6197 END;
6198 -- R12 Changes ...
6199 /* IF CS_Counters_PUB.Ctr_Grp_Template_Exists(p_instance_rec.inventory_item_id) THEN
6200 CS_Counters_PUB.AutoInstantiate_Counters */
6201 IF l_counter_group_id <> 0
6202 THEN
6203 -- CS_Counters_PUB.AutoInstantiate_Counters
6204 csi_counter_template_pub.autoinstantiate_counters
6205 ( p_api_version => 1.0
6206 ,p_init_msg_list => FND_API.G_FALSE
6207 ,p_commit => FND_API.G_FALSE
6208 ,x_return_status => x_return_status
6209 ,x_msg_count => x_msg_count
6210 ,x_msg_data => x_msg_data
6211 ,p_source_object_id_template => p_instance_rec.inventory_item_id
6212 ,p_source_object_id_instance => p_instance_rec.instance_id
6213 ,x_ctr_id_template => l_ctr_id_template
6214 ,x_ctr_id_instance => l_ctr_id_instance
6215 ,x_ctr_grp_id_template => l_ctr_grp_id_template
6216 ,x_ctr_grp_id_instance => l_ctr_grp_id_instance
6217 ,p_organization_id => l_last_vld_organization_id -- srramakr. should pass the organization_id
6218 );
6219
6220 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS)
6221 THEN
6222 FND_MESSAGE.SET_NAME('CSI','CSI_API_NO_COUNTER_ASSOCIATION');
6223 FND_MESSAGE.SET_TOKEN('COUNTER','CSI_COUNTER_TEMPLATE_PUB.AUTOINSTANTIATE_COUNTERS');
6224 FND_MSG_PUB.Add;
6225 RAISE FND_API.G_EXC_ERROR;
6226 END IF;
6227 -- srramakr Bug # 2255391. In CTO, since the configured item is created as a part of Sales Order
6228 -- processing, there is no way a counter gets attached to this new item.
6229 -- In order to attach the counter, we look at the base model and use its counter group
6230 -- for the configured item. After attaching it, we call the Autoinstantiate API.
6231 ELSE
6232 l_base_item_id := null;
6233 Begin
6234 select base_item_id
6235 into l_base_item_id
6236 from MTL_SYSTEM_ITEMS_B
6237 where inventory_item_id = p_instance_rec.inventory_item_id
6238 and organization_id = l_last_vld_organization_id;
6239 Exception
6240 when no_data_found then
6241 null;
6242 when others then
6243 null;
6244 End;
6245 --
6246 IF l_base_item_id is not null THEN
6247 -- call the Counter Grp association API for the Configured Item
6248 For ctr_rec in CTR_GROUP(l_base_item_id)
6249 Loop
6250 Begin
6251 IF(ctr_rec.group_id is not null) then
6252 l_ctr_item_associations_rec.group_id := ctr_rec.group_id;
6253 END IF;
6254 IF(ctr_rec.counter_id is not null) then
6255 l_ctr_item_associations_rec.counter_id := ctr_rec.counter_id;
6256 END IF;
6257 l_ctr_item_associations_rec.inventory_item_id := p_instance_rec.inventory_item_id;
6258 IF(ctr_rec.associated_to_group = 'Y') THEN
6259 l_ctr_item_associations_rec.associated_to_group := ctr_rec.associated_to_group;-- Added for bug 9142776
6260 END IF;
6261
6262 --CS_Counters_PUB.Create_Ctr_Association
6263 csi_counter_template_pub.create_item_association
6264 (p_api_version => 1.0
6265 ,p_commit => fnd_api.g_false
6266 ,p_init_msg_list => fnd_api.g_false
6267 ,p_validation_level => p_validation_level
6268 ,p_ctr_item_associations_rec => l_ctr_item_associations_rec
6269 ,x_return_status => x_return_status
6270 ,x_msg_count => x_msg_count
6271 ,x_msg_data => x_msg_data
6272 );
6273 l_counter_group_id := 1; -- Added for bug 9142776 -- As the assotiation for the configured item and this group ID has been created now
6274 End;
6275 End Loop;
6276 --
6277 --IF CS_Counters_PUB.Ctr_Grp_Template_Exists(p_instance_rec.inventory_item_id) THEN
6278 IF l_counter_group_id <> 0 THEN
6279
6280 csi_counter_template_pub.autoinstantiate_counters
6281 ( p_api_version => 1.0
6282 ,p_init_msg_list => FND_API.G_FALSE
6283 ,p_commit => FND_API.G_FALSE
6284 ,x_return_status => x_return_status
6285 ,x_msg_count => x_msg_count
6286 ,x_msg_data => x_msg_data
6287 ,p_source_object_id_template => p_instance_rec.inventory_item_id
6288 ,p_source_object_id_instance => p_instance_rec.instance_id
6289 ,x_ctr_id_template => l_ctr_id_template
6290 ,x_ctr_id_instance => l_ctr_id_instance
6291 ,x_ctr_grp_id_template => l_ctr_grp_id_template
6292 ,x_ctr_grp_id_instance => l_ctr_grp_id_instance
6293 ,p_organization_id => l_last_vld_organization_id -- srramakr. should pass the organization_id
6294 );
6295 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
6296 FND_MESSAGE.SET_NAME('CSI','CSI_API_NO_COUNTER_ASSOCIATION');
6297 FND_MESSAGE.SET_TOKEN('COUNTER','CSI_COUNTER_TEMPLATE_PUB.AUTOINSTANTIATE_COUNTERS');
6298 FND_MSG_PUB.Add;
6299 RAISE FND_API.G_EXC_ERROR;
6300 END IF; -- return status
6301 END IF; -- ctr. grp template exists1
6302 END IF; -- for l_base_item
6303 END IF; -- ctr.grp template exists2
6304 END IF; -- restrict counter instantiation for 'INVENTORY'
6305 END IF; -- qty check
6306 END IF; -- l_call_counters check
6307
6308 -- Start code addition for eam integration
6309 IF l_eam_item
6310 THEN
6311 eam_objectinstantiation_pub.instantiate_object
6312 (p_api_version => 1.0
6313 ,p_init_msg_list => fnd_api.g_false
6314 ,p_commit => fnd_api.g_false
6315 ,p_validation_level => p_validation_level
6316 ,p_maintenance_object_id => p_instance_rec.instance_id
6317 ,p_maintenance_object_type => 3
6318 ,x_return_status => x_return_status
6319 ,x_msg_count => x_msg_count
6320 ,x_msg_data => x_msg_data
6321 );
6322 IF NOT(x_return_status = fnd_api.g_ret_sts_success)
6323 THEN
6324 csi_gen_utility_pvt.put_line( 'Error from eam_objectinstantiation_pub.instantiate_object...');
6325 RAISE fnd_api.g_exc_error;
6326 END IF;
6327 END IF;
6328 -- End code addition for eam integration
6329 -- Call create_transaction to create txn log
6330 CSI_TRANSACTIONS_PVT.Create_transaction
6331 (
6332 p_api_version => p_api_version
6333 ,p_commit => p_commit
6334 ,p_init_msg_list => p_init_msg_list
6335 ,p_validation_level => p_validation_level
6336 ,p_Success_IF_Exists_Flag => 'Y'
6337 ,p_transaction_rec => p_txn_rec
6338 ,x_return_status => x_return_status
6339 ,x_msg_count => x_msg_count
6340 ,x_msg_data => x_msg_data
6341 );
6342
6343 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
6344 FND_MESSAGE.SET_NAME('CSI','CSI_FAILED_TO_VALIDATE_TXN');
6345 FND_MESSAGE.SET_TOKEN('TRANSACTION_ID',p_txn_rec.transaction_id );
6346 FND_MSG_PUB.Add;
6347 RAISE FND_API.G_EXC_ERROR;
6348 END IF;
6349
6350 -- Get a unique history item instance id from the sequence
6351 l_csi_item_instance_h_id :=
6352 csi_item_instance_vld_pvt.get_csi_item_instance_h_id;
6353
6354 -- Create a row in csi_item_instances_history table
6355 CSI_ITEM_INSTANCES_H_PKG.Insert_Row
6356 ( px_INSTANCE_HISTORY_ID => l_csi_item_instance_h_id
6357 ,p_INSTANCE_ID => p_instance_rec.INSTANCE_ID
6358 ,p_TRANSACTION_ID => p_txn_rec.TRANSACTION_ID
6359 ,p_OLD_INSTANCE_NUMBER => NULL
6360 ,p_NEW_INSTANCE_NUMBER => p_instance_rec.INSTANCE_NUMBER
6361 ,p_OLD_EXTERNAL_REFERENCE => NULL
6362 ,p_NEW_EXTERNAL_REFERENCE => p_instance_rec.EXTERNAL_REFERENCE
6363 ,p_OLD_INVENTORY_ITEM_ID => NULL
6364 ,p_NEW_INVENTORY_ITEM_ID => p_instance_rec.INVENTORY_ITEM_ID
6365 ,p_OLD_INVENTORY_REVISION => NULL
6366 ,p_NEW_INVENTORY_REVISION => p_instance_rec.INVENTORY_REVISION
6367 ,p_OLD_INV_MASTER_ORGZN_ID => NULL
6368 ,p_NEW_INV_MASTER_ORGZN_ID => p_instance_rec.INV_MASTER_ORGANIZATION_ID
6369 ,p_OLD_SERIAL_NUMBER => NULL
6370 ,p_NEW_SERIAL_NUMBER => p_instance_rec.SERIAL_NUMBER
6371 ,p_OLD_MFG_SERIAL_NUMBER_FLAG => NULL
6372 ,p_NEW_MFG_SERIAL_NUMBER_FLAG => p_instance_rec.MFG_SERIAL_NUMBER_FLAG
6373 ,p_OLD_LOT_NUMBER => NULL
6374 ,p_NEW_LOT_NUMBER => p_instance_rec.LOT_NUMBER
6375 ,p_OLD_QUANTITY => NULL
6376 ,p_NEW_QUANTITY => p_instance_rec.QUANTITY
6377 ,p_OLD_UNIT_OF_MEASURE => NULL
6378 ,p_NEW_UNIT_OF_MEASURE => p_instance_rec.UNIT_OF_MEASURE
6379 ,p_OLD_ACCOUNTING_CLASS_CODE => NULL
6380 ,p_NEW_ACCOUNTING_CLASS_CODE => p_instance_rec.ACCOUNTING_CLASS_CODE
6381 ,p_OLD_INSTANCE_CONDITION_ID => NULL
6382 ,p_NEW_INSTANCE_CONDITION_ID => p_instance_rec.INSTANCE_CONDITION_ID
6383 ,p_OLD_INSTANCE_STATUS_ID => NULL
6384 ,p_NEW_INSTANCE_STATUS_ID => p_instance_rec.INSTANCE_STATUS_ID
6385 ,p_OLD_CUSTOMER_VIEW_FLAG => NULL
6386 ,p_NEW_CUSTOMER_VIEW_FLAG => p_instance_rec.CUSTOMER_VIEW_FLAG
6387 ,p_OLD_MERCHANT_VIEW_FLAG => NULL
6388 ,p_NEW_MERCHANT_VIEW_FLAG => p_instance_rec.MERCHANT_VIEW_FLAG
6389 ,p_OLD_SELLABLE_FLAG => NULL
6390 ,p_NEW_SELLABLE_FLAG => p_instance_rec.SELLABLE_FLAG
6391 ,p_OLD_SYSTEM_ID => NULL
6392 ,p_NEW_SYSTEM_ID => p_instance_rec.SYSTEM_ID
6393 ,p_OLD_INSTANCE_TYPE_CODE => NULL
6394 ,p_NEW_INSTANCE_TYPE_CODE => p_instance_rec.INSTANCE_TYPE_CODE
6395 ,p_OLD_ACTIVE_START_DATE => NULL
6396 ,p_NEW_ACTIVE_START_DATE => p_instance_rec.ACTIVE_START_DATE
6397 ,p_OLD_ACTIVE_END_DATE => NULL
6398 ,p_NEW_ACTIVE_END_DATE => p_instance_rec.ACTIVE_END_DATE
6399 ,p_OLD_LOCATION_TYPE_CODE => NULL
6400 ,p_NEW_LOCATION_TYPE_CODE => p_instance_rec.LOCATION_TYPE_CODE
6401 ,p_OLD_LOCATION_ID => NULL
6402 ,p_NEW_LOCATION_ID => p_instance_rec.LOCATION_ID
6403 ,p_OLD_INV_ORGANIZATION_ID => NULL
6404 ,p_NEW_INV_ORGANIZATION_ID => p_instance_rec.INV_ORGANIZATION_ID
6405 ,p_OLD_INV_SUBINVENTORY_NAME => NULL
6406 ,p_NEW_INV_SUBINVENTORY_NAME => p_instance_rec.INV_SUBINVENTORY_NAME
6407 ,p_OLD_INV_LOCATOR_ID => NULL
6408 ,p_NEW_INV_LOCATOR_ID => p_instance_rec.INV_LOCATOR_ID
6409 ,p_OLD_PA_PROJECT_ID => NULL
6410 ,p_NEW_PA_PROJECT_ID => p_instance_rec.PA_PROJECT_ID
6411 ,p_OLD_PA_PROJECT_TASK_ID => NULL
6412 ,p_NEW_PA_PROJECT_TASK_ID => p_instance_rec.PA_PROJECT_TASK_ID
6413 ,p_OLD_IN_TRANSIT_ORDER_LINE_ID => NULL
6414 ,p_NEW_IN_TRANSIT_ORDER_LINE_ID => p_instance_rec.IN_TRANSIT_ORDER_LINE_ID
6415 ,p_OLD_WIP_JOB_ID => NULL
6416 ,p_NEW_WIP_JOB_ID => p_instance_rec.WIP_JOB_ID
6417 ,p_OLD_PO_ORDER_LINE_ID => NULL
6418 ,p_NEW_PO_ORDER_LINE_ID => p_instance_rec.PO_ORDER_LINE_ID
6419 ,p_OLD_COMPLETENESS_FLAG => NULL
6420 ,p_NEW_COMPLETENESS_FLAG => p_instance_rec.COMPLETENESS_FLAG
6421 ,p_FULL_DUMP_FLAG => 'N'
6422 ,p_NEW_CONTEXT => p_instance_rec.CONTEXT
6423 ,P_OLD_CONTEXT => NULL
6424 ,p_NEW_ATTRIBUTE1 => p_instance_rec.ATTRIBUTE1
6425 ,p_OLD_ATTRIBUTE1 => NULL
6426 ,p_NEW_ATTRIBUTE2 => p_instance_rec.ATTRIBUTE2
6427 ,p_OLD_ATTRIBUTE2 => NULL
6428 ,p_NEW_ATTRIBUTE3 => p_instance_rec.ATTRIBUTE3
6429 ,p_OLD_ATTRIBUTE3 => NULL
6430 ,p_NEW_ATTRIBUTE4 => p_instance_rec.ATTRIBUTE4
6431 ,p_OLD_ATTRIBUTE4 => NULL
6432 ,p_NEW_ATTRIBUTE5 => p_instance_rec.ATTRIBUTE5
6433 ,p_OLD_ATTRIBUTE5 => NULL
6434 ,p_NEW_ATTRIBUTE6 => p_instance_rec.ATTRIBUTE6
6435 ,p_OLD_ATTRIBUTE6 => NULL
6436 ,p_NEW_ATTRIBUTE7 => p_instance_rec.ATTRIBUTE7
6437 ,p_OLD_ATTRIBUTE7 => NULL
6438 ,p_NEW_ATTRIBUTE8 => p_instance_rec.ATTRIBUTE8
6439 ,p_OLD_ATTRIBUTE8 => NULL
6440 ,p_NEW_ATTRIBUTE9 => p_instance_rec.ATTRIBUTE9
6441 ,p_OLD_ATTRIBUTE9 => NULL
6442 ,p_NEW_ATTRIBUTE10 => p_instance_rec.ATTRIBUTE10
6443 ,p_OLD_ATTRIBUTE10 => NULL
6444 ,p_NEW_ATTRIBUTE11 => p_instance_rec.ATTRIBUTE11
6445 ,p_OLD_ATTRIBUTE11 => NULL
6446 ,p_NEW_ATTRIBUTE12 => p_instance_rec.ATTRIBUTE12
6447 ,p_OLD_ATTRIBUTE12 => NULL
6448 ,p_NEW_ATTRIBUTE13 => p_instance_rec.ATTRIBUTE13
6449 ,p_OLD_ATTRIBUTE13 => NULL
6450 ,p_NEW_ATTRIBUTE14 => p_instance_rec.ATTRIBUTE14
6451 ,p_OLD_ATTRIBUTE14 => NULL
6452 ,p_NEW_ATTRIBUTE15 => p_instance_rec.ATTRIBUTE15
6453 ,p_OLD_ATTRIBUTE15 => NULL
6454 ,p_CREATED_BY => FND_GLOBAL.USER_ID
6455 ,p_CREATION_DATE => SYSDATE
6456 ,p_LAST_UPDATED_BY => FND_GLOBAL.USER_ID
6457 ,p_LAST_UPDATE_DATE => SYSDATE
6458 ,p_LAST_UPDATE_LOGIN => FND_GLOBAL.CONC_LOGIN_ID
6459 ,p_OBJECT_VERSION_NUMBER => 1
6460 ,p_OLD_INST_LOC_TYPE_CODE => NULL
6461 ,p_NEW_INST_LOC_TYPE_CODE => p_instance_rec.INSTALL_LOCATION_TYPE_CODE
6462 ,p_OLD_INST_LOC_ID => NULL
6463 ,p_NEW_INST_LOC_ID => p_instance_rec.INSTALL_LOCATION_ID
6464 ,p_OLD_INST_USAGE_CODE => NULL
6465 ,p_NEW_INST_USAGE_CODE => p_instance_rec.INSTANCE_USAGE_CODE
6466 ,p_OLD_last_vld_organization_id => NULL
6467 ,p_NEW_last_vld_organization_id => l_last_vld_organization_id
6468 ,p_OLD_CONFIG_INST_REV_NUM => NULL
6469 ,p_NEW_CONFIG_INST_REV_NUM => p_instance_rec.CONFIG_INST_REV_NUM
6470 ,p_OLD_CONFIG_VALID_STATUS => NULL
6471 ,p_NEW_CONFIG_VALID_STATUS => p_instance_rec.CONFIG_VALID_STATUS
6472 ,p_OLD_INSTANCE_DESCRIPTION => NULL
6473 ,p_NEW_INSTANCE_DESCRIPTION => p_instance_rec.INSTANCE_DESCRIPTION
6474 ,p_OLD_INSTALL_DATE => NULL
6475 ,p_NEW_INSTALL_DATE => p_instance_rec.INSTALL_DATE
6476 ,p_OLD_RETURN_BY_DATE => NULL
6477 ,p_NEW_RETURN_BY_DATE => p_instance_rec.RETURN_BY_DATE
6478 ,p_OLD_ACTUAL_RETURN_DATE => NULL
6479 ,p_NEW_ACTUAL_RETURN_DATE => p_instance_rec.ACTUAL_RETURN_DATE
6480 ,p_old_last_oe_agreement_id => NULL
6481 ,p_new_last_oe_agreement_id => p_instance_rec.last_oe_agreement_id
6482 ,p_OLD_LAST_OE_ORDER_LINE_ID => NULL
6483 ,p_NEW_LAST_OE_ORDER_LINE_ID => p_instance_rec.LAST_OE_ORDER_LINE_ID
6484 ,p_OLD_LAST_OE_RMA_LINE_ID => NULL
6485 ,p_NEW_LAST_OE_RMA_LINE_ID => p_instance_rec.LAST_OE_RMA_LINE_ID
6486 ,p_OLD_LAST_WIP_JOB_ID => NULL
6487 ,p_NEW_LAST_WIP_JOB_ID => p_instance_rec.LAST_WIP_JOB_ID
6488 ,p_OLD_LAST_PO_PO_LINE_ID => NULL
6489 ,p_NEW_LAST_PO_PO_LINE_ID => p_instance_rec.LAST_PO_PO_LINE_ID
6490 ,p_OLD_LAST_PA_PROJECT_ID => NULL
6491 ,p_NEW_LAST_PA_PROJECT_ID => p_instance_rec.LAST_PA_PROJECT_ID
6492 ,p_OLD_LAST_PA_TASK_ID => NULL
6493 ,p_NEW_LAST_PA_TASK_ID => p_instance_rec.LAST_PA_TASK_ID
6494 ,p_OLD_LAST_TXN_LINE_DETAIL_ID => NULL
6495 ,p_NEW_LAST_TXN_LINE_DETAIL_ID => p_instance_rec.LAST_TXN_LINE_DETAIL_ID
6496 ,p_OLD_LAST_OE_PO_NUMBER => NULL
6497 ,p_NEW_LAST_OE_PO_NUMBER => p_instance_rec.LAST_OE_PO_NUMBER
6498 --start of parameters addition for eam integration--
6499 ,p_OLD_NETWORK_ASSET_FLAG => NULL
6500 ,p_NEW_NETWORK_ASSET_FLAG => p_instance_rec.NETWORK_ASSET_FLAG
6501 ,p_OLD_MAINTAINABLE_FLAG => NULL
6502 ,p_NEW_MAINTAINABLE_FLAG => p_instance_rec.MAINTAINABLE_FLAG
6503 ,p_OLD_PN_LOCATION_ID => NULL
6504 ,p_NEW_PN_LOCATION_ID => p_instance_rec.PN_LOCATION_ID
6505 ,p_OLD_ASSET_CRITICALITY_CODE => NULL
6506 ,p_NEW_ASSET_CRITICALITY_CODE => p_instance_rec.ASSET_CRITICALITY_CODE
6507 ,p_OLD_CATEGORY_ID => NULL
6508 ,p_NEW_CATEGORY_ID => p_instance_rec.CATEGORY_ID
6509 ,p_OLD_EQUIPMENT_GEN_OBJECT_ID => NULL
6510 ,p_NEW_EQUIPMENT_GEN_OBJECT_ID => p_instance_rec.EQUIPMENT_GEN_OBJECT_ID
6511 ,p_OLD_INSTANTIATION_FLAG => NULL
6512 ,p_NEW_INSTANTIATION_FLAG => p_instance_rec.INSTANTIATION_FLAG
6513 ,p_OLD_LINEAR_LOCATION_ID => NULL
6514 ,p_NEW_LINEAR_LOCATION_ID => p_instance_rec.LINEAR_LOCATION_ID
6515 ,p_OLD_OPERATIONAL_LOG_FLAG => NULL
6516 ,p_NEW_OPERATIONAL_LOG_FLAG => p_instance_rec.OPERATIONAL_LOG_FLAG
6517 ,p_OLD_CHECKIN_STATUS => NULL
6518 ,p_NEW_CHECKIN_STATUS => p_instance_rec.CHECKIN_STATUS
6519 ,p_OLD_SUP_WARRANTY_EXP_DATE => NULL
6520 ,p_NEW_SUP_WARRANTY_EXP_DATE => p_instance_rec.SUPPLIER_WARRANTY_EXP_DATE
6521 ,p_OLD_ATTRIBUTE16 => NULL
6522 ,p_NEW_ATTRIBUTE16 => p_instance_rec.ATTRIBUTE16
6523 ,p_OLD_ATTRIBUTE17 => NULL
6524 ,p_NEW_ATTRIBUTE17 => p_instance_rec.ATTRIBUTE17
6525 ,p_OLD_ATTRIBUTE18 => NULL
6526 ,p_NEW_ATTRIBUTE18 => p_instance_rec.ATTRIBUTE18
6527 ,p_OLD_ATTRIBUTE19 => NULL
6528 ,p_NEW_ATTRIBUTE19 => p_instance_rec.ATTRIBUTE19
6529 ,p_OLD_ATTRIBUTE20 => NULL
6530 ,p_NEW_ATTRIBUTE20 => p_instance_rec.ATTRIBUTE20
6531 ,p_OLD_ATTRIBUTE21 => NULL
6532 ,p_NEW_ATTRIBUTE21 => p_instance_rec.ATTRIBUTE21
6533 ,p_OLD_ATTRIBUTE22 => NULL
6534 ,p_NEW_ATTRIBUTE22 => p_instance_rec.ATTRIBUTE22
6535 ,p_OLD_ATTRIBUTE23 => NULL
6536 ,p_NEW_ATTRIBUTE23 => p_instance_rec.ATTRIBUTE23
6537 ,p_OLD_ATTRIBUTE24 => NULL
6538 ,p_NEW_ATTRIBUTE24 => p_instance_rec.ATTRIBUTE24
6539 ,p_OLD_ATTRIBUTE25 => NULL
6540 ,p_NEW_ATTRIBUTE25 => p_instance_rec.ATTRIBUTE25
6541 ,p_OLD_ATTRIBUTE26 => NULL
6542 ,p_NEW_ATTRIBUTE26 => p_instance_rec.ATTRIBUTE26
6543 ,p_OLD_ATTRIBUTE27 => NULL
6544 ,p_NEW_ATTRIBUTE27 => p_instance_rec.ATTRIBUTE27
6545 ,p_OLD_ATTRIBUTE28 => NULL
6546 ,p_NEW_ATTRIBUTE28 => p_instance_rec.ATTRIBUTE28
6547 ,p_OLD_ATTRIBUTE29 => NULL
6548 ,p_NEW_ATTRIBUTE29 => p_instance_rec.ATTRIBUTE29
6549 ,p_OLD_ATTRIBUTE30 => NULL
6550 ,p_NEW_ATTRIBUTE30 => p_instance_rec.ATTRIBUTE30
6551 --end of parameters addition for eam integration--
6552 -- Addition of columns for FA Integration
6553 ,p_OLD_PAYABLES_UNIT_PRICE => NULL
6554 ,p_NEW_PAYABLES_UNIT_PRICE => p_instance_rec.PAYABLES_UNIT_PRICE
6555 ,p_OLD_PAYABLES_CURRENCY_CODE => NULL
6556 ,p_NEW_PAYABLES_CURRENCY_CODE => p_instance_rec.PAYABLES_CURRENCY_CODE
6557 ,p_OLD_PURCHASE_UNIT_PRICE => NULL
6558 ,p_NEW_PURCHASE_UNIT_PRICE => p_instance_rec.PURCHASE_UNIT_PRICE
6559 ,p_OLD_PURCHASE_CURRENCY_CODE => NULL
6560 ,p_NEW_PURCHASE_CURRENCY_CODE => p_instance_rec.PURCHASE_CURRENCY_CODE
6561 ,p_OLD_SALES_UNIT_PRICE => NULL
6562 ,p_NEW_SALES_UNIT_PRICE => p_instance_rec.SALES_UNIT_PRICE
6563 ,p_OLD_SALES_CURRENCY_CODE => NULL
6564 ,p_NEW_SALES_CURRENCY_CODE => p_instance_rec.SALES_CURRENCY_CODE
6565 ,p_OLD_OPERATIONAL_STATUS_CODE => NULL
6566 ,p_NEW_OPERATIONAL_STATUS_CODE => p_instance_rec.OPERATIONAL_STATUS_CODE
6567 -- End addition of columns for FA Integration
6568 -- Begin Add Code for Siebel Genesis Project
6569 ,p_OLD_SOURCE_CODE => NULL
6570 ,p_NEW_SOURCE_CODE => p_instance_rec.SOURCE_CODE
6571 -- End Add Code for Siebel Genesis Project
6572 );
6573
6574
6575 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
6576 FND_MESSAGE.SET_NAME('CSI','CSI_FAILED_TO_CREATE_HISTORY');
6577 FND_MSG_PUB.Add;
6578 RAISE FND_API.G_EXC_ERROR;
6579 END IF;
6580
6581 END IF; -- Check for p_called_from_grp
6582 -- End of API body
6583
6584 -- Standard check of p_commit.
6585 IF FND_API.To_Boolean( p_commit ) THEN
6586 COMMIT WORK;
6587 END IF;
6588
6589 -- Standard call to get message count and IF count is get message info.
6590 FND_MSG_PUB.Count_And_Get
6591 (p_encoded => FND_API.G_FALSE, --Added for bug 7657438
6592 p_count => x_msg_count,
6593 p_data => x_msg_data
6594 );
6595
6596 EXCEPTION
6597 WHEN FND_API.G_EXC_ERROR THEN
6598 ROLLBACK TO create_item_instance_pvt;
6599 x_return_status := FND_API.G_RET_STS_ERROR ;
6600 FND_MSG_PUB.Count_And_Get
6601 (p_encoded => FND_API.G_FALSE, --Added for bug 7657438
6602 p_count => x_msg_count,
6603 p_data => x_msg_data
6604 );
6605 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
6606 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
6607 ROLLBACK TO create_item_instance_pvt;
6608 FND_MSG_PUB.Count_And_Get
6609 ( p_encoded => FND_API.G_FALSE,
6610 p_count => x_msg_count,
6611 p_data => x_msg_data
6612 );
6613 WHEN OTHERS THEN
6614 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
6615 ROLLBACK TO create_item_instance_pvt;
6616 IF FND_MSG_PUB.Check_Msg_Level
6617 (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
6618 THEN
6619 FND_MSG_PUB.Add_Exc_Msg
6620 (G_PKG_NAME ,
6621 l_api_name
6622 );
6623 END IF;
6624 FND_MSG_PUB.Count_And_Get
6625 (p_encoded => FND_API.G_FALSE,
6626 p_count => x_msg_count,
6627 p_data => x_msg_data
6628 );
6629
6630 END create_item_instance;
6631
6632 /*---------------------------------------------------*/
6633 /* Procedure name: Anything_To_Update */
6634 /* Description : This function checks if any of */
6635 /* the columns related to instance */
6636 /* are changing */
6637 /*---------------------------------------------------*/
6638
6639 FUNCTION Anything_To_Update(p_instance_rec csi_datastructures_pub.instance_rec)
6640
6641 RETURN BOOLEAN
6642 IS
6643
6644 l_return_value BOOLEAN := FALSE;
6645
6646 BEGIN
6647
6648 IF ((p_instance_rec.instance_number IS NULL) OR
6649 (p_instance_rec.instance_number <> FND_API.G_MISS_CHAR)) OR
6650 ((p_instance_rec.external_reference IS NULL) OR
6651 (p_instance_rec.external_reference <> FND_API.G_MISS_CHAR)) OR
6652 ((p_instance_rec.inventory_item_id IS NULL) OR
6653 (p_instance_rec.inventory_item_id <> FND_API.G_MISS_NUM)) OR
6654 ((p_instance_rec.inventory_revision IS NULL) OR
6655 (p_instance_rec.inventory_revision <> FND_API.G_MISS_CHAR)) OR
6656 ((p_instance_rec.inv_master_organization_id IS NULL) OR
6657 (p_instance_rec.inv_master_organization_id <> FND_API.G_MISS_NUM)) OR
6658 ((p_instance_rec.serial_number IS NULL) OR
6659 (p_instance_rec.serial_number <> FND_API.G_MISS_CHAR)) OR
6660 ((p_instance_rec.mfg_serial_number_flag IS NULL) OR
6661 (p_instance_rec.mfg_serial_number_flag <> FND_API.G_MISS_CHAR)) OR
6662 ((p_instance_rec.lot_number IS NULL) OR
6663 (p_instance_rec.lot_number <> FND_API.G_MISS_CHAR)) OR
6664 ((p_instance_rec.quantity IS NULL) OR
6665 (p_instance_rec.quantity <> FND_API.G_MISS_NUM)) OR
6666 ((p_instance_rec.unit_of_measure IS NULL) OR
6667 (p_instance_rec.unit_of_measure <> FND_API.G_MISS_CHAR)) OR
6668 ((p_instance_rec.accounting_class_code IS NULL) OR
6669 (p_instance_rec.accounting_class_code <> FND_API.G_MISS_CHAR)) OR
6670 ((p_instance_rec.instance_condition_id IS NULL) OR
6671 (p_instance_rec.instance_condition_id <> FND_API.G_MISS_NUM)) OR
6672 ((p_instance_rec.instance_status_id IS NULL) OR
6673 (p_instance_rec.instance_status_id <> FND_API.G_MISS_NUM)) OR
6674 ((p_instance_rec.customer_view_flag IS NULL) OR
6675 (p_instance_rec.customer_view_flag <> FND_API.G_MISS_CHAR)) OR
6676 ((p_instance_rec.merchant_view_flag IS NULL) OR
6677 (p_instance_rec.merchant_view_flag <> FND_API.G_MISS_CHAR)) OR
6678 ((p_instance_rec.sellable_flag IS NULL) OR
6679 (p_instance_rec.sellable_flag <> FND_API.G_MISS_CHAR)) OR
6680 ((p_instance_rec.system_id IS NULL) OR
6681 (p_instance_rec.system_id <> FND_API.G_MISS_NUM)) OR
6682 ((p_instance_rec.instance_type_code IS NULL) OR
6683 (p_instance_rec.instance_type_code <> FND_API.G_MISS_CHAR)) OR
6684 ((p_instance_rec.active_start_date IS NULL) OR
6685 (p_instance_rec.active_start_date <> FND_API.G_MISS_DATE)) OR
6686 ((p_instance_rec.active_end_date IS NULL) OR
6687 (p_instance_rec.active_end_date <> FND_API.G_MISS_DATE)) OR
6688 ((p_instance_rec.location_type_code IS NULL) OR
6689 (p_instance_rec.location_type_code <> FND_API.G_MISS_CHAR)) OR
6690 ((p_instance_rec.location_id IS NULL) OR
6691 (p_instance_rec.location_id <> FND_API.G_MISS_NUM)) OR
6692 ((p_instance_rec.inv_organization_id IS NULL) OR
6693 (p_instance_rec.inv_organization_id <> FND_API.G_MISS_NUM)) OR
6694 ((p_instance_rec.inv_subinventory_name IS NULL) OR
6695 (p_instance_rec.inv_subinventory_name <> FND_API.G_MISS_CHAR)) OR
6696 ((p_instance_rec.inv_locator_id IS NULL) OR
6697 (p_instance_rec.inv_locator_id <> FND_API.G_MISS_NUM)) OR
6698 ((p_instance_rec.pa_project_id IS NULL) OR
6699 (p_instance_rec.pa_project_id <> FND_API.G_MISS_NUM)) OR
6700 ((p_instance_rec.pa_project_task_id IS NULL) OR
6701 (p_instance_rec.pa_project_task_id <> FND_API.G_MISS_NUM)) OR
6702 ((p_instance_rec.in_transit_order_line_id IS NULL) OR
6703 (p_instance_rec.in_transit_order_line_id <> FND_API.G_MISS_NUM)) OR
6704 ((p_instance_rec.wip_job_id IS NULL) OR
6705 (p_instance_rec.wip_job_id <> FND_API.G_MISS_NUM)) OR
6706 ((p_instance_rec.po_order_line_id IS NULL) OR
6707 (p_instance_rec.po_order_line_id <> FND_API.G_MISS_NUM)) OR
6708 ((p_instance_rec.last_oe_order_line_id IS NULL) OR
6709 (p_instance_rec.last_oe_order_line_id <> FND_API.G_MISS_NUM)) OR
6710 ((p_instance_rec.last_oe_rma_line_id IS NULL) OR
6711 (p_instance_rec.last_oe_rma_line_id <> FND_API.G_MISS_NUM)) OR
6712 ((p_instance_rec.last_po_po_line_id IS NULL) OR
6713 (p_instance_rec.last_po_po_line_id <> FND_API.G_MISS_NUM)) OR
6714 ((p_instance_rec.last_oe_po_number IS NULL) OR
6715 (p_instance_rec.last_oe_po_number <> FND_API.G_MISS_CHAR)) OR
6716 ((p_instance_rec.last_wip_job_id IS NULL) OR
6717 (p_instance_rec.last_wip_job_id <> FND_API.G_MISS_NUM)) OR
6718 ((p_instance_rec.last_pa_project_id IS NULL) OR
6719 (p_instance_rec.last_pa_project_id <> FND_API.G_MISS_NUM)) OR
6720 ((p_instance_rec.last_pa_task_id IS NULL) OR
6721 (p_instance_rec.last_pa_task_id <> FND_API.G_MISS_NUM)) OR
6722 ((p_instance_rec.last_oe_agreement_id IS NULL) OR
6723 (p_instance_rec.last_oe_agreement_id <> FND_API.G_MISS_NUM)) OR
6724 ((p_instance_rec.install_date IS NULL) OR
6725 (p_instance_rec.install_date <> FND_API.G_MISS_DATE)) OR
6726 ((p_instance_rec.manually_created_flag IS NULL) OR
6727 (p_instance_rec.manually_created_flag <> FND_API.G_MISS_CHAR)) OR
6728 ((p_instance_rec.return_by_date IS NULL) OR
6729 (p_instance_rec.return_by_date <> FND_API.G_MISS_DATE)) OR
6730 ((p_instance_rec.actual_return_date IS NULL) OR
6731 (p_instance_rec.actual_return_date <> FND_API.G_MISS_DATE)) OR
6732 ((p_instance_rec.creation_complete_flag IS NULL) OR
6733 (p_instance_rec.creation_complete_flag <> FND_API.G_MISS_CHAR)) OR
6734 ((p_instance_rec.completeness_flag IS NULL) OR
6735 (p_instance_rec.completeness_flag <> FND_API.G_MISS_CHAR)) OR
6736 ((p_instance_rec.context IS NULL) OR
6737 (p_instance_rec.context <> FND_API.G_MISS_CHAR)) OR
6738 ((p_instance_rec.attribute1 IS NULL) OR
6739 (p_instance_rec.attribute1 <> FND_API.G_MISS_CHAR)) OR
6740 ((p_instance_rec.attribute2 IS NULL) OR
6741 (p_instance_rec.attribute2 <> FND_API.G_MISS_CHAR)) OR
6742 ((p_instance_rec.attribute3 IS NULL) OR
6743 (p_instance_rec.attribute3 <> FND_API.G_MISS_CHAR)) OR
6744 ((p_instance_rec.attribute4 IS NULL) OR
6745 (p_instance_rec.attribute4 <> FND_API.G_MISS_CHAR)) OR
6746 ((p_instance_rec.attribute5 IS NULL) OR
6747 (p_instance_rec.attribute5 <> FND_API.G_MISS_CHAR)) OR
6748 ((p_instance_rec.attribute6 IS NULL) OR
6749 (p_instance_rec.attribute6 <> FND_API.G_MISS_CHAR)) OR
6750 ((p_instance_rec.attribute7 IS NULL) OR
6751 (p_instance_rec.attribute7 <> FND_API.G_MISS_CHAR)) OR
6752 ((p_instance_rec.attribute8 IS NULL) OR
6753 (p_instance_rec.attribute8 <> FND_API.G_MISS_CHAR)) OR
6754 ((p_instance_rec.attribute9 IS NULL) OR
6755 (p_instance_rec.attribute9 <> FND_API.G_MISS_CHAR)) OR
6756 ((p_instance_rec.attribute10 IS NULL) OR
6757 (p_instance_rec.attribute10 <> FND_API.G_MISS_CHAR)) OR
6758 ((p_instance_rec.attribute11 IS NULL) OR
6759 (p_instance_rec.attribute11 <> FND_API.G_MISS_CHAR)) OR
6760 ((p_instance_rec.attribute12 IS NULL) OR
6761 (p_instance_rec.attribute12 <> FND_API.G_MISS_CHAR)) OR
6762 ((p_instance_rec.attribute13 IS NULL) OR
6763 (p_instance_rec.attribute13 <> FND_API.G_MISS_CHAR)) OR
6764 ((p_instance_rec.attribute14 IS NULL) OR
6765 (p_instance_rec.attribute14 <> FND_API.G_MISS_CHAR)) OR
6766 ((p_instance_rec.attribute15 IS NULL) OR
6767 (p_instance_rec.attribute15 <> FND_API.G_MISS_CHAR)) OR
6768 ((p_instance_rec.last_txn_line_detail_id IS NULL) OR
6769 (p_instance_rec.last_txn_line_detail_id <> FND_API.G_MISS_NUM)) OR
6770 ((p_instance_rec.install_location_type_code IS NULL) OR
6771 (p_instance_rec.install_location_type_code <> FND_API.G_MISS_CHAR)) OR
6772 ((p_instance_rec.install_location_id IS NULL) OR
6773 (p_instance_rec.install_location_id <> FND_API.G_MISS_NUM)) OR
6774 ((p_instance_rec.instance_usage_code IS NULL) OR
6775 (p_instance_rec.instance_usage_code <> FND_API.G_MISS_CHAR)) OR
6776 -- The following code has been added by sguthiva for att enhancements
6777 ((p_instance_rec.config_inst_hdr_id IS NULL) OR
6778 (p_instance_rec.config_inst_hdr_id <> FND_API.G_MISS_NUM)) OR
6779 ((p_instance_rec.config_inst_rev_num IS NULL) OR
6780 (p_instance_rec.config_inst_rev_num <> FND_API.G_MISS_NUM)) OR
6781 ((p_instance_rec.config_inst_item_id IS NULL) OR
6782 (p_instance_rec.config_inst_item_id <> FND_API.G_MISS_NUM)) OR
6783 ((p_instance_rec.config_valid_status IS NULL) OR
6784 (p_instance_rec.config_valid_status <> FND_API.G_MISS_CHAR)) OR
6785 ((p_instance_rec.instance_description IS NULL) OR
6786 (p_instance_rec.instance_description <> FND_API.G_MISS_CHAR)) OR
6787 --start of code for eam integration--
6788 ((p_instance_rec.network_asset_flag IS NULL) OR
6789 (p_instance_rec.network_asset_flag <> FND_API.G_MISS_CHAR)) OR
6790 ((p_instance_rec.maintainable_flag IS NULL) OR
6791 (p_instance_rec.maintainable_flag <> FND_API.G_MISS_CHAR)) OR
6792 ((p_instance_rec.pn_location_id IS NULL) OR
6793 (p_instance_rec.pn_location_id <> FND_API.G_MISS_NUM)) OR
6794 ((p_instance_rec.asset_criticality_code IS NULL) OR
6795 (p_instance_rec.asset_criticality_code <> FND_API.G_MISS_CHAR)) OR
6796 ((p_instance_rec.category_id IS NULL) OR
6797 (p_instance_rec.category_id <> FND_API.G_MISS_NUM)) OR
6798 ((p_instance_rec.equipment_gen_object_id IS NULL) OR
6799 (p_instance_rec.equipment_gen_object_id <> FND_API.G_MISS_NUM)) OR
6800 ((p_instance_rec.instantiation_flag IS NULL) OR
6801 (p_instance_rec.instantiation_flag <> FND_API.G_MISS_CHAR)) OR
6802 ((p_instance_rec.linear_location_id IS NULL) OR
6803 (p_instance_rec.linear_location_id <> FND_API.G_MISS_NUM)) OR
6804 ((p_instance_rec.operational_log_flag IS NULL) OR
6805 (p_instance_rec.operational_log_flag <> FND_API.G_MISS_CHAR)) OR
6806 ((p_instance_rec.checkin_status IS NULL) OR
6807 (p_instance_rec.checkin_status <> FND_API.G_MISS_NUM)) OR
6808 ((p_instance_rec.supplier_warranty_exp_date IS NULL) OR
6809 (p_instance_rec.supplier_warranty_exp_date <> FND_API.G_MISS_DATE)) OR
6810 ((p_instance_rec.attribute16 IS NULL) OR
6811 (p_instance_rec.attribute16 <> FND_API.G_MISS_CHAR)) OR
6812 ((p_instance_rec.attribute17 IS NULL) OR
6813 (p_instance_rec.attribute17 <> FND_API.G_MISS_CHAR)) OR
6814 ((p_instance_rec.attribute18 IS NULL) OR
6815 (p_instance_rec.attribute18 <> FND_API.G_MISS_CHAR)) OR
6816 ((p_instance_rec.attribute19 IS NULL) OR
6817 (p_instance_rec.attribute19 <> FND_API.G_MISS_CHAR)) OR
6818 ((p_instance_rec.attribute20 IS NULL) OR
6819 (p_instance_rec.attribute20 <> FND_API.G_MISS_CHAR)) OR
6820 ((p_instance_rec.attribute21 IS NULL) OR
6821 (p_instance_rec.attribute21 <> FND_API.G_MISS_CHAR)) OR
6822 ((p_instance_rec.attribute22 IS NULL) OR
6823 (p_instance_rec.attribute22 <> FND_API.G_MISS_CHAR)) OR
6824 ((p_instance_rec.attribute23 IS NULL) OR
6825 (p_instance_rec.attribute23 <> FND_API.G_MISS_CHAR)) OR
6826 ((p_instance_rec.attribute24 IS NULL) OR
6827 (p_instance_rec.attribute24 <> FND_API.G_MISS_CHAR)) OR
6828 ((p_instance_rec.attribute25 IS NULL) OR
6829 (p_instance_rec.attribute25 <> FND_API.G_MISS_CHAR)) OR
6830 ((p_instance_rec.attribute26 IS NULL) OR
6831 (p_instance_rec.attribute26 <> FND_API.G_MISS_CHAR)) OR
6832 ((p_instance_rec.attribute27 IS NULL) OR
6833 (p_instance_rec.attribute27 <> FND_API.G_MISS_CHAR)) OR
6834 ((p_instance_rec.attribute28 IS NULL) OR
6835 (p_instance_rec.attribute28 <> FND_API.G_MISS_CHAR)) OR
6836 ((p_instance_rec.attribute29 IS NULL) OR
6837 (p_instance_rec.attribute29 <> FND_API.G_MISS_CHAR)) OR
6838 ((p_instance_rec.attribute30 IS NULL) OR
6839 (p_instance_rec.attribute30 <> FND_API.G_MISS_CHAR)) OR
6840 --end of code for eam integration--
6841 -- Addition of columns for FA Integration
6842 ((p_instance_rec.purchase_unit_price IS NULL) OR
6843 (p_instance_rec.purchase_unit_price <> FND_API.G_MISS_NUM)) OR
6844 ((p_instance_rec.purchase_currency_code IS NULL) OR
6845 (p_instance_rec.purchase_currency_code <> FND_API.G_MISS_CHAR)) OR
6846 ((p_instance_rec.payables_unit_price IS NULL) OR
6847 (p_instance_rec.payables_unit_price <> FND_API.G_MISS_NUM)) OR
6848 ((p_instance_rec.payables_currency_code IS NULL) OR
6849 (p_instance_rec.payables_currency_code <> FND_API.G_MISS_CHAR)) OR
6850 ((p_instance_rec.sales_unit_price IS NULL) OR
6851 (p_instance_rec.sales_unit_price <> FND_API.G_MISS_NUM)) OR
6852 ((p_instance_rec.sales_currency_code IS NULL) OR
6853 (p_instance_rec.sales_currency_code <> FND_API.G_MISS_CHAR)) OR
6854 ((p_instance_rec.operational_status_code IS NULL) OR
6855 (p_instance_rec.operational_status_code <> FND_API.G_MISS_CHAR))
6856 -- End addition of columns for FA Integration
6857 THEN
6858 -- End of code addition by sguthiva for att enhancements
6859
6860 l_return_value := TRUE;
6861 END IF;
6862
6863
6864 RETURN l_return_value;
6865
6866 END Anything_To_Update;
6867
6868 /*----------------------------------------------------*/
6869 /* This Procedure validates the accounting class code*/
6870 /* depending upon the location type code */
6871 /*----------------------------------------------------*/
6872 PROCEDURE get_and_update_acct_class
6873 ( p_api_version IN NUMBER
6874 ,p_commit IN VARCHAR2
6875 ,p_init_msg_list IN VARCHAR2
6876 ,p_validation_level IN NUMBER
6877 ,p_instance_id IN NUMBER
6878 ,p_instance_expiry_flag IN VARCHAR2
6879 ,p_txn_rec IN OUT NOCOPY csi_datastructures_pub.transaction_rec
6880 ,x_acct_class_code OUT NOCOPY VARCHAR2
6881 ,x_return_status OUT NOCOPY VARCHAR2
6882 ,x_msg_count OUT NOCOPY NUMBER
6883 ,x_msg_data OUT NOCOPY VARCHAR2
6884 )
6885
6886 IS
6887
6888 l_api_name CONSTANT VARCHAR2(30) := 'GET_AND_UPDATE_ACCT_CLASS';
6889 l_api_version CONSTANT NUMBER := 1.0;
6890 l_debug_level NUMBER;
6891 l_acct_class_code VARCHAR2(10);
6892 l_accounting_class VARCHAR2(10);
6893 l_loc_type_code VARCHAR2(30);
6894 --l_obj_ver_num NUMBER;
6895 l_instance_rec csi_datastructures_pub.instance_rec;
6896 l_instance_id_lst csi_datastructures_pub.id_tbl ;
6897 x_msg_index_out NUMBER;
6898 l_item_attribute_tbl csi_item_instance_pvt.item_attribute_tbl;
6899 l_location_tbl csi_item_instance_pvt.location_tbl;
6900 l_generic_id_tbl csi_item_instance_pvt.generic_id_tbl;
6901 l_lookup_tbl csi_item_instance_pvt.lookup_tbl;
6902 l_ins_count_rec csi_item_instance_pvt.ins_count_rec;
6903 px_oks_txn_inst_tbl oks_ibint_pub.txn_instance_tbl;
6904 px_child_inst_tbl csi_item_instance_grp.child_inst_tbl;
6905
6906 BEGIN
6907
6908 -- Standard Start of API savepoint
6909 IF fnd_api.to_boolean(p_commit)
6910 THEN
6911 SAVEPOINT get_and_update_acct_class;
6912 END IF;
6913
6914 -- Standard call to check for call compatibility.
6915 IF NOT FND_API.Compatible_API_Call (l_api_version,
6916 p_api_version,
6917 l_api_name ,
6918 G_PKG_NAME )
6919 THEN
6920 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
6921 END IF;
6922
6923 -- Initialize message list if p_init_msg_list is set to TRUE.
6924 IF FND_API.to_Boolean( p_init_msg_list ) THEN
6925 FND_MSG_PUB.initialize;
6926 END IF;
6927
6928 -- Initialize API return status to success
6929 x_return_status := FND_API.G_RET_STS_SUCCESS;
6930
6931 -- Check the profile option debug_level for debug message reporting
6932 l_debug_level:=fnd_profile.value('CSI_DEBUG_LEVEL');
6933 -- If debug_level = 1 then dump the procedure name
6934 IF (l_debug_level > 0) THEN
6935 csi_gen_utility_pvt.put_line ('get_and_update_acct_class');
6936 END IF;
6937
6938 -- If the debug level = 2 then dump all the parameters values.
6939 IF (l_debug_level > 1) THEN
6940 csi_gen_utility_pvt.put_line ( 'get_and_update_acct_class' ||
6941 p_api_version ||'-'||
6942 p_commit
6943 );
6944 END IF;
6945
6946 l_instance_rec.instance_id := p_instance_id;
6947
6948 BEGIN
6949 SELECT location_type_code,
6950 accounting_class_code,
6951 object_version_number,
6952 inventory_item_id,
6953 last_vld_organization_id,
6954 quantity
6955 INTO l_loc_type_code,
6956 l_accounting_class,
6957 l_instance_rec.object_version_number,
6958 l_instance_rec.inventory_item_id,
6959 l_instance_rec.vld_organization_id,
6960 l_instance_rec.quantity
6961 FROM csi_item_instances
6962 WHERE instance_id = l_instance_rec.instance_id;
6963 EXCEPTION
6964 WHEN NO_DATA_FOUND THEN
6965 FND_MESSAGE.SET_NAME('CSI','CSI_API_INVALID_INSTANCE_NUM');
6966 FND_MESSAGE.SET_TOKEN('INSTANCE_NUMBER', l_instance_rec.instance_id);
6967 FND_MSG_PUB.Add;
6968 RAISE FND_API.G_EXC_ERROR;
6969 END;
6970
6971
6972 csi_item_instance_vld_pvt.get_valid_acct_class(p_instance_id => p_instance_id,
6973 p_curr_acct_class_code => NULL, --l_accounting_class,
6974 p_loc_type_code => l_loc_type_code,
6975 x_acct_class_code => l_acct_class_code
6976 );
6977
6978 IF l_acct_class_code <> l_accounting_class THEN
6979
6980 l_instance_rec.accounting_class_code := l_acct_class_code;
6981 l_instance_rec.check_for_instance_expiry := p_instance_expiry_flag;
6982 update_item_instance
6983 (
6984 p_api_version => p_api_version
6985 ,p_commit => fnd_api.g_false
6986 ,p_init_msg_list => p_init_msg_list
6987 ,p_validation_level => p_validation_level
6988 ,p_instance_rec => l_instance_rec
6989 ,p_txn_rec => p_txn_rec
6990 ,x_instance_id_lst => l_instance_id_lst
6991 ,x_return_status => x_return_status
6992 ,x_msg_count => x_msg_count
6993 ,x_msg_data => x_msg_data
6994 ,p_item_attribute_tbl => l_item_attribute_tbl
6995 ,p_location_tbl => l_location_tbl
6996 ,p_generic_id_tbl => l_generic_id_tbl
6997 ,p_lookup_tbl => l_lookup_tbl
6998 ,p_ins_count_rec => l_ins_count_rec
6999 ,p_oks_txn_inst_tbl => px_oks_txn_inst_tbl
7000 ,p_child_inst_tbl => px_child_inst_tbl
7001 );
7002
7003 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
7004 FOR i in 1..x_msg_Count LOOP
7005 FND_MSG_PUB.Get(p_msg_index => i,
7006 p_encoded => 'F',
7007 p_data => x_msg_data,
7008 p_msg_index_out => x_msg_index_out );
7009
7010 End LOOP;
7011 RAISE fnd_api.g_exc_error;
7012 END IF;
7013
7014 END IF;
7015
7016 IF FND_API.To_Boolean( p_commit )
7017 THEN
7018 COMMIT WORK;
7019 END IF;
7020
7021 -- Standard call to get message count and IF count is get message info.
7022 FND_MSG_PUB.Count_And_Get
7023 (p_encoded => FND_API.G_FALSE,
7024 p_count => x_msg_count,
7025 p_data => x_msg_data
7026 );
7027
7028 EXCEPTION
7029 WHEN FND_API.G_EXC_ERROR THEN
7030 IF FND_API.To_Boolean( p_commit )
7031 THEN
7032 ROLLBACK TO get_and_update_acct_class;
7033 END IF;
7034 x_return_status := FND_API.G_RET_STS_ERROR ;
7035 FND_MSG_PUB.Count_And_Get
7036 (p_encoded => FND_API.G_FALSE,
7037 p_count => x_msg_count,
7038 p_data => x_msg_data
7039 );
7040 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
7041 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
7042 IF FND_API.To_Boolean( p_commit )
7043 THEN
7044 ROLLBACK TO get_and_update_acct_class;
7045 END IF;
7046 FND_MSG_PUB.Count_And_Get
7047 ( p_encoded => FND_API.G_FALSE,
7048 p_count => x_msg_count,
7049 p_data => x_msg_data
7050 );
7051 WHEN OTHERS THEN
7052 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
7053 IF FND_API.To_Boolean( p_commit )
7054 THEN
7055 ROLLBACK TO get_and_update_acct_class;
7056 END IF;
7057 IF FND_MSG_PUB.Check_Msg_Level
7058 (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
7059 THEN
7060 FND_MSG_PUB.Add_Exc_Msg
7061 (G_PKG_NAME ,
7062 l_api_name
7063 );
7064 END IF;
7065 FND_MSG_PUB.Count_And_Get
7066 (p_encoded => FND_API.G_FALSE,
7067 p_count => x_msg_count,
7068 p_data => x_msg_data
7069 );
7070
7071 END get_and_update_acct_class;
7072
7073 /*------------------------------------------------------*/
7074 /* Procedure name: update_child_instance_location */
7075 /* Description : procedure used to update the child */
7076 /* Instances */
7077 /*------------------------------------------------------*/
7078
7079 PROCEDURE update_child_instance_location
7080 (p_api_version IN NUMBER,
7081 p_commit IN VARCHAR2,
7082 p_init_msg_list IN VARCHAR2,
7083 p_validation_level IN NUMBER,
7084 p_instance_rec IN OUT NOCOPY csi_datastructures_pub.instance_rec,
7085 p_original_status_id IN NUMBER,
7086 p_original_system_id IN NUMBER,
7087 p_txn_rec IN OUT NOCOPY csi_datastructures_pub.transaction_rec,
7088 x_instance_id_lst OUT NOCOPY csi_datastructures_pub.id_tbl,
7089 x_return_status OUT NOCOPY VARCHAR2,
7090 p_unexpire IN VARCHAR2,
7091 p_oks_txn_inst_tbl IN OUT NOCOPY oks_ibint_pub.txn_instance_tbl,
7092 p_child_inst_tbl IN OUT NOCOPY csi_item_instance_grp.child_inst_tbl,
7093 p_orig_install_date IN DATE,
7094 x_msg_count OUT NOCOPY NUMBER,
7095 x_msg_data OUT NOCOPY VARCHAR2
7096 )
7097 IS
7098 l_api_name CONSTANT VARCHAR2(30) := 'UPDATE_CHILD_INST_LOCATION';
7099 l_api_version CONSTANT NUMBER := 1.0;
7100 l_debug_level NUMBER;
7101 l_instance_id NUMBER;
7102 l_dummy NUMBER;
7103 l_instance_rec csi_datastructures_pub.instance_rec:=p_instance_rec;
7104 l_object_version_number NUMBER;
7105 l_return_value BOOLEAN;
7106 l_csi_item_instance_h_id NUMBER;
7107 l_full_dump_frequency NUMBER;
7108 l_mod_value NUMBER;
7109 l_dump_flag VARCHAR2(1);
7110 l_msg_index NUMBER;
7111 l_msg_count NUMBER;
7112 l_instance_hist_rec csi_datastructures_pub.instance_history_rec;
7113 --Start of:Added for bug 5615169
7114 l_inst_hist_tbl_blk_ins csi_datastructures_pub.instance_history_tbl; -- used for bulk insert
7115 l_inst_hist_rec_tab csi_item_instance_grp.instance_history_rec_tab; -- used for column table
7116 l_ciih_blk_ins_cnt NUMBER := 0;
7117 l_user_id NUMBER := FND_GLOBAL.USER_ID;
7118 l_login_id NUMBER := FND_GLOBAL.CONC_LOGIN_ID;
7119 --End of:Added for bug 5615169
7120
7121 --Added for bug 7708851, base bug 7239642
7122 l_raise_bes_event VARCHAR2(1) := nvl(fnd_profile.value('CSI_RAISE_BES_CUST_OWNED_INSTANCES'),'N');
7123 l_create_event_called VARCHAR2(1) := 'N';
7124
7125 CURSOR curr_instance_rec(p_instance_id IN NUMBER) IS
7126 SELECT
7127 INSTANCE_ID,
7128 INSTANCE_NUMBER,
7129 EXTERNAL_REFERENCE,
7130 INVENTORY_ITEM_ID,
7131 NULL VLD_ORGANIZATION_ID,
7132 INVENTORY_REVISION,
7133 INV_MASTER_ORGANIZATION_ID,
7134 SERIAL_NUMBER,
7135 MFG_SERIAL_NUMBER_FLAG,
7136 LOT_NUMBER,
7137 QUANTITY,
7138 UNIT_OF_MEASURE,
7139 ACCOUNTING_CLASS_CODE,
7140 INSTANCE_CONDITION_ID,
7141 INSTANCE_STATUS_ID,
7142 CUSTOMER_VIEW_FLAG,
7143 MERCHANT_VIEW_FLAG,
7144 SELLABLE_FLAG,
7145 SYSTEM_ID,
7146 INSTANCE_TYPE_CODE,
7147 ACTIVE_START_DATE,
7148 ACTIVE_END_DATE,
7149 LOCATION_TYPE_CODE,
7150 LOCATION_ID,
7151 INV_ORGANIZATION_ID,
7152 INV_SUBINVENTORY_NAME,
7153 INV_LOCATOR_ID,
7154 PA_PROJECT_ID,
7155 PA_PROJECT_TASK_ID,
7156 IN_TRANSIT_ORDER_LINE_ID,
7157 WIP_JOB_ID,
7158 PO_ORDER_LINE_ID,
7159 LAST_OE_ORDER_LINE_ID,
7160 LAST_OE_RMA_LINE_ID,
7161 LAST_PO_PO_LINE_ID,
7162 LAST_OE_PO_NUMBER,
7163 LAST_WIP_JOB_ID,
7164 LAST_PA_PROJECT_ID,
7165 LAST_PA_TASK_ID,
7166 LAST_OE_AGREEMENT_ID,
7167 INSTALL_DATE,
7168 MANUALLY_CREATED_FLAG,
7169 RETURN_BY_DATE,
7170 ACTUAL_RETURN_DATE,
7171 CREATION_COMPLETE_FLAG,
7172 COMPLETENESS_FLAG,
7173 NULL VERSION_LABEL,
7174 NULL VERSION_LABEL_DESCRIPTION,
7175 CONTEXT,
7176 ATTRIBUTE1,
7177 ATTRIBUTE2,
7178 ATTRIBUTE3,
7179 ATTRIBUTE4,
7180 ATTRIBUTE5,
7181 ATTRIBUTE6,
7182 ATTRIBUTE7,
7183 ATTRIBUTE8,
7184 ATTRIBUTE9,
7185 ATTRIBUTE10,
7186 ATTRIBUTE11,
7187 ATTRIBUTE12,
7188 ATTRIBUTE13,
7189 ATTRIBUTE14,
7190 ATTRIBUTE15,
7191 OBJECT_VERSION_NUMBER,
7192 LAST_TXN_LINE_DETAIL_ID,
7193 INSTALL_LOCATION_TYPE_CODE,
7194 INSTALL_LOCATION_ID,
7195 INSTANCE_USAGE_CODE,
7196 LAST_VLD_ORGANIZATION_ID,
7197 CONFIG_INST_REV_NUM,
7198 CONFIG_VALID_STATUS,
7199 INSTANCE_DESCRIPTION,
7200 --start of column addition for eam integration--
7201 NETWORK_ASSET_FLAG,
7202 MAINTAINABLE_FLAG,
7203 PN_LOCATION_ID,
7204 ASSET_CRITICALITY_CODE,
7205 CATEGORY_ID,
7206 EQUIPMENT_GEN_OBJECT_ID,
7207 INSTANTIATION_FLAG,
7208 LINEAR_LOCATION_ID,
7209 OPERATIONAL_LOG_FLAG,
7210 CHECKIN_STATUS,
7211 SUPPLIER_WARRANTY_EXP_DATE,
7212 ATTRIBUTE16,
7213 ATTRIBUTE17,
7214 ATTRIBUTE18,
7215 ATTRIBUTE19,
7216 ATTRIBUTE20,
7217 ATTRIBUTE21,
7218 ATTRIBUTE22,
7219 ATTRIBUTE23,
7220 ATTRIBUTE24,
7221 ATTRIBUTE25,
7222 ATTRIBUTE26,
7223 ATTRIBUTE27,
7224 ATTRIBUTE28,
7225 ATTRIBUTE29,
7226 ATTRIBUTE30,
7227 --end of column addition for eam integration--
7228 -- Addition of columns for FA Integration
7229 PURCHASE_UNIT_PRICE,
7230 PURCHASE_CURRENCY_CODE,
7231 PAYABLES_UNIT_PRICE,
7232 PAYABLES_CURRENCY_CODE,
7233 SALES_UNIT_PRICE,
7234 SALES_CURRENCY_CODE,
7235 OPERATIONAL_STATUS_CODE,
7236 -- End addition of columns for FA Integration
7237 SOURCE_CODE -- Added Code for Siebel Genesis Project
7238 FROM csi_item_instances
7239 WHERE instance_id = p_instance_id
7240 FOR UPDATE OF OBJECT_VERSION_NUMBER ;
7241
7242 l_curr_instance_rec curr_instance_rec%ROWTYPE;
7243 --
7244 CURSOR new_instance_rec(p_instance_id IN NUMBER) IS
7245 select * from csi_item_instances
7246 where instance_id = p_instance_id;
7247 --
7248 l_new_instance_rec new_instance_rec%ROWTYPE;
7249
7250 CURSOR ins_hist_csr(p_instance_history_id NUMBER) IS
7251 SELECT instance_history_id
7252 ,instance_id
7253 ,transaction_id
7254 ,old_instance_number
7255 ,new_instance_number
7256 ,old_external_reference
7257 ,new_external_reference
7258 ,old_inventory_item_id
7259 ,new_inventory_item_id
7260 ,old_inventory_revision
7261 ,new_inventory_revision
7262 ,old_inv_master_organization_id
7263 ,new_inv_master_organization_id
7264 ,old_serial_number
7265 ,new_serial_number
7266 ,old_mfg_serial_number_flag
7267 ,new_mfg_serial_number_flag
7268 ,old_lot_number
7269 ,new_lot_number
7270 ,old_quantity
7271 ,new_quantity
7272 ,old_unit_of_measure
7273 ,new_unit_of_measure
7274 ,old_accounting_class_code
7275 ,new_accounting_class_code
7276 ,old_instance_condition_id
7277 ,new_instance_condition_id
7278 ,old_instance_status_id
7279 ,new_instance_status_id
7280 ,old_customer_view_flag
7281 ,new_customer_view_flag
7282 ,old_merchant_view_flag
7283 ,new_merchant_view_flag
7284 ,old_sellable_flag
7285 ,new_sellable_flag
7286 ,old_system_id
7287 ,new_system_id
7288 ,old_instance_type_code
7289 ,new_instance_type_code
7290 ,old_active_start_date
7291 ,new_active_start_date
7292 ,old_active_end_date
7293 ,new_active_end_date
7294 ,old_location_type_code
7295 ,new_location_type_code
7296 ,old_location_id
7297 ,new_location_id
7298 ,old_inv_organization_id
7299 ,new_inv_organization_id
7300 ,old_inv_subinventory_name
7301 ,new_inv_subinventory_name
7302 ,old_inv_locator_id
7303 ,new_inv_locator_id
7304 ,old_pa_project_id
7305 ,new_pa_project_id
7306 ,old_pa_project_task_id
7307 ,new_pa_project_task_id
7308 ,old_in_transit_order_line_id
7309 ,new_in_transit_order_line_id
7310 ,old_wip_job_id
7311 ,new_wip_job_id
7312 ,old_po_order_line_id
7313 ,new_po_order_line_id
7314 ,old_completeness_flag
7315 ,new_completeness_flag
7316 ,old_context
7317 ,new_context
7318 ,old_attribute1
7319 ,new_attribute1
7320 ,old_attribute2
7321 ,new_attribute2
7322 ,old_attribute3
7323 ,new_attribute3
7324 ,old_attribute4
7325 ,new_attribute4
7326 ,old_attribute5
7327 ,new_attribute5
7328 ,old_attribute6
7329 ,new_attribute6
7330 ,old_attribute7
7331 ,new_attribute7
7332 ,old_attribute8
7333 ,new_attribute8
7334 ,old_attribute9
7335 ,new_attribute9
7336 ,old_attribute10
7337 ,new_attribute10
7338 ,old_attribute11
7339 ,new_attribute11
7340 ,old_attribute12
7341 ,new_attribute12
7342 ,old_attribute13
7343 ,new_attribute13
7344 ,old_attribute14
7345 ,new_attribute14
7346 ,old_attribute15
7347 ,new_attribute15
7348 ,full_dump_flag
7349 ,old_inst_loc_type_code
7350 ,new_inst_loc_type_code
7351 ,old_inst_loc_id
7352 ,new_inst_loc_id
7353 ,old_inst_usage_code
7354 ,new_inst_usage_code
7355 ,old_last_vld_organization_id
7356 ,new_last_vld_organization_id
7357 ,old_config_inst_rev_num
7358 ,new_config_inst_rev_num
7359 ,old_config_valid_status
7360 ,new_config_valid_status
7361 ,old_instance_description
7362 ,new_instance_description
7363 ,old_oe_agreement_id
7364 ,new_oe_agreement_id
7365 ,old_last_oe_order_line_id
7366 ,new_last_oe_order_line_id
7367 ,old_last_oe_rma_line_id
7368 ,new_last_oe_rma_line_id
7369 ,old_last_wip_job_id
7370 ,new_last_wip_job_id
7371 ,old_last_po_po_line_id
7372 ,new_last_po_po_line_id
7373 ,old_last_pa_project_id
7374 ,new_last_pa_project_id
7375 ,old_last_pa_task_id
7376 ,new_last_pa_task_id
7377 ,old_last_txn_line_detail_id
7378 ,new_last_txn_line_detail_id
7379 ,old_last_oe_po_number
7380 ,new_last_oe_po_number
7381 --start of column addition for eam integration--
7382 ,old_network_asset_flag
7383 ,new_network_asset_flag
7384 ,old_maintainable_flag
7385 ,new_maintainable_flag
7386 ,old_pn_location_id
7387 ,new_pn_location_id
7388 ,old_asset_criticality_code
7389 ,new_asset_criticality_code
7390 ,old_category_id
7391 ,new_category_id
7392 ,old_equipment_gen_object_id
7393 ,new_equipment_gen_object_id
7394 ,old_instantiation_flag
7395 ,new_instantiation_flag
7396 ,old_linear_location_id
7397 ,new_linear_location_id
7398 ,old_operational_log_flag
7399 ,new_operational_log_flag
7400 ,old_checkin_status
7401 ,new_checkin_status
7402 ,old_supplier_warranty_exp_date
7403 ,new_supplier_warranty_exp_date
7404 ,old_attribute16
7405 ,new_attribute16
7406 ,old_attribute17
7407 ,new_attribute17
7408 ,old_attribute18
7409 ,new_attribute18
7410 ,old_attribute19
7411 ,new_attribute19
7412 ,old_attribute20
7413 ,new_attribute20
7414 ,old_attribute21
7415 ,new_attribute21
7416 ,old_attribute22
7417 ,new_attribute22
7418 ,old_attribute23
7419 ,new_attribute23
7420 ,old_attribute24
7421 ,new_attribute24
7422 ,old_attribute25
7423 ,new_attribute25
7424 ,old_attribute26
7425 ,new_attribute26
7426 ,old_attribute27
7427 ,new_attribute27
7428 ,old_attribute28
7429 ,new_attribute28
7430 ,old_attribute29
7431 ,new_attribute29
7432 ,old_attribute30
7433 ,new_attribute30
7434 ,old_install_date
7435 ,new_install_date
7436 --end of column addition for eam integration--
7437 -- Addition of columns for FA Integration
7438 ,old_payables_unit_price
7439 ,new_payables_unit_price
7440 ,old_payables_currency_code
7441 ,new_payables_currency_code
7442 ,old_purchase_unit_price
7443 ,new_purchase_unit_price
7444 ,old_purchase_currency_code
7445 ,new_purchase_currency_code
7446 ,old_sales_unit_price
7447 ,new_sales_unit_price
7448 ,old_sales_currency_code
7449 ,new_sales_currency_code
7450 ,old_operational_status_code
7451 ,new_operational_status_code
7452 -- End addition of columns for FA Integration
7453 -- Begin Add Code for Siebel Genesis Project
7454 ,OLD_SOURCE_CODE
7455 ,NEW_SOURCE_CODE
7456 -- End Add Code for Siebel Genesis Project
7457 FROM csi_item_instances_h
7458 WHERE instance_history_id = p_instance_history_id
7459 FOR UPDATE OF OBJECT_VERSION_NUMBER ;
7460
7461 l_ins_hist_id NUMBER;
7462 l_ins_hist_csr ins_hist_csr%ROWTYPE;
7463 l_last_vld_organization_id NUMBER;
7464 l_child_temp VARCHAR2(1);
7465 p_rel_query_rec csi_datastructures_pub.relationship_query_rec;
7466 l_rel_tbl csi_datastructures_pub.ii_relationship_tbl;
7467 l_ii_relationship_level_tbl csi_ii_relationships_pvt.ii_relationship_level_tbl;
7468 l_vld_org_id NUMBER;
7469 PROCESS_NEXT EXCEPTION;
7470 l_instance_status_id NUMBER;
7471 l_system_id NUMBER;
7472 l_termination_status BOOLEAN := FALSE;
7473 l_order_line_id NUMBER;
7474 l_oks_txn_type VARCHAR2(3);
7475 l_internal_party_id NUMBER;
7476 l_party_id NUMBER;
7477 l_eam_item BOOLEAN := FALSE;
7478 l_instance_history_id NUMBER;
7479 l_maintenance_object_type NUMBER := 3;
7480 l_child_count NUMBER;
7481 l_install_date DATE;
7482 l_valid BOOLEAN := TRUE;
7483 l_creation_flag VARCHAR2(1);
7484 l_config_inst_hdr_id NUMBER := fnd_api.g_miss_num;
7485 l_config_inst_rev_num NUMBER := fnd_api.g_miss_num;
7486 l_config_inst_item_id NUMBER := fnd_api.g_miss_num;
7487 l_config_valid_status VARCHAR2(30) := fnd_api.g_miss_char;
7488 l_root_asset_id NUMBER;
7489 l_exists VARCHAR2(1);
7490 BEGIN
7491
7492 -- Standard Start of API savepoint
7493 IF FND_API.To_Boolean( p_commit )
7494 THEN
7495 SAVEPOINT update_child_instance_pvt;
7496 END IF;
7497
7498
7499 -- Standard call to check for call compatibility.
7500 IF NOT FND_API.Compatible_API_Call (l_api_version,
7501 p_api_version,
7502 l_api_name ,
7503 G_PKG_NAME )
7504 THEN
7505 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
7506 END IF;
7507
7508 -- Initialize message list if p_init_msg_list is set to TRUE.
7509 IF FND_API.to_Boolean( p_init_msg_list ) THEN
7510 FND_MSG_PUB.initialize;
7511 END IF;
7512 -- Initialize API return status to success
7513 x_return_status := FND_API.G_RET_STS_SUCCESS;
7514
7515 -- Check the profile option debug_level for debug message reporting
7516 l_debug_level:=fnd_profile.value('CSI_DEBUG_LEVEL');
7517
7518 -- If debug_level = 1 then dump the procedure name
7519 IF (l_debug_level > 0) THEN
7520 csi_gen_utility_pvt.put_line ( 'update_child_instance_pvt');
7521 END IF;
7522
7523 -- If the debug level = 2 then dump all the parameters values.
7524 IF (l_debug_level > 1) THEN
7525 csi_gen_utility_pvt.put_line ( 'update_child_instance_pvt:' ||
7526 p_api_version ||'-'||
7527 p_commit ||'-'||
7528 p_init_msg_list );
7529 END IF;
7530
7531 -- Start API body
7532 IF csi_datastructures_pub.g_install_param_rec.fetch_flag IS NULL THEN
7533 csi_gen_utility_pvt.populate_install_param_rec;
7534 END IF;
7535 --
7536 l_internal_party_id := csi_datastructures_pub.g_install_param_rec.internal_party_id;
7537 --
7538 IF l_internal_party_id IS NULL THEN
7539 FND_MESSAGE.SET_NAME('CSI','CSI_API_UNINSTALLED_PARAMETER');
7540 FND_MSG_PUB.ADD;
7541 RAISE FND_API.G_EXC_ERROR;
7542 END IF;
7543 --
7544 -- ADDED FOR BUG 2957236
7545 IF p_instance_rec.instance_status_id IS NOT NULL AND
7546 p_instance_rec.instance_status_id <> fnd_api.g_miss_num
7547 THEN
7548 IF csi_item_instance_vld_pvt.termination_status
7549 ( p_instance_status_id => p_instance_rec.instance_status_id )
7550 THEN
7551 l_termination_status := TRUE;
7552 l_config_inst_hdr_id := null;
7553 l_config_inst_rev_num := null;
7554 l_config_inst_item_id := null;
7555 l_config_valid_status := null;
7556 ELSE
7557 l_termination_status := FALSE;
7558 END IF;
7559 END IF;
7560 -- END ADDITION FOR BUG 2957236
7561
7562 -- Start API body
7563 p_rel_query_rec.object_id := p_instance_rec.instance_id;
7564 p_rel_query_rec.relationship_type_code := 'COMPONENT-OF';
7565 --
7566 IF p_rel_query_rec.object_id IS NOT NULL AND
7567 p_rel_query_rec.object_id <> FND_API.G_MISS_NUM THEN
7568 IF p_unexpire = FND_API.G_TRUE THEN
7569 csi_gen_utility_pvt.put_line ( 'Calling Get_Children for Un-expiry...');
7570 csi_ii_relationships_pvt.Get_Children
7571 ( p_relationship_query_rec => p_rel_query_rec,
7572 p_rel_tbl => l_rel_tbl,
7573 p_depth => NULL,
7574 p_active_relationship_only => FND_API.G_TRUE,
7575 p_active_instances_only => FND_API.G_FALSE, -- should be passed only when un-expiring
7576 p_time_stamp => FND_API.G_MISS_DATE,
7577 p_get_dfs => FND_API.G_FALSE,
7578 p_ii_relationship_level_tbl => l_ii_relationship_level_tbl,
7579 x_return_status => x_return_status,
7580 x_msg_count => x_msg_count,
7581 x_msg_data => x_msg_data
7582 );
7583 --
7584 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
7585 FND_MESSAGE.SET_NAME('CSI','CSI_API_GET_CHILDREN_ERROR');
7586 FND_MSG_PUB.Add;
7587 RAISE FND_API.G_EXC_ERROR;
7588 END IF;
7589 ELSE
7590 csi_gen_utility_pvt.put_line ( 'Calling Get_Children for Regular Inheritance...');
7591 csi_ii_relationships_pvt.Get_Children
7592 ( p_relationship_query_rec => p_rel_query_rec,
7593 p_rel_tbl => l_rel_tbl,
7594 p_depth => NULL,
7595 p_active_relationship_only => FND_API.G_TRUE,
7596 p_time_stamp => FND_API.G_MISS_DATE,
7597 p_get_dfs => FND_API.G_FALSE,
7598 p_ii_relationship_level_tbl => l_ii_relationship_level_tbl,
7599 x_return_status => x_return_status,
7600 x_msg_count => x_msg_count,
7601 x_msg_data => x_msg_data
7602 );
7603 --
7604 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
7605 FND_MESSAGE.SET_NAME('CSI','CSI_API_GET_CHILDREN_ERROR');
7606 FND_MSG_PUB.Add;
7607 RAISE FND_API.G_EXC_ERROR;
7608 END IF;
7609 END IF;
7610 END IF;
7611 --
7612 csi_gen_utility_pvt.put_line ( 'Rel Table count is : '||to_char(l_rel_tbl.count));
7613 --
7614 -- FOR l_child_instance_id IN child_instances
7615 IF l_rel_tbl.count > 0 THEN
7616 FOR j IN l_rel_tbl.FIRST .. l_rel_tbl.LAST
7617 LOOP
7618 BEGIN
7619 csi_gen_utility_pvt.put_line ( 'Processing Child Instance : '||to_char(l_rel_tbl(j).subject_id));
7620 -- Opening Cursor to retrieve Child Id records Details
7621 OPEN curr_instance_rec(l_rel_tbl(j).subject_id);
7622 FETCH curr_instance_rec INTO l_curr_instance_rec;
7623 IF curr_instance_rec%NOTFOUND THEN
7624 FND_MESSAGE.Set_Name('CSI', 'CSI_API_RECORD_LOCKED');
7625 FND_MSG_PUB.ADD;
7626 RAISE FND_API.G_EXC_ERROR;
7627 END IF;
7628 CLOSE curr_instance_rec;
7629 --This code has been added to make sure that the expired child instance should not get inherited
7630 --if there is any update to the parent in the component-of relationship.
7631 --Start of modifications for Bug#2887590
7632 --
7633 -- srramakr commented out active_end_date condition since the inheritance should look only for Qty
7634 -- active_end_date check will not allow you to un-expire a child instance having qty > 0.
7635 -- No need to select from CSI_ITEM_INSTANCES since l_curr_instance_re already has the instance info.
7636 IF l_curr_instance_rec.quantity = 0 THEN
7637 RAISE PROCESS_NEXT;
7638 END IF;
7639 --End of modifications for Bug#2887590
7640 --
7641
7642 p_instance_rec.object_version_number := l_curr_instance_rec.object_version_number + 1;
7643
7644 -- Following code is added for bug 2957236.
7645 -- If termination_status then it should be assigned to all the child instances
7646 -- else it should be assigned to only those instances which are with the same instance status
7647 -- as that of the parent.
7648 l_instance_status_id:= fnd_api.g_miss_num;
7649 IF l_termination_status
7650 THEN
7651 l_instance_status_id := p_instance_rec.instance_status_id;
7652 ELSIF NOT(l_termination_status)
7653 THEN
7654 IF p_original_status_id=l_curr_instance_rec.instance_status_id
7655 AND p_original_status_id <> fnd_api.g_miss_num
7656 THEN
7657 l_instance_status_id:=p_instance_rec.instance_status_id;
7658 END IF;
7659 END IF;
7660 -- System_id Cascade
7661 l_system_id := fnd_api.g_miss_num;
7662 IF p_original_system_id IS NOT NULL AND
7663 p_original_system_id <> fnd_api.g_miss_num THEN
7664 IF p_original_system_id = nvl(l_curr_instance_rec.system_id,-999) THEN
7665 l_system_id := p_instance_rec.system_id;
7666 END IF;
7667 ELSIF p_original_system_id IS NULL AND
7668 l_curr_instance_rec.system_id IS NULL THEN
7669 l_system_id := p_instance_rec.system_id;
7670 END IF;
7671 -- Install Date Cascade
7672 -- Cascade only if the component has the same install date as parent
7673 l_install_date := fnd_api.g_miss_date;
7674 IF p_orig_install_date IS NOT NULL AND
7675 p_orig_install_date <> fnd_api.g_miss_date THEN
7676 IF p_orig_install_date = nvl(l_curr_instance_rec.install_date,fnd_api.g_miss_date) THEN
7677 l_install_date := p_instance_rec.install_date;
7678 END IF;
7679 ELSIF p_orig_install_date IS NULL AND
7680 l_curr_instance_rec.install_date IS NULL THEN
7681 l_install_date := p_instance_rec.install_date;
7682 END IF;
7683 -- Start code addition for eam integration
7684 IF csi_item_instance_vld_pvt.Check_for_eam_item
7685 (p_inventory_item_id => l_curr_instance_rec.inventory_item_id,
7686 p_organization_id => l_curr_instance_rec.last_vld_organization_id)
7687 THEN
7688 l_eam_item := TRUE;
7689 END IF;
7690
7691 IF l_eam_item AND
7692 (p_instance_rec.active_end_date IS NOT NULL AND
7693 p_instance_rec.active_end_date <> fnd_api.g_miss_date)
7694 THEN
7695 IF NOT eam_common_utilities_pvt.check_deactivate
7696 (p_maintenance_object_id => l_rel_tbl(j).subject_id
7697 ,p_maintenance_object_type => l_maintenance_object_type)
7698 THEN
7699 csi_gen_utility_pvt.put_line('Error from eam_common_utilities_pvt.check_deactivate API ');
7700 RAISE fnd_api.g_exc_error;
7701 END IF;
7702 END IF;
7703 -- End code addition for eam integration
7704 --
7705 l_child_count := p_child_inst_tbl.count + 1;
7706 p_child_inst_tbl(l_child_count) := l_rel_tbl(j).subject_id;
7707 --
7708 -- validate instance status id
7709 IF NVL(l_instance_status_id,fnd_api.g_miss_num) <> fnd_api.g_miss_num
7710 THEN
7711 csi_item_instance_vld_pvt.is_valid_status(
7712 p_instance_status_id => l_instance_status_id,
7713 p_creation_complete_flag => l_creation_flag,
7714 l_return_value => l_valid);
7715 IF NOT(l_valid)
7716 THEN
7717 RAISE fnd_api.g_exc_error;
7718 END IF;
7719 END IF;
7720
7721 IF l_instance_status_id IS NOT NULL AND
7722 l_instance_status_id <> FND_API.G_MISS_NUM AND
7723 l_instance_status_id <> l_curr_instance_rec.INSTANCE_STATUS_ID
7724 THEN
7725 IF NOT csi_item_instance_vld_pvt.is_status_updateable
7726 (p_instance_status => l_instance_status_id
7727 ,p_current_status => l_curr_instance_rec.INSTANCE_STATUS_ID)
7728 THEN
7729 RAISE fnd_api.g_exc_error;
7730 END IF;
7731 END IF;
7732
7733 --Start of:Added for bug 6177045
7734 --Modified for bug 13039570
7735 IF l_curr_instance_rec.LAST_OE_ORDER_LINE_ID IS NULL
7736 THEN
7737 l_curr_instance_rec.LAST_OE_ORDER_LINE_ID := p_instance_Rec.LAST_OE_ORDER_LINE_ID;
7738 ELSE
7739 BEGIN
7740 SELECT 'Y'
7741 INTO l_exists
7742 FROM oe_order_lines_all ool1,
7743 oe_order_lines_all ool2
7744 WHERE ool1.header_id = ool2.header_id
7745 AND ool1.line_id = l_curr_instance_rec.LAST_OE_ORDER_LINE_ID
7746 AND ool2.line_id = p_instance_Rec.LAST_OE_ORDER_LINE_ID
7747 AND ROWNUM = 1;
7748 EXCEPTION
7749 WHEN No_Data_Found THEN
7750 l_curr_instance_rec.LAST_OE_ORDER_LINE_ID := p_instance_Rec.LAST_OE_ORDER_LINE_ID;
7751 END;
7752 END IF;
7753 --End of:Added for bug 6177045
7754
7755 --Added for bug 7708851, base bug 7239642
7756 BEGIN
7757 SELECT 'Y'
7758 INTO l_create_event_called
7759 FROM csi_item_instances_h
7760 WHERE instance_id = l_rel_tbl(j).subject_id
7761 AND new_accounting_class_code = 'CUST_PROD'
7762 AND ROWNUM = 1;
7763 EXCEPTION
7764 WHEN OTHERS THEN
7765 l_create_event_called := 'N';
7766 END;
7767 IF (l_debug_level > 1) THEN
7768 csi_gen_utility_pvt.put_line('l_create_event_called : '||l_create_event_called);
7769 END IF;
7770
7771 CSI_ITEM_INSTANCES_PKG.Update_Row
7772 ( p_INSTANCE_ID => l_rel_tbl(j).subject_id,
7773 p_INSTANCE_NUMBER => FND_API.G_MISS_CHAR,
7774 p_EXTERNAL_REFERENCE => FND_API.G_MISS_CHAR,
7775 p_INVENTORY_ITEM_ID => FND_API.G_MISS_NUM,
7776 p_INVENTORY_REVISION => FND_API.G_MISS_CHAR,
7777 p_INV_MASTER_ORGANIZATION_ID => FND_API.G_MISS_NUM,
7778 p_SERIAL_NUMBER => FND_API.G_MISS_CHAR,
7779 p_MFG_SERIAL_NUMBER_FLAG => FND_API.G_MISS_CHAR,
7780 p_LOT_NUMBER => FND_API.G_MISS_CHAR,
7781 p_QUANTITY => FND_API.G_MISS_NUM,
7782 p_UNIT_OF_MEASURE => FND_API.G_MISS_CHAR,
7783 p_ACCOUNTING_CLASS_CODE => p_instance_rec.ACCOUNTING_CLASS_CODE,
7784 p_INSTANCE_CONDITION_ID => FND_API.G_MISS_NUM,
7785 p_INSTANCE_STATUS_ID => l_instance_status_id, --p_instance_rec.INSTANCE_STATUS_ID,
7786 p_CUSTOMER_VIEW_FLAG => FND_API.G_MISS_CHAR,
7787 p_MERCHANT_VIEW_FLAG => FND_API.G_MISS_CHAR,
7788 p_SELLABLE_FLAG => FND_API.G_MISS_CHAR,
7789 p_SYSTEM_ID => l_system_id,--FND_API.G_MISS_NUM,
7790 p_INSTANCE_TYPE_CODE => FND_API.G_MISS_CHAR,
7791 p_ACTIVE_START_DATE => FND_API.G_MISS_DATE,
7792 p_ACTIVE_END_DATE => p_instance_Rec.ACTIVE_END_DATE,
7793 p_LOCATION_TYPE_CODE => p_instance_rec.LOCATION_TYPE_CODE,
7794 p_LOCATION_ID => p_instance_rec.LOCATION_ID,
7795 p_INV_ORGANIZATION_ID => p_instance_rec.INV_ORGANIZATION_ID,
7796 p_INV_SUBINVENTORY_NAME => p_instance_rec.INV_SUBINVENTORY_NAME,
7797 p_INV_LOCATOR_ID => p_instance_rec.INV_LOCATOR_ID,
7798 p_PA_PROJECT_ID => p_instance_rec.PA_PROJECT_ID,
7799 p_PA_PROJECT_TASK_ID => p_instance_rec.PA_PROJECT_TASK_ID,
7800 p_IN_TRANSIT_ORDER_LINE_ID => p_instance_rec.IN_TRANSIT_ORDER_LINE_ID,
7801 p_WIP_JOB_ID => p_instance_rec.WIP_JOB_ID,
7802 p_PO_ORDER_LINE_ID => p_instance_rec.PO_ORDER_LINE_ID,
7803 --p_LAST_OE_ORDER_LINE_ID => p_instance_rec.LAST_OE_ORDER_LINE_ID, Commented for bug 6177045
7804 p_LAST_OE_ORDER_LINE_ID => l_curr_instance_rec.LAST_OE_ORDER_LINE_ID, --Added for bug 6177045
7805 --Start of changes for bug:5899043
7806 p_LAST_OE_RMA_LINE_ID => FND_API.G_MISS_NUM, --p_instance_rec.LAST_OE_RMA_LINE_ID,
7807 p_LAST_PO_PO_LINE_ID => FND_API.G_MISS_NUM, --p_instance_rec.LAST_PO_PO_LINE_ID,
7808 p_LAST_OE_PO_NUMBER => FND_API.G_MISS_CHAR,--p_instance_rec.LAST_OE_PO_NUMBER,
7809 p_LAST_WIP_JOB_ID => FND_API.G_MISS_NUM, --p_instance_rec.LAST_WIP_JOB_ID,
7810 p_LAST_PA_PROJECT_ID => FND_API.G_MISS_NUM, --p_instance_rec.LAST_PA_PROJECT_ID,
7811 p_LAST_PA_TASK_ID => FND_API.G_MISS_NUM, --p_instance_rec.LAST_PA_TASK_ID,
7812 p_LAST_OE_AGREEMENT_ID => FND_API.G_MISS_NUM, --p_instance_rec.LAST_OE_AGREEMENT_ID,
7813 --End of changes for bug:5899043
7814 p_INSTALL_DATE => l_install_date, -- Install Date should be cascaded
7815 p_MANUALLY_CREATED_FLAG => FND_API.G_MISS_CHAR,
7816 p_RETURN_BY_DATE => FND_API.G_MISS_DATE,
7817 p_ACTUAL_RETURN_DATE => FND_API.G_MISS_DATE,
7818 p_CREATION_COMPLETE_FLAG => FND_API.G_MISS_CHAR,
7819 p_COMPLETENESS_FLAG => FND_API.G_MISS_CHAR,
7820 p_CONTEXT => FND_API.G_MISS_CHAR,
7821 p_ATTRIBUTE1 => FND_API.G_MISS_CHAR,
7822 p_ATTRIBUTE2 => FND_API.G_MISS_CHAR,
7823 p_ATTRIBUTE3 => FND_API.G_MISS_CHAR,
7824 p_ATTRIBUTE4 => FND_API.G_MISS_CHAR,
7825 p_ATTRIBUTE5 => FND_API.G_MISS_CHAR,
7826 p_ATTRIBUTE6 => FND_API.G_MISS_CHAR,
7827 p_ATTRIBUTE7 => FND_API.G_MISS_CHAR,
7828 p_ATTRIBUTE8 => FND_API.G_MISS_CHAR,
7829 p_ATTRIBUTE9 => FND_API.G_MISS_CHAR,
7830 p_ATTRIBUTE10 => FND_API.G_MISS_CHAR,
7831 p_ATTRIBUTE11 => FND_API.G_MISS_CHAR,
7832 p_ATTRIBUTE12 => FND_API.G_MISS_CHAR,
7833 p_ATTRIBUTE13 => FND_API.G_MISS_CHAR,
7834 p_ATTRIBUTE14 => FND_API.G_MISS_CHAR,
7835 p_ATTRIBUTE15 => FND_API.G_MISS_CHAR,
7836 p_CREATED_BY => fnd_api.g_miss_num,
7837 p_CREATION_DATE => fnd_api.g_miss_date,
7838 p_LAST_UPDATED_BY => FND_GLOBAL.USER_ID,
7839 p_LAST_UPDATE_DATE => SYSDATE,
7840 p_LAST_UPDATE_LOGIN => FND_GLOBAL.CONC_LOGIN_ID,
7841 p_OBJECT_VERSION_NUMBER => p_instance_rec.OBJECT_VERSION_NUMBER,
7842 p_LAST_TXN_LINE_DETAIL_ID => FND_API.G_MISS_NUM,
7843 p_INSTALL_LOCATION_TYPE_CODE => p_instance_rec.INSTALL_LOCATION_TYPE_CODE,
7844 p_INSTALL_LOCATION_ID => p_instance_rec.INSTALL_LOCATION_ID,
7845 p_INSTANCE_USAGE_CODE => FND_API.G_MISS_CHAR,
7846 p_LAST_VLD_ORGANIZATION_ID => FND_API.G_MISS_NUM,
7847 p_CONFIG_INST_HDR_ID => l_config_inst_hdr_id, --FND_API.G_MISS_NUM,
7848 p_CONFIG_INST_REV_NUM => l_config_inst_rev_num, --FND_API.G_MISS_NUM,
7849 p_CONFIG_INST_ITEM_ID => l_config_inst_item_id, --FND_API.G_MISS_NUM,
7850 p_CONFIG_VALID_STATUS => l_config_valid_status,--FND_API.G_MISS_CHAR,
7851 p_INSTANCE_DESCRIPTION => FND_API.G_MISS_CHAR,
7852 p_REQUEST_ID => FND_API.G_MISS_NUM,
7853 p_PROGRAM_APPLICATION_ID => FND_API.G_MISS_NUM,
7854 p_PROGRAM_ID => FND_API.G_MISS_NUM,
7855 p_PROGRAM_UPDATE_DATE => FND_API.G_MISS_DATE,
7856 --start of parameters addition for eam integration--
7857 p_NETWORK_ASSET_FLAG => FND_API.G_MISS_CHAR,
7858 p_MAINTAINABLE_FLAG => FND_API.G_MISS_CHAR,
7859 p_PN_LOCATION_ID => FND_API.G_MISS_NUM,
7860 p_ASSET_CRITICALITY_CODE => FND_API.G_MISS_CHAR,
7861 p_CATEGORY_ID => FND_API.G_MISS_NUM,
7862 p_EQUIPMENT_GEN_OBJECT_ID => FND_API.G_MISS_NUM,
7863 p_INSTANTIATION_FLAG => FND_API.G_MISS_CHAR,
7864 p_LINEAR_LOCATION_ID => FND_API.G_MISS_NUM,
7865 p_OPERATIONAL_LOG_FLAG => FND_API.G_MISS_CHAR,
7866 p_CHECKIN_STATUS => FND_API.G_MISS_NUM,
7867 p_SUPPLIER_WARRANTY_EXP_DATE => FND_API.G_MISS_DATE,
7868 p_ATTRIBUTE16 => FND_API.G_MISS_CHAR,
7869 p_ATTRIBUTE17 => FND_API.G_MISS_CHAR,
7870 p_ATTRIBUTE18 => FND_API.G_MISS_CHAR,
7871 p_ATTRIBUTE19 => FND_API.G_MISS_CHAR,
7872 p_ATTRIBUTE20 => FND_API.G_MISS_CHAR,
7873 p_ATTRIBUTE21 => FND_API.G_MISS_CHAR,
7874 p_ATTRIBUTE22 => FND_API.G_MISS_CHAR,
7875 p_ATTRIBUTE23 => FND_API.G_MISS_CHAR,
7876 p_ATTRIBUTE24 => FND_API.G_MISS_CHAR,
7877 p_ATTRIBUTE25 => FND_API.G_MISS_CHAR,
7878 p_ATTRIBUTE26 => FND_API.G_MISS_CHAR,
7879 p_ATTRIBUTE27 => FND_API.G_MISS_CHAR,
7880 p_ATTRIBUTE28 => FND_API.G_MISS_CHAR,
7881 p_ATTRIBUTE29 => FND_API.G_MISS_CHAR,
7882 p_ATTRIBUTE30 => FND_API.G_MISS_CHAR,
7883 --end of parameters addition for eam integration--
7884 -- Addition of columns for FA Integration
7885 p_PURCHASE_UNIT_PRICE => FND_API.G_MISS_NUM,
7886 p_PURCHASE_CURRENCY_CODE => FND_API.G_MISS_CHAR,
7887 p_PAYABLES_UNIT_PRICE => FND_API.G_MISS_NUM,
7888 p_PAYABLES_CURRENCY_CODE => FND_API.G_MISS_CHAR,
7889 p_SALES_UNIT_PRICE => FND_API.G_MISS_NUM,
7890 p_SALES_CURRENCY_CODE => FND_API.G_MISS_CHAR,
7891 p_OPERATIONAL_STATUS_CODE => p_instance_rec.operational_status_code,
7892 -- End addition of columns for FA Integration
7893 p_SOURCE_CODE => p_instance_rec.SOURCE_CODE -- Added Code for Siebel Genesis Project
7894 );
7895
7896 --If block added for bug 7239642
7897 csi_gen_utility_pvt.put_line('l_raise_bes_event : ' || l_raise_bes_event);
7898 csi_gen_utility_pvt.put_line('p_instance_rec.INSTANCE_USAGE_CODE : ' || p_instance_rec.INSTANCE_USAGE_CODE);
7899 IF l_raise_bes_event = 'Y' THEN
7900 IF p_instance_rec.INSTANCE_USAGE_CODE = 'OUT_OF_ENTERPRISE' THEN
7901 IF l_create_event_called = 'N' THEN
7902 csi_gen_utility_pvt.put_line('Calling Create Instance Event');
7903 CSI_BUSINESS_EVENT_PVT.CREATE_INSTANCE_EVENT
7904 ( p_api_version => p_api_version
7905 ,p_commit => fnd_api.g_false
7906 ,p_init_msg_list => p_init_msg_list
7907 ,p_validation_level => p_validation_level
7908 ,p_instance_id => l_rel_tbl(j).subject_id
7909 ,p_subject_instance_id => null
7910 ,x_return_status => x_return_status
7911 ,x_msg_count => x_msg_count
7912 ,x_msg_data => x_msg_data
7913 );
7914
7915 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
7916 l_msg_index := 1;
7917 l_msg_count := x_msg_count;
7918
7919 WHILE l_msg_count > 0 LOOP
7920 x_msg_data := FND_MSG_PUB.GET(l_msg_index, FND_API.G_FALSE);
7921 csi_gen_utility_pvt.put_line(' Error from CSI_BUSINESS_EVENT.CREATE_INSTANCE_EVENT');
7922 csi_gen_utility_pvt.put_line('MESSAGE DATA = '||x_msg_data);
7923 l_msg_index := l_msg_index + 1;
7924 l_msg_count := l_msg_count - 1;
7925 END LOOP;
7926 RAISE FND_API.G_EXC_ERROR;
7927 END IF;
7928
7929 --Added call to update instance event for bug 7699277
7930 --As the integration design requires a create event to create the asset
7931 --and an update event to create the relationship hierarchy
7932 l_root_asset_id := csi_ii_relationships_pvt.Get_Root_Parent(l_rel_tbl(j).subject_id,
7933 l_rel_tbl(j).relationship_type_code,
7934 l_rel_tbl(j).object_id);
7935 csi_gen_utility_pvt.put_line('l_rel_tbl(' || j || ').subject_id : ' || l_rel_tbl(j).subject_id);
7936 csi_gen_utility_pvt.put_line('l_rel_tbl(' || j || ').relationship_type_code : ' || l_rel_tbl(j).relationship_type_code);
7937 csi_gen_utility_pvt.put_line('l_rel_tbl(' || j || ').object_id : ' || l_rel_tbl(j).object_id);
7938 csi_gen_utility_pvt.put_line('l_root_asset_id : ' || l_root_asset_id);
7939 csi_gen_utility_pvt.put_line('Calling Update Instance Event');
7940 CSI_BUSINESS_EVENT_PVT.UPDATE_INSTANCE_EVENT
7941 ( p_api_version => p_api_version
7942 ,p_commit => fnd_api.g_false
7943 ,p_init_msg_list => p_init_msg_list
7944 ,p_validation_level => p_validation_level
7945 ,p_instance_id => l_rel_tbl(j).subject_id
7946 ,p_subject_instance_id => nvl(l_root_asset_id, l_rel_tbl(j).object_id)
7947 ,x_return_status => x_return_status
7948 ,x_msg_count => x_msg_count
7949 ,x_msg_data => x_msg_data
7950 );
7951
7952 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
7953 l_msg_index := 1;
7954 l_msg_count := x_msg_count;
7955
7956 WHILE l_msg_count > 0 LOOP
7957 x_msg_data := FND_MSG_PUB.GET(l_msg_index, FND_API.G_FALSE);
7958 csi_gen_utility_pvt.put_line(' Error from CSI_BUSINESS_EVENT.UPDATE_INSTANCE_EVENT');
7959 csi_gen_utility_pvt.put_line('MESSAGE DATA = '||x_msg_data);
7960 l_msg_index := l_msg_index + 1;
7961 l_msg_count := l_msg_count - 1;
7962 END LOOP;
7963 RAISE FND_API.G_EXC_ERROR;
7964 END IF;
7965 ELSIF l_create_event_called = 'Y' THEN
7966 csi_gen_utility_pvt.put_line('Calling Update Instance Event');
7967 CSI_BUSINESS_EVENT_PVT.UPDATE_INSTANCE_EVENT
7968 ( p_api_version => p_api_version
7969 ,p_commit => fnd_api.g_false
7970 ,p_init_msg_list => p_init_msg_list
7971 ,p_validation_level => p_validation_level
7972 ,p_instance_id => l_rel_tbl(j).subject_id
7973 ,p_subject_instance_id => null
7974 ,x_return_status => x_return_status
7975 ,x_msg_count => x_msg_count
7976 ,x_msg_data => x_msg_data
7977 );
7978
7979 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
7980 l_msg_index := 1;
7981 l_msg_count := x_msg_count;
7982
7983 WHILE l_msg_count > 0 LOOP
7984 x_msg_data := FND_MSG_PUB.GET(l_msg_index, FND_API.G_FALSE);
7985 csi_gen_utility_pvt.put_line(' Error from CSI_BUSINESS_EVENT.UPDATE_INSTANCE_EVENT');
7986 csi_gen_utility_pvt.put_line('MESSAGE DATA = '||x_msg_data);
7987 l_msg_index := l_msg_index + 1;
7988 l_msg_count := l_msg_count - 1;
7989 END LOOP;
7990 RAISE FND_API.G_EXC_ERROR;
7991 END IF;
7992 END IF; --l_create_event_called
7993 END IF; --p_instance_rec.ACCOUNTING_CLASS_CODE
7994 END IF;
7995 -- Get the full_dump_frequency from csi_install_parameter
7996 --
7997 IF csi_datastructures_pub.g_install_param_rec.fetch_flag IS NULL THEN
7998 csi_gen_utility_pvt.populate_install_param_rec;
7999 END IF;
8000 --
8001 l_full_dump_frequency := csi_datastructures_pub.g_install_param_rec.history_full_dump_frequency;
8002 --
8003 IF l_full_dump_frequency IS NULL THEN
8004 FND_MESSAGE.SET_NAME('CSI','CSI_API_GET_FULL_DUMP_FAILED');
8005 FND_MSG_PUB.ADD;
8006 RAISE FND_API.G_EXC_ERROR;
8007 END IF;
8008 --
8009 -- Get a unique history item instance id from the sequence
8010 l_csi_item_instance_h_id :=
8011 csi_item_instance_vld_pvt.get_csi_item_instance_h_id;
8012
8013 SELECT MOD(p_instance_rec.object_version_number,l_full_dump_frequency)
8014 INTO l_mod_value
8015 FROM dual;
8016
8017 -- Start of modifications for Bug#2547034 on 09/20/02 - rtalluri
8018 BEGIN
8019 SELECT instance_history_id
8020 INTO l_ins_hist_id
8021 FROM csi_item_instances_h h
8022 WHERE h.transaction_id = p_txn_rec.transaction_id
8023 AND h.instance_id = l_rel_tbl(j).subject_id;
8024
8025 OPEN ins_hist_csr(l_ins_hist_id);
8026 FETCH ins_hist_csr INTO l_ins_hist_csr ;
8027 CLOSE ins_hist_csr;
8028
8029 IF l_ins_hist_csr.full_dump_flag = 'Y'
8030 THEN
8031 CSI_ITEM_INSTANCES_H_PKG.Update_Row
8032 ( p_INSTANCE_HISTORY_ID => l_ins_hist_id
8033 ,p_INSTANCE_ID => fnd_api.g_miss_num
8034 ,p_TRANSACTION_ID => fnd_api.g_miss_num
8035 ,p_OLD_INSTANCE_NUMBER => fnd_api.g_miss_char
8036 ,p_NEW_INSTANCE_NUMBER => fnd_api.g_miss_char
8037 ,p_OLD_EXTERNAL_REFERENCE => fnd_api.g_miss_char
8038 ,p_NEW_EXTERNAL_REFERENCE => fnd_api.g_miss_char
8039 ,p_OLD_INVENTORY_ITEM_ID => fnd_api.g_miss_num
8040 ,p_NEW_INVENTORY_ITEM_ID => fnd_api.g_miss_num
8041 ,p_OLD_INVENTORY_REVISION => fnd_api.g_miss_char
8042 ,p_NEW_INVENTORY_REVISION => fnd_api.g_miss_char
8043 ,p_OLD_INV_MASTER_ORGZN_ID => fnd_api.g_miss_num
8044 ,p_NEW_INV_MASTER_ORGZN_ID => fnd_api.g_miss_num
8045 ,p_OLD_SERIAL_NUMBER => fnd_api.g_miss_char
8046 ,p_NEW_SERIAL_NUMBER => fnd_api.g_miss_char
8047 ,p_OLD_MFG_SERIAL_NUMBER_FLAG => fnd_api.g_miss_char
8048 ,p_NEW_MFG_SERIAL_NUMBER_FLAG => fnd_api.g_miss_char
8049 ,p_OLD_LOT_NUMBER => fnd_api.g_miss_char
8050 ,p_NEW_LOT_NUMBER => fnd_api.g_miss_char
8051 ,p_OLD_QUANTITY => fnd_api.g_miss_num
8052 ,p_NEW_QUANTITY => fnd_api.g_miss_num
8053 ,p_OLD_UNIT_OF_MEASURE => fnd_api.g_miss_char
8054 ,p_NEW_UNIT_OF_MEASURE => fnd_api.g_miss_char
8055 ,p_OLD_ACCOUNTING_CLASS_CODE => fnd_api.g_miss_char
8056 ,p_NEW_ACCOUNTING_CLASS_CODE => p_instance_rec.ACCOUNTING_CLASS_CODE
8057 ,p_OLD_INSTANCE_CONDITION_ID => fnd_api.g_miss_num
8058 ,p_NEW_INSTANCE_CONDITION_ID => fnd_api.g_miss_num
8059 ,p_OLD_INSTANCE_STATUS_ID => fnd_api.g_miss_num
8060 ,p_NEW_INSTANCE_STATUS_ID => l_instance_status_id --p_instance_rec.INSTANCE_STATUS_ID
8061 ,p_OLD_CUSTOMER_VIEW_FLAG => fnd_api.g_miss_char
8062 ,p_NEW_CUSTOMER_VIEW_FLAG => fnd_api.g_miss_char
8063 ,p_OLD_MERCHANT_VIEW_FLAG => fnd_api.g_miss_char
8064 ,p_NEW_MERCHANT_VIEW_FLAG => fnd_api.g_miss_char
8065 ,p_OLD_SELLABLE_FLAG => fnd_api.g_miss_char
8066 ,p_NEW_SELLABLE_FLAG => fnd_api.g_miss_char
8067 ,p_OLD_SYSTEM_ID => fnd_api.g_miss_num
8068 ,p_NEW_SYSTEM_ID => l_system_id
8069 ,p_OLD_INSTANCE_TYPE_CODE => fnd_api.g_miss_char
8070 ,p_NEW_INSTANCE_TYPE_CODE => fnd_api.g_miss_char
8071 ,p_OLD_ACTIVE_START_DATE => fnd_api.g_miss_date
8072 ,p_NEW_ACTIVE_START_DATE => fnd_api.g_miss_date
8073 ,p_OLD_ACTIVE_END_DATE => fnd_api.g_miss_date
8074 ,p_NEW_ACTIVE_END_DATE => p_instance_rec.ACTIVE_END_DATE
8075 ,p_OLD_LOCATION_TYPE_CODE => fnd_api.g_miss_char
8076 ,p_NEW_LOCATION_TYPE_CODE => p_instance_rec.LOCATION_TYPE_CODE
8077 ,p_OLD_LOCATION_ID => fnd_api.g_miss_num
8078 ,p_NEW_LOCATION_ID => p_instance_rec.LOCATION_ID
8079 ,p_OLD_INV_ORGANIZATION_ID => fnd_api.g_miss_num
8080 ,p_NEW_INV_ORGANIZATION_ID => p_instance_rec.INV_ORGANIZATION_ID
8081 ,p_OLD_INV_SUBINVENTORY_NAME => fnd_api.g_miss_char
8082 ,p_NEW_INV_SUBINVENTORY_NAME => p_instance_rec.INV_SUBINVENTORY_NAME
8083 ,p_OLD_INV_LOCATOR_ID => fnd_api.g_miss_num
8084 ,p_NEW_INV_LOCATOR_ID => p_instance_rec.INV_LOCATOR_ID
8085 ,p_OLD_PA_PROJECT_ID => fnd_api.g_miss_num
8086 ,p_NEW_PA_PROJECT_ID => p_instance_rec.PA_PROJECT_ID
8087 ,p_OLD_PA_PROJECT_TASK_ID => fnd_api.g_miss_num
8088 ,p_NEW_PA_PROJECT_TASK_ID => p_instance_rec.PA_PROJECT_TASK_ID
8089 ,p_OLD_IN_TRANSIT_ORDER_LINE_ID => fnd_api.g_miss_num
8090 ,p_NEW_IN_TRANSIT_ORDER_LINE_ID => p_instance_rec.IN_TRANSIT_ORDER_LINE_ID
8091 ,p_OLD_WIP_JOB_ID => fnd_api.g_miss_num
8092 ,p_NEW_WIP_JOB_ID => p_instance_rec.WIP_JOB_ID
8093 ,p_OLD_PO_ORDER_LINE_ID => fnd_api.g_miss_num
8094 ,p_NEW_PO_ORDER_LINE_ID => p_instance_rec.PO_ORDER_LINE_ID
8095 ,p_OLD_COMPLETENESS_FLAG => fnd_api.g_miss_char
8096 ,p_NEW_COMPLETENESS_FLAG => fnd_api.g_miss_char
8097 ,p_FULL_DUMP_FLAG => fnd_api.g_miss_char
8098 ,p_NEW_CONTEXT => fnd_api.g_miss_char
8099 ,P_OLD_CONTEXT => fnd_api.g_miss_char
8100 ,p_NEW_ATTRIBUTE1 => fnd_api.g_miss_char
8101 ,p_OLD_ATTRIBUTE1 => fnd_api.g_miss_char
8102 ,p_NEW_ATTRIBUTE2 => fnd_api.g_miss_char
8103 ,p_OLD_ATTRIBUTE2 => fnd_api.g_miss_char
8104 ,p_NEW_ATTRIBUTE3 => fnd_api.g_miss_char
8105 ,p_OLD_ATTRIBUTE3 => fnd_api.g_miss_char
8106 ,p_NEW_ATTRIBUTE4 => fnd_api.g_miss_char
8107 ,p_OLD_ATTRIBUTE4 => fnd_api.g_miss_char
8108 ,p_NEW_ATTRIBUTE5 => fnd_api.g_miss_char
8109 ,p_OLD_ATTRIBUTE5 => fnd_api.g_miss_char
8110 ,p_NEW_ATTRIBUTE6 => fnd_api.g_miss_char
8111 ,p_OLD_ATTRIBUTE6 => fnd_api.g_miss_char
8112 ,p_NEW_ATTRIBUTE7 => fnd_api.g_miss_char
8113 ,p_OLD_ATTRIBUTE7 => fnd_api.g_miss_char
8114 ,p_NEW_ATTRIBUTE8 => fnd_api.g_miss_char
8115 ,p_OLD_ATTRIBUTE8 => fnd_api.g_miss_char
8116 ,p_NEW_ATTRIBUTE9 => fnd_api.g_miss_char
8117 ,p_OLD_ATTRIBUTE9 => fnd_api.g_miss_char
8118 ,p_NEW_ATTRIBUTE10 => fnd_api.g_miss_char
8119 ,p_OLD_ATTRIBUTE10 => fnd_api.g_miss_char
8120 ,p_NEW_ATTRIBUTE11 => fnd_api.g_miss_char
8121 ,p_OLD_ATTRIBUTE11 => fnd_api.g_miss_char
8122 ,p_NEW_ATTRIBUTE12 => fnd_api.g_miss_char
8123 ,p_OLD_ATTRIBUTE12 => fnd_api.g_miss_char
8124 ,p_NEW_ATTRIBUTE13 => fnd_api.g_miss_char
8125 ,p_OLD_ATTRIBUTE13 => fnd_api.g_miss_char
8126 ,p_NEW_ATTRIBUTE14 => fnd_api.g_miss_char
8127 ,p_OLD_ATTRIBUTE14 => fnd_api.g_miss_char
8128 ,p_NEW_ATTRIBUTE15 => fnd_api.g_miss_char
8129 ,p_OLD_ATTRIBUTE15 => fnd_api.g_miss_char
8130 ,p_CREATED_BY => fnd_api.g_miss_num
8131 ,p_CREATION_DATE => fnd_api.g_miss_date
8132 ,p_LAST_UPDATED_BY => FND_GLOBAL.USER_ID
8133 ,p_LAST_UPDATE_DATE => SYSDATE
8134 ,p_LAST_UPDATE_LOGIN => FND_GLOBAL.CONC_LOGIN_ID
8135 ,p_OBJECT_VERSION_NUMBER => fnd_api.g_miss_num
8136 ,p_OLD_INST_LOC_TYPE_CODE => fnd_api.g_miss_char
8137 ,p_NEW_INST_LOC_TYPE_CODE => p_instance_rec.INSTALL_LOCATION_TYPE_CODE
8138 ,p_OLD_INST_LOC_ID => fnd_api.g_miss_num
8139 ,p_NEW_INST_LOC_ID => p_instance_rec.INSTALL_LOCATION_ID
8140 ,p_OLD_INST_USAGE_CODE => fnd_api.g_miss_char
8141 ,p_NEW_INST_USAGE_CODE => fnd_api.g_miss_char
8142 ,p_OLD_LAST_VLD_ORGANIZATION_ID => fnd_api.g_miss_num
8143 ,p_NEW_LAST_VLD_ORGANIZATION_ID => fnd_api.g_miss_num
8144 ,p_OLD_CONFIG_INST_REV_NUM => fnd_api.g_miss_num
8145 ,p_NEW_CONFIG_INST_REV_NUM => fnd_api.g_miss_num
8146 ,p_OLD_CONFIG_VALID_STATUS => fnd_api.g_miss_char
8147 ,p_NEW_CONFIG_VALID_STATUS => fnd_api.g_miss_char
8148 ,p_OLD_INSTANCE_DESCRIPTION => fnd_api.g_miss_char
8149 ,p_NEW_INSTANCE_DESCRIPTION => fnd_api.g_miss_char
8150 ,p_OLD_INSTALL_DATE => fnd_api.g_miss_date
8151 ,p_NEW_INSTALL_DATE => l_install_date
8152 ,p_OLD_RETURN_BY_DATE => fnd_api.g_miss_date
8153 ,p_NEW_RETURN_BY_DATE => fnd_api.g_miss_date
8154 ,p_OLD_ACTUAL_RETURN_DATE => fnd_api.g_miss_date
8155 ,p_NEW_ACTUAL_RETURN_DATE => fnd_api.g_miss_date
8156 ,p_OLD_LAST_OE_AGREEMENT_ID => fnd_api.g_miss_num
8157 ,p_NEW_LAST_OE_AGREEMENT_ID => fnd_api.g_miss_num
8158 ,p_OLD_LAST_OE_ORDER_LINE_ID => fnd_api.g_miss_num
8159 ,p_NEW_LAST_OE_ORDER_LINE_ID => fnd_api.g_miss_num --p_instance_rec.LAST_OE_ORDER_LINE_ID
8160 ,p_OLD_LAST_OE_RMA_LINE_ID => fnd_api.g_miss_num
8161 ,p_NEW_LAST_OE_RMA_LINE_ID => fnd_api.g_miss_num --p_instance_rec.LAST_OE_RMA_LINE_ID
8162 ,p_OLD_LAST_WIP_JOB_ID => fnd_api.g_miss_num --fnd_api.g_miss_num
8163 ,p_NEW_LAST_WIP_JOB_ID => fnd_api.g_miss_num --p_instance_rec.LAST_WIP_JOB_ID
8164 ,p_OLD_LAST_PO_PO_LINE_ID => fnd_api.g_miss_num --fnd_api.g_miss_num
8165 ,p_NEW_LAST_PO_PO_LINE_ID => fnd_api.g_miss_num --p_instance_rec.LAST_PO_PO_LINE_ID
8166 ,p_OLD_LAST_PA_PROJECT_ID => fnd_api.g_miss_num --fnd_api.g_miss_num
8167 ,p_NEW_LAST_PA_PROJECT_ID => fnd_api.g_miss_num --p_instance_rec.LAST_PA_PROJECT_ID
8168 ,p_OLD_LAST_PA_TASK_ID => fnd_api.g_miss_num --fnd_api.g_miss_num
8169 ,p_NEW_LAST_PA_TASK_ID => fnd_api.g_miss_num --p_instance_rec.LAST_PA_TASK_ID
8170 ,p_OLD_LAST_TXN_LINE_DETAIL_ID => fnd_api.g_miss_num
8171 ,p_NEW_LAST_TXN_LINE_DETAIL_ID => fnd_api.g_miss_num --p_instance_rec.LAST_TXN_LINE_DETAIL_ID
8172 ,p_OLD_LAST_OE_PO_NUMBER => fnd_api.g_miss_char
8173 ,p_NEW_LAST_OE_PO_NUMBER => fnd_api.g_miss_char --p_instance_rec.LAST_OE_PO_NUMBER
8174 --start of parameters addition for eam integration--
8175 ,p_OLD_NETWORK_ASSET_FLAG => fnd_api.g_miss_char
8176 ,p_NEW_NETWORK_ASSET_FLAG => fnd_api.g_miss_char
8177 ,p_OLD_MAINTAINABLE_FLAG => fnd_api.g_miss_char
8178 ,p_NEW_MAINTAINABLE_FLAG => fnd_api.g_miss_char
8179 ,p_OLD_PN_LOCATION_ID => fnd_api.g_miss_num
8180 ,p_NEW_PN_LOCATION_ID => fnd_api.g_miss_num
8181 ,p_OLD_ASSET_CRITICALITY_CODE => fnd_api.g_miss_char
8182 ,p_NEW_ASSET_CRITICALITY_CODE => fnd_api.g_miss_char
8183 ,p_OLD_CATEGORY_ID => fnd_api.g_miss_num
8184 ,p_NEW_CATEGORY_ID => fnd_api.g_miss_num
8185 ,p_OLD_EQUIPMENT_GEN_OBJECT_ID => fnd_api.g_miss_num
8186 ,p_NEW_EQUIPMENT_GEN_OBJECT_ID => fnd_api.g_miss_num
8187 ,p_OLD_INSTANTIATION_FLAG => fnd_api.g_miss_char
8188 ,p_NEW_INSTANTIATION_FLAG => fnd_api.g_miss_char
8189 ,p_OLD_LINEAR_LOCATION_ID => fnd_api.g_miss_num
8190 ,p_NEW_LINEAR_LOCATION_ID => fnd_api.g_miss_num
8191 ,p_OLD_OPERATIONAL_LOG_FLAG => fnd_api.g_miss_char
8192 ,p_NEW_OPERATIONAL_LOG_FLAG => fnd_api.g_miss_char
8193 ,p_OLD_CHECKIN_STATUS => fnd_api.g_miss_NUM
8194 ,p_NEW_CHECKIN_STATUS => fnd_api.g_miss_NUM
8195 ,p_OLD_SUP_WARRANTY_EXP_DATE => fnd_api.g_miss_date
8196 ,p_NEW_SUP_WARRANTY_EXP_DATE => fnd_api.g_miss_date
8197 ,p_OLD_ATTRIBUTE16 => fnd_api.g_miss_char
8198 ,p_NEW_ATTRIBUTE16 => fnd_api.g_miss_char
8199 ,p_OLD_ATTRIBUTE17 => fnd_api.g_miss_char
8200 ,p_NEW_ATTRIBUTE17 => fnd_api.g_miss_char
8201 ,p_OLD_ATTRIBUTE18 => fnd_api.g_miss_char
8202 ,p_NEW_ATTRIBUTE18 => fnd_api.g_miss_char
8203 ,p_OLD_ATTRIBUTE19 => fnd_api.g_miss_char
8204 ,p_NEW_ATTRIBUTE19 => fnd_api.g_miss_char
8205 ,p_OLD_ATTRIBUTE20 => fnd_api.g_miss_char
8206 ,p_NEW_ATTRIBUTE20 => fnd_api.g_miss_char
8207 ,p_OLD_ATTRIBUTE21 => fnd_api.g_miss_char
8208 ,p_NEW_ATTRIBUTE21 => fnd_api.g_miss_char
8209 ,p_OLD_ATTRIBUTE22 => fnd_api.g_miss_char
8210 ,p_NEW_ATTRIBUTE22 => fnd_api.g_miss_char
8211 ,p_OLD_ATTRIBUTE23 => fnd_api.g_miss_char
8212 ,p_NEW_ATTRIBUTE23 => fnd_api.g_miss_char
8213 ,p_OLD_ATTRIBUTE24 => fnd_api.g_miss_char
8214 ,p_NEW_ATTRIBUTE24 => fnd_api.g_miss_char
8215 ,p_OLD_ATTRIBUTE25 => fnd_api.g_miss_char
8216 ,p_NEW_ATTRIBUTE25 => fnd_api.g_miss_char
8217 ,p_OLD_ATTRIBUTE26 => fnd_api.g_miss_char
8218 ,p_NEW_ATTRIBUTE26 => fnd_api.g_miss_char
8219 ,p_OLD_ATTRIBUTE27 => fnd_api.g_miss_char
8220 ,p_NEW_ATTRIBUTE27 => fnd_api.g_miss_char
8221 ,p_OLD_ATTRIBUTE28 => fnd_api.g_miss_char
8222 ,p_NEW_ATTRIBUTE28 => fnd_api.g_miss_char
8223 ,p_OLD_ATTRIBUTE29 => fnd_api.g_miss_char
8224 ,p_NEW_ATTRIBUTE29 => fnd_api.g_miss_char
8225 ,p_OLD_ATTRIBUTE30 => fnd_api.g_miss_char
8226 ,p_NEW_ATTRIBUTE30 => fnd_api.g_miss_char
8227 --end of parameters addition for eam integration--
8228 -- Addition of columns for FA Integration
8229 ,p_OLD_PAYABLES_UNIT_PRICE => fnd_api.g_miss_num
8230 ,p_NEW_PAYABLES_UNIT_PRICE => fnd_api.g_miss_num
8231 ,p_OLD_PAYABLES_CURRENCY_CODE => fnd_api.g_miss_char
8232 ,p_NEW_PAYABLES_CURRENCY_CODE => fnd_api.g_miss_char
8233 ,p_OLD_PURCHASE_UNIT_PRICE => fnd_api.g_miss_num
8234 ,p_NEW_PURCHASE_UNIT_PRICE => fnd_api.g_miss_num
8235 ,p_OLD_PURCHASE_CURRENCY_CODE => fnd_api.g_miss_char
8236 ,p_NEW_PURCHASE_CURRENCY_CODE => fnd_api.g_miss_char
8237 ,p_OLD_SALES_UNIT_PRICE => fnd_api.g_miss_num
8238 ,p_NEW_SALES_UNIT_PRICE => fnd_api.g_miss_num
8239 ,p_OLD_SALES_CURRENCY_CODE => fnd_api.g_miss_char
8240 ,p_NEW_SALES_CURRENCY_CODE => fnd_api.g_miss_char
8241 ,p_OLD_OPERATIONAL_STATUS_CODE => fnd_api.g_miss_char
8242 ,p_NEW_OPERATIONAL_STATUS_CODE => p_instance_rec.operational_status_code
8243 -- End addition of columns for FA Integration
8244 -- Begin Add Code for Siebel Genesis Project
8245 ,p_OLD_SOURCE_CODE => fnd_api.g_miss_char
8246 ,p_NEW_SOURCE_CODE => fnd_api.g_miss_char
8247 -- End Add Code for Siebel Genesis Project
8248 );
8249
8250 ELSE --l_ins_hist_csr.full_dump_flag = 'N'
8251
8252 IF ( l_ins_hist_csr.old_accounting_class_code IS NULL
8253 AND l_ins_hist_csr.new_accounting_class_code IS NULL ) THEN
8254 IF ( p_instance_rec.accounting_class_code = l_curr_instance_rec.accounting_class_code )
8255 OR ( p_instance_rec.accounting_class_code = fnd_api.g_miss_char ) THEN
8256 l_ins_hist_csr.old_accounting_class_code := NULL;
8257 l_ins_hist_csr.new_accounting_class_code := NULL;
8258 ELSE
8259 l_ins_hist_csr.old_accounting_class_code := fnd_api.g_miss_char;
8260 l_ins_hist_csr.new_accounting_class_code := p_instance_rec.accounting_class_code;
8261 END IF;
8262 ELSE
8263 l_ins_hist_csr.old_accounting_class_code := fnd_api.g_miss_char;
8264 l_ins_hist_csr.new_accounting_class_code := p_instance_rec.accounting_class_code;
8265 END IF;
8266 --
8267 IF ( l_ins_hist_csr.old_instance_status_id IS NULL
8268 AND l_ins_hist_csr.new_instance_status_id IS NULL ) THEN
8269 IF ( l_instance_status_id = l_curr_instance_rec.instance_status_id )
8270 OR ( l_instance_status_id = fnd_api.g_miss_num ) THEN
8271 l_ins_hist_csr.old_instance_status_id := NULL;
8272 l_ins_hist_csr.new_instance_status_id := NULL;
8273 ELSE
8274 l_ins_hist_csr.old_instance_status_id := fnd_api.g_miss_num;
8275 l_ins_hist_csr.new_instance_status_id := l_instance_status_id;
8276 END IF;
8277 ELSE
8278 l_ins_hist_csr.old_instance_status_id := fnd_api.g_miss_num;
8279 l_ins_hist_csr.new_instance_status_id := l_instance_status_id;
8280 END IF;
8281 --
8282 IF ( l_ins_hist_csr.old_system_id IS NULL
8283 AND l_ins_hist_csr.new_system_id IS NULL ) THEN
8284 IF ( l_system_id = l_curr_instance_rec.system_id )
8285 OR ( l_system_id = fnd_api.g_miss_num ) THEN
8286 l_ins_hist_csr.old_system_id := NULL;
8287 l_ins_hist_csr.new_system_id := NULL;
8288 ELSE
8289 l_ins_hist_csr.old_system_id := fnd_api.g_miss_num;
8290 l_ins_hist_csr.new_system_id := l_system_id;
8291 END IF;
8292 ELSE
8293 l_ins_hist_csr.old_system_id := fnd_api.g_miss_num;
8294 l_ins_hist_csr.new_system_id := l_system_id;
8295 END IF;
8296 --
8297 IF ( l_ins_hist_csr.old_install_date IS NULL
8298 AND l_ins_hist_csr.new_install_date IS NULL ) THEN
8299 IF ( l_install_date = l_curr_instance_rec.install_date )
8300 OR ( l_install_date = fnd_api.g_miss_date ) THEN
8301 l_ins_hist_csr.old_install_date := NULL;
8302 l_ins_hist_csr.new_install_date := NULL;
8303 ELSE
8304 l_ins_hist_csr.old_install_date := fnd_api.g_miss_date;
8305 l_ins_hist_csr.new_install_date := l_install_date;
8306 END IF;
8307 ELSE
8308 l_ins_hist_csr.old_install_date := fnd_api.g_miss_date;
8309 l_ins_hist_csr.new_install_date := l_install_date;
8310 END IF;
8311 --
8312 IF ( l_ins_hist_csr.old_active_end_date IS NULL
8313 AND l_ins_hist_csr.new_active_end_date IS NULL ) THEN
8314 IF ( p_instance_rec.active_end_date = l_curr_instance_rec.active_end_date )
8315 OR ( p_instance_rec.active_end_date = fnd_api.g_miss_date ) THEN
8316 l_ins_hist_csr.old_active_end_date := NULL;
8317 l_ins_hist_csr.new_active_end_date := NULL;
8318 ELSE
8319 l_ins_hist_csr.old_active_end_date := fnd_api.g_miss_date;
8320 l_ins_hist_csr.new_active_end_date := p_instance_rec.active_end_date;
8321 END IF;
8322 ELSE
8323 l_ins_hist_csr.old_active_end_date := fnd_api.g_miss_date;
8324 l_ins_hist_csr.new_active_end_date := p_instance_rec.active_end_date;
8325 END IF;
8326 --
8327 IF ( l_ins_hist_csr.old_location_type_code IS NULL
8328 AND l_ins_hist_csr.new_location_type_code IS NULL ) THEN
8329 IF ( p_instance_rec.location_type_code = l_curr_instance_rec.location_type_code )
8330 OR ( p_instance_rec.location_type_code = fnd_api.g_miss_char ) THEN
8331 l_ins_hist_csr.old_location_type_code := NULL;
8332 l_ins_hist_csr.new_location_type_code := NULL;
8333 ELSE
8334 l_ins_hist_csr.old_location_type_code := fnd_api.g_miss_char;
8335 l_ins_hist_csr.new_location_type_code := p_instance_rec.location_type_code;
8336 END IF;
8337 ELSE
8338 l_ins_hist_csr.old_location_type_code := fnd_api.g_miss_char;
8339 l_ins_hist_csr.new_location_type_code := p_instance_rec.location_type_code;
8340 END IF;
8341 --
8342 IF ( l_ins_hist_csr.old_location_id IS NULL
8343 AND l_ins_hist_csr.new_location_id IS NULL ) THEN
8344 IF ( p_instance_rec.location_id = l_curr_instance_rec.location_id )
8345 OR ( p_instance_rec.location_id = fnd_api.g_miss_num ) THEN
8346 l_ins_hist_csr.old_location_id := NULL;
8347 l_ins_hist_csr.new_location_id := NULL;
8348 ELSE
8349 l_ins_hist_csr.old_location_id := fnd_api.g_miss_num;
8350 l_ins_hist_csr.new_location_id := p_instance_rec.location_id;
8351 END IF;
8352 ELSE
8353 l_ins_hist_csr.old_location_id := fnd_api.g_miss_num;
8354 l_ins_hist_csr.new_location_id := p_instance_rec.location_id;
8355 END IF;
8356 --
8357 IF ( l_ins_hist_csr.old_inv_organization_id IS NULL
8358 AND l_ins_hist_csr.new_inv_organization_id IS NULL ) THEN
8359 IF ( p_instance_rec.inv_organization_id = l_curr_instance_rec.inv_organization_id )
8360 OR ( p_instance_rec.inv_organization_id = fnd_api.g_miss_num ) THEN
8361 l_ins_hist_csr.old_inv_organization_id := NULL;
8362 l_ins_hist_csr.new_inv_organization_id := NULL;
8363 ELSE
8364 l_ins_hist_csr.old_inv_organization_id := fnd_api.g_miss_num;
8365 l_ins_hist_csr.new_inv_organization_id := p_instance_rec.inv_organization_id;
8366 END IF;
8367 ELSE
8368 l_ins_hist_csr.old_inv_organization_id := fnd_api.g_miss_num;
8369 l_ins_hist_csr.new_inv_organization_id := p_instance_rec.inv_organization_id;
8370 END IF;
8371 --
8372 IF ( l_ins_hist_csr.old_inv_subinventory_name IS NULL
8373 AND l_ins_hist_csr.new_inv_subinventory_name IS NULL ) THEN
8374 IF ( p_instance_rec.inv_subinventory_name = l_curr_instance_rec.inv_subinventory_name )
8375 OR ( p_instance_rec.inv_subinventory_name = fnd_api.g_miss_char ) THEN
8376 l_ins_hist_csr.old_inv_subinventory_name := NULL;
8377 l_ins_hist_csr.new_inv_subinventory_name := NULL;
8378 ELSE
8379 l_ins_hist_csr.old_inv_subinventory_name := fnd_api.g_miss_char;
8380 l_ins_hist_csr.new_inv_subinventory_name := p_instance_rec.inv_subinventory_name;
8381 END IF;
8382 ELSE
8383 l_ins_hist_csr.old_inv_subinventory_name := fnd_api.g_miss_char;
8384 l_ins_hist_csr.new_inv_subinventory_name := p_instance_rec.inv_subinventory_name;
8385 END IF;
8386 --
8387 IF ( l_ins_hist_csr.old_inv_locator_id IS NULL
8388 AND l_ins_hist_csr.new_inv_locator_id IS NULL ) THEN
8389 IF ( p_instance_rec.inv_locator_id = l_curr_instance_rec.inv_locator_id )
8390 OR ( p_instance_rec.inv_locator_id = fnd_api.g_miss_num ) THEN
8391 l_ins_hist_csr.old_inv_locator_id := NULL;
8392 l_ins_hist_csr.new_inv_locator_id := NULL;
8393 ELSE
8394 l_ins_hist_csr.old_inv_locator_id := fnd_api.g_miss_num;
8395 l_ins_hist_csr.new_inv_locator_id := p_instance_rec.inv_locator_id;
8396 END IF;
8397 ELSE
8398 l_ins_hist_csr.old_inv_locator_id := fnd_api.g_miss_num;
8399 l_ins_hist_csr.new_inv_locator_id := p_instance_rec.inv_locator_id;
8400 END IF;
8401 --
8402 IF ( l_ins_hist_csr.old_pa_project_id IS NULL
8403 AND l_ins_hist_csr.new_pa_project_id IS NULL ) THEN
8404 IF ( p_instance_rec.pa_project_id = l_curr_instance_rec.pa_project_id )
8405 OR ( p_instance_rec.pa_project_id = fnd_api.g_miss_num ) THEN
8406 l_ins_hist_csr.old_pa_project_id := NULL;
8407 l_ins_hist_csr.new_pa_project_id := NULL;
8408 ELSE
8409 l_ins_hist_csr.old_pa_project_id := fnd_api.g_miss_num;
8410 l_ins_hist_csr.new_pa_project_id := p_instance_rec.pa_project_id;
8411 END IF;
8412 ELSE
8413 l_ins_hist_csr.old_pa_project_id := fnd_api.g_miss_num;
8414 l_ins_hist_csr.new_pa_project_id := p_instance_rec.pa_project_id;
8415 END IF;
8416 --
8417 IF ( l_ins_hist_csr.old_pa_project_task_id IS NULL
8418 AND l_ins_hist_csr.new_pa_project_task_id IS NULL ) THEN
8419 IF ( p_instance_rec.pa_project_task_id = l_curr_instance_rec.pa_project_task_id )
8420 OR ( p_instance_rec.pa_project_task_id = fnd_api.g_miss_num ) THEN
8421 l_ins_hist_csr.old_pa_project_task_id := NULL;
8422 l_ins_hist_csr.new_pa_project_task_id := NULL;
8423 ELSE
8424 l_ins_hist_csr.old_pa_project_task_id := fnd_api.g_miss_num;
8425 l_ins_hist_csr.new_pa_project_task_id := p_instance_rec.pa_project_task_id;
8426 END IF;
8427 ELSE
8428 l_ins_hist_csr.old_pa_project_id := fnd_api.g_miss_num;
8429 l_ins_hist_csr.new_pa_project_task_id := p_instance_rec.pa_project_task_id;
8430 END IF;
8431 --
8432 IF ( l_ins_hist_csr.old_in_transit_order_line_id IS NULL
8433 AND l_ins_hist_csr.new_in_transit_order_line_id IS NULL ) THEN
8434 IF ( p_instance_rec.in_transit_order_line_id = l_curr_instance_rec.in_transit_order_line_id )
8435 OR ( p_instance_rec.in_transit_order_line_id = fnd_api.g_miss_num ) THEN
8436 l_ins_hist_csr.old_in_transit_order_line_id := NULL;
8437 l_ins_hist_csr.new_in_transit_order_line_id := NULL;
8438 ELSE
8439 l_ins_hist_csr.old_in_transit_order_line_id := fnd_api.g_miss_num;
8440 l_ins_hist_csr.new_in_transit_order_line_id := p_instance_rec.in_transit_order_line_id;
8441 END IF;
8442 ELSE
8443 l_ins_hist_csr.old_in_transit_order_line_id := fnd_api.g_miss_num;
8444 l_ins_hist_csr.new_in_transit_order_line_id := p_instance_rec.in_transit_order_line_id;
8445 END IF;
8446 --
8447 IF ( l_ins_hist_csr.old_oe_agreement_id IS NULL
8448 AND l_ins_hist_csr.new_oe_agreement_id IS NULL ) THEN
8449 IF ( p_instance_rec.last_oe_agreement_id = l_curr_instance_rec.last_oe_agreement_id )
8450 OR ( p_instance_rec.last_oe_agreement_id = fnd_api.g_miss_num ) THEN
8451 l_ins_hist_csr.old_oe_agreement_id := NULL;
8452 l_ins_hist_csr.new_oe_agreement_id := NULL;
8453 ELSE
8454 l_ins_hist_csr.old_oe_agreement_id := fnd_api.g_miss_num;
8455 l_ins_hist_csr.new_oe_agreement_id := p_instance_rec.last_oe_agreement_id;
8456 END IF;
8457 ELSE
8458 l_ins_hist_csr.old_oe_agreement_id := fnd_api.g_miss_num;
8459 l_ins_hist_csr.new_oe_agreement_id := p_instance_rec.last_oe_agreement_id;
8460 END IF;
8461 --
8462 IF ( l_ins_hist_csr.old_LAST_OE_ORDER_LINE_ID IS NULL
8463 AND l_ins_hist_csr.new_LAST_OE_ORDER_LINE_ID IS NULL ) THEN
8464 IF ( p_instance_rec.LAST_OE_ORDER_LINE_ID = l_curr_instance_rec.LAST_OE_ORDER_LINE_ID )
8465 OR ( p_instance_rec.LAST_OE_ORDER_LINE_ID = fnd_api.g_miss_num ) THEN
8466 l_ins_hist_csr.old_LAST_OE_ORDER_LINE_ID := NULL;
8467 l_ins_hist_csr.new_LAST_OE_ORDER_LINE_ID := NULL;
8468 ELSE
8469 l_ins_hist_csr.old_LAST_OE_ORDER_LINE_ID := fnd_api.g_miss_num;
8470 l_ins_hist_csr.new_LAST_OE_ORDER_LINE_ID := p_instance_rec.LAST_OE_ORDER_LINE_ID;
8471 END IF;
8472 ELSE
8473 l_ins_hist_csr.old_LAST_OE_ORDER_LINE_ID := fnd_api.g_miss_num;
8474 l_ins_hist_csr.new_LAST_OE_ORDER_LINE_ID := p_instance_rec.LAST_OE_ORDER_LINE_ID;
8475 END IF;
8476 --
8477 IF ( l_ins_hist_csr.OLD_LAST_OE_RMA_LINE_ID IS NULL
8478 AND l_ins_hist_csr.NEW_LAST_OE_RMA_LINE_ID IS NULL ) THEN
8479 IF ( p_instance_rec.LAST_OE_RMA_LINE_ID = l_curr_instance_rec.LAST_OE_RMA_LINE_ID )
8480 OR ( p_instance_rec.LAST_OE_RMA_LINE_ID = fnd_api.g_miss_num ) THEN
8481 l_ins_hist_csr.OLD_LAST_OE_RMA_LINE_ID := NULL;
8482 l_ins_hist_csr.NEW_LAST_OE_RMA_LINE_ID := NULL;
8483 ELSE
8484 l_ins_hist_csr.OLD_LAST_OE_RMA_LINE_ID := fnd_api.g_miss_num;
8485 l_ins_hist_csr.NEW_LAST_OE_RMA_LINE_ID := p_instance_rec.LAST_OE_RMA_LINE_ID;
8486 END IF;
8487 ELSE
8488 l_ins_hist_csr.OLD_LAST_OE_RMA_LINE_ID := fnd_api.g_miss_num;
8489 l_ins_hist_csr.NEW_LAST_OE_RMA_LINE_ID := p_instance_rec.LAST_OE_RMA_LINE_ID;
8490 END IF;
8491 --
8492 IF ( l_ins_hist_csr.old_LAST_WIP_JOB_ID IS NULL
8493 AND l_ins_hist_csr.new_LAST_WIP_JOB_ID IS NULL ) THEN
8494 IF ( p_instance_rec.LAST_WIP_JOB_ID = l_curr_instance_rec.LAST_WIP_JOB_ID )
8495 OR ( p_instance_rec.LAST_WIP_JOB_ID = fnd_api.g_miss_num ) THEN
8496 l_ins_hist_csr.old_LAST_WIP_JOB_ID := NULL;
8497 l_ins_hist_csr.new_LAST_WIP_JOB_ID := NULL;
8498 ELSE
8499 l_ins_hist_csr.old_LAST_WIP_JOB_ID := fnd_api.g_miss_num;
8500 l_ins_hist_csr.new_LAST_WIP_JOB_ID := p_instance_rec.LAST_WIP_JOB_ID;
8501 END IF;
8502 ELSE
8503 l_ins_hist_csr.old_LAST_WIP_JOB_ID := fnd_api.g_miss_num;
8504 l_ins_hist_csr.new_LAST_WIP_JOB_ID := p_instance_rec.LAST_WIP_JOB_ID;
8505 END IF;
8506 --
8507 IF ( l_ins_hist_csr.old_LAST_PO_PO_LINE_ID IS NULL
8508 AND l_ins_hist_csr.new_LAST_PO_PO_LINE_ID IS NULL ) THEN
8509 IF ( p_instance_rec.LAST_PO_PO_LINE_ID = l_curr_instance_rec.LAST_PO_PO_LINE_ID )
8510 OR ( p_instance_rec.LAST_PO_PO_LINE_ID = fnd_api.g_miss_num ) THEN
8511 l_ins_hist_csr.old_LAST_PO_PO_LINE_ID := NULL;
8512 l_ins_hist_csr.new_LAST_PO_PO_LINE_ID := NULL;
8513 ELSE
8514 l_ins_hist_csr.old_LAST_PO_PO_LINE_ID := fnd_api.g_miss_num;
8515 l_ins_hist_csr.new_LAST_PO_PO_LINE_ID := p_instance_rec.LAST_PO_PO_LINE_ID;
8516 END IF;
8517 ELSE
8518 l_ins_hist_csr.old_LAST_PO_PO_LINE_ID := fnd_api.g_miss_num;
8519 l_ins_hist_csr.new_LAST_PO_PO_LINE_ID := p_instance_rec.LAST_PO_PO_LINE_ID;
8520 END IF;
8521 --
8522 IF ( l_ins_hist_csr.old_LAST_PA_PROJECT_ID IS NULL
8523 AND l_ins_hist_csr.new_LAST_PA_PROJECT_ID IS NULL ) THEN
8524 IF ( p_instance_rec.LAST_PA_PROJECT_ID = l_curr_instance_rec.LAST_PA_PROJECT_ID )
8525 OR ( p_instance_rec.LAST_PA_PROJECT_ID = fnd_api.g_miss_num ) THEN
8526 l_ins_hist_csr.old_LAST_PA_PROJECT_ID := NULL;
8527 l_ins_hist_csr.new_LAST_PA_PROJECT_ID := NULL;
8528 ELSE
8529 l_ins_hist_csr.old_LAST_PA_PROJECT_ID := fnd_api.g_miss_num;
8530 l_ins_hist_csr.new_LAST_PA_PROJECT_ID := p_instance_rec.LAST_PA_PROJECT_ID;
8531 END IF;
8532 ELSE
8533 l_ins_hist_csr.old_LAST_PA_PROJECT_ID := fnd_api.g_miss_num;
8534 l_ins_hist_csr.new_LAST_PA_PROJECT_ID := p_instance_rec.LAST_PA_PROJECT_ID;
8535 END IF;
8536 --
8537 IF ( l_ins_hist_csr.OLD_LAST_PA_TASK_ID IS NULL
8538 AND l_ins_hist_csr.NEW_LAST_PA_TASK_ID IS NULL ) THEN
8539 IF ( p_instance_rec.LAST_PA_TASK_ID = l_curr_instance_rec.LAST_PA_TASK_ID )
8540 OR ( p_instance_rec.LAST_PA_TASK_ID = fnd_api.g_miss_num ) THEN
8541 l_ins_hist_csr.OLD_LAST_PA_TASK_ID := NULL;
8542 l_ins_hist_csr.NEW_LAST_PA_TASK_ID := NULL;
8543 ELSE
8544 l_ins_hist_csr.OLD_LAST_PA_TASK_ID := fnd_api.g_miss_num;
8545 l_ins_hist_csr.NEW_LAST_PA_TASK_ID := p_instance_rec.LAST_PA_TASK_ID;
8546 END IF;
8547 ELSE
8548 l_ins_hist_csr.OLD_LAST_PA_TASK_ID := fnd_api.g_miss_num;
8549 l_ins_hist_csr.NEW_LAST_PA_TASK_ID := p_instance_rec.LAST_PA_TASK_ID;
8550 END IF;
8551 --
8552 IF ( l_ins_hist_csr.old_LAST_TXN_LINE_DETAIL_ID IS NULL
8553 AND l_ins_hist_csr.new_LAST_TXN_LINE_DETAIL_ID IS NULL ) THEN
8554 IF ( p_instance_rec.LAST_TXN_LINE_DETAIL_ID = l_curr_instance_rec.LAST_TXN_LINE_DETAIL_ID )
8555 OR ( p_instance_rec.LAST_TXN_LINE_DETAIL_ID = fnd_api.g_miss_num ) THEN
8556 l_ins_hist_csr.old_LAST_TXN_LINE_DETAIL_ID := NULL;
8557 l_ins_hist_csr.new_LAST_TXN_LINE_DETAIL_ID := NULL;
8558 ELSE
8559 l_ins_hist_csr.old_LAST_TXN_LINE_DETAIL_ID := fnd_api.g_miss_num;
8560 l_ins_hist_csr.new_LAST_TXN_LINE_DETAIL_ID := p_instance_rec.LAST_TXN_LINE_DETAIL_ID;
8561 END IF;
8562 ELSE
8563 l_ins_hist_csr.old_LAST_TXN_LINE_DETAIL_ID := fnd_api.g_miss_num;
8564 l_ins_hist_csr.new_LAST_TXN_LINE_DETAIL_ID := p_instance_rec.LAST_TXN_LINE_DETAIL_ID;
8565 END IF;
8566 --
8567 IF ( l_ins_hist_csr.old_LAST_OE_PO_NUMBER IS NULL
8568 AND l_ins_hist_csr.new_LAST_OE_PO_NUMBER IS NULL ) THEN
8569 IF ( p_instance_rec.LAST_OE_PO_NUMBER = l_curr_instance_rec.LAST_OE_PO_NUMBER )
8570 OR ( p_instance_rec.LAST_OE_PO_NUMBER = fnd_api.g_miss_char ) THEN
8571 l_ins_hist_csr.old_LAST_OE_PO_NUMBER := NULL;
8572 l_ins_hist_csr.new_LAST_OE_PO_NUMBER := NULL;
8573 ELSE
8574 l_ins_hist_csr.old_LAST_OE_PO_NUMBER := fnd_api.g_miss_char;
8575 l_ins_hist_csr.new_LAST_OE_PO_NUMBER := p_instance_rec.LAST_OE_PO_NUMBER;
8576 END IF;
8577 ELSE
8578 l_ins_hist_csr.old_LAST_OE_PO_NUMBER := fnd_api.g_miss_char;
8579 l_ins_hist_csr.new_LAST_OE_PO_NUMBER := p_instance_rec.LAST_OE_PO_NUMBER;
8580 END IF;
8581 --
8582 IF ( l_ins_hist_csr.old_wip_job_id IS NULL
8583 AND l_ins_hist_csr.new_wip_job_id IS NULL ) THEN
8584 IF ( p_instance_rec.wip_job_id = l_curr_instance_rec.wip_job_id )
8585 OR ( p_instance_rec.wip_job_id = fnd_api.g_miss_num ) THEN
8586 l_ins_hist_csr.old_wip_job_id := NULL;
8587 l_ins_hist_csr.new_wip_job_id := NULL;
8588 ELSE
8589 l_ins_hist_csr.old_wip_job_id := fnd_api.g_miss_num;
8590 l_ins_hist_csr.new_wip_job_id := p_instance_rec.wip_job_id;
8591 END IF;
8592 ELSE
8593 l_ins_hist_csr.old_wip_job_id := fnd_api.g_miss_num;
8594 l_ins_hist_csr.new_wip_job_id := p_instance_rec.wip_job_id;
8595 END IF;
8596 --
8597 IF ( l_ins_hist_csr.old_po_order_line_id IS NULL
8598 AND l_ins_hist_csr.new_po_order_line_id IS NULL ) THEN
8599 IF ( p_instance_rec.po_order_line_id = l_curr_instance_rec.po_order_line_id )
8600 OR ( p_instance_rec.po_order_line_id = fnd_api.g_miss_num ) THEN
8601 l_ins_hist_csr.old_po_order_line_id := NULL;
8602 l_ins_hist_csr.new_po_order_line_id := NULL;
8603 ELSE
8604 l_ins_hist_csr.old_po_order_line_id := fnd_api.g_miss_num;
8605 l_ins_hist_csr.new_po_order_line_id := p_instance_rec.po_order_line_id;
8606 END IF;
8607 ELSE
8608 l_ins_hist_csr.old_po_order_line_id := fnd_api.g_miss_num;
8609 l_ins_hist_csr.new_po_order_line_id := p_instance_rec.po_order_line_id;
8610 END IF;
8611 --
8612 IF ( l_ins_hist_csr.old_inst_loc_type_code IS NULL
8613 AND l_ins_hist_csr.new_inst_loc_type_code IS NULL ) THEN
8614 IF ( p_instance_rec.install_location_type_code = l_curr_instance_rec.install_location_type_code )
8615 OR ( p_instance_rec.install_location_type_code = fnd_api.g_miss_char ) THEN
8616 l_ins_hist_csr.old_inst_loc_type_code := NULL;
8617 l_ins_hist_csr.new_inst_loc_type_code := NULL;
8618 ELSE
8619 l_ins_hist_csr.old_inst_loc_type_code := fnd_api.g_miss_char;
8620 l_ins_hist_csr.new_inst_loc_type_code := p_instance_rec.install_location_type_code;
8621 END IF;
8622 ELSE
8623 l_ins_hist_csr.old_inst_loc_type_code := fnd_api.g_miss_char;
8624 l_ins_hist_csr.new_inst_loc_type_code := p_instance_rec.install_location_type_code;
8625 END IF;
8626 --
8627 IF ( l_ins_hist_csr.old_inst_loc_id IS NULL
8628 AND l_ins_hist_csr.new_inst_loc_id IS NULL ) THEN
8629 IF ( p_instance_rec.install_location_id = l_curr_instance_rec.install_location_id )
8630 OR ( p_instance_rec.install_location_id = fnd_api.g_miss_num ) THEN
8631 l_ins_hist_csr.old_inst_loc_id := NULL;
8632 l_ins_hist_csr.new_inst_loc_id := NULL;
8633 ELSE
8634 l_ins_hist_csr.old_inst_loc_id := fnd_api.g_miss_num;
8635 l_ins_hist_csr.new_inst_loc_id := p_instance_rec.install_location_id;
8636 END IF;
8637 ELSE
8638 l_ins_hist_csr.old_inst_loc_id := fnd_api.g_miss_num;
8639 l_ins_hist_csr.new_inst_loc_id := p_instance_rec.install_location_id;
8640 END IF;
8641 --
8642
8643 IF ( l_ins_hist_csr.old_operational_status_code IS NULL
8644 AND l_ins_hist_csr.new_operational_status_code IS NULL ) THEN
8645 IF ( p_instance_rec.operational_status_code = l_curr_instance_rec.operational_status_code )
8646 OR ( p_instance_rec.operational_status_code = fnd_api.g_miss_char ) THEN
8647 l_ins_hist_csr.old_operational_status_code := NULL;
8648 l_ins_hist_csr.new_operational_status_code := NULL;
8649 ELSE
8650 l_ins_hist_csr.old_operational_status_code := fnd_api.g_miss_char;
8651 l_ins_hist_csr.new_operational_status_code := p_instance_rec.operational_status_code;
8652 END IF;
8653 ELSE
8654 l_ins_hist_csr.old_operational_status_code := fnd_api.g_miss_char;
8655 l_ins_hist_csr.new_operational_status_code := p_instance_rec.operational_status_code;
8656 END IF;
8657
8658
8659 CSI_ITEM_INSTANCES_H_PKG.Update_Row
8660 ( p_INSTANCE_HISTORY_ID => l_ins_hist_id
8661 ,p_INSTANCE_ID => fnd_api.g_miss_num
8662 ,p_TRANSACTION_ID => fnd_api.g_miss_num
8663 ,p_OLD_INSTANCE_NUMBER => fnd_api.g_miss_char
8664 ,p_NEW_INSTANCE_NUMBER => fnd_api.g_miss_char
8665 ,p_OLD_EXTERNAL_REFERENCE => fnd_api.g_miss_char
8666 ,p_NEW_EXTERNAL_REFERENCE => fnd_api.g_miss_char
8667 ,p_OLD_INVENTORY_ITEM_ID => fnd_api.g_miss_num
8668 ,p_NEW_INVENTORY_ITEM_ID => fnd_api.g_miss_num
8669 ,p_OLD_INVENTORY_REVISION => fnd_api.g_miss_char
8670 ,p_NEW_INVENTORY_REVISION => fnd_api.g_miss_char
8671 ,p_OLD_INV_MASTER_ORGZN_ID => fnd_api.g_miss_num
8672 ,p_NEW_INV_MASTER_ORGZN_ID => fnd_api.g_miss_num
8673 ,p_OLD_SERIAL_NUMBER => fnd_api.g_miss_char
8674 ,p_NEW_SERIAL_NUMBER => fnd_api.g_miss_char
8675 ,p_OLD_MFG_SERIAL_NUMBER_FLAG => fnd_api.g_miss_char
8676 ,p_NEW_MFG_SERIAL_NUMBER_FLAG => fnd_api.g_miss_char
8677 ,p_OLD_LOT_NUMBER => fnd_api.g_miss_char
8678 ,p_NEW_LOT_NUMBER => fnd_api.g_miss_char
8679 ,p_OLD_QUANTITY => fnd_api.g_miss_num
8680 ,p_NEW_QUANTITY => fnd_api.g_miss_num
8681 ,p_OLD_UNIT_OF_MEASURE => fnd_api.g_miss_char
8682 ,p_NEW_UNIT_OF_MEASURE => fnd_api.g_miss_char
8683 ,p_OLD_ACCOUNTING_CLASS_CODE => l_ins_hist_csr.OLD_ACCOUNTING_CLASS_CODE
8684 ,p_NEW_ACCOUNTING_CLASS_CODE => l_ins_hist_csr.NEW_ACCOUNTING_CLASS_CODE
8685 ,p_OLD_INSTANCE_CONDITION_ID => fnd_api.g_miss_num
8686 ,p_NEW_INSTANCE_CONDITION_ID => fnd_api.g_miss_num
8687 ,p_OLD_INSTANCE_STATUS_ID => l_ins_hist_csr.OLD_INSTANCE_STATUS_ID
8688 ,p_NEW_INSTANCE_STATUS_ID => l_ins_hist_csr.NEW_INSTANCE_STATUS_ID
8689 ,p_OLD_CUSTOMER_VIEW_FLAG => fnd_api.g_miss_char
8690 ,p_NEW_CUSTOMER_VIEW_FLAG => fnd_api.g_miss_char
8691 ,p_OLD_MERCHANT_VIEW_FLAG => fnd_api.g_miss_char
8692 ,p_NEW_MERCHANT_VIEW_FLAG => fnd_api.g_miss_char
8693 ,p_OLD_SELLABLE_FLAG => fnd_api.g_miss_char
8694 ,p_NEW_SELLABLE_FLAG => fnd_api.g_miss_char
8695 ,p_OLD_SYSTEM_ID => l_ins_hist_csr.old_system_id
8696 ,p_NEW_SYSTEM_ID => l_ins_hist_csr.new_system_id
8697 ,p_OLD_INSTANCE_TYPE_CODE => fnd_api.g_miss_char
8698 ,p_NEW_INSTANCE_TYPE_CODE => fnd_api.g_miss_char
8699 ,p_OLD_ACTIVE_START_DATE => fnd_api.g_miss_date
8700 ,p_NEW_ACTIVE_START_DATE => fnd_api.g_miss_date
8701 ,p_OLD_ACTIVE_END_DATE => l_ins_hist_csr.OLD_ACTIVE_END_DATE
8702 ,p_NEW_ACTIVE_END_DATE => l_ins_hist_csr.NEW_ACTIVE_END_DATE
8703 ,p_OLD_LOCATION_TYPE_CODE => l_ins_hist_csr.OLD_LOCATION_TYPE_CODE
8704 ,p_NEW_LOCATION_TYPE_CODE => l_ins_hist_csr.NEW_LOCATION_TYPE_CODE
8705 ,p_OLD_LOCATION_ID => l_ins_hist_csr.OLD_LOCATION_ID
8706 ,p_NEW_LOCATION_ID => l_ins_hist_csr.NEW_LOCATION_ID
8707 ,p_OLD_INV_ORGANIZATION_ID => l_ins_hist_csr.OLD_INV_ORGANIZATION_ID
8708 ,p_NEW_INV_ORGANIZATION_ID => l_ins_hist_csr.NEW_INV_ORGANIZATION_ID
8709 ,p_OLD_INV_SUBINVENTORY_NAME => l_ins_hist_csr.OLD_INV_SUBINVENTORY_NAME
8710 ,p_NEW_INV_SUBINVENTORY_NAME => l_ins_hist_csr.NEW_INV_SUBINVENTORY_NAME
8711 ,p_OLD_INV_LOCATOR_ID => l_ins_hist_csr.OLD_INV_LOCATOR_ID
8712 ,p_NEW_INV_LOCATOR_ID => l_ins_hist_csr.NEW_INV_LOCATOR_ID
8713 ,p_OLD_PA_PROJECT_ID => l_ins_hist_csr.OLD_PA_PROJECT_ID
8714 ,p_NEW_PA_PROJECT_ID => l_ins_hist_csr.NEW_PA_PROJECT_ID
8715 ,p_OLD_PA_PROJECT_TASK_ID => l_ins_hist_csr.OLD_PA_PROJECT_TASK_ID
8716 ,p_NEW_PA_PROJECT_TASK_ID => l_ins_hist_csr.NEW_PA_PROJECT_TASK_ID
8717 ,p_OLD_IN_TRANSIT_ORDER_LINE_ID => l_ins_hist_csr.OLD_IN_TRANSIT_ORDER_LINE_ID
8718 ,p_NEW_IN_TRANSIT_ORDER_LINE_ID => l_ins_hist_csr.NEW_IN_TRANSIT_ORDER_LINE_ID
8719 ,p_OLD_WIP_JOB_ID => l_ins_hist_csr.OLD_WIP_JOB_ID
8720 ,p_NEW_WIP_JOB_ID => l_ins_hist_csr.NEW_WIP_JOB_ID
8721 ,p_OLD_PO_ORDER_LINE_ID => l_ins_hist_csr.OLD_PO_ORDER_LINE_ID
8722 ,p_NEW_PO_ORDER_LINE_ID => l_ins_hist_csr.NEW_PO_ORDER_LINE_ID
8723 ,p_OLD_COMPLETENESS_FLAG => fnd_api.g_miss_char
8724 ,p_NEW_COMPLETENESS_FLAG => fnd_api.g_miss_char
8725 ,p_FULL_DUMP_FLAG => fnd_api.g_miss_char
8726 ,p_NEW_CONTEXT => fnd_api.g_miss_char
8727 ,P_OLD_CONTEXT => fnd_api.g_miss_char
8728 ,p_NEW_ATTRIBUTE1 => fnd_api.g_miss_char
8729 ,p_OLD_ATTRIBUTE1 => fnd_api.g_miss_char
8730 ,p_NEW_ATTRIBUTE2 => fnd_api.g_miss_char
8731 ,p_OLD_ATTRIBUTE2 => fnd_api.g_miss_char
8732 ,p_NEW_ATTRIBUTE3 => fnd_api.g_miss_char
8733 ,p_OLD_ATTRIBUTE3 => fnd_api.g_miss_char
8734 ,p_NEW_ATTRIBUTE4 => fnd_api.g_miss_char
8735 ,p_OLD_ATTRIBUTE4 => fnd_api.g_miss_char
8736 ,p_NEW_ATTRIBUTE5 => fnd_api.g_miss_char
8737 ,p_OLD_ATTRIBUTE5 => fnd_api.g_miss_char
8738 ,p_NEW_ATTRIBUTE6 => fnd_api.g_miss_char
8739 ,p_OLD_ATTRIBUTE6 => fnd_api.g_miss_char
8740 ,p_NEW_ATTRIBUTE7 => fnd_api.g_miss_char
8741 ,p_OLD_ATTRIBUTE7 => fnd_api.g_miss_char
8742 ,p_NEW_ATTRIBUTE8 => fnd_api.g_miss_char
8743 ,p_OLD_ATTRIBUTE8 => fnd_api.g_miss_char
8744 ,p_NEW_ATTRIBUTE9 => fnd_api.g_miss_char
8745 ,p_OLD_ATTRIBUTE9 => fnd_api.g_miss_char
8746 ,p_NEW_ATTRIBUTE10 => fnd_api.g_miss_char
8747 ,p_OLD_ATTRIBUTE10 => fnd_api.g_miss_char
8748 ,p_NEW_ATTRIBUTE11 => fnd_api.g_miss_char
8749 ,p_OLD_ATTRIBUTE11 => fnd_api.g_miss_char
8750 ,p_NEW_ATTRIBUTE12 => fnd_api.g_miss_char
8751 ,p_OLD_ATTRIBUTE12 => fnd_api.g_miss_char
8752 ,p_NEW_ATTRIBUTE13 => fnd_api.g_miss_char
8753 ,p_OLD_ATTRIBUTE13 => fnd_api.g_miss_char
8754 ,p_NEW_ATTRIBUTE14 => fnd_api.g_miss_char
8755 ,p_OLD_ATTRIBUTE14 => fnd_api.g_miss_char
8756 ,p_NEW_ATTRIBUTE15 => fnd_api.g_miss_char
8757 ,p_OLD_ATTRIBUTE15 => fnd_api.g_miss_char
8758 ,p_CREATED_BY => fnd_api.g_miss_num
8759 ,p_CREATION_DATE => fnd_api.g_miss_date
8760 ,p_LAST_UPDATED_BY => FND_GLOBAL.USER_ID
8761 ,p_LAST_UPDATE_DATE => SYSDATE
8762 ,p_LAST_UPDATE_LOGIN => FND_GLOBAL.CONC_LOGIN_ID
8763 ,p_OBJECT_VERSION_NUMBER => fnd_api.g_miss_num
8764 ,p_OLD_INST_LOC_TYPE_CODE => l_ins_hist_csr.OLD_INST_LOC_TYPE_CODE
8765 ,p_NEW_INST_LOC_TYPE_CODE => l_ins_hist_csr.NEW_INST_LOC_TYPE_CODE
8766 ,p_OLD_INST_LOC_ID => l_ins_hist_csr.OLD_INST_LOC_ID
8767 ,p_NEW_INST_LOC_ID => l_ins_hist_csr.NEW_INST_LOC_ID
8768 ,p_OLD_INST_USAGE_CODE => fnd_api.g_miss_char
8769 ,p_NEW_INST_USAGE_CODE => fnd_api.g_miss_char
8770 ,p_OLD_LAST_VLD_ORGANIZATION_ID => fnd_api.g_miss_num
8771 ,p_NEW_LAST_VLD_ORGANIZATION_ID => fnd_api.g_miss_num
8772 ,p_OLD_CONFIG_INST_REV_NUM => fnd_api.g_miss_num
8773 ,p_NEW_CONFIG_INST_REV_NUM => fnd_api.g_miss_num
8774 ,p_OLD_CONFIG_VALID_STATUS => fnd_api.g_miss_char
8775 ,p_NEW_CONFIG_VALID_STATUS => fnd_api.g_miss_char
8776 ,p_OLD_INSTANCE_DESCRIPTION => fnd_api.g_miss_char
8777 ,p_NEW_INSTANCE_DESCRIPTION => fnd_api.g_miss_char
8778 ,p_OLD_INSTALL_DATE => l_ins_hist_csr.old_install_date
8779 ,p_NEW_INSTALL_DATE => l_ins_hist_csr.new_install_date
8780 ,p_OLD_RETURN_BY_DATE => fnd_api.g_miss_date
8781 ,p_NEW_RETURN_BY_DATE => fnd_api.g_miss_date
8782 ,p_OLD_ACTUAL_RETURN_DATE => fnd_api.g_miss_date
8783 ,p_NEW_ACTUAL_RETURN_DATE => fnd_api.g_miss_date
8784 ,p_OLD_LAST_OE_AGREEMENT_ID => l_ins_hist_csr.OLD_OE_AGREEMENT_ID
8785 ,p_NEW_LAST_OE_AGREEMENT_ID => l_ins_hist_csr.NEW_OE_AGREEMENT_ID
8786 ,p_OLD_LAST_OE_ORDER_LINE_ID => l_ins_hist_csr.OLD_LAST_OE_ORDER_LINE_ID
8787 ,p_NEW_LAST_OE_ORDER_LINE_ID => l_ins_hist_csr.NEW_LAST_OE_ORDER_LINE_ID
8788 ,p_OLD_LAST_OE_RMA_LINE_ID => l_ins_hist_csr.OLD_LAST_OE_RMA_LINE_ID
8789 ,p_NEW_LAST_OE_RMA_LINE_ID => l_ins_hist_csr.NEW_LAST_OE_RMA_LINE_ID
8790 ,p_OLD_LAST_WIP_JOB_ID => l_ins_hist_csr.OLD_LAST_WIP_JOB_ID
8791 ,p_NEW_LAST_WIP_JOB_ID => l_ins_hist_csr.NEW_LAST_WIP_JOB_ID
8792 ,p_OLD_LAST_PO_PO_LINE_ID => l_ins_hist_csr.OLD_LAST_PO_PO_LINE_ID
8793 ,p_NEW_LAST_PO_PO_LINE_ID => l_ins_hist_csr.NEW_LAST_PO_PO_LINE_ID
8794 ,p_OLD_LAST_PA_PROJECT_ID => l_ins_hist_csr.OLD_LAST_PA_PROJECT_ID
8795 ,p_NEW_LAST_PA_PROJECT_ID => l_ins_hist_csr.NEW_LAST_PA_PROJECT_ID
8796 ,p_OLD_LAST_PA_TASK_ID => l_ins_hist_csr.OLD_LAST_PA_TASK_ID
8797 ,p_NEW_LAST_PA_TASK_ID => l_ins_hist_csr.NEW_LAST_PA_TASK_ID
8798 ,p_OLD_LAST_TXN_LINE_DETAIL_ID => l_ins_hist_csr.OLD_LAST_TXN_LINE_DETAIL_ID
8799 ,p_NEW_LAST_TXN_LINE_DETAIL_ID => l_ins_hist_csr.NEW_LAST_TXN_LINE_DETAIL_ID
8800 ,p_OLD_LAST_OE_PO_NUMBER => l_ins_hist_csr.OLD_LAST_OE_PO_NUMBER
8801 ,p_NEW_LAST_OE_PO_NUMBER => l_ins_hist_csr.NEW_LAST_OE_PO_NUMBER
8802 --start of parameters addition for eam integration--
8803 ,p_OLD_NETWORK_ASSET_FLAG => fnd_api.g_miss_char
8804 ,p_NEW_NETWORK_ASSET_FLAG => fnd_api.g_miss_char
8805 ,p_OLD_MAINTAINABLE_FLAG => fnd_api.g_miss_char
8806 ,p_NEW_MAINTAINABLE_FLAG => fnd_api.g_miss_char
8807 ,p_OLD_PN_LOCATION_ID => fnd_api.g_miss_num
8808 ,p_NEW_PN_LOCATION_ID => fnd_api.g_miss_num
8809 ,p_OLD_ASSET_CRITICALITY_CODE => fnd_api.g_miss_char
8810 ,p_NEW_ASSET_CRITICALITY_CODE => fnd_api.g_miss_char
8811 ,p_OLD_CATEGORY_ID => fnd_api.g_miss_num
8812 ,p_NEW_CATEGORY_ID => fnd_api.g_miss_num
8813 ,p_OLD_EQUIPMENT_GEN_OBJECT_ID => fnd_api.g_miss_num
8814 ,p_NEW_EQUIPMENT_GEN_OBJECT_ID => fnd_api.g_miss_num
8815 ,p_OLD_INSTANTIATION_FLAG => fnd_api.g_miss_char
8816 ,p_NEW_INSTANTIATION_FLAG => fnd_api.g_miss_char
8817 ,p_OLD_LINEAR_LOCATION_ID => fnd_api.g_miss_num
8818 ,p_NEW_LINEAR_LOCATION_ID => fnd_api.g_miss_num
8819 ,p_OLD_OPERATIONAL_LOG_FLAG => fnd_api.g_miss_char
8820 ,p_NEW_OPERATIONAL_LOG_FLAG => fnd_api.g_miss_char
8821 ,p_OLD_CHECKIN_STATUS => fnd_api.g_miss_num
8822 ,p_NEW_CHECKIN_STATUS => fnd_api.g_miss_num
8823 ,p_OLD_SUP_WARRANTY_EXP_DATE => fnd_api.g_miss_date
8824 ,p_NEW_SUP_WARRANTY_EXP_DATE => fnd_api.g_miss_date
8825 ,p_OLD_ATTRIBUTE16 => fnd_api.g_miss_char
8826 ,p_NEW_ATTRIBUTE16 => fnd_api.g_miss_char
8827 ,p_OLD_ATTRIBUTE17 => fnd_api.g_miss_char
8828 ,p_NEW_ATTRIBUTE17 => fnd_api.g_miss_char
8829 ,p_OLD_ATTRIBUTE18 => fnd_api.g_miss_char
8830 ,p_NEW_ATTRIBUTE18 => fnd_api.g_miss_char
8831 ,p_OLD_ATTRIBUTE19 => fnd_api.g_miss_char
8832 ,p_NEW_ATTRIBUTE19 => fnd_api.g_miss_char
8833 ,p_OLD_ATTRIBUTE20 => fnd_api.g_miss_char
8834 ,p_NEW_ATTRIBUTE20 => fnd_api.g_miss_char
8835 ,p_OLD_ATTRIBUTE21 => fnd_api.g_miss_char
8836 ,p_NEW_ATTRIBUTE21 => fnd_api.g_miss_char
8837 ,p_OLD_ATTRIBUTE22 => fnd_api.g_miss_char
8838 ,p_NEW_ATTRIBUTE22 => fnd_api.g_miss_char
8839 ,p_OLD_ATTRIBUTE23 => fnd_api.g_miss_char
8840 ,p_NEW_ATTRIBUTE23 => fnd_api.g_miss_char
8841 ,p_OLD_ATTRIBUTE24 => fnd_api.g_miss_char
8842 ,p_NEW_ATTRIBUTE24 => fnd_api.g_miss_char
8843 ,p_OLD_ATTRIBUTE25 => fnd_api.g_miss_char
8844 ,p_NEW_ATTRIBUTE25 => fnd_api.g_miss_char
8845 ,p_OLD_ATTRIBUTE26 => fnd_api.g_miss_char
8846 ,p_NEW_ATTRIBUTE26 => fnd_api.g_miss_char
8847 ,p_OLD_ATTRIBUTE27 => fnd_api.g_miss_char
8848 ,p_NEW_ATTRIBUTE27 => fnd_api.g_miss_char
8849 ,p_OLD_ATTRIBUTE28 => fnd_api.g_miss_char
8850 ,p_NEW_ATTRIBUTE28 => fnd_api.g_miss_char
8851 ,p_OLD_ATTRIBUTE29 => fnd_api.g_miss_char
8852 ,p_NEW_ATTRIBUTE29 => fnd_api.g_miss_char
8853 ,p_OLD_ATTRIBUTE30 => fnd_api.g_miss_char
8854 ,p_NEW_ATTRIBUTE30 => fnd_api.g_miss_char
8855 --end of parameters addition for eam integration--
8856 -- Addition of columns for FA Integration
8857 ,p_OLD_PAYABLES_UNIT_PRICE => fnd_api.g_miss_num
8858 ,p_NEW_PAYABLES_UNIT_PRICE => fnd_api.g_miss_num
8859 ,p_OLD_PAYABLES_CURRENCY_CODE => fnd_api.g_miss_char
8860 ,p_NEW_PAYABLES_CURRENCY_CODE => fnd_api.g_miss_char
8861 ,p_OLD_PURCHASE_UNIT_PRICE => fnd_api.g_miss_num
8862 ,p_NEW_PURCHASE_UNIT_PRICE => fnd_api.g_miss_num
8863 ,p_OLD_PURCHASE_CURRENCY_CODE => fnd_api.g_miss_char
8864 ,p_NEW_PURCHASE_CURRENCY_CODE => fnd_api.g_miss_char
8865 ,p_OLD_SALES_UNIT_PRICE => fnd_api.g_miss_num
8866 ,p_NEW_SALES_UNIT_PRICE => fnd_api.g_miss_num
8867 ,p_OLD_SALES_CURRENCY_CODE => fnd_api.g_miss_char
8868 ,p_NEW_SALES_CURRENCY_CODE => fnd_api.g_miss_char
8869 ,p_OLD_OPERATIONAL_STATUS_CODE => l_ins_hist_csr.old_operational_status_code
8870 ,p_NEW_OPERATIONAL_STATUS_CODE => l_ins_hist_csr.new_operational_status_code
8871 -- End addition of columns for FA Integration
8872 -- Begin Add Code for Siebel Genesis Project
8873 ,p_OLD_SOURCE_CODE => fnd_api.g_miss_char
8874 ,p_NEW_SOURCE_CODE => fnd_api.g_miss_char
8875 -- End Add Code for Siebel Genesis Project
8876 );
8877
8878 END IF; -- end if of l_ins_hist_csr.full_dump_flag
8879 EXCEPTION
8880
8881 WHEN NO_DATA_FOUND THEN
8882 -- END OF MODIFICATION ON 22-JUL SK
8883
8884 -- Check if there is a need to validate instance_usage_code, vld_organization_id
8885 IF (l_mod_value = 0) THEN
8886 -- If the mod value is 0 then dump all the columns both changed and unchanged
8887 -- changed columns have old and new values while the unchanged values have old and new values
8888 -- exactly same
8889
8890 p_instance_rec.INSTANCE_NUMBER := l_curr_instance_rec.INSTANCE_NUMBER;
8891 p_instance_rec.EXTERNAL_REFERENCE := l_curr_instance_rec.EXTERNAL_REFERENCE;
8892 p_instance_rec.INVENTORY_ITEM_ID := l_curr_instance_rec.INVENTORY_ITEM_ID;
8893 p_instance_rec.INVENTORY_REVISION := l_curr_instance_rec.INVENTORY_REVISION;
8894 p_instance_rec.INV_MASTER_ORGANIZATION_ID := l_curr_instance_rec.INV_MASTER_ORGANIZATION_ID;
8895 p_instance_rec.SERIAL_NUMBER := l_curr_instance_rec.SERIAL_NUMBER;
8896 p_instance_rec.MFG_SERIAL_NUMBER_FLAG := l_curr_instance_rec.MFG_SERIAL_NUMBER_FLAG;
8897 p_instance_rec.LOT_NUMBER := l_curr_instance_rec.LOT_NUMBER;
8898 p_instance_rec.QUANTITY := l_curr_instance_rec.QUANTITY;
8899 p_instance_rec.UNIT_OF_MEASURE := l_curr_instance_rec.UNIT_OF_MEASURE;
8900 p_instance_rec.INSTANCE_CONDITION_ID := l_curr_instance_rec.INSTANCE_CONDITION_ID;
8901 p_instance_rec.CUSTOMER_VIEW_FLAG := l_curr_instance_rec.CUSTOMER_VIEW_FLAG;
8902 p_instance_rec.MERCHANT_VIEW_FLAG := l_curr_instance_rec.MERCHANT_VIEW_FLAG;
8903 p_instance_rec.SELLABLE_FLAG := l_curr_instance_rec.SELLABLE_FLAG;
8904 p_instance_rec.INSTANCE_TYPE_CODE := l_curr_instance_rec.INSTANCE_TYPE_CODE;
8905 p_instance_rec.ACTIVE_START_DATE := l_curr_instance_rec.ACTIVE_START_DATE;
8906
8907 IF (p_instance_rec.ACCOUNTING_CLASS_CODE = FND_API.G_MISS_CHAR) THEN
8908 p_instance_rec.ACCOUNTING_CLASS_CODE := l_curr_instance_rec.ACCOUNTING_CLASS_CODE;
8909 END IF;
8910 IF (l_instance_status_id = FND_API.G_MISS_NUM) THEN
8911 l_instance_status_id := l_curr_instance_rec.INSTANCE_STATUS_ID;
8912 END IF;
8913 IF (l_system_id = FND_API.G_MISS_NUM) THEN
8914 l_system_id := l_curr_instance_rec.INSTANCE_STATUS_ID;
8915 END IF;
8916 IF (l_install_date = FND_API.G_MISS_DATE) THEN
8917 l_install_date := l_curr_instance_rec.INSTALL_DATE;
8918 END IF;
8919 IF (p_instance_rec.ACTIVE_END_DATE = FND_API.G_MISS_DATE) THEN
8920 p_instance_rec.ACTIVE_END_dATE := l_curr_instance_rec.ACTIVE_END_DATE;
8921 END IF;
8922 IF (p_instance_rec.LOCATION_TYPE_CODE = FND_API.G_MISS_CHAR) THEN
8923 p_instance_rec.LOCATION_TYPE_CODE := l_curr_instance_rec.LOCATION_TYPE_CODE;
8924 END IF;
8925 IF (p_instance_rec.LOCATION_ID = FND_API.G_MISS_NUM) THEN
8926 p_instance_rec.LOCATION_ID := l_curr_instance_rec.LOCATION_ID;
8927 END IF;
8928 IF (p_instance_rec.INV_ORGANIZATION_ID = FND_API.G_MISS_NUM) THEN
8929 p_instance_rec.INV_ORGANIZATION_ID := l_curr_instance_rec.INV_ORGANIZATION_ID;
8930 END IF;
8931 IF (p_instance_rec.INV_SUBINVENTORY_NAME = FND_API.G_MISS_CHAR) THEN
8932 p_instance_rec.INV_SUBINVENTORY_NAME := l_curr_instance_rec.INV_SUBINVENTORY_NAME;
8933 END IF;
8934 IF (p_instance_rec.INV_LOCATOR_ID = FND_API.G_MISS_NUM) THEN
8935 p_instance_rec.INV_LOCATOR_ID := l_curr_instance_rec.INV_LOCATOR_ID;
8936 END IF;
8937 IF (p_instance_rec.PA_PROJECT_ID = FND_API.G_MISS_NUM) THEN
8938 p_instance_rec.PA_PROJECT_ID := l_curr_instance_rec.PA_PROJECT_ID;
8939 END IF;
8940 IF (p_instance_rec.PA_PROJECT_TASK_ID = FND_API.G_MISS_NUM) THEN
8941 p_instance_rec.PA_PROJECT_TASK_ID := l_curr_instance_rec.PA_PROJECT_TASK_ID;
8942 END IF;
8943 IF (p_instance_rec.IN_TRANSIT_ORDER_LINE_ID = FND_API.G_MISS_NUM) THEN
8944 p_instance_rec.IN_TRANSIT_ORDER_LINE_ID := l_curr_instance_rec.IN_TRANSIT_ORDER_LINE_ID;
8945 END IF;
8946 IF (p_instance_rec.WIP_JOB_ID = FND_API.G_MISS_NUM) THEN
8947 p_instance_rec.WIP_JOB_ID := l_curr_instance_rec.WIP_JOB_ID;
8948 END IF;
8949 IF (p_instance_rec.PO_ORDER_LINE_ID = FND_API.G_MISS_NUM) THEN
8950 p_instance_rec.PO_ORDER_LINE_ID := l_curr_instance_rec.PO_ORDER_LINE_ID;
8951 END IF;
8952 IF (p_instance_rec.LAST_OE_AGREEMENT_ID = FND_API.G_MISS_NUM) THEN
8953 p_instance_rec.LAST_OE_AGREEMENT_ID := l_curr_instance_rec.LAST_OE_AGREEMENT_ID;
8954 END IF;
8955 IF (p_instance_rec.LAST_OE_ORDER_LINE_ID = FND_API.G_MISS_NUM) THEN
8956 p_instance_rec.LAST_OE_ORDER_LINE_ID := l_curr_instance_rec.LAST_OE_ORDER_LINE_ID;
8957 END IF;
8958 IF (p_instance_rec.LAST_OE_RMA_LINE_ID = FND_API.G_MISS_NUM) THEN
8959 p_instance_rec.LAST_OE_RMA_LINE_ID := l_curr_instance_rec.LAST_OE_RMA_LINE_ID;
8960 END IF;
8961 IF (p_instance_rec.LAST_WIP_JOB_ID = FND_API.G_MISS_NUM) THEN
8962 p_instance_rec.LAST_WIP_JOB_ID := l_curr_instance_rec.LAST_WIP_JOB_ID;
8963 END IF;
8964 IF (p_instance_rec.LAST_PO_PO_LINE_ID = FND_API.G_MISS_NUM) THEN
8965 p_instance_rec.LAST_PO_PO_LINE_ID := l_curr_instance_rec.LAST_PO_PO_LINE_ID;
8966 END IF;
8967 IF (p_instance_rec.LAST_PA_PROJECT_ID = FND_API.G_MISS_NUM) THEN
8968 p_instance_rec.LAST_PA_PROJECT_ID := l_curr_instance_rec.LAST_PA_PROJECT_ID;
8969 END IF;
8970 IF (p_instance_rec.LAST_PA_TASK_ID = FND_API.G_MISS_NUM) THEN
8971 p_instance_rec.LAST_PA_TASK_ID := l_curr_instance_rec.LAST_PA_TASK_ID;
8972 END IF;
8973 IF (p_instance_rec.LAST_TXN_LINE_DETAIL_ID = FND_API.G_MISS_NUM) THEN
8974 p_instance_rec.LAST_TXN_LINE_DETAIL_ID := l_curr_instance_rec.LAST_TXN_LINE_DETAIL_ID;
8975 END IF;
8976 IF (p_instance_rec.LAST_OE_PO_NUMBER = FND_API.G_MISS_CHAR) THEN
8977 p_instance_rec.LAST_OE_PO_NUMBER := l_curr_instance_rec.LAST_OE_PO_NUMBER;
8978 END IF;
8979 IF (p_instance_rec.INSTALL_LOCATION_TYPE_CODE = FND_API.G_MISS_CHAR) THEN
8980 p_instance_rec.INSTALL_LOCATION_TYPE_CODE := l_curr_instance_rec.INSTALL_LOCATION_TYPE_CODE;
8981 END IF;
8982 IF (p_instance_rec.INSTALL_LOCATION_ID = FND_API.G_MISS_NUM) THEN
8983 p_instance_rec.INSTALL_LOCATION_ID := l_curr_instance_rec.INSTALL_LOCATION_ID;
8984 END IF;
8985 IF (p_instance_rec.OPERATIONAL_STATUS_CODE = FND_API.G_MISS_CHAR) THEN
8986 -- Bug 10049269
8987 -- p_instance_rec.OPERATIONAL_STATUS_CODE := l_curr_instance_rec.INSTALL_LOCATION_TYPE_CODE;
8988 p_instance_rec.OPERATIONAL_STATUS_CODE := l_curr_instance_rec.OPERATIONAL_STATUS_CODE;
8989 END IF;
8990
8991 p_instance_rec.MANUALLY_CREATED_FLAG := l_curr_instance_rec.MANUALLY_CREATED_FLAG;
8992 p_instance_rec.RETURN_BY_DATE := l_curr_instance_rec.RETURN_BY_DATE;
8993 p_instance_rec.ACTUAL_RETURN_DATE := l_curr_instance_rec.ACTUAL_RETURN_DATE;
8994 p_instance_rec.CREATION_COMPLETE_FLAG := l_curr_instance_rec.CREATION_COMPLETE_FLAG;
8995 p_instance_rec.COMPLETENESS_FLAG := l_curr_instance_rec.COMPLETENESS_FLAG;
8996 p_instance_rec.CONTEXT := l_curr_instance_rec.CONTEXT;
8997 p_instance_rec.ATTRIBUTE1 := l_curr_instance_rec.ATTRIBUTE1;
8998 p_instance_rec.ATTRIBUTE2 := l_curr_instance_rec.ATTRIBUTE2;
8999 p_instance_rec.ATTRIBUTE3 := l_curr_instance_rec.ATTRIBUTE3;
9000 p_instance_rec.ATTRIBUTE4 := l_curr_instance_rec.ATTRIBUTE4;
9001 p_instance_rec.ATTRIBUTE5 := l_curr_instance_rec.ATTRIBUTE5;
9002 p_instance_rec.ATTRIBUTE6 := l_curr_instance_rec.ATTRIBUTE6;
9003 p_instance_rec.ATTRIBUTE7 := l_curr_instance_rec.ATTRIBUTE7;
9004 p_instance_rec.ATTRIBUTE8 := l_curr_instance_rec.ATTRIBUTE8;
9005 p_instance_rec.ATTRIBUTE9 := l_curr_instance_rec.ATTRIBUTE9;
9006 p_instance_rec.ATTRIBUTE10 := l_curr_instance_rec.ATTRIBUTE10;
9007 p_instance_rec.ATTRIBUTE11 := l_curr_instance_rec.ATTRIBUTE11;
9008 p_instance_rec.ATTRIBUTE12 := l_curr_instance_rec.ATTRIBUTE12;
9009 p_instance_rec.ATTRIBUTE13 := l_curr_instance_rec.ATTRIBUTE13;
9010 p_instance_rec.ATTRIBUTE14 := l_curr_instance_rec.ATTRIBUTE14;
9011 p_instance_rec.ATTRIBUTE15 := l_curr_instance_rec.ATTRIBUTE15;
9012 p_instance_rec.OBJECT_VERSION_NUMBER := l_curr_instance_rec.OBJECT_VERSION_NUMBER;
9013 p_instance_rec.INSTANCE_USAGE_CODE := l_curr_instance_rec.INSTANCE_USAGE_CODE;
9014 p_instance_rec.CONFIG_INST_REV_NUM := l_curr_instance_rec.CONFIG_INST_REV_NUM;
9015 p_instance_rec.CONFIG_VALID_STATUS := l_curr_instance_rec.CONFIG_VALID_STATUS;
9016 p_instance_rec.INSTANCE_DESCRIPTION := l_curr_instance_rec.INSTANCE_DESCRIPTION;
9017 --start of code for eam integration--
9018 p_instance_rec.NETWORK_ASSET_FLAG := l_curr_instance_rec.NETWORK_ASSET_FLAG;
9019 p_instance_rec.MAINTAINABLE_FLAG := l_curr_instance_rec.MAINTAINABLE_FLAG;
9020 p_instance_rec.PN_LOCATION_ID := l_curr_instance_rec.PN_LOCATION_ID;
9021 p_instance_rec.ASSET_CRITICALITY_CODE := l_curr_instance_rec.ASSET_CRITICALITY_CODE;
9022 p_instance_rec.CATEGORY_ID := l_curr_instance_rec.CATEGORY_ID;
9023 p_instance_rec.EQUIPMENT_GEN_OBJECT_ID:= l_curr_instance_rec.EQUIPMENT_GEN_OBJECT_ID;
9024 p_instance_rec.INSTANTIATION_FLAG := l_curr_instance_rec.INSTANTIATION_FLAG;
9025 p_instance_rec.LINEAR_LOCATION_ID := l_curr_instance_rec.LINEAR_LOCATION_ID;
9026 p_instance_rec.OPERATIONAL_LOG_FLAG := l_curr_instance_rec.OPERATIONAL_LOG_FLAG;
9027 p_instance_rec.CHECKIN_STATUS := l_curr_instance_rec.CHECKIN_STATUS;
9028 p_instance_rec.SUPPLIER_WARRANTY_EXP_DATE := l_curr_instance_rec.SUPPLIER_WARRANTY_EXP_DATE;
9029 p_instance_rec.ATTRIBUTE16 := l_curr_instance_rec.ATTRIBUTE16;
9030 p_instance_rec.ATTRIBUTE17 := l_curr_instance_rec.ATTRIBUTE17;
9031 p_instance_rec.ATTRIBUTE18 := l_curr_instance_rec.ATTRIBUTE18;
9032 p_instance_rec.ATTRIBUTE19 := l_curr_instance_rec.ATTRIBUTE19;
9033 p_instance_rec.ATTRIBUTE20 := l_curr_instance_rec.ATTRIBUTE20;
9034 p_instance_rec.ATTRIBUTE21 := l_curr_instance_rec.ATTRIBUTE21;
9035 p_instance_rec.ATTRIBUTE22 := l_curr_instance_rec.ATTRIBUTE22;
9036 p_instance_rec.ATTRIBUTE23 := l_curr_instance_rec.ATTRIBUTE23;
9037 p_instance_rec.ATTRIBUTE24 := l_curr_instance_rec.ATTRIBUTE24;
9038 p_instance_rec.ATTRIBUTE25 := l_curr_instance_rec.ATTRIBUTE25;
9039 p_instance_rec.ATTRIBUTE26 := l_curr_instance_rec.ATTRIBUTE26;
9040 p_instance_rec.ATTRIBUTE27 := l_curr_instance_rec.ATTRIBUTE27;
9041 p_instance_rec.ATTRIBUTE28 := l_curr_instance_rec.ATTRIBUTE28;
9042 p_instance_rec.ATTRIBUTE29 := l_curr_instance_rec.ATTRIBUTE29;
9043 p_instance_rec.ATTRIBUTE30 := l_curr_instance_rec.ATTRIBUTE30;
9044 --end of code for eam integration--
9045 -- Addition of columns for FA Integration
9046 p_instance_rec.PAYABLES_UNIT_PRICE := l_curr_instance_rec.PAYABLES_UNIT_PRICE;
9047 p_instance_rec.PAYABLES_CURRENCY_CODE := l_curr_instance_rec.PAYABLES_CURRENCY_CODE;
9048 p_instance_rec.PURCHASE_UNIT_PRICE := l_curr_instance_rec.PURCHASE_UNIT_PRICE;
9049 p_instance_rec.PURCHASE_CURRENCY_CODE := l_curr_instance_rec.PURCHASE_CURRENCY_CODE;
9050 p_instance_rec.SALES_UNIT_PRICE := l_curr_instance_rec.SALES_UNIT_PRICE;
9051 p_instance_rec.SALES_CURRENCY_CODE := l_curr_instance_rec.SALES_CURRENCY_CODE;
9052 -- p_instance_rec.OPERATIONAL_STATUS_CODE := l_curr_instance_rec.OPERATIONAL_STATUS_CODE;
9053 -- End addition of columns for FA Integration
9054
9055 /* Commented out to implement bulk processing.... Bug:5615169
9056 CSI_ITEM_INSTANCES_H_PKG.Insert_Row
9057 ( px_INSTANCE_HISTORY_ID => l_csi_item_instance_h_id
9058 ,p_INSTANCE_ID => l_rel_tbl(j).subject_id
9059 ,p_TRANSACTION_ID => p_txn_rec.TRANSACTION_ID
9060 ,p_OLD_INSTANCE_NUMBER => l_curr_instance_rec.INSTANCE_NUMBER
9061 ,p_NEW_INSTANCE_NUMBER => p_instance_rec.INSTANCE_NUMBER
9062 ,p_OLD_EXTERNAL_REFERENCE => l_curr_instance_rec.EXTERNAL_REFERENCE
9063 ,p_NEW_EXTERNAL_REFERENCE => p_instance_rec.EXTERNAL_REFERENCE
9064 ,p_OLD_INVENTORY_ITEM_ID => l_curr_instance_rec.INVENTORY_ITEM_ID
9065 ,p_NEW_INVENTORY_ITEM_ID => p_instance_rec.INVENTORY_ITEM_ID
9066 ,p_OLD_INVENTORY_REVISION => l_curr_instance_rec.INVENTORY_REVISION
9067 ,p_NEW_INVENTORY_REVISION => p_instance_rec.INVENTORY_REVISION
9068 ,p_OLD_INV_MASTER_ORGZN_ID => l_curr_instance_rec.INV_MASTER_ORGANIZATION_ID
9069 ,p_NEW_INV_MASTER_ORGZN_ID => p_instance_rec.INV_MASTER_ORGANIZATION_ID
9070 ,p_OLD_SERIAL_NUMBER => l_curr_instance_rec.SERIAL_NUMBER
9071 ,p_NEW_SERIAL_NUMBER => p_instance_rec.SERIAL_NUMBER
9072 ,p_OLD_MFG_SERIAL_NUMBER_FLAG => l_curr_instance_rec.MFG_SERIAL_NUMBER_FLAG
9073 ,p_NEW_MFG_SERIAL_NUMBER_FLAG => p_instance_rec.MFG_SERIAL_NUMBER_FLAG
9074 ,p_OLD_LOT_NUMBER => l_curr_instance_rec.LOT_NUMBER
9075 ,p_NEW_LOT_NUMBER => p_instance_rec.LOT_NUMBER
9076 ,p_OLD_QUANTITY => l_curr_instance_rec.QUANTITY
9077 ,p_NEW_QUANTITY => p_instance_rec.QUANTITY
9078 ,p_OLD_UNIT_OF_MEASURE => l_curr_instance_rec.UNIT_OF_MEASURE
9079 ,p_NEW_UNIT_OF_MEASURE => p_instance_rec.UNIT_OF_MEASURE
9080 ,p_OLD_ACCOUNTING_CLASS_CODE => l_curr_instance_rec.ACCOUNTING_CLASS_CODE
9081 ,p_NEW_ACCOUNTING_CLASS_CODE => p_instance_rec.ACCOUNTING_CLASS_CODE
9082 ,p_OLD_INSTANCE_CONDITION_ID => l_curr_instance_rec.INSTANCE_CONDITION_ID
9083 ,p_NEW_INSTANCE_CONDITION_ID => p_instance_rec.INSTANCE_CONDITION_ID
9084 ,p_OLD_INSTANCE_STATUS_ID => l_curr_instance_rec.INSTANCE_STATUS_ID
9085 ,p_NEW_INSTANCE_STATUS_ID => l_instance_status_id --p_instance_rec.INSTANCE_STATUS_ID
9086 ,p_OLD_CUSTOMER_VIEW_FLAG => l_curr_instance_rec.CUSTOMER_VIEW_FLAG
9087 ,p_NEW_CUSTOMER_VIEW_FLAG => p_instance_rec.CUSTOMER_VIEW_FLAG
9088 ,p_OLD_MERCHANT_VIEW_FLAG => l_curr_instance_rec.MERCHANT_VIEW_FLAG
9089 ,p_NEW_MERCHANT_VIEW_FLAG => p_instance_rec.MERCHANT_VIEW_FLAG
9090 ,p_OLD_SELLABLE_FLAG => l_curr_instance_rec.SELLABLE_FLAG
9091 ,p_NEW_SELLABLE_FLAG => p_instance_rec.SELLABLE_FLAG
9092 ,p_OLD_SYSTEM_ID => l_curr_instance_rec.SYSTEM_ID
9093 ,p_NEW_SYSTEM_ID => l_system_id
9094 ,p_OLD_INSTANCE_TYPE_CODE => l_curr_instance_rec.INSTANCE_TYPE_CODE
9095 ,p_NEW_INSTANCE_TYPE_CODE => p_instance_rec.INSTANCE_TYPE_CODE
9096 ,p_OLD_ACTIVE_START_DATE => l_curr_instance_rec.ACTIVE_START_DATE
9097 ,p_NEW_ACTIVE_START_DATE => p_instance_rec.ACTIVE_START_DATE
9098 ,p_OLD_ACTIVE_END_DATE => l_curr_instance_rec.ACTIVE_END_DATE
9099 ,p_NEW_ACTIVE_END_DATE => p_instance_rec.ACTIVE_END_DATE
9100 ,p_OLD_LOCATION_TYPE_CODE => l_curr_instance_rec.LOCATION_TYPE_CODE
9101 ,p_NEW_LOCATION_TYPE_CODE => p_instance_rec.LOCATION_TYPE_CODE
9102 ,p_OLD_LOCATION_ID => l_curr_instance_rec.LOCATION_ID
9103 ,p_NEW_LOCATION_ID => p_instance_rec.LOCATION_ID
9104 ,p_OLD_INV_ORGANIZATION_ID => l_curr_instance_rec.INV_ORGANIZATION_ID
9105 ,p_NEW_INV_ORGANIZATION_ID => p_instance_rec.INV_ORGANIZATION_ID
9106 ,p_OLD_INV_SUBINVENTORY_NAME => l_curr_instance_rec.INV_SUBINVENTORY_NAME
9107 ,p_NEW_INV_SUBINVENTORY_NAME => p_instance_rec.INV_SUBINVENTORY_NAME
9108 ,p_OLD_INV_LOCATOR_ID => l_curr_instance_rec.INV_LOCATOR_ID
9109 ,p_NEW_INV_LOCATOR_ID => p_instance_rec.INV_LOCATOR_ID
9110 ,p_OLD_PA_PROJECT_ID => l_curr_instance_rec.PA_PROJECT_ID
9111 ,p_NEW_PA_PROJECT_ID => p_instance_rec.PA_PROJECT_ID
9112 ,p_OLD_PA_PROJECT_TASK_ID => l_curr_instance_rec.PA_PROJECT_TASK_ID
9113 ,p_NEW_PA_PROJECT_TASK_ID => p_instance_rec.PA_PROJECT_TASK_ID
9114 ,p_OLD_IN_TRANSIT_ORDER_LINE_ID => l_curr_instance_rec.IN_TRANSIT_ORDER_LINE_ID
9115 ,p_NEW_IN_TRANSIT_ORDER_LINE_ID => p_instance_rec.IN_TRANSIT_ORDER_LINE_ID
9116 ,p_OLD_WIP_JOB_ID => l_curr_instance_rec.WIP_JOB_ID
9117 ,p_NEW_WIP_JOB_ID => p_instance_rec.WIP_JOB_ID
9118 ,p_OLD_PO_ORDER_LINE_ID => l_curr_instance_rec.PO_ORDER_LINE_ID
9119 ,p_NEW_PO_ORDER_LINE_ID => p_instance_rec.PO_ORDER_LINE_ID
9120 ,p_OLD_COMPLETENESS_FLAG => l_curr_instance_rec.COMPLETENESS_FLAG
9121 ,p_NEW_COMPLETENESS_FLAG => p_instance_rec.COMPLETENESS_FLAG
9122 ,p_FULL_DUMP_FLAG => 'Y'
9123 ,p_NEW_CONTEXT => p_instance_rec.CONTEXT
9124 ,P_OLD_CONTEXT => l_curr_instance_rec.CONTEXT
9125 ,p_NEW_ATTRIBUTE1 => p_instance_rec.ATTRIBUTE1
9126 ,p_OLD_ATTRIBUTE1 => l_curr_instance_rec.ATTRIBUTE1
9127 ,p_NEW_ATTRIBUTE2 => p_instance_rec.ATTRIBUTE2
9128 ,p_OLD_ATTRIBUTE2 => l_curr_instance_rec.ATTRIBUTE2
9129 ,p_NEW_ATTRIBUTE3 => p_instance_rec.ATTRIBUTE3
9130 ,p_OLD_ATTRIBUTE3 => l_curr_instance_rec.ATTRIBUTE3
9131 ,p_NEW_ATTRIBUTE4 => p_instance_rec.ATTRIBUTE4
9132 ,p_OLD_ATTRIBUTE4 => l_curr_instance_rec.ATTRIBUTE4
9133 ,p_NEW_ATTRIBUTE5 => p_instance_rec.ATTRIBUTE5
9134 ,p_OLD_ATTRIBUTE5 => l_curr_instance_rec.ATTRIBUTE5
9135 ,p_NEW_ATTRIBUTE6 => p_instance_rec.ATTRIBUTE6
9136 ,p_OLD_ATTRIBUTE6 => l_curr_instance_rec.ATTRIBUTE6
9137 ,p_NEW_ATTRIBUTE7 => p_instance_rec.ATTRIBUTE7
9138 ,p_OLD_ATTRIBUTE7 => l_curr_instance_rec.ATTRIBUTE7
9139 ,p_NEW_ATTRIBUTE8 => p_instance_rec.ATTRIBUTE8
9140 ,p_OLD_ATTRIBUTE8 => l_curr_instance_rec.ATTRIBUTE8
9141 ,p_NEW_ATTRIBUTE9 => p_instance_rec.ATTRIBUTE9
9142 ,p_OLD_ATTRIBUTE9 => l_curr_instance_rec.ATTRIBUTE9
9143 ,p_NEW_ATTRIBUTE10 => p_instance_rec.ATTRIBUTE10
9144 ,p_OLD_ATTRIBUTE10 => l_curr_instance_rec.ATTRIBUTE10
9145 ,p_NEW_ATTRIBUTE11 => p_instance_rec.ATTRIBUTE11
9146 ,p_OLD_ATTRIBUTE11 => l_curr_instance_rec.ATTRIBUTE11
9147 ,p_NEW_ATTRIBUTE12 => p_instance_rec.ATTRIBUTE12
9148 ,p_OLD_ATTRIBUTE12 => l_curr_instance_rec.ATTRIBUTE12
9149 ,p_NEW_ATTRIBUTE13 => p_instance_rec.ATTRIBUTE13
9150 ,p_OLD_ATTRIBUTE13 => l_curr_instance_rec.ATTRIBUTE13
9151 ,p_NEW_ATTRIBUTE14 => p_instance_rec.ATTRIBUTE14
9152 ,p_OLD_ATTRIBUTE14 => l_curr_instance_rec.ATTRIBUTE14
9153 ,p_NEW_ATTRIBUTE15 => p_instance_rec.ATTRIBUTE15
9154 ,p_OLD_ATTRIBUTE15 => l_curr_instance_rec.ATTRIBUTE15
9155 ,p_CREATED_BY => FND_GLOBAL.USER_ID
9156 ,p_CREATION_DATE => SYSDATE
9157 ,p_LAST_UPDATED_BY => FND_GLOBAL.USER_ID
9158 ,p_LAST_UPDATE_DATE => SYSDATE
9159 ,p_LAST_UPDATE_LOGIN => FND_GLOBAL.CONC_LOGIN_ID
9160 ,p_OBJECT_VERSION_NUMBER => 1
9161 ,p_OLD_INST_LOC_TYPE_CODE => l_curr_instance_rec.INSTALL_LOCATION_TYPE_CODE
9162 ,p_NEW_INST_LOC_TYPE_CODE => p_instance_rec.INSTALL_LOCATION_TYPE_CODE
9163 ,p_OLD_INST_LOC_ID => l_curr_instance_rec.INSTALL_LOCATION_ID
9164 ,p_NEW_INST_LOC_ID => p_instance_rec.INSTALL_LOCATION_ID
9165 ,p_OLD_INST_USAGE_CODE => l_curr_instance_rec.INSTANCE_USAGE_CODE
9166 ,p_NEW_INST_USAGE_CODE => p_instance_rec.INSTANCE_USAGE_CODE
9167 ,p_OLD_LAST_VLD_ORGANIZATION_ID => fnd_api.g_miss_num
9168 ,p_NEW_LAST_VLD_ORGANIZATION_ID => fnd_api.g_miss_num
9169 ,p_OLD_CONFIG_INST_REV_NUM => l_curr_instance_rec.CONFIG_INST_REV_NUM
9170 ,p_NEW_CONFIG_INST_REV_NUM => p_instance_rec.CONFIG_INST_REV_NUM
9171 ,p_OLD_CONFIG_VALID_STATUS => l_curr_instance_rec.CONFIG_VALID_STATUS
9172 ,p_NEW_CONFIG_VALID_STATUS => p_instance_rec.CONFIG_VALID_STATUS
9173 ,p_OLD_INSTANCE_DESCRIPTION => l_curr_instance_rec.INSTANCE_DESCRIPTION
9174 ,p_NEW_INSTANCE_DESCRIPTION => p_instance_rec.INSTANCE_DESCRIPTION
9175 ,p_OLD_INSTALL_DATE => l_curr_instance_rec.INSTALL_DATE
9176 ,p_NEW_INSTALL_DATE => l_install_date -- p_instance_rec.INSTALL_DATE
9177 ,p_OLD_RETURN_BY_DATE => l_curr_instance_rec.RETURN_BY_DATE
9178 ,p_NEW_RETURN_BY_DATE => p_instance_rec.RETURN_BY_DATE
9179 ,p_OLD_ACTUAL_RETURN_DATE => l_curr_instance_rec.ACTUAL_RETURN_DATE
9180 ,p_NEW_ACTUAL_RETURN_DATE => p_instance_rec.ACTUAL_RETURN_DATE
9181 ,p_OLD_LAST_OE_AGREEMENT_ID => l_curr_instance_rec.LAST_OE_AGREEMENT_ID
9182 ,p_NEW_LAST_OE_AGREEMENT_ID => p_instance_rec.LAST_OE_AGREEMENT_ID
9183 ,p_OLD_LAST_OE_ORDER_LINE_ID => l_curr_instance_rec.LAST_OE_ORDER_LINE_ID
9184 ,p_NEW_LAST_OE_ORDER_LINE_ID => p_instance_rec.LAST_OE_ORDER_LINE_ID
9185 ,p_OLD_LAST_OE_RMA_LINE_ID => l_curr_instance_rec.LAST_OE_RMA_LINE_ID
9186 ,p_NEW_LAST_OE_RMA_LINE_ID => p_instance_rec.LAST_OE_RMA_LINE_ID
9187 ,p_OLD_LAST_WIP_JOB_ID => l_curr_instance_rec.LAST_WIP_JOB_ID
9188 ,p_NEW_LAST_WIP_JOB_ID => p_instance_rec.LAST_WIP_JOB_ID
9189 ,p_OLD_LAST_PO_PO_LINE_ID => l_curr_instance_rec.LAST_PO_PO_LINE_ID
9190 ,p_NEW_LAST_PO_PO_LINE_ID => p_instance_rec.LAST_PO_PO_LINE_ID
9191 ,p_OLD_LAST_PA_PROJECT_ID => l_curr_instance_rec.LAST_PA_PROJECT_ID
9192 ,p_NEW_LAST_PA_PROJECT_ID => p_instance_rec.LAST_PA_PROJECT_ID
9193 ,p_OLD_LAST_PA_TASK_ID => l_curr_instance_rec.LAST_PA_TASK_ID
9194 ,p_NEW_LAST_PA_TASK_ID => p_instance_rec.LAST_PA_TASK_ID
9195 ,p_OLD_LAST_TXN_LINE_DETAIL_ID => l_curr_instance_rec.LAST_TXN_LINE_DETAIL_ID
9196 ,p_NEW_LAST_TXN_LINE_DETAIL_ID => p_instance_rec.LAST_TXN_LINE_DETAIL_ID
9197 ,p_OLD_LAST_OE_PO_NUMBER => l_curr_instance_rec.LAST_OE_PO_NUMBER
9198 ,p_NEW_LAST_OE_PO_NUMBER => p_instance_rec.LAST_OE_PO_NUMBER
9199 --start of parameters addition for eam integration--
9200 ,p_OLD_NETWORK_ASSET_FLAG => l_curr_instance_rec.NETWORK_ASSET_FLAG
9201 ,p_NEW_NETWORK_ASSET_FLAG => p_instance_rec.NETWORK_ASSET_FLAG
9202 ,p_OLD_MAINTAINABLE_FLAG => l_curr_instance_rec.MAINTAINABLE_FLAG
9203 ,p_NEW_MAINTAINABLE_FLAG => p_instance_rec.MAINTAINABLE_FLAG
9204 ,p_OLD_PN_LOCATION_ID => l_curr_instance_rec.PN_LOCATION_ID
9205 ,p_NEW_PN_LOCATION_ID => p_instance_rec.PN_LOCATION_ID
9206 ,p_OLD_ASSET_CRITICALITY_CODE => l_curr_instance_rec.ASSET_CRITICALITY_CODE
9207 ,p_NEW_ASSET_CRITICALITY_CODE => p_instance_rec.ASSET_CRITICALITY_CODE
9208 ,p_OLD_CATEGORY_ID => l_curr_instance_rec.CATEGORY_ID
9209 ,p_NEW_CATEGORY_ID => p_instance_rec.CATEGORY_ID
9210 ,p_OLD_EQUIPMENT_GEN_OBJECT_ID => l_curr_instance_rec.EQUIPMENT_GEN_OBJECT_ID
9211 ,p_NEW_EQUIPMENT_GEN_OBJECT_ID => p_instance_rec.EQUIPMENT_GEN_OBJECT_ID
9212 ,p_OLD_INSTANTIATION_FLAG => l_curr_instance_rec.INSTANTIATION_FLAG
9213 ,p_NEW_INSTANTIATION_FLAG => p_instance_rec.INSTANTIATION_FLAG
9214 ,p_OLD_LINEAR_LOCATION_ID => l_curr_instance_rec.LINEAR_LOCATION_ID
9215 ,p_NEW_LINEAR_LOCATION_ID => p_instance_rec.LINEAR_LOCATION_ID
9216 ,p_OLD_OPERATIONAL_LOG_FLAG => l_curr_instance_rec.OPERATIONAL_LOG_FLAG
9217 ,p_NEW_OPERATIONAL_LOG_FLAG => p_instance_rec.OPERATIONAL_LOG_FLAG
9218 ,p_OLD_CHECKIN_STATUS => l_curr_instance_rec.CHECKIN_STATUS
9219 ,p_NEW_CHECKIN_STATUS => p_instance_rec.CHECKIN_STATUS
9220 ,p_OLD_SUP_WARRANTY_EXP_DATE => l_curr_instance_rec.SUPPLIER_WARRANTY_EXP_DATE
9221 ,p_NEW_SUP_WARRANTY_EXP_DATE => p_instance_rec.SUPPLIER_WARRANTY_EXP_DATE
9222 ,p_OLD_ATTRIBUTE16 => l_curr_instance_rec.ATTRIBUTE16
9223 ,p_NEW_ATTRIBUTE16 => p_instance_rec.ATTRIBUTE16
9224 ,p_OLD_ATTRIBUTE17 => l_curr_instance_rec.ATTRIBUTE17
9225 ,p_NEW_ATTRIBUTE17 => p_instance_rec.ATTRIBUTE17
9226 ,p_OLD_ATTRIBUTE18 => l_curr_instance_rec.ATTRIBUTE18
9227 ,p_NEW_ATTRIBUTE18 => p_instance_rec.ATTRIBUTE18
9228 ,p_OLD_ATTRIBUTE19 => l_curr_instance_rec.ATTRIBUTE19
9229 ,p_NEW_ATTRIBUTE19 => p_instance_rec.ATTRIBUTE19
9230 ,p_OLD_ATTRIBUTE20 => l_curr_instance_rec.ATTRIBUTE20
9231 ,p_NEW_ATTRIBUTE20 => p_instance_rec.ATTRIBUTE20
9232 ,p_OLD_ATTRIBUTE21 => l_curr_instance_rec.ATTRIBUTE21
9233 ,p_NEW_ATTRIBUTE21 => p_instance_rec.ATTRIBUTE21
9234 ,p_OLD_ATTRIBUTE22 => l_curr_instance_rec.ATTRIBUTE22
9235 ,p_NEW_ATTRIBUTE22 => p_instance_rec.ATTRIBUTE22
9236 ,p_OLD_ATTRIBUTE23 => l_curr_instance_rec.ATTRIBUTE23
9237 ,p_NEW_ATTRIBUTE23 => p_instance_rec.ATTRIBUTE23
9238 ,p_OLD_ATTRIBUTE24 => l_curr_instance_rec.ATTRIBUTE24
9239 ,p_NEW_ATTRIBUTE24 => p_instance_rec.ATTRIBUTE24
9240 ,p_OLD_ATTRIBUTE25 => l_curr_instance_rec.ATTRIBUTE25
9241 ,p_NEW_ATTRIBUTE25 => p_instance_rec.ATTRIBUTE25
9242 ,p_OLD_ATTRIBUTE26 => l_curr_instance_rec.ATTRIBUTE26
9243 ,p_NEW_ATTRIBUTE26 => p_instance_rec.ATTRIBUTE26
9244 ,p_OLD_ATTRIBUTE27 => l_curr_instance_rec.ATTRIBUTE27
9245 ,p_NEW_ATTRIBUTE27 => p_instance_rec.ATTRIBUTE27
9246 ,p_OLD_ATTRIBUTE28 => l_curr_instance_rec.ATTRIBUTE28
9247 ,p_NEW_ATTRIBUTE28 => p_instance_rec.ATTRIBUTE28
9248 ,p_OLD_ATTRIBUTE29 => l_curr_instance_rec.ATTRIBUTE29
9249 ,p_NEW_ATTRIBUTE29 => p_instance_rec.ATTRIBUTE29
9250 ,p_OLD_ATTRIBUTE30 => l_curr_instance_rec.ATTRIBUTE30
9251 ,p_NEW_ATTRIBUTE30 => p_instance_rec.ATTRIBUTE30
9252 --end of parameters addition for eam integration--
9253 -- Addition of columns for FA Integration
9254 ,p_OLD_PAYABLES_UNIT_PRICE => l_curr_instance_rec.PAYABLES_UNIT_PRICE
9255 ,p_NEW_PAYABLES_UNIT_PRICE => p_instance_rec.PAYABLES_UNIT_PRICE
9256 ,p_OLD_PAYABLES_CURRENCY_CODE => l_curr_instance_rec.PAYABLES_CURRENCY_CODE
9257 ,p_NEW_PAYABLES_CURRENCY_CODE => p_instance_rec.PAYABLES_CURRENCY_CODE
9258 ,p_OLD_PURCHASE_UNIT_PRICE => l_curr_instance_rec.PURCHASE_UNIT_PRICE
9259 ,p_NEW_PURCHASE_UNIT_PRICE => p_instance_rec.PURCHASE_UNIT_PRICE
9260 ,p_OLD_PURCHASE_CURRENCY_CODE => l_curr_instance_rec.PURCHASE_CURRENCY_CODE
9261 ,p_NEW_PURCHASE_CURRENCY_CODE => p_instance_rec.PURCHASE_CURRENCY_CODE
9262 ,p_OLD_SALES_UNIT_PRICE => l_curr_instance_rec.SALES_UNIT_PRICE
9263 ,p_NEW_SALES_UNIT_PRICE => p_instance_rec.SALES_UNIT_PRICE
9264 ,p_OLD_SALES_CURRENCY_CODE => l_curr_instance_rec.SALES_CURRENCY_CODE
9265 ,p_NEW_SALES_CURRENCY_CODE => p_instance_rec.SALES_CURRENCY_CODE
9266 ,p_OLD_OPERATIONAL_STATUS_CODE => l_curr_instance_rec.OPERATIONAL_STATUS_CODE
9267 ,p_NEW_OPERATIONAL_STATUS_CODE => p_instance_rec.OPERATIONAL_STATUS_CODE
9268 -- End addition of columns for FA Integration
9269 );
9270 End of insert ...Bug:5615169 */
9271
9272 --Start of: Added for Bug:5615169
9273 --Insert the data into bulk table
9274 l_ciih_blk_ins_cnt := l_ciih_blk_ins_cnt + 1;
9275 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).instance_history_id := l_csi_item_instance_h_id;
9276 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).instance_id := l_rel_tbl(j).subject_id;
9277 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).transaction_id := p_txn_rec.TRANSACTION_ID;
9278 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_instance_number := l_curr_instance_rec.INSTANCE_NUMBER;
9279 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_instance_number := p_instance_rec.INSTANCE_NUMBER;
9280 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_external_reference := l_curr_instance_rec.EXTERNAL_REFERENCE;
9281 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_external_reference := p_instance_rec.EXTERNAL_REFERENCE;
9282 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_inventory_item_id := l_curr_instance_rec.INVENTORY_ITEM_ID;
9283 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_inventory_item_id := p_instance_rec.INVENTORY_ITEM_ID;
9284 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_inventory_revision := l_curr_instance_rec.INVENTORY_REVISION;
9285 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_inventory_revision := p_instance_rec.INVENTORY_REVISION;
9286 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_inv_master_org_id := l_curr_instance_rec.INV_MASTER_ORGANIZATION_ID;
9287 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_inv_master_org_id := p_instance_rec.INV_MASTER_ORGANIZATION_ID;
9288 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_serial_number := l_curr_instance_rec.SERIAL_NUMBER;
9289 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_serial_number := p_instance_rec.SERIAL_NUMBER;
9290 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_mfg_serial_number_flag := l_curr_instance_rec.MFG_SERIAL_NUMBER_FLAG;
9291 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_mfg_serial_number_flag := p_instance_rec.MFG_SERIAL_NUMBER_FLAG;
9292 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_lot_number := l_curr_instance_rec.LOT_NUMBER;
9293 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_lot_number := p_instance_rec.LOT_NUMBER;
9294 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_quantity := l_curr_instance_rec.QUANTITY;
9295 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_quantity := p_instance_rec.QUANTITY;
9296 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_unit_of_measure := l_curr_instance_rec.UNIT_OF_MEASURE;
9297 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_unit_of_measure := p_instance_rec.UNIT_OF_MEASURE;
9298 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_accounting_class_code := l_curr_instance_rec.ACCOUNTING_CLASS_CODE;
9299 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_accounting_class_code := p_instance_rec.ACCOUNTING_CLASS_CODE;
9300 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_instance_condition_id := l_curr_instance_rec.INSTANCE_CONDITION_ID;
9301 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_instance_condition_id := p_instance_rec.INSTANCE_CONDITION_ID;
9302 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_instance_status_id := l_curr_instance_rec.INSTANCE_STATUS_ID;
9303 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_instance_status_id := l_instance_status_id; --p_instance_rec.INSTANCE_STATUS_IDs_id;
9304 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_customer_view_flag := l_curr_instance_rec.CUSTOMER_VIEW_FLAG;
9305 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_customer_view_flag := p_instance_rec.CUSTOMER_VIEW_FLAG;
9306 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_merchant_view_flag := l_curr_instance_rec.MERCHANT_VIEW_FLAG;
9307 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_merchant_view_flag := p_instance_rec.MERCHANT_VIEW_FLAG;
9308 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_sellable_flag := l_curr_instance_rec.SELLABLE_FLAG;
9309 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_sellable_flag := p_instance_rec.SELLABLE_FLAG;
9310 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_system_id := l_curr_instance_rec.SYSTEM_ID;
9311 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_system_id := l_system_id;
9312 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_instance_type_code := l_curr_instance_rec.INSTANCE_TYPE_CODE;
9313 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_instance_type_code := p_instance_rec.INSTANCE_TYPE_CODE;
9314 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_active_start_date := l_curr_instance_rec.ACTIVE_START_DATE;
9315 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_active_start_date := p_instance_rec.ACTIVE_START_DATE;
9316 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_active_end_date := l_curr_instance_rec.ACTIVE_END_DATE;
9317 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_active_end_date := p_instance_rec.ACTIVE_END_DATE;
9318 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_location_type_code := l_curr_instance_rec.LOCATION_TYPE_CODE;
9319 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_location_type_code := p_instance_rec.LOCATION_TYPE_CODE;
9320 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_location_id := l_curr_instance_rec.LOCATION_ID;
9321 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_location_id := p_instance_rec.LOCATION_ID;
9322 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_inv_organization_id := l_curr_instance_rec.INV_ORGANIZATION_ID;
9323 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_inv_organization_id := p_instance_rec.INV_ORGANIZATION_ID;
9324 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_inv_subinventory_name := l_curr_instance_rec.INV_SUBINVENTORY_NAME;
9325 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_inv_subinventory_name := p_instance_rec.INV_SUBINVENTORY_NAME;
9326 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_inv_locator_id := l_curr_instance_rec.INV_LOCATOR_ID;
9327 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_inv_locator_id := p_instance_rec.INV_LOCATOR_ID;
9328 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_pa_project_id := l_curr_instance_rec.PA_PROJECT_ID;
9329 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_pa_project_id := p_instance_rec.PA_PROJECT_ID;
9330 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_pa_project_task_id := l_curr_instance_rec.PA_PROJECT_TASK_ID;
9331 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_pa_project_task_id := p_instance_rec.PA_PROJECT_TASK_ID;
9332 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_in_transit_order_line_id := l_curr_instance_rec.IN_TRANSIT_ORDER_LINE_ID;
9333 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_in_transit_order_line_id := p_instance_rec.IN_TRANSIT_ORDER_LINE_ID;
9334 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_wip_job_id := l_curr_instance_rec.WIP_JOB_ID;
9335 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_wip_job_id := p_instance_rec.WIP_JOB_ID;
9336 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_po_order_line_id := l_curr_instance_rec.PO_ORDER_LINE_ID;
9337 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_po_order_line_id := p_instance_rec.PO_ORDER_LINE_ID;
9338 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_completeness_flag := l_curr_instance_rec.COMPLETENESS_FLAG;
9339 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_completeness_flag := p_instance_rec.COMPLETENESS_FLAG;
9340 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).full_dump_flag := 'Y';
9341 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_context := p_instance_rec.CONTEXT;
9342 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_context := l_curr_instance_rec.CONTEXT;
9343 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute1 := p_instance_rec.ATTRIBUTE1;
9344 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute1 := l_curr_instance_rec.ATTRIBUTE1;
9345 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute2 := p_instance_rec.ATTRIBUTE2;
9346 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute2 := l_curr_instance_rec.ATTRIBUTE2;
9347 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute3 := p_instance_rec.ATTRIBUTE3;
9348 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute3 := l_curr_instance_rec.ATTRIBUTE3;
9349 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute4 := p_instance_rec.ATTRIBUTE4;
9350 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute4 := l_curr_instance_rec.ATTRIBUTE4;
9351 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute5 := p_instance_rec.ATTRIBUTE5;
9352 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute5 := l_curr_instance_rec.ATTRIBUTE5;
9353 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute6 := p_instance_rec.ATTRIBUTE6;
9354 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute6 := l_curr_instance_rec.ATTRIBUTE6;
9355 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute7 := p_instance_rec.ATTRIBUTE7;
9356 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute7 := l_curr_instance_rec.ATTRIBUTE7;
9357 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute8 := p_instance_rec.ATTRIBUTE8;
9358 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute8 := l_curr_instance_rec.ATTRIBUTE8;
9359 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute9 := p_instance_rec.ATTRIBUTE9;
9360 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute9 := l_curr_instance_rec.ATTRIBUTE9;
9361 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute10 := p_instance_rec.ATTRIBUTE10;
9362 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute10 := l_curr_instance_rec.ATTRIBUTE10;
9363 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute11 := p_instance_rec.ATTRIBUTE11;
9364 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute11 := l_curr_instance_rec.ATTRIBUTE11;
9365 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute12 := p_instance_rec.ATTRIBUTE12;
9366 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute12 := l_curr_instance_rec.ATTRIBUTE12;
9367 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute13 := p_instance_rec.ATTRIBUTE13;
9368 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute13 := l_curr_instance_rec.ATTRIBUTE13;
9369 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute14 := p_instance_rec.ATTRIBUTE14;
9370 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute14 := l_curr_instance_rec.ATTRIBUTE14;
9371 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute15 := p_instance_rec.ATTRIBUTE15;
9372 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute15 := l_curr_instance_rec.ATTRIBUTE15;
9373 -- l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).created_by := FND_GLOBAL.USER_ID;
9374 -- l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).creation_date := SYSDATE;
9375 -- l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).last_updated_by := FND_GLOBAL.USER_ID;
9376 -- l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).last_update_date := SYSDATE;
9377 -- l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).last_update_login := FND_GLOBAL.CONC_LOGIN_ID;
9378 -- l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).object_version_number := 1;
9379 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_install_location_type_code := l_curr_instance_rec.INSTALL_LOCATION_TYPE_CODE;
9380 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_install_location_type_code := p_instance_rec.INSTALL_LOCATION_TYPE_CODE;
9381 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_install_location_id := l_curr_instance_rec.INSTALL_LOCATION_ID;
9382 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_install_location_id := p_instance_rec.INSTALL_LOCATION_ID;
9383 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_instance_usage_code := l_curr_instance_rec.INSTANCE_USAGE_CODE;
9384 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_instance_usage_code := p_instance_rec.INSTANCE_USAGE_CODE;
9385 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_last_vld_organization_id := fnd_api.g_miss_num;
9386 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_last_vld_organization_id := fnd_api.g_miss_num;
9387 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_config_inst_rev_num := l_curr_instance_rec.CONFIG_INST_REV_NUM;
9388 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_config_inst_rev_num := p_instance_rec.CONFIG_INST_REV_NUM;
9389 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_config_valid_status := l_curr_instance_rec.CONFIG_VALID_STATUS;
9390 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_config_valid_status := p_instance_rec.CONFIG_VALID_STATUS;
9391 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_instance_description := l_curr_instance_rec.INSTANCE_DESCRIPTION;
9392 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_instance_description := p_instance_rec.INSTANCE_DESCRIPTION;
9393 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_install_date := l_curr_instance_rec.INSTALL_DATE;
9394 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_install_date := l_install_date;
9395 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_return_by_date := l_curr_instance_rec.RETURN_BY_DATE;
9396 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_return_by_date := p_instance_rec.RETURN_BY_DATE;
9397 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_actual_return_date := l_curr_instance_rec.ACTUAL_RETURN_DATE;
9398 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_actual_return_date := p_instance_rec.ACTUAL_RETURN_DATE;
9399 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_last_oe_agreement_id := l_curr_instance_rec.LAST_OE_AGREEMENT_ID;
9400 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_last_oe_agreement_id := p_instance_rec.LAST_OE_AGREEMENT_ID;
9401 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_last_oe_order_line_id := l_curr_instance_rec.LAST_OE_ORDER_LINE_ID;
9402 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_last_oe_order_line_id := p_instance_rec.LAST_OE_ORDER_LINE_ID;
9403 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_last_oe_rma_line_id := l_curr_instance_rec.LAST_OE_RMA_LINE_ID;
9404 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_last_oe_rma_line_id := p_instance_rec.LAST_OE_RMA_LINE_ID;
9405 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_last_wip_job_id := l_curr_instance_rec.LAST_WIP_JOB_ID;
9406 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_last_wip_job_id := p_instance_rec.LAST_WIP_JOB_ID;
9407 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_last_po_po_line_id := l_curr_instance_rec.LAST_PO_PO_LINE_ID;
9408 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_last_po_po_line_id := p_instance_rec.LAST_PO_PO_LINE_ID;
9409 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_last_pa_project_id := l_curr_instance_rec.LAST_PA_PROJECT_ID;
9410 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_last_pa_project_id := p_instance_rec.LAST_PA_PROJECT_ID;
9411 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_last_pa_task_id := l_curr_instance_rec.LAST_PA_TASK_ID;
9412 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_last_pa_task_id := p_instance_rec.LAST_PA_TASK_ID;
9413 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_last_txn_line_detail_id := l_curr_instance_rec.LAST_TXN_LINE_DETAIL_ID;
9414 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_last_txn_line_detail_id := p_instance_rec.LAST_TXN_LINE_DETAIL_ID;
9415 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_last_oe_po_number := l_curr_instance_rec.LAST_OE_PO_NUMBER;
9416 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_last_oe_po_number := p_instance_rec.LAST_OE_PO_NUMBER;
9417 -- l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_capitalization_status := l_curr_instance_rec.CAPITALIZATION_STATUS;
9418 -- l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_capitalization_status := p_instance_rec.CAPITALIZATION_STATUS;
9419 --Start of parameters addition for eam integration
9420 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_network_asset_flag := l_curr_instance_rec.NETWORK_ASSET_FLAG;
9421 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_network_asset_flag := p_instance_rec.NETWORK_ASSET_FLAG;
9422 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_maintainable_flag := l_curr_instance_rec.MAINTAINABLE_FLAG;
9423 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_maintainable_flag := p_instance_rec.MAINTAINABLE_FLAG;
9424 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_pn_location_id := l_curr_instance_rec.PN_LOCATION_ID;
9425 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_pn_location_id := p_instance_rec.PN_LOCATION_ID;
9426 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_asset_criticality_code := l_curr_instance_rec.ASSET_CRITICALITY_CODE;
9427 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_asset_criticality_code := p_instance_rec.ASSET_CRITICALITY_CODE;
9428 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_category_id := l_curr_instance_rec.CATEGORY_ID;
9429 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_category_id := p_instance_rec.CATEGORY_ID;
9430 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_equipment_gen_object_id := l_curr_instance_rec.EQUIPMENT_GEN_OBJECT_ID;
9431 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_equipment_gen_object_id := p_instance_rec.EQUIPMENT_GEN_OBJECT_ID;
9432 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_instantiation_flag := l_curr_instance_rec.INSTANTIATION_FLAG;
9433 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_instantiation_flag := p_instance_rec.INSTANTIATION_FLAG;
9434 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_linear_location_id := l_curr_instance_rec.LINEAR_LOCATION_ID;
9435 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_linear_location_id := p_instance_rec.LINEAR_LOCATION_ID;
9436 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_operational_log_flag := l_curr_instance_rec.OPERATIONAL_LOG_FLAG;
9437 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_operational_log_flag := p_instance_rec.OPERATIONAL_LOG_FLAG;
9438 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_checkin_status := l_curr_instance_rec.CHECKIN_STATUS;
9439 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_checkin_status := p_instance_rec.CHECKIN_STATUS;
9440 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_supplier_warranty_exp_date := l_curr_instance_rec.SUPPLIER_WARRANTY_EXP_DATE;
9441 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_supplier_warranty_exp_date := p_instance_rec.SUPPLIER_WARRANTY_EXP_DATE;
9442 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute16 := l_curr_instance_rec.ATTRIBUTE16;
9443 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute16 := p_instance_rec.ATTRIBUTE16;
9444 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute17 := l_curr_instance_rec.ATTRIBUTE17;
9445 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute17 := p_instance_rec.ATTRIBUTE17;
9446 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute18 := l_curr_instance_rec.ATTRIBUTE18;
9447 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute18 := p_instance_rec.ATTRIBUTE18;
9448 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute19 := l_curr_instance_rec.ATTRIBUTE19;
9449 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute19 := p_instance_rec.ATTRIBUTE19;
9450 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute20 := l_curr_instance_rec.ATTRIBUTE20;
9451 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute20 := p_instance_rec.ATTRIBUTE20;
9452 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute21 := l_curr_instance_rec.ATTRIBUTE21;
9453 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute21 := p_instance_rec.ATTRIBUTE21;
9454 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute22 := l_curr_instance_rec.ATTRIBUTE22;
9455 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute22 := p_instance_rec.ATTRIBUTE22;
9456 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute23 := l_curr_instance_rec.ATTRIBUTE23;
9457 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute23 := p_instance_rec.ATTRIBUTE23;
9458 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute24 := l_curr_instance_rec.ATTRIBUTE24;
9459 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute24 := p_instance_rec.ATTRIBUTE24;
9460 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute25 := l_curr_instance_rec.ATTRIBUTE25;
9461 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute25 := p_instance_rec.ATTRIBUTE25;
9462 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute26 := l_curr_instance_rec.ATTRIBUTE26;
9463 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute26 := p_instance_rec.ATTRIBUTE26;
9464 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute27 := l_curr_instance_rec.ATTRIBUTE27;
9465 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute27 := p_instance_rec.ATTRIBUTE27;
9466 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute28 := l_curr_instance_rec.ATTRIBUTE28;
9467 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute28 := p_instance_rec.ATTRIBUTE28;
9468 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute29 := l_curr_instance_rec.ATTRIBUTE29;
9469 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute29 := p_instance_rec.ATTRIBUTE29;
9470 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute30 := l_curr_instance_rec.ATTRIBUTE30;
9471 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute30 := p_instance_rec.ATTRIBUTE30;
9472 --End of parameters addition for eam integration--
9473 --Addition of columns for FA Integration
9474 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_payables_unit_price := l_curr_instance_rec.PAYABLES_UNIT_PRICE;
9475 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_payables_unit_price := p_instance_rec.PAYABLES_UNIT_PRICE;
9476 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_payables_currency_code := l_curr_instance_rec.PAYABLES_CURRENCY_CODE;
9477 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_payables_currency_code := p_instance_rec.PAYABLES_CURRENCY_CODE;
9478 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_purchase_unit_price := l_curr_instance_rec.PURCHASE_UNIT_PRICE;
9479 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_purchase_unit_price := p_instance_rec.PURCHASE_UNIT_PRICE;
9480 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_purchase_currency_code := l_curr_instance_rec.PURCHASE_CURRENCY_CODE;
9481 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_purchase_currency_code := p_instance_rec.PURCHASE_CURRENCY_CODE;
9482 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_sales_unit_price := l_curr_instance_rec.SALES_UNIT_PRICE;
9483 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_sales_unit_price := p_instance_rec.SALES_UNIT_PRICE;
9484 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_sales_currency_code := l_curr_instance_rec.SALES_CURRENCY_CODE;
9485 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_sales_currency_code := p_instance_rec.SALES_CURRENCY_CODE;
9486 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_operational_status_code := l_curr_instance_rec.OPERATIONAL_STATUS_CODE;
9487 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_operational_status_code := p_instance_rec.OPERATIONAL_STATUS_CODE;
9488 --End addition of columns for FA Integration
9489 --End of Insert into bulk table
9490 --End of: Added for Bug:5615169
9491 -- Begin Add Code for Siebel Genesis Project
9492 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_source_code := l_curr_instance_rec.SOURCE_CODE;
9493 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_source_code := p_instance_rec.SOURCE_CODE;
9494 -- End Add Code for Siebel Genesis Project
9495 ELSE -- if mod_value <> 0
9496
9497 -- If the mod value is not equal to zero then dump only the changed columns
9498 -- while the unchanged values have old and new values as null
9499 IF (p_instance_rec.accounting_class_code = fnd_api.g_miss_char) OR
9500 NVL(l_curr_instance_rec.accounting_class_code,fnd_api.g_miss_char) = NVL(p_instance_rec.accounting_class_code,fnd_api.g_miss_char) THEN
9501 l_instance_hist_rec.old_accounting_class_code := NULL;
9502 l_instance_hist_rec.new_accounting_class_code := NULL;
9503 ELSIF
9504 NVL(l_curr_instance_rec.accounting_class_code,fnd_api.g_miss_char) <> NVL(p_instance_rec.accounting_class_code,fnd_api.g_miss_char) THEN
9505 l_instance_hist_rec.old_accounting_class_code := l_curr_instance_rec.accounting_class_code ;
9506 l_instance_hist_rec.new_accounting_class_code := p_instance_rec.accounting_class_code ;
9507 END IF;
9508 --
9509 IF (l_instance_status_id = fnd_api.g_miss_num) OR
9510 NVL(l_curr_instance_rec.instance_status_id,fnd_api.g_miss_num) = NVL(l_instance_status_id,fnd_api.g_miss_num) THEN
9511 l_instance_hist_rec.old_instance_status_id := NULL;
9512 l_instance_hist_rec.new_instance_status_id := NULL;
9513 ELSIF
9514 NVL(l_curr_instance_rec.instance_status_id,fnd_api.g_miss_num) <> NVL(l_instance_status_id,fnd_api.g_miss_num) THEN
9515 l_instance_hist_rec.old_instance_status_id := l_curr_instance_rec.instance_status_id ;
9516 l_instance_hist_rec.new_instance_status_id := l_instance_status_id ;
9517 END IF;
9518 --
9519 IF (l_system_id = fnd_api.g_miss_num) OR
9520 NVL(l_curr_instance_rec.system_id,fnd_api.g_miss_num) = NVL(l_system_id,fnd_api.g_miss_num) THEN
9521 l_instance_hist_rec.old_system_id := NULL;
9522 l_instance_hist_rec.new_system_id := NULL;
9523 ELSIF
9524 NVL(l_curr_instance_rec.system_id,fnd_api.g_miss_num) <> NVL(l_system_id,fnd_api.g_miss_num) THEN
9525 l_instance_hist_rec.old_system_id := l_curr_instance_rec.system_id ;
9526 l_instance_hist_rec.new_system_id := l_system_id ;
9527 END IF;
9528 --
9529 IF (l_install_date = fnd_api.g_miss_date) OR
9530 NVL(l_curr_instance_rec.install_date,fnd_api.g_miss_date) = NVL(l_install_date,fnd_api.g_miss_date) THEN
9531 l_instance_hist_rec.old_install_date := NULL;
9532 l_instance_hist_rec.new_install_date := NULL;
9533 ELSIF
9534 NVL(l_curr_instance_rec.install_date,fnd_api.g_miss_date) <> NVL(l_install_date,fnd_api.g_miss_date) THEN
9535 l_instance_hist_rec.old_install_date := l_curr_instance_rec.install_date ;
9536 l_instance_hist_rec.new_install_date := l_install_date ;
9537 END IF;
9538 --
9539 IF (p_instance_rec.active_end_date = fnd_api.g_miss_date) OR
9540 NVL(l_curr_instance_rec.active_end_date,fnd_api.g_miss_date) = NVL(p_instance_rec.active_end_date,fnd_api.g_miss_date) THEN
9541 l_instance_hist_rec.old_active_end_date := NULL;
9542 l_instance_hist_rec.new_active_end_date := NULL;
9543 ELSIF
9544 NVL(l_curr_instance_rec.active_end_date,fnd_api.g_miss_date) <> NVL(p_instance_rec.active_end_date,fnd_api.g_miss_date) THEN
9545 l_instance_hist_rec.old_active_end_date := l_curr_instance_rec.active_end_date ;
9546 l_instance_hist_rec.new_active_end_date := p_instance_rec.active_end_date ;
9547 END IF;
9548 --
9549 IF (p_instance_rec.location_type_code = fnd_api.g_miss_char) OR
9550 NVL(l_curr_instance_rec.location_type_code,fnd_api.g_miss_char) = NVL(p_instance_rec.location_type_code,fnd_api.g_miss_char) THEN
9551 l_instance_hist_rec.old_location_type_code := NULL;
9552 l_instance_hist_rec.new_location_type_code := NULL;
9553 ELSIF
9554 NVL(l_curr_instance_rec.location_type_code,fnd_api.g_miss_char) <> NVL(p_instance_rec.location_type_code,fnd_api.g_miss_char) THEN
9555 l_instance_hist_rec.old_location_type_code := l_curr_instance_rec.location_type_code ;
9556 l_instance_hist_rec.new_location_type_code := p_instance_rec.location_type_code ;
9557 END IF;
9558 --
9559 IF (p_instance_rec.location_id = fnd_api.g_miss_num) OR
9560 NVL(l_curr_instance_rec.location_id,fnd_api.g_miss_num) = NVL(p_instance_rec.location_id,fnd_api.g_miss_num) THEN
9561 l_instance_hist_rec.old_location_id := NULL;
9562 l_instance_hist_rec.new_location_id := NULL;
9563 ELSIF
9564 NVL(l_curr_instance_rec.location_id,fnd_api.g_miss_num) <> NVL(p_instance_rec.location_id,fnd_api.g_miss_num) THEN
9565 l_instance_hist_rec.old_location_id := l_curr_instance_rec.location_id ;
9566 l_instance_hist_rec.new_location_id := p_instance_rec.location_id ;
9567 END IF;
9568 --
9569 IF (p_instance_rec.inv_organization_id = fnd_api.g_miss_num) OR
9570 NVL(l_curr_instance_rec.inv_organization_id,fnd_api.g_miss_num) = NVL(p_instance_rec.inv_organization_id,fnd_api.g_miss_num) THEN
9571 l_instance_hist_rec.old_inv_organization_id := NULL;
9572 l_instance_hist_rec.new_inv_organization_id := NULL;
9573 ELSIF
9574 NVL(l_curr_instance_rec.inv_organization_id,fnd_api.g_miss_num) <> NVL(p_instance_rec.inv_organization_id,fnd_api.g_miss_num) THEN
9575 l_instance_hist_rec.old_inv_organization_id := l_curr_instance_rec.inv_organization_id ;
9576 l_instance_hist_rec.new_inv_organization_id := p_instance_rec.inv_organization_id ;
9577 END IF;
9578 --
9579 IF (p_instance_rec.inv_subinventory_name = fnd_api.g_miss_char) OR
9580 NVL(l_curr_instance_rec.inv_subinventory_name,fnd_api.g_miss_char) = NVL(p_instance_rec.inv_subinventory_name,fnd_api.g_miss_char) THEN
9581 l_instance_hist_rec.old_inv_subinventory_name := NULL;
9582 l_instance_hist_rec.new_inv_subinventory_name := NULL;
9583 ELSIF
9584 NVL(l_curr_instance_rec.inv_subinventory_name,fnd_api.g_miss_char) <> NVL(p_instance_rec.inv_subinventory_name,fnd_api.g_miss_char) THEN
9585 l_instance_hist_rec.old_inv_subinventory_name := l_curr_instance_rec.inv_subinventory_name ;
9586 l_instance_hist_rec.new_inv_subinventory_name := p_instance_rec.inv_subinventory_name ;
9587 END IF;
9588 --
9589 IF (p_instance_rec.inv_locator_id = fnd_api.g_miss_num) OR
9590 NVL(l_curr_instance_rec.inv_locator_id,fnd_api.g_miss_num) = NVL(p_instance_rec.inv_locator_id,fnd_api.g_miss_num) THEN
9591 l_instance_hist_rec.old_inv_locator_id := NULL;
9592 l_instance_hist_rec.new_inv_locator_id := NULL;
9593 ELSIF
9594 NVL(l_curr_instance_rec.inv_locator_id,fnd_api.g_miss_num) <> NVL(p_instance_rec.inv_locator_id,fnd_api.g_miss_num) THEN
9595 l_instance_hist_rec.old_inv_locator_id := l_curr_instance_rec.inv_locator_id ;
9596 l_instance_hist_rec.new_inv_locator_id := p_instance_rec.inv_locator_id ;
9597 END IF;
9598 --
9599 IF (p_instance_rec.pa_project_id = fnd_api.g_miss_num) OR
9600 NVL(l_curr_instance_rec.pa_project_id,fnd_api.g_miss_num) = NVL(p_instance_rec.pa_project_id,fnd_api.g_miss_num) THEN
9601 l_instance_hist_rec.old_pa_project_id := NULL;
9602 l_instance_hist_rec.new_pa_project_id := NULL;
9603 ELSIF
9604 NVL(l_curr_instance_rec.pa_project_id,fnd_api.g_miss_num) <> NVL(p_instance_rec.pa_project_id,fnd_api.g_miss_num) THEN
9605 l_instance_hist_rec.old_pa_project_id := l_curr_instance_rec.pa_project_id ;
9606 l_instance_hist_rec.new_pa_project_id := p_instance_rec.pa_project_id ;
9607 END IF;
9608 --
9609 IF (p_instance_rec.pa_project_task_id = fnd_api.g_miss_num) OR
9610 NVL(l_curr_instance_rec.pa_project_task_id,fnd_api.g_miss_num) = NVL(p_instance_rec.pa_project_task_id,fnd_api.g_miss_num) THEN
9611 l_instance_hist_rec.old_pa_project_task_id := NULL;
9612 l_instance_hist_rec.new_pa_project_task_id := NULL;
9613 ELSIF
9614 NVL(l_curr_instance_rec.pa_project_task_id,fnd_api.g_miss_num) <> NVL(p_instance_rec.pa_project_task_id,fnd_api.g_miss_num) THEN
9615 l_instance_hist_rec.old_pa_project_task_id := l_curr_instance_rec.pa_project_task_id ;
9616 l_instance_hist_rec.new_pa_project_task_id := p_instance_rec.pa_project_task_id ;
9617 END IF;
9618 --
9619 IF (p_instance_rec.in_transit_order_line_id = fnd_api.g_miss_num) OR
9620 NVL(l_curr_instance_rec.in_transit_order_line_id,fnd_api.g_miss_num) = NVL(p_instance_rec.in_transit_order_line_id,fnd_api.g_miss_num) THEN
9621 l_instance_hist_rec.old_in_transit_order_line_id := NULL;
9622 l_instance_hist_rec.new_in_transit_order_line_id := NULL;
9623 ELSIF
9624 NVL(l_curr_instance_rec.in_transit_order_line_id,fnd_api.g_miss_num) <> NVL(p_instance_rec.in_transit_order_line_id,fnd_api.g_miss_num) THEN
9625 l_instance_hist_rec.old_in_transit_order_line_id := l_curr_instance_rec.in_transit_order_line_id ;
9626 l_instance_hist_rec.new_in_transit_order_line_id := p_instance_rec.in_transit_order_line_id ;
9627 END IF;
9628 --
9629 IF (p_instance_rec.wip_job_id = fnd_api.g_miss_num) OR
9630 NVL(l_curr_instance_rec.wip_job_id,fnd_api.g_miss_num) = NVL(p_instance_rec.wip_job_id,fnd_api.g_miss_num) THEN
9631 l_instance_hist_rec.old_wip_job_id := NULL;
9632 l_instance_hist_rec.new_wip_job_id := NULL;
9633 ELSIF
9634 NVL(l_curr_instance_rec.wip_job_id,fnd_api.g_miss_num) <> NVL(p_instance_rec.wip_job_id,fnd_api.g_miss_num) THEN
9635 l_instance_hist_rec.old_wip_job_id := l_curr_instance_rec.wip_job_id ;
9636 l_instance_hist_rec.new_wip_job_id := p_instance_rec.wip_job_id ;
9637 END IF;
9638 --
9639 IF (p_instance_rec.po_order_line_id = fnd_api.g_miss_num) OR
9640 NVL(l_curr_instance_rec.po_order_line_id,fnd_api.g_miss_num) = NVL(p_instance_rec.po_order_line_id,fnd_api.g_miss_num) THEN
9641 l_instance_hist_rec.old_po_order_line_id := NULL;
9642 l_instance_hist_rec.new_po_order_line_id := NULL;
9643 ELSIF
9644 NVL(l_curr_instance_rec.po_order_line_id,fnd_api.g_miss_num) <> NVL(p_instance_rec.po_order_line_id,fnd_api.g_miss_num) THEN
9645 l_instance_hist_rec.old_po_order_line_id := l_curr_instance_rec.po_order_line_id ;
9646 l_instance_hist_rec.new_po_order_line_id := p_instance_rec.po_order_line_id ;
9647 END IF;
9648 --
9649 IF (p_instance_rec.last_oe_agreement_id = fnd_api.g_miss_num) OR
9650 NVL(l_curr_instance_rec.last_oe_agreement_id,fnd_api.g_miss_num) = NVL(p_instance_rec.last_oe_agreement_id,fnd_api.g_miss_num) THEN
9651 l_instance_hist_rec.old_last_oe_agreement_id := NULL;
9652 l_instance_hist_rec.new_last_oe_agreement_id := NULL;
9653 ELSIF
9654 NVL(l_curr_instance_rec.last_oe_agreement_id,fnd_api.g_miss_num) <> NVL(p_instance_rec.last_oe_agreement_id,fnd_api.g_miss_num) THEN
9655 l_instance_hist_rec.old_last_oe_agreement_id := l_curr_instance_rec.last_oe_agreement_id ;
9656 l_instance_hist_rec.new_last_oe_agreement_id := p_instance_rec.last_oe_agreement_id ;
9657 END IF;
9658 --
9659 IF (p_instance_rec.LAST_OE_ORDER_LINE_ID = fnd_api.g_miss_num) OR
9660 NVL(l_curr_instance_rec.LAST_OE_ORDER_LINE_ID,fnd_api.g_miss_num) = NVL(p_instance_rec.LAST_OE_ORDER_LINE_ID,fnd_api.g_miss_num) THEN
9661 l_instance_hist_rec.old_LAST_OE_ORDER_LINE_ID := NULL;
9662 l_instance_hist_rec.new_LAST_OE_ORDER_LINE_ID := NULL;
9663 ELSIF
9664 NVL(l_curr_instance_rec.LAST_OE_ORDER_LINE_ID,fnd_api.g_miss_num) <> NVL(p_instance_rec.LAST_OE_ORDER_LINE_ID,fnd_api.g_miss_num) THEN
9665 l_instance_hist_rec.old_LAST_OE_ORDER_LINE_ID := l_curr_instance_rec.LAST_OE_ORDER_LINE_ID ;
9666 l_instance_hist_rec.new_LAST_OE_ORDER_LINE_ID := p_instance_rec.LAST_OE_ORDER_LINE_ID ;
9667 END IF;
9668 --
9669 IF (p_instance_rec.LAST_OE_RMA_LINE_ID = fnd_api.g_miss_num) OR
9670 NVL(l_curr_instance_rec.LAST_OE_RMA_LINE_ID,fnd_api.g_miss_num) = NVL(p_instance_rec.LAST_OE_RMA_LINE_ID,fnd_api.g_miss_num) THEN
9671 l_instance_hist_rec.OLD_LAST_OE_RMA_LINE_ID := NULL;
9672 l_instance_hist_rec.NEW_LAST_OE_RMA_LINE_ID := NULL;
9673 ELSIF
9674 NVL(l_curr_instance_rec.LAST_OE_RMA_LINE_ID,fnd_api.g_miss_num) <> NVL(p_instance_rec.LAST_OE_RMA_LINE_ID,fnd_api.g_miss_num) THEN
9675 l_instance_hist_rec.OLD_LAST_OE_RMA_LINE_ID := l_curr_instance_rec.LAST_OE_RMA_LINE_ID ;
9676 l_instance_hist_rec.NEW_LAST_OE_RMA_LINE_ID := p_instance_rec.LAST_OE_RMA_LINE_ID ;
9677 END IF;
9678 --
9679 IF (p_instance_rec.LAST_WIP_JOB_ID = fnd_api.g_miss_num) OR
9680 NVL(l_curr_instance_rec.LAST_WIP_JOB_ID,fnd_api.g_miss_num) = NVL(p_instance_rec.LAST_WIP_JOB_ID,fnd_api.g_miss_num) THEN
9681 l_instance_hist_rec.old_LAST_WIP_JOB_ID := NULL;
9682 l_instance_hist_rec.new_LAST_WIP_JOB_ID := NULL;
9683 ELSIF
9684 NVL(l_curr_instance_rec.LAST_WIP_JOB_ID,fnd_api.g_miss_num) <> NVL(p_instance_rec.LAST_WIP_JOB_ID,fnd_api.g_miss_num) THEN
9685 l_instance_hist_rec.old_LAST_WIP_JOB_ID := l_curr_instance_rec.LAST_WIP_JOB_ID ;
9686 l_instance_hist_rec.new_LAST_WIP_JOB_ID := p_instance_rec.LAST_WIP_JOB_ID ;
9687 END IF;
9688 --
9689 IF (p_instance_rec.LAST_PO_PO_LINE_ID = fnd_api.g_miss_num) OR
9690 NVL(l_curr_instance_rec.LAST_PO_PO_LINE_ID,fnd_api.g_miss_num) = NVL(p_instance_rec.LAST_PO_PO_LINE_ID,fnd_api.g_miss_num) THEN
9691 l_instance_hist_rec.old_LAST_PO_PO_LINE_ID := NULL;
9692 l_instance_hist_rec.new_LAST_PO_PO_LINE_ID := NULL;
9693 ELSIF
9694 NVL(l_curr_instance_rec.LAST_PO_PO_LINE_ID,fnd_api.g_miss_num) <> NVL(p_instance_rec.LAST_PO_PO_LINE_ID,fnd_api.g_miss_num) THEN
9695 l_instance_hist_rec.old_LAST_PO_PO_LINE_ID := l_curr_instance_rec.LAST_PO_PO_LINE_ID ;
9696 l_instance_hist_rec.new_LAST_PO_PO_LINE_ID := p_instance_rec.LAST_PO_PO_LINE_ID ;
9697 END IF;
9698 --
9699 IF (p_instance_rec.LAST_PA_PROJECT_ID = fnd_api.g_miss_num) OR
9700 NVL(l_curr_instance_rec.LAST_PA_PROJECT_ID,fnd_api.g_miss_num) = NVL(p_instance_rec.LAST_PA_PROJECT_ID,fnd_api.g_miss_num) THEN
9701 l_instance_hist_rec.old_LAST_PA_PROJECT_ID := NULL;
9702 l_instance_hist_rec.new_LAST_PA_PROJECT_ID := NULL;
9703 ELSIF
9704 NVL(l_curr_instance_rec.LAST_PA_PROJECT_ID,fnd_api.g_miss_num) <> NVL(p_instance_rec.LAST_PA_PROJECT_ID,fnd_api.g_miss_num) THEN
9705 l_instance_hist_rec.old_LAST_PA_PROJECT_ID := l_curr_instance_rec.LAST_PA_PROJECT_ID ;
9706 l_instance_hist_rec.new_LAST_PA_PROJECT_ID := p_instance_rec.LAST_PA_PROJECT_ID ;
9707 END IF;
9708 --
9709 IF (p_instance_rec.LAST_PA_TASK_ID = fnd_api.g_miss_num) OR
9710 NVL(l_curr_instance_rec.LAST_PA_TASK_ID,fnd_api.g_miss_num) = NVL(p_instance_rec.LAST_PA_TASK_ID,fnd_api.g_miss_num) THEN
9711 l_instance_hist_rec.old_LAST_PA_TASK_ID := NULL;
9712 l_instance_hist_rec.new_LAST_PA_TASK_ID := NULL;
9713 ELSIF
9714 NVL(l_curr_instance_rec.LAST_PA_TASK_ID,fnd_api.g_miss_num) <> NVL(p_instance_rec.LAST_PA_TASK_ID,fnd_api.g_miss_num) THEN
9715 l_instance_hist_rec.old_LAST_PA_TASK_ID := l_curr_instance_rec.LAST_PA_TASK_ID ;
9716 l_instance_hist_rec.new_LAST_PA_TASK_ID := p_instance_rec.LAST_PA_TASK_ID ;
9717 END IF;
9718 --
9719 IF (p_instance_rec.LAST_TXN_LINE_DETAIL_ID = fnd_api.g_miss_num) OR
9720 NVL(l_curr_instance_rec.LAST_TXN_LINE_DETAIL_ID,fnd_api.g_miss_num) = NVL(p_instance_rec.LAST_TXN_LINE_DETAIL_ID,fnd_api.g_miss_num) THEN
9721 l_instance_hist_rec.old_LAST_TXN_LINE_DETAIL_ID := NULL;
9722 l_instance_hist_rec.new_LAST_TXN_LINE_DETAIL_ID := NULL;
9723 ELSIF
9724 NVL(l_curr_instance_rec.LAST_TXN_LINE_DETAIL_ID,fnd_api.g_miss_num) <> NVL(p_instance_rec.LAST_TXN_LINE_DETAIL_ID,fnd_api.g_miss_num) THEN
9725 l_instance_hist_rec.old_LAST_TXN_LINE_DETAIL_ID := l_curr_instance_rec.LAST_TXN_LINE_DETAIL_ID ;
9726 l_instance_hist_rec.new_LAST_TXN_LINE_DETAIL_ID := p_instance_rec.LAST_TXN_LINE_DETAIL_ID ;
9727 END IF;
9728 --
9729 IF (p_instance_rec.LAST_OE_PO_NUMBER = fnd_api.g_miss_char) OR
9730 NVL(l_curr_instance_rec.LAST_OE_PO_NUMBER,fnd_api.g_miss_char) = NVL(p_instance_rec.LAST_OE_PO_NUMBER,fnd_api.g_miss_char) THEN
9731 l_instance_hist_rec.old_LAST_OE_PO_NUMBER := NULL;
9732 l_instance_hist_rec.new_LAST_OE_PO_NUMBER := NULL;
9733 ELSIF
9734 NVL(l_curr_instance_rec.LAST_OE_PO_NUMBER,fnd_api.g_miss_char) <> NVL(p_instance_rec.LAST_OE_PO_NUMBER,fnd_api.g_miss_char) THEN
9735 l_instance_hist_rec.old_LAST_OE_PO_NUMBER := l_curr_instance_rec.LAST_OE_PO_NUMBER ;
9736 l_instance_hist_rec.new_LAST_OE_PO_NUMBER := p_instance_rec.LAST_OE_PO_NUMBER ;
9737 END IF;
9738 --
9739 IF (p_instance_rec.install_location_type_code = fnd_api.g_miss_char) OR
9740 NVL(l_curr_instance_rec.install_location_type_code,fnd_api.g_miss_char) = NVL(p_instance_rec.install_location_type_code,fnd_api.g_miss_char) THEN
9741 l_instance_hist_rec.old_install_location_type_code := NULL;
9742 l_instance_hist_rec.new_install_location_type_code := NULL;
9743 ELSIF
9744 NVL(l_curr_instance_rec.install_location_type_code,fnd_api.g_miss_char) <> NVL(p_instance_rec.install_location_type_code,fnd_api.g_miss_char) THEN
9745 l_instance_hist_rec.old_install_location_type_code := l_curr_instance_rec.install_location_type_code ;
9746 l_instance_hist_rec.new_install_location_type_code := p_instance_rec.install_location_type_code ;
9747 END IF;
9748 --
9749 IF (p_instance_rec.install_location_id = fnd_api.g_miss_num) OR
9750 NVL(l_curr_instance_rec.install_location_id,fnd_api.g_miss_num) = NVL(p_instance_rec.install_location_id,fnd_api.g_miss_num) THEN
9751 l_instance_hist_rec.old_install_location_id := NULL;
9752 l_instance_hist_rec.new_install_location_id := NULL;
9753 ELSIF
9754 NVL(l_curr_instance_rec.install_location_id,fnd_api.g_miss_num) <> NVL(p_instance_rec.install_location_id,fnd_api.g_miss_num) THEN
9755 l_instance_hist_rec.old_install_location_id := l_curr_instance_rec.install_location_id ;
9756 l_instance_hist_rec.new_install_location_id := p_instance_rec.install_location_id ;
9757 END IF;
9758 --
9759 IF (p_instance_rec.operational_status_code = fnd_api.g_miss_char) OR
9760 NVL(l_curr_instance_rec.operational_status_code,fnd_api.g_miss_char) = NVL(p_instance_rec.operational_status_code,fnd_api.g_miss_char) THEN
9761 l_instance_hist_rec.old_operational_status_code := NULL;
9762 l_instance_hist_rec.new_operational_status_code := NULL;
9763 ELSIF
9764 NVL(l_curr_instance_rec.operational_status_code,fnd_api.g_miss_char) <> NVL(p_instance_rec.operational_status_code,fnd_api.g_miss_char) THEN
9765 l_instance_hist_rec.old_operational_status_code := l_curr_instance_rec.operational_status_code ;
9766 l_instance_hist_rec.new_operational_status_code := p_instance_rec.operational_status_code ;
9767 END IF;
9768
9769 /* Commented to implement bulk operations...Bug:;
9770 CSI_ITEM_INSTANCES_H_PKG.Insert_Row
9771 ( px_INSTANCE_HISTORY_ID => l_csi_item_instance_h_id
9772 ,p_INSTANCE_ID => l_rel_tbl(j).SUBJECT_ID
9773 ,p_TRANSACTION_ID => p_txn_rec.TRANSACTION_ID
9774 ,p_OLD_INSTANCE_NUMBER => FND_API.G_MISS_CHAR
9775 ,p_NEW_INSTANCE_NUMBER => FND_API.G_MISS_CHAR
9776 ,p_OLD_EXTERNAL_REFERENCE => FND_API.G_MISS_CHAR
9777 ,p_NEW_EXTERNAL_REFERENCE => FND_API.G_MISS_CHAR
9778 ,p_OLD_INVENTORY_ITEM_ID => FND_API.G_MISS_NUM
9779 ,p_NEW_INVENTORY_ITEM_ID => FND_API.G_MISS_NUM
9780 ,p_OLD_INVENTORY_REVISION => FND_API.G_MISS_CHAR
9781 ,p_NEW_INVENTORY_REVISION => FND_API.G_MISS_CHAR
9782 ,p_OLD_INV_MASTER_ORGZN_ID => FND_API.G_MISS_NUM
9783 ,p_NEW_INV_MASTER_ORGZN_ID => FND_API.G_MISS_NUM
9784 ,p_OLD_SERIAL_NUMBER => FND_API.G_MISS_CHAR
9785 ,p_NEW_SERIAL_NUMBER => FND_API.G_MISS_CHAR
9786 ,p_OLD_MFG_SERIAL_NUMBER_FLAG => FND_API.G_MISS_CHAR
9787 ,p_NEW_MFG_SERIAL_NUMBER_FLAG => FND_API.G_MISS_CHAR
9788 ,p_OLD_LOT_NUMBER => FND_API.G_MISS_CHAR
9789 ,p_NEW_LOT_NUMBER => FND_API.G_MISS_CHAR
9790 ,p_OLD_QUANTITY => FND_API.G_MISS_NUM
9791 ,p_NEW_QUANTITY => FND_API.G_MISS_NUM
9792 ,p_OLD_UNIT_OF_MEASURE => FND_API.G_MISS_CHAR
9793 ,p_NEW_UNIT_OF_MEASURE => FND_API.G_MISS_CHAR
9794 ,p_OLD_ACCOUNTING_CLASS_CODE => l_instance_hist_rec.OLD_ACCOUNTING_CLASS_CODE
9795 ,p_NEW_ACCOUNTING_CLASS_CODE => l_instance_hist_rec.NEW_ACCOUNTING_CLASS_CODE
9796 ,p_OLD_INSTANCE_CONDITION_ID => FND_API.G_MISS_NUM
9797 ,p_NEW_INSTANCE_CONDITION_ID => FND_API.G_MISS_NUM
9798 ,p_OLD_INSTANCE_STATUS_ID => l_instance_hist_rec.OLD_INSTANCE_STATUS_ID
9799 ,p_NEW_INSTANCE_STATUS_ID => l_instance_hist_rec.NEW_INSTANCE_STATUS_ID
9800 ,p_OLD_CUSTOMER_VIEW_FLAG => FND_API.G_MISS_CHAR
9801 ,p_NEW_CUSTOMER_VIEW_FLAG => FND_API.G_MISS_CHAR
9802 ,p_OLD_MERCHANT_VIEW_FLAG => FND_API.G_MISS_CHAR
9803 ,p_NEW_MERCHANT_VIEW_FLAG => FND_API.G_MISS_CHAR
9804 ,p_OLD_SELLABLE_FLAG => FND_API.G_MISS_CHAR
9805 ,p_NEW_SELLABLE_FLAG => FND_API.G_MISS_CHAR
9806 ,p_OLD_SYSTEM_ID => l_instance_hist_rec.OLD_SYSTEM_ID
9807 ,p_NEW_SYSTEM_ID => l_instance_hist_rec.NEW_SYSTEM_ID
9808 ,p_OLD_INSTANCE_TYPE_CODE => FND_API.G_MISS_CHAR
9809 ,p_NEW_INSTANCE_TYPE_CODE => FND_API.G_MISS_CHAR
9810 ,p_OLD_ACTIVE_START_DATE => FND_API.G_MISS_DATE
9811 ,p_NEW_ACTIVE_START_DATE => FND_API.G_MISS_DATE
9812 ,p_OLD_ACTIVE_END_DATE => l_instance_hist_rec.OLD_ACTIVE_END_DATE
9813 ,p_NEW_ACTIVE_END_DATE => l_instance_hist_rec.NEW_ACTIVE_END_DATE
9814 ,p_OLD_LOCATION_TYPE_CODE => l_instance_hist_rec.OLD_LOCATION_TYPE_CODE
9815 ,p_NEW_LOCATION_TYPE_CODE => l_instance_hist_rec.NEW_LOCATION_TYPE_CODE
9816 ,p_OLD_LOCATION_ID => l_instance_hist_rec.OLD_LOCATION_ID
9817 ,p_NEW_LOCATION_ID => l_instance_hist_rec.NEW_LOCATION_ID
9818 ,p_OLD_INV_ORGANIZATION_ID => l_instance_hist_rec.OLD_INV_ORGANIZATION_ID
9819 ,p_NEW_INV_ORGANIZATION_ID => l_instance_hist_rec.NEW_INV_ORGANIZATION_ID
9820 ,p_OLD_INV_SUBINVENTORY_NAME => l_instance_hist_rec.OLD_INV_SUBINVENTORY_NAME
9821 ,p_NEW_INV_SUBINVENTORY_NAME => l_instance_hist_rec.NEW_INV_SUBINVENTORY_NAME
9822 ,p_OLD_INV_LOCATOR_ID => l_instance_hist_rec.OLD_INV_LOCATOR_ID
9823 ,p_NEW_INV_LOCATOR_ID => l_instance_hist_rec.NEW_INV_LOCATOR_ID
9824 ,p_OLD_PA_PROJECT_ID => l_instance_hist_rec.OLD_PA_PROJECT_ID
9825 ,p_NEW_PA_PROJECT_ID => l_instance_hist_rec.NEW_PA_PROJECT_ID
9826 ,p_OLD_PA_PROJECT_TASK_ID => l_instance_hist_rec.OLD_PA_PROJECT_TASK_ID
9827 ,p_NEW_PA_PROJECT_TASK_ID => l_instance_hist_rec.NEW_PA_PROJECT_TASK_ID
9828 ,p_OLD_IN_TRANSIT_ORDER_LINE_ID => l_instance_hist_rec.OLD_IN_TRANSIT_ORDER_LINE_ID
9829 ,p_NEW_IN_TRANSIT_ORDER_LINE_ID => l_instance_hist_rec.NEW_IN_TRANSIT_ORDER_LINE_ID
9830 ,p_OLD_WIP_JOB_ID => l_instance_hist_rec.OLD_WIP_JOB_ID
9831 ,p_NEW_WIP_JOB_ID => l_instance_hist_rec.NEW_WIP_JOB_ID
9832 ,p_OLD_PO_ORDER_LINE_ID => l_instance_hist_rec.OLD_PO_ORDER_LINE_ID
9833 ,p_NEW_PO_ORDER_LINE_ID => l_instance_hist_rec.NEW_PO_ORDER_LINE_ID
9834 ,p_OLD_COMPLETENESS_FLAG => FND_API.G_MISS_CHAR
9835 ,p_NEW_COMPLETENESS_FLAG => FND_API.G_MISS_CHAR
9836 ,p_FULL_DUMP_FLAG => 'N'
9837 ,p_NEW_CONTEXT => FND_API.G_MISS_CHAR
9838 ,P_OLD_CONTEXT => FND_API.G_MISS_CHAR
9839 ,p_NEW_ATTRIBUTE1 => FND_API.G_MISS_CHAR
9840 ,p_OLD_ATTRIBUTE1 => FND_API.G_MISS_CHAR
9841 ,p_NEW_ATTRIBUTE2 => FND_API.G_MISS_CHAR
9842 ,p_OLD_ATTRIBUTE2 => FND_API.G_MISS_CHAR
9843 ,p_NEW_ATTRIBUTE3 => FND_API.G_MISS_CHAR
9844 ,p_OLD_ATTRIBUTE3 => FND_API.G_MISS_CHAR
9845 ,p_NEW_ATTRIBUTE4 => FND_API.G_MISS_CHAR
9846 ,p_OLD_ATTRIBUTE4 => FND_API.G_MISS_CHAR
9847 ,p_NEW_ATTRIBUTE5 => FND_API.G_MISS_CHAR
9848 ,p_OLD_ATTRIBUTE5 => FND_API.G_MISS_CHAR
9849 ,p_NEW_ATTRIBUTE6 => FND_API.G_MISS_CHAR
9850 ,p_OLD_ATTRIBUTE6 => FND_API.G_MISS_CHAR
9851 ,p_NEW_ATTRIBUTE7 => FND_API.G_MISS_CHAR
9852 ,p_OLD_ATTRIBUTE7 => FND_API.G_MISS_CHAR
9853 ,p_NEW_ATTRIBUTE8 => FND_API.G_MISS_CHAR
9854 ,p_OLD_ATTRIBUTE8 => FND_API.G_MISS_CHAR
9855 ,p_NEW_ATTRIBUTE9 => FND_API.G_MISS_CHAR
9856 ,p_OLD_ATTRIBUTE9 => FND_API.G_MISS_CHAR
9857 ,p_NEW_ATTRIBUTE10 => FND_API.G_MISS_CHAR
9858 ,p_OLD_ATTRIBUTE10 => FND_API.G_MISS_CHAR
9859 ,p_NEW_ATTRIBUTE11 => FND_API.G_MISS_CHAR
9860 ,p_OLD_ATTRIBUTE11 => FND_API.G_MISS_CHAR
9861 ,p_NEW_ATTRIBUTE12 => FND_API.G_MISS_CHAR
9862 ,p_OLD_ATTRIBUTE12 => FND_API.G_MISS_CHAR
9863 ,p_NEW_ATTRIBUTE13 => FND_API.G_MISS_CHAR
9864 ,p_OLD_ATTRIBUTE13 => FND_API.G_MISS_CHAR
9865 ,p_NEW_ATTRIBUTE14 => FND_API.G_MISS_CHAR
9866 ,p_OLD_ATTRIBUTE14 => FND_API.G_MISS_CHAR
9867 ,p_NEW_ATTRIBUTE15 => FND_API.G_MISS_CHAR
9868 ,p_OLD_ATTRIBUTE15 => FND_API.G_MISS_CHAR
9869 ,p_CREATED_BY => FND_GLOBAL.USER_ID
9870 ,p_CREATION_DATE => SYSDATE
9871 ,p_LAST_UPDATED_BY => FND_GLOBAL.USER_ID
9872 ,p_LAST_UPDATE_DATE => SYSDATE
9873 ,p_LAST_UPDATE_LOGIN => FND_GLOBAL.CONC_LOGIN_ID
9874 ,p_OBJECT_VERSION_NUMBER => 1
9875 ,p_OLD_INST_LOC_TYPE_CODE => l_instance_hist_rec.OLD_INSTALL_LOCATION_TYPE_CODE
9876 ,p_NEW_INST_LOC_TYPE_CODE => l_instance_hist_rec.NEW_INSTALL_LOCATION_TYPE_CODE
9877 ,p_OLD_INST_LOC_ID => l_instance_hist_rec.OLD_INSTALL_LOCATION_ID
9878 ,p_NEW_INST_LOC_ID => l_instance_hist_rec.NEW_INSTALL_LOCATION_ID
9879 ,p_OLD_INST_USAGE_CODE => FND_API.G_MISS_CHAR
9880 ,p_NEW_INST_USAGE_CODE => FND_API.G_MISS_CHAR
9881 ,p_OLD_LAST_VLD_ORGANIZATION_ID => FND_API.G_MISS_NUM
9882 ,p_NEW_LAST_VLD_ORGANIZATION_ID => FND_API.G_MISS_NUM
9883 ,p_OLD_CONFIG_INST_REV_NUM => FND_API.G_MISS_NUM
9884 ,p_NEW_CONFIG_INST_REV_NUM => FND_API.G_MISS_NUM
9885 ,p_OLD_CONFIG_VALID_STATUS => FND_API.G_MISS_CHAR
9886 ,p_NEW_CONFIG_VALID_STATUS => FND_API.G_MISS_CHAR
9887 ,p_OLD_INSTANCE_DESCRIPTION => FND_API.G_MISS_CHAR
9888 ,p_NEW_INSTANCE_DESCRIPTION => FND_API.G_MISS_CHAR
9889 ,p_OLD_INSTALL_DATE => l_instance_hist_rec.OLD_INSTALL_DATE
9890 ,p_NEW_INSTALL_DATE => l_instance_hist_rec.NEW_INSTALL_DATE
9891 ,p_OLD_RETURN_BY_DATE => FND_API.G_MISS_DATE
9892 ,p_NEW_RETURN_BY_DATE => FND_API.G_MISS_DATE
9893 ,p_OLD_ACTUAL_RETURN_DATE => FND_API.G_MISS_DATE
9894 ,p_NEW_ACTUAL_RETURN_DATE => FND_API.G_MISS_DATE
9895 ,p_OLD_LAST_OE_AGREEMENT_ID => l_instance_hist_rec.OLD_LAST_OE_AGREEMENT_ID
9896 ,p_NEW_LAST_OE_AGREEMENT_ID => l_instance_hist_rec.NEW_LAST_OE_AGREEMENT_ID
9897 ,p_OLD_LAST_OE_ORDER_LINE_ID => l_instance_hist_rec.OLD_LAST_OE_ORDER_LINE_ID
9898 ,p_NEW_LAST_OE_ORDER_LINE_ID => l_instance_hist_rec.NEW_LAST_OE_ORDER_LINE_ID
9899 ,p_OLD_LAST_OE_RMA_LINE_ID => l_instance_hist_rec.OLD_LAST_OE_RMA_LINE_ID
9900 ,p_NEW_LAST_OE_RMA_LINE_ID => l_instance_hist_rec.NEW_LAST_OE_RMA_LINE_ID
9901 ,p_OLD_LAST_WIP_JOB_ID => l_instance_hist_rec.OLD_LAST_WIP_JOB_ID
9902 ,p_NEW_LAST_WIP_JOB_ID => l_instance_hist_rec.NEW_LAST_WIP_JOB_ID
9903 ,p_OLD_LAST_PO_PO_LINE_ID => l_instance_hist_rec.OLD_LAST_PO_PO_LINE_ID
9904 ,p_NEW_LAST_PO_PO_LINE_ID => l_instance_hist_rec.NEW_LAST_PO_PO_LINE_ID
9905 ,p_OLD_LAST_PA_PROJECT_ID => l_instance_hist_rec.OLD_LAST_PA_PROJECT_ID
9906 ,p_NEW_LAST_PA_PROJECT_ID => l_instance_hist_rec.NEW_LAST_PA_PROJECT_ID
9907 ,p_OLD_LAST_PA_TASK_ID => l_instance_hist_rec.OLD_LAST_PA_TASK_ID
9908 ,p_NEW_LAST_PA_TASK_ID => l_instance_hist_rec.NEW_LAST_PA_TASK_ID
9909 ,p_OLD_LAST_TXN_LINE_DETAIL_ID => l_instance_hist_rec.OLD_LAST_TXN_LINE_DETAIL_ID
9910 ,p_NEW_LAST_TXN_LINE_DETAIL_ID => l_instance_hist_rec.NEW_LAST_TXN_LINE_DETAIL_ID
9911 ,p_OLD_LAST_OE_PO_NUMBER => l_instance_hist_rec.OLD_LAST_OE_PO_NUMBER
9912 ,p_NEW_LAST_OE_PO_NUMBER => l_instance_hist_rec.NEW_LAST_OE_PO_NUMBER
9913 --start of parameters addition for eam integration--
9914 ,p_OLD_NETWORK_ASSET_FLAG => FND_API.G_MISS_CHAR
9915 ,p_NEW_NETWORK_ASSET_FLAG => FND_API.G_MISS_CHAR
9916 ,p_OLD_MAINTAINABLE_FLAG => FND_API.G_MISS_CHAR
9917 ,p_NEW_MAINTAINABLE_FLAG => FND_API.G_MISS_CHAR
9918 ,p_OLD_PN_LOCATION_ID => FND_API.G_MISS_NUM
9919 ,p_NEW_PN_LOCATION_ID => FND_API.G_MISS_NUM
9920 ,p_OLD_ASSET_CRITICALITY_CODE => FND_API.G_MISS_CHAR
9921 ,p_NEW_ASSET_CRITICALITY_CODE => FND_API.G_MISS_CHAR
9922 ,p_OLD_CATEGORY_ID => FND_API.G_MISS_NUM
9923 ,p_NEW_CATEGORY_ID => FND_API.G_MISS_NUM
9924 ,p_OLD_EQUIPMENT_GEN_OBJECT_ID => FND_API.G_MISS_NUM
9925 ,p_NEW_EQUIPMENT_GEN_OBJECT_ID => FND_API.G_MISS_NUM
9926 ,p_OLD_INSTANTIATION_FLAG => FND_API.G_MISS_CHAR
9927 ,p_NEW_INSTANTIATION_FLAG => FND_API.G_MISS_CHAR
9928 ,p_OLD_LINEAR_LOCATION_ID => FND_API.G_MISS_NUM
9929 ,p_NEW_LINEAR_LOCATION_ID => FND_API.G_MISS_NUM
9930 ,p_OLD_OPERATIONAL_LOG_FLAG => FND_API.G_MISS_CHAR
9931 ,p_NEW_OPERATIONAL_LOG_FLAG => FND_API.G_MISS_CHAR
9932 ,p_OLD_CHECKIN_STATUS => FND_API.G_MISS_NUM
9933 ,p_NEW_CHECKIN_STATUS => FND_API.G_MISS_NUM
9934 ,p_OLD_SUP_WARRANTY_EXP_DATE => FND_API.G_MISS_DATE
9935 ,p_NEW_SUP_WARRANTY_EXP_DATE => FND_API.G_MISS_DATE
9936 ,p_OLD_ATTRIBUTE16 => FND_API.G_MISS_CHAR
9937 ,p_NEW_ATTRIBUTE16 => FND_API.G_MISS_CHAR
9938 ,p_OLD_ATTRIBUTE17 => FND_API.G_MISS_CHAR
9939 ,p_NEW_ATTRIBUTE17 => FND_API.G_MISS_CHAR
9940 ,p_OLD_ATTRIBUTE18 => FND_API.G_MISS_CHAR
9941 ,p_NEW_ATTRIBUTE18 => FND_API.G_MISS_CHAR
9942 ,p_OLD_ATTRIBUTE19 => FND_API.G_MISS_CHAR
9943 ,p_NEW_ATTRIBUTE19 => FND_API.G_MISS_CHAR
9944 ,p_OLD_ATTRIBUTE20 => FND_API.G_MISS_CHAR
9945 ,p_NEW_ATTRIBUTE20 => FND_API.G_MISS_CHAR
9946 ,p_OLD_ATTRIBUTE21 => FND_API.G_MISS_CHAR
9947 ,p_NEW_ATTRIBUTE21 => FND_API.G_MISS_CHAR
9948 ,p_OLD_ATTRIBUTE22 => FND_API.G_MISS_CHAR
9949 ,p_NEW_ATTRIBUTE22 => FND_API.G_MISS_CHAR
9950 ,p_OLD_ATTRIBUTE23 => FND_API.G_MISS_CHAR
9951 ,p_NEW_ATTRIBUTE23 => FND_API.G_MISS_CHAR
9952 ,p_OLD_ATTRIBUTE24 => FND_API.G_MISS_CHAR
9953 ,p_NEW_ATTRIBUTE24 => FND_API.G_MISS_CHAR
9954 ,p_OLD_ATTRIBUTE25 => FND_API.G_MISS_CHAR
9955 ,p_NEW_ATTRIBUTE25 => FND_API.G_MISS_CHAR
9956 ,p_OLD_ATTRIBUTE26 => FND_API.G_MISS_CHAR
9957 ,p_NEW_ATTRIBUTE26 => FND_API.G_MISS_CHAR
9958 ,p_OLD_ATTRIBUTE27 => FND_API.G_MISS_CHAR
9959 ,p_NEW_ATTRIBUTE27 => FND_API.G_MISS_CHAR
9960 ,p_OLD_ATTRIBUTE28 => FND_API.G_MISS_CHAR
9961 ,p_NEW_ATTRIBUTE28 => FND_API.G_MISS_CHAR
9962 ,p_OLD_ATTRIBUTE29 => FND_API.G_MISS_CHAR
9963 ,p_NEW_ATTRIBUTE29 => FND_API.G_MISS_CHAR
9964 ,p_OLD_ATTRIBUTE30 => FND_API.G_MISS_CHAR
9965 ,p_NEW_ATTRIBUTE30 => FND_API.G_MISS_CHAR
9966 --end of parameters addition for eam integration--
9967 -- Addition of columns for FA Integration
9968 ,p_OLD_PAYABLES_UNIT_PRICE => FND_API.G_MISS_NUM
9969 ,p_NEW_PAYABLES_UNIT_PRICE => FND_API.G_MISS_NUM
9970 ,p_OLD_PAYABLES_CURRENCY_CODE => FND_API.G_MISS_CHAR
9971 ,p_NEW_PAYABLES_CURRENCY_CODE => FND_API.G_MISS_CHAR
9972 ,p_OLD_PURCHASE_UNIT_PRICE => FND_API.G_MISS_NUM
9973 ,p_NEW_PURCHASE_UNIT_PRICE => FND_API.G_MISS_NUM
9974 ,p_OLD_PURCHASE_CURRENCY_CODE => FND_API.G_MISS_CHAR
9975 ,p_NEW_PURCHASE_CURRENCY_CODE => FND_API.G_MISS_CHAR
9976 ,p_OLD_SALES_UNIT_PRICE => FND_API.G_MISS_NUM
9977 ,p_NEW_SALES_UNIT_PRICE => FND_API.G_MISS_NUM
9978 ,p_OLD_SALES_CURRENCY_CODE => FND_API.G_MISS_CHAR
9979 ,p_NEW_SALES_CURRENCY_CODE => FND_API.G_MISS_CHAR
9980 ,p_OLD_OPERATIONAL_STATUS_CODE => l_instance_hist_rec.old_operational_status_code
9981 ,p_NEW_OPERATIONAL_STATUS_CODE => l_instance_hist_rec.new_operational_status_code
9982 -- End addition of columns for FA Integration
9983 );
9984 End of insert...Bug:5615169 */
9985
9986 --Start of: Added for Bug:5615169
9987 --Insert the data into bulk table
9988 l_ciih_blk_ins_cnt := l_ciih_blk_ins_cnt + 1;
9989 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).instance_history_id := l_csi_item_instance_h_id;
9990 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).instance_id := l_rel_tbl(j).subject_id;
9991 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).transaction_id := p_txn_rec.TRANSACTION_ID;
9992 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_instance_number := l_curr_instance_rec.INSTANCE_NUMBER;
9993 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_instance_number := p_instance_rec.INSTANCE_NUMBER;
9994 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_external_reference := l_curr_instance_rec.EXTERNAL_REFERENCE;
9995 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_external_reference := p_instance_rec.EXTERNAL_REFERENCE;
9996 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_inventory_item_id := l_curr_instance_rec.INVENTORY_ITEM_ID;
9997 -- Bug 10039396 When updating location changes for child
9998 -- Inventory and serial numbers are not changed
9999 --l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_inventory_item_id := p_instance_rec.INVENTORY_ITEM_ID;
10000 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_inventory_item_id := l_curr_instance_rec.INVENTORY_ITEM_ID;
10001 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_inventory_revision := l_curr_instance_rec.INVENTORY_REVISION;
10002 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_inventory_revision := p_instance_rec.INVENTORY_REVISION;
10003 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_inv_master_org_id := l_curr_instance_rec.INV_MASTER_ORGANIZATION_ID;
10004 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_inv_master_org_id := p_instance_rec.INV_MASTER_ORGANIZATION_ID;
10005 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_serial_number := l_curr_instance_rec.SERIAL_NUMBER;
10006 -- Bug 10039396
10007 --l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_serial_number := p_instance_rec.SERIAL_NUMBER;
10008 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_serial_number := l_curr_instance_rec.SERIAL_NUMBER;
10009 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_mfg_serial_number_flag := l_curr_instance_rec.MFG_SERIAL_NUMBER_FLAG;
10010 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_mfg_serial_number_flag := p_instance_rec.MFG_SERIAL_NUMBER_FLAG;
10011 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_lot_number := l_curr_instance_rec.LOT_NUMBER;
10012 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_lot_number := p_instance_rec.LOT_NUMBER;
10013 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_quantity := l_curr_instance_rec.QUANTITY;
10014 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_quantity := p_instance_rec.QUANTITY;
10015 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_unit_of_measure := l_curr_instance_rec.UNIT_OF_MEASURE;
10016 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_unit_of_measure := p_instance_rec.UNIT_OF_MEASURE;
10017 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_accounting_class_code := l_curr_instance_rec.ACCOUNTING_CLASS_CODE;
10018 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_accounting_class_code := p_instance_rec.ACCOUNTING_CLASS_CODE;
10019 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_instance_condition_id := l_curr_instance_rec.INSTANCE_CONDITION_ID;
10020 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_instance_condition_id := p_instance_rec.INSTANCE_CONDITION_ID;
10021 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_instance_status_id := l_curr_instance_rec.INSTANCE_STATUS_ID;
10022 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_instance_status_id := l_instance_status_id; --p_instance_rec.INSTANCE_STATUS_IDs_id;
10023 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_customer_view_flag := l_curr_instance_rec.CUSTOMER_VIEW_FLAG;
10024 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_customer_view_flag := p_instance_rec.CUSTOMER_VIEW_FLAG;
10025 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_merchant_view_flag := l_curr_instance_rec.MERCHANT_VIEW_FLAG;
10026 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_merchant_view_flag := p_instance_rec.MERCHANT_VIEW_FLAG;
10027 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_sellable_flag := l_curr_instance_rec.SELLABLE_FLAG;
10028 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_sellable_flag := p_instance_rec.SELLABLE_FLAG;
10029 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_system_id := l_curr_instance_rec.SYSTEM_ID;
10030 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_system_id := l_system_id;
10031 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_instance_type_code := l_curr_instance_rec.INSTANCE_TYPE_CODE;
10032 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_instance_type_code := p_instance_rec.INSTANCE_TYPE_CODE;
10033 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_active_start_date := l_curr_instance_rec.ACTIVE_START_DATE;
10034 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_active_start_date := p_instance_rec.ACTIVE_START_DATE;
10035 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_active_end_date := l_curr_instance_rec.ACTIVE_END_DATE;
10036 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_active_end_date := p_instance_rec.ACTIVE_END_DATE;
10037 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_location_type_code := l_curr_instance_rec.LOCATION_TYPE_CODE;
10038 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_location_type_code := p_instance_rec.LOCATION_TYPE_CODE;
10039 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_location_id := l_curr_instance_rec.LOCATION_ID;
10040 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_location_id := p_instance_rec.LOCATION_ID;
10041 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_inv_organization_id := l_curr_instance_rec.INV_ORGANIZATION_ID;
10042 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_inv_organization_id := p_instance_rec.INV_ORGANIZATION_ID;
10043 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_inv_subinventory_name := l_curr_instance_rec.INV_SUBINVENTORY_NAME;
10044 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_inv_subinventory_name := p_instance_rec.INV_SUBINVENTORY_NAME;
10045 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_inv_locator_id := l_curr_instance_rec.INV_LOCATOR_ID;
10046 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_inv_locator_id := p_instance_rec.INV_LOCATOR_ID;
10047 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_pa_project_id := l_curr_instance_rec.PA_PROJECT_ID;
10048 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_pa_project_id := p_instance_rec.PA_PROJECT_ID;
10049 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_pa_project_task_id := l_curr_instance_rec.PA_PROJECT_TASK_ID;
10050 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_pa_project_task_id := p_instance_rec.PA_PROJECT_TASK_ID;
10051 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_in_transit_order_line_id := l_curr_instance_rec.IN_TRANSIT_ORDER_LINE_ID;
10052 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_in_transit_order_line_id := p_instance_rec.IN_TRANSIT_ORDER_LINE_ID;
10053 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_wip_job_id := l_curr_instance_rec.WIP_JOB_ID;
10054 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_wip_job_id := p_instance_rec.WIP_JOB_ID;
10055 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_po_order_line_id := l_curr_instance_rec.PO_ORDER_LINE_ID;
10056 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_po_order_line_id := p_instance_rec.PO_ORDER_LINE_ID;
10057 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_completeness_flag := l_curr_instance_rec.COMPLETENESS_FLAG;
10058 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_completeness_flag := p_instance_rec.COMPLETENESS_FLAG;
10059 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).full_dump_flag := 'Y';
10060 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_context := p_instance_rec.CONTEXT;
10061 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_context := l_curr_instance_rec.CONTEXT;
10062 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute1 := p_instance_rec.ATTRIBUTE1;
10063 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute1 := l_curr_instance_rec.ATTRIBUTE1;
10064 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute2 := p_instance_rec.ATTRIBUTE2;
10065 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute2 := l_curr_instance_rec.ATTRIBUTE2;
10066 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute3 := p_instance_rec.ATTRIBUTE3;
10067 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute3 := l_curr_instance_rec.ATTRIBUTE3;
10068 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute4 := p_instance_rec.ATTRIBUTE4;
10069 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute4 := l_curr_instance_rec.ATTRIBUTE4;
10070 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute5 := p_instance_rec.ATTRIBUTE5;
10071 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute5 := l_curr_instance_rec.ATTRIBUTE5;
10072 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute6 := p_instance_rec.ATTRIBUTE6;
10073 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute6 := l_curr_instance_rec.ATTRIBUTE6;
10074 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute7 := p_instance_rec.ATTRIBUTE7;
10075 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute7 := l_curr_instance_rec.ATTRIBUTE7;
10076 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute8 := p_instance_rec.ATTRIBUTE8;
10077 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute8 := l_curr_instance_rec.ATTRIBUTE8;
10078 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute9 := p_instance_rec.ATTRIBUTE9;
10079 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute9 := l_curr_instance_rec.ATTRIBUTE9;
10080 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute10 := p_instance_rec.ATTRIBUTE10;
10081 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute10 := l_curr_instance_rec.ATTRIBUTE10;
10082 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute11 := p_instance_rec.ATTRIBUTE11;
10083 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute11 := l_curr_instance_rec.ATTRIBUTE11;
10084 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute12 := p_instance_rec.ATTRIBUTE12;
10085 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute12 := l_curr_instance_rec.ATTRIBUTE12;
10086 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute13 := p_instance_rec.ATTRIBUTE13;
10087 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute13 := l_curr_instance_rec.ATTRIBUTE13;
10088 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute14 := p_instance_rec.ATTRIBUTE14;
10089 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute14 := l_curr_instance_rec.ATTRIBUTE14;
10090 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute15 := p_instance_rec.ATTRIBUTE15;
10091 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute15 := l_curr_instance_rec.ATTRIBUTE15;
10092 -- l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).created_by := FND_GLOBAL.USER_ID;
10093 -- l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).creation_date := SYSDATE;
10094 -- l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).last_updated_by := FND_GLOBAL.USER_ID;
10095 -- l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).last_update_date := SYSDATE;
10096 -- l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).last_update_login := FND_GLOBAL.CONC_LOGIN_ID;
10097 -- l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).object_version_number := 1;
10098 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_install_location_type_code := l_curr_instance_rec.INSTALL_LOCATION_TYPE_CODE;
10099 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_install_location_type_code := p_instance_rec.INSTALL_LOCATION_TYPE_CODE;
10100 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_install_location_id := l_curr_instance_rec.INSTALL_LOCATION_ID;
10101 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_install_location_id := p_instance_rec.INSTALL_LOCATION_ID;
10102 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_instance_usage_code := l_curr_instance_rec.INSTANCE_USAGE_CODE;
10103 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_instance_usage_code := p_instance_rec.INSTANCE_USAGE_CODE;
10104 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_last_vld_organization_id := fnd_api.g_miss_num;
10105 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_last_vld_organization_id := fnd_api.g_miss_num;
10106 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_config_inst_rev_num := l_curr_instance_rec.CONFIG_INST_REV_NUM;
10107 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_config_inst_rev_num := p_instance_rec.CONFIG_INST_REV_NUM;
10108 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_config_valid_status := l_curr_instance_rec.CONFIG_VALID_STATUS;
10109 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_config_valid_status := p_instance_rec.CONFIG_VALID_STATUS;
10110 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_instance_description := l_curr_instance_rec.INSTANCE_DESCRIPTION;
10111 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_instance_description := p_instance_rec.INSTANCE_DESCRIPTION;
10112 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_install_date := l_curr_instance_rec.INSTALL_DATE;
10113 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_install_date := l_install_date;
10114 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_return_by_date := l_curr_instance_rec.RETURN_BY_DATE;
10115 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_return_by_date := p_instance_rec.RETURN_BY_DATE;
10116 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_actual_return_date := l_curr_instance_rec.ACTUAL_RETURN_DATE;
10117 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_actual_return_date := p_instance_rec.ACTUAL_RETURN_DATE;
10118 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_last_oe_agreement_id := l_curr_instance_rec.LAST_OE_AGREEMENT_ID;
10119 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_last_oe_agreement_id := p_instance_rec.LAST_OE_AGREEMENT_ID;
10120 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_last_oe_order_line_id := l_curr_instance_rec.LAST_OE_ORDER_LINE_ID;
10121 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_last_oe_order_line_id := p_instance_rec.LAST_OE_ORDER_LINE_ID;
10122 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_last_oe_rma_line_id := l_curr_instance_rec.LAST_OE_RMA_LINE_ID;
10123 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_last_oe_rma_line_id := p_instance_rec.LAST_OE_RMA_LINE_ID;
10124 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_last_wip_job_id := l_curr_instance_rec.LAST_WIP_JOB_ID;
10125 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_last_wip_job_id := p_instance_rec.LAST_WIP_JOB_ID;
10126 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_last_po_po_line_id := l_curr_instance_rec.LAST_PO_PO_LINE_ID;
10127 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_last_po_po_line_id := p_instance_rec.LAST_PO_PO_LINE_ID;
10128 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_last_pa_project_id := l_curr_instance_rec.LAST_PA_PROJECT_ID;
10129 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_last_pa_project_id := p_instance_rec.LAST_PA_PROJECT_ID;
10130 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_last_pa_task_id := l_curr_instance_rec.LAST_PA_TASK_ID;
10131 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_last_pa_task_id := p_instance_rec.LAST_PA_TASK_ID;
10132 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_last_txn_line_detail_id := l_curr_instance_rec.LAST_TXN_LINE_DETAIL_ID;
10133 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_last_txn_line_detail_id := p_instance_rec.LAST_TXN_LINE_DETAIL_ID;
10134 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_last_oe_po_number := l_curr_instance_rec.LAST_OE_PO_NUMBER;
10135 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_last_oe_po_number := p_instance_rec.LAST_OE_PO_NUMBER;
10136 -- l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_capitalization_status := l_curr_instance_rec.CAPITALIZATION_STATUS;
10137 -- l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_capitalization_status := p_instance_rec.CAPITALIZATION_STATUS;
10138 --Start of parameters addition for eam integration
10139 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_network_asset_flag := l_curr_instance_rec.NETWORK_ASSET_FLAG;
10140 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_network_asset_flag := p_instance_rec.NETWORK_ASSET_FLAG;
10141 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_maintainable_flag := l_curr_instance_rec.MAINTAINABLE_FLAG;
10142 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_maintainable_flag := p_instance_rec.MAINTAINABLE_FLAG;
10143 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_pn_location_id := l_curr_instance_rec.PN_LOCATION_ID;
10144 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_pn_location_id := p_instance_rec.PN_LOCATION_ID;
10145 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_asset_criticality_code := l_curr_instance_rec.ASSET_CRITICALITY_CODE;
10146 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_asset_criticality_code := p_instance_rec.ASSET_CRITICALITY_CODE;
10147 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_category_id := l_curr_instance_rec.CATEGORY_ID;
10148 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_category_id := p_instance_rec.CATEGORY_ID;
10149 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_equipment_gen_object_id := l_curr_instance_rec.EQUIPMENT_GEN_OBJECT_ID;
10150 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_equipment_gen_object_id := p_instance_rec.EQUIPMENT_GEN_OBJECT_ID;
10151 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_instantiation_flag := l_curr_instance_rec.INSTANTIATION_FLAG;
10152 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_instantiation_flag := p_instance_rec.INSTANTIATION_FLAG;
10153 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_linear_location_id := l_curr_instance_rec.LINEAR_LOCATION_ID;
10154 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_linear_location_id := p_instance_rec.LINEAR_LOCATION_ID;
10155 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_operational_log_flag := l_curr_instance_rec.OPERATIONAL_LOG_FLAG;
10156 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_operational_log_flag := p_instance_rec.OPERATIONAL_LOG_FLAG;
10157 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_checkin_status := l_curr_instance_rec.CHECKIN_STATUS;
10158 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_checkin_status := p_instance_rec.CHECKIN_STATUS;
10159 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_supplier_warranty_exp_date := l_curr_instance_rec.SUPPLIER_WARRANTY_EXP_DATE;
10160 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_supplier_warranty_exp_date := p_instance_rec.SUPPLIER_WARRANTY_EXP_DATE;
10161 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute16 := l_curr_instance_rec.ATTRIBUTE16;
10162 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute16 := p_instance_rec.ATTRIBUTE16;
10163 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute17 := l_curr_instance_rec.ATTRIBUTE17;
10164 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute17 := p_instance_rec.ATTRIBUTE17;
10165 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute18 := l_curr_instance_rec.ATTRIBUTE18;
10166 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute18 := p_instance_rec.ATTRIBUTE18;
10167 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute19 := l_curr_instance_rec.ATTRIBUTE19;
10168 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute19 := p_instance_rec.ATTRIBUTE19;
10169 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute20 := l_curr_instance_rec.ATTRIBUTE20;
10170 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute20 := p_instance_rec.ATTRIBUTE20;
10171 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute21 := l_curr_instance_rec.ATTRIBUTE21;
10172 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute21 := p_instance_rec.ATTRIBUTE21;
10173 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute22 := l_curr_instance_rec.ATTRIBUTE22;
10174 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute22 := p_instance_rec.ATTRIBUTE22;
10175 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute23 := l_curr_instance_rec.ATTRIBUTE23;
10176 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute23 := p_instance_rec.ATTRIBUTE23;
10177 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute24 := l_curr_instance_rec.ATTRIBUTE24;
10178 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute24 := p_instance_rec.ATTRIBUTE24;
10179 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute25 := l_curr_instance_rec.ATTRIBUTE25;
10180 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute25 := p_instance_rec.ATTRIBUTE25;
10181 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute26 := l_curr_instance_rec.ATTRIBUTE26;
10182 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute26 := p_instance_rec.ATTRIBUTE26;
10183 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute27 := l_curr_instance_rec.ATTRIBUTE27;
10184 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute27 := p_instance_rec.ATTRIBUTE27;
10185 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute28 := l_curr_instance_rec.ATTRIBUTE28;
10186 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute28 := p_instance_rec.ATTRIBUTE28;
10187 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute29 := l_curr_instance_rec.ATTRIBUTE29;
10188 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute29 := p_instance_rec.ATTRIBUTE29;
10189 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute30 := l_curr_instance_rec.ATTRIBUTE30;
10190 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute30 := p_instance_rec.ATTRIBUTE30;
10191 --End of parameters addition for eam integration--
10192 --Addition of columns for FA Integration
10193 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_payables_unit_price := l_curr_instance_rec.PAYABLES_UNIT_PRICE;
10194 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_payables_unit_price := p_instance_rec.PAYABLES_UNIT_PRICE;
10195 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_payables_currency_code := l_curr_instance_rec.PAYABLES_CURRENCY_CODE;
10196 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_payables_currency_code := p_instance_rec.PAYABLES_CURRENCY_CODE;
10197 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_purchase_unit_price := l_curr_instance_rec.PURCHASE_UNIT_PRICE;
10198 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_purchase_unit_price := p_instance_rec.PURCHASE_UNIT_PRICE;
10199 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_purchase_currency_code := l_curr_instance_rec.PURCHASE_CURRENCY_CODE;
10200 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_purchase_currency_code := p_instance_rec.PURCHASE_CURRENCY_CODE;
10201 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_sales_unit_price := l_curr_instance_rec.SALES_UNIT_PRICE;
10202 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_sales_unit_price := p_instance_rec.SALES_UNIT_PRICE;
10203 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_sales_currency_code := l_curr_instance_rec.SALES_CURRENCY_CODE;
10204 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_sales_currency_code := p_instance_rec.SALES_CURRENCY_CODE;
10205 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_operational_status_code := l_curr_instance_rec.OPERATIONAL_STATUS_CODE;
10206 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_operational_status_code := p_instance_rec.OPERATIONAL_STATUS_CODE;
10207 --End addition of columns for FA Integration
10208 --End of Insert into bulk table
10209 --End of: Added for Bug:5615169
10210 -- Begin Add Code for Siebel Genesis Project
10211 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_source_code := fnd_api.g_miss_char;
10212 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_source_code := fnd_api.g_miss_char;
10213 -- End Add Code for Siebel Genesis Project
10214 END IF;
10215 END;
10216 -- End of modifications for Bug#2547034 on 09/20/02 - rtalluri
10217 --
10218 -- Opening New Cursor to retrieve Child Id records Details
10219 OPEN new_instance_rec(l_rel_tbl(j).subject_id);
10220 FETCH new_instance_rec INTO l_new_instance_rec;
10221 IF new_instance_rec%NOTFOUND THEN
10222 FND_MESSAGE.Set_Name('CSI', 'CSI_API_RECORD_LOCKED');
10223 FND_MSG_PUB.ADD;
10224 RAISE FND_API.G_EXC_ERROR;
10225 END IF;
10226 CLOSE new_instance_rec;
10227 --
10228 l_party_id := NULL;
10229 Begin
10230 select party_id
10231 into l_party_id
10232 from CSI_I_PARTIES
10233 where instance_id = l_rel_tbl(j).subject_id
10234 and relationship_type_code = 'OWNER';
10235 Exception
10236 when no_data_found then
10237 l_party_id := null;
10238 End;
10239 -- p_instance_rec.call_contracts would've been set to FLASE whenever ownership is changed from
10240 -- external to internal or Internal to External. Since contracts call will be made
10241 -- at account update level, we are supressing the call here.
10242 IF l_party_id IS NOT NULL AND
10243 l_party_id <> l_internal_party_id AND
10244 p_instance_rec.call_contracts <> FND_API.G_FALSE THEN
10245 IF l_curr_instance_rec.instance_status_id <> l_new_instance_rec.instance_status_id AND
10246 l_termination_status AND
10247 p_instance_rec.call_contracts <> FND_API.G_FALSE THEN
10248 IF p_txn_rec.transaction_type_id in (53,54) THEN
10249 l_oks_txn_type := 'RET';
10250 ELSE
10251 l_oks_txn_type := 'TRM';
10252 END IF;
10253 --
10254
10255
10256
10257 --Changed for Bug 11679952 --Added more paranthesis for Bug 13055898
10258 IF p_txn_rec.transaction_type_id <> 7 -- Added for bug 3973706
10259 AND (((Nvl(p_instance_rec.CALL_CONTRACTS, FND_API.G_FALSE) = FND_API.G_TRUE)
10260 AND (p_txn_rec.transaction_type_id = 3)
10261 AND (nvl(p_txn_rec.source_group_ref, FND_API.G_MISS_CHAR) = 'WBADI')
10262 )
10263 OR nvl(p_txn_rec.source_group_ref, FND_API.G_MISS_CHAR) <> 'WBADI'
10264 )
10265 THEN
10266 csi_item_instance_pvt.Call_to_Contracts
10267 ( p_transaction_type => l_oks_txn_type
10268 ,p_instance_id => l_rel_tbl(j).SUBJECT_ID
10269 ,p_new_instance_id => NULL
10270 ,p_vld_org_id => l_curr_instance_rec.last_vld_organization_id
10271 ,p_quantity => NULL
10272 ,p_party_account_id1 => NULL
10273 ,p_party_account_id2 => NULL
10274 ,p_transaction_date => p_txn_rec.transaction_date
10275 ,p_source_transaction_date => p_txn_rec.source_transaction_date
10276 ,p_txn_type_id => p_txn_rec.transaction_type_id --added for BUG# 5752271
10277 ,p_oks_txn_inst_tbl => p_oks_txn_inst_tbl
10278 ,x_return_status => x_return_status
10279 ,x_msg_count => x_msg_count
10280 ,x_msg_data => x_msg_data
10281 );
10282 --
10283 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
10284 l_msg_index := 1;
10285 l_msg_count := x_msg_count;
10286 WHILE l_msg_count > 0 LOOP
10287 x_msg_data := FND_MSG_PUB.GET
10288 ( l_msg_index,
10289 FND_API.G_FALSE
10290 );
10291 csi_gen_utility_pvt.put_line('MESSAGE DATA = '||x_msg_data);
10292 l_msg_index := l_msg_index + 1;
10293 l_msg_count := l_msg_count - 1;
10294 END LOOP;
10295 RAISE FND_API.G_EXC_ERROR;
10296 END IF;
10297 END IF; -- Added for bug 3973706
10298 ELSE
10299 IF ((nvl(l_curr_instance_rec.active_end_date,(sysdate+1)) <= sysdate) AND
10300 ((p_instance_rec.active_end_date IS NULL) OR
10301 (p_instance_rec.active_end_date IS NOT NULL AND p_instance_rec.active_end_date > sysdate AND
10302 p_instance_rec.active_end_date <> FND_API.G_MISS_DATE))) THEN
10303 --
10304 -- 11.5.10 ER. While un-expiring the instance, order Line ID will be passed only if it changes
10305 IF l_new_instance_rec.location_type_code = 'IN_TRANSIT' THEN
10306 IF nvl(l_curr_instance_rec.in_transit_order_line_id,-99999) <>
10307 nvl(l_new_instance_rec.in_transit_order_line_id,-99999) THEN
10308 l_order_line_id := l_new_instance_rec.in_transit_order_line_id;
10309 ELSE
10310 l_order_line_id := NULL;
10311 END IF;
10312 ELSE
10313 IF nvl(l_curr_instance_rec.last_oe_order_line_id,-99999) <>
10314 nvl(l_new_instance_rec.last_oe_order_line_id,-99999) THEN
10315 l_order_line_id := l_new_instance_rec.last_oe_order_line_id;
10316 ELSE
10317 l_order_line_id := NULL;
10318 END IF;
10319 END IF;
10320 --
10321 --Changed for FP of Bug 11679952
10322 IF p_txn_rec.transaction_type_id <> 7 -- Added for bug 3973706
10323 AND ((Nvl(p_instance_rec.CALL_CONTRACTS, FND_API.G_FALSE) = FND_API.G_TRUE)
10324 AND (p_txn_rec.transaction_type_id = 3)
10325 AND (nvl(p_txn_rec.source_group_ref, FND_API.G_MISS_CHAR) = 'WBADI'
10326 )
10327 OR nvl(p_txn_rec.source_group_ref, FND_API.G_MISS_CHAR) <> 'WBADI'
10328 )
10329 THEN
10330 csi_item_instance_pvt.Call_to_Contracts
10331 ( p_transaction_type => 'NEW'
10332 ,p_instance_id => l_rel_tbl(j).SUBJECT_ID
10333 ,p_new_instance_id => NULL
10334 ,p_vld_org_id => l_curr_instance_rec.last_vld_organization_id
10335 ,p_quantity => NULL
10336 ,p_party_account_id1 => NULL
10337 ,p_party_account_id2 => NULL
10338 ,p_transaction_date => p_txn_rec.transaction_date
10339 ,p_source_transaction_date => p_txn_rec.source_transaction_date
10340 ,p_order_line_id => l_order_line_id
10341 ,p_oks_txn_inst_tbl => p_oks_txn_inst_tbl
10342 ,x_return_status => x_return_status
10343 ,x_msg_count => x_msg_count
10344 ,x_msg_data => x_msg_data
10345 );
10346 --
10347 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
10348 l_msg_index := 1;
10349 l_msg_count := x_msg_count;
10350 WHILE l_msg_count > 0 LOOP
10351 x_msg_data := FND_MSG_PUB.GET
10352 ( l_msg_index,
10353 FND_API.G_FALSE
10354 );
10355 csi_gen_utility_pvt.put_line('MESSAGE DATA = '||x_msg_data);
10356 l_msg_index := l_msg_index + 1;
10357 l_msg_count := l_msg_count - 1;
10358 END LOOP;
10359 RAISE FND_API.G_EXC_ERROR;
10360 END IF;
10361 END IF; -- Added for bug 3973706
10362 -- 'IDC' is added as ELSE condition. If during un-expiry, install_date is also changed then
10363 -- OKS would have used that date when called with 'NEW'. In such cases, OKS need not be called
10364 -- with 'IDC'. Following call is exclusively for Install_date change only.
10365 ELSE -- Check for 'IDC'
10366 --Changed for Bug 11679952
10367 IF NVL(l_curr_instance_rec.install_date,fnd_api.g_miss_date) <>
10368 NVL(l_new_instance_rec.install_date,fnd_api.g_miss_date)
10369 AND((Nvl(p_instance_rec.CALL_CONTRACTS, FND_API.G_FALSE) = FND_API.G_TRUE)
10370 AND (p_txn_rec.transaction_type_id = 3)
10371 AND (nvl(p_txn_rec.source_group_ref, FND_API.G_MISS_CHAR) = 'WBADI'
10372 )
10373 OR nvl(p_txn_rec.source_group_ref, FND_API.G_MISS_CHAR) <> 'WBADI'
10374 )
10375 THEN
10376 csi_item_instance_pvt.Call_to_Contracts
10377 ( p_transaction_type => 'IDC'
10378 ,p_instance_id => l_rel_tbl(j).SUBJECT_ID
10379 ,p_new_instance_id => NULL
10380 ,p_vld_org_id => l_curr_instance_rec.last_vld_organization_id
10381 ,p_quantity => NULL
10382 ,p_party_account_id1 => NULL
10383 ,p_party_account_id2 => NULL
10384 ,p_transaction_date => p_txn_rec.transaction_date
10385 ,p_source_transaction_date => p_txn_rec.source_transaction_date
10386 ,p_order_line_id => l_order_line_id
10387 ,p_oks_txn_inst_tbl => p_oks_txn_inst_tbl
10388 ,x_return_status => x_return_status
10389 ,x_msg_count => x_msg_count
10390 ,x_msg_data => x_msg_data
10391 );
10392 --
10393 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
10394 l_msg_index := 1;
10395 l_msg_count := x_msg_count;
10396 WHILE l_msg_count > 0 LOOP
10397 x_msg_data := FND_MSG_PUB.GET
10398 ( l_msg_index,
10399 FND_API.G_FALSE
10400 );
10401 csi_gen_utility_pvt.put_line('MESSAGE DATA = '||x_msg_data);
10402 l_msg_index := l_msg_index + 1;
10403 l_msg_count := l_msg_count - 1;
10404 END LOOP;
10405 RAISE FND_API.G_EXC_ERROR;
10406 END IF;
10407 END IF;
10408 END IF;
10409 END IF;
10410 END IF; -- Internal party and call_contracts check
10411 -- End of modifications for Bug#2887590
10412 EXCEPTION
10413 WHEN PROCESS_NEXT THEN
10414 NULL;
10415 END;
10416 -- Calling eam API to log instance update event
10417 IF l_eam_item
10418 THEN
10419 IF l_ins_hist_id IS NOT NULL
10420 THEN
10421 l_instance_history_id:=l_ins_hist_id;
10422 ELSE
10423 l_instance_history_id:=l_csi_item_instance_h_id;
10424 END IF;
10425 eam_asset_log_pvt.instance_update_event
10426 (p_api_version => p_api_version
10427 ,p_init_msg_list => fnd_api.g_false
10428 ,p_commit => fnd_api.g_false
10429 ,p_validation_level => fnd_api.g_valid_level_full
10430 ,x_return_status => x_return_status
10431 ,x_msg_count => x_msg_count
10432 ,x_msg_data => x_msg_data
10433 ,p_instance_id => l_rel_tbl(j).subject_id
10434 ,p_ref_id => l_instance_history_id
10435 ,p_event_date => sysdate);
10436 IF NOT(x_return_status = fnd_api.g_ret_sts_success)
10437 THEN
10438 csi_gen_utility_pvt.put_line('Error from eam_asset_log_pvt.instance_update_event API');
10439 RAISE fnd_api.g_exc_error;
10440 END IF;
10441 END IF;
10442 -- Calling eam API to log instance update event
10443 END LOOP;
10444 --Start of:Added for Bug:5615169
10445 IF l_inst_hist_tbl_blk_ins.count > 0 THEN -- BUG#6203160
10446 --Do the ciih bulk insert
10447 --Convert PL/SQl table to column table
10448 build_inst_hist_rec_of_table ( p_inst_hist_tbl => l_inst_hist_tbl_blk_ins -- csi_datastructures_pub.instance_history_tbl
10449 ,p_inst_hist_rec_tab => l_inst_hist_rec_tab -- csi_item_instance_grp.instance_history_rec_tab
10450 );
10451 --Do the actual bulk Insert
10452 -- Modified OLD_LAST_OE_AGREEMENT_ID, NEW_LAST_OE_AGREEMENT_ID for the bug 6967129
10453 l_ciih_blk_ins_cnt := l_inst_hist_rec_tab.instance_history_id.count;
10454 --
10455 FORALL i in 1 .. l_ciih_blk_ins_cnt
10456 INSERT
10457 INTO CSI_ITEM_INSTANCES_H
10458 ( INSTANCE_HISTORY_ID,
10459 INSTANCE_ID,
10460 TRANSACTION_ID,
10461 OLD_INSTANCE_NUMBER,
10462 NEW_INSTANCE_NUMBER,
10463 OLD_EXTERNAL_REFERENCE,
10464 NEW_EXTERNAL_REFERENCE,
10465 OLD_INVENTORY_ITEM_ID,
10466 NEW_INVENTORY_ITEM_ID,
10467 OLD_INVENTORY_REVISION,
10468 NEW_INVENTORY_REVISION,
10469 OLD_INV_MASTER_ORGANIZATION_ID,
10470 NEW_INV_MASTER_ORGANIZATION_ID,
10471 OLD_SERIAL_NUMBER,
10472 NEW_SERIAL_NUMBER ,
10473 OLD_MFG_SERIAL_NUMBER_FLAG,
10474 NEW_MFG_SERIAL_NUMBER_FLAG,
10475 OLD_LOT_NUMBER,
10476 NEW_LOT_NUMBER,
10477 OLD_QUANTITY,
10478 NEW_QUANTITY,
10479 OLD_UNIT_OF_MEASURE,
10480 NEW_UNIT_OF_MEASURE,
10481 OLD_ACCOUNTING_CLASS_CODE,
10482 NEW_ACCOUNTING_CLASS_CODE,
10483 OLD_INSTANCE_CONDITION_ID,
10484 NEW_INSTANCE_CONDITION_ID,
10485 OLD_INSTANCE_STATUS_ID,
10486 NEW_INSTANCE_STATUS_ID,
10487 OLD_CUSTOMER_VIEW_FLAG,
10488 NEW_CUSTOMER_VIEW_FLAG,
10489 OLD_MERCHANT_VIEW_FLAG,
10490 NEW_MERCHANT_VIEW_FLAG,
10491 OLD_SELLABLE_FLAG,
10492 NEW_SELLABLE_FLAG,
10493 OLD_SYSTEM_ID,
10494 NEW_SYSTEM_ID,
10495 OLD_INSTANCE_TYPE_CODE,
10496 NEW_INSTANCE_TYPE_CODE,
10497 OLD_ACTIVE_START_DATE,
10498 NEW_ACTIVE_START_DATE,
10499 OLD_ACTIVE_END_DATE,
10500 NEW_ACTIVE_END_DATE,
10501 OLD_LOCATION_TYPE_CODE,
10502 NEW_LOCATION_TYPE_CODE,
10503 OLD_LOCATION_ID,
10504 NEW_LOCATION_ID,
10505 OLD_INV_ORGANIZATION_ID,
10506 NEW_INV_ORGANIZATION_ID,
10507 OLD_INV_SUBINVENTORY_NAME,
10508 NEW_INV_SUBINVENTORY_NAME,
10509 OLD_INV_LOCATOR_ID,
10510 NEW_INV_LOCATOR_ID,
10511 OLD_PA_PROJECT_ID,
10512 NEW_PA_PROJECT_ID,
10513 OLD_PA_PROJECT_TASK_ID,
10514 NEW_PA_PROJECT_TASK_ID,
10515 OLD_IN_TRANSIT_ORDER_LINE_ID,
10516 NEW_IN_TRANSIT_ORDER_LINE_ID,
10517 OLD_WIP_JOB_ID,
10518 NEW_WIP_JOB_ID,
10519 OLD_PO_ORDER_LINE_ID,
10520 NEW_PO_ORDER_LINE_ID,
10521 OLD_COMPLETENESS_FLAG,
10522 NEW_COMPLETENESS_FLAG,
10523 FULL_DUMP_FLAG,
10524 OLD_CONTEXT,
10525 NEW_CONTEXT,
10526 OLD_ATTRIBUTE1,
10527 NEW_ATTRIBUTE1,
10528 OLD_ATTRIBUTE2,
10529 NEW_ATTRIBUTE2,
10530 OLD_ATTRIBUTE3,
10531 NEW_ATTRIBUTE3,
10532 OLD_ATTRIBUTE4,
10533 NEW_ATTRIBUTE4,
10534 OLD_ATTRIBUTE5,
10535 NEW_ATTRIBUTE5,
10536 OLD_ATTRIBUTE6,
10537 NEW_ATTRIBUTE6,
10538 OLD_ATTRIBUTE7,
10539 NEW_ATTRIBUTE7,
10540 OLD_ATTRIBUTE8,
10541 NEW_ATTRIBUTE8,
10542 OLD_ATTRIBUTE9,
10543 NEW_ATTRIBUTE9,
10544 OLD_ATTRIBUTE10,
10545 NEW_ATTRIBUTE10,
10546 OLD_ATTRIBUTE11,
10547 NEW_ATTRIBUTE11,
10548 OLD_ATTRIBUTE12,
10549 NEW_ATTRIBUTE12,
10550 OLD_ATTRIBUTE13,
10551 NEW_ATTRIBUTE13,
10552 OLD_ATTRIBUTE14,
10553 NEW_ATTRIBUTE14,
10554 OLD_ATTRIBUTE15,
10555 NEW_ATTRIBUTE15,
10556 CREATED_BY,
10557 CREATION_DATE,
10558 LAST_UPDATED_BY,
10559 LAST_UPDATE_DATE,
10560 LAST_UPDATE_LOGIN,
10561 OBJECT_VERSION_NUMBER,
10562 OLD_INST_LOC_TYPE_CODE,
10563 NEW_INST_LOC_TYPE_CODE,
10564 OLD_INST_LOC_ID,
10565 NEW_INST_LOC_ID,
10566 OLD_INST_USAGE_CODE,
10567 NEW_INST_USAGE_CODE,
10568 OLD_last_vld_organization_id,
10569 NEW_last_vld_organization_id,
10570 OLD_CONFIG_INST_REV_NUM ,
10571 NEW_CONFIG_INST_REV_NUM ,
10572 OLD_CONFIG_VALID_STATUS ,
10573 NEW_CONFIG_VALID_STATUS ,
10574 OLD_INSTANCE_DESCRIPTION ,
10575 NEW_INSTANCE_DESCRIPTION ,
10576 OLD_INSTALL_DATE ,
10577 NEW_INSTALL_DATE ,
10578 OLD_RETURN_BY_DATE ,
10579 NEW_RETURN_BY_DATE ,
10580 OLD_ACTUAL_RETURN_DATE ,
10581 NEW_ACTUAL_RETURN_DATE ,
10582 OLD_OE_AGREEMENT_ID ,
10583 NEW_OE_AGREEMENT_ID ,
10584 OLD_LAST_OE_ORDER_LINE_ID,
10585 NEW_LAST_OE_ORDER_LINE_ID,
10586 OLD_LAST_OE_RMA_LINE_ID,
10587 NEW_LAST_OE_RMA_LINE_ID,
10588 OLD_LAST_WIP_JOB_ID,
10589 NEW_LAST_WIP_JOB_ID,
10590 OLD_LAST_PO_PO_LINE_ID,
10591 NEW_LAST_PO_PO_LINE_ID,
10592 OLD_LAST_PA_PROJECT_ID,
10593 NEW_LAST_PA_PROJECT_ID,
10594 OLD_LAST_PA_TASK_ID,
10595 NEW_LAST_PA_TASK_ID,
10596 OLD_LAST_TXN_LINE_DETAIL_ID,
10597 NEW_LAST_TXN_LINE_DETAIL_ID,
10598 OLD_LAST_OE_PO_NUMBER,
10599 NEW_LAST_OE_PO_NUMBER,
10600 --Start of eam integration changes--
10601 OLD_NETWORK_ASSET_FLAG,
10602 NEW_NETWORK_ASSET_FLAG,
10603 OLD_MAINTAINABLE_FLAG,
10604 NEW_MAINTAINABLE_FLAG,
10605 OLD_PN_LOCATION_ID,
10606 NEW_PN_LOCATION_ID,
10607 OLD_ASSET_CRITICALITY_CODE,
10608 NEW_ASSET_CRITICALITY_CODE,
10609 OLD_CATEGORY_ID,
10610 NEW_CATEGORY_ID,
10611 OLD_EQUIPMENT_GEN_OBJECT_ID,
10612 NEW_EQUIPMENT_GEN_OBJECT_ID,
10613 OLD_INSTANTIATION_FLAG,
10614 NEW_INSTANTIATION_FLAG,
10615 OLD_LINEAR_LOCATION_ID,
10616 NEW_LINEAR_LOCATION_ID,
10617 OLD_OPERATIONAL_LOG_FLAG,
10618 NEW_OPERATIONAL_LOG_FLAG,
10619 OLD_CHECKIN_STATUS,
10620 NEW_CHECKIN_STATUS,
10621 OLD_SUPPLIER_WARRANTY_EXP_DATE,
10622 NEW_SUPPLIER_WARRANTY_EXP_DATE,
10623 OLD_ATTRIBUTE16,
10624 NEW_ATTRIBUTE16,
10625 OLD_ATTRIBUTE17,
10626 NEW_ATTRIBUTE17,
10627 OLD_ATTRIBUTE18,
10628 NEW_ATTRIBUTE18,
10629 OLD_ATTRIBUTE19,
10630 NEW_ATTRIBUTE19,
10631 OLD_ATTRIBUTE20,
10632 NEW_ATTRIBUTE20,
10633 OLD_ATTRIBUTE21,
10634 NEW_ATTRIBUTE21,
10635 OLD_ATTRIBUTE22,
10636 NEW_ATTRIBUTE22,
10637 OLD_ATTRIBUTE23,
10638 NEW_ATTRIBUTE23,
10639 OLD_ATTRIBUTE24,
10640 NEW_ATTRIBUTE24,
10641 OLD_ATTRIBUTE25,
10642 NEW_ATTRIBUTE25,
10643 OLD_ATTRIBUTE26,
10644 NEW_ATTRIBUTE26,
10645 OLD_ATTRIBUTE27,
10646 NEW_ATTRIBUTE27,
10647 OLD_ATTRIBUTE28,
10648 NEW_ATTRIBUTE28,
10649 OLD_ATTRIBUTE29,
10650 NEW_ATTRIBUTE29,
10651 OLD_ATTRIBUTE30,
10652 NEW_ATTRIBUTE30,
10653 --End of eam integration changes--
10654 --Addition of columns for FA Integration
10655 OLD_PAYABLES_UNIT_PRICE,
10656 NEW_PAYABLES_UNIT_PRICE,
10657 OLD_PAYABLES_CURRENCY_CODE,
10658 NEW_PAYABLES_CURRENCY_CODE,
10659 OLD_PURCHASE_UNIT_PRICE,
10660 NEW_PURCHASE_UNIT_PRICE,
10661 OLD_PURCHASE_CURRENCY_CODE,
10662 NEW_PURCHASE_CURRENCY_CODE,
10663 OLD_SALES_UNIT_PRICE,
10664 NEW_SALES_UNIT_PRICE,
10665 OLD_SALES_CURRENCY_CODE,
10666 NEW_SALES_CURRENCY_CODE,
10667 OLD_OPERATIONAL_STATUS_CODE,
10668 NEW_OPERATIONAL_STATUS_CODE
10669 --End addition of columns for FA Integration
10670 )
10671 VALUES
10672 (
10673 l_inst_hist_rec_tab.INSTANCE_HISTORY_ID(i),
10674 decode( l_inst_hist_rec_tab.INSTANCE_ID(i), FND_API.G_MISS_NUM, NULL, l_inst_hist_rec_tab.INSTANCE_ID(i)),
10675 decode( l_inst_hist_rec_tab.TRANSACTION_ID(i), FND_API.G_MISS_NUM, NULL, l_inst_hist_rec_tab.TRANSACTION_ID(i)),
10676 decode( l_inst_hist_rec_tab.OLD_INSTANCE_NUMBER(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_INSTANCE_NUMBER(i)),
10677 decode( l_inst_hist_rec_tab.NEW_INSTANCE_NUMBER(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_INSTANCE_NUMBER(i)),
10678 decode( l_inst_hist_rec_tab.OLD_EXTERNAL_REFERENCE(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_EXTERNAL_REFERENCE(i)),
10679 decode( l_inst_hist_rec_tab.NEW_EXTERNAL_REFERENCE(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_EXTERNAL_REFERENCE(i)),
10680 decode( l_inst_hist_rec_tab.OLD_INVENTORY_ITEM_ID(i), FND_API.G_MISS_NUM, NULL, l_inst_hist_rec_tab.OLD_INVENTORY_ITEM_ID(i)),
10681 decode( l_inst_hist_rec_tab.NEW_INVENTORY_ITEM_ID(i), FND_API.G_MISS_NUM, NULL, l_inst_hist_rec_tab.NEW_INVENTORY_ITEM_ID(i)),
10682 decode( l_inst_hist_rec_tab.OLD_INVENTORY_REVISION(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_INVENTORY_REVISION(i)),
10683 decode( l_inst_hist_rec_tab.NEW_INVENTORY_REVISION(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_INVENTORY_REVISION(i)),
10684 decode( l_inst_hist_rec_tab.OLD_INV_MASTER_ORG_ID(i), FND_API.G_MISS_NUM, NULL, l_inst_hist_rec_tab.OLD_INV_MASTER_ORG_ID(i)),
10685 decode( l_inst_hist_rec_tab.NEW_INV_MASTER_ORG_ID(i), FND_API.G_MISS_NUM, NULL, l_inst_hist_rec_tab.NEW_INV_MASTER_ORG_ID(i)),
10686 decode( l_inst_hist_rec_tab.OLD_SERIAL_NUMBER(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_SERIAL_NUMBER(i)),
10687 decode( l_inst_hist_rec_tab.NEW_SERIAL_NUMBER(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_SERIAL_NUMBER(i)),
10688 decode( l_inst_hist_rec_tab.OLD_MFG_SERIAL_NUMBER_FLAG(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_MFG_SERIAL_NUMBER_FLAG(i)),
10689 decode( l_inst_hist_rec_tab.NEW_MFG_SERIAL_NUMBER_FLAG(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_MFG_SERIAL_NUMBER_FLAG(i)),
10690 decode( l_inst_hist_rec_tab.OLD_LOT_NUMBER(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_LOT_NUMBER(i)),
10691 decode( l_inst_hist_rec_tab.NEW_LOT_NUMBER(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_LOT_NUMBER(i)),
10692 decode( l_inst_hist_rec_tab.OLD_QUANTITY(i), FND_API.G_MISS_NUM, NULL, l_inst_hist_rec_tab.OLD_QUANTITY(i)),
10693 decode( l_inst_hist_rec_tab.NEW_QUANTITY(i), FND_API.G_MISS_NUM, NULL, l_inst_hist_rec_tab.NEW_QUANTITY(i)),
10694 decode( l_inst_hist_rec_tab.OLD_UNIT_OF_MEASURE(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_UNIT_OF_MEASURE(i)),
10695 decode( l_inst_hist_rec_tab.NEW_UNIT_OF_MEASURE(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_UNIT_OF_MEASURE(i)),
10696 decode( l_inst_hist_rec_tab.OLD_ACCOUNTING_CLASS_CODE(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ACCOUNTING_CLASS_CODE(i)),
10697 decode( l_inst_hist_rec_tab.NEW_ACCOUNTING_CLASS_CODE(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ACCOUNTING_CLASS_CODE(i)),
10698 decode( l_inst_hist_rec_tab.OLD_INSTANCE_CONDITION_ID(i), FND_API.G_MISS_NUM, NULL, l_inst_hist_rec_tab.OLD_INSTANCE_CONDITION_ID(i)),
10699 decode( l_inst_hist_rec_tab.NEW_INSTANCE_CONDITION_ID(i), FND_API.G_MISS_NUM, NULL, l_inst_hist_rec_tab.NEW_INSTANCE_CONDITION_ID(i)),
10700 decode( l_inst_hist_rec_tab.OLD_INSTANCE_STATUS_ID(i), FND_API.G_MISS_NUM, NULL, l_inst_hist_rec_tab.OLD_INSTANCE_STATUS_ID(i)),
10701 decode( l_inst_hist_rec_tab.NEW_INSTANCE_STATUS_ID(i), FND_API.G_MISS_NUM, NULL, l_inst_hist_rec_tab.NEW_INSTANCE_STATUS_ID(i)),
10702 decode( l_inst_hist_rec_tab.OLD_CUSTOMER_VIEW_FLAG(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_CUSTOMER_VIEW_FLAG(i)),
10703 decode( l_inst_hist_rec_tab.NEW_CUSTOMER_VIEW_FLAG(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_CUSTOMER_VIEW_FLAG(i)),
10704 decode( l_inst_hist_rec_tab.OLD_MERCHANT_VIEW_FLAG(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_MERCHANT_VIEW_FLAG(i)),
10705 decode( l_inst_hist_rec_tab.NEW_MERCHANT_VIEW_FLAG(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_MERCHANT_VIEW_FLAG(i)),
10706 decode( l_inst_hist_rec_tab.OLD_SELLABLE_FLAG(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_SELLABLE_FLAG(i)),
10707 decode( l_inst_hist_rec_tab.NEW_SELLABLE_FLAG(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_SELLABLE_FLAG(i)),
10708 decode( l_inst_hist_rec_tab.OLD_SYSTEM_ID(i), FND_API.G_MISS_NUM, NULL, l_inst_hist_rec_tab.OLD_SYSTEM_ID(i)),
10709 decode( l_inst_hist_rec_tab.NEW_SYSTEM_ID(i), FND_API.G_MISS_NUM, NULL, l_inst_hist_rec_tab.NEW_SYSTEM_ID(i)),
10710 decode( l_inst_hist_rec_tab.OLD_INSTANCE_TYPE_CODE(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_INSTANCE_TYPE_CODE(i)),
10711 decode( l_inst_hist_rec_tab.NEW_INSTANCE_TYPE_CODE(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_INSTANCE_TYPE_CODE(i)),
10712 decode( l_inst_hist_rec_tab.OLD_ACTIVE_START_DATE(i), FND_API.G_MISS_DATE, TO_DATE(NULL), l_inst_hist_rec_tab.OLD_ACTIVE_START_DATE(i)),
10713 decode( l_inst_hist_rec_tab.NEW_ACTIVE_START_DATE(i), FND_API.G_MISS_DATE, TO_DATE(NULL), l_inst_hist_rec_tab.NEW_ACTIVE_START_DATE(i)),
10714 decode( l_inst_hist_rec_tab.OLD_ACTIVE_END_DATE(i), FND_API.G_MISS_DATE, TO_DATE(NULL), l_inst_hist_rec_tab.OLD_ACTIVE_END_DATE(i)),
10715 decode( l_inst_hist_rec_tab.NEW_ACTIVE_END_DATE(i), FND_API.G_MISS_DATE, TO_DATE(NULL), l_inst_hist_rec_tab.NEW_ACTIVE_END_DATE(i)),
10716 decode( l_inst_hist_rec_tab.OLD_LOCATION_TYPE_CODE(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_LOCATION_TYPE_CODE(i)),
10717 decode( l_inst_hist_rec_tab.NEW_LOCATION_TYPE_CODE(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_LOCATION_TYPE_CODE(i)),
10718 decode( l_inst_hist_rec_tab.OLD_LOCATION_ID(i), FND_API.G_MISS_NUM, NULL, l_inst_hist_rec_tab.OLD_LOCATION_ID(i)),
10719 decode( l_inst_hist_rec_tab.NEW_LOCATION_ID(i), FND_API.G_MISS_NUM, NULL, l_inst_hist_rec_tab.NEW_LOCATION_ID(i)),
10720 decode( l_inst_hist_rec_tab.OLD_INV_ORGANIZATION_ID(i), FND_API.G_MISS_NUM, NULL, l_inst_hist_rec_tab.OLD_INV_ORGANIZATION_ID(i)),
10721 decode( l_inst_hist_rec_tab.NEW_INV_ORGANIZATION_ID(i), FND_API.G_MISS_NUM, NULL, l_inst_hist_rec_tab.NEW_INV_ORGANIZATION_ID(i)),
10722 decode( l_inst_hist_rec_tab.OLD_INV_SUBINVENTORY_NAME(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_INV_SUBINVENTORY_NAME(i)),
10723 decode( l_inst_hist_rec_tab.NEW_INV_SUBINVENTORY_NAME(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_INV_SUBINVENTORY_NAME(i)),
10724 decode( l_inst_hist_rec_tab.OLD_INV_LOCATOR_ID(i), FND_API.G_MISS_NUM, NULL, l_inst_hist_rec_tab.OLD_INV_LOCATOR_ID(i)),
10725 decode( l_inst_hist_rec_tab.NEW_INV_LOCATOR_ID(i), FND_API.G_MISS_NUM, NULL, l_inst_hist_rec_tab.NEW_INV_LOCATOR_ID(i)),
10726 decode( l_inst_hist_rec_tab.OLD_PA_PROJECT_ID(i), FND_API.G_MISS_NUM, NULL, l_inst_hist_rec_tab.OLD_PA_PROJECT_ID(i)),
10727 decode( l_inst_hist_rec_tab.NEW_PA_PROJECT_ID(i), FND_API.G_MISS_NUM, NULL, l_inst_hist_rec_tab.NEW_PA_PROJECT_ID(i)),
10728 decode( l_inst_hist_rec_tab.OLD_PA_PROJECT_TASK_ID(i), FND_API.G_MISS_NUM, NULL, l_inst_hist_rec_tab.OLD_PA_PROJECT_TASK_ID(i)),
10729 decode( l_inst_hist_rec_tab.NEW_PA_PROJECT_TASK_ID(i), FND_API.G_MISS_NUM, NULL, l_inst_hist_rec_tab.NEW_PA_PROJECT_TASK_ID(i)),
10730 decode( l_inst_hist_rec_tab.OLD_IN_TRANSIT_ORDER_LINE_ID(i), FND_API.G_MISS_NUM, NULL, l_inst_hist_rec_tab.OLD_IN_TRANSIT_ORDER_LINE_ID(i)),
10731 decode( l_inst_hist_rec_tab.NEW_IN_TRANSIT_ORDER_LINE_ID(i), FND_API.G_MISS_NUM, NULL, l_inst_hist_rec_tab.NEW_IN_TRANSIT_ORDER_LINE_ID(i)),
10732 decode( l_inst_hist_rec_tab.OLD_WIP_JOB_ID(i), FND_API.G_MISS_NUM, NULL, l_inst_hist_rec_tab.OLD_WIP_JOB_ID(i)),
10733 decode( l_inst_hist_rec_tab.NEW_WIP_JOB_ID(i), FND_API.G_MISS_NUM, NULL, l_inst_hist_rec_tab.NEW_WIP_JOB_ID(i)),
10734 decode( l_inst_hist_rec_tab.OLD_PO_ORDER_LINE_ID(i), FND_API.G_MISS_NUM, NULL, l_inst_hist_rec_tab.OLD_PO_ORDER_LINE_ID(i)),
10735 decode( l_inst_hist_rec_tab.NEW_PO_ORDER_LINE_ID(i), FND_API.G_MISS_NUM, NULL, l_inst_hist_rec_tab.NEW_PO_ORDER_LINE_ID(i)),
10736 decode( l_inst_hist_rec_tab.OLD_COMPLETENESS_FLAG(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_COMPLETENESS_FLAG(i)),
10737 decode( l_inst_hist_rec_tab.NEW_COMPLETENESS_FLAG(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_COMPLETENESS_FLAG(i)),
10738 'N',
10739 decode( l_inst_hist_rec_tab.OLD_CONTEXT(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_CONTEXT(i)),
10740 decode( l_inst_hist_rec_tab.NEW_CONTEXT(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_CONTEXT(i)),
10741 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE1(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE1(i)),
10742 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE1(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE1(i)),
10743 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE2(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE2(i)),
10744 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE2(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE2(i)),
10745 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE3(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE3(i)),
10746 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE3(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE3(i)),
10747 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE4(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE4(i)),
10748 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE4(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE4(i)),
10749 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE5(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE5(i)),
10750 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE5(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE5(i)),
10751 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE6(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE6(i)),
10752 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE6(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE6(i)),
10753 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE7(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE7(i)),
10754 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE7(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE7(i)),
10755 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE8(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE8(i)),
10756 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE8(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE8(i)),
10757 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE9(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE9(i)),
10758 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE9(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE9(i)),
10759 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE10(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE10(i)),
10760 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE10(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE10(i)),
10761 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE11(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE11(i)),
10762 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE11(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE11(i)),
10763 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE12(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE12(i)),
10764 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE12(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE12(i)),
10765 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE13(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE13(i)),
10766 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE13(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE13(i)),
10767 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE14(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE14(i)),
10768 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE14(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE14(i)),
10769 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE15(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE15(i)),
10770 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE15(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE15(i)),
10771 l_user_id,
10772 SYSDATE,
10773 l_user_id,
10774 SYSDATE,
10775 l_login_id,
10776 1,
10777 decode( l_inst_hist_rec_tab.OLD_INSTALL_LOCATION_TYPE_CODE(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_INSTALL_LOCATION_TYPE_CODE(i)),
10778 decode( l_inst_hist_rec_tab.NEW_INSTALL_LOCATION_TYPE_CODE(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_INSTALL_LOCATION_TYPE_CODE(i)),
10779 decode( l_inst_hist_rec_tab.OLD_INSTALL_LOCATION_ID(i), FND_API.G_MISS_NUM, NULL, l_inst_hist_rec_tab.OLD_INSTALL_LOCATION_ID(i)),
10780 decode( l_inst_hist_rec_tab.NEW_INSTALL_LOCATION_ID(i), FND_API.G_MISS_NUM, NULL, l_inst_hist_rec_tab.NEW_INSTALL_LOCATION_ID(i)),
10781 decode( l_inst_hist_rec_tab.OLD_INSTANCE_USAGE_CODE(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_INSTANCE_USAGE_CODE(i)),
10782 decode( l_inst_hist_rec_tab.NEW_INSTANCE_USAGE_CODE(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_INSTANCE_USAGE_CODE(i)),
10783 decode( l_inst_hist_rec_tab.OLD_last_vld_organization_id(i), FND_API.G_MISS_NUM, NULL, l_inst_hist_rec_tab.OLD_last_vld_organization_id(i)),
10784 decode( l_inst_hist_rec_tab.NEW_last_vld_organization_id(i), FND_API.G_MISS_NUM, NULL, l_inst_hist_rec_tab.new_last_vld_organization_id(i)),
10785 decode( l_inst_hist_rec_tab.OLD_CONFIG_INST_REV_NUM(i), FND_API.G_MISS_NUM, NULL, l_inst_hist_rec_tab.OLD_CONFIG_INST_REV_NUM(i)),
10786 decode( l_inst_hist_rec_tab.NEW_CONFIG_INST_REV_NUM(i), FND_API.G_MISS_NUM, NULL, l_inst_hist_rec_tab.NEW_CONFIG_INST_REV_NUM(i)),
10787 decode( l_inst_hist_rec_tab.OLD_CONFIG_VALID_STATUS(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_CONFIG_VALID_STATUS(i)),
10788 decode( l_inst_hist_rec_tab.NEW_CONFIG_VALID_STATUS(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_CONFIG_VALID_STATUS(i)),
10789 decode( l_inst_hist_rec_tab.OLD_INSTANCE_DESCRIPTION(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_INSTANCE_DESCRIPTION(i)),
10790 decode( l_inst_hist_rec_tab.NEW_INSTANCE_DESCRIPTION(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_INSTANCE_DESCRIPTION(i)),
10791
10792 decode( l_inst_hist_rec_tab.OLD_INSTALL_DATE(i),FND_API.G_MISS_DATE, NULL, l_inst_hist_rec_tab.OLD_INSTALL_DATE(i)) ,
10793 decode(l_inst_hist_rec_tab.NEW_INSTALL_DATE(i),FND_API.G_MISS_DATE, NULL, l_inst_hist_rec_tab.NEW_INSTALL_DATE(i)) ,
10794 decode(l_inst_hist_rec_tab.OLD_RETURN_BY_DATE(i) ,FND_API.G_MISS_DATE,NULL, l_inst_hist_rec_tab.OLD_RETURN_BY_DATE(i)),
10795 decode(l_inst_hist_rec_tab.NEW_RETURN_BY_DATE(i) ,FND_API.G_MISS_DATE,NULL,l_inst_hist_rec_tab.NEW_RETURN_BY_DATE(i)),
10796 decode(l_inst_hist_rec_tab.OLD_ACTUAL_RETURN_DATE(i) ,FND_API.G_MISS_DATE,NULL,l_inst_hist_rec_tab.OLD_ACTUAL_RETURN_DATE(i)),
10797 decode(l_inst_hist_rec_tab.NEW_ACTUAL_RETURN_DATE(i) ,FND_API.G_MISS_DATE,NULL,l_inst_hist_rec_tab.NEW_ACTUAL_RETURN_DATE(i)),
10798
10799 decode( l_inst_hist_rec_tab.OLD_LAST_OE_AGREEMENT_ID(i),FND_API.G_MISS_NUM, NULL,l_inst_hist_rec_tab.OLD_LAST_OE_AGREEMENT_ID(i)),
10800 decode( l_inst_hist_rec_tab.NEW_LAST_OE_AGREEMENT_ID(i),FND_API.G_MISS_NUM, NULL,l_inst_hist_rec_tab.NEW_LAST_OE_AGREEMENT_ID(i)),
10801
10802 decode(l_inst_hist_rec_tab.OLD_LAST_OE_ORDER_LINE_ID(i) ,FND_API.G_MISS_NUM,NULL,l_inst_hist_rec_tab.OLD_LAST_OE_ORDER_LINE_ID(i)),
10803 decode(l_inst_hist_rec_tab.NEW_LAST_OE_ORDER_LINE_ID(i) ,FND_API.G_MISS_NUM,NULL,l_inst_hist_rec_tab.NEW_LAST_OE_ORDER_LINE_ID(i)),
10804 decode(l_inst_hist_rec_tab.OLD_LAST_OE_RMA_LINE_ID(i) ,FND_API.G_MISS_NUM,NULL,l_inst_hist_rec_tab.OLD_LAST_OE_RMA_LINE_ID(i)),
10805 decode(l_inst_hist_rec_tab.NEW_LAST_OE_RMA_LINE_ID(i) ,FND_API.G_MISS_NUM,NULL,l_inst_hist_rec_tab.NEW_LAST_OE_RMA_LINE_ID(i)),
10806 decode(l_inst_hist_rec_tab.OLD_LAST_WIP_JOB_ID(i) ,FND_API.G_MISS_NUM,NULL,l_inst_hist_rec_tab.OLD_LAST_WIP_JOB_ID(i)),
10807 decode(l_inst_hist_rec_tab.NEW_LAST_WIP_JOB_ID(i) ,FND_API.G_MISS_NUM,NULL,l_inst_hist_rec_tab.NEW_LAST_WIP_JOB_ID(i)),
10808 decode(l_inst_hist_rec_tab.OLD_LAST_PO_PO_LINE_ID(i) ,FND_API.G_MISS_NUM,NULL,l_inst_hist_rec_tab.OLD_LAST_PO_PO_LINE_ID(i)),
10809 decode(l_inst_hist_rec_tab.NEW_LAST_PO_PO_LINE_ID(i) ,FND_API.G_MISS_NUM,NULL,l_inst_hist_rec_tab.NEW_LAST_PO_PO_LINE_ID(i)),
10810 decode(l_inst_hist_rec_tab.OLD_LAST_PA_PROJECT_ID(i) ,FND_API.G_MISS_NUM,NULL,l_inst_hist_rec_tab.OLD_LAST_PA_PROJECT_ID(i)),
10811 decode(l_inst_hist_rec_tab.NEW_LAST_PA_PROJECT_ID(i) ,FND_API.G_MISS_NUM,NULL,l_inst_hist_rec_tab.NEW_LAST_PA_PROJECT_ID(i)),
10812 decode(l_inst_hist_rec_tab.OLD_LAST_PA_TASK_ID(i) ,FND_API.G_MISS_NUM,NULL,l_inst_hist_rec_tab.OLD_LAST_PA_TASK_ID(i)),
10813 decode(l_inst_hist_rec_tab.NEW_LAST_PA_TASK_ID(i) ,FND_API.G_MISS_NUM,NULL,l_inst_hist_rec_tab.NEW_LAST_PA_TASK_ID(i)),
10814 decode(l_inst_hist_rec_tab.OLD_LAST_TXN_LINE_DETAIL_ID(i) ,FND_API.G_MISS_NUM,NULL,l_inst_hist_rec_tab.OLD_LAST_TXN_LINE_DETAIL_ID(i)),
10815 decode(l_inst_hist_rec_tab.NEW_LAST_TXN_LINE_DETAIL_ID(i) ,FND_API.G_MISS_NUM,NULL,l_inst_hist_rec_tab.NEW_LAST_TXN_LINE_DETAIL_ID(i)),
10816 decode(l_inst_hist_rec_tab.OLD_LAST_OE_PO_NUMBER(i) ,FND_API.G_MISS_CHAR,NULL,l_inst_hist_rec_tab.OLD_LAST_OE_PO_NUMBER(i)),
10817 decode(l_inst_hist_rec_tab.NEW_LAST_OE_PO_NUMBER(i) ,FND_API.G_MISS_CHAR,NULL,l_inst_hist_rec_tab.NEW_LAST_OE_PO_NUMBER(i)),
10818 --Start of eam integration changes--
10819 decode( l_inst_hist_rec_tab.OLD_NETWORK_ASSET_FLAG(i) ,FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_NETWORK_ASSET_FLAG(i)),
10820 decode( l_inst_hist_rec_tab.NEW_NETWORK_ASSET_FLAG(i) ,FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_NETWORK_ASSET_FLAG(i)),
10821 decode( l_inst_hist_rec_tab.OLD_MAINTAINABLE_FLAG(i) ,FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_MAINTAINABLE_FLAG(i)),
10822 decode( l_inst_hist_rec_tab.NEW_MAINTAINABLE_FLAG(i) ,FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_MAINTAINABLE_FLAG(i)),
10823 decode( l_inst_hist_rec_tab.OLD_PN_LOCATION_ID(i) ,FND_API.G_MISS_NUM, NULL, l_inst_hist_rec_tab.OLD_PN_LOCATION_ID(i)),
10824 decode( l_inst_hist_rec_tab.NEW_PN_LOCATION_ID(i) ,FND_API.G_MISS_NUM, NULL, l_inst_hist_rec_tab.NEW_PN_LOCATION_ID(i)),
10825 decode( l_inst_hist_rec_tab.OLD_ASSET_CRITICALITY_CODE(i) ,FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ASSET_CRITICALITY_CODE(i)),
10826 decode( l_inst_hist_rec_tab.NEW_ASSET_CRITICALITY_CODE(i) ,FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ASSET_CRITICALITY_CODE(i)),
10827 decode( l_inst_hist_rec_tab.OLD_CATEGORY_ID(i) ,FND_API.G_MISS_NUM, NULL, l_inst_hist_rec_tab.OLD_CATEGORY_ID(i)),
10828 decode( l_inst_hist_rec_tab.NEW_CATEGORY_ID(i) ,FND_API.G_MISS_NUM, NULL, l_inst_hist_rec_tab.NEW_CATEGORY_ID(i)),
10829 decode( l_inst_hist_rec_tab.OLD_EQUIPMENT_GEN_OBJECT_ID(i) ,FND_API.G_MISS_NUM, NULL, l_inst_hist_rec_tab.OLD_EQUIPMENT_GEN_OBJECT_ID(i)),
10830 decode( l_inst_hist_rec_tab.NEW_EQUIPMENT_GEN_OBJECT_ID(i) ,FND_API.G_MISS_NUM, NULL, l_inst_hist_rec_tab.NEW_EQUIPMENT_GEN_OBJECT_ID(i)),
10831 decode( l_inst_hist_rec_tab.OLD_INSTANTIATION_FLAG(i) ,FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_INSTANTIATION_FLAG(i)),
10832 decode( l_inst_hist_rec_tab.NEW_INSTANTIATION_FLAG(i) ,FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_INSTANTIATION_FLAG(i)),
10833 decode( l_inst_hist_rec_tab.OLD_LINEAR_LOCATION_ID(i) ,FND_API.G_MISS_NUM, NULL, l_inst_hist_rec_tab.OLD_LINEAR_LOCATION_ID(i)),
10834 decode( l_inst_hist_rec_tab.NEW_LINEAR_LOCATION_ID(i) ,FND_API.G_MISS_NUM, NULL, l_inst_hist_rec_tab.NEW_LINEAR_LOCATION_ID(i)),
10835 decode( l_inst_hist_rec_tab.OLD_OPERATIONAL_LOG_FLAG(i) ,FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_OPERATIONAL_LOG_FLAG(i)),
10836 decode( l_inst_hist_rec_tab.NEW_OPERATIONAL_LOG_FLAG(i) ,FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_OPERATIONAL_LOG_FLAG(i)),
10837 decode( l_inst_hist_rec_tab.OLD_CHECKIN_STATUS(i) ,FND_API.G_MISS_NUM, NULL, l_inst_hist_rec_tab.OLD_CHECKIN_STATUS(i)),
10838 decode( l_inst_hist_rec_tab.NEW_CHECKIN_STATUS(i) ,FND_API.G_MISS_NUM, NULL, l_inst_hist_rec_tab.NEW_CHECKIN_STATUS(i)),
10839 decode( l_inst_hist_rec_tab.old_supplier_warranty_exp_date(i) ,FND_API.G_MISS_DATE, TO_DATE(NULL), l_inst_hist_rec_tab.old_supplier_warranty_exp_date(i)),
10840 decode( l_inst_hist_rec_tab.new_supplier_warranty_exp_date(i) ,FND_API.G_MISS_DATE, TO_DATE(NULL), l_inst_hist_rec_tab.new_supplier_warranty_exp_date(i)),
10841 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE16(i) ,FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE16(i)),
10842 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE16(i) ,FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE16(i)),
10843 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE17(i) ,FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE17(i)),
10844 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE17(i) ,FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE17(i)),
10845 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE18(i) ,FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE18(i)),
10846 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE18(i) ,FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE18(i)),
10847 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE19(i) ,FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE19(i)),
10848 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE19(i) ,FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE19(i)),
10849 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE20(i) ,FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE20(i)),
10850 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE20(i) ,FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE20(i)),
10851 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE21(i) ,FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE21(i)),
10852 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE21(i) ,FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE21(i)),
10853 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE22(i) ,FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE22(i)),
10854 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE22(i) ,FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE22(i)),
10855 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE23(i) ,FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE23(i)),
10856 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE23(i) ,FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE23(i)),
10857 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE24(i) ,FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE24(i)),
10858 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE24(i) ,FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE24(i)),
10859 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE25(i) ,FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE25(i)),
10860 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE25(i) ,FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE25(i)),
10861 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE26(i) ,FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE26(i)),
10862 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE26(i) ,FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE26(i)),
10863 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE27(i) ,FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE27(i)),
10864 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE27(i) ,FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE27(i)),
10865 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE28(i) ,FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE28(i)),
10866 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE28(i) ,FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE28(i)),
10867 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE29(i) ,FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE29(i)),
10868 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE29(i) ,FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE29(i)),
10869 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE30(i) ,FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE30(i)),
10870 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE30(i) ,FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE30(i)),
10871 --End of eam integration changes--
10872 --Addition of columns for FA Integration
10873 decode( l_inst_hist_rec_tab.OLD_PAYABLES_UNIT_PRICE(i) ,FND_API.G_MISS_NUM, NULL, l_inst_hist_rec_tab.OLD_PAYABLES_UNIT_PRICE(i)),
10874 decode( l_inst_hist_rec_tab.NEW_PAYABLES_UNIT_PRICE(i) ,FND_API.G_MISS_NUM, NULL, l_inst_hist_rec_tab.NEW_PAYABLES_UNIT_PRICE(i)),
10875 decode( l_inst_hist_rec_tab.OLD_PAYABLES_CURRENCY_CODE(i) ,FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_PAYABLES_CURRENCY_CODE(i)),
10876 decode( l_inst_hist_rec_tab.NEW_PAYABLES_CURRENCY_CODE(i) ,FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_PAYABLES_CURRENCY_CODE(i)),
10877 decode( l_inst_hist_rec_tab.OLD_PURCHASE_UNIT_PRICE(i) ,FND_API.G_MISS_NUM, NULL, l_inst_hist_rec_tab.OLD_PURCHASE_UNIT_PRICE(i)),
10878 decode( l_inst_hist_rec_tab.NEW_PURCHASE_UNIT_PRICE(i) ,FND_API.G_MISS_NUM, NULL, l_inst_hist_rec_tab.NEW_PURCHASE_UNIT_PRICE(i)),
10879 decode( l_inst_hist_rec_tab.OLD_PURCHASE_CURRENCY_CODE(i) ,FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_PURCHASE_CURRENCY_CODE(i)),
10880 decode( l_inst_hist_rec_tab.NEW_PURCHASE_CURRENCY_CODE(i) ,FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_PURCHASE_CURRENCY_CODE(i)),
10881 decode( l_inst_hist_rec_tab.OLD_SALES_UNIT_PRICE(i) ,FND_API.G_MISS_NUM, NULL, l_inst_hist_rec_tab.OLD_SALES_UNIT_PRICE(i)),
10882 decode( l_inst_hist_rec_tab.NEW_SALES_UNIT_PRICE(i) ,FND_API.G_MISS_NUM, NULL, l_inst_hist_rec_tab.NEW_SALES_UNIT_PRICE(i)),
10883 decode( l_inst_hist_rec_tab.OLD_SALES_CURRENCY_CODE(i) ,FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_SALES_CURRENCY_CODE(i)),
10884 decode( l_inst_hist_rec_tab.NEW_SALES_CURRENCY_CODE(i) ,FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_SALES_CURRENCY_CODE(i)),
10885 decode( l_inst_hist_rec_tab.OLD_OPERATIONAL_STATUS_CODE(i) ,FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_OPERATIONAL_STATUS_CODE(i)),
10886 decode( l_inst_hist_rec_tab.NEW_OPERATIONAL_STATUS_CODE(i) ,FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_OPERATIONAL_STATUS_CODE(i))
10887 --End addition of columns for FA Integration
10888 );
10889 --End of:Added for Bug:5615169
10890 END IF; -- Bug#6203160
10891 END IF; -- check for l_rel_tbl count
10892 -- End of modifications for Bug#2887590
10893
10894 IF FND_API.To_Boolean( p_commit )
10895 THEN
10896 COMMIT WORK;
10897 END IF;
10898
10899 -- Standard call to get message count and if count is get message info.
10900 FND_MSG_PUB.Count_And_Get
10901 (p_encoded => FND_API.G_FALSE,
10902 p_count => x_msg_count ,
10903 p_data => x_msg_data
10904 );
10905
10906 EXCEPTION
10907
10908 WHEN FND_API.G_EXC_ERROR THEN
10909 IF FND_API.To_Boolean( p_commit ) THEN
10910 ROLLBACK TO update_child_instance_pvt;
10911 END IF;
10912 x_return_status := FND_API.G_RET_STS_ERROR ;
10913 FND_MSG_PUB.Count_And_Get
10914 ( p_encoded => FND_API.G_FALSE,
10915 p_count => x_msg_count,
10916 p_data => x_msg_data
10917 );
10918 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
10919 IF FND_API.To_Boolean( p_commit ) THEN
10920 ROLLBACK TO update_child_instance_pvt;
10921 END IF;
10922 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
10923 FND_MSG_PUB.Count_And_Get
10924 ( p_encoded => FND_API.G_FALSE,
10925 p_count => x_msg_count,
10926 p_data => x_msg_data
10927 );
10928 WHEN OTHERS THEN
10929 IF FND_API.To_Boolean( p_commit ) THEN
10930 ROLLBACK TO update_child_instance_pvt;
10931 END IF;
10932 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
10933
10934 IF FND_MSG_PUB.Check_Msg_Level
10935 (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
10936 THEN
10937 FND_MSG_PUB.Add_Exc_Msg
10938 ( G_PKG_NAME ,
10939 l_api_name
10940 );
10941 END IF;
10942 FND_MSG_PUB.Count_And_Get
10943 ( p_encoded => FND_API.G_FALSE,
10944 p_count => x_msg_count,
10945 p_data => x_msg_data
10946 );
10947
10948 END update_child_instance_location;
10949
10950 /*---------------------------------------------------*/
10951 /* procedure name: call_contracts */
10952 /* description : call_contracts */
10953 /* */
10954 /*---------------------------------------------------*/
10955
10956 PROCEDURE Call_to_Contracts
10957 ( p_transaction_type IN VARCHAR2
10958 ,p_instance_id IN NUMBER
10959 ,p_new_instance_id IN NUMBER
10960 ,p_vld_org_id IN NUMBER
10961 ,p_quantity IN NUMBER
10962 ,p_party_account_id1 IN NUMBER
10963 ,p_party_account_id2 IN NUMBER
10964 ,p_transaction_date IN DATE
10965 ,p_source_transaction_date IN DATE -- Added by jpwilson
10966 ,p_transaction_id IN NUMBER -- Added by sguthiva for TRF(HTML)
10967 ,p_grp_call_contracts IN VARCHAR2 -- Will be TRUE only from Group API
10968 ,p_txn_type_id IN NUMBER
10969 ,p_system_id IN NUMBER
10970 ,p_order_line_id IN NUMBER
10971 ,p_call_from_bom_expl IN VARCHAR2
10972 ,p_oks_txn_inst_tbl IN OUT NOCOPY oks_ibint_pub.txn_instance_tbl
10973 ,x_return_status OUT NOCOPY VARCHAR2
10974 ,x_msg_count OUT NOCOPY NUMBER
10975 ,x_msg_data OUT NOCOPY VARCHAR2
10976 )IS
10977
10978 CURSOR instance_csr (p_ins_id IN NUMBER) IS
10979 SELECT *
10980 FROM csi_item_instances
10981 WHERE instance_id = p_ins_id;
10982
10983 --Start of: Added for bug 5615162
10984 CURSOR instance_txn_chk_csr(p_ins_id IN NUMBER,p_txn_id in NUMBER, p_src_txn_date in DATE) IS
10985 SELECT 'X' FROM CSI_TRANSACTIONS CST,
10986 (
10987 SELECT CIIH.TRANSACTION_ID TRANSACTION_ID, CIIH.INSTANCE_ID INSTANCE_ID
10988 FROM CSI_ITEM_INSTANCES_H CIIH
10989 WHERE INSTANCE_ID=p_ins_id AND TRANSACTION_ID<>p_txn_id
10990 UNION ALL
10991
10992 SELECT CIVH.TRANSACTION_ID TRANSACTION_ID, CIV.INSTANCE_ID INSTANCE_ID
10993 FROM CSI_IEA_VALUES_H CIVH, CSI_IEA_VALUES CIV
10994 WHERE CIV.ATTRIBUTE_VALUE_ID = CIVH.ATTRIBUTE_VALUE_ID
10995 AND INSTANCE_ID=p_ins_id AND TRANSACTION_ID<>p_txn_id
10996 UNION ALL
10997
10998 SELECT CIRH.TRANSACTION_ID TRANSACTION_ID, CIR.SUBJECT_ID INSTANCE_ID
10999 FROM CSI_II_RELATIONSHIPS_H CIRH, CSI_II_RELATIONSHIPS CIR
11000 WHERE CIRH.RELATIONSHIP_ID = CIR.RELATIONSHIP_ID
11001 AND subject_ID=p_ins_id AND TRANSACTION_ID<>p_txn_id
11002 UNION ALL
11003
11004 SELECT CIRH.TRANSACTION_ID TRANSACTION_ID, CIR.OBJECT_ID INSTANCE_ID
11005 FROM CSI_II_RELATIONSHIPS_H CIRH, CSI_II_RELATIONSHIPS CIR
11006 WHERE CIRH.RELATIONSHIP_ID = CIR.RELATIONSHIP_ID
11007 AND object_ID=p_ins_id AND TRANSACTION_ID<>p_txn_id
11008 UNION ALL
11009
11010 SELECT CIPH.TRANSACTION_ID TRANSACTION_ID, CIP.INSTANCE_ID INSTANCE_ID
11011 FROM CSI_I_PARTIES_H CIPH, CSI_I_PARTIES CIP
11012 WHERE CIPH.INSTANCE_PARTY_ID = CIP.INSTANCE_PARTY_ID
11013 AND INSTANCE_ID=p_ins_id AND TRANSACTION_ID<>p_txn_id
11014 UNION ALL
11015
11016 SELECT CIAAH.TRANSACTION_ID TRANSACTION_ID, CIAA.INSTANCE_ID INSTANCE_ID
11017 FROM CSI_I_ASSETS_H CIAAH, CSI_I_ASSETS CIAA
11018 WHERE CIAAH.INSTANCE_ASSET_ID = CIAA.INSTANCE_ASSET_ID
11019 AND INSTANCE_ID=p_ins_id AND TRANSACTION_ID<>p_txn_id
11020 UNION ALL
11021
11022 SELECT CIAH.TRANSACTION_ID TRANSACTION_ID, CIP.INSTANCE_ID INSTANCE_ID
11023 FROM CSI_IP_ACCOUNTS_H CIAH, CSI_IP_ACCOUNTS CIA, CSI_I_PARTIES CIP
11024 WHERE CIAH.IP_ACCOUNT_ID = CIA.IP_ACCOUNT_ID
11025 AND CIA.INSTANCE_PARTY_ID = CIP.INSTANCE_PARTY_ID
11026 AND INSTANCE_ID=p_ins_id AND TRANSACTION_ID<>p_txn_id
11027 UNION ALL
11028
11029 SELECT CIOAH.TRANSACTION_ID TRANSACTION_ID, CIOA.INSTANCE_ID INSTANCE_ID
11030 FROM CSI_I_ORG_ASSIGNMENTS_H CIOAH, CSI_I_ORG_ASSIGNMENTS CIOA
11031 WHERE CIOAH.INSTANCE_OU_ID = CIOA.INSTANCE_OU_ID
11032 AND INSTANCE_ID=p_ins_id AND TRANSACTION_ID<>p_txn_id
11033 UNION ALL
11034
11035 SELECT CIVLH.TRANSACTION_ID TRANSACTION_ID, CIVL.INSTANCE_ID INSTANCE_ID
11036 FROM CSI_I_VERSION_LABELS_H CIVLH, CSI_I_VERSION_LABELS CIVL
11037 WHERE CIVLH.VERSION_LABEL_ID = CIVL.VERSION_LABEL_ID
11038 AND INSTANCE_ID=p_ins_id AND TRANSACTION_ID<>p_txn_id
11039 UNION ALL
11040
11041 SELECT CIPAH.TRANSACTION_ID TRANSACTION_ID, CIPA.INSTANCE_ID INSTANCE_ID
11042 FROM CSI_I_PRICING_ATTRIBS_H CIPAH, CSI_I_PRICING_ATTRIBS CIPA
11043 WHERE INSTANCE_ID=p_ins_id AND TRANSACTION_ID<>p_txn_id
11044 AND CIPAH.PRICING_ATTRIBUTE_ID = CIPA.PRICING_ATTRIBUTE_ID
11045 ) CSA
11046 WHERE CSA.TRANSACTION_ID=CST.TRANSACTION_ID
11047 AND CST.TRANSACTION_ID <>p_txn_id
11048 AND CST.SOURCE_TRANSACTION_DATE>p_src_txn_date
11049 AND ROWNUM=1;
11050 --End of: Added for bug 5615162
11051
11052 l_instance_csr instance_csr%ROWTYPE;
11053 l_new_ins_csr instance_csr%ROWTYPE;
11054 l_new_instance_csr instance_csr%ROWTYPE;
11055 l_debug_level NUMBER;
11056 l_contracts_status VARCHAR2(3);
11057 l_internal_party_id NUMBER;
11058 l_msg_count NUMBER;
11059 l_msg_index NUMBER;
11060 l_msg_dummy NUMBER;
11061 l_transaction_date DATE;
11062 l_call_contracts BOOLEAN := FALSE;
11063 l_temp VARCHAR2(1);
11064 l_chg_owner VARCHAR2(1);
11065 l_sql VARCHAR2(2000); -- Added for ER 3378294
11066 l_found VARCHAR2(1) := 'N'; -- Added for ER 3378294
11067 l_rma_line_id NUMBER;
11068 l_oks_txn_count NUMBER;
11069 l_exists VARCHAR2(1);
11070 l_order_org_id NUMBER;
11071 l_order_shipped_date DATE;
11072 l_txn_date DATE;
11073 l_txn_exists VARCHAR2(1) :=null; --5615162
11074
11075 SKIP_CHILD_CONT_PROCESSING EXCEPTION; -- Bug 13055898
11076
11077 BEGIN
11078
11079 -- Initialize API return status to success
11080 x_return_status := FND_API.G_RET_STS_SUCCESS;
11081 --
11082 l_contracts_status := FND_PROFILE.VALUE('CSI_CONTRACTS_ENABLED');
11083 --
11084 IF UPPER(l_contracts_status) <> 'Y' THEN
11085 RETURN;
11086 END IF;
11087 --
11088 csi_gen_utility_pvt.put_line('Begin Call_to_Contracts : '||to_char(sysdate,'DD-MON-YYYY HH24:MI:SS'));
11089 csi_gen_utility_pvt.put_line('Contracts Transaction Type: '||p_transaction_type);
11090 IF csi_datastructures_pub.g_install_param_rec.fetch_flag IS NULL THEN
11091 csi_gen_utility_pvt.populate_install_param_rec;
11092 END IF;
11093 --
11094 l_internal_party_id := csi_datastructures_pub.g_install_param_rec.internal_party_id;
11095 --
11096 IF l_internal_party_id IS NULL THEN
11097 FND_MESSAGE.SET_NAME('CSI','CSI_API_UNINSTALLED_PARAMETER');
11098 FND_MSG_PUB.ADD;
11099 RAISE FND_API.G_EXC_ERROR;
11100 END IF;
11101 --
11102 OPEN instance_csr (p_instance_id);
11103 FETCH instance_csr INTO l_instance_csr;
11104 CLOSE instance_csr;
11105 --
11106 csi_gen_utility_pvt.put_line('p_transaction_date: '||p_transaction_date);
11107 csi_gen_utility_pvt.put_line('p_source_transaction_date: '||p_source_transaction_date);
11108 --
11109 IF p_transaction_date IS NULL OR p_transaction_date = fnd_api.g_miss_date THEN
11110 l_txn_date:= SYSDATE;
11111 ELSE
11112 l_txn_date:= p_transaction_date;
11113 END IF;
11114 --
11115 l_exists := 'N';
11116 --
11117 -- Bug 13055898
11118 -- For return transaction if last_oe_rma_line_id is NULL, then this processing was invoked by
11119 -- RMA processing of parent instance while updating child instance location
11120 -- Skipping this contracts param building call as as child RMA lines are yet to processed
11121 -- and child RMA line id is NULL
11122 csi_gen_utility_pvt.put_line('RMA Line ID : '|| l_instance_csr.last_oe_rma_line_id);
11123 csi_gen_utility_pvt.put_line('p_transaction_id : '|| p_transaction_id); -- Added for bug 13057871
11124 IF ( NVL(p_transaction_type, FND_API.G_MISS_CHAR) = 'RET' )THEN
11125 IF NVL(l_instance_csr.last_oe_rma_line_id, FND_API.G_MISS_NUM) = FND_API.G_MISS_NUM THEN
11126 csi_gen_utility_pvt.put_line('Skipping RMA Processing for child instances as RMA Line id is NULL');
11127 RAISE SKIP_CHILD_CONT_PROCESSING;
11128 ELSIF (NVL(p_transaction_id,FND_API.G_MISS_NUM) <> FND_API.G_MISS_NUM) THEN -- Added for bug 13057871 start
11129 BEGIN
11130 csi_gen_utility_pvt.put_line('l_exists : '||l_exists);
11131 SELECT 'Y'
11132 INTO l_exists
11133 FROM oe_order_lines_all ool,
11134 csi_transactions ct
11135 WHERE ool.line_id = l_instance_csr.last_oe_rma_line_id
11136 AND ct.transaction_id = p_transaction_id
11137 AND ool.header_id = ct.source_header_ref_id
11138 AND ROWNUM = 1;
11139 EXCEPTION
11140 WHEN OTHERS THEN
11141 l_exists := 'N';
11142 END;
11143 csi_gen_utility_pvt.put_line('l_exists : '||l_exists);
11144 IF l_exists = 'N' THEN
11145 csi_gen_utility_pvt.put_line('Skipping RMA Processing for child instances as RMA Line id is not current RMA');
11146 RAISE SKIP_CHILD_CONT_PROCESSING;
11147 END IF;
11148 END IF; -- Added for bug 13057871 END
11149 END IF;
11150
11151 l_exists := 'N'; -- Added for bug 13057871
11152
11153 IF ( l_instance_csr.owner_party_id IS NOT NULL
11154 AND l_instance_csr.owner_party_id <> l_internal_party_id
11155 AND l_instance_csr.owner_party_source_table = 'HZ_PARTIES')
11156 OR ( l_instance_csr.owner_party_id IS NOT NULL
11157 AND l_instance_csr.owner_party_id = l_internal_party_id
11158 AND p_transaction_type in ('TRM','RET')
11159 AND l_instance_csr.owner_party_source_table = 'HZ_PARTIES')
11160 THEN
11161 IF p_source_transaction_date IS NULL OR p_source_transaction_date = fnd_api.g_miss_date THEN
11162 l_transaction_date:= SYSDATE;
11163 ELSE
11164 l_transaction_date:= p_source_transaction_date;
11165 END IF;
11166 --
11167 csi_gen_utility_pvt.put_line('l_transaction_date: '||l_transaction_date);
11168
11169 IF p_oks_txn_inst_tbl.count > 0 THEN
11170 csi_gen_utility_pvt.put_line('p_oks_txn_inst_tbl has records ...');
11171 FOR J in p_oks_txn_inst_tbl.FIRST .. p_oks_txn_inst_tbl.LAST LOOP
11172 IF p_oks_txn_inst_tbl.EXISTS(J) THEN
11173 IF p_oks_txn_inst_tbl(J).old_customer_product_id = p_instance_id THEN
11174 IF p_transaction_type = 'TRM' THEN
11175 -- Modified for bug 5442038
11176 IF l_instance_csr.active_end_date IS NULL OR
11177 l_instance_csr.active_end_date = fnd_api.g_miss_date
11178 THEN
11179 p_oks_txn_inst_tbl(J).termination_date := l_transaction_date;
11180 ELSE
11181 csi_gen_utility_pvt.put_line('1. Assigning user entered end date');
11182 p_oks_txn_inst_tbl(J).termination_date := l_instance_csr.active_end_date;
11183 END IF;
11184 p_oks_txn_inst_tbl(J).transaction_date := l_txn_date;
11185 p_oks_txn_inst_tbl(J).TRM := 'Y';
11186 ELSIF p_transaction_type = 'RET' THEN
11187 p_oks_txn_inst_tbl(J).termination_date := l_transaction_date;
11188 p_oks_txn_inst_tbl(J).transaction_date := l_txn_date;
11189 p_oks_txn_inst_tbl(J).RET := 'Y';
11190 ELSIF p_transaction_type = 'TRF' THEN
11191 IF p_system_id IS NOT NULL AND
11192 p_system_id <> FND_API.G_MISS_NUM THEN
11193 p_oks_txn_inst_tbl(J).system_id := p_system_id;
11194 ELSE
11195 p_oks_txn_inst_tbl(J).system_id := NULL;
11196 END IF;
11197 p_oks_txn_inst_tbl(J).new_customer_product_id :=
11198 p_oks_txn_inst_tbl(J).old_customer_product_id;
11199 p_oks_txn_inst_tbl(J).new_inventory_item_id :=
11200 p_oks_txn_inst_tbl(J).old_inventory_item_id;
11201 p_oks_txn_inst_tbl(J).new_unit_of_measure :=
11202 p_oks_txn_inst_tbl(J).old_unit_of_measure;
11203 p_oks_txn_inst_tbl(J).new_quantity :=
11204 p_oks_txn_inst_tbl(J).old_quantity;
11205 p_oks_txn_inst_tbl(J).new_customer_acct_id := p_party_account_id2;
11206 p_oks_txn_inst_tbl(J).old_customer_acct_id := p_party_account_id1;
11207 --
11208 -- The following code has been added by sguthiva in order to incorporate the
11209 -- changes made by the HTML UI .
11210 -- When HTML UI passes a transaction date which should be less than sysdate,
11211 -- then before calling contracts we need to make sure that there are no transactions
11212 -- between passed date and sysdate.
11213 IF (( p_source_transaction_date IS NOT NULL) AND (p_source_transaction_date < SYSDATE)) AND
11214 p_source_transaction_date <> fnd_api.g_miss_date THEN
11215 l_temp:=NULL;
11216 -- srramakr changed to source_transaction_date instead of transaction_date (3804960)
11217 BEGIN
11218 /*Commenting for bug 5615162 added more code below
11219 SELECT 'x'
11220 INTO l_temp
11221 FROM csi_inst_transactions_v
11222 WHERE instance_id=p_instance_id
11223 AND source_transaction_date > p_source_transaction_date
11224 AND transaction_id <> p_transaction_id
11225 AND ROWNUM=1;
11226 IF l_temp IS NOT NULL AND p_txn_type_id <> 53 --added for bug 5752271 */
11227
11228 --Start of:Added for bug 5615162
11229 l_txn_exists :=null;
11230 OPEN instance_txn_chk_csr (p_instance_id,p_transaction_id,p_transaction_date);
11231 FETCH instance_txn_chk_csr INTO l_txn_exists;
11232 CLOSE instance_txn_chk_csr;
11233
11234 IF l_txn_exists IS NOT NULL AND p_txn_type_id <> 53 --End of:Added for bug 5615162
11235 THEN
11236 x_return_status := fnd_api.g_ret_sts_error ;
11237 fnd_message.set_name('CSI', 'CSI_HAS_TXNS_GT_SYS');
11238 fnd_message.set_token('INSTANCE_ID',p_instance_id );
11239 fnd_message.set_token('SOURCE_TXN_DATE',to_char(p_source_transaction_date, 'DD-MON-YYYY HH24:MI:SS'));
11240 fnd_msg_pub.add;
11241 RAISE fnd_api.g_exc_error;
11242 END IF;
11243 EXCEPTION
11244 WHEN fnd_api.g_exc_error THEN
11245 RAISE fnd_api.g_exc_error;
11246 WHEN OTHERS THEN
11247 NULL;
11248 END;
11249 ELSIF (( p_source_transaction_date IS NOT NULL) AND (p_source_transaction_date > SYSDATE)) AND
11250 p_source_transaction_date <> fnd_api.g_miss_date THEN
11251 x_return_status := fnd_api.g_ret_sts_error ;
11252 fnd_message.set_name('CSI', 'CSI_PASS_TXNS_GT_SYS');
11253 fnd_message.set_token('SOURCE_TXN_DATE',to_char(p_source_transaction_date, 'DD-MON-YYYY HH24:MI:SS'));
11254 fnd_msg_pub.add;
11255 RAISE fnd_api.g_exc_error;
11256 END IF;
11257 p_oks_txn_inst_tbl(J).transfer_date := l_transaction_date;
11258 p_oks_txn_inst_tbl(J).transaction_date := l_txn_date;
11259 p_oks_txn_inst_tbl(J).TRF := 'Y';
11260 ELSIF p_transaction_type = 'UPD' THEN
11261 p_oks_txn_inst_tbl(J).new_quantity :=
11262 p_oks_txn_inst_tbl(J).old_quantity;
11263 p_oks_txn_inst_tbl(J).old_quantity := p_quantity; -- Passed old Qty
11264 p_oks_txn_inst_tbl(J).transaction_date := l_txn_date;
11265 p_oks_txn_inst_tbl(J).UPD := 'Y';
11266 --
11267 IF p_txn_type_id is NOT NULL AND
11268 p_txn_type_id <> FND_API.G_MISS_NUM AND
11269 p_txn_type_id in (53,54) THEN
11270 p_oks_txn_inst_tbl(J).return_reason_code := 'RETURN'; -- RMA
11271 ELSE
11272 p_oks_txn_inst_tbl(J).return_reason_code := 'REGULAR';
11273 END IF;
11274 ELSIF p_transaction_type = 'SPL' THEN
11275 OPEN instance_csr (p_new_instance_id);
11276 FETCH instance_csr INTO l_new_ins_csr;
11277 CLOSE instance_csr;
11278 --
11279 p_oks_txn_inst_tbl(J).new_customer_product_id := p_new_instance_id;
11280 p_oks_txn_inst_tbl(J).new_customer_acct_id :=
11281 p_oks_txn_inst_tbl(J).old_customer_acct_id;
11282 p_oks_txn_inst_tbl(J).new_inventory_item_id :=
11283 p_oks_txn_inst_tbl(J).old_inventory_item_id;
11284 p_oks_txn_inst_tbl(J).new_unit_of_measure :=
11285 p_oks_txn_inst_tbl(J).old_unit_of_measure;
11286 p_oks_txn_inst_tbl(J).new_quantity := l_new_ins_csr.quantity;
11287 p_oks_txn_inst_tbl(J).old_quantity := p_quantity; -- Passed old Qty
11288 p_oks_txn_inst_tbl(J).transaction_date := l_txn_date;
11289 p_oks_txn_inst_tbl(J).SPL := 'Y';
11290 ELSIF p_transaction_type = 'RPL' THEN
11291 OPEN instance_csr (p_new_instance_id);
11292 FETCH instance_csr INTO l_new_instance_csr;
11293 CLOSE instance_csr;
11294 --
11295 IF l_new_instance_csr.owner_party_id IS NOT NULL AND
11296 l_new_instance_csr.owner_party_id <> l_internal_party_id AND
11297 l_new_instance_csr.owner_party_source_table = 'HZ_PARTIES' THEN
11298 l_call_contracts := TRUE;
11299 p_oks_txn_inst_tbl(l_oks_txn_count).new_customer_product_id := p_new_instance_id;
11300 p_oks_txn_inst_tbl(l_oks_txn_count).new_quantity := l_new_instance_csr.quantity;
11301 p_oks_txn_inst_tbl(l_oks_txn_count).new_unit_of_measure :=
11302 l_new_instance_csr.unit_of_measure;
11303 p_oks_txn_inst_tbl(l_oks_txn_count).new_inventory_item_id :=
11304 l_new_instance_csr.inventory_item_id;
11305 p_oks_txn_inst_tbl(J).transaction_date := l_txn_date;
11306 p_oks_txn_inst_tbl(J).RPL := 'Y';
11307 END IF;
11308 ELSIF p_transaction_type = 'IDC' THEN
11309 p_oks_txn_inst_tbl(J).IDC := 'Y';
11310 p_oks_txn_inst_tbl(J).transaction_date := l_txn_date;
11311 ELSIF p_transaction_type = 'NEW' THEN
11312 p_oks_txn_inst_tbl(J).NEW := 'Y';
11313 p_oks_txn_inst_tbl(J).transaction_date := l_txn_date;
11314 END IF;
11315 l_exists := 'Y';
11316 exit;
11317 END IF; -- Instance ID matches
11318 END IF; -- row exists check
11319 END LOOP;
11320 END IF;
11321 --
11322 IF l_exists = 'N' THEN
11323 csi_gen_utility_pvt.put_line('l_exists is N ...');
11324 l_oks_txn_count := p_oks_txn_inst_tbl.count + 1;
11325 --
11326 p_oks_txn_inst_tbl(l_oks_txn_count).installation_date := l_instance_csr.install_date;
11327 --
11328 IF l_instance_csr.location_type_code = 'IN_TRANSIT' THEN
11329 p_oks_txn_inst_tbl(l_oks_txn_count).order_line_id := l_instance_csr.in_transit_order_line_id;
11330 ELSE
11331 p_oks_txn_inst_tbl(l_oks_txn_count).order_line_id := l_instance_csr.last_oe_order_line_id;
11332 END IF;
11333 --
11334 l_order_shipped_date := NULL;
11335 l_order_org_id := NULL;
11336 --
11337 IF p_oks_txn_inst_tbl(l_oks_txn_count).order_line_id IS NOT NULL THEN
11338 Begin
11339 select NVL(actual_shipment_date,schedule_ship_date)
11340 ,org_id
11341 into l_order_shipped_date,l_order_org_id
11342 from OE_ORDER_LINES_ALL
11343 where line_id = p_oks_txn_inst_tbl(l_oks_txn_count).order_line_id;
11344 Exception -- Added exception handling for bug 6870487, in case the order line no longer exist in oe_order_lines_all table
11345 When no_data_found Then
11346 p_oks_txn_inst_tbl(l_oks_txn_count).order_line_id := NULL;
11347 End;
11348 END IF;
11349 --
11350 IF p_oks_txn_inst_tbl(l_oks_txn_count).installation_date IS NULL THEN
11351 p_oks_txn_inst_tbl(l_oks_txn_count).shipped_date := NVL(l_order_shipped_date,l_instance_csr.active_start_date);
11352 ELSE
11353 p_oks_txn_inst_tbl(l_oks_txn_count).shipped_date := NULL;
11354 END IF;
11355 --
11356 p_oks_txn_inst_tbl(l_oks_txn_count).old_customer_product_id := p_instance_id;
11357 p_oks_txn_inst_tbl(l_oks_txn_count).old_quantity := l_instance_csr.quantity;
11358 p_oks_txn_inst_tbl(l_oks_txn_count).old_unit_of_measure := l_instance_csr.unit_of_measure;
11359 p_oks_txn_inst_tbl(l_oks_txn_count).old_inventory_item_id := l_instance_csr.inventory_item_id;
11360 p_oks_txn_inst_tbl(l_oks_txn_count).old_customer_acct_id := l_instance_csr.owner_party_account_id;
11361 --
11362 IF p_transaction_type ='TRM' THEN
11363 csi_gen_utility_pvt.put_line('TRM Transaction Type');
11364 -- p_party_account_id1 will be passed only for TRF
11365 -- p_oks_txn_inst_tbl(l_oks_txn_count).old_customer_acct_id := p_party_account_id1;
11366 p_oks_txn_inst_tbl(l_oks_txn_count).TRM := 'Y';
11367 -- Modified for bug 5442038
11368 IF l_instance_csr.active_end_date IS NULL OR
11369 l_instance_csr.active_end_date = fnd_api.g_miss_date
11370 THEN
11371 p_oks_txn_inst_tbl(l_oks_txn_count).termination_date := l_transaction_date;
11372 ELSE
11373 csi_gen_utility_pvt.put_line('2. Assigning user entered end date');
11374 p_oks_txn_inst_tbl(l_oks_txn_count).termination_date := l_instance_csr.active_end_date;
11375 END IF;
11376
11377 p_oks_txn_inst_tbl(l_oks_txn_count).transaction_date := l_txn_date;
11378 END IF;
11379 --
11380 IF p_transaction_type ='RET' THEN
11381 csi_gen_utility_pvt.put_line('RET Transaction Type');
11382 p_oks_txn_inst_tbl(l_oks_txn_count).RET := 'Y';
11383 p_oks_txn_inst_tbl(l_oks_txn_count).termination_date := l_transaction_date;
11384 p_oks_txn_inst_tbl(l_oks_txn_count).transaction_date := l_txn_date;
11385 END IF;
11386 --
11387 IF p_transaction_type ='IDC' THEN
11388 csi_gen_utility_pvt.put_line('IDC Transaction Type');
11389 p_oks_txn_inst_tbl(l_oks_txn_count).IDC := 'Y';
11390 p_oks_txn_inst_tbl(l_oks_txn_count).termination_date := l_transaction_date;
11391 p_oks_txn_inst_tbl(l_oks_txn_count).transaction_date := l_txn_date;
11392 END IF;
11393 --
11394 IF p_transaction_type = 'UPD' THEN
11395 csi_gen_utility_pvt.put_line('UPD Transaction Type');
11396 p_oks_txn_inst_tbl(l_oks_txn_count).new_quantity :=
11397 p_oks_txn_inst_tbl(l_oks_txn_count).old_quantity;
11398 p_oks_txn_inst_tbl(l_oks_txn_count).old_quantity := p_quantity; -- Passed old Qty
11399 p_oks_txn_inst_tbl(l_oks_txn_count).UPD := 'Y';
11400 p_oks_txn_inst_tbl(l_oks_txn_count).transaction_date := l_txn_date;
11401 --
11402 IF p_txn_type_id is NOT NULL AND
11403 p_txn_type_id <> FND_API.G_MISS_NUM AND
11404 p_txn_type_id in (53,54) THEN
11405 p_oks_txn_inst_tbl(l_oks_txn_count).return_reason_code := 'RETURN'; -- RMA
11406 ELSE
11407 p_oks_txn_inst_tbl(l_oks_txn_count).return_reason_code := 'REGULAR';
11408 END IF;
11409 ELSE
11410 p_oks_txn_inst_tbl(l_oks_txn_count).return_reason_code := NULL;
11411 END IF;
11412 --
11413 IF p_transaction_type = 'NEW' THEN
11414 csi_gen_utility_pvt.put_line('NEW Transaction Type');
11415 IF p_call_from_bom_expl = FND_API.G_TRUE THEN
11416 p_oks_txn_inst_tbl(l_oks_txn_count).bom_explosion_flag := 'Y';
11417 ELSE
11418 p_oks_txn_inst_tbl(l_oks_txn_count).bom_explosion_flag := 'N';
11419 END IF;
11420 p_oks_txn_inst_tbl(l_oks_txn_count).NEW := 'Y';
11421 p_oks_txn_inst_tbl(l_oks_txn_count).transaction_date := l_txn_date;
11422 END IF;
11423 --
11424 IF p_vld_org_id IS NULL OR
11425 p_vld_org_id = FND_API.G_MISS_NUM
11426 THEN
11427 p_oks_txn_inst_tbl(l_oks_txn_count).organization_id := l_instance_csr.last_vld_organization_id; -- Changed from Master Org
11428 ELSE
11429 p_oks_txn_inst_tbl(l_oks_txn_count).organization_id := p_vld_org_id ;
11430 END IF;
11431 -- Added by sk for bug 2190051
11432 IF l_order_org_id IS NOT NULL THEN
11433 p_oks_txn_inst_tbl(l_oks_txn_count).org_id := l_order_org_id;
11434 ELSE
11435 SELECT operating_unit
11436 INTO p_oks_txn_inst_tbl(l_oks_txn_count).org_id
11437 FROM org_organization_definitions
11438 WHERE organization_id = p_oks_txn_inst_tbl(l_oks_txn_count).organization_id ;
11439 END IF;
11440 -- Added by sk for bug 2190051
11441 --
11442 -- Added for ER 3381250
11443 l_rma_line_id := l_instance_csr.last_oe_rma_line_id;
11444 --
11445 IF l_rma_line_id IS NOT NULL THEN
11446 BEGIN
11447 csi_gen_utility_pvt.put_line('Calling package oe_service_credit_grp.get_service_credit_eligible');
11448 csi_gen_utility_pvt.put_line('to retreive service_credit_eligible_code for rma line id :'||l_rma_line_id);
11449 --l_sql := 'BEGIN oe_service_credit_grp.get_service_credit_eligible( :l_line_id, :l_service_code); END;';
11450 oe_service_credit_grp.get_service_credit_eligible
11451 ( p_line_id => l_rma_line_id
11452 ,p_service_credit_eligible => p_oks_txn_inst_tbl(l_oks_txn_count).raise_credit
11453 );
11454 -- EXECUTE IMMEDIATE l_sql USING IN l_rma_line_id, OUT p_oks_txn_inst_tbl(l_oks_txn_count).raise_credit;
11455 csi_gen_utility_pvt.put_line( 'Value of raise_credit is : '||p_oks_txn_inst_tbl(l_oks_txn_count).raise_credit);
11456 EXCEPTION
11457 WHEN OTHERS THEN
11458 csi_gen_utility_pvt.put_line('Into when others exception. ');
11459 csi_gen_utility_pvt.put_line( 'Nothing is assigned to raise_credit. ');
11460 END;
11461 ELSE
11462 csi_gen_utility_pvt.put_line('RMA line id is null');
11463 END IF;
11464 -- End addition for ER 3381250
11465 --
11466 IF p_transaction_type= 'SPL' THEN
11467 csi_gen_utility_pvt.put_line('SPL Transaction Type');
11468 OPEN instance_csr (p_new_instance_id);
11469 FETCH instance_csr INTO l_new_ins_csr;
11470 CLOSE instance_csr;
11471 --
11472 p_oks_txn_inst_tbl(l_oks_txn_count).new_customer_product_id := p_new_instance_id;
11473 p_oks_txn_inst_tbl(l_oks_txn_count).new_customer_acct_id :=
11474 p_oks_txn_inst_tbl(l_oks_txn_count).old_customer_acct_id;
11475 p_oks_txn_inst_tbl(l_oks_txn_count).new_inventory_item_id :=
11476 p_oks_txn_inst_tbl(l_oks_txn_count).old_inventory_item_id;
11477 p_oks_txn_inst_tbl(l_oks_txn_count).new_unit_of_measure :=
11478 p_oks_txn_inst_tbl(l_oks_txn_count).old_unit_of_measure;
11479 p_oks_txn_inst_tbl(l_oks_txn_count).new_quantity := l_new_ins_csr.quantity;
11480 p_oks_txn_inst_tbl(l_oks_txn_count).old_quantity := p_quantity; -- Passed old Qty
11481 p_oks_txn_inst_tbl(l_oks_txn_count).SPL := 'Y';
11482 p_oks_txn_inst_tbl(l_oks_txn_count).transaction_date := l_txn_date;
11483 END IF;
11484 --
11485 IF p_transaction_type = 'TRF' THEN
11486 csi_gen_utility_pvt.put_line('TRF Transaction Type');
11487 -- Need to notify contracts with the system_id during 'TRF'.
11488 IF p_system_id IS NOT NULL AND
11489 p_system_id <> FND_API.G_MISS_NUM THEN
11490 p_oks_txn_inst_tbl(l_oks_txn_count).system_id := p_system_id;
11491 ELSE
11492 p_oks_txn_inst_tbl(l_oks_txn_count).system_id := NULL;
11493 END IF;
11494 --
11495 p_oks_txn_inst_tbl(l_oks_txn_count).new_customer_product_id :=
11496 p_oks_txn_inst_tbl(l_oks_txn_count).old_customer_product_id;
11497 p_oks_txn_inst_tbl(l_oks_txn_count).new_inventory_item_id :=
11498 p_oks_txn_inst_tbl(l_oks_txn_count).old_inventory_item_id;
11499 p_oks_txn_inst_tbl(l_oks_txn_count).new_unit_of_measure :=
11500 p_oks_txn_inst_tbl(l_oks_txn_count).old_unit_of_measure;
11501 p_oks_txn_inst_tbl(l_oks_txn_count).new_quantity :=
11502 p_oks_txn_inst_tbl(l_oks_txn_count).old_quantity;
11503 p_oks_txn_inst_tbl(l_oks_txn_count).new_customer_acct_id := p_party_account_id2;
11504 p_oks_txn_inst_tbl(l_oks_txn_count).old_customer_acct_id := p_party_account_id1;
11505 --
11506 -- The following code has been added by sguthiva in order to incorporate the
11507 -- changes made by the HTML UI .
11508 -- When HTML UI passes a transaction date which should be less than sysdate,
11509 -- then before calling contracts we need to make sure that there are no transactions
11510 -- between passed date and sysdate.
11511 IF (( p_source_transaction_date IS NOT NULL) AND (p_source_transaction_date < SYSDATE)) AND
11512 p_source_transaction_date <> fnd_api.g_miss_date THEN
11513 l_temp:=NULL;
11514 -- srramakr changed to source_transaction_date instead of transaction_date (3804960)
11515 BEGIN
11516 SELECT 'x'
11517 INTO l_temp
11518 FROM csi_inst_transactions_v
11519 WHERE instance_id=p_instance_id
11520 AND source_transaction_date > p_source_transaction_date
11521 AND transaction_id <> p_transaction_id
11522 AND ROWNUM=1;
11523 IF l_temp IS NOT NULL THEN
11524 x_return_status := fnd_api.g_ret_sts_error ;
11525 fnd_message.set_name('CSI', 'CSI_HAS_TXNS_GT_SYS');
11526 fnd_message.set_token('INSTANCE_ID',p_instance_id );
11527 fnd_message.set_token('SOURCE_TXN_DATE',to_char(p_source_transaction_date, 'DD-MON-YYYY HH24:MI:SS'));
11528 fnd_msg_pub.add;
11529 RAISE fnd_api.g_exc_error;
11530 END IF;
11531 EXCEPTION
11532 WHEN fnd_api.g_exc_error THEN
11533 RAISE fnd_api.g_exc_error;
11534 WHEN OTHERS THEN
11535 NULL;
11536 END;
11537 ELSIF (( p_source_transaction_date IS NOT NULL) AND (p_source_transaction_date > SYSDATE)) AND
11538 p_source_transaction_date <> fnd_api.g_miss_date THEN
11539 x_return_status := fnd_api.g_ret_sts_error ;
11540 fnd_message.set_name('CSI', 'CSI_PASS_TXNS_GT_SYS');
11541 fnd_message.set_token('SOURCE_TXN_DATE',to_char(p_source_transaction_date, 'DD-MON-YYYY HH24:MI:SS'));
11542 fnd_msg_pub.add;
11543 RAISE fnd_api.g_exc_error;
11544 END IF;
11545 p_oks_txn_inst_tbl(l_oks_txn_count).transfer_date := l_transaction_date;
11546 p_oks_txn_inst_tbl(l_oks_txn_count).transaction_date := l_txn_date;
11547 p_oks_txn_inst_tbl(l_oks_txn_count).TRF := 'Y';
11548 -- End changes by sguthiva for HTML
11549 ELSE
11550 p_oks_txn_inst_tbl(l_oks_txn_count).system_id := NULL;
11551 END IF;
11552 --
11553 -- Start addition for 'RPL'
11554 IF p_transaction_type= 'RPL' THEN
11555 csi_gen_utility_pvt.put_line('RPL Transaction Type');
11556 OPEN instance_csr (p_new_instance_id);
11557 FETCH instance_csr INTO l_new_instance_csr;
11558 CLOSE instance_csr;
11559 --
11560 IF l_new_instance_csr.owner_party_id IS NOT NULL AND
11561 l_new_instance_csr.owner_party_id <> l_internal_party_id AND
11562 l_new_instance_csr.owner_party_source_table = 'HZ_PARTIES' THEN
11563 l_call_contracts := TRUE;
11564 p_oks_txn_inst_tbl(l_oks_txn_count).new_customer_product_id := p_new_instance_id;
11565 p_oks_txn_inst_tbl(l_oks_txn_count).new_quantity := l_new_instance_csr.quantity;
11566 p_oks_txn_inst_tbl(l_oks_txn_count).new_unit_of_measure := l_new_instance_csr.unit_of_measure;
11567 p_oks_txn_inst_tbl(l_oks_txn_count).new_inventory_item_id := l_new_instance_csr.inventory_item_id;
11568 p_oks_txn_inst_tbl(l_oks_txn_count).RPL := 'Y';
11569 p_oks_txn_inst_tbl(l_oks_txn_count).transaction_date := l_txn_date;
11570
11571 --Added for bug 6617569--
11572 csi_gen_utility_pvt.put_line('Addition of order line id........');
11573 p_oks_txn_inst_tbl(l_oks_txn_count).order_line_id := l_new_instance_csr.last_oe_order_line_id;
11574 csi_gen_utility_pvt.put_line('New order line id........'||p_oks_txn_inst_tbl(l_oks_txn_count).order_line_id);
11575 csi_gen_utility_pvt.put_line('New instance id........'||p_oks_txn_inst_tbl(l_oks_txn_count).new_customer_product_id);
11576
11577 END IF;
11578 END IF;
11579 IF p_oks_txn_inst_tbl(l_oks_txn_count).order_line_id IS NULL THEN
11580 p_oks_txn_inst_tbl(l_oks_txn_count).order_line_id := okc_api.g_miss_num;
11581 END IF;
11582 -- Pass G_MISS order line ID while un-expiring an Instance if there is no change to the line_id.
11583 IF p_transaction_type= 'NEW' THEN
11584 csi_gen_utility_pvt.put_line('NEW Transaction Type');
11585 IF nvl(p_order_line_id,-99999) <> FND_API.G_MISS_NUM THEN
11586 p_oks_txn_inst_tbl(l_oks_txn_count).order_line_id := nvl(p_order_line_id,FND_API.G_MISS_NUM);
11587 END IF;
11588 END IF;
11589 END IF;
11590 END IF;
11591 --
11592 csi_gen_utility_pvt.put_line('End Call_to_Contracts : '||to_char(sysdate,'DD-MON-YYYY HH24:MI:SS'));
11593 EXCEPTION
11594 WHEN SKIP_CHILD_CONT_PROCESSING THEN
11595 csi_gen_utility_pvt.put_line('End Call_to_Contracts : '||to_char(sysdate,'DD-MON-YYYY HH24:MI:SS'));
11596 WHEN fnd_api.g_exc_error THEN
11597 RAISE fnd_api.g_exc_error;
11598 WHEN OTHERS THEN
11599 FND_MESSAGE.Set_Name('CSI', 'CSI_UNEXP_SQL_ERROR');
11600 FND_MESSAGE.Set_Token('API_NAME', 'Call_to_Contracts');
11601 FND_MESSAGE.Set_Token('SQL_ERROR', sqlerrm);
11602 FND_MSG_PUB.Add;
11603 RAISE fnd_api.g_exc_error;
11604 END Call_to_Contracts;
11605
11606 PROCEDURE update_txn_status(
11607 px_txn_rec IN OUT nocopy csi_datastructures_pub.transaction_rec,
11608 x_return_status OUT nocopy varchar2)
11609 IS
11610 l_return_status varchar2(1) := fnd_api.g_ret_sts_success;
11611 l_msg_count number;
11612 l_msg_data varchar2(2000);
11613 BEGIN
11614
11615 x_return_status := fnd_api.g_ret_sts_success;
11616
11617 SELECT object_version_number
11618 INTO px_txn_rec.object_version_number
11619 FROM csi_transactions
11620 WHERE transaction_id = px_txn_rec.transaction_id;
11621
11622 csi_transactions_pvt.update_transactions(
11623 p_api_version => 1.0,
11624 p_init_msg_list => fnd_api.g_true,
11625 p_commit => fnd_api.g_false,
11626 p_validation_level => fnd_api.g_valid_level_full,
11627 p_transaction_rec => px_txn_rec,
11628 x_return_status => l_return_status,
11629 x_msg_count => l_msg_count,
11630 x_msg_data => l_msg_data);
11631
11632 IF l_return_status <> fnd_api.g_ret_sts_success THEN
11633 RAISE fnd_api.g_exc_error;
11634 END IF;
11635
11636 EXCEPTION
11637 WHEN fnd_api.g_exc_error THEN
11638 x_return_status := fnd_api.g_ret_sts_error;
11639 END update_txn_status;
11640
11641
11642 /*------------------------------------------------------*/
11643 /* Procedure name: update_item_instance */
11644 /* Description : procedure used to update an Item */
11645 /* Instance */
11646 /*------------------------------------------------------*/
11647
11648 PROCEDURE Update_Item_Instance(
11649 p_api_version IN NUMBER
11650 ,p_commit IN VARCHAR2
11651 ,p_init_msg_list IN VARCHAR2
11652 ,p_validation_level IN NUMBER
11653 ,p_instance_rec IN OUT NOCOPY csi_datastructures_pub.instance_rec
11654 ,p_txn_rec IN OUT NOCOPY csi_datastructures_pub.transaction_rec
11655 ,x_instance_id_lst OUT NOCOPY csi_datastructures_pub.id_tbl
11656 ,x_return_status OUT NOCOPY VARCHAR2
11657 ,x_msg_count OUT NOCOPY NUMBER
11658 ,x_msg_data OUT NOCOPY VARCHAR2
11659 ,p_item_attribute_tbl IN OUT NOCOPY csi_item_instance_pvt.item_attribute_tbl
11660 ,p_location_tbl IN OUT NOCOPY csi_item_instance_pvt.location_tbl
11661 ,p_generic_id_tbl IN OUT NOCOPY csi_item_instance_pvt.generic_id_tbl
11662 ,p_lookup_tbl IN OUT NOCOPY csi_item_instance_pvt.lookup_tbl
11663 ,p_ins_count_rec IN OUT NOCOPY csi_item_instance_pvt.ins_count_rec
11664 ,p_called_from_rel IN VARCHAR2
11665 ,p_validation_mode IN VARCHAR2
11666 ,p_oks_txn_inst_tbl IN OUT NOCOPY oks_ibint_pub.txn_instance_tbl
11667 ,p_child_inst_tbl IN OUT NOCOPY csi_item_instance_grp.child_inst_tbl
11668 )
11669 IS
11670 l_api_name CONSTANT VARCHAR2(30) := 'UPDATE_ITEM_INSTANCE';
11671 l_api_version CONSTANT NUMBER := 1.0;
11672 l_debug_level NUMBER;
11673 l_instance_id NUMBER;
11674 l_mod_curr_instance_rec csi_datastructures_pub.instance_rec;
11675 l_party_tbl csi_datastructures_pub.party_tbl;
11676 l_asset_tbl csi_datastructures_pub.instance_asset_rec;
11677 l_dummy VARCHAR2(1);
11678 l_instance_rec csi_datastructures_pub.instance_rec;
11679 l_get_instance_rec csi_datastructures_pub.instance_rec;
11680 l_check_instance_rec csi_datastructures_pub.instance_rec;
11681 l_version_label_rec csi_datastructures_pub.version_label_rec;
11682 l_object_version_number NUMBER;
11683 l_return_value BOOLEAN;
11684 l_csi_item_instance_h_id NUMBER;
11685 l_full_dump_frequency NUMBER;
11686 l_owner NUMBER;
11687 l_owner_count NUMBER := 0;
11688 l_org_id NUMBER;
11689 l_inv_org_id NUMBER;
11690 l_int_party_id NUMBER;
11691 l_serial_control NUMBER;
11692 l_lot_control NUMBER;
11693 l_shelf_life_code NUMBER;
11694 l_mod_value NUMBER;
11695 l_dump_flag VARCHAR2(1);
11696 l_msg_index NUMBER;
11697 l_msg_count NUMBER;
11698 l_msg_dummy NUMBER;
11699 l_party_rec csi_datastructures_pub.party_rec;
11700 l_party_owner_rec csi_datastructures_pub.party_rec;
11701 l_location_type_code VARCHAR2(20);
11702 l_location_id NUMBER;
11703 l_inv_organization_id NUMBER;
11704 l_inv_subinventory_name VARCHAR2(10);
11705 l_inv_locator_id NUMBER;
11706 l_pa_project_id NUMBER;
11707 l_pa_project_task_id NUMBER;
11708 l_in_tran_order_line_id NUMBER;
11709 l_wip_job_id NUMBER;
11710 l_po_order_line_id NUMBER;
11711 l_acct_class_code VARCHAR2(10);
11712 l_sys_date DATE := SYSDATE;
11713 l_last_vld_organization_id NUMBER;
11714 l_trackable_flag VARCHAR2(1);
11715 l_uom_code VARCHAR2(3);
11716 l_rev_control NUMBER;
11717 l_exists_flag VARCHAR2(1);
11718 l_valid_flag VARCHAR2(1);
11719 l_ctr_grp_id_template NUMBER;
11720 l_ctr_grp_id_instance NUMBER;
11721 l_ctr_id_template csi_counter_template_pub.ctr_template_autoinst_tbl;
11722 l_ctr_id_instance csi_counter_template_pub.counter_autoinstantiate_tbl;
11723 l_base_item_id NUMBER;
11724 l_ctr_association_id NUMBER;
11725 l_association_type VARCHAR2(30) := 'PROD_ITEM';
11726 -- l_desc_flex CS_COUNTERS_EXT_PVT.DFF_Rec_Type;
11727 -- Counter ref r12 changes
11728 l_desc_flex CSI_CTR_DATASTRUCTURES_PUB.DFF_REC_TYPE;
11729 l_delete_status VARCHAR2(1);
11730 l_exists VARCHAR2(1);
11731 l_instance_hist_rec csi_datastructures_pub.instance_history_rec;
11732 l_prior_txn_id NUMBER;
11733 l_oe_line_id NUMBER;
11734 l_install_date DATE;
11735 l_current_val NUMBER;
11736 l_txn_status varchar2(10) := 'COMPLETE';
11737 l_part_or_serial_change BOOLEAN := FALSE; --6176621
11738 l_number_open_ro NUMBER;
11739 --
11740 l_mtl_txn_tbl CSI_DATASTRUCTURES_PUB.MTL_TXN_TBL; -- Added for the bug 6875664, base bug 6531599
11741
11742 -- Added variables for FP bug 8551918
11743 l_exp_rltns_rec csi_datastructures_pub.ii_relationship_rec;
11744 l_instance_id_lst csi_datastructures_pub.id_tbl;
11745 l_msg_data VARCHAR2(2000);
11746
11747 l_transaction_type_id NUMBER := 0;
11748 l_serial_tagged NUMBER := 1;
11749
11750 l_shippable_item_flag VARCHAR2(1); --Bug 13887020
11751 l_shipped_date DATE; --Bug 13887020
11752 l_allow_earlier_installdt_flag VARCHAR2(1); --Bug 13887020
11753
11754 CURSOR CTR_GROUP(p_src_object_id IN NUMBER) IS
11755 SELECT group_id,
11756 associated_to_group, --Added for bug 9142776
11757 COUNTER_ID --Added for bug 9142776
11758 FROM csi_ctr_item_associations
11759 WHERE inventory_item_id = p_src_object_id;
11760
11761 CURSOR party_owner_rec (p_instance_id NUMBER) is
11762 SELECT
11763 INSTANCE_PARTY_ID,
11764 INSTANCE_ID,
11765 PARTY_SOURCE_TABLE,
11766 PARTY_ID,
11767 RELATIONSHIP_TYPE_CODE,
11768 CONTACT_FLAG,
11769 CONTACT_IP_ID,
11770 ACTIVE_START_DATE,
11771 ACTIVE_END_DATE,
11772 CONTEXT,
11773 ATTRIBUTE1,
11774 ATTRIBUTE2,
11775 ATTRIBUTE3,
11776 ATTRIBUTE4,
11777 ATTRIBUTE5,
11778 ATTRIBUTE6,
11779 ATTRIBUTE7,
11780 ATTRIBUTE8,
11781 ATTRIBUTE9,
11782 ATTRIBUTE10,
11783 ATTRIBUTE11,
11784 ATTRIBUTE12,
11785 ATTRIBUTE13,
11786 ATTRIBUTE14,
11787 ATTRIBUTE15,
11788 OBJECT_VERSION_NUMBER,
11789 PRIMARY_FLAG,
11790 PREFERRED_FLAG,
11791 NULL PARENT_TBL_INDEX,
11792 --NULL PROCESSED_FLAG,
11793 NULL CALL_CONTRACTS,
11794 NULL INTERFACE_ID,
11795 NULL CONTACT_PARENT_TBL_INDEX,
11796 NULL CASCADE_OWNERSHIP_FLAG -- Added for bug 2972082
11797 FROM csi_i_parties
11798 WHERE instance_id = p_instance_id
11799 AND relationship_type_code = 'OWNER';
11800
11801
11802 CURSOR curr_instance_rec(p_instance_id IN NUMBER) IS
11803 SELECT
11804 INSTANCE_ID,
11805 INSTANCE_NUMBER,
11806 EXTERNAL_REFERENCE,
11807 INVENTORY_ITEM_ID,
11808 NULL VLD_ORGANIZATION_ID,
11809 INVENTORY_REVISION,
11810 INV_MASTER_ORGANIZATION_ID,
11811 SERIAL_NUMBER,
11812 MFG_SERIAL_NUMBER_FLAG,
11813 LOT_NUMBER,
11814 QUANTITY,
11815 UNIT_OF_MEASURE,
11816 ACCOUNTING_CLASS_CODE,
11817 INSTANCE_CONDITION_ID,
11818 INSTANCE_STATUS_ID,
11819 CUSTOMER_VIEW_FLAG,
11820 MERCHANT_VIEW_FLAG,
11821 SELLABLE_FLAG,
11822 SYSTEM_ID,
11823 INSTANCE_TYPE_CODE,
11824 ACTIVE_START_DATE,
11825 ACTIVE_END_DATE,
11826 LOCATION_TYPE_CODE,
11827 LOCATION_ID,
11828 INV_ORGANIZATION_ID,
11829 INV_SUBINVENTORY_NAME,
11830 INV_LOCATOR_ID,
11831 PA_PROJECT_ID,
11832 PA_PROJECT_TASK_ID,
11833 IN_TRANSIT_ORDER_LINE_ID,
11834 WIP_JOB_ID,
11835 PO_ORDER_LINE_ID,
11836 LAST_OE_ORDER_LINE_ID,
11837 LAST_OE_RMA_LINE_ID,
11838 LAST_PO_PO_LINE_ID,
11839 LAST_OE_PO_NUMBER,
11840 LAST_WIP_JOB_ID,
11841 LAST_PA_PROJECT_ID,
11842 LAST_PA_TASK_ID,
11843 LAST_OE_AGREEMENT_ID,
11844 INSTALL_DATE,
11845 MANUALLY_CREATED_FLAG,
11846 RETURN_BY_DATE,
11847 ACTUAL_RETURN_DATE,
11848 CREATION_COMPLETE_FLAG,
11849 COMPLETENESS_FLAG,
11850 NULL VERSION_LABEL,
11851 NULL VERSION_LABEL_DESCRIPTION,
11852 CONTEXT,
11853 ATTRIBUTE1,
11854 ATTRIBUTE2,
11855 ATTRIBUTE3,
11856 ATTRIBUTE4,
11857 ATTRIBUTE5,
11858 ATTRIBUTE6,
11859 ATTRIBUTE7,
11860 ATTRIBUTE8,
11861 ATTRIBUTE9,
11862 ATTRIBUTE10,
11863 ATTRIBUTE11,
11864 ATTRIBUTE12,
11865 ATTRIBUTE13,
11866 ATTRIBUTE14,
11867 ATTRIBUTE15,
11868 OBJECT_VERSION_NUMBER,
11869 LAST_TXN_LINE_DETAIL_ID,
11870 INSTALL_LOCATION_TYPE_CODE,
11871 INSTALL_LOCATION_ID,
11872 INSTANCE_USAGE_CODE,
11873 LAST_VLD_ORGANIZATION_ID,
11874 CONFIG_INST_HDR_ID,
11875 CONFIG_INST_ITEM_ID,
11876 CONFIG_INST_REV_NUM,
11877 CONFIG_VALID_STATUS,
11878 INSTANCE_DESCRIPTION,
11879 -- Added for eam integration
11880 NETWORK_ASSET_FLAG,
11881 MAINTAINABLE_FLAG,
11882 PN_LOCATION_ID,
11883 ASSET_CRITICALITY_CODE,
11884 CATEGORY_ID,
11885 EQUIPMENT_GEN_OBJECT_ID,
11886 INSTANTIATION_FLAG,
11887 LINEAR_LOCATION_ID,
11888 OPERATIONAL_LOG_FLAG,
11889 CHECKIN_STATUS,
11890 SUPPLIER_WARRANTY_EXP_DATE,
11891 ATTRIBUTE16,
11892 ATTRIBUTE17,
11893 ATTRIBUTE18,
11894 ATTRIBUTE19,
11895 ATTRIBUTE20,
11896 ATTRIBUTE21,
11897 ATTRIBUTE22,
11898 ATTRIBUTE23,
11899 ATTRIBUTE24,
11900 ATTRIBUTE25,
11901 ATTRIBUTE26,
11902 ATTRIBUTE27,
11903 ATTRIBUTE28,
11904 ATTRIBUTE29,
11905 ATTRIBUTE30,
11906 -- End addition for eam integration
11907 -- Addition of columns for FA Integration
11908 PURCHASE_UNIT_PRICE,
11909 PURCHASE_CURRENCY_CODE,
11910 PAYABLES_UNIT_PRICE,
11911 PAYABLES_CURRENCY_CODE,
11912 SALES_UNIT_PRICE,
11913 SALES_CURRENCY_CODE,
11914 OPERATIONAL_STATUS_CODE,
11915 -- End addition of columns for FA Integration
11916 SOURCE_CODE -- Added Code for Siebel Genesis Project
11917 FROM csi_item_instances
11918 WHERE instance_id = p_instance_id
11919 FOR UPDATE OF OBJECT_VERSION_NUMBER ;
11920 l_curr_instance_rec curr_instance_rec%ROWTYPE;
11921
11922 CURSOR cur_instance_rec(p_instance_id IN NUMBER) IS
11923 SELECT last_vld_organization_id
11924 FROM csi_item_instances
11925 WHERE instance_id = p_instance_id;
11926
11927 l_cur_instance_rec cur_instance_rec%ROWTYPE;
11928
11929 CURSOR ins_hist_csr(p_instance_history_id NUMBER) IS
11930 SELECT INSTANCE_HISTORY_ID
11931 ,INSTANCE_ID
11932 ,TRANSACTION_ID
11933 ,OLD_INSTANCE_NUMBER
11934 ,NEW_INSTANCE_NUMBER
11935 ,OLD_EXTERNAL_REFERENCE
11936 ,NEW_EXTERNAL_REFERENCE
11937 ,OLD_INVENTORY_ITEM_ID
11938 ,NEW_INVENTORY_ITEM_ID
11939 ,OLD_INVENTORY_REVISION
11940 ,NEW_INVENTORY_REVISION
11941 ,OLD_INV_MASTER_ORGANIZATION_ID
11942 ,NEW_INV_MASTER_ORGANIZATION_ID
11943 ,OLD_SERIAL_NUMBER
11944 ,NEW_SERIAL_NUMBER
11945 ,OLD_MFG_SERIAL_NUMBER_FLAG
11946 ,NEW_MFG_SERIAL_NUMBER_FLAG
11947 ,OLD_LOT_NUMBER
11948 ,NEW_LOT_NUMBER
11949 ,OLD_QUANTITY
11950 ,NEW_QUANTITY
11951 ,OLD_UNIT_OF_MEASURE
11952 ,NEW_UNIT_OF_MEASURE
11953 ,OLD_ACCOUNTING_CLASS_CODE
11954 ,NEW_ACCOUNTING_CLASS_CODE
11955 ,OLD_INSTANCE_CONDITION_ID
11956 ,NEW_INSTANCE_CONDITION_ID
11957 ,OLD_INSTANCE_STATUS_ID
11958 ,NEW_INSTANCE_STATUS_ID
11959 ,OLD_CUSTOMER_VIEW_FLAG
11960 ,NEW_CUSTOMER_VIEW_FLAG
11961 ,OLD_MERCHANT_VIEW_FLAG
11962 ,NEW_MERCHANT_VIEW_FLAG
11963 ,OLD_SELLABLE_FLAG
11964 ,NEW_SELLABLE_FLAG
11965 ,OLD_SYSTEM_ID
11966 ,NEW_SYSTEM_ID
11967 ,OLD_INSTANCE_TYPE_CODE
11968 ,NEW_INSTANCE_TYPE_CODE
11969 ,OLD_ACTIVE_START_DATE
11970 ,NEW_ACTIVE_START_DATE
11971 ,OLD_ACTIVE_END_DATE
11972 ,NEW_ACTIVE_END_DATE
11973 ,OLD_LOCATION_TYPE_CODE
11974 ,NEW_LOCATION_TYPE_CODE
11975 ,OLD_LOCATION_ID
11976 ,NEW_LOCATION_ID
11977 ,OLD_INV_ORGANIZATION_ID
11978 ,NEW_INV_ORGANIZATION_ID
11979 ,OLD_INV_SUBINVENTORY_NAME
11980 ,NEW_INV_SUBINVENTORY_NAME
11981 ,OLD_INV_LOCATOR_ID
11982 ,NEW_INV_LOCATOR_ID
11983 ,OLD_PA_PROJECT_ID
11984 ,NEW_PA_PROJECT_ID
11985 ,OLD_PA_PROJECT_TASK_ID
11986 ,NEW_PA_PROJECT_TASK_ID
11987 ,OLD_IN_TRANSIT_ORDER_LINE_ID
11988 ,NEW_IN_TRANSIT_ORDER_LINE_ID
11989 ,OLD_WIP_JOB_ID
11990 ,NEW_WIP_JOB_ID
11991 ,OLD_PO_ORDER_LINE_ID
11992 ,NEW_PO_ORDER_LINE_ID
11993 ,OLD_COMPLETENESS_FLAG
11994 ,NEW_COMPLETENESS_FLAG
11995 ,OLD_CONTEXT
11996 ,NEW_CONTEXT
11997 ,OLD_ATTRIBUTE1
11998 ,NEW_ATTRIBUTE1
11999 ,OLD_ATTRIBUTE2
12000 ,NEW_ATTRIBUTE2
12001 ,OLD_ATTRIBUTE3
12002 ,NEW_ATTRIBUTE3
12003 ,OLD_ATTRIBUTE4
12004 ,NEW_ATTRIBUTE4
12005 ,OLD_ATTRIBUTE5
12006 ,NEW_ATTRIBUTE5
12007 ,OLD_ATTRIBUTE6
12008 ,NEW_ATTRIBUTE6
12009 ,OLD_ATTRIBUTE7
12010 ,NEW_ATTRIBUTE7
12011 ,OLD_ATTRIBUTE8
12012 ,NEW_ATTRIBUTE8
12013 ,OLD_ATTRIBUTE9
12014 ,NEW_ATTRIBUTE9
12015 ,OLD_ATTRIBUTE10
12016 ,NEW_ATTRIBUTE10
12017 ,OLD_ATTRIBUTE11
12018 ,NEW_ATTRIBUTE11
12019 ,OLD_ATTRIBUTE12
12020 ,NEW_ATTRIBUTE12
12021 ,OLD_ATTRIBUTE13
12022 ,NEW_ATTRIBUTE13
12023 ,OLD_ATTRIBUTE14
12024 ,NEW_ATTRIBUTE14
12025 ,OLD_ATTRIBUTE15
12026 ,NEW_ATTRIBUTE15
12027 ,FULL_DUMP_FLAG
12028 ,OLD_INST_LOC_TYPE_CODE
12029 ,NEW_INST_LOC_TYPE_CODE
12030 ,OLD_INST_LOC_ID
12031 ,NEW_INST_LOC_ID
12032 ,OLD_INST_USAGE_CODE
12033 ,NEW_INST_USAGE_CODE
12034 ,OLD_LAST_VLD_ORGANIZATION_ID
12035 ,NEW_LAST_VLD_ORGANIZATION_ID
12036 ,OLD_CONFIG_INST_REV_NUM
12037 ,NEW_CONFIG_INST_REV_NUM
12038 ,OLD_CONFIG_VALID_STATUS
12039 ,NEW_CONFIG_VALID_STATUS
12040 ,OLD_INSTANCE_DESCRIPTION
12041 ,NEW_INSTANCE_DESCRIPTION
12042 ,OLD_INSTALL_DATE
12043 ,NEW_INSTALL_DATE
12044 ,OLD_RETURN_BY_DATE
12045 ,NEW_RETURN_BY_DATE
12046 ,OLD_ACTUAL_RETURN_DATE
12047 ,NEW_ACTUAL_RETURN_DATE
12048 ,OLD_OE_AGREEMENT_ID
12049 ,NEW_OE_AGREEMENT_ID
12050 ,OLD_LAST_OE_ORDER_LINE_ID
12051 ,NEW_LAST_OE_ORDER_LINE_ID
12052 ,OLD_LAST_OE_RMA_LINE_ID
12053 ,NEW_LAST_OE_RMA_LINE_ID
12054 ,OLD_LAST_WIP_JOB_ID
12055 ,NEW_LAST_WIP_JOB_ID
12056 ,OLD_LAST_PO_PO_LINE_ID
12057 ,NEW_LAST_PO_PO_LINE_ID
12058 ,OLD_LAST_PA_PROJECT_ID
12059 ,NEW_LAST_PA_PROJECT_ID
12060 ,OLD_LAST_PA_TASK_ID
12061 ,NEW_LAST_PA_TASK_ID
12062 ,OLD_LAST_TXN_LINE_DETAIL_ID
12063 ,NEW_LAST_TXN_LINE_DETAIL_ID
12064 ,OLD_LAST_OE_PO_NUMBER
12065 ,NEW_LAST_OE_PO_NUMBER
12066 --start of column addition for eam integration--
12067 ,OLD_NETWORK_ASSET_FLAG
12068 ,NEW_NETWORK_ASSET_FLAG
12069 ,OLD_MAINTAINABLE_FLAG
12070 ,NEW_MAINTAINABLE_FLAG
12071 ,OLD_PN_LOCATION_ID
12072 ,NEW_PN_LOCATION_ID
12073 ,OLD_ASSET_CRITICALITY_CODE
12074 ,NEW_ASSET_CRITICALITY_CODE
12075 ,OLD_CATEGORY_ID
12076 ,NEW_CATEGORY_ID
12077 ,OLD_EQUIPMENT_GEN_OBJECT_ID
12078 ,NEW_EQUIPMENT_GEN_OBJECT_ID
12079 ,OLD_INSTANTIATION_FLAG
12080 ,NEW_INSTANTIATION_FLAG
12081 ,OLD_LINEAR_LOCATION_ID
12082 ,NEW_LINEAR_LOCATION_ID
12083 ,OLD_OPERATIONAL_LOG_FLAG
12084 ,NEW_OPERATIONAL_LOG_FLAG
12085 ,OLD_CHECKIN_STATUS
12086 ,NEW_CHECKIN_STATUS
12087 ,OLD_SUPPLIER_WARRANTY_EXP_DATE
12088 ,NEW_SUPPLIER_WARRANTY_EXP_DATE
12089 ,OLD_ATTRIBUTE16
12090 ,NEW_ATTRIBUTE16
12091 ,OLD_ATTRIBUTE17
12092 ,NEW_ATTRIBUTE17
12093 ,OLD_ATTRIBUTE18
12094 ,NEW_ATTRIBUTE18
12095 ,OLD_ATTRIBUTE19
12096 ,NEW_ATTRIBUTE19
12097 ,OLD_ATTRIBUTE20
12098 ,NEW_ATTRIBUTE20
12099 ,OLD_ATTRIBUTE21
12100 ,NEW_ATTRIBUTE21
12101 ,OLD_ATTRIBUTE22
12102 ,NEW_ATTRIBUTE22
12103 ,OLD_ATTRIBUTE23
12104 ,NEW_ATTRIBUTE23
12105 ,OLD_ATTRIBUTE24
12106 ,NEW_ATTRIBUTE24
12107 ,OLD_ATTRIBUTE25
12108 ,NEW_ATTRIBUTE25
12109 ,OLD_ATTRIBUTE26
12110 ,NEW_ATTRIBUTE26
12111 ,OLD_ATTRIBUTE27
12112 ,NEW_ATTRIBUTE27
12113 ,OLD_ATTRIBUTE28
12114 ,NEW_ATTRIBUTE28
12115 ,OLD_ATTRIBUTE29
12116 ,NEW_ATTRIBUTE29
12117 ,OLD_ATTRIBUTE30
12118 ,NEW_ATTRIBUTE30
12119 --end of column addition for eam integration--
12120 -- Addition of columns for FA Integration
12121 ,OLD_PAYABLES_UNIT_PRICE
12122 ,NEW_PAYABLES_UNIT_PRICE
12123 ,OLD_PAYABLES_CURRENCY_CODE
12124 ,NEW_PAYABLES_CURRENCY_CODE
12125 ,OLD_PURCHASE_UNIT_PRICE
12126 ,NEW_PURCHASE_UNIT_PRICE
12127 ,OLD_PURCHASE_CURRENCY_CODE
12128 ,NEW_PURCHASE_CURRENCY_CODE
12129 ,OLD_SALES_UNIT_PRICE
12130 ,NEW_SALES_UNIT_PRICE
12131 ,OLD_SALES_CURRENCY_CODE
12132 ,NEW_SALES_CURRENCY_CODE
12133 ,OLD_OPERATIONAL_STATUS_CODE
12134 ,NEW_OPERATIONAL_STATUS_CODE
12135 -- End addition of columns for FA Integration
12136 -- Begin Add Code for Siebel Genesis Project
12137 ,OLD_SOURCE_CODE
12138 ,NEW_SOURCE_CODE
12139 -- End Add Code for Siebel Genesis Project
12140 FROM csi_item_instances_h
12141 WHERE instance_history_id = p_instance_history_id
12142 FOR UPDATE OF OBJECT_VERSION_NUMBER ;
12143
12144
12145 CURSOR upd_ctr_assn_csr(p_source_object_id NUMBER) IS
12146 SELECT instance_association_id
12147 ,source_object_id
12148 ,counter_id
12149 ,object_version_number
12150 ,start_date_active --Add for bug 6963602
12151 FROM csi_counter_associations
12152 WHERE source_object_id = p_source_object_id
12153 AND source_object_code = 'CP';
12154
12155 -- Added cursor for bug 8516781, FP bug 8551918
12156 CURSOR relationship_csr (p_subject_id IN NUMBER) IS
12157 SELECT relationship_id,object_version_number
12158 FROM csi_ii_relationships
12159 WHERE (subject_id = p_subject_id
12160 or object_id = p_subject_id) -- added bug 8661671
12161 AND (active_end_date IS NULL OR active_end_date > SYSDATE); --Bug 9207673 FP Bug 9287115
12162
12163
12164 l_ins_hist_id NUMBER;
12165 l_ins_hist_csr ins_hist_csr%ROWTYPE;
12166 l_temp_rec VARCHAR2(1);
12167 l_temp_rec1 VARCHAR2(1);
12168 l_open_service VARCHAR2(1);
12169 l_config_key csi_utility_grp.config_instance_key;
12170 l_config_valid_status VARCHAR2(10);
12171 l_return_status VARCHAR2(10);
12172 l_return_message VARCHAR2(100);
12173 l_component_ins_type VARCHAR2(1):=NULL;
12174 l_config_hdr_id NUMBER;
12175 l_config_rev_nbr NUMBER;
12176 l_original_status_id NUMBER;
12177 l_original_system_id NUMBER;
12178 l_orig_install_date DATE;
12179 l_unexpire VARCHAR2(1);
12180 l_ins_flag VARCHAR2(1);
12181 l_temp VARCHAR2(1);
12182 l_eam_item BOOLEAN := FALSE;
12183 l_eam_item_type NUMBER;
12184 l_instance_history_id NUMBER;
12185 l_maintenance_object_type NUMBER:=3;
12186 l_reason_failed VARCHAR2(30);
12187 l_token VARCHAR2(30);
12188 l_lock_status NUMBER;
12189 l_counter_group_id NUMBER :=0;
12190 l_ctr_item_associations_rec csi_ctr_datastructures_pub.ctr_item_associations_rec;
12191 l_valid BOOLEAN := TRUE;
12192 l_creation_flag VARCHAR2(1);
12193 l_gen_object_id NUMBER;
12194 l_ctr_associations_tbl csi_ctr_datastructures_pub.counter_associations_tbl;
12195 l_ctr NUMBER;
12196 l_curr_maint_org_id NUMBER;
12197 l_latest_maint_org_id NUMBER;
12198 l_equipment_type NUMBER;
12199 l_network_asset_flag VARCHAR2(1);
12200 l_pn_location_id NUMBER;
12201
12202 l_wip_loc_chgd BOOLEAN := FALSE; --bug9553621
12203
12204 BEGIN
12205 -- Standard Start of API savepoint
12206 IF FND_API.To_Boolean( p_commit )
12207 THEN
12208 SAVEPOINT update_item_instance_pvt;
12209 END IF;
12210
12211 -- Standard call to check for call compatibility.
12212 IF NOT FND_API.Compatible_API_Call (l_api_version,
12213 p_api_version,
12214 l_api_name ,
12215 G_PKG_NAME )
12216 THEN
12217 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
12218 END IF;
12219
12220 -- Initialize message list if p_init_msg_list is set to TRUE.
12221 IF FND_API.to_Boolean( p_init_msg_list ) THEN
12222 FND_MSG_PUB.initialize;
12223 END IF;
12224
12225 -- Initialize API return status to success
12226 x_return_status := FND_API.G_RET_STS_SUCCESS;
12227 -- Check the profile option debug_level for debug message reporting
12228 l_debug_level:=fnd_profile.value('CSI_DEBUG_LEVEL');
12229 -- If debug_level = 1 then dump the procedure name
12230 IF (l_debug_level > 0) THEN
12231 csi_gen_utility_pvt.put_line ( 'update_item_instance_pvt');
12232 END IF;
12233 -- If the debug level = 2 then dump all the parameters values.
12234
12235 IF (l_debug_level > 1) THEN
12236 csi_gen_utility_pvt.put_line ( 'update_item_instance_pvt:' ||
12237 p_api_version ||'-'||
12238 p_commit ||'-'||
12239 p_init_msg_list );
12240
12241 --dump the records in a log file
12242 csi_gen_utility_pvt.dump_instance_rec(p_instance_rec);
12243 csi_gen_utility_pvt.dump_txn_rec(p_txn_rec);
12244 END IF;
12245 -- Start API body
12246 --
12247 -- Initialize the Instance count
12248 --
12249 If p_ins_count_rec.inv_count is NULL OR
12250 p_ins_count_rec.inv_count = FND_API.G_MISS_NUM THEN
12251 p_ins_count_rec.inv_count := 0;
12252 End if;
12253 --
12254 If p_ins_count_rec.generic_count is NULL OR
12255 p_ins_count_rec.generic_count = FND_API.G_MISS_NUM THEN
12256 p_ins_count_rec.generic_count := 0;
12257 End if;
12258 --
12259 If p_ins_count_rec.location_count is NULL OR
12260 p_ins_count_rec.location_count = FND_API.G_MISS_NUM THEN
12261 p_ins_count_rec.location_count := 0;
12262 End if;
12263 --
12264 If p_ins_count_rec.lookup_count is NULL OR
12265 p_ins_count_rec.lookup_count = FND_API.G_MISS_NUM THEN
12266 p_ins_count_rec.lookup_count := 0;
12267 End if;
12268 --
12269 -- check if the object_version_number passed matches with the one
12270 -- in the database else raise error
12271 OPEN curr_instance_rec(p_instance_rec.INSTANCE_ID);
12272 FETCH curr_instance_rec INTO l_curr_instance_rec;
12273 IF (l_curr_instance_rec.object_version_number <> nvl(p_instance_rec.OBJECT_VERSION_NUMBER,0)) THEN
12274 FND_MESSAGE.Set_Name('CSI', 'CSI_API_OBJ_VER_MISMATCH');
12275 FND_MSG_PUB.ADD;
12276 RAISE FND_API.G_EXC_ERROR;
12277 END IF;
12278 CLOSE curr_instance_rec;
12279
12280 /* Fix for bug 4632441 : Here g_miss and null values for eam_columns are flip-flopped
12281 since EAM API treats g_miss and null value differently compared to CSI API */
12282 IF p_instance_rec.department_id = FND_API.G_MISS_NUM THEN
12283 p_instance_rec.department_id := NULL;
12284 ELSIF p_instance_rec.department_id IS NULL THEN
12285 p_instance_rec.department_id := FND_API.G_MISS_NUM;
12286 END IF;
12287
12288 IF p_instance_rec.wip_accounting_class = FND_API.G_MISS_CHAR THEN
12289 p_instance_rec.wip_accounting_class := NULL;
12290 ELSIF p_instance_rec.wip_accounting_class IS NULL THEN
12291 p_instance_rec.wip_accounting_class := FND_API.G_MISS_CHAR;
12292 END IF;
12293
12294 IF p_instance_rec.area_id = FND_API.G_MISS_NUM THEN
12295 p_instance_rec.area_id := NULL;
12296 ELSIF p_instance_rec.area_id IS NULL THEN
12297 p_instance_rec.area_id := FND_API.G_MISS_NUM;
12298 END IF;
12299
12300
12301
12302
12303 --Added for MACD lock functionality
12304 IF p_instance_rec.instance_id IS NOT NULL AND
12305 p_instance_rec.instance_id <> fnd_api.g_miss_num
12306 THEN
12307 csi_item_instance_pvt.get_instance_lock_status
12308 ( p_instance_id => p_instance_rec.instance_id ,
12309 p_lock_status => l_lock_status
12310 );
12311 IF (p_txn_rec.transaction_type_id = 401 AND
12312 (l_lock_status = 1 OR p_called_from_rel = fnd_api.g_true)) OR
12313 (l_lock_status = 0)
12314 THEN
12315 NULL;
12316 ELSE
12317 FND_MESSAGE.SET_NAME('CSI','CSI_INSTANCE_LOCKED');
12318 FND_MESSAGE.SET_TOKEN('INSTANCE_ID',p_instance_rec.instance_id);
12319 FND_MSG_PUB.ADD;
12320 RAISE FND_API.G_EXC_ERROR;
12321 END IF;
12322 END IF;
12323 -- End addition for MACD lock functionality
12324
12325 OPEN cur_instance_rec(p_instance_rec.INSTANCE_ID);
12326 FETCH cur_instance_rec INTO l_cur_instance_rec;
12327 CLOSE cur_instance_rec;
12328
12329 l_mod_curr_instance_rec.INSTANCE_ID := l_curr_instance_rec.INSTANCE_ID;
12330 l_mod_curr_instance_rec.INSTANCE_NUMBER := l_curr_instance_rec.INSTANCE_NUMBER;
12331 l_mod_curr_instance_rec.EXTERNAL_REFERENCE := l_curr_instance_rec.EXTERNAL_REFERENCE ;
12332 l_mod_curr_instance_rec.INVENTORY_ITEM_ID := l_curr_instance_rec.INVENTORY_ITEM_ID ;
12333 l_mod_curr_instance_rec.VLD_ORGANIZATION_ID := l_curr_instance_rec.VLD_ORGANIZATION_ID ;
12334 l_mod_curr_instance_rec.INVENTORY_REVISION := l_curr_instance_rec.INVENTORY_REVISION ;
12335 l_mod_curr_instance_rec.INV_MASTER_ORGANIZATION_ID := l_curr_instance_rec.INV_MASTER_ORGANIZATION_ID ;
12336 l_mod_curr_instance_rec.SERIAL_NUMBER := l_curr_instance_rec.SERIAL_NUMBER ;
12337 l_mod_curr_instance_rec.MFG_SERIAL_NUMBER_FLAG := l_curr_instance_rec.MFG_SERIAL_NUMBER_FLAG ;
12338 l_mod_curr_instance_rec.LOT_NUMBER := l_curr_instance_rec.LOT_NUMBER ;
12339 l_mod_curr_instance_rec.QUANTITY := l_curr_instance_rec.QUANTITY ;
12340 l_mod_curr_instance_rec.UNIT_OF_MEASURE := l_curr_instance_rec.UNIT_OF_MEASURE ;
12341 l_mod_curr_instance_rec.ACCOUNTING_CLASS_CODE := l_curr_instance_rec.ACCOUNTING_CLASS_CODE ;
12342 l_mod_curr_instance_rec.INSTANCE_CONDITION_ID := l_curr_instance_rec.INSTANCE_CONDITION_ID ;
12343 l_mod_curr_instance_rec.INSTANCE_STATUS_ID := l_curr_instance_rec.INSTANCE_STATUS_ID ;
12344 l_mod_curr_instance_rec.CUSTOMER_VIEW_FLAG := l_curr_instance_rec.CUSTOMER_VIEW_FLAG ;
12345 l_mod_curr_instance_rec.MERCHANT_VIEW_FLAG := l_curr_instance_rec.MERCHANT_VIEW_FLAG ;
12346 l_mod_curr_instance_rec.SELLABLE_FLAG := l_curr_instance_rec.SELLABLE_FLAG ;
12347 l_mod_curr_instance_rec.SYSTEM_ID := l_curr_instance_rec.SYSTEM_ID ;
12348 l_mod_curr_instance_rec.INSTANCE_TYPE_CODE := l_curr_instance_rec.INSTANCE_TYPE_CODE ;
12349 l_mod_curr_instance_rec.ACTIVE_START_DATE := l_curr_instance_rec.ACTIVE_START_DATE ;
12350 l_mod_curr_instance_rec.ACTIVE_END_DATE := l_curr_instance_rec.ACTIVE_END_DATE ;
12351 l_mod_curr_instance_rec.LOCATION_TYPE_CODE := l_curr_instance_rec.LOCATION_TYPE_CODE ;
12352 l_mod_curr_instance_rec.LOCATION_ID := l_curr_instance_rec.LOCATION_ID ;
12353 l_mod_curr_instance_rec.INV_ORGANIZATION_ID := l_curr_instance_rec.INV_ORGANIZATION_ID ;
12354 l_mod_curr_instance_rec.INV_SUBINVENTORY_NAME := l_curr_instance_rec.INV_SUBINVENTORY_NAME ;
12355 l_mod_curr_instance_rec.INV_LOCATOR_ID := l_curr_instance_rec.INV_LOCATOR_ID ;
12356 l_mod_curr_instance_rec.PA_PROJECT_ID := l_curr_instance_rec.PA_PROJECT_ID ;
12357 l_mod_curr_instance_rec.PA_PROJECT_TASK_ID := l_curr_instance_rec.PA_PROJECT_TASK_ID ;
12358 l_mod_curr_instance_rec.IN_TRANSIT_ORDER_LINE_ID := l_curr_instance_rec.IN_TRANSIT_ORDER_LINE_ID ;
12359 l_mod_curr_instance_rec.WIP_JOB_ID := l_curr_instance_rec.WIP_JOB_ID ;
12360 l_mod_curr_instance_rec.PO_ORDER_LINE_ID := l_curr_instance_rec.PO_ORDER_LINE_ID ;
12361 l_mod_curr_instance_rec.LAST_OE_ORDER_LINE_ID := l_curr_instance_rec.LAST_OE_ORDER_LINE_ID ;
12362 l_mod_curr_instance_rec.LAST_OE_RMA_LINE_ID := l_curr_instance_rec.LAST_OE_RMA_LINE_ID ;
12363 l_mod_curr_instance_rec.LAST_PO_PO_LINE_ID := l_curr_instance_rec.LAST_PO_PO_LINE_ID ;
12364 l_mod_curr_instance_rec.LAST_OE_PO_NUMBER := l_curr_instance_rec.LAST_OE_PO_NUMBER ;
12365 l_mod_curr_instance_rec.LAST_WIP_JOB_ID := l_curr_instance_rec.LAST_WIP_JOB_ID ;
12366 l_mod_curr_instance_rec.LAST_PA_PROJECT_ID := l_curr_instance_rec.LAST_PA_PROJECT_ID ;
12367 l_mod_curr_instance_rec.LAST_PA_TASK_ID := l_curr_instance_rec.LAST_PA_TASK_ID ;
12368 l_mod_curr_instance_rec.LAST_OE_AGREEMENT_ID := l_curr_instance_rec.LAST_OE_AGREEMENT_ID ;
12369 l_mod_curr_instance_rec.INSTALL_DATE := l_curr_instance_rec.INSTALL_DATE ;
12370 l_mod_curr_instance_rec.MANUALLY_CREATED_FLAG := l_curr_instance_rec.MANUALLY_CREATED_FLAG ;
12371 l_mod_curr_instance_rec.RETURN_BY_DATE := l_curr_instance_rec.RETURN_BY_DATE ;
12372 l_mod_curr_instance_rec.ACTUAL_RETURN_DATE := l_curr_instance_rec.ACTUAL_RETURN_DATE ;
12373 l_mod_curr_instance_rec.CREATION_COMPLETE_FLAG := l_curr_instance_rec.CREATION_COMPLETE_FLAG ;
12374 l_mod_curr_instance_rec.COMPLETENESS_FLAG := l_curr_instance_rec.COMPLETENESS_FLAG ;
12375 l_mod_curr_instance_rec.VERSION_LABEL := l_curr_instance_rec.VERSION_LABEL ;
12376 l_mod_curr_instance_rec.VERSION_LABEL_DESCRIPTION := l_curr_instance_rec.VERSION_LABEL_DESCRIPTION ;
12377 l_mod_curr_instance_rec.CONTEXT := l_curr_instance_rec.CONTEXT ;
12378 l_mod_curr_instance_rec.ATTRIBUTE1 := l_curr_instance_rec.ATTRIBUTE1 ;
12379 l_mod_curr_instance_rec.ATTRIBUTE2 := l_curr_instance_rec.ATTRIBUTE2 ;
12380 l_mod_curr_instance_rec.ATTRIBUTE3 := l_curr_instance_rec.ATTRIBUTE3 ;
12381 l_mod_curr_instance_rec.ATTRIBUTE4 := l_curr_instance_rec.ATTRIBUTE4 ;
12382 l_mod_curr_instance_rec.ATTRIBUTE5 := l_curr_instance_rec.ATTRIBUTE5 ;
12383 l_mod_curr_instance_rec.ATTRIBUTE6 := l_curr_instance_rec.ATTRIBUTE6 ;
12384 l_mod_curr_instance_rec.ATTRIBUTE7 := l_curr_instance_rec.ATTRIBUTE7 ;
12385 l_mod_curr_instance_rec.ATTRIBUTE8 := l_curr_instance_rec.ATTRIBUTE8 ;
12386 l_mod_curr_instance_rec.ATTRIBUTE9 := l_curr_instance_rec.ATTRIBUTE9 ;
12387 l_mod_curr_instance_rec.ATTRIBUTE10 := l_curr_instance_rec.ATTRIBUTE10 ;
12388 l_mod_curr_instance_rec.ATTRIBUTE11 := l_curr_instance_rec.ATTRIBUTE11 ;
12389 l_mod_curr_instance_rec.ATTRIBUTE12 := l_curr_instance_rec.ATTRIBUTE12 ;
12390 l_mod_curr_instance_rec.ATTRIBUTE13 := l_curr_instance_rec.ATTRIBUTE13 ;
12391 l_mod_curr_instance_rec.ATTRIBUTE14 := l_curr_instance_rec.ATTRIBUTE14 ;
12392 l_mod_curr_instance_rec.ATTRIBUTE15 := l_curr_instance_rec.ATTRIBUTE15 ;
12393 l_mod_curr_instance_rec.OBJECT_VERSION_NUMBER := l_curr_instance_rec.OBJECT_VERSION_NUMBER ;
12394 l_mod_curr_instance_rec.LAST_TXN_LINE_DETAIL_ID := l_curr_instance_rec.LAST_TXN_LINE_DETAIL_ID ;
12395 l_mod_curr_instance_rec.INSTALL_LOCATION_TYPE_CODE := l_curr_instance_rec.INSTALL_LOCATION_TYPE_CODE ;
12396 l_mod_curr_instance_rec.INSTALL_LOCATION_ID := l_curr_instance_rec.INSTALL_LOCATION_ID ;
12397 l_mod_curr_instance_rec.INSTANCE_USAGE_CODE := l_curr_instance_rec.INSTANCE_USAGE_CODE ;
12398 --start of code for eam integration--
12399 l_mod_curr_instance_rec.NETWORK_ASSET_FLAG := l_curr_instance_rec.NETWORK_ASSET_FLAG ;
12400 l_mod_curr_instance_rec.MAINTAINABLE_FLAG := l_curr_instance_rec.MAINTAINABLE_FLAG ;
12401 l_mod_curr_instance_rec.PN_LOCATION_ID := l_curr_instance_rec.PN_LOCATION_ID ;
12402 l_mod_curr_instance_rec.ASSET_CRITICALITY_CODE := l_curr_instance_rec.ASSET_CRITICALITY_CODE ;
12403 l_mod_curr_instance_rec.CATEGORY_ID := l_curr_instance_rec.CATEGORY_ID ;
12404 l_mod_curr_instance_rec.EQUIPMENT_GEN_OBJECT_ID := l_curr_instance_rec.EQUIPMENT_GEN_OBJECT_ID ;
12405 l_mod_curr_instance_rec.INSTANTIATION_FLAG := l_curr_instance_rec.INSTANTIATION_FLAG ;
12406 l_mod_curr_instance_rec.LINEAR_LOCATION_ID := l_curr_instance_rec.LINEAR_LOCATION_ID ;
12407 l_mod_curr_instance_rec.OPERATIONAL_LOG_FLAG := l_curr_instance_rec.OPERATIONAL_LOG_FLAG ;
12408 l_mod_curr_instance_rec.CHECKIN_STATUS := l_curr_instance_rec.CHECKIN_STATUS ;
12409 l_mod_curr_instance_rec.SUPPLIER_WARRANTY_EXP_DATE := l_curr_instance_rec.SUPPLIER_WARRANTY_EXP_DATE ;
12410 l_mod_curr_instance_rec.ATTRIBUTE16 := l_curr_instance_rec.ATTRIBUTE16 ;
12411 l_mod_curr_instance_rec.ATTRIBUTE17 := l_curr_instance_rec.ATTRIBUTE17 ;
12412 l_mod_curr_instance_rec.ATTRIBUTE18 := l_curr_instance_rec.ATTRIBUTE18 ;
12413 l_mod_curr_instance_rec.ATTRIBUTE19 := l_curr_instance_rec.ATTRIBUTE19 ;
12414 l_mod_curr_instance_rec.ATTRIBUTE20 := l_curr_instance_rec.ATTRIBUTE20 ;
12415 l_mod_curr_instance_rec.ATTRIBUTE21 := l_curr_instance_rec.ATTRIBUTE21 ;
12416 l_mod_curr_instance_rec.ATTRIBUTE22 := l_curr_instance_rec.ATTRIBUTE22 ;
12417 l_mod_curr_instance_rec.ATTRIBUTE23 := l_curr_instance_rec.ATTRIBUTE23 ;
12418 l_mod_curr_instance_rec.ATTRIBUTE24 := l_curr_instance_rec.ATTRIBUTE24 ;
12419 l_mod_curr_instance_rec.ATTRIBUTE25 := l_curr_instance_rec.ATTRIBUTE25 ;
12420 l_mod_curr_instance_rec.ATTRIBUTE26 := l_curr_instance_rec.ATTRIBUTE26 ;
12421 l_mod_curr_instance_rec.ATTRIBUTE27 := l_curr_instance_rec.ATTRIBUTE27 ;
12422 l_mod_curr_instance_rec.ATTRIBUTE28 := l_curr_instance_rec.ATTRIBUTE28 ;
12423 l_mod_curr_instance_rec.ATTRIBUTE29 := l_curr_instance_rec.ATTRIBUTE29 ;
12424 l_mod_curr_instance_rec.ATTRIBUTE30 := l_curr_instance_rec.ATTRIBUTE30 ;
12425 --end of code for eam integration--
12426 -- Addition of columns for FA Integration
12427 l_mod_curr_instance_rec.PAYABLES_UNIT_PRICE := l_curr_instance_rec.PAYABLES_UNIT_PRICE ;
12428 l_mod_curr_instance_rec.PAYABLES_CURRENCY_CODE := l_curr_instance_rec.PAYABLES_CURRENCY_CODE ;
12429 l_mod_curr_instance_rec.PURCHASE_UNIT_PRICE := l_curr_instance_rec.PURCHASE_UNIT_PRICE ;
12430 l_mod_curr_instance_rec.PURCHASE_CURRENCY_CODE := l_curr_instance_rec.PURCHASE_CURRENCY_CODE ;
12431 l_mod_curr_instance_rec.SALES_UNIT_PRICE := l_curr_instance_rec.SALES_UNIT_PRICE ;
12432 l_mod_curr_instance_rec.SALES_CURRENCY_CODE := l_curr_instance_rec.SALES_CURRENCY_CODE ;
12433 l_mod_curr_instance_rec.OPERATIONAL_STATUS_CODE := l_curr_instance_rec.OPERATIONAL_STATUS_CODE ;
12434 -- End addition of columns for FA Integration
12435 -- Begin Add Code for Siebel Genesis Project
12436 l_mod_curr_instance_rec.SOURCE_CODE := l_curr_instance_rec.SOURCE_CODE;
12437 -- End Add Code for Siebel Genesis Project
12438
12439 csi_item_instance_vld_pvt.get_merge_rec (p_instance_rec => p_instance_rec,
12440 l_curr_instance_rec => l_mod_curr_instance_rec,
12441 l_get_instance_rec => l_get_instance_rec
12442 );
12443 l_wip_loc_chgd := FALSE;
12444
12445 --Added for bug 2766787
12446 IF p_instance_rec.location_type_code='INVENTORY'
12447 THEN
12448 p_instance_rec.vld_organization_id := p_instance_rec.inv_organization_id;
12449 --bug 9553621 for cmro start
12450 ELSIF p_instance_rec.location_type_code='WIP'
12451 AND p_txn_rec.transaction_type_id = 203
12452 AND (p_instance_rec.WIP_JOB_ID IS NOT NULL AND
12453 p_instance_rec.WIP_JOB_ID <> FND_API.G_MISS_NUM)
12454 AND ((p_instance_rec.vld_organization_id IS NULL) OR
12455 (p_instance_rec.vld_organization_id = FND_API.G_MISS_NUM))
12456 THEN
12457 BEGIN
12458 SELECT ORGANIZATION_ID
12459 INTO p_instance_rec.vld_organization_id
12460 FROM wip_discrete_jobs
12461 WHERE WIP_ENTITY_ID = p_instance_rec.WIP_JOB_ID;
12462
12463 l_wip_loc_chgd := TRUE;
12464 EXCEPTION
12465 WHEN OTHERS THEN
12466 null;
12467 END;
12468 --bug 9553621 for cmro end
12469 END IF;
12470 --End addition for bug 2766787
12471 IF ((p_instance_rec.vld_organization_id IS NULL) OR
12472 (p_instance_rec.vld_organization_id = FND_API.G_MISS_NUM))
12473 THEN
12474 p_instance_rec.vld_organization_id := l_cur_instance_rec.last_vld_organization_id;
12475 l_get_instance_rec.vld_organization_id := l_cur_instance_rec.last_vld_organization_id;
12476 ELSE
12477 l_get_instance_rec.vld_organization_id := p_instance_rec.vld_organization_id;
12478 END IF;
12479
12480 l_last_vld_organization_id := p_instance_rec.vld_organization_id;
12481
12482 --bug 9553621
12483 IF (NOT l_wip_loc_chgd) AND (l_get_instance_rec.location_type_code <> 'INVENTORY' AND
12484 l_cur_instance_rec.last_vld_organization_id <> l_get_instance_rec.vld_organization_id
12485 AND l_curr_instance_rec.instance_usage_code <> 'IN_TRANSIT') --Added for bug 6188180
12486 THEN
12487 FND_MESSAGE.Set_Name('CSI', 'CSI_CANNOT_MODIFY_VLD_ORG');
12488 FND_MSG_PUB.ADD;
12489 RAISE FND_API.G_EXC_ERROR;
12490 END IF;
12491
12492 -- Check if all the required parameters are passed
12493 CSI_Item_Instance_vld_pvt.Check_Reqd_Param_num
12494 ( p_instance_rec.INSTANCE_ID ,
12495 ' p_instance_rec.INSTANCE_ID ',
12496 l_api_name );
12497
12498 -- Check if the instance id is valid
12499 IF NOT(CSI_Item_Instance_vld_pvt.Is_InstanceID_Valid
12500 (p_instance_rec.INSTANCE_ID,
12501 TRUE )) THEN
12502 RAISE FND_API.G_EXC_ERROR;
12503 END IF;
12504 --FND_File.Put_Line(Fnd_File.LOG,'p_validation_mode is :'||p_validation_mode);
12505 IF (p_validation_mode <> 'U')
12506 THEN
12507
12508 -- The following sequence will be set only from the Data Correction
12509 l_current_val := -9999999;
12510 --
12511 Begin
12512 select CSI_II_FORWARD_SYNC_TEMP_S.CURRVAL
12513 into l_current_val
12514 FROM DUAL;
12515 Exception
12516 when others then
12517 l_current_val := -9999999;
12518 End;
12519 --
12520 -- Proceed with Forward SYnch check if the sequence does not return any value.
12521 IF l_current_val = -9999999 THEN
12522 IF NOT(CSI_Item_Instance_vld_pvt.Is_Forward_Synch
12523 (p_instance_id => p_instance_rec.INSTANCE_ID,
12524 p_stop_all_txn => fnd_api.g_true,
12525 p_mtl_txn_id => fnd_api.g_miss_num)) THEN
12526 FND_MESSAGE.Set_Name('CSI', 'CSI_API_NO_FORWARD_SYNCH');
12527 FND_MESSAGE.Set_Token('INSTANCE', p_instance_rec.INSTANCE_ID);
12528 FND_MSG_PUB.ADD;
12529 RAISE FND_API.G_EXC_ERROR;
12530 END IF;
12531 ELSE -- Even if seq exists, stop later txns
12532 IF NOT(CSI_Item_Instance_vld_pvt.Is_Forward_Synch
12533 (p_instance_id => p_instance_rec.INSTANCE_ID,
12534 p_stop_all_txn => fnd_api.g_false, -- Stop only later txns
12535 p_mtl_txn_id => p_txn_rec.inv_material_transaction_id)) THEN
12536 FND_MESSAGE.Set_Name('CSI', 'CSI_API_NO_FORWARD_SYNCH');
12537 FND_MESSAGE.Set_Token('INSTANCE', p_instance_rec.INSTANCE_ID);
12538 FND_MSG_PUB.ADD;
12539 RAISE FND_API.G_EXC_ERROR;
12540 END IF;
12541 END IF;
12542 --
12543 -- validation for Instance id
12544 IF ((p_instance_rec.instance_id IS NULL) OR
12545 (p_instance_rec.instance_id <> FND_API.G_MISS_NUM)) THEN
12546 IF ((p_instance_rec.instance_id IS NULL) OR
12547 (p_instance_rec.instance_id <> l_curr_instance_rec.instance_id)) THEN
12548 FND_MESSAGE.Set_Name('CSI', 'CSI_API_UPD_NOT_ALLOWED');
12549 FND_MESSAGE.Set_Token('COLUMN', 'INSTANCE_ID');
12550 FND_MSG_PUB.ADD;
12551 RAISE FND_API.G_EXC_ERROR;
12552 END IF;
12553 END IF;
12554
12555 -- validation for Instance Number
12556 IF ((p_instance_rec.instance_number IS NULL) OR
12557 (p_instance_rec.instance_number <> FND_API.G_MISS_CHAR)) THEN
12558 IF ((p_instance_rec.instance_number IS NULL) OR
12559 (p_instance_rec.instance_number <> l_curr_instance_rec.instance_number))
12560 THEN
12561 -- Added for eam integration
12562 IF NOT csi_item_Instance_Vld_pvt.Is_InstanceNum_Valid(p_instance_rec.instance_id,
12563 p_instance_rec.instance_number,
12564 'UPDATE')
12565 THEN
12566 RAISE fnd_api.g_exc_error;
12567 END IF;
12568 -- End addition for eam integration
12569 /*
12570 FND_MESSAGE.Set_Name('CSI', 'CSI_API_UPD_NOT_ALLOWED');
12571 FND_MESSAGE.Set_Token('COLUMN', 'INSTANCE_NUMBER');
12572 FND_MSG_PUB.ADD;
12573 RAISE FND_API.G_EXC_ERROR;
12574 */
12575 END IF;
12576 END IF;
12577 -- validation for Inventory Item id
12578
12579 --start change for BUG:6176621
12580
12581 /* IF ((p_instance_rec.inventory_item_id IS NULL) OR
12582 (p_instance_rec.inventory_item_id <> FND_API.G_MISS_NUM)) THEN
12583 IF ((p_instance_rec.inventory_item_id IS NULL) OR
12584 (p_instance_rec.inventory_item_id <> l_curr_instance_rec.inventory_item_id)) THEN
12585 */
12586 IF p_txn_rec.transaction_type_id = 205
12587 THEN
12588 SELECT count(*)
12589 INTO l_number_open_ro
12590 FROM CSD_REPAIRS cr
12591 where cr.STATUS <> 'C'AND
12592 (cr.CUSTOMER_PRODUCT_ID = p_instance_rec.instance_id or exists
12593 (select 'X' from csd_product_txns_v cptv
12594 where cptv.repair_line_id = cr.repair_line_id and
12595 (cptv.source_instance_id = p_instance_rec.instance_id or
12596 cptv.non_source_instance_id = p_instance_rec.instance_id)));
12597
12598 IF(l_number_open_ro>0)
12599 THEN
12600 FND_MESSAGE.Set_Name('CSI', 'CSI_OPEN_RO_EXISTS');
12601 FND_MESSAGE.Set_Token('COLUMN', 'INVENTORY_ITEM_ID OR SERIAL_NUMBER');
12602 FND_MSG_PUB.ADD;
12603 RAISE FND_API.G_EXC_ERROR;
12604
12605 END IF;
12606 END IF;
12607
12608 --validation for open depot repair orders for CMRO
12609
12610 IF p_instance_rec.inventory_item_id IS NULL THEN
12611 FND_MESSAGE.Set_Name('CSI', 'CSI_API_INVALID_ITEM');
12612 FND_MESSAGE.Set_Token('INVENTORY_ITEM_ID',p_instance_rec.inventory_item_id);
12613 fnd_message.set_token('INVENTORY_ORGANIZATION_ID',p_instance_rec.vld_organization_id);
12614 FND_MSG_PUB.ADD;
12615 RAISE FND_API.G_EXC_ERROR;
12616 ELSE
12617 IF (p_instance_rec.inventory_item_id <> FND_API.G_MISS_NUM)
12618 AND
12619 (p_instance_rec.inventory_item_id <> l_curr_instance_rec.inventory_item_id)
12620 THEN
12621 IF p_txn_rec.transaction_type_id = 205
12622
12623 THEN
12624 l_part_or_serial_change := TRUE;
12625 ELSE
12626 FND_MESSAGE.Set_Name('CSI', 'CSI_API_UPD_NOT_ALLOWED');
12627 FND_MESSAGE.Set_Token('COLUMN', 'INVENTORY_ITEM_ID');
12628 FND_MSG_PUB.ADD;
12629 RAISE FND_API.G_EXC_ERROR;
12630 END IF;
12631 END IF;
12632 END IF;
12633
12634
12635 IF nvl(p_instance_rec.serial_number, fnd_api.g_miss_char) <> fnd_api.g_miss_char
12636 AND
12637 p_instance_rec.serial_number <> l_curr_instance_rec.serial_number
12638 THEN
12639 IF p_txn_rec.transaction_type_id = 205
12640
12641 THEN
12642 l_part_or_serial_change := TRUE;
12643 /*ELSE -- Commented for bug 6965008
12644 -- Modified else block for the bug 6875664, base bug 6531599
12645 IF p_txn_rec.transaction_type_id = 1 THEN
12646 l_mtl_txn_tbl.DELETE;
12647 CSI_Item_Instance_vld_pvt.get_mtl_txn_for_srl(
12648 p_inventory_item_id => p_instance_rec.inventory_item_id,
12649 p_serial_number => p_instance_rec.serial_number,
12650 x_mtl_txn_tbl => l_mtl_txn_tbl);
12651 IF NVL(l_mtl_txn_tbl.Count,0) > 0 THEN
12652 FND_MESSAGE.Set_Name('CSI', 'CSI_API_UPD_NOT_ALLOWED');
12653 FND_MESSAGE.Set_Token('COLUMN', 'SERIAL_NUMBER');
12654 FND_MSG_PUB.ADD;
12655 RAISE FND_API.G_EXC_ERROR;
12656 END IF;
12657 ELSE
12658 FND_MESSAGE.Set_Name('CSI', 'CSI_API_UPD_NOT_ALLOWED');
12659 FND_MESSAGE.Set_Token('COLUMN', 'SERIAL_NUMBER');
12660 FND_MSG_PUB.ADD;
12661 RAISE FND_API.G_EXC_ERROR;
12662 END IF;
12663 */ -- Commented for bug 6965008
12664 END IF;
12665 END IF;
12666 --end of code for 6176621
12667
12668 --
12669 IF p_instance_rec.instance_status_id IS NULL THEN
12670 FND_MESSAGE.Set_Name('CSI','CSI_API_MANDATORY_STATUS');
12671 FND_MSG_PUB.ADD;
12672 RAISE FND_API.G_EXC_ERROR;
12673 END IF;
12674 --
12675 IF p_instance_rec.quantity IS NULL THEN
12676 FND_MESSAGE.Set_Name('CSI','CSI_API_MANDATORY_QUANTITY');
12677 FND_MSG_PUB.ADD;
12678 RAISE FND_API.G_EXC_ERROR;
12679 END IF;
12680 --
12681 IF p_instance_rec.unit_of_measure IS NULL THEN
12682 FND_MESSAGE.Set_Name('CSI','CSI_API_MANDATORY_UOM');
12683 FND_MSG_PUB.ADD;
12684 RAISE FND_API.G_EXC_ERROR;
12685 END IF;
12686 --
12687 -- validation for Inv Master Organization Id
12688 -- srramakr Bug 4163719. Master Organization can be changed under certain circumstances.
12689 -- For those customers who maintain multiple Inventory Master Oraganizations, shipping might
12690 -- happen from one org and RMA into another. Under these scenarios, the master organization
12691 -- will change. When this transaction lands in IB, we need to check the combination of
12692 -- Master org and Vld org and make the update. If the combination is not valid, we error out.
12693 --
12694 IF ((p_instance_rec.inv_master_organization_id IS NULL) OR
12695 (p_instance_rec.inv_master_organization_id <> FND_API.G_MISS_NUM)) THEN
12696 IF ((p_instance_rec.inv_master_organization_id IS NULL) OR
12697 (p_instance_rec.inv_master_organization_id <>
12698 l_curr_instance_rec.inv_master_organization_id)) THEN
12699 BEGIN
12700 SELECT 'x'
12701 INTO l_temp
12702 FROM mtl_parameters
12703 WHERE organization_id = p_instance_rec.vld_organization_id
12704 AND master_organization_id = p_instance_rec.inv_master_organization_id;
12705 EXCEPTION
12706 WHEN NO_DATA_FOUND THEN
12707 FND_MESSAGE.SET_NAME('CSI','CSI_INVALID_VLD_MAST_COMB');
12708 FND_MSG_PUB.Add;
12709 RAISE FND_API.G_EXC_ERROR;
12710 END;
12711 /***** FND_MESSAGE.Set_Name('CSI', 'CSI_API_UPD_NOT_ALLOWED');
12712 FND_MESSAGE.Set_Token('COLUMN', 'INV_MASTER_ORGANIZATION_ID');
12713 FND_MSG_PUB.ADD;
12714 RAISE FND_API.G_EXC_ERROR; *****/
12715 END IF;
12716 END IF;
12717 --
12718
12719
12720 IF (p_instance_rec.location_id IS NULL OR
12721 p_instance_rec.location_id =fnd_api.g_miss_num)
12722 THEN
12723 IF p_instance_rec.location_type_code IN ('WIP','HR_LOCATIONS','PROJECT','IN_TRANSIT','PO','INTERNAL_SITE')
12724 THEN
12725 BEGIN
12726 SELECT location_id
12727 INTO p_instance_rec.location_id
12728 FROM hr_all_organization_units
12729 WHERE organization_id = p_instance_rec.vld_organization_id;
12730
12731 l_get_instance_rec.location_id:=p_instance_rec.location_id;
12732
12733 EXCEPTION
12734 WHEN NO_DATA_FOUND THEN
12735 fnd_message.set_name('CSI','CSI_NO_HR_LOCATIONS');
12736 fnd_message.set_token('ORGANIZATION_ID',p_instance_rec.vld_organization_id);
12737 fnd_msg_pub.ADD;
12738 RAISE fnd_api.g_exc_error;
12739 END;
12740 IF p_instance_rec.location_id IS NULL
12741 THEN
12742 fnd_message.set_name('CSI','CSI_NO_HR_LOCATIONS');
12743 fnd_message.set_token('ORGANIZATION_ID',p_instance_rec.vld_organization_id);
12744 fnd_msg_pub.ADD;
12745 RAISE fnd_api.g_exc_error;
12746 END IF;
12747 END IF;
12748 END IF;
12749
12750 IF (p_instance_rec.install_location_id IS NULL OR
12751 p_instance_rec.install_location_id =fnd_api.g_miss_num)
12752 THEN
12753 IF p_instance_rec.install_location_type_code IN ('WIP','HR_LOCATIONS','PROJECT','IN_TRANSIT','PO','INTERNAL_SITE')
12754 THEN
12755 BEGIN
12756 SELECT location_id
12757 INTO p_instance_rec.install_location_id
12758 FROM hr_all_organization_units
12759 WHERE organization_id = p_instance_rec.vld_organization_id;
12760 EXCEPTION
12761 WHEN NO_DATA_FOUND THEN
12762 fnd_message.set_name('CSI','CSI_NO_HR_LOCATIONS');
12763 fnd_message.set_token('ORGANIZATION_ID',p_instance_rec.vld_organization_id);
12764 fnd_msg_pub.ADD;
12765 RAISE fnd_api.g_exc_error;
12766 END;
12767 IF p_instance_rec.install_location_id IS NULL
12768 THEN
12769 fnd_message.set_name('CSI','CSI_NO_HR_LOCATIONS');
12770 fnd_message.set_token('ORGANIZATION_ID',p_instance_rec.vld_organization_id);
12771 fnd_msg_pub.ADD;
12772 RAISE fnd_api.g_exc_error;
12773 END IF;
12774 END IF;
12775 END IF;
12776
12777
12778 -- End code addition for eam integration
12779
12780 -- validation for Active Start Date
12781 IF ((p_instance_rec.active_start_date IS NULL) OR
12782 (p_instance_rec.active_start_date <> FND_API.G_MISS_DATE)) THEN
12783 IF ((p_instance_rec.active_start_date IS NULL) OR
12784 (p_instance_rec.active_start_date <> l_curr_instance_rec.active_start_date)) THEN
12785 FND_MESSAGE.Set_Name('CSI', 'CSI_API_UPD_NOT_ALLOWED');
12786 FND_MESSAGE.Set_Token('COLUMN', 'ACTIVE_START_DATE');
12787 FND_MSG_PUB.ADD;
12788 RAISE FND_API.G_EXC_ERROR;
12789 END IF;
12790 END IF;
12791
12792 -- validating the effective active end date for an End-dated Instance
12793 IF l_curr_instance_rec.active_end_date <= SYSDATE THEN
12794 IF (p_instance_rec.active_end_date = FND_API.G_MISS_DATE) OR
12795 (p_instance_rec.active_end_date < SYSDATE) THEN
12796 IF (p_instance_rec.check_for_instance_expiry = fnd_api.g_true) THEN
12797 IF NOT (p_called_from_rel = fnd_api.g_true OR p_txn_rec.transaction_type_id = 401)
12798 THEN
12799 FND_MESSAGE.SET_NAME('CSI','CSI_API_CANT_UPD_EXP_ITEM');
12800 FND_MSG_PUB.ADD;
12801 RAISE FND_API.G_EXC_ERROR;
12802 END IF;
12803 END IF;
12804 END IF;
12805 END IF;
12806
12807 -- validating the effective active end date
12808 IF ( p_instance_rec.ACTIVE_END_DATE <> FND_API.G_MISS_DATE) THEN
12809 IF NOT(CSI_Item_Instance_vld_pvt.EndDate_Valid
12810 (l_curr_instance_rec.ACTIVE_START_DATE,
12811 p_instance_rec.ACTIVE_END_DATE ,
12812 p_instance_rec.INSTANCE_ID,
12813 p_txn_rec.transaction_id)) THEN -- Bug 9081875
12814 RAISE FND_API.G_EXC_ERROR;
12815 END IF;
12816 END IF;
12817
12818 -- Validate if the instance status is being changed to
12819 -- a new status with a termination_flag set to 'Y'
12820 -- If so, then the end_date should be checked
12821 -- srramakr. Bug # 2180425. If the status is changed to a Terminated Status, then the
12822 -- active_end_date should be validated. We do not allow future date in this case.
12823 -- For past dates, there should not be any Transactions between the active_end_date and sysdate.
12824 IF ( (p_instance_rec.instance_status_id <> FND_API.G_MISS_NUM)
12825 AND (p_instance_rec.instance_status_id IS NOT NULL)
12826 AND (p_instance_rec.instance_status_id <>
12827 l_curr_instance_rec.instance_status_id)
12828 AND (CSI_Item_Instance_vld_pvt.val_inst_ter_flag
12829 (p_instance_rec.instance_status_id)))
12830 THEN
12831 IF ((p_instance_rec.ACTIVE_END_DATE IS NULL) OR
12832 (p_instance_rec.ACTIVE_END_DATE = FND_API.G_MISS_DATE)) THEN
12833 FND_MESSAGE.Set_Name('CSI', 'CSI_API_TER_DATE');
12834 FND_MSG_PUB.ADD;
12835 RAISE FND_API.G_EXC_ERROR;
12836 ELSIF p_instance_rec.ACTIVE_END_DATE < sysdate THEN
12837 IF NOT(CSI_Item_Instance_vld_pvt.EndDate_Valid
12838 (l_curr_instance_rec.ACTIVE_START_DATE,
12839 p_instance_rec.ACTIVE_END_DATE ,
12840 p_instance_rec.INSTANCE_ID,
12841 p_txn_rec.transaction_id)) THEN -- Bug 9081875
12842 RAISE FND_API.G_EXC_ERROR;
12843 END IF;
12844 ELSIF ((p_instance_rec.ACTIVE_END_DATE <> FND_API.G_MISS_DATE) AND
12845 (p_instance_rec.ACTIVE_END_DATE > sysdate)) THEN
12846 FND_MESSAGE.Set_Name('CSI', 'CSI_API_FUTURE_DATE');
12847 FND_MSG_PUB.ADD;
12848 RAISE FND_API.G_EXC_ERROR;
12849 END IF;
12850 END IF;
12851
12852 --
12853 -- Get the Required Inventory Attributes
12854 l_exists_flag := 'N';
12855 l_valid_flag := 'Y';
12856 IF p_item_attribute_tbl.count > 0 THEN
12857 FOR item_count in p_item_attribute_tbl.FIRST .. p_item_attribute_tbl.LAST
12858 LOOP
12859 IF p_item_attribute_tbl(item_count).inventory_item_id = l_get_instance_rec.inventory_item_id AND
12860 p_item_attribute_tbl(item_count).organization_id = p_instance_rec.vld_organization_id AND
12861 p_item_attribute_tbl(item_count).master_organization_id = l_get_instance_rec.inv_master_organization_id
12862 THEN
12863 l_trackable_flag := p_item_attribute_tbl(item_count).trackable_flag;
12864 l_rev_control := p_item_attribute_tbl(item_count).revision_control_code;
12865 l_serial_control := p_item_attribute_tbl(item_count).serial_number_control_code;
12866 l_lot_control := p_item_attribute_tbl(item_count).lot_control_code;
12867 l_shelf_life_code := p_item_attribute_tbl(item_count).shelf_life_code;
12868 l_uom_code := p_item_attribute_tbl(item_count).uom_code;
12869 l_eam_item_type := p_item_attribute_tbl(item_count).eam_item_type;
12870 l_equipment_type := p_item_attribute_tbl(item_count).equipment_type;
12871 l_valid_flag := p_item_attribute_tbl(item_count).valid_flag;
12872 l_exists_flag := 'Y';
12873 EXIT;
12874 END IF;
12875 END LOOP;
12876 IF l_valid_flag = 'N' then
12877 FND_MESSAGE.SET_NAME('CSI','CSI_API_INVALID_ITEM');
12878 FND_MESSAGE.SET_TOKEN('INVENTORY_ITEM_ID',p_instance_rec.inventory_item_id);
12879 FND_MESSAGE.SET_TOKEN('INVENTORY_ORGANIZATION_ID',p_instance_rec.vld_organization_id);
12880 FND_MSG_PUB.Add;
12881 RAISE fnd_api.g_exc_error;
12882 END IF;
12883 END IF;
12884 --
12885 -- if item does not exist in cache then get from database.
12886 IF l_exists_flag = 'N' THEN
12887 p_ins_count_rec.inv_count := p_ins_count_rec.inv_count + 1;
12888 p_item_attribute_tbl(p_ins_count_rec.inv_count).inventory_item_id := l_get_instance_rec.inventory_item_id;
12889 p_item_attribute_tbl(p_ins_count_rec.inv_count).organization_id := p_instance_rec.vld_organization_id;
12890 p_item_attribute_tbl(p_ins_count_rec.inv_count).master_organization_id := l_get_instance_rec.inv_master_organization_id;
12891 BEGIN
12892 SELECT comms_nl_trackable_flag
12893 ,primary_uom_code
12894 INTO l_trackable_flag
12895 ,l_uom_code
12896 FROM MTL_SYSTEM_ITEMS_B
12897 WHERE inventory_item_id = l_get_instance_rec.inventory_item_id
12898 AND organization_id = l_get_instance_rec.inv_master_organization_id
12899 AND enabled_flag = 'Y'
12900 AND nvl (start_date_active, sysdate) <= sysdate
12901 AND nvl (end_date_active, sysdate+1) > sysdate;
12902 --
12903 p_item_attribute_tbl(p_ins_count_rec.inv_count).trackable_flag := l_trackable_flag;
12904 p_item_attribute_tbl(p_ins_count_rec.inv_count).uom_code := l_uom_code;
12905 p_item_attribute_tbl(p_ins_count_rec.inv_count).valid_flag := 'Y';
12906 EXCEPTION
12907 WHEN OTHERS THEN
12908 p_item_attribute_tbl(p_ins_count_rec.inv_count).valid_flag := 'N';
12909 FND_MESSAGE.SET_NAME('CSI','CSI_API_INVALID_ITEM');
12910 FND_MESSAGE.SET_TOKEN('INVENTORY_ITEM_ID',l_get_instance_rec.inventory_item_id);
12911 FND_MESSAGE.SET_TOKEN('INVENTORY_ORGANIZATION_ID',p_instance_rec.vld_organization_id);
12912 FND_MSG_PUB.Add;
12913 RAISE fnd_api.g_exc_error;
12914 END;
12915
12916 --
12917 BEGIN
12918 SELECT revision_qty_control_code
12919 ,serial_number_control_code
12920 -- ,lot_control_code
12921 ,nvl(csi_utl_pkg.get_lot_ctrl_code(p_txn_rec.inv_material_transaction_id),lot_control_code) lot_control_code-- Added for bug#14835893
12922 ,shelf_life_code
12923 ,eam_item_type
12924 ,equipment_type
12925 INTO l_rev_control
12926 ,l_serial_control
12927 ,l_lot_control
12928 ,l_shelf_life_code
12929 ,l_eam_item_type
12930 ,l_equipment_type
12931 FROM MTL_SYSTEM_ITEMS_B
12932 WHERE inventory_item_id = l_get_instance_rec.inventory_item_id
12933 AND organization_id = p_instance_rec.vld_organization_id
12934 AND enabled_flag = 'Y'
12935 AND nvl (start_date_active, sysdate) <= sysdate
12936 AND nvl (end_date_active, sysdate+1) > sysdate;
12937 --
12938 p_item_attribute_tbl(p_ins_count_rec.inv_count).valid_flag := 'Y';
12939 p_item_attribute_tbl(p_ins_count_rec.inv_count).revision_control_code := l_rev_control;
12940 p_item_attribute_tbl(p_ins_count_rec.inv_count).serial_number_control_code := l_serial_control;
12941 p_item_attribute_tbl(p_ins_count_rec.inv_count).lot_control_code := l_lot_control;
12942 p_item_attribute_tbl(p_ins_count_rec.inv_count).shelf_life_code := l_shelf_life_code;
12943 p_item_attribute_tbl(p_ins_count_rec.inv_count).eam_item_type := l_eam_item_type;
12944 p_item_attribute_tbl(p_ins_count_rec.inv_count).equipment_type := l_equipment_type;
12945 EXCEPTION
12946 WHEN OTHERS THEN
12947 p_item_attribute_tbl(p_ins_count_rec.inv_count).valid_flag := 'N';
12948 FND_MESSAGE.SET_NAME('CSI','CSI_API_INVALID_ITEM');
12949 FND_MESSAGE.SET_TOKEN('INVENTORY_ITEM_ID',l_get_instance_rec.inventory_item_id);
12950 FND_MESSAGE.SET_TOKEN('INVENTORY_ORGANIZATION_ID',p_instance_rec.vld_organization_id);
12951 FND_MSG_PUB.Add;
12952 RAISE fnd_api.g_exc_error;
12953 END;
12954 END IF;
12955
12956 -- Added following code for eam integration
12957 -- Check if the item is a rebuildable or an asset group
12958
12959 IF csi_item_instance_vld_pvt.Check_for_eam_item
12960 (p_inventory_item_id => p_instance_rec.inventory_item_id,
12961 p_organization_id => p_instance_rec.vld_organization_id,
12962 p_eam_item_type => l_eam_item_type)
12963 THEN
12964 l_eam_item := TRUE;
12965 END IF;
12966
12967 IF (
12968 ((p_instance_rec.network_asset_flag IS NULL AND
12969 l_curr_instance_rec.network_asset_flag IS NOT NULL) OR
12970 (p_instance_rec.network_asset_flag <> fnd_api.g_miss_char AND
12971 NVL(p_instance_rec.network_asset_flag,fnd_api.g_miss_char) <>
12972 NVL(l_curr_instance_rec.network_asset_flag,fnd_api.g_miss_char)))
12973 OR
12974 ((p_instance_rec.maintainable_flag IS NULL AND
12975 l_curr_instance_rec.maintainable_flag IS NOT NULL) OR
12976 (p_instance_rec.maintainable_flag <> fnd_api.g_miss_char AND
12977 NVL(p_instance_rec.maintainable_flag,fnd_api.g_miss_char) <>
12978 NVL(l_curr_instance_rec.maintainable_flag,fnd_api.g_miss_char)))
12979 OR
12980 ((p_instance_rec.pn_location_id IS NULL AND
12981 l_curr_instance_rec.pn_location_id IS NOT NULL) OR
12982 (p_instance_rec.pn_location_id <> fnd_api.g_miss_num AND
12983 NVL(p_instance_rec.pn_location_id,fnd_api.g_miss_num) <>
12984 NVL(l_curr_instance_rec.pn_location_id,fnd_api.g_miss_num)))
12985 OR
12986 ((p_instance_rec.asset_criticality_code IS NULL AND
12987 l_curr_instance_rec.asset_criticality_code IS NOT NULL) OR
12988 (p_instance_rec.asset_criticality_code <> fnd_api.g_miss_char AND
12989 NVL(p_instance_rec.asset_criticality_code,fnd_api.g_miss_char) <>
12990 NVL(l_curr_instance_rec.asset_criticality_code,fnd_api.g_miss_char)))
12991 OR
12992 ((p_instance_rec.category_id IS NULL AND
12993 l_curr_instance_rec.category_id IS NOT NULL) OR
12994 (p_instance_rec.category_id <> fnd_api.g_miss_num AND
12995 NVL(p_instance_rec.category_id,fnd_api.g_miss_num) <>
12996 NVL(l_curr_instance_rec.category_id,fnd_api.g_miss_num)))
12997 OR
12998 ((p_instance_rec.equipment_gen_object_id IS NULL AND
12999 l_curr_instance_rec.equipment_gen_object_id IS NOT NULL) OR
13000 (p_instance_rec.equipment_gen_object_id <> fnd_api.g_miss_num AND
13001 NVL(p_instance_rec.equipment_gen_object_id,fnd_api.g_miss_num) <>
13002 NVL(l_curr_instance_rec.equipment_gen_object_id,fnd_api.g_miss_num)))
13003 OR
13004 ((p_instance_rec.linear_location_id IS NULL AND
13005 l_curr_instance_rec.linear_location_id IS NOT NULL) OR
13006 (p_instance_rec.linear_location_id <> fnd_api.g_miss_num AND
13007 NVL(p_instance_rec.linear_location_id,fnd_api.g_miss_num) <>
13008 NVL(l_curr_instance_rec.linear_location_id,fnd_api.g_miss_num)))
13009 OR
13010 ((p_instance_rec.operational_log_flag IS NULL AND
13011 l_curr_instance_rec.operational_log_flag IS NOT NULL) OR
13012 (p_instance_rec.operational_log_flag <> fnd_api.g_miss_char AND
13013 NVL(p_instance_rec.operational_log_flag,fnd_api.g_miss_char) <>
13014 NVL(l_curr_instance_rec.operational_log_flag,fnd_api.g_miss_char)))
13015 OR
13016 ((p_instance_rec.checkin_status IS NULL AND
13017 l_curr_instance_rec.checkin_status IS NOT NULL) OR
13018 (p_instance_rec.checkin_status <> fnd_api.g_miss_num AND
13019 NVL(p_instance_rec.checkin_status,fnd_api.g_miss_num) <>
13020 NVL(l_curr_instance_rec.checkin_status,fnd_api.g_miss_num)))
13021 OR
13022 ((p_instance_rec.supplier_warranty_exp_date IS NULL AND
13023 l_curr_instance_rec.supplier_warranty_exp_date IS NOT NULL) OR
13024 (p_instance_rec.supplier_warranty_exp_date <> fnd_api.g_miss_date AND
13025 NVL(p_instance_rec.supplier_warranty_exp_date,fnd_api.g_miss_date) <>
13026 NVL(l_curr_instance_rec.supplier_warranty_exp_date,fnd_api.g_miss_date)))
13027 )
13028 THEN
13029 IF l_eam_item
13030 THEN
13031 IF NOT eam_assetnumber_pub.validate_fields
13032 (p_current_organization_id => p_instance_rec.vld_organization_id
13033 ,p_inventory_item_id => l_get_instance_rec.inventory_item_id
13034 ,p_serial_number => l_get_instance_rec.serial_number
13035 ,p_network_asset_flag => p_instance_rec.network_asset_flag
13036 ,p_maintainable_flag => p_instance_rec.maintainable_flag
13037 ,p_pn_location_id => p_instance_rec.pn_location_id
13038 ,p_asset_criticality_code => p_instance_rec.asset_criticality_code
13039 ,p_category_id => p_instance_rec.category_id
13040 ,p_equipment_object_id => p_instance_rec.equipment_gen_object_id
13041 ,p_eam_linear_id => p_instance_rec.linear_location_id
13042 ,p_operational_log_flag => p_instance_rec.operational_log_flag
13043 ,p_checkin_status => p_instance_rec.checkin_status
13044 ,p_supplier_warranty_exp_date => p_instance_rec.supplier_warranty_exp_date
13045 ,p_owning_department_id => NULL
13046 ,x_reason_failed => l_reason_failed
13047 ,x_token => l_token
13048 )
13049 THEN
13050 -- FND_MESSAGE.SET_NAME('CSI', l_reason_failed); -- commented for bug 5351886
13051 -- FND_MSG_PUB.Add; -- commented for bug 5351886
13052 csi_gen_utility_pvt.put_line('Call to eam_assetnumber_pub.validate_fields failed with following reason');
13053 csi_gen_utility_pvt.put_line(l_reason_failed);
13054 RAISE FND_API.G_EXC_ERROR;
13055 END IF;
13056 ELSE
13057 FND_MESSAGE.SET_NAME('CSI', 'CSI_NON_EAM_ITEM');
13058 FND_MSG_PUB.Add;
13059 RAISE FND_API.G_EXC_ERROR;
13060 END IF;
13061 END IF;
13062
13063 -- Validate System
13064 IF l_get_instance_rec.system_id IS NOT NULL AND
13065 l_get_instance_rec.system_id <> FND_API.G_MISS_NUM THEN
13066 IF NOT csi_Item_Instance_Vld_pvt.Is_Valid_System_id(
13067 l_get_instance_rec.system_id) THEN
13068 FND_MESSAGE.SET_NAME('CSI','CSI_API_INVALID_SYSTEM_ID');
13069 FND_MESSAGE.SET_TOKEN('SYSTEM_ID',l_get_instance_rec.system_id);
13070 FND_MSG_PUB.Add;
13071 RAISE FND_API.G_EXC_ERROR;
13072 END IF;
13073 END IF;
13074 --
13075 -- Lot Number Validation
13076 -- srramakr Mandated Lot Number validation irrespective of the update.
13077 -- Irrespective whether the item instance is standalone or component, lot number create/validation
13078 -- will be performed. This is because unlike serial control, lot control does not depend on
13079 -- instance location.
13080 IF l_get_instance_rec.lot_number IS NOT NULL AND
13081 l_get_instance_rec.lot_number <> FND_API.G_MISS_CHAR
13082 THEN
13083 csi_gen_utility_pvt.put_line('Calling Validate_Lot_Number..');
13084 -- Added for Bug# 4011408
13085 csi_Item_Instance_Vld_pvt.Validate_Lot_Number
13086 (
13087 p_inv_org_id => p_instance_rec.vld_organization_id,
13088 p_inv_item_id => l_get_instance_rec.inventory_item_id ,
13089 p_lot_number => l_get_instance_rec.lot_number,
13090 p_mfg_serial_number_flag => l_get_instance_rec.mfg_serial_number_flag,
13091 p_txn_rec => p_txn_rec,
13092 p_creation_complete_flag => l_get_instance_rec.creation_complete_flag,
13093 l_return_value => l_return_value,
13094 p_lot_control_code => l_lot_control
13095 );
13096 IF l_return_value = FALSE THEN
13097 RAISE fnd_api.g_exc_error;
13098 END IF;
13099 -- Commented for Bug# 4011408 since Validate_Lot_Number will do the basic validation
13100 --
13101 -- Validates the lot uniqueness and creates lot numbers in MLNs for manually created Instances
13102 -- Bug# 4011408
13103 csi_gen_utility_pvt.put_line('Calling Create_Lot routine in Update_Item_Instance API...');
13104 csi_item_instance_vld_pvt.Create_Lot
13105 (
13106 p_inv_org_id => p_instance_rec.vld_organization_id,
13107 p_inv_item_id => l_get_instance_rec.inventory_item_id,
13108 p_lot_number => l_get_instance_rec.lot_number,
13109 p_shelf_life_code => l_shelf_life_code,
13110 p_instance_id => l_get_instance_rec.instance_id,
13111 l_return_value => l_return_value
13112 );
13113 IF l_return_value = FALSE THEN
13114 RAISE fnd_api.g_exc_error;
13115 END IF;
13116 END IF;
13117 --
13118
13119 --start code fix for 6176621
13120
13121 IF l_serial_control not in (2, 5) and l_part_or_serial_change THEN
13122 FND_MESSAGE.SET_NAME('CSI','CSI_API_CANNOT_UPD_SRL');
13123 FND_MSG_PUB.Add;
13124 RAISE FND_API.g_exc_error;
13125 END IF;
13126
13127 --end code fix for 6176621
13128
13129 -- Updating a Serial Number to NULL is not allowed.
13130 IF l_curr_instance_rec.serial_number IS NOT NULL AND
13131 p_instance_rec.serial_number IS NULL THEN
13132 FND_MESSAGE.SET_NAME('CSI','CSI_API_CANNOT_UPD_SRL_NULL');
13133 FND_MSG_PUB.Add;
13134 RAISE FND_API.G_EXC_ERROR;
13135 END IF;
13136 --
13137 -- Serial number changes for CMRO
13138 -- Need to handle NULL to NOT NULL Serial Number
13139 IF p_instance_rec.serial_number IS NOT NULL AND
13140 p_instance_rec.serial_number <> fnd_api.g_miss_char AND
13141 p_instance_rec.serial_number <> nvl(l_curr_instance_rec.serial_number,fnd_api.g_miss_char)
13142 THEN
13143 csi_gen_utility_pvt.put_line('before csi_item_instance_vld_pvt.validate_serial_for_upd');
13144 csi_item_instance_vld_pvt.validate_serial_for_upd(
13145 p_instance_rec => l_get_instance_rec,
13146 p_txn_rec => p_txn_rec,
13147 p_old_serial_number => l_curr_instance_rec.serial_number,
13148 x_return_status => l_return_status);
13149
13150 IF l_return_status = fnd_api.g_ret_sts_error THEN
13151 RAISE fnd_api.g_exc_error;
13152 END IF;
13153 END IF;
13154 --
13155 -- Since serial_number can't be updated to NULL the OR condition has been changed.
13156 -- With this, if p_instance_rec has a valid value then we call the serial validation routines.
13157 --
13158 -- Earlier, we were by-passing Create_Serial routine for components. This reason being Create_serial
13159 -- routine was inserting the serial number into MSN with current status as 3 (In Stores) if the
13160 -- location type is INVENTORY. For components, location type could become INVENTORY if the parent
13161 -- is received into INV. Under these cases if the serial number is inserted with status 3 then
13162 -- it would become un-usable when transacted standalone.
13163 -- Since Create_Serial routine has been fixed and we always create the serial# with status 4, we can
13164 -- call this routine for components.
13165 -- Moreover serial number could get updated for components. Under these cases, create_serial should be
13166 -- called. Otherwise, INV and IB will go out of synch.
13167 --
13168 l_ins_flag := FND_API.G_FALSE;
13169
13170 IF l_get_instance_rec.serial_number IS NOT NULL AND
13171 l_get_instance_rec.serial_number <> FND_API.G_MISS_CHAR
13172 THEN
13173 csi_gen_utility_pvt.put_line('Calling Create_Serial...');
13174 csi_item_instance_vld_pvt.Create_Serial (
13175 p_inv_org_id => p_instance_rec.vld_organization_id,
13176 p_inv_item_id => l_get_instance_rec.inventory_item_id,
13177 p_serial_number => l_get_instance_rec.serial_number,
13178 p_mfg_srl_num_flag => l_get_instance_rec.mfg_serial_number_flag,
13179 p_location_type_code => l_get_instance_rec.location_type_code,
13180 p_ins_flag => l_ins_flag,
13181 p_lot_number => l_get_instance_rec.lot_number,
13182 p_gen_object_id => l_gen_object_id,
13183 l_return_value => l_return_value);
13184
13185 IF l_eam_item AND
13186 l_equipment_type = 1
13187 THEN
13188 p_instance_rec.equipment_gen_object_id := l_gen_object_id;
13189 END IF;
13190
13191 IF l_return_value = FALSE
13192 THEN
13193 RAISE fnd_api.g_exc_error;
13194 ELSE
13195 p_instance_rec.mfg_serial_number_flag := 'Y';
13196 END IF;
13197
13198 IF l_eam_item
13199 THEN
13200 IF p_instance_rec.network_asset_flag IS NULL OR
13201 p_instance_rec.network_asset_flag = fnd_api.g_miss_char
13202 THEN
13203 l_network_asset_flag := l_curr_instance_rec.network_asset_flag;
13204 ELSE
13205 l_network_asset_flag := p_instance_rec.network_asset_flag;
13206 END IF;
13207
13208 IF p_instance_rec.pn_location_id IS NULL OR
13209 p_instance_rec.pn_location_id = fnd_api.g_miss_num
13210 THEN
13211 l_pn_location_id := l_curr_instance_rec.pn_location_id;
13212 ELSE
13213 l_pn_location_id := p_instance_rec.pn_location_id;
13214 END IF;
13215
13216 csi_gen_utility_pvt.put_line( 'Calling eam_common_utilities_pvt.update_logical_asset...');
13217 csi_gen_utility_pvt.put_line( 'Inventory_item_id is :'||l_get_instance_rec.inventory_item_id);
13218 csi_gen_utility_pvt.put_line( 'Serial_number is :'||l_get_instance_rec.serial_number);
13219 csi_gen_utility_pvt.put_line( 'Network_asset_flag is :'||l_network_asset_flag);
13220 csi_gen_utility_pvt.put_line( 'Pn_location_id is :'||l_pn_location_id);
13221 csi_gen_utility_pvt.put_line( 'Equipment_gen_object_id is :'||p_instance_rec.equipment_gen_object_id);
13222 eam_common_utilities_pvt.update_logical_asset
13223 ( p_inventory_item_id => l_get_instance_rec.inventory_item_id
13224 ,p_serial_number => l_get_instance_rec.serial_number
13225 ,p_network_asset_flag => l_network_asset_flag
13226 ,p_pn_location_id => l_pn_location_id
13227 ,p_equipment_gen_object_id => p_instance_rec.equipment_gen_object_id
13228 ,x_return_status => x_return_status
13229 );
13230
13231 IF NOT (x_return_status = FND_API.G_RET_STS_SUCCESS)
13232 THEN
13233 csi_gen_utility_pvt.put_line( 'Error from eam_common_utilities_pvt.update_logical_asset...');
13234 RAISE fnd_api.g_exc_error;
13235 END IF;
13236 END IF;
13237
13238 END IF;
13239 --
13240 -- Mandated serial# uniqueness check irrespective of any change made to Item Instance.
13241 -- Because of Serial Update requrement, Update_serial_number has been moved out the IF condition
13242 -- catering to Create_Serial.
13243 -- If this is a component item instance then we just validate the serial uniqueness
13244 --
13245 IF l_get_instance_rec.serial_number IS NOT NULL AND
13246 l_get_instance_rec.serial_number <> FND_API.G_MISS_CHAR
13247 THEN
13248 IF nvl(l_get_instance_rec.instance_usage_code,'$#$') <> 'IN_RELATIONSHIP' THEN
13249 csi_gen_utility_pvt.put_line('Calling Validate_Srl_Num_for_Inst_Upd');
13250 csi_Item_Instance_Vld_pvt.Validate_Srl_Num_for_Inst_Upd(
13251 p_inv_org_id => p_instance_rec.vld_organization_id,
13252 p_inv_item_id => l_get_instance_rec.inventory_item_id , -- l_get
13253 p_serial_number => l_get_instance_rec.serial_number,
13254 p_mfg_serial_number_flag => l_get_instance_rec.mfg_serial_number_flag, -- l_get
13255 p_txn_rec => p_txn_rec,
13256 p_location_type_code => l_get_instance_rec.location_type_code,
13257 p_srl_control_code => l_serial_control,
13258 p_instance_usage_code => l_get_instance_rec.instance_usage_code,
13259 p_instance_id => p_instance_rec.instance_id,
13260 l_return_value => l_return_value);
13261 IF l_return_value = FALSE THEN
13262 RAISE fnd_api.g_exc_error;
13263 END IF;
13264 ELSE -- If this is a component then just validate serial uniqueness
13265 csi_Item_Instance_Vld_pvt.Validate_ser_uniqueness
13266 ( p_inv_org_id => p_instance_rec.vld_organization_id
13267 ,p_inv_item_id => l_get_instance_rec.inventory_item_id
13268 ,p_serial_number => l_get_instance_rec.serial_number
13269 ,p_instance_id => p_instance_rec.instance_id
13270 ,l_return_value => l_return_value
13271 );
13272 IF l_return_value = FALSE THEN
13273 --Commented out code for bug 7657438, no need to raise more than one error message
13274 --fnd_message.set_name('CSI','CSI_FAIL_UNIQUENESS');
13275 --fnd_msg_pub.add;
13276 RAISE fnd_api.g_exc_error;
13277 END IF;
13278 END IF;
13279 END IF;
13280 --
13281 -- Transaction sequencing check
13282 IF l_get_instance_rec.serial_number IS NOT NULL AND
13283 l_get_instance_rec.serial_number <> FND_API.G_MISS_CHAR AND
13284 l_ins_flag = FND_API.G_FALSE THEN
13285 l_check_instance_rec.instance_id := p_instance_rec.instance_id;
13286 l_check_instance_rec.inventory_item_id := l_get_instance_rec.inventory_item_id;
13287 l_check_instance_rec.serial_number := l_get_instance_rec.serial_number;
13288 l_check_instance_rec.lot_number := l_get_instance_rec.lot_number;
13289 l_check_instance_rec.last_txn_line_detail_id := p_instance_rec.last_txn_line_detail_id;
13290 csi_gen_utility_pvt.put_line('Calling Check_Prior_Txn');
13291 csi_Item_Instance_Vld_pvt.Check_Prior_Txn
13292 (
13293 p_instance_rec => l_check_instance_rec
13294 ,p_txn_rec => p_txn_rec
13295 ,p_prior_txn_id => l_prior_txn_id
13296 ,p_mode => 'UPDATE'
13297 ,x_return_status => x_return_status
13298 );
13299 IF NOT (x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
13300 RAISE fnd_api.g_exc_error;
13301 END IF;
13302 END IF;
13303 --
13304 -- Revision Number Validation
13305 IF nvl(l_get_instance_rec.instance_usage_code,'$#$') <> 'IN_RELATIONSHIP' THEN
13306 IF l_get_instance_rec.inventory_revision IS NOT NULL AND
13307 l_get_instance_rec.inventory_revision <> FND_API.G_MISS_CHAR
13308 THEN
13309 csi_gen_utility_pvt.put_line('Calling Update_Revision');
13310 csi_item_instance_vld_pvt.Update_Revision
13311 (
13312 p_inv_item_id => l_get_instance_rec.inventory_item_id ,
13313 p_inv_org_id => p_instance_rec.vld_organization_id,
13314 p_revision => l_get_instance_rec.inventory_revision,
13315 l_return_value => l_return_value,
13316 p_rev_control_code => l_rev_control
13317 );
13318
13319 IF l_return_value = FALSE THEN
13320 RAISE fnd_api.g_exc_error;
13321 END IF;
13322 END IF;
13323 END IF;
13324 --quantity validation
13325 IF ((p_instance_rec.quantity <> FND_API.G_MISS_NUM ) AND
13326 (p_instance_rec.quantity IS NOT NULL ))THEN
13327 IF p_instance_rec.quantity <> l_curr_instance_rec.quantity THEN
13328 IF NOT csi_Item_Instance_Vld_pvt.Is_Quantity_Valid(
13329 p_instance_id => p_instance_rec.instance_id,
13330 p_inv_organization_id => p_instance_rec.vld_organization_id,
13331 p_quantity => l_get_instance_rec.quantity ,
13332 p_serial_control_code => l_serial_control,
13333 p_location_type_code => l_get_instance_rec.location_type_code,
13334 p_csi_txn_type_id => p_txn_rec.transaction_type_id,
13335 p_current_qty => l_curr_instance_rec.quantity,
13336 p_flag => 'UPDATE'
13337 )
13338 THEN
13339 RAISE fnd_api.g_exc_error;
13340 END IF;
13341 END IF;
13342 END IF;
13343 IF nvl(l_get_instance_rec.instance_usage_code,'$#$') <> 'IN_RELATIONSHIP' THEN
13344 IF p_instance_rec.vld_organization_id <> l_cur_instance_rec.last_vld_organization_id
13345 THEN
13346 csi_item_instance_vld_pvt.validate_org_dependent_params
13347 ( p_instance_rec => l_get_instance_rec,
13348 p_txn_rec => p_txn_rec,
13349 l_return_value => l_return_value
13350 );
13351
13352 IF l_return_value = FALSE
13353 THEN
13354 FND_MESSAGE.Set_Name('CSI', 'CSI_CHANGE_VLD_ORG');
13355 FND_MSG_PUB.ADD;
13356 RAISE FND_API.G_EXC_ERROR;
13357 END IF;
13358 END IF;
13359 END IF;
13360
13361 --Unit of measure validation
13362 IF ((p_instance_rec.unit_of_measure <> FND_API.G_MISS_CHAR) AND
13363 (p_instance_rec.unit_of_measure IS NOT NULL)) THEN
13364 IF ((p_instance_rec.unit_of_measure <> l_curr_instance_rec.unit_of_measure)
13365 AND (p_instance_rec.unit_of_measure <> l_uom_code)) THEN
13366 csi_item_instance_vld_pvt.Is_Valid_Uom
13367 (
13368 p_inv_org_id => l_get_instance_rec.inv_master_organization_id, -- srramakr
13369 p_inv_item_id => l_get_instance_rec.inventory_item_id , --l_get
13370 p_uom_code => p_instance_rec.unit_of_measure,
13371 p_quantity => l_get_instance_rec.quantity, --l_get
13372 p_creation_complete_flag => l_get_instance_rec.creation_complete_flag, --l_get
13373 l_return_value => l_return_value
13374 );
13375 IF l_return_value = FALSE THEN
13376 RAISE FND_API.G_EXC_ERROR;
13377 END IF;
13378 END IF;
13379 END IF;
13380
13381 --validation for accounting classification_code if
13382 --p_instance_rec.accounting_class_code is NULL OR <> FND_API.G_MISS_CHAR
13383 IF ((p_instance_rec.accounting_class_code IS NULL) OR
13384 (p_instance_rec.accounting_class_code <> FND_API.G_MISS_CHAR)) THEN
13385 csi_item_instance_vld_pvt.get_valid_acct_class
13386 ( p_instance_id => p_instance_rec.instance_id
13387 ,p_curr_acct_class_code => l_get_instance_rec.accounting_class_code
13388 ,p_loc_type_code => l_get_instance_rec.location_type_code
13389 ,x_acct_class_code => l_acct_class_code
13390 );
13391 IF (p_instance_rec.accounting_class_code IS NULL)
13392 THEN
13393 -- The following code has been commented for bug 4906588
13394 /*
13395 IF l_eam_item
13396 THEN
13397 p_instance_rec.accounting_class_code := 'ASSET';
13398 ELSE
13399 */
13400 p_instance_rec.accounting_class_code := l_acct_class_code;
13401 -- END IF;
13402 ELSE
13403 IF (p_instance_rec.accounting_class_code <> l_acct_class_code) THEN
13404 FND_MESSAGE.SET_NAME('CSI','CSI_API_INVALID_ACCOUNT_CLASS');
13405 FND_MSG_PUB.Add;
13406 RAISE FND_API.G_EXC_ERROR;
13407 END IF;
13408 END IF; -- not null
13409
13410 END IF; -- not G_MISS
13411
13412 --if the quantity is changing from something to '0' then
13413 --we change end_date to sysdate and status to 'expired'
13414 IF (p_instance_rec.quantity = 0 AND l_curr_instance_rec.quantity <> 0) THEN
13415 -- Bug 3804960 Need to honor the passed active_end_date
13416 IF p_instance_rec.active_end_date IS NULL OR
13417 p_instance_rec.active_end_date = FND_API.G_MISS_DATE OR
13418 p_instance_rec.active_end_date > SYSDATE THEN
13419 p_instance_rec.active_end_date := SYSDATE;
13420 END IF;
13421 -- End of 3804960
13422 -- p_instance_rec.instance_status_id := 1; -- Commented for bug 3179587
13423 -- The following changes were made for bug 3179587.
13424 -- When update_item_instance is called with a status that has terminated_flag set to 'Y'
13425 -- then the API should assign passed status. If the passed status doesn't have
13426 -- terminated_flag set to 'Y', then by default the status will be updated with an expired status.
13427 IF p_instance_rec.instance_status_id IS NOT NULL AND
13428 p_instance_rec.instance_status_id <> fnd_api.g_miss_num AND
13429 (CSI_Item_Instance_vld_pvt.val_inst_ter_flag
13430 (p_instance_rec.instance_status_id))
13431 THEN
13432 NULL;
13433 ELSE
13434 p_instance_rec.instance_status_id := 1;
13435 END IF;
13436 END IF;
13437
13438 -- if the quantity is changing from '0' to '0' or fnd_api.g_miss_num, and at the same time
13439 -- if also the end_date is changing to 'NULL' or ' > SYSDATE', then the instance cannot be un-expired
13440 -- Bug 13371469
13441 IF (l_curr_instance_rec.quantity = 0)
13442 AND ((p_instance_rec.quantity = 0) OR (p_instance_rec.quantity = FND_API.G_MISS_NUM))
13443 --AND ((p_instance_rec.active_end_date IS NULL) OR (p_instance_rec.active_end_date > SYSDATE))
13444 AND ((p_instance_rec.active_end_date IS NULL) OR (p_instance_rec.active_end_date > l_curr_instance_rec.active_end_date))
13445 THEN
13446 FND_MESSAGE.Set_Name('CSI', 'CSI_API_CANNOT_UNEXPIRE');
13447 FND_MSG_PUB.ADD;
13448 RAISE FND_API.G_EXC_ERROR;
13449 END IF;
13450
13451 -- added by rtalluri for Bugfix 2318211 on 04/16/02
13452 --if the end_date is changing from sysdate or a past date to 'null' or a future date,
13453 -- and if instance status is expired then change the status to null
13454 IF ((l_curr_instance_rec.active_end_date IS NOT NULL) AND
13455 (l_curr_instance_rec.active_end_date <= SYSDATE)) THEN
13456 IF ((p_instance_rec.active_end_date IS NULL ) OR
13457 ((p_instance_rec.active_end_date > SYSDATE) AND
13458 (p_instance_rec.active_end_date <> FND_API.G_MISS_DATE))) THEN
13459 IF (p_instance_rec.instance_status_id = NULL OR
13460 p_instance_rec.instance_status_id = FND_API.G_MISS_NUM) THEN
13461 p_instance_rec.instance_status_id := 510;
13462 ELSIF
13463 (p_instance_rec.instance_status_id IS NOT NULL AND
13464 p_instance_rec.instance_status_id <> FND_API.G_MISS_NUM)
13465 THEN
13466 IF (CSI_Item_Instance_vld_pvt.val_inst_ter_flag --added first change
13467 (l_get_instance_rec.instance_status_id))
13468 THEN
13469 FND_MESSAGE.Set_Name('CSI', 'CSI_API_INVALID_STATUS');
13470 FND_MSG_PUB.ADD;
13471 RAISE FND_API.G_EXC_ERROR;
13472 END IF;
13473 END IF;
13474 END IF;
13475 END IF;
13476 -- end of addition by rtalluri for Bugfix 2318211 on 04/16/02
13477
13478 --validation for the instance condition id
13479 l_valid_flag := 'Y';
13480 l_exists_flag := 'N';
13481 If ((p_instance_rec.instance_condition_id is not null) AND
13482 (p_instance_rec.instance_condition_id <> FND_API.G_MISS_NUM) AND
13483 (p_instance_rec.instance_condition_id <> l_curr_instance_rec.instance_condition_id))
13484 THEN
13485 if p_generic_id_tbl.count > 0 then
13486 For gen_count in p_generic_id_tbl.FIRST .. p_generic_id_tbl.LAST
13487 Loop
13488 if p_generic_id_tbl(gen_count).generic_id = p_instance_rec.instance_condition_id AND
13489 p_generic_id_tbl(gen_count).id_type = 'INS_CONDITION' then
13490 l_valid_flag := p_generic_id_tbl(gen_count).valid_flag;
13491 l_exists_flag := 'Y';
13492 exit;
13493 end if;
13494 End Loop;
13495 --
13496 if l_valid_flag <> 'Y' then
13497 FND_MESSAGE.SET_NAME('CSI','CSI_API_INVALID_ITEM_CONDITION');
13498 FND_MESSAGE.SET_TOKEN('INSTANCE_CONDITION_ID',p_instance_rec.instance_condition_id);
13499 FND_MSG_PUB.Add;
13500 RAISE fnd_api.g_exc_error;
13501 end if;
13502 end if;
13503 --
13504 if l_exists_flag = 'N' then
13505 p_ins_count_rec.generic_count := p_ins_count_rec.generic_count + 1;
13506 p_generic_id_tbl(p_ins_count_rec.generic_count).generic_id := p_instance_rec.instance_condition_id;
13507 p_generic_id_tbl(p_ins_count_rec.generic_count).id_type := 'INS_CONDITION';
13508 csi_item_instance_vld_pvt.Is_Valid_Condition
13509 (
13510 p_instance_condition_id => p_instance_rec.instance_condition_id,
13511 p_creation_complete_flag => l_get_instance_rec.creation_complete_flag, -- l_get
13512 l_return_value => l_return_value
13513 );
13514 IF l_return_value = FALSE THEN
13515 p_generic_id_tbl(p_ins_count_rec.generic_count).valid_flag := 'N';
13516 RAISE fnd_api.g_exc_error;
13517 ELSE
13518 p_generic_id_tbl(p_ins_count_rec.generic_count).valid_flag := 'Y';
13519 END IF;
13520 end if;
13521 end if;
13522 --
13523 OPEN party_owner_rec(p_instance_rec.instance_id);
13524 FETCH party_owner_rec INTO l_party_owner_rec;
13525
13526 --Changes for bug 10114652
13527 IF(nvl(p_txn_rec.inv_material_transaction_id, fnd_api.g_miss_num) <> fnd_api.g_miss_num) THEN
13528 BEGIN
13529 SELECT transaction_type_id INTO l_transaction_type_id
13530 FROM mtl_material_transactions
13531 WHERE transaction_id = p_txn_rec.inv_material_transaction_id;
13532 EXCEPTION
13533 WHEN NO_DATA_FOUND THEN
13534 csi_gen_utility_pvt.put_line('No data Found while fetching txn type id, from Inv Mtl txn id');
13535 RAISE FND_API.G_EXC_ERROR;
13536 WHEN OTHERS THEN
13537 csi_gen_utility_pvt.put_line('Other Exception while fetching txn type id, from Inv Mtl txn id');
13538 RAISE FND_API.G_EXC_ERROR;
13539 END;
13540 -- Get serial tagging control
13541 csi_gen_utility_pvt.put_line('Serial Tagging Control before API call 2 - '|| l_serial_tagged);
13542 l_serial_tagged := inv_cache.get_serial_tagged (
13543 p_inventory_item_id => p_instance_rec.inventory_item_id,
13544 p_organization_id => p_instance_rec.inv_organization_id,
13545 p_transaction_type_id => l_transaction_type_id);
13546 END IF;
13547
13548 csi_gen_utility_pvt.put_line('Serial Tagging Control - '||l_serial_tagged);
13549 IF l_serial_tagged <> 2 THEN
13550 csi_gen_utility_pvt.put_line('l_serial_tagged is not 2');
13551 IF NOT (csi_item_instance_vld_pvt.Validate_Uniqueness
13552 (p_instance_rec => l_get_instance_rec,
13553 p_party_rec => l_party_owner_rec,
13554 p_srl_control_code => l_serial_control,
13555 p_csi_txn_type_id => p_txn_rec.transaction_type_id))
13556 THEN
13557 RAISE FND_API.G_EXC_ERROR;
13558 END IF;
13559 END IF;
13560 CLOSE party_owner_rec;
13561
13562 --validation for the instance type
13563 l_valid_flag := 'Y';
13564 l_exists_flag := 'N';
13565 IF ((p_instance_rec.instance_type_code <> FND_API.G_MISS_CHAR) AND
13566 (p_instance_rec.instance_type_code IS NOT NULL) AND
13567 (p_instance_rec.instance_type_code <> l_curr_instance_rec.instance_type_code)) THEN
13568 If p_lookup_tbl.count > 0 then
13569 For lookup_count in p_lookup_tbl.FIRST .. p_lookup_tbl.LAST
13570 Loop
13571 if p_lookup_tbl(lookup_count).lookup_type = 'INSTANCE_TYPE' AND
13572 p_lookup_tbl(lookup_count).lookup_code = p_instance_rec.instance_type_code then
13573 l_valid_flag := p_lookup_tbl(lookup_count).valid_flag;
13574 l_exists_flag := 'Y';
13575 exit;
13576 end if;
13577 End Loop;
13578 --
13579 if l_valid_flag <> 'Y' then
13580 FND_MESSAGE.SET_NAME('CSI','CSI_API_INVALID_INSTANCE_TYPE');
13581 FND_MESSAGE.SET_TOKEN('INSTANCE_TYPE_CODE',p_instance_rec.instance_type_code);
13582 FND_MSG_PUB.Add;
13583 RAISE fnd_api.g_exc_error;
13584 end if;
13585 End if;
13586 --
13587 If l_exists_flag <> 'Y' then
13588 p_ins_count_rec.lookup_count := p_ins_count_rec.lookup_count + 1;
13589 p_lookup_tbl(p_ins_count_rec.lookup_count).lookup_type := 'INSTANCE_TYPE';
13590 p_lookup_tbl(p_ins_count_rec.lookup_count).lookup_code := p_instance_rec.instance_type_code;
13591 IF NOT csi_Item_Instance_Vld_pvt.Is_Valid_Instance_Type(
13592 p_instance_rec.instance_type_code) THEN
13593
13594 p_lookup_tbl(p_ins_count_rec.lookup_count).valid_flag := 'N';
13595 RAISE fnd_api.g_exc_error;
13596 ELSE
13597 p_lookup_tbl(p_ins_count_rec.lookup_count).valid_flag := 'Y';
13598 END IF;
13599 End if;
13600 END IF;
13601
13602 --validation for the instance usage code
13603 l_valid_flag := 'Y';
13604 l_exists_flag := 'N';
13605 IF ((p_instance_rec.instance_usage_code <> FND_API.G_MISS_CHAR) AND
13606 (p_instance_rec.instance_usage_code IS NOT NULL) AND
13607 (p_instance_rec.instance_usage_code <> l_curr_instance_rec.instance_usage_code)) THEN
13608 If p_lookup_tbl.count > 0 then
13609 For lookup_count in p_lookup_tbl.FIRST .. p_lookup_tbl.LAST
13610 Loop
13611 if p_lookup_tbl(lookup_count).lookup_type = 'INSTANCE_USAGE' AND
13612 p_lookup_tbl(lookup_count).lookup_code = p_instance_rec.instance_usage_code then
13613 l_valid_flag := p_lookup_tbl(lookup_count).valid_flag;
13614 l_exists_flag := 'Y';
13615 exit;
13616 end if;
13617 End Loop;
13618 --
13619 if l_valid_flag <> 'Y' then
13620 FND_MESSAGE.SET_NAME('CSI','CSI_API_INVALID_USAGE_CODE');
13621 FND_MESSAGE.SET_TOKEN('INSTANCE_USAGE_CODE',p_instance_rec.instance_usage_code);
13622 FND_MSG_PUB.Add;
13623 RAISE fnd_api.g_exc_error;
13624 end if;
13625 End if;
13626 --
13627 If l_exists_flag <> 'Y' then
13628 p_ins_count_rec.lookup_count := p_ins_count_rec.lookup_count + 1;
13629 p_lookup_tbl(p_ins_count_rec.lookup_count).lookup_type := 'INSTANCE_USAGE';
13630 p_lookup_tbl(p_ins_count_rec.lookup_count).lookup_code := p_instance_rec.instance_usage_code;
13631 IF NOT csi_Item_Instance_Vld_pvt.Valid_Inst_Usage_Code(
13632 p_instance_rec.instance_usage_code) THEN
13633 p_lookup_tbl(p_ins_count_rec.lookup_count).valid_flag := 'N';
13634 RAISE fnd_api.g_exc_error;
13635 ELSE
13636 p_lookup_tbl(p_ins_count_rec.lookup_count).valid_flag := 'Y';
13637 END IF;
13638 END IF;
13639 END IF;
13640
13641 -- Addition of columns for FA Integration
13642 --validation for the operational status
13643 l_valid_flag := 'Y';
13644 l_exists_flag := 'N';
13645 IF ((p_instance_rec.operational_status_code IS NOT NULL) AND
13646 (p_instance_rec.operational_status_code <> FND_API.G_MISS_CHAR) AND
13647 (p_instance_rec.operational_status_code <> l_curr_instance_rec.operational_status_code)
13648 )
13649 THEN
13650 IF p_lookup_tbl.count > 0 THEN
13651 For lookup_count in p_lookup_tbl.FIRST .. p_lookup_tbl.LAST
13652 LOOP
13653 IF p_lookup_tbl(lookup_count).lookup_type = 'OPERATIONAL_STATUS' AND
13654 p_lookup_tbl(lookup_count).lookup_code = p_instance_rec.operational_status_code
13655 THEN
13656 l_valid_flag := p_lookup_tbl(lookup_count).valid_flag;
13657 l_exists_flag := 'Y';
13658 exit;
13659 END IF;
13660 End Loop;
13661 --
13662 if l_valid_flag <> 'Y' then
13663 FND_MESSAGE.SET_NAME('CSI','CSI_OPERATIONAL_STATUS_CODE');
13664 FND_MESSAGE.SET_TOKEN('OPERATIONAL_STATUS_CODE',p_instance_rec.operational_status_code);
13665 FND_MSG_PUB.Add;
13666 RAISE fnd_api.g_exc_error;
13667 end if;
13668 End if;
13669 --
13670 IF l_exists_flag <> 'Y' THEN
13671 p_ins_count_rec.lookup_count := p_ins_count_rec.lookup_count + 1;
13672 p_lookup_tbl(p_ins_count_rec.lookup_count).lookup_type := 'OPERATIONAL_STATUS';
13673 p_lookup_tbl(p_ins_count_rec.lookup_count).lookup_code := p_instance_rec.operational_status_code;
13674 IF NOT csi_Item_Instance_Vld_pvt.Valid_operational_status(
13675 p_instance_rec.operational_status_code) THEN
13676 p_lookup_tbl(p_ins_count_rec.lookup_count).valid_flag := 'N';
13677 RAISE fnd_api.g_exc_error;
13678 ELSE
13679 p_lookup_tbl(p_ins_count_rec.lookup_count).valid_flag := 'Y';
13680 END IF;
13681 END IF;
13682 ELSE
13683 IF p_instance_rec.operational_status_code IS NULL
13684 THEN
13685 p_instance_rec.operational_status_code:='NOT_USED';
13686 END IF;
13687 END IF;
13688
13689 -- Following code has been added for operational_status_code
13690 -- If owner is Internal then
13691 l_int_party_id := csi_datastructures_pub.g_install_param_rec.internal_party_id;
13692 --
13693 IF l_int_party_id IS NULL THEN
13694 select internal_party_id
13695 into l_int_party_id
13696 from csi_install_parameters;
13697
13698 IF l_int_party_id IS NULL THEN
13699 FND_MESSAGE.SET_NAME('CSI','CSI_API_UNINSTALLED_PARAMETER');
13700 FND_MSG_PUB.ADD;
13701 RAISE FND_API.G_EXC_ERROR;
13702 END IF;
13703 END IF;
13704
13705 IF p_instance_rec.owner_party_id IS NULL OR
13706 p_instance_rec.owner_party_id = fnd_api.g_miss_num
13707 THEN
13708 SELECT owner_party_id
13709 INTO p_instance_rec.owner_party_id
13710 FROM csi_item_instances
13711 WHERE instance_id=p_instance_rec.instance_id;
13712 END IF;
13713
13714 IF p_instance_rec.owner_party_id = l_int_party_id
13715 THEN
13716
13717 --Bug 15997079 : Start -- transfer to internal should clear install location
13718 IF p_txn_rec.source_group_ref = 'TransferToInternal' THEN
13719 p_instance_rec.install_location_type_code := null;
13720 p_instance_rec.install_location_id := null;
13721 END IF;
13722 --Bug 15997079 : End
13723
13724 IF l_get_instance_rec.location_type_code='INVENTORY'
13725 THEN
13726 IF (p_instance_rec.operational_status_code IS NOT NULL AND
13727 p_instance_rec.operational_status_code <> fnd_api.g_miss_char AND
13728 p_instance_rec.operational_status_code <> l_curr_instance_rec.operational_status_code) --Added for bug 9275973
13729 AND l_curr_instance_rec.operational_status_code IN ('NOT_USED','INSTALLED','IN_SERVICE')
13730 AND p_instance_rec.operational_status_code <> 'OUT_OF_SERVICE'
13731 THEN
13732 p_instance_rec.operational_status_code := 'OUT_OF_SERVICE';
13733 ELSIF (p_instance_rec.operational_status_code IS NOT NULL AND
13734 p_instance_rec.operational_status_code <> fnd_api.g_miss_char)
13735 AND l_curr_instance_rec.operational_status_code = 'OUT_OF_SERVICE'
13736 AND p_instance_rec.operational_status_code NOT IN ('NOT_USED','OUT_OF_SERVICE')
13737 THEN
13738 p_instance_rec.operational_status_code := 'NOT_USED';
13739 ELSIF l_curr_instance_rec.operational_status_code IS NULL OR
13740 (l_curr_instance_rec.operational_status_code NOT IN
13741 ('NOT_USED','OUT_OF_SERVICE','INSTALLED','IN_SERVICE'))
13742 THEN
13743 p_instance_rec.operational_status_code := 'NOT_USED';
13744 END IF;
13745 ELSIF l_get_instance_rec.location_type_code IN ('WIP','IN_TRANSIT')
13746 THEN
13747 IF (p_instance_rec.operational_status_code IS NOT NULL AND
13748 p_instance_rec.operational_status_code <> fnd_api.g_miss_char)
13749 AND p_instance_rec.operational_status_code <> 'NOT_USED'
13750 AND l_curr_instance_rec.operational_status_code = 'NOT_USED'
13751 THEN
13752 p_instance_rec.operational_status_code := 'NOT_USED';
13753 ELSIF (p_instance_rec.operational_status_code IS NOT NULL AND
13754 p_instance_rec.operational_status_code <> fnd_api.g_miss_char)
13755 AND p_instance_rec.operational_status_code <> 'OUT_OF_SERVICE'
13756 AND l_curr_instance_rec.operational_status_code = 'OUT_OF_SERVICE'
13757 THEN
13758 p_instance_rec.operational_status_code := 'OUT_OF_SERVICE';
13759 ELSIF l_curr_instance_rec.operational_status_code IS NULL OR
13760 (l_curr_instance_rec.operational_status_code NOT IN ('NOT_USED','OUT_OF_SERVICE'))
13761 THEN
13762 p_instance_rec.operational_status_code := 'NOT_USED';
13763 END IF;
13764 ELSIF l_get_instance_rec.location_type_code ='VENDOR_SITE'
13765 THEN
13766 IF (p_instance_rec.operational_status_code IS NOT NULL AND
13767 p_instance_rec.operational_status_code <> fnd_api.g_miss_char)
13768 AND p_instance_rec.operational_status_code <> 'NOT_USED'
13769 AND l_curr_instance_rec.operational_status_code IN ('NOT_USED','OUT_OF_SERVICE')
13770 THEN
13771 p_instance_rec.operational_status_code := 'NOT_USED';
13772 ELSIF l_curr_instance_rec.operational_status_code IS NULL OR
13773 (l_curr_instance_rec.operational_status_code NOT IN ('NOT_USED','OUT_OF_SERVICE'))
13774 THEN
13775 p_instance_rec.operational_status_code := 'NOT_USED';
13776 END IF;
13777 ELSIF l_get_instance_rec.location_type_code ='HZ_LOCATIONS'
13778 THEN
13779 IF (p_instance_rec.operational_status_code IS NOT NULL AND
13780 p_instance_rec.operational_status_code <> fnd_api.g_miss_char)
13781 AND p_instance_rec.operational_status_code NOT IN ('NOT_USED','INSTALLED','OUT_OF_SERVICE','IN_SERVICE')
13782 AND l_curr_instance_rec.operational_status_code IN ('NOT_USED','INSTALLED','OUT_OF_SERVICE','IN_SERVICE')
13783 THEN
13784 p_instance_rec.operational_status_code := 'NOT_USED';
13785 ELSIF l_curr_instance_rec.operational_status_code IS NULL OR
13786 (l_curr_instance_rec.operational_status_code NOT IN ('NOT_USED','INSTALLED','OUT_OF_SERVICE','IN_SERVICE'))
13787 THEN
13788 p_instance_rec.operational_status_code := 'NOT_USED';
13789 END IF; --HZ_PARTY_SITES
13790 ELSIF l_get_instance_rec.location_type_code ='HZ_PARTY_SITES'
13791 THEN
13792 IF (p_instance_rec.operational_status_code IS NOT NULL AND
13793 p_instance_rec.operational_status_code <> fnd_api.g_miss_char)
13794 AND p_instance_rec.operational_status_code NOT IN ('NOT_USED','INSTALLED','OUT_OF_SERVICE','IN_SERVICE')
13795 AND l_curr_instance_rec.operational_status_code IN ('NOT_USED','INSTALLED','OUT_OF_SERVICE')
13796 THEN
13797 p_instance_rec.operational_status_code := 'NOT_USED';
13798 ELSIF l_curr_instance_rec.operational_status_code IS NULL OR
13799 (l_curr_instance_rec.operational_status_code NOT IN ('NOT_USED','INSTALLED','OUT_OF_SERVICE','IN_SERVICE'))
13800 THEN
13801 p_instance_rec.operational_status_code := 'NOT_USED';
13802 END IF;
13803 ELSIF l_get_instance_rec.location_type_code = 'PROJECT'
13804 THEN
13805 IF (p_instance_rec.operational_status_code IS NOT NULL AND
13806 p_instance_rec.operational_status_code <> fnd_api.g_miss_char)
13807 AND p_instance_rec.operational_status_code <> 'NOT_USED'
13808 AND l_curr_instance_rec.operational_status_code = 'NOT_USED'
13809 THEN
13810 p_instance_rec.operational_status_code := 'NOT_USED';
13811 ELSIF (p_instance_rec.operational_status_code IS NOT NULL AND
13812 p_instance_rec.operational_status_code <> fnd_api.g_miss_char)
13813 AND p_instance_rec.operational_status_code <> 'OUT_OF_SERVICE'
13814 AND l_curr_instance_rec.operational_status_code = 'OUT_OF_SERVICE'
13815 THEN
13816 p_instance_rec.operational_status_code := 'OUT_OF_SERVICE';
13817 ELSIF (p_instance_rec.operational_status_code IS NOT NULL AND
13818 p_instance_rec.operational_status_code <> fnd_api.g_miss_char)
13819 AND p_instance_rec.operational_status_code NOT IN ('OUT_OF_SERVICE','NOT_USED')
13820 AND l_curr_instance_rec.operational_status_code = 'INSTALLED'
13821 THEN
13822 p_instance_rec.operational_status_code := 'NOT_USED';
13823 ELSIF l_curr_instance_rec.operational_status_code IS NULL OR
13824 (l_curr_instance_rec.operational_status_code NOT IN ('NOT_USED','OUT_OF_SERVICE','INSTALLED'))
13825 THEN
13826 p_instance_rec.operational_status_code := 'NOT_USED';
13827 END IF;
13828 END IF;
13829 ELSE -- External party
13830 IF l_get_instance_rec.location_type_code='INVENTORY'
13831 THEN
13832 IF (p_instance_rec.operational_status_code IS NOT NULL AND
13833 p_instance_rec.operational_status_code <> fnd_api.g_miss_char)
13834 AND l_curr_instance_rec.operational_status_code IN ('NOT_USED','INSTALLED','IN_SERVICE','OUT_OF_SERVICE')
13835 AND p_instance_rec.operational_status_code NOT IN ('OUT_OF_SERVICE','NOT_USED')
13836 THEN
13837 p_instance_rec.operational_status_code := 'OUT_OF_SERVICE';
13838 ELSIF l_curr_instance_rec.operational_status_code IS NULL OR
13839 (l_curr_instance_rec.operational_status_code NOT IN
13840 ('NOT_USED','OUT_OF_SERVICE','INSTALLED','IN_SERVICE'))
13841 THEN
13842 p_instance_rec.operational_status_code := 'OUT_OF_SERVICE';
13843 END IF;
13844 ELSIF l_get_instance_rec.location_type_code IN ('WIP','IN_TRANSIT')
13845 THEN
13846 IF (p_instance_rec.operational_status_code IS NOT NULL AND
13847 p_instance_rec.operational_status_code <> fnd_api.g_miss_char)
13848 AND p_instance_rec.operational_status_code <> 'NOT_USED'
13849 AND l_curr_instance_rec.operational_status_code = 'NOT_USED'
13850 THEN
13851 p_instance_rec.operational_status_code := 'NOT_USED';
13852 ELSIF (p_instance_rec.operational_status_code IS NOT NULL AND
13853 p_instance_rec.operational_status_code <> fnd_api.g_miss_char)
13854 AND p_instance_rec.operational_status_code <> 'OUT_OF_SERVICE'
13855 AND l_curr_instance_rec.operational_status_code = 'OUT_OF_SERVICE'
13856 THEN
13857 p_instance_rec.operational_status_code := 'OUT_OF_SERVICE';
13858 ELSIF l_curr_instance_rec.operational_status_code IS NULL OR
13859 (l_curr_instance_rec.operational_status_code NOT IN ('NOT_USED','OUT_OF_SERVICE'))
13860 THEN
13861 p_instance_rec.operational_status_code := 'NOT_USED';
13862 END IF;
13863 ELSIF l_get_instance_rec.location_type_code ='VENDOR_SITE'
13864 THEN
13865 IF (p_instance_rec.operational_status_code IS NOT NULL AND
13866 p_instance_rec.operational_status_code <> fnd_api.g_miss_char)
13867 AND p_instance_rec.operational_status_code <> 'NOT_USED'
13868 AND l_curr_instance_rec.operational_status_code IN ('NOT_USED','OUT_OF_SERVICE')
13869 THEN
13870 p_instance_rec.operational_status_code := 'NOT_USED';
13871 ELSIF l_curr_instance_rec.operational_status_code IS NULL OR
13872 (l_curr_instance_rec.operational_status_code NOT IN ('NOT_USED','OUT_OF_SERVICE'))
13873 THEN
13874 p_instance_rec.operational_status_code := 'NOT_USED';
13875 END IF;
13876 ELSIF l_get_instance_rec.location_type_code = 'PROJECT'
13877 THEN
13878 IF (p_instance_rec.operational_status_code IS NOT NULL AND
13879 p_instance_rec.operational_status_code <> fnd_api.g_miss_char)
13880 AND p_instance_rec.operational_status_code <> 'NOT_USED'
13881 AND l_curr_instance_rec.operational_status_code = 'NOT_USED'
13882 THEN
13883 p_instance_rec.operational_status_code := 'NOT_USED';
13884 ELSIF (p_instance_rec.operational_status_code IS NOT NULL AND
13885 p_instance_rec.operational_status_code <> fnd_api.g_miss_char)
13886 AND p_instance_rec.operational_status_code <> 'OUT_OF_SERVICE'
13887 AND l_curr_instance_rec.operational_status_code = 'OUT_OF_SERVICE'
13888 THEN
13889 p_instance_rec.operational_status_code := 'OUT_OF_SERVICE';
13890 ELSIF (p_instance_rec.operational_status_code IS NOT NULL AND
13891 p_instance_rec.operational_status_code <> fnd_api.g_miss_char)
13892 AND p_instance_rec.operational_status_code NOT IN ('OUT_OF_SERVICE','NOT_USED')
13893 AND l_curr_instance_rec.operational_status_code = 'INSTALLED'
13894 THEN
13895 p_instance_rec.operational_status_code := 'NOT_USED';
13896 ELSIF l_curr_instance_rec.operational_status_code IS NULL OR
13897 (l_curr_instance_rec.operational_status_code NOT IN ('NOT_USED','OUT_OF_SERVICE','INSTALLED'))
13898 THEN
13899 p_instance_rec.operational_status_code := 'NOT_USED';
13900 END IF;
13901 ELSIF l_get_instance_rec.location_type_code ='HZ_PARTY_SITES'
13902 THEN
13903 IF (p_instance_rec.operational_status_code IS NOT NULL AND
13904 p_instance_rec.operational_status_code <> fnd_api.g_miss_char)
13905 AND p_instance_rec.operational_status_code NOT IN ('INSTALLED','OUT_OF_SERVICE','IN_SERVICE')
13906 AND l_curr_instance_rec.operational_status_code ='NOT_USED'
13907 THEN
13908 p_instance_rec.operational_status_code := 'NOT_USED';
13909 ELSIF (p_instance_rec.operational_status_code IS NOT NULL AND
13910 p_instance_rec.operational_status_code <> fnd_api.g_miss_char)
13911 AND p_instance_rec.operational_status_code NOT IN ('INSTALLED','IN_SERVICE','NOT_USED')
13912 AND l_curr_instance_rec.operational_status_code ='OUT_OF_SERVICE'
13913 THEN
13914 p_instance_rec.operational_status_code := 'OUT_OF_SERVICE';
13915 ELSIF l_curr_instance_rec.operational_status_code IS NULL OR
13916 (l_curr_instance_rec.operational_status_code NOT IN ('NOT_USED','OUT_OF_SERVICE'))
13917 THEN
13918 p_instance_rec.operational_status_code := 'NOT_USED';
13919 END IF;
13920 ELSIF l_get_instance_rec.location_type_code ='HZ_LOCATIONS'
13921 THEN
13922 IF (p_instance_rec.operational_status_code IS NOT NULL AND
13923 p_instance_rec.operational_status_code <> fnd_api.g_miss_char)
13924 AND p_instance_rec.operational_status_code NOT IN ('NOT_USED','INSTALLED','OUT_OF_SERVICE','IN_SERVICE')
13925 AND l_curr_instance_rec.operational_status_code IN ('NOT_USED','INSTALLED','OUT_OF_SERVICE','IN_SERVICE')
13926 THEN
13927 p_instance_rec.operational_status_code := 'NOT_USED';
13928 ELSIF l_curr_instance_rec.operational_status_code IS NULL OR
13929 (l_curr_instance_rec.operational_status_code NOT IN ('NOT_USED','INSTALLED','OUT_OF_SERVICE','IN_SERVICE'))
13930 THEN
13931 p_instance_rec.operational_status_code := 'NOT_USED';
13932 END IF;
13933 END IF;
13934 END IF;
13935
13936
13937
13938 IF ((p_instance_rec.purchase_currency_code IS NOT NULL) AND
13939 (p_instance_rec.purchase_currency_code <> FND_API.G_MISS_CHAR) AND
13940 (p_instance_rec.purchase_currency_code <> nvl(l_curr_instance_rec.purchase_currency_code,'$$##$$'))
13941 )
13942 THEN
13943 p_instance_rec.purchase_currency_code := UPPER(p_instance_rec.purchase_currency_code);
13944 IF NOT csi_item_instance_vld_pvt.valid_currency_code
13945 (p_currency_code => p_instance_rec.purchase_currency_code)
13946 THEN
13947 RAISE fnd_api.g_exc_error;
13948 END IF;
13949 END IF;
13950
13951 IF ((p_instance_rec.payables_currency_code IS NOT NULL) AND
13952 (p_instance_rec.payables_currency_code <> FND_API.G_MISS_CHAR) AND
13953 (p_instance_rec.payables_currency_code <> nvl(l_curr_instance_rec.payables_currency_code,'$$##$$'))
13954 )
13955 THEN
13956 p_instance_rec.payables_currency_code := UPPER(p_instance_rec.payables_currency_code);
13957 IF NOT csi_item_instance_vld_pvt.valid_currency_code
13958 (p_currency_code => p_instance_rec.payables_currency_code)
13959 THEN
13960 RAISE fnd_api.g_exc_error;
13961 END IF;
13962 END IF;
13963
13964 IF ((p_instance_rec.sales_currency_code IS NOT NULL) AND
13965 (p_instance_rec.sales_currency_code <> FND_API.G_MISS_CHAR) AND
13966 (p_instance_rec.sales_currency_code <> nvl(l_curr_instance_rec.sales_currency_code,'$$##$$'))
13967 )
13968 THEN
13969 p_instance_rec.sales_currency_code := UPPER(p_instance_rec.sales_currency_code);
13970 IF NOT csi_item_instance_vld_pvt.valid_currency_code
13971 (p_currency_code => p_instance_rec.sales_currency_code)
13972 THEN
13973 RAISE fnd_api.g_exc_error;
13974 END IF;
13975 END IF;
13976 IF (
13977 ((l_curr_instance_rec.purchase_currency_code IS NOT NULL AND
13978 l_curr_instance_rec.purchase_unit_price IS NOT NULL) AND
13979 ((p_instance_rec.purchase_currency_code IS NULL AND
13980 p_instance_rec.purchase_unit_price = FND_API.G_MISS_NUM) OR
13981 (p_instance_rec.purchase_unit_price IS NULL AND
13982 p_instance_rec.purchase_currency_code = FND_API.G_MISS_CHAR))
13983 )
13984 OR
13985 (
13986 (l_curr_instance_rec.purchase_currency_code IS NULL AND
13987 l_curr_instance_rec.purchase_unit_price IS NULL) AND
13988 (((p_instance_rec.purchase_currency_code IS NOT NULL AND
13989 p_instance_rec.purchase_currency_code <> FND_API.G_MISS_CHAR) AND
13990 (p_instance_rec.purchase_unit_price IS NULL OR
13991 p_instance_rec.purchase_unit_price = FND_API.G_MISS_NUM)) OR
13992 ((p_instance_rec.purchase_currency_code IS NULL OR
13993 p_instance_rec.purchase_currency_code = FND_API.G_MISS_CHAR) AND
13994 (p_instance_rec.purchase_unit_price IS NOT NULL AND
13995 p_instance_rec.purchase_unit_price <> FND_API.G_MISS_NUM)))
13996 )
13997 )
13998 OR
13999 (
14000 ((l_curr_instance_rec.payables_currency_code IS NOT NULL AND
14001 l_curr_instance_rec.payables_unit_price IS NOT NULL) AND
14002 ((p_instance_rec.payables_currency_code IS NULL AND
14003 p_instance_rec.payables_unit_price = FND_API.G_MISS_NUM) OR
14004 (p_instance_rec.payables_unit_price IS NULL AND
14005 p_instance_rec.payables_currency_code = FND_API.G_MISS_CHAR))
14006 )
14007 OR
14008 (
14009 (l_curr_instance_rec.payables_currency_code IS NULL AND
14010 l_curr_instance_rec.payables_unit_price IS NULL) AND
14011 (((p_instance_rec.payables_currency_code IS NOT NULL AND
14012 p_instance_rec.payables_currency_code <> FND_API.G_MISS_CHAR) AND
14013 (p_instance_rec.payables_unit_price IS NULL OR
14014 p_instance_rec.payables_unit_price = FND_API.G_MISS_NUM)) OR
14015 ((p_instance_rec.payables_currency_code IS NULL OR
14016 p_instance_rec.payables_currency_code = FND_API.G_MISS_CHAR) AND
14017 (p_instance_rec.payables_unit_price IS NOT NULL AND
14018 p_instance_rec.payables_unit_price <> FND_API.G_MISS_NUM)))
14019 )
14020 )
14021 OR
14022 (
14023 ((l_curr_instance_rec.sales_currency_code IS NOT NULL AND
14024 l_curr_instance_rec.sales_unit_price IS NOT NULL) AND
14025 ((p_instance_rec.sales_currency_code IS NULL AND
14026 p_instance_rec.sales_unit_price = FND_API.G_MISS_NUM) OR
14027 (p_instance_rec.sales_unit_price IS NULL AND
14028 p_instance_rec.sales_currency_code = FND_API.G_MISS_CHAR))
14029 )
14030 OR
14031 (
14032 (l_curr_instance_rec.sales_currency_code IS NULL AND
14033 l_curr_instance_rec.sales_unit_price IS NULL) AND
14034 (((p_instance_rec.sales_currency_code IS NOT NULL AND
14035 p_instance_rec.sales_currency_code <> FND_API.G_MISS_CHAR) AND
14036 (p_instance_rec.sales_unit_price IS NULL OR
14037 p_instance_rec.sales_unit_price = FND_API.G_MISS_NUM)) OR
14038 ((p_instance_rec.sales_currency_code IS NULL OR
14039 p_instance_rec.sales_currency_code = FND_API.G_MISS_CHAR) AND
14040 (p_instance_rec.sales_unit_price IS NOT NULL AND
14041 p_instance_rec.sales_unit_price <> FND_API.G_MISS_NUM)))
14042 )
14043 )
14044 THEN
14045 FND_MESSAGE.SET_NAME('CSI','CSI_NO_PRICE_OR_CODE');
14046 FND_MSG_PUB.Add;
14047 RAISE fnd_api.g_exc_error;
14048 END IF;
14049 -- End addition of columns for FA Integration
14050
14051 -- Start of bug fix 2151750 by sk on 02/04/02
14052
14053 -- If location_type_code has been changing from something to INVENTORY
14054 -- then check if this record has been existing as a subject in csi_ii_relationships
14055 -- of COMPONENT-OF relationship_type_code and if exists then if
14056 -- l_get_instance_rec.instance_usage_code is not equal to
14057 -- IN_RELATIONSHIP then raise an error.
14058
14059 IF l_curr_instance_rec.location_type_code <> 'INVENTORY' AND
14060 p_instance_rec.location_type_code = 'INVENTORY'
14061 THEN
14062 l_temp_rec := null;
14063 BEGIN
14064 SELECT 'x'
14065 INTO l_temp_rec
14066 FROM csi_ii_relationships
14067 WHERE relationship_type_code = 'COMPONENT-OF'
14068 AND subject_id = p_instance_rec.instance_id
14069 AND (active_end_date IS NULL OR active_end_date > SYSDATE);
14070 EXCEPTION
14071 WHEN OTHERS THEN
14072 null;
14073 END;
14074
14075 IF ( l_get_instance_rec.instance_usage_code <> 'IN_RELATIONSHIP' OR
14076 l_get_instance_rec.instance_usage_code IS NULL OR
14077 l_get_instance_rec.instance_usage_code = fnd_api.g_miss_char) AND
14078 l_temp_rec IS NOT NULL
14079 THEN
14080 FND_MESSAGE.Set_Name('CSI', 'CSI_INVALID_USAGE_CODE');
14081 FND_MSG_PUB.ADD;
14082 RAISE fnd_api.g_exc_error;
14083 END IF;
14084
14085
14086 END IF;
14087
14088
14089 -- The following code has been added to disallow updating instance_usage_code
14090 -- if the instance is in IN-RELATIONSHIP.
14091 IF l_curr_instance_rec.instance_usage_code = 'IN_RELATIONSHIP' AND
14092 ( ( p_instance_rec.instance_usage_code <> 'IN_RELATIONSHIP' AND
14093 p_instance_rec.instance_usage_code IS NOT NULL AND
14094 p_instance_rec.instance_usage_code <> fnd_api.g_miss_char)
14095 OR
14096 ( p_instance_rec.instance_usage_code IS NULL)
14097 )
14098 THEN
14099 l_temp_rec1 := NULL;
14100 BEGIN
14101 SELECT 'x'
14102 INTO l_temp_rec1
14103 FROM csi_ii_relationships
14104 WHERE relationship_type_code = 'COMPONENT-OF'
14105 AND subject_id = p_instance_rec.instance_id
14106 AND (active_end_date IS NULL OR active_end_date > SYSDATE);
14107
14108 IF l_temp_rec1 IS NOT NULL
14109 THEN
14110 FND_MESSAGE.Set_Name('CSI', 'CSI_MODIFY_USAGE_CODE');
14111 FND_MESSAGE.SET_TOKEN('INSTANCE_ID',p_instance_rec.instance_id);
14112 FND_MSG_PUB.ADD;
14113 RAISE fnd_api.g_exc_error;
14114 END IF;
14115 EXCEPTION
14116 WHEN NO_DATA_FOUND THEN
14117 NULL;
14118 END;
14119 END IF;
14120 -- End of bug fix 2151750 by sk on 02/04/02
14121
14122 --location validation
14123 IF (
14124 (
14125 ((p_instance_rec.location_type_code IS NULL) AND (l_curr_instance_rec.location_type_code IS NOT NULL))
14126 OR
14127 (p_instance_rec.location_type_code <> FND_API.G_MISS_CHAR
14128 AND NVL(p_instance_rec.location_type_code, FND_API.G_MISS_CHAR) <> NVL(l_curr_instance_rec.location_type_code, FND_API.G_MISS_CHAR))
14129 )
14130 OR
14131 (
14132 ((p_instance_rec.location_id IS NULL) AND (l_curr_instance_rec.location_id IS NOT NULL))
14133 OR
14134 (p_instance_rec.location_id <> FND_API.G_MISS_NUM
14135 AND NVL(p_instance_rec.location_id, FND_API.G_MISS_NUM) <> NVL(l_curr_instance_rec.location_id, FND_API.G_MISS_NUM))
14136 )
14137 OR
14138 (
14139 ((p_instance_rec.install_location_type_code IS NULL) AND (l_curr_instance_rec.install_location_type_code IS NOT NULL))
14140 OR
14141 (p_instance_rec.install_location_type_code <> FND_API.G_MISS_CHAR
14142 AND NVL(p_instance_rec.install_location_type_code, FND_API.G_MISS_CHAR) <> NVL(l_curr_instance_rec.install_location_type_code, FND_API.G_MISS_CHAR))
14143 )
14144 OR
14145 (
14146 ((p_instance_rec.install_location_id IS NULL) AND (l_curr_instance_rec.install_location_id IS NOT NULL))
14147 OR
14148 (p_instance_rec.install_location_id <> FND_API.G_MISS_NUM
14149 AND NVL(p_instance_rec.install_location_id, FND_API.G_MISS_NUM) <> NVL(l_curr_instance_rec.install_location_id, FND_API.G_MISS_NUM))
14150 )
14151 OR
14152 (
14153 ((p_instance_rec.inv_organization_id IS NULL) AND (l_curr_instance_rec.inv_organization_id IS NOT NULL))
14154 OR
14155 (p_instance_rec.inv_organization_id <> FND_API.G_MISS_NUM
14156 AND NVL(p_instance_rec.inv_organization_id, FND_API.G_MISS_NUM) <> NVL(l_curr_instance_rec.inv_organization_id, FND_API.G_MISS_NUM))
14157 )
14158 OR
14159 (
14160 ((p_instance_rec.inv_subinventory_name IS NULL) AND (l_curr_instance_rec.inv_subinventory_name IS NOT NULL))
14161 OR
14162 (p_instance_rec.inv_subinventory_name <> FND_API.G_MISS_CHAR
14163 AND NVL(p_instance_rec.inv_subinventory_name, FND_API.G_MISS_CHAR) <> NVL(l_curr_instance_rec.inv_subinventory_name, FND_API.G_MISS_CHAR))
14164 )
14165 OR
14166 (
14167 ((p_instance_rec.inv_locator_id IS NULL) AND (l_curr_instance_rec.inv_locator_id IS NOT NULL))
14168 OR
14169 (p_instance_rec.inv_locator_id <> FND_API.G_MISS_NUM
14170 AND NVL(p_instance_rec.inv_locator_id, FND_API.G_MISS_NUM) <> NVL(l_curr_instance_rec.inv_locator_id, FND_API.G_MISS_NUM))
14171 )
14172 OR
14173 (
14174 ((p_instance_rec.pa_project_id IS NULL) AND (l_curr_instance_rec.pa_project_id IS NOT NULL))
14175 OR
14176 (p_instance_rec.pa_project_id <> FND_API.G_MISS_NUM
14177 AND NVL(p_instance_rec.pa_project_id, FND_API.G_MISS_NUM) <> NVL(l_curr_instance_rec.pa_project_id, FND_API.G_MISS_NUM))
14178 )
14179 OR
14180 (
14181 ((p_instance_rec.pa_project_task_id IS NULL) AND (l_curr_instance_rec.pa_project_task_id is not null))
14182 OR
14183 (p_instance_rec.pa_project_task_id <> FND_API.G_MISS_NUM
14184 AND NVL(p_instance_rec.pa_project_task_id, FND_API.G_MISS_NUM) <> NVL(l_curr_instance_rec.pa_project_task_id, FND_API.G_MISS_NUM))
14185 )
14186 OR
14187 (
14188 ((p_instance_rec.in_transit_order_line_id IS NULL) AND (l_curr_instance_rec.in_transit_order_line_id IS NOT NULL))
14189 OR
14190 (p_instance_rec.in_transit_order_line_id <> FND_API.G_MISS_NUM
14191 AND NVL(p_instance_rec.in_transit_order_line_id, FND_API.G_MISS_NUM) <> NVL(l_curr_instance_rec.in_transit_order_line_id, FND_API.G_MISS_NUM))
14192 )
14193 OR
14194 (
14195 ((p_instance_rec.wip_job_id IS NULL) AND (l_curr_instance_rec.wip_job_id IS NOT NULL))
14196 OR
14197 (p_instance_rec.wip_job_id <> FND_API.G_MISS_NUM
14198 AND NVL(p_instance_rec.wip_job_id, FND_API.G_MISS_NUM) <> NVL(l_curr_instance_rec.wip_job_id, FND_API.G_MISS_NUM))
14199 )
14200 OR
14201 (
14202 ((p_instance_rec.po_order_line_id IS NULL) AND (l_curr_instance_rec.po_order_line_id IS NOT NULL))
14203 OR
14204 (p_instance_rec.po_order_line_id <> FND_API.G_MISS_NUM
14205 AND NVL(p_instance_rec.po_order_line_id, FND_API.G_MISS_NUM) <> NVL(l_curr_instance_rec.po_order_line_id, FND_API.G_MISS_NUM))
14206 )
14207 ) THEN
14208
14209 --bring has parent logic here
14210 IF csi_Item_Instance_Vld_Pvt.Instance_has_Parent(
14211 p_instance_id => p_instance_rec.instance_id
14212 ) THEN
14213 FND_MESSAGE.Set_Name('CSI', 'CSI_API_INSTANCE_HAS_PARENT');
14214 FND_MSG_PUB.ADD;
14215 RAISE fnd_api.g_exc_error;
14216 END IF;
14217 -- Validate Location ID
14218 IF l_get_instance_rec.location_type_code IS NULL OR
14219 l_get_instance_rec.location_type_code = FND_API.G_MISS_CHAR OR
14220 l_get_instance_rec.location_id IS NULL OR
14221 l_get_instance_rec.location_id = FND_API.G_MISS_NUM THEN
14222 FND_MESSAGE.SET_NAME('CSI','CSI_API_LOCATION_NOT_VALID');
14223 FND_MSG_PUB.ADD;
14224 RAISE fnd_api.g_exc_error;
14225 END IF;
14226 --
14227 l_exists_flag := 'N';
14228 l_valid_flag := 'Y';
14229 IF p_location_tbl.count > 0 THEN
14230 For loc_row in p_location_tbl.FIRST .. p_location_tbl.LAST
14231 Loop
14232 IF p_location_tbl(loc_row).location_type_code = l_get_instance_rec.location_type_code AND
14233 p_location_tbl(loc_row).location_id = l_get_instance_rec.location_id THEN
14234 l_exists_flag := 'Y';
14235 l_valid_flag := p_location_tbl(loc_row).valid_flag;
14236 EXIT;
14237 END IF;
14238 End Loop;
14239 --
14240 IF l_valid_flag <> 'Y' THEN
14241 FND_MESSAGE.SET_NAME('CSI','CSI_API_LOCATION_NOT_VALID');
14242 FND_MSG_PUB.ADD;
14243 RAISE fnd_api.g_exc_error;
14244 END IF;
14245 END IF; -- p_location_tbl count
14246 --
14247 IF l_exists_flag <> 'Y' THEN
14248 p_ins_count_rec.location_count := p_ins_count_rec.location_count + 1;
14249 p_location_tbl(p_ins_count_rec.location_count).location_type_code :=
14250 l_get_instance_rec.location_type_code;
14251 p_location_tbl(p_ins_count_rec.location_count).location_id := l_get_instance_rec.location_id;
14252 IF csi_item_instance_vld_pvt.Is_Valid_Location_ID
14253 (p_location_source_table => l_get_instance_rec.location_type_code
14254 ,p_location_id => l_get_instance_rec.location_id) THEN
14255 p_location_tbl(p_ins_count_rec.location_count).valid_flag := 'Y';
14256 ELSE
14257 p_location_tbl(p_ins_count_rec.location_count).valid_flag := 'N';
14258 RAISE fnd_api.g_exc_error;
14259 END IF;
14260 END IF;
14261 -- Validate Related Location Parameters
14262 -- Bug 11726570
14263 -- Passing last_wip_job_id when wip job is NULL
14264 -- When WIP Issued item instance is returned the wip job id must be
14265 -- made NULL, so that the same item instance can be issued to different
14266 -- WIP Job. And teh WIP Job for which it was returned must be maintained in
14267 -- last wip job id
14268 IF NOT csi_item_instance_vld_pvt.Validate_Related_Loc_Params
14269 (
14270 p_location_source_table => l_get_instance_rec.location_type_code,
14271 p_location_id => l_get_instance_rec.location_id,
14272 p_organization_id => l_get_instance_rec.inv_organization_id,
14273 p_subinventory => l_get_instance_rec.inv_subinventory_name,
14274 p_locator_id => l_get_instance_rec.inv_locator_id,
14275 p_project_id => l_get_instance_rec.pa_project_id,
14276 p_task_id => l_get_instance_rec.pa_project_task_id,
14277 p_sales_ord_line_id => l_get_instance_rec.in_transit_order_line_id,
14278 p_wip_job_id => l_get_instance_rec.wip_job_id,
14279 p_po_line_id => l_get_instance_rec.po_order_line_id,
14280 p_inst_usage_code => l_get_instance_rec.instance_usage_code
14281 ) THEN
14282 RAISE fnd_api.g_exc_error;
14283 END IF;
14284 -- validation for accounting classification_code if
14285 -- p_instance_rec.accounting_class_code = FND_API.G_MISS_CHAR
14286
14287 IF ( p_instance_rec.accounting_class_code = FND_API.G_MISS_CHAR ) THEN
14288
14289 csi_item_instance_vld_pvt.get_valid_acct_class
14290 ( p_instance_id => p_instance_rec.instance_id
14291 ,p_curr_acct_class_code => l_get_instance_rec.accounting_class_code
14292 ,p_loc_type_code => l_get_instance_rec.location_type_code
14293 ,x_acct_class_code => l_acct_class_code
14294 );
14295 -- The following code has been commented for bug 4906588
14296 /*
14297 IF l_eam_item
14298 THEN
14299 p_instance_rec.accounting_class_code := 'ASSET';
14300 ELSE
14301 */
14302 p_instance_rec.accounting_class_code := l_acct_class_code;
14303 -- END IF;
14304 END IF;
14305
14306 IF l_curr_instance_rec.location_type_code = 'IN_TRANSIT' AND
14307 (p_instance_rec.location_type_code <> l_curr_instance_rec.location_type_code) THEN
14308 BEGIN
14309 SELECT decode(return_reason_code, 'RETURN', l_curr_instance_rec.last_oe_order_line_id, line_id),
14310 decode(return_reason_code, 'RETURN', line_id, l_curr_instance_rec.last_oe_rma_line_id),
14311 agreement_id
14312 INTO p_instance_rec.last_oe_order_line_id,
14313 p_instance_rec.last_oe_rma_line_id,
14314 p_instance_rec.last_oe_agreement_id
14315 FROM oe_order_lines_all
14316 WHERE line_id = l_curr_instance_rec.in_transit_order_line_id;
14317 EXCEPTION
14318 WHEN OTHERS THEN
14319 NULL;
14320 END ;
14321
14322 ELSIF l_curr_instance_rec.location_type_code = 'WIP' AND
14323 (p_instance_rec.location_type_code <> l_curr_instance_rec.location_type_code) THEN
14324 IF p_instance_rec.last_wip_job_id IS NULL OR
14325 p_instance_rec.last_wip_job_id = fnd_api.g_miss_num
14326 THEN
14327 p_instance_rec.last_wip_job_id := l_curr_instance_rec.wip_job_id;
14328 END IF;
14329
14330 ELSIF l_curr_instance_rec.location_type_code = 'PROJECT' AND
14331 (p_instance_rec.location_type_code <> l_curr_instance_rec.location_type_code) THEN
14332 p_instance_rec.last_pa_project_id := l_curr_instance_rec.pa_project_id;
14333 p_instance_rec.last_pa_task_id := l_curr_instance_rec.pa_project_task_id;
14334
14335 ELSIF l_curr_instance_rec.location_type_code = 'HZ_LOCATIONS' AND
14336 (p_instance_rec.location_type_code <> l_curr_instance_rec.location_type_code) THEN
14337 IF ((l_curr_instance_rec.pa_project_id IS NOT NULL) AND
14338 (l_curr_instance_rec.pa_project_task_id IS NOT NULL)) THEN
14339 p_instance_rec.last_pa_project_id := l_curr_instance_rec.pa_project_id;
14340 p_instance_rec.last_pa_task_id := l_curr_instance_rec.pa_project_task_id;
14341 END IF;
14342
14343 ELSIF l_curr_instance_rec.location_type_code = 'PO' AND
14344 (p_instance_rec.location_type_code <> l_curr_instance_rec.location_type_code) THEN
14345 p_instance_rec.last_po_po_line_id := l_curr_instance_rec.po_order_line_id;
14346 END IF;
14347
14348 --validating the owner
14349 OPEN party_owner_rec(p_instance_rec.instance_id);
14350 FETCH party_owner_rec INTO l_party_owner_rec;
14351 IF NOT (csi_item_instance_vld_pvt.Validate_Uniqueness
14352 (p_instance_rec => l_get_instance_rec,
14353 p_party_rec => l_party_owner_rec,
14354 p_srl_control_code => l_serial_control,
14355 p_csi_txn_type_id => p_txn_rec.transaction_type_id))
14356 THEN
14357 RAISE FND_API.G_EXC_ERROR;
14358 END IF;
14359 CLOSE party_owner_rec;
14360
14361 END IF;
14362
14363
14364
14365 -- Bug 11853931
14366 IF l_get_instance_rec.instance_id IS NOT NULL
14367 AND l_get_instance_rec.inventory_item_id IS NOT NULL
14368 AND l_get_instance_rec.inv_master_organization_id IS NOT NULL
14369 -- AND (((l_serial_control IN (2,5,6))
14370 AND (((csi_Item_Instance_Vld_pvt.Is_treated_serialized
14371 ( p_serial_control_code => l_serial_control
14372 ,p_location_type_code => l_get_instance_rec.location_type_code
14373 ,p_transaction_type_id => p_txn_rec.transaction_type_id
14374 )) -- Added by sk on 13/9/01
14375 AND ((l_get_instance_rec.serial_number IS NOT NULL) AND (l_get_instance_rec.serial_number <> FND_API.G_MISS_CHAR)))
14376 -- OR (l_serial_control NOT IN (2,5,6)))
14377 OR (NOT (csi_Item_Instance_Vld_pvt.Is_treated_serialized
14378 ( p_serial_control_code => l_serial_control
14379 ,p_location_type_code => l_get_instance_rec.location_type_code
14380 ,p_transaction_type_id => p_txn_rec.transaction_type_id
14381 )) ) )
14382 AND (((l_lot_control = 2)
14383 AND ((l_get_instance_rec.lot_number IS NOT NULL) AND (l_get_instance_rec.lot_number <> FND_API.G_MISS_CHAR)))
14384 OR (l_lot_control <> 2))
14385 AND l_get_instance_rec.instance_status_id IS NOT NULL
14386 AND (((l_rev_control = 2)
14387 AND ((l_get_instance_rec.inventory_revision IS NOT NULL)
14388 AND (l_get_instance_rec.inventory_revision <> FND_API.G_MISS_CHAR)))
14389 OR (l_rev_control <> 2))
14390 AND l_get_instance_rec.location_type_code IS NOT NULL THEN
14391
14392 IF (p_instance_rec.creation_complete_flag IS NULL) OR
14393 (p_instance_rec.creation_complete_flag = FND_API.G_MISS_CHAR) OR
14394 (p_instance_rec.creation_complete_flag = 'N') THEN
14395
14396 p_instance_rec.creation_complete_flag := 'Y';
14397 END IF;
14398
14399 ELSE
14400 IF ((l_curr_instance_rec.creation_complete_flag = 'Y') OR
14401 (nvl(p_instance_rec.creation_complete_flag, fnd_api.g_miss_char) = 'Y'))
14402 THEN
14403 IF ((l_serial_control = 6) and (l_get_instance_rec.serial_number is null)) THEN
14404 p_instance_rec.creation_complete_flag := 'N';
14405 ELSE
14406 FND_MESSAGE.SET_NAME('CSI','CSI_API_INVALID_ATTRIBUTES');
14407 FND_MSG_PUB.Add;
14408 RAISE fnd_api.g_exc_error;
14409 END IF;
14410 ELSE
14411 p_instance_rec.creation_complete_flag := 'N';
14412 END IF;
14413 END IF;
14414
14415 csi_gen_utility_pvt.put_line('p_instance_rec.creation_complete_flag = ' || p_instance_rec.creation_complete_flag);
14416 --
14417 -- Check for active_end_date
14418 -- srramakr Instance Status ID should be made EXPIRED when the Active End Date is <= sysdate and
14419 -- the passed instance status not having Terminated Flag as Y.
14420 --
14421 IF (l_get_instance_rec.active_end_date <= l_sys_date) THEN
14422 -- TSO with Equipment changes.
14423 -- Nullifying the config keys
14424 p_instance_rec.config_inst_hdr_id := NULL;
14425 p_instance_rec.config_inst_rev_num := NULL;
14426 p_instance_rec.config_inst_item_id := NULL;
14427 p_instance_rec.config_valid_status := NULL;
14428 --
14429 IF NOT (CSI_Item_Instance_vld_pvt.val_inst_ter_flag(
14430 p_instance_rec.instance_status_id)) THEN
14431 -- Added by sguthiva for bug 2520978
14432 p_instance_rec.instance_status_id:=fnd_profile.value('CSI_SYS_TERM_INST_STATUS_ID');
14433 IF p_instance_rec.instance_status_id IS NULL
14434 OR p_instance_rec.instance_status_id=fnd_api.g_miss_num
14435 THEN
14436 p_instance_rec.instance_status_id := 1;
14437 END IF;
14438 -- End addition by sguthiva for bug 2520978.
14439 END IF;
14440 -- Start addition by sguthiva for bug 2416193
14441 -- Relaxing this check for RMA Receipt transaction
14442 IF p_txn_rec.transaction_type_id = 1
14443 THEN
14444 BEGIN
14445 SELECT 'x'
14446 INTO l_open_service
14447 FROM cs_incidents_all csi,
14448 cs_incident_statuses_b csb
14449 WHERE csi.incident_status_id = csb.incident_status_id
14450 AND csi.customer_product_id = p_instance_rec.instance_id
14451 AND NVL(close_flag,'N')<>'Y';
14452
14453 FND_MESSAGE.SET_NAME('CSI','CSI_IB_HAS_OPEN_SR');
14454 FND_MSG_PUB.ADD;
14455 RAISE FND_API.G_EXC_ERROR;
14456
14457 EXCEPTION
14458 WHEN TOO_MANY_ROWS THEN
14459 FND_MESSAGE.SET_NAME('CSI','CSI_IB_HAS_OPEN_SR');
14460 FND_MSG_PUB.ADD;
14461 RAISE FND_API.G_EXC_ERROR;
14462
14463 WHEN NO_DATA_FOUND THEN -- modfied for bug 3693511
14464 NULL;
14465 END;
14466 END IF;
14467 -- End addition for bug 2416193
14468
14469
14470 END IF;
14471 -- Validation for install location
14472 -- Start addition by sk on 02/06/02 for bug 2213922
14473 IF p_instance_rec.install_location_type_code IS NOT NULL AND
14474 p_instance_rec.install_location_type_code <> fnd_api.g_miss_char
14475 THEN
14476 IF p_instance_rec.install_location_type_code = 'HZ_PARTY_SITES' OR
14477 p_instance_rec.install_location_type_code = 'HZ_LOCATIONS' OR
14478 p_instance_rec.install_location_type_code = 'VENDOR_SITE' OR
14479 p_instance_rec.install_location_type_code = 'INTERNAL_SITE' OR
14480 p_instance_rec.install_location_type_code = 'HR_LOCATIONS' --4926773
14481 THEN
14482 IF p_instance_rec.install_location_id IS NULL OR
14483 p_instance_rec.install_location_id = FND_API.G_MISS_NUM THEN
14484 FND_MESSAGE.SET_NAME('CSI','CSI_INVALID_INSTALL_LOC');
14485 FND_MSG_PUB.ADD;
14486 RAISE fnd_api.g_exc_error;
14487 END IF;
14488 --
14489 l_exists_flag := 'N';
14490 l_valid_flag := 'Y';
14491 IF p_location_tbl.count > 0 THEN
14492 For loc_row in p_location_tbl.FIRST .. p_location_tbl.LAST
14493 Loop
14494 IF p_location_tbl(loc_row).location_type_code = p_instance_rec.install_location_type_code
14495 AND p_location_tbl(loc_row).location_id = p_instance_rec.install_location_id THEN
14496 l_exists_flag := 'Y';
14497 l_valid_flag := p_location_tbl(loc_row).valid_flag;
14498 EXIT;
14499 END IF;
14500 End Loop;
14501 --
14502 IF l_valid_flag <> 'Y' THEN
14503 FND_MESSAGE.SET_NAME('CSI','CSI_INVALID_INSTALL_LOC');
14504 FND_MSG_PUB.ADD;
14505 RAISE fnd_api.g_exc_error;
14506 END IF;
14507 END IF;
14508 --
14509 IF l_exists_flag <> 'Y' THEN
14510 p_ins_count_rec.location_count := p_ins_count_rec.location_count + 1;
14511 p_location_tbl(p_ins_count_rec.location_count).location_type_code :=
14512 p_instance_rec.install_location_type_code;
14513 p_location_tbl(p_ins_count_rec.location_count).location_id :=
14514 p_instance_rec.install_location_id;
14515 IF csi_item_instance_vld_pvt.Is_Valid_Location_ID
14516 (
14517 p_location_source_table => p_instance_rec.install_location_type_code
14518 ,p_location_id => p_instance_rec.install_location_id
14519 ) THEN
14520 p_location_tbl(p_ins_count_rec.location_count).valid_flag := 'Y';
14521 ELSE
14522 p_location_tbl(p_ins_count_rec.location_count).valid_flag := 'N';
14523 RAISE fnd_api.g_exc_error;
14524 END IF;
14525 END IF;
14526 ELSE
14527 FND_MESSAGE.SET_NAME('CSI','CSI_INVALID_INSTALL_LOC');
14528 FND_MSG_PUB.Add;
14529 RAISE FND_API.G_EXC_ERROR;
14530 END IF;
14531 END IF;
14532
14533 -- Bug 13887020
14534 -- Validation for Install Date will be done based on value of profile
14535 -- CSI: Allow Install Dates To Be Earlier Than Ship Dates
14536
14537 l_allow_earlier_installdt_flag := fnd_profile.value('CSI_INSTALLDT_EARLIER_THAN_SHIPDT');
14538
14539 IF NVL(l_allow_earlier_installdt_flag, 'N') = 'N' THEN
14540 --Validation of Install date added for Bug 8892299
14541 IF NVL(p_instance_rec.INSTALL_DATE,fnd_api.g_miss_date) <> fnd_api.g_miss_date THEN
14542
14543 BEGIN -- Bug 14163453
14544 SELECT nvl(shippable_item_flag,'N')
14545 INTO l_shippable_item_flag
14546 FROM mtl_system_items
14547 WHERE inventory_item_id = p_instance_rec.inventory_item_id
14548 AND organization_id = p_instance_rec.vld_organization_id;
14549 EXCEPTION
14550 WHEN NO_DATA_FOUND THEN
14551 l_shippable_item_flag := 'N';
14552 END;
14553
14554 csi_gen_utility_pvt.put_line('l_shippable_item_flag - ' || l_shippable_item_flag); -- Bug 14163453
14555
14556 BEGIN -- Bug 14163453
14557 SELECT SHIPPED_DATE
14558 INTO l_shipped_date
14559 FROM CSI_INSTANCE_DETAILS_V
14560 WHERE instance_id = p_instance_rec.instance_id;
14561 EXCEPTION
14562 WHEN NO_DATA_FOUND THEN
14563 l_shipped_date := NULL;
14564 END;
14565
14566 --IF l_shippable_item_flag = 'Y' AND
14567 --nvl(l_shipped_date, p_instance_rec.INSTALL_DATE ) > p_instance_rec.INSTALL_DATE THEN
14568 -- Bug 10223321
14569 csi_gen_utility_pvt.put_line('l_shippable_item_flag - ' || l_shippable_item_flag);
14570 csi_gen_utility_pvt.put_line('l_shipped_date - ' || to_char(l_shipped_date,'DD-MON-YYYY HH24:MI:SS'));
14571 csi_gen_utility_pvt.put_line('l_install_date - ' || to_char(p_instance_rec.INSTALL_DATE ,'DD-MON-YYYY HH24:MI:SS'));
14572
14573 IF l_shippable_item_flag = 'Y' AND
14574 NVL(l_shipped_date, fnd_api.g_miss_date) <> fnd_api.g_miss_date AND
14575 TRUNC(l_shipped_date) > TRUNC(p_instance_rec.INSTALL_DATE) THEN --Changed for bug#12818015
14576
14577 FND_MESSAGE.Set_Name('CSI', 'CSI_INVALID_INSTALL_DATE');
14578 FND_MSG_PUB.ADD;
14579 RAISE FND_API.G_EXC_ERROR;
14580 END IF;
14581
14582 END IF;
14583
14584 END IF; --bug 13887020
14585
14586 -- End addition by sk on 02/06/02 for bug 2213922
14587 -- Added the following code for eam integration
14588 IF l_eam_item AND
14589 (p_instance_rec.active_end_date IS NOT NULL AND
14590 p_instance_rec.active_end_date <> fnd_api.g_miss_date)
14591 THEN
14592 IF NOT eam_common_utilities_pvt.check_deactivate
14593 (p_maintenance_object_id => p_instance_rec.instance_id
14594 ,p_maintenance_object_type => l_maintenance_object_type)
14595 THEN
14596 csi_gen_utility_pvt.put_line('Error from eam_common_utilities_pvt.check_deactivate API ');
14597 RAISE fnd_api.g_exc_error;
14598 END IF;
14599 END IF;
14600 -- End code addition for eam integration
14601 -- validate instance status id
14602 IF NVL(p_instance_rec.INSTANCE_STATUS_ID,fnd_api.g_miss_num) <> fnd_api.g_miss_num
14603 THEN
14604 --debug('Validate instance status id .');
14605 csi_item_instance_vld_pvt.is_valid_status(
14606 p_instance_status_id => p_instance_rec.INSTANCE_STATUS_ID,
14607 p_creation_complete_flag => l_creation_flag,
14608 l_return_value => l_valid);
14609 IF NOT(l_valid)
14610 THEN
14611 RAISE fnd_api.g_exc_error;
14612 END IF;
14613 END IF;
14614
14615 IF p_instance_rec.INSTANCE_STATUS_ID IS NOT NULL AND
14616 p_instance_rec.INSTANCE_STATUS_ID <> FND_API.G_MISS_NUM AND
14617 p_instance_rec.INSTANCE_STATUS_ID <> l_curr_instance_rec.INSTANCE_STATUS_ID
14618 THEN
14619 IF NOT csi_item_instance_vld_pvt.is_status_updateable
14620 (p_instance_status => p_instance_rec.INSTANCE_STATUS_ID
14621 ,p_current_status => l_curr_instance_rec.INSTANCE_STATUS_ID)
14622 THEN
14623 RAISE fnd_api.g_exc_error;
14624 END IF;
14625 END IF;
14626
14627 END IF;
14628
14629 IF (p_validation_mode <> 'V')
14630 THEN
14631
14632 -- FND_File.Put_Line(Fnd_File.LOG,'Validate Mode...!!! I should not be here');
14633 -- txn_status logic
14634 IF (nvl(p_instance_rec.location_id, fnd_api.g_miss_num) <> fnd_api.g_miss_num
14635 AND
14636 p_instance_rec.location_id <> l_curr_instance_rec.location_id)
14637 OR
14638 nvl(p_instance_rec.active_end_date, fnd_api.g_miss_date) <> fnd_api.g_miss_date
14639 THEN
14640 l_txn_status := 'PENDING';
14641 END IF;
14642
14643 --- Update the instance with the object version number incremented by 1.
14644 p_instance_rec.object_version_number := l_curr_instance_rec.object_version_number + 1;
14645 CSI_ITEM_INSTANCES_PKG.Update_Row
14646 ( p_INSTANCE_ID => p_instance_rec.INSTANCE_ID,
14647 p_INSTANCE_NUMBER => p_instance_rec.INSTANCE_NUMBER,
14648 p_EXTERNAL_REFERENCE => p_instance_rec.EXTERNAL_REFERENCE,
14649 p_INVENTORY_ITEM_ID => p_instance_rec.INVENTORY_ITEM_ID,
14650 p_INVENTORY_REVISION => p_instance_rec.INVENTORY_REVISION,
14651 p_INV_MASTER_ORGANIZATION_ID => p_instance_rec.INV_MASTER_ORGANIZATION_ID,
14652 p_SERIAL_NUMBER => p_instance_rec.SERIAL_NUMBER,
14653 p_MFG_SERIAL_NUMBER_FLAG => p_instance_rec.MFG_SERIAL_NUMBER_FLAG,
14654 p_LOT_NUMBER => p_instance_rec.LOT_NUMBER,
14655 p_QUANTITY => p_instance_rec.QUANTITY,
14656 p_UNIT_OF_MEASURE => p_instance_rec.UNIT_OF_MEASURE,
14657 p_ACCOUNTING_CLASS_CODE => p_instance_rec.ACCOUNTING_CLASS_CODE,
14658 p_INSTANCE_CONDITION_ID => p_instance_rec.INSTANCE_CONDITION_ID,
14659 p_INSTANCE_STATUS_ID => p_instance_rec.INSTANCE_STATUS_ID,
14660 p_CUSTOMER_VIEW_FLAG => p_instance_rec.CUSTOMER_VIEW_FLAG,
14661 p_MERCHANT_VIEW_FLAG => p_instance_rec.MERCHANT_VIEW_FLAG,
14662 p_SELLABLE_FLAG => p_instance_rec.SELLABLE_FLAG,
14663 p_SYSTEM_ID => p_instance_rec.SYSTEM_ID,
14664 p_INSTANCE_TYPE_CODE => p_instance_rec.INSTANCE_TYPE_CODE,
14665 p_ACTIVE_START_DATE => FND_API.G_MISS_DATE, --p_instance_rec.ACTIVE_START_DATE,
14666 p_ACTIVE_END_DATE => p_instance_rec.ACTIVE_END_DATE,
14667 p_LOCATION_TYPE_CODE => p_instance_rec.LOCATION_TYPE_CODE,
14668 p_LOCATION_ID => p_instance_rec.LOCATION_ID,
14669 p_INV_ORGANIZATION_ID => p_instance_rec.INV_ORGANIZATION_ID,
14670 p_INV_SUBINVENTORY_NAME => p_instance_rec.INV_SUBINVENTORY_NAME,
14671 p_INV_LOCATOR_ID => p_instance_rec.INV_LOCATOR_ID,
14672 p_PA_PROJECT_ID => p_instance_rec.PA_PROJECT_ID,
14673 p_PA_PROJECT_TASK_ID => p_instance_rec.PA_PROJECT_TASK_ID,
14674 p_IN_TRANSIT_ORDER_LINE_ID => p_instance_rec.IN_TRANSIT_ORDER_LINE_ID,
14675 p_WIP_JOB_ID => p_instance_rec.WIP_JOB_ID,
14676 p_PO_ORDER_LINE_ID => p_instance_rec.PO_ORDER_LINE_ID,
14677 p_LAST_OE_ORDER_LINE_ID => p_instance_rec.LAST_OE_ORDER_LINE_ID,
14678 p_LAST_OE_RMA_LINE_ID => p_instance_rec.LAST_OE_RMA_LINE_ID,
14679 p_LAST_PO_PO_LINE_ID => p_instance_rec.LAST_PO_PO_LINE_ID,
14680 p_LAST_OE_PO_NUMBER => p_instance_rec.LAST_OE_PO_NUMBER,
14681 p_LAST_WIP_JOB_ID => p_instance_rec.LAST_WIP_JOB_ID,
14682 p_LAST_PA_PROJECT_ID => p_instance_rec.LAST_PA_PROJECT_ID,
14683 p_LAST_PA_TASK_ID => p_instance_rec.LAST_PA_TASK_ID,
14684 p_LAST_OE_AGREEMENT_ID => p_instance_rec.LAST_OE_AGREEMENT_ID,
14685 p_INSTALL_DATE => p_instance_rec.INSTALL_DATE,
14686 p_MANUALLY_CREATED_FLAG => p_instance_rec.MANUALLY_CREATED_FLAG,
14687 p_RETURN_BY_DATE => p_instance_rec.RETURN_BY_DATE,
14688 p_ACTUAL_RETURN_DATE => p_instance_rec.ACTUAL_RETURN_DATE,
14689 p_CREATION_COMPLETE_FLAG => p_instance_rec.CREATION_COMPLETE_FLAG,
14690 p_COMPLETENESS_FLAG => p_instance_rec.COMPLETENESS_FLAG,
14691 p_CONTEXT => p_instance_rec.CONTEXT,
14692 p_ATTRIBUTE1 => p_instance_rec.ATTRIBUTE1,
14693 p_ATTRIBUTE2 => p_instance_rec.ATTRIBUTE2,
14694 p_ATTRIBUTE3 => p_instance_rec.ATTRIBUTE3,
14695 p_ATTRIBUTE4 => p_instance_rec.ATTRIBUTE4,
14696 p_ATTRIBUTE5 => p_instance_rec.ATTRIBUTE5,
14697 p_ATTRIBUTE6 => p_instance_rec.ATTRIBUTE6,
14698 p_ATTRIBUTE7 => p_instance_rec.ATTRIBUTE7,
14699 p_ATTRIBUTE8 => p_instance_rec.ATTRIBUTE8,
14700 p_ATTRIBUTE9 => p_instance_rec.ATTRIBUTE9,
14701 p_ATTRIBUTE10 => p_instance_rec.ATTRIBUTE10,
14702 p_ATTRIBUTE11 => p_instance_rec.ATTRIBUTE11,
14703 p_ATTRIBUTE12 => p_instance_rec.ATTRIBUTE12,
14704 p_ATTRIBUTE13 => p_instance_rec.ATTRIBUTE13,
14705 p_ATTRIBUTE14 => p_instance_rec.ATTRIBUTE14,
14706 p_ATTRIBUTE15 => p_instance_rec.ATTRIBUTE15,
14707 p_CREATED_BY => fnd_api.g_miss_num,
14708 p_CREATION_DATE => fnd_api.g_miss_date,
14709 p_LAST_UPDATED_BY => FND_GLOBAL.USER_ID,
14710 p_LAST_UPDATE_DATE => SYSDATE,
14711 p_LAST_UPDATE_LOGIN => FND_GLOBAL.CONC_LOGIN_ID,
14712 p_OBJECT_VERSION_NUMBER => p_instance_rec.OBJECT_VERSION_NUMBER,
14713 p_LAST_TXN_LINE_DETAIL_ID => p_instance_rec.LAST_TXN_LINE_DETAIL_ID,
14714 p_INSTALL_LOCATION_TYPE_CODE => p_instance_rec.INSTALL_LOCATION_TYPE_CODE,
14715 p_INSTALL_LOCATION_ID => p_instance_rec.INSTALL_LOCATION_ID,
14716 p_INSTANCE_USAGE_CODE => p_instance_rec.INSTANCE_USAGE_CODE,
14717 p_last_vld_organization_id => l_last_vld_organization_id,
14718 p_CONFIG_INST_HDR_ID => p_instance_rec.CONFIG_INST_HDR_ID,
14719 p_CONFIG_INST_REV_NUM => p_instance_rec.CONFIG_INST_REV_NUM,
14720 p_CONFIG_INST_ITEM_ID => p_instance_rec.CONFIG_INST_ITEM_ID,
14721 p_CONFIG_VALID_STATUS => p_instance_rec.CONFIG_VALID_STATUS,
14722 p_INSTANCE_DESCRIPTION => p_instance_rec.INSTANCE_DESCRIPTION,
14723 p_REQUEST_ID => p_instance_rec.REQUEST_ID,
14724 p_PROGRAM_APPLICATION_ID => p_instance_rec.PROGRAM_APPLICATION_ID,
14725 p_PROGRAM_ID => p_instance_rec.PROGRAM_ID,
14726 p_PROGRAM_UPDATE_DATE => p_instance_rec.PROGRAM_UPDATE_DATE,
14727 --start of parameters addition for eam integration--
14728 p_NETWORK_ASSET_FLAG => p_instance_rec.NETWORK_ASSET_FLAG,
14729 p_MAINTAINABLE_FLAG => p_instance_rec.MAINTAINABLE_FLAG,
14730 p_PN_LOCATION_ID => p_instance_rec.PN_LOCATION_ID,
14731 p_ASSET_CRITICALITY_CODE => p_instance_rec.ASSET_CRITICALITY_CODE,
14732 p_CATEGORY_ID => p_instance_rec.CATEGORY_ID,
14733 p_EQUIPMENT_GEN_OBJECT_ID => p_instance_rec.EQUIPMENT_GEN_OBJECT_ID,
14734 p_INSTANTIATION_FLAG => p_instance_rec.INSTANTIATION_FLAG,
14735 p_LINEAR_LOCATION_ID => p_instance_rec.LINEAR_LOCATION_ID,
14736 p_OPERATIONAL_LOG_FLAG => p_instance_rec.OPERATIONAL_LOG_FLAG,
14737 p_CHECKIN_STATUS => p_instance_rec.CHECKIN_STATUS,
14738 p_SUPPLIER_WARRANTY_EXP_DATE => p_instance_rec.SUPPLIER_WARRANTY_EXP_DATE,
14739 p_ATTRIBUTE16 => p_instance_rec.ATTRIBUTE16,
14740 p_ATTRIBUTE17 => p_instance_rec.ATTRIBUTE17,
14741 p_ATTRIBUTE18 => p_instance_rec.ATTRIBUTE18,
14742 p_ATTRIBUTE19 => p_instance_rec.ATTRIBUTE19,
14743 p_ATTRIBUTE20 => p_instance_rec.ATTRIBUTE20,
14744 p_ATTRIBUTE21 => p_instance_rec.ATTRIBUTE21,
14745 p_ATTRIBUTE22 => p_instance_rec.ATTRIBUTE22,
14746 p_ATTRIBUTE23 => p_instance_rec.ATTRIBUTE23,
14747 p_ATTRIBUTE24 => p_instance_rec.ATTRIBUTE24,
14748 p_ATTRIBUTE25 => p_instance_rec.ATTRIBUTE25,
14749 p_ATTRIBUTE26 => p_instance_rec.ATTRIBUTE26,
14750 p_ATTRIBUTE27 => p_instance_rec.ATTRIBUTE27,
14751 p_ATTRIBUTE28 => p_instance_rec.ATTRIBUTE28,
14752 p_ATTRIBUTE29 => p_instance_rec.ATTRIBUTE29,
14753 p_ATTRIBUTE30 => p_instance_rec.ATTRIBUTE30,
14754 --end of parameters addition for eam integration--
14755 -- Addition of columns for FA Integration
14756 p_PURCHASE_UNIT_PRICE => p_instance_rec.PURCHASE_UNIT_PRICE,
14757 p_PURCHASE_CURRENCY_CODE => p_instance_rec.PURCHASE_CURRENCY_CODE,
14758 p_PAYABLES_UNIT_PRICE => p_instance_rec.PAYABLES_UNIT_PRICE,
14759 p_PAYABLES_CURRENCY_CODE => p_instance_rec.PAYABLES_CURRENCY_CODE,
14760 p_SALES_UNIT_PRICE => p_instance_rec.SALES_UNIT_PRICE,
14761 p_SALES_CURRENCY_CODE => p_instance_rec.SALES_CURRENCY_CODE,
14762 p_OPERATIONAL_STATUS_CODE => p_instance_rec.OPERATIONAL_STATUS_CODE,
14763 -- End addition of columns for FA Integration
14764 p_SOURCE_CODE => p_instance_rec.SOURCE_CODE -- Added Code for Siebel Genesis Project
14765 );
14766
14767 IF l_eam_item
14768 THEN
14769 IF p_instance_rec.department_id IS NOT NULL OR
14770 p_instance_rec.wip_accounting_class IS NOT NULL OR
14771 p_instance_rec.area_id IS NOT NULL
14772 THEN
14773 eam_maint_attributes_pub.update_maint_attributes
14774 ( p_api_version => 1.0
14775 ,p_init_msg_list => FND_API.G_FALSE
14776 ,p_commit => FND_API.G_FALSE
14777 ,p_validation_level => fnd_api.g_valid_level_full
14778 ,p_instance_id => p_instance_rec.instance_id
14779 ,p_owning_department_id => p_instance_rec.department_id
14780 ,p_accounting_class_code => p_instance_rec.wip_accounting_class
14781 ,p_area_id => p_instance_rec.area_id
14782 ,x_return_status => x_return_status
14783 ,x_msg_count => x_msg_count
14784 ,x_msg_data => x_msg_data);
14785
14786 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS)
14787 THEN
14788 csi_gen_utility_pvt.put_line('Error from eam_maint_attributes_pub.update_maint_attributes..');
14789 RAISE FND_API.G_EXC_ERROR;
14790 END IF;
14791 END IF;
14792 END IF;
14793 -- calling the Counters API to associate counters to an instance
14794 -- Added to restrict the counter instantiation for an item in 'INVENTORY', by rtalluri for the enh. 2308703.
14795 -- Start of Fix for Bug: 2411622 by rtalluri - 06/25/02
14796 csi_gen_utility_pvt.put_line('p_instance_rec.quantity is '||to_char(p_instance_rec.quantity));
14797 csi_gen_utility_pvt.put_line('l_curr_instance_rec.quantity is '||to_char(l_curr_instance_rec.quantity));
14798 csi_gen_utility_pvt.put_line('p_instance_rec.location_type_code is '||p_instance_rec.location_type_code);
14799 csi_gen_utility_pvt.put_line('l_get_instance_rec.location_type_code is '||l_get_instance_rec.location_type_code);
14800 csi_gen_utility_pvt.put_line('p_instance_rec.accounting_class_code is '||p_instance_rec.accounting_class_code);
14801 csi_gen_utility_pvt.put_line('l_curr_instance_rec.accounting_class_code is '||l_curr_instance_rec.accounting_class_code);
14802 csi_gen_utility_pvt.put_line('l_serial_control is '||l_serial_control);
14803 --
14804 -- srramakr Bug # 2484611. Eliminated counter instantiation for serialized items since it is already
14805 -- instantiated when the instance is in INV. Also used Accounting_class_code in the check for the case
14806 -- where shipping finds exact match in staging. (It just updates in this case).
14807 --l_curr_instance_rec.network_asset_flag
14808 IF ( (p_instance_rec.quantity <> FND_API.G_MISS_NUM) AND
14809 (p_instance_rec.quantity IS NOT NULL) AND
14810 (l_serial_control not in (2,5)) AND
14811 (NVL(l_curr_instance_rec.network_asset_flag,'N')<>'Y' AND
14812 NVL(p_instance_rec.network_asset_flag,'N')<>'Y')
14813 )
14814 THEN -- Since for Serial control the counter gets instantiated in INV
14815 IF p_instance_rec.quantity = 1 THEN
14816 IF ( (p_instance_rec.quantity <> l_curr_instance_rec.quantity) OR
14817 (p_instance_rec.accounting_class_code = 'CUST_PROD' AND
14818 p_instance_rec.accounting_class_code <> l_curr_instance_rec.accounting_class_code) ) THEN
14819 IF NOT((l_serial_control IN (1,6)) AND
14820 (l_get_instance_rec.location_type_code = 'INVENTORY')) THEN
14821 -- Since the replacement API CSI_COUNTER_TEMPLATE_PUB
14822 -- for CS_Counters_PUB.Ctr_Grp_Template_Exists
14823 -- does not provide a function Ctr_Grp_Template_Exists,
14824 -- Hence writing the following code...
14825 --l_counter_group_id := NULL;
14826 BEGIN
14827 SELECT COUNT(*)
14828 INTO l_counter_group_id
14829 FROM csi_ctr_item_associations
14830 WHERE inventory_item_id = l_get_instance_rec.inventory_item_id
14831 AND ROWNUM=1;
14832 EXCEPTION
14833 WHEN NO_DATA_FOUND THEN
14834 NULL;
14835 END;
14836 -- IF CS_Counters_PUB.Ctr_Grp_Template_Exists(l_get_instance_rec.inventory_item_id) THEN
14837 IF l_counter_group_id <>0
14838 THEN
14839 l_exists := 'N';
14840 BEGIN
14841
14842 SELECT 'Y'
14843 INTO l_exists
14844 FROM csi_counter_associations
14845 WHERE source_object_id = p_instance_rec.instance_id
14846 AND source_object_code = 'CP';
14847
14848 EXCEPTION
14849 WHEN NO_DATA_FOUND THEN
14850 l_exists := 'N';
14851 WHEN OTHERS THEN
14852 l_exists := 'Y';
14853 END;
14854 IF l_exists = 'N' THEN
14855
14856 FND_File.Put_Line(Fnd_File.LOG,'Calling counter instantiate');
14857
14858 csi_gen_utility_pvt.put_line('Calling Autoinstantiate counters');
14859
14860 csi_counter_template_pub.autoinstantiate_counters
14861 ( p_api_version => 1.0
14862 ,p_init_msg_list => FND_API.G_FALSE
14863 ,p_commit => FND_API.G_FALSE
14864 ,x_return_status => x_return_status
14865 ,x_msg_count => x_msg_count
14866 ,x_msg_data => x_msg_data
14867 ,p_source_object_id_template => l_get_instance_rec.inventory_item_id
14868 ,p_source_object_id_instance => p_instance_rec.instance_id
14869 ,x_ctr_id_template => l_ctr_id_template
14870 ,x_ctr_id_instance => l_ctr_id_instance
14871 ,x_ctr_grp_id_template => l_ctr_grp_id_template
14872 ,x_ctr_grp_id_instance => l_ctr_grp_id_instance
14873 ,p_organization_id => l_last_vld_organization_id -- srramakr. should pass the organization_id
14874 );
14875
14876 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS)
14877 THEN
14878 FND_MESSAGE.SET_NAME('CSI','CSI_API_NO_COUNTER_ASSOCIATION');
14879 FND_MESSAGE.SET_TOKEN('COUNTER','CSI_COUNTER_TEMPLATE_PUB.AUTOINSTANTIATE_COUNTERS');
14880 FND_MSG_PUB.Add;
14881 RAISE FND_API.G_EXC_ERROR;
14882 END IF;
14883 END IF;
14884
14885 -- srramakr Bug # 2255391. In CTO, since the configured item is created as a part of Sales Order
14886 -- processing, there is no way a counter gets attached to this new item. In order to attach the counter,
14887 -- we look at the base model and use its counter group for the configured item. After attaching it,
14888 -- we call the Autoinstantiate API.
14889 ELSE -- Check for the Base Model
14890 l_base_item_id := null;
14891 Begin
14892 select base_item_id
14893 into l_base_item_id
14894 from MTL_SYSTEM_ITEMS_B
14895 where inventory_item_id = l_get_instance_rec.inventory_item_id
14896 and organization_id = l_last_vld_organization_id;
14897 Exception
14898 when no_data_found then
14899 null;
14900 when others then
14901 null;
14902 End;
14903 --
14904 IF l_base_item_id is not null THEN
14905 -- call the Counter Grp association API for the Configured Item
14906 For ctr_rec in CTR_GROUP(l_base_item_id)
14907 Loop
14908 Begin
14909 IF(ctr_rec.group_id is not null) then
14910 l_ctr_item_associations_rec.group_id := ctr_rec.group_id;
14911 END IF;
14912 IF(ctr_rec.counter_id is not null) then
14913 l_ctr_item_associations_rec.counter_id := ctr_rec.counter_id;
14914 END IF;
14915 l_ctr_item_associations_rec.inventory_item_id := p_instance_rec.inventory_item_id;
14916 IF(ctr_rec.associated_to_group = 'Y') THEN
14917 l_ctr_item_associations_rec.associated_to_group := ctr_rec.associated_to_group;-- Added for bug 9142776
14918 END IF;
14919
14920 csi_counter_template_pub.create_item_association
14921 (p_api_version => 1.0
14922 ,p_commit => fnd_api.g_false
14923 ,p_init_msg_list => fnd_api.g_false
14924 ,p_validation_level => p_validation_level
14925 ,p_ctr_item_associations_rec => l_ctr_item_associations_rec
14926 ,x_return_status => x_return_status
14927 ,x_msg_count => x_msg_count
14928 ,x_msg_data => x_msg_data
14929 );
14930 l_counter_group_id := 1; -- Added for bug 9142776
14931 END;
14932 End Loop;
14933 -- Call Autoinstantiate Counters
14934 -- IF CS_Counters_PUB.Ctr_Grp_Template_Exists(l_get_instance_rec.inventory_item_id) THEN
14935 IF l_counter_group_id <> 0
14936 THEN
14937
14938 csi_counter_template_pub.autoinstantiate_counters
14939 ( p_api_version => 1.0
14940 ,p_init_msg_list => FND_API.G_FALSE
14941 ,p_commit => FND_API.G_FALSE
14942 ,x_return_status => x_return_status
14943 ,x_msg_count => x_msg_count
14944 ,x_msg_data => x_msg_data
14945 ,p_source_object_id_template => l_get_instance_rec.inventory_item_id
14946 ,p_source_object_id_instance => p_instance_rec.instance_id
14947 ,x_ctr_id_template => l_ctr_id_template
14948 ,x_ctr_id_instance => l_ctr_id_instance
14949 ,x_ctr_grp_id_template => l_ctr_grp_id_template
14950 ,x_ctr_grp_id_instance => l_ctr_grp_id_instance
14951 ,p_organization_id => l_last_vld_organization_id -- srramakr. should pass the organization_id
14952 );
14953 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
14954 FND_MESSAGE.SET_NAME('CSI','CSI_API_NO_COUNTER_ASSOCIATION');
14955 FND_MESSAGE.SET_TOKEN('COUNTER','CSI_COUNTER_TEMPLATE_PUB.AUTOINSTANTIATE_COUNTERS');
14956 FND_MSG_PUB.Add;
14957 RAISE FND_API.G_EXC_ERROR;
14958 END IF;
14959 END IF; -- COunter template existance check for the new item
14960 END IF; -- Base Item ID check
14961 END IF; -- Ctr Group check
14962 END IF; -- serial chk.
14963 END IF; --check for db qty and passed qty
14964 ELSE -- for qty > 1
14965 NULL;
14966 -- Delete counters is commented for Bug # 2978942.
14967 END IF; -- qty check
14968 END IF; -- g_miss check
14969 -- End of Fix for Bug: 2411622 by rtalluri - 06/25/02
14970
14971 -- Moving counter update code from above
14972 l_exists := 'N';
14973 BEGIN
14974 SELECT 'Y'
14975 INTO l_exists
14976 FROM csi_counter_associations
14977 WHERE source_object_id = p_instance_rec.instance_id
14978 AND source_object_code = 'CP';
14979 EXCEPTION
14980 WHEN NO_DATA_FOUND THEN
14981 l_exists := 'N';
14982 WHEN OTHERS THEN
14983 l_exists := 'Y';
14984 END;
14985 csi_gen_utility_pvt.put_line('Value of l_exists '||l_exists);
14986
14987 IF l_exists='Y' AND
14988 l_eam_item AND
14989 (NVL(l_curr_instance_rec.network_asset_flag,'N')<>'Y' AND
14990 NVL(p_instance_rec.network_asset_flag,'N')<>'Y')
14991 THEN
14992 IF l_cur_instance_rec.last_vld_organization_id <> l_get_instance_rec.vld_organization_id
14993 THEN
14994 SELECT maint_organization_id
14995 INTO l_curr_maint_org_id
14996 FROM mtl_parameters
14997 WHERE organization_id = l_cur_instance_rec.last_vld_organization_id;
14998
14999 SELECT maint_organization_id
15000 INTO l_latest_maint_org_id
15001 FROM mtl_parameters
15002 WHERE organization_id = l_get_instance_rec.vld_organization_id;
15003 l_ctr:=1;
15004 csi_gen_utility_pvt.put_line('There is a change in vld organization...');
15005 csi_gen_utility_pvt.put_line('Value of current maint org is :'||l_curr_maint_org_id);
15006 csi_gen_utility_pvt.put_line('Value of new maint org is :'||l_latest_maint_org_id);
15007 IF NVL(l_curr_maint_org_id,fnd_api.g_miss_num) <>
15008 NVL(l_latest_maint_org_id,fnd_api.g_miss_num)
15009 THEN
15010 FOR l_upd_ctr_assn_csr IN upd_ctr_assn_csr(p_instance_rec.instance_id)
15011 LOOP
15012 l_ctr_associations_tbl(l_ctr).instance_association_id :=
15013 l_upd_ctr_assn_csr.instance_association_id;
15014
15015 l_ctr_associations_tbl(l_ctr).source_object_id :=
15016 l_upd_ctr_assn_csr.source_object_id;
15017
15018 l_ctr_associations_tbl(l_ctr).counter_id :=
15019 l_upd_ctr_assn_csr.counter_id;
15020
15021 l_ctr_associations_tbl(l_ctr).object_version_number :=
15022 l_upd_ctr_assn_csr.object_version_number;
15023
15024 l_ctr_associations_tbl(l_ctr).maint_organization_id :=
15025 l_latest_maint_org_id;
15026
15027 --Added for bug 6963602, during migration to R12, the start_date_active for entries in
15028 --csi_counter_associations table are not properly populated, in that case, use the
15029 --active_start_date for the associated item instance
15030 IF l_upd_ctr_assn_csr.start_date_active IS NULL THEN
15031 BEGIN
15032 SELECT active_start_date
15033 INTO l_ctr_associations_tbl(l_ctr).start_date_active
15034 FROM csi_item_instances
15035 WHERE instance_id=p_instance_rec.instance_id;
15036 EXCEPTION
15037 WHEN NO_DATA_FOUND THEN
15038 l_ctr_associations_tbl(l_ctr).start_date_active := p_instance_rec.active_start_date;
15039 WHEN OTHERS THEN
15040 l_ctr_associations_tbl(l_ctr).start_date_active := NULL;
15041 END;
15042 ELSE
15043 l_ctr_associations_tbl(l_ctr).start_date_active := l_upd_ctr_assn_csr.start_date_active;
15044 END IF;
15045
15046 l_ctr:=l_ctr+1;
15047 END LOOP;
15048
15049 IF l_ctr_associations_tbl.COUNT >0
15050 THEN
15051 csi_gen_utility_pvt.put_line('Calling update counter associations.');
15052 CSI_COUNTER_PUB.update_ctr_associations
15053 (p_api_version => 1.0
15054 ,p_commit => FND_API.G_FALSE
15055 ,p_init_msg_list => FND_API.G_FALSE
15056 ,p_validation_level => p_validation_level
15057 ,p_counter_associations_tbl => l_ctr_associations_tbl
15058 ,x_return_status => x_return_status
15059 ,x_msg_count => x_msg_count
15060 ,x_msg_data => x_msg_data
15061 );
15062 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS)
15063 THEN
15064 csi_gen_utility_pvt.put_line('Error from csi_counter_pub.update_ctr_associations..');
15065 RAISE FND_API.G_EXC_ERROR;
15066 END IF;
15067 END IF;
15068 END IF;
15069 END IF;
15070 END IF;
15071 -- Ends here
15072
15073
15074 -- calling the transaction api
15075 CSI_TRANSACTIONS_PVT.Create_transaction
15076 (
15077 p_api_version => p_api_version
15078 ,p_commit => p_commit
15079 ,p_init_msg_list => p_init_msg_list
15080 ,p_validation_level => p_validation_level
15081 ,p_Success_IF_Exists_Flag => 'Y'
15082 ,p_transaction_rec => p_txn_rec
15083 ,x_return_status => x_return_status
15084 ,x_msg_count => x_msg_count
15085 ,x_msg_data => x_msg_data
15086 );
15087
15088 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
15089 FND_MESSAGE.SET_NAME('CSI','CSI_FAILED_TO_VALIDATE_TXN');
15090 FND_MESSAGE.SET_TOKEN('TRANSACTION_ID',p_txn_rec.transaction_id );
15091 FND_MSG_PUB.Add;
15092 RAISE FND_API.G_EXC_ERROR;
15093 END IF;
15094
15095 -- Get the full_dump_frequency from csi_install_parameter
15096 --
15097 IF csi_datastructures_pub.g_install_param_rec.fetch_flag IS NULL THEN
15098 csi_gen_utility_pvt.populate_install_param_rec;
15099 END IF;
15100 --
15101 l_full_dump_frequency := csi_datastructures_pub.g_install_param_rec.history_full_dump_frequency;
15102 --
15103 IF l_full_dump_frequency IS NULL THEN
15104 FND_MESSAGE.SET_NAME('CSI','CSI_API_GET_FULL_DUMP_FAILED');
15105 FND_MSG_PUB.ADD;
15106 RAISE FND_API.G_EXC_ERROR;
15107 END IF;
15108 --
15109 -- Get a unique history item instance id from the sequence
15110 -- l_csi_item_instance_h_id := csi_item_instance_vld_pvt.get_csi_item_instance_h_id;
15111
15112
15113 select mod(p_instance_rec.object_version_number,l_full_dump_frequency)
15114 into l_mod_value
15115 from dual;
15116
15117 -- Start of modification for Bug#2547034 on 09/20/02 - rtalluri
15118 BEGIN
15119 SELECT instance_history_id
15120 INTO l_ins_hist_id
15121 FROM csi_item_instances_h h
15122 WHERE h.transaction_id = p_txn_rec.transaction_id
15123 AND h.instance_id = p_instance_rec.instance_id;
15124
15125 OPEN ins_hist_csr(l_ins_hist_id);
15126 FETCH ins_hist_csr INTO l_ins_hist_csr ;
15127 CLOSE ins_hist_csr;
15128
15129 IF l_ins_hist_csr.full_dump_flag = 'Y'
15130 THEN
15131 CSI_ITEM_INSTANCES_H_PKG.Update_Row
15132 ( p_INSTANCE_HISTORY_ID => l_ins_hist_id
15133 ,p_INSTANCE_ID => fnd_api.g_miss_num
15134 ,p_TRANSACTION_ID => fnd_api.g_miss_num
15135 ,p_OLD_INSTANCE_NUMBER => fnd_api.g_miss_char
15136 ,p_NEW_INSTANCE_NUMBER => p_instance_rec.INSTANCE_NUMBER
15137 ,p_OLD_EXTERNAL_REFERENCE => fnd_api.g_miss_char
15138 ,p_NEW_EXTERNAL_REFERENCE => p_instance_rec.EXTERNAL_REFERENCE
15139 ,p_OLD_INVENTORY_ITEM_ID => fnd_api.g_miss_num
15140 ,p_NEW_INVENTORY_ITEM_ID => p_instance_rec.INVENTORY_ITEM_ID
15141 ,p_OLD_INVENTORY_REVISION => fnd_api.g_miss_char
15142 ,p_NEW_INVENTORY_REVISION => p_instance_rec.INVENTORY_REVISION
15143 ,p_OLD_INV_MASTER_ORGZN_ID => fnd_api.g_miss_num
15144 ,p_NEW_INV_MASTER_ORGZN_ID => p_instance_rec.INV_MASTER_ORGANIZATION_ID
15145 ,p_OLD_SERIAL_NUMBER => fnd_api.g_miss_char
15146 ,p_NEW_SERIAL_NUMBER => p_instance_rec.SERIAL_NUMBER
15147 ,p_OLD_MFG_SERIAL_NUMBER_FLAG => fnd_api.g_miss_char
15148 ,p_NEW_MFG_SERIAL_NUMBER_FLAG => p_instance_rec.MFG_SERIAL_NUMBER_FLAG
15149 ,p_OLD_LOT_NUMBER => fnd_api.g_miss_char
15150 ,p_NEW_LOT_NUMBER => p_instance_rec.LOT_NUMBER
15151 ,p_OLD_QUANTITY => fnd_api.g_miss_num
15152 ,p_NEW_QUANTITY => p_instance_rec.QUANTITY
15153 ,p_OLD_UNIT_OF_MEASURE => fnd_api.g_miss_char
15154 ,p_NEW_UNIT_OF_MEASURE => p_instance_rec.UNIT_OF_MEASURE
15155 ,p_OLD_ACCOUNTING_CLASS_CODE => fnd_api.g_miss_char
15156 ,p_NEW_ACCOUNTING_CLASS_CODE => p_instance_rec.ACCOUNTING_CLASS_CODE
15157 ,p_OLD_INSTANCE_CONDITION_ID => fnd_api.g_miss_num
15158 ,p_NEW_INSTANCE_CONDITION_ID => p_instance_rec.INSTANCE_CONDITION_ID
15159 ,p_OLD_INSTANCE_STATUS_ID => fnd_api.g_miss_num
15160 ,p_NEW_INSTANCE_STATUS_ID => p_instance_rec.INSTANCE_STATUS_ID
15161 ,p_OLD_CUSTOMER_VIEW_FLAG => fnd_api.g_miss_char
15162 ,p_NEW_CUSTOMER_VIEW_FLAG => p_instance_rec.CUSTOMER_VIEW_FLAG
15163 ,p_OLD_MERCHANT_VIEW_FLAG => fnd_api.g_miss_char
15164 ,p_NEW_MERCHANT_VIEW_FLAG => p_instance_rec.MERCHANT_VIEW_FLAG
15165 ,p_OLD_SELLABLE_FLAG => fnd_api.g_miss_char
15166 ,p_NEW_SELLABLE_FLAG => p_instance_rec.SELLABLE_FLAG
15167 ,p_OLD_SYSTEM_ID => fnd_api.g_miss_num
15168 ,p_NEW_SYSTEM_ID => p_instance_rec.SYSTEM_ID
15169 ,p_OLD_INSTANCE_TYPE_CODE => fnd_api.g_miss_char
15170 ,p_NEW_INSTANCE_TYPE_CODE => p_instance_rec.INSTANCE_TYPE_CODE
15171 ,p_OLD_ACTIVE_START_DATE => fnd_api.g_miss_date
15172 ,p_NEW_ACTIVE_START_DATE => p_instance_rec.ACTIVE_START_DATE
15173 ,p_OLD_ACTIVE_END_DATE => fnd_api.g_miss_date
15174 ,p_NEW_ACTIVE_END_DATE => p_instance_rec.ACTIVE_END_DATE
15175 ,p_OLD_LOCATION_TYPE_CODE => fnd_api.g_miss_char
15176 ,p_NEW_LOCATION_TYPE_CODE => p_instance_rec.LOCATION_TYPE_CODE
15177 ,p_OLD_LOCATION_ID => fnd_api.g_miss_num
15178 ,p_NEW_LOCATION_ID => p_instance_rec.LOCATION_ID
15179 ,p_OLD_INV_ORGANIZATION_ID => fnd_api.g_miss_num
15180 ,p_NEW_INV_ORGANIZATION_ID => p_instance_rec.INV_ORGANIZATION_ID
15181 ,p_OLD_INV_SUBINVENTORY_NAME => fnd_api.g_miss_char
15182 ,p_NEW_INV_SUBINVENTORY_NAME => p_instance_rec.INV_SUBINVENTORY_NAME
15183 ,p_OLD_INV_LOCATOR_ID => fnd_api.g_miss_num
15184 ,p_NEW_INV_LOCATOR_ID => p_instance_rec.INV_LOCATOR_ID
15185 ,p_OLD_PA_PROJECT_ID => fnd_api.g_miss_num
15186 ,p_NEW_PA_PROJECT_ID => p_instance_rec.PA_PROJECT_ID
15187 ,p_OLD_PA_PROJECT_TASK_ID => fnd_api.g_miss_num
15188 ,p_NEW_PA_PROJECT_TASK_ID => p_instance_rec.PA_PROJECT_TASK_ID
15189 ,p_OLD_IN_TRANSIT_ORDER_LINE_ID => fnd_api.g_miss_num
15190 ,p_NEW_IN_TRANSIT_ORDER_LINE_ID => p_instance_rec.IN_TRANSIT_ORDER_LINE_ID
15191 ,p_OLD_WIP_JOB_ID => fnd_api.g_miss_num
15192 ,p_NEW_WIP_JOB_ID => p_instance_rec.WIP_JOB_ID
15193 ,p_OLD_PO_ORDER_LINE_ID => fnd_api.g_miss_num
15194 ,p_NEW_PO_ORDER_LINE_ID => p_instance_rec.PO_ORDER_LINE_ID
15195 ,p_OLD_COMPLETENESS_FLAG => fnd_api.g_miss_char
15196 ,p_NEW_COMPLETENESS_FLAG => p_instance_rec.COMPLETENESS_FLAG
15197 ,p_FULL_DUMP_FLAG => fnd_api.g_miss_char
15198 ,p_NEW_CONTEXT => p_instance_rec.CONTEXT
15199 ,P_OLD_CONTEXT => fnd_api.g_miss_char
15200 ,p_NEW_ATTRIBUTE1 => p_instance_rec.ATTRIBUTE1
15201 ,p_OLD_ATTRIBUTE1 => fnd_api.g_miss_char
15202 ,p_NEW_ATTRIBUTE2 => p_instance_rec.ATTRIBUTE2
15203 ,p_OLD_ATTRIBUTE2 => fnd_api.g_miss_char
15204 ,p_NEW_ATTRIBUTE3 => p_instance_rec.ATTRIBUTE3
15205 ,p_OLD_ATTRIBUTE3 => fnd_api.g_miss_char
15206 ,p_NEW_ATTRIBUTE4 => p_instance_rec.ATTRIBUTE4
15207 ,p_OLD_ATTRIBUTE4 => fnd_api.g_miss_char
15208 ,p_NEW_ATTRIBUTE5 => p_instance_rec.ATTRIBUTE5
15209 ,p_OLD_ATTRIBUTE5 => fnd_api.g_miss_char
15210 ,p_NEW_ATTRIBUTE6 => p_instance_rec.ATTRIBUTE6
15211 ,p_OLD_ATTRIBUTE6 => fnd_api.g_miss_char
15212 ,p_NEW_ATTRIBUTE7 => p_instance_rec.ATTRIBUTE7
15213 ,p_OLD_ATTRIBUTE7 => fnd_api.g_miss_char
15214 ,p_NEW_ATTRIBUTE8 => p_instance_rec.ATTRIBUTE8
15215 ,p_OLD_ATTRIBUTE8 => fnd_api.g_miss_char
15216 ,p_NEW_ATTRIBUTE9 => p_instance_rec.ATTRIBUTE9
15217 ,p_OLD_ATTRIBUTE9 => fnd_api.g_miss_char
15218 ,p_NEW_ATTRIBUTE10 => p_instance_rec.ATTRIBUTE10
15219 ,p_OLD_ATTRIBUTE10 => fnd_api.g_miss_char
15220 ,p_NEW_ATTRIBUTE11 => p_instance_rec.ATTRIBUTE11
15221 ,p_OLD_ATTRIBUTE11 => fnd_api.g_miss_char
15222 ,p_NEW_ATTRIBUTE12 => p_instance_rec.ATTRIBUTE12
15223 ,p_OLD_ATTRIBUTE12 => fnd_api.g_miss_char
15224 ,p_NEW_ATTRIBUTE13 => p_instance_rec.ATTRIBUTE13
15225 ,p_OLD_ATTRIBUTE13 => fnd_api.g_miss_char
15226 ,p_NEW_ATTRIBUTE14 => p_instance_rec.ATTRIBUTE14
15227 ,p_OLD_ATTRIBUTE14 => fnd_api.g_miss_char
15228 ,p_NEW_ATTRIBUTE15 => p_instance_rec.ATTRIBUTE15
15229 ,p_OLD_ATTRIBUTE15 => fnd_api.g_miss_char
15230 ,p_CREATED_BY => fnd_api.g_miss_num
15231 ,p_CREATION_DATE => fnd_api.g_miss_date
15232 ,p_LAST_UPDATED_BY => FND_GLOBAL.USER_ID
15233 ,p_LAST_UPDATE_DATE => SYSDATE
15234 ,p_LAST_UPDATE_LOGIN => FND_GLOBAL.CONC_LOGIN_ID
15235 ,p_OBJECT_VERSION_NUMBER => fnd_api.g_miss_num
15236 ,p_OLD_INST_LOC_TYPE_CODE => fnd_api.g_miss_char
15237 ,p_NEW_INST_LOC_TYPE_CODE => p_instance_rec.INSTALL_LOCATION_TYPE_CODE
15238 ,p_OLD_INST_LOC_ID => fnd_api.g_miss_num
15239 ,p_NEW_INST_LOC_ID => p_instance_rec.INSTALL_LOCATION_ID
15240 ,p_OLD_INST_USAGE_CODE => fnd_api.g_miss_char
15241 ,p_NEW_INST_USAGE_CODE => p_instance_rec.INSTANCE_USAGE_CODE
15242 ,p_OLD_LAST_VLD_ORGANIZATION_ID => fnd_api.g_miss_num
15243 ,p_NEW_LAST_VLD_ORGANIZATION_ID => l_last_vld_organization_id
15244 ,p_OLD_CONFIG_INST_REV_NUM => fnd_api.g_miss_num
15245 ,p_NEW_CONFIG_INST_REV_NUM => p_instance_rec.CONFIG_INST_REV_NUM
15246 ,p_OLD_CONFIG_VALID_STATUS => fnd_api.g_miss_char
15247 ,p_NEW_CONFIG_VALID_STATUS => p_instance_rec.CONFIG_VALID_STATUS
15248 ,p_OLD_INSTANCE_DESCRIPTION => fnd_api.g_miss_char
15249 ,p_NEW_INSTANCE_DESCRIPTION => p_instance_rec.INSTANCE_DESCRIPTION
15250 ,p_OLD_INSTALL_DATE => fnd_api.g_miss_date
15251 ,p_NEW_INSTALL_DATE => p_instance_rec.INSTALL_DATE
15252 ,p_OLD_RETURN_BY_DATE => fnd_api.g_miss_date
15253 ,p_NEW_RETURN_BY_DATE => p_instance_rec.RETURN_BY_DATE
15254 ,p_OLD_ACTUAL_RETURN_DATE => fnd_api.g_miss_date
15255 ,p_NEW_ACTUAL_RETURN_DATE => p_instance_rec.ACTUAL_RETURN_DATE
15256 ,p_OLD_LAST_OE_AGREEMENT_ID => fnd_api.g_miss_num
15257 ,p_NEW_LAST_OE_AGREEMENT_ID => p_instance_rec.LAST_OE_AGREEMENT_ID
15258 ,p_OLD_LAST_OE_ORDER_LINE_ID => fnd_api.g_miss_num
15259 ,p_NEW_LAST_OE_ORDER_LINE_ID => p_instance_rec.LAST_OE_ORDER_LINE_ID
15260 ,p_OLD_LAST_OE_RMA_LINE_ID => fnd_api.g_miss_num
15261 ,p_NEW_LAST_OE_RMA_LINE_ID => p_instance_rec.LAST_OE_RMA_LINE_ID
15262 ,p_OLD_LAST_WIP_JOB_ID => fnd_api.g_miss_num
15263 ,p_NEW_LAST_WIP_JOB_ID => p_instance_rec.LAST_WIP_JOB_ID
15264 ,p_OLD_LAST_PO_PO_LINE_ID => fnd_api.g_miss_num
15265 ,p_NEW_LAST_PO_PO_LINE_ID => p_instance_rec.LAST_PO_PO_LINE_ID
15266 ,p_OLD_LAST_PA_PROJECT_ID => fnd_api.g_miss_num
15267 ,p_NEW_LAST_PA_PROJECT_ID => p_instance_rec.LAST_PA_PROJECT_ID
15268 ,p_OLD_LAST_PA_TASK_ID => fnd_api.g_miss_num
15269 ,p_NEW_LAST_PA_TASK_ID => p_instance_rec.LAST_PA_TASK_ID
15270 ,p_OLD_LAST_TXN_LINE_DETAIL_ID => fnd_api.g_miss_num
15271 ,p_NEW_LAST_TXN_LINE_DETAIL_ID => p_instance_rec.LAST_TXN_LINE_DETAIL_ID
15272 ,p_OLD_LAST_OE_PO_NUMBER => fnd_api.g_miss_char
15273 ,p_NEW_LAST_OE_PO_NUMBER => p_instance_rec.LAST_OE_PO_NUMBER
15274 --start of parameters addition for eam integration--
15275 ,p_OLD_NETWORK_ASSET_FLAG => fnd_api.g_miss_char
15276 ,p_NEW_NETWORK_ASSET_FLAG => p_instance_rec.NETWORK_ASSET_FLAG
15277 ,p_OLD_MAINTAINABLE_FLAG => fnd_api.g_miss_char
15278 ,p_NEW_MAINTAINABLE_FLAG => p_instance_rec.MAINTAINABLE_FLAG
15279 ,p_OLD_PN_LOCATION_ID => fnd_api.g_miss_num
15280 ,p_NEW_PN_LOCATION_ID => p_instance_rec.PN_LOCATION_ID
15281 ,p_OLD_ASSET_CRITICALITY_CODE => fnd_api.g_miss_char
15282 ,p_NEW_ASSET_CRITICALITY_CODE => p_instance_rec.ASSET_CRITICALITY_CODE
15283 ,p_OLD_CATEGORY_ID => fnd_api.g_miss_num
15284 ,p_NEW_CATEGORY_ID => p_instance_rec.CATEGORY_ID
15285 ,p_OLD_EQUIPMENT_GEN_OBJECT_ID => fnd_api.g_miss_num
15286 ,p_NEW_EQUIPMENT_GEN_OBJECT_ID => p_instance_rec.EQUIPMENT_GEN_OBJECT_ID
15287 ,p_OLD_INSTANTIATION_FLAG => fnd_api.g_miss_char
15288 ,p_NEW_INSTANTIATION_FLAG => p_instance_rec.INSTANTIATION_FLAG
15289 ,p_OLD_LINEAR_LOCATION_ID => fnd_api.g_miss_num
15290 ,p_NEW_LINEAR_LOCATION_ID => p_instance_rec.LINEAR_LOCATION_ID
15291 ,p_OLD_OPERATIONAL_LOG_FLAG => fnd_api.g_miss_char
15292 ,p_NEW_OPERATIONAL_LOG_FLAG => p_instance_rec.OPERATIONAL_LOG_FLAG
15293 ,p_OLD_CHECKIN_STATUS => fnd_api.g_miss_num
15294 ,p_NEW_CHECKIN_STATUS => p_instance_rec.CHECKIN_STATUS
15295 ,p_OLD_SUP_WARRANTY_EXP_DATE => fnd_api.g_miss_date
15296 ,p_NEW_SUP_WARRANTY_EXP_DATE => p_instance_rec.SUPPLIER_WARRANTY_EXP_DATE
15297 ,p_OLD_ATTRIBUTE16 => fnd_api.g_miss_char
15298 ,p_NEW_ATTRIBUTE16 => p_instance_rec.ATTRIBUTE16
15299 ,p_OLD_ATTRIBUTE17 => fnd_api.g_miss_char
15300 ,p_NEW_ATTRIBUTE17 => p_instance_rec.ATTRIBUTE17
15301 ,p_OLD_ATTRIBUTE18 => fnd_api.g_miss_char
15302 ,p_NEW_ATTRIBUTE18 => p_instance_rec.ATTRIBUTE18
15303 ,p_OLD_ATTRIBUTE19 => fnd_api.g_miss_char
15304 ,p_NEW_ATTRIBUTE19 => p_instance_rec.ATTRIBUTE19
15305 ,p_OLD_ATTRIBUTE20 => fnd_api.g_miss_char
15306 ,p_NEW_ATTRIBUTE20 => p_instance_rec.ATTRIBUTE20
15307 ,p_OLD_ATTRIBUTE21 => fnd_api.g_miss_char
15308 ,p_NEW_ATTRIBUTE21 => p_instance_rec.ATTRIBUTE21
15309 ,p_OLD_ATTRIBUTE22 => fnd_api.g_miss_char
15310 ,p_NEW_ATTRIBUTE22 => p_instance_rec.ATTRIBUTE22
15311 ,p_OLD_ATTRIBUTE23 => fnd_api.g_miss_char
15312 ,p_NEW_ATTRIBUTE23 => p_instance_rec.ATTRIBUTE23
15313 ,p_OLD_ATTRIBUTE24 => fnd_api.g_miss_char
15314 ,p_NEW_ATTRIBUTE24 => p_instance_rec.ATTRIBUTE24
15315 ,p_OLD_ATTRIBUTE25 => fnd_api.g_miss_char
15316 ,p_NEW_ATTRIBUTE25 => p_instance_rec.ATTRIBUTE25
15317 ,p_OLD_ATTRIBUTE26 => fnd_api.g_miss_char
15318 ,p_NEW_ATTRIBUTE26 => p_instance_rec.ATTRIBUTE26
15319 ,p_OLD_ATTRIBUTE27 => fnd_api.g_miss_char
15320 ,p_NEW_ATTRIBUTE27 => p_instance_rec.ATTRIBUTE27
15321 ,p_OLD_ATTRIBUTE28 => fnd_api.g_miss_char
15322 ,p_NEW_ATTRIBUTE28 => p_instance_rec.ATTRIBUTE28
15323 ,p_OLD_ATTRIBUTE29 => fnd_api.g_miss_char
15324 ,p_NEW_ATTRIBUTE29 => p_instance_rec.ATTRIBUTE29
15325 ,p_OLD_ATTRIBUTE30 => fnd_api.g_miss_char
15326 ,p_NEW_ATTRIBUTE30 => p_instance_rec.ATTRIBUTE30
15327 --end of parameters addition for eam integration--
15328 -- Addition of columns for FA Integration
15329 ,p_OLD_PAYABLES_UNIT_PRICE => fnd_api.g_miss_num
15330 ,p_NEW_PAYABLES_UNIT_PRICE => p_instance_rec.PAYABLES_UNIT_PRICE
15331 ,p_OLD_PAYABLES_CURRENCY_CODE => fnd_api.g_miss_char
15332 ,p_NEW_PAYABLES_CURRENCY_CODE => p_instance_rec.PAYABLES_CURRENCY_CODE
15333 ,p_OLD_PURCHASE_UNIT_PRICE => fnd_api.g_miss_num
15334 ,p_NEW_PURCHASE_UNIT_PRICE => p_instance_rec.PURCHASE_UNIT_PRICE
15335 ,p_OLD_PURCHASE_CURRENCY_CODE => fnd_api.g_miss_char
15336 ,p_NEW_PURCHASE_CURRENCY_CODE => p_instance_rec.PURCHASE_CURRENCY_CODE
15337 ,p_OLD_SALES_UNIT_PRICE => fnd_api.g_miss_num
15338 ,p_NEW_SALES_UNIT_PRICE => p_instance_rec.SALES_UNIT_PRICE
15339 ,p_OLD_SALES_CURRENCY_CODE => fnd_api.g_miss_char
15340 ,p_NEW_SALES_CURRENCY_CODE => p_instance_rec.SALES_CURRENCY_CODE
15341 ,p_OLD_OPERATIONAL_STATUS_CODE => fnd_api.g_miss_char
15342 ,p_NEW_OPERATIONAL_STATUS_CODE => p_instance_rec.OPERATIONAL_STATUS_CODE
15343 -- End addition of columns for FA Integration
15344 -- Begin Add Code for Siebel Genesis Project
15345 ,p_OLD_SOURCE_CODE => fnd_api.g_miss_char
15346 ,p_NEW_SOURCE_CODE => p_instance_rec.SOURCE_CODE
15347 -- End Add Code for Siebel Genesis Project
15348 );
15349
15350 ELSE
15351
15352 IF ( l_ins_hist_csr.old_instance_number IS NULL
15353 AND l_ins_hist_csr.new_instance_number IS NULL ) THEN
15354 IF ( p_instance_rec.instance_number = l_curr_instance_rec.instance_number )
15355 OR ( p_instance_rec.instance_number = fnd_api.g_miss_char ) THEN
15356 l_ins_hist_csr.old_instance_number := NULL;
15357 l_ins_hist_csr.new_instance_number := NULL;
15358 ELSE
15359 l_ins_hist_csr.old_instance_number := fnd_api.g_miss_char;
15360 l_ins_hist_csr.new_instance_number := p_instance_rec.instance_number;
15361 END IF;
15362 ELSE
15363 l_ins_hist_csr.old_instance_number := fnd_api.g_miss_char;
15364 l_ins_hist_csr.new_instance_number := p_instance_rec.instance_number;
15365 END IF;
15366 --
15367 IF ( l_ins_hist_csr.old_external_reference IS NULL
15368 AND l_ins_hist_csr.new_external_reference IS NULL ) THEN
15369 IF ( p_instance_rec.external_reference = l_curr_instance_rec.external_reference )
15370 OR ( p_instance_rec.external_reference = fnd_api.g_miss_char ) THEN
15371 l_ins_hist_csr.old_external_reference := NULL;
15372 l_ins_hist_csr.new_external_reference := NULL;
15373 ELSE
15374 l_ins_hist_csr.old_external_reference := fnd_api.g_miss_char;
15375 l_ins_hist_csr.new_external_reference := p_instance_rec.external_reference;
15376 END IF;
15377 ELSE
15378 l_ins_hist_csr.old_external_reference := fnd_api.g_miss_char;
15379 l_ins_hist_csr.new_external_reference := p_instance_rec.external_reference;
15380 END IF;
15381 --
15382 IF ( l_ins_hist_csr.old_inventory_item_id IS NULL
15383 AND l_ins_hist_csr.new_inventory_item_id IS NULL ) THEN
15384 IF ( p_instance_rec.inventory_item_id = l_curr_instance_rec.inventory_item_id )
15385 OR ( p_instance_rec.inventory_item_id = fnd_api.g_miss_num ) THEN
15386 l_ins_hist_csr.old_inventory_item_id := NULL;
15387 l_ins_hist_csr.new_inventory_item_id := NULL;
15388 ELSE
15389 l_ins_hist_csr.old_inventory_item_id := fnd_api.g_miss_num;
15390 l_ins_hist_csr.new_inventory_item_id := p_instance_rec.inventory_item_id;
15391 END IF;
15392 ELSE
15393 l_ins_hist_csr.old_inventory_item_id := fnd_api.g_miss_num;
15394 l_ins_hist_csr.new_inventory_item_id := p_instance_rec.inventory_item_id;
15395 END IF;
15396 --
15397 IF ( l_ins_hist_csr.old_inventory_revision IS NULL
15398 AND l_ins_hist_csr.new_inventory_revision IS NULL ) THEN
15399 IF ( p_instance_rec.inventory_revision = l_curr_instance_rec.inventory_revision )
15400 OR ( p_instance_rec.inventory_revision = fnd_api.g_miss_char ) THEN
15401 l_ins_hist_csr.old_inventory_revision := NULL;
15402 l_ins_hist_csr.new_inventory_revision := NULL;
15403 ELSE
15404 l_ins_hist_csr.old_inventory_revision := fnd_api.g_miss_char;
15405 l_ins_hist_csr.new_inventory_revision := p_instance_rec.inventory_revision;
15406 END IF;
15407 ELSE
15408 l_ins_hist_csr.old_inventory_revision := fnd_api.g_miss_char;
15409 l_ins_hist_csr.new_inventory_revision := p_instance_rec.inventory_revision;
15410 END IF;
15411 --
15412 IF ( l_ins_hist_csr.old_inv_master_organization_id IS NULL
15413 AND l_ins_hist_csr.new_inv_master_organization_id IS NULL ) THEN
15414 IF ( p_instance_rec.inv_master_organization_id = l_curr_instance_rec.inv_master_organization_id )
15415 OR ( p_instance_rec.inv_master_organization_id = fnd_api.g_miss_num ) THEN
15416 l_ins_hist_csr.old_inv_master_organization_id := NULL;
15417 l_ins_hist_csr.new_inv_master_organization_id := NULL;
15418 ELSE
15419 l_ins_hist_csr.old_inv_master_organization_id := fnd_api.g_miss_num;
15420 l_ins_hist_csr.new_inv_master_organization_id := p_instance_rec.inv_master_organization_id;
15421 END IF;
15422 ELSE
15423 l_ins_hist_csr.old_inv_master_organization_id := fnd_api.g_miss_num;
15424 l_ins_hist_csr.new_inv_master_organization_id := p_instance_rec.inv_master_organization_id;
15425 END IF;
15426 --
15427 IF ( l_ins_hist_csr.old_serial_number IS NULL
15428 AND l_ins_hist_csr.new_serial_number IS NULL ) THEN
15429 IF ( p_instance_rec.serial_number = l_curr_instance_rec.serial_number )
15430 OR ( p_instance_rec.serial_number = fnd_api.g_miss_char ) THEN
15431 l_ins_hist_csr.old_serial_number := NULL;
15432 l_ins_hist_csr.new_serial_number := NULL;
15433 ELSE
15434 l_ins_hist_csr.old_serial_number := fnd_api.g_miss_char;
15435 l_ins_hist_csr.new_serial_number := p_instance_rec.serial_number;
15436 END IF;
15437 ELSE
15438 l_ins_hist_csr.old_serial_number := fnd_api.g_miss_char;
15439 l_ins_hist_csr.new_serial_number := p_instance_rec.serial_number;
15440 END IF;
15441 --
15442 IF ( l_ins_hist_csr.old_mfg_serial_number_flag IS NULL
15443 AND l_ins_hist_csr.new_mfg_serial_number_flag IS NULL ) THEN
15444 IF ( p_instance_rec.mfg_serial_number_flag = l_curr_instance_rec.mfg_serial_number_flag )
15445 OR ( p_instance_rec.mfg_serial_number_flag = fnd_api.g_miss_char ) THEN
15446 l_ins_hist_csr.old_mfg_serial_number_flag := NULL;
15447 l_ins_hist_csr.new_mfg_serial_number_flag := NULL;
15448 ELSE
15449 l_ins_hist_csr.old_mfg_serial_number_flag := fnd_api.g_miss_char;
15450 l_ins_hist_csr.new_mfg_serial_number_flag := p_instance_rec.mfg_serial_number_flag;
15451 END IF;
15452 ELSE
15453 l_ins_hist_csr.old_mfg_serial_number_flag := fnd_api.g_miss_char;
15454 l_ins_hist_csr.new_mfg_serial_number_flag := p_instance_rec.mfg_serial_number_flag;
15455 END IF;
15456 --
15457 IF ( l_ins_hist_csr.old_lot_number IS NULL
15458 AND l_ins_hist_csr.new_lot_number IS NULL ) THEN
15459 IF ( p_instance_rec.lot_number = l_curr_instance_rec.lot_number )
15460 OR ( p_instance_rec.lot_number = fnd_api.g_miss_char ) THEN
15461 l_ins_hist_csr.old_lot_number := NULL;
15462 l_ins_hist_csr.new_lot_number := NULL;
15463 ELSE
15464 l_ins_hist_csr.old_lot_number := fnd_api.g_miss_char;
15465 l_ins_hist_csr.new_lot_number := p_instance_rec.lot_number;
15466 END IF;
15467 ELSE
15468 l_ins_hist_csr.old_lot_number := fnd_api.g_miss_char;
15469 l_ins_hist_csr.new_lot_number := p_instance_rec.lot_number;
15470 END IF;
15471 --
15472 IF ( l_ins_hist_csr.old_quantity IS NULL
15473 AND l_ins_hist_csr.new_quantity IS NULL ) THEN
15474 IF ( p_instance_rec.quantity = l_curr_instance_rec.quantity )
15475 OR ( p_instance_rec.quantity = fnd_api.g_miss_num ) THEN
15476 l_ins_hist_csr.old_quantity := NULL;
15477 l_ins_hist_csr.new_quantity := NULL;
15478 ELSE
15479 l_ins_hist_csr.old_quantity := l_curr_instance_rec.quantity; --fnd_api.g_miss_num;
15480 l_ins_hist_csr.new_quantity := p_instance_rec.quantity;
15481 END IF;
15482 ELSE
15483 l_ins_hist_csr.old_quantity := fnd_api.g_miss_num;
15484 l_ins_hist_csr.new_quantity := p_instance_rec.quantity;
15485 END IF;
15486 --
15487 IF ( l_ins_hist_csr.old_unit_of_measure IS NULL
15488 AND l_ins_hist_csr.new_unit_of_measure IS NULL ) THEN
15489 IF ( p_instance_rec.unit_of_measure = l_curr_instance_rec.unit_of_measure )
15490 OR ( p_instance_rec.unit_of_measure = fnd_api.g_miss_char ) THEN
15491 l_ins_hist_csr.old_unit_of_measure := NULL;
15492 l_ins_hist_csr.new_unit_of_measure := NULL;
15493 ELSE
15494 l_ins_hist_csr.old_unit_of_measure := fnd_api.g_miss_char;
15495 l_ins_hist_csr.new_unit_of_measure := p_instance_rec.unit_of_measure;
15496 END IF;
15497 ELSE
15498 l_ins_hist_csr.old_unit_of_measure := fnd_api.g_miss_char;
15499 l_ins_hist_csr.new_unit_of_measure := p_instance_rec.unit_of_measure;
15500 END IF;
15501 --
15502 IF ( l_ins_hist_csr.old_accounting_class_code IS NULL
15503 AND l_ins_hist_csr.new_accounting_class_code IS NULL ) THEN
15504 IF ( p_instance_rec.accounting_class_code = l_curr_instance_rec.accounting_class_code )
15505 OR ( p_instance_rec.accounting_class_code = fnd_api.g_miss_char ) THEN
15506 l_ins_hist_csr.old_accounting_class_code := NULL;
15507 l_ins_hist_csr.new_accounting_class_code := NULL;
15508 ELSE
15509 l_ins_hist_csr.old_accounting_class_code := fnd_api.g_miss_char;
15510 l_ins_hist_csr.new_accounting_class_code := p_instance_rec.accounting_class_code;
15511 END IF;
15512 ELSE
15513 l_ins_hist_csr.old_accounting_class_code := fnd_api.g_miss_char;
15514 l_ins_hist_csr.new_accounting_class_code := p_instance_rec.accounting_class_code;
15515 END IF;
15516 --
15517 IF ( l_ins_hist_csr.old_instance_condition_id IS NULL
15518 AND l_ins_hist_csr.new_instance_condition_id IS NULL ) THEN
15519 IF ( p_instance_rec.instance_condition_id = l_curr_instance_rec.instance_condition_id )
15520 OR ( p_instance_rec.instance_condition_id = fnd_api.g_miss_num ) THEN
15521 l_ins_hist_csr.old_instance_condition_id := NULL;
15522 l_ins_hist_csr.new_instance_condition_id := NULL;
15523 ELSE
15524 l_ins_hist_csr.old_instance_condition_id := fnd_api.g_miss_num;
15525 l_ins_hist_csr.new_instance_condition_id := p_instance_rec.instance_condition_id;
15526 END IF;
15527 ELSE
15528 l_ins_hist_csr.old_instance_condition_id := fnd_api.g_miss_num;
15529 l_ins_hist_csr.new_instance_condition_id := p_instance_rec.instance_condition_id;
15530 END IF;
15531 --
15532 IF ( l_ins_hist_csr.old_instance_status_id IS NULL
15533 AND l_ins_hist_csr.new_instance_status_id IS NULL ) THEN
15534 IF ( p_instance_rec.instance_status_id = l_curr_instance_rec.instance_status_id )
15535 OR ( p_instance_rec.instance_status_id = fnd_api.g_miss_num ) THEN
15536 l_ins_hist_csr.old_instance_status_id := NULL;
15537 l_ins_hist_csr.new_instance_status_id := NULL;
15538 ELSE
15539 /* Following has been added for bug 2935513 */
15540 IF nvl(l_curr_instance_rec.instance_status_id,fnd_api.g_miss_num)<>
15541 nvl(p_instance_rec.instance_status_id,fnd_api.g_miss_num)
15542 THEN
15543 l_ins_hist_csr.old_instance_status_id := l_curr_instance_rec.instance_status_id;
15544 l_ins_hist_csr.new_instance_status_id := p_instance_rec.instance_status_id;
15545 ELSE
15546 /* End addition for bug 2935513 */
15547 l_ins_hist_csr.old_instance_status_id := fnd_api.g_miss_num;
15548 l_ins_hist_csr.new_instance_status_id := p_instance_rec.instance_status_id;
15549 END IF;
15550
15551 END IF;
15552 ELSE
15553 l_ins_hist_csr.old_instance_status_id := fnd_api.g_miss_num;
15554 l_ins_hist_csr.new_instance_status_id := p_instance_rec.instance_status_id;
15555 END IF;
15556 --
15557 IF ( l_ins_hist_csr.old_customer_view_flag IS NULL
15558 AND l_ins_hist_csr.new_customer_view_flag IS NULL ) THEN
15559 IF ( p_instance_rec.customer_view_flag = l_curr_instance_rec.customer_view_flag )
15560 OR ( p_instance_rec.customer_view_flag = fnd_api.g_miss_char ) THEN
15561 l_ins_hist_csr.old_customer_view_flag := NULL;
15562 l_ins_hist_csr.new_customer_view_flag := NULL;
15563 ELSE
15564 l_ins_hist_csr.old_customer_view_flag := fnd_api.g_miss_char;
15565 l_ins_hist_csr.new_customer_view_flag := p_instance_rec.customer_view_flag;
15566 END IF;
15567 ELSE
15568 l_ins_hist_csr.old_customer_view_flag := fnd_api.g_miss_char;
15569 l_ins_hist_csr.new_customer_view_flag := p_instance_rec.customer_view_flag;
15570 END IF;
15571 --
15572 IF ( l_ins_hist_csr.old_merchant_view_flag IS NULL
15573 AND l_ins_hist_csr.new_merchant_view_flag IS NULL ) THEN
15574 IF ( p_instance_rec.merchant_view_flag = l_curr_instance_rec.merchant_view_flag )
15575 OR ( p_instance_rec.merchant_view_flag = fnd_api.g_miss_char ) THEN
15576 l_ins_hist_csr.old_merchant_view_flag := NULL;
15577 l_ins_hist_csr.new_merchant_view_flag := NULL;
15578 ELSE
15579 l_ins_hist_csr.old_merchant_view_flag := fnd_api.g_miss_char;
15580 l_ins_hist_csr.new_merchant_view_flag := p_instance_rec.merchant_view_flag;
15581 END IF;
15582 ELSE
15583 l_ins_hist_csr.old_merchant_view_flag := fnd_api.g_miss_char;
15584 l_ins_hist_csr.new_merchant_view_flag := p_instance_rec.merchant_view_flag;
15585 END IF;
15586 --
15587 IF ( l_ins_hist_csr.old_sellable_flag IS NULL
15588 AND l_ins_hist_csr.new_sellable_flag IS NULL ) THEN
15589 IF ( p_instance_rec.sellable_flag = l_curr_instance_rec.sellable_flag )
15590 OR ( p_instance_rec.sellable_flag = fnd_api.g_miss_char ) THEN
15591 l_ins_hist_csr.old_sellable_flag := NULL;
15592 l_ins_hist_csr.new_sellable_flag := NULL;
15593 ELSE
15594 l_ins_hist_csr.old_sellable_flag := fnd_api.g_miss_char;
15595 l_ins_hist_csr.new_sellable_flag := p_instance_rec.sellable_flag;
15596 END IF;
15597 ELSE
15598 l_ins_hist_csr.old_sellable_flag := fnd_api.g_miss_char;
15599 l_ins_hist_csr.new_sellable_flag := p_instance_rec.sellable_flag;
15600 END IF;
15601 --
15602 IF ( l_ins_hist_csr.old_system_id IS NULL
15603 AND l_ins_hist_csr.new_system_id IS NULL ) THEN
15604 IF ( p_instance_rec.system_id = l_curr_instance_rec.system_id )
15605 OR ( p_instance_rec.system_id = fnd_api.g_miss_num ) THEN
15606 l_ins_hist_csr.old_system_id := NULL;
15607 l_ins_hist_csr.new_system_id := NULL;
15608 ELSE
15609 l_ins_hist_csr.old_system_id := fnd_api.g_miss_num;
15610 l_ins_hist_csr.new_system_id := p_instance_rec.system_id;
15611 END IF;
15612 ELSE
15613 l_ins_hist_csr.old_system_id := fnd_api.g_miss_num;
15614 l_ins_hist_csr.new_system_id := p_instance_rec.system_id;
15615 END IF;
15616 --
15617 IF ( l_ins_hist_csr.old_instance_type_code IS NULL
15618 AND l_ins_hist_csr.new_instance_type_code IS NULL ) THEN
15619 IF ( p_instance_rec.instance_type_code = l_curr_instance_rec.instance_type_code )
15620 OR ( p_instance_rec.instance_type_code = fnd_api.g_miss_char ) THEN
15621 l_ins_hist_csr.old_instance_type_code := NULL;
15622 l_ins_hist_csr.new_instance_type_code := NULL;
15623 ELSE
15624 l_ins_hist_csr.old_instance_type_code := fnd_api.g_miss_char;
15625 l_ins_hist_csr.new_instance_type_code := p_instance_rec.instance_type_code;
15626 END IF;
15627 ELSE
15628 l_ins_hist_csr.old_instance_type_code := fnd_api.g_miss_char;
15629 l_ins_hist_csr.new_instance_type_code := p_instance_rec.instance_type_code;
15630 END IF;
15631 --
15632 IF ( l_ins_hist_csr.old_active_start_date IS NULL
15633 AND l_ins_hist_csr.new_active_start_date IS NULL ) THEN
15634 IF ( p_instance_rec.active_start_date = l_curr_instance_rec.active_start_date )
15635 OR ( p_instance_rec.active_start_date = fnd_api.g_miss_date ) THEN
15636 l_ins_hist_csr.old_active_start_date := NULL;
15637 l_ins_hist_csr.new_active_start_date := NULL;
15638 ELSE
15639 l_ins_hist_csr.old_active_start_date := fnd_api.g_miss_date;
15640 l_ins_hist_csr.new_active_start_date := p_instance_rec.active_start_date;
15641 END IF;
15642 ELSE
15643 l_ins_hist_csr.old_active_start_date := fnd_api.g_miss_date;
15644 l_ins_hist_csr.new_active_start_date := p_instance_rec.active_start_date;
15645 END IF;
15646 --
15647 IF ( l_ins_hist_csr.old_active_end_date IS NULL
15648 AND l_ins_hist_csr.new_active_end_date IS NULL ) THEN
15649 IF ( p_instance_rec.active_end_date = l_curr_instance_rec.active_end_date )
15650 OR ( p_instance_rec.active_end_date = fnd_api.g_miss_date ) THEN
15651 l_ins_hist_csr.old_active_end_date := NULL;
15652 l_ins_hist_csr.new_active_end_date := NULL;
15653 ELSE
15654 l_ins_hist_csr.old_active_end_date := fnd_api.g_miss_date;
15655 l_ins_hist_csr.new_active_end_date := p_instance_rec.active_end_date;
15656 END IF;
15657 ELSE
15658 l_ins_hist_csr.old_active_end_date := fnd_api.g_miss_date;
15659 l_ins_hist_csr.new_active_end_date := p_instance_rec.active_end_date;
15660 END IF;
15661 --
15662 IF ( l_ins_hist_csr.old_location_type_code IS NULL
15663 AND l_ins_hist_csr.new_location_type_code IS NULL ) THEN
15664 IF ( p_instance_rec.location_type_code = l_curr_instance_rec.location_type_code )
15665 OR ( p_instance_rec.location_type_code = fnd_api.g_miss_char ) THEN
15666 l_ins_hist_csr.old_location_type_code := NULL;
15667 l_ins_hist_csr.new_location_type_code := NULL;
15668 ELSE
15669 l_ins_hist_csr.old_location_type_code := l_curr_instance_rec.location_type_code; --fnd_api.g_miss_char;
15670 l_ins_hist_csr.new_location_type_code := p_instance_rec.location_type_code;
15671 END IF;
15672 ELSE
15673 l_ins_hist_csr.old_location_type_code := fnd_api.g_miss_char;
15674 l_ins_hist_csr.new_location_type_code := p_instance_rec.location_type_code;
15675 END IF;
15676 --
15677 IF ( l_ins_hist_csr.old_location_id IS NULL
15678 AND l_ins_hist_csr.new_location_id IS NULL ) THEN
15679 IF ( p_instance_rec.location_id = l_curr_instance_rec.location_id )
15680 OR ( p_instance_rec.location_id = fnd_api.g_miss_num ) THEN
15681 l_ins_hist_csr.old_location_id := NULL;
15682 l_ins_hist_csr.new_location_id := NULL;
15683 ELSE
15684 l_ins_hist_csr.old_location_id := l_curr_instance_rec.location_id; --fnd_api.g_miss_num;
15685 l_ins_hist_csr.new_location_id := p_instance_rec.location_id;
15686 END IF;
15687 ELSE
15688 l_ins_hist_csr.old_location_id := fnd_api.g_miss_num;
15689 l_ins_hist_csr.new_location_id := p_instance_rec.location_id;
15690 END IF;
15691 --
15692 IF ( l_ins_hist_csr.old_inv_organization_id IS NULL
15693 AND l_ins_hist_csr.new_inv_organization_id IS NULL ) THEN
15694 IF ( p_instance_rec.inv_organization_id = l_curr_instance_rec.inv_organization_id )
15695 OR ( p_instance_rec.inv_organization_id = fnd_api.g_miss_num ) THEN
15696 l_ins_hist_csr.old_inv_organization_id := NULL;
15697 l_ins_hist_csr.new_inv_organization_id := NULL;
15698 ELSE
15699 l_ins_hist_csr.old_inv_organization_id := fnd_api.g_miss_num;
15700 l_ins_hist_csr.new_inv_organization_id := p_instance_rec.inv_organization_id;
15701 END IF;
15702 ELSE
15703 l_ins_hist_csr.old_inv_organization_id := fnd_api.g_miss_num;
15704 l_ins_hist_csr.new_inv_organization_id := p_instance_rec.inv_organization_id;
15705 END IF;
15706 --
15707 IF ( l_ins_hist_csr.old_inv_subinventory_name IS NULL
15708 AND l_ins_hist_csr.new_inv_subinventory_name IS NULL ) THEN
15709 IF ( p_instance_rec.inv_subinventory_name = l_curr_instance_rec.inv_subinventory_name )
15710 OR ( p_instance_rec.inv_subinventory_name = fnd_api.g_miss_char ) THEN
15711 l_ins_hist_csr.old_inv_subinventory_name := NULL;
15712 l_ins_hist_csr.new_inv_subinventory_name := NULL;
15713 ELSE
15714 l_ins_hist_csr.old_inv_subinventory_name := fnd_api.g_miss_char;
15715 l_ins_hist_csr.new_inv_subinventory_name := p_instance_rec.inv_subinventory_name;
15716 END IF;
15717 ELSE
15718 l_ins_hist_csr.old_inv_subinventory_name := fnd_api.g_miss_char;
15719 l_ins_hist_csr.new_inv_subinventory_name := p_instance_rec.inv_subinventory_name;
15720 END IF;
15721 --
15722 IF ( l_ins_hist_csr.old_inv_locator_id IS NULL
15723 AND l_ins_hist_csr.new_inv_locator_id IS NULL ) THEN
15724 IF ( p_instance_rec.inv_locator_id = l_curr_instance_rec.inv_locator_id )
15725 OR ( p_instance_rec.inv_locator_id = fnd_api.g_miss_num ) THEN
15726 l_ins_hist_csr.old_inv_locator_id := NULL;
15727 l_ins_hist_csr.new_inv_locator_id := NULL;
15728 ELSE
15729 l_ins_hist_csr.old_inv_locator_id := fnd_api.g_miss_num;
15730 l_ins_hist_csr.new_inv_locator_id := p_instance_rec.inv_locator_id;
15731 END IF;
15732 ELSE
15733 l_ins_hist_csr.old_inv_locator_id := fnd_api.g_miss_num;
15734 l_ins_hist_csr.new_inv_locator_id := p_instance_rec.inv_locator_id;
15735 END IF;
15736 --
15737 IF ( l_ins_hist_csr.old_pa_project_id IS NULL
15738 AND l_ins_hist_csr.new_pa_project_id IS NULL ) THEN
15739 IF ( p_instance_rec.pa_project_id = l_curr_instance_rec.pa_project_id )
15740 OR ( p_instance_rec.pa_project_id = fnd_api.g_miss_num ) THEN
15741 l_ins_hist_csr.old_pa_project_id := NULL;
15742 l_ins_hist_csr.new_pa_project_id := NULL;
15743 ELSE
15744 l_ins_hist_csr.old_pa_project_id := fnd_api.g_miss_num;
15745 l_ins_hist_csr.new_pa_project_id := p_instance_rec.pa_project_id;
15746 END IF;
15747 ELSE
15748 l_ins_hist_csr.old_pa_project_id := fnd_api.g_miss_num;
15749 l_ins_hist_csr.new_pa_project_id := p_instance_rec.pa_project_id;
15750 END IF;
15751 --
15752 IF ( l_ins_hist_csr.old_pa_project_task_id IS NULL
15753 AND l_ins_hist_csr.new_pa_project_task_id IS NULL ) THEN
15754 IF ( p_instance_rec.pa_project_task_id = l_curr_instance_rec.pa_project_task_id )
15755 OR ( p_instance_rec.pa_project_task_id = fnd_api.g_miss_num ) THEN
15756 l_ins_hist_csr.old_pa_project_task_id := NULL;
15757 l_ins_hist_csr.new_pa_project_task_id := NULL;
15758 ELSE
15759 l_ins_hist_csr.old_pa_project_task_id := fnd_api.g_miss_num;
15760 l_ins_hist_csr.new_pa_project_task_id := p_instance_rec.pa_project_task_id;
15761 END IF;
15762 ELSE
15763 l_ins_hist_csr.old_pa_project_id := fnd_api.g_miss_num;
15764 l_ins_hist_csr.new_pa_project_task_id := p_instance_rec.pa_project_task_id;
15765 END IF;
15766 --
15767 IF ( l_ins_hist_csr.old_in_transit_order_line_id IS NULL
15768 AND l_ins_hist_csr.new_in_transit_order_line_id IS NULL ) THEN
15769 IF ( p_instance_rec.in_transit_order_line_id = l_curr_instance_rec.in_transit_order_line_id )
15770 OR ( p_instance_rec.in_transit_order_line_id = fnd_api.g_miss_num ) THEN
15771 l_ins_hist_csr.old_in_transit_order_line_id := NULL;
15772 l_ins_hist_csr.new_in_transit_order_line_id := NULL;
15773 ELSE
15774 l_ins_hist_csr.old_in_transit_order_line_id := fnd_api.g_miss_num;
15775 l_ins_hist_csr.new_in_transit_order_line_id := p_instance_rec.in_transit_order_line_id;
15776 END IF;
15777 ELSE
15778 l_ins_hist_csr.old_in_transit_order_line_id := fnd_api.g_miss_num;
15779 l_ins_hist_csr.new_in_transit_order_line_id := p_instance_rec.in_transit_order_line_id;
15780 END IF;
15781 --
15782 IF ( l_ins_hist_csr.old_oe_agreement_id IS NULL
15783 AND l_ins_hist_csr.new_oe_agreement_id IS NULL ) THEN
15784 IF ( p_instance_rec.last_oe_agreement_id = l_curr_instance_rec.last_oe_agreement_id )
15785 OR ( p_instance_rec.last_oe_agreement_id = fnd_api.g_miss_num ) THEN
15786 l_ins_hist_csr.old_oe_agreement_id := NULL;
15787 l_ins_hist_csr.new_oe_agreement_id := NULL;
15788 ELSE
15789 l_ins_hist_csr.old_oe_agreement_id := fnd_api.g_miss_num;
15790 l_ins_hist_csr.new_oe_agreement_id := p_instance_rec.last_oe_agreement_id;
15791 END IF;
15792 ELSE
15793 l_ins_hist_csr.old_oe_agreement_id := fnd_api.g_miss_num;
15794 l_ins_hist_csr.new_oe_agreement_id := p_instance_rec.last_oe_agreement_id;
15795 END IF;
15796 --
15797 IF ( l_ins_hist_csr.old_LAST_OE_ORDER_LINE_ID IS NULL
15798 AND l_ins_hist_csr.new_LAST_OE_ORDER_LINE_ID IS NULL ) THEN
15799 IF ( p_instance_rec.LAST_OE_ORDER_LINE_ID = l_curr_instance_rec.LAST_OE_ORDER_LINE_ID )
15800 OR ( p_instance_rec.LAST_OE_ORDER_LINE_ID = fnd_api.g_miss_num ) THEN
15801 l_ins_hist_csr.old_LAST_OE_ORDER_LINE_ID := NULL;
15802 l_ins_hist_csr.new_LAST_OE_ORDER_LINE_ID := NULL;
15803 ELSE
15804 l_ins_hist_csr.old_LAST_OE_ORDER_LINE_ID := fnd_api.g_miss_num;
15805 l_ins_hist_csr.new_LAST_OE_ORDER_LINE_ID := p_instance_rec.LAST_OE_ORDER_LINE_ID;
15806 END IF;
15807 ELSE
15808 l_ins_hist_csr.old_LAST_OE_ORDER_LINE_ID := fnd_api.g_miss_num;
15809 l_ins_hist_csr.new_LAST_OE_ORDER_LINE_ID := p_instance_rec.LAST_OE_ORDER_LINE_ID;
15810 END IF;
15811 --
15812 IF ( l_ins_hist_csr.old_LAST_OE_RMA_LINE_ID IS NULL
15813 AND l_ins_hist_csr.new_LAST_OE_RMA_LINE_ID IS NULL ) THEN
15814 IF ( p_instance_rec.LAST_OE_RMA_LINE_ID = l_curr_instance_rec.LAST_OE_RMA_LINE_ID )
15815 OR ( p_instance_rec.LAST_OE_RMA_LINE_ID = fnd_api.g_miss_num ) THEN
15816 l_ins_hist_csr.old_LAST_OE_RMA_LINE_ID := NULL;
15817 l_ins_hist_csr.new_LAST_OE_RMA_LINE_ID := NULL;
15818 ELSE
15819 l_ins_hist_csr.old_LAST_OE_RMA_LINE_ID := fnd_api.g_miss_num;
15820 l_ins_hist_csr.new_LAST_OE_RMA_LINE_ID := p_instance_rec.LAST_OE_RMA_LINE_ID;
15821 END IF;
15822 ELSE
15823 l_ins_hist_csr.old_LAST_OE_RMA_LINE_ID := fnd_api.g_miss_num;
15824 l_ins_hist_csr.new_LAST_OE_RMA_LINE_ID := p_instance_rec.LAST_OE_RMA_LINE_ID;
15825 END IF;
15826 --
15827 IF ( l_ins_hist_csr.old_LAST_WIP_JOB_ID IS NULL
15828 AND l_ins_hist_csr.new_LAST_WIP_JOB_ID IS NULL ) THEN
15829 IF ( p_instance_rec.LAST_WIP_JOB_ID = l_curr_instance_rec.LAST_WIP_JOB_ID )
15830 OR ( p_instance_rec.LAST_WIP_JOB_ID = fnd_api.g_miss_num ) THEN
15831 l_ins_hist_csr.old_LAST_WIP_JOB_ID := NULL;
15832 l_ins_hist_csr.new_LAST_WIP_JOB_ID := NULL;
15833 ELSE
15834 l_ins_hist_csr.old_LAST_WIP_JOB_ID := fnd_api.g_miss_num;
15835 l_ins_hist_csr.new_LAST_WIP_JOB_ID := p_instance_rec.LAST_WIP_JOB_ID;
15836 END IF;
15837 ELSE
15838 l_ins_hist_csr.old_LAST_WIP_JOB_ID := fnd_api.g_miss_num;
15839 l_ins_hist_csr.new_LAST_WIP_JOB_ID := p_instance_rec.LAST_WIP_JOB_ID;
15840 END IF;
15841 --
15842 IF ( l_ins_hist_csr.old_LAST_PO_PO_LINE_ID IS NULL
15843 AND l_ins_hist_csr.new_LAST_PO_PO_LINE_ID IS NULL ) THEN
15844 IF ( p_instance_rec.LAST_PO_PO_LINE_ID = l_curr_instance_rec.LAST_PO_PO_LINE_ID )
15845 OR ( p_instance_rec.LAST_PO_PO_LINE_ID = fnd_api.g_miss_num ) THEN
15846 l_ins_hist_csr.old_LAST_PO_PO_LINE_ID := NULL;
15847 l_ins_hist_csr.new_LAST_PO_PO_LINE_ID := NULL;
15848 ELSE
15849 l_ins_hist_csr.old_LAST_PO_PO_LINE_ID := fnd_api.g_miss_num;
15850 l_ins_hist_csr.new_LAST_PO_PO_LINE_ID := p_instance_rec.LAST_PO_PO_LINE_ID;
15851 END IF;
15852 ELSE
15853 l_ins_hist_csr.old_LAST_PO_PO_LINE_ID := fnd_api.g_miss_num;
15854 l_ins_hist_csr.new_LAST_PO_PO_LINE_ID := p_instance_rec.LAST_PO_PO_LINE_ID;
15855 END IF;
15856 --
15857 IF ( l_ins_hist_csr.old_LAST_PA_PROJECT_ID IS NULL
15858 AND l_ins_hist_csr.new_LAST_PA_PROJECT_ID IS NULL ) THEN
15859 IF ( p_instance_rec.LAST_PA_PROJECT_ID = l_curr_instance_rec.LAST_PA_PROJECT_ID )
15860 OR ( p_instance_rec.LAST_PA_PROJECT_ID = fnd_api.g_miss_num ) THEN
15861 l_ins_hist_csr.old_LAST_PA_PROJECT_ID := NULL;
15862 l_ins_hist_csr.new_LAST_PA_PROJECT_ID := NULL;
15863 ELSE
15864 l_ins_hist_csr.old_LAST_PA_PROJECT_ID := fnd_api.g_miss_num;
15865 l_ins_hist_csr.new_LAST_PA_PROJECT_ID := p_instance_rec.LAST_PA_PROJECT_ID;
15866 END IF;
15867 ELSE
15868 l_ins_hist_csr.old_LAST_PA_PROJECT_ID := fnd_api.g_miss_num;
15869 l_ins_hist_csr.new_LAST_PA_PROJECT_ID := p_instance_rec.LAST_PA_PROJECT_ID;
15870 END IF;
15871 --
15872 IF ( l_ins_hist_csr.old_LAST_PA_TASK_ID IS NULL
15873 AND l_ins_hist_csr.new_LAST_PA_TASK_ID IS NULL ) THEN
15874 IF ( p_instance_rec.LAST_PA_TASK_ID = l_curr_instance_rec.LAST_PA_TASK_ID )
15875 OR ( p_instance_rec.LAST_PA_TASK_ID = fnd_api.g_miss_num ) THEN
15876 l_ins_hist_csr.old_LAST_PA_TASK_ID := NULL;
15877 l_ins_hist_csr.new_LAST_PA_TASK_ID := NULL;
15878 ELSE
15879 l_ins_hist_csr.old_LAST_PA_TASK_ID := fnd_api.g_miss_num;
15880 l_ins_hist_csr.new_LAST_PA_TASK_ID := p_instance_rec.LAST_PA_TASK_ID;
15881 END IF;
15882 ELSE
15883 l_ins_hist_csr.old_LAST_PA_TASK_ID := fnd_api.g_miss_num;
15884 l_ins_hist_csr.new_LAST_PA_TASK_ID := p_instance_rec.LAST_PA_TASK_ID;
15885 END IF;
15886 --
15887 IF ( l_ins_hist_csr.old_LAST_TXN_LINE_DETAIL_ID IS NULL
15888 AND l_ins_hist_csr.new_LAST_TXN_LINE_DETAIL_ID IS NULL ) THEN
15889 IF ( p_instance_rec.LAST_TXN_LINE_DETAIL_ID = l_curr_instance_rec.LAST_TXN_LINE_DETAIL_ID )
15890 OR ( p_instance_rec.LAST_TXN_LINE_DETAIL_ID = fnd_api.g_miss_num ) THEN
15891 l_ins_hist_csr.old_LAST_TXN_LINE_DETAIL_ID := NULL;
15892 l_ins_hist_csr.new_LAST_TXN_LINE_DETAIL_ID := NULL;
15893 ELSE
15894 l_ins_hist_csr.old_LAST_TXN_LINE_DETAIL_ID := fnd_api.g_miss_num;
15895 l_ins_hist_csr.new_LAST_TXN_LINE_DETAIL_ID := p_instance_rec.LAST_TXN_LINE_DETAIL_ID;
15896 END IF;
15897 ELSE
15898 l_ins_hist_csr.old_LAST_TXN_LINE_DETAIL_ID := fnd_api.g_miss_num;
15899 l_ins_hist_csr.new_LAST_TXN_LINE_DETAIL_ID := p_instance_rec.LAST_TXN_LINE_DETAIL_ID;
15900 END IF;
15901 --
15902 IF ( l_ins_hist_csr.old_LAST_OE_PO_NUMBER IS NULL
15903 AND l_ins_hist_csr.new_LAST_OE_PO_NUMBER IS NULL ) THEN
15904 IF ( p_instance_rec.LAST_OE_PO_NUMBER = l_curr_instance_rec.LAST_OE_PO_NUMBER )
15905 OR ( p_instance_rec.LAST_OE_PO_NUMBER = fnd_api.g_miss_char ) THEN
15906 l_ins_hist_csr.old_LAST_OE_PO_NUMBER := NULL;
15907 l_ins_hist_csr.new_LAST_OE_PO_NUMBER := NULL;
15908 ELSE
15909 l_ins_hist_csr.old_LAST_OE_PO_NUMBER := fnd_api.g_miss_char;
15910 l_ins_hist_csr.new_LAST_OE_PO_NUMBER := p_instance_rec.LAST_OE_PO_NUMBER;
15911 END IF;
15912 ELSE
15913 l_ins_hist_csr.old_LAST_OE_PO_NUMBER := fnd_api.g_miss_char;
15914 l_ins_hist_csr.new_LAST_OE_PO_NUMBER := p_instance_rec.LAST_OE_PO_NUMBER;
15915 END IF;
15916 --
15917 IF ( l_ins_hist_csr.old_wip_job_id IS NULL
15918 AND l_ins_hist_csr.new_wip_job_id IS NULL ) THEN
15919 IF ( p_instance_rec.wip_job_id = l_curr_instance_rec.wip_job_id )
15920 OR ( p_instance_rec.wip_job_id = fnd_api.g_miss_num ) THEN
15921 l_ins_hist_csr.old_wip_job_id := NULL;
15922 l_ins_hist_csr.new_wip_job_id := NULL;
15923 ELSE
15924 l_ins_hist_csr.old_wip_job_id := fnd_api.g_miss_num;
15925 l_ins_hist_csr.new_wip_job_id := p_instance_rec.wip_job_id;
15926 END IF;
15927 ELSE
15928 l_ins_hist_csr.old_wip_job_id := fnd_api.g_miss_num;
15929 l_ins_hist_csr.new_wip_job_id := p_instance_rec.wip_job_id;
15930 END IF;
15931 --
15932 IF ( l_ins_hist_csr.old_po_order_line_id IS NULL
15933 AND l_ins_hist_csr.new_po_order_line_id IS NULL ) THEN
15934 IF ( p_instance_rec.po_order_line_id = l_curr_instance_rec.po_order_line_id )
15935 OR ( p_instance_rec.po_order_line_id = fnd_api.g_miss_num ) THEN
15936 l_ins_hist_csr.old_po_order_line_id := NULL;
15937 l_ins_hist_csr.new_po_order_line_id := NULL;
15938 ELSE
15939 l_ins_hist_csr.old_po_order_line_id := fnd_api.g_miss_num;
15940 l_ins_hist_csr.new_po_order_line_id := p_instance_rec.po_order_line_id;
15941 END IF;
15942 ELSE
15943 l_ins_hist_csr.old_po_order_line_id := fnd_api.g_miss_num;
15944 l_ins_hist_csr.new_po_order_line_id := p_instance_rec.po_order_line_id;
15945 END IF;
15946 --
15947 IF ( l_ins_hist_csr.old_completeness_flag IS NULL
15948 AND l_ins_hist_csr.new_completeness_flag IS NULL ) THEN
15949 IF ( p_instance_rec.completeness_flag = l_curr_instance_rec.completeness_flag )
15950 OR ( p_instance_rec.completeness_flag = fnd_api.g_miss_char ) THEN
15951 l_ins_hist_csr.old_completeness_flag := NULL;
15952 l_ins_hist_csr.new_completeness_flag := NULL;
15953 ELSE
15954 l_ins_hist_csr.old_completeness_flag := fnd_api.g_miss_char;
15955 l_ins_hist_csr.new_completeness_flag := p_instance_rec.completeness_flag;
15956 END IF;
15957 ELSE
15958 l_ins_hist_csr.old_completeness_flag := fnd_api.g_miss_char;
15959 l_ins_hist_csr.new_completeness_flag := p_instance_rec.completeness_flag;
15960 END IF;
15961 --
15962 IF ( l_ins_hist_csr.old_context IS NULL
15963 AND l_ins_hist_csr.new_context IS NULL ) THEN
15964 IF ( p_instance_rec.context = l_curr_instance_rec.context )
15965 OR ( p_instance_rec.context = fnd_api.g_miss_char ) THEN
15966 l_ins_hist_csr.old_context := NULL;
15967 l_ins_hist_csr.new_context := NULL;
15968 ELSE
15969 l_ins_hist_csr.old_context := fnd_api.g_miss_char;
15970 l_ins_hist_csr.new_context := p_instance_rec.context;
15971 END IF;
15972 ELSE
15973 l_ins_hist_csr.old_context := fnd_api.g_miss_char;
15974 l_ins_hist_csr.new_context := p_instance_rec.context;
15975 END IF;
15976 --
15977 IF ( l_ins_hist_csr.old_attribute1 IS NULL
15978 AND l_ins_hist_csr.new_attribute1 IS NULL ) THEN
15979 IF ( p_instance_rec.attribute1 = l_curr_instance_rec.attribute1 )
15980 OR ( p_instance_rec.attribute1 = fnd_api.g_miss_char ) THEN
15981 l_ins_hist_csr.old_attribute1 := NULL;
15982 l_ins_hist_csr.new_attribute1 := NULL;
15983 ELSE
15984 l_ins_hist_csr.old_attribute1 := fnd_api.g_miss_char;
15985 l_ins_hist_csr.new_attribute1 := p_instance_rec.attribute1;
15986 END IF;
15987 ELSE
15988 l_ins_hist_csr.old_attribute1 := fnd_api.g_miss_char;
15989 l_ins_hist_csr.new_attribute1 := p_instance_rec.attribute1;
15990 END IF;
15991 --
15992 IF ( l_ins_hist_csr.old_attribute2 IS NULL
15993 AND l_ins_hist_csr.new_attribute2 IS NULL ) THEN
15994 IF ( p_instance_rec.attribute2 = l_curr_instance_rec.attribute2 )
15995 OR ( p_instance_rec.attribute2 = fnd_api.g_miss_char ) THEN
15996 l_ins_hist_csr.old_attribute2 := NULL;
15997 l_ins_hist_csr.new_attribute2 := NULL;
15998 ELSE
15999 l_ins_hist_csr.old_attribute2 := fnd_api.g_miss_char;
16000 l_ins_hist_csr.new_attribute2 := p_instance_rec.attribute2;
16001 END IF;
16002 ELSE
16003 l_ins_hist_csr.old_attribute2 := fnd_api.g_miss_char;
16004 l_ins_hist_csr.new_attribute2 := p_instance_rec.attribute2;
16005 END IF;
16006 --
16007 IF ( l_ins_hist_csr.old_attribute3 IS NULL
16008 AND l_ins_hist_csr.new_attribute3 IS NULL ) THEN
16009 IF ( p_instance_rec.attribute3 = l_curr_instance_rec.attribute3 )
16010 OR ( p_instance_rec.attribute3 = fnd_api.g_miss_char ) THEN
16011 l_ins_hist_csr.old_attribute3 := NULL;
16012 l_ins_hist_csr.new_attribute3 := NULL;
16013 ELSE
16014 l_ins_hist_csr.old_attribute3 := fnd_api.g_miss_char;
16015 l_ins_hist_csr.new_attribute3 := p_instance_rec.attribute3;
16016 END IF;
16017 ELSE
16018 l_ins_hist_csr.old_attribute3 := fnd_api.g_miss_char;
16019 l_ins_hist_csr.new_attribute3 := p_instance_rec.attribute3;
16020 END IF;
16021 --
16022 IF ( l_ins_hist_csr.old_attribute4 IS NULL
16023 AND l_ins_hist_csr.new_attribute4 IS NULL ) THEN
16024 IF ( p_instance_rec.attribute4 = l_curr_instance_rec.attribute4 )
16025 OR ( p_instance_rec.attribute4 = fnd_api.g_miss_char ) THEN
16026 l_ins_hist_csr.old_attribute4 := NULL;
16027 l_ins_hist_csr.new_attribute4 := NULL;
16028 ELSE
16029 l_ins_hist_csr.old_attribute4 := fnd_api.g_miss_char;
16030 l_ins_hist_csr.new_attribute4 := p_instance_rec.attribute4;
16031 END IF;
16032 ELSE
16033 l_ins_hist_csr.old_attribute4 := fnd_api.g_miss_char;
16034 l_ins_hist_csr.new_attribute4 := p_instance_rec.attribute4;
16035 END IF;
16036 --
16037 IF ( l_ins_hist_csr.old_attribute5 IS NULL
16038 AND l_ins_hist_csr.new_attribute5 IS NULL ) THEN
16039 IF ( p_instance_rec.attribute5 = l_curr_instance_rec.attribute5 )
16040 OR ( p_instance_rec.attribute5 = fnd_api.g_miss_char ) THEN
16041 l_ins_hist_csr.old_attribute5 := NULL;
16042 l_ins_hist_csr.new_attribute5 := NULL;
16043 ELSE
16044 l_ins_hist_csr.old_attribute5 := fnd_api.g_miss_char;
16045 l_ins_hist_csr.new_attribute5 := p_instance_rec.attribute5;
16046 END IF;
16047 ELSE
16048 l_ins_hist_csr.old_attribute5 := fnd_api.g_miss_char;
16049 l_ins_hist_csr.new_attribute5 := p_instance_rec.attribute5;
16050 END IF;
16051 --
16052 IF ( l_ins_hist_csr.old_attribute6 IS NULL
16053 AND l_ins_hist_csr.new_attribute6 IS NULL ) THEN
16054 IF ( p_instance_rec.attribute6 = l_curr_instance_rec.attribute6 )
16055 OR ( p_instance_rec.attribute6 = fnd_api.g_miss_char ) THEN
16056 l_ins_hist_csr.old_attribute6 := NULL;
16057 l_ins_hist_csr.new_attribute6 := NULL;
16058 ELSE
16059 l_ins_hist_csr.old_attribute6 := fnd_api.g_miss_char;
16060 l_ins_hist_csr.new_attribute6 := p_instance_rec.attribute6;
16061 END IF;
16062 ELSE
16063 l_ins_hist_csr.old_attribute6 := fnd_api.g_miss_char;
16064 l_ins_hist_csr.new_attribute6 := p_instance_rec.attribute6;
16065 END IF;
16066 --
16067 IF ( l_ins_hist_csr.old_attribute7 IS NULL
16068 AND l_ins_hist_csr.new_attribute7 IS NULL ) THEN
16069 IF ( p_instance_rec.attribute7 = l_curr_instance_rec.attribute7 )
16070 OR ( p_instance_rec.attribute7 = fnd_api.g_miss_char ) THEN
16071 l_ins_hist_csr.old_attribute7 := NULL;
16072 l_ins_hist_csr.new_attribute7 := NULL;
16073 ELSE
16074 l_ins_hist_csr.old_attribute7 := fnd_api.g_miss_char;
16075 l_ins_hist_csr.new_attribute7 := p_instance_rec.attribute7;
16076 END IF;
16077 ELSE
16078 l_ins_hist_csr.old_attribute7 := fnd_api.g_miss_char;
16079 l_ins_hist_csr.new_attribute7 := p_instance_rec.attribute7;
16080 END IF;
16081 --
16082 IF ( l_ins_hist_csr.old_attribute8 IS NULL
16083 AND l_ins_hist_csr.new_attribute8 IS NULL ) THEN
16084 IF ( p_instance_rec.attribute8 = l_curr_instance_rec.attribute8 )
16085 OR ( p_instance_rec.attribute8 = fnd_api.g_miss_char ) THEN
16086 l_ins_hist_csr.old_attribute8 := NULL;
16087 l_ins_hist_csr.new_attribute8 := NULL;
16088 ELSE
16089 l_ins_hist_csr.old_attribute8 := fnd_api.g_miss_char;
16090 l_ins_hist_csr.new_attribute8 := p_instance_rec.attribute8;
16091 END IF;
16092 ELSE
16093 l_ins_hist_csr.old_attribute8 := fnd_api.g_miss_char;
16094 l_ins_hist_csr.new_attribute8 := p_instance_rec.attribute8;
16095 END IF;
16096 --
16097 IF ( l_ins_hist_csr.old_attribute9 IS NULL
16098 AND l_ins_hist_csr.new_attribute9 IS NULL ) THEN
16099 IF ( p_instance_rec.attribute9 = l_curr_instance_rec.attribute9 )
16100 OR ( p_instance_rec.attribute9 = fnd_api.g_miss_char ) THEN
16101 l_ins_hist_csr.old_attribute9 := NULL;
16102 l_ins_hist_csr.new_attribute9 := NULL;
16103 ELSE
16104 l_ins_hist_csr.old_attribute9 := fnd_api.g_miss_char;
16105 l_ins_hist_csr.new_attribute9 := p_instance_rec.attribute9;
16106 END IF;
16107 ELSE
16108 l_ins_hist_csr.old_attribute9 := fnd_api.g_miss_char;
16109 l_ins_hist_csr.new_attribute9 := p_instance_rec.attribute9;
16110 END IF;
16111 --
16112 IF ( l_ins_hist_csr.old_attribute10 IS NULL
16113 AND l_ins_hist_csr.new_attribute10 IS NULL ) THEN
16114 IF ( p_instance_rec.attribute10 = l_curr_instance_rec.attribute10 )
16115 OR ( p_instance_rec.attribute10 = fnd_api.g_miss_char ) THEN
16116 l_ins_hist_csr.old_attribute10 := NULL;
16117 l_ins_hist_csr.new_attribute10 := NULL;
16118 ELSE
16119 l_ins_hist_csr.old_attribute10 := fnd_api.g_miss_char;
16120 l_ins_hist_csr.new_attribute10 := p_instance_rec.attribute10;
16121 END IF;
16122 ELSE
16123 l_ins_hist_csr.old_attribute10 := fnd_api.g_miss_char;
16124 l_ins_hist_csr.new_attribute10 := p_instance_rec.attribute10;
16125 END IF;
16126 --
16127 IF ( l_ins_hist_csr.old_attribute11 IS NULL
16128 AND l_ins_hist_csr.new_attribute11 IS NULL ) THEN
16129 IF ( p_instance_rec.attribute11 = l_curr_instance_rec.attribute11 )
16130 OR ( p_instance_rec.attribute11 = fnd_api.g_miss_char ) THEN
16131 l_ins_hist_csr.old_attribute11 := NULL;
16132 l_ins_hist_csr.new_attribute11 := NULL;
16133 ELSE
16134 l_ins_hist_csr.old_attribute11 := fnd_api.g_miss_char;
16135 l_ins_hist_csr.new_attribute11 := p_instance_rec.attribute11;
16136 END IF;
16137 ELSE
16138 l_ins_hist_csr.old_attribute11 := fnd_api.g_miss_char;
16139 l_ins_hist_csr.new_attribute11 := p_instance_rec.attribute11;
16140 END IF;
16141 --
16142 IF ( l_ins_hist_csr.old_attribute12 IS NULL
16143 AND l_ins_hist_csr.new_attribute12 IS NULL ) THEN
16144 IF ( p_instance_rec.attribute12 = l_curr_instance_rec.attribute12 )
16145 OR ( p_instance_rec.attribute12 = fnd_api.g_miss_char ) THEN
16146 l_ins_hist_csr.old_attribute12 := NULL;
16147 l_ins_hist_csr.new_attribute12 := NULL;
16148 ELSE
16149 l_ins_hist_csr.old_attribute12 := fnd_api.g_miss_char;
16150 l_ins_hist_csr.new_attribute12 := p_instance_rec.attribute12;
16151 END IF;
16152 ELSE
16153 l_ins_hist_csr.old_attribute12 := fnd_api.g_miss_char;
16154 l_ins_hist_csr.new_attribute12 := p_instance_rec.attribute12;
16155 END IF;
16156 --
16157 IF ( l_ins_hist_csr.old_attribute13 IS NULL
16158 AND l_ins_hist_csr.new_attribute13 IS NULL ) THEN
16159 IF ( p_instance_rec.attribute13 = l_curr_instance_rec.attribute13 )
16160 OR ( p_instance_rec.attribute13 = fnd_api.g_miss_char ) THEN
16161 l_ins_hist_csr.old_attribute13 := NULL;
16162 l_ins_hist_csr.new_attribute13 := NULL;
16163 ELSE
16164 l_ins_hist_csr.old_attribute13 := fnd_api.g_miss_char;
16165 l_ins_hist_csr.new_attribute13 := p_instance_rec.attribute13;
16166 END IF;
16167 ELSE
16168 l_ins_hist_csr.old_attribute13 := fnd_api.g_miss_char;
16169 l_ins_hist_csr.new_attribute13 := p_instance_rec.attribute13;
16170 END IF;
16171 --
16172 IF ( l_ins_hist_csr.old_attribute14 IS NULL
16173 AND l_ins_hist_csr.new_attribute14 IS NULL ) THEN
16174 IF ( p_instance_rec.attribute14 = l_curr_instance_rec.attribute14 )
16175 OR ( p_instance_rec.attribute14 = fnd_api.g_miss_char ) THEN
16176 l_ins_hist_csr.old_attribute14 := NULL;
16177 l_ins_hist_csr.new_attribute14 := NULL;
16178 ELSE
16179 l_ins_hist_csr.old_attribute14 := fnd_api.g_miss_char;
16180 l_ins_hist_csr.new_attribute14 := p_instance_rec.attribute14;
16181 END IF;
16182 ELSE
16183 l_ins_hist_csr.old_attribute14 := fnd_api.g_miss_char;
16184 l_ins_hist_csr.new_attribute14 := p_instance_rec.attribute14;
16185 END IF;
16186 --
16187 IF ( l_ins_hist_csr.old_attribute15 IS NULL
16188 AND l_ins_hist_csr.new_attribute15 IS NULL ) THEN
16189 IF ( p_instance_rec.attribute15 = l_curr_instance_rec.attribute15 )
16190 OR ( p_instance_rec.attribute15 = fnd_api.g_miss_char ) THEN
16191 l_ins_hist_csr.old_attribute15 := NULL;
16192 l_ins_hist_csr.new_attribute15 := NULL;
16193 ELSE
16194 l_ins_hist_csr.old_attribute15 := fnd_api.g_miss_char;
16195 l_ins_hist_csr.new_attribute15 := p_instance_rec.attribute15;
16196 END IF;
16197 ELSE
16198 l_ins_hist_csr.old_attribute15 := fnd_api.g_miss_char;
16199 l_ins_hist_csr.new_attribute15 := p_instance_rec.attribute15;
16200 END IF;
16201 --
16202 IF ( l_ins_hist_csr.old_inst_loc_type_code IS NULL
16203 AND l_ins_hist_csr.new_inst_loc_type_code IS NULL ) THEN
16204 IF ( p_instance_rec.install_location_type_code = l_curr_instance_rec.install_location_type_code )
16205 OR ( p_instance_rec.install_location_type_code = fnd_api.g_miss_char ) THEN
16206 l_ins_hist_csr.old_inst_loc_type_code := NULL;
16207 l_ins_hist_csr.new_inst_loc_type_code := NULL;
16208 ELSE
16209 l_ins_hist_csr.old_inst_loc_type_code := l_curr_instance_rec.install_location_type_code; --fnd_api.g_miss_char;
16210 l_ins_hist_csr.new_inst_loc_type_code := p_instance_rec.install_location_type_code;
16211 END IF;
16212 ELSE
16213 l_ins_hist_csr.old_inst_loc_type_code := fnd_api.g_miss_char;
16214 l_ins_hist_csr.new_inst_loc_type_code := p_instance_rec.install_location_type_code;
16215 END IF;
16216 --
16217 IF ( l_ins_hist_csr.old_inst_loc_id IS NULL
16218 AND l_ins_hist_csr.new_inst_loc_id IS NULL ) THEN
16219 IF ( p_instance_rec.install_location_id = l_curr_instance_rec.install_location_id )
16220 OR ( p_instance_rec.install_location_id = fnd_api.g_miss_num ) THEN
16221 l_ins_hist_csr.old_inst_loc_id := NULL;
16222 l_ins_hist_csr.new_inst_loc_id := NULL;
16223 ELSE
16224 l_ins_hist_csr.old_inst_loc_id := l_curr_instance_rec.install_location_id; --fnd_api.g_miss_num;
16225 l_ins_hist_csr.new_inst_loc_id := p_instance_rec.install_location_id;
16226 END IF;
16227 ELSE
16228 l_ins_hist_csr.old_inst_loc_id := fnd_api.g_miss_num;
16229 l_ins_hist_csr.new_inst_loc_id := p_instance_rec.install_location_id;
16230 END IF;
16231 --
16232 IF ( l_ins_hist_csr.old_inst_usage_code IS NULL
16233 AND l_ins_hist_csr.new_inst_usage_code IS NULL ) THEN
16234 IF ( p_instance_rec.instance_usage_code = l_curr_instance_rec.instance_usage_code )
16235 OR ( p_instance_rec.instance_usage_code = fnd_api.g_miss_char ) THEN
16236 l_ins_hist_csr.old_inst_usage_code := NULL;
16237 l_ins_hist_csr.new_inst_usage_code := NULL;
16238 ELSE
16239 l_ins_hist_csr.old_inst_usage_code := fnd_api.g_miss_char;
16240 l_ins_hist_csr.new_inst_usage_code := p_instance_rec.instance_usage_code;
16241 END IF;
16242 ELSE
16243 l_ins_hist_csr.old_inst_usage_code := fnd_api.g_miss_char;
16244 l_ins_hist_csr.new_inst_usage_code := p_instance_rec.instance_usage_code;
16245 END IF;
16246 --
16247 IF ( l_ins_hist_csr.old_last_vld_organization_id IS NULL
16248 AND l_ins_hist_csr.new_last_vld_organization_id IS NULL ) THEN
16249 IF ( p_instance_rec.vld_organization_id = l_curr_instance_rec.last_vld_organization_id )
16250 OR ( p_instance_rec.vld_organization_id = fnd_api.g_miss_num ) THEN
16251 l_ins_hist_csr.old_last_vld_organization_id := NULL;
16252 l_ins_hist_csr.new_last_vld_organization_id := NULL;
16253 ELSE
16254 l_ins_hist_csr.old_last_vld_organization_id := fnd_api.g_miss_num;
16255 l_ins_hist_csr.new_last_vld_organization_id := p_instance_rec.vld_organization_id;
16256 END IF;
16257 ELSE
16258 l_ins_hist_csr.old_last_vld_organization_id := fnd_api.g_miss_num;
16259 l_ins_hist_csr.new_last_vld_organization_id := p_instance_rec.vld_organization_id;
16260 END IF;
16261 IF ( l_ins_hist_csr.old_config_inst_rev_num IS NULL
16262 AND l_ins_hist_csr.new_config_inst_rev_num IS NULL ) THEN
16263 IF ( p_instance_rec.config_inst_rev_num = l_curr_instance_rec.config_inst_rev_num )
16264 OR ( p_instance_rec.config_inst_rev_num = fnd_api.g_miss_num ) THEN
16265 l_ins_hist_csr.old_config_inst_rev_num := NULL;
16266 l_ins_hist_csr.new_config_inst_rev_num := NULL;
16267 ELSE
16268 l_ins_hist_csr.old_config_inst_rev_num := fnd_api.g_miss_num;
16269 l_ins_hist_csr.new_config_inst_rev_num := p_instance_rec.config_inst_rev_num;
16270 END IF;
16271 ELSE
16272 l_ins_hist_csr.old_config_inst_rev_num := fnd_api.g_miss_num;
16273 l_ins_hist_csr.new_config_inst_rev_num := p_instance_rec.config_inst_rev_num;
16274 END IF;
16275 --
16276 IF ( l_ins_hist_csr.old_config_valid_status IS NULL
16277 AND l_ins_hist_csr.new_config_valid_status IS NULL ) THEN
16278 IF ( p_instance_rec.config_valid_status = l_curr_instance_rec.config_valid_status )
16279 OR ( p_instance_rec.config_valid_status = fnd_api.g_miss_char ) THEN
16280 l_ins_hist_csr.old_config_valid_status := NULL;
16281 l_ins_hist_csr.new_config_valid_status := NULL;
16282 ELSE
16283 l_ins_hist_csr.old_config_valid_status := fnd_api.g_miss_char;
16284 l_ins_hist_csr.new_config_valid_status := p_instance_rec.config_valid_status;
16285 END IF;
16286 ELSE
16287 l_ins_hist_csr.old_config_valid_status := fnd_api.g_miss_char;
16288 l_ins_hist_csr.new_config_valid_status := p_instance_rec.config_valid_status;
16289 END IF;
16290 --
16291 IF ( l_ins_hist_csr.old_instance_description IS NULL
16292 AND l_ins_hist_csr.new_instance_description IS NULL ) THEN
16293 IF ( p_instance_rec.instance_description = l_curr_instance_rec.instance_description )
16294 OR ( p_instance_rec.instance_description = fnd_api.g_miss_char ) THEN
16295 l_ins_hist_csr.old_instance_description := NULL;
16296 l_ins_hist_csr.new_instance_description := NULL;
16297 ELSE
16298 l_ins_hist_csr.old_instance_description := fnd_api.g_miss_char;
16299 l_ins_hist_csr.new_instance_description := p_instance_rec.instance_description;
16300 END IF;
16301 ELSE
16302 l_ins_hist_csr.old_instance_description := fnd_api.g_miss_char;
16303 l_ins_hist_csr.new_instance_description := p_instance_rec.instance_description;
16304 END IF;
16305 --
16306 -- added for bug 2671179
16307
16308
16309 IF ( l_ins_hist_csr.old_install_date IS NULL
16310 AND l_ins_hist_csr.new_install_date IS NULL ) THEN
16311 IF ( p_instance_rec.install_date = l_curr_instance_rec.install_date )
16312 OR ( p_instance_rec.install_date = fnd_api.g_miss_date ) THEN
16313 l_ins_hist_csr.old_install_date := fnd_api.g_miss_date; --jan15
16314 l_ins_hist_csr.new_install_date := fnd_api.g_miss_date; --jan15
16315 ELSE
16316 l_ins_hist_csr.old_install_date := fnd_api.g_miss_date;
16317 l_ins_hist_csr.new_install_date := p_instance_rec.install_date;
16318 END IF;
16319 ELSE
16320 l_ins_hist_csr.old_install_date := fnd_api.g_miss_date;
16321 l_ins_hist_csr.new_install_date := p_instance_rec.install_date;
16322 END IF;
16323
16324
16325 IF ( l_ins_hist_csr.old_return_by_date IS NULL
16326 AND l_ins_hist_csr.new_return_by_date IS NULL ) THEN
16327 IF ( p_instance_rec.return_by_date = l_curr_instance_rec.return_by_date)
16328 OR ( p_instance_rec.return_by_date = fnd_api.g_miss_date ) THEN
16329 l_ins_hist_csr.old_return_by_date := fnd_api.g_miss_date; --jan15
16330 l_ins_hist_csr.new_return_by_date := fnd_api.g_miss_date; --jan15
16331 ELSE
16332 l_ins_hist_csr.old_return_by_date := fnd_api.g_miss_date;
16333 l_ins_hist_csr.new_return_by_date := p_instance_rec.return_by_date;
16334 END IF;
16335 ELSE
16336 l_ins_hist_csr.old_return_by_date := fnd_api.g_miss_date;
16337 l_ins_hist_csr.new_return_by_date := p_instance_rec.return_by_date;
16338 END IF;
16339
16340
16341 IF ( l_ins_hist_csr.old_actual_return_date IS NULL
16342 AND l_ins_hist_csr.new_actual_return_date IS NULL ) THEN
16343 IF ( p_instance_rec.actual_return_date = l_curr_instance_rec.actual_return_date)
16344 OR ( p_instance_rec.actual_return_date = fnd_api.g_miss_date ) THEN
16345 l_ins_hist_csr.old_actual_return_date := fnd_api.g_miss_date; --jan15
16346 l_ins_hist_csr.new_actual_return_date := fnd_api.g_miss_date; --jan15
16347 ELSE
16348 l_ins_hist_csr.old_actual_return_date := fnd_api.g_miss_date;
16349 l_ins_hist_csr.new_actual_return_date := p_instance_rec.actual_return_date;
16350 END IF;
16351 ELSE
16352 l_ins_hist_csr.old_actual_return_date := fnd_api.g_miss_date;
16353 l_ins_hist_csr.new_actual_return_date := p_instance_rec.actual_return_date;
16354 END IF;
16355 --start of code for eam integration--
16356 --
16357 IF ( l_ins_hist_csr.old_network_asset_flag IS NULL
16358 AND l_ins_hist_csr.new_network_asset_flag IS NULL ) THEN
16359 IF ( p_instance_rec.network_asset_flag = l_curr_instance_rec.network_asset_flag )
16360 OR ( p_instance_rec.network_asset_flag = fnd_api.g_miss_char ) THEN
16361 l_ins_hist_csr.old_network_asset_flag := NULL;
16362 l_ins_hist_csr.new_network_asset_flag := NULL;
16363 ELSE
16364 l_ins_hist_csr.old_network_asset_flag := fnd_api.g_miss_char;
16365 l_ins_hist_csr.new_network_asset_flag := p_instance_rec.network_asset_flag;
16366 END IF;
16367 ELSE
16368 l_ins_hist_csr.old_network_asset_flag := fnd_api.g_miss_char;
16369 l_ins_hist_csr.new_network_asset_flag := p_instance_rec.network_asset_flag;
16370 END IF;
16371 --
16372 IF ( l_ins_hist_csr.old_maintainable_flag IS NULL
16373 AND l_ins_hist_csr.new_maintainable_flag IS NULL ) THEN
16374 IF ( p_instance_rec.maintainable_flag = l_curr_instance_rec.maintainable_flag )
16375 OR ( p_instance_rec.maintainable_flag = fnd_api.g_miss_char ) THEN
16376 l_ins_hist_csr.old_maintainable_flag := NULL;
16377 l_ins_hist_csr.new_maintainable_flag := NULL;
16378 ELSE
16379 l_ins_hist_csr.old_maintainable_flag := fnd_api.g_miss_char;
16380 l_ins_hist_csr.new_maintainable_flag := p_instance_rec.maintainable_flag;
16381 END IF;
16382 ELSE
16383 l_ins_hist_csr.old_maintainable_flag := fnd_api.g_miss_char;
16384 l_ins_hist_csr.new_maintainable_flag := p_instance_rec.maintainable_flag;
16385 END IF;
16386 --
16387 IF ( l_ins_hist_csr.old_pn_location_id IS NULL
16388 AND l_ins_hist_csr.new_pn_location_id IS NULL ) THEN
16389 IF ( p_instance_rec.pn_location_id = l_curr_instance_rec.pn_location_id )
16390 OR ( p_instance_rec.pn_location_id = fnd_api.g_miss_num ) THEN
16391 l_ins_hist_csr.old_pn_location_id := NULL;
16392 l_ins_hist_csr.new_pn_location_id := NULL;
16393 ELSE
16394 l_ins_hist_csr.old_pn_location_id := fnd_api.g_miss_num;
16395 l_ins_hist_csr.new_pn_location_id := p_instance_rec.pn_location_id;
16396 END IF;
16397 ELSE
16398 l_ins_hist_csr.old_pn_location_id := fnd_api.g_miss_num;
16399 l_ins_hist_csr.new_pn_location_id := p_instance_rec.pn_location_id;
16400 END IF;
16401 --
16402 IF ( l_ins_hist_csr.old_asset_criticality_code IS NULL
16403 AND l_ins_hist_csr.new_asset_criticality_code IS NULL ) THEN
16404 IF ( p_instance_rec.asset_criticality_code = l_curr_instance_rec.asset_criticality_code )
16405 OR ( p_instance_rec.asset_criticality_code = fnd_api.g_miss_char ) THEN
16406 l_ins_hist_csr.old_asset_criticality_code := NULL;
16407 l_ins_hist_csr.new_asset_criticality_code := NULL;
16408 ELSE
16409 l_ins_hist_csr.old_asset_criticality_code := fnd_api.g_miss_char;
16410 l_ins_hist_csr.new_asset_criticality_code := p_instance_rec.asset_criticality_code;
16411 END IF;
16412 ELSE
16413 l_ins_hist_csr.old_asset_criticality_code := fnd_api.g_miss_char;
16414 l_ins_hist_csr.new_asset_criticality_code := p_instance_rec.asset_criticality_code;
16415 END IF;
16416 --
16417 IF ( l_ins_hist_csr.old_category_id IS NULL
16418 AND l_ins_hist_csr.new_category_id IS NULL ) THEN
16419 IF ( p_instance_rec.category_id = l_curr_instance_rec.category_id )
16420 OR ( p_instance_rec.category_id = fnd_api.g_miss_num ) THEN
16421 l_ins_hist_csr.old_category_id := NULL;
16422 l_ins_hist_csr.new_category_id := NULL;
16423 ELSE
16424 l_ins_hist_csr.old_category_id := fnd_api.g_miss_num;
16425 l_ins_hist_csr.new_category_id := p_instance_rec.category_id;
16426 END IF;
16427 ELSE
16428 l_ins_hist_csr.old_category_id := fnd_api.g_miss_num;
16429 l_ins_hist_csr.new_category_id := p_instance_rec.category_id;
16430 END IF;
16431 --
16432 IF ( l_ins_hist_csr.old_equipment_gen_object_id IS NULL
16433 AND l_ins_hist_csr.new_equipment_gen_object_id IS NULL ) THEN
16434 IF ( p_instance_rec.equipment_gen_object_id = l_curr_instance_rec.equipment_gen_object_id )
16435 OR ( p_instance_rec.equipment_gen_object_id = fnd_api.g_miss_num ) THEN
16436 l_ins_hist_csr.old_equipment_gen_object_id := NULL;
16437 l_ins_hist_csr.new_equipment_gen_object_id := NULL;
16438 ELSE
16439 l_ins_hist_csr.old_equipment_gen_object_id := fnd_api.g_miss_num;
16440 l_ins_hist_csr.new_equipment_gen_object_id := p_instance_rec.equipment_gen_object_id;
16441 END IF;
16442 ELSE
16443 l_ins_hist_csr.old_equipment_gen_object_id := fnd_api.g_miss_num;
16444 l_ins_hist_csr.new_equipment_gen_object_id := p_instance_rec.equipment_gen_object_id;
16445 END IF;
16446 --
16447 IF ( l_ins_hist_csr.old_instantiation_flag IS NULL
16448 AND l_ins_hist_csr.new_instantiation_flag IS NULL ) THEN
16449 IF ( p_instance_rec.instantiation_flag = l_curr_instance_rec.instantiation_flag )
16450 OR ( p_instance_rec.instantiation_flag = fnd_api.g_miss_char ) THEN
16451 l_ins_hist_csr.old_instantiation_flag := NULL;
16452 l_ins_hist_csr.new_instantiation_flag := NULL;
16453 ELSE
16454 l_ins_hist_csr.old_instantiation_flag := fnd_api.g_miss_char;
16455 l_ins_hist_csr.new_instantiation_flag := p_instance_rec.instantiation_flag;
16456 END IF;
16457 ELSE
16458 l_ins_hist_csr.old_instantiation_flag := fnd_api.g_miss_char;
16459 l_ins_hist_csr.new_instantiation_flag := p_instance_rec.instantiation_flag;
16460 END IF;
16461 --
16462 IF ( l_ins_hist_csr.old_linear_location_id IS NULL
16463 AND l_ins_hist_csr.new_linear_location_id IS NULL ) THEN
16464 IF ( p_instance_rec.linear_location_id = l_curr_instance_rec.linear_location_id )
16465 OR ( p_instance_rec.linear_location_id = fnd_api.g_miss_num ) THEN
16466 l_ins_hist_csr.old_linear_location_id := NULL;
16467 l_ins_hist_csr.new_linear_location_id := NULL;
16468 ELSE
16469 l_ins_hist_csr.old_linear_location_id := fnd_api.g_miss_num;
16470 l_ins_hist_csr.new_linear_location_id := p_instance_rec.linear_location_id;
16471 END IF;
16472 ELSE
16473 l_ins_hist_csr.old_linear_location_id := fnd_api.g_miss_num;
16474 l_ins_hist_csr.new_linear_location_id := p_instance_rec.linear_location_id;
16475 END IF;
16476
16477 IF ( l_ins_hist_csr.old_operational_log_flag IS NULL
16478 AND l_ins_hist_csr.new_operational_log_flag IS NULL ) THEN
16479 IF ( p_instance_rec.operational_log_flag = l_curr_instance_rec.operational_log_flag )
16480 OR ( p_instance_rec.operational_log_flag = fnd_api.g_miss_char ) THEN
16481 l_ins_hist_csr.old_operational_log_flag := NULL;
16482 l_ins_hist_csr.new_operational_log_flag := NULL;
16483 ELSE
16484 l_ins_hist_csr.old_operational_log_flag := fnd_api.g_miss_char;
16485 l_ins_hist_csr.new_operational_log_flag := p_instance_rec.operational_log_flag;
16486 END IF;
16487 ELSE
16488 l_ins_hist_csr.old_operational_log_flag := fnd_api.g_miss_char;
16489 l_ins_hist_csr.new_operational_log_flag := p_instance_rec.operational_log_flag;
16490 END IF;
16491 --
16492 IF ( l_ins_hist_csr.old_checkin_status IS NULL
16493 AND l_ins_hist_csr.new_checkin_status IS NULL ) THEN
16494 IF ( p_instance_rec.checkin_status = l_curr_instance_rec.checkin_status )
16495 OR ( p_instance_rec.checkin_status = fnd_api.g_miss_num ) THEN
16496 l_ins_hist_csr.old_checkin_status := NULL;
16497 l_ins_hist_csr.new_checkin_status := NULL;
16498 ELSE
16499 l_ins_hist_csr.old_checkin_status := fnd_api.g_miss_num;
16500 l_ins_hist_csr.new_checkin_status := p_instance_rec.checkin_status;
16501 END IF;
16502 ELSE
16503 l_ins_hist_csr.old_checkin_status := fnd_api.g_miss_num;
16504 l_ins_hist_csr.new_checkin_status := p_instance_rec.checkin_status;
16505 END IF;
16506 --
16507 IF ( l_ins_hist_csr.old_supplier_warranty_exp_date IS NULL
16508 AND l_ins_hist_csr.new_supplier_warranty_exp_date IS NULL ) THEN
16509 IF ( p_instance_rec.supplier_warranty_exp_date = l_curr_instance_rec.supplier_warranty_exp_date )
16510 OR ( p_instance_rec.supplier_warranty_exp_date = fnd_api.g_miss_date ) THEN
16511 l_ins_hist_csr.old_supplier_warranty_exp_date := NULL;
16512 l_ins_hist_csr.new_supplier_warranty_exp_date := NULL;
16513 ELSE
16514 l_ins_hist_csr.old_supplier_warranty_exp_date := fnd_api.g_miss_date;
16515 l_ins_hist_csr.new_supplier_warranty_exp_date := p_instance_rec.supplier_warranty_exp_date;
16516 END IF;
16517 ELSE
16518 l_ins_hist_csr.old_supplier_warranty_exp_date := fnd_api.g_miss_date;
16519 l_ins_hist_csr.new_supplier_warranty_exp_date := p_instance_rec.supplier_warranty_exp_date;
16520 END IF;
16521
16522 --
16523
16524 IF ( l_ins_hist_csr.old_attribute16 IS NULL
16525 AND l_ins_hist_csr.new_attribute16 IS NULL ) THEN
16526 IF ( p_instance_rec.attribute16 = l_curr_instance_rec.attribute16 )
16527 OR ( p_instance_rec.attribute16 = fnd_api.g_miss_char ) THEN
16528 l_ins_hist_csr.old_attribute16 := NULL;
16529 l_ins_hist_csr.new_attribute16 := NULL;
16530 ELSE
16531 l_ins_hist_csr.old_attribute16 := fnd_api.g_miss_char;
16532 l_ins_hist_csr.new_attribute16 := p_instance_rec.attribute16;
16533 END IF;
16534 ELSE
16535 l_ins_hist_csr.old_attribute16 := fnd_api.g_miss_char;
16536 l_ins_hist_csr.new_attribute16 := p_instance_rec.attribute16;
16537 END IF;
16538 --
16539 IF ( l_ins_hist_csr.old_attribute17 IS NULL
16540 AND l_ins_hist_csr.new_attribute17 IS NULL ) THEN
16541 IF ( p_instance_rec.attribute17 = l_curr_instance_rec.attribute17 )
16542 OR ( p_instance_rec.attribute17 = fnd_api.g_miss_char ) THEN
16543 l_ins_hist_csr.old_attribute17 := NULL;
16544 l_ins_hist_csr.new_attribute17 := NULL;
16545 ELSE
16546 l_ins_hist_csr.old_attribute17 := fnd_api.g_miss_char;
16547 l_ins_hist_csr.new_attribute17 := p_instance_rec.attribute17;
16548 END IF;
16549 ELSE
16550 l_ins_hist_csr.old_attribute17 := fnd_api.g_miss_char;
16551 l_ins_hist_csr.new_attribute17 := p_instance_rec.attribute17;
16552 END IF;
16553
16554 IF ( l_ins_hist_csr.old_attribute18 IS NULL
16555 AND l_ins_hist_csr.new_attribute18 IS NULL ) THEN
16556 IF ( p_instance_rec.attribute18 = l_curr_instance_rec.attribute18 )
16557 OR ( p_instance_rec.attribute18 = fnd_api.g_miss_char ) THEN
16558 l_ins_hist_csr.old_attribute18 := NULL;
16559 l_ins_hist_csr.new_attribute18 := NULL;
16560 ELSE
16561 l_ins_hist_csr.old_attribute18 := fnd_api.g_miss_char;
16562 l_ins_hist_csr.new_attribute18 := p_instance_rec.attribute18;
16563 END IF;
16564 ELSE
16565 l_ins_hist_csr.old_attribute18 := fnd_api.g_miss_char;
16566 l_ins_hist_csr.new_attribute18 := p_instance_rec.attribute18;
16567 END IF;
16568 --
16569 IF ( l_ins_hist_csr.old_attribute19 IS NULL
16570 AND l_ins_hist_csr.new_attribute19 IS NULL ) THEN
16571 IF ( p_instance_rec.attribute19 = l_curr_instance_rec.attribute19 )
16572 OR ( p_instance_rec.attribute19 = fnd_api.g_miss_char ) THEN
16573 l_ins_hist_csr.old_attribute19 := NULL;
16574 l_ins_hist_csr.new_attribute19 := NULL;
16575 ELSE
16576 l_ins_hist_csr.old_attribute19 := fnd_api.g_miss_char;
16577 l_ins_hist_csr.new_attribute19 := p_instance_rec.attribute19;
16578 END IF;
16579 ELSE
16580 l_ins_hist_csr.old_attribute19 := fnd_api.g_miss_char;
16581 l_ins_hist_csr.new_attribute19 := p_instance_rec.attribute19;
16582 END IF;
16583 --
16584 IF ( l_ins_hist_csr.old_attribute20 IS NULL
16585 AND l_ins_hist_csr.new_attribute20 IS NULL ) THEN
16586 IF ( p_instance_rec.attribute20 = l_curr_instance_rec.attribute20 )
16587 OR ( p_instance_rec.attribute20 = fnd_api.g_miss_char ) THEN
16588 l_ins_hist_csr.old_attribute20 := NULL;
16589 l_ins_hist_csr.new_attribute20 := NULL;
16590 ELSE
16591 l_ins_hist_csr.old_attribute20 := fnd_api.g_miss_char;
16592 l_ins_hist_csr.new_attribute20 := p_instance_rec.attribute20;
16593 END IF;
16594 ELSE
16595 l_ins_hist_csr.old_attribute20 := fnd_api.g_miss_char;
16596 l_ins_hist_csr.new_attribute20 := p_instance_rec.attribute20;
16597 END IF;
16598
16599 --
16600 IF ( l_ins_hist_csr.old_attribute21 IS NULL
16601 AND l_ins_hist_csr.new_attribute21 IS NULL ) THEN
16602 IF ( p_instance_rec.attribute21 = l_curr_instance_rec.attribute21 )
16603 OR ( p_instance_rec.attribute21 = fnd_api.g_miss_char ) THEN
16604 l_ins_hist_csr.old_attribute21 := NULL;
16605 l_ins_hist_csr.new_attribute21 := NULL;
16606 ELSE
16607 l_ins_hist_csr.old_attribute21 := fnd_api.g_miss_char;
16608 l_ins_hist_csr.new_attribute21 := p_instance_rec.attribute21;
16609 END IF;
16610 ELSE
16611 l_ins_hist_csr.old_attribute21 := fnd_api.g_miss_char;
16612 l_ins_hist_csr.new_attribute21 := p_instance_rec.attribute21;
16613 END IF;
16614 --
16615 IF ( l_ins_hist_csr.old_attribute22 IS NULL
16616 AND l_ins_hist_csr.new_attribute22 IS NULL ) THEN
16617 IF ( p_instance_rec.attribute22 = l_curr_instance_rec.attribute22 )
16618 OR ( p_instance_rec.attribute22 = fnd_api.g_miss_char ) THEN
16619 l_ins_hist_csr.old_attribute22 := NULL;
16620 l_ins_hist_csr.new_attribute22 := NULL;
16621 ELSE
16622 l_ins_hist_csr.old_attribute22 := fnd_api.g_miss_char;
16623 l_ins_hist_csr.new_attribute22 := p_instance_rec.attribute22;
16624 END IF;
16625 ELSE
16626 l_ins_hist_csr.old_attribute22 := fnd_api.g_miss_char;
16627 l_ins_hist_csr.new_attribute22 := p_instance_rec.attribute22;
16628 END IF;
16629 --
16630 IF ( l_ins_hist_csr.old_attribute23 IS NULL
16631 AND l_ins_hist_csr.new_attribute23 IS NULL ) THEN
16632 IF ( p_instance_rec.attribute23 = l_curr_instance_rec.attribute23 )
16633 OR ( p_instance_rec.attribute23 = fnd_api.g_miss_char ) THEN
16634 l_ins_hist_csr.old_attribute23 := NULL;
16635 l_ins_hist_csr.new_attribute23 := NULL;
16636 ELSE
16637 l_ins_hist_csr.old_attribute23 := fnd_api.g_miss_char;
16638 l_ins_hist_csr.new_attribute23 := p_instance_rec.attribute23;
16639 END IF;
16640 ELSE
16641 l_ins_hist_csr.old_attribute23 := fnd_api.g_miss_char;
16642 l_ins_hist_csr.new_attribute23 := p_instance_rec.attribute23;
16643 END IF;
16644 --
16645 IF ( l_ins_hist_csr.old_attribute24 IS NULL
16646 AND l_ins_hist_csr.new_attribute24 IS NULL ) THEN
16647 IF ( p_instance_rec.attribute24 = l_curr_instance_rec.attribute24 )
16648 OR ( p_instance_rec.attribute24 = fnd_api.g_miss_char ) THEN
16649 l_ins_hist_csr.old_attribute24 := NULL;
16650 l_ins_hist_csr.new_attribute24 := NULL;
16651 ELSE
16652 l_ins_hist_csr.old_attribute24 := fnd_api.g_miss_char;
16653 l_ins_hist_csr.new_attribute24 := p_instance_rec.attribute24;
16654 END IF;
16655 ELSE
16656 l_ins_hist_csr.old_attribute24 := fnd_api.g_miss_char;
16657 l_ins_hist_csr.new_attribute24 := p_instance_rec.attribute24;
16658 END IF;
16659 --
16660 IF ( l_ins_hist_csr.old_attribute25 IS NULL
16661 AND l_ins_hist_csr.new_attribute25 IS NULL ) THEN
16662 IF ( p_instance_rec.attribute25 = l_curr_instance_rec.attribute25 )
16663 OR ( p_instance_rec.attribute25 = fnd_api.g_miss_char ) THEN
16664 l_ins_hist_csr.old_attribute25 := NULL;
16665 l_ins_hist_csr.new_attribute25 := NULL;
16666 ELSE
16667 l_ins_hist_csr.old_attribute25 := fnd_api.g_miss_char;
16668 l_ins_hist_csr.new_attribute25 := p_instance_rec.attribute25;
16669 END IF;
16670 ELSE
16671 l_ins_hist_csr.old_attribute25 := fnd_api.g_miss_char;
16672 l_ins_hist_csr.new_attribute25 := p_instance_rec.attribute25;
16673 END IF;
16674 --
16675 IF ( l_ins_hist_csr.old_attribute26 IS NULL
16676 AND l_ins_hist_csr.new_attribute26 IS NULL ) THEN
16677 IF ( p_instance_rec.attribute26 = l_curr_instance_rec.attribute26 )
16678 OR ( p_instance_rec.attribute26 = fnd_api.g_miss_char ) THEN
16679 l_ins_hist_csr.old_attribute26 := NULL;
16680 l_ins_hist_csr.new_attribute26 := NULL;
16681 ELSE
16682 l_ins_hist_csr.old_attribute26 := fnd_api.g_miss_char;
16683 l_ins_hist_csr.new_attribute26 := p_instance_rec.attribute26;
16684 END IF;
16685 ELSE
16686 l_ins_hist_csr.old_attribute26 := fnd_api.g_miss_char;
16687 l_ins_hist_csr.new_attribute26 := p_instance_rec.attribute26;
16688 END IF;
16689 --
16690 IF ( l_ins_hist_csr.old_attribute27 IS NULL
16691 AND l_ins_hist_csr.new_attribute27 IS NULL ) THEN
16692 IF ( p_instance_rec.attribute27 = l_curr_instance_rec.attribute27 )
16693 OR ( p_instance_rec.attribute27 = fnd_api.g_miss_char ) THEN
16694 l_ins_hist_csr.old_attribute27 := NULL;
16695 l_ins_hist_csr.new_attribute27 := NULL;
16696 ELSE
16697 l_ins_hist_csr.old_attribute27 := fnd_api.g_miss_char;
16698 l_ins_hist_csr.new_attribute27 := p_instance_rec.attribute27;
16699 END IF;
16700 ELSE
16701 l_ins_hist_csr.old_attribute27 := fnd_api.g_miss_char;
16702 l_ins_hist_csr.new_attribute27 := p_instance_rec.attribute27;
16703 END IF;
16704 --
16705 IF ( l_ins_hist_csr.old_attribute28 IS NULL
16706 AND l_ins_hist_csr.new_attribute28 IS NULL ) THEN
16707 IF ( p_instance_rec.attribute28 = l_curr_instance_rec.attribute28 )
16708 OR ( p_instance_rec.attribute28 = fnd_api.g_miss_char ) THEN
16709 l_ins_hist_csr.old_attribute28 := NULL;
16710 l_ins_hist_csr.new_attribute28 := NULL;
16711 ELSE
16712 l_ins_hist_csr.old_attribute28 := fnd_api.g_miss_char;
16713 l_ins_hist_csr.new_attribute28 := p_instance_rec.attribute28;
16714 END IF;
16715 ELSE
16716 l_ins_hist_csr.old_attribute28 := fnd_api.g_miss_char;
16717 l_ins_hist_csr.new_attribute28 := p_instance_rec.attribute28;
16718 END IF;
16719 --
16720 IF ( l_ins_hist_csr.old_attribute29 IS NULL
16721 AND l_ins_hist_csr.new_attribute29 IS NULL ) THEN
16722 IF ( p_instance_rec.attribute29 = l_curr_instance_rec.attribute29 )
16723 OR ( p_instance_rec.attribute29 = fnd_api.g_miss_char ) THEN
16724 l_ins_hist_csr.old_attribute29 := NULL;
16725 l_ins_hist_csr.new_attribute29 := NULL;
16726 ELSE
16727 l_ins_hist_csr.old_attribute29 := fnd_api.g_miss_char;
16728 l_ins_hist_csr.new_attribute29 := p_instance_rec.attribute29;
16729 END IF;
16730 ELSE
16731 l_ins_hist_csr.old_attribute29 := fnd_api.g_miss_char;
16732 l_ins_hist_csr.new_attribute29 := p_instance_rec.attribute29;
16733 END IF;
16734 --
16735 IF ( l_ins_hist_csr.old_attribute30 IS NULL
16736 AND l_ins_hist_csr.new_attribute30 IS NULL ) THEN
16737 IF ( p_instance_rec.attribute30 = l_curr_instance_rec.attribute30 )
16738 OR ( p_instance_rec.attribute30 = fnd_api.g_miss_char ) THEN
16739 l_ins_hist_csr.old_attribute30 := NULL;
16740 l_ins_hist_csr.new_attribute30 := NULL;
16741 ELSE
16742 l_ins_hist_csr.old_attribute30 := fnd_api.g_miss_char;
16743 l_ins_hist_csr.new_attribute30 := p_instance_rec.attribute30;
16744 END IF;
16745 ELSE
16746 l_ins_hist_csr.old_attribute30 := fnd_api.g_miss_char;
16747 l_ins_hist_csr.new_attribute30 := p_instance_rec.attribute30;
16748 END IF;
16749 --
16750 --end of code for eam integration--
16751 -- Addition of columns for FA Integration
16752 IF ( l_ins_hist_csr.old_purchase_unit_price IS NULL
16753 AND l_ins_hist_csr.new_purchase_unit_price IS NULL ) THEN
16754 IF ( p_instance_rec.purchase_unit_price = l_curr_instance_rec.purchase_unit_price )
16755 OR ( p_instance_rec.purchase_unit_price = fnd_api.g_miss_num ) THEN
16756 l_ins_hist_csr.old_purchase_unit_price := NULL;
16757 l_ins_hist_csr.new_purchase_unit_price := NULL;
16758 ELSE
16759 l_ins_hist_csr.old_purchase_unit_price := fnd_api.g_miss_num;
16760 l_ins_hist_csr.new_purchase_unit_price := p_instance_rec.purchase_unit_price;
16761 END IF;
16762 ELSE
16763 l_ins_hist_csr.old_purchase_unit_price := fnd_api.g_miss_num;
16764 l_ins_hist_csr.new_purchase_unit_price := p_instance_rec.purchase_unit_price;
16765 END IF;
16766 --
16767 IF ( l_ins_hist_csr.old_purchase_currency_code IS NULL
16768 AND l_ins_hist_csr.new_purchase_currency_code IS NULL ) THEN
16769 IF ( p_instance_rec.purchase_currency_code = l_curr_instance_rec.purchase_currency_code )
16770 OR ( p_instance_rec.purchase_currency_code = fnd_api.g_miss_char ) THEN
16771 l_ins_hist_csr.old_purchase_currency_code := NULL;
16772 l_ins_hist_csr.new_purchase_currency_code := NULL;
16773 ELSE
16774 l_ins_hist_csr.old_purchase_currency_code := fnd_api.g_miss_char;
16775 l_ins_hist_csr.new_purchase_currency_code := p_instance_rec.purchase_currency_code;
16776 END IF;
16777 ELSE
16778 l_ins_hist_csr.old_purchase_currency_code := fnd_api.g_miss_char;
16779 l_ins_hist_csr.new_purchase_currency_code := p_instance_rec.purchase_currency_code;
16780 END IF;
16781 --
16782 IF ( l_ins_hist_csr.old_payables_unit_price IS NULL
16783 AND l_ins_hist_csr.new_payables_unit_price IS NULL ) THEN
16784 IF ( p_instance_rec.payables_unit_price = l_curr_instance_rec.payables_unit_price )
16785 OR ( p_instance_rec.payables_unit_price = fnd_api.g_miss_num ) THEN
16786 l_ins_hist_csr.old_payables_unit_price := NULL;
16787 l_ins_hist_csr.new_payables_unit_price := NULL;
16788 ELSE
16789 l_ins_hist_csr.old_payables_unit_price := fnd_api.g_miss_num;
16790 l_ins_hist_csr.new_payables_unit_price := p_instance_rec.payables_unit_price;
16791 END IF;
16792 ELSE
16793 l_ins_hist_csr.old_payables_unit_price := fnd_api.g_miss_num;
16794 l_ins_hist_csr.new_payables_unit_price := p_instance_rec.payables_unit_price;
16795 END IF;
16796 --
16797 IF ( l_ins_hist_csr.old_payables_currency_code IS NULL
16798 AND l_ins_hist_csr.new_payables_currency_code IS NULL ) THEN
16799 IF ( p_instance_rec.payables_currency_code = l_curr_instance_rec.payables_currency_code )
16800 OR ( p_instance_rec.payables_currency_code = fnd_api.g_miss_char ) THEN
16801 l_ins_hist_csr.old_payables_currency_code := NULL;
16802 l_ins_hist_csr.new_payables_currency_code := NULL;
16803 ELSE
16804 l_ins_hist_csr.old_payables_currency_code := fnd_api.g_miss_char;
16805 l_ins_hist_csr.new_payables_currency_code := p_instance_rec.payables_currency_code;
16806 END IF;
16807 ELSE
16808 l_ins_hist_csr.old_payables_currency_code := fnd_api.g_miss_char;
16809 l_ins_hist_csr.new_payables_currency_code := p_instance_rec.payables_currency_code;
16810 END IF;
16811 --
16812 IF ( l_ins_hist_csr.old_sales_unit_price IS NULL
16813 AND l_ins_hist_csr.new_sales_unit_price IS NULL ) THEN
16814 IF ( p_instance_rec.sales_unit_price = l_curr_instance_rec.sales_unit_price )
16815 OR ( p_instance_rec.sales_unit_price = fnd_api.g_miss_num ) THEN
16816 l_ins_hist_csr.old_sales_unit_price := NULL;
16817 l_ins_hist_csr.new_sales_unit_price := NULL;
16818 ELSE
16819 l_ins_hist_csr.old_sales_unit_price := fnd_api.g_miss_num;
16820 l_ins_hist_csr.new_sales_unit_price := p_instance_rec.sales_unit_price;
16821 END IF;
16822 ELSE
16823 l_ins_hist_csr.old_sales_unit_price := fnd_api.g_miss_num;
16824 l_ins_hist_csr.new_sales_unit_price := p_instance_rec.sales_unit_price;
16825 END IF;
16826 --
16827 IF ( l_ins_hist_csr.old_sales_currency_code IS NULL
16828 AND l_ins_hist_csr.new_sales_currency_code IS NULL ) THEN
16829 IF ( p_instance_rec.sales_currency_code = l_curr_instance_rec.sales_currency_code )
16830 OR ( p_instance_rec.sales_currency_code = fnd_api.g_miss_char ) THEN
16831 l_ins_hist_csr.old_sales_currency_code := NULL;
16832 l_ins_hist_csr.new_sales_currency_code := NULL;
16833 ELSE
16834 l_ins_hist_csr.old_sales_currency_code := fnd_api.g_miss_char;
16835 l_ins_hist_csr.new_sales_currency_code := p_instance_rec.sales_currency_code;
16836 END IF;
16837 ELSE
16838 l_ins_hist_csr.old_sales_currency_code := fnd_api.g_miss_char;
16839 l_ins_hist_csr.new_sales_currency_code := p_instance_rec.sales_currency_code;
16840 END IF;
16841 --
16842 IF ( l_ins_hist_csr.old_operational_status_code IS NULL
16843 AND l_ins_hist_csr.new_operational_status_code IS NULL ) THEN
16844 IF ( p_instance_rec.operational_status_code = l_curr_instance_rec.operational_status_code )
16845 OR ( p_instance_rec.operational_status_code = fnd_api.g_miss_char ) THEN
16846 l_ins_hist_csr.old_operational_status_code := NULL;
16847 l_ins_hist_csr.new_operational_status_code := NULL;
16848 ELSE
16849 l_ins_hist_csr.old_operational_status_code := fnd_api.g_miss_char;
16850 l_ins_hist_csr.new_operational_status_code := p_instance_rec.operational_status_code;
16851 END IF;
16852 ELSE
16853 l_ins_hist_csr.old_operational_status_code := fnd_api.g_miss_char;
16854 l_ins_hist_csr.new_operational_status_code := p_instance_rec.operational_status_code;
16855 END IF;
16856 --
16857 -- End addition of columns for FA Integration
16858
16859
16860
16861 -- End addition for bug 2671179
16862 CSI_ITEM_INSTANCES_H_PKG.Update_Row
16863 ( p_INSTANCE_HISTORY_ID => l_ins_hist_id
16864 ,p_INSTANCE_ID => fnd_api.g_miss_num
16865 ,p_TRANSACTION_ID => fnd_api.g_miss_num
16866 ,p_OLD_INSTANCE_NUMBER => l_ins_hist_csr.OLD_INSTANCE_NUMBER
16867 ,p_NEW_INSTANCE_NUMBER => l_ins_hist_csr.NEW_INSTANCE_NUMBER
16868 ,p_OLD_EXTERNAL_REFERENCE => l_ins_hist_csr.OLD_EXTERNAL_REFERENCE
16869 ,p_NEW_EXTERNAL_REFERENCE => l_ins_hist_csr.NEW_EXTERNAL_REFERENCE
16870 ,p_OLD_INVENTORY_ITEM_ID => l_ins_hist_csr.OLD_INVENTORY_ITEM_ID
16871 ,p_NEW_INVENTORY_ITEM_ID => l_ins_hist_csr.NEW_INVENTORY_ITEM_ID
16872 ,p_OLD_INVENTORY_REVISION => l_ins_hist_csr.OLD_INVENTORY_REVISION
16873 ,p_NEW_INVENTORY_REVISION => l_ins_hist_csr.NEW_INVENTORY_REVISION
16874 ,p_OLD_INV_MASTER_ORGZN_ID => l_ins_hist_csr.OLD_INV_MASTER_ORGANIZATION_ID
16875 ,p_NEW_INV_MASTER_ORGZN_ID => l_ins_hist_csr.NEW_INV_MASTER_ORGANIZATION_ID
16876 ,p_OLD_SERIAL_NUMBER => l_ins_hist_csr.OLD_SERIAL_NUMBER
16877 ,p_NEW_SERIAL_NUMBER => l_ins_hist_csr.NEW_SERIAL_NUMBER
16878 ,p_OLD_MFG_SERIAL_NUMBER_FLAG => l_ins_hist_csr.OLD_MFG_SERIAL_NUMBER_FLAG
16879 ,p_NEW_MFG_SERIAL_NUMBER_FLAG => l_ins_hist_csr.NEW_MFG_SERIAL_NUMBER_FLAG
16880 ,p_OLD_LOT_NUMBER => l_ins_hist_csr.OLD_LOT_NUMBER
16881 ,p_NEW_LOT_NUMBER => l_ins_hist_csr.NEW_LOT_NUMBER
16882 ,p_OLD_QUANTITY => l_ins_hist_csr.OLD_QUANTITY
16883 ,p_NEW_QUANTITY => l_ins_hist_csr.NEW_QUANTITY
16884 ,p_OLD_UNIT_OF_MEASURE => l_ins_hist_csr.OLD_UNIT_OF_MEASURE
16885 ,p_NEW_UNIT_OF_MEASURE => l_ins_hist_csr.NEW_UNIT_OF_MEASURE
16886 ,p_OLD_ACCOUNTING_CLASS_CODE => l_ins_hist_csr.OLD_ACCOUNTING_CLASS_CODE
16887 ,p_NEW_ACCOUNTING_CLASS_CODE => l_ins_hist_csr.NEW_ACCOUNTING_CLASS_CODE
16888 ,p_OLD_INSTANCE_CONDITION_ID => l_ins_hist_csr.OLD_INSTANCE_CONDITION_ID
16889 ,p_NEW_INSTANCE_CONDITION_ID => l_ins_hist_csr.NEW_INSTANCE_CONDITION_ID
16890 ,p_OLD_INSTANCE_STATUS_ID => l_ins_hist_csr.OLD_INSTANCE_STATUS_ID
16891 ,p_NEW_INSTANCE_STATUS_ID => l_ins_hist_csr.NEW_INSTANCE_STATUS_ID
16892 ,p_OLD_CUSTOMER_VIEW_FLAG => l_ins_hist_csr.OLD_CUSTOMER_VIEW_FLAG
16893 ,p_NEW_CUSTOMER_VIEW_FLAG => l_ins_hist_csr.NEW_CUSTOMER_VIEW_FLAG
16894 ,p_OLD_MERCHANT_VIEW_FLAG => l_ins_hist_csr.OLD_MERCHANT_VIEW_FLAG
16895 ,p_NEW_MERCHANT_VIEW_FLAG => l_ins_hist_csr.NEW_MERCHANT_VIEW_FLAG
16896 ,p_OLD_SELLABLE_FLAG => l_ins_hist_csr.OLD_SELLABLE_FLAG
16897 ,p_NEW_SELLABLE_FLAG => l_ins_hist_csr.NEW_SELLABLE_FLAG
16898 ,p_OLD_SYSTEM_ID => l_ins_hist_csr.OLD_SYSTEM_ID
16899 ,p_NEW_SYSTEM_ID => l_ins_hist_csr.NEW_SYSTEM_ID
16900 ,p_OLD_INSTANCE_TYPE_CODE => l_ins_hist_csr.OLD_INSTANCE_TYPE_CODE
16901 ,p_NEW_INSTANCE_TYPE_CODE => l_ins_hist_csr.NEW_INSTANCE_TYPE_CODE
16902 ,p_OLD_ACTIVE_START_DATE => l_ins_hist_csr.OLD_ACTIVE_START_DATE
16903 ,p_NEW_ACTIVE_START_DATE => l_ins_hist_csr.NEW_ACTIVE_START_DATE
16904 ,p_OLD_ACTIVE_END_DATE => l_ins_hist_csr.OLD_ACTIVE_END_DATE
16905 ,p_NEW_ACTIVE_END_DATE => l_ins_hist_csr.NEW_ACTIVE_END_DATE
16906 ,p_OLD_LOCATION_TYPE_CODE => l_ins_hist_csr.OLD_LOCATION_TYPE_CODE
16907 ,p_NEW_LOCATION_TYPE_CODE => l_ins_hist_csr.NEW_LOCATION_TYPE_CODE
16908 ,p_OLD_LOCATION_ID => l_ins_hist_csr.OLD_LOCATION_ID
16909 ,p_NEW_LOCATION_ID => l_ins_hist_csr.NEW_LOCATION_ID
16910 ,p_OLD_INV_ORGANIZATION_ID => l_ins_hist_csr.OLD_INV_ORGANIZATION_ID
16911 ,p_NEW_INV_ORGANIZATION_ID => l_ins_hist_csr.NEW_INV_ORGANIZATION_ID
16912 ,p_OLD_INV_SUBINVENTORY_NAME => l_ins_hist_csr.OLD_INV_SUBINVENTORY_NAME
16913 ,p_NEW_INV_SUBINVENTORY_NAME => l_ins_hist_csr.NEW_INV_SUBINVENTORY_NAME
16914 ,p_OLD_INV_LOCATOR_ID => l_ins_hist_csr.OLD_INV_LOCATOR_ID
16915 ,p_NEW_INV_LOCATOR_ID => l_ins_hist_csr.NEW_INV_LOCATOR_ID
16916 ,p_OLD_PA_PROJECT_ID => l_ins_hist_csr.OLD_PA_PROJECT_ID
16917 ,p_NEW_PA_PROJECT_ID => l_ins_hist_csr.NEW_PA_PROJECT_ID
16918 ,p_OLD_PA_PROJECT_TASK_ID => l_ins_hist_csr.OLD_PA_PROJECT_TASK_ID
16919 ,p_NEW_PA_PROJECT_TASK_ID => l_ins_hist_csr.NEW_PA_PROJECT_TASK_ID
16920 ,p_OLD_IN_TRANSIT_ORDER_LINE_ID => l_ins_hist_csr.OLD_IN_TRANSIT_ORDER_LINE_ID
16921 ,p_NEW_IN_TRANSIT_ORDER_LINE_ID => l_ins_hist_csr.NEW_IN_TRANSIT_ORDER_LINE_ID
16922 ,p_OLD_WIP_JOB_ID => l_ins_hist_csr.OLD_WIP_JOB_ID
16923 ,p_NEW_WIP_JOB_ID => l_ins_hist_csr.NEW_WIP_JOB_ID
16924 ,p_OLD_PO_ORDER_LINE_ID => l_ins_hist_csr.OLD_PO_ORDER_LINE_ID
16925 ,p_NEW_PO_ORDER_LINE_ID => l_ins_hist_csr.NEW_PO_ORDER_LINE_ID
16926 ,p_OLD_COMPLETENESS_FLAG => l_ins_hist_csr.OLD_COMPLETENESS_FLAG
16927 ,p_NEW_COMPLETENESS_FLAG => l_ins_hist_csr.NEW_COMPLETENESS_FLAG
16928 ,p_FULL_DUMP_FLAG => fnd_api.g_miss_char
16929 ,p_NEW_CONTEXT => l_ins_hist_csr.NEW_CONTEXT
16930 ,P_OLD_CONTEXT => l_ins_hist_csr.OLD_CONTEXT
16931 ,p_NEW_ATTRIBUTE1 => l_ins_hist_csr.NEW_ATTRIBUTE1
16932 ,p_OLD_ATTRIBUTE1 => l_ins_hist_csr.OLD_ATTRIBUTE1
16933 ,p_NEW_ATTRIBUTE2 => l_ins_hist_csr.NEW_ATTRIBUTE2
16934 ,p_OLD_ATTRIBUTE2 => l_ins_hist_csr.OLD_ATTRIBUTE2
16935 ,p_NEW_ATTRIBUTE3 => l_ins_hist_csr.NEW_ATTRIBUTE3
16936 ,p_OLD_ATTRIBUTE3 => l_ins_hist_csr.OLD_ATTRIBUTE3
16937 ,p_NEW_ATTRIBUTE4 => l_ins_hist_csr.NEW_ATTRIBUTE4
16938 ,p_OLD_ATTRIBUTE4 => l_ins_hist_csr.OLD_ATTRIBUTE4
16939 ,p_NEW_ATTRIBUTE5 => l_ins_hist_csr.NEW_ATTRIBUTE5
16940 ,p_OLD_ATTRIBUTE5 => l_ins_hist_csr.OLD_ATTRIBUTE5
16941 ,p_NEW_ATTRIBUTE6 => l_ins_hist_csr.NEW_ATTRIBUTE6
16942 ,p_OLD_ATTRIBUTE6 => l_ins_hist_csr.OLD_ATTRIBUTE6
16943 ,p_NEW_ATTRIBUTE7 => l_ins_hist_csr.NEW_ATTRIBUTE7
16944 ,p_OLD_ATTRIBUTE7 => l_ins_hist_csr.OLD_ATTRIBUTE7
16945 ,p_NEW_ATTRIBUTE8 => l_ins_hist_csr.NEW_ATTRIBUTE8
16946 ,p_OLD_ATTRIBUTE8 => l_ins_hist_csr.OLD_ATTRIBUTE8
16947 ,p_NEW_ATTRIBUTE9 => l_ins_hist_csr.NEW_ATTRIBUTE9
16948 ,p_OLD_ATTRIBUTE9 => l_ins_hist_csr.OLD_ATTRIBUTE9
16949 ,p_NEW_ATTRIBUTE10 => l_ins_hist_csr.NEW_ATTRIBUTE10
16950 ,p_OLD_ATTRIBUTE10 => l_ins_hist_csr.OLD_ATTRIBUTE10
16951 ,p_NEW_ATTRIBUTE11 => l_ins_hist_csr.NEW_ATTRIBUTE11
16952 ,p_OLD_ATTRIBUTE11 => l_ins_hist_csr.OLD_ATTRIBUTE11
16953 ,p_NEW_ATTRIBUTE12 => l_ins_hist_csr.NEW_ATTRIBUTE12
16954 ,p_OLD_ATTRIBUTE12 => l_ins_hist_csr.OLD_ATTRIBUTE12
16955 ,p_NEW_ATTRIBUTE13 => l_ins_hist_csr.NEW_ATTRIBUTE13
16956 ,p_OLD_ATTRIBUTE13 => l_ins_hist_csr.OLD_ATTRIBUTE13
16957 ,p_NEW_ATTRIBUTE14 => l_ins_hist_csr.NEW_ATTRIBUTE14
16958 ,p_OLD_ATTRIBUTE14 => l_ins_hist_csr.OLD_ATTRIBUTE14
16959 ,p_NEW_ATTRIBUTE15 => l_ins_hist_csr.NEW_ATTRIBUTE15
16960 ,p_OLD_ATTRIBUTE15 => l_ins_hist_csr.OLD_ATTRIBUTE15
16961 ,p_CREATED_BY => fnd_api.g_miss_num
16962 ,p_CREATION_DATE => fnd_api.g_miss_date
16963 ,p_LAST_UPDATED_BY => FND_GLOBAL.USER_ID
16964 ,p_LAST_UPDATE_DATE => SYSDATE
16965 ,p_LAST_UPDATE_LOGIN => FND_GLOBAL.CONC_LOGIN_ID
16966 ,p_OBJECT_VERSION_NUMBER => fnd_api.g_miss_num
16967 ,p_OLD_INST_LOC_TYPE_CODE => l_ins_hist_csr.OLD_INST_LOC_TYPE_CODE
16968 ,p_NEW_INST_LOC_TYPE_CODE => l_ins_hist_csr.NEW_INST_LOC_TYPE_CODE
16969 ,p_OLD_INST_LOC_ID => l_ins_hist_csr.OLD_INST_LOC_ID
16970 ,p_NEW_INST_LOC_ID => l_ins_hist_csr.NEW_INST_LOC_ID
16971 ,p_OLD_INST_USAGE_CODE => l_ins_hist_csr.OLD_INST_USAGE_CODE
16972 ,p_NEW_INST_USAGE_CODE => l_ins_hist_csr.NEW_INST_USAGE_CODE
16973 ,p_OLD_LAST_VLD_ORGANIZATION_ID => l_ins_hist_csr.OLD_LAST_VLD_ORGANIZATION_ID
16974 ,p_NEW_LAST_VLD_ORGANIZATION_ID => l_ins_hist_csr.NEW_LAST_VLD_ORGANIZATION_ID
16975 ,p_OLD_CONFIG_INST_REV_NUM => l_ins_hist_csr.OLD_CONFIG_INST_REV_NUM
16976 ,p_NEW_CONFIG_INST_REV_NUM => l_ins_hist_csr.NEW_CONFIG_INST_REV_NUM
16977 ,p_OLD_CONFIG_VALID_STATUS => l_ins_hist_csr.OLD_CONFIG_VALID_STATUS
16978 ,p_NEW_CONFIG_VALID_STATUS => l_ins_hist_csr.NEW_CONFIG_VALID_STATUS
16979 ,p_OLD_INSTANCE_DESCRIPTION => l_ins_hist_csr.OLD_INSTANCE_DESCRIPTION
16980 ,p_NEW_INSTANCE_DESCRIPTION => l_ins_hist_csr.NEW_INSTANCE_DESCRIPTION
16981 ,p_OLD_INSTALL_DATE => l_ins_hist_csr.OLD_INSTALL_DATE
16982 ,p_NEW_INSTALL_DATE => l_ins_hist_csr.NEW_INSTALL_DATE
16983 ,p_OLD_RETURN_BY_DATE => l_ins_hist_csr.OLD_RETURN_BY_DATE
16984 ,p_NEW_RETURN_BY_DATE => l_ins_hist_csr.NEW_RETURN_BY_DATE
16985 ,p_OLD_ACTUAL_RETURN_DATE => l_ins_hist_csr.OLD_ACTUAL_RETURN_DATE
16986 ,p_NEW_ACTUAL_RETURN_DATE => l_ins_hist_csr.NEW_ACTUAL_RETURN_DATE
16987 ,p_OLD_LAST_OE_AGREEMENT_ID => l_ins_hist_csr.OLD_OE_AGREEMENT_ID
16988 ,p_NEW_LAST_OE_AGREEMENT_ID => l_ins_hist_csr.NEW_OE_AGREEMENT_ID
16989 ,p_OLD_LAST_OE_ORDER_LINE_ID => l_ins_hist_csr.OLD_LAST_OE_ORDER_LINE_ID
16990 ,p_NEW_LAST_OE_ORDER_LINE_ID => l_ins_hist_csr.NEW_LAST_OE_ORDER_LINE_ID
16991 ,p_OLD_LAST_OE_RMA_LINE_ID => l_ins_hist_csr.OLD_LAST_OE_RMA_LINE_ID
16992 ,p_NEW_LAST_OE_RMA_LINE_ID => l_ins_hist_csr.NEW_LAST_OE_RMA_LINE_ID
16993 ,p_OLD_LAST_WIP_JOB_ID => l_ins_hist_csr.OLD_LAST_WIP_JOB_ID
16994 ,p_NEW_LAST_WIP_JOB_ID => l_ins_hist_csr.NEW_LAST_WIP_JOB_ID
16995 ,p_OLD_LAST_PO_PO_LINE_ID => l_ins_hist_csr.OLD_LAST_PO_PO_LINE_ID
16996 ,p_NEW_LAST_PO_PO_LINE_ID => l_ins_hist_csr.NEW_LAST_PO_PO_LINE_ID
16997 ,p_OLD_LAST_PA_PROJECT_ID => l_ins_hist_csr.OLD_LAST_PA_PROJECT_ID
16998 ,p_NEW_LAST_PA_PROJECT_ID => l_ins_hist_csr.NEW_LAST_PA_PROJECT_ID
16999 ,p_OLD_LAST_PA_TASK_ID => l_ins_hist_csr.OLD_LAST_PA_TASK_ID
17000 ,p_NEW_LAST_PA_TASK_ID => l_ins_hist_csr.NEW_LAST_PA_TASK_ID
17001 ,p_OLD_LAST_TXN_LINE_DETAIL_ID => l_ins_hist_csr.OLD_LAST_TXN_LINE_DETAIL_ID
17002 ,p_NEW_LAST_TXN_LINE_DETAIL_ID => l_ins_hist_csr.NEW_LAST_TXN_LINE_DETAIL_ID
17003 ,p_OLD_LAST_OE_PO_NUMBER => l_ins_hist_csr.OLD_LAST_OE_PO_NUMBER
17004 ,p_NEW_LAST_OE_PO_NUMBER => l_ins_hist_csr.NEW_LAST_OE_PO_NUMBER
17005 --start of parameters addition for eam integration--
17006 ,p_OLD_NETWORK_ASSET_FLAG => l_ins_hist_csr.OLD_NETWORK_ASSET_FLAG
17007 ,p_NEW_NETWORK_ASSET_FLAG => l_ins_hist_csr.NEW_NETWORK_ASSET_FLAG
17008 ,p_OLD_MAINTAINABLE_FLAG => l_ins_hist_csr.OLD_MAINTAINABLE_FLAG
17009 ,p_NEW_MAINTAINABLE_FLAG => l_ins_hist_csr.NEW_MAINTAINABLE_FLAG
17010 ,p_OLD_PN_LOCATION_ID => l_ins_hist_csr.OLD_PN_LOCATION_ID
17011 ,p_NEW_PN_LOCATION_ID => l_ins_hist_csr.NEW_PN_LOCATION_ID
17012 ,p_OLD_ASSET_CRITICALITY_CODE => l_ins_hist_csr.OLD_ASSET_CRITICALITY_CODE
17013 ,p_NEW_ASSET_CRITICALITY_CODE => l_ins_hist_csr.NEW_ASSET_CRITICALITY_CODE
17014 ,p_OLD_CATEGORY_ID => l_ins_hist_csr.OLD_CATEGORY_ID
17015 ,p_NEW_CATEGORY_ID => l_ins_hist_csr.NEW_CATEGORY_ID
17016 ,p_OLD_EQUIPMENT_GEN_OBJECT_ID => l_ins_hist_csr.OLD_EQUIPMENT_GEN_OBJECT_ID
17017 ,p_NEW_EQUIPMENT_GEN_OBJECT_ID => l_ins_hist_csr.NEW_EQUIPMENT_GEN_OBJECT_ID
17018 ,p_OLD_INSTANTIATION_FLAG => l_ins_hist_csr.OLD_INSTANTIATION_FLAG
17019 ,p_NEW_INSTANTIATION_FLAG => l_ins_hist_csr.NEW_INSTANTIATION_FLAG
17020 ,p_OLD_LINEAR_LOCATION_ID => l_ins_hist_csr.OLD_LINEAR_LOCATION_ID
17021 ,p_NEW_LINEAR_LOCATION_ID => l_ins_hist_csr.NEW_LINEAR_LOCATION_ID
17022 ,p_OLD_OPERATIONAL_LOG_FLAG => l_ins_hist_csr.OLD_OPERATIONAL_LOG_FLAG
17023 ,p_NEW_OPERATIONAL_LOG_FLAG => l_ins_hist_csr.NEW_OPERATIONAL_LOG_FLAG
17024 ,p_OLD_CHECKIN_STATUS => l_ins_hist_csr.OLD_CHECKIN_STATUS
17025 ,p_NEW_CHECKIN_STATUS => l_ins_hist_csr.NEW_CHECKIN_STATUS
17026 ,p_OLD_SUP_WARRANTY_EXP_DATE => l_ins_hist_csr.OLD_SUPPLIER_WARRANTY_EXP_DATE
17027 ,p_NEW_SUP_WARRANTY_EXP_DATE => l_ins_hist_csr.NEW_SUPPLIER_WARRANTY_EXP_DATE
17028 ,p_OLD_ATTRIBUTE16 => l_ins_hist_csr.OLD_ATTRIBUTE16
17029 ,p_NEW_ATTRIBUTE16 => l_ins_hist_csr.NEW_ATTRIBUTE16
17030 ,p_OLD_ATTRIBUTE17 => l_ins_hist_csr.OLD_ATTRIBUTE17
17031 ,p_NEW_ATTRIBUTE17 => l_ins_hist_csr.NEW_ATTRIBUTE17
17032 ,p_OLD_ATTRIBUTE18 => l_ins_hist_csr.OLD_ATTRIBUTE18
17033 ,p_NEW_ATTRIBUTE18 => l_ins_hist_csr.NEW_ATTRIBUTE18
17034 ,p_OLD_ATTRIBUTE19 => l_ins_hist_csr.OLD_ATTRIBUTE19
17035 ,p_NEW_ATTRIBUTE19 => l_ins_hist_csr.NEW_ATTRIBUTE19
17036 ,p_OLD_ATTRIBUTE20 => l_ins_hist_csr.OLD_ATTRIBUTE20
17037 ,p_NEW_ATTRIBUTE20 => l_ins_hist_csr.NEW_ATTRIBUTE20
17038 ,p_OLD_ATTRIBUTE21 => l_ins_hist_csr.OLD_ATTRIBUTE21
17039 ,p_NEW_ATTRIBUTE21 => l_ins_hist_csr.NEW_ATTRIBUTE21
17040 ,p_OLD_ATTRIBUTE22 => l_ins_hist_csr.OLD_ATTRIBUTE22
17041 ,p_NEW_ATTRIBUTE22 => l_ins_hist_csr.NEW_ATTRIBUTE22
17042 ,p_OLD_ATTRIBUTE23 => l_ins_hist_csr.OLD_ATTRIBUTE23
17043 ,p_NEW_ATTRIBUTE23 => l_ins_hist_csr.NEW_ATTRIBUTE23
17044 ,p_OLD_ATTRIBUTE24 => l_ins_hist_csr.OLD_ATTRIBUTE24
17045 ,p_NEW_ATTRIBUTE24 => l_ins_hist_csr.NEW_ATTRIBUTE24
17046 ,p_OLD_ATTRIBUTE25 => l_ins_hist_csr.OLD_ATTRIBUTE25
17047 ,p_NEW_ATTRIBUTE25 => l_ins_hist_csr.NEW_ATTRIBUTE25
17048 ,p_OLD_ATTRIBUTE26 => l_ins_hist_csr.OLD_ATTRIBUTE26
17049 ,p_NEW_ATTRIBUTE26 => l_ins_hist_csr.NEW_ATTRIBUTE26
17050 ,p_OLD_ATTRIBUTE27 => l_ins_hist_csr.OLD_ATTRIBUTE27
17051 ,p_NEW_ATTRIBUTE27 => l_ins_hist_csr.NEW_ATTRIBUTE27
17052 ,p_OLD_ATTRIBUTE28 => l_ins_hist_csr.OLD_ATTRIBUTE28
17053 ,p_NEW_ATTRIBUTE28 => l_ins_hist_csr.NEW_ATTRIBUTE28
17054 ,p_OLD_ATTRIBUTE29 => l_ins_hist_csr.OLD_ATTRIBUTE29
17055 ,p_NEW_ATTRIBUTE29 => l_ins_hist_csr.NEW_ATTRIBUTE29
17056 ,p_OLD_ATTRIBUTE30 => l_ins_hist_csr.OLD_ATTRIBUTE30
17057 ,p_NEW_ATTRIBUTE30 => l_ins_hist_csr.NEW_ATTRIBUTE30
17058 --end of parameters addition for eam integration--
17059 -- Addition of columns for FA Integration
17060 ,p_OLD_PAYABLES_UNIT_PRICE => l_ins_hist_csr.OLD_PAYABLES_UNIT_PRICE
17061 ,p_NEW_PAYABLES_UNIT_PRICE => l_ins_hist_csr.NEW_PAYABLES_UNIT_PRICE
17062 ,p_OLD_PAYABLES_CURRENCY_CODE => l_ins_hist_csr.OLD_PAYABLES_CURRENCY_CODE
17063 ,p_NEW_PAYABLES_CURRENCY_CODE => l_ins_hist_csr.NEW_PAYABLES_CURRENCY_CODE
17064 ,p_OLD_PURCHASE_UNIT_PRICE => l_ins_hist_csr.OLD_PURCHASE_UNIT_PRICE
17065 ,p_NEW_PURCHASE_UNIT_PRICE => l_ins_hist_csr.NEW_PURCHASE_UNIT_PRICE
17066 ,p_OLD_PURCHASE_CURRENCY_CODE => l_ins_hist_csr.OLD_PURCHASE_CURRENCY_CODE
17067 ,p_NEW_PURCHASE_CURRENCY_CODE => l_ins_hist_csr.NEW_PURCHASE_CURRENCY_CODE
17068 ,p_OLD_SALES_UNIT_PRICE => l_ins_hist_csr.OLD_SALES_UNIT_PRICE
17069 ,p_NEW_SALES_UNIT_PRICE => l_ins_hist_csr.NEW_SALES_UNIT_PRICE
17070 ,p_OLD_SALES_CURRENCY_CODE => l_ins_hist_csr.OLD_SALES_CURRENCY_CODE
17071 ,p_NEW_SALES_CURRENCY_CODE => l_ins_hist_csr.NEW_SALES_CURRENCY_CODE
17072 ,p_OLD_OPERATIONAL_STATUS_CODE => l_ins_hist_csr.OLD_OPERATIONAL_STATUS_CODE
17073 ,p_NEW_OPERATIONAL_STATUS_CODE => l_ins_hist_csr.NEW_OPERATIONAL_STATUS_CODE
17074 -- End addition of columns for FA Integration
17075 -- Begin Add Code for Siebel Genesis Project
17076 ,p_OLD_SOURCE_CODE => l_ins_hist_csr.OLD_SOURCE_CODE
17077 ,p_NEW_SOURCE_CODE => l_ins_hist_csr.NEW_SOURCE_CODE
17078 -- End Add Code for Siebel Genesis Project
17079 );
17080
17081 END IF;
17082
17083 EXCEPTION
17084
17085 WHEN NO_DATA_FOUND THEN
17086
17087 IF (l_mod_value = 0) THEN
17088
17089 -- If the mod value is 0 then dump all the columns both changed and unchanged
17090 -- changed columns have old and new values while the unchanged values have old and new values
17091 -- exactly same
17092 IF (p_instance_rec.INSTANCE_NUMBER = FND_API.G_MISS_CHAR) THEN
17093 p_instance_rec.INSTANCE_NUMBER := l_curr_instance_rec.INSTANCE_NUMBER;
17094 END IF;
17095 IF (p_instance_rec.EXTERNAL_REFERENCE = FND_API.G_MISS_CHAR) THEN
17096 p_instance_rec.EXTERNAL_REFERENCE := l_curr_instance_rec.EXTERNAL_REFERENCE;
17097 END IF;
17098 IF (p_instance_rec.INVENTORY_ITEM_ID = FND_API.G_MISS_NUM) THEN
17099 p_instance_rec.INVENTORY_ITEM_ID := l_curr_instance_rec.INVENTORY_ITEM_ID;
17100 END IF;
17101 IF (p_instance_rec.INVENTORY_REVISION = FND_API.G_MISS_CHAR) THEN
17102 p_instance_rec.INVENTORY_REVISION := l_curr_instance_rec.INVENTORY_REVISION;
17103 END IF;
17104 IF (p_instance_rec.INV_MASTER_ORGANIZATION_ID = FND_API.G_MISS_NUM) THEN
17105 p_instance_rec.INV_MASTER_ORGANIZATION_ID := l_curr_instance_rec.INV_MASTER_ORGANIZATION_ID;
17106 END IF;
17107 IF (p_instance_rec.SERIAL_NUMBER = FND_API.G_MISS_CHAR) THEN
17108 p_instance_rec.SERIAL_NUMBER := l_curr_instance_rec.SERIAL_NUMBER;
17109 END IF;
17110 IF (p_instance_rec.MFG_SERIAL_NUMBER_FLAG = FND_API.G_MISS_CHAR) THEN
17111 p_instance_rec.MFG_SERIAL_NUMBER_FLAG := l_curr_instance_rec.MFG_SERIAL_NUMBER_FLAG;
17112 END IF;
17113 IF (p_instance_rec.LOT_NUMBER = FND_API.G_MISS_CHAR) THEN
17114 p_instance_rec.LOT_NUMBER := l_curr_instance_rec.LOT_NUMBER;
17115 END IF;
17116 IF (p_instance_rec.QUANTITY = FND_API.G_MISS_NUM) THEN
17117 p_instance_rec.QUANTITY := l_curr_instance_rec.QUANTITY;
17118 END IF;
17119 IF (p_instance_rec.UNIT_OF_MEASURE = FND_API.G_MISS_CHAR) THEN
17120 p_instance_rec.UNIT_OF_MEASURE := l_curr_instance_rec.UNIT_OF_MEASURE;
17121 END IF;
17122 IF (p_instance_rec.ACCOUNTING_CLASS_CODE = FND_API.G_MISS_CHAR) THEN
17123 p_instance_rec.ACCOUNTING_CLASS_CODE := l_curr_instance_rec.ACCOUNTING_CLASS_CODE;
17124 END IF;
17125 IF (p_instance_rec.INSTANCE_CONDITION_ID = FND_API.G_MISS_NUM) THEN
17126 p_instance_rec.INSTANCE_CONDITION_ID := l_curr_instance_rec.INSTANCE_CONDITION_ID;
17127 END IF;
17128 IF (p_instance_rec.INSTANCE_STATUS_ID = FND_API.G_MISS_NUM) THEN
17129 p_instance_rec.INSTANCE_STATUS_ID := l_curr_instance_rec.INSTANCE_STATUS_ID;
17130 END IF;
17131 IF (p_instance_rec.CUSTOMER_VIEW_FLAG = FND_API.G_MISS_CHAR) THEN
17132 p_instance_rec.CUSTOMER_VIEW_FLAG := l_curr_instance_rec.CUSTOMER_VIEW_FLAG;
17133 END IF;
17134 IF (p_instance_rec.MERCHANT_VIEW_FLAG = FND_API.G_MISS_CHAR) THEN
17135 p_instance_rec.MERCHANT_VIEW_FLAG := l_curr_instance_rec.MERCHANT_VIEW_FLAG;
17136 END IF;
17137 IF (p_instance_rec.SELLABLE_FLAG = FND_API.G_MISS_CHAR) THEN
17138 p_instance_rec.SELLABLE_FLAG := l_curr_instance_rec.SELLABLE_FLAG;
17139 END IF;
17140 IF (p_instance_rec.SYSTEM_ID = FND_API.G_MISS_NUM) THEN
17141 p_instance_rec.SYSTEM_ID := l_curr_instance_rec.SYSTEM_ID;
17142 END IF;
17143 IF (p_instance_rec.INSTANCE_TYPE_CODE = FND_API.G_MISS_CHAR) THEN
17144 p_instance_rec.INSTANCE_TYPE_CODE := l_curr_instance_rec.INSTANCE_TYPE_CODE;
17145 END IF;
17146 IF (p_instance_rec.ACTIVE_START_DATE = FND_API.G_MISS_DATE) THEN
17147 p_instance_rec.ACTIVE_START_DATE := l_curr_instance_rec.ACTIVE_START_DATE;
17148 END IF;
17149 IF (p_instance_rec.ACTIVE_END_DATE = FND_API.G_MISS_DATE) THEN
17150 p_instance_rec.ACTIVE_END_DATE := l_curr_instance_rec.ACTIVE_END_DATE;
17151 END IF;
17152 IF (p_instance_rec.LOCATION_TYPE_CODE = FND_API.G_MISS_CHAR) THEN
17153 p_instance_rec.LOCATION_TYPE_CODE := l_curr_instance_rec.LOCATION_TYPE_CODE;
17154 END IF;
17155 IF (p_instance_rec.LOCATION_ID = FND_API.G_MISS_NUM) THEN
17156 p_instance_rec.LOCATION_ID := l_curr_instance_rec.LOCATION_ID;
17157 END IF;
17158 IF (p_instance_rec.INV_ORGANIZATION_ID = FND_API.G_MISS_NUM) THEN
17159 p_instance_rec.INV_ORGANIZATION_ID := l_curr_instance_rec.INV_ORGANIZATION_ID;
17160 END IF;
17161 IF (p_instance_rec.INV_SUBINVENTORY_NAME = FND_API.G_MISS_CHAR) THEN
17162 p_instance_rec.INV_SUBINVENTORY_NAME := l_curr_instance_rec.INV_SUBINVENTORY_NAME;
17163 END IF;
17164 IF (p_instance_rec.INV_LOCATOR_ID = FND_API.G_MISS_NUM) THEN
17165 p_instance_rec.INV_LOCATOR_ID := l_curr_instance_rec.INV_LOCATOR_ID;
17166 END IF;
17167 IF (p_instance_rec.PA_PROJECT_ID = FND_API.G_MISS_NUM) THEN
17168 p_instance_rec.PA_PROJECT_ID := l_curr_instance_rec.PA_PROJECT_ID;
17169 END IF;
17170 IF (p_instance_rec.PA_PROJECT_TASK_ID = FND_API.G_MISS_NUM) THEN
17171 p_instance_rec.PA_PROJECT_TASK_ID := l_curr_instance_rec.PA_PROJECT_TASK_ID;
17172 END IF;
17173 IF (p_instance_rec.IN_TRANSIT_ORDER_LINE_ID = FND_API.G_MISS_NUM) THEN
17174 p_instance_rec.IN_TRANSIT_ORDER_LINE_ID := l_curr_instance_rec.IN_TRANSIT_ORDER_LINE_ID;
17175 END IF;
17176 IF (p_instance_rec.LAST_OE_AGREEMENT_ID = FND_API.G_MISS_NUM) THEN
17177 p_instance_rec.LAST_OE_AGREEMENT_ID := l_curr_instance_rec.LAST_OE_AGREEMENT_ID;
17178 END IF;
17179 IF (p_instance_rec.LAST_OE_ORDER_LINE_ID = FND_API.G_MISS_NUM) THEN
17180 p_instance_rec.LAST_OE_ORDER_LINE_ID := l_curr_instance_rec.LAST_OE_ORDER_LINE_ID;
17181 END IF;
17182 IF (p_instance_rec.LAST_OE_RMA_LINE_ID = FND_API.G_MISS_NUM) THEN
17183 p_instance_rec.LAST_OE_RMA_LINE_ID := l_curr_instance_rec.LAST_OE_RMA_LINE_ID;
17184 END IF;
17185 IF (p_instance_rec.LAST_WIP_JOB_ID = FND_API.G_MISS_NUM) THEN
17186 p_instance_rec.LAST_WIP_JOB_ID := l_curr_instance_rec.LAST_WIP_JOB_ID;
17187 END IF;
17188 IF (p_instance_rec.LAST_PO_PO_LINE_ID = FND_API.G_MISS_NUM) THEN
17189 p_instance_rec.LAST_PO_PO_LINE_ID := l_curr_instance_rec.LAST_PO_PO_LINE_ID;
17190 END IF;
17191 IF (p_instance_rec.LAST_PA_PROJECT_ID = FND_API.G_MISS_NUM) THEN
17192 p_instance_rec.LAST_PA_PROJECT_ID := l_curr_instance_rec.LAST_PA_PROJECT_ID;
17193 END IF;
17194 IF (p_instance_rec.LAST_PA_TASK_ID = FND_API.G_MISS_NUM) THEN
17195 p_instance_rec.LAST_PA_TASK_ID := l_curr_instance_rec.LAST_PA_TASK_ID;
17196 END IF;
17197 IF (p_instance_rec.LAST_TXN_LINE_DETAIL_ID = FND_API.G_MISS_NUM) THEN
17198 p_instance_rec.LAST_TXN_LINE_DETAIL_ID := l_curr_instance_rec.LAST_TXN_LINE_DETAIL_ID;
17199 END IF;
17200 IF (p_instance_rec.LAST_OE_PO_NUMBER = FND_API.G_MISS_CHAR) THEN
17201 p_instance_rec.LAST_OE_PO_NUMBER := l_curr_instance_rec.LAST_OE_PO_NUMBER;
17202 END IF;
17203 IF (p_instance_rec.WIP_JOB_ID = FND_API.G_MISS_NUM) THEN
17204 p_instance_rec.WIP_JOB_ID := l_curr_instance_rec.WIP_JOB_ID;
17205 END IF;
17206 IF (p_instance_rec.PO_ORDER_LINE_ID = FND_API.G_MISS_NUM) THEN
17207 p_instance_rec.PO_ORDER_LINE_ID := l_curr_instance_rec.PO_ORDER_LINE_ID;
17208 END IF;
17209 IF (p_instance_rec.INSTALL_DATE = FND_API.G_MISS_DATE) THEN
17210 p_instance_rec.INSTALL_DATE := l_curr_instance_rec.INSTALL_DATE;
17211 END IF;
17212 IF (p_instance_rec.MANUALLY_CREATED_FLAG = FND_API.G_MISS_CHAR) THEN
17213 p_instance_rec.MANUALLY_CREATED_FLAG := l_curr_instance_rec.MANUALLY_CREATED_FLAG;
17214 END IF;
17215 IF (p_instance_rec.RETURN_BY_DATE = FND_API.G_MISS_DATE) THEN
17216 p_instance_rec.RETURN_BY_DATE := l_curr_instance_rec.RETURN_BY_DATE;
17217 END IF;
17218 IF (p_instance_rec.ACTUAL_RETURN_DATE = FND_API.G_MISS_DATE) THEN
17219 p_instance_rec.ACTUAL_RETURN_DATE := l_curr_instance_rec.ACTUAL_RETURN_DATE;
17220 END IF;
17221 IF (p_instance_rec.CREATION_COMPLETE_FLAG = FND_API.G_MISS_CHAR) THEN
17222 p_instance_rec.CREATION_COMPLETE_FLAG := l_curr_instance_rec.CREATION_COMPLETE_FLAG;
17223 END IF;
17224 IF (p_instance_rec.COMPLETENESS_FLAG = FND_API.G_MISS_CHAR) THEN
17225 p_instance_rec.COMPLETENESS_FLAG := l_curr_instance_rec.COMPLETENESS_FLAG;
17226 END IF;
17227 IF (p_instance_rec.CONTEXT = FND_API.G_MISS_CHAR) THEN
17228 p_instance_rec.CONTEXT := l_curr_instance_rec.CONTEXT;
17229 END IF;
17230 IF (p_instance_rec.ATTRIBUTE1 = FND_API.G_MISS_CHAR) THEN
17231 p_instance_rec.ATTRIBUTE1 := l_curr_instance_rec.ATTRIBUTE1;
17232 END IF;
17233 IF (p_instance_rec.ATTRIBUTE2 = FND_API.G_MISS_CHAR) THEN
17234 p_instance_rec.ATTRIBUTE2 := l_curr_instance_rec.ATTRIBUTE2;
17235 END IF;
17236 IF (p_instance_rec.ATTRIBUTE3 = FND_API.G_MISS_CHAR) THEN
17237 p_instance_rec.ATTRIBUTE3 := l_curr_instance_rec.ATTRIBUTE3;
17238 END IF;
17239 IF (p_instance_rec.ATTRIBUTE4 = FND_API.G_MISS_CHAR) THEN
17240 p_instance_rec.ATTRIBUTE4 := l_curr_instance_rec.ATTRIBUTE4;
17241 END IF;
17242 IF (p_instance_rec.ATTRIBUTE5 = FND_API.G_MISS_CHAR) THEN
17243 p_instance_rec.ATTRIBUTE5 := l_curr_instance_rec.ATTRIBUTE5;
17244 END IF;
17245 IF (p_instance_rec.ATTRIBUTE6 = FND_API.G_MISS_CHAR) THEN
17246 p_instance_rec.ATTRIBUTE6 := l_curr_instance_rec.ATTRIBUTE6;
17247 END IF;
17248 IF (p_instance_rec.ATTRIBUTE7 = FND_API.G_MISS_CHAR) THEN
17249 p_instance_rec.ATTRIBUTE7 := l_curr_instance_rec.ATTRIBUTE7;
17250 END IF;
17251 IF (p_instance_rec.ATTRIBUTE8 = FND_API.G_MISS_CHAR) THEN
17252 p_instance_rec.ATTRIBUTE8 := l_curr_instance_rec.ATTRIBUTE8;
17253 END IF;
17254 IF (p_instance_rec.ATTRIBUTE9 = FND_API.G_MISS_CHAR) THEN
17255 p_instance_rec.ATTRIBUTE9 := l_curr_instance_rec.ATTRIBUTE9;
17256 END IF;
17257 IF (p_instance_rec.ATTRIBUTE10 = FND_API.G_MISS_CHAR) THEN
17258 p_instance_rec.ATTRIBUTE10 := l_curr_instance_rec.ATTRIBUTE10;
17259 END IF;
17260 IF (p_instance_rec.ATTRIBUTE11 = FND_API.G_MISS_CHAR) THEN
17261 p_instance_rec.ATTRIBUTE11 := l_curr_instance_rec.ATTRIBUTE11;
17262 END IF;
17263 IF (p_instance_rec.ATTRIBUTE12 = FND_API.G_MISS_CHAR) THEN
17264 p_instance_rec.ATTRIBUTE12 := l_curr_instance_rec.ATTRIBUTE12;
17265 END IF;
17266 IF (p_instance_rec.ATTRIBUTE13 = FND_API.G_MISS_CHAR) THEN
17267 p_instance_rec.ATTRIBUTE13 := l_curr_instance_rec.ATTRIBUTE13;
17268 END IF;
17269 IF (p_instance_rec.ATTRIBUTE14 = FND_API.G_MISS_CHAR) THEN
17270 p_instance_rec.ATTRIBUTE14 := l_curr_instance_rec.ATTRIBUTE14;
17271 END IF;
17272 IF (p_instance_rec.ATTRIBUTE15 = FND_API.G_MISS_CHAR) THEN
17273 p_instance_rec.ATTRIBUTE15 := l_curr_instance_rec.ATTRIBUTE15;
17274 END IF;
17275 IF (p_instance_rec.OBJECT_VERSION_NUMBER = FND_API.G_MISS_NUM) THEN
17276 p_instance_rec.OBJECT_VERSION_NUMBER := l_curr_instance_rec.OBJECT_VERSION_NUMBER;
17277 END IF;
17278 IF (p_instance_rec.INSTALL_LOCATION_TYPE_CODE = FND_API.G_MISS_CHAR) THEN
17279 p_instance_rec.INSTALL_LOCATION_TYPE_CODE := l_curr_instance_rec.INSTALL_LOCATION_TYPE_CODE;
17280 END IF;
17281 IF (p_instance_rec.INSTALL_LOCATION_ID = FND_API.G_MISS_NUM) THEN
17282 p_instance_rec.INSTALL_LOCATION_ID := l_curr_instance_rec.INSTALL_LOCATION_ID;
17283 END IF;
17284 IF (p_instance_rec.INSTANCE_USAGE_CODE = FND_API.G_MISS_CHAR) THEN
17285 p_instance_rec.INSTANCE_USAGE_CODE := l_curr_instance_rec.INSTANCE_USAGE_CODE;
17286 END IF;
17287 IF L_LAST_VLD_ORGANIZATION_ID = FND_API.G_MISS_NUM THEN
17288 l_last_vld_organization_id := l_cur_instance_rec.LAST_VLD_ORGANIZATION_ID;
17289 END IF;
17290 IF (p_instance_rec.CONFIG_INST_REV_NUM = FND_API.G_MISS_NUM) THEN
17291 p_instance_rec.CONFIG_INST_REV_NUM := l_curr_instance_rec.CONFIG_INST_REV_NUM;
17292 END IF;
17293 IF (p_instance_rec.CONFIG_VALID_STATUS = FND_API.G_MISS_CHAR) THEN
17294 p_instance_rec.CONFIG_VALID_STATUS := l_curr_instance_rec.CONFIG_VALID_STATUS;
17295 END IF;
17296 IF (p_instance_rec.INSTANCE_DESCRIPTION = FND_API.G_MISS_CHAR) THEN
17297 p_instance_rec.INSTANCE_DESCRIPTION := l_curr_instance_rec.INSTANCE_DESCRIPTION;
17298 END IF;
17299 --start of code for eam integration--
17300 IF (p_instance_rec.NETWORK_ASSET_FLAG = FND_API.G_MISS_CHAR) THEN
17301 p_instance_rec.NETWORK_ASSET_FLAG := l_curr_instance_rec.NETWORK_ASSET_FLAG;
17302 END IF;
17303 IF (p_instance_rec.MAINTAINABLE_FLAG = FND_API.G_MISS_CHAR) THEN
17304 p_instance_rec.MAINTAINABLE_FLAG := l_curr_instance_rec.MAINTAINABLE_FLAG;
17305 END IF;
17306 IF (p_instance_rec.PN_LOCATION_ID = FND_API.G_MISS_NUM) THEN
17307 p_instance_rec.PN_LOCATION_ID := l_curr_instance_rec.PN_LOCATION_ID;
17308 END IF;
17309 IF (p_instance_rec.ASSET_CRITICALITY_CODE = FND_API.G_MISS_CHAR) THEN
17310 p_instance_rec.ASSET_CRITICALITY_CODE := l_curr_instance_rec.ASSET_CRITICALITY_CODE;
17311 END IF;
17312 IF (p_instance_rec.CATEGORY_ID = FND_API.G_MISS_NUM) THEN
17313 p_instance_rec.CATEGORY_ID := l_curr_instance_rec.CATEGORY_ID;
17314 END IF;
17315 IF (p_instance_rec.EQUIPMENT_GEN_OBJECT_ID = FND_API.G_MISS_NUM) THEN
17316 p_instance_rec.EQUIPMENT_GEN_OBJECT_ID := l_curr_instance_rec.EQUIPMENT_GEN_OBJECT_ID;
17317 END IF;
17318 IF (p_instance_rec.INSTANTIATION_FLAG = FND_API.G_MISS_CHAR) THEN
17319 p_instance_rec.INSTANTIATION_FLAG := l_curr_instance_rec.INSTANTIATION_FLAG;
17320 END IF;
17321 IF (p_instance_rec.LINEAR_LOCATION_ID = FND_API.G_MISS_NUM) THEN
17322 p_instance_rec.LINEAR_LOCATION_ID := l_curr_instance_rec.LINEAR_LOCATION_ID;
17323 END IF;
17324 IF (p_instance_rec.OPERATIONAL_LOG_FLAG = FND_API.G_MISS_CHAR) THEN
17325 p_instance_rec.OPERATIONAL_LOG_FLAG := l_curr_instance_rec.OPERATIONAL_LOG_FLAG;
17326 END IF;
17327
17328 IF (p_instance_rec.CHECKIN_STATUS = FND_API.G_MISS_NUM) THEN
17329 p_instance_rec.CHECKIN_STATUS := l_curr_instance_rec.CHECKIN_STATUS;
17330 END IF;
17331 IF (p_instance_rec.SUPPLIER_WARRANTY_EXP_DATE = FND_API.G_MISS_DATE) THEN
17332 p_instance_rec.SUPPLIER_WARRANTY_EXP_DATE := l_curr_instance_rec.SUPPLIER_WARRANTY_EXP_DATE;
17333 END IF;
17334
17335 IF (p_instance_rec.ATTRIBUTE16 = FND_API.G_MISS_CHAR) THEN
17336 p_instance_rec.ATTRIBUTE16 := l_curr_instance_rec.ATTRIBUTE16;
17337 END IF;
17338 IF (p_instance_rec.ATTRIBUTE17 = FND_API.G_MISS_CHAR) THEN
17339 p_instance_rec.ATTRIBUTE17 := l_curr_instance_rec.ATTRIBUTE17;
17340 END IF;
17341 IF (p_instance_rec.ATTRIBUTE18 = FND_API.G_MISS_CHAR) THEN
17342 p_instance_rec.ATTRIBUTE18 := l_curr_instance_rec.ATTRIBUTE18;
17343 END IF;
17344 IF (p_instance_rec.ATTRIBUTE19 = FND_API.G_MISS_CHAR) THEN
17345 p_instance_rec.ATTRIBUTE19 := l_curr_instance_rec.ATTRIBUTE19;
17346 END IF;
17347 IF (p_instance_rec.ATTRIBUTE20 = FND_API.G_MISS_CHAR) THEN
17348 p_instance_rec.ATTRIBUTE20 := l_curr_instance_rec.ATTRIBUTE20;
17349 END IF;
17350 IF (p_instance_rec.ATTRIBUTE21 = FND_API.G_MISS_CHAR) THEN
17351 p_instance_rec.ATTRIBUTE21 := l_curr_instance_rec.ATTRIBUTE21;
17352 END IF;
17353 IF (p_instance_rec.ATTRIBUTE22 = FND_API.G_MISS_CHAR) THEN
17354 p_instance_rec.ATTRIBUTE22 := l_curr_instance_rec.ATTRIBUTE22;
17355 END IF;
17356 IF (p_instance_rec.ATTRIBUTE23 = FND_API.G_MISS_CHAR) THEN
17357 p_instance_rec.ATTRIBUTE23 := l_curr_instance_rec.ATTRIBUTE23;
17358 END IF;
17359 IF (p_instance_rec.ATTRIBUTE24 = FND_API.G_MISS_CHAR) THEN
17360 p_instance_rec.ATTRIBUTE24 := l_curr_instance_rec.ATTRIBUTE24;
17361 END IF;
17362 IF (p_instance_rec.ATTRIBUTE25 = FND_API.G_MISS_CHAR) THEN
17363 p_instance_rec.ATTRIBUTE25 := l_curr_instance_rec.ATTRIBUTE25;
17364 END IF;
17365 IF (p_instance_rec.ATTRIBUTE26 = FND_API.G_MISS_CHAR) THEN
17366 p_instance_rec.ATTRIBUTE26 := l_curr_instance_rec.ATTRIBUTE26;
17367 END IF;
17368 IF (p_instance_rec.ATTRIBUTE27 = FND_API.G_MISS_CHAR) THEN
17369 p_instance_rec.ATTRIBUTE27 := l_curr_instance_rec.ATTRIBUTE27;
17370 END IF;
17371 IF (p_instance_rec.ATTRIBUTE28 = FND_API.G_MISS_CHAR) THEN
17372 p_instance_rec.ATTRIBUTE28 := l_curr_instance_rec.ATTRIBUTE28;
17373 END IF;
17374 IF (p_instance_rec.ATTRIBUTE29 = FND_API.G_MISS_CHAR) THEN
17375 p_instance_rec.ATTRIBUTE29 := l_curr_instance_rec.ATTRIBUTE29;
17376 END IF;
17377 IF (p_instance_rec.ATTRIBUTE30 = FND_API.G_MISS_CHAR) THEN
17378 p_instance_rec.ATTRIBUTE30 := l_curr_instance_rec.ATTRIBUTE30;
17379 END IF;
17380
17381 --end of code for eam integration--
17382 -- Addition of columns for FA Integration
17383 IF (p_instance_rec.PURCHASE_UNIT_PRICE = FND_API.G_MISS_NUM) THEN
17384 p_instance_rec.PURCHASE_UNIT_PRICE := l_curr_instance_rec.PURCHASE_UNIT_PRICE;
17385 END IF;
17386
17387 IF (p_instance_rec.PURCHASE_CURRENCY_CODE = FND_API.G_MISS_CHAR) THEN
17388 p_instance_rec.PURCHASE_CURRENCY_CODE := l_curr_instance_rec.PURCHASE_CURRENCY_CODE;
17389 END IF;
17390
17391 IF (p_instance_rec.PAYABLES_UNIT_PRICE = FND_API.G_MISS_NUM) THEN
17392 p_instance_rec.PAYABLES_UNIT_PRICE := l_curr_instance_rec.PAYABLES_UNIT_PRICE;
17393 END IF;
17394
17395 IF (p_instance_rec.PAYABLES_CURRENCY_CODE = FND_API.G_MISS_CHAR) THEN
17396 p_instance_rec.PAYABLES_CURRENCY_CODE := l_curr_instance_rec.PAYABLES_CURRENCY_CODE;
17397 END IF;
17398
17399 IF (p_instance_rec.SALES_UNIT_PRICE = FND_API.G_MISS_NUM) THEN
17400 p_instance_rec.SALES_UNIT_PRICE := l_curr_instance_rec.SALES_UNIT_PRICE;
17401 END IF;
17402
17403 IF (p_instance_rec.SALES_CURRENCY_CODE = FND_API.G_MISS_CHAR) THEN
17404 p_instance_rec.SALES_CURRENCY_CODE := l_curr_instance_rec.SALES_CURRENCY_CODE;
17405 END IF;
17406
17407 IF (p_instance_rec.OPERATIONAL_STATUS_CODE = FND_API.G_MISS_CHAR) THEN
17408 p_instance_rec.OPERATIONAL_STATUS_CODE := l_curr_instance_rec.OPERATIONAL_STATUS_CODE;
17409 END IF;
17410 -- End addition of columns for FA Integration
17411
17412 CSI_ITEM_INSTANCES_H_PKG.Insert_Row
17413 ( px_INSTANCE_HISTORY_ID => l_csi_item_instance_h_id
17414 ,p_INSTANCE_ID => p_instance_rec.instance_id
17415 ,p_TRANSACTION_ID => p_txn_rec.TRANSACTION_ID
17416 ,p_OLD_INSTANCE_NUMBER => l_curr_instance_rec.INSTANCE_NUMBER
17417 ,p_NEW_INSTANCE_NUMBER => p_instance_rec.INSTANCE_NUMBER
17418 ,p_OLD_EXTERNAL_REFERENCE => l_curr_instance_rec.EXTERNAL_REFERENCE
17419 ,p_NEW_EXTERNAL_REFERENCE => p_instance_rec.EXTERNAL_REFERENCE
17420 ,p_OLD_INVENTORY_ITEM_ID => l_curr_instance_rec.INVENTORY_ITEM_ID
17421 ,p_NEW_INVENTORY_ITEM_ID => p_instance_rec.INVENTORY_ITEM_ID
17422 ,p_OLD_INVENTORY_REVISION => l_curr_instance_rec.INVENTORY_REVISION
17423 ,p_NEW_INVENTORY_REVISION => p_instance_rec.INVENTORY_REVISION
17424 ,p_OLD_INV_MASTER_ORGZN_ID => l_curr_instance_rec.INV_MASTER_ORGANIZATION_ID
17425 ,p_NEW_INV_MASTER_ORGZN_ID => p_instance_rec.INV_MASTER_ORGANIZATION_ID
17426 ,p_OLD_SERIAL_NUMBER => l_curr_instance_rec.SERIAL_NUMBER
17427 ,p_NEW_SERIAL_NUMBER => p_instance_rec.SERIAL_NUMBER
17428 ,p_OLD_MFG_SERIAL_NUMBER_FLAG => l_curr_instance_rec.MFG_SERIAL_NUMBER_FLAG
17429 ,p_NEW_MFG_SERIAL_NUMBER_FLAG => p_instance_rec.MFG_SERIAL_NUMBER_FLAG
17430 ,p_OLD_LOT_NUMBER => l_curr_instance_rec.LOT_NUMBER
17431 ,p_NEW_LOT_NUMBER => p_instance_rec.LOT_NUMBER
17432 ,p_OLD_QUANTITY => l_curr_instance_rec.QUANTITY
17433 ,p_NEW_QUANTITY => p_instance_rec.QUANTITY
17434 ,p_OLD_UNIT_OF_MEASURE => l_curr_instance_rec.UNIT_OF_MEASURE
17435 ,p_NEW_UNIT_OF_MEASURE => p_instance_rec.UNIT_OF_MEASURE
17436 ,p_OLD_ACCOUNTING_CLASS_CODE => l_curr_instance_rec.ACCOUNTING_CLASS_CODE
17437 ,p_NEW_ACCOUNTING_CLASS_CODE => p_instance_rec.ACCOUNTING_CLASS_CODE
17438 ,p_OLD_INSTANCE_CONDITION_ID => l_curr_instance_rec.INSTANCE_CONDITION_ID
17439 ,p_NEW_INSTANCE_CONDITION_ID => p_instance_rec.INSTANCE_CONDITION_ID
17440 ,p_OLD_INSTANCE_STATUS_ID => l_curr_instance_rec.INSTANCE_STATUS_ID
17441 ,p_NEW_INSTANCE_STATUS_ID => p_instance_rec.INSTANCE_STATUS_ID
17442 ,p_OLD_CUSTOMER_VIEW_FLAG => l_curr_instance_rec.CUSTOMER_VIEW_FLAG
17443 ,p_NEW_CUSTOMER_VIEW_FLAG => p_instance_rec.CUSTOMER_VIEW_FLAG
17444 ,p_OLD_MERCHANT_VIEW_FLAG => l_curr_instance_rec.MERCHANT_VIEW_FLAG
17445 ,p_NEW_MERCHANT_VIEW_FLAG => p_instance_rec.MERCHANT_VIEW_FLAG
17446 ,p_OLD_SELLABLE_FLAG => l_curr_instance_rec.SELLABLE_FLAG
17447 ,p_NEW_SELLABLE_FLAG => p_instance_rec.SELLABLE_FLAG
17448 ,p_OLD_SYSTEM_ID => l_curr_instance_rec.SYSTEM_ID
17449 ,p_NEW_SYSTEM_ID => p_instance_rec.SYSTEM_ID
17450 ,p_OLD_INSTANCE_TYPE_CODE => l_curr_instance_rec.INSTANCE_TYPE_CODE
17451 ,p_NEW_INSTANCE_TYPE_CODE => p_instance_rec.INSTANCE_TYPE_CODE
17452 ,p_OLD_ACTIVE_START_DATE => l_curr_instance_rec.ACTIVE_START_DATE
17453 ,p_NEW_ACTIVE_START_DATE => p_instance_rec.ACTIVE_START_DATE
17454 ,p_OLD_ACTIVE_END_DATE => l_curr_instance_rec.ACTIVE_END_DATE
17455 ,p_NEW_ACTIVE_END_DATE => p_instance_rec.ACTIVE_END_DATE
17456 ,p_OLD_LOCATION_TYPE_CODE => l_curr_instance_rec.LOCATION_TYPE_CODE
17457 ,p_NEW_LOCATION_TYPE_CODE => p_instance_rec.LOCATION_TYPE_CODE
17458 ,p_OLD_LOCATION_ID => l_curr_instance_rec.LOCATION_ID
17459 ,p_NEW_LOCATION_ID => p_instance_rec.LOCATION_ID
17460 ,p_OLD_INV_ORGANIZATION_ID => l_curr_instance_rec.INV_ORGANIZATION_ID
17461 ,p_NEW_INV_ORGANIZATION_ID => p_instance_rec.INV_ORGANIZATION_ID
17462 ,p_OLD_INV_SUBINVENTORY_NAME => l_curr_instance_rec.INV_SUBINVENTORY_NAME
17463 ,p_NEW_INV_SUBINVENTORY_NAME => p_instance_rec.INV_SUBINVENTORY_NAME
17464 ,p_OLD_INV_LOCATOR_ID => l_curr_instance_rec.INV_LOCATOR_ID
17465 ,p_NEW_INV_LOCATOR_ID => p_instance_rec.INV_LOCATOR_ID
17466 ,p_OLD_PA_PROJECT_ID => l_curr_instance_rec.PA_PROJECT_ID
17467 ,p_NEW_PA_PROJECT_ID => p_instance_rec.PA_PROJECT_ID
17468 ,p_OLD_PA_PROJECT_TASK_ID => l_curr_instance_rec.PA_PROJECT_TASK_ID
17469 ,p_NEW_PA_PROJECT_TASK_ID => p_instance_rec.PA_PROJECT_TASK_ID
17470 ,p_OLD_IN_TRANSIT_ORDER_LINE_ID => l_curr_instance_rec.IN_TRANSIT_ORDER_LINE_ID
17471 ,p_NEW_IN_TRANSIT_ORDER_LINE_ID => p_instance_rec.IN_TRANSIT_ORDER_LINE_ID
17472 ,p_OLD_WIP_JOB_ID => l_curr_instance_rec.WIP_JOB_ID
17473 ,p_NEW_WIP_JOB_ID => p_instance_rec.WIP_JOB_ID
17474 ,p_OLD_PO_ORDER_LINE_ID => l_curr_instance_rec.PO_ORDER_LINE_ID
17475 ,p_NEW_PO_ORDER_LINE_ID => p_instance_rec.PO_ORDER_LINE_ID
17476 ,p_OLD_COMPLETENESS_FLAG => l_curr_instance_rec.COMPLETENESS_FLAG
17477 ,p_NEW_COMPLETENESS_FLAG => p_instance_rec.COMPLETENESS_FLAG
17478 ,p_FULL_DUMP_FLAG => 'Y'
17479 ,p_NEW_CONTEXT => p_instance_rec.CONTEXT
17480 ,P_OLD_CONTEXT => l_curr_instance_rec.CONTEXT
17481 ,p_NEW_ATTRIBUTE1 => p_instance_rec.ATTRIBUTE1
17482 ,p_OLD_ATTRIBUTE1 => l_curr_instance_rec.ATTRIBUTE1
17483 ,p_NEW_ATTRIBUTE2 => p_instance_rec.ATTRIBUTE2
17484 ,p_OLD_ATTRIBUTE2 => l_curr_instance_rec.ATTRIBUTE2
17485 ,p_NEW_ATTRIBUTE3 => p_instance_rec.ATTRIBUTE3
17486 ,p_OLD_ATTRIBUTE3 => l_curr_instance_rec.ATTRIBUTE3
17487 ,p_NEW_ATTRIBUTE4 => p_instance_rec.ATTRIBUTE4
17488 ,p_OLD_ATTRIBUTE4 => l_curr_instance_rec.ATTRIBUTE4
17489 ,p_NEW_ATTRIBUTE5 => p_instance_rec.ATTRIBUTE5
17490 ,p_OLD_ATTRIBUTE5 => l_curr_instance_rec.ATTRIBUTE5
17491 ,p_NEW_ATTRIBUTE6 => p_instance_rec.ATTRIBUTE6
17492 ,p_OLD_ATTRIBUTE6 => l_curr_instance_rec.ATTRIBUTE6
17493 ,p_NEW_ATTRIBUTE7 => p_instance_rec.ATTRIBUTE7
17494 ,p_OLD_ATTRIBUTE7 => l_curr_instance_rec.ATTRIBUTE7
17495 ,p_NEW_ATTRIBUTE8 => p_instance_rec.ATTRIBUTE8
17496 ,p_OLD_ATTRIBUTE8 => l_curr_instance_rec.ATTRIBUTE8
17497 ,p_NEW_ATTRIBUTE9 => p_instance_rec.ATTRIBUTE9
17498 ,p_OLD_ATTRIBUTE9 => l_curr_instance_rec.ATTRIBUTE9
17499 ,p_NEW_ATTRIBUTE10 => p_instance_rec.ATTRIBUTE10
17500 ,p_OLD_ATTRIBUTE10 => l_curr_instance_rec.ATTRIBUTE10
17501 ,p_NEW_ATTRIBUTE11 => p_instance_rec.ATTRIBUTE11
17502 ,p_OLD_ATTRIBUTE11 => l_curr_instance_rec.ATTRIBUTE11
17503 ,p_NEW_ATTRIBUTE12 => p_instance_rec.ATTRIBUTE12
17504 ,p_OLD_ATTRIBUTE12 => l_curr_instance_rec.ATTRIBUTE12
17505 ,p_NEW_ATTRIBUTE13 => p_instance_rec.ATTRIBUTE13
17506 ,p_OLD_ATTRIBUTE13 => l_curr_instance_rec.ATTRIBUTE13
17507 ,p_NEW_ATTRIBUTE14 => p_instance_rec.ATTRIBUTE14
17508 ,p_OLD_ATTRIBUTE14 => l_curr_instance_rec.ATTRIBUTE14
17509 ,p_NEW_ATTRIBUTE15 => p_instance_rec.ATTRIBUTE15
17510 ,p_OLD_ATTRIBUTE15 => l_curr_instance_rec.ATTRIBUTE15
17511 ,p_CREATED_BY => FND_GLOBAL.USER_ID
17512 ,p_CREATION_DATE => SYSDATE
17513 ,p_LAST_UPDATED_BY => FND_GLOBAL.USER_ID
17514 ,p_LAST_UPDATE_DATE => SYSDATE
17515 ,p_LAST_UPDATE_LOGIN => FND_GLOBAL.CONC_LOGIN_ID
17516 ,p_OBJECT_VERSION_NUMBER => 1
17517 ,p_OLD_INST_LOC_TYPE_CODE => l_curr_instance_rec.INSTALL_LOCATION_TYPE_CODE
17518 ,p_NEW_INST_LOC_TYPE_CODE => p_instance_rec.INSTALL_LOCATION_TYPE_CODE
17519 ,p_OLD_INST_LOC_ID => l_curr_instance_rec.INSTALL_LOCATION_ID
17520 ,p_NEW_INST_LOC_ID => p_instance_rec.INSTALL_LOCATION_ID
17521 ,p_OLD_INST_USAGE_CODE => l_curr_instance_rec.INSTANCE_USAGE_CODE
17522 ,p_NEW_INST_USAGE_CODE => p_instance_rec.INSTANCE_USAGE_CODE
17523 ,p_OLD_last_vld_organization_id => l_cur_instance_rec.last_vld_organization_id
17524 ,p_NEW_last_vld_organization_id => l_last_vld_organization_id
17525 ,p_OLD_CONFIG_INST_REV_NUM => l_curr_instance_rec.CONFIG_INST_REV_NUM
17526 ,p_NEW_CONFIG_INST_REV_NUM => p_instance_rec.CONFIG_INST_REV_NUM
17527 ,p_OLD_CONFIG_VALID_STATUS => l_curr_instance_rec.CONFIG_VALID_STATUS
17528 ,p_NEW_CONFIG_VALID_STATUS => p_instance_rec.CONFIG_VALID_STATUS
17529 ,p_OLD_INSTANCE_DESCRIPTION => l_curr_instance_rec.INSTANCE_DESCRIPTION
17530 ,p_NEW_INSTANCE_DESCRIPTION => p_instance_rec.INSTANCE_DESCRIPTION
17531 -- Added on jan1503
17532 ,p_OLD_INSTALL_DATE => l_curr_instance_rec.INSTALL_DATE
17533 ,p_NEW_INSTALL_DATE => p_instance_rec.INSTALL_DATE
17534 ,p_OLD_RETURN_BY_DATE => l_curr_instance_rec.RETURN_BY_DATE
17535 ,p_NEW_RETURN_BY_DATE => p_instance_rec.RETURN_BY_DATE
17536 ,p_OLD_ACTUAL_RETURN_DATE => l_curr_instance_rec.ACTUAL_RETURN_DATE
17537 ,p_NEW_ACTUAL_RETURN_DATE => p_instance_rec.ACTUAL_RETURN_DATE
17538 ,p_OLD_LAST_OE_AGREEMENT_ID => l_curr_instance_rec.LAST_OE_AGREEMENT_ID
17539 ,p_NEW_LAST_OE_AGREEMENT_ID => p_instance_rec.LAST_OE_AGREEMENT_ID
17540 ,p_OLD_LAST_OE_ORDER_LINE_ID => l_curr_instance_rec.LAST_OE_ORDER_LINE_ID
17541 ,p_NEW_LAST_OE_ORDER_LINE_ID => p_instance_rec.LAST_OE_ORDER_LINE_ID
17542 ,p_OLD_LAST_OE_RMA_LINE_ID => l_curr_instance_rec.LAST_OE_RMA_LINE_ID
17543 ,p_NEW_LAST_OE_RMA_LINE_ID => p_instance_rec.LAST_OE_RMA_LINE_ID
17544 ,p_OLD_LAST_WIP_JOB_ID => l_curr_instance_rec.LAST_WIP_JOB_ID
17545 ,p_NEW_LAST_WIP_JOB_ID => p_instance_rec.LAST_WIP_JOB_ID
17546 ,p_OLD_LAST_PO_PO_LINE_ID => l_curr_instance_rec.LAST_PO_PO_LINE_ID
17547 ,p_NEW_LAST_PO_PO_LINE_ID => p_instance_rec.LAST_PO_PO_LINE_ID
17548 ,p_OLD_LAST_PA_PROJECT_ID => l_curr_instance_rec.LAST_PA_PROJECT_ID
17549 ,p_NEW_LAST_PA_PROJECT_ID => p_instance_rec.LAST_PA_PROJECT_ID
17550 ,p_OLD_LAST_PA_TASK_ID => l_curr_instance_rec.LAST_PA_TASK_ID
17551 ,p_NEW_LAST_PA_TASK_ID => p_instance_rec.LAST_PA_TASK_ID
17552 ,p_OLD_LAST_TXN_LINE_DETAIL_ID => l_curr_instance_rec.LAST_TXN_LINE_DETAIL_ID
17553 ,p_NEW_LAST_TXN_LINE_DETAIL_ID => p_instance_rec.LAST_TXN_LINE_DETAIL_ID
17554 ,p_OLD_LAST_OE_PO_NUMBER => l_curr_instance_rec.LAST_OE_PO_NUMBER
17555 ,p_NEW_LAST_OE_PO_NUMBER => p_instance_rec.LAST_OE_PO_NUMBER
17556 --start of parameters addition for eam integration--
17557 ,p_OLD_NETWORK_ASSET_FLAG => l_curr_instance_rec.NETWORK_ASSET_FLAG
17558 ,p_NEW_NETWORK_ASSET_FLAG => p_instance_rec.NETWORK_ASSET_FLAG
17559 ,p_OLD_MAINTAINABLE_FLAG => l_curr_instance_rec.MAINTAINABLE_FLAG
17560 ,p_NEW_MAINTAINABLE_FLAG => p_instance_rec.MAINTAINABLE_FLAG
17561 ,p_OLD_PN_LOCATION_ID => l_curr_instance_rec.PN_LOCATION_ID
17562 ,p_NEW_PN_LOCATION_ID => p_instance_rec.PN_LOCATION_ID
17563 ,p_OLD_ASSET_CRITICALITY_CODE => l_curr_instance_rec.ASSET_CRITICALITY_CODE
17564 ,p_NEW_ASSET_CRITICALITY_CODE => p_instance_rec.ASSET_CRITICALITY_CODE
17565 ,p_OLD_CATEGORY_ID => l_curr_instance_rec.CATEGORY_ID
17566 ,p_NEW_CATEGORY_ID => p_instance_rec.CATEGORY_ID
17567 ,p_OLD_EQUIPMENT_GEN_OBJECT_ID => l_curr_instance_rec.EQUIPMENT_GEN_OBJECT_ID
17568 ,p_NEW_EQUIPMENT_GEN_OBJECT_ID => p_instance_rec.EQUIPMENT_GEN_OBJECT_ID
17569 ,p_OLD_INSTANTIATION_FLAG => l_curr_instance_rec.INSTANTIATION_FLAG
17570 ,p_NEW_INSTANTIATION_FLAG => p_instance_rec.INSTANTIATION_FLAG
17571 ,p_OLD_LINEAR_LOCATION_ID => l_curr_instance_rec.LINEAR_LOCATION_ID
17572 ,p_NEW_LINEAR_LOCATION_ID => p_instance_rec.LINEAR_LOCATION_ID
17573 ,p_OLD_OPERATIONAL_LOG_FLAG => l_curr_instance_rec.OPERATIONAL_LOG_FLAG
17574 ,p_NEW_OPERATIONAL_LOG_FLAG => p_instance_rec.OPERATIONAL_LOG_FLAG
17575 ,p_OLD_CHECKIN_STATUS => l_curr_instance_rec.CHECKIN_STATUS
17576 ,p_NEW_CHECKIN_STATUS => p_instance_rec.CHECKIN_STATUS
17577 ,p_OLD_SUP_WARRANTY_EXP_DATE => l_curr_instance_rec.SUPPLIER_WARRANTY_EXP_DATE
17578 ,p_NEW_SUP_WARRANTY_EXP_DATE => p_instance_rec.SUPPLIER_WARRANTY_EXP_DATE
17579 ,p_OLD_ATTRIBUTE16 => l_curr_instance_rec.ATTRIBUTE16
17580 ,p_NEW_ATTRIBUTE16 => p_instance_rec.ATTRIBUTE16
17581 ,p_OLD_ATTRIBUTE17 => l_curr_instance_rec.ATTRIBUTE17
17582 ,p_NEW_ATTRIBUTE17 => p_instance_rec.ATTRIBUTE17
17583 ,p_OLD_ATTRIBUTE18 => l_curr_instance_rec.ATTRIBUTE18
17584 ,p_NEW_ATTRIBUTE18 => p_instance_rec.ATTRIBUTE18
17585 ,p_OLD_ATTRIBUTE19 => l_curr_instance_rec.ATTRIBUTE19
17586 ,p_NEW_ATTRIBUTE19 => p_instance_rec.ATTRIBUTE19
17587 ,p_OLD_ATTRIBUTE20 => l_curr_instance_rec.ATTRIBUTE20
17588 ,p_NEW_ATTRIBUTE20 => p_instance_rec.ATTRIBUTE20
17589 ,p_OLD_ATTRIBUTE21 => l_curr_instance_rec.ATTRIBUTE21
17590 ,p_NEW_ATTRIBUTE21 => p_instance_rec.ATTRIBUTE21
17591 ,p_OLD_ATTRIBUTE22 => l_curr_instance_rec.ATTRIBUTE22
17592 ,p_NEW_ATTRIBUTE22 => p_instance_rec.ATTRIBUTE22
17593 ,p_OLD_ATTRIBUTE23 => l_curr_instance_rec.ATTRIBUTE23
17594 ,p_NEW_ATTRIBUTE23 => p_instance_rec.ATTRIBUTE23
17595 ,p_OLD_ATTRIBUTE24 => l_curr_instance_rec.ATTRIBUTE24
17596 ,p_NEW_ATTRIBUTE24 => p_instance_rec.ATTRIBUTE24
17597 ,p_OLD_ATTRIBUTE25 => l_curr_instance_rec.ATTRIBUTE25
17598 ,p_NEW_ATTRIBUTE25 => p_instance_rec.ATTRIBUTE25
17599 ,p_OLD_ATTRIBUTE26 => l_curr_instance_rec.ATTRIBUTE26
17600 ,p_NEW_ATTRIBUTE26 => p_instance_rec.ATTRIBUTE26
17601 ,p_OLD_ATTRIBUTE27 => l_curr_instance_rec.ATTRIBUTE27
17602 ,p_NEW_ATTRIBUTE27 => p_instance_rec.ATTRIBUTE27
17603 ,p_OLD_ATTRIBUTE28 => l_curr_instance_rec.ATTRIBUTE28
17604 ,p_NEW_ATTRIBUTE28 => p_instance_rec.ATTRIBUTE28
17605 ,p_OLD_ATTRIBUTE29 => l_curr_instance_rec.ATTRIBUTE29
17606 ,p_NEW_ATTRIBUTE29 => p_instance_rec.ATTRIBUTE29
17607 ,p_OLD_ATTRIBUTE30 => l_curr_instance_rec.ATTRIBUTE30
17608 ,p_NEW_ATTRIBUTE30 => p_instance_rec.ATTRIBUTE30
17609 --end of parameters addition for eam integration--
17610 -- Addition of columns for FA Integration
17611 ,p_OLD_PAYABLES_UNIT_PRICE => l_curr_instance_rec.PAYABLES_UNIT_PRICE
17612 ,p_NEW_PAYABLES_UNIT_PRICE => p_instance_rec.PAYABLES_UNIT_PRICE
17613 ,p_OLD_PAYABLES_CURRENCY_CODE => l_curr_instance_rec.PAYABLES_CURRENCY_CODE
17614 ,p_NEW_PAYABLES_CURRENCY_CODE => p_instance_rec.PAYABLES_CURRENCY_CODE
17615 ,p_OLD_PURCHASE_UNIT_PRICE => l_curr_instance_rec.PURCHASE_UNIT_PRICE
17616 ,p_NEW_PURCHASE_UNIT_PRICE => p_instance_rec.PURCHASE_UNIT_PRICE
17617 ,p_OLD_PURCHASE_CURRENCY_CODE => l_curr_instance_rec.PURCHASE_CURRENCY_CODE
17618 ,p_NEW_PURCHASE_CURRENCY_CODE => p_instance_rec.PURCHASE_CURRENCY_CODE
17619 ,p_OLD_SALES_UNIT_PRICE => l_curr_instance_rec.SALES_UNIT_PRICE
17620 ,p_NEW_SALES_UNIT_PRICE => p_instance_rec.SALES_UNIT_PRICE
17621 ,p_OLD_SALES_CURRENCY_CODE => l_curr_instance_rec.SALES_CURRENCY_CODE
17622 ,p_NEW_SALES_CURRENCY_CODE => p_instance_rec.SALES_CURRENCY_CODE
17623 ,p_OLD_OPERATIONAL_STATUS_CODE => l_curr_instance_rec.OPERATIONAL_STATUS_CODE
17624 ,p_NEW_OPERATIONAL_STATUS_CODE => p_instance_rec.OPERATIONAL_STATUS_CODE
17625 -- End addition of columns for FA Integration
17626 -- Begin Add Code for Siebel Genesis Project
17627 ,p_OLD_SOURCE_CODE => l_curr_instance_rec.SOURCE_CODE
17628 ,p_NEW_SOURCE_CODE => p_instance_rec.SOURCE_CODE
17629 -- End Add Code for Siebel Genesis Project
17630 );
17631
17632 ELSE -- l_mod_value <> 0
17633
17634 -- If the mod value is not equal to zero then dump only the changed columns
17635 -- while the unchanged values have old and new values as null
17636
17637 IF (p_instance_rec.instance_number = fnd_api.g_miss_char) OR
17638 NVL(p_instance_rec.instance_number, fnd_api.g_miss_char) = NVL(l_curr_instance_rec.instance_number, fnd_api.g_miss_char) THEN
17639 l_instance_hist_rec.old_instance_number := NULL;
17640 l_instance_hist_rec.new_instance_number := NULL;
17641 ELSIF
17642 NVL(l_curr_instance_rec.instance_number,fnd_api.g_miss_char) <> NVL(p_instance_rec.instance_number,fnd_api.g_miss_char) THEN
17643 l_instance_hist_rec.old_instance_number := l_curr_instance_rec.instance_number ;
17644 l_instance_hist_rec.new_instance_number := p_instance_rec.instance_number ;
17645 END IF;
17646 --
17647 IF (p_instance_rec.external_reference = fnd_api.g_miss_char) OR
17648 NVL(p_instance_rec.external_reference, fnd_api.g_miss_char) = NVL(l_curr_instance_rec.external_reference, fnd_api.g_miss_char) THEN
17649 l_instance_hist_rec.old_external_reference := NULL;
17650 l_instance_hist_rec.new_external_reference := NULL;
17651 ELSIF
17652 NVL(l_curr_instance_rec.external_reference,fnd_api.g_miss_char) <> NVL(p_instance_rec.external_reference,fnd_api.g_miss_char) THEN
17653 l_instance_hist_rec.old_external_reference := l_curr_instance_rec.external_reference ;
17654 l_instance_hist_rec.new_external_reference := p_instance_rec.external_reference ;
17655 END IF;
17656 --
17657 IF (p_instance_rec.inventory_item_id = fnd_api.g_miss_num) OR
17658 NVL(l_curr_instance_rec.inventory_item_id,fnd_api.g_miss_num) = NVL(p_instance_rec.inventory_item_id,fnd_api.g_miss_num) THEN
17659 l_instance_hist_rec.old_inventory_item_id := NULL;
17660 l_instance_hist_rec.new_inventory_item_id := NULL;
17661 ELSIF
17662 NVL(l_curr_instance_rec.inventory_item_id,fnd_api.g_miss_num) <> NVL(p_instance_rec.inventory_item_id,fnd_api.g_miss_num) THEN
17663 l_instance_hist_rec.old_inventory_item_id := l_curr_instance_rec.inventory_item_id ;
17664 l_instance_hist_rec.new_inventory_item_id := p_instance_rec.inventory_item_id ;
17665 END IF;
17666 --
17667 IF (p_instance_rec.inventory_revision = fnd_api.g_miss_char) OR
17668 NVL(l_curr_instance_rec.inventory_revision,fnd_api.g_miss_char) = NVL(p_instance_rec.inventory_revision,fnd_api.g_miss_char) THEN
17669 l_instance_hist_rec.old_inventory_revision := NULL;
17670 l_instance_hist_rec.new_inventory_revision := NULL;
17671 ELSIF
17672 NVL(l_curr_instance_rec.inventory_revision,fnd_api.g_miss_char) <> NVL(p_instance_rec.inventory_revision,fnd_api.g_miss_char) THEN
17673 l_instance_hist_rec.old_inventory_revision := l_curr_instance_rec.inventory_revision ;
17674 l_instance_hist_rec.new_inventory_revision := p_instance_rec.inventory_revision ;
17675 END IF;
17676 --
17677 IF (p_instance_rec.inv_master_organization_id = fnd_api.g_miss_num) OR
17678 NVL(l_curr_instance_rec.inv_master_organization_id,fnd_api.g_miss_num) = NVL(p_instance_rec.inv_master_organization_id,fnd_api.g_miss_num) THEN
17679 l_instance_hist_rec.old_inv_master_org_id := NULL;
17680 l_instance_hist_rec.new_inv_master_org_id := NULL;
17681 ELSIF
17682 NVL(l_curr_instance_rec.inv_master_organization_id,fnd_api.g_miss_num) <> NVL(p_instance_rec.inv_master_organization_id,fnd_api.g_miss_num) THEN
17683 l_instance_hist_rec.old_inv_master_org_id := l_curr_instance_rec.inv_master_organization_id ;
17684 l_instance_hist_rec.new_inv_master_org_id := p_instance_rec.inv_master_organization_id ;
17685 END IF;
17686 --
17687 IF (p_instance_rec.serial_number = fnd_api.g_miss_char) OR
17688 NVL(l_curr_instance_rec.serial_number,fnd_api.g_miss_char) = NVL(p_instance_rec.serial_number,fnd_api.g_miss_char) THEN
17689 l_instance_hist_rec.old_serial_number := NULL;
17690 l_instance_hist_rec.new_serial_number := NULL;
17691 ELSIF
17692 NVL(l_curr_instance_rec.serial_number,fnd_api.g_miss_char) <> NVL(p_instance_rec.serial_number,fnd_api.g_miss_char) THEN
17693 l_instance_hist_rec.old_serial_number := l_curr_instance_rec.serial_number ;
17694 l_instance_hist_rec.new_serial_number := p_instance_rec.serial_number ;
17695 END IF;
17696 --
17697 IF (p_instance_rec.mfg_serial_number_flag = fnd_api.g_miss_char) OR
17698 NVL(l_curr_instance_rec.mfg_serial_number_flag,fnd_api.g_miss_char) = NVL(p_instance_rec.mfg_serial_number_flag,fnd_api.g_miss_char) THEN
17699 l_instance_hist_rec.old_mfg_serial_number_flag := NULL;
17700 l_instance_hist_rec.new_mfg_serial_number_flag := NULL;
17701 ELSIF
17702 NVL(l_curr_instance_rec.mfg_serial_number_flag,fnd_api.g_miss_char) <> NVL(p_instance_rec.mfg_serial_number_flag,fnd_api.g_miss_char) THEN
17703 l_instance_hist_rec.old_mfg_serial_number_flag := l_curr_instance_rec.mfg_serial_number_flag ;
17704 l_instance_hist_rec.new_mfg_serial_number_flag := p_instance_rec.mfg_serial_number_flag ;
17705 END IF;
17706 --
17707 IF (p_instance_rec.lot_number = fnd_api.g_miss_char) OR
17708 NVL(l_curr_instance_rec.lot_number,fnd_api.g_miss_char) = NVL(p_instance_rec.lot_number,fnd_api.g_miss_char) THEN
17709 l_instance_hist_rec.old_lot_number := NULL;
17710 l_instance_hist_rec.new_lot_number := NULL;
17711 ELSIF
17712 NVL(l_curr_instance_rec.lot_number,fnd_api.g_miss_char) <> NVL(p_instance_rec.lot_number,fnd_api.g_miss_char) THEN
17713 l_instance_hist_rec.old_lot_number := l_curr_instance_rec.lot_number ;
17714 l_instance_hist_rec.new_lot_number := p_instance_rec.lot_number ;
17715 END IF;
17716 --
17717 IF (p_instance_rec.quantity = fnd_api.g_miss_num) OR
17718 NVL(l_curr_instance_rec.quantity,fnd_api.g_miss_num) = NVL(p_instance_rec.quantity,fnd_api.g_miss_num) THEN
17719 l_instance_hist_rec.old_quantity := NULL;
17720 l_instance_hist_rec.new_quantity := NULL;
17721 ELSIF
17722 NVL(l_curr_instance_rec.quantity,fnd_api.g_miss_num) <> NVL(p_instance_rec.quantity,fnd_api.g_miss_num) THEN
17723 l_instance_hist_rec.old_quantity := l_curr_instance_rec.quantity ;
17724 l_instance_hist_rec.new_quantity := p_instance_rec.quantity ;
17725 END IF;
17726 --
17727 IF (p_instance_rec.unit_of_measure = fnd_api.g_miss_char) OR
17728 NVL(l_curr_instance_rec.unit_of_measure,fnd_api.g_miss_char) = NVL(p_instance_rec.unit_of_measure,fnd_api.g_miss_char) THEN
17729 l_instance_hist_rec.old_unit_of_measure := NULL;
17730 l_instance_hist_rec.new_unit_of_measure := NULL;
17731 ELSIF
17732 NVL(l_curr_instance_rec.unit_of_measure,fnd_api.g_miss_char) <> NVL(p_instance_rec.unit_of_measure,fnd_api.g_miss_char) THEN
17733 l_instance_hist_rec.old_unit_of_measure := l_curr_instance_rec.unit_of_measure ;
17734 l_instance_hist_rec.new_unit_of_measure := p_instance_rec.unit_of_measure ;
17735 END IF;
17736 --
17737 IF (p_instance_rec.accounting_class_code = fnd_api.g_miss_char) OR
17738 NVL(l_curr_instance_rec.accounting_class_code,fnd_api.g_miss_char) = NVL(p_instance_rec.accounting_class_code,fnd_api.g_miss_char) THEN
17739 l_instance_hist_rec.old_accounting_class_code := NULL;
17740 l_instance_hist_rec.new_accounting_class_code := NULL;
17741 ELSIF
17742 NVL(l_curr_instance_rec.accounting_class_code,fnd_api.g_miss_char) <> NVL(p_instance_rec.accounting_class_code,fnd_api.g_miss_char) THEN
17743 l_instance_hist_rec.old_accounting_class_code := l_curr_instance_rec.accounting_class_code ;
17744 l_instance_hist_rec.new_accounting_class_code := p_instance_rec.accounting_class_code ;
17745 END IF;
17746 --
17747 IF (p_instance_rec.instance_condition_id = fnd_api.g_miss_num) OR
17748 NVL(l_curr_instance_rec.instance_condition_id,fnd_api.g_miss_num) = NVL(p_instance_rec.instance_condition_id,fnd_api.g_miss_num) THEN
17749 l_instance_hist_rec.old_instance_condition_id := NULL;
17750 l_instance_hist_rec.new_instance_condition_id := NULL;
17751 ELSIF
17752 NVL(l_curr_instance_rec.instance_condition_id,fnd_api.g_miss_num) <> NVL(p_instance_rec.instance_condition_id,fnd_api.g_miss_num) THEN
17753 l_instance_hist_rec.old_instance_condition_id := l_curr_instance_rec.instance_condition_id ;
17754 l_instance_hist_rec.new_instance_condition_id := p_instance_rec.instance_condition_id ;
17755 END IF;
17756 --
17757 IF (p_instance_rec.instance_status_id = fnd_api.g_miss_num) OR
17758 NVL(l_curr_instance_rec.instance_status_id,fnd_api.g_miss_num) = NVL(p_instance_rec.instance_status_id,fnd_api.g_miss_num) THEN
17759 l_instance_hist_rec.old_instance_status_id := NULL;
17760 l_instance_hist_rec.new_instance_status_id := NULL;
17761 ELSIF
17762 NVL(l_curr_instance_rec.instance_status_id,fnd_api.g_miss_num) <> NVL(p_instance_rec.instance_status_id,fnd_api.g_miss_num) THEN
17763 l_instance_hist_rec.old_instance_status_id := l_curr_instance_rec.instance_status_id ;
17764 l_instance_hist_rec.new_instance_status_id := p_instance_rec.instance_status_id ;
17765 END IF;
17766 --
17767 IF (p_instance_rec.customer_view_flag = fnd_api.g_miss_char) OR
17768 NVL(l_curr_instance_rec.customer_view_flag,fnd_api.g_miss_char) = NVL(p_instance_rec.customer_view_flag,fnd_api.g_miss_char) THEN
17769 l_instance_hist_rec.old_customer_view_flag := NULL;
17770 l_instance_hist_rec.new_customer_view_flag := NULL;
17771 ELSIF
17772 NVL(l_curr_instance_rec.customer_view_flag,fnd_api.g_miss_char) <> NVL(p_instance_rec.customer_view_flag,fnd_api.g_miss_char) THEN
17773 l_instance_hist_rec.old_customer_view_flag := l_curr_instance_rec.customer_view_flag ;
17774 l_instance_hist_rec.new_customer_view_flag := p_instance_rec.customer_view_flag ;
17775 END IF;
17776 --
17777 IF (p_instance_rec.merchant_view_flag = fnd_api.g_miss_char) OR
17778 NVL(l_curr_instance_rec.merchant_view_flag,fnd_api.g_miss_char) = NVL(p_instance_rec.merchant_view_flag,fnd_api.g_miss_char) THEN
17779 l_instance_hist_rec.old_merchant_view_flag := NULL;
17780 l_instance_hist_rec.new_merchant_view_flag := NULL;
17781 ELSIF
17782 NVL(l_curr_instance_rec.merchant_view_flag,fnd_api.g_miss_char) <> NVL(p_instance_rec.merchant_view_flag,fnd_api.g_miss_char) THEN
17783 l_instance_hist_rec.old_merchant_view_flag := l_curr_instance_rec.merchant_view_flag ;
17784 l_instance_hist_rec.new_merchant_view_flag := p_instance_rec.merchant_view_flag ;
17785 END IF;
17786 --
17787 IF (p_instance_rec.sellable_flag = fnd_api.g_miss_char) OR
17788 NVL(l_curr_instance_rec.sellable_flag,fnd_api.g_miss_char) = NVL(p_instance_rec.sellable_flag,fnd_api.g_miss_char) THEN
17789 l_instance_hist_rec.old_sellable_flag := NULL;
17790 l_instance_hist_rec.new_sellable_flag := NULL;
17791 ELSIF
17792 NVL(l_curr_instance_rec.sellable_flag,fnd_api.g_miss_char) <> NVL(p_instance_rec.sellable_flag,fnd_api.g_miss_char) THEN
17793 l_instance_hist_rec.old_sellable_flag := l_curr_instance_rec.sellable_flag ;
17794 l_instance_hist_rec.new_sellable_flag := p_instance_rec.sellable_flag ;
17795 END IF;
17796 --
17797 IF (p_instance_rec.system_id = fnd_api.g_miss_num) OR
17798 NVL(l_curr_instance_rec.system_id,fnd_api.g_miss_num) = NVL(p_instance_rec.system_id,fnd_api.g_miss_num) THEN
17799 l_instance_hist_rec.old_system_id := NULL;
17800 l_instance_hist_rec.new_system_id := NULL;
17801 ELSIF
17802 NVL(l_curr_instance_rec.system_id,fnd_api.g_miss_num) <> NVL(p_instance_rec.system_id,fnd_api.g_miss_num) THEN
17803 l_instance_hist_rec.old_system_id := l_curr_instance_rec.system_id ;
17804 l_instance_hist_rec.new_system_id := p_instance_rec.system_id ;
17805 END IF;
17806 --
17807 IF (p_instance_rec.instance_type_code = fnd_api.g_miss_char) OR
17808 NVL(l_curr_instance_rec.instance_type_code,fnd_api.g_miss_char) = NVL(p_instance_rec.instance_type_code,fnd_api.g_miss_char) THEN
17809 l_instance_hist_rec.old_instance_type_code := NULL;
17810 l_instance_hist_rec.new_instance_type_code := NULL;
17811 ELSIF
17812 NVL(l_curr_instance_rec.instance_type_code,fnd_api.g_miss_char) <> NVL(p_instance_rec.instance_type_code,fnd_api.g_miss_char) THEN
17813 l_instance_hist_rec.old_instance_type_code := l_curr_instance_rec.instance_type_code ;
17814 l_instance_hist_rec.new_instance_type_code := p_instance_rec.instance_type_code ;
17815 END IF;
17816 --
17817 IF (p_instance_rec.active_start_date = fnd_api.g_miss_date) OR
17818 NVL(l_curr_instance_rec.active_start_date,fnd_api.g_miss_date) = NVL(p_instance_rec.active_start_date,fnd_api.g_miss_date) THEN
17819 l_instance_hist_rec.old_active_start_date := NULL;
17820 l_instance_hist_rec.new_active_start_date := NULL;
17821 ELSIF
17822 NVL(l_curr_instance_rec.active_start_date,fnd_api.g_miss_date) <> NVL(p_instance_rec.active_start_date,fnd_api.g_miss_date) THEN
17823 l_instance_hist_rec.old_active_start_date := l_curr_instance_rec.active_start_date ;
17824 l_instance_hist_rec.new_active_start_date := p_instance_rec.active_start_date ;
17825 END IF;
17826 --
17827 IF (p_instance_rec.active_end_date = fnd_api.g_miss_date) OR
17828 NVL(l_curr_instance_rec.active_end_date,fnd_api.g_miss_date) = NVL(p_instance_rec.active_end_date,fnd_api.g_miss_date) THEN
17829 l_instance_hist_rec.old_active_end_date := NULL;
17830 l_instance_hist_rec.new_active_end_date := NULL;
17831 ELSIF
17832 NVL(l_curr_instance_rec.active_end_date,fnd_api.g_miss_date) <> NVL(p_instance_rec.active_end_date,fnd_api.g_miss_date) THEN
17833 l_instance_hist_rec.old_active_end_date := l_curr_instance_rec.active_end_date ;
17834 l_instance_hist_rec.new_active_end_date := p_instance_rec.active_end_date ;
17835 END IF;
17836 --
17837 IF (p_instance_rec.location_type_code = fnd_api.g_miss_char) OR
17838 NVL(l_curr_instance_rec.location_type_code,fnd_api.g_miss_char) = NVL(p_instance_rec.location_type_code,fnd_api.g_miss_char) THEN
17839 l_instance_hist_rec.old_location_type_code := NULL;
17840 l_instance_hist_rec.new_location_type_code := NULL;
17841 ELSIF
17842 NVL(l_curr_instance_rec.location_type_code,fnd_api.g_miss_char) <> NVL(p_instance_rec.location_type_code,fnd_api.g_miss_char) THEN
17843 l_instance_hist_rec.old_location_type_code := l_curr_instance_rec.location_type_code ;
17844 l_instance_hist_rec.new_location_type_code := p_instance_rec.location_type_code ;
17845 END IF;
17846 --
17847 IF (p_instance_rec.location_id = fnd_api.g_miss_num) OR
17848 NVL(l_curr_instance_rec.location_id,fnd_api.g_miss_num) = NVL(p_instance_rec.location_id,fnd_api.g_miss_num) THEN
17849 l_instance_hist_rec.old_location_id := NULL;
17850 l_instance_hist_rec.new_location_id := NULL;
17851 ELSIF
17852 NVL(l_curr_instance_rec.location_id,fnd_api.g_miss_num) <> NVL(p_instance_rec.location_id,fnd_api.g_miss_num) THEN
17853 l_instance_hist_rec.old_location_id := l_curr_instance_rec.location_id ;
17854 l_instance_hist_rec.new_location_id := p_instance_rec.location_id ;
17855 END IF;
17856 --
17857 IF (p_instance_rec.inv_organization_id = fnd_api.g_miss_num) OR
17858 NVL(l_curr_instance_rec.inv_organization_id,fnd_api.g_miss_num) = NVL(p_instance_rec.inv_organization_id,fnd_api.g_miss_num) THEN
17859 l_instance_hist_rec.old_inv_organization_id := NULL;
17860 l_instance_hist_rec.new_inv_organization_id := NULL;
17861 ELSIF
17862 NVL(l_curr_instance_rec.inv_organization_id,fnd_api.g_miss_num) <> NVL(p_instance_rec.inv_organization_id,fnd_api.g_miss_num) THEN
17863 l_instance_hist_rec.old_inv_organization_id := l_curr_instance_rec.inv_organization_id ;
17864 l_instance_hist_rec.new_inv_organization_id := p_instance_rec.inv_organization_id ;
17865 END IF;
17866 --
17867 IF (p_instance_rec.inv_subinventory_name = fnd_api.g_miss_char) OR
17868 NVL(l_curr_instance_rec.inv_subinventory_name,fnd_api.g_miss_char) = NVL(p_instance_rec.inv_subinventory_name,fnd_api.g_miss_char) THEN
17869 l_instance_hist_rec.old_inv_subinventory_name := NULL;
17870 l_instance_hist_rec.new_inv_subinventory_name := NULL;
17871 ELSIF
17872 NVL(l_curr_instance_rec.inv_subinventory_name,fnd_api.g_miss_char) <> NVL(p_instance_rec.inv_subinventory_name,fnd_api.g_miss_char) THEN
17873 l_instance_hist_rec.old_inv_subinventory_name := l_curr_instance_rec.inv_subinventory_name ;
17874 l_instance_hist_rec.new_inv_subinventory_name := p_instance_rec.inv_subinventory_name ;
17875 END IF;
17876 --
17877 IF (p_instance_rec.inv_locator_id = fnd_api.g_miss_num) OR
17878 NVL(l_curr_instance_rec.inv_locator_id,fnd_api.g_miss_num) = NVL(p_instance_rec.inv_locator_id,fnd_api.g_miss_num) THEN
17879 l_instance_hist_rec.old_inv_locator_id := NULL;
17880 l_instance_hist_rec.new_inv_locator_id := NULL;
17881 ELSIF
17882 NVL(l_curr_instance_rec.inv_locator_id,fnd_api.g_miss_num) <> NVL(p_instance_rec.inv_locator_id,fnd_api.g_miss_num) THEN
17883 l_instance_hist_rec.old_inv_locator_id := l_curr_instance_rec.inv_locator_id ;
17884 l_instance_hist_rec.new_inv_locator_id := p_instance_rec.inv_locator_id ;
17885 END IF;
17886 --
17887 IF (p_instance_rec.pa_project_id = fnd_api.g_miss_num) OR
17888 NVL(l_curr_instance_rec.pa_project_id,fnd_api.g_miss_num) = NVL(p_instance_rec.pa_project_id,fnd_api.g_miss_num) THEN
17889 l_instance_hist_rec.old_pa_project_id := NULL;
17890 l_instance_hist_rec.new_pa_project_id := NULL;
17891 ELSIF
17892 NVL(l_curr_instance_rec.pa_project_id,fnd_api.g_miss_num) <> NVL(p_instance_rec.pa_project_id,fnd_api.g_miss_num) THEN
17893 l_instance_hist_rec.old_pa_project_id := l_curr_instance_rec.pa_project_id ;
17894 l_instance_hist_rec.new_pa_project_id := p_instance_rec.pa_project_id ;
17895 END IF;
17896 --
17897 IF (p_instance_rec.pa_project_task_id = fnd_api.g_miss_num) OR
17898 NVL(l_curr_instance_rec.pa_project_task_id,fnd_api.g_miss_num) = NVL(p_instance_rec.pa_project_task_id,fnd_api.g_miss_num) THEN
17899 l_instance_hist_rec.old_pa_project_task_id := NULL;
17900 l_instance_hist_rec.new_pa_project_task_id := NULL;
17901 ELSIF
17902 NVL(l_curr_instance_rec.pa_project_task_id,fnd_api.g_miss_num) <> NVL(p_instance_rec.pa_project_task_id,fnd_api.g_miss_num) THEN
17903 l_instance_hist_rec.old_pa_project_task_id := l_curr_instance_rec.pa_project_task_id ;
17904 l_instance_hist_rec.new_pa_project_task_id := p_instance_rec.pa_project_task_id ;
17905 END IF;
17906 --
17907 IF (p_instance_rec.in_transit_order_line_id = fnd_api.g_miss_num) OR
17908 NVL(l_curr_instance_rec.in_transit_order_line_id,fnd_api.g_miss_num) = NVL(p_instance_rec.in_transit_order_line_id,fnd_api.g_miss_num) THEN
17909 l_instance_hist_rec.old_in_transit_order_line_id := NULL;
17910 l_instance_hist_rec.new_in_transit_order_line_id := NULL;
17911 ELSIF
17912 NVL(l_curr_instance_rec.in_transit_order_line_id,fnd_api.g_miss_num) <> NVL(p_instance_rec.in_transit_order_line_id,fnd_api.g_miss_num) THEN
17913 l_instance_hist_rec.old_in_transit_order_line_id := l_curr_instance_rec.in_transit_order_line_id ;
17914 l_instance_hist_rec.new_in_transit_order_line_id := p_instance_rec.in_transit_order_line_id ;
17915 END IF;
17916 --
17917 IF (p_instance_rec.last_oe_agreement_id = fnd_api.g_miss_num) OR
17918 NVL(l_curr_instance_rec.last_oe_agreement_id,fnd_api.g_miss_num) = NVL(p_instance_rec.last_oe_agreement_id,fnd_api.g_miss_num) THEN
17919 l_instance_hist_rec.old_last_oe_agreement_id := NULL;
17920 l_instance_hist_rec.new_last_oe_agreement_id := NULL;
17921 ELSIF
17922 NVL(l_curr_instance_rec.last_oe_agreement_id,fnd_api.g_miss_num) <> NVL(p_instance_rec.last_oe_agreement_id,fnd_api.g_miss_num) THEN
17923 l_instance_hist_rec.old_last_oe_agreement_id := l_curr_instance_rec.last_oe_agreement_id ;
17924 l_instance_hist_rec.new_last_oe_agreement_id := p_instance_rec.last_oe_agreement_id ;
17925 END IF;
17926 --
17927 IF (p_instance_rec.LAST_OE_ORDER_LINE_ID = fnd_api.g_miss_num) OR
17928 NVL(l_curr_instance_rec.LAST_OE_ORDER_LINE_ID,fnd_api.g_miss_num) = NVL(p_instance_rec.LAST_OE_ORDER_LINE_ID,fnd_api.g_miss_num) THEN
17929 l_instance_hist_rec.old_LAST_OE_ORDER_LINE_ID := NULL;
17930 l_instance_hist_rec.new_LAST_OE_ORDER_LINE_ID := NULL;
17931 ELSIF
17932 NVL(l_curr_instance_rec.LAST_OE_ORDER_LINE_ID,fnd_api.g_miss_num) <> NVL(p_instance_rec.LAST_OE_ORDER_LINE_ID,fnd_api.g_miss_num) THEN
17933 l_instance_hist_rec.old_LAST_OE_ORDER_LINE_ID := l_curr_instance_rec.LAST_OE_ORDER_LINE_ID ;
17934 l_instance_hist_rec.new_LAST_OE_ORDER_LINE_ID := p_instance_rec.LAST_OE_ORDER_LINE_ID ;
17935 END IF;
17936 --
17937 IF (p_instance_rec.LAST_OE_RMA_LINE_ID = fnd_api.g_miss_num) OR
17938 NVL(l_curr_instance_rec.LAST_OE_RMA_LINE_ID,fnd_api.g_miss_num) = NVL(p_instance_rec.LAST_OE_RMA_LINE_ID,fnd_api.g_miss_num) THEN
17939 l_instance_hist_rec.old_LAST_OE_RMA_LINE_ID := NULL;
17940 l_instance_hist_rec.new_LAST_OE_RMA_LINE_ID := NULL;
17941 ELSIF
17942 NVL(l_curr_instance_rec.LAST_OE_RMA_LINE_ID,fnd_api.g_miss_num) <> NVL(p_instance_rec.LAST_OE_RMA_LINE_ID,fnd_api.g_miss_num) THEN
17943 l_instance_hist_rec.old_LAST_OE_RMA_LINE_ID := l_curr_instance_rec.LAST_OE_RMA_LINE_ID ;
17944 l_instance_hist_rec.new_LAST_OE_RMA_LINE_ID := p_instance_rec.LAST_OE_RMA_LINE_ID ;
17945 END IF;
17946 --
17947 IF (p_instance_rec.LAST_WIP_JOB_ID = fnd_api.g_miss_num) OR
17948 NVL(l_curr_instance_rec.LAST_WIP_JOB_ID,fnd_api.g_miss_num) = NVL(p_instance_rec.LAST_WIP_JOB_ID,fnd_api.g_miss_num) THEN
17949 l_instance_hist_rec.old_LAST_WIP_JOB_ID := NULL;
17950 l_instance_hist_rec.new_LAST_WIP_JOB_ID := NULL;
17951 ELSIF
17952 NVL(l_curr_instance_rec.LAST_WIP_JOB_ID,fnd_api.g_miss_num) <> NVL(p_instance_rec.LAST_WIP_JOB_ID,fnd_api.g_miss_num) THEN
17953 l_instance_hist_rec.old_LAST_WIP_JOB_ID := l_curr_instance_rec.LAST_WIP_JOB_ID ;
17954 l_instance_hist_rec.new_LAST_WIP_JOB_ID := p_instance_rec.LAST_WIP_JOB_ID ;
17955 END IF;
17956 --
17957 IF (p_instance_rec.LAST_PO_PO_LINE_ID = fnd_api.g_miss_num) OR
17958 NVL(l_curr_instance_rec.LAST_PO_PO_LINE_ID,fnd_api.g_miss_num) = NVL(p_instance_rec.LAST_PO_PO_LINE_ID,fnd_api.g_miss_num) THEN
17959 l_instance_hist_rec.old_LAST_PO_PO_LINE_ID := NULL;
17960 l_instance_hist_rec.new_LAST_PO_PO_LINE_ID := NULL;
17961 ELSIF
17962 NVL(l_curr_instance_rec.LAST_PO_PO_LINE_ID,fnd_api.g_miss_num) <> NVL(p_instance_rec.LAST_PO_PO_LINE_ID,fnd_api.g_miss_num) THEN
17963 l_instance_hist_rec.old_LAST_PO_PO_LINE_ID := l_curr_instance_rec.LAST_PO_PO_LINE_ID ;
17964 l_instance_hist_rec.new_LAST_PO_PO_LINE_ID := p_instance_rec.LAST_PO_PO_LINE_ID ;
17965 END IF;
17966 --
17967 IF (p_instance_rec.LAST_PA_PROJECT_ID = fnd_api.g_miss_num) OR
17968 NVL(l_curr_instance_rec.LAST_PA_PROJECT_ID,fnd_api.g_miss_num) = NVL(p_instance_rec.LAST_PA_PROJECT_ID,fnd_api.g_miss_num) THEN
17969 l_instance_hist_rec.old_LAST_PA_PROJECT_ID := NULL;
17970 l_instance_hist_rec.new_LAST_PA_PROJECT_ID := NULL;
17971 ELSIF
17972 NVL(l_curr_instance_rec.LAST_PA_PROJECT_ID,fnd_api.g_miss_num) <> NVL(p_instance_rec.LAST_PA_PROJECT_ID,fnd_api.g_miss_num) THEN
17973 l_instance_hist_rec.old_LAST_PA_PROJECT_ID := l_curr_instance_rec.LAST_PA_PROJECT_ID ;
17974 l_instance_hist_rec.new_LAST_PA_PROJECT_ID := p_instance_rec.LAST_PA_PROJECT_ID ;
17975 END IF;
17976 --
17977 IF (p_instance_rec.LAST_PA_TASK_ID = fnd_api.g_miss_num) OR
17978 NVL(l_curr_instance_rec.LAST_PA_TASK_ID,fnd_api.g_miss_num) = NVL(p_instance_rec.LAST_PA_TASK_ID,fnd_api.g_miss_num) THEN
17979 l_instance_hist_rec.old_LAST_PA_TASK_ID := NULL;
17980 l_instance_hist_rec.new_LAST_PA_TASK_ID := NULL;
17981 ELSIF
17982 NVL(l_curr_instance_rec.LAST_PA_TASK_ID,fnd_api.g_miss_num) <> NVL(p_instance_rec.LAST_PA_TASK_ID,fnd_api.g_miss_num) THEN
17983 l_instance_hist_rec.old_LAST_PA_TASK_ID := l_curr_instance_rec.LAST_PA_TASK_ID ;
17984 l_instance_hist_rec.new_LAST_PA_TASK_ID := p_instance_rec.LAST_PA_TASK_ID ;
17985 END IF;
17986 --
17987 IF (p_instance_rec.LAST_TXN_LINE_DETAIL_ID = fnd_api.g_miss_num) OR
17988 NVL(l_curr_instance_rec.LAST_TXN_LINE_DETAIL_ID,fnd_api.g_miss_num) = NVL(p_instance_rec.LAST_TXN_LINE_DETAIL_ID,fnd_api.g_miss_num) THEN
17989 l_instance_hist_rec.old_LAST_TXN_LINE_DETAIL_ID := NULL;
17990 l_instance_hist_rec.new_LAST_TXN_LINE_DETAIL_ID := NULL;
17991 ELSIF
17992 NVL(l_curr_instance_rec.LAST_TXN_LINE_DETAIL_ID,fnd_api.g_miss_num) <> NVL(p_instance_rec.LAST_TXN_LINE_DETAIL_ID,fnd_api.g_miss_num) THEN
17993 l_instance_hist_rec.old_LAST_TXN_LINE_DETAIL_ID := l_curr_instance_rec.LAST_TXN_LINE_DETAIL_ID ;
17994 l_instance_hist_rec.new_LAST_TXN_LINE_DETAIL_ID := p_instance_rec.LAST_TXN_LINE_DETAIL_ID ;
17995 END IF;
17996 --
17997 IF (p_instance_rec.LAST_OE_PO_NUMBER = fnd_api.g_miss_char) OR
17998 NVL(l_curr_instance_rec.LAST_OE_PO_NUMBER,fnd_api.g_miss_char) = NVL(p_instance_rec.LAST_OE_PO_NUMBER,fnd_api.g_miss_char) THEN
17999 l_instance_hist_rec.old_LAST_OE_PO_NUMBER := NULL;
18000 l_instance_hist_rec.new_LAST_OE_PO_NUMBER := NULL;
18001 ELSIF
18002 NVL(l_curr_instance_rec.LAST_OE_PO_NUMBER,fnd_api.g_miss_char) <> NVL(p_instance_rec.LAST_OE_PO_NUMBER,fnd_api.g_miss_char) THEN
18003 l_instance_hist_rec.old_LAST_OE_PO_NUMBER := l_curr_instance_rec.LAST_OE_PO_NUMBER ;
18004 l_instance_hist_rec.new_LAST_OE_PO_NUMBER := p_instance_rec.LAST_OE_PO_NUMBER ;
18005 END IF;
18006 --
18007 IF (p_instance_rec.wip_job_id = fnd_api.g_miss_num) OR
18008 NVL(l_curr_instance_rec.wip_job_id,fnd_api.g_miss_num) = NVL(p_instance_rec.wip_job_id,fnd_api.g_miss_num) THEN
18009 l_instance_hist_rec.old_wip_job_id := NULL;
18010 l_instance_hist_rec.new_wip_job_id := NULL;
18011 ELSIF
18012 NVL(l_curr_instance_rec.wip_job_id,fnd_api.g_miss_num) <> NVL(p_instance_rec.wip_job_id,fnd_api.g_miss_num) THEN
18013 l_instance_hist_rec.old_wip_job_id := l_curr_instance_rec.wip_job_id ;
18014 l_instance_hist_rec.new_wip_job_id := p_instance_rec.wip_job_id ;
18015 END IF;
18016 --
18017 IF (p_instance_rec.po_order_line_id = fnd_api.g_miss_num) OR
18018 NVL(l_curr_instance_rec.po_order_line_id,fnd_api.g_miss_num) = NVL(p_instance_rec.po_order_line_id,fnd_api.g_miss_num) THEN
18019 l_instance_hist_rec.old_po_order_line_id := NULL;
18020 l_instance_hist_rec.new_po_order_line_id := NULL;
18021 ELSIF
18022 NVL(l_curr_instance_rec.po_order_line_id,fnd_api.g_miss_num) <> NVL(p_instance_rec.po_order_line_id,fnd_api.g_miss_num) THEN
18023 l_instance_hist_rec.old_po_order_line_id := l_curr_instance_rec.po_order_line_id ;
18024 l_instance_hist_rec.new_po_order_line_id := p_instance_rec.po_order_line_id ;
18025 END IF;
18026 --
18027 IF (p_instance_rec.completeness_flag = fnd_api.g_miss_char) OR
18028 NVL(l_curr_instance_rec.completeness_flag,fnd_api.g_miss_char) = NVL(p_instance_rec.completeness_flag,fnd_api.g_miss_char) THEN
18029 l_instance_hist_rec.old_completeness_flag := NULL;
18030 l_instance_hist_rec.new_completeness_flag := NULL;
18031 ELSIF
18032 NVL(l_curr_instance_rec.completeness_flag,fnd_api.g_miss_char) <> NVL(p_instance_rec.completeness_flag,fnd_api.g_miss_char) THEN
18033 l_instance_hist_rec.old_completeness_flag := l_curr_instance_rec.completeness_flag ;
18034 l_instance_hist_rec.new_completeness_flag := p_instance_rec.completeness_flag ;
18035 END IF;
18036 --
18037 IF (p_instance_rec.context = fnd_api.g_miss_char) OR
18038 NVL(l_curr_instance_rec.context,fnd_api.g_miss_char) = NVL(p_instance_rec.context,fnd_api.g_miss_char) THEN
18039 l_instance_hist_rec.old_context := NULL;
18040 l_instance_hist_rec.new_context := NULL;
18041 ELSIF
18042 NVL(l_curr_instance_rec.context,fnd_api.g_miss_char) <> NVL(p_instance_rec.context,fnd_api.g_miss_char) THEN
18043 l_instance_hist_rec.old_context := l_curr_instance_rec.context ;
18044 l_instance_hist_rec.new_context := p_instance_rec.context ;
18045 END IF;
18046 --
18047 IF (p_instance_rec.attribute1 = fnd_api.g_miss_char) OR
18048 NVL(l_curr_instance_rec.attribute1,fnd_api.g_miss_char) = NVL(p_instance_rec.attribute1,fnd_api.g_miss_char) THEN
18049 l_instance_hist_rec.old_attribute1 := NULL;
18050 l_instance_hist_rec.new_attribute1 := NULL;
18051 ELSIF
18052 NVL(l_curr_instance_rec.attribute1,fnd_api.g_miss_char) <> NVL(p_instance_rec.attribute1,fnd_api.g_miss_char) THEN
18053 l_instance_hist_rec.old_attribute1 := l_curr_instance_rec.attribute1 ;
18054 l_instance_hist_rec.new_attribute1 := p_instance_rec.attribute1 ;
18055 END IF;
18056 --
18057 IF (p_instance_rec.attribute2 = fnd_api.g_miss_char) OR
18058 NVL(l_curr_instance_rec.attribute2,fnd_api.g_miss_char) = NVL(p_instance_rec.attribute2,fnd_api.g_miss_char) THEN
18059 l_instance_hist_rec.old_attribute2 := NULL;
18060 l_instance_hist_rec.new_attribute2 := NULL;
18061 ELSIF
18062 NVL(l_curr_instance_rec.attribute2,fnd_api.g_miss_char) <> NVL(p_instance_rec.attribute2,fnd_api.g_miss_char) THEN
18063 l_instance_hist_rec.old_attribute2 := l_curr_instance_rec.attribute2 ;
18064 l_instance_hist_rec.new_attribute2 := p_instance_rec.attribute2 ;
18065 END IF;
18066 --
18067 IF (p_instance_rec.attribute3 = fnd_api.g_miss_char) OR
18068 NVL(l_curr_instance_rec.attribute3,fnd_api.g_miss_char) = NVL(p_instance_rec.attribute3,fnd_api.g_miss_char) THEN
18069 l_instance_hist_rec.old_attribute3 := NULL;
18070 l_instance_hist_rec.new_attribute3 := NULL;
18071 ELSIF
18072 NVL(l_curr_instance_rec.attribute3,fnd_api.g_miss_char) <> NVL(p_instance_rec.attribute3,fnd_api.g_miss_char) THEN
18073 l_instance_hist_rec.old_attribute3 := l_curr_instance_rec.attribute3 ;
18074 l_instance_hist_rec.new_attribute3 := p_instance_rec.attribute3 ;
18075 END IF;
18076 --
18077 IF (p_instance_rec.attribute4 = fnd_api.g_miss_char) OR
18078 NVL(l_curr_instance_rec.attribute4,fnd_api.g_miss_char) = NVL(p_instance_rec.attribute4,fnd_api.g_miss_char) THEN
18079 l_instance_hist_rec.old_attribute4 := NULL;
18080 l_instance_hist_rec.new_attribute4 := NULL;
18081 ELSIF
18082 NVL(l_curr_instance_rec.attribute4,fnd_api.g_miss_char) <> NVL(p_instance_rec.attribute4,fnd_api.g_miss_char) THEN
18083 l_instance_hist_rec.old_attribute4 := l_curr_instance_rec.attribute4 ;
18084 l_instance_hist_rec.new_attribute4 := p_instance_rec.attribute4 ;
18085 END IF;
18086 --
18087 IF (p_instance_rec.attribute5 = fnd_api.g_miss_char) OR
18088 NVL(l_curr_instance_rec.attribute5,fnd_api.g_miss_char) = NVL(p_instance_rec.attribute5,fnd_api.g_miss_char) THEN
18089 l_instance_hist_rec.old_attribute5 := NULL;
18090 l_instance_hist_rec.new_attribute5 := NULL;
18091 ELSIF
18092 NVL(l_curr_instance_rec.attribute5,fnd_api.g_miss_char) <> NVL(p_instance_rec.attribute5,fnd_api.g_miss_char) THEN
18093 l_instance_hist_rec.old_attribute5 := l_curr_instance_rec.attribute5 ;
18094 l_instance_hist_rec.new_attribute5 := p_instance_rec.attribute5 ;
18095 END IF;
18096 --
18097 IF (p_instance_rec.attribute6 = fnd_api.g_miss_char) OR
18098 NVL(l_curr_instance_rec.attribute6,fnd_api.g_miss_char) = NVL(p_instance_rec.attribute6,fnd_api.g_miss_char) THEN
18099 l_instance_hist_rec.old_attribute6 := NULL;
18100 l_instance_hist_rec.new_attribute6 := NULL;
18101 ELSIF
18102 NVL(l_curr_instance_rec.attribute6,fnd_api.g_miss_char) <> NVL(p_instance_rec.attribute6,fnd_api.g_miss_char) THEN
18103 l_instance_hist_rec.old_attribute6 := l_curr_instance_rec.attribute6 ;
18104 l_instance_hist_rec.new_attribute6 := p_instance_rec.attribute6 ;
18105 END IF;
18106 --
18107 IF (p_instance_rec.attribute7 = fnd_api.g_miss_char) OR
18108 NVL(l_curr_instance_rec.attribute7,fnd_api.g_miss_char) = NVL(p_instance_rec.attribute7,fnd_api.g_miss_char) THEN
18109 l_instance_hist_rec.old_attribute7 := NULL;
18110 l_instance_hist_rec.new_attribute7 := NULL;
18111 ELSIF
18112 NVL(l_curr_instance_rec.attribute7,fnd_api.g_miss_char) <> NVL(p_instance_rec.attribute7,fnd_api.g_miss_char) THEN
18113 l_instance_hist_rec.old_attribute7 := l_curr_instance_rec.attribute7 ;
18114 l_instance_hist_rec.new_attribute7 := p_instance_rec.attribute7 ;
18115 END IF;
18116 --
18117 IF (p_instance_rec.attribute8 = fnd_api.g_miss_char) OR
18118 NVL(l_curr_instance_rec.attribute8,fnd_api.g_miss_char) = NVL(p_instance_rec.attribute8,fnd_api.g_miss_char) THEN
18119 l_instance_hist_rec.old_attribute8 := NULL;
18120 l_instance_hist_rec.new_attribute8 := NULL;
18121 ELSIF
18122 NVL(l_curr_instance_rec.attribute8,fnd_api.g_miss_char) <> NVL(p_instance_rec.attribute8,fnd_api.g_miss_char) THEN
18123 l_instance_hist_rec.old_attribute8 := l_curr_instance_rec.attribute8 ;
18124 l_instance_hist_rec.new_attribute8 := p_instance_rec.attribute8 ;
18125 END IF;
18126 --
18127 IF (p_instance_rec.attribute9 = fnd_api.g_miss_char) OR
18128 NVL(l_curr_instance_rec.attribute9,fnd_api.g_miss_char) = NVL(p_instance_rec.attribute9,fnd_api.g_miss_char) THEN
18129 l_instance_hist_rec.old_attribute9 := NULL;
18130 l_instance_hist_rec.new_attribute9 := NULL;
18131 ELSIF
18132 NVL(l_curr_instance_rec.attribute9,fnd_api.g_miss_char) <> NVL(p_instance_rec.attribute9,fnd_api.g_miss_char) THEN
18133 l_instance_hist_rec.old_attribute9 := l_curr_instance_rec.attribute9 ;
18134 l_instance_hist_rec.new_attribute9 := p_instance_rec.attribute9 ;
18135 END IF;
18136 --
18137 IF (p_instance_rec.attribute10 = fnd_api.g_miss_char) OR
18138 NVL(l_curr_instance_rec.attribute10,fnd_api.g_miss_char) = NVL(p_instance_rec.attribute10,fnd_api.g_miss_char) THEN
18139 l_instance_hist_rec.old_attribute10 := NULL;
18140 l_instance_hist_rec.new_attribute10 := NULL;
18141 ELSIF
18142 NVL(l_curr_instance_rec.attribute10,fnd_api.g_miss_char) <> NVL(p_instance_rec.attribute10,fnd_api.g_miss_char) THEN
18143 l_instance_hist_rec.old_attribute10 := l_curr_instance_rec.attribute10 ;
18144 l_instance_hist_rec.new_attribute10 := p_instance_rec.attribute10 ;
18145 END IF;
18146 --
18147 IF (p_instance_rec.attribute11 = fnd_api.g_miss_char) OR
18148 NVL(l_curr_instance_rec.attribute11,fnd_api.g_miss_char) = NVL(p_instance_rec.attribute11,fnd_api.g_miss_char) THEN
18149 l_instance_hist_rec.old_attribute11 := NULL;
18150 l_instance_hist_rec.new_attribute11 := NULL;
18151 ELSIF
18152 NVL(l_curr_instance_rec.attribute11,fnd_api.g_miss_char) <> NVL(p_instance_rec.attribute11,fnd_api.g_miss_char) THEN
18153 l_instance_hist_rec.old_attribute11 := l_curr_instance_rec.attribute11 ;
18154 l_instance_hist_rec.new_attribute11 := p_instance_rec.attribute11 ;
18155 END IF;
18156 --
18157 IF (p_instance_rec.attribute12 = fnd_api.g_miss_char) OR
18158 NVL(l_curr_instance_rec.attribute12,fnd_api.g_miss_char) = NVL(p_instance_rec.attribute12,fnd_api.g_miss_char) THEN
18159 l_instance_hist_rec.old_attribute12 := NULL;
18160 l_instance_hist_rec.new_attribute12 := NULL;
18161 ELSIF
18162 NVL(l_curr_instance_rec.attribute12,fnd_api.g_miss_char) <> NVL(p_instance_rec.attribute12,fnd_api.g_miss_char) THEN
18163 l_instance_hist_rec.old_attribute12 := l_curr_instance_rec.attribute12 ;
18164 l_instance_hist_rec.new_attribute12 := p_instance_rec.attribute12 ;
18165 END IF;
18166 --
18167 IF (p_instance_rec.attribute13 = fnd_api.g_miss_char) OR
18168 NVL(l_curr_instance_rec.attribute13,fnd_api.g_miss_char) = NVL(p_instance_rec.attribute13,fnd_api.g_miss_char) THEN
18169 l_instance_hist_rec.old_attribute13 := NULL;
18170 l_instance_hist_rec.new_attribute13 := NULL;
18171 ELSIF
18172 NVL(l_curr_instance_rec.attribute13,fnd_api.g_miss_char) <> NVL(p_instance_rec.attribute13,fnd_api.g_miss_char) THEN
18173 l_instance_hist_rec.old_attribute13 := l_curr_instance_rec.attribute13 ;
18174 l_instance_hist_rec.new_attribute13 := p_instance_rec.attribute13 ;
18175 END IF;
18176 --
18177 IF (p_instance_rec.attribute14 = fnd_api.g_miss_char) OR
18178 NVL(l_curr_instance_rec.attribute14,fnd_api.g_miss_char) = NVL(p_instance_rec.attribute14,fnd_api.g_miss_char) THEN
18179 l_instance_hist_rec.old_attribute14 := NULL;
18180 l_instance_hist_rec.new_attribute14 := NULL;
18181 ELSIF
18182 NVL(l_curr_instance_rec.attribute14,fnd_api.g_miss_char) <> NVL(p_instance_rec.attribute14,fnd_api.g_miss_char) THEN
18183 l_instance_hist_rec.old_attribute14 := l_curr_instance_rec.attribute14 ;
18184 l_instance_hist_rec.new_attribute14 := p_instance_rec.attribute14 ;
18185 END IF;
18186 --
18187 IF (p_instance_rec.attribute15 = fnd_api.g_miss_char) OR
18188 NVL(l_curr_instance_rec.attribute15,fnd_api.g_miss_char) = NVL(p_instance_rec.attribute15,fnd_api.g_miss_char) THEN
18189 l_instance_hist_rec.old_attribute15 := NULL;
18190 l_instance_hist_rec.new_attribute15 := NULL;
18191 ELSIF
18192 NVL(l_curr_instance_rec.attribute15,fnd_api.g_miss_char) <> NVL(p_instance_rec.attribute15,fnd_api.g_miss_char) THEN
18193 l_instance_hist_rec.old_attribute15 := l_curr_instance_rec.attribute15 ;
18194 l_instance_hist_rec.new_attribute15 := p_instance_rec.attribute15 ;
18195 END IF;
18196 --
18197 IF (p_instance_rec.install_location_type_code = fnd_api.g_miss_char) OR
18198 NVL(l_curr_instance_rec.install_location_type_code,fnd_api.g_miss_char) = NVL(p_instance_rec.install_location_type_code,fnd_api.g_miss_char) THEN
18199 l_instance_hist_rec.old_install_location_type_code := NULL;
18200 l_instance_hist_rec.new_install_location_type_code := NULL;
18201 ELSIF
18202 NVL(l_curr_instance_rec.install_location_type_code,fnd_api.g_miss_char) <> NVL(p_instance_rec.install_location_type_code,fnd_api.g_miss_char) THEN
18203 l_instance_hist_rec.old_install_location_type_code := l_curr_instance_rec.install_location_type_code ;
18204 l_instance_hist_rec.new_install_location_type_code := p_instance_rec.install_location_type_code ;
18205 END IF;
18206 --
18207 IF (p_instance_rec.install_location_id = fnd_api.g_miss_num) OR
18208 NVL(l_curr_instance_rec.install_location_id,fnd_api.g_miss_num) = NVL(p_instance_rec.install_location_id,fnd_api.g_miss_num) THEN
18209 l_instance_hist_rec.old_install_location_id := NULL;
18210 l_instance_hist_rec.new_install_location_id := NULL;
18211 ELSIF
18212 NVL(l_curr_instance_rec.install_location_id,fnd_api.g_miss_num) <> NVL(p_instance_rec.install_location_id,fnd_api.g_miss_num) THEN
18213 l_instance_hist_rec.old_install_location_id := l_curr_instance_rec.install_location_id ;
18214 l_instance_hist_rec.new_install_location_id := p_instance_rec.install_location_id ;
18215 END IF;
18216 --
18217 IF (p_instance_rec.instance_usage_code = fnd_api.g_miss_char) OR
18218 NVL(l_curr_instance_rec.instance_usage_code,fnd_api.g_miss_char) = NVL(p_instance_rec.instance_usage_code,fnd_api.g_miss_char) THEN
18219 l_instance_hist_rec.old_instance_usage_code := NULL;
18220 l_instance_hist_rec.new_instance_usage_code := NULL;
18221 ELSIF
18222 NVL(l_curr_instance_rec.instance_usage_code,fnd_api.g_miss_char) <> NVL(p_instance_rec.instance_usage_code,fnd_api.g_miss_char) THEN
18223 l_instance_hist_rec.old_instance_usage_code := l_curr_instance_rec.instance_usage_code ;
18224 l_instance_hist_rec.new_instance_usage_code := p_instance_rec.instance_usage_code ;
18225 END IF;
18226 --
18227 IF (p_instance_rec.last_oe_agreement_id = fnd_api.g_miss_num) OR
18228 NVL(l_curr_instance_rec.last_oe_agreement_id,fnd_api.g_miss_num) = NVL(p_instance_rec.last_oe_agreement_id,fnd_api.g_miss_num) THEN
18229 l_instance_hist_rec.old_last_oe_agreement_id := NULL;
18230 l_instance_hist_rec.new_last_oe_agreement_id := NULL;
18231 ELSIF
18232 NVL(l_curr_instance_rec.last_oe_agreement_id,fnd_api.g_miss_num) <> NVL(p_instance_rec.last_oe_agreement_id,fnd_api.g_miss_num) THEN
18233 l_instance_hist_rec.old_last_oe_agreement_id := l_curr_instance_rec.last_oe_agreement_id ;
18234 l_instance_hist_rec.new_last_oe_agreement_id := p_instance_rec.last_oe_agreement_id ;
18235 END IF;
18236 --
18237 IF (p_instance_rec.LAST_OE_ORDER_LINE_ID = fnd_api.g_miss_num) OR
18238 NVL(l_curr_instance_rec.LAST_OE_ORDER_LINE_ID,fnd_api.g_miss_num) = NVL(p_instance_rec.LAST_OE_ORDER_LINE_ID,fnd_api.g_miss_num) THEN
18239 l_instance_hist_rec.old_LAST_OE_ORDER_LINE_ID := NULL;
18240 l_instance_hist_rec.new_LAST_OE_ORDER_LINE_ID := NULL;
18241 ELSIF
18242 NVL(l_curr_instance_rec.LAST_OE_ORDER_LINE_ID,fnd_api.g_miss_num) <> NVL(p_instance_rec.LAST_OE_ORDER_LINE_ID,fnd_api.g_miss_num) THEN
18243 l_instance_hist_rec.old_LAST_OE_ORDER_LINE_ID := l_curr_instance_rec.LAST_OE_ORDER_LINE_ID ;
18244 l_instance_hist_rec.new_LAST_OE_ORDER_LINE_ID := p_instance_rec.LAST_OE_ORDER_LINE_ID ;
18245 END IF;
18246 --
18247 IF (p_instance_rec.LAST_OE_RMA_LINE_ID = fnd_api.g_miss_num) OR
18248 NVL(l_curr_instance_rec.LAST_OE_RMA_LINE_ID,fnd_api.g_miss_num) = NVL(p_instance_rec.LAST_OE_RMA_LINE_ID,fnd_api.g_miss_num) THEN
18249 l_instance_hist_rec.OLD_LAST_OE_RMA_LINE_ID := NULL;
18250 l_instance_hist_rec.NEW_LAST_OE_RMA_LINE_ID := NULL;
18251 ELSIF
18252 NVL(l_curr_instance_rec.LAST_OE_RMA_LINE_ID,fnd_api.g_miss_num) <> NVL(p_instance_rec.LAST_OE_RMA_LINE_ID,fnd_api.g_miss_num) THEN
18253 l_instance_hist_rec.OLD_LAST_OE_RMA_LINE_ID := l_curr_instance_rec.LAST_OE_RMA_LINE_ID ;
18254 l_instance_hist_rec.NEW_LAST_OE_RMA_LINE_ID := p_instance_rec.LAST_OE_RMA_LINE_ID ;
18255 END IF;
18256 --
18257 IF (p_instance_rec.LAST_WIP_JOB_ID = fnd_api.g_miss_num) OR
18258 NVL(l_curr_instance_rec.LAST_WIP_JOB_ID,fnd_api.g_miss_num) = NVL(p_instance_rec.LAST_WIP_JOB_ID,fnd_api.g_miss_num) THEN
18259 l_instance_hist_rec.old_LAST_WIP_JOB_ID := NULL;
18260 l_instance_hist_rec.new_LAST_WIP_JOB_ID := NULL;
18261 ELSIF
18262 NVL(l_curr_instance_rec.LAST_WIP_JOB_ID,fnd_api.g_miss_num) <> NVL(p_instance_rec.LAST_WIP_JOB_ID,fnd_api.g_miss_num) THEN
18263 l_instance_hist_rec.old_LAST_WIP_JOB_ID := l_curr_instance_rec.LAST_WIP_JOB_ID ;
18264 l_instance_hist_rec.new_LAST_WIP_JOB_ID := p_instance_rec.LAST_WIP_JOB_ID ;
18265 END IF;
18266 --
18267 IF (p_instance_rec.LAST_PO_PO_LINE_ID = fnd_api.g_miss_num) OR
18268 NVL(l_curr_instance_rec.LAST_PO_PO_LINE_ID,fnd_api.g_miss_num) = NVL(p_instance_rec.LAST_PO_PO_LINE_ID,fnd_api.g_miss_num) THEN
18269 l_instance_hist_rec.old_LAST_PO_PO_LINE_ID := NULL;
18270 l_instance_hist_rec.new_LAST_PO_PO_LINE_ID := NULL;
18271 ELSIF
18272 NVL(l_curr_instance_rec.LAST_PO_PO_LINE_ID,fnd_api.g_miss_num) <> NVL(p_instance_rec.LAST_PO_PO_LINE_ID,fnd_api.g_miss_num) THEN
18273 l_instance_hist_rec.old_LAST_PO_PO_LINE_ID := l_curr_instance_rec.LAST_PO_PO_LINE_ID ;
18274 l_instance_hist_rec.new_LAST_PO_PO_LINE_ID := p_instance_rec.LAST_PO_PO_LINE_ID ;
18275 END IF;
18276 --
18277 IF (p_instance_rec.LAST_PA_PROJECT_ID = fnd_api.g_miss_num) OR
18278 NVL(l_curr_instance_rec.LAST_PA_PROJECT_ID,fnd_api.g_miss_num) = NVL(p_instance_rec.LAST_PA_PROJECT_ID,fnd_api.g_miss_num) THEN
18279 l_instance_hist_rec.old_LAST_PA_PROJECT_ID := NULL;
18280 l_instance_hist_rec.new_LAST_PA_PROJECT_ID := NULL;
18281 ELSIF
18282 NVL(l_curr_instance_rec.LAST_PA_PROJECT_ID,fnd_api.g_miss_num) <> NVL(p_instance_rec.LAST_PA_PROJECT_ID,fnd_api.g_miss_num) THEN
18283 l_instance_hist_rec.old_LAST_PA_PROJECT_ID := l_curr_instance_rec.LAST_PA_PROJECT_ID ;
18284 l_instance_hist_rec.new_LAST_PA_PROJECT_ID := p_instance_rec.LAST_PA_PROJECT_ID ;
18285 END IF;
18286 --
18287 IF (p_instance_rec.LAST_PA_TASK_ID = fnd_api.g_miss_num) OR
18288 NVL(l_curr_instance_rec.LAST_PA_TASK_ID,fnd_api.g_miss_num) = NVL(p_instance_rec.LAST_PA_TASK_ID,fnd_api.g_miss_num) THEN
18289 l_instance_hist_rec.old_LAST_PA_TASK_ID := NULL;
18290 l_instance_hist_rec.new_LAST_PA_TASK_ID := NULL;
18291 ELSIF
18292 NVL(l_curr_instance_rec.LAST_PA_TASK_ID,fnd_api.g_miss_num) <> NVL(p_instance_rec.LAST_PA_TASK_ID,fnd_api.g_miss_num) THEN
18293 l_instance_hist_rec.old_LAST_PA_TASK_ID := l_curr_instance_rec.LAST_PA_TASK_ID ;
18294 l_instance_hist_rec.new_LAST_PA_TASK_ID := p_instance_rec.LAST_PA_TASK_ID ;
18295 END IF;
18296 --
18297 IF (p_instance_rec.LAST_TXN_LINE_DETAIL_ID = fnd_api.g_miss_num) OR
18298 NVL(l_curr_instance_rec.LAST_TXN_LINE_DETAIL_ID,fnd_api.g_miss_num) = NVL(p_instance_rec.LAST_TXN_LINE_DETAIL_ID,fnd_api.g_miss_num) THEN
18299 l_instance_hist_rec.old_LAST_TXN_LINE_DETAIL_ID := NULL;
18300 l_instance_hist_rec.new_LAST_TXN_LINE_DETAIL_ID := NULL;
18301 ELSIF
18302 NVL(l_curr_instance_rec.LAST_TXN_LINE_DETAIL_ID,fnd_api.g_miss_num) <> NVL(p_instance_rec.LAST_TXN_LINE_DETAIL_ID,fnd_api.g_miss_num) THEN
18303 l_instance_hist_rec.old_LAST_TXN_LINE_DETAIL_ID := l_curr_instance_rec.LAST_TXN_LINE_DETAIL_ID ;
18304 l_instance_hist_rec.new_LAST_TXN_LINE_DETAIL_ID := p_instance_rec.LAST_TXN_LINE_DETAIL_ID ;
18305 END IF;
18306 --
18307 IF (p_instance_rec.LAST_OE_PO_NUMBER = fnd_api.g_miss_char) OR
18308 NVL(l_curr_instance_rec.LAST_OE_PO_NUMBER,fnd_api.g_miss_char) = NVL(p_instance_rec.LAST_OE_PO_NUMBER,fnd_api.g_miss_char) THEN
18309 l_instance_hist_rec.old_LAST_OE_PO_NUMBER := NULL;
18310 l_instance_hist_rec.new_LAST_OE_PO_NUMBER := NULL;
18311 ELSIF
18312 NVL(l_curr_instance_rec.LAST_OE_PO_NUMBER,fnd_api.g_miss_char) <> NVL(p_instance_rec.LAST_OE_PO_NUMBER,fnd_api.g_miss_char) THEN
18313 l_instance_hist_rec.old_LAST_OE_PO_NUMBER := l_curr_instance_rec.LAST_OE_PO_NUMBER ;
18314 l_instance_hist_rec.new_LAST_OE_PO_NUMBER := p_instance_rec.LAST_OE_PO_NUMBER ;
18315 END IF;
18316 --
18317 IF (p_instance_rec.vld_organization_id = fnd_api.g_miss_num) OR
18318 NVL(p_instance_rec.vld_organization_id, fnd_api.g_miss_num) = NVL(l_curr_instance_rec.last_vld_organization_id, fnd_api.g_miss_num) THEN
18319 l_curr_instance_rec.last_vld_organization_id := NULL;
18320 l_last_vld_organization_id := NULL;
18321 ELSIF
18322 NVL(l_curr_instance_rec.last_vld_organization_id,fnd_api.g_miss_num) <> NVL(p_instance_rec.vld_organization_id,fnd_api.g_miss_num) THEN
18323 l_curr_instance_rec.last_vld_organization_id := l_curr_instance_rec.last_vld_organization_id;
18324 l_last_vld_organization_id := p_instance_rec.vld_organization_id;
18325 END IF;
18326 --
18327 IF (p_instance_rec.config_inst_rev_num = fnd_api.g_miss_num) OR
18328 NVL(p_instance_rec.config_inst_rev_num, fnd_api.g_miss_num) = NVL(l_curr_instance_rec.config_inst_rev_num, fnd_api.g_miss_num) THEN
18329 l_instance_hist_rec.old_config_inst_rev_num := NULL;
18330 l_instance_hist_rec.new_config_inst_rev_num := NULL;
18331 ELSIF
18332 NVL(l_curr_instance_rec.config_inst_rev_num,fnd_api.g_miss_num) <> NVL(p_instance_rec.config_inst_rev_num,fnd_api.g_miss_num) THEN
18333 l_instance_hist_rec.old_config_inst_rev_num := l_curr_instance_rec.config_inst_rev_num;
18334 l_instance_hist_rec.new_config_inst_rev_num := p_instance_rec.config_inst_rev_num;
18335 END IF;
18336 --
18337 IF (p_instance_rec.config_valid_status = fnd_api.g_miss_char) OR
18338 NVL(p_instance_rec.config_valid_status, fnd_api.g_miss_char) = NVL(l_curr_instance_rec.config_valid_status, fnd_api.g_miss_char) THEN
18339 l_instance_hist_rec.old_config_valid_status := NULL;
18340 l_instance_hist_rec.new_config_valid_status := NULL;
18341 ELSIF
18342 NVL(l_curr_instance_rec.config_valid_status,fnd_api.g_miss_char) <> NVL(p_instance_rec.config_valid_status,fnd_api.g_miss_char) THEN
18343 l_instance_hist_rec.old_config_valid_status := l_curr_instance_rec.config_valid_status;
18344 l_instance_hist_rec.new_config_valid_status := p_instance_rec.config_valid_status;
18345 END IF;
18346 --
18347 IF (p_instance_rec.instance_description = fnd_api.g_miss_char) OR
18348 NVL(p_instance_rec.instance_description, fnd_api.g_miss_char) = NVL(l_curr_instance_rec.instance_description, fnd_api.g_miss_char) THEN
18349 l_instance_hist_rec.old_instance_description := NULL;
18350 l_instance_hist_rec.new_instance_description := NULL;
18351 ELSIF
18352 NVL(l_curr_instance_rec.instance_description,fnd_api.g_miss_char) <> NVL(p_instance_rec.instance_description,fnd_api.g_miss_char) THEN
18353 l_instance_hist_rec.old_instance_description := l_curr_instance_rec.instance_description;
18354 l_instance_hist_rec.new_instance_description := p_instance_rec.instance_description;
18355 END IF;
18356
18357 IF (p_instance_rec.install_date = fnd_api.g_miss_date) OR
18358 NVL(l_curr_instance_rec.install_date,fnd_api.g_miss_date) = NVL(p_instance_rec.install_date,fnd_api.g_miss_date) THEN
18359 l_instance_hist_rec.old_install_date := NULL;
18360 l_instance_hist_rec.new_install_date := NULL;
18361 ELSIF
18362 NVL(l_curr_instance_rec.install_date,fnd_api.g_miss_date) <> NVL(p_instance_rec.install_date,fnd_api.g_miss_date) THEN
18363 l_instance_hist_rec.old_install_date := l_curr_instance_rec.install_date ;
18364 l_instance_hist_rec.new_install_date := p_instance_rec.install_date ;
18365 END IF;
18366
18367 IF (p_instance_rec.return_by_date = fnd_api.g_miss_date) OR
18368 NVL(l_curr_instance_rec.return_by_date,fnd_api.g_miss_date) = NVL(p_instance_rec.return_by_date,fnd_api.g_miss_date) THEN
18369 l_instance_hist_rec.old_return_by_date := NULL;
18370 l_instance_hist_rec.new_return_by_date := NULL;
18371 ELSIF
18372 NVL(l_curr_instance_rec.return_by_date,fnd_api.g_miss_date) <> NVL(p_instance_rec.return_by_date,fnd_api.g_miss_date) THEN
18373 l_instance_hist_rec.old_return_by_date := l_curr_instance_rec.return_by_date ;
18374 l_instance_hist_rec.new_return_by_date := p_instance_rec.return_by_date ;
18375 END IF;
18376
18377 IF (p_instance_rec.actual_return_date = fnd_api.g_miss_date) OR
18378 NVL(l_curr_instance_rec.actual_return_date,fnd_api.g_miss_date) = NVL(p_instance_rec.actual_return_date,fnd_api.g_miss_date) THEN
18379 l_instance_hist_rec.old_actual_return_date := NULL;
18380 l_instance_hist_rec.new_actual_return_date := NULL;
18381 ELSIF
18382 NVL(l_curr_instance_rec.actual_return_date,fnd_api.g_miss_date) <> NVL(p_instance_rec.actual_return_date,fnd_api.g_miss_date) THEN
18383 l_instance_hist_rec.old_actual_return_date := l_curr_instance_rec.actual_return_date ;
18384 l_instance_hist_rec.new_actual_return_date := p_instance_rec.actual_return_date ;
18385 END IF;
18386
18387 --start of code for eam integration--
18388 --
18389 IF (p_instance_rec.network_asset_flag = fnd_api.g_miss_char) OR
18390 NVL(l_curr_instance_rec.network_asset_flag,fnd_api.g_miss_char) = NVL(p_instance_rec.network_asset_flag,fnd_api.g_miss_char) THEN
18391 l_instance_hist_rec.old_network_asset_flag := NULL;
18392 l_instance_hist_rec.new_network_asset_flag := NULL;
18393 ELSIF
18394 NVL(l_curr_instance_rec.network_asset_flag,fnd_api.g_miss_char) <> NVL(p_instance_rec.network_asset_flag,fnd_api.g_miss_char) THEN
18395 l_instance_hist_rec.old_network_asset_flag := l_curr_instance_rec.network_asset_flag ;
18396 l_instance_hist_rec.new_network_asset_flag := p_instance_rec.network_asset_flag ;
18397 END IF;
18398 --
18399 IF (p_instance_rec.maintainable_flag = fnd_api.g_miss_char) OR
18400 NVL(l_curr_instance_rec.maintainable_flag,fnd_api.g_miss_char) = NVL(p_instance_rec.maintainable_flag,fnd_api.g_miss_char) THEN
18401 l_instance_hist_rec.old_maintainable_flag := NULL;
18402 l_instance_hist_rec.new_maintainable_flag := NULL;
18403 ELSIF
18404 NVL(l_curr_instance_rec.maintainable_flag,fnd_api.g_miss_char) <> NVL(p_instance_rec.maintainable_flag,fnd_api.g_miss_char) THEN
18405 l_instance_hist_rec.old_maintainable_flag := l_curr_instance_rec.maintainable_flag ;
18406 l_instance_hist_rec.new_maintainable_flag := p_instance_rec.maintainable_flag ;
18407 END IF;
18408 --
18409 IF (p_instance_rec.pn_location_id = fnd_api.g_miss_num) OR
18410 NVL(l_curr_instance_rec.pn_location_id,fnd_api.g_miss_num) = NVL(p_instance_rec.pn_location_id,fnd_api.g_miss_num) THEN
18411 l_instance_hist_rec.old_pn_location_id := NULL;
18412 l_instance_hist_rec.new_pn_location_id := NULL;
18413 ELSIF
18414 NVL(l_curr_instance_rec.pn_location_id,fnd_api.g_miss_num) <> NVL(p_instance_rec.pn_location_id,fnd_api.g_miss_num) THEN
18415 l_instance_hist_rec.old_pn_location_id := l_curr_instance_rec.pn_location_id ;
18416 l_instance_hist_rec.new_pn_location_id := p_instance_rec.pn_location_id ;
18417 END IF;
18418 --
18419 IF (p_instance_rec.asset_criticality_code = fnd_api.g_miss_char) OR
18420 NVL(l_curr_instance_rec.asset_criticality_code,fnd_api.g_miss_char) = NVL(p_instance_rec.asset_criticality_code,fnd_api.g_miss_char) THEN
18421 l_instance_hist_rec.old_asset_criticality_code := NULL;
18422 l_instance_hist_rec.new_asset_criticality_code := NULL;
18423 ELSIF
18424 NVL(l_curr_instance_rec.asset_criticality_code,fnd_api.g_miss_char) <> NVL(p_instance_rec.asset_criticality_code,fnd_api.g_miss_char) THEN
18425 l_instance_hist_rec.old_asset_criticality_code := l_curr_instance_rec.asset_criticality_code ;
18426 l_instance_hist_rec.new_asset_criticality_code := p_instance_rec.asset_criticality_code ;
18427 END IF;
18428 --
18429 IF (p_instance_rec.category_id = fnd_api.g_miss_num) OR
18430 NVL(l_curr_instance_rec.category_id,fnd_api.g_miss_num) = NVL(p_instance_rec.category_id,fnd_api.g_miss_num) THEN
18431 l_instance_hist_rec.old_category_id := NULL;
18432 l_instance_hist_rec.new_category_id := NULL;
18433 ELSIF
18434 NVL(l_curr_instance_rec.category_id,fnd_api.g_miss_num) <> NVL(p_instance_rec.category_id,fnd_api.g_miss_num) THEN
18435 l_instance_hist_rec.old_category_id := l_curr_instance_rec.category_id ;
18436 l_instance_hist_rec.new_category_id := p_instance_rec.category_id ;
18437 END IF;
18438 --
18439 IF (p_instance_rec.equipment_gen_object_id = fnd_api.g_miss_num) OR
18440 NVL(l_curr_instance_rec.equipment_gen_object_id,fnd_api.g_miss_num) = NVL(p_instance_rec.equipment_gen_object_id,fnd_api.g_miss_num) THEN
18441 l_instance_hist_rec.old_equipment_gen_object_id := NULL;
18442 l_instance_hist_rec.new_equipment_gen_object_id := NULL;
18443 ELSIF
18444 NVL(l_curr_instance_rec.equipment_gen_object_id,fnd_api.g_miss_num) <> NVL(p_instance_rec.equipment_gen_object_id,fnd_api.g_miss_num) THEN
18445 l_instance_hist_rec.old_equipment_gen_object_id := l_curr_instance_rec.equipment_gen_object_id ;
18446 l_instance_hist_rec.new_equipment_gen_object_id := p_instance_rec.equipment_gen_object_id ;
18447 END IF;
18448 --
18449 IF (p_instance_rec.instantiation_flag = fnd_api.g_miss_char) OR
18450 NVL(l_curr_instance_rec.instantiation_flag,fnd_api.g_miss_char) = NVL(p_instance_rec.instantiation_flag,fnd_api.g_miss_char) THEN
18451 l_instance_hist_rec.old_instantiation_flag := NULL;
18452 l_instance_hist_rec.new_instantiation_flag := NULL;
18453 ELSIF
18454 NVL(l_curr_instance_rec.instantiation_flag,fnd_api.g_miss_char) <> NVL(p_instance_rec.instantiation_flag,fnd_api.g_miss_char) THEN
18455 l_instance_hist_rec.old_instantiation_flag := l_curr_instance_rec.instantiation_flag ;
18456 l_instance_hist_rec.new_instantiation_flag := p_instance_rec.instantiation_flag ;
18457 END IF;
18458 --
18459 IF (p_instance_rec.linear_location_id = fnd_api.g_miss_num) OR
18460 NVL(l_curr_instance_rec.linear_location_id,fnd_api.g_miss_num) = NVL(p_instance_rec.linear_location_id,fnd_api.g_miss_num) THEN
18461 l_instance_hist_rec.old_linear_location_id := NULL;
18462 l_instance_hist_rec.new_linear_location_id := NULL;
18463 ELSIF
18464 NVL(l_curr_instance_rec.linear_location_id,fnd_api.g_miss_num) <> NVL(p_instance_rec.linear_location_id,fnd_api.g_miss_num) THEN
18465 l_instance_hist_rec.old_linear_location_id := l_curr_instance_rec.linear_location_id ;
18466 l_instance_hist_rec.new_linear_location_id := p_instance_rec.linear_location_id ;
18467 END IF;
18468 --
18469 IF (p_instance_rec.operational_log_flag = fnd_api.g_miss_char) OR
18470 NVL(l_curr_instance_rec.operational_log_flag,fnd_api.g_miss_char) = NVL(p_instance_rec.operational_log_flag,fnd_api.g_miss_char) THEN
18471 l_instance_hist_rec.old_operational_log_flag := NULL;
18472 l_instance_hist_rec.new_operational_log_flag := NULL;
18473 ELSIF
18474 NVL(l_curr_instance_rec.operational_log_flag,fnd_api.g_miss_char) <> NVL(p_instance_rec.operational_log_flag,fnd_api.g_miss_char) THEN
18475 l_instance_hist_rec.old_operational_log_flag := l_curr_instance_rec.operational_log_flag ;
18476 l_instance_hist_rec.new_operational_log_flag := p_instance_rec.operational_log_flag ;
18477 END IF;
18478 --
18479 IF (p_instance_rec.checkin_status = fnd_api.g_miss_num) OR
18480 NVL(l_curr_instance_rec.checkin_status,fnd_api.g_miss_num) = NVL(p_instance_rec.checkin_status,fnd_api.g_miss_num) THEN
18481 l_instance_hist_rec.old_checkin_status := NULL;
18482 l_instance_hist_rec.new_checkin_status := NULL;
18483 ELSIF
18484 NVL(l_curr_instance_rec.checkin_status,fnd_api.g_miss_num) <> NVL(p_instance_rec.checkin_status,fnd_api.g_miss_num) THEN
18485 l_instance_hist_rec.old_checkin_status := l_curr_instance_rec.checkin_status ;
18486 l_instance_hist_rec.new_checkin_status := p_instance_rec.checkin_status ;
18487 END IF;
18488 --
18489 IF (p_instance_rec.supplier_warranty_exp_date = fnd_api.g_miss_date) OR
18490 NVL(l_curr_instance_rec.supplier_warranty_exp_date,fnd_api.g_miss_date) = NVL(p_instance_rec.supplier_warranty_exp_date,fnd_api.g_miss_date) THEN
18491 l_instance_hist_rec.old_supplier_warranty_exp_date := NULL;
18492 l_instance_hist_rec.new_supplier_warranty_exp_date := NULL;
18493 ELSIF
18494 NVL(l_curr_instance_rec.supplier_warranty_exp_date,fnd_api.g_miss_date) <> NVL(p_instance_rec.supplier_warranty_exp_date,fnd_api.g_miss_date) THEN
18495 l_instance_hist_rec.old_supplier_warranty_exp_date := l_curr_instance_rec.supplier_warranty_exp_date ;
18496 l_instance_hist_rec.new_supplier_warranty_exp_date := p_instance_rec.supplier_warranty_exp_date ;
18497 END IF;
18498 --
18499 IF (p_instance_rec.attribute16 = fnd_api.g_miss_char) OR
18500 NVL(l_curr_instance_rec.attribute16,fnd_api.g_miss_char) = NVL(p_instance_rec.attribute16,fnd_api.g_miss_char) THEN
18501 l_instance_hist_rec.old_attribute16 := NULL;
18502 l_instance_hist_rec.new_attribute16 := NULL;
18503 ELSIF
18504 NVL(l_curr_instance_rec.attribute16,fnd_api.g_miss_char) <> NVL(p_instance_rec.attribute16,fnd_api.g_miss_char) THEN
18505 l_instance_hist_rec.old_attribute16 := l_curr_instance_rec.attribute16 ;
18506 l_instance_hist_rec.new_attribute16 := p_instance_rec.attribute16 ;
18507 END IF;
18508 --
18509 IF (p_instance_rec.attribute17 = fnd_api.g_miss_char) OR
18510 NVL(l_curr_instance_rec.attribute17,fnd_api.g_miss_char) = NVL(p_instance_rec.attribute17,fnd_api.g_miss_char) THEN
18511 l_instance_hist_rec.old_attribute17 := NULL;
18512 l_instance_hist_rec.new_attribute17 := NULL;
18513 ELSIF
18514 NVL(l_curr_instance_rec.attribute17,fnd_api.g_miss_char) <> NVL(p_instance_rec.attribute17,fnd_api.g_miss_char) THEN
18515 l_instance_hist_rec.old_attribute17 := l_curr_instance_rec.attribute17 ;
18516 l_instance_hist_rec.new_attribute17 := p_instance_rec.attribute17 ; -- code change for Bug 8421940 (FP of Bug 8413754)
18517 END IF;
18518 --
18519 IF (p_instance_rec.attribute18 = fnd_api.g_miss_char) OR
18520 NVL(l_curr_instance_rec.attribute18,fnd_api.g_miss_char) = NVL(p_instance_rec.attribute18,fnd_api.g_miss_char) THEN
18521 l_instance_hist_rec.old_attribute18 := NULL;
18522 l_instance_hist_rec.new_attribute18 := NULL;
18523 ELSIF
18524 NVL(l_curr_instance_rec.attribute18,fnd_api.g_miss_char) <> NVL(p_instance_rec.attribute18,fnd_api.g_miss_char) THEN
18525 l_instance_hist_rec.old_attribute18 := l_curr_instance_rec.attribute18 ;
18526 l_instance_hist_rec.new_attribute18 := p_instance_rec.attribute18 ;
18527 END IF;
18528 --
18529 IF (p_instance_rec.attribute19 = fnd_api.g_miss_char) OR
18530 NVL(l_curr_instance_rec.attribute19,fnd_api.g_miss_char) = NVL(p_instance_rec.attribute19,fnd_api.g_miss_char) THEN
18531 l_instance_hist_rec.old_attribute19 := NULL;
18532 l_instance_hist_rec.new_attribute19 := NULL;
18533 ELSIF
18534 NVL(l_curr_instance_rec.attribute19,fnd_api.g_miss_char) <> NVL(p_instance_rec.attribute19,fnd_api.g_miss_char) THEN
18535 l_instance_hist_rec.old_attribute19 := l_curr_instance_rec.attribute19 ;
18536 l_instance_hist_rec.new_attribute19 := p_instance_rec.attribute19 ;
18537 END IF;
18538 --
18539 IF (p_instance_rec.attribute20 = fnd_api.g_miss_char) OR
18540 NVL(l_curr_instance_rec.attribute20,fnd_api.g_miss_char) = NVL(p_instance_rec.attribute20,fnd_api.g_miss_char) THEN
18541 l_instance_hist_rec.old_attribute20 := NULL;
18542 l_instance_hist_rec.new_attribute20 := NULL;
18543 ELSIF
18544 NVL(l_curr_instance_rec.attribute20,fnd_api.g_miss_char) <> NVL(p_instance_rec.attribute20,fnd_api.g_miss_char) THEN
18545 l_instance_hist_rec.old_attribute20 := l_curr_instance_rec.attribute20 ;
18546 l_instance_hist_rec.new_attribute20 := p_instance_rec.attribute20 ;
18547 END IF;
18548 --
18549 IF (p_instance_rec.attribute21 = fnd_api.g_miss_char) OR
18550 NVL(l_curr_instance_rec.attribute21,fnd_api.g_miss_char) = NVL(p_instance_rec.attribute21,fnd_api.g_miss_char) THEN
18551 l_instance_hist_rec.old_attribute21 := NULL;
18552 l_instance_hist_rec.new_attribute21 := NULL;
18553 ELSIF
18554 NVL(l_curr_instance_rec.attribute21,fnd_api.g_miss_char) <> NVL(p_instance_rec.attribute21,fnd_api.g_miss_char) THEN
18555 l_instance_hist_rec.old_attribute21 := l_curr_instance_rec.attribute21 ;
18556 l_instance_hist_rec.new_attribute21 := p_instance_rec.attribute21 ;
18557 END IF;
18558 --
18559 IF (p_instance_rec.attribute22 = fnd_api.g_miss_char) OR
18560 NVL(l_curr_instance_rec.attribute22,fnd_api.g_miss_char) = NVL(p_instance_rec.attribute22,fnd_api.g_miss_char) THEN
18561 l_instance_hist_rec.old_attribute22 := NULL;
18562 l_instance_hist_rec.new_attribute22 := NULL;
18563 ELSIF
18564 NVL(l_curr_instance_rec.attribute22,fnd_api.g_miss_char) <> NVL(p_instance_rec.attribute22,fnd_api.g_miss_char) THEN
18565 l_instance_hist_rec.old_attribute22 := l_curr_instance_rec.attribute22 ;
18566 l_instance_hist_rec.new_attribute22 := p_instance_rec.attribute22 ;
18567 END IF;
18568 --
18569 IF (p_instance_rec.attribute23 = fnd_api.g_miss_char) OR
18570 NVL(l_curr_instance_rec.attribute23,fnd_api.g_miss_char) = NVL(p_instance_rec.attribute23,fnd_api.g_miss_char) THEN
18571 l_instance_hist_rec.old_attribute23 := NULL;
18572 l_instance_hist_rec.new_attribute23 := NULL;
18573 ELSIF
18574 NVL(l_curr_instance_rec.attribute23,fnd_api.g_miss_char) <> NVL(p_instance_rec.attribute23,fnd_api.g_miss_char) THEN
18575 l_instance_hist_rec.old_attribute23 := l_curr_instance_rec.attribute23 ;
18576 l_instance_hist_rec.new_attribute23 := p_instance_rec.attribute23 ;
18577 END IF;
18578 --
18579 IF (p_instance_rec.attribute24 = fnd_api.g_miss_char) OR
18580 NVL(l_curr_instance_rec.attribute24,fnd_api.g_miss_char) = NVL(p_instance_rec.attribute24,fnd_api.g_miss_char) THEN
18581 l_instance_hist_rec.old_attribute24 := NULL;
18582 l_instance_hist_rec.new_attribute24 := NULL;
18583 ELSIF
18584 NVL(l_curr_instance_rec.attribute24,fnd_api.g_miss_char) <> NVL(p_instance_rec.attribute24,fnd_api.g_miss_char) THEN
18585 l_instance_hist_rec.old_attribute24 := l_curr_instance_rec.attribute24 ;
18586 l_instance_hist_rec.new_attribute24 := p_instance_rec.attribute24 ;
18587 END IF;
18588 --
18589 IF (p_instance_rec.attribute25 = fnd_api.g_miss_char) OR
18590 NVL(l_curr_instance_rec.attribute25,fnd_api.g_miss_char) = NVL(p_instance_rec.attribute25,fnd_api.g_miss_char) THEN
18591 l_instance_hist_rec.old_attribute25 := NULL;
18592 l_instance_hist_rec.new_attribute25 := NULL;
18593 ELSIF
18594 NVL(l_curr_instance_rec.attribute25,fnd_api.g_miss_char) <> NVL(p_instance_rec.attribute25,fnd_api.g_miss_char) THEN
18595 l_instance_hist_rec.old_attribute25 := l_curr_instance_rec.attribute25 ;
18596 l_instance_hist_rec.new_attribute25 := p_instance_rec.attribute25 ;
18597 END IF;
18598 --
18599 IF (p_instance_rec.attribute26 = fnd_api.g_miss_char) OR
18600 NVL(l_curr_instance_rec.attribute26,fnd_api.g_miss_char) = NVL(p_instance_rec.attribute26,fnd_api.g_miss_char) THEN
18601 l_instance_hist_rec.old_attribute26 := NULL;
18602 l_instance_hist_rec.new_attribute26 := NULL;
18603 ELSIF
18604 NVL(l_curr_instance_rec.attribute26,fnd_api.g_miss_char) <> NVL(p_instance_rec.attribute26,fnd_api.g_miss_char) THEN
18605 l_instance_hist_rec.old_attribute26 := l_curr_instance_rec.attribute26 ;
18606 l_instance_hist_rec.new_attribute26 := p_instance_rec.attribute26 ;
18607 END IF;
18608 --
18609 IF (p_instance_rec.attribute27 = fnd_api.g_miss_char) OR
18610 NVL(l_curr_instance_rec.attribute27,fnd_api.g_miss_char) = NVL(p_instance_rec.attribute27,fnd_api.g_miss_char) THEN
18611 l_instance_hist_rec.old_attribute27 := NULL;
18612 l_instance_hist_rec.new_attribute27 := NULL;
18613 ELSIF
18614 NVL(l_curr_instance_rec.attribute27,fnd_api.g_miss_char) <> NVL(p_instance_rec.attribute27,fnd_api.g_miss_char) THEN
18615 l_instance_hist_rec.old_attribute27 := l_curr_instance_rec.attribute27 ;
18616 l_instance_hist_rec.new_attribute27 := p_instance_rec.attribute27 ;
18617 END IF;
18618 --
18619 IF (p_instance_rec.attribute28 = fnd_api.g_miss_char) OR
18620 NVL(l_curr_instance_rec.attribute28,fnd_api.g_miss_char) = NVL(p_instance_rec.attribute28,fnd_api.g_miss_char) THEN
18621 l_instance_hist_rec.old_attribute28 := NULL;
18622 l_instance_hist_rec.new_attribute28 := NULL;
18623 ELSIF
18624 NVL(l_curr_instance_rec.attribute28,fnd_api.g_miss_char) <> NVL(p_instance_rec.attribute28,fnd_api.g_miss_char) THEN
18625 l_instance_hist_rec.old_attribute28 := l_curr_instance_rec.attribute28 ;
18626 l_instance_hist_rec.new_attribute28 := p_instance_rec.attribute28 ;
18627 END IF;
18628 --
18629 IF (p_instance_rec.attribute29 = fnd_api.g_miss_char) OR
18630 NVL(l_curr_instance_rec.attribute29,fnd_api.g_miss_char) = NVL(p_instance_rec.attribute29,fnd_api.g_miss_char) THEN
18631 l_instance_hist_rec.old_attribute29 := NULL;
18632 l_instance_hist_rec.new_attribute29 := NULL;
18633 ELSIF
18634 NVL(l_curr_instance_rec.attribute29,fnd_api.g_miss_char) <> NVL(p_instance_rec.attribute14,fnd_api.g_miss_char) THEN
18635 l_instance_hist_rec.old_attribute29 := l_curr_instance_rec.attribute29 ;
18636 l_instance_hist_rec.new_attribute29 := p_instance_rec.attribute29 ;
18637 END IF;
18638 --
18639 IF (p_instance_rec.attribute30 = fnd_api.g_miss_char) OR
18640 NVL(l_curr_instance_rec.attribute30,fnd_api.g_miss_char) = NVL(p_instance_rec.attribute30,fnd_api.g_miss_char) THEN
18641 l_instance_hist_rec.old_attribute30 := NULL;
18642 l_instance_hist_rec.new_attribute30 := NULL;
18643 ELSIF
18644 NVL(l_curr_instance_rec.attribute30,fnd_api.g_miss_char) <> NVL(p_instance_rec.attribute30,fnd_api.g_miss_char) THEN
18645 l_instance_hist_rec.old_attribute30 := l_curr_instance_rec.attribute30 ;
18646 l_instance_hist_rec.new_attribute30 := p_instance_rec.attribute30 ;
18647 END IF;
18648 --end of code for eam integration--
18649
18650 -- Addition of columns for FA Integration
18651
18652 IF (p_instance_rec.purchase_unit_price = fnd_api.g_miss_num) OR
18653 NVL(l_curr_instance_rec.purchase_unit_price,fnd_api.g_miss_num) = NVL(p_instance_rec.purchase_unit_price,fnd_api.g_miss_num) THEN
18654 l_instance_hist_rec.old_purchase_unit_price := NULL;
18655 l_instance_hist_rec.new_purchase_unit_price := NULL;
18656 ELSIF
18657 NVL(l_curr_instance_rec.purchase_unit_price,fnd_api.g_miss_num) <> NVL(p_instance_rec.purchase_unit_price,fnd_api.g_miss_num) THEN
18658 l_instance_hist_rec.old_purchase_unit_price := l_curr_instance_rec.purchase_unit_price ;
18659 l_instance_hist_rec.new_purchase_unit_price := p_instance_rec.purchase_unit_price ;
18660 END IF;
18661
18662 IF (p_instance_rec.purchase_currency_code = fnd_api.g_miss_char) OR
18663 NVL(l_curr_instance_rec.purchase_currency_code,fnd_api.g_miss_char) = NVL(p_instance_rec.purchase_currency_code,fnd_api.g_miss_char) THEN
18664 l_instance_hist_rec.old_purchase_currency_code := NULL;
18665 l_instance_hist_rec.new_purchase_currency_code := NULL;
18666 ELSIF
18667 NVL(l_curr_instance_rec.purchase_currency_code,fnd_api.g_miss_char) <> NVL(p_instance_rec.purchase_currency_code,fnd_api.g_miss_char) THEN
18668 l_instance_hist_rec.old_purchase_currency_code := l_curr_instance_rec.purchase_currency_code ;
18669 l_instance_hist_rec.new_purchase_currency_code := p_instance_rec.purchase_currency_code ;
18670 END IF;
18671
18672 IF (p_instance_rec.payables_unit_price = fnd_api.g_miss_num) OR
18673 NVL(l_curr_instance_rec.payables_unit_price,fnd_api.g_miss_num) = NVL(p_instance_rec.payables_unit_price,fnd_api.g_miss_num) THEN
18674 l_instance_hist_rec.old_payables_unit_price := NULL;
18675 l_instance_hist_rec.new_payables_unit_price := NULL;
18676 ELSIF
18677 NVL(l_curr_instance_rec.payables_unit_price,fnd_api.g_miss_num) <> NVL(p_instance_rec.payables_unit_price,fnd_api.g_miss_num) THEN
18678 l_instance_hist_rec.old_payables_unit_price := l_curr_instance_rec.payables_unit_price ;
18679 l_instance_hist_rec.new_payables_unit_price := p_instance_rec.payables_unit_price ;
18680 END IF;
18681
18682 IF (p_instance_rec.payables_currency_code = fnd_api.g_miss_char) OR
18683 NVL(l_curr_instance_rec.payables_currency_code,fnd_api.g_miss_char) = NVL(p_instance_rec.payables_currency_code,fnd_api.g_miss_char) THEN
18684 l_instance_hist_rec.old_payables_currency_code := NULL;
18685 l_instance_hist_rec.new_payables_currency_code := NULL;
18686 ELSIF
18687 NVL(l_curr_instance_rec.payables_currency_code,fnd_api.g_miss_char) <> NVL(p_instance_rec.payables_currency_code,fnd_api.g_miss_char) THEN
18688 l_instance_hist_rec.old_payables_currency_code := l_curr_instance_rec.payables_currency_code ;
18689 l_instance_hist_rec.new_payables_currency_code := p_instance_rec.payables_currency_code ;
18690 END IF;
18691
18692 IF (p_instance_rec.sales_unit_price = fnd_api.g_miss_num) OR
18693 NVL(l_curr_instance_rec.sales_unit_price,fnd_api.g_miss_num) = NVL(p_instance_rec.sales_unit_price,fnd_api.g_miss_num) THEN
18694 l_instance_hist_rec.old_sales_unit_price := NULL;
18695 l_instance_hist_rec.new_sales_unit_price := NULL;
18696 ELSIF
18697 NVL(l_curr_instance_rec.sales_unit_price,fnd_api.g_miss_num) <> NVL(p_instance_rec.sales_unit_price,fnd_api.g_miss_num) THEN
18698 l_instance_hist_rec.old_sales_unit_price := l_curr_instance_rec.sales_unit_price ;
18699 l_instance_hist_rec.new_sales_unit_price := p_instance_rec.sales_unit_price ;
18700 END IF;
18701
18702 IF (p_instance_rec.sales_currency_code = fnd_api.g_miss_char) OR
18703 NVL(l_curr_instance_rec.sales_currency_code,fnd_api.g_miss_char) = NVL(p_instance_rec.sales_currency_code,fnd_api.g_miss_char) THEN
18704 l_instance_hist_rec.old_sales_currency_code := NULL;
18705 l_instance_hist_rec.new_sales_currency_code := NULL;
18706 ELSIF
18707 NVL(l_curr_instance_rec.sales_currency_code,fnd_api.g_miss_char) <> NVL(p_instance_rec.sales_currency_code,fnd_api.g_miss_char) THEN
18708 l_instance_hist_rec.old_sales_currency_code := l_curr_instance_rec.sales_currency_code ;
18709 l_instance_hist_rec.new_sales_currency_code := p_instance_rec.sales_currency_code ;
18710 END IF;
18711
18712 IF (p_instance_rec.operational_status_code = fnd_api.g_miss_char) OR
18713 NVL(l_curr_instance_rec.operational_status_code,fnd_api.g_miss_char) = NVL(p_instance_rec.operational_status_code,fnd_api.g_miss_char) THEN
18714 l_instance_hist_rec.old_operational_status_code := NULL;
18715 l_instance_hist_rec.new_operational_status_code := NULL;
18716 ELSIF
18717 NVL(l_curr_instance_rec.operational_status_code,fnd_api.g_miss_char) <> NVL(p_instance_rec.operational_status_code,fnd_api.g_miss_char) THEN
18718 l_instance_hist_rec.old_operational_status_code := l_curr_instance_rec.operational_status_code ;
18719 l_instance_hist_rec.new_operational_status_code := p_instance_rec.operational_status_code ;
18720 END IF;
18721 -- End addition of columns for FA Integration
18722
18723 CSI_ITEM_INSTANCES_H_PKG.Insert_Row
18724 ( px_INSTANCE_HISTORY_ID => l_csi_item_instance_h_id
18725 ,p_INSTANCE_ID => p_instance_rec.instance_id
18726 ,p_TRANSACTION_ID => p_txn_rec.TRANSACTION_ID
18727 ,p_OLD_INSTANCE_NUMBER => l_instance_hist_rec.OLD_INSTANCE_NUMBER
18728 ,p_NEW_INSTANCE_NUMBER => l_instance_hist_rec.NEW_INSTANCE_NUMBER
18729 ,p_OLD_EXTERNAL_REFERENCE => l_instance_hist_rec.OLD_EXTERNAL_REFERENCE
18730 ,p_NEW_EXTERNAL_REFERENCE => l_instance_hist_rec.NEW_EXTERNAL_REFERENCE
18731 ,p_OLD_INVENTORY_ITEM_ID => l_instance_hist_rec.OLD_INVENTORY_ITEM_ID
18732 ,p_NEW_INVENTORY_ITEM_ID => l_instance_hist_rec.NEW_INVENTORY_ITEM_ID
18733 ,p_OLD_INVENTORY_REVISION => l_instance_hist_rec.OLD_INVENTORY_REVISION
18734 ,p_NEW_INVENTORY_REVISION => l_instance_hist_rec.NEW_INVENTORY_REVISION
18735 ,p_OLD_INV_MASTER_ORGZN_ID => l_instance_hist_rec.OLD_INV_MASTER_ORG_ID
18736 ,p_NEW_INV_MASTER_ORGZN_ID => l_instance_hist_rec.NEW_INV_MASTER_ORG_ID
18737 ,p_OLD_SERIAL_NUMBER => l_instance_hist_rec.OLD_SERIAL_NUMBER
18738 ,p_NEW_SERIAL_NUMBER => l_instance_hist_rec.NEW_SERIAL_NUMBER
18739 ,p_OLD_MFG_SERIAL_NUMBER_FLAG => l_instance_hist_rec.OLD_MFG_SERIAL_NUMBER_FLAG
18740 ,p_NEW_MFG_SERIAL_NUMBER_FLAG => l_instance_hist_rec.NEW_MFG_SERIAL_NUMBER_FLAG
18741 ,p_OLD_LOT_NUMBER => l_instance_hist_rec.OLD_LOT_NUMBER
18742 ,p_NEW_LOT_NUMBER => l_instance_hist_rec.NEW_LOT_NUMBER
18743 ,p_OLD_QUANTITY => l_instance_hist_rec.OLD_QUANTITY
18744 ,p_NEW_QUANTITY => l_instance_hist_rec.NEW_QUANTITY
18745 ,p_OLD_UNIT_OF_MEASURE => l_instance_hist_rec.OLD_UNIT_OF_MEASURE
18746 ,p_NEW_UNIT_OF_MEASURE => l_instance_hist_rec.NEW_UNIT_OF_MEASURE
18747 ,p_OLD_ACCOUNTING_CLASS_CODE => l_instance_hist_rec.OLD_ACCOUNTING_CLASS_CODE
18748 ,p_NEW_ACCOUNTING_CLASS_CODE => l_instance_hist_rec.NEW_ACCOUNTING_CLASS_CODE
18749 ,p_OLD_INSTANCE_CONDITION_ID => l_instance_hist_rec.OLD_INSTANCE_CONDITION_ID
18750 ,p_NEW_INSTANCE_CONDITION_ID => l_instance_hist_rec.NEW_INSTANCE_CONDITION_ID
18751 ,p_OLD_INSTANCE_STATUS_ID => l_instance_hist_rec.OLD_INSTANCE_STATUS_ID
18752 ,p_NEW_INSTANCE_STATUS_ID => l_instance_hist_rec.NEW_INSTANCE_STATUS_ID
18753 ,p_OLD_CUSTOMER_VIEW_FLAG => l_instance_hist_rec.OLD_CUSTOMER_VIEW_FLAG
18754 ,p_NEW_CUSTOMER_VIEW_FLAG => l_instance_hist_rec.NEW_CUSTOMER_VIEW_FLAG
18755 ,p_OLD_MERCHANT_VIEW_FLAG => l_instance_hist_rec.OLD_MERCHANT_VIEW_FLAG
18756 ,p_NEW_MERCHANT_VIEW_FLAG => l_instance_hist_rec.NEW_MERCHANT_VIEW_FLAG
18757 ,p_OLD_SELLABLE_FLAG => l_instance_hist_rec.OLD_SELLABLE_FLAG
18758 ,p_NEW_SELLABLE_FLAG => l_instance_hist_rec.NEW_SELLABLE_FLAG
18759 ,p_OLD_SYSTEM_ID => l_instance_hist_rec.OLD_SYSTEM_ID
18760 ,p_NEW_SYSTEM_ID => l_instance_hist_rec.NEW_SYSTEM_ID
18761 ,p_OLD_INSTANCE_TYPE_CODE => l_instance_hist_rec.OLD_INSTANCE_TYPE_CODE
18762 ,p_NEW_INSTANCE_TYPE_CODE => l_instance_hist_rec.NEW_INSTANCE_TYPE_CODE
18763 ,p_OLD_ACTIVE_START_DATE => l_instance_hist_rec.OLD_ACTIVE_START_DATE
18764 ,p_NEW_ACTIVE_START_DATE => l_instance_hist_rec.NEW_ACTIVE_START_DATE
18765 ,p_OLD_ACTIVE_END_DATE => l_instance_hist_rec.OLD_ACTIVE_END_DATE
18766 ,p_NEW_ACTIVE_END_DATE => l_instance_hist_rec.NEW_ACTIVE_END_DATE
18767 ,p_OLD_LOCATION_TYPE_CODE => l_instance_hist_rec.OLD_LOCATION_TYPE_CODE
18768 ,p_NEW_LOCATION_TYPE_CODE => l_instance_hist_rec.NEW_LOCATION_TYPE_CODE
18769 ,p_OLD_LOCATION_ID => l_instance_hist_rec.OLD_LOCATION_ID
18770 ,p_NEW_LOCATION_ID => l_instance_hist_rec.NEW_LOCATION_ID
18771 ,p_OLD_INV_ORGANIZATION_ID => l_instance_hist_rec.OLD_INV_ORGANIZATION_ID
18772 ,p_NEW_INV_ORGANIZATION_ID => l_instance_hist_rec.NEW_INV_ORGANIZATION_ID
18773 ,p_OLD_INV_SUBINVENTORY_NAME => l_instance_hist_rec.OLD_INV_SUBINVENTORY_NAME
18774 ,p_NEW_INV_SUBINVENTORY_NAME => l_instance_hist_rec.NEW_INV_SUBINVENTORY_NAME
18775 ,p_OLD_INV_LOCATOR_ID => l_instance_hist_rec.OLD_INV_LOCATOR_ID
18776 ,p_NEW_INV_LOCATOR_ID => l_instance_hist_rec.NEW_INV_LOCATOR_ID
18777 ,p_OLD_PA_PROJECT_ID => l_instance_hist_rec.OLD_PA_PROJECT_ID
18778 ,p_NEW_PA_PROJECT_ID => l_instance_hist_rec.NEW_PA_PROJECT_ID
18779 ,p_OLD_PA_PROJECT_TASK_ID => l_instance_hist_rec.OLD_PA_PROJECT_TASK_ID
18780 ,p_NEW_PA_PROJECT_TASK_ID => l_instance_hist_rec.NEW_PA_PROJECT_TASK_ID
18781 ,p_OLD_IN_TRANSIT_ORDER_LINE_ID => l_instance_hist_rec.OLD_IN_TRANSIT_ORDER_LINE_ID
18782 ,p_NEW_IN_TRANSIT_ORDER_LINE_ID => l_instance_hist_rec.NEW_IN_TRANSIT_ORDER_LINE_ID
18783 ,p_OLD_WIP_JOB_ID => l_instance_hist_rec.OLD_WIP_JOB_ID
18784 ,p_NEW_WIP_JOB_ID => l_instance_hist_rec.NEW_WIP_JOB_ID
18785 ,p_OLD_PO_ORDER_LINE_ID => l_instance_hist_rec.OLD_PO_ORDER_LINE_ID
18786 ,p_NEW_PO_ORDER_LINE_ID => l_instance_hist_rec.NEW_PO_ORDER_LINE_ID
18787 ,p_OLD_COMPLETENESS_FLAG => l_instance_hist_rec.OLD_COMPLETENESS_FLAG
18788 ,p_NEW_COMPLETENESS_FLAG => l_instance_hist_rec.NEW_COMPLETENESS_FLAG
18789 ,p_FULL_DUMP_FLAG => 'N'
18790 ,p_NEW_CONTEXT => l_instance_hist_rec.NEW_CONTEXT
18791 ,P_OLD_CONTEXT => l_instance_hist_rec.OLD_CONTEXT
18792 ,p_NEW_ATTRIBUTE1 => l_instance_hist_rec.NEW_ATTRIBUTE1
18793 ,p_OLD_ATTRIBUTE1 => l_instance_hist_rec.OLD_ATTRIBUTE1
18794 ,p_NEW_ATTRIBUTE2 => l_instance_hist_rec.NEW_ATTRIBUTE2
18795 ,p_OLD_ATTRIBUTE2 => l_instance_hist_rec.OLD_ATTRIBUTE2
18796 ,p_NEW_ATTRIBUTE3 => l_instance_hist_rec.NEW_ATTRIBUTE3
18797 ,p_OLD_ATTRIBUTE3 => l_instance_hist_rec.OLD_ATTRIBUTE3
18798 ,p_NEW_ATTRIBUTE4 => l_instance_hist_rec.NEW_ATTRIBUTE4
18799 ,p_OLD_ATTRIBUTE4 => l_instance_hist_rec.OLD_ATTRIBUTE4
18800 ,p_NEW_ATTRIBUTE5 => l_instance_hist_rec.NEW_ATTRIBUTE5
18801 ,p_OLD_ATTRIBUTE5 => l_instance_hist_rec.OLD_ATTRIBUTE5
18802 ,p_NEW_ATTRIBUTE6 => l_instance_hist_rec.NEW_ATTRIBUTE6
18803 ,p_OLD_ATTRIBUTE6 => l_instance_hist_rec.OLD_ATTRIBUTE6
18804 ,p_NEW_ATTRIBUTE7 => l_instance_hist_rec.NEW_ATTRIBUTE7
18805 ,p_OLD_ATTRIBUTE7 => l_instance_hist_rec.OLD_ATTRIBUTE7
18806 ,p_NEW_ATTRIBUTE8 => l_instance_hist_rec.NEW_ATTRIBUTE8
18807 ,p_OLD_ATTRIBUTE8 => l_instance_hist_rec.OLD_ATTRIBUTE8
18808 ,p_NEW_ATTRIBUTE9 => l_instance_hist_rec.NEW_ATTRIBUTE9
18809 ,p_OLD_ATTRIBUTE9 => l_instance_hist_rec.OLD_ATTRIBUTE9
18810 ,p_NEW_ATTRIBUTE10 => l_instance_hist_rec.NEW_ATTRIBUTE10
18811 ,p_OLD_ATTRIBUTE10 => l_instance_hist_rec.OLD_ATTRIBUTE10
18812 ,p_NEW_ATTRIBUTE11 => l_instance_hist_rec.NEW_ATTRIBUTE11
18813 ,p_OLD_ATTRIBUTE11 => l_instance_hist_rec.OLD_ATTRIBUTE11
18814 ,p_NEW_ATTRIBUTE12 => l_instance_hist_rec.NEW_ATTRIBUTE12
18815 ,p_OLD_ATTRIBUTE12 => l_instance_hist_rec.OLD_ATTRIBUTE12
18816 ,p_NEW_ATTRIBUTE13 => l_instance_hist_rec.NEW_ATTRIBUTE13
18817 ,p_OLD_ATTRIBUTE13 => l_instance_hist_rec.OLD_ATTRIBUTE13
18818 ,p_NEW_ATTRIBUTE14 => l_instance_hist_rec.NEW_ATTRIBUTE14
18819 ,p_OLD_ATTRIBUTE14 => l_instance_hist_rec.OLD_ATTRIBUTE14
18820 ,p_NEW_ATTRIBUTE15 => l_instance_hist_rec.NEW_ATTRIBUTE15
18821 ,p_OLD_ATTRIBUTE15 => l_instance_hist_rec.OLD_ATTRIBUTE15
18822 ,p_CREATED_BY => FND_GLOBAL.USER_ID
18823 ,p_CREATION_DATE => SYSDATE
18824 ,p_LAST_UPDATED_BY => FND_GLOBAL.USER_ID
18825 ,p_LAST_UPDATE_DATE => SYSDATE
18826 ,p_LAST_UPDATE_LOGIN => FND_GLOBAL.CONC_LOGIN_ID
18827 ,p_OBJECT_VERSION_NUMBER => 1
18828 ,p_OLD_INST_LOC_TYPE_CODE => l_instance_hist_rec.OLD_INSTALL_LOCATION_TYPE_CODE
18829 ,p_NEW_INST_LOC_TYPE_CODE => l_instance_hist_rec.NEW_INSTALL_LOCATION_TYPE_CODE
18830 ,p_OLD_INST_LOC_ID => l_instance_hist_rec.OLD_INSTALL_LOCATION_ID
18831 ,p_NEW_INST_LOC_ID => l_instance_hist_rec.NEW_INSTALL_LOCATION_ID
18832 ,p_OLD_INST_USAGE_CODE => l_instance_hist_rec.OLD_INSTANCE_USAGE_CODE
18833 ,p_NEW_INST_USAGE_CODE => l_instance_hist_rec.NEW_INSTANCE_USAGE_CODE
18834 ,p_OLD_last_vld_organization_id => l_curr_instance_rec.LAST_VLD_ORGANIZATION_ID
18835 ,p_NEW_last_vld_organization_id => l_last_vld_organization_id
18836 ,p_OLD_CONFIG_INST_REV_NUM => l_instance_hist_rec.OLD_CONFIG_INST_REV_NUM
18837 ,p_NEW_CONFIG_INST_REV_NUM => l_instance_hist_rec.NEW_CONFIG_INST_REV_NUM
18838 ,p_OLD_CONFIG_VALID_STATUS => l_instance_hist_rec.OLD_CONFIG_VALID_STATUS
18839 ,p_NEW_CONFIG_VALID_STATUS => l_instance_hist_rec.NEW_CONFIG_VALID_STATUS
18840 ,p_OLD_INSTANCE_DESCRIPTION => l_instance_hist_rec.OLD_INSTANCE_DESCRIPTION
18841 ,p_NEW_INSTANCE_DESCRIPTION => l_instance_hist_rec.NEW_INSTANCE_DESCRIPTION
18842 ,p_OLD_INSTALL_DATE => l_instance_hist_rec.OLD_INSTALL_DATE
18843 ,p_NEW_INSTALL_DATE => l_instance_hist_rec.NEW_INSTALL_DATE
18844 ,p_OLD_RETURN_BY_DATE => l_instance_hist_rec.OLD_RETURN_BY_DATE
18845 ,p_NEW_RETURN_BY_DATE => l_instance_hist_rec.NEW_RETURN_BY_DATE
18846 ,p_OLD_ACTUAL_RETURN_DATE => l_instance_hist_rec.OLD_ACTUAL_RETURN_DATE
18847 ,p_NEW_ACTUAL_RETURN_DATE => l_instance_hist_rec.NEW_ACTUAL_RETURN_DATE
18848 ,p_OLD_LAST_OE_AGREEMENT_ID => l_instance_hist_rec.OLD_LAST_OE_AGREEMENT_ID
18849 ,p_NEW_LAST_OE_AGREEMENT_ID => l_instance_hist_rec.NEW_LAST_OE_AGREEMENT_ID
18850 ,p_OLD_LAST_OE_ORDER_LINE_ID => l_instance_hist_rec.OLD_LAST_OE_ORDER_LINE_ID
18851 ,p_NEW_LAST_OE_ORDER_LINE_ID => l_instance_hist_rec.NEW_LAST_OE_ORDER_LINE_ID
18852 ,p_OLD_LAST_OE_RMA_LINE_ID => l_instance_hist_rec.OLD_LAST_OE_RMA_LINE_ID
18853 ,p_NEW_LAST_OE_RMA_LINE_ID => l_instance_hist_rec.NEW_LAST_OE_RMA_LINE_ID
18854 ,p_OLD_LAST_WIP_JOB_ID => l_instance_hist_rec.OLD_LAST_WIP_JOB_ID
18855 ,p_NEW_LAST_WIP_JOB_ID => l_instance_hist_rec.NEW_LAST_WIP_JOB_ID
18856 ,p_OLD_LAST_PO_PO_LINE_ID => l_instance_hist_rec.OLD_LAST_PO_PO_LINE_ID
18857 ,p_NEW_LAST_PO_PO_LINE_ID => l_instance_hist_rec.NEW_LAST_PO_PO_LINE_ID
18858 ,p_OLD_LAST_PA_PROJECT_ID => l_instance_hist_rec.OLD_LAST_PA_PROJECT_ID
18859 ,p_NEW_LAST_PA_PROJECT_ID => l_instance_hist_rec.NEW_LAST_PA_PROJECT_ID
18860 ,p_OLD_LAST_PA_TASK_ID => l_instance_hist_rec.OLD_LAST_PA_TASK_ID
18861 ,p_NEW_LAST_PA_TASK_ID => l_instance_hist_rec.NEW_LAST_PA_TASK_ID
18862 ,p_OLD_LAST_TXN_LINE_DETAIL_ID => l_instance_hist_rec.OLD_LAST_TXN_LINE_DETAIL_ID
18863 ,p_NEW_LAST_TXN_LINE_DETAIL_ID => l_instance_hist_rec.NEW_LAST_TXN_LINE_DETAIL_ID
18864 ,p_OLD_LAST_OE_PO_NUMBER => l_instance_hist_rec.OLD_LAST_OE_PO_NUMBER
18865 ,p_NEW_LAST_OE_PO_NUMBER => l_instance_hist_rec.NEW_LAST_OE_PO_NUMBER
18866 --start of parameters addition for eam integration--
18867 ,p_OLD_NETWORK_ASSET_FLAG => l_instance_hist_rec.OLD_NETWORK_ASSET_FLAG
18868 ,p_NEW_NETWORK_ASSET_FLAG => l_instance_hist_rec.NEW_NETWORK_ASSET_FLAG
18869 ,p_OLD_MAINTAINABLE_FLAG => l_instance_hist_rec.OLD_MAINTAINABLE_FLAG
18870 ,p_NEW_MAINTAINABLE_FLAG => l_instance_hist_rec.NEW_MAINTAINABLE_FLAG
18871 ,p_OLD_PN_LOCATION_ID => l_instance_hist_rec.OLD_PN_LOCATION_ID
18872 ,p_NEW_PN_LOCATION_ID => l_instance_hist_rec.NEW_PN_LOCATION_ID
18873 ,p_OLD_ASSET_CRITICALITY_CODE => l_instance_hist_rec.OLD_ASSET_CRITICALITY_CODE
18874 ,p_NEW_ASSET_CRITICALITY_CODE => l_instance_hist_rec.NEW_ASSET_CRITICALITY_CODE
18875 ,p_OLD_CATEGORY_ID => l_instance_hist_rec.OLD_CATEGORY_ID
18876 ,p_NEW_CATEGORY_ID => l_instance_hist_rec.NEW_CATEGORY_ID
18877 ,p_OLD_EQUIPMENT_GEN_OBJECT_ID => l_instance_hist_rec.OLD_EQUIPMENT_GEN_OBJECT_ID
18878 ,p_NEW_EQUIPMENT_GEN_OBJECT_ID => l_instance_hist_rec.NEW_EQUIPMENT_GEN_OBJECT_ID
18879 ,p_OLD_INSTANTIATION_FLAG => l_instance_hist_rec.OLD_INSTANTIATION_FLAG
18880 ,p_NEW_INSTANTIATION_FLAG => l_instance_hist_rec.NEW_INSTANTIATION_FLAG
18881 ,p_OLD_LINEAR_LOCATION_ID => l_instance_hist_rec.OLD_LINEAR_LOCATION_ID
18882 ,p_NEW_LINEAR_LOCATION_ID => l_instance_hist_rec.NEW_LINEAR_LOCATION_ID
18883 ,p_OLD_OPERATIONAL_LOG_FLAG => l_instance_hist_rec.OLD_OPERATIONAL_LOG_FLAG
18884 ,p_NEW_OPERATIONAL_LOG_FLAG => l_instance_hist_rec.NEW_OPERATIONAL_LOG_FLAG
18885 ,p_OLD_CHECKIN_STATUS => l_instance_hist_rec.OLD_CHECKIN_STATUS
18886 ,p_NEW_CHECKIN_STATUS => l_instance_hist_rec.NEW_CHECKIN_STATUS
18887 ,p_OLD_SUP_WARRANTY_EXP_DATE => l_instance_hist_rec.OLD_SUPPLIER_WARRANTY_EXP_DATE
18888 ,p_NEW_SUP_WARRANTY_EXP_DATE => l_instance_hist_rec.NEW_SUPPLIER_WARRANTY_EXP_DATE
18889 ,p_OLD_ATTRIBUTE16 => l_instance_hist_rec.OLD_ATTRIBUTE16
18890 ,p_NEW_ATTRIBUTE16 => l_instance_hist_rec.NEW_ATTRIBUTE16
18891 ,p_OLD_ATTRIBUTE17 => l_instance_hist_rec.OLD_ATTRIBUTE17
18892 ,p_NEW_ATTRIBUTE17 => l_instance_hist_rec.NEW_ATTRIBUTE17
18893 ,p_OLD_ATTRIBUTE18 => l_instance_hist_rec.OLD_ATTRIBUTE18
18894 ,p_NEW_ATTRIBUTE18 => l_instance_hist_rec.NEW_ATTRIBUTE18
18895 ,p_OLD_ATTRIBUTE19 => l_instance_hist_rec.OLD_ATTRIBUTE19
18896 ,p_NEW_ATTRIBUTE19 => l_instance_hist_rec.NEW_ATTRIBUTE19
18897 ,p_OLD_ATTRIBUTE20 => l_instance_hist_rec.OLD_ATTRIBUTE20
18898 ,p_NEW_ATTRIBUTE20 => l_instance_hist_rec.NEW_ATTRIBUTE20
18899 ,p_OLD_ATTRIBUTE21 => l_instance_hist_rec.OLD_ATTRIBUTE21
18900 ,p_NEW_ATTRIBUTE21 => l_instance_hist_rec.NEW_ATTRIBUTE21
18901 ,p_OLD_ATTRIBUTE22 => l_instance_hist_rec.OLD_ATTRIBUTE22
18902 ,p_NEW_ATTRIBUTE22 => l_instance_hist_rec.NEW_ATTRIBUTE22
18903 ,p_OLD_ATTRIBUTE23 => l_instance_hist_rec.OLD_ATTRIBUTE23
18904 ,p_NEW_ATTRIBUTE23 => l_instance_hist_rec.NEW_ATTRIBUTE23
18905 ,p_OLD_ATTRIBUTE24 => l_instance_hist_rec.OLD_ATTRIBUTE24
18906 ,p_NEW_ATTRIBUTE24 => l_instance_hist_rec.NEW_ATTRIBUTE24
18907 ,p_OLD_ATTRIBUTE25 => l_instance_hist_rec.OLD_ATTRIBUTE25
18908 ,p_NEW_ATTRIBUTE25 => l_instance_hist_rec.NEW_ATTRIBUTE25
18909 ,p_OLD_ATTRIBUTE26 => l_instance_hist_rec.OLD_ATTRIBUTE26
18910 ,p_NEW_ATTRIBUTE26 => l_instance_hist_rec.NEW_ATTRIBUTE26
18911 ,p_OLD_ATTRIBUTE27 => l_instance_hist_rec.OLD_ATTRIBUTE27
18912 ,p_NEW_ATTRIBUTE27 => l_instance_hist_rec.NEW_ATTRIBUTE27
18913 ,p_OLD_ATTRIBUTE28 => l_instance_hist_rec.OLD_ATTRIBUTE28
18914 ,p_NEW_ATTRIBUTE28 => l_instance_hist_rec.NEW_ATTRIBUTE28
18915 ,p_OLD_ATTRIBUTE29 => l_instance_hist_rec.OLD_ATTRIBUTE29
18916 ,p_NEW_ATTRIBUTE29 => l_instance_hist_rec.NEW_ATTRIBUTE29
18917 ,p_OLD_ATTRIBUTE30 => l_instance_hist_rec.OLD_ATTRIBUTE30
18918 ,p_NEW_ATTRIBUTE30 => l_instance_hist_rec.NEW_ATTRIBUTE30
18919 --end of parameters addition for eam integration--
18920 -- Addition of columns for FA Integration
18921 ,p_OLD_PAYABLES_UNIT_PRICE => l_instance_hist_rec.OLD_PAYABLES_UNIT_PRICE
18922 ,p_NEW_PAYABLES_UNIT_PRICE => l_instance_hist_rec.NEW_PAYABLES_UNIT_PRICE
18923 ,p_OLD_PAYABLES_CURRENCY_CODE => l_instance_hist_rec.OLD_PAYABLES_CURRENCY_CODE
18924 ,p_NEW_PAYABLES_CURRENCY_CODE => l_instance_hist_rec.NEW_PAYABLES_CURRENCY_CODE
18925 ,p_OLD_PURCHASE_UNIT_PRICE => l_instance_hist_rec.OLD_PURCHASE_UNIT_PRICE
18926 ,p_NEW_PURCHASE_UNIT_PRICE => l_instance_hist_rec.NEW_PURCHASE_UNIT_PRICE
18927 ,p_OLD_PURCHASE_CURRENCY_CODE => l_instance_hist_rec.OLD_PURCHASE_CURRENCY_CODE
18928 ,p_NEW_PURCHASE_CURRENCY_CODE => l_instance_hist_rec.NEW_PURCHASE_CURRENCY_CODE
18929 ,p_OLD_SALES_UNIT_PRICE => l_instance_hist_rec.OLD_SALES_UNIT_PRICE
18930 ,p_NEW_SALES_UNIT_PRICE => l_instance_hist_rec.NEW_SALES_UNIT_PRICE
18931 ,p_OLD_SALES_CURRENCY_CODE => l_instance_hist_rec.OLD_SALES_CURRENCY_CODE
18932 ,p_NEW_SALES_CURRENCY_CODE => l_instance_hist_rec.NEW_SALES_CURRENCY_CODE
18933 ,p_OLD_OPERATIONAL_STATUS_CODE => l_instance_hist_rec.OLD_OPERATIONAL_STATUS_CODE
18934 ,p_NEW_OPERATIONAL_STATUS_CODE => l_instance_hist_rec.NEW_OPERATIONAL_STATUS_CODE
18935 -- End addition of columns for FA Integration
18936 -- Begin Add Code for Siebel Genesis Project
18937 ,p_OLD_SOURCE_CODE => l_instance_hist_rec.OLD_SOURCE_CODE
18938 ,p_NEW_SOURCE_CODE => l_instance_hist_rec.NEW_SOURCE_CODE
18939 -- End Add Code for Siebel Genesis Project
18940 );
18941
18942 END IF;
18943 END; -- END OF HISTORY
18944 -- End of modification for Bug#2547034 on 09/20/02 - rtalluri
18945 -- Calling eam API to log instance update event
18946 IF l_eam_item
18947 THEN
18948 IF l_ins_hist_id IS NOT NULL
18949 THEN
18950 l_instance_history_id:=l_ins_hist_id;
18951 ELSE
18952 l_instance_history_id:=l_csi_item_instance_h_id;
18953 END IF;
18954 eam_asset_log_pvt.instance_update_event
18955 (p_api_version => p_api_version
18956 ,p_init_msg_list => fnd_api.g_false
18957 ,p_commit => fnd_api.g_false
18958 ,p_validation_level => fnd_api.g_valid_level_full
18959 ,x_return_status => x_return_status
18960 ,x_msg_count => x_msg_count
18961 ,x_msg_data => x_msg_data
18962 ,p_instance_id => p_instance_rec.instance_id
18963 ,p_ref_id => l_instance_history_id
18964 ,p_event_date => sysdate);
18965 IF NOT(x_return_status = fnd_api.g_ret_sts_success)
18966 THEN
18967 csi_gen_utility_pvt.put_line('Error from eam_asset_log_pvt.instance_update_event API');
18968 RAISE fnd_api.g_exc_error;
18969 END IF;
18970 END IF;
18971 -- Calling eam API to log instance update event
18972 -- Check for any child instances in the csi ii relationships table by passing the parent instance id. If there exists
18973 -- any child instances then inherit the changed attributes with the changes in parent.
18974
18975 IF l_curr_instance_rec.active_end_date IS NULL
18976 THEN l_curr_instance_rec.active_end_date:=FND_API.G_MISS_DATE;
18977 END IF;
18978
18979 IF l_curr_instance_rec.location_type_code IS NULL
18980 THEN l_curr_instance_rec.location_type_code:=FND_API.G_MISS_CHAR;
18981 END IF;
18982
18983 IF l_curr_instance_rec.location_id IS NULL
18984 THEN l_curr_instance_rec.location_id:=FND_API.G_MISS_NUM;
18985 END IF;
18986
18987 IF l_curr_instance_rec.inv_organization_id IS NULL
18988 THEN l_curr_instance_rec.inv_organization_id:=FND_API.G_MISS_NUM;
18989 END IF;
18990
18991 IF l_curr_instance_rec.inv_subinventory_name IS NULL
18992 THEN l_curr_instance_rec.inv_subinventory_name:=FND_API.G_MISS_CHAR;
18993 END IF;
18994
18995 IF l_curr_instance_rec.inv_locator_id IS NULL
18996 THEN l_curr_instance_rec.inv_locator_id:=FND_API.G_MISS_NUM;
18997 END IF;
18998
18999 IF l_curr_instance_rec.pa_project_id IS NULL
19000 THEN l_curr_instance_rec.pa_project_id:=FND_API.G_MISS_NUM;
19001 END IF;
19002
19003 IF l_curr_instance_rec.pa_project_task_id IS NULL
19004 THEN l_curr_instance_rec.pa_project_task_id:=FND_API.G_MISS_NUM;
19005 END IF;
19006
19007 IF l_curr_instance_rec.in_transit_order_line_id IS NULL
19008 THEN l_curr_instance_rec.in_transit_order_line_id:=FND_API.G_MISS_NUM;
19009 END IF;
19010
19011 IF l_curr_instance_rec.wip_job_id IS NULL
19012 THEN l_curr_instance_rec.wip_job_id:=FND_API.G_MISS_NUM;
19013 END IF;
19014
19015 IF l_curr_instance_rec.po_order_line_id IS NULL
19016 THEN l_curr_instance_rec.po_order_line_id:=FND_API.G_MISS_NUM;
19017 END IF;
19018
19019 IF l_curr_instance_rec.install_location_type_code IS NULL --1st change
19020 THEN l_curr_instance_rec.install_location_type_code:=FND_API.G_MISS_CHAR;
19021 END IF;
19022
19023 IF l_curr_instance_rec.install_location_id IS NULL
19024 THEN l_curr_instance_rec.install_location_id:=FND_API.G_MISS_NUM;
19025 END IF;
19026 --
19027 -- srramakr Need to inherit Install_date to the children
19028 -- If any of the location attributes or active_end_date are changing for an instance, then check are there
19029 -- any children associated to this instance. If there exists any, then change the location attributes for child instances
19030 IF ( p_instance_rec.active_end_date IS NOT NULL
19031 AND p_instance_rec.active_end_date <>l_curr_instance_rec.active_end_date
19032 AND p_instance_rec.active_end_date <>FND_API.G_MISS_DATE
19033 )
19034 OR
19035 ( p_instance_rec.active_end_date IS NULL AND
19036 nvl(p_instance_rec.active_end_date,fnd_api.g_miss_date) <> l_curr_instance_rec.active_end_date
19037 )
19038 OR
19039 ( p_instance_rec.system_id IS NOT NULL
19040 AND p_instance_rec.system_id <> FND_API.G_MISS_NUM
19041 AND p_instance_rec.system_id <> nvl(l_curr_instance_rec.system_id,FND_API.G_MISS_NUM)
19042 )
19043 OR
19044 ( p_instance_rec.system_id IS NULL
19045 AND l_curr_instance_rec.system_id IS NOT NULL
19046 )
19047 OR
19048 ( p_instance_rec.location_type_code IS NOT NULL
19049 AND p_instance_rec.location_type_code <>FND_API.G_MISS_CHAR
19050 AND p_instance_rec.location_type_code <>l_curr_instance_rec.location_type_code
19051 )
19052 OR
19053 ( p_instance_rec.location_id IS NOT NULL
19054 AND p_instance_rec.location_id <>FND_API.G_MISS_NUM
19055 AND p_instance_rec.location_id <>l_curr_instance_rec.location_id
19056 )
19057 OR
19058 ( p_instance_rec.inv_organization_id IS NOT NULL
19059 AND p_instance_rec.inv_organization_id <>FND_API.G_MISS_NUM
19060 AND p_instance_rec.inv_organization_id <>l_curr_instance_rec.inv_organization_id
19061 )
19062 OR
19063 ( p_instance_rec.inv_subinventory_name IS NOT NULL
19064 AND p_instance_rec.inv_subinventory_name <>FND_API.G_MISS_CHAR
19065 AND p_instance_rec.inv_subinventory_name <>l_curr_instance_rec.inv_subinventory_name
19066 )
19067 OR
19068 ( p_instance_rec.inv_locator_id IS NOT NULL
19069 AND p_instance_rec.inv_locator_id <>FND_API.G_MISS_NUM
19070 AND p_instance_rec.inv_locator_id <>l_curr_instance_rec.inv_locator_id
19071 )
19072 OR
19073 ( p_instance_rec.pa_project_id IS NOT NULL
19074 AND p_instance_rec.pa_project_id <>FND_API.G_MISS_NUM
19075 AND p_instance_rec.pa_project_id <>l_curr_instance_rec.pa_project_id
19076 )
19077 OR
19078 ( p_instance_rec.pa_project_task_id IS NOT NULL
19079 AND p_instance_rec.pa_project_task_id <>FND_API.G_MISS_NUM
19080 AND p_instance_rec.pa_project_task_id <>l_curr_instance_rec.pa_project_task_id
19081 )
19082 OR
19083 ( p_instance_rec.in_transit_order_line_id IS NOT NULL
19084 AND p_instance_rec.in_transit_order_line_id <>FND_API.G_MISS_NUM
19085 AND p_instance_rec.in_transit_order_line_id <>l_curr_instance_rec.in_transit_order_line_id
19086 )
19087 OR
19088 ( p_instance_rec.wip_job_id IS NOT NULL
19089 AND p_instance_rec.wip_job_id <>FND_API.G_MISS_NUM
19090 AND p_instance_rec.wip_job_id <>l_curr_instance_rec.wip_job_id
19091 )
19092 OR
19093 ( p_instance_rec.po_order_line_id IS NOT NULL
19094 AND p_instance_rec.po_order_line_id <>FND_API.G_MISS_NUM
19095 AND p_instance_rec.po_order_line_id <>l_curr_instance_rec.po_order_line_id
19096 )
19097 OR
19098 ( p_instance_rec.install_location_type_code IS NOT NULL
19099 AND p_instance_rec.install_location_type_code <>FND_API.G_MISS_CHAR
19100 AND p_instance_rec.install_location_type_code <>l_curr_instance_rec.install_location_type_code
19101 )
19102 OR
19103 ( p_instance_rec.install_location_id IS NOT NULL
19104 AND p_instance_rec.install_location_id <>FND_API.G_MISS_NUM
19105 AND p_instance_rec.install_location_id <>l_curr_instance_rec.install_location_id
19106 )
19107 OR
19108 ( p_instance_rec.install_location_id IS NULL AND
19109 nvl(p_instance_rec.install_location_id,fnd_api.g_miss_num) <> l_curr_instance_rec.install_location_id AND
19110 p_instance_rec.install_location_type_code IS NULL AND
19111 nvl(p_instance_rec.install_location_type_code,fnd_api.g_miss_char) <> l_curr_instance_rec.install_location_type_code
19112 )
19113 OR
19114 ( p_instance_rec.instance_status_id IS NOT NULL
19115 AND p_instance_rec.instance_status_id <>FND_API.G_MISS_NUM
19116 AND p_instance_rec.instance_status_id <>l_curr_instance_rec.instance_status_id
19117 )
19118 OR
19119 ( (p_instance_rec.install_date IS NULL AND l_curr_instance_rec.install_date IS NOT NULL) OR
19120 (p_instance_rec.install_date IS NOT NULL AND
19121 p_instance_rec.install_date <> FND_API.G_MISS_DATE AND
19122 nvl(l_curr_instance_rec.install_date,FND_API.G_MISS_DATE) <> p_instance_rec.install_date)
19123 )
19124 OR
19125 ( p_instance_rec.operational_status_code IS NOT NULL
19126 AND p_instance_rec.operational_status_code <> FND_API.G_MISS_CHAR
19127 AND p_instance_rec.operational_status_code <> NVL(l_curr_instance_rec.operational_status_code,'$$##$$')
19128 )
19129 THEN
19130 -- Added for bug 2957236
19131 IF p_instance_rec.instance_status_id IS NOT NULL
19132 AND p_instance_rec.instance_status_id <>FND_API.G_MISS_NUM
19133 AND p_instance_rec.instance_status_id <>l_curr_instance_rec.instance_status_id
19134 THEN
19135 l_original_status_id:=l_curr_instance_rec.instance_status_id;
19136 ELSE
19137 l_original_status_id:=fnd_api.g_miss_num;
19138 END IF;
19139 -- End addition for bug 2957236
19140 --
19141 l_unexpire := FND_API.G_FALSE;
19142 IF l_curr_instance_rec.active_end_date <> FND_API.G_MISS_DATE AND
19143 l_curr_instance_rec.active_end_date <= sysdate THEN
19144 IF ((p_instance_rec.active_end_date IS NULL) OR
19145 (p_instance_rec.active_end_date IS NOT NULL AND p_instance_rec.active_end_date <> FND_API.G_MISS_DATE AND
19146 p_instance_rec.active_end_date > sysdate)) THEN
19147 l_unexpire := FND_API.G_TRUE;
19148 END IF;
19149 END IF;
19150 -- System_id cascade
19151 l_original_system_id := fnd_api.g_miss_num;
19152 IF p_instance_rec.system_id IS NOT NULL AND
19153 p_instance_rec.system_id <> FND_API.G_MISS_NUM AND
19154 p_instance_rec.system_id <> nvl(l_curr_instance_rec.system_id,-999) THEN
19155 l_original_system_id := l_curr_instance_rec.system_id;
19156 ELSIF p_instance_rec.system_id IS NULL AND
19157 l_curr_instance_rec.system_id IS NOT NULL THEN
19158 l_original_system_id := l_curr_instance_rec.system_id;
19159 END IF;
19160 -- End of System_id cascade
19161 -- Install Date cascade
19162 l_install_date := fnd_api.g_miss_date;
19163 IF p_instance_rec.install_date IS NOT NULL AND
19164 p_instance_rec.install_date <> FND_API.G_MISS_DATE AND
19165 p_instance_rec.install_date <> nvl(l_curr_instance_rec.install_date,fnd_api.g_miss_date) THEN
19166 l_orig_install_date := l_curr_instance_rec.install_date;
19167 ELSIF p_instance_rec.install_date IS NULL AND
19168 l_curr_instance_rec.install_date IS NOT NULL THEN
19169 l_orig_install_date := l_curr_instance_rec.install_date;
19170 END IF;
19171 -- End of Install Date cascade
19172
19173 update_child_instance_location(p_api_version => p_api_version,
19174 p_commit => p_commit,
19175 p_init_msg_list => p_init_msg_list,
19176 p_validation_level => p_validation_level,
19177 p_instance_rec => p_instance_rec,
19178 p_original_status_id => l_original_status_id,
19179 p_original_system_id => l_original_system_id,
19180 p_txn_rec => p_txn_rec,
19181 x_instance_id_lst => x_instance_id_lst,
19182 p_unexpire => l_unexpire,
19183 p_oks_txn_inst_tbl => p_oks_txn_inst_tbl,
19184 p_child_inst_tbl => p_child_inst_tbl,
19185 p_orig_install_date => l_orig_install_date,
19186 x_return_status => x_return_status,
19187 x_msg_count => x_msg_count,
19188 x_msg_data => x_msg_data
19189 );
19190 --
19191 --
19192 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
19193 csi_gen_utility_pvt.put_line('Error from UPDATE_CHILD_INSTANCE_LOCATION..');
19194 RAISE FND_API.G_EXC_ERROR;
19195 END IF;
19196
19197 --Moved the code to expire the relationships here for bug 10196982
19198 --Expiring the relationships after expiring the child instances
19199 IF (l_get_instance_rec.active_end_date <= l_sys_date) THEN
19200 -- Added code to expire relationship where the instance expired is the child, bug 8516781, FP bug 8551918
19201 csi_gen_utility_pvt.put_line('Expiring relationship for the instance id - ' || p_instance_rec.instance_id);
19202 FOR l_inst_relationship_rec in relationship_csr(p_instance_rec.instance_id)
19203 LOOP
19204 BEGIN
19205 csi_gen_utility_pvt.put_line('Expiring relationship with id - ' || l_inst_relationship_rec.relationship_id);
19206 l_exp_rltns_rec.relationship_id := l_inst_relationship_rec.relationship_id;
19207 l_exp_rltns_rec.object_version_number := l_inst_relationship_rec.object_version_number;
19208
19209 csi_t_gen_utility_pvt.dump_api_info(
19210 p_pkg_name => 'csi_ii_relationships_pub',
19211 p_api_name => 'expire_relationship');
19212
19213 csi_ii_relationships_pub.expire_relationship(
19214 p_api_version => 1.0,
19215 p_commit => fnd_api.g_false,
19216 p_init_msg_list => fnd_api.g_false,
19217 p_validation_level => fnd_api.g_valid_level_full,
19218 p_relationship_rec => l_exp_rltns_rec,
19219 p_txn_rec => p_txn_rec,
19220 x_instance_id_lst => l_instance_id_lst,
19221 x_return_status => l_return_status,
19222 x_msg_count => l_msg_count,
19223 x_msg_data => l_msg_data);
19224
19225 IF l_return_status <> fnd_api.g_ret_sts_success THEN
19226 RAISE fnd_api.g_exc_error;
19227 END IF;
19228 END;
19229 END LOOP;
19230
19231 csi_gen_utility_pvt.put_line('End of expiring relationships for instance with id - ' || p_instance_rec.instance_id);
19232 -- End of addition for the bug 8516781, FP bug 8551918
19233 END IF;
19234 END IF;
19235 --
19236 --
19237 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
19238 RAISE FND_API.G_EXC_ERROR;
19239 END IF;
19240
19241 --FND_File.Put_Line(Fnd_File.LOG,'Return Status is' || x_return_status);
19242 IF nvl(p_txn_rec.transaction_status_code, fnd_api.g_miss_char) = fnd_api.g_miss_char THEN
19243
19244 p_txn_rec.transaction_status_code := l_txn_status;
19245
19246 update_txn_status(
19247 px_txn_rec => p_txn_rec,
19248 x_return_status => x_return_status);
19249
19250 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
19251 RAISE FND_API.G_EXC_ERROR;
19252 END IF;
19253
19254 END IF;
19255
19256 END IF;
19257
19258 -- End of API body
19259
19260 -- Standard check of p_commit.
19261 IF FND_API.To_Boolean( p_commit ) THEN
19262 COMMIT WORK;
19263 END IF;
19264
19265 -- Standard call to get message count and if count is get message info.
19266 FND_MSG_PUB.Count_And_Get
19267 (p_encoded => FND_API.G_FALSE,
19268 p_count => x_msg_count ,
19269 p_data => x_msg_data
19270 );
19271
19272 EXCEPTION
19273
19274 WHEN FND_API.G_EXC_ERROR THEN
19275 IF FND_API.To_Boolean( p_commit )
19276 THEN
19277 ROLLBACK TO update_item_instance_pvt;
19278 END IF;
19279 x_return_status := FND_API.G_RET_STS_ERROR ;
19280 FND_MSG_PUB.Count_And_Get
19281 ( p_encoded => FND_API.G_FALSE,
19282 p_count => x_msg_count,
19283 p_data => x_msg_data
19284 );
19285
19286 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
19287
19288 IF FND_API.To_Boolean( p_commit )
19289 THEN
19290 ROLLBACK TO update_item_instance_pvt;
19291 END IF;
19292 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
19293 FND_MSG_PUB.Count_And_Get
19294 ( p_encoded => FND_API.G_FALSE,
19295 p_count => x_msg_count,
19296 p_data => x_msg_data
19297 );
19298 WHEN OTHERS THEN
19299 IF FND_API.To_Boolean( p_commit )
19300 THEN
19301 ROLLBACK TO update_item_instance_pvt;
19302 END IF;
19303 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
19304
19305 IF FND_MSG_PUB.Check_Msg_Level
19306 (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
19307 THEN
19308 FND_MSG_PUB.Add_Exc_Msg
19309 ( G_PKG_NAME ,
19310 l_api_name
19311 );
19312 END IF;
19313 FND_MSG_PUB.Count_And_Get
19314 ( p_encoded => FND_API.G_FALSE,
19315 p_count => x_msg_count,
19316 p_data => x_msg_data
19317 );
19318
19319 END Update_Item_Instance;
19320
19321 /*---------------------------------------------------*/
19322 /* Procedure name: expire_child_instances */
19323 /* Description : procedure for */
19324 /* Expiring all child Instance */
19325 /* associated with the parent */
19326 /*---------------------------------------------------*/
19327
19328 PROCEDURE expire_child_instances
19329 ( p_api_version IN NUMBER,
19330 p_commit IN VARCHAR2,
19331 p_init_msg_list IN VARCHAR2,
19332 p_validation_level IN NUMBER,
19333 p_instance_rec IN csi_datastructures_pub.instance_rec,
19334 p_expire_children IN VARCHAR2,
19335 p_txn_rec IN OUT NOCOPY csi_datastructures_pub.transaction_rec,
19336 x_instance_id_lst OUT NOCOPY csi_datastructures_pub.id_tbl,
19337 p_oks_txn_inst_tbl IN OUT NOCOPY oks_ibint_pub.txn_instance_tbl,
19338 x_return_status OUT NOCOPY VARCHAR2,
19339 x_msg_count OUT NOCOPY NUMBER,
19340 x_msg_data OUT NOCOPY VARCHAR2
19341 ) IS
19342 l_api_name CONSTANT VARCHAR2(30) := 'EXPIRE_CHILD_INSTANCE_PVT';
19343 l_api_version CONSTANT NUMBER := 1.0;
19344 l_debug_level NUMBER;
19345 l_instance_id NUMBER;
19346 l_dummy NUMBER;
19347 l_instance_rec csi_datastructures_pub.instance_rec:=p_instance_rec;
19348 l_object_version_number NUMBER;
19349 l_return_value BOOLEAN;
19350 l_csi_item_instance_h_id NUMBER;
19351 l_full_dump_frequency NUMBER;
19352 l_mod_value NUMBER;
19353 l_dump_flag VARCHAR2(1);
19354 l_rel_tbl csi_datastructures_pub.ii_relationship_tbl;
19355 p_rel_query_rec csi_datastructures_pub.relationship_query_rec;
19356 l_ii_relationship_level_tbl csi_ii_relationships_pvt.ii_relationship_level_tbl;
19357
19358 CURSOR curr_instance_rec(p_instance_id IN NUMBER) IS
19359 SELECT
19360 INSTANCE_ID,
19361 INSTANCE_NUMBER,
19362 EXTERNAL_REFERENCE,
19363 INVENTORY_ITEM_ID,
19364 NULL VLD_ORGANIZATION_ID,
19365 INVENTORY_REVISION,
19366 INV_MASTER_ORGANIZATION_ID,
19367 SERIAL_NUMBER,
19368 MFG_SERIAL_NUMBER_FLAG,
19369 LOT_NUMBER,
19370 QUANTITY,
19371 UNIT_OF_MEASURE,
19372 ACCOUNTING_CLASS_CODE,
19373 INSTANCE_CONDITION_ID,
19374 INSTANCE_STATUS_ID,
19375 CUSTOMER_VIEW_FLAG,
19376 MERCHANT_VIEW_FLAG,
19377 SELLABLE_FLAG,
19378 SYSTEM_ID,
19379 INSTANCE_TYPE_CODE,
19380 ACTIVE_START_DATE,
19381 ACTIVE_END_DATE,
19382 LOCATION_TYPE_CODE,
19383 LOCATION_ID,
19384 INV_ORGANIZATION_ID,
19385 INV_SUBINVENTORY_NAME,
19386 INV_LOCATOR_ID,
19387 PA_PROJECT_ID,
19388 PA_PROJECT_TASK_ID,
19389 IN_TRANSIT_ORDER_LINE_ID,
19390 WIP_JOB_ID,
19391 PO_ORDER_LINE_ID,
19392 LAST_OE_ORDER_LINE_ID,
19393 LAST_OE_RMA_LINE_ID,
19394 LAST_PO_PO_LINE_ID,
19395 LAST_OE_PO_NUMBER,
19396 LAST_WIP_JOB_ID,
19397 LAST_PA_PROJECT_ID,
19398 LAST_PA_TASK_ID,
19399 LAST_OE_AGREEMENT_ID,
19400 INSTALL_DATE,
19401 MANUALLY_CREATED_FLAG,
19402 RETURN_BY_DATE,
19403 ACTUAL_RETURN_DATE,
19404 CREATION_COMPLETE_FLAG,
19405 COMPLETENESS_FLAG,
19406 NULL VERSION_LABEL,
19407 NULL VERSION_LABEL_DESCRIPTION,
19408 CONTEXT,
19409 ATTRIBUTE1,
19410 ATTRIBUTE2,
19411 ATTRIBUTE3,
19412 ATTRIBUTE4,
19413 ATTRIBUTE5,
19414 ATTRIBUTE6,
19415 ATTRIBUTE7,
19416 ATTRIBUTE8,
19417 ATTRIBUTE9,
19418 ATTRIBUTE10,
19419 ATTRIBUTE11,
19420 ATTRIBUTE12,
19421 ATTRIBUTE13,
19422 ATTRIBUTE14,
19423 ATTRIBUTE15,
19424 OBJECT_VERSION_NUMBER,
19425 LAST_TXN_LINE_DETAIL_ID,
19426 INSTALL_LOCATION_TYPE_CODE,
19427 INSTALL_LOCATION_ID,
19428 INSTANCE_USAGE_CODE,
19429 CONFIG_INST_REV_NUM,
19430 CONFIG_VALID_STATUS,
19431 INSTANCE_DESCRIPTION,
19432 --start of column addition for eam integration--
19433 NETWORK_ASSET_FLAG,
19434 MAINTAINABLE_FLAG,
19435 PN_LOCATION_ID,
19436 ASSET_CRITICALITY_CODE,
19437 CATEGORY_ID,
19438 EQUIPMENT_GEN_OBJECT_ID,
19439 INSTANTIATION_FLAG,
19440 LINEAR_LOCATION_ID,
19441 OPERATIONAL_LOG_FLAG,
19442 CHECKIN_STATUS,
19443 SUPPLIER_WARRANTY_EXP_DATE,
19444 ATTRIBUTE16,
19445 ATTRIBUTE17,
19446 ATTRIBUTE18,
19447 ATTRIBUTE19,
19448 ATTRIBUTE20,
19449 ATTRIBUTE21,
19450 ATTRIBUTE22,
19451 ATTRIBUTE23,
19452 ATTRIBUTE24,
19453 ATTRIBUTE25,
19454 ATTRIBUTE26,
19455 ATTRIBUTE27,
19456 ATTRIBUTE28,
19457 ATTRIBUTE29,
19458 ATTRIBUTE30,
19459 --end of column addition for eam integration--
19460 -- Addition of columns for FA Integration
19461 PURCHASE_UNIT_PRICE,
19462 PURCHASE_CURRENCY_CODE,
19463 PAYABLES_UNIT_PRICE,
19464 PAYABLES_CURRENCY_CODE,
19465 SALES_UNIT_PRICE,
19466 SALES_CURRENCY_CODE,
19467 OPERATIONAL_STATUS_CODE,
19468 -- End addition of columns for FA Integration
19469 SOURCE_CODE -- Added Code for Siebel Genesis Project
19470 FROM csi_item_instances
19471 WHERE instance_id = p_instance_id
19472 FOR UPDATE OF OBJECT_VERSION_NUMBER ;
19473
19474 CURSOR instance_csr (p_ins_id IN NUMBER) IS
19475 SELECT *
19476 FROM csi_item_instances
19477 WHERE instance_id = p_ins_id;
19478
19479 l_curr_instance_rec curr_instance_rec%ROWTYPE;
19480 l_instance_csr instance_csr%ROWTYPE;
19481 l_temp VARCHAR2(1);
19482 l_temp_date DATE;
19483 l_msg_count NUMBER;
19484 l_msg_index NUMBER;
19485 l_msg_dummy NUMBER;
19486 l_oks_txn_type VARCHAR2(3);
19487 l_eam_item BOOLEAN := FALSE;
19488 l_vld_org NUMBER;
19489 l_maintenance_object_type NUMBER := 3;
19490 l_ins_hist_id NUMBER;
19491 l_instance_history_id NUMBER;
19492 l_valid BOOLEAN := TRUE;
19493 l_creation_flag VARCHAR2(1);
19494 BEGIN
19495 -- Standard Start of API savepoint
19496 SAVEPOINT expire_child_instance_pvt;
19497
19498 -- Standard call to check for call compatibility.
19499 IF NOT FND_API.Compatible_API_Call (l_api_version,
19500 p_api_version,
19501 l_api_name,
19502 G_PKG_NAME )
19503 THEN
19504 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
19505 END IF;
19506
19507 -- Initialize message list if p_init_msg_list is set to TRUE.
19508 IF FND_API.to_Boolean( p_init_msg_list ) THEN
19509 FND_MSG_PUB.initialize;
19510 END IF;
19511
19512 -- Initialize API return status to success
19513 x_return_status := FND_API.G_RET_STS_SUCCESS;
19514
19515 -- Check the profile option debug_level for debug message reporting
19516 l_debug_level:=fnd_profile.value('CSI_DEBUG_LEVEL');
19517
19518 -- If debug_level = 1 then dump the procedure name
19519 IF (l_debug_level > 0) THEN
19520 csi_gen_utility_pvt.put_line ( 'expire_child_instance_pvt');
19521 END IF;
19522
19523 -- If the debug level = 2 then dump all the parameters values.
19524 IF (l_debug_level >1) THEN
19525 csi_gen_utility_pvt.put_line ( 'expire_child_instance_pvt :'||
19526 p_api_version ||'-'||
19527 p_commit ||'-'||
19528 p_init_msg_list );
19529 END IF;
19530
19531 -- Start API body
19532 p_rel_query_rec.object_id := p_instance_rec.instance_id;
19533 p_rel_query_rec.relationship_type_code := 'COMPONENT-OF';
19534 --
19535 IF p_rel_query_rec.object_id IS NOT NULL AND
19536 p_rel_query_rec.object_id <> FND_API.G_MISS_NUM THEN
19537 csi_ii_relationships_pvt.Get_Children
19538 ( p_relationship_query_rec => p_rel_query_rec,
19539 p_rel_tbl => l_rel_tbl,
19540 p_depth => NULL,
19541 p_active_relationship_only => FND_API.G_TRUE,
19542 p_time_stamp => FND_API.G_MISS_DATE,
19543 p_get_dfs => FND_API.G_FALSE,
19544 p_ii_relationship_level_tbl => l_ii_relationship_level_tbl,
19545 x_return_status => x_return_status,
19546 x_msg_count => x_msg_count,
19547 x_msg_data => x_msg_data
19548 );
19549 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
19550 FND_MESSAGE.SET_NAME('CSI','CSI_API_GET_CHILDREN_ERROR');
19551 FND_MSG_PUB.Add;
19552 RAISE FND_API.G_EXC_ERROR;
19553 END IF;
19554 END IF;
19555 --
19556 -- FOR l_child_instance_id IN child_instances
19557 csi_gen_utility_pvt.put_line('Child 2 count is '||to_char(l_rel_tbl.count));
19558 IF l_rel_tbl.count > 0 THEN
19559 FOR j IN l_rel_tbl.FIRST .. l_rel_tbl.LAST
19560 LOOP
19561 -- Opening Cursor to retrieve Child Id records Details
19562
19563 OPEN curr_instance_rec(l_rel_tbl(j).subject_id);
19564 FETCH curr_instance_rec INTO l_curr_instance_rec;
19565 IF curr_instance_rec%NOTFOUND THEN
19566 FND_MESSAGE.Set_Name('CSI', 'CSI_API_RECORD_LOCKED');
19567 FND_MSG_PUB.ADD;
19568 RAISE FND_API.G_EXC_ERROR;
19569 END IF;
19570 CLOSE curr_instance_rec;
19571
19572 -- Added by sk for bug 2151760
19573 IF (( p_instance_rec.active_end_date IS NOT NULL) AND (p_instance_rec.active_end_date < SYSDATE))
19574 AND p_instance_rec.active_end_date <> fnd_api.g_miss_date
19575 THEN
19576 l_temp_date:= p_instance_rec.active_end_date;
19577 BEGIN
19578 SELECT 'x'
19579 INTO l_temp
19580 FROM csi_inst_transactions_v
19581 WHERE instance_id=l_curr_instance_rec.instance_id
19582 AND transaction_date>p_instance_rec.active_end_date
19583 AND ROWNUM=1;
19584
19585 IF l_temp IS NOT NULL
19586 THEN
19587 x_return_status := FND_API.G_RET_STS_ERROR ;
19588 FND_MESSAGE.Set_Name('CSI', 'CSI_CHILD_HAS_TXN');
19589 FND_MESSAGE.SET_TOKEN('INSTANCE_ID',l_curr_instance_rec.instance_number);
19590 FND_MSG_PUB.ADD;
19591 RAISE FND_API.G_EXC_ERROR;
19592 END IF;
19593 EXCEPTION
19594 WHEN FND_API.G_EXC_ERROR THEN
19595 RAISE FND_API.G_EXC_ERROR;
19596 WHEN OTHERS THEN
19597 NULL;
19598 END;
19599 ELSE
19600 l_temp_date:=SYSDATE;
19601 END IF;
19602 -- End addition by sk for bug 2151760
19603 l_instance_rec.object_version_number := l_curr_instance_rec.object_version_number + 1;
19604 -- l_instance_rec.instance_status_id := 1;
19605
19606 -- Added by sguthiva for bug 2520978
19607 -- Modified by srramakr for enhancement 2315522.
19608 -- This will allow the user to pass a Terminable status during expiration.
19609 IF p_instance_rec.instance_status_id IS NOT NULL AND
19610 p_instance_rec.instance_status_id <> fnd_api.g_miss_num THEN
19611 IF NOT (CSI_Item_Instance_vld_pvt.val_inst_ter_flag(
19612 p_instance_rec.instance_status_id)) THEN
19613 FND_MESSAGE.SET_NAME('CSI','CSI_API_INVALID_TERM_STATUS');
19614 FND_MSG_PUB.ADD;
19615 RAISE FND_API.G_EXC_ERROR;
19616 END IF;
19617 l_instance_rec.instance_status_id := p_instance_rec.instance_status_id;
19618 ELSE
19619 l_instance_rec.instance_status_id := fnd_profile.value('CSI_SYS_TERM_INST_STATUS_ID');
19620 IF l_instance_rec.instance_status_id IS NULL
19621 OR l_instance_rec.instance_status_id=fnd_api.g_miss_num
19622 THEN
19623 l_instance_rec.instance_status_id := 1;
19624 END IF;
19625 END IF;
19626 -- End addition by sguthiva for bug 2520978.
19627
19628 -- Added the following code for eam integration
19629 IF p_instance_rec.vld_organization_id IS NULL OR
19630 p_instance_rec.vld_organization_id = fnd_api.g_miss_num
19631 THEN
19632 BEGIN
19633 SELECT last_vld_organization_id
19634 INTO l_vld_org
19635 FROM csi_item_instances
19636 WHERE instance_id = p_instance_rec.instance_id;
19637 EXCEPTION
19638 WHEN NO_DATA_FOUND THEN
19639 fnd_message.set_name('CSI','CSI_API_INVALID_INSTANCE_ID');
19640 fnd_message.set_token('INSTANCE_ID',p_instance_rec.instance_id);
19641 fnd_msg_pub.ADD;
19642 END;
19643 ELSE
19644 l_vld_org := p_instance_rec.vld_organization_id;
19645 END IF;
19646
19647 IF csi_item_instance_vld_pvt.Check_for_eam_item
19648 (p_inventory_item_id => l_curr_instance_rec.inventory_item_id,
19649 p_organization_id => l_vld_org)
19650 THEN
19651 l_eam_item := TRUE;
19652 END IF;
19653
19654 IF l_eam_item AND
19655 (l_temp_date IS NOT NULL AND
19656 l_temp_date <> fnd_api.g_miss_date)
19657 THEN
19658 IF NOT eam_common_utilities_pvt.check_deactivate
19659 (p_maintenance_object_id => p_instance_rec.instance_id
19660 ,p_maintenance_object_type => l_maintenance_object_type)
19661 THEN
19662 csi_gen_utility_pvt.put_line('Error from eam_common_utilities_pvt.check_deactivate API ');
19663 RAISE fnd_api.g_exc_error;
19664 END IF;
19665 END IF;
19666 -- End code addition for eam integration
19667 -- validate instance status id
19668 IF NVL(l_instance_rec.instance_status_id,fnd_api.g_miss_num) <> fnd_api.g_miss_num
19669 THEN
19670 csi_item_instance_vld_pvt.is_valid_status(
19671 p_instance_status_id => l_instance_rec.instance_status_id,
19672 p_creation_complete_flag => l_creation_flag,
19673 l_return_value => l_valid);
19674 IF NOT(l_valid)
19675 THEN
19676 RAISE fnd_api.g_exc_error;
19677 END IF;
19678 END IF;
19679
19680 IF l_instance_rec.instance_status_id IS NOT NULL AND
19681 l_instance_rec.instance_status_id <> FND_API.G_MISS_NUM AND
19682 l_instance_rec.instance_status_id <> l_curr_instance_rec.instance_status_id
19683 THEN
19684 IF NOT csi_item_instance_vld_pvt.is_status_updateable
19685 (p_instance_status => l_instance_rec.instance_status_id
19686 ,p_current_status => l_curr_instance_rec.instance_status_id)
19687 THEN
19688 RAISE fnd_api.g_exc_error;
19689 END IF;
19690 END IF;
19691
19692 CSI_ITEM_INSTANCES_PKG.Update_Row
19693 ( p_INSTANCE_ID => l_rel_tbl(j).subject_id,
19694 p_INSTANCE_NUMBER => FND_API.G_MISS_CHAR,
19695 p_EXTERNAL_REFERENCE => FND_API.G_MISS_CHAR,
19696 p_INVENTORY_ITEM_ID => FND_API.G_MISS_NUM,
19697 p_INVENTORY_REVISION => FND_API.G_MISS_CHAR,
19698 p_INV_MASTER_ORGANIZATION_ID => FND_API.G_MISS_NUM,
19699 p_SERIAL_NUMBER => FND_API.G_MISS_CHAR,
19700 p_MFG_SERIAL_NUMBER_FLAG => FND_API.G_MISS_CHAR,
19701 p_LOT_NUMBER => FND_API.G_MISS_CHAR,
19702 p_QUANTITY => FND_API.G_MISS_NUM,
19703 p_UNIT_OF_MEASURE => FND_API.G_MISS_CHAR,
19704 p_ACCOUNTING_CLASS_CODE => FND_API.G_MISS_CHAR,
19705 p_INSTANCE_CONDITION_ID => FND_API.G_MISS_NUM,
19706 p_INSTANCE_STATUS_ID => l_instance_rec.instance_status_id,
19707 p_CUSTOMER_VIEW_FLAG => FND_API.G_MISS_CHAR,
19708 p_MERCHANT_VIEW_FLAG => FND_API.G_MISS_CHAR,
19709 p_SELLABLE_FLAG => FND_API.G_MISS_CHAR,
19710 p_SYSTEM_ID => FND_API.G_MISS_NUM,
19711 p_INSTANCE_TYPE_CODE => FND_API.G_MISS_CHAR,
19712 p_ACTIVE_START_DATE => FND_API.G_MISS_DATE,
19713 p_ACTIVE_END_DATE => l_temp_date,--SYSDATE, --p_instance_rec.active_end_date,
19714 p_LOCATION_TYPE_CODE => FND_API.G_MISS_CHAR,
19715 p_LOCATION_ID => FND_API.G_MISS_NUM,
19716 p_INV_ORGANIZATION_ID => FND_API.G_MISS_NUM,
19717 p_INV_SUBINVENTORY_NAME => FND_API.G_MISS_CHAR,
19718 p_INV_LOCATOR_ID => FND_API.G_MISS_NUM,
19719 p_PA_PROJECT_ID => FND_API.G_MISS_NUM,
19720 p_PA_PROJECT_TASK_ID => FND_API.G_MISS_NUM,
19721 p_IN_TRANSIT_ORDER_LINE_ID => FND_API.G_MISS_NUM,
19722 p_WIP_JOB_ID => FND_API.G_MISS_NUM,
19723 p_PO_ORDER_LINE_ID => FND_API.G_MISS_NUM,
19724 p_LAST_OE_ORDER_LINE_ID => FND_API.G_MISS_NUM,
19725 p_LAST_OE_RMA_LINE_ID => FND_API.G_MISS_NUM,
19726 p_LAST_PO_PO_LINE_ID => FND_API.G_MISS_NUM,
19727 p_LAST_OE_PO_NUMBER => FND_API.G_MISS_CHAR,
19728 p_LAST_WIP_JOB_ID => FND_API.G_MISS_NUM,
19729 p_LAST_PA_PROJECT_ID => FND_API.G_MISS_NUM,
19730 p_LAST_PA_TASK_ID => FND_API.G_MISS_NUM,
19731 p_LAST_OE_AGREEMENT_ID => FND_API.G_MISS_NUM,
19732 p_INSTALL_DATE => FND_API.G_MISS_DATE,
19733 p_MANUALLY_CREATED_FLAG => FND_API.G_MISS_CHAR,
19734 p_RETURN_BY_DATE => FND_API.G_MISS_DATE,
19735 p_ACTUAL_RETURN_DATE => FND_API.G_MISS_DATE,
19736 p_CREATION_COMPLETE_FLAG => FND_API.G_MISS_CHAR,
19737 p_COMPLETENESS_FLAG => FND_API.G_MISS_CHAR,
19738 p_CONTEXT => FND_API.G_MISS_CHAR,
19739 p_ATTRIBUTE1 => FND_API.G_MISS_CHAR,
19740 p_ATTRIBUTE2 => FND_API.G_MISS_CHAR,
19741 p_ATTRIBUTE3 => FND_API.G_MISS_CHAR,
19742 p_ATTRIBUTE4 => FND_API.G_MISS_CHAR,
19743 p_ATTRIBUTE5 => FND_API.G_MISS_CHAR,
19744 p_ATTRIBUTE6 => FND_API.G_MISS_CHAR,
19745 p_ATTRIBUTE7 => FND_API.G_MISS_CHAR,
19746 p_ATTRIBUTE8 => FND_API.G_MISS_CHAR,
19747 p_ATTRIBUTE9 => FND_API.G_MISS_CHAR,
19748 p_ATTRIBUTE10 => FND_API.G_MISS_CHAR,
19749 p_ATTRIBUTE11 => FND_API.G_MISS_CHAR,
19750 p_ATTRIBUTE12 => FND_API.G_MISS_CHAR,
19751 p_ATTRIBUTE13 => FND_API.G_MISS_CHAR,
19752 p_ATTRIBUTE14 => FND_API.G_MISS_CHAR,
19753 p_ATTRIBUTE15 => FND_API.G_MISS_CHAR,
19754 p_CREATED_BY => fnd_api.g_miss_num,
19755 p_CREATION_DATE => fnd_api.g_miss_date,
19756 p_LAST_UPDATED_BY => FND_GLOBAL.USER_ID,
19757 p_LAST_UPDATE_DATE => SYSDATE,
19758 p_LAST_UPDATE_LOGIN => FND_GLOBAL.CONC_LOGIN_ID,
19759 p_OBJECT_VERSION_NUMBER => l_instance_rec.OBJECT_VERSION_NUMBER,
19760 p_LAST_TXN_LINE_DETAIL_ID => FND_API.G_MISS_NUM,
19761 p_INSTALL_LOCATION_TYPE_CODE => FND_API.G_MISS_CHAR,
19762 p_INSTALL_LOCATION_ID => FND_API.G_MISS_NUM,
19763 p_INSTANCE_USAGE_CODE => FND_API.G_MISS_CHAR,
19764 p_CONFIG_INST_HDR_ID => NULL, -- FND_API.G_MISS_NUM,
19765 p_CONFIG_INST_REV_NUM => NULL, -- FND_API.G_MISS_NUM,
19766 p_CONFIG_INST_ITEM_ID => NULL, -- FND_API.G_MISS_NUM,
19767 p_CONFIG_VALID_STATUS => NULL, -- FND_API.G_MISS_CHAR,
19768 p_INSTANCE_DESCRIPTION => FND_API.G_MISS_CHAR,
19769 p_REQUEST_ID => FND_API.G_MISS_NUM,
19770 p_PROGRAM_APPLICATION_ID => FND_API.G_MISS_NUM,
19771 p_PROGRAM_ID => FND_API.G_MISS_NUM,
19772 p_PROGRAM_UPDATE_DATE => FND_API.G_MISS_DATE,
19773 --start of parameters addition for eam integration--
19774 p_NETWORK_ASSET_FLAG => FND_API.G_MISS_CHAR,
19775 p_MAINTAINABLE_FLAG => FND_API.G_MISS_CHAR,
19776 p_PN_LOCATION_ID => FND_API.G_MISS_NUM,
19777 p_ASSET_CRITICALITY_CODE => FND_API.G_MISS_CHAR,
19778 p_CATEGORY_ID => FND_API.G_MISS_NUM,
19779 p_EQUIPMENT_GEN_OBJECT_ID => FND_API.G_MISS_NUM,
19780 p_INSTANTIATION_FLAG => FND_API.G_MISS_CHAR,
19781 p_LINEAR_LOCATION_ID => FND_API.G_MISS_NUM,
19782 p_OPERATIONAL_LOG_FLAG => FND_API.G_MISS_CHAR,
19783 p_CHECKIN_STATUS => FND_API.G_MISS_NUM,
19784 p_SUPPLIER_WARRANTY_EXP_DATE => FND_API.G_MISS_DATE,
19785 p_ATTRIBUTE16 => FND_API.G_MISS_CHAR,
19786 p_ATTRIBUTE17 => FND_API.G_MISS_CHAR,
19787 p_ATTRIBUTE18 => FND_API.G_MISS_CHAR,
19788 p_ATTRIBUTE19 => FND_API.G_MISS_CHAR,
19789 p_ATTRIBUTE20 => FND_API.G_MISS_CHAR,
19790 p_ATTRIBUTE21 => FND_API.G_MISS_CHAR,
19791 p_ATTRIBUTE22 => FND_API.G_MISS_CHAR,
19792 p_ATTRIBUTE23 => FND_API.G_MISS_CHAR,
19793 p_ATTRIBUTE24 => FND_API.G_MISS_CHAR,
19794 p_ATTRIBUTE25 => FND_API.G_MISS_CHAR,
19795 p_ATTRIBUTE26 => FND_API.G_MISS_CHAR,
19796 p_ATTRIBUTE27 => FND_API.G_MISS_CHAR,
19797 p_ATTRIBUTE28 => FND_API.G_MISS_CHAR,
19798 p_ATTRIBUTE29 => FND_API.G_MISS_CHAR,
19799 p_ATTRIBUTE30 => FND_API.G_MISS_CHAR,
19800 --end of parameters addition for eam integration--
19801 -- Addition of columns for FA Integration
19802 p_PURCHASE_UNIT_PRICE => FND_API.G_MISS_NUM,
19803 p_PURCHASE_CURRENCY_CODE => FND_API.G_MISS_CHAR,
19804 p_PAYABLES_UNIT_PRICE => FND_API.G_MISS_NUM,
19805 p_PAYABLES_CURRENCY_CODE => FND_API.G_MISS_CHAR,
19806 p_SALES_UNIT_PRICE => FND_API.G_MISS_NUM,
19807 p_SALES_CURRENCY_CODE => FND_API.G_MISS_CHAR,
19808 p_OPERATIONAL_STATUS_CODE => FND_API.G_MISS_CHAR,
19809 -- End addition of columns for FA Integration
19810 p_SOURCE_CODE => FND_API.G_MISS_CHAR -- Added Code for Siebel Genesis Project
19811 );
19812
19813 CSI_TRANSACTIONS_PVT.Create_transaction
19814 (
19815 p_api_version => p_api_version
19816 ,p_commit => p_commit
19817 ,p_init_msg_list => p_init_msg_list
19818 ,p_validation_level => p_validation_level
19819 ,p_Success_IF_Exists_Flag => 'Y'
19820 ,p_transaction_rec => p_txn_rec
19821 ,x_return_status => x_return_status
19822 ,x_msg_count => x_msg_count
19823 ,x_msg_data => x_msg_data
19824 );
19825
19826 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
19827
19828 FND_MESSAGE.SET_NAME('CSI','CSI_FAILED_TO_VALIDATE_TXN');
19829 FND_MESSAGE.SET_TOKEN('TRANSACTION_ID',p_txn_rec.transaction_id );
19830 FND_MSG_PUB.Add;
19831 RAISE FND_API.G_EXC_ERROR;
19832 END IF;
19833
19834 -- Get the full_dump_frequency from csi_install_parameter
19835 IF csi_datastructures_pub.g_install_param_rec.fetch_flag IS NULL THEN
19836 csi_gen_utility_pvt.populate_install_param_rec;
19837 END IF;
19838 --
19839 l_full_dump_frequency := csi_datastructures_pub.g_install_param_rec.history_full_dump_frequency;
19840 --
19841 IF l_full_dump_frequency IS NULL THEN
19842 FND_MESSAGE.SET_NAME('CSI','CSI_API_GET_FULL_DUMP_FAILED');
19843 FND_MSG_PUB.ADD;
19844 RAISE FND_API.G_EXC_ERROR;
19845 END IF;
19846
19847 -- Get a unique history item instance id from the sequence
19848 l_csi_item_instance_h_id :=
19849 csi_item_instance_vld_pvt.get_csi_item_instance_h_id;
19850
19851 SELECT MOD(p_instance_rec.object_version_number,l_full_dump_frequency)
19852 INTO l_mod_value
19853 FROM dual;
19854
19855
19856 IF (l_mod_value = 0) THEN
19857 -- If the mod value is 0 then dump all the columns both changed and unchanged
19858 -- changed columns have old and new values while the unchanged values have old and new values
19859 -- exactly same
19860
19861 CSI_ITEM_INSTANCES_H_PKG.Insert_Row
19862 ( px_INSTANCE_HISTORY_ID => l_csi_item_instance_h_id
19863 ,p_INSTANCE_ID => l_rel_tbl(j).subject_id
19864 ,p_TRANSACTION_ID => p_txn_rec.TRANSACTION_ID
19865 ,p_OLD_INSTANCE_NUMBER => l_curr_instance_rec.INSTANCE_NUMBER
19866 ,p_NEW_INSTANCE_NUMBER => l_curr_instance_rec.INSTANCE_NUMBER
19867 ,p_OLD_EXTERNAL_REFERENCE => l_curr_instance_rec.EXTERNAL_REFERENCE
19868 ,p_NEW_EXTERNAL_REFERENCE => l_curr_instance_rec.EXTERNAL_REFERENCE
19869 ,p_OLD_INVENTORY_ITEM_ID => l_curr_instance_rec.INVENTORY_ITEM_ID
19870 ,p_NEW_INVENTORY_ITEM_ID => l_curr_instance_rec.INVENTORY_ITEM_ID
19871 ,p_OLD_INVENTORY_REVISION => l_curr_instance_rec.INVENTORY_REVISION
19872 ,p_NEW_INVENTORY_REVISION => l_curr_instance_rec.INVENTORY_REVISION
19873 ,p_OLD_INV_MASTER_ORGZN_ID => l_curr_instance_rec.INV_MASTER_ORGANIZATION_ID
19874 ,p_NEW_INV_MASTER_ORGZN_ID => l_curr_instance_rec.INV_MASTER_ORGANIZATION_ID
19875 ,p_OLD_SERIAL_NUMBER => l_curr_instance_rec.SERIAL_NUMBER
19876 ,p_NEW_SERIAL_NUMBER => l_curr_instance_rec.SERIAL_NUMBER
19877 ,p_OLD_MFG_SERIAL_NUMBER_FLAG => l_curr_instance_rec.MFG_SERIAL_NUMBER_FLAG
19878 ,p_NEW_MFG_SERIAL_NUMBER_FLAG => l_curr_instance_rec.MFG_SERIAL_NUMBER_FLAG
19879 ,p_OLD_LOT_NUMBER => l_curr_instance_rec.LOT_NUMBER
19880 ,p_NEW_LOT_NUMBER => l_curr_instance_rec.LOT_NUMBER
19881 ,p_OLD_QUANTITY => l_curr_instance_rec.QUANTITY
19882 ,p_NEW_QUANTITY => l_curr_instance_rec.QUANTITY
19883 ,p_OLD_UNIT_OF_MEASURE => l_curr_instance_rec.UNIT_OF_MEASURE
19884 ,p_NEW_UNIT_OF_MEASURE => l_curr_instance_rec.UNIT_OF_MEASURE
19885 ,p_OLD_ACCOUNTING_CLASS_CODE => l_curr_instance_rec.ACCOUNTING_CLASS_CODE
19886 ,p_NEW_ACCOUNTING_CLASS_CODE => l_curr_instance_rec.ACCOUNTING_CLASS_CODE
19887 ,p_OLD_INSTANCE_CONDITION_ID => l_curr_instance_rec.INSTANCE_CONDITION_ID
19888 ,p_NEW_INSTANCE_CONDITION_ID => l_curr_instance_rec.INSTANCE_CONDITION_ID
19889 ,p_OLD_INSTANCE_STATUS_ID => l_curr_instance_rec.INSTANCE_STATUS_ID
19890 ,p_NEW_INSTANCE_STATUS_ID => l_instance_rec.INSTANCE_STATUS_ID
19891 ,p_OLD_CUSTOMER_VIEW_FLAG => l_curr_instance_rec.CUSTOMER_VIEW_FLAG
19892 ,p_NEW_CUSTOMER_VIEW_FLAG => l_curr_instance_rec.CUSTOMER_VIEW_FLAG
19893 ,p_OLD_MERCHANT_VIEW_FLAG => l_curr_instance_rec.MERCHANT_VIEW_FLAG
19894 ,p_NEW_MERCHANT_VIEW_FLAG => l_curr_instance_rec.MERCHANT_VIEW_FLAG
19895 ,p_OLD_SELLABLE_FLAG => l_curr_instance_rec.SELLABLE_FLAG
19896 ,p_NEW_SELLABLE_FLAG => l_curr_instance_rec.SELLABLE_FLAG
19897 ,p_OLD_SYSTEM_ID => l_curr_instance_rec.SYSTEM_ID
19898 ,p_NEW_SYSTEM_ID => l_curr_instance_rec.SYSTEM_ID
19899 ,p_OLD_INSTANCE_TYPE_CODE => l_curr_instance_rec.INSTANCE_TYPE_CODE
19900 ,p_NEW_INSTANCE_TYPE_CODE => l_curr_instance_rec.INSTANCE_TYPE_CODE
19901 ,p_OLD_ACTIVE_START_DATE => l_curr_instance_rec.ACTIVE_START_DATE
19902 ,p_NEW_ACTIVE_START_DATE => l_curr_instance_rec.ACTIVE_START_DATE
19903 ,p_OLD_ACTIVE_END_DATE => l_curr_instance_rec.ACTIVE_END_DATE
19904 ,p_NEW_ACTIVE_END_DATE => l_temp_date --SYSDATE
19905 ,p_OLD_LOCATION_TYPE_CODE => l_curr_instance_rec.LOCATION_TYPE_CODE
19906 ,p_NEW_LOCATION_TYPE_CODE => l_curr_instance_rec.LOCATION_TYPE_CODE
19907 ,p_OLD_LOCATION_ID => l_curr_instance_rec.LOCATION_ID
19908 ,p_NEW_LOCATION_ID => l_curr_instance_rec.LOCATION_ID
19909 ,p_OLD_INV_ORGANIZATION_ID => l_curr_instance_rec.INV_ORGANIZATION_ID
19910 ,p_NEW_INV_ORGANIZATION_ID => l_curr_instance_rec.INV_ORGANIZATION_ID
19911 ,p_OLD_INV_SUBINVENTORY_NAME => l_curr_instance_rec.INV_SUBINVENTORY_NAME
19912 ,p_NEW_INV_SUBINVENTORY_NAME => l_curr_instance_rec.INV_SUBINVENTORY_NAME
19913 ,p_OLD_INV_LOCATOR_ID => l_curr_instance_rec.INV_LOCATOR_ID
19914 ,p_NEW_INV_LOCATOR_ID => l_curr_instance_rec.INV_LOCATOR_ID
19915 ,p_OLD_PA_PROJECT_ID => l_curr_instance_rec.PA_PROJECT_ID
19916 ,p_NEW_PA_PROJECT_ID => l_curr_instance_rec.PA_PROJECT_ID
19917 ,p_OLD_PA_PROJECT_TASK_ID => l_curr_instance_rec.PA_PROJECT_TASK_ID
19918 ,p_NEW_PA_PROJECT_TASK_ID => l_curr_instance_rec.PA_PROJECT_TASK_ID
19919 ,p_OLD_IN_TRANSIT_ORDER_LINE_ID => l_curr_instance_rec.IN_TRANSIT_ORDER_LINE_ID
19920 ,p_NEW_IN_TRANSIT_ORDER_LINE_ID => l_curr_instance_rec.IN_TRANSIT_ORDER_LINE_ID
19921 ,p_OLD_WIP_JOB_ID => l_curr_instance_rec.WIP_JOB_ID
19922 ,p_NEW_WIP_JOB_ID => l_curr_instance_rec.WIP_JOB_ID
19923 ,p_OLD_PO_ORDER_LINE_ID => l_curr_instance_rec.PO_ORDER_LINE_ID
19924 ,p_NEW_PO_ORDER_LINE_ID => l_curr_instance_rec.PO_ORDER_LINE_ID
19925 ,p_OLD_COMPLETENESS_FLAG => l_curr_instance_rec.COMPLETENESS_FLAG
19926 ,p_NEW_COMPLETENESS_FLAG => l_curr_instance_rec.COMPLETENESS_FLAG
19927 ,p_FULL_DUMP_FLAG => 'Y'
19928 ,p_NEW_CONTEXT => l_curr_instance_rec.CONTEXT
19929 ,P_OLD_CONTEXT => l_curr_instance_rec.CONTEXT
19930 ,p_NEW_ATTRIBUTE1 => l_curr_instance_rec.ATTRIBUTE1
19931 ,p_OLD_ATTRIBUTE1 => l_curr_instance_rec.ATTRIBUTE1
19932 ,p_NEW_ATTRIBUTE2 => l_curr_instance_rec.ATTRIBUTE2
19933 ,p_OLD_ATTRIBUTE2 => l_curr_instance_rec.ATTRIBUTE2
19934 ,p_NEW_ATTRIBUTE3 => l_curr_instance_rec.ATTRIBUTE3
19935 ,p_OLD_ATTRIBUTE3 => l_curr_instance_rec.ATTRIBUTE3
19936 ,p_NEW_ATTRIBUTE4 => l_curr_instance_rec.ATTRIBUTE4
19937 ,p_OLD_ATTRIBUTE4 => l_curr_instance_rec.ATTRIBUTE4
19938 ,p_NEW_ATTRIBUTE5 => l_curr_instance_rec.ATTRIBUTE5
19939 ,p_OLD_ATTRIBUTE5 => l_curr_instance_rec.ATTRIBUTE5
19940 ,p_NEW_ATTRIBUTE6 => l_curr_instance_rec.ATTRIBUTE6
19941 ,p_OLD_ATTRIBUTE6 => l_curr_instance_rec.ATTRIBUTE6
19942 ,p_NEW_ATTRIBUTE7 => l_curr_instance_rec.ATTRIBUTE7
19943 ,p_OLD_ATTRIBUTE7 => l_curr_instance_rec.ATTRIBUTE7
19944 ,p_NEW_ATTRIBUTE8 => l_curr_instance_rec.ATTRIBUTE8
19945 ,p_OLD_ATTRIBUTE8 => l_curr_instance_rec.ATTRIBUTE8
19946 ,p_NEW_ATTRIBUTE9 => l_curr_instance_rec.ATTRIBUTE9
19947 ,p_OLD_ATTRIBUTE9 => l_curr_instance_rec.ATTRIBUTE9
19948 ,p_NEW_ATTRIBUTE10 => l_curr_instance_rec.ATTRIBUTE10
19949 ,p_OLD_ATTRIBUTE10 => l_curr_instance_rec.ATTRIBUTE10
19950 ,p_NEW_ATTRIBUTE11 => l_curr_instance_rec.ATTRIBUTE11
19951 ,p_OLD_ATTRIBUTE11 => l_curr_instance_rec.ATTRIBUTE11
19952 ,p_NEW_ATTRIBUTE12 => l_curr_instance_rec.ATTRIBUTE12
19953 ,p_OLD_ATTRIBUTE12 => l_curr_instance_rec.ATTRIBUTE12
19954 ,p_NEW_ATTRIBUTE13 => l_curr_instance_rec.ATTRIBUTE13
19955 ,p_OLD_ATTRIBUTE13 => l_curr_instance_rec.ATTRIBUTE13
19956 ,p_NEW_ATTRIBUTE14 => l_curr_instance_rec.ATTRIBUTE14
19957 ,p_OLD_ATTRIBUTE14 => l_curr_instance_rec.ATTRIBUTE14
19958 ,p_NEW_ATTRIBUTE15 => l_curr_instance_rec.ATTRIBUTE15
19959 ,p_OLD_ATTRIBUTE15 => l_curr_instance_rec.ATTRIBUTE15
19960 ,p_CREATED_BY => FND_GLOBAL.USER_ID
19961 ,p_CREATION_DATE => SYSDATE
19962 ,p_LAST_UPDATED_BY => FND_GLOBAL.USER_ID
19963 ,p_LAST_UPDATE_DATE => SYSDATE
19964 ,p_LAST_UPDATE_LOGIN => FND_GLOBAL.CONC_LOGIN_ID
19965 ,p_OBJECT_VERSION_NUMBER => 1
19966 ,p_OLD_INST_LOC_TYPE_CODE => l_curr_instance_rec.INSTALL_LOCATION_TYPE_CODE
19967 ,p_NEW_INST_LOC_TYPE_CODE => l_curr_instance_rec.INSTALL_LOCATION_TYPE_CODE
19968 ,p_OLD_INST_LOC_ID => l_curr_instance_rec.INSTALL_LOCATION_ID
19969 ,p_NEW_INST_LOC_ID => l_curr_instance_rec.INSTALL_LOCATION_ID
19970 ,p_OLD_INST_USAGE_CODE => l_curr_instance_rec.INSTANCE_USAGE_CODE
19971 ,p_NEW_INST_USAGE_CODE => l_curr_instance_rec.INSTANCE_USAGE_CODE
19972 ,p_OLD_CONFIG_INST_REV_NUM => l_curr_instance_rec.CONFIG_INST_REV_NUM
19973 ,p_NEW_CONFIG_INST_REV_NUM => NULL -- l_curr_instance_rec.CONFIG_INST_REV_NUM
19974 ,p_OLD_CONFIG_VALID_STATUS => l_curr_instance_rec.CONFIG_VALID_STATUS
19975 ,p_NEW_CONFIG_VALID_STATUS => l_curr_instance_rec.CONFIG_VALID_STATUS
19976 ,p_OLD_INSTANCE_DESCRIPTION => l_curr_instance_rec.INSTANCE_DESCRIPTION
19977 ,p_NEW_INSTANCE_DESCRIPTION => l_curr_instance_rec.INSTANCE_DESCRIPTION
19978 ,p_OLD_INSTALL_DATE => l_curr_instance_rec.INSTALL_DATE
19979 ,p_NEW_INSTALL_DATE => l_curr_instance_rec.INSTALL_DATE
19980 ,p_OLD_RETURN_BY_DATE => l_curr_instance_rec.RETURN_BY_DATE
19981 ,p_NEW_RETURN_BY_DATE => l_curr_instance_rec.RETURN_BY_DATE
19982 ,p_OLD_ACTUAL_RETURN_DATE => l_curr_instance_rec.ACTUAL_RETURN_DATE
19983 ,p_NEW_ACTUAL_RETURN_DATE => l_curr_instance_rec.ACTUAL_RETURN_DATE
19984 ,p_OLD_LAST_OE_AGREEMENT_ID => l_curr_instance_rec.LAST_OE_AGREEMENT_ID
19985 ,p_NEW_LAST_OE_AGREEMENT_ID => l_curr_instance_rec.LAST_OE_AGREEMENT_ID
19986 ,p_OLD_LAST_OE_ORDER_LINE_ID => l_curr_instance_rec.LAST_OE_ORDER_LINE_ID
19987 ,p_NEW_LAST_OE_ORDER_LINE_ID => l_curr_instance_rec.LAST_OE_ORDER_LINE_ID
19988 ,p_OLD_LAST_OE_RMA_LINE_ID => l_curr_instance_rec.LAST_OE_RMA_LINE_ID
19989 ,p_NEW_LAST_OE_RMA_LINE_ID => l_curr_instance_rec.LAST_OE_RMA_LINE_ID
19990 ,p_OLD_LAST_WIP_JOB_ID => l_curr_instance_rec.LAST_WIP_JOB_ID
19991 ,p_NEW_LAST_WIP_JOB_ID => l_curr_instance_rec.LAST_WIP_JOB_ID
19992 ,p_OLD_LAST_PO_PO_LINE_ID => l_curr_instance_rec.LAST_PO_PO_LINE_ID
19993 ,p_NEW_LAST_PO_PO_LINE_ID => l_curr_instance_rec.LAST_PO_PO_LINE_ID
19994 ,p_OLD_LAST_PA_PROJECT_ID => l_curr_instance_rec.LAST_PA_PROJECT_ID
19995 ,p_NEW_LAST_PA_PROJECT_ID => l_curr_instance_rec.LAST_PA_PROJECT_ID
19996 ,p_OLD_LAST_PA_TASK_ID => l_curr_instance_rec.LAST_PA_TASK_ID
19997 ,p_NEW_LAST_PA_TASK_ID => l_curr_instance_rec.LAST_PA_TASK_ID
19998 ,p_OLD_LAST_TXN_LINE_DETAIL_ID => l_curr_instance_rec.LAST_TXN_LINE_DETAIL_ID
19999 ,p_NEW_LAST_TXN_LINE_DETAIL_ID => l_curr_instance_rec.LAST_TXN_LINE_DETAIL_ID
20000 ,p_OLD_LAST_OE_PO_NUMBER => l_curr_instance_rec.LAST_OE_PO_NUMBER
20001 ,p_NEW_LAST_OE_PO_NUMBER => l_curr_instance_rec.LAST_OE_PO_NUMBER
20002 --start of parameters addition for eam integration--
20003 ,p_OLD_NETWORK_ASSET_FLAG => l_curr_instance_rec.NETWORK_ASSET_FLAG
20004 ,p_NEW_NETWORK_ASSET_FLAG => l_curr_instance_rec.NETWORK_ASSET_FLAG
20005 ,p_OLD_MAINTAINABLE_FLAG => l_curr_instance_rec.MAINTAINABLE_FLAG
20006 ,p_NEW_MAINTAINABLE_FLAG => l_curr_instance_rec.MAINTAINABLE_FLAG
20007 ,p_OLD_PN_LOCATION_ID => l_curr_instance_rec.PN_LOCATION_ID
20008 ,p_NEW_PN_LOCATION_ID => l_curr_instance_rec.PN_LOCATION_ID
20009 ,p_OLD_ASSET_CRITICALITY_CODE => l_curr_instance_rec.ASSET_CRITICALITY_CODE
20010 ,p_NEW_ASSET_CRITICALITY_CODE => l_curr_instance_rec.ASSET_CRITICALITY_CODE
20011 ,p_OLD_CATEGORY_ID => l_curr_instance_rec.CATEGORY_ID
20012 ,p_NEW_CATEGORY_ID => l_curr_instance_rec.CATEGORY_ID
20013 ,p_OLD_EQUIPMENT_GEN_OBJECT_ID => l_curr_instance_rec.EQUIPMENT_GEN_OBJECT_ID
20014 ,p_NEW_EQUIPMENT_GEN_OBJECT_ID => l_curr_instance_rec.EQUIPMENT_GEN_OBJECT_ID
20015 ,p_OLD_INSTANTIATION_FLAG => l_curr_instance_rec.INSTANTIATION_FLAG
20016 ,p_NEW_INSTANTIATION_FLAG => l_curr_instance_rec.INSTANTIATION_FLAG
20017 ,p_OLD_LINEAR_LOCATION_ID => l_curr_instance_rec.LINEAR_LOCATION_ID
20018 ,p_NEW_LINEAR_LOCATION_ID => l_curr_instance_rec.LINEAR_LOCATION_ID
20019 ,p_OLD_OPERATIONAL_LOG_FLAG => l_curr_instance_rec.OPERATIONAL_LOG_FLAG
20020 ,p_NEW_OPERATIONAL_LOG_FLAG => l_curr_instance_rec.OPERATIONAL_LOG_FLAG
20021 ,p_OLD_CHECKIN_STATUS => l_curr_instance_rec.CHECKIN_STATUS
20022 ,p_NEW_CHECKIN_STATUS => l_curr_instance_rec.CHECKIN_STATUS
20023 ,p_OLD_SUP_WARRANTY_EXP_DATE => l_curr_instance_rec.SUPPLIER_WARRANTY_EXP_DATE
20024 ,p_NEW_SUP_WARRANTY_EXP_DATE => l_curr_instance_rec.SUPPLIER_WARRANTY_EXP_DATE
20025 ,p_OLD_ATTRIBUTE16 => l_curr_instance_rec.ATTRIBUTE16
20026 ,p_NEW_ATTRIBUTE16 => l_curr_instance_rec.ATTRIBUTE16
20027 ,p_OLD_ATTRIBUTE17 => l_curr_instance_rec.ATTRIBUTE17
20028 ,p_NEW_ATTRIBUTE17 => l_curr_instance_rec.ATTRIBUTE17
20029 ,p_OLD_ATTRIBUTE18 => l_curr_instance_rec.ATTRIBUTE18
20030 ,p_NEW_ATTRIBUTE18 => l_curr_instance_rec.ATTRIBUTE18
20031 ,p_OLD_ATTRIBUTE19 => l_curr_instance_rec.ATTRIBUTE19
20032 ,p_NEW_ATTRIBUTE19 => l_curr_instance_rec.ATTRIBUTE19
20033 ,p_OLD_ATTRIBUTE20 => l_curr_instance_rec.ATTRIBUTE20
20034 ,p_NEW_ATTRIBUTE20 => l_curr_instance_rec.ATTRIBUTE20
20035 ,p_OLD_ATTRIBUTE21 => l_curr_instance_rec.ATTRIBUTE21
20036 ,p_NEW_ATTRIBUTE21 => l_curr_instance_rec.ATTRIBUTE21
20037 ,p_OLD_ATTRIBUTE22 => l_curr_instance_rec.ATTRIBUTE22
20038 ,p_NEW_ATTRIBUTE22 => l_curr_instance_rec.ATTRIBUTE22
20039 ,p_OLD_ATTRIBUTE23 => l_curr_instance_rec.ATTRIBUTE23
20040 ,p_NEW_ATTRIBUTE23 => l_curr_instance_rec.ATTRIBUTE23
20041 ,p_OLD_ATTRIBUTE24 => l_curr_instance_rec.ATTRIBUTE24
20042 ,p_NEW_ATTRIBUTE24 => l_curr_instance_rec.ATTRIBUTE24
20043 ,p_OLD_ATTRIBUTE25 => l_curr_instance_rec.ATTRIBUTE25
20044 ,p_NEW_ATTRIBUTE25 => l_curr_instance_rec.ATTRIBUTE25
20045 ,p_OLD_ATTRIBUTE26 => l_curr_instance_rec.ATTRIBUTE26
20046 ,p_NEW_ATTRIBUTE26 => l_curr_instance_rec.ATTRIBUTE26
20047 ,p_OLD_ATTRIBUTE27 => l_curr_instance_rec.ATTRIBUTE27
20048 ,p_NEW_ATTRIBUTE27 => l_curr_instance_rec.ATTRIBUTE27
20049 ,p_OLD_ATTRIBUTE28 => l_curr_instance_rec.ATTRIBUTE28
20050 ,p_NEW_ATTRIBUTE28 => l_curr_instance_rec.ATTRIBUTE28
20051 ,p_OLD_ATTRIBUTE29 => l_curr_instance_rec.ATTRIBUTE29
20052 ,p_NEW_ATTRIBUTE29 => l_curr_instance_rec.ATTRIBUTE29
20053 ,p_OLD_ATTRIBUTE30 => l_curr_instance_rec.ATTRIBUTE30
20054 ,p_NEW_ATTRIBUTE30 => l_curr_instance_rec.ATTRIBUTE30
20055 --end of parameters addition for eam integration--
20056 -- Addition of columns for FA Integration
20057 ,p_OLD_PAYABLES_UNIT_PRICE => l_curr_instance_rec.PAYABLES_UNIT_PRICE
20058 ,p_NEW_PAYABLES_UNIT_PRICE => l_curr_instance_rec.PAYABLES_UNIT_PRICE
20059 ,p_OLD_PAYABLES_CURRENCY_CODE => l_curr_instance_rec.PAYABLES_CURRENCY_CODE
20060 ,p_NEW_PAYABLES_CURRENCY_CODE => l_curr_instance_rec.PAYABLES_CURRENCY_CODE
20061 ,p_OLD_PURCHASE_UNIT_PRICE => l_curr_instance_rec.PURCHASE_UNIT_PRICE
20062 ,p_NEW_PURCHASE_UNIT_PRICE => l_curr_instance_rec.PURCHASE_UNIT_PRICE
20063 ,p_OLD_PURCHASE_CURRENCY_CODE => l_curr_instance_rec.PURCHASE_CURRENCY_CODE
20064 ,p_NEW_PURCHASE_CURRENCY_CODE => l_curr_instance_rec.PURCHASE_CURRENCY_CODE
20065 ,p_OLD_SALES_UNIT_PRICE => l_curr_instance_rec.SALES_UNIT_PRICE
20066 ,p_NEW_SALES_UNIT_PRICE => l_curr_instance_rec.SALES_UNIT_PRICE
20067 ,p_OLD_SALES_CURRENCY_CODE => l_curr_instance_rec.SALES_CURRENCY_CODE
20068 ,p_NEW_SALES_CURRENCY_CODE => l_curr_instance_rec.SALES_CURRENCY_CODE
20069 ,p_OLD_OPERATIONAL_STATUS_CODE => l_curr_instance_rec.OPERATIONAL_STATUS_CODE
20070 ,p_NEW_OPERATIONAL_STATUS_CODE => l_curr_instance_rec.OPERATIONAL_STATUS_CODE
20071 -- End addition of columns for FA Integration
20072 -- Begin Add Code for Siebel Genesis Project
20073 ,p_OLD_SOURCE_CODE => l_curr_instance_rec.SOURCE_CODE
20074 ,p_NEW_SOURCE_CODE => l_curr_instance_rec.SOURCE_CODE
20075 -- End Add Code for Siebel Genesis Project
20076 );
20077
20078 ELSE
20079 -- If the mod value is not equal to zero then dump only the changed columns
20080 -- while the unchanged values have old and new values as null
20081
20082 CSI_ITEM_INSTANCES_H_PKG.Insert_Row
20083 ( px_INSTANCE_HISTORY_ID => l_csi_item_instance_h_id
20084 ,p_INSTANCE_ID => l_rel_tbl(j).subject_id
20085 ,p_TRANSACTION_ID => p_txn_rec.TRANSACTION_ID
20086 ,p_OLD_INSTANCE_NUMBER => FND_API.G_MISS_CHAR
20087 ,p_NEW_INSTANCE_NUMBER => FND_API.G_MISS_CHAR
20088 ,p_OLD_EXTERNAL_REFERENCE => FND_API.G_MISS_CHAR
20089 ,p_NEW_EXTERNAL_REFERENCE => FND_API.G_MISS_CHAR
20090 ,p_OLD_INVENTORY_ITEM_ID => FND_API.G_MISS_NUM
20091 ,p_NEW_INVENTORY_ITEM_ID => FND_API.G_MISS_NUM
20092 ,p_OLD_INVENTORY_REVISION => FND_API.G_MISS_CHAR
20093 ,p_NEW_INVENTORY_REVISION => FND_API.G_MISS_CHAR
20094 ,p_OLD_INV_MASTER_ORGZN_ID => FND_API.G_MISS_NUM
20095 ,p_NEW_INV_MASTER_ORGZN_ID => FND_API.G_MISS_NUM
20096 ,p_OLD_SERIAL_NUMBER => FND_API.G_MISS_CHAR
20097 ,p_NEW_SERIAL_NUMBER => FND_API.G_MISS_CHAR
20098 ,p_OLD_MFG_SERIAL_NUMBER_FLAG => FND_API.G_MISS_CHAR
20099 ,p_NEW_MFG_SERIAL_NUMBER_FLAG => FND_API.G_MISS_CHAR
20100 ,p_OLD_LOT_NUMBER => FND_API.G_MISS_CHAR
20101 ,p_NEW_LOT_NUMBER => FND_API.G_MISS_CHAR
20102 ,p_OLD_QUANTITY => FND_API.G_MISS_NUM
20103 ,p_NEW_QUANTITY => FND_API.G_MISS_NUM
20104 ,p_OLD_UNIT_OF_MEASURE => FND_API.G_MISS_CHAR
20105 ,p_NEW_UNIT_OF_MEASURE => FND_API.G_MISS_CHAR
20106 ,p_OLD_ACCOUNTING_CLASS_CODE => FND_API.G_MISS_CHAR
20107 ,p_NEW_ACCOUNTING_CLASS_CODE => FND_API.G_MISS_CHAR
20108 ,p_OLD_INSTANCE_CONDITION_ID => FND_API.G_MISS_NUM
20109 ,p_NEW_INSTANCE_CONDITION_ID => FND_API.G_MISS_NUM
20110 ,p_OLD_INSTANCE_STATUS_ID => l_curr_instance_rec.INSTANCE_STATUS_ID
20111 ,p_NEW_INSTANCE_STATUS_ID => l_instance_rec.INSTANCE_STATUS_ID
20112 ,p_OLD_CUSTOMER_VIEW_FLAG => FND_API.G_MISS_CHAR
20113 ,p_NEW_CUSTOMER_VIEW_FLAG => FND_API.G_MISS_CHAR
20114 ,p_OLD_MERCHANT_VIEW_FLAG => FND_API.G_MISS_CHAR
20115 ,p_NEW_MERCHANT_VIEW_FLAG => FND_API.G_MISS_CHAR
20116 ,p_OLD_SELLABLE_FLAG => FND_API.G_MISS_CHAR
20117 ,p_NEW_SELLABLE_FLAG => FND_API.G_MISS_CHAR
20118 ,p_OLD_SYSTEM_ID => FND_API.G_MISS_NUM
20119 ,p_NEW_SYSTEM_ID => FND_API.G_MISS_NUM
20120 ,p_OLD_INSTANCE_TYPE_CODE => FND_API.G_MISS_CHAR
20121 ,p_NEW_INSTANCE_TYPE_CODE => FND_API.G_MISS_CHAR
20122 ,p_OLD_ACTIVE_START_DATE => FND_API.G_MISS_DATE
20123 ,p_NEW_ACTIVE_START_DATE => FND_API.G_MISS_DATE
20124 ,p_OLD_ACTIVE_END_DATE => l_curr_instance_rec.ACTIVE_END_DATE
20125 ,p_NEW_ACTIVE_END_DATE => l_temp_date --SYSDATE
20126 ,p_OLD_LOCATION_TYPE_CODE => FND_API.G_MISS_CHAR
20127 ,p_NEW_LOCATION_TYPE_CODE => FND_API.G_MISS_CHAR
20128 ,p_OLD_LOCATION_ID => FND_API.G_MISS_NUM
20129 ,p_NEW_LOCATION_ID => FND_API.G_MISS_NUM
20130 ,p_OLD_INV_ORGANIZATION_ID => FND_API.G_MISS_NUM
20131 ,p_NEW_INV_ORGANIZATION_ID => FND_API.G_MISS_NUM
20132 ,p_OLD_INV_SUBINVENTORY_NAME => FND_API.G_MISS_CHAR
20133 ,p_NEW_INV_SUBINVENTORY_NAME => FND_API.G_MISS_CHAR
20134 ,p_OLD_INV_LOCATOR_ID => FND_API.G_MISS_NUM
20135 ,p_NEW_INV_LOCATOR_ID => FND_API.G_MISS_NUM
20136 ,p_OLD_PA_PROJECT_ID => FND_API.G_MISS_NUM
20137 ,p_NEW_PA_PROJECT_ID => FND_API.G_MISS_NUM
20138 ,p_OLD_PA_PROJECT_TASK_ID => FND_API.G_MISS_NUM
20139 ,p_NEW_PA_PROJECT_TASK_ID => FND_API.G_MISS_NUM
20140 ,p_OLD_IN_TRANSIT_ORDER_LINE_ID => FND_API.G_MISS_NUM
20141 ,p_NEW_IN_TRANSIT_ORDER_LINE_ID => FND_API.G_MISS_NUM
20142 ,p_OLD_WIP_JOB_ID => FND_API.G_MISS_NUM
20143 ,p_NEW_WIP_JOB_ID => FND_API.G_MISS_NUM
20144 ,p_OLD_PO_ORDER_LINE_ID => FND_API.G_MISS_NUM
20145 ,p_NEW_PO_ORDER_LINE_ID => FND_API.G_MISS_NUM
20146 ,p_OLD_COMPLETENESS_FLAG => FND_API.G_MISS_CHAR
20147 ,p_NEW_COMPLETENESS_FLAG => FND_API.G_MISS_CHAR
20148 ,p_FULL_DUMP_FLAG => 'N'
20149 ,p_NEW_CONTEXT => FND_API.G_MISS_CHAR
20150 ,P_OLD_CONTEXT => FND_API.G_MISS_CHAR
20151 ,p_NEW_ATTRIBUTE1 => FND_API.G_MISS_CHAR
20152 ,p_OLD_ATTRIBUTE1 => FND_API.G_MISS_CHAR
20153 ,p_NEW_ATTRIBUTE2 => FND_API.G_MISS_CHAR
20154 ,p_OLD_ATTRIBUTE2 => FND_API.G_MISS_CHAR
20155 ,p_NEW_ATTRIBUTE3 => FND_API.G_MISS_CHAR
20156 ,p_OLD_ATTRIBUTE3 => FND_API.G_MISS_CHAR
20157 ,p_NEW_ATTRIBUTE4 => FND_API.G_MISS_CHAR
20158 ,p_OLD_ATTRIBUTE4 => FND_API.G_MISS_CHAR
20159 ,p_NEW_ATTRIBUTE5 => FND_API.G_MISS_CHAR
20160 ,p_OLD_ATTRIBUTE5 => FND_API.G_MISS_CHAR
20161 ,p_NEW_ATTRIBUTE6 => FND_API.G_MISS_CHAR
20162 ,p_OLD_ATTRIBUTE6 => FND_API.G_MISS_CHAR
20163 ,p_NEW_ATTRIBUTE7 => FND_API.G_MISS_CHAR
20164 ,p_OLD_ATTRIBUTE7 => FND_API.G_MISS_CHAR
20165 ,p_NEW_ATTRIBUTE8 => FND_API.G_MISS_CHAR
20166 ,p_OLD_ATTRIBUTE8 => FND_API.G_MISS_CHAR
20167 ,p_NEW_ATTRIBUTE9 => FND_API.G_MISS_CHAR
20168 ,p_OLD_ATTRIBUTE9 => FND_API.G_MISS_CHAR
20169 ,p_NEW_ATTRIBUTE10 => FND_API.G_MISS_CHAR
20170 ,p_OLD_ATTRIBUTE10 => FND_API.G_MISS_CHAR
20171 ,p_NEW_ATTRIBUTE11 => FND_API.G_MISS_CHAR
20172 ,p_OLD_ATTRIBUTE11 => FND_API.G_MISS_CHAR
20173 ,p_NEW_ATTRIBUTE12 => FND_API.G_MISS_CHAR
20174 ,p_OLD_ATTRIBUTE12 => FND_API.G_MISS_CHAR
20175 ,p_NEW_ATTRIBUTE13 => FND_API.G_MISS_CHAR
20176 ,p_OLD_ATTRIBUTE13 => FND_API.G_MISS_CHAR
20177 ,p_NEW_ATTRIBUTE14 => FND_API.G_MISS_CHAR
20178 ,p_OLD_ATTRIBUTE14 => FND_API.G_MISS_CHAR
20179 ,p_NEW_ATTRIBUTE15 => FND_API.G_MISS_CHAR
20180 ,p_OLD_ATTRIBUTE15 => FND_API.G_MISS_CHAR
20181 ,p_CREATED_BY => FND_GLOBAL.USER_ID
20182 ,p_CREATION_DATE => SYSDATE
20183 ,p_LAST_UPDATED_BY => FND_GLOBAL.USER_ID
20184 ,p_LAST_UPDATE_DATE => SYSDATE
20185 ,p_LAST_UPDATE_LOGIN => FND_GLOBAL.CONC_LOGIN_ID
20186 ,p_OBJECT_VERSION_NUMBER => 1
20187 ,p_OLD_INST_LOC_TYPE_CODE => FND_API.G_MISS_CHAR
20188 ,p_NEW_INST_LOC_TYPE_CODE => FND_API.G_MISS_CHAR
20189 ,p_OLD_INST_LOC_ID => FND_API.G_MISS_NUM
20190 ,p_NEW_INST_LOC_ID => FND_API.G_MISS_NUM
20191 ,p_OLD_INST_USAGE_CODE => FND_API.G_MISS_CHAR
20192 ,p_NEW_INST_USAGE_CODE => FND_API.G_MISS_CHAR
20193 ,p_OLD_CONFIG_INST_REV_NUM => FND_API.G_MISS_NUM
20194 ,p_NEW_CONFIG_INST_REV_NUM => NULL -- FND_API.G_MISS_NUM
20195 ,p_OLD_CONFIG_VALID_STATUS => FND_API.G_MISS_CHAR
20196 ,p_NEW_CONFIG_VALID_STATUS => FND_API.G_MISS_CHAR
20197 ,p_OLD_INSTANCE_DESCRIPTION => FND_API.G_MISS_CHAR
20198 ,p_NEW_INSTANCE_DESCRIPTION => FND_API.G_MISS_CHAR
20199 ,p_OLD_INSTALL_DATE => FND_API.G_MISS_DATE
20200 ,p_NEW_INSTALL_DATE => FND_API.G_MISS_DATE
20201 ,p_OLD_RETURN_BY_DATE => FND_API.G_MISS_DATE
20202 ,p_NEW_RETURN_BY_DATE => FND_API.G_MISS_DATE
20203 ,p_OLD_ACTUAL_RETURN_DATE => FND_API.G_MISS_DATE
20204 ,p_NEW_ACTUAL_RETURN_DATE => FND_API.G_MISS_DATE
20205 ,p_OLD_LAST_OE_AGREEMENT_ID => FND_API.G_MISS_NUM
20206 ,p_NEW_LAST_OE_AGREEMENT_ID => FND_API.G_MISS_NUM
20207 ,p_OLD_LAST_OE_ORDER_LINE_ID => FND_API.G_MISS_NUM
20208 ,p_NEW_LAST_OE_ORDER_LINE_ID => FND_API.G_MISS_NUM
20209 ,p_OLD_LAST_OE_RMA_LINE_ID => FND_API.G_MISS_NUM
20210 ,p_NEW_LAST_OE_RMA_LINE_ID => FND_API.G_MISS_NUM
20211 ,p_OLD_LAST_WIP_JOB_ID => FND_API.G_MISS_NUM
20212 ,p_NEW_LAST_WIP_JOB_ID => FND_API.G_MISS_NUM
20213 ,p_OLD_LAST_PO_PO_LINE_ID => FND_API.G_MISS_NUM
20214 ,p_NEW_LAST_PO_PO_LINE_ID => FND_API.G_MISS_NUM
20215 ,p_OLD_LAST_PA_PROJECT_ID => FND_API.G_MISS_NUM
20216 ,p_NEW_LAST_PA_PROJECT_ID => FND_API.G_MISS_NUM
20217 ,p_OLD_LAST_PA_TASK_ID => FND_API.G_MISS_NUM
20218 ,p_NEW_LAST_PA_TASK_ID => FND_API.G_MISS_NUM
20219 ,p_OLD_LAST_TXN_LINE_DETAIL_ID => FND_API.G_MISS_NUM
20220 ,p_NEW_LAST_TXN_LINE_DETAIL_ID => FND_API.G_MISS_NUM
20221 ,p_OLD_LAST_OE_PO_NUMBER => FND_API.G_MISS_CHAR
20222 ,p_NEW_LAST_OE_PO_NUMBER => FND_API.G_MISS_CHAR
20223 --start of parameters addition for eam integration--
20224 ,p_OLD_NETWORK_ASSET_FLAG => FND_API.G_MISS_CHAR
20225 ,p_NEW_NETWORK_ASSET_FLAG => FND_API.G_MISS_CHAR
20226 ,p_OLD_MAINTAINABLE_FLAG => FND_API.G_MISS_CHAR
20227 ,p_NEW_MAINTAINABLE_FLAG => FND_API.G_MISS_CHAR
20228 ,p_OLD_PN_LOCATION_ID => FND_API.G_MISS_NUM
20229 ,p_NEW_PN_LOCATION_ID => FND_API.G_MISS_NUM
20230 ,p_OLD_ASSET_CRITICALITY_CODE => FND_API.G_MISS_CHAR
20231 ,p_NEW_ASSET_CRITICALITY_CODE => FND_API.G_MISS_CHAR
20232 ,p_OLD_CATEGORY_ID => FND_API.G_MISS_NUM
20233 ,p_NEW_CATEGORY_ID => FND_API.G_MISS_NUM
20234 ,p_OLD_EQUIPMENT_GEN_OBJECT_ID => FND_API.G_MISS_NUM
20235 ,p_NEW_EQUIPMENT_GEN_OBJECT_ID => FND_API.G_MISS_NUM
20236 ,p_OLD_INSTANTIATION_FLAG => FND_API.G_MISS_CHAR
20237 ,p_NEW_INSTANTIATION_FLAG => FND_API.G_MISS_CHAR
20238 ,p_OLD_LINEAR_LOCATION_ID => FND_API.G_MISS_NUM
20239 ,p_NEW_LINEAR_LOCATION_ID => FND_API.G_MISS_NUM
20240 ,p_OLD_OPERATIONAL_LOG_FLAG => FND_API.G_MISS_CHAR
20241 ,p_NEW_OPERATIONAL_LOG_FLAG => FND_API.G_MISS_CHAR
20242 ,p_OLD_CHECKIN_STATUS => FND_API.G_MISS_NUM
20243 ,p_NEW_CHECKIN_STATUS => FND_API.G_MISS_NUM
20244 ,p_OLD_SUP_WARRANTY_EXP_DATE => FND_API.G_MISS_DATE
20245 ,p_NEW_SUP_WARRANTY_EXP_DATE => FND_API.G_MISS_DATE
20246 ,p_OLD_ATTRIBUTE16 => FND_API.G_MISS_CHAR
20247 ,p_NEW_ATTRIBUTE16 => FND_API.G_MISS_CHAR
20248 ,p_OLD_ATTRIBUTE17 => FND_API.G_MISS_CHAR
20249 ,p_NEW_ATTRIBUTE17 => FND_API.G_MISS_CHAR
20250 ,p_OLD_ATTRIBUTE18 => FND_API.G_MISS_CHAR
20251 ,p_NEW_ATTRIBUTE18 => FND_API.G_MISS_CHAR
20252 ,p_OLD_ATTRIBUTE19 => FND_API.G_MISS_CHAR
20253 ,p_NEW_ATTRIBUTE19 => FND_API.G_MISS_CHAR
20254 ,p_OLD_ATTRIBUTE20 => FND_API.G_MISS_CHAR
20255 ,p_NEW_ATTRIBUTE20 => FND_API.G_MISS_CHAR
20256 ,p_OLD_ATTRIBUTE21 => FND_API.G_MISS_CHAR
20257 ,p_NEW_ATTRIBUTE21 => FND_API.G_MISS_CHAR
20258 ,p_OLD_ATTRIBUTE22 => FND_API.G_MISS_CHAR
20259 ,p_NEW_ATTRIBUTE22 => FND_API.G_MISS_CHAR
20260 ,p_OLD_ATTRIBUTE23 => FND_API.G_MISS_CHAR
20261 ,p_NEW_ATTRIBUTE23 => FND_API.G_MISS_CHAR
20262 ,p_OLD_ATTRIBUTE24 => FND_API.G_MISS_CHAR
20263 ,p_NEW_ATTRIBUTE24 => FND_API.G_MISS_CHAR
20264 ,p_OLD_ATTRIBUTE25 => FND_API.G_MISS_CHAR
20265 ,p_NEW_ATTRIBUTE25 => FND_API.G_MISS_CHAR
20266 ,p_OLD_ATTRIBUTE26 => FND_API.G_MISS_CHAR
20267 ,p_NEW_ATTRIBUTE26 => FND_API.G_MISS_CHAR
20268 ,p_OLD_ATTRIBUTE27 => FND_API.G_MISS_CHAR
20269 ,p_NEW_ATTRIBUTE27 => FND_API.G_MISS_CHAR
20270 ,p_OLD_ATTRIBUTE28 => FND_API.G_MISS_CHAR
20271 ,p_NEW_ATTRIBUTE28 => FND_API.G_MISS_CHAR
20272 ,p_OLD_ATTRIBUTE29 => FND_API.G_MISS_CHAR
20273 ,p_NEW_ATTRIBUTE29 => FND_API.G_MISS_CHAR
20274 ,p_OLD_ATTRIBUTE30 => FND_API.G_MISS_CHAR
20275 ,p_NEW_ATTRIBUTE30 => FND_API.G_MISS_CHAR
20276 --end of parameters addition for eam integration--
20277 -- Addition of columns for FA Integration
20278 ,p_OLD_PAYABLES_UNIT_PRICE => fnd_api.g_miss_num
20279 ,p_NEW_PAYABLES_UNIT_PRICE => fnd_api.g_miss_num
20280 ,p_OLD_PAYABLES_CURRENCY_CODE => fnd_api.g_miss_char
20281 ,p_NEW_PAYABLES_CURRENCY_CODE => fnd_api.g_miss_char
20282 ,p_OLD_PURCHASE_UNIT_PRICE => fnd_api.g_miss_num
20283 ,p_NEW_PURCHASE_UNIT_PRICE => fnd_api.g_miss_num
20284 ,p_OLD_PURCHASE_CURRENCY_CODE => fnd_api.g_miss_char
20285 ,p_NEW_PURCHASE_CURRENCY_CODE => fnd_api.g_miss_char
20286 ,p_OLD_SALES_UNIT_PRICE => fnd_api.g_miss_num
20287 ,p_NEW_SALES_UNIT_PRICE => fnd_api.g_miss_num
20288 ,p_OLD_SALES_CURRENCY_CODE => fnd_api.g_miss_char
20289 ,p_NEW_SALES_CURRENCY_CODE => fnd_api.g_miss_char
20290 ,p_OLD_OPERATIONAL_STATUS_CODE => fnd_api.g_miss_char
20291 ,p_NEW_OPERATIONAL_STATUS_CODE => fnd_api.g_miss_char
20292 -- End addition of columns for FA Integration
20293 -- Begin Add Code for Siebel Genesis Project
20294 ,p_OLD_SOURCE_CODE => FND_API.G_MISS_CHAR
20295 ,p_NEW_SOURCE_CODE => FND_API.G_MISS_CHAR
20296 -- End Add Code for Siebel Genesis Project
20297 );
20298
20299
20300 END IF;
20301
20302
20303 -- Calling eam API to log instance update event
20304 IF l_eam_item
20305 THEN
20306 IF l_ins_hist_id IS NOT NULL
20307 THEN
20308 l_instance_history_id:=l_ins_hist_id;
20309 ELSE
20310 l_instance_history_id:=l_csi_item_instance_h_id;
20311 END IF;
20312 eam_asset_log_pvt.instance_update_event
20313 (p_api_version => p_api_version
20314 ,p_init_msg_list => fnd_api.g_false
20315 ,p_commit => fnd_api.g_false
20316 ,p_validation_level => fnd_api.g_valid_level_full
20317 ,x_return_status => x_return_status
20318 ,x_msg_count => x_msg_count
20319 ,x_msg_data => x_msg_data
20320 ,p_instance_id => l_rel_tbl(j).subject_id
20321 ,p_ref_id => l_instance_history_id
20322 ,p_event_date => sysdate);
20323 IF NOT(x_return_status = fnd_api.g_ret_sts_success)
20324 THEN
20325 csi_gen_utility_pvt.put_line('Error from eam_asset_log_pvt.instance_update_event API');
20326 RAISE fnd_api.g_exc_error;
20327 END IF;
20328 END IF;
20329 -- Calling eam API to log instance update event
20330
20331 -- srramakr Bug # 3945813 We no longer look for service_order_allowed_flag to decide
20332 -- whether contracts should be terminated or not. Instead, we look for terminated_flag.
20333 -- Before terminating the contract check whether the terminated_flag is set to 'Y'
20334 -- for the instance_status passed. If set to 'N' dont make call to contracts.
20335 OPEN instance_csr (l_rel_tbl(j).subject_id);
20336 FETCH instance_csr INTO l_instance_csr;
20337 CLOSE instance_csr;
20338
20339 IF csi_item_instance_vld_pvt.termination_status
20340 ( p_instance_status_id => l_instance_csr.instance_status_id )
20341 THEN
20342 IF p_txn_rec.transaction_type_id in (53,54) THEN
20343 l_oks_txn_type := 'RET';
20344 ELSE
20345 l_oks_txn_type := 'TRM';
20346 END IF;
20347 csi_item_instance_pvt.Call_to_Contracts
20348 ( p_transaction_type => l_oks_txn_type
20349 ,p_instance_id => l_rel_tbl(j).subject_id
20350 ,p_new_instance_id => NULL
20351 ,p_vld_org_id => l_instance_csr.last_vld_organization_id
20352 ,p_quantity => NULL
20353 ,p_party_account_id1 => NULL
20354 ,p_party_account_id2 => NULL
20355 ,p_transaction_date => p_txn_rec.transaction_date --l_temp_date
20356 ,p_source_transaction_date => p_txn_rec.source_transaction_date --l_temp_date
20357 ,p_txn_type_id => p_txn_rec.transaction_type_id --added for BUG 5752271
20358 ,p_grp_call_contracts => p_instance_rec.grp_call_contracts
20359 ,p_oks_txn_inst_tbl => p_oks_txn_inst_tbl
20360 ,x_return_status => x_return_status
20361 ,x_msg_count => x_msg_count
20362 ,x_msg_data => x_msg_data
20363 );
20364
20365 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
20366 l_msg_index := 1;
20367 l_msg_count := x_msg_count;
20368 WHILE l_msg_count > 0 LOOP
20369 x_msg_data := FND_MSG_PUB.GET
20370 ( l_msg_index,
20371 FND_API.G_FALSE
20372 );
20373 csi_gen_utility_pvt.put_line('MESSAGE DATA = '||x_msg_data);
20374 l_msg_index := l_msg_index + 1;
20375 l_msg_count := l_msg_count - 1;
20376 END LOOP;
20377 RAISE FND_API.G_EXC_ERROR;
20378 END IF;
20379 END IF;
20380
20381 END LOOP;
20382 END IF; -- l_rel_tbl count check
20383 -- Standard call to get message count and if count is get message info.
20384 FND_MSG_PUB.Count_And_Get
20385 (p_encoded => FND_API.G_FALSE,
20386 p_count => x_msg_count ,
20387 p_data => x_msg_data
20388 );
20389
20390 EXCEPTION
20391
20392 WHEN FND_API.G_EXC_ERROR THEN
20393 ROLLBACK TO expire_child_instance_pvt;
20394 x_return_status := FND_API.G_RET_STS_ERROR ;
20395 FND_MSG_PUB.Count_And_Get
20396 (p_encoded => FND_API.G_FALSE,
20397 p_count => x_msg_count,
20398 p_data => x_msg_data
20399 );
20400
20401 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
20402 ROLLBACK TO expire_child_instance_pvt;
20403 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
20404 FND_MSG_PUB.Count_And_Get
20405 (p_encoded => FND_API.G_FALSE,
20406 p_count => x_msg_count,
20407 p_data => x_msg_data
20408 );
20409 WHEN OTHERS THEN
20410 ROLLBACK TO expire_child_instance_pvt;
20411 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
20412 IF FND_MSG_PUB.Check_Msg_Level
20413 (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
20414 THEN
20415 FND_MSG_PUB.Add_Exc_Msg
20416 ( G_PKG_NAME, l_api_name );
20417 END IF;
20418 FND_MSG_PUB.Count_And_Get
20419 ( p_encoded => FND_API.G_FALSE,
20420 p_count => x_msg_count,
20421 p_data => x_msg_data
20422 );
20423
20424 END expire_child_instances;
20425
20426 /*---------------------------------------------------*/
20427 /* Procedure name: expire_item_instance */
20428 /* Description : procedure for */
20429 /* Expiring an Item Instance */
20430 /*---------------------------------------------------*/
20431
20432 PROCEDURE expire_item_instance
20433 (
20434 p_api_version IN NUMBER
20435 ,p_commit IN VARCHAR2
20436 ,p_init_msg_list IN VARCHAR2
20437 ,p_validation_level IN NUMBER
20438 ,p_instance_rec IN csi_datastructures_pub.instance_rec
20439 ,p_expire_children IN VARCHAR2
20440 ,p_txn_rec IN OUT NOCOPY csi_datastructures_pub.transaction_rec
20441 ,x_instance_id_lst OUT NOCOPY csi_datastructures_pub.id_tbl
20442 ,p_oks_txn_inst_tbl IN OUT NOCOPY oks_ibint_pub.txn_instance_tbl
20443 ,x_return_status OUT NOCOPY VARCHAR2
20444 ,x_msg_count OUT NOCOPY NUMBER
20445 ,x_msg_data OUT NOCOPY VARCHAR2
20446 )
20447
20448 IS
20449 l_api_name CONSTANT VARCHAR2(30) := 'EXPIRE_ITEM_NSTANCE';
20450 l_api_version CONSTANT NUMBER := 1.0;
20451 l_debug_level NUMBER;
20452 l_instance_id NUMBER;
20453 l_instance_rec csi_datastructures_pub.instance_rec;
20454 l_temp_instance_rec csi_datastructures_pub.instance_rec;
20455 l_csi_item_instance_h_id NUMBER;
20456 l_full_dump_frequency NUMBER;
20457 l_mod_value NUMBER;
20458 l_dump_flag VARCHAR2(1);
20459 l_dummy NUMBER;
20460 -- Added variables for bug 6788183
20461 l_exp_rltns_rec csi_datastructures_pub.ii_relationship_rec;
20462 l_instance_id_lst csi_datastructures_pub.id_tbl;
20463 l_return_status VARCHAR2(1) := fnd_api.g_ret_sts_success;
20464 l_msg_data VARCHAR2(2000);
20465
20466 CURSOR get_instance_rec(p_instance_id IN NUMBER) IS
20467 SELECT
20468 INSTANCE_ID,
20469 INSTANCE_NUMBER,
20470 EXTERNAL_REFERENCE,
20471 INVENTORY_ITEM_ID,
20472 NULL VLD_ORGANIZATION_ID,
20473 INVENTORY_REVISION,
20474 INV_MASTER_ORGANIZATION_ID,
20475 SERIAL_NUMBER,
20476 MFG_SERIAL_NUMBER_FLAG,
20477 LOT_NUMBER,
20478 QUANTITY,
20479 UNIT_OF_MEASURE,
20480 ACCOUNTING_CLASS_CODE,
20481 INSTANCE_CONDITION_ID,
20482 INSTANCE_STATUS_ID,
20483 CUSTOMER_VIEW_FLAG,
20484 MERCHANT_VIEW_FLAG,
20485 SELLABLE_FLAG,
20486 SYSTEM_ID,
20487 INSTANCE_TYPE_CODE,
20488 ACTIVE_START_DATE,
20489 ACTIVE_END_DATE,
20490 LOCATION_TYPE_CODE,
20491 LOCATION_ID,
20492 INV_ORGANIZATION_ID,
20493 INV_SUBINVENTORY_NAME,
20494 INV_LOCATOR_ID,
20495 PA_PROJECT_ID,
20496 PA_PROJECT_TASK_ID,
20497 IN_TRANSIT_ORDER_LINE_ID,
20498 WIP_JOB_ID,
20499 PO_ORDER_LINE_ID,
20500 LAST_OE_ORDER_LINE_ID,
20501 LAST_OE_RMA_LINE_ID,
20502 LAST_PO_PO_LINE_ID,
20503 LAST_OE_PO_NUMBER,
20504 LAST_WIP_JOB_ID,
20505 LAST_PA_PROJECT_ID,
20506 LAST_PA_TASK_ID,
20507 LAST_OE_AGREEMENT_ID,
20508 INSTALL_DATE,
20509 MANUALLY_CREATED_FLAG,
20510 RETURN_BY_DATE,
20511 ACTUAL_RETURN_DATE,
20512 CREATION_COMPLETE_FLAG,
20513 COMPLETENESS_FLAG,
20514 NULL VERSION_LABEL,
20515 NULL VERSION_LABEL_DESCRIPTION,
20516 CONTEXT,
20517 ATTRIBUTE1,
20518 ATTRIBUTE2,
20519 ATTRIBUTE3,
20520 ATTRIBUTE4,
20521 ATTRIBUTE5,
20522 ATTRIBUTE6,
20523 ATTRIBUTE7,
20524 ATTRIBUTE8,
20525 ATTRIBUTE9,
20526 ATTRIBUTE10,
20527 ATTRIBUTE11,
20528 ATTRIBUTE12,
20529 ATTRIBUTE13,
20530 ATTRIBUTE14,
20531 ATTRIBUTE15,
20532 OBJECT_VERSION_NUMBER,
20533 LAST_TXN_LINE_DETAIL_ID,
20534 INSTALL_LOCATION_TYPE_CODE,
20535 INSTALL_LOCATION_ID,
20536 INSTANCE_USAGE_CODE,
20537 CONFIG_INST_HDR_ID,
20538 CONFIG_INST_REV_NUM,
20539 CONFIG_INST_ITEM_ID,
20540 CONFIG_VALID_STATUS,
20541 INSTANCE_DESCRIPTION,
20542 --start of column addition for eam integration--
20543 NETWORK_ASSET_FLAG,
20544 MAINTAINABLE_FLAG,
20545 PN_LOCATION_ID,
20546 ASSET_CRITICALITY_CODE,
20547 CATEGORY_ID,
20548 EQUIPMENT_GEN_OBJECT_ID,
20549 INSTANTIATION_FLAG,
20550 LINEAR_LOCATION_ID,
20551 OPERATIONAL_LOG_FLAG,
20552 CHECKIN_STATUS,
20553 SUPPLIER_WARRANTY_EXP_DATE,
20554 ATTRIBUTE16,
20555 ATTRIBUTE17,
20556 ATTRIBUTE18,
20557 ATTRIBUTE19,
20558 ATTRIBUTE20,
20559 ATTRIBUTE21,
20560 ATTRIBUTE22,
20561 ATTRIBUTE23,
20562 ATTRIBUTE24,
20563 ATTRIBUTE25,
20564 ATTRIBUTE26,
20565 ATTRIBUTE27,
20566 ATTRIBUTE28,
20567 ATTRIBUTE29,
20568 ATTRIBUTE30,
20569 --end of column addition for eam integration--
20570 -- Addition of columns for FA Integration
20571 PURCHASE_UNIT_PRICE,
20572 PURCHASE_CURRENCY_CODE,
20573 PAYABLES_UNIT_PRICE,
20574 PAYABLES_CURRENCY_CODE,
20575 SALES_UNIT_PRICE,
20576 SALES_CURRENCY_CODE,
20577 OPERATIONAL_STATUS_CODE,
20578 -- End addition of columns for FA Integration
20579 SOURCE_CODE -- Added Code for Siebel Genesis Project
20580 FROM csi_item_instances
20581 WHERE instance_id = p_instance_id ;
20582 -- AND (( ACTIVE_END_DATE IS NULL) OR (ACTIVE_END_DATE >= SYSDATE)); -- COMMENTED BY SK bug 2151760
20583 l_curr_instance_rec get_instance_rec%ROWTYPE;
20584
20585 CURSOR instance_csr (p_ins_id IN NUMBER) IS
20586 SELECT *
20587 FROM csi_item_instances
20588 WHERE instance_id = p_ins_id;
20589
20590 -- Added cursor for bug 6788183
20591 CURSOR relationship_csr (p_subject_id IN NUMBER) IS
20592 SELECT relationship_id,object_version_number
20593 FROM csi_ii_relationships
20594 WHERE (subject_id = p_subject_id
20595 or object_id = p_subject_id) -- added bug 8661671
20596 AND (active_end_date IS NULL OR active_end_date > SYSDATE); --Bug 9207673 FP Bug 9287115
20597
20598 l_instance_csr instance_csr%ROWTYPE;
20599
20600 l_temp VARCHAR2(1);
20601 l_temp_date DATE;
20602 l_txn_date DATE;
20603 l_msg_count NUMBER;
20604 l_msg_index NUMBER;
20605 l_msg_dummy NUMBER;
20606 l_open_service VARCHAR2(1);
20607 l_oks_txn_type VARCHAR2(3);
20608 l_eam_item BOOLEAN := FALSE;
20609 l_vld_org NUMBER;
20610 l_maintenance_object_type NUMBER := 3;
20611 l_ins_hist_id NUMBER;
20612 l_instance_history_id NUMBER;
20613 l_valid BOOLEAN := TRUE;
20614 l_creation_flag VARCHAR2(1);
20615 l_parent_found VARCHAR2(1); -- Added for bug#14559620
20616
20617 BEGIN
20618
20619 -- Standard Start of API savepoint
20620 SAVEPOINT expire_item_instance_pvt;
20621
20622 -- Standard call to check for call compatibility.
20623 IF NOT FND_API.Compatible_API_Call (l_api_version,
20624 p_api_version,
20625 l_api_name,
20626 G_PKG_NAME )
20627 THEN
20628 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
20629 END IF;
20630
20631 -- Initialize message list if p_init_msg_list is set to TRUE.
20632 IF FND_API.to_Boolean( p_init_msg_list ) THEN
20633 FND_MSG_PUB.initialize;
20634 END IF;
20635
20636 -- Initialize API return status to success
20637 x_return_status := FND_API.G_RET_STS_SUCCESS;
20638
20639 -- Check the profile option debug_level for debug message reporting
20640 l_debug_level:=fnd_profile.value('DEBUG_LEVEL');
20641
20642 -- If debug_level = 1 then dump the procedure name
20643 IF (l_debug_level > 0) THEN
20644 csi_gen_utility_pvt.put_line ( 'expire_item_instance_pvt');
20645 END IF;
20646
20647 -- If the debug level = 2 then dump all the parameters values.
20648 IF (l_debug_level > 1) THEN
20649 csi_gen_utility_pvt.put_line ( 'expire_item_instance_pvt :'||
20650 p_api_version ||'-'||
20651 p_commit ||'-'||
20652 p_init_msg_list );
20653
20654 --dump the records in to a log file
20655 csi_gen_utility_pvt.dump_instance_rec(p_instance_rec);
20656 csi_gen_utility_pvt.dump_txn_rec(p_txn_rec);
20657 END IF;
20658
20659 -- Start API body
20660 -- Check if all the required parameters are passed
20661 CSI_Item_Instance_vld_pvt.Check_Reqd_Param_num
20662 ( p_instance_rec.instance_id ,
20663 ' p_instance_rec.instance_id ',
20664 l_api_name );
20665
20666 CSI_Item_Instance_vld_pvt.Check_Reqd_Param_num
20667 ( p_instance_rec.object_version_number ,
20668 ' p_instance_rec.object_version_number ',
20669 l_api_name );
20670
20671 -- Check if the instance id is valid
20672 IF NOT(CSI_Item_Instance_vld_pvt.Is_InstanceID_Valid
20673 (p_instance_rec.instance_id,
20674 TRUE )) THEN
20675 RAISE FND_API.G_EXC_ERROR;
20676 END IF;
20677
20678 -- check if the object_version_number passed matches with the one
20679 -- in the database else raise error
20680 OPEN get_instance_rec(p_instance_rec.instance_id);
20681 FETCH get_instance_rec INTO l_curr_instance_rec;
20682 IF (l_curr_instance_rec.object_version_number <> nvl(p_instance_rec.OBJECT_VERSION_NUMBER,0)) THEN
20683 FND_MESSAGE.Set_Name('CSI', 'CSI_API_OBJ_VER_MISMATCH');
20684 FND_MSG_PUB.ADD;
20685 RAISE FND_API.G_EXC_ERROR;
20686 END IF;
20687
20688 IF get_instance_rec%NOTFOUND THEN
20689 FND_MESSAGE.Set_Name('CSI', 'CSI_API_RECORD_LOCKED');
20690 FND_MSG_PUB.ADD;
20691 RAISE FND_API.G_EXC_ERROR;
20692 END IF;
20693 CLOSE get_instance_rec;
20694
20695 -- checking for any unexpired children in csi_ii_relationships table
20696
20697 -- Added by sk for bug 2151760
20698 IF (( p_instance_rec.active_end_date IS NOT NULL) AND (p_instance_rec.active_end_date < SYSDATE))
20699 AND p_instance_rec.active_end_date <> fnd_api.g_miss_date
20700 THEN
20701 l_temp_date:= p_instance_rec.active_end_date;
20702 BEGIN
20703 SELECT MAX(transaction_date)
20704 INTO l_txn_date
20705 FROM csi_inst_transactions_v
20706 WHERE instance_id=p_instance_rec.instance_id
20707 AND transaction_date>p_instance_rec.active_end_date;
20708
20709 IF l_txn_date IS NOT NULL
20710 THEN
20711
20712 -- Added for bug#14559620
20713 -- Standard Concurrent Job: End-dated Instances Process expiring child instances before parent
20714 -- by leaving future transactions in csi_inst_transactions_v, which was causing an
20715 -- error, added below code to over come this situation
20716 l_parent_found := 'Y';
20717 IF p_txn_rec.transaction_type_id = 5 THEN
20718 BEGIN
20719
20720 SELECT 'Y'
20721 INTO l_parent_found
20722 FROM csi_ii_relationships
20723 WHERE (subject_id = p_instance_rec.instance_id
20724 OR object_id = p_instance_rec.instance_id)
20725 AND relationship_type_code = 'COMPONENT_OF'
20726 AND sysdate between nvl(active_start_date, sysdate -1)
20727 and nvl(active_end_date, sysdate + 1);
20728 EXCEPTION
20729 WHEN no_data_found THEN
20730 l_parent_found := 'N';
20731 WHEN too_many_rows THEN
20732 l_parent_found := 'Y';
20733 END;
20734
20735 END IF;
20736
20737
20738 IF l_parent_found = 'Y' THEN
20739 -- Added for bug#14559620
20740 x_return_status := FND_API.G_RET_STS_ERROR ;
20741 FND_MESSAGE.Set_Name('CSI', 'CSI_PARENT_HAS_TXN');
20742 FND_MESSAGE.SET_TOKEN('INSTANCE_ID',l_curr_instance_rec.instance_number );
20743 FND_MESSAGE.SET_TOKEN('TXN_DATE',to_char(l_txn_date, 'DD-MON-YYYY HH24:MI:SS'));
20744 FND_MSG_PUB.ADD;
20745 RAISE FND_API.G_EXC_ERROR;
20746 END IF;
20747 END IF;
20748 EXCEPTION
20749 WHEN FND_API.G_EXC_ERROR THEN
20750 RAISE FND_API.G_EXC_ERROR;
20751 WHEN OTHERS THEN
20752 NULL;
20753 END;
20754 ELSE
20755 l_temp_date:= SYSDATE;
20756 END IF;
20757 -- End addition by sk for bug 2151760
20758
20759 DECLARE
20760 l_dummy NUMBER;
20761 l_has_unexpired_children BOOLEAN;
20762 p_rel_query_rec csi_datastructures_pub.relationship_query_rec;
20763 l_rel_tbl csi_datastructures_pub.ii_relationship_tbl;
20764 l_ii_relationship_level_tbl csi_ii_relationships_pvt.ii_relationship_level_tbl;
20765 BEGIN
20766 p_rel_query_rec.object_id := p_instance_rec.instance_id;
20767 p_rel_query_rec.relationship_type_code := 'COMPONENT-OF';
20768 --
20769 IF p_rel_query_rec.object_id IS NOT NULL AND
20770 p_rel_query_rec.object_id <> FND_API.G_MISS_NUM THEN
20771 csi_ii_relationships_pvt.Get_Children
20772 ( p_relationship_query_rec => p_rel_query_rec,
20773 p_rel_tbl => l_rel_tbl,
20774 p_depth => NULL,
20775 p_active_relationship_only => FND_API.G_TRUE,
20776 p_time_stamp => FND_API.G_MISS_DATE,
20777 p_get_dfs => FND_API.G_FALSE,
20778 p_ii_relationship_level_tbl => l_ii_relationship_level_tbl,
20779 x_return_status => x_return_status,
20780 x_msg_count => x_msg_count,
20781 x_msg_data => x_msg_data
20782 );
20783 --
20784 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
20785 FND_MESSAGE.SET_NAME('CSI','CSI_API_GET_CHILDREN_ERROR');
20786 FND_MSG_PUB.Add;
20787 RAISE FND_API.G_EXC_ERROR;
20788 END IF;
20789 END IF;
20790 --
20791 csi_gen_utility_pvt.put_line('Child count is ..'||to_char(l_rel_tbl.count));
20792 l_dummy := l_rel_tbl.count;
20793 IF l_dummy > 0 THEN
20794 l_has_unexpired_children := TRUE;
20795 ELSE
20796 l_has_unexpired_children := FALSE;
20797 END IF;
20798
20799 IF l_has_unexpired_children = TRUE THEN
20800 IF p_expire_children = 'F' THEN
20801 FND_MESSAGE.SET_NAME('CSI','CSI_API_CANT_EXPIRE_INSTANCE');
20802 FND_MSG_PUB.Add;
20803 RAISE FND_API.G_EXC_ERROR;
20804
20805 ELSE
20806 -- Call the expire_child_instances api
20807 expire_child_instances(p_api_version => p_api_version,
20808 p_commit => p_commit,
20809 p_init_msg_list => p_init_msg_list,
20810 p_validation_level => p_validation_level,
20811 p_instance_rec => p_instance_rec,
20812 p_expire_children => fnd_api.g_true,
20813 p_txn_rec => p_txn_rec,
20814 x_instance_id_lst => x_instance_id_lst,
20815 p_oks_txn_inst_tbl => p_oks_txn_inst_tbl,
20816 x_return_status => x_return_status,
20817 x_msg_count => x_msg_count,
20818 x_msg_data => x_msg_data
20819 );
20820
20821 END IF;
20822 END IF;
20823 END;
20824 -- Added by sguthiva for bug 2520978
20825 -- Modified by srramakr for enhancement 2315522.
20826 -- This will allow the user to pass a Terminable status during expiration.
20827 IF p_instance_rec.instance_status_id IS NOT NULL AND
20828 p_instance_rec.instance_status_id <> fnd_api.g_miss_num THEN
20829 IF NOT (CSI_Item_Instance_vld_pvt.val_inst_ter_flag(
20830 p_instance_rec.instance_status_id)) THEN
20831 FND_MESSAGE.SET_NAME('CSI','CSI_API_INVALID_TERM_STATUS');
20832 FND_MSG_PUB.ADD;
20833 RAISE FND_API.G_EXC_ERROR;
20834 END IF;
20835 l_instance_rec.instance_status_id := p_instance_rec.instance_status_id;
20836 ELSE
20837 l_instance_rec.instance_status_id := fnd_profile.value('CSI_SYS_TERM_INST_STATUS_ID');
20838 IF l_instance_rec.instance_status_id IS NULL
20839 OR l_instance_rec.instance_status_id=fnd_api.g_miss_num
20840 THEN
20841 l_instance_rec.instance_status_id := 1;
20842 END IF;
20843 END IF;
20844 -- End addition by sguthiva for bug 2520978.
20845 -- l_instance_rec.instance_status_id := 1; -- '1' for expired instances defined in the csi instance statuses
20846 l_instance_rec.object_version_number := l_curr_instance_rec.object_version_number + 1;
20847
20848 -- Start addition by sguthiva for bug 2416193
20849 -- Relaxing this check for RMA Receipt transaction
20850 -- Bug 8998695 - Checking for open SR should happen when
20851 -- Expired instances is processed for transaction type 5
20852 IF p_txn_rec.transaction_type_id in (1,5)
20853 THEN
20854 BEGIN
20855 SELECT 'x'
20856 INTO l_open_service
20857 FROM cs_incidents_all csi,
20858 cs_incident_statuses_b csb
20859 WHERE csi.incident_status_id = csb.incident_status_id
20860 AND csi.customer_product_id = p_instance_rec.instance_id
20861 AND NVL(close_flag,'N')<>'Y';
20862
20863 FND_MESSAGE.SET_NAME('CSI','CSI_IB_HAS_OPEN_SR');
20864 FND_MSG_PUB.ADD;
20865 RAISE FND_API.G_EXC_ERROR;
20866
20867 EXCEPTION
20868 WHEN TOO_MANY_ROWS THEN
20869 FND_MESSAGE.SET_NAME('CSI','CSI_IB_HAS_OPEN_SR');
20870 FND_MSG_PUB.ADD;
20871 RAISE FND_API.G_EXC_ERROR;
20872
20873 WHEN NO_DATA_FOUND THEN -- modfied for bug 3693511
20874 NULL;
20875 END;
20876 END IF;
20877 -- End addition for bug 2416193
20878
20879 -- Added code to expire relationship where the instance expired is the child, bug 6788183
20880 csi_gen_utility_pvt.put_line('Expiring relationship for the instance id - ' || p_instance_rec.instance_id);
20881 FOR l_inst_relationship_rec in relationship_csr(p_instance_rec.instance_id)
20882 LOOP
20883 BEGIN
20884 csi_gen_utility_pvt.put_line('Expiring relationship with id - ' || l_inst_relationship_rec.relationship_id);
20885 l_exp_rltns_rec.relationship_id := l_inst_relationship_rec.relationship_id;
20886 l_exp_rltns_rec.object_version_number := l_inst_relationship_rec.object_version_number;
20887
20888 csi_t_gen_utility_pvt.dump_api_info(
20889 p_pkg_name => 'csi_ii_relationships_pub',
20890 p_api_name => 'expire_relationship');
20891
20892 csi_ii_relationships_pub.expire_relationship(
20893 p_api_version => 1.0,
20894 p_commit => fnd_api.g_false,
20895 p_init_msg_list => fnd_api.g_false,
20896 p_validation_level => fnd_api.g_valid_level_full,
20897 p_relationship_rec => l_exp_rltns_rec,
20898 p_txn_rec => p_txn_rec,
20899 x_instance_id_lst => l_instance_id_lst,
20900 x_return_status => l_return_status,
20901 x_msg_count => l_msg_count,
20902 x_msg_data => l_msg_data);
20903
20904 IF l_return_status <> fnd_api.g_ret_sts_success THEN
20905 RAISE fnd_api.g_exc_error;
20906 END IF;
20907 END;
20908 END LOOP;
20909
20910 csi_gen_utility_pvt.put_line('End of expiring relationships for instance with id - ' || p_instance_rec.instance_id);
20911 -- End of addition for the bug 6788183
20912
20913
20914 -- Added the following code for eam integration
20915 IF p_instance_rec.vld_organization_id IS NULL OR
20916 p_instance_rec.vld_organization_id = fnd_api.g_miss_num
20917 THEN
20918 BEGIN
20919 SELECT last_vld_organization_id
20920 INTO l_vld_org
20921 FROM csi_item_instances
20922 WHERE instance_id = p_instance_rec.instance_id;
20923 EXCEPTION
20924 WHEN NO_DATA_FOUND THEN
20925 fnd_message.set_name('CSI','CSI_API_INVALID_INSTANCE_ID');
20926 fnd_message.set_token('INSTANCE_ID',p_instance_rec.instance_id);
20927 fnd_msg_pub.ADD;
20928 END;
20929 ELSE
20930 l_vld_org := p_instance_rec.vld_organization_id;
20931 END IF;
20932
20933 IF csi_item_instance_vld_pvt.Check_for_eam_item
20934 (p_inventory_item_id => l_curr_instance_rec.inventory_item_id,
20935 p_organization_id => l_vld_org)
20936 THEN
20937 l_eam_item := TRUE;
20938 END IF;
20939
20940 IF l_eam_item AND
20941 (p_instance_rec.active_end_date IS NOT NULL AND
20942 p_instance_rec.active_end_date <> fnd_api.g_miss_date)
20943 THEN
20944 IF NOT eam_common_utilities_pvt.check_deactivate
20945 (p_maintenance_object_id => p_instance_rec.instance_id
20946 ,p_maintenance_object_type => l_maintenance_object_type)
20947 THEN
20948 csi_gen_utility_pvt.put_line('Error from eam_common_utilities_pvt.check_deactivate API ');
20949 RAISE fnd_api.g_exc_error;
20950 END IF;
20951 END IF;
20952 -- End code addition for eam integration
20953 -- validate instance status id
20954 IF NVL(l_instance_rec.INSTANCE_STATUS_ID,fnd_api.g_miss_num) <> fnd_api.g_miss_num
20955 THEN
20956 csi_item_instance_vld_pvt.is_valid_status(
20957 p_instance_status_id => l_instance_rec.INSTANCE_STATUS_ID,
20958 p_creation_complete_flag => l_creation_flag,
20959 l_return_value => l_valid);
20960 IF NOT(l_valid)
20961 THEN
20962 RAISE fnd_api.g_exc_error;
20963 END IF;
20964 END IF;
20965
20966 IF l_instance_rec.INSTANCE_STATUS_ID IS NOT NULL AND
20967 l_instance_rec.INSTANCE_STATUS_ID <> FND_API.G_MISS_NUM AND
20968 l_instance_rec.INSTANCE_STATUS_ID <> l_curr_instance_rec.INSTANCE_STATUS_ID
20969 THEN
20970 IF NOT csi_item_instance_vld_pvt.is_status_updateable
20971 (p_instance_status => l_instance_rec.INSTANCE_STATUS_ID
20972 ,p_current_status => l_curr_instance_rec.INSTANCE_STATUS_ID)
20973 THEN
20974 RAISE fnd_api.g_exc_error;
20975 END IF;
20976 END IF;
20977
20978 CSI_ITEM_INSTANCES_PKG.Update_Row
20979 ( p_INSTANCE_ID => p_instance_rec.INSTANCE_ID,
20980 p_INSTANCE_NUMBER => l_instance_rec.INSTANCE_NUMBER,
20981 p_EXTERNAL_REFERENCE => l_instance_rec.EXTERNAL_REFERENCE,
20982 p_INVENTORY_ITEM_ID => l_instance_rec.INVENTORY_ITEM_ID,
20983 p_INVENTORY_REVISION => l_instance_rec.INVENTORY_REVISION,
20984 p_INV_MASTER_ORGANIZATION_ID => l_instance_rec.INV_MASTER_ORGANIZATION_ID,
20985 p_SERIAL_NUMBER => l_instance_rec.SERIAL_NUMBER,
20986 p_MFG_SERIAL_NUMBER_FLAG => l_instance_rec.MFG_SERIAL_NUMBER_FLAG,
20987 p_LOT_NUMBER => l_instance_rec.LOT_NUMBER,
20988 p_QUANTITY => l_instance_rec.QUANTITY,
20989 p_UNIT_OF_MEASURE => l_instance_rec.UNIT_OF_MEASURE,
20990 p_ACCOUNTING_CLASS_CODE => l_instance_rec.ACCOUNTING_CLASS_CODE,
20991 p_INSTANCE_CONDITION_ID => l_instance_rec.INSTANCE_CONDITION_ID,
20992 p_INSTANCE_STATUS_ID => l_instance_rec.INSTANCE_STATUS_ID,
20993 p_CUSTOMER_VIEW_FLAG => l_instance_rec.CUSTOMER_VIEW_FLAG,
20994 p_MERCHANT_VIEW_FLAG => l_instance_rec.MERCHANT_VIEW_FLAG,
20995 p_SELLABLE_FLAG => l_instance_rec.SELLABLE_FLAG,
20996 p_SYSTEM_ID => l_instance_rec.SYSTEM_ID,
20997 p_INSTANCE_TYPE_CODE => l_instance_rec.INSTANCE_TYPE_CODE,
20998 p_ACTIVE_START_DATE => l_instance_rec.ACTIVE_START_DATE,
20999 p_ACTIVE_END_DATE => l_temp_date,--SYSDATE,
21000 p_LOCATION_TYPE_CODE => l_instance_rec.LOCATION_TYPE_CODE,
21001 p_LOCATION_ID => l_instance_rec.LOCATION_ID,
21002 p_INV_ORGANIZATION_ID => l_instance_rec.INV_ORGANIZATION_ID,
21003 p_INV_SUBINVENTORY_NAME => l_instance_rec.INV_SUBINVENTORY_NAME,
21004 p_INV_LOCATOR_ID => l_instance_rec.INV_LOCATOR_ID,
21005 p_PA_PROJECT_ID => l_instance_rec.PA_PROJECT_ID,
21006 p_PA_PROJECT_TASK_ID => l_instance_rec.PA_PROJECT_TASK_ID,
21007 p_IN_TRANSIT_ORDER_LINE_ID => l_instance_rec.IN_TRANSIT_ORDER_LINE_ID,
21008 p_WIP_JOB_ID => l_instance_rec.WIP_JOB_ID,
21009 p_PO_ORDER_LINE_ID => l_instance_rec.PO_ORDER_LINE_ID,
21010 p_LAST_OE_ORDER_LINE_ID => l_instance_rec.LAST_OE_ORDER_LINE_ID,
21011 p_LAST_OE_RMA_LINE_ID => l_instance_rec.LAST_OE_RMA_LINE_ID,
21012 p_LAST_PO_PO_LINE_ID => l_instance_rec.LAST_PO_PO_LINE_ID,
21013 p_LAST_OE_PO_NUMBER => l_instance_rec.LAST_OE_PO_NUMBER,
21014 p_LAST_WIP_JOB_ID => l_instance_rec.LAST_WIP_JOB_ID,
21015 p_LAST_PA_PROJECT_ID => l_instance_rec.LAST_PA_PROJECT_ID,
21016 p_LAST_PA_TASK_ID => l_instance_rec.LAST_PA_TASK_ID,
21017 p_LAST_OE_AGREEMENT_ID => l_instance_rec.LAST_OE_AGREEMENT_ID,
21018 p_INSTALL_DATE => l_instance_rec.INSTALL_DATE,
21019 p_MANUALLY_CREATED_FLAG => l_instance_rec.MANUALLY_CREATED_FLAG,
21020 p_RETURN_BY_DATE => l_instance_rec.RETURN_BY_DATE,
21021 p_ACTUAL_RETURN_DATE => l_instance_rec.ACTUAL_RETURN_DATE,
21022 p_CREATION_COMPLETE_FLAG => l_instance_rec.CREATION_COMPLETE_FLAG,
21023 p_COMPLETENESS_FLAG => l_instance_rec.COMPLETENESS_FLAG,
21024 p_CONTEXT => l_instance_rec.CONTEXT,
21025 p_ATTRIBUTE1 => l_instance_rec.ATTRIBUTE1,
21026 p_ATTRIBUTE2 => l_instance_rec.ATTRIBUTE2,
21027 p_ATTRIBUTE3 => l_instance_rec.ATTRIBUTE3,
21028 p_ATTRIBUTE4 => l_instance_rec.ATTRIBUTE4,
21029 p_ATTRIBUTE5 => l_instance_rec.ATTRIBUTE5,
21030 p_ATTRIBUTE6 => l_instance_rec.ATTRIBUTE6,
21031 p_ATTRIBUTE7 => l_instance_rec.ATTRIBUTE7,
21032 p_ATTRIBUTE8 => l_instance_rec.ATTRIBUTE8,
21033 p_ATTRIBUTE9 => l_instance_rec.ATTRIBUTE9,
21034 p_ATTRIBUTE10 => l_instance_rec.ATTRIBUTE10,
21035 p_ATTRIBUTE11 => l_instance_rec.ATTRIBUTE11,
21036 p_ATTRIBUTE12 => l_instance_rec.ATTRIBUTE12,
21037 p_ATTRIBUTE13 => l_instance_rec.ATTRIBUTE13,
21038 p_ATTRIBUTE14 => l_instance_rec.ATTRIBUTE14,
21039 p_ATTRIBUTE15 => l_instance_rec.ATTRIBUTE15,
21040 p_CREATED_BY => fnd_api.g_miss_num,
21041 p_CREATION_DATE => fnd_api.g_miss_date,
21042 p_LAST_UPDATED_BY => FND_GLOBAL.USER_ID,
21043 p_LAST_UPDATE_DATE => SYSDATE,
21044 p_LAST_UPDATE_LOGIN => FND_GLOBAL.CONC_LOGIN_ID,
21045 p_OBJECT_VERSION_NUMBER => l_instance_rec.OBJECT_VERSION_NUMBER,
21046 p_LAST_TXN_LINE_DETAIL_ID => l_instance_rec.LAST_TXN_LINE_DETAIL_ID,
21047 p_INSTALL_LOCATION_TYPE_CODE => l_instance_rec.INSTALL_LOCATION_TYPE_CODE,
21048 p_INSTALL_LOCATION_ID => l_instance_rec.INSTALL_LOCATION_ID,
21049 p_INSTANCE_USAGE_CODE => l_instance_rec.INSTANCE_USAGE_CODE,
21050 p_CONFIG_INST_HDR_ID => NULL, -- l_instance_rec.CONFIG_INST_HDR_ID,
21051 p_CONFIG_INST_REV_NUM => NULL, -- l_instance_rec.CONFIG_INST_REV_NUM,
21052 p_CONFIG_INST_ITEM_ID => NULL, -- l_instance_rec.CONFIG_INST_ITEM_ID,
21053 p_CONFIG_VALID_STATUS => NULL, -- l_instance_rec.CONFIG_VALID_STATUS,
21054 p_INSTANCE_DESCRIPTION => l_instance_rec.INSTANCE_DESCRIPTION,
21055 p_REQUEST_ID => l_instance_rec.REQUEST_ID,
21056 p_PROGRAM_APPLICATION_ID => l_instance_rec.PROGRAM_APPLICATION_ID,
21057 p_PROGRAM_ID => l_instance_rec.PROGRAM_ID,
21058 p_PROGRAM_UPDATE_DATE => l_instance_rec.PROGRAM_UPDATE_DATE,
21059 --start of parameters addition for eam integration--
21060 p_NETWORK_ASSET_FLAG => l_instance_rec.NETWORK_ASSET_FLAG,
21061 p_MAINTAINABLE_FLAG => l_instance_rec.MAINTAINABLE_FLAG,
21062 p_PN_LOCATION_ID => l_instance_rec.PN_LOCATION_ID,
21063 p_ASSET_CRITICALITY_CODE => l_instance_rec.ASSET_CRITICALITY_CODE,
21064 p_CATEGORY_ID => l_instance_rec.CATEGORY_ID,
21065 p_EQUIPMENT_GEN_OBJECT_ID => l_instance_rec.EQUIPMENT_GEN_OBJECT_ID,
21066 p_INSTANTIATION_FLAG => l_instance_rec.INSTANTIATION_FLAG,
21067 p_LINEAR_LOCATION_ID => l_instance_rec.LINEAR_LOCATION_ID,
21068 p_OPERATIONAL_LOG_FLAG => l_instance_rec.OPERATIONAL_LOG_FLAG,
21069 p_CHECKIN_STATUS => l_instance_rec.CHECKIN_STATUS,
21070 p_SUPPLIER_WARRANTY_EXP_DATE => l_instance_rec.SUPPLIER_WARRANTY_EXP_DATE,
21071 p_ATTRIBUTE16 => l_instance_rec.ATTRIBUTE16,
21072 p_ATTRIBUTE17 => l_instance_rec.ATTRIBUTE17,
21073 p_ATTRIBUTE18 => l_instance_rec.ATTRIBUTE18,
21074 p_ATTRIBUTE19 => l_instance_rec.ATTRIBUTE19,
21075 p_ATTRIBUTE20 => l_instance_rec.ATTRIBUTE20,
21076 p_ATTRIBUTE21 => l_instance_rec.ATTRIBUTE21,
21077 p_ATTRIBUTE22 => l_instance_rec.ATTRIBUTE22,
21078 p_ATTRIBUTE23 => l_instance_rec.ATTRIBUTE23,
21079 p_ATTRIBUTE24 => l_instance_rec.ATTRIBUTE24,
21080 p_ATTRIBUTE25 => l_instance_rec.ATTRIBUTE25,
21081 p_ATTRIBUTE26 => l_instance_rec.ATTRIBUTE26,
21082 p_ATTRIBUTE27 => l_instance_rec.ATTRIBUTE27,
21083 p_ATTRIBUTE28 => l_instance_rec.ATTRIBUTE28,
21084 p_ATTRIBUTE29 => l_instance_rec.ATTRIBUTE29,
21085 p_ATTRIBUTE30 => l_instance_rec.ATTRIBUTE30,
21086 --end of parameters addition for eam integration--
21087 -- Addition of columns for FA Integration
21088 p_PURCHASE_UNIT_PRICE => l_instance_rec.PURCHASE_UNIT_PRICE,
21089 p_PURCHASE_CURRENCY_CODE => l_instance_rec.PURCHASE_CURRENCY_CODE,
21090 p_PAYABLES_UNIT_PRICE => l_instance_rec.PAYABLES_UNIT_PRICE,
21091 p_PAYABLES_CURRENCY_CODE => l_instance_rec.PAYABLES_CURRENCY_CODE,
21092 p_SALES_UNIT_PRICE => l_instance_rec.SALES_UNIT_PRICE,
21093 p_SALES_CURRENCY_CODE => l_instance_rec.SALES_CURRENCY_CODE,
21094 p_OPERATIONAL_STATUS_CODE => l_instance_rec.OPERATIONAL_STATUS_CODE,
21095 -- End addition of columns for FA Integration
21096 p_SOURCE_CODE => l_instance_rec.SOURCE_CODE -- Added Code for Siebel Genesis Project
21097 );
21098
21099
21100 -- calling the transaction api
21101 --IF CSI_Item_Instance_vld_pvt.Is_Inst_creation_complete( l_instance_rec.INSTANCE_ID ) THEN
21102
21103 -- Call create_transaction to create txn log
21104 CSI_TRANSACTIONS_PVT.Create_transaction
21105 (
21106 p_api_version => p_api_version
21107 ,p_commit => p_commit
21108 ,p_init_msg_list => p_init_msg_list
21109 ,p_validation_level => p_validation_level
21110 ,p_Success_IF_Exists_Flag => 'Y'
21111 ,p_transaction_rec => p_txn_rec
21112 ,x_return_status => x_return_status
21113 ,x_msg_count => x_msg_count
21114 ,x_msg_data => x_msg_data
21115 );
21116
21117 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
21118
21119 FND_MESSAGE.SET_NAME('CSI','CSI_FAILED_TO_VALIDATE_TXN');
21120 FND_MESSAGE.SET_TOKEN('TRANSACTION_ID',p_txn_rec.transaction_id );
21121 FND_MSG_PUB.Add;
21122 RAISE FND_API.G_EXC_ERROR;
21123 END IF;
21124 -- END IF;
21125
21126 -- Get a unique history item instance id from the sequence
21127 l_csi_item_instance_h_id :=
21128 csi_item_instance_vld_pvt.get_csi_item_instance_h_id;
21129
21130 -- Get the full_dump_frequency from csi_install_parameter
21131 --
21132 IF csi_datastructures_pub.g_install_param_rec.fetch_flag IS NULL THEN
21133 csi_gen_utility_pvt.populate_install_param_rec;
21134 END IF;
21135 --
21136 l_full_dump_frequency := csi_datastructures_pub.g_install_param_rec.history_full_dump_frequency;
21137 --
21138 IF l_full_dump_frequency IS NULL THEN
21139 FND_MESSAGE.SET_NAME('CSI','CSI_API_GET_FULL_DUMP_FAILED');
21140 FND_MSG_PUB.ADD;
21141 RAISE FND_API.G_EXC_ERROR;
21142 END IF;
21143
21144 SELECT MOD(l_instance_rec.object_version_number,l_full_dump_frequency)
21145 INTO l_mod_value
21146 FROM dual;
21147
21148 -- Added for the bug 6788183
21149 BEGIN
21150 SELECT instance_history_id
21151 INTO l_ins_hist_id
21152 FROM csi_item_instances_h h
21153 WHERE h.transaction_id = p_txn_rec.transaction_id
21154 AND h.instance_id = p_instance_rec.instance_id;
21155
21156 CSI_ITEM_INSTANCES_H_PKG.Update_Row
21157 ( p_INSTANCE_HISTORY_ID => l_ins_hist_id
21158 ,p_INSTANCE_ID => fnd_api.g_miss_num
21159 ,p_TRANSACTION_ID => fnd_api.g_miss_num
21160 ,p_OLD_INSTANCE_NUMBER => fnd_api.g_miss_char
21161 ,p_NEW_INSTANCE_NUMBER => p_instance_rec.INSTANCE_NUMBER
21162 ,p_OLD_EXTERNAL_REFERENCE => fnd_api.g_miss_char
21163 ,p_NEW_EXTERNAL_REFERENCE => p_instance_rec.EXTERNAL_REFERENCE
21164 ,p_OLD_INVENTORY_ITEM_ID => fnd_api.g_miss_num
21165 ,p_NEW_INVENTORY_ITEM_ID => p_instance_rec.INVENTORY_ITEM_ID
21166 ,p_OLD_INVENTORY_REVISION => fnd_api.g_miss_char
21167 ,p_NEW_INVENTORY_REVISION => p_instance_rec.INVENTORY_REVISION
21168 ,p_OLD_INV_MASTER_ORGZN_ID => fnd_api.g_miss_num
21169 ,p_NEW_INV_MASTER_ORGZN_ID => p_instance_rec.INV_MASTER_ORGANIZATION_ID
21170 ,p_OLD_SERIAL_NUMBER => fnd_api.g_miss_char
21171 ,p_NEW_SERIAL_NUMBER => p_instance_rec.SERIAL_NUMBER
21172 ,p_OLD_MFG_SERIAL_NUMBER_FLAG => fnd_api.g_miss_char
21173 ,p_NEW_MFG_SERIAL_NUMBER_FLAG => p_instance_rec.MFG_SERIAL_NUMBER_FLAG
21174 ,p_OLD_LOT_NUMBER => fnd_api.g_miss_char
21175 ,p_NEW_LOT_NUMBER => p_instance_rec.LOT_NUMBER
21176 ,p_OLD_QUANTITY => fnd_api.g_miss_num
21177 ,p_NEW_QUANTITY => p_instance_rec.QUANTITY
21178 ,p_OLD_UNIT_OF_MEASURE => fnd_api.g_miss_char
21179 ,p_NEW_UNIT_OF_MEASURE => p_instance_rec.UNIT_OF_MEASURE
21180 ,p_OLD_ACCOUNTING_CLASS_CODE => fnd_api.g_miss_char
21181 ,p_NEW_ACCOUNTING_CLASS_CODE => p_instance_rec.ACCOUNTING_CLASS_CODE
21182 ,p_OLD_INSTANCE_CONDITION_ID => fnd_api.g_miss_num
21183 ,p_NEW_INSTANCE_CONDITION_ID => p_instance_rec.INSTANCE_CONDITION_ID
21184 ,p_OLD_INSTANCE_STATUS_ID => fnd_api.g_miss_num
21185 ,p_NEW_INSTANCE_STATUS_ID => p_instance_rec.INSTANCE_STATUS_ID
21186 ,p_OLD_CUSTOMER_VIEW_FLAG => fnd_api.g_miss_char
21187 ,p_NEW_CUSTOMER_VIEW_FLAG => p_instance_rec.CUSTOMER_VIEW_FLAG
21188 ,p_OLD_MERCHANT_VIEW_FLAG => fnd_api.g_miss_char
21189 ,p_NEW_MERCHANT_VIEW_FLAG => p_instance_rec.MERCHANT_VIEW_FLAG
21190 ,p_OLD_SELLABLE_FLAG => fnd_api.g_miss_char
21191 ,p_NEW_SELLABLE_FLAG => p_instance_rec.SELLABLE_FLAG
21192 ,p_OLD_SYSTEM_ID => fnd_api.g_miss_num
21193 ,p_NEW_SYSTEM_ID => p_instance_rec.SYSTEM_ID
21194 ,p_OLD_INSTANCE_TYPE_CODE => fnd_api.g_miss_char
21195 ,p_NEW_INSTANCE_TYPE_CODE => p_instance_rec.INSTANCE_TYPE_CODE
21196 ,p_OLD_ACTIVE_START_DATE => fnd_api.g_miss_date
21197 ,p_NEW_ACTIVE_START_DATE => p_instance_rec.ACTIVE_START_DATE
21198 ,p_OLD_ACTIVE_END_DATE => fnd_api.g_miss_date
21199 ,p_NEW_ACTIVE_END_DATE => l_temp_date
21200 ,p_OLD_LOCATION_TYPE_CODE => fnd_api.g_miss_char
21201 ,p_NEW_LOCATION_TYPE_CODE => p_instance_rec.LOCATION_TYPE_CODE
21202 ,p_OLD_LOCATION_ID => fnd_api.g_miss_num
21203 ,p_NEW_LOCATION_ID => p_instance_rec.LOCATION_ID
21204 ,p_OLD_INV_ORGANIZATION_ID => fnd_api.g_miss_num
21205 ,p_NEW_INV_ORGANIZATION_ID => p_instance_rec.INV_ORGANIZATION_ID
21206 ,p_OLD_INV_SUBINVENTORY_NAME => fnd_api.g_miss_char
21207 ,p_NEW_INV_SUBINVENTORY_NAME => p_instance_rec.INV_SUBINVENTORY_NAME
21208 ,p_OLD_INV_LOCATOR_ID => fnd_api.g_miss_num
21209 ,p_NEW_INV_LOCATOR_ID => p_instance_rec.INV_LOCATOR_ID
21210 ,p_OLD_PA_PROJECT_ID => fnd_api.g_miss_num
21211 ,p_NEW_PA_PROJECT_ID => p_instance_rec.PA_PROJECT_ID
21212 ,p_OLD_PA_PROJECT_TASK_ID => fnd_api.g_miss_num
21213 ,p_NEW_PA_PROJECT_TASK_ID => p_instance_rec.PA_PROJECT_TASK_ID
21214 ,p_OLD_IN_TRANSIT_ORDER_LINE_ID => fnd_api.g_miss_num
21215 ,p_NEW_IN_TRANSIT_ORDER_LINE_ID => p_instance_rec.IN_TRANSIT_ORDER_LINE_ID
21216 ,p_OLD_WIP_JOB_ID => fnd_api.g_miss_num
21217 ,p_NEW_WIP_JOB_ID => p_instance_rec.WIP_JOB_ID
21218 ,p_OLD_PO_ORDER_LINE_ID => fnd_api.g_miss_num
21219 ,p_NEW_PO_ORDER_LINE_ID => p_instance_rec.PO_ORDER_LINE_ID
21220 ,p_OLD_COMPLETENESS_FLAG => fnd_api.g_miss_char
21221 ,p_NEW_COMPLETENESS_FLAG => p_instance_rec.COMPLETENESS_FLAG
21222 ,p_FULL_DUMP_FLAG => fnd_api.g_miss_char
21223 ,p_NEW_CONTEXT => p_instance_rec.CONTEXT
21224 ,P_OLD_CONTEXT => fnd_api.g_miss_char
21225 ,p_NEW_ATTRIBUTE1 => p_instance_rec.ATTRIBUTE1
21226 ,p_OLD_ATTRIBUTE1 => fnd_api.g_miss_char
21227 ,p_NEW_ATTRIBUTE2 => p_instance_rec.ATTRIBUTE2
21228 ,p_OLD_ATTRIBUTE2 => fnd_api.g_miss_char
21229 ,p_NEW_ATTRIBUTE3 => p_instance_rec.ATTRIBUTE3
21230 ,p_OLD_ATTRIBUTE3 => fnd_api.g_miss_char
21231 ,p_NEW_ATTRIBUTE4 => p_instance_rec.ATTRIBUTE4
21232 ,p_OLD_ATTRIBUTE4 => fnd_api.g_miss_char
21233 ,p_NEW_ATTRIBUTE5 => p_instance_rec.ATTRIBUTE5
21234 ,p_OLD_ATTRIBUTE5 => fnd_api.g_miss_char
21235 ,p_NEW_ATTRIBUTE6 => p_instance_rec.ATTRIBUTE6
21236 ,p_OLD_ATTRIBUTE6 => fnd_api.g_miss_char
21237 ,p_NEW_ATTRIBUTE7 => p_instance_rec.ATTRIBUTE7
21238 ,p_OLD_ATTRIBUTE7 => fnd_api.g_miss_char
21239 ,p_NEW_ATTRIBUTE8 => p_instance_rec.ATTRIBUTE8
21240 ,p_OLD_ATTRIBUTE8 => fnd_api.g_miss_char
21241 ,p_NEW_ATTRIBUTE9 => p_instance_rec.ATTRIBUTE9
21242 ,p_OLD_ATTRIBUTE9 => fnd_api.g_miss_char
21243 ,p_NEW_ATTRIBUTE10 => p_instance_rec.ATTRIBUTE10
21244 ,p_OLD_ATTRIBUTE10 => fnd_api.g_miss_char
21245 ,p_NEW_ATTRIBUTE11 => p_instance_rec.ATTRIBUTE11
21246 ,p_OLD_ATTRIBUTE11 => fnd_api.g_miss_char
21247 ,p_NEW_ATTRIBUTE12 => p_instance_rec.ATTRIBUTE12
21248 ,p_OLD_ATTRIBUTE12 => fnd_api.g_miss_char
21249 ,p_NEW_ATTRIBUTE13 => p_instance_rec.ATTRIBUTE13
21250 ,p_OLD_ATTRIBUTE13 => fnd_api.g_miss_char
21251 ,p_NEW_ATTRIBUTE14 => p_instance_rec.ATTRIBUTE14
21252 ,p_OLD_ATTRIBUTE14 => fnd_api.g_miss_char
21253 ,p_NEW_ATTRIBUTE15 => p_instance_rec.ATTRIBUTE15
21254 ,p_OLD_ATTRIBUTE15 => fnd_api.g_miss_char
21255 ,p_CREATED_BY => fnd_api.g_miss_num
21256 ,p_CREATION_DATE => fnd_api.g_miss_date
21257 ,p_LAST_UPDATED_BY => FND_GLOBAL.USER_ID
21258 ,p_LAST_UPDATE_DATE => SYSDATE
21259 ,p_LAST_UPDATE_LOGIN => FND_GLOBAL.CONC_LOGIN_ID
21260 ,p_OBJECT_VERSION_NUMBER => fnd_api.g_miss_num
21261 ,p_OLD_INST_LOC_TYPE_CODE => fnd_api.g_miss_char
21262 ,p_NEW_INST_LOC_TYPE_CODE => p_instance_rec.INSTALL_LOCATION_TYPE_CODE
21263 ,p_OLD_INST_LOC_ID => fnd_api.g_miss_num
21264 ,p_NEW_INST_LOC_ID => p_instance_rec.INSTALL_LOCATION_ID
21265 ,p_OLD_INST_USAGE_CODE => fnd_api.g_miss_char
21266 ,p_NEW_INST_USAGE_CODE => p_instance_rec.INSTANCE_USAGE_CODE
21267 ,p_OLD_LAST_VLD_ORGANIZATION_ID => fnd_api.g_miss_num
21268 ,p_NEW_LAST_VLD_ORGANIZATION_ID => p_instance_rec.vld_organization_id
21269 ,p_OLD_CONFIG_INST_REV_NUM => fnd_api.g_miss_num
21270 ,p_NEW_CONFIG_INST_REV_NUM => p_instance_rec.CONFIG_INST_REV_NUM
21271 ,p_OLD_CONFIG_VALID_STATUS => fnd_api.g_miss_char
21272 ,p_NEW_CONFIG_VALID_STATUS => p_instance_rec.CONFIG_VALID_STATUS
21273 ,p_OLD_INSTANCE_DESCRIPTION => fnd_api.g_miss_char
21274 ,p_NEW_INSTANCE_DESCRIPTION => p_instance_rec.INSTANCE_DESCRIPTION
21275 ,p_OLD_INSTALL_DATE => fnd_api.g_miss_date
21276 ,p_NEW_INSTALL_DATE => p_instance_rec.INSTALL_DATE
21277 ,p_OLD_RETURN_BY_DATE => fnd_api.g_miss_date
21278 ,p_NEW_RETURN_BY_DATE => p_instance_rec.RETURN_BY_DATE
21279 ,p_OLD_ACTUAL_RETURN_DATE => fnd_api.g_miss_date
21280 ,p_NEW_ACTUAL_RETURN_DATE => p_instance_rec.ACTUAL_RETURN_DATE
21281 ,p_OLD_LAST_OE_AGREEMENT_ID => fnd_api.g_miss_num
21282 ,p_NEW_LAST_OE_AGREEMENT_ID => p_instance_rec.LAST_OE_AGREEMENT_ID
21283 ,p_OLD_LAST_OE_ORDER_LINE_ID => fnd_api.g_miss_num
21284 ,p_NEW_LAST_OE_ORDER_LINE_ID => p_instance_rec.LAST_OE_ORDER_LINE_ID
21285 ,p_OLD_LAST_OE_RMA_LINE_ID => fnd_api.g_miss_num
21286 ,p_NEW_LAST_OE_RMA_LINE_ID => p_instance_rec.LAST_OE_RMA_LINE_ID
21287 ,p_OLD_LAST_WIP_JOB_ID => fnd_api.g_miss_num
21288 ,p_NEW_LAST_WIP_JOB_ID => p_instance_rec.LAST_WIP_JOB_ID
21289 ,p_OLD_LAST_PO_PO_LINE_ID => fnd_api.g_miss_num
21290 ,p_NEW_LAST_PO_PO_LINE_ID => p_instance_rec.LAST_PO_PO_LINE_ID
21291 ,p_OLD_LAST_PA_PROJECT_ID => fnd_api.g_miss_num
21292 ,p_NEW_LAST_PA_PROJECT_ID => p_instance_rec.LAST_PA_PROJECT_ID
21293 ,p_OLD_LAST_PA_TASK_ID => fnd_api.g_miss_num
21294 ,p_NEW_LAST_PA_TASK_ID => p_instance_rec.LAST_PA_TASK_ID
21295 ,p_OLD_LAST_TXN_LINE_DETAIL_ID => fnd_api.g_miss_num
21296 ,p_NEW_LAST_TXN_LINE_DETAIL_ID => p_instance_rec.LAST_TXN_LINE_DETAIL_ID
21297 ,p_OLD_LAST_OE_PO_NUMBER => fnd_api.g_miss_char
21298 ,p_NEW_LAST_OE_PO_NUMBER => p_instance_rec.LAST_OE_PO_NUMBER
21299 --start of parameters addition for eam integration--
21300 ,p_OLD_NETWORK_ASSET_FLAG => fnd_api.g_miss_char
21301 ,p_NEW_NETWORK_ASSET_FLAG => p_instance_rec.NETWORK_ASSET_FLAG
21302 ,p_OLD_MAINTAINABLE_FLAG => fnd_api.g_miss_char
21303 ,p_NEW_MAINTAINABLE_FLAG => p_instance_rec.MAINTAINABLE_FLAG
21304 ,p_OLD_PN_LOCATION_ID => fnd_api.g_miss_num
21305 ,p_NEW_PN_LOCATION_ID => p_instance_rec.PN_LOCATION_ID
21306 ,p_OLD_ASSET_CRITICALITY_CODE => fnd_api.g_miss_char
21307 ,p_NEW_ASSET_CRITICALITY_CODE => p_instance_rec.ASSET_CRITICALITY_CODE
21308 ,p_OLD_CATEGORY_ID => fnd_api.g_miss_num
21309 ,p_NEW_CATEGORY_ID => p_instance_rec.CATEGORY_ID
21310 ,p_OLD_EQUIPMENT_GEN_OBJECT_ID => fnd_api.g_miss_num
21311 ,p_NEW_EQUIPMENT_GEN_OBJECT_ID => p_instance_rec.EQUIPMENT_GEN_OBJECT_ID
21312 ,p_OLD_INSTANTIATION_FLAG => fnd_api.g_miss_char
21313 ,p_NEW_INSTANTIATION_FLAG => p_instance_rec.INSTANTIATION_FLAG
21314 ,p_OLD_LINEAR_LOCATION_ID => fnd_api.g_miss_num
21315 ,p_NEW_LINEAR_LOCATION_ID => p_instance_rec.LINEAR_LOCATION_ID
21316 ,p_OLD_OPERATIONAL_LOG_FLAG => fnd_api.g_miss_char
21317 ,p_NEW_OPERATIONAL_LOG_FLAG => p_instance_rec.OPERATIONAL_LOG_FLAG
21318 ,p_OLD_CHECKIN_STATUS => fnd_api.g_miss_num
21319 ,p_NEW_CHECKIN_STATUS => p_instance_rec.CHECKIN_STATUS
21320 ,p_OLD_SUP_WARRANTY_EXP_DATE => fnd_api.g_miss_date
21321 ,p_NEW_SUP_WARRANTY_EXP_DATE => p_instance_rec.SUPPLIER_WARRANTY_EXP_DATE
21322 ,p_OLD_ATTRIBUTE16 => fnd_api.g_miss_char
21323 ,p_NEW_ATTRIBUTE16 => p_instance_rec.ATTRIBUTE16
21324 ,p_OLD_ATTRIBUTE17 => fnd_api.g_miss_char
21325 ,p_NEW_ATTRIBUTE17 => p_instance_rec.ATTRIBUTE17
21326 ,p_OLD_ATTRIBUTE18 => fnd_api.g_miss_char
21327 ,p_NEW_ATTRIBUTE18 => p_instance_rec.ATTRIBUTE18
21328 ,p_OLD_ATTRIBUTE19 => fnd_api.g_miss_char
21329 ,p_NEW_ATTRIBUTE19 => p_instance_rec.ATTRIBUTE19
21330 ,p_OLD_ATTRIBUTE20 => fnd_api.g_miss_char
21331 ,p_NEW_ATTRIBUTE20 => p_instance_rec.ATTRIBUTE20
21332 ,p_OLD_ATTRIBUTE21 => fnd_api.g_miss_char
21333 ,p_NEW_ATTRIBUTE21 => p_instance_rec.ATTRIBUTE21
21334 ,p_OLD_ATTRIBUTE22 => fnd_api.g_miss_char
21335 ,p_NEW_ATTRIBUTE22 => p_instance_rec.ATTRIBUTE22
21336 ,p_OLD_ATTRIBUTE23 => fnd_api.g_miss_char
21337 ,p_NEW_ATTRIBUTE23 => p_instance_rec.ATTRIBUTE23
21338 ,p_OLD_ATTRIBUTE24 => fnd_api.g_miss_char
21339 ,p_NEW_ATTRIBUTE24 => p_instance_rec.ATTRIBUTE24
21340 ,p_OLD_ATTRIBUTE25 => fnd_api.g_miss_char
21341 ,p_NEW_ATTRIBUTE25 => p_instance_rec.ATTRIBUTE25
21342 ,p_OLD_ATTRIBUTE26 => fnd_api.g_miss_char
21343 ,p_NEW_ATTRIBUTE26 => p_instance_rec.ATTRIBUTE26
21344 ,p_OLD_ATTRIBUTE27 => fnd_api.g_miss_char
21345 ,p_NEW_ATTRIBUTE27 => p_instance_rec.ATTRIBUTE27
21346 ,p_OLD_ATTRIBUTE28 => fnd_api.g_miss_char
21347 ,p_NEW_ATTRIBUTE28 => p_instance_rec.ATTRIBUTE28
21348 ,p_OLD_ATTRIBUTE29 => fnd_api.g_miss_char
21349 ,p_NEW_ATTRIBUTE29 => p_instance_rec.ATTRIBUTE29
21350 ,p_OLD_ATTRIBUTE30 => fnd_api.g_miss_char
21351 ,p_NEW_ATTRIBUTE30 => p_instance_rec.ATTRIBUTE30
21352 --end of parameters addition for eam integration--
21353 -- Addition of columns for FA Integration
21354 ,p_OLD_PAYABLES_UNIT_PRICE => fnd_api.g_miss_num
21355 ,p_NEW_PAYABLES_UNIT_PRICE => p_instance_rec.PAYABLES_UNIT_PRICE
21356 ,p_OLD_PAYABLES_CURRENCY_CODE => fnd_api.g_miss_char
21357 ,p_NEW_PAYABLES_CURRENCY_CODE => p_instance_rec.PAYABLES_CURRENCY_CODE
21358 ,p_OLD_PURCHASE_UNIT_PRICE => fnd_api.g_miss_num
21359 ,p_NEW_PURCHASE_UNIT_PRICE => p_instance_rec.PURCHASE_UNIT_PRICE
21360 ,p_OLD_PURCHASE_CURRENCY_CODE => fnd_api.g_miss_char
21361 ,p_NEW_PURCHASE_CURRENCY_CODE => p_instance_rec.PURCHASE_CURRENCY_CODE
21362 ,p_OLD_SALES_UNIT_PRICE => fnd_api.g_miss_num
21363 ,p_NEW_SALES_UNIT_PRICE => p_instance_rec.SALES_UNIT_PRICE
21364 ,p_OLD_SALES_CURRENCY_CODE => fnd_api.g_miss_char
21365 ,p_NEW_SALES_CURRENCY_CODE => p_instance_rec.SALES_CURRENCY_CODE
21366 ,p_OLD_OPERATIONAL_STATUS_CODE => fnd_api.g_miss_char
21367 ,p_NEW_OPERATIONAL_STATUS_CODE => p_instance_rec.OPERATIONAL_STATUS_CODE
21368 -- End addition of columns for FA Integration
21369 ,p_OLD_SOURCE_CODE => fnd_api.g_miss_char
21370 ,p_NEW_SOURCE_CODE => p_instance_rec.SOURCE_CODE
21371 );
21372
21373 EXCEPTION
21374 WHEN NO_DATA_FOUND THEN
21375 -- Get a unique history item instance id from the sequence
21376 l_csi_item_instance_h_id :=
21377 csi_item_instance_vld_pvt.get_csi_item_instance_h_id;
21378
21379 IF (l_mod_value = 0) THEN
21380 -- If the mod value is 0 then dump all the columns both changed and unchanged
21381 -- changed columns have old and new values while the unchanged values have old and new values
21382 -- exactly same
21383 CSI_ITEM_INSTANCES_H_PKG.Insert_Row
21384 ( px_INSTANCE_HISTORY_ID => l_csi_item_instance_h_id
21385 ,p_INSTANCE_ID => p_instance_rec.instance_id
21386 ,p_TRANSACTION_ID => p_txn_rec.TRANSACTION_ID
21387 ,p_OLD_INSTANCE_NUMBER => l_curr_instance_rec.INSTANCE_NUMBER
21388 ,p_NEW_INSTANCE_NUMBER => l_curr_instance_rec.INSTANCE_NUMBER
21389 ,p_OLD_EXTERNAL_REFERENCE => l_curr_instance_rec.EXTERNAL_REFERENCE
21390 ,p_NEW_EXTERNAL_REFERENCE => l_curr_instance_rec.EXTERNAL_REFERENCE
21391 ,p_OLD_INVENTORY_ITEM_ID => l_curr_instance_rec.INVENTORY_ITEM_ID
21392 ,p_NEW_INVENTORY_ITEM_ID => l_curr_instance_rec.INVENTORY_ITEM_ID
21393 ,p_OLD_INVENTORY_REVISION => l_curr_instance_rec.INVENTORY_REVISION
21394 ,p_NEW_INVENTORY_REVISION => l_curr_instance_rec.INVENTORY_REVISION
21395 ,p_OLD_INV_MASTER_ORGZN_ID => l_curr_instance_rec.INV_MASTER_ORGANIZATION_ID
21396 ,p_NEW_INV_MASTER_ORGZN_ID => l_curr_instance_rec.INV_MASTER_ORGANIZATION_ID
21397 ,p_OLD_SERIAL_NUMBER => l_curr_instance_rec.SERIAL_NUMBER
21398 ,p_NEW_SERIAL_NUMBER => l_curr_instance_rec.SERIAL_NUMBER
21399 ,p_OLD_MFG_SERIAL_NUMBER_FLAG => l_curr_instance_rec.MFG_SERIAL_NUMBER_FLAG
21400 ,p_NEW_MFG_SERIAL_NUMBER_FLAG => l_curr_instance_rec.MFG_SERIAL_NUMBER_FLAG
21401 ,p_OLD_LOT_NUMBER => l_curr_instance_rec.LOT_NUMBER
21402 ,p_NEW_LOT_NUMBER => l_curr_instance_rec.LOT_NUMBER
21403 ,p_OLD_QUANTITY => l_curr_instance_rec.QUANTITY
21404 ,p_NEW_QUANTITY => l_curr_instance_rec.QUANTITY
21405 ,p_OLD_UNIT_OF_MEASURE => l_curr_instance_rec.UNIT_OF_MEASURE
21406 ,p_NEW_UNIT_OF_MEASURE => l_curr_instance_rec.UNIT_OF_MEASURE
21407 ,p_OLD_ACCOUNTING_CLASS_CODE => l_curr_instance_rec.ACCOUNTING_CLASS_CODE
21408 ,p_NEW_ACCOUNTING_CLASS_CODE => l_curr_instance_rec.ACCOUNTING_CLASS_CODE
21409 ,p_OLD_INSTANCE_CONDITION_ID => l_curr_instance_rec.INSTANCE_CONDITION_ID
21410 ,p_NEW_INSTANCE_CONDITION_ID => l_curr_instance_rec.INSTANCE_CONDITION_ID
21411 ,p_OLD_INSTANCE_STATUS_ID => l_curr_instance_rec.INSTANCE_STATUS_ID
21412 ,p_NEW_INSTANCE_STATUS_ID => l_instance_rec.INSTANCE_STATUS_ID
21413 ,p_OLD_CUSTOMER_VIEW_FLAG => l_curr_instance_rec.CUSTOMER_VIEW_FLAG
21414 ,p_NEW_CUSTOMER_VIEW_FLAG => l_curr_instance_rec.CUSTOMER_VIEW_FLAG
21415 ,p_OLD_MERCHANT_VIEW_FLAG => l_curr_instance_rec.MERCHANT_VIEW_FLAG
21416 ,p_NEW_MERCHANT_VIEW_FLAG => l_curr_instance_rec.MERCHANT_VIEW_FLAG
21417 ,p_OLD_SELLABLE_FLAG => l_curr_instance_rec.SELLABLE_FLAG
21418 ,p_NEW_SELLABLE_FLAG => l_curr_instance_rec.SELLABLE_FLAG
21419 ,p_OLD_SYSTEM_ID => l_curr_instance_rec.SYSTEM_ID
21420 ,p_NEW_SYSTEM_ID => l_curr_instance_rec.SYSTEM_ID
21421 ,p_OLD_INSTANCE_TYPE_CODE => l_curr_instance_rec.INSTANCE_TYPE_CODE
21422 ,p_NEW_INSTANCE_TYPE_CODE => l_curr_instance_rec.INSTANCE_TYPE_CODE
21423 ,p_OLD_ACTIVE_START_DATE => l_curr_instance_rec.ACTIVE_START_DATE
21424 ,p_NEW_ACTIVE_START_DATE => l_curr_instance_rec.ACTIVE_START_DATE
21425 ,p_OLD_ACTIVE_END_DATE => l_curr_instance_rec.ACTIVE_END_DATE
21426 ,p_NEW_ACTIVE_END_DATE => l_temp_date --SYSDATE
21427 ,p_OLD_LOCATION_TYPE_CODE => l_curr_instance_rec.LOCATION_TYPE_CODE
21428 ,p_NEW_LOCATION_TYPE_CODE => l_curr_instance_rec.LOCATION_TYPE_CODE
21429 ,p_OLD_LOCATION_ID => l_curr_instance_rec.LOCATION_ID
21430 ,p_NEW_LOCATION_ID => l_curr_instance_rec.LOCATION_ID
21431 ,p_OLD_INV_ORGANIZATION_ID => l_curr_instance_rec.INV_ORGANIZATION_ID
21432 ,p_NEW_INV_ORGANIZATION_ID => l_curr_instance_rec.INV_ORGANIZATION_ID
21433 ,p_OLD_INV_SUBINVENTORY_NAME => l_curr_instance_rec.INV_SUBINVENTORY_NAME
21434 ,p_NEW_INV_SUBINVENTORY_NAME => l_curr_instance_rec.INV_SUBINVENTORY_NAME
21435 ,p_OLD_INV_LOCATOR_ID => l_curr_instance_rec.INV_LOCATOR_ID
21436 ,p_NEW_INV_LOCATOR_ID => l_curr_instance_rec.INV_LOCATOR_ID
21437 ,p_OLD_PA_PROJECT_ID => l_curr_instance_rec.PA_PROJECT_ID
21438 ,p_NEW_PA_PROJECT_ID => l_curr_instance_rec.PA_PROJECT_ID
21439 ,p_OLD_PA_PROJECT_TASK_ID => l_curr_instance_rec.PA_PROJECT_TASK_ID
21440 ,p_NEW_PA_PROJECT_TASK_ID => l_curr_instance_rec.PA_PROJECT_TASK_ID
21441 ,p_OLD_IN_TRANSIT_ORDER_LINE_ID => l_curr_instance_rec.IN_TRANSIT_ORDER_LINE_ID
21442 ,p_NEW_IN_TRANSIT_ORDER_LINE_ID => l_curr_instance_rec.IN_TRANSIT_ORDER_LINE_ID
21443 ,p_OLD_WIP_JOB_ID => l_curr_instance_rec.WIP_JOB_ID
21444 ,p_NEW_WIP_JOB_ID => l_curr_instance_rec.WIP_JOB_ID
21445 ,p_OLD_PO_ORDER_LINE_ID => l_curr_instance_rec.PO_ORDER_LINE_ID
21446 ,p_NEW_PO_ORDER_LINE_ID => l_curr_instance_rec.PO_ORDER_LINE_ID
21447 ,p_OLD_COMPLETENESS_FLAG => l_curr_instance_rec.COMPLETENESS_FLAG
21448 ,p_NEW_COMPLETENESS_FLAG => l_curr_instance_rec.COMPLETENESS_FLAG
21449 ,p_FULL_DUMP_FLAG => 'Y'
21450 ,p_NEW_CONTEXT => l_curr_instance_rec.CONTEXT
21451 ,P_OLD_CONTEXT => l_curr_instance_rec.CONTEXT
21452 ,p_NEW_ATTRIBUTE1 => l_curr_instance_rec.ATTRIBUTE1
21453 ,p_OLD_ATTRIBUTE1 => l_curr_instance_rec.ATTRIBUTE1
21454 ,p_NEW_ATTRIBUTE2 => l_curr_instance_rec.ATTRIBUTE2
21455 ,p_OLD_ATTRIBUTE2 => l_curr_instance_rec.ATTRIBUTE2
21456 ,p_NEW_ATTRIBUTE3 => l_curr_instance_rec.ATTRIBUTE3
21457 ,p_OLD_ATTRIBUTE3 => l_curr_instance_rec.ATTRIBUTE3
21458 ,p_NEW_ATTRIBUTE4 => l_curr_instance_rec.ATTRIBUTE4
21459 ,p_OLD_ATTRIBUTE4 => l_curr_instance_rec.ATTRIBUTE4
21460 ,p_NEW_ATTRIBUTE5 => l_curr_instance_rec.ATTRIBUTE5
21461 ,p_OLD_ATTRIBUTE5 => l_curr_instance_rec.ATTRIBUTE5
21462 ,p_NEW_ATTRIBUTE6 => l_curr_instance_rec.ATTRIBUTE6
21463 ,p_OLD_ATTRIBUTE6 => l_curr_instance_rec.ATTRIBUTE6
21464 ,p_NEW_ATTRIBUTE7 => l_curr_instance_rec.ATTRIBUTE7
21465 ,p_OLD_ATTRIBUTE7 => l_curr_instance_rec.ATTRIBUTE7
21466 ,p_NEW_ATTRIBUTE8 => l_curr_instance_rec.ATTRIBUTE8
21467 ,p_OLD_ATTRIBUTE8 => l_curr_instance_rec.ATTRIBUTE8
21468 ,p_NEW_ATTRIBUTE9 => l_curr_instance_rec.ATTRIBUTE9
21469 ,p_OLD_ATTRIBUTE9 => l_curr_instance_rec.ATTRIBUTE9
21470 ,p_NEW_ATTRIBUTE10 => l_curr_instance_rec.ATTRIBUTE10
21471 ,p_OLD_ATTRIBUTE10 => l_curr_instance_rec.ATTRIBUTE10
21472 ,p_NEW_ATTRIBUTE11 => l_curr_instance_rec.ATTRIBUTE11
21473 ,p_OLD_ATTRIBUTE11 => l_curr_instance_rec.ATTRIBUTE11
21474 ,p_NEW_ATTRIBUTE12 => l_curr_instance_rec.ATTRIBUTE12
21475 ,p_OLD_ATTRIBUTE12 => l_curr_instance_rec.ATTRIBUTE12
21476 ,p_NEW_ATTRIBUTE13 => l_curr_instance_rec.ATTRIBUTE13
21477 ,p_OLD_ATTRIBUTE13 => l_curr_instance_rec.ATTRIBUTE13
21478 ,p_NEW_ATTRIBUTE14 => l_curr_instance_rec.ATTRIBUTE14
21479 ,p_OLD_ATTRIBUTE14 => l_curr_instance_rec.ATTRIBUTE14
21480 ,p_NEW_ATTRIBUTE15 => l_curr_instance_rec.ATTRIBUTE15
21481 ,p_OLD_ATTRIBUTE15 => l_curr_instance_rec.ATTRIBUTE15
21482 ,p_CREATED_BY => FND_GLOBAL.USER_ID
21483 ,p_CREATION_DATE => SYSDATE
21484 ,p_LAST_UPDATED_BY => FND_GLOBAL.USER_ID
21485 ,p_LAST_UPDATE_DATE => SYSDATE
21486 ,p_LAST_UPDATE_LOGIN => FND_GLOBAL.CONC_LOGIN_ID
21487 ,p_OBJECT_VERSION_NUMBER => 1
21488 ,p_OLD_INST_LOC_TYPE_CODE => l_curr_instance_rec.INSTALL_LOCATION_TYPE_CODE
21489 ,p_NEW_INST_LOC_TYPE_CODE => l_curr_instance_rec.INSTALL_LOCATION_TYPE_CODE
21490 ,p_OLD_INST_LOC_ID => l_curr_instance_rec.INSTALL_LOCATION_ID
21491 ,p_NEW_INST_LOC_ID => l_curr_instance_rec.INSTALL_LOCATION_ID
21492 ,p_OLD_INST_USAGE_CODE => l_curr_instance_rec.INSTANCE_USAGE_CODE
21493 ,p_NEW_INST_USAGE_CODE => l_curr_instance_rec.INSTANCE_USAGE_CODE
21494 ,p_OLD_CONFIG_INST_REV_NUM => l_curr_instance_rec.CONFIG_INST_REV_NUM
21495 ,p_NEW_CONFIG_INST_REV_NUM => NULL -- l_curr_instance_rec.CONFIG_INST_REV_NUM
21496 ,p_OLD_CONFIG_VALID_STATUS => l_curr_instance_rec.CONFIG_VALID_STATUS
21497 ,p_NEW_CONFIG_VALID_STATUS => l_curr_instance_rec.CONFIG_VALID_STATUS
21498 ,p_OLD_INSTANCE_DESCRIPTION => l_curr_instance_rec.INSTANCE_DESCRIPTION
21499 ,p_NEW_INSTANCE_DESCRIPTION => l_curr_instance_rec.INSTANCE_DESCRIPTION
21500 ,p_OLD_INSTALL_DATE => l_curr_instance_rec.INSTALL_DATE
21501 ,p_NEW_INSTALL_DATE => l_curr_instance_rec.INSTALL_DATE
21502 ,p_OLD_RETURN_BY_DATE => l_curr_instance_rec.RETURN_BY_DATE
21503 ,p_NEW_RETURN_BY_DATE => l_curr_instance_rec.RETURN_BY_DATE
21504 ,p_OLD_ACTUAL_RETURN_DATE => l_curr_instance_rec.ACTUAL_RETURN_DATE
21505 ,p_NEW_ACTUAL_RETURN_DATE => l_curr_instance_rec.ACTUAL_RETURN_DATE
21506 ,p_OLD_LAST_OE_AGREEMENT_ID => l_curr_instance_rec.LAST_OE_AGREEMENT_ID
21507 ,p_NEW_LAST_OE_AGREEMENT_ID => l_curr_instance_rec.LAST_OE_AGREEMENT_ID
21508 ,p_OLD_LAST_OE_ORDER_LINE_ID => l_curr_instance_rec.LAST_OE_ORDER_LINE_ID
21509 ,p_NEW_LAST_OE_ORDER_LINE_ID => l_curr_instance_rec.LAST_OE_ORDER_LINE_ID
21510 ,p_OLD_LAST_OE_RMA_LINE_ID => l_curr_instance_rec.LAST_OE_RMA_LINE_ID
21511 ,p_NEW_LAST_OE_RMA_LINE_ID => l_curr_instance_rec.LAST_OE_RMA_LINE_ID
21512 ,p_OLD_LAST_WIP_JOB_ID => l_curr_instance_rec.LAST_WIP_JOB_ID
21513 ,p_NEW_LAST_WIP_JOB_ID => l_curr_instance_rec.LAST_WIP_JOB_ID
21514 ,p_OLD_LAST_PO_PO_LINE_ID => l_curr_instance_rec.LAST_PO_PO_LINE_ID
21515 ,p_NEW_LAST_PO_PO_LINE_ID => l_curr_instance_rec.LAST_PO_PO_LINE_ID
21516 ,p_OLD_LAST_PA_PROJECT_ID => l_curr_instance_rec.LAST_PA_PROJECT_ID
21517 ,p_NEW_LAST_PA_PROJECT_ID => l_curr_instance_rec.LAST_PA_PROJECT_ID
21518 ,p_OLD_LAST_PA_TASK_ID => l_curr_instance_rec.LAST_PA_TASK_ID
21519 ,p_NEW_LAST_PA_TASK_ID => l_curr_instance_rec.LAST_PA_TASK_ID
21520 ,p_OLD_LAST_TXN_LINE_DETAIL_ID => l_curr_instance_rec.LAST_TXN_LINE_DETAIL_ID
21521 ,p_NEW_LAST_TXN_LINE_DETAIL_ID => l_curr_instance_rec.LAST_TXN_LINE_DETAIL_ID
21522 ,p_OLD_LAST_OE_PO_NUMBER => l_curr_instance_rec.LAST_OE_PO_NUMBER
21523 ,p_NEW_LAST_OE_PO_NUMBER => l_curr_instance_rec.LAST_OE_PO_NUMBER
21524 --start of parameters addition for eam integration--
21525 ,p_OLD_NETWORK_ASSET_FLAG => l_curr_instance_rec.NETWORK_ASSET_FLAG
21526 ,p_NEW_NETWORK_ASSET_FLAG => l_curr_instance_rec.NETWORK_ASSET_FLAG
21527 ,p_OLD_MAINTAINABLE_FLAG => l_curr_instance_rec.MAINTAINABLE_FLAG
21528 ,p_NEW_MAINTAINABLE_FLAG => l_curr_instance_rec.MAINTAINABLE_FLAG
21529 ,p_OLD_PN_LOCATION_ID => l_curr_instance_rec.PN_LOCATION_ID
21530 ,p_NEW_PN_LOCATION_ID => l_curr_instance_rec.PN_LOCATION_ID
21531 ,p_OLD_ASSET_CRITICALITY_CODE => l_curr_instance_rec.ASSET_CRITICALITY_CODE
21532 ,p_NEW_ASSET_CRITICALITY_CODE => l_curr_instance_rec.ASSET_CRITICALITY_CODE
21533 ,p_OLD_CATEGORY_ID => l_curr_instance_rec.CATEGORY_ID
21534 ,p_NEW_CATEGORY_ID => l_curr_instance_rec.CATEGORY_ID
21535 ,p_OLD_EQUIPMENT_GEN_OBJECT_ID => l_curr_instance_rec.EQUIPMENT_GEN_OBJECT_ID
21536 ,p_NEW_EQUIPMENT_GEN_OBJECT_ID => l_curr_instance_rec.EQUIPMENT_GEN_OBJECT_ID
21537 ,p_OLD_INSTANTIATION_FLAG => l_curr_instance_rec.INSTANTIATION_FLAG
21538 ,p_NEW_INSTANTIATION_FLAG => l_curr_instance_rec.INSTANTIATION_FLAG
21539 ,p_OLD_LINEAR_LOCATION_ID => l_curr_instance_rec.LINEAR_LOCATION_ID
21540 ,p_NEW_LINEAR_LOCATION_ID => l_curr_instance_rec.LINEAR_LOCATION_ID
21541 ,p_OLD_OPERATIONAL_LOG_FLAG => l_curr_instance_rec.OPERATIONAL_LOG_FLAG
21542 ,p_NEW_OPERATIONAL_LOG_FLAG => l_curr_instance_rec.OPERATIONAL_LOG_FLAG
21543 ,p_OLD_CHECKIN_STATUS => l_curr_instance_rec.CHECKIN_STATUS
21544 ,p_NEW_CHECKIN_STATUS => l_curr_instance_rec.CHECKIN_STATUS
21545 ,p_OLD_SUP_WARRANTY_EXP_DATE => l_curr_instance_rec.SUPPLIER_WARRANTY_EXP_DATE
21546 ,p_NEW_SUP_WARRANTY_EXP_DATE => l_curr_instance_rec.SUPPLIER_WARRANTY_EXP_DATE
21547 ,p_OLD_ATTRIBUTE16 => l_curr_instance_rec.ATTRIBUTE16
21548 ,p_NEW_ATTRIBUTE16 => l_curr_instance_rec.ATTRIBUTE16
21549 ,p_OLD_ATTRIBUTE17 => l_curr_instance_rec.ATTRIBUTE17
21550 ,p_NEW_ATTRIBUTE17 => l_curr_instance_rec.ATTRIBUTE17
21551 ,p_OLD_ATTRIBUTE18 => l_curr_instance_rec.ATTRIBUTE18
21552 ,p_NEW_ATTRIBUTE18 => l_curr_instance_rec.ATTRIBUTE18
21553 ,p_OLD_ATTRIBUTE19 => l_curr_instance_rec.ATTRIBUTE19
21554 ,p_NEW_ATTRIBUTE19 => l_curr_instance_rec.ATTRIBUTE19
21555 ,p_OLD_ATTRIBUTE20 => l_curr_instance_rec.ATTRIBUTE20
21556 ,p_NEW_ATTRIBUTE20 => l_curr_instance_rec.ATTRIBUTE20
21557 ,p_OLD_ATTRIBUTE21 => l_curr_instance_rec.ATTRIBUTE21
21558 ,p_NEW_ATTRIBUTE21 => l_curr_instance_rec.ATTRIBUTE21
21559 ,p_OLD_ATTRIBUTE22 => l_curr_instance_rec.ATTRIBUTE22
21560 ,p_NEW_ATTRIBUTE22 => l_curr_instance_rec.ATTRIBUTE22
21561 ,p_OLD_ATTRIBUTE23 => l_curr_instance_rec.ATTRIBUTE23
21562 ,p_NEW_ATTRIBUTE23 => l_curr_instance_rec.ATTRIBUTE23
21563 ,p_OLD_ATTRIBUTE24 => l_curr_instance_rec.ATTRIBUTE24
21564 ,p_NEW_ATTRIBUTE24 => l_curr_instance_rec.ATTRIBUTE24
21565 ,p_OLD_ATTRIBUTE25 => l_curr_instance_rec.ATTRIBUTE25
21566 ,p_NEW_ATTRIBUTE25 => l_curr_instance_rec.ATTRIBUTE25
21567 ,p_OLD_ATTRIBUTE26 => l_curr_instance_rec.ATTRIBUTE26
21568 ,p_NEW_ATTRIBUTE26 => l_curr_instance_rec.ATTRIBUTE26
21569 ,p_OLD_ATTRIBUTE27 => l_curr_instance_rec.ATTRIBUTE27
21570 ,p_NEW_ATTRIBUTE27 => l_curr_instance_rec.ATTRIBUTE27
21571 ,p_OLD_ATTRIBUTE28 => l_curr_instance_rec.ATTRIBUTE28
21572 ,p_NEW_ATTRIBUTE28 => l_curr_instance_rec.ATTRIBUTE28
21573 ,p_OLD_ATTRIBUTE29 => l_curr_instance_rec.ATTRIBUTE29
21574 ,p_NEW_ATTRIBUTE29 => l_curr_instance_rec.ATTRIBUTE29
21575 ,p_OLD_ATTRIBUTE30 => l_curr_instance_rec.ATTRIBUTE30
21576 ,p_NEW_ATTRIBUTE30 => l_curr_instance_rec.ATTRIBUTE30
21577 --end of parameters addition for eam integration--
21578
21579 -- Addition of columns for FA Integration
21580 ,p_OLD_PAYABLES_UNIT_PRICE => l_curr_instance_rec.PAYABLES_UNIT_PRICE
21581 ,p_NEW_PAYABLES_UNIT_PRICE => l_curr_instance_rec.PAYABLES_UNIT_PRICE
21582 ,p_OLD_PAYABLES_CURRENCY_CODE => l_curr_instance_rec.PAYABLES_CURRENCY_CODE
21583 ,p_NEW_PAYABLES_CURRENCY_CODE => l_curr_instance_rec.PAYABLES_CURRENCY_CODE
21584 ,p_OLD_PURCHASE_UNIT_PRICE => l_curr_instance_rec.PURCHASE_UNIT_PRICE
21585 ,p_NEW_PURCHASE_UNIT_PRICE => l_curr_instance_rec.PURCHASE_UNIT_PRICE
21586 ,p_OLD_PURCHASE_CURRENCY_CODE => l_curr_instance_rec.PURCHASE_CURRENCY_CODE
21587 ,p_NEW_PURCHASE_CURRENCY_CODE => l_curr_instance_rec.PURCHASE_CURRENCY_CODE
21588 ,p_OLD_SALES_UNIT_PRICE => l_curr_instance_rec.SALES_UNIT_PRICE
21589 ,p_NEW_SALES_UNIT_PRICE => l_curr_instance_rec.SALES_UNIT_PRICE
21590 ,p_OLD_SALES_CURRENCY_CODE => l_curr_instance_rec.SALES_CURRENCY_CODE
21591 ,p_NEW_SALES_CURRENCY_CODE => l_curr_instance_rec.SALES_CURRENCY_CODE
21592 ,p_OLD_OPERATIONAL_STATUS_CODE => l_curr_instance_rec.OPERATIONAL_STATUS_CODE
21593 ,p_NEW_OPERATIONAL_STATUS_CODE => l_curr_instance_rec.OPERATIONAL_STATUS_CODE
21594 -- End addition of columns for FA Integration
21595 -- Begin Add Code for Siebel Genesis Project
21596 ,p_OLD_SOURCE_CODE => l_curr_instance_rec.SOURCE_CODE
21597 ,p_NEW_SOURCE_CODE => l_instance_rec.SOURCE_CODE
21598 -- End Add Code for Siebel Genesis Project
21599 );
21600
21601
21602 ELSE
21603 -- If the mod value is not equal to zero then dump only the changed columns
21604 -- while the unchanged values have old and new values as null
21605 CSI_ITEM_INSTANCES_H_PKG.Insert_Row
21606 ( px_INSTANCE_HISTORY_ID => l_csi_item_instance_h_id
21607 ,p_INSTANCE_ID => p_instance_rec.instance_id
21608 ,p_TRANSACTION_ID => p_txn_rec.TRANSACTION_ID
21609 ,p_OLD_INSTANCE_NUMBER => l_instance_rec.INSTANCE_NUMBER
21610 ,p_NEW_INSTANCE_NUMBER => l_instance_rec.INSTANCE_NUMBER
21611 ,p_OLD_EXTERNAL_REFERENCE => l_instance_rec.EXTERNAL_REFERENCE
21612 ,p_NEW_EXTERNAL_REFERENCE => l_instance_rec.EXTERNAL_REFERENCE
21613 ,p_OLD_INVENTORY_ITEM_ID => l_instance_rec.INVENTORY_ITEM_ID
21614 ,p_NEW_INVENTORY_ITEM_ID => l_instance_rec.INVENTORY_ITEM_ID
21615 ,p_OLD_INVENTORY_REVISION => l_instance_rec.INVENTORY_REVISION
21616 ,p_NEW_INVENTORY_REVISION => l_instance_rec.INVENTORY_REVISION
21617 ,p_OLD_INV_MASTER_ORGZN_ID => l_instance_rec.INV_MASTER_ORGANIZATION_ID
21618 ,p_NEW_INV_MASTER_ORGZN_ID => l_instance_rec.INV_MASTER_ORGANIZATION_ID
21619 ,p_OLD_SERIAL_NUMBER => l_instance_rec.SERIAL_NUMBER
21620 ,p_NEW_SERIAL_NUMBER => l_instance_rec.SERIAL_NUMBER
21621 ,p_OLD_MFG_SERIAL_NUMBER_FLAG => l_instance_rec.MFG_SERIAL_NUMBER_FLAG
21622 ,p_NEW_MFG_SERIAL_NUMBER_FLAG => l_instance_rec.MFG_SERIAL_NUMBER_FLAG
21623 ,p_OLD_LOT_NUMBER => l_instance_rec.LOT_NUMBER
21624 ,p_NEW_LOT_NUMBER => l_instance_rec.LOT_NUMBER
21625 ,p_OLD_QUANTITY => l_instance_rec.QUANTITY
21626 ,p_NEW_QUANTITY => l_instance_rec.QUANTITY
21627 ,p_OLD_UNIT_OF_MEASURE => l_instance_rec.UNIT_OF_MEASURE
21628 ,p_NEW_UNIT_OF_MEASURE => l_instance_rec.UNIT_OF_MEASURE
21629 ,p_OLD_ACCOUNTING_CLASS_CODE => l_instance_rec.ACCOUNTING_CLASS_CODE
21630 ,p_NEW_ACCOUNTING_CLASS_CODE => l_instance_rec.ACCOUNTING_CLASS_CODE
21631 ,p_OLD_INSTANCE_CONDITION_ID => l_instance_rec.INSTANCE_CONDITION_ID
21632 ,p_NEW_INSTANCE_CONDITION_ID => l_instance_rec.INSTANCE_CONDITION_ID
21633 ,p_OLD_INSTANCE_STATUS_ID => l_curr_instance_rec.INSTANCE_STATUS_ID
21634 ,p_NEW_INSTANCE_STATUS_ID => l_instance_rec.INSTANCE_STATUS_ID
21635 ,p_OLD_CUSTOMER_VIEW_FLAG => l_instance_rec.CUSTOMER_VIEW_FLAG
21636 ,p_NEW_CUSTOMER_VIEW_FLAG => l_instance_rec.CUSTOMER_VIEW_FLAG
21637 ,p_OLD_MERCHANT_VIEW_FLAG => l_instance_rec.MERCHANT_VIEW_FLAG
21638 ,p_NEW_MERCHANT_VIEW_FLAG => l_instance_rec.MERCHANT_VIEW_FLAG
21639 ,p_OLD_SELLABLE_FLAG => l_instance_rec.SELLABLE_FLAG
21640 ,p_NEW_SELLABLE_FLAG => l_instance_rec.SELLABLE_FLAG
21641 ,p_OLD_SYSTEM_ID => l_instance_rec.SYSTEM_ID
21642 ,p_NEW_SYSTEM_ID => l_instance_rec.SYSTEM_ID
21643 ,p_OLD_INSTANCE_TYPE_CODE => l_instance_rec.INSTANCE_TYPE_CODE
21644 ,p_NEW_INSTANCE_TYPE_CODE => l_instance_rec.INSTANCE_TYPE_CODE
21645 ,p_OLD_ACTIVE_START_DATE => l_instance_rec.ACTIVE_START_DATE
21646 ,p_NEW_ACTIVE_START_DATE => l_instance_rec.ACTIVE_START_DATE
21647 ,p_OLD_ACTIVE_END_DATE => l_curr_instance_rec.ACTIVE_END_DATE
21648 ,p_NEW_ACTIVE_END_DATE => l_temp_date--SYSDATE
21649 ,p_OLD_LOCATION_TYPE_CODE => l_instance_rec.LOCATION_TYPE_CODE
21650 ,p_NEW_LOCATION_TYPE_CODE => l_instance_rec.LOCATION_TYPE_CODE
21651 ,p_OLD_LOCATION_ID => l_instance_rec.LOCATION_ID
21652 ,p_NEW_LOCATION_ID => l_instance_rec.LOCATION_ID
21653 ,p_OLD_INV_ORGANIZATION_ID => l_instance_rec.INV_ORGANIZATION_ID
21654 ,p_NEW_INV_ORGANIZATION_ID => l_instance_rec.INV_ORGANIZATION_ID
21655 ,p_OLD_INV_SUBINVENTORY_NAME => l_instance_rec.INV_SUBINVENTORY_NAME
21656 ,p_NEW_INV_SUBINVENTORY_NAME => l_instance_rec.INV_SUBINVENTORY_NAME
21657 ,p_OLD_INV_LOCATOR_ID => l_instance_rec.INV_LOCATOR_ID
21658 ,p_NEW_INV_LOCATOR_ID => l_instance_rec.INV_LOCATOR_ID
21659 ,p_OLD_PA_PROJECT_ID => l_instance_rec.PA_PROJECT_ID
21660 ,p_NEW_PA_PROJECT_ID => l_instance_rec.PA_PROJECT_ID
21661 ,p_OLD_PA_PROJECT_TASK_ID => l_instance_rec.PA_PROJECT_TASK_ID
21662 ,p_NEW_PA_PROJECT_TASK_ID => l_instance_rec.PA_PROJECT_TASK_ID
21663 ,p_OLD_IN_TRANSIT_ORDER_LINE_ID => l_instance_rec.IN_TRANSIT_ORDER_LINE_ID
21664 ,p_NEW_IN_TRANSIT_ORDER_LINE_ID => l_instance_rec.IN_TRANSIT_ORDER_LINE_ID
21665 ,p_OLD_WIP_JOB_ID => l_instance_rec.WIP_JOB_ID
21666 ,p_NEW_WIP_JOB_ID => l_instance_rec.WIP_JOB_ID
21667 ,p_OLD_PO_ORDER_LINE_ID => l_instance_rec.PO_ORDER_LINE_ID
21668 ,p_NEW_PO_ORDER_LINE_ID => l_instance_rec.PO_ORDER_LINE_ID
21669 ,p_OLD_COMPLETENESS_FLAG => l_instance_rec.COMPLETENESS_FLAG
21670 ,p_NEW_COMPLETENESS_FLAG => l_instance_rec.COMPLETENESS_FLAG
21671 ,p_FULL_DUMP_FLAG => 'N'
21672 ,p_NEW_CONTEXT => l_instance_rec.CONTEXT
21673 ,P_OLD_CONTEXT => l_instance_rec.CONTEXT
21674 ,p_NEW_ATTRIBUTE1 => l_instance_rec.ATTRIBUTE1
21675 ,p_OLD_ATTRIBUTE1 => l_instance_rec.ATTRIBUTE1
21676 ,p_NEW_ATTRIBUTE2 => l_instance_rec.ATTRIBUTE2
21677 ,p_OLD_ATTRIBUTE2 => l_instance_rec.ATTRIBUTE2
21678 ,p_NEW_ATTRIBUTE3 => l_instance_rec.ATTRIBUTE3
21679 ,p_OLD_ATTRIBUTE3 => l_instance_rec.ATTRIBUTE3
21680 ,p_NEW_ATTRIBUTE4 => l_instance_rec.ATTRIBUTE4
21681 ,p_OLD_ATTRIBUTE4 => l_instance_rec.ATTRIBUTE4
21682 ,p_NEW_ATTRIBUTE5 => l_instance_rec.ATTRIBUTE5
21683 ,p_OLD_ATTRIBUTE5 => l_instance_rec.ATTRIBUTE5
21684 ,p_NEW_ATTRIBUTE6 => l_instance_rec.ATTRIBUTE6
21685 ,p_OLD_ATTRIBUTE6 => l_instance_rec.ATTRIBUTE6
21686 ,p_NEW_ATTRIBUTE7 => l_instance_rec.ATTRIBUTE7
21687 ,p_OLD_ATTRIBUTE7 => l_instance_rec.ATTRIBUTE7
21688 ,p_NEW_ATTRIBUTE8 => l_instance_rec.ATTRIBUTE8
21689 ,p_OLD_ATTRIBUTE8 => l_instance_rec.ATTRIBUTE8
21690 ,p_NEW_ATTRIBUTE9 => l_instance_rec.ATTRIBUTE9
21691 ,p_OLD_ATTRIBUTE9 => l_instance_rec.ATTRIBUTE9
21692 ,p_NEW_ATTRIBUTE10 => l_instance_rec.ATTRIBUTE10
21693 ,p_OLD_ATTRIBUTE10 => l_instance_rec.ATTRIBUTE10
21694 ,p_NEW_ATTRIBUTE11 => l_instance_rec.ATTRIBUTE11
21695 ,p_OLD_ATTRIBUTE11 => l_instance_rec.ATTRIBUTE11
21696 ,p_NEW_ATTRIBUTE12 => l_instance_rec.ATTRIBUTE12
21697 ,p_OLD_ATTRIBUTE12 => l_instance_rec.ATTRIBUTE12
21698 ,p_NEW_ATTRIBUTE13 => l_instance_rec.ATTRIBUTE13
21699 ,p_OLD_ATTRIBUTE13 => l_instance_rec.ATTRIBUTE13
21700 ,p_NEW_ATTRIBUTE14 => l_instance_rec.ATTRIBUTE14
21701 ,p_OLD_ATTRIBUTE14 => l_instance_rec.ATTRIBUTE14
21702 ,p_NEW_ATTRIBUTE15 => l_instance_rec.ATTRIBUTE15
21703 ,p_OLD_ATTRIBUTE15 => l_instance_rec.ATTRIBUTE15
21704 ,p_CREATED_BY => FND_GLOBAL.USER_ID
21705 ,p_CREATION_DATE => SYSDATE
21706 ,p_LAST_UPDATED_BY => FND_GLOBAL.USER_ID
21707 ,p_LAST_UPDATE_DATE => SYSDATE
21708 ,p_LAST_UPDATE_LOGIN => FND_GLOBAL.CONC_LOGIN_ID
21709 ,p_OBJECT_VERSION_NUMBER => 1
21710 ,p_OLD_INST_LOC_TYPE_CODE => l_instance_rec.INSTALL_LOCATION_TYPE_CODE
21711 ,p_NEW_INST_LOC_TYPE_CODE => l_instance_rec.INSTALL_LOCATION_TYPE_CODE
21712 ,p_OLD_INST_LOC_ID => l_instance_rec.INSTALL_LOCATION_ID
21713 ,p_NEW_INST_LOC_ID => l_instance_rec.INSTALL_LOCATION_ID
21714 ,p_OLD_INST_USAGE_CODE => l_instance_rec.INSTANCE_USAGE_CODE
21715 ,p_NEW_INST_USAGE_CODE => l_instance_rec.INSTANCE_USAGE_CODE
21716 ,p_OLD_CONFIG_INST_REV_NUM => l_instance_rec.CONFIG_INST_REV_NUM
21717 ,p_NEW_CONFIG_INST_REV_NUM => NULL -- l_instance_rec.CONFIG_INST_REV_NUM
21718 ,p_OLD_CONFIG_VALID_STATUS => l_instance_rec.CONFIG_VALID_STATUS
21719 ,p_NEW_CONFIG_VALID_STATUS => l_instance_rec.CONFIG_VALID_STATUS
21720 ,p_OLD_INSTANCE_DESCRIPTION => l_instance_rec.INSTANCE_DESCRIPTION
21721 ,p_NEW_INSTANCE_DESCRIPTION => l_instance_rec.INSTANCE_DESCRIPTION
21722 ,p_OLD_INSTALL_DATE => l_instance_rec.INSTALL_DATE
21723 ,p_NEW_INSTALL_DATE => l_instance_rec.INSTALL_DATE
21724 ,p_OLD_RETURN_BY_DATE => l_instance_rec.RETURN_BY_DATE
21725 ,p_NEW_RETURN_BY_DATE => l_instance_rec.RETURN_BY_DATE
21726 ,p_OLD_ACTUAL_RETURN_DATE => l_instance_rec.ACTUAL_RETURN_DATE
21727 ,p_NEW_ACTUAL_RETURN_DATE => l_instance_rec.ACTUAL_RETURN_DATE
21728 ,p_OLD_LAST_OE_AGREEMENT_ID => l_instance_rec.LAST_OE_AGREEMENT_ID
21729 ,p_NEW_LAST_OE_AGREEMENT_ID => l_instance_rec.LAST_OE_AGREEMENT_ID
21730 ,p_OLD_LAST_OE_ORDER_LINE_ID => l_instance_rec.LAST_OE_ORDER_LINE_ID
21731 ,p_NEW_LAST_OE_ORDER_LINE_ID => l_instance_rec.LAST_OE_ORDER_LINE_ID
21732 ,p_OLD_LAST_OE_RMA_LINE_ID => l_instance_rec.LAST_OE_RMA_LINE_ID
21733 ,p_NEW_LAST_OE_RMA_LINE_ID => l_instance_rec.LAST_OE_RMA_LINE_ID
21734 ,p_OLD_LAST_WIP_JOB_ID => l_instance_rec.LAST_WIP_JOB_ID
21735 ,p_NEW_LAST_WIP_JOB_ID => l_instance_rec.LAST_WIP_JOB_ID
21736 ,p_OLD_LAST_PO_PO_LINE_ID => l_instance_rec.LAST_PO_PO_LINE_ID
21737 ,p_NEW_LAST_PO_PO_LINE_ID => l_instance_rec.LAST_PO_PO_LINE_ID
21738 ,p_OLD_LAST_PA_PROJECT_ID => l_instance_rec.LAST_PA_PROJECT_ID
21739 ,p_NEW_LAST_PA_PROJECT_ID => l_instance_rec.LAST_PA_PROJECT_ID
21740 ,p_OLD_LAST_PA_TASK_ID => l_instance_rec.LAST_PA_TASK_ID
21741 ,p_NEW_LAST_PA_TASK_ID => l_instance_rec.LAST_PA_TASK_ID
21742 ,p_OLD_LAST_TXN_LINE_DETAIL_ID => l_instance_rec.LAST_TXN_LINE_DETAIL_ID
21743 ,p_NEW_LAST_TXN_LINE_DETAIL_ID => l_instance_rec.LAST_TXN_LINE_DETAIL_ID
21744 ,p_OLD_LAST_OE_PO_NUMBER => l_instance_rec.LAST_OE_PO_NUMBER
21745 ,p_NEW_LAST_OE_PO_NUMBER => l_instance_rec.LAST_OE_PO_NUMBER
21746 --start of parameters addition for eam integration--
21747 ,p_OLD_NETWORK_ASSET_FLAG => l_instance_rec.NETWORK_ASSET_FLAG
21748 ,p_NEW_NETWORK_ASSET_FLAG => l_instance_rec.NETWORK_ASSET_FLAG
21749 ,p_OLD_MAINTAINABLE_FLAG => l_instance_rec.MAINTAINABLE_FLAG
21750 ,p_NEW_MAINTAINABLE_FLAG => l_instance_rec.MAINTAINABLE_FLAG
21751 ,p_OLD_PN_LOCATION_ID => l_instance_rec.PN_LOCATION_ID
21752 ,p_NEW_PN_LOCATION_ID => l_instance_rec.PN_LOCATION_ID
21753 ,p_OLD_ASSET_CRITICALITY_CODE => l_instance_rec.ASSET_CRITICALITY_CODE
21754 ,p_NEW_ASSET_CRITICALITY_CODE => l_instance_rec.ASSET_CRITICALITY_CODE
21755 ,p_OLD_CATEGORY_ID => l_instance_rec.CATEGORY_ID
21756 ,p_NEW_CATEGORY_ID => l_instance_rec.CATEGORY_ID
21757 ,p_OLD_EQUIPMENT_GEN_OBJECT_ID => l_instance_rec.EQUIPMENT_GEN_OBJECT_ID
21758 ,p_NEW_EQUIPMENT_GEN_OBJECT_ID => l_instance_rec.EQUIPMENT_GEN_OBJECT_ID
21759 ,p_OLD_INSTANTIATION_FLAG => l_instance_rec.INSTANTIATION_FLAG
21760 ,p_NEW_INSTANTIATION_FLAG => l_instance_rec.INSTANTIATION_FLAG
21761 ,p_OLD_LINEAR_LOCATION_ID => l_instance_rec.LINEAR_LOCATION_ID
21762 ,p_NEW_LINEAR_LOCATION_ID => l_instance_rec.LINEAR_LOCATION_ID
21763 ,p_OLD_OPERATIONAL_LOG_FLAG => l_instance_rec.OPERATIONAL_LOG_FLAG
21764 ,p_NEW_OPERATIONAL_LOG_FLAG => l_instance_rec.OPERATIONAL_LOG_FLAG
21765 ,p_OLD_CHECKIN_STATUS => l_instance_rec.CHECKIN_STATUS
21766 ,p_NEW_CHECKIN_STATUS => l_instance_rec.CHECKIN_STATUS
21767 ,p_OLD_SUP_WARRANTY_EXP_DATE => l_instance_rec.SUPPLIER_WARRANTY_EXP_DATE
21768 ,p_NEW_SUP_WARRANTY_EXP_DATE => l_instance_rec.SUPPLIER_WARRANTY_EXP_DATE
21769 ,p_OLD_ATTRIBUTE16 => l_instance_rec.ATTRIBUTE16
21770 ,p_NEW_ATTRIBUTE16 => l_instance_rec.ATTRIBUTE16
21771 ,p_OLD_ATTRIBUTE17 => l_instance_rec.ATTRIBUTE17
21772 ,p_NEW_ATTRIBUTE17 => l_instance_rec.ATTRIBUTE17
21773 ,p_OLD_ATTRIBUTE18 => l_instance_rec.ATTRIBUTE18
21774 ,p_NEW_ATTRIBUTE18 => l_instance_rec.ATTRIBUTE18
21775 ,p_OLD_ATTRIBUTE19 => l_instance_rec.ATTRIBUTE19
21776 ,p_NEW_ATTRIBUTE19 => l_instance_rec.ATTRIBUTE19
21777 ,p_OLD_ATTRIBUTE20 => l_instance_rec.ATTRIBUTE20
21778 ,p_NEW_ATTRIBUTE20 => l_instance_rec.ATTRIBUTE20
21779 ,p_OLD_ATTRIBUTE21 => l_instance_rec.ATTRIBUTE21
21780 ,p_NEW_ATTRIBUTE21 => l_instance_rec.ATTRIBUTE21
21781 ,p_OLD_ATTRIBUTE22 => l_instance_rec.ATTRIBUTE22
21782 ,p_NEW_ATTRIBUTE22 => l_instance_rec.ATTRIBUTE22
21783 ,p_OLD_ATTRIBUTE23 => l_instance_rec.ATTRIBUTE23
21784 ,p_NEW_ATTRIBUTE23 => l_instance_rec.ATTRIBUTE23
21785 ,p_OLD_ATTRIBUTE24 => l_instance_rec.ATTRIBUTE24
21786 ,p_NEW_ATTRIBUTE24 => l_instance_rec.ATTRIBUTE24
21787 ,p_OLD_ATTRIBUTE25 => l_instance_rec.ATTRIBUTE25
21788 ,p_NEW_ATTRIBUTE25 => l_instance_rec.ATTRIBUTE25
21789 ,p_OLD_ATTRIBUTE26 => l_instance_rec.ATTRIBUTE26
21790 ,p_NEW_ATTRIBUTE26 => l_instance_rec.ATTRIBUTE26
21791 ,p_OLD_ATTRIBUTE27 => l_instance_rec.ATTRIBUTE27
21792 ,p_NEW_ATTRIBUTE27 => l_instance_rec.ATTRIBUTE27
21793 ,p_OLD_ATTRIBUTE28 => l_instance_rec.ATTRIBUTE28
21794 ,p_NEW_ATTRIBUTE28 => l_instance_rec.ATTRIBUTE28
21795 ,p_OLD_ATTRIBUTE29 => l_instance_rec.ATTRIBUTE29
21796 ,p_NEW_ATTRIBUTE29 => l_instance_rec.ATTRIBUTE29
21797 ,p_OLD_ATTRIBUTE30 => l_instance_rec.ATTRIBUTE30
21798 ,p_NEW_ATTRIBUTE30 => l_instance_rec.ATTRIBUTE30
21799 --end of parameters addition for eam integration--
21800 -- Addition of columns for FA Integration
21801 ,p_OLD_PAYABLES_UNIT_PRICE => l_instance_rec.PAYABLES_UNIT_PRICE
21802 ,p_NEW_PAYABLES_UNIT_PRICE => l_instance_rec.PAYABLES_UNIT_PRICE
21803 ,p_OLD_PAYABLES_CURRENCY_CODE => l_instance_rec.PAYABLES_CURRENCY_CODE
21804 ,p_NEW_PAYABLES_CURRENCY_CODE => l_instance_rec.PAYABLES_CURRENCY_CODE
21805 ,p_OLD_PURCHASE_UNIT_PRICE => l_instance_rec.PURCHASE_UNIT_PRICE
21806 ,p_NEW_PURCHASE_UNIT_PRICE => l_instance_rec.PURCHASE_UNIT_PRICE
21807 ,p_OLD_PURCHASE_CURRENCY_CODE => l_instance_rec.PURCHASE_CURRENCY_CODE
21808 ,p_NEW_PURCHASE_CURRENCY_CODE => l_instance_rec.PURCHASE_CURRENCY_CODE
21809 ,p_OLD_SALES_UNIT_PRICE => l_instance_rec.SALES_UNIT_PRICE
21810 ,p_NEW_SALES_UNIT_PRICE => l_instance_rec.SALES_UNIT_PRICE
21811 ,p_OLD_SALES_CURRENCY_CODE => l_instance_rec.SALES_CURRENCY_CODE
21812 ,p_NEW_SALES_CURRENCY_CODE => l_instance_rec.SALES_CURRENCY_CODE
21813 ,p_OLD_OPERATIONAL_STATUS_CODE => l_instance_rec.OPERATIONAL_STATUS_CODE
21814 ,p_NEW_OPERATIONAL_STATUS_CODE => l_instance_rec.OPERATIONAL_STATUS_CODE
21815 -- End addition of columns for FA Integration
21816 -- Begin Add Code for Siebel Genesis Project
21817 ,p_OLD_SOURCE_CODE => l_curr_instance_rec.SOURCE_CODE
21818 ,p_NEW_SOURCE_CODE => l_instance_rec.SOURCE_CODE
21819 -- End Add Code for Siebel Genesis Project
21820 );
21821
21822
21823 END IF;
21824 END; -- End for update row, bug 6788183
21825 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
21826 RAISE FND_API.G_EXC_ERROR;
21827
21828 END IF;
21829
21830 -- Calling eam API to log instance update event
21831 IF l_eam_item
21832 THEN
21833 IF l_ins_hist_id IS NOT NULL
21834 THEN
21835 l_instance_history_id:=l_ins_hist_id;
21836 ELSE
21837 l_instance_history_id:=l_csi_item_instance_h_id;
21838 END IF;
21839 eam_asset_log_pvt.instance_update_event
21840 (p_api_version => p_api_version
21841 ,p_init_msg_list => fnd_api.g_false
21842 ,p_commit => fnd_api.g_false
21843 ,p_validation_level => fnd_api.g_valid_level_full
21844 ,x_return_status => x_return_status
21845 ,x_msg_count => x_msg_count
21846 ,x_msg_data => x_msg_data
21847 ,p_instance_id => p_instance_rec.instance_id
21848 ,p_ref_id => l_instance_history_id
21849 ,p_event_date => sysdate);
21850 IF NOT(x_return_status = fnd_api.g_ret_sts_success)
21851 THEN
21852 csi_gen_utility_pvt.put_line('Error from eam_asset_log_pvt.instance_update_event API');
21853 RAISE fnd_api.g_exc_error;
21854 END IF;
21855 END IF;
21856 -- Calling eam API to log instance update event
21857
21858 -- srramakr Bug # 3945813 We no longer look for service_order_allowed_flag to decide
21859 -- whether contracts should be terminated or not. Instead, we look for terminated_flag.
21860 -- Before terminating the contract check whether the service_order_allowed_flag is set to 'N'
21861 -- for the instance_status passed. If set to 'Y' there will be no call to contracts.
21862 OPEN instance_csr (p_instance_rec.instance_id);
21863 FETCH instance_csr INTO l_instance_csr;
21864 CLOSE instance_csr;
21865
21866 IF csi_item_instance_vld_pvt.termination_status
21867 ( p_instance_status_id => l_instance_csr.instance_status_id )
21868 THEN
21869 IF p_txn_rec.transaction_type_id in (53,54) THEN
21870 l_oks_txn_type := 'RET';
21871 ELSE
21872 l_oks_txn_type := 'TRM';
21873 END IF;
21874 csi_item_instance_pvt.Call_to_Contracts
21875 ( p_transaction_type => l_oks_txn_type
21876 ,p_instance_id => p_instance_rec.instance_id
21877 ,p_new_instance_id => NULL
21878 ,p_vld_org_id => p_instance_rec.vld_organization_id
21879 ,p_quantity => NULL
21880 ,p_party_account_id1 => NULL
21881 ,p_party_account_id2 => NULL
21882 ,p_transaction_date => p_txn_rec.transaction_date -- l_temp_date
21883 ,p_source_transaction_date => p_txn_rec.source_transaction_date -- l_temp_date
21884 ,p_txn_type_id => p_txn_rec.transaction_type_id -- added for BUG 5752271
21885 ,p_grp_call_contracts => p_instance_rec.grp_call_contracts
21886 ,p_oks_txn_inst_tbl => p_oks_txn_inst_tbl
21887 ,x_return_status => x_return_status
21888 ,x_msg_count => x_msg_count
21889 ,x_msg_data => x_msg_data
21890 );
21891
21892 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
21893 l_msg_index := 1;
21894 l_msg_count := x_msg_count;
21895 WHILE l_msg_count > 0 LOOP
21896 x_msg_data := FND_MSG_PUB.GET
21897 ( l_msg_index,
21898 FND_API.G_FALSE
21899 );
21900 csi_gen_utility_pvt.put_line('MESSAGE DATA = '||x_msg_data);
21901 l_msg_index := l_msg_index + 1;
21902 l_msg_count := l_msg_count - 1;
21903 END LOOP;
21904 RAISE FND_API.G_EXC_ERROR;
21905 END IF;
21906 END IF;
21907
21908 --
21909 -- End of API body
21910
21911 -- Standard check of p_commit.
21912 IF FND_API.To_Boolean( p_commit ) THEN
21913 COMMIT WORK;
21914 END IF;
21915
21916 -- Standard call to get message count and if count is get message info.
21917 FND_MSG_PUB.Count_And_Get
21918 (p_encoded => FND_API.G_FALSE,
21919 p_count => x_msg_count ,
21920 p_data => x_msg_data
21921 );
21922
21923 EXCEPTION
21924
21925 WHEN FND_API.G_EXC_ERROR THEN
21926 ROLLBACK TO expire_item_instance_pvt;
21927 x_return_status := FND_API.G_RET_STS_ERROR ;
21928 FND_MSG_PUB.Count_And_Get
21929 (p_encoded => FND_API.G_FALSE,
21930 p_count => x_msg_count,
21931 p_data => x_msg_data
21932 );
21933
21934 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
21935 ROLLBACK TO expire_item_instance_pvt;
21936 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
21937 FND_MSG_PUB.Count_And_Get
21938 (p_encoded => FND_API.G_FALSE,
21939 p_count => x_msg_count,
21940 p_data => x_msg_data
21941 );
21942 WHEN OTHERS THEN
21943 ROLLBACK TO expire_item_instance_pvt;
21944 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
21945 IF FND_MSG_PUB.Check_Msg_Level
21946 (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
21947 THEN
21948 FND_MSG_PUB.Add_Exc_Msg
21949 ( G_PKG_NAME, l_api_name );
21950 END IF;
21951 FND_MSG_PUB.Count_And_Get
21952 ( p_encoded => FND_API.G_FALSE,
21953 p_count => x_msg_count,
21954 p_data => x_msg_data
21955 );
21956
21957 END expire_item_instance;
21958
21959 /*--------------------------------------------------------*/
21960 /* Procedure name: Split_Item_Instance */
21961 /* Description : This procedure is used to create split*/
21962 /* lines for instance */
21963 /*--------------------------------------------------------*/
21964
21965
21966 PROCEDURE Split_Item_Instance
21967 (
21968 p_api_version IN NUMBER
21969 ,p_commit IN VARCHAR2
21970 ,p_init_msg_list IN VARCHAR2
21971 ,p_validation_level IN NUMBER
21972 ,p_source_instance_rec IN OUT NOCOPY csi_datastructures_pub.instance_rec
21973 ,p_quantity1 IN NUMBER
21974 ,p_quantity2 IN NUMBER
21975 ,p_copy_ext_attribs IN VARCHAR2
21976 ,p_copy_org_assignments IN VARCHAR2
21977 ,p_copy_parties IN VARCHAR2
21978 -- ,p_copy_contacts IN VARCHAR2 := fnd_api.g_true
21979 ,p_copy_accounts IN VARCHAR2
21980 ,p_copy_asset_assignments IN VARCHAR2
21981 ,p_copy_pricing_attribs IN VARCHAR2
21982 ,p_txn_rec IN OUT NOCOPY csi_datastructures_pub.transaction_rec
21983 ,x_new_instance_rec OUT NOCOPY csi_datastructures_pub.instance_rec
21984 ,x_return_status OUT NOCOPY VARCHAR2
21985 ,x_msg_count OUT NOCOPY NUMBER
21986 ,x_msg_data OUT NOCOPY VARCHAR2
21987 )
21988
21989 IS
21990 l_api_name CONSTANT VARCHAR2(30) := 'SPLIT_ITEM_INSTANCE';
21991 l_api_version CONSTANT NUMBER := 1.0;
21992 l_debug_level NUMBER;
21993 l_serialized NUMBER;
21994 l_return_value BOOLEAN;
21995 l_object_version_number NUMBER;
21996 l_quantity NUMBER;
21997 l_instance_id_lst csi_datastructures_pub.id_tbl;
21998 l_new_instance_rec csi_datastructures_pub.instance_rec;
21999 l_new_instance_tbl csi_datastructures_pub.instance_tbl;
22000 l_msg_data VARCHAR2(2000);
22001 l_msg_index NUMBER;
22002 l_msg_count NUMBER;
22003 x_msg_index_out NUMBER;
22004 l_old_oks_cp_rec oks_ibint_pub.cp_rec_type;
22005 l_new_oks_cp_rec oks_ibint_pub.cp_rec_type;
22006 l_transaction_type VARCHAR2(10);
22007 l_source_instance_rec csi_datastructures_pub.instance_rec := p_source_instance_rec;
22008 l_contracts_status VARCHAR2(3);
22009 l_new_instance_rec1 csi_datastructures_pub.instance_rec;
22010 l_internal_party_id NUMBER;
22011 l_item_attribute_tbl csi_item_instance_pvt.item_attribute_tbl;
22012 l_location_tbl csi_item_instance_pvt.location_tbl;
22013 l_generic_id_tbl csi_item_instance_pvt.generic_id_tbl;
22014 l_lookup_tbl csi_item_instance_pvt.lookup_tbl;
22015 l_ins_count_rec csi_item_instance_pvt.ins_count_rec;
22016 l_relationship_tbl csi_datastructures_pub.ii_relationship_tbl;
22017 --
22018 px_oks_txn_inst_tbl oks_ibint_pub.txn_instance_tbl;
22019 px_child_inst_tbl csi_item_instance_grp.child_inst_tbl;
22020 l_batch_type VARCHAR2(50);
22021 l_batch_id NUMBER;
22022 --
22023 CURSOR c1 is
22024 SELECT serial_number_control_code
22025 FROM mtl_system_items
22026 WHERE inventory_item_id = p_source_instance_rec.inventory_item_id
22027 AND organization_id = p_source_instance_rec.vld_organization_id
22028 AND enabled_flag = 'Y'
22029 AND nvl (start_date_active, sysdate) <= sysdate
22030 AND nvl (end_date_active, sysdate+1) > sysdate;
22031
22032 l_account_id NUMBER;
22033 l_dummy NUMBER;
22034 BEGIN
22035 -- Standard Start of API savepoint
22036 SAVEPOINT split_item_instance_pvt;
22037
22038 -- Standard call to check for call compatibility.
22039 IF NOT FND_API.Compatible_API_Call (l_api_version,
22040 p_api_version,
22041 l_api_name,
22042 G_PKG_NAME )
22043 THEN
22044 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
22045 END IF;
22046
22047 -- Initialize message list if p_init_msg_list is set to TRUE.
22048 IF FND_API.to_Boolean( p_init_msg_list ) THEN
22049 FND_MSG_PUB.initialize;
22050 END IF;
22051
22052 -- Initialize API return status to success
22053 x_return_status := FND_API.G_RET_STS_SUCCESS;
22054
22055 -- Check the profile option debug_level for debug message reporting
22056 l_debug_level:=fnd_profile.value('CSI_DEBUG_LEVEL');
22057
22058 -- If debug_level = 1 then dump the procedure name
22059 IF (l_debug_level > 0) THEN
22060 csi_gen_utility_pvt.put_line ( 'split_item_instance_pvt');
22061 END IF;
22062
22063 -- If the debug level = 2 then dump all the parameters values.
22064 IF (l_debug_level > 1) THEN
22065 csi_gen_utility_pvt.put_line ('split_item_instance_pvt' ||
22066 p_api_version ||'-'||
22067 p_commit ||'-'||
22068 p_init_msg_list );
22069 -- Dump the records in the log file
22070 csi_gen_utility_pvt.dump_instance_rec(p_source_instance_rec);
22071 csi_gen_utility_pvt.dump_txn_rec(p_txn_rec);
22072 END IF;
22073
22074 -- Start API body
22075
22076 --check for the required parameters
22077 CSI_Item_Instance_vld_pvt.Check_Reqd_Param_Num
22078 ( p_source_instance_rec.INSTANCE_ID ,
22079 ' p_source_instance_rec.INSTANCE_ID ',
22080 l_api_name
22081 );
22082 --validation for serialized or not
22083
22084 IF p_source_instance_rec.location_type_code = 'INVENTORY'
22085 OR p_source_instance_rec.location_type_code = 'WIP'
22086 OR p_source_instance_rec.location_type_code = 'PROJECT'
22087 THEN
22088 FND_MESSAGE.SET_NAME('CSI','CSI_CANNOT_SPLIT');
22089 FND_MSG_PUB.ADD;
22090 RAISE FND_API.G_EXC_ERROR;
22091 END IF;
22092
22093 BEGIN
22094 SELECT 1
22095 INTO l_dummy
22096 FROM csi_i_assets
22097 WHERE instance_id =p_source_instance_rec.instance_id;
22098
22099 FND_MESSAGE.SET_NAME('CSI','CSI_CANNOT_SPLIT');
22100 FND_MSG_PUB.ADD;
22101 RAISE FND_API.G_EXC_ERROR;
22102 EXCEPTION
22103 WHEN OTHERS THEN
22104 NULL;
22105 END;
22106
22107
22108 OPEN C1;
22109 FETCH C1 into l_serialized;
22110 IF c1%FOUND THEN
22111 -- IF nvl(l_serialized,0) IN (2,5,6) then
22112 IF csi_Item_Instance_Vld_pvt.Is_treated_serialized
22113 ( p_serial_control_code => l_serialized
22114 ,p_location_type_code => p_source_instance_rec.location_type_code
22115 ,p_transaction_type_id => p_txn_rec.transaction_type_id
22116 ) -- Added by sk on 09/13/01
22117 THEN
22118 l_return_value := FALSE;
22119 FND_MESSAGE.SET_NAME('CSI','CSI_API_CANNOT_BE_SERIALIZED');
22120 FND_MESSAGE.SET_TOKEN('SERIAL_NUMBER', 'serial_number');
22121 FND_MSG_PUB.ADD;
22122 RAISE FND_API.G_EXC_ERROR;
22123 END IF;
22124 END IF;
22125 CLOSE C1;
22126
22127 --get the quantity from the csi_item_instances for the instance_id passed
22128
22129 BEGIN
22130 SELECT quantity
22131 INTO l_quantity
22132 FROM csi_item_instances
22133 WHERE instance_id = p_source_instance_rec.instance_id;
22134 EXCEPTION
22135 WHEN NO_DATA_FOUND THEN
22136 FND_MESSAGE.SET_NAME('CSI','CSI_API_INVALID_QUANITY');
22137 FND_MSG_PUB.Add;
22138 RAISE FND_API.G_EXC_ERROR;
22139 END;
22140
22141 --verifying the quantity
22142 IF (p_quantity1 + p_quantity2) <> l_quantity THEN
22143 FND_MESSAGE.SET_NAME('CSI','CSI_API_INCORRECT_QUANTITY');
22144 FND_MSG_PUB.Add;
22145 RAISE FND_API.G_EXC_ERROR;
22146 END IF;
22147
22148 -- Added by sk for bug 2186683
22149 IF p_source_instance_rec.vld_organization_id IS NULL OR
22150 p_source_instance_rec.vld_organization_id = fnd_api.g_miss_num
22151 THEN
22152 BEGIN
22153 SELECT last_vld_organization_id
22154 INTO p_source_instance_rec.vld_organization_id
22155 FROM csi_item_instances
22156 WHERE instance_id = p_source_instance_rec.instance_id;
22157 EXCEPTION
22158 WHEN OTHERS THEN
22159 NULL;
22160 END;
22161 END IF;
22162 -- End addition by sk for bug 2186683
22163 --if the passed quantities and the quantity in the table are same then
22164 p_source_instance_rec.quantity := p_quantity2;
22165 --call the copy instance api to create a new record with 'p_quantity2')
22166
22167 csi_item_instance_pvt.copy_item_instance
22168 ( p_api_version => p_api_version
22169 ,p_commit => fnd_api.g_false
22170 ,p_init_msg_list => p_init_msg_list
22171 ,p_validation_level => p_validation_level
22172 ,p_source_instance_rec => p_source_instance_rec
22173 ,p_copy_ext_attribs => p_copy_ext_attribs
22174 ,p_copy_org_assignments => p_copy_org_assignments
22175 ,p_copy_parties => p_copy_parties
22176 ,p_copy_contacts => fnd_api.g_true
22177 ,p_copy_accounts => p_copy_accounts
22178 ,p_copy_asset_assignments => p_copy_asset_assignments
22179 ,p_copy_pricing_attribs => p_copy_pricing_attribs
22180 ,p_copy_inst_children => fnd_api.g_true
22181 ,p_call_from_split => fnd_api.g_true
22182 ,p_txn_rec => p_txn_rec
22183 ,x_new_instance_tbl => l_new_instance_tbl
22184 ,x_return_status => x_return_status
22185 ,x_msg_count => x_msg_count
22186 ,x_msg_data => x_msg_data
22187 );
22188
22189 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
22190 FOR i in 1..x_msg_Count LOOP
22191 FND_MSG_PUB.Get(p_msg_index => i,
22192 p_encoded => 'F',
22193 p_data => x_msg_data,
22194 p_msg_index_out => x_msg_index_out );
22195
22196 End LOOP;
22197 RAISE fnd_api.g_exc_error;
22198 END IF;
22199
22200 IF (l_new_instance_tbl.count <> 1) THEN
22201 -- If the number records in the PL/SQL table is more than 1 OR
22202 -- not equal to 1 than raise error
22203 RAISE fnd_api.g_exc_error;
22204 ELSE
22205 x_new_instance_rec := l_new_instance_tbl(1);
22206 END IF;
22207
22208 -- Start addition for bug 2823122
22209 IF l_new_instance_tbl(1).instance_usage_code='IN_RELATIONSHIP'
22210 THEN
22211 IF l_relationship_tbl.COUNT=0
22212 THEN
22213 BEGIN
22214 SELECT object_id
22215 ,relationship_type_code
22216 ,mandatory_flag
22217 ,context
22218 ,sysdate
22219 ,active_end_date
22220 ,position_reference
22221 ,display_order
22222 ,attribute1
22223 ,attribute2
22224 ,attribute3
22225 ,attribute4
22226 ,attribute5
22227 ,attribute6
22228 ,attribute7
22229 ,attribute8
22230 ,attribute9
22231 ,attribute10
22232 ,attribute11
22233 ,attribute12
22234 ,attribute13
22235 ,attribute14
22236 ,attribute15
22237 INTO l_relationship_tbl(1).object_id
22238 ,l_relationship_tbl(1).relationship_type_code
22239 ,l_relationship_tbl(1).mandatory_flag
22240 ,l_relationship_tbl(1).context
22241 ,l_relationship_tbl(1).active_start_date
22242 ,l_relationship_tbl(1).active_end_date
22243 ,l_relationship_tbl(1).position_reference
22244 ,l_relationship_tbl(1).display_order
22245 ,l_relationship_tbl(1).attribute1
22246 ,l_relationship_tbl(1).attribute2
22247 ,l_relationship_tbl(1).attribute3
22248 ,l_relationship_tbl(1).attribute4
22249 ,l_relationship_tbl(1).attribute5
22250 ,l_relationship_tbl(1).attribute6
22251 ,l_relationship_tbl(1).attribute7
22252 ,l_relationship_tbl(1).attribute8
22253 ,l_relationship_tbl(1).attribute9
22254 ,l_relationship_tbl(1).attribute10
22255 ,l_relationship_tbl(1).attribute11
22256 ,l_relationship_tbl(1).attribute12
22257 ,l_relationship_tbl(1).attribute13
22258 ,l_relationship_tbl(1).attribute14
22259 ,l_relationship_tbl(1).attribute15
22260 FROM csi_ii_relationships
22261 WHERE subject_id=p_source_instance_rec.instance_id
22262 AND relationship_type_code='COMPONENT-OF'
22263 AND (SYSDATE BETWEEN NVL(active_start_date, SYSDATE) AND NVL(active_end_date, SYSDATE));
22264 EXCEPTION
22265 WHEN OTHERS THEN
22266 NULL;
22267 END;
22268 END IF;
22269
22270 IF l_relationship_tbl(1).object_id IS NOT NULL
22271 AND l_relationship_tbl(1).object_id<>fnd_api.g_miss_num
22272 THEN
22273 l_relationship_tbl(1).subject_id:=l_new_instance_tbl(1).instance_id;
22274 csi_ii_relationships_pub.create_relationship(
22275 p_api_version => 1.0,
22276 p_commit => fnd_api.g_false,
22277 p_init_msg_list => fnd_api.g_true,
22278 p_validation_level => fnd_api.g_valid_level_full,
22279 p_relationship_tbl => l_relationship_tbl,
22280 p_txn_rec => p_txn_rec,
22281 x_return_status => x_return_status,
22282 x_msg_count => x_msg_count,
22283 x_msg_data => x_msg_data);
22284 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
22285 FOR i in 1..x_msg_Count LOOP
22286 FND_MSG_PUB.Get(p_msg_index => i,
22287 p_encoded => 'F',
22288 p_data => x_msg_data,
22289 p_msg_index_out => x_msg_index_out );
22290 END LOOP;
22291 RAISE fnd_api.g_exc_error;
22292 END IF;
22293 END IF;
22294 END IF;
22295 -- End addition for bug 2823122
22296 --update the existing record with 'p_quantity1')
22297 BEGIN
22298 SELECT object_version_number
22299 INTO l_object_version_number
22300 FROM csi_item_instances
22301 WHERE instance_id = p_source_instance_rec.instance_id;
22302 EXCEPTION
22303 WHEN NO_DATA_FOUND THEN
22304 FND_MESSAGE.SET_NAME('CSI','CSI_API_INVALID_OBJ_NUM');
22305 FND_MSG_PUB.ADD;
22306 RAISE FND_API.G_EXC_ERROR;
22307 END;
22308 l_new_instance_rec.instance_id := p_source_instance_rec.instance_id;
22309 l_new_instance_rec.quantity := p_quantity1;
22310 l_new_instance_rec.object_version_number := l_object_version_number;
22311 l_new_instance_rec.vld_organization_id := p_source_instance_rec.vld_organization_id;
22312 l_new_instance_rec.active_end_date := p_source_instance_rec.active_end_date; -- bug 3704480
22313 l_new_instance_rec.instance_status_id := p_source_instance_rec.instance_status_id; -- bug 3704480
22314 --call the update api
22315
22316 update_item_instance
22317 (
22318 p_api_version => p_api_version
22319 ,p_commit => fnd_api.g_false
22320 ,p_init_msg_list => p_init_msg_list
22321 ,p_validation_level => p_validation_level
22322 ,p_instance_rec => l_new_instance_rec
22323 ,p_txn_rec => p_txn_rec
22324 ,x_instance_id_lst => l_instance_id_lst
22325 ,x_return_status => x_return_status
22326 ,x_msg_count => x_msg_count
22327 ,x_msg_data => x_msg_data
22328 ,p_item_attribute_tbl => l_item_attribute_tbl
22329 ,p_location_tbl => l_location_tbl
22330 ,p_generic_id_tbl => l_generic_id_tbl
22331 ,p_lookup_tbl => l_lookup_tbl
22332 ,p_ins_count_rec => l_ins_count_rec
22333 ,p_oks_txn_inst_tbl => px_oks_txn_inst_tbl
22334 ,p_child_inst_tbl => px_child_inst_tbl
22335 );
22336
22337 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
22338 FOR i in 1..x_msg_Count LOOP
22339 FND_MSG_PUB.Get(p_msg_index => i,
22340 p_encoded => 'F',
22341 p_data => x_msg_data,
22342 p_msg_index_out => x_msg_index_out );
22343 End LOOP;
22344 RAISE fnd_api.g_exc_error;
22345 END IF;
22346 -- Calling Contracts
22347 -- Added on 28-sep-01
22348 -- Modification starts
22349 --
22350 l_transaction_type := 'SPL';
22351 csi_item_instance_pvt.Call_to_Contracts
22352 ( p_transaction_type => l_transaction_type
22353 ,p_instance_id => p_source_instance_rec.instance_id
22354 ,p_new_instance_id => l_new_instance_tbl(1).instance_id
22355 ,p_vld_org_id => p_source_instance_rec.vld_organization_id
22356 ,p_quantity => p_quantity1 -- modified for bug 2103144
22357 ,p_party_account_id1 => NULL
22358 ,p_party_account_id2 => NULL
22359 ,p_transaction_date => p_txn_rec.transaction_date -- For 3483763
22360 ,p_source_transaction_date => p_txn_rec.source_transaction_date -- For 3483763
22361 ,p_txn_type_id => p_txn_rec.transaction_type_id -- added for BUG 5752271
22362 ,p_oks_txn_inst_tbl => px_oks_txn_inst_tbl
22363 ,x_return_status => x_return_status
22364 ,x_msg_count => x_msg_count
22365 ,x_msg_data => x_msg_data
22366 );
22367 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
22368 RAISE FND_API.G_EXC_ERROR;
22369 END IF;
22370 --
22371 IF px_oks_txn_inst_tbl.count > 0 THEN
22372 csi_gen_utility_pvt.dump_oks_txn_inst_tbl(px_oks_txn_inst_tbl);
22373 csi_gen_utility_pvt.put_line('Calling OKS Core API...');
22374 --
22375 IF p_txn_rec.transaction_type_id = 3 THEN
22376 l_batch_id := p_txn_rec.source_header_ref_id;
22377 l_batch_type := p_txn_rec.source_group_ref;
22378 ELSE
22379 l_batch_id := NULL;
22380 l_batch_type := NULL;
22381 END IF;
22382 --
22383 UPDATE CSI_TRANSACTIONS
22384 set contracts_invoked = 'Y'
22385 where transaction_id = p_txn_rec.transaction_id;
22386 --
22387 OKS_IBINT_PUB.IB_interface
22388 (
22389 P_Api_Version => 1.0,
22390 P_init_msg_list => p_init_msg_list,
22391 P_single_txn_date_flag => 'Y',
22392 P_Batch_type => l_batch_type,
22393 P_Batch_ID => l_batch_id,
22394 P_OKS_Txn_Inst_tbl => px_oks_txn_inst_tbl,
22395 x_return_status => x_return_status,
22396 x_msg_count => x_msg_count,
22397 x_msg_data => x_msg_data
22398 );
22399 --
22400 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
22401 l_msg_index := 1;
22402 l_msg_count := x_msg_count;
22403 WHILE l_msg_count > 0 LOOP
22404 x_msg_data := FND_MSG_PUB.GET
22405 ( l_msg_index,
22406 FND_API.G_FALSE );
22407 csi_gen_utility_pvt.put_line( 'Error from OKS_IBINT_PUB.IB_interface..');
22408 csi_gen_utility_pvt.put_line('MESSAGE DATA = '||x_msg_data);
22409 l_msg_index := l_msg_index + 1;
22410 l_msg_count := l_msg_count - 1;
22411 END LOOP;
22412 RAISE FND_API.G_EXC_ERROR;
22413 END IF;
22414 END IF;
22415 -- Modification ends
22416 -- End Calling Contracts.
22417 -- End of API body
22418
22419 -- Standard check of p_commit.
22420 IF FND_API.To_Boolean( p_commit ) THEN
22421 COMMIT WORK;
22422 END IF;
22423
22424 -- End disable trace
22425
22426 -- Standard call to get message count and IF count is get message info.
22427 FND_MSG_PUB.Count_And_Get
22428 (p_encoded => FND_API.G_FALSE,
22429 p_count => x_msg_count ,
22430 p_data => x_msg_data
22431 );
22432
22433 EXCEPTION
22434
22435 WHEN FND_API.G_EXC_ERROR THEN
22436 ROLLBACK TO split_item_instance_pvt;
22437 x_return_status := FND_API.G_RET_STS_ERROR ;
22438 FND_MSG_PUB.Count_And_Get
22439 ( p_encoded => FND_API.G_FALSE,
22440 p_count => x_msg_count,
22441 p_data => x_msg_data
22442 );
22443 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
22444 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
22445 ROLLBACK TO split_item_instance_pvt;
22446 FND_MSG_PUB.Count_And_Get
22447 ( p_encoded => FND_API.G_FALSE,
22448 p_count => x_msg_count,
22449 p_data => x_msg_data
22450 );
22451 WHEN OTHERS THEN
22452 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
22453 ROLLBACK TO split_item_instance_pvt;
22454 IF FND_MSG_PUB.Check_Msg_Level
22455 (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
22456 THEN
22457 FND_MSG_PUB.Add_Exc_Msg
22458 ( G_PKG_NAME ,
22459 l_api_name
22460 );
22461 END IF;
22462 FND_MSG_PUB.Count_And_Get
22463 ( p_encoded => FND_API.G_FALSE,
22464 p_count => x_msg_count,
22465 p_data => x_msg_data
22466 );
22467
22468 END Split_Item_Instance;
22469
22470 /*---------------------------------------------------*/
22471 /* Procedure name: Split_Item_Instance_lines */
22472 /* Description : This procedure is used to create */
22473 /* split lines for instance */
22474 /*---------------------------------------------------*/
22475 PROCEDURE Split_Item_Instance_Lines
22476 (
22477 p_api_version IN NUMBER
22478 ,p_commit IN VARCHAR2
22479 ,p_init_msg_list IN VARCHAR2
22480 ,p_validation_level IN NUMBER
22481 ,p_source_instance_rec IN OUT NOCOPY csi_datastructures_pub.instance_rec
22482 ,p_copy_ext_attribs IN VARCHAR2
22483 ,p_copy_org_assignments IN VARCHAR2
22484 ,p_copy_parties IN VARCHAR2
22485 -- ,p_copy_contacts IN VARCHAR2 := fnd_api.g_true
22486 ,p_copy_accounts IN VARCHAR2
22487 ,p_copy_asset_assignments IN VARCHAR2
22488 ,p_copy_pricing_attribs IN VARCHAR2
22489 ,p_txn_rec IN OUT NOCOPY csi_datastructures_pub.transaction_rec
22490 ,x_new_instance_tbl OUT NOCOPY csi_datastructures_pub.instance_tbl
22491 ,x_return_status OUT NOCOPY VARCHAR2
22492 ,x_msg_count OUT NOCOPY NUMBER
22493 ,x_msg_data OUT NOCOPY VARCHAR2
22494 )
22495 IS
22496 CURSOR c1 is
22497 SELECT serial_number_control_code
22498 FROM mtl_system_items
22499 WHERE inventory_item_id = p_source_instance_rec.inventory_item_id
22500 AND organization_id = p_source_instance_rec.vld_organization_id
22501 AND nvl(comms_nl_trackable_flag, 'N') = 'Y'
22502 AND enabled_flag = 'Y'
22503 AND nvl (start_date_active, sysdate) <= sysdate
22504 AND nvl (end_date_active, sysdate+1) > sysdate;
22505
22506 l_api_name CONSTANT VARCHAR2(30) := 'SPLIT_ITEM_INSTANCE_LINES';
22507 l_api_version CONSTANT NUMBER := 1.0;
22508 l_debug_level NUMBER;
22509 l_serialized NUMBER;
22510 l_return_value BOOLEAN;
22511 l_object_version_number NUMBER;
22512 l_quantity NUMBER;
22513 l_instance_id_lst csi_datastructures_pub.id_tbl;
22514 l_new_instance_rec csi_datastructures_pub.instance_rec;
22515 l_new_instance_tbl csi_datastructures_pub.instance_tbl;
22516 l_count NUMBER;
22517 l_msg_data VARCHAR2(2000);
22518 l_msg_index NUMBER;
22519 l_msg_count NUMBER;
22520 x_msg_index_out NUMBER;
22521 l_dummy NUMBER;
22522 l_temp_qty NUMBER;
22523 l_old_qty NUMBER;
22524 l_item_attribute_tbl csi_item_instance_pvt.item_attribute_tbl;
22525 l_location_tbl csi_item_instance_pvt.location_tbl;
22526 l_generic_id_tbl csi_item_instance_pvt.generic_id_tbl;
22527 l_lookup_tbl csi_item_instance_pvt.lookup_tbl;
22528 l_ins_count_rec csi_item_instance_pvt.ins_count_rec;
22529 l_relationship_tbl csi_datastructures_pub.ii_relationship_tbl;
22530 --
22531 px_oks_txn_inst_tbl oks_ibint_pub.txn_instance_tbl;
22532 px_child_inst_tbl csi_item_instance_grp.child_inst_tbl;
22533 l_batch_type VARCHAR2(50);
22534 l_batch_id NUMBER;
22535 --
22536 BEGIN
22537
22538 -- Standard Start of API savepoint
22539 SAVEPOINT split_item_instance_lines_pvt;
22540
22541 -- Standard call to check for call compatibility.
22542 IF NOT FND_API.Compatible_API_Call (l_api_version,
22543 p_api_version,
22544 l_api_name,
22545 G_PKG_NAME )
22546 THEN
22547 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
22548 END IF;
22549
22550 -- Initialize message list if p_init_msg_list is set to TRUE.
22551 IF FND_API.to_Boolean( p_init_msg_list ) THEN
22552 FND_MSG_PUB.initialize;
22553 END IF;
22554
22555 -- Initialize API return status to success
22556 x_return_status := FND_API.G_RET_STS_SUCCESS;
22557
22558 -- Check the profile option debug_level for debug message reporting
22559 l_debug_level:=fnd_profile.value('CSI_DEBUG_LEVEL');
22560
22561 -- If debug_level = 1 then dump the procedure name
22562 IF (l_debug_level > 0) THEN
22563 csi_gen_utility_pvt.put_line ( 'split_item_instance_lines_pvt');
22564 END IF;
22565
22566 -- If the debug level = 2 then dump all the parameters values.
22567 IF (l_debug_level > 1) THEN
22568 csi_gen_utility_pvt.put_line ('split_item_instance_lines_pvt' ||
22569 p_api_version ||'-'||
22570 p_commit ||'-'||
22571 p_init_msg_list );
22572 -- Dump the records in the log file
22573 csi_gen_utility_pvt.dump_instance_rec(p_source_instance_rec);
22574 csi_gen_utility_pvt.dump_txn_rec(p_txn_rec);
22575 END IF;
22576
22577 -- Start API body
22578
22579 --check for the required parameters
22580 CSI_Item_Instance_vld_pvt.Check_Reqd_Param_Num
22581 ( p_source_instance_rec.INSTANCE_ID ,
22582 ' p_source_instance_rec.INSTANCE_ID ',
22583 l_api_name
22584 );
22585 --validation for serialized or not
22586
22587 IF p_source_instance_rec.location_type_code = 'INVENTORY'
22588 OR p_source_instance_rec.location_type_code = 'WIP'
22589 OR p_source_instance_rec.location_type_code = 'PROJECT'
22590 THEN
22591 FND_MESSAGE.SET_NAME('CSI','CSI_CANNOT_SPLIT');
22592 FND_MSG_PUB.ADD;
22593 RAISE FND_API.G_EXC_ERROR;
22594 END IF;
22595
22596 BEGIN
22597 SELECT 1
22598 INTO l_dummy
22599 FROM csi_i_assets
22600 WHERE instance_id =p_source_instance_rec.instance_id;
22601
22602 FND_MESSAGE.SET_NAME('CSI','CSI_CANNOT_SPLIT');
22603 FND_MSG_PUB.ADD;
22604 RAISE FND_API.G_EXC_ERROR;
22605 EXCEPTION
22606 WHEN OTHERS THEN
22607 NULL;
22608 END;
22609
22610 OPEN C1;
22611 FETCH C1 into l_serialized;
22612 IF C1%FOUND THEN
22613 -- IF nvl(l_serialized,0) IN (2,5,6) then
22614 IF csi_Item_Instance_Vld_pvt.Is_treated_serialized
22615 ( p_serial_control_code => l_serialized
22616 ,p_location_type_code => p_source_instance_rec.location_type_code
22617 ,p_transaction_type_id => p_txn_rec.transaction_type_id
22618 ) -- Added by sk on 09/13/01
22619 THEN
22620 l_return_value := FALSE;
22621 FND_MESSAGE.SET_NAME('CSI','CSI_API_CANNOT_BE_SERIALIZED');
22622 FND_MESSAGE.SET_TOKEN('SERIAL_NUMBER', 'serial_number');
22623 FND_MSG_PUB.ADD;
22624 RAISE FND_API.G_EXC_ERROR;
22625 END IF;
22626 END IF;
22627 CLOSE C1;
22628
22629 --get the quantity from the csi_item_instances for the instance_id passed
22630 BEGIN
22631 SELECT quantity
22632 INTO l_quantity
22633 FROM csi_item_instances
22634 WHERE instance_id = p_source_instance_rec.instance_id;
22635 EXCEPTION
22636 WHEN NO_DATA_FOUND THEN
22637 FND_MESSAGE.SET_NAME('CSI','CSI_API_INVALID_QUANITY');
22638 FND_MSG_PUB.Add;
22639 RAISE FND_API.G_EXC_ERROR;
22640 END;
22641 -- Added by sk for bug 2186683
22642 IF p_source_instance_rec.vld_organization_id IS NULL OR
22643 p_source_instance_rec.vld_organization_id = fnd_api.g_miss_num
22644 THEN
22645 BEGIN
22646 SELECT last_vld_organization_id
22647 INTO p_source_instance_rec.vld_organization_id
22648 FROM csi_item_instances
22649 WHERE instance_id = p_source_instance_rec.instance_id;
22650 EXCEPTION
22651 WHEN OTHERS THEN
22652 NULL;
22653 END;
22654 END IF;
22655 -- End addition by sk for bug 2186683
22656 l_temp_qty:=0;
22657 IF l_quantity > 1 THEN
22658 FOR i in 1..(l_quantity - 1) LOOP
22659
22660 l_temp_qty :=l_temp_qty+1;
22661 l_old_qty :=l_quantity-l_temp_qty; -- This will be our split old quantity.
22662 p_source_instance_rec.quantity := 1;
22663 l_new_instance_tbl.delete;
22664 --call the copy instance api to create a new record with 'p_quantity2')
22665 csi_item_instance_pvt.copy_item_instance
22666 (
22667 p_api_version => p_api_version
22668 ,p_commit => fnd_api.g_false
22669 ,p_init_msg_list => p_init_msg_list
22670 ,p_validation_level => p_validation_level
22671 ,p_source_instance_rec => p_source_instance_rec
22672 ,p_copy_ext_attribs => p_copy_ext_attribs
22673 ,p_copy_org_assignments => p_copy_org_assignments
22674 ,p_copy_parties => p_copy_parties
22675 ,p_copy_contacts => fnd_api.g_true
22676 ,p_copy_accounts => p_copy_accounts
22677 ,p_copy_asset_assignments => p_copy_asset_assignments
22678 ,p_copy_pricing_attribs => p_copy_pricing_attribs
22679 ,p_copy_inst_children => fnd_api.g_true
22680 ,p_call_from_split => fnd_api.g_true
22681 ,p_txn_rec => p_txn_rec
22682 ,x_new_instance_tbl => l_new_instance_tbl
22683 ,x_return_status => x_return_status
22684 ,x_msg_count => x_msg_count
22685 ,x_msg_data => x_msg_data
22686 );
22687
22688 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
22689 -- x_error_message := 'copy_item_instance failed ' ;
22690 FOR i in 1..x_msg_Count LOOP
22691 FND_MSG_PUB.Get(p_msg_index => i,
22692 p_encoded => 'F',
22693 p_data => x_msg_data,
22694 p_msg_index_out => x_msg_index_out );
22695 End LOOP;
22696 RAISE fnd_api.g_exc_error;
22697 END IF;
22698 -- Start addition for bug 2823122
22699 IF l_new_instance_tbl(1).instance_usage_code='IN_RELATIONSHIP'
22700 THEN
22701 IF l_relationship_tbl.COUNT=0
22702 THEN
22703 BEGIN
22704 SELECT object_id
22705 ,relationship_type_code
22706 ,mandatory_flag
22707 ,context
22708 ,sysdate
22709 ,active_end_date
22710 ,position_reference
22711 ,display_order
22712 ,attribute1
22713 ,attribute2
22714 ,attribute3
22715 ,attribute4
22716 ,attribute5
22717 ,attribute6
22718 ,attribute7
22719 ,attribute8
22720 ,attribute9
22721 ,attribute10
22722 ,attribute11
22723 ,attribute12
22724 ,attribute13
22725 ,attribute14
22726 ,attribute15
22727 INTO l_relationship_tbl(1).object_id
22728 ,l_relationship_tbl(1).relationship_type_code
22729 ,l_relationship_tbl(1).mandatory_flag
22730 ,l_relationship_tbl(1).context
22731 ,l_relationship_tbl(1).active_start_date
22732 ,l_relationship_tbl(1).active_end_date
22733 ,l_relationship_tbl(1).position_reference
22734 ,l_relationship_tbl(1).display_order
22735 ,l_relationship_tbl(1).attribute1
22736 ,l_relationship_tbl(1).attribute2
22737 ,l_relationship_tbl(1).attribute3
22738 ,l_relationship_tbl(1).attribute4
22739 ,l_relationship_tbl(1).attribute5
22740 ,l_relationship_tbl(1).attribute6
22741 ,l_relationship_tbl(1).attribute7
22742 ,l_relationship_tbl(1).attribute8
22743 ,l_relationship_tbl(1).attribute9
22744 ,l_relationship_tbl(1).attribute10
22745 ,l_relationship_tbl(1).attribute11
22746 ,l_relationship_tbl(1).attribute12
22747 ,l_relationship_tbl(1).attribute13
22748 ,l_relationship_tbl(1).attribute14
22749 ,l_relationship_tbl(1).attribute15
22750 FROM csi_ii_relationships
22751 WHERE subject_id=p_source_instance_rec.instance_id
22752 AND relationship_type_code='COMPONENT-OF'
22753 AND (SYSDATE BETWEEN NVL(active_start_date, SYSDATE) AND NVL(active_end_date, SYSDATE));
22754 EXCEPTION
22755 WHEN OTHERS THEN
22756 NULL;
22757 END;
22758 END IF;
22759
22760 IF l_relationship_tbl(1).object_id IS NOT NULL
22761 AND l_relationship_tbl(1).object_id<>fnd_api.g_miss_num
22762 THEN
22763 l_relationship_tbl(1).relationship_id:=fnd_api.g_miss_num;
22764 l_relationship_tbl(1).subject_id:=l_new_instance_tbl(1).instance_id;
22765 csi_ii_relationships_pub.create_relationship(
22766 p_api_version => 1.0,
22767 p_commit => fnd_api.g_false,
22768 p_init_msg_list => fnd_api.g_true,
22769 p_validation_level => fnd_api.g_valid_level_full,
22770 p_relationship_tbl => l_relationship_tbl,
22771 p_txn_rec => p_txn_rec,
22772 x_return_status => x_return_status,
22773 x_msg_count => x_msg_count,
22774 x_msg_data => x_msg_data);
22775 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
22776 FOR i in 1..x_msg_Count LOOP
22777 FND_MSG_PUB.Get(p_msg_index => i,
22778 p_encoded => 'F',
22779 p_data => x_msg_data,
22780 p_msg_index_out => x_msg_index_out );
22781 END LOOP;
22782 RAISE fnd_api.g_exc_error;
22783 END IF;
22784 END IF;
22785 END IF;
22786 -- End addition for bug 2823122
22787 x_new_instance_tbl(i) := l_new_instance_tbl(1);
22788
22789 -- Following code is added for fixing bug 2139782.
22790 BEGIN
22791 -- For each of the record contracts call will be made and px_oks_txn_inst_tbl will be refreshed
22792 px_oks_txn_inst_tbl.DELETE;
22793 --
22794 csi_item_instance_pvt.call_to_contracts
22795 ( p_transaction_type => 'SPL'
22796 ,p_instance_id => p_source_instance_rec.instance_id
22797 ,p_new_instance_id => l_new_instance_tbl(1).instance_id
22798 ,p_vld_org_id => p_source_instance_rec.vld_organization_id
22799 ,p_quantity => l_old_qty
22800 ,p_party_account_id1 => NULL
22801 ,p_party_account_id2 => NULL
22802 ,p_transaction_date => p_txn_rec.transaction_date -- For 3483763
22803 ,p_source_transaction_date => p_txn_rec.source_transaction_date -- For 3483763
22804 ,p_txn_type_id => p_txn_rec.transaction_type_id -- added for BUG 5752271
22805 ,p_oks_txn_inst_tbl => px_oks_txn_inst_tbl
22806 ,x_return_status => x_return_status
22807 ,x_msg_count => x_msg_count
22808 ,x_msg_data => x_msg_data
22809 );
22810
22811 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
22812 RAISE FND_API.G_EXC_ERROR;
22813 END IF;
22814 --
22815 IF px_oks_txn_inst_tbl.count > 0 THEN
22816 csi_gen_utility_pvt.dump_oks_txn_inst_tbl(px_oks_txn_inst_tbl);
22817 csi_gen_utility_pvt.put_line('Calling OKS Core API...');
22818 --
22819 IF p_txn_rec.transaction_type_id = 3 THEN
22820 l_batch_id := p_txn_rec.source_header_ref_id;
22821 l_batch_type := p_txn_rec.source_group_ref;
22822 ELSE
22823 l_batch_id := NULL;
22824 l_batch_type := NULL;
22825 END IF;
22826 --
22827 UPDATE CSI_TRANSACTIONS
22828 set contracts_invoked = 'Y'
22829 where transaction_id = p_txn_rec.transaction_id;
22830 --
22831 OKS_IBINT_PUB.IB_interface
22832 (
22833 P_Api_Version => 1.0,
22834 P_init_msg_list => p_init_msg_list,
22835 P_single_txn_date_flag => 'Y',
22836 P_Batch_type => l_batch_type,
22837 P_Batch_ID => l_batch_id,
22838 P_OKS_Txn_Inst_tbl => px_oks_txn_inst_tbl,
22839 x_return_status => x_return_status,
22840 x_msg_count => x_msg_count,
22841 x_msg_data => x_msg_data
22842 );
22843 --
22844 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
22845 l_msg_index := 1;
22846 l_msg_count := x_msg_count;
22847 WHILE l_msg_count > 0 LOOP
22848 x_msg_data := FND_MSG_PUB.GET
22849 ( l_msg_index,
22850 FND_API.G_FALSE );
22851 csi_gen_utility_pvt.put_line( 'Error from OKS_IBINT_PUB.IB_interface..');
22852 csi_gen_utility_pvt.put_line('MESSAGE DATA = '||x_msg_data);
22853 l_msg_index := l_msg_index + 1;
22854 l_msg_count := l_msg_count - 1;
22855 END LOOP;
22856 RAISE FND_API.G_EXC_ERROR;
22857 END IF;
22858 END IF;
22859 EXCEPTION
22860 WHEN FND_API.G_EXC_ERROR THEN
22861 RAISE FND_API.G_EXC_ERROR;
22862 END;
22863 -- End of code addition for fixing bug 2139782.
22864 END LOOP;
22865 Else --l_quantity is <= 1
22866
22867 FND_MESSAGE.SET_NAME('CSI','CSI_API_QUANTITY_NOT_VALID');
22868 FND_MESSAGE.SET_TOKEN('QUANTITY', l_quantity);
22869 FND_MSG_PUB.ADD;
22870 -- RAISE fnd_api.g_exc_error;
22871 End If;
22872
22873 --update the existing record with 'p_quantity1')
22874 BEGIN
22875 SELECT object_version_number
22876 INTO l_object_version_number
22877 FROM csi_item_instances
22878 WHERE instance_id = p_source_instance_rec.instance_id;
22879 EXCEPTION
22880 WHEN NO_DATA_FOUND THEN
22881 FND_MESSAGE.SET_NAME('CSI','CSI_API_INVALID_OBJ_NUM');
22882 FND_MSG_PUB.ADD;
22883 RAISE FND_API.G_EXC_ERROR;
22884 END;
22885 --
22886 px_oks_txn_inst_tbl.DELETE;
22887 --
22888 l_new_instance_rec.instance_id := p_source_instance_rec.instance_id;
22889 l_new_instance_rec.quantity := 1;
22890 l_new_instance_rec.object_version_number := l_object_version_number;
22891 l_new_instance_rec.vld_organization_id := p_source_instance_rec.vld_organization_id;
22892
22893 --call the update api
22894 update_item_instance
22895 (
22896 p_api_version => p_api_version
22897 ,p_commit => fnd_api.g_false
22898 ,p_init_msg_list => p_init_msg_list
22899 ,p_validation_level => p_validation_level
22900 ,p_instance_rec => l_new_instance_rec
22901 ,p_txn_rec => p_txn_rec
22902 ,x_instance_id_lst => l_instance_id_lst
22903 ,x_return_status => x_return_status
22904 ,x_msg_count => x_msg_count
22905 ,x_msg_data => x_msg_data
22906 ,p_item_attribute_tbl => l_item_attribute_tbl
22907 ,p_location_tbl => l_location_tbl
22908 ,p_generic_id_tbl => l_generic_id_tbl
22909 ,p_lookup_tbl => l_lookup_tbl
22910 ,p_ins_count_rec => l_ins_count_rec
22911 ,p_oks_txn_inst_tbl => px_oks_txn_inst_tbl
22912 ,p_child_inst_tbl => px_child_inst_tbl
22913 );
22914
22915 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
22916 FOR i in 1..x_msg_Count LOOP
22917 FND_MSG_PUB.Get(p_msg_index => i,
22918 p_encoded => 'F',
22919 p_data => x_msg_data,
22920 p_msg_index_out => x_msg_index_out );
22921 End LOOP;
22922 RAISE fnd_api.g_exc_error;
22923 END IF;
22924
22925
22926 l_count := x_new_instance_tbl.count ;
22927
22928 --Modified the below for bug 14471544, Entire record needs to be sent back not just the instance ID
22929 x_new_instance_tbl(l_count+1) := p_source_instance_rec;
22930 x_new_instance_tbl(l_count+1).object_version_number := l_new_instance_rec.object_version_number;
22931
22932
22933
22934 -- x_new_instance_tbl(i+1) := l_instance_id_lst(1);
22935
22936 -- End of API body
22937
22938 -- Standard check of p_commit.
22939 IF FND_API.To_Boolean( p_commit ) THEN
22940 COMMIT WORK;
22941 END IF;
22942
22943 -- End disable trace
22944
22945 -- Standard call to get message count and IF count is get message info.
22946 FND_MSG_PUB.Count_And_Get
22947 (p_encoded => FND_API.G_FALSE,
22948 p_count => x_msg_count ,
22949 p_data => x_msg_data
22950 );
22951
22952 EXCEPTION
22953
22954 WHEN FND_API.G_EXC_ERROR THEN
22955 ROLLBACK TO split_item_instance_lines_pvt;
22956 x_return_status := FND_API.G_RET_STS_ERROR ;
22957 FND_MSG_PUB.Count_And_Get
22958 ( p_encoded => FND_API.G_FALSE,
22959 p_count => x_msg_count,
22960 p_data => x_msg_data
22961 );
22962 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
22963 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
22964 ROLLBACK TO split_item_instance_lines_pvt;
22965 FND_MSG_PUB.Count_And_Get
22966 ( p_encoded => FND_API.G_FALSE,
22967 p_count => x_msg_count,
22968 p_data => x_msg_data
22969 );
22970 WHEN OTHERS THEN
22971 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
22972 ROLLBACK TO split_item_instance_lines_pvt;
22973 IF FND_MSG_PUB.Check_Msg_Level
22974 (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
22975 THEN
22976 FND_MSG_PUB.Add_Exc_Msg
22977 ( G_PKG_NAME ,
22978 l_api_name
22979 );
22980 END IF;
22981 FND_MSG_PUB.Count_And_Get
22982 ( p_encoded => FND_API.G_FALSE,
22983 p_count => x_msg_count,
22984 p_data => x_msg_data
22985 );
22986
22987 END Split_Item_Instance_lines;
22988
22989
22990 /*----------------------------------------------------------*/
22991 /* Procedure name: Initialize_ver_rec_no_dump */
22992 /* Description : This procedure initializes the first */
22993 /* record from the history */
22994 /*----------------------------------------------------------*/
22995
22996 PROCEDURE Initialize_ver_rec_no_dump
22997 (
22998 x_version_label_rec IN OUT NOCOPY csi_datastructures_pub.version_label_rec,
22999 p_version_label_id IN NUMBER ,
23000 x_no_dump IN OUT NOCOPY DATE
23001 ) IS
23002
23003 CURSOR Int_no_dump(p_ver_label_id IN NUMBER ) IS
23004 SELECT
23005 CREATION_DATE ,
23006 NEW_VERSION_LABEL ,
23007 NEW_DESCRIPTION ,
23008 NEW_DATE_TIME_STAMP ,
23009 NEW_ACTIVE_START_DATE ,
23010 NEW_ACTIVE_END_DATE ,
23011 NEW_CONTEXT ,
23012 NEW_ATTRIBUTE1 ,
23013 NEW_ATTRIBUTE2 ,
23014 NEW_ATTRIBUTE3 ,
23015 NEW_ATTRIBUTE4 ,
23016 NEW_ATTRIBUTE5 ,
23017 NEW_ATTRIBUTE6 ,
23018 NEW_ATTRIBUTE7 ,
23019 NEW_ATTRIBUTE8 ,
23020 NEW_ATTRIBUTE9 ,
23021 NEW_ATTRIBUTE10 ,
23022 NEW_ATTRIBUTE11 ,
23023 NEW_ATTRIBUTE12 ,
23024 NEW_ATTRIBUTE13 ,
23025 NEW_ATTRIBUTE14 ,
23026 NEW_ATTRIBUTE15
23027 FROM CSI_I_VERSION_LABELS_H
23028 WHERE version_label_id = p_ver_label_id
23029 ORDER BY creation_date;
23030
23031
23032 BEGIN
23033
23034 FOR C1 IN Int_no_dump(p_version_label_id ) LOOP
23035 IF Int_no_dump%ROWCOUNT = 1 THEN
23036 x_no_dump := C1.creation_date;
23037 x_version_label_rec.VERSION_LABEL := C1.NEW_VERSION_LABEL;
23038 x_version_label_rec.DESCRIPTION := C1.NEW_DESCRIPTION;
23039 x_version_label_rec.DATE_TIME_STAMP := C1.NEW_DATE_TIME_STAMP;
23040 x_version_label_rec.ACTIVE_START_DATE := C1.NEW_ACTIVE_START_DATE;
23041 x_version_label_rec.ACTIVE_END_DATE := C1.NEW_ACTIVE_END_DATE;
23042 x_version_label_rec.CONTEXT := C1.NEW_CONTEXT;
23043 x_version_label_rec.ATTRIBUTE1 := C1.NEW_ATTRIBUTE1;
23044 x_version_label_rec.ATTRIBUTE2 := C1.NEW_ATTRIBUTE2;
23045 x_version_label_rec.ATTRIBUTE3 := C1.NEW_ATTRIBUTE3;
23046 x_version_label_rec.ATTRIBUTE4 := C1.NEW_ATTRIBUTE4;
23047 x_version_label_rec.ATTRIBUTE5 := C1.NEW_ATTRIBUTE5;
23048 x_version_label_rec.ATTRIBUTE6 := C1.NEW_ATTRIBUTE6;
23049 x_version_label_rec.ATTRIBUTE7 := C1.NEW_ATTRIBUTE7;
23050 x_version_label_rec.ATTRIBUTE8 := C1.NEW_ATTRIBUTE8;
23051 x_version_label_rec.ATTRIBUTE9 := C1.NEW_ATTRIBUTE9;
23052 x_version_label_rec.ATTRIBUTE10 := C1.NEW_ATTRIBUTE10;
23053 x_version_label_rec.ATTRIBUTE11 := C1.NEW_ATTRIBUTE11;
23054 x_version_label_rec.ATTRIBUTE12 := C1.NEW_ATTRIBUTE12;
23055 x_version_label_rec.ATTRIBUTE13 := C1.NEW_ATTRIBUTE13;
23056 x_version_label_rec.ATTRIBUTE14 := C1.NEW_ATTRIBUTE14;
23057 x_version_label_rec.ATTRIBUTE15 := C1.NEW_ATTRIBUTE15;
23058 ELSE
23059 EXIT;
23060 END IF;
23061
23062 END LOOP;
23063 END Initialize_ver_rec_no_dump;
23064
23065
23066 /*----------------------------------------------------------*/
23067 /* Procedure name: Initialize_ver_rec */
23068 /* Description : This procudure recontructs the record */
23069 /* from the history */
23070 /*----------------------------------------------------------*/
23071
23072 PROCEDURE Initialize_ver_rec
23073 (
23074 x_version_label_rec IN OUT NOCOPY csi_datastructures_pub.version_label_rec,
23075 p_version_label_hist_id IN NUMBER ,
23076 x_nearest_full_dump IN OUT NOCOPY DATE
23077 ) IS
23078
23079 CURSOR Int_nearest_full_dump(p_ver_label_hist_id IN NUMBER ) IS
23080 SELECT
23081 CREATION_DATE ,
23082 NEW_VERSION_LABEL ,
23083 NEW_DESCRIPTION ,
23084 NEW_DATE_TIME_STAMP ,
23085 NEW_ACTIVE_START_DATE ,
23086 NEW_ACTIVE_END_DATE ,
23087 NEW_CONTEXT ,
23088 NEW_ATTRIBUTE1 ,
23089 NEW_ATTRIBUTE2 ,
23090 NEW_ATTRIBUTE3 ,
23091 NEW_ATTRIBUTE4 ,
23092 NEW_ATTRIBUTE5 ,
23093 NEW_ATTRIBUTE6 ,
23094 NEW_ATTRIBUTE7 ,
23095 NEW_ATTRIBUTE8 ,
23096 NEW_ATTRIBUTE9 ,
23097 NEW_ATTRIBUTE10 ,
23098 NEW_ATTRIBUTE11 ,
23099 NEW_ATTRIBUTE12 ,
23100 NEW_ATTRIBUTE13 ,
23101 NEW_ATTRIBUTE14 ,
23102 NEW_ATTRIBUTE15
23103 FROM CSI_I_VERSION_LABELS_H
23104 WHERE version_label_history_id = p_ver_label_hist_id
23105 and full_dump_flag = 'Y' ;
23106
23107 BEGIN
23108
23109 FOR C1 IN Int_nearest_full_dump(p_version_label_hist_id ) LOOP
23110 x_nearest_full_dump := C1.creation_date;
23111 x_version_label_rec.VERSION_LABEL := C1.NEW_VERSION_LABEL;
23112 x_version_label_rec.DESCRIPTION := C1.NEW_DESCRIPTION;
23113 x_version_label_rec.DATE_TIME_STAMP := C1.NEW_DATE_TIME_STAMP;
23114 x_version_label_rec.ACTIVE_START_DATE := C1.NEW_ACTIVE_START_DATE;
23115 x_version_label_rec.ACTIVE_END_DATE := C1.NEW_ACTIVE_END_DATE;
23116 x_version_label_rec.CONTEXT := C1.NEW_CONTEXT;
23117 x_version_label_rec.ATTRIBUTE1 := C1.NEW_ATTRIBUTE1;
23118 x_version_label_rec.ATTRIBUTE2 := C1.NEW_ATTRIBUTE2;
23119 x_version_label_rec.ATTRIBUTE3 := C1.NEW_ATTRIBUTE3;
23120 x_version_label_rec.ATTRIBUTE4 := C1.NEW_ATTRIBUTE4;
23121 x_version_label_rec.ATTRIBUTE5 := C1.NEW_ATTRIBUTE5;
23122 x_version_label_rec.ATTRIBUTE6 := C1.NEW_ATTRIBUTE6;
23123 x_version_label_rec.ATTRIBUTE7 := C1.NEW_ATTRIBUTE7;
23124 x_version_label_rec.ATTRIBUTE8 := C1.NEW_ATTRIBUTE8;
23125 x_version_label_rec.ATTRIBUTE9 := C1.NEW_ATTRIBUTE9;
23126 x_version_label_rec.ATTRIBUTE10 := C1.NEW_ATTRIBUTE10;
23127 x_version_label_rec.ATTRIBUTE11 := C1.NEW_ATTRIBUTE11;
23128 x_version_label_rec.ATTRIBUTE12 := C1.NEW_ATTRIBUTE12;
23129 x_version_label_rec.ATTRIBUTE13 := C1.NEW_ATTRIBUTE13;
23130 x_version_label_rec.ATTRIBUTE14 := C1.NEW_ATTRIBUTE14;
23131 x_version_label_rec.ATTRIBUTE15 := C1.NEW_ATTRIBUTE15;
23132
23133 END LOOP;
23134 END Initialize_ver_rec ;
23135
23136 /*----------------------------------------------------------*/
23137 /* Procedure name: Construct_ver_from_hist */
23138 /* Description : This procudure recontructs the record */
23139 /* from the history */
23140 /*----------------------------------------------------------*/
23141
23142 PROCEDURE Construct_ver_from_hist
23143 (
23144 x_version_label_tbl IN OUT NOCOPY csi_datastructures_pub.version_label_tbl,
23145 p_time_stamp IN DATE
23146 ) IS
23147
23148 l_nearest_full_dump DATE := p_time_stamp;
23149 l_ver_label_hist_id NUMBER;
23150
23151 CURSOR get_nearest_full_dump(p_ver_label_id IN NUMBER ,p_time IN DATE) IS
23152 SELECT
23153 MAX(version_label_history_id)
23154 FROM CSI_I_VERSION_LABELS_H
23155 WHERE creation_date <= p_time
23156 and version_label_id = p_ver_label_id
23157 and full_dump_flag = 'Y' ;
23158
23159 CURSOR get_ver_label_hist(p_ver_label_id IN NUMBER ,
23160 p_nearest_full_dump IN DATE,
23161 p_time IN DATE ) IS
23162 SELECT
23163 OLD_VERSION_LABEL ,
23164 NEW_VERSION_LABEL ,
23165 OLD_DESCRIPTION ,
23166 NEW_DESCRIPTION ,
23167 OLD_DATE_TIME_STAMP ,
23168 NEW_DATE_TIME_STAMP ,
23169 OLD_ACTIVE_START_DATE ,
23170 NEW_ACTIVE_START_DATE ,
23171 OLD_ACTIVE_END_DATE ,
23172 NEW_ACTIVE_END_DATE ,
23173 OLD_CONTEXT ,
23174 NEW_CONTEXT ,
23175 OLD_ATTRIBUTE1 ,
23176 NEW_ATTRIBUTE1 ,
23177 OLD_ATTRIBUTE2 ,
23178 NEW_ATTRIBUTE2 ,
23179 OLD_ATTRIBUTE3 ,
23180 NEW_ATTRIBUTE3 ,
23181 OLD_ATTRIBUTE4 ,
23182 NEW_ATTRIBUTE4 ,
23183 OLD_ATTRIBUTE5 ,
23184 NEW_ATTRIBUTE5 ,
23185 OLD_ATTRIBUTE6 ,
23186 NEW_ATTRIBUTE6 ,
23187 OLD_ATTRIBUTE7 ,
23188 NEW_ATTRIBUTE7 ,
23189 OLD_ATTRIBUTE8 ,
23190 NEW_ATTRIBUTE8 ,
23191 OLD_ATTRIBUTE9 ,
23192 NEW_ATTRIBUTE9 ,
23193 OLD_ATTRIBUTE10 ,
23194 NEW_ATTRIBUTE10 ,
23195 OLD_ATTRIBUTE11 ,
23196 NEW_ATTRIBUTE11 ,
23197 OLD_ATTRIBUTE12 ,
23198 NEW_ATTRIBUTE12 ,
23199 OLD_ATTRIBUTE13 ,
23200 NEW_ATTRIBUTE13 ,
23201 OLD_ATTRIBUTE14 ,
23202 NEW_ATTRIBUTE14 ,
23203 OLD_ATTRIBUTE15 ,
23204 NEW_ATTRIBUTE15
23205 FROM CSI_I_VERSION_LABELS_H
23206 WHERE creation_date <= p_time
23207 and creation_date >= p_nearest_full_dump
23208 and version_label_id = p_ver_label_id
23209 ORDER BY creation_date;
23210
23211 l_time_stamp DATE := p_time_stamp;
23212
23213 BEGIN
23214
23215 FOR i IN x_version_label_tbl.FIRST..x_version_label_tbl.LAST LOOP
23216
23217 OPEN get_nearest_full_dump(x_version_label_tbl(i).version_label_id, p_time_stamp);
23218 FETCH get_nearest_full_dump INTO l_ver_label_hist_id;
23219 CLOSE get_nearest_full_dump;
23220
23221 IF l_ver_label_hist_id IS NOT NULL THEN
23222 Initialize_ver_rec( x_version_label_tbl(i), l_ver_label_hist_id ,l_nearest_full_dump);
23223 ELSE
23224 Initialize_ver_rec_no_dump( x_version_label_tbl(i), x_version_label_tbl(i).version_label_id, l_time_stamp);
23225
23226 l_nearest_full_dump := l_time_stamp;
23227 -- If the user chooses a date before the creation date of the instance
23228 -- then raise an error
23229 IF p_time_stamp < l_time_stamp THEN
23230 FND_MESSAGE.SET_NAME('CSI','CSI_H_DATE_BEFORE_CRE_DATE');
23231 FND_MESSAGE.SET_TOKEN('CREATION_DATE',to_char(l_time_stamp, 'DD-MON-YYYY HH24:MI:SS'));
23232 FND_MESSAGE.SET_TOKEN('USER_DATE',to_char(p_time_stamp, 'DD-MON-YYYY HH24:MI:SS'));
23233 FND_MSG_PUB.Add;
23234 RAISE FND_API.G_EXC_ERROR;
23235 END IF;
23236
23237 END IF;
23238
23239 FOR C2 IN get_ver_label_hist(x_version_label_tbl(i).version_label_id ,l_nearest_full_dump,p_time_stamp ) LOOP
23240
23241 IF (C2.OLD_VERSION_LABEL IS NULL AND C2.NEW_VERSION_LABEL IS NOT NULL)
23242 OR (C2.OLD_VERSION_LABEL IS NOT NULL AND C2.NEW_VERSION_LABEL IS NULL)
23243 OR (C2.OLD_VERSION_LABEL <> C2.NEW_VERSION_LABEL) THEN
23244 x_version_label_tbl(i).VERSION_LABEL := C2.NEW_VERSION_LABEL;
23245 END IF;
23246
23247 IF (C2.OLD_DESCRIPTION IS NULL AND C2.NEW_DESCRIPTION IS NOT NULL)
23248 OR (C2.OLD_DESCRIPTION IS NOT NULL AND C2.NEW_DESCRIPTION IS NULL)
23249 OR (C2.OLD_DESCRIPTION <> C2.NEW_DESCRIPTION) THEN
23250 x_version_label_tbl(i).DESCRIPTION := C2.NEW_DESCRIPTION;
23251 END IF;
23252
23253 IF (C2.OLD_DATE_TIME_STAMP IS NULL AND C2.NEW_DATE_TIME_STAMP IS NOT NULL)
23254 OR (C2.OLD_DATE_TIME_STAMP IS NOT NULL AND C2.NEW_DATE_TIME_STAMP IS NULL)
23255 OR (C2.OLD_DATE_TIME_STAMP <> C2.NEW_DATE_TIME_STAMP) THEN
23256 x_version_label_tbl(i).DATE_TIME_STAMP := C2.NEW_DATE_TIME_STAMP;
23257 END IF;
23258
23259 IF (C2.OLD_ACTIVE_START_DATE IS NULL AND C2.NEW_ACTIVE_START_DATE IS NOT NULL)
23260 OR (C2.OLD_ACTIVE_START_DATE IS NOT NULL AND C2.NEW_ACTIVE_START_DATE IS NULL)
23261 OR (C2.OLD_ACTIVE_START_DATE <> C2.NEW_ACTIVE_START_DATE) THEN
23262 x_version_label_tbl(i).ACTIVE_START_DATE := C2.NEW_ACTIVE_START_DATE;
23263 END IF;
23264
23265
23266 IF (C2.OLD_ACTIVE_END_DATE IS NULL AND C2.NEW_ACTIVE_END_DATE IS NOT NULL)
23267 OR (C2.OLD_ACTIVE_END_DATE IS NOT NULL AND C2.NEW_ACTIVE_END_DATE IS NULL)
23268 OR (C2.OLD_ACTIVE_END_DATE <> C2.NEW_ACTIVE_END_DATE) THEN
23269 x_version_label_tbl(i).ACTIVE_END_DATE := C2.NEW_ACTIVE_END_DATE;
23270 END IF;
23271
23272
23273 IF (C2.OLD_CONTEXT IS NULL AND C2.NEW_CONTEXT IS NOT NULL)
23274 OR (C2.OLD_CONTEXT IS NOT NULL AND C2.NEW_CONTEXT IS NULL)
23275 OR (C2.OLD_CONTEXT <> C2.NEW_CONTEXT) THEN
23276 x_version_label_tbl(i).CONTEXT := C2.NEW_CONTEXT;
23277 END IF;
23278
23279 IF (C2.OLD_ATTRIBUTE1 IS NULL AND C2.NEW_ATTRIBUTE1 IS NOT NULL)
23280 OR (C2.OLD_ATTRIBUTE1 IS NOT NULL AND C2.NEW_ATTRIBUTE1 IS NULL)
23281 OR (C2.OLD_ATTRIBUTE1 <> C2.NEW_ATTRIBUTE1) THEN
23282 x_version_label_tbl(i).ATTRIBUTE1 := C2.NEW_ATTRIBUTE1;
23283 END IF;
23284
23285 IF (C2.OLD_ATTRIBUTE2 IS NULL AND C2.NEW_ATTRIBUTE2 IS NOT NULL)
23286 OR (C2.OLD_ATTRIBUTE2 IS NOT NULL AND C2.NEW_ATTRIBUTE2 IS NULL)
23287 OR (C2.OLD_ATTRIBUTE2 <> C2.NEW_ATTRIBUTE2) THEN
23288 x_version_label_tbl(i).ATTRIBUTE2 := C2.NEW_ATTRIBUTE2;
23289 END IF;
23290
23291 IF (C2.OLD_ATTRIBUTE3 IS NULL AND C2.NEW_ATTRIBUTE3 IS NOT NULL)
23292 OR (C2.OLD_ATTRIBUTE3 IS NOT NULL AND C2.NEW_ATTRIBUTE3 IS NULL)
23293 OR (C2.OLD_ATTRIBUTE3 <> C2.NEW_ATTRIBUTE3) THEN
23294 x_version_label_tbl(i).ATTRIBUTE3 := C2.NEW_ATTRIBUTE3;
23295 END IF;
23296
23297 IF (C2.OLD_ATTRIBUTE4 IS NULL AND C2.NEW_ATTRIBUTE4 IS NOT NULL)
23298 OR (C2.OLD_ATTRIBUTE4 IS NOT NULL AND C2.NEW_ATTRIBUTE4 IS NULL)
23299 OR (C2.OLD_ATTRIBUTE4 <> C2.NEW_ATTRIBUTE4) THEN
23300 x_version_label_tbl(i).ATTRIBUTE4 := C2.NEW_ATTRIBUTE4;
23301 END IF;
23302
23303
23304 IF (C2.OLD_ATTRIBUTE5 IS NULL AND C2.NEW_ATTRIBUTE5 IS NOT NULL)
23305 OR (C2.OLD_ATTRIBUTE5 IS NOT NULL AND C2.NEW_ATTRIBUTE5 IS NULL)
23306 OR (C2.OLD_ATTRIBUTE5 <> C2.NEW_ATTRIBUTE5) THEN
23307 x_version_label_tbl(i).ATTRIBUTE5 := C2.NEW_ATTRIBUTE5;
23308 END IF;
23309
23310
23311 IF (C2.OLD_ATTRIBUTE6 IS NULL AND C2.NEW_ATTRIBUTE6 IS NOT NULL)
23312 OR (C2.OLD_ATTRIBUTE6 IS NOT NULL AND C2.NEW_ATTRIBUTE6 IS NULL)
23313 OR (C2.OLD_ATTRIBUTE6 <> C2.NEW_ATTRIBUTE6) THEN
23314 x_version_label_tbl(i).ATTRIBUTE6 := C2.NEW_ATTRIBUTE6;
23315 END IF;
23316
23317 IF (C2.OLD_ATTRIBUTE7 IS NULL AND C2.NEW_ATTRIBUTE7 IS NOT NULL)
23318 OR (C2.OLD_ATTRIBUTE7 IS NOT NULL AND C2.NEW_ATTRIBUTE7 IS NULL)
23319 OR (C2.OLD_ATTRIBUTE7 <> C2.NEW_ATTRIBUTE7) THEN
23320 x_version_label_tbl(i).ATTRIBUTE7 := C2.NEW_ATTRIBUTE7;
23321 END IF;
23322
23323 IF (C2.OLD_ATTRIBUTE8 IS NULL AND C2.NEW_ATTRIBUTE8 IS NOT NULL)
23324 OR (C2.OLD_ATTRIBUTE8 IS NOT NULL AND C2.NEW_ATTRIBUTE8 IS NULL)
23325 OR (C2.OLD_ATTRIBUTE8 <> C2.NEW_ATTRIBUTE8) THEN
23326 x_version_label_tbl(i).ATTRIBUTE8 := C2.NEW_ATTRIBUTE8;
23327 END IF;
23328
23329 IF (C2.OLD_ATTRIBUTE9 IS NULL AND C2.NEW_ATTRIBUTE9 IS NOT NULL)
23330 OR (C2.OLD_ATTRIBUTE9 IS NOT NULL AND C2.NEW_ATTRIBUTE9 IS NULL)
23331 OR (C2.OLD_ATTRIBUTE9 <> C2.NEW_ATTRIBUTE9) THEN
23332 x_version_label_tbl(i).ATTRIBUTE3 := C2.NEW_ATTRIBUTE3;
23333 END IF;
23334
23335
23336 IF (C2.OLD_ATTRIBUTE10 IS NULL AND C2.NEW_ATTRIBUTE10 IS NOT NULL)
23337 OR (C2.OLD_ATTRIBUTE10 IS NOT NULL AND C2.NEW_ATTRIBUTE10 IS NULL)
23338 OR (C2.OLD_ATTRIBUTE10 <> C2.NEW_ATTRIBUTE10) THEN
23339 x_version_label_tbl(i).ATTRIBUTE10 := C2.NEW_ATTRIBUTE10;
23340 END IF;
23341
23342
23343
23344 IF (C2.OLD_ATTRIBUTE11 IS NULL AND C2.NEW_ATTRIBUTE11 IS NOT NULL)
23345 OR (C2.OLD_ATTRIBUTE11 IS NOT NULL AND C2.NEW_ATTRIBUTE11 IS NULL)
23346 OR (C2.OLD_ATTRIBUTE11 <> C2.NEW_ATTRIBUTE11) THEN
23347 x_version_label_tbl(i).ATTRIBUTE11 := C2.NEW_ATTRIBUTE11;
23348 END IF;
23349
23350 IF (C2.OLD_ATTRIBUTE12 IS NULL AND C2.NEW_ATTRIBUTE12 IS NOT NULL)
23351 OR (C2.OLD_ATTRIBUTE12 IS NOT NULL AND C2.NEW_ATTRIBUTE12 IS NULL)
23352 OR (C2.OLD_ATTRIBUTE12 <> C2.NEW_ATTRIBUTE12) THEN
23353 x_version_label_tbl(i).ATTRIBUTE12 := C2.NEW_ATTRIBUTE12;
23354 END IF;
23355
23356
23357 IF (C2.OLD_ATTRIBUTE13 IS NULL AND C2.NEW_ATTRIBUTE13 IS NOT NULL)
23358 OR (C2.OLD_ATTRIBUTE13 IS NOT NULL AND C2.NEW_ATTRIBUTE13 IS NULL)
23359 OR (C2.OLD_ATTRIBUTE13 <> C2.NEW_ATTRIBUTE13) THEN
23360 x_version_label_tbl(i).ATTRIBUTE13 := C2.NEW_ATTRIBUTE13;
23361 END IF;
23362
23363
23364 IF (C2.OLD_ATTRIBUTE14 IS NULL AND C2.NEW_ATTRIBUTE14 IS NOT NULL)
23365 OR (C2.OLD_ATTRIBUTE14 IS NOT NULL AND C2.NEW_ATTRIBUTE14 IS NULL)
23366 OR (C2.OLD_ATTRIBUTE14 <> C2.NEW_ATTRIBUTE14) THEN
23367 x_version_label_tbl(i).ATTRIBUTE14 := C2.NEW_ATTRIBUTE14;
23368 END IF;
23369
23370 IF (C2.OLD_ATTRIBUTE15 IS NULL AND C2.NEW_ATTRIBUTE15 IS NOT NULL)
23371 OR (C2.OLD_ATTRIBUTE15 IS NOT NULL AND C2.NEW_ATTRIBUTE15 IS NULL)
23372 OR (C2.OLD_ATTRIBUTE15 <> C2.NEW_ATTRIBUTE15) THEN
23373 x_version_label_tbl(i).ATTRIBUTE15 := C2.NEW_ATTRIBUTE15;
23374 END IF;
23375
23376
23377 END LOOP;
23378 END LOOP;
23379 EXCEPTION
23380 WHEN NO_DATA_FOUND THEN
23381 NULL;
23382 END Construct_ver_from_hist;
23383
23384
23385 /*--------------------------------------------------------*/
23386 /* Procedure name: Get_Ver_Column_Values */
23387 /* Description : This procudure gets the column values */
23388 /* for the Dynamic SQL */
23389 /*--------------------------------------------------------*/
23390
23391 PROCEDURE Get_Ver_Column_Values
23392 (
23393 p_get_ver_cursor_id IN NUMBER ,
23394 x_ver_label_query_rec OUT NOCOPY csi_datastructures_pub.version_label_rec
23395 ) IS
23396 BEGIN
23397
23398 dbms_sql.column_value(p_get_ver_cursor_id, 1, x_ver_label_query_rec.version_label_id);
23399 dbms_sql.column_value(p_get_ver_cursor_id, 2, x_ver_label_query_rec.instance_id);
23400 dbms_sql.column_value(p_get_ver_cursor_id, 3, x_ver_label_query_rec.version_label);
23401 dbms_sql.column_value(p_get_ver_cursor_id, 4, x_ver_label_query_rec.date_time_stamp);
23402 dbms_sql.column_value(p_get_ver_cursor_id, 5, x_ver_label_query_rec.description );
23403 dbms_sql.column_value(p_get_ver_cursor_id, 6, x_ver_label_query_rec.active_start_date);
23404 dbms_sql.column_value(p_get_ver_cursor_id, 7, x_ver_label_query_rec.active_end_date);
23405 dbms_sql.column_value(p_get_ver_cursor_id, 8, x_ver_label_query_rec.context);
23406 dbms_sql.column_value(p_get_ver_cursor_id, 9, x_ver_label_query_rec.attribute1);
23407 dbms_sql.column_value(p_get_ver_cursor_id, 10, x_ver_label_query_rec.attribute2);
23408 dbms_sql.column_value(p_get_ver_cursor_id, 11, x_ver_label_query_rec.attribute3);
23409 dbms_sql.column_value(p_get_ver_cursor_id, 12, x_ver_label_query_rec.attribute4);
23410 dbms_sql.column_value(p_get_ver_cursor_id, 13, x_ver_label_query_rec.attribute5);
23411 dbms_sql.column_value(p_get_ver_cursor_id, 14, x_ver_label_query_rec.attribute6);
23412 dbms_sql.column_value(p_get_ver_cursor_id, 15, x_ver_label_query_rec.attribute7);
23413 dbms_sql.column_value(p_get_ver_cursor_id, 16, x_ver_label_query_rec.attribute8);
23414 dbms_sql.column_value(p_get_ver_cursor_id, 17, x_ver_label_query_rec.attribute9);
23415 dbms_sql.column_value(p_get_ver_cursor_id, 18, x_ver_label_query_rec.attribute10);
23416 dbms_sql.column_value(p_get_ver_cursor_id, 19, x_ver_label_query_rec.attribute11);
23417 dbms_sql.column_value(p_get_ver_cursor_id, 20, x_ver_label_query_rec.attribute12);
23418 dbms_sql.column_value(p_get_ver_cursor_id, 21, x_ver_label_query_rec.attribute13);
23419 dbms_sql.column_value(p_get_ver_cursor_id, 22, x_ver_label_query_rec.attribute14);
23420 dbms_sql.column_value(p_get_ver_cursor_id, 23, x_ver_label_query_rec.attribute15);
23421 dbms_sql.column_value(p_get_ver_cursor_id, 29, x_ver_label_query_rec.object_version_number);
23422
23423 END Get_Ver_Column_Values;
23424
23425
23426 /*----------------------------------------------------------*/
23427 /* Procedure name: Define_Ver_Columns */
23428 /* Description : This procudure defines the columns */
23429 /* for the Dynamic SQL */
23430 /*----------------------------------------------------------*/
23431
23432 PROCEDURE Define_Ver_Columns
23433 (
23434 p_get_ver_cursor_id IN NUMBER
23435 ) IS
23436
23437 l_ver_label_rec csi_datastructures_pub.version_label_rec;
23438
23439 BEGIN
23440
23441 dbms_sql.define_column(p_get_ver_cursor_id, 1, l_ver_label_rec.version_label_id);
23442 dbms_sql.define_column(p_get_ver_cursor_id, 2, l_ver_label_rec.instance_id);
23443 dbms_sql.define_column(p_get_ver_cursor_id, 3, l_ver_label_rec.version_label,30);
23444 dbms_sql.define_column(p_get_ver_cursor_id, 4, l_ver_label_rec.date_time_stamp);
23445 dbms_sql.define_column(p_get_ver_cursor_id, 5, l_ver_label_rec.description ,30);
23446 dbms_sql.define_column(p_get_ver_cursor_id, 6, l_ver_label_rec.active_start_date);
23447 dbms_sql.define_column(p_get_ver_cursor_id, 7, l_ver_label_rec.active_end_date);
23448 dbms_sql.define_column(p_get_ver_cursor_id, 8, l_ver_label_rec.context,30);
23449 dbms_sql.define_column(p_get_ver_cursor_id, 9, l_ver_label_rec.attribute1,150);
23450 dbms_sql.define_column(p_get_ver_cursor_id, 10, l_ver_label_rec.attribute2,150);
23451 dbms_sql.define_column(p_get_ver_cursor_id, 11, l_ver_label_rec.attribute3,150);
23452 dbms_sql.define_column(p_get_ver_cursor_id, 12, l_ver_label_rec.attribute4,150);
23453 dbms_sql.define_column(p_get_ver_cursor_id, 13, l_ver_label_rec.attribute5,150);
23454 dbms_sql.define_column(p_get_ver_cursor_id, 14, l_ver_label_rec.attribute6,150);
23455 dbms_sql.define_column(p_get_ver_cursor_id, 15, l_ver_label_rec.attribute7,150);
23456 dbms_sql.define_column(p_get_ver_cursor_id, 16, l_ver_label_rec.attribute8,150);
23457 dbms_sql.define_column(p_get_ver_cursor_id, 17, l_ver_label_rec.attribute9,150);
23458 dbms_sql.define_column(p_get_ver_cursor_id, 18, l_ver_label_rec.attribute10,150);
23459 dbms_sql.define_column(p_get_ver_cursor_id, 19, l_ver_label_rec.attribute11,150);
23460 dbms_sql.define_column(p_get_ver_cursor_id, 20, l_ver_label_rec.attribute12,150);
23461 dbms_sql.define_column(p_get_ver_cursor_id, 21, l_ver_label_rec.attribute13,150);
23462 dbms_sql.define_column(p_get_ver_cursor_id, 22, l_ver_label_rec.attribute14,150);
23463 dbms_sql.define_column(p_get_ver_cursor_id, 23, l_ver_label_rec.attribute15,150);
23464 dbms_sql.define_column(p_get_ver_cursor_id, 29, l_ver_label_rec.object_version_number);
23465
23466 END Define_Ver_Columns;
23467
23468 /*----------------------------------------------------------*/
23469 /* Procedure name: Bind_Ver_variable */
23470 /* Description : Procedure used to generate the where */
23471 /* cluase for Party relationship */
23472 /*----------------------------------------------------------*/
23473 PROCEDURE Bind_Ver_variable
23474 (
23475 p_ver_label_query_rec IN csi_datastructures_pub.version_label_query_rec,
23476 p_get_ver_cursor_id IN NUMBER
23477 ) IS
23478
23479 BEGIN
23480 IF( (p_ver_label_query_rec.version_label_id IS NOT NULL)
23481 AND (p_ver_label_query_rec.version_label_id <> FND_API.G_MISS_NUM)) THEN
23482 DBMS_SQL.BIND_VARIABLE(p_get_ver_cursor_id, ':version_label_id', p_ver_label_query_rec.version_label_id);
23483 END IF;
23484
23485 IF( (p_ver_label_query_rec.instance_id IS NOT NULL)
23486 AND (p_ver_label_query_rec.instance_id <> FND_API.G_MISS_NUM)) THEN
23487 DBMS_SQL.BIND_VARIABLE(p_get_ver_cursor_id, ':instance_id', p_ver_label_query_rec.instance_id);
23488 END IF;
23489
23490 IF( (p_ver_label_query_rec.version_label IS NOT NULL)
23491 AND (p_ver_label_query_rec.version_label <> FND_API.G_MISS_CHAR)) THEN
23492 DBMS_SQL.BIND_VARIABLE(p_get_ver_cursor_id, ':version_label', p_ver_label_query_rec.version_label);
23493 END IF;
23494
23495 IF( (p_ver_label_query_rec.date_time_stamp IS NOT NULL)
23496 AND (p_ver_label_query_rec.date_time_stamp <> FND_API.G_MISS_DATE)) THEN
23497 DBMS_SQL.BIND_VARIABLE(p_get_ver_cursor_id, ':date_time_stamp', p_ver_label_query_rec.date_time_stamp);
23498 END IF;
23499
23500 END Bind_Ver_variable;
23501
23502
23503 /*----------------------------------------------------------*/
23504 /* Procedure name: Gen_Acct_Where_Clause */
23505 /* Description : Procedure used to generate the where */
23506 /* cluase for Party relationship */
23507 /*----------------------------------------------------------*/
23508
23509 PROCEDURE Gen_Ver_Where_Clause
23510 ( p_ver_label_query_rec IN csi_datastructures_pub.version_label_query_rec
23511 ,x_where_clause OUT NOCOPY VARCHAR2
23512 ) IS
23513
23514 BEGIN
23515 -- Assign null at the start
23516 x_where_clause := '';
23517
23518 IF (( p_ver_label_query_rec.version_label_id IS NOT NULL) AND
23519 ( p_ver_label_query_rec.version_label_id <> FND_API.G_MISS_NUM)) THEN
23520 x_where_clause := ' version_label_id = :version_label_id ';
23521 ELSIF ( p_ver_label_query_rec.version_label_id IS NULL) THEN
23522 x_where_clause := ' version_label_id IS NULL ';
23523 END IF;
23524
23525 IF ((p_ver_label_query_rec.instance_id IS NOT NULL) AND
23526 (p_ver_label_query_rec.instance_id <> FND_API.G_MISS_NUM)) THEN
23527 IF x_where_clause IS NULL THEN
23528 x_where_clause := ' instance_id = :instance_id ';
23529 ELSE
23530 x_where_clause := x_where_clause||' AND '||' instance_id = :instance_id ';
23531 END IF;
23532 ELSIF (p_ver_label_query_rec.instance_id IS NULL) THEN
23533 IF x_where_clause IS NULL THEN
23534 x_where_clause := ' instance_id IS NULL ';
23535 ELSE
23536 x_where_clause := x_where_clause||' AND '||' instance_id IS NULL ';
23537 END IF;
23538 END IF;
23539
23540 IF ((p_ver_label_query_rec.version_label IS NOT NULL) AND
23541 (p_ver_label_query_rec.version_label <> FND_API.G_MISS_CHAR)) THEN
23542 IF x_where_clause IS NULL THEN
23543 x_where_clause := ' version_label = :version_label ';
23544 ELSE
23545 x_where_clause := x_where_clause||' AND '||' version_label = :version_label ';
23546 END IF;
23547 ELSIF (p_ver_label_query_rec.version_label IS NULL) THEN
23548 IF x_where_clause IS NULL THEN
23549 x_where_clause := ' version_label IS NULL ';
23550 ELSE
23551 x_where_clause := x_where_clause||' AND '||' version_label IS NULL ';
23552 END IF;
23553 END IF ;
23554
23555 IF ((p_ver_label_query_rec.date_time_stamp IS NOT NULL) AND
23556 (p_ver_label_query_rec.date_time_stamp <> FND_API.G_MISS_DATE)) THEN
23557 IF x_where_clause IS NULL THEN
23558 x_where_clause := ' date_time_stamp = :date_time_stamp ';
23559 ELSE
23560 x_where_clause := x_where_clause||' AND '||
23561 ' date_time_stamp = :date_time_stamp ';
23562 END IF;
23563 ELSIF (p_ver_label_query_rec.date_time_stamp IS NULL) THEN
23564 IF x_where_clause IS NULL THEN
23565 x_where_clause := ' date_time_stamp IS NULL ';
23566 ELSE
23567 x_where_clause := x_where_clause||' AND '||
23568 ' date_time_stamp IS NULL ';
23569 END IF;
23570
23571
23572 END IF;
23573
23574 END Gen_Ver_Where_Clause;
23575
23576
23577 /*-------------------------------------------*/
23578 /* Pocedure name: Create_version_label */
23579 /* Description : procedure for creating */
23580 /* version label for */
23581 /* an Item Instance */
23582 /*-------------------------------------------*/
23583
23584 PROCEDURE create_version_label
23585 ( p_api_version IN NUMBER
23586 ,p_commit IN VARCHAR2
23587 ,p_init_msg_list IN VARCHAR2
23588 ,p_validation_level IN NUMBER
23589 ,p_version_label_rec IN OUT NOCOPY csi_datastructures_pub.version_label_rec
23590 ,p_txn_rec IN OUT NOCOPY csi_datastructures_pub.transaction_rec
23591 ,x_return_status OUT NOCOPY VARCHAR2
23592 ,x_msg_count OUT NOCOPY NUMBER
23593 ,x_msg_data OUT NOCOPY VARCHAR2
23594 ) IS
23595
23596 l_api_name CONSTANT VARCHAR2(30) := 'CREATE_VERSION_LABEL';
23597 l_api_version CONSTANT NUMBER := 1.0 ;
23598 l_debug_level NUMBER ;
23599 l_process_flag BOOLEAN := TRUE ;
23600 l_msg_index NUMBER ;
23601 l_version_label_rec csi_datastructures_pub.version_label_rec;
23602 l_version_label_hist_id NUMBER ;
23603 l_flag VARCHAR2(1) :='N';
23604
23605 BEGIN
23606 -- Standard Start of API savepoint
23607 SAVEPOINT create_version_label_pvt;
23608
23609 -- Standard call to check for call compatibility.
23610 IF NOT FND_API.Compatible_API_Call (l_api_version ,
23611 p_api_version ,
23612 l_api_name ,
23613 G_PKG_NAME )
23614 THEN
23615 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
23616 END IF;
23617
23618 -- Initialize message list if p_init_msg_list is set to TRUE.
23619 IF FND_API.to_Boolean( p_init_msg_list ) THEN
23620 FND_MSG_PUB.initialize;
23621 END IF;
23622
23623 -- Initialize API return status to success
23624 x_return_status := FND_API.G_RET_STS_SUCCESS;
23625
23626 -- Check the profile option debug_level for debug message reporting
23627 l_debug_level:=fnd_profile.value('CSI_DEBUG_LEVEL');
23628
23629 -- If debug_level = 1 then dump the procedure name
23630 IF (l_debug_level > 0) THEN
23631 csi_gen_utility_pvt.put_line ( 'create_version_label');
23632 END IF;
23633
23634 -- If the debug level = 2 then dump all the parameters values.
23635 IF (l_debug_level > 1) THEN
23636 csi_gen_utility_pvt.put_line ( 'create_version_label:'||
23637 p_api_version ||'-'||
23638 p_commit ||'-'||
23639 p_init_msg_list );
23640 -- Dump the records in the log file
23641 csi_gen_utility_pvt.dump_version_label_rec(p_version_label_rec);
23642 END IF;
23643
23644 -- Start API body
23645 --
23646 -- Check if all the required parameters are passed
23647 CSI_Instance_parties_vld_pvt.Check_Reqd_Param_num
23648 ( p_version_label_rec.INSTANCE_ID ,
23649 ' p_version_label_rec.INSTANCE_ID ',
23650 l_api_name );
23651
23652 CSI_Instance_parties_vld_pvt.Check_Reqd_Param_char
23653 ( p_version_label_rec.version_label ,
23654 ' p_version_label_rec.version_label ',
23655 l_api_name );
23656
23657 CSI_Instance_parties_vld_pvt.Check_Reqd_Param_date
23658 ( p_version_label_rec.date_time_stamp ,
23659 ' p_version_label_rec.date_time_stamp ',
23660 l_api_name );
23661 -- Validate the Instance id exists in csi_item_instances
23662 IF NOT( CSI_Instance_parties_vld_pvt.Is_InstanceID_Valid
23663 (p_version_label_rec.INSTANCE_ID)) THEN
23664 RAISE FND_API.G_EXC_ERROR;
23665 END IF;
23666 -- If active_start_date is null or G_MISS value then assign sysdate
23667 IF ((p_version_label_rec.ACTIVE_START_DATE IS NULL ) OR
23668 ( p_version_label_rec.ACTIVE_START_DATE = FND_API.G_MISS_DATE)) THEN
23669 p_version_label_rec.ACTIVE_START_DATE := SYSDATE;
23670 END IF;
23671 -- verify if the active_start_date is valid
23672 IF NOT(CSI_Item_Instance_Vld_Pvt.Is_Ver_StartDate_Valid
23673 (p_version_label_rec.ACTIVE_START_DATE,
23674 p_version_label_rec.ACTIVE_END_DATE ,
23675 p_version_label_rec.INSTANCE_ID )) THEN
23676 RAISE FND_API.G_EXC_ERROR;
23677 END IF;
23678 -- Verify if the active_end_date is valid
23679 IF ((p_version_label_rec.ACTIVE_END_DATE is NOT NULL) AND
23680 (p_version_label_rec.ACTIVE_END_DATE <> FND_API.G_MISS_DATE )) THEN
23681 IF NOT(CSI_Item_Instance_vld_pvt.Is_Ver_EndDate_Valid
23682 (p_version_label_rec.ACTIVE_START_DATE,
23683 p_version_label_rec.ACTIVE_END_DATE ,
23684 p_version_label_rec.INSTANCE_ID )) THEN
23685 RAISE FND_API.G_EXC_ERROR;
23686 END IF;
23687 END IF;
23688
23689 -- Initialize the datetimestamp to SYSDATE if it is null
23690 IF ((p_version_label_rec.date_time_stamp IS NULL ) OR
23691 ( p_version_label_rec.date_time_stamp = FND_API.G_MISS_DATE)) THEN
23692 p_version_label_rec.date_time_stamp := SYSDATE;
23693 END IF;
23694
23695 -- Verify the timestamp is less than the end effective date but greater then
23696 -- the start effective date
23697 IF p_version_label_rec.date_time_stamp is NOT NULL THEN
23698 IF NOT(CSI_Instance_parties_vld_pvt.Is_timestamp_Valid
23699 (p_version_label_rec.date_time_stamp,
23700 p_version_label_rec.INSTANCE_ID )) THEN
23701 RAISE FND_API.G_EXC_ERROR;
23702 END IF;
23703 END IF;
23704
23705
23706 IF p_version_label_rec.VERSION_LABEL_ID is NULL THEN
23707
23708 -- If the vesrion label id passed is null then generate from sequence
23709 -- and check if the value exists . If exists then generate
23710 -- again from the sequence till we get a value that does not exist
23711 while l_process_flag loop
23712 p_version_label_rec.VERSION_LABEL_ID := CSI_Instance_parties_vld_pvt.gen_ver_label_id;
23713 IF NOT(CSI_Instance_parties_vld_pvt.Is_Ver_labelID_exists(p_version_label_rec.VERSION_LABEL_ID,
23714 FALSE )) THEN
23715 l_process_flag := FALSE;
23716 END IF;
23717 end loop;
23718 ELSE
23719 -- Validate the version label id if exist then raise CSI_API_INVALID_PRIMARY_KEY error
23720 IF CSI_Instance_parties_vld_pvt.Is_Ver_labelID_exists(p_version_label_rec.VERSION_LABEL_ID,
23721 TRUE ) THEN
23722 RAISE FND_API.G_EXC_ERROR;
23723 END IF;
23724 END IF;
23725 -- call the Table handlers to insert the record
23726 CSI_I_VERSION_LABELS_PKG.Insert_Row(
23727 p_VERSION_LABEL_ID => p_version_label_rec.VERSION_LABEL_ID,
23728 p_INSTANCE_ID => p_version_label_rec.instance_id ,
23729 p_VERSION_LABEL => p_version_label_rec.version_label,
23730 p_DATE_TIME_STAMP => p_version_label_rec.date_time_stamp,
23731 p_DESCRIPTION => p_version_label_rec.description,
23732 p_ACTIVE_START_DATE => p_version_label_rec.active_start_date,
23733 p_ACTIVE_END_DATE => p_version_label_rec.active_end_date,
23734 p_CONTEXT => p_version_label_rec.context,
23735 p_ATTRIBUTE1 => p_version_label_rec.attribute1,
23736 p_ATTRIBUTE2 => p_version_label_rec.attribute2,
23737 p_ATTRIBUTE3 => p_version_label_rec.attribute3,
23738 p_ATTRIBUTE4 => p_version_label_rec.attribute4,
23739 p_ATTRIBUTE5 => p_version_label_rec.attribute5,
23740 p_ATTRIBUTE6 => p_version_label_rec.attribute6,
23741 p_ATTRIBUTE7 => p_version_label_rec.attribute7,
23742 p_ATTRIBUTE8 => p_version_label_rec.attribute8,
23743 p_ATTRIBUTE9 => p_version_label_rec.attribute9,
23744 p_ATTRIBUTE10 => p_version_label_rec.attribute10,
23745 p_ATTRIBUTE11 => p_version_label_rec.attribute11,
23746 p_ATTRIBUTE12 => p_version_label_rec.attribute12,
23747 p_ATTRIBUTE13 => p_version_label_rec.attribute13,
23748 p_ATTRIBUTE14 => p_version_label_rec.attribute14,
23749 p_ATTRIBUTE15 => p_version_label_rec.attribute15,
23750 p_CREATED_BY => FND_GLOBAL.USER_ID ,
23751 p_CREATION_DATE => SYSDATE ,
23752 p_LAST_UPDATED_BY => FND_GLOBAL.USER_ID ,
23753 p_LAST_UPDATE_DATE => SYSDATE ,
23754 p_LAST_UPDATE_LOGIN => FND_GLOBAL.LOGIN_ID ,
23755 p_OBJECT_VERSION_NUMBER => 1 );
23756
23757
23758 -- Call create_transaction to create txn log
23759 CSI_TRANSACTIONS_PVT.Create_transaction
23760 (
23761 p_api_version => p_api_version
23762 ,p_commit => p_commit
23763 ,p_init_msg_list => p_init_msg_list
23764 ,p_validation_level => p_validation_level
23765 ,p_Success_If_Exists_Flag => 'Y'
23766 ,P_transaction_rec => p_txn_rec
23767 ,x_return_status => x_return_status
23768 ,x_msg_count => x_msg_count
23769 ,x_msg_data => x_msg_data );
23770
23771 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
23772 l_msg_index := 1;
23773 WHILE x_msg_count > 0 LOOP
23774 x_msg_data := FND_MSG_PUB.GET(
23775 l_msg_index,
23776 FND_API.G_FALSE );
23777 CSI_gen_utility_pvt.put_line( 'message data = '||x_msg_data);
23778 l_msg_index := l_msg_index + 1;
23779 x_msg_count := x_msg_count - 1;
23780 END LOOP;
23781 RAISE FND_API.G_EXC_ERROR;
23782 END IF;
23783
23784 -- Generate a unique instance_party_history_id from the sequence
23785 l_version_label_hist_id := CSI_Instance_parties_vld_pvt.gen_ver_label_hist_id;
23786
23787 -- Call the table handlers to insert into history table
23788
23789 CSI_I_VERSION_LABELS_H_PKG.Insert_Row
23790 (
23791 px_VERSION_LABEL_HISTORY_ID => l_version_label_hist_id ,
23792 p_VERSION_LABEL_ID => p_version_label_rec.VERSION_LABEL_ID ,
23793 p_TRANSACTION_ID => p_txn_rec.TRANSACTION_ID ,
23794 p_OLD_VERSION_LABEL => NULL ,
23795 p_NEW_VERSION_LABEL => p_version_label_rec.VERSION_LABEL ,
23796 p_OLD_DESCRIPTION => NULL ,
23797 p_NEW_DESCRIPTION => p_version_label_rec.DESCRIPTION ,
23798 p_OLD_DATE_TIME_STAMP => NULL ,
23799 p_NEW_DATE_TIME_STAMP => p_version_label_rec.DATE_TIME_STAMP ,
23800 p_OLD_ACTIVE_START_DATE => NULL ,
23801 p_NEW_ACTIVE_START_DATE => p_version_label_rec.ACTIVE_START_DATE ,
23802 p_OLD_ACTIVE_END_DATE => NULL ,
23803 p_NEW_ACTIVE_END_DATE => p_version_label_rec.ACTIVE_END_DATE ,
23804 p_OLD_CONTEXT => NULL ,
23805 p_NEW_CONTEXT => p_version_label_rec.CONTEXT ,
23806 p_OLD_ATTRIBUTE1 => NULL ,
23807 p_NEW_ATTRIBUTE1 => p_version_label_rec.ATTRIBUTE1 ,
23808 p_OLD_ATTRIBUTE2 => NULL ,
23809 p_NEW_ATTRIBUTE2 => p_version_label_rec.ATTRIBUTE2 ,
23810 p_OLD_ATTRIBUTE3 => NULL ,
23811 p_NEW_ATTRIBUTE3 => p_version_label_rec.ATTRIBUTE3 ,
23812 p_OLD_ATTRIBUTE4 => NULL ,
23813 p_NEW_ATTRIBUTE4 => p_version_label_rec.ATTRIBUTE4 ,
23814 p_OLD_ATTRIBUTE5 => NULL ,
23815 p_NEW_ATTRIBUTE5 => p_version_label_rec.ATTRIBUTE5 ,
23816 p_OLD_ATTRIBUTE6 => NULL ,
23817 p_NEW_ATTRIBUTE6 => p_version_label_rec.ATTRIBUTE6 ,
23818 p_OLD_ATTRIBUTE7 => NULL ,
23819 p_NEW_ATTRIBUTE7 => p_version_label_rec.ATTRIBUTE7 ,
23820 p_OLD_ATTRIBUTE8 => NULL ,
23821 p_NEW_ATTRIBUTE8 => p_version_label_rec.ATTRIBUTE8 ,
23822 p_OLD_ATTRIBUTE9 => NULL ,
23823 p_NEW_ATTRIBUTE9 => p_version_label_rec.ATTRIBUTE9 ,
23824 p_OLD_ATTRIBUTE10 => NULL ,
23825 p_NEW_ATTRIBUTE10 => p_version_label_rec.ATTRIBUTE10,
23826 p_OLD_ATTRIBUTE11 => NULL ,
23827 p_NEW_ATTRIBUTE11 => p_version_label_rec.ATTRIBUTE11,
23828 p_OLD_ATTRIBUTE12 => NULL ,
23829 p_NEW_ATTRIBUTE12 => p_version_label_rec.ATTRIBUTE12,
23830 p_OLD_ATTRIBUTE13 => NULL ,
23831 p_NEW_ATTRIBUTE13 => p_version_label_rec.ATTRIBUTE13,
23832 p_OLD_ATTRIBUTE14 => NULL ,
23833 p_NEW_ATTRIBUTE14 => p_version_label_rec.ATTRIBUTE14,
23834 p_OLD_ATTRIBUTE15 => NULL ,
23835 p_NEW_ATTRIBUTE15 => p_version_label_rec.ATTRIBUTE15,
23836 p_FULL_DUMP_FLAG => 'N' ,
23837 p_CREATED_BY => FND_GLOBAL.USER_ID ,
23838 p_CREATION_DATE => SYSDATE ,
23839 p_LAST_UPDATED_BY => FND_GLOBAL.USER_ID ,
23840 p_LAST_UPDATE_DATE => SYSDATE ,
23841 p_LAST_UPDATE_LOGIN => FND_GLOBAL.LOGIN_ID ,
23842 p_OBJECT_VERSION_NUMBER => 1 );
23843
23844
23845 --
23846 -- End of API body
23847
23848 -- Standard check of p_commit.
23849
23850 IF FND_API.To_Boolean( p_commit ) THEN
23851 COMMIT WORK;
23852 END IF;
23853
23854 -- Standard call to get message count and if count is get message info.
23855 FND_MSG_PUB.Count_And_Get
23856 (p_encoded => FND_API.G_FALSE,
23857 p_count => x_msg_count ,
23858 p_data => x_msg_data );
23859
23860 EXCEPTION
23861 WHEN FND_API.G_EXC_ERROR THEN
23862 ROLLBACK TO create_version_label_pvt;
23863 x_return_status := FND_API.G_RET_STS_ERROR ;
23864 FND_MSG_PUB.Count_And_Get
23865 ( p_encoded => FND_API.G_FALSE,
23866 p_count => x_msg_count,
23867 p_data => x_msg_data);
23868 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
23869 ROLLBACK TO create_version_label_pvt;
23870 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
23871 FND_MSG_PUB.Count_And_Get
23872 ( p_encoded => FND_API.G_FALSE,
23873 p_count => x_msg_count,
23874 p_data => x_msg_data);
23875 WHEN OTHERS THEN
23876 ROLLBACK TO create_version_label_pvt;
23877 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
23878 IF FND_MSG_PUB.Check_Msg_Level
23879 (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
23880 THEN
23881 FND_MSG_PUB.Add_Exc_Msg
23882 ( G_PKG_NAME, l_api_name );
23883 END IF;
23884 FND_MSG_PUB.Count_And_Get
23885 ( p_encoded => FND_API.G_FALSE,
23886 p_count => x_msg_count,
23887 p_data => x_msg_data);
23888 END create_version_label;
23889
23890
23891 /*-------------------------------------------------------*/
23892 /* Procedure name: Update_version_label */
23893 /* Description : procedure for Update */
23894 /* version label for */
23895 /* an Item Instance */
23896 /*-------------------------------------------------------*/
23897
23898 PROCEDURE update_version_label
23899 ( p_api_version IN NUMBER
23900 ,p_commit IN VARCHAR2
23901 ,p_init_msg_list IN VARCHAR2
23902 ,p_validation_level IN NUMBER
23903 ,p_version_label_rec IN csi_datastructures_pub.version_label_rec
23904 ,p_txn_rec IN OUT NOCOPY csi_datastructures_pub.transaction_rec
23905 ,p_call_transaction IN VARCHAR2
23906 ,x_return_status OUT NOCOPY VARCHAR2
23907 ,x_msg_count OUT NOCOPY NUMBER
23908 ,x_msg_data OUT NOCOPY VARCHAR2
23909 ) IS
23910
23911 l_api_name CONSTANT VARCHAR2(30) := 'UPDATE_VERSION_LABEL';
23912 l_api_version CONSTANT NUMBER := 1.0;
23913 l_debug_level NUMBER;
23914 l_version_label_rec csi_datastructures_pub.version_label_rec;
23915 l_curr_ver_label_rec csi_datastructures_pub.version_label_rec;
23916 l_temp_ver_label_rec csi_datastructures_pub.version_label_rec;
23917 l_msg_index NUMBER;
23918 l_OBJECT_VERSION_NUMBER NUMBER;
23919 l_mod_value NUMBER;
23920 l_version_label_hist_id NUMBER;
23921 x_msg_index_out NUMBER;
23922 l_full_dump_frequency NUMBER;
23923 l_flag VARCHAR2(1) :='N';
23924 l_ver_label_hist_rec csi_datastructures_pub.version_label_history_rec;
23925
23926 CURSOR get_curr_ver_label_rec (p_ver_label_id IN NUMBER) IS
23927 SELECT
23928 VERSION_LABEL_ID ,
23929 INSTANCE_ID ,
23930 VERSION_LABEL ,
23931 DESCRIPTION ,
23932 DATE_TIME_STAMP ,
23933 active_start_date ,
23934 active_end_date ,
23935 context ,
23936 attribute1 ,
23937 attribute2 ,
23938 attribute3 ,
23939 attribute4 ,
23940 attribute5 ,
23941 attribute6 ,
23942 attribute7 ,
23943 attribute8 ,
23944 attribute9 ,
23945 attribute10 ,
23946 attribute11 ,
23947 attribute12 ,
23948 attribute13 ,
23949 attribute14 ,
23950 attribute15 ,
23951 object_version_number -- ,
23952 -- null parent_tbl_index ,
23953 -- null processed_flag ,
23954 -- null interface_id
23955 FROM CSI_I_VERSION_LABELS
23956 WHERE VERSION_LABEL_ID = p_ver_label_id
23957 AND (( ACTIVE_END_DATE IS NULL) OR (ACTIVE_END_DATE >= SYSDATE))
23958 FOR UPDATE OF OBJECT_VERSION_NUMBER ;
23959
23960 CURSOR version_hist_csr (p_version_hist_id NUMBER) IS
23961 SELECT *
23962 FROM csi_i_version_labels_h
23963 WHERE csi_i_version_labels_h.version_label_history_id = p_version_hist_id
23964 FOR UPDATE OF OBJECT_VERSION_NUMBER ;
23965 l_version_hist_csr version_hist_csr%ROWTYPE;
23966 l_version_hist_id NUMBER;
23967 BEGIN
23968
23969 -- Standard Start of API savepoint
23970 SAVEPOINT update_version_label_pvt;
23971
23972 -- Standard call to check for call compatibility.
23973 IF NOT FND_API.Compatible_API_Call (l_api_version ,
23974 p_api_version ,
23975 l_api_name ,
23976 G_PKG_NAME )
23977 THEN
23978 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
23979 END IF;
23980
23981 -- Initialize message list if p_init_msg_list is set to TRUE.
23982 IF FND_API.to_Boolean( p_init_msg_list ) THEN
23983 FND_MSG_PUB.initialize;
23984 END IF;
23985
23986 -- Initialize API return status to success
23987 x_return_status := FND_API.G_RET_STS_SUCCESS;
23988
23989 -- Check the profile option debug_level for debug message reporting
23990 l_debug_level:=fnd_profile.value('CSI_DEBUG_LEVEL');
23991
23992 -- If debug_level = 1 then dump the procedure name
23993 IF (l_debug_level > 0) THEN
23994 CSI_gen_utility_pvt.put_line( 'update_version_label');
23995 END IF;
23996
23997 -- If the debug level = 2 then dump all the parameters values.
23998 IF (l_debug_level > 1) THEN
23999 CSI_gen_utility_pvt.put_line( 'update_version_label:'||
24000 p_api_version ||'-'||
24001 p_commit ||'-'||
24002 p_init_msg_list ||'-'||
24003 p_validation_level );
24004 END IF;
24005
24006 -- Start API body
24007 --
24008 -- Check if all the required parameters are passed
24009 CSI_Instance_parties_vld_pvt.Check_Reqd_Param_num
24010 ( p_version_label_rec.version_label_id ,
24011 ' p_version_label_rec.version_label_id ',
24012 l_api_name );
24013
24014 -- Validate the Instance id exists in csi_item_instances
24015 IF p_version_label_rec.INSTANCE_ID <> FND_API.G_MISS_NUM THEN
24016 IF NOT( CSI_Instance_parties_vld_pvt.Is_InstanceID_Valid
24017 (p_version_label_rec.INSTANCE_ID)) THEN
24018 RAISE FND_API.G_EXC_ERROR;
24019 END IF;
24020 END IF;
24021
24022 IF p_version_label_rec.VERSION_LABEL_ID <> FND_API.G_MISS_NUM THEN
24023
24024 -- Validate the version label id if exist then raise CSI_API_INVALID_PRIMARY_KEY error
24025 IF NOT(CSI_Instance_parties_vld_pvt.Is_Ver_labelID_exists(p_version_label_rec.VERSION_LABEL_ID,
24026 FALSE )) THEN
24027 RAISE FND_API.G_EXC_ERROR;
24028 END IF;
24029 END IF;
24030
24031 -- check if the object_version_number passed matches with the one
24032 -- in the database else raise error
24033 OPEN get_curr_ver_label_rec(p_version_label_rec.VERSION_LABEL_ID);
24034 FETCH get_curr_ver_label_rec INTO l_curr_ver_label_rec;
24035 IF (l_curr_ver_label_rec.object_version_number <> nvl(p_version_label_rec.OBJECT_VERSION_NUMBER,-1)) THEN
24036 FND_MESSAGE.Set_Name('CSI', 'CSI_API_OBJ_VER_MISMATCH');
24037 FND_MSG_PUB.ADD;
24038 RAISE FND_API.G_EXC_ERROR;
24039 END IF;
24040 IF get_curr_ver_label_rec%NOTFOUND THEN
24041 FND_MESSAGE.Set_Name('CSI', 'CSI_API_RECORD_LOCKED');
24042 FND_MSG_PUB.ADD;
24043 RAISE FND_API.G_EXC_ERROR;
24044 END IF;
24045 CLOSE get_curr_ver_label_rec;
24046
24047 -- Increment the object_version_number before updating
24048 l_OBJECT_VERSION_NUMBER := l_curr_ver_label_rec.OBJECT_VERSION_NUMBER + 1 ;
24049
24050 CSI_I_VERSION_LABELS_PKG.Update_Row
24051 (
24052 p_VERSION_LABEL_ID => p_version_label_rec.version_label_id,
24053 p_INSTANCE_ID => p_version_label_rec.instance_id,
24054 p_VERSION_LABEL => p_version_label_rec.VERSION_LABEL,
24055 p_DATE_TIME_STAMP => p_version_label_rec.DATE_TIME_STAMP,
24056 p_DESCRIPTION => p_version_label_rec.DESCRIPTION ,
24057 p_ACTIVE_START_DATE => p_version_label_rec.ACTIVE_START_DATE,
24058 p_ACTIVE_END_DATE => p_version_label_rec.ACTIVE_END_DATE,
24059 p_CONTEXT => p_version_label_rec.CONTEXT ,
24060 p_ATTRIBUTE1 => p_version_label_rec.ATTRIBUTE1,
24061 p_ATTRIBUTE2 => p_version_label_rec.ATTRIBUTE2,
24062 p_ATTRIBUTE3 => p_version_label_rec.ATTRIBUTE3,
24063 p_ATTRIBUTE4 => p_version_label_rec.ATTRIBUTE4,
24064 p_ATTRIBUTE5 => p_version_label_rec.ATTRIBUTE5,
24065 p_ATTRIBUTE6 => p_version_label_rec.ATTRIBUTE6,
24066 p_ATTRIBUTE7 => p_version_label_rec.ATTRIBUTE7,
24067 p_ATTRIBUTE8 => p_version_label_rec.ATTRIBUTE8,
24068 p_ATTRIBUTE9 => p_version_label_rec.ATTRIBUTE9,
24069 p_ATTRIBUTE10 => p_version_label_rec.ATTRIBUTE10,
24070 p_ATTRIBUTE11 => p_version_label_rec.ATTRIBUTE11,
24071 p_ATTRIBUTE12 => p_version_label_rec.ATTRIBUTE12,
24072 p_ATTRIBUTE13 => p_version_label_rec.ATTRIBUTE13,
24073 p_ATTRIBUTE14 => p_version_label_rec.ATTRIBUTE14,
24074 p_ATTRIBUTE15 => p_version_label_rec.ATTRIBUTE15,
24075 p_CREATED_BY => fnd_api.g_miss_num ,
24076 p_CREATION_DATE => fnd_api.g_miss_date ,
24077 p_LAST_UPDATED_BY => FND_GLOBAL.USER_ID ,
24078 p_LAST_UPDATE_DATE => sysdate ,
24079 p_LAST_UPDATE_LOGIN => FND_GLOBAL.LOGIN_ID,
24080 p_OBJECT_VERSION_NUMBER => l_OBJECT_VERSION_NUMBER );
24081
24082
24083 -- Call create_transaction to create txn log
24084 IF p_call_transaction=fnd_api.g_true
24085 THEN
24086 CSI_TRANSACTIONS_PVT.Create_transaction
24087 (
24088 p_api_version => p_api_version
24089 ,p_commit => p_commit
24090 ,p_init_msg_list => p_init_msg_list
24091 ,p_validation_level => p_validation_level
24092 ,p_Success_If_Exists_Flag => 'Y'
24093 ,P_transaction_rec => p_txn_rec
24094 ,x_return_status => x_return_status
24095 ,x_msg_count => x_msg_count
24096 ,x_msg_data => x_msg_data );
24097
24098 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
24099 FOR i in 1..x_msg_Count LOOP
24100 FND_MSG_PUB.Get(p_msg_index => i,
24101 p_encoded => 'F',
24102 p_data => x_msg_data,
24103 p_msg_index_out => x_msg_index_out );
24104 CSI_gen_utility_pvt.put_line( 'message data = '||x_msg_data);
24105 End LOOP;
24106 RAISE FND_API.G_EXC_ERROR;
24107 END IF;
24108 END IF;
24109 -- Generate a unique instance_party_history_id from the sequence
24110 l_version_label_hist_id := CSI_Instance_parties_vld_pvt.gen_ver_label_hist_id;
24111
24112 -- Get the full_dump_frequency from csi_install_parameter
24113 --
24114 IF csi_datastructures_pub.g_install_param_rec.fetch_flag IS NULL THEN
24115 csi_gen_utility_pvt.populate_install_param_rec;
24116 END IF;
24117 --
24118 l_full_dump_frequency := csi_datastructures_pub.g_install_param_rec.history_full_dump_frequency;
24119 --
24120 IF l_full_dump_frequency IS NULL THEN
24121 FND_MESSAGE.SET_NAME('CSI','CSI_API_GET_FULL_DUMP_FAILED');
24122 FND_MSG_PUB.ADD;
24123 RAISE FND_API.G_EXC_ERROR;
24124 END IF;
24125 --
24126 select mod(l_object_version_number,l_full_dump_frequency)
24127 into l_mod_value
24128 from dual;
24129
24130 -- Start of modification for Bug#2547034 on 09/20/02 - rtalluri
24131 BEGIN
24132 SELECT version_label_history_id
24133 INTO l_version_hist_id
24134 FROM csi_i_version_labels_h h
24135 WHERE h.transaction_id = p_txn_rec.transaction_id
24136 AND h.version_label_id = p_version_label_rec.version_label_id;
24137
24138 OPEN version_hist_csr(l_version_hist_id);
24139 FETCH version_hist_csr INTO l_version_hist_csr ;
24140 CLOSE version_hist_csr;
24141
24142 IF l_version_hist_csr.full_dump_flag = 'Y'
24143 THEN
24144 CSI_I_VERSION_LABELS_H_PKG.Update_Row
24145 (
24146 p_VERSION_LABEL_HISTORY_ID => l_version_hist_id ,
24147 p_VERSION_LABEL_ID => fnd_api.g_miss_num ,
24148 p_TRANSACTION_ID => fnd_api.g_miss_num ,
24149 p_OLD_VERSION_LABEL => fnd_api.g_miss_char ,
24150 p_NEW_VERSION_LABEL => p_version_label_rec.VERSION_LABEL ,
24151 p_OLD_DESCRIPTION => fnd_api.g_miss_char ,
24152 p_NEW_DESCRIPTION => p_version_label_rec.DESCRIPTION ,
24153 p_OLD_DATE_TIME_STAMP => fnd_api.g_miss_date ,
24154 p_NEW_DATE_TIME_STAMP => p_version_label_rec.DATE_TIME_STAMP ,
24155 p_OLD_ACTIVE_START_DATE => fnd_api.g_miss_date ,
24156 p_NEW_ACTIVE_START_DATE => p_version_label_rec.ACTIVE_START_DATE ,
24157 p_OLD_ACTIVE_END_DATE => fnd_api.g_miss_date ,
24158 p_NEW_ACTIVE_END_DATE => p_version_label_rec.ACTIVE_END_DATE ,
24159 p_OLD_CONTEXT => fnd_api.g_miss_char ,
24160 p_NEW_CONTEXT => p_version_label_rec.CONTEXT ,
24161 p_OLD_ATTRIBUTE1 => fnd_api.g_miss_char ,
24162 p_NEW_ATTRIBUTE1 => p_version_label_rec.ATTRIBUTE1 ,
24163 p_OLD_ATTRIBUTE2 => fnd_api.g_miss_char ,
24164 p_NEW_ATTRIBUTE2 => p_version_label_rec.ATTRIBUTE2 ,
24165 p_OLD_ATTRIBUTE3 => fnd_api.g_miss_char ,
24166 p_NEW_ATTRIBUTE3 => p_version_label_rec.ATTRIBUTE3 ,
24167 p_OLD_ATTRIBUTE4 => fnd_api.g_miss_char ,
24168 p_NEW_ATTRIBUTE4 => p_version_label_rec.ATTRIBUTE4 ,
24169 p_OLD_ATTRIBUTE5 => fnd_api.g_miss_char ,
24170 p_NEW_ATTRIBUTE5 => p_version_label_rec.ATTRIBUTE5 ,
24171 p_OLD_ATTRIBUTE6 => fnd_api.g_miss_char ,
24172 p_NEW_ATTRIBUTE6 => p_version_label_rec.ATTRIBUTE6 ,
24173 p_OLD_ATTRIBUTE7 => fnd_api.g_miss_char ,
24174 p_NEW_ATTRIBUTE7 => p_version_label_rec.ATTRIBUTE7 ,
24175 p_OLD_ATTRIBUTE8 => fnd_api.g_miss_char ,
24176 p_NEW_ATTRIBUTE8 => p_version_label_rec.ATTRIBUTE8 ,
24177 p_OLD_ATTRIBUTE9 => fnd_api.g_miss_char ,
24178 p_NEW_ATTRIBUTE9 => p_version_label_rec.ATTRIBUTE9 ,
24179 p_OLD_ATTRIBUTE10 => fnd_api.g_miss_char ,
24180 p_NEW_ATTRIBUTE10 => p_version_label_rec.ATTRIBUTE10 ,
24181 p_OLD_ATTRIBUTE11 => fnd_api.g_miss_char ,
24182 p_NEW_ATTRIBUTE11 => p_version_label_rec.ATTRIBUTE11 ,
24183 p_OLD_ATTRIBUTE12 => fnd_api.g_miss_char ,
24184 p_NEW_ATTRIBUTE12 => p_version_label_rec.ATTRIBUTE12 ,
24185 p_OLD_ATTRIBUTE13 => fnd_api.g_miss_char ,
24186 p_NEW_ATTRIBUTE13 => p_version_label_rec.ATTRIBUTE13 ,
24187 p_OLD_ATTRIBUTE14 => fnd_api.g_miss_char ,
24188 p_NEW_ATTRIBUTE14 => p_version_label_rec.ATTRIBUTE14 ,
24189 p_OLD_ATTRIBUTE15 => fnd_api.g_miss_char ,
24190 p_NEW_ATTRIBUTE15 => p_version_label_rec.ATTRIBUTE15 ,
24191 p_FULL_DUMP_FLAG => fnd_api.g_miss_char ,
24192 p_CREATED_BY => fnd_api.g_miss_num ,
24193 p_CREATION_DATE => fnd_api.g_miss_date ,
24194 p_LAST_UPDATED_BY => FND_GLOBAL.USER_ID ,
24195 p_LAST_UPDATE_DATE => SYSDATE ,
24196 p_LAST_UPDATE_LOGIN => FND_GLOBAL.LOGIN_ID ,
24197 p_OBJECT_VERSION_NUMBER => fnd_api.g_miss_num );
24198
24199 ELSE
24200 --
24201 IF ( l_version_hist_csr.old_version_label IS NULL
24202 AND l_version_hist_csr.new_version_label IS NULL ) THEN
24203 IF ( p_version_label_rec.version_label = l_curr_ver_label_rec.version_label )
24204 OR ( p_version_label_rec.version_label = fnd_api.g_miss_char ) THEN
24205 l_version_hist_csr.old_version_label := NULL;
24206 l_version_hist_csr.new_version_label := NULL;
24207 ELSE
24208 l_version_hist_csr.old_version_label := fnd_api.g_miss_char;
24209 l_version_hist_csr.new_version_label := p_version_label_rec.version_label;
24210 END IF;
24211 ELSE
24212 l_version_hist_csr.old_version_label := fnd_api.g_miss_char;
24213 l_version_hist_csr.new_version_label := p_version_label_rec.version_label;
24214 END IF;
24215 --
24216 IF ( l_version_hist_csr.old_date_time_stamp IS NULL
24217 AND l_version_hist_csr.new_date_time_stamp IS NULL ) THEN
24218 IF ( p_version_label_rec.date_time_stamp = l_curr_ver_label_rec.date_time_stamp )
24219 OR ( p_version_label_rec.date_time_stamp = fnd_api.g_miss_date ) THEN
24220 l_version_hist_csr.old_date_time_stamp := NULL;
24221 l_version_hist_csr.new_date_time_stamp := NULL;
24222 ELSE
24223 l_version_hist_csr.old_date_time_stamp := fnd_api.g_miss_date;
24224 l_version_hist_csr.new_date_time_stamp := p_version_label_rec.date_time_stamp;
24225 END IF;
24226 ELSE
24227 l_version_hist_csr.old_date_time_stamp := fnd_api.g_miss_date;
24228 l_version_hist_csr.new_date_time_stamp := p_version_label_rec.date_time_stamp;
24229 END IF;
24230 --
24231 IF ( l_version_hist_csr.old_description IS NULL
24232 AND l_version_hist_csr.new_description IS NULL ) THEN
24233 IF ( p_version_label_rec.description = l_curr_ver_label_rec.description )
24234 OR ( p_version_label_rec.description = fnd_api.g_miss_char ) THEN
24235 l_version_hist_csr.old_description := NULL;
24236 l_version_hist_csr.new_description := NULL;
24237 ELSE
24238 l_version_hist_csr.old_description := fnd_api.g_miss_char;
24239 l_version_hist_csr.new_description := p_version_label_rec.description;
24240 END IF;
24241 ELSE
24242 l_version_hist_csr.old_description := fnd_api.g_miss_char;
24243 l_version_hist_csr.new_description := p_version_label_rec.description;
24244 END IF;
24245 --
24246 IF ( l_version_hist_csr.old_active_start_date IS NULL
24247 AND l_version_hist_csr.new_active_start_date IS NULL ) THEN
24248 IF ( p_version_label_rec.active_start_date = l_curr_ver_label_rec.active_start_date )
24249 OR ( p_version_label_rec.active_start_date = fnd_api.g_miss_date ) THEN
24250 l_version_hist_csr.old_active_start_date := NULL;
24251 l_version_hist_csr.new_active_start_date := NULL;
24252 ELSE
24253 l_version_hist_csr.old_active_start_date := fnd_api.g_miss_date;
24254 l_version_hist_csr.new_active_start_date := p_version_label_rec.active_start_date;
24255 END IF;
24256 ELSE
24257 l_version_hist_csr.old_active_start_date := fnd_api.g_miss_date;
24258 l_version_hist_csr.new_active_start_date := p_version_label_rec.active_start_date;
24259 END IF;
24260 --
24261 IF ( l_version_hist_csr.old_active_end_date IS NULL
24262 AND l_version_hist_csr.new_active_end_date IS NULL ) THEN
24263 IF ( p_version_label_rec.active_end_date = l_curr_ver_label_rec.active_end_date )
24264 OR ( p_version_label_rec.active_end_date = fnd_api.g_miss_date ) THEN
24265 l_version_hist_csr.old_active_end_date := NULL;
24266 l_version_hist_csr.new_active_end_date := NULL;
24267 ELSE
24268 l_version_hist_csr.old_active_end_date := fnd_api.g_miss_date;
24269 l_version_hist_csr.new_active_end_date := p_version_label_rec.active_end_date;
24270 END IF;
24271 ELSE
24272 l_version_hist_csr.old_active_end_date := fnd_api.g_miss_date;
24273 l_version_hist_csr.new_active_end_date := p_version_label_rec.active_end_date;
24274 END IF;
24275 --
24276 IF ( l_version_hist_csr.old_context IS NULL
24277 AND l_version_hist_csr.new_context IS NULL ) THEN
24278 IF ( p_version_label_rec.context = l_curr_ver_label_rec.context )
24279 OR ( p_version_label_rec.context = fnd_api.g_miss_char ) THEN
24280 l_version_hist_csr.old_context := NULL;
24281 l_version_hist_csr.new_context := NULL;
24282 ELSE
24283 l_version_hist_csr.old_context := fnd_api.g_miss_char;
24284 l_version_hist_csr.new_context := p_version_label_rec.context;
24285 END IF;
24286 ELSE
24287 l_version_hist_csr.old_context := fnd_api.g_miss_char;
24288 l_version_hist_csr.new_context := p_version_label_rec.context;
24289 END IF;
24290 --
24291 IF ( l_version_hist_csr.old_attribute1 IS NULL
24292 AND l_version_hist_csr.new_attribute1 IS NULL ) THEN
24293 IF ( p_version_label_rec.attribute1 = l_curr_ver_label_rec.attribute1 )
24294 OR ( p_version_label_rec.attribute1 = fnd_api.g_miss_char ) THEN
24295 l_version_hist_csr.old_attribute1 := NULL;
24296 l_version_hist_csr.new_attribute1 := NULL;
24297 ELSE
24298 l_version_hist_csr.old_attribute1 := fnd_api.g_miss_char;
24299 l_version_hist_csr.new_attribute1 := p_version_label_rec.attribute1;
24300 END IF;
24301 ELSE
24302 l_version_hist_csr.old_attribute1 := fnd_api.g_miss_char;
24303 l_version_hist_csr.new_attribute1 := p_version_label_rec.attribute1;
24304 END IF;
24305 --
24306 IF ( l_version_hist_csr.old_attribute2 IS NULL
24307 AND l_version_hist_csr.new_attribute2 IS NULL ) THEN
24308 IF ( p_version_label_rec.attribute2 = l_curr_ver_label_rec.attribute2 )
24309 OR ( p_version_label_rec.attribute2 = fnd_api.g_miss_char ) THEN
24310 l_version_hist_csr.old_attribute2 := NULL;
24311 l_version_hist_csr.new_attribute2 := NULL;
24312 ELSE
24313 l_version_hist_csr.old_attribute2 := fnd_api.g_miss_char;
24314 l_version_hist_csr.new_attribute2 := p_version_label_rec.attribute2;
24315 END IF;
24316 ELSE
24317 l_version_hist_csr.old_attribute2 := fnd_api.g_miss_char;
24318 l_version_hist_csr.new_attribute2 := p_version_label_rec.attribute2;
24319 END IF;
24320 --
24321 IF ( l_version_hist_csr.old_attribute3 IS NULL
24322 AND l_version_hist_csr.new_attribute3 IS NULL ) THEN
24323 IF ( p_version_label_rec.attribute3 = l_curr_ver_label_rec.attribute3 )
24324 OR ( p_version_label_rec.attribute3 = fnd_api.g_miss_char ) THEN
24325 l_version_hist_csr.old_attribute3 := NULL;
24326 l_version_hist_csr.new_attribute3 := NULL;
24327 ELSE
24328 l_version_hist_csr.old_attribute3 := fnd_api.g_miss_char;
24329 l_version_hist_csr.new_attribute3 := p_version_label_rec.attribute3;
24330 END IF;
24331 ELSE
24332 l_version_hist_csr.old_attribute3 := fnd_api.g_miss_char;
24333 l_version_hist_csr.new_attribute3 := p_version_label_rec.attribute3;
24334 END IF;
24335 --
24336 IF ( l_version_hist_csr.old_attribute4 IS NULL
24337 AND l_version_hist_csr.new_attribute4 IS NULL ) THEN
24338 IF ( p_version_label_rec.attribute4 = l_curr_ver_label_rec.attribute4 )
24339 OR ( p_version_label_rec.attribute4 = fnd_api.g_miss_char ) THEN
24340 l_version_hist_csr.old_attribute4 := NULL;
24341 l_version_hist_csr.new_attribute4 := NULL;
24342 ELSE
24343 l_version_hist_csr.old_attribute4 := fnd_api.g_miss_char;
24344 l_version_hist_csr.new_attribute4 := p_version_label_rec.attribute4;
24345 END IF;
24346 ELSE
24347 l_version_hist_csr.old_attribute4 := fnd_api.g_miss_char;
24348 l_version_hist_csr.new_attribute4 := p_version_label_rec.attribute4;
24349 END IF;
24350 --
24351 IF ( l_version_hist_csr.old_attribute5 IS NULL
24352 AND l_version_hist_csr.new_attribute5 IS NULL ) THEN
24353 IF ( p_version_label_rec.attribute5 = l_curr_ver_label_rec.attribute5 )
24354 OR ( p_version_label_rec.attribute5 = fnd_api.g_miss_char ) THEN
24355 l_version_hist_csr.old_attribute5 := NULL;
24356 l_version_hist_csr.new_attribute5 := NULL;
24357 ELSE
24358 l_version_hist_csr.old_attribute5 := fnd_api.g_miss_char;
24359 l_version_hist_csr.new_attribute5 := p_version_label_rec.attribute5;
24360 END IF;
24361 ELSE
24362 l_version_hist_csr.old_attribute5 := fnd_api.g_miss_char;
24363 l_version_hist_csr.new_attribute5 := p_version_label_rec.attribute5;
24364 END IF;
24365 --
24366 IF ( l_version_hist_csr.old_attribute6 IS NULL
24367 AND l_version_hist_csr.new_attribute6 IS NULL ) THEN
24368 IF ( p_version_label_rec.attribute6 = l_curr_ver_label_rec.attribute6 )
24369 OR ( p_version_label_rec.attribute6 = fnd_api.g_miss_char ) THEN
24370 l_version_hist_csr.old_attribute6 := NULL;
24371 l_version_hist_csr.new_attribute6 := NULL;
24372 ELSE
24373 l_version_hist_csr.old_attribute6 := fnd_api.g_miss_char;
24374 l_version_hist_csr.new_attribute6 := p_version_label_rec.attribute6;
24375 END IF;
24376 ELSE
24377 l_version_hist_csr.old_attribute6 := fnd_api.g_miss_char;
24378 l_version_hist_csr.new_attribute6 := p_version_label_rec.attribute6;
24379 END IF;
24380 --
24381 IF ( l_version_hist_csr.old_attribute7 IS NULL
24382 AND l_version_hist_csr.new_attribute7 IS NULL ) THEN
24383 IF ( p_version_label_rec.attribute7 = l_curr_ver_label_rec.attribute7 )
24384 OR ( p_version_label_rec.attribute7 = fnd_api.g_miss_char ) THEN
24385 l_version_hist_csr.old_attribute7 := NULL;
24386 l_version_hist_csr.new_attribute7 := NULL;
24387 ELSE
24388 l_version_hist_csr.old_attribute7 := fnd_api.g_miss_char;
24389 l_version_hist_csr.new_attribute7 := p_version_label_rec.attribute7;
24390 END IF;
24391 ELSE
24392 l_version_hist_csr.old_attribute7 := fnd_api.g_miss_char;
24393 l_version_hist_csr.new_attribute7 := p_version_label_rec.attribute7;
24394 END IF;
24395 --
24396 IF ( l_version_hist_csr.old_attribute8 IS NULL
24397 AND l_version_hist_csr.new_attribute8 IS NULL ) THEN
24398 IF ( p_version_label_rec.attribute8 = l_curr_ver_label_rec.attribute8 )
24399 OR ( p_version_label_rec.attribute8 = fnd_api.g_miss_char ) THEN
24400 l_version_hist_csr.old_attribute8 := NULL;
24401 l_version_hist_csr.new_attribute8 := NULL;
24402 ELSE
24403 l_version_hist_csr.old_attribute8 := fnd_api.g_miss_char;
24404 l_version_hist_csr.new_attribute8 := p_version_label_rec.attribute8;
24405 END IF;
24406 ELSE
24407 l_version_hist_csr.old_attribute8 := fnd_api.g_miss_char;
24408 l_version_hist_csr.new_attribute8 := p_version_label_rec.attribute8;
24409 END IF;
24410 --
24411 IF ( l_version_hist_csr.old_attribute9 IS NULL
24412 AND l_version_hist_csr.new_attribute9 IS NULL ) THEN
24413 IF ( p_version_label_rec.attribute9 = l_curr_ver_label_rec.attribute9 )
24414 OR ( p_version_label_rec.attribute9 = fnd_api.g_miss_char ) THEN
24415 l_version_hist_csr.old_attribute9 := NULL;
24416 l_version_hist_csr.new_attribute9 := NULL;
24417 ELSE
24418 l_version_hist_csr.old_attribute9 := fnd_api.g_miss_char;
24419 l_version_hist_csr.new_attribute9 := p_version_label_rec.attribute9;
24420 END IF;
24421 ELSE
24422 l_version_hist_csr.old_attribute9 := fnd_api.g_miss_char;
24423 l_version_hist_csr.new_attribute9 := p_version_label_rec.attribute9;
24424 END IF;
24425 --
24426 IF ( l_version_hist_csr.old_attribute10 IS NULL
24427 AND l_version_hist_csr.new_attribute10 IS NULL ) THEN
24428 IF ( p_version_label_rec.attribute10 = l_curr_ver_label_rec.attribute10 )
24429 OR ( p_version_label_rec.attribute10 = fnd_api.g_miss_char ) THEN
24430 l_version_hist_csr.old_attribute10 := NULL;
24431 l_version_hist_csr.new_attribute10 := NULL;
24432 ELSE
24433 l_version_hist_csr.old_attribute10 := fnd_api.g_miss_char;
24434 l_version_hist_csr.new_attribute10 := p_version_label_rec.attribute10;
24435 END IF;
24436 ELSE
24437 l_version_hist_csr.old_attribute10 := fnd_api.g_miss_char;
24438 l_version_hist_csr.new_attribute10 := p_version_label_rec.attribute10;
24439 END IF;
24440 --
24441 IF ( l_version_hist_csr.old_attribute11 IS NULL
24442 AND l_version_hist_csr.new_attribute11 IS NULL ) THEN
24443 IF ( p_version_label_rec.attribute11 = l_curr_ver_label_rec.attribute11 )
24444 OR ( p_version_label_rec.attribute11 = fnd_api.g_miss_char ) THEN
24445 l_version_hist_csr.old_attribute11 := NULL;
24446 l_version_hist_csr.new_attribute11 := NULL;
24447 ELSE
24448 l_version_hist_csr.old_attribute11 := fnd_api.g_miss_char;
24449 l_version_hist_csr.new_attribute11 := p_version_label_rec.attribute11;
24450 END IF;
24451 ELSE
24452 l_version_hist_csr.old_attribute11 := fnd_api.g_miss_char;
24453 l_version_hist_csr.new_attribute11 := p_version_label_rec.attribute11;
24454 END IF;
24455 --
24456 IF ( l_version_hist_csr.old_attribute12 IS NULL
24457 AND l_version_hist_csr.new_attribute12 IS NULL ) THEN
24458 IF ( p_version_label_rec.attribute12 = l_curr_ver_label_rec.attribute12 )
24459 OR ( p_version_label_rec.attribute12 = fnd_api.g_miss_char ) THEN
24460 l_version_hist_csr.old_attribute12 := NULL;
24461 l_version_hist_csr.new_attribute12 := NULL;
24462 ELSE
24463 l_version_hist_csr.old_attribute12 := fnd_api.g_miss_char;
24464 l_version_hist_csr.new_attribute12 := p_version_label_rec.attribute12;
24465 END IF;
24466 ELSE
24467 l_version_hist_csr.old_attribute12 := fnd_api.g_miss_char;
24468 l_version_hist_csr.new_attribute12 := p_version_label_rec.attribute12;
24469 END IF;
24470 --
24471 IF ( l_version_hist_csr.old_attribute13 IS NULL
24472 AND l_version_hist_csr.new_attribute13 IS NULL ) THEN
24473 IF ( p_version_label_rec.attribute13 = l_curr_ver_label_rec.attribute13 )
24474 OR ( p_version_label_rec.attribute13 = fnd_api.g_miss_char ) THEN
24475 l_version_hist_csr.old_attribute13 := NULL;
24476 l_version_hist_csr.new_attribute13 := NULL;
24477 ELSE
24478 l_version_hist_csr.old_attribute13 := fnd_api.g_miss_char;
24479 l_version_hist_csr.new_attribute13 := p_version_label_rec.attribute13;
24480 END IF;
24481 ELSE
24482 l_version_hist_csr.old_attribute13 := fnd_api.g_miss_char;
24483 l_version_hist_csr.new_attribute13 := p_version_label_rec.attribute13;
24484 END IF;
24485 --
24486 IF ( l_version_hist_csr.old_attribute14 IS NULL
24487 AND l_version_hist_csr.new_attribute14 IS NULL ) THEN
24488 IF ( p_version_label_rec.attribute14 = l_curr_ver_label_rec.attribute14 )
24489 OR ( p_version_label_rec.attribute14 = fnd_api.g_miss_char ) THEN
24490 l_version_hist_csr.old_attribute14 := NULL;
24491 l_version_hist_csr.new_attribute14 := NULL;
24492 ELSE
24493 l_version_hist_csr.old_attribute14 := fnd_api.g_miss_char;
24494 l_version_hist_csr.new_attribute14 := p_version_label_rec.attribute14;
24495 END IF;
24496 ELSE
24497 l_version_hist_csr.old_attribute14 := fnd_api.g_miss_char;
24498 l_version_hist_csr.new_attribute14 := p_version_label_rec.attribute14;
24499 END IF;
24500 --
24501 IF ( l_version_hist_csr.old_attribute15 IS NULL
24502 AND l_version_hist_csr.new_attribute15 IS NULL ) THEN
24503 IF ( p_version_label_rec.attribute15 = l_curr_ver_label_rec.attribute15 )
24504 OR ( p_version_label_rec.attribute15 = fnd_api.g_miss_char ) THEN
24505 l_version_hist_csr.old_attribute15 := NULL;
24506 l_version_hist_csr.new_attribute15 := NULL;
24507 ELSE
24508 l_version_hist_csr.old_attribute15 := fnd_api.g_miss_char;
24509 l_version_hist_csr.new_attribute15 := p_version_label_rec.attribute15;
24510 END IF;
24511 ELSE
24512 l_version_hist_csr.old_attribute15 := fnd_api.g_miss_char;
24513 l_version_hist_csr.new_attribute15 := p_version_label_rec.attribute15;
24514 END IF;
24515 --
24516
24517 csi_i_version_labels_h_pkg.update_row
24518 (
24519 p_version_label_history_id => l_version_hist_id ,
24520 p_version_label_id => fnd_api.g_miss_num ,
24521 p_transaction_id => fnd_api.g_miss_num ,
24522 p_old_version_label => l_version_hist_csr.old_version_label ,
24523 p_new_version_label => l_version_hist_csr.new_version_label ,
24524 p_old_description => l_version_hist_csr.old_description ,
24525 p_new_description => l_version_hist_csr.new_description ,
24526 p_old_date_time_stamp => l_version_hist_csr.old_date_time_stamp ,
24527 p_new_date_time_stamp => l_version_hist_csr.new_date_time_stamp ,
24528 p_old_active_start_date => l_version_hist_csr.old_active_start_date,
24529 p_new_active_start_date => l_version_hist_csr.new_active_start_date ,
24530 p_old_active_end_date => l_version_hist_csr.old_active_end_date ,
24531 p_new_active_end_date => l_version_hist_csr.new_active_end_date ,
24532 p_old_context => l_version_hist_csr.old_context ,
24533 p_new_context => l_version_hist_csr.new_context ,
24534 p_old_attribute1 => l_version_hist_csr.old_attribute1 ,
24535 p_new_attribute1 => l_version_hist_csr.new_attribute1 ,
24536 p_old_attribute2 => l_version_hist_csr.old_attribute2 ,
24537 p_new_attribute2 => l_version_hist_csr.new_attribute2 ,
24538 p_old_attribute3 => l_version_hist_csr.old_attribute3 ,
24539 p_new_attribute3 => l_version_hist_csr.new_attribute3 ,
24540 p_old_attribute4 => l_version_hist_csr.old_attribute4 ,
24541 p_new_attribute4 => l_version_hist_csr.new_attribute4 ,
24542 p_old_attribute5 => l_version_hist_csr.old_attribute5 ,
24543 p_new_attribute5 => l_version_hist_csr.new_attribute5 ,
24544 p_old_attribute6 => l_version_hist_csr.old_attribute6 ,
24545 p_new_attribute6 => l_version_hist_csr.new_attribute6 ,
24546 p_old_attribute7 => l_version_hist_csr.old_attribute7 ,
24547 p_new_attribute7 => l_version_hist_csr.new_attribute7 ,
24548 p_old_attribute8 => l_version_hist_csr.old_attribute8 ,
24549 p_new_attribute8 => l_version_hist_csr.new_attribute8 ,
24550 p_old_attribute9 => l_version_hist_csr.old_attribute9 ,
24551 p_new_attribute9 => l_version_hist_csr.new_attribute9 ,
24552 p_old_attribute10 => l_version_hist_csr.old_attribute10 ,
24553 p_new_attribute10 => l_version_hist_csr.new_attribute10 ,
24554 p_old_attribute11 => l_version_hist_csr.old_attribute11 ,
24555 p_new_attribute11 => l_version_hist_csr.new_attribute11 ,
24556 p_old_attribute12 => l_version_hist_csr.old_attribute12 ,
24557 p_new_attribute12 => l_version_hist_csr.new_attribute12 ,
24558 p_old_attribute13 => l_version_hist_csr.old_attribute13 ,
24559 p_new_attribute13 => l_version_hist_csr.new_attribute13 ,
24560 p_old_attribute14 => l_version_hist_csr.old_attribute14 ,
24561 p_new_attribute14 => l_version_hist_csr.new_attribute14 ,
24562 p_old_attribute15 => l_version_hist_csr.old_attribute15 ,
24563 p_new_attribute15 => l_version_hist_csr.new_attribute15 ,
24564 p_full_dump_flag => fnd_api.g_miss_char ,
24565 p_created_by => fnd_api.g_miss_num ,
24566 p_creation_date => fnd_api.g_miss_date ,
24567 p_last_updated_by => fnd_global.user_id ,
24568 p_last_update_date => SYSDATE ,
24569 p_last_update_login => fnd_global.login_id ,
24570 p_object_version_number => fnd_api.g_miss_num );
24571 END IF;
24572 EXCEPTION
24573 WHEN NO_DATA_FOUND THEN
24574
24575 IF (l_mod_value = 0) THEN
24576 -- If the mod value is 0 then dump all the columns both changed and unchanged
24577 -- changed columns have old and new values while the unchanged values have old and new values
24578 -- exactly same
24579
24580 IF (p_version_label_rec.version_label = FND_API.G_MISS_CHAR) THEN
24581 l_temp_ver_label_rec.version_label := l_curr_ver_label_rec.version_label ;
24582 END IF;
24583 IF (p_version_label_rec.DATE_TIME_STAMP = FND_API.G_MISS_DATE) THEN
24584 l_temp_ver_label_rec.DATE_TIME_STAMP := l_curr_ver_label_rec.DATE_TIME_STAMP ;
24585 END IF;
24586 IF (p_version_label_rec.DESCRIPTION = FND_API.G_MISS_CHAR) THEN
24587 l_temp_ver_label_rec.DESCRIPTION := l_curr_ver_label_rec.DESCRIPTION ;
24588 END IF;
24589 IF (p_version_label_rec.ACTIVE_START_DATE = FND_API.G_MISS_DATE) THEN
24590 l_temp_ver_label_rec.ACTIVE_START_DATE := l_curr_ver_label_rec.ACTIVE_START_DATE ;
24591 END IF;
24592 IF (p_version_label_rec.ACTIVE_END_DATE = FND_API.G_MISS_DATE) THEN
24593 l_temp_ver_label_rec.ACTIVE_END_DATE := l_curr_ver_label_rec.ACTIVE_END_DATE ;
24594 END IF;
24595 IF (p_version_label_rec.context = FND_API.G_MISS_CHAR) THEN
24596 l_temp_ver_label_rec.CONTEXT := l_curr_ver_label_rec.CONTEXT ;
24597 END IF;
24598 IF (p_version_label_rec.ATTRIBUTE1 = FND_API.G_MISS_CHAR) THEN
24599 l_temp_ver_label_rec.ATTRIBUTE1 := l_curr_ver_label_rec.ATTRIBUTE1 ;
24600 END IF;
24601 IF (p_version_label_rec.ATTRIBUTE2 = FND_API.G_MISS_CHAR) THEN
24602 l_temp_ver_label_rec.ATTRIBUTE2 := l_curr_ver_label_rec.ATTRIBUTE2 ;
24603 END IF;
24604 IF (p_version_label_rec.ATTRIBUTE3 = FND_API.G_MISS_CHAR) THEN
24605 l_temp_ver_label_rec.ATTRIBUTE3 := l_curr_ver_label_rec.ATTRIBUTE3 ;
24606 END IF;
24607 IF (p_version_label_rec.ATTRIBUTE4 = FND_API.G_MISS_CHAR) THEN
24608 l_temp_ver_label_rec.ATTRIBUTE4 := l_curr_ver_label_rec.ATTRIBUTE4 ;
24609 END IF;
24610 IF (p_version_label_rec.ATTRIBUTE5 = FND_API.G_MISS_CHAR) THEN
24611 l_temp_ver_label_rec.ATTRIBUTE5 := l_curr_ver_label_rec.ATTRIBUTE5 ;
24612 END IF;
24613 IF (p_version_label_rec.ATTRIBUTE6 = FND_API.G_MISS_CHAR) THEN
24614 l_temp_ver_label_rec.ATTRIBUTE6 := l_curr_ver_label_rec.ATTRIBUTE6 ;
24615 END IF;
24616 IF (p_version_label_rec.ATTRIBUTE7 = FND_API.G_MISS_CHAR) THEN
24617 l_temp_ver_label_rec.ATTRIBUTE7 := l_curr_ver_label_rec.ATTRIBUTE7 ;
24618 END IF;
24619 IF (p_version_label_rec.ATTRIBUTE8 = FND_API.G_MISS_CHAR) THEN
24620 l_temp_ver_label_rec.ATTRIBUTE8 := l_curr_ver_label_rec.ATTRIBUTE8 ;
24621 END IF;
24622 IF (p_version_label_rec.ATTRIBUTE9 = FND_API.G_MISS_CHAR) THEN
24623 l_temp_ver_label_rec.ATTRIBUTE9 := l_curr_ver_label_rec.ATTRIBUTE9 ;
24624 END IF;
24625 IF (p_version_label_rec.ATTRIBUTE10 = FND_API.G_MISS_CHAR) THEN
24626 l_temp_ver_label_rec.ATTRIBUTE10 := l_curr_ver_label_rec.ATTRIBUTE10 ;
24627 END IF;
24628 IF (p_version_label_rec.ATTRIBUTE11 = FND_API.G_MISS_CHAR) THEN
24629 l_temp_ver_label_rec.ATTRIBUTE11 := l_curr_ver_label_rec.ATTRIBUTE11 ;
24630 END IF;
24631 IF (p_version_label_rec.ATTRIBUTE12 = FND_API.G_MISS_CHAR) THEN
24632 l_temp_ver_label_rec.ATTRIBUTE12 := l_curr_ver_label_rec.ATTRIBUTE12 ;
24633 END IF;
24634 IF (p_version_label_rec.ATTRIBUTE13 = FND_API.G_MISS_CHAR) THEN
24635 l_temp_ver_label_rec.ATTRIBUTE13 := l_curr_ver_label_rec.ATTRIBUTE13 ;
24636 END IF;
24637 IF (p_version_label_rec.ATTRIBUTE14 = FND_API.G_MISS_CHAR) THEN
24638 l_temp_ver_label_rec.ATTRIBUTE14 := l_curr_ver_label_rec.ATTRIBUTE14 ;
24639 END IF;
24640 IF (p_version_label_rec.ATTRIBUTE15 = FND_API.G_MISS_CHAR) THEN
24641 l_temp_ver_label_rec.ATTRIBUTE15 := l_curr_ver_label_rec.ATTRIBUTE15 ;
24642 END IF;
24643
24644 -- Call the table handlers to insert into history table
24645
24646 CSI_I_VERSION_LABELS_H_PKG.Insert_Row
24647 (
24648 px_VERSION_LABEL_HISTORY_ID => l_version_label_hist_id ,
24649 p_VERSION_LABEL_ID => p_version_label_rec.VERSION_LABEL_ID ,
24650 p_TRANSACTION_ID => p_txn_rec.TRANSACTION_ID ,
24651 p_OLD_VERSION_LABEL => l_temp_ver_label_rec.VERSION_LABEL ,
24652 p_NEW_VERSION_LABEL => p_version_label_rec.VERSION_LABEL ,
24653 p_OLD_DESCRIPTION => l_temp_ver_label_rec.DESCRIPTION ,
24654 p_NEW_DESCRIPTION => p_version_label_rec.DESCRIPTION ,
24655 p_OLD_DATE_TIME_STAMP => l_temp_ver_label_rec.DATE_TIME_STAMP ,
24656 p_NEW_DATE_TIME_STAMP => p_version_label_rec.DATE_TIME_STAMP ,
24657 p_OLD_ACTIVE_START_DATE => l_temp_ver_label_rec.ACTIVE_START_DATE ,
24658 p_NEW_ACTIVE_START_DATE => p_version_label_rec.ACTIVE_START_DATE ,
24659 p_OLD_ACTIVE_END_DATE => l_temp_ver_label_rec.ACTIVE_END_DATE ,
24660 p_NEW_ACTIVE_END_DATE => p_version_label_rec.ACTIVE_END_DATE ,
24661 p_OLD_CONTEXT => l_temp_ver_label_rec.CONTEXT ,
24662 p_NEW_CONTEXT => p_version_label_rec.CONTEXT ,
24663 p_OLD_ATTRIBUTE1 => l_temp_ver_label_rec.ATTRIBUTE1 ,
24664 p_NEW_ATTRIBUTE1 => p_version_label_rec.ATTRIBUTE1 ,
24665 p_OLD_ATTRIBUTE2 => l_temp_ver_label_rec.ATTRIBUTE2 ,
24666 p_NEW_ATTRIBUTE2 => p_version_label_rec.ATTRIBUTE2 ,
24667 p_OLD_ATTRIBUTE3 => l_temp_ver_label_rec.ATTRIBUTE3 ,
24668 p_NEW_ATTRIBUTE3 => p_version_label_rec.ATTRIBUTE3 ,
24669 p_OLD_ATTRIBUTE4 => l_temp_ver_label_rec.ATTRIBUTE4 ,
24670 p_NEW_ATTRIBUTE4 => p_version_label_rec.ATTRIBUTE4 ,
24671 p_OLD_ATTRIBUTE5 => l_temp_ver_label_rec.ATTRIBUTE5 ,
24672 p_NEW_ATTRIBUTE5 => p_version_label_rec.ATTRIBUTE5 ,
24673 p_OLD_ATTRIBUTE6 => l_temp_ver_label_rec.ATTRIBUTE6 ,
24674 p_NEW_ATTRIBUTE6 => p_version_label_rec.ATTRIBUTE6 ,
24675 p_OLD_ATTRIBUTE7 => l_temp_ver_label_rec.ATTRIBUTE7 ,
24676 p_NEW_ATTRIBUTE7 => p_version_label_rec.ATTRIBUTE7 ,
24677 p_OLD_ATTRIBUTE8 => l_temp_ver_label_rec.ATTRIBUTE8 ,
24678 p_NEW_ATTRIBUTE8 => p_version_label_rec.ATTRIBUTE8 ,
24679 p_OLD_ATTRIBUTE9 => l_temp_ver_label_rec.ATTRIBUTE9 ,
24680 p_NEW_ATTRIBUTE9 => p_version_label_rec.ATTRIBUTE9 ,
24681 p_OLD_ATTRIBUTE10 => l_temp_ver_label_rec.ATTRIBUTE10 ,
24682 p_NEW_ATTRIBUTE10 => p_version_label_rec.ATTRIBUTE10,
24683 p_OLD_ATTRIBUTE11 => l_temp_ver_label_rec.ATTRIBUTE11 ,
24684 p_NEW_ATTRIBUTE11 => p_version_label_rec.ATTRIBUTE11,
24685 p_OLD_ATTRIBUTE12 => l_temp_ver_label_rec.ATTRIBUTE12 ,
24686 p_NEW_ATTRIBUTE12 => p_version_label_rec.ATTRIBUTE12,
24687 p_OLD_ATTRIBUTE13 => l_temp_ver_label_rec.ATTRIBUTE13 ,
24688 p_NEW_ATTRIBUTE13 => p_version_label_rec.ATTRIBUTE13,
24689 p_OLD_ATTRIBUTE14 => l_temp_ver_label_rec.ATTRIBUTE14 ,
24690 p_NEW_ATTRIBUTE14 => p_version_label_rec.ATTRIBUTE14,
24691 p_OLD_ATTRIBUTE15 => l_temp_ver_label_rec.ATTRIBUTE15 ,
24692 p_NEW_ATTRIBUTE15 => p_version_label_rec.ATTRIBUTE15,
24693 p_FULL_DUMP_FLAG => 'Y' ,
24694 p_CREATED_BY => FND_GLOBAL.USER_ID ,
24695 p_CREATION_DATE => SYSDATE ,
24696 p_LAST_UPDATED_BY => FND_GLOBAL.USER_ID ,
24697 p_LAST_UPDATE_DATE => SYSDATE ,
24698 p_LAST_UPDATE_LOGIN => FND_GLOBAL.LOGIN_ID ,
24699 p_OBJECT_VERSION_NUMBER => 1 );
24700
24701
24702 ELSE
24703 -- If the mod value is not equal to zero then dump only the changed columns
24704 -- while the unchanged values have old and new values as null
24705
24706 IF (p_version_label_rec.version_label = fnd_api.g_miss_char) OR
24707 NVL(p_version_label_rec.version_label, fnd_api.g_miss_char) = NVL(l_curr_ver_label_rec.version_label, fnd_api.g_miss_char) THEN
24708 l_ver_label_hist_rec.old_version_label := NULL;
24709 l_ver_label_hist_rec.new_version_label := NULL;
24710 ELSIF
24711 NVL(l_curr_ver_label_rec.version_label,fnd_api.g_miss_char) <> NVL(p_version_label_rec.version_label,fnd_api.g_miss_char) THEN
24712 l_ver_label_hist_rec.old_version_label := l_curr_ver_label_rec.version_label ;
24713 l_ver_label_hist_rec.new_version_label := p_version_label_rec.version_label ;
24714 END IF;
24715 --
24716 IF (p_version_label_rec.date_time_stamp = fnd_api.g_miss_date) OR
24717 NVL(p_version_label_rec.date_time_stamp, fnd_api.g_miss_date) = NVL(l_curr_ver_label_rec.date_time_stamp, fnd_api.g_miss_date) THEN
24718 l_ver_label_hist_rec.old_date_time_stamp := NULL;
24719 l_ver_label_hist_rec.new_date_time_stamp := NULL;
24720 ELSIF
24721 NVL(l_curr_ver_label_rec.date_time_stamp,fnd_api.g_miss_date) <> NVL(p_version_label_rec.date_time_stamp,fnd_api.g_miss_date) THEN
24722 l_ver_label_hist_rec.old_date_time_stamp := l_curr_ver_label_rec.date_time_stamp ;
24723 l_ver_label_hist_rec.new_date_time_stamp := p_version_label_rec.date_time_stamp ;
24724 END IF;
24725 --
24726 IF (p_version_label_rec.description = fnd_api.g_miss_char) OR
24727 NVL(p_version_label_rec.description, fnd_api.g_miss_char) = NVL(l_curr_ver_label_rec.description, fnd_api.g_miss_char) THEN
24728 l_ver_label_hist_rec.old_description := NULL;
24729 l_ver_label_hist_rec.new_description := NULL;
24730 ELSIF
24731 NVL(l_curr_ver_label_rec.description,fnd_api.g_miss_char) <> NVL(p_version_label_rec.description,fnd_api.g_miss_char) THEN
24732 l_ver_label_hist_rec.old_description := l_curr_ver_label_rec.description ;
24733 l_ver_label_hist_rec.new_description := p_version_label_rec.description ;
24734 END IF;
24735 --
24736 IF (p_version_label_rec.active_start_date = fnd_api.g_miss_date) OR
24737 NVL(l_curr_ver_label_rec.active_start_date,fnd_api.g_miss_date) = NVL(p_version_label_rec.active_start_date,fnd_api.g_miss_date) THEN
24738 l_ver_label_hist_rec.old_active_start_date := NULL;
24739 l_ver_label_hist_rec.new_active_start_date := NULL;
24740 ELSIF
24741 NVL(l_curr_ver_label_rec.active_start_date,fnd_api.g_miss_date) <> NVL(p_version_label_rec.active_start_date,fnd_api.g_miss_date) THEN
24742 l_ver_label_hist_rec.old_active_start_date := l_curr_ver_label_rec.active_start_date ;
24743 l_ver_label_hist_rec.new_active_start_date := p_version_label_rec.active_start_date ;
24744 END IF;
24745 --
24746 IF (p_version_label_rec.active_end_date = fnd_api.g_miss_date) OR
24747 NVL(l_curr_ver_label_rec.active_end_date,fnd_api.g_miss_date) = NVL(p_version_label_rec.active_end_date,fnd_api.g_miss_date) THEN
24748 l_ver_label_hist_rec.old_active_end_date := NULL;
24749 l_ver_label_hist_rec.new_active_end_date := NULL;
24750 ELSIF
24751 NVL(l_curr_ver_label_rec.active_end_date,fnd_api.g_miss_date) <> NVL(p_version_label_rec.active_end_date,fnd_api.g_miss_date) THEN
24752 l_ver_label_hist_rec.old_active_end_date := l_curr_ver_label_rec.active_end_date ;
24753 l_ver_label_hist_rec.new_active_end_date := p_version_label_rec.active_end_date ;
24754 END IF;
24755 --
24756 IF (p_version_label_rec.context = fnd_api.g_miss_char) OR
24757 NVL(l_curr_ver_label_rec.context,fnd_api.g_miss_char) = NVL(p_version_label_rec.context,fnd_api.g_miss_char) THEN
24758 l_ver_label_hist_rec.old_context := NULL;
24759 l_ver_label_hist_rec.new_context := NULL;
24760 ELSIF
24761 NVL(l_curr_ver_label_rec.context,fnd_api.g_miss_char) <> NVL(p_version_label_rec.context,fnd_api.g_miss_char) THEN
24762 l_ver_label_hist_rec.old_context := l_curr_ver_label_rec.context ;
24763 l_ver_label_hist_rec.new_context := p_version_label_rec.context ;
24764 END IF;
24765 --
24766 IF (p_version_label_rec.attribute1 = fnd_api.g_miss_char) OR
24767 NVL(l_curr_ver_label_rec.attribute1,fnd_api.g_miss_char) = NVL(p_version_label_rec.attribute1,fnd_api.g_miss_char) THEN
24768 l_ver_label_hist_rec.old_attribute1 := NULL;
24769 l_ver_label_hist_rec.new_attribute1 := NULL;
24770 ELSIF
24771 NVL(l_curr_ver_label_rec.attribute1,fnd_api.g_miss_char) <> NVL(p_version_label_rec.attribute1,fnd_api.g_miss_char) THEN
24772 l_ver_label_hist_rec.old_attribute1 := l_curr_ver_label_rec.attribute1 ;
24773 l_ver_label_hist_rec.new_attribute1 := p_version_label_rec.attribute1 ;
24774 END IF;
24775 --
24776 IF (p_version_label_rec.attribute2 = fnd_api.g_miss_char) OR
24777 NVL(l_curr_ver_label_rec.attribute2,fnd_api.g_miss_char) = NVL(p_version_label_rec.attribute2,fnd_api.g_miss_char) THEN
24778 l_ver_label_hist_rec.old_attribute2 := NULL;
24779 l_ver_label_hist_rec.new_attribute2 := NULL;
24780 ELSIF
24781 NVL(l_curr_ver_label_rec.attribute2,fnd_api.g_miss_char) <> NVL(p_version_label_rec.attribute2,fnd_api.g_miss_char) THEN
24782 l_ver_label_hist_rec.old_attribute2 := l_curr_ver_label_rec.attribute2 ;
24783 l_ver_label_hist_rec.new_attribute2 := p_version_label_rec.attribute2 ;
24784 END IF;
24785 --
24786 IF (p_version_label_rec.attribute3 = fnd_api.g_miss_char) OR
24787 NVL(l_curr_ver_label_rec.attribute3,fnd_api.g_miss_char) = NVL(p_version_label_rec.attribute3,fnd_api.g_miss_char) THEN
24788 l_ver_label_hist_rec.old_attribute3 := NULL;
24789 l_ver_label_hist_rec.new_attribute3 := NULL;
24790 ELSIF
24791 NVL(l_curr_ver_label_rec.attribute3,fnd_api.g_miss_char) <> NVL(p_version_label_rec.attribute3,fnd_api.g_miss_char) THEN
24792 l_ver_label_hist_rec.old_attribute3 := l_curr_ver_label_rec.attribute3 ;
24793 l_ver_label_hist_rec.new_attribute3 := p_version_label_rec.attribute3 ;
24794 END IF;
24795 --
24796 IF (p_version_label_rec.attribute4 = fnd_api.g_miss_char) OR
24797 NVL(l_curr_ver_label_rec.attribute4,fnd_api.g_miss_char) = NVL(p_version_label_rec.attribute4,fnd_api.g_miss_char) THEN
24798 l_ver_label_hist_rec.old_attribute4 := NULL;
24799 l_ver_label_hist_rec.new_attribute4 := NULL;
24800 ELSIF
24801 NVL(l_curr_ver_label_rec.attribute4,fnd_api.g_miss_char) <> NVL(p_version_label_rec.attribute4,fnd_api.g_miss_char) THEN
24802 l_ver_label_hist_rec.old_attribute4 := l_curr_ver_label_rec.attribute4 ;
24803 l_ver_label_hist_rec.new_attribute4 := p_version_label_rec.attribute4 ;
24804 END IF;
24805 --
24806 IF (p_version_label_rec.attribute5 = fnd_api.g_miss_char) OR
24807 NVL(l_curr_ver_label_rec.attribute5,fnd_api.g_miss_char) = NVL(p_version_label_rec.attribute5,fnd_api.g_miss_char) THEN
24808 l_ver_label_hist_rec.old_attribute5 := NULL;
24809 l_ver_label_hist_rec.new_attribute5 := NULL;
24810 ELSIF
24811 NVL(l_curr_ver_label_rec.attribute5,fnd_api.g_miss_char) <> NVL(p_version_label_rec.attribute5,fnd_api.g_miss_char) THEN
24812 l_ver_label_hist_rec.old_attribute5 := l_curr_ver_label_rec.attribute5 ;
24813 l_ver_label_hist_rec.new_attribute5 := p_version_label_rec.attribute5 ;
24814 END IF;
24815 --
24816 IF (p_version_label_rec.attribute6 = fnd_api.g_miss_char) OR
24817 NVL(l_curr_ver_label_rec.attribute6,fnd_api.g_miss_char) = NVL(p_version_label_rec.attribute6,fnd_api.g_miss_char) THEN
24818 l_ver_label_hist_rec.old_attribute6 := NULL;
24819 l_ver_label_hist_rec.new_attribute6 := NULL;
24820 ELSIF
24821 NVL(l_curr_ver_label_rec.attribute6,fnd_api.g_miss_char) <> NVL(p_version_label_rec.attribute6,fnd_api.g_miss_char) THEN
24822 l_ver_label_hist_rec.old_attribute6 := l_curr_ver_label_rec.attribute6 ;
24823 l_ver_label_hist_rec.new_attribute6 := p_version_label_rec.attribute6 ;
24824 END IF;
24825 --
24826 IF (p_version_label_rec.attribute7 = fnd_api.g_miss_char) OR
24827 NVL(l_curr_ver_label_rec.attribute7,fnd_api.g_miss_char) = NVL(p_version_label_rec.attribute7,fnd_api.g_miss_char) THEN
24828 l_ver_label_hist_rec.old_attribute7 := NULL;
24829 l_ver_label_hist_rec.new_attribute7 := NULL;
24830 ELSIF
24831 NVL(l_curr_ver_label_rec.attribute7,fnd_api.g_miss_char) <> NVL(p_version_label_rec.attribute7,fnd_api.g_miss_char) THEN
24832 l_ver_label_hist_rec.old_attribute7 := l_curr_ver_label_rec.attribute7 ;
24833 l_ver_label_hist_rec.new_attribute7 := p_version_label_rec.attribute7 ;
24834 END IF;
24835 --
24836 IF (p_version_label_rec.attribute8 = fnd_api.g_miss_char) OR
24837 NVL(l_curr_ver_label_rec.attribute8,fnd_api.g_miss_char) = NVL(p_version_label_rec.attribute8,fnd_api.g_miss_char) THEN
24838 l_ver_label_hist_rec.old_attribute8 := NULL;
24839 l_ver_label_hist_rec.new_attribute8 := NULL;
24840 ELSIF
24841 NVL(l_curr_ver_label_rec.attribute8,fnd_api.g_miss_char) <> NVL(p_version_label_rec.attribute8,fnd_api.g_miss_char) THEN
24842 l_ver_label_hist_rec.old_attribute8 := l_curr_ver_label_rec.attribute8 ;
24843 l_ver_label_hist_rec.new_attribute8 := p_version_label_rec.attribute8 ;
24844 END IF;
24845 --
24846 IF (p_version_label_rec.attribute9 = fnd_api.g_miss_char) OR
24847 NVL(l_curr_ver_label_rec.attribute9,fnd_api.g_miss_char) = NVL(p_version_label_rec.attribute9,fnd_api.g_miss_char) THEN
24848 l_ver_label_hist_rec.old_attribute9 := NULL;
24849 l_ver_label_hist_rec.new_attribute9 := NULL;
24850 ELSIF
24851 NVL(l_curr_ver_label_rec.attribute9,fnd_api.g_miss_char) <> NVL(p_version_label_rec.attribute9,fnd_api.g_miss_char) THEN
24852 l_ver_label_hist_rec.old_attribute9 := l_curr_ver_label_rec.attribute9 ;
24853 l_ver_label_hist_rec.new_attribute9 := p_version_label_rec.attribute9 ;
24854 END IF;
24855 --
24856 IF (p_version_label_rec.attribute10 = fnd_api.g_miss_char) OR
24857 NVL(l_curr_ver_label_rec.attribute10,fnd_api.g_miss_char) = NVL(p_version_label_rec.attribute10,fnd_api.g_miss_char) THEN
24858 l_ver_label_hist_rec.old_attribute10 := NULL;
24859 l_ver_label_hist_rec.new_attribute10 := NULL;
24860 ELSIF
24861 NVL(l_curr_ver_label_rec.attribute10,fnd_api.g_miss_char) <> NVL(p_version_label_rec.attribute10,fnd_api.g_miss_char) THEN
24862 l_ver_label_hist_rec.old_attribute10 := l_curr_ver_label_rec.attribute10 ;
24863 l_ver_label_hist_rec.new_attribute10 := p_version_label_rec.attribute10 ;
24864 END IF;
24865 --
24866 IF (p_version_label_rec.attribute11 = fnd_api.g_miss_char) OR
24867 NVL(l_curr_ver_label_rec.attribute11,fnd_api.g_miss_char) = NVL(p_version_label_rec.attribute11,fnd_api.g_miss_char) THEN
24868 l_ver_label_hist_rec.old_attribute11 := NULL;
24869 l_ver_label_hist_rec.new_attribute11 := NULL;
24870 ELSIF
24871 NVL(l_curr_ver_label_rec.attribute11,fnd_api.g_miss_char) <> NVL(p_version_label_rec.attribute11,fnd_api.g_miss_char) THEN
24872 l_ver_label_hist_rec.old_attribute11 := l_curr_ver_label_rec.attribute11 ;
24873 l_ver_label_hist_rec.new_attribute11 := p_version_label_rec.attribute11 ;
24874 END IF;
24875 --
24876 IF (p_version_label_rec.attribute12 = fnd_api.g_miss_char) OR
24877 NVL(l_curr_ver_label_rec.attribute12,fnd_api.g_miss_char) = NVL(p_version_label_rec.attribute12,fnd_api.g_miss_char) THEN
24878 l_ver_label_hist_rec.old_attribute12 := NULL;
24879 l_ver_label_hist_rec.new_attribute12 := NULL;
24880 ELSIF
24881 NVL(l_curr_ver_label_rec.attribute12,fnd_api.g_miss_char) <> NVL(p_version_label_rec.attribute12,fnd_api.g_miss_char) THEN
24882 l_ver_label_hist_rec.old_attribute12 := l_curr_ver_label_rec.attribute12 ;
24883 l_ver_label_hist_rec.new_attribute12 := p_version_label_rec.attribute12 ;
24884 END IF;
24885 --
24886 IF (p_version_label_rec.attribute13 = fnd_api.g_miss_char) OR
24887 NVL(l_curr_ver_label_rec.attribute13,fnd_api.g_miss_char) = NVL(p_version_label_rec.attribute13,fnd_api.g_miss_char) THEN
24888 l_ver_label_hist_rec.old_attribute13 := NULL;
24889 l_ver_label_hist_rec.new_attribute13 := NULL;
24890 ELSIF
24891 NVL(l_curr_ver_label_rec.attribute13,fnd_api.g_miss_char) <> NVL(p_version_label_rec.attribute13,fnd_api.g_miss_char) THEN
24892 l_ver_label_hist_rec.old_attribute13 := l_curr_ver_label_rec.attribute13 ;
24893 l_ver_label_hist_rec.new_attribute13 := p_version_label_rec.attribute13 ;
24894 END IF;
24895 --
24896 IF (p_version_label_rec.attribute14 = fnd_api.g_miss_char) OR
24897 NVL(l_curr_ver_label_rec.attribute14,fnd_api.g_miss_char) = NVL(p_version_label_rec.attribute14,fnd_api.g_miss_char) THEN
24898 l_ver_label_hist_rec.old_attribute14 := NULL;
24899 l_ver_label_hist_rec.new_attribute14 := NULL;
24900 ELSIF
24901 NVL(l_curr_ver_label_rec.attribute14,fnd_api.g_miss_char) <> NVL(p_version_label_rec.attribute14,fnd_api.g_miss_char) THEN
24902 l_ver_label_hist_rec.old_attribute14 := l_curr_ver_label_rec.attribute14 ;
24903 l_ver_label_hist_rec.new_attribute14 := p_version_label_rec.attribute14 ;
24904 END IF;
24905 --
24906 IF (p_version_label_rec.attribute15 = fnd_api.g_miss_char) OR
24907 NVL(l_curr_ver_label_rec.attribute15,fnd_api.g_miss_char) = NVL(p_version_label_rec.attribute15,fnd_api.g_miss_char) THEN
24908 l_ver_label_hist_rec.old_attribute15 := NULL;
24909 l_ver_label_hist_rec.new_attribute15 := NULL;
24910 ELSIF
24911 NVL(l_curr_ver_label_rec.attribute15,fnd_api.g_miss_char) <> NVL(p_version_label_rec.attribute15,fnd_api.g_miss_char) THEN
24912 l_ver_label_hist_rec.old_attribute15 := l_curr_ver_label_rec.attribute15 ;
24913 l_ver_label_hist_rec.new_attribute15 := p_version_label_rec.attribute15 ;
24914 END IF;
24915
24916 -- Call the table handlers to insert into history table
24917 CSI_I_VERSION_LABELS_H_PKG.Insert_Row
24918 (
24919 px_VERSION_LABEL_HISTORY_ID => l_version_label_hist_id ,
24920 p_VERSION_LABEL_ID => p_version_label_rec.VERSION_LABEL_ID ,
24921 p_TRANSACTION_ID => p_txn_rec.TRANSACTION_ID ,
24922 p_OLD_VERSION_LABEL => l_ver_label_hist_rec.OLD_VERSION_LABEL ,
24923 p_NEW_VERSION_LABEL => l_ver_label_hist_rec.NEW_VERSION_LABEL ,
24924 p_OLD_DESCRIPTION => l_ver_label_hist_rec.OLD_DESCRIPTION ,
24925 p_NEW_DESCRIPTION => l_ver_label_hist_rec.NEW_DESCRIPTION ,
24926 p_OLD_DATE_TIME_STAMP => l_ver_label_hist_rec.OLD_DATE_TIME_STAMP ,
24927 p_NEW_DATE_TIME_STAMP => l_ver_label_hist_rec.NEW_DATE_TIME_STAMP ,
24928 p_OLD_ACTIVE_START_DATE => l_ver_label_hist_rec.OLD_ACTIVE_START_DATE ,
24929 p_NEW_ACTIVE_START_DATE => l_ver_label_hist_rec.NEW_ACTIVE_START_DATE ,
24930 p_OLD_ACTIVE_END_DATE => l_ver_label_hist_rec.OLD_ACTIVE_END_DATE ,
24931 p_NEW_ACTIVE_END_DATE => l_ver_label_hist_rec.NEW_ACTIVE_END_DATE ,
24932 p_OLD_CONTEXT => l_ver_label_hist_rec.OLD_CONTEXT ,
24933 p_NEW_CONTEXT => l_ver_label_hist_rec.NEW_CONTEXT ,
24934 p_OLD_ATTRIBUTE1 => l_ver_label_hist_rec.OLD_ATTRIBUTE1,
24935 p_NEW_ATTRIBUTE1 => l_ver_label_hist_rec.NEW_ATTRIBUTE1 ,
24936 p_OLD_ATTRIBUTE2 => l_ver_label_hist_rec.OLD_ATTRIBUTE2,
24937 p_NEW_ATTRIBUTE2 => l_ver_label_hist_rec.NEW_ATTRIBUTE2 ,
24938 p_OLD_ATTRIBUTE3 => l_ver_label_hist_rec.OLD_ATTRIBUTE3,
24939 p_NEW_ATTRIBUTE3 => l_ver_label_hist_rec.NEW_ATTRIBUTE3 ,
24940 p_OLD_ATTRIBUTE4 => l_ver_label_hist_rec.OLD_ATTRIBUTE4,
24941 p_NEW_ATTRIBUTE4 => l_ver_label_hist_rec.NEW_ATTRIBUTE4 ,
24942 p_OLD_ATTRIBUTE5 => l_ver_label_hist_rec.OLD_ATTRIBUTE5,
24943 p_NEW_ATTRIBUTE5 => l_ver_label_hist_rec.NEW_ATTRIBUTE5 ,
24944 p_OLD_ATTRIBUTE6 => l_ver_label_hist_rec.OLD_ATTRIBUTE6,
24945 p_NEW_ATTRIBUTE6 => l_ver_label_hist_rec.NEW_ATTRIBUTE6 ,
24946 p_OLD_ATTRIBUTE7 => l_ver_label_hist_rec.OLD_ATTRIBUTE7,
24947 p_NEW_ATTRIBUTE7 => l_ver_label_hist_rec.NEW_ATTRIBUTE7 ,
24948 p_OLD_ATTRIBUTE8 => l_ver_label_hist_rec.OLD_ATTRIBUTE8,
24949 p_NEW_ATTRIBUTE8 => l_ver_label_hist_rec.NEW_ATTRIBUTE8 ,
24950 p_OLD_ATTRIBUTE9 => l_ver_label_hist_rec.OLD_ATTRIBUTE9,
24951 p_NEW_ATTRIBUTE9 => l_ver_label_hist_rec.NEW_ATTRIBUTE9 ,
24952 p_OLD_ATTRIBUTE10 => l_ver_label_hist_rec.OLD_ATTRIBUTE10,
24953 p_NEW_ATTRIBUTE10 => l_ver_label_hist_rec.NEW_ATTRIBUTE10,
24954 p_OLD_ATTRIBUTE11 => l_ver_label_hist_rec.OLD_ATTRIBUTE11,
24955 p_NEW_ATTRIBUTE11 => l_ver_label_hist_rec.NEW_ATTRIBUTE11,
24956 p_OLD_ATTRIBUTE12 => l_ver_label_hist_rec.OLD_ATTRIBUTE12,
24957 p_NEW_ATTRIBUTE12 => l_ver_label_hist_rec.NEW_ATTRIBUTE12,
24958 p_OLD_ATTRIBUTE13 => l_ver_label_hist_rec.OLD_ATTRIBUTE13,
24959 p_NEW_ATTRIBUTE13 => l_ver_label_hist_rec.NEW_ATTRIBUTE13,
24960 p_OLD_ATTRIBUTE14 => l_ver_label_hist_rec.OLD_ATTRIBUTE14,
24961 p_NEW_ATTRIBUTE14 => l_ver_label_hist_rec.NEW_ATTRIBUTE14,
24962 p_OLD_ATTRIBUTE15 => l_ver_label_hist_rec.OLD_ATTRIBUTE15,
24963 p_NEW_ATTRIBUTE15 => l_ver_label_hist_rec.NEW_ATTRIBUTE15,
24964 p_FULL_DUMP_FLAG => 'N' ,
24965 p_CREATED_BY => FND_GLOBAL.USER_ID ,
24966 p_CREATION_DATE => SYSDATE ,
24967 p_LAST_UPDATED_BY => FND_GLOBAL.USER_ID ,
24968 p_LAST_UPDATE_DATE => SYSDATE ,
24969 p_LAST_UPDATE_LOGIN => FND_GLOBAL.LOGIN_ID ,
24970 p_OBJECT_VERSION_NUMBER => 1 );
24971
24972
24973 END IF;
24974
24975 END;
24976 -- End of modification for Bug#2547034 on 09/20/02 - rtalluri
24977 --
24978 -- End of API body
24979
24980 -- Standard check of p_commit.
24981 IF FND_API.To_Boolean( p_commit ) THEN
24982 COMMIT WORK;
24983 END IF;
24984
24985 -- Standard call to get message count and if count is get message info.
24986 FND_MSG_PUB.Count_And_Get
24987 (p_encoded => FND_API.G_FALSE,
24988 p_count => x_msg_count ,
24989 p_data => x_msg_data );
24990
24991 EXCEPTION
24992 WHEN FND_API.G_EXC_ERROR THEN
24993 ROLLBACK TO update_version_label_pvt;
24994 x_return_status := FND_API.G_RET_STS_ERROR ;
24995 FND_MSG_PUB.Count_And_Get
24996 ( p_encoded => FND_API.G_FALSE,
24997 p_count => x_msg_count,
24998 p_data => x_msg_data);
24999 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
25000 ROLLBACK TO update_version_label_pvt;
25001 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
25002 FND_MSG_PUB.Count_And_Get
25003 ( p_encoded => FND_API.G_FALSE,
25004 p_count => X_msg_count,
25005 p_data => X_msg_data);
25006 WHEN OTHERS THEN
25007 ROLLBACK TO update_version_label_pvt;
25008 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
25009 IF FND_MSG_PUB.Check_Msg_Level
25010 (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
25011 THEN
25012 FND_MSG_PUB.Add_Exc_Msg
25013 ( G_PKG_NAME, l_api_name );
25014 END IF;
25015 FND_MSG_PUB.Count_And_Get
25016 ( p_encoded => FND_API.G_FALSE,
25017 p_count => x_msg_count,
25018 p_data => x_msg_data );
25019 END update_version_label;
25020
25021 /*---------------------------------------------*/
25022 /* Procedure name: expire_version_label */
25023 /* Description : procedure for Update */
25024 /* version label for */
25025 /* an Item Instance */
25026 /*---------------------------------------------*/
25027
25028 PROCEDURE expire_version_label
25029 ( p_api_version IN NUMBER
25030 ,p_commit IN VARCHAR2
25031 ,p_init_msg_list IN VARCHAR2
25032 ,p_validation_level IN NUMBER
25033 ,p_version_label_rec IN csi_datastructures_pub.version_label_rec
25034 ,p_txn_rec IN OUT NOCOPY csi_datastructures_pub.transaction_rec
25035 ,x_return_status OUT NOCOPY VARCHAR2
25036 ,x_msg_count OUT NOCOPY NUMBER
25037 ,x_msg_data OUT NOCOPY VARCHAR2
25038 ) IS
25039 l_api_name CONSTANT VARCHAR2(30) := 'EXPIRE_VERSION_LABEL';
25040 l_api_version CONSTANT NUMBER := 1.0;
25041 l_debug_level NUMBER;
25042 l_version_label_rec csi_datastructures_pub.version_label_rec;
25043 l_curr_ver_label_rec csi_datastructures_pub.version_label_rec;
25044 l_msg_index NUMBER;
25045 l_OBJECT_VERSION_NUMBER NUMBER;
25046 l_mod_value NUMBER;
25047 l_version_label_hist_id NUMBER;
25048 x_msg_index_out NUMBER;
25049 l_full_dump_frequency NUMBER;
25050 l_flag VARCHAR2(1) :='N';
25051
25052 CURSOR get_curr_ver_label_rec (p_ver_label_id IN NUMBER) IS
25053 SELECT
25054 VERSION_LABEL_ID ,
25055 INSTANCE_ID ,
25056 VERSION_LABEL ,
25057 DESCRIPTION ,
25058 DATE_TIME_STAMP ,
25059 active_start_date ,
25060 active_end_date ,
25061 context ,
25062 attribute1 ,
25063 attribute2 ,
25064 attribute3 ,
25065 attribute4 ,
25066 attribute5 ,
25067 attribute6 ,
25068 attribute7 ,
25069 attribute8 ,
25070 attribute9 ,
25071 attribute10 ,
25072 attribute11 ,
25073 attribute12 ,
25074 attribute13 ,
25075 attribute14 ,
25076 attribute15 ,
25077 object_version_number --,
25078 -- null parent_tbl_index ,
25079 -- null processed_flag ,
25080 -- null interface_id
25081 FROM CSI_I_VERSION_LABELS
25082 WHERE VERSION_LABEL_ID = p_ver_label_id
25083 AND (( ACTIVE_END_DATE IS NULL) OR (ACTIVE_END_DATE >= SYSDATE))
25084 FOR UPDATE OF OBJECT_VERSION_NUMBER ;
25085
25086 BEGIN
25087 -- Standard Start of API savepoint
25088 SAVEPOINT expire_version_label_pvt;
25089
25090 -- Standard call to check for call compatibility.
25091 IF NOT FND_API.Compatible_API_Call (l_api_version ,
25092 p_api_version ,
25093 l_api_name ,
25094 G_PKG_NAME )
25095 THEN
25096 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
25097 END IF;
25098
25099 -- Initialize message list if p_init_msg_list is set to TRUE.
25100 IF FND_API.to_Boolean( p_init_msg_list ) THEN
25101 FND_MSG_PUB.initialize;
25102 END IF;
25103 -- Initialize API return status to success
25104 x_return_status := FND_API.G_RET_STS_SUCCESS;
25105
25106 -- Check the profile option debug_level for debug message reporting
25107 l_debug_level:=fnd_profile.value('CSI_DEBUG_LEVEL');
25108
25109 -- If debug_level = 1 then dump the procedure name
25110 IF (l_debug_level > 0) THEN
25111 CSI_gen_utility_pvt.put_line( 'update_version_label');
25112 END IF;
25113
25114 -- If the debug level = 2 then dump all the parameters values.
25115 IF (l_debug_level > 1) THEN
25116 CSI_gen_utility_pvt.put_line( 'update_version_label:'||
25117 p_api_version ||'-'||
25118 p_commit ||'-'||
25119 p_init_msg_list );
25120 END IF;
25121
25122 -- Start API body
25123
25124 -- Check if all the required parameters are passed
25125 CSI_Instance_parties_vld_pvt.Check_Reqd_Param_num
25126 ( p_version_label_rec.version_label_id ,
25127 ' p_version_label_rec.version_label_id ',
25128 l_api_name );
25129
25130 CSI_Instance_parties_vld_pvt.Check_Reqd_Param_num
25131 ( p_version_label_rec.object_version_number ,
25132 ' p_version_label_rec.object_version_number ',
25133 l_api_name );
25134
25135 CSI_Instance_parties_vld_pvt.Check_Reqd_Param_date
25136 ( p_version_label_rec.active_end_date ,
25137 ' p_version_label_rec.active_end_date ',
25138 l_api_name );
25139
25140 IF p_version_label_rec.version_label_id <> FND_API.G_MISS_NUM THEN
25141 -- Validate the version label id if exist then raise CSI_API_INVALID_PRIMARY_KEY error
25142 IF NOT(CSI_Instance_parties_vld_pvt.Is_Ver_labelID_exists
25143 (p_version_label_rec.version_label_id,
25144 FALSE )) THEN
25145 RAISE FND_API.G_EXC_ERROR;
25146 END IF;
25147 END IF;
25148
25149 -- check if the object_version_number passed matches with the one
25150 -- in the database else raise error
25151 OPEN get_curr_ver_label_rec(p_version_label_rec.version_label_id);
25152 FETCH get_curr_ver_label_rec INTO l_curr_ver_label_rec;
25153 IF (l_curr_ver_label_rec.object_version_number <> nvl(p_version_label_rec.OBJECT_VERSION_NUMBER,-1)) THEN
25154 FND_MESSAGE.Set_Name('CSI', 'CSI_API_OBJ_VER_MISMATCH');
25155 FND_MSG_PUB.ADD;
25156 RAISE FND_API.G_EXC_ERROR;
25157 END IF;
25158
25159 IF get_curr_ver_label_rec%NOTFOUND THEN
25160 FND_MESSAGE.Set_Name('CSI', 'CSI_API_RECORD_LOCKED');
25161 FND_MSG_PUB.ADD;
25162 RAISE FND_API.G_EXC_ERROR;
25163 END IF;
25164 CLOSE get_curr_ver_label_rec;
25165
25166 -- Increment the object_version_number before updating
25167 l_OBJECT_VERSION_NUMBER := l_curr_ver_label_rec.OBJECT_VERSION_NUMBER + 1 ;
25168
25169 CSI_I_VERSION_LABELS_PKG.Update_Row(
25170 p_VERSION_LABEL_ID => p_version_label_rec.version_label_id,
25171 p_INSTANCE_ID => l_version_label_rec.instance_id,
25172 p_VERSION_LABEL => l_version_label_rec.VERSION_LABEL,
25173 p_DATE_TIME_STAMP => l_version_label_rec.DATE_TIME_STAMP,
25174 p_DESCRIPTION => l_version_label_rec.DESCRIPTION ,
25175 p_ACTIVE_START_DATE => l_version_label_rec.ACTIVE_START_DATE,
25176 p_ACTIVE_END_DATE => p_version_label_rec.ACTIVE_END_DATE,
25177 p_CONTEXT => l_version_label_rec.CONTEXT ,
25178 p_ATTRIBUTE1 => l_version_label_rec.ATTRIBUTE1,
25179 p_ATTRIBUTE2 => l_version_label_rec.ATTRIBUTE2,
25180 p_ATTRIBUTE3 => l_version_label_rec.ATTRIBUTE3,
25181 p_ATTRIBUTE4 => l_version_label_rec.ATTRIBUTE4,
25182 p_ATTRIBUTE5 => l_version_label_rec.ATTRIBUTE5,
25183 p_ATTRIBUTE6 => l_version_label_rec.ATTRIBUTE6,
25184 p_ATTRIBUTE7 => l_version_label_rec.ATTRIBUTE7,
25185 p_ATTRIBUTE8 => l_version_label_rec.ATTRIBUTE8,
25186 p_ATTRIBUTE9 => l_version_label_rec.ATTRIBUTE9,
25187 p_ATTRIBUTE10 => l_version_label_rec.ATTRIBUTE10,
25188 p_ATTRIBUTE11 => l_version_label_rec.ATTRIBUTE11,
25189 p_ATTRIBUTE12 => l_version_label_rec.ATTRIBUTE12,
25190 p_ATTRIBUTE13 => l_version_label_rec.ATTRIBUTE13,
25191 p_ATTRIBUTE14 => l_version_label_rec.ATTRIBUTE14,
25192 p_ATTRIBUTE15 => l_version_label_rec.ATTRIBUTE15,
25193 p_CREATED_BY => fnd_api.g_miss_num ,
25194 p_CREATION_DATE => fnd_api.g_miss_date ,
25195 p_LAST_UPDATED_BY => FND_GLOBAL.USER_ID ,
25196 p_LAST_UPDATE_DATE => sysdate ,
25197 p_LAST_UPDATE_LOGIN => FND_GLOBAL.LOGIN_ID ,
25198 p_OBJECT_VERSION_NUMBER => l_OBJECT_VERSION_NUMBER );
25199
25200
25201 -- Call create_transaction to create txn log
25202 CSI_TRANSACTIONS_PVT.Create_transaction
25203 (
25204 p_api_version => p_api_version
25205 ,p_commit => p_commit
25206 ,p_init_msg_list => p_init_msg_list
25207 ,p_validation_level => p_validation_level
25208 ,p_Success_If_Exists_Flag => 'Y'
25209 ,P_transaction_rec => p_txn_rec
25210 ,x_return_status => x_return_status
25211 ,x_msg_count => x_msg_count
25212 ,x_msg_data => x_msg_data );
25213
25214 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
25215 FOR i in 1..x_msg_Count LOOP
25216 FND_MSG_PUB.Get(p_msg_index => i,
25217 p_encoded => 'F',
25218 p_data => x_msg_data,
25219 p_msg_index_out => x_msg_index_out );
25220 CSI_gen_utility_pvt.put_line( 'message data = '||x_msg_data);
25221 End LOOP;
25222 RAISE FND_API.G_EXC_ERROR;
25223 END IF;
25224
25225 -- Generate a unique instance_party_history_id from the sequence
25226 l_version_label_hist_id := CSI_Instance_parties_vld_pvt.gen_ver_label_hist_id;
25227
25228 -- Get the full_dump_frequency from csi_install_parameter
25229 IF csi_datastructures_pub.g_install_param_rec.fetch_flag IS NULL THEN
25230 csi_gen_utility_pvt.populate_install_param_rec;
25231 END IF;
25232 --
25233 l_full_dump_frequency := csi_datastructures_pub.g_install_param_rec.history_full_dump_frequency;
25234 --
25235 IF l_full_dump_frequency IS NULL THEN
25236 FND_MESSAGE.SET_NAME('CSI','CSI_API_GET_FULL_DUMP_FAILED');
25237 FND_MSG_PUB.ADD;
25238 RAISE FND_API.G_EXC_ERROR;
25239 END IF;
25240
25241 select mod(l_object_version_number,l_full_dump_frequency)
25242 into l_mod_value
25243 from dual;
25244
25245 IF (l_mod_value = 0) THEN
25246 -- If the mod value is 0 then dump all the columns both changed and unchanged
25247 -- changed columns have old and new values while the unchanged values have old and new values
25248 -- exactly same
25249
25250 -- Call the table handlers to insert into history table
25251 CSI_I_VERSION_LABELS_H_PKG.Insert_Row
25252 (
25253 px_VERSION_LABEL_HISTORY_ID => l_version_label_hist_id ,
25254 p_VERSION_LABEL_ID => p_version_label_rec.version_label_id ,
25255 p_TRANSACTION_ID => p_txn_rec.TRANSACTION_ID ,
25256 p_OLD_VERSION_LABEL => l_curr_ver_label_rec.VERSION_LABEL ,
25257 p_NEW_VERSION_LABEL => l_curr_ver_label_rec.VERSION_LABEL ,
25258 p_OLD_DESCRIPTION => l_curr_ver_label_rec.DESCRIPTION ,
25259 p_NEW_DESCRIPTION => l_curr_ver_label_rec.DESCRIPTION ,
25260 p_OLD_DATE_TIME_STAMP => l_curr_ver_label_rec.DATE_TIME_STAMP ,
25261 p_NEW_DATE_TIME_STAMP => l_curr_ver_label_rec.DATE_TIME_STAMP ,
25262 p_OLD_ACTIVE_START_DATE => l_curr_ver_label_rec.ACTIVE_START_DATE ,
25263 p_NEW_ACTIVE_START_DATE => l_curr_ver_label_rec.ACTIVE_START_DATE ,
25264 p_OLD_ACTIVE_END_DATE => l_curr_ver_label_rec.ACTIVE_END_DATE ,
25265 p_NEW_ACTIVE_END_DATE => p_version_label_rec.ACTIVE_END_DATE ,
25266 p_OLD_CONTEXT => l_curr_ver_label_rec.CONTEXT ,
25267 p_NEW_CONTEXT => l_curr_ver_label_rec.CONTEXT ,
25268 p_OLD_ATTRIBUTE1 => l_curr_ver_label_rec.ATTRIBUTE1 ,
25269 p_NEW_ATTRIBUTE1 => l_curr_ver_label_rec.ATTRIBUTE1 ,
25270 p_OLD_ATTRIBUTE2 => l_curr_ver_label_rec.ATTRIBUTE2 ,
25271 p_NEW_ATTRIBUTE2 => l_curr_ver_label_rec.ATTRIBUTE2 ,
25272 p_OLD_ATTRIBUTE3 => l_curr_ver_label_rec.ATTRIBUTE3 ,
25273 p_NEW_ATTRIBUTE3 => l_curr_ver_label_rec.ATTRIBUTE3 ,
25274 p_OLD_ATTRIBUTE4 => l_curr_ver_label_rec.ATTRIBUTE4 ,
25275 p_NEW_ATTRIBUTE4 => l_curr_ver_label_rec.ATTRIBUTE4 ,
25276 p_OLD_ATTRIBUTE5 => l_curr_ver_label_rec.ATTRIBUTE5 ,
25277 p_NEW_ATTRIBUTE5 => l_curr_ver_label_rec.ATTRIBUTE5 ,
25278 p_OLD_ATTRIBUTE6 => l_curr_ver_label_rec.ATTRIBUTE6 ,
25279 p_NEW_ATTRIBUTE6 => l_curr_ver_label_rec.ATTRIBUTE6 ,
25280 p_OLD_ATTRIBUTE7 => l_curr_ver_label_rec.ATTRIBUTE7 ,
25281 p_NEW_ATTRIBUTE7 => l_curr_ver_label_rec.ATTRIBUTE7 ,
25282 p_OLD_ATTRIBUTE8 => l_curr_ver_label_rec.ATTRIBUTE8 ,
25283 p_NEW_ATTRIBUTE8 => l_curr_ver_label_rec.ATTRIBUTE8 ,
25284 p_OLD_ATTRIBUTE9 => l_curr_ver_label_rec.ATTRIBUTE9 ,
25285 p_NEW_ATTRIBUTE9 => l_curr_ver_label_rec.ATTRIBUTE9 ,
25286 p_OLD_ATTRIBUTE10 => l_curr_ver_label_rec.ATTRIBUTE10,
25287 p_NEW_ATTRIBUTE10 => l_curr_ver_label_rec.ATTRIBUTE10,
25288 p_OLD_ATTRIBUTE11 => l_curr_ver_label_rec.ATTRIBUTE11,
25289 p_NEW_ATTRIBUTE11 => l_curr_ver_label_rec.ATTRIBUTE11,
25290 p_OLD_ATTRIBUTE12 => l_curr_ver_label_rec.ATTRIBUTE12,
25291 p_NEW_ATTRIBUTE12 => l_curr_ver_label_rec.ATTRIBUTE12,
25292 p_OLD_ATTRIBUTE13 => l_curr_ver_label_rec.ATTRIBUTE13,
25293 p_NEW_ATTRIBUTE13 => l_curr_ver_label_rec.ATTRIBUTE13,
25294 p_OLD_ATTRIBUTE14 => l_curr_ver_label_rec.ATTRIBUTE14,
25295 p_NEW_ATTRIBUTE14 => l_curr_ver_label_rec.ATTRIBUTE14,
25296 p_OLD_ATTRIBUTE15 => l_curr_ver_label_rec.ATTRIBUTE15,
25297 p_NEW_ATTRIBUTE15 => l_curr_ver_label_rec.ATTRIBUTE15,
25298 p_FULL_DUMP_FLAG => 'Y' ,
25299 p_CREATED_BY => FND_GLOBAL.USER_ID ,
25300 p_CREATION_DATE => SYSDATE ,
25301 p_LAST_UPDATED_BY => FND_GLOBAL.USER_ID ,
25302 p_LAST_UPDATE_DATE => SYSDATE ,
25303 p_LAST_UPDATE_LOGIN => FND_GLOBAL.LOGIN_ID ,
25304 p_OBJECT_VERSION_NUMBER => 1 );
25305
25306
25307 ELSE
25308 -- If the mod value is not equal to zero then dump only the changed columns
25309 -- while the unchanged values have old and new values as null
25310
25311 -- Call the table handlers to insert into history table
25312 CSI_I_VERSION_LABELS_H_PKG.Insert_Row
25313 (
25314 px_VERSION_LABEL_HISTORY_ID => l_version_label_hist_id ,
25315 p_VERSION_LABEL_ID => p_version_label_rec.version_label_id ,
25316 p_TRANSACTION_ID => p_txn_rec.TRANSACTION_ID ,
25317 p_OLD_VERSION_LABEL => l_version_label_rec.VERSION_LABEL ,
25318 p_NEW_VERSION_LABEL => l_version_label_rec.VERSION_LABEL ,
25319 p_OLD_DESCRIPTION => l_version_label_rec.DESCRIPTION ,
25320 p_NEW_DESCRIPTION => l_version_label_rec.DESCRIPTION ,
25321 p_OLD_DATE_TIME_STAMP => l_version_label_rec.DATE_TIME_STAMP ,
25322 p_NEW_DATE_TIME_STAMP => l_version_label_rec.DATE_TIME_STAMP ,
25323 p_OLD_ACTIVE_START_DATE => l_version_label_rec.ACTIVE_START_DATE ,
25324 p_NEW_ACTIVE_START_DATE => l_version_label_rec.ACTIVE_START_DATE ,
25325 p_OLD_ACTIVE_END_DATE => l_version_label_rec.ACTIVE_END_DATE ,
25326 p_NEW_ACTIVE_END_DATE => p_version_label_rec.ACTIVE_END_DATE ,
25327 p_OLD_CONTEXT => l_version_label_rec.CONTEXT ,
25328 p_NEW_CONTEXT => l_version_label_rec.CONTEXT ,
25329 p_OLD_ATTRIBUTE1 => l_version_label_rec.ATTRIBUTE1 ,
25330 p_NEW_ATTRIBUTE1 => l_version_label_rec.ATTRIBUTE1 ,
25331 p_OLD_ATTRIBUTE2 => l_version_label_rec.ATTRIBUTE2 ,
25332 p_NEW_ATTRIBUTE2 => l_version_label_rec.ATTRIBUTE2 ,
25333 p_OLD_ATTRIBUTE3 => l_version_label_rec.ATTRIBUTE3 ,
25334 p_NEW_ATTRIBUTE3 => l_version_label_rec.ATTRIBUTE3 ,
25335 p_OLD_ATTRIBUTE4 => l_version_label_rec.ATTRIBUTE4 ,
25336 p_NEW_ATTRIBUTE4 => l_version_label_rec.ATTRIBUTE4 ,
25337 p_OLD_ATTRIBUTE5 => l_version_label_rec.ATTRIBUTE5 ,
25338 p_NEW_ATTRIBUTE5 => l_version_label_rec.ATTRIBUTE5 ,
25339 p_OLD_ATTRIBUTE6 => l_version_label_rec.ATTRIBUTE6 ,
25340 p_NEW_ATTRIBUTE6 => l_version_label_rec.ATTRIBUTE6 ,
25341 p_OLD_ATTRIBUTE7 => l_version_label_rec.ATTRIBUTE7 ,
25342 p_NEW_ATTRIBUTE7 => l_version_label_rec.ATTRIBUTE7 ,
25343 p_OLD_ATTRIBUTE8 => l_version_label_rec.ATTRIBUTE8 ,
25344 p_NEW_ATTRIBUTE8 => l_version_label_rec.ATTRIBUTE8 ,
25345 p_OLD_ATTRIBUTE9 => l_version_label_rec.ATTRIBUTE9 ,
25346 p_NEW_ATTRIBUTE9 => l_version_label_rec.ATTRIBUTE9 ,
25347 p_OLD_ATTRIBUTE10 => l_version_label_rec.ATTRIBUTE10 ,
25348 p_NEW_ATTRIBUTE10 => l_version_label_rec.ATTRIBUTE10 ,
25349 p_OLD_ATTRIBUTE11 => l_version_label_rec.ATTRIBUTE11 ,
25350 p_NEW_ATTRIBUTE11 => l_version_label_rec.ATTRIBUTE11 ,
25351 p_OLD_ATTRIBUTE12 => l_version_label_rec.ATTRIBUTE12 ,
25352 p_NEW_ATTRIBUTE12 => l_version_label_rec.ATTRIBUTE12 ,
25353 p_OLD_ATTRIBUTE13 => l_version_label_rec.ATTRIBUTE13 ,
25354 p_NEW_ATTRIBUTE13 => l_version_label_rec.ATTRIBUTE13 ,
25355 p_OLD_ATTRIBUTE14 => l_version_label_rec.ATTRIBUTE14 ,
25356 p_NEW_ATTRIBUTE14 => l_version_label_rec.ATTRIBUTE14 ,
25357 p_OLD_ATTRIBUTE15 => l_version_label_rec.ATTRIBUTE15 ,
25358 p_NEW_ATTRIBUTE15 => l_version_label_rec.ATTRIBUTE15 ,
25359 p_FULL_DUMP_FLAG => 'N' ,
25360 p_CREATED_BY => FND_GLOBAL.USER_ID ,
25361 p_CREATION_DATE => SYSDATE ,
25362 p_LAST_UPDATED_BY => FND_GLOBAL.USER_ID ,
25363 p_LAST_UPDATE_DATE => SYSDATE ,
25364 p_LAST_UPDATE_LOGIN => FND_GLOBAL.LOGIN_ID ,
25365 p_OBJECT_VERSION_NUMBER => 1 );
25366
25367
25368 END IF;
25369 --
25370 -- End of API body
25371
25372 -- Standard check of p_commit.
25373 IF FND_API.To_Boolean( p_commit ) THEN
25374 COMMIT WORK;
25375 END IF;
25376
25377 -- Standard call to get message count and if count is get message info.
25378 FND_MSG_PUB.Count_And_Get
25379 (p_encoded => FND_API.G_FALSE,
25380 p_count => x_msg_count ,
25381 p_data => x_msg_data );
25382 EXCEPTION
25383 WHEN FND_API.G_EXC_ERROR THEN
25384 ROLLBACK TO expire_version_label_pvt;
25385 x_return_status := FND_API.G_RET_STS_ERROR ;
25386 FND_MSG_PUB.Count_And_Get
25387 ( p_encoded => FND_API.G_FALSE,
25388 p_count => x_msg_count,
25389 p_data => x_msg_data);
25390 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
25391 ROLLBACK TO expire_version_label_pvt;
25392 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
25393 FND_MSG_PUB.Count_And_Get
25394 ( p_encoded => FND_API.G_FALSE,
25395 p_count => x_msg_count,
25396 p_data => x_msg_data);
25397 WHEN OTHERS THEN
25398 ROLLBACK TO expire_version_label_pvt;
25399 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
25400 IF FND_MSG_PUB.Check_Msg_Level
25401 (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
25402 THEN
25403 FND_MSG_PUB.Add_Exc_Msg
25404 ( G_PKG_NAME, l_api_name );
25405 END IF;
25406 FND_MSG_PUB.Count_And_Get
25407 ( p_encoded => FND_API.G_FALSE,
25408 p_count => x_msg_count,
25409 p_data => x_msg_data);
25410 END expire_version_label;
25411
25412 /*----------------------------------------------------------*/
25413 /* Procedure name: Initialize_ext_rec_no_dump */
25414 /* Description : This procedure initialises the first */
25415 /* record from the history */
25416 /*----------------------------------------------------------*/
25417
25418 PROCEDURE Initialize_ext_rec_no_dump
25419 (
25420 x_ext_rec IN OUT NOCOPY csi_datastructures_pub.extend_attrib_values_rec,
25421 p_ext_id IN NUMBER,
25422 x_no_dump IN OUT NOCOPY DATE
25423 ) IS
25424
25425 CURSOR Int_no_dump(p_ext_id IN NUMBER ) IS
25426 SELECT creation_date,
25427 NEW_attribute_value,
25428 NEW_active_start_date,
25429 NEW_active_end_date,
25430 NEW_context,
25431 NEW_attribute1 ,
25432 NEW_attribute2,
25433 NEW_attribute3,
25434 NEW_attribute4,
25435 NEW_attribute5,
25436 NEW_attribute6,
25437 NEW_attribute7,
25438 NEW_attribute8,
25439 NEW_attribute9,
25440 NEW_attribute10,
25441 NEW_attribute11,
25442 NEW_attribute12,
25443 NEW_attribute13,
25444 NEW_attribute14,
25445 NEW_attribute15
25446 FROM csi_iea_values_h
25447 WHERE attribute_value_id = p_ext_id
25448 ORDER BY creation_date;
25449
25450 BEGIN
25451
25452 FOR C1 IN Int_no_dump(p_ext_id)
25453 LOOP
25454 IF Int_no_dump%ROWCOUNT = 1 THEN
25455 x_no_dump := C1.creation_date;
25456 x_ext_rec.attribute_value := C1.NEW_attribute_value;
25457 x_ext_rec.active_start_date := C1.NEW_active_start_date;
25458 x_ext_rec.active_end_date := C1.NEW_active_end_date;
25459 x_ext_rec.context := C1.NEW_context;
25460 x_ext_rec.attribute1 := C1.NEW_attribute1;
25461 x_ext_rec.attribute2 := C1.NEW_attribute2;
25462 x_ext_rec.attribute3 := C1.NEW_attribute3;
25463 x_ext_rec.attribute4 := C1.NEW_attribute4;
25464 x_ext_rec.attribute5 := C1.NEW_attribute5;
25465 x_ext_rec.attribute6 := C1.NEW_attribute6;
25466 x_ext_rec.attribute7 := C1.NEW_attribute7;
25467 x_ext_rec.attribute8 := C1.NEW_attribute8;
25468 x_ext_rec.attribute9 := C1.NEW_attribute9;
25469 x_ext_rec.attribute10 := C1.NEW_attribute10;
25470 x_ext_rec.attribute11 := C1.NEW_attribute11;
25471 x_ext_rec.attribute12 := C1.NEW_attribute12;
25472 x_ext_rec.attribute13 := C1.NEW_attribute13;
25473 x_ext_rec.attribute14 := C1.NEW_attribute14;
25474 x_ext_rec.attribute15 := C1.NEW_attribute15;
25475 ELSE
25476 EXIT;
25477 END IF;
25478 END LOOP;
25479 END Initialize_ext_rec_no_dump;
25480
25481
25482 /*----------------------------------------------------------*/
25483 /* Procedure name: Initialize_ext_rec */
25484 /* Description : This procudure recontructs the record */
25485 /* from the history */
25486 /*----------------------------------------------------------*/
25487
25488 PROCEDURE Initialize_ext_rec
25489 (
25490 x_ext_rec IN OUT NOCOPY csi_datastructures_pub.extend_attrib_values_rec,
25491 p_ext_h_id IN NUMBER,
25492 x_nearest_full_dump IN OUT NOCOPY DATE
25493 ) IS
25494
25495 CURSOR Int_nearest_full_dump(p_ext_hist_id IN NUMBER ) IS
25496 SELECT creation_date,
25497 NEW_attribute_value,
25498 NEW_active_start_date,
25499 NEW_active_end_date,
25500 NEW_context,
25501 NEW_attribute1 ,
25502 NEW_attribute2,
25503 NEW_attribute3,
25504 NEW_attribute4,
25505 NEW_attribute5,
25506 NEW_attribute6,
25507 NEW_attribute7,
25508 NEW_attribute8,
25509 NEW_attribute9,
25510 NEW_attribute10,
25511 NEW_attribute11,
25512 NEW_attribute12,
25513 NEW_attribute13,
25514 NEW_attribute14,
25515 NEW_attribute15
25516 FROM csi_iea_values_h
25517 WHERE attribute_value_history_id = p_ext_hist_id
25518 AND full_dump_flag = 'Y';
25519
25520 BEGIN
25521
25522 FOR C1 IN Int_nearest_full_dump(p_ext_h_id)
25523 LOOP
25524 x_nearest_full_dump := C1.creation_date;
25525 x_ext_rec.attribute_value := C1.NEW_attribute_value;
25526 x_ext_rec.active_start_date := C1.NEW_active_start_date;
25527 x_ext_rec.active_end_date := C1.NEW_active_end_date;
25528 x_ext_rec.context := C1.NEW_context;
25529 x_ext_rec.attribute1 := C1.NEW_attribute1;
25530 x_ext_rec.attribute2 := C1.NEW_attribute2;
25531 x_ext_rec.attribute3 := C1.NEW_attribute3;
25532 x_ext_rec.attribute4 := C1.NEW_attribute4;
25533 x_ext_rec.attribute5 := C1.NEW_attribute5;
25534 x_ext_rec.attribute6 := C1.NEW_attribute6;
25535 x_ext_rec.attribute7 := C1.NEW_attribute7;
25536 x_ext_rec.attribute8 := C1.NEW_attribute8;
25537 x_ext_rec.attribute9 := C1.NEW_attribute9;
25538 x_ext_rec.attribute10 := C1.NEW_attribute10;
25539 x_ext_rec.attribute11 := C1.NEW_attribute11;
25540 x_ext_rec.attribute12 := C1.NEW_attribute12;
25541 x_ext_rec.attribute13 := C1.NEW_attribute13;
25542 x_ext_rec.attribute14 := C1.NEW_attribute14;
25543 x_ext_rec.attribute15 := C1.NEW_attribute15;
25544 END LOOP;
25545 END Initialize_ext_rec ;
25546
25547
25548
25549 /*----------------------------------------------------------*/
25550 /* Procedure name: Construct_ext_from_hist */
25551 /* Description : This procudure recontructs the record */
25552 /* from the history */
25553 /*----------------------------------------------------------*/
25554
25555 PROCEDURE Construct_ext_from_hist
25556 ( x_ext_tbl IN OUT NOCOPY csi_datastructures_pub.extend_attrib_values_tbl,
25557 p_time_stamp IN DATE
25558 ) IS
25559
25560 l_nearest_full_dump DATE := p_time_stamp;
25561 l_att_val_hist_id NUMBER;
25562 l_ext_tbl csi_datastructures_pub.extend_attrib_values_tbl;
25563 l_ext_count NUMBER := 0;
25564 --
25565 Process_next EXCEPTION;
25566
25567 CURSOR get_nearest_full_dump(p_att_val_id IN NUMBER ,p_time IN DATE) IS
25568 SELECT MAX(attribute_value_history_id)
25569 FROM csi_iea_values_h
25570 WHERE creation_date <= p_time
25571 AND attribute_value_id = p_att_val_id
25572 AND full_dump_flag = 'Y' ;
25573
25574
25575 CURSOR get_ext_hist(p_att_val_id IN NUMBER ,
25576 p_nearest_full_dump IN DATE,
25577 p_time IN DATE ) IS
25578 SELECT attribute_value_history_id,
25579 OLD_ATTRIBUTE_VALUE ,
25580 NEW_ATTRIBUTE_VALUE,
25581 OLD_ACTIVE_START_DATE,
25582 NEW_ACTIVE_START_DATE,
25583 OLD_ACTIVE_END_DATE ,
25584 NEW_ACTIVE_END_DATE ,
25585 OLD_CONTEXT ,
25586 NEW_CONTEXT ,
25587 OLD_ATTRIBUTE1 ,
25588 NEW_ATTRIBUTE1 ,
25589 OLD_ATTRIBUTE2 ,
25590 NEW_ATTRIBUTE2 ,
25591 OLD_ATTRIBUTE3 ,
25592 NEW_ATTRIBUTE3 ,
25593 OLD_ATTRIBUTE4 ,
25594 NEW_ATTRIBUTE4 ,
25595 OLD_ATTRIBUTE5 ,
25596 NEW_ATTRIBUTE5 ,
25597 OLD_ATTRIBUTE6 ,
25598 NEW_ATTRIBUTE6 ,
25599 OLD_ATTRIBUTE7 ,
25600 NEW_ATTRIBUTE7 ,
25601 OLD_ATTRIBUTE8 ,
25602 NEW_ATTRIBUTE8 ,
25603 OLD_ATTRIBUTE9 ,
25604 NEW_ATTRIBUTE9 ,
25605 OLD_ATTRIBUTE10 ,
25606 NEW_ATTRIBUTE10 ,
25607 OLD_ATTRIBUTE11 ,
25608 NEW_ATTRIBUTE11 ,
25609 OLD_ATTRIBUTE12 ,
25610 NEW_ATTRIBUTE12 ,
25611 OLD_ATTRIBUTE13 ,
25612 NEW_ATTRIBUTE13 ,
25613 OLD_ATTRIBUTE14 ,
25614 NEW_ATTRIBUTE14 ,
25615 OLD_ATTRIBUTE15 ,
25616 NEW_ATTRIBUTE15
25617 FROM csi_iea_values_h
25618 WHERE creation_date <= p_time
25619 AND creation_date >= p_nearest_full_dump
25620 AND attribute_value_id = p_att_val_id
25621 ORDER BY creation_date;
25622
25623 l_time_stamp DATE := p_time_stamp;
25624
25625 BEGIN
25626 l_ext_tbl := x_ext_tbl;
25627 IF l_ext_tbl.COUNT > 0 THEN
25628 FOR i IN l_ext_tbl.FIRST..l_ext_tbl.LAST LOOP
25629 BEGIN
25630 OPEN get_nearest_full_dump(l_ext_tbl(i).attribute_value_id, p_time_stamp);
25631 FETCH get_nearest_full_dump INTO l_att_val_hist_id ;
25632 CLOSE get_nearest_full_dump;
25633
25634 IF l_att_val_hist_id IS NOT NULL THEN
25635 Initialize_ext_rec( l_ext_tbl(i), l_att_val_hist_id ,l_nearest_full_dump);
25636 ELSE
25637 Initialize_ext_rec_no_dump( l_ext_tbl(i), l_ext_tbl(i).attribute_value_id, l_time_stamp);
25638
25639 l_nearest_full_dump := l_time_stamp;
25640 -- If the user chooses a date before the creation date of the instance
25641 -- then raise an error
25642 IF p_time_stamp < l_time_stamp THEN
25643 -- Messages Commented for bug 2423342. Records that do not qualify should get deleted.
25644 -- FND_MESSAGE.SET_NAME('CSI','CSI_H_DATE_BEFORE_CRE_DATE');
25645 -- FND_MESSAGE.SET_TOKEN('CREATION_DATE',to_char(l_time_stamp, 'DD-MON-YYYY HH24:MI:SS'));
25646 -- FND_MESSAGE.SET_TOKEN('USER_DATE',to_char(p_time_stamp, 'DD-MON-YYYY HH24:MI:SS'));
25647 -- FND_MSG_PUB.Add;
25648 -- RAISE FND_API.G_EXC_ERROR;
25649 l_ext_tbl.DELETE(i);
25650 RAISE Process_next;
25651 END IF;
25652 END IF;
25653
25654 FOR C2 IN get_ext_hist(l_ext_tbl(i).attribute_value_id ,l_nearest_full_dump,p_time_stamp )
25655 LOOP
25656 IF (C2.OLD_ATTRIBUTE_VALUE IS NULL AND C2.NEW_ATTRIBUTE_VALUE IS NOT NULL)
25657 OR (C2.OLD_ATTRIBUTE_VALUE IS NOT NULL AND C2.NEW_ATTRIBUTE_VALUE IS NULL)
25658 OR (C2.OLD_ATTRIBUTE_VALUE <> C2.NEW_ATTRIBUTE_VALUE) THEN
25659 l_ext_tbl(i).ATTRIBUTE_VALUE := C2.NEW_ATTRIBUTE_VALUE;
25660 END IF;
25661
25662 IF (C2.OLD_ACTIVE_START_DATE IS NULL AND C2.NEW_ACTIVE_START_DATE IS NOT NULL)
25663 OR (C2.OLD_ACTIVE_START_DATE IS NOT NULL AND C2.NEW_ACTIVE_START_DATE IS NULL)
25664 OR (C2.OLD_ACTIVE_START_DATE <> C2.NEW_ACTIVE_START_DATE) THEN
25665 l_ext_tbl(i).ACTIVE_START_DATE := C2.NEW_ACTIVE_START_DATE;
25666 END IF;
25667
25668
25669 IF (C2.OLD_ACTIVE_END_DATE IS NULL AND C2.NEW_ACTIVE_END_DATE IS NOT NULL)
25670 OR (C2.OLD_ACTIVE_END_DATE IS NOT NULL AND C2.NEW_ACTIVE_END_DATE IS NULL)
25671 OR (C2.OLD_ACTIVE_END_DATE <> C2.NEW_ACTIVE_END_DATE) THEN
25672 l_ext_tbl(i).ACTIVE_END_DATE := C2.NEW_ACTIVE_END_DATE;
25673 END IF;
25674
25675
25676 IF (C2.OLD_CONTEXT IS NULL AND C2.NEW_CONTEXT IS NOT NULL)
25677 OR (C2.OLD_CONTEXT IS NOT NULL AND C2.NEW_CONTEXT IS NULL)
25678 OR (C2.OLD_CONTEXT <> C2.NEW_CONTEXT) THEN
25679 l_ext_tbl(i).CONTEXT := C2.NEW_CONTEXT;
25680 END IF;
25681
25682 IF (C2.OLD_ATTRIBUTE1 IS NULL AND C2.NEW_ATTRIBUTE1 IS NOT NULL)
25683 OR (C2.OLD_ATTRIBUTE1 IS NOT NULL AND C2.NEW_ATTRIBUTE1 IS NULL)
25684 OR (C2.OLD_ATTRIBUTE1 <> C2.NEW_ATTRIBUTE1) THEN
25685 l_ext_tbl(i).ATTRIBUTE1 := C2.NEW_ATTRIBUTE1;
25686 END IF;
25687
25688 IF (C2.OLD_ATTRIBUTE2 IS NULL AND C2.NEW_ATTRIBUTE2 IS NOT NULL)
25689 OR (C2.OLD_ATTRIBUTE2 IS NOT NULL AND C2.NEW_ATTRIBUTE2 IS NULL)
25690 OR (C2.OLD_ATTRIBUTE2 <> C2.NEW_ATTRIBUTE2) THEN
25691 l_ext_tbl(i).ATTRIBUTE2 := C2.NEW_ATTRIBUTE2;
25692 END IF;
25693
25694 IF (C2.OLD_ATTRIBUTE3 IS NULL AND C2.NEW_ATTRIBUTE3 IS NOT NULL)
25695 OR (C2.OLD_ATTRIBUTE3 IS NOT NULL AND C2.NEW_ATTRIBUTE3 IS NULL)
25696 OR (C2.OLD_ATTRIBUTE3 <> C2.NEW_ATTRIBUTE3) THEN
25697 l_ext_tbl(i).ATTRIBUTE3 := C2.NEW_ATTRIBUTE3;
25698 END IF;
25699
25700 IF (C2.OLD_ATTRIBUTE4 IS NULL AND C2.NEW_ATTRIBUTE4 IS NOT NULL)
25701 OR (C2.OLD_ATTRIBUTE4 IS NOT NULL AND C2.NEW_ATTRIBUTE4 IS NULL)
25702 OR (C2.OLD_ATTRIBUTE4 <> C2.NEW_ATTRIBUTE4) THEN
25703 l_ext_tbl(i).ATTRIBUTE4 := C2.NEW_ATTRIBUTE4;
25704 END IF;
25705
25706
25707 IF (C2.OLD_ATTRIBUTE5 IS NULL AND C2.NEW_ATTRIBUTE5 IS NOT NULL)
25708 OR (C2.OLD_ATTRIBUTE5 IS NOT NULL AND C2.NEW_ATTRIBUTE5 IS NULL)
25709 OR (C2.OLD_ATTRIBUTE5 <> C2.NEW_ATTRIBUTE5) THEN
25710 l_ext_tbl(i).ATTRIBUTE5 := C2.NEW_ATTRIBUTE5;
25711 END IF;
25712
25713
25714 IF (C2.OLD_ATTRIBUTE6 IS NULL AND C2.NEW_ATTRIBUTE6 IS NOT NULL)
25715 OR (C2.OLD_ATTRIBUTE6 IS NOT NULL AND C2.NEW_ATTRIBUTE6 IS NULL)
25716 OR (C2.OLD_ATTRIBUTE6 <> C2.NEW_ATTRIBUTE6) THEN
25717 l_ext_tbl(i).ATTRIBUTE6 := C2.NEW_ATTRIBUTE6;
25718 END IF;
25719
25720 IF (C2.OLD_ATTRIBUTE7 IS NULL AND C2.NEW_ATTRIBUTE7 IS NOT NULL)
25721 OR (C2.OLD_ATTRIBUTE7 IS NOT NULL AND C2.NEW_ATTRIBUTE7 IS NULL)
25722 OR (C2.OLD_ATTRIBUTE7 <> C2.NEW_ATTRIBUTE7) THEN
25723 l_ext_tbl(i).ATTRIBUTE7 := C2.NEW_ATTRIBUTE7;
25724 END IF;
25725
25726 IF (C2.OLD_ATTRIBUTE8 IS NULL AND C2.NEW_ATTRIBUTE8 IS NOT NULL)
25727 OR (C2.OLD_ATTRIBUTE8 IS NOT NULL AND C2.NEW_ATTRIBUTE8 IS NULL)
25728 OR (C2.OLD_ATTRIBUTE8 <> C2.NEW_ATTRIBUTE8) THEN
25729 l_ext_tbl(i).ATTRIBUTE8 := C2.NEW_ATTRIBUTE8;
25730 END IF;
25731
25732 IF (C2.OLD_ATTRIBUTE9 IS NULL AND C2.NEW_ATTRIBUTE9 IS NOT NULL)
25733 OR (C2.OLD_ATTRIBUTE9 IS NOT NULL AND C2.NEW_ATTRIBUTE9 IS NULL)
25734 OR (C2.OLD_ATTRIBUTE9 <> C2.NEW_ATTRIBUTE9) THEN
25735 l_ext_tbl(i).ATTRIBUTE3 := C2.NEW_ATTRIBUTE3;
25736 END IF;
25737
25738
25739 IF (C2.OLD_ATTRIBUTE10 IS NULL AND C2.NEW_ATTRIBUTE10 IS NOT NULL)
25740 OR (C2.OLD_ATTRIBUTE10 IS NOT NULL AND C2.NEW_ATTRIBUTE10 IS NULL)
25741 OR (C2.OLD_ATTRIBUTE10 <> C2.NEW_ATTRIBUTE10) THEN
25742 l_ext_tbl(i).ATTRIBUTE10 := C2.NEW_ATTRIBUTE10;
25743 END IF;
25744
25745
25746
25747 IF (C2.OLD_ATTRIBUTE11 IS NULL AND C2.NEW_ATTRIBUTE11 IS NOT NULL)
25748 OR (C2.OLD_ATTRIBUTE11 IS NOT NULL AND C2.NEW_ATTRIBUTE11 IS NULL)
25749 OR (C2.OLD_ATTRIBUTE11 <> C2.NEW_ATTRIBUTE11) THEN
25750 l_ext_tbl(i).ATTRIBUTE11 := C2.NEW_ATTRIBUTE11;
25751 END IF;
25752
25753 IF (C2.OLD_ATTRIBUTE12 IS NULL AND C2.NEW_ATTRIBUTE12 IS NOT NULL)
25754 OR (C2.OLD_ATTRIBUTE12 IS NOT NULL AND C2.NEW_ATTRIBUTE12 IS NULL)
25755 OR (C2.OLD_ATTRIBUTE12 <> C2.NEW_ATTRIBUTE12) THEN
25756 l_ext_tbl(i).ATTRIBUTE12 := C2.NEW_ATTRIBUTE12;
25757 END IF;
25758
25759
25760 IF (C2.OLD_ATTRIBUTE13 IS NULL AND C2.NEW_ATTRIBUTE13 IS NOT NULL)
25761 OR (C2.OLD_ATTRIBUTE13 IS NOT NULL AND C2.NEW_ATTRIBUTE13 IS NULL)
25762 OR (C2.OLD_ATTRIBUTE13 <> C2.NEW_ATTRIBUTE13) THEN
25763 l_ext_tbl(i).ATTRIBUTE13 := C2.NEW_ATTRIBUTE13;
25764 END IF;
25765
25766
25767 IF (C2.OLD_ATTRIBUTE14 IS NULL AND C2.NEW_ATTRIBUTE14 IS NOT NULL)
25768 OR (C2.OLD_ATTRIBUTE14 IS NOT NULL AND C2.NEW_ATTRIBUTE14 IS NULL)
25769 OR (C2.OLD_ATTRIBUTE14 <> C2.NEW_ATTRIBUTE14) THEN
25770 l_ext_tbl(i).ATTRIBUTE14 := C2.NEW_ATTRIBUTE14;
25771 END IF;
25772
25773 IF (C2.OLD_ATTRIBUTE15 IS NULL AND C2.NEW_ATTRIBUTE15 IS NOT NULL)
25774 OR (C2.OLD_ATTRIBUTE15 IS NOT NULL AND C2.NEW_ATTRIBUTE15 IS NULL)
25775 OR (C2.OLD_ATTRIBUTE15 <> C2.NEW_ATTRIBUTE15) THEN
25776 l_ext_tbl(i).ATTRIBUTE15 := C2.NEW_ATTRIBUTE15;
25777 END IF;
25778 END LOOP;
25779 EXCEPTION
25780 WHEN Process_next THEN
25781 NULL;
25782 END;
25783 END LOOP;
25784 x_ext_tbl.DELETE;
25785 IF l_ext_tbl.count > 0 THEN
25786 FOR ext_row in l_ext_tbl.FIRST .. l_ext_tbl.LAST
25787 LOOP
25788 IF l_ext_tbl.EXISTS(ext_row) THEN
25789 l_ext_count := l_ext_count + 1;
25790 x_ext_tbl(l_ext_count) := l_ext_tbl(ext_row);
25791 END IF;
25792 END LOOP;
25793 END IF;
25794 END IF;
25795 END Construct_ext_from_hist;
25796
25797
25798 /*----------------------------------------------------------*/
25799 /* Procedure name: Define_ext_Columns */
25800 /* Description : This procudure defines the columns */
25801 /* for the Dynamic SQL */
25802 /*----------------------------------------------------------*/
25803
25804
25805 PROCEDURE Define_ext_Columns
25806 ( p_get_ext_cursor_id IN NUMBER
25807 )
25808 IS
25809 l_ext_rec csi_datastructures_pub.extend_attrib_values_rec;
25810
25811 BEGIN
25812 dbms_sql.define_column(p_get_ext_cursor_id, 1, l_ext_rec.attribute_value_id);
25813 dbms_sql.define_column(p_get_ext_cursor_id, 2, l_ext_rec.attribute_id);
25814 dbms_sql.define_column(p_get_ext_cursor_id, 3, l_ext_rec.instance_id);
25815 dbms_sql.define_column(p_get_ext_cursor_id, 4, l_ext_rec.attribute_code,30);
25816 dbms_sql.define_column(p_get_ext_cursor_id, 5, l_ext_rec.attribute_value,240);
25817 dbms_sql.define_column(p_get_ext_cursor_id, 6, l_ext_rec.active_start_date);
25818 dbms_sql.define_column(p_get_ext_cursor_id, 7, l_ext_rec.active_end_date);
25819 dbms_sql.define_column(p_get_ext_cursor_id, 8, l_ext_rec.context,30);
25820 dbms_sql.define_column(p_get_ext_cursor_id, 9, l_ext_rec.attribute1,150);
25821 dbms_sql.define_column(p_get_ext_cursor_id, 10, l_ext_rec.attribute2,150);
25822 dbms_sql.define_column(p_get_ext_cursor_id, 11, l_ext_rec.attribute3,150);
25823 dbms_sql.define_column(p_get_ext_cursor_id, 12, l_ext_rec.attribute4,150);
25824 dbms_sql.define_column(p_get_ext_cursor_id, 13, l_ext_rec.attribute5,150);
25825 dbms_sql.define_column(p_get_ext_cursor_id, 14, l_ext_rec.attribute6,150);
25826 dbms_sql.define_column(p_get_ext_cursor_id, 15, l_ext_rec.attribute7,150);
25827 dbms_sql.define_column(p_get_ext_cursor_id, 16, l_ext_rec.attribute8,150);
25828 dbms_sql.define_column(p_get_ext_cursor_id, 17, l_ext_rec.attribute9,150);
25829 dbms_sql.define_column(p_get_ext_cursor_id, 18, l_ext_rec.attribute10,150);
25830 dbms_sql.define_column(p_get_ext_cursor_id, 19, l_ext_rec.attribute11,150);
25831 dbms_sql.define_column(p_get_ext_cursor_id, 20, l_ext_rec.attribute12,150);
25832 dbms_sql.define_column(p_get_ext_cursor_id, 21, l_ext_rec.attribute13,150);
25833 dbms_sql.define_column(p_get_ext_cursor_id, 22, l_ext_rec.attribute14,150);
25834 dbms_sql.define_column(p_get_ext_cursor_id, 23, l_ext_rec.attribute15,150);
25835 dbms_sql.define_column(p_get_ext_cursor_id, 24, l_ext_rec.object_version_number);
25836 END Define_ext_Columns;
25837
25838
25839 /*----------------------------------------------------------*/
25840 /* Procedure name: Get_ext_Column_Values */
25841 /* Description : This procudure gets the column values */
25842 /* for the Dynamic SQL */
25843 /*----------------------------------------------------------*/
25844
25845 PROCEDURE Get_ext_Column_Values
25846 (p_get_ext_cursor_id IN NUMBER,
25847 x_ext_rec OUT NOCOPY csi_datastructures_pub.extend_attrib_values_rec
25848 )
25849 IS
25850 BEGIN
25851 dbms_sql.column_value(p_get_ext_cursor_id, 1, x_ext_rec.attribute_value_id);
25852 dbms_sql.column_value(p_get_ext_cursor_id, 2, x_ext_rec.attribute_id);
25853 dbms_sql.column_value(p_get_ext_cursor_id, 3, x_ext_rec.instance_id);
25854 dbms_sql.column_value(p_get_ext_cursor_id, 4, x_ext_rec.attribute_code);
25855 dbms_sql.column_value(p_get_ext_cursor_id, 5, x_ext_rec.attribute_value);
25856 dbms_sql.column_value(p_get_ext_cursor_id, 6, x_ext_rec.active_start_date);
25857 dbms_sql.column_value(p_get_ext_cursor_id, 7, x_ext_rec.active_end_date);
25858 dbms_sql.column_value(p_get_ext_cursor_id, 8, x_ext_rec.context);
25859 dbms_sql.column_value(p_get_ext_cursor_id, 9, x_ext_rec.attribute1);
25860 dbms_sql.column_value(p_get_ext_cursor_id, 10, x_ext_rec.attribute2);
25861 dbms_sql.column_value(p_get_ext_cursor_id, 11, x_ext_rec.attribute3);
25862 dbms_sql.column_value(p_get_ext_cursor_id, 12, x_ext_rec.attribute4);
25863 dbms_sql.column_value(p_get_ext_cursor_id, 13, x_ext_rec.attribute5);
25864 dbms_sql.column_value(p_get_ext_cursor_id, 14, x_ext_rec.attribute6);
25865 dbms_sql.column_value(p_get_ext_cursor_id, 15, x_ext_rec.attribute7);
25866 dbms_sql.column_value(p_get_ext_cursor_id, 16, x_ext_rec.attribute8);
25867 dbms_sql.column_value(p_get_ext_cursor_id, 17, x_ext_rec.attribute9);
25868 dbms_sql.column_value(p_get_ext_cursor_id, 18, x_ext_rec.attribute10);
25869 dbms_sql.column_value(p_get_ext_cursor_id, 19, x_ext_rec.attribute11);
25870 dbms_sql.column_value(p_get_ext_cursor_id, 20, x_ext_rec.attribute12);
25871 dbms_sql.column_value(p_get_ext_cursor_id, 21, x_ext_rec.attribute13);
25872 dbms_sql.column_value(p_get_ext_cursor_id, 22, x_ext_rec.attribute14);
25873 dbms_sql.column_value(p_get_ext_cursor_id, 23, x_ext_rec.attribute15);
25874 dbms_sql.column_value(p_get_ext_cursor_id, 24, x_ext_rec.object_version_number);
25875
25876 END Get_ext_Column_Values;
25877
25878
25879
25880
25881 /*----------------------------------------------------------*/
25882 /* Procedure name: Bind_ext_variable */
25883 /* Description : This procudure binds the column values */
25884 /* for the Dynamic SQL */
25885 /*----------------------------------------------------------*/
25886
25887 PROCEDURE Bind_ext_variable
25888 ( p_ext_query_rec IN csi_datastructures_pub.extend_attrib_query_rec,
25889 p_cur_get_ext IN NUMBER
25890 )
25891 IS
25892 BEGIN
25893 IF( (p_ext_query_rec.attribute_value_id IS NOT NULL)
25894 AND (p_ext_query_rec.attribute_value_id <> FND_API.G_MISS_NUM)) THEN
25895 DBMS_SQL.BIND_VARIABLE(p_cur_get_ext, ':attribute_value_id', p_ext_query_rec.attribute_value_id);
25896 END IF;
25897
25898 IF( (p_ext_query_rec.instance_id IS NOT NULL)
25899 AND (p_ext_query_rec.instance_id <> FND_API.G_MISS_NUM)) THEN
25900 DBMS_SQL.BIND_VARIABLE(p_cur_get_ext, ':instance_id', p_ext_query_rec.instance_id);
25901 END IF;
25902
25903 IF( (p_ext_query_rec.attribute_id IS NOT NULL)
25904 AND (p_ext_query_rec.attribute_id<> FND_API.G_MISS_NUM)) THEN
25905 DBMS_SQL.BIND_VARIABLE(p_cur_get_ext, ':attribute_id', p_ext_query_rec.attribute_id);
25906 END IF;
25907
25908 END Bind_ext_variable;
25909
25910
25911
25912
25913
25914 /*----------------------------------------------------------*/
25915 /* Procedure name: Gen_ext_Where_Clause */
25916 /* Description : Procedure used to generate the where */
25917 /* clause for Extended Attributes units */
25918 /*----------------------------------------------------------*/
25919
25920 PROCEDURE Gen_ext_Where_Clause
25921 ( p_ext_query_rec IN csi_datastructures_pub.extend_attrib_query_rec
25922 ,x_where_clause OUT NOCOPY VARCHAR2
25923 ) IS
25924
25925 BEGIN
25926
25927 -- Assign null at the start
25928 x_where_clause := '';
25929
25930 IF (( p_ext_query_rec.attribute_value_id IS NOT NULL) AND
25931 ( p_ext_query_rec.attribute_value_id <> FND_API.G_MISS_NUM)) THEN
25932 x_where_clause := ' cv.attribute_value_id = :attribute_value_id ';
25933 ELSIF ( p_ext_query_rec.attribute_value_id IS NULL) THEN
25934 x_where_clause := ' cv.attribute_value_id IS NULL ';
25935 END IF;
25936
25937 IF ((p_ext_query_rec.instance_id IS NOT NULL) AND
25938 (p_ext_query_rec.instance_id <> FND_API.G_MISS_NUM)) THEN
25939 IF x_where_clause IS NULL THEN
25940 x_where_clause := ' cv.instance_id = :instance_id ';
25941 ELSE
25942 x_where_clause := x_where_clause||' AND '||' cv.instance_id = :instance_id ';
25943 END IF;
25944 ELSIF (p_ext_query_rec.instance_id IS NULL) THEN
25945 IF x_where_clause IS NULL THEN
25946 x_where_clause := ' cv.instance_id IS NULL ';
25947 ELSE
25948 x_where_clause := x_where_clause||' AND '||' cv.instance_id IS NULL ';
25949 END IF;
25950 END IF;
25951
25952 IF ((p_ext_query_rec.attribute_id IS NOT NULL) AND
25953 (p_ext_query_rec.attribute_id <> FND_API.G_MISS_NUM)) THEN
25954 IF x_where_clause IS NULL THEN
25955 x_where_clause := ' cv.attribute_id = :attribute_id ';
25956 ELSE
25957 x_where_clause := x_where_clause||' AND '||' cv.attribute_id = :attribute_id ';
25958 END IF;
25959 ELSIF (p_ext_query_rec.attribute_id IS NULL) THEN
25960 IF x_where_clause IS NULL THEN
25961 x_where_clause := ' cv.attribute_id IS NULL ';
25962 ELSE
25963 x_where_clause := x_where_clause||' AND '||' cv.attribute_id IS NULL ';
25964 END IF;
25965 END IF ;
25966
25967 END Gen_ext_Where_Clause;
25968
25969
25970
25971 /*------------------------------------------------------*/
25972 /* procedure name: create_extended_attrib_values */
25973 /* description : Associates extended attributes to an */
25974 /* item instance */
25975 /* */
25976 /*------------------------------------------------------*/
25977
25978 PROCEDURE create_extended_attrib_values
25979 (
25980 p_api_version IN NUMBER
25981 ,p_commit IN VARCHAR2
25982 ,p_init_msg_list IN VARCHAR2
25983 ,p_validation_level IN NUMBER
25984 ,p_ext_attrib_rec IN OUT NOCOPY csi_datastructures_pub.extend_attrib_values_rec
25985 ,p_txn_rec IN OUT NOCOPY csi_datastructures_pub.transaction_rec
25986 ,x_return_status OUT NOCOPY VARCHAR2
25987 ,x_msg_count OUT NOCOPY NUMBER
25988 ,x_msg_data OUT NOCOPY VARCHAR2
25989 ,p_ext_id_tbl IN OUT NOCOPY csi_item_instance_pvt.ext_id_tbl
25990 ,p_ext_count_rec IN OUT NOCOPY csi_item_instance_pvt.ext_count_rec
25991 ,p_ext_attr_tbl IN OUT NOCOPY csi_item_instance_pvt.ext_attr_tbl
25992 ,p_ext_cat_tbl IN OUT NOCOPY csi_item_instance_pvt.ext_cat_tbl
25993 ,p_called_from_grp IN VARCHAR2
25994 )
25995 IS
25996 l_api_name CONSTANT VARCHAR2(30) := 'create_extended_attrib_values';
25997 l_api_version CONSTANT NUMBER := 1.0;
25998 l_debug_level NUMBER;
25999 l_msg_index NUMBER;
26000 l_msg_count NUMBER;
26001 l_attribute_value_id NUMBER := p_ext_attrib_rec.attribute_value_id;
26002 l_attribute_level VARCHAR2(30);
26003 l_master_organization_id NUMBER;
26004 l_inventory_item_id NUMBER;
26005 l_ori_inventory_item_id NUMBER;
26006 l_ori_master_org_id NUMBER;
26007 l_item_category_id NUMBER;
26008 l_instance_id NUMBER;
26009 l_attribute_value_h_id NUMBER;
26010 l_dump_frequency_flag VARCHAR2(30);
26011 l_record_found BOOLEAN := FALSE;
26012 l_exists_flag VARCHAR2(1);
26013 l_valid_flag VARCHAR2(1);
26014
26015 BEGIN
26016
26017 -- Standard Start of API savepoint
26018 SAVEPOINT create_extended_attrib_values;
26019
26020 -- Standard call to check for call compatibility.
26021 IF NOT FND_API.Compatible_API_Call (l_api_version,
26022 p_api_version,
26023 l_api_name ,
26024 g_pkg_name)
26025 THEN
26026 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
26027 END IF;
26028
26029
26030 -- Initialize message list if p_init_msg_list is set to TRUE.
26031 IF FND_API.to_Boolean( p_init_msg_list ) THEN
26032 FND_MSG_PUB.initialize;
26033 END IF;
26034
26035
26036 -- Initialize API return status to success
26037 x_return_status := FND_API.G_RET_STS_SUCCESS;
26038
26039
26040 -- Check the profile option debug_level for debug message reporting
26041 l_debug_level:=fnd_profile.value('CSI_DEBUG_LEVEL');
26042
26043 -- If debug_level = 1 then dump the procedure name
26044 IF (l_debug_level > 0) THEN
26045 csi_gen_utility_pvt.put_line( 'create_extended_attrib_values');
26046 END IF;
26047
26048
26049 -- If the debug level = 2 then dump all the parameters values.
26050 IF (l_debug_level > 1) THEN
26051 csi_gen_utility_pvt.put_line( p_api_version ||'-'
26052 || p_commit ||'-'
26053 || p_init_msg_list ||'-'
26054 || p_validation_level );
26055 -- Dump extended attribute rec
26056 csi_gen_utility_pvt.dump_ext_attrib_values_rec(p_ext_attrib_rec);
26057 -- Dump txn_rec
26058 csi_gen_utility_pvt.dump_txn_rec(p_txn_rec);
26059 END IF;
26060
26061
26062 -- Start API body
26063 --
26064 -- Initialize the Extended Attrib count
26065 --
26066 IF p_ext_count_rec.ext_count IS NULL OR
26067 p_ext_count_rec.ext_count = FND_API.G_MISS_NUM THEN
26068 p_ext_count_rec.ext_count := 0;
26069 END IF;
26070 --
26071 IF p_ext_count_rec.ext_attr_count IS NULL OR
26072 p_ext_count_rec.ext_attr_count = FND_API.G_MISS_NUM THEN
26073 p_ext_count_rec.ext_attr_count := 0;
26074 END IF;
26075 IF p_ext_count_rec.ext_cat_count IS NULL OR
26076 p_ext_count_rec.ext_cat_count = FND_API.G_MISS_NUM THEN
26077 p_ext_count_rec.ext_cat_count := 0;
26078 END IF;
26079 --
26080 -- Verify if instance id is ok
26081 l_valid_flag := 'Y';
26082 l_exists_flag := 'N';
26083 IF ((p_ext_attrib_rec.instance_id IS NOT NULL AND
26084 p_ext_attrib_rec.instance_id <> FND_API.G_MISS_NUM))
26085 THEN
26086 IF p_ext_id_tbl.count > 0 THEN
26087 FOR ext_count in p_ext_id_tbl.FIRST .. p_ext_id_tbl.LAST
26088 LOOP
26089 IF p_ext_id_tbl(ext_count).instance_id = p_ext_attrib_rec.instance_id
26090 THEN
26091 l_ori_inventory_item_id := p_ext_id_tbl(ext_count).inv_item_id;
26092 l_ori_master_org_id := p_ext_id_tbl(ext_count).inv_mast_org_id;
26093 l_valid_flag := p_ext_id_tbl(ext_count).valid_flag;
26094 l_exists_flag := 'Y';
26095 EXIT;
26096 END IF;
26097 END LOOP;
26098 --
26099 IF l_valid_flag <> 'Y'
26100 THEN
26101 FND_MESSAGE.SET_NAME('CSI','CSI_API_INVALID_INSTANCE_ID');
26102 FND_MESSAGE.SET_TOKEN('INSTANCE_ID',p_ext_attrib_rec.instance_id);
26103 FND_MSG_PUB.Add;
26104 RAISE fnd_api.g_exc_error;
26105 END IF;
26106 END IF;
26107 --
26108 IF l_exists_flag <> 'Y'
26109 THEN
26110 p_ext_count_rec.ext_count := p_ext_count_rec.ext_count + 1;
26111 p_ext_id_tbl(p_ext_count_rec.ext_count).instance_id := p_ext_attrib_rec.instance_id;
26112 IF NOT(csi_extend_attrib_vld_pvt.Is_valid_instance_id
26113 (p_ext_attrib_rec.instance_id
26114 ,'INSERT'
26115 ,l_ori_inventory_item_id
26116 ,l_ori_master_org_id)) THEN
26117 p_ext_id_tbl(p_ext_count_rec.ext_count).valid_flag := 'N';
26118 RAISE fnd_api.g_exc_error;
26119 ELSE
26120 p_ext_id_tbl(p_ext_count_rec.ext_count).valid_flag := 'Y';
26121 p_ext_id_tbl(p_ext_count_rec.ext_count).inv_item_id := l_ori_inventory_item_id;
26122 p_ext_id_tbl(p_ext_count_rec.ext_count).inv_mast_org_id := l_ori_master_org_id;
26123 END IF;
26124 END IF;
26125 END IF;
26126 --
26127
26128 -- Verify if attribute_id is ok
26129 l_valid_flag := 'Y';
26130 l_exists_flag := 'N';
26131 IF ((p_ext_attrib_rec.attribute_id IS NOT NULL) AND
26132 (p_ext_attrib_rec.attribute_id <> FND_API.G_MISS_NUM))
26133 THEN
26134 IF p_ext_attr_tbl.count > 0
26135 THEN
26136 FOR ext_attr_count in p_ext_attr_tbl.FIRST .. p_ext_attr_tbl.LAST
26137 LOOP
26138 IF p_ext_attr_tbl(ext_attr_count).attribute_id = p_ext_attrib_rec.attribute_id
26139 THEN
26140 l_inventory_item_id := p_ext_attr_tbl(ext_attr_count).inv_item_id;
26141 l_master_organization_id := p_ext_attr_tbl(ext_attr_count).inv_mast_org_id;
26142 l_item_category_id := p_ext_attr_tbl(ext_attr_count).item_category_id;
26143 l_attribute_level := p_ext_attr_tbl(ext_attr_count).attribute_level;
26144 l_instance_id := p_ext_attr_tbl(ext_attr_count).instance_id;
26145 l_valid_flag := p_ext_attr_tbl(ext_attr_count).valid_flag;
26146 l_exists_flag := 'Y';
26147 EXIT;
26148 END IF;
26149 END LOOP;
26150 --
26151 IF l_valid_flag <> 'Y'
26152 THEN
26153 FND_MESSAGE.SET_NAME('CSI','CSI_API_INVALID_ATTRIBUTE_ID');
26154 FND_MESSAGE.SET_TOKEN('ATTRIBUTE_ID',p_ext_attrib_rec.attribute_id);
26155 FND_MSG_PUB.Add;
26156 RAISE fnd_api.g_exc_error;
26157 END IF;
26158 END IF;
26159 --
26160 IF l_exists_flag <> 'Y'
26161 THEN
26162 p_ext_count_rec.ext_attr_count := p_ext_count_rec.ext_attr_count + 1;
26163 p_ext_attr_tbl(p_ext_count_rec.ext_attr_count).attribute_id := p_ext_attrib_rec.attribute_id;
26164 IF NOT(csi_extend_attrib_vld_pvt.Is_valid_attribute_id
26165 (p_ext_attrib_rec.attribute_id
26166 ,l_attribute_level
26167 ,l_master_organization_id
26168 ,l_inventory_item_id
26169 ,l_item_category_id
26170 ,l_instance_id
26171 )) THEN
26172 p_ext_attr_tbl(p_ext_count_rec.ext_attr_count).valid_flag := 'N';
26173 RAISE fnd_api.g_exc_error;
26174 ELSE
26175 p_ext_attr_tbl(p_ext_count_rec.ext_attr_count).valid_flag := 'Y';
26176 p_ext_attr_tbl(p_ext_count_rec.ext_attr_count).inv_item_id := l_inventory_item_id;
26177 p_ext_attr_tbl(p_ext_count_rec.ext_attr_count).inv_mast_org_id := l_master_organization_id;
26178 p_ext_attr_tbl(p_ext_count_rec.ext_attr_count).attribute_level := l_attribute_level;
26179 p_ext_attr_tbl(p_ext_count_rec.ext_attr_count).item_category_id := l_item_category_id;
26180 p_ext_attr_tbl(p_ext_count_rec.ext_attr_count).instance_id := l_instance_id;
26181 END IF;
26182 END IF;
26183 ELSE
26184 FND_MESSAGE.SET_NAME('CSI','CSI_API_INVALID_ATTRIBUTE_ID');
26185 FND_MESSAGE.SET_TOKEN('ATTRIBUTE_ID',p_ext_attrib_rec.attribute_id);
26186 FND_MSG_PUB.Add;
26187 END IF;
26188 --
26189
26190 -- Added by sk for bug 2232880
26191 l_record_found := FALSE;
26192 IF ( (p_called_from_grp <> FND_API.G_TRUE) AND
26193 (p_ext_attrib_rec.attribute_value_id IS NULL OR
26194 p_ext_attrib_rec.attribute_value_id = fnd_api.g_miss_num) )
26195 THEN
26196 BEGIN
26197 SELECT attribute_value_id,
26198 object_version_number
26199 INTO p_ext_attrib_rec.attribute_value_id,
26200 p_ext_attrib_rec.object_version_number
26201 FROM csi_iea_values
26202 WHERE instance_id = p_ext_attrib_rec.instance_id
26203 AND attribute_id = p_ext_attrib_rec.attribute_id
26204 AND active_end_date < SYSDATE
26205 AND ROWNUM=1;
26206 l_record_found := TRUE;
26207 EXCEPTION
26208 WHEN OTHERS THEN
26209 NULL;
26210 END;
26211 END IF;
26212 IF l_record_found
26213 THEN
26214 -- Unexpire the extended attrib values
26215 IF p_ext_attrib_rec.active_end_date = fnd_api.g_miss_date
26216 THEN
26217 p_ext_attrib_rec.active_end_date := NULL;
26218 END IF;
26219 csi_item_instance_pvt.update_extended_attrib_values
26220 (p_api_version => p_api_version
26221 ,p_commit => fnd_api.g_false
26222 ,p_init_msg_list => p_init_msg_list
26223 ,p_validation_level => p_validation_level
26224 ,p_ext_attrib_rec => p_ext_attrib_rec
26225 ,p_txn_rec => p_txn_rec
26226 ,x_return_status => x_return_status
26227 ,x_msg_count => x_msg_count
26228 ,x_msg_data => x_msg_data
26229 );
26230
26231 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
26232 l_msg_index := 1;
26233 l_msg_count := x_msg_count;
26234 WHILE l_msg_count > 0 LOOP
26235 x_msg_data := FND_MSG_PUB.GET
26236 (l_msg_index,
26237 FND_API.G_FALSE );
26238
26239 csi_gen_utility_pvt.put_line( ' Failed Pvt:update_extended_attrib_values..');
26240 csi_gen_utility_pvt.put_line('message data = '||x_msg_data);
26241 l_msg_index := l_msg_index + 1;
26242 l_msg_count := l_msg_count - 1;
26243 END LOOP;
26244 RAISE FND_API.G_EXC_ERROR;
26245 END IF;
26246 ELSE -- -- Added by sk for bug 2232880
26247 -- Verify that alternate PK is valid
26248 IF p_called_from_grp <> FND_API.G_TRUE THEN
26249 IF NOT(csi_extend_attrib_vld_pvt.Alternate_PK_exists
26250 (p_ext_attrib_rec.instance_id
26251 ,p_ext_attrib_rec.attribute_id
26252 )) THEN
26253 RAISE FND_API.G_EXC_ERROR;
26254 END IF;
26255 END IF;
26256
26257 -- Check start effective date
26258 IF p_called_from_grp <> FND_API.G_TRUE THEN
26259 IF NOT(csi_extend_attrib_vld_pvt.Is_StartDate_Valid
26260 (p_ext_attrib_rec.ACTIVE_START_DATE,
26261 p_ext_attrib_rec.ACTIVE_END_DATE ,
26262 p_ext_attrib_rec.INSTANCE_ID )) THEN
26263 RAISE FND_API.G_EXC_ERROR;
26264 END IF;
26265 END IF;
26266
26267
26268 -- Check end effective date
26269 IF p_called_from_grp <> FND_API.G_TRUE THEN
26270 IF p_ext_attrib_rec.ACTIVE_END_DATE is NOT NULL THEN
26271 IF NOT(csi_extend_attrib_vld_pvt.Is_EndDate_Valid
26272 (p_ext_attrib_rec.ACTIVE_START_DATE,
26273 p_ext_attrib_rec.ACTIVE_END_DATE ,
26274 p_ext_attrib_rec.INSTANCE_ID ,
26275 p_ext_attrib_rec.ATTRIBUTE_VALUE_ID,
26276 p_txn_rec.TRANSACTION_ID)) THEN
26277 RAISE FND_API.G_EXC_ERROR;
26278 END IF;
26279 END IF;
26280 END IF;
26281 --
26282 -- Verify that the attribute level satisfies all requirements
26283 IF l_attribute_level = 'CATEGORY'
26284 THEN
26285 IF ((l_item_category_id IS NOT NULL) AND (l_item_category_id <> FND_API.G_MISS_NUM))
26286 THEN
26287 l_valid_flag := 'Y';
26288 l_exists_flag := 'N';
26289 IF p_ext_cat_tbl.count > 0
26290 THEN
26291 FOR ext_cat_count in p_ext_cat_tbl.FIRST .. p_ext_cat_tbl.LAST
26292 LOOP
26293 IF p_ext_cat_tbl(ext_cat_count).item_cat_id = l_item_category_id
26294 THEN
26295 l_valid_flag := p_ext_cat_tbl(ext_cat_count).valid_flag;
26296 l_exists_flag := 'Y';
26297 EXIT;
26298 END IF;
26299 END LOOP;
26300 --
26301 IF l_valid_flag <> 'Y'
26302 THEN
26303 FND_MESSAGE.SET_NAME('CSI','CSI_API_INV_ATT_LEV_CAT');
26304 FND_MESSAGE.SET_TOKEN('ATTRIBUTE_LEVEL_ITEM',l_ori_inventory_item_id);
26305 FND_MESSAGE.SET_TOKEN('ATTRIBUTE_LEVEL_ORG',l_ori_master_org_id);
26306 FND_MESSAGE.SET_TOKEN('ATTRIBUTE_LEVEL_CAT',l_item_category_id);
26307 FND_MSG_PUB.Add;
26308 RAISE fnd_api.g_exc_error;
26309 END IF;
26310 END IF;
26311 --
26312 IF l_exists_flag <> 'Y'
26313 THEN
26314 p_ext_count_rec.ext_cat_count := p_ext_count_rec.ext_cat_count + 1;
26315 p_ext_cat_tbl(p_ext_count_rec.ext_cat_count).item_cat_id := l_item_category_id;
26316 IF NOT(csi_extend_attrib_vld_pvt.Is_Valid_attrib_level_content
26317 ( l_attribute_level
26318 ,l_master_organization_id
26319 ,l_inventory_item_id
26320 ,l_item_category_id
26321 ,l_instance_id
26322 ,p_ext_attrib_rec.instance_id
26323 ,l_ori_inventory_item_id
26324 ,l_ori_master_org_id
26325 )) THEN
26326 --p_ext_attr_tbl(p_ext_count_rec.ext_attr_count).valid_flag := 'N'; -- commented for bug 3114946
26327 p_ext_cat_tbl(p_ext_count_rec.ext_cat_count).valid_flag := 'N'; -- Added for bug 3114946
26328 RAISE fnd_api.g_exc_error;
26329 ELSE
26330 --p_ext_attr_tbl(p_ext_count_rec.ext_attr_count).valid_flag := 'Y'; -- commented for bug 3114946
26331 p_ext_cat_tbl(p_ext_count_rec.ext_cat_count).valid_flag := 'Y'; -- Added for bug 3114946
26332 END IF;
26333 END IF;
26334 END IF;
26335 ELSE -- attribute level <> 'CATEGORY'
26336 IF NOT(csi_extend_attrib_vld_pvt.Is_Valid_attrib_level_content
26337 (l_attribute_level
26338 ,l_master_organization_id
26339 ,l_inventory_item_id
26340 ,l_item_category_id
26341 ,l_instance_id
26342 ,p_ext_attrib_rec.instance_id
26343 ,l_ori_inventory_item_id
26344 ,l_ori_master_org_id
26345 )) THEN
26346 RAISE FND_API.G_EXC_ERROR;
26347 END IF;
26348 END IF;
26349
26350 -- If the attribute_value_id passed is null then generate from sequence
26351 -- and check if the value exists . If exists then generate again from the sequence
26352 -- till we get a value that does not exist
26353 IF l_attribute_value_id IS NULL OR
26354 l_attribute_value_id = FND_API.G_MISS_NUM THEN
26355 l_attribute_value_id := csi_extend_attrib_vld_pvt.get_attribute_value_id;
26356 p_ext_attrib_rec.attribute_value_id := l_attribute_value_id;
26357 WHILE NOT(csi_extend_attrib_vld_pvt.Is_valid_attribute_value_id
26358 (l_attribute_value_id))
26359 LOOP
26360 l_attribute_value_id := csi_extend_attrib_vld_pvt.get_attribute_value_id;
26361 p_ext_attrib_rec.attribute_value_id := l_attribute_value_id;
26362 END LOOP;
26363 ELSE
26364 -- Validate attribute_value_id
26365 IF NOT(csi_extend_attrib_vld_pvt.Is_valid_attribute_value_id
26366 (p_ext_attrib_rec.attribute_value_id)) THEN
26367 RAISE FND_API.G_EXC_ERROR;
26368 END IF;
26369
26370 END IF;
26371
26372 IF p_called_from_grp <> FND_API.G_TRUE THEN
26373 -- Create a record in csi_iea_values
26374 CSI_IEA_VALUES_PKG.Insert_Row
26375 (
26376 l_attribute_value_id
26377 ,p_ext_attrib_rec.attribute_id
26378 ,p_ext_attrib_rec.instance_id
26379 ,p_ext_attrib_rec.attribute_value
26380 ,p_ext_attrib_rec.active_start_date
26381 ,p_ext_attrib_rec.active_end_date
26382 ,p_ext_attrib_rec.context
26383 ,p_ext_attrib_rec.attribute1
26384 ,p_ext_attrib_rec.attribute2
26385 ,p_ext_attrib_rec.attribute3
26386 ,p_ext_attrib_rec.attribute4
26387 ,p_ext_attrib_rec.attribute5
26388 ,p_ext_attrib_rec.attribute6
26389 ,p_ext_attrib_rec.attribute7
26390 ,p_ext_attrib_rec.attribute8
26391 ,p_ext_attrib_rec.attribute9
26392 ,p_ext_attrib_rec.attribute10
26393 ,p_ext_attrib_rec.attribute11
26394 ,p_ext_attrib_rec.attribute12
26395 ,p_ext_attrib_rec.attribute13
26396 ,p_ext_attrib_rec.attribute14
26397 ,p_ext_attrib_rec.attribute15
26398 ,fnd_global.user_id
26399 ,sysdate
26400 ,fnd_global.user_id
26401 ,sysdate
26402 ,fnd_global.user_id
26403 ,1
26404 );
26405
26406
26407 -- IF CSI_Instance_parties_vld_pvt.Is_Instance_creation_complete( p_ext_attrib_rec.INSTANCE_ID ) THEN
26408 -- Call create_transaction to create txn log
26409
26410 CSI_TRANSACTIONS_PVT.Create_transaction
26411 ( p_api_version => p_api_version
26412 ,p_commit => fnd_api.g_false
26413 ,p_init_msg_list => p_init_msg_list
26414 ,p_validation_level => p_validation_level
26415 ,p_Success_If_Exists_Flag => 'Y'
26416 ,P_transaction_rec => p_txn_rec
26417 ,x_return_status => x_return_status
26418 ,x_msg_count => x_msg_count
26419 ,x_msg_data => x_msg_data
26420 );
26421
26422 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
26423 l_msg_index := 1;
26424 l_msg_count := x_msg_count;
26425 WHILE l_msg_count > 0 LOOP
26426 x_msg_data := FND_MSG_PUB.GET
26427 (l_msg_index,
26428 FND_API.G_FALSE );
26429
26430 csi_gen_utility_pvt.put_line('message data = '||x_msg_data);
26431 l_msg_index := l_msg_index + 1;
26432 l_msg_count := l_msg_count - 1;
26433 END LOOP;
26434 RAISE FND_API.G_EXC_ERROR;
26435 END IF;
26436
26437
26438 -- Get a unique org_assignment number from the sequence
26439 l_attribute_value_h_id := csi_extend_attrib_vld_pvt.get_attribute_value_h_id;
26440
26441 l_dump_frequency_flag :='N';
26442 -- Create a history
26443 CSI_IEA_VALUES_H_PKG.Insert_Row(
26444 l_attribute_value_h_id
26445 ,l_attribute_value_id
26446 ,p_txn_rec.transaction_id
26447 ,NULL
26448 ,p_ext_attrib_rec.attribute_value
26449 ,NULL
26450 ,p_ext_attrib_rec.active_start_date
26451 ,NULL
26452 ,p_ext_attrib_rec.active_end_date
26453 ,NULL
26454 ,p_ext_attrib_rec.context
26455 ,NULL
26456 ,p_ext_attrib_rec.ATTRIBUTE1
26457 ,NULL
26458 ,p_ext_attrib_rec.ATTRIBUTE2
26459 ,NULL
26460 ,p_ext_attrib_rec.ATTRIBUTE3
26461 ,NULL
26462 ,p_ext_attrib_rec.ATTRIBUTE4
26463 ,NULL
26464 ,p_ext_attrib_rec.ATTRIBUTE5
26465 ,NULL
26466 ,p_ext_attrib_rec.ATTRIBUTE6
26467 ,NULL
26468 ,p_ext_attrib_rec.ATTRIBUTE7
26469 ,NULL
26470 ,p_ext_attrib_rec.ATTRIBUTE8
26471 ,NULL
26472 ,p_ext_attrib_rec.ATTRIBUTE9
26473 ,NULL
26474 ,p_ext_attrib_rec.ATTRIBUTE10
26475 ,NULL
26476 ,p_ext_attrib_rec.ATTRIBUTE11
26477 ,NULL
26478 ,p_ext_attrib_rec.ATTRIBUTE12
26479 ,NULL
26480 ,p_ext_attrib_rec.ATTRIBUTE13
26481 ,NULL
26482 ,p_ext_attrib_rec.ATTRIBUTE14
26483 ,NULL
26484 ,p_ext_attrib_rec.ATTRIBUTE15
26485 ,l_dump_frequency_flag
26486 ,fnd_global.user_id
26487 ,sysdate
26488 ,fnd_global.user_id
26489 ,sysdate
26490 ,fnd_global.user_id
26491 ,1);
26492
26493
26494 -- END IF;
26495 END IF; -- Called from grp check
26496
26497 END IF; -- Added by sk for bug 2232880
26498 -- End of API body
26499
26500 -- Standard check of p_commit.
26501 IF FND_API.To_Boolean( p_commit ) THEN
26502 COMMIT WORK;
26503 END IF;
26504
26505 -- Standard call to get message count and if count is get message info.
26506 FND_MSG_PUB.Count_And_Get
26507 (p_encoded => FND_API.G_FALSE,
26508 p_count => x_msg_count ,
26509 p_data => x_msg_data
26510 );
26511
26512
26513 EXCEPTION
26514
26515 WHEN FND_API.G_EXC_ERROR THEN
26516 ROLLBACK TO create_extended_attrib_values;
26517 x_return_status := FND_API.G_RET_STS_ERROR ;
26518 FND_MSG_PUB.Count_And_Get
26519 ( p_encoded => FND_API.G_FALSE,
26520 p_count => x_msg_count,
26521 p_data => x_msg_data
26522 );
26523
26524 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
26525 ROLLBACK TO create_extended_attrib_values;
26526 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
26527 FND_MSG_PUB.Count_And_Get
26528 ( p_encoded => FND_API.G_FALSE,
26529 p_count => x_msg_count,
26530 p_data => x_msg_data
26531 );
26532
26533 WHEN OTHERS THEN
26534
26535 ROLLBACK TO create_extended_attrib_values;
26536 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
26537
26538 IF FND_MSG_PUB.Check_Msg_Level
26539 (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
26540 THEN
26541 FND_MSG_PUB.Add_Exc_Msg
26542 ( g_pkg_name,
26543 l_api_name
26544 );
26545 END IF;
26546
26547 FND_MSG_PUB.Count_And_Get
26548 ( p_encoded => FND_API.G_FALSE,
26549 p_count => x_msg_count,
26550 p_data => x_msg_data
26551 );
26552
26553 END create_extended_attrib_values;
26554
26555
26556 /*------------------------------------------------------*/
26557 /* procedure name: update_extended_attrib_values */
26558 /* description : Updates the existing extended */
26559 /* attributes for an item instance */
26560 /* */
26561 /*------------------------------------------------------*/
26562
26563 PROCEDURE update_extended_attrib_values
26564 (
26565 p_api_version IN NUMBER
26566 ,p_commit IN VARCHAR2
26567 ,p_init_msg_list IN VARCHAR2
26568 ,p_validation_level IN NUMBER
26569 ,p_ext_attrib_rec IN csi_datastructures_pub.extend_attrib_values_rec
26570 ,p_txn_rec IN OUT NOCOPY csi_datastructures_pub.transaction_rec
26571 ,x_return_status OUT NOCOPY VARCHAR2
26572 ,x_msg_count OUT NOCOPY NUMBER
26573 ,x_msg_data OUT NOCOPY VARCHAR2
26574 )
26575
26576 IS
26577 l_api_name CONSTANT VARCHAR2(30) := 'update_extended_attrib_values';
26578 l_api_version CONSTANT NUMBER := 1.0;
26579 l_debug_level NUMBER;
26580 l_msg_index NUMBER;
26581 l_msg_count NUMBER;
26582 l_ori_inventory_item_id NUMBER;
26583 l_ori_master_org_id NUMBER;
26584 l_attribute_value_id NUMBER:= p_ext_attrib_rec.attribute_value_id;
26585 l_attribute_value_h_id NUMBER;
26586 l_dump_frequency NUMBER;
26587 l_dump_frequency_flag VARCHAR2(30);
26588 l_ext_attrib_rec csi_datastructures_pub.extend_attrib_values_rec;
26589 l_temp_ext_attrib_rec csi_datastructures_pub.extend_attrib_values_rec;
26590 l_ext_att_hist_rec csi_datastructures_pub.ext_attrib_val_history_rec;
26591
26592 CURSOR ieav_hist_csr (p_ieav_hist_id NUMBER) IS
26593 SELECT *
26594 FROM csi_iea_values_h
26595 WHERE csi_iea_values_h.attribute_value_history_id = p_ieav_hist_id
26596 FOR UPDATE OF OBJECT_VERSION_NUMBER ;
26597 l_ieav_hist_id NUMBER;
26598 l_ieav_hist_csr ieav_hist_csr%ROWTYPE;
26599
26600 BEGIN
26601 -- Standard Start of API savepoint
26602 SAVEPOINT update_extended_attrib_values;
26603
26604 -- Standard call to check for call compatibility.
26605 IF NOT FND_API.Compatible_API_Call (l_api_version,
26606 p_api_version,
26607 l_api_name ,
26608 g_pkg_name)
26609 THEN
26610 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
26611 END IF;
26612
26613
26614 -- Initialize message list if p_init_msg_list is set to TRUE.
26615 IF FND_API.to_Boolean( p_init_msg_list ) THEN
26616 FND_MSG_PUB.initialize;
26617 END IF;
26618
26619
26620 -- Initialize API return status to success
26621 x_return_status := FND_API.G_RET_STS_SUCCESS;
26622
26623
26624 -- Check the profile option debug_level for debug message reporting
26625 l_debug_level:=fnd_profile.value('CSI_DEBUG_LEVEL');
26626
26627 -- If debug_level = 1 then dump the procedure name
26628 IF (l_debug_level > 0) THEN
26629 csi_gen_utility_pvt.put_line( 'update_extended_attrib_values');
26630 END IF;
26631
26632
26633 -- If the debug level = 2 then dump all the parameters values.
26634 IF (l_debug_level > 1) THEN
26635 csi_gen_utility_pvt.put_line(
26636 p_api_version ||'-'
26637 || p_commit ||'-'
26638 || p_init_msg_list ||'-'
26639 || p_validation_level );
26640 -- Dump extended attribute rec
26641 csi_gen_utility_pvt.dump_ext_attrib_values_rec(p_ext_attrib_rec);
26642 -- Dump txn_rec
26643 csi_gen_utility_pvt.dump_txn_rec(p_txn_rec);
26644 END IF;
26645
26646
26647 -- Start API body
26648
26649 -- Validate extended_attribute_value_id
26650 IF NOT(csi_extend_attrib_vld_pvt.Val_and_get_ext_att_id
26651 (p_ext_attrib_rec.attribute_value_id,
26652 l_ext_attrib_rec )) THEN
26653 RAISE FND_API.G_EXC_ERROR;
26654 END IF;
26655
26656
26657 -- Validate object_version_number
26658 IF NOT(csi_extend_attrib_vld_pvt.Is_valid_obj_ver_num
26659 (p_ext_attrib_rec.object_version_number
26660 ,l_ext_attrib_rec.object_version_number
26661 )) THEN
26662 RAISE FND_API.G_EXC_ERROR;
26663 END IF;
26664
26665
26666 -- Validate if the instance is updatable
26667 IF NOT(csi_extend_attrib_vld_pvt.Is_Updatable
26668 (l_ext_attrib_rec.active_end_date ,
26669 p_ext_attrib_rec.active_end_date )) THEN
26670 RAISE FND_API.G_EXC_ERROR;
26671 END IF;
26672
26673 -- Validate instance id for which the update is related to
26674 IF NOT(csi_extend_attrib_vld_pvt.Is_Valid_instance_id
26675 (l_ext_attrib_rec.instance_id
26676 ,'UPDATE'
26677 ,l_ori_inventory_item_id
26678 ,l_ori_master_org_id)) THEN
26679 -- Check if it is an expire operation
26680 IF NOT(csi_extend_attrib_vld_pvt.Is_Expire_Op
26681 (p_ext_attrib_rec)) THEN
26682 RAISE FND_API.G_EXC_ERROR;
26683 END IF;
26684 END IF;
26685
26686 -- Validate instance id
26687 IF ( p_ext_attrib_rec.instance_id <> FND_API.G_MISS_NUM ) THEN
26688 IF NOT(csi_extend_attrib_vld_pvt.Val_inst_id_for_update
26689 (p_ext_attrib_rec.instance_id
26690 ,l_ext_attrib_rec.instance_id
26691 )) THEN
26692 RAISE FND_API.G_EXC_ERROR;
26693 END IF;
26694 END IF;
26695
26696
26697 -- Verify start effective date
26698 IF ( p_ext_attrib_rec.active_start_date <> FND_API.G_MISS_DATE) THEN
26699 IF (p_ext_attrib_rec.active_start_date <> l_ext_attrib_rec.active_start_date) THEN
26700 FND_MESSAGE.Set_Name('CSI', 'CSI_API_UPD_NOT_ALLOWED');
26701 FND_MESSAGE.Set_Token('COLUMN', 'EXTENDED ATTRIBUTE START_DATE');
26702 FND_MSG_PUB.ADD;
26703 RAISE FND_API.G_EXC_ERROR;
26704 END IF;
26705 END IF;
26706
26707 -- Verify end effective date
26708 IF ( p_ext_attrib_rec.active_end_date <> FND_API.G_MISS_DATE) THEN
26709 IF p_ext_attrib_rec.active_end_date is NOT NULL THEN
26710 IF g_expire_ext_att_flag <> 'Y' THEN
26711 IF NOT(csi_extend_attrib_vld_pvt.Is_EndDate_Valid
26712 (p_ext_attrib_rec.active_start_date,
26713 p_ext_attrib_rec.active_end_date,
26714 p_ext_attrib_rec.instance_id ,
26715 p_ext_attrib_rec.attribute_value_id ,
26716 p_txn_rec.transaction_id)) THEN
26717 RAISE FND_API.G_EXC_ERROR;
26718 END IF;
26719 END IF;
26720 END IF;
26721 END IF;
26722
26723 -- Verify attribute id
26724 IF ( p_ext_attrib_rec.attribute_id <> FND_API.G_MISS_NUM) THEN
26725 IF (l_ext_attrib_rec.attribute_id <> l_ext_attrib_rec.attribute_id) THEN
26726 FND_MESSAGE.Set_Name('CSI', 'CSI_API_UPD_NOT_ALLOWED');
26727 FND_MESSAGE.Set_Token('COLUMN', 'EXTENDED ATTRIBUTE_ID');
26728 FND_MSG_PUB.ADD;
26729 RAISE FND_API.G_EXC_ERROR;
26730 END IF;
26731 END IF;
26732
26733
26734 -- Get the new object version number
26735 l_ext_attrib_rec.object_version_number :=
26736 csi_extend_attrib_vld_pvt.get_object_version_number(l_ext_attrib_rec.object_version_number);
26737
26738 CSI_IEA_VALUES_PKG.Update_Row
26739 (
26740 l_attribute_value_id
26741 ,p_ext_attrib_rec.attribute_id
26742 ,p_ext_attrib_rec.instance_id
26743 ,p_ext_attrib_rec.attribute_value
26744 ,p_ext_attrib_rec.active_start_date
26745 ,p_ext_attrib_rec.active_end_date
26746 ,p_ext_attrib_rec.context
26747 ,p_ext_attrib_rec.attribute1
26748 ,p_ext_attrib_rec.attribute2
26749 ,p_ext_attrib_rec.attribute3
26750 ,p_ext_attrib_rec.attribute4
26751 ,p_ext_attrib_rec.attribute5
26752 ,p_ext_attrib_rec.attribute6
26753 ,p_ext_attrib_rec.attribute7
26754 ,p_ext_attrib_rec.attribute8
26755 ,p_ext_attrib_rec.attribute9
26756 ,p_ext_attrib_rec.attribute10
26757 ,p_ext_attrib_rec.attribute11
26758 ,p_ext_attrib_rec.attribute12
26759 ,p_ext_attrib_rec.attribute13
26760 ,p_ext_attrib_rec.attribute14
26761 ,p_ext_attrib_rec.attribute15
26762 ,fnd_api.g_miss_num
26763 ,fnd_api.g_miss_date
26764 ,fnd_global.user_id
26765 ,sysdate
26766 ,fnd_global.user_id
26767 ,l_ext_attrib_rec.object_version_number
26768 );
26769
26770
26771
26772 -- IF CSI_Instance_parties_vld_pvt.Is_Instance_creation_complete( p_ext_attrib_rec.INSTANCE_ID ) THEN
26773 -- Call create_transaction to create txn log
26774
26775 CSI_TRANSACTIONS_PVT.Create_transaction
26776 ( p_api_version => p_api_version
26777 ,p_commit => fnd_api.g_false
26778 ,p_init_msg_list => p_init_msg_list
26779 ,p_validation_level => p_validation_level
26780 ,p_Success_If_Exists_Flag => 'Y'
26781 ,p_transaction_rec => p_txn_rec
26782 ,x_return_status => x_return_status
26783 ,x_msg_count => x_msg_count
26784 ,x_msg_data => x_msg_data
26785 );
26786
26787 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
26788 l_msg_index := 1;
26789 l_msg_count := x_msg_count;
26790 WHILE l_msg_count > 0 LOOP
26791 x_msg_data := FND_MSG_PUB.GET
26792 (l_msg_index,
26793 FND_API.G_FALSE );
26794
26795 csi_gen_utility_pvt.put_line('message data = '||x_msg_data);
26796 l_msg_index := l_msg_index + 1;
26797 l_msg_count := l_msg_count - 1;
26798 END LOOP;
26799 RAISE FND_API.G_EXC_ERROR;
26800 END IF;
26801
26802 -- Get a unique org_assignment number from the sequence
26803 l_attribute_value_h_id := csi_extend_attrib_vld_pvt.get_attribute_value_h_id;
26804
26805 -- Get full dump frequency from CSI_INSTALL_PARAMETERS
26806 l_dump_frequency := csi_org_unit_vld_pvt.get_full_dump_frequency;
26807 --
26808 IF l_dump_frequency IS NULL THEN
26809 RAISE FND_API.G_EXC_ERROR;
26810 END IF;
26811
26812 -- Grab the input record in a temporary record
26813 l_temp_ext_attrib_rec := p_ext_attrib_rec;
26814
26815 -- Start of modifications for Bug#2547034 on 09/20/02 - rtalluri
26816 BEGIN
26817 SELECT attribute_value_history_id
26818 INTO l_ieav_hist_id
26819 FROM csi_iea_values_h h
26820 WHERE h.transaction_id = p_txn_rec.transaction_id
26821 AND h.attribute_value_id = p_ext_attrib_rec.attribute_value_id;
26822
26823 OPEN ieav_hist_csr(l_ieav_hist_id);
26824 FETCH ieav_hist_csr INTO l_ieav_hist_csr ;
26825 CLOSE ieav_hist_csr;
26826
26827 IF l_ieav_hist_csr.full_dump_flag = 'Y'
26828 THEN
26829 csi_iea_values_h_pkg.update_row (
26830 p_attribute_value_history_id => l_ieav_hist_id ,
26831 p_attribute_value_id => fnd_api.g_miss_num ,
26832 p_transaction_id => fnd_api.g_miss_num ,
26833 p_old_attribute_value => fnd_api.g_miss_char ,
26834 p_new_attribute_value => l_temp_ext_attrib_rec.attribute_value ,
26835 p_old_active_start_date => fnd_api.g_miss_date ,
26836 p_new_active_start_date => l_temp_ext_attrib_rec.active_start_date,
26837 p_old_active_end_date => fnd_api.g_miss_date ,
26838 p_new_active_end_date => l_temp_ext_attrib_rec.active_end_date ,
26839 p_old_context => fnd_api.g_miss_char ,
26840 p_new_context => l_temp_ext_attrib_rec.context ,
26841 p_old_attribute1 => fnd_api.g_miss_char ,
26842 p_new_attribute1 => l_temp_ext_attrib_rec.attribute1 ,
26843 p_old_attribute2 => fnd_api.g_miss_char ,
26844 p_new_attribute2 => l_temp_ext_attrib_rec.attribute2 ,
26845 p_old_attribute3 => fnd_api.g_miss_char ,
26846 p_new_attribute3 => l_temp_ext_attrib_rec.attribute3 ,
26847 p_old_attribute4 => fnd_api.g_miss_char ,
26848 p_new_attribute4 => l_temp_ext_attrib_rec.attribute4 ,
26849 p_old_attribute5 => fnd_api.g_miss_char ,
26850 p_new_attribute5 => l_temp_ext_attrib_rec.attribute5 ,
26851 p_old_attribute6 => fnd_api.g_miss_char ,
26852 p_new_attribute6 => l_temp_ext_attrib_rec.attribute6 ,
26853 p_old_attribute7 => fnd_api.g_miss_char ,
26854 p_new_attribute7 => l_temp_ext_attrib_rec.attribute7 ,
26855 p_old_attribute8 => fnd_api.g_miss_char ,
26856 p_new_attribute8 => l_temp_ext_attrib_rec.attribute8 ,
26857 p_old_attribute9 => fnd_api.g_miss_char ,
26858 p_new_attribute9 => l_temp_ext_attrib_rec.attribute9 ,
26859 p_old_attribute10 => fnd_api.g_miss_char ,
26860 p_new_attribute10 => l_temp_ext_attrib_rec.attribute10 ,
26861 p_old_attribute11 => fnd_api.g_miss_char ,
26862 p_new_attribute11 => l_temp_ext_attrib_rec.attribute11 ,
26863 p_old_attribute12 => fnd_api.g_miss_char ,
26864 p_new_attribute12 => l_temp_ext_attrib_rec.attribute12 ,
26865 p_old_attribute13 => fnd_api.g_miss_char ,
26866 p_new_attribute13 => l_temp_ext_attrib_rec.attribute13 ,
26867 p_old_attribute14 => fnd_api.g_miss_char ,
26868 p_new_attribute14 => l_temp_ext_attrib_rec.attribute14 ,
26869 p_old_attribute15 => fnd_api.g_miss_char ,
26870 p_new_attribute15 => l_temp_ext_attrib_rec.attribute15 ,
26871 p_full_dump_flag => fnd_api.g_miss_char ,
26872 p_created_by => fnd_api.g_miss_num ,
26873 p_creation_date => fnd_api.g_miss_date ,
26874 p_last_updated_by => fnd_global.user_id ,
26875 p_last_update_date => sysdate ,
26876 p_last_update_login => fnd_global.user_id ,
26877 p_object_version_number => fnd_api.g_miss_num);
26878
26879 ELSE
26880 --
26881 IF ( l_ieav_hist_csr.old_attribute_value IS NULL
26882 AND l_ieav_hist_csr.new_attribute_value IS NULL ) THEN
26883 IF ( l_temp_ext_attrib_rec.attribute_value = l_ext_attrib_rec.attribute_value )
26884 OR ( l_temp_ext_attrib_rec.attribute_value = fnd_api.g_miss_char ) THEN
26885 l_ieav_hist_csr.old_attribute_value := NULL;
26886 l_ieav_hist_csr.new_attribute_value := NULL;
26887 ELSE
26888 l_ieav_hist_csr.old_attribute_value := fnd_api.g_miss_char;
26889 l_ieav_hist_csr.new_attribute_value := l_temp_ext_attrib_rec.attribute_value;
26890 END IF;
26891 ELSE
26892 l_ieav_hist_csr.old_attribute_value := fnd_api.g_miss_char;
26893 l_ieav_hist_csr.new_attribute_value := l_temp_ext_attrib_rec.attribute_value;
26894 END IF;
26895 --
26896 IF ( l_ieav_hist_csr.old_active_start_date IS NULL
26897 AND l_ieav_hist_csr.new_active_start_date IS NULL ) THEN
26898 IF ( l_temp_ext_attrib_rec.active_start_date = l_ext_attrib_rec.active_start_date )
26899 OR ( l_temp_ext_attrib_rec.active_start_date = fnd_api.g_miss_date ) THEN
26900 l_ieav_hist_csr.old_active_start_date := NULL;
26901 l_ieav_hist_csr.new_active_start_date := NULL;
26902 ELSE
26903 l_ieav_hist_csr.old_active_start_date := fnd_api.g_miss_date;
26904 l_ieav_hist_csr.new_active_start_date := l_temp_ext_attrib_rec.active_start_date;
26905 END IF;
26906 ELSE
26907 l_ieav_hist_csr.old_active_start_date := fnd_api.g_miss_date;
26908 l_ieav_hist_csr.new_active_start_date := l_temp_ext_attrib_rec.active_start_date;
26909 END IF;
26910 --
26911 IF ( l_ieav_hist_csr.old_active_end_date IS NULL
26912 AND l_ieav_hist_csr.new_active_end_date IS NULL ) THEN
26913 IF ( l_temp_ext_attrib_rec.active_end_date = l_ext_attrib_rec.active_end_date )
26914 OR ( l_temp_ext_attrib_rec.active_end_date = fnd_api.g_miss_date ) THEN
26915 l_ieav_hist_csr.old_active_end_date := NULL;
26916 l_ieav_hist_csr.new_active_end_date := NULL;
26917 ELSE
26918 l_ieav_hist_csr.old_active_end_date := fnd_api.g_miss_date;
26919 l_ieav_hist_csr.new_active_end_date := l_temp_ext_attrib_rec.active_end_date;
26920 END IF;
26921 ELSE
26922 l_ieav_hist_csr.old_active_end_date := fnd_api.g_miss_date;
26923 l_ieav_hist_csr.new_active_end_date := l_temp_ext_attrib_rec.active_end_date;
26924 END IF;
26925 --
26926 IF ( l_ieav_hist_csr.old_context IS NULL
26927 AND l_ieav_hist_csr.new_context IS NULL ) THEN
26928 IF ( l_temp_ext_attrib_rec.context = l_ext_attrib_rec.context )
26929 OR ( l_temp_ext_attrib_rec.context = fnd_api.g_miss_char ) THEN
26930 l_ieav_hist_csr.old_context := NULL;
26931 l_ieav_hist_csr.new_context := NULL;
26932 ELSE
26933 l_ieav_hist_csr.old_context := fnd_api.g_miss_char;
26934 l_ieav_hist_csr.new_context := l_temp_ext_attrib_rec.context;
26935 END IF;
26936 ELSE
26937 l_ieav_hist_csr.old_context := fnd_api.g_miss_char;
26938 l_ieav_hist_csr.new_context := l_temp_ext_attrib_rec.context;
26939 END IF;
26940 --
26941 IF ( l_ieav_hist_csr.old_attribute1 IS NULL
26942 AND l_ieav_hist_csr.new_attribute1 IS NULL ) THEN
26943 IF ( l_temp_ext_attrib_rec.attribute1 = l_ext_attrib_rec.attribute1 )
26944 OR ( l_temp_ext_attrib_rec.attribute1 = fnd_api.g_miss_char ) THEN
26945 l_ieav_hist_csr.old_attribute1 := NULL;
26946 l_ieav_hist_csr.new_attribute1 := NULL;
26947 ELSE
26948 l_ieav_hist_csr.old_attribute1 := fnd_api.g_miss_char;
26949 l_ieav_hist_csr.new_attribute1 := l_temp_ext_attrib_rec.attribute1;
26950 END IF;
26951 ELSE
26952 l_ieav_hist_csr.old_attribute1 := fnd_api.g_miss_char;
26953 l_ieav_hist_csr.new_attribute1 := l_temp_ext_attrib_rec.attribute1;
26954 END IF;
26955 --
26956 IF ( l_ieav_hist_csr.old_attribute2 IS NULL
26957 AND l_ieav_hist_csr.new_attribute2 IS NULL ) THEN
26958 IF ( l_temp_ext_attrib_rec.attribute2 = l_ext_attrib_rec.attribute2 )
26959 OR ( l_temp_ext_attrib_rec.attribute2 = fnd_api.g_miss_char ) THEN
26960 l_ieav_hist_csr.old_attribute2 := NULL;
26961 l_ieav_hist_csr.new_attribute2 := NULL;
26962 ELSE
26963 l_ieav_hist_csr.old_attribute2 := fnd_api.g_miss_char;
26964 l_ieav_hist_csr.new_attribute2 := l_temp_ext_attrib_rec.attribute2;
26965 END IF;
26966 ELSE
26967 l_ieav_hist_csr.old_attribute2 := fnd_api.g_miss_char;
26968 l_ieav_hist_csr.new_attribute2 := l_temp_ext_attrib_rec.attribute2;
26969 END IF;
26970 --
26971 IF ( l_ieav_hist_csr.old_attribute3 IS NULL
26972 AND l_ieav_hist_csr.new_attribute3 IS NULL ) THEN
26973 IF ( l_temp_ext_attrib_rec.attribute3 = l_ext_attrib_rec.attribute3 )
26974 OR ( l_temp_ext_attrib_rec.attribute3 = fnd_api.g_miss_char ) THEN
26975 l_ieav_hist_csr.old_attribute3 := NULL;
26976 l_ieav_hist_csr.new_attribute3 := NULL;
26977 ELSE
26978 l_ieav_hist_csr.old_attribute3 := fnd_api.g_miss_char;
26979 l_ieav_hist_csr.new_attribute3 := l_temp_ext_attrib_rec.attribute3;
26980 END IF;
26981 ELSE
26982 l_ieav_hist_csr.old_attribute3 := fnd_api.g_miss_char;
26983 l_ieav_hist_csr.new_attribute3 := l_temp_ext_attrib_rec.attribute3;
26984 END IF;
26985 --
26986 IF ( l_ieav_hist_csr.old_attribute4 IS NULL
26987 AND l_ieav_hist_csr.new_attribute4 IS NULL ) THEN
26988 IF ( l_temp_ext_attrib_rec.attribute4 = l_ext_attrib_rec.attribute4 )
26989 OR ( l_temp_ext_attrib_rec.attribute4 = fnd_api.g_miss_char ) THEN
26990 l_ieav_hist_csr.old_attribute4 := NULL;
26991 l_ieav_hist_csr.new_attribute4 := NULL;
26992 ELSE
26993 l_ieav_hist_csr.old_attribute4 := fnd_api.g_miss_char;
26994 l_ieav_hist_csr.new_attribute4 := l_temp_ext_attrib_rec.attribute4;
26995 END IF;
26996 ELSE
26997 l_ieav_hist_csr.old_attribute4 := fnd_api.g_miss_char;
26998 l_ieav_hist_csr.new_attribute4 := l_temp_ext_attrib_rec.attribute4;
26999 END IF;
27000 --
27001 IF ( l_ieav_hist_csr.old_attribute5 IS NULL
27002 AND l_ieav_hist_csr.new_attribute5 IS NULL ) THEN
27003 IF ( l_temp_ext_attrib_rec.attribute5 = l_ext_attrib_rec.attribute5 )
27004 OR ( l_temp_ext_attrib_rec.attribute5 = fnd_api.g_miss_char ) THEN
27005 l_ieav_hist_csr.old_attribute5 := NULL;
27006 l_ieav_hist_csr.new_attribute5 := NULL;
27007 ELSE
27008 l_ieav_hist_csr.old_attribute5 := fnd_api.g_miss_char;
27009 l_ieav_hist_csr.new_attribute5 := l_temp_ext_attrib_rec.attribute5;
27010 END IF;
27011 ELSE
27012 l_ieav_hist_csr.old_attribute5 := fnd_api.g_miss_char;
27013 l_ieav_hist_csr.new_attribute5 := l_temp_ext_attrib_rec.attribute5;
27014 END IF;
27015 --
27016 IF ( l_ieav_hist_csr.old_attribute6 IS NULL
27017 AND l_ieav_hist_csr.new_attribute6 IS NULL ) THEN
27018 IF ( l_temp_ext_attrib_rec.attribute6 = l_ext_attrib_rec.attribute6 )
27019 OR ( l_temp_ext_attrib_rec.attribute6 = fnd_api.g_miss_char ) THEN
27020 l_ieav_hist_csr.old_attribute6 := NULL;
27021 l_ieav_hist_csr.new_attribute6 := NULL;
27022 ELSE
27023 l_ieav_hist_csr.old_attribute6 := fnd_api.g_miss_char;
27024 l_ieav_hist_csr.new_attribute6 := l_temp_ext_attrib_rec.attribute6;
27025 END IF;
27026 ELSE
27027 l_ieav_hist_csr.old_attribute6 := fnd_api.g_miss_char;
27028 l_ieav_hist_csr.new_attribute6 := l_temp_ext_attrib_rec.attribute6;
27029 END IF;
27030 --
27031 IF ( l_ieav_hist_csr.old_attribute7 IS NULL
27032 AND l_ieav_hist_csr.new_attribute7 IS NULL ) THEN
27033 IF ( l_temp_ext_attrib_rec.attribute7 = l_ext_attrib_rec.attribute7 )
27034 OR ( l_temp_ext_attrib_rec.attribute7 = fnd_api.g_miss_char ) THEN
27035 l_ieav_hist_csr.old_attribute7 := NULL;
27036 l_ieav_hist_csr.new_attribute7 := NULL;
27037 ELSE
27038 l_ieav_hist_csr.old_attribute7 := fnd_api.g_miss_char;
27039 l_ieav_hist_csr.new_attribute7 := l_temp_ext_attrib_rec.attribute7;
27040 END IF;
27041 ELSE
27042 l_ieav_hist_csr.old_attribute7 := fnd_api.g_miss_char;
27043 l_ieav_hist_csr.new_attribute7 := l_temp_ext_attrib_rec.attribute7;
27044 END IF;
27045 --
27046 IF ( l_ieav_hist_csr.old_attribute8 IS NULL
27047 AND l_ieav_hist_csr.new_attribute8 IS NULL ) THEN
27048 IF ( l_temp_ext_attrib_rec.attribute8 = l_ext_attrib_rec.attribute8 )
27049 OR ( l_temp_ext_attrib_rec.attribute8 = fnd_api.g_miss_char ) THEN
27050 l_ieav_hist_csr.old_attribute8 := NULL;
27051 l_ieav_hist_csr.new_attribute8 := NULL;
27052 ELSE
27053 l_ieav_hist_csr.old_attribute8 := fnd_api.g_miss_char;
27054 l_ieav_hist_csr.new_attribute8 := l_temp_ext_attrib_rec.attribute8;
27055 END IF;
27056 ELSE
27057 l_ieav_hist_csr.old_attribute8 := fnd_api.g_miss_char;
27058 l_ieav_hist_csr.new_attribute8 := l_temp_ext_attrib_rec.attribute8;
27059 END IF;
27060 --
27061 IF ( l_ieav_hist_csr.old_attribute9 IS NULL
27062 AND l_ieav_hist_csr.new_attribute9 IS NULL ) THEN
27063 IF ( l_temp_ext_attrib_rec.attribute9 = l_ext_attrib_rec.attribute9 )
27064 OR ( l_temp_ext_attrib_rec.attribute9 = fnd_api.g_miss_char ) THEN
27065 l_ieav_hist_csr.old_attribute9 := NULL;
27066 l_ieav_hist_csr.new_attribute9 := NULL;
27067 ELSE
27068 l_ieav_hist_csr.old_attribute9 := fnd_api.g_miss_char;
27069 l_ieav_hist_csr.new_attribute9 := l_temp_ext_attrib_rec.attribute9;
27070 END IF;
27071 ELSE
27072 l_ieav_hist_csr.old_attribute9 := fnd_api.g_miss_char;
27073 l_ieav_hist_csr.new_attribute9 := l_temp_ext_attrib_rec.attribute9;
27074 END IF;
27075 --
27076 IF ( l_ieav_hist_csr.old_attribute10 IS NULL
27077 AND l_ieav_hist_csr.new_attribute10 IS NULL ) THEN
27078 IF ( l_temp_ext_attrib_rec.attribute10 = l_ext_attrib_rec.attribute10 )
27079 OR ( l_temp_ext_attrib_rec.attribute10 = fnd_api.g_miss_char ) THEN
27080 l_ieav_hist_csr.old_attribute10 := NULL;
27081 l_ieav_hist_csr.new_attribute10 := NULL;
27082 ELSE
27083 l_ieav_hist_csr.old_attribute10 := fnd_api.g_miss_char;
27084 l_ieav_hist_csr.new_attribute10 := l_temp_ext_attrib_rec.attribute10;
27085 END IF;
27086 ELSE
27087 l_ieav_hist_csr.old_attribute10 := fnd_api.g_miss_char;
27088 l_ieav_hist_csr.new_attribute10 := l_temp_ext_attrib_rec.attribute10;
27089 END IF;
27090 --
27091 IF ( l_ieav_hist_csr.old_attribute11 IS NULL
27092 AND l_ieav_hist_csr.new_attribute11 IS NULL ) THEN
27093 IF ( l_temp_ext_attrib_rec.attribute11 = l_ext_attrib_rec.attribute11 )
27094 OR ( l_temp_ext_attrib_rec.attribute11 = fnd_api.g_miss_char ) THEN
27095 l_ieav_hist_csr.old_attribute11 := NULL;
27096 l_ieav_hist_csr.new_attribute11 := NULL;
27097 ELSE
27098 l_ieav_hist_csr.old_attribute11 := fnd_api.g_miss_char;
27099 l_ieav_hist_csr.new_attribute11 := l_temp_ext_attrib_rec.attribute11;
27100 END IF;
27101 ELSE
27102 l_ieav_hist_csr.old_attribute11 := fnd_api.g_miss_char;
27103 l_ieav_hist_csr.new_attribute11 := l_temp_ext_attrib_rec.attribute11;
27104 END IF;
27105 --
27106 IF ( l_ieav_hist_csr.old_attribute12 IS NULL
27107 AND l_ieav_hist_csr.new_attribute12 IS NULL ) THEN
27108 IF ( l_temp_ext_attrib_rec.attribute12 = l_ext_attrib_rec.attribute12 )
27109 OR ( l_temp_ext_attrib_rec.attribute12 = fnd_api.g_miss_char ) THEN
27110 l_ieav_hist_csr.old_attribute12 := NULL;
27111 l_ieav_hist_csr.new_attribute12 := NULL;
27112 ELSE
27113 l_ieav_hist_csr.old_attribute12 := fnd_api.g_miss_char;
27114 l_ieav_hist_csr.new_attribute12 := l_temp_ext_attrib_rec.attribute12;
27115 END IF;
27116 ELSE
27117 l_ieav_hist_csr.old_attribute12 := fnd_api.g_miss_char;
27118 l_ieav_hist_csr.new_attribute12 := l_temp_ext_attrib_rec.attribute12;
27119 END IF;
27120 --
27121 IF ( l_ieav_hist_csr.old_attribute13 IS NULL
27122 AND l_ieav_hist_csr.new_attribute13 IS NULL ) THEN
27123 IF ( l_temp_ext_attrib_rec.attribute13 = l_ext_attrib_rec.attribute13 )
27124 OR ( l_temp_ext_attrib_rec.attribute13 = fnd_api.g_miss_char ) THEN
27125 l_ieav_hist_csr.old_attribute13 := NULL;
27126 l_ieav_hist_csr.new_attribute13 := NULL;
27127 ELSE
27128 l_ieav_hist_csr.old_attribute13 := fnd_api.g_miss_char;
27129 l_ieav_hist_csr.new_attribute13 := l_temp_ext_attrib_rec.attribute13;
27130 END IF;
27131 ELSE
27132 l_ieav_hist_csr.old_attribute13 := fnd_api.g_miss_char;
27133 l_ieav_hist_csr.new_attribute13 := l_temp_ext_attrib_rec.attribute13;
27134 END IF;
27135 --
27136 IF ( l_ieav_hist_csr.old_attribute14 IS NULL
27137 AND l_ieav_hist_csr.new_attribute14 IS NULL ) THEN
27138 IF ( l_temp_ext_attrib_rec.attribute14 = l_ext_attrib_rec.attribute14 )
27139 OR ( l_temp_ext_attrib_rec.attribute14 = fnd_api.g_miss_char ) THEN
27140 l_ieav_hist_csr.old_attribute14 := NULL;
27141 l_ieav_hist_csr.new_attribute14 := NULL;
27142 ELSE
27143 l_ieav_hist_csr.old_attribute14 := fnd_api.g_miss_char;
27144 l_ieav_hist_csr.new_attribute14 := l_temp_ext_attrib_rec.attribute14;
27145 END IF;
27146 ELSE
27147 l_ieav_hist_csr.old_attribute14 := fnd_api.g_miss_char;
27148 l_ieav_hist_csr.new_attribute14 := l_temp_ext_attrib_rec.attribute14;
27149 END IF;
27150 --
27151 IF ( l_ieav_hist_csr.old_attribute15 IS NULL
27152 AND l_ieav_hist_csr.new_attribute15 IS NULL ) THEN
27153 IF ( l_temp_ext_attrib_rec.attribute15 = l_ext_attrib_rec.attribute15 )
27154 OR ( l_temp_ext_attrib_rec.attribute15 = fnd_api.g_miss_char ) THEN
27155 l_ieav_hist_csr.old_attribute15 := NULL;
27156 l_ieav_hist_csr.new_attribute15 := NULL;
27157 ELSE
27158 l_ieav_hist_csr.old_attribute15 := fnd_api.g_miss_char;
27159 l_ieav_hist_csr.new_attribute15 := l_temp_ext_attrib_rec.attribute15;
27160 END IF;
27161 ELSE
27162 l_ieav_hist_csr.old_attribute15 := fnd_api.g_miss_char;
27163 l_ieav_hist_csr.new_attribute15 := l_temp_ext_attrib_rec.attribute15;
27164 END IF;
27165 --
27166
27167 csi_iea_values_h_pkg.update_row (
27168 p_attribute_value_history_id => l_ieav_hist_id ,
27169 p_attribute_value_id => fnd_api.g_miss_num ,
27170 p_transaction_id => fnd_api.g_miss_num ,
27171 p_old_attribute_value => l_ieav_hist_csr.old_attribute_value ,
27172 p_new_attribute_value => l_temp_ext_attrib_rec.attribute_value ,
27173 p_old_active_start_date => l_ieav_hist_csr.old_active_start_date ,
27174 p_new_active_start_date => l_temp_ext_attrib_rec.active_start_date,
27175 p_old_active_end_date => l_ieav_hist_csr.old_active_end_date ,
27176 p_new_active_end_date => l_temp_ext_attrib_rec.active_end_date ,
27177 p_old_context => l_ieav_hist_csr.old_context ,
27178 p_new_context => l_temp_ext_attrib_rec.context ,
27179 p_old_attribute1 => l_ieav_hist_csr.old_attribute1 ,
27180 p_new_attribute1 => l_temp_ext_attrib_rec.attribute1 ,
27181 p_old_attribute2 => l_ieav_hist_csr.old_attribute2 ,
27182 p_new_attribute2 => l_temp_ext_attrib_rec.attribute2 ,
27183 p_old_attribute3 => l_ieav_hist_csr.old_attribute3 ,
27184 p_new_attribute3 => l_temp_ext_attrib_rec.attribute3 ,
27185 p_old_attribute4 => l_ieav_hist_csr.old_attribute4 ,
27186 p_new_attribute4 => l_temp_ext_attrib_rec.attribute4 ,
27187 p_old_attribute5 => l_ieav_hist_csr.old_attribute5 ,
27188 p_new_attribute5 => l_temp_ext_attrib_rec.attribute5 ,
27189 p_old_attribute6 => l_ieav_hist_csr.old_attribute6 ,
27190 p_new_attribute6 => l_temp_ext_attrib_rec.attribute6 ,
27191 p_old_attribute7 => l_ieav_hist_csr.old_attribute7 ,
27192 p_new_attribute7 => l_temp_ext_attrib_rec.attribute7 ,
27193 p_old_attribute8 => l_ieav_hist_csr.old_attribute8 ,
27194 p_new_attribute8 => l_temp_ext_attrib_rec.attribute8 ,
27195 p_old_attribute9 => l_ieav_hist_csr.old_attribute9 ,
27196 p_new_attribute9 => l_temp_ext_attrib_rec.attribute9 ,
27197 p_old_attribute10 => l_ieav_hist_csr.old_attribute10 ,
27198 p_new_attribute10 => l_temp_ext_attrib_rec.attribute10 ,
27199 p_old_attribute11 => l_ieav_hist_csr.old_attribute11 ,
27200 p_new_attribute11 => l_temp_ext_attrib_rec.attribute11 ,
27201 p_old_attribute12 => l_ieav_hist_csr.old_attribute12 ,
27202 p_new_attribute12 => l_temp_ext_attrib_rec.attribute12 ,
27203 p_old_attribute13 => l_ieav_hist_csr.old_attribute13 ,
27204 p_new_attribute13 => l_temp_ext_attrib_rec.attribute13 ,
27205 p_old_attribute14 => l_ieav_hist_csr.old_attribute14 ,
27206 p_new_attribute14 => l_temp_ext_attrib_rec.attribute14 ,
27207 p_old_attribute15 => l_ieav_hist_csr.old_attribute15 ,
27208 p_new_attribute15 => l_temp_ext_attrib_rec.attribute15 ,
27209 p_full_dump_flag => fnd_api.g_miss_char ,
27210 p_created_by => fnd_api.g_miss_num ,
27211 p_creation_date => fnd_api.g_miss_date ,
27212 p_last_updated_by => fnd_global.user_id ,
27213 p_last_update_date => SYSDATE ,
27214 p_last_update_login => fnd_global.user_id ,
27215 p_object_version_number => fnd_api.g_miss_num);
27216 END IF;
27217 EXCEPTION
27218 WHEN NO_DATA_FOUND THEN
27219
27220 IF (mod(l_ext_attrib_rec.object_version_number, l_dump_frequency) = 0) THEN
27221
27222 -- If the mod value is 0 then dump all the columns both changed and unchanged
27223 -- changed columns have old and new values while the unchanged values have old and new values
27224 -- exactly same
27225
27226 l_dump_frequency_flag := 'Y';
27227 -- Grab the input record in a temporary record
27228 l_temp_ext_attrib_rec := p_ext_attrib_rec;
27229
27230 IF (p_ext_attrib_rec.ATTRIBUTE_VALUE = FND_API.G_MISS_CHAR) THEN
27231 l_temp_ext_attrib_rec.ATTRIBUTE_VALUE := l_ext_attrib_rec.ATTRIBUTE_VALUE;
27232 END IF;
27233
27234 IF (p_ext_attrib_rec.ACTIVE_START_DATE = FND_API.G_MISS_DATE) THEN
27235 l_temp_ext_attrib_rec.ACTIVE_START_DATE := l_ext_attrib_rec.ACTIVE_START_DATE;
27236 END IF;
27237
27238 IF (p_ext_attrib_rec.ACTIVE_END_DATE = FND_API.G_MISS_DATE) THEN
27239 l_temp_ext_attrib_rec.ACTIVE_END_DATE := l_ext_attrib_rec.ACTIVE_END_DATE;
27240 END IF;
27241
27242 IF (p_ext_attrib_rec.CONTEXT = FND_API.G_MISS_CHAR) THEN
27243 l_temp_ext_attrib_rec.CONTEXT := l_ext_attrib_rec.CONTEXT;
27244 END IF;
27245
27246 IF (p_ext_attrib_rec.ATTRIBUTE1 = FND_API.G_MISS_CHAR) THEN
27247 l_temp_ext_attrib_rec.ATTRIBUTE1 := l_ext_attrib_rec.ATTRIBUTE1;
27248 END IF;
27249 IF (p_ext_attrib_rec.ATTRIBUTE2 = FND_API.G_MISS_CHAR) THEN
27250 l_temp_ext_attrib_rec.ATTRIBUTE2 := l_ext_attrib_rec.ATTRIBUTE2;
27251 END IF;
27252 IF (p_ext_attrib_rec.ATTRIBUTE3 = FND_API.G_MISS_CHAR) THEN
27253 l_temp_ext_attrib_rec.ATTRIBUTE3 := l_ext_attrib_rec.ATTRIBUTE3;
27254 END IF;
27255 IF (p_ext_attrib_rec.ATTRIBUTE4 = FND_API.G_MISS_CHAR) THEN
27256 l_temp_ext_attrib_rec.ATTRIBUTE4 := l_ext_attrib_rec.ATTRIBUTE4;
27257 END IF;
27258 IF (p_ext_attrib_rec.ATTRIBUTE5 = FND_API.G_MISS_CHAR) THEN
27259 l_temp_ext_attrib_rec.ATTRIBUTE5 := l_ext_attrib_rec.ATTRIBUTE5;
27260 END IF;
27261 IF (p_ext_attrib_rec.ATTRIBUTE6 = FND_API.G_MISS_CHAR) THEN
27262 l_temp_ext_attrib_rec.ATTRIBUTE6 := l_ext_attrib_rec.ATTRIBUTE6;
27263 END IF;
27264 IF (p_ext_attrib_rec.ATTRIBUTE7 = FND_API.G_MISS_CHAR) THEN
27265 l_temp_ext_attrib_rec.ATTRIBUTE7 := l_ext_attrib_rec.ATTRIBUTE7;
27266 END IF;
27267 IF (p_ext_attrib_rec.ATTRIBUTE8 = FND_API.G_MISS_CHAR) THEN
27268 l_temp_ext_attrib_rec.ATTRIBUTE8 := l_ext_attrib_rec.ATTRIBUTE8;
27269 END IF;
27270 IF (p_ext_attrib_rec.ATTRIBUTE9 = FND_API.G_MISS_CHAR) THEN
27271 l_temp_ext_attrib_rec.ATTRIBUTE9 := l_ext_attrib_rec.ATTRIBUTE9;
27272 END IF;
27273 IF (p_ext_attrib_rec.ATTRIBUTE10 = FND_API.G_MISS_CHAR) THEN
27274 l_temp_ext_attrib_rec.ATTRIBUTE10 := l_ext_attrib_rec.ATTRIBUTE10;
27275 END IF;
27276 IF (p_ext_attrib_rec.ATTRIBUTE11 = FND_API.G_MISS_CHAR) THEN
27277 l_temp_ext_attrib_rec.ATTRIBUTE11 := l_ext_attrib_rec.ATTRIBUTE11;
27278 END IF;
27279 IF (p_ext_attrib_rec.ATTRIBUTE12 = FND_API.G_MISS_CHAR) THEN
27280 l_temp_ext_attrib_rec.ATTRIBUTE12 := l_ext_attrib_rec.ATTRIBUTE12;
27281 END IF;
27282 IF (p_ext_attrib_rec.ATTRIBUTE13 = FND_API.G_MISS_CHAR) THEN
27283 l_temp_ext_attrib_rec.ATTRIBUTE13 := l_ext_attrib_rec.ATTRIBUTE13;
27284 END IF;
27285 IF (p_ext_attrib_rec.ATTRIBUTE14 = FND_API.G_MISS_CHAR) THEN
27286 l_temp_ext_attrib_rec.ATTRIBUTE14 := l_ext_attrib_rec.ATTRIBUTE14;
27287 END IF;
27288 IF (p_ext_attrib_rec.ATTRIBUTE15 = FND_API.G_MISS_CHAR) THEN
27289 l_temp_ext_attrib_rec.ATTRIBUTE15 := l_ext_attrib_rec.ATTRIBUTE15;
27290 END IF;
27291
27292 -- Create a history
27293 CSI_IEA_VALUES_H_PKG.Insert_Row(
27294 l_attribute_value_h_id
27295 ,l_attribute_value_id
27296 ,p_txn_rec.transaction_id
27297 ,l_ext_attrib_rec.attribute_value
27298 ,l_temp_ext_attrib_rec.attribute_value
27299 ,l_ext_attrib_rec.active_start_date
27300 ,l_temp_ext_attrib_rec.active_start_date
27301 ,l_ext_attrib_rec.active_end_date
27302 ,l_temp_ext_attrib_rec.active_end_date
27303 ,l_ext_attrib_rec.context
27304 ,l_temp_ext_attrib_rec.context
27305 ,l_ext_attrib_rec.ATTRIBUTE1
27306 ,l_temp_ext_attrib_rec.ATTRIBUTE1
27307 ,l_ext_attrib_rec.ATTRIBUTE2
27308 ,l_temp_ext_attrib_rec.ATTRIBUTE2
27309 ,l_ext_attrib_rec.ATTRIBUTE3
27310 ,l_temp_ext_attrib_rec.ATTRIBUTE3
27311 ,l_ext_attrib_rec.ATTRIBUTE4
27312 ,l_temp_ext_attrib_rec.ATTRIBUTE4
27313 ,l_ext_attrib_rec.ATTRIBUTE5
27314 ,l_temp_ext_attrib_rec.ATTRIBUTE5
27315 ,l_ext_attrib_rec.ATTRIBUTE6
27316 ,l_temp_ext_attrib_rec.ATTRIBUTE6
27317 ,l_ext_attrib_rec.ATTRIBUTE7
27318 ,l_temp_ext_attrib_rec.ATTRIBUTE7
27319 ,l_ext_attrib_rec.ATTRIBUTE8
27320 ,l_temp_ext_attrib_rec.ATTRIBUTE8
27321 ,l_ext_attrib_rec.ATTRIBUTE9
27322 ,l_temp_ext_attrib_rec.ATTRIBUTE9
27323 ,l_ext_attrib_rec.ATTRIBUTE10
27324 ,l_temp_ext_attrib_rec.ATTRIBUTE10
27325 ,l_ext_attrib_rec.ATTRIBUTE11
27326 ,l_temp_ext_attrib_rec.ATTRIBUTE11
27327 ,l_ext_attrib_rec.ATTRIBUTE12
27328 ,l_temp_ext_attrib_rec.ATTRIBUTE12
27329 ,l_ext_attrib_rec.ATTRIBUTE13
27330 ,l_temp_ext_attrib_rec.ATTRIBUTE13
27331 ,l_ext_attrib_rec.ATTRIBUTE14
27332 ,l_temp_ext_attrib_rec.ATTRIBUTE14
27333 ,l_ext_attrib_rec.ATTRIBUTE15
27334 ,l_temp_ext_attrib_rec.ATTRIBUTE15
27335 ,l_dump_frequency_flag
27336 ,fnd_global.user_id
27337 ,sysdate
27338 ,fnd_global.user_id
27339 ,sysdate
27340 ,fnd_global.user_id
27341 ,1);
27342
27343 ELSE
27344 l_dump_frequency_flag := 'N';
27345 -- Grab the input record in a temporary record
27346 l_temp_ext_attrib_rec := l_ext_attrib_rec;
27347
27348 -- If the mod value is not equal to zero then dump only the changed columns
27349 -- while the unchanged values have old and new values as null
27350 IF (p_ext_attrib_rec.attribute_value = fnd_api.g_miss_char) OR
27351 NVL(p_ext_attrib_rec.attribute_value, fnd_api.g_miss_char) = NVL(l_temp_ext_attrib_rec.attribute_value, fnd_api.g_miss_char) THEN
27352 l_ext_att_hist_rec.old_attribute_value := NULL;
27353 l_ext_att_hist_rec.new_attribute_value := NULL;
27354 ELSIF
27355 NVL(l_temp_ext_attrib_rec.attribute_value,fnd_api.g_miss_char) <> NVL(p_ext_attrib_rec.attribute_value,fnd_api.g_miss_char) THEN
27356 l_ext_att_hist_rec.old_attribute_value := l_temp_ext_attrib_rec.attribute_value ;
27357 l_ext_att_hist_rec.new_attribute_value := p_ext_attrib_rec.attribute_value ;
27358 END IF;
27359 --
27360 IF (p_ext_attrib_rec.active_start_date = fnd_api.g_miss_date) OR
27361 NVL(p_ext_attrib_rec.active_start_date, fnd_api.g_miss_date) = NVL(l_temp_ext_attrib_rec.active_start_date, fnd_api.g_miss_date) THEN
27362 l_ext_att_hist_rec.old_active_start_date := NULL;
27363 l_ext_att_hist_rec.new_active_start_date := NULL;
27364 ELSIF
27365 NVL(l_temp_ext_attrib_rec.active_start_date,fnd_api.g_miss_date) <> NVL(p_ext_attrib_rec.active_start_date,fnd_api.g_miss_date) THEN
27366 l_ext_att_hist_rec.old_active_start_date := l_temp_ext_attrib_rec.active_start_date ;
27367 l_ext_att_hist_rec.new_active_start_date := p_ext_attrib_rec.active_start_date ;
27368 END IF;
27369 --
27370 IF (p_ext_attrib_rec.active_end_date = fnd_api.g_miss_date) OR
27371 NVL(p_ext_attrib_rec.active_end_date, fnd_api.g_miss_date) = NVL(l_temp_ext_attrib_rec.active_end_date, fnd_api.g_miss_date) THEN
27372 l_ext_att_hist_rec.old_active_end_date := NULL;
27373 l_ext_att_hist_rec.new_active_end_date := NULL;
27374 ELSIF
27375 NVL(l_temp_ext_attrib_rec.active_end_date,fnd_api.g_miss_date) <> NVL(p_ext_attrib_rec.active_end_date,fnd_api.g_miss_date) THEN
27376 l_ext_att_hist_rec.old_active_end_date := l_temp_ext_attrib_rec.active_end_date ;
27377 l_ext_att_hist_rec.new_active_end_date := p_ext_attrib_rec.active_end_date ;
27378 END IF;
27379 --
27380 IF (p_ext_attrib_rec.context = fnd_api.g_miss_char) OR
27381 NVL(p_ext_attrib_rec.context, fnd_api.g_miss_char) = NVL(l_temp_ext_attrib_rec.context, fnd_api.g_miss_char) THEN
27382 l_ext_att_hist_rec.old_context := NULL;
27383 l_ext_att_hist_rec.new_context := NULL;
27384 ELSIF
27385 NVL(l_temp_ext_attrib_rec.context,fnd_api.g_miss_char) <> NVL(p_ext_attrib_rec.context,fnd_api.g_miss_char) THEN
27386 l_ext_att_hist_rec.old_context := l_temp_ext_attrib_rec.context ;
27387 l_ext_att_hist_rec.new_context := p_ext_attrib_rec.context ;
27388 END IF;
27389 --
27390 IF (p_ext_attrib_rec.attribute1 = fnd_api.g_miss_char) OR
27391 NVL(p_ext_attrib_rec.attribute1, fnd_api.g_miss_char) = NVL(l_temp_ext_attrib_rec.attribute1, fnd_api.g_miss_char) THEN
27392 l_ext_att_hist_rec.old_attribute1 := NULL;
27393 l_ext_att_hist_rec.new_attribute1 := NULL;
27394 ELSIF
27395 NVL(l_temp_ext_attrib_rec.attribute1,fnd_api.g_miss_char) <> NVL(p_ext_attrib_rec.attribute1,fnd_api.g_miss_char) THEN
27396 l_ext_att_hist_rec.old_attribute1 := l_temp_ext_attrib_rec.attribute1 ;
27397 l_ext_att_hist_rec.new_attribute1 := p_ext_attrib_rec.attribute1 ;
27398 END IF;
27399 --
27400 IF (p_ext_attrib_rec.attribute2 = fnd_api.g_miss_char) OR
27401 NVL(p_ext_attrib_rec.attribute2, fnd_api.g_miss_char) = NVL(l_temp_ext_attrib_rec.attribute2, fnd_api.g_miss_char) THEN
27402 l_ext_att_hist_rec.old_attribute2 := NULL;
27403 l_ext_att_hist_rec.new_attribute2 := NULL;
27404 ELSIF
27405 NVL(l_temp_ext_attrib_rec.attribute2,fnd_api.g_miss_char) <> NVL(p_ext_attrib_rec.attribute2,fnd_api.g_miss_char) THEN
27406 l_ext_att_hist_rec.old_attribute2 := l_temp_ext_attrib_rec.attribute2 ;
27407 l_ext_att_hist_rec.new_attribute2 := p_ext_attrib_rec.attribute2 ;
27408 END IF;
27409 --
27410 IF (p_ext_attrib_rec.attribute3 = fnd_api.g_miss_char) OR
27411 NVL(p_ext_attrib_rec.attribute3, fnd_api.g_miss_char) = NVL(l_temp_ext_attrib_rec.attribute3, fnd_api.g_miss_char) THEN
27412 l_ext_att_hist_rec.old_attribute3 := NULL;
27413 l_ext_att_hist_rec.new_attribute3 := NULL;
27414 ELSIF
27415 NVL(l_temp_ext_attrib_rec.attribute3,fnd_api.g_miss_char) <> NVL(p_ext_attrib_rec.attribute3,fnd_api.g_miss_char) THEN
27416 l_ext_att_hist_rec.old_attribute3 := l_temp_ext_attrib_rec.attribute3 ;
27417 l_ext_att_hist_rec.new_attribute3 := p_ext_attrib_rec.attribute3 ;
27418 END IF;
27419 --
27420 IF (p_ext_attrib_rec.attribute4 = fnd_api.g_miss_char) OR
27421 NVL(p_ext_attrib_rec.attribute4, fnd_api.g_miss_char) = NVL(l_temp_ext_attrib_rec.attribute4, fnd_api.g_miss_char) THEN
27422 l_ext_att_hist_rec.old_attribute4 := NULL;
27423 l_ext_att_hist_rec.new_attribute4 := NULL;
27424 ELSIF
27425 NVL(l_temp_ext_attrib_rec.attribute4,fnd_api.g_miss_char) <> NVL(p_ext_attrib_rec.attribute4,fnd_api.g_miss_char) THEN
27426 l_ext_att_hist_rec.old_attribute4 := l_temp_ext_attrib_rec.attribute4 ;
27427 l_ext_att_hist_rec.new_attribute4 := p_ext_attrib_rec.attribute4 ;
27428 END IF;
27429 --
27430 IF (p_ext_attrib_rec.attribute5 = fnd_api.g_miss_char) OR
27431 NVL(p_ext_attrib_rec.attribute5, fnd_api.g_miss_char) = NVL(l_temp_ext_attrib_rec.attribute5, fnd_api.g_miss_char) THEN
27432 l_ext_att_hist_rec.old_attribute5 := NULL;
27433 l_ext_att_hist_rec.new_attribute5 := NULL;
27434 ELSIF
27435 NVL(l_temp_ext_attrib_rec.attribute5,fnd_api.g_miss_char) <> NVL(p_ext_attrib_rec.attribute5,fnd_api.g_miss_char) THEN
27436 l_ext_att_hist_rec.old_attribute5 := l_temp_ext_attrib_rec.attribute5 ;
27437 l_ext_att_hist_rec.new_attribute5 := p_ext_attrib_rec.attribute5 ;
27438 END IF;
27439 --
27440 IF (p_ext_attrib_rec.attribute6 = fnd_api.g_miss_char) OR
27441 NVL(p_ext_attrib_rec.attribute6, fnd_api.g_miss_char) = NVL(l_temp_ext_attrib_rec.attribute6, fnd_api.g_miss_char) THEN
27442 l_ext_att_hist_rec.old_attribute6 := NULL;
27443 l_ext_att_hist_rec.new_attribute6 := NULL;
27444 ELSIF
27445 NVL(l_temp_ext_attrib_rec.attribute6,fnd_api.g_miss_char) <> NVL(p_ext_attrib_rec.attribute6,fnd_api.g_miss_char) THEN
27446 l_ext_att_hist_rec.old_attribute6 := l_temp_ext_attrib_rec.attribute6 ;
27447 l_ext_att_hist_rec.new_attribute6 := p_ext_attrib_rec.attribute6 ;
27448 END IF;
27449 --
27450 IF (p_ext_attrib_rec.attribute7 = fnd_api.g_miss_char) OR
27451 NVL(p_ext_attrib_rec.attribute7, fnd_api.g_miss_char) = NVL(l_temp_ext_attrib_rec.attribute7, fnd_api.g_miss_char) THEN
27452 l_ext_att_hist_rec.old_attribute7 := NULL;
27453 l_ext_att_hist_rec.new_attribute7 := NULL;
27454 ELSIF
27455 NVL(l_temp_ext_attrib_rec.attribute7,fnd_api.g_miss_char) <> NVL(p_ext_attrib_rec.attribute7,fnd_api.g_miss_char) THEN
27456 l_ext_att_hist_rec.old_attribute7 := l_temp_ext_attrib_rec.attribute7 ;
27457 l_ext_att_hist_rec.new_attribute7 := p_ext_attrib_rec.attribute7 ;
27458 END IF;
27459 --
27460 IF (p_ext_attrib_rec.attribute8 = fnd_api.g_miss_char) OR
27461 NVL(p_ext_attrib_rec.attribute8, fnd_api.g_miss_char) = NVL(l_temp_ext_attrib_rec.attribute8, fnd_api.g_miss_char) THEN
27462 l_ext_att_hist_rec.old_attribute8 := NULL;
27463 l_ext_att_hist_rec.new_attribute8 := NULL;
27464 ELSIF
27465 NVL(l_temp_ext_attrib_rec.attribute8,fnd_api.g_miss_char) <> NVL(p_ext_attrib_rec.attribute8,fnd_api.g_miss_char) THEN
27466 l_ext_att_hist_rec.old_attribute8 := l_temp_ext_attrib_rec.attribute8 ;
27467 l_ext_att_hist_rec.new_attribute8 := p_ext_attrib_rec.attribute8 ;
27468 END IF;
27469 --
27470 IF (p_ext_attrib_rec.attribute9 = fnd_api.g_miss_char) OR
27471 NVL(p_ext_attrib_rec.attribute9, fnd_api.g_miss_char) = NVL(l_temp_ext_attrib_rec.attribute9, fnd_api.g_miss_char) THEN
27472 l_ext_att_hist_rec.old_attribute9 := NULL;
27473 l_ext_att_hist_rec.new_attribute9 := NULL;
27474 ELSIF
27475 NVL(l_temp_ext_attrib_rec.attribute9,fnd_api.g_miss_char) <> NVL(p_ext_attrib_rec.attribute9,fnd_api.g_miss_char) THEN
27476 l_ext_att_hist_rec.old_attribute9 := l_temp_ext_attrib_rec.attribute9 ;
27477 l_ext_att_hist_rec.new_attribute9 := p_ext_attrib_rec.attribute9 ;
27478 END IF;
27479 --
27480 IF (p_ext_attrib_rec.attribute10 = fnd_api.g_miss_char) OR
27481 NVL(p_ext_attrib_rec.attribute10, fnd_api.g_miss_char) = NVL(l_temp_ext_attrib_rec.attribute10, fnd_api.g_miss_char) THEN
27482 l_ext_att_hist_rec.old_attribute10 := NULL;
27483 l_ext_att_hist_rec.new_attribute10 := NULL;
27484 ELSIF
27485 NVL(l_temp_ext_attrib_rec.attribute10,fnd_api.g_miss_char) <> NVL(p_ext_attrib_rec.attribute10,fnd_api.g_miss_char) THEN
27486 l_ext_att_hist_rec.old_attribute10 := l_temp_ext_attrib_rec.attribute10 ;
27487 l_ext_att_hist_rec.new_attribute10 := p_ext_attrib_rec.attribute10 ;
27488 END IF;
27489 --
27490 IF (p_ext_attrib_rec.attribute11 = fnd_api.g_miss_char) OR
27491 NVL(p_ext_attrib_rec.attribute11, fnd_api.g_miss_char) = NVL(l_temp_ext_attrib_rec.attribute11, fnd_api.g_miss_char) THEN
27492 l_ext_att_hist_rec.old_attribute11 := NULL;
27493 l_ext_att_hist_rec.new_attribute11 := NULL;
27494 ELSIF
27495 NVL(l_temp_ext_attrib_rec.attribute11,fnd_api.g_miss_char) <> NVL(p_ext_attrib_rec.attribute11,fnd_api.g_miss_char) THEN
27496 l_ext_att_hist_rec.old_attribute11 := l_temp_ext_attrib_rec.attribute11 ;
27497 l_ext_att_hist_rec.new_attribute11 := p_ext_attrib_rec.attribute11 ;
27498 END IF;
27499 --
27500 IF (p_ext_attrib_rec.attribute12 = fnd_api.g_miss_char) OR
27501 NVL(p_ext_attrib_rec.attribute12, fnd_api.g_miss_char) = NVL(l_temp_ext_attrib_rec.attribute12, fnd_api.g_miss_char) THEN
27502 l_ext_att_hist_rec.old_attribute12 := NULL;
27503 l_ext_att_hist_rec.new_attribute12 := NULL;
27504 ELSIF
27505 NVL(l_temp_ext_attrib_rec.attribute12,fnd_api.g_miss_char) <> NVL(p_ext_attrib_rec.attribute12,fnd_api.g_miss_char) THEN
27506 l_ext_att_hist_rec.old_attribute12 := l_temp_ext_attrib_rec.attribute12 ;
27507 l_ext_att_hist_rec.new_attribute12 := p_ext_attrib_rec.attribute12 ;
27508 END IF;
27509 --
27510 IF (p_ext_attrib_rec.attribute13 = fnd_api.g_miss_char) OR
27511 NVL(p_ext_attrib_rec.attribute13, fnd_api.g_miss_char) = NVL(l_temp_ext_attrib_rec.attribute13, fnd_api.g_miss_char) THEN
27512 l_ext_att_hist_rec.old_attribute13 := NULL;
27513 l_ext_att_hist_rec.new_attribute13 := NULL;
27514 ELSIF
27515 NVL(l_temp_ext_attrib_rec.attribute13,fnd_api.g_miss_char) <> NVL(p_ext_attrib_rec.attribute13,fnd_api.g_miss_char) THEN
27516 l_ext_att_hist_rec.old_attribute13 := l_temp_ext_attrib_rec.attribute13 ;
27517 l_ext_att_hist_rec.new_attribute13 := p_ext_attrib_rec.attribute13 ;
27518 END IF;
27519 --
27520 IF (p_ext_attrib_rec.attribute14 = fnd_api.g_miss_char) OR
27521 NVL(p_ext_attrib_rec.attribute14, fnd_api.g_miss_char) = NVL(l_temp_ext_attrib_rec.attribute14, fnd_api.g_miss_char) THEN
27522 l_ext_att_hist_rec.old_attribute14 := NULL;
27523 l_ext_att_hist_rec.new_attribute14 := NULL;
27524 ELSIF
27525 NVL(l_temp_ext_attrib_rec.attribute14,fnd_api.g_miss_char) <> NVL(p_ext_attrib_rec.attribute14,fnd_api.g_miss_char) THEN
27526 l_ext_att_hist_rec.old_attribute14 := l_temp_ext_attrib_rec.attribute14 ;
27527 l_ext_att_hist_rec.new_attribute14 := p_ext_attrib_rec.attribute14 ;
27528 END IF;
27529 --
27530 IF (p_ext_attrib_rec.attribute15 = fnd_api.g_miss_char) OR
27531 NVL(p_ext_attrib_rec.attribute15, fnd_api.g_miss_char) = NVL(l_temp_ext_attrib_rec.attribute15, fnd_api.g_miss_char) THEN
27532 l_ext_att_hist_rec.old_attribute15 := NULL;
27533 l_ext_att_hist_rec.new_attribute15 := NULL;
27534 ELSIF
27535 NVL(l_temp_ext_attrib_rec.attribute15,fnd_api.g_miss_char) <> NVL(p_ext_attrib_rec.attribute15,fnd_api.g_miss_char) THEN
27536 l_ext_att_hist_rec.old_attribute15 := l_temp_ext_attrib_rec.attribute15 ;
27537 l_ext_att_hist_rec.new_attribute15 := p_ext_attrib_rec.attribute15 ;
27538 END IF;
27539
27540 -- Create a history
27541 CSI_IEA_VALUES_H_PKG.Insert_Row(
27542 l_attribute_value_h_id
27543 ,l_attribute_value_id
27544 ,p_txn_rec.transaction_id
27545 ,l_ext_att_hist_rec.old_attribute_value
27546 ,l_ext_att_hist_rec.new_attribute_value
27547 ,l_ext_att_hist_rec.old_active_start_date
27548 ,l_ext_att_hist_rec.new_active_start_date
27549 ,l_ext_att_hist_rec.old_active_end_date
27550 ,l_ext_att_hist_rec.new_active_end_date
27551 ,l_ext_att_hist_rec.old_context
27552 ,l_ext_att_hist_rec.new_context
27553 ,l_ext_att_hist_rec.old_attribute1
27554 ,l_ext_att_hist_rec.new_attribute1
27555 ,l_ext_att_hist_rec.old_attribute2
27556 ,l_ext_att_hist_rec.new_attribute2
27557 ,l_ext_att_hist_rec.old_attribute3
27558 ,l_ext_att_hist_rec.new_attribute3
27559 ,l_ext_att_hist_rec.old_attribute4
27560 ,l_ext_att_hist_rec.new_attribute4
27561 ,l_ext_att_hist_rec.old_attribute5
27562 ,l_ext_att_hist_rec.new_attribute5
27563 ,l_ext_att_hist_rec.old_attribute6
27564 ,l_ext_att_hist_rec.new_attribute6
27565 ,l_ext_att_hist_rec.old_attribute7
27566 ,l_ext_att_hist_rec.new_attribute7
27567 ,l_ext_att_hist_rec.old_attribute8
27568 ,l_ext_att_hist_rec.new_attribute8
27569 ,l_ext_att_hist_rec.old_attribute9
27570 ,l_ext_att_hist_rec.new_attribute9
27571 ,l_ext_att_hist_rec.old_attribute10
27572 ,l_ext_att_hist_rec.new_attribute10
27573 ,l_ext_att_hist_rec.old_attribute11
27574 ,l_ext_att_hist_rec.new_attribute11
27575 ,l_ext_att_hist_rec.old_attribute12
27576 ,l_ext_att_hist_rec.new_attribute12
27577 ,l_ext_att_hist_rec.old_attribute13
27578 ,l_ext_att_hist_rec.new_attribute13
27579 ,l_ext_att_hist_rec.old_attribute14
27580 ,l_ext_att_hist_rec.new_attribute14
27581 ,l_ext_att_hist_rec.old_attribute15
27582 ,l_ext_att_hist_rec.new_attribute15
27583 ,l_dump_frequency_flag
27584 ,fnd_global.user_id
27585 ,sysdate
27586 ,fnd_global.user_id
27587 ,sysdate
27588 ,fnd_global.user_id
27589 ,1);
27590
27591 END IF;
27592 END;
27593 -- End of modifications for Bug#2547034 on 09/20/02 - rtalluri
27594 -- End of API body
27595
27596 -- Standard check of p_commit.
27597 IF FND_API.To_Boolean( p_commit ) THEN
27598 COMMIT WORK;
27599 END IF;
27600
27601 -- Standard call to get message count and if count is get message info.
27602 FND_MSG_PUB.Count_And_Get
27603 (p_encoded => FND_API.G_FALSE,
27604 p_count => x_msg_count ,
27605 p_data => x_msg_data
27606 );
27607
27608 EXCEPTION
27609
27610 WHEN FND_API.G_EXC_ERROR THEN
27611 ROLLBACK TO update_extended_attrib_values;
27612 x_return_status := FND_API.G_RET_STS_ERROR ;
27613 FND_MSG_PUB.Count_And_Get
27614 ( p_encoded => FND_API.G_FALSE,
27615 p_count => x_msg_count,
27616 p_data => x_msg_data
27617 );
27618
27619 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
27620 ROLLBACK TO update_extended_attrib_values;
27621 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
27622 FND_MSG_PUB.Count_And_Get
27623 ( p_encoded => FND_API.G_FALSE,
27624 p_count => x_msg_count,
27625 p_data => x_msg_data
27626 );
27627
27628 WHEN OTHERS THEN
27629 ROLLBACK TO update_extended_attrib_values;
27630 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
27631
27632 IF FND_MSG_PUB.Check_Msg_Level
27633 (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
27634 THEN
27635 FND_MSG_PUB.Add_Exc_Msg
27636 ( g_pkg_name,
27637 l_api_name
27638 );
27639 END IF;
27640
27641 FND_MSG_PUB.Count_And_Get
27642 ( p_encoded => FND_API.G_FALSE,
27643 p_count => x_msg_count,
27644 p_data => x_msg_data
27645 );
27646
27647 END update_extended_attrib_values;
27648
27649
27650
27651
27652 /*----------------------------------------------------------*/
27653 /* procedure name: expire_extended_attrib_values */
27654 /* description : Expires the existing extended */
27655 /* attributes for an item instance */
27656 /* */
27657 /*----------------------------------------------------------*/
27658
27659
27660 PROCEDURE expire_extended_attrib_values
27661 ( p_api_version IN NUMBER
27662 ,p_commit IN VARCHAR2
27663 ,p_init_msg_list IN VARCHAR2
27664 ,p_validation_level IN NUMBER
27665 ,p_ext_attrib_rec IN csi_datastructures_pub.extend_attrib_values_rec
27666 ,p_txn_rec IN OUT NOCOPY csi_datastructures_pub.transaction_rec
27667 ,x_return_status OUT NOCOPY VARCHAR2
27668 ,x_msg_count OUT NOCOPY NUMBER
27669 ,x_msg_data OUT NOCOPY VARCHAR2
27670 )
27671
27672 IS
27673 l_api_name CONSTANT VARCHAR2(30) := 'expire_extended_attrib_values';
27674 l_api_version CONSTANT NUMBER := 1.0;
27675 l_debug_level NUMBER;
27676 l_msg_index NUMBER;
27677 l_msg_count NUMBER;
27678 l_ext_attrib_rec csi_datastructures_pub.extend_attrib_values_rec;
27679 BEGIN
27680
27681 -- Standard Start of API savepoint
27682 SAVEPOINT expire_extended_attrib_values;
27683
27684 -- Standard call to check for call compatibility.
27685 IF NOT FND_API.Compatible_API_Call (l_api_version,
27686 p_api_version,
27687 l_api_name ,
27688 g_pkg_name)
27689 THEN
27690 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
27691 END IF;
27692
27693 -- Initialize message list if p_init_msg_list is set to TRUE.
27694 IF FND_API.to_Boolean( p_init_msg_list ) THEN
27695 FND_MSG_PUB.initialize;
27696 END IF;
27697
27698 -- Initialize API return status to success
27699 x_return_status := FND_API.G_RET_STS_SUCCESS;
27700
27701
27702 -- Check the profile option debug_level for debug message reporting
27703
27704 l_debug_level:=fnd_profile.value('CSI_DEBUG_LEVEL');
27705
27706 -- If debug_level = 1 then dump the procedure name
27707 IF (l_debug_level > 0) THEN
27708 csi_gen_utility_pvt.put_line( 'expire_extended_attrib_values');
27709 END IF;
27710
27711
27712 -- If the debug level = 2 then dump all the parameters values.
27713 IF (l_debug_level > 1) THEN
27714 csi_gen_utility_pvt.put_line(
27715 p_api_version ||'-'
27716 || p_commit ||'-'
27717 || p_init_msg_list ||'-'
27718 || p_validation_level);
27719 -- Dump extended attribute rec
27720 csi_gen_utility_pvt.dump_ext_attrib_values_rec(p_ext_attrib_rec);
27721 -- Dump txn_rec
27722 csi_gen_utility_pvt.dump_txn_rec(p_txn_rec);
27723 END IF;
27724
27725
27726 -- Start API body
27727 -- Validate extended_attribute_value_id
27728 IF NOT(csi_extend_attrib_vld_pvt.Val_and_get_ext_att_id
27729 (p_ext_attrib_rec.attribute_value_id,
27730 l_ext_attrib_rec )) THEN
27731 RAISE FND_API.G_EXC_ERROR;
27732 END IF;
27733
27734
27735 l_ext_attrib_rec.attribute_value_id := p_ext_attrib_rec.attribute_value_id;
27736 l_ext_attrib_rec.attribute_id := FND_API.G_MISS_NUM;
27737 l_ext_attrib_rec.instance_id := FND_API.G_MISS_NUM;
27738 l_ext_attrib_rec.attribute_value := FND_API.G_MISS_CHAR;
27739 l_ext_attrib_rec.active_start_date := FND_API.G_MISS_DATE ;
27740 l_ext_attrib_rec.active_end_date := SYSDATE;
27741 l_ext_attrib_rec.context := FND_API.G_MISS_CHAR;
27742 l_ext_attrib_rec.attribute1 := FND_API.G_MISS_CHAR;
27743 l_ext_attrib_rec.attribute2 := FND_API.G_MISS_CHAR;
27744 l_ext_attrib_rec.attribute3 := FND_API.G_MISS_CHAR;
27745 l_ext_attrib_rec.attribute4 := FND_API.G_MISS_CHAR;
27746 l_ext_attrib_rec.attribute5 := FND_API.G_MISS_CHAR;
27747 l_ext_attrib_rec.attribute6 := FND_API.G_MISS_CHAR;
27748 l_ext_attrib_rec.attribute7 := FND_API.G_MISS_CHAR;
27749 l_ext_attrib_rec.attribute8 := FND_API.G_MISS_CHAR;
27750 l_ext_attrib_rec.attribute9 := FND_API.G_MISS_CHAR;
27751 l_ext_attrib_rec.attribute10 := FND_API.G_MISS_CHAR;
27752 l_ext_attrib_rec.attribute11 := FND_API.G_MISS_CHAR;
27753 l_ext_attrib_rec.attribute12 := FND_API.G_MISS_CHAR;
27754 l_ext_attrib_rec.attribute13 := FND_API.G_MISS_CHAR;
27755 l_ext_attrib_rec.attribute14 := FND_API.G_MISS_CHAR;
27756 l_ext_attrib_rec.attribute15 := FND_API.G_MISS_CHAR;
27757 l_ext_attrib_rec.object_version_number := p_ext_attrib_rec.object_version_number;
27758
27759
27760 g_expire_ext_att_flag := 'Y';
27761 csi_item_instance_pvt.update_extended_attrib_values
27762 (p_api_version => p_api_version
27763 ,p_commit => fnd_api.g_false
27764 ,p_init_msg_list => p_init_msg_list
27765 ,p_validation_level => p_validation_level
27766 ,p_ext_attrib_rec => l_ext_attrib_rec
27767 ,p_txn_rec => p_txn_rec
27768 ,x_return_status => x_return_status
27769 ,x_msg_count => x_msg_count
27770 ,x_msg_data => x_msg_data
27771 );
27772
27773 g_expire_ext_att_flag := 'N';
27774 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
27775 l_msg_index := 1;
27776 l_msg_count := x_msg_count;
27777 WHILE l_msg_count > 0 LOOP
27778 x_msg_data := FND_MSG_PUB.GET
27779 (l_msg_index,
27780 FND_API.G_FALSE );
27781
27782 csi_gen_utility_pvt.put_line('message data = '||x_msg_data);
27783 l_msg_index := l_msg_index + 1;
27784 l_msg_count := l_msg_count - 1;
27785 END LOOP;
27786 RAISE FND_API.G_EXC_ERROR;
27787 END IF;
27788
27789
27790
27791 -- End of API body
27792
27793 -- Standard check of p_commit.
27794 IF FND_API.To_Boolean( p_commit ) THEN
27795 COMMIT WORK;
27796 END IF;
27797
27798 -- Standard call to get message count and if count is get message info.
27799 FND_MSG_PUB.Count_And_Get
27800 (p_encoded => FND_API.G_FALSE,
27801 p_count => x_msg_count ,
27802 p_data => x_msg_data
27803 );
27804
27805
27806 EXCEPTION
27807
27808 WHEN FND_API.G_EXC_ERROR THEN
27809 ROLLBACK TO expire_extended_attrib_values;
27810 x_return_status := FND_API.G_RET_STS_ERROR ;
27811 FND_MSG_PUB.Count_And_Get
27812 ( p_encoded => FND_API.G_FALSE,
27813 p_count => x_msg_count,
27814 p_data => x_msg_data
27815 );
27816
27817 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
27818 ROLLBACK TO expire_extended_attrib_values;
27819 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
27820 FND_MSG_PUB.Count_And_Get
27821 ( p_encoded => FND_API.G_FALSE,
27822 p_count => x_msg_count,
27823 p_data => x_msg_data
27824 );
27825
27826 WHEN OTHERS THEN
27827 ROLLBACK TO expire_extended_attrib_values;
27828 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
27829
27830 IF FND_MSG_PUB.Check_Msg_Level
27831 (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
27832 THEN
27833 FND_MSG_PUB.Add_Exc_Msg
27834 (g_pkg_name,
27835 l_api_name
27836 );
27837 END IF;
27838
27839 FND_MSG_PUB.Count_And_Get
27840 ( p_encoded => FND_API.G_FALSE,
27841 p_count => x_msg_count,
27842 p_data => x_msg_data
27843 );
27844
27845 END expire_extended_attrib_values;
27846
27847
27848 /*------------------------------------------------------*/
27849 /* procedure name: copy_single_item_instance */
27850 /* description : Copies an instace from an instance */
27851 /* */
27852 /*------------------------------------------------------*/
27853
27854
27855
27856 PROCEDURE copy_single_item_instance
27857 (
27858 p_api_version IN NUMBER
27859 ,p_commit IN VARCHAR2
27860 ,p_init_msg_list IN VARCHAR2
27861 ,p_validation_level IN NUMBER
27862 ,p_source_instance_rec IN csi_datastructures_pub.instance_rec
27863 ,p_copy_ext_attribs IN VARCHAR2
27864 ,p_copy_org_assignments IN VARCHAR2
27865 ,p_copy_parties IN VARCHAR2
27866 ,p_copy_contacts IN VARCHAR2
27867 ,p_copy_accounts IN VARCHAR2
27868 ,p_copy_asset_assignments IN VARCHAR2
27869 ,p_copy_pricing_attribs IN VARCHAR2
27870 ,p_call_from_split IN VARCHAR2
27871 ,p_call_from_bom_expl IN VARCHAR2
27872 ,p_txn_rec IN OUT NOCOPY csi_datastructures_pub.transaction_rec
27873 ,x_new_instance_tbl OUT NOCOPY csi_datastructures_pub.instance_tbl
27874 ,x_return_status OUT NOCOPY VARCHAR2
27875 ,x_msg_count OUT NOCOPY NUMBER
27876 ,x_msg_data OUT NOCOPY VARCHAR2
27877 )
27878
27879 IS
27880 l_api_name CONSTANT VARCHAR2(30) := 'copy_single_item_instance';
27881 l_api_version CONSTANT NUMBER := 1.0;
27882 l_debug_level NUMBER;
27883 l_curr_instance_rec csi_datastructures_pub.instance_rec;
27884 l_new_instance_rec csi_datastructures_pub.instance_rec;
27885 l_asset_tbl csi_datastructures_pub.instance_asset_tbl;
27886 l_asset_header_tbl csi_datastructures_pub.instance_asset_header_tbl;--rk
27887 l_ext_attrib_tbl csi_datastructures_pub.extend_attrib_values_tbl;
27888 l_ext_attrib_def_tbl csi_datastructures_pub.extend_attrib_tbl;
27889 l_ext_attribs_query_rec csi_datastructures_pub.extend_attrib_query_rec;
27890 l_ou_query_rec csi_datastructures_pub.organization_unit_query_rec;
27891 l_org_unit_tbl csi_datastructures_pub.organization_units_tbl;
27892 l_org_unit_header_tbl csi_datastructures_pub.org_units_header_tbl;--rk
27893 l_pricing_attribs_query_rec csi_datastructures_pub.pricing_attribs_query_rec;
27894 l_pricing_attribs_tbl csi_datastructures_pub.pricing_attribs_tbl;
27895 l_account_header_tbl csi_datastructures_pub.party_account_header_tbl;
27896 l_instance_asset_query_rec csi_datastructures_pub.instance_asset_query_rec;
27897 l_instance_asset_rec csi_datastructures_pub.instance_asset_rec;
27898 l_party_query_rec csi_datastructures_pub.party_query_rec;
27899 l_party_tbl csi_datastructures_pub.party_tbl;
27900 l_original_party_tbl csi_datastructures_pub.party_tbl;
27901 l_party_input_tbl csi_datastructures_pub.party_tbl;
27902 l_new_party_tbl csi_datastructures_pub.party_tbl;
27903 l_contact_tbl csi_datastructures_pub.party_tbl;
27904 l_contact_input_tbl csi_datastructures_pub.party_tbl;
27905 l_contact_found_flag BOOLEAN := FALSE;
27906 l_new_contact_tbl csi_datastructures_pub.party_tbl;
27907 l_party_header_tbl csi_datastructures_pub.party_header_tbl;
27908 l_party_account_query_rec csi_datastructures_pub.party_account_query_rec;
27909 l_contact_account_query_rec csi_datastructures_pub.party_account_query_rec;
27910 l_party_account_tbl csi_datastructures_pub.party_account_tbl;
27911 l_contact_account_tbl csi_datastructures_pub.party_account_tbl;
27912 l_temp_party_account_tbl csi_datastructures_pub.party_account_tbl;
27913 l_msg_index NUMBER;
27914 l_msg_count NUMBER;
27915 l_attribute_level VARCHAR2(30);
27916 l_vld_org_id NUMBER;
27917 l_internal_party_id NUMBER;
27918 l_party_id NUMBER;
27919 l_item_attribute_tbl csi_item_instance_pvt.item_attribute_tbl;
27920 l_location_tbl csi_item_instance_pvt.location_tbl;
27921 l_generic_id_tbl csi_item_instance_pvt.generic_id_tbl;
27922 l_lookup_tbl csi_item_instance_pvt.lookup_tbl;
27923 l_ins_count_rec csi_item_instance_pvt.ins_count_rec;
27924 l_asset_lookup_tbl csi_asset_pvt.lookup_tbl;
27925 l_asset_count_rec csi_asset_pvt.asset_count_rec;
27926 l_asset_id_tbl csi_asset_pvt.asset_id_tbl;
27927 l_asset_loc_tbl csi_asset_pvt.asset_loc_tbl;
27928 l_version_label VARCHAR2(30);
27929 l_version_label_rec csi_datastructures_pub.version_label_rec;
27930 l_obj_id NUMBER;
27931 --
27932 px_oks_txn_inst_tbl oks_ibint_pub.txn_instance_tbl;
27933 l_batch_type VARCHAR2(50);
27934 l_batch_id NUMBER;
27935 --
27936 BEGIN
27937 -- Standard Start of API savepoint
27938 SAVEPOINT copy_single_item_instance;
27939 -- Standard call to check for call compatibility.
27940 IF NOT FND_API.Compatible_API_Call (l_api_version,
27941 p_api_version,
27942 l_api_name ,
27943 G_PKG_NAME)
27944 THEN
27945 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
27946 END IF;
27947 -- Initialize message list if p_init_msg_list is set to TRUE.
27948 IF FND_API.to_Boolean( p_init_msg_list ) THEN
27949 FND_MSG_PUB.initialize;
27950 END IF;
27951 -- Initialize API return status to success
27952 x_return_status := FND_API.G_RET_STS_SUCCESS;
27953 -- Check the profile option debug_level for debug message reporting
27954 l_debug_level:=fnd_profile.value('CSI_DEBUG_LEVEL');
27955 -- If debug_level = 1 then dump the procedure name
27956 IF (l_debug_level > 0) THEN
27957 csi_gen_utility_pvt.put_line('copy_single_item_instance ');
27958 END IF;
27959 -- If the debug level = 2 then dump all the parameters values.
27960 IF (l_debug_level > 1) THEN
27961 csi_gen_utility_pvt.put_line('copy_single_item_instance '||
27962 p_api_version ||'-'
27963 || p_commit ||'-'
27964 || p_init_msg_list ||'-'
27965 || p_validation_level ||'-'
27966 || p_copy_ext_attribs ||'-'
27967 || p_copy_org_assignments ||'-'
27968 || p_copy_parties ||'-'
27969 || p_copy_contacts ||'-'
27970 || p_copy_accounts ||'-'
27971 || p_copy_asset_assignments ||'-'
27972 || p_copy_pricing_attribs
27973 );
27974 -- Dump item instanc red
27975 csi_gen_utility_pvt.dump_instance_rec(p_source_instance_rec);
27976 -- Dump txn_rec
27977 csi_gen_utility_pvt.dump_txn_rec(p_txn_rec);
27978
27979 END IF;
27980 -- Start API body
27981 -- Check if an instance id is passed in p_source_instance_rec or not.
27982 -- If yes, then query the item instance from from csi_item_instances table
27983 -- into l_curr_instance_rec.
27984 /*
27985 IF ((p_source_instance_rec.VLD_ORGANIZATION_ID = FND_API.G_MISS_NUM)
27986 OR (p_source_instance_rec.VLD_ORGANIZATION_ID IS NULL)) THEN
27987 FND_MESSAGE.SET_NAME('CSI','CSI_API_VLD_ORG_ID_NULL');
27988 FND_MSG_PUB.Add;
27989 RAISE FND_API.G_EXC_ERROR;
27990 ELSE
27991 l_new_instance_rec.VLD_ORGANIZATION_ID := p_source_instance_rec.VLD_ORGANIZATION_ID;
27992 END IF;
27993 */
27994
27995 -- Added by sk for bug 2186683
27996 IF p_source_instance_rec.vld_organization_id IS NULL OR
27997 p_source_instance_rec.vld_organization_id = fnd_api.g_miss_num
27998 THEN
27999 BEGIN
28000 SELECT last_vld_organization_id
28001 INTO l_vld_org_id
28002 FROM csi_item_instances
28003 WHERE instance_id = p_source_instance_rec.instance_id;
28004 EXCEPTION
28005 WHEN OTHERS THEN
28006 NULL;
28007 END;
28008 END IF;
28009 -- End addition by sk for bug 2186683
28010
28011 IF (p_source_instance_rec.instance_id IS NULL) OR
28012 (p_source_instance_rec.instance_id = FND_API.G_MISS_NUM) THEN
28013 FND_MESSAGE.SET_NAME('CSI','CSI_API_INSTANCE_ID_NULL');
28014 FND_MSG_PUB.Add;
28015 RAISE FND_API.G_EXC_ERROR;
28016 ELSIF NOT (csi_Item_Instance_Vld_pvt.Val_and_get_inst_rec(
28017 p_source_instance_rec.instance_id ,
28018 l_curr_instance_rec )) THEN
28019 RAISE FND_API.G_EXC_ERROR;
28020 END IF;
28021
28022 -- Check if the user has not passed incorrect options for contacts
28023 IF ((p_copy_parties = fnd_api.g_false)
28024 AND (p_copy_contacts = fnd_api.g_true)) THEN
28025 FND_MESSAGE.SET_NAME('CSI','CSI_INVALID_PTY_CONTACT_OPT');
28026 FND_MSG_PUB.Add;
28027 RAISE FND_API.G_EXC_ERROR;
28028 END IF;
28029 -- If the user has passed p_copy_parties as false get only the owner, else get all the parties
28030 IF (p_copy_parties = fnd_api.g_true) THEN
28031 l_party_query_rec.instance_party_id := FND_API.G_MISS_NUM;
28032 l_party_query_rec.instance_id := l_curr_instance_rec.instance_id;
28033 l_party_query_rec.party_id := FND_API.G_MISS_NUM;
28034 l_party_query_rec.relationship_type_code := FND_API.G_MISS_CHAR;
28035 csi_party_relationships_pub.get_inst_party_relationships
28036 ( p_api_version => p_api_version
28037 ,p_commit => p_commit
28038 ,p_init_msg_list => p_init_msg_list
28039 ,p_validation_level => p_validation_level
28040 ,p_party_query_rec => l_party_query_rec
28041 ,p_resolve_id_columns => fnd_api.g_true
28042 ,p_time_stamp => NULL
28043 ,x_party_header_tbl => l_party_header_tbl
28044 ,x_return_status => x_return_status
28045 ,x_msg_count => x_msg_count
28046 ,x_msg_data => x_msg_data
28047 );
28048
28049 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
28050 l_msg_index := 1;
28051 l_msg_count := x_msg_count;
28052 WHILE l_msg_count > 0 LOOP
28053 x_msg_data := FND_MSG_PUB.GET
28054 (l_msg_index,
28055 FND_API.G_FALSE );
28056 csi_gen_utility_pvt.put_line('message data = '||x_msg_data);
28057 l_msg_index := l_msg_index + 1;
28058 l_msg_count := l_msg_count - 1;
28059 END LOOP;
28060 RAISE FND_API.G_EXC_ERROR;
28061 END IF;
28062 ELSE
28063 l_party_query_rec.instance_party_id := FND_API.G_MISS_NUM;
28064 l_party_query_rec.instance_id := l_curr_instance_rec.instance_id;
28065 l_party_query_rec.party_id := FND_API.G_MISS_NUM;
28066 l_party_query_rec.relationship_type_code := 'OWNER';
28067 csi_party_relationships_pub.get_inst_party_relationships
28068 ( p_api_version => p_api_version
28069 ,p_commit => p_commit
28070 ,p_init_msg_list => p_init_msg_list
28071 ,p_validation_level => p_validation_level
28072 ,p_party_query_rec => l_party_query_rec
28073 ,p_resolve_id_columns => fnd_api.g_true
28074 ,p_time_stamp => NULL
28075 ,x_party_header_tbl => l_party_header_tbl
28076 ,x_return_status => x_return_status
28077 ,x_msg_count => x_msg_count
28078 ,x_msg_data => x_msg_data
28079 );
28080
28081 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
28082 l_msg_index := 1;
28083 l_msg_count := x_msg_count;
28084 WHILE l_msg_count > 0 LOOP
28085 x_msg_data := FND_MSG_PUB.GET
28086 (l_msg_index,
28087 FND_API.G_FALSE );
28088
28089 csi_gen_utility_pvt.put_line('message data = '||x_msg_data);
28090 l_msg_index := l_msg_index + 1;
28091 l_msg_count := l_msg_count - 1;
28092 END LOOP;
28093 RAISE FND_API.G_EXC_ERROR;
28094 END IF;
28095
28096 END IF;
28097 -- This is mean to initialize the l_party_table in order to create an instance.
28098 IF l_party_header_tbl.COUNT > 0 THEN /*****First change here 07/27/01 - RK***/
28099 FOR tab_row_party IN l_party_header_tbl.FIRST .. l_party_header_tbl.LAST
28100 LOOP
28101 IF l_party_header_tbl.EXISTS(tab_row_party) THEN
28102 IF l_party_header_tbl(tab_row_party).contact_flag = 'Y' THEN
28103 -- build the contacts table
28104 l_contact_tbl(tab_row_party).instance_party_id := l_party_header_tbl(tab_row_party).instance_party_id;
28105 l_contact_tbl(tab_row_party).instance_id := l_party_header_tbl(tab_row_party).instance_id;
28106 l_contact_tbl(tab_row_party).party_id := l_party_header_tbl(tab_row_party).party_id;
28107 l_contact_tbl(tab_row_party).party_source_table := l_party_header_tbl(tab_row_party).party_source_table;
28108 l_contact_tbl(tab_row_party).relationship_type_code := l_party_header_tbl(tab_row_party).relationship_type_code;
28109 l_contact_tbl(tab_row_party).contact_flag := l_party_header_tbl(tab_row_party).contact_flag;
28110 l_contact_tbl(tab_row_party).contact_ip_id := l_party_header_tbl(tab_row_party).contact_ip_id;
28111 l_contact_tbl(tab_row_party).active_start_date := l_party_header_tbl(tab_row_party).active_start_date;
28112 l_contact_tbl(tab_row_party).active_end_date := l_party_header_tbl(tab_row_party).active_end_date;
28113 l_contact_tbl(tab_row_party).context := l_party_header_tbl(tab_row_party).context;
28114 l_contact_tbl(tab_row_party).attribute1 := l_party_header_tbl(tab_row_party).attribute1;
28115 l_contact_tbl(tab_row_party).attribute2 := l_party_header_tbl(tab_row_party).attribute2;
28116 l_contact_tbl(tab_row_party).attribute3 := l_party_header_tbl(tab_row_party).attribute3;
28117 l_contact_tbl(tab_row_party).attribute4 := l_party_header_tbl(tab_row_party).attribute4;
28118 l_contact_tbl(tab_row_party).attribute5 := l_party_header_tbl(tab_row_party).attribute5;
28119 l_contact_tbl(tab_row_party).attribute6 := l_party_header_tbl(tab_row_party).attribute6;
28120 l_contact_tbl(tab_row_party).attribute7 := l_party_header_tbl(tab_row_party).attribute7;
28121 l_contact_tbl(tab_row_party).attribute8 := l_party_header_tbl(tab_row_party).attribute8;
28122 l_contact_tbl(tab_row_party).attribute9 := l_party_header_tbl(tab_row_party).attribute9;
28123 l_contact_tbl(tab_row_party).attribute10 := l_party_header_tbl(tab_row_party).attribute10;
28124 l_contact_tbl(tab_row_party).attribute11 := l_party_header_tbl(tab_row_party).attribute11;
28125 l_contact_tbl(tab_row_party).attribute12 := l_party_header_tbl(tab_row_party).attribute12;
28126 l_contact_tbl(tab_row_party).attribute13 := l_party_header_tbl(tab_row_party).attribute13;
28127 l_contact_tbl(tab_row_party).attribute14 := l_party_header_tbl(tab_row_party).attribute14;
28128 l_contact_tbl(tab_row_party).attribute15 := l_party_header_tbl(tab_row_party).attribute15;
28129 l_contact_tbl(tab_row_party).object_version_number := l_party_header_tbl(tab_row_party).object_version_number;
28130 --Start fo Addition for the Bugfix 2354589.
28131 l_contact_tbl(tab_row_party).preferred_flag := l_party_header_tbl(tab_row_party).preferred_flag;
28132 l_contact_tbl(tab_row_party).primary_flag := l_party_header_tbl(tab_row_party).primary_flag;
28133 --End of Addition for the Bugfix 2354589.
28134 ELSE -- Build the parties table
28135 l_party_tbl(tab_row_party).instance_party_id := l_party_header_tbl(tab_row_party).instance_party_id;
28136 l_party_tbl(tab_row_party).instance_id := l_party_header_tbl(tab_row_party).instance_id;
28137 l_party_tbl(tab_row_party).party_id := l_party_header_tbl(tab_row_party).party_id;
28138 l_party_tbl(tab_row_party).party_source_table := l_party_header_tbl(tab_row_party).party_source_table;
28139 l_party_tbl(tab_row_party).relationship_type_code := l_party_header_tbl(tab_row_party).relationship_type_code;
28140 l_party_tbl(tab_row_party).contact_flag := l_party_header_tbl(tab_row_party).contact_flag;
28141 l_party_tbl(tab_row_party).contact_ip_id := l_party_header_tbl(tab_row_party).contact_ip_id;
28142 l_party_tbl(tab_row_party).active_start_date := l_party_header_tbl(tab_row_party).active_start_date;
28143 l_party_tbl(tab_row_party).active_end_date := l_party_header_tbl(tab_row_party).active_end_date;
28144 l_party_tbl(tab_row_party).context := l_party_header_tbl(tab_row_party).context;
28145 l_party_tbl(tab_row_party).attribute1 := l_party_header_tbl(tab_row_party).attribute1;
28146 l_party_tbl(tab_row_party).attribute2 := l_party_header_tbl(tab_row_party).attribute2;
28147 l_party_tbl(tab_row_party).attribute3 := l_party_header_tbl(tab_row_party).attribute3;
28148 l_party_tbl(tab_row_party).attribute4 := l_party_header_tbl(tab_row_party).attribute4;
28149 l_party_tbl(tab_row_party).attribute5 := l_party_header_tbl(tab_row_party).attribute5;
28150 l_party_tbl(tab_row_party).attribute6 := l_party_header_tbl(tab_row_party).attribute6;
28151 l_party_tbl(tab_row_party).attribute7 := l_party_header_tbl(tab_row_party).attribute7;
28152 l_party_tbl(tab_row_party).attribute8 := l_party_header_tbl(tab_row_party).attribute8;
28153 l_party_tbl(tab_row_party).attribute9 := l_party_header_tbl(tab_row_party).attribute9;
28154 l_party_tbl(tab_row_party).attribute10 := l_party_header_tbl(tab_row_party).attribute10;
28155 l_party_tbl(tab_row_party).attribute11 := l_party_header_tbl(tab_row_party).attribute11;
28156 l_party_tbl(tab_row_party).attribute12 := l_party_header_tbl(tab_row_party).attribute12;
28157 l_party_tbl(tab_row_party).attribute13 := l_party_header_tbl(tab_row_party).attribute13;
28158 l_party_tbl(tab_row_party).attribute14 := l_party_header_tbl(tab_row_party).attribute14;
28159 l_party_tbl(tab_row_party).attribute15 := l_party_header_tbl(tab_row_party).attribute15;
28160 l_party_tbl(tab_row_party).object_version_number := l_party_header_tbl(tab_row_party).object_version_number;
28161 --Start fo Addition for the Bugfix 2354589.
28162 l_party_tbl(tab_row_party).preferred_flag := l_party_header_tbl(tab_row_party).preferred_flag;
28163 l_party_tbl(tab_row_party).primary_flag := l_party_header_tbl(tab_row_party).primary_flag;
28164 --End of Addition for the Bugfix 2354589.
28165 END IF;
28166 END IF;
28167 END LOOP;
28168 END IF; --l_party_header_tbl.COUNT > 0
28169 l_original_party_tbl := l_party_tbl;
28170 -- Empty the party table
28171 l_party_header_tbl.DELETE;
28172 -- Create asset assignments if requested. Asset_assignment_tbl has alredy been fetched
28173 IF (p_copy_asset_assignments = fnd_api.g_true) THEN
28174 l_instance_asset_query_rec.instance_asset_id := FND_API.G_MISS_NUM;
28175 l_instance_asset_query_rec.instance_id := l_curr_instance_rec.instance_id;
28176 l_instance_asset_query_rec.fa_asset_id := FND_API.G_MISS_NUM;
28177 l_instance_asset_query_rec.fa_book_type_code := FND_API.G_MISS_CHAR;
28178 l_instance_asset_query_rec.fa_location_id := FND_API.G_MISS_NUM;
28179 l_instance_asset_query_rec.update_status := FND_API.G_MISS_CHAR;
28180 csi_asset_pvt.get_instance_assets
28181 ( p_api_version => p_api_version
28182 ,p_commit => p_commit
28183 ,p_init_msg_list => p_init_msg_list
28184 ,p_validation_level => p_validation_level
28185 ,p_instance_asset_query_rec => l_instance_asset_query_rec
28186 ,p_resolve_id_columns => fnd_api.g_true
28187 ,p_time_stamp => NULL
28188 ,x_instance_asset_tbl => l_asset_header_tbl
28189 ,x_return_status => x_return_status
28190 ,x_msg_count => x_msg_count
28191 ,x_msg_data => x_msg_data
28192 );
28193
28194 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
28195 l_msg_index := 1;
28196 l_msg_count := x_msg_count;
28197 WHILE l_msg_count > 0 LOOP
28198 x_msg_data := FND_MSG_PUB.GET
28199 (l_msg_index,
28200 FND_API.G_FALSE );
28201 csi_gen_utility_pvt.put_line('message data = '||x_msg_data);
28202 l_msg_index := l_msg_index + 1;
28203 l_msg_count := l_msg_count - 1;
28204 END LOOP;
28205 RAISE FND_API.G_EXC_ERROR;
28206 END IF;
28207
28208 END IF;
28209
28210
28211
28212 IF l_asset_header_tbl.COUNT > 0 THEN /*****First change here 08/25/01 - RK***/
28213 FOR tab_row_party IN l_asset_header_tbl.FIRST .. l_asset_header_tbl.LAST
28214 LOOP
28215 IF l_asset_header_tbl.EXISTS(tab_row_party) THEN
28216 l_asset_tbl(tab_row_party).instance_asset_id := l_asset_header_tbl(tab_row_party).instance_asset_id;
28217 l_asset_tbl(tab_row_party).instance_id := l_asset_header_tbl(tab_row_party).instance_id;
28218 l_asset_tbl(tab_row_party).fa_asset_id := l_asset_header_tbl(tab_row_party).fa_asset_id;
28219 l_asset_tbl(tab_row_party).fa_book_type_code := l_asset_header_tbl(tab_row_party).fa_book_type_code;
28220 l_asset_tbl(tab_row_party).fa_location_id := l_asset_header_tbl(tab_row_party).fa_location_id;
28221 l_asset_tbl(tab_row_party).asset_quantity := l_asset_header_tbl(tab_row_party).asset_quantity;
28222 l_asset_tbl(tab_row_party).update_status := l_asset_header_tbl(tab_row_party).update_status;
28223 l_asset_tbl(tab_row_party).active_start_date := l_asset_header_tbl(tab_row_party).active_start_date;
28224 l_asset_tbl(tab_row_party).active_end_date := l_asset_header_tbl(tab_row_party).active_end_date;
28225 l_asset_tbl(tab_row_party).object_version_number := l_asset_header_tbl(tab_row_party).object_version_number;
28226 END IF;
28227 END LOOP;
28228 END IF; --l_asset_header_tbl.COUNT > 0
28229 -- Set the non-copiable attributes as follows
28230
28231 l_new_instance_rec.CREATION_COMPLETE_FLAG := p_source_instance_rec.CREATION_COMPLETE_FLAG;
28232 l_new_instance_rec.COMPLETENESS_FLAG := p_source_instance_rec.COMPLETENESS_FLAG;
28233
28234 IF (p_source_instance_rec.EXTERNAL_REFERENCE = FND_API.G_MISS_CHAR) THEN
28235 l_new_instance_rec.EXTERNAL_REFERENCE := l_curr_instance_rec.EXTERNAL_REFERENCE;
28236 ELSE
28237 l_new_instance_rec.EXTERNAL_REFERENCE := p_source_instance_rec.EXTERNAL_REFERENCE;
28238 END IF;
28239 IF ((p_source_instance_rec.INVENTORY_ITEM_ID = FND_API.G_MISS_NUM)
28240 OR (p_source_instance_rec.INVENTORY_ITEM_ID IS NULL)) THEN
28241 l_new_instance_rec.INVENTORY_ITEM_ID := l_curr_instance_rec.INVENTORY_ITEM_ID;
28242 ELSE
28243 l_new_instance_rec.INVENTORY_ITEM_ID := p_source_instance_rec.INVENTORY_ITEM_ID;
28244 END IF;
28245
28246 -- srramakr commented for bug # 2558156
28247 -- Uncommented for bug 2985165
28248 IF p_call_from_split=fnd_api.g_true
28249 THEN
28250 IF (p_source_instance_rec.INVENTORY_REVISION = FND_API.G_MISS_CHAR) THEN
28251 l_new_instance_rec.INVENTORY_REVISION := l_curr_instance_rec.INVENTORY_REVISION;
28252 ELSE
28253 l_new_instance_rec.INVENTORY_REVISION := p_source_instance_rec.INVENTORY_REVISION;
28254 END IF;
28255 ELSE
28256 -- Uncommented for bug 2985165
28257 -- srramakr Bug # 2558156 Revision should not be copied
28258 IF p_source_instance_rec.INVENTORY_REVISION <> FND_API.G_MISS_CHAR THEN
28259 l_new_instance_rec.INVENTORY_REVISION := p_source_instance_rec.INVENTORY_REVISION;
28260 END IF;
28261 END IF;
28262
28263 IF ((p_source_instance_rec.INV_MASTER_ORGANIZATION_ID = FND_API.G_MISS_NUM)
28264 OR (p_source_instance_rec.INV_MASTER_ORGANIZATION_ID IS NULL)) THEN
28265 l_new_instance_rec.INV_MASTER_ORGANIZATION_ID := l_curr_instance_rec.INV_MASTER_ORGANIZATION_ID;
28266 ELSE
28267 l_new_instance_rec.INV_MASTER_ORGANIZATION_ID := p_source_instance_rec.INV_MASTER_ORGANIZATION_ID ;
28268 END IF;
28269
28270 IF (p_source_instance_rec.SERIAL_NUMBER <> FND_API.G_MISS_CHAR) THEN
28271 l_new_instance_rec.SERIAL_NUMBER := p_source_instance_rec.SERIAL_NUMBER;
28272 END IF;
28273
28274 IF ((p_source_instance_rec.MFG_SERIAL_NUMBER_FLAG = FND_API.G_MISS_CHAR)
28275 OR (p_source_instance_rec.MFG_SERIAL_NUMBER_FLAG IS NULL)) THEN
28276 l_new_instance_rec.MFG_SERIAL_NUMBER_FLAG := l_curr_instance_rec.MFG_SERIAL_NUMBER_FLAG;
28277 ELSE
28278 l_new_instance_rec.MFG_SERIAL_NUMBER_FLAG := p_source_instance_rec.MFG_SERIAL_NUMBER_FLAG ;
28279 END IF;
28280
28281 IF (p_source_instance_rec.LOT_NUMBER = FND_API.G_MISS_CHAR) THEN
28282 l_new_instance_rec.LOT_NUMBER := l_curr_instance_rec.LOT_NUMBER;
28283 ELSE
28284 l_new_instance_rec.LOT_NUMBER := p_source_instance_rec.LOT_NUMBER;
28285 END IF;
28286
28287 IF ((p_source_instance_rec.QUANTITY = FND_API.G_MISS_NUM)
28288 OR (p_source_instance_rec.QUANTITY IS NULL)) THEN
28289 l_new_instance_rec.QUANTITY := l_curr_instance_rec.QUANTITY;
28290 ELSE
28291 l_new_instance_rec.QUANTITY := p_source_instance_rec.QUANTITY ;
28292 END IF;
28293
28294 IF ((p_source_instance_rec.UNIT_OF_MEASURE = FND_API.G_MISS_CHAR)
28295 OR (p_source_instance_rec.UNIT_OF_MEASURE IS NULL)) THEN
28296 l_new_instance_rec.UNIT_OF_MEASURE := l_curr_instance_rec.UNIT_OF_MEASURE;
28297 ELSE
28298 l_new_instance_rec.UNIT_OF_MEASURE := p_source_instance_rec.UNIT_OF_MEASURE ;
28299 END IF;
28300
28301 IF (p_source_instance_rec.ACCOUNTING_CLASS_CODE = FND_API.G_MISS_CHAR) THEN
28302 l_new_instance_rec.ACCOUNTING_CLASS_CODE := l_curr_instance_rec.ACCOUNTING_CLASS_CODE;
28303 ELSE
28304 l_new_instance_rec.ACCOUNTING_CLASS_CODE := l_curr_instance_rec.ACCOUNTING_CLASS_CODE;
28305 END IF;
28306
28307 IF (p_source_instance_rec.INSTANCE_CONDITION_ID = FND_API.G_MISS_NUM) THEN
28308 l_new_instance_rec.INSTANCE_CONDITION_ID := l_curr_instance_rec.INSTANCE_CONDITION_ID;
28309 ELSE
28310 l_new_instance_rec.INSTANCE_CONDITION_ID := p_source_instance_rec.INSTANCE_CONDITION_ID;
28311 END IF;
28312
28313 IF ((p_source_instance_rec.INSTANCE_STATUS_ID = FND_API.G_MISS_NUM)
28314 OR (p_source_instance_rec.INSTANCE_STATUS_ID IS NULL)) THEN
28315 l_new_instance_rec.INSTANCE_STATUS_ID := l_curr_instance_rec.INSTANCE_STATUS_ID;
28316 ELSE
28317 l_new_instance_rec.INSTANCE_STATUS_ID := p_source_instance_rec.INSTANCE_STATUS_ID ;
28318 END IF;
28319
28320 IF ((p_source_instance_rec.CUSTOMER_VIEW_FLAG = FND_API.G_MISS_CHAR)
28321 OR (p_source_instance_rec.CUSTOMER_VIEW_FLAG IS NULL )) THEN
28322 l_new_instance_rec.CUSTOMER_VIEW_FLAG := l_curr_instance_rec.CUSTOMER_VIEW_FLAG;
28323 ELSE
28324 l_new_instance_rec.CUSTOMER_VIEW_FLAG := p_source_instance_rec.CUSTOMER_VIEW_FLAG ;
28325 END IF;
28326
28327 IF ((p_source_instance_rec.MERCHANT_VIEW_FLAG = FND_API.G_MISS_CHAR)
28328 OR (p_source_instance_rec.MERCHANT_VIEW_FLAG IS NULL)) THEN
28329 l_new_instance_rec.MERCHANT_VIEW_FLAG := l_curr_instance_rec.MERCHANT_VIEW_FLAG;
28330 ELSE
28331 l_new_instance_rec.MERCHANT_VIEW_FLAG := p_source_instance_rec.MERCHANT_VIEW_FLAG ;
28332 END IF;
28333
28334 IF (p_source_instance_rec.SELLABLE_FLAG = FND_API.G_MISS_CHAR) THEN
28335 l_new_instance_rec.SELLABLE_FLAG := l_curr_instance_rec.SELLABLE_FLAG;
28336 ELSE
28337 l_new_instance_rec.SELLABLE_FLAG := p_source_instance_rec.SELLABLE_FLAG;
28338 END IF;
28339
28340 IF (p_source_instance_rec.SYSTEM_ID = FND_API.G_MISS_NUM) THEN
28341 l_new_instance_rec.SYSTEM_ID := l_curr_instance_rec.SYSTEM_ID;
28342 ELSE
28343 l_new_instance_rec.SYSTEM_ID := p_source_instance_rec.SYSTEM_ID;
28344 END IF;
28345
28346 IF (p_source_instance_rec.INSTANCE_TYPE_CODE = FND_API.G_MISS_CHAR) THEN
28347 l_new_instance_rec.INSTANCE_TYPE_CODE := l_curr_instance_rec.INSTANCE_TYPE_CODE;
28348 ELSE
28349 l_new_instance_rec.INSTANCE_TYPE_CODE := p_source_instance_rec.INSTANCE_TYPE_CODE;
28350 END IF;
28351
28352 IF (p_source_instance_rec.ACTIVE_START_DATE = FND_API.G_MISS_DATE) THEN
28353 l_new_instance_rec.ACTIVE_START_DATE := l_curr_instance_rec.ACTIVE_START_DATE;
28354 ELSE
28355 l_new_instance_rec.ACTIVE_START_DATE := p_source_instance_rec.ACTIVE_START_DATE;
28356 END IF;
28357
28358 IF (p_source_instance_rec.ACTIVE_END_DATE = FND_API.G_MISS_DATE) THEN
28359 l_new_instance_rec.ACTIVE_END_DATE := l_curr_instance_rec.ACTIVE_END_DATE;
28360 ELSE
28361 l_new_instance_rec.ACTIVE_END_DATE := p_source_instance_rec.ACTIVE_END_DATE;
28362 END IF;
28363
28364 IF (p_source_instance_rec.LOCATION_TYPE_CODE = FND_API.G_MISS_CHAR) THEN
28365 l_new_instance_rec.LOCATION_TYPE_CODE := l_curr_instance_rec.LOCATION_TYPE_CODE;
28366 ELSE
28367 l_new_instance_rec.LOCATION_TYPE_CODE := p_source_instance_rec.LOCATION_TYPE_CODE;
28368 END IF;
28369
28370 IF (p_source_instance_rec.LOCATION_ID = FND_API.G_MISS_NUM) THEN
28371 l_new_instance_rec.LOCATION_ID := l_curr_instance_rec.LOCATION_ID;
28372 ELSE
28373 l_new_instance_rec.LOCATION_ID := p_source_instance_rec.LOCATION_ID;
28374 END IF;
28375
28376 IF (p_source_instance_rec.INV_ORGANIZATION_ID = FND_API.G_MISS_NUM) THEN
28377 l_new_instance_rec.INV_ORGANIZATION_ID := l_curr_instance_rec.INV_ORGANIZATION_ID;
28378 ELSE
28379 l_new_instance_rec.INV_ORGANIZATION_ID := p_source_instance_rec.INV_ORGANIZATION_ID;
28380 END IF;
28381
28382 IF (p_source_instance_rec.INV_SUBINVENTORY_NAME = FND_API.G_MISS_CHAR) THEN
28383 l_new_instance_rec.INV_SUBINVENTORY_NAME := l_curr_instance_rec.INV_SUBINVENTORY_NAME;
28384 ELSE
28385 l_new_instance_rec.INV_SUBINVENTORY_NAME := p_source_instance_rec.INV_SUBINVENTORY_NAME;
28386 END IF;
28387
28388 IF (p_source_instance_rec.INV_LOCATOR_ID = FND_API.G_MISS_NUM) THEN
28389 l_new_instance_rec.INV_LOCATOR_ID := l_curr_instance_rec.INV_LOCATOR_ID;
28390 ELSE
28391 l_new_instance_rec.INV_LOCATOR_ID := p_source_instance_rec.INV_LOCATOR_ID;
28392 END IF;
28393
28394 IF (p_source_instance_rec.PA_PROJECT_ID = FND_API.G_MISS_NUM) THEN
28395 l_new_instance_rec.PA_PROJECT_ID := l_curr_instance_rec.PA_PROJECT_ID;
28396 ELSE
28397 l_new_instance_rec.PA_PROJECT_ID := p_source_instance_rec.PA_PROJECT_ID;
28398 END IF;
28399
28400 IF (p_source_instance_rec.PA_PROJECT_TASK_ID = FND_API.G_MISS_NUM) THEN
28401 l_new_instance_rec.PA_PROJECT_TASK_ID := l_curr_instance_rec.PA_PROJECT_TASK_ID;
28402 ELSE
28403 l_new_instance_rec.PA_PROJECT_TASK_ID := p_source_instance_rec.PA_PROJECT_TASK_ID;
28404 END IF;
28405
28406 IF (p_source_instance_rec.IN_TRANSIT_ORDER_LINE_ID = FND_API.G_MISS_NUM) THEN
28407 l_new_instance_rec.IN_TRANSIT_ORDER_LINE_ID := l_curr_instance_rec.IN_TRANSIT_ORDER_LINE_ID;
28408 ELSE
28409 l_new_instance_rec.IN_TRANSIT_ORDER_LINE_ID := p_source_instance_rec.IN_TRANSIT_ORDER_LINE_ID;
28410 END IF;
28411
28412 IF (p_source_instance_rec.WIP_JOB_ID = FND_API.G_MISS_NUM) THEN
28413 l_new_instance_rec.WIP_JOB_ID := l_curr_instance_rec.WIP_JOB_ID;
28414 ELSE
28415 l_new_instance_rec.WIP_JOB_ID := p_source_instance_rec.WIP_JOB_ID;
28416 END IF;
28417
28418 IF (p_source_instance_rec.PO_ORDER_LINE_ID = FND_API.G_MISS_NUM) THEN
28419 l_new_instance_rec.PO_ORDER_LINE_ID := l_curr_instance_rec.PO_ORDER_LINE_ID;
28420 ELSE
28421 l_new_instance_rec.PO_ORDER_LINE_ID := p_source_instance_rec.PO_ORDER_LINE_ID;
28422 END IF;
28423
28424 IF (p_source_instance_rec.LAST_TXN_LINE_DETAIL_ID = FND_API.G_MISS_NUM) THEN
28425 l_new_instance_rec.LAST_TXN_LINE_DETAIL_ID := l_curr_instance_rec.LAST_TXN_LINE_DETAIL_ID;
28426 ELSE
28427 l_new_instance_rec.LAST_TXN_LINE_DETAIL_ID := p_source_instance_rec.LAST_TXN_LINE_DETAIL_ID;
28428 END IF;
28429
28430 IF (p_source_instance_rec.LAST_OE_RMA_LINE_ID = FND_API.G_MISS_NUM) THEN
28431 l_new_instance_rec.LAST_OE_RMA_LINE_ID := l_curr_instance_rec.LAST_OE_RMA_LINE_ID;
28432 ELSE
28433 l_new_instance_rec.LAST_OE_RMA_LINE_ID := p_source_instance_rec.LAST_OE_RMA_LINE_ID;
28434 END IF;
28435
28436 IF (p_source_instance_rec.LAST_PO_PO_LINE_ID = FND_API.G_MISS_NUM) THEN
28437 l_new_instance_rec.LAST_PO_PO_LINE_ID := l_curr_instance_rec.LAST_PO_PO_LINE_ID ;
28438 ELSE
28439 l_new_instance_rec.LAST_PO_PO_LINE_ID := p_source_instance_rec.LAST_PO_PO_LINE_ID ;
28440 END IF;
28441
28442 IF (p_source_instance_rec.LAST_OE_PO_NUMBER = FND_API.G_MISS_CHAR) THEN
28443 l_new_instance_rec.LAST_OE_PO_NUMBER := l_curr_instance_rec.LAST_OE_PO_NUMBER;
28444 ELSE
28445 l_new_instance_rec.LAST_OE_PO_NUMBER := p_source_instance_rec.LAST_OE_PO_NUMBER;
28446 END IF;
28447
28448 IF (p_source_instance_rec.LAST_WIP_JOB_ID = FND_API.G_MISS_NUM) THEN
28449 l_new_instance_rec.LAST_WIP_JOB_ID := l_curr_instance_rec.LAST_WIP_JOB_ID;
28450 ELSE
28451 l_new_instance_rec.LAST_WIP_JOB_ID := p_source_instance_rec.LAST_WIP_JOB_ID;
28452 END IF;
28453
28454 IF (p_source_instance_rec.LAST_PA_PROJECT_ID = FND_API.G_MISS_NUM) THEN
28455 l_new_instance_rec.LAST_PA_PROJECT_ID := l_curr_instance_rec.LAST_PA_PROJECT_ID;
28456 ELSE
28457 l_new_instance_rec.LAST_PA_PROJECT_ID := p_source_instance_rec.LAST_PA_PROJECT_ID;
28458 END IF;
28459
28460 IF (p_source_instance_rec.LAST_PA_TASK_ID = FND_API.G_MISS_NUM) THEN
28461 l_new_instance_rec.LAST_PA_TASK_ID := l_curr_instance_rec.LAST_PA_TASK_ID;
28462 ELSE
28463 l_new_instance_rec.LAST_PA_TASK_ID := p_source_instance_rec.LAST_PA_TASK_ID;
28464 END IF;
28465
28466 IF (p_source_instance_rec.LAST_OE_AGREEMENT_ID = FND_API.G_MISS_NUM) THEN
28467 l_new_instance_rec.LAST_OE_AGREEMENT_ID := l_curr_instance_rec.LAST_OE_AGREEMENT_ID;
28468 ELSE
28469 l_new_instance_rec.LAST_OE_AGREEMENT_ID := p_source_instance_rec.LAST_OE_AGREEMENT_ID;
28470 END IF;
28471
28472 IF (p_source_instance_rec.INSTALL_DATE = FND_API.G_MISS_DATE) THEN
28473 l_new_instance_rec.INSTALL_DATE := l_curr_instance_rec.INSTALL_DATE;
28474 ELSE
28475 l_new_instance_rec.INSTALL_DATE := p_source_instance_rec.INSTALL_DATE;
28476 END IF;
28477
28478 IF (p_source_instance_rec.MANUALLY_CREATED_FLAG = FND_API.G_MISS_CHAR) THEN
28479 l_new_instance_rec.MANUALLY_CREATED_FLAG := l_curr_instance_rec.MANUALLY_CREATED_FLAG;
28480 ELSE
28481 l_new_instance_rec.MANUALLY_CREATED_FLAG := p_source_instance_rec.MANUALLY_CREATED_FLAG;
28482 END IF;
28483
28484 IF (p_source_instance_rec.RETURN_BY_DATE = FND_API.G_MISS_DATE) THEN
28485 l_new_instance_rec.RETURN_BY_DATE := l_curr_instance_rec.RETURN_BY_DATE ;
28486 ELSE
28487 l_new_instance_rec.RETURN_BY_DATE := p_source_instance_rec.RETURN_BY_DATE ;
28488 END IF;
28489
28490 IF (p_source_instance_rec.ACTUAL_RETURN_DATE = FND_API.G_MISS_DATE) THEN
28491 l_new_instance_rec.ACTUAL_RETURN_DATE := l_curr_instance_rec.ACTUAL_RETURN_DATE;
28492 ELSE
28493 l_new_instance_rec.ACTUAL_RETURN_DATE := p_source_instance_rec.ACTUAL_RETURN_DATE;
28494 END IF;
28495
28496 IF (p_source_instance_rec.VERSION_LABEL = FND_API.G_MISS_CHAR) THEN
28497 l_new_instance_rec.VERSION_LABEL := l_curr_instance_rec.VERSION_LABEL;
28498 ELSE
28499 l_new_instance_rec.VERSION_LABEL := p_source_instance_rec.VERSION_LABEL;
28500 END IF;
28501
28502 IF (p_source_instance_rec.VERSION_LABEL_DESCRIPTION = FND_API.G_MISS_CHAR) THEN
28503 l_new_instance_rec.VERSION_LABEL_DESCRIPTION := l_curr_instance_rec.VERSION_LABEL_DESCRIPTION;
28504 ELSE
28505 l_new_instance_rec.VERSION_LABEL_DESCRIPTION := p_source_instance_rec.VERSION_LABEL_DESCRIPTION;
28506 END IF;
28507
28508 IF (p_source_instance_rec.CONTEXT = FND_API.G_MISS_CHAR) THEN
28509 l_new_instance_rec.CONTEXT := l_curr_instance_rec.CONTEXT;
28510 ELSE
28511 l_new_instance_rec.CONTEXT := p_source_instance_rec.CONTEXT;
28512 END IF;
28513
28514 IF (p_source_instance_rec.ATTRIBUTE1 = FND_API.G_MISS_CHAR) THEN
28515 l_new_instance_rec.ATTRIBUTE1 := l_curr_instance_rec.ATTRIBUTE1;
28516 ELSE
28517 l_new_instance_rec.ATTRIBUTE1 := p_source_instance_rec.ATTRIBUTE1;
28518 END IF;
28519
28520 IF (p_source_instance_rec.ATTRIBUTE2 = FND_API.G_MISS_CHAR) THEN
28521 l_new_instance_rec.ATTRIBUTE2 := l_curr_instance_rec.ATTRIBUTE2;
28522 ELSE
28523 l_new_instance_rec.ATTRIBUTE2 := p_source_instance_rec.ATTRIBUTE2;
28524 END IF;
28525
28526 IF (p_source_instance_rec.ATTRIBUTE3 = FND_API.G_MISS_CHAR) THEN
28527 l_new_instance_rec.ATTRIBUTE3 := l_curr_instance_rec.ATTRIBUTE3;
28528 ELSE
28529 l_new_instance_rec.ATTRIBUTE3 := p_source_instance_rec.ATTRIBUTE3;
28530 END IF;
28531
28532 IF (p_source_instance_rec.ATTRIBUTE4 = FND_API.G_MISS_CHAR) THEN
28533 l_new_instance_rec.ATTRIBUTE4 := l_curr_instance_rec.ATTRIBUTE4;
28534 ELSE
28535 l_new_instance_rec.ATTRIBUTE4 := p_source_instance_rec.ATTRIBUTE4;
28536 END IF;
28537
28538 IF (p_source_instance_rec.ATTRIBUTE5 = FND_API.G_MISS_CHAR) THEN
28539 l_new_instance_rec.ATTRIBUTE5 := l_curr_instance_rec.ATTRIBUTE5;
28540 ELSE
28541 l_new_instance_rec.ATTRIBUTE5 := p_source_instance_rec.ATTRIBUTE5;
28542 END IF;
28543
28544 IF (p_source_instance_rec.ATTRIBUTE6 = FND_API.G_MISS_CHAR) THEN
28545 l_new_instance_rec.ATTRIBUTE6 := l_curr_instance_rec.ATTRIBUTE6;
28546 ELSE
28547 l_new_instance_rec.ATTRIBUTE6 := p_source_instance_rec.ATTRIBUTE6;
28548 END IF;
28549
28550 IF (p_source_instance_rec.ATTRIBUTE7 = FND_API.G_MISS_CHAR) THEN
28551 l_new_instance_rec.ATTRIBUTE7 := l_curr_instance_rec.ATTRIBUTE7;
28552 ELSE
28553 l_new_instance_rec.ATTRIBUTE7 := p_source_instance_rec.ATTRIBUTE7;
28554 END IF;
28555
28556 IF (p_source_instance_rec.ATTRIBUTE8 = FND_API.G_MISS_CHAR) THEN
28557 l_new_instance_rec.ATTRIBUTE9 := l_curr_instance_rec.ATTRIBUTE9;
28558 ELSE
28559 l_new_instance_rec.ATTRIBUTE9 := p_source_instance_rec.ATTRIBUTE9;
28560 END IF;
28561
28562 IF (p_source_instance_rec.ATTRIBUTE10 = FND_API.G_MISS_CHAR) THEN
28563 l_new_instance_rec.ATTRIBUTE10 := l_curr_instance_rec.ATTRIBUTE10;
28564 ELSE
28565 l_new_instance_rec.ATTRIBUTE10 := p_source_instance_rec.ATTRIBUTE10;
28566 END IF;
28567
28568 IF (p_source_instance_rec.ATTRIBUTE11 = FND_API.G_MISS_CHAR) THEN
28569 l_new_instance_rec.ATTRIBUTE11 := l_curr_instance_rec.ATTRIBUTE11;
28570 ELSE
28571 l_new_instance_rec.ATTRIBUTE11 := p_source_instance_rec.ATTRIBUTE11;
28572 END IF;
28573
28574 IF (p_source_instance_rec.ATTRIBUTE12 = FND_API.G_MISS_CHAR) THEN
28575 l_new_instance_rec.ATTRIBUTE12 := l_curr_instance_rec.ATTRIBUTE12;
28576 ELSE
28577 l_new_instance_rec.ATTRIBUTE12 := p_source_instance_rec.ATTRIBUTE12;
28578 END IF;
28579
28580 IF (p_source_instance_rec.ATTRIBUTE13 = FND_API.G_MISS_CHAR) THEN
28581 l_new_instance_rec.ATTRIBUTE13 := l_curr_instance_rec.ATTRIBUTE13;
28582 ELSE
28583 l_new_instance_rec.ATTRIBUTE13 := p_source_instance_rec.ATTRIBUTE13;
28584 END IF;
28585
28586 IF (p_source_instance_rec.ATTRIBUTE14 = FND_API.G_MISS_CHAR) THEN
28587 l_new_instance_rec.ATTRIBUTE14 := l_curr_instance_rec.ATTRIBUTE14;
28588 ELSE
28589 l_new_instance_rec.ATTRIBUTE14 := p_source_instance_rec.ATTRIBUTE14;
28590 END IF;
28591
28592 IF (p_source_instance_rec.ATTRIBUTE15 = FND_API.G_MISS_CHAR) THEN
28593 l_new_instance_rec.ATTRIBUTE15 := l_curr_instance_rec.ATTRIBUTE15;
28594 ELSE
28595 l_new_instance_rec.ATTRIBUTE15 := p_source_instance_rec.ATTRIBUTE15;
28596 END IF;
28597
28598 IF (p_source_instance_rec.LAST_OE_ORDER_LINE_ID = FND_API.G_MISS_NUM) THEN
28599 l_new_instance_rec.LAST_OE_ORDER_LINE_ID := l_curr_instance_rec.LAST_OE_ORDER_LINE_ID;
28600 ELSE
28601 l_new_instance_rec.LAST_OE_ORDER_LINE_ID := p_source_instance_rec.LAST_OE_ORDER_LINE_ID;
28602 END IF;
28603
28604 IF (p_source_instance_rec.LAST_OE_RMA_LINE_ID = FND_API.G_MISS_NUM) THEN
28605 l_new_instance_rec.LAST_OE_RMA_LINE_ID := l_curr_instance_rec.LAST_OE_RMA_LINE_ID;
28606 ELSE
28607 l_new_instance_rec.LAST_OE_RMA_LINE_ID := p_source_instance_rec.LAST_OE_RMA_LINE_ID;
28608 END IF;
28609
28610 IF (p_source_instance_rec.LAST_PO_PO_LINE_ID = FND_API.G_MISS_NUM) THEN
28611 l_new_instance_rec.LAST_PO_PO_LINE_ID := l_curr_instance_rec.LAST_PO_PO_LINE_ID;
28612 ELSE
28613 l_new_instance_rec.LAST_PO_PO_LINE_ID := p_source_instance_rec.LAST_PO_PO_LINE_ID;
28614 END IF;
28615
28616 IF (p_source_instance_rec.LAST_OE_PO_NUMBER = FND_API.G_MISS_CHAR) THEN
28617 l_new_instance_rec.LAST_OE_PO_NUMBER := l_curr_instance_rec.LAST_OE_PO_NUMBER;
28618 ELSE
28619 l_new_instance_rec.LAST_OE_PO_NUMBER := p_source_instance_rec.LAST_OE_PO_NUMBER;
28620 END IF;
28621
28622 IF (p_source_instance_rec.LAST_WIP_JOB_ID = FND_API.G_MISS_NUM) THEN
28623 l_new_instance_rec.LAST_WIP_JOB_ID := l_curr_instance_rec.LAST_WIP_JOB_ID;
28624 ELSE
28625 l_new_instance_rec.LAST_WIP_JOB_ID := p_source_instance_rec.LAST_WIP_JOB_ID;
28626 END IF;
28627
28628 IF (p_source_instance_rec.LAST_PA_PROJECT_ID = FND_API.G_MISS_NUM) THEN
28629 l_new_instance_rec.LAST_PA_PROJECT_ID := l_curr_instance_rec.LAST_PA_PROJECT_ID;
28630 ELSE
28631 l_new_instance_rec.LAST_PA_PROJECT_ID := p_source_instance_rec.LAST_PA_PROJECT_ID;
28632 END IF;
28633
28634 IF (p_source_instance_rec.LAST_PA_TASK_ID = FND_API.G_MISS_NUM) THEN
28635 l_new_instance_rec.LAST_PA_TASK_ID := l_curr_instance_rec.LAST_PA_TASK_ID ;
28636 ELSE
28637 l_new_instance_rec.LAST_PA_TASK_ID := p_source_instance_rec.LAST_PA_TASK_ID ;
28638 END IF;
28639
28640 IF (p_source_instance_rec.LAST_OE_AGREEMENT_ID = FND_API.G_MISS_NUM) THEN
28641 l_new_instance_rec.LAST_OE_AGREEMENT_ID := l_curr_instance_rec.LAST_OE_AGREEMENT_ID ;
28642 ELSE
28643 l_new_instance_rec.LAST_OE_AGREEMENT_ID := p_source_instance_rec.LAST_OE_AGREEMENT_ID ;
28644 END IF;
28645
28646 IF (p_source_instance_rec.INSTALL_DATE = FND_API.G_MISS_DATE) THEN
28647 l_new_instance_rec.INSTALL_DATE := l_curr_instance_rec.INSTALL_DATE;
28648 ELSE
28649 l_new_instance_rec.INSTALL_DATE := p_source_instance_rec.INSTALL_DATE;
28650 END IF;
28651
28652 IF (p_source_instance_rec.RETURN_BY_DATE = FND_API.G_MISS_DATE) THEN
28653 l_new_instance_rec.RETURN_BY_DATE := l_curr_instance_rec.RETURN_BY_DATE;
28654 ELSE
28655 l_new_instance_rec.RETURN_BY_DATE := p_source_instance_rec.RETURN_BY_DATE;
28656 END IF;
28657
28658 IF (p_source_instance_rec.ACTUAL_RETURN_DATE = FND_API.G_MISS_DATE) THEN
28659 l_new_instance_rec.ACTUAL_RETURN_DATE := l_curr_instance_rec.ACTUAL_RETURN_DATE;
28660 ELSE
28661 l_new_instance_rec.ACTUAL_RETURN_DATE := p_source_instance_rec.ACTUAL_RETURN_DATE;
28662 END IF;
28663
28664 IF (p_source_instance_rec.instance_number = fnd_api.g_miss_char)
28665 THEN
28666 NULL;
28667 ELSE
28668 l_new_instance_rec.instance_number := p_source_instance_rec.instance_number;
28669 END IF;
28670
28671 IF (p_source_instance_rec.instance_description = fnd_api.g_miss_char)
28672 THEN
28673 NULL;
28674 ELSE
28675 l_new_instance_rec.instance_description := p_source_instance_rec.instance_description;
28676 END IF;
28677
28678 -- Set the non-copiable attributes as follows
28679 l_new_instance_rec.instance_id := FND_API.G_MISS_NUM;
28680
28681 -- uncommented for Bug 5348851
28682 l_new_instance_rec.instance_number := FND_API.G_MISS_CHAR;
28683
28684 --IF condition added for bug5248037--
28685 If p_txn_rec.transaction_type_id <> 1 Then
28686 l_new_instance_rec.active_start_date := nvl(p_source_instance_rec.active_start_date,sysdate);
28687 Else
28688 l_new_instance_rec.active_start_date := SYSDATE;
28689 End If;
28690
28691 l_new_instance_rec.MANUALLY_CREATED_FLAG := 'N';
28692 l_new_instance_rec.COMPLETENESS_FLAG := NULL;
28693 l_new_instance_rec.OBJECT_VERSION_NUMBER := 1;
28694
28695
28696 -- The following is added for bug 2944298.
28697 -- Value of instance_usage_code should be copied from the source instance
28698 -- only if it is called from split.
28699 IF p_call_from_split=fnd_api.g_true
28700 THEN
28701 -- Added by sguthiva for bug 2163942
28702 IF (p_source_instance_rec.instance_usage_code = FND_API.G_MISS_CHAR) THEN
28703 l_new_instance_rec.instance_usage_code := l_curr_instance_rec.instance_usage_code;
28704 ELSE
28705 l_new_instance_rec.instance_usage_code := p_source_instance_rec.instance_usage_code;
28706 END IF;
28707 ELSE
28708 l_obj_id:=NULL;
28709 csi_ii_relationships_pvt.Get_Top_Most_Parent
28710 ( p_subject_id => p_source_instance_rec.instance_id,
28711 p_rel_type_code => 'COMPONENT-OF',
28712 p_object_id => l_obj_id
28713 );
28714 --
28715 IF l_obj_id <> p_source_instance_rec.instance_id THEN
28716 BEGIN
28717 SELECT instance_usage_code
28718 INTO l_new_instance_rec.instance_usage_code
28719 FROM csi_item_instances
28720 WHERE instance_id=l_obj_id;
28721 EXCEPTION
28722 WHEN NO_DATA_FOUND THEN
28723 NULL;
28724 END;
28725 ELSE
28726 l_new_instance_rec.instance_usage_code := l_curr_instance_rec.instance_usage_code;
28727 END IF;
28728 END IF;
28729 -- End addition by sguthiva for bug 2163942
28730 -- Added by sguthiva for bug 2230264
28731
28732 -- Added by sk for bug 2230264
28733 IF (p_source_instance_rec.vld_organization_id = FND_API.G_MISS_NUM) THEN
28734 l_new_instance_rec.vld_organization_id := l_vld_org_id;
28735 ELSE
28736 l_new_instance_rec.vld_organization_id := p_source_instance_rec.vld_organization_id;
28737 END IF;
28738
28739 IF (p_source_instance_rec.install_location_type_code = FND_API.G_MISS_CHAR) THEN
28740 l_new_instance_rec.install_location_type_code := l_curr_instance_rec.install_location_type_code;
28741 ELSE
28742 l_new_instance_rec.install_location_type_code := p_source_instance_rec.install_location_type_code;
28743 END IF;
28744
28745 IF (p_source_instance_rec.install_location_id = FND_API.G_MISS_NUM) THEN
28746 l_new_instance_rec.install_location_id := l_curr_instance_rec.install_location_id;
28747 ELSE
28748 l_new_instance_rec.install_location_id := p_source_instance_rec.install_location_id;
28749 END IF;
28750 -- End addition by sk for bug 2230264
28751
28752 --start of code for eam integration--
28753 IF (p_source_instance_rec.NETWORK_ASSET_FLAG = FND_API.G_MISS_CHAR) THEN
28754 l_new_instance_rec.NETWORK_ASSET_FLAG := l_curr_instance_rec.NETWORK_ASSET_FLAG;
28755 ELSE
28756 l_new_instance_rec.NETWORK_ASSET_FLAG := p_source_instance_rec.NETWORK_ASSET_FLAG;
28757 END IF;
28758
28759 IF (p_source_instance_rec.MAINTAINABLE_FLAG = FND_API.G_MISS_CHAR) THEN
28760 l_new_instance_rec.MAINTAINABLE_FLAG := l_curr_instance_rec.MAINTAINABLE_FLAG;
28761 ELSE
28762 l_new_instance_rec.MAINTAINABLE_FLAG := p_source_instance_rec.MAINTAINABLE_FLAG;
28763 END IF;
28764
28765 IF (p_source_instance_rec.PN_LOCATION_ID = FND_API.G_MISS_NUM) THEN
28766 l_new_instance_rec.PN_LOCATION_ID := l_curr_instance_rec.PN_LOCATION_ID;
28767 ELSE
28768 l_new_instance_rec.PN_LOCATION_ID := p_source_instance_rec.PN_LOCATION_ID;
28769 END IF;
28770
28771 IF (p_source_instance_rec.ASSET_CRITICALITY_CODE = FND_API.G_MISS_CHAR) THEN
28772 l_new_instance_rec.ASSET_CRITICALITY_CODE := l_curr_instance_rec.ASSET_CRITICALITY_CODE;
28773 ELSE
28774 l_new_instance_rec.ASSET_CRITICALITY_CODE := p_source_instance_rec.ASSET_CRITICALITY_CODE;
28775 END IF;
28776
28777 IF (p_source_instance_rec.CATEGORY_ID = FND_API.G_MISS_NUM) THEN
28778 l_new_instance_rec.CATEGORY_ID := l_curr_instance_rec.CATEGORY_ID;
28779 ELSE
28780 l_new_instance_rec.CATEGORY_ID := p_source_instance_rec.CATEGORY_ID;
28781 END IF;
28782
28783 IF (p_source_instance_rec.EQUIPMENT_GEN_OBJECT_ID = FND_API.G_MISS_NUM) THEN
28784 l_new_instance_rec.EQUIPMENT_GEN_OBJECT_ID := l_curr_instance_rec.EQUIPMENT_GEN_OBJECT_ID;
28785 ELSE
28786 l_new_instance_rec.EQUIPMENT_GEN_OBJECT_ID := p_source_instance_rec.EQUIPMENT_GEN_OBJECT_ID;
28787 END IF;
28788
28789 IF (p_source_instance_rec.INSTANTIATION_FLAG = FND_API.G_MISS_CHAR) THEN
28790 l_new_instance_rec.INSTANTIATION_FLAG := l_curr_instance_rec.INSTANTIATION_FLAG;
28791 ELSE
28792 l_new_instance_rec.INSTANTIATION_FLAG := p_source_instance_rec.INSTANTIATION_FLAG;
28793 END IF;
28794
28795 IF (p_source_instance_rec.LINEAR_LOCATION_ID = FND_API.G_MISS_NUM) THEN
28796 l_new_instance_rec.LINEAR_LOCATION_ID := l_curr_instance_rec.LINEAR_LOCATION_ID ;
28797 ELSE
28798 l_new_instance_rec.LINEAR_LOCATION_ID := p_source_instance_rec.LINEAR_LOCATION_ID ;
28799 END IF;
28800
28801 IF (p_source_instance_rec.OPERATIONAL_LOG_FLAG = FND_API.G_MISS_CHAR) THEN
28802 l_new_instance_rec.OPERATIONAL_LOG_FLAG := l_curr_instance_rec.OPERATIONAL_LOG_FLAG;
28803 ELSE
28804 l_new_instance_rec.OPERATIONAL_LOG_FLAG := p_source_instance_rec.OPERATIONAL_LOG_FLAG;
28805 END IF;
28806
28807 IF (p_source_instance_rec.CHECKIN_STATUS = FND_API.G_MISS_NUM) THEN
28808 l_new_instance_rec.CHECKIN_STATUS := l_curr_instance_rec.CHECKIN_STATUS;
28809 ELSE
28810 l_new_instance_rec.CHECKIN_STATUS := p_source_instance_rec.CHECKIN_STATUS;
28811 END IF;
28812
28813 IF (p_source_instance_rec.SUPPLIER_WARRANTY_EXP_DATE = FND_API.G_MISS_DATE) THEN
28814 l_new_instance_rec.SUPPLIER_WARRANTY_EXP_DATE := l_curr_instance_rec.SUPPLIER_WARRANTY_EXP_DATE;
28815 ELSE
28816 l_new_instance_rec.SUPPLIER_WARRANTY_EXP_DATE := p_source_instance_rec.SUPPLIER_WARRANTY_EXP_DATE;
28817 END IF;
28818
28819 IF (p_source_instance_rec.ATTRIBUTE16 = FND_API.G_MISS_CHAR) THEN
28820 l_new_instance_rec.ATTRIBUTE16 := l_curr_instance_rec.ATTRIBUTE16;
28821 ELSE
28822 l_new_instance_rec.ATTRIBUTE16 := p_source_instance_rec.ATTRIBUTE16;
28823 END IF;
28824
28825 IF (p_source_instance_rec.ATTRIBUTE17 = FND_API.G_MISS_CHAR) THEN
28826 l_new_instance_rec.ATTRIBUTE17 := l_curr_instance_rec.ATTRIBUTE17;
28827 ELSE
28828 l_new_instance_rec.ATTRIBUTE17 := p_source_instance_rec.ATTRIBUTE17;
28829 END IF;
28830
28831 IF (p_source_instance_rec.ATTRIBUTE18 = FND_API.G_MISS_CHAR) THEN
28832 l_new_instance_rec.ATTRIBUTE18 := l_curr_instance_rec.ATTRIBUTE18;
28833 ELSE
28834 l_new_instance_rec.ATTRIBUTE18 := p_source_instance_rec.ATTRIBUTE18;
28835 END IF;
28836
28837 IF (p_source_instance_rec.ATTRIBUTE19 = FND_API.G_MISS_CHAR) THEN
28838 l_new_instance_rec.ATTRIBUTE19 := l_curr_instance_rec.ATTRIBUTE19;
28839 ELSE
28840 l_new_instance_rec.ATTRIBUTE19 := p_source_instance_rec.ATTRIBUTE19;
28841 END IF;
28842
28843 IF (p_source_instance_rec.ATTRIBUTE20 = FND_API.G_MISS_CHAR) THEN
28844 l_new_instance_rec.ATTRIBUTE20 := l_curr_instance_rec.ATTRIBUTE20;
28845 ELSE
28846 l_new_instance_rec.ATTRIBUTE20 := p_source_instance_rec.ATTRIBUTE20;
28847 END IF;
28848
28849 IF (p_source_instance_rec.ATTRIBUTE21 = FND_API.G_MISS_CHAR) THEN
28850 l_new_instance_rec.ATTRIBUTE21 := l_curr_instance_rec.ATTRIBUTE21;
28851 ELSE
28852 l_new_instance_rec.ATTRIBUTE21 := p_source_instance_rec.ATTRIBUTE21;
28853 END IF;
28854
28855 IF (p_source_instance_rec.ATTRIBUTE22 = FND_API.G_MISS_CHAR) THEN
28856 l_new_instance_rec.ATTRIBUTE22 := l_curr_instance_rec.ATTRIBUTE22;
28857 ELSE
28858 l_new_instance_rec.ATTRIBUTE22 := p_source_instance_rec.ATTRIBUTE22;
28859 END IF;
28860
28861 IF (p_source_instance_rec.ATTRIBUTE23 = FND_API.G_MISS_CHAR) THEN
28862 l_new_instance_rec.ATTRIBUTE23 := l_curr_instance_rec.ATTRIBUTE23;
28863 ELSE
28864 l_new_instance_rec.ATTRIBUTE23 := p_source_instance_rec.ATTRIBUTE23;
28865 END IF;
28866
28867 IF (p_source_instance_rec.ATTRIBUTE24 = FND_API.G_MISS_CHAR) THEN
28868 l_new_instance_rec.ATTRIBUTE24 := l_curr_instance_rec.ATTRIBUTE24;
28869 ELSE
28870 l_new_instance_rec.ATTRIBUTE24 := p_source_instance_rec.ATTRIBUTE24;
28871 END IF;
28872
28873 IF (p_source_instance_rec.ATTRIBUTE25 = FND_API.G_MISS_CHAR) THEN
28874 l_new_instance_rec.ATTRIBUTE25 := l_curr_instance_rec.ATTRIBUTE25;
28875 ELSE
28876 l_new_instance_rec.ATTRIBUTE25 := p_source_instance_rec.ATTRIBUTE25;
28877 END IF;
28878
28879 IF (p_source_instance_rec.ATTRIBUTE26 = FND_API.G_MISS_CHAR) THEN
28880 l_new_instance_rec.ATTRIBUTE26 := l_curr_instance_rec.ATTRIBUTE26;
28881 ELSE
28882 l_new_instance_rec.ATTRIBUTE26 := p_source_instance_rec.ATTRIBUTE26;
28883 END IF;
28884
28885 IF (p_source_instance_rec.ATTRIBUTE27 = FND_API.G_MISS_CHAR) THEN
28886 l_new_instance_rec.ATTRIBUTE27 := l_curr_instance_rec.ATTRIBUTE27;
28887 ELSE
28888 l_new_instance_rec.ATTRIBUTE27 := p_source_instance_rec.ATTRIBUTE27;
28889 END IF;
28890
28891 IF (p_source_instance_rec.ATTRIBUTE28 = FND_API.G_MISS_CHAR) THEN
28892 l_new_instance_rec.ATTRIBUTE28 := l_curr_instance_rec.ATTRIBUTE28;
28893 ELSE
28894 l_new_instance_rec.ATTRIBUTE28 := p_source_instance_rec.ATTRIBUTE28;
28895 END IF;
28896
28897 IF (p_source_instance_rec.ATTRIBUTE29 = FND_API.G_MISS_CHAR) THEN
28898 l_new_instance_rec.ATTRIBUTE29 := l_curr_instance_rec.ATTRIBUTE29;
28899 ELSE
28900 l_new_instance_rec.ATTRIBUTE29 := p_source_instance_rec.ATTRIBUTE29;
28901 END IF;
28902
28903 IF (p_source_instance_rec.ATTRIBUTE30 = FND_API.G_MISS_CHAR) THEN
28904 l_new_instance_rec.ATTRIBUTE30 := l_curr_instance_rec.ATTRIBUTE30;
28905 ELSE
28906 l_new_instance_rec.ATTRIBUTE30 := p_source_instance_rec.ATTRIBUTE30;
28907 END IF;
28908
28909 --end of code for eam integration--
28910
28911 -- Addition of columns for FA Integration
28912 IF (p_source_instance_rec.PAYABLES_UNIT_PRICE = FND_API.G_MISS_NUM) THEN
28913 l_new_instance_rec.PAYABLES_UNIT_PRICE := l_curr_instance_rec.PAYABLES_UNIT_PRICE;
28914 ELSE
28915 l_new_instance_rec.PAYABLES_UNIT_PRICE := p_source_instance_rec.PAYABLES_UNIT_PRICE;
28916 END IF;
28917
28918 IF (p_source_instance_rec.PAYABLES_CURRENCY_CODE = FND_API.G_MISS_CHAR) THEN
28919 l_new_instance_rec.PAYABLES_CURRENCY_CODE := l_curr_instance_rec.PAYABLES_CURRENCY_CODE;
28920 ELSE
28921 l_new_instance_rec.PAYABLES_CURRENCY_CODE := p_source_instance_rec.PAYABLES_CURRENCY_CODE;
28922 END IF;
28923
28924 IF (p_source_instance_rec.PURCHASE_UNIT_PRICE = FND_API.G_MISS_NUM) THEN
28925 l_new_instance_rec.PURCHASE_UNIT_PRICE := l_curr_instance_rec.PURCHASE_UNIT_PRICE;
28926 ELSE
28927 l_new_instance_rec.PURCHASE_UNIT_PRICE := p_source_instance_rec.PURCHASE_UNIT_PRICE;
28928 END IF;
28929
28930 IF (p_source_instance_rec.PURCHASE_CURRENCY_CODE = FND_API.G_MISS_CHAR) THEN
28931 l_new_instance_rec.PURCHASE_CURRENCY_CODE := l_curr_instance_rec.PURCHASE_CURRENCY_CODE;
28932 ELSE
28933 l_new_instance_rec.PURCHASE_CURRENCY_CODE := p_source_instance_rec.PURCHASE_CURRENCY_CODE;
28934 END IF;
28935
28936 IF (p_source_instance_rec.SALES_UNIT_PRICE = FND_API.G_MISS_NUM) THEN
28937 l_new_instance_rec.SALES_UNIT_PRICE := l_curr_instance_rec.SALES_UNIT_PRICE;
28938 ELSE
28939 l_new_instance_rec.SALES_UNIT_PRICE := p_source_instance_rec.SALES_UNIT_PRICE;
28940 END IF;
28941
28942 IF (p_source_instance_rec.SALES_CURRENCY_CODE = FND_API.G_MISS_CHAR) THEN
28943 l_new_instance_rec.SALES_CURRENCY_CODE := l_curr_instance_rec.SALES_CURRENCY_CODE;
28944 ELSE
28945 l_new_instance_rec.SALES_CURRENCY_CODE := p_source_instance_rec.SALES_CURRENCY_CODE;
28946 END IF;
28947
28948 IF (p_source_instance_rec.OPERATIONAL_STATUS_CODE = FND_API.G_MISS_CHAR) THEN
28949 l_new_instance_rec.OPERATIONAL_STATUS_CODE := l_curr_instance_rec.OPERATIONAL_STATUS_CODE;
28950 ELSE
28951 l_new_instance_rec.OPERATIONAL_STATUS_CODE := p_source_instance_rec.OPERATIONAL_STATUS_CODE;
28952 END IF;
28953 -- End addition of columns for FA Integration
28954 -- Call Create_item_instance to create the new instance in csi_item_instances table.
28955
28956 CSI_ITEM_INSTANCE_PVT.create_item_instance
28957 ( p_api_version => p_api_version
28958 ,p_commit => p_commit
28959 ,p_init_msg_list => p_init_msg_list
28960 ,p_validation_level => p_validation_level
28961 ,p_instance_rec => l_new_instance_rec
28962 ,p_txn_rec => p_txn_rec
28963 ,p_party_tbl => l_party_tbl
28964 ,p_asset_tbl => l_asset_tbl
28965 ,x_return_status => x_return_status
28966 ,x_msg_count => x_msg_count
28967 ,x_msg_data => x_msg_data
28968 ,p_item_attribute_tbl => l_item_attribute_tbl
28969 ,p_location_tbl => l_location_tbl
28970 ,p_generic_id_tbl => l_generic_id_tbl
28971 ,p_lookup_tbl => l_lookup_tbl
28972 ,p_ins_count_rec => l_ins_count_rec
28973 );
28974
28975 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
28976 l_msg_index := 1;
28977 l_msg_count := x_msg_count;
28978 WHILE l_msg_count > 0 LOOP
28979 x_msg_data := FND_MSG_PUB.GET
28980 (l_msg_index,
28981 FND_API.G_FALSE );
28982
28983 csi_gen_utility_pvt.put_line('message data = '||x_msg_data);
28984 l_msg_index := l_msg_index + 1;
28985 l_msg_count := l_msg_count - 1;
28986 END LOOP;
28987 RAISE FND_API.G_EXC_ERROR;
28988 ELSE
28989 x_new_instance_tbl(1) := l_new_instance_rec;
28990 END IF;
28991
28992
28993 -- Create a party or parties for the new instances
28994
28995 IF l_party_tbl.COUNT > 0 THEN
28996 FOR tab_row_party IN l_party_tbl.FIRST .. l_party_tbl.LAST
28997 LOOP
28998 IF l_party_tbl.EXISTS(tab_row_party) THEN
28999 -- Build account query rec
29000 l_party_account_query_rec.instance_party_id := l_party_tbl(tab_row_party).instance_party_id ;
29001 l_party_account_query_rec.ip_account_id := FND_API.G_MISS_NUM;
29002 l_party_account_query_rec.party_account_id := FND_API.G_MISS_NUM;
29003 l_party_account_query_rec.relationship_type_code := FND_API.G_MISS_CHAR;
29004
29005 -- Get party accounts
29006
29007 csi_party_relationships_pub.get_inst_party_accounts
29008 ( p_api_version => p_api_version
29009 ,p_commit => p_commit
29010 ,p_init_msg_list => p_init_msg_list
29011 ,p_validation_level => p_validation_level
29012 ,p_account_query_rec => l_party_account_query_rec
29013 ,p_resolve_id_columns => fnd_api.g_true
29014 ,p_time_stamp => NULL
29015 ,x_account_header_tbl => l_account_header_tbl
29016 ,x_return_status => x_return_status
29017 ,x_msg_count => x_msg_count
29018 ,x_msg_data => x_msg_data);
29019
29020 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
29021 l_msg_index := 1;
29022 l_msg_count := x_msg_count;
29023 WHILE l_msg_count > 0 LOOP
29024 x_msg_data := FND_MSG_PUB.GET
29025 (l_msg_index,
29026 FND_API.G_FALSE );
29027 csi_gen_utility_pvt.put_line('message data = '||x_msg_data);
29028 l_msg_index := l_msg_index + 1;
29029 l_msg_count := l_msg_count - 1;
29030 END LOOP;
29031 RAISE FND_API.G_EXC_ERROR;
29032 END IF;
29033
29034
29035 IF l_account_header_tbl.COUNT > 0 THEN /***********Second Change 07/27/01 - RK**********/
29036 FOR tab_row_party IN l_account_header_tbl.FIRST .. l_account_header_tbl.LAST
29037 LOOP
29038 IF l_account_header_tbl.EXISTS(tab_row_party) THEN
29039 -- Donot copy accounts if user says so
29040 IF (p_copy_accounts <> fnd_api.g_true) THEN
29041 IF (l_account_header_tbl(tab_row_party).RELATIONSHIP_TYPE_CODE = 'OWNER') THEN
29042 l_party_account_tbl(tab_row_party).ip_account_id := l_account_header_tbl(tab_row_party).ip_account_id;
29043 l_party_account_tbl(tab_row_party).instance_party_id := l_account_header_tbl(tab_row_party).instance_party_id;
29044 l_party_account_tbl(tab_row_party).party_account_id := l_account_header_tbl(tab_row_party).party_account_id;
29045 l_party_account_tbl(tab_row_party).relationship_type_code := l_account_header_tbl(tab_row_party).relationship_type_code;
29046 l_party_account_tbl(tab_row_party).bill_to_address := l_account_header_tbl(tab_row_party).bill_to_address;
29047 l_party_account_tbl(tab_row_party).ship_to_address := l_account_header_tbl(tab_row_party).ship_to_address;
29048 l_party_account_tbl(tab_row_party).active_start_date := l_account_header_tbl(tab_row_party).active_start_date;
29049 l_party_account_tbl(tab_row_party).active_end_date := l_account_header_tbl(tab_row_party).active_end_date;
29050 l_party_account_tbl(tab_row_party).context := l_account_header_tbl(tab_row_party).context;
29051 l_party_account_tbl(tab_row_party).attribute1 := l_account_header_tbl(tab_row_party).attribute1;
29052 l_party_account_tbl(tab_row_party).attribute2 := l_account_header_tbl(tab_row_party).attribute2;
29053 l_party_account_tbl(tab_row_party).attribute3 := l_account_header_tbl(tab_row_party).attribute3;
29054 l_party_account_tbl(tab_row_party).attribute4 := l_account_header_tbl(tab_row_party).attribute4;
29055 l_party_account_tbl(tab_row_party).attribute5 := l_account_header_tbl(tab_row_party).attribute5;
29056 l_party_account_tbl(tab_row_party).attribute6 := l_account_header_tbl(tab_row_party).attribute6;
29057 l_party_account_tbl(tab_row_party).attribute7 := l_account_header_tbl(tab_row_party).attribute7;
29058 l_party_account_tbl(tab_row_party).attribute8 := l_account_header_tbl(tab_row_party).attribute8;
29059 l_party_account_tbl(tab_row_party).attribute9 := l_account_header_tbl(tab_row_party).attribute9;
29060 l_party_account_tbl(tab_row_party).attribute10 := l_account_header_tbl(tab_row_party).attribute10;
29061 l_party_account_tbl(tab_row_party).attribute11 := l_account_header_tbl(tab_row_party).attribute11;
29062 l_party_account_tbl(tab_row_party).attribute12 := l_account_header_tbl(tab_row_party).attribute12;
29063 l_party_account_tbl(tab_row_party).attribute13 := l_account_header_tbl(tab_row_party).attribute13;
29064 l_party_account_tbl(tab_row_party).attribute14 := l_account_header_tbl(tab_row_party).attribute14;
29065 l_party_account_tbl(tab_row_party).attribute15 := l_account_header_tbl(tab_row_party).attribute15;
29066 l_party_account_tbl(tab_row_party).object_version_number := l_account_header_tbl(tab_row_party).object_version_number;
29067
29068 END IF;
29069 ELSE
29070 l_party_account_tbl(tab_row_party).ip_account_id := l_account_header_tbl(tab_row_party).ip_account_id;
29071 l_party_account_tbl(tab_row_party).instance_party_id := l_account_header_tbl(tab_row_party).instance_party_id;
29072 l_party_account_tbl(tab_row_party).party_account_id := l_account_header_tbl(tab_row_party).party_account_id;
29073 l_party_account_tbl(tab_row_party).relationship_type_code := l_account_header_tbl(tab_row_party).relationship_type_code;
29074 l_party_account_tbl(tab_row_party).bill_to_address := l_account_header_tbl(tab_row_party).bill_to_address;
29075 l_party_account_tbl(tab_row_party).ship_to_address := l_account_header_tbl(tab_row_party).ship_to_address;
29076 l_party_account_tbl(tab_row_party).active_start_date := l_account_header_tbl(tab_row_party).active_start_date;
29077 l_party_account_tbl(tab_row_party).active_end_date := l_account_header_tbl(tab_row_party).active_end_date;
29078 l_party_account_tbl(tab_row_party).context := l_account_header_tbl(tab_row_party).context;
29079 l_party_account_tbl(tab_row_party).attribute1 := l_account_header_tbl(tab_row_party).attribute1;
29080 l_party_account_tbl(tab_row_party).attribute2 := l_account_header_tbl(tab_row_party).attribute2;
29081 l_party_account_tbl(tab_row_party).attribute3 := l_account_header_tbl(tab_row_party).attribute3;
29082 l_party_account_tbl(tab_row_party).attribute4 := l_account_header_tbl(tab_row_party).attribute4;
29083 l_party_account_tbl(tab_row_party).attribute5 := l_account_header_tbl(tab_row_party).attribute5;
29084 l_party_account_tbl(tab_row_party).attribute6 := l_account_header_tbl(tab_row_party).attribute6;
29085 l_party_account_tbl(tab_row_party).attribute7 := l_account_header_tbl(tab_row_party).attribute7;
29086 l_party_account_tbl(tab_row_party).attribute8 := l_account_header_tbl(tab_row_party).attribute8;
29087 l_party_account_tbl(tab_row_party).attribute9 := l_account_header_tbl(tab_row_party).attribute9;
29088 l_party_account_tbl(tab_row_party).attribute10 := l_account_header_tbl(tab_row_party).attribute10;
29089 l_party_account_tbl(tab_row_party).attribute11 := l_account_header_tbl(tab_row_party).attribute11;
29090 l_party_account_tbl(tab_row_party).attribute12 := l_account_header_tbl(tab_row_party).attribute12;
29091 l_party_account_tbl(tab_row_party).attribute13 := l_account_header_tbl(tab_row_party).attribute13;
29092 l_party_account_tbl(tab_row_party).attribute14 := l_account_header_tbl(tab_row_party).attribute14;
29093 l_party_account_tbl(tab_row_party).attribute15 := l_account_header_tbl(tab_row_party).attribute15;
29094 l_party_account_tbl(tab_row_party).object_version_number := l_account_header_tbl(tab_row_party).object_version_number;
29095
29096 END IF;
29097 END IF;
29098 END LOOP;
29099 END IF; --l_account_header_tbl.COUNT > 0
29100
29101 -- Empty the account_header table
29102 l_account_header_tbl.DELETE;
29103 -- Build the party table
29104 l_party_tbl(tab_row_party).instance_party_id := FND_API.G_MISS_NUM;
29105 l_party_tbl(tab_row_party).INSTANCE_ID := l_new_instance_rec.instance_id;
29106 l_party_tbl(tab_row_party).ACTIVE_START_DATE := FND_API.G_MISS_DATE;
29107 l_party_tbl(tab_row_party).ACTIVE_END_DATE := FND_API.G_MISS_DATE;
29108 -- Build the temporary party table with only one record
29109 -- for and grab all its accounts
29110 l_party_input_tbl(1) := l_party_tbl(tab_row_party);
29111
29112
29113 -- Build its corresponding accounts
29114
29115 IF l_party_account_tbl.COUNT > 0 THEN
29116 FOR tab_row_acct IN l_party_account_tbl.FIRST .. l_party_account_tbl.LAST
29117 LOOP
29118 -- l_party_account_tbl(tab_row_acct).parent_tbl_index := tab_row_party;
29119 l_party_account_tbl(tab_row_acct).parent_tbl_index := 1;
29120 l_party_account_tbl(tab_row_acct).ip_account_id := FND_API.G_MISS_NUM;
29121 l_party_account_tbl(tab_row_acct).instance_party_id := l_party_input_tbl(l_party_account_tbl(tab_row_acct).parent_tbl_index).instance_party_id;
29122 l_party_account_tbl(tab_row_acct).ACTIVE_START_DATE := FND_API.G_MISS_DATE;
29123 l_party_account_tbl(tab_row_acct).ACTIVE_END_DATE := FND_API.G_MISS_DATE;
29124 l_party_account_tbl(tab_row_acct).call_contracts := FND_API.G_FALSE; -- Added for 2907563
29125 END LOOP;
29126 END IF;
29127 -- Create instance party relationship and its accounts
29128
29129 csi_party_relationships_pub.create_inst_party_relationship
29130 ( p_api_version => p_api_version
29131 ,p_commit => p_commit
29132 ,p_init_msg_list => p_init_msg_list
29133 ,p_validation_level => p_validation_level
29134 ,p_party_tbl => l_party_input_tbl
29135 ,p_party_account_tbl => l_party_account_tbl
29136 ,p_txn_rec => p_txn_rec
29137 ,p_oks_txn_inst_tbl => px_oks_txn_inst_tbl
29138 ,x_return_status => x_return_status
29139 ,x_msg_count => x_msg_count
29140 ,x_msg_data => x_msg_data
29141 );
29142
29143 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
29144 l_msg_index := 1;
29145 l_msg_count := x_msg_count;
29146 WHILE l_msg_count > 0 LOOP
29147 x_msg_data := FND_MSG_PUB.GET
29148 (l_msg_index,
29149 FND_API.G_FALSE );
29150
29151 csi_gen_utility_pvt.put_line('message data = '||x_msg_data);
29152 l_msg_index := l_msg_index + 1;
29153 l_msg_count := l_msg_count - 1;
29154 END LOOP;
29155 RAISE FND_API.G_EXC_ERROR;
29156 END IF;
29157 -- Grab the new parties created in a new table
29158 l_new_party_tbl(tab_row_party) := l_party_input_tbl(1);
29159 -- Empty the party table
29160 l_party_input_tbl.DELETE;
29161 -- Empty the account table
29162 l_party_account_tbl.DELETE;
29163
29164 END IF;
29165 END LOOP;
29166 END IF;
29167 -- ASH
29168
29169 -- Create a contact or contacts for the new instances
29170 IF (p_copy_contacts = fnd_api.g_true) THEN
29171 IF l_contact_tbl.COUNT > 0 THEN
29172 FOR tab_row_contact IN l_contact_tbl.FIRST .. l_contact_tbl.LAST
29173 LOOP
29174 IF l_contact_tbl.EXISTS(tab_row_contact) THEN
29175
29176 -- Find the contact_ip_id which was just created
29177 -- for this contact
29178 IF (l_original_party_tbl.COUNT > 0) THEN
29179 FOR tab_row_party IN l_original_party_tbl.FIRST .. l_original_party_tbl.LAST
29180 LOOP
29181 IF l_original_party_tbl.EXISTS(tab_row_party) THEN
29182 IF (l_original_party_tbl(tab_row_party).instance_party_id
29183 = l_contact_tbl(tab_row_contact).contact_ip_id )
29184 THEN
29185 l_contact_tbl(tab_row_contact).contact_ip_id :=
29186 l_new_party_tbl(tab_row_party).instance_party_id;
29187 l_contact_found_flag := TRUE;
29188 END IF;
29189 END IF;
29190 END LOOP;
29191 END IF;
29192 -- Check if the contact_ip_id exists
29193 IF ((l_contact_tbl(tab_row_contact).contact_ip_id IS NULL) OR
29194 (l_contact_tbl(tab_row_contact).contact_ip_id
29195 = FND_API.G_MISS_NUM)
29196 OR NOT(l_contact_found_flag) ) THEN
29197 FND_MESSAGE.SET_NAME('CSI','CSI_API_CONTACT_IP_ID_NULL');
29198 FND_MESSAGE.SET_TOKEN('INSTANCE_PARTY_ID',
29199 l_contact_tbl(tab_row_contact).instance_party_id);
29200 FND_MSG_PUB.Add;
29201 RAISE FND_API.G_EXC_ERROR;
29202 END IF;
29203
29204 -- Build other fiels of the contact table
29205 l_contact_tbl(tab_row_contact).instance_party_id := FND_API.G_MISS_NUM;
29206 l_contact_tbl(tab_row_contact).contact_flag := 'Y';
29207 l_contact_tbl(tab_row_contact).INSTANCE_ID := l_new_instance_rec.instance_id;
29208 l_contact_tbl(tab_row_contact).ACTIVE_START_DATE := FND_API.G_MISS_DATE;
29209 l_contact_tbl(tab_row_contact).ACTIVE_END_DATE := FND_API.G_MISS_DATE;
29210 -- Build the temporary party table with only one record
29211 -- for and grab all its accounts
29212 l_contact_input_tbl(1) := l_contact_tbl(tab_row_contact);
29213
29214 -- Create instance party relationship and its accounts
29215 csi_party_relationships_pub.create_inst_party_relationship
29216 ( p_api_version => p_api_version
29217 ,p_commit => p_commit
29218 ,p_init_msg_list => p_init_msg_list
29219 ,p_validation_level => p_validation_level
29220 ,p_party_tbl => l_contact_input_tbl
29221 ,p_party_account_tbl => l_contact_account_tbl
29222 ,p_txn_rec => p_txn_rec
29223 ,p_oks_txn_inst_tbl => px_oks_txn_inst_tbl
29224 ,x_return_status => x_return_status
29225 ,x_msg_count => x_msg_count
29226 ,x_msg_data => x_msg_data
29227 );
29228 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
29229 l_msg_index := 1;
29230 l_msg_count := x_msg_count;
29231 WHILE l_msg_count > 0 LOOP
29232 x_msg_data := FND_MSG_PUB.GET
29233 (l_msg_index,
29234 FND_API.G_FALSE );
29235 csi_gen_utility_pvt.put_line('message data = '||x_msg_data);
29236 l_msg_index := l_msg_index + 1;
29237 l_msg_count := l_msg_count - 1;
29238 END LOOP;
29239 RAISE FND_API.G_EXC_ERROR;
29240 END IF;
29241 -- Grab the new parties created in a new table
29242 l_new_contact_tbl(tab_row_contact) := l_contact_input_tbl(1);
29243 -- Empty the party table
29244 l_contact_input_tbl.DELETE;
29245 -- Empty the account table
29246 l_contact_account_tbl.DELETE;
29247 l_contact_found_flag := FALSE;
29248 END IF;
29249 END LOOP;
29250 END IF;
29251 END IF;
29252 -- Empty the party and contact tables
29253 l_new_contact_tbl.DELETE;
29254 l_new_party_tbl.DELETE;
29255 -- ASH
29256 -- Create asset assignments if requested. Asset assignments have already been fetched before
29257 IF (p_copy_asset_assignments = fnd_api.g_true) THEN
29258 IF l_asset_tbl.COUNT > 0 THEN
29259 FOR tab_row IN l_asset_tbl.FIRST .. l_asset_tbl.LAST
29260 LOOP
29261 IF l_asset_tbl.EXISTS(tab_row) THEN
29262 l_asset_tbl(tab_row).INSTANCE_ID := l_new_instance_rec.instance_id;
29263 l_asset_tbl(tab_row).INSTANCE_ASSET_ID := FND_API.G_MISS_NUM;
29264 l_asset_tbl(tab_row).ACTIVE_START_DATE := FND_API.G_MISS_DATE;
29265 l_asset_tbl(tab_row).ACTIVE_END_DATE := FND_API.G_MISS_DATE;
29266 -- Trap the row in a record and create assets row by row
29267 l_instance_asset_rec := l_asset_tbl(tab_row);
29268 csi_asset_pvt.create_instance_asset
29269 ( p_api_version => p_api_version
29270 ,p_commit => p_commit
29271 ,p_init_msg_list => p_init_msg_list
29272 ,p_validation_level => p_validation_level
29273 ,p_instance_asset_rec => l_instance_asset_rec
29274 ,p_txn_rec => p_txn_rec
29275 ,x_return_status => x_return_status
29276 ,x_msg_count => x_msg_count
29277 ,x_msg_data => x_msg_data
29278 ,p_lookup_tbl => l_asset_lookup_tbl
29279 ,p_asset_count_rec => l_asset_count_rec
29280 ,p_asset_id_tbl => l_asset_id_tbl
29281 ,p_asset_loc_tbl => l_asset_loc_tbl
29282 );
29283 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
29284 l_msg_index := 1;
29285 l_msg_count := x_msg_count;
29286 WHILE l_msg_count > 0 LOOP
29287 x_msg_data := FND_MSG_PUB.GET
29288 (l_msg_index,
29289 FND_API.G_FALSE );
29290 csi_gen_utility_pvt.put_line('message data = '||x_msg_data);
29291 l_msg_index := l_msg_index + 1;
29292 l_msg_count := l_msg_count - 1;
29293 END LOOP;
29294 RAISE FND_API.G_EXC_ERROR;
29295 END IF;
29296 END IF;
29297 END LOOP;
29298 END IF;
29299 END IF;
29300 -- Created extended attributes if requested
29301 IF (p_copy_ext_attribs = fnd_api.g_true) THEN
29302 l_ext_attribs_query_rec.attribute_value_id := FND_API.G_MISS_NUM;
29303 l_ext_attribs_query_rec.instance_id := l_curr_instance_rec.instance_id;
29304 l_ext_attribs_query_rec.attribute_id := FND_API.G_MISS_NUM;
29305 csi_item_instance_pub.get_extended_attrib_values
29306 (p_api_version => p_api_version
29307 ,p_commit => p_commit
29308 ,p_init_msg_list => p_init_msg_list
29309 ,p_validation_level => p_validation_level
29310 ,p_ext_attribs_query_rec => l_ext_attribs_query_rec
29311 ,p_time_stamp => NULL
29312 ,x_ext_attrib_tbl => l_ext_attrib_tbl
29313 ,x_ext_attrib_def_tbl => l_ext_attrib_def_tbl
29314 ,x_return_status => x_return_status
29315 ,x_msg_count => x_msg_count
29316 ,x_msg_data => x_msg_data
29317 );
29318 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
29319 l_msg_index := 1;
29320 l_msg_count := x_msg_count;
29321 WHILE l_msg_count > 0 LOOP
29322 x_msg_data := FND_MSG_PUB.GET
29323 (l_msg_index,
29324 FND_API.G_FALSE );
29325 csi_gen_utility_pvt.put_line('message data = '||x_msg_data);
29326 l_msg_index := l_msg_index + 1;
29327 l_msg_count := l_msg_count - 1;
29328 END LOOP;
29329 RAISE FND_API.G_EXC_ERROR;
29330 END IF;
29331 IF l_ext_attrib_tbl.COUNT > 0 THEN
29332 FOR tab_row IN l_ext_attrib_tbl.FIRST .. l_ext_attrib_tbl.LAST
29333 LOOP
29334 IF l_ext_attrib_tbl.EXISTS(tab_row) THEN
29335 IF NOT(csi_Item_Instance_Vld_pvt.get_ext_attrib_level(l_ext_attrib_tbl(tab_row).attribute_id,
29336 l_attribute_level ))THEN
29337 RAISE FND_API.G_EXC_ERROR;
29338 END IF;
29339
29340 IF (l_attribute_level = 'INSTANCE') THEN
29341 l_ext_attrib_tbl.DELETE (tab_row);
29342 ELSE
29343 l_ext_attrib_tbl(tab_row).INSTANCE_ID := l_new_instance_rec.instance_id;
29344 l_ext_attrib_tbl(tab_row).ATTRIBUTE_VALUE_ID := FND_API.G_MISS_NUM;
29345 l_ext_attrib_tbl(tab_row).ACTIVE_START_DATE := FND_API.G_MISS_DATE;
29346 l_ext_attrib_tbl(tab_row).ACTIVE_END_DATE := FND_API.G_MISS_DATE;
29347 END IF;
29348 END IF;
29349 END LOOP;
29350
29351 -- It is possible that all the extended attributes were set at instance level and thus we have an empty table
29352 IF l_ext_attrib_tbl.COUNT > 0 THEN
29353 csi_item_instance_pub.create_extended_attrib_values
29354 ( p_api_version => p_api_version
29355 ,p_commit => p_commit
29356 ,p_init_msg_list => p_init_msg_list
29357 ,p_validation_level => p_validation_level
29358 ,p_ext_attrib_tbl => l_ext_attrib_tbl
29359 ,p_txn_rec => p_txn_rec
29360 ,x_return_status => x_return_status
29361 ,x_msg_count => x_msg_count
29362 ,x_msg_data => x_msg_data
29363 );
29364
29365 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
29366 l_msg_index := 1;
29367 l_msg_count := x_msg_count;
29368 WHILE l_msg_count > 0 LOOP
29369 x_msg_data := FND_MSG_PUB.GET
29370 (l_msg_index,
29371 FND_API.G_FALSE );
29372 csi_gen_utility_pvt.put_line('message data = '||x_msg_data);
29373 l_msg_index := l_msg_index + 1;
29374 l_msg_count := l_msg_count - 1;
29375 END LOOP;
29376 RAISE FND_API.G_EXC_ERROR;
29377 END IF;
29378 END IF;
29379 END IF;
29380 END IF;
29381
29382 -- Create org assignments if requested
29383 IF (p_copy_org_assignments = fnd_api.g_true) THEN
29384 l_ou_query_rec.instance_ou_id := FND_API.G_MISS_NUM;
29385 l_ou_query_rec.instance_id := l_curr_instance_rec.instance_id;
29386 l_ou_query_rec.operating_unit_id := FND_API.G_MISS_NUM;
29387 l_ou_query_rec.relationship_type_code := FND_API.G_MISS_CHAR;
29388
29389 csi_organization_unit_pub.get_organization_unit
29390 (
29391 p_api_version => p_api_version
29392 ,p_commit => p_commit
29393 ,p_init_msg_list => p_init_msg_list
29394 ,p_validation_level => p_validation_level
29395 ,p_ou_query_rec => l_ou_query_rec
29396 ,p_resolve_id_columns => fnd_api.g_true
29397 ,p_time_stamp => NULL
29398 ,x_org_unit_tbl => l_org_unit_header_tbl
29399 ,x_return_status => x_return_status
29400 ,x_msg_count => x_msg_count
29401 ,x_msg_data => x_msg_data
29402 );
29403
29404 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
29405 l_msg_index := 1;
29406 l_msg_count := x_msg_count;
29407 WHILE l_msg_count > 0 LOOP
29408 x_msg_data := FND_MSG_PUB.GET
29409 (l_msg_index,
29410 FND_API.G_FALSE );
29411 csi_gen_utility_pvt.put_line('message data = '||x_msg_data);
29412 l_msg_index := l_msg_index + 1;
29413 l_msg_count := l_msg_count - 1;
29414 END LOOP;
29415 RAISE FND_API.G_EXC_ERROR;
29416 END IF;
29417
29418 IF l_org_unit_header_tbl.COUNT > 0 THEN /*****First change here 08/25/01 - RK***/
29419 FOR tab_row_party IN l_org_unit_header_tbl.FIRST .. l_org_unit_header_tbl.LAST
29420 LOOP
29421 IF l_org_unit_header_tbl.EXISTS(tab_row_party) THEN
29422 l_org_unit_tbl(tab_row_party).instance_ou_id := l_org_unit_header_tbl(tab_row_party).instance_ou_id;
29423 l_org_unit_tbl(tab_row_party).instance_id := l_org_unit_header_tbl(tab_row_party).instance_id;
29424 l_org_unit_tbl(tab_row_party).operating_unit_id := l_org_unit_header_tbl(tab_row_party).operating_unit_id;
29425 l_org_unit_tbl(tab_row_party).relationship_type_code := l_org_unit_header_tbl(tab_row_party).relationship_type_code;
29426 l_org_unit_tbl(tab_row_party).active_start_date := l_org_unit_header_tbl(tab_row_party).active_start_date;
29427 l_org_unit_tbl(tab_row_party).active_end_date := l_org_unit_header_tbl(tab_row_party).active_end_date;
29428 l_org_unit_tbl(tab_row_party).context := l_org_unit_header_tbl(tab_row_party).context;
29429 l_org_unit_tbl(tab_row_party).attribute1 := l_org_unit_header_tbl(tab_row_party).attribute1;
29430 l_org_unit_tbl(tab_row_party).attribute2 := l_org_unit_header_tbl(tab_row_party).attribute2;
29431 l_org_unit_tbl(tab_row_party).attribute3 := l_org_unit_header_tbl(tab_row_party).attribute3;
29432 l_org_unit_tbl(tab_row_party).attribute4 := l_org_unit_header_tbl(tab_row_party).attribute4;
29433 l_org_unit_tbl(tab_row_party).attribute5 := l_org_unit_header_tbl(tab_row_party).attribute5;
29434 l_org_unit_tbl(tab_row_party).attribute6 := l_org_unit_header_tbl(tab_row_party).attribute6;
29435 l_org_unit_tbl(tab_row_party).attribute7 := l_org_unit_header_tbl(tab_row_party).attribute7;
29436 l_org_unit_tbl(tab_row_party).attribute8 := l_org_unit_header_tbl(tab_row_party).attribute8;
29437 l_org_unit_tbl(tab_row_party).attribute9 := l_org_unit_header_tbl(tab_row_party).attribute9;
29438 l_org_unit_tbl(tab_row_party).attribute10 := l_org_unit_header_tbl(tab_row_party).attribute10;
29439 l_org_unit_tbl(tab_row_party).attribute11 := l_org_unit_header_tbl(tab_row_party).attribute11;
29440 l_org_unit_tbl(tab_row_party).attribute12 := l_org_unit_header_tbl(tab_row_party).attribute12;
29441 l_org_unit_tbl(tab_row_party).attribute13 := l_org_unit_header_tbl(tab_row_party).attribute13;
29442 l_org_unit_tbl(tab_row_party).attribute14 := l_org_unit_header_tbl(tab_row_party).attribute14;
29443 l_org_unit_tbl(tab_row_party).attribute15 := l_org_unit_header_tbl(tab_row_party).attribute15;
29444 l_org_unit_tbl(tab_row_party).object_version_number := l_org_unit_header_tbl(tab_row_party).object_version_number;
29445 END IF;
29446 END LOOP;
29447 END IF; --l_org_unit_header_tbl.COUNT > 0
29448
29449 IF l_org_unit_tbl.COUNT > 0 THEN
29450 FOR tab_row IN l_org_unit_tbl.FIRST .. l_org_unit_tbl.LAST
29451 LOOP
29452 IF l_org_unit_tbl.EXISTS(tab_row) THEN
29453 l_org_unit_tbl(tab_row).INSTANCE_ID := l_new_instance_rec.instance_id;
29454 l_org_unit_tbl(tab_row).INSTANCE_OU_ID := FND_API.G_MISS_NUM;
29455 l_org_unit_tbl(tab_row).ACTIVE_START_DATE := FND_API.G_MISS_DATE;
29456 l_org_unit_tbl(tab_row).ACTIVE_END_DATE := FND_API.G_MISS_DATE;
29457 END IF;
29458 END LOOP;
29459 csi_organization_unit_pub.create_organization_unit
29460 ( p_api_version => p_api_version
29461 ,p_commit => p_commit
29462 ,p_init_msg_list => p_init_msg_list
29463 ,p_validation_level => p_validation_level
29464 ,p_org_unit_tbl => l_org_unit_tbl
29465 ,p_txn_rec => p_txn_rec
29466 ,x_return_status => x_return_status
29467 ,x_msg_count => x_msg_count
29468 ,x_msg_data => x_msg_data
29469 );
29470
29471 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
29472 l_msg_index := 1;
29473 l_msg_count := x_msg_count;
29474 WHILE l_msg_count > 0 LOOP
29475 x_msg_data := FND_MSG_PUB.GET
29476 (l_msg_index,
29477 FND_API.G_FALSE );
29478
29479 csi_gen_utility_pvt.put_line('message data = '||x_msg_data);
29480 l_msg_index := l_msg_index + 1;
29481 l_msg_count := l_msg_count - 1;
29482 END LOOP;
29483 RAISE FND_API.G_EXC_ERROR;
29484 END IF;
29485 END IF;
29486 END IF;
29487
29488 -- Create pricing attributes if requested
29489 IF (p_copy_pricing_attribs = fnd_api.g_true) THEN
29490 l_pricing_attribs_query_rec.pricing_attribute_id := FND_API.G_MISS_NUM;
29491 l_pricing_attribs_query_rec.instance_id := l_curr_instance_rec.instance_id;
29492 csi_pricing_attribs_pub.get_pricing_attribs
29493 ( p_api_version => p_api_version
29494 ,p_commit => p_commit
29495 ,p_init_msg_list => p_init_msg_list
29496 ,p_validation_level => p_validation_level
29497 ,p_pricing_attribs_query_rec => l_pricing_attribs_query_rec
29498 ,p_time_stamp => NULL
29499 ,x_pricing_attribs_tbl => l_pricing_attribs_tbl
29500 ,x_return_status => x_return_status
29501 ,x_msg_count => x_msg_count
29502 ,x_msg_data => x_msg_data
29503 );
29504
29505 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
29506 l_msg_index := 1;
29507 l_msg_count := x_msg_count;
29508 WHILE l_msg_count > 0 LOOP
29509 x_msg_data := FND_MSG_PUB.GET
29510 (l_msg_index,
29511 FND_API.G_FALSE );
29512 csi_gen_utility_pvt.put_line('message data = '||x_msg_data);
29513 l_msg_index := l_msg_index + 1;
29514 l_msg_count := l_msg_count - 1;
29515 END LOOP;
29516
29517 RAISE FND_API.G_EXC_ERROR;
29518 END IF;
29519 IF l_pricing_attribs_tbl.COUNT > 0 THEN
29520 FOR tab_row IN l_pricing_attribs_tbl.FIRST .. l_pricing_attribs_tbl.LAST
29521 LOOP
29522 IF l_pricing_attribs_tbl.EXISTS(tab_row) THEN
29523 l_pricing_attribs_tbl(tab_row).INSTANCE_ID := l_new_instance_rec.instance_id;
29524 l_pricing_attribs_tbl(tab_row).PRICING_ATTRIBUTE_ID := FND_API.G_MISS_NUM;
29525 l_pricing_attribs_tbl(tab_row).ACTIVE_START_DATE := FND_API.G_MISS_DATE;
29526 l_pricing_attribs_tbl(tab_row).ACTIVE_END_DATE := FND_API.G_MISS_DATE;
29527 END IF;
29528 END LOOP;
29529 csi_pricing_attribs_pub.create_pricing_attribs
29530 ( p_api_version => p_api_version
29531 ,p_commit => p_commit
29532 ,p_init_msg_list => p_init_msg_list
29533 ,p_validation_level => p_validation_level
29534 ,p_pricing_attribs_tbl => l_pricing_attribs_tbl
29535 ,p_txn_rec => p_txn_rec
29536 ,x_return_status => x_return_status
29537 ,x_msg_count => x_msg_count
29538 ,x_msg_data => x_msg_data
29539 );
29540 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
29541 l_msg_index := 1;
29542 l_msg_count := x_msg_count;
29543 WHILE l_msg_count > 0 LOOP
29544 x_msg_data := FND_MSG_PUB.GET
29545 (l_msg_index,
29546 FND_API.G_FALSE );
29547 csi_gen_utility_pvt.put_line('message data = '||x_msg_data);
29548 l_msg_index := l_msg_index + 1;
29549 l_msg_count := l_msg_count - 1;
29550 END LOOP;
29551 RAISE FND_API.G_EXC_ERROR;
29552 END IF;
29553 END IF;
29554 END IF;
29555
29556 -- Added by rtalluri for Bug: 2420897 on 08/19/02
29557 -- If version label is null, then we need read the the default value from the profile option
29558 IF (p_source_instance_rec.VERSION_LABEL IS NULL ) OR
29559 (p_source_instance_rec.VERSION_LABEL = FND_API.G_MISS_CHAR) THEN
29560 l_version_label := FND_PROFILE.VALUE('CSI_DEFAULT_VERSION_LABEL');
29561 IF l_version_label IS NULL THEN
29562 FND_MESSAGE.SET_NAME('CSI','CSI_API_INVALID_VERSION_LABEL');
29563 FND_MSG_PUB.ADD;
29564 RAISE FND_API.G_EXC_ERROR;
29565 ELSE
29566 l_new_instance_rec.version_label := l_version_label;
29567 END IF;
29568 ELSE
29569 l_new_instance_rec.VERSION_LABEL := p_source_instance_rec.VERSION_LABEL;
29570 END IF;
29571
29572 --Calling the Create Version Label API to associate a version label for an instance created
29573
29574 l_version_label_rec.instance_id := l_new_instance_rec.instance_id;
29575 l_version_label_rec.version_label := l_new_instance_rec.version_label;
29576 l_version_label_rec.date_time_stamp := SYSDATE;
29577 l_version_label_rec.active_start_date := l_new_instance_rec.active_start_date;
29578 l_version_label_rec.description := l_new_instance_rec.version_label_description;
29579
29580 csi_item_instance_pvt.create_version_label
29581 (
29582 p_api_version => p_api_version
29583 ,p_commit => fnd_api.g_false
29584 ,p_init_msg_list => p_init_msg_list
29585 ,p_validation_level => p_validation_level
29586 ,p_version_label_rec => l_version_label_rec
29587 ,p_txn_rec => p_txn_rec
29588 ,x_return_status => x_return_status
29589 ,x_msg_count => x_msg_count
29590 ,x_msg_data => x_msg_data
29591 );
29592
29593 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
29594 csi_gen_utility_pvt.put_line( ' Error from COPY_SINGLE_ITEM_INSTANCE.CREATE_VERSION_LABEL..');
29595 csi_gen_utility_pvt.put_line('MESSAGE DATA = '||x_msg_data);
29596 FND_MESSAGE.SET_NAME('CSI','CSI_FAILED_TO_CREATE_VERSION');
29597 FND_MESSAGE.SET_TOKEN('API_ERROR','CREATE_VERSION_LABEL');
29598 FND_MSG_PUB.Add;
29599 RAISE FND_API.G_EXC_ERROR;
29600 END IF;
29601 -- End of Addition by rtalluri for Bug: 2420897 on 08/19/02
29602
29603 IF p_call_from_split = fnd_api.g_false
29604 THEN
29605 -- Added by sk for fixing the bug 2234365
29606 IF x_new_instance_tbl(1).instance_id IS NOT NULL AND
29607 x_new_instance_tbl(1).instance_id <> fnd_api.g_miss_num
29608 THEN
29609 -- Added by sk for fixing bug 2245976
29610 IF csi_datastructures_pub.g_install_param_rec.fetch_flag IS NULL THEN
29611 csi_gen_utility_pvt.populate_install_param_rec;
29612 END IF;
29613 --
29614 l_internal_party_id := csi_datastructures_pub.g_install_param_rec.internal_party_id;
29615 --
29616 IF l_internal_party_id IS NULL THEN
29617 FND_MESSAGE.SET_NAME('CSI','CSI_API_UNINSTALLED_PARAMETER');
29618 FND_MSG_PUB.ADD;
29619 RAISE FND_API.G_EXC_ERROR;
29620 END IF;
29621 --
29622 BEGIN
29623 SELECT cip.party_id
29624 INTO l_party_id
29625 FROM csi_i_parties cip
29626 WHERE cip.instance_id = x_new_instance_tbl(1).instance_id
29627 AND cip.relationship_type_code = 'OWNER';
29628 EXCEPTION
29629 WHEN OTHERS THEN
29630 l_party_id := NULL;
29631 END;
29632
29633 IF l_party_id IS NOT NULL AND
29634 l_internal_party_id IS NOT NULL AND
29635 l_party_id <> l_internal_party_id
29636 THEN
29637 -- End addition by sk for fixing bug 2245976
29638 csi_item_instance_pvt.Call_to_Contracts(
29639 p_transaction_type => 'NEW'
29640 ,p_instance_id => x_new_instance_tbl(1).instance_id
29641 ,p_new_instance_id => NULL
29642 ,p_vld_org_id => x_new_instance_tbl(1).vld_organization_id
29643 ,p_quantity => NULL
29644 ,p_party_account_id1 => NULL
29645 ,p_party_account_id2 => NULL
29646 ,p_call_from_bom_expl => p_call_from_bom_expl
29647 ,p_transaction_date => p_txn_rec.transaction_date -- For 3483763
29648 ,p_source_transaction_date => p_txn_rec.source_transaction_date -- For 3483763
29649 ,p_oks_txn_inst_tbl => px_oks_txn_inst_tbl
29650 ,x_return_status => x_return_status
29651 ,x_msg_count => x_msg_count
29652 ,x_msg_data => x_msg_data
29653 );
29654
29655 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS)
29656 THEN
29657 l_msg_index := 1;
29658 l_msg_count := x_msg_count;
29659 WHILE l_msg_count > 0 LOOP
29660 x_msg_data := FND_MSG_PUB.GET
29661 ( l_msg_index,
29662 FND_API.G_FALSE
29663 );
29664 csi_gen_utility_pvt.put_line('MESSAGE DATA = '||x_msg_data);
29665 l_msg_index := l_msg_index + 1;
29666 l_msg_count := l_msg_count - 1;
29667 END LOOP;
29668 RAISE FND_API.G_EXC_ERROR;
29669 END IF;
29670 --
29671 IF px_oks_txn_inst_tbl.count > 0 THEN
29672 csi_gen_utility_pvt.dump_oks_txn_inst_tbl(px_oks_txn_inst_tbl);
29673 csi_gen_utility_pvt.put_line('Calling OKS Core API...');
29674 --
29675 IF p_txn_rec.transaction_type_id = 3 THEN
29676 l_batch_id := p_txn_rec.source_header_ref_id;
29677 l_batch_type := p_txn_rec.source_group_ref;
29678 ELSE
29679 l_batch_id := NULL;
29680 l_batch_type := NULL;
29681 END IF;
29682 --
29683 UPDATE CSI_TRANSACTIONS
29684 set contracts_invoked = 'Y'
29685 where transaction_id = p_txn_rec.transaction_id;
29686 --
29687 OKS_IBINT_PUB.IB_interface
29688 (
29689 P_Api_Version => 1.0,
29690 P_init_msg_list => p_init_msg_list,
29691 P_single_txn_date_flag => 'Y',
29692 P_Batch_type => l_batch_type,
29693 P_Batch_ID => l_batch_id,
29694 P_OKS_Txn_Inst_tbl => px_oks_txn_inst_tbl,
29695 x_return_status => x_return_status,
29696 x_msg_count => x_msg_count,
29697 x_msg_data => x_msg_data
29698 );
29699 --
29700 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
29701 l_msg_index := 1;
29702 l_msg_count := x_msg_count;
29703 WHILE l_msg_count > 0 LOOP
29704 x_msg_data := FND_MSG_PUB.GET
29705 ( l_msg_index,
29706 FND_API.G_FALSE );
29707 csi_gen_utility_pvt.put_line( 'Error from OKS_IBINT_PUB.IB_interface..');
29708 csi_gen_utility_pvt.put_line('MESSAGE DATA = '||x_msg_data);
29709 l_msg_index := l_msg_index + 1;
29710 l_msg_count := l_msg_count - 1;
29711 END LOOP;
29712 RAISE FND_API.G_EXC_ERROR;
29713 END IF;
29714 END IF;
29715 END IF;
29716 END IF;
29717 -- End Addition by sk for fixing the bug 2234365
29718 END IF;
29719 -- End of API body
29720 -- Standard check of p_commit
29721 IF FND_API.To_Boolean( p_commit ) THEN
29722 COMMIT WORK;
29723 END IF;
29724 -- Standard call to get message count and if count is get message info.
29725 FND_MSG_PUB.Count_And_Get
29726 (p_encoded => FND_API.G_FALSE,
29727 p_count => x_msg_count ,
29728 p_data => x_msg_data
29729 );
29730 EXCEPTION
29731 WHEN FND_API.G_EXC_ERROR THEN
29732 ROLLBACK TO copy_single_item_instance;
29733 x_return_status := FND_API.G_RET_STS_ERROR ;
29734 FND_MSG_PUB.Count_And_Get
29735 ( p_encoded => FND_API.G_FALSE,
29736 p_count => x_msg_count,
29737 p_data => x_msg_data
29738 );
29739 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
29740 ROLLBACK TO copy_single_item_instance;
29741 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
29742 FND_MSG_PUB.Count_And_Get
29743 ( p_encoded => FND_API.G_FALSE,
29744 p_count => x_msg_count,
29745 p_data => x_msg_data
29746 );
29747
29748 WHEN OTHERS THEN
29749 ROLLBACK TO copy_single_item_instance;
29750 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
29751 IF FND_MSG_PUB.Check_Msg_Level
29752 (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
29753 THEN
29754 FND_MSG_PUB.Add_Exc_Msg
29755 ( G_PKG_NAME ,
29756 l_api_name
29757 );
29758 END IF;
29759 FND_MSG_PUB.Count_And_Get
29760 ( p_encoded => FND_API.G_FALSE,
29761 p_count => x_msg_count,
29762 p_data => x_msg_data
29763 );
29764 END copy_single_item_instance;
29765 --
29766 /*---------------------------------------------------------*/
29767 /* Procedure name: Explode_Bom */
29768 /* Description : This procudure explodes the BOM and */
29769 /* creates instances and relationships */
29770 /* Author : Srinivasan Ramakrishnan */
29771 /*---------------------------------------------------------*/
29772 PROCEDURE Explode_Bom
29773 (
29774 p_api_version IN NUMBER
29775 ,p_commit IN VARCHAR2
29776 ,p_init_msg_list IN VARCHAR2
29777 ,p_validation_level IN NUMBER
29778 ,p_source_instance_rec IN csi_datastructures_pub.instance_rec
29779 ,p_explosion_level IN NUMBER
29780 ,p_item_tbl OUT NOCOPY csi_datastructures_pub.instance_tbl
29781 ,p_item_relation_tbl OUT NOCOPY csi_datastructures_pub.ii_relationship_tbl
29782 ,p_create_instance IN VARCHAR2
29783 ,p_txn_rec IN OUT NOCOPY csi_datastructures_pub.transaction_rec
29784 ,x_return_status OUT NOCOPY VARCHAR2
29785 ,x_msg_count OUT NOCOPY NUMBER
29786 ,x_msg_data OUT NOCOPY VARCHAR2
29787 )
29788 IS
29789 --
29790 l_api_name CONSTANT VARCHAR2(30) := 'explode_bom';
29791 l_api_version CONSTANT NUMBER := 1.0;
29792 l_debug_level NUMBER;
29793 l_dump_frequency_flag VARCHAR2(30);
29794 l_msg_index NUMBER;
29795 l_msg_count NUMBER;
29796 l_err_msg VARCHAR2(2000) := NULL;
29797 l_error_code VARCHAR2(30) := NULL;
29798 l_group_id NUMBER;
29799 l_session_id NUMBER := 0;
29800 l_parent_child_tbl csi_item_instance_pvt.parent_child_tbl;
29801 l_parent_count NUMBER := 0;
29802 l_per_parent NUMBER := 0;
29803 l_temp_per_parent NUMBER := 0;
29804 l_csi_explode_bom VARCHAR2(30) := fnd_profile.value('CSI_EXPLODE_BOM');
29805 l_csi_bom_explosion_level NUMBER;
29806 l_ins_count NUMBER := 0;
29807 l_curr_parent VARCHAR2(240);
29808 x_ins_tbl csi_datastructures_pub.instance_tbl;
29809 x_rel_tbl csi_datastructures_pub.ii_relationship_tbl;
29810 l_source_instance_rec csi_datastructures_pub.instance_rec;
29811 x_new_ins_tbl csi_datastructures_pub.instance_tbl;
29812 l_init_source_instance_rec csi_datastructures_pub.instance_rec;
29813 l_rel_count NUMBER := 0;
29814 l_count NUMBER;
29815 l_prev_parent VARCHAR2(240);
29816 l_prev_child VARCHAR2(240);
29817 l_split_qty NUMBER;
29818 l_master_organization_id NUMBER;
29819 x_msg_index_out NUMBER;
29820 l_child_expl_level NUMBER;
29821 l_init_sort_code VARCHAR2(2000);
29822 l_bom_sortcode_width NUMBER := Bom_Common_Definitions.G_Bom_SortCode_Width;
29823 l_bom_sort_order_tbl csi_item_instance_pvt.bom_sort_order_tbl;
29824 l_bom_expl_org_flag VARCHAR2(3);
29825 --
29826 CURSOR BOM_CSR (p_group_id NUMBER)
29827 IS
29828 SELECT bom.assembly_item_id parent_item_id
29829 ,bet.component_item_id component_item_id
29830 ,bet.organization_id organization_id
29831 ,bet.component_quantity component_quantity
29832 ,bet.extended_quantity extended_quantity
29833 ,bet.plan_level plan_level
29834 ,substr(bet.sort_order,1,(length(sort_order)-l_bom_sortcode_width)) parent_sort_order
29835 ,bet.sort_order child_sort_order
29836 ,msi.serial_number_control_code serial_number_control_code
29837 ,msi.primary_uom_code primary_uom_code
29838 ,mp.master_organization_id master_organization_id
29839 FROM bom_small_expl_temp bet
29840 ,bom_bill_of_materials bom
29841 ,mtl_system_items msi
29842 ,mtl_system_items msip
29843 ,mtl_parameters mp
29844 WHERE bet.group_id = p_group_id
29845 AND bet.plan_level > 0 -- Ignore Top Most
29846 AND bet.component_item_id = msi.inventory_item_id
29847 AND bet.organization_id = msi.organization_id
29848 AND bet.bill_sequence_id = bom.bill_sequence_id
29849 AND bet.extended_quantity > 0
29850 AND bom.assembly_item_id = msip.inventory_item_id
29851 AND bom.organization_id = msip.organization_id
29852 AND msi.organization_id = mp.organization_id
29853 ORDER BY bet.sort_order;
29854 BEGIN
29855 -- Standard Start of API savepoint
29856 SAVEPOINT explode_bom;
29857 -- Standard call to check for call compatibility.
29858 IF NOT FND_API.Compatible_API_Call (l_api_version,
29859 p_api_version,
29860 l_api_name ,
29861 G_PKG_NAME)
29862 THEN
29863 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
29864 END IF;
29865 -- Initialize message list if p_init_msg_list is set to TRUE.
29866 IF FND_API.to_Boolean( p_init_msg_list ) THEN
29867 FND_MSG_PUB.initialize;
29868 END IF;
29869 -- Initialize API return status to success
29870 x_return_status := FND_API.G_RET_STS_SUCCESS;
29871 -- Check the profile option debug_level for debug message reporting
29872 l_debug_level:=fnd_profile.value('CSI_DEBUG_LEVEL');
29873 -- If debug_level = 1 then dump the procedure name
29874 IF (l_debug_level > 0) THEN
29875 csi_gen_utility_pvt.put_line( 'explode_bom');
29876 END IF;
29877 -- If the debug level = 2 then dump all the parameters values.
29878 IF (l_debug_level > 1) THEN
29879 csi_gen_utility_pvt.put_line('explode_standard_bom'||'-'
29880 || p_api_version ||'-'
29881 || p_commit ||'-'
29882 || p_init_msg_list ||'-'
29883 || p_validation_level ||'-'
29884 || p_explosion_level);
29885 -- Dump item instanc rec
29886 csi_gen_utility_pvt.dump_instance_rec(p_source_instance_rec);
29887 END IF;
29888 -- Start API body
29889 -- Bug 10285807
29890 -- Fetch profile CSI_BOM_EXPLOSION_ORG
29891 -- If Y => Shipping/Warehouse Org will be used for BOM child component
29892 -- validation and creation
29893 -- If N => Item validation Org will be used for BOM child component
29894 -- validation and creation
29895 l_bom_expl_org_flag := nvl(FND_PROFILE.VALUE('CSI_BOM_EXPLOSION_ORG'), 'N');
29896 csi_gen_utility_pvt.put_line('l_bom_expl_org_flag - ' || l_bom_expl_org_flag);
29897
29898 IF l_csi_explode_bom = 'Y' THEN
29899 -- Verify if the a Valid item and Org id is being passed
29900 IF NOT(csi_Item_Instance_Vld_pvt.val_item_org
29901 ( p_source_instance_rec.INVENTORY_ITEM_ID,
29902 p_source_instance_rec.VLD_ORGANIZATION_ID)) THEN
29903 RAISE FND_API.G_EXC_ERROR;
29904 END IF;
29905 -- Verify if the a Valid bom and Org id is being passed
29906 IF NOT(csi_Item_Instance_Vld_pvt.val_bom_org
29907 ( p_source_instance_rec.INVENTORY_ITEM_ID,
29908 p_source_instance_rec.VLD_ORGANIZATION_ID)) THEN
29909 RAISE FND_API.G_EXC_ERROR;
29910 END IF;
29911 -- Verify instance quantity
29912 IF ((p_source_instance_rec.QUANTITY IS NULL)
29913 OR (p_source_instance_rec.QUANTITY = FND_API.G_MISS_NUM )
29914 OR (p_source_instance_rec.QUANTITY <> 1)) THEN
29915 FND_MESSAGE.SET_NAME('CSI','CSI_API_INVALID_QUANTITY');
29916 FND_MESSAGE.SET_TOKEN('QUANTITY',p_source_instance_rec.QUANTITY);
29917 FND_MSG_PUB.Add;
29918 RAISE FND_API.G_EXC_ERROR;
29919 END IF;
29920 -- Verify the Passed Inventory Item is Trackable
29921 -- Get the Master Organization ID
29922 BEGIN
29923 select master_organization_id
29924 into l_master_organization_id
29925 from MTL_PARAMETERS
29926 where organization_id = p_source_instance_rec.VLD_ORGANIZATION_ID;
29927 EXCEPTION
29928 when others then
29929 csi_gen_utility_pvt.put_line('Unable to get the Master organization ID for '
29930 ||to_char(p_source_instance_rec.VLD_ORGANIZATION_ID));
29931 RAISE FND_API.G_EXC_ERROR;
29932 END;
29933 --
29934 IF NOT csi_item_instance_vld_pvt.Is_Trackable
29935 (p_inv_item_id => p_source_instance_rec.INVENTORY_ITEM_ID,
29936 p_org_id => l_master_organization_id) THEN
29937 csi_gen_utility_pvt.put_line('Passed Inventory Item is not Trackable..');
29938 RAISE FND_API.G_EXC_ERROR;
29939 END IF;
29940 -- Instance_id should be passed if Instance needs to be created for the Exploded Items
29941 --
29942 IF p_create_instance = FND_API.G_TRUE THEN
29943 IF (p_source_instance_rec.instance_id IS NULL) OR
29944 (p_source_instance_rec.instance_id = FND_API.G_MISS_NUM) THEN
29945 FND_MESSAGE.SET_NAME('CSI','CSI_API_INSTANCE_ID_NULL');
29946 FND_MSG_PUB.Add;
29947 RAISE FND_API.G_EXC_ERROR;
29948 END IF;
29949 --
29950 -- Verify if configruation has been exploded before
29951 IF (csi_Item_Instance_Vld_pvt.Is_config_exploded
29952 ( p_source_instance_rec.INSTANCE_ID)) THEN
29953 csi_gen_utility_pvt.put_line('Configuration already Exploded');
29954 RAISE FND_API.G_EXC_ERROR;
29955 END IF;
29956 END IF;
29957 --
29958 IF p_explosion_level IS NULL OR
29959 p_explosion_level = FND_API.G_MISS_NUM THEN
29960 l_csi_bom_explosion_level := to_number(fnd_profile.value('CSI_BOM_EXPLOSION_LEVEL'));
29961 ELSE
29962 l_csi_bom_explosion_level := p_explosion_level;
29963 END IF;
29964 --
29965 SELECT Bom_Explosion_Temp_S.NextVal
29966 INTO l_group_id
29967 FROM sys.dual;
29968 --
29969 Bompxinq.Exploder_Userexit
29970 (
29971 grp_id => l_group_id,
29972 org_id => p_source_instance_rec.VLD_ORGANIZATION_ID,
29973 item_id => p_source_instance_rec.INVENTORY_ITEM_ID,
29974 unit_number_from => '',
29975 unit_number_to => '',
29976 levels_to_explode => l_csi_bom_explosion_level,
29977 expl_qty => 1,
29978 show_rev => 1,
29979 material_ctrl => 1,
29980 err_msg => l_err_msg,
29981 error_code => l_error_code
29982 );
29983 --
29984 IF l_Error_Code <> 0 THEN
29985 csi_gen_utility_pvt.put_line (' Bom explosion error code <> 0 '|| l_Error_Code ||' '||l_err_msg);
29986 IF l_Error_Code < 0 THEN
29987 csi_gen_utility_pvt.put_line (' Bom explosion error code > 0 '|| l_Error_Code ||' '||l_err_msg);
29988 ELSIF l_Error_Code > 0 THEN
29989 csi_gen_utility_pvt.put_line (' Bom explosion error code < 0'|| l_Error_Code ||' '||l_err_msg);
29990 END IF;
29991 FND_MESSAGE.SET_NAME('CSI','CSI_API_CORE_BOM_EXPL_ERROR');
29992 FND_MSG_PUB.Add;
29993 RAISE FND_API.G_EXC_ERROR;
29994 END IF; -- error
29995 --
29996 l_init_sort_code := Bom_Common_Definitions.get_initial_sort_code;
29997 --
29998 -- Loop thru' the cursor and create the Parent_child_tbl
29999 csi_gen_utility_pvt.put_line('Start of BOM Explosion..');
30000 For v_rec in BOM_CSR(l_group_id)
30001 Loop
30002 l_parent_count := l_parent_count + 1;
30003 l_parent_child_tbl(l_parent_count).parent_sort_order := v_rec.parent_sort_order;
30004 l_parent_child_tbl(l_parent_count).child_sort_order := v_rec.child_sort_order;
30005 End Loop;
30006 --
30007 l_ins_count := 0;
30008 l_prev_parent := l_init_sort_code; -- By default this will be Top Most Parent
30009 --
30010 For v_rec in BOM_CSR(l_group_id)
30011 Loop
30012 IF csi_Item_Instance_Vld_pvt.Is_Trackable
30013 (p_inv_item_id => v_rec.component_item_id,
30014 p_org_id => v_rec.master_organization_id,
30015 p_stack_err_msg => FALSE) THEN
30016 --
30017 -- Check whether parent is trackable or not
30018 l_curr_parent := v_rec.parent_sort_order;
30019 IF l_curr_parent <> l_init_sort_code THEN -- no need for Top Most
30020 -- Get the immediate Trackable Parent
30021 csi_item_instance_pvt.Get_parent_sort_order
30022 (
30023 p_parent_sort_order => l_curr_parent
30024 ,p_parent_child_tbl => l_parent_child_tbl
30025 ,p_bom_sort_order_tbl => l_bom_sort_order_tbl
30026 );
30027 END IF;
30028 --
30029 -- Since the Max level is determined by the parameter p_explosion_level, any sub-assembly
30030 -- will be exploded only to the remaining level.
30031 l_child_expl_level := l_csi_bom_explosion_level - v_rec.plan_level;
30032 --
30033 IF ( (v_rec.serial_number_control_code in (2,5,6)) OR
30034 ((csi_item_instance_pvt.Is_Parent(p_child_sort_order => v_rec.child_sort_order
30035 ,p_parent_child_tbl => l_parent_child_tbl)) AND
30036 -- Check for Trackable component under this
30037 (csi_item_instance_pvt.Has_Trackable_Component
30038 (p_inventory_item_id => v_rec.component_item_id
30039 ,p_organization_id => v_rec.organization_id
30040 ,p_explosion_level => l_child_expl_level))) ) THEN
30041 For i in 1..v_rec.extended_quantity
30042 Loop
30043 l_ins_count := l_ins_count + 1;
30044 x_ins_tbl(l_ins_count).inventory_item_id := v_rec.component_item_id;
30045 x_ins_tbl(l_ins_count).quantity := 1;
30046 x_ins_tbl(l_ins_count).mfg_serial_number_flag := 'N';
30047 x_ins_tbl(l_ins_count).unit_of_measure := v_rec.primary_uom_code;
30048 x_ins_tbl(l_ins_count).lot_number := NULL;
30049 x_ins_tbl(l_ins_count).instance_usage_code := NULL;
30050 -- Bug 10285807
30051 x_ins_tbl(l_ins_count).VLD_ORGANIZATION_ID := v_rec.organization_id;
30052 -- x_ins_tbl(l_ins_count).ATTRIBUTE12 := l_curr_parent;
30053 -- x_ins_tbl(l_ins_count).ATTRIBUTE13 := v_rec.child_sort_order;
30054 -- x_ins_tbl(l_ins_count).ATTRIBUTE14 := 'N'; -- Mark_flag
30055 -- x_ins_tbl(l_ins_count).ATTRIBUTE15 := to_char(v_rec.extended_quantity); -- child occurance
30056 l_bom_sort_order_tbl(l_ins_count).parent_sort_order := l_curr_parent;
30057 l_bom_sort_order_tbl(l_ins_count).child_sort_order := v_rec.child_sort_order;
30058 l_bom_sort_order_tbl(l_ins_count).mark_flag := 'N';
30059 l_bom_sort_order_tbl(l_ins_count).child_occurance := v_rec.extended_quantity;
30060 End Loop;
30061 ELSE
30062 l_count := 0;
30063 IF l_bom_sort_order_tbl.count > 0 THEN
30064 For ins_row in l_bom_sort_order_tbl.FIRST .. l_bom_sort_order_tbl.LAST
30065 Loop
30066 IF l_curr_parent = l_bom_sort_order_tbl(ins_row).child_sort_order then -- Getting the parent existance
30067 l_count := l_bom_sort_order_tbl(ins_row).child_occurance;
30068 EXIT;
30069 END IF;
30070 End Loop;
30071 END IF;
30072 --
30073 IF l_count > 0 THEN
30074 l_split_qty := v_rec.extended_quantity/l_count;
30075 For j in 1..l_count
30076 Loop
30077 l_ins_count := l_ins_count + 1;
30078 x_ins_tbl(l_ins_count).inventory_item_id := v_rec.component_item_id;
30079 x_ins_tbl(l_ins_count).quantity := l_split_qty;
30080 x_ins_tbl(l_ins_count).mfg_serial_number_flag := 'N';
30081 x_ins_tbl(l_ins_count).unit_of_measure := v_rec.primary_uom_code;
30082 x_ins_tbl(l_ins_count).lot_number := NULL;
30083 x_ins_tbl(l_ins_count).instance_usage_code := NULL;
30084 -- Bug 10285807
30085 x_ins_tbl(l_ins_count).VLD_ORGANIZATION_ID := v_rec.organization_id;
30086 -- x_ins_tbl(l_ins_count).ATTRIBUTE12 := l_curr_parent;
30087 -- x_ins_tbl(l_ins_count).ATTRIBUTE13 := v_rec.child_sort_order;
30088 -- x_ins_tbl(l_ins_count).ATTRIBUTE14 := 'N'; -- Mark_flag
30089 -- x_ins_tbl(l_ins_count).ATTRIBUTE15 := to_char(l_count); -- # of child occurance
30090 l_bom_sort_order_tbl(l_ins_count).parent_sort_order := l_curr_parent;
30091 l_bom_sort_order_tbl(l_ins_count).child_sort_order := v_rec.child_sort_order;
30092 l_bom_sort_order_tbl(l_ins_count).mark_flag := 'N';
30093 l_bom_sort_order_tbl(l_ins_count).child_occurance := l_count;
30094 End Loop;
30095 ELSE
30096 l_ins_count := l_ins_count + 1;
30097 x_ins_tbl(l_ins_count).inventory_item_id := v_rec.component_item_id;
30098 x_ins_tbl(l_ins_count).quantity := v_rec.extended_quantity;
30099 x_ins_tbl(l_ins_count).mfg_serial_number_flag := 'N';
30100 x_ins_tbl(l_ins_count).unit_of_measure := v_rec.primary_uom_code;
30101 x_ins_tbl(l_ins_count).lot_number := NULL;
30102 x_ins_tbl(l_ins_count).instance_usage_code := NULL;
30103 -- Bug 10285807
30104 x_ins_tbl(l_ins_count).VLD_ORGANIZATION_ID := v_rec.organization_id;
30105 -- x_ins_tbl(l_ins_count).ATTRIBUTE12 := l_curr_parent;
30106 -- x_ins_tbl(l_ins_count).ATTRIBUTE13 := v_rec.child_sort_order;
30107 -- x_ins_tbl(l_ins_count).ATTRIBUTE14 := 'N'; -- Mark_flag
30108 -- x_ins_tbl(l_ins_count).ATTRIBUTE15 := to_char(1); -- # of child occurance
30109 l_bom_sort_order_tbl(l_ins_count).parent_sort_order := l_curr_parent;
30110 l_bom_sort_order_tbl(l_ins_count).child_sort_order := v_rec.child_sort_order;
30111 l_bom_sort_order_tbl(l_ins_count).mark_flag := 'N';
30112 l_bom_sort_order_tbl(l_ins_count).child_occurance := 1;
30113 END IF;
30114 END IF;
30115 END IF;
30116 End Loop;
30117 -- Loop thru' the x_ins_tbl and create the x_rel_tbl
30118 -- x_ins_tbl and l_bom_sort_order_tbl are one-to-one. Since the sort order width is more
30119 -- and we can't accomodate in the ATTRIBUTE column, the new tbl has been created.
30120 l_rel_count := 0;
30121 l_prev_parent := l_init_sort_code;
30122 l_prev_child := l_init_sort_code;
30123 IF x_ins_tbl.count > 0 THEN
30124 For ins_tab in x_ins_tbl.FIRST .. x_ins_tbl.LAST
30125 Loop
30126 IF l_bom_sort_order_tbl(ins_tab).parent_sort_order = l_init_sort_code THEN -- TOP MOST
30127 l_rel_count := l_rel_count + 1;
30128 x_rel_tbl(l_rel_count).subject_id := ins_tab;
30129 x_rel_tbl(l_rel_count).object_id := 0; -- Change this to Passed Instance ID for Ins creation
30130 x_rel_tbl(l_rel_count).relationship_type_code := 'COMPONENT-OF';
30131 l_prev_parent := l_init_sort_code;
30132 l_prev_child := l_bom_sort_order_tbl(ins_tab).child_sort_order;
30133 ELSE
30134 IF l_bom_sort_order_tbl(ins_tab).parent_sort_order = l_prev_parent AND
30135 l_bom_sort_order_tbl(ins_tab).child_sort_order = l_prev_child THEN
30136 l_rel_count := l_rel_count + 1;
30137 x_rel_tbl(l_rel_count).subject_id := ins_tab;
30138 x_rel_tbl(l_rel_count).relationship_type_code := 'COMPONENT-OF';
30139 For assign_count in l_bom_sort_order_tbl.FIRST .. l_bom_sort_order_tbl.LAST
30140 Loop
30141 IF l_bom_sort_order_tbl(ins_tab).parent_sort_order =
30142 l_bom_sort_order_tbl(assign_count).child_sort_order AND
30143 l_bom_sort_order_tbl(assign_count).mark_flag = 'N' THEN
30144 x_rel_tbl(l_rel_count).object_id := assign_count;
30145 l_prev_parent := l_bom_sort_order_tbl(ins_tab).parent_sort_order;
30146 l_prev_child := l_bom_sort_order_tbl(ins_tab).child_sort_order;
30147 l_temp_per_parent := l_temp_per_parent - 1;
30148 IF l_temp_per_parent = 0 THEN
30149 l_bom_sort_order_tbl(assign_count).mark_flag := 'Y'; -- Mark
30150 l_temp_per_parent := l_per_parent;
30151 END IF;
30152 EXIT;
30153 END IF;
30154 End Loop;
30155 --
30156 ELSE -- New Parent Child combination
30157 l_parent_count := 0;
30158 For par_row in l_bom_sort_order_tbl.FIRST .. l_bom_sort_order_tbl.LAST
30159 Loop
30160 -- At the end of this loop, l_parent_count will have the # of occurance of
30161 -- the current instance's parent as a child in INS_TBL.
30162 IF l_bom_sort_order_tbl(par_row).child_sort_order = l_bom_sort_order_tbl(ins_tab).parent_sort_order THEN
30163 l_parent_count := l_bom_sort_order_tbl(par_row).child_occurance;
30164 l_bom_sort_order_tbl(par_row).mark_flag := 'N';
30165 -- Even though the occurance value will be same in all the above cases,
30166 -- we just make use of this loop to assign the mark_flag to put back 'N'
30167 END IF;
30168 End Loop;
30169 --
30170 IF l_parent_count > 0 THEN
30171 l_per_parent := l_bom_sort_order_tbl(ins_tab).child_occurance/l_parent_count;
30172 l_temp_per_parent := l_per_parent;
30173 END IF;
30174 --
30175 -- Use l_temp_per_parent to Loop thru' INS_TBL and use that slot as Object ID
30176 -- and Mark wherever the l_bom_sort_order_tbl(ins_tab).parent_sort_order (current_parent)
30177 -- is same as l_bom_sort_order_tbl(assign_count).child_sort_order (Child)
30178 --
30179 l_rel_count := l_rel_count + 1;
30180 x_rel_tbl(l_rel_count).subject_id := ins_tab;
30181 x_rel_tbl(l_rel_count).relationship_type_code := 'COMPONENT-OF';
30182 For assign_count in l_bom_sort_order_tbl.FIRST .. l_bom_sort_order_tbl.LAST
30183 Loop
30184 IF l_bom_sort_order_tbl(ins_tab).parent_sort_order =
30185 l_bom_sort_order_tbl(assign_count).child_sort_order AND
30186 l_bom_sort_order_tbl(assign_count).mark_flag = 'N' THEN
30187 x_rel_tbl(l_rel_count).object_id := assign_count;
30188 l_prev_parent := l_bom_sort_order_tbl(ins_tab).parent_sort_order;
30189 l_prev_child := l_bom_sort_order_tbl(ins_tab).child_sort_order;
30190 l_temp_per_parent := l_temp_per_parent - 1;
30191 IF l_temp_per_parent = 0 THEN
30192 l_bom_sort_order_tbl(assign_count).mark_flag := 'Y'; -- Mark
30193 l_temp_per_parent := l_per_parent;
30194 END IF;
30195 EXIT;
30196 END IF;
30197 End Loop;
30198 --
30199 END IF;
30200 END IF;
30201 End Loop;
30202 END IF; -- Check for x_ins_tbl count
30203 END IF; -- Check CSI_EXPLODE_BOM
30204 --
30205 IF x_ins_tbl.count > 0 THEN
30206 For ins_tab in l_bom_sort_order_tbl.FIRST .. l_bom_sort_order_tbl.LAST
30207 Loop
30208 csi_gen_utility_pvt.put_line(l_bom_sort_order_tbl(ins_tab).parent_sort_order ||' '
30209 ||to_char(x_ins_tbl(ins_tab).inventory_item_id)||' '
30210 ||to_char(x_ins_tbl(ins_tab).VLD_ORGANIZATION_ID)||' '
30211 ||to_char(x_ins_tbl(ins_tab).quantity)||' '
30212 ||l_bom_sort_order_tbl(ins_tab).child_sort_order);
30213 End Loop;
30214 END IF;
30215 --
30216 IF x_rel_tbl.count > 0 THEN
30217 For rel_tab in x_rel_tbl.FIRST .. x_rel_tbl.LAST
30218 Loop
30219 csi_gen_utility_pvt.put_line(to_char(x_rel_tbl(rel_tab).subject_id) ||' '
30220 ||to_char(x_rel_tbl(rel_tab).object_id));
30221 End Loop;
30222 END IF;
30223 --
30224 -- Create Instance and II Relationships if the p_create_instance is TRUE
30225 IF p_create_instance = FND_API.G_TRUE THEN
30226 IF x_ins_tbl.count > 0 THEN
30227 csi_gen_utility_pvt.put_line('Calling Copy Single Item Instance..');
30228 For ins_tab in x_ins_tbl.FIRST .. x_ins_tbl.LAST
30229 Loop
30230 l_source_instance_rec := x_ins_tbl(ins_tab);
30231 l_source_instance_rec.instance_id := p_source_instance_rec.instance_id;
30232 csi_item_instance_pvt.copy_single_item_instance
30233 (
30234 p_api_version => 1.0
30235 ,p_commit => fnd_api.g_false
30236 ,p_init_msg_list => fnd_api.g_true
30237 ,p_validation_level => fnd_api.g_valid_level_full
30238 ,p_source_instance_rec => l_source_instance_rec
30239 ,p_copy_ext_attribs => fnd_api.g_true
30240 ,p_copy_org_assignments => fnd_api.g_true
30241 ,p_copy_parties => fnd_api.g_true
30242 ,p_copy_contacts => fnd_api.g_true
30243 ,p_copy_accounts => fnd_api.g_true
30244 ,p_copy_asset_assignments => fnd_api.g_true
30245 ,p_copy_pricing_attribs => fnd_api.g_true
30246 ,p_call_from_split => fnd_api.g_false
30247 ,p_call_from_bom_expl => fnd_api.g_true
30248 ,p_txn_rec => p_txn_rec
30249 ,x_new_instance_tbl => x_new_ins_tbl
30250 ,x_return_status => x_return_status
30251 ,x_msg_count => x_msg_count
30252 ,x_msg_data => x_msg_data
30253 );
30254 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
30255 csi_gen_utility_pvt.put_line('Error while trying to Copy the Instance..');
30256 FOR i in 1..x_msg_Count LOOP
30257 FND_MSG_PUB.Get(p_msg_index => i,
30258 p_encoded => 'F',
30259 p_data => x_msg_data,
30260 p_msg_index_out => x_msg_index_out );
30261 csi_gen_utility_pvt.put_line('message data = '||x_msg_data);
30262 End LOOP;
30263 RAISE FND_API.G_EXC_ERROR;
30264 END IF;
30265 -- Assign the new instance_id to x_ins_tbl.instance_id
30266 x_ins_tbl(ins_tab).instance_id := x_new_ins_tbl(1).instance_id;
30267 --
30268 -- On success Populate the relationship_tbl with the new instance_id
30269 IF x_rel_tbl.count > 0 THEN
30270 For rel_tab in x_rel_tbl.FIRST .. x_rel_tbl.LAST
30271 Loop
30272 IF x_rel_tbl(rel_tab).object_id = 0 THEN -- Top Most
30273 x_rel_tbl(rel_tab).object_id := p_source_instance_rec.instance_id;
30274 END IF;
30275 --
30276 IF x_rel_tbl(rel_tab).subject_id = ins_tab THEN
30277 x_rel_tbl(rel_tab).subject_id := x_new_ins_tbl(1).instance_id;
30278 END IF;
30279 --
30280 IF x_rel_tbl(rel_tab).object_id = ins_tab THEN
30281 x_rel_tbl(rel_tab).object_id := x_new_ins_tbl(1).instance_id;
30282 END IF;
30283 --
30284 End Loop;
30285 END IF;
30286 End Loop;
30287 --
30288 IF x_rel_tbl.count > 0 THEN
30289 csi_gen_utility_pvt.put_line('Calling II Relationship PUB...');
30290 csi_ii_relationships_pub.create_relationship
30291 (
30292 p_api_version => 1.0,
30293 p_commit => fnd_api.g_false,
30294 p_init_msg_list => fnd_api.g_true,
30295 p_validation_level => fnd_api.g_valid_level_full,
30296 p_relationship_tbl => x_rel_tbl,
30297 p_txn_rec => p_txn_rec,
30298 x_return_status => x_return_status,
30299 x_msg_count => x_msg_count,
30300 x_msg_data => x_msg_data
30301 );
30302 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
30303 csi_gen_utility_pvt.put_line('Error while trying to Create II Relationships..');
30304 FOR i in 1..x_msg_Count LOOP
30305 FND_MSG_PUB.Get(p_msg_index => i,
30306 p_encoded => 'F',
30307 p_data => x_msg_data,
30308 p_msg_index_out => x_msg_index_out );
30309 csi_gen_utility_pvt.put_line('message data = '||x_msg_data);
30310 End LOOP;
30311 RAISE FND_API.G_EXC_ERROR;
30312 END IF;
30313 END IF;
30314 END IF; -- End of x_ins_tbl_count
30315 END IF; -- Check for p_create_instance
30316 --
30317 -- Assign this to the OUT parameters
30318 p_item_tbl := x_ins_tbl;
30319 p_item_relation_tbl := x_rel_tbl;
30320 --
30321 -- Delete records from bom_small_exp_temp
30322 DELETE FROM bom_small_expl_temp where group_id = l_group_id;
30323 --
30324 -- End of API body
30325 -- Standard check of p_commit
30326 IF FND_API.To_Boolean( p_commit ) THEN
30327 COMMIT WORK;
30328 END IF;
30329 -- Standard call to get message count and if count is get message info.
30330 FND_MSG_PUB.Count_And_Get
30331 ( p_encoded => FND_API.G_FALSE,
30332 p_count => x_msg_count ,
30333 p_data => x_msg_data
30334 );
30335 EXCEPTION
30336 WHEN FND_API.G_EXC_ERROR THEN
30337 ROLLBACK TO explode_bom;
30338 x_return_status := FND_API.G_RET_STS_ERROR ;
30339 FND_MSG_PUB.Count_And_Get
30340 ( p_encoded => FND_API.G_FALSE,
30341 p_count => x_msg_count,
30342 p_data => x_msg_data
30343 );
30344 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
30345 ROLLBACK TO explode_bom;
30346 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
30347 FND_MSG_PUB.Count_And_Get
30348 ( p_encoded => FND_API.G_FALSE,
30349 p_count => x_msg_count,
30350 p_data => x_msg_data
30351 );
30352 WHEN OTHERS THEN
30353 ROLLBACK TO explode_bom;
30354 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
30355 IF FND_MSG_PUB.Check_Msg_Level
30356 (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
30357 THEN
30358 FND_MSG_PUB.Add_Exc_Msg
30359 ( G_PKG_NAME ,
30360 l_api_name
30361 );
30362 END IF;
30363 FND_MSG_PUB.Count_And_Get
30364 ( p_encoded => FND_API.G_FALSE,
30365 p_count => x_msg_count,
30366 p_data => x_msg_data
30367 );
30368 END Explode_Bom;
30369 --
30370 /*---------------------------------------------------*/
30371 /* procedure name: get_instance_hist */
30372 /* description : Retreive history transactions */
30373 /* for an instance */
30374 /*---------------------------------------------------*/
30375
30376 PROCEDURE get_instance_hist
30377 ( p_api_version IN NUMBER
30378 ,p_commit IN VARCHAR2
30379 ,p_init_msg_list IN VARCHAR2
30380 ,p_validation_level IN NUMBER
30381 ,p_transaction_id IN NUMBER
30382 ,x_instance_history_tbl OUT NOCOPY csi_datastructures_pub.instance_history_tbl
30383 ,x_return_status OUT NOCOPY VARCHAR2
30384 ,x_msg_count OUT NOCOPY NUMBER
30385 ,x_msg_data OUT NOCOPY VARCHAR2
30386 ) IS
30387 CURSOR txn_hist_csr (p_txn_id IN NUMBER) IS
30388 SELECT *
30389 FROM csi_item_instances_h
30390 WHERE transaction_id = p_txn_id;
30391
30392 l_old_ins_header_rec csi_datastructures_pub.instance_header_rec;
30393 l_new_ins_header_rec csi_datastructures_pub.instance_header_rec;
30394 l_old_ins_header_tbl csi_datastructures_pub.instance_header_tbl;
30395 l_new_ins_header_tbl csi_datastructures_pub.instance_header_tbl;
30396 l_ins_header_rec csi_datastructures_pub.instance_history_rec;
30397 l_temp_ins_rec csi_datastructures_pub.instance_history_rec;
30398 l_temp_hdr_rec csi_datastructures_pub.instance_header_rec;
30399 l_api_name CONSTANT VARCHAR2(30) := 'get_instance_hist';
30400 l_api_version CONSTANT NUMBER := 1.0;
30401 i NUMBER := 0;
30402 l_time_stamp DATE;
30403 l_instance_rec csi_datastructures_pub.instance_header_rec;
30404 l_party_header_tbl csi_datastructures_pub.party_header_tbl;
30405 l_account_header_tbl csi_datastructures_pub.party_account_header_tbl;
30406 l_org_header_tbl csi_datastructures_pub.org_units_header_tbl;
30407 l_pricing_attrib_tbl csi_datastructures_pub.pricing_attribs_tbl;
30408 l_ext_attrib_tbl csi_datastructures_pub.extend_attrib_values_tbl;
30409 l_ext_attrib_def_tbl csi_datastructures_pub.extend_attrib_tbl;
30410 l_asset_header_tbl csi_datastructures_pub.instance_asset_header_tbl;
30411 BEGIN
30412 /*
30413 IF fnd_api.to_boolean(p_commit)
30414 THEN
30415 SAVEPOINT get_instance_hist;
30416 END IF;
30417 */
30418
30419 -- Standard call to check for call compatibility.
30420 IF NOT FND_API.Compatible_API_Call (l_api_version ,
30421 p_api_version ,
30422 l_api_name ,
30423 G_PKG_NAME )
30424 THEN
30425 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
30426 END IF;
30427
30428 -- Initialize message list if p_init_msg_list is set to TRUE.
30429 IF FND_API.to_Boolean( p_init_msg_list ) THEN
30430 FND_MSG_PUB.initialize;
30431 END IF;
30432
30433 -- Initialize API return status to success
30434 x_return_status := FND_API.G_RET_STS_SUCCESS;
30435
30436 /***** srramakr commented for bug # 3304439
30437 -- Check for the profile option and enable trace
30438 IF (fnd_profile.value('CSI_ENABLE_SQL_TRACE') = 'Y') THEN
30439 dbms_session.set_sql_trace(TRUE);
30440 END IF;
30441 -- End enable trace
30442 ****/
30443
30444 -- Start API body
30445 --
30446
30447
30448 FOR l_hist_csr IN txn_hist_csr (p_transaction_id)
30449 LOOP
30450 l_ins_header_rec := l_temp_ins_rec;
30451 -- Added for bug 3439348
30452 l_old_ins_header_rec := l_temp_hdr_rec;
30453 l_new_ins_header_rec := l_temp_hdr_rec;
30454 -- End addition for bug 3439348
30455
30456 --start of code for bug 4754569--
30457 l_old_ins_header_rec.instance_id := l_hist_csr.instance_id;
30458 l_new_ins_header_rec.instance_id := l_hist_csr.instance_id;
30459 --end of code for bug 4754569--
30460
30461 IF NVL(l_hist_csr.old_instance_number,fnd_api.g_miss_char) = NVL(l_hist_csr.new_instance_number,fnd_api.g_miss_char)
30462 THEN
30463 l_old_ins_header_rec.instance_number := NULL;
30464 l_new_ins_header_rec.instance_number := NULL;
30465 ELSE
30466 l_old_ins_header_rec.instance_number := l_hist_csr.old_instance_number;
30467 l_new_ins_header_rec.instance_number := l_hist_csr.new_instance_number;
30468 END IF;
30469
30470 IF NVL(l_hist_csr.old_external_reference,fnd_api.g_miss_char) = NVL(l_hist_csr.new_external_reference,fnd_api.g_miss_char)
30471 THEN
30472 l_old_ins_header_rec.external_reference := NULL;
30473 l_new_ins_header_rec.external_reference := NULL;
30474 ELSE
30475 l_old_ins_header_rec.external_reference := l_hist_csr.old_external_reference;
30476 l_new_ins_header_rec.external_reference := l_hist_csr.new_external_reference;
30477 END IF;
30478
30479 IF NVL(l_hist_csr.old_inventory_item_id,fnd_api.g_miss_num) = NVL(l_hist_csr.new_inventory_item_id,fnd_api.g_miss_num)
30480 THEN
30481 l_old_ins_header_rec.inventory_item_id := NULL;
30482 l_new_ins_header_rec.inventory_item_id := NULL;
30483 ELSE
30484 l_old_ins_header_rec.inventory_item_id := l_hist_csr.old_inventory_item_id;
30485 l_new_ins_header_rec.inventory_item_id := l_hist_csr.new_inventory_item_id;
30486 END IF;
30487
30488 IF NVL(l_hist_csr.old_inventory_revision,fnd_api.g_miss_char) = NVL(l_hist_csr.new_inventory_revision,fnd_api.g_miss_char)
30489 THEN
30490 l_old_ins_header_rec.inventory_revision := NULL;
30491 l_new_ins_header_rec.inventory_revision := NULL;
30492 ELSE
30493 l_old_ins_header_rec.inventory_revision := l_hist_csr.old_inventory_revision;
30494 l_new_ins_header_rec.inventory_revision := l_hist_csr.new_inventory_revision;
30495 END IF;
30496
30497 IF NVL(l_hist_csr.old_inv_master_organization_id,fnd_api.g_miss_num) = NVL(l_hist_csr.new_inv_master_organization_id,fnd_api.g_miss_num)
30498 THEN
30499 l_old_ins_header_rec.inv_master_organization_id := NULL;
30500 l_new_ins_header_rec.inv_master_organization_id := NULL;
30501 ELSE
30502 l_old_ins_header_rec.inv_master_organization_id := l_hist_csr.old_inv_master_organization_id;
30503 l_new_ins_header_rec.inv_master_organization_id := l_hist_csr.new_inv_master_organization_id;
30504 END IF;
30505
30506 IF NVL(l_hist_csr.old_serial_number,fnd_api.g_miss_char) = NVL(l_hist_csr.new_serial_number,fnd_api.g_miss_char)
30507 THEN
30508 l_old_ins_header_rec.serial_number := NULL;
30509 l_new_ins_header_rec.serial_number := NULL;
30510 ELSE
30511 l_old_ins_header_rec.serial_number := l_hist_csr.old_serial_number;
30512 l_new_ins_header_rec.serial_number := l_hist_csr.new_serial_number;
30513 END IF;
30514
30515 IF NVL(l_hist_csr.old_mfg_serial_number_flag,fnd_api.g_miss_char) = NVL(l_hist_csr.new_mfg_serial_number_flag,fnd_api.g_miss_char)
30516 THEN
30517 l_old_ins_header_rec.mfg_serial_number_flag := NULL;
30518 l_new_ins_header_rec.mfg_serial_number_flag := NULL;
30519 ELSE
30520 l_old_ins_header_rec.mfg_serial_number_flag := l_hist_csr.old_mfg_serial_number_flag;
30521 l_new_ins_header_rec.mfg_serial_number_flag := l_hist_csr.new_mfg_serial_number_flag;
30522 END IF;
30523
30524 IF NVL(l_hist_csr.old_lot_number,fnd_api.g_miss_char) = NVL(l_hist_csr.new_lot_number,fnd_api.g_miss_char)
30525 THEN
30526 l_old_ins_header_rec.lot_number := NULL;
30527 l_new_ins_header_rec.lot_number := NULL;
30528 ELSE
30529 l_old_ins_header_rec.lot_number := l_hist_csr.old_lot_number;
30530 l_new_ins_header_rec.lot_number := l_hist_csr.new_lot_number;
30531 END IF;
30532
30533 IF NVL(l_hist_csr.old_quantity,fnd_api.g_miss_num) = NVL(l_hist_csr.new_quantity,fnd_api.g_miss_num)
30534 THEN
30535 l_old_ins_header_rec.quantity := NULL;
30536 l_new_ins_header_rec.quantity := NULL;
30537 ELSE
30538 l_old_ins_header_rec.quantity := l_hist_csr.old_quantity;
30539 l_new_ins_header_rec.quantity := l_hist_csr.new_quantity;
30540 END IF;
30541
30542 IF NVL(l_hist_csr.old_unit_of_measure,fnd_api.g_miss_char) = NVL(l_hist_csr.new_unit_of_measure,fnd_api.g_miss_char)
30543 THEN
30544 l_old_ins_header_rec.unit_of_measure := NULL;
30545 l_new_ins_header_rec.unit_of_measure := NULL;
30546 ELSE
30547 l_old_ins_header_rec.unit_of_measure := l_hist_csr.old_unit_of_measure;
30548 l_new_ins_header_rec.unit_of_measure := l_hist_csr.new_unit_of_measure;
30549 END IF;
30550
30551 IF NVL(l_hist_csr.old_accounting_class_code,fnd_api.g_miss_char) = NVL(l_hist_csr.new_accounting_class_code,fnd_api.g_miss_char)
30552 THEN
30553 l_old_ins_header_rec.accounting_class_code := NULL;
30554 l_new_ins_header_rec.accounting_class_code := NULL;
30555 ELSE
30556 l_old_ins_header_rec.accounting_class_code := l_hist_csr.old_accounting_class_code;
30557 l_new_ins_header_rec.accounting_class_code := l_hist_csr.new_accounting_class_code;
30558 END IF;
30559
30560 IF NVL(l_hist_csr.old_instance_condition_id,fnd_api.g_miss_num) = NVL(l_hist_csr.new_instance_condition_id,fnd_api.g_miss_num)
30561 THEN
30562 l_old_ins_header_rec.instance_condition_id := NULL;
30563 l_new_ins_header_rec.instance_condition_id := NULL;
30564 ELSE
30565 l_old_ins_header_rec.instance_condition_id := l_hist_csr.old_instance_condition_id;
30566 l_new_ins_header_rec.instance_condition_id := l_hist_csr.new_instance_condition_id;
30567 END IF;
30568
30569 IF NVL(l_hist_csr.old_instance_status_id,fnd_api.g_miss_num) = NVL(l_hist_csr.new_instance_status_id,fnd_api.g_miss_num)
30570 THEN
30571 l_old_ins_header_rec.instance_status_id := NULL;
30572 l_new_ins_header_rec.instance_status_id := NULL;
30573 ELSE
30574 l_old_ins_header_rec.instance_status_id := l_hist_csr.old_instance_status_id;
30575 l_new_ins_header_rec.instance_status_id := l_hist_csr.new_instance_status_id;
30576 END IF;
30577
30578 IF NVL(l_hist_csr.old_customer_view_flag,fnd_api.g_miss_char) = NVL(l_hist_csr.new_customer_view_flag,fnd_api.g_miss_char)
30579 THEN
30580 l_old_ins_header_rec.customer_view_flag := NULL;
30581 l_new_ins_header_rec.customer_view_flag := NULL;
30582 ELSE
30583 l_old_ins_header_rec.customer_view_flag := l_hist_csr.old_customer_view_flag;
30584 l_new_ins_header_rec.customer_view_flag := l_hist_csr.new_customer_view_flag;
30585 END IF;
30586
30587 IF NVL(l_hist_csr.old_merchant_view_flag,fnd_api.g_miss_char) = NVL(l_hist_csr.new_merchant_view_flag,fnd_api.g_miss_char)
30588 THEN
30589 l_old_ins_header_rec.merchant_view_flag := NULL;
30590 l_new_ins_header_rec.merchant_view_flag := NULL;
30591 ELSE
30592 l_old_ins_header_rec.merchant_view_flag := l_hist_csr.old_merchant_view_flag;
30593 l_new_ins_header_rec.merchant_view_flag := l_hist_csr.new_merchant_view_flag;
30594 END IF;
30595
30596 IF NVL(l_hist_csr.old_sellable_flag,fnd_api.g_miss_char) = NVL(l_hist_csr.new_sellable_flag,fnd_api.g_miss_char)
30597 THEN
30598 l_old_ins_header_rec.sellable_flag := NULL;
30599 l_new_ins_header_rec.sellable_flag := NULL;
30600 ELSE
30601 l_old_ins_header_rec.sellable_flag := l_hist_csr.old_sellable_flag;
30602 l_new_ins_header_rec.sellable_flag := l_hist_csr.new_sellable_flag;
30603 END IF;
30604
30605 IF NVL(l_hist_csr.old_system_id,fnd_api.g_miss_num) = NVL(l_hist_csr.new_system_id,fnd_api.g_miss_num)
30606 THEN
30607 l_old_ins_header_rec.system_id := NULL;
30608 l_new_ins_header_rec.system_id := NULL;
30609 ELSE
30610 l_old_ins_header_rec.system_id := l_hist_csr.old_system_id;
30611 l_new_ins_header_rec.system_id := l_hist_csr.new_system_id;
30612 END IF;
30613
30614 IF NVL(l_hist_csr.old_instance_type_code,fnd_api.g_miss_char) = NVL(l_hist_csr.new_instance_type_code,fnd_api.g_miss_char)
30615 THEN
30616 l_old_ins_header_rec.instance_type_code := NULL;
30617 l_new_ins_header_rec.instance_type_code := NULL;
30618 ELSE
30619 l_old_ins_header_rec.instance_type_code := l_hist_csr.old_instance_type_code;
30620 l_new_ins_header_rec.instance_type_code := l_hist_csr.new_instance_type_code;
30621 END IF;
30622
30623 IF NVL(l_hist_csr.old_active_start_date,fnd_api.g_miss_date) = NVL(l_hist_csr.new_active_start_date,fnd_api.g_miss_date)
30624 THEN
30625 l_old_ins_header_rec.active_start_date := NULL;
30626 l_new_ins_header_rec.active_start_date := NULL;
30627 ELSE
30628 l_old_ins_header_rec.active_start_date := l_hist_csr.old_active_start_date;
30629 l_new_ins_header_rec.active_start_date := l_hist_csr.new_active_start_date;
30630 END IF;
30631
30632 IF NVL(l_hist_csr.old_active_end_date,fnd_api.g_miss_date) = NVL(l_hist_csr.new_active_end_date,fnd_api.g_miss_date)
30633 THEN
30634 l_old_ins_header_rec.active_end_date := NULL;
30635 l_new_ins_header_rec.active_end_date := NULL;
30636 ELSE
30637 l_old_ins_header_rec.active_end_date := l_hist_csr.old_active_end_date;
30638 l_new_ins_header_rec.active_end_date := l_hist_csr.new_active_end_date;
30639 END IF;
30640
30641 -- Added for bug 2671179
30642 IF NVL(l_hist_csr.old_install_date,fnd_api.g_miss_date) = NVL(l_hist_csr.new_install_date,fnd_api.g_miss_date)
30643 THEN
30644 l_old_ins_header_rec.install_date := NULL;
30645 l_new_ins_header_rec.install_date := NULL;
30646 ELSE
30647 l_old_ins_header_rec.install_date := l_hist_csr.old_install_date;
30648 l_new_ins_header_rec.install_date := l_hist_csr.new_install_date;
30649 END IF;
30650
30651 IF NVL(l_hist_csr.old_return_by_date,fnd_api.g_miss_date) = NVL(l_hist_csr.new_return_by_date,fnd_api.g_miss_date)
30652 THEN
30653 l_old_ins_header_rec.return_by_date := NULL;
30654 l_new_ins_header_rec.return_by_date := NULL;
30655 ELSE
30656 l_old_ins_header_rec.return_by_date := l_hist_csr.old_return_by_date;
30657 l_new_ins_header_rec.return_by_date := l_hist_csr.new_return_by_date;
30658 END IF;
30659
30660 IF NVL(l_hist_csr.old_actual_return_date,fnd_api.g_miss_date) = NVL(l_hist_csr.new_actual_return_date,fnd_api.g_miss_date)
30661 THEN
30662 l_old_ins_header_rec.actual_return_date := NULL;
30663 l_new_ins_header_rec.actual_return_date := NULL;
30664 ELSE
30665 l_old_ins_header_rec.actual_return_date := l_hist_csr.old_actual_return_date;
30666 l_new_ins_header_rec.actual_return_date := l_hist_csr.new_actual_return_date;
30667 END IF;
30668 -- End addition for bug 2671179
30669
30670 IF NVL(l_hist_csr.old_location_type_code,fnd_api.g_miss_char) = NVL(l_hist_csr.new_location_type_code,fnd_api.g_miss_char)
30671 THEN
30672 l_old_ins_header_rec.location_type_code := NULL;
30673 l_new_ins_header_rec.location_type_code := NULL;
30674 ELSE
30675 l_old_ins_header_rec.location_type_code := l_hist_csr.old_location_type_code;
30676 l_new_ins_header_rec.location_type_code := l_hist_csr.new_location_type_code;
30677 END IF;
30678
30679 IF NVL(l_hist_csr.old_location_id,fnd_api.g_miss_num) = NVL(l_hist_csr.new_location_id,fnd_api.g_miss_num)
30680 THEN
30681 l_old_ins_header_rec.location_id := NULL;
30682 l_new_ins_header_rec.location_id := NULL;
30683 ELSE
30684 l_old_ins_header_rec.location_id := l_hist_csr.old_location_id;
30685 l_new_ins_header_rec.location_id := l_hist_csr.new_location_id;
30686 l_old_ins_header_rec.location_type_code := l_hist_csr.old_location_type_code;
30687 l_new_ins_header_rec.location_type_code := l_hist_csr.new_location_type_code;
30688 END IF;
30689
30690 IF NVL(l_hist_csr.old_inv_organization_id,fnd_api.g_miss_num) = NVL(l_hist_csr.new_inv_organization_id,fnd_api.g_miss_num)
30691 THEN
30692 l_old_ins_header_rec.inv_organization_id := NULL;
30693 l_new_ins_header_rec.inv_organization_id := NULL;
30694 ELSE
30695 l_old_ins_header_rec.inv_organization_id := l_hist_csr.old_inv_organization_id;
30696 l_new_ins_header_rec.inv_organization_id := l_hist_csr.new_inv_organization_id;
30697 l_old_ins_header_rec.location_type_code := l_hist_csr.old_location_type_code;
30698 l_new_ins_header_rec.location_type_code := l_hist_csr.new_location_type_code;
30699 END IF;
30700
30701 IF NVL(l_hist_csr.old_inv_subinventory_name,fnd_api.g_miss_char) = NVL(l_hist_csr.new_inv_subinventory_name,fnd_api.g_miss_char)
30702 THEN
30703 l_old_ins_header_rec.inv_subinventory_name := NULL;
30704 l_new_ins_header_rec.inv_subinventory_name := NULL;
30705 ELSE
30706 l_old_ins_header_rec.inv_subinventory_name := l_hist_csr.old_inv_subinventory_name;
30707 l_new_ins_header_rec.inv_subinventory_name := l_hist_csr.new_inv_subinventory_name;
30708 END IF;
30709
30710 IF NVL(l_hist_csr.old_inv_locator_id,fnd_api.g_miss_num) = NVL(l_hist_csr.new_inv_locator_id,fnd_api.g_miss_num)
30711 THEN
30712 l_old_ins_header_rec.inv_locator_id := NULL;
30713 l_new_ins_header_rec.inv_locator_id := NULL;
30714 ELSE
30715 l_old_ins_header_rec.inv_locator_id := l_hist_csr.old_inv_locator_id;
30716 l_new_ins_header_rec.inv_locator_id := l_hist_csr.new_inv_locator_id;
30717 END IF;
30718
30719 IF NVL(l_hist_csr.old_pa_project_id,fnd_api.g_miss_num) = NVL(l_hist_csr.new_pa_project_id,fnd_api.g_miss_num)
30720 THEN
30721 l_old_ins_header_rec.pa_project_id := NULL;
30722 l_new_ins_header_rec.pa_project_id := NULL;
30723 ELSE
30724 l_old_ins_header_rec.pa_project_id := l_hist_csr.old_pa_project_id;
30725 l_new_ins_header_rec.pa_project_id := l_hist_csr.new_pa_project_id;
30726 l_old_ins_header_rec.location_type_code := l_hist_csr.old_location_type_code;
30727 l_new_ins_header_rec.location_type_code := l_hist_csr.new_location_type_code;
30728 END IF;
30729
30730 IF NVL(l_hist_csr.old_pa_project_task_id,fnd_api.g_miss_num) = NVL(l_hist_csr.new_pa_project_task_id,fnd_api.g_miss_num)
30731 THEN
30732 l_old_ins_header_rec.pa_project_task_id := NULL;
30733 l_new_ins_header_rec.pa_project_task_id := NULL;
30734 ELSE
30735 l_old_ins_header_rec.pa_project_task_id := l_hist_csr.old_pa_project_task_id;
30736 l_new_ins_header_rec.pa_project_task_id := l_hist_csr.new_pa_project_task_id;
30737 l_old_ins_header_rec.location_type_code := l_hist_csr.old_location_type_code;
30738 l_new_ins_header_rec.location_type_code := l_hist_csr.new_location_type_code;
30739 END IF;
30740
30741 IF NVL(l_hist_csr.old_in_transit_order_line_id,fnd_api.g_miss_num) = NVL(l_hist_csr.new_in_transit_order_line_id,fnd_api.g_miss_num)
30742 THEN
30743 l_old_ins_header_rec.in_transit_order_line_id := NULL;
30744 l_new_ins_header_rec.in_transit_order_line_id := NULL;
30745 ELSE
30746 l_old_ins_header_rec.in_transit_order_line_id := l_hist_csr.old_in_transit_order_line_id;
30747 l_new_ins_header_rec.in_transit_order_line_id := l_hist_csr.new_in_transit_order_line_id;
30748 l_old_ins_header_rec.location_type_code := l_hist_csr.old_location_type_code;
30749 l_new_ins_header_rec.location_type_code := l_hist_csr.new_location_type_code;
30750 END IF;
30751
30752 IF NVL(l_hist_csr.old_wip_job_id,fnd_api.g_miss_num) = NVL(l_hist_csr.new_wip_job_id,fnd_api.g_miss_num)
30753 THEN
30754 l_old_ins_header_rec.wip_job_id := NULL;
30755 l_new_ins_header_rec.wip_job_id := NULL;
30756 ELSE
30757 l_old_ins_header_rec.wip_job_id := l_hist_csr.old_wip_job_id;
30758 l_new_ins_header_rec.wip_job_id := l_hist_csr.new_wip_job_id;
30759 l_old_ins_header_rec.location_type_code := l_hist_csr.old_location_type_code;
30760 l_new_ins_header_rec.location_type_code := l_hist_csr.new_location_type_code;
30761 END IF;
30762
30763 IF NVL(l_hist_csr.old_po_order_line_id,fnd_api.g_miss_num) = NVL(l_hist_csr.new_po_order_line_id,fnd_api.g_miss_num)
30764 THEN
30765 l_old_ins_header_rec.po_order_line_id := NULL;
30766 l_new_ins_header_rec.po_order_line_id := NULL;
30767 ELSE
30768 l_old_ins_header_rec.po_order_line_id := l_hist_csr.old_po_order_line_id;
30769 l_new_ins_header_rec.po_order_line_id := l_hist_csr.new_po_order_line_id;
30770 END IF;
30771
30772 IF NVL(l_hist_csr.old_oe_agreement_id,fnd_api.g_miss_num) = NVL(l_hist_csr.new_oe_agreement_id,fnd_api.g_miss_num)
30773 THEN
30774 l_old_ins_header_rec.last_oe_agreement_id := NULL;
30775 l_new_ins_header_rec.last_oe_agreement_id := NULL;
30776 ELSE
30777 l_old_ins_header_rec.last_oe_agreement_id := l_hist_csr.old_oe_agreement_id;
30778 l_new_ins_header_rec.last_oe_agreement_id := l_hist_csr.new_oe_agreement_id;
30779 END IF;
30780
30781 IF NVL(l_hist_csr.old_LAST_OE_ORDER_LINE_ID,fnd_api.g_miss_num) = NVL(l_hist_csr.new_LAST_OE_ORDER_LINE_ID,fnd_api.g_miss_num)
30782 THEN
30783 l_old_ins_header_rec.LAST_OE_ORDER_LINE_ID := NULL;
30784 l_new_ins_header_rec.LAST_OE_ORDER_LINE_ID := NULL;
30785 ELSE
30786 l_old_ins_header_rec.LAST_OE_ORDER_LINE_ID := l_hist_csr.old_LAST_OE_ORDER_LINE_ID;
30787 l_new_ins_header_rec.LAST_OE_ORDER_LINE_ID := l_hist_csr.new_LAST_OE_ORDER_LINE_ID;
30788 END IF;
30789
30790 IF NVL(l_hist_csr.old_LAST_OE_RMA_LINE_ID,fnd_api.g_miss_num) = NVL(l_hist_csr.new_LAST_OE_RMA_LINE_ID,fnd_api.g_miss_num)
30791 THEN
30792 l_old_ins_header_rec.LAST_OE_RMA_LINE_ID := NULL;
30793 l_new_ins_header_rec.LAST_OE_RMA_LINE_ID := NULL;
30794 ELSE
30795 l_old_ins_header_rec.LAST_OE_RMA_LINE_ID := l_hist_csr.old_LAST_OE_RMA_LINE_ID;
30796 l_new_ins_header_rec.LAST_OE_RMA_LINE_ID := l_hist_csr.new_LAST_OE_RMA_LINE_ID;
30797 END IF;
30798
30799 IF NVL(l_hist_csr.old_LAST_WIP_JOB_ID,fnd_api.g_miss_num) = NVL(l_hist_csr.new_LAST_WIP_JOB_ID,fnd_api.g_miss_num)
30800 THEN
30801 l_old_ins_header_rec.LAST_WIP_JOB_ID := NULL;
30802 l_new_ins_header_rec.LAST_WIP_JOB_ID := NULL;
30803 ELSE
30804 l_old_ins_header_rec.LAST_WIP_JOB_ID := l_hist_csr.old_LAST_WIP_JOB_ID;
30805 l_new_ins_header_rec.LAST_WIP_JOB_ID := l_hist_csr.new_LAST_WIP_JOB_ID;
30806 END IF;
30807
30808 IF NVL(l_hist_csr.old_LAST_PO_PO_LINE_ID,fnd_api.g_miss_num) = NVL(l_hist_csr.new_LAST_PO_PO_LINE_ID,fnd_api.g_miss_num)
30809 THEN
30810 l_old_ins_header_rec.LAST_PO_PO_LINE_ID := NULL;
30811 l_new_ins_header_rec.LAST_PO_PO_LINE_ID := NULL;
30812 ELSE
30813 l_old_ins_header_rec.LAST_PO_PO_LINE_ID := l_hist_csr.old_LAST_PO_PO_LINE_ID;
30814 l_new_ins_header_rec.LAST_PO_PO_LINE_ID := l_hist_csr.new_LAST_PO_PO_LINE_ID;
30815 END IF;
30816
30817 IF NVL(l_hist_csr.old_LAST_PA_PROJECT_ID,fnd_api.g_miss_num) = NVL(l_hist_csr.new_LAST_PA_PROJECT_ID,fnd_api.g_miss_num)
30818 THEN
30819 l_old_ins_header_rec.LAST_PA_PROJECT_ID := NULL;
30820 l_new_ins_header_rec.LAST_PA_PROJECT_ID := NULL;
30821 ELSE
30822 l_old_ins_header_rec.LAST_PA_PROJECT_ID := l_hist_csr.old_LAST_PA_PROJECT_ID;
30823 l_new_ins_header_rec.LAST_PA_PROJECT_ID := l_hist_csr.new_LAST_PA_PROJECT_ID;
30824 END IF;
30825
30826 IF NVL(l_hist_csr.old_LAST_PA_TASK_ID,fnd_api.g_miss_num) = NVL(l_hist_csr.new_LAST_PA_TASK_ID,fnd_api.g_miss_num)
30827 THEN
30828 l_old_ins_header_rec.LAST_PA_TASK_ID := NULL;
30829 l_new_ins_header_rec.LAST_PA_TASK_ID := NULL;
30830 ELSE
30831 l_old_ins_header_rec.LAST_PA_TASK_ID := l_hist_csr.old_LAST_PA_TASK_ID;
30832 l_new_ins_header_rec.LAST_PA_TASK_ID := l_hist_csr.new_LAST_PA_TASK_ID;
30833 END IF;
30834
30835 IF NVL(l_hist_csr.old_LAST_TXN_LINE_DETAIL_ID,fnd_api.g_miss_num) = NVL(l_hist_csr.new_LAST_TXN_LINE_DETAIL_ID,fnd_api.g_miss_num)
30836 THEN
30837 l_old_ins_header_rec.LAST_TXN_LINE_DETAIL_ID := NULL;
30838 l_new_ins_header_rec.LAST_TXN_LINE_DETAIL_ID := NULL;
30839 ELSE
30840 l_old_ins_header_rec.LAST_TXN_LINE_DETAIL_ID := l_hist_csr.old_LAST_TXN_LINE_DETAIL_ID;
30841 l_new_ins_header_rec.LAST_TXN_LINE_DETAIL_ID := l_hist_csr.new_LAST_TXN_LINE_DETAIL_ID;
30842 END IF;
30843
30844 IF NVL(l_hist_csr.old_LAST_OE_PO_NUMBER,fnd_api.g_miss_char) = NVL(l_hist_csr.new_LAST_OE_PO_NUMBER,fnd_api.g_miss_char)
30845 THEN
30846 l_old_ins_header_rec.LAST_OE_PO_NUMBER := NULL;
30847 l_new_ins_header_rec.LAST_OE_PO_NUMBER := NULL;
30848 ELSE
30849 l_old_ins_header_rec.LAST_OE_PO_NUMBER := l_hist_csr.old_LAST_OE_PO_NUMBER;
30850 l_new_ins_header_rec.LAST_OE_PO_NUMBER := l_hist_csr.new_LAST_OE_PO_NUMBER;
30851 END IF;
30852
30853 IF NVL(l_hist_csr.old_completeness_flag,fnd_api.g_miss_char) = NVL(l_hist_csr.new_completeness_flag,fnd_api.g_miss_char)
30854 THEN
30855 l_old_ins_header_rec.completeness_flag := NULL;
30856 l_new_ins_header_rec.completeness_flag := NULL;
30857 ELSE
30858 l_old_ins_header_rec.completeness_flag := l_hist_csr.old_completeness_flag;
30859 l_new_ins_header_rec.completeness_flag := l_hist_csr.new_completeness_flag;
30860 END IF;
30861
30862 IF NVL(l_hist_csr.old_context,fnd_api.g_miss_char) = NVL(l_hist_csr.new_context,fnd_api.g_miss_char)
30863 THEN
30864 l_old_ins_header_rec.context := NULL;
30865 l_new_ins_header_rec.context := NULL;
30866 ELSE
30867 l_old_ins_header_rec.context := l_hist_csr.old_context;
30868 l_new_ins_header_rec.context := l_hist_csr.new_context;
30869 END IF;
30870
30871 IF NVL(l_hist_csr.old_attribute1,fnd_api.g_miss_char) = NVL(l_hist_csr.new_attribute1,fnd_api.g_miss_char)
30872 THEN
30873 l_old_ins_header_rec.attribute1 := NULL;
30874 l_new_ins_header_rec.attribute1 := NULL;
30875 ELSE
30876 l_old_ins_header_rec.attribute1 := l_hist_csr.old_attribute1;
30877 l_new_ins_header_rec.attribute1 := l_hist_csr.new_attribute1;
30878 END IF;
30879
30880 IF NVL(l_hist_csr.old_attribute2,fnd_api.g_miss_char) = NVL(l_hist_csr.new_attribute2,fnd_api.g_miss_char)
30881 THEN
30882 l_old_ins_header_rec.attribute2 := NULL;
30883 l_new_ins_header_rec.attribute2 := NULL;
30884 ELSE
30885 l_old_ins_header_rec.attribute2 := l_hist_csr.old_attribute2;
30886 l_new_ins_header_rec.attribute2 := l_hist_csr.new_attribute2;
30887 END IF;
30888
30889 IF NVL(l_hist_csr.old_attribute3,fnd_api.g_miss_char) = NVL(l_hist_csr.new_attribute3,fnd_api.g_miss_char)
30890 THEN
30891 l_old_ins_header_rec.attribute3 := NULL;
30892 l_new_ins_header_rec.attribute3 := NULL;
30893 ELSE
30894 l_old_ins_header_rec.attribute3 := l_hist_csr.old_attribute3;
30895 l_new_ins_header_rec.attribute3 := l_hist_csr.new_attribute3;
30896 END IF;
30897
30898 IF NVL(l_hist_csr.old_attribute4,fnd_api.g_miss_char) = NVL(l_hist_csr.new_attribute4,fnd_api.g_miss_char)
30899 THEN
30900 l_old_ins_header_rec.attribute4 := NULL;
30901 l_new_ins_header_rec.attribute4 := NULL;
30902 ELSE
30903 l_old_ins_header_rec.attribute4 := l_hist_csr.old_attribute4;
30904 l_new_ins_header_rec.attribute4 := l_hist_csr.new_attribute4;
30905 END IF;
30906
30907 IF NVL(l_hist_csr.old_attribute5,fnd_api.g_miss_char) = NVL(l_hist_csr.new_attribute5,fnd_api.g_miss_char)
30908 THEN
30909 l_old_ins_header_rec.attribute5 := NULL;
30910 l_new_ins_header_rec.attribute5 := NULL;
30911 ELSE
30912 l_old_ins_header_rec.attribute5 := l_hist_csr.old_attribute5;
30913 l_new_ins_header_rec.attribute5 := l_hist_csr.new_attribute5;
30914 END IF;
30915
30916 IF NVL(l_hist_csr.old_attribute6,fnd_api.g_miss_char) = NVL(l_hist_csr.new_attribute6,fnd_api.g_miss_char)
30917 THEN
30918 l_old_ins_header_rec.attribute6 := NULL;
30919 l_new_ins_header_rec.attribute6 := NULL;
30920 ELSE
30921 l_old_ins_header_rec.attribute6 := l_hist_csr.old_attribute6;
30922 l_new_ins_header_rec.attribute6 := l_hist_csr.new_attribute6;
30923 END IF;
30924
30925 IF NVL(l_hist_csr.old_attribute7,fnd_api.g_miss_char) = NVL(l_hist_csr.new_attribute7,fnd_api.g_miss_char)
30926 THEN
30927 l_old_ins_header_rec.attribute7 := NULL;
30928 l_new_ins_header_rec.attribute7 := NULL;
30929 ELSE
30930 l_old_ins_header_rec.attribute7 := l_hist_csr.old_attribute7;
30931 l_new_ins_header_rec.attribute7 := l_hist_csr.new_attribute7;
30932 END IF;
30933
30934 IF NVL(l_hist_csr.old_attribute8,fnd_api.g_miss_char) = NVL(l_hist_csr.new_attribute8,fnd_api.g_miss_char)
30935 THEN
30936 l_old_ins_header_rec.attribute8 := NULL;
30937 l_new_ins_header_rec.attribute8 := NULL;
30938 ELSE
30939 l_old_ins_header_rec.attribute8 := l_hist_csr.old_attribute8;
30940 l_new_ins_header_rec.attribute8 := l_hist_csr.new_attribute8;
30941 END IF;
30942
30943 IF NVL(l_hist_csr.old_attribute9,fnd_api.g_miss_char) = NVL(l_hist_csr.new_attribute9,fnd_api.g_miss_char)
30944 THEN
30945 l_old_ins_header_rec.attribute9 := NULL;
30946 l_new_ins_header_rec.attribute9 := NULL;
30947 ELSE
30948 l_old_ins_header_rec.attribute9 := l_hist_csr.old_attribute9;
30949 l_new_ins_header_rec.attribute9 := l_hist_csr.new_attribute9;
30950 END IF;
30951
30952 IF NVL(l_hist_csr.old_attribute10,fnd_api.g_miss_char) = NVL(l_hist_csr.new_attribute10,fnd_api.g_miss_char)
30953 THEN
30954 l_old_ins_header_rec.attribute10 := NULL;
30955 l_new_ins_header_rec.attribute10 := NULL;
30956 ELSE
30957 l_old_ins_header_rec.attribute10 := l_hist_csr.old_attribute10;
30958 l_new_ins_header_rec.attribute10 := l_hist_csr.new_attribute10;
30959 END IF;
30960
30961 IF NVL(l_hist_csr.old_attribute11,fnd_api.g_miss_char) = NVL(l_hist_csr.new_attribute11,fnd_api.g_miss_char)
30962 THEN
30963 l_old_ins_header_rec.attribute11 := NULL;
30964 l_new_ins_header_rec.attribute11 := NULL;
30965 ELSE
30966 l_old_ins_header_rec.attribute11 := l_hist_csr.old_attribute11;
30967 l_new_ins_header_rec.attribute11 := l_hist_csr.new_attribute11;
30968 END IF;
30969
30970 IF NVL(l_hist_csr.old_attribute12,fnd_api.g_miss_char) = NVL(l_hist_csr.new_attribute12,fnd_api.g_miss_char)
30971 THEN
30972 l_old_ins_header_rec.attribute12 := NULL;
30973 l_new_ins_header_rec.attribute12 := NULL;
30974 ELSE
30975 l_old_ins_header_rec.attribute12 := l_hist_csr.old_attribute12;
30976 l_new_ins_header_rec.attribute12 := l_hist_csr.new_attribute12;
30977 END IF;
30978
30979 IF NVL(l_hist_csr.old_attribute13,fnd_api.g_miss_char) = NVL(l_hist_csr.new_attribute13,fnd_api.g_miss_char)
30980 THEN
30981 l_old_ins_header_rec.attribute13 := NULL;
30982 l_new_ins_header_rec.attribute13 := NULL;
30983 ELSE
30984 l_old_ins_header_rec.attribute13 := l_hist_csr.old_attribute13;
30985 l_new_ins_header_rec.attribute13 := l_hist_csr.new_attribute13;
30986 END IF;
30987
30988 IF NVL(l_hist_csr.old_attribute14,fnd_api.g_miss_char) = NVL(l_hist_csr.new_attribute14,fnd_api.g_miss_char)
30989 THEN
30990 l_old_ins_header_rec.attribute14 := NULL;
30991 l_new_ins_header_rec.attribute14 := NULL;
30992 ELSE
30993 l_old_ins_header_rec.attribute14 := l_hist_csr.old_attribute14;
30994 l_new_ins_header_rec.attribute14 := l_hist_csr.new_attribute14;
30995 END IF;
30996
30997 IF NVL(l_hist_csr.old_attribute15,fnd_api.g_miss_char) = NVL(l_hist_csr.new_attribute15,fnd_api.g_miss_char)
30998 THEN
30999 l_old_ins_header_rec.attribute15 := NULL;
31000 l_new_ins_header_rec.attribute15 := NULL;
31001 ELSE
31002 l_old_ins_header_rec.attribute15 := l_hist_csr.old_attribute15;
31003 l_new_ins_header_rec.attribute15 := l_hist_csr.new_attribute15;
31004 END IF;
31005
31006 IF NVL(l_hist_csr.old_inst_loc_type_code,fnd_api.g_miss_char) = NVL(l_hist_csr.new_inst_loc_type_code,fnd_api.g_miss_char)
31007 THEN
31008 l_old_ins_header_rec.install_location_type_code := NULL;
31009 l_new_ins_header_rec.install_location_type_code := NULL;
31010 ELSE
31011 l_old_ins_header_rec.install_location_type_code := l_hist_csr.old_inst_loc_type_code;
31012 l_new_ins_header_rec.install_location_type_code := l_hist_csr.new_inst_loc_type_code;
31013 END IF;
31014
31015 IF NVL(l_hist_csr.old_inst_loc_id,fnd_api.g_miss_num) = NVL(l_hist_csr.new_inst_loc_id,fnd_api.g_miss_num)
31016 THEN
31017 l_old_ins_header_rec.install_location_id := NULL;
31018 l_new_ins_header_rec.install_location_id := NULL;
31019 ELSE
31020 l_old_ins_header_rec.install_location_id := l_hist_csr.old_inst_loc_id;
31021 l_new_ins_header_rec.install_location_id := l_hist_csr.new_inst_loc_id;
31022 l_old_ins_header_rec.install_location_type_code := l_hist_csr.old_inst_loc_type_code;
31023 l_new_ins_header_rec.install_location_type_code := l_hist_csr.new_inst_loc_type_code;
31024 END IF;
31025
31026 IF NVL(l_hist_csr.old_inst_usage_code,fnd_api.g_miss_char) = NVL(l_hist_csr.new_inst_usage_code,fnd_api.g_miss_char)
31027 THEN
31028 l_old_ins_header_rec.instance_usage_code := NULL;
31029 l_new_ins_header_rec.instance_usage_code := NULL;
31030 ELSE
31031 l_old_ins_header_rec.instance_usage_code := l_hist_csr.old_inst_usage_code;
31032 l_new_ins_header_rec.instance_usage_code := l_hist_csr.new_inst_usage_code;
31033 END IF;
31034
31035 -- Added by sguthiva for att enhancements
31036 IF NVL(l_hist_csr.old_config_inst_rev_num,fnd_api.g_miss_num) = NVL(l_hist_csr.new_config_inst_rev_num,fnd_api.g_miss_num)
31037 THEN
31038 l_old_ins_header_rec.config_inst_rev_num := NULL;
31039 l_new_ins_header_rec.config_inst_rev_num := NULL;
31040 ELSE
31041 l_old_ins_header_rec.config_inst_rev_num := l_hist_csr.old_config_inst_rev_num;
31042 l_new_ins_header_rec.config_inst_rev_num := l_hist_csr.new_config_inst_rev_num;
31043 END IF;
31044
31045 IF NVL(l_hist_csr.old_config_valid_status,fnd_api.g_miss_char) = NVL(l_hist_csr.new_config_valid_status,fnd_api.g_miss_char)
31046 THEN
31047 l_old_ins_header_rec.config_valid_status := NULL;
31048 l_new_ins_header_rec.config_valid_status := NULL;
31049 ELSE
31050 l_old_ins_header_rec.config_valid_status := l_hist_csr.old_config_valid_status;
31051 l_new_ins_header_rec.config_valid_status := l_hist_csr.new_config_valid_status;
31052 END IF;
31053
31054 IF NVL(l_hist_csr.old_instance_description,fnd_api.g_miss_char) = NVL(l_hist_csr.new_instance_description,fnd_api.g_miss_char)
31055 THEN
31056 l_old_ins_header_rec.instance_description := NULL;
31057 l_new_ins_header_rec.instance_description := NULL;
31058 ELSE
31059 l_old_ins_header_rec.instance_description := l_hist_csr.old_instance_description;
31060 l_new_ins_header_rec.instance_description := l_hist_csr.new_instance_description;
31061 END IF;
31062
31063 IF NVL(l_hist_csr.old_last_vld_organization_id,fnd_api.g_miss_num) = NVL(l_hist_csr.new_last_vld_organization_id,fnd_api.g_miss_num)
31064 THEN
31065 l_old_ins_header_rec.vld_organization_id := NULL;
31066 l_new_ins_header_rec.vld_organization_id := NULL;
31067 ELSE
31068 l_old_ins_header_rec.vld_organization_id := l_hist_csr.old_last_vld_organization_id;
31069 l_new_ins_header_rec.vld_organization_id := l_hist_csr.new_last_vld_organization_id;
31070 END IF;
31071 -- End of addition.
31072
31073 -- Addition of columns for FA Integration
31074 IF NVL(l_hist_csr.old_purchase_unit_price,fnd_api.g_miss_num) = NVL(l_hist_csr.new_purchase_unit_price,fnd_api.g_miss_num)
31075 THEN
31076 l_old_ins_header_rec.purchase_unit_price := NULL;
31077 l_new_ins_header_rec.purchase_unit_price := NULL;
31078 ELSE
31079 l_old_ins_header_rec.purchase_unit_price := l_hist_csr.old_purchase_unit_price;
31080 l_new_ins_header_rec.purchase_unit_price := l_hist_csr.new_purchase_unit_price;
31081 END IF;
31082
31083 IF NVL(l_hist_csr.old_purchase_currency_code,fnd_api.g_miss_char) = NVL(l_hist_csr.new_purchase_currency_code,fnd_api.g_miss_char)
31084 THEN
31085 l_old_ins_header_rec.purchase_currency_code := NULL;
31086 l_new_ins_header_rec.purchase_currency_code := NULL;
31087 ELSE
31088 l_old_ins_header_rec.purchase_currency_code := l_hist_csr.old_purchase_currency_code;
31089 l_new_ins_header_rec.purchase_currency_code := l_hist_csr.new_purchase_currency_code;
31090 END IF;
31091
31092 IF NVL(l_hist_csr.old_payables_unit_price,fnd_api.g_miss_num) = NVL(l_hist_csr.new_payables_unit_price,fnd_api.g_miss_num)
31093 THEN
31094 l_old_ins_header_rec.payables_unit_price := NULL;
31095 l_new_ins_header_rec.payables_unit_price := NULL;
31096 ELSE
31097 l_old_ins_header_rec.payables_unit_price := l_hist_csr.old_payables_unit_price;
31098 l_new_ins_header_rec.payables_unit_price := l_hist_csr.new_payables_unit_price;
31099 END IF;
31100
31101 IF NVL(l_hist_csr.old_payables_currency_code,fnd_api.g_miss_char) = NVL(l_hist_csr.new_payables_currency_code,fnd_api.g_miss_char)
31102 THEN
31103 l_old_ins_header_rec.payables_currency_code := NULL;
31104 l_new_ins_header_rec.payables_currency_code := NULL;
31105 ELSE
31106 l_old_ins_header_rec.payables_currency_code := l_hist_csr.old_payables_currency_code;
31107 l_new_ins_header_rec.payables_currency_code := l_hist_csr.new_payables_currency_code;
31108 END IF;
31109
31110 IF NVL(l_hist_csr.old_sales_unit_price,fnd_api.g_miss_num) = NVL(l_hist_csr.new_sales_unit_price,fnd_api.g_miss_num)
31111 THEN
31112 l_old_ins_header_rec.sales_unit_price := NULL;
31113 l_new_ins_header_rec.sales_unit_price := NULL;
31114 ELSE
31115 l_old_ins_header_rec.sales_unit_price := l_hist_csr.old_sales_unit_price;
31116 l_new_ins_header_rec.sales_unit_price := l_hist_csr.new_sales_unit_price;
31117 END IF;
31118
31119 IF NVL(l_hist_csr.old_sales_currency_code,fnd_api.g_miss_char) = NVL(l_hist_csr.new_sales_currency_code,fnd_api.g_miss_char)
31120 THEN
31121 l_old_ins_header_rec.sales_currency_code := NULL;
31122 l_new_ins_header_rec.sales_currency_code := NULL;
31123 ELSE
31124 l_old_ins_header_rec.sales_currency_code := l_hist_csr.old_sales_currency_code;
31125 l_new_ins_header_rec.sales_currency_code := l_hist_csr.new_sales_currency_code;
31126 END IF;
31127
31128 IF NVL(l_hist_csr.old_operational_status_code,fnd_api.g_miss_char) =
31129 NVL(l_hist_csr.new_operational_status_code,fnd_api.g_miss_char)
31130 THEN
31131 l_old_ins_header_rec.operational_status_code := NULL;
31132 l_new_ins_header_rec.operational_status_code := NULL;
31133 ELSE
31134 l_old_ins_header_rec.operational_status_code := l_hist_csr.old_operational_status_code;
31135 l_new_ins_header_rec.operational_status_code := l_hist_csr.new_operational_status_code;
31136 END IF;
31137 -- End addition of columns for FA Integration
31138 -- Addition for bug 2696607
31139 IF (l_new_ins_header_rec.install_location_id IS NOT NULL AND
31140 l_new_ins_header_rec.install_location_type_code IS NULL )
31141 OR (l_new_ins_header_rec.location_id IS NOT NULL AND
31142 l_new_ins_header_rec.location_type_code IS NULL )
31143 or (l_new_ins_header_rec.inv_organization_id IS NOT NULL AND
31144 l_old_ins_header_rec.inv_organization_id IS NOT NULL
31145 )
31146 THEN
31147 l_instance_rec.instance_id := l_hist_csr.instance_id;
31148 l_time_stamp := l_hist_csr.creation_date;
31149 csi_item_instance_pub.get_item_instance_details
31150 ( p_api_version => 1.0
31151 ,p_commit => fnd_api.g_false
31152 ,p_init_msg_list => fnd_api.g_false
31153 ,p_validation_level => fnd_api.g_valid_level_full
31154 ,p_instance_rec => l_instance_rec
31155 ,p_get_parties => fnd_api.g_false
31156 ,p_party_header_tbl => l_party_header_tbl
31157 ,p_get_accounts => fnd_api.g_false
31158 ,p_account_header_tbl => l_account_header_tbl
31159 ,p_get_org_assignments => fnd_api.g_false
31160 ,p_org_header_tbl => l_org_header_tbl
31161 ,p_get_pricing_attribs => fnd_api.g_false
31162 ,p_pricing_attrib_tbl => l_pricing_attrib_tbl
31163 ,p_get_ext_attribs => fnd_api.g_false
31164 ,p_ext_attrib_tbl => l_ext_attrib_tbl
31165 ,p_ext_attrib_def_tbl => l_ext_attrib_def_tbl
31166 ,p_get_asset_assignments => fnd_api.g_false
31167 ,p_asset_header_tbl => l_asset_header_tbl
31168 ,p_resolve_id_columns => fnd_api.g_false
31169 ,p_time_stamp => l_time_stamp
31170 ,x_return_status => x_return_status
31171 ,x_msg_count => x_msg_count
31172 ,x_msg_data => x_msg_data
31173 );
31174
31175 IF NOT(x_return_status = fnd_api.g_ret_sts_success) THEN
31176 RAISE fnd_api.g_exc_error;
31177 END IF;
31178
31179 IF (l_new_ins_header_rec.install_location_id IS NOT NULL AND
31180 l_new_ins_header_rec.install_location_type_code IS NULL )
31181 THEN
31182 l_old_ins_header_rec.install_location_type_code:=l_instance_rec.install_location_type_code;
31183 l_new_ins_header_rec.install_location_type_code:=l_instance_rec.install_location_type_code;
31184 END IF;
31185
31186 IF (l_new_ins_header_rec.location_id IS NOT NULL AND
31187 l_new_ins_header_rec.location_type_code IS NULL )
31188 THEN
31189 l_old_ins_header_rec.location_type_code:=l_instance_rec.location_type_code;
31190 l_new_ins_header_rec.location_type_code:=l_instance_rec.location_type_code;
31191 END IF;
31192
31193 IF (l_new_ins_header_rec.inv_organization_id IS NOT NULL AND
31194 l_old_ins_header_rec.inv_organization_id IS NOT NULL )
31195 THEN
31196 l_old_ins_header_rec.location_type_code:=l_instance_rec.location_type_code;
31197 l_new_ins_header_rec.location_type_code:=l_instance_rec.location_type_code;
31198 END IF;
31199
31200
31201 END IF;
31202 -- End addition for bug 2696607
31203
31204 --start of code for bug 4754569--
31205 IF l_old_ins_header_rec.criticality= fnd_api.g_miss_char
31206 THEN
31207 l_old_ins_header_rec.criticality := NULL;
31208 END IF;
31209
31210 IF l_new_ins_header_rec.criticality= fnd_api.g_miss_char
31211 THEN
31212 l_new_ins_header_rec.criticality := NULL;
31213 END IF;
31214
31215 IF l_old_ins_header_rec.category_name= fnd_api.g_miss_char
31216 THEN
31217 l_old_ins_header_rec.category_name := NULL;
31218 END IF;
31219
31220 IF l_new_ins_header_rec.category_name= fnd_api.g_miss_char
31221 THEN
31222 l_new_ins_header_rec.category_name := NULL;
31223 END IF;
31224
31225 --included for bug 5211068
31226 IF l_old_ins_header_rec.maintainable = fnd_api.g_miss_char
31227 THEN
31228 l_old_ins_header_rec.maintainable := NULL;
31229 END IF;
31230
31231 IF l_new_ins_header_rec.maintainable = fnd_api.g_miss_char
31232 THEN
31233 l_new_ins_header_rec.maintainable := NULL;
31234 END IF;
31235
31236 IF NVL(l_hist_csr.old_maintainable_flag,fnd_api.g_miss_char) = NVL(l_hist_csr.new_maintainable_flag,fnd_api.g_miss_char)
31237 THEN
31238 l_old_ins_header_rec.maintainable_flag := NULL;
31239 l_new_ins_header_rec.maintainable_flag := NULL;
31240 ELSE
31241 l_old_ins_header_rec.maintainable_flag := l_hist_csr.old_maintainable_flag;
31242 l_new_ins_header_rec.maintainable_flag := l_hist_csr.new_maintainable_flag;
31243 END IF;
31244 --end of fix 5211068
31245
31246
31247
31248 IF NVL(l_hist_csr.old_asset_criticality_code,fnd_api.g_miss_char) = NVL(l_hist_csr.new_asset_criticality_code,fnd_api.g_miss_char)
31249 THEN
31250 l_old_ins_header_rec.asset_criticality_code := NULL;
31251 l_new_ins_header_rec.asset_criticality_code := NULL;
31252 ELSE
31253 l_old_ins_header_rec.asset_criticality_code := l_hist_csr.old_asset_criticality_code;
31254 l_new_ins_header_rec.asset_criticality_code := l_hist_csr.new_asset_criticality_code;
31255 END IF;
31256
31257 IF NVL(l_hist_csr.old_category_id,fnd_api.g_miss_num) = NVL(l_hist_csr.new_category_id,fnd_api.g_miss_num)
31258 THEN
31259 l_old_ins_header_rec.category_id := NULL;
31260 l_new_ins_header_rec.category_id := NULL;
31261 ELSE
31262 l_old_ins_header_rec.category_id := l_hist_csr.old_category_id;
31263 l_new_ins_header_rec.category_id := l_hist_csr.new_category_id;
31264 END IF;
31265
31266
31267 --end of code for bug 4754569--
31268
31269 l_old_ins_header_tbl(1):=l_old_ins_header_rec;
31270 csi_item_instance_pvt.Resolve_id_columns
31271 (p_instance_header_tbl => l_old_ins_header_tbl);
31272 l_old_ins_header_rec:=l_old_ins_header_tbl(1);
31273
31274
31275 l_new_ins_header_tbl(1):=l_new_ins_header_rec;
31276 csi_item_instance_pvt.Resolve_id_columns
31277 (p_instance_header_tbl => l_new_ins_header_tbl);
31278 l_new_ins_header_rec:=l_new_ins_header_tbl(1);
31279
31280
31281 /*
31282 IF NVL(l_old_ins_header_rec.location_type_code,fnd_api.g_miss_char) = NVL(l_new_ins_header_rec.location_type_code,fnd_api.g_miss_char)
31283 THEN
31284 l_old_ins_header_rec.location_type_code := NULL;
31285 l_new_ins_header_rec.location_type_code := NULL;
31286 END IF;
31287
31288 IF NVL(l_old_ins_header_rec.install_location_type_code,fnd_api.g_miss_char) = NVL(l_new_ins_header_rec.install_location_type_code,fnd_api.g_miss_char)
31289 THEN
31290 l_old_ins_header_rec.install_location_type_code := NULL;
31291 l_new_ins_header_rec.install_location_type_code := NULL;
31292 END IF;
31293 */
31294
31295 -- Added for bug 2763557
31296 IF l_old_ins_header_rec.in_transit_order_line_number = fnd_api.g_miss_num
31297 THEN
31298 l_old_ins_header_rec.in_transit_order_line_number := NULL;
31299 END IF;
31300
31301 IF l_new_ins_header_rec.in_transit_order_line_number = fnd_api.g_miss_num
31302 THEN
31303 l_new_ins_header_rec.in_transit_order_line_number := NULL;
31304 END IF;
31305 -- End addition for bug 2763557
31306
31307 IF l_old_ins_header_rec.in_transit_order_number = fnd_api.g_miss_num
31308 THEN
31309 l_old_ins_header_rec.in_transit_order_number := NULL;
31310 END IF;
31311
31312 IF l_new_ins_header_rec.in_transit_order_number = fnd_api.g_miss_num
31313 THEN
31314 l_new_ins_header_rec.in_transit_order_number := NULL;
31315 END IF;
31316
31317
31318 IF l_old_ins_header_rec.sales_order_number = fnd_api.g_miss_num
31319 THEN
31320 l_old_ins_header_rec.sales_order_number := NULL;
31321 END IF;
31322
31323 IF l_new_ins_header_rec.sales_order_number = fnd_api.g_miss_num
31324 THEN
31325 l_new_ins_header_rec.sales_order_number := NULL;
31326 END IF;
31327
31328 IF l_old_ins_header_rec.sales_order_line_number = fnd_api.g_miss_num
31329 THEN
31330 l_old_ins_header_rec.sales_order_line_number := NULL;
31331 END IF;
31332
31333 IF l_new_ins_header_rec.sales_order_line_number = fnd_api.g_miss_num
31334 THEN
31335 l_new_ins_header_rec.sales_order_line_number := NULL;
31336 END IF;
31337
31338
31339 IF l_old_ins_header_rec.sales_order_date = fnd_api.g_miss_date
31340 THEN
31341 l_old_ins_header_rec.sales_order_date := NULL;
31342 END IF;
31343
31344 IF l_new_ins_header_rec.sales_order_date = fnd_api.g_miss_date
31345 THEN
31346 l_new_ins_header_rec.sales_order_date := NULL;
31347 END IF;
31348
31349
31350 -- Added for tar 14834588.600
31351 IF l_old_ins_header_rec.current_loc_address1= fnd_api.g_miss_char
31352 THEN
31353 l_old_ins_header_rec.current_loc_address1 := NULL;
31354 END IF;
31355
31356 IF l_new_ins_header_rec.current_loc_address1= fnd_api.g_miss_char
31357 THEN
31358 l_new_ins_header_rec.current_loc_address1 := NULL;
31359 END IF;
31360
31361 IF l_old_ins_header_rec.current_loc_address2= fnd_api.g_miss_char
31362 THEN
31363 l_old_ins_header_rec.current_loc_address2 := NULL;
31364 END IF;
31365
31366 IF l_new_ins_header_rec.current_loc_address2= fnd_api.g_miss_char
31367 THEN
31368 l_new_ins_header_rec.current_loc_address2 := NULL;
31369 END IF;
31370
31371 IF l_old_ins_header_rec.current_loc_address3= fnd_api.g_miss_char
31372 THEN
31373 l_old_ins_header_rec.current_loc_address3 := NULL;
31374 END IF;
31375
31376 IF l_new_ins_header_rec.current_loc_address3= fnd_api.g_miss_char
31377 THEN
31378 l_new_ins_header_rec.current_loc_address3 := NULL;
31379 END IF;
31380
31381 IF l_old_ins_header_rec.current_loc_address4= fnd_api.g_miss_char
31382 THEN
31383 l_old_ins_header_rec.current_loc_address4 := NULL;
31384 END IF;
31385
31386 IF l_new_ins_header_rec.current_loc_address4= fnd_api.g_miss_char
31387 THEN
31388 l_new_ins_header_rec.current_loc_address4 := NULL;
31389 END IF;
31390
31391 IF l_old_ins_header_rec.current_loc_city= fnd_api.g_miss_char
31392 THEN
31393 l_old_ins_header_rec.current_loc_city := NULL;
31394 END IF;
31395
31396 IF l_new_ins_header_rec.current_loc_city= fnd_api.g_miss_char
31397 THEN
31398 l_new_ins_header_rec.current_loc_city := NULL;
31399 END IF;
31400
31401 IF l_old_ins_header_rec.current_loc_state= fnd_api.g_miss_char
31402 THEN
31403 l_old_ins_header_rec.current_loc_state := NULL;
31404 END IF;
31405
31406 IF l_new_ins_header_rec.current_loc_state= fnd_api.g_miss_char
31407 THEN
31408 l_new_ins_header_rec.current_loc_state := NULL;
31409 END IF;
31410
31411 IF l_old_ins_header_rec.current_loc_postal_code= fnd_api.g_miss_char
31412 THEN
31413 l_old_ins_header_rec.current_loc_postal_code := NULL;
31414 END IF;
31415
31416 IF l_new_ins_header_rec.current_loc_postal_code= fnd_api.g_miss_char
31417 THEN
31418 l_new_ins_header_rec.current_loc_postal_code := NULL;
31419 END IF;
31420
31421 IF l_old_ins_header_rec.current_loc_country= fnd_api.g_miss_char
31422 THEN
31423 l_old_ins_header_rec.current_loc_country := NULL;
31424 END IF;
31425
31426 IF l_new_ins_header_rec.current_loc_country= fnd_api.g_miss_char
31427 THEN
31428 l_new_ins_header_rec.current_loc_country := NULL;
31429 END IF;
31430
31431 IF l_old_ins_header_rec.install_loc_address1= fnd_api.g_miss_char
31432 THEN
31433 l_old_ins_header_rec.install_loc_address1 := NULL;
31434 END IF;
31435
31436 IF l_new_ins_header_rec.install_loc_address1= fnd_api.g_miss_char
31437 THEN
31438 l_new_ins_header_rec.install_loc_address1 := NULL;
31439 END IF;
31440
31441 IF l_old_ins_header_rec.install_loc_address2= fnd_api.g_miss_char
31442 THEN
31443 l_old_ins_header_rec.install_loc_address2 := NULL;
31444 END IF;
31445
31446 IF l_new_ins_header_rec.install_loc_address2= fnd_api.g_miss_char
31447 THEN
31448 l_new_ins_header_rec.install_loc_address2 := NULL;
31449 END IF;
31450
31451 IF l_old_ins_header_rec.install_loc_address3= fnd_api.g_miss_char
31452 THEN
31453 l_old_ins_header_rec.install_loc_address3 := NULL;
31454 END IF;
31455
31456 IF l_new_ins_header_rec.install_loc_address3= fnd_api.g_miss_char
31457 THEN
31458 l_new_ins_header_rec.install_loc_address3 := NULL;
31459 END IF;
31460
31461 IF l_old_ins_header_rec.install_loc_address4= fnd_api.g_miss_char
31462 THEN
31463 l_old_ins_header_rec.install_loc_address4 := NULL;
31464 END IF;
31465
31466 IF l_new_ins_header_rec.install_loc_address4= fnd_api.g_miss_char
31467 THEN
31468 l_new_ins_header_rec.install_loc_address4 := NULL;
31469 END IF;
31470
31471 IF l_old_ins_header_rec.install_loc_city= fnd_api.g_miss_char
31472 THEN
31473 l_old_ins_header_rec.install_loc_city := NULL;
31474 END IF;
31475
31476 IF l_new_ins_header_rec.install_loc_city= fnd_api.g_miss_char
31477 THEN
31478 l_new_ins_header_rec.install_loc_city := NULL;
31479 END IF;
31480
31481 IF l_old_ins_header_rec.install_loc_state= fnd_api.g_miss_char
31482 THEN
31483 l_old_ins_header_rec.install_loc_state := NULL;
31484 END IF;
31485
31486 IF l_new_ins_header_rec.install_loc_state= fnd_api.g_miss_char
31487 THEN
31488 l_new_ins_header_rec.install_loc_state := NULL;
31489 END IF;
31490
31491 IF l_old_ins_header_rec.install_loc_postal_code= fnd_api.g_miss_char
31492 THEN
31493 l_old_ins_header_rec.install_loc_postal_code := NULL;
31494 END IF;
31495
31496 IF l_new_ins_header_rec.install_loc_postal_code= fnd_api.g_miss_char
31497 THEN
31498 l_new_ins_header_rec.install_loc_postal_code := NULL;
31499 END IF;
31500
31501 IF l_old_ins_header_rec.install_loc_country= fnd_api.g_miss_char
31502 THEN
31503 l_old_ins_header_rec.install_loc_country := NULL;
31504 END IF;
31505
31506 IF l_new_ins_header_rec.install_loc_country= fnd_api.g_miss_char
31507 THEN
31508 l_new_ins_header_rec.install_loc_country := NULL;
31509 END IF;
31510
31511 IF l_old_ins_header_rec.unit_of_measure_name= fnd_api.g_miss_char
31512 THEN
31513 l_old_ins_header_rec.unit_of_measure_name := NULL;
31514 END IF;
31515
31516 IF l_new_ins_header_rec.unit_of_measure_name= fnd_api.g_miss_char
31517 THEN
31518 l_new_ins_header_rec.unit_of_measure_name := NULL;
31519 END IF;
31520
31521 IF l_old_ins_header_rec.accounting_class= fnd_api.g_miss_char
31522 THEN
31523 l_old_ins_header_rec.accounting_class := NULL;
31524 END IF;
31525
31526 IF l_new_ins_header_rec.accounting_class= fnd_api.g_miss_char
31527 THEN
31528 l_new_ins_header_rec.accounting_class := NULL;
31529 END IF;
31530
31531 IF l_old_ins_header_rec.instance_condition= fnd_api.g_miss_char
31532 THEN
31533 l_old_ins_header_rec.instance_condition := NULL;
31534 END IF;
31535
31536 IF l_new_ins_header_rec.instance_condition= fnd_api.g_miss_char
31537 THEN
31538 l_new_ins_header_rec.instance_condition := NULL;
31539 END IF;
31540
31541 IF l_old_ins_header_rec.instance_status= fnd_api.g_miss_char
31542 THEN
31543 l_old_ins_header_rec.instance_status := NULL;
31544 END IF;
31545
31546 IF l_new_ins_header_rec.instance_status= fnd_api.g_miss_char
31547 THEN
31548 l_new_ins_header_rec.instance_status := NULL;
31549 END IF;
31550
31551 IF l_old_ins_header_rec.system_name= fnd_api.g_miss_char
31552 THEN
31553 l_old_ins_header_rec.system_name := NULL;
31554 END IF;
31555
31556 IF l_new_ins_header_rec.system_name= fnd_api.g_miss_char
31557 THEN
31558 l_new_ins_header_rec.system_name := NULL;
31559 END IF;
31560
31561 IF l_old_ins_header_rec.instance_type_name= fnd_api.g_miss_char
31562 THEN
31563 l_old_ins_header_rec.instance_type_name := NULL;
31564 END IF;
31565
31566 IF l_new_ins_header_rec.instance_type_name= fnd_api.g_miss_char
31567 THEN
31568 l_new_ins_header_rec.instance_type_name := NULL;
31569 END IF;
31570
31571 IF l_old_ins_header_rec.inv_organization_name= fnd_api.g_miss_char
31572 THEN
31573 l_old_ins_header_rec.inv_organization_name := NULL;
31574 END IF;
31575
31576 IF l_new_ins_header_rec.inv_organization_name= fnd_api.g_miss_char
31577 THEN
31578 l_new_ins_header_rec.inv_organization_name := NULL;
31579 END IF;
31580
31581 IF l_old_ins_header_rec.pa_project_name= fnd_api.g_miss_char
31582 THEN
31583 l_old_ins_header_rec.pa_project_name := NULL;
31584 END IF;
31585
31586 IF l_new_ins_header_rec.pa_project_name= fnd_api.g_miss_char
31587 THEN
31588 l_new_ins_header_rec.pa_project_name := NULL;
31589 END IF;
31590
31591 IF l_old_ins_header_rec.pa_project_number= fnd_api.g_miss_char
31592 THEN
31593 l_old_ins_header_rec.pa_project_number := NULL;
31594 END IF;
31595
31596 IF l_new_ins_header_rec.pa_project_number= fnd_api.g_miss_char
31597 THEN
31598 l_new_ins_header_rec.pa_project_number := NULL;
31599 END IF;
31600
31601 IF l_old_ins_header_rec.pa_task_name= fnd_api.g_miss_char
31602 THEN
31603 l_old_ins_header_rec.pa_task_name := NULL;
31604 END IF;
31605
31606 IF l_new_ins_header_rec.pa_task_name= fnd_api.g_miss_char
31607 THEN
31608 l_new_ins_header_rec.pa_task_name := NULL;
31609 END IF;
31610
31611 IF l_old_ins_header_rec.pa_task_number= fnd_api.g_miss_char
31612 THEN
31613 l_old_ins_header_rec.pa_task_number := NULL;
31614 END IF;
31615
31616 IF l_new_ins_header_rec.pa_task_number= fnd_api.g_miss_char
31617 THEN
31618 l_new_ins_header_rec.pa_task_number := NULL;
31619 END IF;
31620
31621 IF l_old_ins_header_rec.wip_entity_name= fnd_api.g_miss_char
31622 THEN
31623 l_old_ins_header_rec.wip_entity_name := NULL;
31624 END IF;
31625
31626 IF l_new_ins_header_rec.wip_entity_name= fnd_api.g_miss_char
31627 THEN
31628 l_new_ins_header_rec.wip_entity_name := NULL;
31629 END IF;
31630
31631 IF l_old_ins_header_rec.purchase_order_number= fnd_api.g_miss_char
31632 THEN
31633 l_old_ins_header_rec.purchase_order_number := NULL;
31634 END IF;
31635
31636 IF l_new_ins_header_rec.purchase_order_number= fnd_api.g_miss_char
31637 THEN
31638 l_new_ins_header_rec.purchase_order_number := NULL;
31639 END IF;
31640
31641 IF l_old_ins_header_rec.instance_usage_name= fnd_api.g_miss_char
31642 THEN
31643 l_old_ins_header_rec.instance_usage_name := NULL;
31644 END IF;
31645
31646 IF l_new_ins_header_rec.instance_usage_name= fnd_api.g_miss_char
31647 THEN
31648 l_new_ins_header_rec.instance_usage_name := NULL;
31649 END IF;
31650
31651 IF l_old_ins_header_rec.inv_locator_name= fnd_api.g_miss_char
31652 THEN
31653 l_old_ins_header_rec.inv_locator_name := NULL;
31654 END IF;
31655
31656 IF l_new_ins_header_rec.inv_locator_name= fnd_api.g_miss_char
31657 THEN
31658 l_new_ins_header_rec.inv_locator_name := NULL;
31659 END IF;
31660
31661 IF (l_old_ins_header_rec.current_loc_number= fnd_api.g_miss_char)
31662 OR (nvl(l_old_ins_header_rec.location_type_code,'$$$$') <> 'HZ_PARTY_SITES')
31663 THEN
31664 l_old_ins_header_rec.current_loc_number := NULL;
31665 END IF;
31666
31667 IF (l_new_ins_header_rec.current_loc_number= fnd_api.g_miss_char)
31668 OR (nvl(l_new_ins_header_rec.location_type_code, '$$$$') <> 'HZ_PARTY_SITES')
31669 THEN
31670 l_new_ins_header_rec.current_loc_number := NULL;
31671 END IF;
31672
31673 IF (l_old_ins_header_rec.install_loc_number= fnd_api.g_miss_char)
31674 OR (nvl(l_old_ins_header_rec.install_location_type_code, '$$$$') <> 'HZ_PARTY_SITES')
31675 THEN
31676 l_old_ins_header_rec.install_loc_number := NULL;
31677 END IF;
31678
31679 IF (l_new_ins_header_rec.install_loc_number= fnd_api.g_miss_char)
31680 OR (nvl(l_new_ins_header_rec.install_location_type_code, '$$$$') <> 'HZ_PARTY_SITES')
31681 THEN
31682 l_new_ins_header_rec.install_loc_number := NULL;
31683 END IF;
31684 -- End of Addition for tar 14834588.600
31685
31686 --Changes for bug 9177957
31687 IF l_old_ins_header_rec.INVENTORY_ITEM_NAME= fnd_api.g_miss_char
31688 THEN
31689 l_old_ins_header_rec.INVENTORY_ITEM_NAME := NULL;
31690 END IF;
31691
31692 IF l_new_ins_header_rec.INVENTORY_ITEM_NAME= fnd_api.g_miss_char
31693 THEN
31694 l_new_ins_header_rec.INVENTORY_ITEM_NAME := NULL;
31695 END IF;
31696 --End of Changes for bug 9177957
31697
31698 IF NVL(l_old_ins_header_rec.location_type_code,fnd_api.g_miss_char) = NVL(l_new_ins_header_rec.location_type_code,fnd_api.g_miss_char)
31699 THEN
31700 l_old_ins_header_rec.location_type_code := NULL;
31701 l_new_ins_header_rec.location_type_code := NULL;
31702 END IF;
31703
31704 IF NVL(l_old_ins_header_rec.install_location_type_code,fnd_api.g_miss_char) = NVL(l_new_ins_header_rec.install_location_type_code,fnd_api.g_miss_char)
31705 THEN
31706 l_old_ins_header_rec.install_location_type_code := NULL;
31707 l_new_ins_header_rec.install_location_type_code := NULL;
31708 END IF;
31709
31710 --start of code for eam integration columns--
31711 IF NVL(l_hist_csr.old_network_asset_flag,fnd_api.g_miss_char) = NVL(l_hist_csr.new_network_asset_flag,fnd_api.g_miss_char)
31712 THEN
31713 l_old_ins_header_rec.network_asset_flag := NULL;
31714 l_new_ins_header_rec.network_asset_flag := NULL;
31715 ELSE
31716 l_old_ins_header_rec.network_asset_flag := l_hist_csr.old_network_asset_flag;
31717 l_new_ins_header_rec.network_asset_flag := l_hist_csr.new_network_asset_flag;
31718 END IF;
31719
31720 IF NVL(l_hist_csr.old_maintainable_flag,fnd_api.g_miss_char) = NVL(l_hist_csr.new_maintainable_flag,fnd_api.g_miss_char)
31721 THEN
31722 l_old_ins_header_rec.maintainable_flag := NULL;
31723 l_new_ins_header_rec.maintainable_flag := NULL;
31724 ELSE
31725 l_old_ins_header_rec.maintainable_flag := l_hist_csr.old_maintainable_flag;
31726 l_new_ins_header_rec.maintainable_flag := l_hist_csr.new_maintainable_flag;
31727 END IF;
31728
31729 IF NVL(l_hist_csr.old_pn_location_id,fnd_api.g_miss_num) = NVL(l_hist_csr.new_pn_location_id,fnd_api.g_miss_num)
31730 THEN
31731 l_old_ins_header_rec.pn_location_id := NULL;
31732 l_new_ins_header_rec.pn_location_id := NULL;
31733 ELSE
31734 l_old_ins_header_rec.pn_location_id := l_hist_csr.old_pn_location_id;
31735 l_new_ins_header_rec.pn_location_id := l_hist_csr.new_pn_location_id;
31736 END IF;
31737
31738 IF NVL(l_hist_csr.old_asset_criticality_code,fnd_api.g_miss_char) = NVL(l_hist_csr.new_asset_criticality_code,fnd_api.g_miss_char)
31739 THEN
31740 l_old_ins_header_rec.asset_criticality_code := NULL;
31741 l_new_ins_header_rec.asset_criticality_code := NULL;
31742 ELSE
31743 l_old_ins_header_rec.asset_criticality_code := l_hist_csr.old_asset_criticality_code;
31744 l_new_ins_header_rec.asset_criticality_code := l_hist_csr.new_asset_criticality_code;
31745 END IF;
31746
31747 IF NVL(l_hist_csr.old_category_id,fnd_api.g_miss_num) = NVL(l_hist_csr.new_category_id,fnd_api.g_miss_num)
31748 THEN
31749 l_old_ins_header_rec.category_id := NULL;
31750 l_new_ins_header_rec.category_id := NULL;
31751 ELSE
31752 l_old_ins_header_rec.category_id := l_hist_csr.old_category_id;
31753 l_new_ins_header_rec.category_id := l_hist_csr.new_category_id;
31754 END IF;
31755
31756
31757 IF NVL(l_hist_csr.old_equipment_gen_object_id,fnd_api.g_miss_num) = NVL(l_hist_csr.new_equipment_gen_object_id,fnd_api.g_miss_num)
31758 THEN
31759 l_old_ins_header_rec.equipment_gen_object_id := NULL;
31760 l_new_ins_header_rec.equipment_gen_object_id := NULL;
31761 ELSE
31762 l_old_ins_header_rec.equipment_gen_object_id := l_hist_csr.old_equipment_gen_object_id;
31763 l_new_ins_header_rec.equipment_gen_object_id := l_hist_csr.new_equipment_gen_object_id;
31764 END IF;
31765
31766 IF NVL(l_hist_csr.old_instantiation_flag,fnd_api.g_miss_char) = NVL(l_hist_csr.new_instantiation_flag,fnd_api.g_miss_char)
31767 THEN
31768 l_old_ins_header_rec.instantiation_flag := NULL;
31769 l_new_ins_header_rec.instantiation_flag := NULL;
31770 ELSE
31771 l_old_ins_header_rec.instantiation_flag := l_hist_csr.old_instantiation_flag;
31772 l_new_ins_header_rec.instantiation_flag := l_hist_csr.new_instantiation_flag;
31773 END IF;
31774
31775 IF NVL(l_hist_csr.old_linear_location_id,fnd_api.g_miss_num) = NVL(l_hist_csr.new_linear_location_id,fnd_api.g_miss_num)
31776 THEN
31777 l_old_ins_header_rec.linear_location_id := NULL;
31778 l_new_ins_header_rec.linear_location_id := NULL;
31779 ELSE
31780 l_old_ins_header_rec.linear_location_id := l_hist_csr.old_linear_location_id;
31781 l_new_ins_header_rec.linear_location_id := l_hist_csr.new_linear_location_id;
31782 END IF;
31783
31784 IF NVL(l_hist_csr.old_operational_log_flag,fnd_api.g_miss_char) = NVL(l_hist_csr.new_operational_log_flag,fnd_api.g_miss_char)
31785 THEN
31786 l_old_ins_header_rec.operational_log_flag := NULL;
31787 l_new_ins_header_rec.operational_log_flag := NULL;
31788 ELSE
31789 l_old_ins_header_rec.operational_log_flag := l_hist_csr.old_operational_log_flag;
31790 l_new_ins_header_rec.operational_log_flag := l_hist_csr.new_operational_log_flag;
31791 END IF;
31792
31793 IF NVL(l_hist_csr.old_checkin_status,fnd_api.g_miss_num) = NVL(l_hist_csr.new_checkin_status,fnd_api.g_miss_num)
31794 THEN
31795 l_old_ins_header_rec.checkin_status := NULL;
31796 l_new_ins_header_rec.checkin_status := NULL;
31797 ELSE
31798 l_old_ins_header_rec.checkin_status := l_hist_csr.old_checkin_status;
31799 l_new_ins_header_rec.checkin_status := l_hist_csr.new_checkin_status;
31800 END IF;
31801
31802 IF NVL(l_hist_csr.old_supplier_warranty_exp_date,fnd_api.g_miss_date) = NVL(l_hist_csr.new_supplier_warranty_exp_date,fnd_api.g_miss_date)
31803 THEN
31804 l_old_ins_header_rec.supplier_warranty_exp_date := NULL;
31805 l_new_ins_header_rec.supplier_warranty_exp_date := NULL;
31806 ELSE
31807 l_old_ins_header_rec.supplier_warranty_exp_date := l_hist_csr.old_supplier_warranty_exp_date;
31808 l_new_ins_header_rec.supplier_warranty_exp_date := l_hist_csr.new_supplier_warranty_exp_date;
31809 END IF;
31810
31811
31812 IF NVL(l_hist_csr.old_attribute16,fnd_api.g_miss_char) = NVL(l_hist_csr.new_attribute16,fnd_api.g_miss_char)
31813 THEN
31814 l_old_ins_header_rec.attribute16 := NULL;
31815 l_new_ins_header_rec.attribute16 := NULL;
31816 ELSE
31817 l_old_ins_header_rec.attribute16 := l_hist_csr.old_attribute16;
31818 l_new_ins_header_rec.attribute16 := l_hist_csr.new_attribute16;
31819 END IF;
31820
31821 IF NVL(l_hist_csr.old_attribute17,fnd_api.g_miss_char) = NVL(l_hist_csr.new_attribute17,fnd_api.g_miss_char)
31822 THEN
31823 l_old_ins_header_rec.attribute17 := NULL;
31824 l_new_ins_header_rec.attribute17 := NULL;
31825 ELSE
31826 l_old_ins_header_rec.attribute17 := l_hist_csr.old_attribute17;
31827 l_new_ins_header_rec.attribute17 := l_hist_csr.new_attribute17;
31828 END IF;
31829
31830 IF NVL(l_hist_csr.old_attribute18,fnd_api.g_miss_char) = NVL(l_hist_csr.new_attribute18,fnd_api.g_miss_char)
31831 THEN
31832 l_old_ins_header_rec.attribute18 := NULL;
31833 l_new_ins_header_rec.attribute18 := NULL;
31834 ELSE
31835 l_old_ins_header_rec.attribute18 := l_hist_csr.old_attribute18;
31836 l_new_ins_header_rec.attribute18 := l_hist_csr.new_attribute18;
31837 END IF;
31838
31839 IF NVL(l_hist_csr.old_attribute19,fnd_api.g_miss_char) = NVL(l_hist_csr.new_attribute19,fnd_api.g_miss_char)
31840 THEN
31841 l_old_ins_header_rec.attribute19 := NULL;
31842 l_new_ins_header_rec.attribute19 := NULL;
31843 ELSE
31844 l_old_ins_header_rec.attribute19 := l_hist_csr.old_attribute19;
31845 l_new_ins_header_rec.attribute19 := l_hist_csr.new_attribute19;
31846 END IF;
31847
31848 IF NVL(l_hist_csr.old_attribute20,fnd_api.g_miss_char) = NVL(l_hist_csr.new_attribute20,fnd_api.g_miss_char)
31849 THEN
31850 l_old_ins_header_rec.attribute20 := NULL;
31851 l_new_ins_header_rec.attribute20 := NULL;
31852 ELSE
31853 l_old_ins_header_rec.attribute20 := l_hist_csr.old_attribute20;
31854 l_new_ins_header_rec.attribute20 := l_hist_csr.new_attribute20;
31855 END IF;
31856
31857 IF NVL(l_hist_csr.old_attribute21,fnd_api.g_miss_char) = NVL(l_hist_csr.new_attribute21,fnd_api.g_miss_char)
31858 THEN
31859 l_old_ins_header_rec.attribute21 := NULL;
31860 l_new_ins_header_rec.attribute21 := NULL;
31861 ELSE
31862 l_old_ins_header_rec.attribute21 := l_hist_csr.old_attribute21;
31863 l_new_ins_header_rec.attribute21 := l_hist_csr.new_attribute21;
31864 END IF;
31865
31866 IF NVL(l_hist_csr.old_attribute22,fnd_api.g_miss_char) = NVL(l_hist_csr.new_attribute22,fnd_api.g_miss_char)
31867 THEN
31868 l_old_ins_header_rec.attribute22 := NULL;
31869 l_new_ins_header_rec.attribute22 := NULL;
31870 ELSE
31871 l_old_ins_header_rec.attribute22 := l_hist_csr.old_attribute22;
31872 l_new_ins_header_rec.attribute22 := l_hist_csr.new_attribute22;
31873 END IF;
31874
31875 IF NVL(l_hist_csr.old_attribute23,fnd_api.g_miss_char) = NVL(l_hist_csr.new_attribute23,fnd_api.g_miss_char)
31876 THEN
31877 l_old_ins_header_rec.attribute23 := NULL;
31878 l_new_ins_header_rec.attribute23 := NULL;
31879 ELSE
31880 l_old_ins_header_rec.attribute23 := l_hist_csr.old_attribute23;
31881 l_new_ins_header_rec.attribute23 := l_hist_csr.new_attribute23;
31882 END IF;
31883
31884 IF NVL(l_hist_csr.old_attribute24,fnd_api.g_miss_char) = NVL(l_hist_csr.new_attribute24,fnd_api.g_miss_char)
31885 THEN
31886 l_old_ins_header_rec.attribute24 := NULL;
31887 l_new_ins_header_rec.attribute24 := NULL;
31888 ELSE
31889 l_old_ins_header_rec.attribute24 := l_hist_csr.old_attribute24;
31890 l_new_ins_header_rec.attribute24 := l_hist_csr.new_attribute24;
31891 END IF;
31892
31893 IF NVL(l_hist_csr.old_attribute25,fnd_api.g_miss_char) = NVL(l_hist_csr.new_attribute25,fnd_api.g_miss_char)
31894 THEN
31895 l_old_ins_header_rec.attribute25 := NULL;
31896 l_new_ins_header_rec.attribute25 := NULL;
31897 ELSE
31898 l_old_ins_header_rec.attribute25 := l_hist_csr.old_attribute25;
31899 l_new_ins_header_rec.attribute25 := l_hist_csr.new_attribute25;
31900 END IF;
31901
31902 IF NVL(l_hist_csr.old_attribute26,fnd_api.g_miss_char) = NVL(l_hist_csr.new_attribute26,fnd_api.g_miss_char)
31903 THEN
31904 l_old_ins_header_rec.attribute26 := NULL;
31905 l_new_ins_header_rec.attribute26 := NULL;
31906 ELSE
31907 l_old_ins_header_rec.attribute26 := l_hist_csr.old_attribute26;
31908 l_new_ins_header_rec.attribute26 := l_hist_csr.new_attribute26;
31909 END IF;
31910
31911 IF NVL(l_hist_csr.old_attribute27,fnd_api.g_miss_char) = NVL(l_hist_csr.new_attribute27,fnd_api.g_miss_char)
31912 THEN
31913 l_old_ins_header_rec.attribute27 := NULL;
31914 l_new_ins_header_rec.attribute27 := NULL;
31915 ELSE
31916 l_old_ins_header_rec.attribute27 := l_hist_csr.old_attribute27;
31917 l_new_ins_header_rec.attribute27 := l_hist_csr.new_attribute27;
31918 END IF;
31919
31920 IF NVL(l_hist_csr.old_attribute28,fnd_api.g_miss_char) = NVL(l_hist_csr.new_attribute28,fnd_api.g_miss_char)
31921 THEN
31922 l_old_ins_header_rec.attribute28 := NULL;
31923 l_new_ins_header_rec.attribute28 := NULL;
31924 ELSE
31925 l_old_ins_header_rec.attribute28 := l_hist_csr.old_attribute28;
31926 l_new_ins_header_rec.attribute28 := l_hist_csr.new_attribute28;
31927 END IF;
31928
31929 IF NVL(l_hist_csr.old_attribute29,fnd_api.g_miss_char) = NVL(l_hist_csr.new_attribute29,fnd_api.g_miss_char)
31930 THEN
31931 l_old_ins_header_rec.attribute29 := NULL;
31932 l_new_ins_header_rec.attribute29 := NULL;
31933 ELSE
31934 l_old_ins_header_rec.attribute29 := l_hist_csr.old_attribute29;
31935 l_new_ins_header_rec.attribute29 := l_hist_csr.new_attribute29;
31936 END IF;
31937
31938 IF NVL(l_hist_csr.old_attribute30,fnd_api.g_miss_char) = NVL(l_hist_csr.new_attribute30,fnd_api.g_miss_char)
31939 THEN
31940 l_old_ins_header_rec.attribute30 := NULL;
31941 l_new_ins_header_rec.attribute30 := NULL;
31942 ELSE
31943 l_old_ins_header_rec.attribute30 := l_hist_csr.old_attribute30;
31944 l_new_ins_header_rec.attribute30 := l_hist_csr.new_attribute30;
31945 END IF;
31946
31947 --end of code for eam integration columns--
31948
31949
31950
31951
31952
31953 l_ins_header_rec.instance_id := l_hist_csr.instance_id ;
31954 l_ins_header_rec.old_instance_number := l_old_ins_header_rec.instance_number ;
31955 l_ins_header_rec.new_instance_number := l_new_ins_header_rec.instance_number ;
31956 l_ins_header_rec.old_external_reference := l_old_ins_header_rec.external_reference ;
31957 l_ins_header_rec.new_external_reference := l_new_ins_header_rec.external_reference ;
31958 l_ins_header_rec.old_inventory_item_id := l_old_ins_header_rec.inventory_item_id ;
31959 l_ins_header_rec.new_inventory_item_id := l_new_ins_header_rec.inventory_item_id ;
31960 l_ins_header_rec.old_inventory_item_name := l_old_ins_header_rec.inventory_item_name ; -- Bug 9177957
31961 l_ins_header_rec.new_inventory_item_name := l_new_ins_header_rec.inventory_item_name ; -- Bug 9177957
31962 l_ins_header_rec.old_inventory_revision := l_old_ins_header_rec.inventory_revision ;
31963 l_ins_header_rec.new_inventory_revision := l_new_ins_header_rec.inventory_revision ;
31964 l_ins_header_rec.old_inv_master_org_id := l_old_ins_header_rec.inv_master_organization_id ;
31965 l_ins_header_rec.new_inv_master_org_id := l_new_ins_header_rec.inv_master_organization_id ;
31966 l_ins_header_rec.old_serial_number := l_old_ins_header_rec.serial_number ;
31967 l_ins_header_rec.new_serial_number := l_new_ins_header_rec.serial_number ;
31968 l_ins_header_rec.old_mfg_serial_number_flag := l_old_ins_header_rec.mfg_serial_number_flag ;
31969 l_ins_header_rec.new_mfg_serial_number_flag := l_new_ins_header_rec.mfg_serial_number_flag ;
31970 l_ins_header_rec.old_lot_number := l_old_ins_header_rec.lot_number ;
31971 l_ins_header_rec.new_lot_number := l_new_ins_header_rec.lot_number ;
31972 l_ins_header_rec.old_quantity := l_old_ins_header_rec.quantity ;
31973 l_ins_header_rec.new_quantity := l_new_ins_header_rec.quantity ;
31974 l_ins_header_rec.old_unit_of_measure_name := l_old_ins_header_rec.unit_of_measure_name ;
31975 l_ins_header_rec.new_unit_of_measure_name := l_new_ins_header_rec.unit_of_measure_name ;
31976 l_ins_header_rec.old_unit_of_measure := l_old_ins_header_rec.unit_of_measure ;
31977 l_ins_header_rec.new_unit_of_measure := l_new_ins_header_rec.unit_of_measure ;
31978 l_ins_header_rec.old_accounting_class := l_old_ins_header_rec.accounting_class ;
31979 l_ins_header_rec.new_accounting_class := l_new_ins_header_rec.accounting_class ;
31980 l_ins_header_rec.old_accounting_class_code := l_old_ins_header_rec.accounting_class_code ;
31981 l_ins_header_rec.new_accounting_class_code := l_new_ins_header_rec.accounting_class_code ;
31982 l_ins_header_rec.old_instance_condition := l_old_ins_header_rec.instance_condition ;
31983 l_ins_header_rec.new_instance_condition := l_new_ins_header_rec.instance_condition ;
31984 l_ins_header_rec.old_instance_condition_id := l_old_ins_header_rec.instance_condition_id ;
31985 l_ins_header_rec.new_instance_condition_id := l_new_ins_header_rec.instance_condition_id ;
31986 l_ins_header_rec.old_instance_status := l_old_ins_header_rec.instance_status ;
31987 l_ins_header_rec.new_instance_status := l_new_ins_header_rec.instance_status ;
31988 l_ins_header_rec.old_instance_status_id := l_old_ins_header_rec.instance_status_id ;
31989 l_ins_header_rec.new_instance_status_id := l_new_ins_header_rec.instance_status_id ;
31990 l_ins_header_rec.old_customer_view_flag := l_old_ins_header_rec.customer_view_flag ;
31991 l_ins_header_rec.new_customer_view_flag := l_new_ins_header_rec.customer_view_flag ;
31992 l_ins_header_rec.old_merchant_view_flag := l_old_ins_header_rec.merchant_view_flag ;
31993 l_ins_header_rec.new_merchant_view_flag := l_new_ins_header_rec.merchant_view_flag ;
31994 l_ins_header_rec.old_sellable_flag := l_old_ins_header_rec.sellable_flag ;
31995 l_ins_header_rec.new_sellable_flag := l_new_ins_header_rec.sellable_flag ;
31996 l_ins_header_rec.old_system_id := l_old_ins_header_rec.system_id ;
31997 l_ins_header_rec.new_system_id := l_new_ins_header_rec.system_id ;
31998 l_ins_header_rec.old_system_name := l_old_ins_header_rec.system_name ;
31999 l_ins_header_rec.new_system_name := l_new_ins_header_rec.system_name ;
32000 l_ins_header_rec.old_instance_type_code := l_old_ins_header_rec.instance_type_code ;
32001 l_ins_header_rec.new_instance_type_code := l_new_ins_header_rec.instance_type_code ;
32002 l_ins_header_rec.old_instance_type_name := l_old_ins_header_rec.instance_type_name ;
32003 l_ins_header_rec.new_instance_type_name := l_new_ins_header_rec.instance_type_name ;
32004 l_ins_header_rec.old_active_start_date := l_old_ins_header_rec.active_start_date ;
32005 l_ins_header_rec.new_active_start_date := l_new_ins_header_rec.active_start_date ;
32006 l_ins_header_rec.old_active_end_date := l_old_ins_header_rec.active_end_date ;
32007 l_ins_header_rec.new_active_end_date := l_new_ins_header_rec.active_end_date ;
32008 l_ins_header_rec.old_location_type_code := l_old_ins_header_rec.location_type_code ;
32009 l_ins_header_rec.new_location_type_code := l_new_ins_header_rec.location_type_code ;
32010 l_ins_header_rec.old_location_id := l_old_ins_header_rec.location_id ;
32011 l_ins_header_rec.new_location_id := l_new_ins_header_rec.location_id ;
32012 l_ins_header_rec.old_inv_organization_id := l_old_ins_header_rec.inv_organization_id ;
32013 l_ins_header_rec.new_inv_organization_id := l_new_ins_header_rec.inv_organization_id ;
32014 l_ins_header_rec.old_inv_organization_name := l_old_ins_header_rec.inv_organization_name ;
32015 l_ins_header_rec.new_inv_organization_name := l_new_ins_header_rec.inv_organization_name ;
32016 l_ins_header_rec.old_inv_subinventory_name := l_old_ins_header_rec.inv_subinventory_name ;
32017 l_ins_header_rec.new_inv_subinventory_name := l_new_ins_header_rec.inv_subinventory_name ;
32018 l_ins_header_rec.old_inv_locator_id := l_old_ins_header_rec.inv_locator_id ;
32019 l_ins_header_rec.new_inv_locator_id := l_new_ins_header_rec.inv_locator_id ;
32020 l_ins_header_rec.old_pa_project_id := l_old_ins_header_rec.pa_project_id ;
32021 l_ins_header_rec.new_pa_project_id := l_new_ins_header_rec.pa_project_id ;
32022 l_ins_header_rec.old_pa_project_task_id := l_old_ins_header_rec.pa_project_task_id ;
32023 l_ins_header_rec.new_pa_project_task_id := l_new_ins_header_rec.pa_project_task_id ;
32024 l_ins_header_rec.old_pa_project_name := l_old_ins_header_rec.pa_project_name ;
32025 l_ins_header_rec.new_pa_project_name := l_new_ins_header_rec.pa_project_name ;
32026 l_ins_header_rec.old_pa_project_number := l_old_ins_header_rec.pa_project_number ;
32027 l_ins_header_rec.new_pa_project_number := l_new_ins_header_rec.pa_project_number ;
32028 l_ins_header_rec.old_pa_task_name := l_old_ins_header_rec.pa_task_name ;
32029 l_ins_header_rec.new_pa_task_name := l_new_ins_header_rec.pa_task_name ;
32030 l_ins_header_rec.old_pa_task_number := l_old_ins_header_rec.pa_task_number ;
32031 l_ins_header_rec.new_pa_task_number := l_new_ins_header_rec.pa_task_number ;
32032 l_ins_header_rec.old_in_transit_order_line_id:= l_old_ins_header_rec.in_transit_order_line_id ;
32033 l_ins_header_rec.new_in_transit_order_line_id:= l_new_ins_header_rec.in_transit_order_line_id ;
32034 l_ins_header_rec.old_in_transit_order_line_num := l_old_ins_header_rec.in_transit_order_line_number ;
32035 l_ins_header_rec.new_in_transit_order_line_num := l_new_ins_header_rec.in_transit_order_line_number ;
32036 l_ins_header_rec.old_in_transit_order_number := l_old_ins_header_rec.in_transit_order_number ;
32037 l_ins_header_rec.new_in_transit_order_number := l_new_ins_header_rec.in_transit_order_number ;
32038 l_ins_header_rec.old_wip_job_id := l_old_ins_header_rec.wip_job_id ;
32039 l_ins_header_rec.new_wip_job_id := l_new_ins_header_rec.wip_job_id ;
32040 l_ins_header_rec.old_wip_entity_name := l_old_ins_header_rec.wip_entity_name ;
32041 l_ins_header_rec.new_wip_entity_name := l_new_ins_header_rec.wip_entity_name ;
32042 l_ins_header_rec.old_po_order_line_id := l_old_ins_header_rec.po_order_line_id;
32043 l_ins_header_rec.new_po_order_line_id := l_new_ins_header_rec.po_order_line_id;
32044 l_ins_header_rec.old_last_oe_order_line_id := l_old_ins_header_rec.last_oe_order_line_id ;
32045 l_ins_header_rec.new_last_oe_order_line_id := l_new_ins_header_rec.last_oe_order_line_id ;
32046 l_ins_header_rec.old_last_oe_rma_line_id := l_old_ins_header_rec.last_oe_rma_line_id ;
32047 l_ins_header_rec.new_last_oe_rma_line_id := l_new_ins_header_rec.last_oe_rma_line_id ;
32048 l_ins_header_rec.old_last_po_po_line_id := l_old_ins_header_rec.last_po_po_line_id ;
32049 l_ins_header_rec.new_last_po_po_line_id := l_new_ins_header_rec.last_po_po_line_id ;
32050 l_ins_header_rec.old_last_oe_po_number := l_old_ins_header_rec.last_oe_po_number ;
32051 l_ins_header_rec.new_last_oe_po_number := l_new_ins_header_rec.last_oe_po_number ;
32052 l_ins_header_rec.old_last_wip_job_id := l_old_ins_header_rec.last_wip_job_id ;
32053 l_ins_header_rec.new_last_wip_job_id := l_new_ins_header_rec.last_wip_job_id ;
32054 l_ins_header_rec.old_last_pa_project_id := l_old_ins_header_rec.last_pa_project_id ;
32055 l_ins_header_rec.new_last_pa_project_id := l_new_ins_header_rec.last_pa_project_id ;
32056 l_ins_header_rec.old_last_pa_task_id := l_old_ins_header_rec.last_pa_task_id ;
32057 l_ins_header_rec.new_last_pa_task_id := l_new_ins_header_rec.last_pa_task_id ;
32058 l_ins_header_rec.old_last_oe_agreement_id := l_old_ins_header_rec.last_oe_agreement_id ;
32059 l_ins_header_rec.new_last_oe_agreement_id := l_new_ins_header_rec.last_oe_agreement_id ;
32060 l_ins_header_rec.old_install_date := l_old_ins_header_rec.install_date ; --added for 2671179
32061 l_ins_header_rec.new_install_date := l_new_ins_header_rec.install_date ; --added for 2671179
32062 l_ins_header_rec.old_manually_created_flag := NULL ;
32063 l_ins_header_rec.new_manually_created_flag := NULL ;
32064 l_ins_header_rec.old_return_by_date := l_old_ins_header_rec.return_by_date ; --added for 2671179
32065 l_ins_header_rec.new_return_by_date := l_new_ins_header_rec.return_by_date ; --added for 2671179
32066 l_ins_header_rec.old_actual_return_date := l_old_ins_header_rec.actual_return_date ; --added for 2671179
32067 l_ins_header_rec.new_actual_return_date := l_new_ins_header_rec.actual_return_date ; --added for 2671179
32068 l_ins_header_rec.old_creation_complete_flag := NULL ;
32069 l_ins_header_rec.new_creation_complete_flag := NULL ;
32070 l_ins_header_rec.old_completeness_flag := l_old_ins_header_rec.completeness_flag ;
32071 l_ins_header_rec.new_completeness_flag := l_new_ins_header_rec.completeness_flag ;
32072 l_ins_header_rec.old_context := l_old_ins_header_rec.context ;
32073 l_ins_header_rec.new_context := l_new_ins_header_rec.context ;
32074 l_ins_header_rec.old_attribute1 := l_old_ins_header_rec.attribute1 ;
32075 l_ins_header_rec.new_attribute1 := l_new_ins_header_rec.attribute1 ;
32076 l_ins_header_rec.old_attribute2 := l_old_ins_header_rec.attribute2 ;
32077 l_ins_header_rec.new_attribute2 := l_new_ins_header_rec.attribute2 ;
32078 l_ins_header_rec.old_attribute3 := l_old_ins_header_rec.attribute3 ;
32079 l_ins_header_rec.new_attribute3 := l_new_ins_header_rec.attribute3 ;
32080 l_ins_header_rec.old_attribute4 := l_old_ins_header_rec.attribute4 ;
32081 l_ins_header_rec.new_attribute4 := l_new_ins_header_rec.attribute4 ;
32082 l_ins_header_rec.old_attribute5 := l_old_ins_header_rec.attribute5 ;
32083 l_ins_header_rec.new_attribute5 := l_new_ins_header_rec.attribute5 ;
32084 l_ins_header_rec.old_attribute6 := l_old_ins_header_rec.attribute6 ;
32085 l_ins_header_rec.new_attribute6 := l_new_ins_header_rec.attribute6 ;
32086 l_ins_header_rec.old_attribute7 := l_old_ins_header_rec.attribute7 ;
32087 l_ins_header_rec.new_attribute7 := l_new_ins_header_rec.attribute7 ;
32088 l_ins_header_rec.old_attribute8 := l_old_ins_header_rec.attribute8 ;
32089 l_ins_header_rec.new_attribute8 := l_new_ins_header_rec.attribute8 ;
32090 l_ins_header_rec.old_attribute9 := l_old_ins_header_rec.attribute9 ;
32091 l_ins_header_rec.new_attribute9 := l_new_ins_header_rec.attribute9 ;
32092 l_ins_header_rec.old_attribute10 := l_old_ins_header_rec.attribute10 ;
32093 l_ins_header_rec.new_attribute10 := l_new_ins_header_rec.attribute10 ;
32094 l_ins_header_rec.old_attribute11 := l_old_ins_header_rec.attribute11 ;
32095 l_ins_header_rec.new_attribute11 := l_new_ins_header_rec.attribute11 ;
32096 l_ins_header_rec.old_attribute12 := l_old_ins_header_rec.attribute12 ;
32097 l_ins_header_rec.new_attribute12 := l_new_ins_header_rec.attribute12 ;
32098 l_ins_header_rec.old_attribute13 := l_old_ins_header_rec.attribute13 ;
32099 l_ins_header_rec.new_attribute13 := l_new_ins_header_rec.attribute13 ;
32100 l_ins_header_rec.old_attribute14 := l_old_ins_header_rec.attribute14 ;
32101 l_ins_header_rec.new_attribute14 := l_new_ins_header_rec.attribute14 ;
32102 l_ins_header_rec.old_attribute15 := l_old_ins_header_rec.attribute15 ;
32103 l_ins_header_rec.new_attribute15 := l_new_ins_header_rec.attribute15 ;
32104 l_ins_header_rec.old_last_txn_line_detail_id := l_old_ins_header_rec.last_txn_line_detail_id ;
32105 l_ins_header_rec.new_last_txn_line_detail_id := l_new_ins_header_rec.last_txn_line_detail_id ;
32106 l_ins_header_rec.old_install_location_type_code := l_old_ins_header_rec.install_location_type_code ;
32107 l_ins_header_rec.new_install_location_type_code := l_new_ins_header_rec.install_location_type_code ;
32108 l_ins_header_rec.old_install_location_id := l_old_ins_header_rec.install_location_id ;
32109 l_ins_header_rec.new_install_location_id := l_new_ins_header_rec.install_location_id ;
32110 l_ins_header_rec.old_instance_usage_code := l_old_ins_header_rec.instance_usage_code ;
32111 l_ins_header_rec.new_instance_usage_code := l_new_ins_header_rec.instance_usage_code ;
32112 l_ins_header_rec.old_current_loc_address1 := l_old_ins_header_rec.current_loc_address1 ;
32113 l_ins_header_rec.new_current_loc_address1 := l_new_ins_header_rec.current_loc_address1 ;
32114 l_ins_header_rec.old_current_loc_address2 := l_old_ins_header_rec.current_loc_address2 ;
32115 l_ins_header_rec.new_current_loc_address2 := l_new_ins_header_rec.current_loc_address2 ;
32116 l_ins_header_rec.old_current_loc_address3 := l_old_ins_header_rec.current_loc_address3 ;
32117 l_ins_header_rec.new_current_loc_address3 := l_new_ins_header_rec.current_loc_address3 ;
32118 l_ins_header_rec.old_current_loc_address4 := l_old_ins_header_rec.current_loc_address4 ;
32119 l_ins_header_rec.new_current_loc_address4 := l_new_ins_header_rec.current_loc_address4 ;
32120 l_ins_header_rec.old_current_loc_city := l_old_ins_header_rec.current_loc_city ;
32121 l_ins_header_rec.new_current_loc_city := l_new_ins_header_rec.current_loc_city ;
32122 l_ins_header_rec.old_current_loc_postal_code := l_old_ins_header_rec.current_loc_postal_code ;
32123 l_ins_header_rec.new_current_loc_postal_code := l_new_ins_header_rec.current_loc_postal_code ;
32124 l_ins_header_rec.old_current_loc_country := l_old_ins_header_rec.current_loc_country ;
32125 l_ins_header_rec.new_current_loc_country := l_new_ins_header_rec.current_loc_country ;
32126 l_ins_header_rec.old_current_loc_state := l_old_ins_header_rec.current_loc_state ;
32127 l_ins_header_rec.new_current_loc_state := l_new_ins_header_rec.current_loc_state ;
32128 l_ins_header_rec.old_sales_order_number := l_old_ins_header_rec.sales_order_number ;
32129 l_ins_header_rec.new_sales_order_number := l_new_ins_header_rec.sales_order_number ;
32130 l_ins_header_rec.old_sales_order_line_number := l_old_ins_header_rec.sales_order_line_number ;
32131 l_ins_header_rec.new_sales_order_line_number := l_new_ins_header_rec.sales_order_line_number ;
32132 l_ins_header_rec.old_sales_order_date := l_old_ins_header_rec.sales_order_date ;
32133 l_ins_header_rec.new_sales_order_date := l_new_ins_header_rec.sales_order_date ;
32134 l_ins_header_rec.old_purchase_order_number := l_old_ins_header_rec.purchase_order_number ;
32135 l_ins_header_rec.new_purchase_order_number := l_new_ins_header_rec.purchase_order_number ;
32136 l_ins_header_rec.old_instance_usage_name := l_old_ins_header_rec.instance_usage_name ;
32137 l_ins_header_rec.new_instance_usage_name := l_new_ins_header_rec.instance_usage_name ;
32138 l_ins_header_rec.old_install_loc_address1 := l_old_ins_header_rec.install_loc_address1 ;
32139 l_ins_header_rec.new_install_loc_address1 := l_new_ins_header_rec.install_loc_address1 ;
32140 l_ins_header_rec.old_install_loc_address2 := l_old_ins_header_rec.install_loc_address2 ;
32141 l_ins_header_rec.new_install_loc_address2 := l_new_ins_header_rec.install_loc_address2 ;
32142 l_ins_header_rec.old_install_loc_address3 := l_old_ins_header_rec.install_loc_address3 ;
32143 l_ins_header_rec.new_install_loc_address3 := l_new_ins_header_rec.install_loc_address3 ;
32144 l_ins_header_rec.old_install_loc_address4 := l_old_ins_header_rec.install_loc_address4 ;
32145 l_ins_header_rec.new_install_loc_address4 := l_new_ins_header_rec.install_loc_address4 ;
32146 l_ins_header_rec.old_install_loc_city := l_old_ins_header_rec.install_loc_city ;
32147 l_ins_header_rec.new_install_loc_city := l_new_ins_header_rec.install_loc_city ;
32148 l_ins_header_rec.old_install_loc_postal_code := l_old_ins_header_rec.install_loc_postal_code ;
32149 l_ins_header_rec.new_install_loc_postal_code := l_new_ins_header_rec.install_loc_postal_code ;
32150 l_ins_header_rec.old_install_loc_country := l_old_ins_header_rec.install_loc_country ;
32151 l_ins_header_rec.new_install_loc_country := l_new_ins_header_rec.install_loc_country ;
32152 l_ins_header_rec.old_install_loc_state := l_old_ins_header_rec.install_loc_state ;
32153 l_ins_header_rec.new_install_loc_state := l_new_ins_header_rec.install_loc_state ;
32154 l_ins_header_rec.old_oe_agreement_name := l_old_ins_header_rec.last_oe_agreement_name ;
32155 l_ins_header_rec.new_oe_agreement_name := l_new_ins_header_rec.last_oe_agreement_name ;
32156 l_ins_header_rec.old_inv_locator_name := l_old_ins_header_rec.inv_locator_name ;
32157 l_ins_header_rec.new_inv_locator_name := l_new_ins_header_rec.inv_locator_name ;
32158 l_ins_header_rec.old_current_location_number := l_old_ins_header_rec.current_loc_number;
32159 l_ins_header_rec.new_current_location_number := l_new_ins_header_rec.current_loc_number;
32160 l_ins_header_rec.old_install_location_number := l_old_ins_header_rec.install_loc_number;
32161 l_ins_header_rec.new_install_location_number := l_new_ins_header_rec.install_loc_number;
32162 --start of code change for eam integration--
32163 l_ins_header_rec.old_network_asset_flag := l_old_ins_header_rec.network_asset_flag ;
32164 l_ins_header_rec.new_network_asset_flag := l_new_ins_header_rec.network_asset_flag ;
32165 l_ins_header_rec.old_maintainable_flag := l_old_ins_header_rec.maintainable_flag ;
32166 l_ins_header_rec.new_maintainable_flag := l_new_ins_header_rec.maintainable_flag ;
32167 l_ins_header_rec.old_pn_location_id := l_old_ins_header_rec.pn_location_id ;
32168 l_ins_header_rec.new_pn_location_id := l_new_ins_header_rec.pn_location_id ;
32169 l_ins_header_rec.old_asset_criticality_code := l_old_ins_header_rec.asset_criticality_code ;
32170 l_ins_header_rec.new_asset_criticality_code := l_new_ins_header_rec.asset_criticality_code ;
32171 l_ins_header_rec.old_category_id := l_old_ins_header_rec.category_id ;
32172 l_ins_header_rec.new_category_id := l_new_ins_header_rec.category_id ;
32173
32174 --start of code for bug 4754569--
32175 l_ins_header_rec.old_criticality := l_old_ins_header_rec.criticality ;
32176 l_ins_header_rec.new_criticality := l_new_ins_header_rec.criticality ;
32177 l_ins_header_rec.old_category_name := l_old_ins_header_rec.category_name ;
32178 l_ins_header_rec.new_category_name := l_new_ins_header_rec.category_name ;
32179 --end of code for bug 4754569--
32180
32181 l_ins_header_rec.old_maintainable := l_old_ins_header_rec.maintainable; --for bug 5211068
32182 l_ins_header_rec.new_maintainable := l_new_ins_header_rec.maintainable;
32183
32184 l_ins_header_rec.old_equipment_gen_object_id := l_old_ins_header_rec.equipment_gen_object_id ;
32185 l_ins_header_rec.new_equipment_gen_object_id := l_new_ins_header_rec.equipment_gen_object_id ;
32186 l_ins_header_rec.old_instantiation_flag := l_old_ins_header_rec.instantiation_flag ;
32187 l_ins_header_rec.new_instantiation_flag := l_new_ins_header_rec.instantiation_flag ;
32188 l_ins_header_rec.old_linear_location_id := l_old_ins_header_rec.linear_location_id ;
32189 l_ins_header_rec.new_linear_location_id := l_new_ins_header_rec.linear_location_id ;
32190 l_ins_header_rec.old_operational_log_flag := l_old_ins_header_rec.operational_log_flag ;
32191 l_ins_header_rec.new_operational_log_flag := l_new_ins_header_rec.operational_log_flag ;
32192 l_ins_header_rec.old_checkin_status := l_old_ins_header_rec.checkin_status;
32193 l_ins_header_rec.new_checkin_status := l_new_ins_header_rec.checkin_status;
32194 l_ins_header_rec.old_supplier_warranty_exp_date := l_old_ins_header_rec.supplier_warranty_exp_date;
32195 l_ins_header_rec.new_supplier_warranty_exp_date := l_new_ins_header_rec.supplier_warranty_exp_date;
32196 l_ins_header_rec.old_attribute16 := l_old_ins_header_rec.attribute16 ;
32197 l_ins_header_rec.new_attribute16 := l_new_ins_header_rec.attribute16 ;
32198 l_ins_header_rec.old_attribute17 := l_old_ins_header_rec.attribute17 ;
32199 l_ins_header_rec.new_attribute17 := l_new_ins_header_rec.attribute17 ;
32200 l_ins_header_rec.old_attribute18 := l_old_ins_header_rec.attribute18 ;
32201 l_ins_header_rec.new_attribute18 := l_new_ins_header_rec.attribute18 ;
32202 l_ins_header_rec.old_attribute19 := l_old_ins_header_rec.attribute19 ;
32203 l_ins_header_rec.new_attribute19 := l_new_ins_header_rec.attribute19 ;
32204 l_ins_header_rec.old_attribute20 := l_old_ins_header_rec.attribute20 ;
32205 l_ins_header_rec.new_attribute20 := l_new_ins_header_rec.attribute20 ;
32206 l_ins_header_rec.old_attribute21 := l_old_ins_header_rec.attribute21 ;
32207 l_ins_header_rec.new_attribute21 := l_new_ins_header_rec.attribute21 ;
32208 l_ins_header_rec.old_attribute22 := l_old_ins_header_rec.attribute22 ;
32209 l_ins_header_rec.new_attribute22 := l_new_ins_header_rec.attribute22 ;
32210 l_ins_header_rec.old_attribute23 := l_old_ins_header_rec.attribute23 ;
32211 l_ins_header_rec.new_attribute23 := l_new_ins_header_rec.attribute23 ;
32212 l_ins_header_rec.old_attribute24 := l_old_ins_header_rec.attribute24 ;
32213 l_ins_header_rec.new_attribute24 := l_new_ins_header_rec.attribute24 ;
32214 l_ins_header_rec.old_attribute25 := l_old_ins_header_rec.attribute25 ;
32215 l_ins_header_rec.new_attribute25 := l_new_ins_header_rec.attribute25 ;
32216 l_ins_header_rec.old_attribute26 := l_old_ins_header_rec.attribute26 ;
32217 l_ins_header_rec.new_attribute26 := l_new_ins_header_rec.attribute26 ;
32218 l_ins_header_rec.old_attribute27 := l_old_ins_header_rec.attribute27 ;
32219 l_ins_header_rec.new_attribute27 := l_new_ins_header_rec.attribute27 ;
32220 l_ins_header_rec.old_attribute28 := l_old_ins_header_rec.attribute28 ;
32221 l_ins_header_rec.new_attribute28 := l_new_ins_header_rec.attribute28 ;
32222 l_ins_header_rec.old_attribute29 := l_old_ins_header_rec.attribute29 ;
32223 l_ins_header_rec.new_attribute29 := l_new_ins_header_rec.attribute29 ;
32224 l_ins_header_rec.old_attribute30 := l_old_ins_header_rec.attribute30 ;
32225 l_ins_header_rec.new_attribute30 := l_new_ins_header_rec.attribute30 ;
32226 --end of code change for eam integration--
32227 -- Addition of columns for FA Integration
32228 l_ins_header_rec.old_payables_unit_price := l_old_ins_header_rec.payables_unit_price;
32229 l_ins_header_rec.new_payables_unit_price := l_new_ins_header_rec.payables_unit_price;
32230 l_ins_header_rec.old_payables_currency_code := l_old_ins_header_rec.payables_currency_code;
32231 l_ins_header_rec.new_payables_currency_code := l_new_ins_header_rec.payables_currency_code;
32232 l_ins_header_rec.old_purchase_unit_price := l_old_ins_header_rec.purchase_unit_price;
32233 l_ins_header_rec.new_purchase_unit_price := l_new_ins_header_rec.purchase_unit_price;
32234 l_ins_header_rec.old_purchase_currency_code := l_old_ins_header_rec.purchase_currency_code;
32235 l_ins_header_rec.new_purchase_currency_code := l_new_ins_header_rec.purchase_currency_code;
32236 l_ins_header_rec.old_sales_unit_price := l_old_ins_header_rec.sales_unit_price;
32237 l_ins_header_rec.new_sales_unit_price := l_new_ins_header_rec.sales_unit_price;
32238 l_ins_header_rec.old_sales_currency_code := l_old_ins_header_rec.sales_currency_code;
32239 l_ins_header_rec.new_sales_currency_code := l_new_ins_header_rec.sales_currency_code;
32240 l_ins_header_rec.old_operational_status_code := l_old_ins_header_rec.operational_status_code;
32241 l_ins_header_rec.new_operational_status_code := l_new_ins_header_rec.operational_status_code;
32242
32243 l_ins_header_rec.old_instance_description := l_old_ins_header_rec.instance_description;
32244 l_ins_header_rec.new_instance_description := l_new_ins_header_rec.instance_description;
32245 -- End addition of columns for FA Integration
32246 i:=i+1;
32247 x_instance_history_tbl(i):= l_ins_header_rec;
32248
32249 END LOOP;
32250
32251 -- End of API body
32252
32253 -- Standard check of p_commit.
32254 /*
32255 IF FND_API.To_Boolean( p_commit ) THEN
32256 COMMIT WORK;
32257 END IF;
32258 */
32259
32260 /***** srramakr commented for bug # 3304439
32261 -- Check for the profile option and disable the trace
32262 IF (fnd_profile.value('CSI_ENABLE_SQL_TRACE') = 'Y') THEN
32263 dbms_session.set_sql_trace(false);
32264 END IF;
32265 -- End disable trace
32266 ****/
32267
32268 -- Standard call to get message count and if count is get message info.
32269 FND_MSG_PUB.Count_And_Get
32270 (p_encoded => FND_API.G_FALSE,
32271 p_count => x_msg_count ,
32272 p_data => x_msg_data );
32273 EXCEPTION
32274 WHEN OTHERS THEN
32275 X_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
32276 /*
32277 IF fnd_api.to_boolean(p_commit)
32278 THEN
32279 ROLLBACK TO get_instance_hist;
32280 END IF;
32281 */
32282 IF FND_MSG_PUB.Check_Msg_Level
32283 (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
32284 THEN
32285 FND_MSG_PUB.Add_Exc_Msg
32286 ( G_PKG_NAME, l_api_name );
32287 END IF;
32288 FND_MSG_PUB.Count_And_Get
32289 ( p_encoded => FND_API.G_FALSE,
32290 p_count => x_msg_count,
32291 p_data => x_msg_data);
32292
32293
32294 END get_instance_hist ;
32295
32296 /*---------------------------------------------------*/
32297 /* procedure name: get_ext_attrib_val_hist */
32298 /* description : Retreive history transactions */
32299 /* for extended attribute values */
32300 /*---------------------------------------------------*/
32301
32302 PROCEDURE get_ext_attrib_val_hist
32303 ( p_api_version IN NUMBER
32304 ,p_commit IN VARCHAR2
32305 ,p_init_msg_list IN VARCHAR2
32306 ,p_validation_level IN NUMBER
32307 ,p_transaction_id IN NUMBER
32308 ,x_ext_attrib_val_hist_tbl OUT NOCOPY csi_datastructures_pub.ext_attrib_val_history_tbl
32309 ,x_return_status OUT NOCOPY VARCHAR2
32310 ,x_msg_count OUT NOCOPY NUMBER
32311 ,x_msg_data OUT NOCOPY VARCHAR2
32312 ) IS
32313 CURSOR txn_hist_csr (p_txn_id IN NUMBER) IS
32314 SELECT ieh.ATTRIBUTE_VALUE_HISTORY_ID ,
32315 ieh.ATTRIBUTE_VALUE_ID ,
32316 ieh.TRANSACTION_ID ,
32317 ieh.OLD_ATTRIBUTE_VALUE ,
32318 ieh.NEW_ATTRIBUTE_VALUE ,
32319 ieh.OLD_ACTIVE_START_DATE ,
32320 ieh.NEW_ACTIVE_START_DATE ,
32321 ieh.OLD_ACTIVE_END_DATE ,
32322 ieh.NEW_ACTIVE_END_DATE ,
32323 ieh.OLD_CONTEXT ,
32324 ieh.NEW_CONTEXT ,
32325 ieh.OLD_ATTRIBUTE1 ,
32326 ieh.NEW_ATTRIBUTE1 ,
32327 ieh.OLD_ATTRIBUTE2 ,
32328 ieh.NEW_ATTRIBUTE2 ,
32329 ieh.OLD_ATTRIBUTE3 ,
32330 ieh.NEW_ATTRIBUTE3 ,
32331 ieh.OLD_ATTRIBUTE4 ,
32332 ieh.NEW_ATTRIBUTE4 ,
32333 ieh.OLD_ATTRIBUTE5 ,
32334 ieh.NEW_ATTRIBUTE5 ,
32335 ieh.OLD_ATTRIBUTE6 ,
32336 ieh.NEW_ATTRIBUTE6 ,
32337 ieh.OLD_ATTRIBUTE7 ,
32338 ieh.NEW_ATTRIBUTE7 ,
32339 ieh.OLD_ATTRIBUTE8 ,
32340 ieh.NEW_ATTRIBUTE8 ,
32341 ieh.OLD_ATTRIBUTE9 ,
32342 ieh.NEW_ATTRIBUTE9 ,
32343 ieh.OLD_ATTRIBUTE10 ,
32344 ieh.NEW_ATTRIBUTE10 ,
32345 ieh.OLD_ATTRIBUTE11 ,
32346 ieh.NEW_ATTRIBUTE11 ,
32347 ieh.OLD_ATTRIBUTE12 ,
32348 ieh.NEW_ATTRIBUTE12 ,
32349 ieh.OLD_ATTRIBUTE13 ,
32350 ieh.NEW_ATTRIBUTE13 ,
32351 ieh.OLD_ATTRIBUTE14 ,
32352 ieh.NEW_ATTRIBUTE14 ,
32353 ieh.OLD_ATTRIBUTE15 ,
32354 ieh.NEW_ATTRIBUTE15 ,
32355 ieh.FULL_DUMP_FLAG ,
32356 ieh.OBJECT_VERSION_NUMBER ,
32357 ie.INSTANCE_ID ,
32358 iea.attribute_code
32359 FROM csi_iea_values_h ieh,
32360 csi_iea_values ie ,
32361 csi_i_extended_attribs iea
32362 WHERE ieh.transaction_id = p_txn_id
32363 AND ieh.attribute_value_id = ie.attribute_value_id
32364 AND ie.attribute_id= iea.attribute_id;
32365
32366 l_old_ext_header_rec csi_datastructures_pub.extend_attrib_values_rec;
32367 l_new_ext_header_rec csi_datastructures_pub.extend_attrib_values_rec;
32368 l_ext_header_rec csi_datastructures_pub.ext_attrib_val_history_rec;
32369 l_temp_ext_rec csi_datastructures_pub.ext_attrib_val_history_rec;
32370 l_api_name CONSTANT VARCHAR2(30) := 'get_ext_attrib_val_hist';
32371 l_api_version CONSTANT NUMBER := 1.0;
32372 i NUMBER := 0;
32373 BEGIN
32374 /*
32375 IF fnd_api.to_boolean(p_commit)
32376 THEN
32377 SAVEPOINT get_ext_attrib_val_hist;
32378 END IF;
32379 */
32380
32381 -- Standard call to check for call compatibility.
32382 IF NOT FND_API.Compatible_API_Call (l_api_version ,
32383 p_api_version ,
32384 l_api_name ,
32385 G_PKG_NAME )
32386 THEN
32387 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
32388 END IF;
32389
32390 -- Initialize message list if p_init_msg_list is set to TRUE.
32391 IF FND_API.to_Boolean( p_init_msg_list ) THEN
32392 FND_MSG_PUB.initialize;
32393 END IF;
32394
32395 -- Initialize API return status to success
32396 x_return_status := FND_API.G_RET_STS_SUCCESS;
32397
32398 /***** srramakr commented for bug # 3304439
32399 -- Check for the profile option and enable trace
32400 IF (fnd_profile.value('CSI_ENABLE_SQL_TRACE') = 'Y') THEN
32401 dbms_session.set_sql_trace(TRUE);
32402 END IF;
32403 -- End enable trace
32404 ****/
32405
32406 -- Start API body
32407 --
32408
32409
32410
32411
32412 FOR l_hist_csr IN txn_hist_csr (p_transaction_id)
32413 LOOP
32414 l_ext_header_rec := l_temp_ext_rec;
32415 --
32416 IF NVL(l_hist_csr.old_attribute_value,fnd_api.g_miss_char) = NVL(l_hist_csr.new_attribute_value,fnd_api.g_miss_char)
32417 THEN
32418 l_old_ext_header_rec.attribute_value := NULL;
32419 l_new_ext_header_rec.attribute_value := NULL;
32420 ELSE
32421 l_old_ext_header_rec.attribute_value := l_hist_csr.old_attribute_value;
32422 l_new_ext_header_rec.attribute_value := l_hist_csr.new_attribute_value;
32423 END IF;
32424 --
32425 IF NVL(l_hist_csr.old_active_start_date,fnd_api.g_miss_date) = NVL(l_hist_csr.new_active_start_date,fnd_api.g_miss_date)
32426 THEN
32427 l_old_ext_header_rec.active_start_date := NULL;
32428 l_new_ext_header_rec.active_start_date := NULL;
32429 ELSE
32430 l_old_ext_header_rec.active_start_date := l_hist_csr.old_active_start_date;
32431 l_new_ext_header_rec.active_start_date := l_hist_csr.new_active_start_date;
32432 END IF;
32433 --
32434 IF NVL(l_hist_csr.old_active_end_date,fnd_api.g_miss_date) = NVL(l_hist_csr.new_active_end_date,fnd_api.g_miss_date)
32435 THEN
32436 l_old_ext_header_rec.active_end_date := NULL;
32437 l_new_ext_header_rec.active_end_date := NULL;
32438 ELSE
32439 l_old_ext_header_rec.active_end_date := l_hist_csr.old_active_end_date;
32440 l_new_ext_header_rec.active_end_date := l_hist_csr.new_active_end_date;
32441 END IF;
32442 --
32443 IF NVL(l_hist_csr.old_context,fnd_api.g_miss_char) = NVL(l_hist_csr.new_context,fnd_api.g_miss_char)
32444 THEN
32445 l_old_ext_header_rec.context := NULL;
32446 l_new_ext_header_rec.context := NULL;
32447 ELSE
32448 l_old_ext_header_rec.context := l_hist_csr.old_context;
32449 l_new_ext_header_rec.context := l_hist_csr.new_context;
32450 END IF;
32451 --
32452 IF NVL(l_hist_csr.old_attribute1,fnd_api.g_miss_char) = NVL(l_hist_csr.new_attribute1,fnd_api.g_miss_char)
32453 THEN
32454 l_old_ext_header_rec.attribute1 := NULL;
32455 l_new_ext_header_rec.attribute1 := NULL;
32456 ELSE
32457 l_old_ext_header_rec.attribute1 := l_hist_csr.old_attribute1;
32458 l_new_ext_header_rec.attribute1 := l_hist_csr.new_attribute1;
32459 END IF;
32460 --
32461 IF NVL(l_hist_csr.old_attribute2,fnd_api.g_miss_char) = NVL(l_hist_csr.new_attribute2,fnd_api.g_miss_char)
32462 THEN
32463 l_old_ext_header_rec.attribute2 := NULL;
32464 l_new_ext_header_rec.attribute2 := NULL;
32465 ELSE
32466 l_old_ext_header_rec.attribute2 := l_hist_csr.old_attribute2;
32467 l_new_ext_header_rec.attribute2 := l_hist_csr.new_attribute2;
32468 END IF;
32469 --
32470 IF NVL(l_hist_csr.old_attribute3,fnd_api.g_miss_char) = NVL(l_hist_csr.new_attribute3,fnd_api.g_miss_char)
32471 THEN
32472 l_old_ext_header_rec.attribute3 := NULL;
32473 l_new_ext_header_rec.attribute3 := NULL;
32474 ELSE
32475 l_old_ext_header_rec.attribute3 := l_hist_csr.old_attribute3;
32476 l_new_ext_header_rec.attribute3 := l_hist_csr.new_attribute3;
32477 END IF;
32478 --
32479 IF NVL(l_hist_csr.old_attribute4,fnd_api.g_miss_char) = NVL(l_hist_csr.new_attribute4,fnd_api.g_miss_char)
32480 THEN
32481 l_old_ext_header_rec.attribute4 := NULL;
32482 l_new_ext_header_rec.attribute4 := NULL;
32483 ELSE
32484 l_old_ext_header_rec.attribute4 := l_hist_csr.old_attribute4;
32485 l_new_ext_header_rec.attribute4 := l_hist_csr.new_attribute4;
32486 END IF;
32487 --
32488 IF NVL(l_hist_csr.old_attribute5,fnd_api.g_miss_char) = NVL(l_hist_csr.new_attribute5,fnd_api.g_miss_char)
32489 THEN
32490 l_old_ext_header_rec.attribute5 := NULL;
32491 l_new_ext_header_rec.attribute5 := NULL;
32492 ELSE
32493 l_old_ext_header_rec.attribute5 := l_hist_csr.old_attribute5;
32494 l_new_ext_header_rec.attribute5 := l_hist_csr.new_attribute5;
32495 END IF;
32496 --
32497 IF NVL(l_hist_csr.old_attribute6,fnd_api.g_miss_char) = NVL(l_hist_csr.new_attribute6,fnd_api.g_miss_char)
32498 THEN
32499 l_old_ext_header_rec.attribute6 := NULL;
32500 l_new_ext_header_rec.attribute6 := NULL;
32501 ELSE
32502 l_old_ext_header_rec.attribute6 := l_hist_csr.old_attribute6;
32503 l_new_ext_header_rec.attribute6 := l_hist_csr.new_attribute6;
32504 END IF;
32505 --
32506 IF NVL(l_hist_csr.old_attribute7,fnd_api.g_miss_char) = NVL(l_hist_csr.new_attribute7,fnd_api.g_miss_char)
32507 THEN
32508 l_old_ext_header_rec.attribute7 := NULL;
32509 l_new_ext_header_rec.attribute7 := NULL;
32510 ELSE
32511 l_old_ext_header_rec.attribute7 := l_hist_csr.old_attribute7;
32512 l_new_ext_header_rec.attribute7 := l_hist_csr.new_attribute7;
32513 END IF;
32514 --
32515 IF NVL(l_hist_csr.old_attribute8,fnd_api.g_miss_char) = NVL(l_hist_csr.new_attribute8,fnd_api.g_miss_char)
32516 THEN
32517 l_old_ext_header_rec.attribute8 := NULL;
32518 l_new_ext_header_rec.attribute8 := NULL;
32519 ELSE
32520 l_old_ext_header_rec.attribute8 := l_hist_csr.old_attribute8;
32521 l_new_ext_header_rec.attribute8 := l_hist_csr.new_attribute8;
32522 END IF;
32523 --
32524 IF NVL(l_hist_csr.old_attribute9,fnd_api.g_miss_char) = NVL(l_hist_csr.new_attribute9,fnd_api.g_miss_char)
32525 THEN
32526 l_old_ext_header_rec.attribute9 := NULL;
32527 l_new_ext_header_rec.attribute9 := NULL;
32528 ELSE
32529 l_old_ext_header_rec.attribute9 := l_hist_csr.old_attribute9;
32530 l_new_ext_header_rec.attribute9 := l_hist_csr.new_attribute9;
32531 END IF;
32532 --
32533 IF NVL(l_hist_csr.old_attribute10,fnd_api.g_miss_char) = NVL(l_hist_csr.new_attribute10,fnd_api.g_miss_char)
32534 THEN
32535 l_old_ext_header_rec.attribute10 := NULL;
32536 l_new_ext_header_rec.attribute10 := NULL;
32537 ELSE
32538 l_old_ext_header_rec.attribute10 := l_hist_csr.old_attribute10;
32539 l_new_ext_header_rec.attribute10 := l_hist_csr.new_attribute10;
32540 END IF;
32541 --
32542 IF NVL(l_hist_csr.old_attribute11,fnd_api.g_miss_char) = NVL(l_hist_csr.new_attribute11,fnd_api.g_miss_char)
32543 THEN
32544 l_old_ext_header_rec.attribute11 := NULL;
32545 l_new_ext_header_rec.attribute11 := NULL;
32546 ELSE
32547 l_old_ext_header_rec.attribute11 := l_hist_csr.old_attribute11;
32548 l_new_ext_header_rec.attribute11 := l_hist_csr.new_attribute11;
32549 END IF;
32550 --
32551 IF NVL(l_hist_csr.old_attribute12,fnd_api.g_miss_char) = NVL(l_hist_csr.new_attribute12,fnd_api.g_miss_char)
32552 THEN
32553 l_old_ext_header_rec.attribute12 := NULL;
32554 l_new_ext_header_rec.attribute12 := NULL;
32555 ELSE
32556 l_old_ext_header_rec.attribute12 := l_hist_csr.old_attribute12;
32557 l_new_ext_header_rec.attribute12 := l_hist_csr.new_attribute12;
32558 END IF;
32559 --
32560 IF NVL(l_hist_csr.old_attribute13,fnd_api.g_miss_char) = NVL(l_hist_csr.new_attribute13,fnd_api.g_miss_char)
32561 THEN
32562 l_old_ext_header_rec.attribute13 := NULL;
32563 l_new_ext_header_rec.attribute13 := NULL;
32564 ELSE
32565 l_old_ext_header_rec.attribute13 := l_hist_csr.old_attribute13;
32566 l_new_ext_header_rec.attribute13 := l_hist_csr.new_attribute13;
32567 END IF;
32568 --
32569 IF NVL(l_hist_csr.old_attribute14,fnd_api.g_miss_char) = NVL(l_hist_csr.new_attribute14,fnd_api.g_miss_char)
32570 THEN
32571 l_old_ext_header_rec.attribute14 := NULL;
32572 l_new_ext_header_rec.attribute14 := NULL;
32573 ELSE
32574 l_old_ext_header_rec.attribute14 := l_hist_csr.old_attribute14;
32575 l_new_ext_header_rec.attribute14 := l_hist_csr.new_attribute14;
32576 END IF;
32577 --
32578 IF NVL(l_hist_csr.old_attribute15,fnd_api.g_miss_char) = NVL(l_hist_csr.new_attribute15,fnd_api.g_miss_char)
32579 THEN
32580 l_old_ext_header_rec.attribute15 := NULL;
32581 l_new_ext_header_rec.attribute15 := NULL;
32582 ELSE
32583 l_old_ext_header_rec.attribute15 := l_hist_csr.old_attribute15;
32584 l_new_ext_header_rec.attribute15 := l_hist_csr.new_attribute15;
32585 END IF;
32586 --
32587 l_ext_header_rec.attribute_value_id := l_hist_csr.attribute_value_id ;
32588 l_ext_header_rec.transaction_id := p_transaction_id;
32589 l_ext_header_rec.old_attribute_value := l_old_ext_header_rec.attribute_value ;
32590 l_ext_header_rec.new_attribute_value := l_new_ext_header_rec.attribute_value ;
32591 l_ext_header_rec.old_active_start_date := l_old_ext_header_rec.active_start_date ;
32592 l_ext_header_rec.new_active_start_date := l_new_ext_header_rec.active_start_date ;
32593 l_ext_header_rec.old_active_end_date := l_old_ext_header_rec.active_end_date ;
32594 l_ext_header_rec.new_active_end_date := l_new_ext_header_rec.active_end_date ;
32595 l_ext_header_rec.old_context := l_old_ext_header_rec.context ;
32596 l_ext_header_rec.new_context := l_new_ext_header_rec.context ;
32597 l_ext_header_rec.old_attribute1 := l_old_ext_header_rec.attribute1 ;
32598 l_ext_header_rec.new_attribute1 := l_new_ext_header_rec.attribute1 ;
32599 l_ext_header_rec.old_attribute2 := l_old_ext_header_rec.attribute2 ;
32600 l_ext_header_rec.new_attribute2 := l_new_ext_header_rec.attribute2 ;
32601 l_ext_header_rec.old_attribute3 := l_old_ext_header_rec.attribute3 ;
32602 l_ext_header_rec.new_attribute3 := l_new_ext_header_rec.attribute3 ;
32603 l_ext_header_rec.old_attribute4 := l_old_ext_header_rec.attribute4 ;
32604 l_ext_header_rec.new_attribute4 := l_new_ext_header_rec.attribute4 ;
32605 l_ext_header_rec.old_attribute5 := l_old_ext_header_rec.attribute5 ;
32606 l_ext_header_rec.new_attribute5 := l_new_ext_header_rec.attribute5 ;
32607 l_ext_header_rec.old_attribute6 := l_old_ext_header_rec.attribute6 ;
32608 l_ext_header_rec.new_attribute6 := l_new_ext_header_rec.attribute6 ;
32609 l_ext_header_rec.old_attribute7 := l_old_ext_header_rec.attribute7 ;
32610 l_ext_header_rec.new_attribute7 := l_new_ext_header_rec.attribute7 ;
32611 l_ext_header_rec.old_attribute8 := l_old_ext_header_rec.attribute8 ;
32612 l_ext_header_rec.new_attribute8 := l_new_ext_header_rec.attribute8 ;
32613 l_ext_header_rec.old_attribute9 := l_old_ext_header_rec.attribute9 ;
32614 l_ext_header_rec.new_attribute9 := l_new_ext_header_rec.attribute9 ;
32615 l_ext_header_rec.old_attribute10 := l_old_ext_header_rec.attribute10 ;
32616 l_ext_header_rec.new_attribute10 := l_new_ext_header_rec.attribute10 ;
32617 l_ext_header_rec.old_attribute11 := l_old_ext_header_rec.attribute11 ;
32618 l_ext_header_rec.new_attribute11 := l_new_ext_header_rec.attribute11 ;
32619 l_ext_header_rec.old_attribute12 := l_old_ext_header_rec.attribute12 ;
32620 l_ext_header_rec.new_attribute12 := l_new_ext_header_rec.attribute12 ;
32621 l_ext_header_rec.old_attribute13 := l_old_ext_header_rec.attribute13 ;
32622 l_ext_header_rec.new_attribute13 := l_new_ext_header_rec.attribute13 ;
32623 l_ext_header_rec.old_attribute14 := l_old_ext_header_rec.attribute14 ;
32624 l_ext_header_rec.new_attribute14 := l_new_ext_header_rec.attribute14 ;
32625 l_ext_header_rec.old_attribute15 := l_old_ext_header_rec.attribute15 ;
32626 l_ext_header_rec.new_attribute15 := l_new_ext_header_rec.attribute15 ;
32627 l_ext_header_rec.attribute_code := l_hist_csr.attribute_code ;
32628
32629 i:=i+1;
32630
32631 x_ext_attrib_val_hist_tbl(i):= l_ext_header_rec;
32632 x_ext_attrib_val_hist_tbl(i).instance_id := l_hist_csr.instance_id;
32633
32634 END LOOP;
32635
32636 -- End of API body
32637
32638 -- Standard check of p_commit.
32639 /*
32640 IF FND_API.To_Boolean( p_commit ) THEN
32641 COMMIT WORK;
32642 END IF;
32643 */
32644
32645 /***** srramakr commented for bug # 3304439
32646 -- Check for the profile option and disable the trace
32647 IF (fnd_profile.value('CSI_ENABLE_SQL_TRACE') = 'Y') THEN
32648 dbms_session.set_sql_trace(false);
32649 END IF;
32650 -- End disable trace
32651 ****/
32652
32653 -- Standard call to get message count and if count is get message info.
32654 FND_MSG_PUB.Count_And_Get
32655 (p_encoded => FND_API.G_FALSE,
32656 p_count => x_msg_count ,
32657 p_data => x_msg_data );
32658 EXCEPTION
32659 WHEN OTHERS THEN
32660 X_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
32661 /*
32662 IF fnd_api.to_boolean(p_commit)
32663 THEN
32664 ROLLBACK TO get_ext_attrib_val_hist;
32665 END IF;
32666 */
32667 IF FND_MSG_PUB.Check_Msg_Level
32668 (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
32669 THEN
32670 FND_MSG_PUB.Add_Exc_Msg
32671 ( G_PKG_NAME, l_api_name );
32672 END IF;
32673 FND_MSG_PUB.Count_And_Get
32674 ( p_encoded => FND_API.G_FALSE,
32675 p_count => x_msg_count,
32676 p_data => x_msg_data);
32677
32678
32679 END get_ext_attrib_val_hist ;
32680
32681
32682 /*------------------------------------------------------*/
32683 /* procedure name: copy_item_instance */
32684 /* description : Copies an instace from an instance. */
32685 /* It has the configuration parameter */
32686 /*------------------------------------------------------*/
32687
32688
32689 PROCEDURE copy_item_instance
32690 ( p_api_version IN NUMBER
32691 ,p_commit IN VARCHAR2
32692 ,p_init_msg_list IN VARCHAR2
32693 ,p_validation_level IN NUMBER
32694 ,p_source_instance_rec IN csi_datastructures_pub.instance_rec
32695 ,p_copy_ext_attribs IN VARCHAR2
32696 ,p_copy_org_assignments IN VARCHAR2
32697 ,p_copy_parties IN VARCHAR2
32698 ,p_copy_contacts IN VARCHAR2
32699 ,p_copy_accounts IN VARCHAR2
32700 ,p_copy_asset_assignments IN VARCHAR2
32701 ,p_copy_pricing_attribs IN VARCHAR2
32702 ,p_copy_inst_children IN VARCHAR2
32703 ,p_call_from_split IN VARCHAR2 -- Added
32704 ,p_txn_rec IN OUT NOCOPY csi_datastructures_pub.transaction_rec
32705 ,x_new_instance_tbl OUT NOCOPY csi_datastructures_pub.instance_tbl
32706 ,x_return_status OUT NOCOPY VARCHAR2
32707 ,x_msg_count OUT NOCOPY NUMBER
32708 ,x_msg_data OUT NOCOPY VARCHAR2
32709 )
32710
32711 IS
32712
32713 l_api_name CONSTANT VARCHAR2(30) := 'copy_item_instance';
32714 l_api_version CONSTANT NUMBER := 1.0;
32715 l_debug_level NUMBER;
32716 l_msg_index NUMBER;
32717 l_msg_count NUMBER;
32718 x_msg_index_out NUMBER;
32719 j NUMBER := 1;
32720 l_curr_instance_rec csi_datastructures_pub.instance_rec;
32721 l_new_instance_rec csi_datastructures_pub.instance_rec;
32722 l_source_child_instance_rec csi_datastructures_pub.instance_rec;
32723 l_asset_tbl csi_datastructures_pub.instance_asset_tbl;
32724 l_asset_header_tbl csi_datastructures_pub.instance_asset_header_tbl;--rk
32725 l_ext_attrib_tbl csi_datastructures_pub.extend_attrib_values_tbl;
32726 l_ext_attrib_def_tbl csi_datastructures_pub.extend_attrib_tbl;
32727 l_ext_attribs_query_rec csi_datastructures_pub.extend_attrib_query_rec;
32728 l_ou_query_rec csi_datastructures_pub.organization_unit_query_rec;
32729 l_org_unit_tbl csi_datastructures_pub.organization_units_tbl;
32730 l_org_unit_header_tbl csi_datastructures_pub.org_units_header_tbl;--rk
32731 l_pricing_attribs_query_rec csi_datastructures_pub.pricing_attribs_query_rec;
32732 l_pricing_attribs_tbl csi_datastructures_pub.pricing_attribs_tbl;
32733 l_account_header_tbl csi_datastructures_pub.party_account_header_tbl;
32734 l_instance_asset_query_rec csi_datastructures_pub.instance_asset_query_rec;
32735 l_instance_asset_rec csi_datastructures_pub.instance_asset_rec;
32736 l_party_query_rec csi_datastructures_pub.party_query_rec;
32737 l_party_tbl csi_datastructures_pub.party_tbl;
32738 l_original_party_tbl csi_datastructures_pub.party_tbl;
32739 l_party_input_tbl csi_datastructures_pub.party_tbl;
32740 l_new_party_tbl csi_datastructures_pub.party_tbl;
32741 l_contact_tbl csi_datastructures_pub.party_tbl;
32742 l_contact_input_tbl csi_datastructures_pub.party_tbl;
32743 l_contact_found_flag BOOLEAN := FALSE;
32744 l_new_contact_tbl csi_datastructures_pub.party_tbl;
32745 l_party_header_tbl csi_datastructures_pub.party_header_tbl;
32746 l_party_account_query_rec csi_datastructures_pub.party_account_query_rec;
32747 l_contact_account_query_rec csi_datastructures_pub.party_account_query_rec;
32748 l_party_account_tbl csi_datastructures_pub.party_account_tbl;
32749 l_contact_account_tbl csi_datastructures_pub.party_account_tbl;
32750 l_temp_party_account_tbl csi_datastructures_pub.party_account_tbl;
32751 l_ii_relationship_rec csi_datastructures_pub.ii_relationship_rec;
32752 l_ii_relationship_tbl csi_datastructures_pub.ii_relationship_tbl;
32753 l_new_ii_relationship_tbl csi_datastructures_pub.ii_relationship_tbl;
32754 l_new_instance_tbl csi_datastructures_pub.instance_tbl;
32755 l_new_child_instance_tbl csi_datastructures_pub.instance_tbl;
32756 l_parent_object_found_flag VARCHAR2(1);
32757 l_attribute_level VARCHAR2(30);
32758 l_temp_acct_hdr_tbl csi_datastructures_pub.party_account_header_tbl;
32759 l_pty_acct_hdr_tbl csi_datastructures_pub.party_account_header_tbl;
32760 k NUMBER;
32761 l_vld_org_id NUMBER;
32762 l_internal_party_id NUMBER;
32763 l_party_id NUMBER;
32764 l_item_attribute_tbl csi_item_instance_pvt.item_attribute_tbl;
32765 l_location_tbl csi_item_instance_pvt.location_tbl;
32766 l_generic_id_tbl csi_item_instance_pvt.generic_id_tbl;
32767 l_lookup_tbl csi_item_instance_pvt.lookup_tbl;
32768 l_ins_count_rec csi_item_instance_pvt.ins_count_rec;
32769 l_map_count NUMBER := 0;
32770 l_rel_count NUMBER := 0;
32771 l_map_inst_tbl csi_item_instance_pvt.map_inst_tbl;
32772 l_par_vld_organization_id NUMBER;
32773 l_asset_lookup_tbl csi_asset_pvt.lookup_tbl;
32774 l_asset_count_rec csi_asset_pvt.asset_count_rec;
32775 l_asset_id_tbl csi_asset_pvt.asset_id_tbl;
32776 l_asset_loc_tbl csi_asset_pvt.asset_loc_tbl;
32777 l_version_label VARCHAR2(30);
32778 l_version_label_rec csi_datastructures_pub.version_label_rec;
32779 p_rel_query_rec csi_datastructures_pub.relationship_query_rec;
32780 l_rel_tbl csi_datastructures_pub.ii_relationship_tbl;
32781 l_ii_relationship_level_tbl csi_ii_relationships_pvt.ii_relationship_level_tbl;
32782 l_obj_id NUMBER;
32783 --
32784 px_oks_txn_inst_tbl oks_ibint_pub.txn_instance_tbl;
32785 l_batch_type VARCHAR2(50);
32786 l_batch_id NUMBER;
32787 --
32788 -- Begin Add Code for Siebel Genesis Project
32789 l_raise_bes_event VARCHAR2(1) := nvl(fnd_profile.value('CSI_RAISE_BES_CUST_OWNED_INSTANCES'),'N');
32790 l_link_to_line_id NUMBER;
32791 l_item_type_code VARCHAR2(30);
32792 l_owner_party_id NUMBER;
32793 -- End Add Code for Siebel Genesis Project
32794 l_contract_exists VARCHAR2(1) := NULL; --Added for Bug 14593787
32795 BEGIN
32796
32797 -- Standard Start of API savepoint
32798 SAVEPOINT copy_item_instance;
32799
32800 -- Standard call to check for call compatibility.
32801 IF NOT FND_API.Compatible_API_Call (l_api_version,
32802 p_api_version,
32803 l_api_name ,
32804 G_PKG_NAME)
32805 THEN
32806 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
32807 END IF;
32808
32809 -- Initialize message list if p_init_msg_list is set to TRUE.
32810 IF FND_API.to_Boolean( p_init_msg_list ) THEN
32811 FND_MSG_PUB.initialize;
32812 END IF;
32813
32814 -- Initialize API return status to success
32815 x_return_status := FND_API.G_RET_STS_SUCCESS;
32816
32817 -- Check the profile option debug_level for debug message reporting
32818 l_debug_level:=fnd_profile.value('CSI_DEBUG_LEVEL');
32819
32820 -- If debug_level = 1 then dump the procedure name
32821 IF (l_debug_level > 0) THEN
32822 csi_gen_utility_pvt.put_line('copy_item_instance ');
32823 END IF;
32824
32825
32826
32827 -- If the debug level = 2 then dump all the parameters values.
32828 IF (l_debug_level > 1) THEN
32829
32830 csi_gen_utility_pvt.put_line('copy_item_instance '||
32831 p_api_version ||'-'
32832 || p_commit ||'-'
32833 || p_init_msg_list ||'-'
32834 || p_validation_level ||'-'
32835 || p_copy_ext_attribs ||'-'
32836 || p_copy_org_assignments ||'-'
32837 || p_copy_parties ||'-'
32838 || p_copy_contacts ||'-'
32839 || p_copy_accounts ||'-'
32840 || p_copy_asset_assignments ||'-'
32841 || p_copy_pricing_attribs ||'-'
32842 || p_copy_inst_children
32843 );
32844 -- Dump item instanc red
32845 csi_gen_utility_pvt.dump_instance_rec(p_source_instance_rec);
32846 -- Dump txn_rec
32847 csi_gen_utility_pvt.dump_txn_rec(p_txn_rec);
32848 END IF;
32849
32850 -- Start API body
32851
32852 -- Get the last_vld_organization_id for the instance_id passed
32853 BEGIN
32854 SELECT last_vld_organization_id
32855 INTO l_par_vld_organization_id
32856 FROM csi_item_instances
32857 WHERE instance_id = p_source_instance_rec.instance_id;
32858 EXCEPTION
32859 WHEN OTHERS THEN
32860 NULL;
32861 END;
32862
32863 -- Added by sguthiva for bug 2186683
32864 IF p_source_instance_rec.vld_organization_id IS NULL OR
32865 p_source_instance_rec.vld_organization_id = fnd_api.g_miss_num
32866 THEN
32867 l_vld_org_id := l_par_vld_organization_id;
32868 END IF;
32869 -- End addition by sguthiva for bug 2186683
32870
32871
32872 IF (p_source_instance_rec.instance_id IS NULL) OR
32873 (p_source_instance_rec.instance_id = FND_API.G_MISS_NUM) THEN
32874 FND_MESSAGE.SET_NAME('CSI','CSI_API_INSTANCE_ID_NULL');
32875 FND_MSG_PUB.Add;
32876 RAISE FND_API.G_EXC_ERROR;
32877 ELSIF NOT (csi_Item_Instance_Vld_pvt.Val_and_get_inst_rec(
32878 p_source_instance_rec.instance_id ,
32879 l_curr_instance_rec )) THEN
32880 RAISE FND_API.G_EXC_ERROR;
32881 END IF;
32882
32883
32884 -- Check if the user has not passed incorrect options for contacts
32885 IF ((p_copy_parties = fnd_api.g_false)
32886 AND (p_copy_contacts = fnd_api.g_true)) THEN
32887 FND_MESSAGE.SET_NAME('CSI','CSI_INVALID_PTY_CONTACT_OPT');
32888 FND_MSG_PUB.Add;
32889 RAISE FND_API.G_EXC_ERROR;
32890 END IF;
32891
32892
32893 -- If the user has passed p_copy_parties as false get only the owner, else get all the parties
32894 IF (p_copy_parties = fnd_api.g_true) THEN
32895 l_party_query_rec.instance_party_id := FND_API.G_MISS_NUM;
32896 l_party_query_rec.instance_id := l_curr_instance_rec.instance_id;
32897 l_party_query_rec.party_id := FND_API.G_MISS_NUM;
32898 l_party_query_rec.relationship_type_code := FND_API.G_MISS_CHAR;
32899
32900 csi_party_relationships_pub.get_inst_party_relationships
32901 ( p_api_version => p_api_version
32902 ,p_commit => p_commit
32903 ,p_init_msg_list => p_init_msg_list
32904 ,p_validation_level => p_validation_level
32905 ,p_party_query_rec => l_party_query_rec
32906 ,p_resolve_id_columns => fnd_api.g_true
32907 ,p_time_stamp => NULL
32908 ,x_party_header_tbl => l_party_header_tbl
32909 ,x_return_status => x_return_status
32910 ,x_msg_count => x_msg_count
32911 ,x_msg_data => x_msg_data
32912 );
32913
32914
32915
32916 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
32917 l_msg_index := 1;
32918 l_msg_count := x_msg_count;
32919 WHILE l_msg_count > 0 LOOP
32920 x_msg_data := FND_MSG_PUB.GET
32921 (l_msg_index,
32922 FND_API.G_FALSE );
32923 csi_gen_utility_pvt.put_line('message data = '||x_msg_data);
32924 l_msg_index := l_msg_index + 1;
32925 l_msg_count := l_msg_count - 1;
32926 END LOOP;
32927 RAISE FND_API.G_EXC_ERROR;
32928 END IF;
32929
32930 ELSE
32931 l_party_query_rec.instance_party_id := FND_API.G_MISS_NUM;
32932 l_party_query_rec.instance_id := l_curr_instance_rec.instance_id;
32933 l_party_query_rec.party_id := FND_API.G_MISS_NUM;
32934 l_party_query_rec.relationship_type_code := 'OWNER';
32935
32936 csi_party_relationships_pub.get_inst_party_relationships
32937 ( p_api_version => p_api_version
32938 ,p_commit => p_commit
32939 ,p_init_msg_list => p_init_msg_list
32940 ,p_validation_level => p_validation_level
32941 ,p_party_query_rec => l_party_query_rec
32942 ,p_resolve_id_columns => fnd_api.g_true
32943 ,p_time_stamp => NULL
32944 ,x_party_header_tbl => l_party_header_tbl
32945 ,x_return_status => x_return_status
32946 ,x_msg_count => x_msg_count
32947 ,x_msg_data => x_msg_data
32948 );
32949
32950 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
32951 l_msg_index := 1;
32952 l_msg_count := x_msg_count;
32953 WHILE l_msg_count > 0 LOOP
32954 x_msg_data := FND_MSG_PUB.GET
32955 (l_msg_index,
32956 FND_API.G_FALSE );
32957 csi_gen_utility_pvt.put_line('message data = '||x_msg_data);
32958 l_msg_index := l_msg_index + 1;
32959 l_msg_count := l_msg_count - 1;
32960 END LOOP;
32961 RAISE FND_API.G_EXC_ERROR;
32962 END IF;
32963 END IF;
32964
32965 -- This is mean to initialize the l_party_table in order to create an instance.
32966 IF l_party_header_tbl.COUNT > 0 THEN /*****First change here 07/27/01 - RK***/
32967 FOR tab_row_party IN l_party_header_tbl.FIRST .. l_party_header_tbl.LAST
32968 LOOP
32969 IF l_party_header_tbl.EXISTS(tab_row_party) THEN
32970 IF l_party_header_tbl(tab_row_party).contact_flag = 'Y' THEN
32971 -- build the contacts table
32972 l_contact_tbl(tab_row_party).instance_party_id := l_party_header_tbl(tab_row_party).instance_party_id;
32973 l_contact_tbl(tab_row_party).instance_id := l_party_header_tbl(tab_row_party).instance_id;
32974 l_contact_tbl(tab_row_party).party_id := l_party_header_tbl(tab_row_party).party_id;
32975 l_contact_tbl(tab_row_party).party_source_table := l_party_header_tbl(tab_row_party).party_source_table;
32976 l_contact_tbl(tab_row_party).relationship_type_code := l_party_header_tbl(tab_row_party).relationship_type_code;
32977 l_contact_tbl(tab_row_party).contact_flag := l_party_header_tbl(tab_row_party).contact_flag;
32978 l_contact_tbl(tab_row_party).contact_ip_id := l_party_header_tbl(tab_row_party).contact_ip_id;
32979 l_contact_tbl(tab_row_party).active_start_date := l_party_header_tbl(tab_row_party).active_start_date;
32980 l_contact_tbl(tab_row_party).active_end_date := l_party_header_tbl(tab_row_party).active_end_date;
32981 l_contact_tbl(tab_row_party).context := l_party_header_tbl(tab_row_party).context;
32982 l_contact_tbl(tab_row_party).attribute1 := l_party_header_tbl(tab_row_party).attribute1;
32983 l_contact_tbl(tab_row_party).attribute2 := l_party_header_tbl(tab_row_party).attribute2;
32984 l_contact_tbl(tab_row_party).attribute3 := l_party_header_tbl(tab_row_party).attribute3;
32985 l_contact_tbl(tab_row_party).attribute4 := l_party_header_tbl(tab_row_party).attribute4;
32986 l_contact_tbl(tab_row_party).attribute5 := l_party_header_tbl(tab_row_party).attribute5;
32987 l_contact_tbl(tab_row_party).attribute6 := l_party_header_tbl(tab_row_party).attribute6;
32988 l_contact_tbl(tab_row_party).attribute7 := l_party_header_tbl(tab_row_party).attribute7;
32989 l_contact_tbl(tab_row_party).attribute8 := l_party_header_tbl(tab_row_party).attribute8;
32990 l_contact_tbl(tab_row_party).attribute9 := l_party_header_tbl(tab_row_party).attribute9;
32991 l_contact_tbl(tab_row_party).attribute10 := l_party_header_tbl(tab_row_party).attribute10;
32992 l_contact_tbl(tab_row_party).attribute11 := l_party_header_tbl(tab_row_party).attribute11;
32993 l_contact_tbl(tab_row_party).attribute12 := l_party_header_tbl(tab_row_party).attribute12;
32994 l_contact_tbl(tab_row_party).attribute13 := l_party_header_tbl(tab_row_party).attribute13;
32995 l_contact_tbl(tab_row_party).attribute14 := l_party_header_tbl(tab_row_party).attribute14;
32996 l_contact_tbl(tab_row_party).attribute15 := l_party_header_tbl(tab_row_party).attribute15;
32997 l_contact_tbl(tab_row_party).object_version_number := l_party_header_tbl(tab_row_party).object_version_number;
32998 --Start fo Addition for the Bugfix 2354589.
32999 l_contact_tbl(tab_row_party).preferred_flag := l_party_header_tbl(tab_row_party).preferred_flag;
33000 l_contact_tbl(tab_row_party).primary_flag := l_party_header_tbl(tab_row_party).primary_flag;
33001 --End of Addition for the Bugfix 2354589.
33002 ELSE -- Build the parties table
33003 l_party_tbl(tab_row_party).instance_party_id := l_party_header_tbl(tab_row_party).instance_party_id;
33004 l_party_tbl(tab_row_party).instance_id := l_party_header_tbl(tab_row_party).instance_id;
33005 l_party_tbl(tab_row_party).party_id := l_party_header_tbl(tab_row_party).party_id;
33006 l_party_tbl(tab_row_party).party_source_table := l_party_header_tbl(tab_row_party).party_source_table;
33007 l_party_tbl(tab_row_party).relationship_type_code := l_party_header_tbl(tab_row_party).relationship_type_code;
33008 l_party_tbl(tab_row_party).contact_flag := l_party_header_tbl(tab_row_party).contact_flag;
33009 l_party_tbl(tab_row_party).contact_ip_id := l_party_header_tbl(tab_row_party).contact_ip_id;
33010 l_party_tbl(tab_row_party).active_start_date := l_party_header_tbl(tab_row_party).active_start_date;
33011 l_party_tbl(tab_row_party).active_end_date := l_party_header_tbl(tab_row_party).active_end_date;
33012 l_party_tbl(tab_row_party).context := l_party_header_tbl(tab_row_party).context;
33013 l_party_tbl(tab_row_party).attribute1 := l_party_header_tbl(tab_row_party).attribute1;
33014 l_party_tbl(tab_row_party).attribute2 := l_party_header_tbl(tab_row_party).attribute2;
33015 l_party_tbl(tab_row_party).attribute3 := l_party_header_tbl(tab_row_party).attribute3;
33016 l_party_tbl(tab_row_party).attribute4 := l_party_header_tbl(tab_row_party).attribute4;
33017 l_party_tbl(tab_row_party).attribute5 := l_party_header_tbl(tab_row_party).attribute5;
33018 l_party_tbl(tab_row_party).attribute6 := l_party_header_tbl(tab_row_party).attribute6;
33019 l_party_tbl(tab_row_party).attribute7 := l_party_header_tbl(tab_row_party).attribute7;
33020 l_party_tbl(tab_row_party).attribute8 := l_party_header_tbl(tab_row_party).attribute8;
33021 l_party_tbl(tab_row_party).attribute9 := l_party_header_tbl(tab_row_party).attribute9;
33022 l_party_tbl(tab_row_party).attribute10 := l_party_header_tbl(tab_row_party).attribute10;
33023 l_party_tbl(tab_row_party).attribute11 := l_party_header_tbl(tab_row_party).attribute11;
33024 l_party_tbl(tab_row_party).attribute12 := l_party_header_tbl(tab_row_party).attribute12;
33025 l_party_tbl(tab_row_party).attribute13 := l_party_header_tbl(tab_row_party).attribute13;
33026 l_party_tbl(tab_row_party).attribute14 := l_party_header_tbl(tab_row_party).attribute14;
33027 l_party_tbl(tab_row_party).attribute15 := l_party_header_tbl(tab_row_party).attribute15;
33028 l_party_tbl(tab_row_party).object_version_number := l_party_header_tbl(tab_row_party).object_version_number;
33029 --Start fo Addition for the Bugfix 2354589.
33030 l_party_tbl(tab_row_party).preferred_flag := l_party_header_tbl(tab_row_party).preferred_flag;
33031 l_party_tbl(tab_row_party).primary_flag := l_party_header_tbl(tab_row_party).primary_flag;
33032 --End of Addition for the Bugfix 2354589.
33033 END IF;
33034 END IF;
33035 END LOOP;
33036 END IF; --l_party_header_tbl.COUNT > 0
33037 l_original_party_tbl := l_party_tbl;
33038 -- Empty the party table
33039 l_party_header_tbl.DELETE;
33040 -- Create asset assignments if requested. Asset_assignment_tbl has alredy been fetched
33041 IF (p_copy_asset_assignments = fnd_api.g_true) THEN
33042 l_instance_asset_query_rec.instance_asset_id := FND_API.G_MISS_NUM;
33043 l_instance_asset_query_rec.instance_id := l_curr_instance_rec.instance_id;
33044 l_instance_asset_query_rec.fa_asset_id := FND_API.G_MISS_NUM;
33045 l_instance_asset_query_rec.fa_book_type_code := FND_API.G_MISS_CHAR;
33046 l_instance_asset_query_rec.fa_location_id := FND_API.G_MISS_NUM;
33047 l_instance_asset_query_rec.update_status := FND_API.G_MISS_CHAR;
33048 csi_asset_pvt.get_instance_assets
33049 ( p_api_version => p_api_version
33050 ,p_commit => p_commit
33051 ,p_init_msg_list => p_init_msg_list
33052 ,p_validation_level => p_validation_level
33053 ,p_instance_asset_query_rec => l_instance_asset_query_rec
33054 ,p_resolve_id_columns => fnd_api.g_true
33055 ,p_time_stamp => NULL
33056 ,x_instance_asset_tbl => l_asset_header_tbl
33057 ,x_return_status => x_return_status
33058 ,x_msg_count => x_msg_count
33059 ,x_msg_data => x_msg_data
33060 );
33061 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
33062 l_msg_index := 1;
33063 l_msg_count := x_msg_count;
33064 WHILE l_msg_count > 0 LOOP
33065 x_msg_data := FND_MSG_PUB.GET
33066 (l_msg_index,
33067 FND_API.G_FALSE );
33068 csi_gen_utility_pvt.put_line('message data = '||x_msg_data);
33069 l_msg_index := l_msg_index + 1;
33070 l_msg_count := l_msg_count - 1;
33071 END LOOP;
33072 RAISE FND_API.G_EXC_ERROR;
33073 END IF;
33074 END IF;
33075 IF l_asset_header_tbl.COUNT > 0 THEN /*****First change here 08/25/01 - RK***/
33076 FOR tab_row_party IN l_asset_header_tbl.FIRST .. l_asset_header_tbl.LAST
33077 LOOP
33078 IF l_asset_header_tbl.EXISTS(tab_row_party) THEN
33079 l_asset_tbl(tab_row_party).instance_asset_id := l_asset_header_tbl(tab_row_party).instance_asset_id;
33080 l_asset_tbl(tab_row_party).instance_id := l_asset_header_tbl(tab_row_party).instance_id;
33081 l_asset_tbl(tab_row_party).fa_asset_id := l_asset_header_tbl(tab_row_party).fa_asset_id;
33082 l_asset_tbl(tab_row_party).fa_book_type_code := l_asset_header_tbl(tab_row_party).fa_book_type_code;
33083 l_asset_tbl(tab_row_party).fa_location_id := l_asset_header_tbl(tab_row_party).fa_location_id;
33084 l_asset_tbl(tab_row_party).asset_quantity := l_asset_header_tbl(tab_row_party).asset_quantity;
33085 l_asset_tbl(tab_row_party).update_status := l_asset_header_tbl(tab_row_party).update_status;
33086 l_asset_tbl(tab_row_party).active_start_date := l_asset_header_tbl(tab_row_party).active_start_date;
33087 l_asset_tbl(tab_row_party).active_end_date := l_asset_header_tbl(tab_row_party).active_end_date;
33088 l_asset_tbl(tab_row_party).object_version_number := l_asset_header_tbl(tab_row_party).object_version_number;
33089 END IF;
33090 END LOOP;
33091 END IF; --l_asset_header_tbl.COUNT > 0
33092
33093 -- Set the non-copiable attributes as follows
33094
33095 l_new_instance_rec.CREATION_COMPLETE_FLAG := p_source_instance_rec.CREATION_COMPLETE_FLAG;
33096 l_new_instance_rec.COMPLETENESS_FLAG := p_source_instance_rec.COMPLETENESS_FLAG;
33097
33098 IF (p_source_instance_rec.EXTERNAL_REFERENCE = FND_API.G_MISS_CHAR) THEN
33099 l_new_instance_rec.EXTERNAL_REFERENCE := l_curr_instance_rec.EXTERNAL_REFERENCE;
33100 ELSE
33101 l_new_instance_rec.EXTERNAL_REFERENCE := p_source_instance_rec.EXTERNAL_REFERENCE;
33102 END IF;
33103 IF ((p_source_instance_rec.INVENTORY_ITEM_ID = FND_API.G_MISS_NUM)
33104 OR (p_source_instance_rec.INVENTORY_ITEM_ID IS NULL)) THEN
33105 l_new_instance_rec.INVENTORY_ITEM_ID := l_curr_instance_rec.INVENTORY_ITEM_ID;
33106 ELSE
33107 l_new_instance_rec.INVENTORY_ITEM_ID := p_source_instance_rec.INVENTORY_ITEM_ID;
33108 END IF;
33109
33110 -- srramakr commented for bug # 2558156
33111 -- Uncommented for bug 2985165
33112 IF p_call_from_split=fnd_api.g_true
33113 THEN
33114 IF (p_source_instance_rec.INVENTORY_REVISION = FND_API.G_MISS_CHAR) THEN
33115 l_new_instance_rec.INVENTORY_REVISION := l_curr_instance_rec.INVENTORY_REVISION;
33116 ELSE
33117 l_new_instance_rec.INVENTORY_REVISION := p_source_instance_rec.INVENTORY_REVISION;
33118 END IF;
33119 ELSE
33120 -- Uncommented for bug 2985165
33121 -- srramakr Bug # 2558156 Revision should not be copied
33122 IF p_source_instance_rec.INVENTORY_REVISION <> FND_API.G_MISS_CHAR THEN
33123 l_new_instance_rec.INVENTORY_REVISION := p_source_instance_rec.INVENTORY_REVISION;
33124 END IF;
33125 END IF;
33126 --
33127 IF ((p_source_instance_rec.INV_MASTER_ORGANIZATION_ID = FND_API.G_MISS_NUM)
33128 OR (p_source_instance_rec.INV_MASTER_ORGANIZATION_ID IS NULL)) THEN
33129 l_new_instance_rec.INV_MASTER_ORGANIZATION_ID := l_curr_instance_rec.INV_MASTER_ORGANIZATION_ID;
33130 ELSE
33131 l_new_instance_rec.INV_MASTER_ORGANIZATION_ID := p_source_instance_rec.INV_MASTER_ORGANIZATION_ID ;
33132 END IF;
33133 IF (p_source_instance_rec.SERIAL_NUMBER <> FND_API.G_MISS_CHAR) THEN
33134 l_new_instance_rec.SERIAL_NUMBER := p_source_instance_rec.SERIAL_NUMBER;
33135 END IF;
33136 IF ((p_source_instance_rec.MFG_SERIAL_NUMBER_FLAG = FND_API.G_MISS_CHAR)
33137 OR (p_source_instance_rec.MFG_SERIAL_NUMBER_FLAG IS NULL)) THEN
33138 l_new_instance_rec.MFG_SERIAL_NUMBER_FLAG := l_curr_instance_rec.MFG_SERIAL_NUMBER_FLAG;
33139 ELSE
33140 l_new_instance_rec.MFG_SERIAL_NUMBER_FLAG := p_source_instance_rec.MFG_SERIAL_NUMBER_FLAG ;
33141 END IF;
33142 IF (p_source_instance_rec.LOT_NUMBER = FND_API.G_MISS_CHAR) THEN
33143 l_new_instance_rec.LOT_NUMBER := l_curr_instance_rec.LOT_NUMBER;
33144 ELSE
33145 l_new_instance_rec.LOT_NUMBER := p_source_instance_rec.LOT_NUMBER;
33146 END IF;
33147 IF ((p_source_instance_rec.QUANTITY = FND_API.G_MISS_NUM)
33148 OR (p_source_instance_rec.QUANTITY IS NULL)) THEN
33149 l_new_instance_rec.QUANTITY := l_curr_instance_rec.QUANTITY;
33150 ELSE
33151 l_new_instance_rec.QUANTITY := p_source_instance_rec.QUANTITY ;
33152 END IF;
33153 IF ((p_source_instance_rec.UNIT_OF_MEASURE = FND_API.G_MISS_CHAR)
33154 OR (p_source_instance_rec.UNIT_OF_MEASURE IS NULL)) THEN
33155 l_new_instance_rec.UNIT_OF_MEASURE := l_curr_instance_rec.UNIT_OF_MEASURE;
33156 ELSE
33157 l_new_instance_rec.UNIT_OF_MEASURE := p_source_instance_rec.UNIT_OF_MEASURE ;
33158 END IF;
33159 IF (p_source_instance_rec.ACCOUNTING_CLASS_CODE = FND_API.G_MISS_CHAR) THEN
33160 l_new_instance_rec.ACCOUNTING_CLASS_CODE := l_curr_instance_rec.ACCOUNTING_CLASS_CODE;
33161 ELSE
33162 l_new_instance_rec.ACCOUNTING_CLASS_CODE := l_curr_instance_rec.ACCOUNTING_CLASS_CODE;
33163 END IF;
33164 IF (p_source_instance_rec.INSTANCE_CONDITION_ID = FND_API.G_MISS_NUM) THEN
33165 l_new_instance_rec.INSTANCE_CONDITION_ID := l_curr_instance_rec.INSTANCE_CONDITION_ID;
33166 ELSE
33167 l_new_instance_rec.INSTANCE_CONDITION_ID := p_source_instance_rec.INSTANCE_CONDITION_ID;
33168 END IF;
33169 IF ((p_source_instance_rec.INSTANCE_STATUS_ID = FND_API.G_MISS_NUM)
33170 OR (p_source_instance_rec.INSTANCE_STATUS_ID IS NULL)) THEN
33171 l_new_instance_rec.INSTANCE_STATUS_ID := l_curr_instance_rec.INSTANCE_STATUS_ID;
33172 ELSE
33173 l_new_instance_rec.INSTANCE_STATUS_ID := p_source_instance_rec.INSTANCE_STATUS_ID ;
33174 END IF;
33175 IF ((p_source_instance_rec.CUSTOMER_VIEW_FLAG = FND_API.G_MISS_CHAR)
33176 OR (p_source_instance_rec.CUSTOMER_VIEW_FLAG IS NULL )) THEN
33177 l_new_instance_rec.CUSTOMER_VIEW_FLAG := l_curr_instance_rec.CUSTOMER_VIEW_FLAG;
33178 ELSE
33179 l_new_instance_rec.CUSTOMER_VIEW_FLAG := p_source_instance_rec.CUSTOMER_VIEW_FLAG ;
33180 END IF;
33181 IF ((p_source_instance_rec.MERCHANT_VIEW_FLAG = FND_API.G_MISS_CHAR)
33182 OR (p_source_instance_rec.MERCHANT_VIEW_FLAG IS NULL)) THEN
33183 l_new_instance_rec.MERCHANT_VIEW_FLAG := l_curr_instance_rec.MERCHANT_VIEW_FLAG;
33184 ELSE
33185 l_new_instance_rec.MERCHANT_VIEW_FLAG := p_source_instance_rec.MERCHANT_VIEW_FLAG ;
33186 END IF;
33187 IF (p_source_instance_rec.SELLABLE_FLAG = FND_API.G_MISS_CHAR) THEN
33188 l_new_instance_rec.SELLABLE_FLAG := l_curr_instance_rec.SELLABLE_FLAG;
33189 ELSE
33190 l_new_instance_rec.SELLABLE_FLAG := p_source_instance_rec.SELLABLE_FLAG;
33191 END IF;
33192 IF (p_source_instance_rec.SYSTEM_ID = FND_API.G_MISS_NUM) THEN
33193 l_new_instance_rec.SYSTEM_ID := l_curr_instance_rec.SYSTEM_ID;
33194 ELSE
33195 l_new_instance_rec.SYSTEM_ID := p_source_instance_rec.SYSTEM_ID;
33196 END IF;
33197 IF (p_source_instance_rec.INSTANCE_TYPE_CODE = FND_API.G_MISS_CHAR) THEN
33198 l_new_instance_rec.INSTANCE_TYPE_CODE := l_curr_instance_rec.INSTANCE_TYPE_CODE;
33199 ELSE
33200 l_new_instance_rec.INSTANCE_TYPE_CODE := p_source_instance_rec.INSTANCE_TYPE_CODE;
33201 END IF;
33202 IF (p_source_instance_rec.ACTIVE_START_DATE = FND_API.G_MISS_DATE) THEN
33203 l_new_instance_rec.ACTIVE_START_DATE := l_curr_instance_rec.ACTIVE_START_DATE;
33204 ELSE
33205 l_new_instance_rec.ACTIVE_START_DATE := p_source_instance_rec.ACTIVE_START_DATE;
33206 END IF;
33207 IF (p_source_instance_rec.ACTIVE_END_DATE = FND_API.G_MISS_DATE) THEN
33208 l_new_instance_rec.ACTIVE_END_DATE := l_curr_instance_rec.ACTIVE_END_DATE;
33209 ELSE
33210 l_new_instance_rec.ACTIVE_END_DATE := p_source_instance_rec.ACTIVE_END_DATE;
33211 END IF;
33212 IF (p_source_instance_rec.LOCATION_TYPE_CODE = FND_API.G_MISS_CHAR) THEN
33213 l_new_instance_rec.LOCATION_TYPE_CODE := l_curr_instance_rec.LOCATION_TYPE_CODE;
33214 ELSE
33215 l_new_instance_rec.LOCATION_TYPE_CODE := p_source_instance_rec.LOCATION_TYPE_CODE;
33216 END IF;
33217 IF (p_source_instance_rec.LOCATION_ID = FND_API.G_MISS_NUM) THEN
33218 l_new_instance_rec.LOCATION_ID := l_curr_instance_rec.LOCATION_ID;
33219 ELSE
33220 l_new_instance_rec.LOCATION_ID := p_source_instance_rec.LOCATION_ID;
33221 END IF;
33222 IF (p_source_instance_rec.INV_ORGANIZATION_ID = FND_API.G_MISS_NUM) THEN
33223 l_new_instance_rec.INV_ORGANIZATION_ID := l_curr_instance_rec.INV_ORGANIZATION_ID;
33224 ELSE
33225 l_new_instance_rec.INV_ORGANIZATION_ID := p_source_instance_rec.INV_ORGANIZATION_ID;
33226 END IF;
33227 IF (p_source_instance_rec.INV_SUBINVENTORY_NAME = FND_API.G_MISS_CHAR) THEN
33228 l_new_instance_rec.INV_SUBINVENTORY_NAME := l_curr_instance_rec.INV_SUBINVENTORY_NAME;
33229 ELSE
33230 l_new_instance_rec.INV_SUBINVENTORY_NAME := p_source_instance_rec.INV_SUBINVENTORY_NAME;
33231 END IF;
33232 IF (p_source_instance_rec.INV_LOCATOR_ID = FND_API.G_MISS_NUM) THEN
33233 l_new_instance_rec.INV_LOCATOR_ID := l_curr_instance_rec.INV_LOCATOR_ID;
33234 ELSE
33235 l_new_instance_rec.INV_LOCATOR_ID := p_source_instance_rec.INV_LOCATOR_ID;
33236 END IF;
33237 IF (p_source_instance_rec.PA_PROJECT_ID = FND_API.G_MISS_NUM) THEN
33238 l_new_instance_rec.PA_PROJECT_ID := l_curr_instance_rec.PA_PROJECT_ID;
33239 ELSE
33240 l_new_instance_rec.PA_PROJECT_ID := p_source_instance_rec.PA_PROJECT_ID;
33241 END IF;
33242 IF (p_source_instance_rec.PA_PROJECT_TASK_ID = FND_API.G_MISS_NUM) THEN
33243 l_new_instance_rec.PA_PROJECT_TASK_ID := l_curr_instance_rec.PA_PROJECT_TASK_ID;
33244 ELSE
33245 l_new_instance_rec.PA_PROJECT_TASK_ID := p_source_instance_rec.PA_PROJECT_TASK_ID;
33246 END IF;
33247 IF (p_source_instance_rec.IN_TRANSIT_ORDER_LINE_ID = FND_API.G_MISS_NUM) THEN
33248 l_new_instance_rec.IN_TRANSIT_ORDER_LINE_ID := l_curr_instance_rec.IN_TRANSIT_ORDER_LINE_ID;
33249 ELSE
33250 l_new_instance_rec.IN_TRANSIT_ORDER_LINE_ID := p_source_instance_rec.IN_TRANSIT_ORDER_LINE_ID;
33251 END IF;
33252 IF (p_source_instance_rec.WIP_JOB_ID = FND_API.G_MISS_NUM) THEN
33253 l_new_instance_rec.WIP_JOB_ID := l_curr_instance_rec.WIP_JOB_ID;
33254 ELSE
33255 l_new_instance_rec.WIP_JOB_ID := p_source_instance_rec.WIP_JOB_ID;
33256 END IF;
33257 IF (p_source_instance_rec.PO_ORDER_LINE_ID = FND_API.G_MISS_NUM) THEN
33258 l_new_instance_rec.PO_ORDER_LINE_ID := l_curr_instance_rec.PO_ORDER_LINE_ID;
33259 ELSE
33260 l_new_instance_rec.PO_ORDER_LINE_ID := p_source_instance_rec.PO_ORDER_LINE_ID;
33261 END IF;
33262 IF (p_source_instance_rec.LAST_TXN_LINE_DETAIL_ID = FND_API.G_MISS_NUM) THEN
33263 l_new_instance_rec.LAST_TXN_LINE_DETAIL_ID := l_curr_instance_rec.LAST_TXN_LINE_DETAIL_ID;
33264 ELSE
33265 l_new_instance_rec.LAST_TXN_LINE_DETAIL_ID := p_source_instance_rec.LAST_TXN_LINE_DETAIL_ID;
33266 END IF;
33267 IF (p_source_instance_rec.LAST_OE_RMA_LINE_ID = FND_API.G_MISS_NUM) THEN
33268 l_new_instance_rec.LAST_OE_RMA_LINE_ID := l_curr_instance_rec.LAST_OE_RMA_LINE_ID;
33269 ELSE
33270 l_new_instance_rec.LAST_OE_RMA_LINE_ID := p_source_instance_rec.LAST_OE_RMA_LINE_ID;
33271 END IF;
33272 IF (p_source_instance_rec.LAST_PO_PO_LINE_ID = FND_API.G_MISS_NUM) THEN
33273 l_new_instance_rec.LAST_PO_PO_LINE_ID := l_curr_instance_rec.LAST_PO_PO_LINE_ID ;
33274 ELSE
33275 l_new_instance_rec.LAST_PO_PO_LINE_ID := p_source_instance_rec.LAST_PO_PO_LINE_ID ;
33276 END IF;
33277 IF (p_source_instance_rec.LAST_OE_PO_NUMBER = FND_API.G_MISS_CHAR) THEN
33278 l_new_instance_rec.LAST_OE_PO_NUMBER := l_curr_instance_rec.LAST_OE_PO_NUMBER;
33279 ELSE
33280 l_new_instance_rec.LAST_OE_PO_NUMBER := p_source_instance_rec.LAST_OE_PO_NUMBER;
33281 END IF;
33282 IF (p_source_instance_rec.LAST_WIP_JOB_ID = FND_API.G_MISS_NUM) THEN
33283 l_new_instance_rec.LAST_WIP_JOB_ID := l_curr_instance_rec.LAST_WIP_JOB_ID;
33284 ELSE
33285 l_new_instance_rec.LAST_WIP_JOB_ID := p_source_instance_rec.LAST_WIP_JOB_ID;
33286 END IF;
33287 IF (p_source_instance_rec.LAST_PA_PROJECT_ID = FND_API.G_MISS_NUM) THEN
33288 l_new_instance_rec.LAST_PA_PROJECT_ID := l_curr_instance_rec.LAST_PA_PROJECT_ID;
33289 ELSE
33290 l_new_instance_rec.LAST_PA_PROJECT_ID := p_source_instance_rec.LAST_PA_PROJECT_ID;
33291 END IF;
33292 IF (p_source_instance_rec.LAST_PA_TASK_ID = FND_API.G_MISS_NUM) THEN
33293 l_new_instance_rec.LAST_PA_TASK_ID := l_curr_instance_rec.LAST_PA_TASK_ID;
33294 ELSE
33295 l_new_instance_rec.LAST_PA_TASK_ID := p_source_instance_rec.LAST_PA_TASK_ID;
33296 END IF;
33297 IF (p_source_instance_rec.LAST_OE_AGREEMENT_ID = FND_API.G_MISS_NUM) THEN
33298 l_new_instance_rec.LAST_OE_AGREEMENT_ID := l_curr_instance_rec.LAST_OE_AGREEMENT_ID;
33299 ELSE
33300 l_new_instance_rec.LAST_OE_AGREEMENT_ID := p_source_instance_rec.LAST_OE_AGREEMENT_ID;
33301 END IF;
33302 IF (p_source_instance_rec.INSTALL_DATE = FND_API.G_MISS_DATE) THEN
33303 l_new_instance_rec.INSTALL_DATE := l_curr_instance_rec.INSTALL_DATE;
33304 ELSE
33305 l_new_instance_rec.INSTALL_DATE := p_source_instance_rec.INSTALL_DATE;
33306 END IF;
33307 IF (p_source_instance_rec.MANUALLY_CREATED_FLAG = FND_API.G_MISS_CHAR) THEN
33308 l_new_instance_rec.MANUALLY_CREATED_FLAG := l_curr_instance_rec.MANUALLY_CREATED_FLAG;
33309 ELSE
33310 l_new_instance_rec.MANUALLY_CREATED_FLAG := p_source_instance_rec.MANUALLY_CREATED_FLAG;
33311 END IF;
33312 IF (p_source_instance_rec.RETURN_BY_DATE = FND_API.G_MISS_DATE) THEN
33313 l_new_instance_rec.RETURN_BY_DATE := l_curr_instance_rec.RETURN_BY_DATE ;
33314 ELSE
33315 l_new_instance_rec.RETURN_BY_DATE := p_source_instance_rec.RETURN_BY_DATE ;
33316 END IF;
33317 IF (p_source_instance_rec.ACTUAL_RETURN_DATE = FND_API.G_MISS_DATE) THEN
33318 l_new_instance_rec.ACTUAL_RETURN_DATE := l_curr_instance_rec.ACTUAL_RETURN_DATE;
33319 ELSE
33320 l_new_instance_rec.ACTUAL_RETURN_DATE := p_source_instance_rec.ACTUAL_RETURN_DATE;
33321 END IF;
33322 IF (p_source_instance_rec.VERSION_LABEL = FND_API.G_MISS_CHAR) THEN
33323 l_new_instance_rec.VERSION_LABEL := l_curr_instance_rec.VERSION_LABEL;
33324 ELSE
33325 l_new_instance_rec.VERSION_LABEL := p_source_instance_rec.VERSION_LABEL;
33326 END IF;
33327 IF (p_source_instance_rec.VERSION_LABEL_DESCRIPTION = FND_API.G_MISS_CHAR) THEN
33328 l_new_instance_rec.VERSION_LABEL_DESCRIPTION := l_curr_instance_rec.VERSION_LABEL_DESCRIPTION;
33329 ELSE
33330 l_new_instance_rec.VERSION_LABEL_DESCRIPTION := p_source_instance_rec.VERSION_LABEL_DESCRIPTION;
33331 END IF;
33332 IF (p_source_instance_rec.CONTEXT = FND_API.G_MISS_CHAR) THEN
33333 l_new_instance_rec.CONTEXT := l_curr_instance_rec.CONTEXT;
33334 ELSE
33335 l_new_instance_rec.CONTEXT := p_source_instance_rec.CONTEXT;
33336 END IF;
33337 IF (p_source_instance_rec.ATTRIBUTE1 = FND_API.G_MISS_CHAR) THEN
33338 l_new_instance_rec.ATTRIBUTE1 := l_curr_instance_rec.ATTRIBUTE1;
33339 ELSE
33340 l_new_instance_rec.ATTRIBUTE1 := p_source_instance_rec.ATTRIBUTE1;
33341 END IF;
33342 IF (p_source_instance_rec.ATTRIBUTE2 = FND_API.G_MISS_CHAR) THEN
33343 l_new_instance_rec.ATTRIBUTE2 := l_curr_instance_rec.ATTRIBUTE2;
33344 ELSE
33345 l_new_instance_rec.ATTRIBUTE2 := p_source_instance_rec.ATTRIBUTE2;
33346 END IF;
33347 IF (p_source_instance_rec.ATTRIBUTE3 = FND_API.G_MISS_CHAR) THEN
33348 l_new_instance_rec.ATTRIBUTE3 := l_curr_instance_rec.ATTRIBUTE3;
33349 ELSE
33350 l_new_instance_rec.ATTRIBUTE3 := p_source_instance_rec.ATTRIBUTE3;
33351 END IF;
33352 IF (p_source_instance_rec.ATTRIBUTE4 = FND_API.G_MISS_CHAR) THEN
33353 l_new_instance_rec.ATTRIBUTE4 := l_curr_instance_rec.ATTRIBUTE4;
33354 ELSE
33355 l_new_instance_rec.ATTRIBUTE4 := p_source_instance_rec.ATTRIBUTE4;
33356 END IF;
33357 IF (p_source_instance_rec.ATTRIBUTE5 = FND_API.G_MISS_CHAR) THEN
33358 l_new_instance_rec.ATTRIBUTE5 := l_curr_instance_rec.ATTRIBUTE5;
33359 ELSE
33360 l_new_instance_rec.ATTRIBUTE5 := p_source_instance_rec.ATTRIBUTE5;
33361 END IF;
33362 IF (p_source_instance_rec.ATTRIBUTE6 = FND_API.G_MISS_CHAR) THEN
33363 l_new_instance_rec.ATTRIBUTE6 := l_curr_instance_rec.ATTRIBUTE6;
33364 ELSE
33365 l_new_instance_rec.ATTRIBUTE6 := p_source_instance_rec.ATTRIBUTE6;
33366 END IF;
33367 IF (p_source_instance_rec.ATTRIBUTE7 = FND_API.G_MISS_CHAR) THEN
33368 l_new_instance_rec.ATTRIBUTE7 := l_curr_instance_rec.ATTRIBUTE7;
33369 ELSE
33370 l_new_instance_rec.ATTRIBUTE7 := p_source_instance_rec.ATTRIBUTE7;
33371 END IF;
33372 IF (p_source_instance_rec.ATTRIBUTE8 = FND_API.G_MISS_CHAR) THEN
33373 l_new_instance_rec.ATTRIBUTE8 := l_curr_instance_rec.ATTRIBUTE8;
33374 ELSE
33375 l_new_instance_rec.ATTRIBUTE8 := p_source_instance_rec.ATTRIBUTE8;
33376 END IF;
33377 -- Added for bug 2681745
33378 IF (p_source_instance_rec.ATTRIBUTE9 = FND_API.G_MISS_CHAR) THEN
33379 l_new_instance_rec.ATTRIBUTE9 := l_curr_instance_rec.ATTRIBUTE9;
33380 ELSE
33381 l_new_instance_rec.ATTRIBUTE9 := p_source_instance_rec.ATTRIBUTE9;
33382 END IF;
33383 -- End addition for bug 2681745
33384 IF (p_source_instance_rec.ATTRIBUTE10 = FND_API.G_MISS_CHAR) THEN
33385 l_new_instance_rec.ATTRIBUTE10 := l_curr_instance_rec.ATTRIBUTE10;
33386 ELSE
33387 l_new_instance_rec.ATTRIBUTE10 := p_source_instance_rec.ATTRIBUTE10;
33388 END IF;
33389 IF (p_source_instance_rec.ATTRIBUTE11 = FND_API.G_MISS_CHAR) THEN
33390 l_new_instance_rec.ATTRIBUTE11 := l_curr_instance_rec.ATTRIBUTE11;
33391 ELSE
33392 l_new_instance_rec.ATTRIBUTE11 := p_source_instance_rec.ATTRIBUTE11;
33393 END IF;
33394 IF (p_source_instance_rec.ATTRIBUTE12 = FND_API.G_MISS_CHAR) THEN
33395 l_new_instance_rec.ATTRIBUTE12 := l_curr_instance_rec.ATTRIBUTE12;
33396 ELSE
33397 l_new_instance_rec.ATTRIBUTE12 := p_source_instance_rec.ATTRIBUTE12;
33398 END IF;
33399 IF (p_source_instance_rec.ATTRIBUTE13 = FND_API.G_MISS_CHAR) THEN
33400 l_new_instance_rec.ATTRIBUTE13 := l_curr_instance_rec.ATTRIBUTE13;
33401 ELSE
33402 l_new_instance_rec.ATTRIBUTE13 := p_source_instance_rec.ATTRIBUTE13;
33403 END IF;
33404 IF (p_source_instance_rec.ATTRIBUTE14 = FND_API.G_MISS_CHAR) THEN
33405 l_new_instance_rec.ATTRIBUTE14 := l_curr_instance_rec.ATTRIBUTE14;
33406 ELSE
33407 l_new_instance_rec.ATTRIBUTE14 := p_source_instance_rec.ATTRIBUTE14;
33408 END IF;
33409 IF (p_source_instance_rec.ATTRIBUTE15 = FND_API.G_MISS_CHAR) THEN
33410 l_new_instance_rec.ATTRIBUTE15 := l_curr_instance_rec.ATTRIBUTE15;
33411 ELSE
33412 l_new_instance_rec.ATTRIBUTE15 := p_source_instance_rec.ATTRIBUTE15;
33413 END IF;
33414 IF (p_source_instance_rec.LAST_OE_ORDER_LINE_ID = FND_API.G_MISS_NUM) THEN
33415 l_new_instance_rec.LAST_OE_ORDER_LINE_ID := l_curr_instance_rec.LAST_OE_ORDER_LINE_ID;
33416 ELSE
33417 l_new_instance_rec.LAST_OE_ORDER_LINE_ID := p_source_instance_rec.LAST_OE_ORDER_LINE_ID;
33418 END IF;
33419 IF (p_source_instance_rec.LAST_OE_RMA_LINE_ID = FND_API.G_MISS_NUM) THEN
33420 l_new_instance_rec.LAST_OE_RMA_LINE_ID := l_curr_instance_rec.LAST_OE_RMA_LINE_ID;
33421 ELSE
33422 l_new_instance_rec.LAST_OE_RMA_LINE_ID := p_source_instance_rec.LAST_OE_RMA_LINE_ID;
33423 END IF;
33424 IF (p_source_instance_rec.LAST_PO_PO_LINE_ID = FND_API.G_MISS_NUM) THEN
33425 l_new_instance_rec.LAST_PO_PO_LINE_ID := l_curr_instance_rec.LAST_PO_PO_LINE_ID;
33426 ELSE
33427 l_new_instance_rec.LAST_PO_PO_LINE_ID := p_source_instance_rec.LAST_PO_PO_LINE_ID;
33428 END IF;
33429 IF (p_source_instance_rec.LAST_OE_PO_NUMBER = FND_API.G_MISS_CHAR) THEN
33430 l_new_instance_rec.LAST_OE_PO_NUMBER := l_curr_instance_rec.LAST_OE_PO_NUMBER;
33431 ELSE
33432 l_new_instance_rec.LAST_OE_PO_NUMBER := p_source_instance_rec.LAST_OE_PO_NUMBER;
33433 END IF;
33434 IF (p_source_instance_rec.LAST_WIP_JOB_ID = FND_API.G_MISS_NUM) THEN
33435 l_new_instance_rec.LAST_WIP_JOB_ID := l_curr_instance_rec.LAST_WIP_JOB_ID;
33436 ELSE
33437 l_new_instance_rec.LAST_WIP_JOB_ID := p_source_instance_rec.LAST_WIP_JOB_ID;
33438 END IF;
33439 IF (p_source_instance_rec.LAST_PA_PROJECT_ID = FND_API.G_MISS_NUM) THEN
33440 l_new_instance_rec.LAST_PA_PROJECT_ID := l_curr_instance_rec.LAST_PA_PROJECT_ID;
33441 ELSE
33442 l_new_instance_rec.LAST_PA_PROJECT_ID := p_source_instance_rec.LAST_PA_PROJECT_ID;
33443 END IF;
33444 IF (p_source_instance_rec.LAST_PA_TASK_ID = FND_API.G_MISS_NUM) THEN
33445 l_new_instance_rec.LAST_PA_TASK_ID := l_curr_instance_rec.LAST_PA_TASK_ID ;
33446 ELSE
33447 l_new_instance_rec.LAST_PA_TASK_ID := p_source_instance_rec.LAST_PA_TASK_ID ;
33448 END IF;
33449 IF (p_source_instance_rec.LAST_OE_AGREEMENT_ID = FND_API.G_MISS_NUM) THEN
33450 l_new_instance_rec.LAST_OE_AGREEMENT_ID := l_curr_instance_rec.LAST_OE_AGREEMENT_ID ;
33451 ELSE
33452 l_new_instance_rec.LAST_OE_AGREEMENT_ID := p_source_instance_rec.LAST_OE_AGREEMENT_ID ;
33453 END IF;
33454 IF (p_source_instance_rec.INSTALL_DATE = FND_API.G_MISS_DATE) THEN
33455 l_new_instance_rec.INSTALL_DATE := l_curr_instance_rec.INSTALL_DATE;
33456 ELSE
33457 l_new_instance_rec.INSTALL_DATE := p_source_instance_rec.INSTALL_DATE;
33458 END IF;
33459 IF (p_source_instance_rec.RETURN_BY_DATE = FND_API.G_MISS_DATE) THEN
33460 l_new_instance_rec.RETURN_BY_DATE := l_curr_instance_rec.RETURN_BY_DATE;
33461 ELSE
33462 l_new_instance_rec.RETURN_BY_DATE := p_source_instance_rec.RETURN_BY_DATE;
33463 END IF;
33464 IF (p_source_instance_rec.ACTUAL_RETURN_DATE = FND_API.G_MISS_DATE) THEN
33465 l_new_instance_rec.ACTUAL_RETURN_DATE := l_curr_instance_rec.ACTUAL_RETURN_DATE;
33466 ELSE
33467 l_new_instance_rec.ACTUAL_RETURN_DATE := p_source_instance_rec.ACTUAL_RETURN_DATE;
33468 END IF;
33469 --start of code for eam integration--
33470 IF (p_source_instance_rec.NETWORK_ASSET_FLAG = FND_API.G_MISS_CHAR) THEN
33471 l_new_instance_rec.NETWORK_ASSET_FLAG := l_curr_instance_rec.NETWORK_ASSET_FLAG;
33472 ELSE
33473 l_new_instance_rec.NETWORK_ASSET_FLAG := p_source_instance_rec.NETWORK_ASSET_FLAG;
33474 END IF;
33475
33476 IF (p_source_instance_rec.MAINTAINABLE_FLAG = FND_API.G_MISS_CHAR) THEN
33477 l_new_instance_rec.MAINTAINABLE_FLAG := l_curr_instance_rec.MAINTAINABLE_FLAG;
33478 ELSE
33479 l_new_instance_rec.MAINTAINABLE_FLAG := p_source_instance_rec.MAINTAINABLE_FLAG;
33480 END IF;
33481
33482 IF (p_source_instance_rec.PN_LOCATION_ID = FND_API.G_MISS_NUM) THEN
33483 l_new_instance_rec.PN_LOCATION_ID := l_curr_instance_rec.PN_LOCATION_ID;
33484 ELSE
33485 l_new_instance_rec.PN_LOCATION_ID := p_source_instance_rec.PN_LOCATION_ID;
33486 END IF;
33487
33488 IF (p_source_instance_rec.ASSET_CRITICALITY_CODE = FND_API.G_MISS_CHAR) THEN
33489 l_new_instance_rec.ASSET_CRITICALITY_CODE := l_curr_instance_rec.ASSET_CRITICALITY_CODE;
33490 ELSE
33491 l_new_instance_rec.ASSET_CRITICALITY_CODE := p_source_instance_rec.ASSET_CRITICALITY_CODE;
33492 END IF;
33493
33494 IF (p_source_instance_rec.CATEGORY_ID = FND_API.G_MISS_NUM) THEN
33495 l_new_instance_rec.CATEGORY_ID := l_curr_instance_rec.CATEGORY_ID;
33496 ELSE
33497 l_new_instance_rec.CATEGORY_ID := p_source_instance_rec.CATEGORY_ID;
33498 END IF;
33499
33500 IF (p_source_instance_rec.EQUIPMENT_GEN_OBJECT_ID = FND_API.G_MISS_NUM) THEN
33501 l_new_instance_rec.EQUIPMENT_GEN_OBJECT_ID := l_curr_instance_rec.EQUIPMENT_GEN_OBJECT_ID;
33502 ELSE
33503 l_new_instance_rec.EQUIPMENT_GEN_OBJECT_ID := p_source_instance_rec.EQUIPMENT_GEN_OBJECT_ID;
33504 END IF;
33505
33506 IF (p_source_instance_rec.INSTANTIATION_FLAG = FND_API.G_MISS_CHAR) THEN
33507 l_new_instance_rec.INSTANTIATION_FLAG := l_curr_instance_rec.INSTANTIATION_FLAG;
33508 ELSE
33509 l_new_instance_rec.INSTANTIATION_FLAG := p_source_instance_rec.INSTANTIATION_FLAG;
33510 END IF;
33511
33512 IF (p_source_instance_rec.LINEAR_LOCATION_ID = FND_API.G_MISS_NUM) THEN
33513 l_new_instance_rec.LINEAR_LOCATION_ID := l_curr_instance_rec.LINEAR_LOCATION_ID ;
33514 ELSE
33515 l_new_instance_rec.LINEAR_LOCATION_ID := p_source_instance_rec.LINEAR_LOCATION_ID ;
33516 END IF;
33517
33518 IF (p_source_instance_rec.OPERATIONAL_LOG_FLAG = FND_API.G_MISS_CHAR) THEN
33519 l_new_instance_rec.OPERATIONAL_LOG_FLAG := l_curr_instance_rec.OPERATIONAL_LOG_FLAG;
33520 ELSE
33521 l_new_instance_rec.OPERATIONAL_LOG_FLAG := p_source_instance_rec.OPERATIONAL_LOG_FLAG;
33522 END IF;
33523
33524 IF (p_source_instance_rec.CHECKIN_STATUS = FND_API.G_MISS_NUM) THEN
33525 l_new_instance_rec.CHECKIN_STATUS := l_curr_instance_rec.CHECKIN_STATUS;
33526 ELSE
33527 l_new_instance_rec.CHECKIN_STATUS := p_source_instance_rec.CHECKIN_STATUS;
33528 END IF;
33529
33530 IF (p_source_instance_rec.SUPPLIER_WARRANTY_EXP_DATE = FND_API.G_MISS_DATE) THEN
33531 l_new_instance_rec.SUPPLIER_WARRANTY_EXP_DATE := l_curr_instance_rec.SUPPLIER_WARRANTY_EXP_DATE;
33532 ELSE
33533 l_new_instance_rec.SUPPLIER_WARRANTY_EXP_DATE := p_source_instance_rec.SUPPLIER_WARRANTY_EXP_DATE;
33534 END IF;
33535
33536 IF (p_source_instance_rec.ATTRIBUTE16 = FND_API.G_MISS_CHAR) THEN
33537 l_new_instance_rec.ATTRIBUTE16 := l_curr_instance_rec.ATTRIBUTE16;
33538 ELSE
33539 l_new_instance_rec.ATTRIBUTE16 := p_source_instance_rec.ATTRIBUTE16;
33540 END IF;
33541
33542 IF (p_source_instance_rec.ATTRIBUTE17 = FND_API.G_MISS_CHAR) THEN
33543 l_new_instance_rec.ATTRIBUTE17 := l_curr_instance_rec.ATTRIBUTE17;
33544 ELSE
33545 l_new_instance_rec.ATTRIBUTE17 := p_source_instance_rec.ATTRIBUTE17;
33546 END IF;
33547
33548 IF (p_source_instance_rec.ATTRIBUTE18 = FND_API.G_MISS_CHAR) THEN
33549 l_new_instance_rec.ATTRIBUTE18 := l_curr_instance_rec.ATTRIBUTE18;
33550 ELSE
33551 l_new_instance_rec.ATTRIBUTE18 := p_source_instance_rec.ATTRIBUTE18;
33552 END IF;
33553
33554 IF (p_source_instance_rec.ATTRIBUTE19 = FND_API.G_MISS_CHAR) THEN
33555 l_new_instance_rec.ATTRIBUTE19 := l_curr_instance_rec.ATTRIBUTE19;
33556 ELSE
33557 l_new_instance_rec.ATTRIBUTE19 := p_source_instance_rec.ATTRIBUTE19;
33558 END IF;
33559
33560 IF (p_source_instance_rec.ATTRIBUTE20 = FND_API.G_MISS_CHAR) THEN
33561 l_new_instance_rec.ATTRIBUTE20 := l_curr_instance_rec.ATTRIBUTE20;
33562 ELSE
33563 l_new_instance_rec.ATTRIBUTE20 := p_source_instance_rec.ATTRIBUTE20;
33564 END IF;
33565
33566 IF (p_source_instance_rec.ATTRIBUTE21 = FND_API.G_MISS_CHAR) THEN
33567 l_new_instance_rec.ATTRIBUTE21 := l_curr_instance_rec.ATTRIBUTE21;
33568 ELSE
33569 l_new_instance_rec.ATTRIBUTE21 := p_source_instance_rec.ATTRIBUTE21;
33570 END IF;
33571
33572 IF (p_source_instance_rec.ATTRIBUTE22 = FND_API.G_MISS_CHAR) THEN
33573 l_new_instance_rec.ATTRIBUTE22 := l_curr_instance_rec.ATTRIBUTE22;
33574 ELSE
33575 l_new_instance_rec.ATTRIBUTE22 := p_source_instance_rec.ATTRIBUTE22;
33576 END IF;
33577
33578 IF (p_source_instance_rec.ATTRIBUTE23 = FND_API.G_MISS_CHAR) THEN
33579 l_new_instance_rec.ATTRIBUTE23 := l_curr_instance_rec.ATTRIBUTE23;
33580 ELSE
33581 l_new_instance_rec.ATTRIBUTE23 := p_source_instance_rec.ATTRIBUTE23;
33582 END IF;
33583
33584 IF (p_source_instance_rec.ATTRIBUTE24 = FND_API.G_MISS_CHAR) THEN
33585 l_new_instance_rec.ATTRIBUTE24 := l_curr_instance_rec.ATTRIBUTE24;
33586 ELSE
33587 l_new_instance_rec.ATTRIBUTE24 := p_source_instance_rec.ATTRIBUTE24;
33588 END IF;
33589
33590 IF (p_source_instance_rec.ATTRIBUTE25 = FND_API.G_MISS_CHAR) THEN
33591 l_new_instance_rec.ATTRIBUTE25 := l_curr_instance_rec.ATTRIBUTE25;
33592 ELSE
33593 l_new_instance_rec.ATTRIBUTE25 := p_source_instance_rec.ATTRIBUTE25;
33594 END IF;
33595
33596 IF (p_source_instance_rec.ATTRIBUTE26 = FND_API.G_MISS_CHAR) THEN
33597 l_new_instance_rec.ATTRIBUTE26 := l_curr_instance_rec.ATTRIBUTE26;
33598 ELSE
33599 l_new_instance_rec.ATTRIBUTE26 := p_source_instance_rec.ATTRIBUTE26;
33600 END IF;
33601
33602 IF (p_source_instance_rec.ATTRIBUTE27 = FND_API.G_MISS_CHAR) THEN
33603 l_new_instance_rec.ATTRIBUTE27 := l_curr_instance_rec.ATTRIBUTE27;
33604 ELSE
33605 l_new_instance_rec.ATTRIBUTE27 := p_source_instance_rec.ATTRIBUTE27;
33606 END IF;
33607
33608 IF (p_source_instance_rec.ATTRIBUTE28 = FND_API.G_MISS_CHAR) THEN
33609 l_new_instance_rec.ATTRIBUTE28 := l_curr_instance_rec.ATTRIBUTE28;
33610 ELSE
33611 l_new_instance_rec.ATTRIBUTE28 := p_source_instance_rec.ATTRIBUTE28;
33612 END IF;
33613
33614 IF (p_source_instance_rec.ATTRIBUTE29 = FND_API.G_MISS_CHAR) THEN
33615 l_new_instance_rec.ATTRIBUTE29 := l_curr_instance_rec.ATTRIBUTE29;
33616 ELSE
33617 l_new_instance_rec.ATTRIBUTE29 := p_source_instance_rec.ATTRIBUTE29;
33618 END IF;
33619
33620 IF (p_source_instance_rec.ATTRIBUTE30 = FND_API.G_MISS_CHAR) THEN
33621 l_new_instance_rec.ATTRIBUTE30 := l_curr_instance_rec.ATTRIBUTE30;
33622 ELSE
33623 l_new_instance_rec.ATTRIBUTE30 := p_source_instance_rec.ATTRIBUTE30;
33624 END IF;
33625
33626 IF (p_source_instance_rec.instance_number = fnd_api.g_miss_char)
33627 THEN
33628 NULL;
33629 ELSE
33630 l_new_instance_rec.instance_number := p_source_instance_rec.instance_number;
33631 END IF;
33632
33633 IF (p_source_instance_rec.instance_description = fnd_api.g_miss_char)
33634 THEN
33635 NULL;
33636 ELSE
33637 l_new_instance_rec.instance_description := p_source_instance_rec.instance_description;
33638 END IF;
33639
33640 --end of code for eam integration--
33641 -- Addition of columns for FA Integration
33642
33643 IF (p_source_instance_rec.PAYABLES_UNIT_PRICE = FND_API.G_MISS_NUM) THEN
33644 l_new_instance_rec.PAYABLES_UNIT_PRICE := l_curr_instance_rec.PAYABLES_UNIT_PRICE;
33645 ELSE
33646 l_new_instance_rec.PAYABLES_UNIT_PRICE := p_source_instance_rec.PAYABLES_UNIT_PRICE;
33647 END IF;
33648
33649 IF (p_source_instance_rec.PAYABLES_CURRENCY_CODE = FND_API.G_MISS_CHAR) THEN
33650 l_new_instance_rec.PAYABLES_CURRENCY_CODE := l_curr_instance_rec.PAYABLES_CURRENCY_CODE;
33651 ELSE
33652 l_new_instance_rec.PAYABLES_CURRENCY_CODE := p_source_instance_rec.PAYABLES_CURRENCY_CODE;
33653 END IF;
33654
33655 IF (p_source_instance_rec.PURCHASE_UNIT_PRICE = FND_API.G_MISS_NUM) THEN
33656 l_new_instance_rec.PURCHASE_UNIT_PRICE := l_curr_instance_rec.PURCHASE_UNIT_PRICE;
33657 ELSE
33658 l_new_instance_rec.PURCHASE_UNIT_PRICE := p_source_instance_rec.PURCHASE_UNIT_PRICE;
33659 END IF;
33660
33661 IF (p_source_instance_rec.PURCHASE_CURRENCY_CODE = FND_API.G_MISS_CHAR) THEN
33662 l_new_instance_rec.PURCHASE_CURRENCY_CODE := l_curr_instance_rec.PURCHASE_CURRENCY_CODE;
33663 ELSE
33664 l_new_instance_rec.PURCHASE_CURRENCY_CODE := p_source_instance_rec.PURCHASE_CURRENCY_CODE;
33665 END IF;
33666
33667 IF (p_source_instance_rec.SALES_UNIT_PRICE = FND_API.G_MISS_NUM) THEN
33668 l_new_instance_rec.SALES_UNIT_PRICE := l_curr_instance_rec.SALES_UNIT_PRICE;
33669 ELSE
33670 l_new_instance_rec.SALES_UNIT_PRICE := p_source_instance_rec.SALES_UNIT_PRICE;
33671 END IF;
33672
33673 IF (p_source_instance_rec.SALES_CURRENCY_CODE = FND_API.G_MISS_CHAR) THEN
33674 l_new_instance_rec.SALES_CURRENCY_CODE := l_curr_instance_rec.SALES_CURRENCY_CODE;
33675 ELSE
33676 l_new_instance_rec.SALES_CURRENCY_CODE := p_source_instance_rec.SALES_CURRENCY_CODE;
33677 END IF;
33678
33679 IF (p_source_instance_rec.OPERATIONAL_STATUS_CODE = FND_API.G_MISS_CHAR) THEN
33680 l_new_instance_rec.OPERATIONAL_STATUS_CODE := l_curr_instance_rec.OPERATIONAL_STATUS_CODE;
33681 ELSE
33682 l_new_instance_rec.OPERATIONAL_STATUS_CODE := p_source_instance_rec.OPERATIONAL_STATUS_CODE;
33683 END IF;
33684
33685 -- End addition of columns for FA Integration
33686 -- Set the non-copiable attributes as follows
33687 l_new_instance_rec.instance_id := FND_API.G_MISS_NUM;
33688 --Uncommented below line for bug 14471544
33689 -- l_new_instance_rec.instance_number := FND_API.G_MISS_CHAR; --commented for bug#16696575
33690
33691 -- Added if condition for bug 6368191
33692 IF (p_source_instance_rec.active_start_date = FND_API.G_MISS_DATE)
33693 THEN
33694 --Default the active_start_date to system date if nothing was set
33695 l_new_instance_rec.active_start_date := SYSDATE;
33696 END IF;
33697
33698 l_new_instance_rec.MANUALLY_CREATED_FLAG := 'N';
33699 l_new_instance_rec.COMPLETENESS_FLAG := NULL;
33700 l_new_instance_rec.OBJECT_VERSION_NUMBER := 1;
33701 -- The following is added for bug 2944298.
33702 -- Value of instance_usage_code should be copied from the source instance
33703 -- only if it is called from split.
33704 IF p_call_from_split=fnd_api.g_true
33705 THEN
33706 -- Added by sguthiva for bug 2163942
33707 IF (p_source_instance_rec.instance_usage_code = FND_API.G_MISS_CHAR) THEN
33708 l_new_instance_rec.instance_usage_code := l_curr_instance_rec.instance_usage_code;
33709 ELSE
33710 l_new_instance_rec.instance_usage_code := p_source_instance_rec.instance_usage_code;
33711 END IF;
33712
33713 ELSE
33714 l_obj_id:=NULL;
33715 csi_ii_relationships_pvt.Get_Top_Most_Parent
33716 ( p_subject_id => p_source_instance_rec.instance_id,
33717 p_rel_type_code => 'COMPONENT-OF',
33718 p_object_id => l_obj_id
33719 );
33720 --
33721 IF l_obj_id <> p_source_instance_rec.instance_id THEN
33722 BEGIN
33723 SELECT instance_usage_code
33724 INTO l_new_instance_rec.instance_usage_code
33725 FROM csi_item_instances
33726 WHERE instance_id=l_obj_id;
33727 EXCEPTION
33728 WHEN NO_DATA_FOUND THEN
33729 NULL;
33730 END;
33731 ELSE
33732 l_new_instance_rec.instance_usage_code := l_curr_instance_rec.instance_usage_code;
33733 END IF;
33734 END IF;
33735 -- End addition by sguthiva for bug 2163942
33736 -- Added by sguthiva for bug 2230264
33737
33738 IF (p_source_instance_rec.vld_organization_id = FND_API.G_MISS_NUM) THEN
33739 l_new_instance_rec.vld_organization_id := l_vld_org_id;
33740 ELSE
33741 l_new_instance_rec.vld_organization_id := p_source_instance_rec.vld_organization_id;
33742 END IF;
33743 IF (p_source_instance_rec.install_location_type_code = FND_API.G_MISS_CHAR) THEN
33744 l_new_instance_rec.install_location_type_code := l_curr_instance_rec.install_location_type_code;
33745 ELSE
33746 l_new_instance_rec.install_location_type_code := p_source_instance_rec.install_location_type_code;
33747 END IF;
33748 IF (p_source_instance_rec.install_location_id = FND_API.G_MISS_NUM) THEN
33749 l_new_instance_rec.install_location_id := l_curr_instance_rec.install_location_id;
33750 ELSE
33751 l_new_instance_rec.install_location_id := p_source_instance_rec.install_location_id;
33752 END IF;
33753 -- End addition by sguthiva for bug 2230264
33754
33755 IF p_source_instance_rec.SOURCE_CODE IS NULL THEN
33756 l_new_instance_rec.SOURCE_CODE := l_curr_instance_rec.SOURCE_CODE;
33757 ELSE
33758 l_new_instance_rec.SOURCE_CODE := p_source_instance_rec.SOURCE_CODE;
33759 END IF;
33760
33761 -- Call Create_item_instance to create the new instance in csi_item_instances table.
33762 CSI_ITEM_INSTANCE_PVT.create_item_instance
33763 ( p_api_version => p_api_version
33764 ,p_commit => p_commit
33765 ,p_init_msg_list => p_init_msg_list
33766 ,p_validation_level => p_validation_level
33767 ,p_instance_rec => l_new_instance_rec
33768 ,p_txn_rec => p_txn_rec
33769 ,p_party_tbl => l_party_tbl
33770 ,p_asset_tbl => l_asset_tbl
33771 ,x_return_status => x_return_status
33772 ,x_msg_count => x_msg_count
33773 ,x_msg_data => x_msg_data
33774 ,p_item_attribute_tbl => l_item_attribute_tbl
33775 ,p_location_tbl => l_location_tbl
33776 ,p_generic_id_tbl => l_generic_id_tbl
33777 ,p_lookup_tbl => l_lookup_tbl
33778 ,p_ins_count_rec => l_ins_count_rec
33779 );
33780 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
33781 l_msg_index := 1;
33782 l_msg_count := x_msg_count;
33783 WHILE l_msg_count > 0 LOOP
33784 x_msg_data := FND_MSG_PUB.GET
33785 (l_msg_index,
33786 FND_API.G_FALSE );
33787
33788 csi_gen_utility_pvt.put_line('message data = '||x_msg_data);
33789 l_msg_index := l_msg_index + 1;
33790 l_msg_count := l_msg_count - 1;
33791 END LOOP;
33792 RAISE FND_API.G_EXC_ERROR;
33793 ELSE
33794 x_new_instance_tbl(1) := l_new_instance_rec;
33795 l_map_count := l_map_count + 1;
33796 l_map_inst_tbl(l_map_count).old_instance_id := p_source_instance_rec.instance_id;
33797 l_map_inst_tbl(l_map_count).new_instance_id := l_new_instance_rec.instance_id;
33798 END IF;
33799
33800
33801 -- Create a party or parties for the new instances
33802 IF l_party_tbl.COUNT > 0 THEN
33803
33804 FOR tab_row_party IN l_party_tbl.FIRST .. l_party_tbl.LAST
33805
33806 LOOP
33807
33808 IF l_party_tbl.EXISTS(tab_row_party) THEN
33809
33810 -- Build account query rec
33811 l_party_account_query_rec.instance_party_id := l_party_tbl(tab_row_party).instance_party_id ;
33812 l_party_account_query_rec.ip_account_id := FND_API.G_MISS_NUM;
33813 l_party_account_query_rec.party_account_id := FND_API.G_MISS_NUM;
33814 l_party_account_query_rec.relationship_type_code := FND_API.G_MISS_CHAR;
33815
33816 -- Get party accounts
33817
33818 csi_party_relationships_pub.get_inst_party_accounts
33819 ( p_api_version => p_api_version
33820 ,p_commit => p_commit
33821 ,p_init_msg_list => p_init_msg_list
33822 ,p_validation_level => p_validation_level
33823 ,p_account_query_rec => l_party_account_query_rec
33824 ,p_resolve_id_columns => fnd_api.g_true
33825 ,p_time_stamp => NULL
33826 ,x_account_header_tbl => l_account_header_tbl
33827 ,x_return_status => x_return_status
33828 ,x_msg_count => x_msg_count
33829 ,x_msg_data => x_msg_data);
33830
33831 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
33832 l_msg_index := 1;
33833 l_msg_count := x_msg_count;
33834 WHILE l_msg_count > 0 LOOP
33835 x_msg_data := FND_MSG_PUB.GET
33836 (l_msg_index,
33837 FND_API.G_FALSE );
33838 csi_gen_utility_pvt.put_line('message data = '||x_msg_data);
33839 l_msg_index := l_msg_index + 1;
33840 l_msg_count := l_msg_count - 1;
33841 END LOOP;
33842 RAISE FND_API.G_EXC_ERROR;
33843 END IF;
33844
33845 -- Start Addition for Bug 2186704
33846 IF l_account_header_tbl.count>0
33847 THEN
33848 k:=1;
33849 FOR i IN l_account_header_tbl.FIRST..l_account_header_tbl.LAST
33850 LOOP
33851 IF l_account_header_tbl(i).active_end_date IS NULL OR
33852 l_account_header_tbl(i).active_end_date > SYSDATE
33853 THEN
33854 l_pty_acct_hdr_tbl(k):= l_account_header_tbl(i);
33855 k := k+1;
33856 END IF;
33857 END LOOP;
33858 l_account_header_tbl:=l_temp_acct_hdr_tbl;
33859 l_account_header_tbl:=l_pty_acct_hdr_tbl;
33860 END IF;
33861 -- End Addition for Bug 2186704
33862
33863 IF l_account_header_tbl.COUNT > 0 THEN /***********Second Change 07/27/01 - RK**********/
33864 FOR tab_row_party IN l_account_header_tbl.FIRST .. l_account_header_tbl.LAST
33865 LOOP
33866 IF l_account_header_tbl.EXISTS(tab_row_party) THEN
33867 -- Donot copy accounts if user says so
33868 IF (p_copy_accounts <> fnd_api.g_true) THEN
33869 IF (l_account_header_tbl(tab_row_party).RELATIONSHIP_TYPE_CODE = 'OWNER') THEN
33870 l_party_account_tbl(tab_row_party).ip_account_id := l_account_header_tbl(tab_row_party).ip_account_id;
33871 l_party_account_tbl(tab_row_party).instance_party_id := l_account_header_tbl(tab_row_party).instance_party_id;
33872 l_party_account_tbl(tab_row_party).party_account_id := l_account_header_tbl(tab_row_party).party_account_id;
33873 l_party_account_tbl(tab_row_party).relationship_type_code := l_account_header_tbl(tab_row_party).relationship_type_code;
33874 l_party_account_tbl(tab_row_party).bill_to_address := l_account_header_tbl(tab_row_party).bill_to_address;
33875 l_party_account_tbl(tab_row_party).ship_to_address := l_account_header_tbl(tab_row_party).ship_to_address;
33876 l_party_account_tbl(tab_row_party).active_start_date := l_account_header_tbl(tab_row_party).active_start_date;
33877 l_party_account_tbl(tab_row_party).active_end_date := l_account_header_tbl(tab_row_party).active_end_date;
33878 l_party_account_tbl(tab_row_party).context := l_account_header_tbl(tab_row_party).context;
33879 l_party_account_tbl(tab_row_party).attribute1 := l_account_header_tbl(tab_row_party).attribute1;
33880 l_party_account_tbl(tab_row_party).attribute2 := l_account_header_tbl(tab_row_party).attribute2;
33881 l_party_account_tbl(tab_row_party).attribute3 := l_account_header_tbl(tab_row_party).attribute3;
33882 l_party_account_tbl(tab_row_party).attribute4 := l_account_header_tbl(tab_row_party).attribute4;
33883 l_party_account_tbl(tab_row_party).attribute5 := l_account_header_tbl(tab_row_party).attribute5;
33884 l_party_account_tbl(tab_row_party).attribute6 := l_account_header_tbl(tab_row_party).attribute6;
33885 l_party_account_tbl(tab_row_party).attribute7 := l_account_header_tbl(tab_row_party).attribute7;
33886 l_party_account_tbl(tab_row_party).attribute8 := l_account_header_tbl(tab_row_party).attribute8;
33887 l_party_account_tbl(tab_row_party).attribute9 := l_account_header_tbl(tab_row_party).attribute9;
33888 l_party_account_tbl(tab_row_party).attribute10 := l_account_header_tbl(tab_row_party).attribute10;
33889 l_party_account_tbl(tab_row_party).attribute11 := l_account_header_tbl(tab_row_party).attribute11;
33890 l_party_account_tbl(tab_row_party).attribute12 := l_account_header_tbl(tab_row_party).attribute12;
33891 l_party_account_tbl(tab_row_party).attribute13 := l_account_header_tbl(tab_row_party).attribute13;
33892 l_party_account_tbl(tab_row_party).attribute14 := l_account_header_tbl(tab_row_party).attribute14;
33893 l_party_account_tbl(tab_row_party).attribute15 := l_account_header_tbl(tab_row_party).attribute15;
33894 l_party_account_tbl(tab_row_party).object_version_number := l_account_header_tbl(tab_row_party).object_version_number;
33895 END IF;
33896 ELSE
33897 l_party_account_tbl(tab_row_party).ip_account_id := l_account_header_tbl(tab_row_party).ip_account_id;
33898 l_party_account_tbl(tab_row_party).instance_party_id := l_account_header_tbl(tab_row_party).instance_party_id;
33899 l_party_account_tbl(tab_row_party).party_account_id := l_account_header_tbl(tab_row_party).party_account_id;
33900 l_party_account_tbl(tab_row_party).relationship_type_code := l_account_header_tbl(tab_row_party).relationship_type_code;
33901 l_party_account_tbl(tab_row_party).bill_to_address := l_account_header_tbl(tab_row_party).bill_to_address;
33902 l_party_account_tbl(tab_row_party).ship_to_address := l_account_header_tbl(tab_row_party).ship_to_address;
33903 l_party_account_tbl(tab_row_party).active_start_date := l_account_header_tbl(tab_row_party).active_start_date;
33904 l_party_account_tbl(tab_row_party).active_end_date := l_account_header_tbl(tab_row_party).active_end_date;
33905 l_party_account_tbl(tab_row_party).context := l_account_header_tbl(tab_row_party).context;
33906 l_party_account_tbl(tab_row_party).attribute1 := l_account_header_tbl(tab_row_party).attribute1;
33907 l_party_account_tbl(tab_row_party).attribute2 := l_account_header_tbl(tab_row_party).attribute2;
33908 l_party_account_tbl(tab_row_party).attribute3 := l_account_header_tbl(tab_row_party).attribute3;
33909 l_party_account_tbl(tab_row_party).attribute4 := l_account_header_tbl(tab_row_party).attribute4;
33910 l_party_account_tbl(tab_row_party).attribute5 := l_account_header_tbl(tab_row_party).attribute5;
33911 l_party_account_tbl(tab_row_party).attribute6 := l_account_header_tbl(tab_row_party).attribute6;
33912 l_party_account_tbl(tab_row_party).attribute7 := l_account_header_tbl(tab_row_party).attribute7;
33913 l_party_account_tbl(tab_row_party).attribute8 := l_account_header_tbl(tab_row_party).attribute8;
33914 l_party_account_tbl(tab_row_party).attribute9 := l_account_header_tbl(tab_row_party).attribute9;
33915 l_party_account_tbl(tab_row_party).attribute10 := l_account_header_tbl(tab_row_party).attribute10;
33916 l_party_account_tbl(tab_row_party).attribute11 := l_account_header_tbl(tab_row_party).attribute11;
33917 l_party_account_tbl(tab_row_party).attribute12 := l_account_header_tbl(tab_row_party).attribute12;
33918 l_party_account_tbl(tab_row_party).attribute13 := l_account_header_tbl(tab_row_party).attribute13;
33919 l_party_account_tbl(tab_row_party).attribute14 := l_account_header_tbl(tab_row_party).attribute14;
33920 l_party_account_tbl(tab_row_party).attribute15 := l_account_header_tbl(tab_row_party).attribute15;
33921 l_party_account_tbl(tab_row_party).object_version_number := l_account_header_tbl(tab_row_party).object_version_number;
33922 END IF;
33923 END IF;
33924 END LOOP;
33925 END IF; --l_account_header_tbl.COUNT > 0
33926 -- Empty the account_header table
33927 l_account_header_tbl.DELETE;
33928 -- Build the party table
33929 l_party_tbl(tab_row_party).instance_party_id := FND_API.G_MISS_NUM;
33930 l_party_tbl(tab_row_party).INSTANCE_ID := l_new_instance_rec.instance_id;
33931 l_party_tbl(tab_row_party).ACTIVE_START_DATE := FND_API.G_MISS_DATE;
33932 l_party_tbl(tab_row_party).ACTIVE_END_DATE := FND_API.G_MISS_DATE;
33933 -- Build the temporary party table with only one record
33934 -- for and grab all its accounts
33935 l_party_input_tbl(1) := l_party_tbl(tab_row_party);
33936 -- Build its corresponding accounts
33937 IF l_party_account_tbl.COUNT > 0 THEN
33938 FOR tab_row_acct IN l_party_account_tbl.FIRST .. l_party_account_tbl.LAST
33939 LOOP
33940 -- l_party_account_tbl(tab_row_acct).parent_tbl_index := tab_row_party;
33941 l_party_account_tbl(tab_row_acct).parent_tbl_index := 1;
33942 l_party_account_tbl(tab_row_acct).ip_account_id := FND_API.G_MISS_NUM;
33943 l_party_account_tbl(tab_row_acct).instance_party_id := l_party_input_tbl(l_party_account_tbl(tab_row_acct).parent_tbl_index).instance_party_id;
33944 l_party_account_tbl(tab_row_acct).ACTIVE_START_DATE := FND_API.G_MISS_DATE;
33945 l_party_account_tbl(tab_row_acct).ACTIVE_END_DATE := FND_API.G_MISS_DATE;
33946 l_party_account_tbl(tab_row_acct).call_contracts := FND_API.G_FALSE; -- srramakr Bug 2468638
33947 END LOOP;
33948 END IF;
33949 -- Creae instance party relationship and its accounts
33950 csi_party_relationships_pub.create_inst_party_relationship
33951 ( p_api_version => p_api_version
33952 ,p_commit => p_commit
33953 ,p_init_msg_list => p_init_msg_list
33954 ,p_validation_level => p_validation_level
33955 ,p_party_tbl => l_party_input_tbl
33956 ,p_party_account_tbl => l_party_account_tbl
33957 ,p_txn_rec => p_txn_rec
33958 ,p_oks_txn_inst_tbl => px_oks_txn_inst_tbl
33959 ,x_return_status => x_return_status
33960 ,x_msg_count => x_msg_count
33961 ,x_msg_data => x_msg_data
33962 );
33963 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
33964 l_msg_index := 1;
33965 l_msg_count := x_msg_count;
33966 WHILE l_msg_count > 0 LOOP
33967 x_msg_data := FND_MSG_PUB.GET
33968 (l_msg_index,
33969 FND_API.G_FALSE );
33970 csi_gen_utility_pvt.put_line('message data = '||x_msg_data);
33971 l_msg_index := l_msg_index + 1;
33972 l_msg_count := l_msg_count - 1;
33973 END LOOP;
33974 RAISE FND_API.G_EXC_ERROR;
33975 END IF;
33976 -- Grab the new parties created in a new table
33977 l_new_party_tbl(tab_row_party) := l_party_input_tbl(1);
33978 -- Empty the party table
33979 l_party_input_tbl.DELETE;
33980 -- Empty the account table
33981 l_party_account_tbl.DELETE;
33982 END IF;
33983 END LOOP;
33984 END IF;
33985 -- Create a contact or contacts for the new instances
33986 IF (p_copy_contacts = fnd_api.g_true) THEN
33987 IF l_contact_tbl.COUNT > 0 THEN
33988 FOR tab_row_contact IN l_contact_tbl.FIRST .. l_contact_tbl.LAST
33989 LOOP
33990 IF l_contact_tbl.EXISTS(tab_row_contact) THEN
33991 -- Find the contact_ip_id which was just created
33992 -- for this contact
33993 IF (l_original_party_tbl.COUNT > 0) THEN
33994 FOR tab_row_party IN l_original_party_tbl.FIRST .. l_original_party_tbl.LAST
33995 LOOP
33996 IF l_original_party_tbl.EXISTS(tab_row_party) THEN
33997 IF (l_original_party_tbl(tab_row_party).instance_party_id
33998 = l_contact_tbl(tab_row_contact).contact_ip_id )
33999 THEN
34000 l_contact_tbl(tab_row_contact).contact_ip_id :=
34001 l_new_party_tbl(tab_row_party).instance_party_id;
34002 l_contact_found_flag := TRUE;
34003 END IF;
34004 END IF;
34005 END LOOP;
34006 END IF;
34007 -- Check if the contact_ip_id exists
34008 IF ((l_contact_tbl(tab_row_contact).contact_ip_id IS NULL) OR
34009 (l_contact_tbl(tab_row_contact).contact_ip_id
34010 = FND_API.G_MISS_NUM)
34011 OR NOT(l_contact_found_flag) ) THEN
34012 FND_MESSAGE.SET_NAME('CSI','CSI_API_CONTACT_IP_ID_NULL');
34013 FND_MESSAGE.SET_TOKEN('INSTANCE_PARTY_ID',
34014 l_contact_tbl(tab_row_contact).instance_party_id);
34015 FND_MSG_PUB.Add;
34016 RAISE FND_API.G_EXC_ERROR;
34017 END IF;
34018 -- Build other fiels of the contact table
34019 l_contact_tbl(tab_row_contact).instance_party_id := FND_API.G_MISS_NUM;
34020 l_contact_tbl(tab_row_contact).contact_flag := 'Y';
34021 l_contact_tbl(tab_row_contact).INSTANCE_ID := l_new_instance_rec.instance_id;
34022 l_contact_tbl(tab_row_contact).ACTIVE_START_DATE := FND_API.G_MISS_DATE;
34023 l_contact_tbl(tab_row_contact).ACTIVE_END_DATE := FND_API.G_MISS_DATE;
34024 -- Build the temporary party table with only one record
34025 -- for and grab all its accounts
34026 l_contact_input_tbl(1) := l_contact_tbl(tab_row_contact);
34027
34028 -- Create instance party relationship and its accounts
34029 csi_party_relationships_pub.create_inst_party_relationship
34030 ( p_api_version => p_api_version
34031 ,p_commit => p_commit
34032 ,p_init_msg_list => p_init_msg_list
34033 ,p_validation_level => p_validation_level
34034 ,p_party_tbl => l_contact_input_tbl
34035 ,p_party_account_tbl => l_contact_account_tbl
34036 ,p_txn_rec => p_txn_rec
34037 ,p_oks_txn_inst_tbl => px_oks_txn_inst_tbl
34038 ,x_return_status => x_return_status
34039 ,x_msg_count => x_msg_count
34040 ,x_msg_data => x_msg_data
34041 );
34042 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
34043 l_msg_index := 1;
34044 l_msg_count := x_msg_count;
34045 WHILE l_msg_count > 0 LOOP
34046 x_msg_data := FND_MSG_PUB.GET
34047 (l_msg_index,
34048 FND_API.G_FALSE );
34049 csi_gen_utility_pvt.put_line('message data = '||x_msg_data);
34050 l_msg_index := l_msg_index + 1;
34051 l_msg_count := l_msg_count - 1;
34052 END LOOP;
34053 RAISE FND_API.G_EXC_ERROR;
34054 END IF;
34055 -- Grab the new parties created in a new table
34056 l_new_contact_tbl(tab_row_contact) := l_contact_input_tbl(1);
34057 -- Empty the party table
34058 l_contact_input_tbl.DELETE;
34059 -- Empty the account table
34060 l_contact_account_tbl.DELETE;
34061 l_contact_found_flag := FALSE;
34062 END IF;
34063 END LOOP;
34064 END IF;
34065 END IF;
34066 -- Empty the party and contact tables
34067 l_new_contact_tbl.DELETE;
34068 l_new_party_tbl.DELETE;
34069 -- Create asset assignments if requested. Asset assignments have already been fetched before
34070 IF (p_copy_asset_assignments = fnd_api.g_true) THEN
34071 IF l_asset_tbl.COUNT > 0 THEN
34072 FOR tab_row IN l_asset_tbl.FIRST .. l_asset_tbl.LAST
34073 LOOP
34074 IF l_asset_tbl.EXISTS(tab_row) THEN
34075 l_asset_tbl(tab_row).INSTANCE_ID := l_new_instance_rec.instance_id;
34076 l_asset_tbl(tab_row).INSTANCE_ASSET_ID := FND_API.G_MISS_NUM;
34077 l_asset_tbl(tab_row).ACTIVE_START_DATE := FND_API.G_MISS_DATE;
34078 l_asset_tbl(tab_row).ACTIVE_END_DATE := FND_API.G_MISS_DATE;
34079 -- Trap the row in a record and create assets row by row
34080 l_instance_asset_rec := l_asset_tbl(tab_row);
34081 csi_asset_pvt.create_instance_asset
34082 ( p_api_version => p_api_version
34083 ,p_commit => p_commit
34084 ,p_init_msg_list => p_init_msg_list
34085 ,p_validation_level => p_validation_level
34086 ,p_instance_asset_rec => l_instance_asset_rec
34087 ,p_txn_rec => p_txn_rec
34088 ,x_return_status => x_return_status
34089 ,x_msg_count => x_msg_count
34090 ,x_msg_data => x_msg_data
34091 ,p_lookup_tbl => l_asset_lookup_tbl
34092 ,p_asset_count_rec => l_asset_count_rec
34093 ,p_asset_id_tbl => l_asset_id_tbl
34094 ,p_asset_loc_tbl => l_asset_loc_tbl
34095 );
34096 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
34097 l_msg_index := 1;
34098 l_msg_count := x_msg_count;
34099 WHILE l_msg_count > 0 LOOP
34100 x_msg_data := FND_MSG_PUB.GET
34101 (l_msg_index,
34102 FND_API.G_FALSE );
34103 csi_gen_utility_pvt.put_line('message data = '||x_msg_data);
34104 l_msg_index := l_msg_index + 1;
34105 l_msg_count := l_msg_count - 1;
34106 END LOOP;
34107 RAISE FND_API.G_EXC_ERROR;
34108 END IF;
34109 END IF;
34110 END LOOP;
34111 END IF;
34112 END IF;
34113 -- Created extended attributes if requested
34114 IF (p_copy_ext_attribs = fnd_api.g_true) THEN
34115 l_ext_attribs_query_rec.attribute_value_id := FND_API.G_MISS_NUM;
34116 l_ext_attribs_query_rec.instance_id := l_curr_instance_rec.instance_id;
34117 l_ext_attribs_query_rec.attribute_id := FND_API.G_MISS_NUM;
34118 csi_item_instance_pub.get_extended_attrib_values
34119 (p_api_version => p_api_version
34120 ,p_commit => p_commit
34121 ,p_init_msg_list => p_init_msg_list
34122 ,p_validation_level => p_validation_level
34123 ,p_ext_attribs_query_rec => l_ext_attribs_query_rec
34124 ,p_time_stamp => NULL
34125 ,x_ext_attrib_tbl => l_ext_attrib_tbl
34126 ,x_ext_attrib_def_tbl => l_ext_attrib_def_tbl
34127 ,x_return_status => x_return_status
34128 ,x_msg_count => x_msg_count
34129 ,x_msg_data => x_msg_data
34130 );
34131 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
34132 l_msg_index := 1;
34133 l_msg_count := x_msg_count;
34134 WHILE l_msg_count > 0 LOOP
34135 x_msg_data := FND_MSG_PUB.GET
34136 (l_msg_index,
34137 FND_API.G_FALSE );
34138 csi_gen_utility_pvt.put_line('message data = '||x_msg_data);
34139 l_msg_index := l_msg_index + 1;
34140 l_msg_count := l_msg_count - 1;
34141 END LOOP;
34142 RAISE FND_API.G_EXC_ERROR;
34143 END IF;
34144 IF l_ext_attrib_tbl.COUNT > 0 THEN
34145 FOR tab_row IN l_ext_attrib_tbl.FIRST .. l_ext_attrib_tbl.LAST
34146 LOOP
34147 IF l_ext_attrib_tbl.EXISTS(tab_row) THEN
34148 IF NOT(csi_Item_Instance_Vld_pvt.get_ext_attrib_level(l_ext_attrib_tbl(tab_row).attribute_id,
34149 l_attribute_level ))THEN
34150 RAISE FND_API.G_EXC_ERROR;
34151 END IF;
34152 IF (l_attribute_level = 'INSTANCE') THEN
34153 l_ext_attrib_tbl.DELETE (tab_row);
34154 ELSE
34155 l_ext_attrib_tbl(tab_row).INSTANCE_ID := l_new_instance_rec.instance_id;
34156 l_ext_attrib_tbl(tab_row).ATTRIBUTE_VALUE_ID := FND_API.G_MISS_NUM;
34157 l_ext_attrib_tbl(tab_row).ACTIVE_START_DATE := FND_API.G_MISS_DATE;
34158 l_ext_attrib_tbl(tab_row).ACTIVE_END_DATE := FND_API.G_MISS_DATE;
34159 END IF;
34160 END IF;
34161 END LOOP;
34162 -- It is possible that all the extended attributes were set at instance level and thus we have an empty table
34163 IF l_ext_attrib_tbl.COUNT > 0 THEN
34164 csi_item_instance_pub.create_extended_attrib_values
34165 ( p_api_version => p_api_version
34166 ,p_commit => p_commit
34167 ,p_init_msg_list => p_init_msg_list
34168 ,p_validation_level => p_validation_level
34169 ,p_ext_attrib_tbl => l_ext_attrib_tbl
34170 ,p_txn_rec => p_txn_rec
34171 ,x_return_status => x_return_status
34172 ,x_msg_count => x_msg_count
34173 ,x_msg_data => x_msg_data
34174 );
34175 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
34176 l_msg_index := 1;
34177 l_msg_count := x_msg_count;
34178 WHILE l_msg_count > 0 LOOP
34179 x_msg_data := FND_MSG_PUB.GET
34180 (l_msg_index,
34181 FND_API.G_FALSE );
34182 csi_gen_utility_pvt.put_line('message data = '||x_msg_data);
34183 l_msg_index := l_msg_index + 1;
34184 l_msg_count := l_msg_count - 1;
34185 END LOOP;
34186 RAISE FND_API.G_EXC_ERROR;
34187 END IF;
34188 END IF;
34189 END IF;
34190 END IF;
34191 -- Create org assignments if requested
34192 IF (p_copy_org_assignments = fnd_api.g_true) THEN
34193 l_ou_query_rec.instance_ou_id := FND_API.G_MISS_NUM;
34194 l_ou_query_rec.instance_id := l_curr_instance_rec.instance_id;
34195 l_ou_query_rec.operating_unit_id := FND_API.G_MISS_NUM;
34196 l_ou_query_rec.relationship_type_code := FND_API.G_MISS_CHAR;
34197 csi_organization_unit_pub.get_organization_unit
34198 (
34199 p_api_version => p_api_version
34200 ,p_commit => p_commit
34201 ,p_init_msg_list => p_init_msg_list
34202 ,p_validation_level => p_validation_level
34203 ,p_ou_query_rec => l_ou_query_rec
34204 ,p_resolve_id_columns => fnd_api.g_true
34205 ,p_time_stamp => NULL
34206 ,x_org_unit_tbl => l_org_unit_header_tbl
34207 ,x_return_status => x_return_status
34208 ,x_msg_count => x_msg_count
34209 ,x_msg_data => x_msg_data
34210 );
34211 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
34212 l_msg_index := 1;
34213 l_msg_count := x_msg_count;
34214 WHILE l_msg_count > 0 LOOP
34215 x_msg_data := FND_MSG_PUB.GET
34216 (l_msg_index,
34217 FND_API.G_FALSE );
34218 csi_gen_utility_pvt.put_line('message data = '||x_msg_data);
34219 l_msg_index := l_msg_index + 1;
34220 l_msg_count := l_msg_count - 1;
34221 END LOOP;
34222 RAISE FND_API.G_EXC_ERROR;
34223 END IF;
34224 IF l_org_unit_header_tbl.COUNT > 0 THEN /*****First change here 08/25/01 - RK***/
34225 FOR tab_row_party IN l_org_unit_header_tbl.FIRST .. l_org_unit_header_tbl.LAST
34226 LOOP
34227 IF l_org_unit_header_tbl.EXISTS(tab_row_party) THEN
34228 l_org_unit_tbl(tab_row_party).instance_ou_id := l_org_unit_header_tbl(tab_row_party).instance_ou_id;
34229 l_org_unit_tbl(tab_row_party).instance_id := l_org_unit_header_tbl(tab_row_party).instance_id;
34230 l_org_unit_tbl(tab_row_party).operating_unit_id := l_org_unit_header_tbl(tab_row_party).operating_unit_id;
34231 l_org_unit_tbl(tab_row_party).relationship_type_code := l_org_unit_header_tbl(tab_row_party).relationship_type_code;
34232 l_org_unit_tbl(tab_row_party).active_start_date := l_org_unit_header_tbl(tab_row_party).active_start_date;
34233 l_org_unit_tbl(tab_row_party).active_end_date := l_org_unit_header_tbl(tab_row_party).active_end_date;
34234 l_org_unit_tbl(tab_row_party).context := l_org_unit_header_tbl(tab_row_party).context;
34235 l_org_unit_tbl(tab_row_party).attribute1 := l_org_unit_header_tbl(tab_row_party).attribute1;
34236 l_org_unit_tbl(tab_row_party).attribute2 := l_org_unit_header_tbl(tab_row_party).attribute2;
34237 l_org_unit_tbl(tab_row_party).attribute3 := l_org_unit_header_tbl(tab_row_party).attribute3;
34238 l_org_unit_tbl(tab_row_party).attribute4 := l_org_unit_header_tbl(tab_row_party).attribute4;
34239 l_org_unit_tbl(tab_row_party).attribute5 := l_org_unit_header_tbl(tab_row_party).attribute5;
34240 l_org_unit_tbl(tab_row_party).attribute6 := l_org_unit_header_tbl(tab_row_party).attribute6;
34241 l_org_unit_tbl(tab_row_party).attribute7 := l_org_unit_header_tbl(tab_row_party).attribute7;
34242 l_org_unit_tbl(tab_row_party).attribute8 := l_org_unit_header_tbl(tab_row_party).attribute8;
34243 l_org_unit_tbl(tab_row_party).attribute9 := l_org_unit_header_tbl(tab_row_party).attribute9;
34244 l_org_unit_tbl(tab_row_party).attribute10 := l_org_unit_header_tbl(tab_row_party).attribute10;
34245 l_org_unit_tbl(tab_row_party).attribute11 := l_org_unit_header_tbl(tab_row_party).attribute11;
34246 l_org_unit_tbl(tab_row_party).attribute12 := l_org_unit_header_tbl(tab_row_party).attribute12;
34247 l_org_unit_tbl(tab_row_party).attribute13 := l_org_unit_header_tbl(tab_row_party).attribute13;
34248 l_org_unit_tbl(tab_row_party).attribute14 := l_org_unit_header_tbl(tab_row_party).attribute14;
34249 l_org_unit_tbl(tab_row_party).attribute15 := l_org_unit_header_tbl(tab_row_party).attribute15;
34250 l_org_unit_tbl(tab_row_party).object_version_number := l_org_unit_header_tbl(tab_row_party).object_version_number;
34251 END IF;
34252 END LOOP;
34253 END IF; --l_org_unit_header_tbl.COUNT > 0
34254 IF l_org_unit_tbl.COUNT > 0 THEN
34255 FOR tab_row IN l_org_unit_tbl.FIRST .. l_org_unit_tbl.LAST
34256 LOOP
34257 IF l_org_unit_tbl.EXISTS(tab_row) THEN
34258 l_org_unit_tbl(tab_row).INSTANCE_ID := l_new_instance_rec.instance_id;
34259 l_org_unit_tbl(tab_row).INSTANCE_OU_ID := FND_API.G_MISS_NUM;
34260 l_org_unit_tbl(tab_row).ACTIVE_START_DATE := FND_API.G_MISS_DATE;
34261 l_org_unit_tbl(tab_row).ACTIVE_END_DATE := FND_API.G_MISS_DATE;
34262 END IF;
34263 END LOOP;
34264 csi_organization_unit_pub.create_organization_unit
34265 ( p_api_version => p_api_version
34266 ,p_commit => p_commit
34267 ,p_init_msg_list => p_init_msg_list
34268 ,p_validation_level => p_validation_level
34269 ,p_org_unit_tbl => l_org_unit_tbl
34270 ,p_txn_rec => p_txn_rec
34271 ,x_return_status => x_return_status
34272 ,x_msg_count => x_msg_count
34273 ,x_msg_data => x_msg_data
34274 );
34275 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
34276 l_msg_index := 1;
34277 l_msg_count := x_msg_count;
34278 WHILE l_msg_count > 0 LOOP
34279 x_msg_data := FND_MSG_PUB.GET
34280 (l_msg_index,
34281 FND_API.G_FALSE );
34282 csi_gen_utility_pvt.put_line('message data = '||x_msg_data);
34283 l_msg_index := l_msg_index + 1;
34284 l_msg_count := l_msg_count - 1;
34285 END LOOP;
34286 RAISE FND_API.G_EXC_ERROR;
34287 END IF;
34288 END IF;
34289 END IF;
34290 -- Create pricing attributes if requested
34291 IF (p_copy_pricing_attribs = fnd_api.g_true) THEN
34292 l_pricing_attribs_query_rec.pricing_attribute_id := FND_API.G_MISS_NUM;
34293 l_pricing_attribs_query_rec.instance_id := l_curr_instance_rec.instance_id;
34294
34295 csi_pricing_attribs_pub.get_pricing_attribs
34296 ( p_api_version => p_api_version
34297 ,p_commit => p_commit
34298 ,p_init_msg_list => p_init_msg_list
34299 ,p_validation_level => p_validation_level
34300 ,p_pricing_attribs_query_rec => l_pricing_attribs_query_rec
34301 ,p_time_stamp => NULL
34302 ,x_pricing_attribs_tbl => l_pricing_attribs_tbl
34303 ,x_return_status => x_return_status
34304 ,x_msg_count => x_msg_count
34305 ,x_msg_data => x_msg_data
34306 );
34307
34308 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
34309 l_msg_index := 1;
34310 l_msg_count := x_msg_count;
34311 WHILE l_msg_count > 0 LOOP
34312 x_msg_data := FND_MSG_PUB.GET
34313 (l_msg_index,
34314 FND_API.G_FALSE );
34315 csi_gen_utility_pvt.put_line('message data = '||x_msg_data);
34316 l_msg_index := l_msg_index + 1;
34317 l_msg_count := l_msg_count - 1;
34318 END LOOP;
34319 RAISE FND_API.G_EXC_ERROR;
34320 END IF;
34321
34322
34323 IF l_pricing_attribs_tbl.COUNT > 0 THEN
34324 FOR tab_row IN l_pricing_attribs_tbl.FIRST .. l_pricing_attribs_tbl.LAST
34325 LOOP
34326 IF l_pricing_attribs_tbl.EXISTS(tab_row) THEN
34327 l_pricing_attribs_tbl(tab_row).INSTANCE_ID := l_new_instance_rec.instance_id;
34328 l_pricing_attribs_tbl(tab_row).PRICING_ATTRIBUTE_ID := FND_API.G_MISS_NUM;
34329 l_pricing_attribs_tbl(tab_row).ACTIVE_START_DATE := FND_API.G_MISS_DATE;
34330 l_pricing_attribs_tbl(tab_row).ACTIVE_END_DATE := FND_API.G_MISS_DATE;
34331 END IF;
34332 END LOOP;
34333
34334 csi_pricing_attribs_pub.create_pricing_attribs
34335 ( p_api_version => p_api_version
34336 ,p_commit => p_commit
34337 ,p_init_msg_list => p_init_msg_list
34338 ,p_validation_level => p_validation_level
34339 ,p_pricing_attribs_tbl => l_pricing_attribs_tbl
34340 ,p_txn_rec => p_txn_rec
34341 ,x_return_status => x_return_status
34342 ,x_msg_count => x_msg_count
34343 ,x_msg_data => x_msg_data
34344 );
34345
34346 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
34347 l_msg_index := 1;
34348 l_msg_count := x_msg_count;
34349 WHILE l_msg_count > 0 LOOP
34350 x_msg_data := FND_MSG_PUB.GET
34351 (l_msg_index,
34352 FND_API.G_FALSE );
34353 csi_gen_utility_pvt.put_line('message data = '||x_msg_data);
34354 l_msg_index := l_msg_index + 1;
34355 l_msg_count := l_msg_count - 1;
34356 END LOOP;
34357 RAISE FND_API.G_EXC_ERROR;
34358 END IF;
34359 END IF;
34360 END IF;
34361
34362
34363 -- Added by rtalluri for Bug: 2420897 on 08/19/02
34364 -- If version label is null, then we need read the the default value from the profile option
34365 IF (p_source_instance_rec.VERSION_LABEL IS NULL ) OR
34366 (p_source_instance_rec.VERSION_LABEL = FND_API.G_MISS_CHAR) THEN
34367 l_version_label := FND_PROFILE.VALUE('CSI_DEFAULT_VERSION_LABEL');
34368 IF l_version_label IS NULL THEN
34369 FND_MESSAGE.SET_NAME('CSI','CSI_API_INVALID_VERSION_LABEL');
34370 FND_MSG_PUB.ADD;
34371 RAISE FND_API.G_EXC_ERROR;
34372 ELSE
34373 l_new_instance_rec.version_label := l_version_label;
34374 END IF;
34375 ELSE
34376 l_new_instance_rec.VERSION_LABEL := p_source_instance_rec.VERSION_LABEL;
34377 END IF;
34378
34379 --Calling the Create Version Label API to associate a version label for an instance created
34380
34381 l_version_label_rec.instance_id := l_new_instance_rec.instance_id;
34382 l_version_label_rec.version_label := l_new_instance_rec.version_label;
34383 l_version_label_rec.date_time_stamp := SYSDATE;
34384 l_version_label_rec.active_start_date := l_new_instance_rec.active_start_date;
34385 l_version_label_rec.description := l_new_instance_rec.version_label_description;
34386
34387 csi_item_instance_pvt.create_version_label
34388 (
34389 p_api_version => p_api_version
34390 ,p_commit => fnd_api.g_false
34391 ,p_init_msg_list => p_init_msg_list
34392 ,p_validation_level => p_validation_level
34393 ,p_version_label_rec => l_version_label_rec
34394 ,p_txn_rec => p_txn_rec
34395 ,x_return_status => x_return_status
34396 ,x_msg_count => x_msg_count
34397 ,x_msg_data => x_msg_data
34398 );
34399
34400 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
34401 csi_gen_utility_pvt.put_line( ' Error from COPY_ITEM_INSTANCE.CREATE_VERSION_LABEL..');
34402 csi_gen_utility_pvt.put_line('MESSAGE DATA = '||x_msg_data);
34403 FND_MESSAGE.SET_NAME('CSI','CSI_FAILED_TO_CREATE_VERSION');
34404 FND_MESSAGE.SET_TOKEN('API_ERROR','CREATE_VERSION_LABEL');
34405 FND_MSG_PUB.Add;
34406 RAISE FND_API.G_EXC_ERROR;
34407 END IF;
34408 -- End of Addition by rtalluri for Bug: 2420897 on 08/19/02
34409
34410 IF p_call_from_split = fnd_api.g_false
34411 THEN
34412 -- Added by sk for fixing the bug 2234365
34413 IF x_new_instance_tbl(1).instance_id IS NOT NULL AND
34414 x_new_instance_tbl(1).instance_id <> fnd_api.g_miss_num
34415 THEN
34416 -- Added by sk for fixing bug 2245976
34417 IF csi_datastructures_pub.g_install_param_rec.fetch_flag IS NULL THEN
34418 csi_gen_utility_pvt.populate_install_param_rec;
34419 END IF;
34420 --
34421 l_internal_party_id := csi_datastructures_pub.g_install_param_rec.internal_party_id;
34422 --
34423 IF l_internal_party_id IS NULL THEN
34424 FND_MESSAGE.SET_NAME('CSI','CSI_API_UNINSTALLED_PARAMETER');
34425 FND_MSG_PUB.ADD;
34426 RAISE FND_API.G_EXC_ERROR;
34427 END IF;
34428
34429 BEGIN
34430 SELECT cip.party_id
34431 INTO l_party_id
34432 FROM csi_i_parties cip
34433 WHERE cip.instance_id = x_new_instance_tbl(1).instance_id
34434 AND cip.relationship_type_code = 'OWNER';
34435 EXCEPTION
34436 WHEN OTHERS THEN
34437 l_party_id := NULL;
34438 END;
34439
34440 -- Added for Bug 14593787
34441 BEGIN
34442 select 'Y'
34443 into l_contract_exists
34444 from okc_k_lines_b where id in
34445 ( select CLE_ID from okc_k_items
34446 where object1_id1=( select to_char(instance_id) from csi_item_instances where instance_id = p_source_instance_rec.instance_id) --15866675
34447 and jtot_object1_code= 'OKX_CUSTPROD') and rownum=1;
34448 EXCEPTION
34449 WHEN OTHERS THEN
34450 l_contract_exists := NULL;
34451 END;
34452
34453
34454 IF l_party_id IS NOT NULL AND
34455 l_internal_party_id IS NOT NULL AND
34456 l_party_id <> l_internal_party_id
34457 AND (l_contract_exists = 'Y') -- Added for Bug 14593787
34458 THEN
34459 -- End addition by sk for fixing bug 2245976
34460 csi_item_instance_pvt.Call_to_Contracts(
34461 p_transaction_type => 'NEW'
34462 ,p_instance_id => x_new_instance_tbl(1).instance_id
34463 ,p_new_instance_id => NULL
34464 ,p_vld_org_id => x_new_instance_tbl(1).vld_organization_id
34465 ,p_quantity => NULL
34466 ,p_party_account_id1 => NULL
34467 ,p_party_account_id2 => NULL
34468 ,p_transaction_date => p_txn_rec.transaction_date -- For 3483763
34469 ,p_source_transaction_date => p_txn_rec.source_transaction_date -- For 3483763
34470 ,p_oks_txn_inst_tbl => px_oks_txn_inst_tbl
34471 ,x_return_status => x_return_status
34472 ,x_msg_count => x_msg_count
34473 ,x_msg_data => x_msg_data
34474 );
34475
34476 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS)
34477 THEN
34478 l_msg_index := 1;
34479 l_msg_count := x_msg_count;
34480 WHILE l_msg_count > 0 LOOP
34481 x_msg_data := FND_MSG_PUB.GET
34482 ( l_msg_index,
34483 FND_API.G_FALSE
34484 );
34485 csi_gen_utility_pvt.put_line('MESSAGE DATA = '||x_msg_data);
34486 l_msg_index := l_msg_index + 1;
34487 l_msg_count := l_msg_count - 1;
34488 END LOOP;
34489 RAISE FND_API.G_EXC_ERROR;
34490 END IF;
34491 --
34492 IF px_oks_txn_inst_tbl.count > 0 THEN
34493 csi_gen_utility_pvt.dump_oks_txn_inst_tbl(px_oks_txn_inst_tbl);
34494 csi_gen_utility_pvt.put_line('Calling OKS Core API...');
34495 --
34496 IF p_txn_rec.transaction_type_id = 3 THEN
34497 l_batch_id := p_txn_rec.source_header_ref_id;
34498 l_batch_type := p_txn_rec.source_group_ref;
34499 ELSE
34500 l_batch_id := NULL;
34501 l_batch_type := NULL;
34502 END IF;
34503 --
34504 UPDATE CSI_TRANSACTIONS
34505 set contracts_invoked = 'Y'
34506 where transaction_id = p_txn_rec.transaction_id;
34507 --
34508 OKS_IBINT_PUB.IB_interface
34509 (
34510 P_Api_Version => 1.0,
34511 P_init_msg_list => p_init_msg_list,
34512 P_single_txn_date_flag => 'Y',
34513 P_Batch_type => l_batch_type,
34514 P_Batch_ID => l_batch_id,
34515 P_OKS_Txn_Inst_tbl => px_oks_txn_inst_tbl,
34516 x_return_status => x_return_status,
34517 x_msg_count => x_msg_count,
34518 x_msg_data => x_msg_data
34519 );
34520 --
34521 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
34522 l_msg_index := 1;
34523 l_msg_count := x_msg_count;
34524 WHILE l_msg_count > 0 LOOP
34525 x_msg_data := FND_MSG_PUB.GET
34526 ( l_msg_index,
34527 FND_API.G_FALSE );
34528 csi_gen_utility_pvt.put_line( 'Error from OKS_IBINT_PUB.IB_interface..');
34529 csi_gen_utility_pvt.put_line('MESSAGE DATA = '||x_msg_data);
34530 l_msg_index := l_msg_index + 1;
34531 l_msg_count := l_msg_count - 1;
34532 END LOOP;
34533 RAISE FND_API.G_EXC_ERROR;
34534 END IF;
34535 END IF;
34536 END IF;
34537 END IF;
34538 -- End Addition by sk for fixing the bug 2234365
34539 END IF;
34540
34541 -- Copy child instances if desired
34542 IF (p_copy_inst_children = fnd_api.g_true) THEN
34543
34544 p_rel_query_rec.object_id := p_source_instance_rec.instance_id;
34545 p_rel_query_rec.relationship_type_code := 'COMPONENT-OF';
34546 --
34547 IF p_rel_query_rec.object_id IS NOT NULL AND
34548 p_rel_query_rec.object_id <> FND_API.G_MISS_NUM THEN
34549 csi_ii_relationships_pvt.Get_Children
34550 ( p_relationship_query_rec => p_rel_query_rec,
34551 p_rel_tbl => l_rel_tbl,
34552 p_depth => NULL,
34553 p_active_relationship_only => FND_API.G_TRUE,
34554 p_time_stamp => FND_API.G_MISS_DATE,
34555 p_get_dfs => FND_API.G_FALSE,
34556 p_ii_relationship_level_tbl => l_ii_relationship_level_tbl,
34557 x_return_status => x_return_status,
34558 x_msg_count => x_msg_count,
34559 x_msg_data => x_msg_data
34560 );
34561 --
34562 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
34563 FND_MESSAGE.SET_NAME('CSI','CSI_API_GET_CHILDREN_ERROR');
34564 FND_MSG_PUB.Add;
34565 RAISE FND_API.G_EXC_ERROR;
34566 END IF;
34567 END IF;
34568 --
34569 -- FOR inst_config_rec IN inst_children_cur( p_source_instance_rec.instance_id)
34570 IF l_rel_tbl.count > 0 THEN
34571 FOR j in l_rel_tbl.FIRST .. l_rel_tbl.LAST
34572 LOOP
34573 IF NOT(csi_Item_Instance_Vld_pvt.Val_and_get_inst_rec(
34574 l_rel_tbl(j).SUBJECT_ID,
34575 l_source_child_instance_rec)) THEN
34576 RAISE FND_API.G_EXC_ERROR;
34577 END IF;
34578
34579 IF l_source_child_instance_rec.vld_organization_id = l_par_vld_organization_id
34580 THEN
34581 l_source_child_instance_rec.vld_organization_id := l_new_instance_rec.vld_organization_id;
34582 END IF;
34583
34584 -- Added by rtalluri for the Bug: 2297972
34585 IF l_source_child_instance_rec.serial_number IS NOT NULL
34586 THEN
34587 l_source_child_instance_rec.serial_number := NULL;
34588 l_source_child_instance_rec.mfg_serial_number_flag := 'N';
34589 l_source_child_instance_rec.creation_complete_flag := FND_API.G_MISS_CHAR;
34590 END IF;
34591 -- End of Addition by rtalluri for the Bug: 2297972
34592 csi_item_instance_pvt.copy_single_item_instance
34593 ( p_api_version => p_api_version
34594 ,p_commit => fnd_api.g_false
34595 ,p_init_msg_list => p_init_msg_list
34596 ,p_validation_level => p_validation_level
34597 ,p_source_instance_rec => l_source_child_instance_rec
34598 ,p_copy_ext_attribs => p_copy_ext_attribs
34599 ,p_copy_org_assignments => p_copy_org_assignments
34600 ,p_copy_parties => p_copy_parties
34601 ,p_copy_contacts => p_copy_contacts
34602 ,p_copy_accounts => p_copy_accounts
34603 ,p_copy_asset_assignments => p_copy_asset_assignments
34604 ,p_copy_pricing_attribs => p_copy_pricing_attribs
34605 ,p_call_from_split => p_call_from_split
34606 -- ,p_copy_inst_children => fnd_api.g_false
34607 ,p_txn_rec => p_txn_rec
34608 ,x_new_instance_tbl => l_new_child_instance_tbl
34609 ,x_return_status => x_return_status
34610 ,x_msg_count => x_msg_count
34611 ,x_msg_data => x_msg_data
34612 );
34613 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
34614 FOR i in 1..x_msg_Count LOOP
34615 FND_MSG_PUB.Get(p_msg_index => i,
34616 p_encoded => 'F',
34617 p_data => x_msg_data,
34618 p_msg_index_out => x_msg_index_out );
34619 csi_gen_utility_pvt.put_line('message data = '||x_msg_data);
34620 End LOOP;
34621 RAISE fnd_api.g_exc_error;
34622 ELSE
34623 l_map_count := l_map_count + 1;
34624 l_map_inst_tbl(l_map_count).old_instance_id := l_rel_tbl(j).subject_id;
34625 l_map_inst_tbl(l_map_count).new_instance_id := l_new_child_instance_tbl(1).instance_id;
34626 END IF;
34627 END LOOP;
34628
34629 l_new_ii_relationship_tbl.DELETE;
34630 IF l_map_inst_tbl.count > 0
34631 THEN
34632 -- FOR inst_config_rec in inst_children_cur(p_source_instance_rec.instance_id)
34633 FOR j in l_rel_tbl.FIRST .. l_rel_tbl.LAST
34634 LOOP
34635 l_rel_count := l_rel_count + 1;
34636 l_new_ii_relationship_tbl(l_rel_count).relationship_type_code := l_rel_tbl(j).relationship_type_code;
34637 FOR map_row in l_map_inst_tbl.FIRST..l_map_inst_tbl.LAST
34638 LOOP
34639 IF l_rel_tbl(j).subject_id = l_map_inst_tbl(map_row).old_instance_id
34640 THEN
34641 l_new_ii_relationship_tbl(l_rel_count).subject_id := l_map_inst_tbl(map_row).new_instance_id;
34642 EXIT;
34643 END IF;
34644 END LOOP;
34645 --
34646 FOR map_row in l_map_inst_tbl.FIRST..l_map_inst_tbl.LAST
34647 LOOP
34648 IF l_rel_tbl(j).object_id = l_map_inst_tbl(map_row).old_instance_id
34649 THEN
34650 l_new_ii_relationship_tbl(l_rel_count).object_id := l_map_inst_tbl(map_row).new_instance_id;
34651 EXIT;
34652 END IF;
34653 END LOOP;
34654 END LOOP;
34655 END IF;
34656
34657 -- Create the new configuration
34658 IF l_new_ii_relationship_tbl.count > 0
34659 THEN
34660 csi_ii_relationships_pvt.create_relationship
34661 ( p_api_version => p_api_version
34662 ,p_commit => p_commit
34663 ,p_init_msg_list => p_init_msg_list
34664 ,p_validation_level => p_validation_level
34665 ,p_relationship_tbl => l_new_ii_relationship_tbl
34666 ,p_txn_rec => p_txn_rec
34667 ,x_return_status => x_return_status
34668 ,x_msg_count => x_msg_count
34669 ,x_msg_data => x_msg_data
34670 );
34671
34672 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
34673 FOR i in 1..x_msg_Count LOOP
34674 FND_MSG_PUB.Get(p_msg_index => i,
34675 p_encoded => 'F',
34676 p_data => x_msg_data,
34677 p_msg_index_out => x_msg_index_out );
34678 csi_gen_utility_pvt.put_line('message data = '||x_msg_data);
34679 END LOOP;
34680 RAISE fnd_api.g_exc_error;
34681 END IF;
34682 END IF;
34683 END IF; -- l_rel_tbl count check
34684 END IF;
34685
34686 -- Begin Add Code for Siebel Genesis Project
34687 csi_gen_utility_pvt.put_line('Calling Siebel Genesis Event in Copy Item Instance');
34688
34689 IF l_raise_bes_event = 'Y' THEN
34690 BEGIN
34691 SELECT internal_party_id
34692 INTO l_internal_party_id
34693 FROM csi_install_parameters;
34694 EXCEPTION
34695 when no_data_found then
34696 l_internal_party_id := null;
34697 END;
34698
34699 BEGIN
34700 SELECT owner_party_id
34701 INTO l_owner_party_id
34702 FROM csi_item_instances
34703 WHERE instance_id = l_new_instance_rec.instance_id;
34704 EXCEPTION
34705 when no_data_found then
34706 l_owner_party_id := null;
34707 END;
34708
34709 csi_gen_utility_pvt.put_line(' l_internal_party_Id = '||to_char(l_internal_party_id));
34710 csi_gen_utility_pvt.put_line(' l_party_Id = '||to_char(l_owner_party_id));
34711 csi_gen_utility_pvt.put_line(' fnd_api.g_miss_num = '||to_char(fnd_api.g_miss_num));
34712 IF l_internal_party_id <> l_owner_party_id THEN
34713 IF (l_new_instance_rec.last_oe_order_line_id IS NULL OR l_new_instance_rec.last_oe_order_line_id = fnd_api.g_miss_num) THEN
34714 csi_gen_utility_pvt.put_line('Firing the CREATE INSTANCE EVENT ');
34715 CSI_BUSINESS_EVENT_PVT.CREATE_INSTANCE_EVENT
34716 (p_api_version => p_api_version
34717 ,p_commit => fnd_api.g_false
34718 ,p_init_msg_list => p_init_msg_list
34719 ,p_validation_level => p_validation_level
34720 ,p_instance_id => l_new_instance_rec.instance_id
34721 ,p_subject_instance_id => null
34722 ,x_return_status => x_return_status
34723 ,x_msg_count => x_msg_count
34724 ,x_msg_data => x_msg_data
34725 );
34726
34727 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
34728 l_msg_index := 1;
34729 l_msg_count := x_msg_count;
34730
34731 WHILE l_msg_count > 0 LOOP
34732 x_msg_data := FND_MSG_PUB.GET
34733 (l_msg_index,
34734 FND_API.G_FALSE );
34735 csi_gen_utility_pvt.put_line('Error from CSI_BUSINESS_EVENT.CREATE_INSTANCE_EVENT');
34736 csi_gen_utility_pvt.put_line('MESSAGE DATA = '||x_msg_data);
34737 l_msg_index := l_msg_index + 1;
34738 l_msg_count := l_msg_count - 1;
34739 END LOOP;
34740 RAISE FND_API.G_EXC_ERROR;
34741 END IF;
34742 ELSIF (l_new_instance_rec.last_oe_order_line_id IS NOT NULL OR l_new_instance_rec.last_oe_order_line_id <> fnd_api.g_miss_num) THEN
34743 csi_gen_utility_pvt.put_line('Before link to line id ');
34744 BEGIN
34745 SELECT link_to_line_id, item_type_code
34746 INTO l_link_to_line_id, l_item_type_code
34747 FROM oe_order_lines_all
34748 WHERE line_id = l_new_instance_rec.last_oe_order_line_id;
34749 EXCEPTION
34750 WHEN OTHERS THEN
34751 l_link_to_line_id := null;
34752 l_item_type_code := null;
34753 END;
34754
34755 IF l_link_to_line_id is null and l_item_type_code = 'STANDARD' THEN
34756 CSI_BUSINESS_EVENT_PVT.CREATE_INSTANCE_EVENT
34757 (p_api_version => p_api_version
34758 ,p_commit => fnd_api.g_false
34759 ,p_init_msg_list => p_init_msg_list
34760 ,p_validation_level => p_validation_level
34761 ,p_instance_id => l_new_instance_rec.instance_id
34762 ,p_subject_instance_id => null
34763 ,x_return_status => x_return_status
34764 ,x_msg_count => x_msg_count
34765 ,x_msg_data => x_msg_data
34766 );
34767
34768 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
34769 l_msg_index := 1;
34770 l_msg_count := x_msg_count;
34771
34772 WHILE l_msg_count > 0 LOOP
34773 x_msg_data := FND_MSG_PUB.GET
34774 (l_msg_index,
34775 FND_API.G_FALSE );
34776 csi_gen_utility_pvt.put_line('Error from CSI_BUSINESS_EVENT.CREATE_INSTANCE_EVENT');
34777 csi_gen_utility_pvt.put_line('MESSAGE DATA = '||x_msg_data);
34778 l_msg_index := l_msg_index + 1;
34779 l_msg_count := l_msg_count - 1;
34780 END LOOP;
34781 RAISE FND_API.G_EXC_ERROR;
34782 END IF;
34783 END IF;
34784 END IF;
34785 END IF;
34786 END IF;
34787 -- End Add Code for Siebel Genesis Project
34788
34789 -- End of API body
34790
34791 -- Standard check of p_commit
34792 IF FND_API.To_Boolean( p_commit ) THEN
34793 COMMIT WORK;
34794 END IF;
34795
34796
34797 -- Standard call to get message count and if count is get message info.
34798 FND_MSG_PUB.Count_And_Get
34799 (p_encoded => FND_API.G_FALSE,
34800 p_count => x_msg_count ,
34801 p_data => x_msg_data
34802 );
34803 EXCEPTION
34804
34805 WHEN FND_API.G_EXC_ERROR THEN
34806 ROLLBACK TO copy_item_instance;
34807 x_return_status := FND_API.G_RET_STS_ERROR ;
34808 FND_MSG_PUB.Count_And_Get
34809 ( p_encoded => FND_API.G_FALSE,
34810 p_count => x_msg_count,
34811 p_data => x_msg_data
34812 );
34813
34814 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
34815 ROLLBACK TO copy_item_instance;
34816 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
34817 FND_MSG_PUB.Count_And_Get
34818 ( p_encoded => FND_API.G_FALSE,
34819 p_count => x_msg_count,
34820 p_data => x_msg_data
34821 );
34822
34823 WHEN OTHERS THEN
34824 ROLLBACK TO copy_item_instance;
34825 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
34826 IF FND_MSG_PUB.Check_Msg_Level
34827 (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
34828 THEN
34829 FND_MSG_PUB.Add_Exc_Msg
34830 ( G_PKG_NAME ,
34831 l_api_name
34832 );
34833 END IF;
34834
34835 FND_MSG_PUB.Count_And_Get
34836 ( p_encoded => FND_API.G_FALSE,
34837 p_count => x_msg_count,
34838 p_data => x_msg_data
34839 );
34840
34841 END copy_item_instance;
34842
34843
34844
34845 /*------------------------------------------------------------*/
34846 /* Procedure name: get_version_label_history */
34847 /* Description : Procedure used to get version lables */
34848 /* from history given a transaction_id */
34849 /*------------------------------------------------------------*/
34850
34851 PROCEDURE get_version_label_history
34852 ( p_api_version IN NUMBER
34853 ,p_commit IN VARCHAR2
34854 ,p_init_msg_list IN VARCHAR2
34855 ,p_validation_level IN NUMBER
34856 ,p_transaction_id IN NUMBER
34857 ,x_version_label_hist_tbl OUT NOCOPY csi_datastructures_pub.version_label_history_tbl
34858 ,x_return_status OUT NOCOPY VARCHAR2
34859 ,x_msg_count OUT NOCOPY NUMBER
34860 ,x_msg_data OUT NOCOPY VARCHAR2
34861 )IS
34862
34863 l_api_name CONSTANT VARCHAR2(30) := 'get_version_label_history' ;
34864 l_api_version CONSTANT NUMBER := 1.0 ;
34865 l_csi_debug_level NUMBER ;
34866 x_msg_index_out NUMBER ;
34867 l_count NUMBER := 0 ;
34868 l_flag VARCHAR2(1) :='N' ;
34869 i NUMBER :=1;
34870
34871 CURSOR get_version_label_hist(i_transaction_id NUMBER)
34872 IS
34873 SELECT vlh.VERSION_LABEL_HISTORY_ID,
34874 vlh.VERSION_LABEL_ID,
34875 vlh.TRANSACTION_ID ,
34876 vlh.OLD_VERSION_LABEL,
34877 vlh.NEW_VERSION_LABEL,
34878 vlh.OLD_DESCRIPTION ,
34879 vlh.NEW_DESCRIPTION ,
34880 vlh.OLD_DATE_TIME_STAMP,
34881 vlh.NEW_DATE_TIME_STAMP,
34882 vlh.OLD_ACTIVE_START_DATE,
34883 vlh.NEW_ACTIVE_START_DATE,
34884 vlh.OLD_ACTIVE_END_DATE ,
34885 vlh.NEW_ACTIVE_END_DATE ,
34886 vlh.OLD_CONTEXT ,
34887 vlh.NEW_CONTEXT ,
34888 vlh.OLD_ATTRIBUTE1 ,
34889 vlh.NEW_ATTRIBUTE1 ,
34890 vlh.OLD_ATTRIBUTE2 ,
34891 vlh.NEW_ATTRIBUTE2 ,
34892 vlh.OLD_ATTRIBUTE3 ,
34893 vlh.NEW_ATTRIBUTE3 ,
34894 vlh.OLD_ATTRIBUTE4 ,
34895 vlh.NEW_ATTRIBUTE4 ,
34896 vlh.OLD_ATTRIBUTE5 ,
34897 vlh.NEW_ATTRIBUTE5 ,
34898 vlh.OLD_ATTRIBUTE6 ,
34899 vlh.NEW_ATTRIBUTE6 ,
34900 vlh.OLD_ATTRIBUTE7 ,
34901 vlh.NEW_ATTRIBUTE7 ,
34902 vlh.OLD_ATTRIBUTE8 ,
34903 vlh.NEW_ATTRIBUTE8 ,
34904 vlh.OLD_ATTRIBUTE9 ,
34905 vlh.NEW_ATTRIBUTE9 ,
34906 vlh.OLD_ATTRIBUTE10 ,
34907 vlh.NEW_ATTRIBUTE10 ,
34908 vlh.OLD_ATTRIBUTE11 ,
34909 vlh.NEW_ATTRIBUTE11 ,
34910 vlh.OLD_ATTRIBUTE12 ,
34911 vlh.NEW_ATTRIBUTE12 ,
34912 vlh.OLD_ATTRIBUTE13 ,
34913 vlh.NEW_ATTRIBUTE13 ,
34914 vlh.OLD_ATTRIBUTE14 ,
34915 vlh.NEW_ATTRIBUTE14 ,
34916 vlh.OLD_ATTRIBUTE15 ,
34917 vlh.NEW_ATTRIBUTE15 ,
34918 vlh.FULL_DUMP_FLAG ,
34919 vlh.OBJECT_VERSION_NUMBER,
34920 vl.INSTANCE_ID
34921 FROM csi_i_version_labels_h vlh,
34922 csi_i_version_labels vl
34923 WHERE vlh.transaction_id = i_transaction_id
34924 AND vlh.version_label_id = vl.version_label_id;
34925
34926
34927 BEGIN
34928 -- Standard Start of API savepoint
34929 -- SAVEPOINT get_version_label_history;
34930
34931
34932 -- Standard call to check for call compatibility.
34933 IF NOT FND_API.Compatible_API_Call ( l_api_version ,
34934 p_api_version ,
34935 l_api_name ,
34936 g_pkg_name )
34937 THEN
34938 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
34939 END IF;
34940
34941 -- Initialize message list if p_init_msg_list is set to TRUE.
34942 IF FND_API.to_Boolean( p_init_msg_list ) THEN
34943 FND_MSG_PUB.initialize;
34944 END IF;
34945
34946 -- Initialize API return status to success
34947 x_return_status := FND_API.G_RET_STS_SUCCESS;
34948
34949 -- Check the profile option CSI_DEBUG_LEVEL for debug message reporting
34950 l_csi_debug_level:=fnd_profile.value('CSI_DEBUG_LEVEL');
34951
34952 -- If CSI_DEBUG_LEVEL = 1 then dump the procedure name
34953 IF (l_csi_debug_level > 0) THEN
34954 csi_gen_utility_pvt.put_line( 'get_version_label_history');
34955 END IF;
34956
34957 -- If the debug level = 2 then dump all the parameters values.
34958 IF (l_csi_debug_level > 1) THEN
34959 csi_gen_utility_pvt.put_line( 'get_version_label_history' ||
34960 p_api_version ||'-'||
34961 p_commit ||'-'||
34962 p_init_msg_list ||'-'||
34963 p_validation_level ||'-'||
34964 p_transaction_id );
34965 -- dump the in parameter in the log file
34966
34967 END IF;
34968
34969 /***** srramakr commented for bug # 3304439
34970 -- Check for the profile option and enable trace
34971 l_flag:=csi_gen_utility_pvt.enable_trace(l_trace_flag => l_flag);
34972 -- End enable trace
34973 ****/
34974
34975 -- Start API body
34976
34977 FOR C1 IN get_version_label_hist(p_transaction_id)
34978 LOOP
34979
34980
34981
34982
34983 x_version_label_hist_tbl(i).VERSION_LABEL_HISTORY_ID:= C1.VERSION_LABEL_HISTORY_ID;
34984 x_version_label_hist_tbl(i).VERSION_LABEL_ID := C1.VERSION_LABEL_ID;
34985 x_version_label_hist_tbl(i).TRANSACTION_ID := C1.TRANSACTION_ID;
34986 x_version_label_hist_tbl(i).OLD_VERSION_LABEL := C1.OLD_VERSION_LABEL;
34987 x_version_label_hist_tbl(i).NEW_VERSION_LABEL := C1.NEW_VERSION_LABEL;
34988 x_version_label_hist_tbl(i).OLD_DESCRIPTION := C1.OLD_DESCRIPTION ;
34989 x_version_label_hist_tbl(i).NEW_DESCRIPTION := C1.NEW_DESCRIPTION;
34990 x_version_label_hist_tbl(i).OLD_DATE_TIME_STAMP := C1.OLD_DATE_TIME_STAMP ;
34991 x_version_label_hist_tbl(i).NEW_DATE_TIME_STAMP := C1.NEW_DATE_TIME_STAMP;
34992 x_version_label_hist_tbl(i).OLD_ACTIVE_START_DATE:= C1.OLD_ACTIVE_START_DATE;
34993 x_version_label_hist_tbl(i).NEW_ACTIVE_START_DATE:= C1.NEW_ACTIVE_START_DATE;
34994 x_version_label_hist_tbl(i).OLD_ACTIVE_END_DATE:= C1.OLD_ACTIVE_END_DATE;
34995 x_version_label_hist_tbl(i).NEW_ACTIVE_END_DATE:= C1.NEW_ACTIVE_END_DATE;
34996 x_version_label_hist_tbl(i).OLD_CONTEXT:= C1.OLD_CONTEXT;
34997 x_version_label_hist_tbl(i).NEW_CONTEXT:= C1.NEW_CONTEXT;
34998 x_version_label_hist_tbl(i).OLD_ATTRIBUTE1:= C1.OLD_ATTRIBUTE1;
34999 x_version_label_hist_tbl(i).NEW_ATTRIBUTE1:= C1.NEW_ATTRIBUTE1;
35000 x_version_label_hist_tbl(i).OLD_ATTRIBUTE2:= C1.OLD_ATTRIBUTE2;
35001 x_version_label_hist_tbl(i).NEW_ATTRIBUTE2:= C1.NEW_ATTRIBUTE2;
35002 x_version_label_hist_tbl(i).OLD_ATTRIBUTE3:= C1.OLD_ATTRIBUTE3;
35003 x_version_label_hist_tbl(i).OLD_ATTRIBUTE3:= C1.OLD_ATTRIBUTE3;
35004 x_version_label_hist_tbl(i).OLD_ATTRIBUTE4:= C1.OLD_ATTRIBUTE4;
35005 x_version_label_hist_tbl(i).NEW_ATTRIBUTE4:= C1.NEW_ATTRIBUTE4;
35006 x_version_label_hist_tbl(i).OLD_ATTRIBUTE5:= C1.OLD_ATTRIBUTE5;
35007 x_version_label_hist_tbl(i).NEW_ATTRIBUTE5:= C1.NEW_ATTRIBUTE5;
35008 x_version_label_hist_tbl(i).OLD_ATTRIBUTE6:= C1.OLD_ATTRIBUTE6;
35009 x_version_label_hist_tbl(i).NEW_ATTRIBUTE6:= C1.NEW_ATTRIBUTE6;
35010 x_version_label_hist_tbl(i).OLD_ATTRIBUTE7:= C1.OLD_ATTRIBUTE7;
35011 x_version_label_hist_tbl(i).NEW_ATTRIBUTE7:= C1.NEW_ATTRIBUTE7;
35012 x_version_label_hist_tbl(i).OLD_ATTRIBUTE8:= C1.OLD_ATTRIBUTE8;
35013 x_version_label_hist_tbl(i).NEW_ATTRIBUTE8:= C1.NEW_ATTRIBUTE8;
35014 x_version_label_hist_tbl(i).OLD_ATTRIBUTE9:= C1.OLD_ATTRIBUTE9;
35015 x_version_label_hist_tbl(i).NEW_ATTRIBUTE9:= C1.NEW_ATTRIBUTE9;
35016 x_version_label_hist_tbl(i).OLD_ATTRIBUTE10:= C1.OLD_ATTRIBUTE10;
35017 x_version_label_hist_tbl(i).NEW_ATTRIBUTE10:= C1.NEW_ATTRIBUTE10;
35018 x_version_label_hist_tbl(i).OLD_ATTRIBUTE11:= C1.OLD_ATTRIBUTE11;
35019 x_version_label_hist_tbl(i).NEW_ATTRIBUTE11:= C1.NEW_ATTRIBUTE11;
35020 x_version_label_hist_tbl(i).OLD_ATTRIBUTE12:= C1.OLD_ATTRIBUTE12;
35021 x_version_label_hist_tbl(i).NEW_ATTRIBUTE12:= C1.NEW_ATTRIBUTE12;
35022 x_version_label_hist_tbl(i).OLD_ATTRIBUTE13:= C1.OLD_ATTRIBUTE13;
35023 x_version_label_hist_tbl(i).NEW_ATTRIBUTE13:= C1.NEW_ATTRIBUTE13;
35024 x_version_label_hist_tbl(i).OLD_ATTRIBUTE14:= C1.OLD_ATTRIBUTE14;
35025 x_version_label_hist_tbl(i).NEW_ATTRIBUTE14:= C1.NEW_ATTRIBUTE14;
35026 x_version_label_hist_tbl(i).OLD_ATTRIBUTE15:= C1.OLD_ATTRIBUTE15;
35027 x_version_label_hist_tbl(i).NEW_ATTRIBUTE15:= C1.NEW_ATTRIBUTE15;
35028 x_version_label_hist_tbl(i).FULL_DUMP_FLAG:= C1.FULL_DUMP_FLAG;
35029 x_version_label_hist_tbl(i).OBJECT_VERSION_NUMBER := C1.OBJECT_VERSION_NUMBER;
35030 x_version_label_hist_tbl(i).INSTANCE_ID := C1.INSTANCE_ID;
35031 i := i + 1;
35032
35033 END LOOP;
35034
35035 -- End of API body
35036
35037 -- Standard check of p_commit.
35038 /*
35039 IF FND_API.To_Boolean( p_commit ) THEN
35040 COMMIT WORK;
35041 END IF;
35042 */
35043
35044 /***** srramakr commented for bug # 3304439
35045 -- Check for the profile option and disable the trace
35046 IF (l_flag = 'Y') THEN
35047 dbms_session.set_sql_trace(false);
35048 END IF;
35049 -- End disable trace
35050 ****/
35051
35052 -- Standard call to get message count and if count is get message info.
35053 FND_MSG_PUB.Count_And_Get
35054 (p_encoded => FND_API.G_FALSE,
35055 p_count => x_msg_count ,
35056 p_data => x_msg_data );
35057 EXCEPTION
35058 WHEN FND_API.G_EXC_ERROR THEN
35059 -- ROLLBACK TO get_version_label_history;
35060 x_return_status := FND_API.G_RET_STS_ERROR ;
35061 FND_MSG_PUB.Count_And_Get
35062 ( p_encoded => FND_API.G_FALSE,
35063 p_count => x_msg_count,
35064 p_data => x_msg_data );
35065 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
35066 -- ROLLBACK TO get_version_label_history;
35067 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
35068 FND_MSG_PUB.Count_And_Get
35069 ( p_encoded => FND_API.G_FALSE,
35070 p_count => x_msg_count,
35071 p_data => x_msg_data );
35072 WHEN OTHERS THEN
35073 -- ROLLBACK TO get_version_label_history;
35074 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
35075 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
35076 FND_MSG_PUB.Add_Exc_Msg
35077 ( g_pkg_name ,
35078 l_api_name );
35079 END IF;
35080 FND_MSG_PUB.Count_And_Get
35081 ( p_encoded => FND_API.G_FALSE,
35082 p_count => x_msg_count,
35083 p_data => x_msg_data );
35084
35085 END get_version_label_history;
35086
35087 /*----------------------------------------------------*/
35088 /* Procedure name: get_instance_link_locations */
35089 /* Description : procedure to */
35090 /* get an Item Instance */
35091 /*----------------------------------------------------*/
35092
35093 PROCEDURE get_instance_link_locations
35094 (
35095 p_api_version IN NUMBER
35096 ,p_commit IN VARCHAR2
35097 ,p_init_msg_list IN VARCHAR2
35098 ,p_validation_level IN NUMBER
35099 ,p_instance_id IN NUMBER
35100 ,x_instance_link_rec OUT NOCOPY csi_datastructures_pub.instance_link_rec
35101 ,x_return_status OUT NOCOPY VARCHAR2
35102 ,x_msg_count OUT NOCOPY NUMBER
35103 ,x_msg_data OUT NOCOPY VARCHAR2
35104 )IS
35105
35106 l_api_name CONSTANT VARCHAR2(30) := 'GET_INSTANCE_LINK_LOCATIONS';
35107 l_api_version CONSTANT NUMBER := 1.0;
35108 l_debug_level NUMBER;
35109 l_flag VARCHAR2(1) := 'N';
35110 l_instance_header_tbl csi_datastructures_pub.instance_header_tbl;
35111
35112 BEGIN
35113 -- Standard Start of API savepoint
35114 -- SAVEPOINT get_instance_link_locations;
35115
35116 -- Check for freeze_flag in csi_install_parameters is set to 'Y'
35117 csi_utility_grp.check_ib_active;
35118
35119 -- Standard call to check for call compatibility.
35120 IF NOT FND_API.Compatible_API_Call (l_api_version,
35121 p_api_version,
35122 l_api_name,
35123 G_PKG_NAME )
35124 THEN
35125 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
35126 END IF;
35127
35128 -- Initialize message list if p_init_msg_list is set to TRUE.
35129 IF FND_API.to_Boolean( p_init_msg_list ) THEN
35130 FND_MSG_PUB.initialize;
35131 END IF;
35132
35133 -- Initialize API return status to success
35134 x_return_status := FND_API.G_RET_STS_SUCCESS;
35135
35136 -- Check the profile option debug_level for debug message reporting
35137 l_debug_level:=fnd_profile.value('CSI_DEBUG_LEVEL');
35138
35139 -- If debug_level = 1 then dump the procedure name
35140 IF (l_debug_level > 0) THEN
35141 csi_gen_utility_pvt.put_line( 'get_instance_link_locations');
35142 END IF;
35143
35144 -- If the debug level = 2 then dump all the parameters values.
35145 IF (l_debug_level > 1) THEN
35146 csi_gen_utility_pvt.put_line( 'get_instance_link_locations' ||
35147 p_api_version ||'-'||
35148 p_commit ||'-'||
35149 p_init_msg_list ||'-'||
35150 p_validation_level );
35151 -- dump the query records into a log file
35152 csi_gen_utility_pvt.put_line(p_instance_id);
35153 END IF;
35154
35155 /***** srramakr commented for bug # 3304439
35156 -- Check for the profile option and enable trace
35157 l_flag:=CSI_GEN_UTILITY_PVT.enable_trace(l_trace_flag => l_flag);
35158 -- End enable trace
35159 ****/
35160
35161 -- Start API body
35162 IF (p_instance_id IS NULL)
35163 THEN
35164 FND_MESSAGE.Set_Name('CSI', 'CSI_API_INVALID_INSTANCE_ID');
35165 FND_MESSAGE.Set_Token('INSTANCE_ID', p_instance_id);
35166 FND_MSG_PUB.ADD;
35167 RAISE FND_API.G_EXC_ERROR;
35168 END IF;
35169
35170 l_instance_header_tbl(1).instance_id := p_instance_id;
35171
35172 BEGIN
35173 SELECT last_vld_organization_id,
35174 inventory_item_id
35175 INTO l_instance_header_tbl(1).vld_organization_id,
35176 l_instance_header_tbl(1).inventory_item_id
35177 FROM csi_item_instances
35178 WHERE instance_id =l_instance_header_tbl(1).instance_id;
35179 EXCEPTION
35180 WHEN OTHERS THEN
35181 NULL;
35182 END;
35183
35184 csi_item_instance_vld_pvt.get_link_locations
35185 (
35186 p_instance_header_tbl => l_instance_header_tbl,
35187 x_return_status => x_return_status
35188 );
35189 IF NOT x_return_status = FND_API.G_RET_STS_SUCCESS THEN
35190 RAISE FND_API.G_EXC_ERROR;
35191 END IF;
35192
35193 x_instance_link_rec.instance_id := l_instance_header_tbl(1).instance_id;
35194 x_instance_link_rec.start_loc_address1 := l_instance_header_tbl(1).start_loc_address1;
35195 x_instance_link_rec.start_loc_address2 := l_instance_header_tbl(1).start_loc_address2;
35196 x_instance_link_rec.start_loc_address3 := l_instance_header_tbl(1).start_loc_address3;
35197 x_instance_link_rec.start_loc_address4 := l_instance_header_tbl(1).start_loc_address4;
35198 x_instance_link_rec.start_loc_city := l_instance_header_tbl(1).start_loc_city;
35199 x_instance_link_rec.start_loc_state := l_instance_header_tbl(1).start_loc_state;
35200 x_instance_link_rec.start_loc_postal_code := l_instance_header_tbl(1).start_loc_postal_code;
35201 x_instance_link_rec.start_loc_country := l_instance_header_tbl(1).start_loc_country;
35202
35203 x_instance_link_rec.end_loc_address1 := l_instance_header_tbl(1).end_loc_address1;
35204 x_instance_link_rec.end_loc_address2 := l_instance_header_tbl(1).end_loc_address2;
35205 x_instance_link_rec.end_loc_address3 := l_instance_header_tbl(1).end_loc_address3;
35206 x_instance_link_rec.end_loc_address4 := l_instance_header_tbl(1).end_loc_address4;
35207 x_instance_link_rec.end_loc_city := l_instance_header_tbl(1).end_loc_city;
35208 x_instance_link_rec.end_loc_state := l_instance_header_tbl(1).end_loc_state;
35209 x_instance_link_rec.end_loc_postal_code := l_instance_header_tbl(1).end_loc_postal_code;
35210 x_instance_link_rec.end_loc_country := l_instance_header_tbl(1).end_loc_country;
35211
35212 -- End of API body
35213 -- Standard check of p_commit.
35214 /*
35215 IF FND_API.To_Boolean( p_commit ) THEN
35216 COMMIT WORK;
35217 END IF;
35218 */
35219 /***** srramakr commented for bug # 3304439
35220 -- Check for the profile option and disable the trace
35221 IF (l_flag = 'Y') THEN
35222 dbms_session.set_sql_trace(FALSE);
35223 END IF;
35224 -- End disable trace
35225 ****/
35226
35227 -- Standard call to get message count and if count is get message info.
35228 FND_MSG_PUB.Count_And_Get
35229 (p_encoded => FND_API.G_FALSE,
35230 p_count => x_msg_count ,
35231 p_data => x_msg_data
35232 );
35233
35234 EXCEPTION
35235
35236 WHEN FND_API.G_EXC_ERROR THEN
35237 -- ROLLBACK TO get_instance_link_locations;
35238 x_return_status := FND_API.G_RET_STS_ERROR ;
35239 FND_MSG_PUB.Count_And_Get
35240 ( p_encoded => FND_API.G_FALSE,
35241 p_count => x_msg_count,
35242 p_data => x_msg_data );
35243 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
35244 -- ROLLBACK TO get_instance_link_locations;
35245 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
35246 FND_MSG_PUB.Count_And_Get
35247 ( p_encoded => FND_API.G_FALSE,
35248 p_count => x_msg_count,
35249 p_data => x_msg_data );
35250 WHEN OTHERS THEN
35251 -- ROLLBACK TO get_instance_link_locations;
35252 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
35253 IF FND_MSG_PUB.Check_Msg_Level
35254 ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
35255 THEN
35256 FND_MSG_PUB.Add_Exc_Msg
35257 ( G_PKG_NAME, l_api_name );
35258 END IF;
35259 FND_MSG_PUB.Count_And_Get
35260 ( p_encoded => FND_API.G_FALSE,
35261 p_count => x_msg_count,
35262 p_data => x_msg_data );
35263
35264 END get_instance_link_locations;
35265
35266 PROCEDURE Update_version_time
35267 (
35268 p_api_version IN NUMBER
35269 ,p_commit IN VARCHAR2
35270 ,p_init_msg_list IN VARCHAR2
35271 ,p_validation_level IN NUMBER
35272 ,p_txn_rec IN OUT NOCOPY csi_datastructures_pub.transaction_rec
35273 ,x_return_status OUT NOCOPY VARCHAR2
35274 ,x_msg_count OUT NOCOPY NUMBER
35275 ,x_msg_data OUT NOCOPY VARCHAR2)
35276 IS
35277 CURSOR c_ver_csr (p_txn_id NUMBER) IS
35278 SELECT cv.version_label_id version_label_id
35279 ,cv.object_version_number object_version_number
35280 ,cv.instance_id instance_id
35281 FROM csi_i_version_labels cv,
35282 csi_i_version_labels_h ch
35283 WHERE cv.version_label_id=ch.version_label_id
35284 AND ch.transaction_id=p_txn_id;
35285 l_sysdate DATE :=SYSDATE;
35286 l_return_status VARCHAR2(1);
35287 l_msg_data VARCHAR2(2000);
35288 l_msg_count NUMBER;
35289 l_msg_index NUMBER;
35290 l_version_label_rec csi_datastructures_pub.version_label_rec;
35291 l_temp_label_rec csi_datastructures_pub.version_label_rec;
35292 BEGIN
35293 SAVEPOINT Update_version_time;
35294
35295 x_return_status := FND_API.G_RET_STS_SUCCESS;
35296
35297 FOR l_ver_csr IN c_ver_csr(p_txn_rec.transaction_id)
35298 LOOP
35299 l_version_label_rec:=l_temp_label_rec;
35300 l_version_label_rec.version_label_id:=l_ver_csr.version_label_id;
35301 l_version_label_rec.date_time_stamp:=l_sysdate;
35302 l_version_label_rec.object_version_number:=l_ver_csr.object_version_number;
35303 csi_item_instance_pvt.update_version_label
35304 ( p_api_version => p_api_version
35305 ,p_commit => p_commit
35306 ,p_init_msg_list => p_init_msg_list
35307 ,p_validation_level => p_validation_level
35308 ,p_version_label_rec => l_version_label_rec
35309 ,p_txn_rec => p_txn_rec
35310 ,p_call_transaction => fnd_api.g_false
35311 ,x_return_status => l_return_status
35312 ,x_msg_count => l_msg_count
35313 ,x_msg_data => l_msg_data);
35314
35315 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
35316 l_msg_index := 1;
35317 l_msg_count := x_msg_count;
35318 WHILE l_msg_count > 0 LOOP
35319 x_msg_data := FND_MSG_PUB.GET
35320 ( l_msg_index,
35321 FND_API.G_FALSE );
35322 csi_gen_utility_pvt.put_line( ' Error from update_version_label..');
35323 csi_gen_utility_pvt.put_line('MESSAGE DATA = '||x_msg_data);
35324 l_msg_index := l_msg_index + 1;
35325 l_msg_count := l_msg_count - 1;
35326 END LOOP;
35327 RAISE FND_API.G_EXC_ERROR;
35328 END IF;
35329 END LOOP;
35330 EXCEPTION
35331 WHEN NO_DATA_FOUND THEN
35332 NULL;
35333 WHEN FND_API.G_EXC_ERROR THEN
35334 ROLLBACK TO Update_version_time;
35335 x_return_status := FND_API.G_RET_STS_ERROR ;
35336 FND_MSG_PUB.Count_And_Get
35337 ( p_encoded => FND_API.G_FALSE,
35338 p_count => x_msg_count,
35339 p_data => x_msg_data );
35340 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
35341 ROLLBACK TO Update_version_time;
35342 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
35343 FND_MSG_PUB.Count_And_Get
35344 ( p_encoded => FND_API.G_FALSE,
35345 p_count => x_msg_count,
35346 p_data => x_msg_data );
35347 END Update_version_time;
35348
35349 PROCEDURE get_config_keys
35350 (p_instance_id IN NUMBER,
35351 p_config_rec OUT NOCOPY csi_item_instance_pvt.lock_config_rec
35352 )
35353 IS
35354 BEGIN
35355 SELECT config_inst_hdr_id
35356 ,config_inst_rev_num
35357 ,config_inst_item_id
35358 INTO p_config_rec.config_inst_hdr_id
35359 ,p_config_rec.config_inst_rev_num
35360 ,p_config_rec.config_inst_item_id
35361 FROM csi_item_instances
35362 WHERE instance_id=p_instance_id;
35363 EXCEPTION
35364 WHEN NO_DATA_FOUND THEN
35365 NULL;
35366 END get_config_keys;
35367
35368 PROCEDURE get_instance_lock_status
35369 ( p_instance_id IN NUMBER ,
35370 p_lock_status OUT NOCOPY NUMBER
35371 ) IS
35372 l_lock_status NUMBER :=0;
35373 BEGIN
35374 SELECT lock_status
35375 INTO p_lock_status
35376 FROM csi_item_instance_locks
35377 WHERE lock_status <> l_lock_status
35378 AND instance_id=p_instance_id;
35379 EXCEPTION
35380 WHEN NO_DATA_FOUND THEN
35381 p_lock_status := l_lock_status;
35382 WHEN TOO_MANY_ROWS THEN
35383 csi_gen_utility_pvt.put_line ('In csi_item_instance_pvt.get_instance_lock_status - too_many_rows exception ');
35384 p_lock_status := 2;
35385 END get_instance_lock_status;
35386
35387 -- Return TRUE if instance is locked
35388 FUNCTION check_item_instance_lock
35389 ( p_instance_id IN NUMBER ,
35390 p_config_inst_hdr_id IN NUMBER ,
35391 p_config_inst_item_id IN NUMBER ,
35392 p_config_inst_rev_num IN NUMBER
35393 ) RETURN BOOLEAN IS
35394 l_return_value BOOLEAN := FALSE;
35395 l_lock_id NUMBER;
35396 l_lock_status NUMBER :=0;
35397 BEGIN
35398 IF p_instance_id IS NOT NULL AND
35399 p_instance_id <> fnd_api.g_miss_num
35400 THEN
35401 BEGIN
35402 SELECT lock_id
35403 INTO l_lock_id
35404 FROM csi_item_instance_locks
35405 WHERE lock_status IS NOT NULL
35406 AND lock_status <> l_lock_status
35407 AND instance_id=p_instance_id;
35408 l_return_value := TRUE;
35409 EXCEPTION
35410 WHEN NO_DATA_FOUND THEN
35411 l_return_value := FALSE;
35412 WHEN TOO_MANY_ROWS THEN
35413 l_return_value := TRUE;
35414 END;
35415 ELSIF (p_config_inst_hdr_id IS NOT NULL AND
35416 p_config_inst_hdr_id <> fnd_api.g_miss_num AND
35417 p_config_inst_item_id IS NOT NULL AND
35418 p_config_inst_item_id <> fnd_api.g_miss_num AND
35419 p_config_inst_rev_num IS NOT NULL AND
35420 p_config_inst_rev_num <> fnd_api.g_miss_num )
35421 THEN
35422 BEGIN
35423 SELECT lock_id
35424 INTO l_lock_id
35425 FROM csi_item_instance_locks
35426 WHERE lock_status IS NOT NULL
35427 AND lock_status <> l_lock_status
35428 AND config_inst_hdr_id = p_config_inst_hdr_id
35429 AND config_inst_rev_num = p_config_inst_rev_num
35430 AND config_inst_item_id = p_config_inst_item_id;
35431 l_return_value := TRUE;
35432 EXCEPTION
35433 WHEN NO_DATA_FOUND THEN
35434 l_return_value := FALSE;
35435 WHEN TOO_MANY_ROWS THEN
35436 l_return_value := TRUE;
35437 END;
35438 END IF;
35439 RETURN l_return_value;
35440 END check_item_instance_lock;
35441
35442
35443 PROCEDURE lock_item_instances
35444 (
35445 p_api_version IN NUMBER
35446 ,p_commit IN VARCHAR2
35447 ,p_init_msg_list IN VARCHAR2
35448 ,p_validation_level IN NUMBER
35449 ,px_config_tbl IN OUT NOCOPY csi_cz_int.config_tbl
35450 -- ,p_txn_rec IN OUT NOCOPY csi_datastructures_pub.transaction_rec
35451 ,x_return_status OUT NOCOPY VARCHAR2
35452 ,x_msg_count OUT NOCOPY NUMBER
35453 ,x_msg_data OUT NOCOPY VARCHAR2
35454 )
35455 AS
35456 l_api_name CONSTANT VARCHAR2(30) := 'LOCK_ITEM_INSTANCES';
35457 l_api_version CONSTANT NUMBER := 1.0;
35458 l_csi_debug_level NUMBER;
35459 l_rel_type_code VARCHAR2(30) := 'COMPONENT-OF';
35460 l_root_node NUMBER;
35461 l_config_tbl csi_cz_int.config_tbl := px_config_tbl;
35462 l_count NUMBER;
35463 l_rel_tbl csi_datastructures_pub.ii_relationship_tbl;
35464 l_ii_relationship_level_tbl csi_ii_relationships_pvt.ii_relationship_level_tbl;
35465 l_rel_query_rec csi_datastructures_pub.relationship_query_rec;
35466 l_lock_tbl CSI_ITEM_INSTANCE_PVT.lock_instances_tbl; --csi_cz_int.config_tbl;
35467 l_root NUMBER:=0;
35468 l_found VARCHAR2(1):='N';
35469 l_root_hdr_id NUMBER;
35470 l_root_item_id NUMBER;
35471 l_root_rev_num NUMBER;
35472 l_lock_config_rec csi_item_instance_pvt.lock_config_rec;
35473 l_lock_count NUMBER;
35474 l_lock_id NUMBER;
35475 l_dup_count NUMBER;
35476 BEGIN
35477
35478 SAVEPOINT csi_lock_item_instance;
35479
35480
35481 -- Check for freeze_flag in csi_install_parameters is set to 'Y'
35482
35483 csi_utility_grp.check_ib_active;
35484
35485 -- Standard call to check for call compatibility.
35486 IF NOT FND_API.Compatible_API_Call ( l_api_version ,
35487 p_api_version ,
35488 l_api_name ,
35489 g_pkg_name )
35490 THEN
35491 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
35492 END IF;
35493
35494 -- Initialize message list if p_init_msg_list is set to TRUE.
35495 IF FND_API.to_Boolean( p_init_msg_list ) THEN
35496 FND_MSG_PUB.initialize;
35497 END IF;
35498
35499 -- Initialize API return status to success
35500 x_return_status := FND_API.G_RET_STS_SUCCESS;
35501
35502 -- Check the profile option CSI_DEBUG_LEVEL for debug message reporting
35503 l_csi_debug_level:=fnd_profile.value('CSI_DEBUG_LEVEL');
35504
35505 -- If CSI_DEBUG_LEVEL = 1 then dump the procedure name
35506 IF (l_csi_debug_level > 0) THEN
35507 csi_gen_utility_pvt.put_line( 'lock_item_instances');
35508 END IF;
35509
35510
35511 -- If the debug level = 2 then dump all the parameters values.
35512 IF (l_csi_debug_level > 1) THEN
35513 csi_gen_utility_pvt.put_line( 'lock_item_instances'||
35514 p_api_version ||'-'||
35515 p_commit ||'-'||
35516 p_init_msg_list ||'-'||
35517 p_validation_level );
35518 -- Dump the records in the log file
35519 IF px_config_tbl.COUNT > 0
35520 THEN
35521 FOR tab_row IN px_config_tbl.FIRST .. px_config_tbl.LAST
35522 LOOP
35523 csi_gen_utility_pvt.put_line(' ');
35524 csi_gen_utility_pvt.put_line('Dumping the values for config tbl Rec # :'||tab_row);
35525 csi_gen_utility_pvt.put_line('source_application_id :'||px_config_tbl(tab_row).source_application_id);
35526 csi_gen_utility_pvt.put_line('source_txn_header_ref :'||px_config_tbl(tab_row).source_txn_header_ref);
35527 csi_gen_utility_pvt.put_line('source_txn_line_ref1 :'||px_config_tbl(tab_row).source_txn_line_ref1);
35528 csi_gen_utility_pvt.put_line('source_txn_line_ref2 :'||px_config_tbl(tab_row).source_txn_line_ref2);
35529 csi_gen_utility_pvt.put_line('source_txn_line_ref3 :'||px_config_tbl(tab_row).source_txn_line_ref3);
35530 csi_gen_utility_pvt.put_line('instance_id :'||px_config_tbl(tab_row).instance_id);
35531 csi_gen_utility_pvt.put_line('lock_id :'||px_config_tbl(tab_row).lock_id);
35532 csi_gen_utility_pvt.put_line('config_inst_hdr_id :'||px_config_tbl(tab_row).config_inst_hdr_id);
35533 csi_gen_utility_pvt.put_line('config_inst_item_id :'||px_config_tbl(tab_row).config_inst_item_id);
35534 csi_gen_utility_pvt.put_line('config_inst_rev_num :'||px_config_tbl(tab_row).config_inst_rev_num);
35535 csi_gen_utility_pvt.put_line('lock_status :'||px_config_tbl(tab_row).lock_status);
35536 END LOOP;
35537 END IF;
35538 --csi_gen_utility_pvt.dump_txn_rec(p_txn_rec);
35539 END IF;
35540
35541 l_lock_tbl.DELETE;
35542
35543 IF px_config_tbl.count > 0
35544 THEN
35545 FOR i IN px_config_tbl.FIRST .. px_config_tbl.LAST
35546 LOOP
35547 IF px_config_tbl.EXISTS(i)
35548 THEN
35549 IF (px_config_tbl(i).instance_id IS NOT NULL AND
35550 px_config_tbl(i).instance_id <> fnd_api.g_miss_num) OR
35551 (px_config_tbl(i).config_inst_hdr_id IS NOT NULL AND
35552 px_config_tbl(i).config_inst_hdr_id <> fnd_api.g_miss_num AND
35553 px_config_tbl(i).config_inst_item_id IS NOT NULL AND
35554 px_config_tbl(i).config_inst_item_id <> fnd_api.g_miss_num AND
35555 px_config_tbl(i).config_inst_rev_num IS NOT NULL AND
35556 px_config_tbl(i).config_inst_rev_num <> fnd_api.g_miss_num )
35557 THEN
35558
35559 -- Check for duplicate instances
35560 IF (px_config_tbl(i).instance_id IS NOT NULL AND
35561 px_config_tbl(i).instance_id <> fnd_api.g_miss_num)
35562 THEN
35563 l_dup_count:=0;
35564 FOR dup_csr IN px_config_tbl.FIRST .. px_config_tbl.LAST
35565 LOOP
35566 IF (px_config_tbl(dup_csr).instance_id IS NOT NULL AND
35567 px_config_tbl(dup_csr).instance_id <> fnd_api.g_miss_num AND
35568 px_config_tbl(dup_csr).instance_id = px_config_tbl(i).instance_id)
35569 THEN
35570 l_dup_count := l_dup_count +1;
35571 END IF;
35572 END LOOP;
35573
35574 IF l_dup_count > 1
35575 THEN
35576 FND_MESSAGE.SET_NAME('CSI','CSI_DUPLICATE_INS_KEY');
35577 FND_MESSAGE.SET_TOKEN('INSTANCE_ID',px_config_tbl(i).instance_id);
35578 FND_MSG_PUB.Add;
35579 RAISE FND_API.G_EXC_ERROR;
35580 END IF;
35581 END IF;
35582
35583 -- Check for duplicate config keys
35584 IF (px_config_tbl(i).config_inst_hdr_id IS NOT NULL AND
35585 px_config_tbl(i).config_inst_hdr_id <> fnd_api.g_miss_num AND
35586 px_config_tbl(i).config_inst_item_id IS NOT NULL AND
35587 px_config_tbl(i).config_inst_item_id <> fnd_api.g_miss_num AND
35588 px_config_tbl(i).config_inst_rev_num IS NOT NULL AND
35589 px_config_tbl(i).config_inst_rev_num <> fnd_api.g_miss_num )
35590 THEN
35591 l_dup_count:=0;
35592 FOR dup_csr IN px_config_tbl.FIRST .. px_config_tbl.LAST
35593 LOOP
35594 IF (px_config_tbl(dup_csr).config_inst_hdr_id IS NOT NULL AND
35595 px_config_tbl(dup_csr).config_inst_hdr_id <> fnd_api.g_miss_num AND
35596 px_config_tbl(dup_csr).config_inst_hdr_id =px_config_tbl(i).config_inst_hdr_id) AND
35597 (px_config_tbl(dup_csr).config_inst_item_id IS NOT NULL AND
35598 px_config_tbl(dup_csr).config_inst_item_id <> fnd_api.g_miss_num AND
35599 px_config_tbl(dup_csr).config_inst_item_id=px_config_tbl(i).config_inst_item_id) AND
35600 (px_config_tbl(dup_csr).config_inst_rev_num IS NOT NULL AND
35601 px_config_tbl(dup_csr).config_inst_rev_num <> fnd_api.g_miss_num AND
35602 px_config_tbl(dup_csr).config_inst_rev_num=px_config_tbl(i).config_inst_rev_num)
35603 THEN
35604 l_dup_count := l_dup_count +1;
35605 END IF;
35606 END LOOP;
35607
35608 IF l_dup_count > 1
35609 THEN
35610 FND_MESSAGE.SET_NAME('CSI','CSI_DUPLICATE_KEYS_LOCKED');
35611 FND_MESSAGE.SET_TOKEN('CONFIG_INST_HDR_ID',px_config_tbl(i).config_inst_hdr_id);
35612 FND_MESSAGE.SET_TOKEN('CONFIG_INST_ITEM_ID',px_config_tbl(i).config_inst_item_id);
35613 FND_MESSAGE.SET_TOKEN('CONFIG_INST_REV_NUM',px_config_tbl(i).config_inst_rev_num);
35614 FND_MSG_PUB.Add;
35615 RAISE FND_API.G_EXC_ERROR;
35616 END IF;
35617 END IF;
35618
35619
35620 IF (px_config_tbl(i).instance_id IS NOT NULL AND
35621 px_config_tbl(i).instance_id <> fnd_api.g_miss_num)
35622 THEN
35623 IF csi_item_instance_pvt.check_item_instance_lock (p_instance_id => px_config_tbl(i).instance_id)
35624 THEN
35625 FND_MESSAGE.SET_NAME('CSI','CSI_INS_ALREADY_LOCKED');
35626 FND_MESSAGE.SET_TOKEN('INSTANCE_ID',px_config_tbl(i).instance_id);
35627 FND_MSG_PUB.Add;
35628 RAISE FND_API.G_EXC_ERROR;
35629 ELSE
35630 l_found:='N';
35631 IF l_lock_tbl.COUNT > 0
35632 THEN
35633 FOR j IN l_lock_tbl.FIRST .. l_lock_tbl.LAST
35634 LOOP
35635 IF (l_lock_tbl(j).instance_id IS NOT NULL AND
35636 l_lock_tbl(j).instance_id <> fnd_api.g_miss_num) AND
35637 l_lock_tbl(j).instance_id=px_config_tbl(i).instance_id
35638 THEN
35639 l_found:='Y';
35640 END IF;
35641 END LOOP;
35642 END IF;
35643
35644 IF l_found='N'
35645 THEN
35646
35647 csi_ii_relationships_pvt.get_top_most_parent
35648 ( p_subject_id => px_config_tbl(i).instance_id,
35649 p_rel_type_code => l_rel_type_code,
35650 p_object_id => l_root_node
35651 );
35652
35653
35654 l_rel_query_rec.object_id := l_root_node;
35655 l_rel_query_rec.relationship_type_code := l_rel_type_code;
35656
35657 csi_ii_relationships_pvt.get_children
35658 ( p_relationship_query_rec => l_rel_query_rec,
35659 p_rel_tbl => l_rel_tbl,
35660 p_depth => NULL,
35661 p_active_relationship_only => FND_API.G_TRUE,
35662 p_config_only => FND_API.G_TRUE,
35663 p_time_stamp => FND_API.G_MISS_DATE,
35664 p_get_dfs => FND_API.G_FALSE,
35665 p_ii_relationship_level_tbl => l_ii_relationship_level_tbl,
35666 x_return_status => x_return_status,
35667 x_msg_count => x_msg_count,
35668 x_msg_data => x_msg_data
35669 );
35670
35671
35672 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
35673 FND_MESSAGE.SET_NAME('CSI','CSI_API_GET_CHILDREN_ERROR');
35674 FND_MSG_PUB.Add;
35675 RAISE FND_API.G_EXC_ERROR;
35676 END IF;
35677 l_lock_count:=l_lock_tbl.COUNT+1;
35678 l_lock_tbl(l_lock_count).instance_id:=l_root_node;
35679 l_lock_tbl(l_lock_count).root_instance_id:=l_root_node;
35680 l_root_hdr_id := null;
35681 l_root_item_id:= null;
35682 l_root_rev_num:= null;
35683 FOR l_root_config IN px_config_tbl.FIRST .. px_config_tbl.LAST
35684 LOOP
35685 IF px_config_tbl(l_root_config).instance_id=l_root_node
35686 THEN
35687 l_lock_tbl(l_lock_count).root_config_inst_hdr_id := px_config_tbl(l_root_config).config_inst_hdr_id;
35688 l_lock_tbl(l_lock_count).root_config_inst_item_id:= px_config_tbl(l_root_config).config_inst_item_id;
35689 l_lock_tbl(l_lock_count).root_config_inst_rev_num:= px_config_tbl(l_root_config).config_inst_rev_num;
35690 l_root_hdr_id := px_config_tbl(l_root_config).config_inst_hdr_id;
35691 l_root_item_id:= px_config_tbl(l_root_config).config_inst_item_id;
35692 l_root_rev_num:= px_config_tbl(l_root_config).config_inst_rev_num;
35693 EXIT;
35694 END IF;
35695 END LOOP;
35696
35697 IF l_rel_tbl.COUNT>0
35698 THEN
35699 FOR l_chld_csr IN l_rel_tbl.FIRST .. l_rel_tbl.LAST
35700 LOOP
35701 l_lock_count:=l_lock_tbl.COUNT+1;
35702 l_lock_tbl(l_lock_count).instance_id:=l_rel_tbl(l_chld_csr).subject_id;
35703 IF csi_item_instance_pvt.check_item_instance_lock (p_instance_id => l_rel_tbl(l_chld_csr).subject_id)
35704 THEN
35705 FND_MESSAGE.SET_NAME('CSI','CSI_INS_ALREADY_LOCKED');
35706 FND_MESSAGE.SET_TOKEN('INSTANCE_ID',l_lock_tbl(l_lock_count).instance_id);
35707 FND_MSG_PUB.Add;
35708 RAISE FND_API.G_EXC_ERROR;
35709 END IF;
35710 l_lock_tbl(l_lock_count).root_instance_id:=l_root_node;
35711 l_lock_tbl(l_lock_count).root_config_inst_hdr_id := l_root_hdr_id;
35712 l_lock_tbl(l_lock_count).root_config_inst_item_id:= l_root_item_id;
35713 l_lock_tbl(l_lock_count).root_config_inst_rev_num:= l_root_rev_num;
35714 END LOOP;
35715 END IF;
35716 END IF;
35717 END IF;
35718 ELSIF (px_config_tbl(i).config_inst_hdr_id IS NOT NULL AND
35719 px_config_tbl(i).config_inst_hdr_id <> fnd_api.g_miss_num AND
35720 px_config_tbl(i).config_inst_item_id IS NOT NULL AND
35721 px_config_tbl(i).config_inst_item_id <> fnd_api.g_miss_num AND
35722 px_config_tbl(i).config_inst_rev_num IS NOT NULL AND
35723 px_config_tbl(i).config_inst_rev_num <> fnd_api.g_miss_num )
35724 THEN
35725 IF csi_item_instance_pvt.check_item_instance_lock ( p_config_inst_hdr_id => px_config_tbl(i).config_inst_hdr_id
35726 ,p_config_inst_item_id => px_config_tbl(i).config_inst_item_id
35727 ,p_config_inst_rev_num => px_config_tbl(i).config_inst_rev_num
35728 )
35729 THEN
35730 FND_MESSAGE.SET_NAME('CSI','CSI_CONFIG_KEYS_LOCKED');
35731 FND_MESSAGE.SET_TOKEN('CONFIG_INST_HDR_ID',px_config_tbl(i).config_inst_hdr_id);
35732 FND_MESSAGE.SET_TOKEN('CONFIG_INST_ITEM_ID',px_config_tbl(i).config_inst_item_id);
35733 FND_MESSAGE.SET_TOKEN('CONFIG_INST_REV_NUM',px_config_tbl(i).config_inst_rev_num);
35734 FND_MSG_PUB.Add;
35735 RAISE FND_API.G_EXC_ERROR;
35736 ELSE
35737 l_lock_count:=l_lock_tbl.COUNT+1;
35738 l_lock_tbl(l_lock_count).config_inst_hdr_id :=px_config_tbl(i).config_inst_hdr_id;
35739 l_lock_tbl(l_lock_count).config_inst_item_id :=px_config_tbl(i).config_inst_item_id;
35740 l_lock_tbl(l_lock_count).config_inst_rev_num :=px_config_tbl(i).config_inst_rev_num;
35741 l_lock_tbl(l_lock_count).source_application_id :=px_config_tbl(i).source_application_id;
35742 l_lock_tbl(l_lock_count).source_txn_header_ref :=px_config_tbl(i).source_txn_header_ref;
35743
35744 BEGIN
35745 SELECT instance_hdr_id -- root_config_hdr_id
35746 ,config_item_id -- root_config_item_id
35747 ,instance_rev_nbr -- root_config_rev_nbr
35748 INTO l_lock_tbl(l_lock_count).root_config_inst_hdr_id
35749 ,l_lock_tbl(l_lock_count).root_config_inst_item_id
35750 ,l_lock_tbl(l_lock_count).root_config_inst_rev_num
35751 FROM cz_config_items czItems
35752 WHERE czItems.instance_hdr_id = px_config_tbl(i).config_inst_hdr_id
35753 AND czItems.instance_rev_nbr = px_config_tbl(i).config_inst_rev_num
35754 AND czItems.component_instance_type = 'I' -- I = Root instance
35755 AND czItems.deleted_flag = '0';
35756 EXCEPTION
35757 WHEN OTHERS THEN
35758 NULL;
35759 END;
35760
35761 --l_lock_tbl(l_lock_count).root_config_inst_hdr_id := px_config_tbl(i).config_inst_hdr_id;
35762 --l_lock_tbl(l_lock_count).root_config_inst_item_id:= px_config_tbl(i).config_inst_item_id;
35763 --l_lock_tbl(l_lock_count).root_config_inst_rev_num:= px_config_tbl(i).config_inst_rev_num;
35764 l_lock_tbl(l_lock_count).lock_status:=2;
35765 px_config_tbl(i).lock_status:=2;
35766 END IF;
35767 END IF;
35768 ELSE
35769 FND_MESSAGE.SET_NAME('CSI','CSI_PASSED_INVALID_KEYS');
35770 FND_MSG_PUB.Add;
35771 RAISE FND_API.G_EXC_ERROR;
35772 END IF;
35773
35774 END IF;
35775 END LOOP;
35776 END IF;
35777
35778 IF l_lock_tbl.COUNT > 0
35779 THEN
35780 FOR root IN l_lock_tbl.FIRST .. l_lock_tbl.LAST
35781 LOOP
35782 IF l_lock_tbl.EXISTS(root)
35783 THEN
35784 IF (l_lock_tbl(root).root_config_inst_hdr_id IS NOT NULL AND
35785 l_lock_tbl(root).root_config_inst_hdr_id <> fnd_api.g_miss_num AND
35786 l_lock_tbl(root).root_config_inst_item_id IS NOT NULL AND
35787 l_lock_tbl(root).root_config_inst_item_id <> fnd_api.g_miss_num AND
35788 l_lock_tbl(root).root_config_inst_rev_num IS NOT NULL AND
35789 l_lock_tbl(root).root_config_inst_rev_num <> fnd_api.g_miss_num ) AND
35790 (l_lock_tbl(root).instance_id IS NULL OR
35791 l_lock_tbl(root).instance_id = fnd_api.g_miss_num)
35792 THEN
35793 FOR chd IN l_lock_tbl.FIRST .. l_lock_tbl.LAST
35794 LOOP
35795 IF ( (l_lock_tbl(chd).root_config_inst_hdr_id IS NULL OR
35796 l_lock_tbl(chd).root_config_inst_hdr_id = fnd_api.g_miss_num) AND
35797 (l_lock_tbl(chd).root_config_inst_item_id IS NULL OR
35798 l_lock_tbl(chd).root_config_inst_item_id = fnd_api.g_miss_num) AND
35799 (l_lock_tbl(chd).root_config_inst_rev_num IS NULL OR
35800 l_lock_tbl(chd).root_config_inst_rev_num = fnd_api.g_miss_num)) AND
35801 ( l_lock_tbl(chd).instance_id IS NULL OR
35802 l_lock_tbl(chd).instance_id = fnd_api.g_miss_num) AND
35803 ( l_lock_tbl(chd).config_inst_hdr_id = l_lock_tbl(root).config_inst_hdr_id AND
35804 l_lock_tbl(chd).config_inst_rev_num = l_lock_tbl(root).config_inst_rev_num )
35805 THEN
35806 l_lock_tbl(chd).root_config_inst_hdr_id := l_lock_tbl(root).root_config_inst_hdr_id;
35807 l_lock_tbl(chd).root_config_inst_item_id := l_lock_tbl(root).root_config_inst_item_id;
35808 l_lock_tbl(chd).root_config_inst_rev_num := l_lock_tbl(root).root_config_inst_rev_num;
35809 END IF;
35810 END LOOP;
35811 END IF;
35812 END IF;
35813 END LOOP;
35814 END IF;
35815
35816
35817
35818 SELECT csi_item_instance_locks_s.NEXTVAL
35819 INTO l_lock_id
35820 FROM SYS.dual;
35821
35822 IF px_config_tbl.COUNT > 0
35823 THEN
35824 FOR i IN px_config_tbl.FIRST .. px_config_tbl.LAST
35825 LOOP
35826 IF px_config_tbl.EXISTS(i)
35827 THEN
35828 px_config_tbl(i).lock_id:=l_lock_id;
35829 END IF;
35830 END LOOP;
35831 END IF;
35832
35833
35834 IF l_lock_tbl.COUNT > 0 AND
35835 px_config_tbl.COUNT>0
35836 THEN
35837 FOR l_lock IN 1..l_lock_tbl.COUNT
35838 LOOP
35839 IF l_lock_tbl.EXISTS(l_lock)
35840 THEN
35841 FOR l_config IN px_config_tbl.FIRST .. px_config_tbl.LAST
35842 LOOP
35843 IF px_config_tbl.EXISTS(l_config)
35844 THEN
35845 IF l_lock_tbl(l_lock).instance_id=px_config_tbl(l_config).instance_id AND
35846 (l_lock_tbl(l_lock).instance_id IS NOT NULL AND
35847 l_lock_tbl(l_lock).instance_id <> fnd_api.g_miss_num) AND
35848 (px_config_tbl(l_config).instance_id IS NOT NULL AND
35849 px_config_tbl(l_config).instance_id <> fnd_api.g_miss_num)
35850 THEN
35851 l_lock_tbl(l_lock).lock_status :=2;
35852 -- l_lock_tbl(l_lock).lock_id :=l_lock_id;
35853 l_lock_tbl(l_lock).source_application_id :=px_config_tbl(l_config).source_application_id;
35854 l_lock_tbl(l_lock).source_txn_header_ref :=px_config_tbl(l_config).source_txn_header_ref;
35855 l_lock_tbl(l_lock).source_txn_line_ref1 :=px_config_tbl(l_config).source_txn_line_ref1;
35856 l_lock_tbl(l_lock).source_txn_line_ref2 :=px_config_tbl(l_config).source_txn_line_ref2;
35857 l_lock_tbl(l_lock).source_txn_line_ref3 :=px_config_tbl(l_config).source_txn_line_ref3;
35858 l_lock_tbl(l_lock).config_inst_hdr_id :=px_config_tbl(l_config).config_inst_hdr_id;
35859 l_lock_tbl(l_lock).config_inst_item_id :=px_config_tbl(l_config).config_inst_item_id;
35860 l_lock_tbl(l_lock).config_inst_rev_num :=px_config_tbl(l_config).config_inst_rev_num;
35861 px_config_tbl(l_config).lock_id :=l_lock_id;
35862 px_config_tbl(l_config).lock_status :=2;
35863 END IF;
35864 END IF;
35865 END LOOP; -- For config_tbl loop
35866 IF l_lock_tbl(l_lock).lock_status IS NULL OR
35867 l_lock_tbl(l_lock).lock_status = fnd_api.g_miss_num
35868 THEN
35869 l_lock_tbl(l_lock).lock_status:=1;
35870 l_lock_tbl(l_lock).source_application_id :=px_config_tbl(1).source_application_id;
35871 l_lock_tbl(l_lock).source_txn_header_ref :=px_config_tbl(1).source_txn_header_ref;
35872 IF (l_lock_tbl(l_lock).instance_id IS NOT NULL AND
35873 l_lock_tbl(l_lock).instance_id <> fnd_api.g_miss_num) AND
35874 ( (l_lock_tbl(l_lock).config_inst_hdr_id IS NULL OR
35875 l_lock_tbl(l_lock).config_inst_hdr_id = fnd_api.g_miss_num) AND
35876 (l_lock_tbl(l_lock).config_inst_item_id IS NULL OR
35877 l_lock_tbl(l_lock).config_inst_item_id = fnd_api.g_miss_num) AND
35878 (l_lock_tbl(l_lock).config_inst_rev_num IS NULL OR
35879 l_lock_tbl(l_lock).config_inst_rev_num = fnd_api.g_miss_num) )
35880 THEN
35881 -- CALL GET CONFIG KEYS
35882 get_config_keys(p_instance_id => l_lock_tbl(l_lock).instance_id,
35883 p_config_rec => l_lock_config_rec
35884 );
35885 l_lock_tbl(l_lock).config_inst_hdr_id:=l_lock_config_rec.config_inst_hdr_id;
35886 l_lock_tbl(l_lock).config_inst_item_id:=l_lock_config_rec.config_inst_item_id;
35887 l_lock_tbl(l_lock).config_inst_rev_num:=l_lock_config_rec.config_inst_rev_num;
35888 END IF;
35889
35890 END IF;
35891 END IF;
35892 END LOOP; -- For lock_tbl loop
35893 END IF;
35894
35895
35896
35897 -- Call table handler
35898 IF l_lock_tbl.COUNT>0
35899 THEN
35900 FOR l_insert_csr IN l_lock_tbl.FIRST .. l_lock_tbl.LAST
35901 LOOP
35902 IF l_lock_tbl.EXISTS(l_insert_csr)
35903 THEN
35904 INSERT INTO csi_item_instance_locks
35905 ( lock_id
35906 ,lock_status
35907 ,instance_id
35908 ,config_inst_hdr_id
35909 ,config_inst_item_id
35910 ,config_inst_rev_num
35911 ,root_instance_id
35912 ,root_config_inst_hdr_id
35913 ,root_config_inst_item_id
35914 ,root_config_inst_rev_num
35915 ,lock_source_appln_id
35916 ,lock_source_header_ref
35917 ,lock_source_line_ref1
35918 ,lock_source_line_ref2
35919 ,lock_source_line_ref3
35920 ,date_locked
35921 ,last_updated_by
35922 ,last_update_date
35923 ,object_version_number
35924 ,last_update_login
35925 ,created_by
35926 ,creation_date
35927 )
35928 VALUES
35929 (
35930 l_lock_id
35931 ,l_lock_tbl(l_insert_csr).lock_status
35932 ,decode(l_lock_tbl(l_insert_csr).instance_id,fnd_api.g_miss_num,NULL,l_lock_tbl(l_insert_csr).instance_id)
35933 ,decode(l_lock_tbl(l_insert_csr).config_inst_hdr_id,fnd_api.g_miss_num,NULL,l_lock_tbl(l_insert_csr).config_inst_hdr_id)
35934 ,decode(l_lock_tbl(l_insert_csr).config_inst_item_id,fnd_api.g_miss_num,NULL,l_lock_tbl(l_insert_csr).config_inst_item_id)
35935 ,decode(l_lock_tbl(l_insert_csr).config_inst_rev_num,fnd_api.g_miss_num,NULL,l_lock_tbl(l_insert_csr).config_inst_rev_num)
35936 ,decode(l_lock_tbl(l_insert_csr).root_instance_id,fnd_api.g_miss_num,NULL,l_lock_tbl(l_insert_csr).root_instance_id)
35937 ,decode(l_lock_tbl(l_insert_csr).root_config_inst_hdr_id,fnd_api.g_miss_num,NULL,l_lock_tbl(l_insert_csr).root_config_inst_hdr_id)
35938 ,decode(l_lock_tbl(l_insert_csr).root_config_inst_item_id,fnd_api.g_miss_num,NULL,l_lock_tbl(l_insert_csr).root_config_inst_item_id)
35939 ,decode(l_lock_tbl(l_insert_csr).root_config_inst_rev_num,fnd_api.g_miss_num,NULL,l_lock_tbl(l_insert_csr).root_config_inst_rev_num)
35940 ,decode(l_lock_tbl(l_insert_csr).source_application_id,fnd_api.g_miss_num,NULL,l_lock_tbl(l_insert_csr).source_application_id)
35941 ,decode(l_lock_tbl(l_insert_csr).source_txn_header_ref,fnd_api.g_miss_char,NULL,l_lock_tbl(l_insert_csr).source_txn_header_ref)
35942 ,decode(l_lock_tbl(l_insert_csr).source_txn_line_ref1,fnd_api.g_miss_char,NULL,l_lock_tbl(l_insert_csr).source_txn_line_ref1)
35943 ,decode(l_lock_tbl(l_insert_csr).source_txn_line_ref2,fnd_api.g_miss_char,NULL,l_lock_tbl(l_insert_csr).source_txn_line_ref2)
35944 ,decode(l_lock_tbl(l_insert_csr).source_txn_line_ref3,fnd_api.g_miss_char,NULL,l_lock_tbl(l_insert_csr).source_txn_line_ref3)
35945 ,SYSDATE --p_txn_rec.source_transaction_date
35946 ,fnd_global.user_id
35947 ,SYSDATE
35948 ,1
35949 ,fnd_global.user_id
35950 ,fnd_global.user_id
35951 ,SYSDATE
35952 );
35953 END IF;
35954 END LOOP;
35955 /*
35956 CSI_TRANSACTIONS_PVT.Create_transaction
35957 (
35958 p_api_version => p_api_version
35959 ,p_commit => p_commit
35960 ,p_init_msg_list => p_init_msg_list
35961 ,p_validation_level => p_validation_level
35962 ,p_Success_IF_Exists_Flag => 'Y'
35963 ,p_transaction_rec => p_txn_rec
35964 ,x_return_status => x_return_status
35965 ,x_msg_count => x_msg_count
35966 ,x_msg_data => x_msg_data
35967 );
35968
35969 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
35970 FND_MESSAGE.SET_NAME('CSI','CSI_FAILED_TO_VALIDATE_TXN');
35971 FND_MESSAGE.SET_TOKEN('TRANSACTION_ID',p_txn_rec.transaction_id );
35972 FND_MSG_PUB.Add;
35973 RAISE FND_API.G_EXC_ERROR;
35974 END IF;
35975 */
35976 END IF;
35977
35978 IF FND_API.To_Boolean( p_commit ) THEN
35979 COMMIT WORK;
35980 END IF;
35981
35982 -- Standard call to get message count and if count is get message info.
35983 FND_MSG_PUB.Count_And_Get
35984 (p_encoded => FND_API.G_FALSE,
35985 p_count => x_msg_count ,
35986 p_data => x_msg_data );
35987
35988 EXCEPTION
35989 WHEN FND_API.G_EXC_ERROR THEN
35990 ROLLBACK TO csi_lock_item_instance;
35991 x_return_status := FND_API.G_RET_STS_ERROR ;
35992 FND_MSG_PUB.Count_And_Get
35993 ( p_encoded => FND_API.G_FALSE,
35994 p_count => x_msg_count,
35995 p_data => x_msg_data );
35996 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
35997 ROLLBACK TO csi_lock_item_instance;
35998 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
35999 FND_MSG_PUB.Count_And_Get
36000 ( p_encoded => FND_API.G_FALSE,
36001 p_count => x_msg_count,
36002 p_data => x_msg_data );
36003 WHEN OTHERS THEN
36004 ROLLBACK TO csi_lock_item_instance;
36005 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
36006 IF FND_MSG_PUB.Check_Msg_Level
36007 (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
36008 THEN
36009 FND_MSG_PUB.Add_Exc_Msg
36010 ( g_pkg_name, l_api_name );
36011 END IF;
36012 FND_MSG_PUB.Count_And_Get
36013 ( p_encoded => FND_API.G_FALSE,
36014 p_count => x_msg_count,
36015 p_data => x_msg_data );
36016 END lock_item_instances;
36017
36018 PROCEDURE validate_lock
36019 ( p_lock_id IN NUMBER ,
36020 p_instance_id IN NUMBER ,
36021 p_config_inst_hdr_id IN NUMBER ,
36022 p_config_inst_item_id IN NUMBER ,
36023 p_config_inst_rev_num IN NUMBER ,
36024 p_lock_status OUT NOCOPY NUMBER,
36025 p_root OUT NOCOPY BOOLEAN
36026 ) AS
36027 l_lock_status NUMBER :=3;
36028 l_root_value BOOLEAN := FALSE;
36029 l_root_config_hdr_id NUMBER;
36030 l_root_config_item_id NUMBER;
36031 l_root_config_rev_num NUMBER;
36032 l_root_instance_id NUMBER;
36033 BEGIN
36034 p_root := l_root_value;
36035 IF p_instance_id IS NOT NULL AND
36036 p_instance_id <> fnd_api.g_miss_num AND
36037 p_lock_id IS NOT NULL AND
36038 p_lock_id <> fnd_api.g_miss_num
36039 THEN
36040 BEGIN
36041 SELECT lock_status
36042 ,root_instance_id
36043 INTO l_lock_status
36044 ,l_root_instance_id
36045 FROM csi_item_instance_locks
36046 WHERE instance_id=p_instance_id
36047 AND lock_id = p_lock_id;
36048 IF p_instance_id = l_root_instance_id
36049 THEN
36050 p_root := TRUE;
36051 END IF;
36052 EXCEPTION
36053 WHEN NO_DATA_FOUND THEN
36054 l_lock_status :=3;
36055 END;
36056 ELSIF (p_config_inst_hdr_id IS NOT NULL AND
36057 p_config_inst_hdr_id <> fnd_api.g_miss_num AND
36058 p_config_inst_item_id IS NOT NULL AND
36059 p_config_inst_item_id <> fnd_api.g_miss_num AND
36060 p_config_inst_rev_num IS NOT NULL AND
36061 p_config_inst_rev_num <> fnd_api.g_miss_num ) AND
36062 (p_lock_id IS NOT NULL AND
36063 p_lock_id <> fnd_api.g_miss_num)
36064 THEN
36065 BEGIN
36066 SELECT lock_status
36067 ,root_config_inst_hdr_id
36068 ,root_config_inst_item_id
36069 ,root_config_inst_rev_num
36070 INTO l_lock_status
36071 ,l_root_config_hdr_id
36072 ,l_root_config_item_id
36073 ,l_root_config_rev_num
36074 FROM csi_item_instance_locks
36075 WHERE config_inst_hdr_id = p_config_inst_hdr_id
36076 AND config_inst_rev_num = p_config_inst_rev_num
36077 AND config_inst_item_id = p_config_inst_item_id
36078 AND lock_id = p_lock_id;
36079 IF p_config_inst_hdr_id = l_root_config_hdr_id AND
36080 p_config_inst_rev_num = l_root_config_rev_num AND
36081 p_config_inst_item_id = l_root_config_item_id
36082 THEN
36083 p_root := TRUE;
36084 END IF;
36085 EXCEPTION
36086 WHEN NO_DATA_FOUND THEN
36087 l_lock_status :=3;
36088 END;
36089 ELSE
36090 l_lock_status :=3;
36091 END IF;
36092 p_lock_status :=l_lock_status;
36093 END validate_lock;
36094
36095
36096 PROCEDURE build_unlock_config
36097 (p_lock_id IN NUMBER,
36098 p_config_inst_hdr_id IN NUMBER,
36099 p_config_inst_item_id IN NUMBER,
36100 p_config_inst_rev_num IN NUMBER,
36101 p_bld_unlock_tbl OUT NOCOPY csi_item_instance_pvt.lock_instances_tbl
36102 )
36103 AS
36104 CURSOR config_csr(p_root_hdr IN NUMBER,
36105 p_root_rev IN NUMBER,
36106 p_lock_status IN NUMBER)
36107 IS
36108 SELECT config_inst_hdr_id,
36109 config_inst_item_id,
36110 config_inst_rev_num,
36111 lock_status
36112 FROM csi_item_instance_locks
36113 WHERE root_config_inst_hdr_id = p_root_hdr
36114 AND root_config_inst_rev_num = p_root_rev
36115 AND lock_id = p_lock_id
36116 AND lock_status <> p_lock_status;
36117 l_root_hdr_id NUMBER;
36118 l_root_rev_num NUMBER;
36119 l_ctr NUMBER;
36120 l_unlock_status NUMBER:=0;
36121 BEGIN
36122 BEGIN
36123 SELECT root_config_inst_hdr_id,
36124 root_config_inst_rev_num
36125 INTO l_root_hdr_id,
36126 l_root_rev_num
36127 FROM csi_item_instance_locks
36128 WHERE lock_id = p_lock_id
36129 AND config_inst_hdr_id = p_config_inst_hdr_id
36130 AND config_inst_rev_num = p_config_inst_rev_num
36131 AND config_inst_item_id = p_config_inst_item_id;
36132 l_ctr:=0;
36133 FOR l_config_csr IN config_csr (p_root_hdr => l_root_hdr_id
36134 ,p_root_rev => l_root_rev_num
36135 ,p_lock_status => l_unlock_status)
36136 LOOP
36137 l_ctr := l_ctr+1;
36138 p_bld_unlock_tbl(l_ctr).config_inst_hdr_id := l_config_csr.config_inst_hdr_id;
36139 p_bld_unlock_tbl(l_ctr).config_inst_rev_num := l_config_csr.config_inst_rev_num;
36140 p_bld_unlock_tbl(l_ctr).config_inst_item_id := l_config_csr.config_inst_item_id;
36141 p_bld_unlock_tbl(l_ctr).lock_status :=l_config_csr.lock_status;
36142 END LOOP;
36143 EXCEPTION
36144 WHEN NO_DATA_FOUND THEN
36145 NULL;
36146 END;
36147 END build_unlock_config;
36148
36149 PROCEDURE unlock_tbl_handler
36150 (p_unlock_tbl IN CSI_ITEM_INSTANCE_PVT.lock_instances_tbl,
36151 p_unlock_param IN VARCHAR2,
36152 p_date IN DATE
36153 )
36154 AS
36155 l_last_updated_by NUMBER;
36156 l_last_update_login NUMBER;
36157 l_unlock_status NUMBER;
36158 BEGIN
36159 l_unlock_status := 0;
36160 l_last_updated_by := fnd_global.user_id;
36161 l_last_update_login := fnd_global.login_id;
36162
36163 IF p_unlock_param = 'INSTANCE'
36164 THEN
36165 IF p_unlock_tbl.COUNT>0
36166 THEN
36167 FOR i IN p_unlock_tbl.FIRST .. p_unlock_tbl.LAST
36168 LOOP
36169 IF p_unlock_tbl.EXISTS(i)
36170 THEN
36171 UPDATE csi_item_instance_locks
36172 SET lock_status= p_unlock_tbl(i).lock_status
36173 ,unlock_source_appln_id = decode (p_unlock_tbl(i).source_application_id,fnd_api.g_miss_num,unlock_source_appln_id,p_unlock_tbl(i).source_application_id)
36174 ,unlock_source_header_ref = decode (p_unlock_tbl(i).source_txn_header_ref,fnd_api.g_miss_char,unlock_source_header_ref,p_unlock_tbl(i).source_txn_header_ref)
36175 ,unlock_source_line_ref1 = decode (p_unlock_tbl(i).source_txn_line_ref1,fnd_api.g_miss_char,unlock_source_line_ref1,p_unlock_tbl(i).source_txn_line_ref1)
36176 ,unlock_source_line_ref2 = decode (p_unlock_tbl(i).source_txn_line_ref2,fnd_api.g_miss_char,unlock_source_line_ref2,p_unlock_tbl(i).source_txn_line_ref2)
36177 ,unlock_source_line_ref3 = decode (p_unlock_tbl(i).source_txn_line_ref3,fnd_api.g_miss_char,unlock_source_line_ref3,p_unlock_tbl(i).source_txn_line_ref3)
36178 ,date_unlocked = p_date
36179 ,object_version_number = object_version_number+1
36180 ,last_updated_by = l_last_updated_by
36181 ,last_update_date = SYSDATE
36182 ,last_update_login = l_last_update_login
36183 WHERE instance_id = p_unlock_tbl(i).instance_id
36184 AND lock_id = p_unlock_tbl(i).lock_id;
36185 END IF;
36186 END LOOP;
36187 END IF;
36188 ELSIF p_unlock_param = 'CONFIG'
36189 THEN
36190 IF p_unlock_tbl.COUNT>0
36191 THEN
36192 FOR i IN p_unlock_tbl.FIRST .. p_unlock_tbl.LAST
36193 LOOP
36194 IF p_unlock_tbl.EXISTS(i)
36195 THEN
36196 UPDATE csi_item_instance_locks
36197 SET lock_status= p_unlock_tbl(i).lock_status
36198 ,unlock_source_appln_id = decode (p_unlock_tbl(i).source_application_id,fnd_api.g_miss_num,unlock_source_appln_id,p_unlock_tbl(i).source_application_id)
36199 ,unlock_source_header_ref = decode (p_unlock_tbl(i).source_txn_header_ref,fnd_api.g_miss_char,unlock_source_header_ref,p_unlock_tbl(i).source_txn_header_ref)
36200 ,unlock_source_line_ref1 = decode (p_unlock_tbl(i).source_txn_line_ref1,fnd_api.g_miss_char,unlock_source_line_ref1,p_unlock_tbl(i).source_txn_line_ref1)
36201 ,unlock_source_line_ref2 = decode (p_unlock_tbl(i).source_txn_line_ref2,fnd_api.g_miss_char,unlock_source_line_ref2,p_unlock_tbl(i).source_txn_line_ref2)
36202 ,unlock_source_line_ref3 = decode (p_unlock_tbl(i).source_txn_line_ref3,fnd_api.g_miss_char,unlock_source_line_ref3,p_unlock_tbl(i).source_txn_line_ref3)
36203 ,date_unlocked = p_date
36204 ,object_version_number = object_version_number+1
36205 ,last_updated_by = l_last_updated_by
36206 ,last_update_date = SYSDATE
36207 ,last_update_login = l_last_update_login
36208 WHERE config_inst_hdr_id = p_unlock_tbl(i).config_inst_hdr_id
36209 AND config_inst_item_id = p_unlock_tbl(i).config_inst_item_id
36210 AND config_inst_rev_num = p_unlock_tbl(i).config_inst_rev_num
36211 AND lock_id = p_unlock_tbl(i).lock_id;
36212 END IF;
36213 END LOOP;
36214 END IF;
36215 END IF;
36216
36217 END unlock_tbl_handler;
36218
36219
36220 PROCEDURE unlock_item_instances
36221 (
36222 p_api_version IN NUMBER
36223 ,p_commit IN VARCHAR2
36224 ,p_init_msg_list IN VARCHAR2
36225 ,p_validation_level IN NUMBER
36226 ,p_config_tbl IN csi_cz_int.config_tbl
36227 ,p_unlock_all IN VARCHAR2
36228 -- ,p_txn_rec IN OUT NOCOPY csi_datastructures_pub.transaction_rec
36229 ,x_return_status OUT NOCOPY VARCHAR2
36230 ,x_msg_count OUT NOCOPY NUMBER
36231 ,x_msg_data OUT NOCOPY VARCHAR2
36232 )
36233 AS
36234 l_api_name CONSTANT VARCHAR2(30) := 'UNLOCK_ITEM_INSTANCES';
36235 l_api_version CONSTANT NUMBER := 1.0;
36236 l_csi_debug_level NUMBER;
36237 l_rel_tbl csi_datastructures_pub.ii_relationship_tbl;
36238 l_ii_relationship_level_tbl csi_ii_relationships_pvt.ii_relationship_level_tbl;
36239 l_rel_query_rec csi_datastructures_pub.relationship_query_rec;
36240 l_rel_type_code VARCHAR2(30) := 'COMPONENT-OF';
36241 l_unlock_tbl csi_item_instance_pvt.lock_instances_tbl;
36242 l_unlock_ins_tbl csi_item_instance_pvt.lock_instances_tbl;
36243 l_unlock_count NUMBER;
36244 l_unlock_config csi_item_instance_pvt.lock_instances_tbl;
36245 l_unlock_root csi_item_instance_pvt.lock_instances_tbl;
36246 l_bld_unlock_tbl csi_item_instance_pvt.lock_instances_tbl;
36247 l_config_count NUMBER;
36248 l_config_root NUMBER;
36249 l_instance_ctr NUMBER;
36250 l_config_ctr NUMBER;
36251 l_warning VARCHAR2(1) :='N';
36252 l_valid_lock_status NUMBER;
36253 l_found VARCHAR2(1);
36254 l_root_value BOOLEAN := FALSE;
36255 l_unlock_root_ins NUMBER;
36256 BEGIN
36257
36258 SAVEPOINT csi_unlock_item_instance;
36259
36260 -- Check for freeze_flag in csi_install_parameters is set to 'Y'
36261
36262 csi_utility_grp.check_ib_active;
36263
36264 -- Standard call to check for call compatibility.
36265 IF NOT FND_API.Compatible_API_Call ( l_api_version ,
36266 p_api_version ,
36267 l_api_name ,
36268 g_pkg_name )
36269 THEN
36270 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
36271 END IF;
36272
36273 -- Initialize message list if p_init_msg_list is set to TRUE.
36274 IF FND_API.to_Boolean( p_init_msg_list ) THEN
36275 FND_MSG_PUB.initialize;
36276 END IF;
36277
36278 -- Initialize API return status to success
36279 x_return_status := FND_API.G_RET_STS_SUCCESS;
36280
36281 -- Check the profile option CSI_DEBUG_LEVEL for debug message reporting
36282 l_csi_debug_level:=fnd_profile.value('CSI_DEBUG_LEVEL');
36283
36284 -- If CSI_DEBUG_LEVEL = 1 then dump the procedure name
36285 IF (l_csi_debug_level > 0) THEN
36286 csi_gen_utility_pvt.put_line( 'unlock_item_instances');
36287 END IF;
36288
36289
36290 -- If the debug level = 2 then dump all the parameters values.
36291 IF (l_csi_debug_level > 1) THEN
36292 csi_gen_utility_pvt.put_line( 'unlock_item_instances'||
36293 p_api_version ||'-'||
36294 p_commit ||'-'||
36295 p_init_msg_list ||'-'||
36296 p_validation_level );
36297 -- Dump the records in the log file
36298 IF p_config_tbl.COUNT > 0
36299 THEN
36300 FOR tab_row IN p_config_tbl.FIRST .. p_config_tbl.LAST
36301 LOOP
36302 csi_gen_utility_pvt.put_line(' ');
36303 csi_gen_utility_pvt.put_line('Dumping the values for config tbl Rec # :'||tab_row);
36304 csi_gen_utility_pvt.put_line('source_application_id :'||p_config_tbl(tab_row).source_application_id);
36305 csi_gen_utility_pvt.put_line('source_txn_header_ref :'||p_config_tbl(tab_row).source_txn_header_ref);
36306 csi_gen_utility_pvt.put_line('source_txn_line_ref1 :'||p_config_tbl(tab_row).source_txn_line_ref1);
36307 csi_gen_utility_pvt.put_line('source_txn_line_ref2 :'||p_config_tbl(tab_row).source_txn_line_ref2);
36308 csi_gen_utility_pvt.put_line('source_txn_line_ref3 :'||p_config_tbl(tab_row).source_txn_line_ref3);
36309 csi_gen_utility_pvt.put_line('instance_id :'||p_config_tbl(tab_row).instance_id);
36310 csi_gen_utility_pvt.put_line('lock_id :'||p_config_tbl(tab_row).lock_id);
36311 csi_gen_utility_pvt.put_line('config_inst_hdr_id :'||p_config_tbl(tab_row).config_inst_hdr_id);
36312 csi_gen_utility_pvt.put_line('config_inst_item_id :'||p_config_tbl(tab_row).config_inst_item_id);
36313 csi_gen_utility_pvt.put_line('config_inst_rev_num :'||p_config_tbl(tab_row).config_inst_rev_num);
36314 csi_gen_utility_pvt.put_line('lock_status :'||p_config_tbl(tab_row).lock_status);
36315 END LOOP;
36316 END IF;
36317 --csi_gen_utility_pvt.dump_txn_rec(p_txn_rec);
36318 END IF;
36319
36320
36321
36322 l_unlock_tbl.DELETE;
36323 csi_gen_utility_pvt.put_line('p_unlock_all :'||p_unlock_all);
36324 IF p_unlock_all IS NOT NULL AND
36325 p_unlock_all = fnd_api.g_true
36326 THEN
36327 csi_gen_utility_pvt.put_line('Processing to unlock all locked instances.');
36328 -- This is the case where root node(instance_id) is passed and
36329 -- we need to get all its children and unlock them.
36330 IF p_config_tbl.COUNT >0
36331 THEN
36332 FOR i IN p_config_tbl.FIRST .. p_config_tbl.LAST
36333 LOOP
36334 IF p_config_tbl.EXISTS(i)
36335 THEN
36336 IF ((p_config_tbl(i).config_inst_hdr_id IS NOT NULL AND
36337 p_config_tbl(i).config_inst_hdr_id <> fnd_api.g_miss_num AND
36338 p_config_tbl(i).config_inst_item_id IS NOT NULL AND
36339 p_config_tbl(i).config_inst_item_id <> fnd_api.g_miss_num AND
36340 p_config_tbl(i).config_inst_rev_num IS NOT NULL AND
36341 p_config_tbl(i).config_inst_rev_num <> fnd_api.g_miss_num )) AND
36342 (p_config_tbl(i).lock_id IS NOT NULL AND
36343 p_config_tbl(i).lock_id <> fnd_api.g_miss_num)
36344 THEN
36345 csi_gen_utility_pvt.put_line('Processing where config keys were passed.');
36346 l_found:='N';
36347 IF l_unlock_config.count>0
36348 THEN
36349 FOR l_un_csr IN l_unlock_config.FIRST .. l_unlock_config.LAST
36350 LOOP
36351 IF l_unlock_config.EXISTS(l_un_csr)
36352 THEN
36353 IF l_unlock_config(l_un_csr).lock_id=p_config_tbl(i).lock_id AND
36354 l_unlock_config(l_un_csr).config_inst_hdr_id=p_config_tbl(i).config_inst_hdr_id AND
36355 l_unlock_config(l_un_csr).config_inst_item_id=p_config_tbl(i).config_inst_item_id AND
36356 l_unlock_config(l_un_csr).config_inst_rev_num=p_config_tbl(i).config_inst_rev_num
36357 THEN
36358 l_found:='Y';
36359 END IF;
36360 END IF;
36361 END LOOP;
36362 END IF;
36363
36364 IF l_found='N'
36365 THEN
36366
36367 l_valid_lock_status:=NULL;
36368 validate_lock
36369 ( p_lock_id => p_config_tbl(i).lock_id,
36370 p_instance_id => fnd_api.g_miss_num,
36371 p_config_inst_hdr_id => p_config_tbl(i).config_inst_hdr_id,
36372 p_config_inst_item_id => p_config_tbl(i).config_inst_item_id,
36373 p_config_inst_rev_num => p_config_tbl(i).config_inst_rev_num,
36374 p_lock_status => l_valid_lock_status,
36375 p_root => l_root_value
36376 );
36377 IF l_valid_lock_status NOT IN (0,3) AND
36378 l_valid_lock_status IS NOT NULL
36379 THEN
36380 --p_config_tbl(i).lock_status:=0;
36381 build_unlock_config(p_lock_id => p_config_tbl(i).lock_id,
36382 p_config_inst_hdr_id => p_config_tbl(i).config_inst_hdr_id,
36383 p_config_inst_item_id => p_config_tbl(i).config_inst_item_id,
36384 p_config_inst_rev_num => p_config_tbl(i).config_inst_rev_num,
36385 p_bld_unlock_tbl => l_bld_unlock_tbl
36386 );
36387
36388 l_config_count := l_unlock_config.count;
36389 IF l_bld_unlock_tbl.COUNT >0
36390 THEN
36391 FOR l_bld IN l_bld_unlock_tbl.FIRST .. l_bld_unlock_tbl.LAST
36392 LOOP
36393 IF l_bld_unlock_tbl.EXISTS(l_bld)
36394 THEN
36395
36396 l_unlock_config(l_config_count+l_bld).config_inst_hdr_id :=l_bld_unlock_tbl(l_bld).config_inst_hdr_id;
36397 l_unlock_config(l_config_count+l_bld).config_inst_item_id :=l_bld_unlock_tbl(l_bld).config_inst_item_id;
36398 l_unlock_config(l_config_count+l_bld).config_inst_rev_num :=l_bld_unlock_tbl(l_bld).config_inst_rev_num;
36399 l_unlock_config(l_config_count+l_bld).lock_id:=p_config_tbl(i).lock_id;
36400 l_unlock_config(l_config_count+l_bld).lock_status:=p_config_tbl(i).lock_status;
36401 l_unlock_config(l_config_count+l_bld).source_application_id :=p_config_tbl(i).source_application_id;
36402 l_unlock_config(l_config_count+l_bld).source_txn_header_ref :=p_config_tbl(i).source_txn_header_ref;
36403 --l_unlock_config(l_config_count+l_bld).source_txn_line_ref1 :=p_config_tbl(i).source_txn_line_ref1;
36404 --l_unlock_config(l_config_count+l_bld).source_txn_line_ref2 :=p_config_tbl(i).source_txn_line_ref2;
36405 --l_unlock_config(l_config_count+l_bld).source_txn_line_ref3 :=p_config_tbl(i).source_txn_line_ref3;
36406 IF l_bld_unlock_tbl(l_bld).lock_status = 2 AND
36407 p_config_tbl(i).source_application_id = 542
36408 THEN
36409 FND_MESSAGE.SET_NAME('CSI','CSI_CANT_UNLOCK_TREE');
36410 FND_MESSAGE.SET_TOKEN('CONFIG_INST_HDR_ID',l_bld_unlock_tbl(l_bld).config_inst_hdr_id);
36411 FND_MESSAGE.SET_TOKEN('CONFIG_INST_ITEM_ID',l_bld_unlock_tbl(l_bld).config_inst_item_id);
36412 FND_MESSAGE.SET_TOKEN('CONFIG_INST_REV_NUM',l_bld_unlock_tbl(l_bld).config_inst_rev_num);
36413 FND_MSG_PUB.Add;
36414 RAISE FND_API.G_EXC_ERROR;
36415 ELSIF (p_config_tbl(i).lock_status IS NULL OR
36416 p_config_tbl(i).lock_status NOT IN (0,1)) OR
36417 p_config_tbl(i).lock_status > l_bld_unlock_tbl(l_bld).lock_status
36418 THEN
36419 FND_MESSAGE.SET_NAME('CSI','CSI_INVALID_CON_STATUS');
36420 FND_MESSAGE.SET_TOKEN('ORIGINAL_STATUS',l_bld_unlock_tbl(l_bld).lock_status);
36421 FND_MESSAGE.SET_TOKEN('LOCK_STATUS',p_config_tbl(i).lock_status);
36422 FND_MESSAGE.SET_TOKEN('CONFIG_INST_HDR_ID',l_bld_unlock_tbl(l_bld).config_inst_hdr_id);
36423 FND_MESSAGE.SET_TOKEN('CONFIG_INST_ITEM_ID',l_bld_unlock_tbl(l_bld).config_inst_item_id);
36424 FND_MESSAGE.SET_TOKEN('CONFIG_INST_REV_NUM',l_bld_unlock_tbl(l_bld).config_inst_rev_num);
36425 FND_MSG_PUB.Add;
36426 RAISE FND_API.G_EXC_ERROR;
36427 END IF;
36428 END IF;
36429 END LOOP;
36430 END IF;
36431
36432 ELSE
36433 IF l_valid_lock_status=3
36434 THEN
36435 l_warning := 'E';
36436 ELSE
36437 IF l_valid_lock_status=0 AND
36438 l_warning <> 'E'
36439 THEN
36440 l_warning := 'Y';
36441 END IF;
36442 END IF;
36443 END IF;
36444 END IF;
36445 ELSE
36446 l_warning := 'E';
36447 END IF;
36448 END IF;
36449 END LOOP;
36450 END IF;
36451
36452 ELSE -- Case where p_unlock_all is fnd_api.g_false
36453
36454 csi_gen_utility_pvt.put_line('P_unlock_all is false : Processing to unlock instances ');
36455 IF p_config_tbl.COUNT >0
36456 THEN
36457 FOR i IN p_config_tbl.FIRST .. p_config_tbl.LAST
36458 LOOP
36459 IF p_config_tbl.EXISTS(i)
36460 THEN
36461 IF ((p_config_tbl(i).instance_id IS NOT NULL AND
36462 p_config_tbl(i).instance_id <> fnd_api.g_miss_num) OR
36463 (p_config_tbl(i).config_inst_hdr_id IS NOT NULL AND
36464 p_config_tbl(i).config_inst_hdr_id <> fnd_api.g_miss_num AND
36465 p_config_tbl(i).config_inst_item_id IS NOT NULL AND
36466 p_config_tbl(i).config_inst_item_id <> fnd_api.g_miss_num AND
36467 p_config_tbl(i).config_inst_rev_num IS NOT NULL AND
36468 p_config_tbl(i).config_inst_rev_num <> fnd_api.g_miss_num )) AND
36469 (p_config_tbl(i).lock_id IS NOT NULL AND
36470 p_config_tbl(i).lock_id <> fnd_api.g_miss_num)
36471 THEN
36472
36473 IF (p_config_tbl(i).instance_id IS NOT NULL AND
36474 p_config_tbl(i).instance_id <> fnd_api.g_miss_num)
36475 THEN
36476
36477 l_valid_lock_status:=NULL;
36478 validate_lock
36479 ( p_lock_id => p_config_tbl(i).lock_id,
36480 p_instance_id => p_config_tbl(i).instance_id,
36481 p_config_inst_hdr_id => fnd_api.g_miss_num,
36482 p_config_inst_item_id => fnd_api.g_miss_num,
36483 p_config_inst_rev_num => fnd_api.g_miss_num,
36484 p_lock_status => l_valid_lock_status,
36485 p_root => l_root_value
36486 );
36487
36488
36489 IF l_valid_lock_status IS NOT NULL AND
36490 l_valid_lock_status NOT IN (0,3)
36491 THEN
36492 --p_config_tbl(i).lock_status:=0;
36493 IF NOT l_root_value
36494 THEN
36495 l_unlock_count:=l_unlock_tbl.COUNT+1;
36496 l_unlock_tbl(l_unlock_count).instance_id:=p_config_tbl(i).instance_id;
36497 l_unlock_tbl(l_unlock_count).lock_id:=p_config_tbl(i).lock_id;
36498 l_unlock_tbl(l_unlock_count).lock_status:=p_config_tbl(i).lock_status;
36499 l_unlock_tbl(l_unlock_count).source_application_id :=p_config_tbl(i).source_application_id;
36500 l_unlock_tbl(l_unlock_count).source_txn_header_ref :=p_config_tbl(i).source_txn_header_ref;
36501 l_unlock_tbl(l_unlock_count).source_txn_line_ref1 :=p_config_tbl(i).source_txn_line_ref1;
36502 l_unlock_tbl(l_unlock_count).source_txn_line_ref2 :=p_config_tbl(i).source_txn_line_ref2;
36503 l_unlock_tbl(l_unlock_count).source_txn_line_ref3 :=p_config_tbl(i).source_txn_line_ref3;
36504 ELSE
36505 l_unlock_root_ins:=l_unlock_ins_tbl.COUNT+1;
36506 l_unlock_ins_tbl(l_unlock_root_ins).instance_id:=p_config_tbl(i).instance_id;
36507 l_unlock_ins_tbl(l_unlock_root_ins).lock_id:=p_config_tbl(i).lock_id;
36508 l_unlock_ins_tbl(l_unlock_root_ins).lock_status:=p_config_tbl(i).lock_status;
36509 l_unlock_ins_tbl(l_unlock_root_ins).source_application_id :=p_config_tbl(i).source_application_id;
36510 l_unlock_ins_tbl(l_unlock_root_ins).source_txn_header_ref :=p_config_tbl(i).source_txn_header_ref;
36511 l_unlock_ins_tbl(l_unlock_root_ins).source_txn_line_ref1 :=p_config_tbl(i).source_txn_line_ref1;
36512 l_unlock_ins_tbl(l_unlock_root_ins).source_txn_line_ref2 :=p_config_tbl(i).source_txn_line_ref2;
36513 l_unlock_ins_tbl(l_unlock_root_ins).source_txn_line_ref3 :=p_config_tbl(i).source_txn_line_ref3;
36514 END IF;
36515
36516 IF (p_config_tbl(i).lock_status IS NULL OR
36517 p_config_tbl(i).lock_status NOT IN (0,1)) OR
36518 p_config_tbl(i).lock_status > l_valid_lock_status
36519 THEN
36520 FND_MESSAGE.SET_NAME('CSI','CSI_INVALID_INS_STATUS');
36521 FND_MESSAGE.SET_TOKEN('ORIGINAL_STATUS',l_valid_lock_status);
36522 FND_MESSAGE.SET_TOKEN('LOCK_STATUS',p_config_tbl(i).lock_status);
36523 FND_MESSAGE.SET_TOKEN('INSTANCE_ID',p_config_tbl(i).instance_id);
36524 FND_MSG_PUB.Add;
36525 RAISE FND_API.G_EXC_ERROR;
36526 END IF;
36527 ELSE
36528 IF l_valid_lock_status=3
36529 THEN
36530 l_warning := 'E';
36531 ELSE
36532 IF l_valid_lock_status=0 AND
36533 l_warning <> 'E'
36534 THEN
36535 l_warning := 'Y';
36536 END IF;
36537 END IF;
36538 END IF;
36539 ELSIF (p_config_tbl(i).config_inst_hdr_id IS NOT NULL AND
36540 p_config_tbl(i).config_inst_hdr_id <> fnd_api.g_miss_num AND
36541 p_config_tbl(i).config_inst_item_id IS NOT NULL AND
36542 p_config_tbl(i).config_inst_item_id <> fnd_api.g_miss_num AND
36543 p_config_tbl(i).config_inst_rev_num IS NOT NULL AND
36544 p_config_tbl(i).config_inst_rev_num <> fnd_api.g_miss_num )
36545 THEN
36546 l_valid_lock_status:=NULL;
36547 validate_lock
36548 ( p_lock_id => p_config_tbl(i).lock_id,
36549 p_instance_id => fnd_api.g_miss_num,
36550 p_config_inst_hdr_id => p_config_tbl(i).config_inst_hdr_id,
36551 p_config_inst_item_id => p_config_tbl(i).config_inst_item_id,
36552 p_config_inst_rev_num => p_config_tbl(i).config_inst_rev_num,
36553 p_lock_status => l_valid_lock_status,
36554 p_root => l_root_value
36555 );
36556
36557
36558 IF l_valid_lock_status NOT IN (0,3) AND
36559 l_valid_lock_status IS NOT NULL
36560 THEN
36561 -- p_config_tbl(i).lock_status:=0;
36562 IF NOT l_root_value
36563 THEN
36564 l_config_count := l_unlock_config.count+1;
36565 l_unlock_config(l_config_count).config_inst_hdr_id :=p_config_tbl(i).config_inst_hdr_id;
36566 l_unlock_config(l_config_count).config_inst_item_id :=p_config_tbl(i).config_inst_item_id;
36567 l_unlock_config(l_config_count).config_inst_rev_num :=p_config_tbl(i).config_inst_rev_num;
36568 l_unlock_config(l_config_count).lock_id:=p_config_tbl(i).lock_id;
36569 l_unlock_config(l_config_count).lock_status:=p_config_tbl(i).lock_status;
36570 l_unlock_config(l_config_count).source_application_id :=p_config_tbl(i).source_application_id;
36571 l_unlock_config(l_config_count).source_txn_header_ref :=p_config_tbl(i).source_txn_header_ref;
36572 l_unlock_config(l_config_count).source_txn_line_ref1 :=p_config_tbl(i).source_txn_line_ref1;
36573 l_unlock_config(l_config_count).source_txn_line_ref2 :=p_config_tbl(i).source_txn_line_ref2;
36574 l_unlock_config(l_config_count).source_txn_line_ref3 :=p_config_tbl(i).source_txn_line_ref3;
36575 ELSE
36576 l_config_root := l_unlock_root.count+1;
36577 l_unlock_root(l_config_root).config_inst_hdr_id :=p_config_tbl(i).config_inst_hdr_id;
36578 l_unlock_root(l_config_root).config_inst_item_id :=p_config_tbl(i).config_inst_item_id;
36579 l_unlock_root(l_config_root).config_inst_rev_num :=p_config_tbl(i).config_inst_rev_num;
36580 l_unlock_root(l_config_root).lock_id:=p_config_tbl(i).lock_id;
36581 l_unlock_root(l_config_root).lock_status:=p_config_tbl(i).lock_status;
36582 l_unlock_root(l_config_root).source_application_id :=p_config_tbl(i).source_application_id;
36583 l_unlock_root(l_config_root).source_txn_header_ref :=p_config_tbl(i).source_txn_header_ref;
36584 l_unlock_root(l_config_root).source_txn_line_ref1 :=p_config_tbl(i).source_txn_line_ref1;
36585 l_unlock_root(l_config_root).source_txn_line_ref2 :=p_config_tbl(i).source_txn_line_ref2;
36586 l_unlock_root(l_config_root).source_txn_line_ref3 :=p_config_tbl(i).source_txn_line_ref3;
36587 END IF;
36588 IF (p_config_tbl(i).lock_status IS NULL OR
36589 p_config_tbl(i).lock_status NOT IN (0,1)) OR
36590 p_config_tbl(i).lock_status > l_valid_lock_status
36591 THEN
36592 FND_MESSAGE.SET_NAME('CSI','CSI_INVALID_CON_STATUS');
36593 FND_MESSAGE.SET_TOKEN('ORIGINAL_STATUS',l_valid_lock_status);
36594 FND_MESSAGE.SET_TOKEN('LOCK_STATUS',p_config_tbl(i).lock_status);
36595 FND_MESSAGE.SET_TOKEN('CONFIG_INST_HDR_ID',p_config_tbl(i).config_inst_hdr_id);
36596 FND_MESSAGE.SET_TOKEN('CONFIG_INST_ITEM_ID',p_config_tbl(i).config_inst_item_id);
36597 FND_MESSAGE.SET_TOKEN('CONFIG_INST_REV_NUM',p_config_tbl(i).config_inst_rev_num);
36598 FND_MSG_PUB.Add;
36599 RAISE FND_API.G_EXC_ERROR;
36600 END IF;
36601 ELSE
36602 IF l_valid_lock_status=3
36603 THEN
36604 l_warning := 'E';
36605 ELSE
36606 IF l_valid_lock_status=0 AND
36607 l_warning <> 'E'
36608 THEN
36609 l_warning := 'Y';
36610 END IF;
36611 END IF;
36612 END IF;
36613 END IF;
36614 ELSE
36615 l_warning := 'E';
36616 END IF;
36617 END IF;
36618 END LOOP;
36619 END IF;
36620 END IF;
36621
36622 IF l_warning = 'Y'
36623 THEN
36624 FND_MESSAGE.SET_NAME('CSI','CSI_INVALID_LOCKS');
36625 FND_MSG_PUB.Add;
36626 ELSIF l_warning = 'E'
36627 THEN
36628 FND_MESSAGE.SET_NAME('CSI','CSI_LOCKID_NOT_PASSED');
36629 FND_MSG_PUB.Add;
36630 RAISE FND_API.G_EXC_ERROR;
36631 END IF;
36632 csi_gen_utility_pvt.put_line('Count of l_unlock_tbl is :'||l_unlock_tbl.count);
36633 IF l_unlock_tbl.COUNT>0
36634 THEN
36635 csi_gen_utility_pvt.put_line('Before calling unlock_tbl_handler in instance mode. ');
36636 unlock_tbl_handler (l_unlock_tbl,'INSTANCE',SYSDATE);
36637 END IF;
36638
36639 csi_gen_utility_pvt.put_line('Count of l_unlock_config is :'||l_unlock_config.count);
36640 IF l_unlock_config.COUNT>0
36641 THEN
36642 csi_gen_utility_pvt.put_line('Before calling unlock_tbl_handler in config mode. ');
36643 unlock_tbl_handler (l_unlock_config,'CONFIG',SYSDATE);
36644 END IF;
36645
36646 csi_gen_utility_pvt.put_line('Count of l_unlock_ins_tbl is :'||l_unlock_ins_tbl.count);
36647 IF l_unlock_ins_tbl.COUNT>0
36648 THEN
36649 csi_gen_utility_pvt.put_line('Before calling unlock_tbl_handler in instance root mode. ');
36650
36651 FOR i IN l_unlock_ins_tbl.FIRST .. l_unlock_ins_tbl.LAST
36652 LOOP
36653 IF l_unlock_ins_tbl.EXISTS(i)
36654 THEN
36655 IF l_unlock_ins_tbl(i).lock_status=0
36656 THEN
36657 SELECT COUNT(*)
36658 INTO l_instance_ctr
36659 FROM csi_item_instance_locks
36660 WHERE root_instance_id =l_unlock_ins_tbl(i).instance_id
36661 AND lock_id = l_unlock_ins_tbl(i).lock_id
36662 AND lock_status IN (1,2);
36663 IF l_instance_ctr >1 -- this includes root
36664 THEN
36665 FND_MESSAGE.SET_NAME('CSI','CSI_INVALID_INST_STATUS');
36666 FND_MESSAGE.SET_TOKEN('INSTANCE_ID',l_unlock_ins_tbl(i).instance_id);
36667 FND_MSG_PUB.Add;
36668 RAISE FND_API.G_EXC_ERROR;
36669 END IF;
36670 END IF;
36671 END IF;
36672 END LOOP;
36673 unlock_tbl_handler (l_unlock_ins_tbl,'INSTANCE',SYSDATE);
36674 END IF;
36675
36676 IF l_unlock_root.COUNT>0
36677 THEN
36678 csi_gen_utility_pvt.put_line('Before calling unlock_tbl_handler in config root mode. ');
36679
36680 FOR i IN l_unlock_root.FIRST .. l_unlock_root.LAST
36681 LOOP
36682 IF l_unlock_root.EXISTS(i)
36683 THEN
36684 IF l_unlock_root(i).lock_status=0
36685 THEN
36686 SELECT COUNT(*)
36687 INTO l_config_ctr
36688 FROM csi_item_instance_locks
36689 WHERE root_config_inst_hdr_id =l_unlock_root(i).config_inst_hdr_id
36690 AND root_config_inst_item_id = l_unlock_root(i).config_inst_item_id
36691 AND root_config_inst_rev_num = l_unlock_root(i).config_inst_rev_num
36692 AND lock_id = l_unlock_root(i).lock_id
36693 AND lock_status IN (1,2);
36694 IF l_config_ctr >1 -- this includes root
36695 THEN
36696 FND_MESSAGE.SET_NAME('CSI','CSI_INVALID_CONF_STATUS');
36697 FND_MESSAGE.SET_TOKEN('CONFIG_INST_HDR_ID',l_unlock_root(i).config_inst_hdr_id);
36698 FND_MESSAGE.SET_TOKEN('CONFIG_INST_ITEM_ID',l_unlock_root(i).config_inst_item_id);
36699 FND_MESSAGE.SET_TOKEN('CONFIG_INST_REV_NUM',l_unlock_root(i).config_inst_rev_num);
36700 FND_MSG_PUB.Add;
36701 RAISE FND_API.G_EXC_ERROR;
36702 END IF;
36703 END IF;
36704 END IF;
36705 END LOOP;
36706
36707 unlock_tbl_handler (l_unlock_root,'CONFIG',SYSDATE);
36708
36709 END IF;
36710
36711 IF FND_API.To_Boolean( p_commit ) THEN
36712 COMMIT WORK;
36713 END IF;
36714
36715 -- Standard call to get message count and if count is get message info.
36716 FND_MSG_PUB.Count_And_Get
36717 (p_encoded => FND_API.G_FALSE,
36718 p_count => x_msg_count ,
36719 p_data => x_msg_data );
36720
36721 csi_gen_utility_pvt.put_line('Reached to the end of csi_unlock_item_instance procedure.');
36722
36723 EXCEPTION
36724 WHEN FND_API.G_EXC_ERROR THEN
36725 ROLLBACK TO csi_unlock_item_instance;
36726 x_return_status := FND_API.G_RET_STS_ERROR ;
36727 FND_MSG_PUB.Count_And_Get
36728 ( p_encoded => FND_API.G_FALSE,
36729 p_count => x_msg_count,
36730 p_data => x_msg_data );
36731 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
36732 ROLLBACK TO csi_unlock_item_instance;
36733 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
36734 FND_MSG_PUB.Count_And_Get
36735 ( p_encoded => FND_API.G_FALSE,
36736 p_count => x_msg_count,
36737 p_data => x_msg_data );
36738 WHEN OTHERS THEN
36739 ROLLBACK TO csi_unlock_item_instance;
36740 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
36741 IF FND_MSG_PUB.Check_Msg_Level
36742 (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
36743 THEN
36744 FND_MSG_PUB.Add_Exc_Msg
36745 ( g_pkg_name, l_api_name );
36746 END IF;
36747 FND_MSG_PUB.Count_And_Get
36748 ( p_encoded => FND_API.G_FALSE,
36749 p_count => x_msg_count,
36750 p_data => x_msg_data );
36751 END unlock_item_instances;
36752
36753
36754 END CSI_ITEM_INSTANCE_PVT;