[Home] [Help]
PACKAGE BODY: APPS.CSI_ITEM_INSTANCE_PVT
Source
1 PACKAGE BODY CSI_ITEM_INSTANCE_PVT as
2 /* $Header: csiviib.pls 120.88.12010000.2 2008/12/08 13:47:04 dsingire 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.ATTRIBUTE3 := C2.NEW_ATTRIBUTE3;
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 BEGIN
2580 SELECT meaning
2581 INTO p_instance_header_tbl(tab_row).accounting_class
2582 FROM csi_lookups
2583 WHERE lookup_code = p_instance_header_tbl(tab_row).accounting_class_code
2584 AND lookup_type = l_acct_lookup_type;
2585 EXCEPTION
2586 WHEN OTHERS THEN
2587 null;
2588 END;
2589
2590 BEGIN
2591 SELECT meaning
2592 INTO p_instance_header_tbl(tab_row).instance_type_name
2593 FROM csi_lookups
2594 WHERE lookup_code = p_instance_header_tbl(tab_row).instance_type_code
2595 AND lookup_type = l_inst_lookup_type;
2596 EXCEPTION
2597 WHEN OTHERS THEN
2598 null;
2599 END;
2600
2601 BEGIN
2602 SELECT meaning
2603 INTO p_instance_header_tbl(tab_row).instance_usage_name
2604 FROM csi_lookups
2605 WHERE lookup_code = p_instance_header_tbl(tab_row).instance_usage_code
2606 AND lookup_type = l_usage_lookup_type;
2607 EXCEPTION
2608 WHEN OTHERS THEN
2609 null;
2610 END;
2611
2612
2613 BEGIN
2614 SELECT meaning
2615 INTO p_instance_header_tbl(tab_row).operational_status_name
2616 FROM csi_lookups
2617 WHERE lookup_code = p_instance_header_tbl(tab_row).operational_status_code
2618 AND lookup_type = l_op_status_lookup_type;
2619 EXCEPTION
2620 WHEN OTHERS THEN
2621 null;
2622 END;
2623
2624 IF p_instance_header_tbl(tab_row).version_label IS NOT NULL THEN
2625 BEGIN
2626 SELECT meaning
2627 INTO p_instance_header_tbl(tab_row).version_label_meaning
2628 FROM csi_lookups
2629 WHERE lookup_code = p_instance_header_tbl(tab_row).version_label
2630 AND lookup_type = l_ver_label_lookup_type;
2631 EXCEPTION
2632 WHEN OTHERS THEN
2633 null;
2634 END;
2635 END IF;
2636
2637 BEGIN
2638 SELECT status_code
2639 INTO p_instance_header_tbl(tab_row).instance_condition
2640 FROM mtl_material_statuses
2641 WHERE status_id = p_instance_header_tbl(tab_row).instance_condition_id;
2642 EXCEPTION
2643 WHEN OTHERS THEN
2644 null;
2645 END;
2646
2647 BEGIN
2648 SELECT unit_of_measure
2649 INTO p_instance_header_tbl(tab_row).unit_of_measure_name
2650 FROM mtl_units_of_measure_vl
2651 WHERE uom_code = p_instance_header_tbl(tab_row).unit_of_measure;
2652 EXCEPTION
2653 WHEN OTHERS THEN
2654 null;
2655 END;
2656
2657
2658 BEGIN
2659 SELECT name
2660 INTO p_instance_header_tbl(tab_row).instance_status
2661 FROM csi_instance_statuses
2662 WHERE instance_status_id = p_instance_header_tbl(tab_row).instance_status_id;
2663 EXCEPTION
2664 WHEN OTHERS THEN
2665 null;
2666 END;
2667
2668 BEGIN
2669 SELECT name
2670 INTO p_instance_header_tbl(tab_row).system_name
2671 FROM csi_systems_vl
2672 WHERE system_id = p_instance_header_tbl(tab_row).system_id;
2673 EXCEPTION
2674 WHEN OTHERS THEN
2675 null;
2676 END;
2677
2678 IF ( (p_instance_header_tbl(tab_row).vld_organization_id IS NOT NULL) AND
2679 (p_instance_header_tbl(tab_row).vld_organization_id <> FND_API.G_MISS_NUM) ) THEN
2680 BEGIN
2681 l_vld_organization_id := p_instance_header_tbl(tab_row).vld_organization_id; --bug4754569
2682
2683 SELECT name
2684 INTO p_instance_header_tbl(tab_row).vld_organization_name
2685 FROM hr_all_organization_units
2686 WHERE organization_id = p_instance_header_tbl(tab_row).vld_organization_id;
2687 EXCEPTION
2688 WHEN OTHERS THEN
2689 null;
2690 END;
2691 --start of code for bug 4754569--
2692 ELSE
2693 --To get the vld_organization_id from csi_item_instances--
2694 BEGIN
2695 SELECT last_vld_organization_id
2696 INTO l_vld_organization_id
2697 FROM csi_item_instances
2698 WHERE instance_id = p_instance_header_tbl(tab_row).instance_id;
2699 EXCEPTION
2700 WHEN OTHERS THEN
2701 NULL;
2702 END;
2703
2704 END IF;
2705
2706 IF ( (p_instance_header_tbl(tab_row).inventory_item_id IS NOT NULL) AND
2707 (p_instance_header_tbl(tab_row).inventory_item_id <> FND_API.G_MISS_NUM) ) THEN
2708 l_inventory_item_id:=p_instance_header_tbl(tab_row).inventory_item_id;
2709 ELSE
2710 --To get the inventory_item_id from csi_item_instances--
2711 BEGIN
2712 SELECT inventory_item_id
2713 INTO l_inventory_item_id
2714 FROM csi_item_instances
2715 WHERE instance_id = p_instance_header_tbl(tab_row).instance_id;
2716 EXCEPTION
2717 WHEN OTHERS THEN
2718 NULL;
2719 END;
2720 END IF;
2721 --end of code for bug 4754569--
2722
2723 IF csi_item_instance_vld_pvt.Check_for_eam_item
2724 (p_inventory_item_id => l_inventory_item_id,
2725 p_organization_id => l_vld_organization_id)--bug 4754569
2726 THEN
2727 l_maint_organization_id := NULL;
2728 l_department_id := NULL;
2729 l_location_id := NULL;
2730 l_gen_object_id := NULL;
2731 -- Maintenance organization
2732 BEGIN
2733 SELECT maint_organization_id
2734 INTO l_maint_organization_id
2735 FROM mtl_parameters
2736 WHERE organization_id = p_instance_header_tbl(tab_row).vld_organization_id;
2737 EXCEPTION
2738 WHEN NO_DATA_FOUND THEN
2739 NULL;
2740 END;
2741
2742 IF l_maint_organization_id IS NOT NULL
2743 THEN
2744 BEGIN
2745 SELECT organization_code
2746 INTO p_instance_header_tbl(tab_row).maintenance_organization
2747 FROM mtl_parameters
2748 WHERE organization_id = l_maint_organization_id;
2749 EXCEPTION
2750 WHEN NO_DATA_FOUND THEN
2751 NULL;
2752 END;
2753 END IF;
2754
2755 -- Department
2756 BEGIN
2757 SELECT owning_department_id
2758 ,area_id
2759 INTO l_department_id
2760 ,l_location_id
2761 FROM eam_org_maint_defaults
2762 WHERE object_type = 50
2763 AND object_id = p_instance_header_tbl(tab_row).instance_id;
2764 -- Defining when others as constraints were not defined in eam schema
2765 -- for the eam_org_maint_defaults table.
2766 EXCEPTION
2767 WHEN OTHERS THEN
2768 NULL;
2769 END ;
2770
2771 BEGIN
2772 IF l_department_id IS NOT NULL
2773 THEN
2774 SELECT department_code
2775 INTO p_instance_header_tbl(tab_row).department
2776 FROM bom_departments
2777 WHERE department_id = l_department_id;
2778 END IF;
2779 EXCEPTION
2780 WHEN NO_DATA_FOUND THEN
2781 NULL;
2782 END;
2783
2784 -- Area
2785 IF l_location_id IS NOT NULL
2786 THEN
2787 BEGIN
2788 SELECT location_codes
2789 INTO p_instance_header_tbl(tab_row).area
2790 FROM mtl_eam_locations
2791 WHERE location_id = l_location_id;
2792 EXCEPTION
2793 WHEN NO_DATA_FOUND THEN
2794 NULL;
2795 END;
2796 END IF;
2797
2798 -- Wip_accounting_class
2799 IF l_maint_organization_id IS NOT NULL
2800 THEN
2801 BEGIN
2802 SELECT class_code
2803 INTO p_instance_header_tbl(tab_row).wip_accounting_class
2804 FROM wip_accounting_classes
2805 WHERE organization_id = l_maint_organization_id
2806 AND class_type = 6
2807 AND sysdate <= nvl(disable_date, sysdate)
2808 AND ROWNUM=1;
2809 EXCEPTION
2810 WHEN NO_DATA_FOUND THEN
2811 NULL;
2812 END;
2813 END IF;
2814
2815 -- Parent_asset_number
2816 BEGIN
2817 SELECT msn.gen_object_id
2818 INTO l_gen_object_id
2819 FROM mtl_serial_numbers msn
2820 ,csi_item_instances cii
2821 WHERE msn.inventory_item_id = cii.inventory_item_id
2822 AND msn.serial_number = cii.serial_number
2823 AND cii.instance_id = p_instance_header_tbl(tab_row).instance_id;
2824 EXCEPTION
2825 WHEN NO_DATA_FOUND THEN
2826 NULL;
2827 END;
2828
2829 IF l_gen_object_id IS NOT NULL
2830 THEN
2831 BEGIN
2832 SELECT msi.concatenated_segments
2833 ,cii.instance_number
2834 INTO p_instance_header_tbl(tab_row).parent_asset_group
2835 ,p_instance_header_tbl(tab_row).parent_asset_number
2836 FROM mtl_system_items_b_kfv msi
2837 ,mtl_serial_numbers msn
2838 ,csi_item_instances cii
2839 ,mtl_object_genealogy mog
2840 WHERE msn.gen_object_id= mog.parent_object_id
2841 AND mog.object_id = l_gen_object_id
2842 AND mog.genealogy_type =5
2843 AND (sysdate BETWEEN mog.start_date_active AND nvl(mog.end_date_active,sysdate))
2844 AND msi.inventory_item_id = msn.inventory_item_id
2845 AND msi.organization_id= cii.last_vld_organization_id
2846 AND msn.inventory_item_id=cii.inventory_item_id
2847 AND msn.serial_number=cii.serial_number;
2848 EXCEPTION
2849 WHEN OTHERS THEN
2850 NULL;
2851 END;
2852 END IF;
2853
2854 IF p_instance_header_tbl(tab_row).asset_criticality_code IS NOT NULL AND
2855 p_instance_header_tbl(tab_row).asset_criticality_code <> fnd_api.g_miss_char
2856 THEN
2857 BEGIN
2858 SELECT meaning
2859 INTO p_instance_header_tbl(tab_row).criticality
2860 FROM mfg_lookups
2861 WHERE lookup_code = p_instance_header_tbl(tab_row).asset_criticality_code
2862 AND lookup_type = 'MTL_EAM_ASSET_CRITICALITY';
2863 EXCEPTION
2864 WHEN OTHERS THEN
2865 NULL;
2866 END;
2867 END IF;
2868
2869 IF p_instance_header_tbl(tab_row).category_id IS NOT NULL AND
2870 p_instance_header_tbl(tab_row).category_id <> fnd_api.g_miss_num
2871 THEN
2872 BEGIN
2873 SELECT concatenated_segments
2874 INTO p_instance_header_tbl(tab_row).category_name
2875 FROM mtl_categories_kfv
2876 WHERE category_id=p_instance_header_tbl(tab_row).category_id;
2877 EXCEPTION
2878 WHEN OTHERS THEN
2879 NULL;
2880 END;
2881 END IF;
2882
2883 --included for bug 5211068
2884 IF p_instance_header_tbl(tab_row).maintainable_flag IS NOT NULL AND
2885 p_instance_header_tbl(tab_row).maintainable_flag <> fnd_api.g_miss_char
2886 THEN
2887 BEGIN
2888 SELECT meaning
2889 INTO p_instance_header_tbl(tab_row).maintainable
2890 FROM csi_lookups
2891 WHERE lookup_code = DECODE(p_instance_header_tbl(tab_row).maintainable_flag,'Y','YES','N','NO')
2892 AND lookup_type = l_yesno_lookup_type;
2893 EXCEPTION WHEN OTHERS THEN
2894 NULL;
2895 END;
2896 END IF;
2897
2898 END IF; -- <IF csi_item_instance_vld_pvt.Check_for_eam_item>
2899
2900 END IF;
2901 END LOOP;
2902 END Resolve_id_columns;
2903
2904
2905 /*----------------------------------------------------------*/
2906 /* Procedure name: Get_Inst_Column_Values */
2907 /* Description : This procedure gets the column values */
2908 /* for the Dynamic SQL */
2909 /*----------------------------------------------------------*/
2910
2911 PROCEDURE Get_Inst_Column_Values
2912 (
2913 p_get_inst_cursor_id IN NUMBER,
2914 x_instance_id OUT NOCOPY NUMBER
2915 ) IS
2916
2917 BEGIN
2918
2919 dbms_sql.column_value(p_get_inst_cursor_id, 1, x_instance_id);
2920
2921 END Get_Inst_Column_Values;
2922
2923
2924 /*--------------------------------------------------------*/
2925 /* Procedure name: Define_Inst_Columns */
2926 /* Description : This procedure defines the columns */
2927 /* for the Dynamic SQL */
2928 /*--------------------------------------------------------*/
2929
2930 PROCEDURE Define_Inst_Columns
2931 (
2932 p_get_inst_cursor_id IN NUMBER,
2933 p_instance_query_rec IN csi_datastructures_pub.instance_query_rec
2934 ) IS
2935
2936 l_instance_header_rec csi_datastructures_pub.instance_header_rec;
2937
2938 BEGIN
2939
2940 dbms_sql.define_column(p_get_inst_cursor_id, 1, l_instance_header_rec.instance_id);
2941
2942 END Define_Inst_Columns;
2943
2944
2945 /*---------------------------------------------------------*/
2946 /* Procedure name: Bind_Inst_variable */
2947 /* Description : Procedure used to generate the where */
2948 /* clause for Item Instances */
2949 /*---------------------------------------------------------*/
2950
2951 PROCEDURE Bind_Inst_variable
2952 (
2953 p_instance_query_rec IN csi_datastructures_pub.instance_query_rec,
2954 p_party_query_rec IN csi_datastructures_pub.party_query_rec,
2955 p_pty_acct_query_rec IN csi_datastructures_pub.party_account_query_rec,
2956 p_transaction_id IN NUMBER,
2957 p_cur_get_inst_rel IN NUMBER
2958 ) IS
2959 BEGIN
2960
2961 IF(( p_instance_query_rec.instance_id IS NOT NULL) AND
2962 ( p_instance_query_rec.instance_id <> FND_API.G_MISS_NUM)) THEN
2963
2964 DBMS_SQL.BIND_VARIABLE(p_cur_get_inst_rel, ':INSTANCE_ID', p_instance_query_rec.instance_id);
2965 END IF;
2966
2967 IF( (p_instance_query_rec.inventory_item_id IS NOT NULL)
2968 AND (p_instance_query_rec.inventory_item_id <> FND_API.G_MISS_NUM)) THEN
2969 DBMS_SQL.BIND_VARIABLE(p_cur_get_inst_rel, ':INVENTORY_ITEM_ID', p_instance_query_rec.inventory_item_id);
2970 END IF;
2971
2972 IF( (p_instance_query_rec.inventory_revision IS NOT NULL)
2973 AND (p_instance_query_rec.inventory_revision <> FND_API.G_MISS_CHAR)) THEN
2974 DBMS_SQL.BIND_VARIABLE(p_cur_get_inst_rel, ':INVENTORY_REVISION', p_instance_query_rec.inventory_revision);
2975 END IF;
2976
2977 IF( (p_instance_query_rec.inv_master_organization_id IS NOT NULL)
2978 AND (p_instance_query_rec.inv_master_organization_id <> FND_API.G_MISS_NUM)) THEN
2979 DBMS_SQL.BIND_VARIABLE(p_cur_get_inst_rel, 'INV_MASTER_ORGANIZATION_ID', p_instance_query_rec.inv_master_organization_id);
2980 END IF;
2981
2982 IF( (p_instance_query_rec.serial_number IS NOT NULL)
2983 AND (p_instance_query_rec.serial_number <> FND_API.G_MISS_CHAR)) THEN
2984 DBMS_SQL.BIND_VARIABLE(p_cur_get_inst_rel, ':serial_number', p_instance_query_rec.serial_number);
2985 END IF;
2986
2987 IF( (p_instance_query_rec.lot_number IS NOT NULL)
2988 AND (p_instance_query_rec.lot_number <> FND_API.G_MISS_CHAR)) THEN
2989 DBMS_SQL.BIND_VARIABLE(p_cur_get_inst_rel, ':lot_number', p_instance_query_rec.lot_number);
2990 END IF;
2991
2992 IF( (p_instance_query_rec.unit_of_measure IS NOT NULL)
2993 AND (p_instance_query_rec.unit_of_measure <> FND_API.G_MISS_CHAR)) THEN
2994 DBMS_SQL.BIND_VARIABLE(p_cur_get_inst_rel, ':unit_of_measure', p_instance_query_rec.unit_of_measure);
2995 END IF;
2996
2997 IF( (p_instance_query_rec.instance_condition_id IS NOT NULL)
2998 AND (p_instance_query_rec.instance_condition_id <> FND_API.G_MISS_NUM)) THEN
2999 DBMS_SQL.BIND_VARIABLE(p_cur_get_inst_rel, ':instance_condition_id', p_instance_query_rec.instance_condition_id);
3000 END IF;
3001
3002 IF( (p_instance_query_rec.instance_status_id IS NOT NULL)
3003 AND (p_instance_query_rec.instance_status_id <> FND_API.G_MISS_NUM)) THEN
3004 DBMS_SQL.BIND_VARIABLE(p_cur_get_inst_rel, ':instance_status_id', p_instance_query_rec.instance_status_id);
3005 END IF;
3006
3007 IF( (p_instance_query_rec.system_id IS NOT NULL)
3008 AND (p_instance_query_rec.system_id <> FND_API.G_MISS_NUM)) THEN
3009 DBMS_SQL.BIND_VARIABLE(p_cur_get_inst_rel, ':system_id', p_instance_query_rec.system_id);
3010 END IF;
3011
3012 IF( (p_instance_query_rec.instance_type_code IS NOT NULL)
3013 AND (p_instance_query_rec.instance_type_code <> FND_API.G_MISS_CHAR)) THEN
3014 DBMS_SQL.BIND_VARIABLE(p_cur_get_inst_rel, ':instance_type_code', p_instance_query_rec.instance_type_code);
3015 END IF;
3016
3017 IF( (p_instance_query_rec.location_type_code IS NOT NULL)
3018 AND (p_instance_query_rec.location_type_code <> FND_API.G_MISS_CHAR)) THEN
3019 DBMS_SQL.BIND_VARIABLE(p_cur_get_inst_rel, ':location_type_code', p_instance_query_rec.location_type_code);
3020 END IF;
3021
3022 IF( (p_instance_query_rec.location_id IS NOT NULL)
3023 AND (p_instance_query_rec.location_id <> FND_API.G_MISS_NUM)) THEN
3024 DBMS_SQL.BIND_VARIABLE(p_cur_get_inst_rel, ':location_id', p_instance_query_rec.location_id);
3025 END IF;
3026
3027 IF( (p_instance_query_rec.inv_organization_id IS NOT NULL)
3028 AND (p_instance_query_rec.inv_organization_id <> FND_API.G_MISS_NUM)) THEN
3029 DBMS_SQL.BIND_VARIABLE(p_cur_get_inst_rel, ':inv_organization_id', p_instance_query_rec.inv_organization_id);
3030 END IF;
3031
3032 IF( (p_instance_query_rec.inv_subinventory_name IS NOT NULL)
3033 AND (p_instance_query_rec.inv_subinventory_name <> FND_API.G_MISS_CHAR)) THEN
3034 DBMS_SQL.BIND_VARIABLE(p_cur_get_inst_rel, ':inv_subinventory_name', p_instance_query_rec.inv_subinventory_name);
3035 END IF;
3036
3037 IF( (p_instance_query_rec.inv_locator_id IS NOT NULL)
3038 AND (p_instance_query_rec.inv_locator_id <> FND_API.G_MISS_NUM)) THEN
3039 DBMS_SQL.BIND_VARIABLE(p_cur_get_inst_rel, ':inv_locator_id', p_instance_query_rec.inv_locator_id);
3040 END IF;
3041
3042 IF( (p_instance_query_rec.pa_project_id IS NOT NULL)
3043 AND (p_instance_query_rec.pa_project_id <> FND_API.G_MISS_NUM)) THEN
3044 DBMS_SQL.BIND_VARIABLE(p_cur_get_inst_rel, ':pa_project_id', p_instance_query_rec.pa_project_id);
3045 END IF;
3046
3047 IF( (p_instance_query_rec.pa_project_task_id IS NOT NULL)
3048 AND (p_instance_query_rec.pa_project_task_id <> FND_API.G_MISS_NUM)) THEN
3049 DBMS_SQL.BIND_VARIABLE(p_cur_get_inst_rel, ':pa_project_task_id', p_instance_query_rec.pa_project_task_id);
3050 END IF;
3051
3052 IF( (p_instance_query_rec.in_transit_order_line_id IS NOT NULL)
3053 AND (p_instance_query_rec.in_transit_order_line_id <> FND_API.G_MISS_NUM)) THEN
3054 DBMS_SQL.BIND_VARIABLE(p_cur_get_inst_rel, ':in_transit_order_line_id', p_instance_query_rec.in_transit_order_line_id);
3055 END IF;
3056
3057 IF( (p_instance_query_rec.wip_job_id IS NOT NULL)
3058 AND (p_instance_query_rec.wip_job_id <> FND_API.G_MISS_NUM)) THEN
3059 DBMS_SQL.BIND_VARIABLE(p_cur_get_inst_rel, ':wip_job_id', p_instance_query_rec.wip_job_id);
3060 END IF;
3061
3062 IF( (p_instance_query_rec.po_order_line_id IS NOT NULL)
3063 AND (p_instance_query_rec.po_order_line_id <> FND_API.G_MISS_NUM)) THEN
3064 DBMS_SQL.BIND_VARIABLE(p_cur_get_inst_rel, ':po_order_line_id', p_instance_query_rec.po_order_line_id);
3065 END IF;
3066
3067 IF( (p_instance_query_rec.last_oe_order_line_id IS NOT NULL)
3068 AND (p_instance_query_rec.last_oe_order_line_id <> FND_API.G_MISS_NUM)) THEN
3069 DBMS_SQL.BIND_VARIABLE(p_cur_get_inst_rel, ':last_oe_order_line_id', p_instance_query_rec.last_oe_order_line_id);
3070 END IF;
3071
3072 IF( (p_instance_query_rec.last_oe_rma_line_id IS NOT NULL)
3073 AND (p_instance_query_rec.last_oe_rma_line_id <> FND_API.G_MISS_NUM)) THEN
3074 DBMS_SQL.BIND_VARIABLE(p_cur_get_inst_rel, ':last_oe_rma_line_id', p_instance_query_rec.last_oe_rma_line_id);
3075 END IF;
3076
3077 IF( (p_instance_query_rec.last_po_po_line_id IS NOT NULL)
3078 AND (p_instance_query_rec.last_po_po_line_id <> FND_API.G_MISS_NUM)) THEN
3079 DBMS_SQL.BIND_VARIABLE(p_cur_get_inst_rel, ':last_po_po_line_id', p_instance_query_rec.last_po_po_line_id);
3080 END IF;
3081
3082 IF( (p_instance_query_rec.last_oe_po_number IS NOT NULL)
3083 AND (p_instance_query_rec.last_oe_po_number <> FND_API.G_MISS_CHAR)) THEN
3084 DBMS_SQL.BIND_VARIABLE(p_cur_get_inst_rel, ':last_oe_po_number', p_instance_query_rec.last_oe_po_number);
3085 END IF;
3086
3087 IF( (p_instance_query_rec.last_wip_job_id IS NOT NULL)
3088 AND (p_instance_query_rec.last_wip_job_id <> FND_API.G_MISS_NUM)) THEN
3089 DBMS_SQL.BIND_VARIABLE(p_cur_get_inst_rel, ':last_wip_job_id', p_instance_query_rec.last_wip_job_id);
3090 END IF;
3091
3092 IF( (p_instance_query_rec.last_pa_project_id IS NOT NULL)
3093 AND (p_instance_query_rec.last_pa_project_id <> FND_API.G_MISS_NUM)) THEN
3094 DBMS_SQL.BIND_VARIABLE(p_cur_get_inst_rel, ':last_pa_project_id', p_instance_query_rec.last_pa_project_id);
3095 END IF;
3096
3097 IF( (p_instance_query_rec.last_pa_task_id IS NOT NULL)
3098 AND (p_instance_query_rec.last_pa_task_id <> FND_API.G_MISS_NUM)) THEN
3099 DBMS_SQL.BIND_VARIABLE(p_cur_get_inst_rel, ':last_pa_task_id', p_instance_query_rec.last_pa_task_id);
3100 END IF;
3101
3102 IF( (p_instance_query_rec.last_oe_agreement_id IS NOT NULL)
3103 AND (p_instance_query_rec.last_oe_agreement_id <> FND_API.G_MISS_NUM)) THEN
3104 DBMS_SQL.BIND_VARIABLE(p_cur_get_inst_rel, ':last_oe_agreement_id', p_instance_query_rec.last_oe_agreement_id);
3105 END IF;
3106
3107 IF( (p_instance_query_rec.install_date IS NOT NULL)
3108 AND (p_instance_query_rec.install_date <> FND_API.G_MISS_DATE)) THEN
3109 DBMS_SQL.BIND_VARIABLE(p_cur_get_inst_rel, ':install_date', p_instance_query_rec.install_date);
3110 END IF;
3111
3112 IF( (p_instance_query_rec.manually_created_flag IS NOT NULL)
3113 AND (p_instance_query_rec.manually_created_flag <> FND_API.G_MISS_CHAR)) THEN
3114 DBMS_SQL.BIND_VARIABLE(p_cur_get_inst_rel, ':manually_created_flag', p_instance_query_rec.manually_created_flag);
3115 END IF;
3116
3117 IF( (p_instance_query_rec.return_by_date IS NOT NULL)
3118 AND (p_instance_query_rec.return_by_date <> FND_API.G_MISS_DATE)) THEN
3119 DBMS_SQL.BIND_VARIABLE(p_cur_get_inst_rel, ':return_by_date', p_instance_query_rec.return_by_date);
3120 END IF;
3121
3122 IF( (p_instance_query_rec.actual_return_date IS NOT NULL)
3123 AND (p_instance_query_rec.actual_return_date <> FND_API.G_MISS_DATE)) THEN
3124 DBMS_SQL.BIND_VARIABLE(p_cur_get_inst_rel, ':actual_return_date', p_instance_query_rec.actual_return_date);
3125 END IF;
3126
3127 IF( (p_instance_query_rec.instance_usage_code IS NOT NULL)
3128 AND (p_instance_query_rec.instance_usage_code <> FND_API.G_MISS_CHAR)) THEN
3129 DBMS_SQL.BIND_VARIABLE(p_cur_get_inst_rel, ':instance_usage_code', p_instance_query_rec.instance_usage_code);
3130 END IF;
3131
3132 -- The following code has been added by sguthiva for att enhancements
3133
3134 IF( (p_instance_query_rec.config_inst_hdr_id IS NOT NULL)
3135 AND (p_instance_query_rec.config_inst_hdr_id <> FND_API.G_MISS_NUM)) THEN
3136 DBMS_SQL.BIND_VARIABLE(p_cur_get_inst_rel, ':config_inst_hdr_id', p_instance_query_rec.config_inst_hdr_id);
3137 END IF;
3138
3139 IF( (p_instance_query_rec.config_inst_rev_num IS NOT NULL)
3140 AND (p_instance_query_rec.config_inst_rev_num <> FND_API.G_MISS_NUM)) THEN
3141 DBMS_SQL.BIND_VARIABLE(p_cur_get_inst_rel, ':config_inst_rev_num', p_instance_query_rec.config_inst_rev_num);
3142 END IF;
3143
3144 IF( (p_instance_query_rec.config_inst_item_id IS NOT NULL)
3145 AND (p_instance_query_rec.config_inst_item_id <> FND_API.G_MISS_NUM)) THEN
3146 DBMS_SQL.BIND_VARIABLE(p_cur_get_inst_rel, ':config_inst_item_id', p_instance_query_rec.config_inst_item_id);
3147 END IF;
3148
3149 IF( (p_instance_query_rec.instance_description IS NOT NULL)
3150 AND (p_instance_query_rec.instance_description <> FND_API.G_MISS_CHAR)) THEN
3151 DBMS_SQL.BIND_VARIABLE(p_cur_get_inst_rel, ':instance_description', p_instance_query_rec.instance_description);
3152 END IF;
3153
3154 -- End of code addition
3155 -- Addition of columns for FA Integration
3156 IF( (p_instance_query_rec.operational_status_code IS NOT NULL)
3157 AND (p_instance_query_rec.operational_status_code <> FND_API.G_MISS_CHAR)) THEN
3158 DBMS_SQL.BIND_VARIABLE(p_cur_get_inst_rel, ':operational_status_code', p_instance_query_rec.operational_status_code);
3159 END IF;
3160 -- End addition of columns for FA Integration
3161 ----
3162 IF( (p_party_query_rec.instance_party_id IS NOT NULL)
3163 AND (p_party_query_rec.instance_party_id <> FND_API.G_MISS_NUM)) THEN
3164 DBMS_SQL.BIND_VARIABLE(p_cur_get_inst_rel, ':instance_party_id', p_party_query_rec.instance_party_id);
3165 END IF;
3166
3167 IF( (p_party_query_rec.instance_id IS NOT NULL)
3168 AND (p_party_query_rec.instance_id <> FND_API.G_MISS_NUM)) THEN
3169 DBMS_SQL.BIND_VARIABLE(p_cur_get_inst_rel, ':instance_id', p_party_query_rec.instance_id);
3170 END IF;
3171
3172 IF( (p_party_query_rec.party_id IS NOT NULL)
3173 AND (p_party_query_rec.party_id <> FND_API.G_MISS_NUM)) THEN
3174 DBMS_SQL.BIND_VARIABLE(p_cur_get_inst_rel, ':party_id', p_party_query_rec.party_id);
3175 END IF;
3176
3177 IF( (p_party_query_rec.relationship_type_code IS NOT NULL)
3178 AND (p_party_query_rec.relationship_type_code <> FND_API.G_MISS_CHAR)) THEN
3179 DBMS_SQL.BIND_VARIABLE(p_cur_get_inst_rel, ':relationship_type_code', p_party_query_rec.relationship_type_code);
3180 END IF;
3181
3182 ----
3183 IF( (p_pty_acct_query_rec.ip_account_id IS NOT NULL)
3184 AND (p_pty_acct_query_rec.ip_account_id <> FND_API.G_MISS_NUM)) THEN
3185 DBMS_SQL.BIND_VARIABLE(p_cur_get_inst_rel, ':ip_account_id', p_pty_acct_query_rec.ip_account_id);
3186 END IF;
3187
3188 IF( (p_pty_acct_query_rec.instance_party_id IS NOT NULL)
3189 AND (p_pty_acct_query_rec.instance_party_id <> FND_API.G_MISS_NUM)) THEN
3190 DBMS_SQL.BIND_VARIABLE(p_cur_get_inst_rel, ':instance_party_id', p_pty_acct_query_rec.instance_party_id);
3191 END IF;
3192
3193 IF( (p_pty_acct_query_rec.party_account_id IS NOT NULL)
3194 AND (p_pty_acct_query_rec.party_account_id <> FND_API.G_MISS_NUM)) THEN
3195 DBMS_SQL.BIND_VARIABLE(p_cur_get_inst_rel, ':party_account_id', p_pty_acct_query_rec.party_account_id);
3196 END IF;
3197
3198 IF( (p_pty_acct_query_rec.relationship_type_code IS NOT NULL)
3199 AND (p_pty_acct_query_rec.relationship_type_code <> FND_API.G_MISS_CHAR)) THEN
3200 DBMS_SQL.BIND_VARIABLE(p_cur_get_inst_rel, ':relationship_type_code', p_pty_acct_query_rec.relationship_type_code);
3201 END IF;
3202
3203 IF p_transaction_id is not null then
3204 DBMS_SQL.BIND_VARIABLE(p_cur_get_inst_rel, ':p_transaction_id', p_transaction_id);
3205 END IF;
3206 END Bind_Inst_variable;
3207
3208
3209 /*-----------------------------------------------------------*/
3210 /* Procedure name: Gen_Inst_Where_Clause */
3211 /* Description : Procedure used to generate the where */
3212 /* clause for Party relationship */
3213 /*-----------------------------------------------------------*/
3214
3215 PROCEDURE Gen_Inst_Where_Clause
3216 (
3217 p_instance_query_rec IN csi_datastructures_pub.instance_query_rec,
3218 p_party_query_rec IN csi_datastructures_pub.party_query_rec,
3219 p_pty_acct_query_rec IN csi_datastructures_pub.party_account_query_rec,
3220 p_transaction_id IN NUMBER,
3221 x_select_stmt OUT NOCOPY VARCHAR2,
3222 p_active_instance_only IN VARCHAR2
3223 ) IS
3224
3225 l_join_condition VARCHAR2(2000):= '';
3226 l_from_clause VARCHAR2(2000):= '';
3227 l_select_columns VARCHAR2(2000):= '';
3228 x_where_clause VARCHAR2(2000):= '';
3229 l_instance_rec_exists BOOLEAN := FALSE;
3230 l_party_rec_exists BOOLEAN := FALSE;
3231 l_party_acct_rec_exists BOOLEAN := FALSE;
3232 --Added
3233 l_flag VARCHAR2(3);
3234 l_inp_rec OKS_ENTITLEMENTS_PUB.inp_cont_rec;
3235 x_return_status VARCHAR2(2000);
3236 x_msg_count NUMBER;
3237 x_msg_data VARCHAR2(2000);
3238 l_ent_contracts OKS_ENTITLEMENTS_PUB.ent_cont_tbl;
3239 l_msg_data VARCHAR2(2000);
3240 l_msg_index NUMBER;
3241 l_msg_count NUMBER;
3242 l_rec_count NUMBER:=1;
3243 l_row_count NUMBER;
3244 l_covered_cp_id VARCHAR2(2000) DEFAULT NULL;
3245 l_covered_level_code OKC_LINE_STYLES_B.LTY_CODE%TYPE;
3246 l_coverage_level_id NUMBER;
3247 --End Addition
3248
3249 l_union_stmt VARCHAR2(2000) := ' select instance_id from csi_item_instances_h '||
3250 ' where transaction_id = :p_transaction_id UNION select a.instance_id '||
3251 ' from csi_i_parties a, csi_i_parties_h b where a.instance_party_id = b.instance_party_id '||
3252 ' and b.transaction_id = :p_transaction_id UNION select a.instance_id '||
3253 ' from csi_i_assets a, csi_i_assets_h b where a.instance_asset_id = b.instance_asset_id '||
3254 ' and transaction_id = :p_transaction_id UNION '||
3255 ' select a.instance_id from csi_i_parties a, csi_ip_accounts b, '||
3256 ' csi_ip_accounts_h c where a.instance_party_id = b.instance_party_id '||
3257 ' and b.ip_account_id = c.ip_account_id and c.transaction_id = :p_transaction_id UNION '||
3258 ' SELECT b.instance_id FROM csi_iea_values_h a, csi_iea_values b '||
3259 ' WHERE a.attribute_value_id = b.attribute_value_id AND a.transaction_id = :p_transaction_id '||
3260 ' UNION SELECT b.subject_id FROM csi_ii_relationships_h a, csi_ii_relationships b '||
3261 ' WHERE a.relationship_id = b.relationship_id AND a.transaction_id = :p_transaction_id '||
3262 ' UNION SELECT a.instance_id FROM csi_i_org_assignments a, csi_i_org_assignments_h b '||
3263 ' WHERE a.instance_ou_id = b.instance_ou_id and b.transaction_id = :p_transaction_id '||
3264 ' UNION SELECT a.instance_id FROM csi_i_pricing_attribs a , csi_i_pricing_attribs_h b '||
3265 ' WHERE a.pricing_attribute_id = b.pricing_attribute_id and b.transaction_id = :p_transaction_id '||
3266 ' UNION SELECT a.instance_id FROM csi_i_version_labels a, csi_i_version_labels_h b '||
3267 ' WHERE a.version_label_id = b.version_label_id and b.transaction_id = :p_transaction_id '||
3268 ' UNION SELECT a.instance_id FROM csi_item_instances a, csi_systems_b b, csi_systems_h c '||
3269 ' WHERE a.system_id = b.system_id and b.system_id = c.system_id and c.transaction_id = :p_transaction_id ';
3270
3271
3272 BEGIN
3273
3274 IF (p_instance_query_rec.INSTANCE_ID <> FND_API.G_MISS_NUM)
3275 OR (p_instance_query_rec.INSTANCE_ID IS NULL )
3276 OR (p_instance_query_rec.INVENTORY_ITEM_ID <> FND_API.G_MISS_NUM)
3277 OR (p_instance_query_rec.INVENTORY_ITEM_ID IS NULL )
3278 OR (p_instance_query_rec.INVENTORY_REVISION <> FND_API.G_MISS_CHAR)
3279 OR (p_instance_query_rec.INVENTORY_REVISION IS NULL )
3280 OR (p_instance_query_rec.INV_MASTER_ORGANIZATION_ID <> FND_API.G_MISS_NUM)
3281 OR (p_instance_query_rec.INV_MASTER_ORGANIZATION_ID IS NULL )
3282 OR (p_instance_query_rec.SERIAL_NUMBER <> FND_API.G_MISS_CHAR)
3283 OR (p_instance_query_rec.SERIAL_NUMBER IS NULL )
3284 OR (p_instance_query_rec.LOT_NUMBER <> FND_API.G_MISS_CHAR)
3285 OR (p_instance_query_rec.LOT_NUMBER IS NULL )
3286 OR (p_instance_query_rec.UNIT_OF_MEASURE <> FND_API.G_MISS_CHAR)
3287 OR (p_instance_query_rec.UNIT_OF_MEASURE IS NULL )
3288 OR (p_instance_query_rec.INSTANCE_CONDITION_ID <> FND_API.G_MISS_NUM)
3289 OR (p_instance_query_rec.INSTANCE_CONDITION_ID IS NULL )
3290 OR (p_instance_query_rec.INSTANCE_STATUS_ID <> FND_API.G_MISS_NUM)
3291 OR (p_instance_query_rec.INSTANCE_STATUS_ID IS NULL )
3292 OR (p_instance_query_rec.SYSTEM_ID <> FND_API.G_MISS_NUM)
3293 OR (p_instance_query_rec.SYSTEM_ID IS NULL )
3294 OR (p_instance_query_rec.INSTANCE_TYPE_CODE <> FND_API.G_MISS_CHAR)
3295 OR (p_instance_query_rec.INSTANCE_TYPE_CODE IS NULL )
3296 OR (p_instance_query_rec.LOCATION_TYPE_CODE <> FND_API.G_MISS_CHAR)
3297 OR (p_instance_query_rec.LOCATION_TYPE_CODE IS NULL )
3298 OR (p_instance_query_rec.LOCATION_ID <> FND_API.G_MISS_NUM)
3299 OR (p_instance_query_rec.LOCATION_ID IS NULL )
3300 OR (p_instance_query_rec.INV_ORGANIZATION_ID <> FND_API.G_MISS_NUM)
3301 OR (p_instance_query_rec.INV_ORGANIZATION_ID IS NULL )
3302 OR (p_instance_query_rec.INV_SUBINVENTORY_NAME <> FND_API.G_MISS_CHAR)
3303 OR (p_instance_query_rec.INV_SUBINVENTORY_NAME IS NULL )
3304 OR (p_instance_query_rec.INV_LOCATOR_ID <> FND_API.G_MISS_NUM)
3305 OR (p_instance_query_rec.INV_LOCATOR_ID IS NULL )
3306 OR (p_instance_query_rec.PA_PROJECT_ID <> FND_API.G_MISS_NUM)
3307 OR (p_instance_query_rec.PA_PROJECT_ID IS NULL )
3308 OR (p_instance_query_rec.PA_PROJECT_TASK_ID <> FND_API.G_MISS_NUM)
3309 OR (p_instance_query_rec.PA_PROJECT_TASK_ID IS NULL )
3310 OR (p_instance_query_rec.IN_TRANSIT_ORDER_LINE_ID <> FND_API.G_MISS_NUM)
3311 OR (p_instance_query_rec.IN_TRANSIT_ORDER_LINE_ID IS NULL )
3312 OR (p_instance_query_rec.WIP_JOB_ID <> FND_API.G_MISS_NUM)
3313 OR (p_instance_query_rec.WIP_JOB_ID IS NULL )
3314 OR (p_instance_query_rec.PO_ORDER_LINE_ID <> FND_API.G_MISS_NUM)
3315 OR (p_instance_query_rec.PO_ORDER_LINE_ID IS NULL )
3316 OR (p_instance_query_rec.LAST_OE_ORDER_LINE_ID <> FND_API.G_MISS_NUM)
3317 OR (p_instance_query_rec.LAST_OE_ORDER_LINE_ID IS NULL )
3318 OR (p_instance_query_rec.LAST_OE_RMA_LINE_ID <> FND_API.G_MISS_NUM)
3319 OR (p_instance_query_rec.LAST_OE_RMA_LINE_ID IS NULL )
3320 OR (p_instance_query_rec.LAST_PO_PO_LINE_ID <> FND_API.G_MISS_NUM)
3321 OR (p_instance_query_rec.LAST_PO_PO_LINE_ID IS NULL )
3322 OR (p_instance_query_rec.LAST_OE_PO_NUMBER <> FND_API.G_MISS_CHAR)
3323 OR (p_instance_query_rec.LAST_OE_PO_NUMBER IS NULL )
3324 OR (p_instance_query_rec.LAST_WIP_JOB_ID <> FND_API.G_MISS_NUM)
3325 OR (p_instance_query_rec.LAST_WIP_JOB_ID IS NULL )
3326 OR (p_instance_query_rec.LAST_PA_PROJECT_ID <> FND_API.G_MISS_NUM)
3327 OR (p_instance_query_rec.LAST_PA_PROJECT_ID IS NULL )
3328 OR (p_instance_query_rec.LAST_PA_TASK_ID <> FND_API.G_MISS_NUM)
3329 OR (p_instance_query_rec.LAST_PA_TASK_ID IS NULL )
3330 OR (p_instance_query_rec.LAST_OE_AGREEMENT_ID <> FND_API.G_MISS_NUM)
3331 OR (p_instance_query_rec.LAST_OE_AGREEMENT_ID IS NULL )
3332 OR (p_instance_query_rec.INSTALL_DATE <> FND_API.G_MISS_DATE)
3333 OR (p_instance_query_rec.INSTALL_DATE IS NULL )
3334 OR (p_instance_query_rec.MANUALLY_CREATED_FLAG <> FND_API.G_MISS_CHAR)
3335 OR (p_instance_query_rec.MANUALLY_CREATED_FLAG IS NULL )
3336 OR (p_instance_query_rec.RETURN_BY_DATE <> FND_API.G_MISS_DATE)
3337 OR (p_instance_query_rec.RETURN_BY_DATE IS NULL )
3338 OR (p_instance_query_rec.ACTUAL_RETURN_DATE <> FND_API.G_MISS_DATE)
3339 OR (p_instance_query_rec.ACTUAL_RETURN_DATE IS NULL )
3340 OR (p_instance_query_rec.INSTANCE_USAGE_CODE <> FND_API.G_MISS_CHAR)
3341 OR (p_instance_query_rec.INSTANCE_USAGE_CODE IS NULL )
3342 OR (p_instance_query_rec.CONTRACT_NUMBER <> FND_API.G_MISS_CHAR)
3343 OR (p_instance_query_rec.CONTRACT_NUMBER IS NULL )
3344 OR (p_instance_query_rec.CONFIG_INST_HDR_ID <> FND_API.G_MISS_NUM) -- sguthiva added for att
3345 OR (p_instance_query_rec.CONFIG_INST_HDR_ID IS NULL )
3346 OR (p_instance_query_rec.CONFIG_INST_REV_NUM <> FND_API.G_MISS_NUM) -- sguthiva added for att
3347 OR (p_instance_query_rec.CONFIG_INST_REV_NUM IS NULL )
3348 OR (p_instance_query_rec.CONFIG_INST_ITEM_ID <> FND_API.G_MISS_NUM) -- sguthiva added for att
3349 OR (p_instance_query_rec.CONFIG_INST_ITEM_ID IS NULL )
3350 OR (p_instance_query_rec.INSTANCE_DESCRIPTION <> FND_API.G_MISS_CHAR) -- sguthiva added for att
3351 OR (p_instance_query_rec.INSTANCE_DESCRIPTION IS NULL )
3352 OR (p_instance_query_rec.OPERATIONAL_STATUS_CODE <> FND_API.G_MISS_CHAR) -- Addition of columns for FA Integration
3353 OR (p_instance_query_rec.OPERATIONAL_STATUS_CODE IS NULL )
3354 THEN
3355
3356 l_instance_rec_exists := TRUE;
3357 l_from_clause := ' csi_item_instances a ';
3358 l_select_columns := ' a.INSTANCE_ID ';
3359
3360
3361 END IF;
3362
3363 IF (p_party_query_rec.instance_party_id <> FND_API.G_MISS_NUM)
3364 OR (p_party_query_rec.instance_party_id IS NULL )
3365 OR (p_party_query_rec.instance_id <> FND_API.G_MISS_NUM)
3366 OR (p_party_query_rec.instance_id IS NULL )
3367 OR (p_party_query_rec.party_id <> FND_API.G_MISS_NUM)
3368 OR (p_party_query_rec.party_id IS NULL )
3369 OR (p_party_query_rec.relationship_type_code <> FND_API.G_MISS_CHAR )
3370 OR (p_party_query_rec.relationship_type_code IS NULL ) THEN
3371
3372 l_party_rec_exists := TRUE;
3373 IF l_instance_rec_exists THEN
3374 l_from_clause := l_from_clause||' , csi_i_parties b ';
3375 l_join_condition := ' a.instance_id = b.instance_id ';
3376 ELSE
3377 l_from_clause := ' csi_i_parties b ';
3378 l_select_columns := ' b.instance_id ';
3379 END IF;
3380
3381 END IF;
3382
3383 IF (p_pty_acct_query_rec.ip_account_id <> FND_API.G_MISS_NUM)
3384 OR (p_pty_acct_query_rec.ip_account_id IS NULL )
3385 OR (p_pty_acct_query_rec.instance_party_id <> FND_API.G_MISS_NUM)
3386 OR (p_pty_acct_query_rec.instance_party_id IS NULL )
3387 OR (p_pty_acct_query_rec.party_account_id <> FND_API.G_MISS_NUM)
3388 OR (p_pty_acct_query_rec.party_account_id IS NULL)
3389 OR (p_pty_acct_query_rec.relationship_type_code <> FND_API.G_MISS_CHAR )
3390 OR (p_pty_acct_query_rec.relationship_type_code IS NULL ) THEN
3391
3392 l_party_acct_rec_exists := TRUE;
3393
3394 IF l_party_rec_exists then
3395
3396 IF l_instance_rec_exists THEN
3397 l_from_clause := l_from_clause||' , csi_ip_accounts c ';
3398 l_join_condition := l_join_condition||' AND b.instance_party_id = c.instance_party_id ';
3399
3400 ELSE
3401 l_from_clause := l_from_clause||' , csi_ip_accounts c ';
3402 l_join_condition := ' b.instance_party_id = c.instance_party_id ';
3403
3404 END IF;
3405
3406 ELSE
3407
3408 IF l_instance_rec_exists THEN
3409 l_from_clause := l_from_clause||' , csi_i_parties b , csi_ip_accounts c ';
3410 l_join_condition := ' a.instance_id = b.instance_id AND b.instance_party_id = c.instance_party_id ';
3411 ELSE
3412 l_from_clause := ' csi_i_parties b , csi_ip_accounts c ';
3413 l_join_condition := ' b.instance_party_id = c.instance_party_id ';
3414 l_select_columns := ' b.instance_id ';
3415 END IF;
3416
3417 END IF;
3418
3419 END IF;
3420
3421 IF (( p_instance_query_rec.instance_id IS NOT NULL) AND
3422 ( p_instance_query_rec.instance_id <> FND_API.G_MISS_NUM)) THEN
3423 IF x_where_clause IS NULL THEN
3424 x_where_clause := ' a.instance_id = :INSTANCE_ID ';
3425 ELSE
3426 x_where_clause := x_where_clause||' AND '||' a.instance_id = :INSTANCE_ID ';
3427 END IF;
3428 ELSIF ( p_instance_query_rec.instance_id IS NULL) THEN
3429 IF x_where_clause IS NULL THEN
3430 x_where_clause := ' a.instance_id IS NULL ';
3431 ELSE
3432 x_where_clause := x_where_clause||' AND '||' a.instance_id IS NULL ';
3433 END IF;
3434 END IF;
3435 IF (( p_instance_query_rec.inventory_item_id IS NOT NULL) AND
3436 ( p_instance_query_rec.inventory_item_id <> FND_API.G_MISS_NUM)) THEN
3437 IF x_where_clause IS NULL THEN
3438 x_where_clause := ' a.inventory_item_id = :INVENTORY_ITEM_ID ';
3439 ELSE
3440 x_where_clause := x_where_clause||' AND '||' a.inventory_item_id = :INVENTORY_ITEM_ID ';
3441 END IF;
3442 ELSIF ( p_instance_query_rec.inventory_item_id IS NULL) THEN
3443 IF x_where_clause IS NULL THEN
3444 x_where_clause := ' a.inventory_item_id IS NULL ';
3445 ELSE
3446 x_where_clause := x_where_clause||' AND '||' a.inventory_item_id IS NULL ';
3447 END IF;
3448 END IF;
3449 IF (( p_instance_query_rec.inventory_revision IS NOT NULL) AND
3450 ( p_instance_query_rec.inventory_revision <> FND_API.G_MISS_CHAR)) THEN
3451 IF x_where_clause IS NULL THEN
3452 x_where_clause := ' a.inventory_revision = :INVENTORY_REVISION ';
3453 ELSE
3454 x_where_clause := x_where_clause||' AND '||' a.inventory_revision = :INVENTORY_REVISION ';
3455
3456 END IF;
3457 ELSIF ( p_instance_query_rec.inventory_revision IS NULL) THEN
3458 IF x_where_clause IS NULL THEN
3459 x_where_clause := ' a.inventory_revision IS NULL ';
3460 ELSE
3461 x_where_clause := x_where_clause||' AND '||' a.inventory_revision IS NULL ';
3462 END IF;
3463 END IF;
3464 IF (( p_instance_query_rec.inv_master_organization_id IS NOT NULL) AND
3465 ( p_instance_query_rec.inv_master_organization_id <> FND_API.G_MISS_NUM)) THEN
3466 IF x_where_clause IS NULL THEN
3467 x_where_clause := ' a.inv_master_organization_id = :INV_MASTER_ORGANIZATION_ID ';
3468 ELSE
3469 x_where_clause := x_where_clause||' AND '||' a.inv_master_organization_id = :INV_MASTER_ORGANIZATION_ID ';
3470
3471 END IF;
3472 ELSIF ( p_instance_query_rec.inv_master_organization_id IS NULL) THEN
3473 IF x_where_clause IS NULL THEN
3474 x_where_clause := ' a.inv_master_organization_id IS NULL ';
3475 ELSE
3476 x_where_clause := x_where_clause||' AND '||' a.inv_master_organization_id IS NULL ';
3477 END IF;
3478 END IF;
3479
3480 IF (( p_instance_query_rec.serial_number IS NOT NULL) AND
3481 ( p_instance_query_rec.serial_number <> FND_API.G_MISS_CHAR)) THEN
3482 IF x_where_clause IS NULL THEN
3483 x_where_clause := ' a.serial_number = :serial_number ';
3484 ELSE
3485 x_where_clause := x_where_clause||' AND '||' a.serial_number = :serial_number ';
3486 END IF;
3487
3488 ELSIF ( p_instance_query_rec.serial_number IS NULL) THEN
3489 IF x_where_clause IS NULL THEN
3490 x_where_clause := ' a.serial_number IS NULL ';
3491 ELSE
3492 x_where_clause := x_where_clause||' AND '||' a.serial_number IS NULL ';
3493 END IF;
3494 END IF;
3495
3496 IF (( p_instance_query_rec.lot_number IS NOT NULL) AND
3497 ( p_instance_query_rec.lot_number <> FND_API.G_MISS_CHAR)) THEN
3498 IF x_where_clause IS NULL THEN
3499 x_where_clause := ' a.lot_number = :lot_number ';
3500 ELSE
3501 x_where_clause := x_where_clause||' AND '||' a.lot_number = :lot_number ';
3502 END IF;
3503
3504 ELSIF ( p_instance_query_rec.lot_number IS NULL) THEN
3505 IF x_where_clause IS NULL THEN
3506 x_where_clause := ' a.lot_number IS NULL ';
3507 ELSE
3508 x_where_clause := x_where_clause||' AND '||' a.lot_number IS NULL ';
3509
3510 END IF;
3511 END IF;
3512
3513 IF( (p_instance_query_rec.unit_of_measure IS NOT NULL)
3514 AND (p_instance_query_rec.unit_of_measure <> FND_API.G_MISS_CHAR)) THEN
3515 IF x_where_clause IS NULL THEN
3516 x_where_clause := ' a.unit_of_measure = :unit_of_measure ';
3517 ELSE
3518 x_where_clause := x_where_clause||' AND '||' a.unit_of_measure = :unit_of_measure ';
3519 END IF;
3520 ELSIF (p_instance_query_rec.unit_of_measure IS NULL) THEN
3521 IF x_where_clause IS NULL THEN
3522 x_where_clause := ' a.unit_of_measure IS NULL ';
3523 ELSE
3524 x_where_clause := x_where_clause||' AND '||' a.unit_of_measure IS NULL ';
3525 END IF;
3526 END IF;
3527
3528 IF (( p_instance_query_rec.instance_condition_id IS NOT NULL) AND
3529 ( p_instance_query_rec.instance_condition_id <> FND_API.G_MISS_NUM)) THEN
3530 IF x_where_clause IS NULL THEN
3531 x_where_clause := ' a.instance_condition_id = :instance_condition_id ';
3532 ELSE
3533 x_where_clause := x_where_clause||' AND '||' a.instance_condition_id = :instance_condition_id ';
3534 END IF;
3535 ELSIF ( p_instance_query_rec.instance_condition_id IS NULL) THEN
3536 IF x_where_clause IS NULL THEN
3537 x_where_clause := ' a.instance_condition_id IS NULL ';
3538 ELSE
3539 x_where_clause := x_where_clause||' AND '||' a.instance_condition_id IS NULL ';
3540 END IF;
3541
3542 END IF;
3543
3544 IF (( p_instance_query_rec.instance_status_id IS NOT NULL) AND
3545 ( p_instance_query_rec.instance_status_id <> FND_API.G_MISS_NUM)) THEN
3546 IF x_where_clause IS NULL THEN
3547 x_where_clause := ' a.instance_status_id = :instance_status_id ';
3548 ELSE
3549 x_where_clause := x_where_clause||' AND '||' a.instance_status_id = :instance_status_id ';
3550 END IF;
3551 ELSIF ( p_instance_query_rec.instance_status_id IS NULL) THEN
3552 IF x_where_clause IS NULL THEN
3553 x_where_clause := ' a.instance_status_id IS NULL ';
3554 ELSE
3555 x_where_clause := x_where_clause||' AND '||' a.instance_status_id IS NULL ';
3556 END IF;
3557 END IF;
3558
3559 IF (( p_instance_query_rec.system_id IS NOT NULL) AND
3560 ( p_instance_query_rec.system_id <> FND_API.G_MISS_NUM)) THEN
3561 IF x_where_clause IS NULL THEN
3562 x_where_clause := ' a.system_id = :system_id ';
3563 ELSE
3564 x_where_clause := x_where_clause||' AND '||' a.system_id = :system_id ';
3565 END IF;
3566
3567 ELSIF ( p_instance_query_rec.system_id IS NULL) THEN
3568 IF x_where_clause IS NULL THEN
3569 x_where_clause := ' a.system_id IS NULL ';
3570 ELSE
3571 x_where_clause := x_where_clause||' AND '||' a.system_id IS NULL ';
3572 END IF;
3573 END IF;
3574
3575 IF (( p_instance_query_rec.instance_type_code IS NOT NULL) AND
3576 ( p_instance_query_rec.instance_type_code <> FND_API.G_MISS_CHAR)) THEN
3577 IF x_where_clause IS NULL THEN
3578 x_where_clause := ' a.instance_type_code = :instance_type_code ';
3579 ELSE
3580 x_where_clause := x_where_clause||' AND '||' a.instance_type_code = :instance_type_code ';
3581 END IF;
3582 ELSIF ( p_instance_query_rec.instance_type_code IS NULL) THEN
3583 IF x_where_clause IS NULL THEN
3584 x_where_clause := ' a.instance_type_code IS NULL ';
3585 ELSE
3586 x_where_clause := x_where_clause||' AND '||' a.instance_type_code IS NULL ';
3587 END IF;
3588 END IF;
3589
3590 IF (( p_instance_query_rec.location_type_code IS NOT NULL) AND
3591 ( p_instance_query_rec.location_type_code <> FND_API.G_MISS_CHAR)) THEN
3592 IF x_where_clause IS NULL THEN
3593 x_where_clause := ' a.location_type_code = :location_type_code ';
3594 ELSE
3595 x_where_clause := x_where_clause||' AND '||' a.location_type_code = :location_type_code ';
3596 END IF;
3597 ELSIF ( p_instance_query_rec.location_type_code IS NULL) THEN
3598 IF x_where_clause IS NULL THEN
3599 x_where_clause := ' a.location_type_code IS NULL ';
3600 ELSE
3601 x_where_clause := x_where_clause||' AND '||' a.location_type_code IS NULL ';
3602 END IF;
3603 END IF;
3604
3605 IF (( p_instance_query_rec.location_id IS NOT NULL) AND
3606 ( p_instance_query_rec.location_id <> FND_API.G_MISS_NUM)) THEN
3607 IF x_where_clause IS NULL THEN
3608 x_where_clause := ' a.location_id = :location_id ';
3609 ELSE
3610 x_where_clause := x_where_clause||' AND '||' a.location_id = :location_id ';
3611 END IF;
3612 ELSIF ( p_instance_query_rec.location_id IS NULL) THEN
3613 IF x_where_clause IS NULL THEN
3614 x_where_clause := ' a.location_id IS NULL ';
3615 ELSE
3616 x_where_clause := x_where_clause||' AND '||' a.location_id IS NULL ';
3617 END IF;
3618 END IF;
3619
3620 IF (( p_instance_query_rec.inv_organization_id IS NOT NULL) AND
3621 ( p_instance_query_rec.inv_organization_id <> FND_API.G_MISS_NUM)) THEN
3622 IF x_where_clause IS NULL THEN
3623 x_where_clause := ' a.inv_organization_id = :inv_organization_id ';
3624 ELSE
3625 x_where_clause := x_where_clause||' AND '||' a.inv_organization_id = :inv_organization_id ';
3626 END IF;
3627 ELSIF ( p_instance_query_rec.inv_organization_id IS NULL) THEN
3628 IF x_where_clause IS NULL THEN
3629 x_where_clause := ' a.inv_organization_id IS NULL ';
3630 ELSE
3631 x_where_clause := x_where_clause||' AND '||' a.inv_organization_id IS NULL ';
3632 END IF;
3633 END IF;
3634
3635 IF (( p_instance_query_rec.inv_subinventory_name IS NOT NULL) AND
3636 ( p_instance_query_rec.inv_subinventory_name <> FND_API.G_MISS_CHAR)) THEN
3637 IF x_where_clause IS NULL THEN
3638 x_where_clause := ' a.inv_subinventory_name = :inv_subinventory_name ';
3639 ELSE
3640 x_where_clause := x_where_clause||' AND '||' a.inv_subinventory_name = :inv_subinventory_name ';
3641 END IF;
3642 ELSIF ( p_instance_query_rec.inv_subinventory_name IS NULL) THEN
3643 IF x_where_clause IS NULL THEN
3644 x_where_clause := ' a.inv_subinventory_name IS NULL ';
3645 ELSE
3646 x_where_clause := x_where_clause||' AND '||' a.inv_subinventory_name IS NULL ';
3647 END IF;
3648 END IF;
3649
3650 IF (( p_instance_query_rec.inv_locator_id IS NOT NULL) AND
3651 ( p_instance_query_rec.inv_locator_id <> FND_API.G_MISS_NUM)) THEN
3652 IF x_where_clause IS NULL THEN
3653 x_where_clause := ' a.inv_locator_id = :inv_locator_id ';
3654 ELSE
3655 x_where_clause := x_where_clause||' AND '||' a.inv_locator_id = :inv_locator_id ';
3656 END IF;
3657 ELSIF ( p_instance_query_rec.inv_locator_id IS NULL) THEN
3658 IF x_where_clause IS NULL THEN
3659 x_where_clause := ' a.inv_locator_id IS NULL ';
3660 ELSE
3661 x_where_clause := x_where_clause||' AND '||' a.inv_locator_id IS NULL ';
3662 END IF;
3663 END IF;
3664
3665 IF (( p_instance_query_rec.pa_project_id IS NOT NULL) AND
3666 ( p_instance_query_rec.pa_project_id <> FND_API.G_MISS_NUM)) THEN
3667 IF x_where_clause IS NULL THEN
3668 x_where_clause := ' a.pa_project_id = :pa_project_id ';
3669 ELSE
3670 x_where_clause := x_where_clause||' AND '||' a.pa_project_id = :pa_project_id ';
3671 END IF;
3672 ELSIF ( p_instance_query_rec.pa_project_id IS NULL) THEN
3673 IF x_where_clause IS NULL THEN
3674 x_where_clause := ' a.pa_project_id IS NULL ';
3675 ELSE
3676 x_where_clause := x_where_clause||' AND '||' a.pa_project_id IS NULL ';
3677 END IF;
3678 END IF;
3679
3680 IF (( p_instance_query_rec.pa_project_task_id IS NOT NULL) AND
3681 ( p_instance_query_rec.pa_project_task_id <> FND_API.G_MISS_NUM)) THEN
3682 IF x_where_clause IS NULL THEN
3683 x_where_clause := ' a.pa_project_task_id = :pa_project_task_id ';
3684 ELSE
3685 x_where_clause := x_where_clause||' AND '||' a.pa_project_task_id = :pa_project_task_id ';
3686 END IF;
3687 ELSIF ( p_instance_query_rec.pa_project_task_id IS NULL) THEN
3688 IF x_where_clause IS NULL THEN
3689 x_where_clause := ' a.pa_project_task_id IS NULL ';
3690 ELSE
3691 x_where_clause := x_where_clause||' AND '||' a.pa_project_task_id IS NULL ';
3692 END IF;
3693 END IF;
3694
3695 IF (( p_instance_query_rec.in_transit_order_line_id IS NOT NULL) AND
3696 ( p_instance_query_rec.in_transit_order_line_id <> FND_API.G_MISS_NUM)) THEN
3697 IF x_where_clause IS NULL THEN
3698 x_where_clause := ' a.in_transit_order_line_id = :in_transit_order_line_id ';
3699 ELSE
3700 x_where_clause := x_where_clause||' AND '||' a.in_transit_order_line_id = :in_transit_order_line_id ';
3701 END IF;
3702 ELSIF ( p_instance_query_rec.in_transit_order_line_id IS NULL) THEN
3703 IF x_where_clause IS NULL THEN
3704 x_where_clause := ' a.in_transit_order_line_id IS NULL ';
3705 ELSE
3706 x_where_clause := x_where_clause||' AND '||' a.in_transit_order_line_id IS NULL ';
3707 END IF;
3708 END IF;
3709
3710 IF (( p_instance_query_rec.wip_job_id IS NOT NULL) AND
3711 ( p_instance_query_rec.wip_job_id <> FND_API.G_MISS_NUM)) THEN
3712 IF x_where_clause IS NULL THEN
3713 x_where_clause := ' a.wip_job_id = :wip_job_id ';
3714 ELSE
3715 x_where_clause := x_where_clause||' AND '||' a.wip_job_id = :wip_job_id ';
3716 END IF;
3717 ELSIF ( p_instance_query_rec.wip_job_id IS NULL) THEN
3718 IF x_where_clause IS NULL THEN
3719 x_where_clause := ' a.wip_job_id IS NULL ';
3720 ELSE
3721 x_where_clause := x_where_clause||' AND '||' a.wip_job_id IS NULL ';
3722 END IF;
3723 END IF;
3724 IF (( p_instance_query_rec.po_order_line_id IS NOT NULL) AND
3725 ( p_instance_query_rec.po_order_line_id <> FND_API.G_MISS_NUM)) THEN
3726 IF x_where_clause IS NULL THEN
3727 x_where_clause := ' a.po_order_line_id = :po_order_line_id ';
3728 ELSE
3729 x_where_clause := x_where_clause||' AND '||' a.po_order_line_id = :po_order_line_id ';
3730 END IF;
3731 ELSIF ( p_instance_query_rec.po_order_line_id IS NULL) THEN
3732 IF x_where_clause IS NULL THEN
3733 x_where_clause := ' a.po_order_line_id IS NULL ';
3734 ELSE
3735 x_where_clause := x_where_clause||' AND '||' a.po_order_line_id IS NULL ';
3736 END IF;
3737 END IF;
3738
3739 IF (( p_instance_query_rec.last_oe_order_line_id IS NOT NULL) AND
3740 ( p_instance_query_rec.last_oe_order_line_id <> FND_API.G_MISS_NUM)) THEN
3741 IF x_where_clause IS NULL THEN
3742 x_where_clause := ' a.last_oe_order_line_id = :last_oe_order_line_id ';
3743 ELSE
3744 x_where_clause := x_where_clause||' AND '||' a.last_oe_order_line_id = :last_oe_order_line_id ';
3745 END IF;
3746 ELSIF ( p_instance_query_rec.last_oe_order_line_id IS NULL) THEN
3747 IF x_where_clause IS NULL THEN
3748 x_where_clause := ' a.last_oe_order_line_id IS NULL ';
3749 ELSE
3750 x_where_clause := x_where_clause||' AND '||' a.last_oe_order_line_id IS NULL ';
3751 END IF;
3752 END IF;
3753
3754 IF (( p_instance_query_rec.last_oe_rma_line_id IS NOT NULL) AND
3755 ( p_instance_query_rec.last_oe_rma_line_id <> FND_API.G_MISS_NUM)) THEN
3756 IF x_where_clause IS NULL THEN
3757 x_where_clause := ' a.last_oe_rma_line_id = :last_oe_rma_line_id ';
3758 ELSE
3759 x_where_clause := x_where_clause||' AND '||' a.last_oe_rma_line_id = :last_oe_rma_line_id ';
3760 END IF;
3761 ELSIF ( p_instance_query_rec.last_oe_rma_line_id IS NULL) THEN
3762 IF x_where_clause IS NULL THEN
3763 x_where_clause := ' a.last_oe_rma_line_id IS NULL ';
3764 ELSE
3765 x_where_clause := x_where_clause||' AND '||' a.last_oe_rma_line_id IS NULL ';
3766 END IF;
3767 END IF;
3768
3769 IF (( p_instance_query_rec.last_po_po_line_id IS NOT NULL) AND
3770 ( p_instance_query_rec.last_po_po_line_id <> FND_API.G_MISS_NUM)) THEN
3771 IF x_where_clause IS NULL THEN
3772 x_where_clause := ' a.last_po_po_line_id = :last_po_po_line_id ';
3773 ELSE
3774 x_where_clause := x_where_clause||' AND '||' a.last_po_po_line_id = :last_po_po_line_id ';
3775 END IF;
3776 ELSIF ( p_instance_query_rec.last_po_po_line_id IS NULL) THEN
3777 IF x_where_clause IS NULL THEN
3778 x_where_clause := ' a.last_po_po_line_id IS NULL ';
3779 ELSE
3780 x_where_clause := x_where_clause||' AND '||' a.last_po_po_line_id IS NULL ';
3781 END IF;
3782 END IF;
3783
3784 IF (( p_instance_query_rec.last_oe_po_number IS NOT NULL) AND
3785 ( p_instance_query_rec.last_oe_po_number <> FND_API.G_MISS_CHAR)) THEN
3786 IF x_where_clause IS NULL THEN
3787 x_where_clause := ' a.last_oe_po_number = :last_oe_po_number ';
3788 ELSE
3789 x_where_clause := x_where_clause||' AND '||' a.last_oe_po_number = :last_oe_po_number ';
3790 END IF;
3791 ELSIF ( p_instance_query_rec.last_oe_po_number IS NULL) THEN
3792 IF x_where_clause IS NULL THEN
3793 x_where_clause := ' a.last_oe_po_number IS NULL ';
3794 ELSE
3795 x_where_clause := x_where_clause||' AND '||' a.last_oe_po_number IS NULL ';
3796 END IF;
3797 END IF;
3798
3799 IF (( p_instance_query_rec.last_wip_job_id IS NOT NULL) AND
3800 ( p_instance_query_rec.last_wip_job_id <> FND_API.G_MISS_NUM)) THEN
3801 IF x_where_clause IS NULL THEN
3802 x_where_clause := ' a.last_wip_job_id = :last_wip_job_id ';
3803 ELSE
3804 x_where_clause := x_where_clause||' AND '||' a.last_wip_job_id = :last_wip_job_id ';
3805 END IF;
3806 ELSIF ( p_instance_query_rec.last_wip_job_id IS NULL) THEN
3807 IF x_where_clause IS NULL THEN
3808 x_where_clause := ' a.last_wip_job_id IS NULL ';
3809 ELSE
3810 x_where_clause := x_where_clause||' AND '||' a.last_wip_job_id IS NULL ';
3811 END IF;
3812 END IF;
3813
3814 IF (( p_instance_query_rec.last_pa_project_id IS NOT NULL) AND
3815 ( p_instance_query_rec.last_pa_project_id <> FND_API.G_MISS_NUM)) THEN
3816 IF x_where_clause IS NULL THEN
3817 x_where_clause := ' a.last_pa_project_id = :last_pa_project_id ';
3818 ELSE
3819 x_where_clause := x_where_clause||' AND '||' a.last_pa_project_id = :last_pa_project_id ';
3820 END IF;
3821 ELSIF ( p_instance_query_rec.last_pa_project_id IS NULL) THEN
3822 IF x_where_clause IS NULL THEN
3823 x_where_clause := ' a.last_pa_project_id IS NULL ';
3824 ELSE
3825 x_where_clause := x_where_clause||' AND '||' a.last_pa_project_id IS NULL ';
3826 END IF;
3827 END IF;
3828
3829 IF (( p_instance_query_rec.last_pa_task_id IS NOT NULL) AND
3830 ( p_instance_query_rec.last_pa_task_id <> FND_API.G_MISS_NUM)) THEN
3831 IF x_where_clause IS NULL THEN
3832 x_where_clause := ' a.last_pa_task_id = :last_pa_task_id ';
3833 ELSE
3834 x_where_clause := x_where_clause||' AND '||' a.last_pa_task_id = :last_pa_task_id ';
3835 END IF;
3836 ELSIF ( p_instance_query_rec.last_pa_task_id IS NULL) THEN
3837 IF x_where_clause IS NULL THEN
3838 x_where_clause := ' a.last_pa_task_id IS NULL ';
3839 ELSE
3840 x_where_clause := x_where_clause||' AND '||' a.last_pa_task_id IS NULL ';
3841 END IF;
3842 END IF;
3843
3844 IF (( p_instance_query_rec.last_oe_agreement_id IS NOT NULL) AND
3845 ( p_instance_query_rec.last_oe_agreement_id <> FND_API.G_MISS_NUM)) THEN
3846 IF x_where_clause IS NULL THEN
3847 x_where_clause := ' a.last_oe_agreement_id = :last_oe_agreement_id ';
3848 ELSE
3849 x_where_clause := x_where_clause||' AND '||' a.last_oe_agreement_id = :last_oe_agreement_id ';
3850 END IF;
3851 ELSIF ( p_instance_query_rec.last_oe_agreement_id IS NULL) THEN
3852 IF x_where_clause IS NULL THEN
3853 x_where_clause := ' a.last_oe_agreement_id IS NULL ';
3854 ELSE
3855 x_where_clause := x_where_clause||' AND '||' a.last_oe_agreement_id IS NULL ';
3856 END IF;
3857 END IF;
3858
3859 IF (( p_instance_query_rec.install_date IS NOT NULL) AND
3860 ( p_instance_query_rec.install_date <> FND_API.G_MISS_DATE)) THEN
3861 IF x_where_clause IS NULL THEN
3862 x_where_clause := ' a.install_date = :install_date ';
3863 ELSE
3864 x_where_clause := x_where_clause||' AND '||' a.install_date = :install_date ';
3865 END IF;
3866 ELSIF ( p_instance_query_rec.install_date IS NULL) THEN
3867 IF x_where_clause IS NULL THEN
3868 x_where_clause := ' a.install_date IS NULL ';
3869 ELSE
3870 x_where_clause := x_where_clause||' AND '||' a.install_date IS NULL ';
3871 END IF;
3872 END IF;
3873
3874 IF (( p_instance_query_rec.manually_created_flag IS NOT NULL) AND
3875 ( p_instance_query_rec.manually_created_flag <> FND_API.G_MISS_CHAR)) THEN
3876 IF x_where_clause IS NULL THEN
3877 x_where_clause := ' a.manually_created_flag = :manually_created_flag ';
3878 ELSE
3879 x_where_clause := x_where_clause||' AND '||' a.manually_created_flag = :manually_created_flag ';
3880 END IF;
3881 ELSIF ( p_instance_query_rec.manually_created_flag IS NULL) THEN
3882 IF x_where_clause IS NULL THEN
3883 x_where_clause := ' a.manually_created_flag IS NULL ';
3884 ELSE
3885 x_where_clause := x_where_clause||' AND '||' a.manually_created_flag IS NULL ';
3886 END IF;
3887 END IF;
3888
3889 IF (( p_instance_query_rec.return_by_date IS NOT NULL) AND
3890 ( p_instance_query_rec.return_by_date <> FND_API.G_MISS_DATE)) THEN
3891 IF x_where_clause IS NULL THEN
3892 x_where_clause := ' a.return_by_date = :return_by_date ';
3893 ELSE
3894 x_where_clause := x_where_clause||' AND '||' a.return_by_date = :return_by_date ';
3895 END IF;
3896 ELSIF ( p_instance_query_rec.return_by_date IS NULL) THEN
3897 IF x_where_clause IS NULL THEN
3898 x_where_clause := ' a.return_by_date IS NULL ';
3899 ELSE
3900 x_where_clause := x_where_clause||' AND '||' a.return_by_date IS NULL ';
3901 END IF;
3902 END IF;
3903
3904 IF (( p_instance_query_rec.instance_usage_code IS NOT NULL) AND
3905 ( p_instance_query_rec.instance_usage_code <> FND_API.G_MISS_CHAR)) THEN
3906 IF x_where_clause IS NULL THEN
3907 x_where_clause := ' a.instance_usage_code = :instance_usage_code ';
3908 ELSE
3909 x_where_clause := x_where_clause||' AND '||' a.instance_usage_code = :instance_usage_code ';
3910 END IF;
3911 ELSIF ( p_instance_query_rec.instance_usage_code IS NULL) THEN
3912 IF x_where_clause IS NULL THEN
3913 x_where_clause := ' a.instance_usage_code IS NULL ';
3914 ELSE
3915 x_where_clause := x_where_clause||' AND '||' a.instance_usage_code IS NULL ';
3916 END IF;
3917 END IF;
3918
3919 -- Following code has been added by sguthiva for att enhancements
3920
3921 IF (( p_instance_query_rec.config_inst_hdr_id IS NOT NULL) AND
3922 ( p_instance_query_rec.config_inst_hdr_id <> FND_API.G_MISS_NUM)) THEN
3923 IF x_where_clause IS NULL THEN
3924 x_where_clause := ' a.config_inst_hdr_id = :config_inst_hdr_id ';
3925 ELSE
3926 x_where_clause := x_where_clause||' AND '||' a.config_inst_hdr_id = :config_inst_hdr_id ';
3927 END IF;
3928 ELSIF ( p_instance_query_rec.config_inst_hdr_id IS NULL) THEN
3929 IF x_where_clause IS NULL THEN
3930 x_where_clause := ' a.config_inst_hdr_id IS NULL ';
3931 ELSE
3932 x_where_clause := x_where_clause||' AND '||' a.config_inst_hdr_id IS NULL ';
3933 END IF;
3934 END IF;
3935
3936 IF (( p_instance_query_rec.config_inst_rev_num IS NOT NULL) AND
3937 ( p_instance_query_rec.config_inst_rev_num <> FND_API.G_MISS_NUM)) THEN
3938 IF x_where_clause IS NULL THEN
3939 x_where_clause := ' a.config_inst_rev_num = :config_inst_rev_num ';
3940 ELSE
3941 x_where_clause := x_where_clause||' AND '||' a.config_inst_rev_num = :config_inst_rev_num ';
3942 END IF;
3943 ELSIF ( p_instance_query_rec.config_inst_rev_num IS NULL) THEN
3944 IF x_where_clause IS NULL THEN
3945 x_where_clause := ' a.config_inst_rev_num IS NULL ';
3946 ELSE
3947 x_where_clause := x_where_clause||' AND '||' a.config_inst_rev_num IS NULL ';
3948 END IF;
3949 END IF;
3950
3951 IF (( p_instance_query_rec.config_inst_item_id IS NOT NULL) AND
3952 ( p_instance_query_rec.config_inst_item_id <> FND_API.G_MISS_NUM)) THEN
3953 IF x_where_clause IS NULL THEN
3954 x_where_clause := ' a.config_inst_item_id = :config_inst_item_id ';
3955 ELSE
3956 x_where_clause := x_where_clause||' AND '||' a.config_inst_item_id = :config_inst_item_id ';
3957 END IF;
3958 ELSIF ( p_instance_query_rec.config_inst_item_id IS NULL) THEN
3959 IF x_where_clause IS NULL THEN
3960 x_where_clause := ' a.config_inst_item_id IS NULL ';
3961 ELSE
3962 x_where_clause := x_where_clause||' AND '||' a.config_inst_item_id IS NULL ';
3963 END IF;
3964 END IF;
3965
3966 IF (( p_instance_query_rec.instance_description IS NOT NULL) AND
3967 ( p_instance_query_rec.instance_description <> FND_API.G_MISS_CHAR)) THEN
3968 IF x_where_clause IS NULL THEN
3969 x_where_clause := ' a.instance_description = :instance_description ';
3970 ELSE
3971 x_where_clause := x_where_clause||' AND '||' a.instance_description = :instance_description ';
3972 END IF;
3973 ELSIF ( p_instance_query_rec.instance_description IS NULL) THEN
3974 IF x_where_clause IS NULL THEN
3975 x_where_clause := ' a.instance_description IS NULL ';
3976 ELSE
3977 x_where_clause := x_where_clause||' AND '||' a.instance_description IS NULL ';
3978 END IF;
3979 END IF;
3980
3981 -- End of addition for att
3982 -- Addition of columns for FA Integration
3983 IF (( p_instance_query_rec.operational_status_code IS NOT NULL) AND
3984 ( p_instance_query_rec.operational_status_code <> FND_API.G_MISS_CHAR)) THEN
3985 IF x_where_clause IS NULL THEN
3986 x_where_clause := ' a.operational_status_code = :operational_status_code ';
3987 ELSE
3988 x_where_clause := x_where_clause||' AND '||' a.operational_status_code = :operational_status_code ';
3989 END IF;
3990 ELSIF ( p_instance_query_rec.operational_status_code IS NULL) THEN
3991 IF x_where_clause IS NULL THEN
3992 x_where_clause := ' a.operational_status_code IS NULL ';
3993 ELSE
3994 x_where_clause := x_where_clause||' AND '||' a.operational_status_code IS NULL ';
3995 END IF;
3996 END IF;
3997 -- End addition of columns for FA Integration
3998
3999 IF (( p_instance_query_rec.actual_return_date IS NOT NULL) AND
4000 ( p_instance_query_rec.actual_return_date <> FND_API.G_MISS_DATE)) THEN
4001 IF x_where_clause IS NULL THEN
4002 x_where_clause := ' a.actual_return_date = :actual_return_date ';
4003 ELSE
4004 x_where_clause := x_where_clause||' AND '||' a.actual_return_date = :actual_return_date ';
4005 END IF;
4006 ELSIF ( p_instance_query_rec.actual_return_date IS NULL) THEN
4007 IF x_where_clause IS NULL THEN
4008 x_where_clause := ' a.actual_return_date IS NULL ';
4009 ELSE
4010 x_where_clause := x_where_clause||' AND '||' a.actual_return_date IS NULL ';
4011 END IF;
4012 END IF;
4013
4014 --sk added
4015 IF (( p_instance_query_rec.contract_number IS NOT NULL) AND
4016 ( p_instance_query_rec.contract_number <> FND_API.G_MISS_CHAR)) THEN
4017 BEGIN
4018 l_flag := nvl(FND_PROFILE.VALUE('CSI_CONTRACTS_ENABLED'), 'N');
4019 l_inp_rec.contract_number := p_instance_query_rec.contract_number;
4020 l_inp_rec.party_id := NULL;
4021 l_inp_rec.site_id := NULL;
4022 l_inp_rec.cust_acct_id := NULL;
4023 l_inp_rec.system_id := NULL;
4024 l_inp_rec.item_id := NULL;
4025 l_inp_rec.product_id := NULL;
4026 l_inp_rec.request_date := sysdate;
4027 l_inp_rec.validate_flag := l_flag;
4028 OKS_ENTITLEMENTS_PUB.GET_CONTRACTS( p_api_version => 1.0,
4029 p_init_msg_list => 'T',
4030 p_inp_rec => l_inp_rec,
4031 x_return_status => x_return_status,
4032 x_msg_count => x_msg_count,
4033 x_msg_data => x_msg_data,
4034 x_ent_contracts => l_ent_contracts);
4035
4036 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
4037 l_msg_index := 1;
4038 l_msg_count := x_msg_count;
4039 WHILE l_msg_count > 0 LOOP
4040 x_msg_data := FND_MSG_PUB.GET
4041 ( l_msg_index,
4042 FND_API.G_FALSE );
4043 csi_gen_utility_pvt.put_line( ' Error from OKS_ENTITLEMENTS_PUB.GET_CONTRACTS.. ');
4044 csi_gen_utility_pvt.put_line('MESSAGE DATA = '||x_msg_data);
4045 l_msg_index := l_msg_index + 1;
4046 l_msg_count := l_msg_count - 1;
4047 END LOOP;
4048 RAISE FND_API.G_EXC_ERROR;
4049 END IF;
4050 l_row_count := 1;
4051 l_rec_count := l_ent_contracts.FIRST;
4052 WHILE l_rec_count IS NOT NULL
4053 LOOP
4054 BEGIN
4055 l_covered_level_code := l_ent_contracts(l_rec_count).coverage_level_code ;
4056 l_coverage_level_id := l_ent_contracts(l_rec_count).coverage_level_id ;
4057 IF (l_covered_level_code = 'COVER_PROD') THEN
4058 IF l_covered_cp_id IS NULL THEN
4059
4060 l_covered_cp_id := to_char(l_coverage_level_id) ;
4061 ELSE
4062
4063 l_covered_cp_id := l_covered_cp_id ||','||to_char(l_coverage_level_id) ;
4064 END IF;
4065 END IF;
4066 l_rec_count := l_ent_contracts.NEXT(l_rec_count);
4067 EXCEPTION
4068 WHEN OTHERS THEN
4069 NULL;
4070 END;
4071 END LOOP;
4072 IF (l_covered_cp_id IS NOT NULL) THEN
4073 IF x_where_clause IS NULL THEN
4074 x_where_clause := ' a.instance_id IN ( ' ||l_covered_cp_id ||' )' ;
4075 ELSE
4076 x_where_clause := x_where_clause||' AND '||' a.instance_id IN ( ' ||l_covered_cp_id ||' )' ;
4077 END IF;
4078 ELSE
4079
4080 IF x_where_clause IS NULL THEN
4081 x_where_clause := ' a.instance_id IS NULL' ;
4082 ELSE
4083 x_where_clause := x_where_clause||' AND '||' a.instance_id IS NULL' ;
4084 END IF;
4085 END IF;
4086
4087 EXCEPTION
4088 WHEN OTHERS THEN
4089 NULL;
4090 END;
4091 END IF;
4092 --end sk addition
4093
4094 IF (( p_party_query_rec.instance_party_id IS NOT NULL) AND
4095 ( p_party_query_rec.instance_party_id <> FND_API.G_MISS_NUM)) THEN
4096 IF x_where_clause IS NULL THEN
4097 x_where_clause := ' b.instance_party_id = :instance_party_id ';
4098 ELSE
4099 x_where_clause := x_where_clause||' AND '||' b.instance_party_id = :instance_party_id ';
4100 END IF;
4101
4102 ELSIF ( p_party_query_rec.instance_party_id IS NULL) THEN
4103 IF x_where_clause IS NULL THEN
4104 x_where_clause := ' b.instance_party_id IS NULL ';
4105 ELSE
4106 x_where_clause := x_where_clause||' AND '||' b.instance_party_id IS NULL ';
4107 END IF;
4108 END IF;
4109
4110 IF ((p_party_query_rec.instance_id IS NOT NULL) AND
4111 (p_party_query_rec.instance_id <> FND_API.G_MISS_NUM)) THEN
4112 IF x_where_clause IS NULL THEN
4113 x_where_clause := ' b.instance_id = :instance_id ';
4114 ELSE
4115 x_where_clause := x_where_clause||' AND '||' b.instance_id = :instance_id ';
4116 END IF;
4117 ELSIF (p_party_query_rec.instance_id IS NULL) THEN
4118 IF x_where_clause IS NULL THEN
4119 x_where_clause := ' b.instance_id IS NULL ';
4120 ELSE
4121 x_where_clause := x_where_clause||' AND '||' b.instance_id IS NULL ';
4122 END IF;
4123 END IF;
4124
4125 IF ((p_party_query_rec.party_id IS NOT NULL) AND
4126 (p_party_query_rec.party_id <> FND_API.G_MISS_NUM)) THEN
4127 IF x_where_clause IS NULL THEN
4128 x_where_clause := ' b.party_id = :party_id ';
4129 ELSE
4130 x_where_clause := x_where_clause||' AND '||' b.party_id = :party_id ';
4131 END IF;
4132
4133 ELSIF (p_party_query_rec.party_id IS NULL) THEN
4134 IF x_where_clause IS NULL THEN
4135 x_where_clause := ' b.party_id IS NULL ';
4136 ELSE
4137 x_where_clause := x_where_clause||' AND '||' b.party_id IS NULL ';
4138 END IF;
4139 END IF ;
4140
4141 IF ((p_party_query_rec.relationship_type_code IS NOT NULL) AND
4142 (p_party_query_rec.relationship_type_code <> FND_API.G_MISS_CHAR)) THEN
4143 IF x_where_clause IS NULL THEN
4144 x_where_clause := ' b.relationship_type_code = :relationship_type_code ';
4145 ELSE
4146 x_where_clause := x_where_clause||' AND '||' b.relationship_type_code = :relationship_type_code ';
4147 END IF;
4148 ELSIF (p_party_query_rec.relationship_type_code IS NULL) THEN
4149 IF x_where_clause IS NULL THEN
4150 x_where_clause := ' b.relationship_type_code IS NULL ';
4151 ELSE
4152 x_where_clause := x_where_clause||' AND '||' b.relationship_type_code IS NULL ';
4153 END IF;
4154 END IF;
4155 -----
4156
4157 IF (( p_pty_acct_query_rec.ip_account_id IS NOT NULL) AND
4158 ( p_pty_acct_query_rec.ip_account_id <> FND_API.G_MISS_NUM)) THEN
4159 IF x_where_clause IS NULL THEN
4160 x_where_clause := x_where_clause||' c.ip_account_id = :ip_account_id ';
4161 ELSE
4162 x_where_clause := x_where_clause||' AND '||' c.ip_account_id = :ip_account_id ';
4163 END IF;
4164 ELSIF ( p_pty_acct_query_rec.ip_account_id IS NULL) THEN
4165 IF x_where_clause IS NULL THEN
4166 x_where_clause := x_where_clause||' c.ip_account_id IS NULL ';
4167 ELSE
4168 x_where_clause := x_where_clause||' AND '||' c.ip_account_id IS NULL ';
4169 END IF;
4170 END IF;
4171
4172 IF ((p_pty_acct_query_rec.instance_party_id IS NOT NULL) AND
4173 (p_pty_acct_query_rec.instance_party_id <> FND_API.G_MISS_NUM)) THEN
4174 IF x_where_clause IS NULL THEN
4175 x_where_clause := x_where_clause||' c.instance_party_id = :instance_party_id ';
4176 ELSE
4177 x_where_clause := x_where_clause||' AND '||' c.instance_party_id = :instance_party_id ';
4178 END IF;
4179 ELSIF (p_pty_acct_query_rec.instance_party_id IS NULL) THEN
4180 IF x_where_clause IS NULL THEN
4181 x_where_clause := x_where_clause||' c.instance_party_id IS NULL ';
4182 ELSE
4183 x_where_clause := x_where_clause||' AND '||' c.instance_party_id IS NULL ';
4184 END IF;
4185 END IF;
4186
4187 IF ((p_pty_acct_query_rec.party_account_id IS NOT NULL) AND
4188 (p_pty_acct_query_rec.party_account_id <> FND_API.G_MISS_NUM)) THEN
4189 IF x_where_clause IS NULL THEN
4190 x_where_clause := x_where_clause||' c.party_account_id = :party_account_id ';
4191 ELSE
4192 x_where_clause := x_where_clause||' AND '||' c.party_account_id = :party_account_id ';
4193 END IF;
4194 ELSIF (p_pty_acct_query_rec.party_account_id IS NULL) THEN
4195 IF x_where_clause IS NULL THEN
4196 x_where_clause := x_where_clause||' c.party_account_id IS NULL ';
4197 ELSE
4198 x_where_clause := x_where_clause||' AND '||' c.party_account_id IS NULL ';
4199 END IF;
4200 END IF ;
4201
4202 IF ((p_pty_acct_query_rec.relationship_type_code IS NOT NULL) AND
4203 (p_pty_acct_query_rec.relationship_type_code <> FND_API.G_MISS_CHAR)) THEN
4204 IF x_where_clause IS NULL THEN
4205 x_where_clause := x_where_clause||' c.relationship_type_code = :relationship_type_code ';
4206 ELSE
4207 x_where_clause := x_where_clause||' AND '||' c.relationship_type_code = :relationship_type_code ';
4208 END IF;
4209 ELSIF (p_pty_acct_query_rec.relationship_type_code IS NULL) THEN
4210 IF x_where_clause IS NULL THEN
4211 x_where_clause := x_where_clause||' c.relationship_type_code IS NULL ';
4212 ELSE
4213 x_where_clause := x_where_clause||' AND '||' c.relationship_type_code IS NULL ';
4214 END IF;
4215 END IF;
4216
4217 IF p_active_instance_only = 'T' THEN
4218 x_where_clause := x_where_clause||' AND '||'( a.active_end_date IS NULL '||' OR '||' a.active_end_date > SYSDATE)';
4219 END IF;
4220
4221 IF l_join_condition IS null THEN
4222 x_select_stmt := ' SELECT '||l_select_columns ||' from '||l_from_clause ||' where '||l_join_condition||x_where_clause;
4223 ELSE
4224 x_select_stmt := ' SELECT '||l_select_columns ||' from '||l_from_clause ||' where '||l_join_condition||' AND '||x_where_clause;
4225 END IF;
4226
4227 IF ((l_instance_rec_exists OR
4228 l_party_rec_exists OR
4229 l_party_acct_rec_exists) AND
4230 (p_transaction_id is not null)) then
4231 x_select_stmt := x_select_stmt || ' INTERSECT '||l_union_stmt;
4232
4233 ELSIF NOT(l_instance_rec_exists) AND
4234 NOT(l_party_rec_exists) AND
4235 NOT(l_party_acct_rec_exists) AND
4236 (p_transaction_id is not null) then
4237 x_select_stmt := l_union_stmt;
4238 END IF;
4239 END Gen_Inst_Where_Clause;
4240
4241 /*----------------------------------------------------------*/
4242 /* Procedure name: Get_Inst_Column_Values */
4243 /* Description : This procedure gets the column values */
4244 /* for the Dynamic SQL */
4245 /*----------------------------------------------------------*/
4246
4247 PROCEDURE Get_Instance_Col_Values
4248 (
4249 p_get_instance_cur_id IN NUMBER,
4250 x_instance_rec IN OUT NOCOPY csi_datastructures_pub.instance_header_rec
4251 ) IS
4252
4253 BEGIN
4254 dbms_sql.column_value(p_get_instance_cur_id, 1, x_instance_rec.instance_id);
4255 dbms_sql.column_value(p_get_instance_cur_id, 2, x_instance_rec.instance_number);
4256 dbms_sql.column_value(p_get_instance_cur_id, 3, x_instance_rec.external_reference);
4257 dbms_sql.column_value(p_get_instance_cur_id, 4, x_instance_rec.inventory_item_id);
4258 dbms_sql.column_value(p_get_instance_cur_id, 5, x_instance_rec.inventory_revision);
4259 dbms_sql.column_value(p_get_instance_cur_id, 6, x_instance_rec.inv_master_organization_id);
4260 dbms_sql.column_value(p_get_instance_cur_id, 7, x_instance_rec.serial_number);
4261 dbms_sql.column_value(p_get_instance_cur_id, 8, x_instance_rec.mfg_serial_number_flag);
4262 dbms_sql.column_value(p_get_instance_cur_id, 9, x_instance_rec.lot_number);
4263 dbms_sql.column_value(p_get_instance_cur_id, 10, x_instance_rec.quantity);
4264 dbms_sql.column_value(p_get_instance_cur_id, 11, x_instance_rec.unit_of_measure);
4265 dbms_sql.column_value(p_get_instance_cur_id, 12, x_instance_rec.accounting_class_code);
4266 dbms_sql.column_value(p_get_instance_cur_id, 13, x_instance_rec.instance_condition_id);
4267 dbms_sql.column_value(p_get_instance_cur_id, 14, x_instance_rec.instance_status_id);
4268 dbms_sql.column_value(p_get_instance_cur_id, 15, x_instance_rec.customer_view_flag);
4269 dbms_sql.column_value(p_get_instance_cur_id, 16, x_instance_rec.merchant_view_flag);
4270 dbms_sql.column_value(p_get_instance_cur_id, 17, x_instance_rec.sellable_flag);
4271 dbms_sql.column_value(p_get_instance_cur_id, 18, x_instance_rec.system_id);
4272 dbms_sql.column_value(p_get_instance_cur_id, 19, x_instance_rec.instance_type_code);
4273 dbms_sql.column_value(p_get_instance_cur_id, 20, x_instance_rec.active_start_date);
4274 dbms_sql.column_value(p_get_instance_cur_id, 21, x_instance_rec.active_end_date);
4275 dbms_sql.column_value(p_get_instance_cur_id, 22, x_instance_rec.location_type_code);
4276 dbms_sql.column_value(p_get_instance_cur_id, 23, x_instance_rec.location_id);
4277 dbms_sql.column_value(p_get_instance_cur_id, 24, x_instance_rec.inv_organization_id);
4278 dbms_sql.column_value(p_get_instance_cur_id, 25, x_instance_rec.inv_subinventory_name);
4279 dbms_sql.column_value(p_get_instance_cur_id, 26, x_instance_rec.inv_locator_id);
4280 dbms_sql.column_value(p_get_instance_cur_id, 27, x_instance_rec.pa_project_id);
4281 dbms_sql.column_value(p_get_instance_cur_id, 28, x_instance_rec.pa_project_task_id);
4282 dbms_sql.column_value(p_get_instance_cur_id, 29, x_instance_rec.in_transit_order_line_id);
4283 dbms_sql.column_value(p_get_instance_cur_id, 30, x_instance_rec.wip_job_id);
4284 dbms_sql.column_value(p_get_instance_cur_id, 31, x_instance_rec.po_order_line_id);
4285 dbms_sql.column_value(p_get_instance_cur_id, 32, x_instance_rec.last_oe_order_line_id);
4286 dbms_sql.column_value(p_get_instance_cur_id, 33, x_instance_rec.last_oe_rma_line_id);
4287 dbms_sql.column_value(p_get_instance_cur_id, 34, x_instance_rec.last_po_po_line_id);
4288 dbms_sql.column_value(p_get_instance_cur_id, 35, x_instance_rec.last_oe_po_number);
4289 dbms_sql.column_value(p_get_instance_cur_id, 36, x_instance_rec.last_wip_job_id);
4290 dbms_sql.column_value(p_get_instance_cur_id, 37, x_instance_rec.last_pa_project_id);
4291 dbms_sql.column_value(p_get_instance_cur_id, 38, x_instance_rec.last_pa_task_id);
4292 dbms_sql.column_value(p_get_instance_cur_id, 39, x_instance_rec.last_oe_agreement_id);
4293 dbms_sql.column_value(p_get_instance_cur_id, 40, x_instance_rec.install_date);
4294 dbms_sql.column_value(p_get_instance_cur_id, 41, x_instance_rec.manually_created_flag);
4295 dbms_sql.column_value(p_get_instance_cur_id, 42, x_instance_rec.return_by_date);
4296 dbms_sql.column_value(p_get_instance_cur_id, 43, x_instance_rec.actual_return_date);
4297 dbms_sql.column_value(p_get_instance_cur_id, 44, x_instance_rec.creation_complete_flag);
4298 dbms_sql.column_value(p_get_instance_cur_id, 45, x_instance_rec.completeness_flag);
4299 dbms_sql.column_value(p_get_instance_cur_id, 46, x_instance_rec.context);
4300 dbms_sql.column_value(p_get_instance_cur_id, 47, x_instance_rec.attribute1);
4301 dbms_sql.column_value(p_get_instance_cur_id, 48, x_instance_rec.attribute2);
4302 dbms_sql.column_value(p_get_instance_cur_id, 49, x_instance_rec.attribute3);
4303 dbms_sql.column_value(p_get_instance_cur_id, 50, x_instance_rec.attribute4);
4304 dbms_sql.column_value(p_get_instance_cur_id, 51, x_instance_rec.attribute5);
4305 dbms_sql.column_value(p_get_instance_cur_id, 52, x_instance_rec.attribute6);
4306 dbms_sql.column_value(p_get_instance_cur_id, 53, x_instance_rec.attribute7);
4307 dbms_sql.column_value(p_get_instance_cur_id, 54, x_instance_rec.attribute8);
4308 dbms_sql.column_value(p_get_instance_cur_id, 55, x_instance_rec.attribute9);
4309 dbms_sql.column_value(p_get_instance_cur_id, 56, x_instance_rec.attribute10);
4310 dbms_sql.column_value(p_get_instance_cur_id, 57, x_instance_rec.attribute11);
4311 dbms_sql.column_value(p_get_instance_cur_id, 58, x_instance_rec.attribute12);
4312 dbms_sql.column_value(p_get_instance_cur_id, 59, x_instance_rec.attribute13);
4313 dbms_sql.column_value(p_get_instance_cur_id, 60, x_instance_rec.attribute14);
4314 dbms_sql.column_value(p_get_instance_cur_id, 61, x_instance_rec.attribute15);
4315 dbms_sql.column_value(p_get_instance_cur_id, 62, x_instance_rec.object_version_number);
4316 dbms_sql.column_value(p_get_instance_cur_id, 63, x_instance_rec.last_txn_line_detail_id);
4317 dbms_sql.column_value(p_get_instance_cur_id, 64, x_instance_rec.install_location_type_code);
4318 dbms_sql.column_value(p_get_instance_cur_id, 65, x_instance_rec.install_location_id);
4319 dbms_sql.column_value(p_get_instance_cur_id, 66, x_instance_rec.instance_usage_code);
4320 dbms_sql.column_value(p_get_instance_cur_id, 67, x_instance_rec.vld_organization_id);
4321 dbms_sql.column_value(p_get_instance_cur_id, 68, x_instance_rec.config_inst_hdr_id);
4322 dbms_sql.column_value(p_get_instance_cur_id, 69, x_instance_rec.config_inst_rev_num);
4323 dbms_sql.column_value(p_get_instance_cur_id, 70, x_instance_rec.config_inst_item_id);
4324 dbms_sql.column_value(p_get_instance_cur_id, 71, x_instance_rec.config_valid_status);
4325 dbms_sql.column_value(p_get_instance_cur_id, 72, x_instance_rec.instance_description);
4326 --start of code for eam integration columns--
4327 dbms_sql.column_value(p_get_instance_cur_id, 73, x_instance_rec.network_asset_flag);
4328 dbms_sql.column_value(p_get_instance_cur_id, 74, x_instance_rec.maintainable_flag);
4329 dbms_sql.column_value(p_get_instance_cur_id, 75, x_instance_rec.pn_location_id);
4330 dbms_sql.column_value(p_get_instance_cur_id, 76, x_instance_rec.asset_criticality_code);
4331 dbms_sql.column_value(p_get_instance_cur_id, 77, x_instance_rec.category_id);
4332 dbms_sql.column_value(p_get_instance_cur_id, 78, x_instance_rec.equipment_gen_object_id);
4333 dbms_sql.column_value(p_get_instance_cur_id, 79, x_instance_rec.instantiation_flag);
4334 dbms_sql.column_value(p_get_instance_cur_id, 80, x_instance_rec.linear_location_id);
4335 dbms_sql.column_value(p_get_instance_cur_id, 81, x_instance_rec.operational_log_flag);
4336 dbms_sql.column_value(p_get_instance_cur_id, 82, x_instance_rec.checkin_status);
4337 dbms_sql.column_value(p_get_instance_cur_id, 83, x_instance_rec.supplier_warranty_exp_date);
4338 dbms_sql.column_value(p_get_instance_cur_id, 84, x_instance_rec.attribute16);
4339 dbms_sql.column_value(p_get_instance_cur_id, 85, x_instance_rec.attribute17);
4340 dbms_sql.column_value(p_get_instance_cur_id, 86, x_instance_rec.attribute18);
4341 dbms_sql.column_value(p_get_instance_cur_id, 87, x_instance_rec.attribute19);
4342 dbms_sql.column_value(p_get_instance_cur_id, 88, x_instance_rec.attribute20);
4343 dbms_sql.column_value(p_get_instance_cur_id, 89, x_instance_rec.attribute21);
4344 dbms_sql.column_value(p_get_instance_cur_id, 90, x_instance_rec.attribute22);
4345 dbms_sql.column_value(p_get_instance_cur_id, 91, x_instance_rec.attribute23);
4346 dbms_sql.column_value(p_get_instance_cur_id, 92, x_instance_rec.attribute24);
4347 dbms_sql.column_value(p_get_instance_cur_id, 93, x_instance_rec.attribute25);
4348 dbms_sql.column_value(p_get_instance_cur_id, 94, x_instance_rec.attribute26);
4349 dbms_sql.column_value(p_get_instance_cur_id, 95, x_instance_rec.attribute27);
4350 dbms_sql.column_value(p_get_instance_cur_id, 96, x_instance_rec.attribute28);
4351 dbms_sql.column_value(p_get_instance_cur_id, 97, x_instance_rec.attribute29);
4352 dbms_sql.column_value(p_get_instance_cur_id, 98, x_instance_rec.attribute30);
4353 --end of code for eam integration columns--
4354
4355 -- Addition of columns for FA Integration
4356 dbms_sql.column_value(p_get_instance_cur_id, 99, x_instance_rec.purchase_unit_price);
4357 dbms_sql.column_value(p_get_instance_cur_id, 100, x_instance_rec.purchase_currency_code);
4358 dbms_sql.column_value(p_get_instance_cur_id, 101, x_instance_rec.payables_unit_price);
4359 dbms_sql.column_value(p_get_instance_cur_id, 102, x_instance_rec.payables_currency_code);
4360 dbms_sql.column_value(p_get_instance_cur_id, 103, x_instance_rec.sales_unit_price);
4361 dbms_sql.column_value(p_get_instance_cur_id, 104, x_instance_rec.sales_currency_code);
4362 dbms_sql.column_value(p_get_instance_cur_id, 105, x_instance_rec.operational_status_code);
4363 -- End addition of columns for FA Integration
4364
4365 END Get_Instance_Col_Values;
4366
4367
4368 /*-------------------------------------------------------*/
4369 /* Procedure name: Define_Inst_Columns */
4370 /* Description : This procedure defines the columns */
4371 /* for the Dynamic SQL */
4372 /*-------------------------------------------------------*/
4373
4374 PROCEDURE Define_Instance_Columns
4375 (
4376 p_get_instance_cur_id IN NUMBER
4377 ) IS
4378
4379 l_instance_rec csi_datastructures_pub.instance_header_rec;
4380
4381 BEGIN
4382 dbms_sql.define_column(p_get_instance_cur_id, 1, l_instance_rec.instance_id);
4383 dbms_sql.define_column(p_get_instance_cur_id, 2, l_instance_rec.instance_number,30);
4384 dbms_sql.define_column(p_get_instance_cur_id, 3, l_instance_rec.external_reference,30);
4385 dbms_sql.define_column(p_get_instance_cur_id, 4, l_instance_rec.inventory_item_id);
4386 dbms_sql.define_column(p_get_instance_cur_id, 5, l_instance_rec.inventory_revision,3);
4387 dbms_sql.define_column(p_get_instance_cur_id, 6, l_instance_rec.inv_master_organization_id);
4388 dbms_sql.define_column(p_get_instance_cur_id, 7, l_instance_rec.serial_number,30);
4389 dbms_sql.define_column(p_get_instance_cur_id, 8, l_instance_rec.mfg_serial_number_flag,1);
4390 dbms_sql.define_column(p_get_instance_cur_id, 9, l_instance_rec.lot_number,80);
4391 dbms_sql.define_column(p_get_instance_cur_id, 10, l_instance_rec.quantity);
4392 dbms_sql.define_column(p_get_instance_cur_id, 11, l_instance_rec.unit_of_measure,3);
4393 dbms_sql.define_column(p_get_instance_cur_id, 12, l_instance_rec.accounting_class_code,10);
4394 dbms_sql.define_column(p_get_instance_cur_id, 13, l_instance_rec.instance_condition_id);
4395 dbms_sql.define_column(p_get_instance_cur_id, 14, l_instance_rec.instance_status_id);
4396 dbms_sql.define_column(p_get_instance_cur_id, 15, l_instance_rec.customer_view_flag,1);
4397 dbms_sql.define_column(p_get_instance_cur_id, 16, l_instance_rec.merchant_view_flag,1);
4398 dbms_sql.define_column(p_get_instance_cur_id, 17, l_instance_rec.sellable_flag,1);
4399 dbms_sql.define_column(p_get_instance_cur_id, 18, l_instance_rec.system_id);
4400 dbms_sql.define_column(p_get_instance_cur_id, 19, l_instance_rec.instance_type_code,30);
4401 dbms_sql.define_column(p_get_instance_cur_id, 20, l_instance_rec.active_start_date);
4402 dbms_sql.define_column(p_get_instance_cur_id, 21, l_instance_rec.active_end_date);
4403 dbms_sql.define_column(p_get_instance_cur_id, 22, l_instance_rec.location_type_code,30);
4404 dbms_sql.define_column(p_get_instance_cur_id, 23, l_instance_rec.location_id);
4405 dbms_sql.define_column(p_get_instance_cur_id, 24, l_instance_rec.inv_organization_id);
4406 dbms_sql.define_column(p_get_instance_cur_id, 25, l_instance_rec.inv_subinventory_name,10);
4407 dbms_sql.define_column(p_get_instance_cur_id, 26, l_instance_rec.inv_locator_id);
4408 dbms_sql.define_column(p_get_instance_cur_id, 27, l_instance_rec.pa_project_id);
4409 dbms_sql.define_column(p_get_instance_cur_id, 28, l_instance_rec.pa_project_task_id);
4410 dbms_sql.define_column(p_get_instance_cur_id, 29, l_instance_rec.in_transit_order_line_id);
4411 dbms_sql.define_column(p_get_instance_cur_id, 30, l_instance_rec.wip_job_id);
4412 dbms_sql.define_column(p_get_instance_cur_id, 31, l_instance_rec.po_order_line_id);
4413 dbms_sql.define_column(p_get_instance_cur_id, 32, l_instance_rec.last_oe_order_line_id);
4414 dbms_sql.define_column(p_get_instance_cur_id, 33, l_instance_rec.last_oe_rma_line_id);
4415 dbms_sql.define_column(p_get_instance_cur_id, 34, l_instance_rec.last_po_po_line_id);
4416 dbms_sql.define_column(p_get_instance_cur_id, 35, l_instance_rec.last_oe_po_number,30);
4417 dbms_sql.define_column(p_get_instance_cur_id, 36, l_instance_rec.last_wip_job_id);
4418 dbms_sql.define_column(p_get_instance_cur_id, 37, l_instance_rec.last_pa_project_id);
4419 dbms_sql.define_column(p_get_instance_cur_id, 38, l_instance_rec.last_pa_task_id);
4420 dbms_sql.define_column(p_get_instance_cur_id, 39, l_instance_rec.last_oe_agreement_id);
4421 dbms_sql.define_column(p_get_instance_cur_id, 40, l_instance_rec.install_date);
4422 dbms_sql.define_column(p_get_instance_cur_id, 41, l_instance_rec.manually_created_flag,1);
4423 dbms_sql.define_column(p_get_instance_cur_id, 42, l_instance_rec.return_by_date);
4424 dbms_sql.define_column(p_get_instance_cur_id, 43, l_instance_rec.actual_return_date);
4425 dbms_sql.define_column(p_get_instance_cur_id, 44, l_instance_rec.creation_complete_flag,1);
4426 dbms_sql.define_column(p_get_instance_cur_id, 45, l_instance_rec.completeness_flag,1);
4427 dbms_sql.define_column(p_get_instance_cur_id, 46, l_instance_rec.context,30);
4428 dbms_sql.define_column(p_get_instance_cur_id, 47, l_instance_rec.attribute1,150);
4429 dbms_sql.define_column(p_get_instance_cur_id, 48, l_instance_rec.attribute2,150);
4430 dbms_sql.define_column(p_get_instance_cur_id, 49, l_instance_rec.attribute3,150);
4431 dbms_sql.define_column(p_get_instance_cur_id, 50, l_instance_rec.attribute4,150);
4432 dbms_sql.define_column(p_get_instance_cur_id, 51, l_instance_rec.attribute5,150);
4433 dbms_sql.define_column(p_get_instance_cur_id, 52, l_instance_rec.attribute6,150);
4434 dbms_sql.define_column(p_get_instance_cur_id, 53, l_instance_rec.attribute7,150);
4435 dbms_sql.define_column(p_get_instance_cur_id, 54, l_instance_rec.attribute8,150);
4436 dbms_sql.define_column(p_get_instance_cur_id, 55, l_instance_rec.attribute9,150);
4437 dbms_sql.define_column(p_get_instance_cur_id, 56, l_instance_rec.attribute10,150);
4438 dbms_sql.define_column(p_get_instance_cur_id, 57, l_instance_rec.attribute11,150);
4439 dbms_sql.define_column(p_get_instance_cur_id, 58, l_instance_rec.attribute12,150);
4440 dbms_sql.define_column(p_get_instance_cur_id, 59, l_instance_rec.attribute13,150);
4441 dbms_sql.define_column(p_get_instance_cur_id, 60, l_instance_rec.attribute14,150);
4442 dbms_sql.define_column(p_get_instance_cur_id, 61, l_instance_rec.attribute15,150);
4443 dbms_sql.define_column(p_get_instance_cur_id, 62, l_instance_rec.object_version_number);
4444 dbms_sql.define_column(p_get_instance_cur_id, 63, l_instance_rec.last_txn_line_detail_id);
4445 dbms_sql.define_column(p_get_instance_cur_id, 64, l_instance_rec.install_location_type_code,30);
4446 dbms_sql.define_column(p_get_instance_cur_id, 65, l_instance_rec.install_location_id);
4447 dbms_sql.define_column(p_get_instance_cur_id, 66, l_instance_rec.instance_usage_code,30);
4448 dbms_sql.define_column(p_get_instance_cur_id, 67, l_instance_rec.vld_organization_id);
4449 dbms_sql.define_column(p_get_instance_cur_id, 68, l_instance_rec.config_inst_hdr_id);
4450 dbms_sql.define_column(p_get_instance_cur_id, 69, l_instance_rec.config_inst_rev_num);
4451 dbms_sql.define_column(p_get_instance_cur_id, 70, l_instance_rec.config_inst_item_id);
4452 dbms_sql.define_column(p_get_instance_cur_id, 71, l_instance_rec.config_valid_status,30);
4453 dbms_sql.define_column(p_get_instance_cur_id, 72, l_instance_rec.instance_description,240);
4454 --start of code for eam integration columns--
4455 dbms_sql.define_column(p_get_instance_cur_id, 73, l_instance_rec.network_asset_flag,1);
4456 dbms_sql.define_column(p_get_instance_cur_id, 74, l_instance_rec.maintainable_flag,1);
4457 dbms_sql.define_column(p_get_instance_cur_id, 75, l_instance_rec.pn_location_id);
4458 dbms_sql.define_column(p_get_instance_cur_id, 76, l_instance_rec.asset_criticality_code,30);
4459 dbms_sql.define_column(p_get_instance_cur_id, 77, l_instance_rec.category_id);
4460 dbms_sql.define_column(p_get_instance_cur_id, 78, l_instance_rec.equipment_gen_object_id);
4461 dbms_sql.define_column(p_get_instance_cur_id, 79, l_instance_rec.instantiation_flag,1);
4462 dbms_sql.define_column(p_get_instance_cur_id, 80, l_instance_rec.linear_location_id);
4463 dbms_sql.define_column(p_get_instance_cur_id, 81, l_instance_rec.operational_log_flag,1);
4464 dbms_sql.define_column(p_get_instance_cur_id, 82, l_instance_rec.checkin_status);
4465 dbms_sql.define_column(p_get_instance_cur_id, 83, l_instance_rec.supplier_warranty_exp_date);
4466 dbms_sql.define_column(p_get_instance_cur_id, 84, l_instance_rec.attribute16,240);
4467 dbms_sql.define_column(p_get_instance_cur_id, 85, l_instance_rec.attribute17,240);
4468 dbms_sql.define_column(p_get_instance_cur_id, 86, l_instance_rec.attribute18,240);
4469 dbms_sql.define_column(p_get_instance_cur_id, 87, l_instance_rec.attribute19,240);
4470 dbms_sql.define_column(p_get_instance_cur_id, 88, l_instance_rec.attribute20,240);
4471 dbms_sql.define_column(p_get_instance_cur_id, 89, l_instance_rec.attribute21,240);
4472 dbms_sql.define_column(p_get_instance_cur_id, 90, l_instance_rec.attribute22,240);
4473 dbms_sql.define_column(p_get_instance_cur_id, 91, l_instance_rec.attribute23,240);
4474 dbms_sql.define_column(p_get_instance_cur_id, 92, l_instance_rec.attribute24,240);
4475 dbms_sql.define_column(p_get_instance_cur_id, 93, l_instance_rec.attribute25,240);
4476 dbms_sql.define_column(p_get_instance_cur_id, 94, l_instance_rec.attribute26,240);
4477 dbms_sql.define_column(p_get_instance_cur_id, 95, l_instance_rec.attribute27,240);
4478 dbms_sql.define_column(p_get_instance_cur_id, 96, l_instance_rec.attribute28,240);
4479 dbms_sql.define_column(p_get_instance_cur_id, 97, l_instance_rec.attribute29,240);
4480 dbms_sql.define_column(p_get_instance_cur_id, 98, l_instance_rec.attribute30,240);
4481 --end of code for eam integration columns--
4482 -- Addition of columns for FA Integration
4483 dbms_sql.define_column(p_get_instance_cur_id, 99, l_instance_rec.purchase_unit_price);
4484 dbms_sql.define_column(p_get_instance_cur_id, 100, l_instance_rec.purchase_currency_code,15);
4485 dbms_sql.define_column(p_get_instance_cur_id, 101, l_instance_rec.payables_unit_price);
4486 dbms_sql.define_column(p_get_instance_cur_id, 102, l_instance_rec.payables_currency_code,15);
4487 dbms_sql.define_column(p_get_instance_cur_id, 103, l_instance_rec.sales_unit_price);
4488 dbms_sql.define_column(p_get_instance_cur_id, 104, l_instance_rec.sales_currency_code,15);
4489 dbms_sql.define_column(p_get_instance_cur_id, 105, l_instance_rec.operational_status_code,30);
4490 -- End addition of columns for FA Integration
4491
4492 END Define_Instance_Columns;
4493
4494 /*---------------------------------------------------------*/
4495 /* Procedure name: Bind_Inst_variable */
4496 /* Description : Procedure used to generate the where */
4497 /* clause for Item Instances */
4498 /*---------------------------------------------------------*/
4499
4500 PROCEDURE Bind_Instance_variable
4501 (
4502 p_instance_rec IN csi_datastructures_pub.instance_header_rec,
4503 p_cur_get_instance_rel IN NUMBER
4504 ) IS
4505
4506 BEGIN
4507
4508 IF( (p_instance_rec.instance_id IS NOT NULL)
4509 AND (p_instance_rec.instance_id <> FND_API.G_MISS_NUM)) THEN
4510 DBMS_SQL.BIND_VARIABLE(p_cur_get_instance_rel, ':INSTANCE_ID', p_instance_rec.instance_id);
4511 END IF;
4512
4513 END Bind_Instance_variable;
4514
4515
4516 /*--------------------------------------------------*/
4517 /* procedure name: create_item_instance */
4518 /* description : procedure used to */
4519 /* create item instances */
4520 /* */
4521 /*--------------------------------------------------*/
4522
4523 PROCEDURE create_item_instance
4524 (
4525 p_api_version IN NUMBER
4526 ,p_commit IN VARCHAR2
4527 ,p_init_msg_list IN VARCHAR2
4528 ,p_validation_level IN NUMBER
4529 ,p_instance_rec IN OUT NOCOPY csi_datastructures_pub.instance_rec
4530 ,p_txn_rec IN OUT NOCOPY csi_datastructures_pub.transaction_rec
4531 ,p_party_tbl IN OUT NOCOPY csi_datastructures_pub.party_tbl
4532 ,p_asset_tbl IN OUT NOCOPY csi_datastructures_pub.instance_asset_tbl
4533 ,x_return_status OUT NOCOPY VARCHAR2
4534 ,x_msg_count OUT NOCOPY NUMBER
4535 ,x_msg_data OUT NOCOPY VARCHAR2
4536 ,p_item_attribute_tbl IN OUT NOCOPY csi_item_instance_pvt.item_attribute_tbl
4537 ,p_location_tbl IN OUT NOCOPY csi_item_instance_pvt.location_tbl
4538 ,p_generic_id_tbl IN OUT NOCOPY csi_item_instance_pvt.generic_id_tbl
4539 ,p_lookup_tbl IN OUT NOCOPY csi_item_instance_pvt.lookup_tbl
4540 ,p_ins_count_rec IN OUT NOCOPY csi_item_instance_pvt.ins_count_rec
4541 ,p_called_from_grp IN VARCHAR2
4542 ,p_internal_party_id IN NUMBER
4543 )
4544 IS
4545
4546 l_api_name CONSTANT VARCHAR2(30) := 'CREATE_ITEM_INSTANCE_PVT';
4547 l_api_version CONSTANT NUMBER := 1.0;
4548 l_debug_level NUMBER;
4549 l_instance_id NUMBER;
4550 l_party_owner_rec csi_datastructures_pub.party_rec;
4551 l_csi_item_instance_h_id NUMBER;
4552 l_old_oks_cp_rec OKS_IBINT_PUB.CP_REC_TYPE;
4553 l_new_oks_cp_rec OKS_IBINT_PUB.CP_REC_TYPE;
4554 l_ctr_grp_id_template NUMBER;
4555 l_ctr_grp_id_instance NUMBER;
4556 l_ctr_id_template csi_counter_template_pub.ctr_template_autoinst_tbl;
4557 l_ctr_id_instance csi_counter_template_pub.counter_autoinstantiate_tbl;
4558 l_msg_count NUMBER;
4559 l_msg_data VARCHAR2(100);
4560 l_msg_index NUMBER;
4561 l_line_count NUMBER;
4562 l_version_label_rec csi_datastructures_pub.version_label_rec;
4563 l_process_flag BOOLEAN := TRUE;
4564 l_return_value BOOLEAN;
4565 l_owner NUMBER;
4566 l_owner_count NUMBER := 0;
4567 l_int_party_id NUMBER;
4568 l_serial_control NUMBER;
4569 l_lot_control NUMBER;
4570 l_shelf_life_code NUMBER;
4571 l_instance_status VARCHAR2(50);
4572 l_contracts_status VARCHAR2(3);
4573 l_account_id NUMBER;
4574 l_version_label VARCHAR2(30);
4575 l_sys_date DATE := SYSDATE;
4576 l_last_vld_organization_id NUMBER;
4577 l_temp VARCHAR2(1);
4578 l_base_item_id NUMBER;
4579 l_ctr_association_id NUMBER;
4580 l_object_version_number NUMBER;
4581 -- l_desc_flex CS_COUNTERS_EXT_PVT.DFF_Rec_Type;
4582 -- Counter ref r12 changes
4583 l_desc_flex csi_ctr_datastructures_pub.dff_rec_type;
4584 l_ctr_item_associations_rec csi_ctr_datastructures_pub.ctr_item_associations_rec;
4585 l_trackable_flag VARCHAR2(1);
4586 l_uom_code VARCHAR2(3);
4587 l_rev_control NUMBER;
4588 l_exists_flag VARCHAR2(1);
4589 l_valid_flag VARCHAR2(1);
4590 l_call_counters VARCHAR2(1) := FND_PROFILE.VALUE('CSI_COUNTERS_ENABLED');
4591 l_config_key csi_utility_grp.config_instance_key;
4592 l_config_valid_status VARCHAR2(10);
4593 l_return_message VARCHAR2(100);
4594 l_component_ins_type VARCHAR2(1):=NULL ;
4595 l_config_hdr_id NUMBER;
4596 l_config_rev_nbr NUMBER;
4597 l_terminated_flag VARCHAR2(1);
4598 l_check_instance_rec csi_datastructures_pub.instance_rec;
4599 l_prior_txn_id NUMBER;
4600 l_ins_flag VARCHAR2(1);
4601 l_eam_item BOOLEAN := FALSE;
4602 l_eam_item_type NUMBER;
4603 l_reason_failed VARCHAR2(30);
4604 l_token VARCHAR2(30);
4605 l_dummy_location VARCHAR2(1);
4606 l_counter_group_id NUMBER :=0;
4607 l_gen_object_id NUMBER;
4608 l_equipment_type NUMBER;
4609 --
4610 CURSOR CTR_GROUP(p_src_object_id IN NUMBER) IS
4611 /* R12 Changes ...
4612 SELECT counter_group_id
4613 FROM CS_CTR_ASSOCIATIONS
4614 WHERE source_object_id = p_src_object_id;
4615 */
4616 SELECT group_id
4617 FROM csi_ctr_item_associations
4618 WHERE inventory_item_id = p_src_object_id;
4619 BEGIN
4620 -- Standard Start of API savepoint
4621 SAVEPOINT create_item_instance_pvt;
4622
4623 -- Standard call to check for call compatibility.
4624 IF NOT FND_API.Compatible_API_Call (l_api_version,
4625 p_api_version,
4626 l_api_name ,
4627 G_PKG_NAME )
4628 THEN
4629 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4630 END IF;
4631
4632 -- Initialize message list if p_init_msg_list is set to TRUE.
4633 IF FND_API.to_Boolean( p_init_msg_list ) THEN
4634 FND_MSG_PUB.initialize;
4635 END IF;
4636
4637 -- Initialize API return status to success
4638 x_return_status := FND_API.G_RET_STS_SUCCESS;
4639
4640 -- Check the profile option debug_level for debug message reporting
4641 l_debug_level:=fnd_profile.value('CSI_DEBUG_LEVEL');
4642 -- If debug_level = 1 then dump the procedure name
4643 IF (l_debug_level > 0) THEN
4644 csi_gen_utility_pvt.put_line ('create_item_instance_pvt');
4645 END IF;
4646
4647 -- If the debug level = 2 then dump all the parameters values.
4648 IF (l_debug_level > 1) THEN
4649 csi_gen_utility_pvt.put_line ( 'create_item_instance_pvt' ||
4650 p_api_version ||'-'||
4651 p_commit ||'-'||
4652 p_init_msg_list );
4653 -- Dump the records in the log file
4654 csi_gen_utility_pvt.dump_instance_rec(p_instance_rec);
4655 csi_gen_utility_pvt.dump_party_tbl(p_party_tbl);
4656 csi_gen_utility_pvt.dump_txn_rec(p_txn_rec);
4657 END IF;
4658
4659 -- Start API body
4660 CSI_Item_Instance_vld_pvt.Check_Reqd_Param_Num
4661 ( p_instance_rec.INVENTORY_ITEM_ID ,
4662 ' p_instance_rec.INVENTORY_ITEM_ID ',
4663 l_api_name
4664 );
4665 /* Code commented by sk for bug 2198575
4666
4667 CSI_Item_Instance_vld_pvt.Check_Reqd_Param_Num
4668 ( p_instance_rec.INV_MASTER_ORGANIZATION_ID ,
4669 ' p_instance_rec.INV_MASTER_ORGANIZATION_ID ',
4670 l_api_name
4671 );
4672 */
4673 CSI_Item_Instance_vld_pvt.Check_Reqd_Param_Num
4674 ( p_instance_rec.QUANTITY ,
4675 ' p_instance_rec.QUANTITY ',
4676 l_api_name
4677 );
4678
4679 CSI_Item_Instance_vld_pvt.Check_Reqd_Param_Char
4680 ( p_instance_rec.UNIT_OF_MEASURE ,
4681 ' p_instance_rec.UNIT_OF_MEASURE ',
4682 l_api_name
4683 );
4684 --
4685 -- Initialize the Instance count
4686 --
4687 If p_ins_count_rec.inv_count is NULL OR
4688 p_ins_count_rec.inv_count = FND_API.G_MISS_NUM THEN
4689 p_ins_count_rec.inv_count := 0;
4690 End if;
4691 --
4692 If p_ins_count_rec.generic_count is NULL OR
4693 p_ins_count_rec.generic_count = FND_API.G_MISS_NUM THEN
4694 p_ins_count_rec.generic_count := 0;
4695 End if;
4696 --
4697 If p_ins_count_rec.location_count is NULL OR
4698 p_ins_count_rec.location_count = FND_API.G_MISS_NUM THEN
4699 p_ins_count_rec.location_count := 0;
4700 End if;
4701 --
4702 If p_ins_count_rec.lookup_count is NULL OR
4703 p_ins_count_rec.lookup_count = FND_API.G_MISS_NUM THEN
4704 p_ins_count_rec.lookup_count := 0;
4705 End if;
4706 --
4707
4708 --Validations for the Create Item Instance
4709 --If vld_organization_id is passed and inv_master_organization_id is
4710 --not passed then derive master_organization_id from mtl_parameters.
4711 -- Start of modifications by sk on 02/19/02 for bug 2198575
4712 IF ((p_instance_rec.vld_organization_id IS NOT NULL) AND
4713 (p_instance_rec.vld_organization_id <> FND_API.G_MISS_NUM)) AND
4714 ((p_instance_rec.inv_master_organization_id IS NULL) OR
4715 (p_instance_rec.inv_master_organization_id = FND_API.G_MISS_NUM))
4716 THEN
4717 BEGIN
4718 SELECT master_organization_id
4719 INTO p_instance_rec.inv_master_organization_id
4720 FROM mtl_parameters
4721 WHERE organization_id = p_instance_rec.vld_organization_id;
4722 EXCEPTION
4723 WHEN OTHERS THEN
4724 NULL;
4725 END;
4726 --If vld_organization_id is not passed and inv_master_organization_id is
4727 --passed then assign inv_master_organization_id to vld_organization_id.
4728 ELSIF ((p_instance_rec.vld_organization_id IS NULL) OR
4729 (p_instance_rec.vld_organization_id = FND_API.G_MISS_NUM)) AND
4730 ((p_instance_rec.inv_master_organization_id IS NOT NULL) AND
4731 (p_instance_rec.inv_master_organization_id <> FND_API.G_MISS_NUM))
4732 THEN
4733 IF NOT (csi_Item_Instance_Vld_Pvt.Is_Valid_Master_Org
4734 (p_instance_rec.inv_master_organization_id)) THEN
4735 FND_MESSAGE.SET_NAME('CSI','CSI_INVALID_MAST_ORG');
4736 FND_MSG_PUB.Add;
4737 RAISE FND_API.G_EXC_ERROR;
4738 END IF;
4739 p_instance_rec.vld_organization_id := p_instance_rec.inv_master_organization_id;
4740 --If both vld_organization_id and inv_master_organization_id are
4741 --passed then check the validity of passed inv_master_organization_id.
4742 ELSIF ((p_instance_rec.vld_organization_id IS NOT NULL) AND
4743 (p_instance_rec.vld_organization_id <> FND_API.G_MISS_NUM)) AND
4744 ((p_instance_rec.inv_master_organization_id IS NOT NULL) AND
4745 (p_instance_rec.inv_master_organization_id <> FND_API.G_MISS_NUM))
4746 THEN
4747 BEGIN
4748 SELECT 'x'
4749 INTO l_temp
4750 FROM mtl_parameters
4751 WHERE organization_id = p_instance_rec.vld_organization_id
4752 AND master_organization_id = p_instance_rec.inv_master_organization_id;
4753 EXCEPTION
4754 WHEN NO_DATA_FOUND THEN
4755 FND_MESSAGE.SET_NAME('CSI','CSI_INVALID_VLD_MAST_COMB');
4756 FND_MSG_PUB.Add;
4757 RAISE FND_API.G_EXC_ERROR;
4758 END;
4759 ELSE
4760 FND_MESSAGE.SET_NAME('CSI','CSI_NO_VLD_ORG');
4761 FND_MSG_PUB.Add;
4762 RAISE FND_API.G_EXC_ERROR;
4763 END IF;
4764 -- End of modifications by sk on 02/19/02 for bug 2198575
4765
4766 -- Validating the Instance Id
4767 IF ((p_instance_rec.INSTANCE_ID IS NULL) OR
4768 (p_instance_rec.INSTANCE_ID = FND_API.G_MISS_NUM)) THEN
4769 -- If the instance_id passed is null then generate from sequence
4770 -- and check if the value exists . If exists then generate
4771 -- again from the sequence till we get a value that does not exist
4772 WHILE l_process_flag LOOP
4773 p_instance_rec.INSTANCE_ID := CSI_Item_Instance_vld_pvt.get_instance_id;
4774 IF NOT(CSI_Item_Instance_vld_pvt.InstanceExists(p_instance_rec.INSTANCE_ID,
4775 FALSE )) THEN
4776 l_process_flag := FALSE;
4777 END IF;
4778 END LOOP;
4779 ELSE
4780 -- Validate the instance_id if exist then raise CSI_API_INVALID_PRIMARY_KEY error
4781 IF CSI_Item_Instance_vld_pvt.InstanceExists(p_instance_rec.INSTANCE_ID,
4782 TRUE ) THEN
4783 RAISE FND_API.G_EXC_ERROR;
4784 END IF;
4785 END IF;
4786
4787 -- IF l_eam_item
4788 -- THEN
4789 IF (p_instance_rec.location_id IS NULL OR
4790 p_instance_rec.location_id =fnd_api.g_miss_num)
4791 THEN
4792 IF p_instance_rec.location_type_code IN ('WIP', 'HR_LOCATIONS','PROJECT','IN_TRANSIT','PO','INTERNAL_SITE')
4793 THEN
4794 BEGIN
4795 SELECT location_id
4796 INTO p_instance_rec.location_id
4797 FROM hr_all_organization_units
4798 WHERE organization_id = p_instance_rec.vld_organization_id;
4799 EXCEPTION
4800 WHEN NO_DATA_FOUND THEN
4801 fnd_message.set_name('CSI','CSI_NO_HR_LOCATIONS');
4802 fnd_message.set_token('ORGANIZATION_ID',p_instance_rec.vld_organization_id);
4803 fnd_msg_pub.ADD;
4804 RAISE fnd_api.g_exc_error;
4805 END;
4806 IF p_instance_rec.location_id IS NULL
4807 THEN
4808 fnd_message.set_name('CSI','CSI_NO_HR_LOCATIONS');
4809 fnd_message.set_token('ORGANIZATION_ID',p_instance_rec.vld_organization_id);
4810 fnd_msg_pub.ADD;
4811 RAISE fnd_api.g_exc_error;
4812 END IF;
4813 END IF;
4814 END IF;
4815
4816 IF (p_instance_rec.install_location_id IS NULL OR
4817 p_instance_rec.install_location_id =fnd_api.g_miss_num)
4818 THEN
4819 IF p_instance_rec.install_location_type_code IN ('WIP','HR_LOCATIONS','PROJECT','IN_TRANSIT','PO','INTERNAL_SITE')
4820 THEN
4821 BEGIN
4822 SELECT location_id
4823 INTO p_instance_rec.install_location_id
4824 FROM hr_all_organization_units
4825 WHERE organization_id = p_instance_rec.vld_organization_id;
4826 EXCEPTION
4827 WHEN NO_DATA_FOUND THEN
4828 fnd_message.set_name('CSI','CSI_NO_HR_LOCATIONS');
4829 fnd_message.set_token('ORGANIZATION_ID',p_instance_rec.vld_organization_id);
4830 fnd_msg_pub.ADD;
4831 RAISE fnd_api.g_exc_error;
4832 END;
4833 IF p_instance_rec.install_location_id IS NULL
4834 THEN
4835 fnd_message.set_name('CSI','CSI_NO_HR_LOCATIONS');
4836 fnd_message.set_token('ORGANIZATION_ID',p_instance_rec.vld_organization_id);
4837 fnd_msg_pub.ADD;
4838 RAISE fnd_api.g_exc_error;
4839 END IF;
4840 END IF;
4841 END IF;
4842 -- END IF;
4843 -- End addition of code for eam integration
4844
4845 IF csi_item_Instance_Vld_pvt.Is_InstanceNum_Valid(p_instance_rec.instance_id,
4846 p_instance_rec.instance_number,
4847 'CREATE')
4848 THEN
4849 IF p_instance_rec.instance_number IS NULL OR
4850 p_instance_rec.instance_number = fnd_api.g_miss_char
4851 THEN
4852 p_instance_rec.instance_number := substr(to_char(p_instance_rec.instance_id),1,30);
4853 END IF;
4854 ELSE
4855 RAISE fnd_api.g_exc_error;
4856 END IF;
4857 --
4858 -- Get the Required Inventory Attributes
4859 l_exists_flag := 'N';
4860 l_valid_flag := 'Y';
4861 IF p_item_attribute_tbl.count > 0 then
4862 FOR item_count in p_item_attribute_tbl.FIRST .. p_item_attribute_tbl.LAST
4863 LOOP
4864 IF p_item_attribute_tbl(item_count).inventory_item_id = p_instance_rec.inventory_item_id AND
4865 p_item_attribute_tbl(item_count).organization_id = p_instance_rec.vld_organization_id AND
4866 p_item_attribute_tbl(item_count).master_organization_id = p_instance_rec.inv_master_organization_id
4867 THEN
4868 l_trackable_flag := p_item_attribute_tbl(item_count).trackable_flag;
4869 l_rev_control := p_item_attribute_tbl(item_count).revision_control_code;
4870 l_serial_control := p_item_attribute_tbl(item_count).serial_number_control_code;
4871 l_lot_control := p_item_attribute_tbl(item_count).lot_control_code;
4872 l_shelf_life_code := p_item_attribute_tbl(item_count).shelf_life_code;
4873 l_uom_code := p_item_attribute_tbl(item_count).uom_code;
4874 l_eam_item_type := p_item_attribute_tbl(item_count).eam_item_type;
4875 l_equipment_type := p_item_attribute_tbl(item_count).equipment_type;
4876 l_valid_flag := p_item_attribute_tbl(item_count).valid_flag;
4877 l_exists_flag := 'Y';
4878 EXIT;
4879 END IF;
4880 END LOOP;
4881 IF l_valid_flag <> 'Y'
4882 THEN
4883 FND_MESSAGE.SET_NAME('CSI','CSI_API_INVALID_ITEM');
4884 FND_MESSAGE.SET_TOKEN('INVENTORY_ITEM_ID',p_instance_rec.inventory_item_id);
4885 FND_MESSAGE.SET_TOKEN('INVENTORY_ORGANIZATION_ID',p_instance_rec.vld_organization_id);
4886 FND_MSG_PUB.Add;
4887 RAISE fnd_api.g_exc_error;
4888 END IF;
4889 END IF;
4890 --
4891 -- if item does not exist in cache then get from database.
4892 if l_exists_flag = 'N' then
4893 p_ins_count_rec.inv_count := p_ins_count_rec.inv_count + 1;
4894 p_item_attribute_tbl(p_ins_count_rec.inv_count).inventory_item_id := p_instance_rec.inventory_item_id;
4895 p_item_attribute_tbl(p_ins_count_rec.inv_count).organization_id := p_instance_rec.vld_organization_id;
4896 p_item_attribute_tbl(p_ins_count_rec.inv_count).master_organization_id := p_instance_rec.inv_master_organization_id;
4897 Begin
4898 select comms_nl_trackable_flag,primary_uom_code
4899 into l_trackable_flag,l_uom_code
4900 from MTL_SYSTEM_ITEMS_B
4901 where inventory_item_id = p_instance_rec.inventory_item_id
4902 and organization_id = p_instance_rec.inv_master_organization_id
4903 and enabled_flag = 'Y'
4904 and nvl (start_date_active, sysdate) <= sysdate
4905 and nvl (end_date_active, sysdate+1) > sysdate;
4906 --
4907 p_item_attribute_tbl(p_ins_count_rec.inv_count).trackable_flag := l_trackable_flag;
4908 p_item_attribute_tbl(p_ins_count_rec.inv_count).uom_code := l_uom_code;
4909 p_item_attribute_tbl(p_ins_count_rec.inv_count).valid_flag := 'Y';
4910 Exception
4911 when others then
4912 p_item_attribute_tbl(p_ins_count_rec.inv_count).valid_flag := 'N';
4913 FND_MESSAGE.SET_NAME('CSI','CSI_API_INVALID_ITEM');
4914 FND_MESSAGE.SET_TOKEN('INVENTORY_ITEM_ID',p_instance_rec.inventory_item_id);
4915 FND_MESSAGE.SET_TOKEN('INVENTORY_ORGANIZATION_ID',p_instance_rec.vld_organization_id);
4916 FND_MSG_PUB.Add;
4917 RAISE fnd_api.g_exc_error;
4918 End;
4919 --
4920 BEGIN
4921 SELECT revision_qty_control_code
4922 ,serial_number_control_code
4923 ,lot_control_code
4924 ,shelf_life_code
4925 ,eam_item_type
4926 ,equipment_type
4927 INTO l_rev_control
4928 ,l_serial_control
4929 ,l_lot_control
4930 ,l_shelf_life_code
4931 ,l_eam_item_type
4932 ,l_equipment_type
4933 FROM mtl_system_items_b
4934 WHERE inventory_item_id = p_instance_rec.inventory_item_id
4935 AND organization_id = p_instance_rec.vld_organization_id
4936 AND enabled_flag = 'Y'
4937 AND nvl (start_date_active, sysdate) <= sysdate
4938 AND nvl (end_date_active, sysdate+1) > sysdate;
4939 --
4940 p_item_attribute_tbl(p_ins_count_rec.inv_count).valid_flag := 'Y';
4941 p_item_attribute_tbl(p_ins_count_rec.inv_count).revision_control_code := l_rev_control;
4942 p_item_attribute_tbl(p_ins_count_rec.inv_count).serial_number_control_code := l_serial_control;
4943 p_item_attribute_tbl(p_ins_count_rec.inv_count).lot_control_code := l_lot_control;
4944 p_item_attribute_tbl(p_ins_count_rec.inv_count).shelf_life_code := l_shelf_life_code;
4945 p_item_attribute_tbl(p_ins_count_rec.inv_count).eam_item_type := l_eam_item_type;
4946 p_item_attribute_tbl(p_ins_count_rec.inv_count).equipment_type := l_equipment_type;
4947 EXCEPTION
4948 WHEN OTHERS THEN
4949 p_item_attribute_tbl(p_ins_count_rec.inv_count).valid_flag := 'N';
4950 FND_MESSAGE.SET_NAME('CSI','CSI_API_INVALID_ITEM');
4951 FND_MESSAGE.SET_TOKEN('INVENTORY_ITEM_ID',p_instance_rec.inventory_item_id);
4952 FND_MESSAGE.SET_TOKEN('INVENTORY_ORGANIZATION_ID',p_instance_rec.vld_organization_id);
4953 FND_MSG_PUB.Add;
4954 RAISE fnd_api.g_exc_error;
4955 END;
4956 End if;
4957 -- Added the following code to fix bug 5506231
4958 IF p_instance_rec.instance_usage_code IS NULL OR
4959 p_instance_rec.instance_usage_code = fnd_api.g_miss_char
4960 THEN
4961 csi_gen_utility_pvt.put_line ('Instance_usage_code is passed as null or g_miss value');
4962 csi_gen_utility_pvt.put_line ('Hence deriving instance usage code');
4963 IF l_serial_control = 6 AND
4964 p_instance_rec.serial_number IS NOT NULL AND
4965 p_instance_rec.location_type_code = 'INVENTORY'
4966 THEN
4967 p_instance_rec.instance_usage_code := 'RETURNED';
4968 ELSE
4969 IF p_instance_rec.location_type_code = 'INVENTORY'
4970 THEN
4971 p_instance_rec.instance_usage_code := 'IN_INVENTORY';
4972 ELSIF p_instance_rec.location_type_code = 'WIP'
4973 THEN
4974 p_instance_rec.instance_usage_code := 'IN_WIP';
4975 ELSE
4976 p_instance_rec.instance_usage_code := 'OUT_OF_ENTERPRISE';
4977 END IF;
4978 END IF;
4979 csi_gen_utility_pvt.put_line ('Value of derived instance_usage_code is : '||p_instance_rec.instance_usage_code);
4980 END IF;
4981 -- End addition of code to fix bug 5506231
4982
4983 -- Checking for Trackable Flag
4984 IF NOT csi_item_instance_vld_pvt.Is_Trackable
4985 (p_instance_rec.inventory_item_id,
4986 p_instance_rec.inv_master_organization_id,
4987 l_trackable_flag
4988 ) THEN
4989 RAISE fnd_api.g_exc_error;
4990 END IF;
4991 --
4992 -- Added following code for eam integration
4993 -- Check if the item is a rebuildable or an asset group
4994
4995 IF csi_item_instance_vld_pvt.Check_for_eam_item
4996 (p_inventory_item_id => p_instance_rec.inventory_item_id,
4997 p_organization_id => p_instance_rec.vld_organization_id,
4998 p_eam_item_type => l_eam_item_type)
4999 THEN
5000 l_eam_item := TRUE;
5001 END IF;
5002 -- Added for eam
5003 IF ((p_instance_rec.network_asset_flag IS NOT NULL AND
5004 p_instance_rec.network_asset_flag <> fnd_api.g_miss_char) OR
5005 (p_instance_rec.maintainable_flag IS NOT NULL AND
5006 p_instance_rec.maintainable_flag <> fnd_api.g_miss_char) OR
5007 (p_instance_rec.pn_location_id IS NOT NULL AND
5008 p_instance_rec.pn_location_id <> fnd_api.g_miss_num) OR
5009 (p_instance_rec.asset_criticality_code IS NOT NULL AND
5010 p_instance_rec.asset_criticality_code <> fnd_api.g_miss_char) OR
5011 (p_instance_rec.category_id IS NOT NULL AND
5012 p_instance_rec.category_id <> fnd_api.g_miss_num) OR
5013 (p_instance_rec.equipment_gen_object_id IS NOT NULL AND
5014 p_instance_rec.equipment_gen_object_id <> fnd_api.g_miss_num) OR
5015 (p_instance_rec.linear_location_id IS NOT NULL AND
5016 p_instance_rec.linear_location_id <> fnd_api.g_miss_num) OR
5017 (p_instance_rec.operational_log_flag IS NOT NULL AND
5018 p_instance_rec.operational_log_flag <> fnd_api.g_miss_char) OR
5019 (p_instance_rec.checkin_status IS NOT NULL AND
5020 p_instance_rec.checkin_status <> fnd_api.g_miss_num) OR
5021 (p_instance_rec.supplier_warranty_exp_date IS NOT NULL AND
5022 p_instance_rec.supplier_warranty_exp_date <> fnd_api.g_miss_date))
5023 THEN
5024 IF l_eam_item
5025 THEN
5026 IF p_instance_rec.maintainable_flag IS NULL OR
5027 p_instance_rec.maintainable_flag = fnd_api.g_miss_char
5028 THEN
5029 p_instance_rec.maintainable_flag :='Y';
5030 END IF;
5031
5032 IF NOT eam_assetnumber_pub.validate_fields
5033 (p_current_organization_id => p_instance_rec.vld_organization_id
5034 ,p_inventory_item_id => p_instance_rec.inventory_item_id
5035 ,p_serial_number => p_instance_rec.serial_number
5036 ,p_network_asset_flag => p_instance_rec.network_asset_flag
5037 ,p_maintainable_flag => p_instance_rec.maintainable_flag
5038 ,p_pn_location_id => p_instance_rec.pn_location_id
5039 ,p_asset_criticality_code => p_instance_rec.asset_criticality_code
5040 ,p_category_id => p_instance_rec.category_id
5041 ,p_equipment_object_id => p_instance_rec.equipment_gen_object_id
5042 ,p_eam_linear_id => p_instance_rec.linear_location_id
5043 ,p_operational_log_flag => p_instance_rec.operational_log_flag
5044 ,p_checkin_status => p_instance_rec.checkin_status
5045 ,p_supplier_warranty_exp_date => p_instance_rec.supplier_warranty_exp_date
5046 ,p_owning_department_id => NULL
5047 ,x_reason_failed => l_reason_failed
5048 ,x_token => l_token
5049 )
5050 THEN
5051 -- FND_MESSAGE.SET_NAME('CSI', l_reason_failed); -- commented for bug 5351886
5052 -- FND_MSG_PUB.Add; -- commented for bug 5351886
5053 csi_gen_utility_pvt.put_line('Call to eam_assetnumber_pub.validate_fields failed with following reason');
5054 csi_gen_utility_pvt.put_line(l_reason_failed);
5055 RAISE FND_API.G_EXC_ERROR;
5056 END IF;
5057 ELSE
5058 FND_MESSAGE.SET_NAME('CSI', 'CSI_NON_EAM_ITEM');
5059 FND_MSG_PUB.Add;
5060 RAISE FND_API.G_EXC_ERROR;
5061 END IF;
5062 END IF;
5063 -- Adding the following code as there could be a case
5064 -- where the item is an eam item but none of the eam columns were
5065 -- populated then above code will not assign a value to
5066 -- maintainable_flag.
5067 IF l_eam_item
5068 THEN
5069 IF p_instance_rec.maintainable_flag IS NULL OR
5070 p_instance_rec.maintainable_flag = fnd_api.g_miss_char
5071 THEN
5072 p_instance_rec.maintainable_flag :='Y';
5073 END IF;
5074 END IF;
5075 -- End addition for eam
5076
5077 -- Validation for the Revision
5078 csi_item_instance_vld_pvt.Validate_Revision
5079 (
5080 p_inv_item_id => p_instance_rec.inventory_item_id ,
5081 p_inv_org_id => p_instance_rec.vld_organization_id,
5082 p_creation_complete_flag => p_instance_rec.creation_complete_flag,
5083 p_revision => p_instance_rec.inventory_revision,
5084 l_return_value => l_return_value,
5085 p_rev_control_code => l_rev_control
5086 );
5087
5088 IF l_return_value = FALSE THEN
5089 RAISE fnd_api.g_exc_error;
5090 END IF;
5091 -- Validation for the Lot Number
5092 csi_Item_Instance_Vld_pvt.Validate_Lot_Number
5093 (
5094 p_inv_org_id => p_instance_rec.vld_organization_id,
5095 p_inv_item_id => p_instance_rec.inventory_item_id ,
5096 p_lot_number => p_instance_rec.lot_number,
5097 p_mfg_serial_number_flag => p_instance_rec.mfg_serial_number_flag,
5098 p_txn_rec => p_txn_rec,
5099 p_creation_complete_flag => p_instance_rec.creation_complete_flag,
5100 l_return_value => l_return_value,
5101 p_lot_control_code => l_lot_control
5102 );
5103 IF l_return_value = FALSE THEN
5104 RAISE fnd_api.g_exc_error;
5105 END IF;
5106
5107 -- Validates the lot uniqueness and creates lot numbers in MLNs for manually created Instances
5108 -- Bug# 4011408
5109 IF ((p_instance_rec.lot_number <> FND_API.G_MISS_CHAR) AND
5110 (p_instance_rec.lot_number IS NOT NULL))
5111 THEN
5112 csi_gen_utility_pvt.put_line('Calling Create_Lot routine...');
5113 csi_item_instance_vld_pvt.Create_Lot
5114 (
5115 p_inv_org_id => p_instance_rec.vld_organization_id,
5116 p_inv_item_id => p_instance_rec.inventory_item_id,
5117 p_lot_number => p_instance_rec.lot_number,
5118 p_shelf_life_code => l_shelf_life_code,
5119 p_instance_id => p_instance_rec.instance_id,
5120 l_return_value => l_return_value
5121 );
5122 IF l_return_value = FALSE THEN
5123 RAISE fnd_api.g_exc_error;
5124 END IF;
5125 END IF;
5126 -- Creates Serial number in MSNs for manually created serialized CPs
5127 l_ins_flag := FND_API.G_FALSE;
5128 IF ((p_instance_rec.serial_number <> FND_API.G_MISS_CHAR) AND
5129 (p_instance_rec.serial_number IS NOT NULL)) /* AND
5130 (nvl(p_instance_rec.mfg_serial_number_flag,'N') <> 'Y') ) */
5131 THEN
5132 csi_gen_utility_pvt.put_line('Calling Create_Serial...');
5133 csi_item_instance_vld_pvt.Create_Serial
5134 (
5135 p_inv_org_id => p_instance_rec.vld_organization_id,
5136 p_inv_item_id => p_instance_rec.inventory_item_id,
5137 p_serial_number => p_instance_rec.serial_number,
5138 p_mfg_srl_num_flag => p_instance_rec.mfg_serial_number_flag,
5139 p_location_type_code => p_instance_rec.location_type_code,
5140 p_ins_flag => l_ins_flag,
5141 p_lot_number => p_instance_rec.lot_number,
5142 p_gen_object_id => l_gen_object_id,
5143 l_return_value => l_return_value
5144 );
5145
5146 IF l_return_value = FALSE THEN
5147 RAISE fnd_api.g_exc_error;
5148 ELSE
5149 IF nvl(p_instance_rec.mfg_serial_number_flag,'N') <> 'Y'
5150 THEN
5151 p_instance_rec.mfg_serial_number_flag := 'Y';
5152 END IF;
5153 END IF;
5154
5155 IF l_eam_item AND
5156 l_equipment_type = 1
5157 THEN
5158 p_instance_rec.equipment_gen_object_id := l_gen_object_id;
5159 END IF;
5160
5161 IF l_eam_item
5162 THEN
5163 csi_gen_utility_pvt.put_line( 'Calling eam_common_utilities_pvt.update_logical_asset...');
5164 csi_gen_utility_pvt.put_line( 'Inventory_item_id is :'||p_instance_rec.inventory_item_id);
5165 csi_gen_utility_pvt.put_line( 'Serial_number is :'||p_instance_rec.serial_number);
5166 csi_gen_utility_pvt.put_line( 'Network_asset_flag is :'||p_instance_rec.network_asset_flag);
5167 csi_gen_utility_pvt.put_line( 'Pn_location_id is :'||p_instance_rec.pn_location_id);
5168 csi_gen_utility_pvt.put_line( 'Equipment_gen_object_id is :'||p_instance_rec.equipment_gen_object_id);
5169 eam_common_utilities_pvt.update_logical_asset
5170 ( p_inventory_item_id => p_instance_rec.inventory_item_id
5171 ,p_serial_number => p_instance_rec.serial_number
5172 ,p_network_asset_flag => p_instance_rec.network_asset_flag
5173 ,p_pn_location_id => p_instance_rec.pn_location_id
5174 ,p_equipment_gen_object_id => p_instance_rec.equipment_gen_object_id
5175 ,x_return_status => x_return_status
5176 );
5177 IF NOT (x_return_status = FND_API.G_RET_STS_SUCCESS)
5178 THEN
5179 csi_gen_utility_pvt.put_line( 'Error from eam_common_utilities_pvt.update_logical_asset...');
5180 RAISE fnd_api.g_exc_error;
5181 END IF;
5182 END IF;
5183
5184 END IF;
5185 -- Transaction Sequencing check
5186 -- By-pass sequencing if the serial number got created by the above routine
5187 IF p_instance_rec.serial_number IS NOT NULL AND
5188 p_instance_rec.serial_number <> FND_API.G_MISS_CHAR AND
5189 l_ins_flag = FND_API.G_FALSE THEN
5190 -- l_check_instance_rec.instance_id := p_instance_rec.instance_id;
5191 l_check_instance_rec.inventory_item_id := p_instance_rec.inventory_item_id;
5192 l_check_instance_rec.serial_number := p_instance_rec.serial_number;
5193 l_check_instance_rec.lot_number := p_instance_rec.lot_number;
5194 l_check_instance_rec.last_txn_line_detail_id := p_instance_rec.last_txn_line_detail_id;
5195 csi_gen_utility_pvt.put_line('Calling Check_Prior_Txn');
5196 csi_Item_Instance_Vld_pvt.Check_Prior_Txn
5197 (
5198 p_instance_rec => l_check_instance_rec
5199 ,p_txn_rec => p_txn_rec
5200 ,p_prior_txn_id => l_prior_txn_id
5201 ,p_mode => 'CREATE'
5202 ,x_return_status => x_return_status
5203 );
5204 IF NOT (x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
5205 RAISE fnd_api.g_exc_error;
5206 END IF;
5207 END IF;
5208 -- Validation for the Serial Number
5209 csi_gen_utility_pvt.put_line('Calling Validate_Serial_Number...');
5210 csi_Item_Instance_Vld_pvt.Validate_Serial_Number
5211 (
5212 p_inv_org_id => p_instance_rec.vld_organization_id,
5213 p_inv_item_id => p_instance_rec.inventory_item_id ,
5214 p_serial_number => p_instance_rec.serial_number,
5215 p_mfg_serial_number_flag => p_instance_rec.mfg_serial_number_flag,
5216 p_txn_rec => p_txn_rec,
5217 p_creation_complete_flag => p_instance_rec.creation_complete_flag,
5218 p_location_type_code => p_instance_rec.location_type_code,
5219 p_instance_usage_code => p_instance_rec.instance_usage_code,
5220 l_return_value => l_return_value,
5221 p_srl_control_code => l_serial_control
5222 );
5223 IF l_return_value = FALSE THEN
5224 RAISE fnd_api.g_exc_error;
5225 END IF;
5226 -- Validation for the Unit of Measure
5227 -- validate/convert only if the uom is not a primary uom
5228 IF p_instance_rec.unit_of_measure <> l_uom_code THEN
5229 csi_item_instance_vld_pvt.Is_Valid_Uom
5230 (
5231 p_inv_org_id => p_instance_rec.inv_master_organization_id,
5232 p_inv_item_id => p_instance_rec.inventory_item_id ,
5233 p_uom_code => p_instance_rec.unit_of_measure,
5234 p_quantity => p_instance_rec.quantity,
5235 p_creation_complete_flag => p_instance_rec.creation_complete_flag,
5236 l_return_value => l_return_value
5237 );
5238 IF l_return_value = FALSE THEN
5239 RAISE FND_API.G_EXC_ERROR;
5240 END IF;
5241 END IF;
5242 -- Validation for Location Source and Location ID
5243 IF p_instance_rec.location_type_code = FND_API.G_MISS_CHAR OR
5244 p_instance_rec.location_type_code IS NULL THEN
5245 IF p_instance_rec.creation_complete_flag = 'Y' THEN
5246 FND_MESSAGE.SET_NAME('CSI','CSI_API_INVALID_LOCATION');
5247 FND_MSG_PUB.ADD;
5248 RAISE fnd_api.g_exc_error;
5249 ELSE
5250 p_instance_rec.creation_complete_flag := 'N';
5251 END IF;
5252 ELSE
5253 IF p_instance_rec.location_id IS NULL OR
5254 p_instance_rec.location_id = FND_API.G_MISS_NUM THEN
5255 FND_MESSAGE.SET_NAME('CSI','CSI_API_LOCATION_NOT_VALID');
5256 FND_MSG_PUB.ADD;
5257 RAISE fnd_api.g_exc_error;
5258 ELSE
5259 -- Validate location_id
5260 l_exists_flag := 'N';
5261 l_valid_flag := 'Y';
5262 IF p_location_tbl.count > 0 THEN
5263 For loc_row in p_location_tbl.FIRST .. p_location_tbl.LAST
5264 Loop
5265 IF p_location_tbl(loc_row).location_type_code = p_instance_rec.location_type_code AND
5266 p_location_tbl(loc_row).location_id = p_instance_rec.location_id THEN
5267 l_exists_flag := 'Y';
5268 l_valid_flag := p_location_tbl(loc_row).valid_flag;
5269 EXIT;
5270 END IF;
5271 End Loop;
5272 --
5273 IF l_valid_flag <> 'Y' THEN
5274 FND_MESSAGE.SET_NAME('CSI','CSI_API_LOCATION_NOT_VALID');
5275 FND_MSG_PUB.ADD;
5276 RAISE fnd_api.g_exc_error;
5277 END IF;
5278 END IF; -- p_location_tbl count
5279 --
5280 IF l_exists_flag <> 'Y' THEN
5281 p_ins_count_rec.location_count := p_ins_count_rec.location_count + 1;
5282 p_location_tbl(p_ins_count_rec.location_count).location_type_code :=
5283 p_instance_rec.location_type_code;
5284 p_location_tbl(p_ins_count_rec.location_count).location_id := p_instance_rec.location_id;
5285 IF csi_item_instance_vld_pvt.Is_Valid_Location_ID
5286 (p_location_source_table => p_instance_rec.location_type_code
5287 ,p_location_id => p_instance_rec.location_id) THEN
5288 p_location_tbl(p_ins_count_rec.location_count).valid_flag := 'Y';
5289 ELSE
5290 p_location_tbl(p_ins_count_rec.location_count).valid_flag := 'N';
5291 RAISE fnd_api.g_exc_error;
5292 END IF;
5293 END IF;
5294 -- Validate Related Parameters
5295 IF NOT csi_item_instance_vld_pvt.Validate_Related_Loc_Params
5296 (
5297 p_location_source_table => p_instance_rec.location_type_code,
5298 p_location_id => p_instance_rec.location_id,
5299 p_organization_id => p_instance_rec.inv_organization_id,
5300 p_subinventory => p_instance_rec.inv_subinventory_name,
5301 p_locator_id => p_instance_rec.inv_locator_id,
5302 p_project_id => p_instance_rec.pa_project_id,
5303 p_task_id => p_instance_rec.pa_project_task_id,
5304 p_sales_ord_line_id => p_instance_rec.in_transit_order_line_id,
5305 p_wip_job_id => p_instance_rec.wip_job_id,
5306 p_po_line_id => p_instance_rec.po_order_line_id,
5307 p_inst_usage_code => p_instance_rec.instance_usage_code
5308 ) THEN
5309 RAISE fnd_api.g_exc_error;
5310 END IF;
5311 END IF; -- Location ID Valid
5312 END IF; -- Location Type code valid
5313 --
5314 -- Validation for the Quantity
5315 IF NOT csi_Item_Instance_Vld_pvt.Is_Quantity_Valid(
5316 p_instance_id => p_instance_rec.instance_id,
5317 p_inv_organization_id => p_instance_rec.vld_organization_id,
5318 p_quantity => p_instance_rec.quantity ,
5319 p_serial_control_code => l_serial_control,
5320 p_location_type_code => p_instance_rec.location_type_code,
5321 p_flag => 'CREATE',
5322 p_csi_txn_type_id => p_txn_rec.transaction_type_id
5323 ) -- Added serial_control and location by sk on 09/14/01
5324 THEN
5325 RAISE fnd_api.g_exc_error;
5326 END IF;
5327 --validation for accounting classification_code
5328 IF (p_party_tbl.count < 1) THEN
5329 FND_MESSAGE.SET_NAME('CSI','CSI_API_NO_PARTY_RECORD');
5330 FND_MSG_PUB.Add;
5331 RAISE FND_API.G_EXC_ERROR;
5332 ELSE
5333 FOR l_count IN p_party_tbl.FIRST..p_party_tbl.LAST LOOP
5334 IF p_party_tbl.EXISTS(l_count) THEN
5335 IF p_party_tbl(l_count).relationship_type_code = 'OWNER' THEN
5336 l_owner_count := l_owner_count + 1;
5337 l_owner := P_PARTY_TBL(l_count).party_id;
5338 END IF;
5339 END IF;
5340 END LOOP;
5341 IF l_owner_count <> 1 THEN
5342 FND_MESSAGE.SET_NAME('CSI','CSI_API_INVALID_OWNER_EXISTS');
5343 FND_MESSAGE.SET_TOKEN('OWNER',l_owner);
5344 FND_MSG_PUB.Add;
5345 RAISE fnd_api.g_exc_error;
5346 END IF;
5347 --
5348 IF csi_datastructures_pub.g_install_param_rec.fetch_flag IS NULL THEN
5349 csi_gen_utility_pvt.populate_install_param_rec;
5350 END IF;
5351 --
5352 l_int_party_id := csi_datastructures_pub.g_install_param_rec.internal_party_id;
5353 --
5354 IF l_int_party_id IS NULL THEN
5355 FND_MESSAGE.SET_NAME('CSI','CSI_API_UNINSTALLED_PARAMETER');
5356 FND_MSG_PUB.ADD;
5357 RAISE FND_API.G_EXC_ERROR;
5358 END IF;
5359 --
5360 -- Start code addition for eam integration
5361 /* Commented code for bug 4906588
5362 IF l_eam_item
5363 THEN
5364 p_instance_rec.ACCOUNTING_CLASS_CODE := 'ASSET';
5365 ELSE
5366 */
5367 -- End code addition for eam integration
5368 IF l_owner = l_int_party_id THEN
5369 IF p_asset_tbl.COUNT > 0 THEN
5370 p_instance_rec.ACCOUNTING_CLASS_CODE := 'ASSET';
5371 ELSIF p_instance_rec.location_type_code = 'WIP' THEN
5372 p_instance_rec.ACCOUNTING_CLASS_CODE := 'WIP';
5373 ELSIF p_instance_rec.location_type_code = 'PROJECT' THEN
5374 p_instance_rec.ACCOUNTING_CLASS_CODE := 'PROJECT';
5375 ELSE
5376 p_instance_rec.ACCOUNTING_CLASS_CODE := 'INV';
5377 END IF;
5378 ELSE
5379 IF ((p_instance_rec.accounting_class_code IS NULL) OR
5380 (p_instance_rec.accounting_class_code = FND_API.G_MISS_CHAR)) THEN
5381 p_instance_rec.accounting_class_code := 'CUST_PROD';
5382 ELSE
5383 IF ((p_instance_rec.accounting_class_code = 'WIP') OR
5384 (p_instance_rec.accounting_class_code = 'PROJECT')) THEN
5385 FND_MESSAGE.SET_NAME('CSI','CSI_API_INVALID_ACCOUNT_CLASS');
5386 FND_MSG_PUB.Add;
5387 RAISE FND_API.G_EXC_ERROR;
5388 END IF;
5389 END IF;
5390 END IF;
5391 -- END IF;
5392 END IF;
5393
5394 --validation for owner uniqueness
5395 FOR l_count IN p_party_tbl.FIRST..p_party_tbl.LAST LOOP
5396 IF p_party_tbl.EXISTS(l_count) THEN
5397 IF p_party_tbl(l_count).relationship_type_code = 'OWNER' THEN
5398 l_party_owner_rec := p_party_tbl(l_count);
5399 END IF;
5400 END IF;
5401 END LOOP;
5402 IF NOT csi_item_instance_vld_pvt.Validate_Uniqueness
5403 (p_instance_rec => p_instance_rec,
5404 p_party_rec => l_party_owner_rec,
5405 p_srl_control_code => l_serial_control,
5406 p_csi_txn_type_id => p_txn_rec.transaction_type_id)
5407 THEN
5408
5409 RAISE FND_API.G_EXC_ERROR;
5410 END IF;
5411 -- validating the effective active start date
5412 IF ((p_instance_rec.active_start_date = FND_API.G_MISS_DATE) OR
5413 (p_instance_rec.active_start_date IS NULL)) THEN
5414 p_instance_rec.active_start_date := SYSDATE;
5415 END IF;
5416
5417 IF (p_instance_rec.active_end_date = FND_API.G_MISS_DATE) THEN
5418 p_instance_rec.active_end_date := NULL;
5419 END IF;
5420
5421 IF NOT (csi_item_instance_vld_pvt.Is_StartDate_Valid
5422 (p_instance_rec.active_start_date,
5423 p_instance_rec.active_end_date
5424 )) THEN
5425 RAISE FND_API.G_EXC_ERROR;
5426 END IF;
5427
5428 --Check whether the active start date is > sysdate.
5429 IF ((p_instance_rec.active_start_date IS NOT NULL) AND
5430 (p_instance_rec.active_start_date <> FND_API.G_MISS_DATE)) AND
5431 (p_instance_rec.active_start_date > SYSDATE)
5432 THEN
5433 FND_MESSAGE.SET_NAME('CSI','CSI_API_INSTANCE_START_DATE');
5434 FND_MSG_PUB.Add;
5435 RAISE FND_API.G_EXC_ERROR;
5436 END IF;
5437
5438 -- validating the effective active start date
5439 IF NOT (csi_item_instance_vld_pvt.Is_EndDate_Valid
5440 (p_instance_rec.active_start_date,
5441 p_instance_rec.active_end_date
5442 )) THEN
5443 RAISE FND_API.G_EXC_ERROR;
5444 END IF;
5445
5446 --validation for the instance condition id
5447 l_valid_flag := 'Y';
5448 l_exists_flag := 'N';
5449 IF p_instance_rec.instance_condition_id is not null AND
5450 p_instance_rec.instance_condition_id <> FND_API.G_MISS_NUM then
5451 IF p_generic_id_tbl.count > 0 then
5452 For gen_count in p_generic_id_tbl.FIRST .. p_generic_id_tbl.LAST
5453 LOOP
5454 IF p_generic_id_tbl(gen_count).generic_id = p_instance_rec.instance_condition_id AND
5455 p_generic_id_tbl(gen_count).id_type = 'INS_CONDITION' then
5456 l_valid_flag := p_generic_id_tbl(gen_count).valid_flag;
5457 l_exists_flag := 'Y';
5458 exit;
5459 END IF;
5460 END LOOP;
5461 --
5462 IF l_valid_flag <> 'Y' THEN
5463 FND_MESSAGE.SET_NAME('CSI','CSI_API_INVALID_ITEM_CONDITION');
5464 FND_MESSAGE.SET_TOKEN('INSTANCE_CONDITION_ID',p_instance_rec.instance_condition_id);
5465 FND_MSG_PUB.Add;
5466 RAISE fnd_api.g_exc_error;
5467 END IF;
5468 END IF;
5469 --
5470 IF l_exists_flag = 'N' THEN
5471 p_ins_count_rec.generic_count := p_ins_count_rec.generic_count + 1;
5472 p_generic_id_tbl(p_ins_count_rec.generic_count).generic_id := p_instance_rec.instance_condition_id;
5473 p_generic_id_tbl(p_ins_count_rec.generic_count).id_type := 'INS_CONDITION';
5474 csi_item_instance_vld_pvt.Is_Valid_Condition
5475 (
5476 p_instance_condition_id => p_instance_rec.instance_condition_id,
5477 p_creation_complete_flag => p_instance_rec.creation_complete_flag,
5478 l_return_value => l_return_value
5479 );
5480 IF l_return_value = FALSE THEN
5481 p_generic_id_tbl(p_ins_count_rec.generic_count).valid_flag := 'N';
5482 RAISE fnd_api.g_exc_error;
5483 ELSE
5484 p_generic_id_tbl(p_ins_count_rec.generic_count).valid_flag := 'Y';
5485 END IF;
5486 END IF;
5487 END IF;
5488 --
5489 --validation for the instance status id
5490 l_valid_flag := 'Y';
5491 l_exists_flag := 'N';
5492 IF ((p_instance_rec.instance_status_id IS NULL) OR
5493 (p_instance_rec.instance_status_id = FND_API.G_MISS_NUM)) THEN
5494 l_instance_status := FND_PROFILE.VALUE('CSI_DEFAULT_INSTANCE_STATUS');
5495 BEGIN
5496 SELECT instance_status_id,terminated_flag
5497 INTO p_instance_rec.instance_status_id
5498 ,l_terminated_flag
5499 FROM csi_instance_statuses
5500 WHERE name = l_instance_status;
5501 --
5502 IF nvl(l_terminated_flag,'N') = 'Y' THEN
5503 FND_MESSAGE.SET_NAME('CSI','CSI_API_STATUS_NOT_ALLOWED');
5504 FND_MESSAGE.SET_TOKEN('INSTANCE_STATUS',p_instance_rec.instance_status_id);
5505 FND_MSG_PUB.Add;
5506 RAISE FND_API.G_EXC_ERROR;
5507 END IF;
5508 EXCEPTION
5509 WHEN NO_DATA_FOUND THEN
5510 FND_MESSAGE.SET_NAME('CSI','CSI_API_INVALID_STATUS_ID');
5511 FND_MESSAGE.SET_TOKEN('INSTANCE_STATUS',p_instance_rec.instance_status_id);
5512 FND_MSG_PUB.Add;
5513 RAISE FND_API.G_EXC_ERROR;
5514 END;
5515 ELSIF (p_instance_rec.instance_status_id = 1) THEN
5516 FND_MESSAGE.SET_NAME('CSI','CSI_API_STATUS_NOT_ALLOWED');
5517 FND_MESSAGE.SET_TOKEN('INSTANCE_STATUS',p_instance_rec.instance_status_id);
5518 FND_MSG_PUB.Add;
5519 RAISE FND_API.G_EXC_ERROR;
5520 ELSE
5521 IF p_generic_id_tbl.count > 0 THEN
5522 For gen_count in p_generic_id_tbl.FIRST .. p_generic_id_tbl.LAST
5523 LOOP
5524 IF p_generic_id_tbl(gen_count).generic_id = p_instance_rec.instance_status_id AND
5525 p_generic_id_tbl(gen_count).id_type = 'INS_STATUS' THEN
5526 l_valid_flag := p_generic_id_tbl(gen_count).valid_flag;
5527 l_terminated_flag := p_generic_id_tbl(gen_count).terminated_flag;
5528 l_exists_flag := 'Y';
5529 exit;
5530 END IF;
5531 END LOOP;
5532 --
5533 IF l_valid_flag <> 'Y' THEN
5534 FND_MESSAGE.SET_NAME('CSI','CSI_API_INVALID_STATUS_ID');
5535 FND_MESSAGE.SET_TOKEN('INSTANCE_STATUS',p_instance_rec.instance_status_id);
5536 FND_MSG_PUB.Add;
5537 RAISE FND_API.G_EXC_ERROR;
5538 END IF;
5539 --
5540 IF nvl(l_terminated_flag,'N') = 'Y' THEN
5541 FND_MESSAGE.SET_NAME('CSI','CSI_API_STATUS_NOT_ALLOWED');
5542 FND_MESSAGE.SET_TOKEN('INSTANCE_STATUS',p_instance_rec.instance_status_id);
5543 FND_MSG_PUB.Add;
5544 RAISE FND_API.G_EXC_ERROR;
5545 END IF;
5546 END IF;
5547 --
5548 IF l_exists_flag <> 'Y' THEN
5549 p_ins_count_rec.generic_count := p_ins_count_rec.generic_count + 1;
5550 p_generic_id_tbl(p_ins_count_rec.generic_count).generic_id := p_instance_rec.instance_status_id;
5551 p_generic_id_tbl(p_ins_count_rec.generic_count).id_type := 'INS_STATUS';
5552 Begin
5553 select terminated_flag
5554 into l_terminated_flag
5555 from CSI_INSTANCE_STATUSES
5556 where instance_status_id = p_instance_rec.instance_status_id;
5557 --
5558 p_generic_id_tbl(p_ins_count_rec.generic_count).valid_flag := 'Y';
5559 p_generic_id_tbl(p_ins_count_rec.generic_count).terminated_flag := l_terminated_flag;
5560 --
5561 IF nvl(l_terminated_flag,'N') = 'Y' THEN
5562 FND_MESSAGE.SET_NAME('CSI','CSI_API_STATUS_NOT_ALLOWED');
5563 FND_MESSAGE.SET_TOKEN('INSTANCE_STATUS',p_instance_rec.instance_status_id);
5564 FND_MSG_PUB.Add;
5565 RAISE FND_API.G_EXC_ERROR;
5566 END IF;
5567 Exception
5568 when others then
5569 p_generic_id_tbl(p_ins_count_rec.generic_count).valid_flag := 'N';
5570 p_generic_id_tbl(p_ins_count_rec.generic_count).terminated_flag := NULL;
5571 FND_MESSAGE.SET_NAME('CSI','CSI_API_INVALID_STATUS_ID');
5572 FND_MESSAGE.SET_TOKEN('INSTANCE_STATUS',p_instance_rec.instance_status_id);
5573 FND_MSG_PUB.Add;
5574 RAISE FND_API.G_EXC_ERROR;
5575 End;
5576 END IF;
5577 END IF;
5578
5579 --validation for the system id
5580 l_valid_flag := 'Y';
5581 l_exists_flag := 'N';
5582 IF p_instance_rec.system_id is not null AND
5583 p_instance_rec.system_id <> FND_API.G_MISS_NUM THEN
5584 IF p_generic_id_tbl.count > 0 then
5585 For gen_count in p_generic_id_tbl.FIRST .. p_generic_id_tbl.LAST
5586 LOOP
5587 IF p_generic_id_tbl(gen_count).generic_id = p_instance_rec.system_id AND
5588 p_generic_id_tbl(gen_count).id_type = 'SYSTEM' then
5589 l_valid_flag := p_generic_id_tbl(gen_count).valid_flag;
5590 l_exists_flag := 'Y';
5591 exit;
5592 END IF;
5593 END LOOP;
5594 --
5595 IF l_valid_flag <> 'Y' THEN
5596 FND_MESSAGE.SET_NAME('CSI','CSI_API_INVALID_SYSTEM_ID');
5597 FND_MESSAGE.SET_TOKEN('SYSTEM_ID',p_instance_rec.system_id);
5598 FND_MSG_PUB.Add;
5599 RAISE fnd_api.g_exc_error;
5600 END IF;
5601 END IF;
5602 --
5603 IF l_exists_flag <> 'Y' THEN
5604 p_ins_count_rec.generic_count := p_ins_count_rec.generic_count + 1;
5605 p_generic_id_tbl(p_ins_count_rec.generic_count).generic_id := p_instance_rec.system_id;
5606 p_generic_id_tbl(p_ins_count_rec.generic_count).id_type := 'SYSTEM';
5607 IF NOT csi_Item_Instance_Vld_pvt.Is_Valid_System_id(
5608 p_instance_rec.system_id) THEN
5609 p_generic_id_tbl(p_ins_count_rec.generic_count).valid_flag := 'N';
5610 RAISE fnd_api.g_exc_error;
5611 ELSE
5612 p_generic_id_tbl(p_ins_count_rec.generic_count).valid_flag := 'Y';
5613 END IF;
5614 END IF;
5615 END IF;
5616
5617 --validation for the instance type
5618 l_valid_flag := 'Y';
5619 l_exists_flag := 'N';
5620 IF ((p_instance_rec.instance_type_code IS NOT NULL) AND
5621 (p_instance_rec.instance_type_code <> FND_API.G_MISS_CHAR)) THEN
5622 IF p_lookup_tbl.count > 0 then
5623 For lookup_count in p_lookup_tbl.FIRST .. p_lookup_tbl.LAST
5624 LOOP
5625 IF p_lookup_tbl(lookup_count).lookup_type = 'INSTANCE_TYPE' AND
5626 p_lookup_tbl(lookup_count).lookup_code = p_instance_rec.instance_type_code THEN
5627 l_valid_flag := p_lookup_tbl(lookup_count).valid_flag;
5628 l_exists_flag := 'Y';
5629 exit;
5630 END IF;
5631 END LOOP;
5632 --
5633 IF l_valid_flag <> 'Y' THEN
5634 FND_MESSAGE.SET_NAME('CSI','CSI_API_INVALID_INSTANCE_TYPE');
5635 FND_MESSAGE.SET_TOKEN('INSTANCE_TYPE_CODE',p_instance_rec.instance_type_code);
5636 FND_MSG_PUB.Add;
5637 RAISE fnd_api.g_exc_error;
5638 END IF;
5639 END IF;
5640 --
5641 IF l_exists_flag <> 'Y' THEN
5642 p_ins_count_rec.lookup_count := p_ins_count_rec.lookup_count + 1;
5643 p_lookup_tbl(p_ins_count_rec.lookup_count).lookup_type := 'INSTANCE_TYPE';
5644 p_lookup_tbl(p_ins_count_rec.lookup_count).lookup_code := p_instance_rec.instance_type_code;
5645 IF NOT csi_Item_Instance_Vld_pvt.Is_Valid_Instance_Type(
5646 p_instance_rec.instance_type_code) THEN
5647 p_lookup_tbl(p_ins_count_rec.lookup_count).valid_flag := 'N';
5648 RAISE fnd_api.g_exc_error;
5649 ELSE
5650 p_lookup_tbl(p_ins_count_rec.lookup_count).valid_flag := 'Y';
5651 END IF;
5652 END IF;
5653 END IF;
5654 --validation for the instance usage code
5655 l_valid_flag := 'Y';
5656 l_exists_flag := 'N';
5657 IF ((p_instance_rec.instance_usage_code IS NOT NULL) AND
5658 (p_instance_rec.instance_usage_code <> FND_API.G_MISS_CHAR)) THEN
5659 IF p_lookup_tbl.count > 0 THEN
5660 For lookup_count in p_lookup_tbl.FIRST .. p_lookup_tbl.LAST
5661 LOOP
5662 IF p_lookup_tbl(lookup_count).lookup_type = 'INSTANCE_USAGE' AND
5663 p_lookup_tbl(lookup_count).lookup_code = p_instance_rec.instance_usage_code THEN
5664 l_valid_flag := p_lookup_tbl(lookup_count).valid_flag;
5665 l_exists_flag := 'Y';
5666 exit;
5667 END IF;
5668 End Loop;
5669 --
5670 if l_valid_flag <> 'Y' then
5671 FND_MESSAGE.SET_NAME('CSI','CSI_API_INVALID_USAGE_CODE');
5672 FND_MESSAGE.SET_TOKEN('INSTANCE_USAGE_CODE',p_instance_rec.instance_usage_code);
5673 FND_MSG_PUB.Add;
5674 RAISE fnd_api.g_exc_error;
5675 end if;
5676 End if;
5677 --
5678 IF l_exists_flag <> 'Y' THEN
5679 p_ins_count_rec.lookup_count := p_ins_count_rec.lookup_count + 1;
5680 p_lookup_tbl(p_ins_count_rec.lookup_count).lookup_type := 'INSTANCE_USAGE';
5681 p_lookup_tbl(p_ins_count_rec.lookup_count).lookup_code := p_instance_rec.instance_usage_code;
5682 IF NOT csi_Item_Instance_Vld_pvt.Valid_Inst_Usage_Code(
5683 p_instance_rec.instance_usage_code) THEN
5684 p_lookup_tbl(p_ins_count_rec.lookup_count).valid_flag := 'N';
5685 RAISE fnd_api.g_exc_error;
5686 ELSE
5687 p_lookup_tbl(p_ins_count_rec.lookup_count).valid_flag := 'Y';
5688 END IF;
5689 END IF;
5690 END IF;
5691 -- Addition of columns for FA Integration
5692 --validation for the operational status
5693 l_valid_flag := 'Y';
5694 l_exists_flag := 'N';
5695 IF ((p_instance_rec.operational_status_code IS NOT NULL) AND
5696 (p_instance_rec.operational_status_code <> FND_API.G_MISS_CHAR)) THEN
5697 IF p_lookup_tbl.count > 0 THEN
5698 For lookup_count in p_lookup_tbl.FIRST .. p_lookup_tbl.LAST
5699 LOOP
5700 IF p_lookup_tbl(lookup_count).lookup_type = 'OPERATIONAL_STATUS' AND
5701 p_lookup_tbl(lookup_count).lookup_code = p_instance_rec.operational_status_code
5702 THEN
5703 l_valid_flag := p_lookup_tbl(lookup_count).valid_flag;
5704 l_exists_flag := 'Y';
5705 exit;
5706 END IF;
5707 End Loop;
5708 --
5709 if l_valid_flag <> 'Y' then
5710 FND_MESSAGE.SET_NAME('CSI','CSI_OPERATIONAL_STATUS_CODE');
5711 FND_MESSAGE.SET_TOKEN('OPERATIONAL_STATUS_CODE',p_instance_rec.operational_status_code);
5712 FND_MSG_PUB.Add;
5713 RAISE fnd_api.g_exc_error;
5714 end if;
5715 End if;
5716 --
5717 IF l_exists_flag <> 'Y' THEN
5718 p_ins_count_rec.lookup_count := p_ins_count_rec.lookup_count + 1;
5719 p_lookup_tbl(p_ins_count_rec.lookup_count).lookup_type := 'OPERATIONAL_STATUS';
5720 p_lookup_tbl(p_ins_count_rec.lookup_count).lookup_code := p_instance_rec.operational_status_code;
5721 IF NOT csi_Item_Instance_Vld_pvt.Valid_operational_status(
5722 p_instance_rec.operational_status_code) THEN
5723 p_lookup_tbl(p_ins_count_rec.lookup_count).valid_flag := 'N';
5724 RAISE fnd_api.g_exc_error;
5725 ELSE
5726 p_lookup_tbl(p_ins_count_rec.lookup_count).valid_flag := 'Y';
5727 END IF;
5728 END IF;
5729 ELSE
5730 IF ((p_instance_rec.operational_status_code IS NULL) OR
5731 (p_instance_rec.operational_status_code = FND_API.G_MISS_CHAR))
5732 THEN
5733 p_instance_rec.operational_status_code:='NOT_USED';
5734 END IF;
5735 END IF;
5736
5737
5738 -- Following code has been added for operational_status_code
5739 -- If owner is Internal then
5740
5741
5742 IF l_owner = l_int_party_id
5743 THEN
5744 IF p_instance_rec.location_type_code IN ('WIP','IN_TRANSIT','VENDOR_SITE')
5745 AND p_instance_rec.operational_status_code NOT IN ('NOT_USED','OUT_OF_SERVICE')
5746 THEN
5747 p_instance_rec.operational_status_code := 'NOT_USED';
5748 ELSIF p_instance_rec.location_type_code IN ('PROJECT')
5749 AND p_instance_rec.operational_status_code ='IN_SERVICE'
5750 THEN
5751 p_instance_rec.operational_status_code := 'NOT_USED';
5752 ELSIF p_instance_rec.location_type_code IN ('INVENTORY','HZ_LOCATIONS')
5753 AND p_instance_rec.operational_status_code NOT IN ('NOT_USED','INSTALLED','OUT_OF_SERVICE','IN_SERVICE')
5754 THEN
5755 p_instance_rec.operational_status_code := 'NOT_USED';
5756 END IF;
5757 ELSE -- Owner is an external party
5758 IF p_instance_rec.location_type_code IN ('WIP','IN_TRANSIT','VENDOR_SITE')
5759 AND p_instance_rec.operational_status_code NOT IN ('NOT_USED','OUT_OF_SERVICE')
5760 THEN
5761 p_instance_rec.operational_status_code := 'NOT_USED';
5762 ELSIF p_instance_rec.location_type_code ='PROJECT'
5763 AND p_instance_rec.operational_status_code ='IN_SERVICE'
5764 THEN
5765 p_instance_rec.operational_status_code := 'NOT_USED';
5766 ELSIF p_instance_rec.location_type_code IN ('INVENTORY','HZ_LOCATIONS')
5767 AND p_instance_rec.operational_status_code NOT IN ('NOT_USED','INSTALLED','OUT_OF_SERVICE','IN_SERVICE')
5768 THEN
5769 p_instance_rec.operational_status_code := 'NOT_USED';
5770 END IF;
5771 END IF;
5772
5773
5774 IF ((p_instance_rec.purchase_currency_code IS NOT NULL) AND
5775 (p_instance_rec.purchase_currency_code <> FND_API.G_MISS_CHAR)
5776 )
5777 THEN
5778 p_instance_rec.purchase_currency_code := UPPER(p_instance_rec.purchase_currency_code);
5779 IF NOT csi_item_instance_vld_pvt.valid_currency_code
5780 (p_currency_code => p_instance_rec.purchase_currency_code)
5781 THEN
5782 RAISE fnd_api.g_exc_error;
5783 END IF;
5784 END IF;
5785
5786 IF ((p_instance_rec.payables_currency_code IS NOT NULL) AND
5787 (p_instance_rec.payables_currency_code <> FND_API.G_MISS_CHAR)
5788 )
5789 THEN
5790 p_instance_rec.payables_currency_code := UPPER(p_instance_rec.payables_currency_code);
5791 IF NOT csi_item_instance_vld_pvt.valid_currency_code
5792 (p_currency_code => p_instance_rec.payables_currency_code)
5793 THEN
5794 RAISE fnd_api.g_exc_error;
5795 END IF;
5796 END IF;
5797
5798 IF ((p_instance_rec.sales_currency_code IS NOT NULL) AND
5799 (p_instance_rec.sales_currency_code <> FND_API.G_MISS_CHAR)
5800 )
5801 THEN
5802 p_instance_rec.sales_currency_code := UPPER(p_instance_rec.sales_currency_code);
5803 IF NOT csi_item_instance_vld_pvt.valid_currency_code
5804 (p_currency_code => p_instance_rec.sales_currency_code)
5805 THEN
5806 RAISE fnd_api.g_exc_error;
5807 END IF;
5808 END IF;
5809
5810 IF (
5811 ((p_instance_rec.purchase_currency_code IS NOT NULL AND
5812 p_instance_rec.purchase_currency_code <> FND_API.G_MISS_CHAR) AND
5813 (p_instance_rec.purchase_unit_price IS NULL OR
5814 p_instance_rec.purchase_unit_price = FND_API.G_MISS_NUM))
5815 OR
5816 ((p_instance_rec.purchase_currency_code IS NULL OR
5817 p_instance_rec.purchase_currency_code = FND_API.G_MISS_CHAR) AND
5818 (p_instance_rec.purchase_unit_price IS NOT NULL AND
5819 p_instance_rec.purchase_unit_price <> FND_API.G_MISS_NUM))
5820 OR
5821 ((p_instance_rec.payables_currency_code IS NOT NULL AND
5822 p_instance_rec.payables_currency_code <> FND_API.G_MISS_CHAR) AND
5823 (p_instance_rec.payables_unit_price IS NULL OR
5824 p_instance_rec.payables_unit_price = FND_API.G_MISS_NUM))
5825 OR
5826 ((p_instance_rec.payables_currency_code IS NULL OR
5827 p_instance_rec.payables_currency_code = FND_API.G_MISS_CHAR) AND
5828 (p_instance_rec.payables_unit_price IS NOT NULL AND
5829 p_instance_rec.payables_unit_price <> FND_API.G_MISS_NUM))
5830 OR
5831 ((p_instance_rec.sales_currency_code IS NOT NULL AND
5832 p_instance_rec.sales_currency_code <> FND_API.G_MISS_CHAR) AND
5833 (p_instance_rec.sales_unit_price IS NULL OR
5834 p_instance_rec.sales_unit_price = FND_API.G_MISS_NUM))
5835 OR
5836 ((p_instance_rec.sales_currency_code IS NULL OR
5837 p_instance_rec.sales_currency_code = FND_API.G_MISS_CHAR) AND
5838 (p_instance_rec.sales_unit_price IS NOT NULL AND
5839 p_instance_rec.sales_unit_price <> FND_API.G_MISS_NUM))
5840 )
5841 THEN
5842 FND_MESSAGE.SET_NAME('CSI','CSI_NO_PRICE_OR_CODE');
5843 FND_MSG_PUB.Add;
5844 RAISE fnd_api.g_exc_error;
5845 END IF;
5846 -- End addition of columns for FA Integration
5847
5848 --validation for customer view flag
5849 IF ((p_instance_rec.CUSTOMER_VIEW_FLAG IS NULL) OR
5850 (p_instance_rec.CUSTOMER_VIEW_FLAG = FND_API.G_MISS_CHAR)) THEN
5851 p_instance_rec.CUSTOMER_VIEW_FLAG := 'Y';
5852 END IF;
5853
5854 --validation for merchant view flag
5855 IF ((p_instance_rec.MERCHANT_VIEW_FLAG IS NULL) OR
5856 (p_instance_rec.MERCHANT_VIEW_FLAG = FND_API.G_MISS_CHAR)) THEN
5857 p_instance_rec.MERCHANT_VIEW_FLAG := 'N';
5858 END IF;
5859
5860 --validation for sellable flag
5861 IF ((p_instance_rec.SELLABLE_FLAG IS NULL) OR
5862 (p_instance_rec.SELLABLE_FLAG = FND_API.G_MISS_CHAR)) THEN
5863 p_instance_rec.SELLABLE_FLAG := 'Y';
5864 END IF;
5865
5866 -- Begin Add Code for Siebel Genesis Project
5867 --validation for source_code
5868 IF ((p_instance_rec.SOURCE_CODE IS NULL) OR
5869 (p_instance_rec.SOURCE_CODE = FND_API.G_MISS_CHAR)) THEN
5870 p_instance_rec.SOURCE_CODE := 'ORCL';
5871 END IF;
5872 -- End Add Code for Siebel Genesis Project
5873
5874 -- Validation of Creation_completion_flag
5875 IF ((p_instance_rec.instance_id IS NOT NULL)
5876 AND (p_instance_rec.inventory_item_id IS NOT NULL)
5877 AND (p_instance_rec.inv_master_organization_id IS NOT NULL)
5878 -- AND (((l_serial_control IN (2,5,6))
5879 AND (((csi_Item_Instance_Vld_pvt.Is_treated_serialized
5880 ( p_serial_control_code => l_serial_control
5881 ,p_location_type_code => p_instance_rec.location_type_code
5882 ,p_transaction_type_id => p_txn_rec.transaction_type_id
5883 )) --Added by sk on 09/13/01
5884 AND ((p_instance_rec.serial_number IS NOT NULL)
5885 AND (p_instance_rec.serial_number <> FND_API.G_MISS_CHAR)))
5886 -- OR (l_serial_control NOT IN (2,5,6)))
5887 OR ( NOT (csi_Item_Instance_Vld_pvt.Is_treated_serialized
5888 ( p_serial_control_code => l_serial_control
5889 ,p_location_type_code => p_instance_rec.location_type_code
5890 ,p_transaction_type_id => p_txn_rec.transaction_type_id
5891 )) ) ) --Added by sk on 09/13/01
5892 AND (((l_lot_control = 2)
5893 AND ((p_instance_rec.lot_number IS NOT NULL)
5894 AND (p_instance_rec.lot_number <> FND_API.G_MISS_CHAR)))
5895 OR (l_lot_control <> 2))
5896 AND (p_instance_rec.instance_status_id IS NOT NULL)
5897 AND (((l_rev_control = 2)
5898 AND ((p_instance_rec.inventory_revision IS NOT NULL)
5899 AND (p_instance_rec.inventory_revision <> FND_API.G_MISS_CHAR)))
5900 OR (l_rev_control <> 2))
5901 AND ((p_instance_rec.location_type_code IS NOT NULL) AND
5902 (p_instance_rec.location_type_code <> FND_API.G_MISS_CHAR)))
5903 THEN
5904 p_instance_rec.creation_complete_flag := 'Y';
5905 ELSE
5906 p_instance_rec.creation_complete_flag := 'N';
5907 END IF;
5908
5909 IF p_instance_rec.vld_organization_id IS NOT NULL
5910 AND p_instance_rec.vld_organization_id <> fnd_api.g_miss_num
5911 THEN
5912 l_last_vld_organization_id := p_instance_rec.vld_organization_id;
5913 ELSE
5914 l_last_vld_organization_id := p_instance_rec.inv_master_organization_id;
5915 END IF;
5916
5917 -- Validation for install location
5918 -- Start addition by sk on 02/06/02 for bug 2213922
5919 IF p_instance_rec.install_location_type_code IS NOT NULL AND
5920 p_instance_rec.install_location_type_code <> fnd_api.g_miss_char
5921 THEN
5922 IF p_instance_rec.install_location_type_code = 'HZ_PARTY_SITES' OR
5923 p_instance_rec.install_location_type_code = 'HZ_LOCATIONS' OR
5924 p_instance_rec.install_location_type_code = 'VENDOR_SITE' OR
5925 p_instance_rec.install_location_type_code = 'INTERNAL_SITE' OR --4926773
5926 p_instance_rec.install_location_type_code = 'HR_LOCATIONS'
5927 THEN
5928 IF p_instance_rec.install_location_id IS NULL OR
5929 p_instance_rec.install_location_id = FND_API.G_MISS_NUM THEN
5930 FND_MESSAGE.SET_NAME('CSI','CSI_INVALID_INSTALL_LOC');
5931 FND_MSG_PUB.ADD;
5932 RAISE fnd_api.g_exc_error;
5933 END IF;
5934 --
5935 l_exists_flag := 'N';
5936 l_valid_flag := 'Y';
5937 IF p_location_tbl.count > 0 THEN
5938 For loc_row in p_location_tbl.FIRST .. p_location_tbl.LAST
5939 Loop
5940 IF p_location_tbl(loc_row).location_type_code = p_instance_rec.install_location_type_code
5941 AND p_location_tbl(loc_row).location_id = p_instance_rec.install_location_id THEN
5942 l_exists_flag := 'Y';
5943 l_valid_flag := p_location_tbl(loc_row).valid_flag;
5944 EXIT;
5945 END IF;
5946 End Loop;
5947 --
5948 IF l_valid_flag <> 'Y' THEN
5949 FND_MESSAGE.SET_NAME('CSI','CSI_INVALID_INSTALL_LOC');
5950 FND_MSG_PUB.ADD;
5951 RAISE fnd_api.g_exc_error;
5952 END IF;
5953 END IF;
5954 --
5955 IF l_exists_flag <> 'Y' THEN
5956 p_ins_count_rec.location_count := p_ins_count_rec.location_count + 1;
5957 p_location_tbl(p_ins_count_rec.location_count).location_type_code :=
5958 p_instance_rec.install_location_type_code;
5959 p_location_tbl(p_ins_count_rec.location_count).location_id :=
5960 p_instance_rec.install_location_id;
5961 IF csi_item_instance_vld_pvt.Is_Valid_Location_ID
5962 (
5963 p_location_source_table => p_instance_rec.install_location_type_code
5964 ,p_location_id => p_instance_rec.install_location_id
5965 ) THEN
5966 p_location_tbl(p_ins_count_rec.location_count).valid_flag := 'Y';
5967 ELSE
5968 p_location_tbl(p_ins_count_rec.location_count).valid_flag := 'N';
5969 RAISE fnd_api.g_exc_error;
5970 END IF;
5971 END IF;
5972 ELSE
5973 FND_MESSAGE.SET_NAME('CSI','CSI_INVALID_INSTALL_LOC');
5974 FND_MSG_PUB.Add;
5975 RAISE FND_API.G_EXC_ERROR;
5976 END IF;
5977 END IF;
5978 csi_gen_utility_pvt.put_line('Before Insert row...');
5979 -- End addition by sk on 02/06/02 for bug 2213922
5980 IF p_called_from_grp <> fnd_api.g_true THEN
5981 -- Create a row in csi_item_instances
5982 CSI_ITEM_INSTANCES_PKG.Insert_Row
5983 ( px_INSTANCE_ID => p_instance_rec.INSTANCE_ID
5984 ,p_INSTANCE_NUMBER => p_instance_rec.INSTANCE_NUMBER
5985 ,p_EXTERNAL_REFERENCE => p_instance_rec.EXTERNAL_REFERENCE
5986 ,p_INVENTORY_ITEM_ID => p_instance_rec.INVENTORY_ITEM_ID
5987 ,p_INVENTORY_REVISION => p_instance_rec.INVENTORY_REVISION
5988 ,p_INV_MASTER_ORGANIZATION_ID => p_instance_rec.INV_MASTER_ORGANIZATION_ID
5989 ,p_SERIAL_NUMBER => p_instance_rec.SERIAL_NUMBER
5990 ,p_MFG_SERIAL_NUMBER_FLAG => p_instance_rec.MFG_SERIAL_NUMBER_FLAG
5991 ,p_LOT_NUMBER => p_instance_rec.LOT_NUMBER
5992 ,p_QUANTITY => p_instance_rec.QUANTITY
5993 ,p_UNIT_OF_MEASURE => p_instance_rec.UNIT_OF_MEASURE
5994 ,p_ACCOUNTING_CLASS_CODE => p_instance_rec.ACCOUNTING_CLASS_CODE
5995 ,p_INSTANCE_CONDITION_ID => p_instance_rec.INSTANCE_CONDITION_ID
5996 ,p_INSTANCE_STATUS_ID => p_instance_rec.INSTANCE_STATUS_ID
5997 ,p_CUSTOMER_VIEW_FLAG => p_instance_rec.CUSTOMER_VIEW_FLAG
5998 ,p_MERCHANT_VIEW_FLAG => p_instance_rec.MERCHANT_VIEW_FLAG
5999 ,p_SELLABLE_FLAG => p_instance_rec.SELLABLE_FLAG
6000 ,p_SYSTEM_ID => p_instance_rec.SYSTEM_ID
6001 ,p_INSTANCE_TYPE_CODE => p_instance_rec.INSTANCE_TYPE_CODE
6002 ,p_ACTIVE_START_DATE => p_instance_rec.ACTIVE_START_DATE
6003 ,p_ACTIVE_END_DATE => p_instance_rec.ACTIVE_END_DATE
6004 ,p_LOCATION_TYPE_CODE => p_instance_rec.LOCATION_TYPE_CODE
6005 ,p_LOCATION_ID => p_instance_rec.LOCATION_ID
6006 ,p_INV_ORGANIZATION_ID => p_instance_rec.INV_ORGANIZATION_ID
6007 ,p_INV_SUBINVENTORY_NAME => p_instance_rec.INV_SUBINVENTORY_NAME
6008 ,p_INV_LOCATOR_ID => p_instance_rec.INV_LOCATOR_ID
6009 ,p_PA_PROJECT_ID => p_instance_rec.PA_PROJECT_ID
6010 ,p_PA_PROJECT_TASK_ID => p_instance_rec.PA_PROJECT_TASK_ID
6011 ,p_IN_TRANSIT_ORDER_LINE_ID => p_instance_rec.IN_TRANSIT_ORDER_LINE_ID
6012 ,p_WIP_JOB_ID => p_instance_rec.WIP_JOB_ID
6013 ,p_PO_ORDER_LINE_ID => p_instance_rec.PO_ORDER_LINE_ID
6014 ,p_LAST_OE_ORDER_LINE_ID => p_instance_rec.LAST_OE_ORDER_LINE_ID
6015 ,p_LAST_OE_RMA_LINE_ID => p_instance_rec.LAST_OE_RMA_LINE_ID
6016 ,p_LAST_PO_PO_LINE_ID => p_instance_rec.LAST_PO_PO_LINE_ID
6017 ,p_LAST_OE_PO_NUMBER => p_instance_rec.LAST_OE_PO_NUMBER
6018 ,p_LAST_WIP_JOB_ID => p_instance_rec.LAST_WIP_JOB_ID
6019 ,p_LAST_PA_PROJECT_ID => p_instance_rec.LAST_PA_PROJECT_ID
6020 ,p_LAST_PA_TASK_ID => p_instance_rec.LAST_PA_TASK_ID
6021 ,p_LAST_OE_AGREEMENT_ID => p_instance_rec.LAST_OE_AGREEMENT_ID
6022 ,p_INSTALL_DATE => p_instance_rec.INSTALL_DATE
6023 ,p_MANUALLY_CREATED_FLAG => p_instance_rec.MANUALLY_CREATED_FLAG
6024 ,p_RETURN_BY_DATE => p_instance_rec.RETURN_BY_DATE
6025 ,p_ACTUAL_RETURN_DATE => p_instance_rec.ACTUAL_RETURN_DATE
6026 ,p_CREATION_COMPLETE_FLAG => p_instance_rec.CREATION_COMPLETE_FLAG
6027 ,p_COMPLETENESS_FLAG => p_instance_rec.COMPLETENESS_FLAG
6028 ,p_CONTEXT => p_instance_rec.CONTEXT
6029 ,p_ATTRIBUTE1 => p_instance_rec.ATTRIBUTE1
6030 ,p_ATTRIBUTE2 => p_instance_rec.ATTRIBUTE2
6031 ,p_ATTRIBUTE3 => p_instance_rec.ATTRIBUTE3
6032 ,p_ATTRIBUTE4 => p_instance_rec.ATTRIBUTE4
6033 ,p_ATTRIBUTE5 => p_instance_rec.ATTRIBUTE5
6034 ,p_ATTRIBUTE6 => p_instance_rec.ATTRIBUTE6
6035 ,p_ATTRIBUTE7 => p_instance_rec.ATTRIBUTE7
6036 ,p_ATTRIBUTE8 => p_instance_rec.ATTRIBUTE8
6037 ,p_ATTRIBUTE9 => p_instance_rec.ATTRIBUTE9
6038 ,p_ATTRIBUTE10 => p_instance_rec.ATTRIBUTE10
6039 ,p_ATTRIBUTE11 => p_instance_rec.ATTRIBUTE11
6040 ,p_ATTRIBUTE12 => p_instance_rec.ATTRIBUTE12
6041 ,p_ATTRIBUTE13 => p_instance_rec.ATTRIBUTE13
6042 ,p_ATTRIBUTE14 => p_instance_rec.ATTRIBUTE14
6043 ,p_ATTRIBUTE15 => p_instance_rec.ATTRIBUTE15
6044 ,p_CREATED_BY => FND_GLOBAL.USER_ID
6045 ,p_CREATION_DATE => SYSDATE
6046 ,p_LAST_UPDATED_BY => FND_GLOBAL.USER_ID
6047 ,p_LAST_UPDATE_DATE => SYSDATE
6048 ,p_LAST_UPDATE_LOGIN => FND_GLOBAL.CONC_LOGIN_ID
6049 ,p_OBJECT_VERSION_NUMBER => 1
6050 ,p_LAST_TXN_LINE_DETAIL_ID => p_instance_rec.LAST_TXN_LINE_DETAIL_ID
6051 ,p_INSTALL_LOCATION_TYPE_CODE => p_instance_rec.INSTALL_LOCATION_TYPE_CODE
6052 ,p_INSTALL_LOCATION_ID => p_instance_rec.INSTALL_LOCATION_ID
6053 ,p_INSTANCE_USAGE_CODE => p_instance_rec.INSTANCE_USAGE_CODE
6054 ,p_last_vld_organization_id => l_last_vld_organization_id
6055 ,p_CONFIG_INST_HDR_ID => p_instance_rec.CONFIG_INST_HDR_ID
6056 ,p_CONFIG_INST_REV_NUM => p_instance_rec.CONFIG_INST_REV_NUM
6057 ,p_CONFIG_INST_ITEM_ID => p_instance_rec.CONFIG_INST_ITEM_ID
6058 ,p_CONFIG_VALID_STATUS => p_instance_rec.CONFIG_VALID_STATUS
6059 ,p_INSTANCE_DESCRIPTION => p_instance_rec.INSTANCE_DESCRIPTION
6060 ,p_REQUEST_ID => p_instance_rec.REQUEST_ID
6061 ,p_PROGRAM_APPLICATION_ID => p_instance_rec.PROGRAM_APPLICATION_ID
6062 ,p_PROGRAM_ID => p_instance_rec.PROGRAM_ID
6063 ,p_PROGRAM_UPDATE_DATE => p_instance_rec.PROGRAM_UPDATE_DATE
6064 --start of parameters addition for eam integration--
6065 ,p_NETWORK_ASSET_FLAG => p_instance_rec.NETWORK_ASSET_FLAG
6066 ,p_MAINTAINABLE_FLAG => p_instance_rec.MAINTAINABLE_FLAG
6067 ,p_PN_LOCATION_ID => p_instance_rec.PN_LOCATION_ID
6068 ,p_ASSET_CRITICALITY_CODE => p_instance_rec.ASSET_CRITICALITY_CODE
6069 ,p_CATEGORY_ID => p_instance_rec.CATEGORY_ID
6070 ,p_EQUIPMENT_GEN_OBJECT_ID => p_instance_rec.EQUIPMENT_GEN_OBJECT_ID
6071 ,p_INSTANTIATION_FLAG => p_instance_rec.INSTANTIATION_FLAG
6072 ,p_LINEAR_LOCATION_ID => p_instance_rec.LINEAR_LOCATION_ID
6073 ,p_OPERATIONAL_LOG_FLAG => p_instance_rec.OPERATIONAL_LOG_FLAG
6074 ,p_CHECKIN_STATUS => p_instance_rec.CHECKIN_STATUS
6075 ,p_SUPPLIER_WARRANTY_EXP_DATE => p_instance_rec.SUPPLIER_WARRANTY_EXP_DATE
6076 ,p_ATTRIBUTE16 => p_instance_rec.ATTRIBUTE16
6077 ,p_ATTRIBUTE17 => p_instance_rec.ATTRIBUTE17
6078 ,p_ATTRIBUTE18 => p_instance_rec.ATTRIBUTE18
6079 ,p_ATTRIBUTE19 => p_instance_rec.ATTRIBUTE19
6080 ,p_ATTRIBUTE20 => p_instance_rec.ATTRIBUTE20
6081 ,p_ATTRIBUTE21 => p_instance_rec.ATTRIBUTE21
6082 ,p_ATTRIBUTE22 => p_instance_rec.ATTRIBUTE22
6083 ,p_ATTRIBUTE23 => p_instance_rec.ATTRIBUTE23
6084 ,p_ATTRIBUTE24 => p_instance_rec.ATTRIBUTE24
6085 ,p_ATTRIBUTE25 => p_instance_rec.ATTRIBUTE25
6086 ,p_ATTRIBUTE26 => p_instance_rec.ATTRIBUTE26
6087 ,p_ATTRIBUTE27 => p_instance_rec.ATTRIBUTE27
6088 ,p_ATTRIBUTE28 => p_instance_rec.ATTRIBUTE28
6089 ,p_ATTRIBUTE29 => p_instance_rec.ATTRIBUTE29
6090 ,p_ATTRIBUTE30 => p_instance_rec.ATTRIBUTE30
6091 --end of parameters addition for eam integration--
6092 -- Addition of columns for FA Integration
6093 ,p_PURCHASE_UNIT_PRICE => p_instance_rec.PURCHASE_UNIT_PRICE
6094 ,p_PURCHASE_CURRENCY_CODE => p_instance_rec.PURCHASE_CURRENCY_CODE
6095 ,p_PAYABLES_UNIT_PRICE => p_instance_rec.PAYABLES_UNIT_PRICE
6096 ,p_PAYABLES_CURRENCY_CODE => p_instance_rec.PAYABLES_CURRENCY_CODE
6097 ,p_SALES_UNIT_PRICE => p_instance_rec.SALES_UNIT_PRICE
6098 ,p_SALES_CURRENCY_CODE => p_instance_rec.SALES_CURRENCY_CODE
6099 ,p_OPERATIONAL_STATUS_CODE => p_instance_rec.OPERATIONAL_STATUS_CODE
6100 -- End addition of columns for FA Integration
6101 ,p_SOURCE_CODE => p_instance_rec.SOURCE_CODE -- Added Code for Siebel Genesis Project
6102 );
6103
6104
6105
6106 IF NVL(l_call_counters,'N') = 'Y' AND
6107 NVL(p_instance_rec.network_asset_flag,'N') <> 'Y' -- Added for 5219534
6108 THEN
6109 IF p_instance_rec.quantity = 1 THEN
6110 -- calling the Counters API to associate counters to an instance
6111 -- Added to restrict the counter instantiation for an item in 'INVENTORY',
6112 -- by rtalluri for the enh. 2308703
6113 IF NOT((l_serial_control IN (1,6)) AND
6114 (p_instance_rec.location_type_code = 'INVENTORY')) THEN
6115
6116 -- Since the replacement API CSI_COUNTER_TEMPLATE_PUB does not
6117 -- for CS_Counters_PUB.Ctr_Grp_Template_Exists
6118 -- does not provide a function Ctr_Grp_Template_Exists,
6119 -- Hence writing the following code...
6120 --l_counter_group_id := NULL;
6121 BEGIN
6122 SELECT count(*)
6123 INTO l_counter_group_id
6124 FROM csi_ctr_item_associations
6125 WHERE inventory_item_id = p_instance_rec.inventory_item_id
6126 AND ROWNUM = 1;
6127 EXCEPTION
6128 WHEN NO_DATA_FOUND THEN
6129 NULL;
6130 -- Too many rows exception will not arise
6131 -- as ctr API will make sure there will be only one record in
6132 -- csi_ctr_item_associations with a particular inv_id.
6133 END;
6134 -- R12 Changes ...
6135 /* IF CS_Counters_PUB.Ctr_Grp_Template_Exists(p_instance_rec.inventory_item_id) THEN
6136 CS_Counters_PUB.AutoInstantiate_Counters */
6137 IF l_counter_group_id <> 0
6138 THEN
6139 -- CS_Counters_PUB.AutoInstantiate_Counters
6140 csi_counter_template_pub.autoinstantiate_counters
6141 ( p_api_version => 1.0
6142 ,p_init_msg_list => FND_API.G_FALSE
6143 ,p_commit => FND_API.G_FALSE
6144 ,x_return_status => x_return_status
6145 ,x_msg_count => x_msg_count
6146 ,x_msg_data => x_msg_data
6147 ,p_source_object_id_template => p_instance_rec.inventory_item_id
6148 ,p_source_object_id_instance => p_instance_rec.instance_id
6149 ,x_ctr_id_template => l_ctr_id_template
6150 ,x_ctr_id_instance => l_ctr_id_instance
6151 ,x_ctr_grp_id_template => l_ctr_grp_id_template
6152 ,x_ctr_grp_id_instance => l_ctr_grp_id_instance
6153 ,p_organization_id => l_last_vld_organization_id -- srramakr. should pass the organization_id
6154 );
6155
6156 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS)
6157 THEN
6158 FND_MESSAGE.SET_NAME('CSI','CSI_API_NO_COUNTER_ASSOCIATION');
6159 FND_MESSAGE.SET_TOKEN('COUNTER','CSI_COUNTER_TEMPLATE_PUB.AUTOINSTANTIATE_COUNTERS');
6160 FND_MSG_PUB.Add;
6161 RAISE FND_API.G_EXC_ERROR;
6162 END IF;
6163 -- srramakr Bug # 2255391. In CTO, since the configured item is created as a part of Sales Order
6164 -- processing, there is no way a counter gets attached to this new item.
6165 -- In order to attach the counter, we look at the base model and use its counter group
6166 -- for the configured item. After attaching it, we call the Autoinstantiate API.
6167 ELSE
6168 l_base_item_id := null;
6169 Begin
6170 select base_item_id
6171 into l_base_item_id
6172 from MTL_SYSTEM_ITEMS_B
6173 where inventory_item_id = p_instance_rec.inventory_item_id
6174 and organization_id = l_last_vld_organization_id;
6175 Exception
6176 when no_data_found then
6177 null;
6178 when others then
6179 null;
6180 End;
6181 --
6182 IF l_base_item_id is not null THEN
6183 -- call the Counter Grp association API for the Configured Item
6184 For ctr_rec in CTR_GROUP(l_base_item_id)
6185 Loop
6186 Begin
6187 l_ctr_item_associations_rec.group_id := ctr_rec.group_id;
6188 l_ctr_item_associations_rec.inventory_item_id := p_instance_rec.inventory_item_id;
6189
6190 --CS_Counters_PUB.Create_Ctr_Association
6191 csi_counter_template_pub.create_item_association
6192 (p_api_version => 1.0
6193 ,p_commit => fnd_api.g_false
6194 ,p_init_msg_list => fnd_api.g_false
6195 ,p_validation_level => p_validation_level
6196 ,p_ctr_item_associations_rec => l_ctr_item_associations_rec
6197 ,x_return_status => x_return_status
6198 ,x_msg_count => x_msg_count
6199 ,x_msg_data => x_msg_data
6200 );
6201 End;
6202 End Loop;
6203 --
6204 --IF CS_Counters_PUB.Ctr_Grp_Template_Exists(p_instance_rec.inventory_item_id) THEN
6205 IF l_counter_group_id <> 0 THEN
6206
6207 csi_counter_template_pub.autoinstantiate_counters
6208 ( p_api_version => 1.0
6209 ,p_init_msg_list => FND_API.G_FALSE
6210 ,p_commit => FND_API.G_FALSE
6211 ,x_return_status => x_return_status
6212 ,x_msg_count => x_msg_count
6213 ,x_msg_data => x_msg_data
6214 ,p_source_object_id_template => p_instance_rec.inventory_item_id
6215 ,p_source_object_id_instance => p_instance_rec.instance_id
6216 ,x_ctr_id_template => l_ctr_id_template
6217 ,x_ctr_id_instance => l_ctr_id_instance
6218 ,x_ctr_grp_id_template => l_ctr_grp_id_template
6219 ,x_ctr_grp_id_instance => l_ctr_grp_id_instance
6220 ,p_organization_id => l_last_vld_organization_id -- srramakr. should pass the organization_id
6221 );
6222 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
6223 FND_MESSAGE.SET_NAME('CSI','CSI_API_NO_COUNTER_ASSOCIATION');
6224 FND_MESSAGE.SET_TOKEN('COUNTER','CSI_COUNTER_TEMPLATE_PUB.AUTOINSTANTIATE_COUNTERS');
6225 FND_MSG_PUB.Add;
6226 RAISE FND_API.G_EXC_ERROR;
6227 END IF; -- return status
6228 END IF; -- ctr. grp template exists1
6229 END IF; -- for l_base_item
6230 END IF; -- ctr.grp template exists2
6231 END IF; -- restrict counter instantiation for 'INVENTORY'
6232 END IF; -- qty check
6233 END IF; -- l_call_counters check
6234
6235 -- Start code addition for eam integration
6236 IF l_eam_item
6237 THEN
6238 eam_objectinstantiation_pub.instantiate_object
6239 (p_api_version => 1.0
6240 ,p_init_msg_list => fnd_api.g_false
6241 ,p_commit => fnd_api.g_false
6242 ,p_validation_level => p_validation_level
6243 ,p_maintenance_object_id => p_instance_rec.instance_id
6244 ,p_maintenance_object_type => 3
6245 ,x_return_status => x_return_status
6246 ,x_msg_count => x_msg_count
6247 ,x_msg_data => x_msg_data
6248 );
6249 IF NOT(x_return_status = fnd_api.g_ret_sts_success)
6250 THEN
6251 csi_gen_utility_pvt.put_line( 'Error from eam_objectinstantiation_pub.instantiate_object...');
6252 RAISE fnd_api.g_exc_error;
6253 END IF;
6254 END IF;
6255 -- End code addition for eam integration
6256 -- Call create_transaction to create txn log
6257 CSI_TRANSACTIONS_PVT.Create_transaction
6258 (
6259 p_api_version => p_api_version
6260 ,p_commit => p_commit
6261 ,p_init_msg_list => p_init_msg_list
6262 ,p_validation_level => p_validation_level
6263 ,p_Success_IF_Exists_Flag => 'Y'
6264 ,p_transaction_rec => p_txn_rec
6265 ,x_return_status => x_return_status
6266 ,x_msg_count => x_msg_count
6267 ,x_msg_data => x_msg_data
6268 );
6269
6270 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
6271 FND_MESSAGE.SET_NAME('CSI','CSI_FAILED_TO_VALIDATE_TXN');
6272 FND_MESSAGE.SET_TOKEN('TRANSACTION_ID',p_txn_rec.transaction_id );
6273 FND_MSG_PUB.Add;
6274 RAISE FND_API.G_EXC_ERROR;
6275 END IF;
6276
6277 -- Get a unique history item instance id from the sequence
6278 l_csi_item_instance_h_id :=
6279 csi_item_instance_vld_pvt.get_csi_item_instance_h_id;
6280
6281 -- Create a row in csi_item_instances_history table
6282 CSI_ITEM_INSTANCES_H_PKG.Insert_Row
6283 ( px_INSTANCE_HISTORY_ID => l_csi_item_instance_h_id
6284 ,p_INSTANCE_ID => p_instance_rec.INSTANCE_ID
6285 ,p_TRANSACTION_ID => p_txn_rec.TRANSACTION_ID
6286 ,p_OLD_INSTANCE_NUMBER => NULL
6287 ,p_NEW_INSTANCE_NUMBER => p_instance_rec.INSTANCE_NUMBER
6288 ,p_OLD_EXTERNAL_REFERENCE => NULL
6289 ,p_NEW_EXTERNAL_REFERENCE => p_instance_rec.EXTERNAL_REFERENCE
6290 ,p_OLD_INVENTORY_ITEM_ID => NULL
6291 ,p_NEW_INVENTORY_ITEM_ID => p_instance_rec.INVENTORY_ITEM_ID
6292 ,p_OLD_INVENTORY_REVISION => NULL
6293 ,p_NEW_INVENTORY_REVISION => p_instance_rec.INVENTORY_REVISION
6294 ,p_OLD_INV_MASTER_ORGZN_ID => NULL
6295 ,p_NEW_INV_MASTER_ORGZN_ID => p_instance_rec.INV_MASTER_ORGANIZATION_ID
6296 ,p_OLD_SERIAL_NUMBER => NULL
6297 ,p_NEW_SERIAL_NUMBER => p_instance_rec.SERIAL_NUMBER
6298 ,p_OLD_MFG_SERIAL_NUMBER_FLAG => NULL
6299 ,p_NEW_MFG_SERIAL_NUMBER_FLAG => p_instance_rec.MFG_SERIAL_NUMBER_FLAG
6300 ,p_OLD_LOT_NUMBER => NULL
6301 ,p_NEW_LOT_NUMBER => p_instance_rec.LOT_NUMBER
6302 ,p_OLD_QUANTITY => NULL
6303 ,p_NEW_QUANTITY => p_instance_rec.QUANTITY
6304 ,p_OLD_UNIT_OF_MEASURE => NULL
6305 ,p_NEW_UNIT_OF_MEASURE => p_instance_rec.UNIT_OF_MEASURE
6306 ,p_OLD_ACCOUNTING_CLASS_CODE => NULL
6307 ,p_NEW_ACCOUNTING_CLASS_CODE => p_instance_rec.ACCOUNTING_CLASS_CODE
6308 ,p_OLD_INSTANCE_CONDITION_ID => NULL
6309 ,p_NEW_INSTANCE_CONDITION_ID => p_instance_rec.INSTANCE_CONDITION_ID
6310 ,p_OLD_INSTANCE_STATUS_ID => NULL
6311 ,p_NEW_INSTANCE_STATUS_ID => p_instance_rec.INSTANCE_STATUS_ID
6312 ,p_OLD_CUSTOMER_VIEW_FLAG => NULL
6313 ,p_NEW_CUSTOMER_VIEW_FLAG => p_instance_rec.CUSTOMER_VIEW_FLAG
6314 ,p_OLD_MERCHANT_VIEW_FLAG => NULL
6315 ,p_NEW_MERCHANT_VIEW_FLAG => p_instance_rec.MERCHANT_VIEW_FLAG
6316 ,p_OLD_SELLABLE_FLAG => NULL
6317 ,p_NEW_SELLABLE_FLAG => p_instance_rec.SELLABLE_FLAG
6318 ,p_OLD_SYSTEM_ID => NULL
6319 ,p_NEW_SYSTEM_ID => p_instance_rec.SYSTEM_ID
6320 ,p_OLD_INSTANCE_TYPE_CODE => NULL
6321 ,p_NEW_INSTANCE_TYPE_CODE => p_instance_rec.INSTANCE_TYPE_CODE
6322 ,p_OLD_ACTIVE_START_DATE => NULL
6323 ,p_NEW_ACTIVE_START_DATE => p_instance_rec.ACTIVE_START_DATE
6324 ,p_OLD_ACTIVE_END_DATE => NULL
6325 ,p_NEW_ACTIVE_END_DATE => p_instance_rec.ACTIVE_END_DATE
6326 ,p_OLD_LOCATION_TYPE_CODE => NULL
6327 ,p_NEW_LOCATION_TYPE_CODE => p_instance_rec.LOCATION_TYPE_CODE
6328 ,p_OLD_LOCATION_ID => NULL
6329 ,p_NEW_LOCATION_ID => p_instance_rec.LOCATION_ID
6330 ,p_OLD_INV_ORGANIZATION_ID => NULL
6331 ,p_NEW_INV_ORGANIZATION_ID => p_instance_rec.INV_ORGANIZATION_ID
6332 ,p_OLD_INV_SUBINVENTORY_NAME => NULL
6333 ,p_NEW_INV_SUBINVENTORY_NAME => p_instance_rec.INV_SUBINVENTORY_NAME
6334 ,p_OLD_INV_LOCATOR_ID => NULL
6335 ,p_NEW_INV_LOCATOR_ID => p_instance_rec.INV_LOCATOR_ID
6336 ,p_OLD_PA_PROJECT_ID => NULL
6337 ,p_NEW_PA_PROJECT_ID => p_instance_rec.PA_PROJECT_ID
6338 ,p_OLD_PA_PROJECT_TASK_ID => NULL
6339 ,p_NEW_PA_PROJECT_TASK_ID => p_instance_rec.PA_PROJECT_TASK_ID
6340 ,p_OLD_IN_TRANSIT_ORDER_LINE_ID => NULL
6341 ,p_NEW_IN_TRANSIT_ORDER_LINE_ID => p_instance_rec.IN_TRANSIT_ORDER_LINE_ID
6342 ,p_OLD_WIP_JOB_ID => NULL
6343 ,p_NEW_WIP_JOB_ID => p_instance_rec.WIP_JOB_ID
6344 ,p_OLD_PO_ORDER_LINE_ID => NULL
6345 ,p_NEW_PO_ORDER_LINE_ID => p_instance_rec.PO_ORDER_LINE_ID
6346 ,p_OLD_COMPLETENESS_FLAG => NULL
6347 ,p_NEW_COMPLETENESS_FLAG => p_instance_rec.COMPLETENESS_FLAG
6348 ,p_FULL_DUMP_FLAG => 'N'
6349 ,p_NEW_CONTEXT => p_instance_rec.CONTEXT
6350 ,P_OLD_CONTEXT => NULL
6351 ,p_NEW_ATTRIBUTE1 => p_instance_rec.ATTRIBUTE1
6352 ,p_OLD_ATTRIBUTE1 => NULL
6353 ,p_NEW_ATTRIBUTE2 => p_instance_rec.ATTRIBUTE2
6354 ,p_OLD_ATTRIBUTE2 => NULL
6355 ,p_NEW_ATTRIBUTE3 => p_instance_rec.ATTRIBUTE3
6356 ,p_OLD_ATTRIBUTE3 => NULL
6357 ,p_NEW_ATTRIBUTE4 => p_instance_rec.ATTRIBUTE4
6358 ,p_OLD_ATTRIBUTE4 => NULL
6359 ,p_NEW_ATTRIBUTE5 => p_instance_rec.ATTRIBUTE5
6360 ,p_OLD_ATTRIBUTE5 => NULL
6361 ,p_NEW_ATTRIBUTE6 => p_instance_rec.ATTRIBUTE6
6362 ,p_OLD_ATTRIBUTE6 => NULL
6363 ,p_NEW_ATTRIBUTE7 => p_instance_rec.ATTRIBUTE7
6364 ,p_OLD_ATTRIBUTE7 => NULL
6365 ,p_NEW_ATTRIBUTE8 => p_instance_rec.ATTRIBUTE8
6366 ,p_OLD_ATTRIBUTE8 => NULL
6367 ,p_NEW_ATTRIBUTE9 => p_instance_rec.ATTRIBUTE9
6368 ,p_OLD_ATTRIBUTE9 => NULL
6369 ,p_NEW_ATTRIBUTE10 => p_instance_rec.ATTRIBUTE10
6370 ,p_OLD_ATTRIBUTE10 => NULL
6371 ,p_NEW_ATTRIBUTE11 => p_instance_rec.ATTRIBUTE11
6372 ,p_OLD_ATTRIBUTE11 => NULL
6373 ,p_NEW_ATTRIBUTE12 => p_instance_rec.ATTRIBUTE12
6374 ,p_OLD_ATTRIBUTE12 => NULL
6375 ,p_NEW_ATTRIBUTE13 => p_instance_rec.ATTRIBUTE13
6376 ,p_OLD_ATTRIBUTE13 => NULL
6377 ,p_NEW_ATTRIBUTE14 => p_instance_rec.ATTRIBUTE14
6378 ,p_OLD_ATTRIBUTE14 => NULL
6379 ,p_NEW_ATTRIBUTE15 => p_instance_rec.ATTRIBUTE15
6380 ,p_OLD_ATTRIBUTE15 => NULL
6381 ,p_CREATED_BY => FND_GLOBAL.USER_ID
6382 ,p_CREATION_DATE => SYSDATE
6383 ,p_LAST_UPDATED_BY => FND_GLOBAL.USER_ID
6384 ,p_LAST_UPDATE_DATE => SYSDATE
6385 ,p_LAST_UPDATE_LOGIN => FND_GLOBAL.CONC_LOGIN_ID
6386 ,p_OBJECT_VERSION_NUMBER => 1
6387 ,p_OLD_INST_LOC_TYPE_CODE => NULL
6388 ,p_NEW_INST_LOC_TYPE_CODE => p_instance_rec.INSTALL_LOCATION_TYPE_CODE
6389 ,p_OLD_INST_LOC_ID => NULL
6390 ,p_NEW_INST_LOC_ID => p_instance_rec.INSTALL_LOCATION_ID
6391 ,p_OLD_INST_USAGE_CODE => NULL
6392 ,p_NEW_INST_USAGE_CODE => p_instance_rec.INSTANCE_USAGE_CODE
6393 ,p_OLD_last_vld_organization_id => NULL
6394 ,p_NEW_last_vld_organization_id => l_last_vld_organization_id
6395 ,p_OLD_CONFIG_INST_REV_NUM => NULL
6396 ,p_NEW_CONFIG_INST_REV_NUM => p_instance_rec.CONFIG_INST_REV_NUM
6397 ,p_OLD_CONFIG_VALID_STATUS => NULL
6398 ,p_NEW_CONFIG_VALID_STATUS => p_instance_rec.CONFIG_VALID_STATUS
6399 ,p_OLD_INSTANCE_DESCRIPTION => NULL
6400 ,p_NEW_INSTANCE_DESCRIPTION => p_instance_rec.INSTANCE_DESCRIPTION
6401 ,p_OLD_INSTALL_DATE => NULL
6402 ,p_NEW_INSTALL_DATE => p_instance_rec.INSTALL_DATE
6403 ,p_OLD_RETURN_BY_DATE => NULL
6404 ,p_NEW_RETURN_BY_DATE => p_instance_rec.RETURN_BY_DATE
6405 ,p_OLD_ACTUAL_RETURN_DATE => NULL
6406 ,p_NEW_ACTUAL_RETURN_DATE => p_instance_rec.ACTUAL_RETURN_DATE
6407 ,p_old_last_oe_agreement_id => NULL
6408 ,p_new_last_oe_agreement_id => p_instance_rec.last_oe_agreement_id
6409 ,p_OLD_LAST_OE_ORDER_LINE_ID => NULL
6410 ,p_NEW_LAST_OE_ORDER_LINE_ID => p_instance_rec.LAST_OE_ORDER_LINE_ID
6411 ,p_OLD_LAST_OE_RMA_LINE_ID => NULL
6412 ,p_NEW_LAST_OE_RMA_LINE_ID => p_instance_rec.LAST_OE_RMA_LINE_ID
6413 ,p_OLD_LAST_WIP_JOB_ID => NULL
6414 ,p_NEW_LAST_WIP_JOB_ID => p_instance_rec.LAST_WIP_JOB_ID
6415 ,p_OLD_LAST_PO_PO_LINE_ID => NULL
6416 ,p_NEW_LAST_PO_PO_LINE_ID => p_instance_rec.LAST_PO_PO_LINE_ID
6417 ,p_OLD_LAST_PA_PROJECT_ID => NULL
6418 ,p_NEW_LAST_PA_PROJECT_ID => p_instance_rec.LAST_PA_PROJECT_ID
6419 ,p_OLD_LAST_PA_TASK_ID => NULL
6420 ,p_NEW_LAST_PA_TASK_ID => p_instance_rec.LAST_PA_TASK_ID
6421 ,p_OLD_LAST_TXN_LINE_DETAIL_ID => NULL
6422 ,p_NEW_LAST_TXN_LINE_DETAIL_ID => p_instance_rec.LAST_TXN_LINE_DETAIL_ID
6423 ,p_OLD_LAST_OE_PO_NUMBER => NULL
6424 ,p_NEW_LAST_OE_PO_NUMBER => p_instance_rec.LAST_OE_PO_NUMBER
6425 --start of parameters addition for eam integration--
6426 ,p_OLD_NETWORK_ASSET_FLAG => NULL
6427 ,p_NEW_NETWORK_ASSET_FLAG => p_instance_rec.NETWORK_ASSET_FLAG
6428 ,p_OLD_MAINTAINABLE_FLAG => NULL
6429 ,p_NEW_MAINTAINABLE_FLAG => p_instance_rec.MAINTAINABLE_FLAG
6430 ,p_OLD_PN_LOCATION_ID => NULL
6431 ,p_NEW_PN_LOCATION_ID => p_instance_rec.PN_LOCATION_ID
6432 ,p_OLD_ASSET_CRITICALITY_CODE => NULL
6433 ,p_NEW_ASSET_CRITICALITY_CODE => p_instance_rec.ASSET_CRITICALITY_CODE
6434 ,p_OLD_CATEGORY_ID => NULL
6435 ,p_NEW_CATEGORY_ID => p_instance_rec.CATEGORY_ID
6436 ,p_OLD_EQUIPMENT_GEN_OBJECT_ID => NULL
6437 ,p_NEW_EQUIPMENT_GEN_OBJECT_ID => p_instance_rec.EQUIPMENT_GEN_OBJECT_ID
6438 ,p_OLD_INSTANTIATION_FLAG => NULL
6439 ,p_NEW_INSTANTIATION_FLAG => p_instance_rec.INSTANTIATION_FLAG
6440 ,p_OLD_LINEAR_LOCATION_ID => NULL
6441 ,p_NEW_LINEAR_LOCATION_ID => p_instance_rec.LINEAR_LOCATION_ID
6442 ,p_OLD_OPERATIONAL_LOG_FLAG => NULL
6443 ,p_NEW_OPERATIONAL_LOG_FLAG => p_instance_rec.OPERATIONAL_LOG_FLAG
6444 ,p_OLD_CHECKIN_STATUS => NULL
6445 ,p_NEW_CHECKIN_STATUS => p_instance_rec.CHECKIN_STATUS
6446 ,p_OLD_SUP_WARRANTY_EXP_DATE => NULL
6447 ,p_NEW_SUP_WARRANTY_EXP_DATE => p_instance_rec.SUPPLIER_WARRANTY_EXP_DATE
6448 ,p_OLD_ATTRIBUTE16 => NULL
6449 ,p_NEW_ATTRIBUTE16 => p_instance_rec.ATTRIBUTE16
6450 ,p_OLD_ATTRIBUTE17 => NULL
6451 ,p_NEW_ATTRIBUTE17 => p_instance_rec.ATTRIBUTE17
6452 ,p_OLD_ATTRIBUTE18 => NULL
6453 ,p_NEW_ATTRIBUTE18 => p_instance_rec.ATTRIBUTE18
6454 ,p_OLD_ATTRIBUTE19 => NULL
6455 ,p_NEW_ATTRIBUTE19 => p_instance_rec.ATTRIBUTE19
6456 ,p_OLD_ATTRIBUTE20 => NULL
6457 ,p_NEW_ATTRIBUTE20 => p_instance_rec.ATTRIBUTE20
6458 ,p_OLD_ATTRIBUTE21 => NULL
6459 ,p_NEW_ATTRIBUTE21 => p_instance_rec.ATTRIBUTE21
6460 ,p_OLD_ATTRIBUTE22 => NULL
6461 ,p_NEW_ATTRIBUTE22 => p_instance_rec.ATTRIBUTE22
6462 ,p_OLD_ATTRIBUTE23 => NULL
6463 ,p_NEW_ATTRIBUTE23 => p_instance_rec.ATTRIBUTE23
6464 ,p_OLD_ATTRIBUTE24 => NULL
6465 ,p_NEW_ATTRIBUTE24 => p_instance_rec.ATTRIBUTE24
6466 ,p_OLD_ATTRIBUTE25 => NULL
6467 ,p_NEW_ATTRIBUTE25 => p_instance_rec.ATTRIBUTE25
6468 ,p_OLD_ATTRIBUTE26 => NULL
6469 ,p_NEW_ATTRIBUTE26 => p_instance_rec.ATTRIBUTE26
6470 ,p_OLD_ATTRIBUTE27 => NULL
6471 ,p_NEW_ATTRIBUTE27 => p_instance_rec.ATTRIBUTE27
6472 ,p_OLD_ATTRIBUTE28 => NULL
6473 ,p_NEW_ATTRIBUTE28 => p_instance_rec.ATTRIBUTE28
6474 ,p_OLD_ATTRIBUTE29 => NULL
6475 ,p_NEW_ATTRIBUTE29 => p_instance_rec.ATTRIBUTE29
6476 ,p_OLD_ATTRIBUTE30 => NULL
6477 ,p_NEW_ATTRIBUTE30 => p_instance_rec.ATTRIBUTE30
6478 --end of parameters addition for eam integration--
6479 -- Addition of columns for FA Integration
6480 ,p_OLD_PAYABLES_UNIT_PRICE => NULL
6481 ,p_NEW_PAYABLES_UNIT_PRICE => p_instance_rec.PAYABLES_UNIT_PRICE
6482 ,p_OLD_PAYABLES_CURRENCY_CODE => NULL
6483 ,p_NEW_PAYABLES_CURRENCY_CODE => p_instance_rec.PAYABLES_CURRENCY_CODE
6484 ,p_OLD_PURCHASE_UNIT_PRICE => NULL
6485 ,p_NEW_PURCHASE_UNIT_PRICE => p_instance_rec.PURCHASE_UNIT_PRICE
6486 ,p_OLD_PURCHASE_CURRENCY_CODE => NULL
6487 ,p_NEW_PURCHASE_CURRENCY_CODE => p_instance_rec.PURCHASE_CURRENCY_CODE
6488 ,p_OLD_SALES_UNIT_PRICE => NULL
6489 ,p_NEW_SALES_UNIT_PRICE => p_instance_rec.SALES_UNIT_PRICE
6490 ,p_OLD_SALES_CURRENCY_CODE => NULL
6491 ,p_NEW_SALES_CURRENCY_CODE => p_instance_rec.SALES_CURRENCY_CODE
6492 ,p_OLD_OPERATIONAL_STATUS_CODE => NULL
6493 ,p_NEW_OPERATIONAL_STATUS_CODE => p_instance_rec.OPERATIONAL_STATUS_CODE
6494 -- End addition of columns for FA Integration
6495 -- Begin Add Code for Siebel Genesis Project
6496 ,p_OLD_SOURCE_CODE => NULL
6497 ,p_NEW_SOURCE_CODE => p_instance_rec.SOURCE_CODE
6498 -- End Add Code for Siebel Genesis Project
6499 );
6500
6501
6502 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
6503 FND_MESSAGE.SET_NAME('CSI','CSI_FAILED_TO_CREATE_HISTORY');
6504 FND_MSG_PUB.Add;
6505 RAISE FND_API.G_EXC_ERROR;
6506 END IF;
6507
6508 END IF; -- Check for p_called_from_grp
6509 -- End of API body
6510
6511 -- Standard check of p_commit.
6512 IF FND_API.To_Boolean( p_commit ) THEN
6513 COMMIT WORK;
6514 END IF;
6515
6516 -- Standard call to get message count and IF count is get message info.
6517 FND_MSG_PUB.Count_And_Get
6518 (p_count => x_msg_count,
6519 p_data => x_msg_data
6520 );
6521
6522 EXCEPTION
6523 WHEN FND_API.G_EXC_ERROR THEN
6524 ROLLBACK TO create_item_instance_pvt;
6525 x_return_status := FND_API.G_RET_STS_ERROR ;
6526 FND_MSG_PUB.Count_And_Get
6527 (p_count => x_msg_count,
6528 p_data => x_msg_data
6529 );
6530 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
6531 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
6532 ROLLBACK TO create_item_instance_pvt;
6533 FND_MSG_PUB.Count_And_Get
6534 ( p_count => x_msg_count,
6535 p_data => x_msg_data
6536 );
6537 WHEN OTHERS THEN
6538 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
6539 ROLLBACK TO create_item_instance_pvt;
6540 IF FND_MSG_PUB.Check_Msg_Level
6541 (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
6542 THEN
6543 FND_MSG_PUB.Add_Exc_Msg
6544 (G_PKG_NAME ,
6545 l_api_name
6546 );
6547 END IF;
6548 FND_MSG_PUB.Count_And_Get
6549 (p_count => x_msg_count,
6550 p_data => x_msg_data
6551 );
6552
6553 END create_item_instance;
6554
6555 /*---------------------------------------------------*/
6556 /* Procedure name: Anything_To_Update */
6557 /* Description : This function checks if any of */
6558 /* the columns related to instance */
6559 /* are changing */
6560 /*---------------------------------------------------*/
6561
6562 FUNCTION Anything_To_Update(p_instance_rec csi_datastructures_pub.instance_rec)
6563
6564 RETURN BOOLEAN
6565 IS
6566
6567 l_return_value BOOLEAN := FALSE;
6568
6569 BEGIN
6570
6571 IF ((p_instance_rec.instance_number IS NULL) OR
6572 (p_instance_rec.instance_number <> FND_API.G_MISS_CHAR)) OR
6573 ((p_instance_rec.external_reference IS NULL) OR
6574 (p_instance_rec.external_reference <> FND_API.G_MISS_CHAR)) OR
6575 ((p_instance_rec.inventory_item_id IS NULL) OR
6576 (p_instance_rec.inventory_item_id <> FND_API.G_MISS_NUM)) OR
6577 ((p_instance_rec.inventory_revision IS NULL) OR
6578 (p_instance_rec.inventory_revision <> FND_API.G_MISS_CHAR)) OR
6579 ((p_instance_rec.inv_master_organization_id IS NULL) OR
6580 (p_instance_rec.inv_master_organization_id <> FND_API.G_MISS_NUM)) OR
6581 ((p_instance_rec.serial_number IS NULL) OR
6582 (p_instance_rec.serial_number <> FND_API.G_MISS_CHAR)) OR
6583 ((p_instance_rec.mfg_serial_number_flag IS NULL) OR
6584 (p_instance_rec.mfg_serial_number_flag <> FND_API.G_MISS_CHAR)) OR
6585 ((p_instance_rec.lot_number IS NULL) OR
6586 (p_instance_rec.lot_number <> FND_API.G_MISS_CHAR)) OR
6587 ((p_instance_rec.quantity IS NULL) OR
6588 (p_instance_rec.quantity <> FND_API.G_MISS_NUM)) OR
6589 ((p_instance_rec.unit_of_measure IS NULL) OR
6590 (p_instance_rec.unit_of_measure <> FND_API.G_MISS_CHAR)) OR
6591 ((p_instance_rec.accounting_class_code IS NULL) OR
6592 (p_instance_rec.accounting_class_code <> FND_API.G_MISS_CHAR)) OR
6593 ((p_instance_rec.instance_condition_id IS NULL) OR
6594 (p_instance_rec.instance_condition_id <> FND_API.G_MISS_NUM)) OR
6595 ((p_instance_rec.instance_status_id IS NULL) OR
6596 (p_instance_rec.instance_status_id <> FND_API.G_MISS_NUM)) OR
6597 ((p_instance_rec.customer_view_flag IS NULL) OR
6598 (p_instance_rec.customer_view_flag <> FND_API.G_MISS_CHAR)) OR
6599 ((p_instance_rec.merchant_view_flag IS NULL) OR
6600 (p_instance_rec.merchant_view_flag <> FND_API.G_MISS_CHAR)) OR
6601 ((p_instance_rec.sellable_flag IS NULL) OR
6602 (p_instance_rec.sellable_flag <> FND_API.G_MISS_CHAR)) OR
6603 ((p_instance_rec.system_id IS NULL) OR
6604 (p_instance_rec.system_id <> FND_API.G_MISS_NUM)) OR
6605 ((p_instance_rec.instance_type_code IS NULL) OR
6606 (p_instance_rec.instance_type_code <> FND_API.G_MISS_CHAR)) OR
6607 ((p_instance_rec.active_start_date IS NULL) OR
6608 (p_instance_rec.active_start_date <> FND_API.G_MISS_DATE)) OR
6609 ((p_instance_rec.active_end_date IS NULL) OR
6610 (p_instance_rec.active_end_date <> FND_API.G_MISS_DATE)) OR
6611 ((p_instance_rec.location_type_code IS NULL) OR
6612 (p_instance_rec.location_type_code <> FND_API.G_MISS_CHAR)) OR
6613 ((p_instance_rec.location_id IS NULL) OR
6614 (p_instance_rec.location_id <> FND_API.G_MISS_NUM)) OR
6615 ((p_instance_rec.inv_organization_id IS NULL) OR
6616 (p_instance_rec.inv_organization_id <> FND_API.G_MISS_NUM)) OR
6617 ((p_instance_rec.inv_subinventory_name IS NULL) OR
6618 (p_instance_rec.inv_subinventory_name <> FND_API.G_MISS_CHAR)) OR
6619 ((p_instance_rec.inv_locator_id IS NULL) OR
6620 (p_instance_rec.inv_locator_id <> FND_API.G_MISS_NUM)) OR
6621 ((p_instance_rec.pa_project_id IS NULL) OR
6622 (p_instance_rec.pa_project_id <> FND_API.G_MISS_NUM)) OR
6623 ((p_instance_rec.pa_project_task_id IS NULL) OR
6624 (p_instance_rec.pa_project_task_id <> FND_API.G_MISS_NUM)) OR
6625 ((p_instance_rec.in_transit_order_line_id IS NULL) OR
6626 (p_instance_rec.in_transit_order_line_id <> FND_API.G_MISS_NUM)) OR
6627 ((p_instance_rec.wip_job_id IS NULL) OR
6628 (p_instance_rec.wip_job_id <> FND_API.G_MISS_NUM)) OR
6629 ((p_instance_rec.po_order_line_id IS NULL) OR
6630 (p_instance_rec.po_order_line_id <> FND_API.G_MISS_NUM)) OR
6631 ((p_instance_rec.last_oe_order_line_id IS NULL) OR
6632 (p_instance_rec.last_oe_order_line_id <> FND_API.G_MISS_NUM)) OR
6633 ((p_instance_rec.last_oe_rma_line_id IS NULL) OR
6634 (p_instance_rec.last_oe_rma_line_id <> FND_API.G_MISS_NUM)) OR
6635 ((p_instance_rec.last_po_po_line_id IS NULL) OR
6636 (p_instance_rec.last_po_po_line_id <> FND_API.G_MISS_NUM)) OR
6637 ((p_instance_rec.last_oe_po_number IS NULL) OR
6638 (p_instance_rec.last_oe_po_number <> FND_API.G_MISS_CHAR)) OR
6639 ((p_instance_rec.last_wip_job_id IS NULL) OR
6640 (p_instance_rec.last_wip_job_id <> FND_API.G_MISS_NUM)) OR
6641 ((p_instance_rec.last_pa_project_id IS NULL) OR
6642 (p_instance_rec.last_pa_project_id <> FND_API.G_MISS_NUM)) OR
6643 ((p_instance_rec.last_pa_task_id IS NULL) OR
6644 (p_instance_rec.last_pa_task_id <> FND_API.G_MISS_NUM)) OR
6645 ((p_instance_rec.last_oe_agreement_id IS NULL) OR
6646 (p_instance_rec.last_oe_agreement_id <> FND_API.G_MISS_NUM)) OR
6647 ((p_instance_rec.install_date IS NULL) OR
6648 (p_instance_rec.install_date <> FND_API.G_MISS_DATE)) OR
6649 ((p_instance_rec.manually_created_flag IS NULL) OR
6650 (p_instance_rec.manually_created_flag <> FND_API.G_MISS_CHAR)) OR
6651 ((p_instance_rec.return_by_date IS NULL) OR
6652 (p_instance_rec.return_by_date <> FND_API.G_MISS_DATE)) OR
6653 ((p_instance_rec.actual_return_date IS NULL) OR
6654 (p_instance_rec.actual_return_date <> FND_API.G_MISS_DATE)) OR
6655 ((p_instance_rec.creation_complete_flag IS NULL) OR
6656 (p_instance_rec.creation_complete_flag <> FND_API.G_MISS_CHAR)) OR
6657 ((p_instance_rec.completeness_flag IS NULL) OR
6658 (p_instance_rec.completeness_flag <> FND_API.G_MISS_CHAR)) OR
6659 ((p_instance_rec.context IS NULL) OR
6660 (p_instance_rec.context <> FND_API.G_MISS_CHAR)) OR
6661 ((p_instance_rec.attribute1 IS NULL) OR
6662 (p_instance_rec.attribute1 <> FND_API.G_MISS_CHAR)) OR
6663 ((p_instance_rec.attribute2 IS NULL) OR
6664 (p_instance_rec.attribute2 <> FND_API.G_MISS_CHAR)) OR
6665 ((p_instance_rec.attribute3 IS NULL) OR
6666 (p_instance_rec.attribute3 <> FND_API.G_MISS_CHAR)) OR
6667 ((p_instance_rec.attribute4 IS NULL) OR
6668 (p_instance_rec.attribute4 <> FND_API.G_MISS_CHAR)) OR
6669 ((p_instance_rec.attribute5 IS NULL) OR
6670 (p_instance_rec.attribute5 <> FND_API.G_MISS_CHAR)) OR
6671 ((p_instance_rec.attribute6 IS NULL) OR
6672 (p_instance_rec.attribute6 <> FND_API.G_MISS_CHAR)) OR
6673 ((p_instance_rec.attribute7 IS NULL) OR
6674 (p_instance_rec.attribute7 <> FND_API.G_MISS_CHAR)) OR
6675 ((p_instance_rec.attribute8 IS NULL) OR
6676 (p_instance_rec.attribute8 <> FND_API.G_MISS_CHAR)) OR
6677 ((p_instance_rec.attribute9 IS NULL) OR
6678 (p_instance_rec.attribute9 <> FND_API.G_MISS_CHAR)) OR
6679 ((p_instance_rec.attribute10 IS NULL) OR
6680 (p_instance_rec.attribute10 <> FND_API.G_MISS_CHAR)) OR
6681 ((p_instance_rec.attribute11 IS NULL) OR
6682 (p_instance_rec.attribute11 <> FND_API.G_MISS_CHAR)) OR
6683 ((p_instance_rec.attribute12 IS NULL) OR
6684 (p_instance_rec.attribute12 <> FND_API.G_MISS_CHAR)) OR
6685 ((p_instance_rec.attribute13 IS NULL) OR
6686 (p_instance_rec.attribute13 <> FND_API.G_MISS_CHAR)) OR
6687 ((p_instance_rec.attribute14 IS NULL) OR
6688 (p_instance_rec.attribute14 <> FND_API.G_MISS_CHAR)) OR
6689 ((p_instance_rec.attribute15 IS NULL) OR
6690 (p_instance_rec.attribute15 <> FND_API.G_MISS_CHAR)) OR
6691 ((p_instance_rec.last_txn_line_detail_id IS NULL) OR
6692 (p_instance_rec.last_txn_line_detail_id <> FND_API.G_MISS_NUM)) OR
6693 ((p_instance_rec.install_location_type_code IS NULL) OR
6694 (p_instance_rec.install_location_type_code <> FND_API.G_MISS_CHAR)) OR
6695 ((p_instance_rec.install_location_id IS NULL) OR
6696 (p_instance_rec.install_location_id <> FND_API.G_MISS_NUM)) OR
6697 ((p_instance_rec.instance_usage_code IS NULL) OR
6698 (p_instance_rec.instance_usage_code <> FND_API.G_MISS_CHAR)) OR
6699 -- The following code has been added by sguthiva for att enhancements
6700 ((p_instance_rec.config_inst_hdr_id IS NULL) OR
6701 (p_instance_rec.config_inst_hdr_id <> FND_API.G_MISS_NUM)) OR
6702 ((p_instance_rec.config_inst_rev_num IS NULL) OR
6703 (p_instance_rec.config_inst_rev_num <> FND_API.G_MISS_NUM)) OR
6704 ((p_instance_rec.config_inst_item_id IS NULL) OR
6705 (p_instance_rec.config_inst_item_id <> FND_API.G_MISS_NUM)) OR
6706 ((p_instance_rec.config_valid_status IS NULL) OR
6707 (p_instance_rec.config_valid_status <> FND_API.G_MISS_CHAR)) OR
6708 ((p_instance_rec.instance_description IS NULL) OR
6709 (p_instance_rec.instance_description <> FND_API.G_MISS_CHAR)) OR
6710 --start of code for eam integration--
6711 ((p_instance_rec.network_asset_flag IS NULL) OR
6712 (p_instance_rec.network_asset_flag <> FND_API.G_MISS_CHAR)) OR
6713 ((p_instance_rec.maintainable_flag IS NULL) OR
6714 (p_instance_rec.maintainable_flag <> FND_API.G_MISS_CHAR)) OR
6715 ((p_instance_rec.pn_location_id IS NULL) OR
6716 (p_instance_rec.pn_location_id <> FND_API.G_MISS_NUM)) OR
6717 ((p_instance_rec.asset_criticality_code IS NULL) OR
6718 (p_instance_rec.asset_criticality_code <> FND_API.G_MISS_CHAR)) OR
6719 ((p_instance_rec.category_id IS NULL) OR
6720 (p_instance_rec.category_id <> FND_API.G_MISS_NUM)) OR
6721 ((p_instance_rec.equipment_gen_object_id IS NULL) OR
6722 (p_instance_rec.equipment_gen_object_id <> FND_API.G_MISS_NUM)) OR
6723 ((p_instance_rec.instantiation_flag IS NULL) OR
6724 (p_instance_rec.instantiation_flag <> FND_API.G_MISS_CHAR)) OR
6725 ((p_instance_rec.linear_location_id IS NULL) OR
6726 (p_instance_rec.linear_location_id <> FND_API.G_MISS_NUM)) OR
6727 ((p_instance_rec.operational_log_flag IS NULL) OR
6728 (p_instance_rec.operational_log_flag <> FND_API.G_MISS_CHAR)) OR
6729 ((p_instance_rec.checkin_status IS NULL) OR
6730 (p_instance_rec.checkin_status <> FND_API.G_MISS_NUM)) OR
6731 ((p_instance_rec.supplier_warranty_exp_date IS NULL) OR
6732 (p_instance_rec.supplier_warranty_exp_date <> FND_API.G_MISS_DATE)) OR
6733 ((p_instance_rec.attribute16 IS NULL) OR
6734 (p_instance_rec.attribute16 <> FND_API.G_MISS_CHAR)) OR
6735 ((p_instance_rec.attribute17 IS NULL) OR
6736 (p_instance_rec.attribute17 <> FND_API.G_MISS_CHAR)) OR
6737 ((p_instance_rec.attribute18 IS NULL) OR
6738 (p_instance_rec.attribute18 <> FND_API.G_MISS_CHAR)) OR
6739 ((p_instance_rec.attribute19 IS NULL) OR
6740 (p_instance_rec.attribute19 <> FND_API.G_MISS_CHAR)) OR
6741 ((p_instance_rec.attribute20 IS NULL) OR
6742 (p_instance_rec.attribute20 <> FND_API.G_MISS_CHAR)) OR
6743 ((p_instance_rec.attribute21 IS NULL) OR
6744 (p_instance_rec.attribute21 <> FND_API.G_MISS_CHAR)) OR
6745 ((p_instance_rec.attribute22 IS NULL) OR
6746 (p_instance_rec.attribute22 <> FND_API.G_MISS_CHAR)) OR
6747 ((p_instance_rec.attribute23 IS NULL) OR
6748 (p_instance_rec.attribute23 <> FND_API.G_MISS_CHAR)) OR
6749 ((p_instance_rec.attribute24 IS NULL) OR
6750 (p_instance_rec.attribute24 <> FND_API.G_MISS_CHAR)) OR
6751 ((p_instance_rec.attribute25 IS NULL) OR
6752 (p_instance_rec.attribute25 <> FND_API.G_MISS_CHAR)) OR
6753 ((p_instance_rec.attribute26 IS NULL) OR
6754 (p_instance_rec.attribute26 <> FND_API.G_MISS_CHAR)) OR
6755 ((p_instance_rec.attribute27 IS NULL) OR
6756 (p_instance_rec.attribute27 <> FND_API.G_MISS_CHAR)) OR
6757 ((p_instance_rec.attribute28 IS NULL) OR
6758 (p_instance_rec.attribute28 <> FND_API.G_MISS_CHAR)) OR
6759 ((p_instance_rec.attribute29 IS NULL) OR
6760 (p_instance_rec.attribute29 <> FND_API.G_MISS_CHAR)) OR
6761 ((p_instance_rec.attribute30 IS NULL) OR
6762 (p_instance_rec.attribute30 <> FND_API.G_MISS_CHAR)) OR
6763 --end of code for eam integration--
6764 -- Addition of columns for FA Integration
6765 ((p_instance_rec.purchase_unit_price IS NULL) OR
6766 (p_instance_rec.purchase_unit_price <> FND_API.G_MISS_NUM)) OR
6767 ((p_instance_rec.purchase_currency_code IS NULL) OR
6768 (p_instance_rec.purchase_currency_code <> FND_API.G_MISS_CHAR)) OR
6769 ((p_instance_rec.payables_unit_price IS NULL) OR
6770 (p_instance_rec.payables_unit_price <> FND_API.G_MISS_NUM)) OR
6771 ((p_instance_rec.payables_currency_code IS NULL) OR
6772 (p_instance_rec.payables_currency_code <> FND_API.G_MISS_CHAR)) OR
6773 ((p_instance_rec.sales_unit_price IS NULL) OR
6774 (p_instance_rec.sales_unit_price <> FND_API.G_MISS_NUM)) OR
6775 ((p_instance_rec.sales_currency_code IS NULL) OR
6776 (p_instance_rec.sales_currency_code <> FND_API.G_MISS_CHAR)) OR
6777 ((p_instance_rec.operational_status_code IS NULL) OR
6778 (p_instance_rec.operational_status_code <> FND_API.G_MISS_CHAR))
6779 -- End addition of columns for FA Integration
6780 THEN
6781 -- End of code addition by sguthiva for att enhancements
6782
6783 l_return_value := TRUE;
6784 END IF;
6785
6786
6787 RETURN l_return_value;
6788
6789 END Anything_To_Update;
6790
6791 /*----------------------------------------------------*/
6792 /* This Procedure validates the accounting class code*/
6793 /* depending upon the location type code */
6794 /*----------------------------------------------------*/
6795 PROCEDURE get_and_update_acct_class
6796 ( p_api_version IN NUMBER
6797 ,p_commit IN VARCHAR2
6798 ,p_init_msg_list IN VARCHAR2
6799 ,p_validation_level IN NUMBER
6800 ,p_instance_id IN NUMBER
6801 ,p_instance_expiry_flag IN VARCHAR2
6802 ,p_txn_rec IN OUT NOCOPY csi_datastructures_pub.transaction_rec
6803 ,x_acct_class_code OUT NOCOPY VARCHAR2
6804 ,x_return_status OUT NOCOPY VARCHAR2
6805 ,x_msg_count OUT NOCOPY NUMBER
6806 ,x_msg_data OUT NOCOPY VARCHAR2
6807 )
6808
6809 IS
6810
6811 l_api_name CONSTANT VARCHAR2(30) := 'GET_AND_UPDATE_ACCT_CLASS';
6812 l_api_version CONSTANT NUMBER := 1.0;
6813 l_debug_level NUMBER;
6814 l_acct_class_code VARCHAR2(10);
6815 l_accounting_class VARCHAR2(10);
6816 l_loc_type_code VARCHAR2(30);
6817 --l_obj_ver_num NUMBER;
6818 l_instance_rec csi_datastructures_pub.instance_rec;
6819 l_instance_id_lst csi_datastructures_pub.id_tbl ;
6820 x_msg_index_out NUMBER;
6821 l_item_attribute_tbl csi_item_instance_pvt.item_attribute_tbl;
6822 l_location_tbl csi_item_instance_pvt.location_tbl;
6823 l_generic_id_tbl csi_item_instance_pvt.generic_id_tbl;
6824 l_lookup_tbl csi_item_instance_pvt.lookup_tbl;
6825 l_ins_count_rec csi_item_instance_pvt.ins_count_rec;
6826 px_oks_txn_inst_tbl oks_ibint_pub.txn_instance_tbl;
6827 px_child_inst_tbl csi_item_instance_grp.child_inst_tbl;
6828
6829 BEGIN
6830
6831 -- Standard Start of API savepoint
6832 IF fnd_api.to_boolean(p_commit)
6833 THEN
6834 SAVEPOINT get_and_update_acct_class;
6835 END IF;
6836
6837 -- Standard call to check for call compatibility.
6838 IF NOT FND_API.Compatible_API_Call (l_api_version,
6839 p_api_version,
6840 l_api_name ,
6841 G_PKG_NAME )
6842 THEN
6843 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
6844 END IF;
6845
6846 -- Initialize message list if p_init_msg_list is set to TRUE.
6847 IF FND_API.to_Boolean( p_init_msg_list ) THEN
6848 FND_MSG_PUB.initialize;
6849 END IF;
6850
6851 -- Initialize API return status to success
6852 x_return_status := FND_API.G_RET_STS_SUCCESS;
6853
6854 -- Check the profile option debug_level for debug message reporting
6855 l_debug_level:=fnd_profile.value('CSI_DEBUG_LEVEL');
6856 -- If debug_level = 1 then dump the procedure name
6857 IF (l_debug_level > 0) THEN
6858 csi_gen_utility_pvt.put_line ('get_and_update_acct_class');
6859 END IF;
6860
6861 -- If the debug level = 2 then dump all the parameters values.
6862 IF (l_debug_level > 1) THEN
6863 csi_gen_utility_pvt.put_line ( 'get_and_update_acct_class' ||
6864 p_api_version ||'-'||
6865 p_commit
6866 );
6867 END IF;
6868
6869 l_instance_rec.instance_id := p_instance_id;
6870
6871 BEGIN
6872 SELECT location_type_code,
6873 accounting_class_code,
6874 object_version_number,
6875 inventory_item_id,
6876 last_vld_organization_id,
6877 quantity
6878 INTO l_loc_type_code,
6879 l_accounting_class,
6880 l_instance_rec.object_version_number,
6881 l_instance_rec.inventory_item_id,
6882 l_instance_rec.vld_organization_id,
6883 l_instance_rec.quantity
6884 FROM csi_item_instances
6885 WHERE instance_id = l_instance_rec.instance_id;
6886 EXCEPTION
6887 WHEN NO_DATA_FOUND THEN
6888 FND_MESSAGE.SET_NAME('CSI','CSI_API_INVALID_INSTANCE_NUM');
6889 FND_MESSAGE.SET_TOKEN('INSTANCE_NUMBER', l_instance_rec.instance_id);
6890 FND_MSG_PUB.Add;
6891 RAISE FND_API.G_EXC_ERROR;
6892 END;
6893
6894
6895 csi_item_instance_vld_pvt.get_valid_acct_class(p_instance_id => p_instance_id,
6896 p_curr_acct_class_code => NULL, --l_accounting_class,
6897 p_loc_type_code => l_loc_type_code,
6898 x_acct_class_code => l_acct_class_code
6899 );
6900
6901 IF l_acct_class_code <> l_accounting_class THEN
6902
6903 l_instance_rec.accounting_class_code := l_acct_class_code;
6904 l_instance_rec.check_for_instance_expiry := p_instance_expiry_flag;
6905 update_item_instance
6906 (
6907 p_api_version => p_api_version
6908 ,p_commit => fnd_api.g_false
6909 ,p_init_msg_list => p_init_msg_list
6910 ,p_validation_level => p_validation_level
6911 ,p_instance_rec => l_instance_rec
6912 ,p_txn_rec => p_txn_rec
6913 ,x_instance_id_lst => l_instance_id_lst
6914 ,x_return_status => x_return_status
6915 ,x_msg_count => x_msg_count
6916 ,x_msg_data => x_msg_data
6917 ,p_item_attribute_tbl => l_item_attribute_tbl
6918 ,p_location_tbl => l_location_tbl
6919 ,p_generic_id_tbl => l_generic_id_tbl
6920 ,p_lookup_tbl => l_lookup_tbl
6921 ,p_ins_count_rec => l_ins_count_rec
6922 ,p_oks_txn_inst_tbl => px_oks_txn_inst_tbl
6923 ,p_child_inst_tbl => px_child_inst_tbl
6924 );
6925
6926 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
6927 FOR i in 1..x_msg_Count LOOP
6928 FND_MSG_PUB.Get(p_msg_index => i,
6929 p_encoded => 'F',
6930 p_data => x_msg_data,
6931 p_msg_index_out => x_msg_index_out );
6932
6933 End LOOP;
6934 RAISE fnd_api.g_exc_error;
6935 END IF;
6936
6937 END IF;
6938
6939 IF FND_API.To_Boolean( p_commit )
6940 THEN
6941 COMMIT WORK;
6942 END IF;
6943
6944 -- Standard call to get message count and IF count is get message info.
6945 FND_MSG_PUB.Count_And_Get
6946 (p_count => x_msg_count,
6947 p_data => x_msg_data
6948 );
6949
6950 EXCEPTION
6951 WHEN FND_API.G_EXC_ERROR THEN
6952 IF FND_API.To_Boolean( p_commit )
6953 THEN
6954 ROLLBACK TO get_and_update_acct_class;
6955 END IF;
6956 x_return_status := FND_API.G_RET_STS_ERROR ;
6957 FND_MSG_PUB.Count_And_Get
6958 (p_count => x_msg_count,
6959 p_data => x_msg_data
6960 );
6961 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
6962 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
6963 IF FND_API.To_Boolean( p_commit )
6964 THEN
6965 ROLLBACK TO get_and_update_acct_class;
6966 END IF;
6967 FND_MSG_PUB.Count_And_Get
6968 ( p_count => x_msg_count,
6969 p_data => x_msg_data
6970 );
6971 WHEN OTHERS THEN
6972 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
6973 IF FND_API.To_Boolean( p_commit )
6974 THEN
6975 ROLLBACK TO get_and_update_acct_class;
6976 END IF;
6977 IF FND_MSG_PUB.Check_Msg_Level
6978 (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
6979 THEN
6980 FND_MSG_PUB.Add_Exc_Msg
6981 (G_PKG_NAME ,
6982 l_api_name
6983 );
6984 END IF;
6985 FND_MSG_PUB.Count_And_Get
6986 (p_count => x_msg_count,
6987 p_data => x_msg_data
6988 );
6989
6990 END get_and_update_acct_class;
6991
6992 /*------------------------------------------------------*/
6993 /* Procedure name: update_child_instance_location */
6994 /* Description : procedure used to update the child */
6995 /* Instances */
6996 /*------------------------------------------------------*/
6997
6998 PROCEDURE update_child_instance_location
6999 (p_api_version IN NUMBER,
7000 p_commit IN VARCHAR2,
7001 p_init_msg_list IN VARCHAR2,
7002 p_validation_level IN NUMBER,
7003 p_instance_rec IN OUT NOCOPY csi_datastructures_pub.instance_rec,
7004 p_original_status_id IN NUMBER,
7005 p_original_system_id IN NUMBER,
7006 p_txn_rec IN OUT NOCOPY csi_datastructures_pub.transaction_rec,
7007 x_instance_id_lst OUT NOCOPY csi_datastructures_pub.id_tbl,
7008 x_return_status OUT NOCOPY VARCHAR2,
7009 p_unexpire IN VARCHAR2,
7010 p_oks_txn_inst_tbl IN OUT NOCOPY oks_ibint_pub.txn_instance_tbl,
7011 p_child_inst_tbl IN OUT NOCOPY csi_item_instance_grp.child_inst_tbl,
7012 p_orig_install_date IN DATE,
7013 x_msg_count OUT NOCOPY NUMBER,
7014 x_msg_data OUT NOCOPY VARCHAR2
7015 )
7016 IS
7017 l_api_name CONSTANT VARCHAR2(30) := 'UPDATE_CHILD_INST_LOCATION';
7018 l_api_version CONSTANT NUMBER := 1.0;
7019 l_debug_level NUMBER;
7020 l_instance_id NUMBER;
7021 l_dummy NUMBER;
7022 l_instance_rec csi_datastructures_pub.instance_rec:=p_instance_rec;
7023 l_object_version_number NUMBER;
7024 l_return_value BOOLEAN;
7025 l_csi_item_instance_h_id NUMBER;
7026 l_full_dump_frequency NUMBER;
7027 l_mod_value NUMBER;
7028 l_dump_flag VARCHAR2(1);
7029 l_msg_index NUMBER;
7030 l_msg_count NUMBER;
7031 l_instance_hist_rec csi_datastructures_pub.instance_history_rec;
7032 --Start of:Added for bug 5615169
7033 l_inst_hist_tbl_blk_ins csi_datastructures_pub.instance_history_tbl; -- used for bulk insert
7034 l_inst_hist_rec_tab csi_item_instance_grp.instance_history_rec_tab; -- used for column table
7035 l_ciih_blk_ins_cnt NUMBER := 0;
7036 l_user_id NUMBER := FND_GLOBAL.USER_ID;
7037 l_login_id NUMBER := FND_GLOBAL.CONC_LOGIN_ID;
7038 --End of:Added for bug 5615169
7039
7040 CURSOR curr_instance_rec(p_instance_id IN NUMBER) IS
7041 SELECT
7042 INSTANCE_ID,
7043 INSTANCE_NUMBER,
7044 EXTERNAL_REFERENCE,
7045 INVENTORY_ITEM_ID,
7046 NULL VLD_ORGANIZATION_ID,
7047 INVENTORY_REVISION,
7048 INV_MASTER_ORGANIZATION_ID,
7049 SERIAL_NUMBER,
7050 MFG_SERIAL_NUMBER_FLAG,
7051 LOT_NUMBER,
7052 QUANTITY,
7053 UNIT_OF_MEASURE,
7054 ACCOUNTING_CLASS_CODE,
7055 INSTANCE_CONDITION_ID,
7056 INSTANCE_STATUS_ID,
7057 CUSTOMER_VIEW_FLAG,
7058 MERCHANT_VIEW_FLAG,
7059 SELLABLE_FLAG,
7060 SYSTEM_ID,
7061 INSTANCE_TYPE_CODE,
7062 ACTIVE_START_DATE,
7063 ACTIVE_END_DATE,
7064 LOCATION_TYPE_CODE,
7065 LOCATION_ID,
7066 INV_ORGANIZATION_ID,
7067 INV_SUBINVENTORY_NAME,
7068 INV_LOCATOR_ID,
7069 PA_PROJECT_ID,
7070 PA_PROJECT_TASK_ID,
7071 IN_TRANSIT_ORDER_LINE_ID,
7072 WIP_JOB_ID,
7073 PO_ORDER_LINE_ID,
7074 LAST_OE_ORDER_LINE_ID,
7075 LAST_OE_RMA_LINE_ID,
7076 LAST_PO_PO_LINE_ID,
7077 LAST_OE_PO_NUMBER,
7078 LAST_WIP_JOB_ID,
7079 LAST_PA_PROJECT_ID,
7080 LAST_PA_TASK_ID,
7081 LAST_OE_AGREEMENT_ID,
7082 INSTALL_DATE,
7083 MANUALLY_CREATED_FLAG,
7084 RETURN_BY_DATE,
7085 ACTUAL_RETURN_DATE,
7086 CREATION_COMPLETE_FLAG,
7087 COMPLETENESS_FLAG,
7088 NULL VERSION_LABEL,
7089 NULL VERSION_LABEL_DESCRIPTION,
7090 CONTEXT,
7091 ATTRIBUTE1,
7092 ATTRIBUTE2,
7093 ATTRIBUTE3,
7094 ATTRIBUTE4,
7095 ATTRIBUTE5,
7096 ATTRIBUTE6,
7097 ATTRIBUTE7,
7098 ATTRIBUTE8,
7099 ATTRIBUTE9,
7100 ATTRIBUTE10,
7101 ATTRIBUTE11,
7102 ATTRIBUTE12,
7103 ATTRIBUTE13,
7104 ATTRIBUTE14,
7105 ATTRIBUTE15,
7106 OBJECT_VERSION_NUMBER,
7107 LAST_TXN_LINE_DETAIL_ID,
7108 INSTALL_LOCATION_TYPE_CODE,
7109 INSTALL_LOCATION_ID,
7110 INSTANCE_USAGE_CODE,
7111 LAST_VLD_ORGANIZATION_ID,
7112 CONFIG_INST_REV_NUM,
7113 CONFIG_VALID_STATUS,
7114 INSTANCE_DESCRIPTION,
7115 --start of column addition for eam integration--
7116 NETWORK_ASSET_FLAG,
7117 MAINTAINABLE_FLAG,
7118 PN_LOCATION_ID,
7119 ASSET_CRITICALITY_CODE,
7120 CATEGORY_ID,
7121 EQUIPMENT_GEN_OBJECT_ID,
7122 INSTANTIATION_FLAG,
7123 LINEAR_LOCATION_ID,
7124 OPERATIONAL_LOG_FLAG,
7125 CHECKIN_STATUS,
7126 SUPPLIER_WARRANTY_EXP_DATE,
7127 ATTRIBUTE16,
7128 ATTRIBUTE17,
7129 ATTRIBUTE18,
7130 ATTRIBUTE19,
7131 ATTRIBUTE20,
7132 ATTRIBUTE21,
7133 ATTRIBUTE22,
7134 ATTRIBUTE23,
7135 ATTRIBUTE24,
7136 ATTRIBUTE25,
7137 ATTRIBUTE26,
7138 ATTRIBUTE27,
7139 ATTRIBUTE28,
7140 ATTRIBUTE29,
7141 ATTRIBUTE30,
7142 --end of column addition for eam integration--
7143 -- Addition of columns for FA Integration
7144 PURCHASE_UNIT_PRICE,
7145 PURCHASE_CURRENCY_CODE,
7146 PAYABLES_UNIT_PRICE,
7147 PAYABLES_CURRENCY_CODE,
7148 SALES_UNIT_PRICE,
7149 SALES_CURRENCY_CODE,
7150 OPERATIONAL_STATUS_CODE,
7151 -- End addition of columns for FA Integration
7152 SOURCE_CODE -- Added Code for Siebel Genesis Project
7153 FROM csi_item_instances
7154 WHERE instance_id = p_instance_id
7155 FOR UPDATE OF OBJECT_VERSION_NUMBER ;
7156
7157 l_curr_instance_rec curr_instance_rec%ROWTYPE;
7158 --
7159 CURSOR new_instance_rec(p_instance_id IN NUMBER) IS
7160 select * from csi_item_instances
7161 where instance_id = p_instance_id;
7162 --
7163 l_new_instance_rec new_instance_rec%ROWTYPE;
7164
7165 CURSOR ins_hist_csr(p_instance_history_id NUMBER) IS
7166 SELECT instance_history_id
7167 ,instance_id
7168 ,transaction_id
7169 ,old_instance_number
7170 ,new_instance_number
7171 ,old_external_reference
7172 ,new_external_reference
7173 ,old_inventory_item_id
7174 ,new_inventory_item_id
7175 ,old_inventory_revision
7176 ,new_inventory_revision
7177 ,old_inv_master_organization_id
7178 ,new_inv_master_organization_id
7179 ,old_serial_number
7180 ,new_serial_number
7181 ,old_mfg_serial_number_flag
7182 ,new_mfg_serial_number_flag
7183 ,old_lot_number
7184 ,new_lot_number
7185 ,old_quantity
7186 ,new_quantity
7187 ,old_unit_of_measure
7188 ,new_unit_of_measure
7189 ,old_accounting_class_code
7190 ,new_accounting_class_code
7191 ,old_instance_condition_id
7192 ,new_instance_condition_id
7193 ,old_instance_status_id
7194 ,new_instance_status_id
7195 ,old_customer_view_flag
7196 ,new_customer_view_flag
7197 ,old_merchant_view_flag
7198 ,new_merchant_view_flag
7199 ,old_sellable_flag
7200 ,new_sellable_flag
7201 ,old_system_id
7202 ,new_system_id
7203 ,old_instance_type_code
7204 ,new_instance_type_code
7205 ,old_active_start_date
7206 ,new_active_start_date
7207 ,old_active_end_date
7208 ,new_active_end_date
7209 ,old_location_type_code
7210 ,new_location_type_code
7211 ,old_location_id
7212 ,new_location_id
7213 ,old_inv_organization_id
7214 ,new_inv_organization_id
7215 ,old_inv_subinventory_name
7216 ,new_inv_subinventory_name
7217 ,old_inv_locator_id
7218 ,new_inv_locator_id
7219 ,old_pa_project_id
7220 ,new_pa_project_id
7221 ,old_pa_project_task_id
7222 ,new_pa_project_task_id
7223 ,old_in_transit_order_line_id
7224 ,new_in_transit_order_line_id
7225 ,old_wip_job_id
7226 ,new_wip_job_id
7227 ,old_po_order_line_id
7228 ,new_po_order_line_id
7229 ,old_completeness_flag
7230 ,new_completeness_flag
7231 ,old_context
7232 ,new_context
7233 ,old_attribute1
7234 ,new_attribute1
7235 ,old_attribute2
7236 ,new_attribute2
7237 ,old_attribute3
7238 ,new_attribute3
7239 ,old_attribute4
7240 ,new_attribute4
7241 ,old_attribute5
7242 ,new_attribute5
7243 ,old_attribute6
7244 ,new_attribute6
7245 ,old_attribute7
7246 ,new_attribute7
7247 ,old_attribute8
7248 ,new_attribute8
7249 ,old_attribute9
7250 ,new_attribute9
7251 ,old_attribute10
7252 ,new_attribute10
7253 ,old_attribute11
7254 ,new_attribute11
7255 ,old_attribute12
7256 ,new_attribute12
7257 ,old_attribute13
7258 ,new_attribute13
7259 ,old_attribute14
7260 ,new_attribute14
7261 ,old_attribute15
7262 ,new_attribute15
7263 ,full_dump_flag
7264 ,old_inst_loc_type_code
7265 ,new_inst_loc_type_code
7266 ,old_inst_loc_id
7267 ,new_inst_loc_id
7268 ,old_inst_usage_code
7269 ,new_inst_usage_code
7270 ,old_last_vld_organization_id
7271 ,new_last_vld_organization_id
7272 ,old_config_inst_rev_num
7273 ,new_config_inst_rev_num
7274 ,old_config_valid_status
7275 ,new_config_valid_status
7276 ,old_instance_description
7277 ,new_instance_description
7278 ,old_oe_agreement_id
7279 ,new_oe_agreement_id
7280 ,old_last_oe_order_line_id
7281 ,new_last_oe_order_line_id
7282 ,old_last_oe_rma_line_id
7283 ,new_last_oe_rma_line_id
7284 ,old_last_wip_job_id
7285 ,new_last_wip_job_id
7286 ,old_last_po_po_line_id
7287 ,new_last_po_po_line_id
7288 ,old_last_pa_project_id
7289 ,new_last_pa_project_id
7290 ,old_last_pa_task_id
7291 ,new_last_pa_task_id
7292 ,old_last_txn_line_detail_id
7293 ,new_last_txn_line_detail_id
7294 ,old_last_oe_po_number
7295 ,new_last_oe_po_number
7296 --start of column addition for eam integration--
7297 ,old_network_asset_flag
7298 ,new_network_asset_flag
7299 ,old_maintainable_flag
7300 ,new_maintainable_flag
7301 ,old_pn_location_id
7302 ,new_pn_location_id
7303 ,old_asset_criticality_code
7304 ,new_asset_criticality_code
7305 ,old_category_id
7306 ,new_category_id
7307 ,old_equipment_gen_object_id
7308 ,new_equipment_gen_object_id
7309 ,old_instantiation_flag
7310 ,new_instantiation_flag
7311 ,old_linear_location_id
7312 ,new_linear_location_id
7313 ,old_operational_log_flag
7314 ,new_operational_log_flag
7315 ,old_checkin_status
7316 ,new_checkin_status
7317 ,old_supplier_warranty_exp_date
7318 ,new_supplier_warranty_exp_date
7319 ,old_attribute16
7320 ,new_attribute16
7321 ,old_attribute17
7322 ,new_attribute17
7323 ,old_attribute18
7324 ,new_attribute18
7325 ,old_attribute19
7326 ,new_attribute19
7327 ,old_attribute20
7328 ,new_attribute20
7329 ,old_attribute21
7330 ,new_attribute21
7331 ,old_attribute22
7332 ,new_attribute22
7333 ,old_attribute23
7334 ,new_attribute23
7335 ,old_attribute24
7336 ,new_attribute24
7337 ,old_attribute25
7338 ,new_attribute25
7339 ,old_attribute26
7340 ,new_attribute26
7341 ,old_attribute27
7342 ,new_attribute27
7343 ,old_attribute28
7344 ,new_attribute28
7345 ,old_attribute29
7346 ,new_attribute29
7347 ,old_attribute30
7348 ,new_attribute30
7349 ,old_install_date
7350 ,new_install_date
7351 --end of column addition for eam integration--
7352 -- Addition of columns for FA Integration
7353 ,old_payables_unit_price
7354 ,new_payables_unit_price
7355 ,old_payables_currency_code
7356 ,new_payables_currency_code
7357 ,old_purchase_unit_price
7358 ,new_purchase_unit_price
7359 ,old_purchase_currency_code
7360 ,new_purchase_currency_code
7361 ,old_sales_unit_price
7362 ,new_sales_unit_price
7363 ,old_sales_currency_code
7364 ,new_sales_currency_code
7365 ,old_operational_status_code
7366 ,new_operational_status_code
7367 -- End addition of columns for FA Integration
7368 -- Begin Add Code for Siebel Genesis Project
7369 ,OLD_SOURCE_CODE
7370 ,NEW_SOURCE_CODE
7371 -- End Add Code for Siebel Genesis Project
7372 FROM csi_item_instances_h
7373 WHERE instance_history_id = p_instance_history_id
7374 FOR UPDATE OF OBJECT_VERSION_NUMBER ;
7375
7376 l_ins_hist_id NUMBER;
7377 l_ins_hist_csr ins_hist_csr%ROWTYPE;
7378 l_last_vld_organization_id NUMBER;
7379 l_child_temp VARCHAR2(1);
7380 p_rel_query_rec csi_datastructures_pub.relationship_query_rec;
7381 l_rel_tbl csi_datastructures_pub.ii_relationship_tbl;
7382 l_ii_relationship_level_tbl csi_ii_relationships_pvt.ii_relationship_level_tbl;
7383 l_vld_org_id NUMBER;
7384 PROCESS_NEXT EXCEPTION;
7385 l_instance_status_id NUMBER;
7386 l_system_id NUMBER;
7387 l_termination_status BOOLEAN := FALSE;
7388 l_order_line_id NUMBER;
7389 l_oks_txn_type VARCHAR2(3);
7390 l_internal_party_id NUMBER;
7391 l_party_id NUMBER;
7392 l_eam_item BOOLEAN := FALSE;
7393 l_instance_history_id NUMBER;
7394 l_maintenance_object_type NUMBER := 3;
7395 l_child_count NUMBER;
7396 l_install_date DATE;
7397 l_valid BOOLEAN := TRUE;
7398 l_creation_flag VARCHAR2(1);
7399 l_config_inst_hdr_id NUMBER := fnd_api.g_miss_num;
7400 l_config_inst_rev_num NUMBER := fnd_api.g_miss_num;
7401 l_config_inst_item_id NUMBER := fnd_api.g_miss_num;
7402 l_config_valid_status VARCHAR2(30) := fnd_api.g_miss_char;
7403
7404 BEGIN
7405
7406 -- Standard Start of API savepoint
7407 IF FND_API.To_Boolean( p_commit )
7408 THEN
7409 SAVEPOINT update_child_instance_pvt;
7410 END IF;
7411
7412
7413 -- Standard call to check for call compatibility.
7414 IF NOT FND_API.Compatible_API_Call (l_api_version,
7415 p_api_version,
7416 l_api_name ,
7417 G_PKG_NAME )
7418 THEN
7419 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
7420 END IF;
7421
7422 -- Initialize message list if p_init_msg_list is set to TRUE.
7423 IF FND_API.to_Boolean( p_init_msg_list ) THEN
7424 FND_MSG_PUB.initialize;
7425 END IF;
7426 -- Initialize API return status to success
7427 x_return_status := FND_API.G_RET_STS_SUCCESS;
7428
7429 -- Check the profile option debug_level for debug message reporting
7430 l_debug_level:=fnd_profile.value('CSI_DEBUG_LEVEL');
7431
7432 -- If debug_level = 1 then dump the procedure name
7433 IF (l_debug_level > 0) THEN
7434 csi_gen_utility_pvt.put_line ( 'update_child_instance_pvt');
7435 END IF;
7436
7437 -- If the debug level = 2 then dump all the parameters values.
7438 IF (l_debug_level > 1) THEN
7439 csi_gen_utility_pvt.put_line ( 'update_child_instance_pvt:' ||
7440 p_api_version ||'-'||
7441 p_commit ||'-'||
7442 p_init_msg_list );
7443 END IF;
7444
7445 -- Start API body
7446 IF csi_datastructures_pub.g_install_param_rec.fetch_flag IS NULL THEN
7447 csi_gen_utility_pvt.populate_install_param_rec;
7448 END IF;
7449 --
7450 l_internal_party_id := csi_datastructures_pub.g_install_param_rec.internal_party_id;
7451 --
7452 IF l_internal_party_id IS NULL THEN
7453 FND_MESSAGE.SET_NAME('CSI','CSI_API_UNINSTALLED_PARAMETER');
7454 FND_MSG_PUB.ADD;
7455 RAISE FND_API.G_EXC_ERROR;
7456 END IF;
7457 --
7458 -- ADDED FOR BUG 2957236
7459 IF p_instance_rec.instance_status_id IS NOT NULL AND
7460 p_instance_rec.instance_status_id <> fnd_api.g_miss_num
7461 THEN
7462 IF csi_item_instance_vld_pvt.termination_status
7463 ( p_instance_status_id => p_instance_rec.instance_status_id )
7464 THEN
7465 l_termination_status := TRUE;
7466 l_config_inst_hdr_id := null;
7467 l_config_inst_rev_num := null;
7468 l_config_inst_item_id := null;
7469 l_config_valid_status := null;
7470 ELSE
7471 l_termination_status := FALSE;
7472 END IF;
7473 END IF;
7474 -- END ADDITION FOR BUG 2957236
7475
7476 -- Start API body
7477 p_rel_query_rec.object_id := p_instance_rec.instance_id;
7478 p_rel_query_rec.relationship_type_code := 'COMPONENT-OF';
7479 --
7480 IF p_rel_query_rec.object_id IS NOT NULL AND
7481 p_rel_query_rec.object_id <> FND_API.G_MISS_NUM THEN
7482 IF p_unexpire = FND_API.G_TRUE THEN
7483 csi_gen_utility_pvt.put_line ( 'Calling Get_Children for Un-expiry...');
7484 csi_ii_relationships_pvt.Get_Children
7485 ( p_relationship_query_rec => p_rel_query_rec,
7486 p_rel_tbl => l_rel_tbl,
7487 p_depth => NULL,
7488 p_active_relationship_only => FND_API.G_TRUE,
7489 p_active_instances_only => FND_API.G_FALSE, -- should be passed only when un-expiring
7490 p_time_stamp => FND_API.G_MISS_DATE,
7491 p_get_dfs => FND_API.G_FALSE,
7492 p_ii_relationship_level_tbl => l_ii_relationship_level_tbl,
7493 x_return_status => x_return_status,
7494 x_msg_count => x_msg_count,
7495 x_msg_data => x_msg_data
7496 );
7497 --
7498 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
7499 FND_MESSAGE.SET_NAME('CSI','CSI_API_GET_CHILDREN_ERROR');
7500 FND_MSG_PUB.Add;
7501 RAISE FND_API.G_EXC_ERROR;
7502 END IF;
7503 ELSE
7504 csi_gen_utility_pvt.put_line ( 'Calling Get_Children for Regular Inheritance...');
7505 csi_ii_relationships_pvt.Get_Children
7506 ( p_relationship_query_rec => p_rel_query_rec,
7507 p_rel_tbl => l_rel_tbl,
7508 p_depth => NULL,
7509 p_active_relationship_only => FND_API.G_TRUE,
7510 p_time_stamp => FND_API.G_MISS_DATE,
7511 p_get_dfs => FND_API.G_FALSE,
7512 p_ii_relationship_level_tbl => l_ii_relationship_level_tbl,
7513 x_return_status => x_return_status,
7514 x_msg_count => x_msg_count,
7515 x_msg_data => x_msg_data
7516 );
7517 --
7518 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
7519 FND_MESSAGE.SET_NAME('CSI','CSI_API_GET_CHILDREN_ERROR');
7520 FND_MSG_PUB.Add;
7521 RAISE FND_API.G_EXC_ERROR;
7522 END IF;
7523 END IF;
7524 END IF;
7525 --
7526 csi_gen_utility_pvt.put_line ( 'Rel Table count is : '||to_char(l_rel_tbl.count));
7527 --
7528 -- FOR l_child_instance_id IN child_instances
7529 IF l_rel_tbl.count > 0 THEN
7530 FOR j IN l_rel_tbl.FIRST .. l_rel_tbl.LAST
7531 LOOP
7532 BEGIN
7533 csi_gen_utility_pvt.put_line ( 'Processing Child Instance : '||to_char(l_rel_tbl(j).subject_id));
7534 -- Opening Cursor to retrieve Child Id records Details
7535 OPEN curr_instance_rec(l_rel_tbl(j).subject_id);
7536 FETCH curr_instance_rec INTO l_curr_instance_rec;
7537 IF curr_instance_rec%NOTFOUND THEN
7538 FND_MESSAGE.Set_Name('CSI', 'CSI_API_RECORD_LOCKED');
7539 FND_MSG_PUB.ADD;
7540 RAISE FND_API.G_EXC_ERROR;
7541 END IF;
7542 CLOSE curr_instance_rec;
7543 --This code has been added to make sure that the expired child instance should not get inherited
7544 --if there is any update to the parent in the component-of relationship.
7545 --Start of modifications for Bug#2887590
7546 --
7547 -- srramakr commented out active_end_date condition since the inheritance should look only for Qty
7548 -- active_end_date check will not allow you to un-expire a child instance having qty > 0.
7549 -- No need to select from CSI_ITEM_INSTANCES since l_curr_instance_re already has the instance info.
7550 IF l_curr_instance_rec.quantity = 0 THEN
7551 RAISE PROCESS_NEXT;
7552 END IF;
7553 --End of modifications for Bug#2887590
7554 --
7555
7556 p_instance_rec.object_version_number := l_curr_instance_rec.object_version_number + 1;
7557
7558 -- Following code is added for bug 2957236.
7559 -- If termination_status then it should be assigned to all the child instances
7560 -- else it should be assigned to only those instances which are with the same instance status
7561 -- as that of the parent.
7562 l_instance_status_id:= fnd_api.g_miss_num;
7563 IF l_termination_status
7564 THEN
7565 l_instance_status_id := p_instance_rec.instance_status_id;
7566 ELSIF NOT(l_termination_status)
7567 THEN
7568 IF p_original_status_id=l_curr_instance_rec.instance_status_id
7569 AND p_original_status_id <> fnd_api.g_miss_num
7570 THEN
7571 l_instance_status_id:=p_instance_rec.instance_status_id;
7572 END IF;
7573 END IF;
7574 -- System_id Cascade
7575 l_system_id := fnd_api.g_miss_num;
7576 IF p_original_system_id IS NOT NULL AND
7577 p_original_system_id <> fnd_api.g_miss_num THEN
7578 IF p_original_system_id = nvl(l_curr_instance_rec.system_id,-999) THEN
7579 l_system_id := p_instance_rec.system_id;
7580 END IF;
7581 ELSIF p_original_system_id IS NULL AND
7582 l_curr_instance_rec.system_id IS NULL THEN
7583 l_system_id := p_instance_rec.system_id;
7584 END IF;
7585 -- Install Date Cascade
7586 -- Cascade only if the component has the same install date as parent
7587 l_install_date := fnd_api.g_miss_date;
7588 IF p_orig_install_date IS NOT NULL AND
7589 p_orig_install_date <> fnd_api.g_miss_date THEN
7590 IF p_orig_install_date = nvl(l_curr_instance_rec.install_date,fnd_api.g_miss_date) THEN
7591 l_install_date := p_instance_rec.install_date;
7592 END IF;
7593 ELSIF p_orig_install_date IS NULL AND
7594 l_curr_instance_rec.install_date IS NULL THEN
7595 l_install_date := p_instance_rec.install_date;
7596 END IF;
7597 -- Start code addition for eam integration
7598 IF csi_item_instance_vld_pvt.Check_for_eam_item
7599 (p_inventory_item_id => l_curr_instance_rec.inventory_item_id,
7600 p_organization_id => l_curr_instance_rec.last_vld_organization_id)
7601 THEN
7602 l_eam_item := TRUE;
7603 END IF;
7604
7605 IF l_eam_item AND
7606 (p_instance_rec.active_end_date IS NOT NULL AND
7607 p_instance_rec.active_end_date <> fnd_api.g_miss_date)
7608 THEN
7609 IF NOT eam_common_utilities_pvt.check_deactivate
7610 (p_maintenance_object_id => l_rel_tbl(j).subject_id
7611 ,p_maintenance_object_type => l_maintenance_object_type)
7612 THEN
7613 csi_gen_utility_pvt.put_line('Error from eam_common_utilities_pvt.check_deactivate API ');
7614 RAISE fnd_api.g_exc_error;
7615 END IF;
7616 END IF;
7617 -- End code addition for eam integration
7618 --
7619 l_child_count := p_child_inst_tbl.count + 1;
7620 p_child_inst_tbl(l_child_count) := l_rel_tbl(j).subject_id;
7621 --
7622 -- validate instance status id
7623 IF NVL(l_instance_status_id,fnd_api.g_miss_num) <> fnd_api.g_miss_num
7624 THEN
7625 csi_item_instance_vld_pvt.is_valid_status(
7626 p_instance_status_id => l_instance_status_id,
7627 p_creation_complete_flag => l_creation_flag,
7628 l_return_value => l_valid);
7629 IF NOT(l_valid)
7630 THEN
7631 RAISE fnd_api.g_exc_error;
7632 END IF;
7633 END IF;
7634
7635 IF l_instance_status_id IS NOT NULL AND
7636 l_instance_status_id <> FND_API.G_MISS_NUM AND
7637 l_instance_status_id <> l_curr_instance_rec.INSTANCE_STATUS_ID
7638 THEN
7639 IF NOT csi_item_instance_vld_pvt.is_status_updateable
7640 (p_instance_status => l_instance_status_id
7641 ,p_current_status => l_curr_instance_rec.INSTANCE_STATUS_ID)
7642 THEN
7643 RAISE fnd_api.g_exc_error;
7644 END IF;
7645 END IF;
7646
7647 --Start of:Added for bug 6177045
7648 IF l_curr_instance_rec.LAST_OE_ORDER_LINE_ID IS NULL THEN
7649 l_curr_instance_rec.LAST_OE_ORDER_LINE_ID := p_instance_Rec.LAST_OE_ORDER_LINE_ID;
7650 ELSE
7651 l_curr_instance_rec.LAST_OE_ORDER_LINE_ID := fnd_api.g_miss_num;
7652 END IF;
7653 --End of:Added for bug 6177045
7654
7655 CSI_ITEM_INSTANCES_PKG.Update_Row
7656 ( p_INSTANCE_ID => l_rel_tbl(j).subject_id,
7657 p_INSTANCE_NUMBER => FND_API.G_MISS_CHAR,
7658 p_EXTERNAL_REFERENCE => FND_API.G_MISS_CHAR,
7659 p_INVENTORY_ITEM_ID => FND_API.G_MISS_NUM,
7660 p_INVENTORY_REVISION => FND_API.G_MISS_CHAR,
7661 p_INV_MASTER_ORGANIZATION_ID => FND_API.G_MISS_NUM,
7662 p_SERIAL_NUMBER => FND_API.G_MISS_CHAR,
7663 p_MFG_SERIAL_NUMBER_FLAG => FND_API.G_MISS_CHAR,
7664 p_LOT_NUMBER => FND_API.G_MISS_CHAR,
7665 p_QUANTITY => FND_API.G_MISS_NUM,
7666 p_UNIT_OF_MEASURE => FND_API.G_MISS_CHAR,
7667 p_ACCOUNTING_CLASS_CODE => p_instance_rec.ACCOUNTING_CLASS_CODE,
7668 p_INSTANCE_CONDITION_ID => FND_API.G_MISS_NUM,
7669 p_INSTANCE_STATUS_ID => l_instance_status_id, --p_instance_rec.INSTANCE_STATUS_ID,
7670 p_CUSTOMER_VIEW_FLAG => FND_API.G_MISS_CHAR,
7671 p_MERCHANT_VIEW_FLAG => FND_API.G_MISS_CHAR,
7672 p_SELLABLE_FLAG => FND_API.G_MISS_CHAR,
7673 p_SYSTEM_ID => l_system_id,--FND_API.G_MISS_NUM,
7674 p_INSTANCE_TYPE_CODE => FND_API.G_MISS_CHAR,
7675 p_ACTIVE_START_DATE => FND_API.G_MISS_DATE,
7676 p_ACTIVE_END_DATE => p_instance_Rec.ACTIVE_END_DATE,
7677 p_LOCATION_TYPE_CODE => p_instance_rec.LOCATION_TYPE_CODE,
7678 p_LOCATION_ID => p_instance_rec.LOCATION_ID,
7679 p_INV_ORGANIZATION_ID => p_instance_rec.INV_ORGANIZATION_ID,
7680 p_INV_SUBINVENTORY_NAME => p_instance_rec.INV_SUBINVENTORY_NAME,
7681 p_INV_LOCATOR_ID => p_instance_rec.INV_LOCATOR_ID,
7682 p_PA_PROJECT_ID => p_instance_rec.PA_PROJECT_ID,
7683 p_PA_PROJECT_TASK_ID => p_instance_rec.PA_PROJECT_TASK_ID,
7684 p_IN_TRANSIT_ORDER_LINE_ID => p_instance_rec.IN_TRANSIT_ORDER_LINE_ID,
7685 p_WIP_JOB_ID => p_instance_rec.WIP_JOB_ID,
7686 p_PO_ORDER_LINE_ID => p_instance_rec.PO_ORDER_LINE_ID,
7687 --p_LAST_OE_ORDER_LINE_ID => p_instance_rec.LAST_OE_ORDER_LINE_ID, Commented for bug 6177045
7688 p_LAST_OE_ORDER_LINE_ID => l_curr_instance_rec.LAST_OE_ORDER_LINE_ID, --Added for bug 6177045
7689 --Start of changes for bug:5899043
7690 p_LAST_OE_RMA_LINE_ID => FND_API.G_MISS_NUM, --p_instance_rec.LAST_OE_RMA_LINE_ID,
7691 p_LAST_PO_PO_LINE_ID => FND_API.G_MISS_NUM, --p_instance_rec.LAST_PO_PO_LINE_ID,
7692 p_LAST_OE_PO_NUMBER => FND_API.G_MISS_CHAR,--p_instance_rec.LAST_OE_PO_NUMBER,
7693 p_LAST_WIP_JOB_ID => FND_API.G_MISS_NUM, --p_instance_rec.LAST_WIP_JOB_ID,
7694 p_LAST_PA_PROJECT_ID => FND_API.G_MISS_NUM, --p_instance_rec.LAST_PA_PROJECT_ID,
7695 p_LAST_PA_TASK_ID => FND_API.G_MISS_NUM, --p_instance_rec.LAST_PA_TASK_ID,
7696 p_LAST_OE_AGREEMENT_ID => FND_API.G_MISS_NUM, --p_instance_rec.LAST_OE_AGREEMENT_ID,
7697 --End of changes for bug:5899043
7698 p_INSTALL_DATE => l_install_date, -- Install Date should be cascaded
7699 p_MANUALLY_CREATED_FLAG => FND_API.G_MISS_CHAR,
7700 p_RETURN_BY_DATE => FND_API.G_MISS_DATE,
7701 p_ACTUAL_RETURN_DATE => FND_API.G_MISS_DATE,
7702 p_CREATION_COMPLETE_FLAG => FND_API.G_MISS_CHAR,
7703 p_COMPLETENESS_FLAG => FND_API.G_MISS_CHAR,
7704 p_CONTEXT => FND_API.G_MISS_CHAR,
7705 p_ATTRIBUTE1 => FND_API.G_MISS_CHAR,
7706 p_ATTRIBUTE2 => FND_API.G_MISS_CHAR,
7707 p_ATTRIBUTE3 => FND_API.G_MISS_CHAR,
7708 p_ATTRIBUTE4 => FND_API.G_MISS_CHAR,
7709 p_ATTRIBUTE5 => FND_API.G_MISS_CHAR,
7710 p_ATTRIBUTE6 => FND_API.G_MISS_CHAR,
7711 p_ATTRIBUTE7 => FND_API.G_MISS_CHAR,
7712 p_ATTRIBUTE8 => FND_API.G_MISS_CHAR,
7713 p_ATTRIBUTE9 => FND_API.G_MISS_CHAR,
7714 p_ATTRIBUTE10 => FND_API.G_MISS_CHAR,
7715 p_ATTRIBUTE11 => FND_API.G_MISS_CHAR,
7716 p_ATTRIBUTE12 => FND_API.G_MISS_CHAR,
7717 p_ATTRIBUTE13 => FND_API.G_MISS_CHAR,
7718 p_ATTRIBUTE14 => FND_API.G_MISS_CHAR,
7719 p_ATTRIBUTE15 => FND_API.G_MISS_CHAR,
7720 p_CREATED_BY => fnd_api.g_miss_num,
7721 p_CREATION_DATE => fnd_api.g_miss_date,
7722 p_LAST_UPDATED_BY => FND_GLOBAL.USER_ID,
7723 p_LAST_UPDATE_DATE => SYSDATE,
7724 p_LAST_UPDATE_LOGIN => FND_GLOBAL.CONC_LOGIN_ID,
7725 p_OBJECT_VERSION_NUMBER => p_instance_rec.OBJECT_VERSION_NUMBER,
7726 p_LAST_TXN_LINE_DETAIL_ID => FND_API.G_MISS_NUM,
7727 p_INSTALL_LOCATION_TYPE_CODE => p_instance_rec.INSTALL_LOCATION_TYPE_CODE,
7728 p_INSTALL_LOCATION_ID => p_instance_rec.INSTALL_LOCATION_ID,
7729 p_INSTANCE_USAGE_CODE => FND_API.G_MISS_CHAR,
7730 p_LAST_VLD_ORGANIZATION_ID => FND_API.G_MISS_NUM,
7731 p_CONFIG_INST_HDR_ID => l_config_inst_hdr_id, --FND_API.G_MISS_NUM,
7732 p_CONFIG_INST_REV_NUM => l_config_inst_rev_num, --FND_API.G_MISS_NUM,
7733 p_CONFIG_INST_ITEM_ID => l_config_inst_item_id, --FND_API.G_MISS_NUM,
7734 p_CONFIG_VALID_STATUS => l_config_valid_status,--FND_API.G_MISS_CHAR,
7735 p_INSTANCE_DESCRIPTION => FND_API.G_MISS_CHAR,
7736 p_REQUEST_ID => FND_API.G_MISS_NUM,
7737 p_PROGRAM_APPLICATION_ID => FND_API.G_MISS_NUM,
7738 p_PROGRAM_ID => FND_API.G_MISS_NUM,
7739 p_PROGRAM_UPDATE_DATE => FND_API.G_MISS_DATE,
7740 --start of parameters addition for eam integration--
7741 p_NETWORK_ASSET_FLAG => FND_API.G_MISS_CHAR,
7742 p_MAINTAINABLE_FLAG => FND_API.G_MISS_CHAR,
7743 p_PN_LOCATION_ID => FND_API.G_MISS_NUM,
7744 p_ASSET_CRITICALITY_CODE => FND_API.G_MISS_CHAR,
7745 p_CATEGORY_ID => FND_API.G_MISS_NUM,
7746 p_EQUIPMENT_GEN_OBJECT_ID => FND_API.G_MISS_NUM,
7747 p_INSTANTIATION_FLAG => FND_API.G_MISS_CHAR,
7748 p_LINEAR_LOCATION_ID => FND_API.G_MISS_NUM,
7749 p_OPERATIONAL_LOG_FLAG => FND_API.G_MISS_CHAR,
7750 p_CHECKIN_STATUS => FND_API.G_MISS_NUM,
7751 p_SUPPLIER_WARRANTY_EXP_DATE => FND_API.G_MISS_DATE,
7752 p_ATTRIBUTE16 => FND_API.G_MISS_CHAR,
7753 p_ATTRIBUTE17 => FND_API.G_MISS_CHAR,
7754 p_ATTRIBUTE18 => FND_API.G_MISS_CHAR,
7755 p_ATTRIBUTE19 => FND_API.G_MISS_CHAR,
7756 p_ATTRIBUTE20 => FND_API.G_MISS_CHAR,
7757 p_ATTRIBUTE21 => FND_API.G_MISS_CHAR,
7758 p_ATTRIBUTE22 => FND_API.G_MISS_CHAR,
7759 p_ATTRIBUTE23 => FND_API.G_MISS_CHAR,
7760 p_ATTRIBUTE24 => FND_API.G_MISS_CHAR,
7761 p_ATTRIBUTE25 => FND_API.G_MISS_CHAR,
7762 p_ATTRIBUTE26 => FND_API.G_MISS_CHAR,
7763 p_ATTRIBUTE27 => FND_API.G_MISS_CHAR,
7764 p_ATTRIBUTE28 => FND_API.G_MISS_CHAR,
7765 p_ATTRIBUTE29 => FND_API.G_MISS_CHAR,
7766 p_ATTRIBUTE30 => FND_API.G_MISS_CHAR,
7767 --end of parameters addition for eam integration--
7768 -- Addition of columns for FA Integration
7769 p_PURCHASE_UNIT_PRICE => FND_API.G_MISS_NUM,
7770 p_PURCHASE_CURRENCY_CODE => FND_API.G_MISS_CHAR,
7771 p_PAYABLES_UNIT_PRICE => FND_API.G_MISS_NUM,
7772 p_PAYABLES_CURRENCY_CODE => FND_API.G_MISS_CHAR,
7773 p_SALES_UNIT_PRICE => FND_API.G_MISS_NUM,
7774 p_SALES_CURRENCY_CODE => FND_API.G_MISS_CHAR,
7775 p_OPERATIONAL_STATUS_CODE => p_instance_rec.operational_status_code,
7776 -- End addition of columns for FA Integration
7777 p_SOURCE_CODE => p_instance_rec.SOURCE_CODE -- Added Code for Siebel Genesis Project
7778 );
7779
7780 -- Get the full_dump_frequency from csi_install_parameter
7781 --
7782 IF csi_datastructures_pub.g_install_param_rec.fetch_flag IS NULL THEN
7783 csi_gen_utility_pvt.populate_install_param_rec;
7784 END IF;
7785 --
7786 l_full_dump_frequency := csi_datastructures_pub.g_install_param_rec.history_full_dump_frequency;
7787 --
7788 IF l_full_dump_frequency IS NULL THEN
7789 FND_MESSAGE.SET_NAME('CSI','CSI_API_GET_FULL_DUMP_FAILED');
7790 FND_MSG_PUB.ADD;
7791 RAISE FND_API.G_EXC_ERROR;
7792 END IF;
7793 --
7794 -- Get a unique history item instance id from the sequence
7795 l_csi_item_instance_h_id :=
7796 csi_item_instance_vld_pvt.get_csi_item_instance_h_id;
7797
7798 SELECT MOD(p_instance_rec.object_version_number,l_full_dump_frequency)
7799 INTO l_mod_value
7800 FROM dual;
7801
7802 -- Start of modifications for Bug#2547034 on 09/20/02 - rtalluri
7803 BEGIN
7804 SELECT instance_history_id
7805 INTO l_ins_hist_id
7806 FROM csi_item_instances_h h
7807 WHERE h.transaction_id = p_txn_rec.transaction_id
7808 AND h.instance_id = l_rel_tbl(j).subject_id;
7809
7810 OPEN ins_hist_csr(l_ins_hist_id);
7811 FETCH ins_hist_csr INTO l_ins_hist_csr ;
7812 CLOSE ins_hist_csr;
7813
7814 IF l_ins_hist_csr.full_dump_flag = 'Y'
7815 THEN
7816 CSI_ITEM_INSTANCES_H_PKG.Update_Row
7817 ( p_INSTANCE_HISTORY_ID => l_ins_hist_id
7818 ,p_INSTANCE_ID => fnd_api.g_miss_num
7819 ,p_TRANSACTION_ID => fnd_api.g_miss_num
7820 ,p_OLD_INSTANCE_NUMBER => fnd_api.g_miss_char
7821 ,p_NEW_INSTANCE_NUMBER => fnd_api.g_miss_char
7822 ,p_OLD_EXTERNAL_REFERENCE => fnd_api.g_miss_char
7823 ,p_NEW_EXTERNAL_REFERENCE => fnd_api.g_miss_char
7824 ,p_OLD_INVENTORY_ITEM_ID => fnd_api.g_miss_num
7825 ,p_NEW_INVENTORY_ITEM_ID => fnd_api.g_miss_num
7826 ,p_OLD_INVENTORY_REVISION => fnd_api.g_miss_char
7827 ,p_NEW_INVENTORY_REVISION => fnd_api.g_miss_char
7828 ,p_OLD_INV_MASTER_ORGZN_ID => fnd_api.g_miss_num
7829 ,p_NEW_INV_MASTER_ORGZN_ID => fnd_api.g_miss_num
7830 ,p_OLD_SERIAL_NUMBER => fnd_api.g_miss_char
7831 ,p_NEW_SERIAL_NUMBER => fnd_api.g_miss_char
7832 ,p_OLD_MFG_SERIAL_NUMBER_FLAG => fnd_api.g_miss_char
7833 ,p_NEW_MFG_SERIAL_NUMBER_FLAG => fnd_api.g_miss_char
7834 ,p_OLD_LOT_NUMBER => fnd_api.g_miss_char
7835 ,p_NEW_LOT_NUMBER => fnd_api.g_miss_char
7836 ,p_OLD_QUANTITY => fnd_api.g_miss_num
7837 ,p_NEW_QUANTITY => fnd_api.g_miss_num
7838 ,p_OLD_UNIT_OF_MEASURE => fnd_api.g_miss_char
7839 ,p_NEW_UNIT_OF_MEASURE => fnd_api.g_miss_char
7840 ,p_OLD_ACCOUNTING_CLASS_CODE => fnd_api.g_miss_char
7841 ,p_NEW_ACCOUNTING_CLASS_CODE => p_instance_rec.ACCOUNTING_CLASS_CODE
7842 ,p_OLD_INSTANCE_CONDITION_ID => fnd_api.g_miss_num
7843 ,p_NEW_INSTANCE_CONDITION_ID => fnd_api.g_miss_num
7844 ,p_OLD_INSTANCE_STATUS_ID => fnd_api.g_miss_num
7845 ,p_NEW_INSTANCE_STATUS_ID => l_instance_status_id --p_instance_rec.INSTANCE_STATUS_ID
7846 ,p_OLD_CUSTOMER_VIEW_FLAG => fnd_api.g_miss_char
7847 ,p_NEW_CUSTOMER_VIEW_FLAG => fnd_api.g_miss_char
7848 ,p_OLD_MERCHANT_VIEW_FLAG => fnd_api.g_miss_char
7849 ,p_NEW_MERCHANT_VIEW_FLAG => fnd_api.g_miss_char
7850 ,p_OLD_SELLABLE_FLAG => fnd_api.g_miss_char
7851 ,p_NEW_SELLABLE_FLAG => fnd_api.g_miss_char
7852 ,p_OLD_SYSTEM_ID => fnd_api.g_miss_num
7853 ,p_NEW_SYSTEM_ID => l_system_id
7854 ,p_OLD_INSTANCE_TYPE_CODE => fnd_api.g_miss_char
7855 ,p_NEW_INSTANCE_TYPE_CODE => fnd_api.g_miss_char
7856 ,p_OLD_ACTIVE_START_DATE => fnd_api.g_miss_date
7857 ,p_NEW_ACTIVE_START_DATE => fnd_api.g_miss_date
7858 ,p_OLD_ACTIVE_END_DATE => fnd_api.g_miss_date
7859 ,p_NEW_ACTIVE_END_DATE => p_instance_rec.ACTIVE_END_DATE
7860 ,p_OLD_LOCATION_TYPE_CODE => fnd_api.g_miss_char
7861 ,p_NEW_LOCATION_TYPE_CODE => p_instance_rec.LOCATION_TYPE_CODE
7862 ,p_OLD_LOCATION_ID => fnd_api.g_miss_num
7863 ,p_NEW_LOCATION_ID => p_instance_rec.LOCATION_ID
7864 ,p_OLD_INV_ORGANIZATION_ID => fnd_api.g_miss_num
7865 ,p_NEW_INV_ORGANIZATION_ID => p_instance_rec.INV_ORGANIZATION_ID
7866 ,p_OLD_INV_SUBINVENTORY_NAME => fnd_api.g_miss_char
7867 ,p_NEW_INV_SUBINVENTORY_NAME => p_instance_rec.INV_SUBINVENTORY_NAME
7868 ,p_OLD_INV_LOCATOR_ID => fnd_api.g_miss_num
7869 ,p_NEW_INV_LOCATOR_ID => p_instance_rec.INV_LOCATOR_ID
7870 ,p_OLD_PA_PROJECT_ID => fnd_api.g_miss_num
7871 ,p_NEW_PA_PROJECT_ID => p_instance_rec.PA_PROJECT_ID
7872 ,p_OLD_PA_PROJECT_TASK_ID => fnd_api.g_miss_num
7873 ,p_NEW_PA_PROJECT_TASK_ID => p_instance_rec.PA_PROJECT_TASK_ID
7874 ,p_OLD_IN_TRANSIT_ORDER_LINE_ID => fnd_api.g_miss_num
7875 ,p_NEW_IN_TRANSIT_ORDER_LINE_ID => p_instance_rec.IN_TRANSIT_ORDER_LINE_ID
7876 ,p_OLD_WIP_JOB_ID => fnd_api.g_miss_num
7877 ,p_NEW_WIP_JOB_ID => p_instance_rec.WIP_JOB_ID
7878 ,p_OLD_PO_ORDER_LINE_ID => fnd_api.g_miss_num
7879 ,p_NEW_PO_ORDER_LINE_ID => p_instance_rec.PO_ORDER_LINE_ID
7880 ,p_OLD_COMPLETENESS_FLAG => fnd_api.g_miss_char
7881 ,p_NEW_COMPLETENESS_FLAG => fnd_api.g_miss_char
7882 ,p_FULL_DUMP_FLAG => fnd_api.g_miss_char
7883 ,p_NEW_CONTEXT => fnd_api.g_miss_char
7884 ,P_OLD_CONTEXT => fnd_api.g_miss_char
7885 ,p_NEW_ATTRIBUTE1 => fnd_api.g_miss_char
7886 ,p_OLD_ATTRIBUTE1 => fnd_api.g_miss_char
7887 ,p_NEW_ATTRIBUTE2 => fnd_api.g_miss_char
7888 ,p_OLD_ATTRIBUTE2 => fnd_api.g_miss_char
7889 ,p_NEW_ATTRIBUTE3 => fnd_api.g_miss_char
7890 ,p_OLD_ATTRIBUTE3 => fnd_api.g_miss_char
7891 ,p_NEW_ATTRIBUTE4 => fnd_api.g_miss_char
7892 ,p_OLD_ATTRIBUTE4 => fnd_api.g_miss_char
7893 ,p_NEW_ATTRIBUTE5 => fnd_api.g_miss_char
7894 ,p_OLD_ATTRIBUTE5 => fnd_api.g_miss_char
7895 ,p_NEW_ATTRIBUTE6 => fnd_api.g_miss_char
7896 ,p_OLD_ATTRIBUTE6 => fnd_api.g_miss_char
7897 ,p_NEW_ATTRIBUTE7 => fnd_api.g_miss_char
7898 ,p_OLD_ATTRIBUTE7 => fnd_api.g_miss_char
7899 ,p_NEW_ATTRIBUTE8 => fnd_api.g_miss_char
7900 ,p_OLD_ATTRIBUTE8 => fnd_api.g_miss_char
7901 ,p_NEW_ATTRIBUTE9 => fnd_api.g_miss_char
7902 ,p_OLD_ATTRIBUTE9 => fnd_api.g_miss_char
7903 ,p_NEW_ATTRIBUTE10 => fnd_api.g_miss_char
7904 ,p_OLD_ATTRIBUTE10 => fnd_api.g_miss_char
7905 ,p_NEW_ATTRIBUTE11 => fnd_api.g_miss_char
7906 ,p_OLD_ATTRIBUTE11 => fnd_api.g_miss_char
7907 ,p_NEW_ATTRIBUTE12 => fnd_api.g_miss_char
7908 ,p_OLD_ATTRIBUTE12 => fnd_api.g_miss_char
7909 ,p_NEW_ATTRIBUTE13 => fnd_api.g_miss_char
7910 ,p_OLD_ATTRIBUTE13 => fnd_api.g_miss_char
7911 ,p_NEW_ATTRIBUTE14 => fnd_api.g_miss_char
7912 ,p_OLD_ATTRIBUTE14 => fnd_api.g_miss_char
7913 ,p_NEW_ATTRIBUTE15 => fnd_api.g_miss_char
7914 ,p_OLD_ATTRIBUTE15 => fnd_api.g_miss_char
7915 ,p_CREATED_BY => fnd_api.g_miss_num
7916 ,p_CREATION_DATE => fnd_api.g_miss_date
7917 ,p_LAST_UPDATED_BY => FND_GLOBAL.USER_ID
7918 ,p_LAST_UPDATE_DATE => SYSDATE
7919 ,p_LAST_UPDATE_LOGIN => FND_GLOBAL.CONC_LOGIN_ID
7920 ,p_OBJECT_VERSION_NUMBER => fnd_api.g_miss_num
7921 ,p_OLD_INST_LOC_TYPE_CODE => fnd_api.g_miss_char
7922 ,p_NEW_INST_LOC_TYPE_CODE => p_instance_rec.INSTALL_LOCATION_TYPE_CODE
7923 ,p_OLD_INST_LOC_ID => fnd_api.g_miss_num
7924 ,p_NEW_INST_LOC_ID => p_instance_rec.INSTALL_LOCATION_ID
7925 ,p_OLD_INST_USAGE_CODE => fnd_api.g_miss_char
7926 ,p_NEW_INST_USAGE_CODE => fnd_api.g_miss_char
7927 ,p_OLD_LAST_VLD_ORGANIZATION_ID => fnd_api.g_miss_num
7928 ,p_NEW_LAST_VLD_ORGANIZATION_ID => fnd_api.g_miss_num
7929 ,p_OLD_CONFIG_INST_REV_NUM => fnd_api.g_miss_num
7930 ,p_NEW_CONFIG_INST_REV_NUM => fnd_api.g_miss_num
7931 ,p_OLD_CONFIG_VALID_STATUS => fnd_api.g_miss_char
7932 ,p_NEW_CONFIG_VALID_STATUS => fnd_api.g_miss_char
7933 ,p_OLD_INSTANCE_DESCRIPTION => fnd_api.g_miss_char
7934 ,p_NEW_INSTANCE_DESCRIPTION => fnd_api.g_miss_char
7935 ,p_OLD_INSTALL_DATE => fnd_api.g_miss_date
7936 ,p_NEW_INSTALL_DATE => l_install_date
7937 ,p_OLD_RETURN_BY_DATE => fnd_api.g_miss_date
7938 ,p_NEW_RETURN_BY_DATE => fnd_api.g_miss_date
7939 ,p_OLD_ACTUAL_RETURN_DATE => fnd_api.g_miss_date
7940 ,p_NEW_ACTUAL_RETURN_DATE => fnd_api.g_miss_date
7941 ,p_OLD_LAST_OE_AGREEMENT_ID => fnd_api.g_miss_num
7942 ,p_NEW_LAST_OE_AGREEMENT_ID => fnd_api.g_miss_num
7943 ,p_OLD_LAST_OE_ORDER_LINE_ID => fnd_api.g_miss_num
7944 ,p_NEW_LAST_OE_ORDER_LINE_ID => fnd_api.g_miss_num --p_instance_rec.LAST_OE_ORDER_LINE_ID
7945 ,p_OLD_LAST_OE_RMA_LINE_ID => fnd_api.g_miss_num
7946 ,p_NEW_LAST_OE_RMA_LINE_ID => fnd_api.g_miss_num --p_instance_rec.LAST_OE_RMA_LINE_ID
7947 ,p_OLD_LAST_WIP_JOB_ID => fnd_api.g_miss_num --fnd_api.g_miss_num
7948 ,p_NEW_LAST_WIP_JOB_ID => fnd_api.g_miss_num --p_instance_rec.LAST_WIP_JOB_ID
7949 ,p_OLD_LAST_PO_PO_LINE_ID => fnd_api.g_miss_num --fnd_api.g_miss_num
7950 ,p_NEW_LAST_PO_PO_LINE_ID => fnd_api.g_miss_num --p_instance_rec.LAST_PO_PO_LINE_ID
7951 ,p_OLD_LAST_PA_PROJECT_ID => fnd_api.g_miss_num --fnd_api.g_miss_num
7952 ,p_NEW_LAST_PA_PROJECT_ID => fnd_api.g_miss_num --p_instance_rec.LAST_PA_PROJECT_ID
7953 ,p_OLD_LAST_PA_TASK_ID => fnd_api.g_miss_num --fnd_api.g_miss_num
7954 ,p_NEW_LAST_PA_TASK_ID => fnd_api.g_miss_num --p_instance_rec.LAST_PA_TASK_ID
7955 ,p_OLD_LAST_TXN_LINE_DETAIL_ID => fnd_api.g_miss_num
7956 ,p_NEW_LAST_TXN_LINE_DETAIL_ID => fnd_api.g_miss_num --p_instance_rec.LAST_TXN_LINE_DETAIL_ID
7957 ,p_OLD_LAST_OE_PO_NUMBER => fnd_api.g_miss_char
7958 ,p_NEW_LAST_OE_PO_NUMBER => fnd_api.g_miss_char --p_instance_rec.LAST_OE_PO_NUMBER
7959 --start of parameters addition for eam integration--
7960 ,p_OLD_NETWORK_ASSET_FLAG => fnd_api.g_miss_char
7961 ,p_NEW_NETWORK_ASSET_FLAG => fnd_api.g_miss_char
7962 ,p_OLD_MAINTAINABLE_FLAG => fnd_api.g_miss_char
7963 ,p_NEW_MAINTAINABLE_FLAG => fnd_api.g_miss_char
7964 ,p_OLD_PN_LOCATION_ID => fnd_api.g_miss_num
7965 ,p_NEW_PN_LOCATION_ID => fnd_api.g_miss_num
7966 ,p_OLD_ASSET_CRITICALITY_CODE => fnd_api.g_miss_char
7967 ,p_NEW_ASSET_CRITICALITY_CODE => fnd_api.g_miss_char
7968 ,p_OLD_CATEGORY_ID => fnd_api.g_miss_num
7969 ,p_NEW_CATEGORY_ID => fnd_api.g_miss_num
7970 ,p_OLD_EQUIPMENT_GEN_OBJECT_ID => fnd_api.g_miss_num
7971 ,p_NEW_EQUIPMENT_GEN_OBJECT_ID => fnd_api.g_miss_num
7972 ,p_OLD_INSTANTIATION_FLAG => fnd_api.g_miss_char
7973 ,p_NEW_INSTANTIATION_FLAG => fnd_api.g_miss_char
7974 ,p_OLD_LINEAR_LOCATION_ID => fnd_api.g_miss_num
7975 ,p_NEW_LINEAR_LOCATION_ID => fnd_api.g_miss_num
7976 ,p_OLD_OPERATIONAL_LOG_FLAG => fnd_api.g_miss_char
7977 ,p_NEW_OPERATIONAL_LOG_FLAG => fnd_api.g_miss_char
7978 ,p_OLD_CHECKIN_STATUS => fnd_api.g_miss_NUM
7979 ,p_NEW_CHECKIN_STATUS => fnd_api.g_miss_NUM
7980 ,p_OLD_SUP_WARRANTY_EXP_DATE => fnd_api.g_miss_date
7981 ,p_NEW_SUP_WARRANTY_EXP_DATE => fnd_api.g_miss_date
7982 ,p_OLD_ATTRIBUTE16 => fnd_api.g_miss_char
7983 ,p_NEW_ATTRIBUTE16 => fnd_api.g_miss_char
7984 ,p_OLD_ATTRIBUTE17 => fnd_api.g_miss_char
7985 ,p_NEW_ATTRIBUTE17 => fnd_api.g_miss_char
7986 ,p_OLD_ATTRIBUTE18 => fnd_api.g_miss_char
7987 ,p_NEW_ATTRIBUTE18 => fnd_api.g_miss_char
7988 ,p_OLD_ATTRIBUTE19 => fnd_api.g_miss_char
7989 ,p_NEW_ATTRIBUTE19 => fnd_api.g_miss_char
7990 ,p_OLD_ATTRIBUTE20 => fnd_api.g_miss_char
7991 ,p_NEW_ATTRIBUTE20 => fnd_api.g_miss_char
7992 ,p_OLD_ATTRIBUTE21 => fnd_api.g_miss_char
7993 ,p_NEW_ATTRIBUTE21 => fnd_api.g_miss_char
7994 ,p_OLD_ATTRIBUTE22 => fnd_api.g_miss_char
7995 ,p_NEW_ATTRIBUTE22 => fnd_api.g_miss_char
7996 ,p_OLD_ATTRIBUTE23 => fnd_api.g_miss_char
7997 ,p_NEW_ATTRIBUTE23 => fnd_api.g_miss_char
7998 ,p_OLD_ATTRIBUTE24 => fnd_api.g_miss_char
7999 ,p_NEW_ATTRIBUTE24 => fnd_api.g_miss_char
8000 ,p_OLD_ATTRIBUTE25 => fnd_api.g_miss_char
8001 ,p_NEW_ATTRIBUTE25 => fnd_api.g_miss_char
8002 ,p_OLD_ATTRIBUTE26 => fnd_api.g_miss_char
8003 ,p_NEW_ATTRIBUTE26 => fnd_api.g_miss_char
8004 ,p_OLD_ATTRIBUTE27 => fnd_api.g_miss_char
8005 ,p_NEW_ATTRIBUTE27 => fnd_api.g_miss_char
8006 ,p_OLD_ATTRIBUTE28 => fnd_api.g_miss_char
8007 ,p_NEW_ATTRIBUTE28 => fnd_api.g_miss_char
8008 ,p_OLD_ATTRIBUTE29 => fnd_api.g_miss_char
8009 ,p_NEW_ATTRIBUTE29 => fnd_api.g_miss_char
8010 ,p_OLD_ATTRIBUTE30 => fnd_api.g_miss_char
8011 ,p_NEW_ATTRIBUTE30 => fnd_api.g_miss_char
8012 --end of parameters addition for eam integration--
8013 -- Addition of columns for FA Integration
8014 ,p_OLD_PAYABLES_UNIT_PRICE => fnd_api.g_miss_num
8015 ,p_NEW_PAYABLES_UNIT_PRICE => fnd_api.g_miss_num
8016 ,p_OLD_PAYABLES_CURRENCY_CODE => fnd_api.g_miss_char
8017 ,p_NEW_PAYABLES_CURRENCY_CODE => fnd_api.g_miss_char
8018 ,p_OLD_PURCHASE_UNIT_PRICE => fnd_api.g_miss_num
8019 ,p_NEW_PURCHASE_UNIT_PRICE => fnd_api.g_miss_num
8020 ,p_OLD_PURCHASE_CURRENCY_CODE => fnd_api.g_miss_char
8021 ,p_NEW_PURCHASE_CURRENCY_CODE => fnd_api.g_miss_char
8022 ,p_OLD_SALES_UNIT_PRICE => fnd_api.g_miss_num
8023 ,p_NEW_SALES_UNIT_PRICE => fnd_api.g_miss_num
8024 ,p_OLD_SALES_CURRENCY_CODE => fnd_api.g_miss_char
8025 ,p_NEW_SALES_CURRENCY_CODE => fnd_api.g_miss_char
8026 ,p_OLD_OPERATIONAL_STATUS_CODE => fnd_api.g_miss_char
8027 ,p_NEW_OPERATIONAL_STATUS_CODE => p_instance_rec.operational_status_code
8028 -- End addition of columns for FA Integration
8029 -- Begin Add Code for Siebel Genesis Project
8030 ,p_OLD_SOURCE_CODE => fnd_api.g_miss_char
8031 ,p_NEW_SOURCE_CODE => fnd_api.g_miss_char
8032 -- End Add Code for Siebel Genesis Project
8033 );
8034
8035 ELSE --l_ins_hist_csr.full_dump_flag = 'N'
8036
8037 IF ( l_ins_hist_csr.old_accounting_class_code IS NULL
8038 AND l_ins_hist_csr.new_accounting_class_code IS NULL ) THEN
8039 IF ( p_instance_rec.accounting_class_code = l_curr_instance_rec.accounting_class_code )
8040 OR ( p_instance_rec.accounting_class_code = fnd_api.g_miss_char ) THEN
8041 l_ins_hist_csr.old_accounting_class_code := NULL;
8042 l_ins_hist_csr.new_accounting_class_code := NULL;
8043 ELSE
8044 l_ins_hist_csr.old_accounting_class_code := fnd_api.g_miss_char;
8045 l_ins_hist_csr.new_accounting_class_code := p_instance_rec.accounting_class_code;
8046 END IF;
8047 ELSE
8048 l_ins_hist_csr.old_accounting_class_code := fnd_api.g_miss_char;
8049 l_ins_hist_csr.new_accounting_class_code := p_instance_rec.accounting_class_code;
8050 END IF;
8051 --
8052 IF ( l_ins_hist_csr.old_instance_status_id IS NULL
8053 AND l_ins_hist_csr.new_instance_status_id IS NULL ) THEN
8054 IF ( l_instance_status_id = l_curr_instance_rec.instance_status_id )
8055 OR ( l_instance_status_id = fnd_api.g_miss_num ) THEN
8056 l_ins_hist_csr.old_instance_status_id := NULL;
8057 l_ins_hist_csr.new_instance_status_id := NULL;
8058 ELSE
8059 l_ins_hist_csr.old_instance_status_id := fnd_api.g_miss_num;
8060 l_ins_hist_csr.new_instance_status_id := l_instance_status_id;
8061 END IF;
8062 ELSE
8063 l_ins_hist_csr.old_instance_status_id := fnd_api.g_miss_num;
8064 l_ins_hist_csr.new_instance_status_id := l_instance_status_id;
8065 END IF;
8066 --
8067 IF ( l_ins_hist_csr.old_system_id IS NULL
8068 AND l_ins_hist_csr.new_system_id IS NULL ) THEN
8069 IF ( l_system_id = l_curr_instance_rec.system_id )
8070 OR ( l_system_id = fnd_api.g_miss_num ) THEN
8071 l_ins_hist_csr.old_system_id := NULL;
8072 l_ins_hist_csr.new_system_id := NULL;
8073 ELSE
8074 l_ins_hist_csr.old_system_id := fnd_api.g_miss_num;
8075 l_ins_hist_csr.new_system_id := l_system_id;
8076 END IF;
8077 ELSE
8078 l_ins_hist_csr.old_system_id := fnd_api.g_miss_num;
8079 l_ins_hist_csr.new_system_id := l_system_id;
8080 END IF;
8081 --
8082 IF ( l_ins_hist_csr.old_install_date IS NULL
8083 AND l_ins_hist_csr.new_install_date IS NULL ) THEN
8084 IF ( l_install_date = l_curr_instance_rec.install_date )
8085 OR ( l_install_date = fnd_api.g_miss_date ) THEN
8086 l_ins_hist_csr.old_install_date := NULL;
8087 l_ins_hist_csr.new_install_date := NULL;
8088 ELSE
8089 l_ins_hist_csr.old_install_date := fnd_api.g_miss_date;
8090 l_ins_hist_csr.new_install_date := l_install_date;
8091 END IF;
8092 ELSE
8093 l_ins_hist_csr.old_install_date := fnd_api.g_miss_date;
8094 l_ins_hist_csr.new_install_date := l_install_date;
8095 END IF;
8096 --
8097 IF ( l_ins_hist_csr.old_active_end_date IS NULL
8098 AND l_ins_hist_csr.new_active_end_date IS NULL ) THEN
8099 IF ( p_instance_rec.active_end_date = l_curr_instance_rec.active_end_date )
8100 OR ( p_instance_rec.active_end_date = fnd_api.g_miss_date ) THEN
8101 l_ins_hist_csr.old_active_end_date := NULL;
8102 l_ins_hist_csr.new_active_end_date := NULL;
8103 ELSE
8104 l_ins_hist_csr.old_active_end_date := fnd_api.g_miss_date;
8105 l_ins_hist_csr.new_active_end_date := p_instance_rec.active_end_date;
8106 END IF;
8107 ELSE
8108 l_ins_hist_csr.old_active_end_date := fnd_api.g_miss_date;
8109 l_ins_hist_csr.new_active_end_date := p_instance_rec.active_end_date;
8110 END IF;
8111 --
8112 IF ( l_ins_hist_csr.old_location_type_code IS NULL
8113 AND l_ins_hist_csr.new_location_type_code IS NULL ) THEN
8114 IF ( p_instance_rec.location_type_code = l_curr_instance_rec.location_type_code )
8115 OR ( p_instance_rec.location_type_code = fnd_api.g_miss_char ) THEN
8116 l_ins_hist_csr.old_location_type_code := NULL;
8117 l_ins_hist_csr.new_location_type_code := NULL;
8118 ELSE
8119 l_ins_hist_csr.old_location_type_code := fnd_api.g_miss_char;
8120 l_ins_hist_csr.new_location_type_code := p_instance_rec.location_type_code;
8121 END IF;
8122 ELSE
8123 l_ins_hist_csr.old_location_type_code := fnd_api.g_miss_char;
8124 l_ins_hist_csr.new_location_type_code := p_instance_rec.location_type_code;
8125 END IF;
8126 --
8127 IF ( l_ins_hist_csr.old_location_id IS NULL
8128 AND l_ins_hist_csr.new_location_id IS NULL ) THEN
8129 IF ( p_instance_rec.location_id = l_curr_instance_rec.location_id )
8130 OR ( p_instance_rec.location_id = fnd_api.g_miss_num ) THEN
8131 l_ins_hist_csr.old_location_id := NULL;
8132 l_ins_hist_csr.new_location_id := NULL;
8133 ELSE
8134 l_ins_hist_csr.old_location_id := fnd_api.g_miss_num;
8135 l_ins_hist_csr.new_location_id := p_instance_rec.location_id;
8136 END IF;
8137 ELSE
8138 l_ins_hist_csr.old_location_id := fnd_api.g_miss_num;
8139 l_ins_hist_csr.new_location_id := p_instance_rec.location_id;
8140 END IF;
8141 --
8142 IF ( l_ins_hist_csr.old_inv_organization_id IS NULL
8143 AND l_ins_hist_csr.new_inv_organization_id IS NULL ) THEN
8144 IF ( p_instance_rec.inv_organization_id = l_curr_instance_rec.inv_organization_id )
8145 OR ( p_instance_rec.inv_organization_id = fnd_api.g_miss_num ) THEN
8146 l_ins_hist_csr.old_inv_organization_id := NULL;
8147 l_ins_hist_csr.new_inv_organization_id := NULL;
8148 ELSE
8149 l_ins_hist_csr.old_inv_organization_id := fnd_api.g_miss_num;
8150 l_ins_hist_csr.new_inv_organization_id := p_instance_rec.inv_organization_id;
8151 END IF;
8152 ELSE
8153 l_ins_hist_csr.old_inv_organization_id := fnd_api.g_miss_num;
8154 l_ins_hist_csr.new_inv_organization_id := p_instance_rec.inv_organization_id;
8155 END IF;
8156 --
8157 IF ( l_ins_hist_csr.old_inv_subinventory_name IS NULL
8158 AND l_ins_hist_csr.new_inv_subinventory_name IS NULL ) THEN
8159 IF ( p_instance_rec.inv_subinventory_name = l_curr_instance_rec.inv_subinventory_name )
8160 OR ( p_instance_rec.inv_subinventory_name = fnd_api.g_miss_char ) THEN
8161 l_ins_hist_csr.old_inv_subinventory_name := NULL;
8162 l_ins_hist_csr.new_inv_subinventory_name := NULL;
8163 ELSE
8164 l_ins_hist_csr.old_inv_subinventory_name := fnd_api.g_miss_char;
8165 l_ins_hist_csr.new_inv_subinventory_name := p_instance_rec.inv_subinventory_name;
8166 END IF;
8167 ELSE
8168 l_ins_hist_csr.old_inv_subinventory_name := fnd_api.g_miss_char;
8169 l_ins_hist_csr.new_inv_subinventory_name := p_instance_rec.inv_subinventory_name;
8170 END IF;
8171 --
8172 IF ( l_ins_hist_csr.old_inv_locator_id IS NULL
8173 AND l_ins_hist_csr.new_inv_locator_id IS NULL ) THEN
8174 IF ( p_instance_rec.inv_locator_id = l_curr_instance_rec.inv_locator_id )
8175 OR ( p_instance_rec.inv_locator_id = fnd_api.g_miss_num ) THEN
8176 l_ins_hist_csr.old_inv_locator_id := NULL;
8177 l_ins_hist_csr.new_inv_locator_id := NULL;
8178 ELSE
8179 l_ins_hist_csr.old_inv_locator_id := fnd_api.g_miss_num;
8180 l_ins_hist_csr.new_inv_locator_id := p_instance_rec.inv_locator_id;
8181 END IF;
8182 ELSE
8183 l_ins_hist_csr.old_inv_locator_id := fnd_api.g_miss_num;
8184 l_ins_hist_csr.new_inv_locator_id := p_instance_rec.inv_locator_id;
8185 END IF;
8186 --
8187 IF ( l_ins_hist_csr.old_pa_project_id IS NULL
8188 AND l_ins_hist_csr.new_pa_project_id IS NULL ) THEN
8189 IF ( p_instance_rec.pa_project_id = l_curr_instance_rec.pa_project_id )
8190 OR ( p_instance_rec.pa_project_id = fnd_api.g_miss_num ) THEN
8191 l_ins_hist_csr.old_pa_project_id := NULL;
8192 l_ins_hist_csr.new_pa_project_id := NULL;
8193 ELSE
8194 l_ins_hist_csr.old_pa_project_id := fnd_api.g_miss_num;
8195 l_ins_hist_csr.new_pa_project_id := p_instance_rec.pa_project_id;
8196 END IF;
8197 ELSE
8198 l_ins_hist_csr.old_pa_project_id := fnd_api.g_miss_num;
8199 l_ins_hist_csr.new_pa_project_id := p_instance_rec.pa_project_id;
8200 END IF;
8201 --
8202 IF ( l_ins_hist_csr.old_pa_project_task_id IS NULL
8203 AND l_ins_hist_csr.new_pa_project_task_id IS NULL ) THEN
8204 IF ( p_instance_rec.pa_project_task_id = l_curr_instance_rec.pa_project_task_id )
8205 OR ( p_instance_rec.pa_project_task_id = fnd_api.g_miss_num ) THEN
8206 l_ins_hist_csr.old_pa_project_task_id := NULL;
8207 l_ins_hist_csr.new_pa_project_task_id := NULL;
8208 ELSE
8209 l_ins_hist_csr.old_pa_project_task_id := fnd_api.g_miss_num;
8210 l_ins_hist_csr.new_pa_project_task_id := p_instance_rec.pa_project_task_id;
8211 END IF;
8212 ELSE
8213 l_ins_hist_csr.old_pa_project_id := fnd_api.g_miss_num;
8214 l_ins_hist_csr.new_pa_project_task_id := p_instance_rec.pa_project_task_id;
8215 END IF;
8216 --
8217 IF ( l_ins_hist_csr.old_in_transit_order_line_id IS NULL
8218 AND l_ins_hist_csr.new_in_transit_order_line_id IS NULL ) THEN
8219 IF ( p_instance_rec.in_transit_order_line_id = l_curr_instance_rec.in_transit_order_line_id )
8220 OR ( p_instance_rec.in_transit_order_line_id = fnd_api.g_miss_num ) THEN
8221 l_ins_hist_csr.old_in_transit_order_line_id := NULL;
8222 l_ins_hist_csr.new_in_transit_order_line_id := NULL;
8223 ELSE
8224 l_ins_hist_csr.old_in_transit_order_line_id := fnd_api.g_miss_num;
8225 l_ins_hist_csr.new_in_transit_order_line_id := p_instance_rec.in_transit_order_line_id;
8226 END IF;
8227 ELSE
8228 l_ins_hist_csr.old_in_transit_order_line_id := fnd_api.g_miss_num;
8229 l_ins_hist_csr.new_in_transit_order_line_id := p_instance_rec.in_transit_order_line_id;
8230 END IF;
8231 --
8232 IF ( l_ins_hist_csr.old_oe_agreement_id IS NULL
8233 AND l_ins_hist_csr.new_oe_agreement_id IS NULL ) THEN
8234 IF ( p_instance_rec.last_oe_agreement_id = l_curr_instance_rec.last_oe_agreement_id )
8235 OR ( p_instance_rec.last_oe_agreement_id = fnd_api.g_miss_num ) THEN
8236 l_ins_hist_csr.old_oe_agreement_id := NULL;
8237 l_ins_hist_csr.new_oe_agreement_id := NULL;
8238 ELSE
8239 l_ins_hist_csr.old_oe_agreement_id := fnd_api.g_miss_num;
8240 l_ins_hist_csr.new_oe_agreement_id := p_instance_rec.last_oe_agreement_id;
8241 END IF;
8242 ELSE
8243 l_ins_hist_csr.old_oe_agreement_id := fnd_api.g_miss_num;
8244 l_ins_hist_csr.new_oe_agreement_id := p_instance_rec.last_oe_agreement_id;
8245 END IF;
8246 --
8247 IF ( l_ins_hist_csr.old_LAST_OE_ORDER_LINE_ID IS NULL
8248 AND l_ins_hist_csr.new_LAST_OE_ORDER_LINE_ID IS NULL ) THEN
8249 IF ( p_instance_rec.LAST_OE_ORDER_LINE_ID = l_curr_instance_rec.LAST_OE_ORDER_LINE_ID )
8250 OR ( p_instance_rec.LAST_OE_ORDER_LINE_ID = fnd_api.g_miss_num ) THEN
8251 l_ins_hist_csr.old_LAST_OE_ORDER_LINE_ID := NULL;
8252 l_ins_hist_csr.new_LAST_OE_ORDER_LINE_ID := NULL;
8253 ELSE
8254 l_ins_hist_csr.old_LAST_OE_ORDER_LINE_ID := fnd_api.g_miss_num;
8255 l_ins_hist_csr.new_LAST_OE_ORDER_LINE_ID := p_instance_rec.LAST_OE_ORDER_LINE_ID;
8256 END IF;
8257 ELSE
8258 l_ins_hist_csr.old_LAST_OE_ORDER_LINE_ID := fnd_api.g_miss_num;
8259 l_ins_hist_csr.new_LAST_OE_ORDER_LINE_ID := p_instance_rec.LAST_OE_ORDER_LINE_ID;
8260 END IF;
8261 --
8262 IF ( l_ins_hist_csr.OLD_LAST_OE_RMA_LINE_ID IS NULL
8263 AND l_ins_hist_csr.NEW_LAST_OE_RMA_LINE_ID IS NULL ) THEN
8264 IF ( p_instance_rec.LAST_OE_RMA_LINE_ID = l_curr_instance_rec.LAST_OE_RMA_LINE_ID )
8265 OR ( p_instance_rec.LAST_OE_RMA_LINE_ID = fnd_api.g_miss_num ) THEN
8266 l_ins_hist_csr.OLD_LAST_OE_RMA_LINE_ID := NULL;
8267 l_ins_hist_csr.NEW_LAST_OE_RMA_LINE_ID := NULL;
8268 ELSE
8269 l_ins_hist_csr.OLD_LAST_OE_RMA_LINE_ID := fnd_api.g_miss_num;
8270 l_ins_hist_csr.NEW_LAST_OE_RMA_LINE_ID := p_instance_rec.LAST_OE_RMA_LINE_ID;
8271 END IF;
8272 ELSE
8273 l_ins_hist_csr.OLD_LAST_OE_RMA_LINE_ID := fnd_api.g_miss_num;
8274 l_ins_hist_csr.NEW_LAST_OE_RMA_LINE_ID := p_instance_rec.LAST_OE_RMA_LINE_ID;
8275 END IF;
8276 --
8277 IF ( l_ins_hist_csr.old_LAST_WIP_JOB_ID IS NULL
8278 AND l_ins_hist_csr.new_LAST_WIP_JOB_ID IS NULL ) THEN
8279 IF ( p_instance_rec.LAST_WIP_JOB_ID = l_curr_instance_rec.LAST_WIP_JOB_ID )
8280 OR ( p_instance_rec.LAST_WIP_JOB_ID = fnd_api.g_miss_num ) THEN
8281 l_ins_hist_csr.old_LAST_WIP_JOB_ID := NULL;
8282 l_ins_hist_csr.new_LAST_WIP_JOB_ID := NULL;
8283 ELSE
8284 l_ins_hist_csr.old_LAST_WIP_JOB_ID := fnd_api.g_miss_num;
8285 l_ins_hist_csr.new_LAST_WIP_JOB_ID := p_instance_rec.LAST_WIP_JOB_ID;
8286 END IF;
8287 ELSE
8288 l_ins_hist_csr.old_LAST_WIP_JOB_ID := fnd_api.g_miss_num;
8289 l_ins_hist_csr.new_LAST_WIP_JOB_ID := p_instance_rec.LAST_WIP_JOB_ID;
8290 END IF;
8291 --
8292 IF ( l_ins_hist_csr.old_LAST_PO_PO_LINE_ID IS NULL
8293 AND l_ins_hist_csr.new_LAST_PO_PO_LINE_ID IS NULL ) THEN
8294 IF ( p_instance_rec.LAST_PO_PO_LINE_ID = l_curr_instance_rec.LAST_PO_PO_LINE_ID )
8295 OR ( p_instance_rec.LAST_PO_PO_LINE_ID = fnd_api.g_miss_num ) THEN
8296 l_ins_hist_csr.old_LAST_PO_PO_LINE_ID := NULL;
8297 l_ins_hist_csr.new_LAST_PO_PO_LINE_ID := NULL;
8298 ELSE
8299 l_ins_hist_csr.old_LAST_PO_PO_LINE_ID := fnd_api.g_miss_num;
8300 l_ins_hist_csr.new_LAST_PO_PO_LINE_ID := p_instance_rec.LAST_PO_PO_LINE_ID;
8301 END IF;
8302 ELSE
8303 l_ins_hist_csr.old_LAST_PO_PO_LINE_ID := fnd_api.g_miss_num;
8304 l_ins_hist_csr.new_LAST_PO_PO_LINE_ID := p_instance_rec.LAST_PO_PO_LINE_ID;
8305 END IF;
8306 --
8307 IF ( l_ins_hist_csr.old_LAST_PA_PROJECT_ID IS NULL
8308 AND l_ins_hist_csr.new_LAST_PA_PROJECT_ID IS NULL ) THEN
8309 IF ( p_instance_rec.LAST_PA_PROJECT_ID = l_curr_instance_rec.LAST_PA_PROJECT_ID )
8310 OR ( p_instance_rec.LAST_PA_PROJECT_ID = fnd_api.g_miss_num ) THEN
8311 l_ins_hist_csr.old_LAST_PA_PROJECT_ID := NULL;
8312 l_ins_hist_csr.new_LAST_PA_PROJECT_ID := NULL;
8313 ELSE
8314 l_ins_hist_csr.old_LAST_PA_PROJECT_ID := fnd_api.g_miss_num;
8315 l_ins_hist_csr.new_LAST_PA_PROJECT_ID := p_instance_rec.LAST_PA_PROJECT_ID;
8316 END IF;
8317 ELSE
8318 l_ins_hist_csr.old_LAST_PA_PROJECT_ID := fnd_api.g_miss_num;
8319 l_ins_hist_csr.new_LAST_PA_PROJECT_ID := p_instance_rec.LAST_PA_PROJECT_ID;
8320 END IF;
8321 --
8322 IF ( l_ins_hist_csr.OLD_LAST_PA_TASK_ID IS NULL
8323 AND l_ins_hist_csr.NEW_LAST_PA_TASK_ID IS NULL ) THEN
8324 IF ( p_instance_rec.LAST_PA_TASK_ID = l_curr_instance_rec.LAST_PA_TASK_ID )
8325 OR ( p_instance_rec.LAST_PA_TASK_ID = fnd_api.g_miss_num ) THEN
8326 l_ins_hist_csr.OLD_LAST_PA_TASK_ID := NULL;
8327 l_ins_hist_csr.NEW_LAST_PA_TASK_ID := NULL;
8328 ELSE
8329 l_ins_hist_csr.OLD_LAST_PA_TASK_ID := fnd_api.g_miss_num;
8330 l_ins_hist_csr.NEW_LAST_PA_TASK_ID := p_instance_rec.LAST_PA_TASK_ID;
8331 END IF;
8332 ELSE
8333 l_ins_hist_csr.OLD_LAST_PA_TASK_ID := fnd_api.g_miss_num;
8334 l_ins_hist_csr.NEW_LAST_PA_TASK_ID := p_instance_rec.LAST_PA_TASK_ID;
8335 END IF;
8336 --
8337 IF ( l_ins_hist_csr.old_LAST_TXN_LINE_DETAIL_ID IS NULL
8338 AND l_ins_hist_csr.new_LAST_TXN_LINE_DETAIL_ID IS NULL ) THEN
8339 IF ( p_instance_rec.LAST_TXN_LINE_DETAIL_ID = l_curr_instance_rec.LAST_TXN_LINE_DETAIL_ID )
8340 OR ( p_instance_rec.LAST_TXN_LINE_DETAIL_ID = fnd_api.g_miss_num ) THEN
8341 l_ins_hist_csr.old_LAST_TXN_LINE_DETAIL_ID := NULL;
8342 l_ins_hist_csr.new_LAST_TXN_LINE_DETAIL_ID := NULL;
8343 ELSE
8344 l_ins_hist_csr.old_LAST_TXN_LINE_DETAIL_ID := fnd_api.g_miss_num;
8345 l_ins_hist_csr.new_LAST_TXN_LINE_DETAIL_ID := p_instance_rec.LAST_TXN_LINE_DETAIL_ID;
8346 END IF;
8347 ELSE
8348 l_ins_hist_csr.old_LAST_TXN_LINE_DETAIL_ID := fnd_api.g_miss_num;
8349 l_ins_hist_csr.new_LAST_TXN_LINE_DETAIL_ID := p_instance_rec.LAST_TXN_LINE_DETAIL_ID;
8350 END IF;
8351 --
8352 IF ( l_ins_hist_csr.old_LAST_OE_PO_NUMBER IS NULL
8353 AND l_ins_hist_csr.new_LAST_OE_PO_NUMBER IS NULL ) THEN
8354 IF ( p_instance_rec.LAST_OE_PO_NUMBER = l_curr_instance_rec.LAST_OE_PO_NUMBER )
8355 OR ( p_instance_rec.LAST_OE_PO_NUMBER = fnd_api.g_miss_char ) THEN
8356 l_ins_hist_csr.old_LAST_OE_PO_NUMBER := NULL;
8357 l_ins_hist_csr.new_LAST_OE_PO_NUMBER := NULL;
8358 ELSE
8359 l_ins_hist_csr.old_LAST_OE_PO_NUMBER := fnd_api.g_miss_char;
8360 l_ins_hist_csr.new_LAST_OE_PO_NUMBER := p_instance_rec.LAST_OE_PO_NUMBER;
8361 END IF;
8362 ELSE
8363 l_ins_hist_csr.old_LAST_OE_PO_NUMBER := fnd_api.g_miss_char;
8364 l_ins_hist_csr.new_LAST_OE_PO_NUMBER := p_instance_rec.LAST_OE_PO_NUMBER;
8365 END IF;
8366 --
8367 IF ( l_ins_hist_csr.old_wip_job_id IS NULL
8368 AND l_ins_hist_csr.new_wip_job_id IS NULL ) THEN
8369 IF ( p_instance_rec.wip_job_id = l_curr_instance_rec.wip_job_id )
8370 OR ( p_instance_rec.wip_job_id = fnd_api.g_miss_num ) THEN
8371 l_ins_hist_csr.old_wip_job_id := NULL;
8372 l_ins_hist_csr.new_wip_job_id := NULL;
8373 ELSE
8374 l_ins_hist_csr.old_wip_job_id := fnd_api.g_miss_num;
8375 l_ins_hist_csr.new_wip_job_id := p_instance_rec.wip_job_id;
8376 END IF;
8377 ELSE
8378 l_ins_hist_csr.old_wip_job_id := fnd_api.g_miss_num;
8379 l_ins_hist_csr.new_wip_job_id := p_instance_rec.wip_job_id;
8380 END IF;
8381 --
8382 IF ( l_ins_hist_csr.old_po_order_line_id IS NULL
8383 AND l_ins_hist_csr.new_po_order_line_id IS NULL ) THEN
8384 IF ( p_instance_rec.po_order_line_id = l_curr_instance_rec.po_order_line_id )
8385 OR ( p_instance_rec.po_order_line_id = fnd_api.g_miss_num ) THEN
8386 l_ins_hist_csr.old_po_order_line_id := NULL;
8387 l_ins_hist_csr.new_po_order_line_id := NULL;
8388 ELSE
8389 l_ins_hist_csr.old_po_order_line_id := fnd_api.g_miss_num;
8390 l_ins_hist_csr.new_po_order_line_id := p_instance_rec.po_order_line_id;
8391 END IF;
8392 ELSE
8393 l_ins_hist_csr.old_po_order_line_id := fnd_api.g_miss_num;
8394 l_ins_hist_csr.new_po_order_line_id := p_instance_rec.po_order_line_id;
8395 END IF;
8396 --
8397 IF ( l_ins_hist_csr.old_inst_loc_type_code IS NULL
8398 AND l_ins_hist_csr.new_inst_loc_type_code IS NULL ) THEN
8399 IF ( p_instance_rec.install_location_type_code = l_curr_instance_rec.install_location_type_code )
8400 OR ( p_instance_rec.install_location_type_code = fnd_api.g_miss_char ) THEN
8401 l_ins_hist_csr.old_inst_loc_type_code := NULL;
8402 l_ins_hist_csr.new_inst_loc_type_code := NULL;
8403 ELSE
8404 l_ins_hist_csr.old_inst_loc_type_code := fnd_api.g_miss_char;
8405 l_ins_hist_csr.new_inst_loc_type_code := p_instance_rec.install_location_type_code;
8406 END IF;
8407 ELSE
8408 l_ins_hist_csr.old_inst_loc_type_code := fnd_api.g_miss_char;
8409 l_ins_hist_csr.new_inst_loc_type_code := p_instance_rec.install_location_type_code;
8410 END IF;
8411 --
8412 IF ( l_ins_hist_csr.old_inst_loc_id IS NULL
8413 AND l_ins_hist_csr.new_inst_loc_id IS NULL ) THEN
8414 IF ( p_instance_rec.install_location_id = l_curr_instance_rec.install_location_id )
8415 OR ( p_instance_rec.install_location_id = fnd_api.g_miss_num ) THEN
8416 l_ins_hist_csr.old_inst_loc_id := NULL;
8417 l_ins_hist_csr.new_inst_loc_id := NULL;
8418 ELSE
8419 l_ins_hist_csr.old_inst_loc_id := fnd_api.g_miss_num;
8420 l_ins_hist_csr.new_inst_loc_id := p_instance_rec.install_location_id;
8421 END IF;
8422 ELSE
8423 l_ins_hist_csr.old_inst_loc_id := fnd_api.g_miss_num;
8424 l_ins_hist_csr.new_inst_loc_id := p_instance_rec.install_location_id;
8425 END IF;
8426 --
8427
8428 IF ( l_ins_hist_csr.old_operational_status_code IS NULL
8429 AND l_ins_hist_csr.new_operational_status_code IS NULL ) THEN
8430 IF ( p_instance_rec.operational_status_code = l_curr_instance_rec.operational_status_code )
8431 OR ( p_instance_rec.operational_status_code = fnd_api.g_miss_char ) THEN
8432 l_ins_hist_csr.old_operational_status_code := NULL;
8433 l_ins_hist_csr.new_operational_status_code := NULL;
8434 ELSE
8435 l_ins_hist_csr.old_operational_status_code := fnd_api.g_miss_char;
8436 l_ins_hist_csr.new_operational_status_code := p_instance_rec.operational_status_code;
8437 END IF;
8438 ELSE
8439 l_ins_hist_csr.old_operational_status_code := fnd_api.g_miss_char;
8440 l_ins_hist_csr.new_operational_status_code := p_instance_rec.operational_status_code;
8441 END IF;
8442
8443
8444 CSI_ITEM_INSTANCES_H_PKG.Update_Row
8445 ( p_INSTANCE_HISTORY_ID => l_ins_hist_id
8446 ,p_INSTANCE_ID => fnd_api.g_miss_num
8447 ,p_TRANSACTION_ID => fnd_api.g_miss_num
8448 ,p_OLD_INSTANCE_NUMBER => fnd_api.g_miss_char
8449 ,p_NEW_INSTANCE_NUMBER => fnd_api.g_miss_char
8450 ,p_OLD_EXTERNAL_REFERENCE => fnd_api.g_miss_char
8451 ,p_NEW_EXTERNAL_REFERENCE => fnd_api.g_miss_char
8452 ,p_OLD_INVENTORY_ITEM_ID => fnd_api.g_miss_num
8453 ,p_NEW_INVENTORY_ITEM_ID => fnd_api.g_miss_num
8454 ,p_OLD_INVENTORY_REVISION => fnd_api.g_miss_char
8455 ,p_NEW_INVENTORY_REVISION => fnd_api.g_miss_char
8456 ,p_OLD_INV_MASTER_ORGZN_ID => fnd_api.g_miss_num
8457 ,p_NEW_INV_MASTER_ORGZN_ID => fnd_api.g_miss_num
8458 ,p_OLD_SERIAL_NUMBER => fnd_api.g_miss_char
8459 ,p_NEW_SERIAL_NUMBER => fnd_api.g_miss_char
8460 ,p_OLD_MFG_SERIAL_NUMBER_FLAG => fnd_api.g_miss_char
8461 ,p_NEW_MFG_SERIAL_NUMBER_FLAG => fnd_api.g_miss_char
8462 ,p_OLD_LOT_NUMBER => fnd_api.g_miss_char
8463 ,p_NEW_LOT_NUMBER => fnd_api.g_miss_char
8464 ,p_OLD_QUANTITY => fnd_api.g_miss_num
8465 ,p_NEW_QUANTITY => fnd_api.g_miss_num
8466 ,p_OLD_UNIT_OF_MEASURE => fnd_api.g_miss_char
8467 ,p_NEW_UNIT_OF_MEASURE => fnd_api.g_miss_char
8468 ,p_OLD_ACCOUNTING_CLASS_CODE => l_ins_hist_csr.OLD_ACCOUNTING_CLASS_CODE
8469 ,p_NEW_ACCOUNTING_CLASS_CODE => l_ins_hist_csr.NEW_ACCOUNTING_CLASS_CODE
8470 ,p_OLD_INSTANCE_CONDITION_ID => fnd_api.g_miss_num
8471 ,p_NEW_INSTANCE_CONDITION_ID => fnd_api.g_miss_num
8472 ,p_OLD_INSTANCE_STATUS_ID => l_ins_hist_csr.OLD_INSTANCE_STATUS_ID
8473 ,p_NEW_INSTANCE_STATUS_ID => l_ins_hist_csr.NEW_INSTANCE_STATUS_ID
8474 ,p_OLD_CUSTOMER_VIEW_FLAG => fnd_api.g_miss_char
8475 ,p_NEW_CUSTOMER_VIEW_FLAG => fnd_api.g_miss_char
8476 ,p_OLD_MERCHANT_VIEW_FLAG => fnd_api.g_miss_char
8477 ,p_NEW_MERCHANT_VIEW_FLAG => fnd_api.g_miss_char
8478 ,p_OLD_SELLABLE_FLAG => fnd_api.g_miss_char
8479 ,p_NEW_SELLABLE_FLAG => fnd_api.g_miss_char
8480 ,p_OLD_SYSTEM_ID => l_ins_hist_csr.old_system_id
8481 ,p_NEW_SYSTEM_ID => l_ins_hist_csr.new_system_id
8482 ,p_OLD_INSTANCE_TYPE_CODE => fnd_api.g_miss_char
8483 ,p_NEW_INSTANCE_TYPE_CODE => fnd_api.g_miss_char
8484 ,p_OLD_ACTIVE_START_DATE => fnd_api.g_miss_date
8485 ,p_NEW_ACTIVE_START_DATE => fnd_api.g_miss_date
8486 ,p_OLD_ACTIVE_END_DATE => l_ins_hist_csr.OLD_ACTIVE_END_DATE
8487 ,p_NEW_ACTIVE_END_DATE => l_ins_hist_csr.NEW_ACTIVE_END_DATE
8488 ,p_OLD_LOCATION_TYPE_CODE => l_ins_hist_csr.OLD_LOCATION_TYPE_CODE
8489 ,p_NEW_LOCATION_TYPE_CODE => l_ins_hist_csr.NEW_LOCATION_TYPE_CODE
8490 ,p_OLD_LOCATION_ID => l_ins_hist_csr.OLD_LOCATION_ID
8491 ,p_NEW_LOCATION_ID => l_ins_hist_csr.NEW_LOCATION_ID
8492 ,p_OLD_INV_ORGANIZATION_ID => l_ins_hist_csr.OLD_INV_ORGANIZATION_ID
8493 ,p_NEW_INV_ORGANIZATION_ID => l_ins_hist_csr.NEW_INV_ORGANIZATION_ID
8494 ,p_OLD_INV_SUBINVENTORY_NAME => l_ins_hist_csr.OLD_INV_SUBINVENTORY_NAME
8495 ,p_NEW_INV_SUBINVENTORY_NAME => l_ins_hist_csr.NEW_INV_SUBINVENTORY_NAME
8496 ,p_OLD_INV_LOCATOR_ID => l_ins_hist_csr.OLD_INV_LOCATOR_ID
8497 ,p_NEW_INV_LOCATOR_ID => l_ins_hist_csr.NEW_INV_LOCATOR_ID
8498 ,p_OLD_PA_PROJECT_ID => l_ins_hist_csr.OLD_PA_PROJECT_ID
8499 ,p_NEW_PA_PROJECT_ID => l_ins_hist_csr.NEW_PA_PROJECT_ID
8500 ,p_OLD_PA_PROJECT_TASK_ID => l_ins_hist_csr.OLD_PA_PROJECT_TASK_ID
8501 ,p_NEW_PA_PROJECT_TASK_ID => l_ins_hist_csr.NEW_PA_PROJECT_TASK_ID
8502 ,p_OLD_IN_TRANSIT_ORDER_LINE_ID => l_ins_hist_csr.OLD_IN_TRANSIT_ORDER_LINE_ID
8503 ,p_NEW_IN_TRANSIT_ORDER_LINE_ID => l_ins_hist_csr.NEW_IN_TRANSIT_ORDER_LINE_ID
8504 ,p_OLD_WIP_JOB_ID => l_ins_hist_csr.OLD_WIP_JOB_ID
8505 ,p_NEW_WIP_JOB_ID => l_ins_hist_csr.NEW_WIP_JOB_ID
8506 ,p_OLD_PO_ORDER_LINE_ID => l_ins_hist_csr.OLD_PO_ORDER_LINE_ID
8507 ,p_NEW_PO_ORDER_LINE_ID => l_ins_hist_csr.NEW_PO_ORDER_LINE_ID
8508 ,p_OLD_COMPLETENESS_FLAG => fnd_api.g_miss_char
8509 ,p_NEW_COMPLETENESS_FLAG => fnd_api.g_miss_char
8510 ,p_FULL_DUMP_FLAG => fnd_api.g_miss_char
8511 ,p_NEW_CONTEXT => fnd_api.g_miss_char
8512 ,P_OLD_CONTEXT => fnd_api.g_miss_char
8513 ,p_NEW_ATTRIBUTE1 => fnd_api.g_miss_char
8514 ,p_OLD_ATTRIBUTE1 => fnd_api.g_miss_char
8515 ,p_NEW_ATTRIBUTE2 => fnd_api.g_miss_char
8516 ,p_OLD_ATTRIBUTE2 => fnd_api.g_miss_char
8517 ,p_NEW_ATTRIBUTE3 => fnd_api.g_miss_char
8518 ,p_OLD_ATTRIBUTE3 => fnd_api.g_miss_char
8519 ,p_NEW_ATTRIBUTE4 => fnd_api.g_miss_char
8520 ,p_OLD_ATTRIBUTE4 => fnd_api.g_miss_char
8521 ,p_NEW_ATTRIBUTE5 => fnd_api.g_miss_char
8522 ,p_OLD_ATTRIBUTE5 => fnd_api.g_miss_char
8523 ,p_NEW_ATTRIBUTE6 => fnd_api.g_miss_char
8524 ,p_OLD_ATTRIBUTE6 => fnd_api.g_miss_char
8525 ,p_NEW_ATTRIBUTE7 => fnd_api.g_miss_char
8526 ,p_OLD_ATTRIBUTE7 => fnd_api.g_miss_char
8527 ,p_NEW_ATTRIBUTE8 => fnd_api.g_miss_char
8528 ,p_OLD_ATTRIBUTE8 => fnd_api.g_miss_char
8529 ,p_NEW_ATTRIBUTE9 => fnd_api.g_miss_char
8530 ,p_OLD_ATTRIBUTE9 => fnd_api.g_miss_char
8531 ,p_NEW_ATTRIBUTE10 => fnd_api.g_miss_char
8532 ,p_OLD_ATTRIBUTE10 => fnd_api.g_miss_char
8533 ,p_NEW_ATTRIBUTE11 => fnd_api.g_miss_char
8534 ,p_OLD_ATTRIBUTE11 => fnd_api.g_miss_char
8535 ,p_NEW_ATTRIBUTE12 => fnd_api.g_miss_char
8536 ,p_OLD_ATTRIBUTE12 => fnd_api.g_miss_char
8537 ,p_NEW_ATTRIBUTE13 => fnd_api.g_miss_char
8538 ,p_OLD_ATTRIBUTE13 => fnd_api.g_miss_char
8539 ,p_NEW_ATTRIBUTE14 => fnd_api.g_miss_char
8540 ,p_OLD_ATTRIBUTE14 => fnd_api.g_miss_char
8541 ,p_NEW_ATTRIBUTE15 => fnd_api.g_miss_char
8542 ,p_OLD_ATTRIBUTE15 => fnd_api.g_miss_char
8543 ,p_CREATED_BY => fnd_api.g_miss_num
8544 ,p_CREATION_DATE => fnd_api.g_miss_date
8545 ,p_LAST_UPDATED_BY => FND_GLOBAL.USER_ID
8546 ,p_LAST_UPDATE_DATE => SYSDATE
8547 ,p_LAST_UPDATE_LOGIN => FND_GLOBAL.CONC_LOGIN_ID
8548 ,p_OBJECT_VERSION_NUMBER => fnd_api.g_miss_num
8549 ,p_OLD_INST_LOC_TYPE_CODE => l_ins_hist_csr.OLD_INST_LOC_TYPE_CODE
8550 ,p_NEW_INST_LOC_TYPE_CODE => l_ins_hist_csr.NEW_INST_LOC_TYPE_CODE
8551 ,p_OLD_INST_LOC_ID => l_ins_hist_csr.OLD_INST_LOC_ID
8552 ,p_NEW_INST_LOC_ID => l_ins_hist_csr.NEW_INST_LOC_ID
8553 ,p_OLD_INST_USAGE_CODE => fnd_api.g_miss_char
8554 ,p_NEW_INST_USAGE_CODE => fnd_api.g_miss_char
8555 ,p_OLD_LAST_VLD_ORGANIZATION_ID => fnd_api.g_miss_num
8556 ,p_NEW_LAST_VLD_ORGANIZATION_ID => fnd_api.g_miss_num
8557 ,p_OLD_CONFIG_INST_REV_NUM => fnd_api.g_miss_num
8558 ,p_NEW_CONFIG_INST_REV_NUM => fnd_api.g_miss_num
8559 ,p_OLD_CONFIG_VALID_STATUS => fnd_api.g_miss_char
8560 ,p_NEW_CONFIG_VALID_STATUS => fnd_api.g_miss_char
8561 ,p_OLD_INSTANCE_DESCRIPTION => fnd_api.g_miss_char
8562 ,p_NEW_INSTANCE_DESCRIPTION => fnd_api.g_miss_char
8563 ,p_OLD_INSTALL_DATE => l_ins_hist_csr.old_install_date
8564 ,p_NEW_INSTALL_DATE => l_ins_hist_csr.new_install_date
8565 ,p_OLD_RETURN_BY_DATE => fnd_api.g_miss_date
8566 ,p_NEW_RETURN_BY_DATE => fnd_api.g_miss_date
8567 ,p_OLD_ACTUAL_RETURN_DATE => fnd_api.g_miss_date
8568 ,p_NEW_ACTUAL_RETURN_DATE => fnd_api.g_miss_date
8569 ,p_OLD_LAST_OE_AGREEMENT_ID => l_ins_hist_csr.OLD_OE_AGREEMENT_ID
8570 ,p_NEW_LAST_OE_AGREEMENT_ID => l_ins_hist_csr.NEW_OE_AGREEMENT_ID
8571 ,p_OLD_LAST_OE_ORDER_LINE_ID => l_ins_hist_csr.OLD_LAST_OE_ORDER_LINE_ID
8572 ,p_NEW_LAST_OE_ORDER_LINE_ID => l_ins_hist_csr.NEW_LAST_OE_ORDER_LINE_ID
8573 ,p_OLD_LAST_OE_RMA_LINE_ID => l_ins_hist_csr.OLD_LAST_OE_RMA_LINE_ID
8574 ,p_NEW_LAST_OE_RMA_LINE_ID => l_ins_hist_csr.NEW_LAST_OE_RMA_LINE_ID
8575 ,p_OLD_LAST_WIP_JOB_ID => l_ins_hist_csr.OLD_LAST_WIP_JOB_ID
8576 ,p_NEW_LAST_WIP_JOB_ID => l_ins_hist_csr.NEW_LAST_WIP_JOB_ID
8577 ,p_OLD_LAST_PO_PO_LINE_ID => l_ins_hist_csr.OLD_LAST_PO_PO_LINE_ID
8578 ,p_NEW_LAST_PO_PO_LINE_ID => l_ins_hist_csr.NEW_LAST_PO_PO_LINE_ID
8579 ,p_OLD_LAST_PA_PROJECT_ID => l_ins_hist_csr.OLD_LAST_PA_PROJECT_ID
8580 ,p_NEW_LAST_PA_PROJECT_ID => l_ins_hist_csr.NEW_LAST_PA_PROJECT_ID
8581 ,p_OLD_LAST_PA_TASK_ID => l_ins_hist_csr.OLD_LAST_PA_TASK_ID
8582 ,p_NEW_LAST_PA_TASK_ID => l_ins_hist_csr.NEW_LAST_PA_TASK_ID
8583 ,p_OLD_LAST_TXN_LINE_DETAIL_ID => l_ins_hist_csr.OLD_LAST_TXN_LINE_DETAIL_ID
8584 ,p_NEW_LAST_TXN_LINE_DETAIL_ID => l_ins_hist_csr.NEW_LAST_TXN_LINE_DETAIL_ID
8585 ,p_OLD_LAST_OE_PO_NUMBER => l_ins_hist_csr.OLD_LAST_OE_PO_NUMBER
8586 ,p_NEW_LAST_OE_PO_NUMBER => l_ins_hist_csr.NEW_LAST_OE_PO_NUMBER
8587 --start of parameters addition for eam integration--
8588 ,p_OLD_NETWORK_ASSET_FLAG => fnd_api.g_miss_char
8589 ,p_NEW_NETWORK_ASSET_FLAG => fnd_api.g_miss_char
8590 ,p_OLD_MAINTAINABLE_FLAG => fnd_api.g_miss_char
8591 ,p_NEW_MAINTAINABLE_FLAG => fnd_api.g_miss_char
8592 ,p_OLD_PN_LOCATION_ID => fnd_api.g_miss_num
8593 ,p_NEW_PN_LOCATION_ID => fnd_api.g_miss_num
8594 ,p_OLD_ASSET_CRITICALITY_CODE => fnd_api.g_miss_char
8595 ,p_NEW_ASSET_CRITICALITY_CODE => fnd_api.g_miss_char
8596 ,p_OLD_CATEGORY_ID => fnd_api.g_miss_num
8597 ,p_NEW_CATEGORY_ID => fnd_api.g_miss_num
8598 ,p_OLD_EQUIPMENT_GEN_OBJECT_ID => fnd_api.g_miss_num
8599 ,p_NEW_EQUIPMENT_GEN_OBJECT_ID => fnd_api.g_miss_num
8600 ,p_OLD_INSTANTIATION_FLAG => fnd_api.g_miss_char
8601 ,p_NEW_INSTANTIATION_FLAG => fnd_api.g_miss_char
8602 ,p_OLD_LINEAR_LOCATION_ID => fnd_api.g_miss_num
8603 ,p_NEW_LINEAR_LOCATION_ID => fnd_api.g_miss_num
8604 ,p_OLD_OPERATIONAL_LOG_FLAG => fnd_api.g_miss_char
8605 ,p_NEW_OPERATIONAL_LOG_FLAG => fnd_api.g_miss_char
8606 ,p_OLD_CHECKIN_STATUS => fnd_api.g_miss_num
8607 ,p_NEW_CHECKIN_STATUS => fnd_api.g_miss_num
8608 ,p_OLD_SUP_WARRANTY_EXP_DATE => fnd_api.g_miss_date
8609 ,p_NEW_SUP_WARRANTY_EXP_DATE => fnd_api.g_miss_date
8610 ,p_OLD_ATTRIBUTE16 => fnd_api.g_miss_char
8611 ,p_NEW_ATTRIBUTE16 => fnd_api.g_miss_char
8612 ,p_OLD_ATTRIBUTE17 => fnd_api.g_miss_char
8613 ,p_NEW_ATTRIBUTE17 => fnd_api.g_miss_char
8614 ,p_OLD_ATTRIBUTE18 => fnd_api.g_miss_char
8615 ,p_NEW_ATTRIBUTE18 => fnd_api.g_miss_char
8616 ,p_OLD_ATTRIBUTE19 => fnd_api.g_miss_char
8617 ,p_NEW_ATTRIBUTE19 => fnd_api.g_miss_char
8618 ,p_OLD_ATTRIBUTE20 => fnd_api.g_miss_char
8619 ,p_NEW_ATTRIBUTE20 => fnd_api.g_miss_char
8620 ,p_OLD_ATTRIBUTE21 => fnd_api.g_miss_char
8621 ,p_NEW_ATTRIBUTE21 => fnd_api.g_miss_char
8622 ,p_OLD_ATTRIBUTE22 => fnd_api.g_miss_char
8623 ,p_NEW_ATTRIBUTE22 => fnd_api.g_miss_char
8624 ,p_OLD_ATTRIBUTE23 => fnd_api.g_miss_char
8625 ,p_NEW_ATTRIBUTE23 => fnd_api.g_miss_char
8626 ,p_OLD_ATTRIBUTE24 => fnd_api.g_miss_char
8627 ,p_NEW_ATTRIBUTE24 => fnd_api.g_miss_char
8628 ,p_OLD_ATTRIBUTE25 => fnd_api.g_miss_char
8629 ,p_NEW_ATTRIBUTE25 => fnd_api.g_miss_char
8630 ,p_OLD_ATTRIBUTE26 => fnd_api.g_miss_char
8631 ,p_NEW_ATTRIBUTE26 => fnd_api.g_miss_char
8632 ,p_OLD_ATTRIBUTE27 => fnd_api.g_miss_char
8633 ,p_NEW_ATTRIBUTE27 => fnd_api.g_miss_char
8634 ,p_OLD_ATTRIBUTE28 => fnd_api.g_miss_char
8635 ,p_NEW_ATTRIBUTE28 => fnd_api.g_miss_char
8636 ,p_OLD_ATTRIBUTE29 => fnd_api.g_miss_char
8637 ,p_NEW_ATTRIBUTE29 => fnd_api.g_miss_char
8638 ,p_OLD_ATTRIBUTE30 => fnd_api.g_miss_char
8639 ,p_NEW_ATTRIBUTE30 => fnd_api.g_miss_char
8640 --end of parameters addition for eam integration--
8641 -- Addition of columns for FA Integration
8642 ,p_OLD_PAYABLES_UNIT_PRICE => fnd_api.g_miss_num
8643 ,p_NEW_PAYABLES_UNIT_PRICE => fnd_api.g_miss_num
8644 ,p_OLD_PAYABLES_CURRENCY_CODE => fnd_api.g_miss_char
8645 ,p_NEW_PAYABLES_CURRENCY_CODE => fnd_api.g_miss_char
8646 ,p_OLD_PURCHASE_UNIT_PRICE => fnd_api.g_miss_num
8647 ,p_NEW_PURCHASE_UNIT_PRICE => fnd_api.g_miss_num
8648 ,p_OLD_PURCHASE_CURRENCY_CODE => fnd_api.g_miss_char
8649 ,p_NEW_PURCHASE_CURRENCY_CODE => fnd_api.g_miss_char
8650 ,p_OLD_SALES_UNIT_PRICE => fnd_api.g_miss_num
8651 ,p_NEW_SALES_UNIT_PRICE => fnd_api.g_miss_num
8652 ,p_OLD_SALES_CURRENCY_CODE => fnd_api.g_miss_char
8653 ,p_NEW_SALES_CURRENCY_CODE => fnd_api.g_miss_char
8654 ,p_OLD_OPERATIONAL_STATUS_CODE => l_ins_hist_csr.old_operational_status_code
8655 ,p_NEW_OPERATIONAL_STATUS_CODE => l_ins_hist_csr.new_operational_status_code
8656 -- End addition of columns for FA Integration
8657 -- Begin Add Code for Siebel Genesis Project
8658 ,p_OLD_SOURCE_CODE => fnd_api.g_miss_char
8659 ,p_NEW_SOURCE_CODE => fnd_api.g_miss_char
8660 -- End Add Code for Siebel Genesis Project
8661 );
8662
8663 END IF; -- end if of l_ins_hist_csr.full_dump_flag
8664 EXCEPTION
8665
8666 WHEN NO_DATA_FOUND THEN
8667 -- END OF MODIFICATION ON 22-JUL SK
8668
8669 -- Check if there is a need to validate instance_usage_code, vld_organization_id
8670 IF (l_mod_value = 0) THEN
8671 -- If the mod value is 0 then dump all the columns both changed and unchanged
8672 -- changed columns have old and new values while the unchanged values have old and new values
8673 -- exactly same
8674
8675 p_instance_rec.INSTANCE_NUMBER := l_curr_instance_rec.INSTANCE_NUMBER;
8676 p_instance_rec.EXTERNAL_REFERENCE := l_curr_instance_rec.EXTERNAL_REFERENCE;
8677 p_instance_rec.INVENTORY_ITEM_ID := l_curr_instance_rec.INVENTORY_ITEM_ID;
8678 p_instance_rec.INVENTORY_REVISION := l_curr_instance_rec.INVENTORY_REVISION;
8679 p_instance_rec.INV_MASTER_ORGANIZATION_ID := l_curr_instance_rec.INV_MASTER_ORGANIZATION_ID;
8680 p_instance_rec.SERIAL_NUMBER := l_curr_instance_rec.SERIAL_NUMBER;
8681 p_instance_rec.MFG_SERIAL_NUMBER_FLAG := l_curr_instance_rec.MFG_SERIAL_NUMBER_FLAG;
8682 p_instance_rec.LOT_NUMBER := l_curr_instance_rec.LOT_NUMBER;
8683 p_instance_rec.QUANTITY := l_curr_instance_rec.QUANTITY;
8684 p_instance_rec.UNIT_OF_MEASURE := l_curr_instance_rec.UNIT_OF_MEASURE;
8685 p_instance_rec.INSTANCE_CONDITION_ID := l_curr_instance_rec.INSTANCE_CONDITION_ID;
8686 p_instance_rec.CUSTOMER_VIEW_FLAG := l_curr_instance_rec.CUSTOMER_VIEW_FLAG;
8687 p_instance_rec.MERCHANT_VIEW_FLAG := l_curr_instance_rec.MERCHANT_VIEW_FLAG;
8688 p_instance_rec.SELLABLE_FLAG := l_curr_instance_rec.SELLABLE_FLAG;
8689 p_instance_rec.INSTANCE_TYPE_CODE := l_curr_instance_rec.INSTANCE_TYPE_CODE;
8690 p_instance_rec.ACTIVE_START_DATE := l_curr_instance_rec.ACTIVE_START_DATE;
8691
8692 IF (p_instance_rec.ACCOUNTING_CLASS_CODE = FND_API.G_MISS_CHAR) THEN
8693 p_instance_rec.ACCOUNTING_CLASS_CODE := l_curr_instance_rec.ACCOUNTING_CLASS_CODE;
8694 END IF;
8695 IF (l_instance_status_id = FND_API.G_MISS_NUM) THEN
8696 l_instance_status_id := l_curr_instance_rec.INSTANCE_STATUS_ID;
8697 END IF;
8698 IF (l_system_id = FND_API.G_MISS_NUM) THEN
8699 l_system_id := l_curr_instance_rec.INSTANCE_STATUS_ID;
8700 END IF;
8701 IF (l_install_date = FND_API.G_MISS_DATE) THEN
8702 l_install_date := l_curr_instance_rec.INSTALL_DATE;
8703 END IF;
8704 IF (p_instance_rec.ACTIVE_END_DATE = FND_API.G_MISS_DATE) THEN
8705 p_instance_rec.ACTIVE_END_dATE := l_curr_instance_rec.ACTIVE_END_DATE;
8706 END IF;
8707 IF (p_instance_rec.LOCATION_TYPE_CODE = FND_API.G_MISS_CHAR) THEN
8708 p_instance_rec.LOCATION_TYPE_CODE := l_curr_instance_rec.LOCATION_TYPE_CODE;
8709 END IF;
8710 IF (p_instance_rec.LOCATION_ID = FND_API.G_MISS_NUM) THEN
8711 p_instance_rec.LOCATION_ID := l_curr_instance_rec.LOCATION_ID;
8712 END IF;
8713 IF (p_instance_rec.INV_ORGANIZATION_ID = FND_API.G_MISS_NUM) THEN
8714 p_instance_rec.INV_ORGANIZATION_ID := l_curr_instance_rec.INV_ORGANIZATION_ID;
8715 END IF;
8716 IF (p_instance_rec.INV_SUBINVENTORY_NAME = FND_API.G_MISS_CHAR) THEN
8717 p_instance_rec.INV_SUBINVENTORY_NAME := l_curr_instance_rec.INV_SUBINVENTORY_NAME;
8718 END IF;
8719 IF (p_instance_rec.INV_LOCATOR_ID = FND_API.G_MISS_NUM) THEN
8720 p_instance_rec.INV_LOCATOR_ID := l_curr_instance_rec.INV_LOCATOR_ID;
8721 END IF;
8722 IF (p_instance_rec.PA_PROJECT_ID = FND_API.G_MISS_NUM) THEN
8723 p_instance_rec.PA_PROJECT_ID := l_curr_instance_rec.PA_PROJECT_ID;
8724 END IF;
8725 IF (p_instance_rec.PA_PROJECT_TASK_ID = FND_API.G_MISS_NUM) THEN
8726 p_instance_rec.PA_PROJECT_TASK_ID := l_curr_instance_rec.PA_PROJECT_TASK_ID;
8727 END IF;
8728 IF (p_instance_rec.IN_TRANSIT_ORDER_LINE_ID = FND_API.G_MISS_NUM) THEN
8729 p_instance_rec.IN_TRANSIT_ORDER_LINE_ID := l_curr_instance_rec.IN_TRANSIT_ORDER_LINE_ID;
8730 END IF;
8731 IF (p_instance_rec.WIP_JOB_ID = FND_API.G_MISS_NUM) THEN
8732 p_instance_rec.WIP_JOB_ID := l_curr_instance_rec.WIP_JOB_ID;
8733 END IF;
8734 IF (p_instance_rec.PO_ORDER_LINE_ID = FND_API.G_MISS_NUM) THEN
8735 p_instance_rec.PO_ORDER_LINE_ID := l_curr_instance_rec.PO_ORDER_LINE_ID;
8736 END IF;
8737 IF (p_instance_rec.LAST_OE_AGREEMENT_ID = FND_API.G_MISS_NUM) THEN
8738 p_instance_rec.LAST_OE_AGREEMENT_ID := l_curr_instance_rec.LAST_OE_AGREEMENT_ID;
8739 END IF;
8740 IF (p_instance_rec.LAST_OE_ORDER_LINE_ID = FND_API.G_MISS_NUM) THEN
8741 p_instance_rec.LAST_OE_ORDER_LINE_ID := l_curr_instance_rec.LAST_OE_ORDER_LINE_ID;
8742 END IF;
8743 IF (p_instance_rec.LAST_OE_RMA_LINE_ID = FND_API.G_MISS_NUM) THEN
8744 p_instance_rec.LAST_OE_RMA_LINE_ID := l_curr_instance_rec.LAST_OE_RMA_LINE_ID;
8745 END IF;
8746 IF (p_instance_rec.LAST_WIP_JOB_ID = FND_API.G_MISS_NUM) THEN
8747 p_instance_rec.LAST_WIP_JOB_ID := l_curr_instance_rec.LAST_WIP_JOB_ID;
8748 END IF;
8749 IF (p_instance_rec.LAST_PO_PO_LINE_ID = FND_API.G_MISS_NUM) THEN
8750 p_instance_rec.LAST_PO_PO_LINE_ID := l_curr_instance_rec.LAST_PO_PO_LINE_ID;
8751 END IF;
8752 IF (p_instance_rec.LAST_PA_PROJECT_ID = FND_API.G_MISS_NUM) THEN
8753 p_instance_rec.LAST_PA_PROJECT_ID := l_curr_instance_rec.LAST_PA_PROJECT_ID;
8754 END IF;
8755 IF (p_instance_rec.LAST_PA_TASK_ID = FND_API.G_MISS_NUM) THEN
8756 p_instance_rec.LAST_PA_TASK_ID := l_curr_instance_rec.LAST_PA_TASK_ID;
8757 END IF;
8758 IF (p_instance_rec.LAST_TXN_LINE_DETAIL_ID = FND_API.G_MISS_NUM) THEN
8759 p_instance_rec.LAST_TXN_LINE_DETAIL_ID := l_curr_instance_rec.LAST_TXN_LINE_DETAIL_ID;
8760 END IF;
8761 IF (p_instance_rec.LAST_OE_PO_NUMBER = FND_API.G_MISS_CHAR) THEN
8762 p_instance_rec.LAST_OE_PO_NUMBER := l_curr_instance_rec.LAST_OE_PO_NUMBER;
8763 END IF;
8764 IF (p_instance_rec.INSTALL_LOCATION_TYPE_CODE = FND_API.G_MISS_CHAR) THEN
8765 p_instance_rec.INSTALL_LOCATION_TYPE_CODE := l_curr_instance_rec.INSTALL_LOCATION_TYPE_CODE;
8766 END IF;
8767 IF (p_instance_rec.INSTALL_LOCATION_ID = FND_API.G_MISS_NUM) THEN
8768 p_instance_rec.INSTALL_LOCATION_ID := l_curr_instance_rec.INSTALL_LOCATION_ID;
8769 END IF;
8770 IF (p_instance_rec.OPERATIONAL_STATUS_CODE = FND_API.G_MISS_CHAR) THEN
8771 p_instance_rec.OPERATIONAL_STATUS_CODE := l_curr_instance_rec.INSTALL_LOCATION_TYPE_CODE;
8772 END IF;
8773
8774 p_instance_rec.MANUALLY_CREATED_FLAG := l_curr_instance_rec.MANUALLY_CREATED_FLAG;
8775 p_instance_rec.RETURN_BY_DATE := l_curr_instance_rec.RETURN_BY_DATE;
8776 p_instance_rec.ACTUAL_RETURN_DATE := l_curr_instance_rec.ACTUAL_RETURN_DATE;
8777 p_instance_rec.CREATION_COMPLETE_FLAG := l_curr_instance_rec.CREATION_COMPLETE_FLAG;
8778 p_instance_rec.COMPLETENESS_FLAG := l_curr_instance_rec.COMPLETENESS_FLAG;
8779 p_instance_rec.CONTEXT := l_curr_instance_rec.CONTEXT;
8780 p_instance_rec.ATTRIBUTE1 := l_curr_instance_rec.ATTRIBUTE1;
8781 p_instance_rec.ATTRIBUTE2 := l_curr_instance_rec.ATTRIBUTE2;
8782 p_instance_rec.ATTRIBUTE3 := l_curr_instance_rec.ATTRIBUTE3;
8783 p_instance_rec.ATTRIBUTE4 := l_curr_instance_rec.ATTRIBUTE4;
8784 p_instance_rec.ATTRIBUTE5 := l_curr_instance_rec.ATTRIBUTE5;
8785 p_instance_rec.ATTRIBUTE6 := l_curr_instance_rec.ATTRIBUTE6;
8786 p_instance_rec.ATTRIBUTE7 := l_curr_instance_rec.ATTRIBUTE7;
8787 p_instance_rec.ATTRIBUTE8 := l_curr_instance_rec.ATTRIBUTE8;
8788 p_instance_rec.ATTRIBUTE9 := l_curr_instance_rec.ATTRIBUTE9;
8789 p_instance_rec.ATTRIBUTE10 := l_curr_instance_rec.ATTRIBUTE10;
8790 p_instance_rec.ATTRIBUTE11 := l_curr_instance_rec.ATTRIBUTE11;
8791 p_instance_rec.ATTRIBUTE12 := l_curr_instance_rec.ATTRIBUTE12;
8792 p_instance_rec.ATTRIBUTE13 := l_curr_instance_rec.ATTRIBUTE13;
8793 p_instance_rec.ATTRIBUTE14 := l_curr_instance_rec.ATTRIBUTE14;
8794 p_instance_rec.ATTRIBUTE15 := l_curr_instance_rec.ATTRIBUTE15;
8795 p_instance_rec.OBJECT_VERSION_NUMBER := l_curr_instance_rec.OBJECT_VERSION_NUMBER;
8796 p_instance_rec.INSTANCE_USAGE_CODE := l_curr_instance_rec.INSTANCE_USAGE_CODE;
8797 p_instance_rec.CONFIG_INST_REV_NUM := l_curr_instance_rec.CONFIG_INST_REV_NUM;
8798 p_instance_rec.CONFIG_VALID_STATUS := l_curr_instance_rec.CONFIG_VALID_STATUS;
8799 p_instance_rec.INSTANCE_DESCRIPTION := l_curr_instance_rec.INSTANCE_DESCRIPTION;
8800 --start of code for eam integration--
8801 p_instance_rec.NETWORK_ASSET_FLAG := l_curr_instance_rec.NETWORK_ASSET_FLAG;
8802 p_instance_rec.MAINTAINABLE_FLAG := l_curr_instance_rec.MAINTAINABLE_FLAG;
8803 p_instance_rec.PN_LOCATION_ID := l_curr_instance_rec.PN_LOCATION_ID;
8804 p_instance_rec.ASSET_CRITICALITY_CODE := l_curr_instance_rec.ASSET_CRITICALITY_CODE;
8805 p_instance_rec.CATEGORY_ID := l_curr_instance_rec.CATEGORY_ID;
8806 p_instance_rec.EQUIPMENT_GEN_OBJECT_ID:= l_curr_instance_rec.EQUIPMENT_GEN_OBJECT_ID;
8807 p_instance_rec.INSTANTIATION_FLAG := l_curr_instance_rec.INSTANTIATION_FLAG;
8808 p_instance_rec.LINEAR_LOCATION_ID := l_curr_instance_rec.LINEAR_LOCATION_ID;
8809 p_instance_rec.OPERATIONAL_LOG_FLAG := l_curr_instance_rec.OPERATIONAL_LOG_FLAG;
8810 p_instance_rec.CHECKIN_STATUS := l_curr_instance_rec.CHECKIN_STATUS;
8811 p_instance_rec.SUPPLIER_WARRANTY_EXP_DATE := l_curr_instance_rec.SUPPLIER_WARRANTY_EXP_DATE;
8812 p_instance_rec.ATTRIBUTE16 := l_curr_instance_rec.ATTRIBUTE16;
8813 p_instance_rec.ATTRIBUTE17 := l_curr_instance_rec.ATTRIBUTE17;
8814 p_instance_rec.ATTRIBUTE18 := l_curr_instance_rec.ATTRIBUTE18;
8815 p_instance_rec.ATTRIBUTE19 := l_curr_instance_rec.ATTRIBUTE19;
8816 p_instance_rec.ATTRIBUTE20 := l_curr_instance_rec.ATTRIBUTE20;
8817 p_instance_rec.ATTRIBUTE21 := l_curr_instance_rec.ATTRIBUTE21;
8818 p_instance_rec.ATTRIBUTE22 := l_curr_instance_rec.ATTRIBUTE22;
8819 p_instance_rec.ATTRIBUTE23 := l_curr_instance_rec.ATTRIBUTE23;
8820 p_instance_rec.ATTRIBUTE24 := l_curr_instance_rec.ATTRIBUTE24;
8821 p_instance_rec.ATTRIBUTE25 := l_curr_instance_rec.ATTRIBUTE25;
8822 p_instance_rec.ATTRIBUTE26 := l_curr_instance_rec.ATTRIBUTE26;
8823 p_instance_rec.ATTRIBUTE27 := l_curr_instance_rec.ATTRIBUTE27;
8824 p_instance_rec.ATTRIBUTE28 := l_curr_instance_rec.ATTRIBUTE28;
8825 p_instance_rec.ATTRIBUTE29 := l_curr_instance_rec.ATTRIBUTE29;
8826 p_instance_rec.ATTRIBUTE30 := l_curr_instance_rec.ATTRIBUTE30;
8827 --end of code for eam integration--
8828 -- Addition of columns for FA Integration
8829 p_instance_rec.PAYABLES_UNIT_PRICE := l_curr_instance_rec.PAYABLES_UNIT_PRICE;
8830 p_instance_rec.PAYABLES_CURRENCY_CODE := l_curr_instance_rec.PAYABLES_CURRENCY_CODE;
8831 p_instance_rec.PURCHASE_UNIT_PRICE := l_curr_instance_rec.PURCHASE_UNIT_PRICE;
8832 p_instance_rec.PURCHASE_CURRENCY_CODE := l_curr_instance_rec.PURCHASE_CURRENCY_CODE;
8833 p_instance_rec.SALES_UNIT_PRICE := l_curr_instance_rec.SALES_UNIT_PRICE;
8834 p_instance_rec.SALES_CURRENCY_CODE := l_curr_instance_rec.SALES_CURRENCY_CODE;
8835 -- p_instance_rec.OPERATIONAL_STATUS_CODE := l_curr_instance_rec.OPERATIONAL_STATUS_CODE;
8836 -- End addition of columns for FA Integration
8837
8838 /* Commented out to implement bulk processing.... Bug:5615169
8839 CSI_ITEM_INSTANCES_H_PKG.Insert_Row
8840 ( px_INSTANCE_HISTORY_ID => l_csi_item_instance_h_id
8841 ,p_INSTANCE_ID => l_rel_tbl(j).subject_id
8842 ,p_TRANSACTION_ID => p_txn_rec.TRANSACTION_ID
8843 ,p_OLD_INSTANCE_NUMBER => l_curr_instance_rec.INSTANCE_NUMBER
8844 ,p_NEW_INSTANCE_NUMBER => p_instance_rec.INSTANCE_NUMBER
8845 ,p_OLD_EXTERNAL_REFERENCE => l_curr_instance_rec.EXTERNAL_REFERENCE
8846 ,p_NEW_EXTERNAL_REFERENCE => p_instance_rec.EXTERNAL_REFERENCE
8847 ,p_OLD_INVENTORY_ITEM_ID => l_curr_instance_rec.INVENTORY_ITEM_ID
8848 ,p_NEW_INVENTORY_ITEM_ID => p_instance_rec.INVENTORY_ITEM_ID
8849 ,p_OLD_INVENTORY_REVISION => l_curr_instance_rec.INVENTORY_REVISION
8850 ,p_NEW_INVENTORY_REVISION => p_instance_rec.INVENTORY_REVISION
8851 ,p_OLD_INV_MASTER_ORGZN_ID => l_curr_instance_rec.INV_MASTER_ORGANIZATION_ID
8852 ,p_NEW_INV_MASTER_ORGZN_ID => p_instance_rec.INV_MASTER_ORGANIZATION_ID
8853 ,p_OLD_SERIAL_NUMBER => l_curr_instance_rec.SERIAL_NUMBER
8854 ,p_NEW_SERIAL_NUMBER => p_instance_rec.SERIAL_NUMBER
8855 ,p_OLD_MFG_SERIAL_NUMBER_FLAG => l_curr_instance_rec.MFG_SERIAL_NUMBER_FLAG
8856 ,p_NEW_MFG_SERIAL_NUMBER_FLAG => p_instance_rec.MFG_SERIAL_NUMBER_FLAG
8857 ,p_OLD_LOT_NUMBER => l_curr_instance_rec.LOT_NUMBER
8858 ,p_NEW_LOT_NUMBER => p_instance_rec.LOT_NUMBER
8859 ,p_OLD_QUANTITY => l_curr_instance_rec.QUANTITY
8860 ,p_NEW_QUANTITY => p_instance_rec.QUANTITY
8861 ,p_OLD_UNIT_OF_MEASURE => l_curr_instance_rec.UNIT_OF_MEASURE
8862 ,p_NEW_UNIT_OF_MEASURE => p_instance_rec.UNIT_OF_MEASURE
8863 ,p_OLD_ACCOUNTING_CLASS_CODE => l_curr_instance_rec.ACCOUNTING_CLASS_CODE
8864 ,p_NEW_ACCOUNTING_CLASS_CODE => p_instance_rec.ACCOUNTING_CLASS_CODE
8865 ,p_OLD_INSTANCE_CONDITION_ID => l_curr_instance_rec.INSTANCE_CONDITION_ID
8866 ,p_NEW_INSTANCE_CONDITION_ID => p_instance_rec.INSTANCE_CONDITION_ID
8867 ,p_OLD_INSTANCE_STATUS_ID => l_curr_instance_rec.INSTANCE_STATUS_ID
8868 ,p_NEW_INSTANCE_STATUS_ID => l_instance_status_id --p_instance_rec.INSTANCE_STATUS_ID
8869 ,p_OLD_CUSTOMER_VIEW_FLAG => l_curr_instance_rec.CUSTOMER_VIEW_FLAG
8870 ,p_NEW_CUSTOMER_VIEW_FLAG => p_instance_rec.CUSTOMER_VIEW_FLAG
8871 ,p_OLD_MERCHANT_VIEW_FLAG => l_curr_instance_rec.MERCHANT_VIEW_FLAG
8872 ,p_NEW_MERCHANT_VIEW_FLAG => p_instance_rec.MERCHANT_VIEW_FLAG
8873 ,p_OLD_SELLABLE_FLAG => l_curr_instance_rec.SELLABLE_FLAG
8874 ,p_NEW_SELLABLE_FLAG => p_instance_rec.SELLABLE_FLAG
8875 ,p_OLD_SYSTEM_ID => l_curr_instance_rec.SYSTEM_ID
8876 ,p_NEW_SYSTEM_ID => l_system_id
8877 ,p_OLD_INSTANCE_TYPE_CODE => l_curr_instance_rec.INSTANCE_TYPE_CODE
8878 ,p_NEW_INSTANCE_TYPE_CODE => p_instance_rec.INSTANCE_TYPE_CODE
8879 ,p_OLD_ACTIVE_START_DATE => l_curr_instance_rec.ACTIVE_START_DATE
8880 ,p_NEW_ACTIVE_START_DATE => p_instance_rec.ACTIVE_START_DATE
8881 ,p_OLD_ACTIVE_END_DATE => l_curr_instance_rec.ACTIVE_END_DATE
8882 ,p_NEW_ACTIVE_END_DATE => p_instance_rec.ACTIVE_END_DATE
8883 ,p_OLD_LOCATION_TYPE_CODE => l_curr_instance_rec.LOCATION_TYPE_CODE
8884 ,p_NEW_LOCATION_TYPE_CODE => p_instance_rec.LOCATION_TYPE_CODE
8885 ,p_OLD_LOCATION_ID => l_curr_instance_rec.LOCATION_ID
8886 ,p_NEW_LOCATION_ID => p_instance_rec.LOCATION_ID
8887 ,p_OLD_INV_ORGANIZATION_ID => l_curr_instance_rec.INV_ORGANIZATION_ID
8888 ,p_NEW_INV_ORGANIZATION_ID => p_instance_rec.INV_ORGANIZATION_ID
8889 ,p_OLD_INV_SUBINVENTORY_NAME => l_curr_instance_rec.INV_SUBINVENTORY_NAME
8890 ,p_NEW_INV_SUBINVENTORY_NAME => p_instance_rec.INV_SUBINVENTORY_NAME
8891 ,p_OLD_INV_LOCATOR_ID => l_curr_instance_rec.INV_LOCATOR_ID
8892 ,p_NEW_INV_LOCATOR_ID => p_instance_rec.INV_LOCATOR_ID
8893 ,p_OLD_PA_PROJECT_ID => l_curr_instance_rec.PA_PROJECT_ID
8894 ,p_NEW_PA_PROJECT_ID => p_instance_rec.PA_PROJECT_ID
8895 ,p_OLD_PA_PROJECT_TASK_ID => l_curr_instance_rec.PA_PROJECT_TASK_ID
8896 ,p_NEW_PA_PROJECT_TASK_ID => p_instance_rec.PA_PROJECT_TASK_ID
8897 ,p_OLD_IN_TRANSIT_ORDER_LINE_ID => l_curr_instance_rec.IN_TRANSIT_ORDER_LINE_ID
8898 ,p_NEW_IN_TRANSIT_ORDER_LINE_ID => p_instance_rec.IN_TRANSIT_ORDER_LINE_ID
8899 ,p_OLD_WIP_JOB_ID => l_curr_instance_rec.WIP_JOB_ID
8900 ,p_NEW_WIP_JOB_ID => p_instance_rec.WIP_JOB_ID
8901 ,p_OLD_PO_ORDER_LINE_ID => l_curr_instance_rec.PO_ORDER_LINE_ID
8902 ,p_NEW_PO_ORDER_LINE_ID => p_instance_rec.PO_ORDER_LINE_ID
8903 ,p_OLD_COMPLETENESS_FLAG => l_curr_instance_rec.COMPLETENESS_FLAG
8904 ,p_NEW_COMPLETENESS_FLAG => p_instance_rec.COMPLETENESS_FLAG
8905 ,p_FULL_DUMP_FLAG => 'Y'
8906 ,p_NEW_CONTEXT => p_instance_rec.CONTEXT
8907 ,P_OLD_CONTEXT => l_curr_instance_rec.CONTEXT
8908 ,p_NEW_ATTRIBUTE1 => p_instance_rec.ATTRIBUTE1
8909 ,p_OLD_ATTRIBUTE1 => l_curr_instance_rec.ATTRIBUTE1
8910 ,p_NEW_ATTRIBUTE2 => p_instance_rec.ATTRIBUTE2
8911 ,p_OLD_ATTRIBUTE2 => l_curr_instance_rec.ATTRIBUTE2
8912 ,p_NEW_ATTRIBUTE3 => p_instance_rec.ATTRIBUTE3
8913 ,p_OLD_ATTRIBUTE3 => l_curr_instance_rec.ATTRIBUTE3
8914 ,p_NEW_ATTRIBUTE4 => p_instance_rec.ATTRIBUTE4
8915 ,p_OLD_ATTRIBUTE4 => l_curr_instance_rec.ATTRIBUTE4
8916 ,p_NEW_ATTRIBUTE5 => p_instance_rec.ATTRIBUTE5
8917 ,p_OLD_ATTRIBUTE5 => l_curr_instance_rec.ATTRIBUTE5
8918 ,p_NEW_ATTRIBUTE6 => p_instance_rec.ATTRIBUTE6
8919 ,p_OLD_ATTRIBUTE6 => l_curr_instance_rec.ATTRIBUTE6
8920 ,p_NEW_ATTRIBUTE7 => p_instance_rec.ATTRIBUTE7
8921 ,p_OLD_ATTRIBUTE7 => l_curr_instance_rec.ATTRIBUTE7
8922 ,p_NEW_ATTRIBUTE8 => p_instance_rec.ATTRIBUTE8
8923 ,p_OLD_ATTRIBUTE8 => l_curr_instance_rec.ATTRIBUTE8
8924 ,p_NEW_ATTRIBUTE9 => p_instance_rec.ATTRIBUTE9
8925 ,p_OLD_ATTRIBUTE9 => l_curr_instance_rec.ATTRIBUTE9
8926 ,p_NEW_ATTRIBUTE10 => p_instance_rec.ATTRIBUTE10
8927 ,p_OLD_ATTRIBUTE10 => l_curr_instance_rec.ATTRIBUTE10
8928 ,p_NEW_ATTRIBUTE11 => p_instance_rec.ATTRIBUTE11
8929 ,p_OLD_ATTRIBUTE11 => l_curr_instance_rec.ATTRIBUTE11
8930 ,p_NEW_ATTRIBUTE12 => p_instance_rec.ATTRIBUTE12
8931 ,p_OLD_ATTRIBUTE12 => l_curr_instance_rec.ATTRIBUTE12
8932 ,p_NEW_ATTRIBUTE13 => p_instance_rec.ATTRIBUTE13
8933 ,p_OLD_ATTRIBUTE13 => l_curr_instance_rec.ATTRIBUTE13
8934 ,p_NEW_ATTRIBUTE14 => p_instance_rec.ATTRIBUTE14
8935 ,p_OLD_ATTRIBUTE14 => l_curr_instance_rec.ATTRIBUTE14
8936 ,p_NEW_ATTRIBUTE15 => p_instance_rec.ATTRIBUTE15
8937 ,p_OLD_ATTRIBUTE15 => l_curr_instance_rec.ATTRIBUTE15
8938 ,p_CREATED_BY => FND_GLOBAL.USER_ID
8939 ,p_CREATION_DATE => SYSDATE
8940 ,p_LAST_UPDATED_BY => FND_GLOBAL.USER_ID
8941 ,p_LAST_UPDATE_DATE => SYSDATE
8942 ,p_LAST_UPDATE_LOGIN => FND_GLOBAL.CONC_LOGIN_ID
8943 ,p_OBJECT_VERSION_NUMBER => 1
8944 ,p_OLD_INST_LOC_TYPE_CODE => l_curr_instance_rec.INSTALL_LOCATION_TYPE_CODE
8945 ,p_NEW_INST_LOC_TYPE_CODE => p_instance_rec.INSTALL_LOCATION_TYPE_CODE
8946 ,p_OLD_INST_LOC_ID => l_curr_instance_rec.INSTALL_LOCATION_ID
8947 ,p_NEW_INST_LOC_ID => p_instance_rec.INSTALL_LOCATION_ID
8948 ,p_OLD_INST_USAGE_CODE => l_curr_instance_rec.INSTANCE_USAGE_CODE
8949 ,p_NEW_INST_USAGE_CODE => p_instance_rec.INSTANCE_USAGE_CODE
8950 ,p_OLD_LAST_VLD_ORGANIZATION_ID => fnd_api.g_miss_num
8951 ,p_NEW_LAST_VLD_ORGANIZATION_ID => fnd_api.g_miss_num
8952 ,p_OLD_CONFIG_INST_REV_NUM => l_curr_instance_rec.CONFIG_INST_REV_NUM
8953 ,p_NEW_CONFIG_INST_REV_NUM => p_instance_rec.CONFIG_INST_REV_NUM
8954 ,p_OLD_CONFIG_VALID_STATUS => l_curr_instance_rec.CONFIG_VALID_STATUS
8955 ,p_NEW_CONFIG_VALID_STATUS => p_instance_rec.CONFIG_VALID_STATUS
8956 ,p_OLD_INSTANCE_DESCRIPTION => l_curr_instance_rec.INSTANCE_DESCRIPTION
8957 ,p_NEW_INSTANCE_DESCRIPTION => p_instance_rec.INSTANCE_DESCRIPTION
8958 ,p_OLD_INSTALL_DATE => l_curr_instance_rec.INSTALL_DATE
8959 ,p_NEW_INSTALL_DATE => l_install_date -- p_instance_rec.INSTALL_DATE
8960 ,p_OLD_RETURN_BY_DATE => l_curr_instance_rec.RETURN_BY_DATE
8961 ,p_NEW_RETURN_BY_DATE => p_instance_rec.RETURN_BY_DATE
8962 ,p_OLD_ACTUAL_RETURN_DATE => l_curr_instance_rec.ACTUAL_RETURN_DATE
8963 ,p_NEW_ACTUAL_RETURN_DATE => p_instance_rec.ACTUAL_RETURN_DATE
8964 ,p_OLD_LAST_OE_AGREEMENT_ID => l_curr_instance_rec.LAST_OE_AGREEMENT_ID
8965 ,p_NEW_LAST_OE_AGREEMENT_ID => p_instance_rec.LAST_OE_AGREEMENT_ID
8966 ,p_OLD_LAST_OE_ORDER_LINE_ID => l_curr_instance_rec.LAST_OE_ORDER_LINE_ID
8967 ,p_NEW_LAST_OE_ORDER_LINE_ID => p_instance_rec.LAST_OE_ORDER_LINE_ID
8968 ,p_OLD_LAST_OE_RMA_LINE_ID => l_curr_instance_rec.LAST_OE_RMA_LINE_ID
8969 ,p_NEW_LAST_OE_RMA_LINE_ID => p_instance_rec.LAST_OE_RMA_LINE_ID
8970 ,p_OLD_LAST_WIP_JOB_ID => l_curr_instance_rec.LAST_WIP_JOB_ID
8971 ,p_NEW_LAST_WIP_JOB_ID => p_instance_rec.LAST_WIP_JOB_ID
8972 ,p_OLD_LAST_PO_PO_LINE_ID => l_curr_instance_rec.LAST_PO_PO_LINE_ID
8973 ,p_NEW_LAST_PO_PO_LINE_ID => p_instance_rec.LAST_PO_PO_LINE_ID
8974 ,p_OLD_LAST_PA_PROJECT_ID => l_curr_instance_rec.LAST_PA_PROJECT_ID
8975 ,p_NEW_LAST_PA_PROJECT_ID => p_instance_rec.LAST_PA_PROJECT_ID
8976 ,p_OLD_LAST_PA_TASK_ID => l_curr_instance_rec.LAST_PA_TASK_ID
8977 ,p_NEW_LAST_PA_TASK_ID => p_instance_rec.LAST_PA_TASK_ID
8978 ,p_OLD_LAST_TXN_LINE_DETAIL_ID => l_curr_instance_rec.LAST_TXN_LINE_DETAIL_ID
8979 ,p_NEW_LAST_TXN_LINE_DETAIL_ID => p_instance_rec.LAST_TXN_LINE_DETAIL_ID
8980 ,p_OLD_LAST_OE_PO_NUMBER => l_curr_instance_rec.LAST_OE_PO_NUMBER
8981 ,p_NEW_LAST_OE_PO_NUMBER => p_instance_rec.LAST_OE_PO_NUMBER
8982 --start of parameters addition for eam integration--
8983 ,p_OLD_NETWORK_ASSET_FLAG => l_curr_instance_rec.NETWORK_ASSET_FLAG
8984 ,p_NEW_NETWORK_ASSET_FLAG => p_instance_rec.NETWORK_ASSET_FLAG
8985 ,p_OLD_MAINTAINABLE_FLAG => l_curr_instance_rec.MAINTAINABLE_FLAG
8986 ,p_NEW_MAINTAINABLE_FLAG => p_instance_rec.MAINTAINABLE_FLAG
8987 ,p_OLD_PN_LOCATION_ID => l_curr_instance_rec.PN_LOCATION_ID
8988 ,p_NEW_PN_LOCATION_ID => p_instance_rec.PN_LOCATION_ID
8989 ,p_OLD_ASSET_CRITICALITY_CODE => l_curr_instance_rec.ASSET_CRITICALITY_CODE
8990 ,p_NEW_ASSET_CRITICALITY_CODE => p_instance_rec.ASSET_CRITICALITY_CODE
8991 ,p_OLD_CATEGORY_ID => l_curr_instance_rec.CATEGORY_ID
8992 ,p_NEW_CATEGORY_ID => p_instance_rec.CATEGORY_ID
8993 ,p_OLD_EQUIPMENT_GEN_OBJECT_ID => l_curr_instance_rec.EQUIPMENT_GEN_OBJECT_ID
8994 ,p_NEW_EQUIPMENT_GEN_OBJECT_ID => p_instance_rec.EQUIPMENT_GEN_OBJECT_ID
8995 ,p_OLD_INSTANTIATION_FLAG => l_curr_instance_rec.INSTANTIATION_FLAG
8996 ,p_NEW_INSTANTIATION_FLAG => p_instance_rec.INSTANTIATION_FLAG
8997 ,p_OLD_LINEAR_LOCATION_ID => l_curr_instance_rec.LINEAR_LOCATION_ID
8998 ,p_NEW_LINEAR_LOCATION_ID => p_instance_rec.LINEAR_LOCATION_ID
8999 ,p_OLD_OPERATIONAL_LOG_FLAG => l_curr_instance_rec.OPERATIONAL_LOG_FLAG
9000 ,p_NEW_OPERATIONAL_LOG_FLAG => p_instance_rec.OPERATIONAL_LOG_FLAG
9001 ,p_OLD_CHECKIN_STATUS => l_curr_instance_rec.CHECKIN_STATUS
9002 ,p_NEW_CHECKIN_STATUS => p_instance_rec.CHECKIN_STATUS
9003 ,p_OLD_SUP_WARRANTY_EXP_DATE => l_curr_instance_rec.SUPPLIER_WARRANTY_EXP_DATE
9004 ,p_NEW_SUP_WARRANTY_EXP_DATE => p_instance_rec.SUPPLIER_WARRANTY_EXP_DATE
9005 ,p_OLD_ATTRIBUTE16 => l_curr_instance_rec.ATTRIBUTE16
9006 ,p_NEW_ATTRIBUTE16 => p_instance_rec.ATTRIBUTE16
9007 ,p_OLD_ATTRIBUTE17 => l_curr_instance_rec.ATTRIBUTE17
9008 ,p_NEW_ATTRIBUTE17 => p_instance_rec.ATTRIBUTE17
9009 ,p_OLD_ATTRIBUTE18 => l_curr_instance_rec.ATTRIBUTE18
9010 ,p_NEW_ATTRIBUTE18 => p_instance_rec.ATTRIBUTE18
9011 ,p_OLD_ATTRIBUTE19 => l_curr_instance_rec.ATTRIBUTE19
9012 ,p_NEW_ATTRIBUTE19 => p_instance_rec.ATTRIBUTE19
9013 ,p_OLD_ATTRIBUTE20 => l_curr_instance_rec.ATTRIBUTE20
9014 ,p_NEW_ATTRIBUTE20 => p_instance_rec.ATTRIBUTE20
9015 ,p_OLD_ATTRIBUTE21 => l_curr_instance_rec.ATTRIBUTE21
9016 ,p_NEW_ATTRIBUTE21 => p_instance_rec.ATTRIBUTE21
9017 ,p_OLD_ATTRIBUTE22 => l_curr_instance_rec.ATTRIBUTE22
9018 ,p_NEW_ATTRIBUTE22 => p_instance_rec.ATTRIBUTE22
9019 ,p_OLD_ATTRIBUTE23 => l_curr_instance_rec.ATTRIBUTE23
9020 ,p_NEW_ATTRIBUTE23 => p_instance_rec.ATTRIBUTE23
9021 ,p_OLD_ATTRIBUTE24 => l_curr_instance_rec.ATTRIBUTE24
9022 ,p_NEW_ATTRIBUTE24 => p_instance_rec.ATTRIBUTE24
9023 ,p_OLD_ATTRIBUTE25 => l_curr_instance_rec.ATTRIBUTE25
9024 ,p_NEW_ATTRIBUTE25 => p_instance_rec.ATTRIBUTE25
9025 ,p_OLD_ATTRIBUTE26 => l_curr_instance_rec.ATTRIBUTE26
9026 ,p_NEW_ATTRIBUTE26 => p_instance_rec.ATTRIBUTE26
9027 ,p_OLD_ATTRIBUTE27 => l_curr_instance_rec.ATTRIBUTE27
9028 ,p_NEW_ATTRIBUTE27 => p_instance_rec.ATTRIBUTE27
9029 ,p_OLD_ATTRIBUTE28 => l_curr_instance_rec.ATTRIBUTE28
9030 ,p_NEW_ATTRIBUTE28 => p_instance_rec.ATTRIBUTE28
9031 ,p_OLD_ATTRIBUTE29 => l_curr_instance_rec.ATTRIBUTE29
9032 ,p_NEW_ATTRIBUTE29 => p_instance_rec.ATTRIBUTE29
9033 ,p_OLD_ATTRIBUTE30 => l_curr_instance_rec.ATTRIBUTE30
9034 ,p_NEW_ATTRIBUTE30 => p_instance_rec.ATTRIBUTE30
9035 --end of parameters addition for eam integration--
9036 -- Addition of columns for FA Integration
9037 ,p_OLD_PAYABLES_UNIT_PRICE => l_curr_instance_rec.PAYABLES_UNIT_PRICE
9038 ,p_NEW_PAYABLES_UNIT_PRICE => p_instance_rec.PAYABLES_UNIT_PRICE
9039 ,p_OLD_PAYABLES_CURRENCY_CODE => l_curr_instance_rec.PAYABLES_CURRENCY_CODE
9040 ,p_NEW_PAYABLES_CURRENCY_CODE => p_instance_rec.PAYABLES_CURRENCY_CODE
9041 ,p_OLD_PURCHASE_UNIT_PRICE => l_curr_instance_rec.PURCHASE_UNIT_PRICE
9042 ,p_NEW_PURCHASE_UNIT_PRICE => p_instance_rec.PURCHASE_UNIT_PRICE
9043 ,p_OLD_PURCHASE_CURRENCY_CODE => l_curr_instance_rec.PURCHASE_CURRENCY_CODE
9044 ,p_NEW_PURCHASE_CURRENCY_CODE => p_instance_rec.PURCHASE_CURRENCY_CODE
9045 ,p_OLD_SALES_UNIT_PRICE => l_curr_instance_rec.SALES_UNIT_PRICE
9046 ,p_NEW_SALES_UNIT_PRICE => p_instance_rec.SALES_UNIT_PRICE
9047 ,p_OLD_SALES_CURRENCY_CODE => l_curr_instance_rec.SALES_CURRENCY_CODE
9048 ,p_NEW_SALES_CURRENCY_CODE => p_instance_rec.SALES_CURRENCY_CODE
9049 ,p_OLD_OPERATIONAL_STATUS_CODE => l_curr_instance_rec.OPERATIONAL_STATUS_CODE
9050 ,p_NEW_OPERATIONAL_STATUS_CODE => p_instance_rec.OPERATIONAL_STATUS_CODE
9051 -- End addition of columns for FA Integration
9052 );
9053 End of insert ...Bug:5615169 */
9054
9055 --Start of: Added for Bug:5615169
9056 --Insert the data into bulk table
9057 l_ciih_blk_ins_cnt := l_ciih_blk_ins_cnt + 1;
9058 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).instance_history_id := l_csi_item_instance_h_id;
9059 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).instance_id := l_rel_tbl(j).subject_id;
9060 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).transaction_id := p_txn_rec.TRANSACTION_ID;
9061 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_instance_number := l_curr_instance_rec.INSTANCE_NUMBER;
9062 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_instance_number := p_instance_rec.INSTANCE_NUMBER;
9063 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_external_reference := l_curr_instance_rec.EXTERNAL_REFERENCE;
9064 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_external_reference := p_instance_rec.EXTERNAL_REFERENCE;
9065 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_inventory_item_id := l_curr_instance_rec.INVENTORY_ITEM_ID;
9066 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_inventory_item_id := p_instance_rec.INVENTORY_ITEM_ID;
9067 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_inventory_revision := l_curr_instance_rec.INVENTORY_REVISION;
9068 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_inventory_revision := p_instance_rec.INVENTORY_REVISION;
9069 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_inv_master_org_id := l_curr_instance_rec.INV_MASTER_ORGANIZATION_ID;
9070 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_inv_master_org_id := p_instance_rec.INV_MASTER_ORGANIZATION_ID;
9071 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_serial_number := l_curr_instance_rec.SERIAL_NUMBER;
9072 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_serial_number := p_instance_rec.SERIAL_NUMBER;
9073 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_mfg_serial_number_flag := l_curr_instance_rec.MFG_SERIAL_NUMBER_FLAG;
9074 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_mfg_serial_number_flag := p_instance_rec.MFG_SERIAL_NUMBER_FLAG;
9075 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_lot_number := l_curr_instance_rec.LOT_NUMBER;
9076 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_lot_number := p_instance_rec.LOT_NUMBER;
9077 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_quantity := l_curr_instance_rec.QUANTITY;
9078 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_quantity := p_instance_rec.QUANTITY;
9079 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_unit_of_measure := l_curr_instance_rec.UNIT_OF_MEASURE;
9080 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_unit_of_measure := p_instance_rec.UNIT_OF_MEASURE;
9081 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_accounting_class_code := l_curr_instance_rec.ACCOUNTING_CLASS_CODE;
9082 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_accounting_class_code := p_instance_rec.ACCOUNTING_CLASS_CODE;
9083 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_instance_condition_id := l_curr_instance_rec.INSTANCE_CONDITION_ID;
9084 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_instance_condition_id := p_instance_rec.INSTANCE_CONDITION_ID;
9085 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_instance_status_id := l_curr_instance_rec.INSTANCE_STATUS_ID;
9086 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;
9087 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_customer_view_flag := l_curr_instance_rec.CUSTOMER_VIEW_FLAG;
9088 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_customer_view_flag := p_instance_rec.CUSTOMER_VIEW_FLAG;
9089 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_merchant_view_flag := l_curr_instance_rec.MERCHANT_VIEW_FLAG;
9090 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_merchant_view_flag := p_instance_rec.MERCHANT_VIEW_FLAG;
9091 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_sellable_flag := l_curr_instance_rec.SELLABLE_FLAG;
9092 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_sellable_flag := p_instance_rec.SELLABLE_FLAG;
9093 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_system_id := l_curr_instance_rec.SYSTEM_ID;
9094 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_system_id := l_system_id;
9095 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_instance_type_code := l_curr_instance_rec.INSTANCE_TYPE_CODE;
9096 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_instance_type_code := p_instance_rec.INSTANCE_TYPE_CODE;
9097 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_active_start_date := l_curr_instance_rec.ACTIVE_START_DATE;
9098 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_active_start_date := p_instance_rec.ACTIVE_START_DATE;
9099 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_active_end_date := l_curr_instance_rec.ACTIVE_END_DATE;
9100 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_active_end_date := p_instance_rec.ACTIVE_END_DATE;
9101 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_location_type_code := l_curr_instance_rec.LOCATION_TYPE_CODE;
9102 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_location_type_code := p_instance_rec.LOCATION_TYPE_CODE;
9103 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_location_id := l_curr_instance_rec.LOCATION_ID;
9104 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_location_id := p_instance_rec.LOCATION_ID;
9105 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_inv_organization_id := l_curr_instance_rec.INV_ORGANIZATION_ID;
9106 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_inv_organization_id := p_instance_rec.INV_ORGANIZATION_ID;
9107 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_inv_subinventory_name := l_curr_instance_rec.INV_SUBINVENTORY_NAME;
9108 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_inv_subinventory_name := p_instance_rec.INV_SUBINVENTORY_NAME;
9109 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_inv_locator_id := l_curr_instance_rec.INV_LOCATOR_ID;
9110 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_inv_locator_id := p_instance_rec.INV_LOCATOR_ID;
9111 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_pa_project_id := l_curr_instance_rec.PA_PROJECT_ID;
9112 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_pa_project_id := p_instance_rec.PA_PROJECT_ID;
9113 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_pa_project_task_id := l_curr_instance_rec.PA_PROJECT_TASK_ID;
9114 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_pa_project_task_id := p_instance_rec.PA_PROJECT_TASK_ID;
9115 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;
9116 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;
9117 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_wip_job_id := l_curr_instance_rec.WIP_JOB_ID;
9118 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_wip_job_id := p_instance_rec.WIP_JOB_ID;
9119 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_po_order_line_id := l_curr_instance_rec.PO_ORDER_LINE_ID;
9120 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_po_order_line_id := p_instance_rec.PO_ORDER_LINE_ID;
9121 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_completeness_flag := l_curr_instance_rec.COMPLETENESS_FLAG;
9122 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_completeness_flag := p_instance_rec.COMPLETENESS_FLAG;
9123 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).full_dump_flag := 'Y';
9124 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_context := p_instance_rec.CONTEXT;
9125 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_context := l_curr_instance_rec.CONTEXT;
9126 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute1 := p_instance_rec.ATTRIBUTE1;
9127 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute1 := l_curr_instance_rec.ATTRIBUTE1;
9128 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute2 := p_instance_rec.ATTRIBUTE2;
9129 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute2 := l_curr_instance_rec.ATTRIBUTE2;
9130 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute3 := p_instance_rec.ATTRIBUTE3;
9131 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute3 := l_curr_instance_rec.ATTRIBUTE3;
9132 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute4 := p_instance_rec.ATTRIBUTE4;
9133 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute4 := l_curr_instance_rec.ATTRIBUTE4;
9134 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute5 := p_instance_rec.ATTRIBUTE5;
9135 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute5 := l_curr_instance_rec.ATTRIBUTE5;
9136 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute6 := p_instance_rec.ATTRIBUTE6;
9137 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute6 := l_curr_instance_rec.ATTRIBUTE6;
9138 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute7 := p_instance_rec.ATTRIBUTE7;
9139 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute7 := l_curr_instance_rec.ATTRIBUTE7;
9140 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute8 := p_instance_rec.ATTRIBUTE8;
9141 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute8 := l_curr_instance_rec.ATTRIBUTE8;
9142 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute9 := p_instance_rec.ATTRIBUTE9;
9143 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute9 := l_curr_instance_rec.ATTRIBUTE9;
9144 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute10 := p_instance_rec.ATTRIBUTE10;
9145 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute10 := l_curr_instance_rec.ATTRIBUTE10;
9146 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute11 := p_instance_rec.ATTRIBUTE11;
9147 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute11 := l_curr_instance_rec.ATTRIBUTE11;
9148 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute12 := p_instance_rec.ATTRIBUTE12;
9149 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute12 := l_curr_instance_rec.ATTRIBUTE12;
9150 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute13 := p_instance_rec.ATTRIBUTE13;
9151 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute13 := l_curr_instance_rec.ATTRIBUTE13;
9152 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute14 := p_instance_rec.ATTRIBUTE14;
9153 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute14 := l_curr_instance_rec.ATTRIBUTE14;
9154 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute15 := p_instance_rec.ATTRIBUTE15;
9155 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute15 := l_curr_instance_rec.ATTRIBUTE15;
9156 -- l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).created_by := FND_GLOBAL.USER_ID;
9157 -- l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).creation_date := SYSDATE;
9158 -- l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).last_updated_by := FND_GLOBAL.USER_ID;
9159 -- l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).last_update_date := SYSDATE;
9160 -- l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).last_update_login := FND_GLOBAL.CONC_LOGIN_ID;
9161 -- l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).object_version_number := 1;
9162 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_install_location_type_code := l_curr_instance_rec.INSTALL_LOCATION_TYPE_CODE;
9163 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_install_location_type_code := p_instance_rec.INSTALL_LOCATION_TYPE_CODE;
9164 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_install_location_id := l_curr_instance_rec.INSTALL_LOCATION_ID;
9165 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_install_location_id := p_instance_rec.INSTALL_LOCATION_ID;
9166 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_instance_usage_code := l_curr_instance_rec.INSTANCE_USAGE_CODE;
9167 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_instance_usage_code := p_instance_rec.INSTANCE_USAGE_CODE;
9168 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_last_vld_organization_id := fnd_api.g_miss_num;
9169 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_last_vld_organization_id := fnd_api.g_miss_num;
9170 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_config_inst_rev_num := l_curr_instance_rec.CONFIG_INST_REV_NUM;
9171 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_config_inst_rev_num := p_instance_rec.CONFIG_INST_REV_NUM;
9172 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_config_valid_status := l_curr_instance_rec.CONFIG_VALID_STATUS;
9173 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_config_valid_status := p_instance_rec.CONFIG_VALID_STATUS;
9174 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_instance_description := l_curr_instance_rec.INSTANCE_DESCRIPTION;
9175 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_instance_description := p_instance_rec.INSTANCE_DESCRIPTION;
9176 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_install_date := l_curr_instance_rec.INSTALL_DATE;
9177 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_install_date := l_install_date;
9178 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_return_by_date := l_curr_instance_rec.RETURN_BY_DATE;
9179 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_return_by_date := p_instance_rec.RETURN_BY_DATE;
9180 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_actual_return_date := l_curr_instance_rec.ACTUAL_RETURN_DATE;
9181 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_actual_return_date := p_instance_rec.ACTUAL_RETURN_DATE;
9182 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_last_oe_agreement_id := l_curr_instance_rec.LAST_OE_AGREEMENT_ID;
9183 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_last_oe_agreement_id := p_instance_rec.LAST_OE_AGREEMENT_ID;
9184 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;
9185 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;
9186 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;
9187 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;
9188 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_last_wip_job_id := l_curr_instance_rec.LAST_WIP_JOB_ID;
9189 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_last_wip_job_id := p_instance_rec.LAST_WIP_JOB_ID;
9190 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;
9191 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;
9192 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_last_pa_project_id := l_curr_instance_rec.LAST_PA_PROJECT_ID;
9193 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_last_pa_project_id := p_instance_rec.LAST_PA_PROJECT_ID;
9194 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_last_pa_task_id := l_curr_instance_rec.LAST_PA_TASK_ID;
9195 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_last_pa_task_id := p_instance_rec.LAST_PA_TASK_ID;
9196 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;
9197 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;
9198 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_last_oe_po_number := l_curr_instance_rec.LAST_OE_PO_NUMBER;
9199 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_last_oe_po_number := p_instance_rec.LAST_OE_PO_NUMBER;
9200 -- l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_capitalization_status := l_curr_instance_rec.CAPITALIZATION_STATUS;
9201 -- l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_capitalization_status := p_instance_rec.CAPITALIZATION_STATUS;
9202 --Start of parameters addition for eam integration
9203 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_network_asset_flag := l_curr_instance_rec.NETWORK_ASSET_FLAG;
9204 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_network_asset_flag := p_instance_rec.NETWORK_ASSET_FLAG;
9205 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_maintainable_flag := l_curr_instance_rec.MAINTAINABLE_FLAG;
9206 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_maintainable_flag := p_instance_rec.MAINTAINABLE_FLAG;
9207 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_pn_location_id := l_curr_instance_rec.PN_LOCATION_ID;
9208 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_pn_location_id := p_instance_rec.PN_LOCATION_ID;
9209 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_asset_criticality_code := l_curr_instance_rec.ASSET_CRITICALITY_CODE;
9210 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_asset_criticality_code := p_instance_rec.ASSET_CRITICALITY_CODE;
9211 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_category_id := l_curr_instance_rec.CATEGORY_ID;
9212 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_category_id := p_instance_rec.CATEGORY_ID;
9213 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_equipment_gen_object_id := l_curr_instance_rec.EQUIPMENT_GEN_OBJECT_ID;
9214 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_equipment_gen_object_id := p_instance_rec.EQUIPMENT_GEN_OBJECT_ID;
9215 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_instantiation_flag := l_curr_instance_rec.INSTANTIATION_FLAG;
9216 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_instantiation_flag := p_instance_rec.INSTANTIATION_FLAG;
9217 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_linear_location_id := l_curr_instance_rec.LINEAR_LOCATION_ID;
9218 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_linear_location_id := p_instance_rec.LINEAR_LOCATION_ID;
9219 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_operational_log_flag := l_curr_instance_rec.OPERATIONAL_LOG_FLAG;
9220 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_operational_log_flag := p_instance_rec.OPERATIONAL_LOG_FLAG;
9221 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_checkin_status := l_curr_instance_rec.CHECKIN_STATUS;
9222 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_checkin_status := p_instance_rec.CHECKIN_STATUS;
9223 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_supplier_warranty_exp_date := l_curr_instance_rec.SUPPLIER_WARRANTY_EXP_DATE;
9224 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_supplier_warranty_exp_date := p_instance_rec.SUPPLIER_WARRANTY_EXP_DATE;
9225 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute16 := l_curr_instance_rec.ATTRIBUTE16;
9226 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute16 := p_instance_rec.ATTRIBUTE16;
9227 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute17 := l_curr_instance_rec.ATTRIBUTE17;
9228 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute17 := p_instance_rec.ATTRIBUTE17;
9229 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute18 := l_curr_instance_rec.ATTRIBUTE18;
9230 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute18 := p_instance_rec.ATTRIBUTE18;
9231 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute19 := l_curr_instance_rec.ATTRIBUTE19;
9232 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute19 := p_instance_rec.ATTRIBUTE19;
9233 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute20 := l_curr_instance_rec.ATTRIBUTE20;
9234 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute20 := p_instance_rec.ATTRIBUTE20;
9235 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute21 := l_curr_instance_rec.ATTRIBUTE21;
9236 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute21 := p_instance_rec.ATTRIBUTE21;
9237 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute22 := l_curr_instance_rec.ATTRIBUTE22;
9238 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute22 := p_instance_rec.ATTRIBUTE22;
9239 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute23 := l_curr_instance_rec.ATTRIBUTE23;
9240 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute23 := p_instance_rec.ATTRIBUTE23;
9241 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute24 := l_curr_instance_rec.ATTRIBUTE24;
9242 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute24 := p_instance_rec.ATTRIBUTE24;
9243 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute25 := l_curr_instance_rec.ATTRIBUTE25;
9244 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute25 := p_instance_rec.ATTRIBUTE25;
9245 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute26 := l_curr_instance_rec.ATTRIBUTE26;
9246 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute26 := p_instance_rec.ATTRIBUTE26;
9247 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute27 := l_curr_instance_rec.ATTRIBUTE27;
9248 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute27 := p_instance_rec.ATTRIBUTE27;
9249 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute28 := l_curr_instance_rec.ATTRIBUTE28;
9250 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute28 := p_instance_rec.ATTRIBUTE28;
9251 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute29 := l_curr_instance_rec.ATTRIBUTE29;
9252 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute29 := p_instance_rec.ATTRIBUTE29;
9253 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute30 := l_curr_instance_rec.ATTRIBUTE30;
9254 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute30 := p_instance_rec.ATTRIBUTE30;
9255 --End of parameters addition for eam integration--
9256 --Addition of columns for FA Integration
9257 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_payables_unit_price := l_curr_instance_rec.PAYABLES_UNIT_PRICE;
9258 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_payables_unit_price := p_instance_rec.PAYABLES_UNIT_PRICE;
9259 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_payables_currency_code := l_curr_instance_rec.PAYABLES_CURRENCY_CODE;
9260 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_payables_currency_code := p_instance_rec.PAYABLES_CURRENCY_CODE;
9261 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_purchase_unit_price := l_curr_instance_rec.PURCHASE_UNIT_PRICE;
9262 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_purchase_unit_price := p_instance_rec.PURCHASE_UNIT_PRICE;
9263 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_purchase_currency_code := l_curr_instance_rec.PURCHASE_CURRENCY_CODE;
9264 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_purchase_currency_code := p_instance_rec.PURCHASE_CURRENCY_CODE;
9265 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_sales_unit_price := l_curr_instance_rec.SALES_UNIT_PRICE;
9266 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_sales_unit_price := p_instance_rec.SALES_UNIT_PRICE;
9267 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_sales_currency_code := l_curr_instance_rec.SALES_CURRENCY_CODE;
9268 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_sales_currency_code := p_instance_rec.SALES_CURRENCY_CODE;
9269 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_operational_status_code := l_curr_instance_rec.OPERATIONAL_STATUS_CODE;
9270 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_operational_status_code := p_instance_rec.OPERATIONAL_STATUS_CODE;
9271 --End addition of columns for FA Integration
9272 --End of Insert into bulk table
9273 --End of: Added for Bug:5615169
9274 -- Begin Add Code for Siebel Genesis Project
9275 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_source_code := l_curr_instance_rec.SOURCE_CODE;
9276 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_source_code := p_instance_rec.SOURCE_CODE;
9277 -- End Add Code for Siebel Genesis Project
9278 ELSE -- if mod_value <> 0
9279
9280 -- If the mod value is not equal to zero then dump only the changed columns
9281 -- while the unchanged values have old and new values as null
9282 IF (p_instance_rec.accounting_class_code = fnd_api.g_miss_char) OR
9283 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
9284 l_instance_hist_rec.old_accounting_class_code := NULL;
9285 l_instance_hist_rec.new_accounting_class_code := NULL;
9286 ELSIF
9287 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
9288 l_instance_hist_rec.old_accounting_class_code := l_curr_instance_rec.accounting_class_code ;
9289 l_instance_hist_rec.new_accounting_class_code := p_instance_rec.accounting_class_code ;
9290 END IF;
9291 --
9292 IF (l_instance_status_id = fnd_api.g_miss_num) OR
9293 NVL(l_curr_instance_rec.instance_status_id,fnd_api.g_miss_num) = NVL(l_instance_status_id,fnd_api.g_miss_num) THEN
9294 l_instance_hist_rec.old_instance_status_id := NULL;
9295 l_instance_hist_rec.new_instance_status_id := NULL;
9296 ELSIF
9297 NVL(l_curr_instance_rec.instance_status_id,fnd_api.g_miss_num) <> NVL(l_instance_status_id,fnd_api.g_miss_num) THEN
9298 l_instance_hist_rec.old_instance_status_id := l_curr_instance_rec.instance_status_id ;
9299 l_instance_hist_rec.new_instance_status_id := l_instance_status_id ;
9300 END IF;
9301 --
9302 IF (l_system_id = fnd_api.g_miss_num) OR
9303 NVL(l_curr_instance_rec.system_id,fnd_api.g_miss_num) = NVL(l_system_id,fnd_api.g_miss_num) THEN
9304 l_instance_hist_rec.old_system_id := NULL;
9305 l_instance_hist_rec.new_system_id := NULL;
9306 ELSIF
9307 NVL(l_curr_instance_rec.system_id,fnd_api.g_miss_num) <> NVL(l_system_id,fnd_api.g_miss_num) THEN
9308 l_instance_hist_rec.old_system_id := l_curr_instance_rec.system_id ;
9309 l_instance_hist_rec.new_system_id := l_system_id ;
9310 END IF;
9311 --
9312 IF (l_install_date = fnd_api.g_miss_date) OR
9313 NVL(l_curr_instance_rec.install_date,fnd_api.g_miss_date) = NVL(l_install_date,fnd_api.g_miss_date) THEN
9314 l_instance_hist_rec.old_install_date := NULL;
9315 l_instance_hist_rec.new_install_date := NULL;
9316 ELSIF
9317 NVL(l_curr_instance_rec.install_date,fnd_api.g_miss_date) <> NVL(l_install_date,fnd_api.g_miss_date) THEN
9318 l_instance_hist_rec.old_install_date := l_curr_instance_rec.install_date ;
9319 l_instance_hist_rec.new_install_date := l_install_date ;
9320 END IF;
9321 --
9322 IF (p_instance_rec.active_end_date = fnd_api.g_miss_date) OR
9323 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
9324 l_instance_hist_rec.old_active_end_date := NULL;
9325 l_instance_hist_rec.new_active_end_date := NULL;
9326 ELSIF
9327 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
9328 l_instance_hist_rec.old_active_end_date := l_curr_instance_rec.active_end_date ;
9329 l_instance_hist_rec.new_active_end_date := p_instance_rec.active_end_date ;
9330 END IF;
9331 --
9332 IF (p_instance_rec.location_type_code = fnd_api.g_miss_char) OR
9333 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
9334 l_instance_hist_rec.old_location_type_code := NULL;
9335 l_instance_hist_rec.new_location_type_code := NULL;
9336 ELSIF
9337 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
9338 l_instance_hist_rec.old_location_type_code := l_curr_instance_rec.location_type_code ;
9339 l_instance_hist_rec.new_location_type_code := p_instance_rec.location_type_code ;
9340 END IF;
9341 --
9342 IF (p_instance_rec.location_id = fnd_api.g_miss_num) OR
9343 NVL(l_curr_instance_rec.location_id,fnd_api.g_miss_num) = NVL(p_instance_rec.location_id,fnd_api.g_miss_num) THEN
9344 l_instance_hist_rec.old_location_id := NULL;
9345 l_instance_hist_rec.new_location_id := NULL;
9346 ELSIF
9347 NVL(l_curr_instance_rec.location_id,fnd_api.g_miss_num) <> NVL(p_instance_rec.location_id,fnd_api.g_miss_num) THEN
9348 l_instance_hist_rec.old_location_id := l_curr_instance_rec.location_id ;
9349 l_instance_hist_rec.new_location_id := p_instance_rec.location_id ;
9350 END IF;
9351 --
9352 IF (p_instance_rec.inv_organization_id = fnd_api.g_miss_num) OR
9353 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
9354 l_instance_hist_rec.old_inv_organization_id := NULL;
9355 l_instance_hist_rec.new_inv_organization_id := NULL;
9356 ELSIF
9357 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
9358 l_instance_hist_rec.old_inv_organization_id := l_curr_instance_rec.inv_organization_id ;
9359 l_instance_hist_rec.new_inv_organization_id := p_instance_rec.inv_organization_id ;
9360 END IF;
9361 --
9362 IF (p_instance_rec.inv_subinventory_name = fnd_api.g_miss_char) OR
9363 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
9364 l_instance_hist_rec.old_inv_subinventory_name := NULL;
9365 l_instance_hist_rec.new_inv_subinventory_name := NULL;
9366 ELSIF
9367 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
9368 l_instance_hist_rec.old_inv_subinventory_name := l_curr_instance_rec.inv_subinventory_name ;
9369 l_instance_hist_rec.new_inv_subinventory_name := p_instance_rec.inv_subinventory_name ;
9370 END IF;
9371 --
9372 IF (p_instance_rec.inv_locator_id = fnd_api.g_miss_num) OR
9373 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
9374 l_instance_hist_rec.old_inv_locator_id := NULL;
9375 l_instance_hist_rec.new_inv_locator_id := NULL;
9376 ELSIF
9377 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
9378 l_instance_hist_rec.old_inv_locator_id := l_curr_instance_rec.inv_locator_id ;
9379 l_instance_hist_rec.new_inv_locator_id := p_instance_rec.inv_locator_id ;
9380 END IF;
9381 --
9382 IF (p_instance_rec.pa_project_id = fnd_api.g_miss_num) OR
9383 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
9384 l_instance_hist_rec.old_pa_project_id := NULL;
9385 l_instance_hist_rec.new_pa_project_id := NULL;
9386 ELSIF
9387 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
9388 l_instance_hist_rec.old_pa_project_id := l_curr_instance_rec.pa_project_id ;
9389 l_instance_hist_rec.new_pa_project_id := p_instance_rec.pa_project_id ;
9390 END IF;
9391 --
9392 IF (p_instance_rec.pa_project_task_id = fnd_api.g_miss_num) OR
9393 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
9394 l_instance_hist_rec.old_pa_project_task_id := NULL;
9395 l_instance_hist_rec.new_pa_project_task_id := NULL;
9396 ELSIF
9397 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
9398 l_instance_hist_rec.old_pa_project_task_id := l_curr_instance_rec.pa_project_task_id ;
9399 l_instance_hist_rec.new_pa_project_task_id := p_instance_rec.pa_project_task_id ;
9400 END IF;
9401 --
9402 IF (p_instance_rec.in_transit_order_line_id = fnd_api.g_miss_num) OR
9403 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
9404 l_instance_hist_rec.old_in_transit_order_line_id := NULL;
9405 l_instance_hist_rec.new_in_transit_order_line_id := NULL;
9406 ELSIF
9407 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
9408 l_instance_hist_rec.old_in_transit_order_line_id := l_curr_instance_rec.in_transit_order_line_id ;
9409 l_instance_hist_rec.new_in_transit_order_line_id := p_instance_rec.in_transit_order_line_id ;
9410 END IF;
9411 --
9412 IF (p_instance_rec.wip_job_id = fnd_api.g_miss_num) OR
9413 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
9414 l_instance_hist_rec.old_wip_job_id := NULL;
9415 l_instance_hist_rec.new_wip_job_id := NULL;
9416 ELSIF
9417 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
9418 l_instance_hist_rec.old_wip_job_id := l_curr_instance_rec.wip_job_id ;
9419 l_instance_hist_rec.new_wip_job_id := p_instance_rec.wip_job_id ;
9420 END IF;
9421 --
9422 IF (p_instance_rec.po_order_line_id = fnd_api.g_miss_num) OR
9423 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
9424 l_instance_hist_rec.old_po_order_line_id := NULL;
9425 l_instance_hist_rec.new_po_order_line_id := NULL;
9426 ELSIF
9427 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
9428 l_instance_hist_rec.old_po_order_line_id := l_curr_instance_rec.po_order_line_id ;
9429 l_instance_hist_rec.new_po_order_line_id := p_instance_rec.po_order_line_id ;
9430 END IF;
9431 --
9432 IF (p_instance_rec.last_oe_agreement_id = fnd_api.g_miss_num) OR
9433 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
9434 l_instance_hist_rec.old_last_oe_agreement_id := NULL;
9435 l_instance_hist_rec.new_last_oe_agreement_id := NULL;
9436 ELSIF
9437 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
9438 l_instance_hist_rec.old_last_oe_agreement_id := l_curr_instance_rec.last_oe_agreement_id ;
9439 l_instance_hist_rec.new_last_oe_agreement_id := p_instance_rec.last_oe_agreement_id ;
9440 END IF;
9441 --
9442 IF (p_instance_rec.LAST_OE_ORDER_LINE_ID = fnd_api.g_miss_num) OR
9443 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
9444 l_instance_hist_rec.old_LAST_OE_ORDER_LINE_ID := NULL;
9445 l_instance_hist_rec.new_LAST_OE_ORDER_LINE_ID := NULL;
9446 ELSIF
9447 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
9448 l_instance_hist_rec.old_LAST_OE_ORDER_LINE_ID := l_curr_instance_rec.LAST_OE_ORDER_LINE_ID ;
9449 l_instance_hist_rec.new_LAST_OE_ORDER_LINE_ID := p_instance_rec.LAST_OE_ORDER_LINE_ID ;
9450 END IF;
9451 --
9452 IF (p_instance_rec.LAST_OE_RMA_LINE_ID = fnd_api.g_miss_num) OR
9453 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
9454 l_instance_hist_rec.OLD_LAST_OE_RMA_LINE_ID := NULL;
9455 l_instance_hist_rec.NEW_LAST_OE_RMA_LINE_ID := NULL;
9456 ELSIF
9457 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
9458 l_instance_hist_rec.OLD_LAST_OE_RMA_LINE_ID := l_curr_instance_rec.LAST_OE_RMA_LINE_ID ;
9459 l_instance_hist_rec.NEW_LAST_OE_RMA_LINE_ID := p_instance_rec.LAST_OE_RMA_LINE_ID ;
9460 END IF;
9461 --
9462 IF (p_instance_rec.LAST_WIP_JOB_ID = fnd_api.g_miss_num) OR
9463 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
9464 l_instance_hist_rec.old_LAST_WIP_JOB_ID := NULL;
9465 l_instance_hist_rec.new_LAST_WIP_JOB_ID := NULL;
9466 ELSIF
9467 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
9468 l_instance_hist_rec.old_LAST_WIP_JOB_ID := l_curr_instance_rec.LAST_WIP_JOB_ID ;
9469 l_instance_hist_rec.new_LAST_WIP_JOB_ID := p_instance_rec.LAST_WIP_JOB_ID ;
9470 END IF;
9471 --
9472 IF (p_instance_rec.LAST_PO_PO_LINE_ID = fnd_api.g_miss_num) OR
9473 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
9474 l_instance_hist_rec.old_LAST_PO_PO_LINE_ID := NULL;
9475 l_instance_hist_rec.new_LAST_PO_PO_LINE_ID := NULL;
9476 ELSIF
9477 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
9478 l_instance_hist_rec.old_LAST_PO_PO_LINE_ID := l_curr_instance_rec.LAST_PO_PO_LINE_ID ;
9479 l_instance_hist_rec.new_LAST_PO_PO_LINE_ID := p_instance_rec.LAST_PO_PO_LINE_ID ;
9480 END IF;
9481 --
9482 IF (p_instance_rec.LAST_PA_PROJECT_ID = fnd_api.g_miss_num) OR
9483 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
9484 l_instance_hist_rec.old_LAST_PA_PROJECT_ID := NULL;
9485 l_instance_hist_rec.new_LAST_PA_PROJECT_ID := NULL;
9486 ELSIF
9487 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
9488 l_instance_hist_rec.old_LAST_PA_PROJECT_ID := l_curr_instance_rec.LAST_PA_PROJECT_ID ;
9489 l_instance_hist_rec.new_LAST_PA_PROJECT_ID := p_instance_rec.LAST_PA_PROJECT_ID ;
9490 END IF;
9491 --
9492 IF (p_instance_rec.LAST_PA_TASK_ID = fnd_api.g_miss_num) OR
9493 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
9494 l_instance_hist_rec.old_LAST_PA_TASK_ID := NULL;
9495 l_instance_hist_rec.new_LAST_PA_TASK_ID := NULL;
9496 ELSIF
9497 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
9498 l_instance_hist_rec.old_LAST_PA_TASK_ID := l_curr_instance_rec.LAST_PA_TASK_ID ;
9499 l_instance_hist_rec.new_LAST_PA_TASK_ID := p_instance_rec.LAST_PA_TASK_ID ;
9500 END IF;
9501 --
9502 IF (p_instance_rec.LAST_TXN_LINE_DETAIL_ID = fnd_api.g_miss_num) OR
9503 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
9504 l_instance_hist_rec.old_LAST_TXN_LINE_DETAIL_ID := NULL;
9505 l_instance_hist_rec.new_LAST_TXN_LINE_DETAIL_ID := NULL;
9506 ELSIF
9507 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
9508 l_instance_hist_rec.old_LAST_TXN_LINE_DETAIL_ID := l_curr_instance_rec.LAST_TXN_LINE_DETAIL_ID ;
9509 l_instance_hist_rec.new_LAST_TXN_LINE_DETAIL_ID := p_instance_rec.LAST_TXN_LINE_DETAIL_ID ;
9510 END IF;
9511 --
9512 IF (p_instance_rec.LAST_OE_PO_NUMBER = fnd_api.g_miss_char) OR
9513 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
9514 l_instance_hist_rec.old_LAST_OE_PO_NUMBER := NULL;
9515 l_instance_hist_rec.new_LAST_OE_PO_NUMBER := NULL;
9516 ELSIF
9517 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
9518 l_instance_hist_rec.old_LAST_OE_PO_NUMBER := l_curr_instance_rec.LAST_OE_PO_NUMBER ;
9519 l_instance_hist_rec.new_LAST_OE_PO_NUMBER := p_instance_rec.LAST_OE_PO_NUMBER ;
9520 END IF;
9521 --
9522 IF (p_instance_rec.install_location_type_code = fnd_api.g_miss_char) OR
9523 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
9524 l_instance_hist_rec.old_install_location_type_code := NULL;
9525 l_instance_hist_rec.new_install_location_type_code := NULL;
9526 ELSIF
9527 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
9528 l_instance_hist_rec.old_install_location_type_code := l_curr_instance_rec.install_location_type_code ;
9529 l_instance_hist_rec.new_install_location_type_code := p_instance_rec.install_location_type_code ;
9530 END IF;
9531 --
9532 IF (p_instance_rec.install_location_id = fnd_api.g_miss_num) OR
9533 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
9534 l_instance_hist_rec.old_install_location_id := NULL;
9535 l_instance_hist_rec.new_install_location_id := NULL;
9536 ELSIF
9537 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
9538 l_instance_hist_rec.old_install_location_id := l_curr_instance_rec.install_location_id ;
9539 l_instance_hist_rec.new_install_location_id := p_instance_rec.install_location_id ;
9540 END IF;
9541 --
9542 IF (p_instance_rec.operational_status_code = fnd_api.g_miss_char) OR
9543 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
9544 l_instance_hist_rec.old_operational_status_code := NULL;
9545 l_instance_hist_rec.new_operational_status_code := NULL;
9546 ELSIF
9547 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
9548 l_instance_hist_rec.old_operational_status_code := l_curr_instance_rec.operational_status_code ;
9549 l_instance_hist_rec.new_operational_status_code := p_instance_rec.operational_status_code ;
9550 END IF;
9551
9552 /* Commented to implement bulk operations...Bug:;
9553 CSI_ITEM_INSTANCES_H_PKG.Insert_Row
9554 ( px_INSTANCE_HISTORY_ID => l_csi_item_instance_h_id
9555 ,p_INSTANCE_ID => l_rel_tbl(j).SUBJECT_ID
9556 ,p_TRANSACTION_ID => p_txn_rec.TRANSACTION_ID
9557 ,p_OLD_INSTANCE_NUMBER => FND_API.G_MISS_CHAR
9558 ,p_NEW_INSTANCE_NUMBER => FND_API.G_MISS_CHAR
9559 ,p_OLD_EXTERNAL_REFERENCE => FND_API.G_MISS_CHAR
9560 ,p_NEW_EXTERNAL_REFERENCE => FND_API.G_MISS_CHAR
9561 ,p_OLD_INVENTORY_ITEM_ID => FND_API.G_MISS_NUM
9562 ,p_NEW_INVENTORY_ITEM_ID => FND_API.G_MISS_NUM
9563 ,p_OLD_INVENTORY_REVISION => FND_API.G_MISS_CHAR
9564 ,p_NEW_INVENTORY_REVISION => FND_API.G_MISS_CHAR
9565 ,p_OLD_INV_MASTER_ORGZN_ID => FND_API.G_MISS_NUM
9566 ,p_NEW_INV_MASTER_ORGZN_ID => FND_API.G_MISS_NUM
9567 ,p_OLD_SERIAL_NUMBER => FND_API.G_MISS_CHAR
9568 ,p_NEW_SERIAL_NUMBER => FND_API.G_MISS_CHAR
9569 ,p_OLD_MFG_SERIAL_NUMBER_FLAG => FND_API.G_MISS_CHAR
9570 ,p_NEW_MFG_SERIAL_NUMBER_FLAG => FND_API.G_MISS_CHAR
9571 ,p_OLD_LOT_NUMBER => FND_API.G_MISS_CHAR
9572 ,p_NEW_LOT_NUMBER => FND_API.G_MISS_CHAR
9573 ,p_OLD_QUANTITY => FND_API.G_MISS_NUM
9574 ,p_NEW_QUANTITY => FND_API.G_MISS_NUM
9575 ,p_OLD_UNIT_OF_MEASURE => FND_API.G_MISS_CHAR
9576 ,p_NEW_UNIT_OF_MEASURE => FND_API.G_MISS_CHAR
9577 ,p_OLD_ACCOUNTING_CLASS_CODE => l_instance_hist_rec.OLD_ACCOUNTING_CLASS_CODE
9578 ,p_NEW_ACCOUNTING_CLASS_CODE => l_instance_hist_rec.NEW_ACCOUNTING_CLASS_CODE
9579 ,p_OLD_INSTANCE_CONDITION_ID => FND_API.G_MISS_NUM
9580 ,p_NEW_INSTANCE_CONDITION_ID => FND_API.G_MISS_NUM
9581 ,p_OLD_INSTANCE_STATUS_ID => l_instance_hist_rec.OLD_INSTANCE_STATUS_ID
9582 ,p_NEW_INSTANCE_STATUS_ID => l_instance_hist_rec.NEW_INSTANCE_STATUS_ID
9583 ,p_OLD_CUSTOMER_VIEW_FLAG => FND_API.G_MISS_CHAR
9584 ,p_NEW_CUSTOMER_VIEW_FLAG => FND_API.G_MISS_CHAR
9585 ,p_OLD_MERCHANT_VIEW_FLAG => FND_API.G_MISS_CHAR
9586 ,p_NEW_MERCHANT_VIEW_FLAG => FND_API.G_MISS_CHAR
9587 ,p_OLD_SELLABLE_FLAG => FND_API.G_MISS_CHAR
9588 ,p_NEW_SELLABLE_FLAG => FND_API.G_MISS_CHAR
9589 ,p_OLD_SYSTEM_ID => l_instance_hist_rec.OLD_SYSTEM_ID
9590 ,p_NEW_SYSTEM_ID => l_instance_hist_rec.NEW_SYSTEM_ID
9591 ,p_OLD_INSTANCE_TYPE_CODE => FND_API.G_MISS_CHAR
9592 ,p_NEW_INSTANCE_TYPE_CODE => FND_API.G_MISS_CHAR
9593 ,p_OLD_ACTIVE_START_DATE => FND_API.G_MISS_DATE
9594 ,p_NEW_ACTIVE_START_DATE => FND_API.G_MISS_DATE
9595 ,p_OLD_ACTIVE_END_DATE => l_instance_hist_rec.OLD_ACTIVE_END_DATE
9596 ,p_NEW_ACTIVE_END_DATE => l_instance_hist_rec.NEW_ACTIVE_END_DATE
9597 ,p_OLD_LOCATION_TYPE_CODE => l_instance_hist_rec.OLD_LOCATION_TYPE_CODE
9598 ,p_NEW_LOCATION_TYPE_CODE => l_instance_hist_rec.NEW_LOCATION_TYPE_CODE
9599 ,p_OLD_LOCATION_ID => l_instance_hist_rec.OLD_LOCATION_ID
9600 ,p_NEW_LOCATION_ID => l_instance_hist_rec.NEW_LOCATION_ID
9601 ,p_OLD_INV_ORGANIZATION_ID => l_instance_hist_rec.OLD_INV_ORGANIZATION_ID
9602 ,p_NEW_INV_ORGANIZATION_ID => l_instance_hist_rec.NEW_INV_ORGANIZATION_ID
9603 ,p_OLD_INV_SUBINVENTORY_NAME => l_instance_hist_rec.OLD_INV_SUBINVENTORY_NAME
9604 ,p_NEW_INV_SUBINVENTORY_NAME => l_instance_hist_rec.NEW_INV_SUBINVENTORY_NAME
9605 ,p_OLD_INV_LOCATOR_ID => l_instance_hist_rec.OLD_INV_LOCATOR_ID
9606 ,p_NEW_INV_LOCATOR_ID => l_instance_hist_rec.NEW_INV_LOCATOR_ID
9607 ,p_OLD_PA_PROJECT_ID => l_instance_hist_rec.OLD_PA_PROJECT_ID
9608 ,p_NEW_PA_PROJECT_ID => l_instance_hist_rec.NEW_PA_PROJECT_ID
9609 ,p_OLD_PA_PROJECT_TASK_ID => l_instance_hist_rec.OLD_PA_PROJECT_TASK_ID
9610 ,p_NEW_PA_PROJECT_TASK_ID => l_instance_hist_rec.NEW_PA_PROJECT_TASK_ID
9611 ,p_OLD_IN_TRANSIT_ORDER_LINE_ID => l_instance_hist_rec.OLD_IN_TRANSIT_ORDER_LINE_ID
9612 ,p_NEW_IN_TRANSIT_ORDER_LINE_ID => l_instance_hist_rec.NEW_IN_TRANSIT_ORDER_LINE_ID
9613 ,p_OLD_WIP_JOB_ID => l_instance_hist_rec.OLD_WIP_JOB_ID
9614 ,p_NEW_WIP_JOB_ID => l_instance_hist_rec.NEW_WIP_JOB_ID
9615 ,p_OLD_PO_ORDER_LINE_ID => l_instance_hist_rec.OLD_PO_ORDER_LINE_ID
9616 ,p_NEW_PO_ORDER_LINE_ID => l_instance_hist_rec.NEW_PO_ORDER_LINE_ID
9617 ,p_OLD_COMPLETENESS_FLAG => FND_API.G_MISS_CHAR
9618 ,p_NEW_COMPLETENESS_FLAG => FND_API.G_MISS_CHAR
9619 ,p_FULL_DUMP_FLAG => 'N'
9620 ,p_NEW_CONTEXT => FND_API.G_MISS_CHAR
9621 ,P_OLD_CONTEXT => FND_API.G_MISS_CHAR
9622 ,p_NEW_ATTRIBUTE1 => FND_API.G_MISS_CHAR
9623 ,p_OLD_ATTRIBUTE1 => FND_API.G_MISS_CHAR
9624 ,p_NEW_ATTRIBUTE2 => FND_API.G_MISS_CHAR
9625 ,p_OLD_ATTRIBUTE2 => FND_API.G_MISS_CHAR
9626 ,p_NEW_ATTRIBUTE3 => FND_API.G_MISS_CHAR
9627 ,p_OLD_ATTRIBUTE3 => FND_API.G_MISS_CHAR
9628 ,p_NEW_ATTRIBUTE4 => FND_API.G_MISS_CHAR
9629 ,p_OLD_ATTRIBUTE4 => FND_API.G_MISS_CHAR
9630 ,p_NEW_ATTRIBUTE5 => FND_API.G_MISS_CHAR
9631 ,p_OLD_ATTRIBUTE5 => FND_API.G_MISS_CHAR
9632 ,p_NEW_ATTRIBUTE6 => FND_API.G_MISS_CHAR
9633 ,p_OLD_ATTRIBUTE6 => FND_API.G_MISS_CHAR
9634 ,p_NEW_ATTRIBUTE7 => FND_API.G_MISS_CHAR
9635 ,p_OLD_ATTRIBUTE7 => FND_API.G_MISS_CHAR
9636 ,p_NEW_ATTRIBUTE8 => FND_API.G_MISS_CHAR
9637 ,p_OLD_ATTRIBUTE8 => FND_API.G_MISS_CHAR
9638 ,p_NEW_ATTRIBUTE9 => FND_API.G_MISS_CHAR
9639 ,p_OLD_ATTRIBUTE9 => FND_API.G_MISS_CHAR
9640 ,p_NEW_ATTRIBUTE10 => FND_API.G_MISS_CHAR
9641 ,p_OLD_ATTRIBUTE10 => FND_API.G_MISS_CHAR
9642 ,p_NEW_ATTRIBUTE11 => FND_API.G_MISS_CHAR
9643 ,p_OLD_ATTRIBUTE11 => FND_API.G_MISS_CHAR
9644 ,p_NEW_ATTRIBUTE12 => FND_API.G_MISS_CHAR
9645 ,p_OLD_ATTRIBUTE12 => FND_API.G_MISS_CHAR
9646 ,p_NEW_ATTRIBUTE13 => FND_API.G_MISS_CHAR
9647 ,p_OLD_ATTRIBUTE13 => FND_API.G_MISS_CHAR
9648 ,p_NEW_ATTRIBUTE14 => FND_API.G_MISS_CHAR
9649 ,p_OLD_ATTRIBUTE14 => FND_API.G_MISS_CHAR
9650 ,p_NEW_ATTRIBUTE15 => FND_API.G_MISS_CHAR
9651 ,p_OLD_ATTRIBUTE15 => FND_API.G_MISS_CHAR
9652 ,p_CREATED_BY => FND_GLOBAL.USER_ID
9653 ,p_CREATION_DATE => SYSDATE
9654 ,p_LAST_UPDATED_BY => FND_GLOBAL.USER_ID
9655 ,p_LAST_UPDATE_DATE => SYSDATE
9656 ,p_LAST_UPDATE_LOGIN => FND_GLOBAL.CONC_LOGIN_ID
9657 ,p_OBJECT_VERSION_NUMBER => 1
9658 ,p_OLD_INST_LOC_TYPE_CODE => l_instance_hist_rec.OLD_INSTALL_LOCATION_TYPE_CODE
9659 ,p_NEW_INST_LOC_TYPE_CODE => l_instance_hist_rec.NEW_INSTALL_LOCATION_TYPE_CODE
9660 ,p_OLD_INST_LOC_ID => l_instance_hist_rec.OLD_INSTALL_LOCATION_ID
9661 ,p_NEW_INST_LOC_ID => l_instance_hist_rec.NEW_INSTALL_LOCATION_ID
9662 ,p_OLD_INST_USAGE_CODE => FND_API.G_MISS_CHAR
9663 ,p_NEW_INST_USAGE_CODE => FND_API.G_MISS_CHAR
9664 ,p_OLD_LAST_VLD_ORGANIZATION_ID => FND_API.G_MISS_NUM
9665 ,p_NEW_LAST_VLD_ORGANIZATION_ID => FND_API.G_MISS_NUM
9666 ,p_OLD_CONFIG_INST_REV_NUM => FND_API.G_MISS_NUM
9667 ,p_NEW_CONFIG_INST_REV_NUM => FND_API.G_MISS_NUM
9668 ,p_OLD_CONFIG_VALID_STATUS => FND_API.G_MISS_CHAR
9669 ,p_NEW_CONFIG_VALID_STATUS => FND_API.G_MISS_CHAR
9670 ,p_OLD_INSTANCE_DESCRIPTION => FND_API.G_MISS_CHAR
9671 ,p_NEW_INSTANCE_DESCRIPTION => FND_API.G_MISS_CHAR
9672 ,p_OLD_INSTALL_DATE => l_instance_hist_rec.OLD_INSTALL_DATE
9673 ,p_NEW_INSTALL_DATE => l_instance_hist_rec.NEW_INSTALL_DATE
9674 ,p_OLD_RETURN_BY_DATE => FND_API.G_MISS_DATE
9675 ,p_NEW_RETURN_BY_DATE => FND_API.G_MISS_DATE
9676 ,p_OLD_ACTUAL_RETURN_DATE => FND_API.G_MISS_DATE
9677 ,p_NEW_ACTUAL_RETURN_DATE => FND_API.G_MISS_DATE
9678 ,p_OLD_LAST_OE_AGREEMENT_ID => l_instance_hist_rec.OLD_LAST_OE_AGREEMENT_ID
9679 ,p_NEW_LAST_OE_AGREEMENT_ID => l_instance_hist_rec.NEW_LAST_OE_AGREEMENT_ID
9680 ,p_OLD_LAST_OE_ORDER_LINE_ID => l_instance_hist_rec.OLD_LAST_OE_ORDER_LINE_ID
9681 ,p_NEW_LAST_OE_ORDER_LINE_ID => l_instance_hist_rec.NEW_LAST_OE_ORDER_LINE_ID
9682 ,p_OLD_LAST_OE_RMA_LINE_ID => l_instance_hist_rec.OLD_LAST_OE_RMA_LINE_ID
9683 ,p_NEW_LAST_OE_RMA_LINE_ID => l_instance_hist_rec.NEW_LAST_OE_RMA_LINE_ID
9684 ,p_OLD_LAST_WIP_JOB_ID => l_instance_hist_rec.OLD_LAST_WIP_JOB_ID
9685 ,p_NEW_LAST_WIP_JOB_ID => l_instance_hist_rec.NEW_LAST_WIP_JOB_ID
9686 ,p_OLD_LAST_PO_PO_LINE_ID => l_instance_hist_rec.OLD_LAST_PO_PO_LINE_ID
9687 ,p_NEW_LAST_PO_PO_LINE_ID => l_instance_hist_rec.NEW_LAST_PO_PO_LINE_ID
9688 ,p_OLD_LAST_PA_PROJECT_ID => l_instance_hist_rec.OLD_LAST_PA_PROJECT_ID
9689 ,p_NEW_LAST_PA_PROJECT_ID => l_instance_hist_rec.NEW_LAST_PA_PROJECT_ID
9690 ,p_OLD_LAST_PA_TASK_ID => l_instance_hist_rec.OLD_LAST_PA_TASK_ID
9691 ,p_NEW_LAST_PA_TASK_ID => l_instance_hist_rec.NEW_LAST_PA_TASK_ID
9692 ,p_OLD_LAST_TXN_LINE_DETAIL_ID => l_instance_hist_rec.OLD_LAST_TXN_LINE_DETAIL_ID
9693 ,p_NEW_LAST_TXN_LINE_DETAIL_ID => l_instance_hist_rec.NEW_LAST_TXN_LINE_DETAIL_ID
9694 ,p_OLD_LAST_OE_PO_NUMBER => l_instance_hist_rec.OLD_LAST_OE_PO_NUMBER
9695 ,p_NEW_LAST_OE_PO_NUMBER => l_instance_hist_rec.NEW_LAST_OE_PO_NUMBER
9696 --start of parameters addition for eam integration--
9697 ,p_OLD_NETWORK_ASSET_FLAG => FND_API.G_MISS_CHAR
9698 ,p_NEW_NETWORK_ASSET_FLAG => FND_API.G_MISS_CHAR
9699 ,p_OLD_MAINTAINABLE_FLAG => FND_API.G_MISS_CHAR
9700 ,p_NEW_MAINTAINABLE_FLAG => FND_API.G_MISS_CHAR
9701 ,p_OLD_PN_LOCATION_ID => FND_API.G_MISS_NUM
9702 ,p_NEW_PN_LOCATION_ID => FND_API.G_MISS_NUM
9703 ,p_OLD_ASSET_CRITICALITY_CODE => FND_API.G_MISS_CHAR
9704 ,p_NEW_ASSET_CRITICALITY_CODE => FND_API.G_MISS_CHAR
9705 ,p_OLD_CATEGORY_ID => FND_API.G_MISS_NUM
9706 ,p_NEW_CATEGORY_ID => FND_API.G_MISS_NUM
9707 ,p_OLD_EQUIPMENT_GEN_OBJECT_ID => FND_API.G_MISS_NUM
9708 ,p_NEW_EQUIPMENT_GEN_OBJECT_ID => FND_API.G_MISS_NUM
9709 ,p_OLD_INSTANTIATION_FLAG => FND_API.G_MISS_CHAR
9710 ,p_NEW_INSTANTIATION_FLAG => FND_API.G_MISS_CHAR
9711 ,p_OLD_LINEAR_LOCATION_ID => FND_API.G_MISS_NUM
9712 ,p_NEW_LINEAR_LOCATION_ID => FND_API.G_MISS_NUM
9713 ,p_OLD_OPERATIONAL_LOG_FLAG => FND_API.G_MISS_CHAR
9714 ,p_NEW_OPERATIONAL_LOG_FLAG => FND_API.G_MISS_CHAR
9715 ,p_OLD_CHECKIN_STATUS => FND_API.G_MISS_NUM
9716 ,p_NEW_CHECKIN_STATUS => FND_API.G_MISS_NUM
9717 ,p_OLD_SUP_WARRANTY_EXP_DATE => FND_API.G_MISS_DATE
9718 ,p_NEW_SUP_WARRANTY_EXP_DATE => FND_API.G_MISS_DATE
9719 ,p_OLD_ATTRIBUTE16 => FND_API.G_MISS_CHAR
9720 ,p_NEW_ATTRIBUTE16 => FND_API.G_MISS_CHAR
9721 ,p_OLD_ATTRIBUTE17 => FND_API.G_MISS_CHAR
9722 ,p_NEW_ATTRIBUTE17 => FND_API.G_MISS_CHAR
9723 ,p_OLD_ATTRIBUTE18 => FND_API.G_MISS_CHAR
9724 ,p_NEW_ATTRIBUTE18 => FND_API.G_MISS_CHAR
9725 ,p_OLD_ATTRIBUTE19 => FND_API.G_MISS_CHAR
9726 ,p_NEW_ATTRIBUTE19 => FND_API.G_MISS_CHAR
9727 ,p_OLD_ATTRIBUTE20 => FND_API.G_MISS_CHAR
9728 ,p_NEW_ATTRIBUTE20 => FND_API.G_MISS_CHAR
9729 ,p_OLD_ATTRIBUTE21 => FND_API.G_MISS_CHAR
9730 ,p_NEW_ATTRIBUTE21 => FND_API.G_MISS_CHAR
9731 ,p_OLD_ATTRIBUTE22 => FND_API.G_MISS_CHAR
9732 ,p_NEW_ATTRIBUTE22 => FND_API.G_MISS_CHAR
9733 ,p_OLD_ATTRIBUTE23 => FND_API.G_MISS_CHAR
9734 ,p_NEW_ATTRIBUTE23 => FND_API.G_MISS_CHAR
9735 ,p_OLD_ATTRIBUTE24 => FND_API.G_MISS_CHAR
9736 ,p_NEW_ATTRIBUTE24 => FND_API.G_MISS_CHAR
9737 ,p_OLD_ATTRIBUTE25 => FND_API.G_MISS_CHAR
9738 ,p_NEW_ATTRIBUTE25 => FND_API.G_MISS_CHAR
9739 ,p_OLD_ATTRIBUTE26 => FND_API.G_MISS_CHAR
9740 ,p_NEW_ATTRIBUTE26 => FND_API.G_MISS_CHAR
9741 ,p_OLD_ATTRIBUTE27 => FND_API.G_MISS_CHAR
9742 ,p_NEW_ATTRIBUTE27 => FND_API.G_MISS_CHAR
9743 ,p_OLD_ATTRIBUTE28 => FND_API.G_MISS_CHAR
9744 ,p_NEW_ATTRIBUTE28 => FND_API.G_MISS_CHAR
9745 ,p_OLD_ATTRIBUTE29 => FND_API.G_MISS_CHAR
9746 ,p_NEW_ATTRIBUTE29 => FND_API.G_MISS_CHAR
9747 ,p_OLD_ATTRIBUTE30 => FND_API.G_MISS_CHAR
9748 ,p_NEW_ATTRIBUTE30 => FND_API.G_MISS_CHAR
9749 --end of parameters addition for eam integration--
9750 -- Addition of columns for FA Integration
9751 ,p_OLD_PAYABLES_UNIT_PRICE => FND_API.G_MISS_NUM
9752 ,p_NEW_PAYABLES_UNIT_PRICE => FND_API.G_MISS_NUM
9753 ,p_OLD_PAYABLES_CURRENCY_CODE => FND_API.G_MISS_CHAR
9754 ,p_NEW_PAYABLES_CURRENCY_CODE => FND_API.G_MISS_CHAR
9755 ,p_OLD_PURCHASE_UNIT_PRICE => FND_API.G_MISS_NUM
9756 ,p_NEW_PURCHASE_UNIT_PRICE => FND_API.G_MISS_NUM
9757 ,p_OLD_PURCHASE_CURRENCY_CODE => FND_API.G_MISS_CHAR
9758 ,p_NEW_PURCHASE_CURRENCY_CODE => FND_API.G_MISS_CHAR
9759 ,p_OLD_SALES_UNIT_PRICE => FND_API.G_MISS_NUM
9760 ,p_NEW_SALES_UNIT_PRICE => FND_API.G_MISS_NUM
9761 ,p_OLD_SALES_CURRENCY_CODE => FND_API.G_MISS_CHAR
9762 ,p_NEW_SALES_CURRENCY_CODE => FND_API.G_MISS_CHAR
9763 ,p_OLD_OPERATIONAL_STATUS_CODE => l_instance_hist_rec.old_operational_status_code
9764 ,p_NEW_OPERATIONAL_STATUS_CODE => l_instance_hist_rec.new_operational_status_code
9765 -- End addition of columns for FA Integration
9766 );
9767 End of insert...Bug:5615169 */
9768
9769 --Start of: Added for Bug:5615169
9770 --Insert the data into bulk table
9771 l_ciih_blk_ins_cnt := l_ciih_blk_ins_cnt + 1;
9772 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).instance_history_id := l_csi_item_instance_h_id;
9773 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).instance_id := l_rel_tbl(j).subject_id;
9774 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).transaction_id := p_txn_rec.TRANSACTION_ID;
9775 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_instance_number := l_curr_instance_rec.INSTANCE_NUMBER;
9776 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_instance_number := p_instance_rec.INSTANCE_NUMBER;
9777 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_external_reference := l_curr_instance_rec.EXTERNAL_REFERENCE;
9778 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_external_reference := p_instance_rec.EXTERNAL_REFERENCE;
9779 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_inventory_item_id := l_curr_instance_rec.INVENTORY_ITEM_ID;
9780 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_inventory_item_id := p_instance_rec.INVENTORY_ITEM_ID;
9781 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_inventory_revision := l_curr_instance_rec.INVENTORY_REVISION;
9782 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_inventory_revision := p_instance_rec.INVENTORY_REVISION;
9783 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_inv_master_org_id := l_curr_instance_rec.INV_MASTER_ORGANIZATION_ID;
9784 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_inv_master_org_id := p_instance_rec.INV_MASTER_ORGANIZATION_ID;
9785 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_serial_number := l_curr_instance_rec.SERIAL_NUMBER;
9786 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_serial_number := p_instance_rec.SERIAL_NUMBER;
9787 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_mfg_serial_number_flag := l_curr_instance_rec.MFG_SERIAL_NUMBER_FLAG;
9788 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_mfg_serial_number_flag := p_instance_rec.MFG_SERIAL_NUMBER_FLAG;
9789 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_lot_number := l_curr_instance_rec.LOT_NUMBER;
9790 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_lot_number := p_instance_rec.LOT_NUMBER;
9791 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_quantity := l_curr_instance_rec.QUANTITY;
9792 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_quantity := p_instance_rec.QUANTITY;
9793 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_unit_of_measure := l_curr_instance_rec.UNIT_OF_MEASURE;
9794 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_unit_of_measure := p_instance_rec.UNIT_OF_MEASURE;
9795 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_accounting_class_code := l_curr_instance_rec.ACCOUNTING_CLASS_CODE;
9796 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_accounting_class_code := p_instance_rec.ACCOUNTING_CLASS_CODE;
9797 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_instance_condition_id := l_curr_instance_rec.INSTANCE_CONDITION_ID;
9798 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_instance_condition_id := p_instance_rec.INSTANCE_CONDITION_ID;
9799 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_instance_status_id := l_curr_instance_rec.INSTANCE_STATUS_ID;
9800 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;
9801 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_customer_view_flag := l_curr_instance_rec.CUSTOMER_VIEW_FLAG;
9802 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_customer_view_flag := p_instance_rec.CUSTOMER_VIEW_FLAG;
9803 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_merchant_view_flag := l_curr_instance_rec.MERCHANT_VIEW_FLAG;
9804 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_merchant_view_flag := p_instance_rec.MERCHANT_VIEW_FLAG;
9805 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_sellable_flag := l_curr_instance_rec.SELLABLE_FLAG;
9806 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_sellable_flag := p_instance_rec.SELLABLE_FLAG;
9807 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_system_id := l_curr_instance_rec.SYSTEM_ID;
9808 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_system_id := l_system_id;
9809 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_instance_type_code := l_curr_instance_rec.INSTANCE_TYPE_CODE;
9810 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_instance_type_code := p_instance_rec.INSTANCE_TYPE_CODE;
9811 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_active_start_date := l_curr_instance_rec.ACTIVE_START_DATE;
9812 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_active_start_date := p_instance_rec.ACTIVE_START_DATE;
9813 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_active_end_date := l_curr_instance_rec.ACTIVE_END_DATE;
9814 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_active_end_date := p_instance_rec.ACTIVE_END_DATE;
9815 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_location_type_code := l_curr_instance_rec.LOCATION_TYPE_CODE;
9816 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_location_type_code := p_instance_rec.LOCATION_TYPE_CODE;
9817 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_location_id := l_curr_instance_rec.LOCATION_ID;
9818 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_location_id := p_instance_rec.LOCATION_ID;
9819 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_inv_organization_id := l_curr_instance_rec.INV_ORGANIZATION_ID;
9820 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_inv_organization_id := p_instance_rec.INV_ORGANIZATION_ID;
9821 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_inv_subinventory_name := l_curr_instance_rec.INV_SUBINVENTORY_NAME;
9822 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_inv_subinventory_name := p_instance_rec.INV_SUBINVENTORY_NAME;
9823 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_inv_locator_id := l_curr_instance_rec.INV_LOCATOR_ID;
9824 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_inv_locator_id := p_instance_rec.INV_LOCATOR_ID;
9825 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_pa_project_id := l_curr_instance_rec.PA_PROJECT_ID;
9826 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_pa_project_id := p_instance_rec.PA_PROJECT_ID;
9827 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_pa_project_task_id := l_curr_instance_rec.PA_PROJECT_TASK_ID;
9828 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_pa_project_task_id := p_instance_rec.PA_PROJECT_TASK_ID;
9829 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;
9830 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;
9831 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_wip_job_id := l_curr_instance_rec.WIP_JOB_ID;
9832 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_wip_job_id := p_instance_rec.WIP_JOB_ID;
9833 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_po_order_line_id := l_curr_instance_rec.PO_ORDER_LINE_ID;
9834 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_po_order_line_id := p_instance_rec.PO_ORDER_LINE_ID;
9835 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_completeness_flag := l_curr_instance_rec.COMPLETENESS_FLAG;
9836 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_completeness_flag := p_instance_rec.COMPLETENESS_FLAG;
9837 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).full_dump_flag := 'Y';
9838 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_context := p_instance_rec.CONTEXT;
9839 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_context := l_curr_instance_rec.CONTEXT;
9840 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute1 := p_instance_rec.ATTRIBUTE1;
9841 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute1 := l_curr_instance_rec.ATTRIBUTE1;
9842 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute2 := p_instance_rec.ATTRIBUTE2;
9843 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute2 := l_curr_instance_rec.ATTRIBUTE2;
9844 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute3 := p_instance_rec.ATTRIBUTE3;
9845 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute3 := l_curr_instance_rec.ATTRIBUTE3;
9846 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute4 := p_instance_rec.ATTRIBUTE4;
9847 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute4 := l_curr_instance_rec.ATTRIBUTE4;
9848 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute5 := p_instance_rec.ATTRIBUTE5;
9849 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute5 := l_curr_instance_rec.ATTRIBUTE5;
9850 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute6 := p_instance_rec.ATTRIBUTE6;
9851 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute6 := l_curr_instance_rec.ATTRIBUTE6;
9852 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute7 := p_instance_rec.ATTRIBUTE7;
9853 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute7 := l_curr_instance_rec.ATTRIBUTE7;
9854 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute8 := p_instance_rec.ATTRIBUTE8;
9855 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute8 := l_curr_instance_rec.ATTRIBUTE8;
9856 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute9 := p_instance_rec.ATTRIBUTE9;
9857 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute9 := l_curr_instance_rec.ATTRIBUTE9;
9858 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute10 := p_instance_rec.ATTRIBUTE10;
9859 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute10 := l_curr_instance_rec.ATTRIBUTE10;
9860 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute11 := p_instance_rec.ATTRIBUTE11;
9861 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute11 := l_curr_instance_rec.ATTRIBUTE11;
9862 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute12 := p_instance_rec.ATTRIBUTE12;
9863 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute12 := l_curr_instance_rec.ATTRIBUTE12;
9864 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute13 := p_instance_rec.ATTRIBUTE13;
9865 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute13 := l_curr_instance_rec.ATTRIBUTE13;
9866 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute14 := p_instance_rec.ATTRIBUTE14;
9867 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute14 := l_curr_instance_rec.ATTRIBUTE14;
9868 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute15 := p_instance_rec.ATTRIBUTE15;
9869 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute15 := l_curr_instance_rec.ATTRIBUTE15;
9870 -- l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).created_by := FND_GLOBAL.USER_ID;
9871 -- l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).creation_date := SYSDATE;
9872 -- l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).last_updated_by := FND_GLOBAL.USER_ID;
9873 -- l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).last_update_date := SYSDATE;
9874 -- l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).last_update_login := FND_GLOBAL.CONC_LOGIN_ID;
9875 -- l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).object_version_number := 1;
9876 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_install_location_type_code := l_curr_instance_rec.INSTALL_LOCATION_TYPE_CODE;
9877 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_install_location_type_code := p_instance_rec.INSTALL_LOCATION_TYPE_CODE;
9878 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_install_location_id := l_curr_instance_rec.INSTALL_LOCATION_ID;
9879 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_install_location_id := p_instance_rec.INSTALL_LOCATION_ID;
9880 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_instance_usage_code := l_curr_instance_rec.INSTANCE_USAGE_CODE;
9881 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_instance_usage_code := p_instance_rec.INSTANCE_USAGE_CODE;
9882 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_last_vld_organization_id := fnd_api.g_miss_num;
9883 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_last_vld_organization_id := fnd_api.g_miss_num;
9884 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_config_inst_rev_num := l_curr_instance_rec.CONFIG_INST_REV_NUM;
9885 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_config_inst_rev_num := p_instance_rec.CONFIG_INST_REV_NUM;
9886 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_config_valid_status := l_curr_instance_rec.CONFIG_VALID_STATUS;
9887 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_config_valid_status := p_instance_rec.CONFIG_VALID_STATUS;
9888 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_instance_description := l_curr_instance_rec.INSTANCE_DESCRIPTION;
9889 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_instance_description := p_instance_rec.INSTANCE_DESCRIPTION;
9890 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_install_date := l_curr_instance_rec.INSTALL_DATE;
9891 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_install_date := l_install_date;
9892 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_return_by_date := l_curr_instance_rec.RETURN_BY_DATE;
9893 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_return_by_date := p_instance_rec.RETURN_BY_DATE;
9894 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_actual_return_date := l_curr_instance_rec.ACTUAL_RETURN_DATE;
9895 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_actual_return_date := p_instance_rec.ACTUAL_RETURN_DATE;
9896 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_last_oe_agreement_id := l_curr_instance_rec.LAST_OE_AGREEMENT_ID;
9897 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_last_oe_agreement_id := p_instance_rec.LAST_OE_AGREEMENT_ID;
9898 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;
9899 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;
9900 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;
9901 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;
9902 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_last_wip_job_id := l_curr_instance_rec.LAST_WIP_JOB_ID;
9903 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_last_wip_job_id := p_instance_rec.LAST_WIP_JOB_ID;
9904 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;
9905 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;
9906 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_last_pa_project_id := l_curr_instance_rec.LAST_PA_PROJECT_ID;
9907 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_last_pa_project_id := p_instance_rec.LAST_PA_PROJECT_ID;
9908 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_last_pa_task_id := l_curr_instance_rec.LAST_PA_TASK_ID;
9909 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_last_pa_task_id := p_instance_rec.LAST_PA_TASK_ID;
9910 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;
9911 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;
9912 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_last_oe_po_number := l_curr_instance_rec.LAST_OE_PO_NUMBER;
9913 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_last_oe_po_number := p_instance_rec.LAST_OE_PO_NUMBER;
9914 -- l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_capitalization_status := l_curr_instance_rec.CAPITALIZATION_STATUS;
9915 -- l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_capitalization_status := p_instance_rec.CAPITALIZATION_STATUS;
9916 --Start of parameters addition for eam integration
9917 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_network_asset_flag := l_curr_instance_rec.NETWORK_ASSET_FLAG;
9918 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_network_asset_flag := p_instance_rec.NETWORK_ASSET_FLAG;
9919 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_maintainable_flag := l_curr_instance_rec.MAINTAINABLE_FLAG;
9920 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_maintainable_flag := p_instance_rec.MAINTAINABLE_FLAG;
9921 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_pn_location_id := l_curr_instance_rec.PN_LOCATION_ID;
9922 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_pn_location_id := p_instance_rec.PN_LOCATION_ID;
9923 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_asset_criticality_code := l_curr_instance_rec.ASSET_CRITICALITY_CODE;
9924 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_asset_criticality_code := p_instance_rec.ASSET_CRITICALITY_CODE;
9925 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_category_id := l_curr_instance_rec.CATEGORY_ID;
9926 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_category_id := p_instance_rec.CATEGORY_ID;
9927 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_equipment_gen_object_id := l_curr_instance_rec.EQUIPMENT_GEN_OBJECT_ID;
9928 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_equipment_gen_object_id := p_instance_rec.EQUIPMENT_GEN_OBJECT_ID;
9929 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_instantiation_flag := l_curr_instance_rec.INSTANTIATION_FLAG;
9930 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_instantiation_flag := p_instance_rec.INSTANTIATION_FLAG;
9931 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_linear_location_id := l_curr_instance_rec.LINEAR_LOCATION_ID;
9932 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_linear_location_id := p_instance_rec.LINEAR_LOCATION_ID;
9933 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_operational_log_flag := l_curr_instance_rec.OPERATIONAL_LOG_FLAG;
9934 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_operational_log_flag := p_instance_rec.OPERATIONAL_LOG_FLAG;
9935 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_checkin_status := l_curr_instance_rec.CHECKIN_STATUS;
9936 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_checkin_status := p_instance_rec.CHECKIN_STATUS;
9937 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_supplier_warranty_exp_date := l_curr_instance_rec.SUPPLIER_WARRANTY_EXP_DATE;
9938 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_supplier_warranty_exp_date := p_instance_rec.SUPPLIER_WARRANTY_EXP_DATE;
9939 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute16 := l_curr_instance_rec.ATTRIBUTE16;
9940 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute16 := p_instance_rec.ATTRIBUTE16;
9941 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute17 := l_curr_instance_rec.ATTRIBUTE17;
9942 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute17 := p_instance_rec.ATTRIBUTE17;
9943 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute18 := l_curr_instance_rec.ATTRIBUTE18;
9944 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute18 := p_instance_rec.ATTRIBUTE18;
9945 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute19 := l_curr_instance_rec.ATTRIBUTE19;
9946 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute19 := p_instance_rec.ATTRIBUTE19;
9947 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute20 := l_curr_instance_rec.ATTRIBUTE20;
9948 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute20 := p_instance_rec.ATTRIBUTE20;
9949 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute21 := l_curr_instance_rec.ATTRIBUTE21;
9950 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute21 := p_instance_rec.ATTRIBUTE21;
9951 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute22 := l_curr_instance_rec.ATTRIBUTE22;
9952 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute22 := p_instance_rec.ATTRIBUTE22;
9953 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute23 := l_curr_instance_rec.ATTRIBUTE23;
9954 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute23 := p_instance_rec.ATTRIBUTE23;
9955 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute24 := l_curr_instance_rec.ATTRIBUTE24;
9956 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute24 := p_instance_rec.ATTRIBUTE24;
9957 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute25 := l_curr_instance_rec.ATTRIBUTE25;
9958 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute25 := p_instance_rec.ATTRIBUTE25;
9959 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute26 := l_curr_instance_rec.ATTRIBUTE26;
9960 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute26 := p_instance_rec.ATTRIBUTE26;
9961 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute27 := l_curr_instance_rec.ATTRIBUTE27;
9962 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute27 := p_instance_rec.ATTRIBUTE27;
9963 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute28 := l_curr_instance_rec.ATTRIBUTE28;
9964 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute28 := p_instance_rec.ATTRIBUTE28;
9965 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute29 := l_curr_instance_rec.ATTRIBUTE29;
9966 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute29 := p_instance_rec.ATTRIBUTE29;
9967 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_attribute30 := l_curr_instance_rec.ATTRIBUTE30;
9968 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_attribute30 := p_instance_rec.ATTRIBUTE30;
9969 --End of parameters addition for eam integration--
9970 --Addition of columns for FA Integration
9971 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_payables_unit_price := l_curr_instance_rec.PAYABLES_UNIT_PRICE;
9972 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_payables_unit_price := p_instance_rec.PAYABLES_UNIT_PRICE;
9973 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_payables_currency_code := l_curr_instance_rec.PAYABLES_CURRENCY_CODE;
9974 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_payables_currency_code := p_instance_rec.PAYABLES_CURRENCY_CODE;
9975 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_purchase_unit_price := l_curr_instance_rec.PURCHASE_UNIT_PRICE;
9976 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_purchase_unit_price := p_instance_rec.PURCHASE_UNIT_PRICE;
9977 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_purchase_currency_code := l_curr_instance_rec.PURCHASE_CURRENCY_CODE;
9978 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_purchase_currency_code := p_instance_rec.PURCHASE_CURRENCY_CODE;
9979 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_sales_unit_price := l_curr_instance_rec.SALES_UNIT_PRICE;
9980 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_sales_unit_price := p_instance_rec.SALES_UNIT_PRICE;
9981 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_sales_currency_code := l_curr_instance_rec.SALES_CURRENCY_CODE;
9982 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_sales_currency_code := p_instance_rec.SALES_CURRENCY_CODE;
9983 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_operational_status_code := l_curr_instance_rec.OPERATIONAL_STATUS_CODE;
9984 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_operational_status_code := p_instance_rec.OPERATIONAL_STATUS_CODE;
9985 --End addition of columns for FA Integration
9986 --End of Insert into bulk table
9987 --End of: Added for Bug:5615169
9988 -- Begin Add Code for Siebel Genesis Project
9989 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).old_source_code := fnd_api.g_miss_char;
9990 l_inst_hist_tbl_blk_ins(l_ciih_blk_ins_cnt).new_source_code := fnd_api.g_miss_char;
9991 -- End Add Code for Siebel Genesis Project
9992 END IF;
9993 END;
9994 -- End of modifications for Bug#2547034 on 09/20/02 - rtalluri
9995 --
9996 -- Opening New Cursor to retrieve Child Id records Details
9997 OPEN new_instance_rec(l_rel_tbl(j).subject_id);
9998 FETCH new_instance_rec INTO l_new_instance_rec;
9999 IF new_instance_rec%NOTFOUND THEN
10000 FND_MESSAGE.Set_Name('CSI', 'CSI_API_RECORD_LOCKED');
10001 FND_MSG_PUB.ADD;
10002 RAISE FND_API.G_EXC_ERROR;
10003 END IF;
10004 CLOSE new_instance_rec;
10005 --
10006 l_party_id := NULL;
10007 Begin
10008 select party_id
10009 into l_party_id
10010 from CSI_I_PARTIES
10011 where instance_id = l_rel_tbl(j).subject_id
10012 and relationship_type_code = 'OWNER';
10013 Exception
10014 when no_data_found then
10015 l_party_id := null;
10016 End;
10017 -- p_instance_rec.call_contracts would've been set to FLASE whenever ownership is changed from
10018 -- external to internal or Internal to External. Since contracts call will be made
10019 -- at account update level, we are supressing the call here.
10020 IF l_party_id IS NOT NULL AND
10021 l_party_id <> l_internal_party_id AND
10022 p_instance_rec.call_contracts <> FND_API.G_FALSE THEN
10023 IF l_curr_instance_rec.instance_status_id <> l_new_instance_rec.instance_status_id AND
10024 l_termination_status AND
10025 p_instance_rec.call_contracts <> FND_API.G_FALSE THEN
10026 IF p_txn_rec.transaction_type_id in (53,54) THEN
10027 l_oks_txn_type := 'RET';
10028 ELSE
10029 l_oks_txn_type := 'TRM';
10030 END IF;
10031 --
10032 IF p_txn_rec.transaction_type_id <> 7 -- Added for bug 3973706
10033 THEN
10034 csi_item_instance_pvt.Call_to_Contracts
10035 ( p_transaction_type => l_oks_txn_type
10036 ,p_instance_id => l_rel_tbl(j).SUBJECT_ID
10037 ,p_new_instance_id => NULL
10038 ,p_vld_org_id => l_curr_instance_rec.last_vld_organization_id
10039 ,p_quantity => NULL
10040 ,p_party_account_id1 => NULL
10041 ,p_party_account_id2 => NULL
10042 ,p_transaction_date => p_txn_rec.transaction_date
10043 ,p_source_transaction_date => p_txn_rec.source_transaction_date
10044 ,p_txn_type_id => p_txn_rec.transaction_type_id --added for BUG# 5752271
10045 ,p_oks_txn_inst_tbl => p_oks_txn_inst_tbl
10046 ,x_return_status => x_return_status
10047 ,x_msg_count => x_msg_count
10048 ,x_msg_data => x_msg_data
10049 );
10050 --
10051 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
10052 l_msg_index := 1;
10053 l_msg_count := x_msg_count;
10054 WHILE l_msg_count > 0 LOOP
10055 x_msg_data := FND_MSG_PUB.GET
10056 ( l_msg_index,
10057 FND_API.G_FALSE
10058 );
10059 csi_gen_utility_pvt.put_line('MESSAGE DATA = '||x_msg_data);
10060 l_msg_index := l_msg_index + 1;
10061 l_msg_count := l_msg_count - 1;
10062 END LOOP;
10063 RAISE FND_API.G_EXC_ERROR;
10064 END IF;
10065 END IF; -- Added for bug 3973706
10066 ELSE
10067 IF ((nvl(l_curr_instance_rec.active_end_date,(sysdate+1)) <= sysdate) AND
10068 ((p_instance_rec.active_end_date IS NULL) OR
10069 (p_instance_rec.active_end_date IS NOT NULL AND p_instance_rec.active_end_date > sysdate AND
10070 p_instance_rec.active_end_date <> FND_API.G_MISS_DATE))) THEN
10071 --
10072 -- 11.5.10 ER. While un-expiring the instance, order Line ID will be passed only if it changes
10073 IF l_new_instance_rec.location_type_code = 'IN_TRANSIT' THEN
10074 IF nvl(l_curr_instance_rec.in_transit_order_line_id,-99999) <>
10075 nvl(l_new_instance_rec.in_transit_order_line_id,-99999) THEN
10076 l_order_line_id := l_new_instance_rec.in_transit_order_line_id;
10077 ELSE
10078 l_order_line_id := NULL;
10079 END IF;
10080 ELSE
10081 IF nvl(l_curr_instance_rec.last_oe_order_line_id,-99999) <>
10082 nvl(l_new_instance_rec.last_oe_order_line_id,-99999) THEN
10083 l_order_line_id := l_new_instance_rec.last_oe_order_line_id;
10084 ELSE
10085 l_order_line_id := NULL;
10086 END IF;
10087 END IF;
10088 --
10089 IF p_txn_rec.transaction_type_id <> 7 -- Added for bug 3973706
10090 THEN
10091 csi_item_instance_pvt.Call_to_Contracts
10092 ( p_transaction_type => 'NEW'
10093 ,p_instance_id => l_rel_tbl(j).SUBJECT_ID
10094 ,p_new_instance_id => NULL
10095 ,p_vld_org_id => l_curr_instance_rec.last_vld_organization_id
10096 ,p_quantity => NULL
10097 ,p_party_account_id1 => NULL
10098 ,p_party_account_id2 => NULL
10099 ,p_transaction_date => p_txn_rec.transaction_date
10100 ,p_source_transaction_date => p_txn_rec.source_transaction_date
10101 ,p_order_line_id => l_order_line_id
10102 ,p_oks_txn_inst_tbl => p_oks_txn_inst_tbl
10103 ,x_return_status => x_return_status
10104 ,x_msg_count => x_msg_count
10105 ,x_msg_data => x_msg_data
10106 );
10107 --
10108 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
10109 l_msg_index := 1;
10110 l_msg_count := x_msg_count;
10111 WHILE l_msg_count > 0 LOOP
10112 x_msg_data := FND_MSG_PUB.GET
10113 ( l_msg_index,
10114 FND_API.G_FALSE
10115 );
10116 csi_gen_utility_pvt.put_line('MESSAGE DATA = '||x_msg_data);
10117 l_msg_index := l_msg_index + 1;
10118 l_msg_count := l_msg_count - 1;
10119 END LOOP;
10120 RAISE FND_API.G_EXC_ERROR;
10121 END IF;
10122 END IF; -- Added for bug 3973706
10123 -- 'IDC' is added as ELSE condition. If during un-expiry, install_date is also changed then
10124 -- OKS would have used that date when called with 'NEW'. In such cases, OKS need not be called
10125 -- with 'IDC'. Following call is exclusively for Install_date change only.
10126 ELSE -- Check for 'IDC'
10127 IF NVL(l_curr_instance_rec.install_date,fnd_api.g_miss_date) <>
10128 NVL(l_new_instance_rec.install_date,fnd_api.g_miss_date) THEN
10129 csi_item_instance_pvt.Call_to_Contracts
10130 ( p_transaction_type => 'IDC'
10131 ,p_instance_id => l_rel_tbl(j).SUBJECT_ID
10132 ,p_new_instance_id => NULL
10133 ,p_vld_org_id => l_curr_instance_rec.last_vld_organization_id
10134 ,p_quantity => NULL
10135 ,p_party_account_id1 => NULL
10136 ,p_party_account_id2 => NULL
10137 ,p_transaction_date => p_txn_rec.transaction_date
10138 ,p_source_transaction_date => p_txn_rec.source_transaction_date
10139 ,p_order_line_id => l_order_line_id
10140 ,p_oks_txn_inst_tbl => p_oks_txn_inst_tbl
10141 ,x_return_status => x_return_status
10142 ,x_msg_count => x_msg_count
10143 ,x_msg_data => x_msg_data
10144 );
10145 --
10146 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
10147 l_msg_index := 1;
10148 l_msg_count := x_msg_count;
10149 WHILE l_msg_count > 0 LOOP
10150 x_msg_data := FND_MSG_PUB.GET
10151 ( l_msg_index,
10152 FND_API.G_FALSE
10153 );
10154 csi_gen_utility_pvt.put_line('MESSAGE DATA = '||x_msg_data);
10155 l_msg_index := l_msg_index + 1;
10156 l_msg_count := l_msg_count - 1;
10157 END LOOP;
10158 RAISE FND_API.G_EXC_ERROR;
10159 END IF;
10160 END IF;
10161 END IF;
10162 END IF;
10163 END IF; -- Internal party and call_contracts check
10164 -- End of modifications for Bug#2887590
10165 EXCEPTION
10166 WHEN PROCESS_NEXT THEN
10167 NULL;
10168 END;
10169 -- Calling eam API to log instance update event
10170 IF l_eam_item
10171 THEN
10172 IF l_ins_hist_id IS NOT NULL
10173 THEN
10174 l_instance_history_id:=l_ins_hist_id;
10175 ELSE
10176 l_instance_history_id:=l_csi_item_instance_h_id;
10177 END IF;
10178 eam_asset_log_pvt.instance_update_event
10179 (p_api_version => p_api_version
10180 ,p_init_msg_list => fnd_api.g_false
10181 ,p_commit => fnd_api.g_false
10182 ,p_validation_level => fnd_api.g_valid_level_full
10183 ,x_return_status => x_return_status
10184 ,x_msg_count => x_msg_count
10185 ,x_msg_data => x_msg_data
10186 ,p_instance_id => l_rel_tbl(j).subject_id
10187 ,p_ref_id => l_instance_history_id
10188 ,p_event_date => sysdate);
10189 IF NOT(x_return_status = fnd_api.g_ret_sts_success)
10190 THEN
10191 csi_gen_utility_pvt.put_line('Error from eam_asset_log_pvt.instance_update_event API');
10192 RAISE fnd_api.g_exc_error;
10193 END IF;
10194 END IF;
10195 -- Calling eam API to log instance update event
10196 END LOOP;
10197 --Start of:Added for Bug:5615169
10198 IF l_inst_hist_tbl_blk_ins.count > 0 THEN -- BUG#6203160
10199 --Do the ciih bulk insert
10200 --Convert PL/SQl table to column table
10201 build_inst_hist_rec_of_table ( p_inst_hist_tbl => l_inst_hist_tbl_blk_ins -- csi_datastructures_pub.instance_history_tbl
10202 ,p_inst_hist_rec_tab => l_inst_hist_rec_tab -- csi_item_instance_grp.instance_history_rec_tab
10203 );
10204 --Do the actual bulk Insert
10205 -- Modified OLD_LAST_OE_AGREEMENT_ID, NEW_LAST_OE_AGREEMENT_ID for the bug 6967129
10206 l_ciih_blk_ins_cnt := l_inst_hist_rec_tab.instance_history_id.count;
10207 --
10208 FORALL i in 1 .. l_ciih_blk_ins_cnt
10209 INSERT
10210 INTO CSI_ITEM_INSTANCES_H
10211 ( INSTANCE_HISTORY_ID,
10212 INSTANCE_ID,
10213 TRANSACTION_ID,
10214 OLD_INSTANCE_NUMBER,
10215 NEW_INSTANCE_NUMBER,
10216 OLD_EXTERNAL_REFERENCE,
10217 NEW_EXTERNAL_REFERENCE,
10218 OLD_INVENTORY_ITEM_ID,
10219 NEW_INVENTORY_ITEM_ID,
10220 OLD_INVENTORY_REVISION,
10221 NEW_INVENTORY_REVISION,
10222 OLD_INV_MASTER_ORGANIZATION_ID,
10223 NEW_INV_MASTER_ORGANIZATION_ID,
10224 OLD_SERIAL_NUMBER,
10225 NEW_SERIAL_NUMBER ,
10226 OLD_MFG_SERIAL_NUMBER_FLAG,
10227 NEW_MFG_SERIAL_NUMBER_FLAG,
10228 OLD_LOT_NUMBER,
10229 NEW_LOT_NUMBER,
10230 OLD_QUANTITY,
10231 NEW_QUANTITY,
10232 OLD_UNIT_OF_MEASURE,
10233 NEW_UNIT_OF_MEASURE,
10234 OLD_ACCOUNTING_CLASS_CODE,
10235 NEW_ACCOUNTING_CLASS_CODE,
10236 OLD_INSTANCE_CONDITION_ID,
10237 NEW_INSTANCE_CONDITION_ID,
10238 OLD_INSTANCE_STATUS_ID,
10239 NEW_INSTANCE_STATUS_ID,
10240 OLD_CUSTOMER_VIEW_FLAG,
10241 NEW_CUSTOMER_VIEW_FLAG,
10242 OLD_MERCHANT_VIEW_FLAG,
10243 NEW_MERCHANT_VIEW_FLAG,
10244 OLD_SELLABLE_FLAG,
10245 NEW_SELLABLE_FLAG,
10246 OLD_SYSTEM_ID,
10247 NEW_SYSTEM_ID,
10248 OLD_INSTANCE_TYPE_CODE,
10249 NEW_INSTANCE_TYPE_CODE,
10250 OLD_ACTIVE_START_DATE,
10251 NEW_ACTIVE_START_DATE,
10252 OLD_ACTIVE_END_DATE,
10253 NEW_ACTIVE_END_DATE,
10254 OLD_LOCATION_TYPE_CODE,
10255 NEW_LOCATION_TYPE_CODE,
10256 OLD_LOCATION_ID,
10257 NEW_LOCATION_ID,
10258 OLD_INV_ORGANIZATION_ID,
10259 NEW_INV_ORGANIZATION_ID,
10260 OLD_INV_SUBINVENTORY_NAME,
10261 NEW_INV_SUBINVENTORY_NAME,
10262 OLD_INV_LOCATOR_ID,
10263 NEW_INV_LOCATOR_ID,
10264 OLD_PA_PROJECT_ID,
10265 NEW_PA_PROJECT_ID,
10266 OLD_PA_PROJECT_TASK_ID,
10267 NEW_PA_PROJECT_TASK_ID,
10268 OLD_IN_TRANSIT_ORDER_LINE_ID,
10269 NEW_IN_TRANSIT_ORDER_LINE_ID,
10270 OLD_WIP_JOB_ID,
10271 NEW_WIP_JOB_ID,
10272 OLD_PO_ORDER_LINE_ID,
10273 NEW_PO_ORDER_LINE_ID,
10274 OLD_COMPLETENESS_FLAG,
10275 NEW_COMPLETENESS_FLAG,
10276 FULL_DUMP_FLAG,
10277 OLD_CONTEXT,
10278 NEW_CONTEXT,
10279 OLD_ATTRIBUTE1,
10280 NEW_ATTRIBUTE1,
10281 OLD_ATTRIBUTE2,
10282 NEW_ATTRIBUTE2,
10283 OLD_ATTRIBUTE3,
10284 NEW_ATTRIBUTE3,
10285 OLD_ATTRIBUTE4,
10286 NEW_ATTRIBUTE4,
10287 OLD_ATTRIBUTE5,
10288 NEW_ATTRIBUTE5,
10289 OLD_ATTRIBUTE6,
10290 NEW_ATTRIBUTE6,
10291 OLD_ATTRIBUTE7,
10292 NEW_ATTRIBUTE7,
10293 OLD_ATTRIBUTE8,
10294 NEW_ATTRIBUTE8,
10295 OLD_ATTRIBUTE9,
10296 NEW_ATTRIBUTE9,
10297 OLD_ATTRIBUTE10,
10298 NEW_ATTRIBUTE10,
10299 OLD_ATTRIBUTE11,
10300 NEW_ATTRIBUTE11,
10301 OLD_ATTRIBUTE12,
10302 NEW_ATTRIBUTE12,
10303 OLD_ATTRIBUTE13,
10304 NEW_ATTRIBUTE13,
10305 OLD_ATTRIBUTE14,
10306 NEW_ATTRIBUTE14,
10307 OLD_ATTRIBUTE15,
10308 NEW_ATTRIBUTE15,
10309 CREATED_BY,
10310 CREATION_DATE,
10311 LAST_UPDATED_BY,
10312 LAST_UPDATE_DATE,
10313 LAST_UPDATE_LOGIN,
10314 OBJECT_VERSION_NUMBER,
10315 OLD_INST_LOC_TYPE_CODE,
10316 NEW_INST_LOC_TYPE_CODE,
10317 OLD_INST_LOC_ID,
10318 NEW_INST_LOC_ID,
10319 OLD_INST_USAGE_CODE,
10320 NEW_INST_USAGE_CODE,
10321 OLD_last_vld_organization_id,
10322 NEW_last_vld_organization_id,
10323 OLD_CONFIG_INST_REV_NUM ,
10324 NEW_CONFIG_INST_REV_NUM ,
10325 OLD_CONFIG_VALID_STATUS ,
10326 NEW_CONFIG_VALID_STATUS ,
10327 OLD_INSTANCE_DESCRIPTION ,
10328 NEW_INSTANCE_DESCRIPTION ,
10329 OLD_INSTALL_DATE ,
10330 NEW_INSTALL_DATE ,
10331 OLD_RETURN_BY_DATE ,
10332 NEW_RETURN_BY_DATE ,
10333 OLD_ACTUAL_RETURN_DATE ,
10334 NEW_ACTUAL_RETURN_DATE ,
10335 OLD_OE_AGREEMENT_ID ,
10336 NEW_OE_AGREEMENT_ID ,
10337 OLD_LAST_OE_ORDER_LINE_ID,
10338 NEW_LAST_OE_ORDER_LINE_ID,
10339 OLD_LAST_OE_RMA_LINE_ID,
10340 NEW_LAST_OE_RMA_LINE_ID,
10341 OLD_LAST_WIP_JOB_ID,
10342 NEW_LAST_WIP_JOB_ID,
10343 OLD_LAST_PO_PO_LINE_ID,
10344 NEW_LAST_PO_PO_LINE_ID,
10345 OLD_LAST_PA_PROJECT_ID,
10346 NEW_LAST_PA_PROJECT_ID,
10347 OLD_LAST_PA_TASK_ID,
10348 NEW_LAST_PA_TASK_ID,
10349 OLD_LAST_TXN_LINE_DETAIL_ID,
10350 NEW_LAST_TXN_LINE_DETAIL_ID,
10351 OLD_LAST_OE_PO_NUMBER,
10352 NEW_LAST_OE_PO_NUMBER,
10353 --Start of eam integration changes--
10354 OLD_NETWORK_ASSET_FLAG,
10355 NEW_NETWORK_ASSET_FLAG,
10356 OLD_MAINTAINABLE_FLAG,
10357 NEW_MAINTAINABLE_FLAG,
10358 OLD_PN_LOCATION_ID,
10359 NEW_PN_LOCATION_ID,
10360 OLD_ASSET_CRITICALITY_CODE,
10361 NEW_ASSET_CRITICALITY_CODE,
10362 OLD_CATEGORY_ID,
10363 NEW_CATEGORY_ID,
10364 OLD_EQUIPMENT_GEN_OBJECT_ID,
10365 NEW_EQUIPMENT_GEN_OBJECT_ID,
10366 OLD_INSTANTIATION_FLAG,
10367 NEW_INSTANTIATION_FLAG,
10368 OLD_LINEAR_LOCATION_ID,
10369 NEW_LINEAR_LOCATION_ID,
10370 OLD_OPERATIONAL_LOG_FLAG,
10371 NEW_OPERATIONAL_LOG_FLAG,
10372 OLD_CHECKIN_STATUS,
10373 NEW_CHECKIN_STATUS,
10374 OLD_SUPPLIER_WARRANTY_EXP_DATE,
10375 NEW_SUPPLIER_WARRANTY_EXP_DATE,
10376 OLD_ATTRIBUTE16,
10377 NEW_ATTRIBUTE16,
10378 OLD_ATTRIBUTE17,
10379 NEW_ATTRIBUTE17,
10380 OLD_ATTRIBUTE18,
10381 NEW_ATTRIBUTE18,
10382 OLD_ATTRIBUTE19,
10383 NEW_ATTRIBUTE19,
10384 OLD_ATTRIBUTE20,
10385 NEW_ATTRIBUTE20,
10386 OLD_ATTRIBUTE21,
10387 NEW_ATTRIBUTE21,
10388 OLD_ATTRIBUTE22,
10389 NEW_ATTRIBUTE22,
10390 OLD_ATTRIBUTE23,
10391 NEW_ATTRIBUTE23,
10392 OLD_ATTRIBUTE24,
10393 NEW_ATTRIBUTE24,
10394 OLD_ATTRIBUTE25,
10395 NEW_ATTRIBUTE25,
10396 OLD_ATTRIBUTE26,
10397 NEW_ATTRIBUTE26,
10398 OLD_ATTRIBUTE27,
10399 NEW_ATTRIBUTE27,
10400 OLD_ATTRIBUTE28,
10401 NEW_ATTRIBUTE28,
10402 OLD_ATTRIBUTE29,
10403 NEW_ATTRIBUTE29,
10404 OLD_ATTRIBUTE30,
10405 NEW_ATTRIBUTE30,
10406 --End of eam integration changes--
10407 --Addition of columns for FA Integration
10408 OLD_PAYABLES_UNIT_PRICE,
10409 NEW_PAYABLES_UNIT_PRICE,
10410 OLD_PAYABLES_CURRENCY_CODE,
10411 NEW_PAYABLES_CURRENCY_CODE,
10412 OLD_PURCHASE_UNIT_PRICE,
10413 NEW_PURCHASE_UNIT_PRICE,
10414 OLD_PURCHASE_CURRENCY_CODE,
10415 NEW_PURCHASE_CURRENCY_CODE,
10416 OLD_SALES_UNIT_PRICE,
10417 NEW_SALES_UNIT_PRICE,
10418 OLD_SALES_CURRENCY_CODE,
10419 NEW_SALES_CURRENCY_CODE,
10420 OLD_OPERATIONAL_STATUS_CODE,
10421 NEW_OPERATIONAL_STATUS_CODE
10422 --End addition of columns for FA Integration
10423 )
10424 VALUES
10425 (
10426 l_inst_hist_rec_tab.INSTANCE_HISTORY_ID(i),
10427 decode( l_inst_hist_rec_tab.INSTANCE_ID(i), FND_API.G_MISS_NUM, NULL, l_inst_hist_rec_tab.INSTANCE_ID(i)),
10428 decode( l_inst_hist_rec_tab.TRANSACTION_ID(i), FND_API.G_MISS_NUM, NULL, l_inst_hist_rec_tab.TRANSACTION_ID(i)),
10429 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)),
10430 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)),
10431 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)),
10432 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)),
10433 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)),
10434 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)),
10435 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)),
10436 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)),
10437 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)),
10438 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)),
10439 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)),
10440 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)),
10441 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)),
10442 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)),
10443 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)),
10444 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)),
10445 decode( l_inst_hist_rec_tab.OLD_QUANTITY(i), FND_API.G_MISS_NUM, NULL, l_inst_hist_rec_tab.OLD_QUANTITY(i)),
10446 decode( l_inst_hist_rec_tab.NEW_QUANTITY(i), FND_API.G_MISS_NUM, NULL, l_inst_hist_rec_tab.NEW_QUANTITY(i)),
10447 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)),
10448 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)),
10449 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)),
10450 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)),
10451 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)),
10452 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)),
10453 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)),
10454 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)),
10455 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)),
10456 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)),
10457 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)),
10458 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)),
10459 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)),
10460 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)),
10461 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)),
10462 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)),
10463 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)),
10464 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)),
10465 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)),
10466 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)),
10467 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)),
10468 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)),
10469 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)),
10470 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)),
10471 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)),
10472 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)),
10473 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)),
10474 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)),
10475 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)),
10476 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)),
10477 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)),
10478 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)),
10479 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)),
10480 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)),
10481 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)),
10482 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)),
10483 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)),
10484 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)),
10485 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)),
10486 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)),
10487 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)),
10488 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)),
10489 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)),
10490 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)),
10491 'N',
10492 decode( l_inst_hist_rec_tab.OLD_CONTEXT(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_CONTEXT(i)),
10493 decode( l_inst_hist_rec_tab.NEW_CONTEXT(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_CONTEXT(i)),
10494 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE1(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE1(i)),
10495 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE1(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE1(i)),
10496 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE2(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE2(i)),
10497 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE2(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE2(i)),
10498 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE3(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE3(i)),
10499 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE3(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE3(i)),
10500 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE4(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE4(i)),
10501 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE4(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE4(i)),
10502 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE5(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE5(i)),
10503 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE5(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE5(i)),
10504 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE6(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE6(i)),
10505 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE6(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE6(i)),
10506 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE7(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE7(i)),
10507 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE7(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE7(i)),
10508 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE8(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE8(i)),
10509 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE8(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE8(i)),
10510 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE9(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE9(i)),
10511 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE9(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE9(i)),
10512 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE10(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE10(i)),
10513 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE10(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE10(i)),
10514 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE11(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE11(i)),
10515 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE11(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE11(i)),
10516 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE12(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE12(i)),
10517 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE12(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE12(i)),
10518 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE13(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE13(i)),
10519 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE13(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE13(i)),
10520 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE14(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE14(i)),
10521 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE14(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE14(i)),
10522 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE15(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE15(i)),
10523 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE15(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE15(i)),
10524 l_user_id,
10525 SYSDATE,
10526 l_user_id,
10527 SYSDATE,
10528 l_login_id,
10529 1,
10530 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)),
10531 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)),
10532 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)),
10533 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)),
10534 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)),
10535 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)),
10536 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)),
10537 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)),
10538 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)),
10539 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)),
10540 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)),
10541 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)),
10542 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)),
10543 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)),
10544
10545 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)) ,
10546 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)) ,
10547 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)),
10548 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)),
10549 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)),
10550 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)),
10551
10552 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)),
10553 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)),
10554
10555 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)),
10556 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)),
10557 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)),
10558 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)),
10559 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)),
10560 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)),
10561 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)),
10562 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)),
10563 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)),
10564 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)),
10565 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)),
10566 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)),
10567 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)),
10568 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)),
10569 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)),
10570 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)),
10571 --Start of eam integration changes--
10572 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)),
10573 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)),
10574 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)),
10575 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)),
10576 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)),
10577 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)),
10578 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)),
10579 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)),
10580 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)),
10581 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)),
10582 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)),
10583 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)),
10584 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)),
10585 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)),
10586 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)),
10587 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)),
10588 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)),
10589 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)),
10590 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)),
10591 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)),
10592 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)),
10593 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)),
10594 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE16(i) ,FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE16(i)),
10595 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE16(i) ,FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE16(i)),
10596 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE17(i) ,FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE17(i)),
10597 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE17(i) ,FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE17(i)),
10598 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE18(i) ,FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE18(i)),
10599 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE18(i) ,FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE18(i)),
10600 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE19(i) ,FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE19(i)),
10601 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE19(i) ,FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE19(i)),
10602 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE20(i) ,FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE20(i)),
10603 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE20(i) ,FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE20(i)),
10604 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE21(i) ,FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE21(i)),
10605 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE21(i) ,FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE21(i)),
10606 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE22(i) ,FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE22(i)),
10607 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE22(i) ,FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE22(i)),
10608 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE23(i) ,FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE23(i)),
10609 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE23(i) ,FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE23(i)),
10610 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE24(i) ,FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE24(i)),
10611 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE24(i) ,FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE24(i)),
10612 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE25(i) ,FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE25(i)),
10613 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE25(i) ,FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE25(i)),
10614 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE26(i) ,FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE26(i)),
10615 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE26(i) ,FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE26(i)),
10616 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE27(i) ,FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE27(i)),
10617 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE27(i) ,FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE27(i)),
10618 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE28(i) ,FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE28(i)),
10619 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE28(i) ,FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE28(i)),
10620 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE29(i) ,FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE29(i)),
10621 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE29(i) ,FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE29(i)),
10622 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE30(i) ,FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE30(i)),
10623 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE30(i) ,FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE30(i)),
10624 --End of eam integration changes--
10625 --Addition of columns for FA Integration
10626 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)),
10627 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)),
10628 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)),
10629 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)),
10630 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)),
10631 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)),
10632 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)),
10633 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)),
10634 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)),
10635 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)),
10636 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)),
10637 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)),
10638 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)),
10639 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))
10640 --End addition of columns for FA Integration
10641 );
10642 --End of:Added for Bug:5615169
10643 END IF; -- Bug#6203160
10644 END IF; -- check for l_rel_tbl count
10645 -- End of modifications for Bug#2887590
10646
10647 IF FND_API.To_Boolean( p_commit )
10648 THEN
10649 COMMIT WORK;
10650 END IF;
10651
10652 -- Standard call to get message count and if count is get message info.
10653 FND_MSG_PUB.Count_And_Get
10654 (p_count => x_msg_count ,
10655 p_data => x_msg_data
10656 );
10657
10658 EXCEPTION
10659
10660 WHEN FND_API.G_EXC_ERROR THEN
10661 IF FND_API.To_Boolean( p_commit ) THEN
10662 ROLLBACK TO update_child_instance_pvt;
10663 END IF;
10664 x_return_status := FND_API.G_RET_STS_ERROR ;
10665 FND_MSG_PUB.Count_And_Get
10666 ( p_count => x_msg_count,
10667 p_data => x_msg_data
10668 );
10669 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
10670 IF FND_API.To_Boolean( p_commit ) THEN
10671 ROLLBACK TO update_child_instance_pvt;
10672 END IF;
10673 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
10674 FND_MSG_PUB.Count_And_Get
10675 ( p_count => x_msg_count,
10676 p_data => x_msg_data
10677 );
10678 WHEN OTHERS THEN
10679 IF FND_API.To_Boolean( p_commit ) THEN
10680 ROLLBACK TO update_child_instance_pvt;
10681 END IF;
10682 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
10683
10684 IF FND_MSG_PUB.Check_Msg_Level
10685 (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
10686 THEN
10687 FND_MSG_PUB.Add_Exc_Msg
10688 ( G_PKG_NAME ,
10689 l_api_name
10690 );
10691 END IF;
10692 FND_MSG_PUB.Count_And_Get
10693 ( p_count => x_msg_count,
10694 p_data => x_msg_data
10695 );
10696
10697 END update_child_instance_location;
10698
10699 /*---------------------------------------------------*/
10700 /* procedure name: call_contracts */
10701 /* description : call_contracts */
10702 /* */
10703 /*---------------------------------------------------*/
10704
10705 PROCEDURE Call_to_Contracts
10706 ( p_transaction_type IN VARCHAR2
10707 ,p_instance_id IN NUMBER
10708 ,p_new_instance_id IN NUMBER
10709 ,p_vld_org_id IN NUMBER
10710 ,p_quantity IN NUMBER
10711 ,p_party_account_id1 IN NUMBER
10712 ,p_party_account_id2 IN NUMBER
10713 ,p_transaction_date IN DATE
10714 ,p_source_transaction_date IN DATE -- Added by jpwilson
10715 ,p_transaction_id IN NUMBER -- Added by sguthiva for TRF(HTML)
10716 ,p_grp_call_contracts IN VARCHAR2 -- Will be TRUE only from Group API
10717 ,p_txn_type_id IN NUMBER
10718 ,p_system_id IN NUMBER
10719 ,p_order_line_id IN NUMBER
10720 ,p_call_from_bom_expl IN VARCHAR2
10721 ,p_oks_txn_inst_tbl IN OUT NOCOPY oks_ibint_pub.txn_instance_tbl
10722 ,x_return_status OUT NOCOPY VARCHAR2
10723 ,x_msg_count OUT NOCOPY NUMBER
10724 ,x_msg_data OUT NOCOPY VARCHAR2
10725 )IS
10726
10727 CURSOR instance_csr (p_ins_id IN NUMBER) IS
10728 SELECT *
10729 FROM csi_item_instances
10730 WHERE instance_id = p_ins_id;
10731
10732 --Start of: Added for bug 5615162
10733 CURSOR instance_txn_chk_csr(p_ins_id IN NUMBER,p_txn_id in NUMBER, p_src_txn_date in DATE) IS
10734 SELECT 'X' FROM CSI_TRANSACTIONS CST,
10735 (
10736 SELECT CIIH.TRANSACTION_ID TRANSACTION_ID, CIIH.INSTANCE_ID INSTANCE_ID
10737 FROM CSI_ITEM_INSTANCES_H CIIH
10738 WHERE INSTANCE_ID=p_ins_id AND TRANSACTION_ID<>p_txn_id
10739 UNION ALL
10740
10741 SELECT CIVH.TRANSACTION_ID TRANSACTION_ID, CIV.INSTANCE_ID INSTANCE_ID
10742 FROM CSI_IEA_VALUES_H CIVH, CSI_IEA_VALUES CIV
10743 WHERE CIV.ATTRIBUTE_VALUE_ID = CIVH.ATTRIBUTE_VALUE_ID
10744 AND INSTANCE_ID=p_ins_id AND TRANSACTION_ID<>p_txn_id
10745 UNION ALL
10746
10747 SELECT CIRH.TRANSACTION_ID TRANSACTION_ID, CIR.SUBJECT_ID INSTANCE_ID
10748 FROM CSI_II_RELATIONSHIPS_H CIRH, CSI_II_RELATIONSHIPS CIR
10749 WHERE CIRH.RELATIONSHIP_ID = CIR.RELATIONSHIP_ID
10750 AND subject_ID=p_ins_id AND TRANSACTION_ID<>p_txn_id
10751 UNION ALL
10752
10753 SELECT CIRH.TRANSACTION_ID TRANSACTION_ID, CIR.OBJECT_ID INSTANCE_ID
10754 FROM CSI_II_RELATIONSHIPS_H CIRH, CSI_II_RELATIONSHIPS CIR
10755 WHERE CIRH.RELATIONSHIP_ID = CIR.RELATIONSHIP_ID
10756 AND object_ID=p_ins_id AND TRANSACTION_ID<>p_txn_id
10757 UNION ALL
10758
10759 SELECT CIPH.TRANSACTION_ID TRANSACTION_ID, CIP.INSTANCE_ID INSTANCE_ID
10760 FROM CSI_I_PARTIES_H CIPH, CSI_I_PARTIES CIP
10761 WHERE CIPH.INSTANCE_PARTY_ID = CIP.INSTANCE_PARTY_ID
10762 AND INSTANCE_ID=p_ins_id AND TRANSACTION_ID<>p_txn_id
10763 UNION ALL
10764
10765 SELECT CIAAH.TRANSACTION_ID TRANSACTION_ID, CIAA.INSTANCE_ID INSTANCE_ID
10766 FROM CSI_I_ASSETS_H CIAAH, CSI_I_ASSETS CIAA
10767 WHERE CIAAH.INSTANCE_ASSET_ID = CIAA.INSTANCE_ASSET_ID
10768 AND INSTANCE_ID=p_ins_id AND TRANSACTION_ID<>p_txn_id
10769 UNION ALL
10770
10771 SELECT CIAH.TRANSACTION_ID TRANSACTION_ID, CIP.INSTANCE_ID INSTANCE_ID
10772 FROM CSI_IP_ACCOUNTS_H CIAH, CSI_IP_ACCOUNTS CIA, CSI_I_PARTIES CIP
10773 WHERE CIAH.IP_ACCOUNT_ID = CIA.IP_ACCOUNT_ID
10774 AND CIA.INSTANCE_PARTY_ID = CIP.INSTANCE_PARTY_ID
10775 AND INSTANCE_ID=p_ins_id AND TRANSACTION_ID<>p_txn_id
10776 UNION ALL
10777
10778 SELECT CIOAH.TRANSACTION_ID TRANSACTION_ID, CIOA.INSTANCE_ID INSTANCE_ID
10779 FROM CSI_I_ORG_ASSIGNMENTS_H CIOAH, CSI_I_ORG_ASSIGNMENTS CIOA
10780 WHERE CIOAH.INSTANCE_OU_ID = CIOA.INSTANCE_OU_ID
10781 AND INSTANCE_ID=p_ins_id AND TRANSACTION_ID<>p_txn_id
10782 UNION ALL
10783
10784 SELECT CIVLH.TRANSACTION_ID TRANSACTION_ID, CIVL.INSTANCE_ID INSTANCE_ID
10785 FROM CSI_I_VERSION_LABELS_H CIVLH, CSI_I_VERSION_LABELS CIVL
10786 WHERE CIVLH.VERSION_LABEL_ID = CIVL.VERSION_LABEL_ID
10787 AND INSTANCE_ID=p_ins_id AND TRANSACTION_ID<>p_txn_id
10788 UNION ALL
10789
10790 SELECT CIPAH.TRANSACTION_ID TRANSACTION_ID, CIPA.INSTANCE_ID INSTANCE_ID
10791 FROM CSI_I_PRICING_ATTRIBS_H CIPAH, CSI_I_PRICING_ATTRIBS CIPA
10792 WHERE INSTANCE_ID=p_ins_id AND TRANSACTION_ID<>p_txn_id
10793 AND CIPAH.PRICING_ATTRIBUTE_ID = CIPA.PRICING_ATTRIBUTE_ID
10794 ) CSA
10795 WHERE CSA.TRANSACTION_ID=CST.TRANSACTION_ID
10796 AND CST.TRANSACTION_ID <>p_txn_id
10797 AND CST.SOURCE_TRANSACTION_DATE>p_src_txn_date
10798 AND ROWNUM=1;
10799 --End of: Added for bug 5615162
10800
10801 l_instance_csr instance_csr%ROWTYPE;
10802 l_new_ins_csr instance_csr%ROWTYPE;
10803 l_new_instance_csr instance_csr%ROWTYPE;
10804 l_debug_level NUMBER;
10805 l_contracts_status VARCHAR2(3);
10806 l_internal_party_id NUMBER;
10807 l_msg_count NUMBER;
10808 l_msg_index NUMBER;
10809 l_msg_dummy NUMBER;
10810 l_transaction_date DATE;
10811 l_call_contracts BOOLEAN := FALSE;
10812 l_temp VARCHAR2(1);
10813 l_chg_owner VARCHAR2(1);
10814 l_sql VARCHAR2(2000); -- Added for ER 3378294
10815 l_found VARCHAR2(1) := 'N'; -- Added for ER 3378294
10816 l_rma_line_id NUMBER;
10817 l_oks_txn_count NUMBER;
10818 l_exists VARCHAR2(1);
10819 l_order_org_id NUMBER;
10820 l_order_shipped_date DATE;
10821 l_txn_date DATE;
10822 l_txn_exists VARCHAR2(1) :=null; --5615162
10823
10824 BEGIN
10825
10826 -- Initialize API return status to success
10827 x_return_status := FND_API.G_RET_STS_SUCCESS;
10828 --
10829 l_contracts_status := FND_PROFILE.VALUE('CSI_CONTRACTS_ENABLED');
10830 --
10831 IF UPPER(l_contracts_status) <> 'Y' THEN
10832 RETURN;
10833 END IF;
10834 --
10835 csi_gen_utility_pvt.put_line('Begin Call_to_Contracts : '||to_char(sysdate,'DD-MON-YYYY HH24:MI:SS'));
10836 csi_gen_utility_pvt.put_line('Contracts Transaction Type: '||p_transaction_type);
10837 IF csi_datastructures_pub.g_install_param_rec.fetch_flag IS NULL THEN
10838 csi_gen_utility_pvt.populate_install_param_rec;
10839 END IF;
10840 --
10841 l_internal_party_id := csi_datastructures_pub.g_install_param_rec.internal_party_id;
10842 --
10843 IF l_internal_party_id IS NULL THEN
10844 FND_MESSAGE.SET_NAME('CSI','CSI_API_UNINSTALLED_PARAMETER');
10845 FND_MSG_PUB.ADD;
10846 RAISE FND_API.G_EXC_ERROR;
10847 END IF;
10848 --
10849 OPEN instance_csr (p_instance_id);
10850 FETCH instance_csr INTO l_instance_csr;
10851 CLOSE instance_csr;
10852 --
10853 csi_gen_utility_pvt.put_line('p_transaction_date: '||p_transaction_date);
10854 csi_gen_utility_pvt.put_line('p_source_transaction_date: '||p_source_transaction_date);
10855 --
10856 IF p_transaction_date IS NULL OR p_transaction_date = fnd_api.g_miss_date THEN
10857 l_txn_date:= SYSDATE;
10858 ELSE
10859 l_txn_date:= p_transaction_date;
10860 END IF;
10861 --
10862 l_exists := 'N';
10863 --
10864 IF ( l_instance_csr.owner_party_id IS NOT NULL
10865 AND l_instance_csr.owner_party_id <> l_internal_party_id
10866 AND l_instance_csr.owner_party_source_table = 'HZ_PARTIES')
10867 OR ( l_instance_csr.owner_party_id IS NOT NULL
10868 AND l_instance_csr.owner_party_id = l_internal_party_id
10869 AND p_transaction_type in ('TRM','RET')
10870 AND l_instance_csr.owner_party_source_table = 'HZ_PARTIES')
10871 THEN
10872 IF p_source_transaction_date IS NULL OR p_source_transaction_date = fnd_api.g_miss_date THEN
10873 l_transaction_date:= SYSDATE;
10874 ELSE
10875 l_transaction_date:= p_source_transaction_date;
10876 END IF;
10877 --
10878 csi_gen_utility_pvt.put_line('l_transaction_date: '||l_transaction_date);
10879
10880 IF p_oks_txn_inst_tbl.count > 0 THEN
10881 csi_gen_utility_pvt.put_line('p_oks_txn_inst_tbl has records ...');
10882 FOR J in p_oks_txn_inst_tbl.FIRST .. p_oks_txn_inst_tbl.LAST LOOP
10883 IF p_oks_txn_inst_tbl.EXISTS(J) THEN
10884 IF p_oks_txn_inst_tbl(J).old_customer_product_id = p_instance_id THEN
10885 IF p_transaction_type = 'TRM' THEN
10886 -- Modified for bug 5442038
10887 IF l_instance_csr.active_end_date IS NULL OR
10888 l_instance_csr.active_end_date = fnd_api.g_miss_date
10889 THEN
10890 p_oks_txn_inst_tbl(J).termination_date := l_transaction_date;
10891 ELSE
10892 csi_gen_utility_pvt.put_line('1. Assigning user entered end date');
10893 p_oks_txn_inst_tbl(J).termination_date := l_instance_csr.active_end_date;
10894 END IF;
10895 p_oks_txn_inst_tbl(J).transaction_date := l_txn_date;
10896 p_oks_txn_inst_tbl(J).TRM := 'Y';
10897 ELSIF p_transaction_type = 'RET' THEN
10898 p_oks_txn_inst_tbl(J).termination_date := l_transaction_date;
10899 p_oks_txn_inst_tbl(J).transaction_date := l_txn_date;
10900 p_oks_txn_inst_tbl(J).RET := 'Y';
10901 ELSIF p_transaction_type = 'TRF' THEN
10902 IF p_system_id IS NOT NULL AND
10903 p_system_id <> FND_API.G_MISS_NUM THEN
10904 p_oks_txn_inst_tbl(J).system_id := p_system_id;
10905 ELSE
10906 p_oks_txn_inst_tbl(J).system_id := NULL;
10907 END IF;
10908 p_oks_txn_inst_tbl(J).new_customer_product_id :=
10909 p_oks_txn_inst_tbl(J).old_customer_product_id;
10910 p_oks_txn_inst_tbl(J).new_inventory_item_id :=
10911 p_oks_txn_inst_tbl(J).old_inventory_item_id;
10912 p_oks_txn_inst_tbl(J).new_unit_of_measure :=
10913 p_oks_txn_inst_tbl(J).old_unit_of_measure;
10914 p_oks_txn_inst_tbl(J).new_quantity :=
10915 p_oks_txn_inst_tbl(J).old_quantity;
10916 p_oks_txn_inst_tbl(J).new_customer_acct_id := p_party_account_id2;
10917 p_oks_txn_inst_tbl(J).old_customer_acct_id := p_party_account_id1;
10918 --
10919 -- The following code has been added by sguthiva in order to incorporate the
10920 -- changes made by the HTML UI .
10921 -- When HTML UI passes a transaction date which should be less than sysdate,
10922 -- then before calling contracts we need to make sure that there are no transactions
10923 -- between passed date and sysdate.
10924 IF (( p_source_transaction_date IS NOT NULL) AND (p_source_transaction_date < SYSDATE)) AND
10925 p_source_transaction_date <> fnd_api.g_miss_date THEN
10926 l_temp:=NULL;
10927 -- srramakr changed to source_transaction_date instead of transaction_date (3804960)
10928 BEGIN
10929 /*Commenting for bug 5615162 added more code below
10930 SELECT 'x'
10931 INTO l_temp
10932 FROM csi_inst_transactions_v
10933 WHERE instance_id=p_instance_id
10934 AND source_transaction_date > p_source_transaction_date
10935 AND transaction_id <> p_transaction_id
10936 AND ROWNUM=1;
10937 IF l_temp IS NOT NULL AND p_txn_type_id <> 53 --added for bug 5752271 */
10938
10939 --Start of:Added for bug 5615162
10940 l_txn_exists :=null;
10941 OPEN instance_txn_chk_csr (p_instance_id,p_transaction_id,p_transaction_date);
10942 FETCH instance_txn_chk_csr INTO l_txn_exists;
10943 CLOSE instance_txn_chk_csr;
10944
10945 IF l_txn_exists IS NOT NULL AND p_txn_type_id <> 53 --End of:Added for bug 5615162
10946 THEN
10947 x_return_status := fnd_api.g_ret_sts_error ;
10948 fnd_message.set_name('CSI', 'CSI_HAS_TXNS_GT_SYS');
10949 fnd_message.set_token('INSTANCE_ID',p_instance_id );
10950 fnd_message.set_token('SOURCE_TXN_DATE',to_char(p_source_transaction_date, 'DD-MON-YYYY HH24:MI:SS'));
10951 fnd_msg_pub.add;
10952 RAISE fnd_api.g_exc_error;
10953 END IF;
10954 EXCEPTION
10955 WHEN fnd_api.g_exc_error THEN
10956 RAISE fnd_api.g_exc_error;
10957 WHEN OTHERS THEN
10958 NULL;
10959 END;
10960 ELSIF (( p_source_transaction_date IS NOT NULL) AND (p_source_transaction_date > SYSDATE)) AND
10961 p_source_transaction_date <> fnd_api.g_miss_date THEN
10962 x_return_status := fnd_api.g_ret_sts_error ;
10963 fnd_message.set_name('CSI', 'CSI_PASS_TXNS_GT_SYS');
10964 fnd_message.set_token('SOURCE_TXN_DATE',to_char(p_source_transaction_date, 'DD-MON-YYYY HH24:MI:SS'));
10965 fnd_msg_pub.add;
10966 RAISE fnd_api.g_exc_error;
10967 END IF;
10968 p_oks_txn_inst_tbl(J).transfer_date := l_transaction_date;
10969 p_oks_txn_inst_tbl(J).transaction_date := l_txn_date;
10970 p_oks_txn_inst_tbl(J).TRF := 'Y';
10971 ELSIF p_transaction_type = 'UPD' THEN
10972 p_oks_txn_inst_tbl(J).new_quantity :=
10973 p_oks_txn_inst_tbl(J).old_quantity;
10974 p_oks_txn_inst_tbl(J).old_quantity := p_quantity; -- Passed old Qty
10975 p_oks_txn_inst_tbl(J).transaction_date := l_txn_date;
10976 p_oks_txn_inst_tbl(J).UPD := 'Y';
10977 --
10978 IF p_txn_type_id is NOT NULL AND
10979 p_txn_type_id <> FND_API.G_MISS_NUM AND
10980 p_txn_type_id in (53,54) THEN
10981 p_oks_txn_inst_tbl(J).return_reason_code := 'RETURN'; -- RMA
10982 ELSE
10983 p_oks_txn_inst_tbl(J).return_reason_code := 'REGULAR';
10984 END IF;
10985 ELSIF p_transaction_type = 'SPL' THEN
10986 OPEN instance_csr (p_new_instance_id);
10987 FETCH instance_csr INTO l_new_ins_csr;
10988 CLOSE instance_csr;
10989 --
10990 p_oks_txn_inst_tbl(J).new_customer_product_id := p_new_instance_id;
10991 p_oks_txn_inst_tbl(J).new_customer_acct_id :=
10992 p_oks_txn_inst_tbl(J).old_customer_acct_id;
10993 p_oks_txn_inst_tbl(J).new_inventory_item_id :=
10994 p_oks_txn_inst_tbl(J).old_inventory_item_id;
10995 p_oks_txn_inst_tbl(J).new_unit_of_measure :=
10996 p_oks_txn_inst_tbl(J).old_unit_of_measure;
10997 p_oks_txn_inst_tbl(J).new_quantity := l_new_ins_csr.quantity;
10998 p_oks_txn_inst_tbl(J).old_quantity := p_quantity; -- Passed old Qty
10999 p_oks_txn_inst_tbl(J).transaction_date := l_txn_date;
11000 p_oks_txn_inst_tbl(J).SPL := 'Y';
11001 ELSIF p_transaction_type = 'RPL' THEN
11002 OPEN instance_csr (p_new_instance_id);
11003 FETCH instance_csr INTO l_new_instance_csr;
11004 CLOSE instance_csr;
11005 --
11006 IF l_new_instance_csr.owner_party_id IS NOT NULL AND
11007 l_new_instance_csr.owner_party_id <> l_internal_party_id AND
11008 l_new_instance_csr.owner_party_source_table = 'HZ_PARTIES' THEN
11009 l_call_contracts := TRUE;
11010 p_oks_txn_inst_tbl(l_oks_txn_count).new_customer_product_id := p_new_instance_id;
11011 p_oks_txn_inst_tbl(l_oks_txn_count).new_quantity := l_new_instance_csr.quantity;
11012 p_oks_txn_inst_tbl(l_oks_txn_count).new_unit_of_measure :=
11013 l_new_instance_csr.unit_of_measure;
11014 p_oks_txn_inst_tbl(l_oks_txn_count).new_inventory_item_id :=
11015 l_new_instance_csr.inventory_item_id;
11016 p_oks_txn_inst_tbl(J).transaction_date := l_txn_date;
11017 p_oks_txn_inst_tbl(J).RPL := 'Y';
11018 END IF;
11019 ELSIF p_transaction_type = 'IDC' THEN
11020 p_oks_txn_inst_tbl(J).IDC := 'Y';
11021 p_oks_txn_inst_tbl(J).transaction_date := l_txn_date;
11022 ELSIF p_transaction_type = 'NEW' THEN
11023 p_oks_txn_inst_tbl(J).NEW := 'Y';
11024 p_oks_txn_inst_tbl(J).transaction_date := l_txn_date;
11025 END IF;
11026 l_exists := 'Y';
11027 exit;
11028 END IF; -- Instance ID matches
11029 END IF; -- row exists check
11030 END LOOP;
11031 END IF;
11032 --
11033 IF l_exists = 'N' THEN
11034 csi_gen_utility_pvt.put_line('l_exists is N ...');
11035 l_oks_txn_count := p_oks_txn_inst_tbl.count + 1;
11036 --
11037 p_oks_txn_inst_tbl(l_oks_txn_count).installation_date := l_instance_csr.install_date;
11038 --
11039 IF l_instance_csr.location_type_code = 'IN_TRANSIT' THEN
11040 p_oks_txn_inst_tbl(l_oks_txn_count).order_line_id := l_instance_csr.in_transit_order_line_id;
11041 ELSE
11042 p_oks_txn_inst_tbl(l_oks_txn_count).order_line_id := l_instance_csr.last_oe_order_line_id;
11043 END IF;
11044 --
11045 l_order_shipped_date := NULL;
11046 l_order_org_id := NULL;
11047 --
11048 IF p_oks_txn_inst_tbl(l_oks_txn_count).order_line_id IS NOT NULL THEN
11049 Begin
11050 select NVL(actual_shipment_date,schedule_ship_date)
11051 ,org_id
11052 into l_order_shipped_date,l_order_org_id
11053 from OE_ORDER_LINES_ALL
11054 where line_id = p_oks_txn_inst_tbl(l_oks_txn_count).order_line_id;
11055 Exception -- Added exception handling for bug 6870487, in case the order line no longer exist in oe_order_lines_all table
11056 When no_data_found Then
11057 p_oks_txn_inst_tbl(l_oks_txn_count).order_line_id := NULL;
11058 End;
11059 END IF;
11060 --
11061 IF p_oks_txn_inst_tbl(l_oks_txn_count).installation_date IS NULL THEN
11062 p_oks_txn_inst_tbl(l_oks_txn_count).shipped_date := NVL(l_order_shipped_date,l_instance_csr.active_start_date);
11063 ELSE
11064 p_oks_txn_inst_tbl(l_oks_txn_count).shipped_date := NULL;
11065 END IF;
11066 --
11067 p_oks_txn_inst_tbl(l_oks_txn_count).old_customer_product_id := p_instance_id;
11068 p_oks_txn_inst_tbl(l_oks_txn_count).old_quantity := l_instance_csr.quantity;
11069 p_oks_txn_inst_tbl(l_oks_txn_count).old_unit_of_measure := l_instance_csr.unit_of_measure;
11070 p_oks_txn_inst_tbl(l_oks_txn_count).old_inventory_item_id := l_instance_csr.inventory_item_id;
11071 p_oks_txn_inst_tbl(l_oks_txn_count).old_customer_acct_id := l_instance_csr.owner_party_account_id;
11072 --
11073 IF p_transaction_type ='TRM' THEN
11074 csi_gen_utility_pvt.put_line('TRM Transaction Type');
11075 -- p_party_account_id1 will be passed only for TRF
11076 -- p_oks_txn_inst_tbl(l_oks_txn_count).old_customer_acct_id := p_party_account_id1;
11077 p_oks_txn_inst_tbl(l_oks_txn_count).TRM := 'Y';
11078 -- Modified for bug 5442038
11079 IF l_instance_csr.active_end_date IS NULL OR
11080 l_instance_csr.active_end_date = fnd_api.g_miss_date
11081 THEN
11082 p_oks_txn_inst_tbl(l_oks_txn_count).termination_date := l_transaction_date;
11083 ELSE
11084 csi_gen_utility_pvt.put_line('2. Assigning user entered end date');
11085 p_oks_txn_inst_tbl(l_oks_txn_count).termination_date := l_instance_csr.active_end_date;
11086 END IF;
11087
11088 p_oks_txn_inst_tbl(l_oks_txn_count).transaction_date := l_txn_date;
11089 END IF;
11090 --
11091 IF p_transaction_type ='RET' THEN
11092 csi_gen_utility_pvt.put_line('RET Transaction Type');
11093 p_oks_txn_inst_tbl(l_oks_txn_count).RET := 'Y';
11094 p_oks_txn_inst_tbl(l_oks_txn_count).termination_date := l_transaction_date;
11095 p_oks_txn_inst_tbl(l_oks_txn_count).transaction_date := l_txn_date;
11096 END IF;
11097 --
11098 IF p_transaction_type ='IDC' THEN
11099 csi_gen_utility_pvt.put_line('IDC Transaction Type');
11100 p_oks_txn_inst_tbl(l_oks_txn_count).IDC := 'Y';
11101 p_oks_txn_inst_tbl(l_oks_txn_count).termination_date := l_transaction_date;
11102 p_oks_txn_inst_tbl(l_oks_txn_count).transaction_date := l_txn_date;
11103 END IF;
11104 --
11105 IF p_transaction_type = 'UPD' THEN
11106 csi_gen_utility_pvt.put_line('UPD Transaction Type');
11107 p_oks_txn_inst_tbl(l_oks_txn_count).new_quantity :=
11108 p_oks_txn_inst_tbl(l_oks_txn_count).old_quantity;
11109 p_oks_txn_inst_tbl(l_oks_txn_count).old_quantity := p_quantity; -- Passed old Qty
11110 p_oks_txn_inst_tbl(l_oks_txn_count).UPD := 'Y';
11111 p_oks_txn_inst_tbl(l_oks_txn_count).transaction_date := l_txn_date;
11112 --
11113 IF p_txn_type_id is NOT NULL AND
11114 p_txn_type_id <> FND_API.G_MISS_NUM AND
11115 p_txn_type_id in (53,54) THEN
11116 p_oks_txn_inst_tbl(l_oks_txn_count).return_reason_code := 'RETURN'; -- RMA
11117 ELSE
11118 p_oks_txn_inst_tbl(l_oks_txn_count).return_reason_code := 'REGULAR';
11119 END IF;
11120 ELSE
11121 p_oks_txn_inst_tbl(l_oks_txn_count).return_reason_code := NULL;
11122 END IF;
11123 --
11124 IF p_transaction_type = 'NEW' THEN
11125 csi_gen_utility_pvt.put_line('NEW Transaction Type');
11126 IF p_call_from_bom_expl = FND_API.G_TRUE THEN
11127 p_oks_txn_inst_tbl(l_oks_txn_count).bom_explosion_flag := 'Y';
11128 ELSE
11129 p_oks_txn_inst_tbl(l_oks_txn_count).bom_explosion_flag := 'N';
11130 END IF;
11131 p_oks_txn_inst_tbl(l_oks_txn_count).NEW := 'Y';
11132 p_oks_txn_inst_tbl(l_oks_txn_count).transaction_date := l_txn_date;
11133 END IF;
11134 --
11135 IF p_vld_org_id IS NULL OR
11136 p_vld_org_id = FND_API.G_MISS_NUM
11137 THEN
11138 p_oks_txn_inst_tbl(l_oks_txn_count).organization_id := l_instance_csr.last_vld_organization_id; -- Changed from Master Org
11139 ELSE
11140 p_oks_txn_inst_tbl(l_oks_txn_count).organization_id := p_vld_org_id ;
11141 END IF;
11142 -- Added by sk for bug 2190051
11143 IF l_order_org_id IS NOT NULL THEN
11144 p_oks_txn_inst_tbl(l_oks_txn_count).org_id := l_order_org_id;
11145 ELSE
11146 SELECT operating_unit
11147 INTO p_oks_txn_inst_tbl(l_oks_txn_count).org_id
11148 FROM org_organization_definitions
11149 WHERE organization_id = p_oks_txn_inst_tbl(l_oks_txn_count).organization_id ;
11150 END IF;
11151 -- Added by sk for bug 2190051
11152 --
11153 -- Added for ER 3381250
11154 l_rma_line_id := l_instance_csr.last_oe_rma_line_id;
11155 --
11156 IF l_rma_line_id IS NOT NULL THEN
11157 BEGIN
11158 csi_gen_utility_pvt.put_line('Calling package oe_service_credit_grp.get_service_credit_eligible');
11159 csi_gen_utility_pvt.put_line('to retreive service_credit_eligible_code for rma line id :'||l_rma_line_id);
11160 --l_sql := 'BEGIN oe_service_credit_grp.get_service_credit_eligible( :l_line_id, :l_service_code); END;';
11161 oe_service_credit_grp.get_service_credit_eligible
11162 ( p_line_id => l_rma_line_id
11163 ,p_service_credit_eligible => p_oks_txn_inst_tbl(l_oks_txn_count).raise_credit
11164 );
11165 -- EXECUTE IMMEDIATE l_sql USING IN l_rma_line_id, OUT p_oks_txn_inst_tbl(l_oks_txn_count).raise_credit;
11166 csi_gen_utility_pvt.put_line( 'Value of raise_credit is : '||p_oks_txn_inst_tbl(l_oks_txn_count).raise_credit);
11167 EXCEPTION
11168 WHEN OTHERS THEN
11169 csi_gen_utility_pvt.put_line('Into when others exception. ');
11170 csi_gen_utility_pvt.put_line( 'Nothing is assigned to raise_credit. ');
11171 END;
11172 ELSE
11173 csi_gen_utility_pvt.put_line('RMA line id is null');
11174 END IF;
11175 -- End addition for ER 3381250
11176 --
11177 IF p_transaction_type= 'SPL' THEN
11178 csi_gen_utility_pvt.put_line('SPL Transaction Type');
11179 OPEN instance_csr (p_new_instance_id);
11180 FETCH instance_csr INTO l_new_ins_csr;
11181 CLOSE instance_csr;
11182 --
11183 p_oks_txn_inst_tbl(l_oks_txn_count).new_customer_product_id := p_new_instance_id;
11184 p_oks_txn_inst_tbl(l_oks_txn_count).new_customer_acct_id :=
11185 p_oks_txn_inst_tbl(l_oks_txn_count).old_customer_acct_id;
11186 p_oks_txn_inst_tbl(l_oks_txn_count).new_inventory_item_id :=
11187 p_oks_txn_inst_tbl(l_oks_txn_count).old_inventory_item_id;
11188 p_oks_txn_inst_tbl(l_oks_txn_count).new_unit_of_measure :=
11189 p_oks_txn_inst_tbl(l_oks_txn_count).old_unit_of_measure;
11190 p_oks_txn_inst_tbl(l_oks_txn_count).new_quantity := l_new_ins_csr.quantity;
11191 p_oks_txn_inst_tbl(l_oks_txn_count).old_quantity := p_quantity; -- Passed old Qty
11192 p_oks_txn_inst_tbl(l_oks_txn_count).SPL := 'Y';
11193 p_oks_txn_inst_tbl(l_oks_txn_count).transaction_date := l_txn_date;
11194 END IF;
11195 --
11196 IF p_transaction_type = 'TRF' THEN
11197 csi_gen_utility_pvt.put_line('TRF Transaction Type');
11198 -- Need to notify contracts with the system_id during 'TRF'.
11199 IF p_system_id IS NOT NULL AND
11200 p_system_id <> FND_API.G_MISS_NUM THEN
11201 p_oks_txn_inst_tbl(l_oks_txn_count).system_id := p_system_id;
11202 ELSE
11203 p_oks_txn_inst_tbl(l_oks_txn_count).system_id := NULL;
11204 END IF;
11205 --
11206 p_oks_txn_inst_tbl(l_oks_txn_count).new_customer_product_id :=
11207 p_oks_txn_inst_tbl(l_oks_txn_count).old_customer_product_id;
11208 p_oks_txn_inst_tbl(l_oks_txn_count).new_inventory_item_id :=
11209 p_oks_txn_inst_tbl(l_oks_txn_count).old_inventory_item_id;
11210 p_oks_txn_inst_tbl(l_oks_txn_count).new_unit_of_measure :=
11211 p_oks_txn_inst_tbl(l_oks_txn_count).old_unit_of_measure;
11212 p_oks_txn_inst_tbl(l_oks_txn_count).new_quantity :=
11213 p_oks_txn_inst_tbl(l_oks_txn_count).old_quantity;
11214 p_oks_txn_inst_tbl(l_oks_txn_count).new_customer_acct_id := p_party_account_id2;
11215 p_oks_txn_inst_tbl(l_oks_txn_count).old_customer_acct_id := p_party_account_id1;
11216 --
11217 -- The following code has been added by sguthiva in order to incorporate the
11218 -- changes made by the HTML UI .
11219 -- When HTML UI passes a transaction date which should be less than sysdate,
11220 -- then before calling contracts we need to make sure that there are no transactions
11221 -- between passed date and sysdate.
11222 IF (( p_source_transaction_date IS NOT NULL) AND (p_source_transaction_date < SYSDATE)) AND
11223 p_source_transaction_date <> fnd_api.g_miss_date THEN
11224 l_temp:=NULL;
11225 -- srramakr changed to source_transaction_date instead of transaction_date (3804960)
11226 BEGIN
11227 SELECT 'x'
11228 INTO l_temp
11229 FROM csi_inst_transactions_v
11230 WHERE instance_id=p_instance_id
11231 AND source_transaction_date > p_source_transaction_date
11232 AND transaction_id <> p_transaction_id
11233 AND ROWNUM=1;
11234 IF l_temp IS NOT NULL THEN
11235 x_return_status := fnd_api.g_ret_sts_error ;
11236 fnd_message.set_name('CSI', 'CSI_HAS_TXNS_GT_SYS');
11237 fnd_message.set_token('INSTANCE_ID',p_instance_id );
11238 fnd_message.set_token('SOURCE_TXN_DATE',to_char(p_source_transaction_date, 'DD-MON-YYYY HH24:MI:SS'));
11239 fnd_msg_pub.add;
11240 RAISE fnd_api.g_exc_error;
11241 END IF;
11242 EXCEPTION
11243 WHEN fnd_api.g_exc_error THEN
11244 RAISE fnd_api.g_exc_error;
11245 WHEN OTHERS THEN
11246 NULL;
11247 END;
11248 ELSIF (( p_source_transaction_date IS NOT NULL) AND (p_source_transaction_date > SYSDATE)) AND
11249 p_source_transaction_date <> fnd_api.g_miss_date THEN
11250 x_return_status := fnd_api.g_ret_sts_error ;
11251 fnd_message.set_name('CSI', 'CSI_PASS_TXNS_GT_SYS');
11252 fnd_message.set_token('SOURCE_TXN_DATE',to_char(p_source_transaction_date, 'DD-MON-YYYY HH24:MI:SS'));
11253 fnd_msg_pub.add;
11254 RAISE fnd_api.g_exc_error;
11255 END IF;
11256 p_oks_txn_inst_tbl(l_oks_txn_count).transfer_date := l_transaction_date;
11257 p_oks_txn_inst_tbl(l_oks_txn_count).transaction_date := l_txn_date;
11258 p_oks_txn_inst_tbl(l_oks_txn_count).TRF := 'Y';
11259 -- End changes by sguthiva for HTML
11260 ELSE
11261 p_oks_txn_inst_tbl(l_oks_txn_count).system_id := NULL;
11262 END IF;
11263 --
11264 -- Start addition for 'RPL'
11265 IF p_transaction_type= 'RPL' THEN
11266 csi_gen_utility_pvt.put_line('RPL Transaction Type');
11267 OPEN instance_csr (p_new_instance_id);
11268 FETCH instance_csr INTO l_new_instance_csr;
11269 CLOSE instance_csr;
11270 --
11271 IF l_new_instance_csr.owner_party_id IS NOT NULL AND
11272 l_new_instance_csr.owner_party_id <> l_internal_party_id AND
11273 l_new_instance_csr.owner_party_source_table = 'HZ_PARTIES' THEN
11274 l_call_contracts := TRUE;
11275 p_oks_txn_inst_tbl(l_oks_txn_count).new_customer_product_id := p_new_instance_id;
11276 p_oks_txn_inst_tbl(l_oks_txn_count).new_quantity := l_new_instance_csr.quantity;
11277 p_oks_txn_inst_tbl(l_oks_txn_count).new_unit_of_measure := l_new_instance_csr.unit_of_measure;
11278 p_oks_txn_inst_tbl(l_oks_txn_count).new_inventory_item_id := l_new_instance_csr.inventory_item_id;
11279 p_oks_txn_inst_tbl(l_oks_txn_count).RPL := 'Y';
11280 p_oks_txn_inst_tbl(l_oks_txn_count).transaction_date := l_txn_date;
11281
11282 --Added for bug 6617569--
11283 csi_gen_utility_pvt.put_line('Addition of order line id........');
11284 p_oks_txn_inst_tbl(l_oks_txn_count).order_line_id := l_new_instance_csr.last_oe_order_line_id;
11285 csi_gen_utility_pvt.put_line('New order line id........'||p_oks_txn_inst_tbl(l_oks_txn_count).order_line_id);
11286 csi_gen_utility_pvt.put_line('New instance id........'||p_oks_txn_inst_tbl(l_oks_txn_count).new_customer_product_id);
11287
11288 END IF;
11289 END IF;
11290 IF p_oks_txn_inst_tbl(l_oks_txn_count).order_line_id IS NULL THEN
11291 p_oks_txn_inst_tbl(l_oks_txn_count).order_line_id := okc_api.g_miss_num;
11292 END IF;
11293 -- Pass G_MISS order line ID while un-expiring an Instance if there is no change to the line_id.
11294 IF p_transaction_type= 'NEW' THEN
11295 csi_gen_utility_pvt.put_line('NEW Transaction Type');
11296 IF nvl(p_order_line_id,-99999) <> FND_API.G_MISS_NUM THEN
11297 p_oks_txn_inst_tbl(l_oks_txn_count).order_line_id := nvl(p_order_line_id,FND_API.G_MISS_NUM);
11298 END IF;
11299 END IF;
11300 END IF;
11301 END IF;
11302 --
11303 csi_gen_utility_pvt.put_line('End Call_to_Contracts : '||to_char(sysdate,'DD-MON-YYYY HH24:MI:SS'));
11304 EXCEPTION
11305 WHEN fnd_api.g_exc_error THEN
11306 RAISE fnd_api.g_exc_error;
11307 WHEN OTHERS THEN
11308 FND_MESSAGE.Set_Name('CSI', 'CSI_UNEXP_SQL_ERROR');
11309 FND_MESSAGE.Set_Token('API_NAME', 'Call_to_Contracts');
11310 FND_MESSAGE.Set_Token('SQL_ERROR', sqlerrm);
11311 FND_MSG_PUB.Add;
11312 RAISE fnd_api.g_exc_error;
11313 END Call_to_Contracts;
11314
11315 PROCEDURE update_txn_status(
11316 px_txn_rec IN OUT nocopy csi_datastructures_pub.transaction_rec,
11317 x_return_status OUT nocopy varchar2)
11318 IS
11319 l_return_status varchar2(1) := fnd_api.g_ret_sts_success;
11320 l_msg_count number;
11321 l_msg_data varchar2(2000);
11322 BEGIN
11323
11324 x_return_status := fnd_api.g_ret_sts_success;
11325
11326 SELECT object_version_number
11327 INTO px_txn_rec.object_version_number
11328 FROM csi_transactions
11329 WHERE transaction_id = px_txn_rec.transaction_id;
11330
11331 csi_transactions_pvt.update_transactions(
11332 p_api_version => 1.0,
11333 p_init_msg_list => fnd_api.g_true,
11334 p_commit => fnd_api.g_false,
11335 p_validation_level => fnd_api.g_valid_level_full,
11336 p_transaction_rec => px_txn_rec,
11337 x_return_status => l_return_status,
11338 x_msg_count => l_msg_count,
11339 x_msg_data => l_msg_data);
11340
11341 IF l_return_status <> fnd_api.g_ret_sts_success THEN
11342 RAISE fnd_api.g_exc_error;
11343 END IF;
11344
11345 EXCEPTION
11346 WHEN fnd_api.g_exc_error THEN
11347 x_return_status := fnd_api.g_ret_sts_error;
11348 END update_txn_status;
11349
11350
11351 /*------------------------------------------------------*/
11352 /* Procedure name: update_item_instance */
11353 /* Description : procedure used to update an Item */
11354 /* Instance */
11355 /*------------------------------------------------------*/
11356
11357 PROCEDURE Update_Item_Instance(
11358 p_api_version IN NUMBER
11359 ,p_commit IN VARCHAR2
11360 ,p_init_msg_list IN VARCHAR2
11361 ,p_validation_level IN NUMBER
11362 ,p_instance_rec IN OUT NOCOPY csi_datastructures_pub.instance_rec
11363 ,p_txn_rec IN OUT NOCOPY csi_datastructures_pub.transaction_rec
11364 ,x_instance_id_lst OUT NOCOPY csi_datastructures_pub.id_tbl
11365 ,x_return_status OUT NOCOPY VARCHAR2
11366 ,x_msg_count OUT NOCOPY NUMBER
11367 ,x_msg_data OUT NOCOPY VARCHAR2
11368 ,p_item_attribute_tbl IN OUT NOCOPY csi_item_instance_pvt.item_attribute_tbl
11369 ,p_location_tbl IN OUT NOCOPY csi_item_instance_pvt.location_tbl
11370 ,p_generic_id_tbl IN OUT NOCOPY csi_item_instance_pvt.generic_id_tbl
11371 ,p_lookup_tbl IN OUT NOCOPY csi_item_instance_pvt.lookup_tbl
11372 ,p_ins_count_rec IN OUT NOCOPY csi_item_instance_pvt.ins_count_rec
11373 ,p_called_from_rel IN VARCHAR2
11374 ,p_validation_mode IN VARCHAR2
11375 ,p_oks_txn_inst_tbl IN OUT NOCOPY oks_ibint_pub.txn_instance_tbl
11376 ,p_child_inst_tbl IN OUT NOCOPY csi_item_instance_grp.child_inst_tbl
11377 )
11378 IS
11379 l_api_name CONSTANT VARCHAR2(30) := 'UPDATE_ITEM_INSTANCE';
11380 l_api_version CONSTANT NUMBER := 1.0;
11381 l_debug_level NUMBER;
11382 l_instance_id NUMBER;
11383 l_mod_curr_instance_rec csi_datastructures_pub.instance_rec;
11384 l_party_tbl csi_datastructures_pub.party_tbl;
11385 l_asset_tbl csi_datastructures_pub.instance_asset_rec;
11386 l_dummy VARCHAR2(1);
11387 l_instance_rec csi_datastructures_pub.instance_rec;
11388 l_get_instance_rec csi_datastructures_pub.instance_rec;
11389 l_check_instance_rec csi_datastructures_pub.instance_rec;
11390 l_version_label_rec csi_datastructures_pub.version_label_rec;
11391 l_object_version_number NUMBER;
11392 l_return_value BOOLEAN;
11393 l_csi_item_instance_h_id NUMBER;
11394 l_full_dump_frequency NUMBER;
11395 l_owner NUMBER;
11396 l_owner_count NUMBER := 0;
11397 l_org_id NUMBER;
11398 l_inv_org_id NUMBER;
11399 l_int_party_id NUMBER;
11400 l_serial_control NUMBER;
11401 l_lot_control NUMBER;
11402 l_shelf_life_code NUMBER;
11403 l_mod_value NUMBER;
11404 l_dump_flag VARCHAR2(1);
11405 l_msg_index NUMBER;
11406 l_msg_count NUMBER;
11407 l_msg_dummy NUMBER;
11408 l_party_rec csi_datastructures_pub.party_rec;
11409 l_party_owner_rec csi_datastructures_pub.party_rec;
11410 l_location_type_code VARCHAR2(20);
11411 l_location_id NUMBER;
11412 l_inv_organization_id NUMBER;
11413 l_inv_subinventory_name VARCHAR2(10);
11414 l_inv_locator_id NUMBER;
11415 l_pa_project_id NUMBER;
11416 l_pa_project_task_id NUMBER;
11417 l_in_tran_order_line_id NUMBER;
11418 l_wip_job_id NUMBER;
11419 l_po_order_line_id NUMBER;
11420 l_acct_class_code VARCHAR2(10);
11421 l_sys_date DATE := SYSDATE;
11422 l_last_vld_organization_id NUMBER;
11423 l_trackable_flag VARCHAR2(1);
11424 l_uom_code VARCHAR2(3);
11425 l_rev_control NUMBER;
11426 l_exists_flag VARCHAR2(1);
11427 l_valid_flag VARCHAR2(1);
11428 l_ctr_grp_id_template NUMBER;
11429 l_ctr_grp_id_instance NUMBER;
11430 l_ctr_id_template csi_counter_template_pub.ctr_template_autoinst_tbl;
11431 l_ctr_id_instance csi_counter_template_pub.counter_autoinstantiate_tbl;
11432 l_base_item_id NUMBER;
11433 l_ctr_association_id NUMBER;
11434 l_association_type VARCHAR2(30) := 'PROD_ITEM';
11435 -- l_desc_flex CS_COUNTERS_EXT_PVT.DFF_Rec_Type;
11436 -- Counter ref r12 changes
11437 l_desc_flex CSI_CTR_DATASTRUCTURES_PUB.DFF_REC_TYPE;
11438 l_delete_status VARCHAR2(1);
11439 l_exists VARCHAR2(1);
11440 l_instance_hist_rec csi_datastructures_pub.instance_history_rec;
11441 l_prior_txn_id NUMBER;
11442 l_oe_line_id NUMBER;
11443 l_install_date DATE;
11444 l_current_val NUMBER;
11445 l_txn_status varchar2(10) := 'COMPLETE';
11446 l_part_or_serial_change BOOLEAN := FALSE; --6176621
11447 l_number_open_ro NUMBER;
11448 --
11449 l_mtl_txn_tbl CSI_DATASTRUCTURES_PUB.MTL_TXN_TBL; -- Added for the bug 6875664, base bug 6531599
11450 CURSOR CTR_GROUP(p_src_object_id IN NUMBER) IS
11451 SELECT group_id
11452 FROM csi_ctr_item_associations
11453 WHERE inventory_item_id = p_src_object_id;
11454
11455 CURSOR party_owner_rec (p_instance_id NUMBER) is
11456 SELECT
11457 INSTANCE_PARTY_ID,
11458 INSTANCE_ID,
11459 PARTY_SOURCE_TABLE,
11460 PARTY_ID,
11461 RELATIONSHIP_TYPE_CODE,
11462 CONTACT_FLAG,
11463 CONTACT_IP_ID,
11464 ACTIVE_START_DATE,
11465 ACTIVE_END_DATE,
11466 CONTEXT,
11467 ATTRIBUTE1,
11468 ATTRIBUTE2,
11469 ATTRIBUTE3,
11470 ATTRIBUTE4,
11471 ATTRIBUTE5,
11472 ATTRIBUTE6,
11473 ATTRIBUTE7,
11474 ATTRIBUTE8,
11475 ATTRIBUTE9,
11476 ATTRIBUTE10,
11477 ATTRIBUTE11,
11478 ATTRIBUTE12,
11479 ATTRIBUTE13,
11480 ATTRIBUTE14,
11481 ATTRIBUTE15,
11482 OBJECT_VERSION_NUMBER,
11483 PRIMARY_FLAG,
11484 PREFERRED_FLAG,
11485 NULL PARENT_TBL_INDEX,
11486 --NULL PROCESSED_FLAG,
11487 NULL CALL_CONTRACTS,
11488 NULL INTERFACE_ID,
11489 NULL CONTACT_PARENT_TBL_INDEX,
11490 NULL CASCADE_OWNERSHIP_FLAG -- Added for bug 2972082
11491 FROM csi_i_parties
11492 WHERE instance_id = p_instance_id
11493 AND relationship_type_code = 'OWNER';
11494
11495
11496 CURSOR curr_instance_rec(p_instance_id IN NUMBER) IS
11497 SELECT
11498 INSTANCE_ID,
11499 INSTANCE_NUMBER,
11500 EXTERNAL_REFERENCE,
11501 INVENTORY_ITEM_ID,
11502 NULL VLD_ORGANIZATION_ID,
11503 INVENTORY_REVISION,
11504 INV_MASTER_ORGANIZATION_ID,
11505 SERIAL_NUMBER,
11506 MFG_SERIAL_NUMBER_FLAG,
11507 LOT_NUMBER,
11508 QUANTITY,
11509 UNIT_OF_MEASURE,
11510 ACCOUNTING_CLASS_CODE,
11511 INSTANCE_CONDITION_ID,
11512 INSTANCE_STATUS_ID,
11513 CUSTOMER_VIEW_FLAG,
11514 MERCHANT_VIEW_FLAG,
11515 SELLABLE_FLAG,
11516 SYSTEM_ID,
11517 INSTANCE_TYPE_CODE,
11518 ACTIVE_START_DATE,
11519 ACTIVE_END_DATE,
11520 LOCATION_TYPE_CODE,
11521 LOCATION_ID,
11522 INV_ORGANIZATION_ID,
11523 INV_SUBINVENTORY_NAME,
11524 INV_LOCATOR_ID,
11525 PA_PROJECT_ID,
11526 PA_PROJECT_TASK_ID,
11527 IN_TRANSIT_ORDER_LINE_ID,
11528 WIP_JOB_ID,
11529 PO_ORDER_LINE_ID,
11530 LAST_OE_ORDER_LINE_ID,
11531 LAST_OE_RMA_LINE_ID,
11532 LAST_PO_PO_LINE_ID,
11533 LAST_OE_PO_NUMBER,
11534 LAST_WIP_JOB_ID,
11535 LAST_PA_PROJECT_ID,
11536 LAST_PA_TASK_ID,
11537 LAST_OE_AGREEMENT_ID,
11538 INSTALL_DATE,
11539 MANUALLY_CREATED_FLAG,
11540 RETURN_BY_DATE,
11541 ACTUAL_RETURN_DATE,
11542 CREATION_COMPLETE_FLAG,
11543 COMPLETENESS_FLAG,
11544 NULL VERSION_LABEL,
11545 NULL VERSION_LABEL_DESCRIPTION,
11546 CONTEXT,
11547 ATTRIBUTE1,
11548 ATTRIBUTE2,
11549 ATTRIBUTE3,
11550 ATTRIBUTE4,
11551 ATTRIBUTE5,
11552 ATTRIBUTE6,
11553 ATTRIBUTE7,
11554 ATTRIBUTE8,
11555 ATTRIBUTE9,
11556 ATTRIBUTE10,
11557 ATTRIBUTE11,
11558 ATTRIBUTE12,
11559 ATTRIBUTE13,
11560 ATTRIBUTE14,
11561 ATTRIBUTE15,
11562 OBJECT_VERSION_NUMBER,
11563 LAST_TXN_LINE_DETAIL_ID,
11564 INSTALL_LOCATION_TYPE_CODE,
11565 INSTALL_LOCATION_ID,
11566 INSTANCE_USAGE_CODE,
11567 LAST_VLD_ORGANIZATION_ID,
11568 CONFIG_INST_HDR_ID,
11569 CONFIG_INST_ITEM_ID,
11570 CONFIG_INST_REV_NUM,
11571 CONFIG_VALID_STATUS,
11572 INSTANCE_DESCRIPTION,
11573 -- Added for eam integration
11574 NETWORK_ASSET_FLAG,
11575 MAINTAINABLE_FLAG,
11576 PN_LOCATION_ID,
11577 ASSET_CRITICALITY_CODE,
11578 CATEGORY_ID,
11579 EQUIPMENT_GEN_OBJECT_ID,
11580 INSTANTIATION_FLAG,
11581 LINEAR_LOCATION_ID,
11582 OPERATIONAL_LOG_FLAG,
11583 CHECKIN_STATUS,
11584 SUPPLIER_WARRANTY_EXP_DATE,
11585 ATTRIBUTE16,
11586 ATTRIBUTE17,
11587 ATTRIBUTE18,
11588 ATTRIBUTE19,
11589 ATTRIBUTE20,
11590 ATTRIBUTE21,
11591 ATTRIBUTE22,
11592 ATTRIBUTE23,
11593 ATTRIBUTE24,
11594 ATTRIBUTE25,
11595 ATTRIBUTE26,
11596 ATTRIBUTE27,
11597 ATTRIBUTE28,
11598 ATTRIBUTE29,
11599 ATTRIBUTE30,
11600 -- End addition for eam integration
11601 -- Addition of columns for FA Integration
11602 PURCHASE_UNIT_PRICE,
11603 PURCHASE_CURRENCY_CODE,
11604 PAYABLES_UNIT_PRICE,
11605 PAYABLES_CURRENCY_CODE,
11606 SALES_UNIT_PRICE,
11607 SALES_CURRENCY_CODE,
11608 OPERATIONAL_STATUS_CODE,
11609 -- End addition of columns for FA Integration
11610 SOURCE_CODE -- Added Code for Siebel Genesis Project
11611 FROM csi_item_instances
11612 WHERE instance_id = p_instance_id
11613 FOR UPDATE OF OBJECT_VERSION_NUMBER ;
11614 l_curr_instance_rec curr_instance_rec%ROWTYPE;
11615
11616 CURSOR cur_instance_rec(p_instance_id IN NUMBER) IS
11617 SELECT last_vld_organization_id
11618 FROM csi_item_instances
11619 WHERE instance_id = p_instance_id;
11620
11621 l_cur_instance_rec cur_instance_rec%ROWTYPE;
11622
11623 CURSOR ins_hist_csr(p_instance_history_id NUMBER) IS
11624 SELECT INSTANCE_HISTORY_ID
11625 ,INSTANCE_ID
11626 ,TRANSACTION_ID
11627 ,OLD_INSTANCE_NUMBER
11628 ,NEW_INSTANCE_NUMBER
11629 ,OLD_EXTERNAL_REFERENCE
11630 ,NEW_EXTERNAL_REFERENCE
11631 ,OLD_INVENTORY_ITEM_ID
11632 ,NEW_INVENTORY_ITEM_ID
11633 ,OLD_INVENTORY_REVISION
11634 ,NEW_INVENTORY_REVISION
11635 ,OLD_INV_MASTER_ORGANIZATION_ID
11636 ,NEW_INV_MASTER_ORGANIZATION_ID
11637 ,OLD_SERIAL_NUMBER
11638 ,NEW_SERIAL_NUMBER
11639 ,OLD_MFG_SERIAL_NUMBER_FLAG
11640 ,NEW_MFG_SERIAL_NUMBER_FLAG
11641 ,OLD_LOT_NUMBER
11642 ,NEW_LOT_NUMBER
11643 ,OLD_QUANTITY
11644 ,NEW_QUANTITY
11645 ,OLD_UNIT_OF_MEASURE
11646 ,NEW_UNIT_OF_MEASURE
11647 ,OLD_ACCOUNTING_CLASS_CODE
11648 ,NEW_ACCOUNTING_CLASS_CODE
11649 ,OLD_INSTANCE_CONDITION_ID
11650 ,NEW_INSTANCE_CONDITION_ID
11651 ,OLD_INSTANCE_STATUS_ID
11652 ,NEW_INSTANCE_STATUS_ID
11653 ,OLD_CUSTOMER_VIEW_FLAG
11654 ,NEW_CUSTOMER_VIEW_FLAG
11655 ,OLD_MERCHANT_VIEW_FLAG
11656 ,NEW_MERCHANT_VIEW_FLAG
11657 ,OLD_SELLABLE_FLAG
11658 ,NEW_SELLABLE_FLAG
11659 ,OLD_SYSTEM_ID
11660 ,NEW_SYSTEM_ID
11661 ,OLD_INSTANCE_TYPE_CODE
11662 ,NEW_INSTANCE_TYPE_CODE
11663 ,OLD_ACTIVE_START_DATE
11664 ,NEW_ACTIVE_START_DATE
11665 ,OLD_ACTIVE_END_DATE
11666 ,NEW_ACTIVE_END_DATE
11667 ,OLD_LOCATION_TYPE_CODE
11668 ,NEW_LOCATION_TYPE_CODE
11669 ,OLD_LOCATION_ID
11670 ,NEW_LOCATION_ID
11671 ,OLD_INV_ORGANIZATION_ID
11672 ,NEW_INV_ORGANIZATION_ID
11673 ,OLD_INV_SUBINVENTORY_NAME
11674 ,NEW_INV_SUBINVENTORY_NAME
11675 ,OLD_INV_LOCATOR_ID
11676 ,NEW_INV_LOCATOR_ID
11677 ,OLD_PA_PROJECT_ID
11678 ,NEW_PA_PROJECT_ID
11679 ,OLD_PA_PROJECT_TASK_ID
11680 ,NEW_PA_PROJECT_TASK_ID
11681 ,OLD_IN_TRANSIT_ORDER_LINE_ID
11682 ,NEW_IN_TRANSIT_ORDER_LINE_ID
11683 ,OLD_WIP_JOB_ID
11684 ,NEW_WIP_JOB_ID
11685 ,OLD_PO_ORDER_LINE_ID
11686 ,NEW_PO_ORDER_LINE_ID
11687 ,OLD_COMPLETENESS_FLAG
11688 ,NEW_COMPLETENESS_FLAG
11689 ,OLD_CONTEXT
11690 ,NEW_CONTEXT
11691 ,OLD_ATTRIBUTE1
11692 ,NEW_ATTRIBUTE1
11693 ,OLD_ATTRIBUTE2
11694 ,NEW_ATTRIBUTE2
11695 ,OLD_ATTRIBUTE3
11696 ,NEW_ATTRIBUTE3
11697 ,OLD_ATTRIBUTE4
11698 ,NEW_ATTRIBUTE4
11699 ,OLD_ATTRIBUTE5
11700 ,NEW_ATTRIBUTE5
11701 ,OLD_ATTRIBUTE6
11702 ,NEW_ATTRIBUTE6
11703 ,OLD_ATTRIBUTE7
11704 ,NEW_ATTRIBUTE7
11705 ,OLD_ATTRIBUTE8
11706 ,NEW_ATTRIBUTE8
11707 ,OLD_ATTRIBUTE9
11708 ,NEW_ATTRIBUTE9
11709 ,OLD_ATTRIBUTE10
11710 ,NEW_ATTRIBUTE10
11711 ,OLD_ATTRIBUTE11
11712 ,NEW_ATTRIBUTE11
11713 ,OLD_ATTRIBUTE12
11714 ,NEW_ATTRIBUTE12
11715 ,OLD_ATTRIBUTE13
11716 ,NEW_ATTRIBUTE13
11717 ,OLD_ATTRIBUTE14
11718 ,NEW_ATTRIBUTE14
11719 ,OLD_ATTRIBUTE15
11720 ,NEW_ATTRIBUTE15
11721 ,FULL_DUMP_FLAG
11722 ,OLD_INST_LOC_TYPE_CODE
11723 ,NEW_INST_LOC_TYPE_CODE
11724 ,OLD_INST_LOC_ID
11725 ,NEW_INST_LOC_ID
11726 ,OLD_INST_USAGE_CODE
11727 ,NEW_INST_USAGE_CODE
11728 ,OLD_LAST_VLD_ORGANIZATION_ID
11729 ,NEW_LAST_VLD_ORGANIZATION_ID
11730 ,OLD_CONFIG_INST_REV_NUM
11731 ,NEW_CONFIG_INST_REV_NUM
11732 ,OLD_CONFIG_VALID_STATUS
11733 ,NEW_CONFIG_VALID_STATUS
11734 ,OLD_INSTANCE_DESCRIPTION
11735 ,NEW_INSTANCE_DESCRIPTION
11736 ,OLD_INSTALL_DATE
11737 ,NEW_INSTALL_DATE
11738 ,OLD_RETURN_BY_DATE
11739 ,NEW_RETURN_BY_DATE
11740 ,OLD_ACTUAL_RETURN_DATE
11741 ,NEW_ACTUAL_RETURN_DATE
11742 ,OLD_OE_AGREEMENT_ID
11743 ,NEW_OE_AGREEMENT_ID
11744 ,OLD_LAST_OE_ORDER_LINE_ID
11745 ,NEW_LAST_OE_ORDER_LINE_ID
11746 ,OLD_LAST_OE_RMA_LINE_ID
11747 ,NEW_LAST_OE_RMA_LINE_ID
11748 ,OLD_LAST_WIP_JOB_ID
11749 ,NEW_LAST_WIP_JOB_ID
11750 ,OLD_LAST_PO_PO_LINE_ID
11751 ,NEW_LAST_PO_PO_LINE_ID
11752 ,OLD_LAST_PA_PROJECT_ID
11753 ,NEW_LAST_PA_PROJECT_ID
11754 ,OLD_LAST_PA_TASK_ID
11755 ,NEW_LAST_PA_TASK_ID
11756 ,OLD_LAST_TXN_LINE_DETAIL_ID
11757 ,NEW_LAST_TXN_LINE_DETAIL_ID
11758 ,OLD_LAST_OE_PO_NUMBER
11759 ,NEW_LAST_OE_PO_NUMBER
11760 --start of column addition for eam integration--
11761 ,OLD_NETWORK_ASSET_FLAG
11762 ,NEW_NETWORK_ASSET_FLAG
11763 ,OLD_MAINTAINABLE_FLAG
11764 ,NEW_MAINTAINABLE_FLAG
11765 ,OLD_PN_LOCATION_ID
11766 ,NEW_PN_LOCATION_ID
11767 ,OLD_ASSET_CRITICALITY_CODE
11768 ,NEW_ASSET_CRITICALITY_CODE
11769 ,OLD_CATEGORY_ID
11770 ,NEW_CATEGORY_ID
11771 ,OLD_EQUIPMENT_GEN_OBJECT_ID
11772 ,NEW_EQUIPMENT_GEN_OBJECT_ID
11773 ,OLD_INSTANTIATION_FLAG
11774 ,NEW_INSTANTIATION_FLAG
11775 ,OLD_LINEAR_LOCATION_ID
11776 ,NEW_LINEAR_LOCATION_ID
11777 ,OLD_OPERATIONAL_LOG_FLAG
11778 ,NEW_OPERATIONAL_LOG_FLAG
11779 ,OLD_CHECKIN_STATUS
11780 ,NEW_CHECKIN_STATUS
11781 ,OLD_SUPPLIER_WARRANTY_EXP_DATE
11782 ,NEW_SUPPLIER_WARRANTY_EXP_DATE
11783 ,OLD_ATTRIBUTE16
11784 ,NEW_ATTRIBUTE16
11785 ,OLD_ATTRIBUTE17
11786 ,NEW_ATTRIBUTE17
11787 ,OLD_ATTRIBUTE18
11788 ,NEW_ATTRIBUTE18
11789 ,OLD_ATTRIBUTE19
11790 ,NEW_ATTRIBUTE19
11791 ,OLD_ATTRIBUTE20
11792 ,NEW_ATTRIBUTE20
11793 ,OLD_ATTRIBUTE21
11794 ,NEW_ATTRIBUTE21
11795 ,OLD_ATTRIBUTE22
11796 ,NEW_ATTRIBUTE22
11797 ,OLD_ATTRIBUTE23
11798 ,NEW_ATTRIBUTE23
11799 ,OLD_ATTRIBUTE24
11800 ,NEW_ATTRIBUTE24
11801 ,OLD_ATTRIBUTE25
11802 ,NEW_ATTRIBUTE25
11803 ,OLD_ATTRIBUTE26
11804 ,NEW_ATTRIBUTE26
11805 ,OLD_ATTRIBUTE27
11806 ,NEW_ATTRIBUTE27
11807 ,OLD_ATTRIBUTE28
11808 ,NEW_ATTRIBUTE28
11809 ,OLD_ATTRIBUTE29
11810 ,NEW_ATTRIBUTE29
11811 ,OLD_ATTRIBUTE30
11812 ,NEW_ATTRIBUTE30
11813 --end of column addition for eam integration--
11814 -- Addition of columns for FA Integration
11815 ,OLD_PAYABLES_UNIT_PRICE
11816 ,NEW_PAYABLES_UNIT_PRICE
11817 ,OLD_PAYABLES_CURRENCY_CODE
11818 ,NEW_PAYABLES_CURRENCY_CODE
11819 ,OLD_PURCHASE_UNIT_PRICE
11820 ,NEW_PURCHASE_UNIT_PRICE
11821 ,OLD_PURCHASE_CURRENCY_CODE
11822 ,NEW_PURCHASE_CURRENCY_CODE
11823 ,OLD_SALES_UNIT_PRICE
11824 ,NEW_SALES_UNIT_PRICE
11825 ,OLD_SALES_CURRENCY_CODE
11826 ,NEW_SALES_CURRENCY_CODE
11827 ,OLD_OPERATIONAL_STATUS_CODE
11828 ,NEW_OPERATIONAL_STATUS_CODE
11829 -- End addition of columns for FA Integration
11830 -- Begin Add Code for Siebel Genesis Project
11831 ,OLD_SOURCE_CODE
11832 ,NEW_SOURCE_CODE
11833 -- End Add Code for Siebel Genesis Project
11834 FROM csi_item_instances_h
11835 WHERE instance_history_id = p_instance_history_id
11836 FOR UPDATE OF OBJECT_VERSION_NUMBER ;
11837
11838
11839 CURSOR upd_ctr_assn_csr(p_source_object_id NUMBER) IS
11840 SELECT instance_association_id
11841 ,source_object_id
11842 ,counter_id
11843 ,object_version_number
11844 ,start_date_active --Add for bug 6963602
11845 FROM csi_counter_associations
11846 WHERE source_object_id = p_source_object_id
11847 AND source_object_code = 'CP';
11848
11849 l_ins_hist_id NUMBER;
11850 l_ins_hist_csr ins_hist_csr%ROWTYPE;
11851 l_temp_rec VARCHAR2(1);
11852 l_temp_rec1 VARCHAR2(1);
11853 l_open_service VARCHAR2(1);
11854 l_config_key csi_utility_grp.config_instance_key;
11855 l_config_valid_status VARCHAR2(10);
11856 l_return_status VARCHAR2(10);
11857 l_return_message VARCHAR2(100);
11858 l_component_ins_type VARCHAR2(1):=NULL;
11859 l_config_hdr_id NUMBER;
11860 l_config_rev_nbr NUMBER;
11861 l_original_status_id NUMBER;
11862 l_original_system_id NUMBER;
11863 l_orig_install_date DATE;
11864 l_unexpire VARCHAR2(1);
11865 l_ins_flag VARCHAR2(1);
11866 l_temp VARCHAR2(1);
11867 l_eam_item BOOLEAN := FALSE;
11868 l_eam_item_type NUMBER;
11869 l_instance_history_id NUMBER;
11870 l_maintenance_object_type NUMBER:=3;
11871 l_reason_failed VARCHAR2(30);
11872 l_token VARCHAR2(30);
11873 l_lock_status NUMBER;
11874 l_counter_group_id NUMBER :=0;
11875 l_ctr_item_associations_rec csi_ctr_datastructures_pub.ctr_item_associations_rec;
11876 l_valid BOOLEAN := TRUE;
11877 l_creation_flag VARCHAR2(1);
11878 l_gen_object_id NUMBER;
11879 l_ctr_associations_tbl csi_ctr_datastructures_pub.counter_associations_tbl;
11880 l_ctr NUMBER;
11881 l_curr_maint_org_id NUMBER;
11882 l_latest_maint_org_id NUMBER;
11883 l_equipment_type NUMBER;
11884 l_network_asset_flag VARCHAR2(1);
11885 l_pn_location_id NUMBER;
11886 BEGIN
11887 -- Standard Start of API savepoint
11888 IF FND_API.To_Boolean( p_commit )
11889 THEN
11890 SAVEPOINT update_item_instance_pvt;
11891 END IF;
11892
11893 -- Standard call to check for call compatibility.
11894 IF NOT FND_API.Compatible_API_Call (l_api_version,
11895 p_api_version,
11896 l_api_name ,
11897 G_PKG_NAME )
11898 THEN
11899 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
11900 END IF;
11901
11902 -- Initialize message list if p_init_msg_list is set to TRUE.
11903 IF FND_API.to_Boolean( p_init_msg_list ) THEN
11904 FND_MSG_PUB.initialize;
11905 END IF;
11906
11907 -- Initialize API return status to success
11908 x_return_status := FND_API.G_RET_STS_SUCCESS;
11909 -- Check the profile option debug_level for debug message reporting
11910 l_debug_level:=fnd_profile.value('CSI_DEBUG_LEVEL');
11911 -- If debug_level = 1 then dump the procedure name
11912 IF (l_debug_level > 0) THEN
11913 csi_gen_utility_pvt.put_line ( 'update_item_instance_pvt');
11914 END IF;
11915 -- If the debug level = 2 then dump all the parameters values.
11916
11917 IF (l_debug_level > 1) THEN
11918 csi_gen_utility_pvt.put_line ( 'update_item_instance_pvt:' ||
11919 p_api_version ||'-'||
11920 p_commit ||'-'||
11921 p_init_msg_list );
11922
11923 --dump the records in a log file
11924 csi_gen_utility_pvt.dump_instance_rec(p_instance_rec);
11925 csi_gen_utility_pvt.dump_txn_rec(p_txn_rec);
11926 END IF;
11927 -- Start API body
11928 --
11929 -- Initialize the Instance count
11930 --
11931 If p_ins_count_rec.inv_count is NULL OR
11932 p_ins_count_rec.inv_count = FND_API.G_MISS_NUM THEN
11933 p_ins_count_rec.inv_count := 0;
11934 End if;
11935 --
11936 If p_ins_count_rec.generic_count is NULL OR
11937 p_ins_count_rec.generic_count = FND_API.G_MISS_NUM THEN
11938 p_ins_count_rec.generic_count := 0;
11939 End if;
11940 --
11941 If p_ins_count_rec.location_count is NULL OR
11942 p_ins_count_rec.location_count = FND_API.G_MISS_NUM THEN
11943 p_ins_count_rec.location_count := 0;
11944 End if;
11945 --
11946 If p_ins_count_rec.lookup_count is NULL OR
11947 p_ins_count_rec.lookup_count = FND_API.G_MISS_NUM THEN
11948 p_ins_count_rec.lookup_count := 0;
11949 End if;
11950 --
11951 -- check if the object_version_number passed matches with the one
11952 -- in the database else raise error
11953 OPEN curr_instance_rec(p_instance_rec.INSTANCE_ID);
11954 FETCH curr_instance_rec INTO l_curr_instance_rec;
11955 IF (l_curr_instance_rec.object_version_number <> nvl(p_instance_rec.OBJECT_VERSION_NUMBER,0)) THEN
11956 FND_MESSAGE.Set_Name('CSI', 'CSI_API_OBJ_VER_MISMATCH');
11957 FND_MSG_PUB.ADD;
11958 RAISE FND_API.G_EXC_ERROR;
11959 END IF;
11960 CLOSE curr_instance_rec;
11961
11962 /* Fix for bug 4632441 : Here g_miss and null values for eam_columns are flip-flopped
11963 since EAM API treats g_miss and null value differently compared to CSI API */
11964 IF p_instance_rec.department_id = FND_API.G_MISS_NUM THEN
11965 p_instance_rec.department_id := NULL;
11966 ELSIF p_instance_rec.department_id IS NULL THEN
11967 p_instance_rec.department_id := FND_API.G_MISS_NUM;
11968 END IF;
11969
11970 IF p_instance_rec.wip_accounting_class = FND_API.G_MISS_CHAR THEN
11971 p_instance_rec.wip_accounting_class := NULL;
11972 ELSIF p_instance_rec.wip_accounting_class IS NULL THEN
11973 p_instance_rec.wip_accounting_class := FND_API.G_MISS_CHAR;
11974 END IF;
11975
11976 IF p_instance_rec.area_id = FND_API.G_MISS_NUM THEN
11977 p_instance_rec.area_id := NULL;
11978 ELSIF p_instance_rec.area_id IS NULL THEN
11979 p_instance_rec.area_id := FND_API.G_MISS_NUM;
11980 END IF;
11981
11982
11983
11984
11985 --Added for MACD lock functionality
11986 IF p_instance_rec.instance_id IS NOT NULL AND
11987 p_instance_rec.instance_id <> fnd_api.g_miss_num
11988 THEN
11989 csi_item_instance_pvt.get_instance_lock_status
11990 ( p_instance_id => p_instance_rec.instance_id ,
11991 p_lock_status => l_lock_status
11992 );
11993 IF (p_txn_rec.transaction_type_id = 401 AND
11994 (l_lock_status = 1 OR p_called_from_rel = fnd_api.g_true)) OR
11995 (l_lock_status = 0)
11996 THEN
11997 NULL;
11998 ELSE
11999 FND_MESSAGE.SET_NAME('CSI','CSI_INSTANCE_LOCKED');
12000 FND_MESSAGE.SET_TOKEN('INSTANCE_ID',p_instance_rec.instance_id);
12001 FND_MSG_PUB.ADD;
12002 RAISE FND_API.G_EXC_ERROR;
12003 END IF;
12004 END IF;
12005 -- End addition for MACD lock functionality
12006
12007 OPEN cur_instance_rec(p_instance_rec.INSTANCE_ID);
12008 FETCH cur_instance_rec INTO l_cur_instance_rec;
12009 CLOSE cur_instance_rec;
12010
12011 l_mod_curr_instance_rec.INSTANCE_ID := l_curr_instance_rec.INSTANCE_ID;
12012 l_mod_curr_instance_rec.INSTANCE_NUMBER := l_curr_instance_rec.INSTANCE_NUMBER;
12013 l_mod_curr_instance_rec.EXTERNAL_REFERENCE := l_curr_instance_rec.EXTERNAL_REFERENCE ;
12014 l_mod_curr_instance_rec.INVENTORY_ITEM_ID := l_curr_instance_rec.INVENTORY_ITEM_ID ;
12015 l_mod_curr_instance_rec.VLD_ORGANIZATION_ID := l_curr_instance_rec.VLD_ORGANIZATION_ID ;
12016 l_mod_curr_instance_rec.INVENTORY_REVISION := l_curr_instance_rec.INVENTORY_REVISION ;
12017 l_mod_curr_instance_rec.INV_MASTER_ORGANIZATION_ID := l_curr_instance_rec.INV_MASTER_ORGANIZATION_ID ;
12018 l_mod_curr_instance_rec.SERIAL_NUMBER := l_curr_instance_rec.SERIAL_NUMBER ;
12019 l_mod_curr_instance_rec.MFG_SERIAL_NUMBER_FLAG := l_curr_instance_rec.MFG_SERIAL_NUMBER_FLAG ;
12020 l_mod_curr_instance_rec.LOT_NUMBER := l_curr_instance_rec.LOT_NUMBER ;
12021 l_mod_curr_instance_rec.QUANTITY := l_curr_instance_rec.QUANTITY ;
12022 l_mod_curr_instance_rec.UNIT_OF_MEASURE := l_curr_instance_rec.UNIT_OF_MEASURE ;
12023 l_mod_curr_instance_rec.ACCOUNTING_CLASS_CODE := l_curr_instance_rec.ACCOUNTING_CLASS_CODE ;
12024 l_mod_curr_instance_rec.INSTANCE_CONDITION_ID := l_curr_instance_rec.INSTANCE_CONDITION_ID ;
12025 l_mod_curr_instance_rec.INSTANCE_STATUS_ID := l_curr_instance_rec.INSTANCE_STATUS_ID ;
12026 l_mod_curr_instance_rec.CUSTOMER_VIEW_FLAG := l_curr_instance_rec.CUSTOMER_VIEW_FLAG ;
12027 l_mod_curr_instance_rec.MERCHANT_VIEW_FLAG := l_curr_instance_rec.MERCHANT_VIEW_FLAG ;
12028 l_mod_curr_instance_rec.SELLABLE_FLAG := l_curr_instance_rec.SELLABLE_FLAG ;
12029 l_mod_curr_instance_rec.SYSTEM_ID := l_curr_instance_rec.SYSTEM_ID ;
12030 l_mod_curr_instance_rec.INSTANCE_TYPE_CODE := l_curr_instance_rec.INSTANCE_TYPE_CODE ;
12031 l_mod_curr_instance_rec.ACTIVE_START_DATE := l_curr_instance_rec.ACTIVE_START_DATE ;
12032 l_mod_curr_instance_rec.ACTIVE_END_DATE := l_curr_instance_rec.ACTIVE_END_DATE ;
12033 l_mod_curr_instance_rec.LOCATION_TYPE_CODE := l_curr_instance_rec.LOCATION_TYPE_CODE ;
12034 l_mod_curr_instance_rec.LOCATION_ID := l_curr_instance_rec.LOCATION_ID ;
12035 l_mod_curr_instance_rec.INV_ORGANIZATION_ID := l_curr_instance_rec.INV_ORGANIZATION_ID ;
12036 l_mod_curr_instance_rec.INV_SUBINVENTORY_NAME := l_curr_instance_rec.INV_SUBINVENTORY_NAME ;
12037 l_mod_curr_instance_rec.INV_LOCATOR_ID := l_curr_instance_rec.INV_LOCATOR_ID ;
12038 l_mod_curr_instance_rec.PA_PROJECT_ID := l_curr_instance_rec.PA_PROJECT_ID ;
12039 l_mod_curr_instance_rec.PA_PROJECT_TASK_ID := l_curr_instance_rec.PA_PROJECT_TASK_ID ;
12040 l_mod_curr_instance_rec.IN_TRANSIT_ORDER_LINE_ID := l_curr_instance_rec.IN_TRANSIT_ORDER_LINE_ID ;
12041 l_mod_curr_instance_rec.WIP_JOB_ID := l_curr_instance_rec.WIP_JOB_ID ;
12042 l_mod_curr_instance_rec.PO_ORDER_LINE_ID := l_curr_instance_rec.PO_ORDER_LINE_ID ;
12043 l_mod_curr_instance_rec.LAST_OE_ORDER_LINE_ID := l_curr_instance_rec.LAST_OE_ORDER_LINE_ID ;
12044 l_mod_curr_instance_rec.LAST_OE_RMA_LINE_ID := l_curr_instance_rec.LAST_OE_RMA_LINE_ID ;
12045 l_mod_curr_instance_rec.LAST_PO_PO_LINE_ID := l_curr_instance_rec.LAST_PO_PO_LINE_ID ;
12046 l_mod_curr_instance_rec.LAST_OE_PO_NUMBER := l_curr_instance_rec.LAST_OE_PO_NUMBER ;
12047 l_mod_curr_instance_rec.LAST_WIP_JOB_ID := l_curr_instance_rec.LAST_WIP_JOB_ID ;
12048 l_mod_curr_instance_rec.LAST_PA_PROJECT_ID := l_curr_instance_rec.LAST_PA_PROJECT_ID ;
12049 l_mod_curr_instance_rec.LAST_PA_TASK_ID := l_curr_instance_rec.LAST_PA_TASK_ID ;
12050 l_mod_curr_instance_rec.LAST_OE_AGREEMENT_ID := l_curr_instance_rec.LAST_OE_AGREEMENT_ID ;
12051 l_mod_curr_instance_rec.INSTALL_DATE := l_curr_instance_rec.INSTALL_DATE ;
12052 l_mod_curr_instance_rec.MANUALLY_CREATED_FLAG := l_curr_instance_rec.MANUALLY_CREATED_FLAG ;
12053 l_mod_curr_instance_rec.RETURN_BY_DATE := l_curr_instance_rec.RETURN_BY_DATE ;
12054 l_mod_curr_instance_rec.ACTUAL_RETURN_DATE := l_curr_instance_rec.ACTUAL_RETURN_DATE ;
12055 l_mod_curr_instance_rec.CREATION_COMPLETE_FLAG := l_curr_instance_rec.CREATION_COMPLETE_FLAG ;
12056 l_mod_curr_instance_rec.COMPLETENESS_FLAG := l_curr_instance_rec.COMPLETENESS_FLAG ;
12057 l_mod_curr_instance_rec.VERSION_LABEL := l_curr_instance_rec.VERSION_LABEL ;
12058 l_mod_curr_instance_rec.VERSION_LABEL_DESCRIPTION := l_curr_instance_rec.VERSION_LABEL_DESCRIPTION ;
12059 l_mod_curr_instance_rec.CONTEXT := l_curr_instance_rec.CONTEXT ;
12060 l_mod_curr_instance_rec.ATTRIBUTE1 := l_curr_instance_rec.ATTRIBUTE1 ;
12061 l_mod_curr_instance_rec.ATTRIBUTE2 := l_curr_instance_rec.ATTRIBUTE2 ;
12062 l_mod_curr_instance_rec.ATTRIBUTE3 := l_curr_instance_rec.ATTRIBUTE3 ;
12063 l_mod_curr_instance_rec.ATTRIBUTE4 := l_curr_instance_rec.ATTRIBUTE4 ;
12064 l_mod_curr_instance_rec.ATTRIBUTE5 := l_curr_instance_rec.ATTRIBUTE5 ;
12065 l_mod_curr_instance_rec.ATTRIBUTE6 := l_curr_instance_rec.ATTRIBUTE6 ;
12066 l_mod_curr_instance_rec.ATTRIBUTE7 := l_curr_instance_rec.ATTRIBUTE7 ;
12067 l_mod_curr_instance_rec.ATTRIBUTE8 := l_curr_instance_rec.ATTRIBUTE8 ;
12068 l_mod_curr_instance_rec.ATTRIBUTE9 := l_curr_instance_rec.ATTRIBUTE9 ;
12069 l_mod_curr_instance_rec.ATTRIBUTE10 := l_curr_instance_rec.ATTRIBUTE10 ;
12070 l_mod_curr_instance_rec.ATTRIBUTE11 := l_curr_instance_rec.ATTRIBUTE11 ;
12071 l_mod_curr_instance_rec.ATTRIBUTE12 := l_curr_instance_rec.ATTRIBUTE12 ;
12072 l_mod_curr_instance_rec.ATTRIBUTE13 := l_curr_instance_rec.ATTRIBUTE13 ;
12073 l_mod_curr_instance_rec.ATTRIBUTE14 := l_curr_instance_rec.ATTRIBUTE14 ;
12074 l_mod_curr_instance_rec.ATTRIBUTE15 := l_curr_instance_rec.ATTRIBUTE15 ;
12075 l_mod_curr_instance_rec.OBJECT_VERSION_NUMBER := l_curr_instance_rec.OBJECT_VERSION_NUMBER ;
12076 l_mod_curr_instance_rec.LAST_TXN_LINE_DETAIL_ID := l_curr_instance_rec.LAST_TXN_LINE_DETAIL_ID ;
12077 l_mod_curr_instance_rec.INSTALL_LOCATION_TYPE_CODE := l_curr_instance_rec.INSTALL_LOCATION_TYPE_CODE ;
12078 l_mod_curr_instance_rec.INSTALL_LOCATION_ID := l_curr_instance_rec.INSTALL_LOCATION_ID ;
12079 l_mod_curr_instance_rec.INSTANCE_USAGE_CODE := l_curr_instance_rec.INSTANCE_USAGE_CODE ;
12080 --start of code for eam integration--
12081 l_mod_curr_instance_rec.NETWORK_ASSET_FLAG := l_curr_instance_rec.NETWORK_ASSET_FLAG ;
12082 l_mod_curr_instance_rec.MAINTAINABLE_FLAG := l_curr_instance_rec.MAINTAINABLE_FLAG ;
12083 l_mod_curr_instance_rec.PN_LOCATION_ID := l_curr_instance_rec.PN_LOCATION_ID ;
12084 l_mod_curr_instance_rec.ASSET_CRITICALITY_CODE := l_curr_instance_rec.ASSET_CRITICALITY_CODE ;
12085 l_mod_curr_instance_rec.CATEGORY_ID := l_curr_instance_rec.CATEGORY_ID ;
12086 l_mod_curr_instance_rec.EQUIPMENT_GEN_OBJECT_ID := l_curr_instance_rec.EQUIPMENT_GEN_OBJECT_ID ;
12087 l_mod_curr_instance_rec.INSTANTIATION_FLAG := l_curr_instance_rec.INSTANTIATION_FLAG ;
12088 l_mod_curr_instance_rec.LINEAR_LOCATION_ID := l_curr_instance_rec.LINEAR_LOCATION_ID ;
12089 l_mod_curr_instance_rec.OPERATIONAL_LOG_FLAG := l_curr_instance_rec.OPERATIONAL_LOG_FLAG ;
12090 l_mod_curr_instance_rec.CHECKIN_STATUS := l_curr_instance_rec.CHECKIN_STATUS ;
12091 l_mod_curr_instance_rec.SUPPLIER_WARRANTY_EXP_DATE := l_curr_instance_rec.SUPPLIER_WARRANTY_EXP_DATE ;
12092 l_mod_curr_instance_rec.ATTRIBUTE16 := l_curr_instance_rec.ATTRIBUTE16 ;
12093 l_mod_curr_instance_rec.ATTRIBUTE17 := l_curr_instance_rec.ATTRIBUTE17 ;
12094 l_mod_curr_instance_rec.ATTRIBUTE18 := l_curr_instance_rec.ATTRIBUTE18 ;
12095 l_mod_curr_instance_rec.ATTRIBUTE19 := l_curr_instance_rec.ATTRIBUTE19 ;
12096 l_mod_curr_instance_rec.ATTRIBUTE20 := l_curr_instance_rec.ATTRIBUTE20 ;
12097 l_mod_curr_instance_rec.ATTRIBUTE21 := l_curr_instance_rec.ATTRIBUTE21 ;
12098 l_mod_curr_instance_rec.ATTRIBUTE22 := l_curr_instance_rec.ATTRIBUTE22 ;
12099 l_mod_curr_instance_rec.ATTRIBUTE23 := l_curr_instance_rec.ATTRIBUTE23 ;
12100 l_mod_curr_instance_rec.ATTRIBUTE24 := l_curr_instance_rec.ATTRIBUTE24 ;
12101 l_mod_curr_instance_rec.ATTRIBUTE25 := l_curr_instance_rec.ATTRIBUTE25 ;
12102 l_mod_curr_instance_rec.ATTRIBUTE26 := l_curr_instance_rec.ATTRIBUTE26 ;
12103 l_mod_curr_instance_rec.ATTRIBUTE27 := l_curr_instance_rec.ATTRIBUTE27 ;
12104 l_mod_curr_instance_rec.ATTRIBUTE28 := l_curr_instance_rec.ATTRIBUTE28 ;
12105 l_mod_curr_instance_rec.ATTRIBUTE29 := l_curr_instance_rec.ATTRIBUTE29 ;
12106 l_mod_curr_instance_rec.ATTRIBUTE30 := l_curr_instance_rec.ATTRIBUTE30 ;
12107 --end of code for eam integration--
12108 -- Addition of columns for FA Integration
12109 l_mod_curr_instance_rec.PAYABLES_UNIT_PRICE := l_curr_instance_rec.PAYABLES_UNIT_PRICE ;
12110 l_mod_curr_instance_rec.PAYABLES_CURRENCY_CODE := l_curr_instance_rec.PAYABLES_CURRENCY_CODE ;
12111 l_mod_curr_instance_rec.PURCHASE_UNIT_PRICE := l_curr_instance_rec.PURCHASE_UNIT_PRICE ;
12112 l_mod_curr_instance_rec.PURCHASE_CURRENCY_CODE := l_curr_instance_rec.PURCHASE_CURRENCY_CODE ;
12113 l_mod_curr_instance_rec.SALES_UNIT_PRICE := l_curr_instance_rec.SALES_UNIT_PRICE ;
12114 l_mod_curr_instance_rec.SALES_CURRENCY_CODE := l_curr_instance_rec.SALES_CURRENCY_CODE ;
12115 l_mod_curr_instance_rec.OPERATIONAL_STATUS_CODE := l_curr_instance_rec.OPERATIONAL_STATUS_CODE ;
12116 -- End addition of columns for FA Integration
12117 -- Begin Add Code for Siebel Genesis Project
12118 l_mod_curr_instance_rec.SOURCE_CODE := l_curr_instance_rec.SOURCE_CODE;
12119 -- End Add Code for Siebel Genesis Project
12120
12121 csi_item_instance_vld_pvt.get_merge_rec (p_instance_rec => p_instance_rec,
12122 l_curr_instance_rec => l_mod_curr_instance_rec,
12123 l_get_instance_rec => l_get_instance_rec
12124 );
12125 --Added for bug 2766787
12126 IF p_instance_rec.location_type_code='INVENTORY'
12127 THEN
12128 p_instance_rec.vld_organization_id := p_instance_rec.inv_organization_id;
12129 END IF;
12130 --End addition for bug 2766787
12131 IF ((p_instance_rec.vld_organization_id IS NULL) OR
12132 (p_instance_rec.vld_organization_id = FND_API.G_MISS_NUM))
12133 THEN
12134 p_instance_rec.vld_organization_id := l_cur_instance_rec.last_vld_organization_id;
12135 l_get_instance_rec.vld_organization_id := l_cur_instance_rec.last_vld_organization_id;
12136 ELSE
12137 l_get_instance_rec.vld_organization_id := p_instance_rec.vld_organization_id;
12138 END IF;
12139
12140 l_last_vld_organization_id := p_instance_rec.vld_organization_id;
12141
12142 IF l_get_instance_rec.location_type_code <> 'INVENTORY' AND
12143 l_cur_instance_rec.last_vld_organization_id <> l_get_instance_rec.vld_organization_id
12144 AND l_curr_instance_rec.instance_usage_code <> 'IN_TRANSIT' --Added for bug 6188180
12145 THEN
12146 FND_MESSAGE.Set_Name('CSI', 'CSI_CANNOT_MODIFY_VLD_ORG');
12147 FND_MSG_PUB.ADD;
12148 RAISE FND_API.G_EXC_ERROR;
12149 END IF;
12150
12151 -- Check if all the required parameters are passed
12152 CSI_Item_Instance_vld_pvt.Check_Reqd_Param_num
12153 ( p_instance_rec.INSTANCE_ID ,
12154 ' p_instance_rec.INSTANCE_ID ',
12155 l_api_name );
12156
12157 -- Check if the instance id is valid
12158 IF NOT(CSI_Item_Instance_vld_pvt.Is_InstanceID_Valid
12159 (p_instance_rec.INSTANCE_ID,
12160 TRUE )) THEN
12161 RAISE FND_API.G_EXC_ERROR;
12162 END IF;
12163 FND_File.Put_Line(Fnd_File.LOG,'p_validation_mode is :'||p_validation_mode);
12164 IF (p_validation_mode <> 'U')
12165 THEN
12166
12167 -- The following sequence will be set only from the Data Correction
12168 l_current_val := -9999999;
12169 --
12170 Begin
12171 select CSI_II_FORWARD_SYNC_TEMP_S.CURRVAL
12172 into l_current_val
12173 FROM DUAL;
12174 Exception
12175 when others then
12176 l_current_val := -9999999;
12177 End;
12178 --
12179 -- Proceed with Forward SYnch check if the sequence does not return any value.
12180 IF l_current_val = -9999999 THEN
12181 IF NOT(CSI_Item_Instance_vld_pvt.Is_Forward_Synch
12182 (p_instance_id => p_instance_rec.INSTANCE_ID,
12183 p_stop_all_txn => fnd_api.g_true,
12184 p_mtl_txn_id => fnd_api.g_miss_num)) THEN
12185 FND_MESSAGE.Set_Name('CSI', 'CSI_API_NO_FORWARD_SYNCH');
12186 FND_MESSAGE.Set_Token('INSTANCE', p_instance_rec.INSTANCE_ID);
12187 FND_MSG_PUB.ADD;
12188 RAISE FND_API.G_EXC_ERROR;
12189 END IF;
12190 ELSE -- Even if seq exists, stop later txns
12191 IF NOT(CSI_Item_Instance_vld_pvt.Is_Forward_Synch
12192 (p_instance_id => p_instance_rec.INSTANCE_ID,
12193 p_stop_all_txn => fnd_api.g_false, -- Stop only later txns
12194 p_mtl_txn_id => p_txn_rec.inv_material_transaction_id)) THEN
12195 FND_MESSAGE.Set_Name('CSI', 'CSI_API_NO_FORWARD_SYNCH');
12196 FND_MESSAGE.Set_Token('INSTANCE', p_instance_rec.INSTANCE_ID);
12197 FND_MSG_PUB.ADD;
12198 RAISE FND_API.G_EXC_ERROR;
12199 END IF;
12200 END IF;
12201 --
12202 -- validation for Instance id
12203 IF ((p_instance_rec.instance_id IS NULL) OR
12204 (p_instance_rec.instance_id <> FND_API.G_MISS_NUM)) THEN
12205 IF ((p_instance_rec.instance_id IS NULL) OR
12206 (p_instance_rec.instance_id <> l_curr_instance_rec.instance_id)) THEN
12207 FND_MESSAGE.Set_Name('CSI', 'CSI_API_UPD_NOT_ALLOWED');
12208 FND_MESSAGE.Set_Token('COLUMN', 'INSTANCE_ID');
12209 FND_MSG_PUB.ADD;
12210 RAISE FND_API.G_EXC_ERROR;
12211 END IF;
12212 END IF;
12213
12214 -- validation for Instance Number
12215 IF ((p_instance_rec.instance_number IS NULL) OR
12216 (p_instance_rec.instance_number <> FND_API.G_MISS_CHAR)) THEN
12217 IF ((p_instance_rec.instance_number IS NULL) OR
12218 (p_instance_rec.instance_number <> l_curr_instance_rec.instance_number))
12219 THEN
12220 -- Added for eam integration
12221 IF NOT csi_item_Instance_Vld_pvt.Is_InstanceNum_Valid(p_instance_rec.instance_id,
12222 p_instance_rec.instance_number,
12223 'UPDATE')
12224 THEN
12225 RAISE fnd_api.g_exc_error;
12226 END IF;
12227 -- End addition for eam integration
12228 /*
12229 FND_MESSAGE.Set_Name('CSI', 'CSI_API_UPD_NOT_ALLOWED');
12230 FND_MESSAGE.Set_Token('COLUMN', 'INSTANCE_NUMBER');
12231 FND_MSG_PUB.ADD;
12232 RAISE FND_API.G_EXC_ERROR;
12233 */
12234 END IF;
12235 END IF;
12236 -- validation for Inventory Item id
12237
12238 --start change for BUG:6176621
12239
12240 /* IF ((p_instance_rec.inventory_item_id IS NULL) OR
12241 (p_instance_rec.inventory_item_id <> FND_API.G_MISS_NUM)) THEN
12242 IF ((p_instance_rec.inventory_item_id IS NULL) OR
12243 (p_instance_rec.inventory_item_id <> l_curr_instance_rec.inventory_item_id)) THEN
12244 */
12245 IF p_txn_rec.transaction_type_id = 205
12246 THEN
12247 SELECT count(*)
12248 INTO l_number_open_ro
12249 FROM CSD_REPAIRS cr
12250 where cr.STATUS <> 'C'AND
12251 (cr.CUSTOMER_PRODUCT_ID = p_instance_rec.instance_id or exists
12252 (select 'X' from csd_product_txns_v cptv
12253 where cptv.repair_line_id = cr.repair_line_id and
12254 (cptv.source_instance_id = p_instance_rec.instance_id or
12255 cptv.non_source_instance_id = p_instance_rec.instance_id)));
12256
12257 IF(l_number_open_ro>0)
12258 THEN
12259 FND_MESSAGE.Set_Name('CSI', 'CSI_OPEN_RO_EXISTS');
12260 FND_MESSAGE.Set_Token('COLUMN', 'INVENTORY_ITEM_ID OR SERIAL_NUMBER');
12261 FND_MSG_PUB.ADD;
12262 RAISE FND_API.G_EXC_ERROR;
12263
12264 END IF;
12265 END IF;
12266
12267 --validation for open depot repair orders for CMRO
12268
12269 IF p_instance_rec.inventory_item_id IS NULL THEN
12270 FND_MESSAGE.Set_Name('CSI', 'CSI_API_INVALID_ITEM');
12271 FND_MESSAGE.Set_Token('INVENTORY_ITEM_ID',p_instance_rec.inventory_item_id);
12272 fnd_message.set_token('INVENTORY_ORGANIZATION_ID',p_instance_rec.vld_organization_id);
12273 FND_MSG_PUB.ADD;
12274 RAISE FND_API.G_EXC_ERROR;
12275 ELSE
12276 IF (p_instance_rec.inventory_item_id <> FND_API.G_MISS_NUM)
12277 AND
12278 (p_instance_rec.inventory_item_id <> l_curr_instance_rec.inventory_item_id)
12279 THEN
12280 IF p_txn_rec.transaction_type_id = 205
12281
12282 THEN
12283 l_part_or_serial_change := TRUE;
12284 ELSE
12285 FND_MESSAGE.Set_Name('CSI', 'CSI_API_UPD_NOT_ALLOWED');
12286 FND_MESSAGE.Set_Token('COLUMN', 'INVENTORY_ITEM_ID');
12287 FND_MSG_PUB.ADD;
12288 RAISE FND_API.G_EXC_ERROR;
12289 END IF;
12290 END IF;
12291 END IF;
12292
12293
12294 IF nvl(p_instance_rec.serial_number, fnd_api.g_miss_char) <> fnd_api.g_miss_char
12295 AND
12296 p_instance_rec.serial_number <> l_curr_instance_rec.serial_number
12297 THEN
12298 IF p_txn_rec.transaction_type_id = 205
12299
12300 THEN
12301 l_part_or_serial_change := TRUE;
12302 /*ELSE -- Commented for bug 6965008
12303 -- Modified else block for the bug 6875664, base bug 6531599
12304 IF p_txn_rec.transaction_type_id = 1 THEN
12305 l_mtl_txn_tbl.DELETE;
12306 CSI_Item_Instance_vld_pvt.get_mtl_txn_for_srl(
12307 p_inventory_item_id => p_instance_rec.inventory_item_id,
12308 p_serial_number => p_instance_rec.serial_number,
12309 x_mtl_txn_tbl => l_mtl_txn_tbl);
12310 IF NVL(l_mtl_txn_tbl.Count,0) > 0 THEN
12311 FND_MESSAGE.Set_Name('CSI', 'CSI_API_UPD_NOT_ALLOWED');
12312 FND_MESSAGE.Set_Token('COLUMN', 'SERIAL_NUMBER');
12313 FND_MSG_PUB.ADD;
12314 RAISE FND_API.G_EXC_ERROR;
12315 END IF;
12316 ELSE
12317 FND_MESSAGE.Set_Name('CSI', 'CSI_API_UPD_NOT_ALLOWED');
12318 FND_MESSAGE.Set_Token('COLUMN', 'SERIAL_NUMBER');
12319 FND_MSG_PUB.ADD;
12320 RAISE FND_API.G_EXC_ERROR;
12321 END IF;
12322 */ -- Commented for bug 6965008
12323 END IF;
12324 END IF;
12325 --end of code for 6176621
12326
12327 --
12328 IF p_instance_rec.instance_status_id IS NULL THEN
12329 FND_MESSAGE.Set_Name('CSI','CSI_API_MANDATORY_STATUS');
12330 FND_MSG_PUB.ADD;
12331 RAISE FND_API.G_EXC_ERROR;
12332 END IF;
12333 --
12334 IF p_instance_rec.quantity IS NULL THEN
12335 FND_MESSAGE.Set_Name('CSI','CSI_API_MANDATORY_QUANTITY');
12336 FND_MSG_PUB.ADD;
12337 RAISE FND_API.G_EXC_ERROR;
12338 END IF;
12339 --
12340 IF p_instance_rec.unit_of_measure IS NULL THEN
12341 FND_MESSAGE.Set_Name('CSI','CSI_API_MANDATORY_UOM');
12342 FND_MSG_PUB.ADD;
12343 RAISE FND_API.G_EXC_ERROR;
12344 END IF;
12345 --
12346 -- validation for Inv Master Organization Id
12347 -- srramakr Bug 4163719. Master Organization can be changed under certain circumstances.
12348 -- For those customers who maintain multiple Inventory Master Oraganizations, shipping might
12349 -- happen from one org and RMA into another. Under these scenarios, the master organization
12350 -- will change. When this transaction lands in IB, we need to check the combination of
12351 -- Master org and Vld org and make the update. If the combination is not valid, we error out.
12352 --
12353 IF ((p_instance_rec.inv_master_organization_id IS NULL) OR
12354 (p_instance_rec.inv_master_organization_id <> FND_API.G_MISS_NUM)) THEN
12355 IF ((p_instance_rec.inv_master_organization_id IS NULL) OR
12356 (p_instance_rec.inv_master_organization_id <>
12357 l_curr_instance_rec.inv_master_organization_id)) THEN
12358 BEGIN
12359 SELECT 'x'
12360 INTO l_temp
12361 FROM mtl_parameters
12362 WHERE organization_id = p_instance_rec.vld_organization_id
12363 AND master_organization_id = p_instance_rec.inv_master_organization_id;
12364 EXCEPTION
12365 WHEN NO_DATA_FOUND THEN
12366 FND_MESSAGE.SET_NAME('CSI','CSI_INVALID_VLD_MAST_COMB');
12367 FND_MSG_PUB.Add;
12368 RAISE FND_API.G_EXC_ERROR;
12369 END;
12370 /***** FND_MESSAGE.Set_Name('CSI', 'CSI_API_UPD_NOT_ALLOWED');
12371 FND_MESSAGE.Set_Token('COLUMN', 'INV_MASTER_ORGANIZATION_ID');
12372 FND_MSG_PUB.ADD;
12373 RAISE FND_API.G_EXC_ERROR; *****/
12374 END IF;
12375 END IF;
12376 --
12377
12378
12379 IF (p_instance_rec.location_id IS NULL OR
12380 p_instance_rec.location_id =fnd_api.g_miss_num)
12381 THEN
12382 IF p_instance_rec.location_type_code IN ('WIP','HR_LOCATIONS','PROJECT','IN_TRANSIT','PO','INTERNAL_SITE')
12383 THEN
12384 BEGIN
12385 SELECT location_id
12386 INTO p_instance_rec.location_id
12387 FROM hr_all_organization_units
12388 WHERE organization_id = p_instance_rec.vld_organization_id;
12389
12390 l_get_instance_rec.location_id:=p_instance_rec.location_id;
12391
12392 EXCEPTION
12393 WHEN NO_DATA_FOUND THEN
12394 fnd_message.set_name('CSI','CSI_NO_HR_LOCATIONS');
12395 fnd_message.set_token('ORGANIZATION_ID',p_instance_rec.vld_organization_id);
12396 fnd_msg_pub.ADD;
12397 RAISE fnd_api.g_exc_error;
12398 END;
12399 IF p_instance_rec.location_id IS NULL
12400 THEN
12401 fnd_message.set_name('CSI','CSI_NO_HR_LOCATIONS');
12402 fnd_message.set_token('ORGANIZATION_ID',p_instance_rec.vld_organization_id);
12403 fnd_msg_pub.ADD;
12404 RAISE fnd_api.g_exc_error;
12405 END IF;
12406 END IF;
12407 END IF;
12408
12409 IF (p_instance_rec.install_location_id IS NULL OR
12410 p_instance_rec.install_location_id =fnd_api.g_miss_num)
12411 THEN
12412 IF p_instance_rec.install_location_type_code IN ('WIP','HR_LOCATIONS','PROJECT','IN_TRANSIT','PO','INTERNAL_SITE')
12413 THEN
12414 BEGIN
12415 SELECT location_id
12416 INTO p_instance_rec.install_location_id
12417 FROM hr_all_organization_units
12418 WHERE organization_id = p_instance_rec.vld_organization_id;
12419 EXCEPTION
12420 WHEN NO_DATA_FOUND THEN
12421 fnd_message.set_name('CSI','CSI_NO_HR_LOCATIONS');
12422 fnd_message.set_token('ORGANIZATION_ID',p_instance_rec.vld_organization_id);
12423 fnd_msg_pub.ADD;
12424 RAISE fnd_api.g_exc_error;
12425 END;
12426 IF p_instance_rec.install_location_id IS NULL
12427 THEN
12428 fnd_message.set_name('CSI','CSI_NO_HR_LOCATIONS');
12429 fnd_message.set_token('ORGANIZATION_ID',p_instance_rec.vld_organization_id);
12430 fnd_msg_pub.ADD;
12431 RAISE fnd_api.g_exc_error;
12432 END IF;
12433 END IF;
12434 END IF;
12435
12436
12437 -- End code addition for eam integration
12438
12439 -- validation for Active Start Date
12440 IF ((p_instance_rec.active_start_date IS NULL) OR
12441 (p_instance_rec.active_start_date <> FND_API.G_MISS_DATE)) THEN
12442 IF ((p_instance_rec.active_start_date IS NULL) OR
12443 (p_instance_rec.active_start_date <> l_curr_instance_rec.active_start_date)) THEN
12444 FND_MESSAGE.Set_Name('CSI', 'CSI_API_UPD_NOT_ALLOWED');
12445 FND_MESSAGE.Set_Token('COLUMN', 'ACTIVE_START_DATE');
12446 FND_MSG_PUB.ADD;
12447 RAISE FND_API.G_EXC_ERROR;
12448 END IF;
12449 END IF;
12450
12451 -- validating the effective active end date for an End-dated Instance
12452 IF l_curr_instance_rec.active_end_date <= SYSDATE THEN
12453 IF (p_instance_rec.active_end_date = FND_API.G_MISS_DATE) OR
12454 (p_instance_rec.active_end_date < SYSDATE) THEN
12455 IF (p_instance_rec.check_for_instance_expiry = fnd_api.g_true) THEN
12456 IF NOT (p_called_from_rel = fnd_api.g_true OR p_txn_rec.transaction_type_id = 401)
12457 THEN
12458 FND_MESSAGE.SET_NAME('CSI','CSI_API_CANT_UPD_EXP_ITEM');
12459 FND_MSG_PUB.ADD;
12460 RAISE FND_API.G_EXC_ERROR;
12461 END IF;
12462 END IF;
12463 END IF;
12464 END IF;
12465
12466 -- validating the effective active end date
12467 IF ( p_instance_rec.ACTIVE_END_DATE <> FND_API.G_MISS_DATE) THEN
12468 IF NOT(CSI_Item_Instance_vld_pvt.EndDate_Valid
12469 (l_curr_instance_rec.ACTIVE_START_DATE,
12470 p_instance_rec.ACTIVE_END_DATE ,
12471 p_instance_rec.INSTANCE_ID )) THEN
12472 RAISE FND_API.G_EXC_ERROR;
12473 END IF;
12474 END IF;
12475
12476 -- Validate if the instance status is being changed to
12477 -- a new status with a termination_flag set to 'Y'
12478 -- If so, then the end_date should be checked
12479 -- srramakr. Bug # 2180425. If the status is changed to a Terminated Status, then the
12480 -- active_end_date should be validated. We do not allow future date in this case.
12481 -- For past dates, there should not be any Transactions between the active_end_date and sysdate.
12482 IF ( (p_instance_rec.instance_status_id <> FND_API.G_MISS_NUM)
12483 AND (p_instance_rec.instance_status_id IS NOT NULL)
12484 AND (p_instance_rec.instance_status_id <>
12485 l_curr_instance_rec.instance_status_id)
12486 AND (CSI_Item_Instance_vld_pvt.val_inst_ter_flag
12487 (p_instance_rec.instance_status_id)))
12488 THEN
12489 IF ((p_instance_rec.ACTIVE_END_DATE IS NULL) OR
12490 (p_instance_rec.ACTIVE_END_DATE = FND_API.G_MISS_DATE)) THEN
12491 FND_MESSAGE.Set_Name('CSI', 'CSI_API_TER_DATE');
12492 FND_MSG_PUB.ADD;
12493 RAISE FND_API.G_EXC_ERROR;
12494 ELSIF p_instance_rec.ACTIVE_END_DATE < sysdate THEN
12495 IF NOT(CSI_Item_Instance_vld_pvt.EndDate_Valid
12496 (l_curr_instance_rec.ACTIVE_START_DATE,
12497 p_instance_rec.ACTIVE_END_DATE ,
12498 p_instance_rec.INSTANCE_ID )) THEN
12499 RAISE FND_API.G_EXC_ERROR;
12500 END IF;
12501 ELSIF ((p_instance_rec.ACTIVE_END_DATE <> FND_API.G_MISS_DATE) AND
12502 (p_instance_rec.ACTIVE_END_DATE > sysdate)) THEN
12503 FND_MESSAGE.Set_Name('CSI', 'CSI_API_FUTURE_DATE');
12504 FND_MSG_PUB.ADD;
12505 RAISE FND_API.G_EXC_ERROR;
12506 END IF;
12507 END IF;
12508
12509 --
12510 -- Get the Required Inventory Attributes
12511 l_exists_flag := 'N';
12512 l_valid_flag := 'Y';
12513 IF p_item_attribute_tbl.count > 0 THEN
12514 FOR item_count in p_item_attribute_tbl.FIRST .. p_item_attribute_tbl.LAST
12515 LOOP
12516 IF p_item_attribute_tbl(item_count).inventory_item_id = l_get_instance_rec.inventory_item_id AND
12517 p_item_attribute_tbl(item_count).organization_id = p_instance_rec.vld_organization_id AND
12518 p_item_attribute_tbl(item_count).master_organization_id = l_get_instance_rec.inv_master_organization_id
12519 THEN
12520 l_trackable_flag := p_item_attribute_tbl(item_count).trackable_flag;
12521 l_rev_control := p_item_attribute_tbl(item_count).revision_control_code;
12522 l_serial_control := p_item_attribute_tbl(item_count).serial_number_control_code;
12523 l_lot_control := p_item_attribute_tbl(item_count).lot_control_code;
12524 l_shelf_life_code := p_item_attribute_tbl(item_count).shelf_life_code;
12525 l_uom_code := p_item_attribute_tbl(item_count).uom_code;
12526 l_eam_item_type := p_item_attribute_tbl(item_count).eam_item_type;
12527 l_equipment_type := p_item_attribute_tbl(item_count).equipment_type;
12528 l_valid_flag := p_item_attribute_tbl(item_count).valid_flag;
12529 l_exists_flag := 'Y';
12530 EXIT;
12531 END IF;
12532 END LOOP;
12533 IF l_valid_flag = 'N' then
12534 FND_MESSAGE.SET_NAME('CSI','CSI_API_INVALID_ITEM');
12535 FND_MESSAGE.SET_TOKEN('INVENTORY_ITEM_ID',p_instance_rec.inventory_item_id);
12536 FND_MESSAGE.SET_TOKEN('INVENTORY_ORGANIZATION_ID',p_instance_rec.vld_organization_id);
12537 FND_MSG_PUB.Add;
12538 RAISE fnd_api.g_exc_error;
12539 END IF;
12540 END IF;
12541 --
12542 -- if item does not exist in cache then get from database.
12543 IF l_exists_flag = 'N' THEN
12544 p_ins_count_rec.inv_count := p_ins_count_rec.inv_count + 1;
12545 p_item_attribute_tbl(p_ins_count_rec.inv_count).inventory_item_id := l_get_instance_rec.inventory_item_id;
12546 p_item_attribute_tbl(p_ins_count_rec.inv_count).organization_id := p_instance_rec.vld_organization_id;
12547 p_item_attribute_tbl(p_ins_count_rec.inv_count).master_organization_id := l_get_instance_rec.inv_master_organization_id;
12548 BEGIN
12549 SELECT comms_nl_trackable_flag
12550 ,primary_uom_code
12551 INTO l_trackable_flag
12552 ,l_uom_code
12553 FROM MTL_SYSTEM_ITEMS_B
12554 WHERE inventory_item_id = l_get_instance_rec.inventory_item_id
12555 AND organization_id = l_get_instance_rec.inv_master_organization_id
12556 AND enabled_flag = 'Y'
12557 AND nvl (start_date_active, sysdate) <= sysdate
12558 AND nvl (end_date_active, sysdate+1) > sysdate;
12559 --
12560 p_item_attribute_tbl(p_ins_count_rec.inv_count).trackable_flag := l_trackable_flag;
12561 p_item_attribute_tbl(p_ins_count_rec.inv_count).uom_code := l_uom_code;
12562 p_item_attribute_tbl(p_ins_count_rec.inv_count).valid_flag := 'Y';
12563 EXCEPTION
12564 WHEN OTHERS THEN
12565 p_item_attribute_tbl(p_ins_count_rec.inv_count).valid_flag := 'N';
12566 FND_MESSAGE.SET_NAME('CSI','CSI_API_INVALID_ITEM');
12567 FND_MESSAGE.SET_TOKEN('INVENTORY_ITEM_ID',l_get_instance_rec.inventory_item_id);
12568 FND_MESSAGE.SET_TOKEN('INVENTORY_ORGANIZATION_ID',p_instance_rec.vld_organization_id);
12569 FND_MSG_PUB.Add;
12570 RAISE fnd_api.g_exc_error;
12571 END;
12572
12573 --
12574 BEGIN
12575 SELECT revision_qty_control_code
12576 ,serial_number_control_code
12577 ,lot_control_code
12578 ,shelf_life_code
12579 ,eam_item_type
12580 ,equipment_type
12581 INTO l_rev_control
12582 ,l_serial_control
12583 ,l_lot_control
12584 ,l_shelf_life_code
12585 ,l_eam_item_type
12586 ,l_equipment_type
12587 FROM MTL_SYSTEM_ITEMS_B
12588 WHERE inventory_item_id = l_get_instance_rec.inventory_item_id
12589 AND organization_id = p_instance_rec.vld_organization_id
12590 AND enabled_flag = 'Y'
12591 AND nvl (start_date_active, sysdate) <= sysdate
12592 AND nvl (end_date_active, sysdate+1) > sysdate;
12593 --
12594 p_item_attribute_tbl(p_ins_count_rec.inv_count).valid_flag := 'Y';
12595 p_item_attribute_tbl(p_ins_count_rec.inv_count).revision_control_code := l_rev_control;
12596 p_item_attribute_tbl(p_ins_count_rec.inv_count).serial_number_control_code := l_serial_control;
12597 p_item_attribute_tbl(p_ins_count_rec.inv_count).lot_control_code := l_lot_control;
12598 p_item_attribute_tbl(p_ins_count_rec.inv_count).shelf_life_code := l_shelf_life_code;
12599 p_item_attribute_tbl(p_ins_count_rec.inv_count).eam_item_type := l_eam_item_type;
12600 p_item_attribute_tbl(p_ins_count_rec.inv_count).equipment_type := l_equipment_type;
12601 EXCEPTION
12602 WHEN OTHERS THEN
12603 p_item_attribute_tbl(p_ins_count_rec.inv_count).valid_flag := 'N';
12604 FND_MESSAGE.SET_NAME('CSI','CSI_API_INVALID_ITEM');
12605 FND_MESSAGE.SET_TOKEN('INVENTORY_ITEM_ID',l_get_instance_rec.inventory_item_id);
12606 FND_MESSAGE.SET_TOKEN('INVENTORY_ORGANIZATION_ID',p_instance_rec.vld_organization_id);
12607 FND_MSG_PUB.Add;
12608 RAISE fnd_api.g_exc_error;
12609 END;
12610 END IF;
12611
12612 -- Added following code for eam integration
12613 -- Check if the item is a rebuildable or an asset group
12614
12615 IF csi_item_instance_vld_pvt.Check_for_eam_item
12616 (p_inventory_item_id => p_instance_rec.inventory_item_id,
12617 p_organization_id => p_instance_rec.vld_organization_id,
12618 p_eam_item_type => l_eam_item_type)
12619 THEN
12620 l_eam_item := TRUE;
12621 END IF;
12622
12623 IF (
12624 ((p_instance_rec.network_asset_flag IS NULL AND
12625 l_curr_instance_rec.network_asset_flag IS NOT NULL) OR
12626 (p_instance_rec.network_asset_flag <> fnd_api.g_miss_char AND
12627 NVL(p_instance_rec.network_asset_flag,fnd_api.g_miss_char) <>
12628 NVL(l_curr_instance_rec.network_asset_flag,fnd_api.g_miss_char)))
12629 OR
12630 ((p_instance_rec.maintainable_flag IS NULL AND
12631 l_curr_instance_rec.maintainable_flag IS NOT NULL) OR
12632 (p_instance_rec.maintainable_flag <> fnd_api.g_miss_char AND
12633 NVL(p_instance_rec.maintainable_flag,fnd_api.g_miss_char) <>
12634 NVL(l_curr_instance_rec.maintainable_flag,fnd_api.g_miss_char)))
12635 OR
12636 ((p_instance_rec.pn_location_id IS NULL AND
12637 l_curr_instance_rec.pn_location_id IS NOT NULL) OR
12638 (p_instance_rec.pn_location_id <> fnd_api.g_miss_num AND
12639 NVL(p_instance_rec.pn_location_id,fnd_api.g_miss_num) <>
12640 NVL(l_curr_instance_rec.pn_location_id,fnd_api.g_miss_num)))
12641 OR
12642 ((p_instance_rec.asset_criticality_code IS NULL AND
12643 l_curr_instance_rec.asset_criticality_code IS NOT NULL) OR
12644 (p_instance_rec.asset_criticality_code <> fnd_api.g_miss_char AND
12645 NVL(p_instance_rec.asset_criticality_code,fnd_api.g_miss_char) <>
12646 NVL(l_curr_instance_rec.asset_criticality_code,fnd_api.g_miss_char)))
12647 OR
12648 ((p_instance_rec.category_id IS NULL AND
12649 l_curr_instance_rec.category_id IS NOT NULL) OR
12650 (p_instance_rec.category_id <> fnd_api.g_miss_num AND
12651 NVL(p_instance_rec.category_id,fnd_api.g_miss_num) <>
12652 NVL(l_curr_instance_rec.category_id,fnd_api.g_miss_num)))
12653 OR
12654 ((p_instance_rec.equipment_gen_object_id IS NULL AND
12655 l_curr_instance_rec.equipment_gen_object_id IS NOT NULL) OR
12656 (p_instance_rec.equipment_gen_object_id <> fnd_api.g_miss_num AND
12657 NVL(p_instance_rec.equipment_gen_object_id,fnd_api.g_miss_num) <>
12658 NVL(l_curr_instance_rec.equipment_gen_object_id,fnd_api.g_miss_num)))
12659 OR
12660 ((p_instance_rec.linear_location_id IS NULL AND
12661 l_curr_instance_rec.linear_location_id IS NOT NULL) OR
12662 (p_instance_rec.linear_location_id <> fnd_api.g_miss_num AND
12663 NVL(p_instance_rec.linear_location_id,fnd_api.g_miss_num) <>
12664 NVL(l_curr_instance_rec.linear_location_id,fnd_api.g_miss_num)))
12665 OR
12666 ((p_instance_rec.operational_log_flag IS NULL AND
12667 l_curr_instance_rec.operational_log_flag IS NOT NULL) OR
12668 (p_instance_rec.operational_log_flag <> fnd_api.g_miss_char AND
12669 NVL(p_instance_rec.operational_log_flag,fnd_api.g_miss_char) <>
12670 NVL(l_curr_instance_rec.operational_log_flag,fnd_api.g_miss_char)))
12671 OR
12672 ((p_instance_rec.checkin_status IS NULL AND
12673 l_curr_instance_rec.checkin_status IS NOT NULL) OR
12674 (p_instance_rec.checkin_status <> fnd_api.g_miss_num AND
12675 NVL(p_instance_rec.checkin_status,fnd_api.g_miss_num) <>
12676 NVL(l_curr_instance_rec.checkin_status,fnd_api.g_miss_num)))
12677 OR
12678 ((p_instance_rec.supplier_warranty_exp_date IS NULL AND
12679 l_curr_instance_rec.supplier_warranty_exp_date IS NOT NULL) OR
12680 (p_instance_rec.supplier_warranty_exp_date <> fnd_api.g_miss_date AND
12681 NVL(p_instance_rec.supplier_warranty_exp_date,fnd_api.g_miss_date) <>
12682 NVL(l_curr_instance_rec.supplier_warranty_exp_date,fnd_api.g_miss_date)))
12683 )
12684 THEN
12685 IF l_eam_item
12686 THEN
12687 IF NOT eam_assetnumber_pub.validate_fields
12688 (p_current_organization_id => p_instance_rec.vld_organization_id
12689 ,p_inventory_item_id => l_get_instance_rec.inventory_item_id
12690 ,p_serial_number => l_get_instance_rec.serial_number
12691 ,p_network_asset_flag => p_instance_rec.network_asset_flag
12692 ,p_maintainable_flag => p_instance_rec.maintainable_flag
12693 ,p_pn_location_id => p_instance_rec.pn_location_id
12694 ,p_asset_criticality_code => p_instance_rec.asset_criticality_code
12695 ,p_category_id => p_instance_rec.category_id
12696 ,p_equipment_object_id => p_instance_rec.equipment_gen_object_id
12697 ,p_eam_linear_id => p_instance_rec.linear_location_id
12698 ,p_operational_log_flag => p_instance_rec.operational_log_flag
12699 ,p_checkin_status => p_instance_rec.checkin_status
12700 ,p_supplier_warranty_exp_date => p_instance_rec.supplier_warranty_exp_date
12701 ,p_owning_department_id => NULL
12702 ,x_reason_failed => l_reason_failed
12703 ,x_token => l_token
12704 )
12705 THEN
12706 -- FND_MESSAGE.SET_NAME('CSI', l_reason_failed); -- commented for bug 5351886
12707 -- FND_MSG_PUB.Add; -- commented for bug 5351886
12708 csi_gen_utility_pvt.put_line('Call to eam_assetnumber_pub.validate_fields failed with following reason');
12709 csi_gen_utility_pvt.put_line(l_reason_failed);
12710 RAISE FND_API.G_EXC_ERROR;
12711 END IF;
12712 ELSE
12713 FND_MESSAGE.SET_NAME('CSI', 'CSI_NON_EAM_ITEM');
12714 FND_MSG_PUB.Add;
12715 RAISE FND_API.G_EXC_ERROR;
12716 END IF;
12717 END IF;
12718
12719 -- Validate System
12720 IF l_get_instance_rec.system_id IS NOT NULL AND
12721 l_get_instance_rec.system_id <> FND_API.G_MISS_NUM THEN
12722 IF NOT csi_Item_Instance_Vld_pvt.Is_Valid_System_id(
12723 l_get_instance_rec.system_id) THEN
12724 FND_MESSAGE.SET_NAME('CSI','CSI_API_INVALID_SYSTEM_ID');
12725 FND_MESSAGE.SET_TOKEN('SYSTEM_ID',l_get_instance_rec.system_id);
12726 FND_MSG_PUB.Add;
12727 RAISE FND_API.G_EXC_ERROR;
12728 END IF;
12729 END IF;
12730 --
12731 -- Lot Number Validation
12732 -- srramakr Mandated Lot Number validation irrespective of the update.
12733 -- Irrespective whether the item instance is standalone or component, lot number create/validation
12734 -- will be performed. This is because unlike serial control, lot control does not depend on
12735 -- instance location.
12736 IF l_get_instance_rec.lot_number IS NOT NULL AND
12737 l_get_instance_rec.lot_number <> FND_API.G_MISS_CHAR
12738 THEN
12739 csi_gen_utility_pvt.put_line('Calling Validate_Lot_Number..');
12740 -- Added for Bug# 4011408
12741 csi_Item_Instance_Vld_pvt.Validate_Lot_Number
12742 (
12743 p_inv_org_id => p_instance_rec.vld_organization_id,
12744 p_inv_item_id => l_get_instance_rec.inventory_item_id ,
12745 p_lot_number => l_get_instance_rec.lot_number,
12746 p_mfg_serial_number_flag => l_get_instance_rec.mfg_serial_number_flag,
12747 p_txn_rec => p_txn_rec,
12748 p_creation_complete_flag => l_get_instance_rec.creation_complete_flag,
12749 l_return_value => l_return_value,
12750 p_lot_control_code => l_lot_control
12751 );
12752 IF l_return_value = FALSE THEN
12753 RAISE fnd_api.g_exc_error;
12754 END IF;
12755 -- Commented for Bug# 4011408 since Validate_Lot_Number will do the basic validation
12756 --
12757 -- Validates the lot uniqueness and creates lot numbers in MLNs for manually created Instances
12758 -- Bug# 4011408
12759 csi_gen_utility_pvt.put_line('Calling Create_Lot routine in Update_Item_Instance API...');
12760 csi_item_instance_vld_pvt.Create_Lot
12761 (
12762 p_inv_org_id => p_instance_rec.vld_organization_id,
12763 p_inv_item_id => l_get_instance_rec.inventory_item_id,
12764 p_lot_number => l_get_instance_rec.lot_number,
12765 p_shelf_life_code => l_shelf_life_code,
12766 p_instance_id => l_get_instance_rec.instance_id,
12767 l_return_value => l_return_value
12768 );
12769 IF l_return_value = FALSE THEN
12770 RAISE fnd_api.g_exc_error;
12771 END IF;
12772 END IF;
12773 --
12774
12775 --start code fix for 6176621
12776
12777 IF l_serial_control not in (2, 5) and l_part_or_serial_change THEN
12778 FND_MESSAGE.SET_NAME('CSI','CSI_API_CANNOT_UPD_SRL');
12779 FND_MSG_PUB.Add;
12780 RAISE FND_API.g_exc_error;
12781 END IF;
12782
12783 --end code fix for 6176621
12784
12785 -- Updating a Serial Number to NULL is not allowed.
12786 IF l_curr_instance_rec.serial_number IS NOT NULL AND
12787 p_instance_rec.serial_number IS NULL THEN
12788 FND_MESSAGE.SET_NAME('CSI','CSI_API_CANNOT_UPD_SRL_NULL');
12789 FND_MSG_PUB.Add;
12790 RAISE FND_API.G_EXC_ERROR;
12791 END IF;
12792 --
12793 -- Serial number changes for CMRO
12794 -- Need to handle NULL to NOT NULL Serial Number
12795 IF p_instance_rec.serial_number IS NOT NULL AND
12796 p_instance_rec.serial_number <> fnd_api.g_miss_char AND
12797 p_instance_rec.serial_number <> nvl(l_curr_instance_rec.serial_number,fnd_api.g_miss_char)
12798 THEN
12799 csi_gen_utility_pvt.put_line('before csi_item_instance_vld_pvt.validate_serial_for_upd');
12800 csi_item_instance_vld_pvt.validate_serial_for_upd(
12801 p_instance_rec => l_get_instance_rec,
12802 p_txn_rec => p_txn_rec,
12803 p_old_serial_number => l_curr_instance_rec.serial_number,
12804 x_return_status => l_return_status);
12805
12806 IF l_return_status = fnd_api.g_ret_sts_error THEN
12807 RAISE fnd_api.g_exc_error;
12808 END IF;
12809 END IF;
12810 --
12811 -- Since serial_number can't be updated to NULL the OR condition has been changed.
12812 -- With this, if p_instance_rec has a valid value then we call the serial validation routines.
12813 --
12814 -- Earlier, we were by-passing Create_Serial routine for components. This reason being Create_serial
12815 -- routine was inserting the serial number into MSN with current status as 3 (In Stores) if the
12816 -- location type is INVENTORY. For components, location type could become INVENTORY if the parent
12817 -- is received into INV. Under these cases if the serial number is inserted with status 3 then
12818 -- it would become un-usable when transacted standalone.
12819 -- Since Create_Serial routine has been fixed and we always create the serial# with status 4, we can
12820 -- call this routine for components.
12821 -- Moreover serial number could get updated for components. Under these cases, create_serial should be
12822 -- called. Otherwise, INV and IB will go out of synch.
12823 --
12824 l_ins_flag := FND_API.G_FALSE;
12825
12826 IF l_get_instance_rec.serial_number IS NOT NULL AND
12827 l_get_instance_rec.serial_number <> FND_API.G_MISS_CHAR
12828 THEN
12829 csi_gen_utility_pvt.put_line('Calling Create_Serial...');
12830 csi_item_instance_vld_pvt.Create_Serial (
12831 p_inv_org_id => p_instance_rec.vld_organization_id,
12832 p_inv_item_id => l_get_instance_rec.inventory_item_id,
12833 p_serial_number => l_get_instance_rec.serial_number,
12834 p_mfg_srl_num_flag => l_get_instance_rec.mfg_serial_number_flag,
12835 p_location_type_code => l_get_instance_rec.location_type_code,
12836 p_ins_flag => l_ins_flag,
12837 p_lot_number => l_get_instance_rec.lot_number,
12838 p_gen_object_id => l_gen_object_id,
12839 l_return_value => l_return_value);
12840
12841 IF l_eam_item AND
12842 l_equipment_type = 1
12843 THEN
12844 p_instance_rec.equipment_gen_object_id := l_gen_object_id;
12845 END IF;
12846
12847 IF l_return_value = FALSE
12848 THEN
12849 RAISE fnd_api.g_exc_error;
12850 ELSE
12851 p_instance_rec.mfg_serial_number_flag := 'Y';
12852 END IF;
12853
12854 IF l_eam_item
12855 THEN
12856 IF p_instance_rec.network_asset_flag IS NULL OR
12857 p_instance_rec.network_asset_flag = fnd_api.g_miss_char
12858 THEN
12859 l_network_asset_flag := l_curr_instance_rec.network_asset_flag;
12860 ELSE
12861 l_network_asset_flag := p_instance_rec.network_asset_flag;
12862 END IF;
12863
12864 IF p_instance_rec.pn_location_id IS NULL OR
12865 p_instance_rec.pn_location_id = fnd_api.g_miss_num
12866 THEN
12867 l_pn_location_id := l_curr_instance_rec.pn_location_id;
12868 ELSE
12869 l_pn_location_id := p_instance_rec.pn_location_id;
12870 END IF;
12871
12872 csi_gen_utility_pvt.put_line( 'Calling eam_common_utilities_pvt.update_logical_asset...');
12873 csi_gen_utility_pvt.put_line( 'Inventory_item_id is :'||l_get_instance_rec.inventory_item_id);
12874 csi_gen_utility_pvt.put_line( 'Serial_number is :'||l_get_instance_rec.serial_number);
12875 csi_gen_utility_pvt.put_line( 'Network_asset_flag is :'||l_network_asset_flag);
12876 csi_gen_utility_pvt.put_line( 'Pn_location_id is :'||l_pn_location_id);
12877 csi_gen_utility_pvt.put_line( 'Equipment_gen_object_id is :'||p_instance_rec.equipment_gen_object_id);
12878 eam_common_utilities_pvt.update_logical_asset
12879 ( p_inventory_item_id => l_get_instance_rec.inventory_item_id
12880 ,p_serial_number => l_get_instance_rec.serial_number
12881 ,p_network_asset_flag => l_network_asset_flag
12882 ,p_pn_location_id => l_pn_location_id
12883 ,p_equipment_gen_object_id => p_instance_rec.equipment_gen_object_id
12884 ,x_return_status => x_return_status
12885 );
12886
12887 IF NOT (x_return_status = FND_API.G_RET_STS_SUCCESS)
12888 THEN
12889 csi_gen_utility_pvt.put_line( 'Error from eam_common_utilities_pvt.update_logical_asset...');
12890 RAISE fnd_api.g_exc_error;
12891 END IF;
12892 END IF;
12893
12894 END IF;
12895 --
12896 -- Mandated serial# uniqueness check irrespective of any change made to Item Instance.
12897 -- Because of Serial Update requrement, Update_serial_number has been moved out the IF condition
12898 -- catering to Create_Serial.
12899 -- If this is a component item instance then we just validate the serial uniqueness
12900 --
12901 IF l_get_instance_rec.serial_number IS NOT NULL AND
12902 l_get_instance_rec.serial_number <> FND_API.G_MISS_CHAR
12903 THEN
12904 IF nvl(l_get_instance_rec.instance_usage_code,'$#$') <> 'IN_RELATIONSHIP' THEN
12905 csi_gen_utility_pvt.put_line('Calling Validate_Srl_Num_for_Inst_Upd');
12906 csi_Item_Instance_Vld_pvt.Validate_Srl_Num_for_Inst_Upd(
12907 p_inv_org_id => p_instance_rec.vld_organization_id,
12908 p_inv_item_id => l_get_instance_rec.inventory_item_id , -- l_get
12909 p_serial_number => l_get_instance_rec.serial_number,
12910 p_mfg_serial_number_flag => l_get_instance_rec.mfg_serial_number_flag, -- l_get
12911 p_txn_rec => p_txn_rec,
12912 p_location_type_code => l_get_instance_rec.location_type_code,
12913 p_srl_control_code => l_serial_control,
12914 p_instance_usage_code => l_get_instance_rec.instance_usage_code,
12915 p_instance_id => p_instance_rec.instance_id,
12916 l_return_value => l_return_value);
12917 IF l_return_value = FALSE THEN
12918 RAISE fnd_api.g_exc_error;
12919 END IF;
12920 ELSE -- If this is a component then just validate serial uniqueness
12921 csi_Item_Instance_Vld_pvt.Validate_ser_uniqueness
12922 ( p_inv_org_id => p_instance_rec.vld_organization_id
12923 ,p_inv_item_id => l_get_instance_rec.inventory_item_id
12924 ,p_serial_number => l_get_instance_rec.serial_number
12925 ,p_instance_id => p_instance_rec.instance_id
12926 ,l_return_value => l_return_value
12927 );
12928 IF l_return_value = FALSE THEN
12929 fnd_message.set_name('CSI','CSI_FAIL_UNIQUENESS');
12930 fnd_msg_pub.add;
12931 RAISE fnd_api.g_exc_error;
12932 END IF;
12933 END IF;
12934 END IF;
12935 --
12936 -- Transaction sequencing check
12937 IF l_get_instance_rec.serial_number IS NOT NULL AND
12938 l_get_instance_rec.serial_number <> FND_API.G_MISS_CHAR AND
12939 l_ins_flag = FND_API.G_FALSE THEN
12940 l_check_instance_rec.instance_id := p_instance_rec.instance_id;
12941 l_check_instance_rec.inventory_item_id := l_get_instance_rec.inventory_item_id;
12942 l_check_instance_rec.serial_number := l_get_instance_rec.serial_number;
12943 l_check_instance_rec.lot_number := l_get_instance_rec.lot_number;
12944 l_check_instance_rec.last_txn_line_detail_id := p_instance_rec.last_txn_line_detail_id;
12945 csi_gen_utility_pvt.put_line('Calling Check_Prior_Txn');
12946 csi_Item_Instance_Vld_pvt.Check_Prior_Txn
12947 (
12948 p_instance_rec => l_check_instance_rec
12949 ,p_txn_rec => p_txn_rec
12950 ,p_prior_txn_id => l_prior_txn_id
12951 ,p_mode => 'UPDATE'
12952 ,x_return_status => x_return_status
12953 );
12954 IF NOT (x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
12955 RAISE fnd_api.g_exc_error;
12956 END IF;
12957 END IF;
12958 --
12959 -- Revision Number Validation
12960 IF nvl(l_get_instance_rec.instance_usage_code,'$#$') <> 'IN_RELATIONSHIP' THEN
12961 IF l_get_instance_rec.inventory_revision IS NOT NULL AND
12962 l_get_instance_rec.inventory_revision <> FND_API.G_MISS_CHAR
12963 THEN
12964 csi_gen_utility_pvt.put_line('Calling Update_Revision');
12965 csi_item_instance_vld_pvt.Update_Revision
12966 (
12967 p_inv_item_id => l_get_instance_rec.inventory_item_id ,
12968 p_inv_org_id => p_instance_rec.vld_organization_id,
12969 p_revision => l_get_instance_rec.inventory_revision,
12970 l_return_value => l_return_value,
12971 p_rev_control_code => l_rev_control
12972 );
12973
12974 IF l_return_value = FALSE THEN
12975 RAISE fnd_api.g_exc_error;
12976 END IF;
12977 END IF;
12978 END IF;
12979 --quantity validation
12980 IF ((p_instance_rec.quantity <> FND_API.G_MISS_NUM ) AND
12981 (p_instance_rec.quantity IS NOT NULL ))THEN
12982 IF p_instance_rec.quantity <> l_curr_instance_rec.quantity THEN
12983 IF NOT csi_Item_Instance_Vld_pvt.Is_Quantity_Valid(
12984 p_instance_id => p_instance_rec.instance_id,
12985 p_inv_organization_id => p_instance_rec.vld_organization_id,
12986 p_quantity => l_get_instance_rec.quantity ,
12987 p_serial_control_code => l_serial_control,
12988 p_location_type_code => l_get_instance_rec.location_type_code,
12989 p_csi_txn_type_id => p_txn_rec.transaction_type_id,
12990 p_current_qty => l_curr_instance_rec.quantity,
12991 p_flag => 'UPDATE'
12992 )
12993 THEN
12994 RAISE fnd_api.g_exc_error;
12995 END IF;
12996 END IF;
12997 END IF;
12998 IF nvl(l_get_instance_rec.instance_usage_code,'$#$') <> 'IN_RELATIONSHIP' THEN
12999 IF p_instance_rec.vld_organization_id <> l_cur_instance_rec.last_vld_organization_id
13000 THEN
13001 csi_item_instance_vld_pvt.validate_org_dependent_params
13002 ( p_instance_rec => l_get_instance_rec,
13003 p_txn_rec => p_txn_rec,
13004 l_return_value => l_return_value
13005 );
13006
13007 IF l_return_value = FALSE
13008 THEN
13009 FND_MESSAGE.Set_Name('CSI', 'CSI_CHANGE_VLD_ORG');
13010 FND_MSG_PUB.ADD;
13011 RAISE FND_API.G_EXC_ERROR;
13012 END IF;
13013 END IF;
13014 END IF;
13015
13016 --Unit of measure validation
13017 IF ((p_instance_rec.unit_of_measure <> FND_API.G_MISS_CHAR) AND
13018 (p_instance_rec.unit_of_measure IS NOT NULL)) THEN
13019 IF ((p_instance_rec.unit_of_measure <> l_curr_instance_rec.unit_of_measure)
13020 AND (p_instance_rec.unit_of_measure <> l_uom_code)) THEN
13021 csi_item_instance_vld_pvt.Is_Valid_Uom
13022 (
13023 p_inv_org_id => l_get_instance_rec.inv_master_organization_id, -- srramakr
13024 p_inv_item_id => l_get_instance_rec.inventory_item_id , --l_get
13025 p_uom_code => p_instance_rec.unit_of_measure,
13026 p_quantity => l_get_instance_rec.quantity, --l_get
13027 p_creation_complete_flag => l_get_instance_rec.creation_complete_flag, --l_get
13028 l_return_value => l_return_value
13029 );
13030 IF l_return_value = FALSE THEN
13031 RAISE FND_API.G_EXC_ERROR;
13032 END IF;
13033 END IF;
13034 END IF;
13035
13036 --validation for accounting classification_code if
13037 --p_instance_rec.accounting_class_code is NULL OR <> FND_API.G_MISS_CHAR
13038 IF ((p_instance_rec.accounting_class_code IS NULL) OR
13039 (p_instance_rec.accounting_class_code <> FND_API.G_MISS_CHAR)) THEN
13040 csi_item_instance_vld_pvt.get_valid_acct_class
13041 ( p_instance_id => p_instance_rec.instance_id
13042 ,p_curr_acct_class_code => l_get_instance_rec.accounting_class_code
13043 ,p_loc_type_code => l_get_instance_rec.location_type_code
13044 ,x_acct_class_code => l_acct_class_code
13045 );
13046 IF (p_instance_rec.accounting_class_code IS NULL)
13047 THEN
13048 -- The following code has been commented for bug 4906588
13049 /*
13050 IF l_eam_item
13051 THEN
13052 p_instance_rec.accounting_class_code := 'ASSET';
13053 ELSE
13054 */
13055 p_instance_rec.accounting_class_code := l_acct_class_code;
13056 -- END IF;
13057 ELSE
13058 IF (p_instance_rec.accounting_class_code <> l_acct_class_code) THEN
13059 FND_MESSAGE.SET_NAME('CSI','CSI_API_INVALID_ACCOUNT_CLASS');
13060 FND_MSG_PUB.Add;
13061 RAISE FND_API.G_EXC_ERROR;
13062 END IF;
13063 END IF; -- not null
13064
13065 END IF; -- not G_MISS
13066
13067 --if the quantity is changing from something to '0' then
13068 --we change end_date to sysdate and status to 'expired'
13069 IF (p_instance_rec.quantity = 0 AND l_curr_instance_rec.quantity <> 0) THEN
13070 -- Bug 3804960 Need to honor the passed active_end_date
13071 IF p_instance_rec.active_end_date IS NULL OR
13072 p_instance_rec.active_end_date = FND_API.G_MISS_DATE OR
13073 p_instance_rec.active_end_date > SYSDATE THEN
13074 p_instance_rec.active_end_date := SYSDATE;
13075 END IF;
13076 -- End of 3804960
13077 -- p_instance_rec.instance_status_id := 1; -- Commented for bug 3179587
13078 -- The following changes were made for bug 3179587.
13079 -- When update_item_instance is called with a status that has terminated_flag set to 'Y'
13080 -- then the API should assign passed status. If the passed status doesn't have
13081 -- terminated_flag set to 'Y', then by default the status will be updated with an expired status.
13082 IF p_instance_rec.instance_status_id IS NOT NULL AND
13083 p_instance_rec.instance_status_id <> fnd_api.g_miss_num AND
13084 (CSI_Item_Instance_vld_pvt.val_inst_ter_flag
13085 (p_instance_rec.instance_status_id))
13086 THEN
13087 NULL;
13088 ELSE
13089 p_instance_rec.instance_status_id := 1;
13090 END IF;
13091 END IF;
13092
13093 -- if the quantity is changing from '0' to '0' or fnd_api.g_miss_num, and at the same time
13094 -- if also the end_date is changing to 'NULL' or ' > SYSDATE', then the instance cannot be un-expired
13095 IF (l_curr_instance_rec.quantity = 0)
13096 AND ((p_instance_rec.quantity = 0) OR (p_instance_rec.quantity = FND_API.G_MISS_NUM))
13097 AND ((p_instance_rec.active_end_date IS NULL) OR (p_instance_rec.active_end_date > SYSDATE))
13098 THEN
13099 FND_MESSAGE.Set_Name('CSI', 'CSI_API_CANNOT_UNEXPIRE');
13100 FND_MSG_PUB.ADD;
13101 RAISE FND_API.G_EXC_ERROR;
13102 END IF;
13103
13104 -- added by rtalluri for Bugfix 2318211 on 04/16/02
13105 --if the end_date is changing from sysdate or a past date to 'null' or a future date,
13106 -- and if instance status is expired then change the status to null
13107 IF ((l_curr_instance_rec.active_end_date IS NOT NULL) AND
13108 (l_curr_instance_rec.active_end_date <= SYSDATE)) THEN
13109 IF ((p_instance_rec.active_end_date IS NULL ) OR
13110 ((p_instance_rec.active_end_date > SYSDATE) AND
13111 (p_instance_rec.active_end_date <> FND_API.G_MISS_DATE))) THEN
13112 IF (p_instance_rec.instance_status_id = NULL OR
13113 p_instance_rec.instance_status_id = FND_API.G_MISS_NUM) THEN
13114 p_instance_rec.instance_status_id := 510;
13115 ELSIF
13116 (p_instance_rec.instance_status_id IS NOT NULL AND
13117 p_instance_rec.instance_status_id <> FND_API.G_MISS_NUM)
13118 THEN
13119 IF (CSI_Item_Instance_vld_pvt.val_inst_ter_flag --added first change
13120 (l_get_instance_rec.instance_status_id))
13121 THEN
13122 FND_MESSAGE.Set_Name('CSI', 'CSI_API_INVALID_STATUS');
13123 FND_MSG_PUB.ADD;
13124 RAISE FND_API.G_EXC_ERROR;
13125 END IF;
13126 END IF;
13127 END IF;
13128 END IF;
13129 -- end of addition by rtalluri for Bugfix 2318211 on 04/16/02
13130
13131 --validation for the instance condition id
13132 l_valid_flag := 'Y';
13133 l_exists_flag := 'N';
13134 If ((p_instance_rec.instance_condition_id is not null) AND
13135 (p_instance_rec.instance_condition_id <> FND_API.G_MISS_NUM) AND
13136 (p_instance_rec.instance_condition_id <> l_curr_instance_rec.instance_condition_id))
13137 THEN
13138 if p_generic_id_tbl.count > 0 then
13139 For gen_count in p_generic_id_tbl.FIRST .. p_generic_id_tbl.LAST
13140 Loop
13141 if p_generic_id_tbl(gen_count).generic_id = p_instance_rec.instance_condition_id AND
13142 p_generic_id_tbl(gen_count).id_type = 'INS_CONDITION' then
13143 l_valid_flag := p_generic_id_tbl(gen_count).valid_flag;
13144 l_exists_flag := 'Y';
13145 exit;
13146 end if;
13147 End Loop;
13148 --
13149 if l_valid_flag <> 'Y' then
13150 FND_MESSAGE.SET_NAME('CSI','CSI_API_INVALID_ITEM_CONDITION');
13151 FND_MESSAGE.SET_TOKEN('INSTANCE_CONDITION_ID',p_instance_rec.instance_condition_id);
13152 FND_MSG_PUB.Add;
13153 RAISE fnd_api.g_exc_error;
13154 end if;
13155 end if;
13156 --
13157 if l_exists_flag = 'N' then
13158 p_ins_count_rec.generic_count := p_ins_count_rec.generic_count + 1;
13159 p_generic_id_tbl(p_ins_count_rec.generic_count).generic_id := p_instance_rec.instance_condition_id;
13160 p_generic_id_tbl(p_ins_count_rec.generic_count).id_type := 'INS_CONDITION';
13161 csi_item_instance_vld_pvt.Is_Valid_Condition
13162 (
13163 p_instance_condition_id => p_instance_rec.instance_condition_id,
13164 p_creation_complete_flag => l_get_instance_rec.creation_complete_flag, -- l_get
13165 l_return_value => l_return_value
13166 );
13167 IF l_return_value = FALSE THEN
13168 p_generic_id_tbl(p_ins_count_rec.generic_count).valid_flag := 'N';
13169 RAISE fnd_api.g_exc_error;
13170 ELSE
13171 p_generic_id_tbl(p_ins_count_rec.generic_count).valid_flag := 'Y';
13172 END IF;
13173 end if;
13174 end if;
13175 --
13176 OPEN party_owner_rec(p_instance_rec.instance_id);
13177 FETCH party_owner_rec INTO l_party_owner_rec;
13178 IF NOT (csi_item_instance_vld_pvt.Validate_Uniqueness
13179 (p_instance_rec => l_get_instance_rec,
13180 p_party_rec => l_party_owner_rec,
13181 p_srl_control_code => l_serial_control,
13182 p_csi_txn_type_id => p_txn_rec.transaction_type_id))
13183 THEN
13184 RAISE FND_API.G_EXC_ERROR;
13185 END IF;
13186 CLOSE party_owner_rec;
13187
13188 --validation for the instance type
13189 l_valid_flag := 'Y';
13190 l_exists_flag := 'N';
13191 IF ((p_instance_rec.instance_type_code <> FND_API.G_MISS_CHAR) AND
13192 (p_instance_rec.instance_type_code IS NOT NULL) AND
13193 (p_instance_rec.instance_type_code <> l_curr_instance_rec.instance_type_code)) THEN
13194 If p_lookup_tbl.count > 0 then
13195 For lookup_count in p_lookup_tbl.FIRST .. p_lookup_tbl.LAST
13196 Loop
13197 if p_lookup_tbl(lookup_count).lookup_type = 'INSTANCE_TYPE' AND
13198 p_lookup_tbl(lookup_count).lookup_code = p_instance_rec.instance_type_code then
13199 l_valid_flag := p_lookup_tbl(lookup_count).valid_flag;
13200 l_exists_flag := 'Y';
13201 exit;
13202 end if;
13203 End Loop;
13204 --
13205 if l_valid_flag <> 'Y' then
13206 FND_MESSAGE.SET_NAME('CSI','CSI_API_INVALID_INSTANCE_TYPE');
13207 FND_MESSAGE.SET_TOKEN('INSTANCE_TYPE_CODE',p_instance_rec.instance_type_code);
13208 FND_MSG_PUB.Add;
13209 RAISE fnd_api.g_exc_error;
13210 end if;
13211 End if;
13212 --
13213 If l_exists_flag <> 'Y' then
13214 p_ins_count_rec.lookup_count := p_ins_count_rec.lookup_count + 1;
13215 p_lookup_tbl(p_ins_count_rec.lookup_count).lookup_type := 'INSTANCE_TYPE';
13216 p_lookup_tbl(p_ins_count_rec.lookup_count).lookup_code := p_instance_rec.instance_type_code;
13217 IF NOT csi_Item_Instance_Vld_pvt.Is_Valid_Instance_Type(
13218 p_instance_rec.instance_type_code) THEN
13219
13220 p_lookup_tbl(p_ins_count_rec.lookup_count).valid_flag := 'N';
13221 RAISE fnd_api.g_exc_error;
13222 ELSE
13223 p_lookup_tbl(p_ins_count_rec.lookup_count).valid_flag := 'Y';
13224 END IF;
13225 End if;
13226 END IF;
13227
13228 --validation for the instance usage code
13229 l_valid_flag := 'Y';
13230 l_exists_flag := 'N';
13231 IF ((p_instance_rec.instance_usage_code <> FND_API.G_MISS_CHAR) AND
13232 (p_instance_rec.instance_usage_code IS NOT NULL) AND
13233 (p_instance_rec.instance_usage_code <> l_curr_instance_rec.instance_usage_code)) THEN
13234 If p_lookup_tbl.count > 0 then
13235 For lookup_count in p_lookup_tbl.FIRST .. p_lookup_tbl.LAST
13236 Loop
13237 if p_lookup_tbl(lookup_count).lookup_type = 'INSTANCE_USAGE' AND
13238 p_lookup_tbl(lookup_count).lookup_code = p_instance_rec.instance_usage_code then
13239 l_valid_flag := p_lookup_tbl(lookup_count).valid_flag;
13240 l_exists_flag := 'Y';
13241 exit;
13242 end if;
13243 End Loop;
13244 --
13245 if l_valid_flag <> 'Y' then
13246 FND_MESSAGE.SET_NAME('CSI','CSI_API_INVALID_USAGE_CODE');
13247 FND_MESSAGE.SET_TOKEN('INSTANCE_USAGE_CODE',p_instance_rec.instance_usage_code);
13248 FND_MSG_PUB.Add;
13249 RAISE fnd_api.g_exc_error;
13250 end if;
13251 End if;
13252 --
13253 If l_exists_flag <> 'Y' then
13254 p_ins_count_rec.lookup_count := p_ins_count_rec.lookup_count + 1;
13255 p_lookup_tbl(p_ins_count_rec.lookup_count).lookup_type := 'INSTANCE_USAGE';
13256 p_lookup_tbl(p_ins_count_rec.lookup_count).lookup_code := p_instance_rec.instance_usage_code;
13257 IF NOT csi_Item_Instance_Vld_pvt.Valid_Inst_Usage_Code(
13258 p_instance_rec.instance_usage_code) THEN
13259 p_lookup_tbl(p_ins_count_rec.lookup_count).valid_flag := 'N';
13260 RAISE fnd_api.g_exc_error;
13261 ELSE
13262 p_lookup_tbl(p_ins_count_rec.lookup_count).valid_flag := 'Y';
13263 END IF;
13264 END IF;
13265 END IF;
13266
13267 -- Addition of columns for FA Integration
13268 --validation for the operational status
13269 l_valid_flag := 'Y';
13270 l_exists_flag := 'N';
13271 IF ((p_instance_rec.operational_status_code IS NOT NULL) AND
13272 (p_instance_rec.operational_status_code <> FND_API.G_MISS_CHAR) AND
13273 (p_instance_rec.operational_status_code <> l_curr_instance_rec.operational_status_code)
13274 )
13275 THEN
13276 IF p_lookup_tbl.count > 0 THEN
13277 For lookup_count in p_lookup_tbl.FIRST .. p_lookup_tbl.LAST
13278 LOOP
13279 IF p_lookup_tbl(lookup_count).lookup_type = 'OPERATIONAL_STATUS' AND
13280 p_lookup_tbl(lookup_count).lookup_code = p_instance_rec.operational_status_code
13281 THEN
13282 l_valid_flag := p_lookup_tbl(lookup_count).valid_flag;
13283 l_exists_flag := 'Y';
13284 exit;
13285 END IF;
13286 End Loop;
13287 --
13288 if l_valid_flag <> 'Y' then
13289 FND_MESSAGE.SET_NAME('CSI','CSI_OPERATIONAL_STATUS_CODE');
13290 FND_MESSAGE.SET_TOKEN('OPERATIONAL_STATUS_CODE',p_instance_rec.operational_status_code);
13291 FND_MSG_PUB.Add;
13292 RAISE fnd_api.g_exc_error;
13293 end if;
13294 End if;
13295 --
13296 IF l_exists_flag <> 'Y' THEN
13297 p_ins_count_rec.lookup_count := p_ins_count_rec.lookup_count + 1;
13298 p_lookup_tbl(p_ins_count_rec.lookup_count).lookup_type := 'OPERATIONAL_STATUS';
13299 p_lookup_tbl(p_ins_count_rec.lookup_count).lookup_code := p_instance_rec.operational_status_code;
13300 IF NOT csi_Item_Instance_Vld_pvt.Valid_operational_status(
13301 p_instance_rec.operational_status_code) THEN
13302 p_lookup_tbl(p_ins_count_rec.lookup_count).valid_flag := 'N';
13303 RAISE fnd_api.g_exc_error;
13304 ELSE
13305 p_lookup_tbl(p_ins_count_rec.lookup_count).valid_flag := 'Y';
13306 END IF;
13307 END IF;
13308 ELSE
13309 IF p_instance_rec.operational_status_code IS NULL
13310 THEN
13311 p_instance_rec.operational_status_code:='NOT_USED';
13312 END IF;
13313 END IF;
13314
13315 -- Following code has been added for operational_status_code
13316 -- If owner is Internal then
13317 l_int_party_id := csi_datastructures_pub.g_install_param_rec.internal_party_id;
13318 --
13319 IF l_int_party_id IS NULL THEN
13320 select internal_party_id
13321 into l_int_party_id
13322 from csi_install_parameters;
13323
13324 IF l_int_party_id IS NULL THEN
13325 FND_MESSAGE.SET_NAME('CSI','CSI_API_UNINSTALLED_PARAMETER');
13326 FND_MSG_PUB.ADD;
13327 RAISE FND_API.G_EXC_ERROR;
13328 END IF;
13329 END IF;
13330
13331 IF p_instance_rec.owner_party_id IS NULL OR
13332 p_instance_rec.owner_party_id = fnd_api.g_miss_num
13333 THEN
13334 SELECT owner_party_id
13335 INTO p_instance_rec.owner_party_id
13336 FROM csi_item_instances
13337 WHERE instance_id=p_instance_rec.instance_id;
13338 END IF;
13339
13340 IF p_instance_rec.owner_party_id = l_int_party_id
13341 THEN
13342 IF l_get_instance_rec.location_type_code='INVENTORY'
13343 THEN
13344 IF (p_instance_rec.operational_status_code IS NOT NULL AND
13345 p_instance_rec.operational_status_code <> fnd_api.g_miss_char)
13346 AND l_curr_instance_rec.operational_status_code IN ('NOT_USED','INSTALLED','IN_SERVICE')
13347 AND p_instance_rec.operational_status_code <> 'OUT_OF_SERVICE'
13348 THEN
13349 p_instance_rec.operational_status_code := 'OUT_OF_SERVICE';
13350 ELSIF (p_instance_rec.operational_status_code IS NOT NULL AND
13351 p_instance_rec.operational_status_code <> fnd_api.g_miss_char)
13352 AND l_curr_instance_rec.operational_status_code = 'OUT_OF_SERVICE'
13353 AND p_instance_rec.operational_status_code NOT IN ('NOT_USED','OUT_OF_SERVICE')
13354 THEN
13355 p_instance_rec.operational_status_code := 'NOT_USED';
13356 ELSIF l_curr_instance_rec.operational_status_code IS NULL OR
13357 (l_curr_instance_rec.operational_status_code NOT IN
13358 ('NOT_USED','OUT_OF_SERVICE','INSTALLED','IN_SERVICE'))
13359 THEN
13360 p_instance_rec.operational_status_code := 'NOT_USED';
13361 END IF;
13362 ELSIF l_get_instance_rec.location_type_code IN ('WIP','IN_TRANSIT')
13363 THEN
13364 IF (p_instance_rec.operational_status_code IS NOT NULL AND
13365 p_instance_rec.operational_status_code <> fnd_api.g_miss_char)
13366 AND p_instance_rec.operational_status_code <> 'NOT_USED'
13367 AND l_curr_instance_rec.operational_status_code = 'NOT_USED'
13368 THEN
13369 p_instance_rec.operational_status_code := 'NOT_USED';
13370 ELSIF (p_instance_rec.operational_status_code IS NOT NULL AND
13371 p_instance_rec.operational_status_code <> fnd_api.g_miss_char)
13372 AND p_instance_rec.operational_status_code <> 'OUT_OF_SERVICE'
13373 AND l_curr_instance_rec.operational_status_code = 'OUT_OF_SERVICE'
13374 THEN
13375 p_instance_rec.operational_status_code := 'OUT_OF_SERVICE';
13376 ELSIF l_curr_instance_rec.operational_status_code IS NULL OR
13377 (l_curr_instance_rec.operational_status_code NOT IN ('NOT_USED','OUT_OF_SERVICE'))
13378 THEN
13379 p_instance_rec.operational_status_code := 'NOT_USED';
13380 END IF;
13381 ELSIF l_get_instance_rec.location_type_code ='VENDOR_SITE'
13382 THEN
13383 IF (p_instance_rec.operational_status_code IS NOT NULL AND
13384 p_instance_rec.operational_status_code <> fnd_api.g_miss_char)
13385 AND p_instance_rec.operational_status_code <> 'NOT_USED'
13386 AND l_curr_instance_rec.operational_status_code IN ('NOT_USED','OUT_OF_SERVICE')
13387 THEN
13388 p_instance_rec.operational_status_code := 'NOT_USED';
13389 ELSIF l_curr_instance_rec.operational_status_code IS NULL OR
13390 (l_curr_instance_rec.operational_status_code NOT IN ('NOT_USED','OUT_OF_SERVICE'))
13391 THEN
13392 p_instance_rec.operational_status_code := 'NOT_USED';
13393 END IF;
13394 ELSIF l_get_instance_rec.location_type_code ='HZ_LOCATIONS'
13395 THEN
13396 IF (p_instance_rec.operational_status_code IS NOT NULL AND
13397 p_instance_rec.operational_status_code <> fnd_api.g_miss_char)
13398 AND p_instance_rec.operational_status_code NOT IN ('NOT_USED','INSTALLED','OUT_OF_SERVICE','IN_SERVICE')
13399 AND l_curr_instance_rec.operational_status_code IN ('NOT_USED','INSTALLED','OUT_OF_SERVICE','IN_SERVICE')
13400 THEN
13401 p_instance_rec.operational_status_code := 'NOT_USED';
13402 ELSIF l_curr_instance_rec.operational_status_code IS NULL OR
13403 (l_curr_instance_rec.operational_status_code NOT IN ('NOT_USED','INSTALLED','OUT_OF_SERVICE','IN_SERVICE'))
13404 THEN
13405 p_instance_rec.operational_status_code := 'NOT_USED';
13406 END IF; --HZ_PARTY_SITES
13407 ELSIF l_get_instance_rec.location_type_code ='HZ_PARTY_SITES'
13408 THEN
13409 IF (p_instance_rec.operational_status_code IS NOT NULL AND
13410 p_instance_rec.operational_status_code <> fnd_api.g_miss_char)
13411 AND p_instance_rec.operational_status_code NOT IN ('NOT_USED','INSTALLED','OUT_OF_SERVICE','IN_SERVICE')
13412 AND l_curr_instance_rec.operational_status_code IN ('NOT_USED','INSTALLED','OUT_OF_SERVICE')
13413 THEN
13414 p_instance_rec.operational_status_code := 'NOT_USED';
13415 ELSIF l_curr_instance_rec.operational_status_code IS NULL OR
13416 (l_curr_instance_rec.operational_status_code NOT IN ('NOT_USED','INSTALLED','OUT_OF_SERVICE','IN_SERVICE'))
13417 THEN
13418 p_instance_rec.operational_status_code := 'NOT_USED';
13419 END IF;
13420 ELSIF l_get_instance_rec.location_type_code = 'PROJECT'
13421 THEN
13422 IF (p_instance_rec.operational_status_code IS NOT NULL AND
13423 p_instance_rec.operational_status_code <> fnd_api.g_miss_char)
13424 AND p_instance_rec.operational_status_code <> 'NOT_USED'
13425 AND l_curr_instance_rec.operational_status_code = 'NOT_USED'
13426 THEN
13427 p_instance_rec.operational_status_code := 'NOT_USED';
13428 ELSIF (p_instance_rec.operational_status_code IS NOT NULL AND
13429 p_instance_rec.operational_status_code <> fnd_api.g_miss_char)
13430 AND p_instance_rec.operational_status_code <> 'OUT_OF_SERVICE'
13431 AND l_curr_instance_rec.operational_status_code = 'OUT_OF_SERVICE'
13432 THEN
13433 p_instance_rec.operational_status_code := 'OUT_OF_SERVICE';
13434 ELSIF (p_instance_rec.operational_status_code IS NOT NULL AND
13435 p_instance_rec.operational_status_code <> fnd_api.g_miss_char)
13436 AND p_instance_rec.operational_status_code NOT IN ('OUT_OF_SERVICE','NOT_USED')
13437 AND l_curr_instance_rec.operational_status_code = 'INSTALLED'
13438 THEN
13439 p_instance_rec.operational_status_code := 'NOT_USED';
13440 ELSIF l_curr_instance_rec.operational_status_code IS NULL OR
13441 (l_curr_instance_rec.operational_status_code NOT IN ('NOT_USED','OUT_OF_SERVICE','INSTALLED'))
13442 THEN
13443 p_instance_rec.operational_status_code := 'NOT_USED';
13444 END IF;
13445 END IF;
13446 ELSE -- External party
13447 IF l_get_instance_rec.location_type_code='INVENTORY'
13448 THEN
13449 IF (p_instance_rec.operational_status_code IS NOT NULL AND
13450 p_instance_rec.operational_status_code <> fnd_api.g_miss_char)
13451 AND l_curr_instance_rec.operational_status_code IN ('NOT_USED','INSTALLED','IN_SERVICE','OUT_OF_SERVICE')
13452 AND p_instance_rec.operational_status_code NOT IN ('OUT_OF_SERVICE','NOT_USED')
13453 THEN
13454 p_instance_rec.operational_status_code := 'OUT_OF_SERVICE';
13455 ELSIF l_curr_instance_rec.operational_status_code IS NULL OR
13456 (l_curr_instance_rec.operational_status_code NOT IN
13457 ('NOT_USED','OUT_OF_SERVICE','INSTALLED','IN_SERVICE'))
13458 THEN
13459 p_instance_rec.operational_status_code := 'OUT_OF_SERVICE';
13460 END IF;
13461 ELSIF l_get_instance_rec.location_type_code IN ('WIP','IN_TRANSIT')
13462 THEN
13463 IF (p_instance_rec.operational_status_code IS NOT NULL AND
13464 p_instance_rec.operational_status_code <> fnd_api.g_miss_char)
13465 AND p_instance_rec.operational_status_code <> 'NOT_USED'
13466 AND l_curr_instance_rec.operational_status_code = 'NOT_USED'
13467 THEN
13468 p_instance_rec.operational_status_code := 'NOT_USED';
13469 ELSIF (p_instance_rec.operational_status_code IS NOT NULL AND
13470 p_instance_rec.operational_status_code <> fnd_api.g_miss_char)
13471 AND p_instance_rec.operational_status_code <> 'OUT_OF_SERVICE'
13472 AND l_curr_instance_rec.operational_status_code = 'OUT_OF_SERVICE'
13473 THEN
13474 p_instance_rec.operational_status_code := 'OUT_OF_SERVICE';
13475 ELSIF l_curr_instance_rec.operational_status_code IS NULL OR
13476 (l_curr_instance_rec.operational_status_code NOT IN ('NOT_USED','OUT_OF_SERVICE'))
13477 THEN
13478 p_instance_rec.operational_status_code := 'NOT_USED';
13479 END IF;
13480 ELSIF l_get_instance_rec.location_type_code ='VENDOR_SITE'
13481 THEN
13482 IF (p_instance_rec.operational_status_code IS NOT NULL AND
13483 p_instance_rec.operational_status_code <> fnd_api.g_miss_char)
13484 AND p_instance_rec.operational_status_code <> 'NOT_USED'
13485 AND l_curr_instance_rec.operational_status_code IN ('NOT_USED','OUT_OF_SERVICE')
13486 THEN
13487 p_instance_rec.operational_status_code := 'NOT_USED';
13488 ELSIF l_curr_instance_rec.operational_status_code IS NULL OR
13489 (l_curr_instance_rec.operational_status_code NOT IN ('NOT_USED','OUT_OF_SERVICE'))
13490 THEN
13491 p_instance_rec.operational_status_code := 'NOT_USED';
13492 END IF;
13493 ELSIF l_get_instance_rec.location_type_code = 'PROJECT'
13494 THEN
13495 IF (p_instance_rec.operational_status_code IS NOT NULL AND
13496 p_instance_rec.operational_status_code <> fnd_api.g_miss_char)
13497 AND p_instance_rec.operational_status_code <> 'NOT_USED'
13498 AND l_curr_instance_rec.operational_status_code = 'NOT_USED'
13499 THEN
13500 p_instance_rec.operational_status_code := 'NOT_USED';
13501 ELSIF (p_instance_rec.operational_status_code IS NOT NULL AND
13502 p_instance_rec.operational_status_code <> fnd_api.g_miss_char)
13503 AND p_instance_rec.operational_status_code <> 'OUT_OF_SERVICE'
13504 AND l_curr_instance_rec.operational_status_code = 'OUT_OF_SERVICE'
13505 THEN
13506 p_instance_rec.operational_status_code := 'OUT_OF_SERVICE';
13507 ELSIF (p_instance_rec.operational_status_code IS NOT NULL AND
13508 p_instance_rec.operational_status_code <> fnd_api.g_miss_char)
13509 AND p_instance_rec.operational_status_code NOT IN ('OUT_OF_SERVICE','NOT_USED')
13510 AND l_curr_instance_rec.operational_status_code = 'INSTALLED'
13511 THEN
13512 p_instance_rec.operational_status_code := 'NOT_USED';
13513 ELSIF l_curr_instance_rec.operational_status_code IS NULL OR
13514 (l_curr_instance_rec.operational_status_code NOT IN ('NOT_USED','OUT_OF_SERVICE','INSTALLED'))
13515 THEN
13516 p_instance_rec.operational_status_code := 'NOT_USED';
13517 END IF;
13518 ELSIF l_get_instance_rec.location_type_code ='HZ_PARTY_SITES'
13519 THEN
13520 IF (p_instance_rec.operational_status_code IS NOT NULL AND
13521 p_instance_rec.operational_status_code <> fnd_api.g_miss_char)
13522 AND p_instance_rec.operational_status_code NOT IN ('INSTALLED','OUT_OF_SERVICE','IN_SERVICE')
13523 AND l_curr_instance_rec.operational_status_code ='NOT_USED'
13524 THEN
13525 p_instance_rec.operational_status_code := 'NOT_USED';
13526 ELSIF (p_instance_rec.operational_status_code IS NOT NULL AND
13527 p_instance_rec.operational_status_code <> fnd_api.g_miss_char)
13528 AND p_instance_rec.operational_status_code NOT IN ('INSTALLED','IN_SERVICE','NOT_USED')
13529 AND l_curr_instance_rec.operational_status_code ='OUT_OF_SERVICE'
13530 THEN
13531 p_instance_rec.operational_status_code := 'OUT_OF_SERVICE';
13532 ELSIF l_curr_instance_rec.operational_status_code IS NULL OR
13533 (l_curr_instance_rec.operational_status_code NOT IN ('NOT_USED','OUT_OF_SERVICE'))
13534 THEN
13535 p_instance_rec.operational_status_code := 'NOT_USED';
13536 END IF;
13537 ELSIF l_get_instance_rec.location_type_code ='HZ_LOCATIONS'
13538 THEN
13539 IF (p_instance_rec.operational_status_code IS NOT NULL AND
13540 p_instance_rec.operational_status_code <> fnd_api.g_miss_char)
13541 AND p_instance_rec.operational_status_code NOT IN ('NOT_USED','INSTALLED','OUT_OF_SERVICE','IN_SERVICE')
13542 AND l_curr_instance_rec.operational_status_code IN ('NOT_USED','INSTALLED','OUT_OF_SERVICE','IN_SERVICE')
13543 THEN
13544 p_instance_rec.operational_status_code := 'NOT_USED';
13545 ELSIF l_curr_instance_rec.operational_status_code IS NULL OR
13546 (l_curr_instance_rec.operational_status_code NOT IN ('NOT_USED','INSTALLED','OUT_OF_SERVICE','IN_SERVICE'))
13547 THEN
13548 p_instance_rec.operational_status_code := 'NOT_USED';
13549 END IF;
13550 END IF;
13551 END IF;
13552
13553
13554
13555 IF ((p_instance_rec.purchase_currency_code IS NOT NULL) AND
13556 (p_instance_rec.purchase_currency_code <> FND_API.G_MISS_CHAR) AND
13557 (p_instance_rec.purchase_currency_code <> nvl(l_curr_instance_rec.purchase_currency_code,'$$##$$'))
13558 )
13559 THEN
13560 p_instance_rec.purchase_currency_code := UPPER(p_instance_rec.purchase_currency_code);
13561 IF NOT csi_item_instance_vld_pvt.valid_currency_code
13562 (p_currency_code => p_instance_rec.purchase_currency_code)
13563 THEN
13564 RAISE fnd_api.g_exc_error;
13565 END IF;
13566 END IF;
13567
13568 IF ((p_instance_rec.payables_currency_code IS NOT NULL) AND
13569 (p_instance_rec.payables_currency_code <> FND_API.G_MISS_CHAR) AND
13570 (p_instance_rec.payables_currency_code <> nvl(l_curr_instance_rec.payables_currency_code,'$$##$$'))
13571 )
13572 THEN
13573 p_instance_rec.payables_currency_code := UPPER(p_instance_rec.payables_currency_code);
13574 IF NOT csi_item_instance_vld_pvt.valid_currency_code
13575 (p_currency_code => p_instance_rec.payables_currency_code)
13576 THEN
13577 RAISE fnd_api.g_exc_error;
13578 END IF;
13579 END IF;
13580
13581 IF ((p_instance_rec.sales_currency_code IS NOT NULL) AND
13582 (p_instance_rec.sales_currency_code <> FND_API.G_MISS_CHAR) AND
13583 (p_instance_rec.sales_currency_code <> nvl(l_curr_instance_rec.sales_currency_code,'$$##$$'))
13584 )
13585 THEN
13586 p_instance_rec.sales_currency_code := UPPER(p_instance_rec.sales_currency_code);
13587 IF NOT csi_item_instance_vld_pvt.valid_currency_code
13588 (p_currency_code => p_instance_rec.sales_currency_code)
13589 THEN
13590 RAISE fnd_api.g_exc_error;
13591 END IF;
13592 END IF;
13593 IF (
13594 ((l_curr_instance_rec.purchase_currency_code IS NOT NULL AND
13595 l_curr_instance_rec.purchase_unit_price IS NOT NULL) AND
13596 ((p_instance_rec.purchase_currency_code IS NULL AND
13597 p_instance_rec.purchase_unit_price = FND_API.G_MISS_NUM) OR
13598 (p_instance_rec.purchase_unit_price IS NULL AND
13599 p_instance_rec.purchase_currency_code = FND_API.G_MISS_CHAR))
13600 )
13601 OR
13602 (
13603 (l_curr_instance_rec.purchase_currency_code IS NULL AND
13604 l_curr_instance_rec.purchase_unit_price IS NULL) AND
13605 (((p_instance_rec.purchase_currency_code IS NOT NULL AND
13606 p_instance_rec.purchase_currency_code <> FND_API.G_MISS_CHAR) AND
13607 (p_instance_rec.purchase_unit_price IS NULL OR
13608 p_instance_rec.purchase_unit_price = FND_API.G_MISS_NUM)) OR
13609 ((p_instance_rec.purchase_currency_code IS NULL OR
13610 p_instance_rec.purchase_currency_code = FND_API.G_MISS_CHAR) AND
13611 (p_instance_rec.purchase_unit_price IS NOT NULL AND
13612 p_instance_rec.purchase_unit_price <> FND_API.G_MISS_NUM)))
13613 )
13614 )
13615 OR
13616 (
13617 ((l_curr_instance_rec.payables_currency_code IS NOT NULL AND
13618 l_curr_instance_rec.payables_unit_price IS NOT NULL) AND
13619 ((p_instance_rec.payables_currency_code IS NULL AND
13620 p_instance_rec.payables_unit_price = FND_API.G_MISS_NUM) OR
13621 (p_instance_rec.payables_unit_price IS NULL AND
13622 p_instance_rec.payables_currency_code = FND_API.G_MISS_CHAR))
13623 )
13624 OR
13625 (
13626 (l_curr_instance_rec.payables_currency_code IS NULL AND
13627 l_curr_instance_rec.payables_unit_price IS NULL) AND
13628 (((p_instance_rec.payables_currency_code IS NOT NULL AND
13629 p_instance_rec.payables_currency_code <> FND_API.G_MISS_CHAR) AND
13630 (p_instance_rec.payables_unit_price IS NULL OR
13631 p_instance_rec.payables_unit_price = FND_API.G_MISS_NUM)) OR
13632 ((p_instance_rec.payables_currency_code IS NULL OR
13633 p_instance_rec.payables_currency_code = FND_API.G_MISS_CHAR) AND
13634 (p_instance_rec.payables_unit_price IS NOT NULL AND
13635 p_instance_rec.payables_unit_price <> FND_API.G_MISS_NUM)))
13636 )
13637 )
13638 OR
13639 (
13640 ((l_curr_instance_rec.sales_currency_code IS NOT NULL AND
13641 l_curr_instance_rec.sales_unit_price IS NOT NULL) AND
13642 ((p_instance_rec.sales_currency_code IS NULL AND
13643 p_instance_rec.sales_unit_price = FND_API.G_MISS_NUM) OR
13644 (p_instance_rec.sales_unit_price IS NULL AND
13645 p_instance_rec.sales_currency_code = FND_API.G_MISS_CHAR))
13646 )
13647 OR
13648 (
13649 (l_curr_instance_rec.sales_currency_code IS NULL AND
13650 l_curr_instance_rec.sales_unit_price IS NULL) AND
13651 (((p_instance_rec.sales_currency_code IS NOT NULL AND
13652 p_instance_rec.sales_currency_code <> FND_API.G_MISS_CHAR) AND
13653 (p_instance_rec.sales_unit_price IS NULL OR
13654 p_instance_rec.sales_unit_price = FND_API.G_MISS_NUM)) OR
13655 ((p_instance_rec.sales_currency_code IS NULL OR
13656 p_instance_rec.sales_currency_code = FND_API.G_MISS_CHAR) AND
13657 (p_instance_rec.sales_unit_price IS NOT NULL AND
13658 p_instance_rec.sales_unit_price <> FND_API.G_MISS_NUM)))
13659 )
13660 )
13661 THEN
13662 FND_MESSAGE.SET_NAME('CSI','CSI_NO_PRICE_OR_CODE');
13663 FND_MSG_PUB.Add;
13664 RAISE fnd_api.g_exc_error;
13665 END IF;
13666 -- End addition of columns for FA Integration
13667
13668 -- Start of bug fix 2151750 by sk on 02/04/02
13669
13670 -- If location_type_code has been changing from something to INVENTORY
13671 -- then check if this record has been existing as a subject in csi_ii_relationships
13672 -- of COMPONENT-OF relationship_type_code and if exists then if
13673 -- l_get_instance_rec.instance_usage_code is not equal to
13674 -- IN_RELATIONSHIP then raise an error.
13675
13676 IF l_curr_instance_rec.location_type_code <> 'INVENTORY' AND
13677 p_instance_rec.location_type_code = 'INVENTORY'
13678 THEN
13679 l_temp_rec := null;
13680 BEGIN
13681 SELECT 'x'
13682 INTO l_temp_rec
13683 FROM csi_ii_relationships
13684 WHERE relationship_type_code = 'COMPONENT-OF'
13685 AND subject_id = p_instance_rec.instance_id
13686 AND (active_end_date IS NULL OR active_end_date > SYSDATE);
13687 EXCEPTION
13688 WHEN OTHERS THEN
13689 null;
13690 END;
13691
13692 IF ( l_get_instance_rec.instance_usage_code <> 'IN_RELATIONSHIP' OR
13693 l_get_instance_rec.instance_usage_code IS NULL OR
13694 l_get_instance_rec.instance_usage_code = fnd_api.g_miss_char) AND
13695 l_temp_rec IS NOT NULL
13696 THEN
13697 FND_MESSAGE.Set_Name('CSI', 'CSI_INVALID_USAGE_CODE');
13698 FND_MSG_PUB.ADD;
13699 RAISE fnd_api.g_exc_error;
13700 END IF;
13701
13702
13703 END IF;
13704
13705
13706 -- The following code has been added to disallow updating instance_usage_code
13707 -- if the instance is in IN-RELATIONSHIP.
13708 IF l_curr_instance_rec.instance_usage_code = 'IN_RELATIONSHIP' AND
13709 ( ( p_instance_rec.instance_usage_code <> 'IN_RELATIONSHIP' AND
13710 p_instance_rec.instance_usage_code IS NOT NULL AND
13711 p_instance_rec.instance_usage_code <> fnd_api.g_miss_char)
13712 OR
13713 ( p_instance_rec.instance_usage_code IS NULL)
13714 )
13715 THEN
13716 l_temp_rec1 := NULL;
13717 BEGIN
13718 SELECT 'x'
13719 INTO l_temp_rec1
13720 FROM csi_ii_relationships
13721 WHERE relationship_type_code = 'COMPONENT-OF'
13722 AND subject_id = p_instance_rec.instance_id
13723 AND (active_end_date IS NULL OR active_end_date > SYSDATE);
13724
13725 IF l_temp_rec1 IS NOT NULL
13726 THEN
13727 FND_MESSAGE.Set_Name('CSI', 'CSI_MODIFY_USAGE_CODE');
13728 FND_MESSAGE.SET_TOKEN('INSTANCE_ID',p_instance_rec.instance_id);
13729 FND_MSG_PUB.ADD;
13730 RAISE fnd_api.g_exc_error;
13731 END IF;
13732 EXCEPTION
13733 WHEN NO_DATA_FOUND THEN
13734 NULL;
13735 END;
13736 END IF;
13737 -- End of bug fix 2151750 by sk on 02/04/02
13738
13739 --location validation
13740 IF (
13741 (
13742 ((p_instance_rec.location_type_code IS NULL) AND (l_curr_instance_rec.location_type_code IS NOT NULL))
13743 OR
13744 (p_instance_rec.location_type_code <> FND_API.G_MISS_CHAR
13745 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))
13746 )
13747 OR
13748 (
13749 ((p_instance_rec.location_id IS NULL) AND (l_curr_instance_rec.location_id IS NOT NULL))
13750 OR
13751 (p_instance_rec.location_id <> FND_API.G_MISS_NUM
13752 AND NVL(p_instance_rec.location_id, FND_API.G_MISS_NUM) <> NVL(l_curr_instance_rec.location_id, FND_API.G_MISS_NUM))
13753 )
13754 OR
13755 (
13756 ((p_instance_rec.install_location_type_code IS NULL) AND (l_curr_instance_rec.install_location_type_code IS NOT NULL))
13757 OR
13758 (p_instance_rec.install_location_type_code <> FND_API.G_MISS_CHAR
13759 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))
13760 )
13761 OR
13762 (
13763 ((p_instance_rec.install_location_id IS NULL) AND (l_curr_instance_rec.install_location_id IS NOT NULL))
13764 OR
13765 (p_instance_rec.install_location_id <> FND_API.G_MISS_NUM
13766 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))
13767 )
13768 OR
13769 (
13770 ((p_instance_rec.inv_organization_id IS NULL) AND (l_curr_instance_rec.inv_organization_id IS NOT NULL))
13771 OR
13772 (p_instance_rec.inv_organization_id <> FND_API.G_MISS_NUM
13773 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))
13774 )
13775 OR
13776 (
13777 ((p_instance_rec.inv_subinventory_name IS NULL) AND (l_curr_instance_rec.inv_subinventory_name IS NOT NULL))
13778 OR
13779 (p_instance_rec.inv_subinventory_name <> FND_API.G_MISS_CHAR
13780 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))
13781 )
13782 OR
13783 (
13784 ((p_instance_rec.inv_locator_id IS NULL) AND (l_curr_instance_rec.inv_locator_id IS NOT NULL))
13785 OR
13786 (p_instance_rec.inv_locator_id <> FND_API.G_MISS_NUM
13787 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))
13788 )
13789 OR
13790 (
13791 ((p_instance_rec.pa_project_id IS NULL) AND (l_curr_instance_rec.pa_project_id IS NOT NULL))
13792 OR
13793 (p_instance_rec.pa_project_id <> FND_API.G_MISS_NUM
13794 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))
13795 )
13796 OR
13797 (
13798 ((p_instance_rec.pa_project_task_id IS NULL) AND (l_curr_instance_rec.pa_project_task_id is not null))
13799 OR
13800 (p_instance_rec.pa_project_task_id <> FND_API.G_MISS_NUM
13801 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))
13802 )
13803 OR
13804 (
13805 ((p_instance_rec.in_transit_order_line_id IS NULL) AND (l_curr_instance_rec.in_transit_order_line_id IS NOT NULL))
13806 OR
13807 (p_instance_rec.in_transit_order_line_id <> FND_API.G_MISS_NUM
13808 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))
13809 )
13810 OR
13811 (
13812 ((p_instance_rec.wip_job_id IS NULL) AND (l_curr_instance_rec.wip_job_id IS NOT NULL))
13813 OR
13814 (p_instance_rec.wip_job_id <> FND_API.G_MISS_NUM
13815 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))
13816 )
13817 OR
13818 (
13819 ((p_instance_rec.po_order_line_id IS NULL) AND (l_curr_instance_rec.po_order_line_id IS NOT NULL))
13820 OR
13821 (p_instance_rec.po_order_line_id <> FND_API.G_MISS_NUM
13822 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))
13823 )
13824 ) THEN
13825
13826 --bring has parent logic here
13827 IF csi_Item_Instance_Vld_Pvt.Instance_has_Parent(
13828 p_instance_id => p_instance_rec.instance_id
13829 ) THEN
13830 FND_MESSAGE.Set_Name('CSI', 'CSI_API_INSTANCE_HAS_PARENT');
13831 FND_MSG_PUB.ADD;
13832 RAISE fnd_api.g_exc_error;
13833 END IF;
13834 -- Validate Location ID
13835 IF l_get_instance_rec.location_type_code IS NULL OR
13836 l_get_instance_rec.location_type_code = FND_API.G_MISS_CHAR OR
13837 l_get_instance_rec.location_id IS NULL OR
13838 l_get_instance_rec.location_id = FND_API.G_MISS_NUM THEN
13839 FND_MESSAGE.SET_NAME('CSI','CSI_API_LOCATION_NOT_VALID');
13840 FND_MSG_PUB.ADD;
13841 RAISE fnd_api.g_exc_error;
13842 END IF;
13843 --
13844 l_exists_flag := 'N';
13845 l_valid_flag := 'Y';
13846 IF p_location_tbl.count > 0 THEN
13847 For loc_row in p_location_tbl.FIRST .. p_location_tbl.LAST
13848 Loop
13849 IF p_location_tbl(loc_row).location_type_code = l_get_instance_rec.location_type_code AND
13850 p_location_tbl(loc_row).location_id = l_get_instance_rec.location_id THEN
13851 l_exists_flag := 'Y';
13852 l_valid_flag := p_location_tbl(loc_row).valid_flag;
13853 EXIT;
13854 END IF;
13855 End Loop;
13856 --
13857 IF l_valid_flag <> 'Y' THEN
13858 FND_MESSAGE.SET_NAME('CSI','CSI_API_LOCATION_NOT_VALID');
13859 FND_MSG_PUB.ADD;
13860 RAISE fnd_api.g_exc_error;
13861 END IF;
13862 END IF; -- p_location_tbl count
13863 --
13864 IF l_exists_flag <> 'Y' THEN
13865 p_ins_count_rec.location_count := p_ins_count_rec.location_count + 1;
13866 p_location_tbl(p_ins_count_rec.location_count).location_type_code :=
13867 l_get_instance_rec.location_type_code;
13868 p_location_tbl(p_ins_count_rec.location_count).location_id := l_get_instance_rec.location_id;
13869 IF csi_item_instance_vld_pvt.Is_Valid_Location_ID
13870 (p_location_source_table => l_get_instance_rec.location_type_code
13871 ,p_location_id => l_get_instance_rec.location_id) THEN
13872 p_location_tbl(p_ins_count_rec.location_count).valid_flag := 'Y';
13873 ELSE
13874 p_location_tbl(p_ins_count_rec.location_count).valid_flag := 'N';
13875 RAISE fnd_api.g_exc_error;
13876 END IF;
13877 END IF;
13878 -- Validate Related Location Parameters
13879 IF NOT csi_item_instance_vld_pvt.Validate_Related_Loc_Params
13880 (
13881 p_location_source_table => l_get_instance_rec.location_type_code,
13882 p_location_id => l_get_instance_rec.location_id,
13883 p_organization_id => l_get_instance_rec.inv_organization_id,
13884 p_subinventory => l_get_instance_rec.inv_subinventory_name,
13885 p_locator_id => l_get_instance_rec.inv_locator_id,
13886 p_project_id => l_get_instance_rec.pa_project_id,
13887 p_task_id => l_get_instance_rec.pa_project_task_id,
13888 p_sales_ord_line_id => l_get_instance_rec.in_transit_order_line_id,
13889 p_wip_job_id => l_get_instance_rec.wip_job_id,
13890 p_po_line_id => l_get_instance_rec.po_order_line_id,
13891 p_inst_usage_code => l_get_instance_rec.instance_usage_code
13892 ) THEN
13893 RAISE fnd_api.g_exc_error;
13894 END IF;
13895 -- validation for accounting classification_code if
13896 -- p_instance_rec.accounting_class_code = FND_API.G_MISS_CHAR
13897
13898 IF ( p_instance_rec.accounting_class_code = FND_API.G_MISS_CHAR ) THEN
13899
13900 csi_item_instance_vld_pvt.get_valid_acct_class
13901 ( p_instance_id => p_instance_rec.instance_id
13902 ,p_curr_acct_class_code => l_get_instance_rec.accounting_class_code
13903 ,p_loc_type_code => l_get_instance_rec.location_type_code
13904 ,x_acct_class_code => l_acct_class_code
13905 );
13906 -- The following code has been commented for bug 4906588
13907 /*
13908 IF l_eam_item
13909 THEN
13910 p_instance_rec.accounting_class_code := 'ASSET';
13911 ELSE
13912 */
13913 p_instance_rec.accounting_class_code := l_acct_class_code;
13914 -- END IF;
13915 END IF;
13916
13917 IF l_curr_instance_rec.location_type_code = 'IN_TRANSIT' AND
13918 (p_instance_rec.location_type_code <> l_curr_instance_rec.location_type_code) THEN
13919 BEGIN
13920 SELECT decode(return_reason_code, 'RETURN', l_curr_instance_rec.last_oe_order_line_id, line_id),
13921 decode(return_reason_code, 'RETURN', line_id, l_curr_instance_rec.last_oe_rma_line_id),
13922 agreement_id
13923 INTO p_instance_rec.last_oe_order_line_id,
13924 p_instance_rec.last_oe_rma_line_id,
13925 p_instance_rec.last_oe_agreement_id
13926 FROM oe_order_lines_all
13927 WHERE line_id = l_curr_instance_rec.in_transit_order_line_id;
13928 EXCEPTION
13929 WHEN OTHERS THEN
13930 NULL;
13931 END ;
13932
13933 ELSIF l_curr_instance_rec.location_type_code = 'WIP' AND
13934 (p_instance_rec.location_type_code <> l_curr_instance_rec.location_type_code) THEN
13935 IF p_instance_rec.last_wip_job_id IS NULL OR
13936 p_instance_rec.last_wip_job_id = fnd_api.g_miss_num
13937 THEN
13938 p_instance_rec.last_wip_job_id := l_curr_instance_rec.wip_job_id;
13939 END IF;
13940
13941 ELSIF l_curr_instance_rec.location_type_code = 'PROJECT' AND
13942 (p_instance_rec.location_type_code <> l_curr_instance_rec.location_type_code) THEN
13943 p_instance_rec.last_pa_project_id := l_curr_instance_rec.pa_project_id;
13944 p_instance_rec.last_pa_task_id := l_curr_instance_rec.pa_project_task_id;
13945
13946 ELSIF l_curr_instance_rec.location_type_code = 'HZ_LOCATIONS' AND
13947 (p_instance_rec.location_type_code <> l_curr_instance_rec.location_type_code) THEN
13948 IF ((l_curr_instance_rec.pa_project_id IS NOT NULL) AND
13949 (l_curr_instance_rec.pa_project_task_id IS NOT NULL)) THEN
13950 p_instance_rec.last_pa_project_id := l_curr_instance_rec.pa_project_id;
13951 p_instance_rec.last_pa_task_id := l_curr_instance_rec.pa_project_task_id;
13952 END IF;
13953
13954 ELSIF l_curr_instance_rec.location_type_code = 'PO' AND
13955 (p_instance_rec.location_type_code <> l_curr_instance_rec.location_type_code) THEN
13956 p_instance_rec.last_po_po_line_id := l_curr_instance_rec.po_order_line_id;
13957 END IF;
13958
13959 --validating the owner
13960 OPEN party_owner_rec(p_instance_rec.instance_id);
13961 FETCH party_owner_rec INTO l_party_owner_rec;
13962 IF NOT (csi_item_instance_vld_pvt.Validate_Uniqueness
13963 (p_instance_rec => l_get_instance_rec,
13964 p_party_rec => l_party_owner_rec,
13965 p_srl_control_code => l_serial_control,
13966 p_csi_txn_type_id => p_txn_rec.transaction_type_id))
13967 THEN
13968 RAISE FND_API.G_EXC_ERROR;
13969 END IF;
13970 CLOSE party_owner_rec;
13971
13972 END IF;
13973
13974
13975
13976
13977 IF l_get_instance_rec.instance_id IS NOT NULL
13978 AND l_get_instance_rec.inventory_item_id IS NOT NULL
13979 AND l_get_instance_rec.inv_master_organization_id IS NOT NULL
13980 -- AND (((l_serial_control IN (2,5,6))
13981 AND (((csi_Item_Instance_Vld_pvt.Is_treated_serialized
13982 ( p_serial_control_code => l_serial_control
13983 ,p_location_type_code => l_get_instance_rec.location_type_code
13984 ,p_transaction_type_id => p_txn_rec.transaction_type_id
13985 )) -- Added by sk on 13/9/01
13986 AND ((l_get_instance_rec.serial_number IS NOT NULL) AND (l_get_instance_rec.serial_number <> FND_API.G_MISS_CHAR)))
13987 -- OR (l_serial_control NOT IN (2,5,6)))
13988 OR (NOT (csi_Item_Instance_Vld_pvt.Is_treated_serialized
13989 ( p_serial_control_code => l_serial_control
13990 ,p_location_type_code => l_get_instance_rec.location_type_code
13991 ,p_transaction_type_id => p_txn_rec.transaction_type_id
13992 )) ) )
13993 AND (((l_lot_control = 2)
13994 AND ((l_get_instance_rec.lot_number IS NOT NULL) AND (l_get_instance_rec.lot_number <> FND_API.G_MISS_CHAR)))
13995 OR (l_lot_control <> 2))
13996 AND l_get_instance_rec.instance_status_id IS NOT NULL
13997 AND (((l_rev_control = 2)
13998 AND ((l_get_instance_rec.inventory_revision IS NOT NULL)
13999 AND (l_get_instance_rec.inventory_revision <> FND_API.G_MISS_CHAR)))
14000 OR (l_rev_control <> 2))
14001 AND l_get_instance_rec.location_type_code IS NOT NULL THEN
14002
14003 IF (p_instance_rec.creation_complete_flag IS NULL) OR
14004 (p_instance_rec.creation_complete_flag = FND_API.G_MISS_CHAR) THEN
14005
14006 p_instance_rec.creation_complete_flag := 'Y';
14007 END IF;
14008
14009 ELSE
14010 IF ((l_curr_instance_rec.creation_complete_flag = 'Y') OR
14011 (nvl(p_instance_rec.creation_complete_flag, fnd_api.g_miss_char) = 'Y'))
14012 THEN
14013 IF ((l_serial_control = 6) and (l_get_instance_rec.serial_number is null)) THEN
14014 p_instance_rec.creation_complete_flag := 'N';
14015 ELSE
14016 FND_MESSAGE.SET_NAME('CSI','CSI_API_INVALID_ATTRIBUTES');
14017 FND_MSG_PUB.Add;
14018 RAISE fnd_api.g_exc_error;
14019 END IF;
14020 ELSE
14021 p_instance_rec.creation_complete_flag := 'N';
14022 END IF;
14023 END IF;
14024 --
14025 -- Check for active_end_date
14026 -- srramakr Instance Status ID should be made EXPIRED when the Active End Date is <= sysdate and
14027 -- the passed instance status not having Terminated Flag as Y.
14028 --
14029 IF (l_get_instance_rec.active_end_date <= l_sys_date) THEN
14030 -- TSO with Equipment changes.
14031 -- Nullifying the config keys
14032 p_instance_rec.config_inst_hdr_id := NULL;
14033 p_instance_rec.config_inst_rev_num := NULL;
14034 p_instance_rec.config_inst_item_id := NULL;
14035 p_instance_rec.config_valid_status := NULL;
14036 --
14037 IF NOT (CSI_Item_Instance_vld_pvt.val_inst_ter_flag(
14038 p_instance_rec.instance_status_id)) THEN
14039 -- Added by sguthiva for bug 2520978
14040 p_instance_rec.instance_status_id:=fnd_profile.value('CSI_SYS_TERM_INST_STATUS_ID');
14041 IF p_instance_rec.instance_status_id IS NULL
14042 OR p_instance_rec.instance_status_id=fnd_api.g_miss_num
14043 THEN
14044 p_instance_rec.instance_status_id := 1;
14045 END IF;
14046 -- End addition by sguthiva for bug 2520978.
14047 END IF;
14048 -- Start addition by sguthiva for bug 2416193
14049 -- Relaxing this check for RMA Receipt transaction
14050 IF p_txn_rec.transaction_type_id = 1
14051 THEN
14052 BEGIN
14053 SELECT 'x'
14054 INTO l_open_service
14055 FROM cs_incidents_all csi,
14056 cs_incident_statuses_b csb
14057 WHERE csi.incident_status_id = csb.incident_status_id
14058 AND csi.customer_product_id = p_instance_rec.instance_id
14059 AND NVL(close_flag,'N')<>'Y';
14060
14061 FND_MESSAGE.SET_NAME('CSI','CSI_IB_HAS_OPEN_SR');
14062 FND_MSG_PUB.ADD;
14063 RAISE FND_API.G_EXC_ERROR;
14064
14065 EXCEPTION
14066 WHEN TOO_MANY_ROWS THEN
14067 FND_MESSAGE.SET_NAME('CSI','CSI_IB_HAS_OPEN_SR');
14068 FND_MSG_PUB.ADD;
14069 RAISE FND_API.G_EXC_ERROR;
14070
14071 WHEN NO_DATA_FOUND THEN -- modfied for bug 3693511
14072 NULL;
14073 END;
14074 END IF;
14075 -- End addition for bug 2416193
14076 END IF;
14077 -- Validation for install location
14078 -- Start addition by sk on 02/06/02 for bug 2213922
14079 IF p_instance_rec.install_location_type_code IS NOT NULL AND
14080 p_instance_rec.install_location_type_code <> fnd_api.g_miss_char
14081 THEN
14082 IF p_instance_rec.install_location_type_code = 'HZ_PARTY_SITES' OR
14083 p_instance_rec.install_location_type_code = 'HZ_LOCATIONS' OR
14084 p_instance_rec.install_location_type_code = 'VENDOR_SITE' OR
14085 p_instance_rec.install_location_type_code = 'INTERNAL_SITE' OR
14086 p_instance_rec.install_location_type_code = 'HR_LOCATIONS' --4926773
14087 THEN
14088 IF p_instance_rec.install_location_id IS NULL OR
14089 p_instance_rec.install_location_id = FND_API.G_MISS_NUM THEN
14090 FND_MESSAGE.SET_NAME('CSI','CSI_INVALID_INSTALL_LOC');
14091 FND_MSG_PUB.ADD;
14092 RAISE fnd_api.g_exc_error;
14093 END IF;
14094 --
14095 l_exists_flag := 'N';
14096 l_valid_flag := 'Y';
14097 IF p_location_tbl.count > 0 THEN
14098 For loc_row in p_location_tbl.FIRST .. p_location_tbl.LAST
14099 Loop
14100 IF p_location_tbl(loc_row).location_type_code = p_instance_rec.install_location_type_code
14101 AND p_location_tbl(loc_row).location_id = p_instance_rec.install_location_id THEN
14102 l_exists_flag := 'Y';
14103 l_valid_flag := p_location_tbl(loc_row).valid_flag;
14104 EXIT;
14105 END IF;
14106 End Loop;
14107 --
14108 IF l_valid_flag <> 'Y' THEN
14109 FND_MESSAGE.SET_NAME('CSI','CSI_INVALID_INSTALL_LOC');
14110 FND_MSG_PUB.ADD;
14111 RAISE fnd_api.g_exc_error;
14112 END IF;
14113 END IF;
14114 --
14115 IF l_exists_flag <> 'Y' THEN
14116 p_ins_count_rec.location_count := p_ins_count_rec.location_count + 1;
14117 p_location_tbl(p_ins_count_rec.location_count).location_type_code :=
14118 p_instance_rec.install_location_type_code;
14119 p_location_tbl(p_ins_count_rec.location_count).location_id :=
14120 p_instance_rec.install_location_id;
14121 IF csi_item_instance_vld_pvt.Is_Valid_Location_ID
14122 (
14123 p_location_source_table => p_instance_rec.install_location_type_code
14124 ,p_location_id => p_instance_rec.install_location_id
14125 ) THEN
14126 p_location_tbl(p_ins_count_rec.location_count).valid_flag := 'Y';
14127 ELSE
14128 p_location_tbl(p_ins_count_rec.location_count).valid_flag := 'N';
14129 RAISE fnd_api.g_exc_error;
14130 END IF;
14131 END IF;
14132 ELSE
14133 FND_MESSAGE.SET_NAME('CSI','CSI_INVALID_INSTALL_LOC');
14134 FND_MSG_PUB.Add;
14135 RAISE FND_API.G_EXC_ERROR;
14136 END IF;
14137 END IF;
14138 -- End addition by sk on 02/06/02 for bug 2213922
14139 -- Added the following code for eam integration
14140 IF l_eam_item AND
14141 (p_instance_rec.active_end_date IS NOT NULL AND
14142 p_instance_rec.active_end_date <> fnd_api.g_miss_date)
14143 THEN
14144 IF NOT eam_common_utilities_pvt.check_deactivate
14145 (p_maintenance_object_id => p_instance_rec.instance_id
14146 ,p_maintenance_object_type => l_maintenance_object_type)
14147 THEN
14148 csi_gen_utility_pvt.put_line('Error from eam_common_utilities_pvt.check_deactivate API ');
14149 RAISE fnd_api.g_exc_error;
14150 END IF;
14151 END IF;
14152 -- End code addition for eam integration
14153 -- validate instance status id
14154 IF NVL(p_instance_rec.INSTANCE_STATUS_ID,fnd_api.g_miss_num) <> fnd_api.g_miss_num
14155 THEN
14156 --debug('Validate instance status id .');
14157 csi_item_instance_vld_pvt.is_valid_status(
14158 p_instance_status_id => p_instance_rec.INSTANCE_STATUS_ID,
14159 p_creation_complete_flag => l_creation_flag,
14160 l_return_value => l_valid);
14161 IF NOT(l_valid)
14162 THEN
14163 RAISE fnd_api.g_exc_error;
14164 END IF;
14165 END IF;
14166
14167 IF p_instance_rec.INSTANCE_STATUS_ID IS NOT NULL AND
14168 p_instance_rec.INSTANCE_STATUS_ID <> FND_API.G_MISS_NUM AND
14169 p_instance_rec.INSTANCE_STATUS_ID <> l_curr_instance_rec.INSTANCE_STATUS_ID
14170 THEN
14171 IF NOT csi_item_instance_vld_pvt.is_status_updateable
14172 (p_instance_status => p_instance_rec.INSTANCE_STATUS_ID
14173 ,p_current_status => l_curr_instance_rec.INSTANCE_STATUS_ID)
14174 THEN
14175 RAISE fnd_api.g_exc_error;
14176 END IF;
14177 END IF;
14178
14179 END IF;
14180
14181 IF (p_validation_mode <> 'V')
14182 THEN
14183
14184 FND_File.Put_Line(Fnd_File.LOG,'Validate Mode...!!! I should not be here');
14185 -- txn_status logic
14186 IF (nvl(p_instance_rec.location_id, fnd_api.g_miss_num) <> fnd_api.g_miss_num
14187 AND
14188 p_instance_rec.location_id <> l_curr_instance_rec.location_id)
14189 OR
14190 nvl(p_instance_rec.active_end_date, fnd_api.g_miss_date) <> fnd_api.g_miss_date
14191 THEN
14192 l_txn_status := 'PENDING';
14193 END IF;
14194
14195 --- Update the instance with the object version number incremented by 1.
14196 p_instance_rec.object_version_number := l_curr_instance_rec.object_version_number + 1;
14197 CSI_ITEM_INSTANCES_PKG.Update_Row
14198 ( p_INSTANCE_ID => p_instance_rec.INSTANCE_ID,
14199 p_INSTANCE_NUMBER => p_instance_rec.INSTANCE_NUMBER,
14200 p_EXTERNAL_REFERENCE => p_instance_rec.EXTERNAL_REFERENCE,
14201 p_INVENTORY_ITEM_ID => p_instance_rec.INVENTORY_ITEM_ID,
14202 p_INVENTORY_REVISION => p_instance_rec.INVENTORY_REVISION,
14203 p_INV_MASTER_ORGANIZATION_ID => p_instance_rec.INV_MASTER_ORGANIZATION_ID,
14204 p_SERIAL_NUMBER => p_instance_rec.SERIAL_NUMBER,
14205 p_MFG_SERIAL_NUMBER_FLAG => p_instance_rec.MFG_SERIAL_NUMBER_FLAG,
14206 p_LOT_NUMBER => p_instance_rec.LOT_NUMBER,
14207 p_QUANTITY => p_instance_rec.QUANTITY,
14208 p_UNIT_OF_MEASURE => p_instance_rec.UNIT_OF_MEASURE,
14209 p_ACCOUNTING_CLASS_CODE => p_instance_rec.ACCOUNTING_CLASS_CODE,
14210 p_INSTANCE_CONDITION_ID => p_instance_rec.INSTANCE_CONDITION_ID,
14211 p_INSTANCE_STATUS_ID => p_instance_rec.INSTANCE_STATUS_ID,
14212 p_CUSTOMER_VIEW_FLAG => p_instance_rec.CUSTOMER_VIEW_FLAG,
14213 p_MERCHANT_VIEW_FLAG => p_instance_rec.MERCHANT_VIEW_FLAG,
14214 p_SELLABLE_FLAG => p_instance_rec.SELLABLE_FLAG,
14215 p_SYSTEM_ID => p_instance_rec.SYSTEM_ID,
14216 p_INSTANCE_TYPE_CODE => p_instance_rec.INSTANCE_TYPE_CODE,
14217 p_ACTIVE_START_DATE => FND_API.G_MISS_DATE, --p_instance_rec.ACTIVE_START_DATE,
14218 p_ACTIVE_END_DATE => p_instance_rec.ACTIVE_END_DATE,
14219 p_LOCATION_TYPE_CODE => p_instance_rec.LOCATION_TYPE_CODE,
14220 p_LOCATION_ID => p_instance_rec.LOCATION_ID,
14221 p_INV_ORGANIZATION_ID => p_instance_rec.INV_ORGANIZATION_ID,
14222 p_INV_SUBINVENTORY_NAME => p_instance_rec.INV_SUBINVENTORY_NAME,
14223 p_INV_LOCATOR_ID => p_instance_rec.INV_LOCATOR_ID,
14224 p_PA_PROJECT_ID => p_instance_rec.PA_PROJECT_ID,
14225 p_PA_PROJECT_TASK_ID => p_instance_rec.PA_PROJECT_TASK_ID,
14226 p_IN_TRANSIT_ORDER_LINE_ID => p_instance_rec.IN_TRANSIT_ORDER_LINE_ID,
14227 p_WIP_JOB_ID => p_instance_rec.WIP_JOB_ID,
14228 p_PO_ORDER_LINE_ID => p_instance_rec.PO_ORDER_LINE_ID,
14229 p_LAST_OE_ORDER_LINE_ID => p_instance_rec.LAST_OE_ORDER_LINE_ID,
14230 p_LAST_OE_RMA_LINE_ID => p_instance_rec.LAST_OE_RMA_LINE_ID,
14231 p_LAST_PO_PO_LINE_ID => p_instance_rec.LAST_PO_PO_LINE_ID,
14232 p_LAST_OE_PO_NUMBER => p_instance_rec.LAST_OE_PO_NUMBER,
14233 p_LAST_WIP_JOB_ID => p_instance_rec.LAST_WIP_JOB_ID,
14234 p_LAST_PA_PROJECT_ID => p_instance_rec.LAST_PA_PROJECT_ID,
14235 p_LAST_PA_TASK_ID => p_instance_rec.LAST_PA_TASK_ID,
14236 p_LAST_OE_AGREEMENT_ID => p_instance_rec.LAST_OE_AGREEMENT_ID,
14237 p_INSTALL_DATE => p_instance_rec.INSTALL_DATE,
14238 p_MANUALLY_CREATED_FLAG => p_instance_rec.MANUALLY_CREATED_FLAG,
14239 p_RETURN_BY_DATE => p_instance_rec.RETURN_BY_DATE,
14240 p_ACTUAL_RETURN_DATE => p_instance_rec.ACTUAL_RETURN_DATE,
14241 p_CREATION_COMPLETE_FLAG => p_instance_rec.CREATION_COMPLETE_FLAG,
14242 p_COMPLETENESS_FLAG => p_instance_rec.COMPLETENESS_FLAG,
14243 p_CONTEXT => p_instance_rec.CONTEXT,
14244 p_ATTRIBUTE1 => p_instance_rec.ATTRIBUTE1,
14245 p_ATTRIBUTE2 => p_instance_rec.ATTRIBUTE2,
14246 p_ATTRIBUTE3 => p_instance_rec.ATTRIBUTE3,
14247 p_ATTRIBUTE4 => p_instance_rec.ATTRIBUTE4,
14248 p_ATTRIBUTE5 => p_instance_rec.ATTRIBUTE5,
14249 p_ATTRIBUTE6 => p_instance_rec.ATTRIBUTE6,
14250 p_ATTRIBUTE7 => p_instance_rec.ATTRIBUTE7,
14251 p_ATTRIBUTE8 => p_instance_rec.ATTRIBUTE8,
14252 p_ATTRIBUTE9 => p_instance_rec.ATTRIBUTE9,
14253 p_ATTRIBUTE10 => p_instance_rec.ATTRIBUTE10,
14254 p_ATTRIBUTE11 => p_instance_rec.ATTRIBUTE11,
14255 p_ATTRIBUTE12 => p_instance_rec.ATTRIBUTE12,
14256 p_ATTRIBUTE13 => p_instance_rec.ATTRIBUTE13,
14257 p_ATTRIBUTE14 => p_instance_rec.ATTRIBUTE14,
14258 p_ATTRIBUTE15 => p_instance_rec.ATTRIBUTE15,
14259 p_CREATED_BY => fnd_api.g_miss_num,
14260 p_CREATION_DATE => fnd_api.g_miss_date,
14261 p_LAST_UPDATED_BY => FND_GLOBAL.USER_ID,
14262 p_LAST_UPDATE_DATE => SYSDATE,
14263 p_LAST_UPDATE_LOGIN => FND_GLOBAL.CONC_LOGIN_ID,
14264 p_OBJECT_VERSION_NUMBER => p_instance_rec.OBJECT_VERSION_NUMBER,
14265 p_LAST_TXN_LINE_DETAIL_ID => p_instance_rec.LAST_TXN_LINE_DETAIL_ID,
14266 p_INSTALL_LOCATION_TYPE_CODE => p_instance_rec.INSTALL_LOCATION_TYPE_CODE,
14267 p_INSTALL_LOCATION_ID => p_instance_rec.INSTALL_LOCATION_ID,
14268 p_INSTANCE_USAGE_CODE => p_instance_rec.INSTANCE_USAGE_CODE,
14269 p_last_vld_organization_id => l_last_vld_organization_id,
14270 p_CONFIG_INST_HDR_ID => p_instance_rec.CONFIG_INST_HDR_ID,
14271 p_CONFIG_INST_REV_NUM => p_instance_rec.CONFIG_INST_REV_NUM,
14272 p_CONFIG_INST_ITEM_ID => p_instance_rec.CONFIG_INST_ITEM_ID,
14273 p_CONFIG_VALID_STATUS => p_instance_rec.CONFIG_VALID_STATUS,
14274 p_INSTANCE_DESCRIPTION => p_instance_rec.INSTANCE_DESCRIPTION,
14275 p_REQUEST_ID => p_instance_rec.REQUEST_ID,
14276 p_PROGRAM_APPLICATION_ID => p_instance_rec.PROGRAM_APPLICATION_ID,
14277 p_PROGRAM_ID => p_instance_rec.PROGRAM_ID,
14278 p_PROGRAM_UPDATE_DATE => p_instance_rec.PROGRAM_UPDATE_DATE,
14279 --start of parameters addition for eam integration--
14280 p_NETWORK_ASSET_FLAG => p_instance_rec.NETWORK_ASSET_FLAG,
14281 p_MAINTAINABLE_FLAG => p_instance_rec.MAINTAINABLE_FLAG,
14282 p_PN_LOCATION_ID => p_instance_rec.PN_LOCATION_ID,
14283 p_ASSET_CRITICALITY_CODE => p_instance_rec.ASSET_CRITICALITY_CODE,
14284 p_CATEGORY_ID => p_instance_rec.CATEGORY_ID,
14285 p_EQUIPMENT_GEN_OBJECT_ID => p_instance_rec.EQUIPMENT_GEN_OBJECT_ID,
14286 p_INSTANTIATION_FLAG => p_instance_rec.INSTANTIATION_FLAG,
14287 p_LINEAR_LOCATION_ID => p_instance_rec.LINEAR_LOCATION_ID,
14288 p_OPERATIONAL_LOG_FLAG => p_instance_rec.OPERATIONAL_LOG_FLAG,
14289 p_CHECKIN_STATUS => p_instance_rec.CHECKIN_STATUS,
14290 p_SUPPLIER_WARRANTY_EXP_DATE => p_instance_rec.SUPPLIER_WARRANTY_EXP_DATE,
14291 p_ATTRIBUTE16 => p_instance_rec.ATTRIBUTE16,
14292 p_ATTRIBUTE17 => p_instance_rec.ATTRIBUTE17,
14293 p_ATTRIBUTE18 => p_instance_rec.ATTRIBUTE18,
14294 p_ATTRIBUTE19 => p_instance_rec.ATTRIBUTE19,
14295 p_ATTRIBUTE20 => p_instance_rec.ATTRIBUTE20,
14296 p_ATTRIBUTE21 => p_instance_rec.ATTRIBUTE21,
14297 p_ATTRIBUTE22 => p_instance_rec.ATTRIBUTE22,
14298 p_ATTRIBUTE23 => p_instance_rec.ATTRIBUTE23,
14299 p_ATTRIBUTE24 => p_instance_rec.ATTRIBUTE24,
14300 p_ATTRIBUTE25 => p_instance_rec.ATTRIBUTE25,
14301 p_ATTRIBUTE26 => p_instance_rec.ATTRIBUTE26,
14302 p_ATTRIBUTE27 => p_instance_rec.ATTRIBUTE27,
14303 p_ATTRIBUTE28 => p_instance_rec.ATTRIBUTE28,
14304 p_ATTRIBUTE29 => p_instance_rec.ATTRIBUTE29,
14305 p_ATTRIBUTE30 => p_instance_rec.ATTRIBUTE30,
14306 --end of parameters addition for eam integration--
14307 -- Addition of columns for FA Integration
14308 p_PURCHASE_UNIT_PRICE => p_instance_rec.PURCHASE_UNIT_PRICE,
14309 p_PURCHASE_CURRENCY_CODE => p_instance_rec.PURCHASE_CURRENCY_CODE,
14310 p_PAYABLES_UNIT_PRICE => p_instance_rec.PAYABLES_UNIT_PRICE,
14311 p_PAYABLES_CURRENCY_CODE => p_instance_rec.PAYABLES_CURRENCY_CODE,
14312 p_SALES_UNIT_PRICE => p_instance_rec.SALES_UNIT_PRICE,
14313 p_SALES_CURRENCY_CODE => p_instance_rec.SALES_CURRENCY_CODE,
14314 p_OPERATIONAL_STATUS_CODE => p_instance_rec.OPERATIONAL_STATUS_CODE,
14315 -- End addition of columns for FA Integration
14316 p_SOURCE_CODE => p_instance_rec.SOURCE_CODE -- Added Code for Siebel Genesis Project
14317 );
14318
14319 IF l_eam_item
14320 THEN
14321 IF p_instance_rec.department_id IS NOT NULL OR
14322 p_instance_rec.wip_accounting_class IS NOT NULL OR
14323 p_instance_rec.area_id IS NOT NULL
14324 THEN
14325 eam_maint_attributes_pub.update_maint_attributes
14326 ( p_api_version => 1.0
14327 ,p_init_msg_list => FND_API.G_FALSE
14328 ,p_commit => FND_API.G_FALSE
14329 ,p_validation_level => fnd_api.g_valid_level_full
14330 ,p_instance_id => p_instance_rec.instance_id
14331 ,p_owning_department_id => p_instance_rec.department_id
14332 ,p_accounting_class_code => p_instance_rec.wip_accounting_class
14333 ,p_area_id => p_instance_rec.area_id
14334 ,x_return_status => x_return_status
14335 ,x_msg_count => x_msg_count
14336 ,x_msg_data => x_msg_data);
14337
14338 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS)
14339 THEN
14340 csi_gen_utility_pvt.put_line('Error from eam_maint_attributes_pub.update_maint_attributes..');
14341 RAISE FND_API.G_EXC_ERROR;
14342 END IF;
14343 END IF;
14344 END IF;
14345 -- calling the Counters API to associate counters to an instance
14346 -- Added to restrict the counter instantiation for an item in 'INVENTORY', by rtalluri for the enh. 2308703.
14347 -- Start of Fix for Bug: 2411622 by rtalluri - 06/25/02
14348 csi_gen_utility_pvt.put_line('p_instance_rec.quantity is '||to_char(p_instance_rec.quantity));
14349 csi_gen_utility_pvt.put_line('l_curr_instance_rec.quantity is '||to_char(l_curr_instance_rec.quantity));
14350 csi_gen_utility_pvt.put_line('p_instance_rec.location_type_code is '||p_instance_rec.location_type_code);
14351 csi_gen_utility_pvt.put_line('l_get_instance_rec.location_type_code is '||l_get_instance_rec.location_type_code);
14352 csi_gen_utility_pvt.put_line('p_instance_rec.accounting_class_code is '||p_instance_rec.accounting_class_code);
14353 csi_gen_utility_pvt.put_line('l_curr_instance_rec.accounting_class_code is '||l_curr_instance_rec.accounting_class_code);
14354 csi_gen_utility_pvt.put_line('l_serial_control is '||l_serial_control);
14355 --
14356 -- srramakr Bug # 2484611. Eliminated counter instantiation for serialized items since it is already
14357 -- instantiated when the instance is in INV. Also used Accounting_class_code in the check for the case
14358 -- where shipping finds exact match in staging. (It just updates in this case).
14359 --l_curr_instance_rec.network_asset_flag
14360 IF ( (p_instance_rec.quantity <> FND_API.G_MISS_NUM) AND
14361 (p_instance_rec.quantity IS NOT NULL) AND
14362 (l_serial_control not in (2,5)) AND
14363 (NVL(l_curr_instance_rec.network_asset_flag,'N')<>'Y' AND
14364 NVL(p_instance_rec.network_asset_flag,'N')<>'Y')
14365 )
14366 THEN -- Since for Serial control the counter gets instantiated in INV
14367 IF p_instance_rec.quantity = 1 THEN
14368 IF ( (p_instance_rec.quantity <> l_curr_instance_rec.quantity) OR
14369 (p_instance_rec.accounting_class_code = 'CUST_PROD' AND
14370 p_instance_rec.accounting_class_code <> l_curr_instance_rec.accounting_class_code) ) THEN
14371 IF NOT((l_serial_control IN (1,6)) AND
14372 (l_get_instance_rec.location_type_code = 'INVENTORY')) THEN
14373 -- Since the replacement API CSI_COUNTER_TEMPLATE_PUB
14374 -- for CS_Counters_PUB.Ctr_Grp_Template_Exists
14375 -- does not provide a function Ctr_Grp_Template_Exists,
14376 -- Hence writing the following code...
14377 --l_counter_group_id := NULL;
14378 BEGIN
14379 SELECT COUNT(*)
14380 INTO l_counter_group_id
14381 FROM csi_ctr_item_associations
14382 WHERE inventory_item_id = l_get_instance_rec.inventory_item_id
14383 AND ROWNUM=1;
14384 EXCEPTION
14385 WHEN NO_DATA_FOUND THEN
14386 NULL;
14387 END;
14388 -- IF CS_Counters_PUB.Ctr_Grp_Template_Exists(l_get_instance_rec.inventory_item_id) THEN
14389 IF l_counter_group_id <>0
14390 THEN
14391 l_exists := 'N';
14392 BEGIN
14393
14394 SELECT 'Y'
14395 INTO l_exists
14396 FROM csi_counter_associations
14397 WHERE source_object_id = p_instance_rec.instance_id
14398 AND source_object_code = 'CP';
14399
14400 EXCEPTION
14401 WHEN NO_DATA_FOUND THEN
14402 l_exists := 'N';
14403 WHEN OTHERS THEN
14404 l_exists := 'Y';
14405 END;
14406 IF l_exists = 'N' THEN
14407
14408 FND_File.Put_Line(Fnd_File.LOG,'Calling counter instantiate');
14409
14410 csi_gen_utility_pvt.put_line('Calling Autoinstantiate counters');
14411
14412 csi_counter_template_pub.autoinstantiate_counters
14413 ( p_api_version => 1.0
14414 ,p_init_msg_list => FND_API.G_FALSE
14415 ,p_commit => FND_API.G_FALSE
14416 ,x_return_status => x_return_status
14417 ,x_msg_count => x_msg_count
14418 ,x_msg_data => x_msg_data
14419 ,p_source_object_id_template => l_get_instance_rec.inventory_item_id
14420 ,p_source_object_id_instance => p_instance_rec.instance_id
14421 ,x_ctr_id_template => l_ctr_id_template
14422 ,x_ctr_id_instance => l_ctr_id_instance
14423 ,x_ctr_grp_id_template => l_ctr_grp_id_template
14424 ,x_ctr_grp_id_instance => l_ctr_grp_id_instance
14425 ,p_organization_id => l_last_vld_organization_id -- srramakr. should pass the organization_id
14426 );
14427
14428 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS)
14429 THEN
14430 FND_MESSAGE.SET_NAME('CSI','CSI_API_NO_COUNTER_ASSOCIATION');
14431 FND_MESSAGE.SET_TOKEN('COUNTER','CSI_COUNTER_TEMPLATE_PUB.AUTOINSTANTIATE_COUNTERS');
14432 FND_MSG_PUB.Add;
14433 RAISE FND_API.G_EXC_ERROR;
14434 END IF;
14435 END IF;
14436
14437 -- srramakr Bug # 2255391. In CTO, since the configured item is created as a part of Sales Order
14438 -- processing, there is no way a counter gets attached to this new item. In order to attach the counter,
14439 -- we look at the base model and use its counter group for the configured item. After attaching it,
14440 -- we call the Autoinstantiate API.
14441 ELSE -- Check for the Base Model
14442 l_base_item_id := null;
14443 Begin
14444 select base_item_id
14445 into l_base_item_id
14446 from MTL_SYSTEM_ITEMS_B
14447 where inventory_item_id = l_get_instance_rec.inventory_item_id
14448 and organization_id = l_last_vld_organization_id;
14449 Exception
14450 when no_data_found then
14451 null;
14452 when others then
14453 null;
14454 End;
14455 --
14456 IF l_base_item_id is not null THEN
14457 -- call the Counter Grp association API for the Configured Item
14458 For ctr_rec in CTR_GROUP(l_base_item_id)
14459 Loop
14460 Begin
14461 l_ctr_item_associations_rec.group_id := ctr_rec.group_id;
14462 l_ctr_item_associations_rec.inventory_item_id := l_get_instance_rec.inventory_item_id;
14463
14464 csi_counter_template_pub.create_item_association
14465 (p_api_version => 1.0
14466 ,p_commit => fnd_api.g_false
14467 ,p_init_msg_list => fnd_api.g_false
14468 ,p_validation_level => p_validation_level
14469 ,p_ctr_item_associations_rec => l_ctr_item_associations_rec
14470 ,x_return_status => x_return_status
14471 ,x_msg_count => x_msg_count
14472 ,x_msg_data => x_msg_data
14473 );
14474
14475 End;
14476 End Loop;
14477 -- Call Autoinstantiate Counters
14478 -- IF CS_Counters_PUB.Ctr_Grp_Template_Exists(l_get_instance_rec.inventory_item_id) THEN
14479 IF l_counter_group_id <> 0
14480 THEN
14481
14482 csi_counter_template_pub.autoinstantiate_counters
14483 ( p_api_version => 1.0
14484 ,p_init_msg_list => FND_API.G_FALSE
14485 ,p_commit => FND_API.G_FALSE
14486 ,x_return_status => x_return_status
14487 ,x_msg_count => x_msg_count
14488 ,x_msg_data => x_msg_data
14489 ,p_source_object_id_template => l_get_instance_rec.inventory_item_id
14490 ,p_source_object_id_instance => p_instance_rec.instance_id
14491 ,x_ctr_id_template => l_ctr_id_template
14492 ,x_ctr_id_instance => l_ctr_id_instance
14493 ,x_ctr_grp_id_template => l_ctr_grp_id_template
14494 ,x_ctr_grp_id_instance => l_ctr_grp_id_instance
14495 ,p_organization_id => l_last_vld_organization_id -- srramakr. should pass the organization_id
14496 );
14497 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
14498 FND_MESSAGE.SET_NAME('CSI','CSI_API_NO_COUNTER_ASSOCIATION');
14499 FND_MESSAGE.SET_TOKEN('COUNTER','CSI_COUNTER_TEMPLATE_PUB.AUTOINSTANTIATE_COUNTERS');
14500 FND_MSG_PUB.Add;
14501 RAISE FND_API.G_EXC_ERROR;
14502 END IF;
14503 END IF; -- COunter template existance check for the new item
14504 END IF; -- Base Item ID check
14505 END IF; -- Ctr Group check
14506 END IF; -- serial chk.
14507 END IF; --check for db qty and passed qty
14508 ELSE -- for qty > 1
14509 NULL;
14510 -- Delete counters is commented for Bug # 2978942.
14511 END IF; -- qty check
14512 END IF; -- g_miss check
14513 -- End of Fix for Bug: 2411622 by rtalluri - 06/25/02
14514
14515 -- Moving counter update code from above
14516 l_exists := 'N';
14517 BEGIN
14518 SELECT 'Y'
14519 INTO l_exists
14520 FROM csi_counter_associations
14521 WHERE source_object_id = p_instance_rec.instance_id
14522 AND source_object_code = 'CP';
14523 EXCEPTION
14524 WHEN NO_DATA_FOUND THEN
14525 l_exists := 'N';
14526 WHEN OTHERS THEN
14527 l_exists := 'Y';
14528 END;
14529 csi_gen_utility_pvt.put_line('Value of l_exists '||l_exists);
14530
14531 IF l_exists='Y' AND
14532 l_eam_item AND
14533 (NVL(l_curr_instance_rec.network_asset_flag,'N')<>'Y' AND
14534 NVL(p_instance_rec.network_asset_flag,'N')<>'Y')
14535 THEN
14536 IF l_cur_instance_rec.last_vld_organization_id <> l_get_instance_rec.vld_organization_id
14537 THEN
14538 SELECT maint_organization_id
14539 INTO l_curr_maint_org_id
14540 FROM mtl_parameters
14541 WHERE organization_id = l_cur_instance_rec.last_vld_organization_id;
14542
14543 SELECT maint_organization_id
14544 INTO l_latest_maint_org_id
14545 FROM mtl_parameters
14546 WHERE organization_id = l_get_instance_rec.vld_organization_id;
14547 l_ctr:=1;
14548 csi_gen_utility_pvt.put_line('There is a change in vld organization...');
14549 csi_gen_utility_pvt.put_line('Value of current maint org is :'||l_curr_maint_org_id);
14550 csi_gen_utility_pvt.put_line('Value of new maint org is :'||l_latest_maint_org_id);
14551 IF NVL(l_curr_maint_org_id,fnd_api.g_miss_num) <>
14552 NVL(l_latest_maint_org_id,fnd_api.g_miss_num)
14553 THEN
14554 FOR l_upd_ctr_assn_csr IN upd_ctr_assn_csr(p_instance_rec.instance_id)
14555 LOOP
14556 l_ctr_associations_tbl(l_ctr).instance_association_id :=
14557 l_upd_ctr_assn_csr.instance_association_id;
14558
14559 l_ctr_associations_tbl(l_ctr).source_object_id :=
14560 l_upd_ctr_assn_csr.source_object_id;
14561
14562 l_ctr_associations_tbl(l_ctr).counter_id :=
14563 l_upd_ctr_assn_csr.counter_id;
14564
14565 l_ctr_associations_tbl(l_ctr).object_version_number :=
14566 l_upd_ctr_assn_csr.object_version_number;
14567
14568 l_ctr_associations_tbl(l_ctr).maint_organization_id :=
14569 l_latest_maint_org_id;
14570
14571 --Added for bug 6963602, during migration to R12, the start_date_active for entries in
14572 --csi_counter_associations table are not properly populated, in that case, use the
14573 --active_start_date for the associated item instance
14574 IF l_upd_ctr_assn_csr.start_date_active IS NULL THEN
14575 BEGIN
14576 SELECT active_start_date
14577 INTO l_ctr_associations_tbl(l_ctr).start_date_active
14578 FROM csi_item_instances
14579 WHERE instance_id=p_instance_rec.instance_id;
14580 EXCEPTION
14581 WHEN NO_DATA_FOUND THEN
14582 l_ctr_associations_tbl(l_ctr).start_date_active := p_instance_rec.active_start_date;
14583 WHEN OTHERS THEN
14584 l_ctr_associations_tbl(l_ctr).start_date_active := NULL;
14585 END;
14586 ELSE
14587 l_ctr_associations_tbl(l_ctr).start_date_active := l_upd_ctr_assn_csr.start_date_active;
14588 END IF;
14589
14590 l_ctr:=l_ctr+1;
14591 END LOOP;
14592
14593 IF l_ctr_associations_tbl.COUNT >0
14594 THEN
14595 csi_gen_utility_pvt.put_line('Calling update counter associations.');
14596 CSI_COUNTER_PUB.update_ctr_associations
14597 (p_api_version => 1.0
14598 ,p_commit => FND_API.G_FALSE
14599 ,p_init_msg_list => FND_API.G_FALSE
14600 ,p_validation_level => p_validation_level
14601 ,p_counter_associations_tbl => l_ctr_associations_tbl
14602 ,x_return_status => x_return_status
14603 ,x_msg_count => x_msg_count
14604 ,x_msg_data => x_msg_data
14605 );
14606 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS)
14607 THEN
14608 csi_gen_utility_pvt.put_line('Error from csi_counter_pub.update_ctr_associations..');
14609 RAISE FND_API.G_EXC_ERROR;
14610 END IF;
14611 END IF;
14612 END IF;
14613 END IF;
14614 END IF;
14615 -- Ends here
14616
14617
14618 -- calling the transaction api
14619 CSI_TRANSACTIONS_PVT.Create_transaction
14620 (
14621 p_api_version => p_api_version
14622 ,p_commit => p_commit
14623 ,p_init_msg_list => p_init_msg_list
14624 ,p_validation_level => p_validation_level
14625 ,p_Success_IF_Exists_Flag => 'Y'
14626 ,p_transaction_rec => p_txn_rec
14627 ,x_return_status => x_return_status
14628 ,x_msg_count => x_msg_count
14629 ,x_msg_data => x_msg_data
14630 );
14631
14632 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
14633 FND_MESSAGE.SET_NAME('CSI','CSI_FAILED_TO_VALIDATE_TXN');
14634 FND_MESSAGE.SET_TOKEN('TRANSACTION_ID',p_txn_rec.transaction_id );
14635 FND_MSG_PUB.Add;
14636 RAISE FND_API.G_EXC_ERROR;
14637 END IF;
14638
14639 -- Get the full_dump_frequency from csi_install_parameter
14640 --
14641 IF csi_datastructures_pub.g_install_param_rec.fetch_flag IS NULL THEN
14642 csi_gen_utility_pvt.populate_install_param_rec;
14643 END IF;
14644 --
14645 l_full_dump_frequency := csi_datastructures_pub.g_install_param_rec.history_full_dump_frequency;
14646 --
14647 IF l_full_dump_frequency IS NULL THEN
14648 FND_MESSAGE.SET_NAME('CSI','CSI_API_GET_FULL_DUMP_FAILED');
14649 FND_MSG_PUB.ADD;
14650 RAISE FND_API.G_EXC_ERROR;
14651 END IF;
14652 --
14653 -- Get a unique history item instance id from the sequence
14654 -- l_csi_item_instance_h_id := csi_item_instance_vld_pvt.get_csi_item_instance_h_id;
14655
14656
14657 select mod(p_instance_rec.object_version_number,l_full_dump_frequency)
14658 into l_mod_value
14659 from dual;
14660
14661 -- Start of modification for Bug#2547034 on 09/20/02 - rtalluri
14662 BEGIN
14663 SELECT instance_history_id
14664 INTO l_ins_hist_id
14665 FROM csi_item_instances_h h
14666 WHERE h.transaction_id = p_txn_rec.transaction_id
14667 AND h.instance_id = p_instance_rec.instance_id;
14668
14669 OPEN ins_hist_csr(l_ins_hist_id);
14670 FETCH ins_hist_csr INTO l_ins_hist_csr ;
14671 CLOSE ins_hist_csr;
14672
14673 IF l_ins_hist_csr.full_dump_flag = 'Y'
14674 THEN
14675 CSI_ITEM_INSTANCES_H_PKG.Update_Row
14676 ( p_INSTANCE_HISTORY_ID => l_ins_hist_id
14677 ,p_INSTANCE_ID => fnd_api.g_miss_num
14678 ,p_TRANSACTION_ID => fnd_api.g_miss_num
14679 ,p_OLD_INSTANCE_NUMBER => fnd_api.g_miss_char
14680 ,p_NEW_INSTANCE_NUMBER => p_instance_rec.INSTANCE_NUMBER
14681 ,p_OLD_EXTERNAL_REFERENCE => fnd_api.g_miss_char
14682 ,p_NEW_EXTERNAL_REFERENCE => p_instance_rec.EXTERNAL_REFERENCE
14683 ,p_OLD_INVENTORY_ITEM_ID => fnd_api.g_miss_num
14684 ,p_NEW_INVENTORY_ITEM_ID => p_instance_rec.INVENTORY_ITEM_ID
14685 ,p_OLD_INVENTORY_REVISION => fnd_api.g_miss_char
14686 ,p_NEW_INVENTORY_REVISION => p_instance_rec.INVENTORY_REVISION
14687 ,p_OLD_INV_MASTER_ORGZN_ID => fnd_api.g_miss_num
14688 ,p_NEW_INV_MASTER_ORGZN_ID => p_instance_rec.INV_MASTER_ORGANIZATION_ID
14689 ,p_OLD_SERIAL_NUMBER => fnd_api.g_miss_char
14690 ,p_NEW_SERIAL_NUMBER => p_instance_rec.SERIAL_NUMBER
14691 ,p_OLD_MFG_SERIAL_NUMBER_FLAG => fnd_api.g_miss_char
14692 ,p_NEW_MFG_SERIAL_NUMBER_FLAG => p_instance_rec.MFG_SERIAL_NUMBER_FLAG
14693 ,p_OLD_LOT_NUMBER => fnd_api.g_miss_char
14694 ,p_NEW_LOT_NUMBER => p_instance_rec.LOT_NUMBER
14695 ,p_OLD_QUANTITY => fnd_api.g_miss_num
14696 ,p_NEW_QUANTITY => p_instance_rec.QUANTITY
14697 ,p_OLD_UNIT_OF_MEASURE => fnd_api.g_miss_char
14698 ,p_NEW_UNIT_OF_MEASURE => p_instance_rec.UNIT_OF_MEASURE
14699 ,p_OLD_ACCOUNTING_CLASS_CODE => fnd_api.g_miss_char
14700 ,p_NEW_ACCOUNTING_CLASS_CODE => p_instance_rec.ACCOUNTING_CLASS_CODE
14701 ,p_OLD_INSTANCE_CONDITION_ID => fnd_api.g_miss_num
14702 ,p_NEW_INSTANCE_CONDITION_ID => p_instance_rec.INSTANCE_CONDITION_ID
14703 ,p_OLD_INSTANCE_STATUS_ID => fnd_api.g_miss_num
14704 ,p_NEW_INSTANCE_STATUS_ID => p_instance_rec.INSTANCE_STATUS_ID
14705 ,p_OLD_CUSTOMER_VIEW_FLAG => fnd_api.g_miss_char
14706 ,p_NEW_CUSTOMER_VIEW_FLAG => p_instance_rec.CUSTOMER_VIEW_FLAG
14707 ,p_OLD_MERCHANT_VIEW_FLAG => fnd_api.g_miss_char
14708 ,p_NEW_MERCHANT_VIEW_FLAG => p_instance_rec.MERCHANT_VIEW_FLAG
14709 ,p_OLD_SELLABLE_FLAG => fnd_api.g_miss_char
14710 ,p_NEW_SELLABLE_FLAG => p_instance_rec.SELLABLE_FLAG
14711 ,p_OLD_SYSTEM_ID => fnd_api.g_miss_num
14712 ,p_NEW_SYSTEM_ID => p_instance_rec.SYSTEM_ID
14713 ,p_OLD_INSTANCE_TYPE_CODE => fnd_api.g_miss_char
14714 ,p_NEW_INSTANCE_TYPE_CODE => p_instance_rec.INSTANCE_TYPE_CODE
14715 ,p_OLD_ACTIVE_START_DATE => fnd_api.g_miss_date
14716 ,p_NEW_ACTIVE_START_DATE => p_instance_rec.ACTIVE_START_DATE
14717 ,p_OLD_ACTIVE_END_DATE => fnd_api.g_miss_date
14718 ,p_NEW_ACTIVE_END_DATE => p_instance_rec.ACTIVE_END_DATE
14719 ,p_OLD_LOCATION_TYPE_CODE => fnd_api.g_miss_char
14720 ,p_NEW_LOCATION_TYPE_CODE => p_instance_rec.LOCATION_TYPE_CODE
14721 ,p_OLD_LOCATION_ID => fnd_api.g_miss_num
14722 ,p_NEW_LOCATION_ID => p_instance_rec.LOCATION_ID
14723 ,p_OLD_INV_ORGANIZATION_ID => fnd_api.g_miss_num
14724 ,p_NEW_INV_ORGANIZATION_ID => p_instance_rec.INV_ORGANIZATION_ID
14725 ,p_OLD_INV_SUBINVENTORY_NAME => fnd_api.g_miss_char
14726 ,p_NEW_INV_SUBINVENTORY_NAME => p_instance_rec.INV_SUBINVENTORY_NAME
14727 ,p_OLD_INV_LOCATOR_ID => fnd_api.g_miss_num
14728 ,p_NEW_INV_LOCATOR_ID => p_instance_rec.INV_LOCATOR_ID
14729 ,p_OLD_PA_PROJECT_ID => fnd_api.g_miss_num
14730 ,p_NEW_PA_PROJECT_ID => p_instance_rec.PA_PROJECT_ID
14731 ,p_OLD_PA_PROJECT_TASK_ID => fnd_api.g_miss_num
14732 ,p_NEW_PA_PROJECT_TASK_ID => p_instance_rec.PA_PROJECT_TASK_ID
14733 ,p_OLD_IN_TRANSIT_ORDER_LINE_ID => fnd_api.g_miss_num
14734 ,p_NEW_IN_TRANSIT_ORDER_LINE_ID => p_instance_rec.IN_TRANSIT_ORDER_LINE_ID
14735 ,p_OLD_WIP_JOB_ID => fnd_api.g_miss_num
14736 ,p_NEW_WIP_JOB_ID => p_instance_rec.WIP_JOB_ID
14737 ,p_OLD_PO_ORDER_LINE_ID => fnd_api.g_miss_num
14738 ,p_NEW_PO_ORDER_LINE_ID => p_instance_rec.PO_ORDER_LINE_ID
14739 ,p_OLD_COMPLETENESS_FLAG => fnd_api.g_miss_char
14740 ,p_NEW_COMPLETENESS_FLAG => p_instance_rec.COMPLETENESS_FLAG
14741 ,p_FULL_DUMP_FLAG => fnd_api.g_miss_char
14742 ,p_NEW_CONTEXT => p_instance_rec.CONTEXT
14743 ,P_OLD_CONTEXT => fnd_api.g_miss_char
14744 ,p_NEW_ATTRIBUTE1 => p_instance_rec.ATTRIBUTE1
14745 ,p_OLD_ATTRIBUTE1 => fnd_api.g_miss_char
14746 ,p_NEW_ATTRIBUTE2 => p_instance_rec.ATTRIBUTE2
14747 ,p_OLD_ATTRIBUTE2 => fnd_api.g_miss_char
14748 ,p_NEW_ATTRIBUTE3 => p_instance_rec.ATTRIBUTE3
14749 ,p_OLD_ATTRIBUTE3 => fnd_api.g_miss_char
14750 ,p_NEW_ATTRIBUTE4 => p_instance_rec.ATTRIBUTE4
14751 ,p_OLD_ATTRIBUTE4 => fnd_api.g_miss_char
14752 ,p_NEW_ATTRIBUTE5 => p_instance_rec.ATTRIBUTE5
14753 ,p_OLD_ATTRIBUTE5 => fnd_api.g_miss_char
14754 ,p_NEW_ATTRIBUTE6 => p_instance_rec.ATTRIBUTE6
14755 ,p_OLD_ATTRIBUTE6 => fnd_api.g_miss_char
14756 ,p_NEW_ATTRIBUTE7 => p_instance_rec.ATTRIBUTE7
14757 ,p_OLD_ATTRIBUTE7 => fnd_api.g_miss_char
14758 ,p_NEW_ATTRIBUTE8 => p_instance_rec.ATTRIBUTE8
14759 ,p_OLD_ATTRIBUTE8 => fnd_api.g_miss_char
14760 ,p_NEW_ATTRIBUTE9 => p_instance_rec.ATTRIBUTE9
14761 ,p_OLD_ATTRIBUTE9 => fnd_api.g_miss_char
14762 ,p_NEW_ATTRIBUTE10 => p_instance_rec.ATTRIBUTE10
14763 ,p_OLD_ATTRIBUTE10 => fnd_api.g_miss_char
14764 ,p_NEW_ATTRIBUTE11 => p_instance_rec.ATTRIBUTE11
14765 ,p_OLD_ATTRIBUTE11 => fnd_api.g_miss_char
14766 ,p_NEW_ATTRIBUTE12 => p_instance_rec.ATTRIBUTE12
14767 ,p_OLD_ATTRIBUTE12 => fnd_api.g_miss_char
14768 ,p_NEW_ATTRIBUTE13 => p_instance_rec.ATTRIBUTE13
14769 ,p_OLD_ATTRIBUTE13 => fnd_api.g_miss_char
14770 ,p_NEW_ATTRIBUTE14 => p_instance_rec.ATTRIBUTE14
14771 ,p_OLD_ATTRIBUTE14 => fnd_api.g_miss_char
14772 ,p_NEW_ATTRIBUTE15 => p_instance_rec.ATTRIBUTE15
14773 ,p_OLD_ATTRIBUTE15 => fnd_api.g_miss_char
14774 ,p_CREATED_BY => fnd_api.g_miss_num
14775 ,p_CREATION_DATE => fnd_api.g_miss_date
14776 ,p_LAST_UPDATED_BY => FND_GLOBAL.USER_ID
14777 ,p_LAST_UPDATE_DATE => SYSDATE
14778 ,p_LAST_UPDATE_LOGIN => FND_GLOBAL.CONC_LOGIN_ID
14779 ,p_OBJECT_VERSION_NUMBER => fnd_api.g_miss_num
14780 ,p_OLD_INST_LOC_TYPE_CODE => fnd_api.g_miss_char
14781 ,p_NEW_INST_LOC_TYPE_CODE => p_instance_rec.INSTALL_LOCATION_TYPE_CODE
14782 ,p_OLD_INST_LOC_ID => fnd_api.g_miss_num
14783 ,p_NEW_INST_LOC_ID => p_instance_rec.INSTALL_LOCATION_ID
14784 ,p_OLD_INST_USAGE_CODE => fnd_api.g_miss_char
14785 ,p_NEW_INST_USAGE_CODE => p_instance_rec.INSTANCE_USAGE_CODE
14786 ,p_OLD_LAST_VLD_ORGANIZATION_ID => fnd_api.g_miss_num
14787 ,p_NEW_LAST_VLD_ORGANIZATION_ID => l_last_vld_organization_id
14788 ,p_OLD_CONFIG_INST_REV_NUM => fnd_api.g_miss_num
14789 ,p_NEW_CONFIG_INST_REV_NUM => p_instance_rec.CONFIG_INST_REV_NUM
14790 ,p_OLD_CONFIG_VALID_STATUS => fnd_api.g_miss_char
14791 ,p_NEW_CONFIG_VALID_STATUS => p_instance_rec.CONFIG_VALID_STATUS
14792 ,p_OLD_INSTANCE_DESCRIPTION => fnd_api.g_miss_char
14793 ,p_NEW_INSTANCE_DESCRIPTION => p_instance_rec.INSTANCE_DESCRIPTION
14794 ,p_OLD_INSTALL_DATE => fnd_api.g_miss_date
14795 ,p_NEW_INSTALL_DATE => p_instance_rec.INSTALL_DATE
14796 ,p_OLD_RETURN_BY_DATE => fnd_api.g_miss_date
14797 ,p_NEW_RETURN_BY_DATE => p_instance_rec.RETURN_BY_DATE
14798 ,p_OLD_ACTUAL_RETURN_DATE => fnd_api.g_miss_date
14799 ,p_NEW_ACTUAL_RETURN_DATE => p_instance_rec.ACTUAL_RETURN_DATE
14800 ,p_OLD_LAST_OE_AGREEMENT_ID => fnd_api.g_miss_num
14801 ,p_NEW_LAST_OE_AGREEMENT_ID => p_instance_rec.LAST_OE_AGREEMENT_ID
14802 ,p_OLD_LAST_OE_ORDER_LINE_ID => fnd_api.g_miss_num
14803 ,p_NEW_LAST_OE_ORDER_LINE_ID => p_instance_rec.LAST_OE_ORDER_LINE_ID
14804 ,p_OLD_LAST_OE_RMA_LINE_ID => fnd_api.g_miss_num
14805 ,p_NEW_LAST_OE_RMA_LINE_ID => p_instance_rec.LAST_OE_RMA_LINE_ID
14806 ,p_OLD_LAST_WIP_JOB_ID => fnd_api.g_miss_num
14807 ,p_NEW_LAST_WIP_JOB_ID => p_instance_rec.LAST_WIP_JOB_ID
14808 ,p_OLD_LAST_PO_PO_LINE_ID => fnd_api.g_miss_num
14809 ,p_NEW_LAST_PO_PO_LINE_ID => p_instance_rec.LAST_PO_PO_LINE_ID
14810 ,p_OLD_LAST_PA_PROJECT_ID => fnd_api.g_miss_num
14811 ,p_NEW_LAST_PA_PROJECT_ID => p_instance_rec.LAST_PA_PROJECT_ID
14812 ,p_OLD_LAST_PA_TASK_ID => fnd_api.g_miss_num
14813 ,p_NEW_LAST_PA_TASK_ID => p_instance_rec.LAST_PA_TASK_ID
14814 ,p_OLD_LAST_TXN_LINE_DETAIL_ID => fnd_api.g_miss_num
14815 ,p_NEW_LAST_TXN_LINE_DETAIL_ID => p_instance_rec.LAST_TXN_LINE_DETAIL_ID
14816 ,p_OLD_LAST_OE_PO_NUMBER => fnd_api.g_miss_char
14817 ,p_NEW_LAST_OE_PO_NUMBER => p_instance_rec.LAST_OE_PO_NUMBER
14818 --start of parameters addition for eam integration--
14819 ,p_OLD_NETWORK_ASSET_FLAG => fnd_api.g_miss_char
14820 ,p_NEW_NETWORK_ASSET_FLAG => p_instance_rec.NETWORK_ASSET_FLAG
14821 ,p_OLD_MAINTAINABLE_FLAG => fnd_api.g_miss_char
14822 ,p_NEW_MAINTAINABLE_FLAG => p_instance_rec.MAINTAINABLE_FLAG
14823 ,p_OLD_PN_LOCATION_ID => fnd_api.g_miss_num
14824 ,p_NEW_PN_LOCATION_ID => p_instance_rec.PN_LOCATION_ID
14825 ,p_OLD_ASSET_CRITICALITY_CODE => fnd_api.g_miss_char
14826 ,p_NEW_ASSET_CRITICALITY_CODE => p_instance_rec.ASSET_CRITICALITY_CODE
14827 ,p_OLD_CATEGORY_ID => fnd_api.g_miss_num
14828 ,p_NEW_CATEGORY_ID => p_instance_rec.CATEGORY_ID
14829 ,p_OLD_EQUIPMENT_GEN_OBJECT_ID => fnd_api.g_miss_num
14830 ,p_NEW_EQUIPMENT_GEN_OBJECT_ID => p_instance_rec.EQUIPMENT_GEN_OBJECT_ID
14831 ,p_OLD_INSTANTIATION_FLAG => fnd_api.g_miss_char
14832 ,p_NEW_INSTANTIATION_FLAG => p_instance_rec.INSTANTIATION_FLAG
14833 ,p_OLD_LINEAR_LOCATION_ID => fnd_api.g_miss_num
14834 ,p_NEW_LINEAR_LOCATION_ID => p_instance_rec.LINEAR_LOCATION_ID
14835 ,p_OLD_OPERATIONAL_LOG_FLAG => fnd_api.g_miss_char
14836 ,p_NEW_OPERATIONAL_LOG_FLAG => p_instance_rec.OPERATIONAL_LOG_FLAG
14837 ,p_OLD_CHECKIN_STATUS => fnd_api.g_miss_num
14838 ,p_NEW_CHECKIN_STATUS => p_instance_rec.CHECKIN_STATUS
14839 ,p_OLD_SUP_WARRANTY_EXP_DATE => fnd_api.g_miss_date
14840 ,p_NEW_SUP_WARRANTY_EXP_DATE => p_instance_rec.SUPPLIER_WARRANTY_EXP_DATE
14841 ,p_OLD_ATTRIBUTE16 => fnd_api.g_miss_char
14842 ,p_NEW_ATTRIBUTE16 => p_instance_rec.ATTRIBUTE16
14843 ,p_OLD_ATTRIBUTE17 => fnd_api.g_miss_char
14844 ,p_NEW_ATTRIBUTE17 => p_instance_rec.ATTRIBUTE17
14845 ,p_OLD_ATTRIBUTE18 => fnd_api.g_miss_char
14846 ,p_NEW_ATTRIBUTE18 => p_instance_rec.ATTRIBUTE18
14847 ,p_OLD_ATTRIBUTE19 => fnd_api.g_miss_char
14848 ,p_NEW_ATTRIBUTE19 => p_instance_rec.ATTRIBUTE19
14849 ,p_OLD_ATTRIBUTE20 => fnd_api.g_miss_char
14850 ,p_NEW_ATTRIBUTE20 => p_instance_rec.ATTRIBUTE20
14851 ,p_OLD_ATTRIBUTE21 => fnd_api.g_miss_char
14852 ,p_NEW_ATTRIBUTE21 => p_instance_rec.ATTRIBUTE21
14853 ,p_OLD_ATTRIBUTE22 => fnd_api.g_miss_char
14854 ,p_NEW_ATTRIBUTE22 => p_instance_rec.ATTRIBUTE22
14855 ,p_OLD_ATTRIBUTE23 => fnd_api.g_miss_char
14856 ,p_NEW_ATTRIBUTE23 => p_instance_rec.ATTRIBUTE23
14857 ,p_OLD_ATTRIBUTE24 => fnd_api.g_miss_char
14858 ,p_NEW_ATTRIBUTE24 => p_instance_rec.ATTRIBUTE24
14859 ,p_OLD_ATTRIBUTE25 => fnd_api.g_miss_char
14860 ,p_NEW_ATTRIBUTE25 => p_instance_rec.ATTRIBUTE25
14861 ,p_OLD_ATTRIBUTE26 => fnd_api.g_miss_char
14862 ,p_NEW_ATTRIBUTE26 => p_instance_rec.ATTRIBUTE26
14863 ,p_OLD_ATTRIBUTE27 => fnd_api.g_miss_char
14864 ,p_NEW_ATTRIBUTE27 => p_instance_rec.ATTRIBUTE27
14865 ,p_OLD_ATTRIBUTE28 => fnd_api.g_miss_char
14866 ,p_NEW_ATTRIBUTE28 => p_instance_rec.ATTRIBUTE28
14867 ,p_OLD_ATTRIBUTE29 => fnd_api.g_miss_char
14868 ,p_NEW_ATTRIBUTE29 => p_instance_rec.ATTRIBUTE29
14869 ,p_OLD_ATTRIBUTE30 => fnd_api.g_miss_char
14870 ,p_NEW_ATTRIBUTE30 => p_instance_rec.ATTRIBUTE30
14871 --end of parameters addition for eam integration--
14872 -- Addition of columns for FA Integration
14873 ,p_OLD_PAYABLES_UNIT_PRICE => fnd_api.g_miss_num
14874 ,p_NEW_PAYABLES_UNIT_PRICE => p_instance_rec.PAYABLES_UNIT_PRICE
14875 ,p_OLD_PAYABLES_CURRENCY_CODE => fnd_api.g_miss_char
14876 ,p_NEW_PAYABLES_CURRENCY_CODE => p_instance_rec.PAYABLES_CURRENCY_CODE
14877 ,p_OLD_PURCHASE_UNIT_PRICE => fnd_api.g_miss_num
14878 ,p_NEW_PURCHASE_UNIT_PRICE => p_instance_rec.PURCHASE_UNIT_PRICE
14879 ,p_OLD_PURCHASE_CURRENCY_CODE => fnd_api.g_miss_char
14880 ,p_NEW_PURCHASE_CURRENCY_CODE => p_instance_rec.PURCHASE_CURRENCY_CODE
14881 ,p_OLD_SALES_UNIT_PRICE => fnd_api.g_miss_num
14882 ,p_NEW_SALES_UNIT_PRICE => p_instance_rec.SALES_UNIT_PRICE
14883 ,p_OLD_SALES_CURRENCY_CODE => fnd_api.g_miss_char
14884 ,p_NEW_SALES_CURRENCY_CODE => p_instance_rec.SALES_CURRENCY_CODE
14885 ,p_OLD_OPERATIONAL_STATUS_CODE => fnd_api.g_miss_char
14886 ,p_NEW_OPERATIONAL_STATUS_CODE => p_instance_rec.OPERATIONAL_STATUS_CODE
14887 -- End addition of columns for FA Integration
14888 -- Begin Add Code for Siebel Genesis Project
14889 ,p_OLD_SOURCE_CODE => fnd_api.g_miss_char
14890 ,p_NEW_SOURCE_CODE => p_instance_rec.SOURCE_CODE
14891 -- End Add Code for Siebel Genesis Project
14892 );
14893
14894 ELSE
14895
14896 IF ( l_ins_hist_csr.old_instance_number IS NULL
14897 AND l_ins_hist_csr.new_instance_number IS NULL ) THEN
14898 IF ( p_instance_rec.instance_number = l_curr_instance_rec.instance_number )
14899 OR ( p_instance_rec.instance_number = fnd_api.g_miss_char ) THEN
14900 l_ins_hist_csr.old_instance_number := NULL;
14901 l_ins_hist_csr.new_instance_number := NULL;
14902 ELSE
14903 l_ins_hist_csr.old_instance_number := fnd_api.g_miss_char;
14904 l_ins_hist_csr.new_instance_number := p_instance_rec.instance_number;
14905 END IF;
14906 ELSE
14907 l_ins_hist_csr.old_instance_number := fnd_api.g_miss_char;
14908 l_ins_hist_csr.new_instance_number := p_instance_rec.instance_number;
14909 END IF;
14910 --
14911 IF ( l_ins_hist_csr.old_external_reference IS NULL
14912 AND l_ins_hist_csr.new_external_reference IS NULL ) THEN
14913 IF ( p_instance_rec.external_reference = l_curr_instance_rec.external_reference )
14914 OR ( p_instance_rec.external_reference = fnd_api.g_miss_char ) THEN
14915 l_ins_hist_csr.old_external_reference := NULL;
14916 l_ins_hist_csr.new_external_reference := NULL;
14917 ELSE
14918 l_ins_hist_csr.old_external_reference := fnd_api.g_miss_char;
14919 l_ins_hist_csr.new_external_reference := p_instance_rec.external_reference;
14920 END IF;
14921 ELSE
14922 l_ins_hist_csr.old_external_reference := fnd_api.g_miss_char;
14923 l_ins_hist_csr.new_external_reference := p_instance_rec.external_reference;
14924 END IF;
14925 --
14926 IF ( l_ins_hist_csr.old_inventory_item_id IS NULL
14927 AND l_ins_hist_csr.new_inventory_item_id IS NULL ) THEN
14928 IF ( p_instance_rec.inventory_item_id = l_curr_instance_rec.inventory_item_id )
14929 OR ( p_instance_rec.inventory_item_id = fnd_api.g_miss_num ) THEN
14930 l_ins_hist_csr.old_inventory_item_id := NULL;
14931 l_ins_hist_csr.new_inventory_item_id := NULL;
14932 ELSE
14933 l_ins_hist_csr.old_inventory_item_id := fnd_api.g_miss_num;
14934 l_ins_hist_csr.new_inventory_item_id := p_instance_rec.inventory_item_id;
14935 END IF;
14936 ELSE
14937 l_ins_hist_csr.old_inventory_item_id := fnd_api.g_miss_num;
14938 l_ins_hist_csr.new_inventory_item_id := p_instance_rec.inventory_item_id;
14939 END IF;
14940 --
14941 IF ( l_ins_hist_csr.old_inventory_revision IS NULL
14942 AND l_ins_hist_csr.new_inventory_revision IS NULL ) THEN
14943 IF ( p_instance_rec.inventory_revision = l_curr_instance_rec.inventory_revision )
14944 OR ( p_instance_rec.inventory_revision = fnd_api.g_miss_char ) THEN
14945 l_ins_hist_csr.old_inventory_revision := NULL;
14946 l_ins_hist_csr.new_inventory_revision := NULL;
14947 ELSE
14948 l_ins_hist_csr.old_inventory_revision := fnd_api.g_miss_char;
14949 l_ins_hist_csr.new_inventory_revision := p_instance_rec.inventory_revision;
14950 END IF;
14951 ELSE
14952 l_ins_hist_csr.old_inventory_revision := fnd_api.g_miss_char;
14953 l_ins_hist_csr.new_inventory_revision := p_instance_rec.inventory_revision;
14954 END IF;
14955 --
14956 IF ( l_ins_hist_csr.old_inv_master_organization_id IS NULL
14957 AND l_ins_hist_csr.new_inv_master_organization_id IS NULL ) THEN
14958 IF ( p_instance_rec.inv_master_organization_id = l_curr_instance_rec.inv_master_organization_id )
14959 OR ( p_instance_rec.inv_master_organization_id = fnd_api.g_miss_num ) THEN
14960 l_ins_hist_csr.old_inv_master_organization_id := NULL;
14961 l_ins_hist_csr.new_inv_master_organization_id := NULL;
14962 ELSE
14963 l_ins_hist_csr.old_inv_master_organization_id := fnd_api.g_miss_num;
14964 l_ins_hist_csr.new_inv_master_organization_id := p_instance_rec.inv_master_organization_id;
14965 END IF;
14966 ELSE
14967 l_ins_hist_csr.old_inv_master_organization_id := fnd_api.g_miss_num;
14968 l_ins_hist_csr.new_inv_master_organization_id := p_instance_rec.inv_master_organization_id;
14969 END IF;
14970 --
14971 IF ( l_ins_hist_csr.old_serial_number IS NULL
14972 AND l_ins_hist_csr.new_serial_number IS NULL ) THEN
14973 IF ( p_instance_rec.serial_number = l_curr_instance_rec.serial_number )
14974 OR ( p_instance_rec.serial_number = fnd_api.g_miss_char ) THEN
14975 l_ins_hist_csr.old_serial_number := NULL;
14976 l_ins_hist_csr.new_serial_number := NULL;
14977 ELSE
14978 l_ins_hist_csr.old_serial_number := fnd_api.g_miss_char;
14979 l_ins_hist_csr.new_serial_number := p_instance_rec.serial_number;
14980 END IF;
14981 ELSE
14982 l_ins_hist_csr.old_serial_number := fnd_api.g_miss_char;
14983 l_ins_hist_csr.new_serial_number := p_instance_rec.serial_number;
14984 END IF;
14985 --
14986 IF ( l_ins_hist_csr.old_mfg_serial_number_flag IS NULL
14987 AND l_ins_hist_csr.new_mfg_serial_number_flag IS NULL ) THEN
14988 IF ( p_instance_rec.mfg_serial_number_flag = l_curr_instance_rec.mfg_serial_number_flag )
14989 OR ( p_instance_rec.mfg_serial_number_flag = fnd_api.g_miss_char ) THEN
14990 l_ins_hist_csr.old_mfg_serial_number_flag := NULL;
14991 l_ins_hist_csr.new_mfg_serial_number_flag := NULL;
14992 ELSE
14993 l_ins_hist_csr.old_mfg_serial_number_flag := fnd_api.g_miss_char;
14994 l_ins_hist_csr.new_mfg_serial_number_flag := p_instance_rec.mfg_serial_number_flag;
14995 END IF;
14996 ELSE
14997 l_ins_hist_csr.old_mfg_serial_number_flag := fnd_api.g_miss_char;
14998 l_ins_hist_csr.new_mfg_serial_number_flag := p_instance_rec.mfg_serial_number_flag;
14999 END IF;
15000 --
15001 IF ( l_ins_hist_csr.old_lot_number IS NULL
15002 AND l_ins_hist_csr.new_lot_number IS NULL ) THEN
15003 IF ( p_instance_rec.lot_number = l_curr_instance_rec.lot_number )
15004 OR ( p_instance_rec.lot_number = fnd_api.g_miss_char ) THEN
15005 l_ins_hist_csr.old_lot_number := NULL;
15006 l_ins_hist_csr.new_lot_number := NULL;
15007 ELSE
15008 l_ins_hist_csr.old_lot_number := fnd_api.g_miss_char;
15009 l_ins_hist_csr.new_lot_number := p_instance_rec.lot_number;
15010 END IF;
15011 ELSE
15012 l_ins_hist_csr.old_lot_number := fnd_api.g_miss_char;
15013 l_ins_hist_csr.new_lot_number := p_instance_rec.lot_number;
15014 END IF;
15015 --
15016 IF ( l_ins_hist_csr.old_quantity IS NULL
15017 AND l_ins_hist_csr.new_quantity IS NULL ) THEN
15018 IF ( p_instance_rec.quantity = l_curr_instance_rec.quantity )
15019 OR ( p_instance_rec.quantity = fnd_api.g_miss_num ) THEN
15020 l_ins_hist_csr.old_quantity := NULL;
15021 l_ins_hist_csr.new_quantity := NULL;
15022 ELSE
15023 l_ins_hist_csr.old_quantity := l_curr_instance_rec.quantity; --fnd_api.g_miss_num;
15024 l_ins_hist_csr.new_quantity := p_instance_rec.quantity;
15025 END IF;
15026 ELSE
15027 l_ins_hist_csr.old_quantity := fnd_api.g_miss_num;
15028 l_ins_hist_csr.new_quantity := p_instance_rec.quantity;
15029 END IF;
15030 --
15031 IF ( l_ins_hist_csr.old_unit_of_measure IS NULL
15032 AND l_ins_hist_csr.new_unit_of_measure IS NULL ) THEN
15033 IF ( p_instance_rec.unit_of_measure = l_curr_instance_rec.unit_of_measure )
15034 OR ( p_instance_rec.unit_of_measure = fnd_api.g_miss_char ) THEN
15035 l_ins_hist_csr.old_unit_of_measure := NULL;
15036 l_ins_hist_csr.new_unit_of_measure := NULL;
15037 ELSE
15038 l_ins_hist_csr.old_unit_of_measure := fnd_api.g_miss_char;
15039 l_ins_hist_csr.new_unit_of_measure := p_instance_rec.unit_of_measure;
15040 END IF;
15041 ELSE
15042 l_ins_hist_csr.old_unit_of_measure := fnd_api.g_miss_char;
15043 l_ins_hist_csr.new_unit_of_measure := p_instance_rec.unit_of_measure;
15044 END IF;
15045 --
15046 IF ( l_ins_hist_csr.old_accounting_class_code IS NULL
15047 AND l_ins_hist_csr.new_accounting_class_code IS NULL ) THEN
15048 IF ( p_instance_rec.accounting_class_code = l_curr_instance_rec.accounting_class_code )
15049 OR ( p_instance_rec.accounting_class_code = fnd_api.g_miss_char ) THEN
15050 l_ins_hist_csr.old_accounting_class_code := NULL;
15051 l_ins_hist_csr.new_accounting_class_code := NULL;
15052 ELSE
15053 l_ins_hist_csr.old_accounting_class_code := fnd_api.g_miss_char;
15054 l_ins_hist_csr.new_accounting_class_code := p_instance_rec.accounting_class_code;
15055 END IF;
15056 ELSE
15057 l_ins_hist_csr.old_accounting_class_code := fnd_api.g_miss_char;
15058 l_ins_hist_csr.new_accounting_class_code := p_instance_rec.accounting_class_code;
15059 END IF;
15060 --
15061 IF ( l_ins_hist_csr.old_instance_condition_id IS NULL
15062 AND l_ins_hist_csr.new_instance_condition_id IS NULL ) THEN
15063 IF ( p_instance_rec.instance_condition_id = l_curr_instance_rec.instance_condition_id )
15064 OR ( p_instance_rec.instance_condition_id = fnd_api.g_miss_num ) THEN
15065 l_ins_hist_csr.old_instance_condition_id := NULL;
15066 l_ins_hist_csr.new_instance_condition_id := NULL;
15067 ELSE
15068 l_ins_hist_csr.old_instance_condition_id := fnd_api.g_miss_num;
15069 l_ins_hist_csr.new_instance_condition_id := p_instance_rec.instance_condition_id;
15070 END IF;
15071 ELSE
15072 l_ins_hist_csr.old_instance_condition_id := fnd_api.g_miss_num;
15073 l_ins_hist_csr.new_instance_condition_id := p_instance_rec.instance_condition_id;
15074 END IF;
15075 --
15076 IF ( l_ins_hist_csr.old_instance_status_id IS NULL
15077 AND l_ins_hist_csr.new_instance_status_id IS NULL ) THEN
15078 IF ( p_instance_rec.instance_status_id = l_curr_instance_rec.instance_status_id )
15079 OR ( p_instance_rec.instance_status_id = fnd_api.g_miss_num ) THEN
15080 l_ins_hist_csr.old_instance_status_id := NULL;
15081 l_ins_hist_csr.new_instance_status_id := NULL;
15082 ELSE
15083 /* Following has been added for bug 2935513 */
15084 IF nvl(l_curr_instance_rec.instance_status_id,fnd_api.g_miss_num)<>
15085 nvl(p_instance_rec.instance_status_id,fnd_api.g_miss_num)
15086 THEN
15087 l_ins_hist_csr.old_instance_status_id := l_curr_instance_rec.instance_status_id;
15088 l_ins_hist_csr.new_instance_status_id := p_instance_rec.instance_status_id;
15089 ELSE
15090 /* End addition for bug 2935513 */
15091 l_ins_hist_csr.old_instance_status_id := fnd_api.g_miss_num;
15092 l_ins_hist_csr.new_instance_status_id := p_instance_rec.instance_status_id;
15093 END IF;
15094
15095 END IF;
15096 ELSE
15097 l_ins_hist_csr.old_instance_status_id := fnd_api.g_miss_num;
15098 l_ins_hist_csr.new_instance_status_id := p_instance_rec.instance_status_id;
15099 END IF;
15100 --
15101 IF ( l_ins_hist_csr.old_customer_view_flag IS NULL
15102 AND l_ins_hist_csr.new_customer_view_flag IS NULL ) THEN
15103 IF ( p_instance_rec.customer_view_flag = l_curr_instance_rec.customer_view_flag )
15104 OR ( p_instance_rec.customer_view_flag = fnd_api.g_miss_char ) THEN
15105 l_ins_hist_csr.old_customer_view_flag := NULL;
15106 l_ins_hist_csr.new_customer_view_flag := NULL;
15107 ELSE
15108 l_ins_hist_csr.old_customer_view_flag := fnd_api.g_miss_char;
15109 l_ins_hist_csr.new_customer_view_flag := p_instance_rec.customer_view_flag;
15110 END IF;
15111 ELSE
15112 l_ins_hist_csr.old_customer_view_flag := fnd_api.g_miss_char;
15113 l_ins_hist_csr.new_customer_view_flag := p_instance_rec.customer_view_flag;
15114 END IF;
15115 --
15116 IF ( l_ins_hist_csr.old_merchant_view_flag IS NULL
15117 AND l_ins_hist_csr.new_merchant_view_flag IS NULL ) THEN
15118 IF ( p_instance_rec.merchant_view_flag = l_curr_instance_rec.merchant_view_flag )
15119 OR ( p_instance_rec.merchant_view_flag = fnd_api.g_miss_char ) THEN
15120 l_ins_hist_csr.old_merchant_view_flag := NULL;
15121 l_ins_hist_csr.new_merchant_view_flag := NULL;
15122 ELSE
15123 l_ins_hist_csr.old_merchant_view_flag := fnd_api.g_miss_char;
15124 l_ins_hist_csr.new_merchant_view_flag := p_instance_rec.merchant_view_flag;
15125 END IF;
15126 ELSE
15127 l_ins_hist_csr.old_merchant_view_flag := fnd_api.g_miss_char;
15128 l_ins_hist_csr.new_merchant_view_flag := p_instance_rec.merchant_view_flag;
15129 END IF;
15130 --
15131 IF ( l_ins_hist_csr.old_sellable_flag IS NULL
15132 AND l_ins_hist_csr.new_sellable_flag IS NULL ) THEN
15133 IF ( p_instance_rec.sellable_flag = l_curr_instance_rec.sellable_flag )
15134 OR ( p_instance_rec.sellable_flag = fnd_api.g_miss_char ) THEN
15135 l_ins_hist_csr.old_sellable_flag := NULL;
15136 l_ins_hist_csr.new_sellable_flag := NULL;
15137 ELSE
15138 l_ins_hist_csr.old_sellable_flag := fnd_api.g_miss_char;
15139 l_ins_hist_csr.new_sellable_flag := p_instance_rec.sellable_flag;
15140 END IF;
15141 ELSE
15142 l_ins_hist_csr.old_sellable_flag := fnd_api.g_miss_char;
15143 l_ins_hist_csr.new_sellable_flag := p_instance_rec.sellable_flag;
15144 END IF;
15145 --
15146 IF ( l_ins_hist_csr.old_system_id IS NULL
15147 AND l_ins_hist_csr.new_system_id IS NULL ) THEN
15148 IF ( p_instance_rec.system_id = l_curr_instance_rec.system_id )
15149 OR ( p_instance_rec.system_id = fnd_api.g_miss_num ) THEN
15150 l_ins_hist_csr.old_system_id := NULL;
15151 l_ins_hist_csr.new_system_id := NULL;
15152 ELSE
15153 l_ins_hist_csr.old_system_id := fnd_api.g_miss_num;
15154 l_ins_hist_csr.new_system_id := p_instance_rec.system_id;
15155 END IF;
15156 ELSE
15157 l_ins_hist_csr.old_system_id := fnd_api.g_miss_num;
15158 l_ins_hist_csr.new_system_id := p_instance_rec.system_id;
15159 END IF;
15160 --
15161 IF ( l_ins_hist_csr.old_instance_type_code IS NULL
15162 AND l_ins_hist_csr.new_instance_type_code IS NULL ) THEN
15163 IF ( p_instance_rec.instance_type_code = l_curr_instance_rec.instance_type_code )
15164 OR ( p_instance_rec.instance_type_code = fnd_api.g_miss_char ) THEN
15165 l_ins_hist_csr.old_instance_type_code := NULL;
15166 l_ins_hist_csr.new_instance_type_code := NULL;
15167 ELSE
15168 l_ins_hist_csr.old_instance_type_code := fnd_api.g_miss_char;
15169 l_ins_hist_csr.new_instance_type_code := p_instance_rec.instance_type_code;
15170 END IF;
15171 ELSE
15172 l_ins_hist_csr.old_instance_type_code := fnd_api.g_miss_char;
15173 l_ins_hist_csr.new_instance_type_code := p_instance_rec.instance_type_code;
15174 END IF;
15175 --
15176 IF ( l_ins_hist_csr.old_active_start_date IS NULL
15177 AND l_ins_hist_csr.new_active_start_date IS NULL ) THEN
15178 IF ( p_instance_rec.active_start_date = l_curr_instance_rec.active_start_date )
15179 OR ( p_instance_rec.active_start_date = fnd_api.g_miss_date ) THEN
15180 l_ins_hist_csr.old_active_start_date := NULL;
15181 l_ins_hist_csr.new_active_start_date := NULL;
15182 ELSE
15183 l_ins_hist_csr.old_active_start_date := fnd_api.g_miss_date;
15184 l_ins_hist_csr.new_active_start_date := p_instance_rec.active_start_date;
15185 END IF;
15186 ELSE
15187 l_ins_hist_csr.old_active_start_date := fnd_api.g_miss_date;
15188 l_ins_hist_csr.new_active_start_date := p_instance_rec.active_start_date;
15189 END IF;
15190 --
15191 IF ( l_ins_hist_csr.old_active_end_date IS NULL
15192 AND l_ins_hist_csr.new_active_end_date IS NULL ) THEN
15193 IF ( p_instance_rec.active_end_date = l_curr_instance_rec.active_end_date )
15194 OR ( p_instance_rec.active_end_date = fnd_api.g_miss_date ) THEN
15195 l_ins_hist_csr.old_active_end_date := NULL;
15196 l_ins_hist_csr.new_active_end_date := NULL;
15197 ELSE
15198 l_ins_hist_csr.old_active_end_date := fnd_api.g_miss_date;
15199 l_ins_hist_csr.new_active_end_date := p_instance_rec.active_end_date;
15200 END IF;
15201 ELSE
15202 l_ins_hist_csr.old_active_end_date := fnd_api.g_miss_date;
15203 l_ins_hist_csr.new_active_end_date := p_instance_rec.active_end_date;
15204 END IF;
15205 --
15206 IF ( l_ins_hist_csr.old_location_type_code IS NULL
15207 AND l_ins_hist_csr.new_location_type_code IS NULL ) THEN
15208 IF ( p_instance_rec.location_type_code = l_curr_instance_rec.location_type_code )
15209 OR ( p_instance_rec.location_type_code = fnd_api.g_miss_char ) THEN
15210 l_ins_hist_csr.old_location_type_code := NULL;
15211 l_ins_hist_csr.new_location_type_code := NULL;
15212 ELSE
15213 l_ins_hist_csr.old_location_type_code := l_curr_instance_rec.location_type_code; --fnd_api.g_miss_char;
15214 l_ins_hist_csr.new_location_type_code := p_instance_rec.location_type_code;
15215 END IF;
15216 ELSE
15217 l_ins_hist_csr.old_location_type_code := fnd_api.g_miss_char;
15218 l_ins_hist_csr.new_location_type_code := p_instance_rec.location_type_code;
15219 END IF;
15220 --
15221 IF ( l_ins_hist_csr.old_location_id IS NULL
15222 AND l_ins_hist_csr.new_location_id IS NULL ) THEN
15223 IF ( p_instance_rec.location_id = l_curr_instance_rec.location_id )
15224 OR ( p_instance_rec.location_id = fnd_api.g_miss_num ) THEN
15225 l_ins_hist_csr.old_location_id := NULL;
15226 l_ins_hist_csr.new_location_id := NULL;
15227 ELSE
15228 l_ins_hist_csr.old_location_id := l_curr_instance_rec.location_id; --fnd_api.g_miss_num;
15229 l_ins_hist_csr.new_location_id := p_instance_rec.location_id;
15230 END IF;
15231 ELSE
15232 l_ins_hist_csr.old_location_id := fnd_api.g_miss_num;
15233 l_ins_hist_csr.new_location_id := p_instance_rec.location_id;
15234 END IF;
15235 --
15236 IF ( l_ins_hist_csr.old_inv_organization_id IS NULL
15237 AND l_ins_hist_csr.new_inv_organization_id IS NULL ) THEN
15238 IF ( p_instance_rec.inv_organization_id = l_curr_instance_rec.inv_organization_id )
15239 OR ( p_instance_rec.inv_organization_id = fnd_api.g_miss_num ) THEN
15240 l_ins_hist_csr.old_inv_organization_id := NULL;
15241 l_ins_hist_csr.new_inv_organization_id := NULL;
15242 ELSE
15243 l_ins_hist_csr.old_inv_organization_id := fnd_api.g_miss_num;
15244 l_ins_hist_csr.new_inv_organization_id := p_instance_rec.inv_organization_id;
15245 END IF;
15246 ELSE
15247 l_ins_hist_csr.old_inv_organization_id := fnd_api.g_miss_num;
15248 l_ins_hist_csr.new_inv_organization_id := p_instance_rec.inv_organization_id;
15249 END IF;
15250 --
15251 IF ( l_ins_hist_csr.old_inv_subinventory_name IS NULL
15252 AND l_ins_hist_csr.new_inv_subinventory_name IS NULL ) THEN
15253 IF ( p_instance_rec.inv_subinventory_name = l_curr_instance_rec.inv_subinventory_name )
15254 OR ( p_instance_rec.inv_subinventory_name = fnd_api.g_miss_char ) THEN
15255 l_ins_hist_csr.old_inv_subinventory_name := NULL;
15256 l_ins_hist_csr.new_inv_subinventory_name := NULL;
15257 ELSE
15258 l_ins_hist_csr.old_inv_subinventory_name := fnd_api.g_miss_char;
15259 l_ins_hist_csr.new_inv_subinventory_name := p_instance_rec.inv_subinventory_name;
15260 END IF;
15261 ELSE
15262 l_ins_hist_csr.old_inv_subinventory_name := fnd_api.g_miss_char;
15263 l_ins_hist_csr.new_inv_subinventory_name := p_instance_rec.inv_subinventory_name;
15264 END IF;
15265 --
15266 IF ( l_ins_hist_csr.old_inv_locator_id IS NULL
15267 AND l_ins_hist_csr.new_inv_locator_id IS NULL ) THEN
15268 IF ( p_instance_rec.inv_locator_id = l_curr_instance_rec.inv_locator_id )
15269 OR ( p_instance_rec.inv_locator_id = fnd_api.g_miss_num ) THEN
15270 l_ins_hist_csr.old_inv_locator_id := NULL;
15271 l_ins_hist_csr.new_inv_locator_id := NULL;
15272 ELSE
15273 l_ins_hist_csr.old_inv_locator_id := fnd_api.g_miss_num;
15274 l_ins_hist_csr.new_inv_locator_id := p_instance_rec.inv_locator_id;
15275 END IF;
15276 ELSE
15277 l_ins_hist_csr.old_inv_locator_id := fnd_api.g_miss_num;
15278 l_ins_hist_csr.new_inv_locator_id := p_instance_rec.inv_locator_id;
15279 END IF;
15280 --
15281 IF ( l_ins_hist_csr.old_pa_project_id IS NULL
15282 AND l_ins_hist_csr.new_pa_project_id IS NULL ) THEN
15283 IF ( p_instance_rec.pa_project_id = l_curr_instance_rec.pa_project_id )
15284 OR ( p_instance_rec.pa_project_id = fnd_api.g_miss_num ) THEN
15285 l_ins_hist_csr.old_pa_project_id := NULL;
15286 l_ins_hist_csr.new_pa_project_id := NULL;
15287 ELSE
15288 l_ins_hist_csr.old_pa_project_id := fnd_api.g_miss_num;
15289 l_ins_hist_csr.new_pa_project_id := p_instance_rec.pa_project_id;
15290 END IF;
15291 ELSE
15292 l_ins_hist_csr.old_pa_project_id := fnd_api.g_miss_num;
15293 l_ins_hist_csr.new_pa_project_id := p_instance_rec.pa_project_id;
15294 END IF;
15295 --
15296 IF ( l_ins_hist_csr.old_pa_project_task_id IS NULL
15297 AND l_ins_hist_csr.new_pa_project_task_id IS NULL ) THEN
15298 IF ( p_instance_rec.pa_project_task_id = l_curr_instance_rec.pa_project_task_id )
15299 OR ( p_instance_rec.pa_project_task_id = fnd_api.g_miss_num ) THEN
15300 l_ins_hist_csr.old_pa_project_task_id := NULL;
15301 l_ins_hist_csr.new_pa_project_task_id := NULL;
15302 ELSE
15303 l_ins_hist_csr.old_pa_project_task_id := fnd_api.g_miss_num;
15304 l_ins_hist_csr.new_pa_project_task_id := p_instance_rec.pa_project_task_id;
15305 END IF;
15306 ELSE
15307 l_ins_hist_csr.old_pa_project_id := fnd_api.g_miss_num;
15308 l_ins_hist_csr.new_pa_project_task_id := p_instance_rec.pa_project_task_id;
15309 END IF;
15310 --
15311 IF ( l_ins_hist_csr.old_in_transit_order_line_id IS NULL
15312 AND l_ins_hist_csr.new_in_transit_order_line_id IS NULL ) THEN
15313 IF ( p_instance_rec.in_transit_order_line_id = l_curr_instance_rec.in_transit_order_line_id )
15314 OR ( p_instance_rec.in_transit_order_line_id = fnd_api.g_miss_num ) THEN
15315 l_ins_hist_csr.old_in_transit_order_line_id := NULL;
15316 l_ins_hist_csr.new_in_transit_order_line_id := NULL;
15317 ELSE
15318 l_ins_hist_csr.old_in_transit_order_line_id := fnd_api.g_miss_num;
15319 l_ins_hist_csr.new_in_transit_order_line_id := p_instance_rec.in_transit_order_line_id;
15320 END IF;
15321 ELSE
15322 l_ins_hist_csr.old_in_transit_order_line_id := fnd_api.g_miss_num;
15323 l_ins_hist_csr.new_in_transit_order_line_id := p_instance_rec.in_transit_order_line_id;
15324 END IF;
15325 --
15326 IF ( l_ins_hist_csr.old_oe_agreement_id IS NULL
15327 AND l_ins_hist_csr.new_oe_agreement_id IS NULL ) THEN
15328 IF ( p_instance_rec.last_oe_agreement_id = l_curr_instance_rec.last_oe_agreement_id )
15329 OR ( p_instance_rec.last_oe_agreement_id = fnd_api.g_miss_num ) THEN
15330 l_ins_hist_csr.old_oe_agreement_id := NULL;
15331 l_ins_hist_csr.new_oe_agreement_id := NULL;
15332 ELSE
15333 l_ins_hist_csr.old_oe_agreement_id := fnd_api.g_miss_num;
15334 l_ins_hist_csr.new_oe_agreement_id := p_instance_rec.last_oe_agreement_id;
15335 END IF;
15336 ELSE
15337 l_ins_hist_csr.old_oe_agreement_id := fnd_api.g_miss_num;
15338 l_ins_hist_csr.new_oe_agreement_id := p_instance_rec.last_oe_agreement_id;
15339 END IF;
15340 --
15341 IF ( l_ins_hist_csr.old_LAST_OE_ORDER_LINE_ID IS NULL
15342 AND l_ins_hist_csr.new_LAST_OE_ORDER_LINE_ID IS NULL ) THEN
15343 IF ( p_instance_rec.LAST_OE_ORDER_LINE_ID = l_curr_instance_rec.LAST_OE_ORDER_LINE_ID )
15344 OR ( p_instance_rec.LAST_OE_ORDER_LINE_ID = fnd_api.g_miss_num ) THEN
15345 l_ins_hist_csr.old_LAST_OE_ORDER_LINE_ID := NULL;
15346 l_ins_hist_csr.new_LAST_OE_ORDER_LINE_ID := NULL;
15347 ELSE
15348 l_ins_hist_csr.old_LAST_OE_ORDER_LINE_ID := fnd_api.g_miss_num;
15349 l_ins_hist_csr.new_LAST_OE_ORDER_LINE_ID := p_instance_rec.LAST_OE_ORDER_LINE_ID;
15350 END IF;
15351 ELSE
15352 l_ins_hist_csr.old_LAST_OE_ORDER_LINE_ID := fnd_api.g_miss_num;
15353 l_ins_hist_csr.new_LAST_OE_ORDER_LINE_ID := p_instance_rec.LAST_OE_ORDER_LINE_ID;
15354 END IF;
15355 --
15356 IF ( l_ins_hist_csr.old_LAST_OE_RMA_LINE_ID IS NULL
15357 AND l_ins_hist_csr.new_LAST_OE_RMA_LINE_ID IS NULL ) THEN
15358 IF ( p_instance_rec.LAST_OE_RMA_LINE_ID = l_curr_instance_rec.LAST_OE_RMA_LINE_ID )
15359 OR ( p_instance_rec.LAST_OE_RMA_LINE_ID = fnd_api.g_miss_num ) THEN
15360 l_ins_hist_csr.old_LAST_OE_RMA_LINE_ID := NULL;
15361 l_ins_hist_csr.new_LAST_OE_RMA_LINE_ID := NULL;
15362 ELSE
15363 l_ins_hist_csr.old_LAST_OE_RMA_LINE_ID := fnd_api.g_miss_num;
15364 l_ins_hist_csr.new_LAST_OE_RMA_LINE_ID := p_instance_rec.LAST_OE_RMA_LINE_ID;
15365 END IF;
15366 ELSE
15367 l_ins_hist_csr.old_LAST_OE_RMA_LINE_ID := fnd_api.g_miss_num;
15368 l_ins_hist_csr.new_LAST_OE_RMA_LINE_ID := p_instance_rec.LAST_OE_RMA_LINE_ID;
15369 END IF;
15370 --
15371 IF ( l_ins_hist_csr.old_LAST_WIP_JOB_ID IS NULL
15372 AND l_ins_hist_csr.new_LAST_WIP_JOB_ID IS NULL ) THEN
15373 IF ( p_instance_rec.LAST_WIP_JOB_ID = l_curr_instance_rec.LAST_WIP_JOB_ID )
15374 OR ( p_instance_rec.LAST_WIP_JOB_ID = fnd_api.g_miss_num ) THEN
15375 l_ins_hist_csr.old_LAST_WIP_JOB_ID := NULL;
15376 l_ins_hist_csr.new_LAST_WIP_JOB_ID := NULL;
15377 ELSE
15378 l_ins_hist_csr.old_LAST_WIP_JOB_ID := fnd_api.g_miss_num;
15379 l_ins_hist_csr.new_LAST_WIP_JOB_ID := p_instance_rec.LAST_WIP_JOB_ID;
15380 END IF;
15381 ELSE
15382 l_ins_hist_csr.old_LAST_WIP_JOB_ID := fnd_api.g_miss_num;
15383 l_ins_hist_csr.new_LAST_WIP_JOB_ID := p_instance_rec.LAST_WIP_JOB_ID;
15384 END IF;
15385 --
15386 IF ( l_ins_hist_csr.old_LAST_PO_PO_LINE_ID IS NULL
15387 AND l_ins_hist_csr.new_LAST_PO_PO_LINE_ID IS NULL ) THEN
15388 IF ( p_instance_rec.LAST_PO_PO_LINE_ID = l_curr_instance_rec.LAST_PO_PO_LINE_ID )
15389 OR ( p_instance_rec.LAST_PO_PO_LINE_ID = fnd_api.g_miss_num ) THEN
15390 l_ins_hist_csr.old_LAST_PO_PO_LINE_ID := NULL;
15391 l_ins_hist_csr.new_LAST_PO_PO_LINE_ID := NULL;
15392 ELSE
15393 l_ins_hist_csr.old_LAST_PO_PO_LINE_ID := fnd_api.g_miss_num;
15394 l_ins_hist_csr.new_LAST_PO_PO_LINE_ID := p_instance_rec.LAST_PO_PO_LINE_ID;
15395 END IF;
15396 ELSE
15397 l_ins_hist_csr.old_LAST_PO_PO_LINE_ID := fnd_api.g_miss_num;
15398 l_ins_hist_csr.new_LAST_PO_PO_LINE_ID := p_instance_rec.LAST_PO_PO_LINE_ID;
15399 END IF;
15400 --
15401 IF ( l_ins_hist_csr.old_LAST_PA_PROJECT_ID IS NULL
15402 AND l_ins_hist_csr.new_LAST_PA_PROJECT_ID IS NULL ) THEN
15403 IF ( p_instance_rec.LAST_PA_PROJECT_ID = l_curr_instance_rec.LAST_PA_PROJECT_ID )
15404 OR ( p_instance_rec.LAST_PA_PROJECT_ID = fnd_api.g_miss_num ) THEN
15405 l_ins_hist_csr.old_LAST_PA_PROJECT_ID := NULL;
15406 l_ins_hist_csr.new_LAST_PA_PROJECT_ID := NULL;
15407 ELSE
15408 l_ins_hist_csr.old_LAST_PA_PROJECT_ID := fnd_api.g_miss_num;
15409 l_ins_hist_csr.new_LAST_PA_PROJECT_ID := p_instance_rec.LAST_PA_PROJECT_ID;
15410 END IF;
15411 ELSE
15412 l_ins_hist_csr.old_LAST_PA_PROJECT_ID := fnd_api.g_miss_num;
15413 l_ins_hist_csr.new_LAST_PA_PROJECT_ID := p_instance_rec.LAST_PA_PROJECT_ID;
15414 END IF;
15415 --
15416 IF ( l_ins_hist_csr.old_LAST_PA_TASK_ID IS NULL
15417 AND l_ins_hist_csr.new_LAST_PA_TASK_ID IS NULL ) THEN
15418 IF ( p_instance_rec.LAST_PA_TASK_ID = l_curr_instance_rec.LAST_PA_TASK_ID )
15419 OR ( p_instance_rec.LAST_PA_TASK_ID = fnd_api.g_miss_num ) THEN
15420 l_ins_hist_csr.old_LAST_PA_TASK_ID := NULL;
15421 l_ins_hist_csr.new_LAST_PA_TASK_ID := NULL;
15422 ELSE
15423 l_ins_hist_csr.old_LAST_PA_TASK_ID := fnd_api.g_miss_num;
15424 l_ins_hist_csr.new_LAST_PA_TASK_ID := p_instance_rec.LAST_PA_TASK_ID;
15425 END IF;
15426 ELSE
15427 l_ins_hist_csr.old_LAST_PA_TASK_ID := fnd_api.g_miss_num;
15428 l_ins_hist_csr.new_LAST_PA_TASK_ID := p_instance_rec.LAST_PA_TASK_ID;
15429 END IF;
15430 --
15431 IF ( l_ins_hist_csr.old_LAST_TXN_LINE_DETAIL_ID IS NULL
15432 AND l_ins_hist_csr.new_LAST_TXN_LINE_DETAIL_ID IS NULL ) THEN
15433 IF ( p_instance_rec.LAST_TXN_LINE_DETAIL_ID = l_curr_instance_rec.LAST_TXN_LINE_DETAIL_ID )
15434 OR ( p_instance_rec.LAST_TXN_LINE_DETAIL_ID = fnd_api.g_miss_num ) THEN
15435 l_ins_hist_csr.old_LAST_TXN_LINE_DETAIL_ID := NULL;
15436 l_ins_hist_csr.new_LAST_TXN_LINE_DETAIL_ID := NULL;
15437 ELSE
15438 l_ins_hist_csr.old_LAST_TXN_LINE_DETAIL_ID := fnd_api.g_miss_num;
15439 l_ins_hist_csr.new_LAST_TXN_LINE_DETAIL_ID := p_instance_rec.LAST_TXN_LINE_DETAIL_ID;
15440 END IF;
15441 ELSE
15442 l_ins_hist_csr.old_LAST_TXN_LINE_DETAIL_ID := fnd_api.g_miss_num;
15443 l_ins_hist_csr.new_LAST_TXN_LINE_DETAIL_ID := p_instance_rec.LAST_TXN_LINE_DETAIL_ID;
15444 END IF;
15445 --
15446 IF ( l_ins_hist_csr.old_LAST_OE_PO_NUMBER IS NULL
15447 AND l_ins_hist_csr.new_LAST_OE_PO_NUMBER IS NULL ) THEN
15448 IF ( p_instance_rec.LAST_OE_PO_NUMBER = l_curr_instance_rec.LAST_OE_PO_NUMBER )
15449 OR ( p_instance_rec.LAST_OE_PO_NUMBER = fnd_api.g_miss_char ) THEN
15450 l_ins_hist_csr.old_LAST_OE_PO_NUMBER := NULL;
15451 l_ins_hist_csr.new_LAST_OE_PO_NUMBER := NULL;
15452 ELSE
15453 l_ins_hist_csr.old_LAST_OE_PO_NUMBER := fnd_api.g_miss_char;
15454 l_ins_hist_csr.new_LAST_OE_PO_NUMBER := p_instance_rec.LAST_OE_PO_NUMBER;
15455 END IF;
15456 ELSE
15457 l_ins_hist_csr.old_LAST_OE_PO_NUMBER := fnd_api.g_miss_char;
15458 l_ins_hist_csr.new_LAST_OE_PO_NUMBER := p_instance_rec.LAST_OE_PO_NUMBER;
15459 END IF;
15460 --
15461 IF ( l_ins_hist_csr.old_wip_job_id IS NULL
15462 AND l_ins_hist_csr.new_wip_job_id IS NULL ) THEN
15463 IF ( p_instance_rec.wip_job_id = l_curr_instance_rec.wip_job_id )
15464 OR ( p_instance_rec.wip_job_id = fnd_api.g_miss_num ) THEN
15465 l_ins_hist_csr.old_wip_job_id := NULL;
15466 l_ins_hist_csr.new_wip_job_id := NULL;
15467 ELSE
15468 l_ins_hist_csr.old_wip_job_id := fnd_api.g_miss_num;
15469 l_ins_hist_csr.new_wip_job_id := p_instance_rec.wip_job_id;
15470 END IF;
15471 ELSE
15472 l_ins_hist_csr.old_wip_job_id := fnd_api.g_miss_num;
15473 l_ins_hist_csr.new_wip_job_id := p_instance_rec.wip_job_id;
15474 END IF;
15475 --
15476 IF ( l_ins_hist_csr.old_po_order_line_id IS NULL
15477 AND l_ins_hist_csr.new_po_order_line_id IS NULL ) THEN
15478 IF ( p_instance_rec.po_order_line_id = l_curr_instance_rec.po_order_line_id )
15479 OR ( p_instance_rec.po_order_line_id = fnd_api.g_miss_num ) THEN
15480 l_ins_hist_csr.old_po_order_line_id := NULL;
15481 l_ins_hist_csr.new_po_order_line_id := NULL;
15482 ELSE
15483 l_ins_hist_csr.old_po_order_line_id := fnd_api.g_miss_num;
15484 l_ins_hist_csr.new_po_order_line_id := p_instance_rec.po_order_line_id;
15485 END IF;
15486 ELSE
15487 l_ins_hist_csr.old_po_order_line_id := fnd_api.g_miss_num;
15488 l_ins_hist_csr.new_po_order_line_id := p_instance_rec.po_order_line_id;
15489 END IF;
15490 --
15491 IF ( l_ins_hist_csr.old_completeness_flag IS NULL
15492 AND l_ins_hist_csr.new_completeness_flag IS NULL ) THEN
15493 IF ( p_instance_rec.completeness_flag = l_curr_instance_rec.completeness_flag )
15494 OR ( p_instance_rec.completeness_flag = fnd_api.g_miss_char ) THEN
15495 l_ins_hist_csr.old_completeness_flag := NULL;
15496 l_ins_hist_csr.new_completeness_flag := NULL;
15497 ELSE
15498 l_ins_hist_csr.old_completeness_flag := fnd_api.g_miss_char;
15499 l_ins_hist_csr.new_completeness_flag := p_instance_rec.completeness_flag;
15500 END IF;
15501 ELSE
15502 l_ins_hist_csr.old_completeness_flag := fnd_api.g_miss_char;
15503 l_ins_hist_csr.new_completeness_flag := p_instance_rec.completeness_flag;
15504 END IF;
15505 --
15506 IF ( l_ins_hist_csr.old_context IS NULL
15507 AND l_ins_hist_csr.new_context IS NULL ) THEN
15508 IF ( p_instance_rec.context = l_curr_instance_rec.context )
15509 OR ( p_instance_rec.context = fnd_api.g_miss_char ) THEN
15510 l_ins_hist_csr.old_context := NULL;
15511 l_ins_hist_csr.new_context := NULL;
15512 ELSE
15513 l_ins_hist_csr.old_context := fnd_api.g_miss_char;
15514 l_ins_hist_csr.new_context := p_instance_rec.context;
15515 END IF;
15516 ELSE
15517 l_ins_hist_csr.old_context := fnd_api.g_miss_char;
15518 l_ins_hist_csr.new_context := p_instance_rec.context;
15519 END IF;
15520 --
15521 IF ( l_ins_hist_csr.old_attribute1 IS NULL
15522 AND l_ins_hist_csr.new_attribute1 IS NULL ) THEN
15523 IF ( p_instance_rec.attribute1 = l_curr_instance_rec.attribute1 )
15524 OR ( p_instance_rec.attribute1 = fnd_api.g_miss_char ) THEN
15525 l_ins_hist_csr.old_attribute1 := NULL;
15526 l_ins_hist_csr.new_attribute1 := NULL;
15527 ELSE
15528 l_ins_hist_csr.old_attribute1 := fnd_api.g_miss_char;
15529 l_ins_hist_csr.new_attribute1 := p_instance_rec.attribute1;
15530 END IF;
15531 ELSE
15532 l_ins_hist_csr.old_attribute1 := fnd_api.g_miss_char;
15533 l_ins_hist_csr.new_attribute1 := p_instance_rec.attribute1;
15534 END IF;
15535 --
15536 IF ( l_ins_hist_csr.old_attribute2 IS NULL
15537 AND l_ins_hist_csr.new_attribute2 IS NULL ) THEN
15538 IF ( p_instance_rec.attribute2 = l_curr_instance_rec.attribute2 )
15539 OR ( p_instance_rec.attribute2 = fnd_api.g_miss_char ) THEN
15540 l_ins_hist_csr.old_attribute2 := NULL;
15541 l_ins_hist_csr.new_attribute2 := NULL;
15542 ELSE
15543 l_ins_hist_csr.old_attribute2 := fnd_api.g_miss_char;
15544 l_ins_hist_csr.new_attribute2 := p_instance_rec.attribute2;
15545 END IF;
15546 ELSE
15547 l_ins_hist_csr.old_attribute2 := fnd_api.g_miss_char;
15548 l_ins_hist_csr.new_attribute2 := p_instance_rec.attribute2;
15549 END IF;
15550 --
15551 IF ( l_ins_hist_csr.old_attribute3 IS NULL
15552 AND l_ins_hist_csr.new_attribute3 IS NULL ) THEN
15553 IF ( p_instance_rec.attribute3 = l_curr_instance_rec.attribute3 )
15554 OR ( p_instance_rec.attribute3 = fnd_api.g_miss_char ) THEN
15555 l_ins_hist_csr.old_attribute3 := NULL;
15556 l_ins_hist_csr.new_attribute3 := NULL;
15557 ELSE
15558 l_ins_hist_csr.old_attribute3 := fnd_api.g_miss_char;
15559 l_ins_hist_csr.new_attribute3 := p_instance_rec.attribute3;
15560 END IF;
15561 ELSE
15562 l_ins_hist_csr.old_attribute3 := fnd_api.g_miss_char;
15563 l_ins_hist_csr.new_attribute3 := p_instance_rec.attribute3;
15564 END IF;
15565 --
15566 IF ( l_ins_hist_csr.old_attribute4 IS NULL
15567 AND l_ins_hist_csr.new_attribute4 IS NULL ) THEN
15568 IF ( p_instance_rec.attribute4 = l_curr_instance_rec.attribute4 )
15569 OR ( p_instance_rec.attribute4 = fnd_api.g_miss_char ) THEN
15570 l_ins_hist_csr.old_attribute4 := NULL;
15571 l_ins_hist_csr.new_attribute4 := NULL;
15572 ELSE
15573 l_ins_hist_csr.old_attribute4 := fnd_api.g_miss_char;
15574 l_ins_hist_csr.new_attribute4 := p_instance_rec.attribute4;
15575 END IF;
15576 ELSE
15577 l_ins_hist_csr.old_attribute4 := fnd_api.g_miss_char;
15578 l_ins_hist_csr.new_attribute4 := p_instance_rec.attribute4;
15579 END IF;
15580 --
15581 IF ( l_ins_hist_csr.old_attribute5 IS NULL
15582 AND l_ins_hist_csr.new_attribute5 IS NULL ) THEN
15583 IF ( p_instance_rec.attribute5 = l_curr_instance_rec.attribute5 )
15584 OR ( p_instance_rec.attribute5 = fnd_api.g_miss_char ) THEN
15585 l_ins_hist_csr.old_attribute5 := NULL;
15586 l_ins_hist_csr.new_attribute5 := NULL;
15587 ELSE
15588 l_ins_hist_csr.old_attribute5 := fnd_api.g_miss_char;
15589 l_ins_hist_csr.new_attribute5 := p_instance_rec.attribute5;
15590 END IF;
15591 ELSE
15592 l_ins_hist_csr.old_attribute5 := fnd_api.g_miss_char;
15593 l_ins_hist_csr.new_attribute5 := p_instance_rec.attribute5;
15594 END IF;
15595 --
15596 IF ( l_ins_hist_csr.old_attribute6 IS NULL
15597 AND l_ins_hist_csr.new_attribute6 IS NULL ) THEN
15598 IF ( p_instance_rec.attribute6 = l_curr_instance_rec.attribute6 )
15599 OR ( p_instance_rec.attribute6 = fnd_api.g_miss_char ) THEN
15600 l_ins_hist_csr.old_attribute6 := NULL;
15601 l_ins_hist_csr.new_attribute6 := NULL;
15602 ELSE
15603 l_ins_hist_csr.old_attribute6 := fnd_api.g_miss_char;
15604 l_ins_hist_csr.new_attribute6 := p_instance_rec.attribute6;
15605 END IF;
15606 ELSE
15607 l_ins_hist_csr.old_attribute6 := fnd_api.g_miss_char;
15608 l_ins_hist_csr.new_attribute6 := p_instance_rec.attribute6;
15609 END IF;
15610 --
15611 IF ( l_ins_hist_csr.old_attribute7 IS NULL
15612 AND l_ins_hist_csr.new_attribute7 IS NULL ) THEN
15613 IF ( p_instance_rec.attribute7 = l_curr_instance_rec.attribute7 )
15614 OR ( p_instance_rec.attribute7 = fnd_api.g_miss_char ) THEN
15615 l_ins_hist_csr.old_attribute7 := NULL;
15616 l_ins_hist_csr.new_attribute7 := NULL;
15617 ELSE
15618 l_ins_hist_csr.old_attribute7 := fnd_api.g_miss_char;
15619 l_ins_hist_csr.new_attribute7 := p_instance_rec.attribute7;
15620 END IF;
15621 ELSE
15622 l_ins_hist_csr.old_attribute7 := fnd_api.g_miss_char;
15623 l_ins_hist_csr.new_attribute7 := p_instance_rec.attribute7;
15624 END IF;
15625 --
15626 IF ( l_ins_hist_csr.old_attribute8 IS NULL
15627 AND l_ins_hist_csr.new_attribute8 IS NULL ) THEN
15628 IF ( p_instance_rec.attribute8 = l_curr_instance_rec.attribute8 )
15629 OR ( p_instance_rec.attribute8 = fnd_api.g_miss_char ) THEN
15630 l_ins_hist_csr.old_attribute8 := NULL;
15631 l_ins_hist_csr.new_attribute8 := NULL;
15632 ELSE
15633 l_ins_hist_csr.old_attribute8 := fnd_api.g_miss_char;
15634 l_ins_hist_csr.new_attribute8 := p_instance_rec.attribute8;
15635 END IF;
15636 ELSE
15637 l_ins_hist_csr.old_attribute8 := fnd_api.g_miss_char;
15638 l_ins_hist_csr.new_attribute8 := p_instance_rec.attribute8;
15639 END IF;
15640 --
15641 IF ( l_ins_hist_csr.old_attribute9 IS NULL
15642 AND l_ins_hist_csr.new_attribute9 IS NULL ) THEN
15643 IF ( p_instance_rec.attribute9 = l_curr_instance_rec.attribute9 )
15644 OR ( p_instance_rec.attribute9 = fnd_api.g_miss_char ) THEN
15645 l_ins_hist_csr.old_attribute9 := NULL;
15646 l_ins_hist_csr.new_attribute9 := NULL;
15647 ELSE
15648 l_ins_hist_csr.old_attribute9 := fnd_api.g_miss_char;
15649 l_ins_hist_csr.new_attribute9 := p_instance_rec.attribute9;
15650 END IF;
15651 ELSE
15652 l_ins_hist_csr.old_attribute9 := fnd_api.g_miss_char;
15653 l_ins_hist_csr.new_attribute9 := p_instance_rec.attribute9;
15654 END IF;
15655 --
15656 IF ( l_ins_hist_csr.old_attribute10 IS NULL
15657 AND l_ins_hist_csr.new_attribute10 IS NULL ) THEN
15658 IF ( p_instance_rec.attribute10 = l_curr_instance_rec.attribute10 )
15659 OR ( p_instance_rec.attribute10 = fnd_api.g_miss_char ) THEN
15660 l_ins_hist_csr.old_attribute10 := NULL;
15661 l_ins_hist_csr.new_attribute10 := NULL;
15662 ELSE
15663 l_ins_hist_csr.old_attribute10 := fnd_api.g_miss_char;
15664 l_ins_hist_csr.new_attribute10 := p_instance_rec.attribute10;
15665 END IF;
15666 ELSE
15667 l_ins_hist_csr.old_attribute10 := fnd_api.g_miss_char;
15668 l_ins_hist_csr.new_attribute10 := p_instance_rec.attribute10;
15669 END IF;
15670 --
15671 IF ( l_ins_hist_csr.old_attribute11 IS NULL
15672 AND l_ins_hist_csr.new_attribute11 IS NULL ) THEN
15673 IF ( p_instance_rec.attribute11 = l_curr_instance_rec.attribute11 )
15674 OR ( p_instance_rec.attribute11 = fnd_api.g_miss_char ) THEN
15675 l_ins_hist_csr.old_attribute11 := NULL;
15676 l_ins_hist_csr.new_attribute11 := NULL;
15677 ELSE
15678 l_ins_hist_csr.old_attribute11 := fnd_api.g_miss_char;
15679 l_ins_hist_csr.new_attribute11 := p_instance_rec.attribute11;
15680 END IF;
15681 ELSE
15682 l_ins_hist_csr.old_attribute11 := fnd_api.g_miss_char;
15683 l_ins_hist_csr.new_attribute11 := p_instance_rec.attribute11;
15684 END IF;
15685 --
15686 IF ( l_ins_hist_csr.old_attribute12 IS NULL
15687 AND l_ins_hist_csr.new_attribute12 IS NULL ) THEN
15688 IF ( p_instance_rec.attribute12 = l_curr_instance_rec.attribute12 )
15689 OR ( p_instance_rec.attribute12 = fnd_api.g_miss_char ) THEN
15690 l_ins_hist_csr.old_attribute12 := NULL;
15691 l_ins_hist_csr.new_attribute12 := NULL;
15692 ELSE
15693 l_ins_hist_csr.old_attribute12 := fnd_api.g_miss_char;
15694 l_ins_hist_csr.new_attribute12 := p_instance_rec.attribute12;
15695 END IF;
15696 ELSE
15697 l_ins_hist_csr.old_attribute12 := fnd_api.g_miss_char;
15698 l_ins_hist_csr.new_attribute12 := p_instance_rec.attribute12;
15699 END IF;
15700 --
15701 IF ( l_ins_hist_csr.old_attribute13 IS NULL
15702 AND l_ins_hist_csr.new_attribute13 IS NULL ) THEN
15703 IF ( p_instance_rec.attribute13 = l_curr_instance_rec.attribute13 )
15704 OR ( p_instance_rec.attribute13 = fnd_api.g_miss_char ) THEN
15705 l_ins_hist_csr.old_attribute13 := NULL;
15706 l_ins_hist_csr.new_attribute13 := NULL;
15707 ELSE
15708 l_ins_hist_csr.old_attribute13 := fnd_api.g_miss_char;
15709 l_ins_hist_csr.new_attribute13 := p_instance_rec.attribute13;
15710 END IF;
15711 ELSE
15712 l_ins_hist_csr.old_attribute13 := fnd_api.g_miss_char;
15713 l_ins_hist_csr.new_attribute13 := p_instance_rec.attribute13;
15714 END IF;
15715 --
15716 IF ( l_ins_hist_csr.old_attribute14 IS NULL
15717 AND l_ins_hist_csr.new_attribute14 IS NULL ) THEN
15718 IF ( p_instance_rec.attribute14 = l_curr_instance_rec.attribute14 )
15719 OR ( p_instance_rec.attribute14 = fnd_api.g_miss_char ) THEN
15720 l_ins_hist_csr.old_attribute14 := NULL;
15721 l_ins_hist_csr.new_attribute14 := NULL;
15722 ELSE
15723 l_ins_hist_csr.old_attribute14 := fnd_api.g_miss_char;
15724 l_ins_hist_csr.new_attribute14 := p_instance_rec.attribute14;
15725 END IF;
15726 ELSE
15727 l_ins_hist_csr.old_attribute14 := fnd_api.g_miss_char;
15728 l_ins_hist_csr.new_attribute14 := p_instance_rec.attribute14;
15729 END IF;
15730 --
15731 IF ( l_ins_hist_csr.old_attribute15 IS NULL
15732 AND l_ins_hist_csr.new_attribute15 IS NULL ) THEN
15733 IF ( p_instance_rec.attribute15 = l_curr_instance_rec.attribute15 )
15734 OR ( p_instance_rec.attribute15 = fnd_api.g_miss_char ) THEN
15735 l_ins_hist_csr.old_attribute15 := NULL;
15736 l_ins_hist_csr.new_attribute15 := NULL;
15737 ELSE
15738 l_ins_hist_csr.old_attribute15 := fnd_api.g_miss_char;
15739 l_ins_hist_csr.new_attribute15 := p_instance_rec.attribute15;
15740 END IF;
15741 ELSE
15742 l_ins_hist_csr.old_attribute15 := fnd_api.g_miss_char;
15743 l_ins_hist_csr.new_attribute15 := p_instance_rec.attribute15;
15744 END IF;
15745 --
15746 IF ( l_ins_hist_csr.old_inst_loc_type_code IS NULL
15747 AND l_ins_hist_csr.new_inst_loc_type_code IS NULL ) THEN
15748 IF ( p_instance_rec.install_location_type_code = l_curr_instance_rec.install_location_type_code )
15749 OR ( p_instance_rec.install_location_type_code = fnd_api.g_miss_char ) THEN
15750 l_ins_hist_csr.old_inst_loc_type_code := NULL;
15751 l_ins_hist_csr.new_inst_loc_type_code := NULL;
15752 ELSE
15753 l_ins_hist_csr.old_inst_loc_type_code := l_curr_instance_rec.install_location_type_code; --fnd_api.g_miss_char;
15754 l_ins_hist_csr.new_inst_loc_type_code := p_instance_rec.install_location_type_code;
15755 END IF;
15756 ELSE
15757 l_ins_hist_csr.old_inst_loc_type_code := fnd_api.g_miss_char;
15758 l_ins_hist_csr.new_inst_loc_type_code := p_instance_rec.install_location_type_code;
15759 END IF;
15760 --
15761 IF ( l_ins_hist_csr.old_inst_loc_id IS NULL
15762 AND l_ins_hist_csr.new_inst_loc_id IS NULL ) THEN
15763 IF ( p_instance_rec.install_location_id = l_curr_instance_rec.install_location_id )
15764 OR ( p_instance_rec.install_location_id = fnd_api.g_miss_num ) THEN
15765 l_ins_hist_csr.old_inst_loc_id := NULL;
15766 l_ins_hist_csr.new_inst_loc_id := NULL;
15767 ELSE
15768 l_ins_hist_csr.old_inst_loc_id := l_curr_instance_rec.install_location_id; --fnd_api.g_miss_num;
15769 l_ins_hist_csr.new_inst_loc_id := p_instance_rec.install_location_id;
15770 END IF;
15771 ELSE
15772 l_ins_hist_csr.old_inst_loc_id := fnd_api.g_miss_num;
15773 l_ins_hist_csr.new_inst_loc_id := p_instance_rec.install_location_id;
15774 END IF;
15775 --
15776 IF ( l_ins_hist_csr.old_inst_usage_code IS NULL
15777 AND l_ins_hist_csr.new_inst_usage_code IS NULL ) THEN
15778 IF ( p_instance_rec.instance_usage_code = l_curr_instance_rec.instance_usage_code )
15779 OR ( p_instance_rec.instance_usage_code = fnd_api.g_miss_char ) THEN
15780 l_ins_hist_csr.old_inst_usage_code := NULL;
15781 l_ins_hist_csr.new_inst_usage_code := NULL;
15782 ELSE
15783 l_ins_hist_csr.old_inst_usage_code := fnd_api.g_miss_char;
15784 l_ins_hist_csr.new_inst_usage_code := p_instance_rec.instance_usage_code;
15785 END IF;
15786 ELSE
15787 l_ins_hist_csr.old_inst_usage_code := fnd_api.g_miss_char;
15788 l_ins_hist_csr.new_inst_usage_code := p_instance_rec.instance_usage_code;
15789 END IF;
15790 --
15791 IF ( l_ins_hist_csr.old_last_vld_organization_id IS NULL
15792 AND l_ins_hist_csr.new_last_vld_organization_id IS NULL ) THEN
15793 IF ( p_instance_rec.vld_organization_id = l_curr_instance_rec.last_vld_organization_id )
15794 OR ( p_instance_rec.vld_organization_id = fnd_api.g_miss_num ) THEN
15795 l_ins_hist_csr.old_last_vld_organization_id := NULL;
15796 l_ins_hist_csr.new_last_vld_organization_id := NULL;
15797 ELSE
15798 l_ins_hist_csr.old_last_vld_organization_id := fnd_api.g_miss_num;
15799 l_ins_hist_csr.new_last_vld_organization_id := p_instance_rec.vld_organization_id;
15800 END IF;
15801 ELSE
15802 l_ins_hist_csr.old_last_vld_organization_id := fnd_api.g_miss_num;
15803 l_ins_hist_csr.new_last_vld_organization_id := p_instance_rec.vld_organization_id;
15804 END IF;
15805 IF ( l_ins_hist_csr.old_config_inst_rev_num IS NULL
15806 AND l_ins_hist_csr.new_config_inst_rev_num IS NULL ) THEN
15807 IF ( p_instance_rec.config_inst_rev_num = l_curr_instance_rec.config_inst_rev_num )
15808 OR ( p_instance_rec.config_inst_rev_num = fnd_api.g_miss_num ) THEN
15809 l_ins_hist_csr.old_config_inst_rev_num := NULL;
15810 l_ins_hist_csr.new_config_inst_rev_num := NULL;
15811 ELSE
15812 l_ins_hist_csr.old_config_inst_rev_num := fnd_api.g_miss_num;
15813 l_ins_hist_csr.new_config_inst_rev_num := p_instance_rec.config_inst_rev_num;
15814 END IF;
15815 ELSE
15816 l_ins_hist_csr.old_config_inst_rev_num := fnd_api.g_miss_num;
15817 l_ins_hist_csr.new_config_inst_rev_num := p_instance_rec.config_inst_rev_num;
15818 END IF;
15819 --
15820 IF ( l_ins_hist_csr.old_config_valid_status IS NULL
15821 AND l_ins_hist_csr.new_config_valid_status IS NULL ) THEN
15822 IF ( p_instance_rec.config_valid_status = l_curr_instance_rec.config_valid_status )
15823 OR ( p_instance_rec.config_valid_status = fnd_api.g_miss_char ) THEN
15824 l_ins_hist_csr.old_config_valid_status := NULL;
15825 l_ins_hist_csr.new_config_valid_status := NULL;
15826 ELSE
15827 l_ins_hist_csr.old_config_valid_status := fnd_api.g_miss_char;
15828 l_ins_hist_csr.new_config_valid_status := p_instance_rec.config_valid_status;
15829 END IF;
15830 ELSE
15831 l_ins_hist_csr.old_config_valid_status := fnd_api.g_miss_char;
15832 l_ins_hist_csr.new_config_valid_status := p_instance_rec.config_valid_status;
15833 END IF;
15834 --
15835 IF ( l_ins_hist_csr.old_instance_description IS NULL
15836 AND l_ins_hist_csr.new_instance_description IS NULL ) THEN
15837 IF ( p_instance_rec.instance_description = l_curr_instance_rec.instance_description )
15838 OR ( p_instance_rec.instance_description = fnd_api.g_miss_char ) THEN
15839 l_ins_hist_csr.old_instance_description := NULL;
15840 l_ins_hist_csr.new_instance_description := NULL;
15841 ELSE
15842 l_ins_hist_csr.old_instance_description := fnd_api.g_miss_char;
15843 l_ins_hist_csr.new_instance_description := p_instance_rec.instance_description;
15844 END IF;
15845 ELSE
15846 l_ins_hist_csr.old_instance_description := fnd_api.g_miss_char;
15847 l_ins_hist_csr.new_instance_description := p_instance_rec.instance_description;
15848 END IF;
15849 --
15850 -- added for bug 2671179
15851
15852
15853 IF ( l_ins_hist_csr.old_install_date IS NULL
15854 AND l_ins_hist_csr.new_install_date IS NULL ) THEN
15855 IF ( p_instance_rec.install_date = l_curr_instance_rec.install_date )
15856 OR ( p_instance_rec.install_date = fnd_api.g_miss_date ) THEN
15857 l_ins_hist_csr.old_install_date := fnd_api.g_miss_date; --jan15
15858 l_ins_hist_csr.new_install_date := fnd_api.g_miss_date; --jan15
15859 ELSE
15860 l_ins_hist_csr.old_install_date := fnd_api.g_miss_date;
15861 l_ins_hist_csr.new_install_date := p_instance_rec.install_date;
15862 END IF;
15863 ELSE
15864 l_ins_hist_csr.old_install_date := fnd_api.g_miss_date;
15865 l_ins_hist_csr.new_install_date := p_instance_rec.install_date;
15866 END IF;
15867
15868
15869 IF ( l_ins_hist_csr.old_return_by_date IS NULL
15870 AND l_ins_hist_csr.new_return_by_date IS NULL ) THEN
15871 IF ( p_instance_rec.return_by_date = l_curr_instance_rec.return_by_date)
15872 OR ( p_instance_rec.return_by_date = fnd_api.g_miss_date ) THEN
15873 l_ins_hist_csr.old_return_by_date := fnd_api.g_miss_date; --jan15
15874 l_ins_hist_csr.new_return_by_date := fnd_api.g_miss_date; --jan15
15875 ELSE
15876 l_ins_hist_csr.old_return_by_date := fnd_api.g_miss_date;
15877 l_ins_hist_csr.new_return_by_date := p_instance_rec.return_by_date;
15878 END IF;
15879 ELSE
15880 l_ins_hist_csr.old_return_by_date := fnd_api.g_miss_date;
15881 l_ins_hist_csr.new_return_by_date := p_instance_rec.return_by_date;
15882 END IF;
15883
15884
15885 IF ( l_ins_hist_csr.old_actual_return_date IS NULL
15886 AND l_ins_hist_csr.new_actual_return_date IS NULL ) THEN
15887 IF ( p_instance_rec.actual_return_date = l_curr_instance_rec.actual_return_date)
15888 OR ( p_instance_rec.actual_return_date = fnd_api.g_miss_date ) THEN
15889 l_ins_hist_csr.old_actual_return_date := fnd_api.g_miss_date; --jan15
15890 l_ins_hist_csr.new_actual_return_date := fnd_api.g_miss_date; --jan15
15891 ELSE
15892 l_ins_hist_csr.old_actual_return_date := fnd_api.g_miss_date;
15893 l_ins_hist_csr.new_actual_return_date := p_instance_rec.actual_return_date;
15894 END IF;
15895 ELSE
15896 l_ins_hist_csr.old_actual_return_date := fnd_api.g_miss_date;
15897 l_ins_hist_csr.new_actual_return_date := p_instance_rec.actual_return_date;
15898 END IF;
15899 --start of code for eam integration--
15900 --
15901 IF ( l_ins_hist_csr.old_network_asset_flag IS NULL
15902 AND l_ins_hist_csr.new_network_asset_flag IS NULL ) THEN
15903 IF ( p_instance_rec.network_asset_flag = l_curr_instance_rec.network_asset_flag )
15904 OR ( p_instance_rec.network_asset_flag = fnd_api.g_miss_char ) THEN
15905 l_ins_hist_csr.old_network_asset_flag := NULL;
15906 l_ins_hist_csr.new_network_asset_flag := NULL;
15907 ELSE
15908 l_ins_hist_csr.old_network_asset_flag := fnd_api.g_miss_char;
15909 l_ins_hist_csr.new_network_asset_flag := p_instance_rec.network_asset_flag;
15910 END IF;
15911 ELSE
15912 l_ins_hist_csr.old_network_asset_flag := fnd_api.g_miss_char;
15913 l_ins_hist_csr.new_network_asset_flag := p_instance_rec.network_asset_flag;
15914 END IF;
15915 --
15916 IF ( l_ins_hist_csr.old_maintainable_flag IS NULL
15917 AND l_ins_hist_csr.new_maintainable_flag IS NULL ) THEN
15918 IF ( p_instance_rec.maintainable_flag = l_curr_instance_rec.maintainable_flag )
15919 OR ( p_instance_rec.maintainable_flag = fnd_api.g_miss_char ) THEN
15920 l_ins_hist_csr.old_maintainable_flag := NULL;
15921 l_ins_hist_csr.new_maintainable_flag := NULL;
15922 ELSE
15923 l_ins_hist_csr.old_maintainable_flag := fnd_api.g_miss_char;
15924 l_ins_hist_csr.new_maintainable_flag := p_instance_rec.maintainable_flag;
15925 END IF;
15926 ELSE
15927 l_ins_hist_csr.old_maintainable_flag := fnd_api.g_miss_char;
15928 l_ins_hist_csr.new_maintainable_flag := p_instance_rec.maintainable_flag;
15929 END IF;
15930 --
15931 IF ( l_ins_hist_csr.old_pn_location_id IS NULL
15932 AND l_ins_hist_csr.new_pn_location_id IS NULL ) THEN
15933 IF ( p_instance_rec.pn_location_id = l_curr_instance_rec.pn_location_id )
15934 OR ( p_instance_rec.pn_location_id = fnd_api.g_miss_num ) THEN
15935 l_ins_hist_csr.old_pn_location_id := NULL;
15936 l_ins_hist_csr.new_pn_location_id := NULL;
15937 ELSE
15938 l_ins_hist_csr.old_pn_location_id := fnd_api.g_miss_num;
15939 l_ins_hist_csr.new_pn_location_id := p_instance_rec.pn_location_id;
15940 END IF;
15941 ELSE
15942 l_ins_hist_csr.old_pn_location_id := fnd_api.g_miss_num;
15943 l_ins_hist_csr.new_pn_location_id := p_instance_rec.pn_location_id;
15944 END IF;
15945 --
15946 IF ( l_ins_hist_csr.old_asset_criticality_code IS NULL
15947 AND l_ins_hist_csr.new_asset_criticality_code IS NULL ) THEN
15948 IF ( p_instance_rec.asset_criticality_code = l_curr_instance_rec.asset_criticality_code )
15949 OR ( p_instance_rec.asset_criticality_code = fnd_api.g_miss_char ) THEN
15950 l_ins_hist_csr.old_asset_criticality_code := NULL;
15951 l_ins_hist_csr.new_asset_criticality_code := NULL;
15952 ELSE
15953 l_ins_hist_csr.old_asset_criticality_code := fnd_api.g_miss_char;
15954 l_ins_hist_csr.new_asset_criticality_code := p_instance_rec.asset_criticality_code;
15955 END IF;
15956 ELSE
15957 l_ins_hist_csr.old_asset_criticality_code := fnd_api.g_miss_char;
15958 l_ins_hist_csr.new_asset_criticality_code := p_instance_rec.asset_criticality_code;
15959 END IF;
15960 --
15961 IF ( l_ins_hist_csr.old_category_id IS NULL
15962 AND l_ins_hist_csr.new_category_id IS NULL ) THEN
15963 IF ( p_instance_rec.category_id = l_curr_instance_rec.category_id )
15964 OR ( p_instance_rec.category_id = fnd_api.g_miss_num ) THEN
15965 l_ins_hist_csr.old_category_id := NULL;
15966 l_ins_hist_csr.new_category_id := NULL;
15967 ELSE
15968 l_ins_hist_csr.old_category_id := fnd_api.g_miss_num;
15969 l_ins_hist_csr.new_category_id := p_instance_rec.category_id;
15970 END IF;
15971 ELSE
15972 l_ins_hist_csr.old_category_id := fnd_api.g_miss_num;
15973 l_ins_hist_csr.new_category_id := p_instance_rec.category_id;
15974 END IF;
15975 --
15976 IF ( l_ins_hist_csr.old_equipment_gen_object_id IS NULL
15977 AND l_ins_hist_csr.new_equipment_gen_object_id IS NULL ) THEN
15978 IF ( p_instance_rec.equipment_gen_object_id = l_curr_instance_rec.equipment_gen_object_id )
15979 OR ( p_instance_rec.equipment_gen_object_id = fnd_api.g_miss_num ) THEN
15980 l_ins_hist_csr.old_equipment_gen_object_id := NULL;
15981 l_ins_hist_csr.new_equipment_gen_object_id := NULL;
15982 ELSE
15983 l_ins_hist_csr.old_equipment_gen_object_id := fnd_api.g_miss_num;
15984 l_ins_hist_csr.new_equipment_gen_object_id := p_instance_rec.equipment_gen_object_id;
15985 END IF;
15986 ELSE
15987 l_ins_hist_csr.old_equipment_gen_object_id := fnd_api.g_miss_num;
15988 l_ins_hist_csr.new_equipment_gen_object_id := p_instance_rec.equipment_gen_object_id;
15989 END IF;
15990 --
15991 IF ( l_ins_hist_csr.old_instantiation_flag IS NULL
15992 AND l_ins_hist_csr.new_instantiation_flag IS NULL ) THEN
15993 IF ( p_instance_rec.instantiation_flag = l_curr_instance_rec.instantiation_flag )
15994 OR ( p_instance_rec.instantiation_flag = fnd_api.g_miss_char ) THEN
15995 l_ins_hist_csr.old_instantiation_flag := NULL;
15996 l_ins_hist_csr.new_instantiation_flag := NULL;
15997 ELSE
15998 l_ins_hist_csr.old_instantiation_flag := fnd_api.g_miss_char;
15999 l_ins_hist_csr.new_instantiation_flag := p_instance_rec.instantiation_flag;
16000 END IF;
16001 ELSE
16002 l_ins_hist_csr.old_instantiation_flag := fnd_api.g_miss_char;
16003 l_ins_hist_csr.new_instantiation_flag := p_instance_rec.instantiation_flag;
16004 END IF;
16005 --
16006 IF ( l_ins_hist_csr.old_linear_location_id IS NULL
16007 AND l_ins_hist_csr.new_linear_location_id IS NULL ) THEN
16008 IF ( p_instance_rec.linear_location_id = l_curr_instance_rec.linear_location_id )
16009 OR ( p_instance_rec.linear_location_id = fnd_api.g_miss_num ) THEN
16010 l_ins_hist_csr.old_linear_location_id := NULL;
16011 l_ins_hist_csr.new_linear_location_id := NULL;
16012 ELSE
16013 l_ins_hist_csr.old_linear_location_id := fnd_api.g_miss_num;
16014 l_ins_hist_csr.new_linear_location_id := p_instance_rec.linear_location_id;
16015 END IF;
16016 ELSE
16017 l_ins_hist_csr.old_linear_location_id := fnd_api.g_miss_num;
16018 l_ins_hist_csr.new_linear_location_id := p_instance_rec.linear_location_id;
16019 END IF;
16020
16021 IF ( l_ins_hist_csr.old_operational_log_flag IS NULL
16022 AND l_ins_hist_csr.new_operational_log_flag IS NULL ) THEN
16023 IF ( p_instance_rec.operational_log_flag = l_curr_instance_rec.operational_log_flag )
16024 OR ( p_instance_rec.operational_log_flag = fnd_api.g_miss_char ) THEN
16025 l_ins_hist_csr.old_operational_log_flag := NULL;
16026 l_ins_hist_csr.new_operational_log_flag := NULL;
16027 ELSE
16028 l_ins_hist_csr.old_operational_log_flag := fnd_api.g_miss_char;
16029 l_ins_hist_csr.new_operational_log_flag := p_instance_rec.operational_log_flag;
16030 END IF;
16031 ELSE
16032 l_ins_hist_csr.old_operational_log_flag := fnd_api.g_miss_char;
16033 l_ins_hist_csr.new_operational_log_flag := p_instance_rec.operational_log_flag;
16034 END IF;
16035 --
16036 IF ( l_ins_hist_csr.old_checkin_status IS NULL
16037 AND l_ins_hist_csr.new_checkin_status IS NULL ) THEN
16038 IF ( p_instance_rec.checkin_status = l_curr_instance_rec.checkin_status )
16039 OR ( p_instance_rec.checkin_status = fnd_api.g_miss_num ) THEN
16040 l_ins_hist_csr.old_checkin_status := NULL;
16041 l_ins_hist_csr.new_checkin_status := NULL;
16042 ELSE
16043 l_ins_hist_csr.old_checkin_status := fnd_api.g_miss_num;
16044 l_ins_hist_csr.new_checkin_status := p_instance_rec.checkin_status;
16045 END IF;
16046 ELSE
16047 l_ins_hist_csr.old_checkin_status := fnd_api.g_miss_num;
16048 l_ins_hist_csr.new_checkin_status := p_instance_rec.checkin_status;
16049 END IF;
16050 --
16051 IF ( l_ins_hist_csr.old_supplier_warranty_exp_date IS NULL
16052 AND l_ins_hist_csr.new_supplier_warranty_exp_date IS NULL ) THEN
16053 IF ( p_instance_rec.supplier_warranty_exp_date = l_curr_instance_rec.supplier_warranty_exp_date )
16054 OR ( p_instance_rec.supplier_warranty_exp_date = fnd_api.g_miss_date ) THEN
16055 l_ins_hist_csr.old_supplier_warranty_exp_date := NULL;
16056 l_ins_hist_csr.new_supplier_warranty_exp_date := NULL;
16057 ELSE
16058 l_ins_hist_csr.old_supplier_warranty_exp_date := fnd_api.g_miss_date;
16059 l_ins_hist_csr.new_supplier_warranty_exp_date := p_instance_rec.supplier_warranty_exp_date;
16060 END IF;
16061 ELSE
16062 l_ins_hist_csr.old_supplier_warranty_exp_date := fnd_api.g_miss_date;
16063 l_ins_hist_csr.new_supplier_warranty_exp_date := p_instance_rec.supplier_warranty_exp_date;
16064 END IF;
16065
16066 --
16067
16068 IF ( l_ins_hist_csr.old_attribute16 IS NULL
16069 AND l_ins_hist_csr.new_attribute16 IS NULL ) THEN
16070 IF ( p_instance_rec.attribute16 = l_curr_instance_rec.attribute16 )
16071 OR ( p_instance_rec.attribute16 = fnd_api.g_miss_char ) THEN
16072 l_ins_hist_csr.old_attribute16 := NULL;
16073 l_ins_hist_csr.new_attribute16 := NULL;
16074 ELSE
16075 l_ins_hist_csr.old_attribute16 := fnd_api.g_miss_char;
16076 l_ins_hist_csr.new_attribute16 := p_instance_rec.attribute16;
16077 END IF;
16078 ELSE
16079 l_ins_hist_csr.old_attribute16 := fnd_api.g_miss_char;
16080 l_ins_hist_csr.new_attribute16 := p_instance_rec.attribute16;
16081 END IF;
16082 --
16083 IF ( l_ins_hist_csr.old_attribute17 IS NULL
16084 AND l_ins_hist_csr.new_attribute17 IS NULL ) THEN
16085 IF ( p_instance_rec.attribute17 = l_curr_instance_rec.attribute17 )
16086 OR ( p_instance_rec.attribute17 = fnd_api.g_miss_char ) THEN
16087 l_ins_hist_csr.old_attribute17 := NULL;
16088 l_ins_hist_csr.new_attribute17 := NULL;
16089 ELSE
16090 l_ins_hist_csr.old_attribute17 := fnd_api.g_miss_char;
16091 l_ins_hist_csr.new_attribute17 := p_instance_rec.attribute17;
16092 END IF;
16093 ELSE
16094 l_ins_hist_csr.old_attribute17 := fnd_api.g_miss_char;
16095 l_ins_hist_csr.new_attribute17 := p_instance_rec.attribute17;
16096 END IF;
16097
16098 IF ( l_ins_hist_csr.old_attribute18 IS NULL
16099 AND l_ins_hist_csr.new_attribute18 IS NULL ) THEN
16100 IF ( p_instance_rec.attribute18 = l_curr_instance_rec.attribute18 )
16101 OR ( p_instance_rec.attribute18 = fnd_api.g_miss_char ) THEN
16102 l_ins_hist_csr.old_attribute18 := NULL;
16103 l_ins_hist_csr.new_attribute18 := NULL;
16104 ELSE
16105 l_ins_hist_csr.old_attribute18 := fnd_api.g_miss_char;
16106 l_ins_hist_csr.new_attribute18 := p_instance_rec.attribute18;
16107 END IF;
16108 ELSE
16109 l_ins_hist_csr.old_attribute18 := fnd_api.g_miss_char;
16110 l_ins_hist_csr.new_attribute18 := p_instance_rec.attribute18;
16111 END IF;
16112 --
16113 IF ( l_ins_hist_csr.old_attribute19 IS NULL
16114 AND l_ins_hist_csr.new_attribute19 IS NULL ) THEN
16115 IF ( p_instance_rec.attribute19 = l_curr_instance_rec.attribute19 )
16116 OR ( p_instance_rec.attribute19 = fnd_api.g_miss_char ) THEN
16117 l_ins_hist_csr.old_attribute19 := NULL;
16118 l_ins_hist_csr.new_attribute19 := NULL;
16119 ELSE
16120 l_ins_hist_csr.old_attribute19 := fnd_api.g_miss_char;
16121 l_ins_hist_csr.new_attribute19 := p_instance_rec.attribute19;
16122 END IF;
16123 ELSE
16124 l_ins_hist_csr.old_attribute19 := fnd_api.g_miss_char;
16125 l_ins_hist_csr.new_attribute19 := p_instance_rec.attribute19;
16126 END IF;
16127 --
16128 IF ( l_ins_hist_csr.old_attribute20 IS NULL
16129 AND l_ins_hist_csr.new_attribute20 IS NULL ) THEN
16130 IF ( p_instance_rec.attribute20 = l_curr_instance_rec.attribute20 )
16131 OR ( p_instance_rec.attribute20 = fnd_api.g_miss_char ) THEN
16132 l_ins_hist_csr.old_attribute20 := NULL;
16133 l_ins_hist_csr.new_attribute20 := NULL;
16134 ELSE
16135 l_ins_hist_csr.old_attribute20 := fnd_api.g_miss_char;
16136 l_ins_hist_csr.new_attribute20 := p_instance_rec.attribute20;
16137 END IF;
16138 ELSE
16139 l_ins_hist_csr.old_attribute20 := fnd_api.g_miss_char;
16140 l_ins_hist_csr.new_attribute20 := p_instance_rec.attribute20;
16141 END IF;
16142
16143 --
16144 IF ( l_ins_hist_csr.old_attribute21 IS NULL
16145 AND l_ins_hist_csr.new_attribute21 IS NULL ) THEN
16146 IF ( p_instance_rec.attribute21 = l_curr_instance_rec.attribute21 )
16147 OR ( p_instance_rec.attribute21 = fnd_api.g_miss_char ) THEN
16148 l_ins_hist_csr.old_attribute21 := NULL;
16149 l_ins_hist_csr.new_attribute21 := NULL;
16150 ELSE
16151 l_ins_hist_csr.old_attribute21 := fnd_api.g_miss_char;
16152 l_ins_hist_csr.new_attribute21 := p_instance_rec.attribute21;
16153 END IF;
16154 ELSE
16155 l_ins_hist_csr.old_attribute21 := fnd_api.g_miss_char;
16156 l_ins_hist_csr.new_attribute21 := p_instance_rec.attribute21;
16157 END IF;
16158 --
16159 IF ( l_ins_hist_csr.old_attribute22 IS NULL
16160 AND l_ins_hist_csr.new_attribute22 IS NULL ) THEN
16161 IF ( p_instance_rec.attribute22 = l_curr_instance_rec.attribute22 )
16162 OR ( p_instance_rec.attribute22 = fnd_api.g_miss_char ) THEN
16163 l_ins_hist_csr.old_attribute22 := NULL;
16164 l_ins_hist_csr.new_attribute22 := NULL;
16165 ELSE
16166 l_ins_hist_csr.old_attribute22 := fnd_api.g_miss_char;
16167 l_ins_hist_csr.new_attribute22 := p_instance_rec.attribute22;
16168 END IF;
16169 ELSE
16170 l_ins_hist_csr.old_attribute22 := fnd_api.g_miss_char;
16171 l_ins_hist_csr.new_attribute22 := p_instance_rec.attribute22;
16172 END IF;
16173 --
16174 IF ( l_ins_hist_csr.old_attribute23 IS NULL
16175 AND l_ins_hist_csr.new_attribute23 IS NULL ) THEN
16176 IF ( p_instance_rec.attribute23 = l_curr_instance_rec.attribute23 )
16177 OR ( p_instance_rec.attribute23 = fnd_api.g_miss_char ) THEN
16178 l_ins_hist_csr.old_attribute23 := NULL;
16179 l_ins_hist_csr.new_attribute23 := NULL;
16180 ELSE
16181 l_ins_hist_csr.old_attribute23 := fnd_api.g_miss_char;
16182 l_ins_hist_csr.new_attribute23 := p_instance_rec.attribute23;
16183 END IF;
16184 ELSE
16185 l_ins_hist_csr.old_attribute23 := fnd_api.g_miss_char;
16186 l_ins_hist_csr.new_attribute23 := p_instance_rec.attribute23;
16187 END IF;
16188 --
16189 IF ( l_ins_hist_csr.old_attribute24 IS NULL
16190 AND l_ins_hist_csr.new_attribute24 IS NULL ) THEN
16191 IF ( p_instance_rec.attribute24 = l_curr_instance_rec.attribute24 )
16192 OR ( p_instance_rec.attribute24 = fnd_api.g_miss_char ) THEN
16193 l_ins_hist_csr.old_attribute24 := NULL;
16194 l_ins_hist_csr.new_attribute24 := NULL;
16195 ELSE
16196 l_ins_hist_csr.old_attribute24 := fnd_api.g_miss_char;
16197 l_ins_hist_csr.new_attribute24 := p_instance_rec.attribute24;
16198 END IF;
16199 ELSE
16200 l_ins_hist_csr.old_attribute24 := fnd_api.g_miss_char;
16201 l_ins_hist_csr.new_attribute24 := p_instance_rec.attribute24;
16202 END IF;
16203 --
16204 IF ( l_ins_hist_csr.old_attribute25 IS NULL
16205 AND l_ins_hist_csr.new_attribute25 IS NULL ) THEN
16206 IF ( p_instance_rec.attribute25 = l_curr_instance_rec.attribute25 )
16207 OR ( p_instance_rec.attribute25 = fnd_api.g_miss_char ) THEN
16208 l_ins_hist_csr.old_attribute25 := NULL;
16209 l_ins_hist_csr.new_attribute25 := NULL;
16210 ELSE
16211 l_ins_hist_csr.old_attribute25 := fnd_api.g_miss_char;
16212 l_ins_hist_csr.new_attribute25 := p_instance_rec.attribute25;
16213 END IF;
16214 ELSE
16215 l_ins_hist_csr.old_attribute25 := fnd_api.g_miss_char;
16216 l_ins_hist_csr.new_attribute25 := p_instance_rec.attribute25;
16217 END IF;
16218 --
16219 IF ( l_ins_hist_csr.old_attribute26 IS NULL
16220 AND l_ins_hist_csr.new_attribute26 IS NULL ) THEN
16221 IF ( p_instance_rec.attribute26 = l_curr_instance_rec.attribute26 )
16222 OR ( p_instance_rec.attribute26 = fnd_api.g_miss_char ) THEN
16223 l_ins_hist_csr.old_attribute26 := NULL;
16224 l_ins_hist_csr.new_attribute26 := NULL;
16225 ELSE
16226 l_ins_hist_csr.old_attribute26 := fnd_api.g_miss_char;
16227 l_ins_hist_csr.new_attribute26 := p_instance_rec.attribute26;
16228 END IF;
16229 ELSE
16230 l_ins_hist_csr.old_attribute26 := fnd_api.g_miss_char;
16231 l_ins_hist_csr.new_attribute26 := p_instance_rec.attribute26;
16232 END IF;
16233 --
16234 IF ( l_ins_hist_csr.old_attribute27 IS NULL
16235 AND l_ins_hist_csr.new_attribute27 IS NULL ) THEN
16236 IF ( p_instance_rec.attribute27 = l_curr_instance_rec.attribute27 )
16237 OR ( p_instance_rec.attribute27 = fnd_api.g_miss_char ) THEN
16238 l_ins_hist_csr.old_attribute27 := NULL;
16239 l_ins_hist_csr.new_attribute27 := NULL;
16240 ELSE
16241 l_ins_hist_csr.old_attribute27 := fnd_api.g_miss_char;
16242 l_ins_hist_csr.new_attribute27 := p_instance_rec.attribute27;
16243 END IF;
16244 ELSE
16245 l_ins_hist_csr.old_attribute27 := fnd_api.g_miss_char;
16246 l_ins_hist_csr.new_attribute27 := p_instance_rec.attribute27;
16247 END IF;
16248 --
16249 IF ( l_ins_hist_csr.old_attribute28 IS NULL
16250 AND l_ins_hist_csr.new_attribute28 IS NULL ) THEN
16251 IF ( p_instance_rec.attribute28 = l_curr_instance_rec.attribute28 )
16252 OR ( p_instance_rec.attribute28 = fnd_api.g_miss_char ) THEN
16253 l_ins_hist_csr.old_attribute28 := NULL;
16254 l_ins_hist_csr.new_attribute28 := NULL;
16255 ELSE
16256 l_ins_hist_csr.old_attribute28 := fnd_api.g_miss_char;
16257 l_ins_hist_csr.new_attribute28 := p_instance_rec.attribute28;
16258 END IF;
16259 ELSE
16260 l_ins_hist_csr.old_attribute28 := fnd_api.g_miss_char;
16261 l_ins_hist_csr.new_attribute28 := p_instance_rec.attribute28;
16262 END IF;
16263 --
16264 IF ( l_ins_hist_csr.old_attribute29 IS NULL
16265 AND l_ins_hist_csr.new_attribute29 IS NULL ) THEN
16266 IF ( p_instance_rec.attribute29 = l_curr_instance_rec.attribute29 )
16267 OR ( p_instance_rec.attribute29 = fnd_api.g_miss_char ) THEN
16268 l_ins_hist_csr.old_attribute29 := NULL;
16269 l_ins_hist_csr.new_attribute29 := NULL;
16270 ELSE
16271 l_ins_hist_csr.old_attribute29 := fnd_api.g_miss_char;
16272 l_ins_hist_csr.new_attribute29 := p_instance_rec.attribute29;
16273 END IF;
16274 ELSE
16275 l_ins_hist_csr.old_attribute29 := fnd_api.g_miss_char;
16276 l_ins_hist_csr.new_attribute29 := p_instance_rec.attribute29;
16277 END IF;
16278 --
16279 IF ( l_ins_hist_csr.old_attribute30 IS NULL
16280 AND l_ins_hist_csr.new_attribute30 IS NULL ) THEN
16281 IF ( p_instance_rec.attribute30 = l_curr_instance_rec.attribute30 )
16282 OR ( p_instance_rec.attribute30 = fnd_api.g_miss_char ) THEN
16283 l_ins_hist_csr.old_attribute30 := NULL;
16284 l_ins_hist_csr.new_attribute30 := NULL;
16285 ELSE
16286 l_ins_hist_csr.old_attribute30 := fnd_api.g_miss_char;
16287 l_ins_hist_csr.new_attribute30 := p_instance_rec.attribute30;
16288 END IF;
16289 ELSE
16290 l_ins_hist_csr.old_attribute30 := fnd_api.g_miss_char;
16291 l_ins_hist_csr.new_attribute30 := p_instance_rec.attribute30;
16292 END IF;
16293 --
16294 --end of code for eam integration--
16295 -- Addition of columns for FA Integration
16296 IF ( l_ins_hist_csr.old_purchase_unit_price IS NULL
16297 AND l_ins_hist_csr.new_purchase_unit_price IS NULL ) THEN
16298 IF ( p_instance_rec.purchase_unit_price = l_curr_instance_rec.purchase_unit_price )
16299 OR ( p_instance_rec.purchase_unit_price = fnd_api.g_miss_num ) THEN
16300 l_ins_hist_csr.old_purchase_unit_price := NULL;
16301 l_ins_hist_csr.new_purchase_unit_price := NULL;
16302 ELSE
16303 l_ins_hist_csr.old_purchase_unit_price := fnd_api.g_miss_num;
16304 l_ins_hist_csr.new_purchase_unit_price := p_instance_rec.purchase_unit_price;
16305 END IF;
16306 ELSE
16307 l_ins_hist_csr.old_purchase_unit_price := fnd_api.g_miss_num;
16308 l_ins_hist_csr.new_purchase_unit_price := p_instance_rec.purchase_unit_price;
16309 END IF;
16310 --
16311 IF ( l_ins_hist_csr.old_purchase_currency_code IS NULL
16312 AND l_ins_hist_csr.new_purchase_currency_code IS NULL ) THEN
16313 IF ( p_instance_rec.purchase_currency_code = l_curr_instance_rec.purchase_currency_code )
16314 OR ( p_instance_rec.purchase_currency_code = fnd_api.g_miss_char ) THEN
16315 l_ins_hist_csr.old_purchase_currency_code := NULL;
16316 l_ins_hist_csr.new_purchase_currency_code := NULL;
16317 ELSE
16318 l_ins_hist_csr.old_purchase_currency_code := fnd_api.g_miss_char;
16319 l_ins_hist_csr.new_purchase_currency_code := p_instance_rec.purchase_currency_code;
16320 END IF;
16321 ELSE
16322 l_ins_hist_csr.old_purchase_currency_code := fnd_api.g_miss_char;
16323 l_ins_hist_csr.new_purchase_currency_code := p_instance_rec.purchase_currency_code;
16324 END IF;
16325 --
16326 IF ( l_ins_hist_csr.old_payables_unit_price IS NULL
16327 AND l_ins_hist_csr.new_payables_unit_price IS NULL ) THEN
16328 IF ( p_instance_rec.payables_unit_price = l_curr_instance_rec.payables_unit_price )
16329 OR ( p_instance_rec.payables_unit_price = fnd_api.g_miss_num ) THEN
16330 l_ins_hist_csr.old_payables_unit_price := NULL;
16331 l_ins_hist_csr.new_payables_unit_price := NULL;
16332 ELSE
16333 l_ins_hist_csr.old_payables_unit_price := fnd_api.g_miss_num;
16334 l_ins_hist_csr.new_payables_unit_price := p_instance_rec.payables_unit_price;
16335 END IF;
16336 ELSE
16337 l_ins_hist_csr.old_payables_unit_price := fnd_api.g_miss_num;
16338 l_ins_hist_csr.new_payables_unit_price := p_instance_rec.payables_unit_price;
16339 END IF;
16340 --
16341 IF ( l_ins_hist_csr.old_payables_currency_code IS NULL
16342 AND l_ins_hist_csr.new_payables_currency_code IS NULL ) THEN
16343 IF ( p_instance_rec.payables_currency_code = l_curr_instance_rec.payables_currency_code )
16344 OR ( p_instance_rec.payables_currency_code = fnd_api.g_miss_char ) THEN
16345 l_ins_hist_csr.old_payables_currency_code := NULL;
16346 l_ins_hist_csr.new_payables_currency_code := NULL;
16347 ELSE
16348 l_ins_hist_csr.old_payables_currency_code := fnd_api.g_miss_char;
16349 l_ins_hist_csr.new_payables_currency_code := p_instance_rec.payables_currency_code;
16350 END IF;
16351 ELSE
16352 l_ins_hist_csr.old_payables_currency_code := fnd_api.g_miss_char;
16353 l_ins_hist_csr.new_payables_currency_code := p_instance_rec.payables_currency_code;
16354 END IF;
16355 --
16356 IF ( l_ins_hist_csr.old_sales_unit_price IS NULL
16357 AND l_ins_hist_csr.new_sales_unit_price IS NULL ) THEN
16358 IF ( p_instance_rec.sales_unit_price = l_curr_instance_rec.sales_unit_price )
16359 OR ( p_instance_rec.sales_unit_price = fnd_api.g_miss_num ) THEN
16360 l_ins_hist_csr.old_sales_unit_price := NULL;
16361 l_ins_hist_csr.new_sales_unit_price := NULL;
16362 ELSE
16363 l_ins_hist_csr.old_sales_unit_price := fnd_api.g_miss_num;
16364 l_ins_hist_csr.new_sales_unit_price := p_instance_rec.sales_unit_price;
16365 END IF;
16366 ELSE
16367 l_ins_hist_csr.old_sales_unit_price := fnd_api.g_miss_num;
16368 l_ins_hist_csr.new_sales_unit_price := p_instance_rec.sales_unit_price;
16369 END IF;
16370 --
16371 IF ( l_ins_hist_csr.old_sales_currency_code IS NULL
16372 AND l_ins_hist_csr.new_sales_currency_code IS NULL ) THEN
16373 IF ( p_instance_rec.sales_currency_code = l_curr_instance_rec.sales_currency_code )
16374 OR ( p_instance_rec.sales_currency_code = fnd_api.g_miss_char ) THEN
16375 l_ins_hist_csr.old_sales_currency_code := NULL;
16376 l_ins_hist_csr.new_sales_currency_code := NULL;
16377 ELSE
16378 l_ins_hist_csr.old_sales_currency_code := fnd_api.g_miss_char;
16379 l_ins_hist_csr.new_sales_currency_code := p_instance_rec.sales_currency_code;
16380 END IF;
16381 ELSE
16382 l_ins_hist_csr.old_sales_currency_code := fnd_api.g_miss_char;
16383 l_ins_hist_csr.new_sales_currency_code := p_instance_rec.sales_currency_code;
16384 END IF;
16385 --
16386 IF ( l_ins_hist_csr.old_operational_status_code IS NULL
16387 AND l_ins_hist_csr.new_operational_status_code IS NULL ) THEN
16388 IF ( p_instance_rec.operational_status_code = l_curr_instance_rec.operational_status_code )
16389 OR ( p_instance_rec.operational_status_code = fnd_api.g_miss_char ) THEN
16390 l_ins_hist_csr.old_operational_status_code := NULL;
16391 l_ins_hist_csr.new_operational_status_code := NULL;
16392 ELSE
16393 l_ins_hist_csr.old_operational_status_code := fnd_api.g_miss_char;
16394 l_ins_hist_csr.new_operational_status_code := p_instance_rec.operational_status_code;
16395 END IF;
16396 ELSE
16397 l_ins_hist_csr.old_operational_status_code := fnd_api.g_miss_char;
16398 l_ins_hist_csr.new_operational_status_code := p_instance_rec.operational_status_code;
16399 END IF;
16400 --
16401 -- End addition of columns for FA Integration
16402
16403
16404
16405 -- End addition for bug 2671179
16406 CSI_ITEM_INSTANCES_H_PKG.Update_Row
16407 ( p_INSTANCE_HISTORY_ID => l_ins_hist_id
16408 ,p_INSTANCE_ID => fnd_api.g_miss_num
16409 ,p_TRANSACTION_ID => fnd_api.g_miss_num
16410 ,p_OLD_INSTANCE_NUMBER => l_ins_hist_csr.OLD_INSTANCE_NUMBER
16411 ,p_NEW_INSTANCE_NUMBER => l_ins_hist_csr.NEW_INSTANCE_NUMBER
16412 ,p_OLD_EXTERNAL_REFERENCE => l_ins_hist_csr.OLD_EXTERNAL_REFERENCE
16413 ,p_NEW_EXTERNAL_REFERENCE => l_ins_hist_csr.NEW_EXTERNAL_REFERENCE
16414 ,p_OLD_INVENTORY_ITEM_ID => l_ins_hist_csr.OLD_INVENTORY_ITEM_ID
16415 ,p_NEW_INVENTORY_ITEM_ID => l_ins_hist_csr.NEW_INVENTORY_ITEM_ID
16416 ,p_OLD_INVENTORY_REVISION => l_ins_hist_csr.OLD_INVENTORY_REVISION
16417 ,p_NEW_INVENTORY_REVISION => l_ins_hist_csr.NEW_INVENTORY_REVISION
16418 ,p_OLD_INV_MASTER_ORGZN_ID => l_ins_hist_csr.OLD_INV_MASTER_ORGANIZATION_ID
16419 ,p_NEW_INV_MASTER_ORGZN_ID => l_ins_hist_csr.NEW_INV_MASTER_ORGANIZATION_ID
16420 ,p_OLD_SERIAL_NUMBER => l_ins_hist_csr.OLD_SERIAL_NUMBER
16421 ,p_NEW_SERIAL_NUMBER => l_ins_hist_csr.NEW_SERIAL_NUMBER
16422 ,p_OLD_MFG_SERIAL_NUMBER_FLAG => l_ins_hist_csr.OLD_MFG_SERIAL_NUMBER_FLAG
16423 ,p_NEW_MFG_SERIAL_NUMBER_FLAG => l_ins_hist_csr.NEW_MFG_SERIAL_NUMBER_FLAG
16424 ,p_OLD_LOT_NUMBER => l_ins_hist_csr.OLD_LOT_NUMBER
16425 ,p_NEW_LOT_NUMBER => l_ins_hist_csr.NEW_LOT_NUMBER
16426 ,p_OLD_QUANTITY => l_ins_hist_csr.OLD_QUANTITY
16427 ,p_NEW_QUANTITY => l_ins_hist_csr.NEW_QUANTITY
16428 ,p_OLD_UNIT_OF_MEASURE => l_ins_hist_csr.OLD_UNIT_OF_MEASURE
16429 ,p_NEW_UNIT_OF_MEASURE => l_ins_hist_csr.NEW_UNIT_OF_MEASURE
16430 ,p_OLD_ACCOUNTING_CLASS_CODE => l_ins_hist_csr.OLD_ACCOUNTING_CLASS_CODE
16431 ,p_NEW_ACCOUNTING_CLASS_CODE => l_ins_hist_csr.NEW_ACCOUNTING_CLASS_CODE
16432 ,p_OLD_INSTANCE_CONDITION_ID => l_ins_hist_csr.OLD_INSTANCE_CONDITION_ID
16433 ,p_NEW_INSTANCE_CONDITION_ID => l_ins_hist_csr.NEW_INSTANCE_CONDITION_ID
16434 ,p_OLD_INSTANCE_STATUS_ID => l_ins_hist_csr.OLD_INSTANCE_STATUS_ID
16435 ,p_NEW_INSTANCE_STATUS_ID => l_ins_hist_csr.NEW_INSTANCE_STATUS_ID
16436 ,p_OLD_CUSTOMER_VIEW_FLAG => l_ins_hist_csr.OLD_CUSTOMER_VIEW_FLAG
16437 ,p_NEW_CUSTOMER_VIEW_FLAG => l_ins_hist_csr.NEW_CUSTOMER_VIEW_FLAG
16438 ,p_OLD_MERCHANT_VIEW_FLAG => l_ins_hist_csr.OLD_MERCHANT_VIEW_FLAG
16439 ,p_NEW_MERCHANT_VIEW_FLAG => l_ins_hist_csr.NEW_MERCHANT_VIEW_FLAG
16440 ,p_OLD_SELLABLE_FLAG => l_ins_hist_csr.OLD_SELLABLE_FLAG
16441 ,p_NEW_SELLABLE_FLAG => l_ins_hist_csr.NEW_SELLABLE_FLAG
16442 ,p_OLD_SYSTEM_ID => l_ins_hist_csr.OLD_SYSTEM_ID
16443 ,p_NEW_SYSTEM_ID => l_ins_hist_csr.NEW_SYSTEM_ID
16444 ,p_OLD_INSTANCE_TYPE_CODE => l_ins_hist_csr.OLD_INSTANCE_TYPE_CODE
16445 ,p_NEW_INSTANCE_TYPE_CODE => l_ins_hist_csr.NEW_INSTANCE_TYPE_CODE
16446 ,p_OLD_ACTIVE_START_DATE => l_ins_hist_csr.OLD_ACTIVE_START_DATE
16447 ,p_NEW_ACTIVE_START_DATE => l_ins_hist_csr.NEW_ACTIVE_START_DATE
16448 ,p_OLD_ACTIVE_END_DATE => l_ins_hist_csr.OLD_ACTIVE_END_DATE
16449 ,p_NEW_ACTIVE_END_DATE => l_ins_hist_csr.NEW_ACTIVE_END_DATE
16450 ,p_OLD_LOCATION_TYPE_CODE => l_ins_hist_csr.OLD_LOCATION_TYPE_CODE
16451 ,p_NEW_LOCATION_TYPE_CODE => l_ins_hist_csr.NEW_LOCATION_TYPE_CODE
16452 ,p_OLD_LOCATION_ID => l_ins_hist_csr.OLD_LOCATION_ID
16453 ,p_NEW_LOCATION_ID => l_ins_hist_csr.NEW_LOCATION_ID
16454 ,p_OLD_INV_ORGANIZATION_ID => l_ins_hist_csr.OLD_INV_ORGANIZATION_ID
16455 ,p_NEW_INV_ORGANIZATION_ID => l_ins_hist_csr.NEW_INV_ORGANIZATION_ID
16456 ,p_OLD_INV_SUBINVENTORY_NAME => l_ins_hist_csr.OLD_INV_SUBINVENTORY_NAME
16457 ,p_NEW_INV_SUBINVENTORY_NAME => l_ins_hist_csr.NEW_INV_SUBINVENTORY_NAME
16458 ,p_OLD_INV_LOCATOR_ID => l_ins_hist_csr.OLD_INV_LOCATOR_ID
16459 ,p_NEW_INV_LOCATOR_ID => l_ins_hist_csr.NEW_INV_LOCATOR_ID
16460 ,p_OLD_PA_PROJECT_ID => l_ins_hist_csr.OLD_PA_PROJECT_ID
16461 ,p_NEW_PA_PROJECT_ID => l_ins_hist_csr.NEW_PA_PROJECT_ID
16462 ,p_OLD_PA_PROJECT_TASK_ID => l_ins_hist_csr.OLD_PA_PROJECT_TASK_ID
16463 ,p_NEW_PA_PROJECT_TASK_ID => l_ins_hist_csr.NEW_PA_PROJECT_TASK_ID
16464 ,p_OLD_IN_TRANSIT_ORDER_LINE_ID => l_ins_hist_csr.OLD_IN_TRANSIT_ORDER_LINE_ID
16465 ,p_NEW_IN_TRANSIT_ORDER_LINE_ID => l_ins_hist_csr.NEW_IN_TRANSIT_ORDER_LINE_ID
16466 ,p_OLD_WIP_JOB_ID => l_ins_hist_csr.OLD_WIP_JOB_ID
16467 ,p_NEW_WIP_JOB_ID => l_ins_hist_csr.NEW_WIP_JOB_ID
16468 ,p_OLD_PO_ORDER_LINE_ID => l_ins_hist_csr.OLD_PO_ORDER_LINE_ID
16469 ,p_NEW_PO_ORDER_LINE_ID => l_ins_hist_csr.NEW_PO_ORDER_LINE_ID
16470 ,p_OLD_COMPLETENESS_FLAG => l_ins_hist_csr.OLD_COMPLETENESS_FLAG
16471 ,p_NEW_COMPLETENESS_FLAG => l_ins_hist_csr.NEW_COMPLETENESS_FLAG
16472 ,p_FULL_DUMP_FLAG => fnd_api.g_miss_char
16473 ,p_NEW_CONTEXT => l_ins_hist_csr.NEW_CONTEXT
16474 ,P_OLD_CONTEXT => l_ins_hist_csr.OLD_CONTEXT
16475 ,p_NEW_ATTRIBUTE1 => l_ins_hist_csr.NEW_ATTRIBUTE1
16476 ,p_OLD_ATTRIBUTE1 => l_ins_hist_csr.OLD_ATTRIBUTE1
16477 ,p_NEW_ATTRIBUTE2 => l_ins_hist_csr.NEW_ATTRIBUTE2
16478 ,p_OLD_ATTRIBUTE2 => l_ins_hist_csr.OLD_ATTRIBUTE2
16479 ,p_NEW_ATTRIBUTE3 => l_ins_hist_csr.NEW_ATTRIBUTE3
16480 ,p_OLD_ATTRIBUTE3 => l_ins_hist_csr.OLD_ATTRIBUTE3
16481 ,p_NEW_ATTRIBUTE4 => l_ins_hist_csr.NEW_ATTRIBUTE4
16482 ,p_OLD_ATTRIBUTE4 => l_ins_hist_csr.OLD_ATTRIBUTE4
16483 ,p_NEW_ATTRIBUTE5 => l_ins_hist_csr.NEW_ATTRIBUTE5
16484 ,p_OLD_ATTRIBUTE5 => l_ins_hist_csr.OLD_ATTRIBUTE5
16485 ,p_NEW_ATTRIBUTE6 => l_ins_hist_csr.NEW_ATTRIBUTE6
16486 ,p_OLD_ATTRIBUTE6 => l_ins_hist_csr.OLD_ATTRIBUTE6
16487 ,p_NEW_ATTRIBUTE7 => l_ins_hist_csr.NEW_ATTRIBUTE7
16488 ,p_OLD_ATTRIBUTE7 => l_ins_hist_csr.OLD_ATTRIBUTE7
16489 ,p_NEW_ATTRIBUTE8 => l_ins_hist_csr.NEW_ATTRIBUTE8
16490 ,p_OLD_ATTRIBUTE8 => l_ins_hist_csr.OLD_ATTRIBUTE8
16491 ,p_NEW_ATTRIBUTE9 => l_ins_hist_csr.NEW_ATTRIBUTE9
16492 ,p_OLD_ATTRIBUTE9 => l_ins_hist_csr.OLD_ATTRIBUTE9
16493 ,p_NEW_ATTRIBUTE10 => l_ins_hist_csr.NEW_ATTRIBUTE10
16494 ,p_OLD_ATTRIBUTE10 => l_ins_hist_csr.OLD_ATTRIBUTE10
16495 ,p_NEW_ATTRIBUTE11 => l_ins_hist_csr.NEW_ATTRIBUTE11
16496 ,p_OLD_ATTRIBUTE11 => l_ins_hist_csr.OLD_ATTRIBUTE11
16497 ,p_NEW_ATTRIBUTE12 => l_ins_hist_csr.NEW_ATTRIBUTE12
16498 ,p_OLD_ATTRIBUTE12 => l_ins_hist_csr.OLD_ATTRIBUTE12
16499 ,p_NEW_ATTRIBUTE13 => l_ins_hist_csr.NEW_ATTRIBUTE13
16500 ,p_OLD_ATTRIBUTE13 => l_ins_hist_csr.OLD_ATTRIBUTE13
16501 ,p_NEW_ATTRIBUTE14 => l_ins_hist_csr.NEW_ATTRIBUTE14
16502 ,p_OLD_ATTRIBUTE14 => l_ins_hist_csr.OLD_ATTRIBUTE14
16503 ,p_NEW_ATTRIBUTE15 => l_ins_hist_csr.NEW_ATTRIBUTE15
16504 ,p_OLD_ATTRIBUTE15 => l_ins_hist_csr.OLD_ATTRIBUTE15
16505 ,p_CREATED_BY => fnd_api.g_miss_num
16506 ,p_CREATION_DATE => fnd_api.g_miss_date
16507 ,p_LAST_UPDATED_BY => FND_GLOBAL.USER_ID
16508 ,p_LAST_UPDATE_DATE => SYSDATE
16509 ,p_LAST_UPDATE_LOGIN => FND_GLOBAL.CONC_LOGIN_ID
16510 ,p_OBJECT_VERSION_NUMBER => fnd_api.g_miss_num
16511 ,p_OLD_INST_LOC_TYPE_CODE => l_ins_hist_csr.OLD_INST_LOC_TYPE_CODE
16512 ,p_NEW_INST_LOC_TYPE_CODE => l_ins_hist_csr.NEW_INST_LOC_TYPE_CODE
16513 ,p_OLD_INST_LOC_ID => l_ins_hist_csr.OLD_INST_LOC_ID
16514 ,p_NEW_INST_LOC_ID => l_ins_hist_csr.NEW_INST_LOC_ID
16515 ,p_OLD_INST_USAGE_CODE => l_ins_hist_csr.OLD_INST_USAGE_CODE
16516 ,p_NEW_INST_USAGE_CODE => l_ins_hist_csr.NEW_INST_USAGE_CODE
16517 ,p_OLD_LAST_VLD_ORGANIZATION_ID => l_ins_hist_csr.OLD_LAST_VLD_ORGANIZATION_ID
16518 ,p_NEW_LAST_VLD_ORGANIZATION_ID => l_ins_hist_csr.NEW_LAST_VLD_ORGANIZATION_ID
16519 ,p_OLD_CONFIG_INST_REV_NUM => l_ins_hist_csr.OLD_CONFIG_INST_REV_NUM
16520 ,p_NEW_CONFIG_INST_REV_NUM => l_ins_hist_csr.NEW_CONFIG_INST_REV_NUM
16521 ,p_OLD_CONFIG_VALID_STATUS => l_ins_hist_csr.OLD_CONFIG_VALID_STATUS
16522 ,p_NEW_CONFIG_VALID_STATUS => l_ins_hist_csr.NEW_CONFIG_VALID_STATUS
16523 ,p_OLD_INSTANCE_DESCRIPTION => l_ins_hist_csr.OLD_INSTANCE_DESCRIPTION
16524 ,p_NEW_INSTANCE_DESCRIPTION => l_ins_hist_csr.NEW_INSTANCE_DESCRIPTION
16525 ,p_OLD_INSTALL_DATE => l_ins_hist_csr.OLD_INSTALL_DATE
16526 ,p_NEW_INSTALL_DATE => l_ins_hist_csr.NEW_INSTALL_DATE
16527 ,p_OLD_RETURN_BY_DATE => l_ins_hist_csr.OLD_RETURN_BY_DATE
16528 ,p_NEW_RETURN_BY_DATE => l_ins_hist_csr.NEW_RETURN_BY_DATE
16529 ,p_OLD_ACTUAL_RETURN_DATE => l_ins_hist_csr.OLD_ACTUAL_RETURN_DATE
16530 ,p_NEW_ACTUAL_RETURN_DATE => l_ins_hist_csr.NEW_ACTUAL_RETURN_DATE
16531 ,p_OLD_LAST_OE_AGREEMENT_ID => l_ins_hist_csr.OLD_OE_AGREEMENT_ID
16532 ,p_NEW_LAST_OE_AGREEMENT_ID => l_ins_hist_csr.NEW_OE_AGREEMENT_ID
16533 ,p_OLD_LAST_OE_ORDER_LINE_ID => l_ins_hist_csr.OLD_LAST_OE_ORDER_LINE_ID
16534 ,p_NEW_LAST_OE_ORDER_LINE_ID => l_ins_hist_csr.NEW_LAST_OE_ORDER_LINE_ID
16535 ,p_OLD_LAST_OE_RMA_LINE_ID => l_ins_hist_csr.OLD_LAST_OE_RMA_LINE_ID
16536 ,p_NEW_LAST_OE_RMA_LINE_ID => l_ins_hist_csr.NEW_LAST_OE_RMA_LINE_ID
16537 ,p_OLD_LAST_WIP_JOB_ID => l_ins_hist_csr.OLD_LAST_WIP_JOB_ID
16538 ,p_NEW_LAST_WIP_JOB_ID => l_ins_hist_csr.NEW_LAST_WIP_JOB_ID
16539 ,p_OLD_LAST_PO_PO_LINE_ID => l_ins_hist_csr.OLD_LAST_PO_PO_LINE_ID
16540 ,p_NEW_LAST_PO_PO_LINE_ID => l_ins_hist_csr.NEW_LAST_PO_PO_LINE_ID
16541 ,p_OLD_LAST_PA_PROJECT_ID => l_ins_hist_csr.OLD_LAST_PA_PROJECT_ID
16542 ,p_NEW_LAST_PA_PROJECT_ID => l_ins_hist_csr.NEW_LAST_PA_PROJECT_ID
16543 ,p_OLD_LAST_PA_TASK_ID => l_ins_hist_csr.OLD_LAST_PA_TASK_ID
16544 ,p_NEW_LAST_PA_TASK_ID => l_ins_hist_csr.NEW_LAST_PA_TASK_ID
16545 ,p_OLD_LAST_TXN_LINE_DETAIL_ID => l_ins_hist_csr.OLD_LAST_TXN_LINE_DETAIL_ID
16546 ,p_NEW_LAST_TXN_LINE_DETAIL_ID => l_ins_hist_csr.NEW_LAST_TXN_LINE_DETAIL_ID
16547 ,p_OLD_LAST_OE_PO_NUMBER => l_ins_hist_csr.OLD_LAST_OE_PO_NUMBER
16548 ,p_NEW_LAST_OE_PO_NUMBER => l_ins_hist_csr.NEW_LAST_OE_PO_NUMBER
16549 --start of parameters addition for eam integration--
16550 ,p_OLD_NETWORK_ASSET_FLAG => l_ins_hist_csr.OLD_NETWORK_ASSET_FLAG
16551 ,p_NEW_NETWORK_ASSET_FLAG => l_ins_hist_csr.NEW_NETWORK_ASSET_FLAG
16552 ,p_OLD_MAINTAINABLE_FLAG => l_ins_hist_csr.OLD_MAINTAINABLE_FLAG
16553 ,p_NEW_MAINTAINABLE_FLAG => l_ins_hist_csr.NEW_MAINTAINABLE_FLAG
16554 ,p_OLD_PN_LOCATION_ID => l_ins_hist_csr.OLD_PN_LOCATION_ID
16555 ,p_NEW_PN_LOCATION_ID => l_ins_hist_csr.NEW_PN_LOCATION_ID
16556 ,p_OLD_ASSET_CRITICALITY_CODE => l_ins_hist_csr.OLD_ASSET_CRITICALITY_CODE
16557 ,p_NEW_ASSET_CRITICALITY_CODE => l_ins_hist_csr.NEW_ASSET_CRITICALITY_CODE
16558 ,p_OLD_CATEGORY_ID => l_ins_hist_csr.OLD_CATEGORY_ID
16559 ,p_NEW_CATEGORY_ID => l_ins_hist_csr.NEW_CATEGORY_ID
16560 ,p_OLD_EQUIPMENT_GEN_OBJECT_ID => l_ins_hist_csr.OLD_EQUIPMENT_GEN_OBJECT_ID
16561 ,p_NEW_EQUIPMENT_GEN_OBJECT_ID => l_ins_hist_csr.NEW_EQUIPMENT_GEN_OBJECT_ID
16562 ,p_OLD_INSTANTIATION_FLAG => l_ins_hist_csr.OLD_INSTANTIATION_FLAG
16563 ,p_NEW_INSTANTIATION_FLAG => l_ins_hist_csr.NEW_INSTANTIATION_FLAG
16564 ,p_OLD_LINEAR_LOCATION_ID => l_ins_hist_csr.OLD_LINEAR_LOCATION_ID
16565 ,p_NEW_LINEAR_LOCATION_ID => l_ins_hist_csr.NEW_LINEAR_LOCATION_ID
16566 ,p_OLD_OPERATIONAL_LOG_FLAG => l_ins_hist_csr.OLD_OPERATIONAL_LOG_FLAG
16567 ,p_NEW_OPERATIONAL_LOG_FLAG => l_ins_hist_csr.NEW_OPERATIONAL_LOG_FLAG
16568 ,p_OLD_CHECKIN_STATUS => l_ins_hist_csr.OLD_CHECKIN_STATUS
16569 ,p_NEW_CHECKIN_STATUS => l_ins_hist_csr.NEW_CHECKIN_STATUS
16570 ,p_OLD_SUP_WARRANTY_EXP_DATE => l_ins_hist_csr.OLD_SUPPLIER_WARRANTY_EXP_DATE
16571 ,p_NEW_SUP_WARRANTY_EXP_DATE => l_ins_hist_csr.NEW_SUPPLIER_WARRANTY_EXP_DATE
16572 ,p_OLD_ATTRIBUTE16 => l_ins_hist_csr.OLD_ATTRIBUTE16
16573 ,p_NEW_ATTRIBUTE16 => l_ins_hist_csr.NEW_ATTRIBUTE16
16574 ,p_OLD_ATTRIBUTE17 => l_ins_hist_csr.OLD_ATTRIBUTE17
16575 ,p_NEW_ATTRIBUTE17 => l_ins_hist_csr.NEW_ATTRIBUTE17
16576 ,p_OLD_ATTRIBUTE18 => l_ins_hist_csr.OLD_ATTRIBUTE18
16577 ,p_NEW_ATTRIBUTE18 => l_ins_hist_csr.NEW_ATTRIBUTE18
16578 ,p_OLD_ATTRIBUTE19 => l_ins_hist_csr.OLD_ATTRIBUTE19
16579 ,p_NEW_ATTRIBUTE19 => l_ins_hist_csr.NEW_ATTRIBUTE19
16580 ,p_OLD_ATTRIBUTE20 => l_ins_hist_csr.OLD_ATTRIBUTE20
16581 ,p_NEW_ATTRIBUTE20 => l_ins_hist_csr.NEW_ATTRIBUTE20
16582 ,p_OLD_ATTRIBUTE21 => l_ins_hist_csr.OLD_ATTRIBUTE21
16583 ,p_NEW_ATTRIBUTE21 => l_ins_hist_csr.NEW_ATTRIBUTE21
16584 ,p_OLD_ATTRIBUTE22 => l_ins_hist_csr.OLD_ATTRIBUTE22
16585 ,p_NEW_ATTRIBUTE22 => l_ins_hist_csr.NEW_ATTRIBUTE22
16586 ,p_OLD_ATTRIBUTE23 => l_ins_hist_csr.OLD_ATTRIBUTE23
16587 ,p_NEW_ATTRIBUTE23 => l_ins_hist_csr.NEW_ATTRIBUTE23
16588 ,p_OLD_ATTRIBUTE24 => l_ins_hist_csr.OLD_ATTRIBUTE24
16589 ,p_NEW_ATTRIBUTE24 => l_ins_hist_csr.NEW_ATTRIBUTE24
16590 ,p_OLD_ATTRIBUTE25 => l_ins_hist_csr.OLD_ATTRIBUTE25
16591 ,p_NEW_ATTRIBUTE25 => l_ins_hist_csr.NEW_ATTRIBUTE25
16592 ,p_OLD_ATTRIBUTE26 => l_ins_hist_csr.OLD_ATTRIBUTE26
16593 ,p_NEW_ATTRIBUTE26 => l_ins_hist_csr.NEW_ATTRIBUTE26
16594 ,p_OLD_ATTRIBUTE27 => l_ins_hist_csr.OLD_ATTRIBUTE27
16595 ,p_NEW_ATTRIBUTE27 => l_ins_hist_csr.NEW_ATTRIBUTE27
16596 ,p_OLD_ATTRIBUTE28 => l_ins_hist_csr.OLD_ATTRIBUTE28
16597 ,p_NEW_ATTRIBUTE28 => l_ins_hist_csr.NEW_ATTRIBUTE28
16598 ,p_OLD_ATTRIBUTE29 => l_ins_hist_csr.OLD_ATTRIBUTE29
16599 ,p_NEW_ATTRIBUTE29 => l_ins_hist_csr.NEW_ATTRIBUTE29
16600 ,p_OLD_ATTRIBUTE30 => l_ins_hist_csr.OLD_ATTRIBUTE30
16601 ,p_NEW_ATTRIBUTE30 => l_ins_hist_csr.NEW_ATTRIBUTE30
16602 --end of parameters addition for eam integration--
16603 -- Addition of columns for FA Integration
16604 ,p_OLD_PAYABLES_UNIT_PRICE => l_ins_hist_csr.OLD_PAYABLES_UNIT_PRICE
16605 ,p_NEW_PAYABLES_UNIT_PRICE => l_ins_hist_csr.NEW_PAYABLES_UNIT_PRICE
16606 ,p_OLD_PAYABLES_CURRENCY_CODE => l_ins_hist_csr.OLD_PAYABLES_CURRENCY_CODE
16607 ,p_NEW_PAYABLES_CURRENCY_CODE => l_ins_hist_csr.NEW_PAYABLES_CURRENCY_CODE
16608 ,p_OLD_PURCHASE_UNIT_PRICE => l_ins_hist_csr.OLD_PURCHASE_UNIT_PRICE
16609 ,p_NEW_PURCHASE_UNIT_PRICE => l_ins_hist_csr.NEW_PURCHASE_UNIT_PRICE
16610 ,p_OLD_PURCHASE_CURRENCY_CODE => l_ins_hist_csr.OLD_PURCHASE_CURRENCY_CODE
16611 ,p_NEW_PURCHASE_CURRENCY_CODE => l_ins_hist_csr.NEW_PURCHASE_CURRENCY_CODE
16612 ,p_OLD_SALES_UNIT_PRICE => l_ins_hist_csr.OLD_SALES_UNIT_PRICE
16613 ,p_NEW_SALES_UNIT_PRICE => l_ins_hist_csr.NEW_SALES_UNIT_PRICE
16614 ,p_OLD_SALES_CURRENCY_CODE => l_ins_hist_csr.OLD_SALES_CURRENCY_CODE
16615 ,p_NEW_SALES_CURRENCY_CODE => l_ins_hist_csr.NEW_SALES_CURRENCY_CODE
16616 ,p_OLD_OPERATIONAL_STATUS_CODE => l_ins_hist_csr.OLD_OPERATIONAL_STATUS_CODE
16617 ,p_NEW_OPERATIONAL_STATUS_CODE => l_ins_hist_csr.NEW_OPERATIONAL_STATUS_CODE
16618 -- End addition of columns for FA Integration
16619 -- Begin Add Code for Siebel Genesis Project
16620 ,p_OLD_SOURCE_CODE => l_ins_hist_csr.OLD_SOURCE_CODE
16621 ,p_NEW_SOURCE_CODE => l_ins_hist_csr.NEW_SOURCE_CODE
16622 -- End Add Code for Siebel Genesis Project
16623 );
16624
16625 END IF;
16626
16627 EXCEPTION
16628
16629 WHEN NO_DATA_FOUND THEN
16630
16631 IF (l_mod_value = 0) THEN
16632
16633 -- If the mod value is 0 then dump all the columns both changed and unchanged
16634 -- changed columns have old and new values while the unchanged values have old and new values
16635 -- exactly same
16636 IF (p_instance_rec.INSTANCE_NUMBER = FND_API.G_MISS_CHAR) THEN
16637 p_instance_rec.INSTANCE_NUMBER := l_curr_instance_rec.INSTANCE_NUMBER;
16638 END IF;
16639 IF (p_instance_rec.EXTERNAL_REFERENCE = FND_API.G_MISS_CHAR) THEN
16640 p_instance_rec.EXTERNAL_REFERENCE := l_curr_instance_rec.EXTERNAL_REFERENCE;
16641 END IF;
16642 IF (p_instance_rec.INVENTORY_ITEM_ID = FND_API.G_MISS_NUM) THEN
16643 p_instance_rec.INVENTORY_ITEM_ID := l_curr_instance_rec.INVENTORY_ITEM_ID;
16644 END IF;
16645 IF (p_instance_rec.INVENTORY_REVISION = FND_API.G_MISS_CHAR) THEN
16646 p_instance_rec.INVENTORY_REVISION := l_curr_instance_rec.INVENTORY_REVISION;
16647 END IF;
16648 IF (p_instance_rec.INV_MASTER_ORGANIZATION_ID = FND_API.G_MISS_NUM) THEN
16649 p_instance_rec.INV_MASTER_ORGANIZATION_ID := l_curr_instance_rec.INV_MASTER_ORGANIZATION_ID;
16650 END IF;
16651 IF (p_instance_rec.SERIAL_NUMBER = FND_API.G_MISS_CHAR) THEN
16652 p_instance_rec.SERIAL_NUMBER := l_curr_instance_rec.SERIAL_NUMBER;
16653 END IF;
16654 IF (p_instance_rec.MFG_SERIAL_NUMBER_FLAG = FND_API.G_MISS_CHAR) THEN
16655 p_instance_rec.MFG_SERIAL_NUMBER_FLAG := l_curr_instance_rec.MFG_SERIAL_NUMBER_FLAG;
16656 END IF;
16657 IF (p_instance_rec.LOT_NUMBER = FND_API.G_MISS_CHAR) THEN
16658 p_instance_rec.LOT_NUMBER := l_curr_instance_rec.LOT_NUMBER;
16659 END IF;
16660 IF (p_instance_rec.QUANTITY = FND_API.G_MISS_NUM) THEN
16661 p_instance_rec.QUANTITY := l_curr_instance_rec.QUANTITY;
16662 END IF;
16663 IF (p_instance_rec.UNIT_OF_MEASURE = FND_API.G_MISS_CHAR) THEN
16664 p_instance_rec.UNIT_OF_MEASURE := l_curr_instance_rec.UNIT_OF_MEASURE;
16665 END IF;
16666 IF (p_instance_rec.ACCOUNTING_CLASS_CODE = FND_API.G_MISS_CHAR) THEN
16667 p_instance_rec.ACCOUNTING_CLASS_CODE := l_curr_instance_rec.ACCOUNTING_CLASS_CODE;
16668 END IF;
16669 IF (p_instance_rec.INSTANCE_CONDITION_ID = FND_API.G_MISS_NUM) THEN
16670 p_instance_rec.INSTANCE_CONDITION_ID := l_curr_instance_rec.INSTANCE_CONDITION_ID;
16671 END IF;
16672 IF (p_instance_rec.INSTANCE_STATUS_ID = FND_API.G_MISS_NUM) THEN
16673 p_instance_rec.INSTANCE_STATUS_ID := l_curr_instance_rec.INSTANCE_STATUS_ID;
16674 END IF;
16675 IF (p_instance_rec.CUSTOMER_VIEW_FLAG = FND_API.G_MISS_CHAR) THEN
16676 p_instance_rec.CUSTOMER_VIEW_FLAG := l_curr_instance_rec.CUSTOMER_VIEW_FLAG;
16677 END IF;
16678 IF (p_instance_rec.MERCHANT_VIEW_FLAG = FND_API.G_MISS_CHAR) THEN
16679 p_instance_rec.MERCHANT_VIEW_FLAG := l_curr_instance_rec.MERCHANT_VIEW_FLAG;
16680 END IF;
16681 IF (p_instance_rec.SELLABLE_FLAG = FND_API.G_MISS_CHAR) THEN
16682 p_instance_rec.SELLABLE_FLAG := l_curr_instance_rec.SELLABLE_FLAG;
16683 END IF;
16684 IF (p_instance_rec.SYSTEM_ID = FND_API.G_MISS_NUM) THEN
16685 p_instance_rec.SYSTEM_ID := l_curr_instance_rec.SYSTEM_ID;
16686 END IF;
16687 IF (p_instance_rec.INSTANCE_TYPE_CODE = FND_API.G_MISS_CHAR) THEN
16688 p_instance_rec.INSTANCE_TYPE_CODE := l_curr_instance_rec.INSTANCE_TYPE_CODE;
16689 END IF;
16690 IF (p_instance_rec.ACTIVE_START_DATE = FND_API.G_MISS_DATE) THEN
16691 p_instance_rec.ACTIVE_START_DATE := l_curr_instance_rec.ACTIVE_START_DATE;
16692 END IF;
16693 IF (p_instance_rec.ACTIVE_END_DATE = FND_API.G_MISS_DATE) THEN
16694 p_instance_rec.ACTIVE_END_DATE := l_curr_instance_rec.ACTIVE_END_DATE;
16695 END IF;
16696 IF (p_instance_rec.LOCATION_TYPE_CODE = FND_API.G_MISS_CHAR) THEN
16697 p_instance_rec.LOCATION_TYPE_CODE := l_curr_instance_rec.LOCATION_TYPE_CODE;
16698 END IF;
16699 IF (p_instance_rec.LOCATION_ID = FND_API.G_MISS_NUM) THEN
16700 p_instance_rec.LOCATION_ID := l_curr_instance_rec.LOCATION_ID;
16701 END IF;
16702 IF (p_instance_rec.INV_ORGANIZATION_ID = FND_API.G_MISS_NUM) THEN
16703 p_instance_rec.INV_ORGANIZATION_ID := l_curr_instance_rec.INV_ORGANIZATION_ID;
16704 END IF;
16705 IF (p_instance_rec.INV_SUBINVENTORY_NAME = FND_API.G_MISS_CHAR) THEN
16706 p_instance_rec.INV_SUBINVENTORY_NAME := l_curr_instance_rec.INV_SUBINVENTORY_NAME;
16707 END IF;
16708 IF (p_instance_rec.INV_LOCATOR_ID = FND_API.G_MISS_NUM) THEN
16709 p_instance_rec.INV_LOCATOR_ID := l_curr_instance_rec.INV_LOCATOR_ID;
16710 END IF;
16711 IF (p_instance_rec.PA_PROJECT_ID = FND_API.G_MISS_NUM) THEN
16712 p_instance_rec.PA_PROJECT_ID := l_curr_instance_rec.PA_PROJECT_ID;
16713 END IF;
16714 IF (p_instance_rec.PA_PROJECT_TASK_ID = FND_API.G_MISS_NUM) THEN
16715 p_instance_rec.PA_PROJECT_TASK_ID := l_curr_instance_rec.PA_PROJECT_TASK_ID;
16716 END IF;
16717 IF (p_instance_rec.IN_TRANSIT_ORDER_LINE_ID = FND_API.G_MISS_NUM) THEN
16718 p_instance_rec.IN_TRANSIT_ORDER_LINE_ID := l_curr_instance_rec.IN_TRANSIT_ORDER_LINE_ID;
16719 END IF;
16720 IF (p_instance_rec.LAST_OE_AGREEMENT_ID = FND_API.G_MISS_NUM) THEN
16721 p_instance_rec.LAST_OE_AGREEMENT_ID := l_curr_instance_rec.LAST_OE_AGREEMENT_ID;
16722 END IF;
16723 IF (p_instance_rec.LAST_OE_ORDER_LINE_ID = FND_API.G_MISS_NUM) THEN
16724 p_instance_rec.LAST_OE_ORDER_LINE_ID := l_curr_instance_rec.LAST_OE_ORDER_LINE_ID;
16725 END IF;
16726 IF (p_instance_rec.LAST_OE_RMA_LINE_ID = FND_API.G_MISS_NUM) THEN
16727 p_instance_rec.LAST_OE_RMA_LINE_ID := l_curr_instance_rec.LAST_OE_RMA_LINE_ID;
16728 END IF;
16729 IF (p_instance_rec.LAST_WIP_JOB_ID = FND_API.G_MISS_NUM) THEN
16730 p_instance_rec.LAST_WIP_JOB_ID := l_curr_instance_rec.LAST_WIP_JOB_ID;
16731 END IF;
16732 IF (p_instance_rec.LAST_PO_PO_LINE_ID = FND_API.G_MISS_NUM) THEN
16733 p_instance_rec.LAST_PO_PO_LINE_ID := l_curr_instance_rec.LAST_PO_PO_LINE_ID;
16734 END IF;
16735 IF (p_instance_rec.LAST_PA_PROJECT_ID = FND_API.G_MISS_NUM) THEN
16736 p_instance_rec.LAST_PA_PROJECT_ID := l_curr_instance_rec.LAST_PA_PROJECT_ID;
16737 END IF;
16738 IF (p_instance_rec.LAST_PA_TASK_ID = FND_API.G_MISS_NUM) THEN
16739 p_instance_rec.LAST_PA_TASK_ID := l_curr_instance_rec.LAST_PA_TASK_ID;
16740 END IF;
16741 IF (p_instance_rec.LAST_TXN_LINE_DETAIL_ID = FND_API.G_MISS_NUM) THEN
16742 p_instance_rec.LAST_TXN_LINE_DETAIL_ID := l_curr_instance_rec.LAST_TXN_LINE_DETAIL_ID;
16743 END IF;
16744 IF (p_instance_rec.LAST_OE_PO_NUMBER = FND_API.G_MISS_CHAR) THEN
16745 p_instance_rec.LAST_OE_PO_NUMBER := l_curr_instance_rec.LAST_OE_PO_NUMBER;
16746 END IF;
16747 IF (p_instance_rec.WIP_JOB_ID = FND_API.G_MISS_NUM) THEN
16748 p_instance_rec.WIP_JOB_ID := l_curr_instance_rec.WIP_JOB_ID;
16749 END IF;
16750 IF (p_instance_rec.PO_ORDER_LINE_ID = FND_API.G_MISS_NUM) THEN
16751 p_instance_rec.PO_ORDER_LINE_ID := l_curr_instance_rec.PO_ORDER_LINE_ID;
16752 END IF;
16753 IF (p_instance_rec.INSTALL_DATE = FND_API.G_MISS_DATE) THEN
16754 p_instance_rec.INSTALL_DATE := l_curr_instance_rec.INSTALL_DATE;
16755 END IF;
16756 IF (p_instance_rec.MANUALLY_CREATED_FLAG = FND_API.G_MISS_CHAR) THEN
16757 p_instance_rec.MANUALLY_CREATED_FLAG := l_curr_instance_rec.MANUALLY_CREATED_FLAG;
16758 END IF;
16759 IF (p_instance_rec.RETURN_BY_DATE = FND_API.G_MISS_DATE) THEN
16760 p_instance_rec.RETURN_BY_DATE := l_curr_instance_rec.RETURN_BY_DATE;
16761 END IF;
16762 IF (p_instance_rec.ACTUAL_RETURN_DATE = FND_API.G_MISS_DATE) THEN
16763 p_instance_rec.ACTUAL_RETURN_DATE := l_curr_instance_rec.ACTUAL_RETURN_DATE;
16764 END IF;
16765 IF (p_instance_rec.CREATION_COMPLETE_FLAG = FND_API.G_MISS_CHAR) THEN
16766 p_instance_rec.CREATION_COMPLETE_FLAG := l_curr_instance_rec.CREATION_COMPLETE_FLAG;
16767 END IF;
16768 IF (p_instance_rec.COMPLETENESS_FLAG = FND_API.G_MISS_CHAR) THEN
16769 p_instance_rec.COMPLETENESS_FLAG := l_curr_instance_rec.COMPLETENESS_FLAG;
16770 END IF;
16771 IF (p_instance_rec.CONTEXT = FND_API.G_MISS_CHAR) THEN
16772 p_instance_rec.CONTEXT := l_curr_instance_rec.CONTEXT;
16773 END IF;
16774 IF (p_instance_rec.ATTRIBUTE1 = FND_API.G_MISS_CHAR) THEN
16775 p_instance_rec.ATTRIBUTE1 := l_curr_instance_rec.ATTRIBUTE1;
16776 END IF;
16777 IF (p_instance_rec.ATTRIBUTE2 = FND_API.G_MISS_CHAR) THEN
16778 p_instance_rec.ATTRIBUTE2 := l_curr_instance_rec.ATTRIBUTE2;
16779 END IF;
16780 IF (p_instance_rec.ATTRIBUTE3 = FND_API.G_MISS_CHAR) THEN
16781 p_instance_rec.ATTRIBUTE3 := l_curr_instance_rec.ATTRIBUTE3;
16782 END IF;
16783 IF (p_instance_rec.ATTRIBUTE4 = FND_API.G_MISS_CHAR) THEN
16784 p_instance_rec.ATTRIBUTE4 := l_curr_instance_rec.ATTRIBUTE4;
16785 END IF;
16786 IF (p_instance_rec.ATTRIBUTE5 = FND_API.G_MISS_CHAR) THEN
16787 p_instance_rec.ATTRIBUTE5 := l_curr_instance_rec.ATTRIBUTE5;
16788 END IF;
16789 IF (p_instance_rec.ATTRIBUTE6 = FND_API.G_MISS_CHAR) THEN
16790 p_instance_rec.ATTRIBUTE6 := l_curr_instance_rec.ATTRIBUTE6;
16791 END IF;
16792 IF (p_instance_rec.ATTRIBUTE7 = FND_API.G_MISS_CHAR) THEN
16793 p_instance_rec.ATTRIBUTE7 := l_curr_instance_rec.ATTRIBUTE7;
16794 END IF;
16795 IF (p_instance_rec.ATTRIBUTE8 = FND_API.G_MISS_CHAR) THEN
16796 p_instance_rec.ATTRIBUTE8 := l_curr_instance_rec.ATTRIBUTE8;
16797 END IF;
16798 IF (p_instance_rec.ATTRIBUTE9 = FND_API.G_MISS_CHAR) THEN
16799 p_instance_rec.ATTRIBUTE9 := l_curr_instance_rec.ATTRIBUTE9;
16800 END IF;
16801 IF (p_instance_rec.ATTRIBUTE10 = FND_API.G_MISS_CHAR) THEN
16802 p_instance_rec.ATTRIBUTE10 := l_curr_instance_rec.ATTRIBUTE10;
16803 END IF;
16804 IF (p_instance_rec.ATTRIBUTE11 = FND_API.G_MISS_CHAR) THEN
16805 p_instance_rec.ATTRIBUTE11 := l_curr_instance_rec.ATTRIBUTE11;
16806 END IF;
16807 IF (p_instance_rec.ATTRIBUTE12 = FND_API.G_MISS_CHAR) THEN
16808 p_instance_rec.ATTRIBUTE12 := l_curr_instance_rec.ATTRIBUTE12;
16809 END IF;
16810 IF (p_instance_rec.ATTRIBUTE13 = FND_API.G_MISS_CHAR) THEN
16811 p_instance_rec.ATTRIBUTE13 := l_curr_instance_rec.ATTRIBUTE13;
16812 END IF;
16813 IF (p_instance_rec.ATTRIBUTE14 = FND_API.G_MISS_CHAR) THEN
16814 p_instance_rec.ATTRIBUTE14 := l_curr_instance_rec.ATTRIBUTE14;
16815 END IF;
16816 IF (p_instance_rec.ATTRIBUTE15 = FND_API.G_MISS_CHAR) THEN
16817 p_instance_rec.ATTRIBUTE15 := l_curr_instance_rec.ATTRIBUTE15;
16818 END IF;
16819 IF (p_instance_rec.OBJECT_VERSION_NUMBER = FND_API.G_MISS_NUM) THEN
16820 p_instance_rec.OBJECT_VERSION_NUMBER := l_curr_instance_rec.OBJECT_VERSION_NUMBER;
16821 END IF;
16822 IF (p_instance_rec.INSTALL_LOCATION_TYPE_CODE = FND_API.G_MISS_CHAR) THEN
16823 p_instance_rec.INSTALL_LOCATION_TYPE_CODE := l_curr_instance_rec.INSTALL_LOCATION_TYPE_CODE;
16824 END IF;
16825 IF (p_instance_rec.INSTALL_LOCATION_ID = FND_API.G_MISS_NUM) THEN
16826 p_instance_rec.INSTALL_LOCATION_ID := l_curr_instance_rec.INSTALL_LOCATION_ID;
16827 END IF;
16828 IF (p_instance_rec.INSTANCE_USAGE_CODE = FND_API.G_MISS_CHAR) THEN
16829 p_instance_rec.INSTANCE_USAGE_CODE := l_curr_instance_rec.INSTANCE_USAGE_CODE;
16830 END IF;
16831 IF L_LAST_VLD_ORGANIZATION_ID = FND_API.G_MISS_NUM THEN
16832 l_last_vld_organization_id := l_cur_instance_rec.LAST_VLD_ORGANIZATION_ID;
16833 END IF;
16834 IF (p_instance_rec.CONFIG_INST_REV_NUM = FND_API.G_MISS_NUM) THEN
16835 p_instance_rec.CONFIG_INST_REV_NUM := l_curr_instance_rec.CONFIG_INST_REV_NUM;
16836 END IF;
16837 IF (p_instance_rec.CONFIG_VALID_STATUS = FND_API.G_MISS_CHAR) THEN
16838 p_instance_rec.CONFIG_VALID_STATUS := l_curr_instance_rec.CONFIG_VALID_STATUS;
16839 END IF;
16840 IF (p_instance_rec.INSTANCE_DESCRIPTION = FND_API.G_MISS_CHAR) THEN
16841 p_instance_rec.INSTANCE_DESCRIPTION := l_curr_instance_rec.INSTANCE_DESCRIPTION;
16842 END IF;
16843 --start of code for eam integration--
16844 IF (p_instance_rec.NETWORK_ASSET_FLAG = FND_API.G_MISS_CHAR) THEN
16845 p_instance_rec.NETWORK_ASSET_FLAG := l_curr_instance_rec.NETWORK_ASSET_FLAG;
16846 END IF;
16847 IF (p_instance_rec.MAINTAINABLE_FLAG = FND_API.G_MISS_CHAR) THEN
16848 p_instance_rec.MAINTAINABLE_FLAG := l_curr_instance_rec.MAINTAINABLE_FLAG;
16849 END IF;
16850 IF (p_instance_rec.PN_LOCATION_ID = FND_API.G_MISS_NUM) THEN
16851 p_instance_rec.PN_LOCATION_ID := l_curr_instance_rec.PN_LOCATION_ID;
16852 END IF;
16853 IF (p_instance_rec.ASSET_CRITICALITY_CODE = FND_API.G_MISS_CHAR) THEN
16854 p_instance_rec.ASSET_CRITICALITY_CODE := l_curr_instance_rec.ASSET_CRITICALITY_CODE;
16855 END IF;
16856 IF (p_instance_rec.CATEGORY_ID = FND_API.G_MISS_NUM) THEN
16857 p_instance_rec.CATEGORY_ID := l_curr_instance_rec.CATEGORY_ID;
16858 END IF;
16859 IF (p_instance_rec.EQUIPMENT_GEN_OBJECT_ID = FND_API.G_MISS_NUM) THEN
16860 p_instance_rec.EQUIPMENT_GEN_OBJECT_ID := l_curr_instance_rec.EQUIPMENT_GEN_OBJECT_ID;
16861 END IF;
16862 IF (p_instance_rec.INSTANTIATION_FLAG = FND_API.G_MISS_CHAR) THEN
16863 p_instance_rec.INSTANTIATION_FLAG := l_curr_instance_rec.INSTANTIATION_FLAG;
16864 END IF;
16865 IF (p_instance_rec.LINEAR_LOCATION_ID = FND_API.G_MISS_NUM) THEN
16866 p_instance_rec.LINEAR_LOCATION_ID := l_curr_instance_rec.LINEAR_LOCATION_ID;
16867 END IF;
16868 IF (p_instance_rec.OPERATIONAL_LOG_FLAG = FND_API.G_MISS_CHAR) THEN
16869 p_instance_rec.OPERATIONAL_LOG_FLAG := l_curr_instance_rec.OPERATIONAL_LOG_FLAG;
16870 END IF;
16871
16872 IF (p_instance_rec.CHECKIN_STATUS = FND_API.G_MISS_NUM) THEN
16873 p_instance_rec.CHECKIN_STATUS := l_curr_instance_rec.CHECKIN_STATUS;
16874 END IF;
16875 IF (p_instance_rec.SUPPLIER_WARRANTY_EXP_DATE = FND_API.G_MISS_DATE) THEN
16876 p_instance_rec.SUPPLIER_WARRANTY_EXP_DATE := l_curr_instance_rec.SUPPLIER_WARRANTY_EXP_DATE;
16877 END IF;
16878
16879 IF (p_instance_rec.ATTRIBUTE16 = FND_API.G_MISS_CHAR) THEN
16880 p_instance_rec.ATTRIBUTE16 := l_curr_instance_rec.ATTRIBUTE16;
16881 END IF;
16882 IF (p_instance_rec.ATTRIBUTE17 = FND_API.G_MISS_CHAR) THEN
16883 p_instance_rec.ATTRIBUTE17 := l_curr_instance_rec.ATTRIBUTE17;
16884 END IF;
16885 IF (p_instance_rec.ATTRIBUTE18 = FND_API.G_MISS_CHAR) THEN
16886 p_instance_rec.ATTRIBUTE18 := l_curr_instance_rec.ATTRIBUTE18;
16887 END IF;
16888 IF (p_instance_rec.ATTRIBUTE19 = FND_API.G_MISS_CHAR) THEN
16889 p_instance_rec.ATTRIBUTE19 := l_curr_instance_rec.ATTRIBUTE19;
16890 END IF;
16891 IF (p_instance_rec.ATTRIBUTE20 = FND_API.G_MISS_CHAR) THEN
16892 p_instance_rec.ATTRIBUTE20 := l_curr_instance_rec.ATTRIBUTE20;
16893 END IF;
16894 IF (p_instance_rec.ATTRIBUTE21 = FND_API.G_MISS_CHAR) THEN
16895 p_instance_rec.ATTRIBUTE21 := l_curr_instance_rec.ATTRIBUTE21;
16896 END IF;
16897 IF (p_instance_rec.ATTRIBUTE22 = FND_API.G_MISS_CHAR) THEN
16898 p_instance_rec.ATTRIBUTE22 := l_curr_instance_rec.ATTRIBUTE22;
16899 END IF;
16900 IF (p_instance_rec.ATTRIBUTE23 = FND_API.G_MISS_CHAR) THEN
16901 p_instance_rec.ATTRIBUTE23 := l_curr_instance_rec.ATTRIBUTE23;
16902 END IF;
16903 IF (p_instance_rec.ATTRIBUTE24 = FND_API.G_MISS_CHAR) THEN
16904 p_instance_rec.ATTRIBUTE24 := l_curr_instance_rec.ATTRIBUTE24;
16905 END IF;
16906 IF (p_instance_rec.ATTRIBUTE25 = FND_API.G_MISS_CHAR) THEN
16907 p_instance_rec.ATTRIBUTE25 := l_curr_instance_rec.ATTRIBUTE25;
16908 END IF;
16909 IF (p_instance_rec.ATTRIBUTE26 = FND_API.G_MISS_CHAR) THEN
16910 p_instance_rec.ATTRIBUTE26 := l_curr_instance_rec.ATTRIBUTE26;
16911 END IF;
16912 IF (p_instance_rec.ATTRIBUTE27 = FND_API.G_MISS_CHAR) THEN
16913 p_instance_rec.ATTRIBUTE27 := l_curr_instance_rec.ATTRIBUTE27;
16914 END IF;
16915 IF (p_instance_rec.ATTRIBUTE28 = FND_API.G_MISS_CHAR) THEN
16916 p_instance_rec.ATTRIBUTE28 := l_curr_instance_rec.ATTRIBUTE28;
16917 END IF;
16918 IF (p_instance_rec.ATTRIBUTE29 = FND_API.G_MISS_CHAR) THEN
16919 p_instance_rec.ATTRIBUTE29 := l_curr_instance_rec.ATTRIBUTE29;
16920 END IF;
16921 IF (p_instance_rec.ATTRIBUTE30 = FND_API.G_MISS_CHAR) THEN
16922 p_instance_rec.ATTRIBUTE30 := l_curr_instance_rec.ATTRIBUTE30;
16923 END IF;
16924
16925 --end of code for eam integration--
16926 -- Addition of columns for FA Integration
16927 IF (p_instance_rec.PURCHASE_UNIT_PRICE = FND_API.G_MISS_NUM) THEN
16928 p_instance_rec.PURCHASE_UNIT_PRICE := l_curr_instance_rec.PURCHASE_UNIT_PRICE;
16929 END IF;
16930
16931 IF (p_instance_rec.PURCHASE_CURRENCY_CODE = FND_API.G_MISS_CHAR) THEN
16932 p_instance_rec.PURCHASE_CURRENCY_CODE := l_curr_instance_rec.PURCHASE_CURRENCY_CODE;
16933 END IF;
16934
16935 IF (p_instance_rec.PAYABLES_UNIT_PRICE = FND_API.G_MISS_NUM) THEN
16936 p_instance_rec.PAYABLES_UNIT_PRICE := l_curr_instance_rec.PAYABLES_UNIT_PRICE;
16937 END IF;
16938
16939 IF (p_instance_rec.PAYABLES_CURRENCY_CODE = FND_API.G_MISS_CHAR) THEN
16940 p_instance_rec.PAYABLES_CURRENCY_CODE := l_curr_instance_rec.PAYABLES_CURRENCY_CODE;
16941 END IF;
16942
16943 IF (p_instance_rec.SALES_UNIT_PRICE = FND_API.G_MISS_NUM) THEN
16944 p_instance_rec.SALES_UNIT_PRICE := l_curr_instance_rec.SALES_UNIT_PRICE;
16945 END IF;
16946
16947 IF (p_instance_rec.SALES_CURRENCY_CODE = FND_API.G_MISS_CHAR) THEN
16948 p_instance_rec.SALES_CURRENCY_CODE := l_curr_instance_rec.SALES_CURRENCY_CODE;
16949 END IF;
16950
16951 IF (p_instance_rec.OPERATIONAL_STATUS_CODE = FND_API.G_MISS_CHAR) THEN
16952 p_instance_rec.OPERATIONAL_STATUS_CODE := l_curr_instance_rec.OPERATIONAL_STATUS_CODE;
16953 END IF;
16954 -- End addition of columns for FA Integration
16955
16956 CSI_ITEM_INSTANCES_H_PKG.Insert_Row
16957 ( px_INSTANCE_HISTORY_ID => l_csi_item_instance_h_id
16958 ,p_INSTANCE_ID => p_instance_rec.instance_id
16959 ,p_TRANSACTION_ID => p_txn_rec.TRANSACTION_ID
16960 ,p_OLD_INSTANCE_NUMBER => l_curr_instance_rec.INSTANCE_NUMBER
16961 ,p_NEW_INSTANCE_NUMBER => p_instance_rec.INSTANCE_NUMBER
16962 ,p_OLD_EXTERNAL_REFERENCE => l_curr_instance_rec.EXTERNAL_REFERENCE
16963 ,p_NEW_EXTERNAL_REFERENCE => p_instance_rec.EXTERNAL_REFERENCE
16964 ,p_OLD_INVENTORY_ITEM_ID => l_curr_instance_rec.INVENTORY_ITEM_ID
16965 ,p_NEW_INVENTORY_ITEM_ID => p_instance_rec.INVENTORY_ITEM_ID
16966 ,p_OLD_INVENTORY_REVISION => l_curr_instance_rec.INVENTORY_REVISION
16967 ,p_NEW_INVENTORY_REVISION => p_instance_rec.INVENTORY_REVISION
16968 ,p_OLD_INV_MASTER_ORGZN_ID => l_curr_instance_rec.INV_MASTER_ORGANIZATION_ID
16969 ,p_NEW_INV_MASTER_ORGZN_ID => p_instance_rec.INV_MASTER_ORGANIZATION_ID
16970 ,p_OLD_SERIAL_NUMBER => l_curr_instance_rec.SERIAL_NUMBER
16971 ,p_NEW_SERIAL_NUMBER => p_instance_rec.SERIAL_NUMBER
16972 ,p_OLD_MFG_SERIAL_NUMBER_FLAG => l_curr_instance_rec.MFG_SERIAL_NUMBER_FLAG
16973 ,p_NEW_MFG_SERIAL_NUMBER_FLAG => p_instance_rec.MFG_SERIAL_NUMBER_FLAG
16974 ,p_OLD_LOT_NUMBER => l_curr_instance_rec.LOT_NUMBER
16975 ,p_NEW_LOT_NUMBER => p_instance_rec.LOT_NUMBER
16976 ,p_OLD_QUANTITY => l_curr_instance_rec.QUANTITY
16977 ,p_NEW_QUANTITY => p_instance_rec.QUANTITY
16978 ,p_OLD_UNIT_OF_MEASURE => l_curr_instance_rec.UNIT_OF_MEASURE
16979 ,p_NEW_UNIT_OF_MEASURE => p_instance_rec.UNIT_OF_MEASURE
16980 ,p_OLD_ACCOUNTING_CLASS_CODE => l_curr_instance_rec.ACCOUNTING_CLASS_CODE
16981 ,p_NEW_ACCOUNTING_CLASS_CODE => p_instance_rec.ACCOUNTING_CLASS_CODE
16982 ,p_OLD_INSTANCE_CONDITION_ID => l_curr_instance_rec.INSTANCE_CONDITION_ID
16983 ,p_NEW_INSTANCE_CONDITION_ID => p_instance_rec.INSTANCE_CONDITION_ID
16984 ,p_OLD_INSTANCE_STATUS_ID => l_curr_instance_rec.INSTANCE_STATUS_ID
16985 ,p_NEW_INSTANCE_STATUS_ID => p_instance_rec.INSTANCE_STATUS_ID
16986 ,p_OLD_CUSTOMER_VIEW_FLAG => l_curr_instance_rec.CUSTOMER_VIEW_FLAG
16987 ,p_NEW_CUSTOMER_VIEW_FLAG => p_instance_rec.CUSTOMER_VIEW_FLAG
16988 ,p_OLD_MERCHANT_VIEW_FLAG => l_curr_instance_rec.MERCHANT_VIEW_FLAG
16989 ,p_NEW_MERCHANT_VIEW_FLAG => p_instance_rec.MERCHANT_VIEW_FLAG
16990 ,p_OLD_SELLABLE_FLAG => l_curr_instance_rec.SELLABLE_FLAG
16991 ,p_NEW_SELLABLE_FLAG => p_instance_rec.SELLABLE_FLAG
16992 ,p_OLD_SYSTEM_ID => l_curr_instance_rec.SYSTEM_ID
16993 ,p_NEW_SYSTEM_ID => p_instance_rec.SYSTEM_ID
16994 ,p_OLD_INSTANCE_TYPE_CODE => l_curr_instance_rec.INSTANCE_TYPE_CODE
16995 ,p_NEW_INSTANCE_TYPE_CODE => p_instance_rec.INSTANCE_TYPE_CODE
16996 ,p_OLD_ACTIVE_START_DATE => l_curr_instance_rec.ACTIVE_START_DATE
16997 ,p_NEW_ACTIVE_START_DATE => p_instance_rec.ACTIVE_START_DATE
16998 ,p_OLD_ACTIVE_END_DATE => l_curr_instance_rec.ACTIVE_END_DATE
16999 ,p_NEW_ACTIVE_END_DATE => p_instance_rec.ACTIVE_END_DATE
17000 ,p_OLD_LOCATION_TYPE_CODE => l_curr_instance_rec.LOCATION_TYPE_CODE
17001 ,p_NEW_LOCATION_TYPE_CODE => p_instance_rec.LOCATION_TYPE_CODE
17002 ,p_OLD_LOCATION_ID => l_curr_instance_rec.LOCATION_ID
17003 ,p_NEW_LOCATION_ID => p_instance_rec.LOCATION_ID
17004 ,p_OLD_INV_ORGANIZATION_ID => l_curr_instance_rec.INV_ORGANIZATION_ID
17005 ,p_NEW_INV_ORGANIZATION_ID => p_instance_rec.INV_ORGANIZATION_ID
17006 ,p_OLD_INV_SUBINVENTORY_NAME => l_curr_instance_rec.INV_SUBINVENTORY_NAME
17007 ,p_NEW_INV_SUBINVENTORY_NAME => p_instance_rec.INV_SUBINVENTORY_NAME
17008 ,p_OLD_INV_LOCATOR_ID => l_curr_instance_rec.INV_LOCATOR_ID
17009 ,p_NEW_INV_LOCATOR_ID => p_instance_rec.INV_LOCATOR_ID
17010 ,p_OLD_PA_PROJECT_ID => l_curr_instance_rec.PA_PROJECT_ID
17011 ,p_NEW_PA_PROJECT_ID => p_instance_rec.PA_PROJECT_ID
17012 ,p_OLD_PA_PROJECT_TASK_ID => l_curr_instance_rec.PA_PROJECT_TASK_ID
17013 ,p_NEW_PA_PROJECT_TASK_ID => p_instance_rec.PA_PROJECT_TASK_ID
17014 ,p_OLD_IN_TRANSIT_ORDER_LINE_ID => l_curr_instance_rec.IN_TRANSIT_ORDER_LINE_ID
17015 ,p_NEW_IN_TRANSIT_ORDER_LINE_ID => p_instance_rec.IN_TRANSIT_ORDER_LINE_ID
17016 ,p_OLD_WIP_JOB_ID => l_curr_instance_rec.WIP_JOB_ID
17017 ,p_NEW_WIP_JOB_ID => p_instance_rec.WIP_JOB_ID
17018 ,p_OLD_PO_ORDER_LINE_ID => l_curr_instance_rec.PO_ORDER_LINE_ID
17019 ,p_NEW_PO_ORDER_LINE_ID => p_instance_rec.PO_ORDER_LINE_ID
17020 ,p_OLD_COMPLETENESS_FLAG => l_curr_instance_rec.COMPLETENESS_FLAG
17021 ,p_NEW_COMPLETENESS_FLAG => p_instance_rec.COMPLETENESS_FLAG
17022 ,p_FULL_DUMP_FLAG => 'Y'
17023 ,p_NEW_CONTEXT => p_instance_rec.CONTEXT
17024 ,P_OLD_CONTEXT => l_curr_instance_rec.CONTEXT
17025 ,p_NEW_ATTRIBUTE1 => p_instance_rec.ATTRIBUTE1
17026 ,p_OLD_ATTRIBUTE1 => l_curr_instance_rec.ATTRIBUTE1
17027 ,p_NEW_ATTRIBUTE2 => p_instance_rec.ATTRIBUTE2
17028 ,p_OLD_ATTRIBUTE2 => l_curr_instance_rec.ATTRIBUTE2
17029 ,p_NEW_ATTRIBUTE3 => p_instance_rec.ATTRIBUTE3
17030 ,p_OLD_ATTRIBUTE3 => l_curr_instance_rec.ATTRIBUTE3
17031 ,p_NEW_ATTRIBUTE4 => p_instance_rec.ATTRIBUTE4
17032 ,p_OLD_ATTRIBUTE4 => l_curr_instance_rec.ATTRIBUTE4
17033 ,p_NEW_ATTRIBUTE5 => p_instance_rec.ATTRIBUTE5
17034 ,p_OLD_ATTRIBUTE5 => l_curr_instance_rec.ATTRIBUTE5
17035 ,p_NEW_ATTRIBUTE6 => p_instance_rec.ATTRIBUTE6
17036 ,p_OLD_ATTRIBUTE6 => l_curr_instance_rec.ATTRIBUTE6
17037 ,p_NEW_ATTRIBUTE7 => p_instance_rec.ATTRIBUTE7
17038 ,p_OLD_ATTRIBUTE7 => l_curr_instance_rec.ATTRIBUTE7
17039 ,p_NEW_ATTRIBUTE8 => p_instance_rec.ATTRIBUTE8
17040 ,p_OLD_ATTRIBUTE8 => l_curr_instance_rec.ATTRIBUTE8
17041 ,p_NEW_ATTRIBUTE9 => p_instance_rec.ATTRIBUTE9
17042 ,p_OLD_ATTRIBUTE9 => l_curr_instance_rec.ATTRIBUTE9
17043 ,p_NEW_ATTRIBUTE10 => p_instance_rec.ATTRIBUTE10
17044 ,p_OLD_ATTRIBUTE10 => l_curr_instance_rec.ATTRIBUTE10
17045 ,p_NEW_ATTRIBUTE11 => p_instance_rec.ATTRIBUTE11
17046 ,p_OLD_ATTRIBUTE11 => l_curr_instance_rec.ATTRIBUTE11
17047 ,p_NEW_ATTRIBUTE12 => p_instance_rec.ATTRIBUTE12
17048 ,p_OLD_ATTRIBUTE12 => l_curr_instance_rec.ATTRIBUTE12
17049 ,p_NEW_ATTRIBUTE13 => p_instance_rec.ATTRIBUTE13
17050 ,p_OLD_ATTRIBUTE13 => l_curr_instance_rec.ATTRIBUTE13
17051 ,p_NEW_ATTRIBUTE14 => p_instance_rec.ATTRIBUTE14
17052 ,p_OLD_ATTRIBUTE14 => l_curr_instance_rec.ATTRIBUTE14
17053 ,p_NEW_ATTRIBUTE15 => p_instance_rec.ATTRIBUTE15
17054 ,p_OLD_ATTRIBUTE15 => l_curr_instance_rec.ATTRIBUTE15
17055 ,p_CREATED_BY => FND_GLOBAL.USER_ID
17056 ,p_CREATION_DATE => SYSDATE
17057 ,p_LAST_UPDATED_BY => FND_GLOBAL.USER_ID
17058 ,p_LAST_UPDATE_DATE => SYSDATE
17059 ,p_LAST_UPDATE_LOGIN => FND_GLOBAL.CONC_LOGIN_ID
17060 ,p_OBJECT_VERSION_NUMBER => 1
17061 ,p_OLD_INST_LOC_TYPE_CODE => l_curr_instance_rec.INSTALL_LOCATION_TYPE_CODE
17062 ,p_NEW_INST_LOC_TYPE_CODE => p_instance_rec.INSTALL_LOCATION_TYPE_CODE
17063 ,p_OLD_INST_LOC_ID => l_curr_instance_rec.INSTALL_LOCATION_ID
17064 ,p_NEW_INST_LOC_ID => p_instance_rec.INSTALL_LOCATION_ID
17065 ,p_OLD_INST_USAGE_CODE => l_curr_instance_rec.INSTANCE_USAGE_CODE
17066 ,p_NEW_INST_USAGE_CODE => p_instance_rec.INSTANCE_USAGE_CODE
17067 ,p_OLD_last_vld_organization_id => l_cur_instance_rec.last_vld_organization_id
17068 ,p_NEW_last_vld_organization_id => l_last_vld_organization_id
17069 ,p_OLD_CONFIG_INST_REV_NUM => l_curr_instance_rec.CONFIG_INST_REV_NUM
17070 ,p_NEW_CONFIG_INST_REV_NUM => p_instance_rec.CONFIG_INST_REV_NUM
17071 ,p_OLD_CONFIG_VALID_STATUS => l_curr_instance_rec.CONFIG_VALID_STATUS
17072 ,p_NEW_CONFIG_VALID_STATUS => p_instance_rec.CONFIG_VALID_STATUS
17073 ,p_OLD_INSTANCE_DESCRIPTION => l_curr_instance_rec.INSTANCE_DESCRIPTION
17074 ,p_NEW_INSTANCE_DESCRIPTION => p_instance_rec.INSTANCE_DESCRIPTION
17075 -- Added on jan1503
17076 ,p_OLD_INSTALL_DATE => l_curr_instance_rec.INSTALL_DATE
17077 ,p_NEW_INSTALL_DATE => p_instance_rec.INSTALL_DATE
17078 ,p_OLD_RETURN_BY_DATE => l_curr_instance_rec.RETURN_BY_DATE
17079 ,p_NEW_RETURN_BY_DATE => p_instance_rec.RETURN_BY_DATE
17080 ,p_OLD_ACTUAL_RETURN_DATE => l_curr_instance_rec.ACTUAL_RETURN_DATE
17081 ,p_NEW_ACTUAL_RETURN_DATE => p_instance_rec.ACTUAL_RETURN_DATE
17082 ,p_OLD_LAST_OE_AGREEMENT_ID => l_curr_instance_rec.LAST_OE_AGREEMENT_ID
17083 ,p_NEW_LAST_OE_AGREEMENT_ID => p_instance_rec.LAST_OE_AGREEMENT_ID
17084 ,p_OLD_LAST_OE_ORDER_LINE_ID => l_curr_instance_rec.LAST_OE_ORDER_LINE_ID
17085 ,p_NEW_LAST_OE_ORDER_LINE_ID => p_instance_rec.LAST_OE_ORDER_LINE_ID
17086 ,p_OLD_LAST_OE_RMA_LINE_ID => l_curr_instance_rec.LAST_OE_RMA_LINE_ID
17087 ,p_NEW_LAST_OE_RMA_LINE_ID => p_instance_rec.LAST_OE_RMA_LINE_ID
17088 ,p_OLD_LAST_WIP_JOB_ID => l_curr_instance_rec.LAST_WIP_JOB_ID
17089 ,p_NEW_LAST_WIP_JOB_ID => p_instance_rec.LAST_WIP_JOB_ID
17090 ,p_OLD_LAST_PO_PO_LINE_ID => l_curr_instance_rec.LAST_PO_PO_LINE_ID
17091 ,p_NEW_LAST_PO_PO_LINE_ID => p_instance_rec.LAST_PO_PO_LINE_ID
17092 ,p_OLD_LAST_PA_PROJECT_ID => l_curr_instance_rec.LAST_PA_PROJECT_ID
17093 ,p_NEW_LAST_PA_PROJECT_ID => p_instance_rec.LAST_PA_PROJECT_ID
17094 ,p_OLD_LAST_PA_TASK_ID => l_curr_instance_rec.LAST_PA_TASK_ID
17095 ,p_NEW_LAST_PA_TASK_ID => p_instance_rec.LAST_PA_TASK_ID
17096 ,p_OLD_LAST_TXN_LINE_DETAIL_ID => l_curr_instance_rec.LAST_TXN_LINE_DETAIL_ID
17097 ,p_NEW_LAST_TXN_LINE_DETAIL_ID => p_instance_rec.LAST_TXN_LINE_DETAIL_ID
17098 ,p_OLD_LAST_OE_PO_NUMBER => l_curr_instance_rec.LAST_OE_PO_NUMBER
17099 ,p_NEW_LAST_OE_PO_NUMBER => p_instance_rec.LAST_OE_PO_NUMBER
17100 --start of parameters addition for eam integration--
17101 ,p_OLD_NETWORK_ASSET_FLAG => l_curr_instance_rec.NETWORK_ASSET_FLAG
17102 ,p_NEW_NETWORK_ASSET_FLAG => p_instance_rec.NETWORK_ASSET_FLAG
17103 ,p_OLD_MAINTAINABLE_FLAG => l_curr_instance_rec.MAINTAINABLE_FLAG
17104 ,p_NEW_MAINTAINABLE_FLAG => p_instance_rec.MAINTAINABLE_FLAG
17105 ,p_OLD_PN_LOCATION_ID => l_curr_instance_rec.PN_LOCATION_ID
17106 ,p_NEW_PN_LOCATION_ID => p_instance_rec.PN_LOCATION_ID
17107 ,p_OLD_ASSET_CRITICALITY_CODE => l_curr_instance_rec.ASSET_CRITICALITY_CODE
17108 ,p_NEW_ASSET_CRITICALITY_CODE => p_instance_rec.ASSET_CRITICALITY_CODE
17109 ,p_OLD_CATEGORY_ID => l_curr_instance_rec.CATEGORY_ID
17110 ,p_NEW_CATEGORY_ID => p_instance_rec.CATEGORY_ID
17111 ,p_OLD_EQUIPMENT_GEN_OBJECT_ID => l_curr_instance_rec.EQUIPMENT_GEN_OBJECT_ID
17112 ,p_NEW_EQUIPMENT_GEN_OBJECT_ID => p_instance_rec.EQUIPMENT_GEN_OBJECT_ID
17113 ,p_OLD_INSTANTIATION_FLAG => l_curr_instance_rec.INSTANTIATION_FLAG
17114 ,p_NEW_INSTANTIATION_FLAG => p_instance_rec.INSTANTIATION_FLAG
17115 ,p_OLD_LINEAR_LOCATION_ID => l_curr_instance_rec.LINEAR_LOCATION_ID
17116 ,p_NEW_LINEAR_LOCATION_ID => p_instance_rec.LINEAR_LOCATION_ID
17117 ,p_OLD_OPERATIONAL_LOG_FLAG => l_curr_instance_rec.OPERATIONAL_LOG_FLAG
17118 ,p_NEW_OPERATIONAL_LOG_FLAG => p_instance_rec.OPERATIONAL_LOG_FLAG
17119 ,p_OLD_CHECKIN_STATUS => l_curr_instance_rec.CHECKIN_STATUS
17120 ,p_NEW_CHECKIN_STATUS => p_instance_rec.CHECKIN_STATUS
17121 ,p_OLD_SUP_WARRANTY_EXP_DATE => l_curr_instance_rec.SUPPLIER_WARRANTY_EXP_DATE
17122 ,p_NEW_SUP_WARRANTY_EXP_DATE => p_instance_rec.SUPPLIER_WARRANTY_EXP_DATE
17123 ,p_OLD_ATTRIBUTE16 => l_curr_instance_rec.ATTRIBUTE16
17124 ,p_NEW_ATTRIBUTE16 => p_instance_rec.ATTRIBUTE16
17125 ,p_OLD_ATTRIBUTE17 => l_curr_instance_rec.ATTRIBUTE17
17126 ,p_NEW_ATTRIBUTE17 => p_instance_rec.ATTRIBUTE17
17127 ,p_OLD_ATTRIBUTE18 => l_curr_instance_rec.ATTRIBUTE18
17128 ,p_NEW_ATTRIBUTE18 => p_instance_rec.ATTRIBUTE18
17129 ,p_OLD_ATTRIBUTE19 => l_curr_instance_rec.ATTRIBUTE19
17130 ,p_NEW_ATTRIBUTE19 => p_instance_rec.ATTRIBUTE19
17131 ,p_OLD_ATTRIBUTE20 => l_curr_instance_rec.ATTRIBUTE20
17132 ,p_NEW_ATTRIBUTE20 => p_instance_rec.ATTRIBUTE20
17133 ,p_OLD_ATTRIBUTE21 => l_curr_instance_rec.ATTRIBUTE21
17134 ,p_NEW_ATTRIBUTE21 => p_instance_rec.ATTRIBUTE21
17135 ,p_OLD_ATTRIBUTE22 => l_curr_instance_rec.ATTRIBUTE22
17136 ,p_NEW_ATTRIBUTE22 => p_instance_rec.ATTRIBUTE22
17137 ,p_OLD_ATTRIBUTE23 => l_curr_instance_rec.ATTRIBUTE23
17138 ,p_NEW_ATTRIBUTE23 => p_instance_rec.ATTRIBUTE23
17139 ,p_OLD_ATTRIBUTE24 => l_curr_instance_rec.ATTRIBUTE24
17140 ,p_NEW_ATTRIBUTE24 => p_instance_rec.ATTRIBUTE24
17141 ,p_OLD_ATTRIBUTE25 => l_curr_instance_rec.ATTRIBUTE25
17142 ,p_NEW_ATTRIBUTE25 => p_instance_rec.ATTRIBUTE25
17143 ,p_OLD_ATTRIBUTE26 => l_curr_instance_rec.ATTRIBUTE26
17144 ,p_NEW_ATTRIBUTE26 => p_instance_rec.ATTRIBUTE26
17145 ,p_OLD_ATTRIBUTE27 => l_curr_instance_rec.ATTRIBUTE27
17146 ,p_NEW_ATTRIBUTE27 => p_instance_rec.ATTRIBUTE27
17147 ,p_OLD_ATTRIBUTE28 => l_curr_instance_rec.ATTRIBUTE28
17148 ,p_NEW_ATTRIBUTE28 => p_instance_rec.ATTRIBUTE28
17149 ,p_OLD_ATTRIBUTE29 => l_curr_instance_rec.ATTRIBUTE29
17150 ,p_NEW_ATTRIBUTE29 => p_instance_rec.ATTRIBUTE29
17151 ,p_OLD_ATTRIBUTE30 => l_curr_instance_rec.ATTRIBUTE30
17152 ,p_NEW_ATTRIBUTE30 => p_instance_rec.ATTRIBUTE30
17153 --end of parameters addition for eam integration--
17154 -- Addition of columns for FA Integration
17155 ,p_OLD_PAYABLES_UNIT_PRICE => l_curr_instance_rec.PAYABLES_UNIT_PRICE
17156 ,p_NEW_PAYABLES_UNIT_PRICE => p_instance_rec.PAYABLES_UNIT_PRICE
17157 ,p_OLD_PAYABLES_CURRENCY_CODE => l_curr_instance_rec.PAYABLES_CURRENCY_CODE
17158 ,p_NEW_PAYABLES_CURRENCY_CODE => p_instance_rec.PAYABLES_CURRENCY_CODE
17159 ,p_OLD_PURCHASE_UNIT_PRICE => l_curr_instance_rec.PURCHASE_UNIT_PRICE
17160 ,p_NEW_PURCHASE_UNIT_PRICE => p_instance_rec.PURCHASE_UNIT_PRICE
17161 ,p_OLD_PURCHASE_CURRENCY_CODE => l_curr_instance_rec.PURCHASE_CURRENCY_CODE
17162 ,p_NEW_PURCHASE_CURRENCY_CODE => p_instance_rec.PURCHASE_CURRENCY_CODE
17163 ,p_OLD_SALES_UNIT_PRICE => l_curr_instance_rec.SALES_UNIT_PRICE
17164 ,p_NEW_SALES_UNIT_PRICE => p_instance_rec.SALES_UNIT_PRICE
17165 ,p_OLD_SALES_CURRENCY_CODE => l_curr_instance_rec.SALES_CURRENCY_CODE
17166 ,p_NEW_SALES_CURRENCY_CODE => p_instance_rec.SALES_CURRENCY_CODE
17167 ,p_OLD_OPERATIONAL_STATUS_CODE => l_curr_instance_rec.OPERATIONAL_STATUS_CODE
17168 ,p_NEW_OPERATIONAL_STATUS_CODE => p_instance_rec.OPERATIONAL_STATUS_CODE
17169 -- End addition of columns for FA Integration
17170 -- Begin Add Code for Siebel Genesis Project
17171 ,p_OLD_SOURCE_CODE => l_curr_instance_rec.SOURCE_CODE
17172 ,p_NEW_SOURCE_CODE => p_instance_rec.SOURCE_CODE
17173 -- End Add Code for Siebel Genesis Project
17174 );
17175
17176 ELSE -- l_mod_value <> 0
17177
17178 -- If the mod value is not equal to zero then dump only the changed columns
17179 -- while the unchanged values have old and new values as null
17180
17181 IF (p_instance_rec.instance_number = fnd_api.g_miss_char) OR
17182 NVL(p_instance_rec.instance_number, fnd_api.g_miss_char) = NVL(l_curr_instance_rec.instance_number, fnd_api.g_miss_char) THEN
17183 l_instance_hist_rec.old_instance_number := NULL;
17184 l_instance_hist_rec.new_instance_number := NULL;
17185 ELSIF
17186 NVL(l_curr_instance_rec.instance_number,fnd_api.g_miss_char) <> NVL(p_instance_rec.instance_number,fnd_api.g_miss_char) THEN
17187 l_instance_hist_rec.old_instance_number := l_curr_instance_rec.instance_number ;
17188 l_instance_hist_rec.new_instance_number := p_instance_rec.instance_number ;
17189 END IF;
17190 --
17191 IF (p_instance_rec.external_reference = fnd_api.g_miss_char) OR
17192 NVL(p_instance_rec.external_reference, fnd_api.g_miss_char) = NVL(l_curr_instance_rec.external_reference, fnd_api.g_miss_char) THEN
17193 l_instance_hist_rec.old_external_reference := NULL;
17194 l_instance_hist_rec.new_external_reference := NULL;
17195 ELSIF
17196 NVL(l_curr_instance_rec.external_reference,fnd_api.g_miss_char) <> NVL(p_instance_rec.external_reference,fnd_api.g_miss_char) THEN
17197 l_instance_hist_rec.old_external_reference := l_curr_instance_rec.external_reference ;
17198 l_instance_hist_rec.new_external_reference := p_instance_rec.external_reference ;
17199 END IF;
17200 --
17201 IF (p_instance_rec.inventory_item_id = fnd_api.g_miss_num) OR
17202 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
17203 l_instance_hist_rec.old_inventory_item_id := NULL;
17204 l_instance_hist_rec.new_inventory_item_id := NULL;
17205 ELSIF
17206 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
17207 l_instance_hist_rec.old_inventory_item_id := l_curr_instance_rec.inventory_item_id ;
17208 l_instance_hist_rec.new_inventory_item_id := p_instance_rec.inventory_item_id ;
17209 END IF;
17210 --
17211 IF (p_instance_rec.inventory_revision = fnd_api.g_miss_char) OR
17212 NVL(l_curr_instance_rec.inventory_revision,fnd_api.g_miss_char) = NVL(p_instance_rec.inventory_revision,fnd_api.g_miss_char) THEN
17213 l_instance_hist_rec.old_inventory_revision := NULL;
17214 l_instance_hist_rec.new_inventory_revision := NULL;
17215 ELSIF
17216 NVL(l_curr_instance_rec.inventory_revision,fnd_api.g_miss_char) <> NVL(p_instance_rec.inventory_revision,fnd_api.g_miss_char) THEN
17217 l_instance_hist_rec.old_inventory_revision := l_curr_instance_rec.inventory_revision ;
17218 l_instance_hist_rec.new_inventory_revision := p_instance_rec.inventory_revision ;
17219 END IF;
17220 --
17221 IF (p_instance_rec.inv_master_organization_id = fnd_api.g_miss_num) OR
17222 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
17223 l_instance_hist_rec.old_inv_master_org_id := NULL;
17224 l_instance_hist_rec.new_inv_master_org_id := NULL;
17225 ELSIF
17226 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
17227 l_instance_hist_rec.old_inv_master_org_id := l_curr_instance_rec.inv_master_organization_id ;
17228 l_instance_hist_rec.new_inv_master_org_id := p_instance_rec.inv_master_organization_id ;
17229 END IF;
17230 --
17231 IF (p_instance_rec.serial_number = fnd_api.g_miss_char) OR
17232 NVL(l_curr_instance_rec.serial_number,fnd_api.g_miss_char) = NVL(p_instance_rec.serial_number,fnd_api.g_miss_char) THEN
17233 l_instance_hist_rec.old_serial_number := NULL;
17234 l_instance_hist_rec.new_serial_number := NULL;
17235 ELSIF
17236 NVL(l_curr_instance_rec.serial_number,fnd_api.g_miss_char) <> NVL(p_instance_rec.serial_number,fnd_api.g_miss_char) THEN
17237 l_instance_hist_rec.old_serial_number := l_curr_instance_rec.serial_number ;
17238 l_instance_hist_rec.new_serial_number := p_instance_rec.serial_number ;
17239 END IF;
17240 --
17241 IF (p_instance_rec.mfg_serial_number_flag = fnd_api.g_miss_char) OR
17242 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
17243 l_instance_hist_rec.old_mfg_serial_number_flag := NULL;
17244 l_instance_hist_rec.new_mfg_serial_number_flag := NULL;
17245 ELSIF
17246 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
17247 l_instance_hist_rec.old_mfg_serial_number_flag := l_curr_instance_rec.mfg_serial_number_flag ;
17248 l_instance_hist_rec.new_mfg_serial_number_flag := p_instance_rec.mfg_serial_number_flag ;
17249 END IF;
17250 --
17251 IF (p_instance_rec.lot_number = fnd_api.g_miss_char) OR
17252 NVL(l_curr_instance_rec.lot_number,fnd_api.g_miss_char) = NVL(p_instance_rec.lot_number,fnd_api.g_miss_char) THEN
17253 l_instance_hist_rec.old_lot_number := NULL;
17254 l_instance_hist_rec.new_lot_number := NULL;
17255 ELSIF
17256 NVL(l_curr_instance_rec.lot_number,fnd_api.g_miss_char) <> NVL(p_instance_rec.lot_number,fnd_api.g_miss_char) THEN
17257 l_instance_hist_rec.old_lot_number := l_curr_instance_rec.lot_number ;
17258 l_instance_hist_rec.new_lot_number := p_instance_rec.lot_number ;
17259 END IF;
17260 --
17261 IF (p_instance_rec.quantity = fnd_api.g_miss_num) OR
17262 NVL(l_curr_instance_rec.quantity,fnd_api.g_miss_num) = NVL(p_instance_rec.quantity,fnd_api.g_miss_num) THEN
17263 l_instance_hist_rec.old_quantity := NULL;
17264 l_instance_hist_rec.new_quantity := NULL;
17265 ELSIF
17266 NVL(l_curr_instance_rec.quantity,fnd_api.g_miss_num) <> NVL(p_instance_rec.quantity,fnd_api.g_miss_num) THEN
17267 l_instance_hist_rec.old_quantity := l_curr_instance_rec.quantity ;
17268 l_instance_hist_rec.new_quantity := p_instance_rec.quantity ;
17269 END IF;
17270 --
17271 IF (p_instance_rec.unit_of_measure = fnd_api.g_miss_char) OR
17272 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
17273 l_instance_hist_rec.old_unit_of_measure := NULL;
17274 l_instance_hist_rec.new_unit_of_measure := NULL;
17275 ELSIF
17276 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
17277 l_instance_hist_rec.old_unit_of_measure := l_curr_instance_rec.unit_of_measure ;
17278 l_instance_hist_rec.new_unit_of_measure := p_instance_rec.unit_of_measure ;
17279 END IF;
17280 --
17281 IF (p_instance_rec.accounting_class_code = fnd_api.g_miss_char) OR
17282 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
17283 l_instance_hist_rec.old_accounting_class_code := NULL;
17284 l_instance_hist_rec.new_accounting_class_code := NULL;
17285 ELSIF
17286 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
17287 l_instance_hist_rec.old_accounting_class_code := l_curr_instance_rec.accounting_class_code ;
17288 l_instance_hist_rec.new_accounting_class_code := p_instance_rec.accounting_class_code ;
17289 END IF;
17290 --
17291 IF (p_instance_rec.instance_condition_id = fnd_api.g_miss_num) OR
17292 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
17293 l_instance_hist_rec.old_instance_condition_id := NULL;
17294 l_instance_hist_rec.new_instance_condition_id := NULL;
17295 ELSIF
17296 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
17297 l_instance_hist_rec.old_instance_condition_id := l_curr_instance_rec.instance_condition_id ;
17298 l_instance_hist_rec.new_instance_condition_id := p_instance_rec.instance_condition_id ;
17299 END IF;
17300 --
17301 IF (p_instance_rec.instance_status_id = fnd_api.g_miss_num) OR
17302 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
17303 l_instance_hist_rec.old_instance_status_id := NULL;
17304 l_instance_hist_rec.new_instance_status_id := NULL;
17305 ELSIF
17306 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
17307 l_instance_hist_rec.old_instance_status_id := l_curr_instance_rec.instance_status_id ;
17308 l_instance_hist_rec.new_instance_status_id := p_instance_rec.instance_status_id ;
17309 END IF;
17310 --
17311 IF (p_instance_rec.customer_view_flag = fnd_api.g_miss_char) OR
17312 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
17313 l_instance_hist_rec.old_customer_view_flag := NULL;
17314 l_instance_hist_rec.new_customer_view_flag := NULL;
17315 ELSIF
17316 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
17317 l_instance_hist_rec.old_customer_view_flag := l_curr_instance_rec.customer_view_flag ;
17318 l_instance_hist_rec.new_customer_view_flag := p_instance_rec.customer_view_flag ;
17319 END IF;
17320 --
17321 IF (p_instance_rec.merchant_view_flag = fnd_api.g_miss_char) OR
17322 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
17323 l_instance_hist_rec.old_merchant_view_flag := NULL;
17324 l_instance_hist_rec.new_merchant_view_flag := NULL;
17325 ELSIF
17326 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
17327 l_instance_hist_rec.old_merchant_view_flag := l_curr_instance_rec.merchant_view_flag ;
17328 l_instance_hist_rec.new_merchant_view_flag := p_instance_rec.merchant_view_flag ;
17329 END IF;
17330 --
17331 IF (p_instance_rec.sellable_flag = fnd_api.g_miss_char) OR
17332 NVL(l_curr_instance_rec.sellable_flag,fnd_api.g_miss_char) = NVL(p_instance_rec.sellable_flag,fnd_api.g_miss_char) THEN
17333 l_instance_hist_rec.old_sellable_flag := NULL;
17334 l_instance_hist_rec.new_sellable_flag := NULL;
17335 ELSIF
17336 NVL(l_curr_instance_rec.sellable_flag,fnd_api.g_miss_char) <> NVL(p_instance_rec.sellable_flag,fnd_api.g_miss_char) THEN
17337 l_instance_hist_rec.old_sellable_flag := l_curr_instance_rec.sellable_flag ;
17338 l_instance_hist_rec.new_sellable_flag := p_instance_rec.sellable_flag ;
17339 END IF;
17340 --
17341 IF (p_instance_rec.system_id = fnd_api.g_miss_num) OR
17342 NVL(l_curr_instance_rec.system_id,fnd_api.g_miss_num) = NVL(p_instance_rec.system_id,fnd_api.g_miss_num) THEN
17343 l_instance_hist_rec.old_system_id := NULL;
17344 l_instance_hist_rec.new_system_id := NULL;
17345 ELSIF
17346 NVL(l_curr_instance_rec.system_id,fnd_api.g_miss_num) <> NVL(p_instance_rec.system_id,fnd_api.g_miss_num) THEN
17347 l_instance_hist_rec.old_system_id := l_curr_instance_rec.system_id ;
17348 l_instance_hist_rec.new_system_id := p_instance_rec.system_id ;
17349 END IF;
17350 --
17351 IF (p_instance_rec.instance_type_code = fnd_api.g_miss_char) OR
17352 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
17353 l_instance_hist_rec.old_instance_type_code := NULL;
17354 l_instance_hist_rec.new_instance_type_code := NULL;
17355 ELSIF
17356 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
17357 l_instance_hist_rec.old_instance_type_code := l_curr_instance_rec.instance_type_code ;
17358 l_instance_hist_rec.new_instance_type_code := p_instance_rec.instance_type_code ;
17359 END IF;
17360 --
17361 IF (p_instance_rec.active_start_date = fnd_api.g_miss_date) OR
17362 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
17363 l_instance_hist_rec.old_active_start_date := NULL;
17364 l_instance_hist_rec.new_active_start_date := NULL;
17365 ELSIF
17366 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
17367 l_instance_hist_rec.old_active_start_date := l_curr_instance_rec.active_start_date ;
17368 l_instance_hist_rec.new_active_start_date := p_instance_rec.active_start_date ;
17369 END IF;
17370 --
17371 IF (p_instance_rec.active_end_date = fnd_api.g_miss_date) OR
17372 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
17373 l_instance_hist_rec.old_active_end_date := NULL;
17374 l_instance_hist_rec.new_active_end_date := NULL;
17375 ELSIF
17376 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
17377 l_instance_hist_rec.old_active_end_date := l_curr_instance_rec.active_end_date ;
17378 l_instance_hist_rec.new_active_end_date := p_instance_rec.active_end_date ;
17379 END IF;
17380 --
17381 IF (p_instance_rec.location_type_code = fnd_api.g_miss_char) OR
17382 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
17383 l_instance_hist_rec.old_location_type_code := NULL;
17384 l_instance_hist_rec.new_location_type_code := NULL;
17385 ELSIF
17386 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
17387 l_instance_hist_rec.old_location_type_code := l_curr_instance_rec.location_type_code ;
17388 l_instance_hist_rec.new_location_type_code := p_instance_rec.location_type_code ;
17389 END IF;
17390 --
17391 IF (p_instance_rec.location_id = fnd_api.g_miss_num) OR
17392 NVL(l_curr_instance_rec.location_id,fnd_api.g_miss_num) = NVL(p_instance_rec.location_id,fnd_api.g_miss_num) THEN
17393 l_instance_hist_rec.old_location_id := NULL;
17394 l_instance_hist_rec.new_location_id := NULL;
17395 ELSIF
17396 NVL(l_curr_instance_rec.location_id,fnd_api.g_miss_num) <> NVL(p_instance_rec.location_id,fnd_api.g_miss_num) THEN
17397 l_instance_hist_rec.old_location_id := l_curr_instance_rec.location_id ;
17398 l_instance_hist_rec.new_location_id := p_instance_rec.location_id ;
17399 END IF;
17400 --
17401 IF (p_instance_rec.inv_organization_id = fnd_api.g_miss_num) OR
17402 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
17403 l_instance_hist_rec.old_inv_organization_id := NULL;
17404 l_instance_hist_rec.new_inv_organization_id := NULL;
17405 ELSIF
17406 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
17407 l_instance_hist_rec.old_inv_organization_id := l_curr_instance_rec.inv_organization_id ;
17408 l_instance_hist_rec.new_inv_organization_id := p_instance_rec.inv_organization_id ;
17409 END IF;
17410 --
17411 IF (p_instance_rec.inv_subinventory_name = fnd_api.g_miss_char) OR
17412 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
17413 l_instance_hist_rec.old_inv_subinventory_name := NULL;
17414 l_instance_hist_rec.new_inv_subinventory_name := NULL;
17415 ELSIF
17416 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
17417 l_instance_hist_rec.old_inv_subinventory_name := l_curr_instance_rec.inv_subinventory_name ;
17418 l_instance_hist_rec.new_inv_subinventory_name := p_instance_rec.inv_subinventory_name ;
17419 END IF;
17420 --
17421 IF (p_instance_rec.inv_locator_id = fnd_api.g_miss_num) OR
17422 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
17423 l_instance_hist_rec.old_inv_locator_id := NULL;
17424 l_instance_hist_rec.new_inv_locator_id := NULL;
17425 ELSIF
17426 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
17427 l_instance_hist_rec.old_inv_locator_id := l_curr_instance_rec.inv_locator_id ;
17428 l_instance_hist_rec.new_inv_locator_id := p_instance_rec.inv_locator_id ;
17429 END IF;
17430 --
17431 IF (p_instance_rec.pa_project_id = fnd_api.g_miss_num) OR
17432 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
17433 l_instance_hist_rec.old_pa_project_id := NULL;
17434 l_instance_hist_rec.new_pa_project_id := NULL;
17435 ELSIF
17436 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
17437 l_instance_hist_rec.old_pa_project_id := l_curr_instance_rec.pa_project_id ;
17438 l_instance_hist_rec.new_pa_project_id := p_instance_rec.pa_project_id ;
17439 END IF;
17440 --
17441 IF (p_instance_rec.pa_project_task_id = fnd_api.g_miss_num) OR
17442 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
17443 l_instance_hist_rec.old_pa_project_task_id := NULL;
17444 l_instance_hist_rec.new_pa_project_task_id := NULL;
17445 ELSIF
17446 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
17447 l_instance_hist_rec.old_pa_project_task_id := l_curr_instance_rec.pa_project_task_id ;
17448 l_instance_hist_rec.new_pa_project_task_id := p_instance_rec.pa_project_task_id ;
17449 END IF;
17450 --
17451 IF (p_instance_rec.in_transit_order_line_id = fnd_api.g_miss_num) OR
17452 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
17453 l_instance_hist_rec.old_in_transit_order_line_id := NULL;
17454 l_instance_hist_rec.new_in_transit_order_line_id := NULL;
17455 ELSIF
17456 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
17457 l_instance_hist_rec.old_in_transit_order_line_id := l_curr_instance_rec.in_transit_order_line_id ;
17458 l_instance_hist_rec.new_in_transit_order_line_id := p_instance_rec.in_transit_order_line_id ;
17459 END IF;
17460 --
17461 IF (p_instance_rec.last_oe_agreement_id = fnd_api.g_miss_num) OR
17462 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
17463 l_instance_hist_rec.old_last_oe_agreement_id := NULL;
17464 l_instance_hist_rec.new_last_oe_agreement_id := NULL;
17465 ELSIF
17466 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
17467 l_instance_hist_rec.old_last_oe_agreement_id := l_curr_instance_rec.last_oe_agreement_id ;
17468 l_instance_hist_rec.new_last_oe_agreement_id := p_instance_rec.last_oe_agreement_id ;
17469 END IF;
17470 --
17471 IF (p_instance_rec.LAST_OE_ORDER_LINE_ID = fnd_api.g_miss_num) OR
17472 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
17473 l_instance_hist_rec.old_LAST_OE_ORDER_LINE_ID := NULL;
17474 l_instance_hist_rec.new_LAST_OE_ORDER_LINE_ID := NULL;
17475 ELSIF
17476 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
17477 l_instance_hist_rec.old_LAST_OE_ORDER_LINE_ID := l_curr_instance_rec.LAST_OE_ORDER_LINE_ID ;
17478 l_instance_hist_rec.new_LAST_OE_ORDER_LINE_ID := p_instance_rec.LAST_OE_ORDER_LINE_ID ;
17479 END IF;
17480 --
17481 IF (p_instance_rec.LAST_OE_RMA_LINE_ID = fnd_api.g_miss_num) OR
17482 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
17483 l_instance_hist_rec.old_LAST_OE_RMA_LINE_ID := NULL;
17484 l_instance_hist_rec.new_LAST_OE_RMA_LINE_ID := NULL;
17485 ELSIF
17486 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
17487 l_instance_hist_rec.old_LAST_OE_RMA_LINE_ID := l_curr_instance_rec.LAST_OE_RMA_LINE_ID ;
17488 l_instance_hist_rec.new_LAST_OE_RMA_LINE_ID := p_instance_rec.LAST_OE_RMA_LINE_ID ;
17489 END IF;
17490 --
17491 IF (p_instance_rec.LAST_WIP_JOB_ID = fnd_api.g_miss_num) OR
17492 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
17493 l_instance_hist_rec.old_LAST_WIP_JOB_ID := NULL;
17494 l_instance_hist_rec.new_LAST_WIP_JOB_ID := NULL;
17495 ELSIF
17496 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
17497 l_instance_hist_rec.old_LAST_WIP_JOB_ID := l_curr_instance_rec.LAST_WIP_JOB_ID ;
17498 l_instance_hist_rec.new_LAST_WIP_JOB_ID := p_instance_rec.LAST_WIP_JOB_ID ;
17499 END IF;
17500 --
17501 IF (p_instance_rec.LAST_PO_PO_LINE_ID = fnd_api.g_miss_num) OR
17502 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
17503 l_instance_hist_rec.old_LAST_PO_PO_LINE_ID := NULL;
17504 l_instance_hist_rec.new_LAST_PO_PO_LINE_ID := NULL;
17505 ELSIF
17506 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
17507 l_instance_hist_rec.old_LAST_PO_PO_LINE_ID := l_curr_instance_rec.LAST_PO_PO_LINE_ID ;
17508 l_instance_hist_rec.new_LAST_PO_PO_LINE_ID := p_instance_rec.LAST_PO_PO_LINE_ID ;
17509 END IF;
17510 --
17511 IF (p_instance_rec.LAST_PA_PROJECT_ID = fnd_api.g_miss_num) OR
17512 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
17513 l_instance_hist_rec.old_LAST_PA_PROJECT_ID := NULL;
17514 l_instance_hist_rec.new_LAST_PA_PROJECT_ID := NULL;
17515 ELSIF
17516 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
17517 l_instance_hist_rec.old_LAST_PA_PROJECT_ID := l_curr_instance_rec.LAST_PA_PROJECT_ID ;
17518 l_instance_hist_rec.new_LAST_PA_PROJECT_ID := p_instance_rec.LAST_PA_PROJECT_ID ;
17519 END IF;
17520 --
17521 IF (p_instance_rec.LAST_PA_TASK_ID = fnd_api.g_miss_num) OR
17522 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
17523 l_instance_hist_rec.old_LAST_PA_TASK_ID := NULL;
17524 l_instance_hist_rec.new_LAST_PA_TASK_ID := NULL;
17525 ELSIF
17526 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
17527 l_instance_hist_rec.old_LAST_PA_TASK_ID := l_curr_instance_rec.LAST_PA_TASK_ID ;
17528 l_instance_hist_rec.new_LAST_PA_TASK_ID := p_instance_rec.LAST_PA_TASK_ID ;
17529 END IF;
17530 --
17531 IF (p_instance_rec.LAST_TXN_LINE_DETAIL_ID = fnd_api.g_miss_num) OR
17532 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
17533 l_instance_hist_rec.old_LAST_TXN_LINE_DETAIL_ID := NULL;
17534 l_instance_hist_rec.new_LAST_TXN_LINE_DETAIL_ID := NULL;
17535 ELSIF
17536 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
17537 l_instance_hist_rec.old_LAST_TXN_LINE_DETAIL_ID := l_curr_instance_rec.LAST_TXN_LINE_DETAIL_ID ;
17538 l_instance_hist_rec.new_LAST_TXN_LINE_DETAIL_ID := p_instance_rec.LAST_TXN_LINE_DETAIL_ID ;
17539 END IF;
17540 --
17541 IF (p_instance_rec.LAST_OE_PO_NUMBER = fnd_api.g_miss_char) OR
17542 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
17543 l_instance_hist_rec.old_LAST_OE_PO_NUMBER := NULL;
17544 l_instance_hist_rec.new_LAST_OE_PO_NUMBER := NULL;
17545 ELSIF
17546 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
17547 l_instance_hist_rec.old_LAST_OE_PO_NUMBER := l_curr_instance_rec.LAST_OE_PO_NUMBER ;
17548 l_instance_hist_rec.new_LAST_OE_PO_NUMBER := p_instance_rec.LAST_OE_PO_NUMBER ;
17549 END IF;
17550 --
17551 IF (p_instance_rec.wip_job_id = fnd_api.g_miss_num) OR
17552 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
17553 l_instance_hist_rec.old_wip_job_id := NULL;
17554 l_instance_hist_rec.new_wip_job_id := NULL;
17555 ELSIF
17556 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
17557 l_instance_hist_rec.old_wip_job_id := l_curr_instance_rec.wip_job_id ;
17558 l_instance_hist_rec.new_wip_job_id := p_instance_rec.wip_job_id ;
17559 END IF;
17560 --
17561 IF (p_instance_rec.po_order_line_id = fnd_api.g_miss_num) OR
17562 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
17563 l_instance_hist_rec.old_po_order_line_id := NULL;
17564 l_instance_hist_rec.new_po_order_line_id := NULL;
17565 ELSIF
17566 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
17567 l_instance_hist_rec.old_po_order_line_id := l_curr_instance_rec.po_order_line_id ;
17568 l_instance_hist_rec.new_po_order_line_id := p_instance_rec.po_order_line_id ;
17569 END IF;
17570 --
17571 IF (p_instance_rec.completeness_flag = fnd_api.g_miss_char) OR
17572 NVL(l_curr_instance_rec.completeness_flag,fnd_api.g_miss_char) = NVL(p_instance_rec.completeness_flag,fnd_api.g_miss_char) THEN
17573 l_instance_hist_rec.old_completeness_flag := NULL;
17574 l_instance_hist_rec.new_completeness_flag := NULL;
17575 ELSIF
17576 NVL(l_curr_instance_rec.completeness_flag,fnd_api.g_miss_char) <> NVL(p_instance_rec.completeness_flag,fnd_api.g_miss_char) THEN
17577 l_instance_hist_rec.old_completeness_flag := l_curr_instance_rec.completeness_flag ;
17578 l_instance_hist_rec.new_completeness_flag := p_instance_rec.completeness_flag ;
17579 END IF;
17580 --
17581 IF (p_instance_rec.context = fnd_api.g_miss_char) OR
17582 NVL(l_curr_instance_rec.context,fnd_api.g_miss_char) = NVL(p_instance_rec.context,fnd_api.g_miss_char) THEN
17583 l_instance_hist_rec.old_context := NULL;
17584 l_instance_hist_rec.new_context := NULL;
17585 ELSIF
17586 NVL(l_curr_instance_rec.context,fnd_api.g_miss_char) <> NVL(p_instance_rec.context,fnd_api.g_miss_char) THEN
17587 l_instance_hist_rec.old_context := l_curr_instance_rec.context ;
17588 l_instance_hist_rec.new_context := p_instance_rec.context ;
17589 END IF;
17590 --
17591 IF (p_instance_rec.attribute1 = fnd_api.g_miss_char) OR
17592 NVL(l_curr_instance_rec.attribute1,fnd_api.g_miss_char) = NVL(p_instance_rec.attribute1,fnd_api.g_miss_char) THEN
17593 l_instance_hist_rec.old_attribute1 := NULL;
17594 l_instance_hist_rec.new_attribute1 := NULL;
17595 ELSIF
17596 NVL(l_curr_instance_rec.attribute1,fnd_api.g_miss_char) <> NVL(p_instance_rec.attribute1,fnd_api.g_miss_char) THEN
17597 l_instance_hist_rec.old_attribute1 := l_curr_instance_rec.attribute1 ;
17598 l_instance_hist_rec.new_attribute1 := p_instance_rec.attribute1 ;
17599 END IF;
17600 --
17601 IF (p_instance_rec.attribute2 = fnd_api.g_miss_char) OR
17602 NVL(l_curr_instance_rec.attribute2,fnd_api.g_miss_char) = NVL(p_instance_rec.attribute2,fnd_api.g_miss_char) THEN
17603 l_instance_hist_rec.old_attribute2 := NULL;
17604 l_instance_hist_rec.new_attribute2 := NULL;
17605 ELSIF
17606 NVL(l_curr_instance_rec.attribute2,fnd_api.g_miss_char) <> NVL(p_instance_rec.attribute2,fnd_api.g_miss_char) THEN
17607 l_instance_hist_rec.old_attribute2 := l_curr_instance_rec.attribute2 ;
17608 l_instance_hist_rec.new_attribute2 := p_instance_rec.attribute2 ;
17609 END IF;
17610 --
17611 IF (p_instance_rec.attribute3 = fnd_api.g_miss_char) OR
17612 NVL(l_curr_instance_rec.attribute3,fnd_api.g_miss_char) = NVL(p_instance_rec.attribute3,fnd_api.g_miss_char) THEN
17613 l_instance_hist_rec.old_attribute3 := NULL;
17614 l_instance_hist_rec.new_attribute3 := NULL;
17615 ELSIF
17616 NVL(l_curr_instance_rec.attribute3,fnd_api.g_miss_char) <> NVL(p_instance_rec.attribute3,fnd_api.g_miss_char) THEN
17617 l_instance_hist_rec.old_attribute3 := l_curr_instance_rec.attribute3 ;
17618 l_instance_hist_rec.new_attribute3 := p_instance_rec.attribute3 ;
17619 END IF;
17620 --
17621 IF (p_instance_rec.attribute4 = fnd_api.g_miss_char) OR
17622 NVL(l_curr_instance_rec.attribute4,fnd_api.g_miss_char) = NVL(p_instance_rec.attribute4,fnd_api.g_miss_char) THEN
17623 l_instance_hist_rec.old_attribute4 := NULL;
17624 l_instance_hist_rec.new_attribute4 := NULL;
17625 ELSIF
17626 NVL(l_curr_instance_rec.attribute4,fnd_api.g_miss_char) <> NVL(p_instance_rec.attribute4,fnd_api.g_miss_char) THEN
17627 l_instance_hist_rec.old_attribute4 := l_curr_instance_rec.attribute4 ;
17628 l_instance_hist_rec.new_attribute4 := p_instance_rec.attribute4 ;
17629 END IF;
17630 --
17631 IF (p_instance_rec.attribute5 = fnd_api.g_miss_char) OR
17632 NVL(l_curr_instance_rec.attribute5,fnd_api.g_miss_char) = NVL(p_instance_rec.attribute5,fnd_api.g_miss_char) THEN
17633 l_instance_hist_rec.old_attribute5 := NULL;
17634 l_instance_hist_rec.new_attribute5 := NULL;
17635 ELSIF
17636 NVL(l_curr_instance_rec.attribute5,fnd_api.g_miss_char) <> NVL(p_instance_rec.attribute5,fnd_api.g_miss_char) THEN
17637 l_instance_hist_rec.old_attribute5 := l_curr_instance_rec.attribute5 ;
17638 l_instance_hist_rec.new_attribute5 := p_instance_rec.attribute5 ;
17639 END IF;
17640 --
17641 IF (p_instance_rec.attribute6 = fnd_api.g_miss_char) OR
17642 NVL(l_curr_instance_rec.attribute6,fnd_api.g_miss_char) = NVL(p_instance_rec.attribute6,fnd_api.g_miss_char) THEN
17643 l_instance_hist_rec.old_attribute6 := NULL;
17644 l_instance_hist_rec.new_attribute6 := NULL;
17645 ELSIF
17646 NVL(l_curr_instance_rec.attribute6,fnd_api.g_miss_char) <> NVL(p_instance_rec.attribute6,fnd_api.g_miss_char) THEN
17647 l_instance_hist_rec.old_attribute6 := l_curr_instance_rec.attribute6 ;
17648 l_instance_hist_rec.new_attribute6 := p_instance_rec.attribute6 ;
17649 END IF;
17650 --
17651 IF (p_instance_rec.attribute7 = fnd_api.g_miss_char) OR
17652 NVL(l_curr_instance_rec.attribute7,fnd_api.g_miss_char) = NVL(p_instance_rec.attribute7,fnd_api.g_miss_char) THEN
17653 l_instance_hist_rec.old_attribute7 := NULL;
17654 l_instance_hist_rec.new_attribute7 := NULL;
17655 ELSIF
17656 NVL(l_curr_instance_rec.attribute7,fnd_api.g_miss_char) <> NVL(p_instance_rec.attribute7,fnd_api.g_miss_char) THEN
17657 l_instance_hist_rec.old_attribute7 := l_curr_instance_rec.attribute7 ;
17658 l_instance_hist_rec.new_attribute7 := p_instance_rec.attribute7 ;
17659 END IF;
17660 --
17661 IF (p_instance_rec.attribute8 = fnd_api.g_miss_char) OR
17662 NVL(l_curr_instance_rec.attribute8,fnd_api.g_miss_char) = NVL(p_instance_rec.attribute8,fnd_api.g_miss_char) THEN
17663 l_instance_hist_rec.old_attribute8 := NULL;
17664 l_instance_hist_rec.new_attribute8 := NULL;
17665 ELSIF
17666 NVL(l_curr_instance_rec.attribute8,fnd_api.g_miss_char) <> NVL(p_instance_rec.attribute8,fnd_api.g_miss_char) THEN
17667 l_instance_hist_rec.old_attribute8 := l_curr_instance_rec.attribute8 ;
17668 l_instance_hist_rec.new_attribute8 := p_instance_rec.attribute8 ;
17669 END IF;
17670 --
17671 IF (p_instance_rec.attribute9 = fnd_api.g_miss_char) OR
17672 NVL(l_curr_instance_rec.attribute9,fnd_api.g_miss_char) = NVL(p_instance_rec.attribute9,fnd_api.g_miss_char) THEN
17673 l_instance_hist_rec.old_attribute9 := NULL;
17674 l_instance_hist_rec.new_attribute9 := NULL;
17675 ELSIF
17676 NVL(l_curr_instance_rec.attribute9,fnd_api.g_miss_char) <> NVL(p_instance_rec.attribute9,fnd_api.g_miss_char) THEN
17677 l_instance_hist_rec.old_attribute9 := l_curr_instance_rec.attribute9 ;
17678 l_instance_hist_rec.new_attribute9 := p_instance_rec.attribute9 ;
17679 END IF;
17680 --
17681 IF (p_instance_rec.attribute10 = fnd_api.g_miss_char) OR
17682 NVL(l_curr_instance_rec.attribute10,fnd_api.g_miss_char) = NVL(p_instance_rec.attribute10,fnd_api.g_miss_char) THEN
17683 l_instance_hist_rec.old_attribute10 := NULL;
17684 l_instance_hist_rec.new_attribute10 := NULL;
17685 ELSIF
17686 NVL(l_curr_instance_rec.attribute10,fnd_api.g_miss_char) <> NVL(p_instance_rec.attribute10,fnd_api.g_miss_char) THEN
17687 l_instance_hist_rec.old_attribute10 := l_curr_instance_rec.attribute10 ;
17688 l_instance_hist_rec.new_attribute10 := p_instance_rec.attribute10 ;
17689 END IF;
17690 --
17691 IF (p_instance_rec.attribute11 = fnd_api.g_miss_char) OR
17692 NVL(l_curr_instance_rec.attribute11,fnd_api.g_miss_char) = NVL(p_instance_rec.attribute11,fnd_api.g_miss_char) THEN
17693 l_instance_hist_rec.old_attribute11 := NULL;
17694 l_instance_hist_rec.new_attribute11 := NULL;
17695 ELSIF
17696 NVL(l_curr_instance_rec.attribute11,fnd_api.g_miss_char) <> NVL(p_instance_rec.attribute11,fnd_api.g_miss_char) THEN
17697 l_instance_hist_rec.old_attribute11 := l_curr_instance_rec.attribute11 ;
17698 l_instance_hist_rec.new_attribute11 := p_instance_rec.attribute11 ;
17699 END IF;
17700 --
17701 IF (p_instance_rec.attribute12 = fnd_api.g_miss_char) OR
17702 NVL(l_curr_instance_rec.attribute12,fnd_api.g_miss_char) = NVL(p_instance_rec.attribute12,fnd_api.g_miss_char) THEN
17703 l_instance_hist_rec.old_attribute12 := NULL;
17704 l_instance_hist_rec.new_attribute12 := NULL;
17705 ELSIF
17706 NVL(l_curr_instance_rec.attribute12,fnd_api.g_miss_char) <> NVL(p_instance_rec.attribute12,fnd_api.g_miss_char) THEN
17707 l_instance_hist_rec.old_attribute12 := l_curr_instance_rec.attribute12 ;
17708 l_instance_hist_rec.new_attribute12 := p_instance_rec.attribute12 ;
17709 END IF;
17710 --
17711 IF (p_instance_rec.attribute13 = fnd_api.g_miss_char) OR
17712 NVL(l_curr_instance_rec.attribute13,fnd_api.g_miss_char) = NVL(p_instance_rec.attribute13,fnd_api.g_miss_char) THEN
17713 l_instance_hist_rec.old_attribute13 := NULL;
17714 l_instance_hist_rec.new_attribute13 := NULL;
17715 ELSIF
17716 NVL(l_curr_instance_rec.attribute13,fnd_api.g_miss_char) <> NVL(p_instance_rec.attribute13,fnd_api.g_miss_char) THEN
17717 l_instance_hist_rec.old_attribute13 := l_curr_instance_rec.attribute13 ;
17718 l_instance_hist_rec.new_attribute13 := p_instance_rec.attribute13 ;
17719 END IF;
17720 --
17721 IF (p_instance_rec.attribute14 = fnd_api.g_miss_char) OR
17722 NVL(l_curr_instance_rec.attribute14,fnd_api.g_miss_char) = NVL(p_instance_rec.attribute14,fnd_api.g_miss_char) THEN
17723 l_instance_hist_rec.old_attribute14 := NULL;
17724 l_instance_hist_rec.new_attribute14 := NULL;
17725 ELSIF
17726 NVL(l_curr_instance_rec.attribute14,fnd_api.g_miss_char) <> NVL(p_instance_rec.attribute14,fnd_api.g_miss_char) THEN
17727 l_instance_hist_rec.old_attribute14 := l_curr_instance_rec.attribute14 ;
17728 l_instance_hist_rec.new_attribute14 := p_instance_rec.attribute14 ;
17729 END IF;
17730 --
17731 IF (p_instance_rec.attribute15 = fnd_api.g_miss_char) OR
17732 NVL(l_curr_instance_rec.attribute15,fnd_api.g_miss_char) = NVL(p_instance_rec.attribute15,fnd_api.g_miss_char) THEN
17733 l_instance_hist_rec.old_attribute15 := NULL;
17734 l_instance_hist_rec.new_attribute15 := NULL;
17735 ELSIF
17736 NVL(l_curr_instance_rec.attribute15,fnd_api.g_miss_char) <> NVL(p_instance_rec.attribute15,fnd_api.g_miss_char) THEN
17737 l_instance_hist_rec.old_attribute15 := l_curr_instance_rec.attribute15 ;
17738 l_instance_hist_rec.new_attribute15 := p_instance_rec.attribute15 ;
17739 END IF;
17740 --
17741 IF (p_instance_rec.install_location_type_code = fnd_api.g_miss_char) OR
17742 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
17743 l_instance_hist_rec.old_install_location_type_code := NULL;
17744 l_instance_hist_rec.new_install_location_type_code := NULL;
17745 ELSIF
17746 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
17747 l_instance_hist_rec.old_install_location_type_code := l_curr_instance_rec.install_location_type_code ;
17748 l_instance_hist_rec.new_install_location_type_code := p_instance_rec.install_location_type_code ;
17749 END IF;
17750 --
17751 IF (p_instance_rec.install_location_id = fnd_api.g_miss_num) OR
17752 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
17753 l_instance_hist_rec.old_install_location_id := NULL;
17754 l_instance_hist_rec.new_install_location_id := NULL;
17755 ELSIF
17756 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
17757 l_instance_hist_rec.old_install_location_id := l_curr_instance_rec.install_location_id ;
17758 l_instance_hist_rec.new_install_location_id := p_instance_rec.install_location_id ;
17759 END IF;
17760 --
17761 IF (p_instance_rec.instance_usage_code = fnd_api.g_miss_char) OR
17762 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
17763 l_instance_hist_rec.old_instance_usage_code := NULL;
17764 l_instance_hist_rec.new_instance_usage_code := NULL;
17765 ELSIF
17766 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
17767 l_instance_hist_rec.old_instance_usage_code := l_curr_instance_rec.instance_usage_code ;
17768 l_instance_hist_rec.new_instance_usage_code := p_instance_rec.instance_usage_code ;
17769 END IF;
17770 --
17771 IF (p_instance_rec.last_oe_agreement_id = fnd_api.g_miss_num) OR
17772 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
17773 l_instance_hist_rec.old_last_oe_agreement_id := NULL;
17774 l_instance_hist_rec.new_last_oe_agreement_id := NULL;
17775 ELSIF
17776 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
17777 l_instance_hist_rec.old_last_oe_agreement_id := l_curr_instance_rec.last_oe_agreement_id ;
17778 l_instance_hist_rec.new_last_oe_agreement_id := p_instance_rec.last_oe_agreement_id ;
17779 END IF;
17780 --
17781 IF (p_instance_rec.LAST_OE_ORDER_LINE_ID = fnd_api.g_miss_num) OR
17782 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
17783 l_instance_hist_rec.old_LAST_OE_ORDER_LINE_ID := NULL;
17784 l_instance_hist_rec.new_LAST_OE_ORDER_LINE_ID := NULL;
17785 ELSIF
17786 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
17787 l_instance_hist_rec.old_LAST_OE_ORDER_LINE_ID := l_curr_instance_rec.LAST_OE_ORDER_LINE_ID ;
17788 l_instance_hist_rec.new_LAST_OE_ORDER_LINE_ID := p_instance_rec.LAST_OE_ORDER_LINE_ID ;
17789 END IF;
17790 --
17791 IF (p_instance_rec.LAST_OE_RMA_LINE_ID = fnd_api.g_miss_num) OR
17792 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
17793 l_instance_hist_rec.OLD_LAST_OE_RMA_LINE_ID := NULL;
17794 l_instance_hist_rec.NEW_LAST_OE_RMA_LINE_ID := NULL;
17795 ELSIF
17796 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
17797 l_instance_hist_rec.OLD_LAST_OE_RMA_LINE_ID := l_curr_instance_rec.LAST_OE_RMA_LINE_ID ;
17798 l_instance_hist_rec.NEW_LAST_OE_RMA_LINE_ID := p_instance_rec.LAST_OE_RMA_LINE_ID ;
17799 END IF;
17800 --
17801 IF (p_instance_rec.LAST_WIP_JOB_ID = fnd_api.g_miss_num) OR
17802 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
17803 l_instance_hist_rec.old_LAST_WIP_JOB_ID := NULL;
17804 l_instance_hist_rec.new_LAST_WIP_JOB_ID := NULL;
17805 ELSIF
17806 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
17807 l_instance_hist_rec.old_LAST_WIP_JOB_ID := l_curr_instance_rec.LAST_WIP_JOB_ID ;
17808 l_instance_hist_rec.new_LAST_WIP_JOB_ID := p_instance_rec.LAST_WIP_JOB_ID ;
17809 END IF;
17810 --
17811 IF (p_instance_rec.LAST_PO_PO_LINE_ID = fnd_api.g_miss_num) OR
17812 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
17813 l_instance_hist_rec.old_LAST_PO_PO_LINE_ID := NULL;
17814 l_instance_hist_rec.new_LAST_PO_PO_LINE_ID := NULL;
17815 ELSIF
17816 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
17817 l_instance_hist_rec.old_LAST_PO_PO_LINE_ID := l_curr_instance_rec.LAST_PO_PO_LINE_ID ;
17818 l_instance_hist_rec.new_LAST_PO_PO_LINE_ID := p_instance_rec.LAST_PO_PO_LINE_ID ;
17819 END IF;
17820 --
17821 IF (p_instance_rec.LAST_PA_PROJECT_ID = fnd_api.g_miss_num) OR
17822 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
17823 l_instance_hist_rec.old_LAST_PA_PROJECT_ID := NULL;
17824 l_instance_hist_rec.new_LAST_PA_PROJECT_ID := NULL;
17825 ELSIF
17826 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
17827 l_instance_hist_rec.old_LAST_PA_PROJECT_ID := l_curr_instance_rec.LAST_PA_PROJECT_ID ;
17828 l_instance_hist_rec.new_LAST_PA_PROJECT_ID := p_instance_rec.LAST_PA_PROJECT_ID ;
17829 END IF;
17830 --
17831 IF (p_instance_rec.LAST_PA_TASK_ID = fnd_api.g_miss_num) OR
17832 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
17833 l_instance_hist_rec.old_LAST_PA_TASK_ID := NULL;
17834 l_instance_hist_rec.new_LAST_PA_TASK_ID := NULL;
17835 ELSIF
17836 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
17837 l_instance_hist_rec.old_LAST_PA_TASK_ID := l_curr_instance_rec.LAST_PA_TASK_ID ;
17838 l_instance_hist_rec.new_LAST_PA_TASK_ID := p_instance_rec.LAST_PA_TASK_ID ;
17839 END IF;
17840 --
17841 IF (p_instance_rec.LAST_TXN_LINE_DETAIL_ID = fnd_api.g_miss_num) OR
17842 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
17843 l_instance_hist_rec.old_LAST_TXN_LINE_DETAIL_ID := NULL;
17844 l_instance_hist_rec.new_LAST_TXN_LINE_DETAIL_ID := NULL;
17845 ELSIF
17846 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
17847 l_instance_hist_rec.old_LAST_TXN_LINE_DETAIL_ID := l_curr_instance_rec.LAST_TXN_LINE_DETAIL_ID ;
17848 l_instance_hist_rec.new_LAST_TXN_LINE_DETAIL_ID := p_instance_rec.LAST_TXN_LINE_DETAIL_ID ;
17849 END IF;
17850 --
17851 IF (p_instance_rec.LAST_OE_PO_NUMBER = fnd_api.g_miss_char) OR
17852 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
17853 l_instance_hist_rec.old_LAST_OE_PO_NUMBER := NULL;
17854 l_instance_hist_rec.new_LAST_OE_PO_NUMBER := NULL;
17855 ELSIF
17856 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
17857 l_instance_hist_rec.old_LAST_OE_PO_NUMBER := l_curr_instance_rec.LAST_OE_PO_NUMBER ;
17858 l_instance_hist_rec.new_LAST_OE_PO_NUMBER := p_instance_rec.LAST_OE_PO_NUMBER ;
17859 END IF;
17860 --
17861 IF (p_instance_rec.vld_organization_id = fnd_api.g_miss_num) OR
17862 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
17863 l_curr_instance_rec.last_vld_organization_id := NULL;
17864 l_last_vld_organization_id := NULL;
17865 ELSIF
17866 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
17867 l_curr_instance_rec.last_vld_organization_id := l_curr_instance_rec.last_vld_organization_id;
17868 l_last_vld_organization_id := p_instance_rec.vld_organization_id;
17869 END IF;
17870 --
17871 IF (p_instance_rec.config_inst_rev_num = fnd_api.g_miss_num) OR
17872 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
17873 l_instance_hist_rec.old_config_inst_rev_num := NULL;
17874 l_instance_hist_rec.new_config_inst_rev_num := NULL;
17875 ELSIF
17876 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
17877 l_instance_hist_rec.old_config_inst_rev_num := l_curr_instance_rec.config_inst_rev_num;
17878 l_instance_hist_rec.new_config_inst_rev_num := p_instance_rec.config_inst_rev_num;
17879 END IF;
17880 --
17881 IF (p_instance_rec.config_valid_status = fnd_api.g_miss_char) OR
17882 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
17883 l_instance_hist_rec.old_config_valid_status := NULL;
17884 l_instance_hist_rec.new_config_valid_status := NULL;
17885 ELSIF
17886 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
17887 l_instance_hist_rec.old_config_valid_status := l_curr_instance_rec.config_valid_status;
17888 l_instance_hist_rec.new_config_valid_status := p_instance_rec.config_valid_status;
17889 END IF;
17890 --
17891 IF (p_instance_rec.instance_description = fnd_api.g_miss_char) OR
17892 NVL(p_instance_rec.instance_description, fnd_api.g_miss_char) = NVL(l_curr_instance_rec.instance_description, fnd_api.g_miss_char) THEN
17893 l_instance_hist_rec.old_instance_description := NULL;
17894 l_instance_hist_rec.new_instance_description := NULL;
17895 ELSIF
17896 NVL(l_curr_instance_rec.instance_description,fnd_api.g_miss_char) <> NVL(p_instance_rec.instance_description,fnd_api.g_miss_char) THEN
17897 l_instance_hist_rec.old_instance_description := l_curr_instance_rec.instance_description;
17898 l_instance_hist_rec.new_instance_description := p_instance_rec.instance_description;
17899 END IF;
17900
17901 IF (p_instance_rec.install_date = fnd_api.g_miss_date) OR
17902 NVL(l_curr_instance_rec.install_date,fnd_api.g_miss_date) = NVL(p_instance_rec.install_date,fnd_api.g_miss_date) THEN
17903 l_instance_hist_rec.old_install_date := NULL;
17904 l_instance_hist_rec.new_install_date := NULL;
17905 ELSIF
17906 NVL(l_curr_instance_rec.install_date,fnd_api.g_miss_date) <> NVL(p_instance_rec.install_date,fnd_api.g_miss_date) THEN
17907 l_instance_hist_rec.old_install_date := l_curr_instance_rec.install_date ;
17908 l_instance_hist_rec.new_install_date := p_instance_rec.install_date ;
17909 END IF;
17910
17911 IF (p_instance_rec.return_by_date = fnd_api.g_miss_date) OR
17912 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
17913 l_instance_hist_rec.old_return_by_date := NULL;
17914 l_instance_hist_rec.new_return_by_date := NULL;
17915 ELSIF
17916 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
17917 l_instance_hist_rec.old_return_by_date := l_curr_instance_rec.return_by_date ;
17918 l_instance_hist_rec.new_return_by_date := p_instance_rec.return_by_date ;
17919 END IF;
17920
17921 IF (p_instance_rec.actual_return_date = fnd_api.g_miss_date) OR
17922 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
17923 l_instance_hist_rec.old_actual_return_date := NULL;
17924 l_instance_hist_rec.new_actual_return_date := NULL;
17925 ELSIF
17926 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
17927 l_instance_hist_rec.old_actual_return_date := l_curr_instance_rec.actual_return_date ;
17928 l_instance_hist_rec.new_actual_return_date := p_instance_rec.actual_return_date ;
17929 END IF;
17930
17931 --start of code for eam integration--
17932 --
17933 IF (p_instance_rec.network_asset_flag = fnd_api.g_miss_char) OR
17934 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
17935 l_instance_hist_rec.old_network_asset_flag := NULL;
17936 l_instance_hist_rec.new_network_asset_flag := NULL;
17937 ELSIF
17938 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
17939 l_instance_hist_rec.old_network_asset_flag := l_curr_instance_rec.network_asset_flag ;
17940 l_instance_hist_rec.new_network_asset_flag := p_instance_rec.network_asset_flag ;
17941 END IF;
17942 --
17943 IF (p_instance_rec.maintainable_flag = fnd_api.g_miss_char) OR
17944 NVL(l_curr_instance_rec.maintainable_flag,fnd_api.g_miss_char) = NVL(p_instance_rec.maintainable_flag,fnd_api.g_miss_char) THEN
17945 l_instance_hist_rec.old_maintainable_flag := NULL;
17946 l_instance_hist_rec.new_maintainable_flag := NULL;
17947 ELSIF
17948 NVL(l_curr_instance_rec.maintainable_flag,fnd_api.g_miss_char) <> NVL(p_instance_rec.maintainable_flag,fnd_api.g_miss_char) THEN
17949 l_instance_hist_rec.old_maintainable_flag := l_curr_instance_rec.maintainable_flag ;
17950 l_instance_hist_rec.new_maintainable_flag := p_instance_rec.maintainable_flag ;
17951 END IF;
17952 --
17953 IF (p_instance_rec.pn_location_id = fnd_api.g_miss_num) OR
17954 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
17955 l_instance_hist_rec.old_pn_location_id := NULL;
17956 l_instance_hist_rec.new_pn_location_id := NULL;
17957 ELSIF
17958 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
17959 l_instance_hist_rec.old_pn_location_id := l_curr_instance_rec.pn_location_id ;
17960 l_instance_hist_rec.new_pn_location_id := p_instance_rec.pn_location_id ;
17961 END IF;
17962 --
17963 IF (p_instance_rec.asset_criticality_code = fnd_api.g_miss_char) OR
17964 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
17965 l_instance_hist_rec.old_asset_criticality_code := NULL;
17966 l_instance_hist_rec.new_asset_criticality_code := NULL;
17967 ELSIF
17968 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
17969 l_instance_hist_rec.old_asset_criticality_code := l_curr_instance_rec.asset_criticality_code ;
17970 l_instance_hist_rec.new_asset_criticality_code := p_instance_rec.asset_criticality_code ;
17971 END IF;
17972 --
17973 IF (p_instance_rec.category_id = fnd_api.g_miss_num) OR
17974 NVL(l_curr_instance_rec.category_id,fnd_api.g_miss_num) = NVL(p_instance_rec.category_id,fnd_api.g_miss_num) THEN
17975 l_instance_hist_rec.old_category_id := NULL;
17976 l_instance_hist_rec.new_category_id := NULL;
17977 ELSIF
17978 NVL(l_curr_instance_rec.category_id,fnd_api.g_miss_num) <> NVL(p_instance_rec.category_id,fnd_api.g_miss_num) THEN
17979 l_instance_hist_rec.old_category_id := l_curr_instance_rec.category_id ;
17980 l_instance_hist_rec.new_category_id := p_instance_rec.category_id ;
17981 END IF;
17982 --
17983 IF (p_instance_rec.equipment_gen_object_id = fnd_api.g_miss_num) OR
17984 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
17985 l_instance_hist_rec.old_equipment_gen_object_id := NULL;
17986 l_instance_hist_rec.new_equipment_gen_object_id := NULL;
17987 ELSIF
17988 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
17989 l_instance_hist_rec.old_equipment_gen_object_id := l_curr_instance_rec.equipment_gen_object_id ;
17990 l_instance_hist_rec.new_equipment_gen_object_id := p_instance_rec.equipment_gen_object_id ;
17991 END IF;
17992 --
17993 IF (p_instance_rec.instantiation_flag = fnd_api.g_miss_char) OR
17994 NVL(l_curr_instance_rec.instantiation_flag,fnd_api.g_miss_char) = NVL(p_instance_rec.instantiation_flag,fnd_api.g_miss_char) THEN
17995 l_instance_hist_rec.old_instantiation_flag := NULL;
17996 l_instance_hist_rec.new_instantiation_flag := NULL;
17997 ELSIF
17998 NVL(l_curr_instance_rec.instantiation_flag,fnd_api.g_miss_char) <> NVL(p_instance_rec.instantiation_flag,fnd_api.g_miss_char) THEN
17999 l_instance_hist_rec.old_instantiation_flag := l_curr_instance_rec.instantiation_flag ;
18000 l_instance_hist_rec.new_instantiation_flag := p_instance_rec.instantiation_flag ;
18001 END IF;
18002 --
18003 IF (p_instance_rec.linear_location_id = fnd_api.g_miss_num) OR
18004 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
18005 l_instance_hist_rec.old_linear_location_id := NULL;
18006 l_instance_hist_rec.new_linear_location_id := NULL;
18007 ELSIF
18008 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
18009 l_instance_hist_rec.old_linear_location_id := l_curr_instance_rec.linear_location_id ;
18010 l_instance_hist_rec.new_linear_location_id := p_instance_rec.linear_location_id ;
18011 END IF;
18012 --
18013 IF (p_instance_rec.operational_log_flag = fnd_api.g_miss_char) OR
18014 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
18015 l_instance_hist_rec.old_operational_log_flag := NULL;
18016 l_instance_hist_rec.new_operational_log_flag := NULL;
18017 ELSIF
18018 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
18019 l_instance_hist_rec.old_operational_log_flag := l_curr_instance_rec.operational_log_flag ;
18020 l_instance_hist_rec.new_operational_log_flag := p_instance_rec.operational_log_flag ;
18021 END IF;
18022 --
18023 IF (p_instance_rec.checkin_status = fnd_api.g_miss_num) OR
18024 NVL(l_curr_instance_rec.checkin_status,fnd_api.g_miss_num) = NVL(p_instance_rec.checkin_status,fnd_api.g_miss_num) THEN
18025 l_instance_hist_rec.old_checkin_status := NULL;
18026 l_instance_hist_rec.new_checkin_status := NULL;
18027 ELSIF
18028 NVL(l_curr_instance_rec.checkin_status,fnd_api.g_miss_num) <> NVL(p_instance_rec.checkin_status,fnd_api.g_miss_num) THEN
18029 l_instance_hist_rec.old_checkin_status := l_curr_instance_rec.checkin_status ;
18030 l_instance_hist_rec.new_checkin_status := p_instance_rec.checkin_status ;
18031 END IF;
18032 --
18033 IF (p_instance_rec.supplier_warranty_exp_date = fnd_api.g_miss_date) OR
18034 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
18035 l_instance_hist_rec.old_supplier_warranty_exp_date := NULL;
18036 l_instance_hist_rec.new_supplier_warranty_exp_date := NULL;
18037 ELSIF
18038 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
18039 l_instance_hist_rec.old_supplier_warranty_exp_date := l_curr_instance_rec.supplier_warranty_exp_date ;
18040 l_instance_hist_rec.new_supplier_warranty_exp_date := p_instance_rec.supplier_warranty_exp_date ;
18041 END IF;
18042 --
18043 IF (p_instance_rec.attribute16 = fnd_api.g_miss_char) OR
18044 NVL(l_curr_instance_rec.attribute16,fnd_api.g_miss_char) = NVL(p_instance_rec.attribute16,fnd_api.g_miss_char) THEN
18045 l_instance_hist_rec.old_attribute16 := NULL;
18046 l_instance_hist_rec.new_attribute16 := NULL;
18047 ELSIF
18048 NVL(l_curr_instance_rec.attribute16,fnd_api.g_miss_char) <> NVL(p_instance_rec.attribute16,fnd_api.g_miss_char) THEN
18049 l_instance_hist_rec.old_attribute16 := l_curr_instance_rec.attribute16 ;
18050 l_instance_hist_rec.new_attribute16 := p_instance_rec.attribute16 ;
18051 END IF;
18052 --
18053 IF (p_instance_rec.attribute17 = fnd_api.g_miss_char) OR
18054 NVL(l_curr_instance_rec.attribute17,fnd_api.g_miss_char) = NVL(p_instance_rec.attribute17,fnd_api.g_miss_char) THEN
18055 l_instance_hist_rec.old_attribute17 := NULL;
18056 l_instance_hist_rec.new_attribute17 := NULL;
18057 ELSIF
18058 NVL(l_curr_instance_rec.attribute17,fnd_api.g_miss_char) <> NVL(p_instance_rec.attribute17,fnd_api.g_miss_char) THEN
18059 l_instance_hist_rec.old_attribute17 := l_curr_instance_rec.attribute17 ;
18060 l_instance_hist_rec.new_attribute17 := p_instance_rec.attribute2 ;
18061 END IF;
18062 --
18063 IF (p_instance_rec.attribute18 = fnd_api.g_miss_char) OR
18064 NVL(l_curr_instance_rec.attribute18,fnd_api.g_miss_char) = NVL(p_instance_rec.attribute18,fnd_api.g_miss_char) THEN
18065 l_instance_hist_rec.old_attribute18 := NULL;
18066 l_instance_hist_rec.new_attribute18 := NULL;
18067 ELSIF
18068 NVL(l_curr_instance_rec.attribute18,fnd_api.g_miss_char) <> NVL(p_instance_rec.attribute18,fnd_api.g_miss_char) THEN
18069 l_instance_hist_rec.old_attribute18 := l_curr_instance_rec.attribute18 ;
18070 l_instance_hist_rec.new_attribute18 := p_instance_rec.attribute18 ;
18071 END IF;
18072 --
18073 IF (p_instance_rec.attribute19 = fnd_api.g_miss_char) OR
18074 NVL(l_curr_instance_rec.attribute19,fnd_api.g_miss_char) = NVL(p_instance_rec.attribute19,fnd_api.g_miss_char) THEN
18075 l_instance_hist_rec.old_attribute19 := NULL;
18076 l_instance_hist_rec.new_attribute19 := NULL;
18077 ELSIF
18078 NVL(l_curr_instance_rec.attribute19,fnd_api.g_miss_char) <> NVL(p_instance_rec.attribute19,fnd_api.g_miss_char) THEN
18079 l_instance_hist_rec.old_attribute19 := l_curr_instance_rec.attribute19 ;
18080 l_instance_hist_rec.new_attribute19 := p_instance_rec.attribute19 ;
18081 END IF;
18082 --
18083 IF (p_instance_rec.attribute20 = fnd_api.g_miss_char) OR
18084 NVL(l_curr_instance_rec.attribute20,fnd_api.g_miss_char) = NVL(p_instance_rec.attribute20,fnd_api.g_miss_char) THEN
18085 l_instance_hist_rec.old_attribute20 := NULL;
18086 l_instance_hist_rec.new_attribute20 := NULL;
18087 ELSIF
18088 NVL(l_curr_instance_rec.attribute20,fnd_api.g_miss_char) <> NVL(p_instance_rec.attribute20,fnd_api.g_miss_char) THEN
18089 l_instance_hist_rec.old_attribute20 := l_curr_instance_rec.attribute20 ;
18090 l_instance_hist_rec.new_attribute20 := p_instance_rec.attribute20 ;
18091 END IF;
18092 --
18093 IF (p_instance_rec.attribute21 = fnd_api.g_miss_char) OR
18094 NVL(l_curr_instance_rec.attribute21,fnd_api.g_miss_char) = NVL(p_instance_rec.attribute21,fnd_api.g_miss_char) THEN
18095 l_instance_hist_rec.old_attribute21 := NULL;
18096 l_instance_hist_rec.new_attribute21 := NULL;
18097 ELSIF
18098 NVL(l_curr_instance_rec.attribute21,fnd_api.g_miss_char) <> NVL(p_instance_rec.attribute21,fnd_api.g_miss_char) THEN
18099 l_instance_hist_rec.old_attribute21 := l_curr_instance_rec.attribute21 ;
18100 l_instance_hist_rec.new_attribute21 := p_instance_rec.attribute21 ;
18101 END IF;
18102 --
18103 IF (p_instance_rec.attribute22 = fnd_api.g_miss_char) OR
18104 NVL(l_curr_instance_rec.attribute22,fnd_api.g_miss_char) = NVL(p_instance_rec.attribute22,fnd_api.g_miss_char) THEN
18105 l_instance_hist_rec.old_attribute22 := NULL;
18106 l_instance_hist_rec.new_attribute22 := NULL;
18107 ELSIF
18108 NVL(l_curr_instance_rec.attribute22,fnd_api.g_miss_char) <> NVL(p_instance_rec.attribute22,fnd_api.g_miss_char) THEN
18109 l_instance_hist_rec.old_attribute22 := l_curr_instance_rec.attribute22 ;
18110 l_instance_hist_rec.new_attribute22 := p_instance_rec.attribute22 ;
18111 END IF;
18112 --
18113 IF (p_instance_rec.attribute23 = fnd_api.g_miss_char) OR
18114 NVL(l_curr_instance_rec.attribute23,fnd_api.g_miss_char) = NVL(p_instance_rec.attribute23,fnd_api.g_miss_char) THEN
18115 l_instance_hist_rec.old_attribute23 := NULL;
18116 l_instance_hist_rec.new_attribute23 := NULL;
18117 ELSIF
18118 NVL(l_curr_instance_rec.attribute23,fnd_api.g_miss_char) <> NVL(p_instance_rec.attribute23,fnd_api.g_miss_char) THEN
18119 l_instance_hist_rec.old_attribute23 := l_curr_instance_rec.attribute23 ;
18120 l_instance_hist_rec.new_attribute23 := p_instance_rec.attribute23 ;
18121 END IF;
18122 --
18123 IF (p_instance_rec.attribute24 = fnd_api.g_miss_char) OR
18124 NVL(l_curr_instance_rec.attribute24,fnd_api.g_miss_char) = NVL(p_instance_rec.attribute24,fnd_api.g_miss_char) THEN
18125 l_instance_hist_rec.old_attribute24 := NULL;
18126 l_instance_hist_rec.new_attribute24 := NULL;
18127 ELSIF
18128 NVL(l_curr_instance_rec.attribute24,fnd_api.g_miss_char) <> NVL(p_instance_rec.attribute24,fnd_api.g_miss_char) THEN
18129 l_instance_hist_rec.old_attribute24 := l_curr_instance_rec.attribute24 ;
18130 l_instance_hist_rec.new_attribute24 := p_instance_rec.attribute24 ;
18131 END IF;
18132 --
18133 IF (p_instance_rec.attribute25 = fnd_api.g_miss_char) OR
18134 NVL(l_curr_instance_rec.attribute25,fnd_api.g_miss_char) = NVL(p_instance_rec.attribute25,fnd_api.g_miss_char) THEN
18135 l_instance_hist_rec.old_attribute25 := NULL;
18136 l_instance_hist_rec.new_attribute25 := NULL;
18137 ELSIF
18138 NVL(l_curr_instance_rec.attribute25,fnd_api.g_miss_char) <> NVL(p_instance_rec.attribute25,fnd_api.g_miss_char) THEN
18139 l_instance_hist_rec.old_attribute25 := l_curr_instance_rec.attribute25 ;
18140 l_instance_hist_rec.new_attribute25 := p_instance_rec.attribute25 ;
18141 END IF;
18142 --
18143 IF (p_instance_rec.attribute26 = fnd_api.g_miss_char) OR
18144 NVL(l_curr_instance_rec.attribute26,fnd_api.g_miss_char) = NVL(p_instance_rec.attribute26,fnd_api.g_miss_char) THEN
18145 l_instance_hist_rec.old_attribute26 := NULL;
18146 l_instance_hist_rec.new_attribute26 := NULL;
18147 ELSIF
18148 NVL(l_curr_instance_rec.attribute26,fnd_api.g_miss_char) <> NVL(p_instance_rec.attribute26,fnd_api.g_miss_char) THEN
18149 l_instance_hist_rec.old_attribute26 := l_curr_instance_rec.attribute26 ;
18150 l_instance_hist_rec.new_attribute26 := p_instance_rec.attribute26 ;
18151 END IF;
18152 --
18153 IF (p_instance_rec.attribute27 = fnd_api.g_miss_char) OR
18154 NVL(l_curr_instance_rec.attribute27,fnd_api.g_miss_char) = NVL(p_instance_rec.attribute27,fnd_api.g_miss_char) THEN
18155 l_instance_hist_rec.old_attribute27 := NULL;
18156 l_instance_hist_rec.new_attribute27 := NULL;
18157 ELSIF
18158 NVL(l_curr_instance_rec.attribute27,fnd_api.g_miss_char) <> NVL(p_instance_rec.attribute27,fnd_api.g_miss_char) THEN
18159 l_instance_hist_rec.old_attribute27 := l_curr_instance_rec.attribute27 ;
18160 l_instance_hist_rec.new_attribute27 := p_instance_rec.attribute27 ;
18161 END IF;
18162 --
18163 IF (p_instance_rec.attribute28 = fnd_api.g_miss_char) OR
18164 NVL(l_curr_instance_rec.attribute28,fnd_api.g_miss_char) = NVL(p_instance_rec.attribute28,fnd_api.g_miss_char) THEN
18165 l_instance_hist_rec.old_attribute28 := NULL;
18166 l_instance_hist_rec.new_attribute28 := NULL;
18167 ELSIF
18168 NVL(l_curr_instance_rec.attribute28,fnd_api.g_miss_char) <> NVL(p_instance_rec.attribute28,fnd_api.g_miss_char) THEN
18169 l_instance_hist_rec.old_attribute28 := l_curr_instance_rec.attribute28 ;
18170 l_instance_hist_rec.new_attribute28 := p_instance_rec.attribute28 ;
18171 END IF;
18172 --
18173 IF (p_instance_rec.attribute29 = fnd_api.g_miss_char) OR
18174 NVL(l_curr_instance_rec.attribute29,fnd_api.g_miss_char) = NVL(p_instance_rec.attribute29,fnd_api.g_miss_char) THEN
18175 l_instance_hist_rec.old_attribute29 := NULL;
18176 l_instance_hist_rec.new_attribute29 := NULL;
18177 ELSIF
18178 NVL(l_curr_instance_rec.attribute29,fnd_api.g_miss_char) <> NVL(p_instance_rec.attribute14,fnd_api.g_miss_char) THEN
18179 l_instance_hist_rec.old_attribute29 := l_curr_instance_rec.attribute29 ;
18180 l_instance_hist_rec.new_attribute29 := p_instance_rec.attribute29 ;
18181 END IF;
18182 --
18183 IF (p_instance_rec.attribute30 = fnd_api.g_miss_char) OR
18184 NVL(l_curr_instance_rec.attribute30,fnd_api.g_miss_char) = NVL(p_instance_rec.attribute30,fnd_api.g_miss_char) THEN
18185 l_instance_hist_rec.old_attribute30 := NULL;
18186 l_instance_hist_rec.new_attribute30 := NULL;
18187 ELSIF
18188 NVL(l_curr_instance_rec.attribute30,fnd_api.g_miss_char) <> NVL(p_instance_rec.attribute30,fnd_api.g_miss_char) THEN
18189 l_instance_hist_rec.old_attribute30 := l_curr_instance_rec.attribute30 ;
18190 l_instance_hist_rec.new_attribute30 := p_instance_rec.attribute30 ;
18191 END IF;
18192 --end of code for eam integration--
18193
18194 -- Addition of columns for FA Integration
18195
18196 IF (p_instance_rec.purchase_unit_price = fnd_api.g_miss_num) OR
18197 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
18198 l_instance_hist_rec.old_purchase_unit_price := NULL;
18199 l_instance_hist_rec.new_purchase_unit_price := NULL;
18200 ELSIF
18201 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
18202 l_instance_hist_rec.old_purchase_unit_price := l_curr_instance_rec.purchase_unit_price ;
18203 l_instance_hist_rec.new_purchase_unit_price := p_instance_rec.purchase_unit_price ;
18204 END IF;
18205
18206 IF (p_instance_rec.purchase_currency_code = fnd_api.g_miss_char) OR
18207 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
18208 l_instance_hist_rec.old_purchase_currency_code := NULL;
18209 l_instance_hist_rec.new_purchase_currency_code := NULL;
18210 ELSIF
18211 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
18212 l_instance_hist_rec.old_purchase_currency_code := l_curr_instance_rec.purchase_currency_code ;
18213 l_instance_hist_rec.new_purchase_currency_code := p_instance_rec.purchase_currency_code ;
18214 END IF;
18215
18216 IF (p_instance_rec.payables_unit_price = fnd_api.g_miss_num) OR
18217 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
18218 l_instance_hist_rec.old_payables_unit_price := NULL;
18219 l_instance_hist_rec.new_payables_unit_price := NULL;
18220 ELSIF
18221 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
18222 l_instance_hist_rec.old_payables_unit_price := l_curr_instance_rec.payables_unit_price ;
18223 l_instance_hist_rec.new_payables_unit_price := p_instance_rec.payables_unit_price ;
18224 END IF;
18225
18226 IF (p_instance_rec.payables_currency_code = fnd_api.g_miss_char) OR
18227 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
18228 l_instance_hist_rec.old_payables_currency_code := NULL;
18229 l_instance_hist_rec.new_payables_currency_code := NULL;
18230 ELSIF
18231 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
18232 l_instance_hist_rec.old_payables_currency_code := l_curr_instance_rec.payables_currency_code ;
18233 l_instance_hist_rec.new_payables_currency_code := p_instance_rec.payables_currency_code ;
18234 END IF;
18235
18236 IF (p_instance_rec.sales_unit_price = fnd_api.g_miss_num) OR
18237 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
18238 l_instance_hist_rec.old_sales_unit_price := NULL;
18239 l_instance_hist_rec.new_sales_unit_price := NULL;
18240 ELSIF
18241 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
18242 l_instance_hist_rec.old_sales_unit_price := l_curr_instance_rec.sales_unit_price ;
18243 l_instance_hist_rec.new_sales_unit_price := p_instance_rec.sales_unit_price ;
18244 END IF;
18245
18246 IF (p_instance_rec.sales_currency_code = fnd_api.g_miss_char) OR
18247 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
18248 l_instance_hist_rec.old_sales_currency_code := NULL;
18249 l_instance_hist_rec.new_sales_currency_code := NULL;
18250 ELSIF
18251 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
18252 l_instance_hist_rec.old_sales_currency_code := l_curr_instance_rec.sales_currency_code ;
18253 l_instance_hist_rec.new_sales_currency_code := p_instance_rec.sales_currency_code ;
18254 END IF;
18255
18256 IF (p_instance_rec.operational_status_code = fnd_api.g_miss_char) OR
18257 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
18258 l_instance_hist_rec.old_operational_status_code := NULL;
18259 l_instance_hist_rec.new_operational_status_code := NULL;
18260 ELSIF
18261 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
18262 l_instance_hist_rec.old_operational_status_code := l_curr_instance_rec.operational_status_code ;
18263 l_instance_hist_rec.new_operational_status_code := p_instance_rec.operational_status_code ;
18264 END IF;
18265 -- End addition of columns for FA Integration
18266
18267 CSI_ITEM_INSTANCES_H_PKG.Insert_Row
18268 ( px_INSTANCE_HISTORY_ID => l_csi_item_instance_h_id
18269 ,p_INSTANCE_ID => p_instance_rec.instance_id
18270 ,p_TRANSACTION_ID => p_txn_rec.TRANSACTION_ID
18271 ,p_OLD_INSTANCE_NUMBER => l_instance_hist_rec.OLD_INSTANCE_NUMBER
18272 ,p_NEW_INSTANCE_NUMBER => l_instance_hist_rec.NEW_INSTANCE_NUMBER
18273 ,p_OLD_EXTERNAL_REFERENCE => l_instance_hist_rec.OLD_EXTERNAL_REFERENCE
18274 ,p_NEW_EXTERNAL_REFERENCE => l_instance_hist_rec.NEW_EXTERNAL_REFERENCE
18275 ,p_OLD_INVENTORY_ITEM_ID => l_instance_hist_rec.OLD_INVENTORY_ITEM_ID
18276 ,p_NEW_INVENTORY_ITEM_ID => l_instance_hist_rec.NEW_INVENTORY_ITEM_ID
18277 ,p_OLD_INVENTORY_REVISION => l_instance_hist_rec.OLD_INVENTORY_REVISION
18278 ,p_NEW_INVENTORY_REVISION => l_instance_hist_rec.NEW_INVENTORY_REVISION
18279 ,p_OLD_INV_MASTER_ORGZN_ID => l_instance_hist_rec.OLD_INV_MASTER_ORG_ID
18280 ,p_NEW_INV_MASTER_ORGZN_ID => l_instance_hist_rec.NEW_INV_MASTER_ORG_ID
18281 ,p_OLD_SERIAL_NUMBER => l_instance_hist_rec.OLD_SERIAL_NUMBER
18282 ,p_NEW_SERIAL_NUMBER => l_instance_hist_rec.NEW_SERIAL_NUMBER
18283 ,p_OLD_MFG_SERIAL_NUMBER_FLAG => l_instance_hist_rec.OLD_MFG_SERIAL_NUMBER_FLAG
18284 ,p_NEW_MFG_SERIAL_NUMBER_FLAG => l_instance_hist_rec.NEW_MFG_SERIAL_NUMBER_FLAG
18285 ,p_OLD_LOT_NUMBER => l_instance_hist_rec.OLD_LOT_NUMBER
18286 ,p_NEW_LOT_NUMBER => l_instance_hist_rec.NEW_LOT_NUMBER
18287 ,p_OLD_QUANTITY => l_instance_hist_rec.OLD_QUANTITY
18288 ,p_NEW_QUANTITY => l_instance_hist_rec.NEW_QUANTITY
18289 ,p_OLD_UNIT_OF_MEASURE => l_instance_hist_rec.OLD_UNIT_OF_MEASURE
18290 ,p_NEW_UNIT_OF_MEASURE => l_instance_hist_rec.NEW_UNIT_OF_MEASURE
18291 ,p_OLD_ACCOUNTING_CLASS_CODE => l_instance_hist_rec.OLD_ACCOUNTING_CLASS_CODE
18292 ,p_NEW_ACCOUNTING_CLASS_CODE => l_instance_hist_rec.NEW_ACCOUNTING_CLASS_CODE
18293 ,p_OLD_INSTANCE_CONDITION_ID => l_instance_hist_rec.OLD_INSTANCE_CONDITION_ID
18294 ,p_NEW_INSTANCE_CONDITION_ID => l_instance_hist_rec.NEW_INSTANCE_CONDITION_ID
18295 ,p_OLD_INSTANCE_STATUS_ID => l_instance_hist_rec.OLD_INSTANCE_STATUS_ID
18296 ,p_NEW_INSTANCE_STATUS_ID => l_instance_hist_rec.NEW_INSTANCE_STATUS_ID
18297 ,p_OLD_CUSTOMER_VIEW_FLAG => l_instance_hist_rec.OLD_CUSTOMER_VIEW_FLAG
18298 ,p_NEW_CUSTOMER_VIEW_FLAG => l_instance_hist_rec.NEW_CUSTOMER_VIEW_FLAG
18299 ,p_OLD_MERCHANT_VIEW_FLAG => l_instance_hist_rec.OLD_MERCHANT_VIEW_FLAG
18300 ,p_NEW_MERCHANT_VIEW_FLAG => l_instance_hist_rec.NEW_MERCHANT_VIEW_FLAG
18301 ,p_OLD_SELLABLE_FLAG => l_instance_hist_rec.OLD_SELLABLE_FLAG
18302 ,p_NEW_SELLABLE_FLAG => l_instance_hist_rec.NEW_SELLABLE_FLAG
18303 ,p_OLD_SYSTEM_ID => l_instance_hist_rec.OLD_SYSTEM_ID
18304 ,p_NEW_SYSTEM_ID => l_instance_hist_rec.NEW_SYSTEM_ID
18305 ,p_OLD_INSTANCE_TYPE_CODE => l_instance_hist_rec.OLD_INSTANCE_TYPE_CODE
18306 ,p_NEW_INSTANCE_TYPE_CODE => l_instance_hist_rec.NEW_INSTANCE_TYPE_CODE
18307 ,p_OLD_ACTIVE_START_DATE => l_instance_hist_rec.OLD_ACTIVE_START_DATE
18308 ,p_NEW_ACTIVE_START_DATE => l_instance_hist_rec.NEW_ACTIVE_START_DATE
18309 ,p_OLD_ACTIVE_END_DATE => l_instance_hist_rec.OLD_ACTIVE_END_DATE
18310 ,p_NEW_ACTIVE_END_DATE => l_instance_hist_rec.NEW_ACTIVE_END_DATE
18311 ,p_OLD_LOCATION_TYPE_CODE => l_instance_hist_rec.OLD_LOCATION_TYPE_CODE
18312 ,p_NEW_LOCATION_TYPE_CODE => l_instance_hist_rec.NEW_LOCATION_TYPE_CODE
18313 ,p_OLD_LOCATION_ID => l_instance_hist_rec.OLD_LOCATION_ID
18314 ,p_NEW_LOCATION_ID => l_instance_hist_rec.NEW_LOCATION_ID
18315 ,p_OLD_INV_ORGANIZATION_ID => l_instance_hist_rec.OLD_INV_ORGANIZATION_ID
18316 ,p_NEW_INV_ORGANIZATION_ID => l_instance_hist_rec.NEW_INV_ORGANIZATION_ID
18317 ,p_OLD_INV_SUBINVENTORY_NAME => l_instance_hist_rec.OLD_INV_SUBINVENTORY_NAME
18318 ,p_NEW_INV_SUBINVENTORY_NAME => l_instance_hist_rec.NEW_INV_SUBINVENTORY_NAME
18319 ,p_OLD_INV_LOCATOR_ID => l_instance_hist_rec.OLD_INV_LOCATOR_ID
18320 ,p_NEW_INV_LOCATOR_ID => l_instance_hist_rec.NEW_INV_LOCATOR_ID
18321 ,p_OLD_PA_PROJECT_ID => l_instance_hist_rec.OLD_PA_PROJECT_ID
18322 ,p_NEW_PA_PROJECT_ID => l_instance_hist_rec.NEW_PA_PROJECT_ID
18323 ,p_OLD_PA_PROJECT_TASK_ID => l_instance_hist_rec.OLD_PA_PROJECT_TASK_ID
18324 ,p_NEW_PA_PROJECT_TASK_ID => l_instance_hist_rec.NEW_PA_PROJECT_TASK_ID
18325 ,p_OLD_IN_TRANSIT_ORDER_LINE_ID => l_instance_hist_rec.OLD_IN_TRANSIT_ORDER_LINE_ID
18326 ,p_NEW_IN_TRANSIT_ORDER_LINE_ID => l_instance_hist_rec.NEW_IN_TRANSIT_ORDER_LINE_ID
18327 ,p_OLD_WIP_JOB_ID => l_instance_hist_rec.OLD_WIP_JOB_ID
18328 ,p_NEW_WIP_JOB_ID => l_instance_hist_rec.NEW_WIP_JOB_ID
18329 ,p_OLD_PO_ORDER_LINE_ID => l_instance_hist_rec.OLD_PO_ORDER_LINE_ID
18330 ,p_NEW_PO_ORDER_LINE_ID => l_instance_hist_rec.NEW_PO_ORDER_LINE_ID
18331 ,p_OLD_COMPLETENESS_FLAG => l_instance_hist_rec.OLD_COMPLETENESS_FLAG
18332 ,p_NEW_COMPLETENESS_FLAG => l_instance_hist_rec.NEW_COMPLETENESS_FLAG
18333 ,p_FULL_DUMP_FLAG => 'N'
18334 ,p_NEW_CONTEXT => l_instance_hist_rec.NEW_CONTEXT
18335 ,P_OLD_CONTEXT => l_instance_hist_rec.OLD_CONTEXT
18336 ,p_NEW_ATTRIBUTE1 => l_instance_hist_rec.NEW_ATTRIBUTE1
18337 ,p_OLD_ATTRIBUTE1 => l_instance_hist_rec.OLD_ATTRIBUTE1
18338 ,p_NEW_ATTRIBUTE2 => l_instance_hist_rec.NEW_ATTRIBUTE2
18339 ,p_OLD_ATTRIBUTE2 => l_instance_hist_rec.OLD_ATTRIBUTE2
18340 ,p_NEW_ATTRIBUTE3 => l_instance_hist_rec.NEW_ATTRIBUTE3
18341 ,p_OLD_ATTRIBUTE3 => l_instance_hist_rec.OLD_ATTRIBUTE3
18342 ,p_NEW_ATTRIBUTE4 => l_instance_hist_rec.NEW_ATTRIBUTE4
18343 ,p_OLD_ATTRIBUTE4 => l_instance_hist_rec.OLD_ATTRIBUTE4
18344 ,p_NEW_ATTRIBUTE5 => l_instance_hist_rec.NEW_ATTRIBUTE5
18345 ,p_OLD_ATTRIBUTE5 => l_instance_hist_rec.OLD_ATTRIBUTE5
18346 ,p_NEW_ATTRIBUTE6 => l_instance_hist_rec.NEW_ATTRIBUTE6
18347 ,p_OLD_ATTRIBUTE6 => l_instance_hist_rec.OLD_ATTRIBUTE6
18348 ,p_NEW_ATTRIBUTE7 => l_instance_hist_rec.NEW_ATTRIBUTE7
18349 ,p_OLD_ATTRIBUTE7 => l_instance_hist_rec.OLD_ATTRIBUTE7
18350 ,p_NEW_ATTRIBUTE8 => l_instance_hist_rec.NEW_ATTRIBUTE8
18351 ,p_OLD_ATTRIBUTE8 => l_instance_hist_rec.OLD_ATTRIBUTE8
18352 ,p_NEW_ATTRIBUTE9 => l_instance_hist_rec.NEW_ATTRIBUTE9
18353 ,p_OLD_ATTRIBUTE9 => l_instance_hist_rec.OLD_ATTRIBUTE9
18354 ,p_NEW_ATTRIBUTE10 => l_instance_hist_rec.NEW_ATTRIBUTE10
18355 ,p_OLD_ATTRIBUTE10 => l_instance_hist_rec.OLD_ATTRIBUTE10
18356 ,p_NEW_ATTRIBUTE11 => l_instance_hist_rec.NEW_ATTRIBUTE11
18357 ,p_OLD_ATTRIBUTE11 => l_instance_hist_rec.OLD_ATTRIBUTE11
18358 ,p_NEW_ATTRIBUTE12 => l_instance_hist_rec.NEW_ATTRIBUTE12
18359 ,p_OLD_ATTRIBUTE12 => l_instance_hist_rec.OLD_ATTRIBUTE12
18360 ,p_NEW_ATTRIBUTE13 => l_instance_hist_rec.NEW_ATTRIBUTE13
18361 ,p_OLD_ATTRIBUTE13 => l_instance_hist_rec.OLD_ATTRIBUTE13
18362 ,p_NEW_ATTRIBUTE14 => l_instance_hist_rec.NEW_ATTRIBUTE14
18363 ,p_OLD_ATTRIBUTE14 => l_instance_hist_rec.OLD_ATTRIBUTE14
18364 ,p_NEW_ATTRIBUTE15 => l_instance_hist_rec.NEW_ATTRIBUTE15
18365 ,p_OLD_ATTRIBUTE15 => l_instance_hist_rec.OLD_ATTRIBUTE15
18366 ,p_CREATED_BY => FND_GLOBAL.USER_ID
18367 ,p_CREATION_DATE => SYSDATE
18368 ,p_LAST_UPDATED_BY => FND_GLOBAL.USER_ID
18369 ,p_LAST_UPDATE_DATE => SYSDATE
18370 ,p_LAST_UPDATE_LOGIN => FND_GLOBAL.CONC_LOGIN_ID
18371 ,p_OBJECT_VERSION_NUMBER => 1
18372 ,p_OLD_INST_LOC_TYPE_CODE => l_instance_hist_rec.OLD_INSTALL_LOCATION_TYPE_CODE
18373 ,p_NEW_INST_LOC_TYPE_CODE => l_instance_hist_rec.NEW_INSTALL_LOCATION_TYPE_CODE
18374 ,p_OLD_INST_LOC_ID => l_instance_hist_rec.OLD_INSTALL_LOCATION_ID
18375 ,p_NEW_INST_LOC_ID => l_instance_hist_rec.NEW_INSTALL_LOCATION_ID
18376 ,p_OLD_INST_USAGE_CODE => l_instance_hist_rec.OLD_INSTANCE_USAGE_CODE
18377 ,p_NEW_INST_USAGE_CODE => l_instance_hist_rec.NEW_INSTANCE_USAGE_CODE
18378 ,p_OLD_last_vld_organization_id => l_curr_instance_rec.LAST_VLD_ORGANIZATION_ID
18379 ,p_NEW_last_vld_organization_id => l_last_vld_organization_id
18380 ,p_OLD_CONFIG_INST_REV_NUM => l_instance_hist_rec.OLD_CONFIG_INST_REV_NUM
18381 ,p_NEW_CONFIG_INST_REV_NUM => l_instance_hist_rec.NEW_CONFIG_INST_REV_NUM
18382 ,p_OLD_CONFIG_VALID_STATUS => l_instance_hist_rec.OLD_CONFIG_VALID_STATUS
18383 ,p_NEW_CONFIG_VALID_STATUS => l_instance_hist_rec.NEW_CONFIG_VALID_STATUS
18384 ,p_OLD_INSTANCE_DESCRIPTION => l_instance_hist_rec.OLD_INSTANCE_DESCRIPTION
18385 ,p_NEW_INSTANCE_DESCRIPTION => l_instance_hist_rec.NEW_INSTANCE_DESCRIPTION
18386 ,p_OLD_INSTALL_DATE => l_instance_hist_rec.OLD_INSTALL_DATE
18387 ,p_NEW_INSTALL_DATE => l_instance_hist_rec.NEW_INSTALL_DATE
18388 ,p_OLD_RETURN_BY_DATE => l_instance_hist_rec.OLD_RETURN_BY_DATE
18389 ,p_NEW_RETURN_BY_DATE => l_instance_hist_rec.NEW_RETURN_BY_DATE
18390 ,p_OLD_ACTUAL_RETURN_DATE => l_instance_hist_rec.OLD_ACTUAL_RETURN_DATE
18391 ,p_NEW_ACTUAL_RETURN_DATE => l_instance_hist_rec.NEW_ACTUAL_RETURN_DATE
18392 ,p_OLD_LAST_OE_AGREEMENT_ID => l_instance_hist_rec.OLD_LAST_OE_AGREEMENT_ID
18393 ,p_NEW_LAST_OE_AGREEMENT_ID => l_instance_hist_rec.NEW_LAST_OE_AGREEMENT_ID
18394 ,p_OLD_LAST_OE_ORDER_LINE_ID => l_instance_hist_rec.OLD_LAST_OE_ORDER_LINE_ID
18395 ,p_NEW_LAST_OE_ORDER_LINE_ID => l_instance_hist_rec.NEW_LAST_OE_ORDER_LINE_ID
18396 ,p_OLD_LAST_OE_RMA_LINE_ID => l_instance_hist_rec.OLD_LAST_OE_RMA_LINE_ID
18397 ,p_NEW_LAST_OE_RMA_LINE_ID => l_instance_hist_rec.NEW_LAST_OE_RMA_LINE_ID
18398 ,p_OLD_LAST_WIP_JOB_ID => l_instance_hist_rec.OLD_LAST_WIP_JOB_ID
18399 ,p_NEW_LAST_WIP_JOB_ID => l_instance_hist_rec.NEW_LAST_WIP_JOB_ID
18400 ,p_OLD_LAST_PO_PO_LINE_ID => l_instance_hist_rec.OLD_LAST_PO_PO_LINE_ID
18401 ,p_NEW_LAST_PO_PO_LINE_ID => l_instance_hist_rec.NEW_LAST_PO_PO_LINE_ID
18402 ,p_OLD_LAST_PA_PROJECT_ID => l_instance_hist_rec.OLD_LAST_PA_PROJECT_ID
18403 ,p_NEW_LAST_PA_PROJECT_ID => l_instance_hist_rec.NEW_LAST_PA_PROJECT_ID
18404 ,p_OLD_LAST_PA_TASK_ID => l_instance_hist_rec.OLD_LAST_PA_TASK_ID
18405 ,p_NEW_LAST_PA_TASK_ID => l_instance_hist_rec.NEW_LAST_PA_TASK_ID
18406 ,p_OLD_LAST_TXN_LINE_DETAIL_ID => l_instance_hist_rec.OLD_LAST_TXN_LINE_DETAIL_ID
18407 ,p_NEW_LAST_TXN_LINE_DETAIL_ID => l_instance_hist_rec.NEW_LAST_TXN_LINE_DETAIL_ID
18408 ,p_OLD_LAST_OE_PO_NUMBER => l_instance_hist_rec.OLD_LAST_OE_PO_NUMBER
18409 ,p_NEW_LAST_OE_PO_NUMBER => l_instance_hist_rec.NEW_LAST_OE_PO_NUMBER
18410 --start of parameters addition for eam integration--
18411 ,p_OLD_NETWORK_ASSET_FLAG => l_instance_hist_rec.OLD_NETWORK_ASSET_FLAG
18412 ,p_NEW_NETWORK_ASSET_FLAG => l_instance_hist_rec.NEW_NETWORK_ASSET_FLAG
18413 ,p_OLD_MAINTAINABLE_FLAG => l_instance_hist_rec.OLD_MAINTAINABLE_FLAG
18414 ,p_NEW_MAINTAINABLE_FLAG => l_instance_hist_rec.NEW_MAINTAINABLE_FLAG
18415 ,p_OLD_PN_LOCATION_ID => l_instance_hist_rec.OLD_PN_LOCATION_ID
18416 ,p_NEW_PN_LOCATION_ID => l_instance_hist_rec.NEW_PN_LOCATION_ID
18417 ,p_OLD_ASSET_CRITICALITY_CODE => l_instance_hist_rec.OLD_ASSET_CRITICALITY_CODE
18418 ,p_NEW_ASSET_CRITICALITY_CODE => l_instance_hist_rec.NEW_ASSET_CRITICALITY_CODE
18419 ,p_OLD_CATEGORY_ID => l_instance_hist_rec.OLD_CATEGORY_ID
18420 ,p_NEW_CATEGORY_ID => l_instance_hist_rec.NEW_CATEGORY_ID
18421 ,p_OLD_EQUIPMENT_GEN_OBJECT_ID => l_instance_hist_rec.OLD_EQUIPMENT_GEN_OBJECT_ID
18422 ,p_NEW_EQUIPMENT_GEN_OBJECT_ID => l_instance_hist_rec.NEW_EQUIPMENT_GEN_OBJECT_ID
18423 ,p_OLD_INSTANTIATION_FLAG => l_instance_hist_rec.OLD_INSTANTIATION_FLAG
18424 ,p_NEW_INSTANTIATION_FLAG => l_instance_hist_rec.NEW_INSTANTIATION_FLAG
18425 ,p_OLD_LINEAR_LOCATION_ID => l_instance_hist_rec.OLD_LINEAR_LOCATION_ID
18426 ,p_NEW_LINEAR_LOCATION_ID => l_instance_hist_rec.NEW_LINEAR_LOCATION_ID
18427 ,p_OLD_OPERATIONAL_LOG_FLAG => l_instance_hist_rec.OLD_OPERATIONAL_LOG_FLAG
18428 ,p_NEW_OPERATIONAL_LOG_FLAG => l_instance_hist_rec.NEW_OPERATIONAL_LOG_FLAG
18429 ,p_OLD_CHECKIN_STATUS => l_instance_hist_rec.OLD_CHECKIN_STATUS
18430 ,p_NEW_CHECKIN_STATUS => l_instance_hist_rec.NEW_CHECKIN_STATUS
18431 ,p_OLD_SUP_WARRANTY_EXP_DATE => l_instance_hist_rec.OLD_SUPPLIER_WARRANTY_EXP_DATE
18432 ,p_NEW_SUP_WARRANTY_EXP_DATE => l_instance_hist_rec.NEW_SUPPLIER_WARRANTY_EXP_DATE
18433 ,p_OLD_ATTRIBUTE16 => l_instance_hist_rec.OLD_ATTRIBUTE16
18434 ,p_NEW_ATTRIBUTE16 => l_instance_hist_rec.NEW_ATTRIBUTE16
18435 ,p_OLD_ATTRIBUTE17 => l_instance_hist_rec.OLD_ATTRIBUTE17
18436 ,p_NEW_ATTRIBUTE17 => l_instance_hist_rec.NEW_ATTRIBUTE17
18437 ,p_OLD_ATTRIBUTE18 => l_instance_hist_rec.OLD_ATTRIBUTE18
18438 ,p_NEW_ATTRIBUTE18 => l_instance_hist_rec.NEW_ATTRIBUTE18
18439 ,p_OLD_ATTRIBUTE19 => l_instance_hist_rec.OLD_ATTRIBUTE19
18440 ,p_NEW_ATTRIBUTE19 => l_instance_hist_rec.NEW_ATTRIBUTE19
18441 ,p_OLD_ATTRIBUTE20 => l_instance_hist_rec.OLD_ATTRIBUTE20
18442 ,p_NEW_ATTRIBUTE20 => l_instance_hist_rec.NEW_ATTRIBUTE20
18443 ,p_OLD_ATTRIBUTE21 => l_instance_hist_rec.OLD_ATTRIBUTE21
18444 ,p_NEW_ATTRIBUTE21 => l_instance_hist_rec.NEW_ATTRIBUTE21
18445 ,p_OLD_ATTRIBUTE22 => l_instance_hist_rec.OLD_ATTRIBUTE22
18446 ,p_NEW_ATTRIBUTE22 => l_instance_hist_rec.NEW_ATTRIBUTE22
18447 ,p_OLD_ATTRIBUTE23 => l_instance_hist_rec.OLD_ATTRIBUTE23
18448 ,p_NEW_ATTRIBUTE23 => l_instance_hist_rec.NEW_ATTRIBUTE23
18449 ,p_OLD_ATTRIBUTE24 => l_instance_hist_rec.OLD_ATTRIBUTE24
18450 ,p_NEW_ATTRIBUTE24 => l_instance_hist_rec.NEW_ATTRIBUTE24
18451 ,p_OLD_ATTRIBUTE25 => l_instance_hist_rec.OLD_ATTRIBUTE25
18452 ,p_NEW_ATTRIBUTE25 => l_instance_hist_rec.NEW_ATTRIBUTE25
18453 ,p_OLD_ATTRIBUTE26 => l_instance_hist_rec.OLD_ATTRIBUTE26
18454 ,p_NEW_ATTRIBUTE26 => l_instance_hist_rec.NEW_ATTRIBUTE26
18455 ,p_OLD_ATTRIBUTE27 => l_instance_hist_rec.OLD_ATTRIBUTE27
18456 ,p_NEW_ATTRIBUTE27 => l_instance_hist_rec.NEW_ATTRIBUTE27
18457 ,p_OLD_ATTRIBUTE28 => l_instance_hist_rec.OLD_ATTRIBUTE28
18458 ,p_NEW_ATTRIBUTE28 => l_instance_hist_rec.NEW_ATTRIBUTE28
18459 ,p_OLD_ATTRIBUTE29 => l_instance_hist_rec.OLD_ATTRIBUTE29
18460 ,p_NEW_ATTRIBUTE29 => l_instance_hist_rec.NEW_ATTRIBUTE29
18461 ,p_OLD_ATTRIBUTE30 => l_instance_hist_rec.OLD_ATTRIBUTE30
18462 ,p_NEW_ATTRIBUTE30 => l_instance_hist_rec.NEW_ATTRIBUTE30
18463 --end of parameters addition for eam integration--
18464 -- Addition of columns for FA Integration
18465 ,p_OLD_PAYABLES_UNIT_PRICE => l_instance_hist_rec.OLD_PAYABLES_UNIT_PRICE
18466 ,p_NEW_PAYABLES_UNIT_PRICE => l_instance_hist_rec.NEW_PAYABLES_UNIT_PRICE
18467 ,p_OLD_PAYABLES_CURRENCY_CODE => l_instance_hist_rec.OLD_PAYABLES_CURRENCY_CODE
18468 ,p_NEW_PAYABLES_CURRENCY_CODE => l_instance_hist_rec.NEW_PAYABLES_CURRENCY_CODE
18469 ,p_OLD_PURCHASE_UNIT_PRICE => l_instance_hist_rec.OLD_PURCHASE_UNIT_PRICE
18470 ,p_NEW_PURCHASE_UNIT_PRICE => l_instance_hist_rec.NEW_PURCHASE_UNIT_PRICE
18471 ,p_OLD_PURCHASE_CURRENCY_CODE => l_instance_hist_rec.OLD_PURCHASE_CURRENCY_CODE
18472 ,p_NEW_PURCHASE_CURRENCY_CODE => l_instance_hist_rec.NEW_PURCHASE_CURRENCY_CODE
18473 ,p_OLD_SALES_UNIT_PRICE => l_instance_hist_rec.OLD_SALES_UNIT_PRICE
18474 ,p_NEW_SALES_UNIT_PRICE => l_instance_hist_rec.NEW_SALES_UNIT_PRICE
18475 ,p_OLD_SALES_CURRENCY_CODE => l_instance_hist_rec.OLD_SALES_CURRENCY_CODE
18476 ,p_NEW_SALES_CURRENCY_CODE => l_instance_hist_rec.NEW_SALES_CURRENCY_CODE
18477 ,p_OLD_OPERATIONAL_STATUS_CODE => l_instance_hist_rec.OLD_OPERATIONAL_STATUS_CODE
18478 ,p_NEW_OPERATIONAL_STATUS_CODE => l_instance_hist_rec.NEW_OPERATIONAL_STATUS_CODE
18479 -- End addition of columns for FA Integration
18480 -- Begin Add Code for Siebel Genesis Project
18481 ,p_OLD_SOURCE_CODE => l_instance_hist_rec.OLD_SOURCE_CODE
18482 ,p_NEW_SOURCE_CODE => l_instance_hist_rec.NEW_SOURCE_CODE
18483 -- End Add Code for Siebel Genesis Project
18484 );
18485
18486 END IF;
18487 END; -- END OF HISTORY
18488 -- End of modification for Bug#2547034 on 09/20/02 - rtalluri
18489 -- Calling eam API to log instance update event
18490 IF l_eam_item
18491 THEN
18492 IF l_ins_hist_id IS NOT NULL
18493 THEN
18494 l_instance_history_id:=l_ins_hist_id;
18495 ELSE
18496 l_instance_history_id:=l_csi_item_instance_h_id;
18497 END IF;
18498 eam_asset_log_pvt.instance_update_event
18499 (p_api_version => p_api_version
18500 ,p_init_msg_list => fnd_api.g_false
18501 ,p_commit => fnd_api.g_false
18502 ,p_validation_level => fnd_api.g_valid_level_full
18503 ,x_return_status => x_return_status
18504 ,x_msg_count => x_msg_count
18505 ,x_msg_data => x_msg_data
18506 ,p_instance_id => p_instance_rec.instance_id
18507 ,p_ref_id => l_instance_history_id
18508 ,p_event_date => sysdate);
18509 IF NOT(x_return_status = fnd_api.g_ret_sts_success)
18510 THEN
18511 csi_gen_utility_pvt.put_line('Error from eam_asset_log_pvt.instance_update_event API');
18512 RAISE fnd_api.g_exc_error;
18513 END IF;
18514 END IF;
18515 -- Calling eam API to log instance update event
18516 -- Check for any child instances in the csi ii relationships table by passing the parent instance id. If there exists
18517 -- any child instances then inherit the changed attributes with the changes in parent.
18518
18519 IF l_curr_instance_rec.active_end_date IS NULL
18520 THEN l_curr_instance_rec.active_end_date:=FND_API.G_MISS_DATE;
18521 END IF;
18522
18523 IF l_curr_instance_rec.location_type_code IS NULL
18524 THEN l_curr_instance_rec.location_type_code:=FND_API.G_MISS_CHAR;
18525 END IF;
18526
18527 IF l_curr_instance_rec.location_id IS NULL
18528 THEN l_curr_instance_rec.location_id:=FND_API.G_MISS_NUM;
18529 END IF;
18530
18531 IF l_curr_instance_rec.inv_organization_id IS NULL
18532 THEN l_curr_instance_rec.inv_organization_id:=FND_API.G_MISS_NUM;
18533 END IF;
18534
18535 IF l_curr_instance_rec.inv_subinventory_name IS NULL
18536 THEN l_curr_instance_rec.inv_subinventory_name:=FND_API.G_MISS_CHAR;
18537 END IF;
18538
18539 IF l_curr_instance_rec.inv_locator_id IS NULL
18540 THEN l_curr_instance_rec.inv_locator_id:=FND_API.G_MISS_NUM;
18541 END IF;
18542
18543 IF l_curr_instance_rec.pa_project_id IS NULL
18544 THEN l_curr_instance_rec.pa_project_id:=FND_API.G_MISS_NUM;
18545 END IF;
18546
18547 IF l_curr_instance_rec.pa_project_task_id IS NULL
18548 THEN l_curr_instance_rec.pa_project_task_id:=FND_API.G_MISS_NUM;
18549 END IF;
18550
18551 IF l_curr_instance_rec.in_transit_order_line_id IS NULL
18552 THEN l_curr_instance_rec.in_transit_order_line_id:=FND_API.G_MISS_NUM;
18553 END IF;
18554
18555 IF l_curr_instance_rec.wip_job_id IS NULL
18556 THEN l_curr_instance_rec.wip_job_id:=FND_API.G_MISS_NUM;
18557 END IF;
18558
18559 IF l_curr_instance_rec.po_order_line_id IS NULL
18560 THEN l_curr_instance_rec.po_order_line_id:=FND_API.G_MISS_NUM;
18561 END IF;
18562
18563 IF l_curr_instance_rec.install_location_type_code IS NULL --1st change
18564 THEN l_curr_instance_rec.install_location_type_code:=FND_API.G_MISS_CHAR;
18565 END IF;
18566
18567 IF l_curr_instance_rec.install_location_id IS NULL
18568 THEN l_curr_instance_rec.install_location_id:=FND_API.G_MISS_NUM;
18569 END IF;
18570 --
18571 -- srramakr Need to inherit Install_date to the children
18572 -- If any of the location attributes or active_end_date are changing for an instance, then check are there
18573 -- any children associated to this instance. If there exists any, then change the location attributes for child instances
18574 IF ( p_instance_rec.active_end_date IS NOT NULL
18575 AND p_instance_rec.active_end_date <>l_curr_instance_rec.active_end_date
18576 AND p_instance_rec.active_end_date <>FND_API.G_MISS_DATE
18577 )
18578 OR
18579 ( p_instance_rec.active_end_date IS NULL AND
18580 nvl(p_instance_rec.active_end_date,fnd_api.g_miss_date) <> l_curr_instance_rec.active_end_date
18581 )
18582 OR
18583 ( p_instance_rec.system_id IS NOT NULL
18584 AND p_instance_rec.system_id <> FND_API.G_MISS_NUM
18585 AND p_instance_rec.system_id <> nvl(l_curr_instance_rec.system_id,FND_API.G_MISS_NUM)
18586 )
18587 OR
18588 ( p_instance_rec.system_id IS NULL
18589 AND l_curr_instance_rec.system_id IS NOT NULL
18590 )
18591 OR
18592 ( p_instance_rec.location_type_code IS NOT NULL
18593 AND p_instance_rec.location_type_code <>FND_API.G_MISS_CHAR
18594 AND p_instance_rec.location_type_code <>l_curr_instance_rec.location_type_code
18595 )
18596 OR
18597 ( p_instance_rec.location_id IS NOT NULL
18598 AND p_instance_rec.location_id <>FND_API.G_MISS_NUM
18599 AND p_instance_rec.location_id <>l_curr_instance_rec.location_id
18600 )
18601 OR
18602 ( p_instance_rec.inv_organization_id IS NOT NULL
18603 AND p_instance_rec.inv_organization_id <>FND_API.G_MISS_NUM
18604 AND p_instance_rec.inv_organization_id <>l_curr_instance_rec.inv_organization_id
18605 )
18606 OR
18607 ( p_instance_rec.inv_subinventory_name IS NOT NULL
18608 AND p_instance_rec.inv_subinventory_name <>FND_API.G_MISS_CHAR
18609 AND p_instance_rec.inv_subinventory_name <>l_curr_instance_rec.inv_subinventory_name
18610 )
18611 OR
18612 ( p_instance_rec.inv_locator_id IS NOT NULL
18613 AND p_instance_rec.inv_locator_id <>FND_API.G_MISS_NUM
18614 AND p_instance_rec.inv_locator_id <>l_curr_instance_rec.inv_locator_id
18615 )
18616 OR
18617 ( p_instance_rec.pa_project_id IS NOT NULL
18618 AND p_instance_rec.pa_project_id <>FND_API.G_MISS_NUM
18619 AND p_instance_rec.pa_project_id <>l_curr_instance_rec.pa_project_id
18620 )
18621 OR
18622 ( p_instance_rec.pa_project_task_id IS NOT NULL
18623 AND p_instance_rec.pa_project_task_id <>FND_API.G_MISS_NUM
18624 AND p_instance_rec.pa_project_task_id <>l_curr_instance_rec.pa_project_task_id
18625 )
18626 OR
18627 ( p_instance_rec.in_transit_order_line_id IS NOT NULL
18628 AND p_instance_rec.in_transit_order_line_id <>FND_API.G_MISS_NUM
18629 AND p_instance_rec.in_transit_order_line_id <>l_curr_instance_rec.in_transit_order_line_id
18630 )
18631 OR
18632 ( p_instance_rec.wip_job_id IS NOT NULL
18633 AND p_instance_rec.wip_job_id <>FND_API.G_MISS_NUM
18634 AND p_instance_rec.wip_job_id <>l_curr_instance_rec.wip_job_id
18635 )
18636 OR
18637 ( p_instance_rec.po_order_line_id IS NOT NULL
18638 AND p_instance_rec.po_order_line_id <>FND_API.G_MISS_NUM
18639 AND p_instance_rec.po_order_line_id <>l_curr_instance_rec.po_order_line_id
18640 )
18641 OR
18642 ( p_instance_rec.install_location_type_code IS NOT NULL
18643 AND p_instance_rec.install_location_type_code <>FND_API.G_MISS_CHAR
18644 AND p_instance_rec.install_location_type_code <>l_curr_instance_rec.install_location_type_code
18645 )
18646 OR
18647 ( p_instance_rec.install_location_id IS NOT NULL
18648 AND p_instance_rec.install_location_id <>FND_API.G_MISS_NUM
18649 AND p_instance_rec.install_location_id <>l_curr_instance_rec.install_location_id
18650 )
18651 OR
18652 ( p_instance_rec.install_location_id IS NULL AND
18653 nvl(p_instance_rec.install_location_id,fnd_api.g_miss_num) <> l_curr_instance_rec.install_location_id AND
18654 p_instance_rec.install_location_type_code IS NULL AND
18655 nvl(p_instance_rec.install_location_type_code,fnd_api.g_miss_char) <> l_curr_instance_rec.install_location_type_code
18656 )
18657 OR
18658 ( p_instance_rec.instance_status_id IS NOT NULL
18659 AND p_instance_rec.instance_status_id <>FND_API.G_MISS_NUM
18660 AND p_instance_rec.instance_status_id <>l_curr_instance_rec.instance_status_id
18661 )
18662 OR
18663 ( (p_instance_rec.install_date IS NULL AND l_curr_instance_rec.install_date IS NOT NULL) OR
18664 (p_instance_rec.install_date IS NOT NULL AND
18665 p_instance_rec.install_date <> FND_API.G_MISS_DATE AND
18666 nvl(l_curr_instance_rec.install_date,FND_API.G_MISS_DATE) <> p_instance_rec.install_date)
18667 )
18668 OR
18669 ( p_instance_rec.operational_status_code IS NOT NULL
18670 AND p_instance_rec.operational_status_code <> FND_API.G_MISS_CHAR
18671 AND p_instance_rec.operational_status_code <> NVL(l_curr_instance_rec.operational_status_code,'$$##$$')
18672 )
18673 THEN
18674 -- Added for bug 2957236
18675 IF p_instance_rec.instance_status_id IS NOT NULL
18676 AND p_instance_rec.instance_status_id <>FND_API.G_MISS_NUM
18677 AND p_instance_rec.instance_status_id <>l_curr_instance_rec.instance_status_id
18678 THEN
18679 l_original_status_id:=l_curr_instance_rec.instance_status_id;
18680 ELSE
18681 l_original_status_id:=fnd_api.g_miss_num;
18682 END IF;
18683 -- End addition for bug 2957236
18684 --
18685 l_unexpire := FND_API.G_FALSE;
18686 IF l_curr_instance_rec.active_end_date <> FND_API.G_MISS_DATE AND
18687 l_curr_instance_rec.active_end_date <= sysdate THEN
18688 IF ((p_instance_rec.active_end_date IS NULL) OR
18689 (p_instance_rec.active_end_date IS NOT NULL AND p_instance_rec.active_end_date <> FND_API.G_MISS_DATE AND
18690 p_instance_rec.active_end_date > sysdate)) THEN
18691 l_unexpire := FND_API.G_TRUE;
18692 END IF;
18693 END IF;
18694 -- System_id cascade
18695 l_original_system_id := fnd_api.g_miss_num;
18696 IF p_instance_rec.system_id IS NOT NULL AND
18697 p_instance_rec.system_id <> FND_API.G_MISS_NUM AND
18698 p_instance_rec.system_id <> nvl(l_curr_instance_rec.system_id,-999) THEN
18699 l_original_system_id := l_curr_instance_rec.system_id;
18700 ELSIF p_instance_rec.system_id IS NULL AND
18701 l_curr_instance_rec.system_id IS NOT NULL THEN
18702 l_original_system_id := l_curr_instance_rec.system_id;
18703 END IF;
18704 -- End of System_id cascade
18705 -- Install Date cascade
18706 l_install_date := fnd_api.g_miss_date;
18707 IF p_instance_rec.install_date IS NOT NULL AND
18708 p_instance_rec.install_date <> FND_API.G_MISS_DATE AND
18709 p_instance_rec.install_date <> nvl(l_curr_instance_rec.install_date,fnd_api.g_miss_date) THEN
18710 l_orig_install_date := l_curr_instance_rec.install_date;
18711 ELSIF p_instance_rec.install_date IS NULL AND
18712 l_curr_instance_rec.install_date IS NOT NULL THEN
18713 l_orig_install_date := l_curr_instance_rec.install_date;
18714 END IF;
18715 -- End of Install Date cascade
18716
18717 update_child_instance_location(p_api_version => p_api_version,
18718 p_commit => p_commit,
18719 p_init_msg_list => p_init_msg_list,
18720 p_validation_level => p_validation_level,
18721 p_instance_rec => p_instance_rec,
18722 p_original_status_id => l_original_status_id,
18723 p_original_system_id => l_original_system_id,
18724 p_txn_rec => p_txn_rec,
18725 x_instance_id_lst => x_instance_id_lst,
18726 p_unexpire => l_unexpire,
18727 p_oks_txn_inst_tbl => p_oks_txn_inst_tbl,
18728 p_child_inst_tbl => p_child_inst_tbl,
18729 p_orig_install_date => l_orig_install_date,
18730 x_return_status => x_return_status,
18731 x_msg_count => x_msg_count,
18732 x_msg_data => x_msg_data
18733 );
18734 --
18735 --
18736 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
18737 csi_gen_utility_pvt.put_line('Error from UPDATE_CHILD_INSTANCE_LOCATION..');
18738 RAISE FND_API.G_EXC_ERROR;
18739 END IF;
18740
18741 END IF;
18742 --
18743 --
18744 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
18745 RAISE FND_API.G_EXC_ERROR;
18746 END IF;
18747
18748 FND_File.Put_Line(Fnd_File.LOG,'Return Status is' || x_return_status);
18749 IF nvl(p_txn_rec.transaction_status_code, fnd_api.g_miss_char) = fnd_api.g_miss_char THEN
18750
18751 p_txn_rec.transaction_status_code := l_txn_status;
18752
18753 update_txn_status(
18754 px_txn_rec => p_txn_rec,
18755 x_return_status => x_return_status);
18756
18757 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
18758 RAISE FND_API.G_EXC_ERROR;
18759 END IF;
18760
18761 END IF;
18762
18763 END IF;
18764
18765 -- End of API body
18766
18767 -- Standard check of p_commit.
18768 IF FND_API.To_Boolean( p_commit ) THEN
18769 COMMIT WORK;
18770 END IF;
18771
18772 -- Standard call to get message count and if count is get message info.
18773 FND_MSG_PUB.Count_And_Get
18774 (p_count => x_msg_count ,
18775 p_data => x_msg_data
18776 );
18777
18778 EXCEPTION
18779
18780 WHEN FND_API.G_EXC_ERROR THEN
18781 IF FND_API.To_Boolean( p_commit )
18782 THEN
18783 ROLLBACK TO update_item_instance_pvt;
18784 END IF;
18785 x_return_status := FND_API.G_RET_STS_ERROR ;
18786 FND_MSG_PUB.Count_And_Get
18787 ( p_count => x_msg_count,
18788 p_data => x_msg_data
18789 );
18790
18791 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
18792
18793 IF FND_API.To_Boolean( p_commit )
18794 THEN
18795 ROLLBACK TO update_item_instance_pvt;
18796 END IF;
18797 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
18798 FND_MSG_PUB.Count_And_Get
18799 ( p_count => x_msg_count,
18800 p_data => x_msg_data
18801 );
18802 WHEN OTHERS THEN
18803 IF FND_API.To_Boolean( p_commit )
18804 THEN
18805 ROLLBACK TO update_item_instance_pvt;
18806 END IF;
18807 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
18808
18809 IF FND_MSG_PUB.Check_Msg_Level
18810 (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
18811 THEN
18812 FND_MSG_PUB.Add_Exc_Msg
18813 ( G_PKG_NAME ,
18814 l_api_name
18815 );
18816 END IF;
18817 FND_MSG_PUB.Count_And_Get
18818 ( p_count => x_msg_count,
18819 p_data => x_msg_data
18820 );
18821
18822 END Update_Item_Instance;
18823
18824 /*---------------------------------------------------*/
18825 /* Procedure name: expire_child_instances */
18826 /* Description : procedure for */
18827 /* Expiring all child Instance */
18828 /* associated with the parent */
18829 /*---------------------------------------------------*/
18830
18831 PROCEDURE expire_child_instances
18832 ( p_api_version IN NUMBER,
18833 p_commit IN VARCHAR2,
18834 p_init_msg_list IN VARCHAR2,
18835 p_validation_level IN NUMBER,
18836 p_instance_rec IN csi_datastructures_pub.instance_rec,
18837 p_expire_children IN VARCHAR2,
18838 p_txn_rec IN OUT NOCOPY csi_datastructures_pub.transaction_rec,
18839 x_instance_id_lst OUT NOCOPY csi_datastructures_pub.id_tbl,
18840 p_oks_txn_inst_tbl IN OUT NOCOPY oks_ibint_pub.txn_instance_tbl,
18841 x_return_status OUT NOCOPY VARCHAR2,
18842 x_msg_count OUT NOCOPY NUMBER,
18843 x_msg_data OUT NOCOPY VARCHAR2
18844 ) IS
18845 l_api_name CONSTANT VARCHAR2(30) := 'EXPIRE_CHILD_INSTANCE_PVT';
18846 l_api_version CONSTANT NUMBER := 1.0;
18847 l_debug_level NUMBER;
18848 l_instance_id NUMBER;
18849 l_dummy NUMBER;
18850 l_instance_rec csi_datastructures_pub.instance_rec:=p_instance_rec;
18851 l_object_version_number NUMBER;
18852 l_return_value BOOLEAN;
18853 l_csi_item_instance_h_id NUMBER;
18854 l_full_dump_frequency NUMBER;
18855 l_mod_value NUMBER;
18856 l_dump_flag VARCHAR2(1);
18857 l_rel_tbl csi_datastructures_pub.ii_relationship_tbl;
18858 p_rel_query_rec csi_datastructures_pub.relationship_query_rec;
18859 l_ii_relationship_level_tbl csi_ii_relationships_pvt.ii_relationship_level_tbl;
18860
18861 CURSOR curr_instance_rec(p_instance_id IN NUMBER) IS
18862 SELECT
18863 INSTANCE_ID,
18864 INSTANCE_NUMBER,
18865 EXTERNAL_REFERENCE,
18866 INVENTORY_ITEM_ID,
18867 NULL VLD_ORGANIZATION_ID,
18868 INVENTORY_REVISION,
18869 INV_MASTER_ORGANIZATION_ID,
18870 SERIAL_NUMBER,
18871 MFG_SERIAL_NUMBER_FLAG,
18872 LOT_NUMBER,
18873 QUANTITY,
18874 UNIT_OF_MEASURE,
18875 ACCOUNTING_CLASS_CODE,
18876 INSTANCE_CONDITION_ID,
18877 INSTANCE_STATUS_ID,
18878 CUSTOMER_VIEW_FLAG,
18879 MERCHANT_VIEW_FLAG,
18880 SELLABLE_FLAG,
18881 SYSTEM_ID,
18882 INSTANCE_TYPE_CODE,
18883 ACTIVE_START_DATE,
18884 ACTIVE_END_DATE,
18885 LOCATION_TYPE_CODE,
18886 LOCATION_ID,
18887 INV_ORGANIZATION_ID,
18888 INV_SUBINVENTORY_NAME,
18889 INV_LOCATOR_ID,
18890 PA_PROJECT_ID,
18891 PA_PROJECT_TASK_ID,
18892 IN_TRANSIT_ORDER_LINE_ID,
18893 WIP_JOB_ID,
18894 PO_ORDER_LINE_ID,
18895 LAST_OE_ORDER_LINE_ID,
18896 LAST_OE_RMA_LINE_ID,
18897 LAST_PO_PO_LINE_ID,
18898 LAST_OE_PO_NUMBER,
18899 LAST_WIP_JOB_ID,
18900 LAST_PA_PROJECT_ID,
18901 LAST_PA_TASK_ID,
18902 LAST_OE_AGREEMENT_ID,
18903 INSTALL_DATE,
18904 MANUALLY_CREATED_FLAG,
18905 RETURN_BY_DATE,
18906 ACTUAL_RETURN_DATE,
18907 CREATION_COMPLETE_FLAG,
18908 COMPLETENESS_FLAG,
18909 NULL VERSION_LABEL,
18910 NULL VERSION_LABEL_DESCRIPTION,
18911 CONTEXT,
18912 ATTRIBUTE1,
18913 ATTRIBUTE2,
18914 ATTRIBUTE3,
18915 ATTRIBUTE4,
18916 ATTRIBUTE5,
18917 ATTRIBUTE6,
18918 ATTRIBUTE7,
18919 ATTRIBUTE8,
18920 ATTRIBUTE9,
18921 ATTRIBUTE10,
18922 ATTRIBUTE11,
18923 ATTRIBUTE12,
18924 ATTRIBUTE13,
18925 ATTRIBUTE14,
18926 ATTRIBUTE15,
18927 OBJECT_VERSION_NUMBER,
18928 LAST_TXN_LINE_DETAIL_ID,
18929 INSTALL_LOCATION_TYPE_CODE,
18930 INSTALL_LOCATION_ID,
18931 INSTANCE_USAGE_CODE,
18932 CONFIG_INST_REV_NUM,
18933 CONFIG_VALID_STATUS,
18934 INSTANCE_DESCRIPTION,
18935 --start of column addition for eam integration--
18936 NETWORK_ASSET_FLAG,
18937 MAINTAINABLE_FLAG,
18938 PN_LOCATION_ID,
18939 ASSET_CRITICALITY_CODE,
18940 CATEGORY_ID,
18941 EQUIPMENT_GEN_OBJECT_ID,
18942 INSTANTIATION_FLAG,
18943 LINEAR_LOCATION_ID,
18944 OPERATIONAL_LOG_FLAG,
18945 CHECKIN_STATUS,
18946 SUPPLIER_WARRANTY_EXP_DATE,
18947 ATTRIBUTE16,
18948 ATTRIBUTE17,
18949 ATTRIBUTE18,
18950 ATTRIBUTE19,
18951 ATTRIBUTE20,
18952 ATTRIBUTE21,
18953 ATTRIBUTE22,
18954 ATTRIBUTE23,
18955 ATTRIBUTE24,
18956 ATTRIBUTE25,
18957 ATTRIBUTE26,
18958 ATTRIBUTE27,
18959 ATTRIBUTE28,
18960 ATTRIBUTE29,
18961 ATTRIBUTE30,
18962 --end of column addition for eam integration--
18963 -- Addition of columns for FA Integration
18964 PURCHASE_UNIT_PRICE,
18965 PURCHASE_CURRENCY_CODE,
18966 PAYABLES_UNIT_PRICE,
18967 PAYABLES_CURRENCY_CODE,
18968 SALES_UNIT_PRICE,
18969 SALES_CURRENCY_CODE,
18970 OPERATIONAL_STATUS_CODE,
18971 -- End addition of columns for FA Integration
18972 SOURCE_CODE -- Added Code for Siebel Genesis Project
18973 FROM csi_item_instances
18974 WHERE instance_id = p_instance_id
18975 FOR UPDATE OF OBJECT_VERSION_NUMBER ;
18976
18977 CURSOR instance_csr (p_ins_id IN NUMBER) IS
18978 SELECT *
18979 FROM csi_item_instances
18980 WHERE instance_id = p_ins_id;
18981
18982 l_curr_instance_rec curr_instance_rec%ROWTYPE;
18983 l_instance_csr instance_csr%ROWTYPE;
18984 l_temp VARCHAR2(1);
18985 l_temp_date DATE;
18986 l_msg_count NUMBER;
18987 l_msg_index NUMBER;
18988 l_msg_dummy NUMBER;
18989 l_oks_txn_type VARCHAR2(3);
18990 l_eam_item BOOLEAN := FALSE;
18991 l_vld_org NUMBER;
18992 l_maintenance_object_type NUMBER := 3;
18993 l_ins_hist_id NUMBER;
18994 l_instance_history_id NUMBER;
18995 l_valid BOOLEAN := TRUE;
18996 l_creation_flag VARCHAR2(1);
18997 BEGIN
18998 -- Standard Start of API savepoint
18999 SAVEPOINT expire_child_instance_pvt;
19000
19001 -- Standard call to check for call compatibility.
19002 IF NOT FND_API.Compatible_API_Call (l_api_version,
19003 p_api_version,
19004 l_api_name,
19005 G_PKG_NAME )
19006 THEN
19007 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
19008 END IF;
19009
19010 -- Initialize message list if p_init_msg_list is set to TRUE.
19011 IF FND_API.to_Boolean( p_init_msg_list ) THEN
19012 FND_MSG_PUB.initialize;
19013 END IF;
19014
19015 -- Initialize API return status to success
19016 x_return_status := FND_API.G_RET_STS_SUCCESS;
19017
19018 -- Check the profile option debug_level for debug message reporting
19019 l_debug_level:=fnd_profile.value('CSI_DEBUG_LEVEL');
19020
19021 -- If debug_level = 1 then dump the procedure name
19022 IF (l_debug_level > 0) THEN
19023 csi_gen_utility_pvt.put_line ( 'expire_child_instance_pvt');
19024 END IF;
19025
19026 -- If the debug level = 2 then dump all the parameters values.
19027 IF (l_debug_level >1) THEN
19028 csi_gen_utility_pvt.put_line ( 'expire_child_instance_pvt :'||
19029 p_api_version ||'-'||
19030 p_commit ||'-'||
19031 p_init_msg_list );
19032 END IF;
19033
19034 -- Start API body
19035 p_rel_query_rec.object_id := p_instance_rec.instance_id;
19036 p_rel_query_rec.relationship_type_code := 'COMPONENT-OF';
19037 --
19038 IF p_rel_query_rec.object_id IS NOT NULL AND
19039 p_rel_query_rec.object_id <> FND_API.G_MISS_NUM THEN
19040 csi_ii_relationships_pvt.Get_Children
19041 ( p_relationship_query_rec => p_rel_query_rec,
19042 p_rel_tbl => l_rel_tbl,
19043 p_depth => NULL,
19044 p_active_relationship_only => FND_API.G_TRUE,
19045 p_time_stamp => FND_API.G_MISS_DATE,
19046 p_get_dfs => FND_API.G_FALSE,
19047 p_ii_relationship_level_tbl => l_ii_relationship_level_tbl,
19048 x_return_status => x_return_status,
19049 x_msg_count => x_msg_count,
19050 x_msg_data => x_msg_data
19051 );
19052 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
19053 FND_MESSAGE.SET_NAME('CSI','CSI_API_GET_CHILDREN_ERROR');
19054 FND_MSG_PUB.Add;
19055 RAISE FND_API.G_EXC_ERROR;
19056 END IF;
19057 END IF;
19058 --
19059 -- FOR l_child_instance_id IN child_instances
19060 csi_gen_utility_pvt.put_line('Child 2 count is '||to_char(l_rel_tbl.count));
19061 IF l_rel_tbl.count > 0 THEN
19062 FOR j IN l_rel_tbl.FIRST .. l_rel_tbl.LAST
19063 LOOP
19064 -- Opening Cursor to retrieve Child Id records Details
19065
19066 OPEN curr_instance_rec(l_rel_tbl(j).subject_id);
19067 FETCH curr_instance_rec INTO l_curr_instance_rec;
19068 IF curr_instance_rec%NOTFOUND THEN
19069 FND_MESSAGE.Set_Name('CSI', 'CSI_API_RECORD_LOCKED');
19070 FND_MSG_PUB.ADD;
19071 RAISE FND_API.G_EXC_ERROR;
19072 END IF;
19073 CLOSE curr_instance_rec;
19074
19075 -- Added by sk for bug 2151760
19076 IF (( p_instance_rec.active_end_date IS NOT NULL) AND (p_instance_rec.active_end_date < SYSDATE))
19077 AND p_instance_rec.active_end_date <> fnd_api.g_miss_date
19078 THEN
19079 l_temp_date:= p_instance_rec.active_end_date;
19080 BEGIN
19081 SELECT 'x'
19082 INTO l_temp
19083 FROM csi_inst_transactions_v
19084 WHERE instance_id=l_curr_instance_rec.instance_id
19085 AND transaction_date>p_instance_rec.active_end_date
19086 AND ROWNUM=1;
19087
19088 IF l_temp IS NOT NULL
19089 THEN
19090 x_return_status := FND_API.G_RET_STS_ERROR ;
19091 FND_MESSAGE.Set_Name('CSI', 'CSI_CHILD_HAS_TXN');
19092 FND_MESSAGE.SET_TOKEN('INSTANCE_ID',l_curr_instance_rec.instance_number);
19093 FND_MSG_PUB.ADD;
19094 RAISE FND_API.G_EXC_ERROR;
19095 END IF;
19096 EXCEPTION
19097 WHEN FND_API.G_EXC_ERROR THEN
19098 RAISE FND_API.G_EXC_ERROR;
19099 WHEN OTHERS THEN
19100 NULL;
19101 END;
19102 ELSE
19103 l_temp_date:=SYSDATE;
19104 END IF;
19105 -- End addition by sk for bug 2151760
19106 l_instance_rec.object_version_number := l_curr_instance_rec.object_version_number + 1;
19107 -- l_instance_rec.instance_status_id := 1;
19108
19109 -- Added by sguthiva for bug 2520978
19110 -- Modified by srramakr for enhancement 2315522.
19111 -- This will allow the user to pass a Terminable status during expiration.
19112 IF p_instance_rec.instance_status_id IS NOT NULL AND
19113 p_instance_rec.instance_status_id <> fnd_api.g_miss_num THEN
19114 IF NOT (CSI_Item_Instance_vld_pvt.val_inst_ter_flag(
19115 p_instance_rec.instance_status_id)) THEN
19116 FND_MESSAGE.SET_NAME('CSI','CSI_API_INVALID_TERM_STATUS');
19117 FND_MSG_PUB.ADD;
19118 RAISE FND_API.G_EXC_ERROR;
19119 END IF;
19120 l_instance_rec.instance_status_id := p_instance_rec.instance_status_id;
19121 ELSE
19122 l_instance_rec.instance_status_id := fnd_profile.value('CSI_SYS_TERM_INST_STATUS_ID');
19123 IF l_instance_rec.instance_status_id IS NULL
19124 OR l_instance_rec.instance_status_id=fnd_api.g_miss_num
19125 THEN
19126 l_instance_rec.instance_status_id := 1;
19127 END IF;
19128 END IF;
19129 -- End addition by sguthiva for bug 2520978.
19130
19131 -- Added the following code for eam integration
19132 IF p_instance_rec.vld_organization_id IS NULL OR
19133 p_instance_rec.vld_organization_id = fnd_api.g_miss_num
19134 THEN
19135 BEGIN
19136 SELECT last_vld_organization_id
19137 INTO l_vld_org
19138 FROM csi_item_instances
19139 WHERE instance_id = p_instance_rec.instance_id;
19140 EXCEPTION
19141 WHEN NO_DATA_FOUND THEN
19142 fnd_message.set_name('CSI','CSI_API_INVALID_INSTANCE_ID');
19143 fnd_message.set_token('INSTANCE_ID',p_instance_rec.instance_id);
19144 fnd_msg_pub.ADD;
19145 END;
19146 ELSE
19147 l_vld_org := p_instance_rec.vld_organization_id;
19148 END IF;
19149
19150 IF csi_item_instance_vld_pvt.Check_for_eam_item
19151 (p_inventory_item_id => l_curr_instance_rec.inventory_item_id,
19152 p_organization_id => l_vld_org)
19153 THEN
19154 l_eam_item := TRUE;
19155 END IF;
19156
19157 IF l_eam_item AND
19158 (l_temp_date IS NOT NULL AND
19159 l_temp_date <> fnd_api.g_miss_date)
19160 THEN
19161 IF NOT eam_common_utilities_pvt.check_deactivate
19162 (p_maintenance_object_id => p_instance_rec.instance_id
19163 ,p_maintenance_object_type => l_maintenance_object_type)
19164 THEN
19165 csi_gen_utility_pvt.put_line('Error from eam_common_utilities_pvt.check_deactivate API ');
19166 RAISE fnd_api.g_exc_error;
19167 END IF;
19168 END IF;
19169 -- End code addition for eam integration
19170 -- validate instance status id
19171 IF NVL(l_instance_rec.instance_status_id,fnd_api.g_miss_num) <> fnd_api.g_miss_num
19172 THEN
19173 csi_item_instance_vld_pvt.is_valid_status(
19174 p_instance_status_id => l_instance_rec.instance_status_id,
19175 p_creation_complete_flag => l_creation_flag,
19176 l_return_value => l_valid);
19177 IF NOT(l_valid)
19178 THEN
19179 RAISE fnd_api.g_exc_error;
19180 END IF;
19181 END IF;
19182
19183 IF l_instance_rec.instance_status_id IS NOT NULL AND
19184 l_instance_rec.instance_status_id <> FND_API.G_MISS_NUM AND
19185 l_instance_rec.instance_status_id <> l_curr_instance_rec.instance_status_id
19186 THEN
19187 IF NOT csi_item_instance_vld_pvt.is_status_updateable
19188 (p_instance_status => l_instance_rec.instance_status_id
19189 ,p_current_status => l_curr_instance_rec.instance_status_id)
19190 THEN
19191 RAISE fnd_api.g_exc_error;
19192 END IF;
19193 END IF;
19194
19195 CSI_ITEM_INSTANCES_PKG.Update_Row
19196 ( p_INSTANCE_ID => l_rel_tbl(j).subject_id,
19197 p_INSTANCE_NUMBER => FND_API.G_MISS_CHAR,
19198 p_EXTERNAL_REFERENCE => FND_API.G_MISS_CHAR,
19199 p_INVENTORY_ITEM_ID => FND_API.G_MISS_NUM,
19200 p_INVENTORY_REVISION => FND_API.G_MISS_CHAR,
19201 p_INV_MASTER_ORGANIZATION_ID => FND_API.G_MISS_NUM,
19202 p_SERIAL_NUMBER => FND_API.G_MISS_CHAR,
19203 p_MFG_SERIAL_NUMBER_FLAG => FND_API.G_MISS_CHAR,
19204 p_LOT_NUMBER => FND_API.G_MISS_CHAR,
19205 p_QUANTITY => FND_API.G_MISS_NUM,
19206 p_UNIT_OF_MEASURE => FND_API.G_MISS_CHAR,
19207 p_ACCOUNTING_CLASS_CODE => FND_API.G_MISS_CHAR,
19208 p_INSTANCE_CONDITION_ID => FND_API.G_MISS_NUM,
19209 p_INSTANCE_STATUS_ID => l_instance_rec.instance_status_id,
19210 p_CUSTOMER_VIEW_FLAG => FND_API.G_MISS_CHAR,
19211 p_MERCHANT_VIEW_FLAG => FND_API.G_MISS_CHAR,
19212 p_SELLABLE_FLAG => FND_API.G_MISS_CHAR,
19213 p_SYSTEM_ID => FND_API.G_MISS_NUM,
19214 p_INSTANCE_TYPE_CODE => FND_API.G_MISS_CHAR,
19215 p_ACTIVE_START_DATE => FND_API.G_MISS_DATE,
19216 p_ACTIVE_END_DATE => l_temp_date,--SYSDATE, --p_instance_rec.active_end_date,
19217 p_LOCATION_TYPE_CODE => FND_API.G_MISS_CHAR,
19218 p_LOCATION_ID => FND_API.G_MISS_NUM,
19219 p_INV_ORGANIZATION_ID => FND_API.G_MISS_NUM,
19220 p_INV_SUBINVENTORY_NAME => FND_API.G_MISS_CHAR,
19221 p_INV_LOCATOR_ID => FND_API.G_MISS_NUM,
19222 p_PA_PROJECT_ID => FND_API.G_MISS_NUM,
19223 p_PA_PROJECT_TASK_ID => FND_API.G_MISS_NUM,
19224 p_IN_TRANSIT_ORDER_LINE_ID => FND_API.G_MISS_NUM,
19225 p_WIP_JOB_ID => FND_API.G_MISS_NUM,
19226 p_PO_ORDER_LINE_ID => FND_API.G_MISS_NUM,
19227 p_LAST_OE_ORDER_LINE_ID => FND_API.G_MISS_NUM,
19228 p_LAST_OE_RMA_LINE_ID => FND_API.G_MISS_NUM,
19229 p_LAST_PO_PO_LINE_ID => FND_API.G_MISS_NUM,
19230 p_LAST_OE_PO_NUMBER => FND_API.G_MISS_CHAR,
19231 p_LAST_WIP_JOB_ID => FND_API.G_MISS_NUM,
19232 p_LAST_PA_PROJECT_ID => FND_API.G_MISS_NUM,
19233 p_LAST_PA_TASK_ID => FND_API.G_MISS_NUM,
19234 p_LAST_OE_AGREEMENT_ID => FND_API.G_MISS_NUM,
19235 p_INSTALL_DATE => FND_API.G_MISS_DATE,
19236 p_MANUALLY_CREATED_FLAG => FND_API.G_MISS_CHAR,
19237 p_RETURN_BY_DATE => FND_API.G_MISS_DATE,
19238 p_ACTUAL_RETURN_DATE => FND_API.G_MISS_DATE,
19239 p_CREATION_COMPLETE_FLAG => FND_API.G_MISS_CHAR,
19240 p_COMPLETENESS_FLAG => FND_API.G_MISS_CHAR,
19241 p_CONTEXT => FND_API.G_MISS_CHAR,
19242 p_ATTRIBUTE1 => FND_API.G_MISS_CHAR,
19243 p_ATTRIBUTE2 => FND_API.G_MISS_CHAR,
19244 p_ATTRIBUTE3 => FND_API.G_MISS_CHAR,
19245 p_ATTRIBUTE4 => FND_API.G_MISS_CHAR,
19246 p_ATTRIBUTE5 => FND_API.G_MISS_CHAR,
19247 p_ATTRIBUTE6 => FND_API.G_MISS_CHAR,
19248 p_ATTRIBUTE7 => FND_API.G_MISS_CHAR,
19249 p_ATTRIBUTE8 => FND_API.G_MISS_CHAR,
19250 p_ATTRIBUTE9 => FND_API.G_MISS_CHAR,
19251 p_ATTRIBUTE10 => FND_API.G_MISS_CHAR,
19252 p_ATTRIBUTE11 => FND_API.G_MISS_CHAR,
19253 p_ATTRIBUTE12 => FND_API.G_MISS_CHAR,
19254 p_ATTRIBUTE13 => FND_API.G_MISS_CHAR,
19255 p_ATTRIBUTE14 => FND_API.G_MISS_CHAR,
19256 p_ATTRIBUTE15 => FND_API.G_MISS_CHAR,
19257 p_CREATED_BY => fnd_api.g_miss_num,
19258 p_CREATION_DATE => fnd_api.g_miss_date,
19259 p_LAST_UPDATED_BY => FND_GLOBAL.USER_ID,
19260 p_LAST_UPDATE_DATE => SYSDATE,
19261 p_LAST_UPDATE_LOGIN => FND_GLOBAL.CONC_LOGIN_ID,
19262 p_OBJECT_VERSION_NUMBER => l_instance_rec.OBJECT_VERSION_NUMBER,
19263 p_LAST_TXN_LINE_DETAIL_ID => FND_API.G_MISS_NUM,
19264 p_INSTALL_LOCATION_TYPE_CODE => FND_API.G_MISS_CHAR,
19265 p_INSTALL_LOCATION_ID => FND_API.G_MISS_NUM,
19266 p_INSTANCE_USAGE_CODE => FND_API.G_MISS_CHAR,
19267 p_CONFIG_INST_HDR_ID => NULL, -- FND_API.G_MISS_NUM,
19268 p_CONFIG_INST_REV_NUM => NULL, -- FND_API.G_MISS_NUM,
19269 p_CONFIG_INST_ITEM_ID => NULL, -- FND_API.G_MISS_NUM,
19270 p_CONFIG_VALID_STATUS => NULL, -- FND_API.G_MISS_CHAR,
19271 p_INSTANCE_DESCRIPTION => FND_API.G_MISS_CHAR,
19272 p_REQUEST_ID => FND_API.G_MISS_NUM,
19273 p_PROGRAM_APPLICATION_ID => FND_API.G_MISS_NUM,
19274 p_PROGRAM_ID => FND_API.G_MISS_NUM,
19275 p_PROGRAM_UPDATE_DATE => FND_API.G_MISS_DATE,
19276 --start of parameters addition for eam integration--
19277 p_NETWORK_ASSET_FLAG => FND_API.G_MISS_CHAR,
19278 p_MAINTAINABLE_FLAG => FND_API.G_MISS_CHAR,
19279 p_PN_LOCATION_ID => FND_API.G_MISS_NUM,
19280 p_ASSET_CRITICALITY_CODE => FND_API.G_MISS_CHAR,
19281 p_CATEGORY_ID => FND_API.G_MISS_NUM,
19282 p_EQUIPMENT_GEN_OBJECT_ID => FND_API.G_MISS_NUM,
19283 p_INSTANTIATION_FLAG => FND_API.G_MISS_CHAR,
19284 p_LINEAR_LOCATION_ID => FND_API.G_MISS_NUM,
19285 p_OPERATIONAL_LOG_FLAG => FND_API.G_MISS_CHAR,
19286 p_CHECKIN_STATUS => FND_API.G_MISS_NUM,
19287 p_SUPPLIER_WARRANTY_EXP_DATE => FND_API.G_MISS_DATE,
19288 p_ATTRIBUTE16 => FND_API.G_MISS_CHAR,
19289 p_ATTRIBUTE17 => FND_API.G_MISS_CHAR,
19290 p_ATTRIBUTE18 => FND_API.G_MISS_CHAR,
19291 p_ATTRIBUTE19 => FND_API.G_MISS_CHAR,
19292 p_ATTRIBUTE20 => FND_API.G_MISS_CHAR,
19293 p_ATTRIBUTE21 => FND_API.G_MISS_CHAR,
19294 p_ATTRIBUTE22 => FND_API.G_MISS_CHAR,
19295 p_ATTRIBUTE23 => FND_API.G_MISS_CHAR,
19296 p_ATTRIBUTE24 => FND_API.G_MISS_CHAR,
19297 p_ATTRIBUTE25 => FND_API.G_MISS_CHAR,
19298 p_ATTRIBUTE26 => FND_API.G_MISS_CHAR,
19299 p_ATTRIBUTE27 => FND_API.G_MISS_CHAR,
19300 p_ATTRIBUTE28 => FND_API.G_MISS_CHAR,
19301 p_ATTRIBUTE29 => FND_API.G_MISS_CHAR,
19302 p_ATTRIBUTE30 => FND_API.G_MISS_CHAR,
19303 --end of parameters addition for eam integration--
19304 -- Addition of columns for FA Integration
19305 p_PURCHASE_UNIT_PRICE => FND_API.G_MISS_NUM,
19306 p_PURCHASE_CURRENCY_CODE => FND_API.G_MISS_CHAR,
19307 p_PAYABLES_UNIT_PRICE => FND_API.G_MISS_NUM,
19308 p_PAYABLES_CURRENCY_CODE => FND_API.G_MISS_CHAR,
19309 p_SALES_UNIT_PRICE => FND_API.G_MISS_NUM,
19310 p_SALES_CURRENCY_CODE => FND_API.G_MISS_CHAR,
19311 p_OPERATIONAL_STATUS_CODE => FND_API.G_MISS_CHAR,
19312 -- End addition of columns for FA Integration
19313 p_SOURCE_CODE => FND_API.G_MISS_CHAR -- Added Code for Siebel Genesis Project
19314 );
19315
19316 CSI_TRANSACTIONS_PVT.Create_transaction
19317 (
19318 p_api_version => p_api_version
19319 ,p_commit => p_commit
19320 ,p_init_msg_list => p_init_msg_list
19321 ,p_validation_level => p_validation_level
19322 ,p_Success_IF_Exists_Flag => 'Y'
19323 ,p_transaction_rec => p_txn_rec
19324 ,x_return_status => x_return_status
19325 ,x_msg_count => x_msg_count
19326 ,x_msg_data => x_msg_data
19327 );
19328
19329 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
19330
19331 FND_MESSAGE.SET_NAME('CSI','CSI_FAILED_TO_VALIDATE_TXN');
19332 FND_MESSAGE.SET_TOKEN('TRANSACTION_ID',p_txn_rec.transaction_id );
19333 FND_MSG_PUB.Add;
19334 RAISE FND_API.G_EXC_ERROR;
19335 END IF;
19336
19337 -- Get the full_dump_frequency from csi_install_parameter
19338 IF csi_datastructures_pub.g_install_param_rec.fetch_flag IS NULL THEN
19339 csi_gen_utility_pvt.populate_install_param_rec;
19340 END IF;
19341 --
19342 l_full_dump_frequency := csi_datastructures_pub.g_install_param_rec.history_full_dump_frequency;
19343 --
19344 IF l_full_dump_frequency IS NULL THEN
19345 FND_MESSAGE.SET_NAME('CSI','CSI_API_GET_FULL_DUMP_FAILED');
19346 FND_MSG_PUB.ADD;
19347 RAISE FND_API.G_EXC_ERROR;
19348 END IF;
19349
19350 -- Get a unique history item instance id from the sequence
19351 l_csi_item_instance_h_id :=
19352 csi_item_instance_vld_pvt.get_csi_item_instance_h_id;
19353
19354 SELECT MOD(p_instance_rec.object_version_number,l_full_dump_frequency)
19355 INTO l_mod_value
19356 FROM dual;
19357
19358
19359 IF (l_mod_value = 0) THEN
19360 -- If the mod value is 0 then dump all the columns both changed and unchanged
19361 -- changed columns have old and new values while the unchanged values have old and new values
19362 -- exactly same
19363
19364 CSI_ITEM_INSTANCES_H_PKG.Insert_Row
19365 ( px_INSTANCE_HISTORY_ID => l_csi_item_instance_h_id
19366 ,p_INSTANCE_ID => l_rel_tbl(j).subject_id
19367 ,p_TRANSACTION_ID => p_txn_rec.TRANSACTION_ID
19368 ,p_OLD_INSTANCE_NUMBER => l_curr_instance_rec.INSTANCE_NUMBER
19369 ,p_NEW_INSTANCE_NUMBER => l_curr_instance_rec.INSTANCE_NUMBER
19370 ,p_OLD_EXTERNAL_REFERENCE => l_curr_instance_rec.EXTERNAL_REFERENCE
19371 ,p_NEW_EXTERNAL_REFERENCE => l_curr_instance_rec.EXTERNAL_REFERENCE
19372 ,p_OLD_INVENTORY_ITEM_ID => l_curr_instance_rec.INVENTORY_ITEM_ID
19373 ,p_NEW_INVENTORY_ITEM_ID => l_curr_instance_rec.INVENTORY_ITEM_ID
19374 ,p_OLD_INVENTORY_REVISION => l_curr_instance_rec.INVENTORY_REVISION
19375 ,p_NEW_INVENTORY_REVISION => l_curr_instance_rec.INVENTORY_REVISION
19376 ,p_OLD_INV_MASTER_ORGZN_ID => l_curr_instance_rec.INV_MASTER_ORGANIZATION_ID
19377 ,p_NEW_INV_MASTER_ORGZN_ID => l_curr_instance_rec.INV_MASTER_ORGANIZATION_ID
19378 ,p_OLD_SERIAL_NUMBER => l_curr_instance_rec.SERIAL_NUMBER
19379 ,p_NEW_SERIAL_NUMBER => l_curr_instance_rec.SERIAL_NUMBER
19380 ,p_OLD_MFG_SERIAL_NUMBER_FLAG => l_curr_instance_rec.MFG_SERIAL_NUMBER_FLAG
19381 ,p_NEW_MFG_SERIAL_NUMBER_FLAG => l_curr_instance_rec.MFG_SERIAL_NUMBER_FLAG
19382 ,p_OLD_LOT_NUMBER => l_curr_instance_rec.LOT_NUMBER
19383 ,p_NEW_LOT_NUMBER => l_curr_instance_rec.LOT_NUMBER
19384 ,p_OLD_QUANTITY => l_curr_instance_rec.QUANTITY
19385 ,p_NEW_QUANTITY => l_curr_instance_rec.QUANTITY
19386 ,p_OLD_UNIT_OF_MEASURE => l_curr_instance_rec.UNIT_OF_MEASURE
19387 ,p_NEW_UNIT_OF_MEASURE => l_curr_instance_rec.UNIT_OF_MEASURE
19388 ,p_OLD_ACCOUNTING_CLASS_CODE => l_curr_instance_rec.ACCOUNTING_CLASS_CODE
19389 ,p_NEW_ACCOUNTING_CLASS_CODE => l_curr_instance_rec.ACCOUNTING_CLASS_CODE
19390 ,p_OLD_INSTANCE_CONDITION_ID => l_curr_instance_rec.INSTANCE_CONDITION_ID
19391 ,p_NEW_INSTANCE_CONDITION_ID => l_curr_instance_rec.INSTANCE_CONDITION_ID
19392 ,p_OLD_INSTANCE_STATUS_ID => l_curr_instance_rec.INSTANCE_STATUS_ID
19393 ,p_NEW_INSTANCE_STATUS_ID => l_instance_rec.INSTANCE_STATUS_ID
19394 ,p_OLD_CUSTOMER_VIEW_FLAG => l_curr_instance_rec.CUSTOMER_VIEW_FLAG
19395 ,p_NEW_CUSTOMER_VIEW_FLAG => l_curr_instance_rec.CUSTOMER_VIEW_FLAG
19396 ,p_OLD_MERCHANT_VIEW_FLAG => l_curr_instance_rec.MERCHANT_VIEW_FLAG
19397 ,p_NEW_MERCHANT_VIEW_FLAG => l_curr_instance_rec.MERCHANT_VIEW_FLAG
19398 ,p_OLD_SELLABLE_FLAG => l_curr_instance_rec.SELLABLE_FLAG
19399 ,p_NEW_SELLABLE_FLAG => l_curr_instance_rec.SELLABLE_FLAG
19400 ,p_OLD_SYSTEM_ID => l_curr_instance_rec.SYSTEM_ID
19401 ,p_NEW_SYSTEM_ID => l_curr_instance_rec.SYSTEM_ID
19402 ,p_OLD_INSTANCE_TYPE_CODE => l_curr_instance_rec.INSTANCE_TYPE_CODE
19403 ,p_NEW_INSTANCE_TYPE_CODE => l_curr_instance_rec.INSTANCE_TYPE_CODE
19404 ,p_OLD_ACTIVE_START_DATE => l_curr_instance_rec.ACTIVE_START_DATE
19405 ,p_NEW_ACTIVE_START_DATE => l_curr_instance_rec.ACTIVE_START_DATE
19406 ,p_OLD_ACTIVE_END_DATE => l_curr_instance_rec.ACTIVE_END_DATE
19407 ,p_NEW_ACTIVE_END_DATE => l_temp_date --SYSDATE
19408 ,p_OLD_LOCATION_TYPE_CODE => l_curr_instance_rec.LOCATION_TYPE_CODE
19409 ,p_NEW_LOCATION_TYPE_CODE => l_curr_instance_rec.LOCATION_TYPE_CODE
19410 ,p_OLD_LOCATION_ID => l_curr_instance_rec.LOCATION_ID
19411 ,p_NEW_LOCATION_ID => l_curr_instance_rec.LOCATION_ID
19412 ,p_OLD_INV_ORGANIZATION_ID => l_curr_instance_rec.INV_ORGANIZATION_ID
19413 ,p_NEW_INV_ORGANIZATION_ID => l_curr_instance_rec.INV_ORGANIZATION_ID
19414 ,p_OLD_INV_SUBINVENTORY_NAME => l_curr_instance_rec.INV_SUBINVENTORY_NAME
19415 ,p_NEW_INV_SUBINVENTORY_NAME => l_curr_instance_rec.INV_SUBINVENTORY_NAME
19416 ,p_OLD_INV_LOCATOR_ID => l_curr_instance_rec.INV_LOCATOR_ID
19417 ,p_NEW_INV_LOCATOR_ID => l_curr_instance_rec.INV_LOCATOR_ID
19418 ,p_OLD_PA_PROJECT_ID => l_curr_instance_rec.PA_PROJECT_ID
19419 ,p_NEW_PA_PROJECT_ID => l_curr_instance_rec.PA_PROJECT_ID
19420 ,p_OLD_PA_PROJECT_TASK_ID => l_curr_instance_rec.PA_PROJECT_TASK_ID
19421 ,p_NEW_PA_PROJECT_TASK_ID => l_curr_instance_rec.PA_PROJECT_TASK_ID
19422 ,p_OLD_IN_TRANSIT_ORDER_LINE_ID => l_curr_instance_rec.IN_TRANSIT_ORDER_LINE_ID
19423 ,p_NEW_IN_TRANSIT_ORDER_LINE_ID => l_curr_instance_rec.IN_TRANSIT_ORDER_LINE_ID
19424 ,p_OLD_WIP_JOB_ID => l_curr_instance_rec.WIP_JOB_ID
19425 ,p_NEW_WIP_JOB_ID => l_curr_instance_rec.WIP_JOB_ID
19426 ,p_OLD_PO_ORDER_LINE_ID => l_curr_instance_rec.PO_ORDER_LINE_ID
19427 ,p_NEW_PO_ORDER_LINE_ID => l_curr_instance_rec.PO_ORDER_LINE_ID
19428 ,p_OLD_COMPLETENESS_FLAG => l_curr_instance_rec.COMPLETENESS_FLAG
19429 ,p_NEW_COMPLETENESS_FLAG => l_curr_instance_rec.COMPLETENESS_FLAG
19430 ,p_FULL_DUMP_FLAG => 'Y'
19431 ,p_NEW_CONTEXT => l_curr_instance_rec.CONTEXT
19432 ,P_OLD_CONTEXT => l_curr_instance_rec.CONTEXT
19433 ,p_NEW_ATTRIBUTE1 => l_curr_instance_rec.ATTRIBUTE1
19434 ,p_OLD_ATTRIBUTE1 => l_curr_instance_rec.ATTRIBUTE1
19435 ,p_NEW_ATTRIBUTE2 => l_curr_instance_rec.ATTRIBUTE2
19436 ,p_OLD_ATTRIBUTE2 => l_curr_instance_rec.ATTRIBUTE2
19437 ,p_NEW_ATTRIBUTE3 => l_curr_instance_rec.ATTRIBUTE3
19438 ,p_OLD_ATTRIBUTE3 => l_curr_instance_rec.ATTRIBUTE3
19439 ,p_NEW_ATTRIBUTE4 => l_curr_instance_rec.ATTRIBUTE4
19440 ,p_OLD_ATTRIBUTE4 => l_curr_instance_rec.ATTRIBUTE4
19441 ,p_NEW_ATTRIBUTE5 => l_curr_instance_rec.ATTRIBUTE5
19442 ,p_OLD_ATTRIBUTE5 => l_curr_instance_rec.ATTRIBUTE5
19443 ,p_NEW_ATTRIBUTE6 => l_curr_instance_rec.ATTRIBUTE6
19444 ,p_OLD_ATTRIBUTE6 => l_curr_instance_rec.ATTRIBUTE6
19445 ,p_NEW_ATTRIBUTE7 => l_curr_instance_rec.ATTRIBUTE7
19446 ,p_OLD_ATTRIBUTE7 => l_curr_instance_rec.ATTRIBUTE7
19447 ,p_NEW_ATTRIBUTE8 => l_curr_instance_rec.ATTRIBUTE8
19448 ,p_OLD_ATTRIBUTE8 => l_curr_instance_rec.ATTRIBUTE8
19449 ,p_NEW_ATTRIBUTE9 => l_curr_instance_rec.ATTRIBUTE9
19450 ,p_OLD_ATTRIBUTE9 => l_curr_instance_rec.ATTRIBUTE9
19451 ,p_NEW_ATTRIBUTE10 => l_curr_instance_rec.ATTRIBUTE10
19452 ,p_OLD_ATTRIBUTE10 => l_curr_instance_rec.ATTRIBUTE10
19453 ,p_NEW_ATTRIBUTE11 => l_curr_instance_rec.ATTRIBUTE11
19454 ,p_OLD_ATTRIBUTE11 => l_curr_instance_rec.ATTRIBUTE11
19455 ,p_NEW_ATTRIBUTE12 => l_curr_instance_rec.ATTRIBUTE12
19456 ,p_OLD_ATTRIBUTE12 => l_curr_instance_rec.ATTRIBUTE12
19457 ,p_NEW_ATTRIBUTE13 => l_curr_instance_rec.ATTRIBUTE13
19458 ,p_OLD_ATTRIBUTE13 => l_curr_instance_rec.ATTRIBUTE13
19459 ,p_NEW_ATTRIBUTE14 => l_curr_instance_rec.ATTRIBUTE14
19460 ,p_OLD_ATTRIBUTE14 => l_curr_instance_rec.ATTRIBUTE14
19461 ,p_NEW_ATTRIBUTE15 => l_curr_instance_rec.ATTRIBUTE15
19462 ,p_OLD_ATTRIBUTE15 => l_curr_instance_rec.ATTRIBUTE15
19463 ,p_CREATED_BY => FND_GLOBAL.USER_ID
19464 ,p_CREATION_DATE => SYSDATE
19465 ,p_LAST_UPDATED_BY => FND_GLOBAL.USER_ID
19466 ,p_LAST_UPDATE_DATE => SYSDATE
19467 ,p_LAST_UPDATE_LOGIN => FND_GLOBAL.CONC_LOGIN_ID
19468 ,p_OBJECT_VERSION_NUMBER => 1
19469 ,p_OLD_INST_LOC_TYPE_CODE => l_curr_instance_rec.INSTALL_LOCATION_TYPE_CODE
19470 ,p_NEW_INST_LOC_TYPE_CODE => l_curr_instance_rec.INSTALL_LOCATION_TYPE_CODE
19471 ,p_OLD_INST_LOC_ID => l_curr_instance_rec.INSTALL_LOCATION_ID
19472 ,p_NEW_INST_LOC_ID => l_curr_instance_rec.INSTALL_LOCATION_ID
19473 ,p_OLD_INST_USAGE_CODE => l_curr_instance_rec.INSTANCE_USAGE_CODE
19474 ,p_NEW_INST_USAGE_CODE => l_curr_instance_rec.INSTANCE_USAGE_CODE
19475 ,p_OLD_CONFIG_INST_REV_NUM => l_curr_instance_rec.CONFIG_INST_REV_NUM
19476 ,p_NEW_CONFIG_INST_REV_NUM => NULL -- l_curr_instance_rec.CONFIG_INST_REV_NUM
19477 ,p_OLD_CONFIG_VALID_STATUS => l_curr_instance_rec.CONFIG_VALID_STATUS
19478 ,p_NEW_CONFIG_VALID_STATUS => l_curr_instance_rec.CONFIG_VALID_STATUS
19479 ,p_OLD_INSTANCE_DESCRIPTION => l_curr_instance_rec.INSTANCE_DESCRIPTION
19480 ,p_NEW_INSTANCE_DESCRIPTION => l_curr_instance_rec.INSTANCE_DESCRIPTION
19481 ,p_OLD_INSTALL_DATE => l_curr_instance_rec.INSTALL_DATE
19482 ,p_NEW_INSTALL_DATE => l_curr_instance_rec.INSTALL_DATE
19483 ,p_OLD_RETURN_BY_DATE => l_curr_instance_rec.RETURN_BY_DATE
19484 ,p_NEW_RETURN_BY_DATE => l_curr_instance_rec.RETURN_BY_DATE
19485 ,p_OLD_ACTUAL_RETURN_DATE => l_curr_instance_rec.ACTUAL_RETURN_DATE
19486 ,p_NEW_ACTUAL_RETURN_DATE => l_curr_instance_rec.ACTUAL_RETURN_DATE
19487 ,p_OLD_LAST_OE_AGREEMENT_ID => l_curr_instance_rec.LAST_OE_AGREEMENT_ID
19488 ,p_NEW_LAST_OE_AGREEMENT_ID => l_curr_instance_rec.LAST_OE_AGREEMENT_ID
19489 ,p_OLD_LAST_OE_ORDER_LINE_ID => l_curr_instance_rec.LAST_OE_ORDER_LINE_ID
19490 ,p_NEW_LAST_OE_ORDER_LINE_ID => l_curr_instance_rec.LAST_OE_ORDER_LINE_ID
19491 ,p_OLD_LAST_OE_RMA_LINE_ID => l_curr_instance_rec.LAST_OE_RMA_LINE_ID
19492 ,p_NEW_LAST_OE_RMA_LINE_ID => l_curr_instance_rec.LAST_OE_RMA_LINE_ID
19493 ,p_OLD_LAST_WIP_JOB_ID => l_curr_instance_rec.LAST_WIP_JOB_ID
19494 ,p_NEW_LAST_WIP_JOB_ID => l_curr_instance_rec.LAST_WIP_JOB_ID
19495 ,p_OLD_LAST_PO_PO_LINE_ID => l_curr_instance_rec.LAST_PO_PO_LINE_ID
19496 ,p_NEW_LAST_PO_PO_LINE_ID => l_curr_instance_rec.LAST_PO_PO_LINE_ID
19497 ,p_OLD_LAST_PA_PROJECT_ID => l_curr_instance_rec.LAST_PA_PROJECT_ID
19498 ,p_NEW_LAST_PA_PROJECT_ID => l_curr_instance_rec.LAST_PA_PROJECT_ID
19499 ,p_OLD_LAST_PA_TASK_ID => l_curr_instance_rec.LAST_PA_TASK_ID
19500 ,p_NEW_LAST_PA_TASK_ID => l_curr_instance_rec.LAST_PA_TASK_ID
19501 ,p_OLD_LAST_TXN_LINE_DETAIL_ID => l_curr_instance_rec.LAST_TXN_LINE_DETAIL_ID
19502 ,p_NEW_LAST_TXN_LINE_DETAIL_ID => l_curr_instance_rec.LAST_TXN_LINE_DETAIL_ID
19503 ,p_OLD_LAST_OE_PO_NUMBER => l_curr_instance_rec.LAST_OE_PO_NUMBER
19504 ,p_NEW_LAST_OE_PO_NUMBER => l_curr_instance_rec.LAST_OE_PO_NUMBER
19505 --start of parameters addition for eam integration--
19506 ,p_OLD_NETWORK_ASSET_FLAG => l_curr_instance_rec.NETWORK_ASSET_FLAG
19507 ,p_NEW_NETWORK_ASSET_FLAG => l_curr_instance_rec.NETWORK_ASSET_FLAG
19508 ,p_OLD_MAINTAINABLE_FLAG => l_curr_instance_rec.MAINTAINABLE_FLAG
19509 ,p_NEW_MAINTAINABLE_FLAG => l_curr_instance_rec.MAINTAINABLE_FLAG
19510 ,p_OLD_PN_LOCATION_ID => l_curr_instance_rec.PN_LOCATION_ID
19511 ,p_NEW_PN_LOCATION_ID => l_curr_instance_rec.PN_LOCATION_ID
19512 ,p_OLD_ASSET_CRITICALITY_CODE => l_curr_instance_rec.ASSET_CRITICALITY_CODE
19513 ,p_NEW_ASSET_CRITICALITY_CODE => l_curr_instance_rec.ASSET_CRITICALITY_CODE
19514 ,p_OLD_CATEGORY_ID => l_curr_instance_rec.CATEGORY_ID
19515 ,p_NEW_CATEGORY_ID => l_curr_instance_rec.CATEGORY_ID
19516 ,p_OLD_EQUIPMENT_GEN_OBJECT_ID => l_curr_instance_rec.EQUIPMENT_GEN_OBJECT_ID
19517 ,p_NEW_EQUIPMENT_GEN_OBJECT_ID => l_curr_instance_rec.EQUIPMENT_GEN_OBJECT_ID
19518 ,p_OLD_INSTANTIATION_FLAG => l_curr_instance_rec.INSTANTIATION_FLAG
19519 ,p_NEW_INSTANTIATION_FLAG => l_curr_instance_rec.INSTANTIATION_FLAG
19520 ,p_OLD_LINEAR_LOCATION_ID => l_curr_instance_rec.LINEAR_LOCATION_ID
19521 ,p_NEW_LINEAR_LOCATION_ID => l_curr_instance_rec.LINEAR_LOCATION_ID
19522 ,p_OLD_OPERATIONAL_LOG_FLAG => l_curr_instance_rec.OPERATIONAL_LOG_FLAG
19523 ,p_NEW_OPERATIONAL_LOG_FLAG => l_curr_instance_rec.OPERATIONAL_LOG_FLAG
19524 ,p_OLD_CHECKIN_STATUS => l_curr_instance_rec.CHECKIN_STATUS
19525 ,p_NEW_CHECKIN_STATUS => l_curr_instance_rec.CHECKIN_STATUS
19526 ,p_OLD_SUP_WARRANTY_EXP_DATE => l_curr_instance_rec.SUPPLIER_WARRANTY_EXP_DATE
19527 ,p_NEW_SUP_WARRANTY_EXP_DATE => l_curr_instance_rec.SUPPLIER_WARRANTY_EXP_DATE
19528 ,p_OLD_ATTRIBUTE16 => l_curr_instance_rec.ATTRIBUTE16
19529 ,p_NEW_ATTRIBUTE16 => l_curr_instance_rec.ATTRIBUTE16
19530 ,p_OLD_ATTRIBUTE17 => l_curr_instance_rec.ATTRIBUTE17
19531 ,p_NEW_ATTRIBUTE17 => l_curr_instance_rec.ATTRIBUTE17
19532 ,p_OLD_ATTRIBUTE18 => l_curr_instance_rec.ATTRIBUTE18
19533 ,p_NEW_ATTRIBUTE18 => l_curr_instance_rec.ATTRIBUTE18
19534 ,p_OLD_ATTRIBUTE19 => l_curr_instance_rec.ATTRIBUTE19
19535 ,p_NEW_ATTRIBUTE19 => l_curr_instance_rec.ATTRIBUTE19
19536 ,p_OLD_ATTRIBUTE20 => l_curr_instance_rec.ATTRIBUTE20
19537 ,p_NEW_ATTRIBUTE20 => l_curr_instance_rec.ATTRIBUTE20
19538 ,p_OLD_ATTRIBUTE21 => l_curr_instance_rec.ATTRIBUTE21
19539 ,p_NEW_ATTRIBUTE21 => l_curr_instance_rec.ATTRIBUTE21
19540 ,p_OLD_ATTRIBUTE22 => l_curr_instance_rec.ATTRIBUTE22
19541 ,p_NEW_ATTRIBUTE22 => l_curr_instance_rec.ATTRIBUTE22
19542 ,p_OLD_ATTRIBUTE23 => l_curr_instance_rec.ATTRIBUTE23
19543 ,p_NEW_ATTRIBUTE23 => l_curr_instance_rec.ATTRIBUTE23
19544 ,p_OLD_ATTRIBUTE24 => l_curr_instance_rec.ATTRIBUTE24
19545 ,p_NEW_ATTRIBUTE24 => l_curr_instance_rec.ATTRIBUTE24
19546 ,p_OLD_ATTRIBUTE25 => l_curr_instance_rec.ATTRIBUTE25
19547 ,p_NEW_ATTRIBUTE25 => l_curr_instance_rec.ATTRIBUTE25
19548 ,p_OLD_ATTRIBUTE26 => l_curr_instance_rec.ATTRIBUTE26
19549 ,p_NEW_ATTRIBUTE26 => l_curr_instance_rec.ATTRIBUTE26
19550 ,p_OLD_ATTRIBUTE27 => l_curr_instance_rec.ATTRIBUTE27
19551 ,p_NEW_ATTRIBUTE27 => l_curr_instance_rec.ATTRIBUTE27
19552 ,p_OLD_ATTRIBUTE28 => l_curr_instance_rec.ATTRIBUTE28
19553 ,p_NEW_ATTRIBUTE28 => l_curr_instance_rec.ATTRIBUTE28
19554 ,p_OLD_ATTRIBUTE29 => l_curr_instance_rec.ATTRIBUTE29
19555 ,p_NEW_ATTRIBUTE29 => l_curr_instance_rec.ATTRIBUTE29
19556 ,p_OLD_ATTRIBUTE30 => l_curr_instance_rec.ATTRIBUTE30
19557 ,p_NEW_ATTRIBUTE30 => l_curr_instance_rec.ATTRIBUTE30
19558 --end of parameters addition for eam integration--
19559 -- Addition of columns for FA Integration
19560 ,p_OLD_PAYABLES_UNIT_PRICE => l_curr_instance_rec.PAYABLES_UNIT_PRICE
19561 ,p_NEW_PAYABLES_UNIT_PRICE => l_curr_instance_rec.PAYABLES_UNIT_PRICE
19562 ,p_OLD_PAYABLES_CURRENCY_CODE => l_curr_instance_rec.PAYABLES_CURRENCY_CODE
19563 ,p_NEW_PAYABLES_CURRENCY_CODE => l_curr_instance_rec.PAYABLES_CURRENCY_CODE
19564 ,p_OLD_PURCHASE_UNIT_PRICE => l_curr_instance_rec.PURCHASE_UNIT_PRICE
19565 ,p_NEW_PURCHASE_UNIT_PRICE => l_curr_instance_rec.PURCHASE_UNIT_PRICE
19566 ,p_OLD_PURCHASE_CURRENCY_CODE => l_curr_instance_rec.PURCHASE_CURRENCY_CODE
19567 ,p_NEW_PURCHASE_CURRENCY_CODE => l_curr_instance_rec.PURCHASE_CURRENCY_CODE
19568 ,p_OLD_SALES_UNIT_PRICE => l_curr_instance_rec.SALES_UNIT_PRICE
19569 ,p_NEW_SALES_UNIT_PRICE => l_curr_instance_rec.SALES_UNIT_PRICE
19570 ,p_OLD_SALES_CURRENCY_CODE => l_curr_instance_rec.SALES_CURRENCY_CODE
19571 ,p_NEW_SALES_CURRENCY_CODE => l_curr_instance_rec.SALES_CURRENCY_CODE
19572 ,p_OLD_OPERATIONAL_STATUS_CODE => l_curr_instance_rec.OPERATIONAL_STATUS_CODE
19573 ,p_NEW_OPERATIONAL_STATUS_CODE => l_curr_instance_rec.OPERATIONAL_STATUS_CODE
19574 -- End addition of columns for FA Integration
19575 -- Begin Add Code for Siebel Genesis Project
19576 ,p_OLD_SOURCE_CODE => l_curr_instance_rec.SOURCE_CODE
19577 ,p_NEW_SOURCE_CODE => l_curr_instance_rec.SOURCE_CODE
19578 -- End Add Code for Siebel Genesis Project
19579 );
19580
19581 ELSE
19582 -- If the mod value is not equal to zero then dump only the changed columns
19583 -- while the unchanged values have old and new values as null
19584
19585 CSI_ITEM_INSTANCES_H_PKG.Insert_Row
19586 ( px_INSTANCE_HISTORY_ID => l_csi_item_instance_h_id
19587 ,p_INSTANCE_ID => l_rel_tbl(j).subject_id
19588 ,p_TRANSACTION_ID => p_txn_rec.TRANSACTION_ID
19589 ,p_OLD_INSTANCE_NUMBER => FND_API.G_MISS_CHAR
19590 ,p_NEW_INSTANCE_NUMBER => FND_API.G_MISS_CHAR
19591 ,p_OLD_EXTERNAL_REFERENCE => FND_API.G_MISS_CHAR
19592 ,p_NEW_EXTERNAL_REFERENCE => FND_API.G_MISS_CHAR
19593 ,p_OLD_INVENTORY_ITEM_ID => FND_API.G_MISS_NUM
19594 ,p_NEW_INVENTORY_ITEM_ID => FND_API.G_MISS_NUM
19595 ,p_OLD_INVENTORY_REVISION => FND_API.G_MISS_CHAR
19596 ,p_NEW_INVENTORY_REVISION => FND_API.G_MISS_CHAR
19597 ,p_OLD_INV_MASTER_ORGZN_ID => FND_API.G_MISS_NUM
19598 ,p_NEW_INV_MASTER_ORGZN_ID => FND_API.G_MISS_NUM
19599 ,p_OLD_SERIAL_NUMBER => FND_API.G_MISS_CHAR
19600 ,p_NEW_SERIAL_NUMBER => FND_API.G_MISS_CHAR
19601 ,p_OLD_MFG_SERIAL_NUMBER_FLAG => FND_API.G_MISS_CHAR
19602 ,p_NEW_MFG_SERIAL_NUMBER_FLAG => FND_API.G_MISS_CHAR
19603 ,p_OLD_LOT_NUMBER => FND_API.G_MISS_CHAR
19604 ,p_NEW_LOT_NUMBER => FND_API.G_MISS_CHAR
19605 ,p_OLD_QUANTITY => FND_API.G_MISS_NUM
19606 ,p_NEW_QUANTITY => FND_API.G_MISS_NUM
19607 ,p_OLD_UNIT_OF_MEASURE => FND_API.G_MISS_CHAR
19608 ,p_NEW_UNIT_OF_MEASURE => FND_API.G_MISS_CHAR
19609 ,p_OLD_ACCOUNTING_CLASS_CODE => FND_API.G_MISS_CHAR
19610 ,p_NEW_ACCOUNTING_CLASS_CODE => FND_API.G_MISS_CHAR
19611 ,p_OLD_INSTANCE_CONDITION_ID => FND_API.G_MISS_NUM
19612 ,p_NEW_INSTANCE_CONDITION_ID => FND_API.G_MISS_NUM
19613 ,p_OLD_INSTANCE_STATUS_ID => l_curr_instance_rec.INSTANCE_STATUS_ID
19614 ,p_NEW_INSTANCE_STATUS_ID => l_instance_rec.INSTANCE_STATUS_ID
19615 ,p_OLD_CUSTOMER_VIEW_FLAG => FND_API.G_MISS_CHAR
19616 ,p_NEW_CUSTOMER_VIEW_FLAG => FND_API.G_MISS_CHAR
19617 ,p_OLD_MERCHANT_VIEW_FLAG => FND_API.G_MISS_CHAR
19618 ,p_NEW_MERCHANT_VIEW_FLAG => FND_API.G_MISS_CHAR
19619 ,p_OLD_SELLABLE_FLAG => FND_API.G_MISS_CHAR
19620 ,p_NEW_SELLABLE_FLAG => FND_API.G_MISS_CHAR
19621 ,p_OLD_SYSTEM_ID => FND_API.G_MISS_NUM
19622 ,p_NEW_SYSTEM_ID => FND_API.G_MISS_NUM
19623 ,p_OLD_INSTANCE_TYPE_CODE => FND_API.G_MISS_CHAR
19624 ,p_NEW_INSTANCE_TYPE_CODE => FND_API.G_MISS_CHAR
19625 ,p_OLD_ACTIVE_START_DATE => FND_API.G_MISS_DATE
19626 ,p_NEW_ACTIVE_START_DATE => FND_API.G_MISS_DATE
19627 ,p_OLD_ACTIVE_END_DATE => l_curr_instance_rec.ACTIVE_END_DATE
19628 ,p_NEW_ACTIVE_END_DATE => l_temp_date --SYSDATE
19629 ,p_OLD_LOCATION_TYPE_CODE => FND_API.G_MISS_CHAR
19630 ,p_NEW_LOCATION_TYPE_CODE => FND_API.G_MISS_CHAR
19631 ,p_OLD_LOCATION_ID => FND_API.G_MISS_NUM
19632 ,p_NEW_LOCATION_ID => FND_API.G_MISS_NUM
19633 ,p_OLD_INV_ORGANIZATION_ID => FND_API.G_MISS_NUM
19634 ,p_NEW_INV_ORGANIZATION_ID => FND_API.G_MISS_NUM
19635 ,p_OLD_INV_SUBINVENTORY_NAME => FND_API.G_MISS_CHAR
19636 ,p_NEW_INV_SUBINVENTORY_NAME => FND_API.G_MISS_CHAR
19637 ,p_OLD_INV_LOCATOR_ID => FND_API.G_MISS_NUM
19638 ,p_NEW_INV_LOCATOR_ID => FND_API.G_MISS_NUM
19639 ,p_OLD_PA_PROJECT_ID => FND_API.G_MISS_NUM
19640 ,p_NEW_PA_PROJECT_ID => FND_API.G_MISS_NUM
19641 ,p_OLD_PA_PROJECT_TASK_ID => FND_API.G_MISS_NUM
19642 ,p_NEW_PA_PROJECT_TASK_ID => FND_API.G_MISS_NUM
19643 ,p_OLD_IN_TRANSIT_ORDER_LINE_ID => FND_API.G_MISS_NUM
19644 ,p_NEW_IN_TRANSIT_ORDER_LINE_ID => FND_API.G_MISS_NUM
19645 ,p_OLD_WIP_JOB_ID => FND_API.G_MISS_NUM
19646 ,p_NEW_WIP_JOB_ID => FND_API.G_MISS_NUM
19647 ,p_OLD_PO_ORDER_LINE_ID => FND_API.G_MISS_NUM
19648 ,p_NEW_PO_ORDER_LINE_ID => FND_API.G_MISS_NUM
19649 ,p_OLD_COMPLETENESS_FLAG => FND_API.G_MISS_CHAR
19650 ,p_NEW_COMPLETENESS_FLAG => FND_API.G_MISS_CHAR
19651 ,p_FULL_DUMP_FLAG => 'N'
19652 ,p_NEW_CONTEXT => FND_API.G_MISS_CHAR
19653 ,P_OLD_CONTEXT => FND_API.G_MISS_CHAR
19654 ,p_NEW_ATTRIBUTE1 => FND_API.G_MISS_CHAR
19655 ,p_OLD_ATTRIBUTE1 => FND_API.G_MISS_CHAR
19656 ,p_NEW_ATTRIBUTE2 => FND_API.G_MISS_CHAR
19657 ,p_OLD_ATTRIBUTE2 => FND_API.G_MISS_CHAR
19658 ,p_NEW_ATTRIBUTE3 => FND_API.G_MISS_CHAR
19659 ,p_OLD_ATTRIBUTE3 => FND_API.G_MISS_CHAR
19660 ,p_NEW_ATTRIBUTE4 => FND_API.G_MISS_CHAR
19661 ,p_OLD_ATTRIBUTE4 => FND_API.G_MISS_CHAR
19662 ,p_NEW_ATTRIBUTE5 => FND_API.G_MISS_CHAR
19663 ,p_OLD_ATTRIBUTE5 => FND_API.G_MISS_CHAR
19664 ,p_NEW_ATTRIBUTE6 => FND_API.G_MISS_CHAR
19665 ,p_OLD_ATTRIBUTE6 => FND_API.G_MISS_CHAR
19666 ,p_NEW_ATTRIBUTE7 => FND_API.G_MISS_CHAR
19667 ,p_OLD_ATTRIBUTE7 => FND_API.G_MISS_CHAR
19668 ,p_NEW_ATTRIBUTE8 => FND_API.G_MISS_CHAR
19669 ,p_OLD_ATTRIBUTE8 => FND_API.G_MISS_CHAR
19670 ,p_NEW_ATTRIBUTE9 => FND_API.G_MISS_CHAR
19671 ,p_OLD_ATTRIBUTE9 => FND_API.G_MISS_CHAR
19672 ,p_NEW_ATTRIBUTE10 => FND_API.G_MISS_CHAR
19673 ,p_OLD_ATTRIBUTE10 => FND_API.G_MISS_CHAR
19674 ,p_NEW_ATTRIBUTE11 => FND_API.G_MISS_CHAR
19675 ,p_OLD_ATTRIBUTE11 => FND_API.G_MISS_CHAR
19676 ,p_NEW_ATTRIBUTE12 => FND_API.G_MISS_CHAR
19677 ,p_OLD_ATTRIBUTE12 => FND_API.G_MISS_CHAR
19678 ,p_NEW_ATTRIBUTE13 => FND_API.G_MISS_CHAR
19679 ,p_OLD_ATTRIBUTE13 => FND_API.G_MISS_CHAR
19680 ,p_NEW_ATTRIBUTE14 => FND_API.G_MISS_CHAR
19681 ,p_OLD_ATTRIBUTE14 => FND_API.G_MISS_CHAR
19682 ,p_NEW_ATTRIBUTE15 => FND_API.G_MISS_CHAR
19683 ,p_OLD_ATTRIBUTE15 => FND_API.G_MISS_CHAR
19684 ,p_CREATED_BY => FND_GLOBAL.USER_ID
19685 ,p_CREATION_DATE => SYSDATE
19686 ,p_LAST_UPDATED_BY => FND_GLOBAL.USER_ID
19687 ,p_LAST_UPDATE_DATE => SYSDATE
19688 ,p_LAST_UPDATE_LOGIN => FND_GLOBAL.CONC_LOGIN_ID
19689 ,p_OBJECT_VERSION_NUMBER => 1
19690 ,p_OLD_INST_LOC_TYPE_CODE => FND_API.G_MISS_CHAR
19691 ,p_NEW_INST_LOC_TYPE_CODE => FND_API.G_MISS_CHAR
19692 ,p_OLD_INST_LOC_ID => FND_API.G_MISS_NUM
19693 ,p_NEW_INST_LOC_ID => FND_API.G_MISS_NUM
19694 ,p_OLD_INST_USAGE_CODE => FND_API.G_MISS_CHAR
19695 ,p_NEW_INST_USAGE_CODE => FND_API.G_MISS_CHAR
19696 ,p_OLD_CONFIG_INST_REV_NUM => FND_API.G_MISS_NUM
19697 ,p_NEW_CONFIG_INST_REV_NUM => NULL -- FND_API.G_MISS_NUM
19698 ,p_OLD_CONFIG_VALID_STATUS => FND_API.G_MISS_CHAR
19699 ,p_NEW_CONFIG_VALID_STATUS => FND_API.G_MISS_CHAR
19700 ,p_OLD_INSTANCE_DESCRIPTION => FND_API.G_MISS_CHAR
19701 ,p_NEW_INSTANCE_DESCRIPTION => FND_API.G_MISS_CHAR
19702 ,p_OLD_INSTALL_DATE => FND_API.G_MISS_DATE
19703 ,p_NEW_INSTALL_DATE => FND_API.G_MISS_DATE
19704 ,p_OLD_RETURN_BY_DATE => FND_API.G_MISS_DATE
19705 ,p_NEW_RETURN_BY_DATE => FND_API.G_MISS_DATE
19706 ,p_OLD_ACTUAL_RETURN_DATE => FND_API.G_MISS_DATE
19707 ,p_NEW_ACTUAL_RETURN_DATE => FND_API.G_MISS_DATE
19708 ,p_OLD_LAST_OE_AGREEMENT_ID => FND_API.G_MISS_NUM
19709 ,p_NEW_LAST_OE_AGREEMENT_ID => FND_API.G_MISS_NUM
19710 ,p_OLD_LAST_OE_ORDER_LINE_ID => FND_API.G_MISS_NUM
19711 ,p_NEW_LAST_OE_ORDER_LINE_ID => FND_API.G_MISS_NUM
19712 ,p_OLD_LAST_OE_RMA_LINE_ID => FND_API.G_MISS_NUM
19713 ,p_NEW_LAST_OE_RMA_LINE_ID => FND_API.G_MISS_NUM
19714 ,p_OLD_LAST_WIP_JOB_ID => FND_API.G_MISS_NUM
19715 ,p_NEW_LAST_WIP_JOB_ID => FND_API.G_MISS_NUM
19716 ,p_OLD_LAST_PO_PO_LINE_ID => FND_API.G_MISS_NUM
19717 ,p_NEW_LAST_PO_PO_LINE_ID => FND_API.G_MISS_NUM
19718 ,p_OLD_LAST_PA_PROJECT_ID => FND_API.G_MISS_NUM
19719 ,p_NEW_LAST_PA_PROJECT_ID => FND_API.G_MISS_NUM
19720 ,p_OLD_LAST_PA_TASK_ID => FND_API.G_MISS_NUM
19721 ,p_NEW_LAST_PA_TASK_ID => FND_API.G_MISS_NUM
19722 ,p_OLD_LAST_TXN_LINE_DETAIL_ID => FND_API.G_MISS_NUM
19723 ,p_NEW_LAST_TXN_LINE_DETAIL_ID => FND_API.G_MISS_NUM
19724 ,p_OLD_LAST_OE_PO_NUMBER => FND_API.G_MISS_CHAR
19725 ,p_NEW_LAST_OE_PO_NUMBER => FND_API.G_MISS_CHAR
19726 --start of parameters addition for eam integration--
19727 ,p_OLD_NETWORK_ASSET_FLAG => FND_API.G_MISS_CHAR
19728 ,p_NEW_NETWORK_ASSET_FLAG => FND_API.G_MISS_CHAR
19729 ,p_OLD_MAINTAINABLE_FLAG => FND_API.G_MISS_CHAR
19730 ,p_NEW_MAINTAINABLE_FLAG => FND_API.G_MISS_CHAR
19731 ,p_OLD_PN_LOCATION_ID => FND_API.G_MISS_NUM
19732 ,p_NEW_PN_LOCATION_ID => FND_API.G_MISS_NUM
19733 ,p_OLD_ASSET_CRITICALITY_CODE => FND_API.G_MISS_CHAR
19734 ,p_NEW_ASSET_CRITICALITY_CODE => FND_API.G_MISS_CHAR
19735 ,p_OLD_CATEGORY_ID => FND_API.G_MISS_NUM
19736 ,p_NEW_CATEGORY_ID => FND_API.G_MISS_NUM
19737 ,p_OLD_EQUIPMENT_GEN_OBJECT_ID => FND_API.G_MISS_NUM
19738 ,p_NEW_EQUIPMENT_GEN_OBJECT_ID => FND_API.G_MISS_NUM
19739 ,p_OLD_INSTANTIATION_FLAG => FND_API.G_MISS_CHAR
19740 ,p_NEW_INSTANTIATION_FLAG => FND_API.G_MISS_CHAR
19741 ,p_OLD_LINEAR_LOCATION_ID => FND_API.G_MISS_NUM
19742 ,p_NEW_LINEAR_LOCATION_ID => FND_API.G_MISS_NUM
19743 ,p_OLD_OPERATIONAL_LOG_FLAG => FND_API.G_MISS_CHAR
19744 ,p_NEW_OPERATIONAL_LOG_FLAG => FND_API.G_MISS_CHAR
19745 ,p_OLD_CHECKIN_STATUS => FND_API.G_MISS_NUM
19746 ,p_NEW_CHECKIN_STATUS => FND_API.G_MISS_NUM
19747 ,p_OLD_SUP_WARRANTY_EXP_DATE => FND_API.G_MISS_DATE
19748 ,p_NEW_SUP_WARRANTY_EXP_DATE => FND_API.G_MISS_DATE
19749 ,p_OLD_ATTRIBUTE16 => FND_API.G_MISS_CHAR
19750 ,p_NEW_ATTRIBUTE16 => FND_API.G_MISS_CHAR
19751 ,p_OLD_ATTRIBUTE17 => FND_API.G_MISS_CHAR
19752 ,p_NEW_ATTRIBUTE17 => FND_API.G_MISS_CHAR
19753 ,p_OLD_ATTRIBUTE18 => FND_API.G_MISS_CHAR
19754 ,p_NEW_ATTRIBUTE18 => FND_API.G_MISS_CHAR
19755 ,p_OLD_ATTRIBUTE19 => FND_API.G_MISS_CHAR
19756 ,p_NEW_ATTRIBUTE19 => FND_API.G_MISS_CHAR
19757 ,p_OLD_ATTRIBUTE20 => FND_API.G_MISS_CHAR
19758 ,p_NEW_ATTRIBUTE20 => FND_API.G_MISS_CHAR
19759 ,p_OLD_ATTRIBUTE21 => FND_API.G_MISS_CHAR
19760 ,p_NEW_ATTRIBUTE21 => FND_API.G_MISS_CHAR
19761 ,p_OLD_ATTRIBUTE22 => FND_API.G_MISS_CHAR
19762 ,p_NEW_ATTRIBUTE22 => FND_API.G_MISS_CHAR
19763 ,p_OLD_ATTRIBUTE23 => FND_API.G_MISS_CHAR
19764 ,p_NEW_ATTRIBUTE23 => FND_API.G_MISS_CHAR
19765 ,p_OLD_ATTRIBUTE24 => FND_API.G_MISS_CHAR
19766 ,p_NEW_ATTRIBUTE24 => FND_API.G_MISS_CHAR
19767 ,p_OLD_ATTRIBUTE25 => FND_API.G_MISS_CHAR
19768 ,p_NEW_ATTRIBUTE25 => FND_API.G_MISS_CHAR
19769 ,p_OLD_ATTRIBUTE26 => FND_API.G_MISS_CHAR
19770 ,p_NEW_ATTRIBUTE26 => FND_API.G_MISS_CHAR
19771 ,p_OLD_ATTRIBUTE27 => FND_API.G_MISS_CHAR
19772 ,p_NEW_ATTRIBUTE27 => FND_API.G_MISS_CHAR
19773 ,p_OLD_ATTRIBUTE28 => FND_API.G_MISS_CHAR
19774 ,p_NEW_ATTRIBUTE28 => FND_API.G_MISS_CHAR
19775 ,p_OLD_ATTRIBUTE29 => FND_API.G_MISS_CHAR
19776 ,p_NEW_ATTRIBUTE29 => FND_API.G_MISS_CHAR
19777 ,p_OLD_ATTRIBUTE30 => FND_API.G_MISS_CHAR
19778 ,p_NEW_ATTRIBUTE30 => FND_API.G_MISS_CHAR
19779 --end of parameters addition for eam integration--
19780 -- Addition of columns for FA Integration
19781 ,p_OLD_PAYABLES_UNIT_PRICE => fnd_api.g_miss_num
19782 ,p_NEW_PAYABLES_UNIT_PRICE => fnd_api.g_miss_num
19783 ,p_OLD_PAYABLES_CURRENCY_CODE => fnd_api.g_miss_char
19784 ,p_NEW_PAYABLES_CURRENCY_CODE => fnd_api.g_miss_char
19785 ,p_OLD_PURCHASE_UNIT_PRICE => fnd_api.g_miss_num
19786 ,p_NEW_PURCHASE_UNIT_PRICE => fnd_api.g_miss_num
19787 ,p_OLD_PURCHASE_CURRENCY_CODE => fnd_api.g_miss_char
19788 ,p_NEW_PURCHASE_CURRENCY_CODE => fnd_api.g_miss_char
19789 ,p_OLD_SALES_UNIT_PRICE => fnd_api.g_miss_num
19790 ,p_NEW_SALES_UNIT_PRICE => fnd_api.g_miss_num
19791 ,p_OLD_SALES_CURRENCY_CODE => fnd_api.g_miss_char
19792 ,p_NEW_SALES_CURRENCY_CODE => fnd_api.g_miss_char
19793 ,p_OLD_OPERATIONAL_STATUS_CODE => fnd_api.g_miss_char
19794 ,p_NEW_OPERATIONAL_STATUS_CODE => fnd_api.g_miss_char
19795 -- End addition of columns for FA Integration
19796 -- Begin Add Code for Siebel Genesis Project
19797 ,p_OLD_SOURCE_CODE => FND_API.G_MISS_CHAR
19798 ,p_NEW_SOURCE_CODE => FND_API.G_MISS_CHAR
19799 -- End Add Code for Siebel Genesis Project
19800 );
19801
19802
19803 END IF;
19804
19805
19806 -- Calling eam API to log instance update event
19807 IF l_eam_item
19808 THEN
19809 IF l_ins_hist_id IS NOT NULL
19810 THEN
19811 l_instance_history_id:=l_ins_hist_id;
19812 ELSE
19813 l_instance_history_id:=l_csi_item_instance_h_id;
19814 END IF;
19815 eam_asset_log_pvt.instance_update_event
19816 (p_api_version => p_api_version
19817 ,p_init_msg_list => fnd_api.g_false
19818 ,p_commit => fnd_api.g_false
19819 ,p_validation_level => fnd_api.g_valid_level_full
19820 ,x_return_status => x_return_status
19821 ,x_msg_count => x_msg_count
19822 ,x_msg_data => x_msg_data
19823 ,p_instance_id => l_rel_tbl(j).subject_id
19824 ,p_ref_id => l_instance_history_id
19825 ,p_event_date => sysdate);
19826 IF NOT(x_return_status = fnd_api.g_ret_sts_success)
19827 THEN
19828 csi_gen_utility_pvt.put_line('Error from eam_asset_log_pvt.instance_update_event API');
19829 RAISE fnd_api.g_exc_error;
19830 END IF;
19831 END IF;
19832 -- Calling eam API to log instance update event
19833
19834 -- srramakr Bug # 3945813 We no longer look for service_order_allowed_flag to decide
19835 -- whether contracts should be terminated or not. Instead, we look for terminated_flag.
19836 -- Before terminating the contract check whether the terminated_flag is set to 'Y'
19837 -- for the instance_status passed. If set to 'N' dont make call to contracts.
19838 OPEN instance_csr (l_rel_tbl(j).subject_id);
19839 FETCH instance_csr INTO l_instance_csr;
19840 CLOSE instance_csr;
19841
19842 IF csi_item_instance_vld_pvt.termination_status
19843 ( p_instance_status_id => l_instance_csr.instance_status_id )
19844 THEN
19845 IF p_txn_rec.transaction_type_id in (53,54) THEN
19846 l_oks_txn_type := 'RET';
19847 ELSE
19848 l_oks_txn_type := 'TRM';
19849 END IF;
19850 csi_item_instance_pvt.Call_to_Contracts
19851 ( p_transaction_type => l_oks_txn_type
19852 ,p_instance_id => l_rel_tbl(j).subject_id
19853 ,p_new_instance_id => NULL
19854 ,p_vld_org_id => l_instance_csr.last_vld_organization_id
19855 ,p_quantity => NULL
19856 ,p_party_account_id1 => NULL
19857 ,p_party_account_id2 => NULL
19858 ,p_transaction_date => p_txn_rec.transaction_date --l_temp_date
19859 ,p_source_transaction_date => p_txn_rec.source_transaction_date --l_temp_date
19860 ,p_txn_type_id => p_txn_rec.transaction_type_id --added for BUG 5752271
19861 ,p_grp_call_contracts => p_instance_rec.grp_call_contracts
19862 ,p_oks_txn_inst_tbl => p_oks_txn_inst_tbl
19863 ,x_return_status => x_return_status
19864 ,x_msg_count => x_msg_count
19865 ,x_msg_data => x_msg_data
19866 );
19867
19868 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
19869 l_msg_index := 1;
19870 l_msg_count := x_msg_count;
19871 WHILE l_msg_count > 0 LOOP
19872 x_msg_data := FND_MSG_PUB.GET
19873 ( l_msg_index,
19874 FND_API.G_FALSE
19875 );
19876 csi_gen_utility_pvt.put_line('MESSAGE DATA = '||x_msg_data);
19877 l_msg_index := l_msg_index + 1;
19878 l_msg_count := l_msg_count - 1;
19879 END LOOP;
19880 RAISE FND_API.G_EXC_ERROR;
19881 END IF;
19882 END IF;
19883
19884 END LOOP;
19885 END IF; -- l_rel_tbl count check
19886 -- Standard call to get message count and if count is get message info.
19887 FND_MSG_PUB.Count_And_Get
19888 (p_count => x_msg_count ,
19889 p_data => x_msg_data
19890 );
19891
19892 EXCEPTION
19893
19894 WHEN FND_API.G_EXC_ERROR THEN
19895 ROLLBACK TO expire_child_instance_pvt;
19896 x_return_status := FND_API.G_RET_STS_ERROR ;
19897 FND_MSG_PUB.Count_And_Get
19898 (p_count => x_msg_count,
19899 p_data => x_msg_data
19900 );
19901
19902 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
19903 ROLLBACK TO expire_child_instance_pvt;
19904 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
19905 FND_MSG_PUB.Count_And_Get
19906 (p_count => x_msg_count,
19907 p_data => x_msg_data
19908 );
19909 WHEN OTHERS THEN
19910 ROLLBACK TO expire_child_instance_pvt;
19911 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
19912 IF FND_MSG_PUB.Check_Msg_Level
19913 (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
19914 THEN
19915 FND_MSG_PUB.Add_Exc_Msg
19916 ( G_PKG_NAME, l_api_name );
19917 END IF;
19918 FND_MSG_PUB.Count_And_Get
19919 ( p_count => x_msg_count,
19920 p_data => x_msg_data
19921 );
19922
19923 END expire_child_instances;
19924
19925 /*---------------------------------------------------*/
19926 /* Procedure name: expire_item_instance */
19927 /* Description : procedure for */
19928 /* Expiring an Item Instance */
19929 /*---------------------------------------------------*/
19930
19931 PROCEDURE expire_item_instance
19932 (
19933 p_api_version IN NUMBER
19934 ,p_commit IN VARCHAR2
19935 ,p_init_msg_list IN VARCHAR2
19936 ,p_validation_level IN NUMBER
19937 ,p_instance_rec IN csi_datastructures_pub.instance_rec
19938 ,p_expire_children IN VARCHAR2
19939 ,p_txn_rec IN OUT NOCOPY csi_datastructures_pub.transaction_rec
19940 ,x_instance_id_lst OUT NOCOPY csi_datastructures_pub.id_tbl
19941 ,p_oks_txn_inst_tbl IN OUT NOCOPY oks_ibint_pub.txn_instance_tbl
19942 ,x_return_status OUT NOCOPY VARCHAR2
19943 ,x_msg_count OUT NOCOPY NUMBER
19944 ,x_msg_data OUT NOCOPY VARCHAR2
19945 )
19946
19947 IS
19948 l_api_name CONSTANT VARCHAR2(30) := 'EXPIRE_ITEM_NSTANCE';
19949 l_api_version CONSTANT NUMBER := 1.0;
19950 l_debug_level NUMBER;
19951 l_instance_id NUMBER;
19952 l_instance_rec csi_datastructures_pub.instance_rec;
19953 l_temp_instance_rec csi_datastructures_pub.instance_rec;
19954 l_csi_item_instance_h_id NUMBER;
19955 l_full_dump_frequency NUMBER;
19956 l_mod_value NUMBER;
19957 l_dump_flag VARCHAR2(1);
19958 l_dummy NUMBER;
19959 -- Added variables for bug 6788183
19960 l_exp_rltns_rec csi_datastructures_pub.ii_relationship_rec;
19961 l_instance_id_lst csi_datastructures_pub.id_tbl;
19962 l_return_status VARCHAR2(1) := fnd_api.g_ret_sts_success;
19963 l_msg_data VARCHAR2(2000);
19964
19965 CURSOR get_instance_rec(p_instance_id IN NUMBER) IS
19966 SELECT
19967 INSTANCE_ID,
19968 INSTANCE_NUMBER,
19969 EXTERNAL_REFERENCE,
19970 INVENTORY_ITEM_ID,
19971 NULL VLD_ORGANIZATION_ID,
19972 INVENTORY_REVISION,
19973 INV_MASTER_ORGANIZATION_ID,
19974 SERIAL_NUMBER,
19975 MFG_SERIAL_NUMBER_FLAG,
19976 LOT_NUMBER,
19977 QUANTITY,
19978 UNIT_OF_MEASURE,
19979 ACCOUNTING_CLASS_CODE,
19980 INSTANCE_CONDITION_ID,
19981 INSTANCE_STATUS_ID,
19982 CUSTOMER_VIEW_FLAG,
19983 MERCHANT_VIEW_FLAG,
19984 SELLABLE_FLAG,
19985 SYSTEM_ID,
19986 INSTANCE_TYPE_CODE,
19987 ACTIVE_START_DATE,
19988 ACTIVE_END_DATE,
19989 LOCATION_TYPE_CODE,
19990 LOCATION_ID,
19991 INV_ORGANIZATION_ID,
19992 INV_SUBINVENTORY_NAME,
19993 INV_LOCATOR_ID,
19994 PA_PROJECT_ID,
19995 PA_PROJECT_TASK_ID,
19996 IN_TRANSIT_ORDER_LINE_ID,
19997 WIP_JOB_ID,
19998 PO_ORDER_LINE_ID,
19999 LAST_OE_ORDER_LINE_ID,
20000 LAST_OE_RMA_LINE_ID,
20001 LAST_PO_PO_LINE_ID,
20002 LAST_OE_PO_NUMBER,
20003 LAST_WIP_JOB_ID,
20004 LAST_PA_PROJECT_ID,
20005 LAST_PA_TASK_ID,
20006 LAST_OE_AGREEMENT_ID,
20007 INSTALL_DATE,
20008 MANUALLY_CREATED_FLAG,
20009 RETURN_BY_DATE,
20010 ACTUAL_RETURN_DATE,
20011 CREATION_COMPLETE_FLAG,
20012 COMPLETENESS_FLAG,
20013 NULL VERSION_LABEL,
20014 NULL VERSION_LABEL_DESCRIPTION,
20015 CONTEXT,
20016 ATTRIBUTE1,
20017 ATTRIBUTE2,
20018 ATTRIBUTE3,
20019 ATTRIBUTE4,
20020 ATTRIBUTE5,
20021 ATTRIBUTE6,
20022 ATTRIBUTE7,
20023 ATTRIBUTE8,
20024 ATTRIBUTE9,
20025 ATTRIBUTE10,
20026 ATTRIBUTE11,
20027 ATTRIBUTE12,
20028 ATTRIBUTE13,
20029 ATTRIBUTE14,
20030 ATTRIBUTE15,
20031 OBJECT_VERSION_NUMBER,
20032 LAST_TXN_LINE_DETAIL_ID,
20033 INSTALL_LOCATION_TYPE_CODE,
20034 INSTALL_LOCATION_ID,
20035 INSTANCE_USAGE_CODE,
20036 CONFIG_INST_HDR_ID,
20037 CONFIG_INST_REV_NUM,
20038 CONFIG_INST_ITEM_ID,
20039 CONFIG_VALID_STATUS,
20040 INSTANCE_DESCRIPTION,
20041 --start of column addition for eam integration--
20042 NETWORK_ASSET_FLAG,
20043 MAINTAINABLE_FLAG,
20044 PN_LOCATION_ID,
20045 ASSET_CRITICALITY_CODE,
20046 CATEGORY_ID,
20047 EQUIPMENT_GEN_OBJECT_ID,
20048 INSTANTIATION_FLAG,
20049 LINEAR_LOCATION_ID,
20050 OPERATIONAL_LOG_FLAG,
20051 CHECKIN_STATUS,
20052 SUPPLIER_WARRANTY_EXP_DATE,
20053 ATTRIBUTE16,
20054 ATTRIBUTE17,
20055 ATTRIBUTE18,
20056 ATTRIBUTE19,
20057 ATTRIBUTE20,
20058 ATTRIBUTE21,
20059 ATTRIBUTE22,
20060 ATTRIBUTE23,
20061 ATTRIBUTE24,
20062 ATTRIBUTE25,
20063 ATTRIBUTE26,
20064 ATTRIBUTE27,
20065 ATTRIBUTE28,
20066 ATTRIBUTE29,
20067 ATTRIBUTE30,
20068 --end of column addition for eam integration--
20069 -- Addition of columns for FA Integration
20070 PURCHASE_UNIT_PRICE,
20071 PURCHASE_CURRENCY_CODE,
20072 PAYABLES_UNIT_PRICE,
20073 PAYABLES_CURRENCY_CODE,
20074 SALES_UNIT_PRICE,
20075 SALES_CURRENCY_CODE,
20076 OPERATIONAL_STATUS_CODE,
20077 -- End addition of columns for FA Integration
20078 SOURCE_CODE -- Added Code for Siebel Genesis Project
20079 FROM csi_item_instances
20080 WHERE instance_id = p_instance_id ;
20081 -- AND (( ACTIVE_END_DATE IS NULL) OR (ACTIVE_END_DATE >= SYSDATE)); -- COMMENTED BY SK bug 2151760
20082 l_curr_instance_rec get_instance_rec%ROWTYPE;
20083
20084 CURSOR instance_csr (p_ins_id IN NUMBER) IS
20085 SELECT *
20086 FROM csi_item_instances
20087 WHERE instance_id = p_ins_id;
20088
20089 -- Added cursor for bug 6788183
20090 CURSOR relationship_csr (p_subject_id IN NUMBER) IS
20091 SELECT relationship_id,object_version_number
20092 FROM csi_ii_relationships
20093 WHERE subject_id = p_subject_id;
20094
20095 l_instance_csr instance_csr%ROWTYPE;
20096
20097 l_temp VARCHAR2(1);
20098 l_temp_date DATE;
20099 l_txn_date DATE;
20100 l_msg_count NUMBER;
20101 l_msg_index NUMBER;
20102 l_msg_dummy NUMBER;
20103 l_open_service VARCHAR2(1);
20104 l_oks_txn_type VARCHAR2(3);
20105 l_eam_item BOOLEAN := FALSE;
20106 l_vld_org NUMBER;
20107 l_maintenance_object_type NUMBER := 3;
20108 l_ins_hist_id NUMBER;
20109 l_instance_history_id NUMBER;
20110 l_valid BOOLEAN := TRUE;
20111 l_creation_flag VARCHAR2(1);
20112
20113 BEGIN
20114
20115 -- Standard Start of API savepoint
20116 SAVEPOINT expire_item_instance_pvt;
20117
20118 -- Standard call to check for call compatibility.
20119 IF NOT FND_API.Compatible_API_Call (l_api_version,
20120 p_api_version,
20121 l_api_name,
20122 G_PKG_NAME )
20123 THEN
20124 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
20125 END IF;
20126
20127 -- Initialize message list if p_init_msg_list is set to TRUE.
20128 IF FND_API.to_Boolean( p_init_msg_list ) THEN
20129 FND_MSG_PUB.initialize;
20130 END IF;
20131
20132 -- Initialize API return status to success
20133 x_return_status := FND_API.G_RET_STS_SUCCESS;
20134
20135 -- Check the profile option debug_level for debug message reporting
20136 l_debug_level:=fnd_profile.value('DEBUG_LEVEL');
20137
20138 -- If debug_level = 1 then dump the procedure name
20139 IF (l_debug_level > 0) THEN
20140 csi_gen_utility_pvt.put_line ( 'expire_item_instance_pvt');
20141 END IF;
20142
20143 -- If the debug level = 2 then dump all the parameters values.
20144 IF (l_debug_level > 1) THEN
20145 csi_gen_utility_pvt.put_line ( 'expire_item_instance_pvt :'||
20146 p_api_version ||'-'||
20147 p_commit ||'-'||
20148 p_init_msg_list );
20149
20150 --dump the records in to a log file
20151 csi_gen_utility_pvt.dump_instance_rec(p_instance_rec);
20152 csi_gen_utility_pvt.dump_txn_rec(p_txn_rec);
20153 END IF;
20154
20155 -- Start API body
20156 -- Check if all the required parameters are passed
20157 CSI_Item_Instance_vld_pvt.Check_Reqd_Param_num
20158 ( p_instance_rec.instance_id ,
20159 ' p_instance_rec.instance_id ',
20160 l_api_name );
20161
20162 CSI_Item_Instance_vld_pvt.Check_Reqd_Param_num
20163 ( p_instance_rec.object_version_number ,
20164 ' p_instance_rec.object_version_number ',
20165 l_api_name );
20166
20167 -- Check if the instance id is valid
20168 IF NOT(CSI_Item_Instance_vld_pvt.Is_InstanceID_Valid
20169 (p_instance_rec.instance_id,
20170 TRUE )) THEN
20171 RAISE FND_API.G_EXC_ERROR;
20172 END IF;
20173
20174 -- check if the object_version_number passed matches with the one
20175 -- in the database else raise error
20176 OPEN get_instance_rec(p_instance_rec.instance_id);
20177 FETCH get_instance_rec INTO l_curr_instance_rec;
20178 IF (l_curr_instance_rec.object_version_number <> nvl(p_instance_rec.OBJECT_VERSION_NUMBER,0)) THEN
20179 FND_MESSAGE.Set_Name('CSI', 'CSI_API_OBJ_VER_MISMATCH');
20180 FND_MSG_PUB.ADD;
20181 RAISE FND_API.G_EXC_ERROR;
20182 END IF;
20183
20184 IF get_instance_rec%NOTFOUND THEN
20185 FND_MESSAGE.Set_Name('CSI', 'CSI_API_RECORD_LOCKED');
20186 FND_MSG_PUB.ADD;
20187 RAISE FND_API.G_EXC_ERROR;
20188 END IF;
20189 CLOSE get_instance_rec;
20190
20191 -- checking for any unexpired children in csi_ii_relationships table
20192
20193 -- Added by sk for bug 2151760
20194 IF (( p_instance_rec.active_end_date IS NOT NULL) AND (p_instance_rec.active_end_date < SYSDATE))
20195 AND p_instance_rec.active_end_date <> fnd_api.g_miss_date
20196 THEN
20197 l_temp_date:= p_instance_rec.active_end_date;
20198 BEGIN
20199 SELECT MAX(transaction_date)
20200 INTO l_txn_date
20201 FROM csi_inst_transactions_v
20202 WHERE instance_id=p_instance_rec.instance_id
20203 AND transaction_date>p_instance_rec.active_end_date;
20204
20205 IF l_txn_date IS NOT NULL
20206 THEN
20207 x_return_status := FND_API.G_RET_STS_ERROR ;
20208 FND_MESSAGE.Set_Name('CSI', 'CSI_PARENT_HAS_TXN');
20209 FND_MESSAGE.SET_TOKEN('INSTANCE_ID',l_curr_instance_rec.instance_number );
20210 FND_MESSAGE.SET_TOKEN('TXN_DATE',to_char(l_txn_date, 'DD-MON-YYYY HH24:MI:SS'));
20211 FND_MSG_PUB.ADD;
20212 RAISE FND_API.G_EXC_ERROR;
20213 END IF;
20214 EXCEPTION
20215 WHEN FND_API.G_EXC_ERROR THEN
20216 RAISE FND_API.G_EXC_ERROR;
20217 WHEN OTHERS THEN
20218 NULL;
20219 END;
20220 ELSE
20221 l_temp_date:= SYSDATE;
20222 END IF;
20223 -- End addition by sk for bug 2151760
20224
20225 DECLARE
20226 l_dummy NUMBER;
20227 l_has_unexpired_children BOOLEAN;
20228 p_rel_query_rec csi_datastructures_pub.relationship_query_rec;
20229 l_rel_tbl csi_datastructures_pub.ii_relationship_tbl;
20230 l_ii_relationship_level_tbl csi_ii_relationships_pvt.ii_relationship_level_tbl;
20231 BEGIN
20232 p_rel_query_rec.object_id := p_instance_rec.instance_id;
20233 p_rel_query_rec.relationship_type_code := 'COMPONENT-OF';
20234 --
20235 IF p_rel_query_rec.object_id IS NOT NULL AND
20236 p_rel_query_rec.object_id <> FND_API.G_MISS_NUM THEN
20237 csi_ii_relationships_pvt.Get_Children
20238 ( p_relationship_query_rec => p_rel_query_rec,
20239 p_rel_tbl => l_rel_tbl,
20240 p_depth => NULL,
20241 p_active_relationship_only => FND_API.G_TRUE,
20242 p_time_stamp => FND_API.G_MISS_DATE,
20243 p_get_dfs => FND_API.G_FALSE,
20244 p_ii_relationship_level_tbl => l_ii_relationship_level_tbl,
20245 x_return_status => x_return_status,
20246 x_msg_count => x_msg_count,
20247 x_msg_data => x_msg_data
20248 );
20249 --
20250 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
20251 FND_MESSAGE.SET_NAME('CSI','CSI_API_GET_CHILDREN_ERROR');
20252 FND_MSG_PUB.Add;
20253 RAISE FND_API.G_EXC_ERROR;
20254 END IF;
20255 END IF;
20256 --
20257 csi_gen_utility_pvt.put_line('Child count is ..'||to_char(l_rel_tbl.count));
20258 l_dummy := l_rel_tbl.count;
20259 IF l_dummy > 0 THEN
20260 l_has_unexpired_children := TRUE;
20261 ELSE
20262 l_has_unexpired_children := FALSE;
20263 END IF;
20264
20265 IF l_has_unexpired_children = TRUE THEN
20266 IF p_expire_children = 'F' THEN
20267 FND_MESSAGE.SET_NAME('CSI','CSI_API_CANT_EXPIRE_INSTANCE');
20268 FND_MSG_PUB.Add;
20269 RAISE FND_API.G_EXC_ERROR;
20270
20271 ELSE
20272 -- Call the expire_child_instances api
20273 expire_child_instances(p_api_version => p_api_version,
20274 p_commit => p_commit,
20275 p_init_msg_list => p_init_msg_list,
20276 p_validation_level => p_validation_level,
20277 p_instance_rec => p_instance_rec,
20278 p_expire_children => fnd_api.g_true,
20279 p_txn_rec => p_txn_rec,
20280 x_instance_id_lst => x_instance_id_lst,
20281 p_oks_txn_inst_tbl => p_oks_txn_inst_tbl,
20282 x_return_status => x_return_status,
20283 x_msg_count => x_msg_count,
20284 x_msg_data => x_msg_data
20285 );
20286
20287 END IF;
20288 END IF;
20289 END;
20290 -- Added by sguthiva for bug 2520978
20291 -- Modified by srramakr for enhancement 2315522.
20292 -- This will allow the user to pass a Terminable status during expiration.
20293 IF p_instance_rec.instance_status_id IS NOT NULL AND
20294 p_instance_rec.instance_status_id <> fnd_api.g_miss_num THEN
20295 IF NOT (CSI_Item_Instance_vld_pvt.val_inst_ter_flag(
20296 p_instance_rec.instance_status_id)) THEN
20297 FND_MESSAGE.SET_NAME('CSI','CSI_API_INVALID_TERM_STATUS');
20298 FND_MSG_PUB.ADD;
20299 RAISE FND_API.G_EXC_ERROR;
20300 END IF;
20301 l_instance_rec.instance_status_id := p_instance_rec.instance_status_id;
20302 ELSE
20303 l_instance_rec.instance_status_id := fnd_profile.value('CSI_SYS_TERM_INST_STATUS_ID');
20304 IF l_instance_rec.instance_status_id IS NULL
20305 OR l_instance_rec.instance_status_id=fnd_api.g_miss_num
20306 THEN
20307 l_instance_rec.instance_status_id := 1;
20308 END IF;
20309 END IF;
20310 -- End addition by sguthiva for bug 2520978.
20311 -- l_instance_rec.instance_status_id := 1; -- '1' for expired instances defined in the csi instance statuses
20312 l_instance_rec.object_version_number := l_curr_instance_rec.object_version_number + 1;
20313
20314 -- Start addition by sguthiva for bug 2416193
20315 -- Relaxing this check for RMA Receipt transaction
20316 IF p_txn_rec.transaction_type_id = 1
20317 THEN
20318 BEGIN
20319 SELECT 'x'
20320 INTO l_open_service
20321 FROM cs_incidents_all csi,
20322 cs_incident_statuses_b csb
20323 WHERE csi.incident_status_id = csb.incident_status_id
20324 AND csi.customer_product_id = p_instance_rec.instance_id
20325 AND NVL(close_flag,'N')<>'Y';
20326
20327 FND_MESSAGE.SET_NAME('CSI','CSI_IB_HAS_OPEN_SR');
20328 FND_MSG_PUB.ADD;
20329 RAISE FND_API.G_EXC_ERROR;
20330
20331 EXCEPTION
20332 WHEN TOO_MANY_ROWS THEN
20333 FND_MESSAGE.SET_NAME('CSI','CSI_IB_HAS_OPEN_SR');
20334 FND_MSG_PUB.ADD;
20335 RAISE FND_API.G_EXC_ERROR;
20336
20337 WHEN NO_DATA_FOUND THEN -- modfied for bug 3693511
20338 NULL;
20339 END;
20340 END IF;
20341 -- End addition for bug 2416193
20342
20343 -- Added code to expire relationship where the instance expired is the child, bug 6788183
20344 csi_gen_utility_pvt.put_line('Expiring relationship for the instance id - ' || p_instance_rec.instance_id);
20345 FOR l_inst_relationship_rec in relationship_csr(p_instance_rec.instance_id)
20346 LOOP
20347 BEGIN
20348 csi_gen_utility_pvt.put_line('Expiring relationship with id - ' || l_inst_relationship_rec.relationship_id);
20349 l_exp_rltns_rec.relationship_id := l_inst_relationship_rec.relationship_id;
20350 l_exp_rltns_rec.object_version_number := l_inst_relationship_rec.object_version_number;
20351
20352 csi_t_gen_utility_pvt.dump_api_info(
20353 p_pkg_name => 'csi_ii_relationships_pub',
20354 p_api_name => 'expire_relationship');
20355
20356 csi_ii_relationships_pub.expire_relationship(
20357 p_api_version => 1.0,
20358 p_commit => fnd_api.g_false,
20359 p_init_msg_list => fnd_api.g_false,
20360 p_validation_level => fnd_api.g_valid_level_full,
20361 p_relationship_rec => l_exp_rltns_rec,
20362 p_txn_rec => p_txn_rec,
20363 x_instance_id_lst => l_instance_id_lst,
20364 x_return_status => l_return_status,
20365 x_msg_count => l_msg_count,
20366 x_msg_data => l_msg_data);
20367
20368 IF l_return_status <> fnd_api.g_ret_sts_success THEN
20369 RAISE fnd_api.g_exc_error;
20370 END IF;
20371 END;
20372 END LOOP;
20373
20374 csi_gen_utility_pvt.put_line('End of expiring relationships for instance with id - ' || p_instance_rec.instance_id);
20375 -- End of addition for the bug 6788183
20376
20377 -- Added the following code for eam integration
20378 IF p_instance_rec.vld_organization_id IS NULL OR
20379 p_instance_rec.vld_organization_id = fnd_api.g_miss_num
20380 THEN
20381 BEGIN
20382 SELECT last_vld_organization_id
20383 INTO l_vld_org
20384 FROM csi_item_instances
20385 WHERE instance_id = p_instance_rec.instance_id;
20386 EXCEPTION
20387 WHEN NO_DATA_FOUND THEN
20388 fnd_message.set_name('CSI','CSI_API_INVALID_INSTANCE_ID');
20389 fnd_message.set_token('INSTANCE_ID',p_instance_rec.instance_id);
20390 fnd_msg_pub.ADD;
20391 END;
20392 ELSE
20393 l_vld_org := p_instance_rec.vld_organization_id;
20394 END IF;
20395
20396 IF csi_item_instance_vld_pvt.Check_for_eam_item
20397 (p_inventory_item_id => l_curr_instance_rec.inventory_item_id,
20398 p_organization_id => l_vld_org)
20399 THEN
20400 l_eam_item := TRUE;
20401 END IF;
20402
20403 IF l_eam_item AND
20404 (p_instance_rec.active_end_date IS NOT NULL AND
20405 p_instance_rec.active_end_date <> fnd_api.g_miss_date)
20406 THEN
20407 IF NOT eam_common_utilities_pvt.check_deactivate
20408 (p_maintenance_object_id => p_instance_rec.instance_id
20409 ,p_maintenance_object_type => l_maintenance_object_type)
20410 THEN
20411 csi_gen_utility_pvt.put_line('Error from eam_common_utilities_pvt.check_deactivate API ');
20412 RAISE fnd_api.g_exc_error;
20413 END IF;
20414 END IF;
20415 -- End code addition for eam integration
20416 -- validate instance status id
20417 IF NVL(l_instance_rec.INSTANCE_STATUS_ID,fnd_api.g_miss_num) <> fnd_api.g_miss_num
20418 THEN
20419 csi_item_instance_vld_pvt.is_valid_status(
20420 p_instance_status_id => l_instance_rec.INSTANCE_STATUS_ID,
20421 p_creation_complete_flag => l_creation_flag,
20422 l_return_value => l_valid);
20423 IF NOT(l_valid)
20424 THEN
20425 RAISE fnd_api.g_exc_error;
20426 END IF;
20427 END IF;
20428
20429 IF l_instance_rec.INSTANCE_STATUS_ID IS NOT NULL AND
20430 l_instance_rec.INSTANCE_STATUS_ID <> FND_API.G_MISS_NUM AND
20431 l_instance_rec.INSTANCE_STATUS_ID <> l_curr_instance_rec.INSTANCE_STATUS_ID
20432 THEN
20433 IF NOT csi_item_instance_vld_pvt.is_status_updateable
20434 (p_instance_status => l_instance_rec.INSTANCE_STATUS_ID
20435 ,p_current_status => l_curr_instance_rec.INSTANCE_STATUS_ID)
20436 THEN
20437 RAISE fnd_api.g_exc_error;
20438 END IF;
20439 END IF;
20440
20441 CSI_ITEM_INSTANCES_PKG.Update_Row
20442 ( p_INSTANCE_ID => p_instance_rec.INSTANCE_ID,
20443 p_INSTANCE_NUMBER => l_instance_rec.INSTANCE_NUMBER,
20444 p_EXTERNAL_REFERENCE => l_instance_rec.EXTERNAL_REFERENCE,
20445 p_INVENTORY_ITEM_ID => l_instance_rec.INVENTORY_ITEM_ID,
20446 p_INVENTORY_REVISION => l_instance_rec.INVENTORY_REVISION,
20447 p_INV_MASTER_ORGANIZATION_ID => l_instance_rec.INV_MASTER_ORGANIZATION_ID,
20448 p_SERIAL_NUMBER => l_instance_rec.SERIAL_NUMBER,
20449 p_MFG_SERIAL_NUMBER_FLAG => l_instance_rec.MFG_SERIAL_NUMBER_FLAG,
20450 p_LOT_NUMBER => l_instance_rec.LOT_NUMBER,
20451 p_QUANTITY => l_instance_rec.QUANTITY,
20452 p_UNIT_OF_MEASURE => l_instance_rec.UNIT_OF_MEASURE,
20453 p_ACCOUNTING_CLASS_CODE => l_instance_rec.ACCOUNTING_CLASS_CODE,
20454 p_INSTANCE_CONDITION_ID => l_instance_rec.INSTANCE_CONDITION_ID,
20455 p_INSTANCE_STATUS_ID => l_instance_rec.INSTANCE_STATUS_ID,
20456 p_CUSTOMER_VIEW_FLAG => l_instance_rec.CUSTOMER_VIEW_FLAG,
20457 p_MERCHANT_VIEW_FLAG => l_instance_rec.MERCHANT_VIEW_FLAG,
20458 p_SELLABLE_FLAG => l_instance_rec.SELLABLE_FLAG,
20459 p_SYSTEM_ID => l_instance_rec.SYSTEM_ID,
20460 p_INSTANCE_TYPE_CODE => l_instance_rec.INSTANCE_TYPE_CODE,
20461 p_ACTIVE_START_DATE => l_instance_rec.ACTIVE_START_DATE,
20462 p_ACTIVE_END_DATE => l_temp_date,--SYSDATE,
20463 p_LOCATION_TYPE_CODE => l_instance_rec.LOCATION_TYPE_CODE,
20464 p_LOCATION_ID => l_instance_rec.LOCATION_ID,
20465 p_INV_ORGANIZATION_ID => l_instance_rec.INV_ORGANIZATION_ID,
20466 p_INV_SUBINVENTORY_NAME => l_instance_rec.INV_SUBINVENTORY_NAME,
20467 p_INV_LOCATOR_ID => l_instance_rec.INV_LOCATOR_ID,
20468 p_PA_PROJECT_ID => l_instance_rec.PA_PROJECT_ID,
20469 p_PA_PROJECT_TASK_ID => l_instance_rec.PA_PROJECT_TASK_ID,
20470 p_IN_TRANSIT_ORDER_LINE_ID => l_instance_rec.IN_TRANSIT_ORDER_LINE_ID,
20471 p_WIP_JOB_ID => l_instance_rec.WIP_JOB_ID,
20472 p_PO_ORDER_LINE_ID => l_instance_rec.PO_ORDER_LINE_ID,
20473 p_LAST_OE_ORDER_LINE_ID => l_instance_rec.LAST_OE_ORDER_LINE_ID,
20474 p_LAST_OE_RMA_LINE_ID => l_instance_rec.LAST_OE_RMA_LINE_ID,
20475 p_LAST_PO_PO_LINE_ID => l_instance_rec.LAST_PO_PO_LINE_ID,
20476 p_LAST_OE_PO_NUMBER => l_instance_rec.LAST_OE_PO_NUMBER,
20477 p_LAST_WIP_JOB_ID => l_instance_rec.LAST_WIP_JOB_ID,
20478 p_LAST_PA_PROJECT_ID => l_instance_rec.LAST_PA_PROJECT_ID,
20479 p_LAST_PA_TASK_ID => l_instance_rec.LAST_PA_TASK_ID,
20480 p_LAST_OE_AGREEMENT_ID => l_instance_rec.LAST_OE_AGREEMENT_ID,
20481 p_INSTALL_DATE => l_instance_rec.INSTALL_DATE,
20482 p_MANUALLY_CREATED_FLAG => l_instance_rec.MANUALLY_CREATED_FLAG,
20483 p_RETURN_BY_DATE => l_instance_rec.RETURN_BY_DATE,
20484 p_ACTUAL_RETURN_DATE => l_instance_rec.ACTUAL_RETURN_DATE,
20485 p_CREATION_COMPLETE_FLAG => l_instance_rec.CREATION_COMPLETE_FLAG,
20486 p_COMPLETENESS_FLAG => l_instance_rec.COMPLETENESS_FLAG,
20487 p_CONTEXT => l_instance_rec.CONTEXT,
20488 p_ATTRIBUTE1 => l_instance_rec.ATTRIBUTE1,
20489 p_ATTRIBUTE2 => l_instance_rec.ATTRIBUTE2,
20490 p_ATTRIBUTE3 => l_instance_rec.ATTRIBUTE3,
20491 p_ATTRIBUTE4 => l_instance_rec.ATTRIBUTE4,
20492 p_ATTRIBUTE5 => l_instance_rec.ATTRIBUTE5,
20493 p_ATTRIBUTE6 => l_instance_rec.ATTRIBUTE6,
20494 p_ATTRIBUTE7 => l_instance_rec.ATTRIBUTE7,
20495 p_ATTRIBUTE8 => l_instance_rec.ATTRIBUTE8,
20496 p_ATTRIBUTE9 => l_instance_rec.ATTRIBUTE9,
20497 p_ATTRIBUTE10 => l_instance_rec.ATTRIBUTE10,
20498 p_ATTRIBUTE11 => l_instance_rec.ATTRIBUTE11,
20499 p_ATTRIBUTE12 => l_instance_rec.ATTRIBUTE12,
20500 p_ATTRIBUTE13 => l_instance_rec.ATTRIBUTE13,
20501 p_ATTRIBUTE14 => l_instance_rec.ATTRIBUTE14,
20502 p_ATTRIBUTE15 => l_instance_rec.ATTRIBUTE15,
20503 p_CREATED_BY => fnd_api.g_miss_num,
20504 p_CREATION_DATE => fnd_api.g_miss_date,
20505 p_LAST_UPDATED_BY => FND_GLOBAL.USER_ID,
20506 p_LAST_UPDATE_DATE => SYSDATE,
20507 p_LAST_UPDATE_LOGIN => FND_GLOBAL.CONC_LOGIN_ID,
20508 p_OBJECT_VERSION_NUMBER => l_instance_rec.OBJECT_VERSION_NUMBER,
20509 p_LAST_TXN_LINE_DETAIL_ID => l_instance_rec.LAST_TXN_LINE_DETAIL_ID,
20510 p_INSTALL_LOCATION_TYPE_CODE => l_instance_rec.INSTALL_LOCATION_TYPE_CODE,
20511 p_INSTALL_LOCATION_ID => l_instance_rec.INSTALL_LOCATION_ID,
20512 p_INSTANCE_USAGE_CODE => l_instance_rec.INSTANCE_USAGE_CODE,
20513 p_CONFIG_INST_HDR_ID => NULL, -- l_instance_rec.CONFIG_INST_HDR_ID,
20514 p_CONFIG_INST_REV_NUM => NULL, -- l_instance_rec.CONFIG_INST_REV_NUM,
20515 p_CONFIG_INST_ITEM_ID => NULL, -- l_instance_rec.CONFIG_INST_ITEM_ID,
20516 p_CONFIG_VALID_STATUS => NULL, -- l_instance_rec.CONFIG_VALID_STATUS,
20517 p_INSTANCE_DESCRIPTION => l_instance_rec.INSTANCE_DESCRIPTION,
20518 p_REQUEST_ID => l_instance_rec.REQUEST_ID,
20519 p_PROGRAM_APPLICATION_ID => l_instance_rec.PROGRAM_APPLICATION_ID,
20520 p_PROGRAM_ID => l_instance_rec.PROGRAM_ID,
20521 p_PROGRAM_UPDATE_DATE => l_instance_rec.PROGRAM_UPDATE_DATE,
20522 --start of parameters addition for eam integration--
20523 p_NETWORK_ASSET_FLAG => l_instance_rec.NETWORK_ASSET_FLAG,
20524 p_MAINTAINABLE_FLAG => l_instance_rec.MAINTAINABLE_FLAG,
20525 p_PN_LOCATION_ID => l_instance_rec.PN_LOCATION_ID,
20526 p_ASSET_CRITICALITY_CODE => l_instance_rec.ASSET_CRITICALITY_CODE,
20527 p_CATEGORY_ID => l_instance_rec.CATEGORY_ID,
20528 p_EQUIPMENT_GEN_OBJECT_ID => l_instance_rec.EQUIPMENT_GEN_OBJECT_ID,
20529 p_INSTANTIATION_FLAG => l_instance_rec.INSTANTIATION_FLAG,
20530 p_LINEAR_LOCATION_ID => l_instance_rec.LINEAR_LOCATION_ID,
20531 p_OPERATIONAL_LOG_FLAG => l_instance_rec.OPERATIONAL_LOG_FLAG,
20532 p_CHECKIN_STATUS => l_instance_rec.CHECKIN_STATUS,
20533 p_SUPPLIER_WARRANTY_EXP_DATE => l_instance_rec.SUPPLIER_WARRANTY_EXP_DATE,
20534 p_ATTRIBUTE16 => l_instance_rec.ATTRIBUTE16,
20535 p_ATTRIBUTE17 => l_instance_rec.ATTRIBUTE17,
20536 p_ATTRIBUTE18 => l_instance_rec.ATTRIBUTE18,
20537 p_ATTRIBUTE19 => l_instance_rec.ATTRIBUTE19,
20538 p_ATTRIBUTE20 => l_instance_rec.ATTRIBUTE20,
20539 p_ATTRIBUTE21 => l_instance_rec.ATTRIBUTE21,
20540 p_ATTRIBUTE22 => l_instance_rec.ATTRIBUTE22,
20541 p_ATTRIBUTE23 => l_instance_rec.ATTRIBUTE23,
20542 p_ATTRIBUTE24 => l_instance_rec.ATTRIBUTE24,
20543 p_ATTRIBUTE25 => l_instance_rec.ATTRIBUTE25,
20544 p_ATTRIBUTE26 => l_instance_rec.ATTRIBUTE26,
20545 p_ATTRIBUTE27 => l_instance_rec.ATTRIBUTE27,
20546 p_ATTRIBUTE28 => l_instance_rec.ATTRIBUTE28,
20547 p_ATTRIBUTE29 => l_instance_rec.ATTRIBUTE29,
20548 p_ATTRIBUTE30 => l_instance_rec.ATTRIBUTE30,
20549 --end of parameters addition for eam integration--
20550 -- Addition of columns for FA Integration
20551 p_PURCHASE_UNIT_PRICE => l_instance_rec.PURCHASE_UNIT_PRICE,
20552 p_PURCHASE_CURRENCY_CODE => l_instance_rec.PURCHASE_CURRENCY_CODE,
20553 p_PAYABLES_UNIT_PRICE => l_instance_rec.PAYABLES_UNIT_PRICE,
20554 p_PAYABLES_CURRENCY_CODE => l_instance_rec.PAYABLES_CURRENCY_CODE,
20555 p_SALES_UNIT_PRICE => l_instance_rec.SALES_UNIT_PRICE,
20556 p_SALES_CURRENCY_CODE => l_instance_rec.SALES_CURRENCY_CODE,
20557 p_OPERATIONAL_STATUS_CODE => l_instance_rec.OPERATIONAL_STATUS_CODE,
20558 -- End addition of columns for FA Integration
20559 p_SOURCE_CODE => l_instance_rec.SOURCE_CODE -- Added Code for Siebel Genesis Project
20560 );
20561
20562
20563 -- calling the transaction api
20564 --IF CSI_Item_Instance_vld_pvt.Is_Inst_creation_complete( l_instance_rec.INSTANCE_ID ) THEN
20565
20566 -- Call create_transaction to create txn log
20567 CSI_TRANSACTIONS_PVT.Create_transaction
20568 (
20569 p_api_version => p_api_version
20570 ,p_commit => p_commit
20571 ,p_init_msg_list => p_init_msg_list
20572 ,p_validation_level => p_validation_level
20573 ,p_Success_IF_Exists_Flag => 'Y'
20574 ,p_transaction_rec => p_txn_rec
20575 ,x_return_status => x_return_status
20576 ,x_msg_count => x_msg_count
20577 ,x_msg_data => x_msg_data
20578 );
20579
20580 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
20581
20582 FND_MESSAGE.SET_NAME('CSI','CSI_FAILED_TO_VALIDATE_TXN');
20583 FND_MESSAGE.SET_TOKEN('TRANSACTION_ID',p_txn_rec.transaction_id );
20584 FND_MSG_PUB.Add;
20585 RAISE FND_API.G_EXC_ERROR;
20586 END IF;
20587 -- END IF;
20588
20589 -- Get a unique history item instance id from the sequence
20590 l_csi_item_instance_h_id :=
20591 csi_item_instance_vld_pvt.get_csi_item_instance_h_id;
20592
20593 -- Get the full_dump_frequency from csi_install_parameter
20594 --
20595 IF csi_datastructures_pub.g_install_param_rec.fetch_flag IS NULL THEN
20596 csi_gen_utility_pvt.populate_install_param_rec;
20597 END IF;
20598 --
20599 l_full_dump_frequency := csi_datastructures_pub.g_install_param_rec.history_full_dump_frequency;
20600 --
20601 IF l_full_dump_frequency IS NULL THEN
20602 FND_MESSAGE.SET_NAME('CSI','CSI_API_GET_FULL_DUMP_FAILED');
20603 FND_MSG_PUB.ADD;
20604 RAISE FND_API.G_EXC_ERROR;
20605 END IF;
20606
20607 SELECT MOD(l_instance_rec.object_version_number,l_full_dump_frequency)
20608 INTO l_mod_value
20609 FROM dual;
20610
20611 -- Added for the bug 6788183
20612 BEGIN
20613 SELECT instance_history_id
20614 INTO l_ins_hist_id
20615 FROM csi_item_instances_h h
20616 WHERE h.transaction_id = p_txn_rec.transaction_id
20617 AND h.instance_id = p_instance_rec.instance_id;
20618
20619 CSI_ITEM_INSTANCES_H_PKG.Update_Row
20620 ( p_INSTANCE_HISTORY_ID => l_ins_hist_id
20621 ,p_INSTANCE_ID => fnd_api.g_miss_num
20622 ,p_TRANSACTION_ID => fnd_api.g_miss_num
20623 ,p_OLD_INSTANCE_NUMBER => fnd_api.g_miss_char
20624 ,p_NEW_INSTANCE_NUMBER => p_instance_rec.INSTANCE_NUMBER
20625 ,p_OLD_EXTERNAL_REFERENCE => fnd_api.g_miss_char
20626 ,p_NEW_EXTERNAL_REFERENCE => p_instance_rec.EXTERNAL_REFERENCE
20627 ,p_OLD_INVENTORY_ITEM_ID => fnd_api.g_miss_num
20628 ,p_NEW_INVENTORY_ITEM_ID => p_instance_rec.INVENTORY_ITEM_ID
20629 ,p_OLD_INVENTORY_REVISION => fnd_api.g_miss_char
20630 ,p_NEW_INVENTORY_REVISION => p_instance_rec.INVENTORY_REVISION
20631 ,p_OLD_INV_MASTER_ORGZN_ID => fnd_api.g_miss_num
20632 ,p_NEW_INV_MASTER_ORGZN_ID => p_instance_rec.INV_MASTER_ORGANIZATION_ID
20633 ,p_OLD_SERIAL_NUMBER => fnd_api.g_miss_char
20634 ,p_NEW_SERIAL_NUMBER => p_instance_rec.SERIAL_NUMBER
20635 ,p_OLD_MFG_SERIAL_NUMBER_FLAG => fnd_api.g_miss_char
20636 ,p_NEW_MFG_SERIAL_NUMBER_FLAG => p_instance_rec.MFG_SERIAL_NUMBER_FLAG
20637 ,p_OLD_LOT_NUMBER => fnd_api.g_miss_char
20638 ,p_NEW_LOT_NUMBER => p_instance_rec.LOT_NUMBER
20639 ,p_OLD_QUANTITY => fnd_api.g_miss_num
20640 ,p_NEW_QUANTITY => p_instance_rec.QUANTITY
20641 ,p_OLD_UNIT_OF_MEASURE => fnd_api.g_miss_char
20642 ,p_NEW_UNIT_OF_MEASURE => p_instance_rec.UNIT_OF_MEASURE
20643 ,p_OLD_ACCOUNTING_CLASS_CODE => fnd_api.g_miss_char
20644 ,p_NEW_ACCOUNTING_CLASS_CODE => p_instance_rec.ACCOUNTING_CLASS_CODE
20645 ,p_OLD_INSTANCE_CONDITION_ID => fnd_api.g_miss_num
20646 ,p_NEW_INSTANCE_CONDITION_ID => p_instance_rec.INSTANCE_CONDITION_ID
20647 ,p_OLD_INSTANCE_STATUS_ID => fnd_api.g_miss_num
20648 ,p_NEW_INSTANCE_STATUS_ID => p_instance_rec.INSTANCE_STATUS_ID
20649 ,p_OLD_CUSTOMER_VIEW_FLAG => fnd_api.g_miss_char
20650 ,p_NEW_CUSTOMER_VIEW_FLAG => p_instance_rec.CUSTOMER_VIEW_FLAG
20651 ,p_OLD_MERCHANT_VIEW_FLAG => fnd_api.g_miss_char
20652 ,p_NEW_MERCHANT_VIEW_FLAG => p_instance_rec.MERCHANT_VIEW_FLAG
20653 ,p_OLD_SELLABLE_FLAG => fnd_api.g_miss_char
20654 ,p_NEW_SELLABLE_FLAG => p_instance_rec.SELLABLE_FLAG
20655 ,p_OLD_SYSTEM_ID => fnd_api.g_miss_num
20656 ,p_NEW_SYSTEM_ID => p_instance_rec.SYSTEM_ID
20657 ,p_OLD_INSTANCE_TYPE_CODE => fnd_api.g_miss_char
20658 ,p_NEW_INSTANCE_TYPE_CODE => p_instance_rec.INSTANCE_TYPE_CODE
20659 ,p_OLD_ACTIVE_START_DATE => fnd_api.g_miss_date
20660 ,p_NEW_ACTIVE_START_DATE => p_instance_rec.ACTIVE_START_DATE
20661 ,p_OLD_ACTIVE_END_DATE => fnd_api.g_miss_date
20662 ,p_NEW_ACTIVE_END_DATE => l_temp_date
20663 ,p_OLD_LOCATION_TYPE_CODE => fnd_api.g_miss_char
20664 ,p_NEW_LOCATION_TYPE_CODE => p_instance_rec.LOCATION_TYPE_CODE
20665 ,p_OLD_LOCATION_ID => fnd_api.g_miss_num
20666 ,p_NEW_LOCATION_ID => p_instance_rec.LOCATION_ID
20667 ,p_OLD_INV_ORGANIZATION_ID => fnd_api.g_miss_num
20668 ,p_NEW_INV_ORGANIZATION_ID => p_instance_rec.INV_ORGANIZATION_ID
20669 ,p_OLD_INV_SUBINVENTORY_NAME => fnd_api.g_miss_char
20670 ,p_NEW_INV_SUBINVENTORY_NAME => p_instance_rec.INV_SUBINVENTORY_NAME
20671 ,p_OLD_INV_LOCATOR_ID => fnd_api.g_miss_num
20672 ,p_NEW_INV_LOCATOR_ID => p_instance_rec.INV_LOCATOR_ID
20673 ,p_OLD_PA_PROJECT_ID => fnd_api.g_miss_num
20674 ,p_NEW_PA_PROJECT_ID => p_instance_rec.PA_PROJECT_ID
20675 ,p_OLD_PA_PROJECT_TASK_ID => fnd_api.g_miss_num
20676 ,p_NEW_PA_PROJECT_TASK_ID => p_instance_rec.PA_PROJECT_TASK_ID
20677 ,p_OLD_IN_TRANSIT_ORDER_LINE_ID => fnd_api.g_miss_num
20678 ,p_NEW_IN_TRANSIT_ORDER_LINE_ID => p_instance_rec.IN_TRANSIT_ORDER_LINE_ID
20679 ,p_OLD_WIP_JOB_ID => fnd_api.g_miss_num
20680 ,p_NEW_WIP_JOB_ID => p_instance_rec.WIP_JOB_ID
20681 ,p_OLD_PO_ORDER_LINE_ID => fnd_api.g_miss_num
20682 ,p_NEW_PO_ORDER_LINE_ID => p_instance_rec.PO_ORDER_LINE_ID
20683 ,p_OLD_COMPLETENESS_FLAG => fnd_api.g_miss_char
20684 ,p_NEW_COMPLETENESS_FLAG => p_instance_rec.COMPLETENESS_FLAG
20685 ,p_FULL_DUMP_FLAG => fnd_api.g_miss_char
20686 ,p_NEW_CONTEXT => p_instance_rec.CONTEXT
20687 ,P_OLD_CONTEXT => fnd_api.g_miss_char
20688 ,p_NEW_ATTRIBUTE1 => p_instance_rec.ATTRIBUTE1
20689 ,p_OLD_ATTRIBUTE1 => fnd_api.g_miss_char
20690 ,p_NEW_ATTRIBUTE2 => p_instance_rec.ATTRIBUTE2
20691 ,p_OLD_ATTRIBUTE2 => fnd_api.g_miss_char
20692 ,p_NEW_ATTRIBUTE3 => p_instance_rec.ATTRIBUTE3
20693 ,p_OLD_ATTRIBUTE3 => fnd_api.g_miss_char
20694 ,p_NEW_ATTRIBUTE4 => p_instance_rec.ATTRIBUTE4
20695 ,p_OLD_ATTRIBUTE4 => fnd_api.g_miss_char
20696 ,p_NEW_ATTRIBUTE5 => p_instance_rec.ATTRIBUTE5
20697 ,p_OLD_ATTRIBUTE5 => fnd_api.g_miss_char
20698 ,p_NEW_ATTRIBUTE6 => p_instance_rec.ATTRIBUTE6
20699 ,p_OLD_ATTRIBUTE6 => fnd_api.g_miss_char
20700 ,p_NEW_ATTRIBUTE7 => p_instance_rec.ATTRIBUTE7
20701 ,p_OLD_ATTRIBUTE7 => fnd_api.g_miss_char
20702 ,p_NEW_ATTRIBUTE8 => p_instance_rec.ATTRIBUTE8
20703 ,p_OLD_ATTRIBUTE8 => fnd_api.g_miss_char
20704 ,p_NEW_ATTRIBUTE9 => p_instance_rec.ATTRIBUTE9
20705 ,p_OLD_ATTRIBUTE9 => fnd_api.g_miss_char
20706 ,p_NEW_ATTRIBUTE10 => p_instance_rec.ATTRIBUTE10
20707 ,p_OLD_ATTRIBUTE10 => fnd_api.g_miss_char
20708 ,p_NEW_ATTRIBUTE11 => p_instance_rec.ATTRIBUTE11
20709 ,p_OLD_ATTRIBUTE11 => fnd_api.g_miss_char
20710 ,p_NEW_ATTRIBUTE12 => p_instance_rec.ATTRIBUTE12
20711 ,p_OLD_ATTRIBUTE12 => fnd_api.g_miss_char
20712 ,p_NEW_ATTRIBUTE13 => p_instance_rec.ATTRIBUTE13
20713 ,p_OLD_ATTRIBUTE13 => fnd_api.g_miss_char
20714 ,p_NEW_ATTRIBUTE14 => p_instance_rec.ATTRIBUTE14
20715 ,p_OLD_ATTRIBUTE14 => fnd_api.g_miss_char
20716 ,p_NEW_ATTRIBUTE15 => p_instance_rec.ATTRIBUTE15
20717 ,p_OLD_ATTRIBUTE15 => fnd_api.g_miss_char
20718 ,p_CREATED_BY => fnd_api.g_miss_num
20719 ,p_CREATION_DATE => fnd_api.g_miss_date
20720 ,p_LAST_UPDATED_BY => FND_GLOBAL.USER_ID
20721 ,p_LAST_UPDATE_DATE => SYSDATE
20722 ,p_LAST_UPDATE_LOGIN => FND_GLOBAL.CONC_LOGIN_ID
20723 ,p_OBJECT_VERSION_NUMBER => fnd_api.g_miss_num
20724 ,p_OLD_INST_LOC_TYPE_CODE => fnd_api.g_miss_char
20725 ,p_NEW_INST_LOC_TYPE_CODE => p_instance_rec.INSTALL_LOCATION_TYPE_CODE
20726 ,p_OLD_INST_LOC_ID => fnd_api.g_miss_num
20727 ,p_NEW_INST_LOC_ID => p_instance_rec.INSTALL_LOCATION_ID
20728 ,p_OLD_INST_USAGE_CODE => fnd_api.g_miss_char
20729 ,p_NEW_INST_USAGE_CODE => p_instance_rec.INSTANCE_USAGE_CODE
20730 ,p_OLD_LAST_VLD_ORGANIZATION_ID => fnd_api.g_miss_num
20731 ,p_NEW_LAST_VLD_ORGANIZATION_ID => p_instance_rec.vld_organization_id
20732 ,p_OLD_CONFIG_INST_REV_NUM => fnd_api.g_miss_num
20733 ,p_NEW_CONFIG_INST_REV_NUM => p_instance_rec.CONFIG_INST_REV_NUM
20734 ,p_OLD_CONFIG_VALID_STATUS => fnd_api.g_miss_char
20735 ,p_NEW_CONFIG_VALID_STATUS => p_instance_rec.CONFIG_VALID_STATUS
20736 ,p_OLD_INSTANCE_DESCRIPTION => fnd_api.g_miss_char
20737 ,p_NEW_INSTANCE_DESCRIPTION => p_instance_rec.INSTANCE_DESCRIPTION
20738 ,p_OLD_INSTALL_DATE => fnd_api.g_miss_date
20739 ,p_NEW_INSTALL_DATE => p_instance_rec.INSTALL_DATE
20740 ,p_OLD_RETURN_BY_DATE => fnd_api.g_miss_date
20741 ,p_NEW_RETURN_BY_DATE => p_instance_rec.RETURN_BY_DATE
20742 ,p_OLD_ACTUAL_RETURN_DATE => fnd_api.g_miss_date
20743 ,p_NEW_ACTUAL_RETURN_DATE => p_instance_rec.ACTUAL_RETURN_DATE
20744 ,p_OLD_LAST_OE_AGREEMENT_ID => fnd_api.g_miss_num
20745 ,p_NEW_LAST_OE_AGREEMENT_ID => p_instance_rec.LAST_OE_AGREEMENT_ID
20746 ,p_OLD_LAST_OE_ORDER_LINE_ID => fnd_api.g_miss_num
20747 ,p_NEW_LAST_OE_ORDER_LINE_ID => p_instance_rec.LAST_OE_ORDER_LINE_ID
20748 ,p_OLD_LAST_OE_RMA_LINE_ID => fnd_api.g_miss_num
20749 ,p_NEW_LAST_OE_RMA_LINE_ID => p_instance_rec.LAST_OE_RMA_LINE_ID
20750 ,p_OLD_LAST_WIP_JOB_ID => fnd_api.g_miss_num
20751 ,p_NEW_LAST_WIP_JOB_ID => p_instance_rec.LAST_WIP_JOB_ID
20752 ,p_OLD_LAST_PO_PO_LINE_ID => fnd_api.g_miss_num
20753 ,p_NEW_LAST_PO_PO_LINE_ID => p_instance_rec.LAST_PO_PO_LINE_ID
20754 ,p_OLD_LAST_PA_PROJECT_ID => fnd_api.g_miss_num
20755 ,p_NEW_LAST_PA_PROJECT_ID => p_instance_rec.LAST_PA_PROJECT_ID
20756 ,p_OLD_LAST_PA_TASK_ID => fnd_api.g_miss_num
20757 ,p_NEW_LAST_PA_TASK_ID => p_instance_rec.LAST_PA_TASK_ID
20758 ,p_OLD_LAST_TXN_LINE_DETAIL_ID => fnd_api.g_miss_num
20759 ,p_NEW_LAST_TXN_LINE_DETAIL_ID => p_instance_rec.LAST_TXN_LINE_DETAIL_ID
20760 ,p_OLD_LAST_OE_PO_NUMBER => fnd_api.g_miss_char
20761 ,p_NEW_LAST_OE_PO_NUMBER => p_instance_rec.LAST_OE_PO_NUMBER
20762 --start of parameters addition for eam integration--
20763 ,p_OLD_NETWORK_ASSET_FLAG => fnd_api.g_miss_char
20764 ,p_NEW_NETWORK_ASSET_FLAG => p_instance_rec.NETWORK_ASSET_FLAG
20765 ,p_OLD_MAINTAINABLE_FLAG => fnd_api.g_miss_char
20766 ,p_NEW_MAINTAINABLE_FLAG => p_instance_rec.MAINTAINABLE_FLAG
20767 ,p_OLD_PN_LOCATION_ID => fnd_api.g_miss_num
20768 ,p_NEW_PN_LOCATION_ID => p_instance_rec.PN_LOCATION_ID
20769 ,p_OLD_ASSET_CRITICALITY_CODE => fnd_api.g_miss_char
20770 ,p_NEW_ASSET_CRITICALITY_CODE => p_instance_rec.ASSET_CRITICALITY_CODE
20771 ,p_OLD_CATEGORY_ID => fnd_api.g_miss_num
20772 ,p_NEW_CATEGORY_ID => p_instance_rec.CATEGORY_ID
20773 ,p_OLD_EQUIPMENT_GEN_OBJECT_ID => fnd_api.g_miss_num
20774 ,p_NEW_EQUIPMENT_GEN_OBJECT_ID => p_instance_rec.EQUIPMENT_GEN_OBJECT_ID
20775 ,p_OLD_INSTANTIATION_FLAG => fnd_api.g_miss_char
20776 ,p_NEW_INSTANTIATION_FLAG => p_instance_rec.INSTANTIATION_FLAG
20777 ,p_OLD_LINEAR_LOCATION_ID => fnd_api.g_miss_num
20778 ,p_NEW_LINEAR_LOCATION_ID => p_instance_rec.LINEAR_LOCATION_ID
20779 ,p_OLD_OPERATIONAL_LOG_FLAG => fnd_api.g_miss_char
20780 ,p_NEW_OPERATIONAL_LOG_FLAG => p_instance_rec.OPERATIONAL_LOG_FLAG
20781 ,p_OLD_CHECKIN_STATUS => fnd_api.g_miss_num
20782 ,p_NEW_CHECKIN_STATUS => p_instance_rec.CHECKIN_STATUS
20783 ,p_OLD_SUP_WARRANTY_EXP_DATE => fnd_api.g_miss_date
20784 ,p_NEW_SUP_WARRANTY_EXP_DATE => p_instance_rec.SUPPLIER_WARRANTY_EXP_DATE
20785 ,p_OLD_ATTRIBUTE16 => fnd_api.g_miss_char
20786 ,p_NEW_ATTRIBUTE16 => p_instance_rec.ATTRIBUTE16
20787 ,p_OLD_ATTRIBUTE17 => fnd_api.g_miss_char
20788 ,p_NEW_ATTRIBUTE17 => p_instance_rec.ATTRIBUTE17
20789 ,p_OLD_ATTRIBUTE18 => fnd_api.g_miss_char
20790 ,p_NEW_ATTRIBUTE18 => p_instance_rec.ATTRIBUTE18
20791 ,p_OLD_ATTRIBUTE19 => fnd_api.g_miss_char
20792 ,p_NEW_ATTRIBUTE19 => p_instance_rec.ATTRIBUTE19
20793 ,p_OLD_ATTRIBUTE20 => fnd_api.g_miss_char
20794 ,p_NEW_ATTRIBUTE20 => p_instance_rec.ATTRIBUTE20
20795 ,p_OLD_ATTRIBUTE21 => fnd_api.g_miss_char
20796 ,p_NEW_ATTRIBUTE21 => p_instance_rec.ATTRIBUTE21
20797 ,p_OLD_ATTRIBUTE22 => fnd_api.g_miss_char
20798 ,p_NEW_ATTRIBUTE22 => p_instance_rec.ATTRIBUTE22
20799 ,p_OLD_ATTRIBUTE23 => fnd_api.g_miss_char
20800 ,p_NEW_ATTRIBUTE23 => p_instance_rec.ATTRIBUTE23
20801 ,p_OLD_ATTRIBUTE24 => fnd_api.g_miss_char
20802 ,p_NEW_ATTRIBUTE24 => p_instance_rec.ATTRIBUTE24
20803 ,p_OLD_ATTRIBUTE25 => fnd_api.g_miss_char
20804 ,p_NEW_ATTRIBUTE25 => p_instance_rec.ATTRIBUTE25
20805 ,p_OLD_ATTRIBUTE26 => fnd_api.g_miss_char
20806 ,p_NEW_ATTRIBUTE26 => p_instance_rec.ATTRIBUTE26
20807 ,p_OLD_ATTRIBUTE27 => fnd_api.g_miss_char
20808 ,p_NEW_ATTRIBUTE27 => p_instance_rec.ATTRIBUTE27
20809 ,p_OLD_ATTRIBUTE28 => fnd_api.g_miss_char
20810 ,p_NEW_ATTRIBUTE28 => p_instance_rec.ATTRIBUTE28
20811 ,p_OLD_ATTRIBUTE29 => fnd_api.g_miss_char
20812 ,p_NEW_ATTRIBUTE29 => p_instance_rec.ATTRIBUTE29
20813 ,p_OLD_ATTRIBUTE30 => fnd_api.g_miss_char
20814 ,p_NEW_ATTRIBUTE30 => p_instance_rec.ATTRIBUTE30
20815 --end of parameters addition for eam integration--
20816 -- Addition of columns for FA Integration
20817 ,p_OLD_PAYABLES_UNIT_PRICE => fnd_api.g_miss_num
20818 ,p_NEW_PAYABLES_UNIT_PRICE => p_instance_rec.PAYABLES_UNIT_PRICE
20819 ,p_OLD_PAYABLES_CURRENCY_CODE => fnd_api.g_miss_char
20820 ,p_NEW_PAYABLES_CURRENCY_CODE => p_instance_rec.PAYABLES_CURRENCY_CODE
20821 ,p_OLD_PURCHASE_UNIT_PRICE => fnd_api.g_miss_num
20822 ,p_NEW_PURCHASE_UNIT_PRICE => p_instance_rec.PURCHASE_UNIT_PRICE
20823 ,p_OLD_PURCHASE_CURRENCY_CODE => fnd_api.g_miss_char
20824 ,p_NEW_PURCHASE_CURRENCY_CODE => p_instance_rec.PURCHASE_CURRENCY_CODE
20825 ,p_OLD_SALES_UNIT_PRICE => fnd_api.g_miss_num
20826 ,p_NEW_SALES_UNIT_PRICE => p_instance_rec.SALES_UNIT_PRICE
20827 ,p_OLD_SALES_CURRENCY_CODE => fnd_api.g_miss_char
20828 ,p_NEW_SALES_CURRENCY_CODE => p_instance_rec.SALES_CURRENCY_CODE
20829 ,p_OLD_OPERATIONAL_STATUS_CODE => fnd_api.g_miss_char
20830 ,p_NEW_OPERATIONAL_STATUS_CODE => p_instance_rec.OPERATIONAL_STATUS_CODE
20831 -- End addition of columns for FA Integration
20832 ,p_OLD_SOURCE_CODE => fnd_api.g_miss_char
20833 ,p_NEW_SOURCE_CODE => p_instance_rec.SOURCE_CODE
20834 );
20835
20836 EXCEPTION
20837 WHEN NO_DATA_FOUND THEN
20838 -- Get a unique history item instance id from the sequence
20839 l_csi_item_instance_h_id :=
20840 csi_item_instance_vld_pvt.get_csi_item_instance_h_id;
20841
20842 IF (l_mod_value = 0) THEN
20843 -- If the mod value is 0 then dump all the columns both changed and unchanged
20844 -- changed columns have old and new values while the unchanged values have old and new values
20845 -- exactly same
20846 CSI_ITEM_INSTANCES_H_PKG.Insert_Row
20847 ( px_INSTANCE_HISTORY_ID => l_csi_item_instance_h_id
20848 ,p_INSTANCE_ID => p_instance_rec.instance_id
20849 ,p_TRANSACTION_ID => p_txn_rec.TRANSACTION_ID
20850 ,p_OLD_INSTANCE_NUMBER => l_curr_instance_rec.INSTANCE_NUMBER
20851 ,p_NEW_INSTANCE_NUMBER => l_curr_instance_rec.INSTANCE_NUMBER
20852 ,p_OLD_EXTERNAL_REFERENCE => l_curr_instance_rec.EXTERNAL_REFERENCE
20853 ,p_NEW_EXTERNAL_REFERENCE => l_curr_instance_rec.EXTERNAL_REFERENCE
20854 ,p_OLD_INVENTORY_ITEM_ID => l_curr_instance_rec.INVENTORY_ITEM_ID
20855 ,p_NEW_INVENTORY_ITEM_ID => l_curr_instance_rec.INVENTORY_ITEM_ID
20856 ,p_OLD_INVENTORY_REVISION => l_curr_instance_rec.INVENTORY_REVISION
20857 ,p_NEW_INVENTORY_REVISION => l_curr_instance_rec.INVENTORY_REVISION
20858 ,p_OLD_INV_MASTER_ORGZN_ID => l_curr_instance_rec.INV_MASTER_ORGANIZATION_ID
20859 ,p_NEW_INV_MASTER_ORGZN_ID => l_curr_instance_rec.INV_MASTER_ORGANIZATION_ID
20860 ,p_OLD_SERIAL_NUMBER => l_curr_instance_rec.SERIAL_NUMBER
20861 ,p_NEW_SERIAL_NUMBER => l_curr_instance_rec.SERIAL_NUMBER
20862 ,p_OLD_MFG_SERIAL_NUMBER_FLAG => l_curr_instance_rec.MFG_SERIAL_NUMBER_FLAG
20863 ,p_NEW_MFG_SERIAL_NUMBER_FLAG => l_curr_instance_rec.MFG_SERIAL_NUMBER_FLAG
20864 ,p_OLD_LOT_NUMBER => l_curr_instance_rec.LOT_NUMBER
20865 ,p_NEW_LOT_NUMBER => l_curr_instance_rec.LOT_NUMBER
20866 ,p_OLD_QUANTITY => l_curr_instance_rec.QUANTITY
20867 ,p_NEW_QUANTITY => l_curr_instance_rec.QUANTITY
20868 ,p_OLD_UNIT_OF_MEASURE => l_curr_instance_rec.UNIT_OF_MEASURE
20869 ,p_NEW_UNIT_OF_MEASURE => l_curr_instance_rec.UNIT_OF_MEASURE
20870 ,p_OLD_ACCOUNTING_CLASS_CODE => l_curr_instance_rec.ACCOUNTING_CLASS_CODE
20871 ,p_NEW_ACCOUNTING_CLASS_CODE => l_curr_instance_rec.ACCOUNTING_CLASS_CODE
20872 ,p_OLD_INSTANCE_CONDITION_ID => l_curr_instance_rec.INSTANCE_CONDITION_ID
20873 ,p_NEW_INSTANCE_CONDITION_ID => l_curr_instance_rec.INSTANCE_CONDITION_ID
20874 ,p_OLD_INSTANCE_STATUS_ID => l_curr_instance_rec.INSTANCE_STATUS_ID
20875 ,p_NEW_INSTANCE_STATUS_ID => l_instance_rec.INSTANCE_STATUS_ID
20876 ,p_OLD_CUSTOMER_VIEW_FLAG => l_curr_instance_rec.CUSTOMER_VIEW_FLAG
20877 ,p_NEW_CUSTOMER_VIEW_FLAG => l_curr_instance_rec.CUSTOMER_VIEW_FLAG
20878 ,p_OLD_MERCHANT_VIEW_FLAG => l_curr_instance_rec.MERCHANT_VIEW_FLAG
20879 ,p_NEW_MERCHANT_VIEW_FLAG => l_curr_instance_rec.MERCHANT_VIEW_FLAG
20880 ,p_OLD_SELLABLE_FLAG => l_curr_instance_rec.SELLABLE_FLAG
20881 ,p_NEW_SELLABLE_FLAG => l_curr_instance_rec.SELLABLE_FLAG
20882 ,p_OLD_SYSTEM_ID => l_curr_instance_rec.SYSTEM_ID
20883 ,p_NEW_SYSTEM_ID => l_curr_instance_rec.SYSTEM_ID
20884 ,p_OLD_INSTANCE_TYPE_CODE => l_curr_instance_rec.INSTANCE_TYPE_CODE
20885 ,p_NEW_INSTANCE_TYPE_CODE => l_curr_instance_rec.INSTANCE_TYPE_CODE
20886 ,p_OLD_ACTIVE_START_DATE => l_curr_instance_rec.ACTIVE_START_DATE
20887 ,p_NEW_ACTIVE_START_DATE => l_curr_instance_rec.ACTIVE_START_DATE
20888 ,p_OLD_ACTIVE_END_DATE => l_curr_instance_rec.ACTIVE_END_DATE
20889 ,p_NEW_ACTIVE_END_DATE => l_temp_date --SYSDATE
20890 ,p_OLD_LOCATION_TYPE_CODE => l_curr_instance_rec.LOCATION_TYPE_CODE
20891 ,p_NEW_LOCATION_TYPE_CODE => l_curr_instance_rec.LOCATION_TYPE_CODE
20892 ,p_OLD_LOCATION_ID => l_curr_instance_rec.LOCATION_ID
20893 ,p_NEW_LOCATION_ID => l_curr_instance_rec.LOCATION_ID
20894 ,p_OLD_INV_ORGANIZATION_ID => l_curr_instance_rec.INV_ORGANIZATION_ID
20895 ,p_NEW_INV_ORGANIZATION_ID => l_curr_instance_rec.INV_ORGANIZATION_ID
20896 ,p_OLD_INV_SUBINVENTORY_NAME => l_curr_instance_rec.INV_SUBINVENTORY_NAME
20897 ,p_NEW_INV_SUBINVENTORY_NAME => l_curr_instance_rec.INV_SUBINVENTORY_NAME
20898 ,p_OLD_INV_LOCATOR_ID => l_curr_instance_rec.INV_LOCATOR_ID
20899 ,p_NEW_INV_LOCATOR_ID => l_curr_instance_rec.INV_LOCATOR_ID
20900 ,p_OLD_PA_PROJECT_ID => l_curr_instance_rec.PA_PROJECT_ID
20901 ,p_NEW_PA_PROJECT_ID => l_curr_instance_rec.PA_PROJECT_ID
20902 ,p_OLD_PA_PROJECT_TASK_ID => l_curr_instance_rec.PA_PROJECT_TASK_ID
20903 ,p_NEW_PA_PROJECT_TASK_ID => l_curr_instance_rec.PA_PROJECT_TASK_ID
20904 ,p_OLD_IN_TRANSIT_ORDER_LINE_ID => l_curr_instance_rec.IN_TRANSIT_ORDER_LINE_ID
20905 ,p_NEW_IN_TRANSIT_ORDER_LINE_ID => l_curr_instance_rec.IN_TRANSIT_ORDER_LINE_ID
20906 ,p_OLD_WIP_JOB_ID => l_curr_instance_rec.WIP_JOB_ID
20907 ,p_NEW_WIP_JOB_ID => l_curr_instance_rec.WIP_JOB_ID
20908 ,p_OLD_PO_ORDER_LINE_ID => l_curr_instance_rec.PO_ORDER_LINE_ID
20909 ,p_NEW_PO_ORDER_LINE_ID => l_curr_instance_rec.PO_ORDER_LINE_ID
20910 ,p_OLD_COMPLETENESS_FLAG => l_curr_instance_rec.COMPLETENESS_FLAG
20911 ,p_NEW_COMPLETENESS_FLAG => l_curr_instance_rec.COMPLETENESS_FLAG
20912 ,p_FULL_DUMP_FLAG => 'Y'
20913 ,p_NEW_CONTEXT => l_curr_instance_rec.CONTEXT
20914 ,P_OLD_CONTEXT => l_curr_instance_rec.CONTEXT
20915 ,p_NEW_ATTRIBUTE1 => l_curr_instance_rec.ATTRIBUTE1
20916 ,p_OLD_ATTRIBUTE1 => l_curr_instance_rec.ATTRIBUTE1
20917 ,p_NEW_ATTRIBUTE2 => l_curr_instance_rec.ATTRIBUTE2
20918 ,p_OLD_ATTRIBUTE2 => l_curr_instance_rec.ATTRIBUTE2
20919 ,p_NEW_ATTRIBUTE3 => l_curr_instance_rec.ATTRIBUTE3
20920 ,p_OLD_ATTRIBUTE3 => l_curr_instance_rec.ATTRIBUTE3
20921 ,p_NEW_ATTRIBUTE4 => l_curr_instance_rec.ATTRIBUTE4
20922 ,p_OLD_ATTRIBUTE4 => l_curr_instance_rec.ATTRIBUTE4
20923 ,p_NEW_ATTRIBUTE5 => l_curr_instance_rec.ATTRIBUTE5
20924 ,p_OLD_ATTRIBUTE5 => l_curr_instance_rec.ATTRIBUTE5
20925 ,p_NEW_ATTRIBUTE6 => l_curr_instance_rec.ATTRIBUTE6
20926 ,p_OLD_ATTRIBUTE6 => l_curr_instance_rec.ATTRIBUTE6
20927 ,p_NEW_ATTRIBUTE7 => l_curr_instance_rec.ATTRIBUTE7
20928 ,p_OLD_ATTRIBUTE7 => l_curr_instance_rec.ATTRIBUTE7
20929 ,p_NEW_ATTRIBUTE8 => l_curr_instance_rec.ATTRIBUTE8
20930 ,p_OLD_ATTRIBUTE8 => l_curr_instance_rec.ATTRIBUTE8
20931 ,p_NEW_ATTRIBUTE9 => l_curr_instance_rec.ATTRIBUTE9
20932 ,p_OLD_ATTRIBUTE9 => l_curr_instance_rec.ATTRIBUTE9
20933 ,p_NEW_ATTRIBUTE10 => l_curr_instance_rec.ATTRIBUTE10
20934 ,p_OLD_ATTRIBUTE10 => l_curr_instance_rec.ATTRIBUTE10
20935 ,p_NEW_ATTRIBUTE11 => l_curr_instance_rec.ATTRIBUTE11
20936 ,p_OLD_ATTRIBUTE11 => l_curr_instance_rec.ATTRIBUTE11
20937 ,p_NEW_ATTRIBUTE12 => l_curr_instance_rec.ATTRIBUTE12
20938 ,p_OLD_ATTRIBUTE12 => l_curr_instance_rec.ATTRIBUTE12
20939 ,p_NEW_ATTRIBUTE13 => l_curr_instance_rec.ATTRIBUTE13
20940 ,p_OLD_ATTRIBUTE13 => l_curr_instance_rec.ATTRIBUTE13
20941 ,p_NEW_ATTRIBUTE14 => l_curr_instance_rec.ATTRIBUTE14
20942 ,p_OLD_ATTRIBUTE14 => l_curr_instance_rec.ATTRIBUTE14
20943 ,p_NEW_ATTRIBUTE15 => l_curr_instance_rec.ATTRIBUTE15
20944 ,p_OLD_ATTRIBUTE15 => l_curr_instance_rec.ATTRIBUTE15
20945 ,p_CREATED_BY => FND_GLOBAL.USER_ID
20946 ,p_CREATION_DATE => SYSDATE
20947 ,p_LAST_UPDATED_BY => FND_GLOBAL.USER_ID
20948 ,p_LAST_UPDATE_DATE => SYSDATE
20949 ,p_LAST_UPDATE_LOGIN => FND_GLOBAL.CONC_LOGIN_ID
20950 ,p_OBJECT_VERSION_NUMBER => 1
20951 ,p_OLD_INST_LOC_TYPE_CODE => l_curr_instance_rec.INSTALL_LOCATION_TYPE_CODE
20952 ,p_NEW_INST_LOC_TYPE_CODE => l_curr_instance_rec.INSTALL_LOCATION_TYPE_CODE
20953 ,p_OLD_INST_LOC_ID => l_curr_instance_rec.INSTALL_LOCATION_ID
20954 ,p_NEW_INST_LOC_ID => l_curr_instance_rec.INSTALL_LOCATION_ID
20955 ,p_OLD_INST_USAGE_CODE => l_curr_instance_rec.INSTANCE_USAGE_CODE
20956 ,p_NEW_INST_USAGE_CODE => l_curr_instance_rec.INSTANCE_USAGE_CODE
20957 ,p_OLD_CONFIG_INST_REV_NUM => l_curr_instance_rec.CONFIG_INST_REV_NUM
20958 ,p_NEW_CONFIG_INST_REV_NUM => NULL -- l_curr_instance_rec.CONFIG_INST_REV_NUM
20959 ,p_OLD_CONFIG_VALID_STATUS => l_curr_instance_rec.CONFIG_VALID_STATUS
20960 ,p_NEW_CONFIG_VALID_STATUS => l_curr_instance_rec.CONFIG_VALID_STATUS
20961 ,p_OLD_INSTANCE_DESCRIPTION => l_curr_instance_rec.INSTANCE_DESCRIPTION
20962 ,p_NEW_INSTANCE_DESCRIPTION => l_curr_instance_rec.INSTANCE_DESCRIPTION
20963 ,p_OLD_INSTALL_DATE => l_curr_instance_rec.INSTALL_DATE
20964 ,p_NEW_INSTALL_DATE => l_curr_instance_rec.INSTALL_DATE
20965 ,p_OLD_RETURN_BY_DATE => l_curr_instance_rec.RETURN_BY_DATE
20966 ,p_NEW_RETURN_BY_DATE => l_curr_instance_rec.RETURN_BY_DATE
20967 ,p_OLD_ACTUAL_RETURN_DATE => l_curr_instance_rec.ACTUAL_RETURN_DATE
20968 ,p_NEW_ACTUAL_RETURN_DATE => l_curr_instance_rec.ACTUAL_RETURN_DATE
20969 ,p_OLD_LAST_OE_AGREEMENT_ID => l_curr_instance_rec.LAST_OE_AGREEMENT_ID
20970 ,p_NEW_LAST_OE_AGREEMENT_ID => l_curr_instance_rec.LAST_OE_AGREEMENT_ID
20971 ,p_OLD_LAST_OE_ORDER_LINE_ID => l_curr_instance_rec.LAST_OE_ORDER_LINE_ID
20972 ,p_NEW_LAST_OE_ORDER_LINE_ID => l_curr_instance_rec.LAST_OE_ORDER_LINE_ID
20973 ,p_OLD_LAST_OE_RMA_LINE_ID => l_curr_instance_rec.LAST_OE_RMA_LINE_ID
20974 ,p_NEW_LAST_OE_RMA_LINE_ID => l_curr_instance_rec.LAST_OE_RMA_LINE_ID
20975 ,p_OLD_LAST_WIP_JOB_ID => l_curr_instance_rec.LAST_WIP_JOB_ID
20976 ,p_NEW_LAST_WIP_JOB_ID => l_curr_instance_rec.LAST_WIP_JOB_ID
20977 ,p_OLD_LAST_PO_PO_LINE_ID => l_curr_instance_rec.LAST_PO_PO_LINE_ID
20978 ,p_NEW_LAST_PO_PO_LINE_ID => l_curr_instance_rec.LAST_PO_PO_LINE_ID
20979 ,p_OLD_LAST_PA_PROJECT_ID => l_curr_instance_rec.LAST_PA_PROJECT_ID
20980 ,p_NEW_LAST_PA_PROJECT_ID => l_curr_instance_rec.LAST_PA_PROJECT_ID
20981 ,p_OLD_LAST_PA_TASK_ID => l_curr_instance_rec.LAST_PA_TASK_ID
20982 ,p_NEW_LAST_PA_TASK_ID => l_curr_instance_rec.LAST_PA_TASK_ID
20983 ,p_OLD_LAST_TXN_LINE_DETAIL_ID => l_curr_instance_rec.LAST_TXN_LINE_DETAIL_ID
20984 ,p_NEW_LAST_TXN_LINE_DETAIL_ID => l_curr_instance_rec.LAST_TXN_LINE_DETAIL_ID
20985 ,p_OLD_LAST_OE_PO_NUMBER => l_curr_instance_rec.LAST_OE_PO_NUMBER
20986 ,p_NEW_LAST_OE_PO_NUMBER => l_curr_instance_rec.LAST_OE_PO_NUMBER
20987 --start of parameters addition for eam integration--
20988 ,p_OLD_NETWORK_ASSET_FLAG => l_curr_instance_rec.NETWORK_ASSET_FLAG
20989 ,p_NEW_NETWORK_ASSET_FLAG => l_curr_instance_rec.NETWORK_ASSET_FLAG
20990 ,p_OLD_MAINTAINABLE_FLAG => l_curr_instance_rec.MAINTAINABLE_FLAG
20991 ,p_NEW_MAINTAINABLE_FLAG => l_curr_instance_rec.MAINTAINABLE_FLAG
20992 ,p_OLD_PN_LOCATION_ID => l_curr_instance_rec.PN_LOCATION_ID
20993 ,p_NEW_PN_LOCATION_ID => l_curr_instance_rec.PN_LOCATION_ID
20994 ,p_OLD_ASSET_CRITICALITY_CODE => l_curr_instance_rec.ASSET_CRITICALITY_CODE
20995 ,p_NEW_ASSET_CRITICALITY_CODE => l_curr_instance_rec.ASSET_CRITICALITY_CODE
20996 ,p_OLD_CATEGORY_ID => l_curr_instance_rec.CATEGORY_ID
20997 ,p_NEW_CATEGORY_ID => l_curr_instance_rec.CATEGORY_ID
20998 ,p_OLD_EQUIPMENT_GEN_OBJECT_ID => l_curr_instance_rec.EQUIPMENT_GEN_OBJECT_ID
20999 ,p_NEW_EQUIPMENT_GEN_OBJECT_ID => l_curr_instance_rec.EQUIPMENT_GEN_OBJECT_ID
21000 ,p_OLD_INSTANTIATION_FLAG => l_curr_instance_rec.INSTANTIATION_FLAG
21001 ,p_NEW_INSTANTIATION_FLAG => l_curr_instance_rec.INSTANTIATION_FLAG
21002 ,p_OLD_LINEAR_LOCATION_ID => l_curr_instance_rec.LINEAR_LOCATION_ID
21003 ,p_NEW_LINEAR_LOCATION_ID => l_curr_instance_rec.LINEAR_LOCATION_ID
21004 ,p_OLD_OPERATIONAL_LOG_FLAG => l_curr_instance_rec.OPERATIONAL_LOG_FLAG
21005 ,p_NEW_OPERATIONAL_LOG_FLAG => l_curr_instance_rec.OPERATIONAL_LOG_FLAG
21006 ,p_OLD_CHECKIN_STATUS => l_curr_instance_rec.CHECKIN_STATUS
21007 ,p_NEW_CHECKIN_STATUS => l_curr_instance_rec.CHECKIN_STATUS
21008 ,p_OLD_SUP_WARRANTY_EXP_DATE => l_curr_instance_rec.SUPPLIER_WARRANTY_EXP_DATE
21009 ,p_NEW_SUP_WARRANTY_EXP_DATE => l_curr_instance_rec.SUPPLIER_WARRANTY_EXP_DATE
21010 ,p_OLD_ATTRIBUTE16 => l_curr_instance_rec.ATTRIBUTE16
21011 ,p_NEW_ATTRIBUTE16 => l_curr_instance_rec.ATTRIBUTE16
21012 ,p_OLD_ATTRIBUTE17 => l_curr_instance_rec.ATTRIBUTE17
21013 ,p_NEW_ATTRIBUTE17 => l_curr_instance_rec.ATTRIBUTE17
21014 ,p_OLD_ATTRIBUTE18 => l_curr_instance_rec.ATTRIBUTE18
21015 ,p_NEW_ATTRIBUTE18 => l_curr_instance_rec.ATTRIBUTE18
21016 ,p_OLD_ATTRIBUTE19 => l_curr_instance_rec.ATTRIBUTE19
21017 ,p_NEW_ATTRIBUTE19 => l_curr_instance_rec.ATTRIBUTE19
21018 ,p_OLD_ATTRIBUTE20 => l_curr_instance_rec.ATTRIBUTE20
21019 ,p_NEW_ATTRIBUTE20 => l_curr_instance_rec.ATTRIBUTE20
21020 ,p_OLD_ATTRIBUTE21 => l_curr_instance_rec.ATTRIBUTE21
21021 ,p_NEW_ATTRIBUTE21 => l_curr_instance_rec.ATTRIBUTE21
21022 ,p_OLD_ATTRIBUTE22 => l_curr_instance_rec.ATTRIBUTE22
21023 ,p_NEW_ATTRIBUTE22 => l_curr_instance_rec.ATTRIBUTE22
21024 ,p_OLD_ATTRIBUTE23 => l_curr_instance_rec.ATTRIBUTE23
21025 ,p_NEW_ATTRIBUTE23 => l_curr_instance_rec.ATTRIBUTE23
21026 ,p_OLD_ATTRIBUTE24 => l_curr_instance_rec.ATTRIBUTE24
21027 ,p_NEW_ATTRIBUTE24 => l_curr_instance_rec.ATTRIBUTE24
21028 ,p_OLD_ATTRIBUTE25 => l_curr_instance_rec.ATTRIBUTE25
21029 ,p_NEW_ATTRIBUTE25 => l_curr_instance_rec.ATTRIBUTE25
21030 ,p_OLD_ATTRIBUTE26 => l_curr_instance_rec.ATTRIBUTE26
21031 ,p_NEW_ATTRIBUTE26 => l_curr_instance_rec.ATTRIBUTE26
21032 ,p_OLD_ATTRIBUTE27 => l_curr_instance_rec.ATTRIBUTE27
21033 ,p_NEW_ATTRIBUTE27 => l_curr_instance_rec.ATTRIBUTE27
21034 ,p_OLD_ATTRIBUTE28 => l_curr_instance_rec.ATTRIBUTE28
21035 ,p_NEW_ATTRIBUTE28 => l_curr_instance_rec.ATTRIBUTE28
21036 ,p_OLD_ATTRIBUTE29 => l_curr_instance_rec.ATTRIBUTE29
21037 ,p_NEW_ATTRIBUTE29 => l_curr_instance_rec.ATTRIBUTE29
21038 ,p_OLD_ATTRIBUTE30 => l_curr_instance_rec.ATTRIBUTE30
21039 ,p_NEW_ATTRIBUTE30 => l_curr_instance_rec.ATTRIBUTE30
21040 --end of parameters addition for eam integration--
21041
21042 -- Addition of columns for FA Integration
21043 ,p_OLD_PAYABLES_UNIT_PRICE => l_curr_instance_rec.PAYABLES_UNIT_PRICE
21044 ,p_NEW_PAYABLES_UNIT_PRICE => l_curr_instance_rec.PAYABLES_UNIT_PRICE
21045 ,p_OLD_PAYABLES_CURRENCY_CODE => l_curr_instance_rec.PAYABLES_CURRENCY_CODE
21046 ,p_NEW_PAYABLES_CURRENCY_CODE => l_curr_instance_rec.PAYABLES_CURRENCY_CODE
21047 ,p_OLD_PURCHASE_UNIT_PRICE => l_curr_instance_rec.PURCHASE_UNIT_PRICE
21048 ,p_NEW_PURCHASE_UNIT_PRICE => l_curr_instance_rec.PURCHASE_UNIT_PRICE
21049 ,p_OLD_PURCHASE_CURRENCY_CODE => l_curr_instance_rec.PURCHASE_CURRENCY_CODE
21050 ,p_NEW_PURCHASE_CURRENCY_CODE => l_curr_instance_rec.PURCHASE_CURRENCY_CODE
21051 ,p_OLD_SALES_UNIT_PRICE => l_curr_instance_rec.SALES_UNIT_PRICE
21052 ,p_NEW_SALES_UNIT_PRICE => l_curr_instance_rec.SALES_UNIT_PRICE
21053 ,p_OLD_SALES_CURRENCY_CODE => l_curr_instance_rec.SALES_CURRENCY_CODE
21054 ,p_NEW_SALES_CURRENCY_CODE => l_curr_instance_rec.SALES_CURRENCY_CODE
21055 ,p_OLD_OPERATIONAL_STATUS_CODE => l_curr_instance_rec.OPERATIONAL_STATUS_CODE
21056 ,p_NEW_OPERATIONAL_STATUS_CODE => l_curr_instance_rec.OPERATIONAL_STATUS_CODE
21057 -- End addition of columns for FA Integration
21058 -- Begin Add Code for Siebel Genesis Project
21059 ,p_OLD_SOURCE_CODE => l_curr_instance_rec.SOURCE_CODE
21060 ,p_NEW_SOURCE_CODE => l_instance_rec.SOURCE_CODE
21061 -- End Add Code for Siebel Genesis Project
21062 );
21063
21064
21065 ELSE
21066 -- If the mod value is not equal to zero then dump only the changed columns
21067 -- while the unchanged values have old and new values as null
21068 CSI_ITEM_INSTANCES_H_PKG.Insert_Row
21069 ( px_INSTANCE_HISTORY_ID => l_csi_item_instance_h_id
21070 ,p_INSTANCE_ID => p_instance_rec.instance_id
21071 ,p_TRANSACTION_ID => p_txn_rec.TRANSACTION_ID
21072 ,p_OLD_INSTANCE_NUMBER => l_instance_rec.INSTANCE_NUMBER
21073 ,p_NEW_INSTANCE_NUMBER => l_instance_rec.INSTANCE_NUMBER
21074 ,p_OLD_EXTERNAL_REFERENCE => l_instance_rec.EXTERNAL_REFERENCE
21075 ,p_NEW_EXTERNAL_REFERENCE => l_instance_rec.EXTERNAL_REFERENCE
21076 ,p_OLD_INVENTORY_ITEM_ID => l_instance_rec.INVENTORY_ITEM_ID
21077 ,p_NEW_INVENTORY_ITEM_ID => l_instance_rec.INVENTORY_ITEM_ID
21078 ,p_OLD_INVENTORY_REVISION => l_instance_rec.INVENTORY_REVISION
21079 ,p_NEW_INVENTORY_REVISION => l_instance_rec.INVENTORY_REVISION
21080 ,p_OLD_INV_MASTER_ORGZN_ID => l_instance_rec.INV_MASTER_ORGANIZATION_ID
21081 ,p_NEW_INV_MASTER_ORGZN_ID => l_instance_rec.INV_MASTER_ORGANIZATION_ID
21082 ,p_OLD_SERIAL_NUMBER => l_instance_rec.SERIAL_NUMBER
21083 ,p_NEW_SERIAL_NUMBER => l_instance_rec.SERIAL_NUMBER
21084 ,p_OLD_MFG_SERIAL_NUMBER_FLAG => l_instance_rec.MFG_SERIAL_NUMBER_FLAG
21085 ,p_NEW_MFG_SERIAL_NUMBER_FLAG => l_instance_rec.MFG_SERIAL_NUMBER_FLAG
21086 ,p_OLD_LOT_NUMBER => l_instance_rec.LOT_NUMBER
21087 ,p_NEW_LOT_NUMBER => l_instance_rec.LOT_NUMBER
21088 ,p_OLD_QUANTITY => l_instance_rec.QUANTITY
21089 ,p_NEW_QUANTITY => l_instance_rec.QUANTITY
21090 ,p_OLD_UNIT_OF_MEASURE => l_instance_rec.UNIT_OF_MEASURE
21091 ,p_NEW_UNIT_OF_MEASURE => l_instance_rec.UNIT_OF_MEASURE
21092 ,p_OLD_ACCOUNTING_CLASS_CODE => l_instance_rec.ACCOUNTING_CLASS_CODE
21093 ,p_NEW_ACCOUNTING_CLASS_CODE => l_instance_rec.ACCOUNTING_CLASS_CODE
21094 ,p_OLD_INSTANCE_CONDITION_ID => l_instance_rec.INSTANCE_CONDITION_ID
21095 ,p_NEW_INSTANCE_CONDITION_ID => l_instance_rec.INSTANCE_CONDITION_ID
21096 ,p_OLD_INSTANCE_STATUS_ID => l_curr_instance_rec.INSTANCE_STATUS_ID
21097 ,p_NEW_INSTANCE_STATUS_ID => l_instance_rec.INSTANCE_STATUS_ID
21098 ,p_OLD_CUSTOMER_VIEW_FLAG => l_instance_rec.CUSTOMER_VIEW_FLAG
21099 ,p_NEW_CUSTOMER_VIEW_FLAG => l_instance_rec.CUSTOMER_VIEW_FLAG
21100 ,p_OLD_MERCHANT_VIEW_FLAG => l_instance_rec.MERCHANT_VIEW_FLAG
21101 ,p_NEW_MERCHANT_VIEW_FLAG => l_instance_rec.MERCHANT_VIEW_FLAG
21102 ,p_OLD_SELLABLE_FLAG => l_instance_rec.SELLABLE_FLAG
21103 ,p_NEW_SELLABLE_FLAG => l_instance_rec.SELLABLE_FLAG
21104 ,p_OLD_SYSTEM_ID => l_instance_rec.SYSTEM_ID
21105 ,p_NEW_SYSTEM_ID => l_instance_rec.SYSTEM_ID
21106 ,p_OLD_INSTANCE_TYPE_CODE => l_instance_rec.INSTANCE_TYPE_CODE
21107 ,p_NEW_INSTANCE_TYPE_CODE => l_instance_rec.INSTANCE_TYPE_CODE
21108 ,p_OLD_ACTIVE_START_DATE => l_instance_rec.ACTIVE_START_DATE
21109 ,p_NEW_ACTIVE_START_DATE => l_instance_rec.ACTIVE_START_DATE
21110 ,p_OLD_ACTIVE_END_DATE => l_curr_instance_rec.ACTIVE_END_DATE
21111 ,p_NEW_ACTIVE_END_DATE => l_temp_date--SYSDATE
21112 ,p_OLD_LOCATION_TYPE_CODE => l_instance_rec.LOCATION_TYPE_CODE
21113 ,p_NEW_LOCATION_TYPE_CODE => l_instance_rec.LOCATION_TYPE_CODE
21114 ,p_OLD_LOCATION_ID => l_instance_rec.LOCATION_ID
21115 ,p_NEW_LOCATION_ID => l_instance_rec.LOCATION_ID
21116 ,p_OLD_INV_ORGANIZATION_ID => l_instance_rec.INV_ORGANIZATION_ID
21117 ,p_NEW_INV_ORGANIZATION_ID => l_instance_rec.INV_ORGANIZATION_ID
21118 ,p_OLD_INV_SUBINVENTORY_NAME => l_instance_rec.INV_SUBINVENTORY_NAME
21119 ,p_NEW_INV_SUBINVENTORY_NAME => l_instance_rec.INV_SUBINVENTORY_NAME
21120 ,p_OLD_INV_LOCATOR_ID => l_instance_rec.INV_LOCATOR_ID
21121 ,p_NEW_INV_LOCATOR_ID => l_instance_rec.INV_LOCATOR_ID
21122 ,p_OLD_PA_PROJECT_ID => l_instance_rec.PA_PROJECT_ID
21123 ,p_NEW_PA_PROJECT_ID => l_instance_rec.PA_PROJECT_ID
21124 ,p_OLD_PA_PROJECT_TASK_ID => l_instance_rec.PA_PROJECT_TASK_ID
21125 ,p_NEW_PA_PROJECT_TASK_ID => l_instance_rec.PA_PROJECT_TASK_ID
21126 ,p_OLD_IN_TRANSIT_ORDER_LINE_ID => l_instance_rec.IN_TRANSIT_ORDER_LINE_ID
21127 ,p_NEW_IN_TRANSIT_ORDER_LINE_ID => l_instance_rec.IN_TRANSIT_ORDER_LINE_ID
21128 ,p_OLD_WIP_JOB_ID => l_instance_rec.WIP_JOB_ID
21129 ,p_NEW_WIP_JOB_ID => l_instance_rec.WIP_JOB_ID
21130 ,p_OLD_PO_ORDER_LINE_ID => l_instance_rec.PO_ORDER_LINE_ID
21131 ,p_NEW_PO_ORDER_LINE_ID => l_instance_rec.PO_ORDER_LINE_ID
21132 ,p_OLD_COMPLETENESS_FLAG => l_instance_rec.COMPLETENESS_FLAG
21133 ,p_NEW_COMPLETENESS_FLAG => l_instance_rec.COMPLETENESS_FLAG
21134 ,p_FULL_DUMP_FLAG => 'N'
21135 ,p_NEW_CONTEXT => l_instance_rec.CONTEXT
21136 ,P_OLD_CONTEXT => l_instance_rec.CONTEXT
21137 ,p_NEW_ATTRIBUTE1 => l_instance_rec.ATTRIBUTE1
21138 ,p_OLD_ATTRIBUTE1 => l_instance_rec.ATTRIBUTE1
21139 ,p_NEW_ATTRIBUTE2 => l_instance_rec.ATTRIBUTE2
21140 ,p_OLD_ATTRIBUTE2 => l_instance_rec.ATTRIBUTE2
21141 ,p_NEW_ATTRIBUTE3 => l_instance_rec.ATTRIBUTE3
21142 ,p_OLD_ATTRIBUTE3 => l_instance_rec.ATTRIBUTE3
21143 ,p_NEW_ATTRIBUTE4 => l_instance_rec.ATTRIBUTE4
21144 ,p_OLD_ATTRIBUTE4 => l_instance_rec.ATTRIBUTE4
21145 ,p_NEW_ATTRIBUTE5 => l_instance_rec.ATTRIBUTE5
21146 ,p_OLD_ATTRIBUTE5 => l_instance_rec.ATTRIBUTE5
21147 ,p_NEW_ATTRIBUTE6 => l_instance_rec.ATTRIBUTE6
21148 ,p_OLD_ATTRIBUTE6 => l_instance_rec.ATTRIBUTE6
21149 ,p_NEW_ATTRIBUTE7 => l_instance_rec.ATTRIBUTE7
21150 ,p_OLD_ATTRIBUTE7 => l_instance_rec.ATTRIBUTE7
21151 ,p_NEW_ATTRIBUTE8 => l_instance_rec.ATTRIBUTE8
21152 ,p_OLD_ATTRIBUTE8 => l_instance_rec.ATTRIBUTE8
21153 ,p_NEW_ATTRIBUTE9 => l_instance_rec.ATTRIBUTE9
21154 ,p_OLD_ATTRIBUTE9 => l_instance_rec.ATTRIBUTE9
21155 ,p_NEW_ATTRIBUTE10 => l_instance_rec.ATTRIBUTE10
21156 ,p_OLD_ATTRIBUTE10 => l_instance_rec.ATTRIBUTE10
21157 ,p_NEW_ATTRIBUTE11 => l_instance_rec.ATTRIBUTE11
21158 ,p_OLD_ATTRIBUTE11 => l_instance_rec.ATTRIBUTE11
21159 ,p_NEW_ATTRIBUTE12 => l_instance_rec.ATTRIBUTE12
21160 ,p_OLD_ATTRIBUTE12 => l_instance_rec.ATTRIBUTE12
21161 ,p_NEW_ATTRIBUTE13 => l_instance_rec.ATTRIBUTE13
21162 ,p_OLD_ATTRIBUTE13 => l_instance_rec.ATTRIBUTE13
21163 ,p_NEW_ATTRIBUTE14 => l_instance_rec.ATTRIBUTE14
21164 ,p_OLD_ATTRIBUTE14 => l_instance_rec.ATTRIBUTE14
21165 ,p_NEW_ATTRIBUTE15 => l_instance_rec.ATTRIBUTE15
21166 ,p_OLD_ATTRIBUTE15 => l_instance_rec.ATTRIBUTE15
21167 ,p_CREATED_BY => FND_GLOBAL.USER_ID
21168 ,p_CREATION_DATE => SYSDATE
21169 ,p_LAST_UPDATED_BY => FND_GLOBAL.USER_ID
21170 ,p_LAST_UPDATE_DATE => SYSDATE
21171 ,p_LAST_UPDATE_LOGIN => FND_GLOBAL.CONC_LOGIN_ID
21172 ,p_OBJECT_VERSION_NUMBER => 1
21173 ,p_OLD_INST_LOC_TYPE_CODE => l_instance_rec.INSTALL_LOCATION_TYPE_CODE
21174 ,p_NEW_INST_LOC_TYPE_CODE => l_instance_rec.INSTALL_LOCATION_TYPE_CODE
21175 ,p_OLD_INST_LOC_ID => l_instance_rec.INSTALL_LOCATION_ID
21176 ,p_NEW_INST_LOC_ID => l_instance_rec.INSTALL_LOCATION_ID
21177 ,p_OLD_INST_USAGE_CODE => l_instance_rec.INSTANCE_USAGE_CODE
21178 ,p_NEW_INST_USAGE_CODE => l_instance_rec.INSTANCE_USAGE_CODE
21179 ,p_OLD_CONFIG_INST_REV_NUM => l_instance_rec.CONFIG_INST_REV_NUM
21180 ,p_NEW_CONFIG_INST_REV_NUM => NULL -- l_instance_rec.CONFIG_INST_REV_NUM
21181 ,p_OLD_CONFIG_VALID_STATUS => l_instance_rec.CONFIG_VALID_STATUS
21182 ,p_NEW_CONFIG_VALID_STATUS => l_instance_rec.CONFIG_VALID_STATUS
21183 ,p_OLD_INSTANCE_DESCRIPTION => l_instance_rec.INSTANCE_DESCRIPTION
21184 ,p_NEW_INSTANCE_DESCRIPTION => l_instance_rec.INSTANCE_DESCRIPTION
21185 ,p_OLD_INSTALL_DATE => l_instance_rec.INSTALL_DATE
21186 ,p_NEW_INSTALL_DATE => l_instance_rec.INSTALL_DATE
21187 ,p_OLD_RETURN_BY_DATE => l_instance_rec.RETURN_BY_DATE
21188 ,p_NEW_RETURN_BY_DATE => l_instance_rec.RETURN_BY_DATE
21189 ,p_OLD_ACTUAL_RETURN_DATE => l_instance_rec.ACTUAL_RETURN_DATE
21190 ,p_NEW_ACTUAL_RETURN_DATE => l_instance_rec.ACTUAL_RETURN_DATE
21191 ,p_OLD_LAST_OE_AGREEMENT_ID => l_instance_rec.LAST_OE_AGREEMENT_ID
21192 ,p_NEW_LAST_OE_AGREEMENT_ID => l_instance_rec.LAST_OE_AGREEMENT_ID
21193 ,p_OLD_LAST_OE_ORDER_LINE_ID => l_instance_rec.LAST_OE_ORDER_LINE_ID
21194 ,p_NEW_LAST_OE_ORDER_LINE_ID => l_instance_rec.LAST_OE_ORDER_LINE_ID
21195 ,p_OLD_LAST_OE_RMA_LINE_ID => l_instance_rec.LAST_OE_RMA_LINE_ID
21196 ,p_NEW_LAST_OE_RMA_LINE_ID => l_instance_rec.LAST_OE_RMA_LINE_ID
21197 ,p_OLD_LAST_WIP_JOB_ID => l_instance_rec.LAST_WIP_JOB_ID
21198 ,p_NEW_LAST_WIP_JOB_ID => l_instance_rec.LAST_WIP_JOB_ID
21199 ,p_OLD_LAST_PO_PO_LINE_ID => l_instance_rec.LAST_PO_PO_LINE_ID
21200 ,p_NEW_LAST_PO_PO_LINE_ID => l_instance_rec.LAST_PO_PO_LINE_ID
21201 ,p_OLD_LAST_PA_PROJECT_ID => l_instance_rec.LAST_PA_PROJECT_ID
21202 ,p_NEW_LAST_PA_PROJECT_ID => l_instance_rec.LAST_PA_PROJECT_ID
21203 ,p_OLD_LAST_PA_TASK_ID => l_instance_rec.LAST_PA_TASK_ID
21204 ,p_NEW_LAST_PA_TASK_ID => l_instance_rec.LAST_PA_TASK_ID
21205 ,p_OLD_LAST_TXN_LINE_DETAIL_ID => l_instance_rec.LAST_TXN_LINE_DETAIL_ID
21206 ,p_NEW_LAST_TXN_LINE_DETAIL_ID => l_instance_rec.LAST_TXN_LINE_DETAIL_ID
21207 ,p_OLD_LAST_OE_PO_NUMBER => l_instance_rec.LAST_OE_PO_NUMBER
21208 ,p_NEW_LAST_OE_PO_NUMBER => l_instance_rec.LAST_OE_PO_NUMBER
21209 --start of parameters addition for eam integration--
21210 ,p_OLD_NETWORK_ASSET_FLAG => l_instance_rec.NETWORK_ASSET_FLAG
21211 ,p_NEW_NETWORK_ASSET_FLAG => l_instance_rec.NETWORK_ASSET_FLAG
21212 ,p_OLD_MAINTAINABLE_FLAG => l_instance_rec.MAINTAINABLE_FLAG
21213 ,p_NEW_MAINTAINABLE_FLAG => l_instance_rec.MAINTAINABLE_FLAG
21214 ,p_OLD_PN_LOCATION_ID => l_instance_rec.PN_LOCATION_ID
21215 ,p_NEW_PN_LOCATION_ID => l_instance_rec.PN_LOCATION_ID
21216 ,p_OLD_ASSET_CRITICALITY_CODE => l_instance_rec.ASSET_CRITICALITY_CODE
21217 ,p_NEW_ASSET_CRITICALITY_CODE => l_instance_rec.ASSET_CRITICALITY_CODE
21218 ,p_OLD_CATEGORY_ID => l_instance_rec.CATEGORY_ID
21219 ,p_NEW_CATEGORY_ID => l_instance_rec.CATEGORY_ID
21220 ,p_OLD_EQUIPMENT_GEN_OBJECT_ID => l_instance_rec.EQUIPMENT_GEN_OBJECT_ID
21221 ,p_NEW_EQUIPMENT_GEN_OBJECT_ID => l_instance_rec.EQUIPMENT_GEN_OBJECT_ID
21222 ,p_OLD_INSTANTIATION_FLAG => l_instance_rec.INSTANTIATION_FLAG
21223 ,p_NEW_INSTANTIATION_FLAG => l_instance_rec.INSTANTIATION_FLAG
21224 ,p_OLD_LINEAR_LOCATION_ID => l_instance_rec.LINEAR_LOCATION_ID
21225 ,p_NEW_LINEAR_LOCATION_ID => l_instance_rec.LINEAR_LOCATION_ID
21226 ,p_OLD_OPERATIONAL_LOG_FLAG => l_instance_rec.OPERATIONAL_LOG_FLAG
21227 ,p_NEW_OPERATIONAL_LOG_FLAG => l_instance_rec.OPERATIONAL_LOG_FLAG
21228 ,p_OLD_CHECKIN_STATUS => l_instance_rec.CHECKIN_STATUS
21229 ,p_NEW_CHECKIN_STATUS => l_instance_rec.CHECKIN_STATUS
21230 ,p_OLD_SUP_WARRANTY_EXP_DATE => l_instance_rec.SUPPLIER_WARRANTY_EXP_DATE
21231 ,p_NEW_SUP_WARRANTY_EXP_DATE => l_instance_rec.SUPPLIER_WARRANTY_EXP_DATE
21232 ,p_OLD_ATTRIBUTE16 => l_instance_rec.ATTRIBUTE16
21233 ,p_NEW_ATTRIBUTE16 => l_instance_rec.ATTRIBUTE16
21234 ,p_OLD_ATTRIBUTE17 => l_instance_rec.ATTRIBUTE17
21235 ,p_NEW_ATTRIBUTE17 => l_instance_rec.ATTRIBUTE17
21236 ,p_OLD_ATTRIBUTE18 => l_instance_rec.ATTRIBUTE18
21237 ,p_NEW_ATTRIBUTE18 => l_instance_rec.ATTRIBUTE18
21238 ,p_OLD_ATTRIBUTE19 => l_instance_rec.ATTRIBUTE19
21239 ,p_NEW_ATTRIBUTE19 => l_instance_rec.ATTRIBUTE19
21240 ,p_OLD_ATTRIBUTE20 => l_instance_rec.ATTRIBUTE20
21241 ,p_NEW_ATTRIBUTE20 => l_instance_rec.ATTRIBUTE20
21242 ,p_OLD_ATTRIBUTE21 => l_instance_rec.ATTRIBUTE21
21243 ,p_NEW_ATTRIBUTE21 => l_instance_rec.ATTRIBUTE21
21244 ,p_OLD_ATTRIBUTE22 => l_instance_rec.ATTRIBUTE22
21245 ,p_NEW_ATTRIBUTE22 => l_instance_rec.ATTRIBUTE22
21246 ,p_OLD_ATTRIBUTE23 => l_instance_rec.ATTRIBUTE23
21247 ,p_NEW_ATTRIBUTE23 => l_instance_rec.ATTRIBUTE23
21248 ,p_OLD_ATTRIBUTE24 => l_instance_rec.ATTRIBUTE24
21249 ,p_NEW_ATTRIBUTE24 => l_instance_rec.ATTRIBUTE24
21250 ,p_OLD_ATTRIBUTE25 => l_instance_rec.ATTRIBUTE25
21251 ,p_NEW_ATTRIBUTE25 => l_instance_rec.ATTRIBUTE25
21252 ,p_OLD_ATTRIBUTE26 => l_instance_rec.ATTRIBUTE26
21253 ,p_NEW_ATTRIBUTE26 => l_instance_rec.ATTRIBUTE26
21254 ,p_OLD_ATTRIBUTE27 => l_instance_rec.ATTRIBUTE27
21255 ,p_NEW_ATTRIBUTE27 => l_instance_rec.ATTRIBUTE27
21256 ,p_OLD_ATTRIBUTE28 => l_instance_rec.ATTRIBUTE28
21257 ,p_NEW_ATTRIBUTE28 => l_instance_rec.ATTRIBUTE28
21258 ,p_OLD_ATTRIBUTE29 => l_instance_rec.ATTRIBUTE29
21259 ,p_NEW_ATTRIBUTE29 => l_instance_rec.ATTRIBUTE29
21260 ,p_OLD_ATTRIBUTE30 => l_instance_rec.ATTRIBUTE30
21261 ,p_NEW_ATTRIBUTE30 => l_instance_rec.ATTRIBUTE30
21262 --end of parameters addition for eam integration--
21263 -- Addition of columns for FA Integration
21264 ,p_OLD_PAYABLES_UNIT_PRICE => l_instance_rec.PAYABLES_UNIT_PRICE
21265 ,p_NEW_PAYABLES_UNIT_PRICE => l_instance_rec.PAYABLES_UNIT_PRICE
21266 ,p_OLD_PAYABLES_CURRENCY_CODE => l_instance_rec.PAYABLES_CURRENCY_CODE
21267 ,p_NEW_PAYABLES_CURRENCY_CODE => l_instance_rec.PAYABLES_CURRENCY_CODE
21268 ,p_OLD_PURCHASE_UNIT_PRICE => l_instance_rec.PURCHASE_UNIT_PRICE
21269 ,p_NEW_PURCHASE_UNIT_PRICE => l_instance_rec.PURCHASE_UNIT_PRICE
21270 ,p_OLD_PURCHASE_CURRENCY_CODE => l_instance_rec.PURCHASE_CURRENCY_CODE
21271 ,p_NEW_PURCHASE_CURRENCY_CODE => l_instance_rec.PURCHASE_CURRENCY_CODE
21272 ,p_OLD_SALES_UNIT_PRICE => l_instance_rec.SALES_UNIT_PRICE
21273 ,p_NEW_SALES_UNIT_PRICE => l_instance_rec.SALES_UNIT_PRICE
21274 ,p_OLD_SALES_CURRENCY_CODE => l_instance_rec.SALES_CURRENCY_CODE
21275 ,p_NEW_SALES_CURRENCY_CODE => l_instance_rec.SALES_CURRENCY_CODE
21276 ,p_OLD_OPERATIONAL_STATUS_CODE => l_instance_rec.OPERATIONAL_STATUS_CODE
21277 ,p_NEW_OPERATIONAL_STATUS_CODE => l_instance_rec.OPERATIONAL_STATUS_CODE
21278 -- End addition of columns for FA Integration
21279 -- Begin Add Code for Siebel Genesis Project
21280 ,p_OLD_SOURCE_CODE => l_curr_instance_rec.SOURCE_CODE
21281 ,p_NEW_SOURCE_CODE => l_instance_rec.SOURCE_CODE
21282 -- End Add Code for Siebel Genesis Project
21283 );
21284
21285
21286 END IF;
21287 END; -- End for update row, bug 6788183
21288 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
21289 RAISE FND_API.G_EXC_ERROR;
21290
21291 END IF;
21292
21293 -- Calling eam API to log instance update event
21294 IF l_eam_item
21295 THEN
21296 IF l_ins_hist_id IS NOT NULL
21297 THEN
21298 l_instance_history_id:=l_ins_hist_id;
21299 ELSE
21300 l_instance_history_id:=l_csi_item_instance_h_id;
21301 END IF;
21302 eam_asset_log_pvt.instance_update_event
21303 (p_api_version => p_api_version
21304 ,p_init_msg_list => fnd_api.g_false
21305 ,p_commit => fnd_api.g_false
21306 ,p_validation_level => fnd_api.g_valid_level_full
21307 ,x_return_status => x_return_status
21308 ,x_msg_count => x_msg_count
21309 ,x_msg_data => x_msg_data
21310 ,p_instance_id => p_instance_rec.instance_id
21311 ,p_ref_id => l_instance_history_id
21312 ,p_event_date => sysdate);
21313 IF NOT(x_return_status = fnd_api.g_ret_sts_success)
21314 THEN
21315 csi_gen_utility_pvt.put_line('Error from eam_asset_log_pvt.instance_update_event API');
21316 RAISE fnd_api.g_exc_error;
21317 END IF;
21318 END IF;
21319 -- Calling eam API to log instance update event
21320
21321 -- srramakr Bug # 3945813 We no longer look for service_order_allowed_flag to decide
21322 -- whether contracts should be terminated or not. Instead, we look for terminated_flag.
21323 -- Before terminating the contract check whether the service_order_allowed_flag is set to 'N'
21324 -- for the instance_status passed. If set to 'Y' there will be no call to contracts.
21325 OPEN instance_csr (p_instance_rec.instance_id);
21326 FETCH instance_csr INTO l_instance_csr;
21327 CLOSE instance_csr;
21328
21329 IF csi_item_instance_vld_pvt.termination_status
21330 ( p_instance_status_id => l_instance_csr.instance_status_id )
21331 THEN
21332 IF p_txn_rec.transaction_type_id in (53,54) THEN
21333 l_oks_txn_type := 'RET';
21334 ELSE
21335 l_oks_txn_type := 'TRM';
21336 END IF;
21337 csi_item_instance_pvt.Call_to_Contracts
21338 ( p_transaction_type => l_oks_txn_type
21339 ,p_instance_id => p_instance_rec.instance_id
21340 ,p_new_instance_id => NULL
21341 ,p_vld_org_id => p_instance_rec.vld_organization_id
21342 ,p_quantity => NULL
21343 ,p_party_account_id1 => NULL
21344 ,p_party_account_id2 => NULL
21345 ,p_transaction_date => p_txn_rec.transaction_date -- l_temp_date
21346 ,p_source_transaction_date => p_txn_rec.source_transaction_date -- l_temp_date
21347 ,p_txn_type_id => p_txn_rec.transaction_type_id -- added for BUG 5752271
21348 ,p_grp_call_contracts => p_instance_rec.grp_call_contracts
21349 ,p_oks_txn_inst_tbl => p_oks_txn_inst_tbl
21350 ,x_return_status => x_return_status
21351 ,x_msg_count => x_msg_count
21352 ,x_msg_data => x_msg_data
21353 );
21354
21355 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
21356 l_msg_index := 1;
21357 l_msg_count := x_msg_count;
21358 WHILE l_msg_count > 0 LOOP
21359 x_msg_data := FND_MSG_PUB.GET
21360 ( l_msg_index,
21361 FND_API.G_FALSE
21362 );
21363 csi_gen_utility_pvt.put_line('MESSAGE DATA = '||x_msg_data);
21364 l_msg_index := l_msg_index + 1;
21365 l_msg_count := l_msg_count - 1;
21366 END LOOP;
21367 RAISE FND_API.G_EXC_ERROR;
21368 END IF;
21369 END IF;
21370
21371 --
21372 -- End of API body
21373
21374 -- Standard check of p_commit.
21375 IF FND_API.To_Boolean( p_commit ) THEN
21376 COMMIT WORK;
21377 END IF;
21378
21379 -- Standard call to get message count and if count is get message info.
21380 FND_MSG_PUB.Count_And_Get
21381 (p_count => x_msg_count ,
21382 p_data => x_msg_data
21383 );
21384
21385 EXCEPTION
21386
21387 WHEN FND_API.G_EXC_ERROR THEN
21388 ROLLBACK TO expire_item_instance_pvt;
21389 x_return_status := FND_API.G_RET_STS_ERROR ;
21390 FND_MSG_PUB.Count_And_Get
21391 (p_count => x_msg_count,
21392 p_data => x_msg_data
21393 );
21394
21395 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
21396 ROLLBACK TO expire_item_instance_pvt;
21397 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
21398 FND_MSG_PUB.Count_And_Get
21399 (p_count => x_msg_count,
21400 p_data => x_msg_data
21401 );
21402 WHEN OTHERS THEN
21403 ROLLBACK TO expire_item_instance_pvt;
21404 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
21405 IF FND_MSG_PUB.Check_Msg_Level
21406 (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
21407 THEN
21408 FND_MSG_PUB.Add_Exc_Msg
21409 ( G_PKG_NAME, l_api_name );
21410 END IF;
21411 FND_MSG_PUB.Count_And_Get
21412 ( p_count => x_msg_count,
21413 p_data => x_msg_data
21414 );
21415
21416 END expire_item_instance;
21417
21418 /*--------------------------------------------------------*/
21419 /* Procedure name: Split_Item_Instance */
21420 /* Description : This procedure is used to create split*/
21421 /* lines for instance */
21422 /*--------------------------------------------------------*/
21423
21424
21425 PROCEDURE Split_Item_Instance
21426 (
21427 p_api_version IN NUMBER
21428 ,p_commit IN VARCHAR2
21429 ,p_init_msg_list IN VARCHAR2
21430 ,p_validation_level IN NUMBER
21431 ,p_source_instance_rec IN OUT NOCOPY csi_datastructures_pub.instance_rec
21432 ,p_quantity1 IN NUMBER
21433 ,p_quantity2 IN NUMBER
21434 ,p_copy_ext_attribs IN VARCHAR2
21435 ,p_copy_org_assignments IN VARCHAR2
21436 ,p_copy_parties IN VARCHAR2
21437 -- ,p_copy_contacts IN VARCHAR2 := fnd_api.g_true
21438 ,p_copy_accounts IN VARCHAR2
21439 ,p_copy_asset_assignments IN VARCHAR2
21440 ,p_copy_pricing_attribs IN VARCHAR2
21441 ,p_txn_rec IN OUT NOCOPY csi_datastructures_pub.transaction_rec
21442 ,x_new_instance_rec OUT NOCOPY csi_datastructures_pub.instance_rec
21443 ,x_return_status OUT NOCOPY VARCHAR2
21444 ,x_msg_count OUT NOCOPY NUMBER
21445 ,x_msg_data OUT NOCOPY VARCHAR2
21446 )
21447
21448 IS
21449 l_api_name CONSTANT VARCHAR2(30) := 'SPLIT_ITEM_INSTANCE';
21450 l_api_version CONSTANT NUMBER := 1.0;
21451 l_debug_level NUMBER;
21452 l_serialized NUMBER;
21453 l_return_value BOOLEAN;
21454 l_object_version_number NUMBER;
21455 l_quantity NUMBER;
21456 l_instance_id_lst csi_datastructures_pub.id_tbl;
21457 l_new_instance_rec csi_datastructures_pub.instance_rec;
21458 l_new_instance_tbl csi_datastructures_pub.instance_tbl;
21459 l_msg_data VARCHAR2(2000);
21460 l_msg_index NUMBER;
21461 l_msg_count NUMBER;
21462 x_msg_index_out NUMBER;
21463 l_old_oks_cp_rec oks_ibint_pub.cp_rec_type;
21464 l_new_oks_cp_rec oks_ibint_pub.cp_rec_type;
21465 l_transaction_type VARCHAR2(10);
21466 l_source_instance_rec csi_datastructures_pub.instance_rec := p_source_instance_rec;
21467 l_contracts_status VARCHAR2(3);
21468 l_new_instance_rec1 csi_datastructures_pub.instance_rec;
21469 l_internal_party_id NUMBER;
21470 l_item_attribute_tbl csi_item_instance_pvt.item_attribute_tbl;
21471 l_location_tbl csi_item_instance_pvt.location_tbl;
21472 l_generic_id_tbl csi_item_instance_pvt.generic_id_tbl;
21473 l_lookup_tbl csi_item_instance_pvt.lookup_tbl;
21474 l_ins_count_rec csi_item_instance_pvt.ins_count_rec;
21475 l_relationship_tbl csi_datastructures_pub.ii_relationship_tbl;
21476 --
21477 px_oks_txn_inst_tbl oks_ibint_pub.txn_instance_tbl;
21478 px_child_inst_tbl csi_item_instance_grp.child_inst_tbl;
21479 l_batch_type VARCHAR2(50);
21480 l_batch_id NUMBER;
21481 --
21482 CURSOR c1 is
21483 SELECT serial_number_control_code
21484 FROM mtl_system_items
21485 WHERE inventory_item_id = p_source_instance_rec.inventory_item_id
21486 AND organization_id = p_source_instance_rec.vld_organization_id
21487 AND enabled_flag = 'Y'
21488 AND nvl (start_date_active, sysdate) <= sysdate
21489 AND nvl (end_date_active, sysdate+1) > sysdate;
21490
21491 l_account_id NUMBER;
21492 l_dummy NUMBER;
21493 BEGIN
21494 -- Standard Start of API savepoint
21495 SAVEPOINT split_item_instance_pvt;
21496
21497 -- Standard call to check for call compatibility.
21498 IF NOT FND_API.Compatible_API_Call (l_api_version,
21499 p_api_version,
21500 l_api_name,
21501 G_PKG_NAME )
21502 THEN
21503 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
21504 END IF;
21505
21506 -- Initialize message list if p_init_msg_list is set to TRUE.
21507 IF FND_API.to_Boolean( p_init_msg_list ) THEN
21508 FND_MSG_PUB.initialize;
21509 END IF;
21510
21511 -- Initialize API return status to success
21512 x_return_status := FND_API.G_RET_STS_SUCCESS;
21513
21514 -- Check the profile option debug_level for debug message reporting
21515 l_debug_level:=fnd_profile.value('CSI_DEBUG_LEVEL');
21516
21517 -- If debug_level = 1 then dump the procedure name
21518 IF (l_debug_level > 0) THEN
21519 csi_gen_utility_pvt.put_line ( 'split_item_instance_pvt');
21520 END IF;
21521
21522 -- If the debug level = 2 then dump all the parameters values.
21523 IF (l_debug_level > 1) THEN
21524 csi_gen_utility_pvt.put_line ('split_item_instance_pvt' ||
21525 p_api_version ||'-'||
21526 p_commit ||'-'||
21527 p_init_msg_list );
21528 -- Dump the records in the log file
21529 csi_gen_utility_pvt.dump_instance_rec(p_source_instance_rec);
21530 csi_gen_utility_pvt.dump_txn_rec(p_txn_rec);
21531 END IF;
21532
21533 -- Start API body
21534
21535 --check for the required parameters
21536 CSI_Item_Instance_vld_pvt.Check_Reqd_Param_Num
21537 ( p_source_instance_rec.INSTANCE_ID ,
21538 ' p_source_instance_rec.INSTANCE_ID ',
21539 l_api_name
21540 );
21541 --validation for serialized or not
21542
21543 IF p_source_instance_rec.location_type_code = 'INVENTORY'
21544 OR p_source_instance_rec.location_type_code = 'WIP'
21545 OR p_source_instance_rec.location_type_code = 'PROJECT'
21546 THEN
21547 FND_MESSAGE.SET_NAME('CSI','CSI_CANNOT_SPLIT');
21548 FND_MSG_PUB.ADD;
21549 RAISE FND_API.G_EXC_ERROR;
21550 END IF;
21551
21552 BEGIN
21553 SELECT 1
21554 INTO l_dummy
21555 FROM csi_i_assets
21556 WHERE instance_id =p_source_instance_rec.instance_id;
21557
21558 FND_MESSAGE.SET_NAME('CSI','CSI_CANNOT_SPLIT');
21559 FND_MSG_PUB.ADD;
21560 RAISE FND_API.G_EXC_ERROR;
21561 EXCEPTION
21562 WHEN OTHERS THEN
21563 NULL;
21564 END;
21565
21566
21567 OPEN C1;
21568 FETCH C1 into l_serialized;
21569 IF c1%FOUND THEN
21570 -- IF nvl(l_serialized,0) IN (2,5,6) then
21571 IF csi_Item_Instance_Vld_pvt.Is_treated_serialized
21572 ( p_serial_control_code => l_serialized
21573 ,p_location_type_code => p_source_instance_rec.location_type_code
21574 ,p_transaction_type_id => p_txn_rec.transaction_type_id
21575 ) -- Added by sk on 09/13/01
21576 THEN
21577 l_return_value := FALSE;
21578 FND_MESSAGE.SET_NAME('CSI','CSI_API_CANNOT_BE_SERIALIZED');
21579 FND_MESSAGE.SET_TOKEN('SERIAL_NUMBER', 'serial_number');
21580 FND_MSG_PUB.ADD;
21581 RAISE FND_API.G_EXC_ERROR;
21582 END IF;
21583 END IF;
21584 CLOSE C1;
21585
21586 --get the quantity from the csi_item_instances for the instance_id passed
21587
21588 BEGIN
21589 SELECT quantity
21590 INTO l_quantity
21591 FROM csi_item_instances
21592 WHERE instance_id = p_source_instance_rec.instance_id;
21593 EXCEPTION
21594 WHEN NO_DATA_FOUND THEN
21595 FND_MESSAGE.SET_NAME('CSI','CSI_API_INVALID_QUANITY');
21596 FND_MSG_PUB.Add;
21597 RAISE FND_API.G_EXC_ERROR;
21598 END;
21599
21600 --verifying the quantity
21601 IF (p_quantity1 + p_quantity2) <> l_quantity THEN
21602 FND_MESSAGE.SET_NAME('CSI','CSI_API_INCORRECT_QUANTITY');
21603 FND_MSG_PUB.Add;
21604 RAISE FND_API.G_EXC_ERROR;
21605 END IF;
21606
21607 -- Added by sk for bug 2186683
21608 IF p_source_instance_rec.vld_organization_id IS NULL OR
21609 p_source_instance_rec.vld_organization_id = fnd_api.g_miss_num
21610 THEN
21611 BEGIN
21612 SELECT last_vld_organization_id
21613 INTO p_source_instance_rec.vld_organization_id
21614 FROM csi_item_instances
21615 WHERE instance_id = p_source_instance_rec.instance_id;
21616 EXCEPTION
21617 WHEN OTHERS THEN
21618 NULL;
21619 END;
21620 END IF;
21621 -- End addition by sk for bug 2186683
21622 --if the passed quantities and the quantity in the table are same then
21623 p_source_instance_rec.quantity := p_quantity2;
21624 --call the copy instance api to create a new record with 'p_quantity2')
21625
21626 csi_item_instance_pvt.copy_item_instance
21627 ( p_api_version => p_api_version
21628 ,p_commit => fnd_api.g_false
21629 ,p_init_msg_list => p_init_msg_list
21630 ,p_validation_level => p_validation_level
21631 ,p_source_instance_rec => p_source_instance_rec
21632 ,p_copy_ext_attribs => p_copy_ext_attribs
21633 ,p_copy_org_assignments => p_copy_org_assignments
21634 ,p_copy_parties => p_copy_parties
21635 ,p_copy_contacts => fnd_api.g_true
21636 ,p_copy_accounts => p_copy_accounts
21637 ,p_copy_asset_assignments => p_copy_asset_assignments
21638 ,p_copy_pricing_attribs => p_copy_pricing_attribs
21639 ,p_copy_inst_children => fnd_api.g_true
21640 ,p_call_from_split => fnd_api.g_true
21641 ,p_txn_rec => p_txn_rec
21642 ,x_new_instance_tbl => l_new_instance_tbl
21643 ,x_return_status => x_return_status
21644 ,x_msg_count => x_msg_count
21645 ,x_msg_data => x_msg_data
21646 );
21647
21648 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
21649 FOR i in 1..x_msg_Count LOOP
21650 FND_MSG_PUB.Get(p_msg_index => i,
21651 p_encoded => 'F',
21652 p_data => x_msg_data,
21653 p_msg_index_out => x_msg_index_out );
21654
21655 End LOOP;
21656 RAISE fnd_api.g_exc_error;
21657 END IF;
21658
21659 IF (l_new_instance_tbl.count <> 1) THEN
21660 -- If the number records in the PL/SQL table is more than 1 OR
21661 -- not equal to 1 than raise error
21662 RAISE fnd_api.g_exc_error;
21663 ELSE
21664 x_new_instance_rec := l_new_instance_tbl(1);
21665 END IF;
21666
21667 -- Start addition for bug 2823122
21668 IF l_new_instance_tbl(1).instance_usage_code='IN_RELATIONSHIP'
21669 THEN
21670 IF l_relationship_tbl.COUNT=0
21671 THEN
21672 BEGIN
21673 SELECT object_id
21674 ,relationship_type_code
21675 ,mandatory_flag
21676 ,context
21677 ,sysdate
21678 ,active_end_date
21679 ,position_reference
21680 ,display_order
21681 ,attribute1
21682 ,attribute2
21683 ,attribute3
21684 ,attribute4
21685 ,attribute5
21686 ,attribute6
21687 ,attribute7
21688 ,attribute8
21689 ,attribute9
21690 ,attribute10
21691 ,attribute11
21692 ,attribute12
21693 ,attribute13
21694 ,attribute14
21695 ,attribute15
21696 INTO l_relationship_tbl(1).object_id
21697 ,l_relationship_tbl(1).relationship_type_code
21698 ,l_relationship_tbl(1).mandatory_flag
21699 ,l_relationship_tbl(1).context
21700 ,l_relationship_tbl(1).active_start_date
21701 ,l_relationship_tbl(1).active_end_date
21702 ,l_relationship_tbl(1).position_reference
21703 ,l_relationship_tbl(1).display_order
21704 ,l_relationship_tbl(1).attribute1
21705 ,l_relationship_tbl(1).attribute2
21706 ,l_relationship_tbl(1).attribute3
21707 ,l_relationship_tbl(1).attribute4
21708 ,l_relationship_tbl(1).attribute5
21709 ,l_relationship_tbl(1).attribute6
21710 ,l_relationship_tbl(1).attribute7
21711 ,l_relationship_tbl(1).attribute8
21712 ,l_relationship_tbl(1).attribute9
21713 ,l_relationship_tbl(1).attribute10
21714 ,l_relationship_tbl(1).attribute11
21715 ,l_relationship_tbl(1).attribute12
21716 ,l_relationship_tbl(1).attribute13
21717 ,l_relationship_tbl(1).attribute14
21718 ,l_relationship_tbl(1).attribute15
21719 FROM csi_ii_relationships
21720 WHERE subject_id=p_source_instance_rec.instance_id
21721 AND relationship_type_code='COMPONENT-OF'
21722 AND (SYSDATE BETWEEN NVL(active_start_date, SYSDATE) AND NVL(active_end_date, SYSDATE));
21723 EXCEPTION
21724 WHEN OTHERS THEN
21725 NULL;
21726 END;
21727 END IF;
21728
21729 IF l_relationship_tbl(1).object_id IS NOT NULL
21730 AND l_relationship_tbl(1).object_id<>fnd_api.g_miss_num
21731 THEN
21732 l_relationship_tbl(1).subject_id:=l_new_instance_tbl(1).instance_id;
21733 csi_ii_relationships_pub.create_relationship(
21734 p_api_version => 1.0,
21735 p_commit => fnd_api.g_false,
21736 p_init_msg_list => fnd_api.g_true,
21737 p_validation_level => fnd_api.g_valid_level_full,
21738 p_relationship_tbl => l_relationship_tbl,
21739 p_txn_rec => p_txn_rec,
21740 x_return_status => x_return_status,
21741 x_msg_count => x_msg_count,
21742 x_msg_data => x_msg_data);
21743 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
21744 FOR i in 1..x_msg_Count LOOP
21745 FND_MSG_PUB.Get(p_msg_index => i,
21746 p_encoded => 'F',
21747 p_data => x_msg_data,
21748 p_msg_index_out => x_msg_index_out );
21749 END LOOP;
21750 RAISE fnd_api.g_exc_error;
21751 END IF;
21752 END IF;
21753 END IF;
21754 -- End addition for bug 2823122
21755 --update the existing record with 'p_quantity1')
21756 BEGIN
21757 SELECT object_version_number
21758 INTO l_object_version_number
21759 FROM csi_item_instances
21760 WHERE instance_id = p_source_instance_rec.instance_id;
21761 EXCEPTION
21762 WHEN NO_DATA_FOUND THEN
21763 FND_MESSAGE.SET_NAME('CSI','CSI_API_INVALID_OBJ_NUM');
21764 FND_MSG_PUB.ADD;
21765 RAISE FND_API.G_EXC_ERROR;
21766 END;
21767 l_new_instance_rec.instance_id := p_source_instance_rec.instance_id;
21768 l_new_instance_rec.quantity := p_quantity1;
21769 l_new_instance_rec.object_version_number := l_object_version_number;
21770 l_new_instance_rec.vld_organization_id := p_source_instance_rec.vld_organization_id;
21771 l_new_instance_rec.active_end_date := p_source_instance_rec.active_end_date; -- bug 3704480
21772 l_new_instance_rec.instance_status_id := p_source_instance_rec.instance_status_id; -- bug 3704480
21773 --call the update api
21774
21775 update_item_instance
21776 (
21777 p_api_version => p_api_version
21778 ,p_commit => fnd_api.g_false
21779 ,p_init_msg_list => p_init_msg_list
21780 ,p_validation_level => p_validation_level
21781 ,p_instance_rec => l_new_instance_rec
21782 ,p_txn_rec => p_txn_rec
21783 ,x_instance_id_lst => l_instance_id_lst
21784 ,x_return_status => x_return_status
21785 ,x_msg_count => x_msg_count
21786 ,x_msg_data => x_msg_data
21787 ,p_item_attribute_tbl => l_item_attribute_tbl
21788 ,p_location_tbl => l_location_tbl
21789 ,p_generic_id_tbl => l_generic_id_tbl
21790 ,p_lookup_tbl => l_lookup_tbl
21791 ,p_ins_count_rec => l_ins_count_rec
21792 ,p_oks_txn_inst_tbl => px_oks_txn_inst_tbl
21793 ,p_child_inst_tbl => px_child_inst_tbl
21794 );
21795
21796 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
21797 FOR i in 1..x_msg_Count LOOP
21798 FND_MSG_PUB.Get(p_msg_index => i,
21799 p_encoded => 'F',
21800 p_data => x_msg_data,
21801 p_msg_index_out => x_msg_index_out );
21802 End LOOP;
21803 RAISE fnd_api.g_exc_error;
21804 END IF;
21805 -- Calling Contracts
21806 -- Added on 28-sep-01
21807 -- Modification starts
21808 --
21809 l_transaction_type := 'SPL';
21810 csi_item_instance_pvt.Call_to_Contracts
21811 ( p_transaction_type => l_transaction_type
21812 ,p_instance_id => p_source_instance_rec.instance_id
21813 ,p_new_instance_id => l_new_instance_tbl(1).instance_id
21814 ,p_vld_org_id => p_source_instance_rec.vld_organization_id
21815 ,p_quantity => p_quantity1 -- modified for bug 2103144
21816 ,p_party_account_id1 => NULL
21817 ,p_party_account_id2 => NULL
21818 ,p_transaction_date => p_txn_rec.transaction_date -- For 3483763
21819 ,p_source_transaction_date => p_txn_rec.source_transaction_date -- For 3483763
21820 ,p_txn_type_id => p_txn_rec.transaction_type_id -- added for BUG 5752271
21821 ,p_oks_txn_inst_tbl => px_oks_txn_inst_tbl
21822 ,x_return_status => x_return_status
21823 ,x_msg_count => x_msg_count
21824 ,x_msg_data => x_msg_data
21825 );
21826 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
21827 RAISE FND_API.G_EXC_ERROR;
21828 END IF;
21829 --
21830 IF px_oks_txn_inst_tbl.count > 0 THEN
21831 csi_gen_utility_pvt.dump_oks_txn_inst_tbl(px_oks_txn_inst_tbl);
21832 csi_gen_utility_pvt.put_line('Calling OKS Core API...');
21833 --
21834 IF p_txn_rec.transaction_type_id = 3 THEN
21835 l_batch_id := p_txn_rec.source_header_ref_id;
21836 l_batch_type := p_txn_rec.source_group_ref;
21837 ELSE
21838 l_batch_id := NULL;
21839 l_batch_type := NULL;
21840 END IF;
21841 --
21842 UPDATE CSI_TRANSACTIONS
21843 set contracts_invoked = 'Y'
21844 where transaction_id = p_txn_rec.transaction_id;
21845 --
21846 OKS_IBINT_PUB.IB_interface
21847 (
21848 P_Api_Version => 1.0,
21849 P_init_msg_list => p_init_msg_list,
21850 P_single_txn_date_flag => 'Y',
21851 P_Batch_type => l_batch_type,
21852 P_Batch_ID => l_batch_id,
21853 P_OKS_Txn_Inst_tbl => px_oks_txn_inst_tbl,
21854 x_return_status => x_return_status,
21855 x_msg_count => x_msg_count,
21856 x_msg_data => x_msg_data
21857 );
21858 --
21859 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
21860 l_msg_index := 1;
21861 l_msg_count := x_msg_count;
21862 WHILE l_msg_count > 0 LOOP
21863 x_msg_data := FND_MSG_PUB.GET
21864 ( l_msg_index,
21865 FND_API.G_FALSE );
21866 csi_gen_utility_pvt.put_line( 'Error from OKS_IBINT_PUB.IB_interface..');
21867 csi_gen_utility_pvt.put_line('MESSAGE DATA = '||x_msg_data);
21868 l_msg_index := l_msg_index + 1;
21869 l_msg_count := l_msg_count - 1;
21870 END LOOP;
21871 RAISE FND_API.G_EXC_ERROR;
21872 END IF;
21873 END IF;
21874 -- Modification ends
21875 -- End Calling Contracts.
21876 -- End of API body
21877
21878 -- Standard check of p_commit.
21879 IF FND_API.To_Boolean( p_commit ) THEN
21880 COMMIT WORK;
21881 END IF;
21882
21883 -- End disable trace
21884
21885 -- Standard call to get message count and IF count is get message info.
21886 FND_MSG_PUB.Count_And_Get
21887 (p_count => x_msg_count ,
21888 p_data => x_msg_data
21889 );
21890
21891 EXCEPTION
21892
21893 WHEN FND_API.G_EXC_ERROR THEN
21894 ROLLBACK TO split_item_instance_pvt;
21895 x_return_status := FND_API.G_RET_STS_ERROR ;
21896 FND_MSG_PUB.Count_And_Get
21897 ( p_count => x_msg_count,
21898 p_data => x_msg_data
21899 );
21900 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
21901 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
21902 ROLLBACK TO split_item_instance_pvt;
21903 FND_MSG_PUB.Count_And_Get
21904 ( p_count => x_msg_count,
21905 p_data => x_msg_data
21906 );
21907 WHEN OTHERS THEN
21908 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
21909 ROLLBACK TO split_item_instance_pvt;
21910 IF FND_MSG_PUB.Check_Msg_Level
21911 (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
21912 THEN
21913 FND_MSG_PUB.Add_Exc_Msg
21914 ( G_PKG_NAME ,
21915 l_api_name
21916 );
21917 END IF;
21918 FND_MSG_PUB.Count_And_Get
21919 ( p_count => x_msg_count,
21920 p_data => x_msg_data
21921 );
21922
21923 END Split_Item_Instance;
21924
21925 /*---------------------------------------------------*/
21926 /* Procedure name: Split_Item_Instance_lines */
21927 /* Description : This procedure is used to create */
21928 /* split lines for instance */
21929 /*---------------------------------------------------*/
21930 PROCEDURE Split_Item_Instance_Lines
21931 (
21932 p_api_version IN NUMBER
21933 ,p_commit IN VARCHAR2
21934 ,p_init_msg_list IN VARCHAR2
21935 ,p_validation_level IN NUMBER
21936 ,p_source_instance_rec IN OUT NOCOPY csi_datastructures_pub.instance_rec
21937 ,p_copy_ext_attribs IN VARCHAR2
21938 ,p_copy_org_assignments IN VARCHAR2
21939 ,p_copy_parties IN VARCHAR2
21940 -- ,p_copy_contacts IN VARCHAR2 := fnd_api.g_true
21941 ,p_copy_accounts IN VARCHAR2
21942 ,p_copy_asset_assignments IN VARCHAR2
21943 ,p_copy_pricing_attribs IN VARCHAR2
21944 ,p_txn_rec IN OUT NOCOPY csi_datastructures_pub.transaction_rec
21945 ,x_new_instance_tbl OUT NOCOPY csi_datastructures_pub.instance_tbl
21946 ,x_return_status OUT NOCOPY VARCHAR2
21947 ,x_msg_count OUT NOCOPY NUMBER
21948 ,x_msg_data OUT NOCOPY VARCHAR2
21949 )
21950 IS
21951 CURSOR c1 is
21952 SELECT serial_number_control_code
21953 FROM mtl_system_items
21954 WHERE inventory_item_id = p_source_instance_rec.inventory_item_id
21955 AND organization_id = p_source_instance_rec.vld_organization_id
21956 AND nvl(comms_nl_trackable_flag, 'N') = 'Y'
21957 AND enabled_flag = 'Y'
21958 AND nvl (start_date_active, sysdate) <= sysdate
21959 AND nvl (end_date_active, sysdate+1) > sysdate;
21960
21961 l_api_name CONSTANT VARCHAR2(30) := 'SPLIT_ITEM_INSTANCE_LINES';
21962 l_api_version CONSTANT NUMBER := 1.0;
21963 l_debug_level NUMBER;
21964 l_serialized NUMBER;
21965 l_return_value BOOLEAN;
21966 l_object_version_number NUMBER;
21967 l_quantity NUMBER;
21968 l_instance_id_lst csi_datastructures_pub.id_tbl;
21969 l_new_instance_rec csi_datastructures_pub.instance_rec;
21970 l_new_instance_tbl csi_datastructures_pub.instance_tbl;
21971 l_count NUMBER;
21972 l_msg_data VARCHAR2(2000);
21973 l_msg_index NUMBER;
21974 l_msg_count NUMBER;
21975 x_msg_index_out NUMBER;
21976 l_dummy NUMBER;
21977 l_temp_qty NUMBER;
21978 l_old_qty NUMBER;
21979 l_item_attribute_tbl csi_item_instance_pvt.item_attribute_tbl;
21980 l_location_tbl csi_item_instance_pvt.location_tbl;
21981 l_generic_id_tbl csi_item_instance_pvt.generic_id_tbl;
21982 l_lookup_tbl csi_item_instance_pvt.lookup_tbl;
21983 l_ins_count_rec csi_item_instance_pvt.ins_count_rec;
21984 l_relationship_tbl csi_datastructures_pub.ii_relationship_tbl;
21985 --
21986 px_oks_txn_inst_tbl oks_ibint_pub.txn_instance_tbl;
21987 px_child_inst_tbl csi_item_instance_grp.child_inst_tbl;
21988 l_batch_type VARCHAR2(50);
21989 l_batch_id NUMBER;
21990 --
21991 BEGIN
21992
21993 -- Standard Start of API savepoint
21994 SAVEPOINT split_item_instance_lines_pvt;
21995
21996 -- Standard call to check for call compatibility.
21997 IF NOT FND_API.Compatible_API_Call (l_api_version,
21998 p_api_version,
21999 l_api_name,
22000 G_PKG_NAME )
22001 THEN
22002 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
22003 END IF;
22004
22005 -- Initialize message list if p_init_msg_list is set to TRUE.
22006 IF FND_API.to_Boolean( p_init_msg_list ) THEN
22007 FND_MSG_PUB.initialize;
22008 END IF;
22009
22010 -- Initialize API return status to success
22011 x_return_status := FND_API.G_RET_STS_SUCCESS;
22012
22013 -- Check the profile option debug_level for debug message reporting
22014 l_debug_level:=fnd_profile.value('CSI_DEBUG_LEVEL');
22015
22016 -- If debug_level = 1 then dump the procedure name
22017 IF (l_debug_level > 0) THEN
22018 csi_gen_utility_pvt.put_line ( 'split_item_instance_lines_pvt');
22019 END IF;
22020
22021 -- If the debug level = 2 then dump all the parameters values.
22022 IF (l_debug_level > 1) THEN
22023 csi_gen_utility_pvt.put_line ('split_item_instance_lines_pvt' ||
22024 p_api_version ||'-'||
22025 p_commit ||'-'||
22026 p_init_msg_list );
22027 -- Dump the records in the log file
22028 csi_gen_utility_pvt.dump_instance_rec(p_source_instance_rec);
22029 csi_gen_utility_pvt.dump_txn_rec(p_txn_rec);
22030 END IF;
22031
22032 -- Start API body
22033
22034 --check for the required parameters
22035 CSI_Item_Instance_vld_pvt.Check_Reqd_Param_Num
22036 ( p_source_instance_rec.INSTANCE_ID ,
22037 ' p_source_instance_rec.INSTANCE_ID ',
22038 l_api_name
22039 );
22040 --validation for serialized or not
22041
22042 IF p_source_instance_rec.location_type_code = 'INVENTORY'
22043 OR p_source_instance_rec.location_type_code = 'WIP'
22044 OR p_source_instance_rec.location_type_code = 'PROJECT'
22045 THEN
22046 FND_MESSAGE.SET_NAME('CSI','CSI_CANNOT_SPLIT');
22047 FND_MSG_PUB.ADD;
22048 RAISE FND_API.G_EXC_ERROR;
22049 END IF;
22050
22051 BEGIN
22052 SELECT 1
22053 INTO l_dummy
22054 FROM csi_i_assets
22055 WHERE instance_id =p_source_instance_rec.instance_id;
22056
22057 FND_MESSAGE.SET_NAME('CSI','CSI_CANNOT_SPLIT');
22058 FND_MSG_PUB.ADD;
22059 RAISE FND_API.G_EXC_ERROR;
22060 EXCEPTION
22061 WHEN OTHERS THEN
22062 NULL;
22063 END;
22064
22065 OPEN C1;
22066 FETCH C1 into l_serialized;
22067 IF C1%FOUND THEN
22068 -- IF nvl(l_serialized,0) IN (2,5,6) then
22069 IF csi_Item_Instance_Vld_pvt.Is_treated_serialized
22070 ( p_serial_control_code => l_serialized
22071 ,p_location_type_code => p_source_instance_rec.location_type_code
22072 ,p_transaction_type_id => p_txn_rec.transaction_type_id
22073 ) -- Added by sk on 09/13/01
22074 THEN
22075 l_return_value := FALSE;
22076 FND_MESSAGE.SET_NAME('CSI','CSI_API_CANNOT_BE_SERIALIZED');
22077 FND_MESSAGE.SET_TOKEN('SERIAL_NUMBER', 'serial_number');
22078 FND_MSG_PUB.ADD;
22079 RAISE FND_API.G_EXC_ERROR;
22080 END IF;
22081 END IF;
22082 CLOSE C1;
22083
22084 --get the quantity from the csi_item_instances for the instance_id passed
22085 BEGIN
22086 SELECT quantity
22087 INTO l_quantity
22088 FROM csi_item_instances
22089 WHERE instance_id = p_source_instance_rec.instance_id;
22090 EXCEPTION
22091 WHEN NO_DATA_FOUND THEN
22092 FND_MESSAGE.SET_NAME('CSI','CSI_API_INVALID_QUANITY');
22093 FND_MSG_PUB.Add;
22094 RAISE FND_API.G_EXC_ERROR;
22095 END;
22096 -- Added by sk for bug 2186683
22097 IF p_source_instance_rec.vld_organization_id IS NULL OR
22098 p_source_instance_rec.vld_organization_id = fnd_api.g_miss_num
22099 THEN
22100 BEGIN
22101 SELECT last_vld_organization_id
22102 INTO p_source_instance_rec.vld_organization_id
22103 FROM csi_item_instances
22104 WHERE instance_id = p_source_instance_rec.instance_id;
22105 EXCEPTION
22106 WHEN OTHERS THEN
22107 NULL;
22108 END;
22109 END IF;
22110 -- End addition by sk for bug 2186683
22111 l_temp_qty:=0;
22112 IF l_quantity > 1 THEN
22113 FOR i in 1..(l_quantity - 1) LOOP
22114
22115 l_temp_qty :=l_temp_qty+1;
22116 l_old_qty :=l_quantity-l_temp_qty; -- This will be our split old quantity.
22117 p_source_instance_rec.quantity := 1;
22118 l_new_instance_tbl.delete;
22119 --call the copy instance api to create a new record with 'p_quantity2')
22120 csi_item_instance_pvt.copy_item_instance
22121 (
22122 p_api_version => p_api_version
22123 ,p_commit => fnd_api.g_false
22124 ,p_init_msg_list => p_init_msg_list
22125 ,p_validation_level => p_validation_level
22126 ,p_source_instance_rec => p_source_instance_rec
22127 ,p_copy_ext_attribs => p_copy_ext_attribs
22128 ,p_copy_org_assignments => p_copy_org_assignments
22129 ,p_copy_parties => p_copy_parties
22130 ,p_copy_contacts => fnd_api.g_true
22131 ,p_copy_accounts => p_copy_accounts
22132 ,p_copy_asset_assignments => p_copy_asset_assignments
22133 ,p_copy_pricing_attribs => p_copy_pricing_attribs
22134 ,p_copy_inst_children => fnd_api.g_true
22135 ,p_call_from_split => fnd_api.g_true
22136 ,p_txn_rec => p_txn_rec
22137 ,x_new_instance_tbl => l_new_instance_tbl
22138 ,x_return_status => x_return_status
22139 ,x_msg_count => x_msg_count
22140 ,x_msg_data => x_msg_data
22141 );
22142
22143 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
22144 -- x_error_message := 'copy_item_instance failed ' ;
22145 FOR i in 1..x_msg_Count LOOP
22146 FND_MSG_PUB.Get(p_msg_index => i,
22147 p_encoded => 'F',
22148 p_data => x_msg_data,
22149 p_msg_index_out => x_msg_index_out );
22150 End LOOP;
22151 RAISE fnd_api.g_exc_error;
22152 END IF;
22153 -- Start addition for bug 2823122
22154 IF l_new_instance_tbl(1).instance_usage_code='IN_RELATIONSHIP'
22155 THEN
22156 IF l_relationship_tbl.COUNT=0
22157 THEN
22158 BEGIN
22159 SELECT object_id
22160 ,relationship_type_code
22161 ,mandatory_flag
22162 ,context
22163 ,sysdate
22164 ,active_end_date
22165 ,position_reference
22166 ,display_order
22167 ,attribute1
22168 ,attribute2
22169 ,attribute3
22170 ,attribute4
22171 ,attribute5
22172 ,attribute6
22173 ,attribute7
22174 ,attribute8
22175 ,attribute9
22176 ,attribute10
22177 ,attribute11
22178 ,attribute12
22179 ,attribute13
22180 ,attribute14
22181 ,attribute15
22182 INTO l_relationship_tbl(1).object_id
22183 ,l_relationship_tbl(1).relationship_type_code
22184 ,l_relationship_tbl(1).mandatory_flag
22185 ,l_relationship_tbl(1).context
22186 ,l_relationship_tbl(1).active_start_date
22187 ,l_relationship_tbl(1).active_end_date
22188 ,l_relationship_tbl(1).position_reference
22189 ,l_relationship_tbl(1).display_order
22190 ,l_relationship_tbl(1).attribute1
22191 ,l_relationship_tbl(1).attribute2
22192 ,l_relationship_tbl(1).attribute3
22193 ,l_relationship_tbl(1).attribute4
22194 ,l_relationship_tbl(1).attribute5
22195 ,l_relationship_tbl(1).attribute6
22196 ,l_relationship_tbl(1).attribute7
22197 ,l_relationship_tbl(1).attribute8
22198 ,l_relationship_tbl(1).attribute9
22199 ,l_relationship_tbl(1).attribute10
22200 ,l_relationship_tbl(1).attribute11
22201 ,l_relationship_tbl(1).attribute12
22202 ,l_relationship_tbl(1).attribute13
22203 ,l_relationship_tbl(1).attribute14
22204 ,l_relationship_tbl(1).attribute15
22205 FROM csi_ii_relationships
22206 WHERE subject_id=p_source_instance_rec.instance_id
22207 AND relationship_type_code='COMPONENT-OF'
22208 AND (SYSDATE BETWEEN NVL(active_start_date, SYSDATE) AND NVL(active_end_date, SYSDATE));
22209 EXCEPTION
22210 WHEN OTHERS THEN
22211 NULL;
22212 END;
22213 END IF;
22214
22215 IF l_relationship_tbl(1).object_id IS NOT NULL
22216 AND l_relationship_tbl(1).object_id<>fnd_api.g_miss_num
22217 THEN
22218 l_relationship_tbl(1).relationship_id:=fnd_api.g_miss_num;
22219 l_relationship_tbl(1).subject_id:=l_new_instance_tbl(1).instance_id;
22220 csi_ii_relationships_pub.create_relationship(
22221 p_api_version => 1.0,
22222 p_commit => fnd_api.g_false,
22223 p_init_msg_list => fnd_api.g_true,
22224 p_validation_level => fnd_api.g_valid_level_full,
22225 p_relationship_tbl => l_relationship_tbl,
22226 p_txn_rec => p_txn_rec,
22227 x_return_status => x_return_status,
22228 x_msg_count => x_msg_count,
22229 x_msg_data => x_msg_data);
22230 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
22231 FOR i in 1..x_msg_Count LOOP
22232 FND_MSG_PUB.Get(p_msg_index => i,
22233 p_encoded => 'F',
22234 p_data => x_msg_data,
22235 p_msg_index_out => x_msg_index_out );
22236 END LOOP;
22237 RAISE fnd_api.g_exc_error;
22238 END IF;
22239 END IF;
22240 END IF;
22241 -- End addition for bug 2823122
22242 x_new_instance_tbl(i) := l_new_instance_tbl(1);
22243
22244 -- Following code is added for fixing bug 2139782.
22245 BEGIN
22246 -- For each of the record contracts call will be made and px_oks_txn_inst_tbl will be refreshed
22247 px_oks_txn_inst_tbl.DELETE;
22248 --
22249 csi_item_instance_pvt.call_to_contracts
22250 ( p_transaction_type => 'SPL'
22251 ,p_instance_id => p_source_instance_rec.instance_id
22252 ,p_new_instance_id => l_new_instance_tbl(1).instance_id
22253 ,p_vld_org_id => p_source_instance_rec.vld_organization_id
22254 ,p_quantity => l_old_qty
22255 ,p_party_account_id1 => NULL
22256 ,p_party_account_id2 => NULL
22257 ,p_transaction_date => p_txn_rec.transaction_date -- For 3483763
22258 ,p_source_transaction_date => p_txn_rec.source_transaction_date -- For 3483763
22259 ,p_txn_type_id => p_txn_rec.transaction_type_id -- added for BUG 5752271
22260 ,p_oks_txn_inst_tbl => px_oks_txn_inst_tbl
22261 ,x_return_status => x_return_status
22262 ,x_msg_count => x_msg_count
22263 ,x_msg_data => x_msg_data
22264 );
22265
22266 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
22267 RAISE FND_API.G_EXC_ERROR;
22268 END IF;
22269 --
22270 IF px_oks_txn_inst_tbl.count > 0 THEN
22271 csi_gen_utility_pvt.dump_oks_txn_inst_tbl(px_oks_txn_inst_tbl);
22272 csi_gen_utility_pvt.put_line('Calling OKS Core API...');
22273 --
22274 IF p_txn_rec.transaction_type_id = 3 THEN
22275 l_batch_id := p_txn_rec.source_header_ref_id;
22276 l_batch_type := p_txn_rec.source_group_ref;
22277 ELSE
22278 l_batch_id := NULL;
22279 l_batch_type := NULL;
22280 END IF;
22281 --
22282 UPDATE CSI_TRANSACTIONS
22283 set contracts_invoked = 'Y'
22284 where transaction_id = p_txn_rec.transaction_id;
22285 --
22286 OKS_IBINT_PUB.IB_interface
22287 (
22288 P_Api_Version => 1.0,
22289 P_init_msg_list => p_init_msg_list,
22290 P_single_txn_date_flag => 'Y',
22291 P_Batch_type => l_batch_type,
22292 P_Batch_ID => l_batch_id,
22293 P_OKS_Txn_Inst_tbl => px_oks_txn_inst_tbl,
22294 x_return_status => x_return_status,
22295 x_msg_count => x_msg_count,
22296 x_msg_data => x_msg_data
22297 );
22298 --
22299 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
22300 l_msg_index := 1;
22301 l_msg_count := x_msg_count;
22302 WHILE l_msg_count > 0 LOOP
22303 x_msg_data := FND_MSG_PUB.GET
22304 ( l_msg_index,
22305 FND_API.G_FALSE );
22306 csi_gen_utility_pvt.put_line( 'Error from OKS_IBINT_PUB.IB_interface..');
22307 csi_gen_utility_pvt.put_line('MESSAGE DATA = '||x_msg_data);
22308 l_msg_index := l_msg_index + 1;
22309 l_msg_count := l_msg_count - 1;
22310 END LOOP;
22311 RAISE FND_API.G_EXC_ERROR;
22312 END IF;
22313 END IF;
22314 EXCEPTION
22315 WHEN FND_API.G_EXC_ERROR THEN
22316 RAISE FND_API.G_EXC_ERROR;
22317 END;
22318 -- End of code addition for fixing bug 2139782.
22319 END LOOP;
22320 Else --l_quantity is <= 1
22321
22322 FND_MESSAGE.SET_NAME('CSI','CSI_API_QUANTITY_NOT_VALID');
22323 FND_MESSAGE.SET_TOKEN('QUANTITY', l_quantity);
22324 FND_MSG_PUB.ADD;
22325 -- RAISE fnd_api.g_exc_error;
22326 End If;
22327
22328 --update the existing record with 'p_quantity1')
22329 BEGIN
22330 SELECT object_version_number
22331 INTO l_object_version_number
22332 FROM csi_item_instances
22333 WHERE instance_id = p_source_instance_rec.instance_id;
22334 EXCEPTION
22335 WHEN NO_DATA_FOUND THEN
22336 FND_MESSAGE.SET_NAME('CSI','CSI_API_INVALID_OBJ_NUM');
22337 FND_MSG_PUB.ADD;
22338 RAISE FND_API.G_EXC_ERROR;
22339 END;
22340 --
22341 px_oks_txn_inst_tbl.DELETE;
22342 --
22343 l_new_instance_rec.instance_id := p_source_instance_rec.instance_id;
22344 l_new_instance_rec.quantity := 1;
22345 l_new_instance_rec.object_version_number := l_object_version_number;
22346 l_new_instance_rec.vld_organization_id := p_source_instance_rec.vld_organization_id;
22347
22348 --call the update api
22349 update_item_instance
22350 (
22351 p_api_version => p_api_version
22352 ,p_commit => fnd_api.g_false
22353 ,p_init_msg_list => p_init_msg_list
22354 ,p_validation_level => p_validation_level
22355 ,p_instance_rec => l_new_instance_rec
22356 ,p_txn_rec => p_txn_rec
22357 ,x_instance_id_lst => l_instance_id_lst
22358 ,x_return_status => x_return_status
22359 ,x_msg_count => x_msg_count
22360 ,x_msg_data => x_msg_data
22361 ,p_item_attribute_tbl => l_item_attribute_tbl
22362 ,p_location_tbl => l_location_tbl
22363 ,p_generic_id_tbl => l_generic_id_tbl
22364 ,p_lookup_tbl => l_lookup_tbl
22365 ,p_ins_count_rec => l_ins_count_rec
22366 ,p_oks_txn_inst_tbl => px_oks_txn_inst_tbl
22367 ,p_child_inst_tbl => px_child_inst_tbl
22368 );
22369
22370 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
22371 FOR i in 1..x_msg_Count LOOP
22372 FND_MSG_PUB.Get(p_msg_index => i,
22373 p_encoded => 'F',
22374 p_data => x_msg_data,
22375 p_msg_index_out => x_msg_index_out );
22376 End LOOP;
22377 RAISE fnd_api.g_exc_error;
22378 END IF;
22379
22380
22381 l_count := x_new_instance_tbl.count ;
22382
22383 x_new_instance_tbl(l_count+1).instance_id := l_new_instance_rec.instance_id;
22384
22385 -- x_new_instance_tbl(i+1) := l_instance_id_lst(1);
22386
22387 -- End of API body
22388
22389 -- Standard check of p_commit.
22390 IF FND_API.To_Boolean( p_commit ) THEN
22391 COMMIT WORK;
22392 END IF;
22393
22394 -- End disable trace
22395
22396 -- Standard call to get message count and IF count is get message info.
22397 FND_MSG_PUB.Count_And_Get
22398 (p_count => x_msg_count ,
22399 p_data => x_msg_data
22400 );
22401
22402 EXCEPTION
22403
22404 WHEN FND_API.G_EXC_ERROR THEN
22405 ROLLBACK TO split_item_instance_lines_pvt;
22406 x_return_status := FND_API.G_RET_STS_ERROR ;
22407 FND_MSG_PUB.Count_And_Get
22408 ( p_count => x_msg_count,
22409 p_data => x_msg_data
22410 );
22411 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
22412 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
22413 ROLLBACK TO split_item_instance_lines_pvt;
22414 FND_MSG_PUB.Count_And_Get
22415 ( p_count => x_msg_count,
22416 p_data => x_msg_data
22417 );
22418 WHEN OTHERS THEN
22419 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
22420 ROLLBACK TO split_item_instance_lines_pvt;
22421 IF FND_MSG_PUB.Check_Msg_Level
22422 (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
22423 THEN
22424 FND_MSG_PUB.Add_Exc_Msg
22425 ( G_PKG_NAME ,
22426 l_api_name
22427 );
22428 END IF;
22429 FND_MSG_PUB.Count_And_Get
22430 ( p_count => x_msg_count,
22431 p_data => x_msg_data
22432 );
22433
22434 END Split_Item_Instance_lines;
22435
22436
22437 /*----------------------------------------------------------*/
22438 /* Procedure name: Initialize_ver_rec_no_dump */
22439 /* Description : This procedure initializes the first */
22440 /* record from the history */
22441 /*----------------------------------------------------------*/
22442
22443 PROCEDURE Initialize_ver_rec_no_dump
22444 (
22445 x_version_label_rec IN OUT NOCOPY csi_datastructures_pub.version_label_rec,
22446 p_version_label_id IN NUMBER ,
22447 x_no_dump IN OUT NOCOPY DATE
22448 ) IS
22449
22450 CURSOR Int_no_dump(p_ver_label_id IN NUMBER ) IS
22451 SELECT
22452 CREATION_DATE ,
22453 NEW_VERSION_LABEL ,
22454 NEW_DESCRIPTION ,
22455 NEW_DATE_TIME_STAMP ,
22456 NEW_ACTIVE_START_DATE ,
22457 NEW_ACTIVE_END_DATE ,
22458 NEW_CONTEXT ,
22459 NEW_ATTRIBUTE1 ,
22460 NEW_ATTRIBUTE2 ,
22461 NEW_ATTRIBUTE3 ,
22462 NEW_ATTRIBUTE4 ,
22463 NEW_ATTRIBUTE5 ,
22464 NEW_ATTRIBUTE6 ,
22465 NEW_ATTRIBUTE7 ,
22466 NEW_ATTRIBUTE8 ,
22467 NEW_ATTRIBUTE9 ,
22468 NEW_ATTRIBUTE10 ,
22469 NEW_ATTRIBUTE11 ,
22470 NEW_ATTRIBUTE12 ,
22471 NEW_ATTRIBUTE13 ,
22472 NEW_ATTRIBUTE14 ,
22473 NEW_ATTRIBUTE15
22474 FROM CSI_I_VERSION_LABELS_H
22475 WHERE version_label_id = p_ver_label_id
22476 ORDER BY creation_date;
22477
22478
22479 BEGIN
22480
22481 FOR C1 IN Int_no_dump(p_version_label_id ) LOOP
22482 IF Int_no_dump%ROWCOUNT = 1 THEN
22483 x_no_dump := C1.creation_date;
22484 x_version_label_rec.VERSION_LABEL := C1.NEW_VERSION_LABEL;
22485 x_version_label_rec.DESCRIPTION := C1.NEW_DESCRIPTION;
22486 x_version_label_rec.DATE_TIME_STAMP := C1.NEW_DATE_TIME_STAMP;
22487 x_version_label_rec.ACTIVE_START_DATE := C1.NEW_ACTIVE_START_DATE;
22488 x_version_label_rec.ACTIVE_END_DATE := C1.NEW_ACTIVE_END_DATE;
22489 x_version_label_rec.CONTEXT := C1.NEW_CONTEXT;
22490 x_version_label_rec.ATTRIBUTE1 := C1.NEW_ATTRIBUTE1;
22491 x_version_label_rec.ATTRIBUTE2 := C1.NEW_ATTRIBUTE2;
22492 x_version_label_rec.ATTRIBUTE3 := C1.NEW_ATTRIBUTE3;
22493 x_version_label_rec.ATTRIBUTE4 := C1.NEW_ATTRIBUTE4;
22494 x_version_label_rec.ATTRIBUTE5 := C1.NEW_ATTRIBUTE5;
22495 x_version_label_rec.ATTRIBUTE6 := C1.NEW_ATTRIBUTE6;
22496 x_version_label_rec.ATTRIBUTE7 := C1.NEW_ATTRIBUTE7;
22497 x_version_label_rec.ATTRIBUTE8 := C1.NEW_ATTRIBUTE8;
22498 x_version_label_rec.ATTRIBUTE9 := C1.NEW_ATTRIBUTE9;
22499 x_version_label_rec.ATTRIBUTE10 := C1.NEW_ATTRIBUTE10;
22500 x_version_label_rec.ATTRIBUTE11 := C1.NEW_ATTRIBUTE11;
22501 x_version_label_rec.ATTRIBUTE12 := C1.NEW_ATTRIBUTE12;
22502 x_version_label_rec.ATTRIBUTE13 := C1.NEW_ATTRIBUTE13;
22503 x_version_label_rec.ATTRIBUTE14 := C1.NEW_ATTRIBUTE14;
22504 x_version_label_rec.ATTRIBUTE15 := C1.NEW_ATTRIBUTE15;
22505 ELSE
22506 EXIT;
22507 END IF;
22508
22509 END LOOP;
22510 END Initialize_ver_rec_no_dump;
22511
22512
22513 /*----------------------------------------------------------*/
22514 /* Procedure name: Initialize_ver_rec */
22515 /* Description : This procudure recontructs the record */
22516 /* from the history */
22517 /*----------------------------------------------------------*/
22518
22519 PROCEDURE Initialize_ver_rec
22520 (
22521 x_version_label_rec IN OUT NOCOPY csi_datastructures_pub.version_label_rec,
22522 p_version_label_hist_id IN NUMBER ,
22523 x_nearest_full_dump IN OUT NOCOPY DATE
22524 ) IS
22525
22526 CURSOR Int_nearest_full_dump(p_ver_label_hist_id IN NUMBER ) IS
22527 SELECT
22528 CREATION_DATE ,
22529 NEW_VERSION_LABEL ,
22530 NEW_DESCRIPTION ,
22531 NEW_DATE_TIME_STAMP ,
22532 NEW_ACTIVE_START_DATE ,
22533 NEW_ACTIVE_END_DATE ,
22534 NEW_CONTEXT ,
22535 NEW_ATTRIBUTE1 ,
22536 NEW_ATTRIBUTE2 ,
22537 NEW_ATTRIBUTE3 ,
22538 NEW_ATTRIBUTE4 ,
22539 NEW_ATTRIBUTE5 ,
22540 NEW_ATTRIBUTE6 ,
22541 NEW_ATTRIBUTE7 ,
22542 NEW_ATTRIBUTE8 ,
22543 NEW_ATTRIBUTE9 ,
22544 NEW_ATTRIBUTE10 ,
22545 NEW_ATTRIBUTE11 ,
22546 NEW_ATTRIBUTE12 ,
22547 NEW_ATTRIBUTE13 ,
22548 NEW_ATTRIBUTE14 ,
22549 NEW_ATTRIBUTE15
22550 FROM CSI_I_VERSION_LABELS_H
22551 WHERE version_label_history_id = p_ver_label_hist_id
22552 and full_dump_flag = 'Y' ;
22553
22554 BEGIN
22555
22556 FOR C1 IN Int_nearest_full_dump(p_version_label_hist_id ) LOOP
22557 x_nearest_full_dump := C1.creation_date;
22558 x_version_label_rec.VERSION_LABEL := C1.NEW_VERSION_LABEL;
22559 x_version_label_rec.DESCRIPTION := C1.NEW_DESCRIPTION;
22560 x_version_label_rec.DATE_TIME_STAMP := C1.NEW_DATE_TIME_STAMP;
22561 x_version_label_rec.ACTIVE_START_DATE := C1.NEW_ACTIVE_START_DATE;
22562 x_version_label_rec.ACTIVE_END_DATE := C1.NEW_ACTIVE_END_DATE;
22563 x_version_label_rec.CONTEXT := C1.NEW_CONTEXT;
22564 x_version_label_rec.ATTRIBUTE1 := C1.NEW_ATTRIBUTE1;
22565 x_version_label_rec.ATTRIBUTE2 := C1.NEW_ATTRIBUTE2;
22566 x_version_label_rec.ATTRIBUTE3 := C1.NEW_ATTRIBUTE3;
22567 x_version_label_rec.ATTRIBUTE4 := C1.NEW_ATTRIBUTE4;
22568 x_version_label_rec.ATTRIBUTE5 := C1.NEW_ATTRIBUTE5;
22569 x_version_label_rec.ATTRIBUTE6 := C1.NEW_ATTRIBUTE6;
22570 x_version_label_rec.ATTRIBUTE7 := C1.NEW_ATTRIBUTE7;
22571 x_version_label_rec.ATTRIBUTE8 := C1.NEW_ATTRIBUTE8;
22572 x_version_label_rec.ATTRIBUTE9 := C1.NEW_ATTRIBUTE9;
22573 x_version_label_rec.ATTRIBUTE10 := C1.NEW_ATTRIBUTE10;
22574 x_version_label_rec.ATTRIBUTE11 := C1.NEW_ATTRIBUTE11;
22575 x_version_label_rec.ATTRIBUTE12 := C1.NEW_ATTRIBUTE12;
22576 x_version_label_rec.ATTRIBUTE13 := C1.NEW_ATTRIBUTE13;
22577 x_version_label_rec.ATTRIBUTE14 := C1.NEW_ATTRIBUTE14;
22578 x_version_label_rec.ATTRIBUTE15 := C1.NEW_ATTRIBUTE15;
22579
22580 END LOOP;
22581 END Initialize_ver_rec ;
22582
22583 /*----------------------------------------------------------*/
22584 /* Procedure name: Construct_ver_from_hist */
22585 /* Description : This procudure recontructs the record */
22586 /* from the history */
22587 /*----------------------------------------------------------*/
22588
22589 PROCEDURE Construct_ver_from_hist
22590 (
22591 x_version_label_tbl IN OUT NOCOPY csi_datastructures_pub.version_label_tbl,
22592 p_time_stamp IN DATE
22593 ) IS
22594
22595 l_nearest_full_dump DATE := p_time_stamp;
22596 l_ver_label_hist_id NUMBER;
22597
22598 CURSOR get_nearest_full_dump(p_ver_label_id IN NUMBER ,p_time IN DATE) IS
22599 SELECT
22600 MAX(version_label_history_id)
22601 FROM CSI_I_VERSION_LABELS_H
22602 WHERE creation_date <= p_time
22603 and version_label_id = p_ver_label_id
22604 and full_dump_flag = 'Y' ;
22605
22606 CURSOR get_ver_label_hist(p_ver_label_id IN NUMBER ,
22607 p_nearest_full_dump IN DATE,
22608 p_time IN DATE ) IS
22609 SELECT
22610 OLD_VERSION_LABEL ,
22611 NEW_VERSION_LABEL ,
22612 OLD_DESCRIPTION ,
22613 NEW_DESCRIPTION ,
22614 OLD_DATE_TIME_STAMP ,
22615 NEW_DATE_TIME_STAMP ,
22616 OLD_ACTIVE_START_DATE ,
22617 NEW_ACTIVE_START_DATE ,
22618 OLD_ACTIVE_END_DATE ,
22619 NEW_ACTIVE_END_DATE ,
22620 OLD_CONTEXT ,
22621 NEW_CONTEXT ,
22622 OLD_ATTRIBUTE1 ,
22623 NEW_ATTRIBUTE1 ,
22624 OLD_ATTRIBUTE2 ,
22625 NEW_ATTRIBUTE2 ,
22626 OLD_ATTRIBUTE3 ,
22627 NEW_ATTRIBUTE3 ,
22628 OLD_ATTRIBUTE4 ,
22629 NEW_ATTRIBUTE4 ,
22630 OLD_ATTRIBUTE5 ,
22631 NEW_ATTRIBUTE5 ,
22632 OLD_ATTRIBUTE6 ,
22633 NEW_ATTRIBUTE6 ,
22634 OLD_ATTRIBUTE7 ,
22635 NEW_ATTRIBUTE7 ,
22636 OLD_ATTRIBUTE8 ,
22637 NEW_ATTRIBUTE8 ,
22638 OLD_ATTRIBUTE9 ,
22639 NEW_ATTRIBUTE9 ,
22640 OLD_ATTRIBUTE10 ,
22641 NEW_ATTRIBUTE10 ,
22642 OLD_ATTRIBUTE11 ,
22643 NEW_ATTRIBUTE11 ,
22644 OLD_ATTRIBUTE12 ,
22645 NEW_ATTRIBUTE12 ,
22646 OLD_ATTRIBUTE13 ,
22647 NEW_ATTRIBUTE13 ,
22648 OLD_ATTRIBUTE14 ,
22649 NEW_ATTRIBUTE14 ,
22650 OLD_ATTRIBUTE15 ,
22651 NEW_ATTRIBUTE15
22652 FROM CSI_I_VERSION_LABELS_H
22653 WHERE creation_date <= p_time
22654 and creation_date >= p_nearest_full_dump
22655 and version_label_id = p_ver_label_id
22656 ORDER BY creation_date;
22657
22658 l_time_stamp DATE := p_time_stamp;
22659
22660 BEGIN
22661
22662 FOR i IN x_version_label_tbl.FIRST..x_version_label_tbl.LAST LOOP
22663
22664 OPEN get_nearest_full_dump(x_version_label_tbl(i).version_label_id, p_time_stamp);
22665 FETCH get_nearest_full_dump INTO l_ver_label_hist_id;
22666 CLOSE get_nearest_full_dump;
22667
22668 IF l_ver_label_hist_id IS NOT NULL THEN
22669 Initialize_ver_rec( x_version_label_tbl(i), l_ver_label_hist_id ,l_nearest_full_dump);
22670 ELSE
22671 Initialize_ver_rec_no_dump( x_version_label_tbl(i), x_version_label_tbl(i).version_label_id, l_time_stamp);
22672
22673 l_nearest_full_dump := l_time_stamp;
22674 -- If the user chooses a date before the creation date of the instance
22675 -- then raise an error
22676 IF p_time_stamp < l_time_stamp THEN
22677 FND_MESSAGE.SET_NAME('CSI','CSI_H_DATE_BEFORE_CRE_DATE');
22678 FND_MESSAGE.SET_TOKEN('CREATION_DATE',to_char(l_time_stamp, 'DD-MON-YYYY HH24:MI:SS'));
22679 FND_MESSAGE.SET_TOKEN('USER_DATE',to_char(p_time_stamp, 'DD-MON-YYYY HH24:MI:SS'));
22680 FND_MSG_PUB.Add;
22681 RAISE FND_API.G_EXC_ERROR;
22682 END IF;
22683
22684 END IF;
22685
22686 FOR C2 IN get_ver_label_hist(x_version_label_tbl(i).version_label_id ,l_nearest_full_dump,p_time_stamp ) LOOP
22687
22688 IF (C2.OLD_VERSION_LABEL IS NULL AND C2.NEW_VERSION_LABEL IS NOT NULL)
22689 OR (C2.OLD_VERSION_LABEL IS NOT NULL AND C2.NEW_VERSION_LABEL IS NULL)
22690 OR (C2.OLD_VERSION_LABEL <> C2.NEW_VERSION_LABEL) THEN
22691 x_version_label_tbl(i).VERSION_LABEL := C2.NEW_VERSION_LABEL;
22692 END IF;
22693
22694 IF (C2.OLD_DESCRIPTION IS NULL AND C2.NEW_DESCRIPTION IS NOT NULL)
22695 OR (C2.OLD_DESCRIPTION IS NOT NULL AND C2.NEW_DESCRIPTION IS NULL)
22696 OR (C2.OLD_DESCRIPTION <> C2.NEW_DESCRIPTION) THEN
22697 x_version_label_tbl(i).DESCRIPTION := C2.NEW_DESCRIPTION;
22698 END IF;
22699
22700 IF (C2.OLD_DATE_TIME_STAMP IS NULL AND C2.NEW_DATE_TIME_STAMP IS NOT NULL)
22701 OR (C2.OLD_DATE_TIME_STAMP IS NOT NULL AND C2.NEW_DATE_TIME_STAMP IS NULL)
22702 OR (C2.OLD_DATE_TIME_STAMP <> C2.NEW_DATE_TIME_STAMP) THEN
22703 x_version_label_tbl(i).DATE_TIME_STAMP := C2.NEW_DATE_TIME_STAMP;
22704 END IF;
22705
22706 IF (C2.OLD_ACTIVE_START_DATE IS NULL AND C2.NEW_ACTIVE_START_DATE IS NOT NULL)
22707 OR (C2.OLD_ACTIVE_START_DATE IS NOT NULL AND C2.NEW_ACTIVE_START_DATE IS NULL)
22708 OR (C2.OLD_ACTIVE_START_DATE <> C2.NEW_ACTIVE_START_DATE) THEN
22709 x_version_label_tbl(i).ACTIVE_START_DATE := C2.NEW_ACTIVE_START_DATE;
22710 END IF;
22711
22712
22713 IF (C2.OLD_ACTIVE_END_DATE IS NULL AND C2.NEW_ACTIVE_END_DATE IS NOT NULL)
22714 OR (C2.OLD_ACTIVE_END_DATE IS NOT NULL AND C2.NEW_ACTIVE_END_DATE IS NULL)
22715 OR (C2.OLD_ACTIVE_END_DATE <> C2.NEW_ACTIVE_END_DATE) THEN
22716 x_version_label_tbl(i).ACTIVE_END_DATE := C2.NEW_ACTIVE_END_DATE;
22717 END IF;
22718
22719
22720 IF (C2.OLD_CONTEXT IS NULL AND C2.NEW_CONTEXT IS NOT NULL)
22721 OR (C2.OLD_CONTEXT IS NOT NULL AND C2.NEW_CONTEXT IS NULL)
22722 OR (C2.OLD_CONTEXT <> C2.NEW_CONTEXT) THEN
22723 x_version_label_tbl(i).CONTEXT := C2.NEW_CONTEXT;
22724 END IF;
22725
22726 IF (C2.OLD_ATTRIBUTE1 IS NULL AND C2.NEW_ATTRIBUTE1 IS NOT NULL)
22727 OR (C2.OLD_ATTRIBUTE1 IS NOT NULL AND C2.NEW_ATTRIBUTE1 IS NULL)
22728 OR (C2.OLD_ATTRIBUTE1 <> C2.NEW_ATTRIBUTE1) THEN
22729 x_version_label_tbl(i).ATTRIBUTE1 := C2.NEW_ATTRIBUTE1;
22730 END IF;
22731
22732 IF (C2.OLD_ATTRIBUTE2 IS NULL AND C2.NEW_ATTRIBUTE2 IS NOT NULL)
22733 OR (C2.OLD_ATTRIBUTE2 IS NOT NULL AND C2.NEW_ATTRIBUTE2 IS NULL)
22734 OR (C2.OLD_ATTRIBUTE2 <> C2.NEW_ATTRIBUTE2) THEN
22735 x_version_label_tbl(i).ATTRIBUTE2 := C2.NEW_ATTRIBUTE2;
22736 END IF;
22737
22738 IF (C2.OLD_ATTRIBUTE3 IS NULL AND C2.NEW_ATTRIBUTE3 IS NOT NULL)
22739 OR (C2.OLD_ATTRIBUTE3 IS NOT NULL AND C2.NEW_ATTRIBUTE3 IS NULL)
22740 OR (C2.OLD_ATTRIBUTE3 <> C2.NEW_ATTRIBUTE3) THEN
22741 x_version_label_tbl(i).ATTRIBUTE3 := C2.NEW_ATTRIBUTE3;
22742 END IF;
22743
22744 IF (C2.OLD_ATTRIBUTE4 IS NULL AND C2.NEW_ATTRIBUTE4 IS NOT NULL)
22745 OR (C2.OLD_ATTRIBUTE4 IS NOT NULL AND C2.NEW_ATTRIBUTE4 IS NULL)
22746 OR (C2.OLD_ATTRIBUTE4 <> C2.NEW_ATTRIBUTE4) THEN
22747 x_version_label_tbl(i).ATTRIBUTE4 := C2.NEW_ATTRIBUTE4;
22748 END IF;
22749
22750
22751 IF (C2.OLD_ATTRIBUTE5 IS NULL AND C2.NEW_ATTRIBUTE5 IS NOT NULL)
22752 OR (C2.OLD_ATTRIBUTE5 IS NOT NULL AND C2.NEW_ATTRIBUTE5 IS NULL)
22753 OR (C2.OLD_ATTRIBUTE5 <> C2.NEW_ATTRIBUTE5) THEN
22754 x_version_label_tbl(i).ATTRIBUTE5 := C2.NEW_ATTRIBUTE5;
22755 END IF;
22756
22757
22758 IF (C2.OLD_ATTRIBUTE6 IS NULL AND C2.NEW_ATTRIBUTE6 IS NOT NULL)
22759 OR (C2.OLD_ATTRIBUTE6 IS NOT NULL AND C2.NEW_ATTRIBUTE6 IS NULL)
22760 OR (C2.OLD_ATTRIBUTE6 <> C2.NEW_ATTRIBUTE6) THEN
22761 x_version_label_tbl(i).ATTRIBUTE6 := C2.NEW_ATTRIBUTE6;
22762 END IF;
22763
22764 IF (C2.OLD_ATTRIBUTE7 IS NULL AND C2.NEW_ATTRIBUTE7 IS NOT NULL)
22765 OR (C2.OLD_ATTRIBUTE7 IS NOT NULL AND C2.NEW_ATTRIBUTE7 IS NULL)
22766 OR (C2.OLD_ATTRIBUTE7 <> C2.NEW_ATTRIBUTE7) THEN
22767 x_version_label_tbl(i).ATTRIBUTE7 := C2.NEW_ATTRIBUTE7;
22768 END IF;
22769
22770 IF (C2.OLD_ATTRIBUTE8 IS NULL AND C2.NEW_ATTRIBUTE8 IS NOT NULL)
22771 OR (C2.OLD_ATTRIBUTE8 IS NOT NULL AND C2.NEW_ATTRIBUTE8 IS NULL)
22772 OR (C2.OLD_ATTRIBUTE8 <> C2.NEW_ATTRIBUTE8) THEN
22773 x_version_label_tbl(i).ATTRIBUTE8 := C2.NEW_ATTRIBUTE8;
22774 END IF;
22775
22776 IF (C2.OLD_ATTRIBUTE9 IS NULL AND C2.NEW_ATTRIBUTE9 IS NOT NULL)
22777 OR (C2.OLD_ATTRIBUTE9 IS NOT NULL AND C2.NEW_ATTRIBUTE9 IS NULL)
22778 OR (C2.OLD_ATTRIBUTE9 <> C2.NEW_ATTRIBUTE9) THEN
22779 x_version_label_tbl(i).ATTRIBUTE3 := C2.NEW_ATTRIBUTE3;
22780 END IF;
22781
22782
22783 IF (C2.OLD_ATTRIBUTE10 IS NULL AND C2.NEW_ATTRIBUTE10 IS NOT NULL)
22784 OR (C2.OLD_ATTRIBUTE10 IS NOT NULL AND C2.NEW_ATTRIBUTE10 IS NULL)
22785 OR (C2.OLD_ATTRIBUTE10 <> C2.NEW_ATTRIBUTE10) THEN
22786 x_version_label_tbl(i).ATTRIBUTE10 := C2.NEW_ATTRIBUTE10;
22787 END IF;
22788
22789
22790
22791 IF (C2.OLD_ATTRIBUTE11 IS NULL AND C2.NEW_ATTRIBUTE11 IS NOT NULL)
22792 OR (C2.OLD_ATTRIBUTE11 IS NOT NULL AND C2.NEW_ATTRIBUTE11 IS NULL)
22793 OR (C2.OLD_ATTRIBUTE11 <> C2.NEW_ATTRIBUTE11) THEN
22794 x_version_label_tbl(i).ATTRIBUTE11 := C2.NEW_ATTRIBUTE11;
22795 END IF;
22796
22797 IF (C2.OLD_ATTRIBUTE12 IS NULL AND C2.NEW_ATTRIBUTE12 IS NOT NULL)
22798 OR (C2.OLD_ATTRIBUTE12 IS NOT NULL AND C2.NEW_ATTRIBUTE12 IS NULL)
22799 OR (C2.OLD_ATTRIBUTE12 <> C2.NEW_ATTRIBUTE12) THEN
22800 x_version_label_tbl(i).ATTRIBUTE12 := C2.NEW_ATTRIBUTE12;
22801 END IF;
22802
22803
22804 IF (C2.OLD_ATTRIBUTE13 IS NULL AND C2.NEW_ATTRIBUTE13 IS NOT NULL)
22805 OR (C2.OLD_ATTRIBUTE13 IS NOT NULL AND C2.NEW_ATTRIBUTE13 IS NULL)
22806 OR (C2.OLD_ATTRIBUTE13 <> C2.NEW_ATTRIBUTE13) THEN
22807 x_version_label_tbl(i).ATTRIBUTE13 := C2.NEW_ATTRIBUTE13;
22808 END IF;
22809
22810
22811 IF (C2.OLD_ATTRIBUTE14 IS NULL AND C2.NEW_ATTRIBUTE14 IS NOT NULL)
22812 OR (C2.OLD_ATTRIBUTE14 IS NOT NULL AND C2.NEW_ATTRIBUTE14 IS NULL)
22813 OR (C2.OLD_ATTRIBUTE14 <> C2.NEW_ATTRIBUTE14) THEN
22814 x_version_label_tbl(i).ATTRIBUTE14 := C2.NEW_ATTRIBUTE14;
22815 END IF;
22816
22817 IF (C2.OLD_ATTRIBUTE15 IS NULL AND C2.NEW_ATTRIBUTE15 IS NOT NULL)
22818 OR (C2.OLD_ATTRIBUTE15 IS NOT NULL AND C2.NEW_ATTRIBUTE15 IS NULL)
22819 OR (C2.OLD_ATTRIBUTE15 <> C2.NEW_ATTRIBUTE15) THEN
22820 x_version_label_tbl(i).ATTRIBUTE15 := C2.NEW_ATTRIBUTE15;
22821 END IF;
22822
22823
22824 END LOOP;
22825 END LOOP;
22826 EXCEPTION
22827 WHEN NO_DATA_FOUND THEN
22828 NULL;
22829 END Construct_ver_from_hist;
22830
22831
22832 /*--------------------------------------------------------*/
22833 /* Procedure name: Get_Ver_Column_Values */
22834 /* Description : This procudure gets the column values */
22835 /* for the Dynamic SQL */
22836 /*--------------------------------------------------------*/
22837
22838 PROCEDURE Get_Ver_Column_Values
22839 (
22840 p_get_ver_cursor_id IN NUMBER ,
22841 x_ver_label_query_rec OUT NOCOPY csi_datastructures_pub.version_label_rec
22842 ) IS
22843 BEGIN
22844
22845 dbms_sql.column_value(p_get_ver_cursor_id, 1, x_ver_label_query_rec.version_label_id);
22846 dbms_sql.column_value(p_get_ver_cursor_id, 2, x_ver_label_query_rec.instance_id);
22847 dbms_sql.column_value(p_get_ver_cursor_id, 3, x_ver_label_query_rec.version_label);
22848 dbms_sql.column_value(p_get_ver_cursor_id, 4, x_ver_label_query_rec.date_time_stamp);
22849 dbms_sql.column_value(p_get_ver_cursor_id, 5, x_ver_label_query_rec.description );
22850 dbms_sql.column_value(p_get_ver_cursor_id, 6, x_ver_label_query_rec.active_start_date);
22851 dbms_sql.column_value(p_get_ver_cursor_id, 7, x_ver_label_query_rec.active_end_date);
22852 dbms_sql.column_value(p_get_ver_cursor_id, 8, x_ver_label_query_rec.context);
22853 dbms_sql.column_value(p_get_ver_cursor_id, 9, x_ver_label_query_rec.attribute1);
22854 dbms_sql.column_value(p_get_ver_cursor_id, 10, x_ver_label_query_rec.attribute2);
22855 dbms_sql.column_value(p_get_ver_cursor_id, 11, x_ver_label_query_rec.attribute3);
22856 dbms_sql.column_value(p_get_ver_cursor_id, 12, x_ver_label_query_rec.attribute4);
22857 dbms_sql.column_value(p_get_ver_cursor_id, 13, x_ver_label_query_rec.attribute5);
22858 dbms_sql.column_value(p_get_ver_cursor_id, 14, x_ver_label_query_rec.attribute6);
22859 dbms_sql.column_value(p_get_ver_cursor_id, 15, x_ver_label_query_rec.attribute7);
22860 dbms_sql.column_value(p_get_ver_cursor_id, 16, x_ver_label_query_rec.attribute8);
22861 dbms_sql.column_value(p_get_ver_cursor_id, 17, x_ver_label_query_rec.attribute9);
22862 dbms_sql.column_value(p_get_ver_cursor_id, 18, x_ver_label_query_rec.attribute10);
22863 dbms_sql.column_value(p_get_ver_cursor_id, 19, x_ver_label_query_rec.attribute11);
22864 dbms_sql.column_value(p_get_ver_cursor_id, 20, x_ver_label_query_rec.attribute12);
22865 dbms_sql.column_value(p_get_ver_cursor_id, 21, x_ver_label_query_rec.attribute13);
22866 dbms_sql.column_value(p_get_ver_cursor_id, 22, x_ver_label_query_rec.attribute14);
22867 dbms_sql.column_value(p_get_ver_cursor_id, 23, x_ver_label_query_rec.attribute15);
22868 dbms_sql.column_value(p_get_ver_cursor_id, 29, x_ver_label_query_rec.object_version_number);
22869
22870 END Get_Ver_Column_Values;
22871
22872
22873 /*----------------------------------------------------------*/
22874 /* Procedure name: Define_Ver_Columns */
22875 /* Description : This procudure defines the columns */
22876 /* for the Dynamic SQL */
22877 /*----------------------------------------------------------*/
22878
22879 PROCEDURE Define_Ver_Columns
22880 (
22881 p_get_ver_cursor_id IN NUMBER
22882 ) IS
22883
22884 l_ver_label_rec csi_datastructures_pub.version_label_rec;
22885
22886 BEGIN
22887
22888 dbms_sql.define_column(p_get_ver_cursor_id, 1, l_ver_label_rec.version_label_id);
22889 dbms_sql.define_column(p_get_ver_cursor_id, 2, l_ver_label_rec.instance_id);
22890 dbms_sql.define_column(p_get_ver_cursor_id, 3, l_ver_label_rec.version_label,30);
22891 dbms_sql.define_column(p_get_ver_cursor_id, 4, l_ver_label_rec.date_time_stamp);
22892 dbms_sql.define_column(p_get_ver_cursor_id, 5, l_ver_label_rec.description ,30);
22893 dbms_sql.define_column(p_get_ver_cursor_id, 6, l_ver_label_rec.active_start_date);
22894 dbms_sql.define_column(p_get_ver_cursor_id, 7, l_ver_label_rec.active_end_date);
22895 dbms_sql.define_column(p_get_ver_cursor_id, 8, l_ver_label_rec.context,30);
22896 dbms_sql.define_column(p_get_ver_cursor_id, 9, l_ver_label_rec.attribute1,150);
22897 dbms_sql.define_column(p_get_ver_cursor_id, 10, l_ver_label_rec.attribute2,150);
22898 dbms_sql.define_column(p_get_ver_cursor_id, 11, l_ver_label_rec.attribute3,150);
22899 dbms_sql.define_column(p_get_ver_cursor_id, 12, l_ver_label_rec.attribute4,150);
22900 dbms_sql.define_column(p_get_ver_cursor_id, 13, l_ver_label_rec.attribute5,150);
22901 dbms_sql.define_column(p_get_ver_cursor_id, 14, l_ver_label_rec.attribute6,150);
22902 dbms_sql.define_column(p_get_ver_cursor_id, 15, l_ver_label_rec.attribute7,150);
22903 dbms_sql.define_column(p_get_ver_cursor_id, 16, l_ver_label_rec.attribute8,150);
22904 dbms_sql.define_column(p_get_ver_cursor_id, 17, l_ver_label_rec.attribute9,150);
22905 dbms_sql.define_column(p_get_ver_cursor_id, 18, l_ver_label_rec.attribute10,150);
22906 dbms_sql.define_column(p_get_ver_cursor_id, 19, l_ver_label_rec.attribute11,150);
22907 dbms_sql.define_column(p_get_ver_cursor_id, 20, l_ver_label_rec.attribute12,150);
22908 dbms_sql.define_column(p_get_ver_cursor_id, 21, l_ver_label_rec.attribute13,150);
22909 dbms_sql.define_column(p_get_ver_cursor_id, 22, l_ver_label_rec.attribute14,150);
22910 dbms_sql.define_column(p_get_ver_cursor_id, 23, l_ver_label_rec.attribute15,150);
22911 dbms_sql.define_column(p_get_ver_cursor_id, 29, l_ver_label_rec.object_version_number);
22912
22913 END Define_Ver_Columns;
22914
22915 /*----------------------------------------------------------*/
22916 /* Procedure name: Bind_Ver_variable */
22917 /* Description : Procedure used to generate the where */
22918 /* cluase for Party relationship */
22919 /*----------------------------------------------------------*/
22920 PROCEDURE Bind_Ver_variable
22921 (
22922 p_ver_label_query_rec IN csi_datastructures_pub.version_label_query_rec,
22923 p_get_ver_cursor_id IN NUMBER
22924 ) IS
22925
22926 BEGIN
22927 IF( (p_ver_label_query_rec.version_label_id IS NOT NULL)
22928 AND (p_ver_label_query_rec.version_label_id <> FND_API.G_MISS_NUM)) THEN
22929 DBMS_SQL.BIND_VARIABLE(p_get_ver_cursor_id, ':version_label_id', p_ver_label_query_rec.version_label_id);
22930 END IF;
22931
22932 IF( (p_ver_label_query_rec.instance_id IS NOT NULL)
22933 AND (p_ver_label_query_rec.instance_id <> FND_API.G_MISS_NUM)) THEN
22934 DBMS_SQL.BIND_VARIABLE(p_get_ver_cursor_id, ':instance_id', p_ver_label_query_rec.instance_id);
22935 END IF;
22936
22937 IF( (p_ver_label_query_rec.version_label IS NOT NULL)
22938 AND (p_ver_label_query_rec.version_label <> FND_API.G_MISS_CHAR)) THEN
22939 DBMS_SQL.BIND_VARIABLE(p_get_ver_cursor_id, ':version_label', p_ver_label_query_rec.version_label);
22940 END IF;
22941
22942 IF( (p_ver_label_query_rec.date_time_stamp IS NOT NULL)
22943 AND (p_ver_label_query_rec.date_time_stamp <> FND_API.G_MISS_DATE)) THEN
22944 DBMS_SQL.BIND_VARIABLE(p_get_ver_cursor_id, ':date_time_stamp', p_ver_label_query_rec.date_time_stamp);
22945 END IF;
22946
22947 END Bind_Ver_variable;
22948
22949
22950 /*----------------------------------------------------------*/
22951 /* Procedure name: Gen_Acct_Where_Clause */
22952 /* Description : Procedure used to generate the where */
22953 /* cluase for Party relationship */
22954 /*----------------------------------------------------------*/
22955
22956 PROCEDURE Gen_Ver_Where_Clause
22957 ( p_ver_label_query_rec IN csi_datastructures_pub.version_label_query_rec
22958 ,x_where_clause OUT NOCOPY VARCHAR2
22959 ) IS
22960
22961 BEGIN
22962 -- Assign null at the start
22963 x_where_clause := '';
22964
22965 IF (( p_ver_label_query_rec.version_label_id IS NOT NULL) AND
22966 ( p_ver_label_query_rec.version_label_id <> FND_API.G_MISS_NUM)) THEN
22967 x_where_clause := ' version_label_id = :version_label_id ';
22968 ELSIF ( p_ver_label_query_rec.version_label_id IS NULL) THEN
22969 x_where_clause := ' version_label_id IS NULL ';
22970 END IF;
22971
22972 IF ((p_ver_label_query_rec.instance_id IS NOT NULL) AND
22973 (p_ver_label_query_rec.instance_id <> FND_API.G_MISS_NUM)) THEN
22974 IF x_where_clause IS NULL THEN
22975 x_where_clause := ' instance_id = :instance_id ';
22976 ELSE
22977 x_where_clause := x_where_clause||' AND '||' instance_id = :instance_id ';
22978 END IF;
22979 ELSIF (p_ver_label_query_rec.instance_id IS NULL) THEN
22980 IF x_where_clause IS NULL THEN
22981 x_where_clause := ' instance_id IS NULL ';
22982 ELSE
22983 x_where_clause := x_where_clause||' AND '||' instance_id IS NULL ';
22984 END IF;
22985 END IF;
22986
22987 IF ((p_ver_label_query_rec.version_label IS NOT NULL) AND
22988 (p_ver_label_query_rec.version_label <> FND_API.G_MISS_CHAR)) THEN
22989 IF x_where_clause IS NULL THEN
22990 x_where_clause := ' version_label = :version_label ';
22991 ELSE
22992 x_where_clause := x_where_clause||' AND '||' version_label = :version_label ';
22993 END IF;
22994 ELSIF (p_ver_label_query_rec.version_label IS NULL) THEN
22995 IF x_where_clause IS NULL THEN
22996 x_where_clause := ' version_label IS NULL ';
22997 ELSE
22998 x_where_clause := x_where_clause||' AND '||' version_label IS NULL ';
22999 END IF;
23000 END IF ;
23001
23002 IF ((p_ver_label_query_rec.date_time_stamp IS NOT NULL) AND
23003 (p_ver_label_query_rec.date_time_stamp <> FND_API.G_MISS_DATE)) THEN
23004 IF x_where_clause IS NULL THEN
23005 x_where_clause := ' date_time_stamp = :date_time_stamp ';
23006 ELSE
23007 x_where_clause := x_where_clause||' AND '||
23008 ' date_time_stamp = :date_time_stamp ';
23009 END IF;
23010 ELSIF (p_ver_label_query_rec.date_time_stamp IS NULL) THEN
23011 IF x_where_clause IS NULL THEN
23012 x_where_clause := ' date_time_stamp IS NULL ';
23013 ELSE
23014 x_where_clause := x_where_clause||' AND '||
23015 ' date_time_stamp IS NULL ';
23016 END IF;
23017
23018
23019 END IF;
23020
23021 END Gen_Ver_Where_Clause;
23022
23023
23024 /*-------------------------------------------*/
23025 /* Pocedure name: Create_version_label */
23026 /* Description : procedure for creating */
23027 /* version label for */
23028 /* an Item Instance */
23029 /*-------------------------------------------*/
23030
23031 PROCEDURE create_version_label
23032 ( p_api_version IN NUMBER
23033 ,p_commit IN VARCHAR2
23034 ,p_init_msg_list IN VARCHAR2
23035 ,p_validation_level IN NUMBER
23036 ,p_version_label_rec IN OUT NOCOPY csi_datastructures_pub.version_label_rec
23037 ,p_txn_rec IN OUT NOCOPY csi_datastructures_pub.transaction_rec
23038 ,x_return_status OUT NOCOPY VARCHAR2
23039 ,x_msg_count OUT NOCOPY NUMBER
23040 ,x_msg_data OUT NOCOPY VARCHAR2
23041 ) IS
23042
23043 l_api_name CONSTANT VARCHAR2(30) := 'CREATE_VERSION_LABEL';
23044 l_api_version CONSTANT NUMBER := 1.0 ;
23045 l_debug_level NUMBER ;
23046 l_process_flag BOOLEAN := TRUE ;
23047 l_msg_index NUMBER ;
23048 l_version_label_rec csi_datastructures_pub.version_label_rec;
23049 l_version_label_hist_id NUMBER ;
23050 l_flag VARCHAR2(1) :='N';
23051
23052 BEGIN
23053 -- Standard Start of API savepoint
23054 SAVEPOINT create_version_label_pvt;
23055
23056 -- Standard call to check for call compatibility.
23057 IF NOT FND_API.Compatible_API_Call (l_api_version ,
23058 p_api_version ,
23059 l_api_name ,
23060 G_PKG_NAME )
23061 THEN
23062 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
23063 END IF;
23064
23065 -- Initialize message list if p_init_msg_list is set to TRUE.
23066 IF FND_API.to_Boolean( p_init_msg_list ) THEN
23067 FND_MSG_PUB.initialize;
23068 END IF;
23069
23070 -- Initialize API return status to success
23071 x_return_status := FND_API.G_RET_STS_SUCCESS;
23072
23073 -- Check the profile option debug_level for debug message reporting
23074 l_debug_level:=fnd_profile.value('CSI_DEBUG_LEVEL');
23075
23076 -- If debug_level = 1 then dump the procedure name
23077 IF (l_debug_level > 0) THEN
23078 csi_gen_utility_pvt.put_line ( 'create_version_label');
23079 END IF;
23080
23081 -- If the debug level = 2 then dump all the parameters values.
23082 IF (l_debug_level > 1) THEN
23083 csi_gen_utility_pvt.put_line ( 'create_version_label:'||
23084 p_api_version ||'-'||
23085 p_commit ||'-'||
23086 p_init_msg_list );
23087 -- Dump the records in the log file
23088 csi_gen_utility_pvt.dump_version_label_rec(p_version_label_rec);
23089 END IF;
23090
23091 -- Start API body
23092 --
23093 -- Check if all the required parameters are passed
23094 CSI_Instance_parties_vld_pvt.Check_Reqd_Param_num
23095 ( p_version_label_rec.INSTANCE_ID ,
23096 ' p_version_label_rec.INSTANCE_ID ',
23097 l_api_name );
23098
23099 CSI_Instance_parties_vld_pvt.Check_Reqd_Param_char
23100 ( p_version_label_rec.version_label ,
23101 ' p_version_label_rec.version_label ',
23102 l_api_name );
23103
23104 CSI_Instance_parties_vld_pvt.Check_Reqd_Param_date
23105 ( p_version_label_rec.date_time_stamp ,
23106 ' p_version_label_rec.date_time_stamp ',
23107 l_api_name );
23108 -- Validate the Instance id exists in csi_item_instances
23109 IF NOT( CSI_Instance_parties_vld_pvt.Is_InstanceID_Valid
23110 (p_version_label_rec.INSTANCE_ID)) THEN
23111 RAISE FND_API.G_EXC_ERROR;
23112 END IF;
23113 -- If active_start_date is null or G_MISS value then assign sysdate
23114 IF ((p_version_label_rec.ACTIVE_START_DATE IS NULL ) OR
23115 ( p_version_label_rec.ACTIVE_START_DATE = FND_API.G_MISS_DATE)) THEN
23116 p_version_label_rec.ACTIVE_START_DATE := SYSDATE;
23117 END IF;
23118 -- verify if the active_start_date is valid
23119 IF NOT(CSI_Item_Instance_Vld_Pvt.Is_Ver_StartDate_Valid
23120 (p_version_label_rec.ACTIVE_START_DATE,
23121 p_version_label_rec.ACTIVE_END_DATE ,
23122 p_version_label_rec.INSTANCE_ID )) THEN
23123 RAISE FND_API.G_EXC_ERROR;
23124 END IF;
23125 -- Verify if the active_end_date is valid
23126 IF ((p_version_label_rec.ACTIVE_END_DATE is NOT NULL) AND
23127 (p_version_label_rec.ACTIVE_END_DATE <> FND_API.G_MISS_DATE )) THEN
23128 IF NOT(CSI_Item_Instance_vld_pvt.Is_Ver_EndDate_Valid
23129 (p_version_label_rec.ACTIVE_START_DATE,
23130 p_version_label_rec.ACTIVE_END_DATE ,
23131 p_version_label_rec.INSTANCE_ID )) THEN
23132 RAISE FND_API.G_EXC_ERROR;
23133 END IF;
23134 END IF;
23135
23136 -- Initialize the datetimestamp to SYSDATE if it is null
23137 IF ((p_version_label_rec.date_time_stamp IS NULL ) OR
23138 ( p_version_label_rec.date_time_stamp = FND_API.G_MISS_DATE)) THEN
23139 p_version_label_rec.date_time_stamp := SYSDATE;
23140 END IF;
23141
23142 -- Verify the timestamp is less than the end effective date but greater then
23143 -- the start effective date
23144 IF p_version_label_rec.date_time_stamp is NOT NULL THEN
23145 IF NOT(CSI_Instance_parties_vld_pvt.Is_timestamp_Valid
23146 (p_version_label_rec.date_time_stamp,
23147 p_version_label_rec.INSTANCE_ID )) THEN
23148 RAISE FND_API.G_EXC_ERROR;
23149 END IF;
23150 END IF;
23151
23152
23153 IF p_version_label_rec.VERSION_LABEL_ID is NULL THEN
23154
23155 -- If the vesrion label id passed is null then generate from sequence
23156 -- and check if the value exists . If exists then generate
23157 -- again from the sequence till we get a value that does not exist
23158 while l_process_flag loop
23159 p_version_label_rec.VERSION_LABEL_ID := CSI_Instance_parties_vld_pvt.gen_ver_label_id;
23160 IF NOT(CSI_Instance_parties_vld_pvt.Is_Ver_labelID_exists(p_version_label_rec.VERSION_LABEL_ID,
23161 FALSE )) THEN
23162 l_process_flag := FALSE;
23163 END IF;
23164 end loop;
23165 ELSE
23166 -- Validate the version label id if exist then raise CSI_API_INVALID_PRIMARY_KEY error
23167 IF CSI_Instance_parties_vld_pvt.Is_Ver_labelID_exists(p_version_label_rec.VERSION_LABEL_ID,
23168 TRUE ) THEN
23169 RAISE FND_API.G_EXC_ERROR;
23170 END IF;
23171 END IF;
23172 -- call the Table handlers to insert the record
23173 CSI_I_VERSION_LABELS_PKG.Insert_Row(
23174 p_VERSION_LABEL_ID => p_version_label_rec.VERSION_LABEL_ID,
23175 p_INSTANCE_ID => p_version_label_rec.instance_id ,
23176 p_VERSION_LABEL => p_version_label_rec.version_label,
23177 p_DATE_TIME_STAMP => p_version_label_rec.date_time_stamp,
23178 p_DESCRIPTION => p_version_label_rec.description,
23179 p_ACTIVE_START_DATE => p_version_label_rec.active_start_date,
23180 p_ACTIVE_END_DATE => p_version_label_rec.active_end_date,
23181 p_CONTEXT => p_version_label_rec.context,
23182 p_ATTRIBUTE1 => p_version_label_rec.attribute1,
23183 p_ATTRIBUTE2 => p_version_label_rec.attribute2,
23184 p_ATTRIBUTE3 => p_version_label_rec.attribute3,
23185 p_ATTRIBUTE4 => p_version_label_rec.attribute4,
23186 p_ATTRIBUTE5 => p_version_label_rec.attribute5,
23187 p_ATTRIBUTE6 => p_version_label_rec.attribute6,
23188 p_ATTRIBUTE7 => p_version_label_rec.attribute7,
23189 p_ATTRIBUTE8 => p_version_label_rec.attribute8,
23190 p_ATTRIBUTE9 => p_version_label_rec.attribute9,
23191 p_ATTRIBUTE10 => p_version_label_rec.attribute10,
23192 p_ATTRIBUTE11 => p_version_label_rec.attribute11,
23193 p_ATTRIBUTE12 => p_version_label_rec.attribute12,
23194 p_ATTRIBUTE13 => p_version_label_rec.attribute13,
23195 p_ATTRIBUTE14 => p_version_label_rec.attribute14,
23196 p_ATTRIBUTE15 => p_version_label_rec.attribute15,
23197 p_CREATED_BY => FND_GLOBAL.USER_ID ,
23198 p_CREATION_DATE => SYSDATE ,
23199 p_LAST_UPDATED_BY => FND_GLOBAL.USER_ID ,
23200 p_LAST_UPDATE_DATE => SYSDATE ,
23201 p_LAST_UPDATE_LOGIN => FND_GLOBAL.LOGIN_ID ,
23202 p_OBJECT_VERSION_NUMBER => 1 );
23203
23204
23205 -- Call create_transaction to create txn log
23206 CSI_TRANSACTIONS_PVT.Create_transaction
23207 (
23208 p_api_version => p_api_version
23209 ,p_commit => p_commit
23210 ,p_init_msg_list => p_init_msg_list
23211 ,p_validation_level => p_validation_level
23212 ,p_Success_If_Exists_Flag => 'Y'
23213 ,P_transaction_rec => p_txn_rec
23214 ,x_return_status => x_return_status
23215 ,x_msg_count => x_msg_count
23216 ,x_msg_data => x_msg_data );
23217
23218 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
23219 l_msg_index := 1;
23220 WHILE x_msg_count > 0 LOOP
23221 x_msg_data := FND_MSG_PUB.GET(
23222 l_msg_index,
23223 FND_API.G_FALSE );
23224 CSI_gen_utility_pvt.put_line( 'message data = '||x_msg_data);
23225 l_msg_index := l_msg_index + 1;
23226 x_msg_count := x_msg_count - 1;
23227 END LOOP;
23228 RAISE FND_API.G_EXC_ERROR;
23229 END IF;
23230
23231 -- Generate a unique instance_party_history_id from the sequence
23232 l_version_label_hist_id := CSI_Instance_parties_vld_pvt.gen_ver_label_hist_id;
23233
23234 -- Call the table handlers to insert into history table
23235
23236 CSI_I_VERSION_LABELS_H_PKG.Insert_Row
23237 (
23238 px_VERSION_LABEL_HISTORY_ID => l_version_label_hist_id ,
23239 p_VERSION_LABEL_ID => p_version_label_rec.VERSION_LABEL_ID ,
23240 p_TRANSACTION_ID => p_txn_rec.TRANSACTION_ID ,
23241 p_OLD_VERSION_LABEL => NULL ,
23242 p_NEW_VERSION_LABEL => p_version_label_rec.VERSION_LABEL ,
23243 p_OLD_DESCRIPTION => NULL ,
23244 p_NEW_DESCRIPTION => p_version_label_rec.DESCRIPTION ,
23245 p_OLD_DATE_TIME_STAMP => NULL ,
23246 p_NEW_DATE_TIME_STAMP => p_version_label_rec.DATE_TIME_STAMP ,
23247 p_OLD_ACTIVE_START_DATE => NULL ,
23248 p_NEW_ACTIVE_START_DATE => p_version_label_rec.ACTIVE_START_DATE ,
23249 p_OLD_ACTIVE_END_DATE => NULL ,
23250 p_NEW_ACTIVE_END_DATE => p_version_label_rec.ACTIVE_END_DATE ,
23251 p_OLD_CONTEXT => NULL ,
23252 p_NEW_CONTEXT => p_version_label_rec.CONTEXT ,
23253 p_OLD_ATTRIBUTE1 => NULL ,
23254 p_NEW_ATTRIBUTE1 => p_version_label_rec.ATTRIBUTE1 ,
23255 p_OLD_ATTRIBUTE2 => NULL ,
23256 p_NEW_ATTRIBUTE2 => p_version_label_rec.ATTRIBUTE2 ,
23257 p_OLD_ATTRIBUTE3 => NULL ,
23258 p_NEW_ATTRIBUTE3 => p_version_label_rec.ATTRIBUTE3 ,
23259 p_OLD_ATTRIBUTE4 => NULL ,
23260 p_NEW_ATTRIBUTE4 => p_version_label_rec.ATTRIBUTE4 ,
23261 p_OLD_ATTRIBUTE5 => NULL ,
23262 p_NEW_ATTRIBUTE5 => p_version_label_rec.ATTRIBUTE5 ,
23263 p_OLD_ATTRIBUTE6 => NULL ,
23264 p_NEW_ATTRIBUTE6 => p_version_label_rec.ATTRIBUTE6 ,
23265 p_OLD_ATTRIBUTE7 => NULL ,
23266 p_NEW_ATTRIBUTE7 => p_version_label_rec.ATTRIBUTE7 ,
23267 p_OLD_ATTRIBUTE8 => NULL ,
23268 p_NEW_ATTRIBUTE8 => p_version_label_rec.ATTRIBUTE8 ,
23269 p_OLD_ATTRIBUTE9 => NULL ,
23270 p_NEW_ATTRIBUTE9 => p_version_label_rec.ATTRIBUTE9 ,
23271 p_OLD_ATTRIBUTE10 => NULL ,
23272 p_NEW_ATTRIBUTE10 => p_version_label_rec.ATTRIBUTE10,
23273 p_OLD_ATTRIBUTE11 => NULL ,
23274 p_NEW_ATTRIBUTE11 => p_version_label_rec.ATTRIBUTE11,
23275 p_OLD_ATTRIBUTE12 => NULL ,
23276 p_NEW_ATTRIBUTE12 => p_version_label_rec.ATTRIBUTE12,
23277 p_OLD_ATTRIBUTE13 => NULL ,
23278 p_NEW_ATTRIBUTE13 => p_version_label_rec.ATTRIBUTE13,
23279 p_OLD_ATTRIBUTE14 => NULL ,
23280 p_NEW_ATTRIBUTE14 => p_version_label_rec.ATTRIBUTE14,
23281 p_OLD_ATTRIBUTE15 => NULL ,
23282 p_NEW_ATTRIBUTE15 => p_version_label_rec.ATTRIBUTE15,
23283 p_FULL_DUMP_FLAG => 'N' ,
23284 p_CREATED_BY => FND_GLOBAL.USER_ID ,
23285 p_CREATION_DATE => SYSDATE ,
23286 p_LAST_UPDATED_BY => FND_GLOBAL.USER_ID ,
23287 p_LAST_UPDATE_DATE => SYSDATE ,
23288 p_LAST_UPDATE_LOGIN => FND_GLOBAL.LOGIN_ID ,
23289 p_OBJECT_VERSION_NUMBER => 1 );
23290
23291
23292 --
23293 -- End of API body
23294
23295 -- Standard check of p_commit.
23296
23297 IF FND_API.To_Boolean( p_commit ) THEN
23298 COMMIT WORK;
23299 END IF;
23300
23301 -- Standard call to get message count and if count is get message info.
23302 FND_MSG_PUB.Count_And_Get
23303 (p_count => x_msg_count ,
23304 p_data => x_msg_data );
23305
23306 EXCEPTION
23307 WHEN FND_API.G_EXC_ERROR THEN
23308 ROLLBACK TO create_version_label_pvt;
23309 x_return_status := FND_API.G_RET_STS_ERROR ;
23310 FND_MSG_PUB.Count_And_Get
23311 ( p_count => x_msg_count,
23312 p_data => x_msg_data);
23313 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
23314 ROLLBACK TO create_version_label_pvt;
23315 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
23316 FND_MSG_PUB.Count_And_Get
23317 ( p_count => x_msg_count,
23318 p_data => x_msg_data);
23319 WHEN OTHERS THEN
23320 ROLLBACK TO create_version_label_pvt;
23321 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
23322 IF FND_MSG_PUB.Check_Msg_Level
23323 (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
23324 THEN
23325 FND_MSG_PUB.Add_Exc_Msg
23326 ( G_PKG_NAME, l_api_name );
23327 END IF;
23328 FND_MSG_PUB.Count_And_Get
23329 ( p_count => x_msg_count,
23330 p_data => x_msg_data);
23331 END create_version_label;
23332
23333
23334 /*-------------------------------------------------------*/
23335 /* Procedure name: Update_version_label */
23336 /* Description : procedure for Update */
23337 /* version label for */
23338 /* an Item Instance */
23339 /*-------------------------------------------------------*/
23340
23341 PROCEDURE update_version_label
23342 ( p_api_version IN NUMBER
23343 ,p_commit IN VARCHAR2
23344 ,p_init_msg_list IN VARCHAR2
23345 ,p_validation_level IN NUMBER
23346 ,p_version_label_rec IN csi_datastructures_pub.version_label_rec
23347 ,p_txn_rec IN OUT NOCOPY csi_datastructures_pub.transaction_rec
23348 ,p_call_transaction IN VARCHAR2
23349 ,x_return_status OUT NOCOPY VARCHAR2
23350 ,x_msg_count OUT NOCOPY NUMBER
23351 ,x_msg_data OUT NOCOPY VARCHAR2
23352 ) IS
23353
23354 l_api_name CONSTANT VARCHAR2(30) := 'UPDATE_VERSION_LABEL';
23355 l_api_version CONSTANT NUMBER := 1.0;
23356 l_debug_level NUMBER;
23357 l_version_label_rec csi_datastructures_pub.version_label_rec;
23358 l_curr_ver_label_rec csi_datastructures_pub.version_label_rec;
23359 l_temp_ver_label_rec csi_datastructures_pub.version_label_rec;
23360 l_msg_index NUMBER;
23361 l_OBJECT_VERSION_NUMBER NUMBER;
23362 l_mod_value NUMBER;
23363 l_version_label_hist_id NUMBER;
23364 x_msg_index_out NUMBER;
23365 l_full_dump_frequency NUMBER;
23366 l_flag VARCHAR2(1) :='N';
23367 l_ver_label_hist_rec csi_datastructures_pub.version_label_history_rec;
23368
23369 CURSOR get_curr_ver_label_rec (p_ver_label_id IN NUMBER) IS
23370 SELECT
23371 VERSION_LABEL_ID ,
23372 INSTANCE_ID ,
23373 VERSION_LABEL ,
23374 DESCRIPTION ,
23375 DATE_TIME_STAMP ,
23376 active_start_date ,
23377 active_end_date ,
23378 context ,
23379 attribute1 ,
23380 attribute2 ,
23381 attribute3 ,
23382 attribute4 ,
23383 attribute5 ,
23384 attribute6 ,
23385 attribute7 ,
23386 attribute8 ,
23387 attribute9 ,
23388 attribute10 ,
23389 attribute11 ,
23390 attribute12 ,
23391 attribute13 ,
23392 attribute14 ,
23393 attribute15 ,
23394 object_version_number -- ,
23395 -- null parent_tbl_index ,
23396 -- null processed_flag ,
23397 -- null interface_id
23398 FROM CSI_I_VERSION_LABELS
23399 WHERE VERSION_LABEL_ID = p_ver_label_id
23400 AND (( ACTIVE_END_DATE IS NULL) OR (ACTIVE_END_DATE >= SYSDATE))
23401 FOR UPDATE OF OBJECT_VERSION_NUMBER ;
23402
23403 CURSOR version_hist_csr (p_version_hist_id NUMBER) IS
23404 SELECT *
23405 FROM csi_i_version_labels_h
23406 WHERE csi_i_version_labels_h.version_label_history_id = p_version_hist_id
23407 FOR UPDATE OF OBJECT_VERSION_NUMBER ;
23408 l_version_hist_csr version_hist_csr%ROWTYPE;
23409 l_version_hist_id NUMBER;
23410 BEGIN
23411
23412 -- Standard Start of API savepoint
23413 SAVEPOINT update_version_label_pvt;
23414
23415 -- Standard call to check for call compatibility.
23416 IF NOT FND_API.Compatible_API_Call (l_api_version ,
23417 p_api_version ,
23418 l_api_name ,
23419 G_PKG_NAME )
23420 THEN
23421 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
23422 END IF;
23423
23424 -- Initialize message list if p_init_msg_list is set to TRUE.
23425 IF FND_API.to_Boolean( p_init_msg_list ) THEN
23426 FND_MSG_PUB.initialize;
23427 END IF;
23428
23429 -- Initialize API return status to success
23430 x_return_status := FND_API.G_RET_STS_SUCCESS;
23431
23432 -- Check the profile option debug_level for debug message reporting
23433 l_debug_level:=fnd_profile.value('CSI_DEBUG_LEVEL');
23434
23435 -- If debug_level = 1 then dump the procedure name
23436 IF (l_debug_level > 0) THEN
23437 CSI_gen_utility_pvt.put_line( 'update_version_label');
23438 END IF;
23439
23440 -- If the debug level = 2 then dump all the parameters values.
23441 IF (l_debug_level > 1) THEN
23442 CSI_gen_utility_pvt.put_line( 'update_version_label:'||
23443 p_api_version ||'-'||
23444 p_commit ||'-'||
23445 p_init_msg_list ||'-'||
23446 p_validation_level );
23447 END IF;
23448
23449 -- Start API body
23450 --
23451 -- Check if all the required parameters are passed
23452 CSI_Instance_parties_vld_pvt.Check_Reqd_Param_num
23453 ( p_version_label_rec.version_label_id ,
23454 ' p_version_label_rec.version_label_id ',
23455 l_api_name );
23456
23457 -- Validate the Instance id exists in csi_item_instances
23458 IF p_version_label_rec.INSTANCE_ID <> FND_API.G_MISS_NUM THEN
23459 IF NOT( CSI_Instance_parties_vld_pvt.Is_InstanceID_Valid
23460 (p_version_label_rec.INSTANCE_ID)) THEN
23461 RAISE FND_API.G_EXC_ERROR;
23462 END IF;
23463 END IF;
23464
23465 IF p_version_label_rec.VERSION_LABEL_ID <> FND_API.G_MISS_NUM THEN
23466
23467 -- Validate the version label id if exist then raise CSI_API_INVALID_PRIMARY_KEY error
23468 IF NOT(CSI_Instance_parties_vld_pvt.Is_Ver_labelID_exists(p_version_label_rec.VERSION_LABEL_ID,
23469 FALSE )) THEN
23470 RAISE FND_API.G_EXC_ERROR;
23471 END IF;
23472 END IF;
23473
23474 -- check if the object_version_number passed matches with the one
23475 -- in the database else raise error
23476 OPEN get_curr_ver_label_rec(p_version_label_rec.VERSION_LABEL_ID);
23477 FETCH get_curr_ver_label_rec INTO l_curr_ver_label_rec;
23478 IF (l_curr_ver_label_rec.object_version_number <> nvl(p_version_label_rec.OBJECT_VERSION_NUMBER,-1)) THEN
23479 FND_MESSAGE.Set_Name('CSI', 'CSI_API_OBJ_VER_MISMATCH');
23480 FND_MSG_PUB.ADD;
23481 RAISE FND_API.G_EXC_ERROR;
23482 END IF;
23483 IF get_curr_ver_label_rec%NOTFOUND THEN
23484 FND_MESSAGE.Set_Name('CSI', 'CSI_API_RECORD_LOCKED');
23485 FND_MSG_PUB.ADD;
23486 RAISE FND_API.G_EXC_ERROR;
23487 END IF;
23488 CLOSE get_curr_ver_label_rec;
23489
23490 -- Increment the object_version_number before updating
23491 l_OBJECT_VERSION_NUMBER := l_curr_ver_label_rec.OBJECT_VERSION_NUMBER + 1 ;
23492
23493 CSI_I_VERSION_LABELS_PKG.Update_Row
23494 (
23495 p_VERSION_LABEL_ID => p_version_label_rec.version_label_id,
23496 p_INSTANCE_ID => p_version_label_rec.instance_id,
23497 p_VERSION_LABEL => p_version_label_rec.VERSION_LABEL,
23498 p_DATE_TIME_STAMP => p_version_label_rec.DATE_TIME_STAMP,
23499 p_DESCRIPTION => p_version_label_rec.DESCRIPTION ,
23500 p_ACTIVE_START_DATE => p_version_label_rec.ACTIVE_START_DATE,
23501 p_ACTIVE_END_DATE => p_version_label_rec.ACTIVE_END_DATE,
23502 p_CONTEXT => p_version_label_rec.CONTEXT ,
23503 p_ATTRIBUTE1 => p_version_label_rec.ATTRIBUTE1,
23504 p_ATTRIBUTE2 => p_version_label_rec.ATTRIBUTE2,
23505 p_ATTRIBUTE3 => p_version_label_rec.ATTRIBUTE3,
23506 p_ATTRIBUTE4 => p_version_label_rec.ATTRIBUTE4,
23507 p_ATTRIBUTE5 => p_version_label_rec.ATTRIBUTE5,
23508 p_ATTRIBUTE6 => p_version_label_rec.ATTRIBUTE6,
23509 p_ATTRIBUTE7 => p_version_label_rec.ATTRIBUTE7,
23510 p_ATTRIBUTE8 => p_version_label_rec.ATTRIBUTE8,
23511 p_ATTRIBUTE9 => p_version_label_rec.ATTRIBUTE9,
23512 p_ATTRIBUTE10 => p_version_label_rec.ATTRIBUTE10,
23513 p_ATTRIBUTE11 => p_version_label_rec.ATTRIBUTE11,
23514 p_ATTRIBUTE12 => p_version_label_rec.ATTRIBUTE12,
23515 p_ATTRIBUTE13 => p_version_label_rec.ATTRIBUTE13,
23516 p_ATTRIBUTE14 => p_version_label_rec.ATTRIBUTE14,
23517 p_ATTRIBUTE15 => p_version_label_rec.ATTRIBUTE15,
23518 p_CREATED_BY => fnd_api.g_miss_num ,
23519 p_CREATION_DATE => fnd_api.g_miss_date ,
23520 p_LAST_UPDATED_BY => FND_GLOBAL.USER_ID ,
23521 p_LAST_UPDATE_DATE => sysdate ,
23522 p_LAST_UPDATE_LOGIN => FND_GLOBAL.LOGIN_ID,
23523 p_OBJECT_VERSION_NUMBER => l_OBJECT_VERSION_NUMBER );
23524
23525
23526 -- Call create_transaction to create txn log
23527 IF p_call_transaction=fnd_api.g_true
23528 THEN
23529 CSI_TRANSACTIONS_PVT.Create_transaction
23530 (
23531 p_api_version => p_api_version
23532 ,p_commit => p_commit
23533 ,p_init_msg_list => p_init_msg_list
23534 ,p_validation_level => p_validation_level
23535 ,p_Success_If_Exists_Flag => 'Y'
23536 ,P_transaction_rec => p_txn_rec
23537 ,x_return_status => x_return_status
23538 ,x_msg_count => x_msg_count
23539 ,x_msg_data => x_msg_data );
23540
23541 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
23542 FOR i in 1..x_msg_Count LOOP
23543 FND_MSG_PUB.Get(p_msg_index => i,
23544 p_encoded => 'F',
23545 p_data => x_msg_data,
23546 p_msg_index_out => x_msg_index_out );
23547 CSI_gen_utility_pvt.put_line( 'message data = '||x_msg_data);
23548 End LOOP;
23549 RAISE FND_API.G_EXC_ERROR;
23550 END IF;
23551 END IF;
23552 -- Generate a unique instance_party_history_id from the sequence
23553 l_version_label_hist_id := CSI_Instance_parties_vld_pvt.gen_ver_label_hist_id;
23554
23555 -- Get the full_dump_frequency from csi_install_parameter
23556 --
23557 IF csi_datastructures_pub.g_install_param_rec.fetch_flag IS NULL THEN
23558 csi_gen_utility_pvt.populate_install_param_rec;
23559 END IF;
23560 --
23561 l_full_dump_frequency := csi_datastructures_pub.g_install_param_rec.history_full_dump_frequency;
23562 --
23563 IF l_full_dump_frequency IS NULL THEN
23564 FND_MESSAGE.SET_NAME('CSI','CSI_API_GET_FULL_DUMP_FAILED');
23565 FND_MSG_PUB.ADD;
23566 RAISE FND_API.G_EXC_ERROR;
23567 END IF;
23568 --
23569 select mod(l_object_version_number,l_full_dump_frequency)
23570 into l_mod_value
23571 from dual;
23572
23573 -- Start of modification for Bug#2547034 on 09/20/02 - rtalluri
23574 BEGIN
23575 SELECT version_label_history_id
23576 INTO l_version_hist_id
23577 FROM csi_i_version_labels_h h
23578 WHERE h.transaction_id = p_txn_rec.transaction_id
23579 AND h.version_label_id = p_version_label_rec.version_label_id;
23580
23581 OPEN version_hist_csr(l_version_hist_id);
23582 FETCH version_hist_csr INTO l_version_hist_csr ;
23583 CLOSE version_hist_csr;
23584
23585 IF l_version_hist_csr.full_dump_flag = 'Y'
23586 THEN
23587 CSI_I_VERSION_LABELS_H_PKG.Update_Row
23588 (
23589 p_VERSION_LABEL_HISTORY_ID => l_version_hist_id ,
23590 p_VERSION_LABEL_ID => fnd_api.g_miss_num ,
23591 p_TRANSACTION_ID => fnd_api.g_miss_num ,
23592 p_OLD_VERSION_LABEL => fnd_api.g_miss_char ,
23593 p_NEW_VERSION_LABEL => p_version_label_rec.VERSION_LABEL ,
23594 p_OLD_DESCRIPTION => fnd_api.g_miss_char ,
23595 p_NEW_DESCRIPTION => p_version_label_rec.DESCRIPTION ,
23596 p_OLD_DATE_TIME_STAMP => fnd_api.g_miss_date ,
23597 p_NEW_DATE_TIME_STAMP => p_version_label_rec.DATE_TIME_STAMP ,
23598 p_OLD_ACTIVE_START_DATE => fnd_api.g_miss_date ,
23599 p_NEW_ACTIVE_START_DATE => p_version_label_rec.ACTIVE_START_DATE ,
23600 p_OLD_ACTIVE_END_DATE => fnd_api.g_miss_date ,
23601 p_NEW_ACTIVE_END_DATE => p_version_label_rec.ACTIVE_END_DATE ,
23602 p_OLD_CONTEXT => fnd_api.g_miss_char ,
23603 p_NEW_CONTEXT => p_version_label_rec.CONTEXT ,
23604 p_OLD_ATTRIBUTE1 => fnd_api.g_miss_char ,
23605 p_NEW_ATTRIBUTE1 => p_version_label_rec.ATTRIBUTE1 ,
23606 p_OLD_ATTRIBUTE2 => fnd_api.g_miss_char ,
23607 p_NEW_ATTRIBUTE2 => p_version_label_rec.ATTRIBUTE2 ,
23608 p_OLD_ATTRIBUTE3 => fnd_api.g_miss_char ,
23609 p_NEW_ATTRIBUTE3 => p_version_label_rec.ATTRIBUTE3 ,
23610 p_OLD_ATTRIBUTE4 => fnd_api.g_miss_char ,
23611 p_NEW_ATTRIBUTE4 => p_version_label_rec.ATTRIBUTE4 ,
23612 p_OLD_ATTRIBUTE5 => fnd_api.g_miss_char ,
23613 p_NEW_ATTRIBUTE5 => p_version_label_rec.ATTRIBUTE5 ,
23614 p_OLD_ATTRIBUTE6 => fnd_api.g_miss_char ,
23615 p_NEW_ATTRIBUTE6 => p_version_label_rec.ATTRIBUTE6 ,
23616 p_OLD_ATTRIBUTE7 => fnd_api.g_miss_char ,
23617 p_NEW_ATTRIBUTE7 => p_version_label_rec.ATTRIBUTE7 ,
23618 p_OLD_ATTRIBUTE8 => fnd_api.g_miss_char ,
23619 p_NEW_ATTRIBUTE8 => p_version_label_rec.ATTRIBUTE8 ,
23620 p_OLD_ATTRIBUTE9 => fnd_api.g_miss_char ,
23621 p_NEW_ATTRIBUTE9 => p_version_label_rec.ATTRIBUTE9 ,
23622 p_OLD_ATTRIBUTE10 => fnd_api.g_miss_char ,
23623 p_NEW_ATTRIBUTE10 => p_version_label_rec.ATTRIBUTE10 ,
23624 p_OLD_ATTRIBUTE11 => fnd_api.g_miss_char ,
23625 p_NEW_ATTRIBUTE11 => p_version_label_rec.ATTRIBUTE11 ,
23626 p_OLD_ATTRIBUTE12 => fnd_api.g_miss_char ,
23627 p_NEW_ATTRIBUTE12 => p_version_label_rec.ATTRIBUTE12 ,
23628 p_OLD_ATTRIBUTE13 => fnd_api.g_miss_char ,
23629 p_NEW_ATTRIBUTE13 => p_version_label_rec.ATTRIBUTE13 ,
23630 p_OLD_ATTRIBUTE14 => fnd_api.g_miss_char ,
23631 p_NEW_ATTRIBUTE14 => p_version_label_rec.ATTRIBUTE14 ,
23632 p_OLD_ATTRIBUTE15 => fnd_api.g_miss_char ,
23633 p_NEW_ATTRIBUTE15 => p_version_label_rec.ATTRIBUTE15 ,
23634 p_FULL_DUMP_FLAG => fnd_api.g_miss_char ,
23635 p_CREATED_BY => fnd_api.g_miss_num ,
23636 p_CREATION_DATE => fnd_api.g_miss_date ,
23637 p_LAST_UPDATED_BY => FND_GLOBAL.USER_ID ,
23638 p_LAST_UPDATE_DATE => SYSDATE ,
23639 p_LAST_UPDATE_LOGIN => FND_GLOBAL.LOGIN_ID ,
23640 p_OBJECT_VERSION_NUMBER => fnd_api.g_miss_num );
23641
23642 ELSE
23643 --
23644 IF ( l_version_hist_csr.old_version_label IS NULL
23645 AND l_version_hist_csr.new_version_label IS NULL ) THEN
23646 IF ( p_version_label_rec.version_label = l_curr_ver_label_rec.version_label )
23647 OR ( p_version_label_rec.version_label = fnd_api.g_miss_char ) THEN
23648 l_version_hist_csr.old_version_label := NULL;
23649 l_version_hist_csr.new_version_label := NULL;
23650 ELSE
23651 l_version_hist_csr.old_version_label := fnd_api.g_miss_char;
23652 l_version_hist_csr.new_version_label := p_version_label_rec.version_label;
23653 END IF;
23654 ELSE
23655 l_version_hist_csr.old_version_label := fnd_api.g_miss_char;
23656 l_version_hist_csr.new_version_label := p_version_label_rec.version_label;
23657 END IF;
23658 --
23659 IF ( l_version_hist_csr.old_date_time_stamp IS NULL
23660 AND l_version_hist_csr.new_date_time_stamp IS NULL ) THEN
23661 IF ( p_version_label_rec.date_time_stamp = l_curr_ver_label_rec.date_time_stamp )
23662 OR ( p_version_label_rec.date_time_stamp = fnd_api.g_miss_date ) THEN
23663 l_version_hist_csr.old_date_time_stamp := NULL;
23664 l_version_hist_csr.new_date_time_stamp := NULL;
23665 ELSE
23666 l_version_hist_csr.old_date_time_stamp := fnd_api.g_miss_date;
23667 l_version_hist_csr.new_date_time_stamp := p_version_label_rec.date_time_stamp;
23668 END IF;
23669 ELSE
23670 l_version_hist_csr.old_date_time_stamp := fnd_api.g_miss_date;
23671 l_version_hist_csr.new_date_time_stamp := p_version_label_rec.date_time_stamp;
23672 END IF;
23673 --
23674 IF ( l_version_hist_csr.old_description IS NULL
23675 AND l_version_hist_csr.new_description IS NULL ) THEN
23676 IF ( p_version_label_rec.description = l_curr_ver_label_rec.description )
23677 OR ( p_version_label_rec.description = fnd_api.g_miss_char ) THEN
23678 l_version_hist_csr.old_description := NULL;
23679 l_version_hist_csr.new_description := NULL;
23680 ELSE
23681 l_version_hist_csr.old_description := fnd_api.g_miss_char;
23682 l_version_hist_csr.new_description := p_version_label_rec.description;
23683 END IF;
23684 ELSE
23685 l_version_hist_csr.old_description := fnd_api.g_miss_char;
23686 l_version_hist_csr.new_description := p_version_label_rec.description;
23687 END IF;
23688 --
23689 IF ( l_version_hist_csr.old_active_start_date IS NULL
23690 AND l_version_hist_csr.new_active_start_date IS NULL ) THEN
23691 IF ( p_version_label_rec.active_start_date = l_curr_ver_label_rec.active_start_date )
23692 OR ( p_version_label_rec.active_start_date = fnd_api.g_miss_date ) THEN
23693 l_version_hist_csr.old_active_start_date := NULL;
23694 l_version_hist_csr.new_active_start_date := NULL;
23695 ELSE
23696 l_version_hist_csr.old_active_start_date := fnd_api.g_miss_date;
23697 l_version_hist_csr.new_active_start_date := p_version_label_rec.active_start_date;
23698 END IF;
23699 ELSE
23700 l_version_hist_csr.old_active_start_date := fnd_api.g_miss_date;
23701 l_version_hist_csr.new_active_start_date := p_version_label_rec.active_start_date;
23702 END IF;
23703 --
23704 IF ( l_version_hist_csr.old_active_end_date IS NULL
23705 AND l_version_hist_csr.new_active_end_date IS NULL ) THEN
23706 IF ( p_version_label_rec.active_end_date = l_curr_ver_label_rec.active_end_date )
23707 OR ( p_version_label_rec.active_end_date = fnd_api.g_miss_date ) THEN
23708 l_version_hist_csr.old_active_end_date := NULL;
23709 l_version_hist_csr.new_active_end_date := NULL;
23710 ELSE
23711 l_version_hist_csr.old_active_end_date := fnd_api.g_miss_date;
23712 l_version_hist_csr.new_active_end_date := p_version_label_rec.active_end_date;
23713 END IF;
23714 ELSE
23715 l_version_hist_csr.old_active_end_date := fnd_api.g_miss_date;
23716 l_version_hist_csr.new_active_end_date := p_version_label_rec.active_end_date;
23717 END IF;
23718 --
23719 IF ( l_version_hist_csr.old_context IS NULL
23720 AND l_version_hist_csr.new_context IS NULL ) THEN
23721 IF ( p_version_label_rec.context = l_curr_ver_label_rec.context )
23722 OR ( p_version_label_rec.context = fnd_api.g_miss_char ) THEN
23723 l_version_hist_csr.old_context := NULL;
23724 l_version_hist_csr.new_context := NULL;
23725 ELSE
23726 l_version_hist_csr.old_context := fnd_api.g_miss_char;
23727 l_version_hist_csr.new_context := p_version_label_rec.context;
23728 END IF;
23729 ELSE
23730 l_version_hist_csr.old_context := fnd_api.g_miss_char;
23731 l_version_hist_csr.new_context := p_version_label_rec.context;
23732 END IF;
23733 --
23734 IF ( l_version_hist_csr.old_attribute1 IS NULL
23735 AND l_version_hist_csr.new_attribute1 IS NULL ) THEN
23736 IF ( p_version_label_rec.attribute1 = l_curr_ver_label_rec.attribute1 )
23737 OR ( p_version_label_rec.attribute1 = fnd_api.g_miss_char ) THEN
23738 l_version_hist_csr.old_attribute1 := NULL;
23739 l_version_hist_csr.new_attribute1 := NULL;
23740 ELSE
23741 l_version_hist_csr.old_attribute1 := fnd_api.g_miss_char;
23742 l_version_hist_csr.new_attribute1 := p_version_label_rec.attribute1;
23743 END IF;
23744 ELSE
23745 l_version_hist_csr.old_attribute1 := fnd_api.g_miss_char;
23746 l_version_hist_csr.new_attribute1 := p_version_label_rec.attribute1;
23747 END IF;
23748 --
23749 IF ( l_version_hist_csr.old_attribute2 IS NULL
23750 AND l_version_hist_csr.new_attribute2 IS NULL ) THEN
23751 IF ( p_version_label_rec.attribute2 = l_curr_ver_label_rec.attribute2 )
23752 OR ( p_version_label_rec.attribute2 = fnd_api.g_miss_char ) THEN
23753 l_version_hist_csr.old_attribute2 := NULL;
23754 l_version_hist_csr.new_attribute2 := NULL;
23755 ELSE
23756 l_version_hist_csr.old_attribute2 := fnd_api.g_miss_char;
23757 l_version_hist_csr.new_attribute2 := p_version_label_rec.attribute2;
23758 END IF;
23759 ELSE
23760 l_version_hist_csr.old_attribute2 := fnd_api.g_miss_char;
23761 l_version_hist_csr.new_attribute2 := p_version_label_rec.attribute2;
23762 END IF;
23763 --
23764 IF ( l_version_hist_csr.old_attribute3 IS NULL
23765 AND l_version_hist_csr.new_attribute3 IS NULL ) THEN
23766 IF ( p_version_label_rec.attribute3 = l_curr_ver_label_rec.attribute3 )
23767 OR ( p_version_label_rec.attribute3 = fnd_api.g_miss_char ) THEN
23768 l_version_hist_csr.old_attribute3 := NULL;
23769 l_version_hist_csr.new_attribute3 := NULL;
23770 ELSE
23771 l_version_hist_csr.old_attribute3 := fnd_api.g_miss_char;
23772 l_version_hist_csr.new_attribute3 := p_version_label_rec.attribute3;
23773 END IF;
23774 ELSE
23775 l_version_hist_csr.old_attribute3 := fnd_api.g_miss_char;
23776 l_version_hist_csr.new_attribute3 := p_version_label_rec.attribute3;
23777 END IF;
23778 --
23779 IF ( l_version_hist_csr.old_attribute4 IS NULL
23780 AND l_version_hist_csr.new_attribute4 IS NULL ) THEN
23781 IF ( p_version_label_rec.attribute4 = l_curr_ver_label_rec.attribute4 )
23782 OR ( p_version_label_rec.attribute4 = fnd_api.g_miss_char ) THEN
23783 l_version_hist_csr.old_attribute4 := NULL;
23784 l_version_hist_csr.new_attribute4 := NULL;
23785 ELSE
23786 l_version_hist_csr.old_attribute4 := fnd_api.g_miss_char;
23787 l_version_hist_csr.new_attribute4 := p_version_label_rec.attribute4;
23788 END IF;
23789 ELSE
23790 l_version_hist_csr.old_attribute4 := fnd_api.g_miss_char;
23791 l_version_hist_csr.new_attribute4 := p_version_label_rec.attribute4;
23792 END IF;
23793 --
23794 IF ( l_version_hist_csr.old_attribute5 IS NULL
23795 AND l_version_hist_csr.new_attribute5 IS NULL ) THEN
23796 IF ( p_version_label_rec.attribute5 = l_curr_ver_label_rec.attribute5 )
23797 OR ( p_version_label_rec.attribute5 = fnd_api.g_miss_char ) THEN
23798 l_version_hist_csr.old_attribute5 := NULL;
23799 l_version_hist_csr.new_attribute5 := NULL;
23800 ELSE
23801 l_version_hist_csr.old_attribute5 := fnd_api.g_miss_char;
23802 l_version_hist_csr.new_attribute5 := p_version_label_rec.attribute5;
23803 END IF;
23804 ELSE
23805 l_version_hist_csr.old_attribute5 := fnd_api.g_miss_char;
23806 l_version_hist_csr.new_attribute5 := p_version_label_rec.attribute5;
23807 END IF;
23808 --
23809 IF ( l_version_hist_csr.old_attribute6 IS NULL
23810 AND l_version_hist_csr.new_attribute6 IS NULL ) THEN
23811 IF ( p_version_label_rec.attribute6 = l_curr_ver_label_rec.attribute6 )
23812 OR ( p_version_label_rec.attribute6 = fnd_api.g_miss_char ) THEN
23813 l_version_hist_csr.old_attribute6 := NULL;
23814 l_version_hist_csr.new_attribute6 := NULL;
23815 ELSE
23816 l_version_hist_csr.old_attribute6 := fnd_api.g_miss_char;
23817 l_version_hist_csr.new_attribute6 := p_version_label_rec.attribute6;
23818 END IF;
23819 ELSE
23820 l_version_hist_csr.old_attribute6 := fnd_api.g_miss_char;
23821 l_version_hist_csr.new_attribute6 := p_version_label_rec.attribute6;
23822 END IF;
23823 --
23824 IF ( l_version_hist_csr.old_attribute7 IS NULL
23825 AND l_version_hist_csr.new_attribute7 IS NULL ) THEN
23826 IF ( p_version_label_rec.attribute7 = l_curr_ver_label_rec.attribute7 )
23827 OR ( p_version_label_rec.attribute7 = fnd_api.g_miss_char ) THEN
23828 l_version_hist_csr.old_attribute7 := NULL;
23829 l_version_hist_csr.new_attribute7 := NULL;
23830 ELSE
23831 l_version_hist_csr.old_attribute7 := fnd_api.g_miss_char;
23832 l_version_hist_csr.new_attribute7 := p_version_label_rec.attribute7;
23833 END IF;
23834 ELSE
23835 l_version_hist_csr.old_attribute7 := fnd_api.g_miss_char;
23836 l_version_hist_csr.new_attribute7 := p_version_label_rec.attribute7;
23837 END IF;
23838 --
23839 IF ( l_version_hist_csr.old_attribute8 IS NULL
23840 AND l_version_hist_csr.new_attribute8 IS NULL ) THEN
23841 IF ( p_version_label_rec.attribute8 = l_curr_ver_label_rec.attribute8 )
23842 OR ( p_version_label_rec.attribute8 = fnd_api.g_miss_char ) THEN
23843 l_version_hist_csr.old_attribute8 := NULL;
23844 l_version_hist_csr.new_attribute8 := NULL;
23845 ELSE
23846 l_version_hist_csr.old_attribute8 := fnd_api.g_miss_char;
23847 l_version_hist_csr.new_attribute8 := p_version_label_rec.attribute8;
23848 END IF;
23849 ELSE
23850 l_version_hist_csr.old_attribute8 := fnd_api.g_miss_char;
23851 l_version_hist_csr.new_attribute8 := p_version_label_rec.attribute8;
23852 END IF;
23853 --
23854 IF ( l_version_hist_csr.old_attribute9 IS NULL
23855 AND l_version_hist_csr.new_attribute9 IS NULL ) THEN
23856 IF ( p_version_label_rec.attribute9 = l_curr_ver_label_rec.attribute9 )
23857 OR ( p_version_label_rec.attribute9 = fnd_api.g_miss_char ) THEN
23858 l_version_hist_csr.old_attribute9 := NULL;
23859 l_version_hist_csr.new_attribute9 := NULL;
23860 ELSE
23861 l_version_hist_csr.old_attribute9 := fnd_api.g_miss_char;
23862 l_version_hist_csr.new_attribute9 := p_version_label_rec.attribute9;
23863 END IF;
23864 ELSE
23865 l_version_hist_csr.old_attribute9 := fnd_api.g_miss_char;
23866 l_version_hist_csr.new_attribute9 := p_version_label_rec.attribute9;
23867 END IF;
23868 --
23869 IF ( l_version_hist_csr.old_attribute10 IS NULL
23870 AND l_version_hist_csr.new_attribute10 IS NULL ) THEN
23871 IF ( p_version_label_rec.attribute10 = l_curr_ver_label_rec.attribute10 )
23872 OR ( p_version_label_rec.attribute10 = fnd_api.g_miss_char ) THEN
23873 l_version_hist_csr.old_attribute10 := NULL;
23874 l_version_hist_csr.new_attribute10 := NULL;
23875 ELSE
23876 l_version_hist_csr.old_attribute10 := fnd_api.g_miss_char;
23877 l_version_hist_csr.new_attribute10 := p_version_label_rec.attribute10;
23878 END IF;
23879 ELSE
23880 l_version_hist_csr.old_attribute10 := fnd_api.g_miss_char;
23881 l_version_hist_csr.new_attribute10 := p_version_label_rec.attribute10;
23882 END IF;
23883 --
23884 IF ( l_version_hist_csr.old_attribute11 IS NULL
23885 AND l_version_hist_csr.new_attribute11 IS NULL ) THEN
23886 IF ( p_version_label_rec.attribute11 = l_curr_ver_label_rec.attribute11 )
23887 OR ( p_version_label_rec.attribute11 = fnd_api.g_miss_char ) THEN
23888 l_version_hist_csr.old_attribute11 := NULL;
23889 l_version_hist_csr.new_attribute11 := NULL;
23890 ELSE
23891 l_version_hist_csr.old_attribute11 := fnd_api.g_miss_char;
23892 l_version_hist_csr.new_attribute11 := p_version_label_rec.attribute11;
23893 END IF;
23894 ELSE
23895 l_version_hist_csr.old_attribute11 := fnd_api.g_miss_char;
23896 l_version_hist_csr.new_attribute11 := p_version_label_rec.attribute11;
23897 END IF;
23898 --
23899 IF ( l_version_hist_csr.old_attribute12 IS NULL
23900 AND l_version_hist_csr.new_attribute12 IS NULL ) THEN
23901 IF ( p_version_label_rec.attribute12 = l_curr_ver_label_rec.attribute12 )
23902 OR ( p_version_label_rec.attribute12 = fnd_api.g_miss_char ) THEN
23903 l_version_hist_csr.old_attribute12 := NULL;
23904 l_version_hist_csr.new_attribute12 := NULL;
23905 ELSE
23906 l_version_hist_csr.old_attribute12 := fnd_api.g_miss_char;
23907 l_version_hist_csr.new_attribute12 := p_version_label_rec.attribute12;
23908 END IF;
23909 ELSE
23910 l_version_hist_csr.old_attribute12 := fnd_api.g_miss_char;
23911 l_version_hist_csr.new_attribute12 := p_version_label_rec.attribute12;
23912 END IF;
23913 --
23914 IF ( l_version_hist_csr.old_attribute13 IS NULL
23915 AND l_version_hist_csr.new_attribute13 IS NULL ) THEN
23916 IF ( p_version_label_rec.attribute13 = l_curr_ver_label_rec.attribute13 )
23917 OR ( p_version_label_rec.attribute13 = fnd_api.g_miss_char ) THEN
23918 l_version_hist_csr.old_attribute13 := NULL;
23919 l_version_hist_csr.new_attribute13 := NULL;
23920 ELSE
23921 l_version_hist_csr.old_attribute13 := fnd_api.g_miss_char;
23922 l_version_hist_csr.new_attribute13 := p_version_label_rec.attribute13;
23923 END IF;
23924 ELSE
23925 l_version_hist_csr.old_attribute13 := fnd_api.g_miss_char;
23926 l_version_hist_csr.new_attribute13 := p_version_label_rec.attribute13;
23927 END IF;
23928 --
23929 IF ( l_version_hist_csr.old_attribute14 IS NULL
23930 AND l_version_hist_csr.new_attribute14 IS NULL ) THEN
23931 IF ( p_version_label_rec.attribute14 = l_curr_ver_label_rec.attribute14 )
23932 OR ( p_version_label_rec.attribute14 = fnd_api.g_miss_char ) THEN
23933 l_version_hist_csr.old_attribute14 := NULL;
23934 l_version_hist_csr.new_attribute14 := NULL;
23935 ELSE
23936 l_version_hist_csr.old_attribute14 := fnd_api.g_miss_char;
23937 l_version_hist_csr.new_attribute14 := p_version_label_rec.attribute14;
23938 END IF;
23939 ELSE
23940 l_version_hist_csr.old_attribute14 := fnd_api.g_miss_char;
23941 l_version_hist_csr.new_attribute14 := p_version_label_rec.attribute14;
23942 END IF;
23943 --
23944 IF ( l_version_hist_csr.old_attribute15 IS NULL
23945 AND l_version_hist_csr.new_attribute15 IS NULL ) THEN
23946 IF ( p_version_label_rec.attribute15 = l_curr_ver_label_rec.attribute15 )
23947 OR ( p_version_label_rec.attribute15 = fnd_api.g_miss_char ) THEN
23948 l_version_hist_csr.old_attribute15 := NULL;
23949 l_version_hist_csr.new_attribute15 := NULL;
23950 ELSE
23951 l_version_hist_csr.old_attribute15 := fnd_api.g_miss_char;
23952 l_version_hist_csr.new_attribute15 := p_version_label_rec.attribute15;
23953 END IF;
23954 ELSE
23955 l_version_hist_csr.old_attribute15 := fnd_api.g_miss_char;
23956 l_version_hist_csr.new_attribute15 := p_version_label_rec.attribute15;
23957 END IF;
23958 --
23959
23960 csi_i_version_labels_h_pkg.update_row
23961 (
23962 p_version_label_history_id => l_version_hist_id ,
23963 p_version_label_id => fnd_api.g_miss_num ,
23964 p_transaction_id => fnd_api.g_miss_num ,
23965 p_old_version_label => l_version_hist_csr.old_version_label ,
23966 p_new_version_label => l_version_hist_csr.new_version_label ,
23967 p_old_description => l_version_hist_csr.old_description ,
23968 p_new_description => l_version_hist_csr.new_description ,
23969 p_old_date_time_stamp => l_version_hist_csr.old_date_time_stamp ,
23970 p_new_date_time_stamp => l_version_hist_csr.new_date_time_stamp ,
23971 p_old_active_start_date => l_version_hist_csr.old_active_start_date,
23972 p_new_active_start_date => l_version_hist_csr.new_active_start_date ,
23973 p_old_active_end_date => l_version_hist_csr.old_active_end_date ,
23974 p_new_active_end_date => l_version_hist_csr.new_active_end_date ,
23975 p_old_context => l_version_hist_csr.old_context ,
23976 p_new_context => l_version_hist_csr.new_context ,
23977 p_old_attribute1 => l_version_hist_csr.old_attribute1 ,
23978 p_new_attribute1 => l_version_hist_csr.new_attribute1 ,
23979 p_old_attribute2 => l_version_hist_csr.old_attribute2 ,
23980 p_new_attribute2 => l_version_hist_csr.new_attribute2 ,
23981 p_old_attribute3 => l_version_hist_csr.old_attribute3 ,
23982 p_new_attribute3 => l_version_hist_csr.new_attribute3 ,
23983 p_old_attribute4 => l_version_hist_csr.old_attribute4 ,
23984 p_new_attribute4 => l_version_hist_csr.new_attribute4 ,
23985 p_old_attribute5 => l_version_hist_csr.old_attribute5 ,
23986 p_new_attribute5 => l_version_hist_csr.new_attribute5 ,
23987 p_old_attribute6 => l_version_hist_csr.old_attribute6 ,
23988 p_new_attribute6 => l_version_hist_csr.new_attribute6 ,
23989 p_old_attribute7 => l_version_hist_csr.old_attribute7 ,
23990 p_new_attribute7 => l_version_hist_csr.new_attribute7 ,
23991 p_old_attribute8 => l_version_hist_csr.old_attribute8 ,
23992 p_new_attribute8 => l_version_hist_csr.new_attribute8 ,
23993 p_old_attribute9 => l_version_hist_csr.old_attribute9 ,
23994 p_new_attribute9 => l_version_hist_csr.new_attribute9 ,
23995 p_old_attribute10 => l_version_hist_csr.old_attribute10 ,
23996 p_new_attribute10 => l_version_hist_csr.new_attribute10 ,
23997 p_old_attribute11 => l_version_hist_csr.old_attribute11 ,
23998 p_new_attribute11 => l_version_hist_csr.new_attribute11 ,
23999 p_old_attribute12 => l_version_hist_csr.old_attribute12 ,
24000 p_new_attribute12 => l_version_hist_csr.new_attribute12 ,
24001 p_old_attribute13 => l_version_hist_csr.old_attribute13 ,
24002 p_new_attribute13 => l_version_hist_csr.new_attribute13 ,
24003 p_old_attribute14 => l_version_hist_csr.old_attribute14 ,
24004 p_new_attribute14 => l_version_hist_csr.new_attribute14 ,
24005 p_old_attribute15 => l_version_hist_csr.old_attribute15 ,
24006 p_new_attribute15 => l_version_hist_csr.new_attribute15 ,
24007 p_full_dump_flag => fnd_api.g_miss_char ,
24008 p_created_by => fnd_api.g_miss_num ,
24009 p_creation_date => fnd_api.g_miss_date ,
24010 p_last_updated_by => fnd_global.user_id ,
24011 p_last_update_date => SYSDATE ,
24012 p_last_update_login => fnd_global.login_id ,
24013 p_object_version_number => fnd_api.g_miss_num );
24014 END IF;
24015 EXCEPTION
24016 WHEN NO_DATA_FOUND THEN
24017
24018 IF (l_mod_value = 0) THEN
24019 -- If the mod value is 0 then dump all the columns both changed and unchanged
24020 -- changed columns have old and new values while the unchanged values have old and new values
24021 -- exactly same
24022
24023 IF (p_version_label_rec.version_label = FND_API.G_MISS_CHAR) THEN
24024 l_temp_ver_label_rec.version_label := l_curr_ver_label_rec.version_label ;
24025 END IF;
24026 IF (p_version_label_rec.DATE_TIME_STAMP = FND_API.G_MISS_DATE) THEN
24027 l_temp_ver_label_rec.DATE_TIME_STAMP := l_curr_ver_label_rec.DATE_TIME_STAMP ;
24028 END IF;
24029 IF (p_version_label_rec.DESCRIPTION = FND_API.G_MISS_CHAR) THEN
24030 l_temp_ver_label_rec.DESCRIPTION := l_curr_ver_label_rec.DESCRIPTION ;
24031 END IF;
24032 IF (p_version_label_rec.ACTIVE_START_DATE = FND_API.G_MISS_DATE) THEN
24033 l_temp_ver_label_rec.ACTIVE_START_DATE := l_curr_ver_label_rec.ACTIVE_START_DATE ;
24034 END IF;
24035 IF (p_version_label_rec.ACTIVE_END_DATE = FND_API.G_MISS_DATE) THEN
24036 l_temp_ver_label_rec.ACTIVE_END_DATE := l_curr_ver_label_rec.ACTIVE_END_DATE ;
24037 END IF;
24038 IF (p_version_label_rec.context = FND_API.G_MISS_CHAR) THEN
24039 l_temp_ver_label_rec.CONTEXT := l_curr_ver_label_rec.CONTEXT ;
24040 END IF;
24041 IF (p_version_label_rec.ATTRIBUTE1 = FND_API.G_MISS_CHAR) THEN
24042 l_temp_ver_label_rec.ATTRIBUTE1 := l_curr_ver_label_rec.ATTRIBUTE1 ;
24043 END IF;
24044 IF (p_version_label_rec.ATTRIBUTE2 = FND_API.G_MISS_CHAR) THEN
24045 l_temp_ver_label_rec.ATTRIBUTE2 := l_curr_ver_label_rec.ATTRIBUTE2 ;
24046 END IF;
24047 IF (p_version_label_rec.ATTRIBUTE3 = FND_API.G_MISS_CHAR) THEN
24048 l_temp_ver_label_rec.ATTRIBUTE3 := l_curr_ver_label_rec.ATTRIBUTE3 ;
24049 END IF;
24050 IF (p_version_label_rec.ATTRIBUTE4 = FND_API.G_MISS_CHAR) THEN
24051 l_temp_ver_label_rec.ATTRIBUTE4 := l_curr_ver_label_rec.ATTRIBUTE4 ;
24052 END IF;
24053 IF (p_version_label_rec.ATTRIBUTE5 = FND_API.G_MISS_CHAR) THEN
24054 l_temp_ver_label_rec.ATTRIBUTE5 := l_curr_ver_label_rec.ATTRIBUTE5 ;
24055 END IF;
24056 IF (p_version_label_rec.ATTRIBUTE6 = FND_API.G_MISS_CHAR) THEN
24057 l_temp_ver_label_rec.ATTRIBUTE6 := l_curr_ver_label_rec.ATTRIBUTE6 ;
24058 END IF;
24059 IF (p_version_label_rec.ATTRIBUTE7 = FND_API.G_MISS_CHAR) THEN
24060 l_temp_ver_label_rec.ATTRIBUTE7 := l_curr_ver_label_rec.ATTRIBUTE7 ;
24061 END IF;
24062 IF (p_version_label_rec.ATTRIBUTE8 = FND_API.G_MISS_CHAR) THEN
24063 l_temp_ver_label_rec.ATTRIBUTE8 := l_curr_ver_label_rec.ATTRIBUTE8 ;
24064 END IF;
24065 IF (p_version_label_rec.ATTRIBUTE9 = FND_API.G_MISS_CHAR) THEN
24066 l_temp_ver_label_rec.ATTRIBUTE9 := l_curr_ver_label_rec.ATTRIBUTE9 ;
24067 END IF;
24068 IF (p_version_label_rec.ATTRIBUTE10 = FND_API.G_MISS_CHAR) THEN
24069 l_temp_ver_label_rec.ATTRIBUTE10 := l_curr_ver_label_rec.ATTRIBUTE10 ;
24070 END IF;
24071 IF (p_version_label_rec.ATTRIBUTE11 = FND_API.G_MISS_CHAR) THEN
24072 l_temp_ver_label_rec.ATTRIBUTE11 := l_curr_ver_label_rec.ATTRIBUTE11 ;
24073 END IF;
24074 IF (p_version_label_rec.ATTRIBUTE12 = FND_API.G_MISS_CHAR) THEN
24075 l_temp_ver_label_rec.ATTRIBUTE12 := l_curr_ver_label_rec.ATTRIBUTE12 ;
24076 END IF;
24077 IF (p_version_label_rec.ATTRIBUTE13 = FND_API.G_MISS_CHAR) THEN
24078 l_temp_ver_label_rec.ATTRIBUTE13 := l_curr_ver_label_rec.ATTRIBUTE13 ;
24079 END IF;
24080 IF (p_version_label_rec.ATTRIBUTE14 = FND_API.G_MISS_CHAR) THEN
24081 l_temp_ver_label_rec.ATTRIBUTE14 := l_curr_ver_label_rec.ATTRIBUTE14 ;
24082 END IF;
24083 IF (p_version_label_rec.ATTRIBUTE15 = FND_API.G_MISS_CHAR) THEN
24084 l_temp_ver_label_rec.ATTRIBUTE15 := l_curr_ver_label_rec.ATTRIBUTE15 ;
24085 END IF;
24086
24087 -- Call the table handlers to insert into history table
24088
24089 CSI_I_VERSION_LABELS_H_PKG.Insert_Row
24090 (
24091 px_VERSION_LABEL_HISTORY_ID => l_version_label_hist_id ,
24092 p_VERSION_LABEL_ID => p_version_label_rec.VERSION_LABEL_ID ,
24093 p_TRANSACTION_ID => p_txn_rec.TRANSACTION_ID ,
24094 p_OLD_VERSION_LABEL => l_temp_ver_label_rec.VERSION_LABEL ,
24095 p_NEW_VERSION_LABEL => p_version_label_rec.VERSION_LABEL ,
24096 p_OLD_DESCRIPTION => l_temp_ver_label_rec.DESCRIPTION ,
24097 p_NEW_DESCRIPTION => p_version_label_rec.DESCRIPTION ,
24098 p_OLD_DATE_TIME_STAMP => l_temp_ver_label_rec.DATE_TIME_STAMP ,
24099 p_NEW_DATE_TIME_STAMP => p_version_label_rec.DATE_TIME_STAMP ,
24100 p_OLD_ACTIVE_START_DATE => l_temp_ver_label_rec.ACTIVE_START_DATE ,
24101 p_NEW_ACTIVE_START_DATE => p_version_label_rec.ACTIVE_START_DATE ,
24102 p_OLD_ACTIVE_END_DATE => l_temp_ver_label_rec.ACTIVE_END_DATE ,
24103 p_NEW_ACTIVE_END_DATE => p_version_label_rec.ACTIVE_END_DATE ,
24104 p_OLD_CONTEXT => l_temp_ver_label_rec.CONTEXT ,
24105 p_NEW_CONTEXT => p_version_label_rec.CONTEXT ,
24106 p_OLD_ATTRIBUTE1 => l_temp_ver_label_rec.ATTRIBUTE1 ,
24107 p_NEW_ATTRIBUTE1 => p_version_label_rec.ATTRIBUTE1 ,
24108 p_OLD_ATTRIBUTE2 => l_temp_ver_label_rec.ATTRIBUTE2 ,
24109 p_NEW_ATTRIBUTE2 => p_version_label_rec.ATTRIBUTE2 ,
24110 p_OLD_ATTRIBUTE3 => l_temp_ver_label_rec.ATTRIBUTE3 ,
24111 p_NEW_ATTRIBUTE3 => p_version_label_rec.ATTRIBUTE3 ,
24112 p_OLD_ATTRIBUTE4 => l_temp_ver_label_rec.ATTRIBUTE4 ,
24113 p_NEW_ATTRIBUTE4 => p_version_label_rec.ATTRIBUTE4 ,
24114 p_OLD_ATTRIBUTE5 => l_temp_ver_label_rec.ATTRIBUTE5 ,
24115 p_NEW_ATTRIBUTE5 => p_version_label_rec.ATTRIBUTE5 ,
24116 p_OLD_ATTRIBUTE6 => l_temp_ver_label_rec.ATTRIBUTE6 ,
24117 p_NEW_ATTRIBUTE6 => p_version_label_rec.ATTRIBUTE6 ,
24118 p_OLD_ATTRIBUTE7 => l_temp_ver_label_rec.ATTRIBUTE7 ,
24119 p_NEW_ATTRIBUTE7 => p_version_label_rec.ATTRIBUTE7 ,
24120 p_OLD_ATTRIBUTE8 => l_temp_ver_label_rec.ATTRIBUTE8 ,
24121 p_NEW_ATTRIBUTE8 => p_version_label_rec.ATTRIBUTE8 ,
24122 p_OLD_ATTRIBUTE9 => l_temp_ver_label_rec.ATTRIBUTE9 ,
24123 p_NEW_ATTRIBUTE9 => p_version_label_rec.ATTRIBUTE9 ,
24124 p_OLD_ATTRIBUTE10 => l_temp_ver_label_rec.ATTRIBUTE10 ,
24125 p_NEW_ATTRIBUTE10 => p_version_label_rec.ATTRIBUTE10,
24126 p_OLD_ATTRIBUTE11 => l_temp_ver_label_rec.ATTRIBUTE11 ,
24127 p_NEW_ATTRIBUTE11 => p_version_label_rec.ATTRIBUTE11,
24128 p_OLD_ATTRIBUTE12 => l_temp_ver_label_rec.ATTRIBUTE12 ,
24129 p_NEW_ATTRIBUTE12 => p_version_label_rec.ATTRIBUTE12,
24130 p_OLD_ATTRIBUTE13 => l_temp_ver_label_rec.ATTRIBUTE13 ,
24131 p_NEW_ATTRIBUTE13 => p_version_label_rec.ATTRIBUTE13,
24132 p_OLD_ATTRIBUTE14 => l_temp_ver_label_rec.ATTRIBUTE14 ,
24133 p_NEW_ATTRIBUTE14 => p_version_label_rec.ATTRIBUTE14,
24134 p_OLD_ATTRIBUTE15 => l_temp_ver_label_rec.ATTRIBUTE15 ,
24135 p_NEW_ATTRIBUTE15 => p_version_label_rec.ATTRIBUTE15,
24136 p_FULL_DUMP_FLAG => 'Y' ,
24137 p_CREATED_BY => FND_GLOBAL.USER_ID ,
24138 p_CREATION_DATE => SYSDATE ,
24139 p_LAST_UPDATED_BY => FND_GLOBAL.USER_ID ,
24140 p_LAST_UPDATE_DATE => SYSDATE ,
24141 p_LAST_UPDATE_LOGIN => FND_GLOBAL.LOGIN_ID ,
24142 p_OBJECT_VERSION_NUMBER => 1 );
24143
24144
24145 ELSE
24146 -- If the mod value is not equal to zero then dump only the changed columns
24147 -- while the unchanged values have old and new values as null
24148
24149 IF (p_version_label_rec.version_label = fnd_api.g_miss_char) OR
24150 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
24151 l_ver_label_hist_rec.old_version_label := NULL;
24152 l_ver_label_hist_rec.new_version_label := NULL;
24153 ELSIF
24154 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
24155 l_ver_label_hist_rec.old_version_label := l_curr_ver_label_rec.version_label ;
24156 l_ver_label_hist_rec.new_version_label := p_version_label_rec.version_label ;
24157 END IF;
24158 --
24159 IF (p_version_label_rec.date_time_stamp = fnd_api.g_miss_date) OR
24160 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
24161 l_ver_label_hist_rec.old_date_time_stamp := NULL;
24162 l_ver_label_hist_rec.new_date_time_stamp := NULL;
24163 ELSIF
24164 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
24165 l_ver_label_hist_rec.old_date_time_stamp := l_curr_ver_label_rec.date_time_stamp ;
24166 l_ver_label_hist_rec.new_date_time_stamp := p_version_label_rec.date_time_stamp ;
24167 END IF;
24168 --
24169 IF (p_version_label_rec.description = fnd_api.g_miss_char) OR
24170 NVL(p_version_label_rec.description, fnd_api.g_miss_char) = NVL(l_curr_ver_label_rec.description, fnd_api.g_miss_char) THEN
24171 l_ver_label_hist_rec.old_description := NULL;
24172 l_ver_label_hist_rec.new_description := NULL;
24173 ELSIF
24174 NVL(l_curr_ver_label_rec.description,fnd_api.g_miss_char) <> NVL(p_version_label_rec.description,fnd_api.g_miss_char) THEN
24175 l_ver_label_hist_rec.old_description := l_curr_ver_label_rec.description ;
24176 l_ver_label_hist_rec.new_description := p_version_label_rec.description ;
24177 END IF;
24178 --
24179 IF (p_version_label_rec.active_start_date = fnd_api.g_miss_date) OR
24180 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
24181 l_ver_label_hist_rec.old_active_start_date := NULL;
24182 l_ver_label_hist_rec.new_active_start_date := NULL;
24183 ELSIF
24184 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
24185 l_ver_label_hist_rec.old_active_start_date := l_curr_ver_label_rec.active_start_date ;
24186 l_ver_label_hist_rec.new_active_start_date := p_version_label_rec.active_start_date ;
24187 END IF;
24188 --
24189 IF (p_version_label_rec.active_end_date = fnd_api.g_miss_date) OR
24190 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
24191 l_ver_label_hist_rec.old_active_end_date := NULL;
24192 l_ver_label_hist_rec.new_active_end_date := NULL;
24193 ELSIF
24194 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
24195 l_ver_label_hist_rec.old_active_end_date := l_curr_ver_label_rec.active_end_date ;
24196 l_ver_label_hist_rec.new_active_end_date := p_version_label_rec.active_end_date ;
24197 END IF;
24198 --
24199 IF (p_version_label_rec.context = fnd_api.g_miss_char) OR
24200 NVL(l_curr_ver_label_rec.context,fnd_api.g_miss_char) = NVL(p_version_label_rec.context,fnd_api.g_miss_char) THEN
24201 l_ver_label_hist_rec.old_context := NULL;
24202 l_ver_label_hist_rec.new_context := NULL;
24203 ELSIF
24204 NVL(l_curr_ver_label_rec.context,fnd_api.g_miss_char) <> NVL(p_version_label_rec.context,fnd_api.g_miss_char) THEN
24205 l_ver_label_hist_rec.old_context := l_curr_ver_label_rec.context ;
24206 l_ver_label_hist_rec.new_context := p_version_label_rec.context ;
24207 END IF;
24208 --
24209 IF (p_version_label_rec.attribute1 = fnd_api.g_miss_char) OR
24210 NVL(l_curr_ver_label_rec.attribute1,fnd_api.g_miss_char) = NVL(p_version_label_rec.attribute1,fnd_api.g_miss_char) THEN
24211 l_ver_label_hist_rec.old_attribute1 := NULL;
24212 l_ver_label_hist_rec.new_attribute1 := NULL;
24213 ELSIF
24214 NVL(l_curr_ver_label_rec.attribute1,fnd_api.g_miss_char) <> NVL(p_version_label_rec.attribute1,fnd_api.g_miss_char) THEN
24215 l_ver_label_hist_rec.old_attribute1 := l_curr_ver_label_rec.attribute1 ;
24216 l_ver_label_hist_rec.new_attribute1 := p_version_label_rec.attribute1 ;
24217 END IF;
24218 --
24219 IF (p_version_label_rec.attribute2 = fnd_api.g_miss_char) OR
24220 NVL(l_curr_ver_label_rec.attribute2,fnd_api.g_miss_char) = NVL(p_version_label_rec.attribute2,fnd_api.g_miss_char) THEN
24221 l_ver_label_hist_rec.old_attribute2 := NULL;
24222 l_ver_label_hist_rec.new_attribute2 := NULL;
24223 ELSIF
24224 NVL(l_curr_ver_label_rec.attribute2,fnd_api.g_miss_char) <> NVL(p_version_label_rec.attribute2,fnd_api.g_miss_char) THEN
24225 l_ver_label_hist_rec.old_attribute2 := l_curr_ver_label_rec.attribute2 ;
24226 l_ver_label_hist_rec.new_attribute2 := p_version_label_rec.attribute2 ;
24227 END IF;
24228 --
24229 IF (p_version_label_rec.attribute3 = fnd_api.g_miss_char) OR
24230 NVL(l_curr_ver_label_rec.attribute3,fnd_api.g_miss_char) = NVL(p_version_label_rec.attribute3,fnd_api.g_miss_char) THEN
24231 l_ver_label_hist_rec.old_attribute3 := NULL;
24232 l_ver_label_hist_rec.new_attribute3 := NULL;
24233 ELSIF
24234 NVL(l_curr_ver_label_rec.attribute3,fnd_api.g_miss_char) <> NVL(p_version_label_rec.attribute3,fnd_api.g_miss_char) THEN
24235 l_ver_label_hist_rec.old_attribute3 := l_curr_ver_label_rec.attribute3 ;
24236 l_ver_label_hist_rec.new_attribute3 := p_version_label_rec.attribute3 ;
24237 END IF;
24238 --
24239 IF (p_version_label_rec.attribute4 = fnd_api.g_miss_char) OR
24240 NVL(l_curr_ver_label_rec.attribute4,fnd_api.g_miss_char) = NVL(p_version_label_rec.attribute4,fnd_api.g_miss_char) THEN
24241 l_ver_label_hist_rec.old_attribute4 := NULL;
24242 l_ver_label_hist_rec.new_attribute4 := NULL;
24243 ELSIF
24244 NVL(l_curr_ver_label_rec.attribute4,fnd_api.g_miss_char) <> NVL(p_version_label_rec.attribute4,fnd_api.g_miss_char) THEN
24245 l_ver_label_hist_rec.old_attribute4 := l_curr_ver_label_rec.attribute4 ;
24246 l_ver_label_hist_rec.new_attribute4 := p_version_label_rec.attribute4 ;
24247 END IF;
24248 --
24249 IF (p_version_label_rec.attribute5 = fnd_api.g_miss_char) OR
24250 NVL(l_curr_ver_label_rec.attribute5,fnd_api.g_miss_char) = NVL(p_version_label_rec.attribute5,fnd_api.g_miss_char) THEN
24251 l_ver_label_hist_rec.old_attribute5 := NULL;
24252 l_ver_label_hist_rec.new_attribute5 := NULL;
24253 ELSIF
24254 NVL(l_curr_ver_label_rec.attribute5,fnd_api.g_miss_char) <> NVL(p_version_label_rec.attribute5,fnd_api.g_miss_char) THEN
24255 l_ver_label_hist_rec.old_attribute5 := l_curr_ver_label_rec.attribute5 ;
24256 l_ver_label_hist_rec.new_attribute5 := p_version_label_rec.attribute5 ;
24257 END IF;
24258 --
24259 IF (p_version_label_rec.attribute6 = fnd_api.g_miss_char) OR
24260 NVL(l_curr_ver_label_rec.attribute6,fnd_api.g_miss_char) = NVL(p_version_label_rec.attribute6,fnd_api.g_miss_char) THEN
24261 l_ver_label_hist_rec.old_attribute6 := NULL;
24262 l_ver_label_hist_rec.new_attribute6 := NULL;
24263 ELSIF
24264 NVL(l_curr_ver_label_rec.attribute6,fnd_api.g_miss_char) <> NVL(p_version_label_rec.attribute6,fnd_api.g_miss_char) THEN
24265 l_ver_label_hist_rec.old_attribute6 := l_curr_ver_label_rec.attribute6 ;
24266 l_ver_label_hist_rec.new_attribute6 := p_version_label_rec.attribute6 ;
24267 END IF;
24268 --
24269 IF (p_version_label_rec.attribute7 = fnd_api.g_miss_char) OR
24270 NVL(l_curr_ver_label_rec.attribute7,fnd_api.g_miss_char) = NVL(p_version_label_rec.attribute7,fnd_api.g_miss_char) THEN
24271 l_ver_label_hist_rec.old_attribute7 := NULL;
24272 l_ver_label_hist_rec.new_attribute7 := NULL;
24273 ELSIF
24274 NVL(l_curr_ver_label_rec.attribute7,fnd_api.g_miss_char) <> NVL(p_version_label_rec.attribute7,fnd_api.g_miss_char) THEN
24275 l_ver_label_hist_rec.old_attribute7 := l_curr_ver_label_rec.attribute7 ;
24276 l_ver_label_hist_rec.new_attribute7 := p_version_label_rec.attribute7 ;
24277 END IF;
24278 --
24279 IF (p_version_label_rec.attribute8 = fnd_api.g_miss_char) OR
24280 NVL(l_curr_ver_label_rec.attribute8,fnd_api.g_miss_char) = NVL(p_version_label_rec.attribute8,fnd_api.g_miss_char) THEN
24281 l_ver_label_hist_rec.old_attribute8 := NULL;
24282 l_ver_label_hist_rec.new_attribute8 := NULL;
24283 ELSIF
24284 NVL(l_curr_ver_label_rec.attribute8,fnd_api.g_miss_char) <> NVL(p_version_label_rec.attribute8,fnd_api.g_miss_char) THEN
24285 l_ver_label_hist_rec.old_attribute8 := l_curr_ver_label_rec.attribute8 ;
24286 l_ver_label_hist_rec.new_attribute8 := p_version_label_rec.attribute8 ;
24287 END IF;
24288 --
24289 IF (p_version_label_rec.attribute9 = fnd_api.g_miss_char) OR
24290 NVL(l_curr_ver_label_rec.attribute9,fnd_api.g_miss_char) = NVL(p_version_label_rec.attribute9,fnd_api.g_miss_char) THEN
24291 l_ver_label_hist_rec.old_attribute9 := NULL;
24292 l_ver_label_hist_rec.new_attribute9 := NULL;
24293 ELSIF
24294 NVL(l_curr_ver_label_rec.attribute9,fnd_api.g_miss_char) <> NVL(p_version_label_rec.attribute9,fnd_api.g_miss_char) THEN
24295 l_ver_label_hist_rec.old_attribute9 := l_curr_ver_label_rec.attribute9 ;
24296 l_ver_label_hist_rec.new_attribute9 := p_version_label_rec.attribute9 ;
24297 END IF;
24298 --
24299 IF (p_version_label_rec.attribute10 = fnd_api.g_miss_char) OR
24300 NVL(l_curr_ver_label_rec.attribute10,fnd_api.g_miss_char) = NVL(p_version_label_rec.attribute10,fnd_api.g_miss_char) THEN
24301 l_ver_label_hist_rec.old_attribute10 := NULL;
24302 l_ver_label_hist_rec.new_attribute10 := NULL;
24303 ELSIF
24304 NVL(l_curr_ver_label_rec.attribute10,fnd_api.g_miss_char) <> NVL(p_version_label_rec.attribute10,fnd_api.g_miss_char) THEN
24305 l_ver_label_hist_rec.old_attribute10 := l_curr_ver_label_rec.attribute10 ;
24306 l_ver_label_hist_rec.new_attribute10 := p_version_label_rec.attribute10 ;
24307 END IF;
24308 --
24309 IF (p_version_label_rec.attribute11 = fnd_api.g_miss_char) OR
24310 NVL(l_curr_ver_label_rec.attribute11,fnd_api.g_miss_char) = NVL(p_version_label_rec.attribute11,fnd_api.g_miss_char) THEN
24311 l_ver_label_hist_rec.old_attribute11 := NULL;
24312 l_ver_label_hist_rec.new_attribute11 := NULL;
24313 ELSIF
24314 NVL(l_curr_ver_label_rec.attribute11,fnd_api.g_miss_char) <> NVL(p_version_label_rec.attribute11,fnd_api.g_miss_char) THEN
24315 l_ver_label_hist_rec.old_attribute11 := l_curr_ver_label_rec.attribute11 ;
24316 l_ver_label_hist_rec.new_attribute11 := p_version_label_rec.attribute11 ;
24317 END IF;
24318 --
24319 IF (p_version_label_rec.attribute12 = fnd_api.g_miss_char) OR
24320 NVL(l_curr_ver_label_rec.attribute12,fnd_api.g_miss_char) = NVL(p_version_label_rec.attribute12,fnd_api.g_miss_char) THEN
24321 l_ver_label_hist_rec.old_attribute12 := NULL;
24322 l_ver_label_hist_rec.new_attribute12 := NULL;
24323 ELSIF
24324 NVL(l_curr_ver_label_rec.attribute12,fnd_api.g_miss_char) <> NVL(p_version_label_rec.attribute12,fnd_api.g_miss_char) THEN
24325 l_ver_label_hist_rec.old_attribute12 := l_curr_ver_label_rec.attribute12 ;
24326 l_ver_label_hist_rec.new_attribute12 := p_version_label_rec.attribute12 ;
24327 END IF;
24328 --
24329 IF (p_version_label_rec.attribute13 = fnd_api.g_miss_char) OR
24330 NVL(l_curr_ver_label_rec.attribute13,fnd_api.g_miss_char) = NVL(p_version_label_rec.attribute13,fnd_api.g_miss_char) THEN
24331 l_ver_label_hist_rec.old_attribute13 := NULL;
24332 l_ver_label_hist_rec.new_attribute13 := NULL;
24333 ELSIF
24334 NVL(l_curr_ver_label_rec.attribute13,fnd_api.g_miss_char) <> NVL(p_version_label_rec.attribute13,fnd_api.g_miss_char) THEN
24335 l_ver_label_hist_rec.old_attribute13 := l_curr_ver_label_rec.attribute13 ;
24336 l_ver_label_hist_rec.new_attribute13 := p_version_label_rec.attribute13 ;
24337 END IF;
24338 --
24339 IF (p_version_label_rec.attribute14 = fnd_api.g_miss_char) OR
24340 NVL(l_curr_ver_label_rec.attribute14,fnd_api.g_miss_char) = NVL(p_version_label_rec.attribute14,fnd_api.g_miss_char) THEN
24341 l_ver_label_hist_rec.old_attribute14 := NULL;
24342 l_ver_label_hist_rec.new_attribute14 := NULL;
24343 ELSIF
24344 NVL(l_curr_ver_label_rec.attribute14,fnd_api.g_miss_char) <> NVL(p_version_label_rec.attribute14,fnd_api.g_miss_char) THEN
24345 l_ver_label_hist_rec.old_attribute14 := l_curr_ver_label_rec.attribute14 ;
24346 l_ver_label_hist_rec.new_attribute14 := p_version_label_rec.attribute14 ;
24347 END IF;
24348 --
24349 IF (p_version_label_rec.attribute15 = fnd_api.g_miss_char) OR
24350 NVL(l_curr_ver_label_rec.attribute15,fnd_api.g_miss_char) = NVL(p_version_label_rec.attribute15,fnd_api.g_miss_char) THEN
24351 l_ver_label_hist_rec.old_attribute15 := NULL;
24352 l_ver_label_hist_rec.new_attribute15 := NULL;
24353 ELSIF
24354 NVL(l_curr_ver_label_rec.attribute15,fnd_api.g_miss_char) <> NVL(p_version_label_rec.attribute15,fnd_api.g_miss_char) THEN
24355 l_ver_label_hist_rec.old_attribute15 := l_curr_ver_label_rec.attribute15 ;
24356 l_ver_label_hist_rec.new_attribute15 := p_version_label_rec.attribute15 ;
24357 END IF;
24358
24359 -- Call the table handlers to insert into history table
24360 CSI_I_VERSION_LABELS_H_PKG.Insert_Row
24361 (
24362 px_VERSION_LABEL_HISTORY_ID => l_version_label_hist_id ,
24363 p_VERSION_LABEL_ID => p_version_label_rec.VERSION_LABEL_ID ,
24364 p_TRANSACTION_ID => p_txn_rec.TRANSACTION_ID ,
24365 p_OLD_VERSION_LABEL => l_ver_label_hist_rec.OLD_VERSION_LABEL ,
24366 p_NEW_VERSION_LABEL => l_ver_label_hist_rec.NEW_VERSION_LABEL ,
24367 p_OLD_DESCRIPTION => l_ver_label_hist_rec.OLD_DESCRIPTION ,
24368 p_NEW_DESCRIPTION => l_ver_label_hist_rec.NEW_DESCRIPTION ,
24369 p_OLD_DATE_TIME_STAMP => l_ver_label_hist_rec.OLD_DATE_TIME_STAMP ,
24370 p_NEW_DATE_TIME_STAMP => l_ver_label_hist_rec.NEW_DATE_TIME_STAMP ,
24371 p_OLD_ACTIVE_START_DATE => l_ver_label_hist_rec.OLD_ACTIVE_START_DATE ,
24372 p_NEW_ACTIVE_START_DATE => l_ver_label_hist_rec.NEW_ACTIVE_START_DATE ,
24373 p_OLD_ACTIVE_END_DATE => l_ver_label_hist_rec.OLD_ACTIVE_END_DATE ,
24374 p_NEW_ACTIVE_END_DATE => l_ver_label_hist_rec.NEW_ACTIVE_END_DATE ,
24375 p_OLD_CONTEXT => l_ver_label_hist_rec.OLD_CONTEXT ,
24376 p_NEW_CONTEXT => l_ver_label_hist_rec.NEW_CONTEXT ,
24377 p_OLD_ATTRIBUTE1 => l_ver_label_hist_rec.OLD_ATTRIBUTE1,
24378 p_NEW_ATTRIBUTE1 => l_ver_label_hist_rec.NEW_ATTRIBUTE1 ,
24379 p_OLD_ATTRIBUTE2 => l_ver_label_hist_rec.OLD_ATTRIBUTE2,
24380 p_NEW_ATTRIBUTE2 => l_ver_label_hist_rec.NEW_ATTRIBUTE2 ,
24381 p_OLD_ATTRIBUTE3 => l_ver_label_hist_rec.OLD_ATTRIBUTE3,
24382 p_NEW_ATTRIBUTE3 => l_ver_label_hist_rec.NEW_ATTRIBUTE3 ,
24383 p_OLD_ATTRIBUTE4 => l_ver_label_hist_rec.OLD_ATTRIBUTE4,
24384 p_NEW_ATTRIBUTE4 => l_ver_label_hist_rec.NEW_ATTRIBUTE4 ,
24385 p_OLD_ATTRIBUTE5 => l_ver_label_hist_rec.OLD_ATTRIBUTE5,
24386 p_NEW_ATTRIBUTE5 => l_ver_label_hist_rec.NEW_ATTRIBUTE5 ,
24387 p_OLD_ATTRIBUTE6 => l_ver_label_hist_rec.OLD_ATTRIBUTE6,
24388 p_NEW_ATTRIBUTE6 => l_ver_label_hist_rec.NEW_ATTRIBUTE6 ,
24389 p_OLD_ATTRIBUTE7 => l_ver_label_hist_rec.OLD_ATTRIBUTE7,
24390 p_NEW_ATTRIBUTE7 => l_ver_label_hist_rec.NEW_ATTRIBUTE7 ,
24391 p_OLD_ATTRIBUTE8 => l_ver_label_hist_rec.OLD_ATTRIBUTE8,
24392 p_NEW_ATTRIBUTE8 => l_ver_label_hist_rec.NEW_ATTRIBUTE8 ,
24393 p_OLD_ATTRIBUTE9 => l_ver_label_hist_rec.OLD_ATTRIBUTE9,
24394 p_NEW_ATTRIBUTE9 => l_ver_label_hist_rec.NEW_ATTRIBUTE9 ,
24395 p_OLD_ATTRIBUTE10 => l_ver_label_hist_rec.OLD_ATTRIBUTE10,
24396 p_NEW_ATTRIBUTE10 => l_ver_label_hist_rec.NEW_ATTRIBUTE10,
24397 p_OLD_ATTRIBUTE11 => l_ver_label_hist_rec.OLD_ATTRIBUTE11,
24398 p_NEW_ATTRIBUTE11 => l_ver_label_hist_rec.NEW_ATTRIBUTE11,
24399 p_OLD_ATTRIBUTE12 => l_ver_label_hist_rec.OLD_ATTRIBUTE12,
24400 p_NEW_ATTRIBUTE12 => l_ver_label_hist_rec.NEW_ATTRIBUTE12,
24401 p_OLD_ATTRIBUTE13 => l_ver_label_hist_rec.OLD_ATTRIBUTE13,
24402 p_NEW_ATTRIBUTE13 => l_ver_label_hist_rec.NEW_ATTRIBUTE13,
24403 p_OLD_ATTRIBUTE14 => l_ver_label_hist_rec.OLD_ATTRIBUTE14,
24404 p_NEW_ATTRIBUTE14 => l_ver_label_hist_rec.NEW_ATTRIBUTE14,
24405 p_OLD_ATTRIBUTE15 => l_ver_label_hist_rec.OLD_ATTRIBUTE15,
24406 p_NEW_ATTRIBUTE15 => l_ver_label_hist_rec.NEW_ATTRIBUTE15,
24407 p_FULL_DUMP_FLAG => 'N' ,
24408 p_CREATED_BY => FND_GLOBAL.USER_ID ,
24409 p_CREATION_DATE => SYSDATE ,
24410 p_LAST_UPDATED_BY => FND_GLOBAL.USER_ID ,
24411 p_LAST_UPDATE_DATE => SYSDATE ,
24412 p_LAST_UPDATE_LOGIN => FND_GLOBAL.LOGIN_ID ,
24413 p_OBJECT_VERSION_NUMBER => 1 );
24414
24415
24416 END IF;
24417
24418 END;
24419 -- End of modification for Bug#2547034 on 09/20/02 - rtalluri
24420 --
24421 -- End of API body
24422
24423 -- Standard check of p_commit.
24424 IF FND_API.To_Boolean( p_commit ) THEN
24425 COMMIT WORK;
24426 END IF;
24427
24428 -- Standard call to get message count and if count is get message info.
24429 FND_MSG_PUB.Count_And_Get
24430 (p_count => x_msg_count ,
24431 p_data => x_msg_data );
24432
24433 EXCEPTION
24434 WHEN FND_API.G_EXC_ERROR THEN
24435 ROLLBACK TO update_version_label_pvt;
24436 x_return_status := FND_API.G_RET_STS_ERROR ;
24437 FND_MSG_PUB.Count_And_Get
24438 ( p_count => x_msg_count,
24439 p_data => x_msg_data);
24440 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
24441 ROLLBACK TO update_version_label_pvt;
24442 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
24443 FND_MSG_PUB.Count_And_Get
24444 ( p_count => X_msg_count,
24445 p_data => X_msg_data);
24446 WHEN OTHERS THEN
24447 ROLLBACK TO update_version_label_pvt;
24448 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
24449 IF FND_MSG_PUB.Check_Msg_Level
24450 (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
24451 THEN
24452 FND_MSG_PUB.Add_Exc_Msg
24453 ( G_PKG_NAME, l_api_name );
24454 END IF;
24455 FND_MSG_PUB.Count_And_Get
24456 ( p_count => x_msg_count,
24457 p_data => x_msg_data );
24458 END update_version_label;
24459
24460 /*---------------------------------------------*/
24461 /* Procedure name: expire_version_label */
24462 /* Description : procedure for Update */
24463 /* version label for */
24464 /* an Item Instance */
24465 /*---------------------------------------------*/
24466
24467 PROCEDURE expire_version_label
24468 ( p_api_version IN NUMBER
24469 ,p_commit IN VARCHAR2
24470 ,p_init_msg_list IN VARCHAR2
24471 ,p_validation_level IN NUMBER
24472 ,p_version_label_rec IN csi_datastructures_pub.version_label_rec
24473 ,p_txn_rec IN OUT NOCOPY csi_datastructures_pub.transaction_rec
24474 ,x_return_status OUT NOCOPY VARCHAR2
24475 ,x_msg_count OUT NOCOPY NUMBER
24476 ,x_msg_data OUT NOCOPY VARCHAR2
24477 ) IS
24478 l_api_name CONSTANT VARCHAR2(30) := 'EXPIRE_VERSION_LABEL';
24479 l_api_version CONSTANT NUMBER := 1.0;
24480 l_debug_level NUMBER;
24481 l_version_label_rec csi_datastructures_pub.version_label_rec;
24482 l_curr_ver_label_rec csi_datastructures_pub.version_label_rec;
24483 l_msg_index NUMBER;
24484 l_OBJECT_VERSION_NUMBER NUMBER;
24485 l_mod_value NUMBER;
24486 l_version_label_hist_id NUMBER;
24487 x_msg_index_out NUMBER;
24488 l_full_dump_frequency NUMBER;
24489 l_flag VARCHAR2(1) :='N';
24490
24491 CURSOR get_curr_ver_label_rec (p_ver_label_id IN NUMBER) IS
24492 SELECT
24493 VERSION_LABEL_ID ,
24494 INSTANCE_ID ,
24495 VERSION_LABEL ,
24496 DESCRIPTION ,
24497 DATE_TIME_STAMP ,
24498 active_start_date ,
24499 active_end_date ,
24500 context ,
24501 attribute1 ,
24502 attribute2 ,
24503 attribute3 ,
24504 attribute4 ,
24505 attribute5 ,
24506 attribute6 ,
24507 attribute7 ,
24508 attribute8 ,
24509 attribute9 ,
24510 attribute10 ,
24511 attribute11 ,
24512 attribute12 ,
24513 attribute13 ,
24514 attribute14 ,
24515 attribute15 ,
24516 object_version_number --,
24517 -- null parent_tbl_index ,
24518 -- null processed_flag ,
24519 -- null interface_id
24520 FROM CSI_I_VERSION_LABELS
24521 WHERE VERSION_LABEL_ID = p_ver_label_id
24522 AND (( ACTIVE_END_DATE IS NULL) OR (ACTIVE_END_DATE >= SYSDATE))
24523 FOR UPDATE OF OBJECT_VERSION_NUMBER ;
24524
24525 BEGIN
24526 -- Standard Start of API savepoint
24527 SAVEPOINT expire_version_label_pvt;
24528
24529 -- Standard call to check for call compatibility.
24530 IF NOT FND_API.Compatible_API_Call (l_api_version ,
24531 p_api_version ,
24532 l_api_name ,
24533 G_PKG_NAME )
24534 THEN
24535 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
24536 END IF;
24537
24538 -- Initialize message list if p_init_msg_list is set to TRUE.
24539 IF FND_API.to_Boolean( p_init_msg_list ) THEN
24540 FND_MSG_PUB.initialize;
24541 END IF;
24542 -- Initialize API return status to success
24543 x_return_status := FND_API.G_RET_STS_SUCCESS;
24544
24545 -- Check the profile option debug_level for debug message reporting
24546 l_debug_level:=fnd_profile.value('CSI_DEBUG_LEVEL');
24547
24548 -- If debug_level = 1 then dump the procedure name
24549 IF (l_debug_level > 0) THEN
24550 CSI_gen_utility_pvt.put_line( 'update_version_label');
24551 END IF;
24552
24553 -- If the debug level = 2 then dump all the parameters values.
24554 IF (l_debug_level > 1) THEN
24555 CSI_gen_utility_pvt.put_line( 'update_version_label:'||
24556 p_api_version ||'-'||
24557 p_commit ||'-'||
24558 p_init_msg_list );
24559 END IF;
24560
24561 -- Start API body
24562
24563 -- Check if all the required parameters are passed
24564 CSI_Instance_parties_vld_pvt.Check_Reqd_Param_num
24565 ( p_version_label_rec.version_label_id ,
24566 ' p_version_label_rec.version_label_id ',
24567 l_api_name );
24568
24569 CSI_Instance_parties_vld_pvt.Check_Reqd_Param_num
24570 ( p_version_label_rec.object_version_number ,
24571 ' p_version_label_rec.object_version_number ',
24572 l_api_name );
24573
24574 CSI_Instance_parties_vld_pvt.Check_Reqd_Param_date
24575 ( p_version_label_rec.active_end_date ,
24576 ' p_version_label_rec.active_end_date ',
24577 l_api_name );
24578
24579 IF p_version_label_rec.version_label_id <> FND_API.G_MISS_NUM THEN
24580 -- Validate the version label id if exist then raise CSI_API_INVALID_PRIMARY_KEY error
24581 IF NOT(CSI_Instance_parties_vld_pvt.Is_Ver_labelID_exists
24582 (p_version_label_rec.version_label_id,
24583 FALSE )) THEN
24584 RAISE FND_API.G_EXC_ERROR;
24585 END IF;
24586 END IF;
24587
24588 -- check if the object_version_number passed matches with the one
24589 -- in the database else raise error
24590 OPEN get_curr_ver_label_rec(p_version_label_rec.version_label_id);
24591 FETCH get_curr_ver_label_rec INTO l_curr_ver_label_rec;
24592 IF (l_curr_ver_label_rec.object_version_number <> nvl(p_version_label_rec.OBJECT_VERSION_NUMBER,-1)) THEN
24593 FND_MESSAGE.Set_Name('CSI', 'CSI_API_OBJ_VER_MISMATCH');
24594 FND_MSG_PUB.ADD;
24595 RAISE FND_API.G_EXC_ERROR;
24596 END IF;
24597
24598 IF get_curr_ver_label_rec%NOTFOUND THEN
24599 FND_MESSAGE.Set_Name('CSI', 'CSI_API_RECORD_LOCKED');
24600 FND_MSG_PUB.ADD;
24601 RAISE FND_API.G_EXC_ERROR;
24602 END IF;
24603 CLOSE get_curr_ver_label_rec;
24604
24605 -- Increment the object_version_number before updating
24606 l_OBJECT_VERSION_NUMBER := l_curr_ver_label_rec.OBJECT_VERSION_NUMBER + 1 ;
24607
24608 CSI_I_VERSION_LABELS_PKG.Update_Row(
24609 p_VERSION_LABEL_ID => p_version_label_rec.version_label_id,
24610 p_INSTANCE_ID => l_version_label_rec.instance_id,
24611 p_VERSION_LABEL => l_version_label_rec.VERSION_LABEL,
24612 p_DATE_TIME_STAMP => l_version_label_rec.DATE_TIME_STAMP,
24613 p_DESCRIPTION => l_version_label_rec.DESCRIPTION ,
24614 p_ACTIVE_START_DATE => l_version_label_rec.ACTIVE_START_DATE,
24615 p_ACTIVE_END_DATE => p_version_label_rec.ACTIVE_END_DATE,
24616 p_CONTEXT => l_version_label_rec.CONTEXT ,
24617 p_ATTRIBUTE1 => l_version_label_rec.ATTRIBUTE1,
24618 p_ATTRIBUTE2 => l_version_label_rec.ATTRIBUTE2,
24619 p_ATTRIBUTE3 => l_version_label_rec.ATTRIBUTE3,
24620 p_ATTRIBUTE4 => l_version_label_rec.ATTRIBUTE4,
24621 p_ATTRIBUTE5 => l_version_label_rec.ATTRIBUTE5,
24622 p_ATTRIBUTE6 => l_version_label_rec.ATTRIBUTE6,
24623 p_ATTRIBUTE7 => l_version_label_rec.ATTRIBUTE7,
24624 p_ATTRIBUTE8 => l_version_label_rec.ATTRIBUTE8,
24625 p_ATTRIBUTE9 => l_version_label_rec.ATTRIBUTE9,
24626 p_ATTRIBUTE10 => l_version_label_rec.ATTRIBUTE10,
24627 p_ATTRIBUTE11 => l_version_label_rec.ATTRIBUTE11,
24628 p_ATTRIBUTE12 => l_version_label_rec.ATTRIBUTE12,
24629 p_ATTRIBUTE13 => l_version_label_rec.ATTRIBUTE13,
24630 p_ATTRIBUTE14 => l_version_label_rec.ATTRIBUTE14,
24631 p_ATTRIBUTE15 => l_version_label_rec.ATTRIBUTE15,
24632 p_CREATED_BY => fnd_api.g_miss_num ,
24633 p_CREATION_DATE => fnd_api.g_miss_date ,
24634 p_LAST_UPDATED_BY => FND_GLOBAL.USER_ID ,
24635 p_LAST_UPDATE_DATE => sysdate ,
24636 p_LAST_UPDATE_LOGIN => FND_GLOBAL.LOGIN_ID ,
24637 p_OBJECT_VERSION_NUMBER => l_OBJECT_VERSION_NUMBER );
24638
24639
24640 -- Call create_transaction to create txn log
24641 CSI_TRANSACTIONS_PVT.Create_transaction
24642 (
24643 p_api_version => p_api_version
24644 ,p_commit => p_commit
24645 ,p_init_msg_list => p_init_msg_list
24646 ,p_validation_level => p_validation_level
24647 ,p_Success_If_Exists_Flag => 'Y'
24648 ,P_transaction_rec => p_txn_rec
24649 ,x_return_status => x_return_status
24650 ,x_msg_count => x_msg_count
24651 ,x_msg_data => x_msg_data );
24652
24653 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
24654 FOR i in 1..x_msg_Count LOOP
24655 FND_MSG_PUB.Get(p_msg_index => i,
24656 p_encoded => 'F',
24657 p_data => x_msg_data,
24658 p_msg_index_out => x_msg_index_out );
24659 CSI_gen_utility_pvt.put_line( 'message data = '||x_msg_data);
24660 End LOOP;
24661 RAISE FND_API.G_EXC_ERROR;
24662 END IF;
24663
24664 -- Generate a unique instance_party_history_id from the sequence
24665 l_version_label_hist_id := CSI_Instance_parties_vld_pvt.gen_ver_label_hist_id;
24666
24667 -- Get the full_dump_frequency from csi_install_parameter
24668 IF csi_datastructures_pub.g_install_param_rec.fetch_flag IS NULL THEN
24669 csi_gen_utility_pvt.populate_install_param_rec;
24670 END IF;
24671 --
24672 l_full_dump_frequency := csi_datastructures_pub.g_install_param_rec.history_full_dump_frequency;
24673 --
24674 IF l_full_dump_frequency IS NULL THEN
24675 FND_MESSAGE.SET_NAME('CSI','CSI_API_GET_FULL_DUMP_FAILED');
24676 FND_MSG_PUB.ADD;
24677 RAISE FND_API.G_EXC_ERROR;
24678 END IF;
24679
24680 select mod(l_object_version_number,l_full_dump_frequency)
24681 into l_mod_value
24682 from dual;
24683
24684 IF (l_mod_value = 0) THEN
24685 -- If the mod value is 0 then dump all the columns both changed and unchanged
24686 -- changed columns have old and new values while the unchanged values have old and new values
24687 -- exactly same
24688
24689 -- Call the table handlers to insert into history table
24690 CSI_I_VERSION_LABELS_H_PKG.Insert_Row
24691 (
24692 px_VERSION_LABEL_HISTORY_ID => l_version_label_hist_id ,
24693 p_VERSION_LABEL_ID => p_version_label_rec.version_label_id ,
24694 p_TRANSACTION_ID => p_txn_rec.TRANSACTION_ID ,
24695 p_OLD_VERSION_LABEL => l_curr_ver_label_rec.VERSION_LABEL ,
24696 p_NEW_VERSION_LABEL => l_curr_ver_label_rec.VERSION_LABEL ,
24697 p_OLD_DESCRIPTION => l_curr_ver_label_rec.DESCRIPTION ,
24698 p_NEW_DESCRIPTION => l_curr_ver_label_rec.DESCRIPTION ,
24699 p_OLD_DATE_TIME_STAMP => l_curr_ver_label_rec.DATE_TIME_STAMP ,
24700 p_NEW_DATE_TIME_STAMP => l_curr_ver_label_rec.DATE_TIME_STAMP ,
24701 p_OLD_ACTIVE_START_DATE => l_curr_ver_label_rec.ACTIVE_START_DATE ,
24702 p_NEW_ACTIVE_START_DATE => l_curr_ver_label_rec.ACTIVE_START_DATE ,
24703 p_OLD_ACTIVE_END_DATE => l_curr_ver_label_rec.ACTIVE_END_DATE ,
24704 p_NEW_ACTIVE_END_DATE => p_version_label_rec.ACTIVE_END_DATE ,
24705 p_OLD_CONTEXT => l_curr_ver_label_rec.CONTEXT ,
24706 p_NEW_CONTEXT => l_curr_ver_label_rec.CONTEXT ,
24707 p_OLD_ATTRIBUTE1 => l_curr_ver_label_rec.ATTRIBUTE1 ,
24708 p_NEW_ATTRIBUTE1 => l_curr_ver_label_rec.ATTRIBUTE1 ,
24709 p_OLD_ATTRIBUTE2 => l_curr_ver_label_rec.ATTRIBUTE2 ,
24710 p_NEW_ATTRIBUTE2 => l_curr_ver_label_rec.ATTRIBUTE2 ,
24711 p_OLD_ATTRIBUTE3 => l_curr_ver_label_rec.ATTRIBUTE3 ,
24712 p_NEW_ATTRIBUTE3 => l_curr_ver_label_rec.ATTRIBUTE3 ,
24713 p_OLD_ATTRIBUTE4 => l_curr_ver_label_rec.ATTRIBUTE4 ,
24714 p_NEW_ATTRIBUTE4 => l_curr_ver_label_rec.ATTRIBUTE4 ,
24715 p_OLD_ATTRIBUTE5 => l_curr_ver_label_rec.ATTRIBUTE5 ,
24716 p_NEW_ATTRIBUTE5 => l_curr_ver_label_rec.ATTRIBUTE5 ,
24717 p_OLD_ATTRIBUTE6 => l_curr_ver_label_rec.ATTRIBUTE6 ,
24718 p_NEW_ATTRIBUTE6 => l_curr_ver_label_rec.ATTRIBUTE6 ,
24719 p_OLD_ATTRIBUTE7 => l_curr_ver_label_rec.ATTRIBUTE7 ,
24720 p_NEW_ATTRIBUTE7 => l_curr_ver_label_rec.ATTRIBUTE7 ,
24721 p_OLD_ATTRIBUTE8 => l_curr_ver_label_rec.ATTRIBUTE8 ,
24722 p_NEW_ATTRIBUTE8 => l_curr_ver_label_rec.ATTRIBUTE8 ,
24723 p_OLD_ATTRIBUTE9 => l_curr_ver_label_rec.ATTRIBUTE9 ,
24724 p_NEW_ATTRIBUTE9 => l_curr_ver_label_rec.ATTRIBUTE9 ,
24725 p_OLD_ATTRIBUTE10 => l_curr_ver_label_rec.ATTRIBUTE10,
24726 p_NEW_ATTRIBUTE10 => l_curr_ver_label_rec.ATTRIBUTE10,
24727 p_OLD_ATTRIBUTE11 => l_curr_ver_label_rec.ATTRIBUTE11,
24728 p_NEW_ATTRIBUTE11 => l_curr_ver_label_rec.ATTRIBUTE11,
24729 p_OLD_ATTRIBUTE12 => l_curr_ver_label_rec.ATTRIBUTE12,
24730 p_NEW_ATTRIBUTE12 => l_curr_ver_label_rec.ATTRIBUTE12,
24731 p_OLD_ATTRIBUTE13 => l_curr_ver_label_rec.ATTRIBUTE13,
24732 p_NEW_ATTRIBUTE13 => l_curr_ver_label_rec.ATTRIBUTE13,
24733 p_OLD_ATTRIBUTE14 => l_curr_ver_label_rec.ATTRIBUTE14,
24734 p_NEW_ATTRIBUTE14 => l_curr_ver_label_rec.ATTRIBUTE14,
24735 p_OLD_ATTRIBUTE15 => l_curr_ver_label_rec.ATTRIBUTE15,
24736 p_NEW_ATTRIBUTE15 => l_curr_ver_label_rec.ATTRIBUTE15,
24737 p_FULL_DUMP_FLAG => 'Y' ,
24738 p_CREATED_BY => FND_GLOBAL.USER_ID ,
24739 p_CREATION_DATE => SYSDATE ,
24740 p_LAST_UPDATED_BY => FND_GLOBAL.USER_ID ,
24741 p_LAST_UPDATE_DATE => SYSDATE ,
24742 p_LAST_UPDATE_LOGIN => FND_GLOBAL.LOGIN_ID ,
24743 p_OBJECT_VERSION_NUMBER => 1 );
24744
24745
24746 ELSE
24747 -- If the mod value is not equal to zero then dump only the changed columns
24748 -- while the unchanged values have old and new values as null
24749
24750 -- Call the table handlers to insert into history table
24751 CSI_I_VERSION_LABELS_H_PKG.Insert_Row
24752 (
24753 px_VERSION_LABEL_HISTORY_ID => l_version_label_hist_id ,
24754 p_VERSION_LABEL_ID => p_version_label_rec.version_label_id ,
24755 p_TRANSACTION_ID => p_txn_rec.TRANSACTION_ID ,
24756 p_OLD_VERSION_LABEL => l_version_label_rec.VERSION_LABEL ,
24757 p_NEW_VERSION_LABEL => l_version_label_rec.VERSION_LABEL ,
24758 p_OLD_DESCRIPTION => l_version_label_rec.DESCRIPTION ,
24759 p_NEW_DESCRIPTION => l_version_label_rec.DESCRIPTION ,
24760 p_OLD_DATE_TIME_STAMP => l_version_label_rec.DATE_TIME_STAMP ,
24761 p_NEW_DATE_TIME_STAMP => l_version_label_rec.DATE_TIME_STAMP ,
24762 p_OLD_ACTIVE_START_DATE => l_version_label_rec.ACTIVE_START_DATE ,
24763 p_NEW_ACTIVE_START_DATE => l_version_label_rec.ACTIVE_START_DATE ,
24764 p_OLD_ACTIVE_END_DATE => l_version_label_rec.ACTIVE_END_DATE ,
24765 p_NEW_ACTIVE_END_DATE => p_version_label_rec.ACTIVE_END_DATE ,
24766 p_OLD_CONTEXT => l_version_label_rec.CONTEXT ,
24767 p_NEW_CONTEXT => l_version_label_rec.CONTEXT ,
24768 p_OLD_ATTRIBUTE1 => l_version_label_rec.ATTRIBUTE1 ,
24769 p_NEW_ATTRIBUTE1 => l_version_label_rec.ATTRIBUTE1 ,
24770 p_OLD_ATTRIBUTE2 => l_version_label_rec.ATTRIBUTE2 ,
24771 p_NEW_ATTRIBUTE2 => l_version_label_rec.ATTRIBUTE2 ,
24772 p_OLD_ATTRIBUTE3 => l_version_label_rec.ATTRIBUTE3 ,
24773 p_NEW_ATTRIBUTE3 => l_version_label_rec.ATTRIBUTE3 ,
24774 p_OLD_ATTRIBUTE4 => l_version_label_rec.ATTRIBUTE4 ,
24775 p_NEW_ATTRIBUTE4 => l_version_label_rec.ATTRIBUTE4 ,
24776 p_OLD_ATTRIBUTE5 => l_version_label_rec.ATTRIBUTE5 ,
24777 p_NEW_ATTRIBUTE5 => l_version_label_rec.ATTRIBUTE5 ,
24778 p_OLD_ATTRIBUTE6 => l_version_label_rec.ATTRIBUTE6 ,
24779 p_NEW_ATTRIBUTE6 => l_version_label_rec.ATTRIBUTE6 ,
24780 p_OLD_ATTRIBUTE7 => l_version_label_rec.ATTRIBUTE7 ,
24781 p_NEW_ATTRIBUTE7 => l_version_label_rec.ATTRIBUTE7 ,
24782 p_OLD_ATTRIBUTE8 => l_version_label_rec.ATTRIBUTE8 ,
24783 p_NEW_ATTRIBUTE8 => l_version_label_rec.ATTRIBUTE8 ,
24784 p_OLD_ATTRIBUTE9 => l_version_label_rec.ATTRIBUTE9 ,
24785 p_NEW_ATTRIBUTE9 => l_version_label_rec.ATTRIBUTE9 ,
24786 p_OLD_ATTRIBUTE10 => l_version_label_rec.ATTRIBUTE10 ,
24787 p_NEW_ATTRIBUTE10 => l_version_label_rec.ATTRIBUTE10 ,
24788 p_OLD_ATTRIBUTE11 => l_version_label_rec.ATTRIBUTE11 ,
24789 p_NEW_ATTRIBUTE11 => l_version_label_rec.ATTRIBUTE11 ,
24790 p_OLD_ATTRIBUTE12 => l_version_label_rec.ATTRIBUTE12 ,
24791 p_NEW_ATTRIBUTE12 => l_version_label_rec.ATTRIBUTE12 ,
24792 p_OLD_ATTRIBUTE13 => l_version_label_rec.ATTRIBUTE13 ,
24793 p_NEW_ATTRIBUTE13 => l_version_label_rec.ATTRIBUTE13 ,
24794 p_OLD_ATTRIBUTE14 => l_version_label_rec.ATTRIBUTE14 ,
24795 p_NEW_ATTRIBUTE14 => l_version_label_rec.ATTRIBUTE14 ,
24796 p_OLD_ATTRIBUTE15 => l_version_label_rec.ATTRIBUTE15 ,
24797 p_NEW_ATTRIBUTE15 => l_version_label_rec.ATTRIBUTE15 ,
24798 p_FULL_DUMP_FLAG => 'N' ,
24799 p_CREATED_BY => FND_GLOBAL.USER_ID ,
24800 p_CREATION_DATE => SYSDATE ,
24801 p_LAST_UPDATED_BY => FND_GLOBAL.USER_ID ,
24802 p_LAST_UPDATE_DATE => SYSDATE ,
24803 p_LAST_UPDATE_LOGIN => FND_GLOBAL.LOGIN_ID ,
24804 p_OBJECT_VERSION_NUMBER => 1 );
24805
24806
24807 END IF;
24808 --
24809 -- End of API body
24810
24811 -- Standard check of p_commit.
24812 IF FND_API.To_Boolean( p_commit ) THEN
24813 COMMIT WORK;
24814 END IF;
24815
24816 -- Standard call to get message count and if count is get message info.
24817 FND_MSG_PUB.Count_And_Get
24818 (p_count => x_msg_count ,
24819 p_data => x_msg_data );
24820 EXCEPTION
24821 WHEN FND_API.G_EXC_ERROR THEN
24822 ROLLBACK TO expire_version_label_pvt;
24823 x_return_status := FND_API.G_RET_STS_ERROR ;
24824 FND_MSG_PUB.Count_And_Get
24825 ( p_count => x_msg_count,
24826 p_data => x_msg_data);
24827 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
24828 ROLLBACK TO expire_version_label_pvt;
24829 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
24830 FND_MSG_PUB.Count_And_Get
24831 ( p_count => x_msg_count,
24832 p_data => x_msg_data);
24833 WHEN OTHERS THEN
24834 ROLLBACK TO expire_version_label_pvt;
24835 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
24836 IF FND_MSG_PUB.Check_Msg_Level
24837 (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
24838 THEN
24839 FND_MSG_PUB.Add_Exc_Msg
24840 ( G_PKG_NAME, l_api_name );
24841 END IF;
24842 FND_MSG_PUB.Count_And_Get
24843 ( p_count => x_msg_count,
24844 p_data => x_msg_data);
24845 END expire_version_label;
24846
24847 /*----------------------------------------------------------*/
24848 /* Procedure name: Initialize_ext_rec_no_dump */
24849 /* Description : This procedure initialises the first */
24850 /* record from the history */
24851 /*----------------------------------------------------------*/
24852
24853 PROCEDURE Initialize_ext_rec_no_dump
24854 (
24855 x_ext_rec IN OUT NOCOPY csi_datastructures_pub.extend_attrib_values_rec,
24856 p_ext_id IN NUMBER,
24857 x_no_dump IN OUT NOCOPY DATE
24858 ) IS
24859
24860 CURSOR Int_no_dump(p_ext_id IN NUMBER ) IS
24861 SELECT creation_date,
24862 NEW_attribute_value,
24863 NEW_active_start_date,
24864 NEW_active_end_date,
24865 NEW_context,
24866 NEW_attribute1 ,
24867 NEW_attribute2,
24868 NEW_attribute3,
24869 NEW_attribute4,
24870 NEW_attribute5,
24871 NEW_attribute6,
24872 NEW_attribute7,
24873 NEW_attribute8,
24874 NEW_attribute9,
24875 NEW_attribute10,
24876 NEW_attribute11,
24877 NEW_attribute12,
24878 NEW_attribute13,
24879 NEW_attribute14,
24880 NEW_attribute15
24881 FROM csi_iea_values_h
24882 WHERE attribute_value_id = p_ext_id
24883 ORDER BY creation_date;
24884
24885 BEGIN
24886
24887 FOR C1 IN Int_no_dump(p_ext_id)
24888 LOOP
24889 IF Int_no_dump%ROWCOUNT = 1 THEN
24890 x_no_dump := C1.creation_date;
24891 x_ext_rec.attribute_value := C1.NEW_attribute_value;
24892 x_ext_rec.active_start_date := C1.NEW_active_start_date;
24893 x_ext_rec.active_end_date := C1.NEW_active_end_date;
24894 x_ext_rec.context := C1.NEW_context;
24895 x_ext_rec.attribute1 := C1.NEW_attribute1;
24896 x_ext_rec.attribute2 := C1.NEW_attribute2;
24897 x_ext_rec.attribute3 := C1.NEW_attribute3;
24898 x_ext_rec.attribute4 := C1.NEW_attribute4;
24899 x_ext_rec.attribute5 := C1.NEW_attribute5;
24900 x_ext_rec.attribute6 := C1.NEW_attribute6;
24901 x_ext_rec.attribute7 := C1.NEW_attribute7;
24902 x_ext_rec.attribute8 := C1.NEW_attribute8;
24903 x_ext_rec.attribute9 := C1.NEW_attribute9;
24904 x_ext_rec.attribute10 := C1.NEW_attribute10;
24905 x_ext_rec.attribute11 := C1.NEW_attribute11;
24906 x_ext_rec.attribute12 := C1.NEW_attribute12;
24907 x_ext_rec.attribute13 := C1.NEW_attribute13;
24908 x_ext_rec.attribute14 := C1.NEW_attribute14;
24909 x_ext_rec.attribute15 := C1.NEW_attribute15;
24910 ELSE
24911 EXIT;
24912 END IF;
24913 END LOOP;
24914 END Initialize_ext_rec_no_dump;
24915
24916
24917 /*----------------------------------------------------------*/
24918 /* Procedure name: Initialize_ext_rec */
24919 /* Description : This procudure recontructs the record */
24920 /* from the history */
24921 /*----------------------------------------------------------*/
24922
24923 PROCEDURE Initialize_ext_rec
24924 (
24925 x_ext_rec IN OUT NOCOPY csi_datastructures_pub.extend_attrib_values_rec,
24926 p_ext_h_id IN NUMBER,
24927 x_nearest_full_dump IN OUT NOCOPY DATE
24928 ) IS
24929
24930 CURSOR Int_nearest_full_dump(p_ext_hist_id IN NUMBER ) IS
24931 SELECT creation_date,
24932 NEW_attribute_value,
24933 NEW_active_start_date,
24934 NEW_active_end_date,
24935 NEW_context,
24936 NEW_attribute1 ,
24937 NEW_attribute2,
24938 NEW_attribute3,
24939 NEW_attribute4,
24940 NEW_attribute5,
24941 NEW_attribute6,
24942 NEW_attribute7,
24943 NEW_attribute8,
24944 NEW_attribute9,
24945 NEW_attribute10,
24946 NEW_attribute11,
24947 NEW_attribute12,
24948 NEW_attribute13,
24949 NEW_attribute14,
24950 NEW_attribute15
24951 FROM csi_iea_values_h
24952 WHERE attribute_value_history_id = p_ext_hist_id
24953 AND full_dump_flag = 'Y';
24954
24955 BEGIN
24956
24957 FOR C1 IN Int_nearest_full_dump(p_ext_h_id)
24958 LOOP
24959 x_nearest_full_dump := C1.creation_date;
24960 x_ext_rec.attribute_value := C1.NEW_attribute_value;
24961 x_ext_rec.active_start_date := C1.NEW_active_start_date;
24962 x_ext_rec.active_end_date := C1.NEW_active_end_date;
24963 x_ext_rec.context := C1.NEW_context;
24964 x_ext_rec.attribute1 := C1.NEW_attribute1;
24965 x_ext_rec.attribute2 := C1.NEW_attribute2;
24966 x_ext_rec.attribute3 := C1.NEW_attribute3;
24967 x_ext_rec.attribute4 := C1.NEW_attribute4;
24968 x_ext_rec.attribute5 := C1.NEW_attribute5;
24969 x_ext_rec.attribute6 := C1.NEW_attribute6;
24970 x_ext_rec.attribute7 := C1.NEW_attribute7;
24971 x_ext_rec.attribute8 := C1.NEW_attribute8;
24972 x_ext_rec.attribute9 := C1.NEW_attribute9;
24973 x_ext_rec.attribute10 := C1.NEW_attribute10;
24974 x_ext_rec.attribute11 := C1.NEW_attribute11;
24975 x_ext_rec.attribute12 := C1.NEW_attribute12;
24976 x_ext_rec.attribute13 := C1.NEW_attribute13;
24977 x_ext_rec.attribute14 := C1.NEW_attribute14;
24978 x_ext_rec.attribute15 := C1.NEW_attribute15;
24979 END LOOP;
24980 END Initialize_ext_rec ;
24981
24982
24983
24984 /*----------------------------------------------------------*/
24985 /* Procedure name: Construct_ext_from_hist */
24986 /* Description : This procudure recontructs the record */
24987 /* from the history */
24988 /*----------------------------------------------------------*/
24989
24990 PROCEDURE Construct_ext_from_hist
24991 ( x_ext_tbl IN OUT NOCOPY csi_datastructures_pub.extend_attrib_values_tbl,
24992 p_time_stamp IN DATE
24993 ) IS
24994
24995 l_nearest_full_dump DATE := p_time_stamp;
24996 l_att_val_hist_id NUMBER;
24997 l_ext_tbl csi_datastructures_pub.extend_attrib_values_tbl;
24998 l_ext_count NUMBER := 0;
24999 --
25000 Process_next EXCEPTION;
25001
25002 CURSOR get_nearest_full_dump(p_att_val_id IN NUMBER ,p_time IN DATE) IS
25003 SELECT MAX(attribute_value_history_id)
25004 FROM csi_iea_values_h
25005 WHERE creation_date <= p_time
25006 AND attribute_value_id = p_att_val_id
25007 AND full_dump_flag = 'Y' ;
25008
25009
25010 CURSOR get_ext_hist(p_att_val_id IN NUMBER ,
25011 p_nearest_full_dump IN DATE,
25012 p_time IN DATE ) IS
25013 SELECT attribute_value_history_id,
25014 OLD_ATTRIBUTE_VALUE ,
25015 NEW_ATTRIBUTE_VALUE,
25016 OLD_ACTIVE_START_DATE,
25017 NEW_ACTIVE_START_DATE,
25018 OLD_ACTIVE_END_DATE ,
25019 NEW_ACTIVE_END_DATE ,
25020 OLD_CONTEXT ,
25021 NEW_CONTEXT ,
25022 OLD_ATTRIBUTE1 ,
25023 NEW_ATTRIBUTE1 ,
25024 OLD_ATTRIBUTE2 ,
25025 NEW_ATTRIBUTE2 ,
25026 OLD_ATTRIBUTE3 ,
25027 NEW_ATTRIBUTE3 ,
25028 OLD_ATTRIBUTE4 ,
25029 NEW_ATTRIBUTE4 ,
25030 OLD_ATTRIBUTE5 ,
25031 NEW_ATTRIBUTE5 ,
25032 OLD_ATTRIBUTE6 ,
25033 NEW_ATTRIBUTE6 ,
25034 OLD_ATTRIBUTE7 ,
25035 NEW_ATTRIBUTE7 ,
25036 OLD_ATTRIBUTE8 ,
25037 NEW_ATTRIBUTE8 ,
25038 OLD_ATTRIBUTE9 ,
25039 NEW_ATTRIBUTE9 ,
25040 OLD_ATTRIBUTE10 ,
25041 NEW_ATTRIBUTE10 ,
25042 OLD_ATTRIBUTE11 ,
25043 NEW_ATTRIBUTE11 ,
25044 OLD_ATTRIBUTE12 ,
25045 NEW_ATTRIBUTE12 ,
25046 OLD_ATTRIBUTE13 ,
25047 NEW_ATTRIBUTE13 ,
25048 OLD_ATTRIBUTE14 ,
25049 NEW_ATTRIBUTE14 ,
25050 OLD_ATTRIBUTE15 ,
25051 NEW_ATTRIBUTE15
25052 FROM csi_iea_values_h
25053 WHERE creation_date <= p_time
25054 AND creation_date >= p_nearest_full_dump
25055 AND attribute_value_id = p_att_val_id
25056 ORDER BY creation_date;
25057
25058 l_time_stamp DATE := p_time_stamp;
25059
25060 BEGIN
25061 l_ext_tbl := x_ext_tbl;
25062 IF l_ext_tbl.COUNT > 0 THEN
25063 FOR i IN l_ext_tbl.FIRST..l_ext_tbl.LAST LOOP
25064 BEGIN
25065 OPEN get_nearest_full_dump(l_ext_tbl(i).attribute_value_id, p_time_stamp);
25066 FETCH get_nearest_full_dump INTO l_att_val_hist_id ;
25067 CLOSE get_nearest_full_dump;
25068
25069 IF l_att_val_hist_id IS NOT NULL THEN
25070 Initialize_ext_rec( l_ext_tbl(i), l_att_val_hist_id ,l_nearest_full_dump);
25071 ELSE
25072 Initialize_ext_rec_no_dump( l_ext_tbl(i), l_ext_tbl(i).attribute_value_id, l_time_stamp);
25073
25074 l_nearest_full_dump := l_time_stamp;
25075 -- If the user chooses a date before the creation date of the instance
25076 -- then raise an error
25077 IF p_time_stamp < l_time_stamp THEN
25078 -- Messages Commented for bug 2423342. Records that do not qualify should get deleted.
25079 -- FND_MESSAGE.SET_NAME('CSI','CSI_H_DATE_BEFORE_CRE_DATE');
25080 -- FND_MESSAGE.SET_TOKEN('CREATION_DATE',to_char(l_time_stamp, 'DD-MON-YYYY HH24:MI:SS'));
25081 -- FND_MESSAGE.SET_TOKEN('USER_DATE',to_char(p_time_stamp, 'DD-MON-YYYY HH24:MI:SS'));
25082 -- FND_MSG_PUB.Add;
25083 -- RAISE FND_API.G_EXC_ERROR;
25084 l_ext_tbl.DELETE(i);
25085 RAISE Process_next;
25086 END IF;
25087 END IF;
25088
25089 FOR C2 IN get_ext_hist(l_ext_tbl(i).attribute_value_id ,l_nearest_full_dump,p_time_stamp )
25090 LOOP
25091 IF (C2.OLD_ATTRIBUTE_VALUE IS NULL AND C2.NEW_ATTRIBUTE_VALUE IS NOT NULL)
25092 OR (C2.OLD_ATTRIBUTE_VALUE IS NOT NULL AND C2.NEW_ATTRIBUTE_VALUE IS NULL)
25093 OR (C2.OLD_ATTRIBUTE_VALUE <> C2.NEW_ATTRIBUTE_VALUE) THEN
25094 l_ext_tbl(i).ATTRIBUTE_VALUE := C2.NEW_ATTRIBUTE_VALUE;
25095 END IF;
25096
25097 IF (C2.OLD_ACTIVE_START_DATE IS NULL AND C2.NEW_ACTIVE_START_DATE IS NOT NULL)
25098 OR (C2.OLD_ACTIVE_START_DATE IS NOT NULL AND C2.NEW_ACTIVE_START_DATE IS NULL)
25099 OR (C2.OLD_ACTIVE_START_DATE <> C2.NEW_ACTIVE_START_DATE) THEN
25100 l_ext_tbl(i).ACTIVE_START_DATE := C2.NEW_ACTIVE_START_DATE;
25101 END IF;
25102
25103
25104 IF (C2.OLD_ACTIVE_END_DATE IS NULL AND C2.NEW_ACTIVE_END_DATE IS NOT NULL)
25105 OR (C2.OLD_ACTIVE_END_DATE IS NOT NULL AND C2.NEW_ACTIVE_END_DATE IS NULL)
25106 OR (C2.OLD_ACTIVE_END_DATE <> C2.NEW_ACTIVE_END_DATE) THEN
25107 l_ext_tbl(i).ACTIVE_END_DATE := C2.NEW_ACTIVE_END_DATE;
25108 END IF;
25109
25110
25111 IF (C2.OLD_CONTEXT IS NULL AND C2.NEW_CONTEXT IS NOT NULL)
25112 OR (C2.OLD_CONTEXT IS NOT NULL AND C2.NEW_CONTEXT IS NULL)
25113 OR (C2.OLD_CONTEXT <> C2.NEW_CONTEXT) THEN
25114 l_ext_tbl(i).CONTEXT := C2.NEW_CONTEXT;
25115 END IF;
25116
25117 IF (C2.OLD_ATTRIBUTE1 IS NULL AND C2.NEW_ATTRIBUTE1 IS NOT NULL)
25118 OR (C2.OLD_ATTRIBUTE1 IS NOT NULL AND C2.NEW_ATTRIBUTE1 IS NULL)
25119 OR (C2.OLD_ATTRIBUTE1 <> C2.NEW_ATTRIBUTE1) THEN
25120 l_ext_tbl(i).ATTRIBUTE1 := C2.NEW_ATTRIBUTE1;
25121 END IF;
25122
25123 IF (C2.OLD_ATTRIBUTE2 IS NULL AND C2.NEW_ATTRIBUTE2 IS NOT NULL)
25124 OR (C2.OLD_ATTRIBUTE2 IS NOT NULL AND C2.NEW_ATTRIBUTE2 IS NULL)
25125 OR (C2.OLD_ATTRIBUTE2 <> C2.NEW_ATTRIBUTE2) THEN
25126 l_ext_tbl(i).ATTRIBUTE2 := C2.NEW_ATTRIBUTE2;
25127 END IF;
25128
25129 IF (C2.OLD_ATTRIBUTE3 IS NULL AND C2.NEW_ATTRIBUTE3 IS NOT NULL)
25130 OR (C2.OLD_ATTRIBUTE3 IS NOT NULL AND C2.NEW_ATTRIBUTE3 IS NULL)
25131 OR (C2.OLD_ATTRIBUTE3 <> C2.NEW_ATTRIBUTE3) THEN
25132 l_ext_tbl(i).ATTRIBUTE3 := C2.NEW_ATTRIBUTE3;
25133 END IF;
25134
25135 IF (C2.OLD_ATTRIBUTE4 IS NULL AND C2.NEW_ATTRIBUTE4 IS NOT NULL)
25136 OR (C2.OLD_ATTRIBUTE4 IS NOT NULL AND C2.NEW_ATTRIBUTE4 IS NULL)
25137 OR (C2.OLD_ATTRIBUTE4 <> C2.NEW_ATTRIBUTE4) THEN
25138 l_ext_tbl(i).ATTRIBUTE4 := C2.NEW_ATTRIBUTE4;
25139 END IF;
25140
25141
25142 IF (C2.OLD_ATTRIBUTE5 IS NULL AND C2.NEW_ATTRIBUTE5 IS NOT NULL)
25143 OR (C2.OLD_ATTRIBUTE5 IS NOT NULL AND C2.NEW_ATTRIBUTE5 IS NULL)
25144 OR (C2.OLD_ATTRIBUTE5 <> C2.NEW_ATTRIBUTE5) THEN
25145 l_ext_tbl(i).ATTRIBUTE5 := C2.NEW_ATTRIBUTE5;
25146 END IF;
25147
25148
25149 IF (C2.OLD_ATTRIBUTE6 IS NULL AND C2.NEW_ATTRIBUTE6 IS NOT NULL)
25150 OR (C2.OLD_ATTRIBUTE6 IS NOT NULL AND C2.NEW_ATTRIBUTE6 IS NULL)
25151 OR (C2.OLD_ATTRIBUTE6 <> C2.NEW_ATTRIBUTE6) THEN
25152 l_ext_tbl(i).ATTRIBUTE6 := C2.NEW_ATTRIBUTE6;
25153 END IF;
25154
25155 IF (C2.OLD_ATTRIBUTE7 IS NULL AND C2.NEW_ATTRIBUTE7 IS NOT NULL)
25156 OR (C2.OLD_ATTRIBUTE7 IS NOT NULL AND C2.NEW_ATTRIBUTE7 IS NULL)
25157 OR (C2.OLD_ATTRIBUTE7 <> C2.NEW_ATTRIBUTE7) THEN
25158 l_ext_tbl(i).ATTRIBUTE7 := C2.NEW_ATTRIBUTE7;
25159 END IF;
25160
25161 IF (C2.OLD_ATTRIBUTE8 IS NULL AND C2.NEW_ATTRIBUTE8 IS NOT NULL)
25162 OR (C2.OLD_ATTRIBUTE8 IS NOT NULL AND C2.NEW_ATTRIBUTE8 IS NULL)
25163 OR (C2.OLD_ATTRIBUTE8 <> C2.NEW_ATTRIBUTE8) THEN
25164 l_ext_tbl(i).ATTRIBUTE8 := C2.NEW_ATTRIBUTE8;
25165 END IF;
25166
25167 IF (C2.OLD_ATTRIBUTE9 IS NULL AND C2.NEW_ATTRIBUTE9 IS NOT NULL)
25168 OR (C2.OLD_ATTRIBUTE9 IS NOT NULL AND C2.NEW_ATTRIBUTE9 IS NULL)
25169 OR (C2.OLD_ATTRIBUTE9 <> C2.NEW_ATTRIBUTE9) THEN
25170 l_ext_tbl(i).ATTRIBUTE3 := C2.NEW_ATTRIBUTE3;
25171 END IF;
25172
25173
25174 IF (C2.OLD_ATTRIBUTE10 IS NULL AND C2.NEW_ATTRIBUTE10 IS NOT NULL)
25175 OR (C2.OLD_ATTRIBUTE10 IS NOT NULL AND C2.NEW_ATTRIBUTE10 IS NULL)
25176 OR (C2.OLD_ATTRIBUTE10 <> C2.NEW_ATTRIBUTE10) THEN
25177 l_ext_tbl(i).ATTRIBUTE10 := C2.NEW_ATTRIBUTE10;
25178 END IF;
25179
25180
25181
25182 IF (C2.OLD_ATTRIBUTE11 IS NULL AND C2.NEW_ATTRIBUTE11 IS NOT NULL)
25183 OR (C2.OLD_ATTRIBUTE11 IS NOT NULL AND C2.NEW_ATTRIBUTE11 IS NULL)
25184 OR (C2.OLD_ATTRIBUTE11 <> C2.NEW_ATTRIBUTE11) THEN
25185 l_ext_tbl(i).ATTRIBUTE11 := C2.NEW_ATTRIBUTE11;
25186 END IF;
25187
25188 IF (C2.OLD_ATTRIBUTE12 IS NULL AND C2.NEW_ATTRIBUTE12 IS NOT NULL)
25189 OR (C2.OLD_ATTRIBUTE12 IS NOT NULL AND C2.NEW_ATTRIBUTE12 IS NULL)
25190 OR (C2.OLD_ATTRIBUTE12 <> C2.NEW_ATTRIBUTE12) THEN
25191 l_ext_tbl(i).ATTRIBUTE12 := C2.NEW_ATTRIBUTE12;
25192 END IF;
25193
25194
25195 IF (C2.OLD_ATTRIBUTE13 IS NULL AND C2.NEW_ATTRIBUTE13 IS NOT NULL)
25196 OR (C2.OLD_ATTRIBUTE13 IS NOT NULL AND C2.NEW_ATTRIBUTE13 IS NULL)
25197 OR (C2.OLD_ATTRIBUTE13 <> C2.NEW_ATTRIBUTE13) THEN
25198 l_ext_tbl(i).ATTRIBUTE13 := C2.NEW_ATTRIBUTE13;
25199 END IF;
25200
25201
25202 IF (C2.OLD_ATTRIBUTE14 IS NULL AND C2.NEW_ATTRIBUTE14 IS NOT NULL)
25203 OR (C2.OLD_ATTRIBUTE14 IS NOT NULL AND C2.NEW_ATTRIBUTE14 IS NULL)
25204 OR (C2.OLD_ATTRIBUTE14 <> C2.NEW_ATTRIBUTE14) THEN
25205 l_ext_tbl(i).ATTRIBUTE14 := C2.NEW_ATTRIBUTE14;
25206 END IF;
25207
25208 IF (C2.OLD_ATTRIBUTE15 IS NULL AND C2.NEW_ATTRIBUTE15 IS NOT NULL)
25209 OR (C2.OLD_ATTRIBUTE15 IS NOT NULL AND C2.NEW_ATTRIBUTE15 IS NULL)
25210 OR (C2.OLD_ATTRIBUTE15 <> C2.NEW_ATTRIBUTE15) THEN
25211 l_ext_tbl(i).ATTRIBUTE15 := C2.NEW_ATTRIBUTE15;
25212 END IF;
25213 END LOOP;
25214 EXCEPTION
25215 WHEN Process_next THEN
25216 NULL;
25217 END;
25218 END LOOP;
25219 x_ext_tbl.DELETE;
25220 IF l_ext_tbl.count > 0 THEN
25221 FOR ext_row in l_ext_tbl.FIRST .. l_ext_tbl.LAST
25222 LOOP
25223 IF l_ext_tbl.EXISTS(ext_row) THEN
25224 l_ext_count := l_ext_count + 1;
25225 x_ext_tbl(l_ext_count) := l_ext_tbl(ext_row);
25226 END IF;
25227 END LOOP;
25228 END IF;
25229 END IF;
25230 END Construct_ext_from_hist;
25231
25232
25233 /*----------------------------------------------------------*/
25234 /* Procedure name: Define_ext_Columns */
25235 /* Description : This procudure defines the columns */
25236 /* for the Dynamic SQL */
25237 /*----------------------------------------------------------*/
25238
25239
25240 PROCEDURE Define_ext_Columns
25241 ( p_get_ext_cursor_id IN NUMBER
25242 )
25243 IS
25244 l_ext_rec csi_datastructures_pub.extend_attrib_values_rec;
25245
25246 BEGIN
25247 dbms_sql.define_column(p_get_ext_cursor_id, 1, l_ext_rec.attribute_value_id);
25248 dbms_sql.define_column(p_get_ext_cursor_id, 2, l_ext_rec.attribute_id);
25249 dbms_sql.define_column(p_get_ext_cursor_id, 3, l_ext_rec.instance_id);
25250 dbms_sql.define_column(p_get_ext_cursor_id, 4, l_ext_rec.attribute_code,30);
25251 dbms_sql.define_column(p_get_ext_cursor_id, 5, l_ext_rec.attribute_value,240);
25252 dbms_sql.define_column(p_get_ext_cursor_id, 6, l_ext_rec.active_start_date);
25253 dbms_sql.define_column(p_get_ext_cursor_id, 7, l_ext_rec.active_end_date);
25254 dbms_sql.define_column(p_get_ext_cursor_id, 8, l_ext_rec.context,30);
25255 dbms_sql.define_column(p_get_ext_cursor_id, 9, l_ext_rec.attribute1,150);
25256 dbms_sql.define_column(p_get_ext_cursor_id, 10, l_ext_rec.attribute2,150);
25257 dbms_sql.define_column(p_get_ext_cursor_id, 11, l_ext_rec.attribute3,150);
25258 dbms_sql.define_column(p_get_ext_cursor_id, 12, l_ext_rec.attribute4,150);
25259 dbms_sql.define_column(p_get_ext_cursor_id, 13, l_ext_rec.attribute5,150);
25260 dbms_sql.define_column(p_get_ext_cursor_id, 14, l_ext_rec.attribute6,150);
25261 dbms_sql.define_column(p_get_ext_cursor_id, 15, l_ext_rec.attribute7,150);
25262 dbms_sql.define_column(p_get_ext_cursor_id, 16, l_ext_rec.attribute8,150);
25263 dbms_sql.define_column(p_get_ext_cursor_id, 17, l_ext_rec.attribute9,150);
25264 dbms_sql.define_column(p_get_ext_cursor_id, 18, l_ext_rec.attribute10,150);
25265 dbms_sql.define_column(p_get_ext_cursor_id, 19, l_ext_rec.attribute11,150);
25266 dbms_sql.define_column(p_get_ext_cursor_id, 20, l_ext_rec.attribute12,150);
25267 dbms_sql.define_column(p_get_ext_cursor_id, 21, l_ext_rec.attribute13,150);
25268 dbms_sql.define_column(p_get_ext_cursor_id, 22, l_ext_rec.attribute14,150);
25269 dbms_sql.define_column(p_get_ext_cursor_id, 23, l_ext_rec.attribute15,150);
25270 dbms_sql.define_column(p_get_ext_cursor_id, 24, l_ext_rec.object_version_number);
25271 END Define_ext_Columns;
25272
25273
25274 /*----------------------------------------------------------*/
25275 /* Procedure name: Get_ext_Column_Values */
25276 /* Description : This procudure gets the column values */
25277 /* for the Dynamic SQL */
25278 /*----------------------------------------------------------*/
25279
25280 PROCEDURE Get_ext_Column_Values
25281 (p_get_ext_cursor_id IN NUMBER,
25282 x_ext_rec OUT NOCOPY csi_datastructures_pub.extend_attrib_values_rec
25283 )
25284 IS
25285 BEGIN
25286 dbms_sql.column_value(p_get_ext_cursor_id, 1, x_ext_rec.attribute_value_id);
25287 dbms_sql.column_value(p_get_ext_cursor_id, 2, x_ext_rec.attribute_id);
25288 dbms_sql.column_value(p_get_ext_cursor_id, 3, x_ext_rec.instance_id);
25289 dbms_sql.column_value(p_get_ext_cursor_id, 4, x_ext_rec.attribute_code);
25290 dbms_sql.column_value(p_get_ext_cursor_id, 5, x_ext_rec.attribute_value);
25291 dbms_sql.column_value(p_get_ext_cursor_id, 6, x_ext_rec.active_start_date);
25292 dbms_sql.column_value(p_get_ext_cursor_id, 7, x_ext_rec.active_end_date);
25293 dbms_sql.column_value(p_get_ext_cursor_id, 8, x_ext_rec.context);
25294 dbms_sql.column_value(p_get_ext_cursor_id, 9, x_ext_rec.attribute1);
25295 dbms_sql.column_value(p_get_ext_cursor_id, 10, x_ext_rec.attribute2);
25296 dbms_sql.column_value(p_get_ext_cursor_id, 11, x_ext_rec.attribute3);
25297 dbms_sql.column_value(p_get_ext_cursor_id, 12, x_ext_rec.attribute4);
25298 dbms_sql.column_value(p_get_ext_cursor_id, 13, x_ext_rec.attribute5);
25299 dbms_sql.column_value(p_get_ext_cursor_id, 14, x_ext_rec.attribute6);
25300 dbms_sql.column_value(p_get_ext_cursor_id, 15, x_ext_rec.attribute7);
25301 dbms_sql.column_value(p_get_ext_cursor_id, 16, x_ext_rec.attribute8);
25302 dbms_sql.column_value(p_get_ext_cursor_id, 17, x_ext_rec.attribute9);
25303 dbms_sql.column_value(p_get_ext_cursor_id, 18, x_ext_rec.attribute10);
25304 dbms_sql.column_value(p_get_ext_cursor_id, 19, x_ext_rec.attribute11);
25305 dbms_sql.column_value(p_get_ext_cursor_id, 20, x_ext_rec.attribute12);
25306 dbms_sql.column_value(p_get_ext_cursor_id, 21, x_ext_rec.attribute13);
25307 dbms_sql.column_value(p_get_ext_cursor_id, 22, x_ext_rec.attribute14);
25308 dbms_sql.column_value(p_get_ext_cursor_id, 23, x_ext_rec.attribute15);
25309 dbms_sql.column_value(p_get_ext_cursor_id, 24, x_ext_rec.object_version_number);
25310
25311 END Get_ext_Column_Values;
25312
25313
25314
25315
25316 /*----------------------------------------------------------*/
25317 /* Procedure name: Bind_ext_variable */
25318 /* Description : This procudure binds the column values */
25319 /* for the Dynamic SQL */
25320 /*----------------------------------------------------------*/
25321
25322 PROCEDURE Bind_ext_variable
25323 ( p_ext_query_rec IN csi_datastructures_pub.extend_attrib_query_rec,
25324 p_cur_get_ext IN NUMBER
25325 )
25326 IS
25327 BEGIN
25328 IF( (p_ext_query_rec.attribute_value_id IS NOT NULL)
25329 AND (p_ext_query_rec.attribute_value_id <> FND_API.G_MISS_NUM)) THEN
25330 DBMS_SQL.BIND_VARIABLE(p_cur_get_ext, ':attribute_value_id', p_ext_query_rec.attribute_value_id);
25331 END IF;
25332
25333 IF( (p_ext_query_rec.instance_id IS NOT NULL)
25334 AND (p_ext_query_rec.instance_id <> FND_API.G_MISS_NUM)) THEN
25335 DBMS_SQL.BIND_VARIABLE(p_cur_get_ext, ':instance_id', p_ext_query_rec.instance_id);
25336 END IF;
25337
25338 IF( (p_ext_query_rec.attribute_id IS NOT NULL)
25339 AND (p_ext_query_rec.attribute_id<> FND_API.G_MISS_NUM)) THEN
25340 DBMS_SQL.BIND_VARIABLE(p_cur_get_ext, ':attribute_id', p_ext_query_rec.attribute_id);
25341 END IF;
25342
25343 END Bind_ext_variable;
25344
25345
25346
25347
25348
25349 /*----------------------------------------------------------*/
25350 /* Procedure name: Gen_ext_Where_Clause */
25351 /* Description : Procedure used to generate the where */
25352 /* clause for Extended Attributes units */
25353 /*----------------------------------------------------------*/
25354
25355 PROCEDURE Gen_ext_Where_Clause
25356 ( p_ext_query_rec IN csi_datastructures_pub.extend_attrib_query_rec
25357 ,x_where_clause OUT NOCOPY VARCHAR2
25358 ) IS
25359
25360 BEGIN
25361
25362 -- Assign null at the start
25363 x_where_clause := '';
25364
25365 IF (( p_ext_query_rec.attribute_value_id IS NOT NULL) AND
25366 ( p_ext_query_rec.attribute_value_id <> FND_API.G_MISS_NUM)) THEN
25367 x_where_clause := ' cv.attribute_value_id = :attribute_value_id ';
25368 ELSIF ( p_ext_query_rec.attribute_value_id IS NULL) THEN
25369 x_where_clause := ' cv.attribute_value_id IS NULL ';
25370 END IF;
25371
25372 IF ((p_ext_query_rec.instance_id IS NOT NULL) AND
25373 (p_ext_query_rec.instance_id <> FND_API.G_MISS_NUM)) THEN
25374 IF x_where_clause IS NULL THEN
25375 x_where_clause := ' cv.instance_id = :instance_id ';
25376 ELSE
25377 x_where_clause := x_where_clause||' AND '||' cv.instance_id = :instance_id ';
25378 END IF;
25379 ELSIF (p_ext_query_rec.instance_id IS NULL) THEN
25380 IF x_where_clause IS NULL THEN
25381 x_where_clause := ' cv.instance_id IS NULL ';
25382 ELSE
25383 x_where_clause := x_where_clause||' AND '||' cv.instance_id IS NULL ';
25384 END IF;
25385 END IF;
25386
25387 IF ((p_ext_query_rec.attribute_id IS NOT NULL) AND
25388 (p_ext_query_rec.attribute_id <> FND_API.G_MISS_NUM)) THEN
25389 IF x_where_clause IS NULL THEN
25390 x_where_clause := ' cv.attribute_id = :attribute_id ';
25391 ELSE
25392 x_where_clause := x_where_clause||' AND '||' cv.attribute_id = :attribute_id ';
25393 END IF;
25394 ELSIF (p_ext_query_rec.attribute_id IS NULL) THEN
25395 IF x_where_clause IS NULL THEN
25396 x_where_clause := ' cv.attribute_id IS NULL ';
25397 ELSE
25398 x_where_clause := x_where_clause||' AND '||' cv.attribute_id IS NULL ';
25399 END IF;
25400 END IF ;
25401
25402 END Gen_ext_Where_Clause;
25403
25404
25405
25406 /*------------------------------------------------------*/
25407 /* procedure name: create_extended_attrib_values */
25408 /* description : Associates extended attributes to an */
25409 /* item instance */
25410 /* */
25411 /*------------------------------------------------------*/
25412
25413 PROCEDURE create_extended_attrib_values
25414 (
25415 p_api_version IN NUMBER
25416 ,p_commit IN VARCHAR2
25417 ,p_init_msg_list IN VARCHAR2
25418 ,p_validation_level IN NUMBER
25419 ,p_ext_attrib_rec IN OUT NOCOPY csi_datastructures_pub.extend_attrib_values_rec
25420 ,p_txn_rec IN OUT NOCOPY csi_datastructures_pub.transaction_rec
25421 ,x_return_status OUT NOCOPY VARCHAR2
25422 ,x_msg_count OUT NOCOPY NUMBER
25423 ,x_msg_data OUT NOCOPY VARCHAR2
25424 ,p_ext_id_tbl IN OUT NOCOPY csi_item_instance_pvt.ext_id_tbl
25425 ,p_ext_count_rec IN OUT NOCOPY csi_item_instance_pvt.ext_count_rec
25426 ,p_ext_attr_tbl IN OUT NOCOPY csi_item_instance_pvt.ext_attr_tbl
25427 ,p_ext_cat_tbl IN OUT NOCOPY csi_item_instance_pvt.ext_cat_tbl
25428 ,p_called_from_grp IN VARCHAR2
25429 )
25430 IS
25431 l_api_name CONSTANT VARCHAR2(30) := 'create_extended_attrib_values';
25432 l_api_version CONSTANT NUMBER := 1.0;
25433 l_debug_level NUMBER;
25434 l_msg_index NUMBER;
25435 l_msg_count NUMBER;
25436 l_attribute_value_id NUMBER := p_ext_attrib_rec.attribute_value_id;
25437 l_attribute_level VARCHAR2(30);
25438 l_master_organization_id NUMBER;
25439 l_inventory_item_id NUMBER;
25440 l_ori_inventory_item_id NUMBER;
25441 l_ori_master_org_id NUMBER;
25442 l_item_category_id NUMBER;
25443 l_instance_id NUMBER;
25444 l_attribute_value_h_id NUMBER;
25445 l_dump_frequency_flag VARCHAR2(30);
25446 l_record_found BOOLEAN := FALSE;
25447 l_exists_flag VARCHAR2(1);
25448 l_valid_flag VARCHAR2(1);
25449
25450 BEGIN
25451
25452 -- Standard Start of API savepoint
25453 SAVEPOINT create_extended_attrib_values;
25454
25455 -- Standard call to check for call compatibility.
25456 IF NOT FND_API.Compatible_API_Call (l_api_version,
25457 p_api_version,
25458 l_api_name ,
25459 g_pkg_name)
25460 THEN
25461 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
25462 END IF;
25463
25464
25465 -- Initialize message list if p_init_msg_list is set to TRUE.
25466 IF FND_API.to_Boolean( p_init_msg_list ) THEN
25467 FND_MSG_PUB.initialize;
25468 END IF;
25469
25470
25471 -- Initialize API return status to success
25472 x_return_status := FND_API.G_RET_STS_SUCCESS;
25473
25474
25475 -- Check the profile option debug_level for debug message reporting
25476 l_debug_level:=fnd_profile.value('CSI_DEBUG_LEVEL');
25477
25478 -- If debug_level = 1 then dump the procedure name
25479 IF (l_debug_level > 0) THEN
25480 csi_gen_utility_pvt.put_line( 'create_extended_attrib_values');
25481 END IF;
25482
25483
25484 -- If the debug level = 2 then dump all the parameters values.
25485 IF (l_debug_level > 1) THEN
25486 csi_gen_utility_pvt.put_line( p_api_version ||'-'
25487 || p_commit ||'-'
25488 || p_init_msg_list ||'-'
25489 || p_validation_level );
25490 -- Dump extended attribute rec
25491 csi_gen_utility_pvt.dump_ext_attrib_values_rec(p_ext_attrib_rec);
25492 -- Dump txn_rec
25493 csi_gen_utility_pvt.dump_txn_rec(p_txn_rec);
25494 END IF;
25495
25496
25497 -- Start API body
25498 --
25499 -- Initialize the Extended Attrib count
25500 --
25501 IF p_ext_count_rec.ext_count IS NULL OR
25502 p_ext_count_rec.ext_count = FND_API.G_MISS_NUM THEN
25503 p_ext_count_rec.ext_count := 0;
25504 END IF;
25505 --
25506 IF p_ext_count_rec.ext_attr_count IS NULL OR
25507 p_ext_count_rec.ext_attr_count = FND_API.G_MISS_NUM THEN
25508 p_ext_count_rec.ext_attr_count := 0;
25509 END IF;
25510 IF p_ext_count_rec.ext_cat_count IS NULL OR
25511 p_ext_count_rec.ext_cat_count = FND_API.G_MISS_NUM THEN
25512 p_ext_count_rec.ext_cat_count := 0;
25513 END IF;
25514 --
25515 -- Verify if instance id is ok
25516 l_valid_flag := 'Y';
25517 l_exists_flag := 'N';
25518 IF ((p_ext_attrib_rec.instance_id IS NOT NULL AND
25519 p_ext_attrib_rec.instance_id <> FND_API.G_MISS_NUM))
25520 THEN
25521 IF p_ext_id_tbl.count > 0 THEN
25522 FOR ext_count in p_ext_id_tbl.FIRST .. p_ext_id_tbl.LAST
25523 LOOP
25524 IF p_ext_id_tbl(ext_count).instance_id = p_ext_attrib_rec.instance_id
25525 THEN
25526 l_ori_inventory_item_id := p_ext_id_tbl(ext_count).inv_item_id;
25527 l_ori_master_org_id := p_ext_id_tbl(ext_count).inv_mast_org_id;
25528 l_valid_flag := p_ext_id_tbl(ext_count).valid_flag;
25529 l_exists_flag := 'Y';
25530 EXIT;
25531 END IF;
25532 END LOOP;
25533 --
25534 IF l_valid_flag <> 'Y'
25535 THEN
25536 FND_MESSAGE.SET_NAME('CSI','CSI_API_INVALID_INSTANCE_ID');
25537 FND_MESSAGE.SET_TOKEN('INSTANCE_ID',p_ext_attrib_rec.instance_id);
25538 FND_MSG_PUB.Add;
25539 RAISE fnd_api.g_exc_error;
25540 END IF;
25541 END IF;
25542 --
25543 IF l_exists_flag <> 'Y'
25544 THEN
25545 p_ext_count_rec.ext_count := p_ext_count_rec.ext_count + 1;
25546 p_ext_id_tbl(p_ext_count_rec.ext_count).instance_id := p_ext_attrib_rec.instance_id;
25547 IF NOT(csi_extend_attrib_vld_pvt.Is_valid_instance_id
25548 (p_ext_attrib_rec.instance_id
25549 ,'INSERT'
25550 ,l_ori_inventory_item_id
25551 ,l_ori_master_org_id)) THEN
25552 p_ext_id_tbl(p_ext_count_rec.ext_count).valid_flag := 'N';
25553 RAISE fnd_api.g_exc_error;
25554 ELSE
25555 p_ext_id_tbl(p_ext_count_rec.ext_count).valid_flag := 'Y';
25556 p_ext_id_tbl(p_ext_count_rec.ext_count).inv_item_id := l_ori_inventory_item_id;
25557 p_ext_id_tbl(p_ext_count_rec.ext_count).inv_mast_org_id := l_ori_master_org_id;
25558 END IF;
25559 END IF;
25560 END IF;
25561 --
25562
25563 -- Verify if attribute_id is ok
25564 l_valid_flag := 'Y';
25565 l_exists_flag := 'N';
25566 IF ((p_ext_attrib_rec.attribute_id IS NOT NULL) AND
25567 (p_ext_attrib_rec.attribute_id <> FND_API.G_MISS_NUM))
25568 THEN
25569 IF p_ext_attr_tbl.count > 0
25570 THEN
25571 FOR ext_attr_count in p_ext_attr_tbl.FIRST .. p_ext_attr_tbl.LAST
25572 LOOP
25573 IF p_ext_attr_tbl(ext_attr_count).attribute_id = p_ext_attrib_rec.attribute_id
25574 THEN
25575 l_inventory_item_id := p_ext_attr_tbl(ext_attr_count).inv_item_id;
25576 l_master_organization_id := p_ext_attr_tbl(ext_attr_count).inv_mast_org_id;
25577 l_item_category_id := p_ext_attr_tbl(ext_attr_count).item_category_id;
25578 l_attribute_level := p_ext_attr_tbl(ext_attr_count).attribute_level;
25579 l_instance_id := p_ext_attr_tbl(ext_attr_count).instance_id;
25580 l_valid_flag := p_ext_attr_tbl(ext_attr_count).valid_flag;
25581 l_exists_flag := 'Y';
25582 EXIT;
25583 END IF;
25584 END LOOP;
25585 --
25586 IF l_valid_flag <> 'Y'
25587 THEN
25588 FND_MESSAGE.SET_NAME('CSI','CSI_API_INVALID_ATTRIBUTE_ID');
25589 FND_MESSAGE.SET_TOKEN('ATTRIBUTE_ID',p_ext_attrib_rec.attribute_id);
25590 FND_MSG_PUB.Add;
25591 RAISE fnd_api.g_exc_error;
25592 END IF;
25593 END IF;
25594 --
25595 IF l_exists_flag <> 'Y'
25596 THEN
25597 p_ext_count_rec.ext_attr_count := p_ext_count_rec.ext_attr_count + 1;
25598 p_ext_attr_tbl(p_ext_count_rec.ext_attr_count).attribute_id := p_ext_attrib_rec.attribute_id;
25599 IF NOT(csi_extend_attrib_vld_pvt.Is_valid_attribute_id
25600 (p_ext_attrib_rec.attribute_id
25601 ,l_attribute_level
25602 ,l_master_organization_id
25603 ,l_inventory_item_id
25604 ,l_item_category_id
25605 ,l_instance_id
25606 )) THEN
25607 p_ext_attr_tbl(p_ext_count_rec.ext_attr_count).valid_flag := 'N';
25608 RAISE fnd_api.g_exc_error;
25609 ELSE
25610 p_ext_attr_tbl(p_ext_count_rec.ext_attr_count).valid_flag := 'Y';
25611 p_ext_attr_tbl(p_ext_count_rec.ext_attr_count).inv_item_id := l_inventory_item_id;
25612 p_ext_attr_tbl(p_ext_count_rec.ext_attr_count).inv_mast_org_id := l_master_organization_id;
25613 p_ext_attr_tbl(p_ext_count_rec.ext_attr_count).attribute_level := l_attribute_level;
25614 p_ext_attr_tbl(p_ext_count_rec.ext_attr_count).item_category_id := l_item_category_id;
25615 p_ext_attr_tbl(p_ext_count_rec.ext_attr_count).instance_id := l_instance_id;
25616 END IF;
25617 END IF;
25618 ELSE
25619 FND_MESSAGE.SET_NAME('CSI','CSI_API_INVALID_ATTRIBUTE_ID');
25620 FND_MESSAGE.SET_TOKEN('ATTRIBUTE_ID',p_ext_attrib_rec.attribute_id);
25621 FND_MSG_PUB.Add;
25622 END IF;
25623 --
25624
25625 -- Added by sk for bug 2232880
25626 l_record_found := FALSE;
25627 IF ( (p_called_from_grp <> FND_API.G_TRUE) AND
25628 (p_ext_attrib_rec.attribute_value_id IS NULL OR
25629 p_ext_attrib_rec.attribute_value_id = fnd_api.g_miss_num) )
25630 THEN
25631 BEGIN
25632 SELECT attribute_value_id,
25633 object_version_number
25634 INTO p_ext_attrib_rec.attribute_value_id,
25635 p_ext_attrib_rec.object_version_number
25636 FROM csi_iea_values
25637 WHERE instance_id = p_ext_attrib_rec.instance_id
25638 AND attribute_id = p_ext_attrib_rec.attribute_id
25639 AND active_end_date < SYSDATE
25640 AND ROWNUM=1;
25641 l_record_found := TRUE;
25642 EXCEPTION
25643 WHEN OTHERS THEN
25644 NULL;
25645 END;
25646 END IF;
25647 IF l_record_found
25648 THEN
25649 -- Unexpire the extended attrib values
25650 IF p_ext_attrib_rec.active_end_date = fnd_api.g_miss_date
25651 THEN
25652 p_ext_attrib_rec.active_end_date := NULL;
25653 END IF;
25654 csi_item_instance_pvt.update_extended_attrib_values
25655 (p_api_version => p_api_version
25656 ,p_commit => fnd_api.g_false
25657 ,p_init_msg_list => p_init_msg_list
25658 ,p_validation_level => p_validation_level
25659 ,p_ext_attrib_rec => p_ext_attrib_rec
25660 ,p_txn_rec => p_txn_rec
25661 ,x_return_status => x_return_status
25662 ,x_msg_count => x_msg_count
25663 ,x_msg_data => x_msg_data
25664 );
25665
25666 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
25667 l_msg_index := 1;
25668 l_msg_count := x_msg_count;
25669 WHILE l_msg_count > 0 LOOP
25670 x_msg_data := FND_MSG_PUB.GET
25671 (l_msg_index,
25672 FND_API.G_FALSE );
25673
25674 csi_gen_utility_pvt.put_line( ' Failed Pvt:update_extended_attrib_values..');
25675 csi_gen_utility_pvt.put_line('message data = '||x_msg_data);
25676 l_msg_index := l_msg_index + 1;
25677 l_msg_count := l_msg_count - 1;
25678 END LOOP;
25679 RAISE FND_API.G_EXC_ERROR;
25680 END IF;
25681 ELSE -- -- Added by sk for bug 2232880
25682 -- Verify that alternate PK is valid
25683 IF p_called_from_grp <> FND_API.G_TRUE THEN
25684 IF NOT(csi_extend_attrib_vld_pvt.Alternate_PK_exists
25685 (p_ext_attrib_rec.instance_id
25686 ,p_ext_attrib_rec.attribute_id
25687 )) THEN
25688 RAISE FND_API.G_EXC_ERROR;
25689 END IF;
25690 END IF;
25691
25692 -- Check start effective date
25693 IF p_called_from_grp <> FND_API.G_TRUE THEN
25694 IF NOT(csi_extend_attrib_vld_pvt.Is_StartDate_Valid
25695 (p_ext_attrib_rec.ACTIVE_START_DATE,
25696 p_ext_attrib_rec.ACTIVE_END_DATE ,
25697 p_ext_attrib_rec.INSTANCE_ID )) THEN
25698 RAISE FND_API.G_EXC_ERROR;
25699 END IF;
25700 END IF;
25701
25702
25703 -- Check end effective date
25704 IF p_called_from_grp <> FND_API.G_TRUE THEN
25705 IF p_ext_attrib_rec.ACTIVE_END_DATE is NOT NULL THEN
25706 IF NOT(csi_extend_attrib_vld_pvt.Is_EndDate_Valid
25707 (p_ext_attrib_rec.ACTIVE_START_DATE,
25708 p_ext_attrib_rec.ACTIVE_END_DATE ,
25709 p_ext_attrib_rec.INSTANCE_ID ,
25710 p_ext_attrib_rec.ATTRIBUTE_VALUE_ID,
25711 p_txn_rec.TRANSACTION_ID)) THEN
25712 RAISE FND_API.G_EXC_ERROR;
25713 END IF;
25714 END IF;
25715 END IF;
25716 --
25717 -- Verify that the attribute level satisfies all requirements
25718 IF l_attribute_level = 'CATEGORY'
25719 THEN
25720 IF ((l_item_category_id IS NOT NULL) AND (l_item_category_id <> FND_API.G_MISS_NUM))
25721 THEN
25722 l_valid_flag := 'Y';
25723 l_exists_flag := 'N';
25724 IF p_ext_cat_tbl.count > 0
25725 THEN
25726 FOR ext_cat_count in p_ext_cat_tbl.FIRST .. p_ext_cat_tbl.LAST
25727 LOOP
25728 IF p_ext_cat_tbl(ext_cat_count).item_cat_id = l_item_category_id
25729 THEN
25730 l_valid_flag := p_ext_cat_tbl(ext_cat_count).valid_flag;
25731 l_exists_flag := 'Y';
25732 EXIT;
25733 END IF;
25734 END LOOP;
25735 --
25736 IF l_valid_flag <> 'Y'
25737 THEN
25738 FND_MESSAGE.SET_NAME('CSI','CSI_API_INV_ATT_LEV_CAT');
25739 FND_MESSAGE.SET_TOKEN('ATTRIBUTE_LEVEL_ITEM',l_ori_inventory_item_id);
25740 FND_MESSAGE.SET_TOKEN('ATTRIBUTE_LEVEL_ORG',l_ori_master_org_id);
25741 FND_MESSAGE.SET_TOKEN('ATTRIBUTE_LEVEL_CAT',l_item_category_id);
25742 FND_MSG_PUB.Add;
25743 RAISE fnd_api.g_exc_error;
25744 END IF;
25745 END IF;
25746 --
25747 IF l_exists_flag <> 'Y'
25748 THEN
25749 p_ext_count_rec.ext_cat_count := p_ext_count_rec.ext_cat_count + 1;
25750 p_ext_cat_tbl(p_ext_count_rec.ext_cat_count).item_cat_id := l_item_category_id;
25751 IF NOT(csi_extend_attrib_vld_pvt.Is_Valid_attrib_level_content
25752 ( l_attribute_level
25753 ,l_master_organization_id
25754 ,l_inventory_item_id
25755 ,l_item_category_id
25756 ,l_instance_id
25757 ,p_ext_attrib_rec.instance_id
25758 ,l_ori_inventory_item_id
25759 ,l_ori_master_org_id
25760 )) THEN
25761 --p_ext_attr_tbl(p_ext_count_rec.ext_attr_count).valid_flag := 'N'; -- commented for bug 3114946
25762 p_ext_cat_tbl(p_ext_count_rec.ext_cat_count).valid_flag := 'N'; -- Added for bug 3114946
25763 RAISE fnd_api.g_exc_error;
25764 ELSE
25765 --p_ext_attr_tbl(p_ext_count_rec.ext_attr_count).valid_flag := 'Y'; -- commented for bug 3114946
25766 p_ext_cat_tbl(p_ext_count_rec.ext_cat_count).valid_flag := 'Y'; -- Added for bug 3114946
25767 END IF;
25768 END IF;
25769 END IF;
25770 ELSE -- attribute level <> 'CATEGORY'
25771 IF NOT(csi_extend_attrib_vld_pvt.Is_Valid_attrib_level_content
25772 (l_attribute_level
25773 ,l_master_organization_id
25774 ,l_inventory_item_id
25775 ,l_item_category_id
25776 ,l_instance_id
25777 ,p_ext_attrib_rec.instance_id
25778 ,l_ori_inventory_item_id
25779 ,l_ori_master_org_id
25780 )) THEN
25781 RAISE FND_API.G_EXC_ERROR;
25782 END IF;
25783 END IF;
25784
25785 -- If the attribute_value_id passed is null then generate from sequence
25786 -- and check if the value exists . If exists then generate again from the sequence
25787 -- till we get a value that does not exist
25788 IF l_attribute_value_id IS NULL OR
25789 l_attribute_value_id = FND_API.G_MISS_NUM THEN
25790 l_attribute_value_id := csi_extend_attrib_vld_pvt.get_attribute_value_id;
25791 p_ext_attrib_rec.attribute_value_id := l_attribute_value_id;
25792 WHILE NOT(csi_extend_attrib_vld_pvt.Is_valid_attribute_value_id
25793 (l_attribute_value_id))
25794 LOOP
25795 l_attribute_value_id := csi_extend_attrib_vld_pvt.get_attribute_value_id;
25796 p_ext_attrib_rec.attribute_value_id := l_attribute_value_id;
25797 END LOOP;
25798 ELSE
25799 -- Validate attribute_value_id
25800 IF NOT(csi_extend_attrib_vld_pvt.Is_valid_attribute_value_id
25801 (p_ext_attrib_rec.attribute_value_id)) THEN
25802 RAISE FND_API.G_EXC_ERROR;
25803 END IF;
25804
25805 END IF;
25806
25807 IF p_called_from_grp <> FND_API.G_TRUE THEN
25808 -- Create a record in csi_iea_values
25809 CSI_IEA_VALUES_PKG.Insert_Row
25810 (
25811 l_attribute_value_id
25812 ,p_ext_attrib_rec.attribute_id
25813 ,p_ext_attrib_rec.instance_id
25814 ,p_ext_attrib_rec.attribute_value
25815 ,p_ext_attrib_rec.active_start_date
25816 ,p_ext_attrib_rec.active_end_date
25817 ,p_ext_attrib_rec.context
25818 ,p_ext_attrib_rec.attribute1
25819 ,p_ext_attrib_rec.attribute2
25820 ,p_ext_attrib_rec.attribute3
25821 ,p_ext_attrib_rec.attribute4
25822 ,p_ext_attrib_rec.attribute5
25823 ,p_ext_attrib_rec.attribute6
25824 ,p_ext_attrib_rec.attribute7
25825 ,p_ext_attrib_rec.attribute8
25826 ,p_ext_attrib_rec.attribute9
25827 ,p_ext_attrib_rec.attribute10
25828 ,p_ext_attrib_rec.attribute11
25829 ,p_ext_attrib_rec.attribute12
25830 ,p_ext_attrib_rec.attribute13
25831 ,p_ext_attrib_rec.attribute14
25832 ,p_ext_attrib_rec.attribute15
25833 ,fnd_global.user_id
25834 ,sysdate
25835 ,fnd_global.user_id
25836 ,sysdate
25837 ,fnd_global.user_id
25838 ,1
25839 );
25840
25841
25842 -- IF CSI_Instance_parties_vld_pvt.Is_Instance_creation_complete( p_ext_attrib_rec.INSTANCE_ID ) THEN
25843 -- Call create_transaction to create txn log
25844
25845 CSI_TRANSACTIONS_PVT.Create_transaction
25846 ( p_api_version => p_api_version
25847 ,p_commit => fnd_api.g_false
25848 ,p_init_msg_list => p_init_msg_list
25849 ,p_validation_level => p_validation_level
25850 ,p_Success_If_Exists_Flag => 'Y'
25851 ,P_transaction_rec => p_txn_rec
25852 ,x_return_status => x_return_status
25853 ,x_msg_count => x_msg_count
25854 ,x_msg_data => x_msg_data
25855 );
25856
25857 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
25858 l_msg_index := 1;
25859 l_msg_count := x_msg_count;
25860 WHILE l_msg_count > 0 LOOP
25861 x_msg_data := FND_MSG_PUB.GET
25862 (l_msg_index,
25863 FND_API.G_FALSE );
25864
25865 csi_gen_utility_pvt.put_line('message data = '||x_msg_data);
25866 l_msg_index := l_msg_index + 1;
25867 l_msg_count := l_msg_count - 1;
25868 END LOOP;
25869 RAISE FND_API.G_EXC_ERROR;
25870 END IF;
25871
25872
25873 -- Get a unique org_assignment number from the sequence
25874 l_attribute_value_h_id := csi_extend_attrib_vld_pvt.get_attribute_value_h_id;
25875
25876 l_dump_frequency_flag :='N';
25877 -- Create a history
25878 CSI_IEA_VALUES_H_PKG.Insert_Row(
25879 l_attribute_value_h_id
25880 ,l_attribute_value_id
25881 ,p_txn_rec.transaction_id
25882 ,NULL
25883 ,p_ext_attrib_rec.attribute_value
25884 ,NULL
25885 ,p_ext_attrib_rec.active_start_date
25886 ,NULL
25887 ,p_ext_attrib_rec.active_end_date
25888 ,NULL
25889 ,p_ext_attrib_rec.context
25890 ,NULL
25891 ,p_ext_attrib_rec.ATTRIBUTE1
25892 ,NULL
25893 ,p_ext_attrib_rec.ATTRIBUTE2
25894 ,NULL
25895 ,p_ext_attrib_rec.ATTRIBUTE3
25896 ,NULL
25897 ,p_ext_attrib_rec.ATTRIBUTE4
25898 ,NULL
25899 ,p_ext_attrib_rec.ATTRIBUTE5
25900 ,NULL
25901 ,p_ext_attrib_rec.ATTRIBUTE6
25902 ,NULL
25903 ,p_ext_attrib_rec.ATTRIBUTE7
25904 ,NULL
25905 ,p_ext_attrib_rec.ATTRIBUTE8
25906 ,NULL
25907 ,p_ext_attrib_rec.ATTRIBUTE9
25908 ,NULL
25909 ,p_ext_attrib_rec.ATTRIBUTE10
25910 ,NULL
25911 ,p_ext_attrib_rec.ATTRIBUTE11
25912 ,NULL
25913 ,p_ext_attrib_rec.ATTRIBUTE12
25914 ,NULL
25915 ,p_ext_attrib_rec.ATTRIBUTE13
25916 ,NULL
25917 ,p_ext_attrib_rec.ATTRIBUTE14
25918 ,NULL
25919 ,p_ext_attrib_rec.ATTRIBUTE15
25920 ,l_dump_frequency_flag
25921 ,fnd_global.user_id
25922 ,sysdate
25923 ,fnd_global.user_id
25924 ,sysdate
25925 ,fnd_global.user_id
25926 ,1);
25927
25928
25929 -- END IF;
25930 END IF; -- Called from grp check
25931
25932 END IF; -- Added by sk for bug 2232880
25933 -- End of API body
25934
25935 -- Standard check of p_commit.
25936 IF FND_API.To_Boolean( p_commit ) THEN
25937 COMMIT WORK;
25938 END IF;
25939
25940 -- Standard call to get message count and if count is get message info.
25941 FND_MSG_PUB.Count_And_Get
25942 (p_count => x_msg_count ,
25943 p_data => x_msg_data
25944 );
25945
25946
25947 EXCEPTION
25948
25949 WHEN FND_API.G_EXC_ERROR THEN
25950 ROLLBACK TO create_extended_attrib_values;
25951 x_return_status := FND_API.G_RET_STS_ERROR ;
25952 FND_MSG_PUB.Count_And_Get
25953 ( p_count => x_msg_count,
25954 p_data => x_msg_data
25955 );
25956
25957 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
25958 ROLLBACK TO create_extended_attrib_values;
25959 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
25960 FND_MSG_PUB.Count_And_Get
25961 ( p_count => x_msg_count,
25962 p_data => x_msg_data
25963 );
25964
25965 WHEN OTHERS THEN
25966
25967 ROLLBACK TO create_extended_attrib_values;
25968 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
25969
25970 IF FND_MSG_PUB.Check_Msg_Level
25971 (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
25972 THEN
25973 FND_MSG_PUB.Add_Exc_Msg
25974 ( g_pkg_name,
25975 l_api_name
25976 );
25977 END IF;
25978
25979 FND_MSG_PUB.Count_And_Get
25980 ( p_count => x_msg_count,
25981 p_data => x_msg_data
25982 );
25983
25984 END create_extended_attrib_values;
25985
25986
25987 /*------------------------------------------------------*/
25988 /* procedure name: update_extended_attrib_values */
25989 /* description : Updates the existing extended */
25990 /* attributes for an item instance */
25991 /* */
25992 /*------------------------------------------------------*/
25993
25994 PROCEDURE update_extended_attrib_values
25995 (
25996 p_api_version IN NUMBER
25997 ,p_commit IN VARCHAR2
25998 ,p_init_msg_list IN VARCHAR2
25999 ,p_validation_level IN NUMBER
26000 ,p_ext_attrib_rec IN csi_datastructures_pub.extend_attrib_values_rec
26001 ,p_txn_rec IN OUT NOCOPY csi_datastructures_pub.transaction_rec
26002 ,x_return_status OUT NOCOPY VARCHAR2
26003 ,x_msg_count OUT NOCOPY NUMBER
26004 ,x_msg_data OUT NOCOPY VARCHAR2
26005 )
26006
26007 IS
26008 l_api_name CONSTANT VARCHAR2(30) := 'update_extended_attrib_values';
26009 l_api_version CONSTANT NUMBER := 1.0;
26010 l_debug_level NUMBER;
26011 l_msg_index NUMBER;
26012 l_msg_count NUMBER;
26013 l_ori_inventory_item_id NUMBER;
26014 l_ori_master_org_id NUMBER;
26015 l_attribute_value_id NUMBER:= p_ext_attrib_rec.attribute_value_id;
26016 l_attribute_value_h_id NUMBER;
26017 l_dump_frequency NUMBER;
26018 l_dump_frequency_flag VARCHAR2(30);
26019 l_ext_attrib_rec csi_datastructures_pub.extend_attrib_values_rec;
26020 l_temp_ext_attrib_rec csi_datastructures_pub.extend_attrib_values_rec;
26021 l_ext_att_hist_rec csi_datastructures_pub.ext_attrib_val_history_rec;
26022
26023 CURSOR ieav_hist_csr (p_ieav_hist_id NUMBER) IS
26024 SELECT *
26025 FROM csi_iea_values_h
26026 WHERE csi_iea_values_h.attribute_value_history_id = p_ieav_hist_id
26027 FOR UPDATE OF OBJECT_VERSION_NUMBER ;
26028 l_ieav_hist_id NUMBER;
26029 l_ieav_hist_csr ieav_hist_csr%ROWTYPE;
26030
26031 BEGIN
26032 -- Standard Start of API savepoint
26033 SAVEPOINT update_extended_attrib_values;
26034
26035 -- Standard call to check for call compatibility.
26036 IF NOT FND_API.Compatible_API_Call (l_api_version,
26037 p_api_version,
26038 l_api_name ,
26039 g_pkg_name)
26040 THEN
26041 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
26042 END IF;
26043
26044
26045 -- Initialize message list if p_init_msg_list is set to TRUE.
26046 IF FND_API.to_Boolean( p_init_msg_list ) THEN
26047 FND_MSG_PUB.initialize;
26048 END IF;
26049
26050
26051 -- Initialize API return status to success
26052 x_return_status := FND_API.G_RET_STS_SUCCESS;
26053
26054
26055 -- Check the profile option debug_level for debug message reporting
26056 l_debug_level:=fnd_profile.value('CSI_DEBUG_LEVEL');
26057
26058 -- If debug_level = 1 then dump the procedure name
26059 IF (l_debug_level > 0) THEN
26060 csi_gen_utility_pvt.put_line( 'update_extended_attrib_values');
26061 END IF;
26062
26063
26064 -- If the debug level = 2 then dump all the parameters values.
26065 IF (l_debug_level > 1) THEN
26066 csi_gen_utility_pvt.put_line(
26067 p_api_version ||'-'
26068 || p_commit ||'-'
26069 || p_init_msg_list ||'-'
26070 || p_validation_level );
26071 -- Dump extended attribute rec
26072 csi_gen_utility_pvt.dump_ext_attrib_values_rec(p_ext_attrib_rec);
26073 -- Dump txn_rec
26074 csi_gen_utility_pvt.dump_txn_rec(p_txn_rec);
26075 END IF;
26076
26077
26078 -- Start API body
26079
26080 -- Validate extended_attribute_value_id
26081 IF NOT(csi_extend_attrib_vld_pvt.Val_and_get_ext_att_id
26082 (p_ext_attrib_rec.attribute_value_id,
26083 l_ext_attrib_rec )) THEN
26084 RAISE FND_API.G_EXC_ERROR;
26085 END IF;
26086
26087
26088 -- Validate object_version_number
26089 IF NOT(csi_extend_attrib_vld_pvt.Is_valid_obj_ver_num
26090 (p_ext_attrib_rec.object_version_number
26091 ,l_ext_attrib_rec.object_version_number
26092 )) THEN
26093 RAISE FND_API.G_EXC_ERROR;
26094 END IF;
26095
26096
26097 -- Validate if the instance is updatable
26098 IF NOT(csi_extend_attrib_vld_pvt.Is_Updatable
26099 (l_ext_attrib_rec.active_end_date ,
26100 p_ext_attrib_rec.active_end_date )) THEN
26101 RAISE FND_API.G_EXC_ERROR;
26102 END IF;
26103
26104 -- Validate instance id for which the update is related to
26105 IF NOT(csi_extend_attrib_vld_pvt.Is_Valid_instance_id
26106 (l_ext_attrib_rec.instance_id
26107 ,'UPDATE'
26108 ,l_ori_inventory_item_id
26109 ,l_ori_master_org_id)) THEN
26110 -- Check if it is an expire operation
26111 IF NOT(csi_extend_attrib_vld_pvt.Is_Expire_Op
26112 (p_ext_attrib_rec)) THEN
26113 RAISE FND_API.G_EXC_ERROR;
26114 END IF;
26115 END IF;
26116
26117 -- Validate instance id
26118 IF ( p_ext_attrib_rec.instance_id <> FND_API.G_MISS_NUM ) THEN
26119 IF NOT(csi_extend_attrib_vld_pvt.Val_inst_id_for_update
26120 (p_ext_attrib_rec.instance_id
26121 ,l_ext_attrib_rec.instance_id
26122 )) THEN
26123 RAISE FND_API.G_EXC_ERROR;
26124 END IF;
26125 END IF;
26126
26127
26128 -- Verify start effective date
26129 IF ( p_ext_attrib_rec.active_start_date <> FND_API.G_MISS_DATE) THEN
26130 IF (p_ext_attrib_rec.active_start_date <> l_ext_attrib_rec.active_start_date) THEN
26131 FND_MESSAGE.Set_Name('CSI', 'CSI_API_UPD_NOT_ALLOWED');
26132 FND_MESSAGE.Set_Token('COLUMN', 'EXTENDED ATTRIBUTE START_DATE');
26133 FND_MSG_PUB.ADD;
26134 RAISE FND_API.G_EXC_ERROR;
26135 END IF;
26136 END IF;
26137
26138 -- Verify end effective date
26139 IF ( p_ext_attrib_rec.active_end_date <> FND_API.G_MISS_DATE) THEN
26140 IF p_ext_attrib_rec.active_end_date is NOT NULL THEN
26141 IF g_expire_ext_att_flag <> 'Y' THEN
26142 IF NOT(csi_extend_attrib_vld_pvt.Is_EndDate_Valid
26143 (p_ext_attrib_rec.active_start_date,
26144 p_ext_attrib_rec.active_end_date,
26145 p_ext_attrib_rec.instance_id ,
26146 p_ext_attrib_rec.attribute_value_id ,
26147 p_txn_rec.transaction_id)) THEN
26148 RAISE FND_API.G_EXC_ERROR;
26149 END IF;
26150 END IF;
26151 END IF;
26152 END IF;
26153
26154 -- Verify attribute id
26155 IF ( p_ext_attrib_rec.attribute_id <> FND_API.G_MISS_NUM) THEN
26156 IF (l_ext_attrib_rec.attribute_id <> l_ext_attrib_rec.attribute_id) THEN
26157 FND_MESSAGE.Set_Name('CSI', 'CSI_API_UPD_NOT_ALLOWED');
26158 FND_MESSAGE.Set_Token('COLUMN', 'EXTENDED ATTRIBUTE_ID');
26159 FND_MSG_PUB.ADD;
26160 RAISE FND_API.G_EXC_ERROR;
26161 END IF;
26162 END IF;
26163
26164
26165 -- Get the new object version number
26166 l_ext_attrib_rec.object_version_number :=
26167 csi_extend_attrib_vld_pvt.get_object_version_number(l_ext_attrib_rec.object_version_number);
26168
26169 CSI_IEA_VALUES_PKG.Update_Row
26170 (
26171 l_attribute_value_id
26172 ,p_ext_attrib_rec.attribute_id
26173 ,p_ext_attrib_rec.instance_id
26174 ,p_ext_attrib_rec.attribute_value
26175 ,p_ext_attrib_rec.active_start_date
26176 ,p_ext_attrib_rec.active_end_date
26177 ,p_ext_attrib_rec.context
26178 ,p_ext_attrib_rec.attribute1
26179 ,p_ext_attrib_rec.attribute2
26180 ,p_ext_attrib_rec.attribute3
26181 ,p_ext_attrib_rec.attribute4
26182 ,p_ext_attrib_rec.attribute5
26183 ,p_ext_attrib_rec.attribute6
26184 ,p_ext_attrib_rec.attribute7
26185 ,p_ext_attrib_rec.attribute8
26186 ,p_ext_attrib_rec.attribute9
26187 ,p_ext_attrib_rec.attribute10
26188 ,p_ext_attrib_rec.attribute11
26189 ,p_ext_attrib_rec.attribute12
26190 ,p_ext_attrib_rec.attribute13
26191 ,p_ext_attrib_rec.attribute14
26192 ,p_ext_attrib_rec.attribute15
26193 ,fnd_api.g_miss_num
26194 ,fnd_api.g_miss_date
26195 ,fnd_global.user_id
26196 ,sysdate
26197 ,fnd_global.user_id
26198 ,l_ext_attrib_rec.object_version_number
26199 );
26200
26201
26202
26203 -- IF CSI_Instance_parties_vld_pvt.Is_Instance_creation_complete( p_ext_attrib_rec.INSTANCE_ID ) THEN
26204 -- Call create_transaction to create txn log
26205
26206 CSI_TRANSACTIONS_PVT.Create_transaction
26207 ( p_api_version => p_api_version
26208 ,p_commit => fnd_api.g_false
26209 ,p_init_msg_list => p_init_msg_list
26210 ,p_validation_level => p_validation_level
26211 ,p_Success_If_Exists_Flag => 'Y'
26212 ,p_transaction_rec => p_txn_rec
26213 ,x_return_status => x_return_status
26214 ,x_msg_count => x_msg_count
26215 ,x_msg_data => x_msg_data
26216 );
26217
26218 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
26219 l_msg_index := 1;
26220 l_msg_count := x_msg_count;
26221 WHILE l_msg_count > 0 LOOP
26222 x_msg_data := FND_MSG_PUB.GET
26223 (l_msg_index,
26224 FND_API.G_FALSE );
26225
26226 csi_gen_utility_pvt.put_line('message data = '||x_msg_data);
26227 l_msg_index := l_msg_index + 1;
26228 l_msg_count := l_msg_count - 1;
26229 END LOOP;
26230 RAISE FND_API.G_EXC_ERROR;
26231 END IF;
26232
26233 -- Get a unique org_assignment number from the sequence
26234 l_attribute_value_h_id := csi_extend_attrib_vld_pvt.get_attribute_value_h_id;
26235
26236 -- Get full dump frequency from CSI_INSTALL_PARAMETERS
26237 l_dump_frequency := csi_org_unit_vld_pvt.get_full_dump_frequency;
26238 --
26239 IF l_dump_frequency IS NULL THEN
26240 RAISE FND_API.G_EXC_ERROR;
26241 END IF;
26242
26243 -- Grab the input record in a temporary record
26244 l_temp_ext_attrib_rec := p_ext_attrib_rec;
26245
26246 -- Start of modifications for Bug#2547034 on 09/20/02 - rtalluri
26247 BEGIN
26248 SELECT attribute_value_history_id
26249 INTO l_ieav_hist_id
26250 FROM csi_iea_values_h h
26251 WHERE h.transaction_id = p_txn_rec.transaction_id
26252 AND h.attribute_value_id = p_ext_attrib_rec.attribute_value_id;
26253
26254 OPEN ieav_hist_csr(l_ieav_hist_id);
26255 FETCH ieav_hist_csr INTO l_ieav_hist_csr ;
26256 CLOSE ieav_hist_csr;
26257
26258 IF l_ieav_hist_csr.full_dump_flag = 'Y'
26259 THEN
26260 csi_iea_values_h_pkg.update_row (
26261 p_attribute_value_history_id => l_ieav_hist_id ,
26262 p_attribute_value_id => fnd_api.g_miss_num ,
26263 p_transaction_id => fnd_api.g_miss_num ,
26264 p_old_attribute_value => fnd_api.g_miss_char ,
26265 p_new_attribute_value => l_temp_ext_attrib_rec.attribute_value ,
26266 p_old_active_start_date => fnd_api.g_miss_date ,
26267 p_new_active_start_date => l_temp_ext_attrib_rec.active_start_date,
26268 p_old_active_end_date => fnd_api.g_miss_date ,
26269 p_new_active_end_date => l_temp_ext_attrib_rec.active_end_date ,
26270 p_old_context => fnd_api.g_miss_char ,
26271 p_new_context => l_temp_ext_attrib_rec.context ,
26272 p_old_attribute1 => fnd_api.g_miss_char ,
26273 p_new_attribute1 => l_temp_ext_attrib_rec.attribute1 ,
26274 p_old_attribute2 => fnd_api.g_miss_char ,
26275 p_new_attribute2 => l_temp_ext_attrib_rec.attribute2 ,
26276 p_old_attribute3 => fnd_api.g_miss_char ,
26277 p_new_attribute3 => l_temp_ext_attrib_rec.attribute3 ,
26278 p_old_attribute4 => fnd_api.g_miss_char ,
26279 p_new_attribute4 => l_temp_ext_attrib_rec.attribute4 ,
26280 p_old_attribute5 => fnd_api.g_miss_char ,
26281 p_new_attribute5 => l_temp_ext_attrib_rec.attribute5 ,
26282 p_old_attribute6 => fnd_api.g_miss_char ,
26283 p_new_attribute6 => l_temp_ext_attrib_rec.attribute6 ,
26284 p_old_attribute7 => fnd_api.g_miss_char ,
26285 p_new_attribute7 => l_temp_ext_attrib_rec.attribute7 ,
26286 p_old_attribute8 => fnd_api.g_miss_char ,
26287 p_new_attribute8 => l_temp_ext_attrib_rec.attribute8 ,
26288 p_old_attribute9 => fnd_api.g_miss_char ,
26289 p_new_attribute9 => l_temp_ext_attrib_rec.attribute9 ,
26290 p_old_attribute10 => fnd_api.g_miss_char ,
26291 p_new_attribute10 => l_temp_ext_attrib_rec.attribute10 ,
26292 p_old_attribute11 => fnd_api.g_miss_char ,
26293 p_new_attribute11 => l_temp_ext_attrib_rec.attribute11 ,
26294 p_old_attribute12 => fnd_api.g_miss_char ,
26295 p_new_attribute12 => l_temp_ext_attrib_rec.attribute12 ,
26296 p_old_attribute13 => fnd_api.g_miss_char ,
26297 p_new_attribute13 => l_temp_ext_attrib_rec.attribute13 ,
26298 p_old_attribute14 => fnd_api.g_miss_char ,
26299 p_new_attribute14 => l_temp_ext_attrib_rec.attribute14 ,
26300 p_old_attribute15 => fnd_api.g_miss_char ,
26301 p_new_attribute15 => l_temp_ext_attrib_rec.attribute15 ,
26302 p_full_dump_flag => fnd_api.g_miss_char ,
26303 p_created_by => fnd_api.g_miss_num ,
26304 p_creation_date => fnd_api.g_miss_date ,
26305 p_last_updated_by => fnd_global.user_id ,
26306 p_last_update_date => sysdate ,
26307 p_last_update_login => fnd_global.user_id ,
26308 p_object_version_number => fnd_api.g_miss_num);
26309
26310 ELSE
26311 --
26312 IF ( l_ieav_hist_csr.old_attribute_value IS NULL
26313 AND l_ieav_hist_csr.new_attribute_value IS NULL ) THEN
26314 IF ( l_temp_ext_attrib_rec.attribute_value = l_ext_attrib_rec.attribute_value )
26315 OR ( l_temp_ext_attrib_rec.attribute_value = fnd_api.g_miss_char ) THEN
26316 l_ieav_hist_csr.old_attribute_value := NULL;
26317 l_ieav_hist_csr.new_attribute_value := NULL;
26318 ELSE
26319 l_ieav_hist_csr.old_attribute_value := fnd_api.g_miss_char;
26320 l_ieav_hist_csr.new_attribute_value := l_temp_ext_attrib_rec.attribute_value;
26321 END IF;
26322 ELSE
26323 l_ieav_hist_csr.old_attribute_value := fnd_api.g_miss_char;
26324 l_ieav_hist_csr.new_attribute_value := l_temp_ext_attrib_rec.attribute_value;
26325 END IF;
26326 --
26327 IF ( l_ieav_hist_csr.old_active_start_date IS NULL
26328 AND l_ieav_hist_csr.new_active_start_date IS NULL ) THEN
26329 IF ( l_temp_ext_attrib_rec.active_start_date = l_ext_attrib_rec.active_start_date )
26330 OR ( l_temp_ext_attrib_rec.active_start_date = fnd_api.g_miss_date ) THEN
26331 l_ieav_hist_csr.old_active_start_date := NULL;
26332 l_ieav_hist_csr.new_active_start_date := NULL;
26333 ELSE
26334 l_ieav_hist_csr.old_active_start_date := fnd_api.g_miss_date;
26335 l_ieav_hist_csr.new_active_start_date := l_temp_ext_attrib_rec.active_start_date;
26336 END IF;
26337 ELSE
26338 l_ieav_hist_csr.old_active_start_date := fnd_api.g_miss_date;
26339 l_ieav_hist_csr.new_active_start_date := l_temp_ext_attrib_rec.active_start_date;
26340 END IF;
26341 --
26342 IF ( l_ieav_hist_csr.old_active_end_date IS NULL
26343 AND l_ieav_hist_csr.new_active_end_date IS NULL ) THEN
26344 IF ( l_temp_ext_attrib_rec.active_end_date = l_ext_attrib_rec.active_end_date )
26345 OR ( l_temp_ext_attrib_rec.active_end_date = fnd_api.g_miss_date ) THEN
26346 l_ieav_hist_csr.old_active_end_date := NULL;
26347 l_ieav_hist_csr.new_active_end_date := NULL;
26348 ELSE
26349 l_ieav_hist_csr.old_active_end_date := fnd_api.g_miss_date;
26350 l_ieav_hist_csr.new_active_end_date := l_temp_ext_attrib_rec.active_end_date;
26351 END IF;
26352 ELSE
26353 l_ieav_hist_csr.old_active_end_date := fnd_api.g_miss_date;
26354 l_ieav_hist_csr.new_active_end_date := l_temp_ext_attrib_rec.active_end_date;
26355 END IF;
26356 --
26357 IF ( l_ieav_hist_csr.old_context IS NULL
26358 AND l_ieav_hist_csr.new_context IS NULL ) THEN
26359 IF ( l_temp_ext_attrib_rec.context = l_ext_attrib_rec.context )
26360 OR ( l_temp_ext_attrib_rec.context = fnd_api.g_miss_char ) THEN
26361 l_ieav_hist_csr.old_context := NULL;
26362 l_ieav_hist_csr.new_context := NULL;
26363 ELSE
26364 l_ieav_hist_csr.old_context := fnd_api.g_miss_char;
26365 l_ieav_hist_csr.new_context := l_temp_ext_attrib_rec.context;
26366 END IF;
26367 ELSE
26368 l_ieav_hist_csr.old_context := fnd_api.g_miss_char;
26369 l_ieav_hist_csr.new_context := l_temp_ext_attrib_rec.context;
26370 END IF;
26371 --
26372 IF ( l_ieav_hist_csr.old_attribute1 IS NULL
26373 AND l_ieav_hist_csr.new_attribute1 IS NULL ) THEN
26374 IF ( l_temp_ext_attrib_rec.attribute1 = l_ext_attrib_rec.attribute1 )
26375 OR ( l_temp_ext_attrib_rec.attribute1 = fnd_api.g_miss_char ) THEN
26376 l_ieav_hist_csr.old_attribute1 := NULL;
26377 l_ieav_hist_csr.new_attribute1 := NULL;
26378 ELSE
26379 l_ieav_hist_csr.old_attribute1 := fnd_api.g_miss_char;
26380 l_ieav_hist_csr.new_attribute1 := l_temp_ext_attrib_rec.attribute1;
26381 END IF;
26382 ELSE
26383 l_ieav_hist_csr.old_attribute1 := fnd_api.g_miss_char;
26384 l_ieav_hist_csr.new_attribute1 := l_temp_ext_attrib_rec.attribute1;
26385 END IF;
26386 --
26387 IF ( l_ieav_hist_csr.old_attribute2 IS NULL
26388 AND l_ieav_hist_csr.new_attribute2 IS NULL ) THEN
26389 IF ( l_temp_ext_attrib_rec.attribute2 = l_ext_attrib_rec.attribute2 )
26390 OR ( l_temp_ext_attrib_rec.attribute2 = fnd_api.g_miss_char ) THEN
26391 l_ieav_hist_csr.old_attribute2 := NULL;
26392 l_ieav_hist_csr.new_attribute2 := NULL;
26393 ELSE
26394 l_ieav_hist_csr.old_attribute2 := fnd_api.g_miss_char;
26395 l_ieav_hist_csr.new_attribute2 := l_temp_ext_attrib_rec.attribute2;
26396 END IF;
26397 ELSE
26398 l_ieav_hist_csr.old_attribute2 := fnd_api.g_miss_char;
26399 l_ieav_hist_csr.new_attribute2 := l_temp_ext_attrib_rec.attribute2;
26400 END IF;
26401 --
26402 IF ( l_ieav_hist_csr.old_attribute3 IS NULL
26403 AND l_ieav_hist_csr.new_attribute3 IS NULL ) THEN
26404 IF ( l_temp_ext_attrib_rec.attribute3 = l_ext_attrib_rec.attribute3 )
26405 OR ( l_temp_ext_attrib_rec.attribute3 = fnd_api.g_miss_char ) THEN
26406 l_ieav_hist_csr.old_attribute3 := NULL;
26407 l_ieav_hist_csr.new_attribute3 := NULL;
26408 ELSE
26409 l_ieav_hist_csr.old_attribute3 := fnd_api.g_miss_char;
26410 l_ieav_hist_csr.new_attribute3 := l_temp_ext_attrib_rec.attribute3;
26411 END IF;
26412 ELSE
26413 l_ieav_hist_csr.old_attribute3 := fnd_api.g_miss_char;
26414 l_ieav_hist_csr.new_attribute3 := l_temp_ext_attrib_rec.attribute3;
26415 END IF;
26416 --
26417 IF ( l_ieav_hist_csr.old_attribute4 IS NULL
26418 AND l_ieav_hist_csr.new_attribute4 IS NULL ) THEN
26419 IF ( l_temp_ext_attrib_rec.attribute4 = l_ext_attrib_rec.attribute4 )
26420 OR ( l_temp_ext_attrib_rec.attribute4 = fnd_api.g_miss_char ) THEN
26421 l_ieav_hist_csr.old_attribute4 := NULL;
26422 l_ieav_hist_csr.new_attribute4 := NULL;
26423 ELSE
26424 l_ieav_hist_csr.old_attribute4 := fnd_api.g_miss_char;
26425 l_ieav_hist_csr.new_attribute4 := l_temp_ext_attrib_rec.attribute4;
26426 END IF;
26427 ELSE
26428 l_ieav_hist_csr.old_attribute4 := fnd_api.g_miss_char;
26429 l_ieav_hist_csr.new_attribute4 := l_temp_ext_attrib_rec.attribute4;
26430 END IF;
26431 --
26432 IF ( l_ieav_hist_csr.old_attribute5 IS NULL
26433 AND l_ieav_hist_csr.new_attribute5 IS NULL ) THEN
26434 IF ( l_temp_ext_attrib_rec.attribute5 = l_ext_attrib_rec.attribute5 )
26435 OR ( l_temp_ext_attrib_rec.attribute5 = fnd_api.g_miss_char ) THEN
26436 l_ieav_hist_csr.old_attribute5 := NULL;
26437 l_ieav_hist_csr.new_attribute5 := NULL;
26438 ELSE
26439 l_ieav_hist_csr.old_attribute5 := fnd_api.g_miss_char;
26440 l_ieav_hist_csr.new_attribute5 := l_temp_ext_attrib_rec.attribute5;
26441 END IF;
26442 ELSE
26443 l_ieav_hist_csr.old_attribute5 := fnd_api.g_miss_char;
26444 l_ieav_hist_csr.new_attribute5 := l_temp_ext_attrib_rec.attribute5;
26445 END IF;
26446 --
26447 IF ( l_ieav_hist_csr.old_attribute6 IS NULL
26448 AND l_ieav_hist_csr.new_attribute6 IS NULL ) THEN
26449 IF ( l_temp_ext_attrib_rec.attribute6 = l_ext_attrib_rec.attribute6 )
26450 OR ( l_temp_ext_attrib_rec.attribute6 = fnd_api.g_miss_char ) THEN
26451 l_ieav_hist_csr.old_attribute6 := NULL;
26452 l_ieav_hist_csr.new_attribute6 := NULL;
26453 ELSE
26454 l_ieav_hist_csr.old_attribute6 := fnd_api.g_miss_char;
26455 l_ieav_hist_csr.new_attribute6 := l_temp_ext_attrib_rec.attribute6;
26456 END IF;
26457 ELSE
26458 l_ieav_hist_csr.old_attribute6 := fnd_api.g_miss_char;
26459 l_ieav_hist_csr.new_attribute6 := l_temp_ext_attrib_rec.attribute6;
26460 END IF;
26461 --
26462 IF ( l_ieav_hist_csr.old_attribute7 IS NULL
26463 AND l_ieav_hist_csr.new_attribute7 IS NULL ) THEN
26464 IF ( l_temp_ext_attrib_rec.attribute7 = l_ext_attrib_rec.attribute7 )
26465 OR ( l_temp_ext_attrib_rec.attribute7 = fnd_api.g_miss_char ) THEN
26466 l_ieav_hist_csr.old_attribute7 := NULL;
26467 l_ieav_hist_csr.new_attribute7 := NULL;
26468 ELSE
26469 l_ieav_hist_csr.old_attribute7 := fnd_api.g_miss_char;
26470 l_ieav_hist_csr.new_attribute7 := l_temp_ext_attrib_rec.attribute7;
26471 END IF;
26472 ELSE
26473 l_ieav_hist_csr.old_attribute7 := fnd_api.g_miss_char;
26474 l_ieav_hist_csr.new_attribute7 := l_temp_ext_attrib_rec.attribute7;
26475 END IF;
26476 --
26477 IF ( l_ieav_hist_csr.old_attribute8 IS NULL
26478 AND l_ieav_hist_csr.new_attribute8 IS NULL ) THEN
26479 IF ( l_temp_ext_attrib_rec.attribute8 = l_ext_attrib_rec.attribute8 )
26480 OR ( l_temp_ext_attrib_rec.attribute8 = fnd_api.g_miss_char ) THEN
26481 l_ieav_hist_csr.old_attribute8 := NULL;
26482 l_ieav_hist_csr.new_attribute8 := NULL;
26483 ELSE
26484 l_ieav_hist_csr.old_attribute8 := fnd_api.g_miss_char;
26485 l_ieav_hist_csr.new_attribute8 := l_temp_ext_attrib_rec.attribute8;
26486 END IF;
26487 ELSE
26488 l_ieav_hist_csr.old_attribute8 := fnd_api.g_miss_char;
26489 l_ieav_hist_csr.new_attribute8 := l_temp_ext_attrib_rec.attribute8;
26490 END IF;
26491 --
26492 IF ( l_ieav_hist_csr.old_attribute9 IS NULL
26493 AND l_ieav_hist_csr.new_attribute9 IS NULL ) THEN
26494 IF ( l_temp_ext_attrib_rec.attribute9 = l_ext_attrib_rec.attribute9 )
26495 OR ( l_temp_ext_attrib_rec.attribute9 = fnd_api.g_miss_char ) THEN
26496 l_ieav_hist_csr.old_attribute9 := NULL;
26497 l_ieav_hist_csr.new_attribute9 := NULL;
26498 ELSE
26499 l_ieav_hist_csr.old_attribute9 := fnd_api.g_miss_char;
26500 l_ieav_hist_csr.new_attribute9 := l_temp_ext_attrib_rec.attribute9;
26501 END IF;
26502 ELSE
26503 l_ieav_hist_csr.old_attribute9 := fnd_api.g_miss_char;
26504 l_ieav_hist_csr.new_attribute9 := l_temp_ext_attrib_rec.attribute9;
26505 END IF;
26506 --
26507 IF ( l_ieav_hist_csr.old_attribute10 IS NULL
26508 AND l_ieav_hist_csr.new_attribute10 IS NULL ) THEN
26509 IF ( l_temp_ext_attrib_rec.attribute10 = l_ext_attrib_rec.attribute10 )
26510 OR ( l_temp_ext_attrib_rec.attribute10 = fnd_api.g_miss_char ) THEN
26511 l_ieav_hist_csr.old_attribute10 := NULL;
26512 l_ieav_hist_csr.new_attribute10 := NULL;
26513 ELSE
26514 l_ieav_hist_csr.old_attribute10 := fnd_api.g_miss_char;
26515 l_ieav_hist_csr.new_attribute10 := l_temp_ext_attrib_rec.attribute10;
26516 END IF;
26517 ELSE
26518 l_ieav_hist_csr.old_attribute10 := fnd_api.g_miss_char;
26519 l_ieav_hist_csr.new_attribute10 := l_temp_ext_attrib_rec.attribute10;
26520 END IF;
26521 --
26522 IF ( l_ieav_hist_csr.old_attribute11 IS NULL
26523 AND l_ieav_hist_csr.new_attribute11 IS NULL ) THEN
26524 IF ( l_temp_ext_attrib_rec.attribute11 = l_ext_attrib_rec.attribute11 )
26525 OR ( l_temp_ext_attrib_rec.attribute11 = fnd_api.g_miss_char ) THEN
26526 l_ieav_hist_csr.old_attribute11 := NULL;
26527 l_ieav_hist_csr.new_attribute11 := NULL;
26528 ELSE
26529 l_ieav_hist_csr.old_attribute11 := fnd_api.g_miss_char;
26530 l_ieav_hist_csr.new_attribute11 := l_temp_ext_attrib_rec.attribute11;
26531 END IF;
26532 ELSE
26533 l_ieav_hist_csr.old_attribute11 := fnd_api.g_miss_char;
26534 l_ieav_hist_csr.new_attribute11 := l_temp_ext_attrib_rec.attribute11;
26535 END IF;
26536 --
26537 IF ( l_ieav_hist_csr.old_attribute12 IS NULL
26538 AND l_ieav_hist_csr.new_attribute12 IS NULL ) THEN
26539 IF ( l_temp_ext_attrib_rec.attribute12 = l_ext_attrib_rec.attribute12 )
26540 OR ( l_temp_ext_attrib_rec.attribute12 = fnd_api.g_miss_char ) THEN
26541 l_ieav_hist_csr.old_attribute12 := NULL;
26542 l_ieav_hist_csr.new_attribute12 := NULL;
26543 ELSE
26544 l_ieav_hist_csr.old_attribute12 := fnd_api.g_miss_char;
26545 l_ieav_hist_csr.new_attribute12 := l_temp_ext_attrib_rec.attribute12;
26546 END IF;
26547 ELSE
26548 l_ieav_hist_csr.old_attribute12 := fnd_api.g_miss_char;
26549 l_ieav_hist_csr.new_attribute12 := l_temp_ext_attrib_rec.attribute12;
26550 END IF;
26551 --
26552 IF ( l_ieav_hist_csr.old_attribute13 IS NULL
26553 AND l_ieav_hist_csr.new_attribute13 IS NULL ) THEN
26554 IF ( l_temp_ext_attrib_rec.attribute13 = l_ext_attrib_rec.attribute13 )
26555 OR ( l_temp_ext_attrib_rec.attribute13 = fnd_api.g_miss_char ) THEN
26556 l_ieav_hist_csr.old_attribute13 := NULL;
26557 l_ieav_hist_csr.new_attribute13 := NULL;
26558 ELSE
26559 l_ieav_hist_csr.old_attribute13 := fnd_api.g_miss_char;
26560 l_ieav_hist_csr.new_attribute13 := l_temp_ext_attrib_rec.attribute13;
26561 END IF;
26562 ELSE
26563 l_ieav_hist_csr.old_attribute13 := fnd_api.g_miss_char;
26564 l_ieav_hist_csr.new_attribute13 := l_temp_ext_attrib_rec.attribute13;
26565 END IF;
26566 --
26567 IF ( l_ieav_hist_csr.old_attribute14 IS NULL
26568 AND l_ieav_hist_csr.new_attribute14 IS NULL ) THEN
26569 IF ( l_temp_ext_attrib_rec.attribute14 = l_ext_attrib_rec.attribute14 )
26570 OR ( l_temp_ext_attrib_rec.attribute14 = fnd_api.g_miss_char ) THEN
26571 l_ieav_hist_csr.old_attribute14 := NULL;
26572 l_ieav_hist_csr.new_attribute14 := NULL;
26573 ELSE
26574 l_ieav_hist_csr.old_attribute14 := fnd_api.g_miss_char;
26575 l_ieav_hist_csr.new_attribute14 := l_temp_ext_attrib_rec.attribute14;
26576 END IF;
26577 ELSE
26578 l_ieav_hist_csr.old_attribute14 := fnd_api.g_miss_char;
26579 l_ieav_hist_csr.new_attribute14 := l_temp_ext_attrib_rec.attribute14;
26580 END IF;
26581 --
26582 IF ( l_ieav_hist_csr.old_attribute15 IS NULL
26583 AND l_ieav_hist_csr.new_attribute15 IS NULL ) THEN
26584 IF ( l_temp_ext_attrib_rec.attribute15 = l_ext_attrib_rec.attribute15 )
26585 OR ( l_temp_ext_attrib_rec.attribute15 = fnd_api.g_miss_char ) THEN
26586 l_ieav_hist_csr.old_attribute15 := NULL;
26587 l_ieav_hist_csr.new_attribute15 := NULL;
26588 ELSE
26589 l_ieav_hist_csr.old_attribute15 := fnd_api.g_miss_char;
26590 l_ieav_hist_csr.new_attribute15 := l_temp_ext_attrib_rec.attribute15;
26591 END IF;
26592 ELSE
26593 l_ieav_hist_csr.old_attribute15 := fnd_api.g_miss_char;
26594 l_ieav_hist_csr.new_attribute15 := l_temp_ext_attrib_rec.attribute15;
26595 END IF;
26596 --
26597
26598 csi_iea_values_h_pkg.update_row (
26599 p_attribute_value_history_id => l_ieav_hist_id ,
26600 p_attribute_value_id => fnd_api.g_miss_num ,
26601 p_transaction_id => fnd_api.g_miss_num ,
26602 p_old_attribute_value => l_ieav_hist_csr.old_attribute_value ,
26603 p_new_attribute_value => l_temp_ext_attrib_rec.attribute_value ,
26604 p_old_active_start_date => l_ieav_hist_csr.old_active_start_date ,
26605 p_new_active_start_date => l_temp_ext_attrib_rec.active_start_date,
26606 p_old_active_end_date => l_ieav_hist_csr.old_active_end_date ,
26607 p_new_active_end_date => l_temp_ext_attrib_rec.active_end_date ,
26608 p_old_context => l_ieav_hist_csr.old_context ,
26609 p_new_context => l_temp_ext_attrib_rec.context ,
26610 p_old_attribute1 => l_ieav_hist_csr.old_attribute1 ,
26611 p_new_attribute1 => l_temp_ext_attrib_rec.attribute1 ,
26612 p_old_attribute2 => l_ieav_hist_csr.old_attribute2 ,
26613 p_new_attribute2 => l_temp_ext_attrib_rec.attribute2 ,
26614 p_old_attribute3 => l_ieav_hist_csr.old_attribute3 ,
26615 p_new_attribute3 => l_temp_ext_attrib_rec.attribute3 ,
26616 p_old_attribute4 => l_ieav_hist_csr.old_attribute4 ,
26617 p_new_attribute4 => l_temp_ext_attrib_rec.attribute4 ,
26618 p_old_attribute5 => l_ieav_hist_csr.old_attribute5 ,
26619 p_new_attribute5 => l_temp_ext_attrib_rec.attribute5 ,
26620 p_old_attribute6 => l_ieav_hist_csr.old_attribute6 ,
26621 p_new_attribute6 => l_temp_ext_attrib_rec.attribute6 ,
26622 p_old_attribute7 => l_ieav_hist_csr.old_attribute7 ,
26623 p_new_attribute7 => l_temp_ext_attrib_rec.attribute7 ,
26624 p_old_attribute8 => l_ieav_hist_csr.old_attribute8 ,
26625 p_new_attribute8 => l_temp_ext_attrib_rec.attribute8 ,
26626 p_old_attribute9 => l_ieav_hist_csr.old_attribute9 ,
26627 p_new_attribute9 => l_temp_ext_attrib_rec.attribute9 ,
26628 p_old_attribute10 => l_ieav_hist_csr.old_attribute10 ,
26629 p_new_attribute10 => l_temp_ext_attrib_rec.attribute10 ,
26630 p_old_attribute11 => l_ieav_hist_csr.old_attribute11 ,
26631 p_new_attribute11 => l_temp_ext_attrib_rec.attribute11 ,
26632 p_old_attribute12 => l_ieav_hist_csr.old_attribute12 ,
26633 p_new_attribute12 => l_temp_ext_attrib_rec.attribute12 ,
26634 p_old_attribute13 => l_ieav_hist_csr.old_attribute13 ,
26635 p_new_attribute13 => l_temp_ext_attrib_rec.attribute13 ,
26636 p_old_attribute14 => l_ieav_hist_csr.old_attribute14 ,
26637 p_new_attribute14 => l_temp_ext_attrib_rec.attribute14 ,
26638 p_old_attribute15 => l_ieav_hist_csr.old_attribute15 ,
26639 p_new_attribute15 => l_temp_ext_attrib_rec.attribute15 ,
26640 p_full_dump_flag => fnd_api.g_miss_char ,
26641 p_created_by => fnd_api.g_miss_num ,
26642 p_creation_date => fnd_api.g_miss_date ,
26643 p_last_updated_by => fnd_global.user_id ,
26644 p_last_update_date => SYSDATE ,
26645 p_last_update_login => fnd_global.user_id ,
26646 p_object_version_number => fnd_api.g_miss_num);
26647 END IF;
26648 EXCEPTION
26649 WHEN NO_DATA_FOUND THEN
26650
26651 IF (mod(l_ext_attrib_rec.object_version_number, l_dump_frequency) = 0) THEN
26652
26653 -- If the mod value is 0 then dump all the columns both changed and unchanged
26654 -- changed columns have old and new values while the unchanged values have old and new values
26655 -- exactly same
26656
26657 l_dump_frequency_flag := 'Y';
26658 -- Grab the input record in a temporary record
26659 l_temp_ext_attrib_rec := p_ext_attrib_rec;
26660
26661 IF (p_ext_attrib_rec.ATTRIBUTE_VALUE = FND_API.G_MISS_CHAR) THEN
26662 l_temp_ext_attrib_rec.ATTRIBUTE_VALUE := l_ext_attrib_rec.ATTRIBUTE_VALUE;
26663 END IF;
26664
26665 IF (p_ext_attrib_rec.ACTIVE_START_DATE = FND_API.G_MISS_DATE) THEN
26666 l_temp_ext_attrib_rec.ACTIVE_START_DATE := l_ext_attrib_rec.ACTIVE_START_DATE;
26667 END IF;
26668
26669 IF (p_ext_attrib_rec.ACTIVE_END_DATE = FND_API.G_MISS_DATE) THEN
26670 l_temp_ext_attrib_rec.ACTIVE_END_DATE := l_ext_attrib_rec.ACTIVE_END_DATE;
26671 END IF;
26672
26673 IF (p_ext_attrib_rec.CONTEXT = FND_API.G_MISS_CHAR) THEN
26674 l_temp_ext_attrib_rec.CONTEXT := l_ext_attrib_rec.CONTEXT;
26675 END IF;
26676
26677 IF (p_ext_attrib_rec.ATTRIBUTE1 = FND_API.G_MISS_CHAR) THEN
26678 l_temp_ext_attrib_rec.ATTRIBUTE1 := l_ext_attrib_rec.ATTRIBUTE1;
26679 END IF;
26680 IF (p_ext_attrib_rec.ATTRIBUTE2 = FND_API.G_MISS_CHAR) THEN
26681 l_temp_ext_attrib_rec.ATTRIBUTE2 := l_ext_attrib_rec.ATTRIBUTE2;
26682 END IF;
26683 IF (p_ext_attrib_rec.ATTRIBUTE3 = FND_API.G_MISS_CHAR) THEN
26684 l_temp_ext_attrib_rec.ATTRIBUTE3 := l_ext_attrib_rec.ATTRIBUTE3;
26685 END IF;
26686 IF (p_ext_attrib_rec.ATTRIBUTE4 = FND_API.G_MISS_CHAR) THEN
26687 l_temp_ext_attrib_rec.ATTRIBUTE4 := l_ext_attrib_rec.ATTRIBUTE4;
26688 END IF;
26689 IF (p_ext_attrib_rec.ATTRIBUTE5 = FND_API.G_MISS_CHAR) THEN
26690 l_temp_ext_attrib_rec.ATTRIBUTE5 := l_ext_attrib_rec.ATTRIBUTE5;
26691 END IF;
26692 IF (p_ext_attrib_rec.ATTRIBUTE6 = FND_API.G_MISS_CHAR) THEN
26693 l_temp_ext_attrib_rec.ATTRIBUTE6 := l_ext_attrib_rec.ATTRIBUTE6;
26694 END IF;
26695 IF (p_ext_attrib_rec.ATTRIBUTE7 = FND_API.G_MISS_CHAR) THEN
26696 l_temp_ext_attrib_rec.ATTRIBUTE7 := l_ext_attrib_rec.ATTRIBUTE7;
26697 END IF;
26698 IF (p_ext_attrib_rec.ATTRIBUTE8 = FND_API.G_MISS_CHAR) THEN
26699 l_temp_ext_attrib_rec.ATTRIBUTE8 := l_ext_attrib_rec.ATTRIBUTE8;
26700 END IF;
26701 IF (p_ext_attrib_rec.ATTRIBUTE9 = FND_API.G_MISS_CHAR) THEN
26702 l_temp_ext_attrib_rec.ATTRIBUTE9 := l_ext_attrib_rec.ATTRIBUTE9;
26703 END IF;
26704 IF (p_ext_attrib_rec.ATTRIBUTE10 = FND_API.G_MISS_CHAR) THEN
26705 l_temp_ext_attrib_rec.ATTRIBUTE10 := l_ext_attrib_rec.ATTRIBUTE10;
26706 END IF;
26707 IF (p_ext_attrib_rec.ATTRIBUTE11 = FND_API.G_MISS_CHAR) THEN
26708 l_temp_ext_attrib_rec.ATTRIBUTE11 := l_ext_attrib_rec.ATTRIBUTE11;
26709 END IF;
26710 IF (p_ext_attrib_rec.ATTRIBUTE12 = FND_API.G_MISS_CHAR) THEN
26711 l_temp_ext_attrib_rec.ATTRIBUTE12 := l_ext_attrib_rec.ATTRIBUTE12;
26712 END IF;
26713 IF (p_ext_attrib_rec.ATTRIBUTE13 = FND_API.G_MISS_CHAR) THEN
26714 l_temp_ext_attrib_rec.ATTRIBUTE13 := l_ext_attrib_rec.ATTRIBUTE13;
26715 END IF;
26716 IF (p_ext_attrib_rec.ATTRIBUTE14 = FND_API.G_MISS_CHAR) THEN
26717 l_temp_ext_attrib_rec.ATTRIBUTE14 := l_ext_attrib_rec.ATTRIBUTE14;
26718 END IF;
26719 IF (p_ext_attrib_rec.ATTRIBUTE15 = FND_API.G_MISS_CHAR) THEN
26720 l_temp_ext_attrib_rec.ATTRIBUTE15 := l_ext_attrib_rec.ATTRIBUTE15;
26721 END IF;
26722
26723 -- Create a history
26724 CSI_IEA_VALUES_H_PKG.Insert_Row(
26725 l_attribute_value_h_id
26726 ,l_attribute_value_id
26727 ,p_txn_rec.transaction_id
26728 ,l_ext_attrib_rec.attribute_value
26729 ,l_temp_ext_attrib_rec.attribute_value
26730 ,l_ext_attrib_rec.active_start_date
26731 ,l_temp_ext_attrib_rec.active_start_date
26732 ,l_ext_attrib_rec.active_end_date
26733 ,l_temp_ext_attrib_rec.active_end_date
26734 ,l_ext_attrib_rec.context
26735 ,l_temp_ext_attrib_rec.context
26736 ,l_ext_attrib_rec.ATTRIBUTE1
26737 ,l_temp_ext_attrib_rec.ATTRIBUTE1
26738 ,l_ext_attrib_rec.ATTRIBUTE2
26739 ,l_temp_ext_attrib_rec.ATTRIBUTE2
26740 ,l_ext_attrib_rec.ATTRIBUTE3
26741 ,l_temp_ext_attrib_rec.ATTRIBUTE3
26742 ,l_ext_attrib_rec.ATTRIBUTE4
26743 ,l_temp_ext_attrib_rec.ATTRIBUTE4
26744 ,l_ext_attrib_rec.ATTRIBUTE5
26745 ,l_temp_ext_attrib_rec.ATTRIBUTE5
26746 ,l_ext_attrib_rec.ATTRIBUTE6
26747 ,l_temp_ext_attrib_rec.ATTRIBUTE6
26748 ,l_ext_attrib_rec.ATTRIBUTE7
26749 ,l_temp_ext_attrib_rec.ATTRIBUTE7
26750 ,l_ext_attrib_rec.ATTRIBUTE8
26751 ,l_temp_ext_attrib_rec.ATTRIBUTE8
26752 ,l_ext_attrib_rec.ATTRIBUTE9
26753 ,l_temp_ext_attrib_rec.ATTRIBUTE9
26754 ,l_ext_attrib_rec.ATTRIBUTE10
26755 ,l_temp_ext_attrib_rec.ATTRIBUTE10
26756 ,l_ext_attrib_rec.ATTRIBUTE11
26757 ,l_temp_ext_attrib_rec.ATTRIBUTE11
26758 ,l_ext_attrib_rec.ATTRIBUTE12
26759 ,l_temp_ext_attrib_rec.ATTRIBUTE12
26760 ,l_ext_attrib_rec.ATTRIBUTE13
26761 ,l_temp_ext_attrib_rec.ATTRIBUTE13
26762 ,l_ext_attrib_rec.ATTRIBUTE14
26763 ,l_temp_ext_attrib_rec.ATTRIBUTE14
26764 ,l_ext_attrib_rec.ATTRIBUTE15
26765 ,l_temp_ext_attrib_rec.ATTRIBUTE15
26766 ,l_dump_frequency_flag
26767 ,fnd_global.user_id
26768 ,sysdate
26769 ,fnd_global.user_id
26770 ,sysdate
26771 ,fnd_global.user_id
26772 ,1);
26773
26774 ELSE
26775 l_dump_frequency_flag := 'N';
26776 -- Grab the input record in a temporary record
26777 l_temp_ext_attrib_rec := l_ext_attrib_rec;
26778
26779 -- If the mod value is not equal to zero then dump only the changed columns
26780 -- while the unchanged values have old and new values as null
26781 IF (p_ext_attrib_rec.attribute_value = fnd_api.g_miss_char) OR
26782 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
26783 l_ext_att_hist_rec.old_attribute_value := NULL;
26784 l_ext_att_hist_rec.new_attribute_value := NULL;
26785 ELSIF
26786 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
26787 l_ext_att_hist_rec.old_attribute_value := l_temp_ext_attrib_rec.attribute_value ;
26788 l_ext_att_hist_rec.new_attribute_value := p_ext_attrib_rec.attribute_value ;
26789 END IF;
26790 --
26791 IF (p_ext_attrib_rec.active_start_date = fnd_api.g_miss_date) OR
26792 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
26793 l_ext_att_hist_rec.old_active_start_date := NULL;
26794 l_ext_att_hist_rec.new_active_start_date := NULL;
26795 ELSIF
26796 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
26797 l_ext_att_hist_rec.old_active_start_date := l_temp_ext_attrib_rec.active_start_date ;
26798 l_ext_att_hist_rec.new_active_start_date := p_ext_attrib_rec.active_start_date ;
26799 END IF;
26800 --
26801 IF (p_ext_attrib_rec.active_end_date = fnd_api.g_miss_date) OR
26802 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
26803 l_ext_att_hist_rec.old_active_end_date := NULL;
26804 l_ext_att_hist_rec.new_active_end_date := NULL;
26805 ELSIF
26806 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
26807 l_ext_att_hist_rec.old_active_end_date := l_temp_ext_attrib_rec.active_end_date ;
26808 l_ext_att_hist_rec.new_active_end_date := p_ext_attrib_rec.active_end_date ;
26809 END IF;
26810 --
26811 IF (p_ext_attrib_rec.context = fnd_api.g_miss_char) OR
26812 NVL(p_ext_attrib_rec.context, fnd_api.g_miss_char) = NVL(l_temp_ext_attrib_rec.context, fnd_api.g_miss_char) THEN
26813 l_ext_att_hist_rec.old_context := NULL;
26814 l_ext_att_hist_rec.new_context := NULL;
26815 ELSIF
26816 NVL(l_temp_ext_attrib_rec.context,fnd_api.g_miss_char) <> NVL(p_ext_attrib_rec.context,fnd_api.g_miss_char) THEN
26817 l_ext_att_hist_rec.old_context := l_temp_ext_attrib_rec.context ;
26818 l_ext_att_hist_rec.new_context := p_ext_attrib_rec.context ;
26819 END IF;
26820 --
26821 IF (p_ext_attrib_rec.attribute1 = fnd_api.g_miss_char) OR
26822 NVL(p_ext_attrib_rec.attribute1, fnd_api.g_miss_char) = NVL(l_temp_ext_attrib_rec.attribute1, fnd_api.g_miss_char) THEN
26823 l_ext_att_hist_rec.old_attribute1 := NULL;
26824 l_ext_att_hist_rec.new_attribute1 := NULL;
26825 ELSIF
26826 NVL(l_temp_ext_attrib_rec.attribute1,fnd_api.g_miss_char) <> NVL(p_ext_attrib_rec.attribute1,fnd_api.g_miss_char) THEN
26827 l_ext_att_hist_rec.old_attribute1 := l_temp_ext_attrib_rec.attribute1 ;
26828 l_ext_att_hist_rec.new_attribute1 := p_ext_attrib_rec.attribute1 ;
26829 END IF;
26830 --
26831 IF (p_ext_attrib_rec.attribute2 = fnd_api.g_miss_char) OR
26832 NVL(p_ext_attrib_rec.attribute2, fnd_api.g_miss_char) = NVL(l_temp_ext_attrib_rec.attribute2, fnd_api.g_miss_char) THEN
26833 l_ext_att_hist_rec.old_attribute2 := NULL;
26834 l_ext_att_hist_rec.new_attribute2 := NULL;
26835 ELSIF
26836 NVL(l_temp_ext_attrib_rec.attribute2,fnd_api.g_miss_char) <> NVL(p_ext_attrib_rec.attribute2,fnd_api.g_miss_char) THEN
26837 l_ext_att_hist_rec.old_attribute2 := l_temp_ext_attrib_rec.attribute2 ;
26838 l_ext_att_hist_rec.new_attribute2 := p_ext_attrib_rec.attribute2 ;
26839 END IF;
26840 --
26841 IF (p_ext_attrib_rec.attribute3 = fnd_api.g_miss_char) OR
26842 NVL(p_ext_attrib_rec.attribute3, fnd_api.g_miss_char) = NVL(l_temp_ext_attrib_rec.attribute3, fnd_api.g_miss_char) THEN
26843 l_ext_att_hist_rec.old_attribute3 := NULL;
26844 l_ext_att_hist_rec.new_attribute3 := NULL;
26845 ELSIF
26846 NVL(l_temp_ext_attrib_rec.attribute3,fnd_api.g_miss_char) <> NVL(p_ext_attrib_rec.attribute3,fnd_api.g_miss_char) THEN
26847 l_ext_att_hist_rec.old_attribute3 := l_temp_ext_attrib_rec.attribute3 ;
26848 l_ext_att_hist_rec.new_attribute3 := p_ext_attrib_rec.attribute3 ;
26849 END IF;
26850 --
26851 IF (p_ext_attrib_rec.attribute4 = fnd_api.g_miss_char) OR
26852 NVL(p_ext_attrib_rec.attribute4, fnd_api.g_miss_char) = NVL(l_temp_ext_attrib_rec.attribute4, fnd_api.g_miss_char) THEN
26853 l_ext_att_hist_rec.old_attribute4 := NULL;
26854 l_ext_att_hist_rec.new_attribute4 := NULL;
26855 ELSIF
26856 NVL(l_temp_ext_attrib_rec.attribute4,fnd_api.g_miss_char) <> NVL(p_ext_attrib_rec.attribute4,fnd_api.g_miss_char) THEN
26857 l_ext_att_hist_rec.old_attribute4 := l_temp_ext_attrib_rec.attribute4 ;
26858 l_ext_att_hist_rec.new_attribute4 := p_ext_attrib_rec.attribute4 ;
26859 END IF;
26860 --
26861 IF (p_ext_attrib_rec.attribute5 = fnd_api.g_miss_char) OR
26862 NVL(p_ext_attrib_rec.attribute5, fnd_api.g_miss_char) = NVL(l_temp_ext_attrib_rec.attribute5, fnd_api.g_miss_char) THEN
26863 l_ext_att_hist_rec.old_attribute5 := NULL;
26864 l_ext_att_hist_rec.new_attribute5 := NULL;
26865 ELSIF
26866 NVL(l_temp_ext_attrib_rec.attribute5,fnd_api.g_miss_char) <> NVL(p_ext_attrib_rec.attribute5,fnd_api.g_miss_char) THEN
26867 l_ext_att_hist_rec.old_attribute5 := l_temp_ext_attrib_rec.attribute5 ;
26868 l_ext_att_hist_rec.new_attribute5 := p_ext_attrib_rec.attribute5 ;
26869 END IF;
26870 --
26871 IF (p_ext_attrib_rec.attribute6 = fnd_api.g_miss_char) OR
26872 NVL(p_ext_attrib_rec.attribute6, fnd_api.g_miss_char) = NVL(l_temp_ext_attrib_rec.attribute6, fnd_api.g_miss_char) THEN
26873 l_ext_att_hist_rec.old_attribute6 := NULL;
26874 l_ext_att_hist_rec.new_attribute6 := NULL;
26875 ELSIF
26876 NVL(l_temp_ext_attrib_rec.attribute6,fnd_api.g_miss_char) <> NVL(p_ext_attrib_rec.attribute6,fnd_api.g_miss_char) THEN
26877 l_ext_att_hist_rec.old_attribute6 := l_temp_ext_attrib_rec.attribute6 ;
26878 l_ext_att_hist_rec.new_attribute6 := p_ext_attrib_rec.attribute6 ;
26879 END IF;
26880 --
26881 IF (p_ext_attrib_rec.attribute7 = fnd_api.g_miss_char) OR
26882 NVL(p_ext_attrib_rec.attribute7, fnd_api.g_miss_char) = NVL(l_temp_ext_attrib_rec.attribute7, fnd_api.g_miss_char) THEN
26883 l_ext_att_hist_rec.old_attribute7 := NULL;
26884 l_ext_att_hist_rec.new_attribute7 := NULL;
26885 ELSIF
26886 NVL(l_temp_ext_attrib_rec.attribute7,fnd_api.g_miss_char) <> NVL(p_ext_attrib_rec.attribute7,fnd_api.g_miss_char) THEN
26887 l_ext_att_hist_rec.old_attribute7 := l_temp_ext_attrib_rec.attribute7 ;
26888 l_ext_att_hist_rec.new_attribute7 := p_ext_attrib_rec.attribute7 ;
26889 END IF;
26890 --
26891 IF (p_ext_attrib_rec.attribute8 = fnd_api.g_miss_char) OR
26892 NVL(p_ext_attrib_rec.attribute8, fnd_api.g_miss_char) = NVL(l_temp_ext_attrib_rec.attribute8, fnd_api.g_miss_char) THEN
26893 l_ext_att_hist_rec.old_attribute8 := NULL;
26894 l_ext_att_hist_rec.new_attribute8 := NULL;
26895 ELSIF
26896 NVL(l_temp_ext_attrib_rec.attribute8,fnd_api.g_miss_char) <> NVL(p_ext_attrib_rec.attribute8,fnd_api.g_miss_char) THEN
26897 l_ext_att_hist_rec.old_attribute8 := l_temp_ext_attrib_rec.attribute8 ;
26898 l_ext_att_hist_rec.new_attribute8 := p_ext_attrib_rec.attribute8 ;
26899 END IF;
26900 --
26901 IF (p_ext_attrib_rec.attribute9 = fnd_api.g_miss_char) OR
26902 NVL(p_ext_attrib_rec.attribute9, fnd_api.g_miss_char) = NVL(l_temp_ext_attrib_rec.attribute9, fnd_api.g_miss_char) THEN
26903 l_ext_att_hist_rec.old_attribute9 := NULL;
26904 l_ext_att_hist_rec.new_attribute9 := NULL;
26905 ELSIF
26906 NVL(l_temp_ext_attrib_rec.attribute9,fnd_api.g_miss_char) <> NVL(p_ext_attrib_rec.attribute9,fnd_api.g_miss_char) THEN
26907 l_ext_att_hist_rec.old_attribute9 := l_temp_ext_attrib_rec.attribute9 ;
26908 l_ext_att_hist_rec.new_attribute9 := p_ext_attrib_rec.attribute9 ;
26909 END IF;
26910 --
26911 IF (p_ext_attrib_rec.attribute10 = fnd_api.g_miss_char) OR
26912 NVL(p_ext_attrib_rec.attribute10, fnd_api.g_miss_char) = NVL(l_temp_ext_attrib_rec.attribute10, fnd_api.g_miss_char) THEN
26913 l_ext_att_hist_rec.old_attribute10 := NULL;
26914 l_ext_att_hist_rec.new_attribute10 := NULL;
26915 ELSIF
26916 NVL(l_temp_ext_attrib_rec.attribute10,fnd_api.g_miss_char) <> NVL(p_ext_attrib_rec.attribute10,fnd_api.g_miss_char) THEN
26917 l_ext_att_hist_rec.old_attribute10 := l_temp_ext_attrib_rec.attribute10 ;
26918 l_ext_att_hist_rec.new_attribute10 := p_ext_attrib_rec.attribute10 ;
26919 END IF;
26920 --
26921 IF (p_ext_attrib_rec.attribute11 = fnd_api.g_miss_char) OR
26922 NVL(p_ext_attrib_rec.attribute11, fnd_api.g_miss_char) = NVL(l_temp_ext_attrib_rec.attribute11, fnd_api.g_miss_char) THEN
26923 l_ext_att_hist_rec.old_attribute11 := NULL;
26924 l_ext_att_hist_rec.new_attribute11 := NULL;
26925 ELSIF
26926 NVL(l_temp_ext_attrib_rec.attribute11,fnd_api.g_miss_char) <> NVL(p_ext_attrib_rec.attribute11,fnd_api.g_miss_char) THEN
26927 l_ext_att_hist_rec.old_attribute11 := l_temp_ext_attrib_rec.attribute11 ;
26928 l_ext_att_hist_rec.new_attribute11 := p_ext_attrib_rec.attribute11 ;
26929 END IF;
26930 --
26931 IF (p_ext_attrib_rec.attribute12 = fnd_api.g_miss_char) OR
26932 NVL(p_ext_attrib_rec.attribute12, fnd_api.g_miss_char) = NVL(l_temp_ext_attrib_rec.attribute12, fnd_api.g_miss_char) THEN
26933 l_ext_att_hist_rec.old_attribute12 := NULL;
26934 l_ext_att_hist_rec.new_attribute12 := NULL;
26935 ELSIF
26936 NVL(l_temp_ext_attrib_rec.attribute12,fnd_api.g_miss_char) <> NVL(p_ext_attrib_rec.attribute12,fnd_api.g_miss_char) THEN
26937 l_ext_att_hist_rec.old_attribute12 := l_temp_ext_attrib_rec.attribute12 ;
26938 l_ext_att_hist_rec.new_attribute12 := p_ext_attrib_rec.attribute12 ;
26939 END IF;
26940 --
26941 IF (p_ext_attrib_rec.attribute13 = fnd_api.g_miss_char) OR
26942 NVL(p_ext_attrib_rec.attribute13, fnd_api.g_miss_char) = NVL(l_temp_ext_attrib_rec.attribute13, fnd_api.g_miss_char) THEN
26943 l_ext_att_hist_rec.old_attribute13 := NULL;
26944 l_ext_att_hist_rec.new_attribute13 := NULL;
26945 ELSIF
26946 NVL(l_temp_ext_attrib_rec.attribute13,fnd_api.g_miss_char) <> NVL(p_ext_attrib_rec.attribute13,fnd_api.g_miss_char) THEN
26947 l_ext_att_hist_rec.old_attribute13 := l_temp_ext_attrib_rec.attribute13 ;
26948 l_ext_att_hist_rec.new_attribute13 := p_ext_attrib_rec.attribute13 ;
26949 END IF;
26950 --
26951 IF (p_ext_attrib_rec.attribute14 = fnd_api.g_miss_char) OR
26952 NVL(p_ext_attrib_rec.attribute14, fnd_api.g_miss_char) = NVL(l_temp_ext_attrib_rec.attribute14, fnd_api.g_miss_char) THEN
26953 l_ext_att_hist_rec.old_attribute14 := NULL;
26954 l_ext_att_hist_rec.new_attribute14 := NULL;
26955 ELSIF
26956 NVL(l_temp_ext_attrib_rec.attribute14,fnd_api.g_miss_char) <> NVL(p_ext_attrib_rec.attribute14,fnd_api.g_miss_char) THEN
26957 l_ext_att_hist_rec.old_attribute14 := l_temp_ext_attrib_rec.attribute14 ;
26958 l_ext_att_hist_rec.new_attribute14 := p_ext_attrib_rec.attribute14 ;
26959 END IF;
26960 --
26961 IF (p_ext_attrib_rec.attribute15 = fnd_api.g_miss_char) OR
26962 NVL(p_ext_attrib_rec.attribute15, fnd_api.g_miss_char) = NVL(l_temp_ext_attrib_rec.attribute15, fnd_api.g_miss_char) THEN
26963 l_ext_att_hist_rec.old_attribute15 := NULL;
26964 l_ext_att_hist_rec.new_attribute15 := NULL;
26965 ELSIF
26966 NVL(l_temp_ext_attrib_rec.attribute15,fnd_api.g_miss_char) <> NVL(p_ext_attrib_rec.attribute15,fnd_api.g_miss_char) THEN
26967 l_ext_att_hist_rec.old_attribute15 := l_temp_ext_attrib_rec.attribute15 ;
26968 l_ext_att_hist_rec.new_attribute15 := p_ext_attrib_rec.attribute15 ;
26969 END IF;
26970
26971 -- Create a history
26972 CSI_IEA_VALUES_H_PKG.Insert_Row(
26973 l_attribute_value_h_id
26974 ,l_attribute_value_id
26975 ,p_txn_rec.transaction_id
26976 ,l_ext_att_hist_rec.old_attribute_value
26977 ,l_ext_att_hist_rec.new_attribute_value
26978 ,l_ext_att_hist_rec.old_active_start_date
26979 ,l_ext_att_hist_rec.new_active_start_date
26980 ,l_ext_att_hist_rec.old_active_end_date
26981 ,l_ext_att_hist_rec.new_active_end_date
26982 ,l_ext_att_hist_rec.old_context
26983 ,l_ext_att_hist_rec.new_context
26984 ,l_ext_att_hist_rec.old_attribute1
26985 ,l_ext_att_hist_rec.new_attribute1
26986 ,l_ext_att_hist_rec.old_attribute2
26987 ,l_ext_att_hist_rec.new_attribute2
26988 ,l_ext_att_hist_rec.old_attribute3
26989 ,l_ext_att_hist_rec.new_attribute3
26990 ,l_ext_att_hist_rec.old_attribute4
26991 ,l_ext_att_hist_rec.new_attribute4
26992 ,l_ext_att_hist_rec.old_attribute5
26993 ,l_ext_att_hist_rec.new_attribute5
26994 ,l_ext_att_hist_rec.old_attribute6
26995 ,l_ext_att_hist_rec.new_attribute6
26996 ,l_ext_att_hist_rec.old_attribute7
26997 ,l_ext_att_hist_rec.new_attribute7
26998 ,l_ext_att_hist_rec.old_attribute8
26999 ,l_ext_att_hist_rec.new_attribute8
27000 ,l_ext_att_hist_rec.old_attribute9
27001 ,l_ext_att_hist_rec.new_attribute9
27002 ,l_ext_att_hist_rec.old_attribute10
27003 ,l_ext_att_hist_rec.new_attribute10
27004 ,l_ext_att_hist_rec.old_attribute11
27005 ,l_ext_att_hist_rec.new_attribute11
27006 ,l_ext_att_hist_rec.old_attribute12
27007 ,l_ext_att_hist_rec.new_attribute12
27008 ,l_ext_att_hist_rec.old_attribute13
27009 ,l_ext_att_hist_rec.new_attribute13
27010 ,l_ext_att_hist_rec.old_attribute14
27011 ,l_ext_att_hist_rec.new_attribute14
27012 ,l_ext_att_hist_rec.old_attribute15
27013 ,l_ext_att_hist_rec.new_attribute15
27014 ,l_dump_frequency_flag
27015 ,fnd_global.user_id
27016 ,sysdate
27017 ,fnd_global.user_id
27018 ,sysdate
27019 ,fnd_global.user_id
27020 ,1);
27021
27022 END IF;
27023 END;
27024 -- End of modifications for Bug#2547034 on 09/20/02 - rtalluri
27025 -- End of API body
27026
27027 -- Standard check of p_commit.
27028 IF FND_API.To_Boolean( p_commit ) THEN
27029 COMMIT WORK;
27030 END IF;
27031
27032 -- Standard call to get message count and if count is get message info.
27033 FND_MSG_PUB.Count_And_Get
27034 (p_count => x_msg_count ,
27035 p_data => x_msg_data
27036 );
27037
27038 EXCEPTION
27039
27040 WHEN FND_API.G_EXC_ERROR THEN
27041 ROLLBACK TO update_extended_attrib_values;
27042 x_return_status := FND_API.G_RET_STS_ERROR ;
27043 FND_MSG_PUB.Count_And_Get
27044 ( p_count => x_msg_count,
27045 p_data => x_msg_data
27046 );
27047
27048 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
27049 ROLLBACK TO update_extended_attrib_values;
27050 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
27051 FND_MSG_PUB.Count_And_Get
27052 ( p_count => x_msg_count,
27053 p_data => x_msg_data
27054 );
27055
27056 WHEN OTHERS THEN
27057 ROLLBACK TO update_extended_attrib_values;
27058 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
27059
27060 IF FND_MSG_PUB.Check_Msg_Level
27061 (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
27062 THEN
27063 FND_MSG_PUB.Add_Exc_Msg
27064 ( g_pkg_name,
27065 l_api_name
27066 );
27067 END IF;
27068
27069 FND_MSG_PUB.Count_And_Get
27070 ( p_count => x_msg_count,
27071 p_data => x_msg_data
27072 );
27073
27074 END update_extended_attrib_values;
27075
27076
27077
27078
27079 /*----------------------------------------------------------*/
27080 /* procedure name: expire_extended_attrib_values */
27081 /* description : Expires the existing extended */
27082 /* attributes for an item instance */
27083 /* */
27084 /*----------------------------------------------------------*/
27085
27086
27087 PROCEDURE expire_extended_attrib_values
27088 ( p_api_version IN NUMBER
27089 ,p_commit IN VARCHAR2
27090 ,p_init_msg_list IN VARCHAR2
27091 ,p_validation_level IN NUMBER
27092 ,p_ext_attrib_rec IN csi_datastructures_pub.extend_attrib_values_rec
27093 ,p_txn_rec IN OUT NOCOPY csi_datastructures_pub.transaction_rec
27094 ,x_return_status OUT NOCOPY VARCHAR2
27095 ,x_msg_count OUT NOCOPY NUMBER
27096 ,x_msg_data OUT NOCOPY VARCHAR2
27097 )
27098
27099 IS
27100 l_api_name CONSTANT VARCHAR2(30) := 'expire_extended_attrib_values';
27101 l_api_version CONSTANT NUMBER := 1.0;
27102 l_debug_level NUMBER;
27103 l_msg_index NUMBER;
27104 l_msg_count NUMBER;
27105 l_ext_attrib_rec csi_datastructures_pub.extend_attrib_values_rec;
27106 BEGIN
27107
27108 -- Standard Start of API savepoint
27109 SAVEPOINT expire_extended_attrib_values;
27110
27111 -- Standard call to check for call compatibility.
27112 IF NOT FND_API.Compatible_API_Call (l_api_version,
27113 p_api_version,
27114 l_api_name ,
27115 g_pkg_name)
27116 THEN
27117 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
27118 END IF;
27119
27120 -- Initialize message list if p_init_msg_list is set to TRUE.
27121 IF FND_API.to_Boolean( p_init_msg_list ) THEN
27122 FND_MSG_PUB.initialize;
27123 END IF;
27124
27125 -- Initialize API return status to success
27126 x_return_status := FND_API.G_RET_STS_SUCCESS;
27127
27128
27129 -- Check the profile option debug_level for debug message reporting
27130
27131 l_debug_level:=fnd_profile.value('CSI_DEBUG_LEVEL');
27132
27133 -- If debug_level = 1 then dump the procedure name
27134 IF (l_debug_level > 0) THEN
27135 csi_gen_utility_pvt.put_line( 'expire_extended_attrib_values');
27136 END IF;
27137
27138
27139 -- If the debug level = 2 then dump all the parameters values.
27140 IF (l_debug_level > 1) THEN
27141 csi_gen_utility_pvt.put_line(
27142 p_api_version ||'-'
27143 || p_commit ||'-'
27144 || p_init_msg_list ||'-'
27145 || p_validation_level);
27146 -- Dump extended attribute rec
27147 csi_gen_utility_pvt.dump_ext_attrib_values_rec(p_ext_attrib_rec);
27148 -- Dump txn_rec
27149 csi_gen_utility_pvt.dump_txn_rec(p_txn_rec);
27150 END IF;
27151
27152
27153 -- Start API body
27154 -- Validate extended_attribute_value_id
27155 IF NOT(csi_extend_attrib_vld_pvt.Val_and_get_ext_att_id
27156 (p_ext_attrib_rec.attribute_value_id,
27157 l_ext_attrib_rec )) THEN
27158 RAISE FND_API.G_EXC_ERROR;
27159 END IF;
27160
27161
27162 l_ext_attrib_rec.attribute_value_id := p_ext_attrib_rec.attribute_value_id;
27163 l_ext_attrib_rec.attribute_id := FND_API.G_MISS_NUM;
27164 l_ext_attrib_rec.instance_id := FND_API.G_MISS_NUM;
27165 l_ext_attrib_rec.attribute_value := FND_API.G_MISS_CHAR;
27166 l_ext_attrib_rec.active_start_date := FND_API.G_MISS_DATE ;
27167 l_ext_attrib_rec.active_end_date := SYSDATE;
27168 l_ext_attrib_rec.context := FND_API.G_MISS_CHAR;
27169 l_ext_attrib_rec.attribute1 := FND_API.G_MISS_CHAR;
27170 l_ext_attrib_rec.attribute2 := FND_API.G_MISS_CHAR;
27171 l_ext_attrib_rec.attribute3 := FND_API.G_MISS_CHAR;
27172 l_ext_attrib_rec.attribute4 := FND_API.G_MISS_CHAR;
27173 l_ext_attrib_rec.attribute5 := FND_API.G_MISS_CHAR;
27174 l_ext_attrib_rec.attribute6 := FND_API.G_MISS_CHAR;
27175 l_ext_attrib_rec.attribute7 := FND_API.G_MISS_CHAR;
27176 l_ext_attrib_rec.attribute8 := FND_API.G_MISS_CHAR;
27177 l_ext_attrib_rec.attribute9 := FND_API.G_MISS_CHAR;
27178 l_ext_attrib_rec.attribute10 := FND_API.G_MISS_CHAR;
27179 l_ext_attrib_rec.attribute11 := FND_API.G_MISS_CHAR;
27180 l_ext_attrib_rec.attribute12 := FND_API.G_MISS_CHAR;
27181 l_ext_attrib_rec.attribute13 := FND_API.G_MISS_CHAR;
27182 l_ext_attrib_rec.attribute14 := FND_API.G_MISS_CHAR;
27183 l_ext_attrib_rec.attribute15 := FND_API.G_MISS_CHAR;
27184 l_ext_attrib_rec.object_version_number := p_ext_attrib_rec.object_version_number;
27185
27186
27187 g_expire_ext_att_flag := 'Y';
27188 csi_item_instance_pvt.update_extended_attrib_values
27189 (p_api_version => p_api_version
27190 ,p_commit => fnd_api.g_false
27191 ,p_init_msg_list => p_init_msg_list
27192 ,p_validation_level => p_validation_level
27193 ,p_ext_attrib_rec => l_ext_attrib_rec
27194 ,p_txn_rec => p_txn_rec
27195 ,x_return_status => x_return_status
27196 ,x_msg_count => x_msg_count
27197 ,x_msg_data => x_msg_data
27198 );
27199
27200 g_expire_ext_att_flag := 'N';
27201 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
27202 l_msg_index := 1;
27203 l_msg_count := x_msg_count;
27204 WHILE l_msg_count > 0 LOOP
27205 x_msg_data := FND_MSG_PUB.GET
27206 (l_msg_index,
27207 FND_API.G_FALSE );
27208
27209 csi_gen_utility_pvt.put_line('message data = '||x_msg_data);
27210 l_msg_index := l_msg_index + 1;
27211 l_msg_count := l_msg_count - 1;
27212 END LOOP;
27213 RAISE FND_API.G_EXC_ERROR;
27214 END IF;
27215
27216
27217
27218 -- End of API body
27219
27220 -- Standard check of p_commit.
27221 IF FND_API.To_Boolean( p_commit ) THEN
27222 COMMIT WORK;
27223 END IF;
27224
27225 -- Standard call to get message count and if count is get message info.
27226 FND_MSG_PUB.Count_And_Get
27227 (p_count => x_msg_count ,
27228 p_data => x_msg_data
27229 );
27230
27231
27232 EXCEPTION
27233
27234 WHEN FND_API.G_EXC_ERROR THEN
27235 ROLLBACK TO expire_extended_attrib_values;
27236 x_return_status := FND_API.G_RET_STS_ERROR ;
27237 FND_MSG_PUB.Count_And_Get
27238 ( p_count => x_msg_count,
27239 p_data => x_msg_data
27240 );
27241
27242 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
27243 ROLLBACK TO expire_extended_attrib_values;
27244 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
27245 FND_MSG_PUB.Count_And_Get
27246 ( p_count => x_msg_count,
27247 p_data => x_msg_data
27248 );
27249
27250 WHEN OTHERS THEN
27251 ROLLBACK TO expire_extended_attrib_values;
27252 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
27253
27254 IF FND_MSG_PUB.Check_Msg_Level
27255 (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
27256 THEN
27257 FND_MSG_PUB.Add_Exc_Msg
27258 (g_pkg_name,
27259 l_api_name
27260 );
27261 END IF;
27262
27263 FND_MSG_PUB.Count_And_Get
27264 ( p_count => x_msg_count,
27265 p_data => x_msg_data
27266 );
27267
27268 END expire_extended_attrib_values;
27269
27270
27271 /*------------------------------------------------------*/
27272 /* procedure name: copy_single_item_instance */
27273 /* description : Copies an instace from an instance */
27274 /* */
27275 /*------------------------------------------------------*/
27276
27277
27278
27279 PROCEDURE copy_single_item_instance
27280 (
27281 p_api_version IN NUMBER
27282 ,p_commit IN VARCHAR2
27283 ,p_init_msg_list IN VARCHAR2
27284 ,p_validation_level IN NUMBER
27285 ,p_source_instance_rec IN csi_datastructures_pub.instance_rec
27286 ,p_copy_ext_attribs IN VARCHAR2
27287 ,p_copy_org_assignments IN VARCHAR2
27288 ,p_copy_parties IN VARCHAR2
27289 ,p_copy_contacts IN VARCHAR2
27290 ,p_copy_accounts IN VARCHAR2
27291 ,p_copy_asset_assignments IN VARCHAR2
27292 ,p_copy_pricing_attribs IN VARCHAR2
27293 ,p_call_from_split IN VARCHAR2
27294 ,p_call_from_bom_expl IN VARCHAR2
27295 ,p_txn_rec IN OUT NOCOPY csi_datastructures_pub.transaction_rec
27296 ,x_new_instance_tbl OUT NOCOPY csi_datastructures_pub.instance_tbl
27297 ,x_return_status OUT NOCOPY VARCHAR2
27298 ,x_msg_count OUT NOCOPY NUMBER
27299 ,x_msg_data OUT NOCOPY VARCHAR2
27300 )
27301
27302 IS
27303 l_api_name CONSTANT VARCHAR2(30) := 'copy_single_item_instance';
27304 l_api_version CONSTANT NUMBER := 1.0;
27305 l_debug_level NUMBER;
27306 l_curr_instance_rec csi_datastructures_pub.instance_rec;
27307 l_new_instance_rec csi_datastructures_pub.instance_rec;
27308 l_asset_tbl csi_datastructures_pub.instance_asset_tbl;
27309 l_asset_header_tbl csi_datastructures_pub.instance_asset_header_tbl;--rk
27310 l_ext_attrib_tbl csi_datastructures_pub.extend_attrib_values_tbl;
27311 l_ext_attrib_def_tbl csi_datastructures_pub.extend_attrib_tbl;
27312 l_ext_attribs_query_rec csi_datastructures_pub.extend_attrib_query_rec;
27313 l_ou_query_rec csi_datastructures_pub.organization_unit_query_rec;
27314 l_org_unit_tbl csi_datastructures_pub.organization_units_tbl;
27315 l_org_unit_header_tbl csi_datastructures_pub.org_units_header_tbl;--rk
27316 l_pricing_attribs_query_rec csi_datastructures_pub.pricing_attribs_query_rec;
27317 l_pricing_attribs_tbl csi_datastructures_pub.pricing_attribs_tbl;
27318 l_account_header_tbl csi_datastructures_pub.party_account_header_tbl;
27319 l_instance_asset_query_rec csi_datastructures_pub.instance_asset_query_rec;
27320 l_instance_asset_rec csi_datastructures_pub.instance_asset_rec;
27321 l_party_query_rec csi_datastructures_pub.party_query_rec;
27322 l_party_tbl csi_datastructures_pub.party_tbl;
27323 l_original_party_tbl csi_datastructures_pub.party_tbl;
27324 l_party_input_tbl csi_datastructures_pub.party_tbl;
27325 l_new_party_tbl csi_datastructures_pub.party_tbl;
27326 l_contact_tbl csi_datastructures_pub.party_tbl;
27327 l_contact_input_tbl csi_datastructures_pub.party_tbl;
27328 l_contact_found_flag BOOLEAN := FALSE;
27329 l_new_contact_tbl csi_datastructures_pub.party_tbl;
27330 l_party_header_tbl csi_datastructures_pub.party_header_tbl;
27331 l_party_account_query_rec csi_datastructures_pub.party_account_query_rec;
27332 l_contact_account_query_rec csi_datastructures_pub.party_account_query_rec;
27333 l_party_account_tbl csi_datastructures_pub.party_account_tbl;
27334 l_contact_account_tbl csi_datastructures_pub.party_account_tbl;
27335 l_temp_party_account_tbl csi_datastructures_pub.party_account_tbl;
27336 l_msg_index NUMBER;
27337 l_msg_count NUMBER;
27338 l_attribute_level VARCHAR2(30);
27339 l_vld_org_id NUMBER;
27340 l_internal_party_id NUMBER;
27341 l_party_id NUMBER;
27342 l_item_attribute_tbl csi_item_instance_pvt.item_attribute_tbl;
27343 l_location_tbl csi_item_instance_pvt.location_tbl;
27344 l_generic_id_tbl csi_item_instance_pvt.generic_id_tbl;
27345 l_lookup_tbl csi_item_instance_pvt.lookup_tbl;
27346 l_ins_count_rec csi_item_instance_pvt.ins_count_rec;
27347 l_asset_lookup_tbl csi_asset_pvt.lookup_tbl;
27348 l_asset_count_rec csi_asset_pvt.asset_count_rec;
27349 l_asset_id_tbl csi_asset_pvt.asset_id_tbl;
27350 l_asset_loc_tbl csi_asset_pvt.asset_loc_tbl;
27351 l_version_label VARCHAR2(30);
27352 l_version_label_rec csi_datastructures_pub.version_label_rec;
27353 l_obj_id NUMBER;
27354 --
27355 px_oks_txn_inst_tbl oks_ibint_pub.txn_instance_tbl;
27356 l_batch_type VARCHAR2(50);
27357 l_batch_id NUMBER;
27358 --
27359 BEGIN
27360 -- Standard Start of API savepoint
27361 SAVEPOINT copy_single_item_instance;
27362 -- Standard call to check for call compatibility.
27363 IF NOT FND_API.Compatible_API_Call (l_api_version,
27364 p_api_version,
27365 l_api_name ,
27366 G_PKG_NAME)
27367 THEN
27368 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
27369 END IF;
27370 -- Initialize message list if p_init_msg_list is set to TRUE.
27371 IF FND_API.to_Boolean( p_init_msg_list ) THEN
27372 FND_MSG_PUB.initialize;
27373 END IF;
27374 -- Initialize API return status to success
27375 x_return_status := FND_API.G_RET_STS_SUCCESS;
27376 -- Check the profile option debug_level for debug message reporting
27377 l_debug_level:=fnd_profile.value('CSI_DEBUG_LEVEL');
27378 -- If debug_level = 1 then dump the procedure name
27379 IF (l_debug_level > 0) THEN
27380 csi_gen_utility_pvt.put_line('copy_single_item_instance ');
27381 END IF;
27382 -- If the debug level = 2 then dump all the parameters values.
27383 IF (l_debug_level > 1) THEN
27384 csi_gen_utility_pvt.put_line('copy_single_item_instance '||
27385 p_api_version ||'-'
27386 || p_commit ||'-'
27387 || p_init_msg_list ||'-'
27388 || p_validation_level ||'-'
27389 || p_copy_ext_attribs ||'-'
27390 || p_copy_org_assignments ||'-'
27391 || p_copy_parties ||'-'
27392 || p_copy_contacts ||'-'
27393 || p_copy_accounts ||'-'
27394 || p_copy_asset_assignments ||'-'
27395 || p_copy_pricing_attribs
27396 );
27397 -- Dump item instanc red
27398 csi_gen_utility_pvt.dump_instance_rec(p_source_instance_rec);
27399 -- Dump txn_rec
27400 csi_gen_utility_pvt.dump_txn_rec(p_txn_rec);
27401
27402 END IF;
27403 -- Start API body
27404 -- Check if an instance id is passed in p_source_instance_rec or not.
27405 -- If yes, then query the item instance from from csi_item_instances table
27406 -- into l_curr_instance_rec.
27407 /*
27408 IF ((p_source_instance_rec.VLD_ORGANIZATION_ID = FND_API.G_MISS_NUM)
27409 OR (p_source_instance_rec.VLD_ORGANIZATION_ID IS NULL)) THEN
27410 FND_MESSAGE.SET_NAME('CSI','CSI_API_VLD_ORG_ID_NULL');
27411 FND_MSG_PUB.Add;
27412 RAISE FND_API.G_EXC_ERROR;
27413 ELSE
27414 l_new_instance_rec.VLD_ORGANIZATION_ID := p_source_instance_rec.VLD_ORGANIZATION_ID;
27415 END IF;
27416 */
27417
27418 -- Added by sk for bug 2186683
27419 IF p_source_instance_rec.vld_organization_id IS NULL OR
27420 p_source_instance_rec.vld_organization_id = fnd_api.g_miss_num
27421 THEN
27422 BEGIN
27423 SELECT last_vld_organization_id
27424 INTO l_vld_org_id
27425 FROM csi_item_instances
27426 WHERE instance_id = p_source_instance_rec.instance_id;
27427 EXCEPTION
27428 WHEN OTHERS THEN
27429 NULL;
27430 END;
27431 END IF;
27432 -- End addition by sk for bug 2186683
27433
27434 IF (p_source_instance_rec.instance_id IS NULL) OR
27435 (p_source_instance_rec.instance_id = FND_API.G_MISS_NUM) THEN
27436 FND_MESSAGE.SET_NAME('CSI','CSI_API_INSTANCE_ID_NULL');
27437 FND_MSG_PUB.Add;
27438 RAISE FND_API.G_EXC_ERROR;
27439 ELSIF NOT (csi_Item_Instance_Vld_pvt.Val_and_get_inst_rec(
27440 p_source_instance_rec.instance_id ,
27441 l_curr_instance_rec )) THEN
27442 RAISE FND_API.G_EXC_ERROR;
27443 END IF;
27444
27445 -- Check if the user has not passed incorrect options for contacts
27446 IF ((p_copy_parties = fnd_api.g_false)
27447 AND (p_copy_contacts = fnd_api.g_true)) THEN
27448 FND_MESSAGE.SET_NAME('CSI','CSI_INVALID_PTY_CONTACT_OPT');
27449 FND_MSG_PUB.Add;
27450 RAISE FND_API.G_EXC_ERROR;
27451 END IF;
27452 -- If the user has passed p_copy_parties as false get only the owner, else get all the parties
27453 IF (p_copy_parties = fnd_api.g_true) THEN
27454 l_party_query_rec.instance_party_id := FND_API.G_MISS_NUM;
27455 l_party_query_rec.instance_id := l_curr_instance_rec.instance_id;
27456 l_party_query_rec.party_id := FND_API.G_MISS_NUM;
27457 l_party_query_rec.relationship_type_code := FND_API.G_MISS_CHAR;
27458 csi_party_relationships_pub.get_inst_party_relationships
27459 ( p_api_version => p_api_version
27460 ,p_commit => p_commit
27461 ,p_init_msg_list => p_init_msg_list
27462 ,p_validation_level => p_validation_level
27463 ,p_party_query_rec => l_party_query_rec
27464 ,p_resolve_id_columns => fnd_api.g_true
27465 ,p_time_stamp => NULL
27466 ,x_party_header_tbl => l_party_header_tbl
27467 ,x_return_status => x_return_status
27468 ,x_msg_count => x_msg_count
27469 ,x_msg_data => x_msg_data
27470 );
27471
27472 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
27473 l_msg_index := 1;
27474 l_msg_count := x_msg_count;
27475 WHILE l_msg_count > 0 LOOP
27476 x_msg_data := FND_MSG_PUB.GET
27477 (l_msg_index,
27478 FND_API.G_FALSE );
27479 csi_gen_utility_pvt.put_line('message data = '||x_msg_data);
27480 l_msg_index := l_msg_index + 1;
27481 l_msg_count := l_msg_count - 1;
27482 END LOOP;
27483 RAISE FND_API.G_EXC_ERROR;
27484 END IF;
27485 ELSE
27486 l_party_query_rec.instance_party_id := FND_API.G_MISS_NUM;
27487 l_party_query_rec.instance_id := l_curr_instance_rec.instance_id;
27488 l_party_query_rec.party_id := FND_API.G_MISS_NUM;
27489 l_party_query_rec.relationship_type_code := 'OWNER';
27490 csi_party_relationships_pub.get_inst_party_relationships
27491 ( p_api_version => p_api_version
27492 ,p_commit => p_commit
27493 ,p_init_msg_list => p_init_msg_list
27494 ,p_validation_level => p_validation_level
27495 ,p_party_query_rec => l_party_query_rec
27496 ,p_resolve_id_columns => fnd_api.g_true
27497 ,p_time_stamp => NULL
27498 ,x_party_header_tbl => l_party_header_tbl
27499 ,x_return_status => x_return_status
27500 ,x_msg_count => x_msg_count
27501 ,x_msg_data => x_msg_data
27502 );
27503
27504 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
27505 l_msg_index := 1;
27506 l_msg_count := x_msg_count;
27507 WHILE l_msg_count > 0 LOOP
27508 x_msg_data := FND_MSG_PUB.GET
27509 (l_msg_index,
27510 FND_API.G_FALSE );
27511
27512 csi_gen_utility_pvt.put_line('message data = '||x_msg_data);
27513 l_msg_index := l_msg_index + 1;
27514 l_msg_count := l_msg_count - 1;
27515 END LOOP;
27516 RAISE FND_API.G_EXC_ERROR;
27517 END IF;
27518
27519 END IF;
27520 -- This is mean to initialize the l_party_table in order to create an instance.
27521 IF l_party_header_tbl.COUNT > 0 THEN /*****First change here 07/27/01 - RK***/
27522 FOR tab_row_party IN l_party_header_tbl.FIRST .. l_party_header_tbl.LAST
27523 LOOP
27524 IF l_party_header_tbl.EXISTS(tab_row_party) THEN
27525 IF l_party_header_tbl(tab_row_party).contact_flag = 'Y' THEN
27526 -- build the contacts table
27527 l_contact_tbl(tab_row_party).instance_party_id := l_party_header_tbl(tab_row_party).instance_party_id;
27528 l_contact_tbl(tab_row_party).instance_id := l_party_header_tbl(tab_row_party).instance_id;
27529 l_contact_tbl(tab_row_party).party_id := l_party_header_tbl(tab_row_party).party_id;
27530 l_contact_tbl(tab_row_party).party_source_table := l_party_header_tbl(tab_row_party).party_source_table;
27531 l_contact_tbl(tab_row_party).relationship_type_code := l_party_header_tbl(tab_row_party).relationship_type_code;
27532 l_contact_tbl(tab_row_party).contact_flag := l_party_header_tbl(tab_row_party).contact_flag;
27533 l_contact_tbl(tab_row_party).contact_ip_id := l_party_header_tbl(tab_row_party).contact_ip_id;
27534 l_contact_tbl(tab_row_party).active_start_date := l_party_header_tbl(tab_row_party).active_start_date;
27535 l_contact_tbl(tab_row_party).active_end_date := l_party_header_tbl(tab_row_party).active_end_date;
27536 l_contact_tbl(tab_row_party).context := l_party_header_tbl(tab_row_party).context;
27537 l_contact_tbl(tab_row_party).attribute1 := l_party_header_tbl(tab_row_party).attribute1;
27538 l_contact_tbl(tab_row_party).attribute2 := l_party_header_tbl(tab_row_party).attribute2;
27539 l_contact_tbl(tab_row_party).attribute3 := l_party_header_tbl(tab_row_party).attribute3;
27540 l_contact_tbl(tab_row_party).attribute4 := l_party_header_tbl(tab_row_party).attribute4;
27541 l_contact_tbl(tab_row_party).attribute5 := l_party_header_tbl(tab_row_party).attribute5;
27542 l_contact_tbl(tab_row_party).attribute6 := l_party_header_tbl(tab_row_party).attribute6;
27543 l_contact_tbl(tab_row_party).attribute7 := l_party_header_tbl(tab_row_party).attribute7;
27544 l_contact_tbl(tab_row_party).attribute8 := l_party_header_tbl(tab_row_party).attribute8;
27545 l_contact_tbl(tab_row_party).attribute9 := l_party_header_tbl(tab_row_party).attribute9;
27546 l_contact_tbl(tab_row_party).attribute10 := l_party_header_tbl(tab_row_party).attribute10;
27547 l_contact_tbl(tab_row_party).attribute11 := l_party_header_tbl(tab_row_party).attribute11;
27548 l_contact_tbl(tab_row_party).attribute12 := l_party_header_tbl(tab_row_party).attribute12;
27549 l_contact_tbl(tab_row_party).attribute13 := l_party_header_tbl(tab_row_party).attribute13;
27550 l_contact_tbl(tab_row_party).attribute14 := l_party_header_tbl(tab_row_party).attribute14;
27551 l_contact_tbl(tab_row_party).attribute15 := l_party_header_tbl(tab_row_party).attribute15;
27552 l_contact_tbl(tab_row_party).object_version_number := l_party_header_tbl(tab_row_party).object_version_number;
27553 --Start fo Addition for the Bugfix 2354589.
27554 l_contact_tbl(tab_row_party).preferred_flag := l_party_header_tbl(tab_row_party).preferred_flag;
27555 l_contact_tbl(tab_row_party).primary_flag := l_party_header_tbl(tab_row_party).primary_flag;
27556 --End of Addition for the Bugfix 2354589.
27557 ELSE -- Build the parties table
27558 l_party_tbl(tab_row_party).instance_party_id := l_party_header_tbl(tab_row_party).instance_party_id;
27559 l_party_tbl(tab_row_party).instance_id := l_party_header_tbl(tab_row_party).instance_id;
27560 l_party_tbl(tab_row_party).party_id := l_party_header_tbl(tab_row_party).party_id;
27561 l_party_tbl(tab_row_party).party_source_table := l_party_header_tbl(tab_row_party).party_source_table;
27562 l_party_tbl(tab_row_party).relationship_type_code := l_party_header_tbl(tab_row_party).relationship_type_code;
27563 l_party_tbl(tab_row_party).contact_flag := l_party_header_tbl(tab_row_party).contact_flag;
27564 l_party_tbl(tab_row_party).contact_ip_id := l_party_header_tbl(tab_row_party).contact_ip_id;
27565 l_party_tbl(tab_row_party).active_start_date := l_party_header_tbl(tab_row_party).active_start_date;
27566 l_party_tbl(tab_row_party).active_end_date := l_party_header_tbl(tab_row_party).active_end_date;
27567 l_party_tbl(tab_row_party).context := l_party_header_tbl(tab_row_party).context;
27568 l_party_tbl(tab_row_party).attribute1 := l_party_header_tbl(tab_row_party).attribute1;
27569 l_party_tbl(tab_row_party).attribute2 := l_party_header_tbl(tab_row_party).attribute2;
27570 l_party_tbl(tab_row_party).attribute3 := l_party_header_tbl(tab_row_party).attribute3;
27571 l_party_tbl(tab_row_party).attribute4 := l_party_header_tbl(tab_row_party).attribute4;
27572 l_party_tbl(tab_row_party).attribute5 := l_party_header_tbl(tab_row_party).attribute5;
27573 l_party_tbl(tab_row_party).attribute6 := l_party_header_tbl(tab_row_party).attribute6;
27574 l_party_tbl(tab_row_party).attribute7 := l_party_header_tbl(tab_row_party).attribute7;
27575 l_party_tbl(tab_row_party).attribute8 := l_party_header_tbl(tab_row_party).attribute8;
27576 l_party_tbl(tab_row_party).attribute9 := l_party_header_tbl(tab_row_party).attribute9;
27577 l_party_tbl(tab_row_party).attribute10 := l_party_header_tbl(tab_row_party).attribute10;
27578 l_party_tbl(tab_row_party).attribute11 := l_party_header_tbl(tab_row_party).attribute11;
27579 l_party_tbl(tab_row_party).attribute12 := l_party_header_tbl(tab_row_party).attribute12;
27580 l_party_tbl(tab_row_party).attribute13 := l_party_header_tbl(tab_row_party).attribute13;
27581 l_party_tbl(tab_row_party).attribute14 := l_party_header_tbl(tab_row_party).attribute14;
27582 l_party_tbl(tab_row_party).attribute15 := l_party_header_tbl(tab_row_party).attribute15;
27583 l_party_tbl(tab_row_party).object_version_number := l_party_header_tbl(tab_row_party).object_version_number;
27584 --Start fo Addition for the Bugfix 2354589.
27585 l_party_tbl(tab_row_party).preferred_flag := l_party_header_tbl(tab_row_party).preferred_flag;
27586 l_party_tbl(tab_row_party).primary_flag := l_party_header_tbl(tab_row_party).primary_flag;
27587 --End of Addition for the Bugfix 2354589.
27588 END IF;
27589 END IF;
27590 END LOOP;
27591 END IF; --l_party_header_tbl.COUNT > 0
27592 l_original_party_tbl := l_party_tbl;
27593 -- Empty the party table
27594 l_party_header_tbl.DELETE;
27595 -- Create asset assignments if requested. Asset_assignment_tbl has alredy been fetched
27596 IF (p_copy_asset_assignments = fnd_api.g_true) THEN
27597 l_instance_asset_query_rec.instance_asset_id := FND_API.G_MISS_NUM;
27598 l_instance_asset_query_rec.instance_id := l_curr_instance_rec.instance_id;
27599 l_instance_asset_query_rec.fa_asset_id := FND_API.G_MISS_NUM;
27600 l_instance_asset_query_rec.fa_book_type_code := FND_API.G_MISS_CHAR;
27601 l_instance_asset_query_rec.fa_location_id := FND_API.G_MISS_NUM;
27602 l_instance_asset_query_rec.update_status := FND_API.G_MISS_CHAR;
27603 csi_asset_pvt.get_instance_assets
27604 ( p_api_version => p_api_version
27605 ,p_commit => p_commit
27606 ,p_init_msg_list => p_init_msg_list
27607 ,p_validation_level => p_validation_level
27608 ,p_instance_asset_query_rec => l_instance_asset_query_rec
27609 ,p_resolve_id_columns => fnd_api.g_true
27610 ,p_time_stamp => NULL
27611 ,x_instance_asset_tbl => l_asset_header_tbl
27612 ,x_return_status => x_return_status
27613 ,x_msg_count => x_msg_count
27614 ,x_msg_data => x_msg_data
27615 );
27616
27617 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
27618 l_msg_index := 1;
27619 l_msg_count := x_msg_count;
27620 WHILE l_msg_count > 0 LOOP
27621 x_msg_data := FND_MSG_PUB.GET
27622 (l_msg_index,
27623 FND_API.G_FALSE );
27624 csi_gen_utility_pvt.put_line('message data = '||x_msg_data);
27625 l_msg_index := l_msg_index + 1;
27626 l_msg_count := l_msg_count - 1;
27627 END LOOP;
27628 RAISE FND_API.G_EXC_ERROR;
27629 END IF;
27630
27631 END IF;
27632
27633
27634
27635 IF l_asset_header_tbl.COUNT > 0 THEN /*****First change here 08/25/01 - RK***/
27636 FOR tab_row_party IN l_asset_header_tbl.FIRST .. l_asset_header_tbl.LAST
27637 LOOP
27638 IF l_asset_header_tbl.EXISTS(tab_row_party) THEN
27639 l_asset_tbl(tab_row_party).instance_asset_id := l_asset_header_tbl(tab_row_party).instance_asset_id;
27640 l_asset_tbl(tab_row_party).instance_id := l_asset_header_tbl(tab_row_party).instance_id;
27641 l_asset_tbl(tab_row_party).fa_asset_id := l_asset_header_tbl(tab_row_party).fa_asset_id;
27642 l_asset_tbl(tab_row_party).fa_book_type_code := l_asset_header_tbl(tab_row_party).fa_book_type_code;
27643 l_asset_tbl(tab_row_party).fa_location_id := l_asset_header_tbl(tab_row_party).fa_location_id;
27644 l_asset_tbl(tab_row_party).asset_quantity := l_asset_header_tbl(tab_row_party).asset_quantity;
27645 l_asset_tbl(tab_row_party).update_status := l_asset_header_tbl(tab_row_party).update_status;
27646 l_asset_tbl(tab_row_party).active_start_date := l_asset_header_tbl(tab_row_party).active_start_date;
27647 l_asset_tbl(tab_row_party).active_end_date := l_asset_header_tbl(tab_row_party).active_end_date;
27648 l_asset_tbl(tab_row_party).object_version_number := l_asset_header_tbl(tab_row_party).object_version_number;
27649 END IF;
27650 END LOOP;
27651 END IF; --l_asset_header_tbl.COUNT > 0
27652 -- Set the non-copiable attributes as follows
27653
27654 l_new_instance_rec.CREATION_COMPLETE_FLAG := p_source_instance_rec.CREATION_COMPLETE_FLAG;
27655 l_new_instance_rec.COMPLETENESS_FLAG := p_source_instance_rec.COMPLETENESS_FLAG;
27656
27657 IF (p_source_instance_rec.EXTERNAL_REFERENCE = FND_API.G_MISS_CHAR) THEN
27658 l_new_instance_rec.EXTERNAL_REFERENCE := l_curr_instance_rec.EXTERNAL_REFERENCE;
27659 ELSE
27660 l_new_instance_rec.EXTERNAL_REFERENCE := p_source_instance_rec.EXTERNAL_REFERENCE;
27661 END IF;
27662 IF ((p_source_instance_rec.INVENTORY_ITEM_ID = FND_API.G_MISS_NUM)
27663 OR (p_source_instance_rec.INVENTORY_ITEM_ID IS NULL)) THEN
27664 l_new_instance_rec.INVENTORY_ITEM_ID := l_curr_instance_rec.INVENTORY_ITEM_ID;
27665 ELSE
27666 l_new_instance_rec.INVENTORY_ITEM_ID := p_source_instance_rec.INVENTORY_ITEM_ID;
27667 END IF;
27668
27669 -- srramakr commented for bug # 2558156
27670 -- Uncommented for bug 2985165
27671 IF p_call_from_split=fnd_api.g_true
27672 THEN
27673 IF (p_source_instance_rec.INVENTORY_REVISION = FND_API.G_MISS_CHAR) THEN
27674 l_new_instance_rec.INVENTORY_REVISION := l_curr_instance_rec.INVENTORY_REVISION;
27675 ELSE
27676 l_new_instance_rec.INVENTORY_REVISION := p_source_instance_rec.INVENTORY_REVISION;
27677 END IF;
27678 ELSE
27679 -- Uncommented for bug 2985165
27680 -- srramakr Bug # 2558156 Revision should not be copied
27681 IF p_source_instance_rec.INVENTORY_REVISION <> FND_API.G_MISS_CHAR THEN
27682 l_new_instance_rec.INVENTORY_REVISION := p_source_instance_rec.INVENTORY_REVISION;
27683 END IF;
27684 END IF;
27685
27686 IF ((p_source_instance_rec.INV_MASTER_ORGANIZATION_ID = FND_API.G_MISS_NUM)
27687 OR (p_source_instance_rec.INV_MASTER_ORGANIZATION_ID IS NULL)) THEN
27688 l_new_instance_rec.INV_MASTER_ORGANIZATION_ID := l_curr_instance_rec.INV_MASTER_ORGANIZATION_ID;
27689 ELSE
27690 l_new_instance_rec.INV_MASTER_ORGANIZATION_ID := p_source_instance_rec.INV_MASTER_ORGANIZATION_ID ;
27691 END IF;
27692
27693 IF (p_source_instance_rec.SERIAL_NUMBER <> FND_API.G_MISS_CHAR) THEN
27694 l_new_instance_rec.SERIAL_NUMBER := p_source_instance_rec.SERIAL_NUMBER;
27695 END IF;
27696
27697 IF ((p_source_instance_rec.MFG_SERIAL_NUMBER_FLAG = FND_API.G_MISS_CHAR)
27698 OR (p_source_instance_rec.MFG_SERIAL_NUMBER_FLAG IS NULL)) THEN
27699 l_new_instance_rec.MFG_SERIAL_NUMBER_FLAG := l_curr_instance_rec.MFG_SERIAL_NUMBER_FLAG;
27700 ELSE
27701 l_new_instance_rec.MFG_SERIAL_NUMBER_FLAG := p_source_instance_rec.MFG_SERIAL_NUMBER_FLAG ;
27702 END IF;
27703
27704 IF (p_source_instance_rec.LOT_NUMBER = FND_API.G_MISS_CHAR) THEN
27705 l_new_instance_rec.LOT_NUMBER := l_curr_instance_rec.LOT_NUMBER;
27706 ELSE
27707 l_new_instance_rec.LOT_NUMBER := p_source_instance_rec.LOT_NUMBER;
27708 END IF;
27709
27710 IF ((p_source_instance_rec.QUANTITY = FND_API.G_MISS_NUM)
27711 OR (p_source_instance_rec.QUANTITY IS NULL)) THEN
27712 l_new_instance_rec.QUANTITY := l_curr_instance_rec.QUANTITY;
27713 ELSE
27714 l_new_instance_rec.QUANTITY := p_source_instance_rec.QUANTITY ;
27715 END IF;
27716
27717 IF ((p_source_instance_rec.UNIT_OF_MEASURE = FND_API.G_MISS_CHAR)
27718 OR (p_source_instance_rec.UNIT_OF_MEASURE IS NULL)) THEN
27719 l_new_instance_rec.UNIT_OF_MEASURE := l_curr_instance_rec.UNIT_OF_MEASURE;
27720 ELSE
27721 l_new_instance_rec.UNIT_OF_MEASURE := p_source_instance_rec.UNIT_OF_MEASURE ;
27722 END IF;
27723
27724 IF (p_source_instance_rec.ACCOUNTING_CLASS_CODE = FND_API.G_MISS_CHAR) THEN
27725 l_new_instance_rec.ACCOUNTING_CLASS_CODE := l_curr_instance_rec.ACCOUNTING_CLASS_CODE;
27726 ELSE
27727 l_new_instance_rec.ACCOUNTING_CLASS_CODE := l_curr_instance_rec.ACCOUNTING_CLASS_CODE;
27728 END IF;
27729
27730 IF (p_source_instance_rec.INSTANCE_CONDITION_ID = FND_API.G_MISS_NUM) THEN
27731 l_new_instance_rec.INSTANCE_CONDITION_ID := l_curr_instance_rec.INSTANCE_CONDITION_ID;
27732 ELSE
27733 l_new_instance_rec.INSTANCE_CONDITION_ID := p_source_instance_rec.INSTANCE_CONDITION_ID;
27734 END IF;
27735
27736 IF ((p_source_instance_rec.INSTANCE_STATUS_ID = FND_API.G_MISS_NUM)
27737 OR (p_source_instance_rec.INSTANCE_STATUS_ID IS NULL)) THEN
27738 l_new_instance_rec.INSTANCE_STATUS_ID := l_curr_instance_rec.INSTANCE_STATUS_ID;
27739 ELSE
27740 l_new_instance_rec.INSTANCE_STATUS_ID := p_source_instance_rec.INSTANCE_STATUS_ID ;
27741 END IF;
27742
27743 IF ((p_source_instance_rec.CUSTOMER_VIEW_FLAG = FND_API.G_MISS_CHAR)
27744 OR (p_source_instance_rec.CUSTOMER_VIEW_FLAG IS NULL )) THEN
27745 l_new_instance_rec.CUSTOMER_VIEW_FLAG := l_curr_instance_rec.CUSTOMER_VIEW_FLAG;
27746 ELSE
27747 l_new_instance_rec.CUSTOMER_VIEW_FLAG := p_source_instance_rec.CUSTOMER_VIEW_FLAG ;
27748 END IF;
27749
27750 IF ((p_source_instance_rec.MERCHANT_VIEW_FLAG = FND_API.G_MISS_CHAR)
27751 OR (p_source_instance_rec.MERCHANT_VIEW_FLAG IS NULL)) THEN
27752 l_new_instance_rec.MERCHANT_VIEW_FLAG := l_curr_instance_rec.MERCHANT_VIEW_FLAG;
27753 ELSE
27754 l_new_instance_rec.MERCHANT_VIEW_FLAG := p_source_instance_rec.MERCHANT_VIEW_FLAG ;
27755 END IF;
27756
27757 IF (p_source_instance_rec.SELLABLE_FLAG = FND_API.G_MISS_CHAR) THEN
27758 l_new_instance_rec.SELLABLE_FLAG := l_curr_instance_rec.SELLABLE_FLAG;
27759 ELSE
27760 l_new_instance_rec.SELLABLE_FLAG := p_source_instance_rec.SELLABLE_FLAG;
27761 END IF;
27762
27763 IF (p_source_instance_rec.SYSTEM_ID = FND_API.G_MISS_NUM) THEN
27764 l_new_instance_rec.SYSTEM_ID := l_curr_instance_rec.SYSTEM_ID;
27765 ELSE
27766 l_new_instance_rec.SYSTEM_ID := p_source_instance_rec.SYSTEM_ID;
27767 END IF;
27768
27769 IF (p_source_instance_rec.INSTANCE_TYPE_CODE = FND_API.G_MISS_CHAR) THEN
27770 l_new_instance_rec.INSTANCE_TYPE_CODE := l_curr_instance_rec.INSTANCE_TYPE_CODE;
27771 ELSE
27772 l_new_instance_rec.INSTANCE_TYPE_CODE := p_source_instance_rec.INSTANCE_TYPE_CODE;
27773 END IF;
27774
27775 IF (p_source_instance_rec.ACTIVE_START_DATE = FND_API.G_MISS_DATE) THEN
27776 l_new_instance_rec.ACTIVE_START_DATE := l_curr_instance_rec.ACTIVE_START_DATE;
27777 ELSE
27778 l_new_instance_rec.ACTIVE_START_DATE := p_source_instance_rec.ACTIVE_START_DATE;
27779 END IF;
27780
27781 IF (p_source_instance_rec.ACTIVE_END_DATE = FND_API.G_MISS_DATE) THEN
27782 l_new_instance_rec.ACTIVE_END_DATE := l_curr_instance_rec.ACTIVE_END_DATE;
27783 ELSE
27784 l_new_instance_rec.ACTIVE_END_DATE := p_source_instance_rec.ACTIVE_END_DATE;
27785 END IF;
27786
27787 IF (p_source_instance_rec.LOCATION_TYPE_CODE = FND_API.G_MISS_CHAR) THEN
27788 l_new_instance_rec.LOCATION_TYPE_CODE := l_curr_instance_rec.LOCATION_TYPE_CODE;
27789 ELSE
27790 l_new_instance_rec.LOCATION_TYPE_CODE := p_source_instance_rec.LOCATION_TYPE_CODE;
27791 END IF;
27792
27793 IF (p_source_instance_rec.LOCATION_ID = FND_API.G_MISS_NUM) THEN
27794 l_new_instance_rec.LOCATION_ID := l_curr_instance_rec.LOCATION_ID;
27795 ELSE
27796 l_new_instance_rec.LOCATION_ID := p_source_instance_rec.LOCATION_ID;
27797 END IF;
27798
27799 IF (p_source_instance_rec.INV_ORGANIZATION_ID = FND_API.G_MISS_NUM) THEN
27800 l_new_instance_rec.INV_ORGANIZATION_ID := l_curr_instance_rec.INV_ORGANIZATION_ID;
27801 ELSE
27802 l_new_instance_rec.INV_ORGANIZATION_ID := p_source_instance_rec.INV_ORGANIZATION_ID;
27803 END IF;
27804
27805 IF (p_source_instance_rec.INV_SUBINVENTORY_NAME = FND_API.G_MISS_CHAR) THEN
27806 l_new_instance_rec.INV_SUBINVENTORY_NAME := l_curr_instance_rec.INV_SUBINVENTORY_NAME;
27807 ELSE
27808 l_new_instance_rec.INV_SUBINVENTORY_NAME := p_source_instance_rec.INV_SUBINVENTORY_NAME;
27809 END IF;
27810
27811 IF (p_source_instance_rec.INV_LOCATOR_ID = FND_API.G_MISS_NUM) THEN
27812 l_new_instance_rec.INV_LOCATOR_ID := l_curr_instance_rec.INV_LOCATOR_ID;
27813 ELSE
27814 l_new_instance_rec.INV_LOCATOR_ID := p_source_instance_rec.INV_LOCATOR_ID;
27815 END IF;
27816
27817 IF (p_source_instance_rec.PA_PROJECT_ID = FND_API.G_MISS_NUM) THEN
27818 l_new_instance_rec.PA_PROJECT_ID := l_curr_instance_rec.PA_PROJECT_ID;
27819 ELSE
27820 l_new_instance_rec.PA_PROJECT_ID := p_source_instance_rec.PA_PROJECT_ID;
27821 END IF;
27822
27823 IF (p_source_instance_rec.PA_PROJECT_TASK_ID = FND_API.G_MISS_NUM) THEN
27824 l_new_instance_rec.PA_PROJECT_TASK_ID := l_curr_instance_rec.PA_PROJECT_TASK_ID;
27825 ELSE
27826 l_new_instance_rec.PA_PROJECT_TASK_ID := p_source_instance_rec.PA_PROJECT_TASK_ID;
27827 END IF;
27828
27829 IF (p_source_instance_rec.IN_TRANSIT_ORDER_LINE_ID = FND_API.G_MISS_NUM) THEN
27830 l_new_instance_rec.IN_TRANSIT_ORDER_LINE_ID := l_curr_instance_rec.IN_TRANSIT_ORDER_LINE_ID;
27831 ELSE
27832 l_new_instance_rec.IN_TRANSIT_ORDER_LINE_ID := p_source_instance_rec.IN_TRANSIT_ORDER_LINE_ID;
27833 END IF;
27834
27835 IF (p_source_instance_rec.WIP_JOB_ID = FND_API.G_MISS_NUM) THEN
27836 l_new_instance_rec.WIP_JOB_ID := l_curr_instance_rec.WIP_JOB_ID;
27837 ELSE
27838 l_new_instance_rec.WIP_JOB_ID := p_source_instance_rec.WIP_JOB_ID;
27839 END IF;
27840
27841 IF (p_source_instance_rec.PO_ORDER_LINE_ID = FND_API.G_MISS_NUM) THEN
27842 l_new_instance_rec.PO_ORDER_LINE_ID := l_curr_instance_rec.PO_ORDER_LINE_ID;
27843 ELSE
27844 l_new_instance_rec.PO_ORDER_LINE_ID := p_source_instance_rec.PO_ORDER_LINE_ID;
27845 END IF;
27846
27847 IF (p_source_instance_rec.LAST_TXN_LINE_DETAIL_ID = FND_API.G_MISS_NUM) THEN
27848 l_new_instance_rec.LAST_TXN_LINE_DETAIL_ID := l_curr_instance_rec.LAST_TXN_LINE_DETAIL_ID;
27849 ELSE
27850 l_new_instance_rec.LAST_TXN_LINE_DETAIL_ID := p_source_instance_rec.LAST_TXN_LINE_DETAIL_ID;
27851 END IF;
27852
27853 IF (p_source_instance_rec.LAST_OE_RMA_LINE_ID = FND_API.G_MISS_NUM) THEN
27854 l_new_instance_rec.LAST_OE_RMA_LINE_ID := l_curr_instance_rec.LAST_OE_RMA_LINE_ID;
27855 ELSE
27856 l_new_instance_rec.LAST_OE_RMA_LINE_ID := p_source_instance_rec.LAST_OE_RMA_LINE_ID;
27857 END IF;
27858
27859 IF (p_source_instance_rec.LAST_PO_PO_LINE_ID = FND_API.G_MISS_NUM) THEN
27860 l_new_instance_rec.LAST_PO_PO_LINE_ID := l_curr_instance_rec.LAST_PO_PO_LINE_ID ;
27861 ELSE
27862 l_new_instance_rec.LAST_PO_PO_LINE_ID := p_source_instance_rec.LAST_PO_PO_LINE_ID ;
27863 END IF;
27864
27865 IF (p_source_instance_rec.LAST_OE_PO_NUMBER = FND_API.G_MISS_CHAR) THEN
27866 l_new_instance_rec.LAST_OE_PO_NUMBER := l_curr_instance_rec.LAST_OE_PO_NUMBER;
27867 ELSE
27868 l_new_instance_rec.LAST_OE_PO_NUMBER := p_source_instance_rec.LAST_OE_PO_NUMBER;
27869 END IF;
27870
27871 IF (p_source_instance_rec.LAST_WIP_JOB_ID = FND_API.G_MISS_NUM) THEN
27872 l_new_instance_rec.LAST_WIP_JOB_ID := l_curr_instance_rec.LAST_WIP_JOB_ID;
27873 ELSE
27874 l_new_instance_rec.LAST_WIP_JOB_ID := p_source_instance_rec.LAST_WIP_JOB_ID;
27875 END IF;
27876
27877 IF (p_source_instance_rec.LAST_PA_PROJECT_ID = FND_API.G_MISS_NUM) THEN
27878 l_new_instance_rec.LAST_PA_PROJECT_ID := l_curr_instance_rec.LAST_PA_PROJECT_ID;
27879 ELSE
27880 l_new_instance_rec.LAST_PA_PROJECT_ID := p_source_instance_rec.LAST_PA_PROJECT_ID;
27881 END IF;
27882
27883 IF (p_source_instance_rec.LAST_PA_TASK_ID = FND_API.G_MISS_NUM) THEN
27884 l_new_instance_rec.LAST_PA_TASK_ID := l_curr_instance_rec.LAST_PA_TASK_ID;
27885 ELSE
27886 l_new_instance_rec.LAST_PA_TASK_ID := p_source_instance_rec.LAST_PA_TASK_ID;
27887 END IF;
27888
27889 IF (p_source_instance_rec.LAST_OE_AGREEMENT_ID = FND_API.G_MISS_NUM) THEN
27890 l_new_instance_rec.LAST_OE_AGREEMENT_ID := l_curr_instance_rec.LAST_OE_AGREEMENT_ID;
27891 ELSE
27892 l_new_instance_rec.LAST_OE_AGREEMENT_ID := p_source_instance_rec.LAST_OE_AGREEMENT_ID;
27893 END IF;
27894
27895 IF (p_source_instance_rec.INSTALL_DATE = FND_API.G_MISS_DATE) THEN
27896 l_new_instance_rec.INSTALL_DATE := l_curr_instance_rec.INSTALL_DATE;
27897 ELSE
27898 l_new_instance_rec.INSTALL_DATE := p_source_instance_rec.INSTALL_DATE;
27899 END IF;
27900
27901 IF (p_source_instance_rec.MANUALLY_CREATED_FLAG = FND_API.G_MISS_CHAR) THEN
27902 l_new_instance_rec.MANUALLY_CREATED_FLAG := l_curr_instance_rec.MANUALLY_CREATED_FLAG;
27903 ELSE
27904 l_new_instance_rec.MANUALLY_CREATED_FLAG := p_source_instance_rec.MANUALLY_CREATED_FLAG;
27905 END IF;
27906
27907 IF (p_source_instance_rec.RETURN_BY_DATE = FND_API.G_MISS_DATE) THEN
27908 l_new_instance_rec.RETURN_BY_DATE := l_curr_instance_rec.RETURN_BY_DATE ;
27909 ELSE
27910 l_new_instance_rec.RETURN_BY_DATE := p_source_instance_rec.RETURN_BY_DATE ;
27911 END IF;
27912
27913 IF (p_source_instance_rec.ACTUAL_RETURN_DATE = FND_API.G_MISS_DATE) THEN
27914 l_new_instance_rec.ACTUAL_RETURN_DATE := l_curr_instance_rec.ACTUAL_RETURN_DATE;
27915 ELSE
27916 l_new_instance_rec.ACTUAL_RETURN_DATE := p_source_instance_rec.ACTUAL_RETURN_DATE;
27917 END IF;
27918
27919 IF (p_source_instance_rec.VERSION_LABEL = FND_API.G_MISS_CHAR) THEN
27920 l_new_instance_rec.VERSION_LABEL := l_curr_instance_rec.VERSION_LABEL;
27921 ELSE
27922 l_new_instance_rec.VERSION_LABEL := p_source_instance_rec.VERSION_LABEL;
27923 END IF;
27924
27925 IF (p_source_instance_rec.VERSION_LABEL_DESCRIPTION = FND_API.G_MISS_CHAR) THEN
27926 l_new_instance_rec.VERSION_LABEL_DESCRIPTION := l_curr_instance_rec.VERSION_LABEL_DESCRIPTION;
27927 ELSE
27928 l_new_instance_rec.VERSION_LABEL_DESCRIPTION := p_source_instance_rec.VERSION_LABEL_DESCRIPTION;
27929 END IF;
27930
27931 IF (p_source_instance_rec.CONTEXT = FND_API.G_MISS_CHAR) THEN
27932 l_new_instance_rec.CONTEXT := l_curr_instance_rec.CONTEXT;
27933 ELSE
27934 l_new_instance_rec.CONTEXT := p_source_instance_rec.CONTEXT;
27935 END IF;
27936
27937 IF (p_source_instance_rec.ATTRIBUTE1 = FND_API.G_MISS_CHAR) THEN
27938 l_new_instance_rec.ATTRIBUTE1 := l_curr_instance_rec.ATTRIBUTE1;
27939 ELSE
27940 l_new_instance_rec.ATTRIBUTE1 := p_source_instance_rec.ATTRIBUTE1;
27941 END IF;
27942
27943 IF (p_source_instance_rec.ATTRIBUTE2 = FND_API.G_MISS_CHAR) THEN
27944 l_new_instance_rec.ATTRIBUTE2 := l_curr_instance_rec.ATTRIBUTE2;
27945 ELSE
27946 l_new_instance_rec.ATTRIBUTE2 := p_source_instance_rec.ATTRIBUTE2;
27947 END IF;
27948
27949 IF (p_source_instance_rec.ATTRIBUTE3 = FND_API.G_MISS_CHAR) THEN
27950 l_new_instance_rec.ATTRIBUTE3 := l_curr_instance_rec.ATTRIBUTE3;
27951 ELSE
27952 l_new_instance_rec.ATTRIBUTE3 := p_source_instance_rec.ATTRIBUTE3;
27953 END IF;
27954
27955 IF (p_source_instance_rec.ATTRIBUTE4 = FND_API.G_MISS_CHAR) THEN
27956 l_new_instance_rec.ATTRIBUTE4 := l_curr_instance_rec.ATTRIBUTE4;
27957 ELSE
27958 l_new_instance_rec.ATTRIBUTE4 := p_source_instance_rec.ATTRIBUTE4;
27959 END IF;
27960
27961 IF (p_source_instance_rec.ATTRIBUTE5 = FND_API.G_MISS_CHAR) THEN
27962 l_new_instance_rec.ATTRIBUTE5 := l_curr_instance_rec.ATTRIBUTE5;
27963 ELSE
27964 l_new_instance_rec.ATTRIBUTE5 := p_source_instance_rec.ATTRIBUTE5;
27965 END IF;
27966
27967 IF (p_source_instance_rec.ATTRIBUTE6 = FND_API.G_MISS_CHAR) THEN
27968 l_new_instance_rec.ATTRIBUTE6 := l_curr_instance_rec.ATTRIBUTE6;
27969 ELSE
27970 l_new_instance_rec.ATTRIBUTE6 := p_source_instance_rec.ATTRIBUTE6;
27971 END IF;
27972
27973 IF (p_source_instance_rec.ATTRIBUTE7 = FND_API.G_MISS_CHAR) THEN
27974 l_new_instance_rec.ATTRIBUTE7 := l_curr_instance_rec.ATTRIBUTE7;
27975 ELSE
27976 l_new_instance_rec.ATTRIBUTE7 := p_source_instance_rec.ATTRIBUTE7;
27977 END IF;
27978
27979 IF (p_source_instance_rec.ATTRIBUTE8 = FND_API.G_MISS_CHAR) THEN
27980 l_new_instance_rec.ATTRIBUTE9 := l_curr_instance_rec.ATTRIBUTE9;
27981 ELSE
27982 l_new_instance_rec.ATTRIBUTE9 := p_source_instance_rec.ATTRIBUTE9;
27983 END IF;
27984
27985 IF (p_source_instance_rec.ATTRIBUTE10 = FND_API.G_MISS_CHAR) THEN
27986 l_new_instance_rec.ATTRIBUTE10 := l_curr_instance_rec.ATTRIBUTE10;
27987 ELSE
27988 l_new_instance_rec.ATTRIBUTE10 := p_source_instance_rec.ATTRIBUTE10;
27989 END IF;
27990
27991 IF (p_source_instance_rec.ATTRIBUTE11 = FND_API.G_MISS_CHAR) THEN
27992 l_new_instance_rec.ATTRIBUTE11 := l_curr_instance_rec.ATTRIBUTE11;
27993 ELSE
27994 l_new_instance_rec.ATTRIBUTE11 := p_source_instance_rec.ATTRIBUTE11;
27995 END IF;
27996
27997 IF (p_source_instance_rec.ATTRIBUTE12 = FND_API.G_MISS_CHAR) THEN
27998 l_new_instance_rec.ATTRIBUTE12 := l_curr_instance_rec.ATTRIBUTE12;
27999 ELSE
28000 l_new_instance_rec.ATTRIBUTE12 := p_source_instance_rec.ATTRIBUTE12;
28001 END IF;
28002
28003 IF (p_source_instance_rec.ATTRIBUTE13 = FND_API.G_MISS_CHAR) THEN
28004 l_new_instance_rec.ATTRIBUTE13 := l_curr_instance_rec.ATTRIBUTE13;
28005 ELSE
28006 l_new_instance_rec.ATTRIBUTE13 := p_source_instance_rec.ATTRIBUTE13;
28007 END IF;
28008
28009 IF (p_source_instance_rec.ATTRIBUTE14 = FND_API.G_MISS_CHAR) THEN
28010 l_new_instance_rec.ATTRIBUTE14 := l_curr_instance_rec.ATTRIBUTE14;
28011 ELSE
28012 l_new_instance_rec.ATTRIBUTE14 := p_source_instance_rec.ATTRIBUTE14;
28013 END IF;
28014
28015 IF (p_source_instance_rec.ATTRIBUTE15 = FND_API.G_MISS_CHAR) THEN
28016 l_new_instance_rec.ATTRIBUTE15 := l_curr_instance_rec.ATTRIBUTE15;
28017 ELSE
28018 l_new_instance_rec.ATTRIBUTE15 := p_source_instance_rec.ATTRIBUTE15;
28019 END IF;
28020
28021 IF (p_source_instance_rec.LAST_OE_ORDER_LINE_ID = FND_API.G_MISS_NUM) THEN
28022 l_new_instance_rec.LAST_OE_ORDER_LINE_ID := l_curr_instance_rec.LAST_OE_ORDER_LINE_ID;
28023 ELSE
28024 l_new_instance_rec.LAST_OE_ORDER_LINE_ID := p_source_instance_rec.LAST_OE_ORDER_LINE_ID;
28025 END IF;
28026
28027 IF (p_source_instance_rec.LAST_OE_RMA_LINE_ID = FND_API.G_MISS_NUM) THEN
28028 l_new_instance_rec.LAST_OE_RMA_LINE_ID := l_curr_instance_rec.LAST_OE_RMA_LINE_ID;
28029 ELSE
28030 l_new_instance_rec.LAST_OE_RMA_LINE_ID := p_source_instance_rec.LAST_OE_RMA_LINE_ID;
28031 END IF;
28032
28033 IF (p_source_instance_rec.LAST_PO_PO_LINE_ID = FND_API.G_MISS_NUM) THEN
28034 l_new_instance_rec.LAST_PO_PO_LINE_ID := l_curr_instance_rec.LAST_PO_PO_LINE_ID;
28035 ELSE
28036 l_new_instance_rec.LAST_PO_PO_LINE_ID := p_source_instance_rec.LAST_PO_PO_LINE_ID;
28037 END IF;
28038
28039 IF (p_source_instance_rec.LAST_OE_PO_NUMBER = FND_API.G_MISS_CHAR) THEN
28040 l_new_instance_rec.LAST_OE_PO_NUMBER := l_curr_instance_rec.LAST_OE_PO_NUMBER;
28041 ELSE
28042 l_new_instance_rec.LAST_OE_PO_NUMBER := p_source_instance_rec.LAST_OE_PO_NUMBER;
28043 END IF;
28044
28045 IF (p_source_instance_rec.LAST_WIP_JOB_ID = FND_API.G_MISS_NUM) THEN
28046 l_new_instance_rec.LAST_WIP_JOB_ID := l_curr_instance_rec.LAST_WIP_JOB_ID;
28047 ELSE
28048 l_new_instance_rec.LAST_WIP_JOB_ID := p_source_instance_rec.LAST_WIP_JOB_ID;
28049 END IF;
28050
28051 IF (p_source_instance_rec.LAST_PA_PROJECT_ID = FND_API.G_MISS_NUM) THEN
28052 l_new_instance_rec.LAST_PA_PROJECT_ID := l_curr_instance_rec.LAST_PA_PROJECT_ID;
28053 ELSE
28054 l_new_instance_rec.LAST_PA_PROJECT_ID := p_source_instance_rec.LAST_PA_PROJECT_ID;
28055 END IF;
28056
28057 IF (p_source_instance_rec.LAST_PA_TASK_ID = FND_API.G_MISS_NUM) THEN
28058 l_new_instance_rec.LAST_PA_TASK_ID := l_curr_instance_rec.LAST_PA_TASK_ID ;
28059 ELSE
28060 l_new_instance_rec.LAST_PA_TASK_ID := p_source_instance_rec.LAST_PA_TASK_ID ;
28061 END IF;
28062
28063 IF (p_source_instance_rec.LAST_OE_AGREEMENT_ID = FND_API.G_MISS_NUM) THEN
28064 l_new_instance_rec.LAST_OE_AGREEMENT_ID := l_curr_instance_rec.LAST_OE_AGREEMENT_ID ;
28065 ELSE
28066 l_new_instance_rec.LAST_OE_AGREEMENT_ID := p_source_instance_rec.LAST_OE_AGREEMENT_ID ;
28067 END IF;
28068
28069 IF (p_source_instance_rec.INSTALL_DATE = FND_API.G_MISS_DATE) THEN
28070 l_new_instance_rec.INSTALL_DATE := l_curr_instance_rec.INSTALL_DATE;
28071 ELSE
28072 l_new_instance_rec.INSTALL_DATE := p_source_instance_rec.INSTALL_DATE;
28073 END IF;
28074
28075 IF (p_source_instance_rec.RETURN_BY_DATE = FND_API.G_MISS_DATE) THEN
28076 l_new_instance_rec.RETURN_BY_DATE := l_curr_instance_rec.RETURN_BY_DATE;
28077 ELSE
28078 l_new_instance_rec.RETURN_BY_DATE := p_source_instance_rec.RETURN_BY_DATE;
28079 END IF;
28080
28081 IF (p_source_instance_rec.ACTUAL_RETURN_DATE = FND_API.G_MISS_DATE) THEN
28082 l_new_instance_rec.ACTUAL_RETURN_DATE := l_curr_instance_rec.ACTUAL_RETURN_DATE;
28083 ELSE
28084 l_new_instance_rec.ACTUAL_RETURN_DATE := p_source_instance_rec.ACTUAL_RETURN_DATE;
28085 END IF;
28086
28087 IF (p_source_instance_rec.instance_number = fnd_api.g_miss_char)
28088 THEN
28089 NULL;
28090 ELSE
28091 l_new_instance_rec.instance_number := p_source_instance_rec.instance_number;
28092 END IF;
28093
28094 IF (p_source_instance_rec.instance_description = fnd_api.g_miss_char)
28095 THEN
28096 NULL;
28097 ELSE
28098 l_new_instance_rec.instance_description := p_source_instance_rec.instance_description;
28099 END IF;
28100
28101 -- Set the non-copiable attributes as follows
28102 l_new_instance_rec.instance_id := FND_API.G_MISS_NUM;
28103
28104 -- uncommented for Bug 5348851
28105 l_new_instance_rec.instance_number := FND_API.G_MISS_CHAR;
28106
28107 --IF condition added for bug5248037--
28108 If p_txn_rec.transaction_type_id <> 1 Then
28109 l_new_instance_rec.active_start_date := nvl(p_source_instance_rec.active_start_date,sysdate);
28110 Else
28111 l_new_instance_rec.active_start_date := SYSDATE;
28112 End If;
28113
28114 l_new_instance_rec.MANUALLY_CREATED_FLAG := 'N';
28115 l_new_instance_rec.COMPLETENESS_FLAG := NULL;
28116 l_new_instance_rec.OBJECT_VERSION_NUMBER := 1;
28117
28118
28119 -- The following is added for bug 2944298.
28120 -- Value of instance_usage_code should be copied from the source instance
28121 -- only if it is called from split.
28122 IF p_call_from_split=fnd_api.g_true
28123 THEN
28124 -- Added by sguthiva for bug 2163942
28125 IF (p_source_instance_rec.instance_usage_code = FND_API.G_MISS_CHAR) THEN
28126 l_new_instance_rec.instance_usage_code := l_curr_instance_rec.instance_usage_code;
28127 ELSE
28128 l_new_instance_rec.instance_usage_code := p_source_instance_rec.instance_usage_code;
28129 END IF;
28130 ELSE
28131 l_obj_id:=NULL;
28132 csi_ii_relationships_pvt.Get_Top_Most_Parent
28133 ( p_subject_id => p_source_instance_rec.instance_id,
28134 p_rel_type_code => 'COMPONENT-OF',
28135 p_object_id => l_obj_id
28136 );
28137 --
28138 IF l_obj_id <> p_source_instance_rec.instance_id THEN
28139 BEGIN
28140 SELECT instance_usage_code
28141 INTO l_new_instance_rec.instance_usage_code
28142 FROM csi_item_instances
28143 WHERE instance_id=l_obj_id;
28144 EXCEPTION
28145 WHEN NO_DATA_FOUND THEN
28146 NULL;
28147 END;
28148 ELSE
28149 l_new_instance_rec.instance_usage_code := l_curr_instance_rec.instance_usage_code;
28150 END IF;
28151 END IF;
28152 -- End addition by sguthiva for bug 2163942
28153 -- Added by sguthiva for bug 2230264
28154
28155 -- Added by sk for bug 2230264
28156 IF (p_source_instance_rec.vld_organization_id = FND_API.G_MISS_NUM) THEN
28157 l_new_instance_rec.vld_organization_id := l_vld_org_id;
28158 ELSE
28159 l_new_instance_rec.vld_organization_id := p_source_instance_rec.vld_organization_id;
28160 END IF;
28161
28162 IF (p_source_instance_rec.install_location_type_code = FND_API.G_MISS_CHAR) THEN
28163 l_new_instance_rec.install_location_type_code := l_curr_instance_rec.install_location_type_code;
28164 ELSE
28165 l_new_instance_rec.install_location_type_code := p_source_instance_rec.install_location_type_code;
28166 END IF;
28167
28168 IF (p_source_instance_rec.install_location_id = FND_API.G_MISS_NUM) THEN
28169 l_new_instance_rec.install_location_id := l_curr_instance_rec.install_location_id;
28170 ELSE
28171 l_new_instance_rec.install_location_id := p_source_instance_rec.install_location_id;
28172 END IF;
28173 -- End addition by sk for bug 2230264
28174
28175 --start of code for eam integration--
28176 IF (p_source_instance_rec.NETWORK_ASSET_FLAG = FND_API.G_MISS_CHAR) THEN
28177 l_new_instance_rec.NETWORK_ASSET_FLAG := l_curr_instance_rec.NETWORK_ASSET_FLAG;
28178 ELSE
28179 l_new_instance_rec.NETWORK_ASSET_FLAG := p_source_instance_rec.NETWORK_ASSET_FLAG;
28180 END IF;
28181
28182 IF (p_source_instance_rec.MAINTAINABLE_FLAG = FND_API.G_MISS_CHAR) THEN
28183 l_new_instance_rec.MAINTAINABLE_FLAG := l_curr_instance_rec.MAINTAINABLE_FLAG;
28184 ELSE
28185 l_new_instance_rec.MAINTAINABLE_FLAG := p_source_instance_rec.MAINTAINABLE_FLAG;
28186 END IF;
28187
28188 IF (p_source_instance_rec.PN_LOCATION_ID = FND_API.G_MISS_NUM) THEN
28189 l_new_instance_rec.PN_LOCATION_ID := l_curr_instance_rec.PN_LOCATION_ID;
28190 ELSE
28191 l_new_instance_rec.PN_LOCATION_ID := p_source_instance_rec.PN_LOCATION_ID;
28192 END IF;
28193
28194 IF (p_source_instance_rec.ASSET_CRITICALITY_CODE = FND_API.G_MISS_CHAR) THEN
28195 l_new_instance_rec.ASSET_CRITICALITY_CODE := l_curr_instance_rec.ASSET_CRITICALITY_CODE;
28196 ELSE
28197 l_new_instance_rec.ASSET_CRITICALITY_CODE := p_source_instance_rec.ASSET_CRITICALITY_CODE;
28198 END IF;
28199
28200 IF (p_source_instance_rec.CATEGORY_ID = FND_API.G_MISS_NUM) THEN
28201 l_new_instance_rec.CATEGORY_ID := l_curr_instance_rec.CATEGORY_ID;
28202 ELSE
28203 l_new_instance_rec.CATEGORY_ID := p_source_instance_rec.CATEGORY_ID;
28204 END IF;
28205
28206 IF (p_source_instance_rec.EQUIPMENT_GEN_OBJECT_ID = FND_API.G_MISS_NUM) THEN
28207 l_new_instance_rec.EQUIPMENT_GEN_OBJECT_ID := l_curr_instance_rec.EQUIPMENT_GEN_OBJECT_ID;
28208 ELSE
28209 l_new_instance_rec.EQUIPMENT_GEN_OBJECT_ID := p_source_instance_rec.EQUIPMENT_GEN_OBJECT_ID;
28210 END IF;
28211
28212 IF (p_source_instance_rec.INSTANTIATION_FLAG = FND_API.G_MISS_CHAR) THEN
28213 l_new_instance_rec.INSTANTIATION_FLAG := l_curr_instance_rec.INSTANTIATION_FLAG;
28214 ELSE
28215 l_new_instance_rec.INSTANTIATION_FLAG := p_source_instance_rec.INSTANTIATION_FLAG;
28216 END IF;
28217
28218 IF (p_source_instance_rec.LINEAR_LOCATION_ID = FND_API.G_MISS_NUM) THEN
28219 l_new_instance_rec.LINEAR_LOCATION_ID := l_curr_instance_rec.LINEAR_LOCATION_ID ;
28220 ELSE
28221 l_new_instance_rec.LINEAR_LOCATION_ID := p_source_instance_rec.LINEAR_LOCATION_ID ;
28222 END IF;
28223
28224 IF (p_source_instance_rec.OPERATIONAL_LOG_FLAG = FND_API.G_MISS_CHAR) THEN
28225 l_new_instance_rec.OPERATIONAL_LOG_FLAG := l_curr_instance_rec.OPERATIONAL_LOG_FLAG;
28226 ELSE
28227 l_new_instance_rec.OPERATIONAL_LOG_FLAG := p_source_instance_rec.OPERATIONAL_LOG_FLAG;
28228 END IF;
28229
28230 IF (p_source_instance_rec.CHECKIN_STATUS = FND_API.G_MISS_NUM) THEN
28231 l_new_instance_rec.CHECKIN_STATUS := l_curr_instance_rec.CHECKIN_STATUS;
28232 ELSE
28233 l_new_instance_rec.CHECKIN_STATUS := p_source_instance_rec.CHECKIN_STATUS;
28234 END IF;
28235
28236 IF (p_source_instance_rec.SUPPLIER_WARRANTY_EXP_DATE = FND_API.G_MISS_DATE) THEN
28237 l_new_instance_rec.SUPPLIER_WARRANTY_EXP_DATE := l_curr_instance_rec.SUPPLIER_WARRANTY_EXP_DATE;
28238 ELSE
28239 l_new_instance_rec.SUPPLIER_WARRANTY_EXP_DATE := p_source_instance_rec.SUPPLIER_WARRANTY_EXP_DATE;
28240 END IF;
28241
28242 IF (p_source_instance_rec.ATTRIBUTE16 = FND_API.G_MISS_CHAR) THEN
28243 l_new_instance_rec.ATTRIBUTE16 := l_curr_instance_rec.ATTRIBUTE16;
28244 ELSE
28245 l_new_instance_rec.ATTRIBUTE16 := p_source_instance_rec.ATTRIBUTE16;
28246 END IF;
28247
28248 IF (p_source_instance_rec.ATTRIBUTE17 = FND_API.G_MISS_CHAR) THEN
28249 l_new_instance_rec.ATTRIBUTE17 := l_curr_instance_rec.ATTRIBUTE17;
28250 ELSE
28251 l_new_instance_rec.ATTRIBUTE17 := p_source_instance_rec.ATTRIBUTE17;
28252 END IF;
28253
28254 IF (p_source_instance_rec.ATTRIBUTE18 = FND_API.G_MISS_CHAR) THEN
28255 l_new_instance_rec.ATTRIBUTE18 := l_curr_instance_rec.ATTRIBUTE18;
28256 ELSE
28257 l_new_instance_rec.ATTRIBUTE18 := p_source_instance_rec.ATTRIBUTE18;
28258 END IF;
28259
28260 IF (p_source_instance_rec.ATTRIBUTE19 = FND_API.G_MISS_CHAR) THEN
28261 l_new_instance_rec.ATTRIBUTE19 := l_curr_instance_rec.ATTRIBUTE19;
28262 ELSE
28263 l_new_instance_rec.ATTRIBUTE19 := p_source_instance_rec.ATTRIBUTE19;
28264 END IF;
28265
28266 IF (p_source_instance_rec.ATTRIBUTE20 = FND_API.G_MISS_CHAR) THEN
28267 l_new_instance_rec.ATTRIBUTE20 := l_curr_instance_rec.ATTRIBUTE20;
28268 ELSE
28269 l_new_instance_rec.ATTRIBUTE20 := p_source_instance_rec.ATTRIBUTE20;
28270 END IF;
28271
28272 IF (p_source_instance_rec.ATTRIBUTE21 = FND_API.G_MISS_CHAR) THEN
28273 l_new_instance_rec.ATTRIBUTE21 := l_curr_instance_rec.ATTRIBUTE21;
28274 ELSE
28275 l_new_instance_rec.ATTRIBUTE21 := p_source_instance_rec.ATTRIBUTE21;
28276 END IF;
28277
28278 IF (p_source_instance_rec.ATTRIBUTE22 = FND_API.G_MISS_CHAR) THEN
28279 l_new_instance_rec.ATTRIBUTE22 := l_curr_instance_rec.ATTRIBUTE22;
28280 ELSE
28281 l_new_instance_rec.ATTRIBUTE22 := p_source_instance_rec.ATTRIBUTE22;
28282 END IF;
28283
28284 IF (p_source_instance_rec.ATTRIBUTE23 = FND_API.G_MISS_CHAR) THEN
28285 l_new_instance_rec.ATTRIBUTE23 := l_curr_instance_rec.ATTRIBUTE23;
28286 ELSE
28287 l_new_instance_rec.ATTRIBUTE23 := p_source_instance_rec.ATTRIBUTE23;
28288 END IF;
28289
28290 IF (p_source_instance_rec.ATTRIBUTE24 = FND_API.G_MISS_CHAR) THEN
28291 l_new_instance_rec.ATTRIBUTE24 := l_curr_instance_rec.ATTRIBUTE24;
28292 ELSE
28293 l_new_instance_rec.ATTRIBUTE24 := p_source_instance_rec.ATTRIBUTE24;
28294 END IF;
28295
28296 IF (p_source_instance_rec.ATTRIBUTE25 = FND_API.G_MISS_CHAR) THEN
28297 l_new_instance_rec.ATTRIBUTE25 := l_curr_instance_rec.ATTRIBUTE25;
28298 ELSE
28299 l_new_instance_rec.ATTRIBUTE25 := p_source_instance_rec.ATTRIBUTE25;
28300 END IF;
28301
28302 IF (p_source_instance_rec.ATTRIBUTE26 = FND_API.G_MISS_CHAR) THEN
28303 l_new_instance_rec.ATTRIBUTE26 := l_curr_instance_rec.ATTRIBUTE26;
28304 ELSE
28305 l_new_instance_rec.ATTRIBUTE26 := p_source_instance_rec.ATTRIBUTE26;
28306 END IF;
28307
28308 IF (p_source_instance_rec.ATTRIBUTE27 = FND_API.G_MISS_CHAR) THEN
28309 l_new_instance_rec.ATTRIBUTE27 := l_curr_instance_rec.ATTRIBUTE27;
28310 ELSE
28311 l_new_instance_rec.ATTRIBUTE27 := p_source_instance_rec.ATTRIBUTE27;
28312 END IF;
28313
28314 IF (p_source_instance_rec.ATTRIBUTE28 = FND_API.G_MISS_CHAR) THEN
28315 l_new_instance_rec.ATTRIBUTE28 := l_curr_instance_rec.ATTRIBUTE28;
28316 ELSE
28317 l_new_instance_rec.ATTRIBUTE28 := p_source_instance_rec.ATTRIBUTE28;
28318 END IF;
28319
28320 IF (p_source_instance_rec.ATTRIBUTE29 = FND_API.G_MISS_CHAR) THEN
28321 l_new_instance_rec.ATTRIBUTE29 := l_curr_instance_rec.ATTRIBUTE29;
28322 ELSE
28323 l_new_instance_rec.ATTRIBUTE29 := p_source_instance_rec.ATTRIBUTE29;
28324 END IF;
28325
28326 IF (p_source_instance_rec.ATTRIBUTE30 = FND_API.G_MISS_CHAR) THEN
28327 l_new_instance_rec.ATTRIBUTE30 := l_curr_instance_rec.ATTRIBUTE30;
28328 ELSE
28329 l_new_instance_rec.ATTRIBUTE30 := p_source_instance_rec.ATTRIBUTE30;
28330 END IF;
28331
28332 --end of code for eam integration--
28333
28334 -- Addition of columns for FA Integration
28335 IF (p_source_instance_rec.PAYABLES_UNIT_PRICE = FND_API.G_MISS_NUM) THEN
28336 l_new_instance_rec.PAYABLES_UNIT_PRICE := l_curr_instance_rec.PAYABLES_UNIT_PRICE;
28337 ELSE
28338 l_new_instance_rec.PAYABLES_UNIT_PRICE := p_source_instance_rec.PAYABLES_UNIT_PRICE;
28339 END IF;
28340
28341 IF (p_source_instance_rec.PAYABLES_CURRENCY_CODE = FND_API.G_MISS_CHAR) THEN
28342 l_new_instance_rec.PAYABLES_CURRENCY_CODE := l_curr_instance_rec.PAYABLES_CURRENCY_CODE;
28343 ELSE
28344 l_new_instance_rec.PAYABLES_CURRENCY_CODE := p_source_instance_rec.PAYABLES_CURRENCY_CODE;
28345 END IF;
28346
28347 IF (p_source_instance_rec.PURCHASE_UNIT_PRICE = FND_API.G_MISS_NUM) THEN
28348 l_new_instance_rec.PURCHASE_UNIT_PRICE := l_curr_instance_rec.PURCHASE_UNIT_PRICE;
28349 ELSE
28350 l_new_instance_rec.PURCHASE_UNIT_PRICE := p_source_instance_rec.PURCHASE_UNIT_PRICE;
28351 END IF;
28352
28353 IF (p_source_instance_rec.PURCHASE_CURRENCY_CODE = FND_API.G_MISS_CHAR) THEN
28354 l_new_instance_rec.PURCHASE_CURRENCY_CODE := l_curr_instance_rec.PURCHASE_CURRENCY_CODE;
28355 ELSE
28356 l_new_instance_rec.PURCHASE_CURRENCY_CODE := p_source_instance_rec.PURCHASE_CURRENCY_CODE;
28357 END IF;
28358
28359 IF (p_source_instance_rec.SALES_UNIT_PRICE = FND_API.G_MISS_NUM) THEN
28360 l_new_instance_rec.SALES_UNIT_PRICE := l_curr_instance_rec.SALES_UNIT_PRICE;
28361 ELSE
28362 l_new_instance_rec.SALES_UNIT_PRICE := p_source_instance_rec.SALES_UNIT_PRICE;
28363 END IF;
28364
28365 IF (p_source_instance_rec.SALES_CURRENCY_CODE = FND_API.G_MISS_CHAR) THEN
28366 l_new_instance_rec.SALES_CURRENCY_CODE := l_curr_instance_rec.SALES_CURRENCY_CODE;
28367 ELSE
28368 l_new_instance_rec.SALES_CURRENCY_CODE := p_source_instance_rec.SALES_CURRENCY_CODE;
28369 END IF;
28370
28371 IF (p_source_instance_rec.OPERATIONAL_STATUS_CODE = FND_API.G_MISS_CHAR) THEN
28372 l_new_instance_rec.OPERATIONAL_STATUS_CODE := l_curr_instance_rec.OPERATIONAL_STATUS_CODE;
28373 ELSE
28374 l_new_instance_rec.OPERATIONAL_STATUS_CODE := p_source_instance_rec.OPERATIONAL_STATUS_CODE;
28375 END IF;
28376 -- End addition of columns for FA Integration
28377 -- Call Create_item_instance to create the new instance in csi_item_instances table.
28378
28379 CSI_ITEM_INSTANCE_PVT.create_item_instance
28380 ( p_api_version => p_api_version
28381 ,p_commit => p_commit
28382 ,p_init_msg_list => p_init_msg_list
28383 ,p_validation_level => p_validation_level
28384 ,p_instance_rec => l_new_instance_rec
28385 ,p_txn_rec => p_txn_rec
28386 ,p_party_tbl => l_party_tbl
28387 ,p_asset_tbl => l_asset_tbl
28388 ,x_return_status => x_return_status
28389 ,x_msg_count => x_msg_count
28390 ,x_msg_data => x_msg_data
28391 ,p_item_attribute_tbl => l_item_attribute_tbl
28392 ,p_location_tbl => l_location_tbl
28393 ,p_generic_id_tbl => l_generic_id_tbl
28394 ,p_lookup_tbl => l_lookup_tbl
28395 ,p_ins_count_rec => l_ins_count_rec
28396 );
28397
28398 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
28399 l_msg_index := 1;
28400 l_msg_count := x_msg_count;
28401 WHILE l_msg_count > 0 LOOP
28402 x_msg_data := FND_MSG_PUB.GET
28403 (l_msg_index,
28404 FND_API.G_FALSE );
28405
28406 csi_gen_utility_pvt.put_line('message data = '||x_msg_data);
28407 l_msg_index := l_msg_index + 1;
28408 l_msg_count := l_msg_count - 1;
28409 END LOOP;
28410 RAISE FND_API.G_EXC_ERROR;
28411 ELSE
28412 x_new_instance_tbl(1) := l_new_instance_rec;
28413 END IF;
28414
28415
28416 -- Create a party or parties for the new instances
28417
28418 IF l_party_tbl.COUNT > 0 THEN
28419 FOR tab_row_party IN l_party_tbl.FIRST .. l_party_tbl.LAST
28420 LOOP
28421 IF l_party_tbl.EXISTS(tab_row_party) THEN
28422 -- Build account query rec
28423 l_party_account_query_rec.instance_party_id := l_party_tbl(tab_row_party).instance_party_id ;
28424 l_party_account_query_rec.ip_account_id := FND_API.G_MISS_NUM;
28425 l_party_account_query_rec.party_account_id := FND_API.G_MISS_NUM;
28426 l_party_account_query_rec.relationship_type_code := FND_API.G_MISS_CHAR;
28427
28428 -- Get party accounts
28429
28430 csi_party_relationships_pub.get_inst_party_accounts
28431 ( p_api_version => p_api_version
28432 ,p_commit => p_commit
28433 ,p_init_msg_list => p_init_msg_list
28434 ,p_validation_level => p_validation_level
28435 ,p_account_query_rec => l_party_account_query_rec
28436 ,p_resolve_id_columns => fnd_api.g_true
28437 ,p_time_stamp => NULL
28438 ,x_account_header_tbl => l_account_header_tbl
28439 ,x_return_status => x_return_status
28440 ,x_msg_count => x_msg_count
28441 ,x_msg_data => x_msg_data);
28442
28443 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
28444 l_msg_index := 1;
28445 l_msg_count := x_msg_count;
28446 WHILE l_msg_count > 0 LOOP
28447 x_msg_data := FND_MSG_PUB.GET
28448 (l_msg_index,
28449 FND_API.G_FALSE );
28450 csi_gen_utility_pvt.put_line('message data = '||x_msg_data);
28451 l_msg_index := l_msg_index + 1;
28452 l_msg_count := l_msg_count - 1;
28453 END LOOP;
28454 RAISE FND_API.G_EXC_ERROR;
28455 END IF;
28456
28457
28458 IF l_account_header_tbl.COUNT > 0 THEN /***********Second Change 07/27/01 - RK**********/
28459 FOR tab_row_party IN l_account_header_tbl.FIRST .. l_account_header_tbl.LAST
28460 LOOP
28461 IF l_account_header_tbl.EXISTS(tab_row_party) THEN
28462 -- Donot copy accounts if user says so
28463 IF (p_copy_accounts <> fnd_api.g_true) THEN
28464 IF (l_account_header_tbl(tab_row_party).RELATIONSHIP_TYPE_CODE = 'OWNER') THEN
28465 l_party_account_tbl(tab_row_party).ip_account_id := l_account_header_tbl(tab_row_party).ip_account_id;
28466 l_party_account_tbl(tab_row_party).instance_party_id := l_account_header_tbl(tab_row_party).instance_party_id;
28467 l_party_account_tbl(tab_row_party).party_account_id := l_account_header_tbl(tab_row_party).party_account_id;
28468 l_party_account_tbl(tab_row_party).relationship_type_code := l_account_header_tbl(tab_row_party).relationship_type_code;
28469 l_party_account_tbl(tab_row_party).bill_to_address := l_account_header_tbl(tab_row_party).bill_to_address;
28470 l_party_account_tbl(tab_row_party).ship_to_address := l_account_header_tbl(tab_row_party).ship_to_address;
28471 l_party_account_tbl(tab_row_party).active_start_date := l_account_header_tbl(tab_row_party).active_start_date;
28472 l_party_account_tbl(tab_row_party).active_end_date := l_account_header_tbl(tab_row_party).active_end_date;
28473 l_party_account_tbl(tab_row_party).context := l_account_header_tbl(tab_row_party).context;
28474 l_party_account_tbl(tab_row_party).attribute1 := l_account_header_tbl(tab_row_party).attribute1;
28475 l_party_account_tbl(tab_row_party).attribute2 := l_account_header_tbl(tab_row_party).attribute2;
28476 l_party_account_tbl(tab_row_party).attribute3 := l_account_header_tbl(tab_row_party).attribute3;
28477 l_party_account_tbl(tab_row_party).attribute4 := l_account_header_tbl(tab_row_party).attribute4;
28478 l_party_account_tbl(tab_row_party).attribute5 := l_account_header_tbl(tab_row_party).attribute5;
28479 l_party_account_tbl(tab_row_party).attribute6 := l_account_header_tbl(tab_row_party).attribute6;
28480 l_party_account_tbl(tab_row_party).attribute7 := l_account_header_tbl(tab_row_party).attribute7;
28481 l_party_account_tbl(tab_row_party).attribute8 := l_account_header_tbl(tab_row_party).attribute8;
28482 l_party_account_tbl(tab_row_party).attribute9 := l_account_header_tbl(tab_row_party).attribute9;
28483 l_party_account_tbl(tab_row_party).attribute10 := l_account_header_tbl(tab_row_party).attribute10;
28484 l_party_account_tbl(tab_row_party).attribute11 := l_account_header_tbl(tab_row_party).attribute11;
28485 l_party_account_tbl(tab_row_party).attribute12 := l_account_header_tbl(tab_row_party).attribute12;
28486 l_party_account_tbl(tab_row_party).attribute13 := l_account_header_tbl(tab_row_party).attribute13;
28487 l_party_account_tbl(tab_row_party).attribute14 := l_account_header_tbl(tab_row_party).attribute14;
28488 l_party_account_tbl(tab_row_party).attribute15 := l_account_header_tbl(tab_row_party).attribute15;
28489 l_party_account_tbl(tab_row_party).object_version_number := l_account_header_tbl(tab_row_party).object_version_number;
28490
28491 END IF;
28492 ELSE
28493 l_party_account_tbl(tab_row_party).ip_account_id := l_account_header_tbl(tab_row_party).ip_account_id;
28494 l_party_account_tbl(tab_row_party).instance_party_id := l_account_header_tbl(tab_row_party).instance_party_id;
28495 l_party_account_tbl(tab_row_party).party_account_id := l_account_header_tbl(tab_row_party).party_account_id;
28496 l_party_account_tbl(tab_row_party).relationship_type_code := l_account_header_tbl(tab_row_party).relationship_type_code;
28497 l_party_account_tbl(tab_row_party).bill_to_address := l_account_header_tbl(tab_row_party).bill_to_address;
28498 l_party_account_tbl(tab_row_party).ship_to_address := l_account_header_tbl(tab_row_party).ship_to_address;
28499 l_party_account_tbl(tab_row_party).active_start_date := l_account_header_tbl(tab_row_party).active_start_date;
28500 l_party_account_tbl(tab_row_party).active_end_date := l_account_header_tbl(tab_row_party).active_end_date;
28501 l_party_account_tbl(tab_row_party).context := l_account_header_tbl(tab_row_party).context;
28502 l_party_account_tbl(tab_row_party).attribute1 := l_account_header_tbl(tab_row_party).attribute1;
28503 l_party_account_tbl(tab_row_party).attribute2 := l_account_header_tbl(tab_row_party).attribute2;
28504 l_party_account_tbl(tab_row_party).attribute3 := l_account_header_tbl(tab_row_party).attribute3;
28505 l_party_account_tbl(tab_row_party).attribute4 := l_account_header_tbl(tab_row_party).attribute4;
28506 l_party_account_tbl(tab_row_party).attribute5 := l_account_header_tbl(tab_row_party).attribute5;
28507 l_party_account_tbl(tab_row_party).attribute6 := l_account_header_tbl(tab_row_party).attribute6;
28508 l_party_account_tbl(tab_row_party).attribute7 := l_account_header_tbl(tab_row_party).attribute7;
28509 l_party_account_tbl(tab_row_party).attribute8 := l_account_header_tbl(tab_row_party).attribute8;
28510 l_party_account_tbl(tab_row_party).attribute9 := l_account_header_tbl(tab_row_party).attribute9;
28511 l_party_account_tbl(tab_row_party).attribute10 := l_account_header_tbl(tab_row_party).attribute10;
28512 l_party_account_tbl(tab_row_party).attribute11 := l_account_header_tbl(tab_row_party).attribute11;
28513 l_party_account_tbl(tab_row_party).attribute12 := l_account_header_tbl(tab_row_party).attribute12;
28514 l_party_account_tbl(tab_row_party).attribute13 := l_account_header_tbl(tab_row_party).attribute13;
28515 l_party_account_tbl(tab_row_party).attribute14 := l_account_header_tbl(tab_row_party).attribute14;
28516 l_party_account_tbl(tab_row_party).attribute15 := l_account_header_tbl(tab_row_party).attribute15;
28517 l_party_account_tbl(tab_row_party).object_version_number := l_account_header_tbl(tab_row_party).object_version_number;
28518
28519 END IF;
28520 END IF;
28521 END LOOP;
28522 END IF; --l_account_header_tbl.COUNT > 0
28523
28524 -- Empty the account_header table
28525 l_account_header_tbl.DELETE;
28526 -- Build the party table
28527 l_party_tbl(tab_row_party).instance_party_id := FND_API.G_MISS_NUM;
28528 l_party_tbl(tab_row_party).INSTANCE_ID := l_new_instance_rec.instance_id;
28529 l_party_tbl(tab_row_party).ACTIVE_START_DATE := FND_API.G_MISS_DATE;
28530 l_party_tbl(tab_row_party).ACTIVE_END_DATE := FND_API.G_MISS_DATE;
28531 -- Build the temporary party table with only one record
28532 -- for and grab all its accounts
28533 l_party_input_tbl(1) := l_party_tbl(tab_row_party);
28534
28535
28536 -- Build its corresponding accounts
28537
28538 IF l_party_account_tbl.COUNT > 0 THEN
28539 FOR tab_row_acct IN l_party_account_tbl.FIRST .. l_party_account_tbl.LAST
28540 LOOP
28541 -- l_party_account_tbl(tab_row_acct).parent_tbl_index := tab_row_party;
28542 l_party_account_tbl(tab_row_acct).parent_tbl_index := 1;
28543 l_party_account_tbl(tab_row_acct).ip_account_id := FND_API.G_MISS_NUM;
28544 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;
28545 l_party_account_tbl(tab_row_acct).ACTIVE_START_DATE := FND_API.G_MISS_DATE;
28546 l_party_account_tbl(tab_row_acct).ACTIVE_END_DATE := FND_API.G_MISS_DATE;
28547 l_party_account_tbl(tab_row_acct).call_contracts := FND_API.G_FALSE; -- Added for 2907563
28548 END LOOP;
28549 END IF;
28550 -- Create instance party relationship and its accounts
28551
28552 csi_party_relationships_pub.create_inst_party_relationship
28553 ( p_api_version => p_api_version
28554 ,p_commit => p_commit
28555 ,p_init_msg_list => p_init_msg_list
28556 ,p_validation_level => p_validation_level
28557 ,p_party_tbl => l_party_input_tbl
28558 ,p_party_account_tbl => l_party_account_tbl
28559 ,p_txn_rec => p_txn_rec
28560 ,p_oks_txn_inst_tbl => px_oks_txn_inst_tbl
28561 ,x_return_status => x_return_status
28562 ,x_msg_count => x_msg_count
28563 ,x_msg_data => x_msg_data
28564 );
28565
28566 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
28567 l_msg_index := 1;
28568 l_msg_count := x_msg_count;
28569 WHILE l_msg_count > 0 LOOP
28570 x_msg_data := FND_MSG_PUB.GET
28571 (l_msg_index,
28572 FND_API.G_FALSE );
28573
28574 csi_gen_utility_pvt.put_line('message data = '||x_msg_data);
28575 l_msg_index := l_msg_index + 1;
28576 l_msg_count := l_msg_count - 1;
28577 END LOOP;
28578 RAISE FND_API.G_EXC_ERROR;
28579 END IF;
28580 -- Grab the new parties created in a new table
28581 l_new_party_tbl(tab_row_party) := l_party_input_tbl(1);
28582 -- Empty the party table
28583 l_party_input_tbl.DELETE;
28584 -- Empty the account table
28585 l_party_account_tbl.DELETE;
28586
28587 END IF;
28588 END LOOP;
28589 END IF;
28590 -- ASH
28591
28592 -- Create a contact or contacts for the new instances
28593 IF (p_copy_contacts = fnd_api.g_true) THEN
28594 IF l_contact_tbl.COUNT > 0 THEN
28595 FOR tab_row_contact IN l_contact_tbl.FIRST .. l_contact_tbl.LAST
28596 LOOP
28597 IF l_contact_tbl.EXISTS(tab_row_contact) THEN
28598
28599 -- Find the contact_ip_id which was just created
28600 -- for this contact
28601 IF (l_original_party_tbl.COUNT > 0) THEN
28602 FOR tab_row_party IN l_original_party_tbl.FIRST .. l_original_party_tbl.LAST
28603 LOOP
28604 IF l_original_party_tbl.EXISTS(tab_row_party) THEN
28605 IF (l_original_party_tbl(tab_row_party).instance_party_id
28606 = l_contact_tbl(tab_row_contact).contact_ip_id )
28607 THEN
28608 l_contact_tbl(tab_row_contact).contact_ip_id :=
28609 l_new_party_tbl(tab_row_party).instance_party_id;
28610 l_contact_found_flag := TRUE;
28611 END IF;
28612 END IF;
28613 END LOOP;
28614 END IF;
28615 -- Check if the contact_ip_id exists
28616 IF ((l_contact_tbl(tab_row_contact).contact_ip_id IS NULL) OR
28617 (l_contact_tbl(tab_row_contact).contact_ip_id
28618 = FND_API.G_MISS_NUM)
28619 OR NOT(l_contact_found_flag) ) THEN
28620 FND_MESSAGE.SET_NAME('CSI','CSI_API_CONTACT_IP_ID_NULL');
28621 FND_MESSAGE.SET_TOKEN('INSTANCE_PARTY_ID',
28622 l_contact_tbl(tab_row_contact).instance_party_id);
28623 FND_MSG_PUB.Add;
28624 RAISE FND_API.G_EXC_ERROR;
28625 END IF;
28626
28627 -- Build other fiels of the contact table
28628 l_contact_tbl(tab_row_contact).instance_party_id := FND_API.G_MISS_NUM;
28629 l_contact_tbl(tab_row_contact).contact_flag := 'Y';
28630 l_contact_tbl(tab_row_contact).INSTANCE_ID := l_new_instance_rec.instance_id;
28631 l_contact_tbl(tab_row_contact).ACTIVE_START_DATE := FND_API.G_MISS_DATE;
28632 l_contact_tbl(tab_row_contact).ACTIVE_END_DATE := FND_API.G_MISS_DATE;
28633 -- Build the temporary party table with only one record
28634 -- for and grab all its accounts
28635 l_contact_input_tbl(1) := l_contact_tbl(tab_row_contact);
28636
28637 -- Create instance party relationship and its accounts
28638 csi_party_relationships_pub.create_inst_party_relationship
28639 ( p_api_version => p_api_version
28640 ,p_commit => p_commit
28641 ,p_init_msg_list => p_init_msg_list
28642 ,p_validation_level => p_validation_level
28643 ,p_party_tbl => l_contact_input_tbl
28644 ,p_party_account_tbl => l_contact_account_tbl
28645 ,p_txn_rec => p_txn_rec
28646 ,p_oks_txn_inst_tbl => px_oks_txn_inst_tbl
28647 ,x_return_status => x_return_status
28648 ,x_msg_count => x_msg_count
28649 ,x_msg_data => x_msg_data
28650 );
28651 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
28652 l_msg_index := 1;
28653 l_msg_count := x_msg_count;
28654 WHILE l_msg_count > 0 LOOP
28655 x_msg_data := FND_MSG_PUB.GET
28656 (l_msg_index,
28657 FND_API.G_FALSE );
28658 csi_gen_utility_pvt.put_line('message data = '||x_msg_data);
28659 l_msg_index := l_msg_index + 1;
28660 l_msg_count := l_msg_count - 1;
28661 END LOOP;
28662 RAISE FND_API.G_EXC_ERROR;
28663 END IF;
28664 -- Grab the new parties created in a new table
28665 l_new_contact_tbl(tab_row_contact) := l_contact_input_tbl(1);
28666 -- Empty the party table
28667 l_contact_input_tbl.DELETE;
28668 -- Empty the account table
28669 l_contact_account_tbl.DELETE;
28670 l_contact_found_flag := FALSE;
28671 END IF;
28672 END LOOP;
28673 END IF;
28674 END IF;
28675 -- Empty the party and contact tables
28676 l_new_contact_tbl.DELETE;
28677 l_new_party_tbl.DELETE;
28678 -- ASH
28679 -- Create asset assignments if requested. Asset assignments have already been fetched before
28680 IF (p_copy_asset_assignments = fnd_api.g_true) THEN
28681 IF l_asset_tbl.COUNT > 0 THEN
28682 FOR tab_row IN l_asset_tbl.FIRST .. l_asset_tbl.LAST
28683 LOOP
28684 IF l_asset_tbl.EXISTS(tab_row) THEN
28685 l_asset_tbl(tab_row).INSTANCE_ID := l_new_instance_rec.instance_id;
28686 l_asset_tbl(tab_row).INSTANCE_ASSET_ID := FND_API.G_MISS_NUM;
28687 l_asset_tbl(tab_row).ACTIVE_START_DATE := FND_API.G_MISS_DATE;
28688 l_asset_tbl(tab_row).ACTIVE_END_DATE := FND_API.G_MISS_DATE;
28689 -- Trap the row in a record and create assets row by row
28690 l_instance_asset_rec := l_asset_tbl(tab_row);
28691 csi_asset_pvt.create_instance_asset
28692 ( p_api_version => p_api_version
28693 ,p_commit => p_commit
28694 ,p_init_msg_list => p_init_msg_list
28695 ,p_validation_level => p_validation_level
28696 ,p_instance_asset_rec => l_instance_asset_rec
28697 ,p_txn_rec => p_txn_rec
28698 ,x_return_status => x_return_status
28699 ,x_msg_count => x_msg_count
28700 ,x_msg_data => x_msg_data
28701 ,p_lookup_tbl => l_asset_lookup_tbl
28702 ,p_asset_count_rec => l_asset_count_rec
28703 ,p_asset_id_tbl => l_asset_id_tbl
28704 ,p_asset_loc_tbl => l_asset_loc_tbl
28705 );
28706 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
28707 l_msg_index := 1;
28708 l_msg_count := x_msg_count;
28709 WHILE l_msg_count > 0 LOOP
28710 x_msg_data := FND_MSG_PUB.GET
28711 (l_msg_index,
28712 FND_API.G_FALSE );
28713 csi_gen_utility_pvt.put_line('message data = '||x_msg_data);
28714 l_msg_index := l_msg_index + 1;
28715 l_msg_count := l_msg_count - 1;
28716 END LOOP;
28717 RAISE FND_API.G_EXC_ERROR;
28718 END IF;
28719 END IF;
28720 END LOOP;
28721 END IF;
28722 END IF;
28723 -- Created extended attributes if requested
28724 IF (p_copy_ext_attribs = fnd_api.g_true) THEN
28725 l_ext_attribs_query_rec.attribute_value_id := FND_API.G_MISS_NUM;
28726 l_ext_attribs_query_rec.instance_id := l_curr_instance_rec.instance_id;
28727 l_ext_attribs_query_rec.attribute_id := FND_API.G_MISS_NUM;
28728 csi_item_instance_pub.get_extended_attrib_values
28729 (p_api_version => p_api_version
28730 ,p_commit => p_commit
28731 ,p_init_msg_list => p_init_msg_list
28732 ,p_validation_level => p_validation_level
28733 ,p_ext_attribs_query_rec => l_ext_attribs_query_rec
28734 ,p_time_stamp => NULL
28735 ,x_ext_attrib_tbl => l_ext_attrib_tbl
28736 ,x_ext_attrib_def_tbl => l_ext_attrib_def_tbl
28737 ,x_return_status => x_return_status
28738 ,x_msg_count => x_msg_count
28739 ,x_msg_data => x_msg_data
28740 );
28741 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
28742 l_msg_index := 1;
28743 l_msg_count := x_msg_count;
28744 WHILE l_msg_count > 0 LOOP
28745 x_msg_data := FND_MSG_PUB.GET
28746 (l_msg_index,
28747 FND_API.G_FALSE );
28748 csi_gen_utility_pvt.put_line('message data = '||x_msg_data);
28749 l_msg_index := l_msg_index + 1;
28750 l_msg_count := l_msg_count - 1;
28751 END LOOP;
28752 RAISE FND_API.G_EXC_ERROR;
28753 END IF;
28754 IF l_ext_attrib_tbl.COUNT > 0 THEN
28755 FOR tab_row IN l_ext_attrib_tbl.FIRST .. l_ext_attrib_tbl.LAST
28756 LOOP
28757 IF l_ext_attrib_tbl.EXISTS(tab_row) THEN
28758 IF NOT(csi_Item_Instance_Vld_pvt.get_ext_attrib_level(l_ext_attrib_tbl(tab_row).attribute_id,
28759 l_attribute_level ))THEN
28760 RAISE FND_API.G_EXC_ERROR;
28761 END IF;
28762
28763 IF (l_attribute_level = 'INSTANCE') THEN
28764 l_ext_attrib_tbl.DELETE (tab_row);
28765 ELSE
28766 l_ext_attrib_tbl(tab_row).INSTANCE_ID := l_new_instance_rec.instance_id;
28767 l_ext_attrib_tbl(tab_row).ATTRIBUTE_VALUE_ID := FND_API.G_MISS_NUM;
28768 l_ext_attrib_tbl(tab_row).ACTIVE_START_DATE := FND_API.G_MISS_DATE;
28769 l_ext_attrib_tbl(tab_row).ACTIVE_END_DATE := FND_API.G_MISS_DATE;
28770 END IF;
28771 END IF;
28772 END LOOP;
28773
28774 -- It is possible that all the extended attributes were set at instance level and thus we have an empty table
28775 IF l_ext_attrib_tbl.COUNT > 0 THEN
28776 csi_item_instance_pub.create_extended_attrib_values
28777 ( p_api_version => p_api_version
28778 ,p_commit => p_commit
28779 ,p_init_msg_list => p_init_msg_list
28780 ,p_validation_level => p_validation_level
28781 ,p_ext_attrib_tbl => l_ext_attrib_tbl
28782 ,p_txn_rec => p_txn_rec
28783 ,x_return_status => x_return_status
28784 ,x_msg_count => x_msg_count
28785 ,x_msg_data => x_msg_data
28786 );
28787
28788 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
28789 l_msg_index := 1;
28790 l_msg_count := x_msg_count;
28791 WHILE l_msg_count > 0 LOOP
28792 x_msg_data := FND_MSG_PUB.GET
28793 (l_msg_index,
28794 FND_API.G_FALSE );
28795 csi_gen_utility_pvt.put_line('message data = '||x_msg_data);
28796 l_msg_index := l_msg_index + 1;
28797 l_msg_count := l_msg_count - 1;
28798 END LOOP;
28799 RAISE FND_API.G_EXC_ERROR;
28800 END IF;
28801 END IF;
28802 END IF;
28803 END IF;
28804
28805 -- Create org assignments if requested
28806 IF (p_copy_org_assignments = fnd_api.g_true) THEN
28807 l_ou_query_rec.instance_ou_id := FND_API.G_MISS_NUM;
28808 l_ou_query_rec.instance_id := l_curr_instance_rec.instance_id;
28809 l_ou_query_rec.operating_unit_id := FND_API.G_MISS_NUM;
28810 l_ou_query_rec.relationship_type_code := FND_API.G_MISS_CHAR;
28811
28812 csi_organization_unit_pub.get_organization_unit
28813 (
28814 p_api_version => p_api_version
28815 ,p_commit => p_commit
28816 ,p_init_msg_list => p_init_msg_list
28817 ,p_validation_level => p_validation_level
28818 ,p_ou_query_rec => l_ou_query_rec
28819 ,p_resolve_id_columns => fnd_api.g_true
28820 ,p_time_stamp => NULL
28821 ,x_org_unit_tbl => l_org_unit_header_tbl
28822 ,x_return_status => x_return_status
28823 ,x_msg_count => x_msg_count
28824 ,x_msg_data => x_msg_data
28825 );
28826
28827 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
28828 l_msg_index := 1;
28829 l_msg_count := x_msg_count;
28830 WHILE l_msg_count > 0 LOOP
28831 x_msg_data := FND_MSG_PUB.GET
28832 (l_msg_index,
28833 FND_API.G_FALSE );
28834 csi_gen_utility_pvt.put_line('message data = '||x_msg_data);
28835 l_msg_index := l_msg_index + 1;
28836 l_msg_count := l_msg_count - 1;
28837 END LOOP;
28838 RAISE FND_API.G_EXC_ERROR;
28839 END IF;
28840
28841 IF l_org_unit_header_tbl.COUNT > 0 THEN /*****First change here 08/25/01 - RK***/
28842 FOR tab_row_party IN l_org_unit_header_tbl.FIRST .. l_org_unit_header_tbl.LAST
28843 LOOP
28844 IF l_org_unit_header_tbl.EXISTS(tab_row_party) THEN
28845 l_org_unit_tbl(tab_row_party).instance_ou_id := l_org_unit_header_tbl(tab_row_party).instance_ou_id;
28846 l_org_unit_tbl(tab_row_party).instance_id := l_org_unit_header_tbl(tab_row_party).instance_id;
28847 l_org_unit_tbl(tab_row_party).operating_unit_id := l_org_unit_header_tbl(tab_row_party).operating_unit_id;
28848 l_org_unit_tbl(tab_row_party).relationship_type_code := l_org_unit_header_tbl(tab_row_party).relationship_type_code;
28849 l_org_unit_tbl(tab_row_party).active_start_date := l_org_unit_header_tbl(tab_row_party).active_start_date;
28850 l_org_unit_tbl(tab_row_party).active_end_date := l_org_unit_header_tbl(tab_row_party).active_end_date;
28851 l_org_unit_tbl(tab_row_party).context := l_org_unit_header_tbl(tab_row_party).context;
28852 l_org_unit_tbl(tab_row_party).attribute1 := l_org_unit_header_tbl(tab_row_party).attribute1;
28853 l_org_unit_tbl(tab_row_party).attribute2 := l_org_unit_header_tbl(tab_row_party).attribute2;
28854 l_org_unit_tbl(tab_row_party).attribute3 := l_org_unit_header_tbl(tab_row_party).attribute3;
28855 l_org_unit_tbl(tab_row_party).attribute4 := l_org_unit_header_tbl(tab_row_party).attribute4;
28856 l_org_unit_tbl(tab_row_party).attribute5 := l_org_unit_header_tbl(tab_row_party).attribute5;
28857 l_org_unit_tbl(tab_row_party).attribute6 := l_org_unit_header_tbl(tab_row_party).attribute6;
28858 l_org_unit_tbl(tab_row_party).attribute7 := l_org_unit_header_tbl(tab_row_party).attribute7;
28859 l_org_unit_tbl(tab_row_party).attribute8 := l_org_unit_header_tbl(tab_row_party).attribute8;
28860 l_org_unit_tbl(tab_row_party).attribute9 := l_org_unit_header_tbl(tab_row_party).attribute9;
28861 l_org_unit_tbl(tab_row_party).attribute10 := l_org_unit_header_tbl(tab_row_party).attribute10;
28862 l_org_unit_tbl(tab_row_party).attribute11 := l_org_unit_header_tbl(tab_row_party).attribute11;
28863 l_org_unit_tbl(tab_row_party).attribute12 := l_org_unit_header_tbl(tab_row_party).attribute12;
28864 l_org_unit_tbl(tab_row_party).attribute13 := l_org_unit_header_tbl(tab_row_party).attribute13;
28865 l_org_unit_tbl(tab_row_party).attribute14 := l_org_unit_header_tbl(tab_row_party).attribute14;
28866 l_org_unit_tbl(tab_row_party).attribute15 := l_org_unit_header_tbl(tab_row_party).attribute15;
28867 l_org_unit_tbl(tab_row_party).object_version_number := l_org_unit_header_tbl(tab_row_party).object_version_number;
28868 END IF;
28869 END LOOP;
28870 END IF; --l_org_unit_header_tbl.COUNT > 0
28871
28872 IF l_org_unit_tbl.COUNT > 0 THEN
28873 FOR tab_row IN l_org_unit_tbl.FIRST .. l_org_unit_tbl.LAST
28874 LOOP
28875 IF l_org_unit_tbl.EXISTS(tab_row) THEN
28876 l_org_unit_tbl(tab_row).INSTANCE_ID := l_new_instance_rec.instance_id;
28877 l_org_unit_tbl(tab_row).INSTANCE_OU_ID := FND_API.G_MISS_NUM;
28878 l_org_unit_tbl(tab_row).ACTIVE_START_DATE := FND_API.G_MISS_DATE;
28879 l_org_unit_tbl(tab_row).ACTIVE_END_DATE := FND_API.G_MISS_DATE;
28880 END IF;
28881 END LOOP;
28882 csi_organization_unit_pub.create_organization_unit
28883 ( p_api_version => p_api_version
28884 ,p_commit => p_commit
28885 ,p_init_msg_list => p_init_msg_list
28886 ,p_validation_level => p_validation_level
28887 ,p_org_unit_tbl => l_org_unit_tbl
28888 ,p_txn_rec => p_txn_rec
28889 ,x_return_status => x_return_status
28890 ,x_msg_count => x_msg_count
28891 ,x_msg_data => x_msg_data
28892 );
28893
28894 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
28895 l_msg_index := 1;
28896 l_msg_count := x_msg_count;
28897 WHILE l_msg_count > 0 LOOP
28898 x_msg_data := FND_MSG_PUB.GET
28899 (l_msg_index,
28900 FND_API.G_FALSE );
28901
28902 csi_gen_utility_pvt.put_line('message data = '||x_msg_data);
28903 l_msg_index := l_msg_index + 1;
28904 l_msg_count := l_msg_count - 1;
28905 END LOOP;
28906 RAISE FND_API.G_EXC_ERROR;
28907 END IF;
28908 END IF;
28909 END IF;
28910
28911 -- Create pricing attributes if requested
28912 IF (p_copy_pricing_attribs = fnd_api.g_true) THEN
28913 l_pricing_attribs_query_rec.pricing_attribute_id := FND_API.G_MISS_NUM;
28914 l_pricing_attribs_query_rec.instance_id := l_curr_instance_rec.instance_id;
28915 csi_pricing_attribs_pub.get_pricing_attribs
28916 ( p_api_version => p_api_version
28917 ,p_commit => p_commit
28918 ,p_init_msg_list => p_init_msg_list
28919 ,p_validation_level => p_validation_level
28920 ,p_pricing_attribs_query_rec => l_pricing_attribs_query_rec
28921 ,p_time_stamp => NULL
28922 ,x_pricing_attribs_tbl => l_pricing_attribs_tbl
28923 ,x_return_status => x_return_status
28924 ,x_msg_count => x_msg_count
28925 ,x_msg_data => x_msg_data
28926 );
28927
28928 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
28929 l_msg_index := 1;
28930 l_msg_count := x_msg_count;
28931 WHILE l_msg_count > 0 LOOP
28932 x_msg_data := FND_MSG_PUB.GET
28933 (l_msg_index,
28934 FND_API.G_FALSE );
28935 csi_gen_utility_pvt.put_line('message data = '||x_msg_data);
28936 l_msg_index := l_msg_index + 1;
28937 l_msg_count := l_msg_count - 1;
28938 END LOOP;
28939
28940 RAISE FND_API.G_EXC_ERROR;
28941 END IF;
28942 IF l_pricing_attribs_tbl.COUNT > 0 THEN
28943 FOR tab_row IN l_pricing_attribs_tbl.FIRST .. l_pricing_attribs_tbl.LAST
28944 LOOP
28945 IF l_pricing_attribs_tbl.EXISTS(tab_row) THEN
28946 l_pricing_attribs_tbl(tab_row).INSTANCE_ID := l_new_instance_rec.instance_id;
28947 l_pricing_attribs_tbl(tab_row).PRICING_ATTRIBUTE_ID := FND_API.G_MISS_NUM;
28948 l_pricing_attribs_tbl(tab_row).ACTIVE_START_DATE := FND_API.G_MISS_DATE;
28949 l_pricing_attribs_tbl(tab_row).ACTIVE_END_DATE := FND_API.G_MISS_DATE;
28950 END IF;
28951 END LOOP;
28952 csi_pricing_attribs_pub.create_pricing_attribs
28953 ( p_api_version => p_api_version
28954 ,p_commit => p_commit
28955 ,p_init_msg_list => p_init_msg_list
28956 ,p_validation_level => p_validation_level
28957 ,p_pricing_attribs_tbl => l_pricing_attribs_tbl
28958 ,p_txn_rec => p_txn_rec
28959 ,x_return_status => x_return_status
28960 ,x_msg_count => x_msg_count
28961 ,x_msg_data => x_msg_data
28962 );
28963 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
28964 l_msg_index := 1;
28965 l_msg_count := x_msg_count;
28966 WHILE l_msg_count > 0 LOOP
28967 x_msg_data := FND_MSG_PUB.GET
28968 (l_msg_index,
28969 FND_API.G_FALSE );
28970 csi_gen_utility_pvt.put_line('message data = '||x_msg_data);
28971 l_msg_index := l_msg_index + 1;
28972 l_msg_count := l_msg_count - 1;
28973 END LOOP;
28974 RAISE FND_API.G_EXC_ERROR;
28975 END IF;
28976 END IF;
28977 END IF;
28978
28979 -- Added by rtalluri for Bug: 2420897 on 08/19/02
28980 -- If version label is null, then we need read the the default value from the profile option
28981 IF (p_source_instance_rec.VERSION_LABEL IS NULL ) OR
28982 (p_source_instance_rec.VERSION_LABEL = FND_API.G_MISS_CHAR) THEN
28983 l_version_label := FND_PROFILE.VALUE('CSI_DEFAULT_VERSION_LABEL');
28984 IF l_version_label IS NULL THEN
28985 FND_MESSAGE.SET_NAME('CSI','CSI_API_INVALID_VERSION_LABEL');
28986 FND_MSG_PUB.ADD;
28987 RAISE FND_API.G_EXC_ERROR;
28988 ELSE
28989 l_new_instance_rec.version_label := l_version_label;
28990 END IF;
28991 ELSE
28992 l_new_instance_rec.VERSION_LABEL := p_source_instance_rec.VERSION_LABEL;
28993 END IF;
28994
28995 --Calling the Create Version Label API to associate a version label for an instance created
28996
28997 l_version_label_rec.instance_id := l_new_instance_rec.instance_id;
28998 l_version_label_rec.version_label := l_new_instance_rec.version_label;
28999 l_version_label_rec.date_time_stamp := SYSDATE;
29000 l_version_label_rec.active_start_date := l_new_instance_rec.active_start_date;
29001 l_version_label_rec.description := l_new_instance_rec.version_label_description;
29002
29003 csi_item_instance_pvt.create_version_label
29004 (
29005 p_api_version => p_api_version
29006 ,p_commit => fnd_api.g_false
29007 ,p_init_msg_list => p_init_msg_list
29008 ,p_validation_level => p_validation_level
29009 ,p_version_label_rec => l_version_label_rec
29010 ,p_txn_rec => p_txn_rec
29011 ,x_return_status => x_return_status
29012 ,x_msg_count => x_msg_count
29013 ,x_msg_data => x_msg_data
29014 );
29015
29016 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
29017 csi_gen_utility_pvt.put_line( ' Error from COPY_SINGLE_ITEM_INSTANCE.CREATE_VERSION_LABEL..');
29018 csi_gen_utility_pvt.put_line('MESSAGE DATA = '||x_msg_data);
29019 FND_MESSAGE.SET_NAME('CSI','CSI_FAILED_TO_CREATE_VERSION');
29020 FND_MESSAGE.SET_TOKEN('API_ERROR','CREATE_VERSION_LABEL');
29021 FND_MSG_PUB.Add;
29022 RAISE FND_API.G_EXC_ERROR;
29023 END IF;
29024 -- End of Addition by rtalluri for Bug: 2420897 on 08/19/02
29025
29026 IF p_call_from_split = fnd_api.g_false
29027 THEN
29028 -- Added by sk for fixing the bug 2234365
29029 IF x_new_instance_tbl(1).instance_id IS NOT NULL AND
29030 x_new_instance_tbl(1).instance_id <> fnd_api.g_miss_num
29031 THEN
29032 -- Added by sk for fixing bug 2245976
29033 IF csi_datastructures_pub.g_install_param_rec.fetch_flag IS NULL THEN
29034 csi_gen_utility_pvt.populate_install_param_rec;
29035 END IF;
29036 --
29037 l_internal_party_id := csi_datastructures_pub.g_install_param_rec.internal_party_id;
29038 --
29039 IF l_internal_party_id IS NULL THEN
29040 FND_MESSAGE.SET_NAME('CSI','CSI_API_UNINSTALLED_PARAMETER');
29041 FND_MSG_PUB.ADD;
29042 RAISE FND_API.G_EXC_ERROR;
29043 END IF;
29044 --
29045 BEGIN
29046 SELECT cip.party_id
29047 INTO l_party_id
29048 FROM csi_i_parties cip
29049 WHERE cip.instance_id = x_new_instance_tbl(1).instance_id
29050 AND cip.relationship_type_code = 'OWNER';
29051 EXCEPTION
29052 WHEN OTHERS THEN
29053 l_party_id := NULL;
29054 END;
29055
29056 IF l_party_id IS NOT NULL AND
29057 l_internal_party_id IS NOT NULL AND
29058 l_party_id <> l_internal_party_id
29059 THEN
29060 -- End addition by sk for fixing bug 2245976
29061 csi_item_instance_pvt.Call_to_Contracts(
29062 p_transaction_type => 'NEW'
29063 ,p_instance_id => x_new_instance_tbl(1).instance_id
29064 ,p_new_instance_id => NULL
29065 ,p_vld_org_id => x_new_instance_tbl(1).vld_organization_id
29066 ,p_quantity => NULL
29067 ,p_party_account_id1 => NULL
29068 ,p_party_account_id2 => NULL
29069 ,p_call_from_bom_expl => p_call_from_bom_expl
29070 ,p_transaction_date => p_txn_rec.transaction_date -- For 3483763
29071 ,p_source_transaction_date => p_txn_rec.source_transaction_date -- For 3483763
29072 ,p_oks_txn_inst_tbl => px_oks_txn_inst_tbl
29073 ,x_return_status => x_return_status
29074 ,x_msg_count => x_msg_count
29075 ,x_msg_data => x_msg_data
29076 );
29077
29078 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS)
29079 THEN
29080 l_msg_index := 1;
29081 l_msg_count := x_msg_count;
29082 WHILE l_msg_count > 0 LOOP
29083 x_msg_data := FND_MSG_PUB.GET
29084 ( l_msg_index,
29085 FND_API.G_FALSE
29086 );
29087 csi_gen_utility_pvt.put_line('MESSAGE DATA = '||x_msg_data);
29088 l_msg_index := l_msg_index + 1;
29089 l_msg_count := l_msg_count - 1;
29090 END LOOP;
29091 RAISE FND_API.G_EXC_ERROR;
29092 END IF;
29093 --
29094 IF px_oks_txn_inst_tbl.count > 0 THEN
29095 csi_gen_utility_pvt.dump_oks_txn_inst_tbl(px_oks_txn_inst_tbl);
29096 csi_gen_utility_pvt.put_line('Calling OKS Core API...');
29097 --
29098 IF p_txn_rec.transaction_type_id = 3 THEN
29099 l_batch_id := p_txn_rec.source_header_ref_id;
29100 l_batch_type := p_txn_rec.source_group_ref;
29101 ELSE
29102 l_batch_id := NULL;
29103 l_batch_type := NULL;
29104 END IF;
29105 --
29106 UPDATE CSI_TRANSACTIONS
29107 set contracts_invoked = 'Y'
29108 where transaction_id = p_txn_rec.transaction_id;
29109 --
29110 OKS_IBINT_PUB.IB_interface
29111 (
29112 P_Api_Version => 1.0,
29113 P_init_msg_list => p_init_msg_list,
29114 P_single_txn_date_flag => 'Y',
29115 P_Batch_type => l_batch_type,
29116 P_Batch_ID => l_batch_id,
29117 P_OKS_Txn_Inst_tbl => px_oks_txn_inst_tbl,
29118 x_return_status => x_return_status,
29119 x_msg_count => x_msg_count,
29120 x_msg_data => x_msg_data
29121 );
29122 --
29123 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
29124 l_msg_index := 1;
29125 l_msg_count := x_msg_count;
29126 WHILE l_msg_count > 0 LOOP
29127 x_msg_data := FND_MSG_PUB.GET
29128 ( l_msg_index,
29129 FND_API.G_FALSE );
29130 csi_gen_utility_pvt.put_line( 'Error from OKS_IBINT_PUB.IB_interface..');
29131 csi_gen_utility_pvt.put_line('MESSAGE DATA = '||x_msg_data);
29132 l_msg_index := l_msg_index + 1;
29133 l_msg_count := l_msg_count - 1;
29134 END LOOP;
29135 RAISE FND_API.G_EXC_ERROR;
29136 END IF;
29137 END IF;
29138 END IF;
29139 END IF;
29140 -- End Addition by sk for fixing the bug 2234365
29141 END IF;
29142 -- End of API body
29143 -- Standard check of p_commit
29144 IF FND_API.To_Boolean( p_commit ) THEN
29145 COMMIT WORK;
29146 END IF;
29147 -- Standard call to get message count and if count is get message info.
29148 FND_MSG_PUB.Count_And_Get
29149 (p_count => x_msg_count ,
29150 p_data => x_msg_data
29151 );
29152 EXCEPTION
29153 WHEN FND_API.G_EXC_ERROR THEN
29154 ROLLBACK TO copy_single_item_instance;
29155 x_return_status := FND_API.G_RET_STS_ERROR ;
29156 FND_MSG_PUB.Count_And_Get
29157 ( p_count => x_msg_count,
29158 p_data => x_msg_data
29159 );
29160 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
29161 ROLLBACK TO copy_single_item_instance;
29162 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
29163 FND_MSG_PUB.Count_And_Get
29164 ( p_count => x_msg_count,
29165 p_data => x_msg_data
29166 );
29167
29168 WHEN OTHERS THEN
29169 ROLLBACK TO copy_single_item_instance;
29170 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
29171 IF FND_MSG_PUB.Check_Msg_Level
29172 (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
29173 THEN
29174 FND_MSG_PUB.Add_Exc_Msg
29175 ( G_PKG_NAME ,
29176 l_api_name
29177 );
29178 END IF;
29179 FND_MSG_PUB.Count_And_Get
29180 ( p_count => x_msg_count,
29181 p_data => x_msg_data
29182 );
29183 END copy_single_item_instance;
29184 --
29185 /*---------------------------------------------------------*/
29186 /* Procedure name: Explode_Bom */
29187 /* Description : This procudure explodes the BOM and */
29188 /* creates instances and relationships */
29189 /* Author : Srinivasan Ramakrishnan */
29190 /*---------------------------------------------------------*/
29191 PROCEDURE Explode_Bom
29192 (
29193 p_api_version IN NUMBER
29194 ,p_commit IN VARCHAR2
29195 ,p_init_msg_list IN VARCHAR2
29196 ,p_validation_level IN NUMBER
29197 ,p_source_instance_rec IN csi_datastructures_pub.instance_rec
29198 ,p_explosion_level IN NUMBER
29199 ,p_item_tbl OUT NOCOPY csi_datastructures_pub.instance_tbl
29200 ,p_item_relation_tbl OUT NOCOPY csi_datastructures_pub.ii_relationship_tbl
29201 ,p_create_instance IN VARCHAR2
29202 ,p_txn_rec IN OUT NOCOPY csi_datastructures_pub.transaction_rec
29203 ,x_return_status OUT NOCOPY VARCHAR2
29204 ,x_msg_count OUT NOCOPY NUMBER
29205 ,x_msg_data OUT NOCOPY VARCHAR2
29206 )
29207 IS
29208 --
29209 l_api_name CONSTANT VARCHAR2(30) := 'explode_bom';
29210 l_api_version CONSTANT NUMBER := 1.0;
29211 l_debug_level NUMBER;
29212 l_dump_frequency_flag VARCHAR2(30);
29213 l_msg_index NUMBER;
29214 l_msg_count NUMBER;
29215 l_err_msg VARCHAR2(2000) := NULL;
29216 l_error_code VARCHAR2(30) := NULL;
29217 l_group_id NUMBER;
29218 l_session_id NUMBER := 0;
29219 l_parent_child_tbl csi_item_instance_pvt.parent_child_tbl;
29220 l_parent_count NUMBER := 0;
29221 l_per_parent NUMBER := 0;
29222 l_temp_per_parent NUMBER := 0;
29223 l_csi_explode_bom VARCHAR2(30) := fnd_profile.value('CSI_EXPLODE_BOM');
29224 l_csi_bom_explosion_level NUMBER;
29225 l_ins_count NUMBER := 0;
29226 l_curr_parent VARCHAR2(240);
29227 x_ins_tbl csi_datastructures_pub.instance_tbl;
29228 x_rel_tbl csi_datastructures_pub.ii_relationship_tbl;
29229 l_source_instance_rec csi_datastructures_pub.instance_rec;
29230 x_new_ins_tbl csi_datastructures_pub.instance_tbl;
29231 l_init_source_instance_rec csi_datastructures_pub.instance_rec;
29232 l_rel_count NUMBER := 0;
29233 l_count NUMBER;
29234 l_prev_parent VARCHAR2(240);
29235 l_prev_child VARCHAR2(240);
29236 l_split_qty NUMBER;
29237 l_master_organization_id NUMBER;
29238 x_msg_index_out NUMBER;
29239 l_child_expl_level NUMBER;
29240 l_init_sort_code VARCHAR2(2000);
29241 l_bom_sortcode_width NUMBER := Bom_Common_Definitions.G_Bom_SortCode_Width;
29242 l_bom_sort_order_tbl csi_item_instance_pvt.bom_sort_order_tbl;
29243 --
29244 CURSOR BOM_CSR (p_group_id NUMBER)
29245 IS
29246 SELECT bom.assembly_item_id parent_item_id
29247 ,bet.component_item_id component_item_id
29248 ,bet.organization_id organization_id
29249 ,bet.component_quantity component_quantity
29250 ,bet.extended_quantity extended_quantity
29251 ,bet.plan_level plan_level
29252 ,substr(bet.sort_order,1,(length(sort_order)-l_bom_sortcode_width)) parent_sort_order
29253 ,bet.sort_order child_sort_order
29254 ,msi.serial_number_control_code serial_number_control_code
29255 ,msi.primary_uom_code primary_uom_code
29256 ,mp.master_organization_id master_organization_id
29257 FROM bom_small_expl_temp bet
29258 ,bom_bill_of_materials bom
29259 ,mtl_system_items msi
29260 ,mtl_system_items msip
29261 ,mtl_parameters mp
29262 WHERE bet.group_id = p_group_id
29263 AND bet.plan_level > 0 -- Ignore Top Most
29264 AND bet.component_item_id = msi.inventory_item_id
29265 AND bet.organization_id = msi.organization_id
29266 AND bet.bill_sequence_id = bom.bill_sequence_id
29267 AND bet.extended_quantity > 0
29268 AND bom.assembly_item_id = msip.inventory_item_id
29269 AND bom.organization_id = msip.organization_id
29270 AND msi.organization_id = mp.organization_id
29271 ORDER BY bet.sort_order;
29272 BEGIN
29273 -- Standard Start of API savepoint
29274 SAVEPOINT explode_bom;
29275 -- Standard call to check for call compatibility.
29276 IF NOT FND_API.Compatible_API_Call (l_api_version,
29277 p_api_version,
29278 l_api_name ,
29279 G_PKG_NAME)
29280 THEN
29281 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
29282 END IF;
29283 -- Initialize message list if p_init_msg_list is set to TRUE.
29284 IF FND_API.to_Boolean( p_init_msg_list ) THEN
29285 FND_MSG_PUB.initialize;
29286 END IF;
29287 -- Initialize API return status to success
29288 x_return_status := FND_API.G_RET_STS_SUCCESS;
29289 -- Check the profile option debug_level for debug message reporting
29290 l_debug_level:=fnd_profile.value('CSI_DEBUG_LEVEL');
29291 -- If debug_level = 1 then dump the procedure name
29292 IF (l_debug_level > 0) THEN
29293 csi_gen_utility_pvt.put_line( 'explode_bom');
29294 END IF;
29295 -- If the debug level = 2 then dump all the parameters values.
29296 IF (l_debug_level > 1) THEN
29297 csi_gen_utility_pvt.put_line('explode_standard_bom'||'-'
29298 || p_api_version ||'-'
29299 || p_commit ||'-'
29300 || p_init_msg_list ||'-'
29301 || p_validation_level ||'-'
29302 || p_explosion_level);
29303 -- Dump item instanc rec
29304 csi_gen_utility_pvt.dump_instance_rec(p_source_instance_rec);
29305 END IF;
29306 -- Start API body
29307 IF l_csi_explode_bom = 'Y' THEN
29308 -- Verify if the a Valid item and Org id is being passed
29309 IF NOT(csi_Item_Instance_Vld_pvt.val_item_org
29310 ( p_source_instance_rec.INVENTORY_ITEM_ID,
29311 p_source_instance_rec.VLD_ORGANIZATION_ID)) THEN
29312 RAISE FND_API.G_EXC_ERROR;
29313 END IF;
29314 -- Verify if the a Valid bom and Org id is being passed
29315 IF NOT(csi_Item_Instance_Vld_pvt.val_bom_org
29316 ( p_source_instance_rec.INVENTORY_ITEM_ID,
29317 p_source_instance_rec.VLD_ORGANIZATION_ID)) THEN
29318 RAISE FND_API.G_EXC_ERROR;
29319 END IF;
29320 -- Verify instance quantity
29321 IF ((p_source_instance_rec.QUANTITY IS NULL)
29322 OR (p_source_instance_rec.QUANTITY = FND_API.G_MISS_NUM )
29323 OR (p_source_instance_rec.QUANTITY <> 1)) THEN
29324 FND_MESSAGE.SET_NAME('CSI','CSI_API_INVALID_QUANTITY');
29325 FND_MESSAGE.SET_TOKEN('QUANTITY',p_source_instance_rec.QUANTITY);
29326 FND_MSG_PUB.Add;
29327 RAISE FND_API.G_EXC_ERROR;
29328 END IF;
29329 -- Verify the Passed Inventory Item is Trackable
29330 -- Get the Master Organization ID
29331 BEGIN
29332 select master_organization_id
29333 into l_master_organization_id
29334 from MTL_PARAMETERS
29335 where organization_id = p_source_instance_rec.VLD_ORGANIZATION_ID;
29336 EXCEPTION
29337 when others then
29338 csi_gen_utility_pvt.put_line('Unable to get the Master organization ID for '
29339 ||to_char(p_source_instance_rec.VLD_ORGANIZATION_ID));
29340 RAISE FND_API.G_EXC_ERROR;
29341 END;
29342 --
29343 IF NOT csi_item_instance_vld_pvt.Is_Trackable
29344 (p_inv_item_id => p_source_instance_rec.INVENTORY_ITEM_ID,
29345 p_org_id => l_master_organization_id) THEN
29346 csi_gen_utility_pvt.put_line('Passed Inventory Item is not Trackable..');
29347 RAISE FND_API.G_EXC_ERROR;
29348 END IF;
29349 -- Instance_id should be passed if Instance needs to be created for the Exploded Items
29350 --
29351 IF p_create_instance = FND_API.G_TRUE THEN
29352 IF (p_source_instance_rec.instance_id IS NULL) OR
29353 (p_source_instance_rec.instance_id = FND_API.G_MISS_NUM) THEN
29354 FND_MESSAGE.SET_NAME('CSI','CSI_API_INSTANCE_ID_NULL');
29355 FND_MSG_PUB.Add;
29356 RAISE FND_API.G_EXC_ERROR;
29357 END IF;
29358 --
29359 -- Verify if configruation has been exploded before
29360 IF (csi_Item_Instance_Vld_pvt.Is_config_exploded
29361 ( p_source_instance_rec.INSTANCE_ID)) THEN
29362 csi_gen_utility_pvt.put_line('Configuration already Exploded');
29363 RAISE FND_API.G_EXC_ERROR;
29364 END IF;
29365 END IF;
29366 --
29367 IF p_explosion_level IS NULL OR
29368 p_explosion_level = FND_API.G_MISS_NUM THEN
29369 l_csi_bom_explosion_level := to_number(fnd_profile.value('CSI_BOM_EXPLOSION_LEVEL'));
29370 ELSE
29371 l_csi_bom_explosion_level := p_explosion_level;
29372 END IF;
29373 --
29374 SELECT Bom_Explosion_Temp_S.NextVal
29375 INTO l_group_id
29376 FROM sys.dual;
29377 --
29378 Bompxinq.Exploder_Userexit
29379 (
29380 grp_id => l_group_id,
29381 org_id => p_source_instance_rec.VLD_ORGANIZATION_ID,
29382 item_id => p_source_instance_rec.INVENTORY_ITEM_ID,
29383 unit_number_from => '',
29384 unit_number_to => '',
29385 levels_to_explode => l_csi_bom_explosion_level,
29386 expl_qty => 1,
29387 show_rev => 1,
29388 material_ctrl => 1,
29389 err_msg => l_err_msg,
29390 error_code => l_error_code
29391 );
29392 --
29393 IF l_Error_Code <> 0 THEN
29394 csi_gen_utility_pvt.put_line (' Bom explosion error code <> 0 '|| l_Error_Code ||' '||l_err_msg);
29395 IF l_Error_Code < 0 THEN
29396 csi_gen_utility_pvt.put_line (' Bom explosion error code > 0 '|| l_Error_Code ||' '||l_err_msg);
29397 ELSIF l_Error_Code > 0 THEN
29398 csi_gen_utility_pvt.put_line (' Bom explosion error code < 0'|| l_Error_Code ||' '||l_err_msg);
29399 END IF;
29400 FND_MESSAGE.SET_NAME('CSI','CSI_API_CORE_BOM_EXPL_ERROR');
29401 FND_MSG_PUB.Add;
29402 RAISE FND_API.G_EXC_ERROR;
29403 END IF; -- error
29404 --
29405 l_init_sort_code := Bom_Common_Definitions.get_initial_sort_code;
29406 --
29407 -- Loop thru' the cursor and create the Parent_child_tbl
29408 csi_gen_utility_pvt.put_line('Start of BOM Explosion..');
29409 For v_rec in BOM_CSR(l_group_id)
29410 Loop
29411 l_parent_count := l_parent_count + 1;
29412 l_parent_child_tbl(l_parent_count).parent_sort_order := v_rec.parent_sort_order;
29413 l_parent_child_tbl(l_parent_count).child_sort_order := v_rec.child_sort_order;
29414 End Loop;
29415 --
29416 l_ins_count := 0;
29417 l_prev_parent := l_init_sort_code; -- By default this will be Top Most Parent
29418 --
29419 For v_rec in BOM_CSR(l_group_id)
29420 Loop
29421 IF csi_Item_Instance_Vld_pvt.Is_Trackable
29422 (p_inv_item_id => v_rec.component_item_id,
29423 p_org_id => v_rec.master_organization_id,
29424 p_stack_err_msg => FALSE) THEN
29425 --
29426 -- Check whether parent is trackable or not
29427 l_curr_parent := v_rec.parent_sort_order;
29428 IF l_curr_parent <> l_init_sort_code THEN -- no need for Top Most
29429 -- Get the immediate Trackable Parent
29430 csi_item_instance_pvt.Get_parent_sort_order
29431 (
29432 p_parent_sort_order => l_curr_parent
29433 ,p_parent_child_tbl => l_parent_child_tbl
29434 ,p_bom_sort_order_tbl => l_bom_sort_order_tbl
29435 );
29436 END IF;
29437 --
29438 -- Since the Max level is determined by the parameter p_explosion_level, any sub-assembly
29439 -- will be exploded only to the remaining level.
29440 l_child_expl_level := l_csi_bom_explosion_level - v_rec.plan_level;
29441 --
29442 IF ( (v_rec.serial_number_control_code in (2,5,6)) OR
29443 ((csi_item_instance_pvt.Is_Parent(p_child_sort_order => v_rec.child_sort_order
29444 ,p_parent_child_tbl => l_parent_child_tbl)) AND
29445 -- Check for Trackable component under this
29446 (csi_item_instance_pvt.Has_Trackable_Component
29447 (p_inventory_item_id => v_rec.component_item_id
29448 ,p_organization_id => v_rec.organization_id
29449 ,p_explosion_level => l_child_expl_level))) ) THEN
29450 For i in 1..v_rec.extended_quantity
29451 Loop
29452 l_ins_count := l_ins_count + 1;
29453 x_ins_tbl(l_ins_count).inventory_item_id := v_rec.component_item_id;
29454 x_ins_tbl(l_ins_count).quantity := 1;
29455 x_ins_tbl(l_ins_count).mfg_serial_number_flag := 'N';
29456 x_ins_tbl(l_ins_count).unit_of_measure := v_rec.primary_uom_code;
29457 x_ins_tbl(l_ins_count).lot_number := NULL;
29458 x_ins_tbl(l_ins_count).instance_usage_code := NULL;
29459 -- x_ins_tbl(l_ins_count).ATTRIBUTE12 := l_curr_parent;
29460 -- x_ins_tbl(l_ins_count).ATTRIBUTE13 := v_rec.child_sort_order;
29461 -- x_ins_tbl(l_ins_count).ATTRIBUTE14 := 'N'; -- Mark_flag
29462 -- x_ins_tbl(l_ins_count).ATTRIBUTE15 := to_char(v_rec.extended_quantity); -- child occurance
29463 l_bom_sort_order_tbl(l_ins_count).parent_sort_order := l_curr_parent;
29464 l_bom_sort_order_tbl(l_ins_count).child_sort_order := v_rec.child_sort_order;
29465 l_bom_sort_order_tbl(l_ins_count).mark_flag := 'N';
29466 l_bom_sort_order_tbl(l_ins_count).child_occurance := v_rec.extended_quantity;
29467 End Loop;
29468 ELSE
29469 l_count := 0;
29470 IF l_bom_sort_order_tbl.count > 0 THEN
29471 For ins_row in l_bom_sort_order_tbl.FIRST .. l_bom_sort_order_tbl.LAST
29472 Loop
29473 IF l_curr_parent = l_bom_sort_order_tbl(ins_row).child_sort_order then -- Getting the parent existance
29474 l_count := l_bom_sort_order_tbl(ins_row).child_occurance;
29475 EXIT;
29476 END IF;
29477 End Loop;
29478 END IF;
29479 --
29480 IF l_count > 0 THEN
29481 l_split_qty := v_rec.extended_quantity/l_count;
29482 For j in 1..l_count
29483 Loop
29484 l_ins_count := l_ins_count + 1;
29485 x_ins_tbl(l_ins_count).inventory_item_id := v_rec.component_item_id;
29486 x_ins_tbl(l_ins_count).quantity := l_split_qty;
29487 x_ins_tbl(l_ins_count).mfg_serial_number_flag := 'N';
29488 x_ins_tbl(l_ins_count).unit_of_measure := v_rec.primary_uom_code;
29489 x_ins_tbl(l_ins_count).lot_number := NULL;
29490 x_ins_tbl(l_ins_count).instance_usage_code := NULL;
29491 -- x_ins_tbl(l_ins_count).ATTRIBUTE12 := l_curr_parent;
29492 -- x_ins_tbl(l_ins_count).ATTRIBUTE13 := v_rec.child_sort_order;
29493 -- x_ins_tbl(l_ins_count).ATTRIBUTE14 := 'N'; -- Mark_flag
29494 -- x_ins_tbl(l_ins_count).ATTRIBUTE15 := to_char(l_count); -- # of child occurance
29495 l_bom_sort_order_tbl(l_ins_count).parent_sort_order := l_curr_parent;
29496 l_bom_sort_order_tbl(l_ins_count).child_sort_order := v_rec.child_sort_order;
29497 l_bom_sort_order_tbl(l_ins_count).mark_flag := 'N';
29498 l_bom_sort_order_tbl(l_ins_count).child_occurance := l_count;
29499 End Loop;
29500 ELSE
29501 l_ins_count := l_ins_count + 1;
29502 x_ins_tbl(l_ins_count).inventory_item_id := v_rec.component_item_id;
29503 x_ins_tbl(l_ins_count).quantity := v_rec.extended_quantity;
29504 x_ins_tbl(l_ins_count).mfg_serial_number_flag := 'N';
29505 x_ins_tbl(l_ins_count).unit_of_measure := v_rec.primary_uom_code;
29506 x_ins_tbl(l_ins_count).lot_number := NULL;
29507 x_ins_tbl(l_ins_count).instance_usage_code := NULL;
29508 -- x_ins_tbl(l_ins_count).ATTRIBUTE12 := l_curr_parent;
29509 -- x_ins_tbl(l_ins_count).ATTRIBUTE13 := v_rec.child_sort_order;
29510 -- x_ins_tbl(l_ins_count).ATTRIBUTE14 := 'N'; -- Mark_flag
29511 -- x_ins_tbl(l_ins_count).ATTRIBUTE15 := to_char(1); -- # of child occurance
29512 l_bom_sort_order_tbl(l_ins_count).parent_sort_order := l_curr_parent;
29513 l_bom_sort_order_tbl(l_ins_count).child_sort_order := v_rec.child_sort_order;
29514 l_bom_sort_order_tbl(l_ins_count).mark_flag := 'N';
29515 l_bom_sort_order_tbl(l_ins_count).child_occurance := 1;
29516 END IF;
29517 END IF;
29518 END IF;
29519 End Loop;
29520 -- Loop thru' the x_ins_tbl and create the x_rel_tbl
29521 -- x_ins_tbl and l_bom_sort_order_tbl are one-to-one. Since the sort order width is more
29522 -- and we can't accomodate in the ATTRIBUTE column, the new tbl has been created.
29523 l_rel_count := 0;
29524 l_prev_parent := l_init_sort_code;
29525 l_prev_child := l_init_sort_code;
29526 IF x_ins_tbl.count > 0 THEN
29527 For ins_tab in x_ins_tbl.FIRST .. x_ins_tbl.LAST
29528 Loop
29529 IF l_bom_sort_order_tbl(ins_tab).parent_sort_order = l_init_sort_code THEN -- TOP MOST
29530 l_rel_count := l_rel_count + 1;
29531 x_rel_tbl(l_rel_count).subject_id := ins_tab;
29532 x_rel_tbl(l_rel_count).object_id := 0; -- Change this to Passed Instance ID for Ins creation
29533 x_rel_tbl(l_rel_count).relationship_type_code := 'COMPONENT-OF';
29534 l_prev_parent := l_init_sort_code;
29535 l_prev_child := l_bom_sort_order_tbl(ins_tab).child_sort_order;
29536 ELSE
29537 IF l_bom_sort_order_tbl(ins_tab).parent_sort_order = l_prev_parent AND
29538 l_bom_sort_order_tbl(ins_tab).child_sort_order = l_prev_child THEN
29539 l_rel_count := l_rel_count + 1;
29540 x_rel_tbl(l_rel_count).subject_id := ins_tab;
29541 x_rel_tbl(l_rel_count).relationship_type_code := 'COMPONENT-OF';
29542 For assign_count in l_bom_sort_order_tbl.FIRST .. l_bom_sort_order_tbl.LAST
29543 Loop
29544 IF l_bom_sort_order_tbl(ins_tab).parent_sort_order =
29545 l_bom_sort_order_tbl(assign_count).child_sort_order AND
29546 l_bom_sort_order_tbl(assign_count).mark_flag = 'N' THEN
29547 x_rel_tbl(l_rel_count).object_id := assign_count;
29548 l_prev_parent := l_bom_sort_order_tbl(ins_tab).parent_sort_order;
29549 l_prev_child := l_bom_sort_order_tbl(ins_tab).child_sort_order;
29550 l_temp_per_parent := l_temp_per_parent - 1;
29551 IF l_temp_per_parent = 0 THEN
29552 l_bom_sort_order_tbl(assign_count).mark_flag := 'Y'; -- Mark
29553 l_temp_per_parent := l_per_parent;
29554 END IF;
29555 EXIT;
29556 END IF;
29557 End Loop;
29558 --
29559 ELSE -- New Parent Child combination
29560 l_parent_count := 0;
29561 For par_row in l_bom_sort_order_tbl.FIRST .. l_bom_sort_order_tbl.LAST
29562 Loop
29563 -- At the end of this loop, l_parent_count will have the # of occurance of
29564 -- the current instance's parent as a child in INS_TBL.
29565 IF l_bom_sort_order_tbl(par_row).child_sort_order = l_bom_sort_order_tbl(ins_tab).parent_sort_order THEN
29566 l_parent_count := l_bom_sort_order_tbl(par_row).child_occurance;
29567 l_bom_sort_order_tbl(par_row).mark_flag := 'N';
29568 -- Even though the occurance value will be same in all the above cases,
29569 -- we just make use of this loop to assign the mark_flag to put back 'N'
29570 END IF;
29571 End Loop;
29572 --
29573 IF l_parent_count > 0 THEN
29574 l_per_parent := l_bom_sort_order_tbl(ins_tab).child_occurance/l_parent_count;
29575 l_temp_per_parent := l_per_parent;
29576 END IF;
29577 --
29578 -- Use l_temp_per_parent to Loop thru' INS_TBL and use that slot as Object ID
29579 -- and Mark wherever the l_bom_sort_order_tbl(ins_tab).parent_sort_order (current_parent)
29580 -- is same as l_bom_sort_order_tbl(assign_count).child_sort_order (Child)
29581 --
29582 l_rel_count := l_rel_count + 1;
29583 x_rel_tbl(l_rel_count).subject_id := ins_tab;
29584 x_rel_tbl(l_rel_count).relationship_type_code := 'COMPONENT-OF';
29585 For assign_count in l_bom_sort_order_tbl.FIRST .. l_bom_sort_order_tbl.LAST
29586 Loop
29587 IF l_bom_sort_order_tbl(ins_tab).parent_sort_order =
29588 l_bom_sort_order_tbl(assign_count).child_sort_order AND
29589 l_bom_sort_order_tbl(assign_count).mark_flag = 'N' THEN
29590 x_rel_tbl(l_rel_count).object_id := assign_count;
29591 l_prev_parent := l_bom_sort_order_tbl(ins_tab).parent_sort_order;
29592 l_prev_child := l_bom_sort_order_tbl(ins_tab).child_sort_order;
29593 l_temp_per_parent := l_temp_per_parent - 1;
29594 IF l_temp_per_parent = 0 THEN
29595 l_bom_sort_order_tbl(assign_count).mark_flag := 'Y'; -- Mark
29596 l_temp_per_parent := l_per_parent;
29597 END IF;
29598 EXIT;
29599 END IF;
29600 End Loop;
29601 --
29602 END IF;
29603 END IF;
29604 End Loop;
29605 END IF; -- Check for x_ins_tbl count
29606 END IF; -- Check CSI_EXPLODE_BOM
29607 --
29608 IF x_ins_tbl.count > 0 THEN
29609 For ins_tab in l_bom_sort_order_tbl.FIRST .. l_bom_sort_order_tbl.LAST
29610 Loop
29611 csi_gen_utility_pvt.put_line(l_bom_sort_order_tbl(ins_tab).parent_sort_order ||' '
29612 ||to_char(x_ins_tbl(ins_tab).inventory_item_id)||' '
29613 ||to_char(x_ins_tbl(ins_tab).quantity)||' '
29614 ||l_bom_sort_order_tbl(ins_tab).child_sort_order);
29615 End Loop;
29616 END IF;
29617 --
29618 IF x_rel_tbl.count > 0 THEN
29619 For rel_tab in x_rel_tbl.FIRST .. x_rel_tbl.LAST
29620 Loop
29621 csi_gen_utility_pvt.put_line(to_char(x_rel_tbl(rel_tab).subject_id) ||' '
29622 ||to_char(x_rel_tbl(rel_tab).object_id));
29623 End Loop;
29624 END IF;
29625 --
29626 -- Create Instance and II Relationships if the p_create_instance is TRUE
29627 IF p_create_instance = FND_API.G_TRUE THEN
29628 IF x_ins_tbl.count > 0 THEN
29629 csi_gen_utility_pvt.put_line('Calling Copy Single Item Instance..');
29630 For ins_tab in x_ins_tbl.FIRST .. x_ins_tbl.LAST
29631 Loop
29632 l_source_instance_rec := x_ins_tbl(ins_tab);
29633 l_source_instance_rec.instance_id := p_source_instance_rec.instance_id;
29634 csi_item_instance_pvt.copy_single_item_instance
29635 (
29636 p_api_version => 1.0
29637 ,p_commit => fnd_api.g_false
29638 ,p_init_msg_list => fnd_api.g_true
29639 ,p_validation_level => fnd_api.g_valid_level_full
29640 ,p_source_instance_rec => l_source_instance_rec
29641 ,p_copy_ext_attribs => fnd_api.g_true
29642 ,p_copy_org_assignments => fnd_api.g_true
29643 ,p_copy_parties => fnd_api.g_true
29644 ,p_copy_contacts => fnd_api.g_true
29645 ,p_copy_accounts => fnd_api.g_true
29646 ,p_copy_asset_assignments => fnd_api.g_true
29647 ,p_copy_pricing_attribs => fnd_api.g_true
29648 ,p_call_from_split => fnd_api.g_false
29649 ,p_call_from_bom_expl => fnd_api.g_true
29650 ,p_txn_rec => p_txn_rec
29651 ,x_new_instance_tbl => x_new_ins_tbl
29652 ,x_return_status => x_return_status
29653 ,x_msg_count => x_msg_count
29654 ,x_msg_data => x_msg_data
29655 );
29656 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
29657 csi_gen_utility_pvt.put_line('Error while trying to Copy the Instance..');
29658 FOR i in 1..x_msg_Count LOOP
29659 FND_MSG_PUB.Get(p_msg_index => i,
29660 p_encoded => 'F',
29661 p_data => x_msg_data,
29662 p_msg_index_out => x_msg_index_out );
29663 csi_gen_utility_pvt.put_line('message data = '||x_msg_data);
29664 End LOOP;
29665 RAISE FND_API.G_EXC_ERROR;
29666 END IF;
29667 -- Assign the new instance_id to x_ins_tbl.instance_id
29668 x_ins_tbl(ins_tab).instance_id := x_new_ins_tbl(1).instance_id;
29669 --
29670 -- On success Populate the relationship_tbl with the new instance_id
29671 IF x_rel_tbl.count > 0 THEN
29672 For rel_tab in x_rel_tbl.FIRST .. x_rel_tbl.LAST
29673 Loop
29674 IF x_rel_tbl(rel_tab).object_id = 0 THEN -- Top Most
29675 x_rel_tbl(rel_tab).object_id := p_source_instance_rec.instance_id;
29676 END IF;
29677 --
29678 IF x_rel_tbl(rel_tab).subject_id = ins_tab THEN
29679 x_rel_tbl(rel_tab).subject_id := x_new_ins_tbl(1).instance_id;
29680 END IF;
29681 --
29682 IF x_rel_tbl(rel_tab).object_id = ins_tab THEN
29683 x_rel_tbl(rel_tab).object_id := x_new_ins_tbl(1).instance_id;
29684 END IF;
29685 --
29686 End Loop;
29687 END IF;
29688 End Loop;
29689 --
29690 IF x_rel_tbl.count > 0 THEN
29691 csi_gen_utility_pvt.put_line('Calling II Relationship PUB...');
29692 csi_ii_relationships_pub.create_relationship
29693 (
29694 p_api_version => 1.0,
29695 p_commit => fnd_api.g_false,
29696 p_init_msg_list => fnd_api.g_true,
29697 p_validation_level => fnd_api.g_valid_level_full,
29698 p_relationship_tbl => x_rel_tbl,
29699 p_txn_rec => p_txn_rec,
29700 x_return_status => x_return_status,
29701 x_msg_count => x_msg_count,
29702 x_msg_data => x_msg_data
29703 );
29704 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
29705 csi_gen_utility_pvt.put_line('Error while trying to Create II Relationships..');
29706 FOR i in 1..x_msg_Count LOOP
29707 FND_MSG_PUB.Get(p_msg_index => i,
29708 p_encoded => 'F',
29709 p_data => x_msg_data,
29710 p_msg_index_out => x_msg_index_out );
29711 csi_gen_utility_pvt.put_line('message data = '||x_msg_data);
29712 End LOOP;
29713 RAISE FND_API.G_EXC_ERROR;
29714 END IF;
29715 END IF;
29716 END IF; -- End of x_ins_tbl_count
29717 END IF; -- Check for p_create_instance
29718 --
29719 -- Assign this to the OUT parameters
29720 p_item_tbl := x_ins_tbl;
29721 p_item_relation_tbl := x_rel_tbl;
29722 --
29723 -- Delete records from bom_small_exp_temp
29724 DELETE FROM bom_small_expl_temp where group_id = l_group_id;
29725 --
29726 -- End of API body
29727 -- Standard check of p_commit
29728 IF FND_API.To_Boolean( p_commit ) THEN
29729 COMMIT WORK;
29730 END IF;
29731 -- Standard call to get message count and if count is get message info.
29732 FND_MSG_PUB.Count_And_Get
29733 ( p_count => x_msg_count ,
29734 p_data => x_msg_data
29735 );
29736 EXCEPTION
29737 WHEN FND_API.G_EXC_ERROR THEN
29738 ROLLBACK TO explode_bom;
29739 x_return_status := FND_API.G_RET_STS_ERROR ;
29740 FND_MSG_PUB.Count_And_Get
29741 ( p_count => x_msg_count,
29742 p_data => x_msg_data
29743 );
29744 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
29745 ROLLBACK TO explode_bom;
29746 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
29747 FND_MSG_PUB.Count_And_Get
29748 ( p_count => x_msg_count,
29749 p_data => x_msg_data
29750 );
29751 WHEN OTHERS THEN
29752 ROLLBACK TO explode_bom;
29753 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
29754 IF FND_MSG_PUB.Check_Msg_Level
29755 (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
29756 THEN
29757 FND_MSG_PUB.Add_Exc_Msg
29758 ( G_PKG_NAME ,
29759 l_api_name
29760 );
29761 END IF;
29762 FND_MSG_PUB.Count_And_Get
29763 ( p_count => x_msg_count,
29764 p_data => x_msg_data
29765 );
29766 END Explode_Bom;
29767 --
29768 /*---------------------------------------------------*/
29769 /* procedure name: get_instance_hist */
29770 /* description : Retreive history transactions */
29771 /* for an instance */
29772 /*---------------------------------------------------*/
29773
29774 PROCEDURE get_instance_hist
29775 ( p_api_version IN NUMBER
29776 ,p_commit IN VARCHAR2
29777 ,p_init_msg_list IN VARCHAR2
29778 ,p_validation_level IN NUMBER
29779 ,p_transaction_id IN NUMBER
29780 ,x_instance_history_tbl OUT NOCOPY csi_datastructures_pub.instance_history_tbl
29781 ,x_return_status OUT NOCOPY VARCHAR2
29782 ,x_msg_count OUT NOCOPY NUMBER
29783 ,x_msg_data OUT NOCOPY VARCHAR2
29784 ) IS
29785 CURSOR txn_hist_csr (p_txn_id IN NUMBER) IS
29786 SELECT *
29787 FROM csi_item_instances_h
29788 WHERE transaction_id = p_txn_id;
29789
29790 l_old_ins_header_rec csi_datastructures_pub.instance_header_rec;
29791 l_new_ins_header_rec csi_datastructures_pub.instance_header_rec;
29792 l_old_ins_header_tbl csi_datastructures_pub.instance_header_tbl;
29793 l_new_ins_header_tbl csi_datastructures_pub.instance_header_tbl;
29794 l_ins_header_rec csi_datastructures_pub.instance_history_rec;
29795 l_temp_ins_rec csi_datastructures_pub.instance_history_rec;
29796 l_temp_hdr_rec csi_datastructures_pub.instance_header_rec;
29797 l_api_name CONSTANT VARCHAR2(30) := 'get_instance_hist';
29798 l_api_version CONSTANT NUMBER := 1.0;
29799 i NUMBER := 0;
29800 l_time_stamp DATE;
29801 l_instance_rec csi_datastructures_pub.instance_header_rec;
29802 l_party_header_tbl csi_datastructures_pub.party_header_tbl;
29803 l_account_header_tbl csi_datastructures_pub.party_account_header_tbl;
29804 l_org_header_tbl csi_datastructures_pub.org_units_header_tbl;
29805 l_pricing_attrib_tbl csi_datastructures_pub.pricing_attribs_tbl;
29806 l_ext_attrib_tbl csi_datastructures_pub.extend_attrib_values_tbl;
29807 l_ext_attrib_def_tbl csi_datastructures_pub.extend_attrib_tbl;
29808 l_asset_header_tbl csi_datastructures_pub.instance_asset_header_tbl;
29809 BEGIN
29810 /*
29811 IF fnd_api.to_boolean(p_commit)
29812 THEN
29813 SAVEPOINT get_instance_hist;
29814 END IF;
29815 */
29816
29817 -- Standard call to check for call compatibility.
29818 IF NOT FND_API.Compatible_API_Call (l_api_version ,
29819 p_api_version ,
29820 l_api_name ,
29821 G_PKG_NAME )
29822 THEN
29823 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
29824 END IF;
29825
29826 -- Initialize message list if p_init_msg_list is set to TRUE.
29827 IF FND_API.to_Boolean( p_init_msg_list ) THEN
29828 FND_MSG_PUB.initialize;
29829 END IF;
29830
29831 -- Initialize API return status to success
29832 x_return_status := FND_API.G_RET_STS_SUCCESS;
29833
29834 /***** srramakr commented for bug # 3304439
29835 -- Check for the profile option and enable trace
29836 IF (fnd_profile.value('CSI_ENABLE_SQL_TRACE') = 'Y') THEN
29837 dbms_session.set_sql_trace(TRUE);
29838 END IF;
29839 -- End enable trace
29840 ****/
29841
29842 -- Start API body
29843 --
29844
29845
29846 FOR l_hist_csr IN txn_hist_csr (p_transaction_id)
29847 LOOP
29848 l_ins_header_rec := l_temp_ins_rec;
29849 -- Added for bug 3439348
29850 l_old_ins_header_rec := l_temp_hdr_rec;
29851 l_new_ins_header_rec := l_temp_hdr_rec;
29852 -- End addition for bug 3439348
29853
29854 --start of code for bug 4754569--
29855 l_old_ins_header_rec.instance_id := l_hist_csr.instance_id;
29856 l_new_ins_header_rec.instance_id := l_hist_csr.instance_id;
29857 --end of code for bug 4754569--
29858
29859 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)
29860 THEN
29861 l_old_ins_header_rec.instance_number := NULL;
29862 l_new_ins_header_rec.instance_number := NULL;
29863 ELSE
29864 l_old_ins_header_rec.instance_number := l_hist_csr.old_instance_number;
29865 l_new_ins_header_rec.instance_number := l_hist_csr.new_instance_number;
29866 END IF;
29867
29868 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)
29869 THEN
29870 l_old_ins_header_rec.external_reference := NULL;
29871 l_new_ins_header_rec.external_reference := NULL;
29872 ELSE
29873 l_old_ins_header_rec.external_reference := l_hist_csr.old_external_reference;
29874 l_new_ins_header_rec.external_reference := l_hist_csr.new_external_reference;
29875 END IF;
29876
29877 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)
29878 THEN
29879 l_old_ins_header_rec.inventory_item_id := NULL;
29880 l_new_ins_header_rec.inventory_item_id := NULL;
29881 ELSE
29882 l_old_ins_header_rec.inventory_item_id := l_hist_csr.old_inventory_item_id;
29883 l_new_ins_header_rec.inventory_item_id := l_hist_csr.new_inventory_item_id;
29884 END IF;
29885
29886 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)
29887 THEN
29888 l_old_ins_header_rec.inventory_revision := NULL;
29889 l_new_ins_header_rec.inventory_revision := NULL;
29890 ELSE
29891 l_old_ins_header_rec.inventory_revision := l_hist_csr.old_inventory_revision;
29892 l_new_ins_header_rec.inventory_revision := l_hist_csr.new_inventory_revision;
29893 END IF;
29894
29895 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)
29896 THEN
29897 l_old_ins_header_rec.inv_master_organization_id := NULL;
29898 l_new_ins_header_rec.inv_master_organization_id := NULL;
29899 ELSE
29900 l_old_ins_header_rec.inv_master_organization_id := l_hist_csr.old_inv_master_organization_id;
29901 l_new_ins_header_rec.inv_master_organization_id := l_hist_csr.new_inv_master_organization_id;
29902 END IF;
29903
29904 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)
29905 THEN
29906 l_old_ins_header_rec.serial_number := NULL;
29907 l_new_ins_header_rec.serial_number := NULL;
29908 ELSE
29909 l_old_ins_header_rec.serial_number := l_hist_csr.old_serial_number;
29910 l_new_ins_header_rec.serial_number := l_hist_csr.new_serial_number;
29911 END IF;
29912
29913 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)
29914 THEN
29915 l_old_ins_header_rec.mfg_serial_number_flag := NULL;
29916 l_new_ins_header_rec.mfg_serial_number_flag := NULL;
29917 ELSE
29918 l_old_ins_header_rec.mfg_serial_number_flag := l_hist_csr.old_mfg_serial_number_flag;
29919 l_new_ins_header_rec.mfg_serial_number_flag := l_hist_csr.new_mfg_serial_number_flag;
29920 END IF;
29921
29922 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)
29923 THEN
29924 l_old_ins_header_rec.lot_number := NULL;
29925 l_new_ins_header_rec.lot_number := NULL;
29926 ELSE
29927 l_old_ins_header_rec.lot_number := l_hist_csr.old_lot_number;
29928 l_new_ins_header_rec.lot_number := l_hist_csr.new_lot_number;
29929 END IF;
29930
29931 IF NVL(l_hist_csr.old_quantity,fnd_api.g_miss_num) = NVL(l_hist_csr.new_quantity,fnd_api.g_miss_num)
29932 THEN
29933 l_old_ins_header_rec.quantity := NULL;
29934 l_new_ins_header_rec.quantity := NULL;
29935 ELSE
29936 l_old_ins_header_rec.quantity := l_hist_csr.old_quantity;
29937 l_new_ins_header_rec.quantity := l_hist_csr.new_quantity;
29938 END IF;
29939
29940 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)
29941 THEN
29942 l_old_ins_header_rec.unit_of_measure := NULL;
29943 l_new_ins_header_rec.unit_of_measure := NULL;
29944 ELSE
29945 l_old_ins_header_rec.unit_of_measure := l_hist_csr.old_unit_of_measure;
29946 l_new_ins_header_rec.unit_of_measure := l_hist_csr.new_unit_of_measure;
29947 END IF;
29948
29949 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)
29950 THEN
29951 l_old_ins_header_rec.accounting_class_code := NULL;
29952 l_new_ins_header_rec.accounting_class_code := NULL;
29953 ELSE
29954 l_old_ins_header_rec.accounting_class_code := l_hist_csr.old_accounting_class_code;
29955 l_new_ins_header_rec.accounting_class_code := l_hist_csr.new_accounting_class_code;
29956 END IF;
29957
29958 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)
29959 THEN
29960 l_old_ins_header_rec.instance_condition_id := NULL;
29961 l_new_ins_header_rec.instance_condition_id := NULL;
29962 ELSE
29963 l_old_ins_header_rec.instance_condition_id := l_hist_csr.old_instance_condition_id;
29964 l_new_ins_header_rec.instance_condition_id := l_hist_csr.new_instance_condition_id;
29965 END IF;
29966
29967 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)
29968 THEN
29969 l_old_ins_header_rec.instance_status_id := NULL;
29970 l_new_ins_header_rec.instance_status_id := NULL;
29971 ELSE
29972 l_old_ins_header_rec.instance_status_id := l_hist_csr.old_instance_status_id;
29973 l_new_ins_header_rec.instance_status_id := l_hist_csr.new_instance_status_id;
29974 END IF;
29975
29976 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)
29977 THEN
29978 l_old_ins_header_rec.customer_view_flag := NULL;
29979 l_new_ins_header_rec.customer_view_flag := NULL;
29980 ELSE
29981 l_old_ins_header_rec.customer_view_flag := l_hist_csr.old_customer_view_flag;
29982 l_new_ins_header_rec.customer_view_flag := l_hist_csr.new_customer_view_flag;
29983 END IF;
29984
29985 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)
29986 THEN
29987 l_old_ins_header_rec.merchant_view_flag := NULL;
29988 l_new_ins_header_rec.merchant_view_flag := NULL;
29989 ELSE
29990 l_old_ins_header_rec.merchant_view_flag := l_hist_csr.old_merchant_view_flag;
29991 l_new_ins_header_rec.merchant_view_flag := l_hist_csr.new_merchant_view_flag;
29992 END IF;
29993
29994 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)
29995 THEN
29996 l_old_ins_header_rec.sellable_flag := NULL;
29997 l_new_ins_header_rec.sellable_flag := NULL;
29998 ELSE
29999 l_old_ins_header_rec.sellable_flag := l_hist_csr.old_sellable_flag;
30000 l_new_ins_header_rec.sellable_flag := l_hist_csr.new_sellable_flag;
30001 END IF;
30002
30003 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)
30004 THEN
30005 l_old_ins_header_rec.system_id := NULL;
30006 l_new_ins_header_rec.system_id := NULL;
30007 ELSE
30008 l_old_ins_header_rec.system_id := l_hist_csr.old_system_id;
30009 l_new_ins_header_rec.system_id := l_hist_csr.new_system_id;
30010 END IF;
30011
30012 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)
30013 THEN
30014 l_old_ins_header_rec.instance_type_code := NULL;
30015 l_new_ins_header_rec.instance_type_code := NULL;
30016 ELSE
30017 l_old_ins_header_rec.instance_type_code := l_hist_csr.old_instance_type_code;
30018 l_new_ins_header_rec.instance_type_code := l_hist_csr.new_instance_type_code;
30019 END IF;
30020
30021 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)
30022 THEN
30023 l_old_ins_header_rec.active_start_date := NULL;
30024 l_new_ins_header_rec.active_start_date := NULL;
30025 ELSE
30026 l_old_ins_header_rec.active_start_date := l_hist_csr.old_active_start_date;
30027 l_new_ins_header_rec.active_start_date := l_hist_csr.new_active_start_date;
30028 END IF;
30029
30030 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)
30031 THEN
30032 l_old_ins_header_rec.active_end_date := NULL;
30033 l_new_ins_header_rec.active_end_date := NULL;
30034 ELSE
30035 l_old_ins_header_rec.active_end_date := l_hist_csr.old_active_end_date;
30036 l_new_ins_header_rec.active_end_date := l_hist_csr.new_active_end_date;
30037 END IF;
30038
30039 -- Added for bug 2671179
30040 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)
30041 THEN
30042 l_old_ins_header_rec.install_date := NULL;
30043 l_new_ins_header_rec.install_date := NULL;
30044 ELSE
30045 l_old_ins_header_rec.install_date := l_hist_csr.old_install_date;
30046 l_new_ins_header_rec.install_date := l_hist_csr.new_install_date;
30047 END IF;
30048
30049 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)
30050 THEN
30051 l_old_ins_header_rec.return_by_date := NULL;
30052 l_new_ins_header_rec.return_by_date := NULL;
30053 ELSE
30054 l_old_ins_header_rec.return_by_date := l_hist_csr.old_return_by_date;
30055 l_new_ins_header_rec.return_by_date := l_hist_csr.new_return_by_date;
30056 END IF;
30057
30058 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)
30059 THEN
30060 l_old_ins_header_rec.actual_return_date := NULL;
30061 l_new_ins_header_rec.actual_return_date := NULL;
30062 ELSE
30063 l_old_ins_header_rec.actual_return_date := l_hist_csr.old_actual_return_date;
30064 l_new_ins_header_rec.actual_return_date := l_hist_csr.new_actual_return_date;
30065 END IF;
30066 -- End addition for bug 2671179
30067
30068 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)
30069 THEN
30070 l_old_ins_header_rec.location_type_code := NULL;
30071 l_new_ins_header_rec.location_type_code := NULL;
30072 ELSE
30073 l_old_ins_header_rec.location_type_code := l_hist_csr.old_location_type_code;
30074 l_new_ins_header_rec.location_type_code := l_hist_csr.new_location_type_code;
30075 END IF;
30076
30077 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)
30078 THEN
30079 l_old_ins_header_rec.location_id := NULL;
30080 l_new_ins_header_rec.location_id := NULL;
30081 ELSE
30082 l_old_ins_header_rec.location_id := l_hist_csr.old_location_id;
30083 l_new_ins_header_rec.location_id := l_hist_csr.new_location_id;
30084 l_old_ins_header_rec.location_type_code := l_hist_csr.old_location_type_code;
30085 l_new_ins_header_rec.location_type_code := l_hist_csr.new_location_type_code;
30086 END IF;
30087
30088 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)
30089 THEN
30090 l_old_ins_header_rec.inv_organization_id := NULL;
30091 l_new_ins_header_rec.inv_organization_id := NULL;
30092 ELSE
30093 l_old_ins_header_rec.inv_organization_id := l_hist_csr.old_inv_organization_id;
30094 l_new_ins_header_rec.inv_organization_id := l_hist_csr.new_inv_organization_id;
30095 l_old_ins_header_rec.location_type_code := l_hist_csr.old_location_type_code;
30096 l_new_ins_header_rec.location_type_code := l_hist_csr.new_location_type_code;
30097 END IF;
30098
30099 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)
30100 THEN
30101 l_old_ins_header_rec.inv_subinventory_name := NULL;
30102 l_new_ins_header_rec.inv_subinventory_name := NULL;
30103 ELSE
30104 l_old_ins_header_rec.inv_subinventory_name := l_hist_csr.old_inv_subinventory_name;
30105 l_new_ins_header_rec.inv_subinventory_name := l_hist_csr.new_inv_subinventory_name;
30106 END IF;
30107
30108 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)
30109 THEN
30110 l_old_ins_header_rec.inv_locator_id := NULL;
30111 l_new_ins_header_rec.inv_locator_id := NULL;
30112 ELSE
30113 l_old_ins_header_rec.inv_locator_id := l_hist_csr.old_inv_locator_id;
30114 l_new_ins_header_rec.inv_locator_id := l_hist_csr.new_inv_locator_id;
30115 END IF;
30116
30117 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)
30118 THEN
30119 l_old_ins_header_rec.pa_project_id := NULL;
30120 l_new_ins_header_rec.pa_project_id := NULL;
30121 ELSE
30122 l_old_ins_header_rec.pa_project_id := l_hist_csr.old_pa_project_id;
30123 l_new_ins_header_rec.pa_project_id := l_hist_csr.new_pa_project_id;
30124 l_old_ins_header_rec.location_type_code := l_hist_csr.old_location_type_code;
30125 l_new_ins_header_rec.location_type_code := l_hist_csr.new_location_type_code;
30126 END IF;
30127
30128 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)
30129 THEN
30130 l_old_ins_header_rec.pa_project_task_id := NULL;
30131 l_new_ins_header_rec.pa_project_task_id := NULL;
30132 ELSE
30133 l_old_ins_header_rec.pa_project_task_id := l_hist_csr.old_pa_project_task_id;
30134 l_new_ins_header_rec.pa_project_task_id := l_hist_csr.new_pa_project_task_id;
30135 l_old_ins_header_rec.location_type_code := l_hist_csr.old_location_type_code;
30136 l_new_ins_header_rec.location_type_code := l_hist_csr.new_location_type_code;
30137 END IF;
30138
30139 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)
30140 THEN
30141 l_old_ins_header_rec.in_transit_order_line_id := NULL;
30142 l_new_ins_header_rec.in_transit_order_line_id := NULL;
30143 ELSE
30144 l_old_ins_header_rec.in_transit_order_line_id := l_hist_csr.old_in_transit_order_line_id;
30145 l_new_ins_header_rec.in_transit_order_line_id := l_hist_csr.new_in_transit_order_line_id;
30146 l_old_ins_header_rec.location_type_code := l_hist_csr.old_location_type_code;
30147 l_new_ins_header_rec.location_type_code := l_hist_csr.new_location_type_code;
30148 END IF;
30149
30150 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)
30151 THEN
30152 l_old_ins_header_rec.wip_job_id := NULL;
30153 l_new_ins_header_rec.wip_job_id := NULL;
30154 ELSE
30155 l_old_ins_header_rec.wip_job_id := l_hist_csr.old_wip_job_id;
30156 l_new_ins_header_rec.wip_job_id := l_hist_csr.new_wip_job_id;
30157 l_old_ins_header_rec.location_type_code := l_hist_csr.old_location_type_code;
30158 l_new_ins_header_rec.location_type_code := l_hist_csr.new_location_type_code;
30159 END IF;
30160
30161 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)
30162 THEN
30163 l_old_ins_header_rec.po_order_line_id := NULL;
30164 l_new_ins_header_rec.po_order_line_id := NULL;
30165 ELSE
30166 l_old_ins_header_rec.po_order_line_id := l_hist_csr.old_po_order_line_id;
30167 l_new_ins_header_rec.po_order_line_id := l_hist_csr.new_po_order_line_id;
30168 END IF;
30169
30170 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)
30171 THEN
30172 l_old_ins_header_rec.last_oe_agreement_id := NULL;
30173 l_new_ins_header_rec.last_oe_agreement_id := NULL;
30174 ELSE
30175 l_old_ins_header_rec.last_oe_agreement_id := l_hist_csr.old_oe_agreement_id;
30176 l_new_ins_header_rec.last_oe_agreement_id := l_hist_csr.new_oe_agreement_id;
30177 END IF;
30178
30179 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)
30180 THEN
30181 l_old_ins_header_rec.LAST_OE_ORDER_LINE_ID := NULL;
30182 l_new_ins_header_rec.LAST_OE_ORDER_LINE_ID := NULL;
30183 ELSE
30184 l_old_ins_header_rec.LAST_OE_ORDER_LINE_ID := l_hist_csr.old_LAST_OE_ORDER_LINE_ID;
30185 l_new_ins_header_rec.LAST_OE_ORDER_LINE_ID := l_hist_csr.new_LAST_OE_ORDER_LINE_ID;
30186 END IF;
30187
30188 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)
30189 THEN
30190 l_old_ins_header_rec.LAST_OE_RMA_LINE_ID := NULL;
30191 l_new_ins_header_rec.LAST_OE_RMA_LINE_ID := NULL;
30192 ELSE
30193 l_old_ins_header_rec.LAST_OE_RMA_LINE_ID := l_hist_csr.old_LAST_OE_RMA_LINE_ID;
30194 l_new_ins_header_rec.LAST_OE_RMA_LINE_ID := l_hist_csr.new_LAST_OE_RMA_LINE_ID;
30195 END IF;
30196
30197 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)
30198 THEN
30199 l_old_ins_header_rec.LAST_WIP_JOB_ID := NULL;
30200 l_new_ins_header_rec.LAST_WIP_JOB_ID := NULL;
30201 ELSE
30202 l_old_ins_header_rec.LAST_WIP_JOB_ID := l_hist_csr.old_LAST_WIP_JOB_ID;
30203 l_new_ins_header_rec.LAST_WIP_JOB_ID := l_hist_csr.new_LAST_WIP_JOB_ID;
30204 END IF;
30205
30206 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)
30207 THEN
30208 l_old_ins_header_rec.LAST_PO_PO_LINE_ID := NULL;
30209 l_new_ins_header_rec.LAST_PO_PO_LINE_ID := NULL;
30210 ELSE
30211 l_old_ins_header_rec.LAST_PO_PO_LINE_ID := l_hist_csr.old_LAST_PO_PO_LINE_ID;
30212 l_new_ins_header_rec.LAST_PO_PO_LINE_ID := l_hist_csr.new_LAST_PO_PO_LINE_ID;
30213 END IF;
30214
30215 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)
30216 THEN
30217 l_old_ins_header_rec.LAST_PA_PROJECT_ID := NULL;
30218 l_new_ins_header_rec.LAST_PA_PROJECT_ID := NULL;
30219 ELSE
30220 l_old_ins_header_rec.LAST_PA_PROJECT_ID := l_hist_csr.old_LAST_PA_PROJECT_ID;
30221 l_new_ins_header_rec.LAST_PA_PROJECT_ID := l_hist_csr.new_LAST_PA_PROJECT_ID;
30222 END IF;
30223
30224 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)
30225 THEN
30226 l_old_ins_header_rec.LAST_PA_TASK_ID := NULL;
30227 l_new_ins_header_rec.LAST_PA_TASK_ID := NULL;
30228 ELSE
30229 l_old_ins_header_rec.LAST_PA_TASK_ID := l_hist_csr.old_LAST_PA_TASK_ID;
30230 l_new_ins_header_rec.LAST_PA_TASK_ID := l_hist_csr.new_LAST_PA_TASK_ID;
30231 END IF;
30232
30233 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)
30234 THEN
30235 l_old_ins_header_rec.LAST_TXN_LINE_DETAIL_ID := NULL;
30236 l_new_ins_header_rec.LAST_TXN_LINE_DETAIL_ID := NULL;
30237 ELSE
30238 l_old_ins_header_rec.LAST_TXN_LINE_DETAIL_ID := l_hist_csr.old_LAST_TXN_LINE_DETAIL_ID;
30239 l_new_ins_header_rec.LAST_TXN_LINE_DETAIL_ID := l_hist_csr.new_LAST_TXN_LINE_DETAIL_ID;
30240 END IF;
30241
30242 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)
30243 THEN
30244 l_old_ins_header_rec.LAST_OE_PO_NUMBER := NULL;
30245 l_new_ins_header_rec.LAST_OE_PO_NUMBER := NULL;
30246 ELSE
30247 l_old_ins_header_rec.LAST_OE_PO_NUMBER := l_hist_csr.old_LAST_OE_PO_NUMBER;
30248 l_new_ins_header_rec.LAST_OE_PO_NUMBER := l_hist_csr.new_LAST_OE_PO_NUMBER;
30249 END IF;
30250
30251 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)
30252 THEN
30253 l_old_ins_header_rec.completeness_flag := NULL;
30254 l_new_ins_header_rec.completeness_flag := NULL;
30255 ELSE
30256 l_old_ins_header_rec.completeness_flag := l_hist_csr.old_completeness_flag;
30257 l_new_ins_header_rec.completeness_flag := l_hist_csr.new_completeness_flag;
30258 END IF;
30259
30260 IF NVL(l_hist_csr.old_context,fnd_api.g_miss_char) = NVL(l_hist_csr.new_context,fnd_api.g_miss_char)
30261 THEN
30262 l_old_ins_header_rec.context := NULL;
30263 l_new_ins_header_rec.context := NULL;
30264 ELSE
30265 l_old_ins_header_rec.context := l_hist_csr.old_context;
30266 l_new_ins_header_rec.context := l_hist_csr.new_context;
30267 END IF;
30268
30269 IF NVL(l_hist_csr.old_attribute1,fnd_api.g_miss_char) = NVL(l_hist_csr.new_attribute1,fnd_api.g_miss_char)
30270 THEN
30271 l_old_ins_header_rec.attribute1 := NULL;
30272 l_new_ins_header_rec.attribute1 := NULL;
30273 ELSE
30274 l_old_ins_header_rec.attribute1 := l_hist_csr.old_attribute1;
30275 l_new_ins_header_rec.attribute1 := l_hist_csr.new_attribute1;
30276 END IF;
30277
30278 IF NVL(l_hist_csr.old_attribute2,fnd_api.g_miss_char) = NVL(l_hist_csr.new_attribute2,fnd_api.g_miss_char)
30279 THEN
30280 l_old_ins_header_rec.attribute2 := NULL;
30281 l_new_ins_header_rec.attribute2 := NULL;
30282 ELSE
30283 l_old_ins_header_rec.attribute2 := l_hist_csr.old_attribute2;
30284 l_new_ins_header_rec.attribute2 := l_hist_csr.new_attribute2;
30285 END IF;
30286
30287 IF NVL(l_hist_csr.old_attribute3,fnd_api.g_miss_char) = NVL(l_hist_csr.new_attribute3,fnd_api.g_miss_char)
30288 THEN
30289 l_old_ins_header_rec.attribute3 := NULL;
30290 l_new_ins_header_rec.attribute3 := NULL;
30291 ELSE
30292 l_old_ins_header_rec.attribute3 := l_hist_csr.old_attribute3;
30293 l_new_ins_header_rec.attribute3 := l_hist_csr.new_attribute3;
30294 END IF;
30295
30296 IF NVL(l_hist_csr.old_attribute4,fnd_api.g_miss_char) = NVL(l_hist_csr.new_attribute4,fnd_api.g_miss_char)
30297 THEN
30298 l_old_ins_header_rec.attribute4 := NULL;
30299 l_new_ins_header_rec.attribute4 := NULL;
30300 ELSE
30301 l_old_ins_header_rec.attribute4 := l_hist_csr.old_attribute4;
30302 l_new_ins_header_rec.attribute4 := l_hist_csr.new_attribute4;
30303 END IF;
30304
30305 IF NVL(l_hist_csr.old_attribute5,fnd_api.g_miss_char) = NVL(l_hist_csr.new_attribute5,fnd_api.g_miss_char)
30306 THEN
30307 l_old_ins_header_rec.attribute5 := NULL;
30308 l_new_ins_header_rec.attribute5 := NULL;
30309 ELSE
30310 l_old_ins_header_rec.attribute5 := l_hist_csr.old_attribute5;
30311 l_new_ins_header_rec.attribute5 := l_hist_csr.new_attribute5;
30312 END IF;
30313
30314 IF NVL(l_hist_csr.old_attribute6,fnd_api.g_miss_char) = NVL(l_hist_csr.new_attribute6,fnd_api.g_miss_char)
30315 THEN
30316 l_old_ins_header_rec.attribute6 := NULL;
30317 l_new_ins_header_rec.attribute6 := NULL;
30318 ELSE
30319 l_old_ins_header_rec.attribute6 := l_hist_csr.old_attribute6;
30320 l_new_ins_header_rec.attribute6 := l_hist_csr.new_attribute6;
30321 END IF;
30322
30323 IF NVL(l_hist_csr.old_attribute7,fnd_api.g_miss_char) = NVL(l_hist_csr.new_attribute7,fnd_api.g_miss_char)
30324 THEN
30325 l_old_ins_header_rec.attribute7 := NULL;
30326 l_new_ins_header_rec.attribute7 := NULL;
30327 ELSE
30328 l_old_ins_header_rec.attribute7 := l_hist_csr.old_attribute7;
30329 l_new_ins_header_rec.attribute7 := l_hist_csr.new_attribute7;
30330 END IF;
30331
30332 IF NVL(l_hist_csr.old_attribute8,fnd_api.g_miss_char) = NVL(l_hist_csr.new_attribute8,fnd_api.g_miss_char)
30333 THEN
30334 l_old_ins_header_rec.attribute8 := NULL;
30335 l_new_ins_header_rec.attribute8 := NULL;
30336 ELSE
30337 l_old_ins_header_rec.attribute8 := l_hist_csr.old_attribute8;
30338 l_new_ins_header_rec.attribute8 := l_hist_csr.new_attribute8;
30339 END IF;
30340
30341 IF NVL(l_hist_csr.old_attribute9,fnd_api.g_miss_char) = NVL(l_hist_csr.new_attribute9,fnd_api.g_miss_char)
30342 THEN
30343 l_old_ins_header_rec.attribute9 := NULL;
30344 l_new_ins_header_rec.attribute9 := NULL;
30345 ELSE
30346 l_old_ins_header_rec.attribute9 := l_hist_csr.old_attribute9;
30347 l_new_ins_header_rec.attribute9 := l_hist_csr.new_attribute9;
30348 END IF;
30349
30350 IF NVL(l_hist_csr.old_attribute10,fnd_api.g_miss_char) = NVL(l_hist_csr.new_attribute10,fnd_api.g_miss_char)
30351 THEN
30352 l_old_ins_header_rec.attribute10 := NULL;
30353 l_new_ins_header_rec.attribute10 := NULL;
30354 ELSE
30355 l_old_ins_header_rec.attribute10 := l_hist_csr.old_attribute10;
30356 l_new_ins_header_rec.attribute10 := l_hist_csr.new_attribute10;
30357 END IF;
30358
30359 IF NVL(l_hist_csr.old_attribute11,fnd_api.g_miss_char) = NVL(l_hist_csr.new_attribute11,fnd_api.g_miss_char)
30360 THEN
30361 l_old_ins_header_rec.attribute11 := NULL;
30362 l_new_ins_header_rec.attribute11 := NULL;
30363 ELSE
30364 l_old_ins_header_rec.attribute11 := l_hist_csr.old_attribute11;
30365 l_new_ins_header_rec.attribute11 := l_hist_csr.new_attribute11;
30366 END IF;
30367
30368 IF NVL(l_hist_csr.old_attribute12,fnd_api.g_miss_char) = NVL(l_hist_csr.new_attribute12,fnd_api.g_miss_char)
30369 THEN
30370 l_old_ins_header_rec.attribute12 := NULL;
30371 l_new_ins_header_rec.attribute12 := NULL;
30372 ELSE
30373 l_old_ins_header_rec.attribute12 := l_hist_csr.old_attribute12;
30374 l_new_ins_header_rec.attribute12 := l_hist_csr.new_attribute12;
30375 END IF;
30376
30377 IF NVL(l_hist_csr.old_attribute13,fnd_api.g_miss_char) = NVL(l_hist_csr.new_attribute13,fnd_api.g_miss_char)
30378 THEN
30379 l_old_ins_header_rec.attribute13 := NULL;
30380 l_new_ins_header_rec.attribute13 := NULL;
30381 ELSE
30382 l_old_ins_header_rec.attribute13 := l_hist_csr.old_attribute13;
30383 l_new_ins_header_rec.attribute13 := l_hist_csr.new_attribute13;
30384 END IF;
30385
30386 IF NVL(l_hist_csr.old_attribute14,fnd_api.g_miss_char) = NVL(l_hist_csr.new_attribute14,fnd_api.g_miss_char)
30387 THEN
30388 l_old_ins_header_rec.attribute14 := NULL;
30389 l_new_ins_header_rec.attribute14 := NULL;
30390 ELSE
30391 l_old_ins_header_rec.attribute14 := l_hist_csr.old_attribute14;
30392 l_new_ins_header_rec.attribute14 := l_hist_csr.new_attribute14;
30393 END IF;
30394
30395 IF NVL(l_hist_csr.old_attribute15,fnd_api.g_miss_char) = NVL(l_hist_csr.new_attribute15,fnd_api.g_miss_char)
30396 THEN
30397 l_old_ins_header_rec.attribute15 := NULL;
30398 l_new_ins_header_rec.attribute15 := NULL;
30399 ELSE
30400 l_old_ins_header_rec.attribute15 := l_hist_csr.old_attribute15;
30401 l_new_ins_header_rec.attribute15 := l_hist_csr.new_attribute15;
30402 END IF;
30403
30404 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)
30405 THEN
30406 l_old_ins_header_rec.install_location_type_code := NULL;
30407 l_new_ins_header_rec.install_location_type_code := NULL;
30408 ELSE
30409 l_old_ins_header_rec.install_location_type_code := l_hist_csr.old_inst_loc_type_code;
30410 l_new_ins_header_rec.install_location_type_code := l_hist_csr.new_inst_loc_type_code;
30411 END IF;
30412
30413 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)
30414 THEN
30415 l_old_ins_header_rec.install_location_id := NULL;
30416 l_new_ins_header_rec.install_location_id := NULL;
30417 ELSE
30418 l_old_ins_header_rec.install_location_id := l_hist_csr.old_inst_loc_id;
30419 l_new_ins_header_rec.install_location_id := l_hist_csr.new_inst_loc_id;
30420 l_old_ins_header_rec.install_location_type_code := l_hist_csr.old_inst_loc_type_code;
30421 l_new_ins_header_rec.install_location_type_code := l_hist_csr.new_inst_loc_type_code;
30422 END IF;
30423
30424 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)
30425 THEN
30426 l_old_ins_header_rec.instance_usage_code := NULL;
30427 l_new_ins_header_rec.instance_usage_code := NULL;
30428 ELSE
30429 l_old_ins_header_rec.instance_usage_code := l_hist_csr.old_inst_usage_code;
30430 l_new_ins_header_rec.instance_usage_code := l_hist_csr.new_inst_usage_code;
30431 END IF;
30432
30433 -- Added by sguthiva for att enhancements
30434 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)
30435 THEN
30436 l_old_ins_header_rec.config_inst_rev_num := NULL;
30437 l_new_ins_header_rec.config_inst_rev_num := NULL;
30438 ELSE
30439 l_old_ins_header_rec.config_inst_rev_num := l_hist_csr.old_config_inst_rev_num;
30440 l_new_ins_header_rec.config_inst_rev_num := l_hist_csr.new_config_inst_rev_num;
30441 END IF;
30442
30443 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)
30444 THEN
30445 l_old_ins_header_rec.config_valid_status := NULL;
30446 l_new_ins_header_rec.config_valid_status := NULL;
30447 ELSE
30448 l_old_ins_header_rec.config_valid_status := l_hist_csr.old_config_valid_status;
30449 l_new_ins_header_rec.config_valid_status := l_hist_csr.new_config_valid_status;
30450 END IF;
30451
30452 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)
30453 THEN
30454 l_old_ins_header_rec.instance_description := NULL;
30455 l_new_ins_header_rec.instance_description := NULL;
30456 ELSE
30457 l_old_ins_header_rec.instance_description := l_hist_csr.old_instance_description;
30458 l_new_ins_header_rec.instance_description := l_hist_csr.new_instance_description;
30459 END IF;
30460
30461 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)
30462 THEN
30463 l_old_ins_header_rec.vld_organization_id := NULL;
30464 l_new_ins_header_rec.vld_organization_id := NULL;
30465 ELSE
30466 l_old_ins_header_rec.vld_organization_id := l_hist_csr.old_last_vld_organization_id;
30467 l_new_ins_header_rec.vld_organization_id := l_hist_csr.new_last_vld_organization_id;
30468 END IF;
30469 -- End of addition.
30470
30471 -- Addition of columns for FA Integration
30472 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)
30473 THEN
30474 l_old_ins_header_rec.purchase_unit_price := NULL;
30475 l_new_ins_header_rec.purchase_unit_price := NULL;
30476 ELSE
30477 l_old_ins_header_rec.purchase_unit_price := l_hist_csr.old_purchase_unit_price;
30478 l_new_ins_header_rec.purchase_unit_price := l_hist_csr.new_purchase_unit_price;
30479 END IF;
30480
30481 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)
30482 THEN
30483 l_old_ins_header_rec.purchase_currency_code := NULL;
30484 l_new_ins_header_rec.purchase_currency_code := NULL;
30485 ELSE
30486 l_old_ins_header_rec.purchase_currency_code := l_hist_csr.old_purchase_currency_code;
30487 l_new_ins_header_rec.purchase_currency_code := l_hist_csr.new_purchase_currency_code;
30488 END IF;
30489
30490 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)
30491 THEN
30492 l_old_ins_header_rec.payables_unit_price := NULL;
30493 l_new_ins_header_rec.payables_unit_price := NULL;
30494 ELSE
30495 l_old_ins_header_rec.payables_unit_price := l_hist_csr.old_payables_unit_price;
30496 l_new_ins_header_rec.payables_unit_price := l_hist_csr.new_payables_unit_price;
30497 END IF;
30498
30499 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)
30500 THEN
30501 l_old_ins_header_rec.payables_currency_code := NULL;
30502 l_new_ins_header_rec.payables_currency_code := NULL;
30503 ELSE
30504 l_old_ins_header_rec.payables_currency_code := l_hist_csr.old_payables_currency_code;
30505 l_new_ins_header_rec.payables_currency_code := l_hist_csr.new_payables_currency_code;
30506 END IF;
30507
30508 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)
30509 THEN
30510 l_old_ins_header_rec.sales_unit_price := NULL;
30511 l_new_ins_header_rec.sales_unit_price := NULL;
30512 ELSE
30513 l_old_ins_header_rec.sales_unit_price := l_hist_csr.old_sales_unit_price;
30514 l_new_ins_header_rec.sales_unit_price := l_hist_csr.new_sales_unit_price;
30515 END IF;
30516
30517 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)
30518 THEN
30519 l_old_ins_header_rec.sales_currency_code := NULL;
30520 l_new_ins_header_rec.sales_currency_code := NULL;
30521 ELSE
30522 l_old_ins_header_rec.sales_currency_code := l_hist_csr.old_sales_currency_code;
30523 l_new_ins_header_rec.sales_currency_code := l_hist_csr.new_sales_currency_code;
30524 END IF;
30525
30526 IF NVL(l_hist_csr.old_operational_status_code,fnd_api.g_miss_char) =
30527 NVL(l_hist_csr.new_operational_status_code,fnd_api.g_miss_char)
30528 THEN
30529 l_old_ins_header_rec.operational_status_code := NULL;
30530 l_new_ins_header_rec.operational_status_code := NULL;
30531 ELSE
30532 l_old_ins_header_rec.operational_status_code := l_hist_csr.old_operational_status_code;
30533 l_new_ins_header_rec.operational_status_code := l_hist_csr.new_operational_status_code;
30534 END IF;
30535 -- End addition of columns for FA Integration
30536 -- Addition for bug 2696607
30537 IF (l_new_ins_header_rec.install_location_id IS NOT NULL AND
30538 l_new_ins_header_rec.install_location_type_code IS NULL )
30539 OR (l_new_ins_header_rec.location_id IS NOT NULL AND
30540 l_new_ins_header_rec.location_type_code IS NULL )
30541 or (l_new_ins_header_rec.inv_organization_id IS NOT NULL AND
30542 l_old_ins_header_rec.inv_organization_id IS NOT NULL
30543 )
30544 THEN
30545 l_instance_rec.instance_id := l_hist_csr.instance_id;
30546 l_time_stamp := l_hist_csr.creation_date;
30547 csi_item_instance_pub.get_item_instance_details
30548 ( p_api_version => 1.0
30549 ,p_commit => fnd_api.g_false
30550 ,p_init_msg_list => fnd_api.g_false
30551 ,p_validation_level => fnd_api.g_valid_level_full
30552 ,p_instance_rec => l_instance_rec
30553 ,p_get_parties => fnd_api.g_false
30554 ,p_party_header_tbl => l_party_header_tbl
30555 ,p_get_accounts => fnd_api.g_false
30556 ,p_account_header_tbl => l_account_header_tbl
30557 ,p_get_org_assignments => fnd_api.g_false
30558 ,p_org_header_tbl => l_org_header_tbl
30559 ,p_get_pricing_attribs => fnd_api.g_false
30560 ,p_pricing_attrib_tbl => l_pricing_attrib_tbl
30561 ,p_get_ext_attribs => fnd_api.g_false
30562 ,p_ext_attrib_tbl => l_ext_attrib_tbl
30563 ,p_ext_attrib_def_tbl => l_ext_attrib_def_tbl
30564 ,p_get_asset_assignments => fnd_api.g_false
30565 ,p_asset_header_tbl => l_asset_header_tbl
30566 ,p_resolve_id_columns => fnd_api.g_false
30567 ,p_time_stamp => l_time_stamp
30568 ,x_return_status => x_return_status
30569 ,x_msg_count => x_msg_count
30570 ,x_msg_data => x_msg_data
30571 );
30572
30573 IF NOT(x_return_status = fnd_api.g_ret_sts_success) THEN
30574 RAISE fnd_api.g_exc_error;
30575 END IF;
30576
30577 IF (l_new_ins_header_rec.install_location_id IS NOT NULL AND
30578 l_new_ins_header_rec.install_location_type_code IS NULL )
30579 THEN
30580 l_old_ins_header_rec.install_location_type_code:=l_instance_rec.install_location_type_code;
30581 l_new_ins_header_rec.install_location_type_code:=l_instance_rec.install_location_type_code;
30582 END IF;
30583
30584 IF (l_new_ins_header_rec.location_id IS NOT NULL AND
30585 l_new_ins_header_rec.location_type_code IS NULL )
30586 THEN
30587 l_old_ins_header_rec.location_type_code:=l_instance_rec.location_type_code;
30588 l_new_ins_header_rec.location_type_code:=l_instance_rec.location_type_code;
30589 END IF;
30590
30591 IF (l_new_ins_header_rec.inv_organization_id IS NOT NULL AND
30592 l_old_ins_header_rec.inv_organization_id IS NOT NULL )
30593 THEN
30594 l_old_ins_header_rec.location_type_code:=l_instance_rec.location_type_code;
30595 l_new_ins_header_rec.location_type_code:=l_instance_rec.location_type_code;
30596 END IF;
30597
30598
30599 END IF;
30600 -- End addition for bug 2696607
30601
30602 --start of code for bug 4754569--
30603 IF l_old_ins_header_rec.criticality= fnd_api.g_miss_char
30604 THEN
30605 l_old_ins_header_rec.criticality := NULL;
30606 END IF;
30607
30608 IF l_new_ins_header_rec.criticality= fnd_api.g_miss_char
30609 THEN
30610 l_new_ins_header_rec.criticality := NULL;
30611 END IF;
30612
30613 IF l_old_ins_header_rec.category_name= fnd_api.g_miss_char
30614 THEN
30615 l_old_ins_header_rec.category_name := NULL;
30616 END IF;
30617
30618 IF l_new_ins_header_rec.category_name= fnd_api.g_miss_char
30619 THEN
30620 l_new_ins_header_rec.category_name := NULL;
30621 END IF;
30622
30623 --included for bug 5211068
30624 IF l_old_ins_header_rec.maintainable = fnd_api.g_miss_char
30625 THEN
30626 l_old_ins_header_rec.maintainable := NULL;
30627 END IF;
30628
30629 IF l_new_ins_header_rec.maintainable = fnd_api.g_miss_char
30630 THEN
30631 l_new_ins_header_rec.maintainable := NULL;
30632 END IF;
30633
30634 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)
30635 THEN
30636 l_old_ins_header_rec.maintainable_flag := NULL;
30637 l_new_ins_header_rec.maintainable_flag := NULL;
30638 ELSE
30639 l_old_ins_header_rec.maintainable_flag := l_hist_csr.old_maintainable_flag;
30640 l_new_ins_header_rec.maintainable_flag := l_hist_csr.new_maintainable_flag;
30641 END IF;
30642 --end of fix 5211068
30643
30644
30645
30646 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)
30647 THEN
30648 l_old_ins_header_rec.asset_criticality_code := NULL;
30649 l_new_ins_header_rec.asset_criticality_code := NULL;
30650 ELSE
30651 l_old_ins_header_rec.asset_criticality_code := l_hist_csr.old_asset_criticality_code;
30652 l_new_ins_header_rec.asset_criticality_code := l_hist_csr.new_asset_criticality_code;
30653 END IF;
30654
30655 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)
30656 THEN
30657 l_old_ins_header_rec.category_id := NULL;
30658 l_new_ins_header_rec.category_id := NULL;
30659 ELSE
30660 l_old_ins_header_rec.category_id := l_hist_csr.old_category_id;
30661 l_new_ins_header_rec.category_id := l_hist_csr.new_category_id;
30662 END IF;
30663
30664
30665 --end of code for bug 4754569--
30666
30667 l_old_ins_header_tbl(1):=l_old_ins_header_rec;
30668 csi_item_instance_pvt.Resolve_id_columns
30669 (p_instance_header_tbl => l_old_ins_header_tbl);
30670 l_old_ins_header_rec:=l_old_ins_header_tbl(1);
30671
30672
30673 l_new_ins_header_tbl(1):=l_new_ins_header_rec;
30674 csi_item_instance_pvt.Resolve_id_columns
30675 (p_instance_header_tbl => l_new_ins_header_tbl);
30676 l_new_ins_header_rec:=l_new_ins_header_tbl(1);
30677
30678
30679 /*
30680 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)
30681 THEN
30682 l_old_ins_header_rec.location_type_code := NULL;
30683 l_new_ins_header_rec.location_type_code := NULL;
30684 END IF;
30685
30686 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)
30687 THEN
30688 l_old_ins_header_rec.install_location_type_code := NULL;
30689 l_new_ins_header_rec.install_location_type_code := NULL;
30690 END IF;
30691 */
30692
30693 -- Added for bug 2763557
30694 IF l_old_ins_header_rec.in_transit_order_line_number = fnd_api.g_miss_num
30695 THEN
30696 l_old_ins_header_rec.in_transit_order_line_number := NULL;
30697 END IF;
30698
30699 IF l_new_ins_header_rec.in_transit_order_line_number = fnd_api.g_miss_num
30700 THEN
30701 l_new_ins_header_rec.in_transit_order_line_number := NULL;
30702 END IF;
30703 -- End addition for bug 2763557
30704
30705 IF l_old_ins_header_rec.in_transit_order_number = fnd_api.g_miss_num
30706 THEN
30707 l_old_ins_header_rec.in_transit_order_number := NULL;
30708 END IF;
30709
30710 IF l_new_ins_header_rec.in_transit_order_number = fnd_api.g_miss_num
30711 THEN
30712 l_new_ins_header_rec.in_transit_order_number := NULL;
30713 END IF;
30714
30715
30716 IF l_old_ins_header_rec.sales_order_number = fnd_api.g_miss_num
30717 THEN
30718 l_old_ins_header_rec.sales_order_number := NULL;
30719 END IF;
30720
30721 IF l_new_ins_header_rec.sales_order_number = fnd_api.g_miss_num
30722 THEN
30723 l_new_ins_header_rec.sales_order_number := NULL;
30724 END IF;
30725
30726 IF l_old_ins_header_rec.sales_order_line_number = fnd_api.g_miss_num
30727 THEN
30728 l_old_ins_header_rec.sales_order_line_number := NULL;
30729 END IF;
30730
30731 IF l_new_ins_header_rec.sales_order_line_number = fnd_api.g_miss_num
30732 THEN
30733 l_new_ins_header_rec.sales_order_line_number := NULL;
30734 END IF;
30735
30736
30737 IF l_old_ins_header_rec.sales_order_date = fnd_api.g_miss_date
30738 THEN
30739 l_old_ins_header_rec.sales_order_date := NULL;
30740 END IF;
30741
30742 IF l_new_ins_header_rec.sales_order_date = fnd_api.g_miss_date
30743 THEN
30744 l_new_ins_header_rec.sales_order_date := NULL;
30745 END IF;
30746
30747
30748 -- Added for tar 14834588.600
30749 IF l_old_ins_header_rec.current_loc_address1= fnd_api.g_miss_char
30750 THEN
30751 l_old_ins_header_rec.current_loc_address1 := NULL;
30752 END IF;
30753
30754 IF l_new_ins_header_rec.current_loc_address1= fnd_api.g_miss_char
30755 THEN
30756 l_new_ins_header_rec.current_loc_address1 := NULL;
30757 END IF;
30758
30759 IF l_old_ins_header_rec.current_loc_address2= fnd_api.g_miss_char
30760 THEN
30761 l_old_ins_header_rec.current_loc_address2 := NULL;
30762 END IF;
30763
30764 IF l_new_ins_header_rec.current_loc_address2= fnd_api.g_miss_char
30765 THEN
30766 l_new_ins_header_rec.current_loc_address2 := NULL;
30767 END IF;
30768
30769 IF l_old_ins_header_rec.current_loc_address3= fnd_api.g_miss_char
30770 THEN
30771 l_old_ins_header_rec.current_loc_address3 := NULL;
30772 END IF;
30773
30774 IF l_new_ins_header_rec.current_loc_address3= fnd_api.g_miss_char
30775 THEN
30776 l_new_ins_header_rec.current_loc_address3 := NULL;
30777 END IF;
30778
30779 IF l_old_ins_header_rec.current_loc_address4= fnd_api.g_miss_char
30780 THEN
30781 l_old_ins_header_rec.current_loc_address4 := NULL;
30782 END IF;
30783
30784 IF l_new_ins_header_rec.current_loc_address4= fnd_api.g_miss_char
30785 THEN
30786 l_new_ins_header_rec.current_loc_address4 := NULL;
30787 END IF;
30788
30789 IF l_old_ins_header_rec.current_loc_city= fnd_api.g_miss_char
30790 THEN
30791 l_old_ins_header_rec.current_loc_city := NULL;
30792 END IF;
30793
30794 IF l_new_ins_header_rec.current_loc_city= fnd_api.g_miss_char
30795 THEN
30796 l_new_ins_header_rec.current_loc_city := NULL;
30797 END IF;
30798
30799 IF l_old_ins_header_rec.current_loc_state= fnd_api.g_miss_char
30800 THEN
30801 l_old_ins_header_rec.current_loc_state := NULL;
30802 END IF;
30803
30804 IF l_new_ins_header_rec.current_loc_state= fnd_api.g_miss_char
30805 THEN
30806 l_new_ins_header_rec.current_loc_state := NULL;
30807 END IF;
30808
30809 IF l_old_ins_header_rec.current_loc_postal_code= fnd_api.g_miss_char
30810 THEN
30811 l_old_ins_header_rec.current_loc_postal_code := NULL;
30812 END IF;
30813
30814 IF l_new_ins_header_rec.current_loc_postal_code= fnd_api.g_miss_char
30815 THEN
30816 l_new_ins_header_rec.current_loc_postal_code := NULL;
30817 END IF;
30818
30819 IF l_old_ins_header_rec.current_loc_country= fnd_api.g_miss_char
30820 THEN
30821 l_old_ins_header_rec.current_loc_country := NULL;
30822 END IF;
30823
30824 IF l_new_ins_header_rec.current_loc_country= fnd_api.g_miss_char
30825 THEN
30826 l_new_ins_header_rec.current_loc_country := NULL;
30827 END IF;
30828
30829 IF l_old_ins_header_rec.install_loc_address1= fnd_api.g_miss_char
30830 THEN
30831 l_old_ins_header_rec.install_loc_address1 := NULL;
30832 END IF;
30833
30834 IF l_new_ins_header_rec.install_loc_address1= fnd_api.g_miss_char
30835 THEN
30836 l_new_ins_header_rec.install_loc_address1 := NULL;
30837 END IF;
30838
30839 IF l_old_ins_header_rec.install_loc_address2= fnd_api.g_miss_char
30840 THEN
30841 l_old_ins_header_rec.install_loc_address2 := NULL;
30842 END IF;
30843
30844 IF l_new_ins_header_rec.install_loc_address2= fnd_api.g_miss_char
30845 THEN
30846 l_new_ins_header_rec.install_loc_address2 := NULL;
30847 END IF;
30848
30849 IF l_old_ins_header_rec.install_loc_address3= fnd_api.g_miss_char
30850 THEN
30851 l_old_ins_header_rec.install_loc_address3 := NULL;
30852 END IF;
30853
30854 IF l_new_ins_header_rec.install_loc_address3= fnd_api.g_miss_char
30855 THEN
30856 l_new_ins_header_rec.install_loc_address3 := NULL;
30857 END IF;
30858
30859 IF l_old_ins_header_rec.install_loc_address4= fnd_api.g_miss_char
30860 THEN
30861 l_old_ins_header_rec.install_loc_address4 := NULL;
30862 END IF;
30863
30864 IF l_new_ins_header_rec.install_loc_address4= fnd_api.g_miss_char
30865 THEN
30866 l_new_ins_header_rec.install_loc_address4 := NULL;
30867 END IF;
30868
30869 IF l_old_ins_header_rec.install_loc_city= fnd_api.g_miss_char
30870 THEN
30871 l_old_ins_header_rec.install_loc_city := NULL;
30872 END IF;
30873
30874 IF l_new_ins_header_rec.install_loc_city= fnd_api.g_miss_char
30875 THEN
30876 l_new_ins_header_rec.install_loc_city := NULL;
30877 END IF;
30878
30879 IF l_old_ins_header_rec.install_loc_state= fnd_api.g_miss_char
30880 THEN
30881 l_old_ins_header_rec.install_loc_state := NULL;
30882 END IF;
30883
30884 IF l_new_ins_header_rec.install_loc_state= fnd_api.g_miss_char
30885 THEN
30886 l_new_ins_header_rec.install_loc_state := NULL;
30887 END IF;
30888
30889 IF l_old_ins_header_rec.install_loc_postal_code= fnd_api.g_miss_char
30890 THEN
30891 l_old_ins_header_rec.install_loc_postal_code := NULL;
30892 END IF;
30893
30894 IF l_new_ins_header_rec.install_loc_postal_code= fnd_api.g_miss_char
30895 THEN
30896 l_new_ins_header_rec.install_loc_postal_code := NULL;
30897 END IF;
30898
30899 IF l_old_ins_header_rec.install_loc_country= fnd_api.g_miss_char
30900 THEN
30901 l_old_ins_header_rec.install_loc_country := NULL;
30902 END IF;
30903
30904 IF l_new_ins_header_rec.install_loc_country= fnd_api.g_miss_char
30905 THEN
30906 l_new_ins_header_rec.install_loc_country := NULL;
30907 END IF;
30908
30909 IF l_old_ins_header_rec.unit_of_measure_name= fnd_api.g_miss_char
30910 THEN
30911 l_old_ins_header_rec.unit_of_measure_name := NULL;
30912 END IF;
30913
30914 IF l_new_ins_header_rec.unit_of_measure_name= fnd_api.g_miss_char
30915 THEN
30916 l_new_ins_header_rec.unit_of_measure_name := NULL;
30917 END IF;
30918
30919 IF l_old_ins_header_rec.accounting_class= fnd_api.g_miss_char
30920 THEN
30921 l_old_ins_header_rec.accounting_class := NULL;
30922 END IF;
30923
30924 IF l_new_ins_header_rec.accounting_class= fnd_api.g_miss_char
30925 THEN
30926 l_new_ins_header_rec.accounting_class := NULL;
30927 END IF;
30928
30929 IF l_old_ins_header_rec.instance_condition= fnd_api.g_miss_char
30930 THEN
30931 l_old_ins_header_rec.instance_condition := NULL;
30932 END IF;
30933
30934 IF l_new_ins_header_rec.instance_condition= fnd_api.g_miss_char
30935 THEN
30936 l_new_ins_header_rec.instance_condition := NULL;
30937 END IF;
30938
30939 IF l_old_ins_header_rec.instance_status= fnd_api.g_miss_char
30940 THEN
30941 l_old_ins_header_rec.instance_status := NULL;
30942 END IF;
30943
30944 IF l_new_ins_header_rec.instance_status= fnd_api.g_miss_char
30945 THEN
30946 l_new_ins_header_rec.instance_status := NULL;
30947 END IF;
30948
30949 IF l_old_ins_header_rec.system_name= fnd_api.g_miss_char
30950 THEN
30951 l_old_ins_header_rec.system_name := NULL;
30952 END IF;
30953
30954 IF l_new_ins_header_rec.system_name= fnd_api.g_miss_char
30955 THEN
30956 l_new_ins_header_rec.system_name := NULL;
30957 END IF;
30958
30959 IF l_old_ins_header_rec.instance_type_name= fnd_api.g_miss_char
30960 THEN
30961 l_old_ins_header_rec.instance_type_name := NULL;
30962 END IF;
30963
30964 IF l_new_ins_header_rec.instance_type_name= fnd_api.g_miss_char
30965 THEN
30966 l_new_ins_header_rec.instance_type_name := NULL;
30967 END IF;
30968
30969 IF l_old_ins_header_rec.inv_organization_name= fnd_api.g_miss_char
30970 THEN
30971 l_old_ins_header_rec.inv_organization_name := NULL;
30972 END IF;
30973
30974 IF l_new_ins_header_rec.inv_organization_name= fnd_api.g_miss_char
30975 THEN
30976 l_new_ins_header_rec.inv_organization_name := NULL;
30977 END IF;
30978
30979 IF l_old_ins_header_rec.pa_project_name= fnd_api.g_miss_char
30980 THEN
30981 l_old_ins_header_rec.pa_project_name := NULL;
30982 END IF;
30983
30984 IF l_new_ins_header_rec.pa_project_name= fnd_api.g_miss_char
30985 THEN
30986 l_new_ins_header_rec.pa_project_name := NULL;
30987 END IF;
30988
30989 IF l_old_ins_header_rec.pa_project_number= fnd_api.g_miss_char
30990 THEN
30991 l_old_ins_header_rec.pa_project_number := NULL;
30992 END IF;
30993
30994 IF l_new_ins_header_rec.pa_project_number= fnd_api.g_miss_char
30995 THEN
30996 l_new_ins_header_rec.pa_project_number := NULL;
30997 END IF;
30998
30999 IF l_old_ins_header_rec.pa_task_name= fnd_api.g_miss_char
31000 THEN
31001 l_old_ins_header_rec.pa_task_name := NULL;
31002 END IF;
31003
31004 IF l_new_ins_header_rec.pa_task_name= fnd_api.g_miss_char
31005 THEN
31006 l_new_ins_header_rec.pa_task_name := NULL;
31007 END IF;
31008
31009 IF l_old_ins_header_rec.pa_task_number= fnd_api.g_miss_char
31010 THEN
31011 l_old_ins_header_rec.pa_task_number := NULL;
31012 END IF;
31013
31014 IF l_new_ins_header_rec.pa_task_number= fnd_api.g_miss_char
31015 THEN
31016 l_new_ins_header_rec.pa_task_number := NULL;
31017 END IF;
31018
31019 IF l_old_ins_header_rec.wip_entity_name= fnd_api.g_miss_char
31020 THEN
31021 l_old_ins_header_rec.wip_entity_name := NULL;
31022 END IF;
31023
31024 IF l_new_ins_header_rec.wip_entity_name= fnd_api.g_miss_char
31025 THEN
31026 l_new_ins_header_rec.wip_entity_name := NULL;
31027 END IF;
31028
31029 IF l_old_ins_header_rec.purchase_order_number= fnd_api.g_miss_char
31030 THEN
31031 l_old_ins_header_rec.purchase_order_number := NULL;
31032 END IF;
31033
31034 IF l_new_ins_header_rec.purchase_order_number= fnd_api.g_miss_char
31035 THEN
31036 l_new_ins_header_rec.purchase_order_number := NULL;
31037 END IF;
31038
31039 IF l_old_ins_header_rec.instance_usage_name= fnd_api.g_miss_char
31040 THEN
31041 l_old_ins_header_rec.instance_usage_name := NULL;
31042 END IF;
31043
31044 IF l_new_ins_header_rec.instance_usage_name= fnd_api.g_miss_char
31045 THEN
31046 l_new_ins_header_rec.instance_usage_name := NULL;
31047 END IF;
31048
31049 IF l_old_ins_header_rec.inv_locator_name= fnd_api.g_miss_char
31050 THEN
31051 l_old_ins_header_rec.inv_locator_name := NULL;
31052 END IF;
31053
31054 IF l_new_ins_header_rec.inv_locator_name= fnd_api.g_miss_char
31055 THEN
31056 l_new_ins_header_rec.inv_locator_name := NULL;
31057 END IF;
31058
31059 IF (l_old_ins_header_rec.current_loc_number= fnd_api.g_miss_char)
31060 OR (nvl(l_old_ins_header_rec.location_type_code,'$$$$') <> 'HZ_PARTY_SITES')
31061 THEN
31062 l_old_ins_header_rec.current_loc_number := NULL;
31063 END IF;
31064
31065 IF (l_new_ins_header_rec.current_loc_number= fnd_api.g_miss_char)
31066 OR (nvl(l_new_ins_header_rec.location_type_code, '$$$$') <> 'HZ_PARTY_SITES')
31067 THEN
31068 l_new_ins_header_rec.current_loc_number := NULL;
31069 END IF;
31070
31071 IF (l_old_ins_header_rec.install_loc_number= fnd_api.g_miss_char)
31072 OR (nvl(l_old_ins_header_rec.install_location_type_code, '$$$$') <> 'HZ_PARTY_SITES')
31073 THEN
31074 l_old_ins_header_rec.install_loc_number := NULL;
31075 END IF;
31076
31077 IF (l_new_ins_header_rec.install_loc_number= fnd_api.g_miss_char)
31078 OR (nvl(l_new_ins_header_rec.install_location_type_code, '$$$$') <> 'HZ_PARTY_SITES')
31079 THEN
31080 l_new_ins_header_rec.install_loc_number := NULL;
31081 END IF;
31082 -- End of Addition for tar 14834588.600
31083
31084 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)
31085 THEN
31086 l_old_ins_header_rec.location_type_code := NULL;
31087 l_new_ins_header_rec.location_type_code := NULL;
31088 END IF;
31089
31090 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)
31091 THEN
31092 l_old_ins_header_rec.install_location_type_code := NULL;
31093 l_new_ins_header_rec.install_location_type_code := NULL;
31094 END IF;
31095
31096 --start of code for eam integration columns--
31097 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)
31098 THEN
31099 l_old_ins_header_rec.network_asset_flag := NULL;
31100 l_new_ins_header_rec.network_asset_flag := NULL;
31101 ELSE
31102 l_old_ins_header_rec.network_asset_flag := l_hist_csr.old_network_asset_flag;
31103 l_new_ins_header_rec.network_asset_flag := l_hist_csr.new_network_asset_flag;
31104 END IF;
31105
31106 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)
31107 THEN
31108 l_old_ins_header_rec.maintainable_flag := NULL;
31109 l_new_ins_header_rec.maintainable_flag := NULL;
31110 ELSE
31111 l_old_ins_header_rec.maintainable_flag := l_hist_csr.old_maintainable_flag;
31112 l_new_ins_header_rec.maintainable_flag := l_hist_csr.new_maintainable_flag;
31113 END IF;
31114
31115 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)
31116 THEN
31117 l_old_ins_header_rec.pn_location_id := NULL;
31118 l_new_ins_header_rec.pn_location_id := NULL;
31119 ELSE
31120 l_old_ins_header_rec.pn_location_id := l_hist_csr.old_pn_location_id;
31121 l_new_ins_header_rec.pn_location_id := l_hist_csr.new_pn_location_id;
31122 END IF;
31123
31124 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)
31125 THEN
31126 l_old_ins_header_rec.asset_criticality_code := NULL;
31127 l_new_ins_header_rec.asset_criticality_code := NULL;
31128 ELSE
31129 l_old_ins_header_rec.asset_criticality_code := l_hist_csr.old_asset_criticality_code;
31130 l_new_ins_header_rec.asset_criticality_code := l_hist_csr.new_asset_criticality_code;
31131 END IF;
31132
31133 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)
31134 THEN
31135 l_old_ins_header_rec.category_id := NULL;
31136 l_new_ins_header_rec.category_id := NULL;
31137 ELSE
31138 l_old_ins_header_rec.category_id := l_hist_csr.old_category_id;
31139 l_new_ins_header_rec.category_id := l_hist_csr.new_category_id;
31140 END IF;
31141
31142
31143 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)
31144 THEN
31145 l_old_ins_header_rec.equipment_gen_object_id := NULL;
31146 l_new_ins_header_rec.equipment_gen_object_id := NULL;
31147 ELSE
31148 l_old_ins_header_rec.equipment_gen_object_id := l_hist_csr.old_equipment_gen_object_id;
31149 l_new_ins_header_rec.equipment_gen_object_id := l_hist_csr.new_equipment_gen_object_id;
31150 END IF;
31151
31152 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)
31153 THEN
31154 l_old_ins_header_rec.instantiation_flag := NULL;
31155 l_new_ins_header_rec.instantiation_flag := NULL;
31156 ELSE
31157 l_old_ins_header_rec.instantiation_flag := l_hist_csr.old_instantiation_flag;
31158 l_new_ins_header_rec.instantiation_flag := l_hist_csr.new_instantiation_flag;
31159 END IF;
31160
31161 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)
31162 THEN
31163 l_old_ins_header_rec.linear_location_id := NULL;
31164 l_new_ins_header_rec.linear_location_id := NULL;
31165 ELSE
31166 l_old_ins_header_rec.linear_location_id := l_hist_csr.old_linear_location_id;
31167 l_new_ins_header_rec.linear_location_id := l_hist_csr.new_linear_location_id;
31168 END IF;
31169
31170 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)
31171 THEN
31172 l_old_ins_header_rec.operational_log_flag := NULL;
31173 l_new_ins_header_rec.operational_log_flag := NULL;
31174 ELSE
31175 l_old_ins_header_rec.operational_log_flag := l_hist_csr.old_operational_log_flag;
31176 l_new_ins_header_rec.operational_log_flag := l_hist_csr.new_operational_log_flag;
31177 END IF;
31178
31179 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)
31180 THEN
31181 l_old_ins_header_rec.checkin_status := NULL;
31182 l_new_ins_header_rec.checkin_status := NULL;
31183 ELSE
31184 l_old_ins_header_rec.checkin_status := l_hist_csr.old_checkin_status;
31185 l_new_ins_header_rec.checkin_status := l_hist_csr.new_checkin_status;
31186 END IF;
31187
31188 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)
31189 THEN
31190 l_old_ins_header_rec.supplier_warranty_exp_date := NULL;
31191 l_new_ins_header_rec.supplier_warranty_exp_date := NULL;
31192 ELSE
31193 l_old_ins_header_rec.supplier_warranty_exp_date := l_hist_csr.old_supplier_warranty_exp_date;
31194 l_new_ins_header_rec.supplier_warranty_exp_date := l_hist_csr.new_supplier_warranty_exp_date;
31195 END IF;
31196
31197
31198 IF NVL(l_hist_csr.old_attribute16,fnd_api.g_miss_char) = NVL(l_hist_csr.new_attribute16,fnd_api.g_miss_char)
31199 THEN
31200 l_old_ins_header_rec.attribute16 := NULL;
31201 l_new_ins_header_rec.attribute16 := NULL;
31202 ELSE
31203 l_old_ins_header_rec.attribute16 := l_hist_csr.old_attribute16;
31204 l_new_ins_header_rec.attribute16 := l_hist_csr.new_attribute16;
31205 END IF;
31206
31207 IF NVL(l_hist_csr.old_attribute17,fnd_api.g_miss_char) = NVL(l_hist_csr.new_attribute17,fnd_api.g_miss_char)
31208 THEN
31209 l_old_ins_header_rec.attribute17 := NULL;
31210 l_new_ins_header_rec.attribute17 := NULL;
31211 ELSE
31212 l_old_ins_header_rec.attribute17 := l_hist_csr.old_attribute17;
31213 l_new_ins_header_rec.attribute17 := l_hist_csr.new_attribute17;
31214 END IF;
31215
31216 IF NVL(l_hist_csr.old_attribute18,fnd_api.g_miss_char) = NVL(l_hist_csr.new_attribute18,fnd_api.g_miss_char)
31217 THEN
31218 l_old_ins_header_rec.attribute18 := NULL;
31219 l_new_ins_header_rec.attribute18 := NULL;
31220 ELSE
31221 l_old_ins_header_rec.attribute18 := l_hist_csr.old_attribute18;
31222 l_new_ins_header_rec.attribute18 := l_hist_csr.new_attribute18;
31223 END IF;
31224
31225 IF NVL(l_hist_csr.old_attribute19,fnd_api.g_miss_char) = NVL(l_hist_csr.new_attribute19,fnd_api.g_miss_char)
31226 THEN
31227 l_old_ins_header_rec.attribute19 := NULL;
31228 l_new_ins_header_rec.attribute19 := NULL;
31229 ELSE
31230 l_old_ins_header_rec.attribute19 := l_hist_csr.old_attribute19;
31231 l_new_ins_header_rec.attribute19 := l_hist_csr.new_attribute19;
31232 END IF;
31233
31234 IF NVL(l_hist_csr.old_attribute20,fnd_api.g_miss_char) = NVL(l_hist_csr.new_attribute20,fnd_api.g_miss_char)
31235 THEN
31236 l_old_ins_header_rec.attribute20 := NULL;
31237 l_new_ins_header_rec.attribute20 := NULL;
31238 ELSE
31239 l_old_ins_header_rec.attribute20 := l_hist_csr.old_attribute20;
31240 l_new_ins_header_rec.attribute20 := l_hist_csr.new_attribute20;
31241 END IF;
31242
31243 IF NVL(l_hist_csr.old_attribute21,fnd_api.g_miss_char) = NVL(l_hist_csr.new_attribute21,fnd_api.g_miss_char)
31244 THEN
31245 l_old_ins_header_rec.attribute21 := NULL;
31246 l_new_ins_header_rec.attribute21 := NULL;
31247 ELSE
31248 l_old_ins_header_rec.attribute21 := l_hist_csr.old_attribute21;
31249 l_new_ins_header_rec.attribute21 := l_hist_csr.new_attribute21;
31250 END IF;
31251
31252 IF NVL(l_hist_csr.old_attribute22,fnd_api.g_miss_char) = NVL(l_hist_csr.new_attribute22,fnd_api.g_miss_char)
31253 THEN
31254 l_old_ins_header_rec.attribute22 := NULL;
31255 l_new_ins_header_rec.attribute22 := NULL;
31256 ELSE
31257 l_old_ins_header_rec.attribute22 := l_hist_csr.old_attribute22;
31258 l_new_ins_header_rec.attribute22 := l_hist_csr.new_attribute22;
31259 END IF;
31260
31261 IF NVL(l_hist_csr.old_attribute23,fnd_api.g_miss_char) = NVL(l_hist_csr.new_attribute23,fnd_api.g_miss_char)
31262 THEN
31263 l_old_ins_header_rec.attribute23 := NULL;
31264 l_new_ins_header_rec.attribute23 := NULL;
31265 ELSE
31266 l_old_ins_header_rec.attribute23 := l_hist_csr.old_attribute23;
31267 l_new_ins_header_rec.attribute23 := l_hist_csr.new_attribute23;
31268 END IF;
31269
31270 IF NVL(l_hist_csr.old_attribute24,fnd_api.g_miss_char) = NVL(l_hist_csr.new_attribute24,fnd_api.g_miss_char)
31271 THEN
31272 l_old_ins_header_rec.attribute24 := NULL;
31273 l_new_ins_header_rec.attribute24 := NULL;
31274 ELSE
31275 l_old_ins_header_rec.attribute24 := l_hist_csr.old_attribute24;
31276 l_new_ins_header_rec.attribute24 := l_hist_csr.new_attribute24;
31277 END IF;
31278
31279 IF NVL(l_hist_csr.old_attribute25,fnd_api.g_miss_char) = NVL(l_hist_csr.new_attribute25,fnd_api.g_miss_char)
31280 THEN
31281 l_old_ins_header_rec.attribute25 := NULL;
31282 l_new_ins_header_rec.attribute25 := NULL;
31283 ELSE
31284 l_old_ins_header_rec.attribute25 := l_hist_csr.old_attribute25;
31285 l_new_ins_header_rec.attribute25 := l_hist_csr.new_attribute25;
31286 END IF;
31287
31288 IF NVL(l_hist_csr.old_attribute26,fnd_api.g_miss_char) = NVL(l_hist_csr.new_attribute26,fnd_api.g_miss_char)
31289 THEN
31290 l_old_ins_header_rec.attribute26 := NULL;
31291 l_new_ins_header_rec.attribute26 := NULL;
31292 ELSE
31293 l_old_ins_header_rec.attribute26 := l_hist_csr.old_attribute26;
31294 l_new_ins_header_rec.attribute26 := l_hist_csr.new_attribute26;
31295 END IF;
31296
31297 IF NVL(l_hist_csr.old_attribute27,fnd_api.g_miss_char) = NVL(l_hist_csr.new_attribute27,fnd_api.g_miss_char)
31298 THEN
31299 l_old_ins_header_rec.attribute27 := NULL;
31300 l_new_ins_header_rec.attribute27 := NULL;
31301 ELSE
31302 l_old_ins_header_rec.attribute27 := l_hist_csr.old_attribute27;
31303 l_new_ins_header_rec.attribute27 := l_hist_csr.new_attribute27;
31304 END IF;
31305
31306 IF NVL(l_hist_csr.old_attribute28,fnd_api.g_miss_char) = NVL(l_hist_csr.new_attribute28,fnd_api.g_miss_char)
31307 THEN
31308 l_old_ins_header_rec.attribute28 := NULL;
31309 l_new_ins_header_rec.attribute28 := NULL;
31310 ELSE
31311 l_old_ins_header_rec.attribute28 := l_hist_csr.old_attribute28;
31312 l_new_ins_header_rec.attribute28 := l_hist_csr.new_attribute28;
31313 END IF;
31314
31315 IF NVL(l_hist_csr.old_attribute29,fnd_api.g_miss_char) = NVL(l_hist_csr.new_attribute29,fnd_api.g_miss_char)
31316 THEN
31317 l_old_ins_header_rec.attribute29 := NULL;
31318 l_new_ins_header_rec.attribute29 := NULL;
31319 ELSE
31320 l_old_ins_header_rec.attribute29 := l_hist_csr.old_attribute29;
31321 l_new_ins_header_rec.attribute29 := l_hist_csr.new_attribute29;
31322 END IF;
31323
31324 IF NVL(l_hist_csr.old_attribute30,fnd_api.g_miss_char) = NVL(l_hist_csr.new_attribute30,fnd_api.g_miss_char)
31325 THEN
31326 l_old_ins_header_rec.attribute30 := NULL;
31327 l_new_ins_header_rec.attribute30 := NULL;
31328 ELSE
31329 l_old_ins_header_rec.attribute30 := l_hist_csr.old_attribute30;
31330 l_new_ins_header_rec.attribute30 := l_hist_csr.new_attribute30;
31331 END IF;
31332
31333 --end of code for eam integration columns--
31334
31335
31336
31337
31338
31339 l_ins_header_rec.instance_id := l_hist_csr.instance_id ;
31340 l_ins_header_rec.old_instance_number := l_old_ins_header_rec.instance_number ;
31341 l_ins_header_rec.new_instance_number := l_new_ins_header_rec.instance_number ;
31342 l_ins_header_rec.old_external_reference := l_old_ins_header_rec.external_reference ;
31343 l_ins_header_rec.new_external_reference := l_new_ins_header_rec.external_reference ;
31344 l_ins_header_rec.old_inventory_item_id := l_old_ins_header_rec.inventory_item_id ;
31345 l_ins_header_rec.new_inventory_item_id := l_new_ins_header_rec.inventory_item_id ;
31346 l_ins_header_rec.old_inventory_revision := l_old_ins_header_rec.inventory_revision ;
31347 l_ins_header_rec.new_inventory_revision := l_new_ins_header_rec.inventory_revision ;
31348 l_ins_header_rec.old_inv_master_org_id := l_old_ins_header_rec.inv_master_organization_id ;
31349 l_ins_header_rec.new_inv_master_org_id := l_new_ins_header_rec.inv_master_organization_id ;
31350 l_ins_header_rec.old_serial_number := l_old_ins_header_rec.serial_number ;
31351 l_ins_header_rec.new_serial_number := l_new_ins_header_rec.serial_number ;
31352 l_ins_header_rec.old_mfg_serial_number_flag := l_old_ins_header_rec.mfg_serial_number_flag ;
31353 l_ins_header_rec.new_mfg_serial_number_flag := l_new_ins_header_rec.mfg_serial_number_flag ;
31354 l_ins_header_rec.old_lot_number := l_old_ins_header_rec.lot_number ;
31355 l_ins_header_rec.new_lot_number := l_new_ins_header_rec.lot_number ;
31356 l_ins_header_rec.old_quantity := l_old_ins_header_rec.quantity ;
31357 l_ins_header_rec.new_quantity := l_new_ins_header_rec.quantity ;
31358 l_ins_header_rec.old_unit_of_measure_name := l_old_ins_header_rec.unit_of_measure_name ;
31359 l_ins_header_rec.new_unit_of_measure_name := l_new_ins_header_rec.unit_of_measure_name ;
31360 l_ins_header_rec.old_unit_of_measure := l_old_ins_header_rec.unit_of_measure ;
31361 l_ins_header_rec.new_unit_of_measure := l_new_ins_header_rec.unit_of_measure ;
31362 l_ins_header_rec.old_accounting_class := l_old_ins_header_rec.accounting_class ;
31363 l_ins_header_rec.new_accounting_class := l_new_ins_header_rec.accounting_class ;
31364 l_ins_header_rec.old_accounting_class_code := l_old_ins_header_rec.accounting_class_code ;
31365 l_ins_header_rec.new_accounting_class_code := l_new_ins_header_rec.accounting_class_code ;
31366 l_ins_header_rec.old_instance_condition := l_old_ins_header_rec.instance_condition ;
31367 l_ins_header_rec.new_instance_condition := l_new_ins_header_rec.instance_condition ;
31368 l_ins_header_rec.old_instance_condition_id := l_old_ins_header_rec.instance_condition_id ;
31369 l_ins_header_rec.new_instance_condition_id := l_new_ins_header_rec.instance_condition_id ;
31370 l_ins_header_rec.old_instance_status := l_old_ins_header_rec.instance_status ;
31371 l_ins_header_rec.new_instance_status := l_new_ins_header_rec.instance_status ;
31372 l_ins_header_rec.old_instance_status_id := l_old_ins_header_rec.instance_status_id ;
31373 l_ins_header_rec.new_instance_status_id := l_new_ins_header_rec.instance_status_id ;
31374 l_ins_header_rec.old_customer_view_flag := l_old_ins_header_rec.customer_view_flag ;
31375 l_ins_header_rec.new_customer_view_flag := l_new_ins_header_rec.customer_view_flag ;
31376 l_ins_header_rec.old_merchant_view_flag := l_old_ins_header_rec.merchant_view_flag ;
31377 l_ins_header_rec.new_merchant_view_flag := l_new_ins_header_rec.merchant_view_flag ;
31378 l_ins_header_rec.old_sellable_flag := l_old_ins_header_rec.sellable_flag ;
31379 l_ins_header_rec.new_sellable_flag := l_new_ins_header_rec.sellable_flag ;
31380 l_ins_header_rec.old_system_id := l_old_ins_header_rec.system_id ;
31381 l_ins_header_rec.new_system_id := l_new_ins_header_rec.system_id ;
31382 l_ins_header_rec.old_system_name := l_old_ins_header_rec.system_name ;
31383 l_ins_header_rec.new_system_name := l_new_ins_header_rec.system_name ;
31384 l_ins_header_rec.old_instance_type_code := l_old_ins_header_rec.instance_type_code ;
31385 l_ins_header_rec.new_instance_type_code := l_new_ins_header_rec.instance_type_code ;
31386 l_ins_header_rec.old_instance_type_name := l_old_ins_header_rec.instance_type_name ;
31387 l_ins_header_rec.new_instance_type_name := l_new_ins_header_rec.instance_type_name ;
31388 l_ins_header_rec.old_active_start_date := l_old_ins_header_rec.active_start_date ;
31389 l_ins_header_rec.new_active_start_date := l_new_ins_header_rec.active_start_date ;
31390 l_ins_header_rec.old_active_end_date := l_old_ins_header_rec.active_end_date ;
31391 l_ins_header_rec.new_active_end_date := l_new_ins_header_rec.active_end_date ;
31392 l_ins_header_rec.old_location_type_code := l_old_ins_header_rec.location_type_code ;
31393 l_ins_header_rec.new_location_type_code := l_new_ins_header_rec.location_type_code ;
31394 l_ins_header_rec.old_location_id := l_old_ins_header_rec.location_id ;
31395 l_ins_header_rec.new_location_id := l_new_ins_header_rec.location_id ;
31396 l_ins_header_rec.old_inv_organization_id := l_old_ins_header_rec.inv_organization_id ;
31397 l_ins_header_rec.new_inv_organization_id := l_new_ins_header_rec.inv_organization_id ;
31398 l_ins_header_rec.old_inv_organization_name := l_old_ins_header_rec.inv_organization_name ;
31399 l_ins_header_rec.new_inv_organization_name := l_new_ins_header_rec.inv_organization_name ;
31400 l_ins_header_rec.old_inv_subinventory_name := l_old_ins_header_rec.inv_subinventory_name ;
31401 l_ins_header_rec.new_inv_subinventory_name := l_new_ins_header_rec.inv_subinventory_name ;
31402 l_ins_header_rec.old_inv_locator_id := l_old_ins_header_rec.inv_locator_id ;
31403 l_ins_header_rec.new_inv_locator_id := l_new_ins_header_rec.inv_locator_id ;
31404 l_ins_header_rec.old_pa_project_id := l_old_ins_header_rec.pa_project_id ;
31405 l_ins_header_rec.new_pa_project_id := l_new_ins_header_rec.pa_project_id ;
31406 l_ins_header_rec.old_pa_project_task_id := l_old_ins_header_rec.pa_project_task_id ;
31407 l_ins_header_rec.new_pa_project_task_id := l_new_ins_header_rec.pa_project_task_id ;
31408 l_ins_header_rec.old_pa_project_name := l_old_ins_header_rec.pa_project_name ;
31409 l_ins_header_rec.new_pa_project_name := l_new_ins_header_rec.pa_project_name ;
31410 l_ins_header_rec.old_pa_project_number := l_old_ins_header_rec.pa_project_number ;
31411 l_ins_header_rec.new_pa_project_number := l_new_ins_header_rec.pa_project_number ;
31412 l_ins_header_rec.old_pa_task_name := l_old_ins_header_rec.pa_task_name ;
31413 l_ins_header_rec.new_pa_task_name := l_new_ins_header_rec.pa_task_name ;
31414 l_ins_header_rec.old_pa_task_number := l_old_ins_header_rec.pa_task_number ;
31415 l_ins_header_rec.new_pa_task_number := l_new_ins_header_rec.pa_task_number ;
31416 l_ins_header_rec.old_in_transit_order_line_id:= l_old_ins_header_rec.in_transit_order_line_id ;
31417 l_ins_header_rec.new_in_transit_order_line_id:= l_new_ins_header_rec.in_transit_order_line_id ;
31418 l_ins_header_rec.old_in_transit_order_line_num := l_old_ins_header_rec.in_transit_order_line_number ;
31419 l_ins_header_rec.new_in_transit_order_line_num := l_new_ins_header_rec.in_transit_order_line_number ;
31420 l_ins_header_rec.old_in_transit_order_number := l_old_ins_header_rec.in_transit_order_number ;
31421 l_ins_header_rec.new_in_transit_order_number := l_new_ins_header_rec.in_transit_order_number ;
31422 l_ins_header_rec.old_wip_job_id := l_old_ins_header_rec.wip_job_id ;
31423 l_ins_header_rec.new_wip_job_id := l_new_ins_header_rec.wip_job_id ;
31424 l_ins_header_rec.old_wip_entity_name := l_old_ins_header_rec.wip_entity_name ;
31425 l_ins_header_rec.new_wip_entity_name := l_new_ins_header_rec.wip_entity_name ;
31426 l_ins_header_rec.old_po_order_line_id := l_old_ins_header_rec.po_order_line_id;
31427 l_ins_header_rec.new_po_order_line_id := l_new_ins_header_rec.po_order_line_id;
31428 l_ins_header_rec.old_last_oe_order_line_id := l_old_ins_header_rec.last_oe_order_line_id ;
31429 l_ins_header_rec.new_last_oe_order_line_id := l_new_ins_header_rec.last_oe_order_line_id ;
31430 l_ins_header_rec.old_last_oe_rma_line_id := l_old_ins_header_rec.last_oe_rma_line_id ;
31431 l_ins_header_rec.new_last_oe_rma_line_id := l_new_ins_header_rec.last_oe_rma_line_id ;
31432 l_ins_header_rec.old_last_po_po_line_id := l_old_ins_header_rec.last_po_po_line_id ;
31433 l_ins_header_rec.new_last_po_po_line_id := l_new_ins_header_rec.last_po_po_line_id ;
31434 l_ins_header_rec.old_last_oe_po_number := l_old_ins_header_rec.last_oe_po_number ;
31435 l_ins_header_rec.new_last_oe_po_number := l_new_ins_header_rec.last_oe_po_number ;
31436 l_ins_header_rec.old_last_wip_job_id := l_old_ins_header_rec.last_wip_job_id ;
31437 l_ins_header_rec.new_last_wip_job_id := l_new_ins_header_rec.last_wip_job_id ;
31438 l_ins_header_rec.old_last_pa_project_id := l_old_ins_header_rec.last_pa_project_id ;
31439 l_ins_header_rec.new_last_pa_project_id := l_new_ins_header_rec.last_pa_project_id ;
31440 l_ins_header_rec.old_last_pa_task_id := l_old_ins_header_rec.last_pa_task_id ;
31441 l_ins_header_rec.new_last_pa_task_id := l_new_ins_header_rec.last_pa_task_id ;
31442 l_ins_header_rec.old_last_oe_agreement_id := l_old_ins_header_rec.last_oe_agreement_id ;
31443 l_ins_header_rec.new_last_oe_agreement_id := l_new_ins_header_rec.last_oe_agreement_id ;
31444 l_ins_header_rec.old_install_date := l_old_ins_header_rec.install_date ; --added for 2671179
31445 l_ins_header_rec.new_install_date := l_new_ins_header_rec.install_date ; --added for 2671179
31446 l_ins_header_rec.old_manually_created_flag := NULL ;
31447 l_ins_header_rec.new_manually_created_flag := NULL ;
31448 l_ins_header_rec.old_return_by_date := l_old_ins_header_rec.return_by_date ; --added for 2671179
31449 l_ins_header_rec.new_return_by_date := l_new_ins_header_rec.return_by_date ; --added for 2671179
31450 l_ins_header_rec.old_actual_return_date := l_old_ins_header_rec.actual_return_date ; --added for 2671179
31451 l_ins_header_rec.new_actual_return_date := l_new_ins_header_rec.actual_return_date ; --added for 2671179
31452 l_ins_header_rec.old_creation_complete_flag := NULL ;
31453 l_ins_header_rec.new_creation_complete_flag := NULL ;
31454 l_ins_header_rec.old_completeness_flag := l_old_ins_header_rec.completeness_flag ;
31455 l_ins_header_rec.new_completeness_flag := l_new_ins_header_rec.completeness_flag ;
31456 l_ins_header_rec.old_context := l_old_ins_header_rec.context ;
31457 l_ins_header_rec.new_context := l_new_ins_header_rec.context ;
31458 l_ins_header_rec.old_attribute1 := l_old_ins_header_rec.attribute1 ;
31459 l_ins_header_rec.new_attribute1 := l_new_ins_header_rec.attribute1 ;
31460 l_ins_header_rec.old_attribute2 := l_old_ins_header_rec.attribute2 ;
31461 l_ins_header_rec.new_attribute2 := l_new_ins_header_rec.attribute2 ;
31462 l_ins_header_rec.old_attribute3 := l_old_ins_header_rec.attribute3 ;
31463 l_ins_header_rec.new_attribute3 := l_new_ins_header_rec.attribute3 ;
31464 l_ins_header_rec.old_attribute4 := l_old_ins_header_rec.attribute4 ;
31465 l_ins_header_rec.new_attribute4 := l_new_ins_header_rec.attribute4 ;
31466 l_ins_header_rec.old_attribute5 := l_old_ins_header_rec.attribute5 ;
31467 l_ins_header_rec.new_attribute5 := l_new_ins_header_rec.attribute5 ;
31468 l_ins_header_rec.old_attribute6 := l_old_ins_header_rec.attribute6 ;
31469 l_ins_header_rec.new_attribute6 := l_new_ins_header_rec.attribute6 ;
31470 l_ins_header_rec.old_attribute7 := l_old_ins_header_rec.attribute7 ;
31471 l_ins_header_rec.new_attribute7 := l_new_ins_header_rec.attribute7 ;
31472 l_ins_header_rec.old_attribute8 := l_old_ins_header_rec.attribute8 ;
31473 l_ins_header_rec.new_attribute8 := l_new_ins_header_rec.attribute8 ;
31474 l_ins_header_rec.old_attribute9 := l_old_ins_header_rec.attribute9 ;
31475 l_ins_header_rec.new_attribute9 := l_new_ins_header_rec.attribute9 ;
31476 l_ins_header_rec.old_attribute10 := l_old_ins_header_rec.attribute10 ;
31477 l_ins_header_rec.new_attribute10 := l_new_ins_header_rec.attribute10 ;
31478 l_ins_header_rec.old_attribute11 := l_old_ins_header_rec.attribute11 ;
31479 l_ins_header_rec.new_attribute11 := l_new_ins_header_rec.attribute11 ;
31480 l_ins_header_rec.old_attribute12 := l_old_ins_header_rec.attribute12 ;
31481 l_ins_header_rec.new_attribute12 := l_new_ins_header_rec.attribute12 ;
31482 l_ins_header_rec.old_attribute13 := l_old_ins_header_rec.attribute13 ;
31483 l_ins_header_rec.new_attribute13 := l_new_ins_header_rec.attribute13 ;
31484 l_ins_header_rec.old_attribute14 := l_old_ins_header_rec.attribute14 ;
31485 l_ins_header_rec.new_attribute14 := l_new_ins_header_rec.attribute14 ;
31486 l_ins_header_rec.old_attribute15 := l_old_ins_header_rec.attribute15 ;
31487 l_ins_header_rec.new_attribute15 := l_new_ins_header_rec.attribute15 ;
31488 l_ins_header_rec.old_last_txn_line_detail_id := l_old_ins_header_rec.last_txn_line_detail_id ;
31489 l_ins_header_rec.new_last_txn_line_detail_id := l_new_ins_header_rec.last_txn_line_detail_id ;
31490 l_ins_header_rec.old_install_location_type_code := l_old_ins_header_rec.install_location_type_code ;
31491 l_ins_header_rec.new_install_location_type_code := l_new_ins_header_rec.install_location_type_code ;
31492 l_ins_header_rec.old_install_location_id := l_old_ins_header_rec.install_location_id ;
31493 l_ins_header_rec.new_install_location_id := l_new_ins_header_rec.install_location_id ;
31494 l_ins_header_rec.old_instance_usage_code := l_old_ins_header_rec.instance_usage_code ;
31495 l_ins_header_rec.new_instance_usage_code := l_new_ins_header_rec.instance_usage_code ;
31496 l_ins_header_rec.old_current_loc_address1 := l_old_ins_header_rec.current_loc_address1 ;
31497 l_ins_header_rec.new_current_loc_address1 := l_new_ins_header_rec.current_loc_address1 ;
31498 l_ins_header_rec.old_current_loc_address2 := l_old_ins_header_rec.current_loc_address2 ;
31499 l_ins_header_rec.new_current_loc_address2 := l_new_ins_header_rec.current_loc_address2 ;
31500 l_ins_header_rec.old_current_loc_address3 := l_old_ins_header_rec.current_loc_address3 ;
31501 l_ins_header_rec.new_current_loc_address3 := l_new_ins_header_rec.current_loc_address3 ;
31502 l_ins_header_rec.old_current_loc_address4 := l_old_ins_header_rec.current_loc_address4 ;
31503 l_ins_header_rec.new_current_loc_address4 := l_new_ins_header_rec.current_loc_address4 ;
31504 l_ins_header_rec.old_current_loc_city := l_old_ins_header_rec.current_loc_city ;
31505 l_ins_header_rec.new_current_loc_city := l_new_ins_header_rec.current_loc_city ;
31506 l_ins_header_rec.old_current_loc_postal_code := l_old_ins_header_rec.current_loc_postal_code ;
31507 l_ins_header_rec.new_current_loc_postal_code := l_new_ins_header_rec.current_loc_postal_code ;
31508 l_ins_header_rec.old_current_loc_country := l_old_ins_header_rec.current_loc_country ;
31509 l_ins_header_rec.new_current_loc_country := l_new_ins_header_rec.current_loc_country ;
31510 l_ins_header_rec.old_current_loc_state := l_old_ins_header_rec.current_loc_state ;
31511 l_ins_header_rec.new_current_loc_state := l_new_ins_header_rec.current_loc_state ;
31512 l_ins_header_rec.old_sales_order_number := l_old_ins_header_rec.sales_order_number ;
31513 l_ins_header_rec.new_sales_order_number := l_new_ins_header_rec.sales_order_number ;
31514 l_ins_header_rec.old_sales_order_line_number := l_old_ins_header_rec.sales_order_line_number ;
31515 l_ins_header_rec.new_sales_order_line_number := l_new_ins_header_rec.sales_order_line_number ;
31516 l_ins_header_rec.old_sales_order_date := l_old_ins_header_rec.sales_order_date ;
31517 l_ins_header_rec.new_sales_order_date := l_new_ins_header_rec.sales_order_date ;
31518 l_ins_header_rec.old_purchase_order_number := l_old_ins_header_rec.purchase_order_number ;
31519 l_ins_header_rec.new_purchase_order_number := l_new_ins_header_rec.purchase_order_number ;
31520 l_ins_header_rec.old_instance_usage_name := l_old_ins_header_rec.instance_usage_name ;
31521 l_ins_header_rec.new_instance_usage_name := l_new_ins_header_rec.instance_usage_name ;
31522 l_ins_header_rec.old_install_loc_address1 := l_old_ins_header_rec.install_loc_address1 ;
31523 l_ins_header_rec.new_install_loc_address1 := l_new_ins_header_rec.install_loc_address1 ;
31524 l_ins_header_rec.old_install_loc_address2 := l_old_ins_header_rec.install_loc_address2 ;
31525 l_ins_header_rec.new_install_loc_address2 := l_new_ins_header_rec.install_loc_address2 ;
31526 l_ins_header_rec.old_install_loc_address3 := l_old_ins_header_rec.install_loc_address3 ;
31527 l_ins_header_rec.new_install_loc_address3 := l_new_ins_header_rec.install_loc_address3 ;
31528 l_ins_header_rec.old_install_loc_address4 := l_old_ins_header_rec.install_loc_address4 ;
31529 l_ins_header_rec.new_install_loc_address4 := l_new_ins_header_rec.install_loc_address4 ;
31530 l_ins_header_rec.old_install_loc_city := l_old_ins_header_rec.install_loc_city ;
31531 l_ins_header_rec.new_install_loc_city := l_new_ins_header_rec.install_loc_city ;
31532 l_ins_header_rec.old_install_loc_postal_code := l_old_ins_header_rec.install_loc_postal_code ;
31533 l_ins_header_rec.new_install_loc_postal_code := l_new_ins_header_rec.install_loc_postal_code ;
31534 l_ins_header_rec.old_install_loc_country := l_old_ins_header_rec.install_loc_country ;
31535 l_ins_header_rec.new_install_loc_country := l_new_ins_header_rec.install_loc_country ;
31536 l_ins_header_rec.old_install_loc_state := l_old_ins_header_rec.install_loc_state ;
31537 l_ins_header_rec.new_install_loc_state := l_new_ins_header_rec.install_loc_state ;
31538 l_ins_header_rec.old_oe_agreement_name := l_old_ins_header_rec.last_oe_agreement_name ;
31539 l_ins_header_rec.new_oe_agreement_name := l_new_ins_header_rec.last_oe_agreement_name ;
31540 l_ins_header_rec.old_inv_locator_name := l_old_ins_header_rec.inv_locator_name ;
31541 l_ins_header_rec.new_inv_locator_name := l_new_ins_header_rec.inv_locator_name ;
31542 l_ins_header_rec.old_current_location_number := l_old_ins_header_rec.current_loc_number;
31543 l_ins_header_rec.new_current_location_number := l_new_ins_header_rec.current_loc_number;
31544 l_ins_header_rec.old_install_location_number := l_old_ins_header_rec.install_loc_number;
31545 l_ins_header_rec.new_install_location_number := l_new_ins_header_rec.install_loc_number;
31546 --start of code change for eam integration--
31547 l_ins_header_rec.old_network_asset_flag := l_old_ins_header_rec.network_asset_flag ;
31548 l_ins_header_rec.new_network_asset_flag := l_new_ins_header_rec.network_asset_flag ;
31549 l_ins_header_rec.old_maintainable_flag := l_old_ins_header_rec.maintainable_flag ;
31550 l_ins_header_rec.new_maintainable_flag := l_new_ins_header_rec.maintainable_flag ;
31551 l_ins_header_rec.old_pn_location_id := l_old_ins_header_rec.pn_location_id ;
31552 l_ins_header_rec.new_pn_location_id := l_new_ins_header_rec.pn_location_id ;
31553 l_ins_header_rec.old_asset_criticality_code := l_old_ins_header_rec.asset_criticality_code ;
31554 l_ins_header_rec.new_asset_criticality_code := l_new_ins_header_rec.asset_criticality_code ;
31555 l_ins_header_rec.old_category_id := l_old_ins_header_rec.category_id ;
31556 l_ins_header_rec.new_category_id := l_new_ins_header_rec.category_id ;
31557
31558 --start of code for bug 4754569--
31559 l_ins_header_rec.old_criticality := l_old_ins_header_rec.criticality ;
31560 l_ins_header_rec.new_criticality := l_new_ins_header_rec.criticality ;
31561 l_ins_header_rec.old_category_name := l_old_ins_header_rec.category_name ;
31562 l_ins_header_rec.new_category_name := l_new_ins_header_rec.category_name ;
31563 --end of code for bug 4754569--
31564
31565 l_ins_header_rec.old_maintainable := l_old_ins_header_rec.maintainable; --for bug 5211068
31566 l_ins_header_rec.new_maintainable := l_new_ins_header_rec.maintainable;
31567
31568 l_ins_header_rec.old_equipment_gen_object_id := l_old_ins_header_rec.equipment_gen_object_id ;
31569 l_ins_header_rec.new_equipment_gen_object_id := l_new_ins_header_rec.equipment_gen_object_id ;
31570 l_ins_header_rec.old_instantiation_flag := l_old_ins_header_rec.instantiation_flag ;
31571 l_ins_header_rec.new_instantiation_flag := l_new_ins_header_rec.instantiation_flag ;
31572 l_ins_header_rec.old_linear_location_id := l_old_ins_header_rec.linear_location_id ;
31573 l_ins_header_rec.new_linear_location_id := l_new_ins_header_rec.linear_location_id ;
31574 l_ins_header_rec.old_operational_log_flag := l_old_ins_header_rec.operational_log_flag ;
31575 l_ins_header_rec.new_operational_log_flag := l_new_ins_header_rec.operational_log_flag ;
31576 l_ins_header_rec.old_checkin_status := l_old_ins_header_rec.checkin_status;
31577 l_ins_header_rec.new_checkin_status := l_new_ins_header_rec.checkin_status;
31578 l_ins_header_rec.old_supplier_warranty_exp_date := l_old_ins_header_rec.supplier_warranty_exp_date;
31579 l_ins_header_rec.new_supplier_warranty_exp_date := l_new_ins_header_rec.supplier_warranty_exp_date;
31580 l_ins_header_rec.old_attribute16 := l_old_ins_header_rec.attribute16 ;
31581 l_ins_header_rec.new_attribute16 := l_new_ins_header_rec.attribute16 ;
31582 l_ins_header_rec.old_attribute17 := l_old_ins_header_rec.attribute17 ;
31583 l_ins_header_rec.new_attribute17 := l_new_ins_header_rec.attribute17 ;
31584 l_ins_header_rec.old_attribute18 := l_old_ins_header_rec.attribute18 ;
31585 l_ins_header_rec.new_attribute18 := l_new_ins_header_rec.attribute18 ;
31586 l_ins_header_rec.old_attribute19 := l_old_ins_header_rec.attribute19 ;
31587 l_ins_header_rec.new_attribute19 := l_new_ins_header_rec.attribute19 ;
31588 l_ins_header_rec.old_attribute20 := l_old_ins_header_rec.attribute20 ;
31589 l_ins_header_rec.new_attribute20 := l_new_ins_header_rec.attribute20 ;
31590 l_ins_header_rec.old_attribute21 := l_old_ins_header_rec.attribute21 ;
31591 l_ins_header_rec.new_attribute21 := l_new_ins_header_rec.attribute21 ;
31592 l_ins_header_rec.old_attribute22 := l_old_ins_header_rec.attribute22 ;
31593 l_ins_header_rec.new_attribute22 := l_new_ins_header_rec.attribute22 ;
31594 l_ins_header_rec.old_attribute23 := l_old_ins_header_rec.attribute23 ;
31595 l_ins_header_rec.new_attribute23 := l_new_ins_header_rec.attribute23 ;
31596 l_ins_header_rec.old_attribute24 := l_old_ins_header_rec.attribute24 ;
31597 l_ins_header_rec.new_attribute24 := l_new_ins_header_rec.attribute24 ;
31598 l_ins_header_rec.old_attribute25 := l_old_ins_header_rec.attribute25 ;
31599 l_ins_header_rec.new_attribute25 := l_new_ins_header_rec.attribute25 ;
31600 l_ins_header_rec.old_attribute26 := l_old_ins_header_rec.attribute26 ;
31601 l_ins_header_rec.new_attribute26 := l_new_ins_header_rec.attribute26 ;
31602 l_ins_header_rec.old_attribute27 := l_old_ins_header_rec.attribute27 ;
31603 l_ins_header_rec.new_attribute27 := l_new_ins_header_rec.attribute27 ;
31604 l_ins_header_rec.old_attribute28 := l_old_ins_header_rec.attribute28 ;
31605 l_ins_header_rec.new_attribute28 := l_new_ins_header_rec.attribute28 ;
31606 l_ins_header_rec.old_attribute29 := l_old_ins_header_rec.attribute29 ;
31607 l_ins_header_rec.new_attribute29 := l_new_ins_header_rec.attribute29 ;
31608 l_ins_header_rec.old_attribute30 := l_old_ins_header_rec.attribute30 ;
31609 l_ins_header_rec.new_attribute30 := l_new_ins_header_rec.attribute30 ;
31610 --end of code change for eam integration--
31611 -- Addition of columns for FA Integration
31612 l_ins_header_rec.old_payables_unit_price := l_old_ins_header_rec.payables_unit_price;
31613 l_ins_header_rec.new_payables_unit_price := l_new_ins_header_rec.payables_unit_price;
31614 l_ins_header_rec.old_payables_currency_code := l_old_ins_header_rec.payables_currency_code;
31615 l_ins_header_rec.new_payables_currency_code := l_new_ins_header_rec.payables_currency_code;
31616 l_ins_header_rec.old_purchase_unit_price := l_old_ins_header_rec.purchase_unit_price;
31617 l_ins_header_rec.new_purchase_unit_price := l_new_ins_header_rec.purchase_unit_price;
31618 l_ins_header_rec.old_purchase_currency_code := l_old_ins_header_rec.purchase_currency_code;
31619 l_ins_header_rec.new_purchase_currency_code := l_new_ins_header_rec.purchase_currency_code;
31620 l_ins_header_rec.old_sales_unit_price := l_old_ins_header_rec.sales_unit_price;
31621 l_ins_header_rec.new_sales_unit_price := l_new_ins_header_rec.sales_unit_price;
31622 l_ins_header_rec.old_sales_currency_code := l_old_ins_header_rec.sales_currency_code;
31623 l_ins_header_rec.new_sales_currency_code := l_new_ins_header_rec.sales_currency_code;
31624 l_ins_header_rec.old_operational_status_code := l_old_ins_header_rec.operational_status_code;
31625 l_ins_header_rec.new_operational_status_code := l_new_ins_header_rec.operational_status_code;
31626
31627 l_ins_header_rec.old_instance_description := l_old_ins_header_rec.instance_description;
31628 l_ins_header_rec.new_instance_description := l_new_ins_header_rec.instance_description;
31629 -- End addition of columns for FA Integration
31630 i:=i+1;
31631 x_instance_history_tbl(i):= l_ins_header_rec;
31632
31633 END LOOP;
31634
31635 -- End of API body
31636
31637 -- Standard check of p_commit.
31638 /*
31639 IF FND_API.To_Boolean( p_commit ) THEN
31640 COMMIT WORK;
31641 END IF;
31642 */
31643
31644 /***** srramakr commented for bug # 3304439
31645 -- Check for the profile option and disable the trace
31646 IF (fnd_profile.value('CSI_ENABLE_SQL_TRACE') = 'Y') THEN
31647 dbms_session.set_sql_trace(false);
31648 END IF;
31649 -- End disable trace
31650 ****/
31651
31652 -- Standard call to get message count and if count is get message info.
31653 FND_MSG_PUB.Count_And_Get
31654 (p_count => x_msg_count ,
31655 p_data => x_msg_data );
31656 EXCEPTION
31657 WHEN OTHERS THEN
31658 X_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
31659 /*
31660 IF fnd_api.to_boolean(p_commit)
31661 THEN
31662 ROLLBACK TO get_instance_hist;
31663 END IF;
31664 */
31665 IF FND_MSG_PUB.Check_Msg_Level
31666 (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
31667 THEN
31668 FND_MSG_PUB.Add_Exc_Msg
31669 ( G_PKG_NAME, l_api_name );
31670 END IF;
31671 FND_MSG_PUB.Count_And_Get
31672 ( p_count => x_msg_count,
31673 p_data => x_msg_data);
31674
31675
31676 END get_instance_hist ;
31677
31678 /*---------------------------------------------------*/
31679 /* procedure name: get_ext_attrib_val_hist */
31680 /* description : Retreive history transactions */
31681 /* for extended attribute values */
31682 /*---------------------------------------------------*/
31683
31684 PROCEDURE get_ext_attrib_val_hist
31685 ( p_api_version IN NUMBER
31686 ,p_commit IN VARCHAR2
31687 ,p_init_msg_list IN VARCHAR2
31688 ,p_validation_level IN NUMBER
31689 ,p_transaction_id IN NUMBER
31690 ,x_ext_attrib_val_hist_tbl OUT NOCOPY csi_datastructures_pub.ext_attrib_val_history_tbl
31691 ,x_return_status OUT NOCOPY VARCHAR2
31692 ,x_msg_count OUT NOCOPY NUMBER
31693 ,x_msg_data OUT NOCOPY VARCHAR2
31694 ) IS
31695 CURSOR txn_hist_csr (p_txn_id IN NUMBER) IS
31696 SELECT ieh.ATTRIBUTE_VALUE_HISTORY_ID ,
31697 ieh.ATTRIBUTE_VALUE_ID ,
31698 ieh.TRANSACTION_ID ,
31699 ieh.OLD_ATTRIBUTE_VALUE ,
31700 ieh.NEW_ATTRIBUTE_VALUE ,
31701 ieh.OLD_ACTIVE_START_DATE ,
31702 ieh.NEW_ACTIVE_START_DATE ,
31703 ieh.OLD_ACTIVE_END_DATE ,
31704 ieh.NEW_ACTIVE_END_DATE ,
31705 ieh.OLD_CONTEXT ,
31706 ieh.NEW_CONTEXT ,
31707 ieh.OLD_ATTRIBUTE1 ,
31708 ieh.NEW_ATTRIBUTE1 ,
31709 ieh.OLD_ATTRIBUTE2 ,
31710 ieh.NEW_ATTRIBUTE2 ,
31711 ieh.OLD_ATTRIBUTE3 ,
31712 ieh.NEW_ATTRIBUTE3 ,
31713 ieh.OLD_ATTRIBUTE4 ,
31714 ieh.NEW_ATTRIBUTE4 ,
31715 ieh.OLD_ATTRIBUTE5 ,
31716 ieh.NEW_ATTRIBUTE5 ,
31717 ieh.OLD_ATTRIBUTE6 ,
31718 ieh.NEW_ATTRIBUTE6 ,
31719 ieh.OLD_ATTRIBUTE7 ,
31720 ieh.NEW_ATTRIBUTE7 ,
31721 ieh.OLD_ATTRIBUTE8 ,
31722 ieh.NEW_ATTRIBUTE8 ,
31723 ieh.OLD_ATTRIBUTE9 ,
31724 ieh.NEW_ATTRIBUTE9 ,
31725 ieh.OLD_ATTRIBUTE10 ,
31726 ieh.NEW_ATTRIBUTE10 ,
31727 ieh.OLD_ATTRIBUTE11 ,
31728 ieh.NEW_ATTRIBUTE11 ,
31729 ieh.OLD_ATTRIBUTE12 ,
31730 ieh.NEW_ATTRIBUTE12 ,
31731 ieh.OLD_ATTRIBUTE13 ,
31732 ieh.NEW_ATTRIBUTE13 ,
31733 ieh.OLD_ATTRIBUTE14 ,
31734 ieh.NEW_ATTRIBUTE14 ,
31735 ieh.OLD_ATTRIBUTE15 ,
31736 ieh.NEW_ATTRIBUTE15 ,
31737 ieh.FULL_DUMP_FLAG ,
31738 ieh.OBJECT_VERSION_NUMBER ,
31739 ie.INSTANCE_ID ,
31740 iea.attribute_code
31741 FROM csi_iea_values_h ieh,
31742 csi_iea_values ie ,
31743 csi_i_extended_attribs iea
31744 WHERE ieh.transaction_id = p_txn_id
31745 AND ieh.attribute_value_id = ie.attribute_value_id
31746 AND ie.attribute_id= iea.attribute_id;
31747
31748 l_old_ext_header_rec csi_datastructures_pub.extend_attrib_values_rec;
31749 l_new_ext_header_rec csi_datastructures_pub.extend_attrib_values_rec;
31750 l_ext_header_rec csi_datastructures_pub.ext_attrib_val_history_rec;
31751 l_temp_ext_rec csi_datastructures_pub.ext_attrib_val_history_rec;
31752 l_api_name CONSTANT VARCHAR2(30) := 'get_ext_attrib_val_hist';
31753 l_api_version CONSTANT NUMBER := 1.0;
31754 i NUMBER := 0;
31755 BEGIN
31756 /*
31757 IF fnd_api.to_boolean(p_commit)
31758 THEN
31759 SAVEPOINT get_ext_attrib_val_hist;
31760 END IF;
31761 */
31762
31763 -- Standard call to check for call compatibility.
31764 IF NOT FND_API.Compatible_API_Call (l_api_version ,
31765 p_api_version ,
31766 l_api_name ,
31767 G_PKG_NAME )
31768 THEN
31769 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
31770 END IF;
31771
31772 -- Initialize message list if p_init_msg_list is set to TRUE.
31773 IF FND_API.to_Boolean( p_init_msg_list ) THEN
31774 FND_MSG_PUB.initialize;
31775 END IF;
31776
31777 -- Initialize API return status to success
31778 x_return_status := FND_API.G_RET_STS_SUCCESS;
31779
31780 /***** srramakr commented for bug # 3304439
31781 -- Check for the profile option and enable trace
31782 IF (fnd_profile.value('CSI_ENABLE_SQL_TRACE') = 'Y') THEN
31783 dbms_session.set_sql_trace(TRUE);
31784 END IF;
31785 -- End enable trace
31786 ****/
31787
31788 -- Start API body
31789 --
31790
31791
31792
31793
31794 FOR l_hist_csr IN txn_hist_csr (p_transaction_id)
31795 LOOP
31796 l_ext_header_rec := l_temp_ext_rec;
31797 --
31798 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)
31799 THEN
31800 l_old_ext_header_rec.attribute_value := NULL;
31801 l_new_ext_header_rec.attribute_value := NULL;
31802 ELSE
31803 l_old_ext_header_rec.attribute_value := l_hist_csr.old_attribute_value;
31804 l_new_ext_header_rec.attribute_value := l_hist_csr.new_attribute_value;
31805 END IF;
31806 --
31807 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)
31808 THEN
31809 l_old_ext_header_rec.active_start_date := NULL;
31810 l_new_ext_header_rec.active_start_date := NULL;
31811 ELSE
31812 l_old_ext_header_rec.active_start_date := l_hist_csr.old_active_start_date;
31813 l_new_ext_header_rec.active_start_date := l_hist_csr.new_active_start_date;
31814 END IF;
31815 --
31816 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)
31817 THEN
31818 l_old_ext_header_rec.active_end_date := NULL;
31819 l_new_ext_header_rec.active_end_date := NULL;
31820 ELSE
31821 l_old_ext_header_rec.active_end_date := l_hist_csr.old_active_end_date;
31822 l_new_ext_header_rec.active_end_date := l_hist_csr.new_active_end_date;
31823 END IF;
31824 --
31825 IF NVL(l_hist_csr.old_context,fnd_api.g_miss_char) = NVL(l_hist_csr.new_context,fnd_api.g_miss_char)
31826 THEN
31827 l_old_ext_header_rec.context := NULL;
31828 l_new_ext_header_rec.context := NULL;
31829 ELSE
31830 l_old_ext_header_rec.context := l_hist_csr.old_context;
31831 l_new_ext_header_rec.context := l_hist_csr.new_context;
31832 END IF;
31833 --
31834 IF NVL(l_hist_csr.old_attribute1,fnd_api.g_miss_char) = NVL(l_hist_csr.new_attribute1,fnd_api.g_miss_char)
31835 THEN
31836 l_old_ext_header_rec.attribute1 := NULL;
31837 l_new_ext_header_rec.attribute1 := NULL;
31838 ELSE
31839 l_old_ext_header_rec.attribute1 := l_hist_csr.old_attribute1;
31840 l_new_ext_header_rec.attribute1 := l_hist_csr.new_attribute1;
31841 END IF;
31842 --
31843 IF NVL(l_hist_csr.old_attribute2,fnd_api.g_miss_char) = NVL(l_hist_csr.new_attribute2,fnd_api.g_miss_char)
31844 THEN
31845 l_old_ext_header_rec.attribute2 := NULL;
31846 l_new_ext_header_rec.attribute2 := NULL;
31847 ELSE
31848 l_old_ext_header_rec.attribute2 := l_hist_csr.old_attribute2;
31849 l_new_ext_header_rec.attribute2 := l_hist_csr.new_attribute2;
31850 END IF;
31851 --
31852 IF NVL(l_hist_csr.old_attribute3,fnd_api.g_miss_char) = NVL(l_hist_csr.new_attribute3,fnd_api.g_miss_char)
31853 THEN
31854 l_old_ext_header_rec.attribute3 := NULL;
31855 l_new_ext_header_rec.attribute3 := NULL;
31856 ELSE
31857 l_old_ext_header_rec.attribute3 := l_hist_csr.old_attribute3;
31858 l_new_ext_header_rec.attribute3 := l_hist_csr.new_attribute3;
31859 END IF;
31860 --
31861 IF NVL(l_hist_csr.old_attribute4,fnd_api.g_miss_char) = NVL(l_hist_csr.new_attribute4,fnd_api.g_miss_char)
31862 THEN
31863 l_old_ext_header_rec.attribute4 := NULL;
31864 l_new_ext_header_rec.attribute4 := NULL;
31865 ELSE
31866 l_old_ext_header_rec.attribute4 := l_hist_csr.old_attribute4;
31867 l_new_ext_header_rec.attribute4 := l_hist_csr.new_attribute4;
31868 END IF;
31869 --
31870 IF NVL(l_hist_csr.old_attribute5,fnd_api.g_miss_char) = NVL(l_hist_csr.new_attribute5,fnd_api.g_miss_char)
31871 THEN
31872 l_old_ext_header_rec.attribute5 := NULL;
31873 l_new_ext_header_rec.attribute5 := NULL;
31874 ELSE
31875 l_old_ext_header_rec.attribute5 := l_hist_csr.old_attribute5;
31876 l_new_ext_header_rec.attribute5 := l_hist_csr.new_attribute5;
31877 END IF;
31878 --
31879 IF NVL(l_hist_csr.old_attribute6,fnd_api.g_miss_char) = NVL(l_hist_csr.new_attribute6,fnd_api.g_miss_char)
31880 THEN
31881 l_old_ext_header_rec.attribute6 := NULL;
31882 l_new_ext_header_rec.attribute6 := NULL;
31883 ELSE
31884 l_old_ext_header_rec.attribute6 := l_hist_csr.old_attribute6;
31885 l_new_ext_header_rec.attribute6 := l_hist_csr.new_attribute6;
31886 END IF;
31887 --
31888 IF NVL(l_hist_csr.old_attribute7,fnd_api.g_miss_char) = NVL(l_hist_csr.new_attribute7,fnd_api.g_miss_char)
31889 THEN
31890 l_old_ext_header_rec.attribute7 := NULL;
31891 l_new_ext_header_rec.attribute7 := NULL;
31892 ELSE
31893 l_old_ext_header_rec.attribute7 := l_hist_csr.old_attribute7;
31894 l_new_ext_header_rec.attribute7 := l_hist_csr.new_attribute7;
31895 END IF;
31896 --
31897 IF NVL(l_hist_csr.old_attribute8,fnd_api.g_miss_char) = NVL(l_hist_csr.new_attribute8,fnd_api.g_miss_char)
31898 THEN
31899 l_old_ext_header_rec.attribute8 := NULL;
31900 l_new_ext_header_rec.attribute8 := NULL;
31901 ELSE
31902 l_old_ext_header_rec.attribute8 := l_hist_csr.old_attribute8;
31903 l_new_ext_header_rec.attribute8 := l_hist_csr.new_attribute8;
31904 END IF;
31905 --
31906 IF NVL(l_hist_csr.old_attribute9,fnd_api.g_miss_char) = NVL(l_hist_csr.new_attribute9,fnd_api.g_miss_char)
31907 THEN
31908 l_old_ext_header_rec.attribute9 := NULL;
31909 l_new_ext_header_rec.attribute9 := NULL;
31910 ELSE
31911 l_old_ext_header_rec.attribute9 := l_hist_csr.old_attribute9;
31912 l_new_ext_header_rec.attribute9 := l_hist_csr.new_attribute9;
31913 END IF;
31914 --
31915 IF NVL(l_hist_csr.old_attribute10,fnd_api.g_miss_char) = NVL(l_hist_csr.new_attribute10,fnd_api.g_miss_char)
31916 THEN
31917 l_old_ext_header_rec.attribute10 := NULL;
31918 l_new_ext_header_rec.attribute10 := NULL;
31919 ELSE
31920 l_old_ext_header_rec.attribute10 := l_hist_csr.old_attribute10;
31921 l_new_ext_header_rec.attribute10 := l_hist_csr.new_attribute10;
31922 END IF;
31923 --
31924 IF NVL(l_hist_csr.old_attribute11,fnd_api.g_miss_char) = NVL(l_hist_csr.new_attribute11,fnd_api.g_miss_char)
31925 THEN
31926 l_old_ext_header_rec.attribute11 := NULL;
31927 l_new_ext_header_rec.attribute11 := NULL;
31928 ELSE
31929 l_old_ext_header_rec.attribute11 := l_hist_csr.old_attribute11;
31930 l_new_ext_header_rec.attribute11 := l_hist_csr.new_attribute11;
31931 END IF;
31932 --
31933 IF NVL(l_hist_csr.old_attribute12,fnd_api.g_miss_char) = NVL(l_hist_csr.new_attribute12,fnd_api.g_miss_char)
31934 THEN
31935 l_old_ext_header_rec.attribute12 := NULL;
31936 l_new_ext_header_rec.attribute12 := NULL;
31937 ELSE
31938 l_old_ext_header_rec.attribute12 := l_hist_csr.old_attribute12;
31939 l_new_ext_header_rec.attribute12 := l_hist_csr.new_attribute12;
31940 END IF;
31941 --
31942 IF NVL(l_hist_csr.old_attribute13,fnd_api.g_miss_char) = NVL(l_hist_csr.new_attribute13,fnd_api.g_miss_char)
31943 THEN
31944 l_old_ext_header_rec.attribute13 := NULL;
31945 l_new_ext_header_rec.attribute13 := NULL;
31946 ELSE
31947 l_old_ext_header_rec.attribute13 := l_hist_csr.old_attribute13;
31948 l_new_ext_header_rec.attribute13 := l_hist_csr.new_attribute13;
31949 END IF;
31950 --
31951 IF NVL(l_hist_csr.old_attribute14,fnd_api.g_miss_char) = NVL(l_hist_csr.new_attribute14,fnd_api.g_miss_char)
31952 THEN
31953 l_old_ext_header_rec.attribute14 := NULL;
31954 l_new_ext_header_rec.attribute14 := NULL;
31955 ELSE
31956 l_old_ext_header_rec.attribute14 := l_hist_csr.old_attribute14;
31957 l_new_ext_header_rec.attribute14 := l_hist_csr.new_attribute14;
31958 END IF;
31959 --
31960 IF NVL(l_hist_csr.old_attribute15,fnd_api.g_miss_char) = NVL(l_hist_csr.new_attribute15,fnd_api.g_miss_char)
31961 THEN
31962 l_old_ext_header_rec.attribute15 := NULL;
31963 l_new_ext_header_rec.attribute15 := NULL;
31964 ELSE
31965 l_old_ext_header_rec.attribute15 := l_hist_csr.old_attribute15;
31966 l_new_ext_header_rec.attribute15 := l_hist_csr.new_attribute15;
31967 END IF;
31968 --
31969 l_ext_header_rec.attribute_value_id := l_hist_csr.attribute_value_id ;
31970 l_ext_header_rec.transaction_id := p_transaction_id;
31971 l_ext_header_rec.old_attribute_value := l_old_ext_header_rec.attribute_value ;
31972 l_ext_header_rec.new_attribute_value := l_new_ext_header_rec.attribute_value ;
31973 l_ext_header_rec.old_active_start_date := l_old_ext_header_rec.active_start_date ;
31974 l_ext_header_rec.new_active_start_date := l_new_ext_header_rec.active_start_date ;
31975 l_ext_header_rec.old_active_end_date := l_old_ext_header_rec.active_end_date ;
31976 l_ext_header_rec.new_active_end_date := l_new_ext_header_rec.active_end_date ;
31977 l_ext_header_rec.old_context := l_old_ext_header_rec.context ;
31978 l_ext_header_rec.new_context := l_new_ext_header_rec.context ;
31979 l_ext_header_rec.old_attribute1 := l_old_ext_header_rec.attribute1 ;
31980 l_ext_header_rec.new_attribute1 := l_new_ext_header_rec.attribute1 ;
31981 l_ext_header_rec.old_attribute2 := l_old_ext_header_rec.attribute2 ;
31982 l_ext_header_rec.new_attribute2 := l_new_ext_header_rec.attribute2 ;
31983 l_ext_header_rec.old_attribute3 := l_old_ext_header_rec.attribute3 ;
31984 l_ext_header_rec.new_attribute3 := l_new_ext_header_rec.attribute3 ;
31985 l_ext_header_rec.old_attribute4 := l_old_ext_header_rec.attribute4 ;
31986 l_ext_header_rec.new_attribute4 := l_new_ext_header_rec.attribute4 ;
31987 l_ext_header_rec.old_attribute5 := l_old_ext_header_rec.attribute5 ;
31988 l_ext_header_rec.new_attribute5 := l_new_ext_header_rec.attribute5 ;
31989 l_ext_header_rec.old_attribute6 := l_old_ext_header_rec.attribute6 ;
31990 l_ext_header_rec.new_attribute6 := l_new_ext_header_rec.attribute6 ;
31991 l_ext_header_rec.old_attribute7 := l_old_ext_header_rec.attribute7 ;
31992 l_ext_header_rec.new_attribute7 := l_new_ext_header_rec.attribute7 ;
31993 l_ext_header_rec.old_attribute8 := l_old_ext_header_rec.attribute8 ;
31994 l_ext_header_rec.new_attribute8 := l_new_ext_header_rec.attribute8 ;
31995 l_ext_header_rec.old_attribute9 := l_old_ext_header_rec.attribute9 ;
31996 l_ext_header_rec.new_attribute9 := l_new_ext_header_rec.attribute9 ;
31997 l_ext_header_rec.old_attribute10 := l_old_ext_header_rec.attribute10 ;
31998 l_ext_header_rec.new_attribute10 := l_new_ext_header_rec.attribute10 ;
31999 l_ext_header_rec.old_attribute11 := l_old_ext_header_rec.attribute11 ;
32000 l_ext_header_rec.new_attribute11 := l_new_ext_header_rec.attribute11 ;
32001 l_ext_header_rec.old_attribute12 := l_old_ext_header_rec.attribute12 ;
32002 l_ext_header_rec.new_attribute12 := l_new_ext_header_rec.attribute12 ;
32003 l_ext_header_rec.old_attribute13 := l_old_ext_header_rec.attribute13 ;
32004 l_ext_header_rec.new_attribute13 := l_new_ext_header_rec.attribute13 ;
32005 l_ext_header_rec.old_attribute14 := l_old_ext_header_rec.attribute14 ;
32006 l_ext_header_rec.new_attribute14 := l_new_ext_header_rec.attribute14 ;
32007 l_ext_header_rec.old_attribute15 := l_old_ext_header_rec.attribute15 ;
32008 l_ext_header_rec.new_attribute15 := l_new_ext_header_rec.attribute15 ;
32009 l_ext_header_rec.attribute_code := l_hist_csr.attribute_code ;
32010
32011 i:=i+1;
32012
32013 x_ext_attrib_val_hist_tbl(i):= l_ext_header_rec;
32014 x_ext_attrib_val_hist_tbl(i).instance_id := l_hist_csr.instance_id;
32015
32016 END LOOP;
32017
32018 -- End of API body
32019
32020 -- Standard check of p_commit.
32021 /*
32022 IF FND_API.To_Boolean( p_commit ) THEN
32023 COMMIT WORK;
32024 END IF;
32025 */
32026
32027 /***** srramakr commented for bug # 3304439
32028 -- Check for the profile option and disable the trace
32029 IF (fnd_profile.value('CSI_ENABLE_SQL_TRACE') = 'Y') THEN
32030 dbms_session.set_sql_trace(false);
32031 END IF;
32032 -- End disable trace
32033 ****/
32034
32035 -- Standard call to get message count and if count is get message info.
32036 FND_MSG_PUB.Count_And_Get
32037 (p_count => x_msg_count ,
32038 p_data => x_msg_data );
32039 EXCEPTION
32040 WHEN OTHERS THEN
32041 X_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
32042 /*
32043 IF fnd_api.to_boolean(p_commit)
32044 THEN
32045 ROLLBACK TO get_ext_attrib_val_hist;
32046 END IF;
32047 */
32048 IF FND_MSG_PUB.Check_Msg_Level
32049 (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
32050 THEN
32051 FND_MSG_PUB.Add_Exc_Msg
32052 ( G_PKG_NAME, l_api_name );
32053 END IF;
32054 FND_MSG_PUB.Count_And_Get
32055 ( p_count => x_msg_count,
32056 p_data => x_msg_data);
32057
32058
32059 END get_ext_attrib_val_hist ;
32060
32061
32062 /*------------------------------------------------------*/
32063 /* procedure name: copy_item_instance */
32064 /* description : Copies an instace from an instance. */
32065 /* It has the configuration parameter */
32066 /*------------------------------------------------------*/
32067
32068
32069 PROCEDURE copy_item_instance
32070 ( p_api_version IN NUMBER
32071 ,p_commit IN VARCHAR2
32072 ,p_init_msg_list IN VARCHAR2
32073 ,p_validation_level IN NUMBER
32074 ,p_source_instance_rec IN csi_datastructures_pub.instance_rec
32075 ,p_copy_ext_attribs IN VARCHAR2
32076 ,p_copy_org_assignments IN VARCHAR2
32077 ,p_copy_parties IN VARCHAR2
32078 ,p_copy_contacts IN VARCHAR2
32079 ,p_copy_accounts IN VARCHAR2
32080 ,p_copy_asset_assignments IN VARCHAR2
32081 ,p_copy_pricing_attribs IN VARCHAR2
32082 ,p_copy_inst_children IN VARCHAR2
32083 ,p_call_from_split IN VARCHAR2 -- Added
32084 ,p_txn_rec IN OUT NOCOPY csi_datastructures_pub.transaction_rec
32085 ,x_new_instance_tbl OUT NOCOPY csi_datastructures_pub.instance_tbl
32086 ,x_return_status OUT NOCOPY VARCHAR2
32087 ,x_msg_count OUT NOCOPY NUMBER
32088 ,x_msg_data OUT NOCOPY VARCHAR2
32089 )
32090
32091 IS
32092
32093 l_api_name CONSTANT VARCHAR2(30) := 'copy_item_instance';
32094 l_api_version CONSTANT NUMBER := 1.0;
32095 l_debug_level NUMBER;
32096 l_msg_index NUMBER;
32097 l_msg_count NUMBER;
32098 x_msg_index_out NUMBER;
32099 j NUMBER := 1;
32100 l_curr_instance_rec csi_datastructures_pub.instance_rec;
32101 l_new_instance_rec csi_datastructures_pub.instance_rec;
32102 l_source_child_instance_rec csi_datastructures_pub.instance_rec;
32103 l_asset_tbl csi_datastructures_pub.instance_asset_tbl;
32104 l_asset_header_tbl csi_datastructures_pub.instance_asset_header_tbl;--rk
32105 l_ext_attrib_tbl csi_datastructures_pub.extend_attrib_values_tbl;
32106 l_ext_attrib_def_tbl csi_datastructures_pub.extend_attrib_tbl;
32107 l_ext_attribs_query_rec csi_datastructures_pub.extend_attrib_query_rec;
32108 l_ou_query_rec csi_datastructures_pub.organization_unit_query_rec;
32109 l_org_unit_tbl csi_datastructures_pub.organization_units_tbl;
32110 l_org_unit_header_tbl csi_datastructures_pub.org_units_header_tbl;--rk
32111 l_pricing_attribs_query_rec csi_datastructures_pub.pricing_attribs_query_rec;
32112 l_pricing_attribs_tbl csi_datastructures_pub.pricing_attribs_tbl;
32113 l_account_header_tbl csi_datastructures_pub.party_account_header_tbl;
32114 l_instance_asset_query_rec csi_datastructures_pub.instance_asset_query_rec;
32115 l_instance_asset_rec csi_datastructures_pub.instance_asset_rec;
32116 l_party_query_rec csi_datastructures_pub.party_query_rec;
32117 l_party_tbl csi_datastructures_pub.party_tbl;
32118 l_original_party_tbl csi_datastructures_pub.party_tbl;
32119 l_party_input_tbl csi_datastructures_pub.party_tbl;
32120 l_new_party_tbl csi_datastructures_pub.party_tbl;
32121 l_contact_tbl csi_datastructures_pub.party_tbl;
32122 l_contact_input_tbl csi_datastructures_pub.party_tbl;
32123 l_contact_found_flag BOOLEAN := FALSE;
32124 l_new_contact_tbl csi_datastructures_pub.party_tbl;
32125 l_party_header_tbl csi_datastructures_pub.party_header_tbl;
32126 l_party_account_query_rec csi_datastructures_pub.party_account_query_rec;
32127 l_contact_account_query_rec csi_datastructures_pub.party_account_query_rec;
32128 l_party_account_tbl csi_datastructures_pub.party_account_tbl;
32129 l_contact_account_tbl csi_datastructures_pub.party_account_tbl;
32130 l_temp_party_account_tbl csi_datastructures_pub.party_account_tbl;
32131 l_ii_relationship_rec csi_datastructures_pub.ii_relationship_rec;
32132 l_ii_relationship_tbl csi_datastructures_pub.ii_relationship_tbl;
32133 l_new_ii_relationship_tbl csi_datastructures_pub.ii_relationship_tbl;
32134 l_new_instance_tbl csi_datastructures_pub.instance_tbl;
32135 l_new_child_instance_tbl csi_datastructures_pub.instance_tbl;
32136 l_parent_object_found_flag VARCHAR2(1);
32137 l_attribute_level VARCHAR2(30);
32138 l_temp_acct_hdr_tbl csi_datastructures_pub.party_account_header_tbl;
32139 l_pty_acct_hdr_tbl csi_datastructures_pub.party_account_header_tbl;
32140 k NUMBER;
32141 l_vld_org_id NUMBER;
32142 l_internal_party_id NUMBER;
32143 l_party_id NUMBER;
32144 l_item_attribute_tbl csi_item_instance_pvt.item_attribute_tbl;
32145 l_location_tbl csi_item_instance_pvt.location_tbl;
32146 l_generic_id_tbl csi_item_instance_pvt.generic_id_tbl;
32147 l_lookup_tbl csi_item_instance_pvt.lookup_tbl;
32148 l_ins_count_rec csi_item_instance_pvt.ins_count_rec;
32149 l_map_count NUMBER := 0;
32150 l_rel_count NUMBER := 0;
32151 l_map_inst_tbl csi_item_instance_pvt.map_inst_tbl;
32152 l_par_vld_organization_id NUMBER;
32153 l_asset_lookup_tbl csi_asset_pvt.lookup_tbl;
32154 l_asset_count_rec csi_asset_pvt.asset_count_rec;
32155 l_asset_id_tbl csi_asset_pvt.asset_id_tbl;
32156 l_asset_loc_tbl csi_asset_pvt.asset_loc_tbl;
32157 l_version_label VARCHAR2(30);
32158 l_version_label_rec csi_datastructures_pub.version_label_rec;
32159 p_rel_query_rec csi_datastructures_pub.relationship_query_rec;
32160 l_rel_tbl csi_datastructures_pub.ii_relationship_tbl;
32161 l_ii_relationship_level_tbl csi_ii_relationships_pvt.ii_relationship_level_tbl;
32162 l_obj_id NUMBER;
32163 --
32164 px_oks_txn_inst_tbl oks_ibint_pub.txn_instance_tbl;
32165 l_batch_type VARCHAR2(50);
32166 l_batch_id NUMBER;
32167 --
32168 -- Begin Add Code for Siebel Genesis Project
32169 l_raise_bes_event VARCHAR2(1) := nvl(fnd_profile.value('CSI_RAISE_BES_CUST_OWNED_INSTANCES'),'N');
32170 l_link_to_line_id NUMBER;
32171 l_item_type_code VARCHAR2(30);
32172 l_owner_party_id NUMBER;
32173 -- End Add Code for Siebel Genesis Project
32174 BEGIN
32175
32176 -- Standard Start of API savepoint
32177 SAVEPOINT copy_item_instance;
32178
32179 -- Standard call to check for call compatibility.
32180 IF NOT FND_API.Compatible_API_Call (l_api_version,
32181 p_api_version,
32182 l_api_name ,
32183 G_PKG_NAME)
32184 THEN
32185 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
32186 END IF;
32187
32188 -- Initialize message list if p_init_msg_list is set to TRUE.
32189 IF FND_API.to_Boolean( p_init_msg_list ) THEN
32190 FND_MSG_PUB.initialize;
32191 END IF;
32192
32193 -- Initialize API return status to success
32194 x_return_status := FND_API.G_RET_STS_SUCCESS;
32195
32196 -- Check the profile option debug_level for debug message reporting
32197 l_debug_level:=fnd_profile.value('CSI_DEBUG_LEVEL');
32198
32199 -- If debug_level = 1 then dump the procedure name
32200 IF (l_debug_level > 0) THEN
32201 csi_gen_utility_pvt.put_line('copy_item_instance ');
32202 END IF;
32203
32204
32205
32206 -- If the debug level = 2 then dump all the parameters values.
32207 IF (l_debug_level > 1) THEN
32208
32209 csi_gen_utility_pvt.put_line('copy_item_instance '||
32210 p_api_version ||'-'
32211 || p_commit ||'-'
32212 || p_init_msg_list ||'-'
32213 || p_validation_level ||'-'
32214 || p_copy_ext_attribs ||'-'
32215 || p_copy_org_assignments ||'-'
32216 || p_copy_parties ||'-'
32217 || p_copy_contacts ||'-'
32218 || p_copy_accounts ||'-'
32219 || p_copy_asset_assignments ||'-'
32220 || p_copy_pricing_attribs ||'-'
32221 || p_copy_inst_children
32222 );
32223 -- Dump item instanc red
32224 csi_gen_utility_pvt.dump_instance_rec(p_source_instance_rec);
32225 -- Dump txn_rec
32226 csi_gen_utility_pvt.dump_txn_rec(p_txn_rec);
32227 END IF;
32228
32229 -- Start API body
32230
32231 -- Get the last_vld_organization_id for the instance_id passed
32232 BEGIN
32233 SELECT last_vld_organization_id
32234 INTO l_par_vld_organization_id
32235 FROM csi_item_instances
32236 WHERE instance_id = p_source_instance_rec.instance_id;
32237 EXCEPTION
32238 WHEN OTHERS THEN
32239 NULL;
32240 END;
32241
32242 -- Added by sguthiva for bug 2186683
32243 IF p_source_instance_rec.vld_organization_id IS NULL OR
32244 p_source_instance_rec.vld_organization_id = fnd_api.g_miss_num
32245 THEN
32246 l_vld_org_id := l_par_vld_organization_id;
32247 END IF;
32248 -- End addition by sguthiva for bug 2186683
32249
32250
32251 IF (p_source_instance_rec.instance_id IS NULL) OR
32252 (p_source_instance_rec.instance_id = FND_API.G_MISS_NUM) THEN
32253 FND_MESSAGE.SET_NAME('CSI','CSI_API_INSTANCE_ID_NULL');
32254 FND_MSG_PUB.Add;
32255 RAISE FND_API.G_EXC_ERROR;
32256 ELSIF NOT (csi_Item_Instance_Vld_pvt.Val_and_get_inst_rec(
32257 p_source_instance_rec.instance_id ,
32258 l_curr_instance_rec )) THEN
32259 RAISE FND_API.G_EXC_ERROR;
32260 END IF;
32261
32262
32263 -- Check if the user has not passed incorrect options for contacts
32264 IF ((p_copy_parties = fnd_api.g_false)
32265 AND (p_copy_contacts = fnd_api.g_true)) THEN
32266 FND_MESSAGE.SET_NAME('CSI','CSI_INVALID_PTY_CONTACT_OPT');
32267 FND_MSG_PUB.Add;
32268 RAISE FND_API.G_EXC_ERROR;
32269 END IF;
32270
32271
32272 -- If the user has passed p_copy_parties as false get only the owner, else get all the parties
32273 IF (p_copy_parties = fnd_api.g_true) THEN
32274 l_party_query_rec.instance_party_id := FND_API.G_MISS_NUM;
32275 l_party_query_rec.instance_id := l_curr_instance_rec.instance_id;
32276 l_party_query_rec.party_id := FND_API.G_MISS_NUM;
32277 l_party_query_rec.relationship_type_code := FND_API.G_MISS_CHAR;
32278
32279 csi_party_relationships_pub.get_inst_party_relationships
32280 ( p_api_version => p_api_version
32281 ,p_commit => p_commit
32282 ,p_init_msg_list => p_init_msg_list
32283 ,p_validation_level => p_validation_level
32284 ,p_party_query_rec => l_party_query_rec
32285 ,p_resolve_id_columns => fnd_api.g_true
32286 ,p_time_stamp => NULL
32287 ,x_party_header_tbl => l_party_header_tbl
32288 ,x_return_status => x_return_status
32289 ,x_msg_count => x_msg_count
32290 ,x_msg_data => x_msg_data
32291 );
32292
32293
32294
32295 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
32296 l_msg_index := 1;
32297 l_msg_count := x_msg_count;
32298 WHILE l_msg_count > 0 LOOP
32299 x_msg_data := FND_MSG_PUB.GET
32300 (l_msg_index,
32301 FND_API.G_FALSE );
32302 csi_gen_utility_pvt.put_line('message data = '||x_msg_data);
32303 l_msg_index := l_msg_index + 1;
32304 l_msg_count := l_msg_count - 1;
32305 END LOOP;
32306 RAISE FND_API.G_EXC_ERROR;
32307 END IF;
32308
32309 ELSE
32310 l_party_query_rec.instance_party_id := FND_API.G_MISS_NUM;
32311 l_party_query_rec.instance_id := l_curr_instance_rec.instance_id;
32312 l_party_query_rec.party_id := FND_API.G_MISS_NUM;
32313 l_party_query_rec.relationship_type_code := 'OWNER';
32314
32315 csi_party_relationships_pub.get_inst_party_relationships
32316 ( p_api_version => p_api_version
32317 ,p_commit => p_commit
32318 ,p_init_msg_list => p_init_msg_list
32319 ,p_validation_level => p_validation_level
32320 ,p_party_query_rec => l_party_query_rec
32321 ,p_resolve_id_columns => fnd_api.g_true
32322 ,p_time_stamp => NULL
32323 ,x_party_header_tbl => l_party_header_tbl
32324 ,x_return_status => x_return_status
32325 ,x_msg_count => x_msg_count
32326 ,x_msg_data => x_msg_data
32327 );
32328
32329 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
32330 l_msg_index := 1;
32331 l_msg_count := x_msg_count;
32332 WHILE l_msg_count > 0 LOOP
32333 x_msg_data := FND_MSG_PUB.GET
32334 (l_msg_index,
32335 FND_API.G_FALSE );
32336 csi_gen_utility_pvt.put_line('message data = '||x_msg_data);
32337 l_msg_index := l_msg_index + 1;
32338 l_msg_count := l_msg_count - 1;
32339 END LOOP;
32340 RAISE FND_API.G_EXC_ERROR;
32341 END IF;
32342 END IF;
32343
32344 -- This is mean to initialize the l_party_table in order to create an instance.
32345 IF l_party_header_tbl.COUNT > 0 THEN /*****First change here 07/27/01 - RK***/
32346 FOR tab_row_party IN l_party_header_tbl.FIRST .. l_party_header_tbl.LAST
32347 LOOP
32348 IF l_party_header_tbl.EXISTS(tab_row_party) THEN
32349 IF l_party_header_tbl(tab_row_party).contact_flag = 'Y' THEN
32350 -- build the contacts table
32351 l_contact_tbl(tab_row_party).instance_party_id := l_party_header_tbl(tab_row_party).instance_party_id;
32352 l_contact_tbl(tab_row_party).instance_id := l_party_header_tbl(tab_row_party).instance_id;
32353 l_contact_tbl(tab_row_party).party_id := l_party_header_tbl(tab_row_party).party_id;
32354 l_contact_tbl(tab_row_party).party_source_table := l_party_header_tbl(tab_row_party).party_source_table;
32355 l_contact_tbl(tab_row_party).relationship_type_code := l_party_header_tbl(tab_row_party).relationship_type_code;
32356 l_contact_tbl(tab_row_party).contact_flag := l_party_header_tbl(tab_row_party).contact_flag;
32357 l_contact_tbl(tab_row_party).contact_ip_id := l_party_header_tbl(tab_row_party).contact_ip_id;
32358 l_contact_tbl(tab_row_party).active_start_date := l_party_header_tbl(tab_row_party).active_start_date;
32359 l_contact_tbl(tab_row_party).active_end_date := l_party_header_tbl(tab_row_party).active_end_date;
32360 l_contact_tbl(tab_row_party).context := l_party_header_tbl(tab_row_party).context;
32361 l_contact_tbl(tab_row_party).attribute1 := l_party_header_tbl(tab_row_party).attribute1;
32362 l_contact_tbl(tab_row_party).attribute2 := l_party_header_tbl(tab_row_party).attribute2;
32363 l_contact_tbl(tab_row_party).attribute3 := l_party_header_tbl(tab_row_party).attribute3;
32364 l_contact_tbl(tab_row_party).attribute4 := l_party_header_tbl(tab_row_party).attribute4;
32365 l_contact_tbl(tab_row_party).attribute5 := l_party_header_tbl(tab_row_party).attribute5;
32366 l_contact_tbl(tab_row_party).attribute6 := l_party_header_tbl(tab_row_party).attribute6;
32367 l_contact_tbl(tab_row_party).attribute7 := l_party_header_tbl(tab_row_party).attribute7;
32368 l_contact_tbl(tab_row_party).attribute8 := l_party_header_tbl(tab_row_party).attribute8;
32369 l_contact_tbl(tab_row_party).attribute9 := l_party_header_tbl(tab_row_party).attribute9;
32370 l_contact_tbl(tab_row_party).attribute10 := l_party_header_tbl(tab_row_party).attribute10;
32371 l_contact_tbl(tab_row_party).attribute11 := l_party_header_tbl(tab_row_party).attribute11;
32372 l_contact_tbl(tab_row_party).attribute12 := l_party_header_tbl(tab_row_party).attribute12;
32373 l_contact_tbl(tab_row_party).attribute13 := l_party_header_tbl(tab_row_party).attribute13;
32374 l_contact_tbl(tab_row_party).attribute14 := l_party_header_tbl(tab_row_party).attribute14;
32375 l_contact_tbl(tab_row_party).attribute15 := l_party_header_tbl(tab_row_party).attribute15;
32376 l_contact_tbl(tab_row_party).object_version_number := l_party_header_tbl(tab_row_party).object_version_number;
32377 --Start fo Addition for the Bugfix 2354589.
32378 l_contact_tbl(tab_row_party).preferred_flag := l_party_header_tbl(tab_row_party).preferred_flag;
32379 l_contact_tbl(tab_row_party).primary_flag := l_party_header_tbl(tab_row_party).primary_flag;
32380 --End of Addition for the Bugfix 2354589.
32381 ELSE -- Build the parties table
32382 l_party_tbl(tab_row_party).instance_party_id := l_party_header_tbl(tab_row_party).instance_party_id;
32383 l_party_tbl(tab_row_party).instance_id := l_party_header_tbl(tab_row_party).instance_id;
32384 l_party_tbl(tab_row_party).party_id := l_party_header_tbl(tab_row_party).party_id;
32385 l_party_tbl(tab_row_party).party_source_table := l_party_header_tbl(tab_row_party).party_source_table;
32386 l_party_tbl(tab_row_party).relationship_type_code := l_party_header_tbl(tab_row_party).relationship_type_code;
32387 l_party_tbl(tab_row_party).contact_flag := l_party_header_tbl(tab_row_party).contact_flag;
32388 l_party_tbl(tab_row_party).contact_ip_id := l_party_header_tbl(tab_row_party).contact_ip_id;
32389 l_party_tbl(tab_row_party).active_start_date := l_party_header_tbl(tab_row_party).active_start_date;
32390 l_party_tbl(tab_row_party).active_end_date := l_party_header_tbl(tab_row_party).active_end_date;
32391 l_party_tbl(tab_row_party).context := l_party_header_tbl(tab_row_party).context;
32392 l_party_tbl(tab_row_party).attribute1 := l_party_header_tbl(tab_row_party).attribute1;
32393 l_party_tbl(tab_row_party).attribute2 := l_party_header_tbl(tab_row_party).attribute2;
32394 l_party_tbl(tab_row_party).attribute3 := l_party_header_tbl(tab_row_party).attribute3;
32395 l_party_tbl(tab_row_party).attribute4 := l_party_header_tbl(tab_row_party).attribute4;
32396 l_party_tbl(tab_row_party).attribute5 := l_party_header_tbl(tab_row_party).attribute5;
32397 l_party_tbl(tab_row_party).attribute6 := l_party_header_tbl(tab_row_party).attribute6;
32398 l_party_tbl(tab_row_party).attribute7 := l_party_header_tbl(tab_row_party).attribute7;
32399 l_party_tbl(tab_row_party).attribute8 := l_party_header_tbl(tab_row_party).attribute8;
32400 l_party_tbl(tab_row_party).attribute9 := l_party_header_tbl(tab_row_party).attribute9;
32401 l_party_tbl(tab_row_party).attribute10 := l_party_header_tbl(tab_row_party).attribute10;
32402 l_party_tbl(tab_row_party).attribute11 := l_party_header_tbl(tab_row_party).attribute11;
32403 l_party_tbl(tab_row_party).attribute12 := l_party_header_tbl(tab_row_party).attribute12;
32404 l_party_tbl(tab_row_party).attribute13 := l_party_header_tbl(tab_row_party).attribute13;
32405 l_party_tbl(tab_row_party).attribute14 := l_party_header_tbl(tab_row_party).attribute14;
32406 l_party_tbl(tab_row_party).attribute15 := l_party_header_tbl(tab_row_party).attribute15;
32407 l_party_tbl(tab_row_party).object_version_number := l_party_header_tbl(tab_row_party).object_version_number;
32408 --Start fo Addition for the Bugfix 2354589.
32409 l_party_tbl(tab_row_party).preferred_flag := l_party_header_tbl(tab_row_party).preferred_flag;
32410 l_party_tbl(tab_row_party).primary_flag := l_party_header_tbl(tab_row_party).primary_flag;
32411 --End of Addition for the Bugfix 2354589.
32412 END IF;
32413 END IF;
32414 END LOOP;
32415 END IF; --l_party_header_tbl.COUNT > 0
32416 l_original_party_tbl := l_party_tbl;
32417 -- Empty the party table
32418 l_party_header_tbl.DELETE;
32419 -- Create asset assignments if requested. Asset_assignment_tbl has alredy been fetched
32420 IF (p_copy_asset_assignments = fnd_api.g_true) THEN
32421 l_instance_asset_query_rec.instance_asset_id := FND_API.G_MISS_NUM;
32422 l_instance_asset_query_rec.instance_id := l_curr_instance_rec.instance_id;
32423 l_instance_asset_query_rec.fa_asset_id := FND_API.G_MISS_NUM;
32424 l_instance_asset_query_rec.fa_book_type_code := FND_API.G_MISS_CHAR;
32425 l_instance_asset_query_rec.fa_location_id := FND_API.G_MISS_NUM;
32426 l_instance_asset_query_rec.update_status := FND_API.G_MISS_CHAR;
32427 csi_asset_pvt.get_instance_assets
32428 ( p_api_version => p_api_version
32429 ,p_commit => p_commit
32430 ,p_init_msg_list => p_init_msg_list
32431 ,p_validation_level => p_validation_level
32432 ,p_instance_asset_query_rec => l_instance_asset_query_rec
32433 ,p_resolve_id_columns => fnd_api.g_true
32434 ,p_time_stamp => NULL
32435 ,x_instance_asset_tbl => l_asset_header_tbl
32436 ,x_return_status => x_return_status
32437 ,x_msg_count => x_msg_count
32438 ,x_msg_data => x_msg_data
32439 );
32440 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
32441 l_msg_index := 1;
32442 l_msg_count := x_msg_count;
32443 WHILE l_msg_count > 0 LOOP
32444 x_msg_data := FND_MSG_PUB.GET
32445 (l_msg_index,
32446 FND_API.G_FALSE );
32447 csi_gen_utility_pvt.put_line('message data = '||x_msg_data);
32448 l_msg_index := l_msg_index + 1;
32449 l_msg_count := l_msg_count - 1;
32450 END LOOP;
32451 RAISE FND_API.G_EXC_ERROR;
32452 END IF;
32453 END IF;
32454 IF l_asset_header_tbl.COUNT > 0 THEN /*****First change here 08/25/01 - RK***/
32455 FOR tab_row_party IN l_asset_header_tbl.FIRST .. l_asset_header_tbl.LAST
32456 LOOP
32457 IF l_asset_header_tbl.EXISTS(tab_row_party) THEN
32458 l_asset_tbl(tab_row_party).instance_asset_id := l_asset_header_tbl(tab_row_party).instance_asset_id;
32459 l_asset_tbl(tab_row_party).instance_id := l_asset_header_tbl(tab_row_party).instance_id;
32460 l_asset_tbl(tab_row_party).fa_asset_id := l_asset_header_tbl(tab_row_party).fa_asset_id;
32461 l_asset_tbl(tab_row_party).fa_book_type_code := l_asset_header_tbl(tab_row_party).fa_book_type_code;
32462 l_asset_tbl(tab_row_party).fa_location_id := l_asset_header_tbl(tab_row_party).fa_location_id;
32463 l_asset_tbl(tab_row_party).asset_quantity := l_asset_header_tbl(tab_row_party).asset_quantity;
32464 l_asset_tbl(tab_row_party).update_status := l_asset_header_tbl(tab_row_party).update_status;
32465 l_asset_tbl(tab_row_party).active_start_date := l_asset_header_tbl(tab_row_party).active_start_date;
32466 l_asset_tbl(tab_row_party).active_end_date := l_asset_header_tbl(tab_row_party).active_end_date;
32467 l_asset_tbl(tab_row_party).object_version_number := l_asset_header_tbl(tab_row_party).object_version_number;
32468 END IF;
32469 END LOOP;
32470 END IF; --l_asset_header_tbl.COUNT > 0
32471
32472 -- Set the non-copiable attributes as follows
32473
32474 l_new_instance_rec.CREATION_COMPLETE_FLAG := p_source_instance_rec.CREATION_COMPLETE_FLAG;
32475 l_new_instance_rec.COMPLETENESS_FLAG := p_source_instance_rec.COMPLETENESS_FLAG;
32476
32477 IF (p_source_instance_rec.EXTERNAL_REFERENCE = FND_API.G_MISS_CHAR) THEN
32478 l_new_instance_rec.EXTERNAL_REFERENCE := l_curr_instance_rec.EXTERNAL_REFERENCE;
32479 ELSE
32480 l_new_instance_rec.EXTERNAL_REFERENCE := p_source_instance_rec.EXTERNAL_REFERENCE;
32481 END IF;
32482 IF ((p_source_instance_rec.INVENTORY_ITEM_ID = FND_API.G_MISS_NUM)
32483 OR (p_source_instance_rec.INVENTORY_ITEM_ID IS NULL)) THEN
32484 l_new_instance_rec.INVENTORY_ITEM_ID := l_curr_instance_rec.INVENTORY_ITEM_ID;
32485 ELSE
32486 l_new_instance_rec.INVENTORY_ITEM_ID := p_source_instance_rec.INVENTORY_ITEM_ID;
32487 END IF;
32488
32489 -- srramakr commented for bug # 2558156
32490 -- Uncommented for bug 2985165
32491 IF p_call_from_split=fnd_api.g_true
32492 THEN
32493 IF (p_source_instance_rec.INVENTORY_REVISION = FND_API.G_MISS_CHAR) THEN
32494 l_new_instance_rec.INVENTORY_REVISION := l_curr_instance_rec.INVENTORY_REVISION;
32495 ELSE
32496 l_new_instance_rec.INVENTORY_REVISION := p_source_instance_rec.INVENTORY_REVISION;
32497 END IF;
32498 ELSE
32499 -- Uncommented for bug 2985165
32500 -- srramakr Bug # 2558156 Revision should not be copied
32501 IF p_source_instance_rec.INVENTORY_REVISION <> FND_API.G_MISS_CHAR THEN
32502 l_new_instance_rec.INVENTORY_REVISION := p_source_instance_rec.INVENTORY_REVISION;
32503 END IF;
32504 END IF;
32505 --
32506 IF ((p_source_instance_rec.INV_MASTER_ORGANIZATION_ID = FND_API.G_MISS_NUM)
32507 OR (p_source_instance_rec.INV_MASTER_ORGANIZATION_ID IS NULL)) THEN
32508 l_new_instance_rec.INV_MASTER_ORGANIZATION_ID := l_curr_instance_rec.INV_MASTER_ORGANIZATION_ID;
32509 ELSE
32510 l_new_instance_rec.INV_MASTER_ORGANIZATION_ID := p_source_instance_rec.INV_MASTER_ORGANIZATION_ID ;
32511 END IF;
32512 IF (p_source_instance_rec.SERIAL_NUMBER <> FND_API.G_MISS_CHAR) THEN
32513 l_new_instance_rec.SERIAL_NUMBER := p_source_instance_rec.SERIAL_NUMBER;
32514 END IF;
32515 IF ((p_source_instance_rec.MFG_SERIAL_NUMBER_FLAG = FND_API.G_MISS_CHAR)
32516 OR (p_source_instance_rec.MFG_SERIAL_NUMBER_FLAG IS NULL)) THEN
32517 l_new_instance_rec.MFG_SERIAL_NUMBER_FLAG := l_curr_instance_rec.MFG_SERIAL_NUMBER_FLAG;
32518 ELSE
32519 l_new_instance_rec.MFG_SERIAL_NUMBER_FLAG := p_source_instance_rec.MFG_SERIAL_NUMBER_FLAG ;
32520 END IF;
32521 IF (p_source_instance_rec.LOT_NUMBER = FND_API.G_MISS_CHAR) THEN
32522 l_new_instance_rec.LOT_NUMBER := l_curr_instance_rec.LOT_NUMBER;
32523 ELSE
32524 l_new_instance_rec.LOT_NUMBER := p_source_instance_rec.LOT_NUMBER;
32525 END IF;
32526 IF ((p_source_instance_rec.QUANTITY = FND_API.G_MISS_NUM)
32527 OR (p_source_instance_rec.QUANTITY IS NULL)) THEN
32528 l_new_instance_rec.QUANTITY := l_curr_instance_rec.QUANTITY;
32529 ELSE
32530 l_new_instance_rec.QUANTITY := p_source_instance_rec.QUANTITY ;
32531 END IF;
32532 IF ((p_source_instance_rec.UNIT_OF_MEASURE = FND_API.G_MISS_CHAR)
32533 OR (p_source_instance_rec.UNIT_OF_MEASURE IS NULL)) THEN
32534 l_new_instance_rec.UNIT_OF_MEASURE := l_curr_instance_rec.UNIT_OF_MEASURE;
32535 ELSE
32536 l_new_instance_rec.UNIT_OF_MEASURE := p_source_instance_rec.UNIT_OF_MEASURE ;
32537 END IF;
32538 IF (p_source_instance_rec.ACCOUNTING_CLASS_CODE = FND_API.G_MISS_CHAR) THEN
32539 l_new_instance_rec.ACCOUNTING_CLASS_CODE := l_curr_instance_rec.ACCOUNTING_CLASS_CODE;
32540 ELSE
32541 l_new_instance_rec.ACCOUNTING_CLASS_CODE := l_curr_instance_rec.ACCOUNTING_CLASS_CODE;
32542 END IF;
32543 IF (p_source_instance_rec.INSTANCE_CONDITION_ID = FND_API.G_MISS_NUM) THEN
32544 l_new_instance_rec.INSTANCE_CONDITION_ID := l_curr_instance_rec.INSTANCE_CONDITION_ID;
32545 ELSE
32546 l_new_instance_rec.INSTANCE_CONDITION_ID := p_source_instance_rec.INSTANCE_CONDITION_ID;
32547 END IF;
32548 IF ((p_source_instance_rec.INSTANCE_STATUS_ID = FND_API.G_MISS_NUM)
32549 OR (p_source_instance_rec.INSTANCE_STATUS_ID IS NULL)) THEN
32550 l_new_instance_rec.INSTANCE_STATUS_ID := l_curr_instance_rec.INSTANCE_STATUS_ID;
32551 ELSE
32552 l_new_instance_rec.INSTANCE_STATUS_ID := p_source_instance_rec.INSTANCE_STATUS_ID ;
32553 END IF;
32554 IF ((p_source_instance_rec.CUSTOMER_VIEW_FLAG = FND_API.G_MISS_CHAR)
32555 OR (p_source_instance_rec.CUSTOMER_VIEW_FLAG IS NULL )) THEN
32556 l_new_instance_rec.CUSTOMER_VIEW_FLAG := l_curr_instance_rec.CUSTOMER_VIEW_FLAG;
32557 ELSE
32558 l_new_instance_rec.CUSTOMER_VIEW_FLAG := p_source_instance_rec.CUSTOMER_VIEW_FLAG ;
32559 END IF;
32560 IF ((p_source_instance_rec.MERCHANT_VIEW_FLAG = FND_API.G_MISS_CHAR)
32561 OR (p_source_instance_rec.MERCHANT_VIEW_FLAG IS NULL)) THEN
32562 l_new_instance_rec.MERCHANT_VIEW_FLAG := l_curr_instance_rec.MERCHANT_VIEW_FLAG;
32563 ELSE
32564 l_new_instance_rec.MERCHANT_VIEW_FLAG := p_source_instance_rec.MERCHANT_VIEW_FLAG ;
32565 END IF;
32566 IF (p_source_instance_rec.SELLABLE_FLAG = FND_API.G_MISS_CHAR) THEN
32567 l_new_instance_rec.SELLABLE_FLAG := l_curr_instance_rec.SELLABLE_FLAG;
32568 ELSE
32569 l_new_instance_rec.SELLABLE_FLAG := p_source_instance_rec.SELLABLE_FLAG;
32570 END IF;
32571 IF (p_source_instance_rec.SYSTEM_ID = FND_API.G_MISS_NUM) THEN
32572 l_new_instance_rec.SYSTEM_ID := l_curr_instance_rec.SYSTEM_ID;
32573 ELSE
32574 l_new_instance_rec.SYSTEM_ID := p_source_instance_rec.SYSTEM_ID;
32575 END IF;
32576 IF (p_source_instance_rec.INSTANCE_TYPE_CODE = FND_API.G_MISS_CHAR) THEN
32577 l_new_instance_rec.INSTANCE_TYPE_CODE := l_curr_instance_rec.INSTANCE_TYPE_CODE;
32578 ELSE
32579 l_new_instance_rec.INSTANCE_TYPE_CODE := p_source_instance_rec.INSTANCE_TYPE_CODE;
32580 END IF;
32581 IF (p_source_instance_rec.ACTIVE_START_DATE = FND_API.G_MISS_DATE) THEN
32582 l_new_instance_rec.ACTIVE_START_DATE := l_curr_instance_rec.ACTIVE_START_DATE;
32583 ELSE
32584 l_new_instance_rec.ACTIVE_START_DATE := p_source_instance_rec.ACTIVE_START_DATE;
32585 END IF;
32586 IF (p_source_instance_rec.ACTIVE_END_DATE = FND_API.G_MISS_DATE) THEN
32587 l_new_instance_rec.ACTIVE_END_DATE := l_curr_instance_rec.ACTIVE_END_DATE;
32588 ELSE
32589 l_new_instance_rec.ACTIVE_END_DATE := p_source_instance_rec.ACTIVE_END_DATE;
32590 END IF;
32591 IF (p_source_instance_rec.LOCATION_TYPE_CODE = FND_API.G_MISS_CHAR) THEN
32592 l_new_instance_rec.LOCATION_TYPE_CODE := l_curr_instance_rec.LOCATION_TYPE_CODE;
32593 ELSE
32594 l_new_instance_rec.LOCATION_TYPE_CODE := p_source_instance_rec.LOCATION_TYPE_CODE;
32595 END IF;
32596 IF (p_source_instance_rec.LOCATION_ID = FND_API.G_MISS_NUM) THEN
32597 l_new_instance_rec.LOCATION_ID := l_curr_instance_rec.LOCATION_ID;
32598 ELSE
32599 l_new_instance_rec.LOCATION_ID := p_source_instance_rec.LOCATION_ID;
32600 END IF;
32601 IF (p_source_instance_rec.INV_ORGANIZATION_ID = FND_API.G_MISS_NUM) THEN
32602 l_new_instance_rec.INV_ORGANIZATION_ID := l_curr_instance_rec.INV_ORGANIZATION_ID;
32603 ELSE
32604 l_new_instance_rec.INV_ORGANIZATION_ID := p_source_instance_rec.INV_ORGANIZATION_ID;
32605 END IF;
32606 IF (p_source_instance_rec.INV_SUBINVENTORY_NAME = FND_API.G_MISS_CHAR) THEN
32607 l_new_instance_rec.INV_SUBINVENTORY_NAME := l_curr_instance_rec.INV_SUBINVENTORY_NAME;
32608 ELSE
32609 l_new_instance_rec.INV_SUBINVENTORY_NAME := p_source_instance_rec.INV_SUBINVENTORY_NAME;
32610 END IF;
32611 IF (p_source_instance_rec.INV_LOCATOR_ID = FND_API.G_MISS_NUM) THEN
32612 l_new_instance_rec.INV_LOCATOR_ID := l_curr_instance_rec.INV_LOCATOR_ID;
32613 ELSE
32614 l_new_instance_rec.INV_LOCATOR_ID := p_source_instance_rec.INV_LOCATOR_ID;
32615 END IF;
32616 IF (p_source_instance_rec.PA_PROJECT_ID = FND_API.G_MISS_NUM) THEN
32617 l_new_instance_rec.PA_PROJECT_ID := l_curr_instance_rec.PA_PROJECT_ID;
32618 ELSE
32619 l_new_instance_rec.PA_PROJECT_ID := p_source_instance_rec.PA_PROJECT_ID;
32620 END IF;
32621 IF (p_source_instance_rec.PA_PROJECT_TASK_ID = FND_API.G_MISS_NUM) THEN
32622 l_new_instance_rec.PA_PROJECT_TASK_ID := l_curr_instance_rec.PA_PROJECT_TASK_ID;
32623 ELSE
32624 l_new_instance_rec.PA_PROJECT_TASK_ID := p_source_instance_rec.PA_PROJECT_TASK_ID;
32625 END IF;
32626 IF (p_source_instance_rec.IN_TRANSIT_ORDER_LINE_ID = FND_API.G_MISS_NUM) THEN
32627 l_new_instance_rec.IN_TRANSIT_ORDER_LINE_ID := l_curr_instance_rec.IN_TRANSIT_ORDER_LINE_ID;
32628 ELSE
32629 l_new_instance_rec.IN_TRANSIT_ORDER_LINE_ID := p_source_instance_rec.IN_TRANSIT_ORDER_LINE_ID;
32630 END IF;
32631 IF (p_source_instance_rec.WIP_JOB_ID = FND_API.G_MISS_NUM) THEN
32632 l_new_instance_rec.WIP_JOB_ID := l_curr_instance_rec.WIP_JOB_ID;
32633 ELSE
32634 l_new_instance_rec.WIP_JOB_ID := p_source_instance_rec.WIP_JOB_ID;
32635 END IF;
32636 IF (p_source_instance_rec.PO_ORDER_LINE_ID = FND_API.G_MISS_NUM) THEN
32637 l_new_instance_rec.PO_ORDER_LINE_ID := l_curr_instance_rec.PO_ORDER_LINE_ID;
32638 ELSE
32639 l_new_instance_rec.PO_ORDER_LINE_ID := p_source_instance_rec.PO_ORDER_LINE_ID;
32640 END IF;
32641 IF (p_source_instance_rec.LAST_TXN_LINE_DETAIL_ID = FND_API.G_MISS_NUM) THEN
32642 l_new_instance_rec.LAST_TXN_LINE_DETAIL_ID := l_curr_instance_rec.LAST_TXN_LINE_DETAIL_ID;
32643 ELSE
32644 l_new_instance_rec.LAST_TXN_LINE_DETAIL_ID := p_source_instance_rec.LAST_TXN_LINE_DETAIL_ID;
32645 END IF;
32646 IF (p_source_instance_rec.LAST_OE_RMA_LINE_ID = FND_API.G_MISS_NUM) THEN
32647 l_new_instance_rec.LAST_OE_RMA_LINE_ID := l_curr_instance_rec.LAST_OE_RMA_LINE_ID;
32648 ELSE
32649 l_new_instance_rec.LAST_OE_RMA_LINE_ID := p_source_instance_rec.LAST_OE_RMA_LINE_ID;
32650 END IF;
32651 IF (p_source_instance_rec.LAST_PO_PO_LINE_ID = FND_API.G_MISS_NUM) THEN
32652 l_new_instance_rec.LAST_PO_PO_LINE_ID := l_curr_instance_rec.LAST_PO_PO_LINE_ID ;
32653 ELSE
32654 l_new_instance_rec.LAST_PO_PO_LINE_ID := p_source_instance_rec.LAST_PO_PO_LINE_ID ;
32655 END IF;
32656 IF (p_source_instance_rec.LAST_OE_PO_NUMBER = FND_API.G_MISS_CHAR) THEN
32657 l_new_instance_rec.LAST_OE_PO_NUMBER := l_curr_instance_rec.LAST_OE_PO_NUMBER;
32658 ELSE
32659 l_new_instance_rec.LAST_OE_PO_NUMBER := p_source_instance_rec.LAST_OE_PO_NUMBER;
32660 END IF;
32661 IF (p_source_instance_rec.LAST_WIP_JOB_ID = FND_API.G_MISS_NUM) THEN
32662 l_new_instance_rec.LAST_WIP_JOB_ID := l_curr_instance_rec.LAST_WIP_JOB_ID;
32663 ELSE
32664 l_new_instance_rec.LAST_WIP_JOB_ID := p_source_instance_rec.LAST_WIP_JOB_ID;
32665 END IF;
32666 IF (p_source_instance_rec.LAST_PA_PROJECT_ID = FND_API.G_MISS_NUM) THEN
32667 l_new_instance_rec.LAST_PA_PROJECT_ID := l_curr_instance_rec.LAST_PA_PROJECT_ID;
32668 ELSE
32669 l_new_instance_rec.LAST_PA_PROJECT_ID := p_source_instance_rec.LAST_PA_PROJECT_ID;
32670 END IF;
32671 IF (p_source_instance_rec.LAST_PA_TASK_ID = FND_API.G_MISS_NUM) THEN
32672 l_new_instance_rec.LAST_PA_TASK_ID := l_curr_instance_rec.LAST_PA_TASK_ID;
32673 ELSE
32674 l_new_instance_rec.LAST_PA_TASK_ID := p_source_instance_rec.LAST_PA_TASK_ID;
32675 END IF;
32676 IF (p_source_instance_rec.LAST_OE_AGREEMENT_ID = FND_API.G_MISS_NUM) THEN
32677 l_new_instance_rec.LAST_OE_AGREEMENT_ID := l_curr_instance_rec.LAST_OE_AGREEMENT_ID;
32678 ELSE
32679 l_new_instance_rec.LAST_OE_AGREEMENT_ID := p_source_instance_rec.LAST_OE_AGREEMENT_ID;
32680 END IF;
32681 IF (p_source_instance_rec.INSTALL_DATE = FND_API.G_MISS_DATE) THEN
32682 l_new_instance_rec.INSTALL_DATE := l_curr_instance_rec.INSTALL_DATE;
32683 ELSE
32684 l_new_instance_rec.INSTALL_DATE := p_source_instance_rec.INSTALL_DATE;
32685 END IF;
32686 IF (p_source_instance_rec.MANUALLY_CREATED_FLAG = FND_API.G_MISS_CHAR) THEN
32687 l_new_instance_rec.MANUALLY_CREATED_FLAG := l_curr_instance_rec.MANUALLY_CREATED_FLAG;
32688 ELSE
32689 l_new_instance_rec.MANUALLY_CREATED_FLAG := p_source_instance_rec.MANUALLY_CREATED_FLAG;
32690 END IF;
32691 IF (p_source_instance_rec.RETURN_BY_DATE = FND_API.G_MISS_DATE) THEN
32692 l_new_instance_rec.RETURN_BY_DATE := l_curr_instance_rec.RETURN_BY_DATE ;
32693 ELSE
32694 l_new_instance_rec.RETURN_BY_DATE := p_source_instance_rec.RETURN_BY_DATE ;
32695 END IF;
32696 IF (p_source_instance_rec.ACTUAL_RETURN_DATE = FND_API.G_MISS_DATE) THEN
32697 l_new_instance_rec.ACTUAL_RETURN_DATE := l_curr_instance_rec.ACTUAL_RETURN_DATE;
32698 ELSE
32699 l_new_instance_rec.ACTUAL_RETURN_DATE := p_source_instance_rec.ACTUAL_RETURN_DATE;
32700 END IF;
32701 IF (p_source_instance_rec.VERSION_LABEL = FND_API.G_MISS_CHAR) THEN
32702 l_new_instance_rec.VERSION_LABEL := l_curr_instance_rec.VERSION_LABEL;
32703 ELSE
32704 l_new_instance_rec.VERSION_LABEL := p_source_instance_rec.VERSION_LABEL;
32705 END IF;
32706 IF (p_source_instance_rec.VERSION_LABEL_DESCRIPTION = FND_API.G_MISS_CHAR) THEN
32707 l_new_instance_rec.VERSION_LABEL_DESCRIPTION := l_curr_instance_rec.VERSION_LABEL_DESCRIPTION;
32708 ELSE
32709 l_new_instance_rec.VERSION_LABEL_DESCRIPTION := p_source_instance_rec.VERSION_LABEL_DESCRIPTION;
32710 END IF;
32711 IF (p_source_instance_rec.CONTEXT = FND_API.G_MISS_CHAR) THEN
32712 l_new_instance_rec.CONTEXT := l_curr_instance_rec.CONTEXT;
32713 ELSE
32714 l_new_instance_rec.CONTEXT := p_source_instance_rec.CONTEXT;
32715 END IF;
32716 IF (p_source_instance_rec.ATTRIBUTE1 = FND_API.G_MISS_CHAR) THEN
32717 l_new_instance_rec.ATTRIBUTE1 := l_curr_instance_rec.ATTRIBUTE1;
32718 ELSE
32719 l_new_instance_rec.ATTRIBUTE1 := p_source_instance_rec.ATTRIBUTE1;
32720 END IF;
32721 IF (p_source_instance_rec.ATTRIBUTE2 = FND_API.G_MISS_CHAR) THEN
32722 l_new_instance_rec.ATTRIBUTE2 := l_curr_instance_rec.ATTRIBUTE2;
32723 ELSE
32724 l_new_instance_rec.ATTRIBUTE2 := p_source_instance_rec.ATTRIBUTE2;
32725 END IF;
32726 IF (p_source_instance_rec.ATTRIBUTE3 = FND_API.G_MISS_CHAR) THEN
32727 l_new_instance_rec.ATTRIBUTE3 := l_curr_instance_rec.ATTRIBUTE3;
32728 ELSE
32729 l_new_instance_rec.ATTRIBUTE3 := p_source_instance_rec.ATTRIBUTE3;
32730 END IF;
32731 IF (p_source_instance_rec.ATTRIBUTE4 = FND_API.G_MISS_CHAR) THEN
32732 l_new_instance_rec.ATTRIBUTE4 := l_curr_instance_rec.ATTRIBUTE4;
32733 ELSE
32734 l_new_instance_rec.ATTRIBUTE4 := p_source_instance_rec.ATTRIBUTE4;
32735 END IF;
32736 IF (p_source_instance_rec.ATTRIBUTE5 = FND_API.G_MISS_CHAR) THEN
32737 l_new_instance_rec.ATTRIBUTE5 := l_curr_instance_rec.ATTRIBUTE5;
32738 ELSE
32739 l_new_instance_rec.ATTRIBUTE5 := p_source_instance_rec.ATTRIBUTE5;
32740 END IF;
32741 IF (p_source_instance_rec.ATTRIBUTE6 = FND_API.G_MISS_CHAR) THEN
32742 l_new_instance_rec.ATTRIBUTE6 := l_curr_instance_rec.ATTRIBUTE6;
32743 ELSE
32744 l_new_instance_rec.ATTRIBUTE6 := p_source_instance_rec.ATTRIBUTE6;
32745 END IF;
32746 IF (p_source_instance_rec.ATTRIBUTE7 = FND_API.G_MISS_CHAR) THEN
32747 l_new_instance_rec.ATTRIBUTE7 := l_curr_instance_rec.ATTRIBUTE7;
32748 ELSE
32749 l_new_instance_rec.ATTRIBUTE7 := p_source_instance_rec.ATTRIBUTE7;
32750 END IF;
32751 IF (p_source_instance_rec.ATTRIBUTE8 = FND_API.G_MISS_CHAR) THEN
32752 l_new_instance_rec.ATTRIBUTE8 := l_curr_instance_rec.ATTRIBUTE8;
32753 ELSE
32754 l_new_instance_rec.ATTRIBUTE8 := p_source_instance_rec.ATTRIBUTE8;
32755 END IF;
32756 -- Added for bug 2681745
32757 IF (p_source_instance_rec.ATTRIBUTE9 = FND_API.G_MISS_CHAR) THEN
32758 l_new_instance_rec.ATTRIBUTE9 := l_curr_instance_rec.ATTRIBUTE9;
32759 ELSE
32760 l_new_instance_rec.ATTRIBUTE9 := p_source_instance_rec.ATTRIBUTE9;
32761 END IF;
32762 -- End addition for bug 2681745
32763 IF (p_source_instance_rec.ATTRIBUTE10 = FND_API.G_MISS_CHAR) THEN
32764 l_new_instance_rec.ATTRIBUTE10 := l_curr_instance_rec.ATTRIBUTE10;
32765 ELSE
32766 l_new_instance_rec.ATTRIBUTE10 := p_source_instance_rec.ATTRIBUTE10;
32767 END IF;
32768 IF (p_source_instance_rec.ATTRIBUTE11 = FND_API.G_MISS_CHAR) THEN
32769 l_new_instance_rec.ATTRIBUTE11 := l_curr_instance_rec.ATTRIBUTE11;
32770 ELSE
32771 l_new_instance_rec.ATTRIBUTE11 := p_source_instance_rec.ATTRIBUTE11;
32772 END IF;
32773 IF (p_source_instance_rec.ATTRIBUTE12 = FND_API.G_MISS_CHAR) THEN
32774 l_new_instance_rec.ATTRIBUTE12 := l_curr_instance_rec.ATTRIBUTE12;
32775 ELSE
32776 l_new_instance_rec.ATTRIBUTE12 := p_source_instance_rec.ATTRIBUTE12;
32777 END IF;
32778 IF (p_source_instance_rec.ATTRIBUTE13 = FND_API.G_MISS_CHAR) THEN
32779 l_new_instance_rec.ATTRIBUTE13 := l_curr_instance_rec.ATTRIBUTE13;
32780 ELSE
32781 l_new_instance_rec.ATTRIBUTE13 := p_source_instance_rec.ATTRIBUTE13;
32782 END IF;
32783 IF (p_source_instance_rec.ATTRIBUTE14 = FND_API.G_MISS_CHAR) THEN
32784 l_new_instance_rec.ATTRIBUTE14 := l_curr_instance_rec.ATTRIBUTE14;
32785 ELSE
32786 l_new_instance_rec.ATTRIBUTE14 := p_source_instance_rec.ATTRIBUTE14;
32787 END IF;
32788 IF (p_source_instance_rec.ATTRIBUTE15 = FND_API.G_MISS_CHAR) THEN
32789 l_new_instance_rec.ATTRIBUTE15 := l_curr_instance_rec.ATTRIBUTE15;
32790 ELSE
32791 l_new_instance_rec.ATTRIBUTE15 := p_source_instance_rec.ATTRIBUTE15;
32792 END IF;
32793 IF (p_source_instance_rec.LAST_OE_ORDER_LINE_ID = FND_API.G_MISS_NUM) THEN
32794 l_new_instance_rec.LAST_OE_ORDER_LINE_ID := l_curr_instance_rec.LAST_OE_ORDER_LINE_ID;
32795 ELSE
32796 l_new_instance_rec.LAST_OE_ORDER_LINE_ID := p_source_instance_rec.LAST_OE_ORDER_LINE_ID;
32797 END IF;
32798 IF (p_source_instance_rec.LAST_OE_RMA_LINE_ID = FND_API.G_MISS_NUM) THEN
32799 l_new_instance_rec.LAST_OE_RMA_LINE_ID := l_curr_instance_rec.LAST_OE_RMA_LINE_ID;
32800 ELSE
32801 l_new_instance_rec.LAST_OE_RMA_LINE_ID := p_source_instance_rec.LAST_OE_RMA_LINE_ID;
32802 END IF;
32803 IF (p_source_instance_rec.LAST_PO_PO_LINE_ID = FND_API.G_MISS_NUM) THEN
32804 l_new_instance_rec.LAST_PO_PO_LINE_ID := l_curr_instance_rec.LAST_PO_PO_LINE_ID;
32805 ELSE
32806 l_new_instance_rec.LAST_PO_PO_LINE_ID := p_source_instance_rec.LAST_PO_PO_LINE_ID;
32807 END IF;
32808 IF (p_source_instance_rec.LAST_OE_PO_NUMBER = FND_API.G_MISS_CHAR) THEN
32809 l_new_instance_rec.LAST_OE_PO_NUMBER := l_curr_instance_rec.LAST_OE_PO_NUMBER;
32810 ELSE
32811 l_new_instance_rec.LAST_OE_PO_NUMBER := p_source_instance_rec.LAST_OE_PO_NUMBER;
32812 END IF;
32813 IF (p_source_instance_rec.LAST_WIP_JOB_ID = FND_API.G_MISS_NUM) THEN
32814 l_new_instance_rec.LAST_WIP_JOB_ID := l_curr_instance_rec.LAST_WIP_JOB_ID;
32815 ELSE
32816 l_new_instance_rec.LAST_WIP_JOB_ID := p_source_instance_rec.LAST_WIP_JOB_ID;
32817 END IF;
32818 IF (p_source_instance_rec.LAST_PA_PROJECT_ID = FND_API.G_MISS_NUM) THEN
32819 l_new_instance_rec.LAST_PA_PROJECT_ID := l_curr_instance_rec.LAST_PA_PROJECT_ID;
32820 ELSE
32821 l_new_instance_rec.LAST_PA_PROJECT_ID := p_source_instance_rec.LAST_PA_PROJECT_ID;
32822 END IF;
32823 IF (p_source_instance_rec.LAST_PA_TASK_ID = FND_API.G_MISS_NUM) THEN
32824 l_new_instance_rec.LAST_PA_TASK_ID := l_curr_instance_rec.LAST_PA_TASK_ID ;
32825 ELSE
32826 l_new_instance_rec.LAST_PA_TASK_ID := p_source_instance_rec.LAST_PA_TASK_ID ;
32827 END IF;
32828 IF (p_source_instance_rec.LAST_OE_AGREEMENT_ID = FND_API.G_MISS_NUM) THEN
32829 l_new_instance_rec.LAST_OE_AGREEMENT_ID := l_curr_instance_rec.LAST_OE_AGREEMENT_ID ;
32830 ELSE
32831 l_new_instance_rec.LAST_OE_AGREEMENT_ID := p_source_instance_rec.LAST_OE_AGREEMENT_ID ;
32832 END IF;
32833 IF (p_source_instance_rec.INSTALL_DATE = FND_API.G_MISS_DATE) THEN
32834 l_new_instance_rec.INSTALL_DATE := l_curr_instance_rec.INSTALL_DATE;
32835 ELSE
32836 l_new_instance_rec.INSTALL_DATE := p_source_instance_rec.INSTALL_DATE;
32837 END IF;
32838 IF (p_source_instance_rec.RETURN_BY_DATE = FND_API.G_MISS_DATE) THEN
32839 l_new_instance_rec.RETURN_BY_DATE := l_curr_instance_rec.RETURN_BY_DATE;
32840 ELSE
32841 l_new_instance_rec.RETURN_BY_DATE := p_source_instance_rec.RETURN_BY_DATE;
32842 END IF;
32843 IF (p_source_instance_rec.ACTUAL_RETURN_DATE = FND_API.G_MISS_DATE) THEN
32844 l_new_instance_rec.ACTUAL_RETURN_DATE := l_curr_instance_rec.ACTUAL_RETURN_DATE;
32845 ELSE
32846 l_new_instance_rec.ACTUAL_RETURN_DATE := p_source_instance_rec.ACTUAL_RETURN_DATE;
32847 END IF;
32848 --start of code for eam integration--
32849 IF (p_source_instance_rec.NETWORK_ASSET_FLAG = FND_API.G_MISS_CHAR) THEN
32850 l_new_instance_rec.NETWORK_ASSET_FLAG := l_curr_instance_rec.NETWORK_ASSET_FLAG;
32851 ELSE
32852 l_new_instance_rec.NETWORK_ASSET_FLAG := p_source_instance_rec.NETWORK_ASSET_FLAG;
32853 END IF;
32854
32855 IF (p_source_instance_rec.MAINTAINABLE_FLAG = FND_API.G_MISS_CHAR) THEN
32856 l_new_instance_rec.MAINTAINABLE_FLAG := l_curr_instance_rec.MAINTAINABLE_FLAG;
32857 ELSE
32858 l_new_instance_rec.MAINTAINABLE_FLAG := p_source_instance_rec.MAINTAINABLE_FLAG;
32859 END IF;
32860
32861 IF (p_source_instance_rec.PN_LOCATION_ID = FND_API.G_MISS_NUM) THEN
32862 l_new_instance_rec.PN_LOCATION_ID := l_curr_instance_rec.PN_LOCATION_ID;
32863 ELSE
32864 l_new_instance_rec.PN_LOCATION_ID := p_source_instance_rec.PN_LOCATION_ID;
32865 END IF;
32866
32867 IF (p_source_instance_rec.ASSET_CRITICALITY_CODE = FND_API.G_MISS_CHAR) THEN
32868 l_new_instance_rec.ASSET_CRITICALITY_CODE := l_curr_instance_rec.ASSET_CRITICALITY_CODE;
32869 ELSE
32870 l_new_instance_rec.ASSET_CRITICALITY_CODE := p_source_instance_rec.ASSET_CRITICALITY_CODE;
32871 END IF;
32872
32873 IF (p_source_instance_rec.CATEGORY_ID = FND_API.G_MISS_NUM) THEN
32874 l_new_instance_rec.CATEGORY_ID := l_curr_instance_rec.CATEGORY_ID;
32875 ELSE
32876 l_new_instance_rec.CATEGORY_ID := p_source_instance_rec.CATEGORY_ID;
32877 END IF;
32878
32879 IF (p_source_instance_rec.EQUIPMENT_GEN_OBJECT_ID = FND_API.G_MISS_NUM) THEN
32880 l_new_instance_rec.EQUIPMENT_GEN_OBJECT_ID := l_curr_instance_rec.EQUIPMENT_GEN_OBJECT_ID;
32881 ELSE
32882 l_new_instance_rec.EQUIPMENT_GEN_OBJECT_ID := p_source_instance_rec.EQUIPMENT_GEN_OBJECT_ID;
32883 END IF;
32884
32885 IF (p_source_instance_rec.INSTANTIATION_FLAG = FND_API.G_MISS_CHAR) THEN
32886 l_new_instance_rec.INSTANTIATION_FLAG := l_curr_instance_rec.INSTANTIATION_FLAG;
32887 ELSE
32888 l_new_instance_rec.INSTANTIATION_FLAG := p_source_instance_rec.INSTANTIATION_FLAG;
32889 END IF;
32890
32891 IF (p_source_instance_rec.LINEAR_LOCATION_ID = FND_API.G_MISS_NUM) THEN
32892 l_new_instance_rec.LINEAR_LOCATION_ID := l_curr_instance_rec.LINEAR_LOCATION_ID ;
32893 ELSE
32894 l_new_instance_rec.LINEAR_LOCATION_ID := p_source_instance_rec.LINEAR_LOCATION_ID ;
32895 END IF;
32896
32897 IF (p_source_instance_rec.OPERATIONAL_LOG_FLAG = FND_API.G_MISS_CHAR) THEN
32898 l_new_instance_rec.OPERATIONAL_LOG_FLAG := l_curr_instance_rec.OPERATIONAL_LOG_FLAG;
32899 ELSE
32900 l_new_instance_rec.OPERATIONAL_LOG_FLAG := p_source_instance_rec.OPERATIONAL_LOG_FLAG;
32901 END IF;
32902
32903 IF (p_source_instance_rec.CHECKIN_STATUS = FND_API.G_MISS_NUM) THEN
32904 l_new_instance_rec.CHECKIN_STATUS := l_curr_instance_rec.CHECKIN_STATUS;
32905 ELSE
32906 l_new_instance_rec.CHECKIN_STATUS := p_source_instance_rec.CHECKIN_STATUS;
32907 END IF;
32908
32909 IF (p_source_instance_rec.SUPPLIER_WARRANTY_EXP_DATE = FND_API.G_MISS_DATE) THEN
32910 l_new_instance_rec.SUPPLIER_WARRANTY_EXP_DATE := l_curr_instance_rec.SUPPLIER_WARRANTY_EXP_DATE;
32911 ELSE
32912 l_new_instance_rec.SUPPLIER_WARRANTY_EXP_DATE := p_source_instance_rec.SUPPLIER_WARRANTY_EXP_DATE;
32913 END IF;
32914
32915 IF (p_source_instance_rec.ATTRIBUTE16 = FND_API.G_MISS_CHAR) THEN
32916 l_new_instance_rec.ATTRIBUTE16 := l_curr_instance_rec.ATTRIBUTE16;
32917 ELSE
32918 l_new_instance_rec.ATTRIBUTE16 := p_source_instance_rec.ATTRIBUTE16;
32919 END IF;
32920
32921 IF (p_source_instance_rec.ATTRIBUTE17 = FND_API.G_MISS_CHAR) THEN
32922 l_new_instance_rec.ATTRIBUTE17 := l_curr_instance_rec.ATTRIBUTE17;
32923 ELSE
32924 l_new_instance_rec.ATTRIBUTE17 := p_source_instance_rec.ATTRIBUTE17;
32925 END IF;
32926
32927 IF (p_source_instance_rec.ATTRIBUTE18 = FND_API.G_MISS_CHAR) THEN
32928 l_new_instance_rec.ATTRIBUTE18 := l_curr_instance_rec.ATTRIBUTE18;
32929 ELSE
32930 l_new_instance_rec.ATTRIBUTE18 := p_source_instance_rec.ATTRIBUTE18;
32931 END IF;
32932
32933 IF (p_source_instance_rec.ATTRIBUTE19 = FND_API.G_MISS_CHAR) THEN
32934 l_new_instance_rec.ATTRIBUTE19 := l_curr_instance_rec.ATTRIBUTE19;
32935 ELSE
32936 l_new_instance_rec.ATTRIBUTE19 := p_source_instance_rec.ATTRIBUTE19;
32937 END IF;
32938
32939 IF (p_source_instance_rec.ATTRIBUTE20 = FND_API.G_MISS_CHAR) THEN
32940 l_new_instance_rec.ATTRIBUTE20 := l_curr_instance_rec.ATTRIBUTE20;
32941 ELSE
32942 l_new_instance_rec.ATTRIBUTE20 := p_source_instance_rec.ATTRIBUTE20;
32943 END IF;
32944
32945 IF (p_source_instance_rec.ATTRIBUTE21 = FND_API.G_MISS_CHAR) THEN
32946 l_new_instance_rec.ATTRIBUTE21 := l_curr_instance_rec.ATTRIBUTE21;
32947 ELSE
32948 l_new_instance_rec.ATTRIBUTE21 := p_source_instance_rec.ATTRIBUTE21;
32949 END IF;
32950
32951 IF (p_source_instance_rec.ATTRIBUTE22 = FND_API.G_MISS_CHAR) THEN
32952 l_new_instance_rec.ATTRIBUTE22 := l_curr_instance_rec.ATTRIBUTE22;
32953 ELSE
32954 l_new_instance_rec.ATTRIBUTE22 := p_source_instance_rec.ATTRIBUTE22;
32955 END IF;
32956
32957 IF (p_source_instance_rec.ATTRIBUTE23 = FND_API.G_MISS_CHAR) THEN
32958 l_new_instance_rec.ATTRIBUTE23 := l_curr_instance_rec.ATTRIBUTE23;
32959 ELSE
32960 l_new_instance_rec.ATTRIBUTE23 := p_source_instance_rec.ATTRIBUTE23;
32961 END IF;
32962
32963 IF (p_source_instance_rec.ATTRIBUTE24 = FND_API.G_MISS_CHAR) THEN
32964 l_new_instance_rec.ATTRIBUTE24 := l_curr_instance_rec.ATTRIBUTE24;
32965 ELSE
32966 l_new_instance_rec.ATTRIBUTE24 := p_source_instance_rec.ATTRIBUTE24;
32967 END IF;
32968
32969 IF (p_source_instance_rec.ATTRIBUTE25 = FND_API.G_MISS_CHAR) THEN
32970 l_new_instance_rec.ATTRIBUTE25 := l_curr_instance_rec.ATTRIBUTE25;
32971 ELSE
32972 l_new_instance_rec.ATTRIBUTE25 := p_source_instance_rec.ATTRIBUTE25;
32973 END IF;
32974
32975 IF (p_source_instance_rec.ATTRIBUTE26 = FND_API.G_MISS_CHAR) THEN
32976 l_new_instance_rec.ATTRIBUTE26 := l_curr_instance_rec.ATTRIBUTE26;
32977 ELSE
32978 l_new_instance_rec.ATTRIBUTE26 := p_source_instance_rec.ATTRIBUTE26;
32979 END IF;
32980
32981 IF (p_source_instance_rec.ATTRIBUTE27 = FND_API.G_MISS_CHAR) THEN
32982 l_new_instance_rec.ATTRIBUTE27 := l_curr_instance_rec.ATTRIBUTE27;
32983 ELSE
32984 l_new_instance_rec.ATTRIBUTE27 := p_source_instance_rec.ATTRIBUTE27;
32985 END IF;
32986
32987 IF (p_source_instance_rec.ATTRIBUTE28 = FND_API.G_MISS_CHAR) THEN
32988 l_new_instance_rec.ATTRIBUTE28 := l_curr_instance_rec.ATTRIBUTE28;
32989 ELSE
32990 l_new_instance_rec.ATTRIBUTE28 := p_source_instance_rec.ATTRIBUTE28;
32991 END IF;
32992
32993 IF (p_source_instance_rec.ATTRIBUTE29 = FND_API.G_MISS_CHAR) THEN
32994 l_new_instance_rec.ATTRIBUTE29 := l_curr_instance_rec.ATTRIBUTE29;
32995 ELSE
32996 l_new_instance_rec.ATTRIBUTE29 := p_source_instance_rec.ATTRIBUTE29;
32997 END IF;
32998
32999 IF (p_source_instance_rec.ATTRIBUTE30 = FND_API.G_MISS_CHAR) THEN
33000 l_new_instance_rec.ATTRIBUTE30 := l_curr_instance_rec.ATTRIBUTE30;
33001 ELSE
33002 l_new_instance_rec.ATTRIBUTE30 := p_source_instance_rec.ATTRIBUTE30;
33003 END IF;
33004
33005 IF (p_source_instance_rec.instance_number = fnd_api.g_miss_char)
33006 THEN
33007 NULL;
33008 ELSE
33009 l_new_instance_rec.instance_number := p_source_instance_rec.instance_number;
33010 END IF;
33011
33012 IF (p_source_instance_rec.instance_description = fnd_api.g_miss_char)
33013 THEN
33014 NULL;
33015 ELSE
33016 l_new_instance_rec.instance_description := p_source_instance_rec.instance_description;
33017 END IF;
33018
33019 --end of code for eam integration--
33020 -- Addition of columns for FA Integration
33021
33022 IF (p_source_instance_rec.PAYABLES_UNIT_PRICE = FND_API.G_MISS_NUM) THEN
33023 l_new_instance_rec.PAYABLES_UNIT_PRICE := l_curr_instance_rec.PAYABLES_UNIT_PRICE;
33024 ELSE
33025 l_new_instance_rec.PAYABLES_UNIT_PRICE := p_source_instance_rec.PAYABLES_UNIT_PRICE;
33026 END IF;
33027
33028 IF (p_source_instance_rec.PAYABLES_CURRENCY_CODE = FND_API.G_MISS_CHAR) THEN
33029 l_new_instance_rec.PAYABLES_CURRENCY_CODE := l_curr_instance_rec.PAYABLES_CURRENCY_CODE;
33030 ELSE
33031 l_new_instance_rec.PAYABLES_CURRENCY_CODE := p_source_instance_rec.PAYABLES_CURRENCY_CODE;
33032 END IF;
33033
33034 IF (p_source_instance_rec.PURCHASE_UNIT_PRICE = FND_API.G_MISS_NUM) THEN
33035 l_new_instance_rec.PURCHASE_UNIT_PRICE := l_curr_instance_rec.PURCHASE_UNIT_PRICE;
33036 ELSE
33037 l_new_instance_rec.PURCHASE_UNIT_PRICE := p_source_instance_rec.PURCHASE_UNIT_PRICE;
33038 END IF;
33039
33040 IF (p_source_instance_rec.PURCHASE_CURRENCY_CODE = FND_API.G_MISS_CHAR) THEN
33041 l_new_instance_rec.PURCHASE_CURRENCY_CODE := l_curr_instance_rec.PURCHASE_CURRENCY_CODE;
33042 ELSE
33043 l_new_instance_rec.PURCHASE_CURRENCY_CODE := p_source_instance_rec.PURCHASE_CURRENCY_CODE;
33044 END IF;
33045
33046 IF (p_source_instance_rec.SALES_UNIT_PRICE = FND_API.G_MISS_NUM) THEN
33047 l_new_instance_rec.SALES_UNIT_PRICE := l_curr_instance_rec.SALES_UNIT_PRICE;
33048 ELSE
33049 l_new_instance_rec.SALES_UNIT_PRICE := p_source_instance_rec.SALES_UNIT_PRICE;
33050 END IF;
33051
33052 IF (p_source_instance_rec.SALES_CURRENCY_CODE = FND_API.G_MISS_CHAR) THEN
33053 l_new_instance_rec.SALES_CURRENCY_CODE := l_curr_instance_rec.SALES_CURRENCY_CODE;
33054 ELSE
33055 l_new_instance_rec.SALES_CURRENCY_CODE := p_source_instance_rec.SALES_CURRENCY_CODE;
33056 END IF;
33057
33058 IF (p_source_instance_rec.OPERATIONAL_STATUS_CODE = FND_API.G_MISS_CHAR) THEN
33059 l_new_instance_rec.OPERATIONAL_STATUS_CODE := l_curr_instance_rec.OPERATIONAL_STATUS_CODE;
33060 ELSE
33061 l_new_instance_rec.OPERATIONAL_STATUS_CODE := p_source_instance_rec.OPERATIONAL_STATUS_CODE;
33062 END IF;
33063
33064 -- End addition of columns for FA Integration
33065 -- Set the non-copiable attributes as follows
33066 l_new_instance_rec.instance_id := FND_API.G_MISS_NUM;
33067 -- l_new_instance_rec.instance_number := FND_API.G_MISS_CHAR;
33068
33069 -- Added if condition for bug 6368191
33070 IF (p_source_instance_rec.active_start_date = FND_API.G_MISS_DATE)
33071 THEN
33072 --Default the active_start_date to system date if nothing was set
33073 l_new_instance_rec.active_start_date := SYSDATE;
33074 END IF;
33075
33076 l_new_instance_rec.MANUALLY_CREATED_FLAG := 'N';
33077 l_new_instance_rec.COMPLETENESS_FLAG := NULL;
33078 l_new_instance_rec.OBJECT_VERSION_NUMBER := 1;
33079 -- The following is added for bug 2944298.
33080 -- Value of instance_usage_code should be copied from the source instance
33081 -- only if it is called from split.
33082 IF p_call_from_split=fnd_api.g_true
33083 THEN
33084 -- Added by sguthiva for bug 2163942
33085 IF (p_source_instance_rec.instance_usage_code = FND_API.G_MISS_CHAR) THEN
33086 l_new_instance_rec.instance_usage_code := l_curr_instance_rec.instance_usage_code;
33087 ELSE
33088 l_new_instance_rec.instance_usage_code := p_source_instance_rec.instance_usage_code;
33089 END IF;
33090
33091 ELSE
33092 l_obj_id:=NULL;
33093 csi_ii_relationships_pvt.Get_Top_Most_Parent
33094 ( p_subject_id => p_source_instance_rec.instance_id,
33095 p_rel_type_code => 'COMPONENT-OF',
33096 p_object_id => l_obj_id
33097 );
33098 --
33099 IF l_obj_id <> p_source_instance_rec.instance_id THEN
33100 BEGIN
33101 SELECT instance_usage_code
33102 INTO l_new_instance_rec.instance_usage_code
33103 FROM csi_item_instances
33104 WHERE instance_id=l_obj_id;
33105 EXCEPTION
33106 WHEN NO_DATA_FOUND THEN
33107 NULL;
33108 END;
33109 ELSE
33110 l_new_instance_rec.instance_usage_code := l_curr_instance_rec.instance_usage_code;
33111 END IF;
33112 END IF;
33113 -- End addition by sguthiva for bug 2163942
33114 -- Added by sguthiva for bug 2230264
33115
33116 IF (p_source_instance_rec.vld_organization_id = FND_API.G_MISS_NUM) THEN
33117 l_new_instance_rec.vld_organization_id := l_vld_org_id;
33118 ELSE
33119 l_new_instance_rec.vld_organization_id := p_source_instance_rec.vld_organization_id;
33120 END IF;
33121 IF (p_source_instance_rec.install_location_type_code = FND_API.G_MISS_CHAR) THEN
33122 l_new_instance_rec.install_location_type_code := l_curr_instance_rec.install_location_type_code;
33123 ELSE
33124 l_new_instance_rec.install_location_type_code := p_source_instance_rec.install_location_type_code;
33125 END IF;
33126 IF (p_source_instance_rec.install_location_id = FND_API.G_MISS_NUM) THEN
33127 l_new_instance_rec.install_location_id := l_curr_instance_rec.install_location_id;
33128 ELSE
33129 l_new_instance_rec.install_location_id := p_source_instance_rec.install_location_id;
33130 END IF;
33131 -- End addition by sguthiva for bug 2230264
33132
33133 -- Call Create_item_instance to create the new instance in csi_item_instances table.
33134 CSI_ITEM_INSTANCE_PVT.create_item_instance
33135 ( p_api_version => p_api_version
33136 ,p_commit => p_commit
33137 ,p_init_msg_list => p_init_msg_list
33138 ,p_validation_level => p_validation_level
33139 ,p_instance_rec => l_new_instance_rec
33140 ,p_txn_rec => p_txn_rec
33141 ,p_party_tbl => l_party_tbl
33142 ,p_asset_tbl => l_asset_tbl
33143 ,x_return_status => x_return_status
33144 ,x_msg_count => x_msg_count
33145 ,x_msg_data => x_msg_data
33146 ,p_item_attribute_tbl => l_item_attribute_tbl
33147 ,p_location_tbl => l_location_tbl
33148 ,p_generic_id_tbl => l_generic_id_tbl
33149 ,p_lookup_tbl => l_lookup_tbl
33150 ,p_ins_count_rec => l_ins_count_rec
33151 );
33152 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
33153 l_msg_index := 1;
33154 l_msg_count := x_msg_count;
33155 WHILE l_msg_count > 0 LOOP
33156 x_msg_data := FND_MSG_PUB.GET
33157 (l_msg_index,
33158 FND_API.G_FALSE );
33159
33160 csi_gen_utility_pvt.put_line('message data = '||x_msg_data);
33161 l_msg_index := l_msg_index + 1;
33162 l_msg_count := l_msg_count - 1;
33163 END LOOP;
33164 RAISE FND_API.G_EXC_ERROR;
33165 ELSE
33166 x_new_instance_tbl(1) := l_new_instance_rec;
33167 l_map_count := l_map_count + 1;
33168 l_map_inst_tbl(l_map_count).old_instance_id := p_source_instance_rec.instance_id;
33169 l_map_inst_tbl(l_map_count).new_instance_id := l_new_instance_rec.instance_id;
33170 END IF;
33171
33172
33173 -- Create a party or parties for the new instances
33174 IF l_party_tbl.COUNT > 0 THEN
33175
33176 FOR tab_row_party IN l_party_tbl.FIRST .. l_party_tbl.LAST
33177
33178 LOOP
33179
33180 IF l_party_tbl.EXISTS(tab_row_party) THEN
33181
33182 -- Build account query rec
33183 l_party_account_query_rec.instance_party_id := l_party_tbl(tab_row_party).instance_party_id ;
33184 l_party_account_query_rec.ip_account_id := FND_API.G_MISS_NUM;
33185 l_party_account_query_rec.party_account_id := FND_API.G_MISS_NUM;
33186 l_party_account_query_rec.relationship_type_code := FND_API.G_MISS_CHAR;
33187
33188 -- Get party accounts
33189
33190 csi_party_relationships_pub.get_inst_party_accounts
33191 ( p_api_version => p_api_version
33192 ,p_commit => p_commit
33193 ,p_init_msg_list => p_init_msg_list
33194 ,p_validation_level => p_validation_level
33195 ,p_account_query_rec => l_party_account_query_rec
33196 ,p_resolve_id_columns => fnd_api.g_true
33197 ,p_time_stamp => NULL
33198 ,x_account_header_tbl => l_account_header_tbl
33199 ,x_return_status => x_return_status
33200 ,x_msg_count => x_msg_count
33201 ,x_msg_data => x_msg_data);
33202
33203 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
33204 l_msg_index := 1;
33205 l_msg_count := x_msg_count;
33206 WHILE l_msg_count > 0 LOOP
33207 x_msg_data := FND_MSG_PUB.GET
33208 (l_msg_index,
33209 FND_API.G_FALSE );
33210 csi_gen_utility_pvt.put_line('message data = '||x_msg_data);
33211 l_msg_index := l_msg_index + 1;
33212 l_msg_count := l_msg_count - 1;
33213 END LOOP;
33214 RAISE FND_API.G_EXC_ERROR;
33215 END IF;
33216
33217 -- Start Addition for Bug 2186704
33218 IF l_account_header_tbl.count>0
33219 THEN
33220 k:=1;
33221 FOR i IN l_account_header_tbl.FIRST..l_account_header_tbl.LAST
33222 LOOP
33223 IF l_account_header_tbl(i).active_end_date IS NULL OR
33224 l_account_header_tbl(i).active_end_date > SYSDATE
33225 THEN
33226 l_pty_acct_hdr_tbl(k):= l_account_header_tbl(i);
33227 k := k+1;
33228 END IF;
33229 END LOOP;
33230 l_account_header_tbl:=l_temp_acct_hdr_tbl;
33231 l_account_header_tbl:=l_pty_acct_hdr_tbl;
33232 END IF;
33233 -- End Addition for Bug 2186704
33234
33235 IF l_account_header_tbl.COUNT > 0 THEN /***********Second Change 07/27/01 - RK**********/
33236 FOR tab_row_party IN l_account_header_tbl.FIRST .. l_account_header_tbl.LAST
33237 LOOP
33238 IF l_account_header_tbl.EXISTS(tab_row_party) THEN
33239 -- Donot copy accounts if user says so
33240 IF (p_copy_accounts <> fnd_api.g_true) THEN
33241 IF (l_account_header_tbl(tab_row_party).RELATIONSHIP_TYPE_CODE = 'OWNER') THEN
33242 l_party_account_tbl(tab_row_party).ip_account_id := l_account_header_tbl(tab_row_party).ip_account_id;
33243 l_party_account_tbl(tab_row_party).instance_party_id := l_account_header_tbl(tab_row_party).instance_party_id;
33244 l_party_account_tbl(tab_row_party).party_account_id := l_account_header_tbl(tab_row_party).party_account_id;
33245 l_party_account_tbl(tab_row_party).relationship_type_code := l_account_header_tbl(tab_row_party).relationship_type_code;
33246 l_party_account_tbl(tab_row_party).bill_to_address := l_account_header_tbl(tab_row_party).bill_to_address;
33247 l_party_account_tbl(tab_row_party).ship_to_address := l_account_header_tbl(tab_row_party).ship_to_address;
33248 l_party_account_tbl(tab_row_party).active_start_date := l_account_header_tbl(tab_row_party).active_start_date;
33249 l_party_account_tbl(tab_row_party).active_end_date := l_account_header_tbl(tab_row_party).active_end_date;
33250 l_party_account_tbl(tab_row_party).context := l_account_header_tbl(tab_row_party).context;
33251 l_party_account_tbl(tab_row_party).attribute1 := l_account_header_tbl(tab_row_party).attribute1;
33252 l_party_account_tbl(tab_row_party).attribute2 := l_account_header_tbl(tab_row_party).attribute2;
33253 l_party_account_tbl(tab_row_party).attribute3 := l_account_header_tbl(tab_row_party).attribute3;
33254 l_party_account_tbl(tab_row_party).attribute4 := l_account_header_tbl(tab_row_party).attribute4;
33255 l_party_account_tbl(tab_row_party).attribute5 := l_account_header_tbl(tab_row_party).attribute5;
33256 l_party_account_tbl(tab_row_party).attribute6 := l_account_header_tbl(tab_row_party).attribute6;
33257 l_party_account_tbl(tab_row_party).attribute7 := l_account_header_tbl(tab_row_party).attribute7;
33258 l_party_account_tbl(tab_row_party).attribute8 := l_account_header_tbl(tab_row_party).attribute8;
33259 l_party_account_tbl(tab_row_party).attribute9 := l_account_header_tbl(tab_row_party).attribute9;
33260 l_party_account_tbl(tab_row_party).attribute10 := l_account_header_tbl(tab_row_party).attribute10;
33261 l_party_account_tbl(tab_row_party).attribute11 := l_account_header_tbl(tab_row_party).attribute11;
33262 l_party_account_tbl(tab_row_party).attribute12 := l_account_header_tbl(tab_row_party).attribute12;
33263 l_party_account_tbl(tab_row_party).attribute13 := l_account_header_tbl(tab_row_party).attribute13;
33264 l_party_account_tbl(tab_row_party).attribute14 := l_account_header_tbl(tab_row_party).attribute14;
33265 l_party_account_tbl(tab_row_party).attribute15 := l_account_header_tbl(tab_row_party).attribute15;
33266 l_party_account_tbl(tab_row_party).object_version_number := l_account_header_tbl(tab_row_party).object_version_number;
33267 END IF;
33268 ELSE
33269 l_party_account_tbl(tab_row_party).ip_account_id := l_account_header_tbl(tab_row_party).ip_account_id;
33270 l_party_account_tbl(tab_row_party).instance_party_id := l_account_header_tbl(tab_row_party).instance_party_id;
33271 l_party_account_tbl(tab_row_party).party_account_id := l_account_header_tbl(tab_row_party).party_account_id;
33272 l_party_account_tbl(tab_row_party).relationship_type_code := l_account_header_tbl(tab_row_party).relationship_type_code;
33273 l_party_account_tbl(tab_row_party).bill_to_address := l_account_header_tbl(tab_row_party).bill_to_address;
33274 l_party_account_tbl(tab_row_party).ship_to_address := l_account_header_tbl(tab_row_party).ship_to_address;
33275 l_party_account_tbl(tab_row_party).active_start_date := l_account_header_tbl(tab_row_party).active_start_date;
33276 l_party_account_tbl(tab_row_party).active_end_date := l_account_header_tbl(tab_row_party).active_end_date;
33277 l_party_account_tbl(tab_row_party).context := l_account_header_tbl(tab_row_party).context;
33278 l_party_account_tbl(tab_row_party).attribute1 := l_account_header_tbl(tab_row_party).attribute1;
33279 l_party_account_tbl(tab_row_party).attribute2 := l_account_header_tbl(tab_row_party).attribute2;
33280 l_party_account_tbl(tab_row_party).attribute3 := l_account_header_tbl(tab_row_party).attribute3;
33281 l_party_account_tbl(tab_row_party).attribute4 := l_account_header_tbl(tab_row_party).attribute4;
33282 l_party_account_tbl(tab_row_party).attribute5 := l_account_header_tbl(tab_row_party).attribute5;
33283 l_party_account_tbl(tab_row_party).attribute6 := l_account_header_tbl(tab_row_party).attribute6;
33284 l_party_account_tbl(tab_row_party).attribute7 := l_account_header_tbl(tab_row_party).attribute7;
33285 l_party_account_tbl(tab_row_party).attribute8 := l_account_header_tbl(tab_row_party).attribute8;
33286 l_party_account_tbl(tab_row_party).attribute9 := l_account_header_tbl(tab_row_party).attribute9;
33287 l_party_account_tbl(tab_row_party).attribute10 := l_account_header_tbl(tab_row_party).attribute10;
33288 l_party_account_tbl(tab_row_party).attribute11 := l_account_header_tbl(tab_row_party).attribute11;
33289 l_party_account_tbl(tab_row_party).attribute12 := l_account_header_tbl(tab_row_party).attribute12;
33290 l_party_account_tbl(tab_row_party).attribute13 := l_account_header_tbl(tab_row_party).attribute13;
33291 l_party_account_tbl(tab_row_party).attribute14 := l_account_header_tbl(tab_row_party).attribute14;
33292 l_party_account_tbl(tab_row_party).attribute15 := l_account_header_tbl(tab_row_party).attribute15;
33293 l_party_account_tbl(tab_row_party).object_version_number := l_account_header_tbl(tab_row_party).object_version_number;
33294 END IF;
33295 END IF;
33296 END LOOP;
33297 END IF; --l_account_header_tbl.COUNT > 0
33298 -- Empty the account_header table
33299 l_account_header_tbl.DELETE;
33300 -- Build the party table
33301 l_party_tbl(tab_row_party).instance_party_id := FND_API.G_MISS_NUM;
33302 l_party_tbl(tab_row_party).INSTANCE_ID := l_new_instance_rec.instance_id;
33303 l_party_tbl(tab_row_party).ACTIVE_START_DATE := FND_API.G_MISS_DATE;
33304 l_party_tbl(tab_row_party).ACTIVE_END_DATE := FND_API.G_MISS_DATE;
33305 -- Build the temporary party table with only one record
33306 -- for and grab all its accounts
33307 l_party_input_tbl(1) := l_party_tbl(tab_row_party);
33308 -- Build its corresponding accounts
33309 IF l_party_account_tbl.COUNT > 0 THEN
33310 FOR tab_row_acct IN l_party_account_tbl.FIRST .. l_party_account_tbl.LAST
33311 LOOP
33312 -- l_party_account_tbl(tab_row_acct).parent_tbl_index := tab_row_party;
33313 l_party_account_tbl(tab_row_acct).parent_tbl_index := 1;
33314 l_party_account_tbl(tab_row_acct).ip_account_id := FND_API.G_MISS_NUM;
33315 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;
33316 l_party_account_tbl(tab_row_acct).ACTIVE_START_DATE := FND_API.G_MISS_DATE;
33317 l_party_account_tbl(tab_row_acct).ACTIVE_END_DATE := FND_API.G_MISS_DATE;
33318 l_party_account_tbl(tab_row_acct).call_contracts := FND_API.G_FALSE; -- srramakr Bug 2468638
33319 END LOOP;
33320 END IF;
33321 -- Creae instance party relationship and its accounts
33322 csi_party_relationships_pub.create_inst_party_relationship
33323 ( p_api_version => p_api_version
33324 ,p_commit => p_commit
33325 ,p_init_msg_list => p_init_msg_list
33326 ,p_validation_level => p_validation_level
33327 ,p_party_tbl => l_party_input_tbl
33328 ,p_party_account_tbl => l_party_account_tbl
33329 ,p_txn_rec => p_txn_rec
33330 ,p_oks_txn_inst_tbl => px_oks_txn_inst_tbl
33331 ,x_return_status => x_return_status
33332 ,x_msg_count => x_msg_count
33333 ,x_msg_data => x_msg_data
33334 );
33335 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
33336 l_msg_index := 1;
33337 l_msg_count := x_msg_count;
33338 WHILE l_msg_count > 0 LOOP
33339 x_msg_data := FND_MSG_PUB.GET
33340 (l_msg_index,
33341 FND_API.G_FALSE );
33342 csi_gen_utility_pvt.put_line('message data = '||x_msg_data);
33343 l_msg_index := l_msg_index + 1;
33344 l_msg_count := l_msg_count - 1;
33345 END LOOP;
33346 RAISE FND_API.G_EXC_ERROR;
33347 END IF;
33348 -- Grab the new parties created in a new table
33349 l_new_party_tbl(tab_row_party) := l_party_input_tbl(1);
33350 -- Empty the party table
33351 l_party_input_tbl.DELETE;
33352 -- Empty the account table
33353 l_party_account_tbl.DELETE;
33354 END IF;
33355 END LOOP;
33356 END IF;
33357 -- Create a contact or contacts for the new instances
33358 IF (p_copy_contacts = fnd_api.g_true) THEN
33359 IF l_contact_tbl.COUNT > 0 THEN
33360 FOR tab_row_contact IN l_contact_tbl.FIRST .. l_contact_tbl.LAST
33361 LOOP
33362 IF l_contact_tbl.EXISTS(tab_row_contact) THEN
33363 -- Find the contact_ip_id which was just created
33364 -- for this contact
33365 IF (l_original_party_tbl.COUNT > 0) THEN
33366 FOR tab_row_party IN l_original_party_tbl.FIRST .. l_original_party_tbl.LAST
33367 LOOP
33368 IF l_original_party_tbl.EXISTS(tab_row_party) THEN
33369 IF (l_original_party_tbl(tab_row_party).instance_party_id
33370 = l_contact_tbl(tab_row_contact).contact_ip_id )
33371 THEN
33372 l_contact_tbl(tab_row_contact).contact_ip_id :=
33373 l_new_party_tbl(tab_row_party).instance_party_id;
33374 l_contact_found_flag := TRUE;
33375 END IF;
33376 END IF;
33377 END LOOP;
33378 END IF;
33379 -- Check if the contact_ip_id exists
33380 IF ((l_contact_tbl(tab_row_contact).contact_ip_id IS NULL) OR
33381 (l_contact_tbl(tab_row_contact).contact_ip_id
33382 = FND_API.G_MISS_NUM)
33383 OR NOT(l_contact_found_flag) ) THEN
33384 FND_MESSAGE.SET_NAME('CSI','CSI_API_CONTACT_IP_ID_NULL');
33385 FND_MESSAGE.SET_TOKEN('INSTANCE_PARTY_ID',
33386 l_contact_tbl(tab_row_contact).instance_party_id);
33387 FND_MSG_PUB.Add;
33388 RAISE FND_API.G_EXC_ERROR;
33389 END IF;
33390 -- Build other fiels of the contact table
33391 l_contact_tbl(tab_row_contact).instance_party_id := FND_API.G_MISS_NUM;
33392 l_contact_tbl(tab_row_contact).contact_flag := 'Y';
33393 l_contact_tbl(tab_row_contact).INSTANCE_ID := l_new_instance_rec.instance_id;
33394 l_contact_tbl(tab_row_contact).ACTIVE_START_DATE := FND_API.G_MISS_DATE;
33395 l_contact_tbl(tab_row_contact).ACTIVE_END_DATE := FND_API.G_MISS_DATE;
33396 -- Build the temporary party table with only one record
33397 -- for and grab all its accounts
33398 l_contact_input_tbl(1) := l_contact_tbl(tab_row_contact);
33399
33400 -- Create instance party relationship and its accounts
33401 csi_party_relationships_pub.create_inst_party_relationship
33402 ( p_api_version => p_api_version
33403 ,p_commit => p_commit
33404 ,p_init_msg_list => p_init_msg_list
33405 ,p_validation_level => p_validation_level
33406 ,p_party_tbl => l_contact_input_tbl
33407 ,p_party_account_tbl => l_contact_account_tbl
33408 ,p_txn_rec => p_txn_rec
33409 ,p_oks_txn_inst_tbl => px_oks_txn_inst_tbl
33410 ,x_return_status => x_return_status
33411 ,x_msg_count => x_msg_count
33412 ,x_msg_data => x_msg_data
33413 );
33414 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
33415 l_msg_index := 1;
33416 l_msg_count := x_msg_count;
33417 WHILE l_msg_count > 0 LOOP
33418 x_msg_data := FND_MSG_PUB.GET
33419 (l_msg_index,
33420 FND_API.G_FALSE );
33421 csi_gen_utility_pvt.put_line('message data = '||x_msg_data);
33422 l_msg_index := l_msg_index + 1;
33423 l_msg_count := l_msg_count - 1;
33424 END LOOP;
33425 RAISE FND_API.G_EXC_ERROR;
33426 END IF;
33427 -- Grab the new parties created in a new table
33428 l_new_contact_tbl(tab_row_contact) := l_contact_input_tbl(1);
33429 -- Empty the party table
33430 l_contact_input_tbl.DELETE;
33431 -- Empty the account table
33432 l_contact_account_tbl.DELETE;
33433 l_contact_found_flag := FALSE;
33434 END IF;
33435 END LOOP;
33436 END IF;
33437 END IF;
33438 -- Empty the party and contact tables
33439 l_new_contact_tbl.DELETE;
33440 l_new_party_tbl.DELETE;
33441 -- Create asset assignments if requested. Asset assignments have already been fetched before
33442 IF (p_copy_asset_assignments = fnd_api.g_true) THEN
33443 IF l_asset_tbl.COUNT > 0 THEN
33444 FOR tab_row IN l_asset_tbl.FIRST .. l_asset_tbl.LAST
33445 LOOP
33446 IF l_asset_tbl.EXISTS(tab_row) THEN
33447 l_asset_tbl(tab_row).INSTANCE_ID := l_new_instance_rec.instance_id;
33448 l_asset_tbl(tab_row).INSTANCE_ASSET_ID := FND_API.G_MISS_NUM;
33449 l_asset_tbl(tab_row).ACTIVE_START_DATE := FND_API.G_MISS_DATE;
33450 l_asset_tbl(tab_row).ACTIVE_END_DATE := FND_API.G_MISS_DATE;
33451 -- Trap the row in a record and create assets row by row
33452 l_instance_asset_rec := l_asset_tbl(tab_row);
33453 csi_asset_pvt.create_instance_asset
33454 ( p_api_version => p_api_version
33455 ,p_commit => p_commit
33456 ,p_init_msg_list => p_init_msg_list
33457 ,p_validation_level => p_validation_level
33458 ,p_instance_asset_rec => l_instance_asset_rec
33459 ,p_txn_rec => p_txn_rec
33460 ,x_return_status => x_return_status
33461 ,x_msg_count => x_msg_count
33462 ,x_msg_data => x_msg_data
33463 ,p_lookup_tbl => l_asset_lookup_tbl
33464 ,p_asset_count_rec => l_asset_count_rec
33465 ,p_asset_id_tbl => l_asset_id_tbl
33466 ,p_asset_loc_tbl => l_asset_loc_tbl
33467 );
33468 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
33469 l_msg_index := 1;
33470 l_msg_count := x_msg_count;
33471 WHILE l_msg_count > 0 LOOP
33472 x_msg_data := FND_MSG_PUB.GET
33473 (l_msg_index,
33474 FND_API.G_FALSE );
33475 csi_gen_utility_pvt.put_line('message data = '||x_msg_data);
33476 l_msg_index := l_msg_index + 1;
33477 l_msg_count := l_msg_count - 1;
33478 END LOOP;
33479 RAISE FND_API.G_EXC_ERROR;
33480 END IF;
33481 END IF;
33482 END LOOP;
33483 END IF;
33484 END IF;
33485 -- Created extended attributes if requested
33486 IF (p_copy_ext_attribs = fnd_api.g_true) THEN
33487 l_ext_attribs_query_rec.attribute_value_id := FND_API.G_MISS_NUM;
33488 l_ext_attribs_query_rec.instance_id := l_curr_instance_rec.instance_id;
33489 l_ext_attribs_query_rec.attribute_id := FND_API.G_MISS_NUM;
33490 csi_item_instance_pub.get_extended_attrib_values
33491 (p_api_version => p_api_version
33492 ,p_commit => p_commit
33493 ,p_init_msg_list => p_init_msg_list
33494 ,p_validation_level => p_validation_level
33495 ,p_ext_attribs_query_rec => l_ext_attribs_query_rec
33496 ,p_time_stamp => NULL
33497 ,x_ext_attrib_tbl => l_ext_attrib_tbl
33498 ,x_ext_attrib_def_tbl => l_ext_attrib_def_tbl
33499 ,x_return_status => x_return_status
33500 ,x_msg_count => x_msg_count
33501 ,x_msg_data => x_msg_data
33502 );
33503 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
33504 l_msg_index := 1;
33505 l_msg_count := x_msg_count;
33506 WHILE l_msg_count > 0 LOOP
33507 x_msg_data := FND_MSG_PUB.GET
33508 (l_msg_index,
33509 FND_API.G_FALSE );
33510 csi_gen_utility_pvt.put_line('message data = '||x_msg_data);
33511 l_msg_index := l_msg_index + 1;
33512 l_msg_count := l_msg_count - 1;
33513 END LOOP;
33514 RAISE FND_API.G_EXC_ERROR;
33515 END IF;
33516 IF l_ext_attrib_tbl.COUNT > 0 THEN
33517 FOR tab_row IN l_ext_attrib_tbl.FIRST .. l_ext_attrib_tbl.LAST
33518 LOOP
33519 IF l_ext_attrib_tbl.EXISTS(tab_row) THEN
33520 IF NOT(csi_Item_Instance_Vld_pvt.get_ext_attrib_level(l_ext_attrib_tbl(tab_row).attribute_id,
33521 l_attribute_level ))THEN
33522 RAISE FND_API.G_EXC_ERROR;
33523 END IF;
33524 IF (l_attribute_level = 'INSTANCE') THEN
33525 l_ext_attrib_tbl.DELETE (tab_row);
33526 ELSE
33527 l_ext_attrib_tbl(tab_row).INSTANCE_ID := l_new_instance_rec.instance_id;
33528 l_ext_attrib_tbl(tab_row).ATTRIBUTE_VALUE_ID := FND_API.G_MISS_NUM;
33529 l_ext_attrib_tbl(tab_row).ACTIVE_START_DATE := FND_API.G_MISS_DATE;
33530 l_ext_attrib_tbl(tab_row).ACTIVE_END_DATE := FND_API.G_MISS_DATE;
33531 END IF;
33532 END IF;
33533 END LOOP;
33534 -- It is possible that all the extended attributes were set at instance level and thus we have an empty table
33535 IF l_ext_attrib_tbl.COUNT > 0 THEN
33536 csi_item_instance_pub.create_extended_attrib_values
33537 ( p_api_version => p_api_version
33538 ,p_commit => p_commit
33539 ,p_init_msg_list => p_init_msg_list
33540 ,p_validation_level => p_validation_level
33541 ,p_ext_attrib_tbl => l_ext_attrib_tbl
33542 ,p_txn_rec => p_txn_rec
33543 ,x_return_status => x_return_status
33544 ,x_msg_count => x_msg_count
33545 ,x_msg_data => x_msg_data
33546 );
33547 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
33548 l_msg_index := 1;
33549 l_msg_count := x_msg_count;
33550 WHILE l_msg_count > 0 LOOP
33551 x_msg_data := FND_MSG_PUB.GET
33552 (l_msg_index,
33553 FND_API.G_FALSE );
33554 csi_gen_utility_pvt.put_line('message data = '||x_msg_data);
33555 l_msg_index := l_msg_index + 1;
33556 l_msg_count := l_msg_count - 1;
33557 END LOOP;
33558 RAISE FND_API.G_EXC_ERROR;
33559 END IF;
33560 END IF;
33561 END IF;
33562 END IF;
33563 -- Create org assignments if requested
33564 IF (p_copy_org_assignments = fnd_api.g_true) THEN
33565 l_ou_query_rec.instance_ou_id := FND_API.G_MISS_NUM;
33566 l_ou_query_rec.instance_id := l_curr_instance_rec.instance_id;
33567 l_ou_query_rec.operating_unit_id := FND_API.G_MISS_NUM;
33568 l_ou_query_rec.relationship_type_code := FND_API.G_MISS_CHAR;
33569 csi_organization_unit_pub.get_organization_unit
33570 (
33571 p_api_version => p_api_version
33572 ,p_commit => p_commit
33573 ,p_init_msg_list => p_init_msg_list
33574 ,p_validation_level => p_validation_level
33575 ,p_ou_query_rec => l_ou_query_rec
33576 ,p_resolve_id_columns => fnd_api.g_true
33577 ,p_time_stamp => NULL
33578 ,x_org_unit_tbl => l_org_unit_header_tbl
33579 ,x_return_status => x_return_status
33580 ,x_msg_count => x_msg_count
33581 ,x_msg_data => x_msg_data
33582 );
33583 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
33584 l_msg_index := 1;
33585 l_msg_count := x_msg_count;
33586 WHILE l_msg_count > 0 LOOP
33587 x_msg_data := FND_MSG_PUB.GET
33588 (l_msg_index,
33589 FND_API.G_FALSE );
33590 csi_gen_utility_pvt.put_line('message data = '||x_msg_data);
33591 l_msg_index := l_msg_index + 1;
33592 l_msg_count := l_msg_count - 1;
33593 END LOOP;
33594 RAISE FND_API.G_EXC_ERROR;
33595 END IF;
33596 IF l_org_unit_header_tbl.COUNT > 0 THEN /*****First change here 08/25/01 - RK***/
33597 FOR tab_row_party IN l_org_unit_header_tbl.FIRST .. l_org_unit_header_tbl.LAST
33598 LOOP
33599 IF l_org_unit_header_tbl.EXISTS(tab_row_party) THEN
33600 l_org_unit_tbl(tab_row_party).instance_ou_id := l_org_unit_header_tbl(tab_row_party).instance_ou_id;
33601 l_org_unit_tbl(tab_row_party).instance_id := l_org_unit_header_tbl(tab_row_party).instance_id;
33602 l_org_unit_tbl(tab_row_party).operating_unit_id := l_org_unit_header_tbl(tab_row_party).operating_unit_id;
33603 l_org_unit_tbl(tab_row_party).relationship_type_code := l_org_unit_header_tbl(tab_row_party).relationship_type_code;
33604 l_org_unit_tbl(tab_row_party).active_start_date := l_org_unit_header_tbl(tab_row_party).active_start_date;
33605 l_org_unit_tbl(tab_row_party).active_end_date := l_org_unit_header_tbl(tab_row_party).active_end_date;
33606 l_org_unit_tbl(tab_row_party).context := l_org_unit_header_tbl(tab_row_party).context;
33607 l_org_unit_tbl(tab_row_party).attribute1 := l_org_unit_header_tbl(tab_row_party).attribute1;
33608 l_org_unit_tbl(tab_row_party).attribute2 := l_org_unit_header_tbl(tab_row_party).attribute2;
33609 l_org_unit_tbl(tab_row_party).attribute3 := l_org_unit_header_tbl(tab_row_party).attribute3;
33610 l_org_unit_tbl(tab_row_party).attribute4 := l_org_unit_header_tbl(tab_row_party).attribute4;
33611 l_org_unit_tbl(tab_row_party).attribute5 := l_org_unit_header_tbl(tab_row_party).attribute5;
33612 l_org_unit_tbl(tab_row_party).attribute6 := l_org_unit_header_tbl(tab_row_party).attribute6;
33613 l_org_unit_tbl(tab_row_party).attribute7 := l_org_unit_header_tbl(tab_row_party).attribute7;
33614 l_org_unit_tbl(tab_row_party).attribute8 := l_org_unit_header_tbl(tab_row_party).attribute8;
33615 l_org_unit_tbl(tab_row_party).attribute9 := l_org_unit_header_tbl(tab_row_party).attribute9;
33616 l_org_unit_tbl(tab_row_party).attribute10 := l_org_unit_header_tbl(tab_row_party).attribute10;
33617 l_org_unit_tbl(tab_row_party).attribute11 := l_org_unit_header_tbl(tab_row_party).attribute11;
33618 l_org_unit_tbl(tab_row_party).attribute12 := l_org_unit_header_tbl(tab_row_party).attribute12;
33619 l_org_unit_tbl(tab_row_party).attribute13 := l_org_unit_header_tbl(tab_row_party).attribute13;
33620 l_org_unit_tbl(tab_row_party).attribute14 := l_org_unit_header_tbl(tab_row_party).attribute14;
33621 l_org_unit_tbl(tab_row_party).attribute15 := l_org_unit_header_tbl(tab_row_party).attribute15;
33622 l_org_unit_tbl(tab_row_party).object_version_number := l_org_unit_header_tbl(tab_row_party).object_version_number;
33623 END IF;
33624 END LOOP;
33625 END IF; --l_org_unit_header_tbl.COUNT > 0
33626 IF l_org_unit_tbl.COUNT > 0 THEN
33627 FOR tab_row IN l_org_unit_tbl.FIRST .. l_org_unit_tbl.LAST
33628 LOOP
33629 IF l_org_unit_tbl.EXISTS(tab_row) THEN
33630 l_org_unit_tbl(tab_row).INSTANCE_ID := l_new_instance_rec.instance_id;
33631 l_org_unit_tbl(tab_row).INSTANCE_OU_ID := FND_API.G_MISS_NUM;
33632 l_org_unit_tbl(tab_row).ACTIVE_START_DATE := FND_API.G_MISS_DATE;
33633 l_org_unit_tbl(tab_row).ACTIVE_END_DATE := FND_API.G_MISS_DATE;
33634 END IF;
33635 END LOOP;
33636 csi_organization_unit_pub.create_organization_unit
33637 ( p_api_version => p_api_version
33638 ,p_commit => p_commit
33639 ,p_init_msg_list => p_init_msg_list
33640 ,p_validation_level => p_validation_level
33641 ,p_org_unit_tbl => l_org_unit_tbl
33642 ,p_txn_rec => p_txn_rec
33643 ,x_return_status => x_return_status
33644 ,x_msg_count => x_msg_count
33645 ,x_msg_data => x_msg_data
33646 );
33647 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
33648 l_msg_index := 1;
33649 l_msg_count := x_msg_count;
33650 WHILE l_msg_count > 0 LOOP
33651 x_msg_data := FND_MSG_PUB.GET
33652 (l_msg_index,
33653 FND_API.G_FALSE );
33654 csi_gen_utility_pvt.put_line('message data = '||x_msg_data);
33655 l_msg_index := l_msg_index + 1;
33656 l_msg_count := l_msg_count - 1;
33657 END LOOP;
33658 RAISE FND_API.G_EXC_ERROR;
33659 END IF;
33660 END IF;
33661 END IF;
33662 -- Create pricing attributes if requested
33663 IF (p_copy_pricing_attribs = fnd_api.g_true) THEN
33664 l_pricing_attribs_query_rec.pricing_attribute_id := FND_API.G_MISS_NUM;
33665 l_pricing_attribs_query_rec.instance_id := l_curr_instance_rec.instance_id;
33666
33667 csi_pricing_attribs_pub.get_pricing_attribs
33668 ( p_api_version => p_api_version
33669 ,p_commit => p_commit
33670 ,p_init_msg_list => p_init_msg_list
33671 ,p_validation_level => p_validation_level
33672 ,p_pricing_attribs_query_rec => l_pricing_attribs_query_rec
33673 ,p_time_stamp => NULL
33674 ,x_pricing_attribs_tbl => l_pricing_attribs_tbl
33675 ,x_return_status => x_return_status
33676 ,x_msg_count => x_msg_count
33677 ,x_msg_data => x_msg_data
33678 );
33679
33680 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
33681 l_msg_index := 1;
33682 l_msg_count := x_msg_count;
33683 WHILE l_msg_count > 0 LOOP
33684 x_msg_data := FND_MSG_PUB.GET
33685 (l_msg_index,
33686 FND_API.G_FALSE );
33687 csi_gen_utility_pvt.put_line('message data = '||x_msg_data);
33688 l_msg_index := l_msg_index + 1;
33689 l_msg_count := l_msg_count - 1;
33690 END LOOP;
33691 RAISE FND_API.G_EXC_ERROR;
33692 END IF;
33693
33694
33695 IF l_pricing_attribs_tbl.COUNT > 0 THEN
33696 FOR tab_row IN l_pricing_attribs_tbl.FIRST .. l_pricing_attribs_tbl.LAST
33697 LOOP
33698 IF l_pricing_attribs_tbl.EXISTS(tab_row) THEN
33699 l_pricing_attribs_tbl(tab_row).INSTANCE_ID := l_new_instance_rec.instance_id;
33700 l_pricing_attribs_tbl(tab_row).PRICING_ATTRIBUTE_ID := FND_API.G_MISS_NUM;
33701 l_pricing_attribs_tbl(tab_row).ACTIVE_START_DATE := FND_API.G_MISS_DATE;
33702 l_pricing_attribs_tbl(tab_row).ACTIVE_END_DATE := FND_API.G_MISS_DATE;
33703 END IF;
33704 END LOOP;
33705
33706 csi_pricing_attribs_pub.create_pricing_attribs
33707 ( p_api_version => p_api_version
33708 ,p_commit => p_commit
33709 ,p_init_msg_list => p_init_msg_list
33710 ,p_validation_level => p_validation_level
33711 ,p_pricing_attribs_tbl => l_pricing_attribs_tbl
33712 ,p_txn_rec => p_txn_rec
33713 ,x_return_status => x_return_status
33714 ,x_msg_count => x_msg_count
33715 ,x_msg_data => x_msg_data
33716 );
33717
33718 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
33719 l_msg_index := 1;
33720 l_msg_count := x_msg_count;
33721 WHILE l_msg_count > 0 LOOP
33722 x_msg_data := FND_MSG_PUB.GET
33723 (l_msg_index,
33724 FND_API.G_FALSE );
33725 csi_gen_utility_pvt.put_line('message data = '||x_msg_data);
33726 l_msg_index := l_msg_index + 1;
33727 l_msg_count := l_msg_count - 1;
33728 END LOOP;
33729 RAISE FND_API.G_EXC_ERROR;
33730 END IF;
33731 END IF;
33732 END IF;
33733
33734
33735 -- Added by rtalluri for Bug: 2420897 on 08/19/02
33736 -- If version label is null, then we need read the the default value from the profile option
33737 IF (p_source_instance_rec.VERSION_LABEL IS NULL ) OR
33738 (p_source_instance_rec.VERSION_LABEL = FND_API.G_MISS_CHAR) THEN
33739 l_version_label := FND_PROFILE.VALUE('CSI_DEFAULT_VERSION_LABEL');
33740 IF l_version_label IS NULL THEN
33741 FND_MESSAGE.SET_NAME('CSI','CSI_API_INVALID_VERSION_LABEL');
33742 FND_MSG_PUB.ADD;
33743 RAISE FND_API.G_EXC_ERROR;
33744 ELSE
33745 l_new_instance_rec.version_label := l_version_label;
33746 END IF;
33747 ELSE
33748 l_new_instance_rec.VERSION_LABEL := p_source_instance_rec.VERSION_LABEL;
33749 END IF;
33750
33751 --Calling the Create Version Label API to associate a version label for an instance created
33752
33753 l_version_label_rec.instance_id := l_new_instance_rec.instance_id;
33754 l_version_label_rec.version_label := l_new_instance_rec.version_label;
33755 l_version_label_rec.date_time_stamp := SYSDATE;
33756 l_version_label_rec.active_start_date := l_new_instance_rec.active_start_date;
33757 l_version_label_rec.description := l_new_instance_rec.version_label_description;
33758
33759 csi_item_instance_pvt.create_version_label
33760 (
33761 p_api_version => p_api_version
33762 ,p_commit => fnd_api.g_false
33763 ,p_init_msg_list => p_init_msg_list
33764 ,p_validation_level => p_validation_level
33765 ,p_version_label_rec => l_version_label_rec
33766 ,p_txn_rec => p_txn_rec
33767 ,x_return_status => x_return_status
33768 ,x_msg_count => x_msg_count
33769 ,x_msg_data => x_msg_data
33770 );
33771
33772 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
33773 csi_gen_utility_pvt.put_line( ' Error from COPY_ITEM_INSTANCE.CREATE_VERSION_LABEL..');
33774 csi_gen_utility_pvt.put_line('MESSAGE DATA = '||x_msg_data);
33775 FND_MESSAGE.SET_NAME('CSI','CSI_FAILED_TO_CREATE_VERSION');
33776 FND_MESSAGE.SET_TOKEN('API_ERROR','CREATE_VERSION_LABEL');
33777 FND_MSG_PUB.Add;
33778 RAISE FND_API.G_EXC_ERROR;
33779 END IF;
33780 -- End of Addition by rtalluri for Bug: 2420897 on 08/19/02
33781
33782 IF p_call_from_split = fnd_api.g_false
33783 THEN
33784 -- Added by sk for fixing the bug 2234365
33785 IF x_new_instance_tbl(1).instance_id IS NOT NULL AND
33786 x_new_instance_tbl(1).instance_id <> fnd_api.g_miss_num
33787 THEN
33788 -- Added by sk for fixing bug 2245976
33789 IF csi_datastructures_pub.g_install_param_rec.fetch_flag IS NULL THEN
33790 csi_gen_utility_pvt.populate_install_param_rec;
33791 END IF;
33792 --
33793 l_internal_party_id := csi_datastructures_pub.g_install_param_rec.internal_party_id;
33794 --
33795 IF l_internal_party_id IS NULL THEN
33796 FND_MESSAGE.SET_NAME('CSI','CSI_API_UNINSTALLED_PARAMETER');
33797 FND_MSG_PUB.ADD;
33798 RAISE FND_API.G_EXC_ERROR;
33799 END IF;
33800
33801 BEGIN
33802 SELECT cip.party_id
33803 INTO l_party_id
33804 FROM csi_i_parties cip
33805 WHERE cip.instance_id = x_new_instance_tbl(1).instance_id
33806 AND cip.relationship_type_code = 'OWNER';
33807 EXCEPTION
33808 WHEN OTHERS THEN
33809 l_party_id := NULL;
33810 END;
33811
33812 IF l_party_id IS NOT NULL AND
33813 l_internal_party_id IS NOT NULL AND
33814 l_party_id <> l_internal_party_id
33815 THEN
33816 -- End addition by sk for fixing bug 2245976
33817 csi_item_instance_pvt.Call_to_Contracts(
33818 p_transaction_type => 'NEW'
33819 ,p_instance_id => x_new_instance_tbl(1).instance_id
33820 ,p_new_instance_id => NULL
33821 ,p_vld_org_id => x_new_instance_tbl(1).vld_organization_id
33822 ,p_quantity => NULL
33823 ,p_party_account_id1 => NULL
33824 ,p_party_account_id2 => NULL
33825 ,p_transaction_date => p_txn_rec.transaction_date -- For 3483763
33826 ,p_source_transaction_date => p_txn_rec.source_transaction_date -- For 3483763
33827 ,p_oks_txn_inst_tbl => px_oks_txn_inst_tbl
33828 ,x_return_status => x_return_status
33829 ,x_msg_count => x_msg_count
33830 ,x_msg_data => x_msg_data
33831 );
33832
33833 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS)
33834 THEN
33835 l_msg_index := 1;
33836 l_msg_count := x_msg_count;
33837 WHILE l_msg_count > 0 LOOP
33838 x_msg_data := FND_MSG_PUB.GET
33839 ( l_msg_index,
33840 FND_API.G_FALSE
33841 );
33842 csi_gen_utility_pvt.put_line('MESSAGE DATA = '||x_msg_data);
33843 l_msg_index := l_msg_index + 1;
33844 l_msg_count := l_msg_count - 1;
33845 END LOOP;
33846 RAISE FND_API.G_EXC_ERROR;
33847 END IF;
33848 --
33849 IF px_oks_txn_inst_tbl.count > 0 THEN
33850 csi_gen_utility_pvt.dump_oks_txn_inst_tbl(px_oks_txn_inst_tbl);
33851 csi_gen_utility_pvt.put_line('Calling OKS Core API...');
33852 --
33853 IF p_txn_rec.transaction_type_id = 3 THEN
33854 l_batch_id := p_txn_rec.source_header_ref_id;
33855 l_batch_type := p_txn_rec.source_group_ref;
33856 ELSE
33857 l_batch_id := NULL;
33858 l_batch_type := NULL;
33859 END IF;
33860 --
33861 UPDATE CSI_TRANSACTIONS
33862 set contracts_invoked = 'Y'
33863 where transaction_id = p_txn_rec.transaction_id;
33864 --
33865 OKS_IBINT_PUB.IB_interface
33866 (
33867 P_Api_Version => 1.0,
33868 P_init_msg_list => p_init_msg_list,
33869 P_single_txn_date_flag => 'Y',
33870 P_Batch_type => l_batch_type,
33871 P_Batch_ID => l_batch_id,
33872 P_OKS_Txn_Inst_tbl => px_oks_txn_inst_tbl,
33873 x_return_status => x_return_status,
33874 x_msg_count => x_msg_count,
33875 x_msg_data => x_msg_data
33876 );
33877 --
33878 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
33879 l_msg_index := 1;
33880 l_msg_count := x_msg_count;
33881 WHILE l_msg_count > 0 LOOP
33882 x_msg_data := FND_MSG_PUB.GET
33883 ( l_msg_index,
33884 FND_API.G_FALSE );
33885 csi_gen_utility_pvt.put_line( 'Error from OKS_IBINT_PUB.IB_interface..');
33886 csi_gen_utility_pvt.put_line('MESSAGE DATA = '||x_msg_data);
33887 l_msg_index := l_msg_index + 1;
33888 l_msg_count := l_msg_count - 1;
33889 END LOOP;
33890 RAISE FND_API.G_EXC_ERROR;
33891 END IF;
33892 END IF;
33893 END IF;
33894 END IF;
33895 -- End Addition by sk for fixing the bug 2234365
33896 END IF;
33897
33898 -- Copy child instances if desired
33899 IF (p_copy_inst_children = fnd_api.g_true) THEN
33900
33901 p_rel_query_rec.object_id := p_source_instance_rec.instance_id;
33902 p_rel_query_rec.relationship_type_code := 'COMPONENT-OF';
33903 --
33904 IF p_rel_query_rec.object_id IS NOT NULL AND
33905 p_rel_query_rec.object_id <> FND_API.G_MISS_NUM THEN
33906 csi_ii_relationships_pvt.Get_Children
33907 ( p_relationship_query_rec => p_rel_query_rec,
33908 p_rel_tbl => l_rel_tbl,
33909 p_depth => NULL,
33910 p_active_relationship_only => FND_API.G_TRUE,
33911 p_time_stamp => FND_API.G_MISS_DATE,
33912 p_get_dfs => FND_API.G_FALSE,
33913 p_ii_relationship_level_tbl => l_ii_relationship_level_tbl,
33914 x_return_status => x_return_status,
33915 x_msg_count => x_msg_count,
33916 x_msg_data => x_msg_data
33917 );
33918 --
33919 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
33920 FND_MESSAGE.SET_NAME('CSI','CSI_API_GET_CHILDREN_ERROR');
33921 FND_MSG_PUB.Add;
33922 RAISE FND_API.G_EXC_ERROR;
33923 END IF;
33924 END IF;
33925 --
33926 -- FOR inst_config_rec IN inst_children_cur( p_source_instance_rec.instance_id)
33927 IF l_rel_tbl.count > 0 THEN
33928 FOR j in l_rel_tbl.FIRST .. l_rel_tbl.LAST
33929 LOOP
33930 IF NOT(csi_Item_Instance_Vld_pvt.Val_and_get_inst_rec(
33931 l_rel_tbl(j).SUBJECT_ID,
33932 l_source_child_instance_rec)) THEN
33933 RAISE FND_API.G_EXC_ERROR;
33934 END IF;
33935
33936 IF l_source_child_instance_rec.vld_organization_id = l_par_vld_organization_id
33937 THEN
33938 l_source_child_instance_rec.vld_organization_id := l_new_instance_rec.vld_organization_id;
33939 END IF;
33940
33941 -- Added by rtalluri for the Bug: 2297972
33942 IF l_source_child_instance_rec.serial_number IS NOT NULL
33943 THEN
33944 l_source_child_instance_rec.serial_number := NULL;
33945 l_source_child_instance_rec.mfg_serial_number_flag := 'N';
33946 l_source_child_instance_rec.creation_complete_flag := FND_API.G_MISS_CHAR;
33947 END IF;
33948 -- End of Addition by rtalluri for the Bug: 2297972
33949 csi_item_instance_pvt.copy_single_item_instance
33950 ( p_api_version => p_api_version
33951 ,p_commit => fnd_api.g_false
33952 ,p_init_msg_list => p_init_msg_list
33953 ,p_validation_level => p_validation_level
33954 ,p_source_instance_rec => l_source_child_instance_rec
33955 ,p_copy_ext_attribs => p_copy_ext_attribs
33956 ,p_copy_org_assignments => p_copy_org_assignments
33957 ,p_copy_parties => p_copy_parties
33958 ,p_copy_contacts => p_copy_contacts
33959 ,p_copy_accounts => p_copy_accounts
33960 ,p_copy_asset_assignments => p_copy_asset_assignments
33961 ,p_copy_pricing_attribs => p_copy_pricing_attribs
33962 ,p_call_from_split => p_call_from_split
33963 -- ,p_copy_inst_children => fnd_api.g_false
33964 ,p_txn_rec => p_txn_rec
33965 ,x_new_instance_tbl => l_new_child_instance_tbl
33966 ,x_return_status => x_return_status
33967 ,x_msg_count => x_msg_count
33968 ,x_msg_data => x_msg_data
33969 );
33970 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
33971 FOR i in 1..x_msg_Count LOOP
33972 FND_MSG_PUB.Get(p_msg_index => i,
33973 p_encoded => 'F',
33974 p_data => x_msg_data,
33975 p_msg_index_out => x_msg_index_out );
33976 csi_gen_utility_pvt.put_line('message data = '||x_msg_data);
33977 End LOOP;
33978 RAISE fnd_api.g_exc_error;
33979 ELSE
33980 l_map_count := l_map_count + 1;
33981 l_map_inst_tbl(l_map_count).old_instance_id := l_rel_tbl(j).subject_id;
33982 l_map_inst_tbl(l_map_count).new_instance_id := l_new_child_instance_tbl(1).instance_id;
33983 END IF;
33984 END LOOP;
33985
33986 l_new_ii_relationship_tbl.DELETE;
33987 IF l_map_inst_tbl.count > 0
33988 THEN
33989 -- FOR inst_config_rec in inst_children_cur(p_source_instance_rec.instance_id)
33990 FOR j in l_rel_tbl.FIRST .. l_rel_tbl.LAST
33991 LOOP
33992 l_rel_count := l_rel_count + 1;
33993 l_new_ii_relationship_tbl(l_rel_count).relationship_type_code := l_rel_tbl(j).relationship_type_code;
33994 FOR map_row in l_map_inst_tbl.FIRST..l_map_inst_tbl.LAST
33995 LOOP
33996 IF l_rel_tbl(j).subject_id = l_map_inst_tbl(map_row).old_instance_id
33997 THEN
33998 l_new_ii_relationship_tbl(l_rel_count).subject_id := l_map_inst_tbl(map_row).new_instance_id;
33999 EXIT;
34000 END IF;
34001 END LOOP;
34002 --
34003 FOR map_row in l_map_inst_tbl.FIRST..l_map_inst_tbl.LAST
34004 LOOP
34005 IF l_rel_tbl(j).object_id = l_map_inst_tbl(map_row).old_instance_id
34006 THEN
34007 l_new_ii_relationship_tbl(l_rel_count).object_id := l_map_inst_tbl(map_row).new_instance_id;
34008 EXIT;
34009 END IF;
34010 END LOOP;
34011 END LOOP;
34012 END IF;
34013
34014 -- Create the new configuration
34015 IF l_new_ii_relationship_tbl.count > 0
34016 THEN
34017 csi_ii_relationships_pvt.create_relationship
34018 ( p_api_version => p_api_version
34019 ,p_commit => p_commit
34020 ,p_init_msg_list => p_init_msg_list
34021 ,p_validation_level => p_validation_level
34022 ,p_relationship_tbl => l_new_ii_relationship_tbl
34023 ,p_txn_rec => p_txn_rec
34024 ,x_return_status => x_return_status
34025 ,x_msg_count => x_msg_count
34026 ,x_msg_data => x_msg_data
34027 );
34028
34029 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
34030 FOR i in 1..x_msg_Count LOOP
34031 FND_MSG_PUB.Get(p_msg_index => i,
34032 p_encoded => 'F',
34033 p_data => x_msg_data,
34034 p_msg_index_out => x_msg_index_out );
34035 csi_gen_utility_pvt.put_line('message data = '||x_msg_data);
34036 END LOOP;
34037 RAISE fnd_api.g_exc_error;
34038 END IF;
34039 END IF;
34040 END IF; -- l_rel_tbl count check
34041 END IF;
34042
34043 -- Begin Add Code for Siebel Genesis Project
34044 csi_gen_utility_pvt.put_line('Calling Siebel Genesis Event in Copy Item Instance');
34045
34046 IF l_raise_bes_event = 'Y' THEN
34047 BEGIN
34048 SELECT internal_party_id
34049 INTO l_internal_party_id
34050 FROM csi_install_parameters;
34051 EXCEPTION
34052 when no_data_found then
34053 l_internal_party_id := null;
34054 END;
34055
34056 BEGIN
34057 SELECT owner_party_id
34058 INTO l_owner_party_id
34059 FROM csi_item_instances
34060 WHERE instance_id = l_new_instance_rec.instance_id;
34061 EXCEPTION
34062 when no_data_found then
34063 l_owner_party_id := null;
34064 END;
34065
34066 csi_gen_utility_pvt.put_line(' l_internal_party_Id = '||to_char(l_internal_party_id));
34067 csi_gen_utility_pvt.put_line(' l_party_Id = '||to_char(l_owner_party_id));
34068 csi_gen_utility_pvt.put_line(' fnd_api.g_miss_num = '||to_char(fnd_api.g_miss_num));
34069 IF l_internal_party_id <> l_owner_party_id THEN
34070 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
34071 csi_gen_utility_pvt.put_line('Firing the CREATE INSTANCE EVENT ');
34072 CSI_BUSINESS_EVENT_PVT.CREATE_INSTANCE_EVENT
34073 (p_api_version => p_api_version
34074 ,p_commit => fnd_api.g_false
34075 ,p_init_msg_list => p_init_msg_list
34076 ,p_validation_level => p_validation_level
34077 ,p_instance_id => l_new_instance_rec.instance_id
34078 ,p_subject_instance_id => null
34079 ,x_return_status => x_return_status
34080 ,x_msg_count => x_msg_count
34081 ,x_msg_data => x_msg_data
34082 );
34083
34084 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
34085 l_msg_index := 1;
34086 l_msg_count := x_msg_count;
34087
34088 WHILE l_msg_count > 0 LOOP
34089 x_msg_data := FND_MSG_PUB.GET
34090 (l_msg_index,
34091 FND_API.G_FALSE );
34092 csi_gen_utility_pvt.put_line('Error from CSI_BUSINESS_EVENT.CREATE_INSTANCE_EVENT');
34093 csi_gen_utility_pvt.put_line('MESSAGE DATA = '||x_msg_data);
34094 l_msg_index := l_msg_index + 1;
34095 l_msg_count := l_msg_count - 1;
34096 END LOOP;
34097 RAISE FND_API.G_EXC_ERROR;
34098 END IF;
34099 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
34100 csi_gen_utility_pvt.put_line('Before link to line id ');
34101 BEGIN
34102 SELECT link_to_line_id, item_type_code
34103 INTO l_link_to_line_id, l_item_type_code
34104 FROM oe_order_lines_all
34105 WHERE line_id = l_new_instance_rec.last_oe_order_line_id;
34106 EXCEPTION
34107 WHEN OTHERS THEN
34108 l_link_to_line_id := null;
34109 l_item_type_code := null;
34110 END;
34111
34112 IF l_link_to_line_id is null and l_item_type_code = 'STANDARD' THEN
34113 CSI_BUSINESS_EVENT_PVT.CREATE_INSTANCE_EVENT
34114 (p_api_version => p_api_version
34115 ,p_commit => fnd_api.g_false
34116 ,p_init_msg_list => p_init_msg_list
34117 ,p_validation_level => p_validation_level
34118 ,p_instance_id => l_new_instance_rec.instance_id
34119 ,p_subject_instance_id => null
34120 ,x_return_status => x_return_status
34121 ,x_msg_count => x_msg_count
34122 ,x_msg_data => x_msg_data
34123 );
34124
34125 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
34126 l_msg_index := 1;
34127 l_msg_count := x_msg_count;
34128
34129 WHILE l_msg_count > 0 LOOP
34130 x_msg_data := FND_MSG_PUB.GET
34131 (l_msg_index,
34132 FND_API.G_FALSE );
34133 csi_gen_utility_pvt.put_line('Error from CSI_BUSINESS_EVENT.CREATE_INSTANCE_EVENT');
34134 csi_gen_utility_pvt.put_line('MESSAGE DATA = '||x_msg_data);
34135 l_msg_index := l_msg_index + 1;
34136 l_msg_count := l_msg_count - 1;
34137 END LOOP;
34138 RAISE FND_API.G_EXC_ERROR;
34139 END IF;
34140 END IF;
34141 END IF;
34142 END IF;
34143 END IF;
34144 -- End Add Code for Siebel Genesis Project
34145
34146 -- End of API body
34147
34148 -- Standard check of p_commit
34149 IF FND_API.To_Boolean( p_commit ) THEN
34150 COMMIT WORK;
34151 END IF;
34152
34153
34154 -- Standard call to get message count and if count is get message info.
34155 FND_MSG_PUB.Count_And_Get
34156 (p_count => x_msg_count ,
34157 p_data => x_msg_data
34158 );
34159 EXCEPTION
34160
34161 WHEN FND_API.G_EXC_ERROR THEN
34162 ROLLBACK TO copy_item_instance;
34163 x_return_status := FND_API.G_RET_STS_ERROR ;
34164 FND_MSG_PUB.Count_And_Get
34165 ( p_count => x_msg_count,
34166 p_data => x_msg_data
34167 );
34168
34169 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
34170 ROLLBACK TO copy_item_instance;
34171 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
34172 FND_MSG_PUB.Count_And_Get
34173 ( p_count => x_msg_count,
34174 p_data => x_msg_data
34175 );
34176
34177 WHEN OTHERS THEN
34178 ROLLBACK TO copy_item_instance;
34179 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
34180 IF FND_MSG_PUB.Check_Msg_Level
34181 (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
34182 THEN
34183 FND_MSG_PUB.Add_Exc_Msg
34184 ( G_PKG_NAME ,
34185 l_api_name
34186 );
34187 END IF;
34188
34189 FND_MSG_PUB.Count_And_Get
34190 ( p_count => x_msg_count,
34191 p_data => x_msg_data
34192 );
34193
34194 END copy_item_instance;
34195
34196
34197
34198 /*------------------------------------------------------------*/
34199 /* Procedure name: get_version_label_history */
34200 /* Description : Procedure used to get version lables */
34201 /* from history given a transaction_id */
34202 /*------------------------------------------------------------*/
34203
34204 PROCEDURE get_version_label_history
34205 ( p_api_version IN NUMBER
34206 ,p_commit IN VARCHAR2
34207 ,p_init_msg_list IN VARCHAR2
34208 ,p_validation_level IN NUMBER
34209 ,p_transaction_id IN NUMBER
34210 ,x_version_label_hist_tbl OUT NOCOPY csi_datastructures_pub.version_label_history_tbl
34211 ,x_return_status OUT NOCOPY VARCHAR2
34212 ,x_msg_count OUT NOCOPY NUMBER
34213 ,x_msg_data OUT NOCOPY VARCHAR2
34214 )IS
34215
34216 l_api_name CONSTANT VARCHAR2(30) := 'get_version_label_history' ;
34217 l_api_version CONSTANT NUMBER := 1.0 ;
34218 l_csi_debug_level NUMBER ;
34219 x_msg_index_out NUMBER ;
34220 l_count NUMBER := 0 ;
34221 l_flag VARCHAR2(1) :='N' ;
34222 i NUMBER :=1;
34223
34224 CURSOR get_version_label_hist(i_transaction_id NUMBER)
34225 IS
34226 SELECT vlh.VERSION_LABEL_HISTORY_ID,
34227 vlh.VERSION_LABEL_ID,
34228 vlh.TRANSACTION_ID ,
34229 vlh.OLD_VERSION_LABEL,
34230 vlh.NEW_VERSION_LABEL,
34231 vlh.OLD_DESCRIPTION ,
34232 vlh.NEW_DESCRIPTION ,
34233 vlh.OLD_DATE_TIME_STAMP,
34234 vlh.NEW_DATE_TIME_STAMP,
34235 vlh.OLD_ACTIVE_START_DATE,
34236 vlh.NEW_ACTIVE_START_DATE,
34237 vlh.OLD_ACTIVE_END_DATE ,
34238 vlh.NEW_ACTIVE_END_DATE ,
34239 vlh.OLD_CONTEXT ,
34240 vlh.NEW_CONTEXT ,
34241 vlh.OLD_ATTRIBUTE1 ,
34242 vlh.NEW_ATTRIBUTE1 ,
34243 vlh.OLD_ATTRIBUTE2 ,
34244 vlh.NEW_ATTRIBUTE2 ,
34245 vlh.OLD_ATTRIBUTE3 ,
34246 vlh.NEW_ATTRIBUTE3 ,
34247 vlh.OLD_ATTRIBUTE4 ,
34248 vlh.NEW_ATTRIBUTE4 ,
34249 vlh.OLD_ATTRIBUTE5 ,
34250 vlh.NEW_ATTRIBUTE5 ,
34251 vlh.OLD_ATTRIBUTE6 ,
34252 vlh.NEW_ATTRIBUTE6 ,
34253 vlh.OLD_ATTRIBUTE7 ,
34254 vlh.NEW_ATTRIBUTE7 ,
34255 vlh.OLD_ATTRIBUTE8 ,
34256 vlh.NEW_ATTRIBUTE8 ,
34257 vlh.OLD_ATTRIBUTE9 ,
34258 vlh.NEW_ATTRIBUTE9 ,
34259 vlh.OLD_ATTRIBUTE10 ,
34260 vlh.NEW_ATTRIBUTE10 ,
34261 vlh.OLD_ATTRIBUTE11 ,
34262 vlh.NEW_ATTRIBUTE11 ,
34263 vlh.OLD_ATTRIBUTE12 ,
34264 vlh.NEW_ATTRIBUTE12 ,
34265 vlh.OLD_ATTRIBUTE13 ,
34266 vlh.NEW_ATTRIBUTE13 ,
34267 vlh.OLD_ATTRIBUTE14 ,
34268 vlh.NEW_ATTRIBUTE14 ,
34269 vlh.OLD_ATTRIBUTE15 ,
34270 vlh.NEW_ATTRIBUTE15 ,
34271 vlh.FULL_DUMP_FLAG ,
34272 vlh.OBJECT_VERSION_NUMBER,
34273 vl.INSTANCE_ID
34274 FROM csi_i_version_labels_h vlh,
34275 csi_i_version_labels vl
34276 WHERE vlh.transaction_id = i_transaction_id
34277 AND vlh.version_label_id = vl.version_label_id;
34278
34279
34280 BEGIN
34281 -- Standard Start of API savepoint
34282 -- SAVEPOINT get_version_label_history;
34283
34284
34285 -- Standard call to check for call compatibility.
34286 IF NOT FND_API.Compatible_API_Call ( l_api_version ,
34287 p_api_version ,
34288 l_api_name ,
34289 g_pkg_name )
34290 THEN
34291 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
34292 END IF;
34293
34294 -- Initialize message list if p_init_msg_list is set to TRUE.
34295 IF FND_API.to_Boolean( p_init_msg_list ) THEN
34296 FND_MSG_PUB.initialize;
34297 END IF;
34298
34299 -- Initialize API return status to success
34300 x_return_status := FND_API.G_RET_STS_SUCCESS;
34301
34302 -- Check the profile option CSI_DEBUG_LEVEL for debug message reporting
34303 l_csi_debug_level:=fnd_profile.value('CSI_DEBUG_LEVEL');
34304
34305 -- If CSI_DEBUG_LEVEL = 1 then dump the procedure name
34306 IF (l_csi_debug_level > 0) THEN
34307 csi_gen_utility_pvt.put_line( 'get_version_label_history');
34308 END IF;
34309
34310 -- If the debug level = 2 then dump all the parameters values.
34311 IF (l_csi_debug_level > 1) THEN
34312 csi_gen_utility_pvt.put_line( 'get_version_label_history' ||
34313 p_api_version ||'-'||
34314 p_commit ||'-'||
34315 p_init_msg_list ||'-'||
34316 p_validation_level ||'-'||
34317 p_transaction_id );
34318 -- dump the in parameter in the log file
34319
34320 END IF;
34321
34322 /***** srramakr commented for bug # 3304439
34323 -- Check for the profile option and enable trace
34324 l_flag:=csi_gen_utility_pvt.enable_trace(l_trace_flag => l_flag);
34325 -- End enable trace
34326 ****/
34327
34328 -- Start API body
34329
34330 FOR C1 IN get_version_label_hist(p_transaction_id)
34331 LOOP
34332
34333
34334
34335
34336 x_version_label_hist_tbl(i).VERSION_LABEL_HISTORY_ID:= C1.VERSION_LABEL_HISTORY_ID;
34337 x_version_label_hist_tbl(i).VERSION_LABEL_ID := C1.VERSION_LABEL_ID;
34338 x_version_label_hist_tbl(i).TRANSACTION_ID := C1.TRANSACTION_ID;
34339 x_version_label_hist_tbl(i).OLD_VERSION_LABEL := C1.OLD_VERSION_LABEL;
34340 x_version_label_hist_tbl(i).NEW_VERSION_LABEL := C1.NEW_VERSION_LABEL;
34341 x_version_label_hist_tbl(i).OLD_DESCRIPTION := C1.OLD_DESCRIPTION ;
34342 x_version_label_hist_tbl(i).NEW_DESCRIPTION := C1.NEW_DESCRIPTION;
34343 x_version_label_hist_tbl(i).OLD_DATE_TIME_STAMP := C1.OLD_DATE_TIME_STAMP ;
34344 x_version_label_hist_tbl(i).NEW_DATE_TIME_STAMP := C1.NEW_DATE_TIME_STAMP;
34345 x_version_label_hist_tbl(i).OLD_ACTIVE_START_DATE:= C1.OLD_ACTIVE_START_DATE;
34346 x_version_label_hist_tbl(i).NEW_ACTIVE_START_DATE:= C1.NEW_ACTIVE_START_DATE;
34347 x_version_label_hist_tbl(i).OLD_ACTIVE_END_DATE:= C1.OLD_ACTIVE_END_DATE;
34348 x_version_label_hist_tbl(i).NEW_ACTIVE_END_DATE:= C1.NEW_ACTIVE_END_DATE;
34349 x_version_label_hist_tbl(i).OLD_CONTEXT:= C1.OLD_CONTEXT;
34350 x_version_label_hist_tbl(i).NEW_CONTEXT:= C1.NEW_CONTEXT;
34351 x_version_label_hist_tbl(i).OLD_ATTRIBUTE1:= C1.OLD_ATTRIBUTE1;
34352 x_version_label_hist_tbl(i).NEW_ATTRIBUTE1:= C1.NEW_ATTRIBUTE1;
34353 x_version_label_hist_tbl(i).OLD_ATTRIBUTE2:= C1.OLD_ATTRIBUTE2;
34354 x_version_label_hist_tbl(i).NEW_ATTRIBUTE2:= C1.NEW_ATTRIBUTE2;
34355 x_version_label_hist_tbl(i).OLD_ATTRIBUTE3:= C1.OLD_ATTRIBUTE3;
34356 x_version_label_hist_tbl(i).OLD_ATTRIBUTE3:= C1.OLD_ATTRIBUTE3;
34357 x_version_label_hist_tbl(i).OLD_ATTRIBUTE4:= C1.OLD_ATTRIBUTE4;
34358 x_version_label_hist_tbl(i).NEW_ATTRIBUTE4:= C1.NEW_ATTRIBUTE4;
34359 x_version_label_hist_tbl(i).OLD_ATTRIBUTE5:= C1.OLD_ATTRIBUTE5;
34360 x_version_label_hist_tbl(i).NEW_ATTRIBUTE5:= C1.NEW_ATTRIBUTE5;
34361 x_version_label_hist_tbl(i).OLD_ATTRIBUTE6:= C1.OLD_ATTRIBUTE6;
34362 x_version_label_hist_tbl(i).NEW_ATTRIBUTE6:= C1.NEW_ATTRIBUTE6;
34363 x_version_label_hist_tbl(i).OLD_ATTRIBUTE7:= C1.OLD_ATTRIBUTE7;
34364 x_version_label_hist_tbl(i).NEW_ATTRIBUTE7:= C1.NEW_ATTRIBUTE7;
34365 x_version_label_hist_tbl(i).OLD_ATTRIBUTE8:= C1.OLD_ATTRIBUTE8;
34366 x_version_label_hist_tbl(i).NEW_ATTRIBUTE8:= C1.NEW_ATTRIBUTE8;
34367 x_version_label_hist_tbl(i).OLD_ATTRIBUTE9:= C1.OLD_ATTRIBUTE9;
34368 x_version_label_hist_tbl(i).NEW_ATTRIBUTE9:= C1.NEW_ATTRIBUTE9;
34369 x_version_label_hist_tbl(i).OLD_ATTRIBUTE10:= C1.OLD_ATTRIBUTE10;
34370 x_version_label_hist_tbl(i).NEW_ATTRIBUTE10:= C1.NEW_ATTRIBUTE10;
34371 x_version_label_hist_tbl(i).OLD_ATTRIBUTE11:= C1.OLD_ATTRIBUTE11;
34372 x_version_label_hist_tbl(i).NEW_ATTRIBUTE11:= C1.NEW_ATTRIBUTE11;
34373 x_version_label_hist_tbl(i).OLD_ATTRIBUTE12:= C1.OLD_ATTRIBUTE12;
34374 x_version_label_hist_tbl(i).NEW_ATTRIBUTE12:= C1.NEW_ATTRIBUTE12;
34375 x_version_label_hist_tbl(i).OLD_ATTRIBUTE13:= C1.OLD_ATTRIBUTE13;
34376 x_version_label_hist_tbl(i).NEW_ATTRIBUTE13:= C1.NEW_ATTRIBUTE13;
34377 x_version_label_hist_tbl(i).OLD_ATTRIBUTE14:= C1.OLD_ATTRIBUTE14;
34378 x_version_label_hist_tbl(i).NEW_ATTRIBUTE14:= C1.NEW_ATTRIBUTE14;
34379 x_version_label_hist_tbl(i).OLD_ATTRIBUTE15:= C1.OLD_ATTRIBUTE15;
34380 x_version_label_hist_tbl(i).NEW_ATTRIBUTE15:= C1.NEW_ATTRIBUTE15;
34381 x_version_label_hist_tbl(i).FULL_DUMP_FLAG:= C1.FULL_DUMP_FLAG;
34382 x_version_label_hist_tbl(i).OBJECT_VERSION_NUMBER := C1.OBJECT_VERSION_NUMBER;
34383 x_version_label_hist_tbl(i).INSTANCE_ID := C1.INSTANCE_ID;
34384 i := i + 1;
34385
34386 END LOOP;
34387
34388 -- End of API body
34389
34390 -- Standard check of p_commit.
34391 /*
34392 IF FND_API.To_Boolean( p_commit ) THEN
34393 COMMIT WORK;
34394 END IF;
34395 */
34396
34397 /***** srramakr commented for bug # 3304439
34398 -- Check for the profile option and disable the trace
34399 IF (l_flag = 'Y') THEN
34400 dbms_session.set_sql_trace(false);
34401 END IF;
34402 -- End disable trace
34403 ****/
34404
34405 -- Standard call to get message count and if count is get message info.
34406 FND_MSG_PUB.Count_And_Get
34407 (p_count => x_msg_count ,
34408 p_data => x_msg_data );
34409 EXCEPTION
34410 WHEN FND_API.G_EXC_ERROR THEN
34411 -- ROLLBACK TO get_version_label_history;
34412 x_return_status := FND_API.G_RET_STS_ERROR ;
34413 FND_MSG_PUB.Count_And_Get
34414 ( p_count => x_msg_count,
34415 p_data => x_msg_data );
34416 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
34417 -- ROLLBACK TO get_version_label_history;
34418 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
34419 FND_MSG_PUB.Count_And_Get
34420 ( p_count => x_msg_count,
34421 p_data => x_msg_data );
34422 WHEN OTHERS THEN
34423 -- ROLLBACK TO get_version_label_history;
34424 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
34425 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
34426 FND_MSG_PUB.Add_Exc_Msg
34427 ( g_pkg_name ,
34428 l_api_name );
34429 END IF;
34430 FND_MSG_PUB.Count_And_Get
34431 ( p_count => x_msg_count,
34432 p_data => x_msg_data );
34433
34434 END get_version_label_history;
34435
34436 /*----------------------------------------------------*/
34437 /* Procedure name: get_instance_link_locations */
34438 /* Description : procedure to */
34439 /* get an Item Instance */
34440 /*----------------------------------------------------*/
34441
34442 PROCEDURE get_instance_link_locations
34443 (
34444 p_api_version IN NUMBER
34445 ,p_commit IN VARCHAR2
34446 ,p_init_msg_list IN VARCHAR2
34447 ,p_validation_level IN NUMBER
34448 ,p_instance_id IN NUMBER
34449 ,x_instance_link_rec OUT NOCOPY csi_datastructures_pub.instance_link_rec
34450 ,x_return_status OUT NOCOPY VARCHAR2
34451 ,x_msg_count OUT NOCOPY NUMBER
34452 ,x_msg_data OUT NOCOPY VARCHAR2
34453 )IS
34454
34455 l_api_name CONSTANT VARCHAR2(30) := 'GET_INSTANCE_LINK_LOCATIONS';
34456 l_api_version CONSTANT NUMBER := 1.0;
34457 l_debug_level NUMBER;
34458 l_flag VARCHAR2(1) := 'N';
34459 l_instance_header_tbl csi_datastructures_pub.instance_header_tbl;
34460
34461 BEGIN
34462 -- Standard Start of API savepoint
34463 -- SAVEPOINT get_instance_link_locations;
34464
34465 -- Check for freeze_flag in csi_install_parameters is set to 'Y'
34466 csi_utility_grp.check_ib_active;
34467
34468 -- Standard call to check for call compatibility.
34469 IF NOT FND_API.Compatible_API_Call (l_api_version,
34470 p_api_version,
34471 l_api_name,
34472 G_PKG_NAME )
34473 THEN
34474 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
34475 END IF;
34476
34477 -- Initialize message list if p_init_msg_list is set to TRUE.
34478 IF FND_API.to_Boolean( p_init_msg_list ) THEN
34479 FND_MSG_PUB.initialize;
34480 END IF;
34481
34482 -- Initialize API return status to success
34483 x_return_status := FND_API.G_RET_STS_SUCCESS;
34484
34485 -- Check the profile option debug_level for debug message reporting
34486 l_debug_level:=fnd_profile.value('CSI_DEBUG_LEVEL');
34487
34488 -- If debug_level = 1 then dump the procedure name
34489 IF (l_debug_level > 0) THEN
34490 csi_gen_utility_pvt.put_line( 'get_instance_link_locations');
34491 END IF;
34492
34493 -- If the debug level = 2 then dump all the parameters values.
34494 IF (l_debug_level > 1) THEN
34495 csi_gen_utility_pvt.put_line( 'get_instance_link_locations' ||
34496 p_api_version ||'-'||
34497 p_commit ||'-'||
34498 p_init_msg_list ||'-'||
34499 p_validation_level );
34500 -- dump the query records into a log file
34501 csi_gen_utility_pvt.put_line(p_instance_id);
34502 END IF;
34503
34504 /***** srramakr commented for bug # 3304439
34505 -- Check for the profile option and enable trace
34506 l_flag:=CSI_GEN_UTILITY_PVT.enable_trace(l_trace_flag => l_flag);
34507 -- End enable trace
34508 ****/
34509
34510 -- Start API body
34511 IF (p_instance_id IS NULL)
34512 THEN
34513 FND_MESSAGE.Set_Name('CSI', 'CSI_API_INVALID_INSTANCE_ID');
34514 FND_MESSAGE.Set_Token('INSTANCE_ID', p_instance_id);
34515 FND_MSG_PUB.ADD;
34516 RAISE FND_API.G_EXC_ERROR;
34517 END IF;
34518
34519 l_instance_header_tbl(1).instance_id := p_instance_id;
34520
34521 BEGIN
34522 SELECT last_vld_organization_id,
34523 inventory_item_id
34524 INTO l_instance_header_tbl(1).vld_organization_id,
34525 l_instance_header_tbl(1).inventory_item_id
34526 FROM csi_item_instances
34527 WHERE instance_id =l_instance_header_tbl(1).instance_id;
34528 EXCEPTION
34529 WHEN OTHERS THEN
34530 NULL;
34531 END;
34532
34533 csi_item_instance_vld_pvt.get_link_locations
34534 (
34535 p_instance_header_tbl => l_instance_header_tbl,
34536 x_return_status => x_return_status
34537 );
34538 IF NOT x_return_status = FND_API.G_RET_STS_SUCCESS THEN
34539 RAISE FND_API.G_EXC_ERROR;
34540 END IF;
34541
34542 x_instance_link_rec.instance_id := l_instance_header_tbl(1).instance_id;
34543 x_instance_link_rec.start_loc_address1 := l_instance_header_tbl(1).start_loc_address1;
34544 x_instance_link_rec.start_loc_address2 := l_instance_header_tbl(1).start_loc_address2;
34545 x_instance_link_rec.start_loc_address3 := l_instance_header_tbl(1).start_loc_address3;
34546 x_instance_link_rec.start_loc_address4 := l_instance_header_tbl(1).start_loc_address4;
34547 x_instance_link_rec.start_loc_city := l_instance_header_tbl(1).start_loc_city;
34548 x_instance_link_rec.start_loc_state := l_instance_header_tbl(1).start_loc_state;
34549 x_instance_link_rec.start_loc_postal_code := l_instance_header_tbl(1).start_loc_postal_code;
34550 x_instance_link_rec.start_loc_country := l_instance_header_tbl(1).start_loc_country;
34551
34552 x_instance_link_rec.end_loc_address1 := l_instance_header_tbl(1).end_loc_address1;
34553 x_instance_link_rec.end_loc_address2 := l_instance_header_tbl(1).end_loc_address2;
34554 x_instance_link_rec.end_loc_address3 := l_instance_header_tbl(1).end_loc_address3;
34555 x_instance_link_rec.end_loc_address4 := l_instance_header_tbl(1).end_loc_address4;
34556 x_instance_link_rec.end_loc_city := l_instance_header_tbl(1).end_loc_city;
34557 x_instance_link_rec.end_loc_state := l_instance_header_tbl(1).end_loc_state;
34558 x_instance_link_rec.end_loc_postal_code := l_instance_header_tbl(1).end_loc_postal_code;
34559 x_instance_link_rec.end_loc_country := l_instance_header_tbl(1).end_loc_country;
34560
34561 -- End of API body
34562 -- Standard check of p_commit.
34563 /*
34564 IF FND_API.To_Boolean( p_commit ) THEN
34565 COMMIT WORK;
34566 END IF;
34567 */
34568 /***** srramakr commented for bug # 3304439
34569 -- Check for the profile option and disable the trace
34570 IF (l_flag = 'Y') THEN
34571 dbms_session.set_sql_trace(FALSE);
34572 END IF;
34573 -- End disable trace
34574 ****/
34575
34576 -- Standard call to get message count and if count is get message info.
34577 FND_MSG_PUB.Count_And_Get
34578 (p_count => x_msg_count ,
34579 p_data => x_msg_data
34580 );
34581
34582 EXCEPTION
34583
34584 WHEN FND_API.G_EXC_ERROR THEN
34585 -- ROLLBACK TO get_instance_link_locations;
34586 x_return_status := FND_API.G_RET_STS_ERROR ;
34587 FND_MSG_PUB.Count_And_Get
34588 ( p_count => x_msg_count,
34589 p_data => x_msg_data );
34590 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
34591 -- ROLLBACK TO get_instance_link_locations;
34592 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
34593 FND_MSG_PUB.Count_And_Get
34594 ( p_count => x_msg_count,
34595 p_data => x_msg_data );
34596 WHEN OTHERS THEN
34597 -- ROLLBACK TO get_instance_link_locations;
34598 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
34599 IF FND_MSG_PUB.Check_Msg_Level
34600 ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
34601 THEN
34602 FND_MSG_PUB.Add_Exc_Msg
34603 ( G_PKG_NAME, l_api_name );
34604 END IF;
34605 FND_MSG_PUB.Count_And_Get
34606 ( p_count => x_msg_count,
34607 p_data => x_msg_data );
34608
34609 END get_instance_link_locations;
34610
34611 PROCEDURE Update_version_time
34612 (
34613 p_api_version IN NUMBER
34614 ,p_commit IN VARCHAR2
34615 ,p_init_msg_list IN VARCHAR2
34616 ,p_validation_level IN NUMBER
34617 ,p_txn_rec IN OUT NOCOPY csi_datastructures_pub.transaction_rec
34618 ,x_return_status OUT NOCOPY VARCHAR2
34619 ,x_msg_count OUT NOCOPY NUMBER
34620 ,x_msg_data OUT NOCOPY VARCHAR2)
34621 IS
34622 CURSOR c_ver_csr (p_txn_id NUMBER) IS
34623 SELECT cv.version_label_id version_label_id
34624 ,cv.object_version_number object_version_number
34625 ,cv.instance_id instance_id
34626 FROM csi_i_version_labels cv,
34627 csi_i_version_labels_h ch
34628 WHERE cv.version_label_id=ch.version_label_id
34629 AND ch.transaction_id=p_txn_id;
34630 l_sysdate DATE :=SYSDATE;
34631 l_return_status VARCHAR2(1);
34632 l_msg_data VARCHAR2(2000);
34633 l_msg_count NUMBER;
34634 l_msg_index NUMBER;
34635 l_version_label_rec csi_datastructures_pub.version_label_rec;
34636 l_temp_label_rec csi_datastructures_pub.version_label_rec;
34637 BEGIN
34638 SAVEPOINT Update_version_time;
34639
34640 x_return_status := FND_API.G_RET_STS_SUCCESS;
34641
34642 FOR l_ver_csr IN c_ver_csr(p_txn_rec.transaction_id)
34643 LOOP
34644 l_version_label_rec:=l_temp_label_rec;
34645 l_version_label_rec.version_label_id:=l_ver_csr.version_label_id;
34646 l_version_label_rec.date_time_stamp:=l_sysdate;
34647 l_version_label_rec.object_version_number:=l_ver_csr.object_version_number;
34648 csi_item_instance_pvt.update_version_label
34649 ( p_api_version => p_api_version
34650 ,p_commit => p_commit
34651 ,p_init_msg_list => p_init_msg_list
34652 ,p_validation_level => p_validation_level
34653 ,p_version_label_rec => l_version_label_rec
34654 ,p_txn_rec => p_txn_rec
34655 ,p_call_transaction => fnd_api.g_false
34656 ,x_return_status => l_return_status
34657 ,x_msg_count => l_msg_count
34658 ,x_msg_data => l_msg_data);
34659
34660 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
34661 l_msg_index := 1;
34662 l_msg_count := x_msg_count;
34663 WHILE l_msg_count > 0 LOOP
34664 x_msg_data := FND_MSG_PUB.GET
34665 ( l_msg_index,
34666 FND_API.G_FALSE );
34667 csi_gen_utility_pvt.put_line( ' Error from update_version_label..');
34668 csi_gen_utility_pvt.put_line('MESSAGE DATA = '||x_msg_data);
34669 l_msg_index := l_msg_index + 1;
34670 l_msg_count := l_msg_count - 1;
34671 END LOOP;
34672 RAISE FND_API.G_EXC_ERROR;
34673 END IF;
34674 END LOOP;
34675 EXCEPTION
34676 WHEN NO_DATA_FOUND THEN
34677 NULL;
34678 WHEN FND_API.G_EXC_ERROR THEN
34679 ROLLBACK TO Update_version_time;
34680 x_return_status := FND_API.G_RET_STS_ERROR ;
34681 FND_MSG_PUB.Count_And_Get
34682 ( p_count => x_msg_count,
34683 p_data => x_msg_data );
34684 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
34685 ROLLBACK TO Update_version_time;
34686 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
34687 FND_MSG_PUB.Count_And_Get
34688 ( p_count => x_msg_count,
34689 p_data => x_msg_data );
34690 END Update_version_time;
34691
34692 PROCEDURE get_config_keys
34693 (p_instance_id IN NUMBER,
34694 p_config_rec OUT NOCOPY csi_item_instance_pvt.lock_config_rec
34695 )
34696 IS
34697 BEGIN
34698 SELECT config_inst_hdr_id
34699 ,config_inst_rev_num
34700 ,config_inst_item_id
34701 INTO p_config_rec.config_inst_hdr_id
34702 ,p_config_rec.config_inst_rev_num
34703 ,p_config_rec.config_inst_item_id
34704 FROM csi_item_instances
34705 WHERE instance_id=p_instance_id;
34706 EXCEPTION
34707 WHEN NO_DATA_FOUND THEN
34708 NULL;
34709 END get_config_keys;
34710
34711 PROCEDURE get_instance_lock_status
34712 ( p_instance_id IN NUMBER ,
34713 p_lock_status OUT NOCOPY NUMBER
34714 ) IS
34715 l_lock_status NUMBER :=0;
34716 BEGIN
34717 SELECT lock_status
34718 INTO p_lock_status
34719 FROM csi_item_instance_locks
34720 WHERE lock_status <> l_lock_status
34721 AND instance_id=p_instance_id;
34722 EXCEPTION
34723 WHEN NO_DATA_FOUND THEN
34724 p_lock_status := l_lock_status;
34725 WHEN TOO_MANY_ROWS THEN
34726 csi_gen_utility_pvt.put_line ('In csi_item_instance_pvt.get_instance_lock_status - too_many_rows exception ');
34727 p_lock_status := 2;
34728 END get_instance_lock_status;
34729
34730 -- Return TRUE if instance is locked
34731 FUNCTION check_item_instance_lock
34732 ( p_instance_id IN NUMBER ,
34733 p_config_inst_hdr_id IN NUMBER ,
34734 p_config_inst_item_id IN NUMBER ,
34735 p_config_inst_rev_num IN NUMBER
34736 ) RETURN BOOLEAN IS
34737 l_return_value BOOLEAN := FALSE;
34738 l_lock_id NUMBER;
34739 l_lock_status NUMBER :=0;
34740 BEGIN
34741 IF p_instance_id IS NOT NULL AND
34742 p_instance_id <> fnd_api.g_miss_num
34743 THEN
34744 BEGIN
34745 SELECT lock_id
34746 INTO l_lock_id
34747 FROM csi_item_instance_locks
34748 WHERE lock_status IS NOT NULL
34749 AND lock_status <> l_lock_status
34750 AND instance_id=p_instance_id;
34751 l_return_value := TRUE;
34752 EXCEPTION
34753 WHEN NO_DATA_FOUND THEN
34754 l_return_value := FALSE;
34755 WHEN TOO_MANY_ROWS THEN
34756 l_return_value := TRUE;
34757 END;
34758 ELSIF (p_config_inst_hdr_id IS NOT NULL AND
34759 p_config_inst_hdr_id <> fnd_api.g_miss_num AND
34760 p_config_inst_item_id IS NOT NULL AND
34761 p_config_inst_item_id <> fnd_api.g_miss_num AND
34762 p_config_inst_rev_num IS NOT NULL AND
34763 p_config_inst_rev_num <> fnd_api.g_miss_num )
34764 THEN
34765 BEGIN
34766 SELECT lock_id
34767 INTO l_lock_id
34768 FROM csi_item_instance_locks
34769 WHERE lock_status IS NOT NULL
34770 AND lock_status <> l_lock_status
34771 AND config_inst_hdr_id = p_config_inst_hdr_id
34772 AND config_inst_rev_num = p_config_inst_rev_num
34773 AND config_inst_item_id = p_config_inst_item_id;
34774 l_return_value := TRUE;
34775 EXCEPTION
34776 WHEN NO_DATA_FOUND THEN
34777 l_return_value := FALSE;
34778 WHEN TOO_MANY_ROWS THEN
34779 l_return_value := TRUE;
34780 END;
34781 END IF;
34782 RETURN l_return_value;
34783 END check_item_instance_lock;
34784
34785
34786 PROCEDURE lock_item_instances
34787 (
34788 p_api_version IN NUMBER
34789 ,p_commit IN VARCHAR2
34790 ,p_init_msg_list IN VARCHAR2
34791 ,p_validation_level IN NUMBER
34792 ,px_config_tbl IN OUT NOCOPY csi_cz_int.config_tbl
34793 -- ,p_txn_rec IN OUT NOCOPY csi_datastructures_pub.transaction_rec
34794 ,x_return_status OUT NOCOPY VARCHAR2
34795 ,x_msg_count OUT NOCOPY NUMBER
34796 ,x_msg_data OUT NOCOPY VARCHAR2
34797 )
34798 AS
34799 l_api_name CONSTANT VARCHAR2(30) := 'LOCK_ITEM_INSTANCES';
34800 l_api_version CONSTANT NUMBER := 1.0;
34801 l_csi_debug_level NUMBER;
34802 l_rel_type_code VARCHAR2(30) := 'COMPONENT-OF';
34803 l_root_node NUMBER;
34804 l_config_tbl csi_cz_int.config_tbl := px_config_tbl;
34805 l_count NUMBER;
34806 l_rel_tbl csi_datastructures_pub.ii_relationship_tbl;
34807 l_ii_relationship_level_tbl csi_ii_relationships_pvt.ii_relationship_level_tbl;
34808 l_rel_query_rec csi_datastructures_pub.relationship_query_rec;
34809 l_lock_tbl CSI_ITEM_INSTANCE_PVT.lock_instances_tbl; --csi_cz_int.config_tbl;
34810 l_root NUMBER:=0;
34811 l_found VARCHAR2(1):='N';
34812 l_root_hdr_id NUMBER;
34813 l_root_item_id NUMBER;
34814 l_root_rev_num NUMBER;
34815 l_lock_config_rec csi_item_instance_pvt.lock_config_rec;
34816 l_lock_count NUMBER;
34817 l_lock_id NUMBER;
34818 l_dup_count NUMBER;
34819 BEGIN
34820
34821 SAVEPOINT csi_lock_item_instance;
34822
34823
34824 -- Check for freeze_flag in csi_install_parameters is set to 'Y'
34825
34826 csi_utility_grp.check_ib_active;
34827
34828 -- Standard call to check for call compatibility.
34829 IF NOT FND_API.Compatible_API_Call ( l_api_version ,
34830 p_api_version ,
34831 l_api_name ,
34832 g_pkg_name )
34833 THEN
34834 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
34835 END IF;
34836
34837 -- Initialize message list if p_init_msg_list is set to TRUE.
34838 IF FND_API.to_Boolean( p_init_msg_list ) THEN
34839 FND_MSG_PUB.initialize;
34840 END IF;
34841
34842 -- Initialize API return status to success
34843 x_return_status := FND_API.G_RET_STS_SUCCESS;
34844
34845 -- Check the profile option CSI_DEBUG_LEVEL for debug message reporting
34846 l_csi_debug_level:=fnd_profile.value('CSI_DEBUG_LEVEL');
34847
34848 -- If CSI_DEBUG_LEVEL = 1 then dump the procedure name
34849 IF (l_csi_debug_level > 0) THEN
34850 csi_gen_utility_pvt.put_line( 'lock_item_instances');
34851 END IF;
34852
34853
34854 -- If the debug level = 2 then dump all the parameters values.
34855 IF (l_csi_debug_level > 1) THEN
34856 csi_gen_utility_pvt.put_line( 'lock_item_instances'||
34857 p_api_version ||'-'||
34858 p_commit ||'-'||
34859 p_init_msg_list ||'-'||
34860 p_validation_level );
34861 -- Dump the records in the log file
34862 IF px_config_tbl.COUNT > 0
34863 THEN
34864 FOR tab_row IN px_config_tbl.FIRST .. px_config_tbl.LAST
34865 LOOP
34866 csi_gen_utility_pvt.put_line(' ');
34867 csi_gen_utility_pvt.put_line('Dumping the values for config tbl Rec # :'||tab_row);
34868 csi_gen_utility_pvt.put_line('source_application_id :'||px_config_tbl(tab_row).source_application_id);
34869 csi_gen_utility_pvt.put_line('source_txn_header_ref :'||px_config_tbl(tab_row).source_txn_header_ref);
34870 csi_gen_utility_pvt.put_line('source_txn_line_ref1 :'||px_config_tbl(tab_row).source_txn_line_ref1);
34871 csi_gen_utility_pvt.put_line('source_txn_line_ref2 :'||px_config_tbl(tab_row).source_txn_line_ref2);
34872 csi_gen_utility_pvt.put_line('source_txn_line_ref3 :'||px_config_tbl(tab_row).source_txn_line_ref3);
34873 csi_gen_utility_pvt.put_line('instance_id :'||px_config_tbl(tab_row).instance_id);
34874 csi_gen_utility_pvt.put_line('lock_id :'||px_config_tbl(tab_row).lock_id);
34875 csi_gen_utility_pvt.put_line('config_inst_hdr_id :'||px_config_tbl(tab_row).config_inst_hdr_id);
34876 csi_gen_utility_pvt.put_line('config_inst_item_id :'||px_config_tbl(tab_row).config_inst_item_id);
34877 csi_gen_utility_pvt.put_line('config_inst_rev_num :'||px_config_tbl(tab_row).config_inst_rev_num);
34878 csi_gen_utility_pvt.put_line('lock_status :'||px_config_tbl(tab_row).lock_status);
34879 END LOOP;
34880 END IF;
34881 --csi_gen_utility_pvt.dump_txn_rec(p_txn_rec);
34882 END IF;
34883
34884 l_lock_tbl.DELETE;
34885
34886 IF px_config_tbl.count > 0
34887 THEN
34888 FOR i IN px_config_tbl.FIRST .. px_config_tbl.LAST
34889 LOOP
34890 IF px_config_tbl.EXISTS(i)
34891 THEN
34892 IF (px_config_tbl(i).instance_id IS NOT NULL AND
34893 px_config_tbl(i).instance_id <> fnd_api.g_miss_num) OR
34894 (px_config_tbl(i).config_inst_hdr_id IS NOT NULL AND
34895 px_config_tbl(i).config_inst_hdr_id <> fnd_api.g_miss_num AND
34896 px_config_tbl(i).config_inst_item_id IS NOT NULL AND
34897 px_config_tbl(i).config_inst_item_id <> fnd_api.g_miss_num AND
34898 px_config_tbl(i).config_inst_rev_num IS NOT NULL AND
34899 px_config_tbl(i).config_inst_rev_num <> fnd_api.g_miss_num )
34900 THEN
34901
34902 -- Check for duplicate instances
34903 IF (px_config_tbl(i).instance_id IS NOT NULL AND
34904 px_config_tbl(i).instance_id <> fnd_api.g_miss_num)
34905 THEN
34906 l_dup_count:=0;
34907 FOR dup_csr IN px_config_tbl.FIRST .. px_config_tbl.LAST
34908 LOOP
34909 IF (px_config_tbl(dup_csr).instance_id IS NOT NULL AND
34910 px_config_tbl(dup_csr).instance_id <> fnd_api.g_miss_num AND
34911 px_config_tbl(dup_csr).instance_id = px_config_tbl(i).instance_id)
34912 THEN
34913 l_dup_count := l_dup_count +1;
34914 END IF;
34915 END LOOP;
34916
34917 IF l_dup_count > 1
34918 THEN
34919 FND_MESSAGE.SET_NAME('CSI','CSI_DUPLICATE_INS_KEY');
34920 FND_MESSAGE.SET_TOKEN('INSTANCE_ID',px_config_tbl(i).instance_id);
34921 FND_MSG_PUB.Add;
34922 RAISE FND_API.G_EXC_ERROR;
34923 END IF;
34924 END IF;
34925
34926 -- Check for duplicate config keys
34927 IF (px_config_tbl(i).config_inst_hdr_id IS NOT NULL AND
34928 px_config_tbl(i).config_inst_hdr_id <> fnd_api.g_miss_num AND
34929 px_config_tbl(i).config_inst_item_id IS NOT NULL AND
34930 px_config_tbl(i).config_inst_item_id <> fnd_api.g_miss_num AND
34931 px_config_tbl(i).config_inst_rev_num IS NOT NULL AND
34932 px_config_tbl(i).config_inst_rev_num <> fnd_api.g_miss_num )
34933 THEN
34934 l_dup_count:=0;
34935 FOR dup_csr IN px_config_tbl.FIRST .. px_config_tbl.LAST
34936 LOOP
34937 IF (px_config_tbl(dup_csr).config_inst_hdr_id IS NOT NULL AND
34938 px_config_tbl(dup_csr).config_inst_hdr_id <> fnd_api.g_miss_num AND
34939 px_config_tbl(dup_csr).config_inst_hdr_id =px_config_tbl(i).config_inst_hdr_id) AND
34940 (px_config_tbl(dup_csr).config_inst_item_id IS NOT NULL AND
34941 px_config_tbl(dup_csr).config_inst_item_id <> fnd_api.g_miss_num AND
34942 px_config_tbl(dup_csr).config_inst_item_id=px_config_tbl(i).config_inst_item_id) AND
34943 (px_config_tbl(dup_csr).config_inst_rev_num IS NOT NULL AND
34944 px_config_tbl(dup_csr).config_inst_rev_num <> fnd_api.g_miss_num AND
34945 px_config_tbl(dup_csr).config_inst_rev_num=px_config_tbl(i).config_inst_rev_num)
34946 THEN
34947 l_dup_count := l_dup_count +1;
34948 END IF;
34949 END LOOP;
34950
34951 IF l_dup_count > 1
34952 THEN
34953 FND_MESSAGE.SET_NAME('CSI','CSI_DUPLICATE_KEYS_LOCKED');
34954 FND_MESSAGE.SET_TOKEN('CONFIG_INST_HDR_ID',px_config_tbl(i).config_inst_hdr_id);
34955 FND_MESSAGE.SET_TOKEN('CONFIG_INST_ITEM_ID',px_config_tbl(i).config_inst_item_id);
34956 FND_MESSAGE.SET_TOKEN('CONFIG_INST_REV_NUM',px_config_tbl(i).config_inst_rev_num);
34957 FND_MSG_PUB.Add;
34958 RAISE FND_API.G_EXC_ERROR;
34959 END IF;
34960 END IF;
34961
34962
34963 IF (px_config_tbl(i).instance_id IS NOT NULL AND
34964 px_config_tbl(i).instance_id <> fnd_api.g_miss_num)
34965 THEN
34966 IF csi_item_instance_pvt.check_item_instance_lock (p_instance_id => px_config_tbl(i).instance_id)
34967 THEN
34968 FND_MESSAGE.SET_NAME('CSI','CSI_INS_ALREADY_LOCKED');
34969 FND_MESSAGE.SET_TOKEN('INSTANCE_ID',px_config_tbl(i).instance_id);
34970 FND_MSG_PUB.Add;
34971 RAISE FND_API.G_EXC_ERROR;
34972 ELSE
34973 l_found:='N';
34974 IF l_lock_tbl.COUNT > 0
34975 THEN
34976 FOR j IN l_lock_tbl.FIRST .. l_lock_tbl.LAST
34977 LOOP
34978 IF (l_lock_tbl(j).instance_id IS NOT NULL AND
34979 l_lock_tbl(j).instance_id <> fnd_api.g_miss_num) AND
34980 l_lock_tbl(j).instance_id=px_config_tbl(i).instance_id
34981 THEN
34982 l_found:='Y';
34983 END IF;
34984 END LOOP;
34985 END IF;
34986
34987 IF l_found='N'
34988 THEN
34989
34990 csi_ii_relationships_pvt.get_top_most_parent
34991 ( p_subject_id => px_config_tbl(i).instance_id,
34992 p_rel_type_code => l_rel_type_code,
34993 p_object_id => l_root_node
34994 );
34995
34996
34997 l_rel_query_rec.object_id := l_root_node;
34998 l_rel_query_rec.relationship_type_code := l_rel_type_code;
34999
35000 csi_ii_relationships_pvt.get_children
35001 ( p_relationship_query_rec => l_rel_query_rec,
35002 p_rel_tbl => l_rel_tbl,
35003 p_depth => NULL,
35004 p_active_relationship_only => FND_API.G_TRUE,
35005 p_config_only => FND_API.G_TRUE,
35006 p_time_stamp => FND_API.G_MISS_DATE,
35007 p_get_dfs => FND_API.G_FALSE,
35008 p_ii_relationship_level_tbl => l_ii_relationship_level_tbl,
35009 x_return_status => x_return_status,
35010 x_msg_count => x_msg_count,
35011 x_msg_data => x_msg_data
35012 );
35013
35014
35015 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
35016 FND_MESSAGE.SET_NAME('CSI','CSI_API_GET_CHILDREN_ERROR');
35017 FND_MSG_PUB.Add;
35018 RAISE FND_API.G_EXC_ERROR;
35019 END IF;
35020 l_lock_count:=l_lock_tbl.COUNT+1;
35021 l_lock_tbl(l_lock_count).instance_id:=l_root_node;
35022 l_lock_tbl(l_lock_count).root_instance_id:=l_root_node;
35023 l_root_hdr_id := null;
35024 l_root_item_id:= null;
35025 l_root_rev_num:= null;
35026 FOR l_root_config IN px_config_tbl.FIRST .. px_config_tbl.LAST
35027 LOOP
35028 IF px_config_tbl(l_root_config).instance_id=l_root_node
35029 THEN
35030 l_lock_tbl(l_lock_count).root_config_inst_hdr_id := px_config_tbl(l_root_config).config_inst_hdr_id;
35031 l_lock_tbl(l_lock_count).root_config_inst_item_id:= px_config_tbl(l_root_config).config_inst_item_id;
35032 l_lock_tbl(l_lock_count).root_config_inst_rev_num:= px_config_tbl(l_root_config).config_inst_rev_num;
35033 l_root_hdr_id := px_config_tbl(l_root_config).config_inst_hdr_id;
35034 l_root_item_id:= px_config_tbl(l_root_config).config_inst_item_id;
35035 l_root_rev_num:= px_config_tbl(l_root_config).config_inst_rev_num;
35036 EXIT;
35037 END IF;
35038 END LOOP;
35039
35040 IF l_rel_tbl.COUNT>0
35041 THEN
35042 FOR l_chld_csr IN l_rel_tbl.FIRST .. l_rel_tbl.LAST
35043 LOOP
35044 l_lock_count:=l_lock_tbl.COUNT+1;
35045 l_lock_tbl(l_lock_count).instance_id:=l_rel_tbl(l_chld_csr).subject_id;
35046 IF csi_item_instance_pvt.check_item_instance_lock (p_instance_id => l_rel_tbl(l_chld_csr).subject_id)
35047 THEN
35048 FND_MESSAGE.SET_NAME('CSI','CSI_INS_ALREADY_LOCKED');
35049 FND_MESSAGE.SET_TOKEN('INSTANCE_ID',l_lock_tbl(l_lock_count).instance_id);
35050 FND_MSG_PUB.Add;
35051 RAISE FND_API.G_EXC_ERROR;
35052 END IF;
35053 l_lock_tbl(l_lock_count).root_instance_id:=l_root_node;
35054 l_lock_tbl(l_lock_count).root_config_inst_hdr_id := l_root_hdr_id;
35055 l_lock_tbl(l_lock_count).root_config_inst_item_id:= l_root_item_id;
35056 l_lock_tbl(l_lock_count).root_config_inst_rev_num:= l_root_rev_num;
35057 END LOOP;
35058 END IF;
35059 END IF;
35060 END IF;
35061 ELSIF (px_config_tbl(i).config_inst_hdr_id IS NOT NULL AND
35062 px_config_tbl(i).config_inst_hdr_id <> fnd_api.g_miss_num AND
35063 px_config_tbl(i).config_inst_item_id IS NOT NULL AND
35064 px_config_tbl(i).config_inst_item_id <> fnd_api.g_miss_num AND
35065 px_config_tbl(i).config_inst_rev_num IS NOT NULL AND
35066 px_config_tbl(i).config_inst_rev_num <> fnd_api.g_miss_num )
35067 THEN
35068 IF csi_item_instance_pvt.check_item_instance_lock ( p_config_inst_hdr_id => px_config_tbl(i).config_inst_hdr_id
35069 ,p_config_inst_item_id => px_config_tbl(i).config_inst_item_id
35070 ,p_config_inst_rev_num => px_config_tbl(i).config_inst_rev_num
35071 )
35072 THEN
35073 FND_MESSAGE.SET_NAME('CSI','CSI_CONFIG_KEYS_LOCKED');
35074 FND_MESSAGE.SET_TOKEN('CONFIG_INST_HDR_ID',px_config_tbl(i).config_inst_hdr_id);
35075 FND_MESSAGE.SET_TOKEN('CONFIG_INST_ITEM_ID',px_config_tbl(i).config_inst_item_id);
35076 FND_MESSAGE.SET_TOKEN('CONFIG_INST_REV_NUM',px_config_tbl(i).config_inst_rev_num);
35077 FND_MSG_PUB.Add;
35078 RAISE FND_API.G_EXC_ERROR;
35079 ELSE
35080 l_lock_count:=l_lock_tbl.COUNT+1;
35081 l_lock_tbl(l_lock_count).config_inst_hdr_id :=px_config_tbl(i).config_inst_hdr_id;
35082 l_lock_tbl(l_lock_count).config_inst_item_id :=px_config_tbl(i).config_inst_item_id;
35083 l_lock_tbl(l_lock_count).config_inst_rev_num :=px_config_tbl(i).config_inst_rev_num;
35084 l_lock_tbl(l_lock_count).source_application_id :=px_config_tbl(i).source_application_id;
35085 l_lock_tbl(l_lock_count).source_txn_header_ref :=px_config_tbl(i).source_txn_header_ref;
35086
35087 BEGIN
35088 SELECT instance_hdr_id -- root_config_hdr_id
35089 ,config_item_id -- root_config_item_id
35090 ,instance_rev_nbr -- root_config_rev_nbr
35091 INTO l_lock_tbl(l_lock_count).root_config_inst_hdr_id
35092 ,l_lock_tbl(l_lock_count).root_config_inst_item_id
35093 ,l_lock_tbl(l_lock_count).root_config_inst_rev_num
35094 FROM cz_config_items czItems
35095 WHERE czItems.instance_hdr_id = px_config_tbl(i).config_inst_hdr_id
35096 AND czItems.instance_rev_nbr = px_config_tbl(i).config_inst_rev_num
35097 AND czItems.component_instance_type = 'I' -- I = Root instance
35098 AND czItems.deleted_flag = '0';
35099 EXCEPTION
35100 WHEN OTHERS THEN
35101 NULL;
35102 END;
35103
35104 --l_lock_tbl(l_lock_count).root_config_inst_hdr_id := px_config_tbl(i).config_inst_hdr_id;
35105 --l_lock_tbl(l_lock_count).root_config_inst_item_id:= px_config_tbl(i).config_inst_item_id;
35106 --l_lock_tbl(l_lock_count).root_config_inst_rev_num:= px_config_tbl(i).config_inst_rev_num;
35107 l_lock_tbl(l_lock_count).lock_status:=2;
35108 px_config_tbl(i).lock_status:=2;
35109 END IF;
35110 END IF;
35111 ELSE
35112 FND_MESSAGE.SET_NAME('CSI','CSI_PASSED_INVALID_KEYS');
35113 FND_MSG_PUB.Add;
35114 RAISE FND_API.G_EXC_ERROR;
35115 END IF;
35116
35117 END IF;
35118 END LOOP;
35119 END IF;
35120
35121 IF l_lock_tbl.COUNT > 0
35122 THEN
35123 FOR root IN l_lock_tbl.FIRST .. l_lock_tbl.LAST
35124 LOOP
35125 IF l_lock_tbl.EXISTS(root)
35126 THEN
35127 IF (l_lock_tbl(root).root_config_inst_hdr_id IS NOT NULL AND
35128 l_lock_tbl(root).root_config_inst_hdr_id <> fnd_api.g_miss_num AND
35129 l_lock_tbl(root).root_config_inst_item_id IS NOT NULL AND
35130 l_lock_tbl(root).root_config_inst_item_id <> fnd_api.g_miss_num AND
35131 l_lock_tbl(root).root_config_inst_rev_num IS NOT NULL AND
35132 l_lock_tbl(root).root_config_inst_rev_num <> fnd_api.g_miss_num ) AND
35133 (l_lock_tbl(root).instance_id IS NULL OR
35134 l_lock_tbl(root).instance_id = fnd_api.g_miss_num)
35135 THEN
35136 FOR chd IN l_lock_tbl.FIRST .. l_lock_tbl.LAST
35137 LOOP
35138 IF ( (l_lock_tbl(chd).root_config_inst_hdr_id IS NULL OR
35139 l_lock_tbl(chd).root_config_inst_hdr_id = fnd_api.g_miss_num) AND
35140 (l_lock_tbl(chd).root_config_inst_item_id IS NULL OR
35141 l_lock_tbl(chd).root_config_inst_item_id = fnd_api.g_miss_num) AND
35142 (l_lock_tbl(chd).root_config_inst_rev_num IS NULL OR
35143 l_lock_tbl(chd).root_config_inst_rev_num = fnd_api.g_miss_num)) AND
35144 ( l_lock_tbl(chd).instance_id IS NULL OR
35145 l_lock_tbl(chd).instance_id = fnd_api.g_miss_num) AND
35146 ( l_lock_tbl(chd).config_inst_hdr_id = l_lock_tbl(root).config_inst_hdr_id AND
35147 l_lock_tbl(chd).config_inst_rev_num = l_lock_tbl(root).config_inst_rev_num )
35148 THEN
35149 l_lock_tbl(chd).root_config_inst_hdr_id := l_lock_tbl(root).root_config_inst_hdr_id;
35150 l_lock_tbl(chd).root_config_inst_item_id := l_lock_tbl(root).root_config_inst_item_id;
35151 l_lock_tbl(chd).root_config_inst_rev_num := l_lock_tbl(root).root_config_inst_rev_num;
35152 END IF;
35153 END LOOP;
35154 END IF;
35155 END IF;
35156 END LOOP;
35157 END IF;
35158
35159
35160
35161 SELECT csi_item_instance_locks_s.NEXTVAL
35162 INTO l_lock_id
35163 FROM SYS.dual;
35164
35165 IF px_config_tbl.COUNT > 0
35166 THEN
35167 FOR i IN px_config_tbl.FIRST .. px_config_tbl.LAST
35168 LOOP
35169 IF px_config_tbl.EXISTS(i)
35170 THEN
35171 px_config_tbl(i).lock_id:=l_lock_id;
35172 END IF;
35173 END LOOP;
35174 END IF;
35175
35176
35177 IF l_lock_tbl.COUNT > 0 AND
35178 px_config_tbl.COUNT>0
35179 THEN
35180 FOR l_lock IN 1..l_lock_tbl.COUNT
35181 LOOP
35182 IF l_lock_tbl.EXISTS(l_lock)
35183 THEN
35184 FOR l_config IN px_config_tbl.FIRST .. px_config_tbl.LAST
35185 LOOP
35186 IF px_config_tbl.EXISTS(l_config)
35187 THEN
35188 IF l_lock_tbl(l_lock).instance_id=px_config_tbl(l_config).instance_id AND
35189 (l_lock_tbl(l_lock).instance_id IS NOT NULL AND
35190 l_lock_tbl(l_lock).instance_id <> fnd_api.g_miss_num) AND
35191 (px_config_tbl(l_config).instance_id IS NOT NULL AND
35192 px_config_tbl(l_config).instance_id <> fnd_api.g_miss_num)
35193 THEN
35194 l_lock_tbl(l_lock).lock_status :=2;
35195 -- l_lock_tbl(l_lock).lock_id :=l_lock_id;
35196 l_lock_tbl(l_lock).source_application_id :=px_config_tbl(l_config).source_application_id;
35197 l_lock_tbl(l_lock).source_txn_header_ref :=px_config_tbl(l_config).source_txn_header_ref;
35198 l_lock_tbl(l_lock).source_txn_line_ref1 :=px_config_tbl(l_config).source_txn_line_ref1;
35199 l_lock_tbl(l_lock).source_txn_line_ref2 :=px_config_tbl(l_config).source_txn_line_ref2;
35200 l_lock_tbl(l_lock).source_txn_line_ref3 :=px_config_tbl(l_config).source_txn_line_ref3;
35201 l_lock_tbl(l_lock).config_inst_hdr_id :=px_config_tbl(l_config).config_inst_hdr_id;
35202 l_lock_tbl(l_lock).config_inst_item_id :=px_config_tbl(l_config).config_inst_item_id;
35203 l_lock_tbl(l_lock).config_inst_rev_num :=px_config_tbl(l_config).config_inst_rev_num;
35204 px_config_tbl(l_config).lock_id :=l_lock_id;
35205 px_config_tbl(l_config).lock_status :=2;
35206 END IF;
35207 END IF;
35208 END LOOP; -- For config_tbl loop
35209 IF l_lock_tbl(l_lock).lock_status IS NULL OR
35210 l_lock_tbl(l_lock).lock_status = fnd_api.g_miss_num
35211 THEN
35212 l_lock_tbl(l_lock).lock_status:=1;
35213 l_lock_tbl(l_lock).source_application_id :=px_config_tbl(1).source_application_id;
35214 l_lock_tbl(l_lock).source_txn_header_ref :=px_config_tbl(1).source_txn_header_ref;
35215 IF (l_lock_tbl(l_lock).instance_id IS NOT NULL AND
35216 l_lock_tbl(l_lock).instance_id <> fnd_api.g_miss_num) AND
35217 ( (l_lock_tbl(l_lock).config_inst_hdr_id IS NULL OR
35218 l_lock_tbl(l_lock).config_inst_hdr_id = fnd_api.g_miss_num) AND
35219 (l_lock_tbl(l_lock).config_inst_item_id IS NULL OR
35220 l_lock_tbl(l_lock).config_inst_item_id = fnd_api.g_miss_num) AND
35221 (l_lock_tbl(l_lock).config_inst_rev_num IS NULL OR
35222 l_lock_tbl(l_lock).config_inst_rev_num = fnd_api.g_miss_num) )
35223 THEN
35224 -- CALL GET CONFIG KEYS
35225 get_config_keys(p_instance_id => l_lock_tbl(l_lock).instance_id,
35226 p_config_rec => l_lock_config_rec
35227 );
35228 l_lock_tbl(l_lock).config_inst_hdr_id:=l_lock_config_rec.config_inst_hdr_id;
35229 l_lock_tbl(l_lock).config_inst_item_id:=l_lock_config_rec.config_inst_item_id;
35230 l_lock_tbl(l_lock).config_inst_rev_num:=l_lock_config_rec.config_inst_rev_num;
35231 END IF;
35232
35233 END IF;
35234 END IF;
35235 END LOOP; -- For lock_tbl loop
35236 END IF;
35237
35238
35239
35240 -- Call table handler
35241 IF l_lock_tbl.COUNT>0
35242 THEN
35243 FOR l_insert_csr IN l_lock_tbl.FIRST .. l_lock_tbl.LAST
35244 LOOP
35245 IF l_lock_tbl.EXISTS(l_insert_csr)
35246 THEN
35247 INSERT INTO csi_item_instance_locks
35248 ( lock_id
35249 ,lock_status
35250 ,instance_id
35251 ,config_inst_hdr_id
35252 ,config_inst_item_id
35253 ,config_inst_rev_num
35254 ,root_instance_id
35255 ,root_config_inst_hdr_id
35256 ,root_config_inst_item_id
35257 ,root_config_inst_rev_num
35258 ,lock_source_appln_id
35259 ,lock_source_header_ref
35260 ,lock_source_line_ref1
35261 ,lock_source_line_ref2
35262 ,lock_source_line_ref3
35263 ,date_locked
35264 ,last_updated_by
35265 ,last_update_date
35266 ,object_version_number
35267 ,last_update_login
35268 ,created_by
35269 ,creation_date
35270 )
35271 VALUES
35272 (
35273 l_lock_id
35274 ,l_lock_tbl(l_insert_csr).lock_status
35275 ,decode(l_lock_tbl(l_insert_csr).instance_id,fnd_api.g_miss_num,NULL,l_lock_tbl(l_insert_csr).instance_id)
35276 ,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)
35277 ,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)
35278 ,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)
35279 ,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)
35280 ,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)
35281 ,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)
35282 ,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)
35283 ,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)
35284 ,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)
35285 ,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)
35286 ,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)
35287 ,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)
35288 ,SYSDATE --p_txn_rec.source_transaction_date
35289 ,fnd_global.user_id
35290 ,SYSDATE
35291 ,1
35292 ,fnd_global.user_id
35293 ,fnd_global.user_id
35294 ,SYSDATE
35295 );
35296 END IF;
35297 END LOOP;
35298 /*
35299 CSI_TRANSACTIONS_PVT.Create_transaction
35300 (
35301 p_api_version => p_api_version
35302 ,p_commit => p_commit
35303 ,p_init_msg_list => p_init_msg_list
35304 ,p_validation_level => p_validation_level
35305 ,p_Success_IF_Exists_Flag => 'Y'
35306 ,p_transaction_rec => p_txn_rec
35307 ,x_return_status => x_return_status
35308 ,x_msg_count => x_msg_count
35309 ,x_msg_data => x_msg_data
35310 );
35311
35312 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
35313 FND_MESSAGE.SET_NAME('CSI','CSI_FAILED_TO_VALIDATE_TXN');
35314 FND_MESSAGE.SET_TOKEN('TRANSACTION_ID',p_txn_rec.transaction_id );
35315 FND_MSG_PUB.Add;
35316 RAISE FND_API.G_EXC_ERROR;
35317 END IF;
35318 */
35319 END IF;
35320
35321 IF FND_API.To_Boolean( p_commit ) THEN
35322 COMMIT WORK;
35323 END IF;
35324
35325 -- Standard call to get message count and if count is get message info.
35326 FND_MSG_PUB.Count_And_Get
35327 (p_count => x_msg_count ,
35328 p_data => x_msg_data );
35329
35330 EXCEPTION
35331 WHEN FND_API.G_EXC_ERROR THEN
35332 ROLLBACK TO csi_lock_item_instance;
35333 x_return_status := FND_API.G_RET_STS_ERROR ;
35334 FND_MSG_PUB.Count_And_Get
35335 ( p_count => x_msg_count,
35336 p_data => x_msg_data );
35337 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
35338 ROLLBACK TO csi_lock_item_instance;
35339 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
35340 FND_MSG_PUB.Count_And_Get
35341 ( p_count => x_msg_count,
35342 p_data => x_msg_data );
35343 WHEN OTHERS THEN
35344 ROLLBACK TO csi_lock_item_instance;
35345 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
35346 IF FND_MSG_PUB.Check_Msg_Level
35347 (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
35348 THEN
35349 FND_MSG_PUB.Add_Exc_Msg
35350 ( g_pkg_name, l_api_name );
35351 END IF;
35352 FND_MSG_PUB.Count_And_Get
35353 ( p_count => x_msg_count,
35354 p_data => x_msg_data );
35355 END lock_item_instances;
35356
35357 PROCEDURE validate_lock
35358 ( p_lock_id IN NUMBER ,
35359 p_instance_id IN NUMBER ,
35360 p_config_inst_hdr_id IN NUMBER ,
35361 p_config_inst_item_id IN NUMBER ,
35362 p_config_inst_rev_num IN NUMBER ,
35363 p_lock_status OUT NOCOPY NUMBER,
35364 p_root OUT NOCOPY BOOLEAN
35365 ) AS
35366 l_lock_status NUMBER :=3;
35367 l_root_value BOOLEAN := FALSE;
35368 l_root_config_hdr_id NUMBER;
35369 l_root_config_item_id NUMBER;
35370 l_root_config_rev_num NUMBER;
35371 l_root_instance_id NUMBER;
35372 BEGIN
35373 p_root := l_root_value;
35374 IF p_instance_id IS NOT NULL AND
35375 p_instance_id <> fnd_api.g_miss_num AND
35376 p_lock_id IS NOT NULL AND
35377 p_lock_id <> fnd_api.g_miss_num
35378 THEN
35379 BEGIN
35380 SELECT lock_status
35381 ,root_instance_id
35382 INTO l_lock_status
35383 ,l_root_instance_id
35384 FROM csi_item_instance_locks
35385 WHERE instance_id=p_instance_id
35386 AND lock_id = p_lock_id;
35387 IF p_instance_id = l_root_instance_id
35388 THEN
35389 p_root := TRUE;
35390 END IF;
35391 EXCEPTION
35392 WHEN NO_DATA_FOUND THEN
35393 l_lock_status :=3;
35394 END;
35395 ELSIF (p_config_inst_hdr_id IS NOT NULL AND
35396 p_config_inst_hdr_id <> fnd_api.g_miss_num AND
35397 p_config_inst_item_id IS NOT NULL AND
35398 p_config_inst_item_id <> fnd_api.g_miss_num AND
35399 p_config_inst_rev_num IS NOT NULL AND
35400 p_config_inst_rev_num <> fnd_api.g_miss_num ) AND
35401 (p_lock_id IS NOT NULL AND
35402 p_lock_id <> fnd_api.g_miss_num)
35403 THEN
35404 BEGIN
35405 SELECT lock_status
35406 ,root_config_inst_hdr_id
35407 ,root_config_inst_item_id
35408 ,root_config_inst_rev_num
35409 INTO l_lock_status
35410 ,l_root_config_hdr_id
35411 ,l_root_config_item_id
35412 ,l_root_config_rev_num
35413 FROM csi_item_instance_locks
35414 WHERE config_inst_hdr_id = p_config_inst_hdr_id
35415 AND config_inst_rev_num = p_config_inst_rev_num
35416 AND config_inst_item_id = p_config_inst_item_id
35417 AND lock_id = p_lock_id;
35418 IF p_config_inst_hdr_id = l_root_config_hdr_id AND
35419 p_config_inst_rev_num = l_root_config_rev_num AND
35420 p_config_inst_item_id = l_root_config_item_id
35421 THEN
35422 p_root := TRUE;
35423 END IF;
35424 EXCEPTION
35425 WHEN NO_DATA_FOUND THEN
35426 l_lock_status :=3;
35427 END;
35428 ELSE
35429 l_lock_status :=3;
35430 END IF;
35431 p_lock_status :=l_lock_status;
35432 END validate_lock;
35433
35434
35435 PROCEDURE build_unlock_config
35436 (p_lock_id IN NUMBER,
35437 p_config_inst_hdr_id IN NUMBER,
35438 p_config_inst_item_id IN NUMBER,
35439 p_config_inst_rev_num IN NUMBER,
35440 p_bld_unlock_tbl OUT NOCOPY csi_item_instance_pvt.lock_instances_tbl
35441 )
35442 AS
35443 CURSOR config_csr(p_root_hdr IN NUMBER,
35444 p_root_rev IN NUMBER,
35445 p_lock_status IN NUMBER)
35446 IS
35447 SELECT config_inst_hdr_id,
35448 config_inst_item_id,
35449 config_inst_rev_num,
35450 lock_status
35451 FROM csi_item_instance_locks
35452 WHERE root_config_inst_hdr_id = p_root_hdr
35453 AND root_config_inst_rev_num = p_root_rev
35454 AND lock_id = p_lock_id
35455 AND lock_status <> p_lock_status;
35456 l_root_hdr_id NUMBER;
35457 l_root_rev_num NUMBER;
35458 l_ctr NUMBER;
35459 l_unlock_status NUMBER:=0;
35460 BEGIN
35461 BEGIN
35462 SELECT root_config_inst_hdr_id,
35463 root_config_inst_rev_num
35464 INTO l_root_hdr_id,
35465 l_root_rev_num
35466 FROM csi_item_instance_locks
35467 WHERE lock_id = p_lock_id
35468 AND config_inst_hdr_id = p_config_inst_hdr_id
35469 AND config_inst_rev_num = p_config_inst_rev_num
35470 AND config_inst_item_id = p_config_inst_item_id;
35471 l_ctr:=0;
35472 FOR l_config_csr IN config_csr (p_root_hdr => l_root_hdr_id
35473 ,p_root_rev => l_root_rev_num
35474 ,p_lock_status => l_unlock_status)
35475 LOOP
35476 l_ctr := l_ctr+1;
35477 p_bld_unlock_tbl(l_ctr).config_inst_hdr_id := l_config_csr.config_inst_hdr_id;
35478 p_bld_unlock_tbl(l_ctr).config_inst_rev_num := l_config_csr.config_inst_rev_num;
35479 p_bld_unlock_tbl(l_ctr).config_inst_item_id := l_config_csr.config_inst_item_id;
35480 p_bld_unlock_tbl(l_ctr).lock_status :=l_config_csr.lock_status;
35481 END LOOP;
35482 EXCEPTION
35483 WHEN NO_DATA_FOUND THEN
35484 NULL;
35485 END;
35486 END build_unlock_config;
35487
35488 PROCEDURE unlock_tbl_handler
35489 (p_unlock_tbl IN CSI_ITEM_INSTANCE_PVT.lock_instances_tbl,
35490 p_unlock_param IN VARCHAR2,
35491 p_date IN DATE
35492 )
35493 AS
35494 l_last_updated_by NUMBER;
35495 l_last_update_login NUMBER;
35496 l_unlock_status NUMBER;
35497 BEGIN
35498 l_unlock_status := 0;
35499 l_last_updated_by := fnd_global.user_id;
35500 l_last_update_login := fnd_global.login_id;
35501
35502 IF p_unlock_param = 'INSTANCE'
35503 THEN
35504 IF p_unlock_tbl.COUNT>0
35505 THEN
35506 FOR i IN p_unlock_tbl.FIRST .. p_unlock_tbl.LAST
35507 LOOP
35508 IF p_unlock_tbl.EXISTS(i)
35509 THEN
35510 UPDATE csi_item_instance_locks
35511 SET lock_status= p_unlock_tbl(i).lock_status
35512 ,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)
35513 ,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)
35514 ,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)
35515 ,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)
35516 ,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)
35517 ,date_unlocked = p_date
35518 ,object_version_number = object_version_number+1
35519 ,last_updated_by = l_last_updated_by
35520 ,last_update_date = SYSDATE
35521 ,last_update_login = l_last_update_login
35522 WHERE instance_id = p_unlock_tbl(i).instance_id
35523 AND lock_id = p_unlock_tbl(i).lock_id;
35524 END IF;
35525 END LOOP;
35526 END IF;
35527 ELSIF p_unlock_param = 'CONFIG'
35528 THEN
35529 IF p_unlock_tbl.COUNT>0
35530 THEN
35531 FOR i IN p_unlock_tbl.FIRST .. p_unlock_tbl.LAST
35532 LOOP
35533 IF p_unlock_tbl.EXISTS(i)
35534 THEN
35535 UPDATE csi_item_instance_locks
35536 SET lock_status= p_unlock_tbl(i).lock_status
35537 ,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)
35538 ,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)
35539 ,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)
35540 ,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)
35541 ,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)
35542 ,date_unlocked = p_date
35543 ,object_version_number = object_version_number+1
35544 ,last_updated_by = l_last_updated_by
35545 ,last_update_date = SYSDATE
35546 ,last_update_login = l_last_update_login
35547 WHERE config_inst_hdr_id = p_unlock_tbl(i).config_inst_hdr_id
35548 AND config_inst_item_id = p_unlock_tbl(i).config_inst_item_id
35549 AND config_inst_rev_num = p_unlock_tbl(i).config_inst_rev_num
35550 AND lock_id = p_unlock_tbl(i).lock_id;
35551 END IF;
35552 END LOOP;
35553 END IF;
35554 END IF;
35555
35556 END unlock_tbl_handler;
35557
35558
35559 PROCEDURE unlock_item_instances
35560 (
35561 p_api_version IN NUMBER
35562 ,p_commit IN VARCHAR2
35563 ,p_init_msg_list IN VARCHAR2
35564 ,p_validation_level IN NUMBER
35565 ,p_config_tbl IN csi_cz_int.config_tbl
35566 ,p_unlock_all IN VARCHAR2
35567 -- ,p_txn_rec IN OUT NOCOPY csi_datastructures_pub.transaction_rec
35568 ,x_return_status OUT NOCOPY VARCHAR2
35569 ,x_msg_count OUT NOCOPY NUMBER
35570 ,x_msg_data OUT NOCOPY VARCHAR2
35571 )
35572 AS
35573 l_api_name CONSTANT VARCHAR2(30) := 'UNLOCK_ITEM_INSTANCES';
35574 l_api_version CONSTANT NUMBER := 1.0;
35575 l_csi_debug_level NUMBER;
35576 l_rel_tbl csi_datastructures_pub.ii_relationship_tbl;
35577 l_ii_relationship_level_tbl csi_ii_relationships_pvt.ii_relationship_level_tbl;
35578 l_rel_query_rec csi_datastructures_pub.relationship_query_rec;
35579 l_rel_type_code VARCHAR2(30) := 'COMPONENT-OF';
35580 l_unlock_tbl csi_item_instance_pvt.lock_instances_tbl;
35581 l_unlock_ins_tbl csi_item_instance_pvt.lock_instances_tbl;
35582 l_unlock_count NUMBER;
35583 l_unlock_config csi_item_instance_pvt.lock_instances_tbl;
35584 l_unlock_root csi_item_instance_pvt.lock_instances_tbl;
35585 l_bld_unlock_tbl csi_item_instance_pvt.lock_instances_tbl;
35586 l_config_count NUMBER;
35587 l_config_root NUMBER;
35588 l_instance_ctr NUMBER;
35589 l_config_ctr NUMBER;
35590 l_warning VARCHAR2(1) :='N';
35591 l_valid_lock_status NUMBER;
35592 l_found VARCHAR2(1);
35593 l_root_value BOOLEAN := FALSE;
35594 l_unlock_root_ins NUMBER;
35595 BEGIN
35596
35597 SAVEPOINT csi_unlock_item_instance;
35598
35599 -- Check for freeze_flag in csi_install_parameters is set to 'Y'
35600
35601 csi_utility_grp.check_ib_active;
35602
35603 -- Standard call to check for call compatibility.
35604 IF NOT FND_API.Compatible_API_Call ( l_api_version ,
35605 p_api_version ,
35606 l_api_name ,
35607 g_pkg_name )
35608 THEN
35609 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
35610 END IF;
35611
35612 -- Initialize message list if p_init_msg_list is set to TRUE.
35613 IF FND_API.to_Boolean( p_init_msg_list ) THEN
35614 FND_MSG_PUB.initialize;
35615 END IF;
35616
35617 -- Initialize API return status to success
35618 x_return_status := FND_API.G_RET_STS_SUCCESS;
35619
35620 -- Check the profile option CSI_DEBUG_LEVEL for debug message reporting
35621 l_csi_debug_level:=fnd_profile.value('CSI_DEBUG_LEVEL');
35622
35623 -- If CSI_DEBUG_LEVEL = 1 then dump the procedure name
35624 IF (l_csi_debug_level > 0) THEN
35625 csi_gen_utility_pvt.put_line( 'unlock_item_instances');
35626 END IF;
35627
35628
35629 -- If the debug level = 2 then dump all the parameters values.
35630 IF (l_csi_debug_level > 1) THEN
35631 csi_gen_utility_pvt.put_line( 'unlock_item_instances'||
35632 p_api_version ||'-'||
35633 p_commit ||'-'||
35634 p_init_msg_list ||'-'||
35635 p_validation_level );
35636 -- Dump the records in the log file
35637 IF p_config_tbl.COUNT > 0
35638 THEN
35639 FOR tab_row IN p_config_tbl.FIRST .. p_config_tbl.LAST
35640 LOOP
35641 csi_gen_utility_pvt.put_line(' ');
35642 csi_gen_utility_pvt.put_line('Dumping the values for config tbl Rec # :'||tab_row);
35643 csi_gen_utility_pvt.put_line('source_application_id :'||p_config_tbl(tab_row).source_application_id);
35644 csi_gen_utility_pvt.put_line('source_txn_header_ref :'||p_config_tbl(tab_row).source_txn_header_ref);
35645 csi_gen_utility_pvt.put_line('source_txn_line_ref1 :'||p_config_tbl(tab_row).source_txn_line_ref1);
35646 csi_gen_utility_pvt.put_line('source_txn_line_ref2 :'||p_config_tbl(tab_row).source_txn_line_ref2);
35647 csi_gen_utility_pvt.put_line('source_txn_line_ref3 :'||p_config_tbl(tab_row).source_txn_line_ref3);
35648 csi_gen_utility_pvt.put_line('instance_id :'||p_config_tbl(tab_row).instance_id);
35649 csi_gen_utility_pvt.put_line('lock_id :'||p_config_tbl(tab_row).lock_id);
35650 csi_gen_utility_pvt.put_line('config_inst_hdr_id :'||p_config_tbl(tab_row).config_inst_hdr_id);
35651 csi_gen_utility_pvt.put_line('config_inst_item_id :'||p_config_tbl(tab_row).config_inst_item_id);
35652 csi_gen_utility_pvt.put_line('config_inst_rev_num :'||p_config_tbl(tab_row).config_inst_rev_num);
35653 csi_gen_utility_pvt.put_line('lock_status :'||p_config_tbl(tab_row).lock_status);
35654 END LOOP;
35655 END IF;
35656 --csi_gen_utility_pvt.dump_txn_rec(p_txn_rec);
35657 END IF;
35658
35659
35660
35661 l_unlock_tbl.DELETE;
35662 csi_gen_utility_pvt.put_line('p_unlock_all :'||p_unlock_all);
35663 IF p_unlock_all IS NOT NULL AND
35664 p_unlock_all = fnd_api.g_true
35665 THEN
35666 csi_gen_utility_pvt.put_line('Processing to unlock all locked instances.');
35667 -- This is the case where root node(instance_id) is passed and
35668 -- we need to get all its children and unlock them.
35669 IF p_config_tbl.COUNT >0
35670 THEN
35671 FOR i IN p_config_tbl.FIRST .. p_config_tbl.LAST
35672 LOOP
35673 IF p_config_tbl.EXISTS(i)
35674 THEN
35675 IF ((p_config_tbl(i).config_inst_hdr_id IS NOT NULL AND
35676 p_config_tbl(i).config_inst_hdr_id <> fnd_api.g_miss_num AND
35677 p_config_tbl(i).config_inst_item_id IS NOT NULL AND
35678 p_config_tbl(i).config_inst_item_id <> fnd_api.g_miss_num AND
35679 p_config_tbl(i).config_inst_rev_num IS NOT NULL AND
35680 p_config_tbl(i).config_inst_rev_num <> fnd_api.g_miss_num )) AND
35681 (p_config_tbl(i).lock_id IS NOT NULL AND
35682 p_config_tbl(i).lock_id <> fnd_api.g_miss_num)
35683 THEN
35684 csi_gen_utility_pvt.put_line('Processing where config keys were passed.');
35685 l_found:='N';
35686 IF l_unlock_config.count>0
35687 THEN
35688 FOR l_un_csr IN l_unlock_config.FIRST .. l_unlock_config.LAST
35689 LOOP
35690 IF l_unlock_config.EXISTS(l_un_csr)
35691 THEN
35692 IF l_unlock_config(l_un_csr).lock_id=p_config_tbl(i).lock_id AND
35693 l_unlock_config(l_un_csr).config_inst_hdr_id=p_config_tbl(i).config_inst_hdr_id AND
35694 l_unlock_config(l_un_csr).config_inst_item_id=p_config_tbl(i).config_inst_item_id AND
35695 l_unlock_config(l_un_csr).config_inst_rev_num=p_config_tbl(i).config_inst_rev_num
35696 THEN
35697 l_found:='Y';
35698 END IF;
35699 END IF;
35700 END LOOP;
35701 END IF;
35702
35703 IF l_found='N'
35704 THEN
35705
35706 l_valid_lock_status:=NULL;
35707 validate_lock
35708 ( p_lock_id => p_config_tbl(i).lock_id,
35709 p_instance_id => fnd_api.g_miss_num,
35710 p_config_inst_hdr_id => p_config_tbl(i).config_inst_hdr_id,
35711 p_config_inst_item_id => p_config_tbl(i).config_inst_item_id,
35712 p_config_inst_rev_num => p_config_tbl(i).config_inst_rev_num,
35713 p_lock_status => l_valid_lock_status,
35714 p_root => l_root_value
35715 );
35716 IF l_valid_lock_status NOT IN (0,3) AND
35717 l_valid_lock_status IS NOT NULL
35718 THEN
35719 --p_config_tbl(i).lock_status:=0;
35720 build_unlock_config(p_lock_id => p_config_tbl(i).lock_id,
35721 p_config_inst_hdr_id => p_config_tbl(i).config_inst_hdr_id,
35722 p_config_inst_item_id => p_config_tbl(i).config_inst_item_id,
35723 p_config_inst_rev_num => p_config_tbl(i).config_inst_rev_num,
35724 p_bld_unlock_tbl => l_bld_unlock_tbl
35725 );
35726
35727 l_config_count := l_unlock_config.count;
35728 IF l_bld_unlock_tbl.COUNT >0
35729 THEN
35730 FOR l_bld IN l_bld_unlock_tbl.FIRST .. l_bld_unlock_tbl.LAST
35731 LOOP
35732 IF l_bld_unlock_tbl.EXISTS(l_bld)
35733 THEN
35734
35735 l_unlock_config(l_config_count+l_bld).config_inst_hdr_id :=l_bld_unlock_tbl(l_bld).config_inst_hdr_id;
35736 l_unlock_config(l_config_count+l_bld).config_inst_item_id :=l_bld_unlock_tbl(l_bld).config_inst_item_id;
35737 l_unlock_config(l_config_count+l_bld).config_inst_rev_num :=l_bld_unlock_tbl(l_bld).config_inst_rev_num;
35738 l_unlock_config(l_config_count+l_bld).lock_id:=p_config_tbl(i).lock_id;
35739 l_unlock_config(l_config_count+l_bld).lock_status:=p_config_tbl(i).lock_status;
35740 l_unlock_config(l_config_count+l_bld).source_application_id :=p_config_tbl(i).source_application_id;
35741 l_unlock_config(l_config_count+l_bld).source_txn_header_ref :=p_config_tbl(i).source_txn_header_ref;
35742 --l_unlock_config(l_config_count+l_bld).source_txn_line_ref1 :=p_config_tbl(i).source_txn_line_ref1;
35743 --l_unlock_config(l_config_count+l_bld).source_txn_line_ref2 :=p_config_tbl(i).source_txn_line_ref2;
35744 --l_unlock_config(l_config_count+l_bld).source_txn_line_ref3 :=p_config_tbl(i).source_txn_line_ref3;
35745 IF l_bld_unlock_tbl(l_bld).lock_status = 2 AND
35746 p_config_tbl(i).source_application_id = 542
35747 THEN
35748 FND_MESSAGE.SET_NAME('CSI','CSI_CANT_UNLOCK_TREE');
35749 FND_MESSAGE.SET_TOKEN('CONFIG_INST_HDR_ID',l_bld_unlock_tbl(l_bld).config_inst_hdr_id);
35750 FND_MESSAGE.SET_TOKEN('CONFIG_INST_ITEM_ID',l_bld_unlock_tbl(l_bld).config_inst_item_id);
35751 FND_MESSAGE.SET_TOKEN('CONFIG_INST_REV_NUM',l_bld_unlock_tbl(l_bld).config_inst_rev_num);
35752 FND_MSG_PUB.Add;
35753 RAISE FND_API.G_EXC_ERROR;
35754 ELSIF (p_config_tbl(i).lock_status IS NULL OR
35755 p_config_tbl(i).lock_status NOT IN (0,1)) OR
35756 p_config_tbl(i).lock_status > l_bld_unlock_tbl(l_bld).lock_status
35757 THEN
35758 FND_MESSAGE.SET_NAME('CSI','CSI_INVALID_CON_STATUS');
35759 FND_MESSAGE.SET_TOKEN('ORIGINAL_STATUS',l_bld_unlock_tbl(l_bld).lock_status);
35760 FND_MESSAGE.SET_TOKEN('LOCK_STATUS',p_config_tbl(i).lock_status);
35761 FND_MESSAGE.SET_TOKEN('CONFIG_INST_HDR_ID',l_bld_unlock_tbl(l_bld).config_inst_hdr_id);
35762 FND_MESSAGE.SET_TOKEN('CONFIG_INST_ITEM_ID',l_bld_unlock_tbl(l_bld).config_inst_item_id);
35763 FND_MESSAGE.SET_TOKEN('CONFIG_INST_REV_NUM',l_bld_unlock_tbl(l_bld).config_inst_rev_num);
35764 FND_MSG_PUB.Add;
35765 RAISE FND_API.G_EXC_ERROR;
35766 END IF;
35767 END IF;
35768 END LOOP;
35769 END IF;
35770
35771 ELSE
35772 IF l_valid_lock_status=3
35773 THEN
35774 l_warning := 'E';
35775 ELSE
35776 IF l_valid_lock_status=0 AND
35777 l_warning <> 'E'
35778 THEN
35779 l_warning := 'Y';
35780 END IF;
35781 END IF;
35782 END IF;
35783 END IF;
35784 ELSE
35785 l_warning := 'E';
35786 END IF;
35787 END IF;
35788 END LOOP;
35789 END IF;
35790
35791 ELSE -- Case where p_unlock_all is fnd_api.g_false
35792
35793 csi_gen_utility_pvt.put_line('P_unlock_all is false : Processing to unlock instances ');
35794 IF p_config_tbl.COUNT >0
35795 THEN
35796 FOR i IN p_config_tbl.FIRST .. p_config_tbl.LAST
35797 LOOP
35798 IF p_config_tbl.EXISTS(i)
35799 THEN
35800 IF ((p_config_tbl(i).instance_id IS NOT NULL AND
35801 p_config_tbl(i).instance_id <> fnd_api.g_miss_num) OR
35802 (p_config_tbl(i).config_inst_hdr_id IS NOT NULL AND
35803 p_config_tbl(i).config_inst_hdr_id <> fnd_api.g_miss_num AND
35804 p_config_tbl(i).config_inst_item_id IS NOT NULL AND
35805 p_config_tbl(i).config_inst_item_id <> fnd_api.g_miss_num AND
35806 p_config_tbl(i).config_inst_rev_num IS NOT NULL AND
35807 p_config_tbl(i).config_inst_rev_num <> fnd_api.g_miss_num )) AND
35808 (p_config_tbl(i).lock_id IS NOT NULL AND
35809 p_config_tbl(i).lock_id <> fnd_api.g_miss_num)
35810 THEN
35811
35812 IF (p_config_tbl(i).instance_id IS NOT NULL AND
35813 p_config_tbl(i).instance_id <> fnd_api.g_miss_num)
35814 THEN
35815
35816 l_valid_lock_status:=NULL;
35817 validate_lock
35818 ( p_lock_id => p_config_tbl(i).lock_id,
35819 p_instance_id => p_config_tbl(i).instance_id,
35820 p_config_inst_hdr_id => fnd_api.g_miss_num,
35821 p_config_inst_item_id => fnd_api.g_miss_num,
35822 p_config_inst_rev_num => fnd_api.g_miss_num,
35823 p_lock_status => l_valid_lock_status,
35824 p_root => l_root_value
35825 );
35826
35827
35828 IF l_valid_lock_status IS NOT NULL AND
35829 l_valid_lock_status NOT IN (0,3)
35830 THEN
35831 --p_config_tbl(i).lock_status:=0;
35832 IF NOT l_root_value
35833 THEN
35834 l_unlock_count:=l_unlock_tbl.COUNT+1;
35835 l_unlock_tbl(l_unlock_count).instance_id:=p_config_tbl(i).instance_id;
35836 l_unlock_tbl(l_unlock_count).lock_id:=p_config_tbl(i).lock_id;
35837 l_unlock_tbl(l_unlock_count).lock_status:=p_config_tbl(i).lock_status;
35838 l_unlock_tbl(l_unlock_count).source_application_id :=p_config_tbl(i).source_application_id;
35839 l_unlock_tbl(l_unlock_count).source_txn_header_ref :=p_config_tbl(i).source_txn_header_ref;
35840 l_unlock_tbl(l_unlock_count).source_txn_line_ref1 :=p_config_tbl(i).source_txn_line_ref1;
35841 l_unlock_tbl(l_unlock_count).source_txn_line_ref2 :=p_config_tbl(i).source_txn_line_ref2;
35842 l_unlock_tbl(l_unlock_count).source_txn_line_ref3 :=p_config_tbl(i).source_txn_line_ref3;
35843 ELSE
35844 l_unlock_root_ins:=l_unlock_ins_tbl.COUNT+1;
35845 l_unlock_ins_tbl(l_unlock_root_ins).instance_id:=p_config_tbl(i).instance_id;
35846 l_unlock_ins_tbl(l_unlock_root_ins).lock_id:=p_config_tbl(i).lock_id;
35847 l_unlock_ins_tbl(l_unlock_root_ins).lock_status:=p_config_tbl(i).lock_status;
35848 l_unlock_ins_tbl(l_unlock_root_ins).source_application_id :=p_config_tbl(i).source_application_id;
35849 l_unlock_ins_tbl(l_unlock_root_ins).source_txn_header_ref :=p_config_tbl(i).source_txn_header_ref;
35850 l_unlock_ins_tbl(l_unlock_root_ins).source_txn_line_ref1 :=p_config_tbl(i).source_txn_line_ref1;
35851 l_unlock_ins_tbl(l_unlock_root_ins).source_txn_line_ref2 :=p_config_tbl(i).source_txn_line_ref2;
35852 l_unlock_ins_tbl(l_unlock_root_ins).source_txn_line_ref3 :=p_config_tbl(i).source_txn_line_ref3;
35853 END IF;
35854
35855 IF (p_config_tbl(i).lock_status IS NULL OR
35856 p_config_tbl(i).lock_status NOT IN (0,1)) OR
35857 p_config_tbl(i).lock_status > l_valid_lock_status
35858 THEN
35859 FND_MESSAGE.SET_NAME('CSI','CSI_INVALID_INS_STATUS');
35860 FND_MESSAGE.SET_TOKEN('ORIGINAL_STATUS',l_valid_lock_status);
35861 FND_MESSAGE.SET_TOKEN('LOCK_STATUS',p_config_tbl(i).lock_status);
35862 FND_MESSAGE.SET_TOKEN('INSTANCE_ID',p_config_tbl(i).instance_id);
35863 FND_MSG_PUB.Add;
35864 RAISE FND_API.G_EXC_ERROR;
35865 END IF;
35866 ELSE
35867 IF l_valid_lock_status=3
35868 THEN
35869 l_warning := 'E';
35870 ELSE
35871 IF l_valid_lock_status=0 AND
35872 l_warning <> 'E'
35873 THEN
35874 l_warning := 'Y';
35875 END IF;
35876 END IF;
35877 END IF;
35878 ELSIF (p_config_tbl(i).config_inst_hdr_id IS NOT NULL AND
35879 p_config_tbl(i).config_inst_hdr_id <> fnd_api.g_miss_num AND
35880 p_config_tbl(i).config_inst_item_id IS NOT NULL AND
35881 p_config_tbl(i).config_inst_item_id <> fnd_api.g_miss_num AND
35882 p_config_tbl(i).config_inst_rev_num IS NOT NULL AND
35883 p_config_tbl(i).config_inst_rev_num <> fnd_api.g_miss_num )
35884 THEN
35885 l_valid_lock_status:=NULL;
35886 validate_lock
35887 ( p_lock_id => p_config_tbl(i).lock_id,
35888 p_instance_id => fnd_api.g_miss_num,
35889 p_config_inst_hdr_id => p_config_tbl(i).config_inst_hdr_id,
35890 p_config_inst_item_id => p_config_tbl(i).config_inst_item_id,
35891 p_config_inst_rev_num => p_config_tbl(i).config_inst_rev_num,
35892 p_lock_status => l_valid_lock_status,
35893 p_root => l_root_value
35894 );
35895
35896
35897 IF l_valid_lock_status NOT IN (0,3) AND
35898 l_valid_lock_status IS NOT NULL
35899 THEN
35900 -- p_config_tbl(i).lock_status:=0;
35901 IF NOT l_root_value
35902 THEN
35903 l_config_count := l_unlock_config.count+1;
35904 l_unlock_config(l_config_count).config_inst_hdr_id :=p_config_tbl(i).config_inst_hdr_id;
35905 l_unlock_config(l_config_count).config_inst_item_id :=p_config_tbl(i).config_inst_item_id;
35906 l_unlock_config(l_config_count).config_inst_rev_num :=p_config_tbl(i).config_inst_rev_num;
35907 l_unlock_config(l_config_count).lock_id:=p_config_tbl(i).lock_id;
35908 l_unlock_config(l_config_count).lock_status:=p_config_tbl(i).lock_status;
35909 l_unlock_config(l_config_count).source_application_id :=p_config_tbl(i).source_application_id;
35910 l_unlock_config(l_config_count).source_txn_header_ref :=p_config_tbl(i).source_txn_header_ref;
35911 l_unlock_config(l_config_count).source_txn_line_ref1 :=p_config_tbl(i).source_txn_line_ref1;
35912 l_unlock_config(l_config_count).source_txn_line_ref2 :=p_config_tbl(i).source_txn_line_ref2;
35913 l_unlock_config(l_config_count).source_txn_line_ref3 :=p_config_tbl(i).source_txn_line_ref3;
35914 ELSE
35915 l_config_root := l_unlock_root.count+1;
35916 l_unlock_root(l_config_root).config_inst_hdr_id :=p_config_tbl(i).config_inst_hdr_id;
35917 l_unlock_root(l_config_root).config_inst_item_id :=p_config_tbl(i).config_inst_item_id;
35918 l_unlock_root(l_config_root).config_inst_rev_num :=p_config_tbl(i).config_inst_rev_num;
35919 l_unlock_root(l_config_root).lock_id:=p_config_tbl(i).lock_id;
35920 l_unlock_root(l_config_root).lock_status:=p_config_tbl(i).lock_status;
35921 l_unlock_root(l_config_root).source_application_id :=p_config_tbl(i).source_application_id;
35922 l_unlock_root(l_config_root).source_txn_header_ref :=p_config_tbl(i).source_txn_header_ref;
35923 l_unlock_root(l_config_root).source_txn_line_ref1 :=p_config_tbl(i).source_txn_line_ref1;
35924 l_unlock_root(l_config_root).source_txn_line_ref2 :=p_config_tbl(i).source_txn_line_ref2;
35925 l_unlock_root(l_config_root).source_txn_line_ref3 :=p_config_tbl(i).source_txn_line_ref3;
35926 END IF;
35927 IF (p_config_tbl(i).lock_status IS NULL OR
35928 p_config_tbl(i).lock_status NOT IN (0,1)) OR
35929 p_config_tbl(i).lock_status > l_valid_lock_status
35930 THEN
35931 FND_MESSAGE.SET_NAME('CSI','CSI_INVALID_CON_STATUS');
35932 FND_MESSAGE.SET_TOKEN('ORIGINAL_STATUS',l_valid_lock_status);
35933 FND_MESSAGE.SET_TOKEN('LOCK_STATUS',p_config_tbl(i).lock_status);
35934 FND_MESSAGE.SET_TOKEN('CONFIG_INST_HDR_ID',p_config_tbl(i).config_inst_hdr_id);
35935 FND_MESSAGE.SET_TOKEN('CONFIG_INST_ITEM_ID',p_config_tbl(i).config_inst_item_id);
35936 FND_MESSAGE.SET_TOKEN('CONFIG_INST_REV_NUM',p_config_tbl(i).config_inst_rev_num);
35937 FND_MSG_PUB.Add;
35938 RAISE FND_API.G_EXC_ERROR;
35939 END IF;
35940 ELSE
35941 IF l_valid_lock_status=3
35942 THEN
35943 l_warning := 'E';
35944 ELSE
35945 IF l_valid_lock_status=0 AND
35946 l_warning <> 'E'
35947 THEN
35948 l_warning := 'Y';
35949 END IF;
35950 END IF;
35951 END IF;
35952 END IF;
35953 ELSE
35954 l_warning := 'E';
35955 END IF;
35956 END IF;
35957 END LOOP;
35958 END IF;
35959 END IF;
35960
35961 IF l_warning = 'Y'
35962 THEN
35963 FND_MESSAGE.SET_NAME('CSI','CSI_INVALID_LOCKS');
35964 FND_MSG_PUB.Add;
35965 ELSIF l_warning = 'E'
35966 THEN
35967 FND_MESSAGE.SET_NAME('CSI','CSI_LOCKID_NOT_PASSED');
35968 FND_MSG_PUB.Add;
35969 RAISE FND_API.G_EXC_ERROR;
35970 END IF;
35971 csi_gen_utility_pvt.put_line('Count of l_unlock_tbl is :'||l_unlock_tbl.count);
35972 IF l_unlock_tbl.COUNT>0
35973 THEN
35974 csi_gen_utility_pvt.put_line('Before calling unlock_tbl_handler in instance mode. ');
35975 unlock_tbl_handler (l_unlock_tbl,'INSTANCE',SYSDATE);
35976 END IF;
35977
35978 csi_gen_utility_pvt.put_line('Count of l_unlock_config is :'||l_unlock_config.count);
35979 IF l_unlock_config.COUNT>0
35980 THEN
35981 csi_gen_utility_pvt.put_line('Before calling unlock_tbl_handler in config mode. ');
35982 unlock_tbl_handler (l_unlock_config,'CONFIG',SYSDATE);
35983 END IF;
35984
35985 csi_gen_utility_pvt.put_line('Count of l_unlock_ins_tbl is :'||l_unlock_ins_tbl.count);
35986 IF l_unlock_ins_tbl.COUNT>0
35987 THEN
35988 csi_gen_utility_pvt.put_line('Before calling unlock_tbl_handler in instance root mode. ');
35989
35990 FOR i IN l_unlock_ins_tbl.FIRST .. l_unlock_ins_tbl.LAST
35991 LOOP
35992 IF l_unlock_ins_tbl.EXISTS(i)
35993 THEN
35994 IF l_unlock_ins_tbl(i).lock_status=0
35995 THEN
35996 SELECT COUNT(*)
35997 INTO l_instance_ctr
35998 FROM csi_item_instance_locks
35999 WHERE root_instance_id =l_unlock_ins_tbl(i).instance_id
36000 AND lock_id = l_unlock_ins_tbl(i).lock_id
36001 AND lock_status IN (1,2);
36002 IF l_instance_ctr >1 -- this includes root
36003 THEN
36004 FND_MESSAGE.SET_NAME('CSI','CSI_INVALID_INST_STATUS');
36005 FND_MESSAGE.SET_TOKEN('INSTANCE_ID',l_unlock_ins_tbl(i).instance_id);
36006 FND_MSG_PUB.Add;
36007 RAISE FND_API.G_EXC_ERROR;
36008 END IF;
36009 END IF;
36010 END IF;
36011 END LOOP;
36012 unlock_tbl_handler (l_unlock_ins_tbl,'INSTANCE',SYSDATE);
36013 END IF;
36014
36015 IF l_unlock_root.COUNT>0
36016 THEN
36017 csi_gen_utility_pvt.put_line('Before calling unlock_tbl_handler in config root mode. ');
36018
36019 FOR i IN l_unlock_root.FIRST .. l_unlock_root.LAST
36020 LOOP
36021 IF l_unlock_root.EXISTS(i)
36022 THEN
36023 IF l_unlock_root(i).lock_status=0
36024 THEN
36025 SELECT COUNT(*)
36026 INTO l_config_ctr
36027 FROM csi_item_instance_locks
36028 WHERE root_config_inst_hdr_id =l_unlock_root(i).config_inst_hdr_id
36029 AND root_config_inst_item_id = l_unlock_root(i).config_inst_item_id
36030 AND root_config_inst_rev_num = l_unlock_root(i).config_inst_rev_num
36031 AND lock_id = l_unlock_root(i).lock_id
36032 AND lock_status IN (1,2);
36033 IF l_config_ctr >1 -- this includes root
36034 THEN
36035 FND_MESSAGE.SET_NAME('CSI','CSI_INVALID_CONF_STATUS');
36036 FND_MESSAGE.SET_TOKEN('CONFIG_INST_HDR_ID',l_unlock_root(i).config_inst_hdr_id);
36037 FND_MESSAGE.SET_TOKEN('CONFIG_INST_ITEM_ID',l_unlock_root(i).config_inst_item_id);
36038 FND_MESSAGE.SET_TOKEN('CONFIG_INST_REV_NUM',l_unlock_root(i).config_inst_rev_num);
36039 FND_MSG_PUB.Add;
36040 RAISE FND_API.G_EXC_ERROR;
36041 END IF;
36042 END IF;
36043 END IF;
36044 END LOOP;
36045
36046 unlock_tbl_handler (l_unlock_root,'CONFIG',SYSDATE);
36047
36048 END IF;
36049
36050 IF FND_API.To_Boolean( p_commit ) THEN
36051 COMMIT WORK;
36052 END IF;
36053
36054 -- Standard call to get message count and if count is get message info.
36055 FND_MSG_PUB.Count_And_Get
36056 (p_count => x_msg_count ,
36057 p_data => x_msg_data );
36058
36059 csi_gen_utility_pvt.put_line('Reached to the end of csi_unlock_item_instance procedure.');
36060
36061 EXCEPTION
36062 WHEN FND_API.G_EXC_ERROR THEN
36063 ROLLBACK TO csi_unlock_item_instance;
36064 x_return_status := FND_API.G_RET_STS_ERROR ;
36065 FND_MSG_PUB.Count_And_Get
36066 ( p_count => x_msg_count,
36067 p_data => x_msg_data );
36068 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
36069 ROLLBACK TO csi_unlock_item_instance;
36070 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
36071 FND_MSG_PUB.Count_And_Get
36072 ( p_count => x_msg_count,
36073 p_data => x_msg_data );
36074 WHEN OTHERS THEN
36075 ROLLBACK TO csi_unlock_item_instance;
36076 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
36077 IF FND_MSG_PUB.Check_Msg_Level
36078 (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
36079 THEN
36080 FND_MSG_PUB.Add_Exc_Msg
36081 ( g_pkg_name, l_api_name );
36082 END IF;
36083 FND_MSG_PUB.Count_And_Get
36084 ( p_count => x_msg_count,
36085 p_data => x_msg_data );
36086 END unlock_item_instances;
36087
36088
36089 END CSI_ITEM_INSTANCE_PVT;