DBA Data[Home] [Help]

PACKAGE BODY: APPS.INVUPD2B

Source


1 PACKAGE BODY INVUPD2B AS
2 /* $Header: INVUPD2B.pls 120.28.12010000.3 2008/11/25 02:39:01 akbharga ship $ */
3    -- GlobalVar to hold control level for each attribute Bug Fix 3005880
4 
5        A_ALLOWED_UNITS_LOOKUP_CODE      NUMBER := 2;
6       A_INVENTORY_ITEM_STATUS_CODE      NUMBER := 2;
7                        A_ITEM_TYPE      NUMBER := 2;
8          A_PRIMARY_UNIT_OF_MEASURE      NUMBER := 2;
9                     A_BASE_ITEM_ID      NUMBER := 2;
10                 A_BOM_ENABLED_FLAG      NUMBER := 2;
11                    A_BOM_ITEM_TYPE      NUMBER := 2;
12             A_ENGINEERING_ECN_CODE      NUMBER := 2;
13              A_ENGINEERING_ITEM_ID      NUMBER := 2;
14                    A_ENG_ITEM_FLAG      NUMBER := 2;
15             A_COSTING_ENABLED_FLAG      NUMBER := 2;
16            A_COST_OF_SALES_ACCOUNT      NUMBER := 2;
17          A_DEF_INCL_IN_ROLLUP_FLAG      NUMBER := 2;
18             A_INVENTORY_ASSET_FLAG      NUMBER := 2;
19                     A_STD_LOT_SIZE      NUMBER := 2;
20      A_ALLOW_ITEM_DESC_UPDATE_FLAG      NUMBER := 2;
21                A_ASSET_CATEGORY_ID      NUMBER := 2;
22                         A_BUYER_ID      NUMBER := 2;
23              A_ENCUMBRANCE_ACCOUNT      NUMBER := 2;
24                  A_EXPENSE_ACCOUNT      NUMBER := 2;
25                  A_HAZARD_CLASS_ID      NUMBER := 2;
26              A_LIST_PRICE_PER_UNIT      NUMBER := 2;
27                     A_MARKET_PRICE      NUMBER := 2;
28            A_MU_APPRVD_VENDOR_FLAG      NUMBER := 2;
29           A_OUTSIDE_OPERATION_FLAG      NUMBER := 2;
30       A_OUTSIDE_OPERATION_UOM_TYPE      NUMBER := 2;
31          A_PRICE_TOLERANCE_PERCENT      NUMBER := 2;
32          A_PURCHASING_ENABLED_FLAG      NUMBER := 2;
33             A_PURCHASING_ITEM_FLAG      NUMBER := 2;
34                A_RFQ_REQUIRED_FLAG      NUMBER := 2;
35                  A_ROUNDING_FACTOR      NUMBER := 2;
36                     A_TAXABLE_FLAG      NUMBER := 2;
37                    A_UNIT_OF_ISSUE      NUMBER := 2;
38                     A_UN_NUMBER_ID      NUMBER := 2;
39      A_ALLOW_EXPRESS_DELIVERY_FLAG      NUMBER := 2;
40         A_ALLOW_SUBS_RECEIPTS_FLAG      NUMBER := 2;
41        A_ALLOW_UNORD_RECEIPTS_FLAG      NUMBER := 2;
42       A_DAYS_EARLY_RECEIPT_ALLOWED      NUMBER := 2;
43        A_DAYS_LATE_RECEIPT_ALLOWED      NUMBER := 2;
44         A_ENFORCE_SHIP_TO_LOC_CODE      NUMBER := 2;
45         A_INSPECTION_REQUIRED_FLAG      NUMBER := 2;
46          A_INVOICE_CLOSE_TOLERANCE      NUMBER := 2;
47           A_QTY_RCV_EXCEPTION_CODE      NUMBER := 2;
48                A_QTY_RCV_TOLERANCE      NUMBER := 2;
49      A_RECEIPT_DAYS_EXCEPTION_CODE      NUMBER := 2;
50            A_RECEIPT_REQUIRED_FLAG      NUMBER := 2;
51          A_RECEIVE_CLOSE_TOLERANCE      NUMBER := 2;
52             A_RECEIVING_ROUTING_ID      NUMBER := 2;
53            A_AUTO_LOT_ALPHA_PREFIX      NUMBER := 2;
54         A_AUTO_SERIAL_ALPHA_PREFIX      NUMBER := 2;
55         A_CYCLE_COUNT_ENABLED_FLAG      NUMBER := 2;
56              A_INVENTORY_ITEM_FLAG      NUMBER := 2;
57            A_LOCATION_CONTROL_CODE      NUMBER := 2;
58                 A_LOT_CONTROL_CODE      NUMBER := 2;
59         A_MTL_TRANSAC_ENABLED_FLAG      NUMBER := 2;
60       A_NEGATIVE_MEASUREMENT_ERROR      NUMBER := 2;
61                  A_RESERVABLE_TYPE      NUMBER := 2;
62           A_RESTRICT_LOCATORS_CODE      NUMBER := 2;
63     A_RESTRICT_SUBINVENTORIES_CODE      NUMBER := 2;
64        A_REVISION_QTY_CONTROL_CODE      NUMBER := 2;
65       A_SERIAL_NUMBER_CONTROL_CODE      NUMBER := 2;
66                  A_SHELF_LIFE_CODE      NUMBER := 2;
67                  A_SHELF_LIFE_DAYS      NUMBER := 2;
68            A_START_AUTO_LOT_NUMBER      NUMBER := 2;
69         A_START_AUTO_SERIAL_NUMBER      NUMBER := 2;
70               A_STOCK_ENABLED_FLAG      NUMBER := 2;
71                      A_UNIT_VOLUME      NUMBER := 2;
72                      A_UNIT_WEIGHT      NUMBER := 2;
73                  A_VOLUME_UOM_CODE      NUMBER := 2;
74                  A_WEIGHT_UOM_CODE      NUMBER := 2;
75                    A_CARRYING_COST      NUMBER := 2;
76                A_FIXED_DAYS_SUPPLY      NUMBER := 2;
77             A_FIXED_LOT_MULTIPLIER      NUMBER := 2;
78             A_FIXED_ORDER_QUANTITY      NUMBER := 2;
79          A_INVENTORY_PLANNING_CODE      NUMBER := 2;
80           A_MAXIMUM_ORDER_QUANTITY      NUMBER := 2;
81              A_MAX_MINMAX_QUANTITY      NUMBER := 2;
82           A_MINIMUM_ORDER_QUANTITY      NUMBER := 2;
83              A_MIN_MINMAX_QUANTITY      NUMBER := 2;
84            A_MRP_SAFETY_STOCK_CODE      NUMBER := 2;
85         A_MRP_SAFETY_STOCK_PERCENT      NUMBER := 2;
86                       A_ORDER_COST      NUMBER := 2;
87                     A_PLANNER_CODE      NUMBER := 2;
88         A_SAFETY_STOCK_BUCKET_DAYS      NUMBER := 2;
89           A_SOURCE_ORGANIZATION_ID      NUMBER := 2;
90              A_SOURCE_SUBINVENTORY      NUMBER := 2;
91                      A_SOURCE_TYPE      NUMBER := 2;
92            A_ACCEPTABLE_EARLY_DAYS      NUMBER := 2;
93         A_ACCEPTABLE_RATE_DECREASE      NUMBER := 2;
94         A_ACCEPTABLE_RATE_INCREASE      NUMBER := 2;
95                  A_AUTO_REDUCE_MPS      NUMBER := 2;
96           A_DEMAND_TIME_FENCE_CODE      NUMBER := 2;
97           A_DEMAND_TIME_FENCE_DAYS      NUMBER := 2;
98        A_END_ASSEMBLY_PEGGING_FLAG      NUMBER := 2;
99           A_MRP_CALCULATE_ATP_FLAG      NUMBER := 2;
100                A_MRP_PLANNING_CODE      NUMBER := 2;
101               A_OVERRUN_PERCENTAGE      NUMBER := 2;
102           A_PLANNING_EXCEPTION_SET      NUMBER := 2;
103           A_PLANNING_MAKE_BUY_CODE      NUMBER := 2;
104         A_PLANNING_TIME_FENCE_CODE      NUMBER := 2;
105         A_PLANNING_TIME_FENCE_DAYS      NUMBER := 2;
106         A_REPETITIVE_PLANNING_FLAG      NUMBER := 2;
107            A_ROUNDING_CONTROL_TYPE      NUMBER := 2;
108                   A_SHRINKAGE_RATE      NUMBER := 2;
109       A_CUMULATIVE_TOTAL_LEAD_TIME      NUMBER := 2;
110      A_CUM_MANUFACTURING_LEAD_TIME      NUMBER := 2;
111                  A_FIXED_LEAD_TIME      NUMBER := 2;
112                   A_FULL_LEAD_TIME      NUMBER := 2;
113         A_POSTPROCESSING_LEAD_TIME      NUMBER := 2;
114          A_PREPROCESSING_LEAD_TIME      NUMBER := 2;
115               A_VARIABLE_LEAD_TIME      NUMBER := 2;
116                A_BUILD_IN_WIP_FLAG      NUMBER := 2;
117            A_WIP_SUPPLY_LOCATOR_ID      NUMBER := 2;
118          A_WIP_SUPPLY_SUBINVENTORY      NUMBER := 2;
119                  A_WIP_SUPPLY_TYPE      NUMBER := 2;
120              A_ATP_COMPONENTS_FLAG      NUMBER := 2;
121                         A_ATP_FLAG      NUMBER := 2;
122                      A_ATP_RULE_ID      NUMBER := 2;
123                  A_COLLATERAL_FLAG      NUMBER := 2;
124      A_CUSTOMER_ORDER_ENABLED_FLAG      NUMBER := 2;
125              A_CUSTOMER_ORDER_FLAG      NUMBER := 2;
126             A_DEFAULT_SHIPPING_ORG      NUMBER := 2;
127      A_INTERNAL_ORDER_ENABLED_FLAG      NUMBER := 2;
128              A_INTERNAL_ORDER_FLAG      NUMBER := 2;
129                  A_PICKING_RULE_ID      NUMBER := 2;
130             A_PICK_COMPONENTS_FLAG      NUMBER := 2;
131          A_REPLENISH_TO_ORDER_FLAG      NUMBER := 2;
132                  A_RETURNABLE_FLAG      NUMBER := 2;
133          A_RETURN_INSPECTION_REQMT      NUMBER := 2;
134              A_SHIPPABLE_ITEM_FLAG      NUMBER := 2;
135         A_SHIP_MODEL_COMPLETE_FLAG      NUMBER := 2;
136             A_SO_TRANSACTIONS_FLAG      NUMBER := 2;
137               A_ACCOUNTING_RULE_ID      NUMBER := 2;
138            A_INVOICEABLE_ITEM_FLAG      NUMBER := 2;
139             A_INVOICE_ENABLED_FLAG      NUMBER := 2;
140                 A_ENGINEERING_DATE      NUMBER := 2;
141                A_INVOICING_RULE_ID      NUMBER := 2;
142                 A_PAYMENT_TERMS_ID      NUMBER := 2;
143                    A_SALES_ACCOUNT      NUMBER := 2;
144                         A_TAX_CODE      NUMBER := 2;
145             A_COVERAGE_SCHEDULE_ID      NUMBER := 2;
146              A_PURCHASING_TAX_CODE      NUMBER := 2;
147           A_MATERIAL_BILLABLE_FLAG      NUMBER := 2;
148              A_MAX_WARRANTY_AMOUNT      NUMBER := 2;
149      A_PREVENTIVE_MAINTENANCE_FLAG      NUMBER := 2;
150             A_PRORATE_SERVICE_FLAG      NUMBER := 2;
151        A_RESPONSE_TIME_PERIOD_CODE      NUMBER := 2;
152              A_RESPONSE_TIME_VALUE      NUMBER := 2;
153                 A_SERVICE_DURATION      NUMBER := 2;
154     A_SERVICE_DURATION_PERIOD_CODE      NUMBER := 2;
155               A_WARRANTY_VENDOR_ID      NUMBER := 2;
156         A_BASE_WARRANTY_SERVICE_ID      NUMBER := 2;
157                A_NEW_REVISION_CODE      NUMBER := 2;
158            A_PRIMARY_SPECIALIST_ID      NUMBER := 2;
159          A_SECONDARY_SPECIALIST_ID      NUMBER := 2;
160       A_SERVICEABLE_COMPONENT_FLAG      NUMBER := 2;
161        A_SERVICEABLE_ITEM_CLASS_ID      NUMBER := 2;
162         A_SERVICEABLE_PRODUCT_FLAG      NUMBER := 2;
163           A_SERVICE_STARTING_DELAY      NUMBER := 2;
164             A_ATO_FORECAST_CONTROL      NUMBER := 2;
165                      A_DESCRIPTION      NUMBER := 2;
166                 A_LONG_DESCRIPTION      NUMBER := 2;
167               A_LEAD_TIME_LOT_SIZE      NUMBER := 2;
168       A_POSITIVE_MEASUREMENT_ERROR      NUMBER := 2;
169          A_RELEASE_TIME_FENCE_CODE      NUMBER := 2;
170          A_RELEASE_TIME_FENCE_DAYS      NUMBER := 2;
171              A_CONTAINER_ITEM_FLAG      NUMBER := 2;
172                A_VEHICLE_ITEM_FLAG      NUMBER := 2;
173              A_MAXIMUM_LOAD_WEIGHT      NUMBER := 2;
174             A_MINIMUM_FILL_PERCENT      NUMBER := 2;
175                  A_INTERNAL_VOLUME      NUMBER := 2;
176              A_CONTAINER_TYPE_CODE      NUMBER := 2;
177         A_CHECK_SHORTAGES_FLAG             number  :=  2;
178      A_EFFECTIVITY_CONTROL              NUMBER  :=  2;
179    A_OVERCOMPLETION_TOLERANCE_TYP   NUMBER  :=  2;
180    A_OVERCOMPLETION_TOLERANCE_VAL   NUMBER  :=  2;
181    A_OVER_SHIPMENT_TOLERANCE          NUMBER  :=  2;
182    A_UNDER_SHIPMENT_TOLERANCE         NUMBER  :=  2;
183    A_OVER_RETURN_TOLERANCE            NUMBER  :=  2;
184    A_UNDER_RETURN_TOLERANCE           NUMBER  :=  2;
185    A_EQUIPMENT_TYPE                   NUMBER  :=  2;
186    A_RECOVERED_PART_DISP_CODE         NUMBER  :=  2;
187    A_DEFECT_TRACKING_ON_FLAG          NUMBER  :=  2;
188    A_EVENT_FLAG                       NUMBER  :=  2;
189    A_ELECTRONIC_FLAG                  NUMBER  :=  2;
190    A_DOWNLOADABLE_FLAG                NUMBER  :=  2;
191    A_VOL_DISCOUNT_EXEMPT_FLAG         NUMBER  :=  2;
192    A_COUPON_EXEMPT_FLAG               NUMBER  :=  2;
193    A_COMMS_NL_TRACKABLE_FLAG          NUMBER  :=  2;
194    A_ASSET_CREATION_CODE              NUMBER  :=  2;
195    A_COMMS_ACTIVATION_REQD_FLAG       NUMBER  :=  2;
196    A_ORDERABLE_ON_WEB_FLAG            NUMBER  :=  2;
197    A_BACK_ORDERABLE_FLAG              NUMBER  :=  2;
198      A_WEB_STATUS                       NUMBER  :=  2;
199      A_INDIVISIBLE_FLAG                 NUMBER  :=  2;
200    A_DIMENSION_UOM_CODE               NUMBER  :=  2;
201    A_UNIT_LENGTH                      NUMBER  :=  2;
202    A_UNIT_WIDTH                       NUMBER  :=  2;
203    A_UNIT_HEIGHT                      NUMBER  :=  2;
204    A_BULK_PICKED_FLAG                 NUMBER  :=  2;
205    A_LOT_STATUS_ENABLED               NUMBER  :=  2;
206    A_DEFAULT_LOT_STATUS_ID            NUMBER  :=  2;
207    A_SERIAL_STATUS_ENABLED            NUMBER  :=  2;
208    A_DEFAULT_SERIAL_STATUS_ID         NUMBER  :=  2;
209    A_LOT_SPLIT_ENABLED                NUMBER  :=  2;
210    A_LOT_MERGE_ENABLED                NUMBER  :=  2;
211    A_INVENTORY_CARRY_PENALTY          NUMBER  :=  2;
212    A_OPERATION_SLACK_PENALTY          NUMBER  :=  2;
213    A_FINANCING_ALLOWED_FLAG           NUMBER  :=  2;
214 
215    A_EAM_ITEM_TYPE                    NUMBER  :=  2;
216    A_EAM_ACTIVITY_TYPE_CODE           NUMBER  :=  2;
217    A_EAM_ACTIVITY_CAUSE_CODE          NUMBER  :=  2;
218    A_EAM_ACT_NOTIFICATION_FLAG        NUMBER  :=  2;
219    A_EAM_ACT_SHUTDOWN_STATUS          NUMBER  :=  2;
220    A_DUAL_UOM_CONTROL                 NUMBER  :=  2;
221    A_SECONDARY_UOM_CODE               NUMBER  :=  2;
222    A_DUAL_UOM_DEVIATION_HIGH          NUMBER  :=  2;
223    A_DUAL_UOM_DEVIATION_LOW           NUMBER  :=  2;
224 
225    A_CONTRACT_ITEM_TYPE_CODE          NUMBER  :=  2;
226 --11.5.10   A_SUBSCRIPTION_DEPEND_FLAG         NUMBER  :=  2;
227 
228    A_SERV_REQ_ENABLED_CODE            NUMBER  :=  2;
229    A_SERV_BILLING_ENABLED_FLAG        NUMBER  :=  2;
230 --11.5.10   A_SERV_IMPORTANCE_LEVEL            NUMBER  :=  2;
231    A_PLANNED_INV_POINT_FLAG           NUMBER  :=  2;
232    A_LOT_TRANSLATE_ENABLED            NUMBER  :=  2;
233    A_DEFAULT_SO_SOURCE_TYPE           NUMBER  :=  2;
234    A_CREATE_SUPPLY_FLAG               NUMBER  :=  2;
235    A_SUBSTITUTION_WINDOW_CODE         NUMBER  :=  2;
236    A_SUBSTITUTION_WINDOW_DAYS         NUMBER  :=  2;
237    A_LOT_SUBSTITUTION_ENABLED         NUMBER  :=  2;
238    A_MINIMUM_LICENSE_QUANTITY         NUMBER  :=  2;
239    A_EAM_ACTIVITY_SOURCE_CODE         NUMBER  :=  2;
240    A_IB_ITEM_INSTANCE_CLASS           NUMBER  :=  2;
241    A_CONFIG_MODEL_TYPE                NUMBER  :=  2;
242 -- added for 11.5.10
243    A_TRACKING_QUANTITY_IND            NUMBER  :=  2;
244    A_ONT_PRICING_QTY_SOURCE           NUMBER  :=  2;
245    A_SECONDARY_DEFAULT_IND            NUMBER  :=  2;
246    A_AUTO_CREATED_CONFIG_FLAG         NUMBER  :=  2;
247    A_CONFIG_ORGS                      NUMBER  :=  2;
248    A_CONFIG_MATCH                     NUMBER  :=  2;
249    A_VMI_MINIMUM_UNITS         NUMBER  := 2;
250    A_VMI_MINIMUM_DAYS          NUMBER  := 2;
251    A_VMI_MAXIMUM_UNITS         NUMBER  := 2;
252    A_VMI_MAXIMUM_DAYS          NUMBER  := 2;
253    A_VMI_FIXED_ORDER_QUANTITY  NUMBER  := 2;
254    A_SO_AUTHORIZATION_FLAG     NUMBER  := 2;
255    A_CONSIGNED_FLAG            NUMBER  := 2;
256    A_ASN_AUTOEXPIRE_FLAG       NUMBER  := 2;
257    A_VMI_FORECAST_TYPE         NUMBER  := 2;
258    A_FORECAST_HORIZON          NUMBER  := 2;
259    A_EXCLUDE_FROM_BUDGET_FLAG  NUMBER  := 2;
260    A_DAYS_TGT_INV_SUPPLY       NUMBER  := 2;
261    A_DAYS_TGT_INV_WINDOW       NUMBER  := 2;
262    A_DAYS_MAX_INV_SUPPLY       NUMBER  := 2;
263    A_DAYS_MAX_INV_WINDOW       NUMBER  := 2;
264    A_DRP_PLANNED_FLAG          NUMBER  := 2;
265    A_CRITICAL_COMPONENT_FLAG   NUMBER  := 2;
266    A_CONTINOUS_TRANSFER        NUMBER  := 2;
267    A_CONVERGENCE               NUMBER  := 2;
268    A_DIVERGENCE                NUMBER  := 2;
269 
270    /* Start Bug 3713912 */
271    A_LOT_DIVISIBLE_FLAG                 NUMBER  := 2;
272    A_GRADE_CONTROL_FLAG                 NUMBER  := 2;
273    A_DEFAULT_GRADE                      NUMBER  := 2;
274    A_CHILD_LOT_FLAG                     NUMBER  := 2;
275    A_PARENT_CHILD_GENERATION_FLAG       NUMBER  := 2;
276    A_CHILD_LOT_PREFIX                   NUMBER  := 2;
277    A_CHILD_LOT_STARTING_NUMBER          NUMBER  := 2;
278    A_CHILD_LOT_VALIDATION_FLAG          NUMBER  := 2;
279    A_COPY_LOT_ATTRIBUTE_FLAG            NUMBER  := 2;
280    A_RECIPE_ENABLED_FLAG                NUMBER  := 2;
281    A_PROCESS_QUALITY_ENABLED_FLAG       NUMBER  := 2;
282    A_PROCESS_EXEC_ENABLED_FLAG          NUMBER  := 2;
283    A_PROCESS_COSTING_ENABLED_FLAG       NUMBER  := 2;
284    A_PROCESS_SUPPLY_SUBINVENTORY        NUMBER  := 2;
285    A_PROCESS_SUPPLY_LOCATOR_ID          NUMBER  := 2;
286    A_PROCESS_YIELD_SUBINVENTORY         NUMBER  := 2;
287    A_PROCESS_YIELD_LOCATOR_ID           NUMBER  := 2;
288    A_HAZARDOUS_MATERIAL_FLAG            NUMBER  := 2;
289    A_CAS_NUMBER                         NUMBER  := 2;
290    A_RETEST_INTERVAL                    NUMBER  := 2;
291    A_EXPIRATION_ACTION_INTERVAL         NUMBER  := 2;
292    A_EXPIRATION_ACTION_CODE             NUMBER  := 2;
293    A_MATURITY_DAYS                      NUMBER  := 2;
294    A_HOLD_DAYS                          NUMBER  := 2;
295    --R12 Enahancement
296    A_CHARGE_PERIODICITY_CODE            NUMBER  := 2;
297    A_REPAIR_LEADTIME                    NUMBER  := 2;
298    A_REPAIR_YIELD                       NUMBER  := 2;
299    A_PREPOSITION_POINT                  NUMBER  := 2;
300    A_REPAIR_PROGRAM                     NUMBER  := 2;
301    A_SUBCONTRACTING_COMPONENT           NUMBER  := 2;
302    A_OUTSOURCED_ASSEMBLY                NUMBER  := 2;
303 
304    /* End Bug 3713912 */
305 
306 --Bug: 5437967 This procedure prevents insertion of child records
307 --             in msii if no Master Controlled Attribute is changed in Master Org
308 PROCEDURE Check_create_child_records
309 (
310    mast_rowid                    ROWID,
311    item_id                       NUMBER,
312    org_id                        NUMBER,
313    check_create_child OUT NOCOPY BOOLEAN
314 );
315 
316 
317 FUNCTION validate_item_update_master
318 (
319         org_id          NUMBER,
320         all_org         NUMBER          := 2,
321         prog_appid      NUMBER          := -1,
322         prog_id         NUMBER          := -1,
323         request_id      NUMBER          := -1,
324         user_id         NUMBER          := -1,
325         login_id        NUMBER          := -1,
326         err_text IN OUT NOCOPY VARCHAR2,
327         xset_id  IN     NUMBER          DEFAULT NULL
328 )
329 RETURN INTEGER
330 IS
331 
332   /* Bug 4460686. Dont pick up master records when AUTO_CHILD already exists as
333      this will create duplicate AUTO_CHILD records */
334 
335    CURSOR C_msii_master_records
336    IS
337       SELECT
338         ROWID,
339         INVENTORY_ITEM_ID,
340         ORGANIZATION_ID,
341         TRANSACTION_ID
342       FROM
343          MTL_SYSTEM_ITEMS_INTERFACE
344       WHERE
345              process_flag = 4
346          AND set_process_id = xset_id
347          AND ( (organization_id = org_id) or (all_org = 1) )
348          AND organization_id IN
349              ( select organization_id
350                from MTL_PARAMETERS
351                where organization_id = master_organization_id
352              )
353 	 AND not exists
354 	    (select 1 from mtl_system_items_interface
355 	     where set_process_id = xset_id + 1000000000000
356 	       and transaction_type = 'AUTO_CHILD'
357 	       and process_flag = 4
358 	    );
359 
360 -- Bug fix 3005880 Moved cursor code from FUNCTION copy_master_to_child
361 -- so that this cursor will be executed only twice once for updation of master
362 -- record and once for updation of all child records.
363 
364    CURSOR C_item_attributes
365    IS
366       SELECT  attribute_name
367            ,  control_level
368       FROM  mtl_item_attributes
369       WHERE
370              control_level = 1
371          AND attribute_group_id_gui IN
372              (20, 25, 30, 31, 35, 40, 41, 51,
373               60, 62, 65, 70, 80, 90, 100, 120, 130);  /* Bug 3713912 Added 130*/
374 
375         ret_code                NUMBER  := 1;
376         ret_code_update         NUMBER;
377         dumm_status             NUMBER;
378         error_text              VARCHAR2(250);
379         l_process_flag_3        NUMBER  := 3;
380         m_process_flag          NUMBER;
381         t_trans_id              NUMBER;
382         t_organization_id       NUMBER;
383         t_inventory_item_id     NUMBER;
384 	l_attribute_name        VARCHAR2(100);
385 
386 	l_inv_debug_level	NUMBER := INVPUTLI.get_debug_level;     --Bug: 4667452
387 
388 	tmp_xset_id             NUMBER ; --5351611
389 
390 BEGIN
391 
392    IF l_inv_debug_level IN(101, 102) THEN
393       INVPUTLI.info('INVUPD2B: Inside validate_item_update_master'|| '***orgid: ' || TO_CHAR(org_id));
394    END IF;
395 
396    -- Set the attribute level for those attributes under master control.
397    -- Bug fix 3005880
398    FOR rec IN C_item_attributes loop -- {
399 
400       l_attribute_name := substr(rec.attribute_name, 18);
401 
402       IF    l_attribute_name = 'ALLOWED_UNITS_LOOKUP_CODE'        THEN    A_ALLOWED_UNITS_LOOKUP_CODE := rec.control_level;
403       ELSIF l_attribute_name = 'INVENTORY_ITEM_STATUS_CODE'       THEN    A_INVENTORY_ITEM_STATUS_CODE := rec.control_level;
404       ELSIF l_attribute_name = 'ITEM_TYPE'                        THEN    A_ITEM_TYPE := rec.control_level;
405       ELSIF l_attribute_name = 'PRIMARY_UNIT_OF_MEASURE'          THEN    A_PRIMARY_UNIT_OF_MEASURE := rec.control_level;
406       ELSIF l_attribute_name = 'BASE_ITEM_ID'                     THEN    A_BASE_ITEM_ID := rec.control_level;
407       ELSIF l_attribute_name = 'BOM_ENABLED_FLAG'                 THEN    A_BOM_ENABLED_FLAG := rec.control_level;
408       ELSIF l_attribute_name = 'BOM_ITEM_TYPE'                    THEN    A_BOM_ITEM_TYPE := rec.control_level;
409       ELSIF l_attribute_name = 'ENGINEERING_ECN_CODE'             THEN    A_ENGINEERING_ECN_CODE := rec.control_level;
410       ELSIF l_attribute_name = 'ENGINEERING_ITEM_ID'              THEN    A_ENGINEERING_ITEM_ID := rec.control_level;
411       ELSIF l_attribute_name = 'ENG_ITEM_FLAG'                    THEN    A_ENG_ITEM_FLAG := rec.control_level;
412       ELSIF l_attribute_name = 'COSTING_ENABLED_FLAG'             THEN    A_COSTING_ENABLED_FLAG := rec.control_level;
413       ELSIF l_attribute_name = 'COST_OF_SALES_ACCOUNT'            THEN    A_COST_OF_SALES_ACCOUNT := rec.control_level;
414       ELSIF l_attribute_name = 'DEFAULT_INCLUDE_IN_ROLLUP_FLAG'   THEN    A_DEF_INCL_IN_ROLLUP_FLAG := rec.control_level;
415       ELSIF l_attribute_name = 'INVENTORY_ASSET_FLAG'             THEN    A_INVENTORY_ASSET_FLAG := rec.control_level;
416       ELSIF l_attribute_name = 'STD_LOT_SIZE'                     THEN    A_STD_LOT_SIZE := rec.control_level;
417       ELSIF l_attribute_name = 'ALLOW_ITEM_DESC_UPDATE_FLAG'      THEN    A_ALLOW_ITEM_DESC_UPDATE_FLAG := rec.control_level;
418       ELSIF l_attribute_name = 'ASSET_CATEGORY_ID'                THEN    A_ASSET_CATEGORY_ID := rec.control_level;
419       ELSIF l_attribute_name = 'BUYER_ID'                         THEN    A_BUYER_ID := rec.control_level;
420       ELSIF l_attribute_name = 'ENCUMBRANCE_ACCOUNT'              THEN    A_ENCUMBRANCE_ACCOUNT := rec.control_level;
421       ELSIF l_attribute_name = 'EXPENSE_ACCOUNT'                  THEN    A_EXPENSE_ACCOUNT := rec.control_level;
422       ELSIF l_attribute_name = 'HAZARD_CLASS_ID'                  THEN    A_HAZARD_CLASS_ID := rec.control_level;
423       ELSIF l_attribute_name = 'LIST_PRICE_PER_UNIT'              THEN    A_LIST_PRICE_PER_UNIT := rec.control_level;
424       ELSIF l_attribute_name = 'MARKET_PRICE'                     THEN    A_MARKET_PRICE := rec.control_level;
425       ELSIF l_attribute_name = 'MUST_USE_APPROVED_VENDOR_FLAG'    THEN    A_MU_APPRVD_VENDOR_FLAG := rec.control_level;
426       ELSIF l_attribute_name = 'OUTSIDE_OPERATION_FLAG'           THEN    A_OUTSIDE_OPERATION_FLAG := rec.control_level;
427       ELSIF l_attribute_name = 'OUTSIDE_OPERATION_UOM_TYPE'       THEN    A_OUTSIDE_OPERATION_UOM_TYPE := rec.control_level;
428       ELSIF l_attribute_name = 'PRICE_TOLERANCE_PERCENT'          THEN    A_PRICE_TOLERANCE_PERCENT := rec.control_level;
429       ELSIF l_attribute_name = 'PURCHASING_ENABLED_FLAG'          THEN    A_PURCHASING_ENABLED_FLAG := rec.control_level;
430       ELSIF l_attribute_name = 'PURCHASING_ITEM_FLAG'             THEN    A_PURCHASING_ITEM_FLAG := rec.control_level;
431       ELSIF l_attribute_name = 'RFQ_REQUIRED_FLAG'                THEN    A_RFQ_REQUIRED_FLAG := rec.control_level;
432       ELSIF l_attribute_name = 'ROUNDING_FACTOR'                  THEN    A_ROUNDING_FACTOR := rec.control_level;
433       ELSIF l_attribute_name = 'TAXABLE_FLAG'                     THEN    A_TAXABLE_FLAG := rec.control_level;
434       ELSIF l_attribute_name = 'UNIT_OF_ISSUE'                    THEN    A_UNIT_OF_ISSUE := rec.control_level;
435       ELSIF l_attribute_name = 'UN_NUMBER_ID'                     THEN    A_UN_NUMBER_ID := rec.control_level;
436       ELSIF l_attribute_name = 'ALLOW_EXPRESS_DELIVERY_FLAG'      THEN    A_ALLOW_EXPRESS_DELIVERY_FLAG := rec.control_level;
437       ELSIF l_attribute_name = 'ALLOW_SUBSTITUTE_RECEIPTS_FLAG'   THEN    A_ALLOW_SUBS_RECEIPTS_FLAG := rec.control_level;
438       ELSIF l_attribute_name = 'ALLOW_UNORDERED_RECEIPTS_FLAG'    THEN    A_ALLOW_UNORD_RECEIPTS_FLAG := rec.control_level;
439       ELSIF l_attribute_name = 'DAYS_EARLY_RECEIPT_ALLOWED'       THEN    A_DAYS_EARLY_RECEIPT_ALLOWED := rec.control_level;
440       ELSIF l_attribute_name = 'DAYS_LATE_RECEIPT_ALLOWED'        THEN    A_DAYS_LATE_RECEIPT_ALLOWED := rec.control_level;
441       ELSIF l_attribute_name = 'ENFORCE_SHIP_TO_LOCATION_CODE'    THEN    A_ENFORCE_SHIP_TO_LOC_CODE := rec.control_level;
442       ELSIF l_attribute_name = 'INSPECTION_REQUIRED_FLAG'         THEN    A_INSPECTION_REQUIRED_FLAG := rec.control_level;
443       ELSIF l_attribute_name = 'INVOICE_CLOSE_TOLERANCE'          THEN    A_INVOICE_CLOSE_TOLERANCE := rec.control_level;
444       ELSIF l_attribute_name = 'QTY_RCV_EXCEPTION_CODE'           THEN    A_QTY_RCV_EXCEPTION_CODE := rec.control_level;
445       ELSIF l_attribute_name = 'QTY_RCV_TOLERANCE'                THEN    A_QTY_RCV_TOLERANCE := rec.control_level;
446       ELSIF l_attribute_name = 'RECEIPT_DAYS_EXCEPTION_CODE'      THEN    A_RECEIPT_DAYS_EXCEPTION_CODE := rec.control_level;
447       ELSIF l_attribute_name = 'RECEIPT_REQUIRED_FLAG'            THEN    A_RECEIPT_REQUIRED_FLAG := rec.control_level;
448       ELSIF l_attribute_name = 'RECEIVE_CLOSE_TOLERANCE'          THEN    A_RECEIVE_CLOSE_TOLERANCE := rec.control_level;
449       ELSIF l_attribute_name = 'RECEIVING_ROUTING_ID'             THEN    A_RECEIVING_ROUTING_ID := rec.control_level;
450       ELSIF l_attribute_name = 'AUTO_LOT_ALPHA_PREFIX'            THEN    A_AUTO_LOT_ALPHA_PREFIX := rec.control_level;
451       ELSIF l_attribute_name = 'AUTO_SERIAL_ALPHA_PREFIX'         THEN    A_AUTO_SERIAL_ALPHA_PREFIX := rec.control_level;
452       ELSIF l_attribute_name = 'CYCLE_COUNT_ENABLED_FLAG'         THEN    A_CYCLE_COUNT_ENABLED_FLAG := rec.control_level;
453       ELSIF l_attribute_name = 'INVENTORY_ITEM_FLAG'              THEN    A_INVENTORY_ITEM_FLAG := rec.control_level;
454       ELSIF l_attribute_name = 'LOCATION_CONTROL_CODE'            THEN    A_LOCATION_CONTROL_CODE := rec.control_level;
455       ELSIF l_attribute_name = 'LOT_CONTROL_CODE'                 THEN    A_LOT_CONTROL_CODE := rec.control_level;
456       ELSIF l_attribute_name = 'MTL_TRANSACTIONS_ENABLED_FLAG'    THEN    A_MTL_TRANSAC_ENABLED_FLAG := rec.control_level;
457       ELSIF l_attribute_name = 'NEGATIVE_MEASUREMENT_ERROR'       THEN    A_NEGATIVE_MEASUREMENT_ERROR := rec.control_level;
458       ELSIF l_attribute_name = 'RESERVABLE_TYPE'                  THEN    A_RESERVABLE_TYPE := rec.control_level;
459       ELSIF l_attribute_name = 'RESTRICT_LOCATORS_CODE'           THEN    A_RESTRICT_LOCATORS_CODE := rec.control_level;
460       ELSIF l_attribute_name = 'RESTRICT_SUBINVENTORIES_CODE'     THEN    A_RESTRICT_SUBINVENTORIES_CODE := rec.control_level;
461       ELSIF l_attribute_name = 'REVISION_QTY_CONTROL_CODE'        THEN    A_REVISION_QTY_CONTROL_CODE := rec.control_level;
462       ELSIF l_attribute_name = 'SERIAL_NUMBER_CONTROL_CODE'       THEN    A_SERIAL_NUMBER_CONTROL_CODE := rec.control_level;
463       ELSIF l_attribute_name = 'SHELF_LIFE_CODE'                  THEN    A_SHELF_LIFE_CODE := rec.control_level;
464       ELSIF l_attribute_name = 'SHELF_LIFE_DAYS'                  THEN    A_SHELF_LIFE_DAYS := rec.control_level;
465       ELSIF l_attribute_name = 'START_AUTO_LOT_NUMBER'            THEN    A_START_AUTO_LOT_NUMBER := rec.control_level;
466       ELSIF l_attribute_name = 'START_AUTO_SERIAL_NUMBER'         THEN    A_START_AUTO_SERIAL_NUMBER := rec.control_level;
467       ELSIF l_attribute_name = 'STOCK_ENABLED_FLAG'               THEN    A_STOCK_ENABLED_FLAG := rec.control_level;
468       ELSIF l_attribute_name = 'UNIT_VOLUME'                      THEN    A_UNIT_VOLUME := rec.control_level;
469       ELSIF l_attribute_name = 'UNIT_WEIGHT'                      THEN    A_UNIT_WEIGHT := rec.control_level;
470       ELSIF l_attribute_name = 'VOLUME_UOM_CODE'                  THEN    A_VOLUME_UOM_CODE := rec.control_level;
471       ELSIF l_attribute_name = 'WEIGHT_UOM_CODE'                  THEN    A_WEIGHT_UOM_CODE := rec.control_level;
472       ELSIF l_attribute_name = 'CARRYING_COST'                    THEN    A_CARRYING_COST := rec.control_level;
473       ELSIF l_attribute_name = 'FIXED_DAYS_SUPPLY'                THEN    A_FIXED_DAYS_SUPPLY := rec.control_level;
474       ELSIF l_attribute_name = 'FIXED_LOT_MULTIPLIER'             THEN    A_FIXED_LOT_MULTIPLIER := rec.control_level;
475       ELSIF l_attribute_name = 'FIXED_ORDER_QUANTITY'             THEN    A_FIXED_ORDER_QUANTITY := rec.control_level;
476       ELSIF l_attribute_name = 'INVENTORY_PLANNING_CODE'          THEN    A_INVENTORY_PLANNING_CODE := rec.control_level;
477       ELSIF l_attribute_name = 'MAXIMUM_ORDER_QUANTITY'           THEN    A_MAXIMUM_ORDER_QUANTITY := rec.control_level;
478       ELSIF l_attribute_name = 'MAX_MINMAX_QUANTITY'              THEN    A_MAX_MINMAX_QUANTITY := rec.control_level;
479       ELSIF l_attribute_name = 'MINIMUM_ORDER_QUANTITY'           THEN    A_MINIMUM_ORDER_QUANTITY := rec.control_level;
480       ELSIF l_attribute_name = 'MIN_MINMAX_QUANTITY'              THEN    A_MIN_MINMAX_QUANTITY := rec.control_level;
481       ELSIF l_attribute_name = 'MRP_SAFETY_STOCK_CODE'            THEN    A_MRP_SAFETY_STOCK_CODE := rec.control_level;
482       ELSIF l_attribute_name = 'MRP_SAFETY_STOCK_PERCENT'         THEN    A_MRP_SAFETY_STOCK_PERCENT := rec.control_level;
483       ELSIF l_attribute_name = 'ORDER_COST'                       THEN    A_ORDER_COST := rec.control_level;
484       ELSIF l_attribute_name = 'PLANNER_CODE'                     THEN    A_PLANNER_CODE := rec.control_level;
485       ELSIF l_attribute_name = 'SAFETY_STOCK_BUCKET_DAYS'         THEN    A_SAFETY_STOCK_BUCKET_DAYS := rec.control_level;
486       ELSIF l_attribute_name = 'SOURCE_ORGANIZATION_ID'           THEN    A_SOURCE_ORGANIZATION_ID := rec.control_level;
487       ELSIF l_attribute_name = 'SOURCE_SUBINVENTORY'              THEN    A_SOURCE_SUBINVENTORY := rec.control_level;
488       ELSIF l_attribute_name = 'SOURCE_TYPE'                      THEN    A_SOURCE_TYPE := rec.control_level;
489       ELSIF l_attribute_name = 'ACCEPTABLE_EARLY_DAYS'            THEN    A_ACCEPTABLE_EARLY_DAYS := rec.control_level;
490       ELSIF l_attribute_name = 'ACCEPTABLE_RATE_DECREASE'         THEN    A_ACCEPTABLE_RATE_DECREASE := rec.control_level;
491       ELSIF l_attribute_name = 'ACCEPTABLE_RATE_INCREASE'         THEN    A_ACCEPTABLE_RATE_INCREASE := rec.control_level;
492       ELSIF l_attribute_name = 'AUTO_REDUCE_MPS'                  THEN    A_AUTO_REDUCE_MPS := rec.control_level;
493       ELSIF l_attribute_name = 'DEMAND_TIME_FENCE_CODE'           THEN    A_DEMAND_TIME_FENCE_CODE := rec.control_level;
494       ELSIF l_attribute_name = 'DEMAND_TIME_FENCE_DAYS'           THEN    A_DEMAND_TIME_FENCE_DAYS := rec.control_level;
495       ELSIF l_attribute_name = 'END_ASSEMBLY_PEGGING_FLAG'        THEN    A_END_ASSEMBLY_PEGGING_FLAG := rec.control_level;
496       ELSIF l_attribute_name = 'MRP_CALCULATE_ATP_FLAG'           THEN    A_MRP_CALCULATE_ATP_FLAG := rec.control_level;
497       ELSIF l_attribute_name = 'MRP_PLANNING_CODE'                THEN    A_MRP_PLANNING_CODE := rec.control_level;
498       ELSIF l_attribute_name = 'OVERRUN_PERCENTAGE'               THEN    A_OVERRUN_PERCENTAGE := rec.control_level;
499       ELSIF l_attribute_name = 'PLANNING_EXCEPTION_SET'           THEN    A_PLANNING_EXCEPTION_SET := rec.control_level;
500       ELSIF l_attribute_name = 'PLANNING_MAKE_BUY_CODE'           THEN    A_PLANNING_MAKE_BUY_CODE := rec.control_level;
501       ELSIF l_attribute_name = 'PLANNING_TIME_FENCE_CODE'         THEN    A_PLANNING_TIME_FENCE_CODE := rec.control_level;
502       ELSIF l_attribute_name = 'PLANNING_TIME_FENCE_DAYS'         THEN    A_PLANNING_TIME_FENCE_DAYS := rec.control_level;
503       ELSIF l_attribute_name = 'REPETITIVE_PLANNING_FLAG'         THEN    A_REPETITIVE_PLANNING_FLAG := rec.control_level;
504       ELSIF l_attribute_name = 'ROUNDING_CONTROL_TYPE'            THEN    A_ROUNDING_CONTROL_TYPE := rec.control_level;
505       ELSIF l_attribute_name = 'SHRINKAGE_RATE'                   THEN    A_SHRINKAGE_RATE := rec.control_level;
506       ELSIF l_attribute_name = 'CUMULATIVE_TOTAL_LEAD_TIME'       THEN    A_CUMULATIVE_TOTAL_LEAD_TIME := rec.control_level;
507       ELSIF l_attribute_name = 'CUM_MANUFACTURING_LEAD_TIME'      THEN    A_CUM_MANUFACTURING_LEAD_TIME := rec.control_level;
508       ELSIF l_attribute_name = 'FIXED_LEAD_TIME'                  THEN    A_FIXED_LEAD_TIME := rec.control_level;
509       ELSIF l_attribute_name = 'FULL_LEAD_TIME'                   THEN    A_FULL_LEAD_TIME := rec.control_level;
510       ELSIF l_attribute_name = 'POSTPROCESSING_LEAD_TIME'         THEN    A_POSTPROCESSING_LEAD_TIME := rec.control_level;
511       ELSIF l_attribute_name = 'PREPROCESSING_LEAD_TIME'          THEN    A_PREPROCESSING_LEAD_TIME := rec.control_level;
512       ELSIF l_attribute_name = 'VARIABLE_LEAD_TIME'               THEN    A_VARIABLE_LEAD_TIME := rec.control_level;
513       ELSIF l_attribute_name = 'BUILD_IN_WIP_FLAG'                THEN    A_BUILD_IN_WIP_FLAG := rec.control_level;
514       ELSIF l_attribute_name = 'WIP_SUPPLY_LOCATOR_ID'            THEN    A_WIP_SUPPLY_LOCATOR_ID := rec.control_level;
515       ELSIF l_attribute_name = 'WIP_SUPPLY_SUBINVENTORY'          THEN    A_WIP_SUPPLY_SUBINVENTORY := rec.control_level;
516       ELSIF l_attribute_name = 'WIP_SUPPLY_TYPE'                  THEN    A_WIP_SUPPLY_TYPE := rec.control_level;
517       ELSIF l_attribute_name = 'ATP_COMPONENTS_FLAG'              THEN    A_ATP_COMPONENTS_FLAG := rec.control_level;
518       ELSIF l_attribute_name = 'ATP_FLAG'                         THEN    A_ATP_FLAG := rec.control_level;
519       ELSIF l_attribute_name = 'ATP_RULE_ID'                      THEN    A_ATP_RULE_ID := rec.control_level;
520       ELSIF l_attribute_name = 'COLLATERAL_FLAG'                  THEN    A_COLLATERAL_FLAG := rec.control_level;
521       ELSIF l_attribute_name = 'CUSTOMER_ORDER_ENABLED_FLAG'      THEN    A_CUSTOMER_ORDER_ENABLED_FLAG := rec.control_level;
522       ELSIF l_attribute_name = 'CUSTOMER_ORDER_FLAG'              THEN    A_CUSTOMER_ORDER_FLAG := rec.control_level;
523       ELSIF l_attribute_name = 'DEFAULT_SHIPPING_ORG'             THEN    A_DEFAULT_SHIPPING_ORG := rec.control_level;
524       ELSIF l_attribute_name = 'INTERNAL_ORDER_ENABLED_FLAG'      THEN    A_INTERNAL_ORDER_ENABLED_FLAG := rec.control_level;
525       ELSIF l_attribute_name = 'INTERNAL_ORDER_FLAG'              THEN    A_INTERNAL_ORDER_FLAG := rec.control_level;
526       ELSIF l_attribute_name = 'PICKING_RULE_ID'                  THEN    A_PICKING_RULE_ID := rec.control_level;
527       ELSIF l_attribute_name = 'PICK_COMPONENTS_FLAG'             THEN    A_PICK_COMPONENTS_FLAG := rec.control_level;
528       ELSIF l_attribute_name = 'REPLENISH_TO_ORDER_FLAG'          THEN    A_REPLENISH_TO_ORDER_FLAG := rec.control_level;
529       ELSIF l_attribute_name = 'RETURNABLE_FLAG'                  THEN    A_RETURNABLE_FLAG := rec.control_level;
530       ELSIF l_attribute_name = 'RETURN_INSPECTION_REQUIREMENT'    THEN    A_RETURN_INSPECTION_REQMT := rec.control_level;
531       ELSIF l_attribute_name = 'SHIPPABLE_ITEM_FLAG'              THEN    A_SHIPPABLE_ITEM_FLAG := rec.control_level;
532       ELSIF l_attribute_name = 'SHIP_MODEL_COMPLETE_FLAG'         THEN    A_SHIP_MODEL_COMPLETE_FLAG := rec.control_level;
533       ELSIF l_attribute_name = 'SO_TRANSACTIONS_FLAG'             THEN    A_SO_TRANSACTIONS_FLAG := rec.control_level;
534       ELSIF l_attribute_name = 'ACCOUNTING_RULE_ID'               THEN    A_ACCOUNTING_RULE_ID := rec.control_level;
535       ELSIF l_attribute_name = 'INVOICEABLE_ITEM_FLAG'            THEN    A_INVOICEABLE_ITEM_FLAG := rec.control_level;
536       ELSIF l_attribute_name = 'INVOICE_ENABLED_FLAG'             THEN    A_INVOICE_ENABLED_FLAG := rec.control_level;
537       ELSIF l_attribute_name = 'ENGINEERING_DATE'                 THEN    A_ENGINEERING_DATE := rec.control_level;
538       ELSIF l_attribute_name = 'INVOICING_RULE_ID'                THEN    A_INVOICING_RULE_ID := rec.control_level;
539       ELSIF l_attribute_name = 'PAYMENT_TERMS_ID'                 THEN    A_PAYMENT_TERMS_ID := rec.control_level;
540       ELSIF l_attribute_name = 'SALES_ACCOUNT'                    THEN    A_SALES_ACCOUNT := rec.control_level;
541       ELSIF l_attribute_name = 'TAX_CODE'                         THEN    A_TAX_CODE := rec.control_level;
542       ELSIF l_attribute_name = 'COVERAGE_SCHEDULE_ID'             THEN    A_COVERAGE_SCHEDULE_ID := rec.control_level;
543       ELSIF l_attribute_name = 'PURCHASING_TAX_CODE'              THEN    A_PURCHASING_TAX_CODE := rec.control_level;
544       ELSIF l_attribute_name = 'MATERIAL_BILLABLE_FLAG'           THEN    A_MATERIAL_BILLABLE_FLAG := rec.control_level;
545       ELSIF l_attribute_name = 'MAX_WARRANTY_AMOUNT'              THEN    A_MAX_WARRANTY_AMOUNT := rec.control_level;
546       ELSIF l_attribute_name = 'PREVENTIVE_MAINTENANCE_FLAG'      THEN    A_PREVENTIVE_MAINTENANCE_FLAG := rec.control_level;
547       ELSIF l_attribute_name = 'PRORATE_SERVICE_FLAG'             THEN    A_PRORATE_SERVICE_FLAG := rec.control_level;
548       ELSIF l_attribute_name = 'RESPONSE_TIME_PERIOD_CODE'        THEN    A_RESPONSE_TIME_PERIOD_CODE := rec.control_level;
549       ELSIF l_attribute_name = 'RESPONSE_TIME_VALUE'              THEN    A_RESPONSE_TIME_VALUE := rec.control_level;
550       ELSIF l_attribute_name = 'SERVICE_DURATION'                 THEN    A_SERVICE_DURATION := rec.control_level;
551       ELSIF l_attribute_name = 'SERVICE_DURATION_PERIOD_CODE'     THEN    A_SERVICE_DURATION_PERIOD_CODE := rec.control_level;
552       ELSIF l_attribute_name = 'WARRANTY_VENDOR_ID'               THEN    A_WARRANTY_VENDOR_ID := rec.control_level;
553       ELSIF l_attribute_name = 'BASE_WARRANTY_SERVICE_ID'         THEN    A_BASE_WARRANTY_SERVICE_ID := rec.control_level;
554       ELSIF l_attribute_name = 'NEW_REVISION_CODE'                THEN    A_NEW_REVISION_CODE := rec.control_level;
555       ELSIF l_attribute_name = 'PRIMARY_SPECIALIST_ID'            THEN    A_PRIMARY_SPECIALIST_ID := rec.control_level;
556       ELSIF l_attribute_name = 'SECONDARY_SPECIALIST_ID'          THEN    A_SECONDARY_SPECIALIST_ID := rec.control_level;
557       ELSIF l_attribute_name = 'SERVICEABLE_COMPONENT_FLAG'       THEN    A_SERVICEABLE_COMPONENT_FLAG := rec.control_level;
558       ELSIF l_attribute_name = 'SERVICEABLE_ITEM_CLASS_ID'        THEN    A_SERVICEABLE_ITEM_CLASS_ID := rec.control_level;
559       ELSIF l_attribute_name = 'SERVICEABLE_PRODUCT_FLAG'         THEN    A_SERVICEABLE_PRODUCT_FLAG := rec.control_level;
560       ELSIF l_attribute_name = 'SERVICE_STARTING_DELAY'           THEN    A_SERVICE_STARTING_DELAY := rec.control_level;
561       ELSIF l_attribute_name = 'ATO_FORECAST_CONTROL'             THEN    A_ATO_FORECAST_CONTROL := rec.control_level;
562       ELSIF l_attribute_name = 'DESCRIPTION'                      THEN    A_DESCRIPTION := rec.control_level;
563       ELSIF l_attribute_name = 'LONG_DESCRIPTION'                 THEN    A_LONG_DESCRIPTION := rec.control_level;
564       ELSIF l_attribute_name = 'LEAD_TIME_LOT_SIZE'               THEN    A_LEAD_TIME_LOT_SIZE := rec.control_level;
565       ELSIF l_attribute_name = 'POSITIVE_MEASUREMENT_ERROR'       THEN    A_POSITIVE_MEASUREMENT_ERROR := rec.control_level;
566       ELSIF l_attribute_name = 'RELEASE_TIME_FENCE_CODE'          THEN    A_RELEASE_TIME_FENCE_CODE := rec.control_level;
567       ELSIF l_attribute_name = 'RELEASE_TIME_FENCE_DAYS'          THEN    A_RELEASE_TIME_FENCE_DAYS := rec.control_level;
568       ELSIF l_attribute_name = 'CONTAINER_ITEM_FLAG'              THEN    A_CONTAINER_ITEM_FLAG := rec.control_level;
569       ELSIF l_attribute_name = 'VEHICLE_ITEM_FLAG'                THEN    A_VEHICLE_ITEM_FLAG := rec.control_level;
570       ELSIF l_attribute_name = 'MAXIMUM_LOAD_WEIGHT'              THEN    A_MAXIMUM_LOAD_WEIGHT := rec.control_level;
571       ELSIF l_attribute_name = 'MINIMUM_FILL_PERCENT'             THEN    A_MINIMUM_FILL_PERCENT := rec.control_level;
572       ELSIF l_attribute_name = 'INTERNAL_VOLUME'                  THEN    A_INTERNAL_VOLUME := rec.control_level;
573       ELSIF l_attribute_name = 'CONTAINER_TYPE_CODE'              THEN    A_CONTAINER_TYPE_CODE := rec.control_level;
574       ELSIF l_attribute_name = 'CHECK_SHORTAGES_FLAG'             THEN    A_CHECK_SHORTAGES_FLAG := rec.control_level;
575       ELSIF l_attribute_name = 'EFFECTIVITY_CONTROL'              THEN    A_EFFECTIVITY_CONTROL := rec.control_level;
576       ELSIF l_attribute_name = 'OVERCOMPLETION_TOLERANCE_TYPE'    THEN    A_OVERCOMPLETION_TOLERANCE_TYP := rec.control_level;
577       ELSIF l_attribute_name = 'OVERCOMPLETION_TOLERANCE_VALUE'   THEN    A_OVERCOMPLETION_TOLERANCE_VAL := rec.control_level;
578       ELSIF l_attribute_name = 'OVER_SHIPMENT_TOLERANCE'          THEN    A_OVER_SHIPMENT_TOLERANCE := rec.control_level;
579       ELSIF l_attribute_name = 'UNDER_SHIPMENT_TOLERANCE'         THEN    A_UNDER_SHIPMENT_TOLERANCE := rec.control_level;
580       ELSIF l_attribute_name = 'OVER_RETURN_TOLERANCE'            THEN    A_OVER_RETURN_TOLERANCE := rec.control_level;
581       ELSIF l_attribute_name = 'UNDER_RETURN_TOLERANCE'           THEN    A_UNDER_RETURN_TOLERANCE := rec.control_level;
582       ELSIF l_attribute_name = 'EQUIPMENT_TYPE'                   THEN    A_EQUIPMENT_TYPE := rec.control_level;
583       ELSIF l_attribute_name = 'RECOVERED_PART_DISP_CODE'         THEN    A_RECOVERED_PART_DISP_CODE := rec.control_level;
584       ELSIF l_attribute_name = 'DEFECT_TRACKING_ON_FLAG'          THEN    A_DEFECT_TRACKING_ON_FLAG := rec.control_level;
585       ELSIF l_attribute_name = 'EVENT_FLAG'                       THEN    A_EVENT_FLAG := rec.control_level;
586       ELSIF l_attribute_name = 'ELECTRONIC_FLAG'                  THEN    A_ELECTRONIC_FLAG := rec.control_level;
587       ELSIF l_attribute_name = 'DOWNLOADABLE_FLAG'                THEN    A_DOWNLOADABLE_FLAG := rec.control_level;
588       ELSIF l_attribute_name = 'VOL_DISCOUNT_EXEMPT_FLAG'         THEN    A_VOL_DISCOUNT_EXEMPT_FLAG := rec.control_level;
589       ELSIF l_attribute_name = 'COUPON_EXEMPT_FLAG'               THEN    A_COUPON_EXEMPT_FLAG := rec.control_level;
590       ELSIF l_attribute_name = 'COMMS_NL_TRACKABLE_FLAG'          THEN    A_COMMS_NL_TRACKABLE_FLAG := rec.control_level;
591       ELSIF l_attribute_name = 'ASSET_CREATION_CODE'              THEN    A_ASSET_CREATION_CODE := rec.control_level;
592       ELSIF l_attribute_name = 'COMMS_ACTIVATION_REQD_FLAG'       THEN    A_COMMS_ACTIVATION_REQD_FLAG := rec.control_level;
593       ELSIF l_attribute_name = 'ORDERABLE_ON_WEB_FLAG'            THEN    A_ORDERABLE_ON_WEB_FLAG := rec.control_level;
594       ELSIF l_attribute_name = 'BACK_ORDERABLE_FLAG'              THEN    A_BACK_ORDERABLE_FLAG := rec.control_level;
595       ELSIF l_attribute_name = 'WEB_STATUS'                       THEN    A_WEB_STATUS := rec.control_level;
596       ELSIF l_attribute_name = 'INDIVISIBLE_FLAG'                 THEN    A_INDIVISIBLE_FLAG := rec.control_level;
597       ELSIF l_attribute_name = 'DIMENSION_UOM_CODE'               THEN    A_DIMENSION_UOM_CODE := rec.control_level;
598       ELSIF l_attribute_name = 'UNIT_LENGTH'                      THEN    A_UNIT_LENGTH := rec.control_level;
599       ELSIF l_attribute_name = 'UNIT_WIDTH'                       THEN    A_UNIT_WIDTH := rec.control_level;
600       ELSIF l_attribute_name = 'UNIT_HEIGHT'                      THEN    A_UNIT_HEIGHT := rec.control_level;
601       ELSIF l_attribute_name = 'BULK_PICKED_FLAG'                 THEN    A_BULK_PICKED_FLAG := rec.control_level;
602       ELSIF l_attribute_name = 'LOT_STATUS_ENABLED'               THEN    A_LOT_STATUS_ENABLED := rec.control_level;
603       ELSIF l_attribute_name = 'DEFAULT_LOT_STATUS_ID'            THEN    A_DEFAULT_LOT_STATUS_ID := rec.control_level;
604       ELSIF l_attribute_name = 'SERIAL_STATUS_ENABLED'            THEN    A_SERIAL_STATUS_ENABLED := rec.control_level;
605       ELSIF l_attribute_name = 'DEFAULT_SERIAL_STATUS_ID'         THEN    A_DEFAULT_SERIAL_STATUS_ID := rec.control_level;
606       ELSIF l_attribute_name = 'LOT_SPLIT_ENABLED'                THEN    A_LOT_SPLIT_ENABLED := rec.control_level;
607       ELSIF l_attribute_name = 'LOT_MERGE_ENABLED'                THEN    A_LOT_MERGE_ENABLED := rec.control_level;
608       ELSIF l_attribute_name = 'INVENTORY_CARRY_PENALTY'          THEN    A_INVENTORY_CARRY_PENALTY := rec.control_level;
609       ELSIF l_attribute_name = 'OPERATION_SLACK_PENALTY'          THEN    A_OPERATION_SLACK_PENALTY := rec.control_level;
610       ELSIF l_attribute_name = 'FINANCING_ALLOWED_FLAG'           THEN    A_FINANCING_ALLOWED_FLAG := rec.control_level;
611       ELSIF l_attribute_name = 'EAM_ITEM_TYPE'                    THEN    A_EAM_ITEM_TYPE := rec.control_level;
612       ELSIF l_attribute_name = 'EAM_ACTIVITY_TYPE_CODE'           THEN    A_EAM_ACTIVITY_TYPE_CODE := rec.control_level;
613       ELSIF l_attribute_name = 'EAM_ACTIVITY_CAUSE_CODE'          THEN    A_EAM_ACTIVITY_CAUSE_CODE := rec.control_level;
614       ELSIF l_attribute_name = 'EAM_ACT_NOTIFICATION_FLAG'        THEN    A_EAM_ACT_NOTIFICATION_FLAG := rec.control_level;
615       ELSIF l_attribute_name = 'EAM_ACT_SHUTDOWN_STATUS'          THEN    A_EAM_ACT_SHUTDOWN_STATUS := rec.control_level;
616       ELSIF l_attribute_name = 'DUAL_UOM_CONTROL'                 THEN    A_DUAL_UOM_CONTROL := rec.control_level;
617       ELSIF l_attribute_name = 'SECONDARY_UOM_CODE'               THEN    A_SECONDARY_UOM_CODE := rec.control_level;
618       ELSIF l_attribute_name = 'DUAL_UOM_DEVIATION_HIGH'          THEN    A_DUAL_UOM_DEVIATION_HIGH := rec.control_level;
619       ELSIF l_attribute_name = 'DUAL_UOM_DEVIATION_LOW'           THEN    A_DUAL_UOM_DEVIATION_LOW := rec.control_level;
620       ELSIF l_attribute_name = 'CONTRACT_ITEM_TYPE_CODE'          THEN    A_CONTRACT_ITEM_TYPE_CODE := rec.control_level;
621       ELSIF l_attribute_name = 'SERV_REQ_ENABLED_CODE'            THEN    A_SERV_REQ_ENABLED_CODE := rec.control_level;
622       ELSIF l_attribute_name = 'SERV_BILLING_ENABLED_FLAG'        THEN    A_SERV_BILLING_ENABLED_FLAG := rec.control_level;
623       ELSIF l_attribute_name = 'PLANNED_INV_POINT_FLAG'           THEN    A_PLANNED_INV_POINT_FLAG := rec.control_level;
624       ELSIF l_attribute_name = 'LOT_TRANSLATE_ENABLED'            THEN    A_LOT_TRANSLATE_ENABLED := rec.control_level;
625       ELSIF l_attribute_name = 'DEFAULT_SO_SOURCE_TYPE'           THEN    A_DEFAULT_SO_SOURCE_TYPE := rec.control_level;
626       ELSIF l_attribute_name = 'CREATE_SUPPLY_FLAG'               THEN    A_CREATE_SUPPLY_FLAG := rec.control_level;
627       ELSIF l_attribute_name = 'SUBSTITUTION_WINDOW_CODE'         THEN    A_SUBSTITUTION_WINDOW_CODE := rec.control_level;
628       ELSIF l_attribute_name = 'SUBSTITUTION_WINDOW_DAYS'         THEN    A_SUBSTITUTION_WINDOW_DAYS := rec.control_level;
629       --Added as part of 11.5.9
630       ELSIF l_attribute_name = 'LOT_SUBSTITUTION_ENABLED'         THEN    A_LOT_SUBSTITUTION_ENABLED := rec.control_level;
631       ELSIF l_attribute_name = 'MINIMUM_LICENSE_QUANTITY'         THEN    A_MINIMUM_LICENSE_QUANTITY := rec.control_level;
632       ELSIF l_attribute_name = 'EAM_ACTIVITY_SOURCE_CODE'         THEN    A_EAM_ACTIVITY_SOURCE_CODE := rec.control_level;
633       ELSIF l_attribute_name = 'IB_ITEM_INSTANCE_CLASS'           THEN    A_IB_ITEM_INSTANCE_CLASS := rec.control_level;
634       ELSIF l_attribute_name = 'CONFIG_MODEL_TYPE'                THEN    A_CONFIG_MODEL_TYPE := rec.control_level;
635       --Added as part of 11.5.10
636       ELSIF l_attribute_name = 'TRACKING_QUANTITY_IND'            THEN    A_TRACKING_QUANTITY_IND := rec.control_level;
637       ELSIF l_attribute_name = 'ONT_PRICING_QTY_SOURCE'           THEN    A_ONT_PRICING_QTY_SOURCE := rec.control_level;
638       ELSIF l_attribute_name = 'SECONDARY_DEFAULT_IND'            THEN    A_SECONDARY_DEFAULT_IND := rec.control_level;
639       ELSIF l_attribute_name = 'AUTO_CREATED_CONFIG_FLAG'         THEN    A_AUTO_CREATED_CONFIG_FLAG := rec.control_level;
640       ELSIF l_attribute_name = 'CONFIG_ORGS'                      THEN    A_CONFIG_ORGS := rec.control_level;
641       ELSIF l_attribute_name = 'CONFIG_MATCH'                     THEN    A_CONFIG_MATCH := rec.control_level;
642       ELSIF l_attribute_name = 'VMI_MINIMUM_UNITS'                THEN    A_VMI_MINIMUM_UNITS := rec.control_level;
643       ELSIF l_attribute_name = 'VMI_MINIMUM_DAYS'                 THEN    A_VMI_MINIMUM_DAYS := rec.control_level;
644       ELSIF l_attribute_name = 'VMI_MAXIMUM_UNITS'                THEN    A_VMI_MAXIMUM_UNITS := rec.control_level;
645       ELSIF l_attribute_name = 'VMI_MAXIMUM_DAYS'                 THEN    A_VMI_MAXIMUM_DAYS := rec.control_level;
646       ELSIF l_attribute_name = 'VMI_FIXED_ORDER_QUANTITY'         THEN    A_VMI_FIXED_ORDER_QUANTITY := rec.control_level;
647       ELSIF l_attribute_name = 'SO_AUTHORIZATION_FLAG'            THEN    A_SO_AUTHORIZATION_FLAG := rec.control_level;
648       ELSIF l_attribute_name = 'CONSIGNED_FLAG'                   THEN    A_CONSIGNED_FLAG := rec.control_level;
649       ELSIF l_attribute_name = 'ASN_AUTOEXPIRE_FLAG'              THEN    A_ASN_AUTOEXPIRE_FLAG := rec.control_level;
650       ELSIF l_attribute_name = 'VMI_FORECAST_TYPE'                THEN    A_VMI_FORECAST_TYPE := rec.control_level;
651       ELSIF l_attribute_name = 'FORECAST_HORIZON'                 THEN    A_FORECAST_HORIZON := rec.control_level;
652       ELSIF l_attribute_name = 'EXCLUDE_FROM_BUDGET_FLAG'         THEN    A_EXCLUDE_FROM_BUDGET_FLAG := rec.control_level;
653       ELSIF l_attribute_name = 'DAYS_TGT_INV_SUPPLY'              THEN    A_DAYS_TGT_INV_SUPPLY := rec.control_level;
654       ELSIF l_attribute_name = 'DAYS_TGT_INV_WINDOW'              THEN    A_DAYS_TGT_INV_WINDOW := rec.control_level;
655       ELSIF l_attribute_name = 'DAYS_MAX_INV_SUPPLY'              THEN    A_DAYS_MAX_INV_SUPPLY := rec.control_level;
656       ELSIF l_attribute_name = 'DAYS_MAX_INV_WINDOW'              THEN    A_DAYS_MAX_INV_WINDOW := rec.control_level;
657       ELSIF l_attribute_name = 'DRP_PLANNED_FLAG'                 THEN    A_DRP_PLANNED_FLAG := rec.control_level;
658       ELSIF l_attribute_name = 'CRITICAL_COMPONENT_FLAG'          THEN    A_CRITICAL_COMPONENT_FLAG := rec.control_level;
659       ELSIF l_attribute_name = 'CONTINOUS_TRANSFER'               THEN    A_CONTINOUS_TRANSFER:= rec.control_level;
660       ELSIF l_attribute_name = 'CONVERGENCE'                      THEN    A_CONVERGENCE:= rec.control_level;
661       ELSIF l_attribute_name = 'DIVERGENCE'                       THEN    A_DIVERGENCE:= rec.control_level;
662       ---Begin Bug 3713912
663        ELSIF l_attribute_name = 'LOT_DIVISIBLE_FLAG'              THEN    A_LOT_DIVISIBLE_FLAG := rec.control_level;
664        ELSIF l_attribute_name = 'GRADE_CONTROL_FLAG'              THEN    A_GRADE_CONTROL_FLAG := rec.control_level;
665        ELSIF l_attribute_name = 'DEFAULT_GRADE'                   THEN    A_DEFAULT_GRADE := rec.control_level;
666        ELSIF l_attribute_name = 'CHILD_LOT_FLAG'                  THEN    A_CHILD_LOT_FLAG := rec.control_level;
667        ELSIF l_attribute_name = 'PARENT_CHILD_GENERATION_FLAG'    THEN    A_PARENT_CHILD_GENERATION_FLAG := rec.control_level;
668        ELSIF l_attribute_name = 'CHILD_LOT_PREFIX'                THEN    A_CHILD_LOT_PREFIX := rec.control_level;
669        ELSIF l_attribute_name = 'CHILD_LOT_STARTING_NUMBER'       THEN    A_CHILD_LOT_STARTING_NUMBER := rec.control_level;
670        ELSIF l_attribute_name = 'CHILD_LOT_VALIDATION_FLAG'       THEN    A_CHILD_LOT_VALIDATION_FLAG := rec.control_level;
671        ELSIF l_attribute_name = 'COPY_LOT_ATTRIBUTE_FLAG'         THEN    A_COPY_LOT_ATTRIBUTE_FLAG := rec.control_level;
672        ELSIF l_attribute_name = 'RECIPE_ENABLED_FLAG'             THEN    A_RECIPE_ENABLED_FLAG := rec.control_level;
673        ELSIF l_attribute_name = 'PROCESS_QUALITY_ENABLED_FLAG'    THEN    A_PROCESS_QUALITY_ENABLED_FLAG := rec.control_level;
674        ELSIF l_attribute_name = 'PROCESS_EXECUTION_ENABLED_FLAG'  THEN    A_PROCESS_EXEC_ENABLED_FLAG := rec.control_level;
675        ELSIF l_attribute_name = 'PROCESS_COSTING_ENABLED_FLAG'    THEN    A_PROCESS_COSTING_ENABLED_FLAG := rec.control_level;
676        ELSIF l_attribute_name = 'PROCESS_SUPPLY_SUBINVENTORY'     THEN    A_PROCESS_SUPPLY_SUBINVENTORY := rec.control_level;
677        ELSIF l_attribute_name = 'PROCESS_SUPPLY_LOCATOR_ID'       THEN    A_PROCESS_SUPPLY_LOCATOR_ID := rec.control_level;
678        ELSIF l_attribute_name = 'PROCESS_YIELD_SUBINVENTORY'      THEN    A_PROCESS_YIELD_SUBINVENTORY := rec.control_level;
679        ELSIF l_attribute_name = 'PROCESS_YIELD_LOCATOR_ID'        THEN    A_PROCESS_YIELD_LOCATOR_ID := rec.control_level;
680        ELSIF l_attribute_name = 'HAZARDOUS_MATERIAL_FLAG'         THEN    A_HAZARDOUS_MATERIAL_FLAG := rec.control_level;
681        ELSIF l_attribute_name = 'CAS_NUMBER'                      THEN    A_CAS_NUMBER := rec.control_level;
682        ELSIF l_attribute_name = 'RETEST_INTERVAL'                 THEN    A_RETEST_INTERVAL := rec.control_level;
683        ELSIF l_attribute_name = 'EXPIRATION_ACTION_INTERVAL'      THEN    A_EXPIRATION_ACTION_INTERVAL := rec.control_level;
684        ELSIF l_attribute_name = 'EXPIRATION_ACTION_CODE'          THEN    A_EXPIRATION_ACTION_CODE := rec.control_level;
685        ELSIF l_attribute_name = 'MATURITY_DAYS'                   THEN    A_MATURITY_DAYS := rec.control_level;
686        ELSIF l_attribute_name = 'HOLD_DAYS'                       THEN    A_HOLD_DAYS := rec.control_level;
687        -- End Bug 3713912
688        --R12 Enhancement
689        ELSIF l_attribute_name = 'CHARGE_PERIODICITY_CODE'         THEN    A_CHARGE_PERIODICITY_CODE := rec.control_level;
690        ELSIF l_attribute_name = 'REPAIR_LEADTIME'                 THEN    A_REPAIR_LEADTIME := rec.control_level;
691        ELSIF l_attribute_name = 'REPAIR_YIELD'                    THEN    A_REPAIR_YIELD := rec.control_level;
692        ELSIF l_attribute_name = 'PREPOSITION_POINT'               THEN    A_PREPOSITION_POINT := rec.control_level;
693        ELSIF l_attribute_name = 'REPAIR_PROGRAM'                  THEN    A_REPAIR_PROGRAM := rec.control_level;
694        ELSIF l_attribute_name = 'SUBCONTRACTING_COMPONENT'        THEN    A_SUBCONTRACTING_COMPONENT := rec.control_level;
695        ELSIF l_attribute_name = 'OUTSOURCED_ASSEMBLY'             THEN    A_OUTSOURCED_ASSEMBLY := rec.control_level;
696        END IF;
697 
698     End loop;
699 -- End of bug fix 3005880
700 
701 	 --5351611
702 	tmp_xset_id := xset_id ;
703 
704         for rec in C_msii_master_records loop
705 
706                 t_trans_id := rec.transaction_id;
707                 -- master record validation here
708 
709 		tmp_xset_id := tmp_xset_id +1 ; --5351611
710 
711 		-- call additional update validations on master record
712                 ret_code_update :=  INVUPD2B.update_validations(
713                                                 rec.ROWID,
714                                                 rec.ORGANIZATION_ID,
715                                                 t_trans_id,
716                                                 user_id,
717                                                 login_id,
718                                                 prog_appid,
719                                                 prog_id,
720                                                 request_id);
721 --Bug3994245 If validations fail on the master item then AUTO_CHILD records should not be created-Anmurali
722                SELECT process_flag into m_process_flag
723                FROM mtl_system_items_interface
724                WHERE rowid = rec.rowid;
725 
726 
727                 if (ret_code_update = 0 AND m_process_flag=4) THEN
728                         ret_code := INVUPD2B.check_child_records(
729                                         rec.ROWID,
730                                         rec.INVENTORY_ITEM_ID,
731                                         rec.ORGANIZATION_ID,
732                                         t_trans_id,
733                                         prog_appid,
734                                         prog_id,
735                                         request_id,
736                                         user_id,
737                                         login_id,
738                                         err_text,
739 					tmp_xset_id); --5351611
740 					-- xset_id);
741 
742 			 --5351611
743 			 update mtl_system_items_interface
744 			 set set_process_id = xset_id + 1000000000000
745 	                 where set_process_id = tmp_xset_id + 1000000000000 ; --5405867
746 
747                         if (ret_code = 0) then
748                                 update mtl_system_items_interface
749                                    set process_flag = 4
750                                  where inventory_item_id = rec.inventory_item_id
751                                    and SET_PROCESS_ID = xset_id + 1000000000000
752                                    and TRANSACTION_TYPE = 'AUTO_CHILD';
753 
754                         else
755                                 -- flag error in master msii record as child record validation is violated by master record update request
756                                 dumm_status  := INVPUOPI.mtl_log_interface_err(
757                                         rec.ORGANIZATION_ID,
758                                         user_id,
759                                         login_id,
760                                         prog_appid,
761                                         prog_id,
762                                         request_id,
763                                         t_trans_id,
764                                         error_text,
765                                         null,
766                                         'MTL_SYSTEM_ITEMS_INTERFACE',
767                                         'INV_CHILD_VIOLATION_ERROR',
768                                         err_text);
769                                 dumm_status := INVUPD2B.set_process_flag3(rec.ROWID,user_id,login_id,prog_appid,prog_id,request_id);
770                         end if;
771 
772                 end if;
773 
774         end loop;  -- msii_master loop
775 
776    RETURN (0);
777 
778 EXCEPTION
779 
780    when NO_DATA_FOUND then
781       return (0);
782 
783    -- No master record updates found
784    when OTHERS then
785       --bug #4251913: Included SQLCODE and SQLERRM to trap exception messages.
786       IF l_inv_debug_level IN(101, 102) THEN
787          INVPUTLI.info(
788 	               Substr(
789 			      'When OTHERS exception raised in validate_item_update_master ' ||
790 			       SQLCODE ||
791 			       ' - '   ||
792 			       SQLERRM,1,240));
793       END IF;
794       return (1);
795 
796 END validate_item_update_master;
797 
798 --Bug: 5437967 This procedure prevents insertion of child records
799 --             in msii if no Master Controlled Attribute is changed in Master Org
800 PROCEDURE Check_create_child_records
801 (
802    mast_rowid                    ROWID,
803    item_id                       NUMBER,
804    org_id                        NUMBER,
805    check_create_child OUT NOCOPY BOOLEAN
806 ) IS
807 
808    CURSOR c_master_attributes IS
809       SELECT SUBSTR(ATTRIBUTE_NAME,18) Attribute_Code
810       FROM MTL_ITEM_ATTRIBUTES
811       WHERE CONTROL_LEVEL = 1
812         AND (ATTRIBUTE_GROUP_ID_GUI IN
813                     (20, 25, 30, 31, 35, 40, 41, 51, 60,
814                      62, 65, 70, 80, 90, 100, 120, 130));
815 
816    l_Attribute_Code           mtl_item_attributes.attribute_name%TYPE;
817    m_Item_rec                 MTL_SYSTEM_ITEMS_INTERFACE%ROWTYPE;
818    l_Item_rec                 MTL_SYSTEM_ITEMS_VL%ROWTYPE;
819    l_create_child             BOOLEAN := FALSE;
820 
821 BEGIN
822 
823    INVPUTLI.info('INVUPD2 : Begin Check create auto child ' );
824    SELECT * INTO m_Item_rec
825    FROM mtl_system_items_interface
826    WHERE rowid = mast_rowid;
827 
828    SELECT * INTO l_Item_rec
829    FROM mtl_system_items_vl
830    WHERE inventory_item_id = item_id
831      AND organization_id = org_id;
832 
833    OPEN c_master_attributes;
834    LOOP
835       FETCH c_master_attributes INTO l_attribute_code;
836       EXIT WHEN (c_master_attributes%NOTFOUND OR l_create_child=TRUE);
837 
838          IF ( l_attribute_code = 'INVENTORY_ITEM_STATUS_CODE' AND (NVL(l_item_rec.INVENTORY_ITEM_STATUS_CODE,'!') <> NVL(m_item_rec.INVENTORY_ITEM_STATUS_CODE,'!'))) THEN
839             l_create_child := TRUE;
840          ELSIF ( l_attribute_code = 'HAZARD_CLASS_ID' AND (NVL(l_item_rec.HAZARD_CLASS_ID,-999999) <> NVL(m_item_rec.HAZARD_CLASS_ID,-999999))) THEN
841             l_create_child := TRUE;
842          ELSIF ( l_attribute_code = 'OUTSIDE_OPERATION_UOM_TYPE' AND (NVL(l_item_rec.OUTSIDE_OPERATION_UOM_TYPE,'!') <> NVL(m_item_rec.OUTSIDE_OPERATION_UOM_TYPE,'!'))) THEN
843             l_create_child := TRUE;
844          ELSIF ( l_attribute_code = 'AUTO_LOT_ALPHA_PREFIX' AND (NVL(l_item_rec.AUTO_LOT_ALPHA_PREFIX,'!') <> NVL(m_item_rec.AUTO_LOT_ALPHA_PREFIX,'!'))) THEN
845             l_create_child := TRUE;
846          ELSIF ( l_attribute_code = 'RESTRICT_LOCATORS_CODE' AND (NVL(l_item_rec.RESTRICT_LOCATORS_CODE,-999999) <> NVL(m_item_rec.RESTRICT_LOCATORS_CODE,-999999))) THEN
847             l_create_child := TRUE;
848          ELSIF ( l_attribute_code = 'RESTRICT_SUBINVENTORIES_CODE' AND (NVL(l_item_rec.RESTRICT_SUBINVENTORIES_CODE,-999999) <> NVL(m_item_rec.RESTRICT_SUBINVENTORIES_CODE,-999999))) THEN
849             l_create_child := TRUE;
850          ELSIF ( l_attribute_code = 'SHELF_LIFE_DAYS' AND (NVL(l_item_rec.SHELF_LIFE_DAYS,-999999) <> NVL(m_item_rec.SHELF_LIFE_DAYS,-999999))) THEN
851             l_create_child := TRUE;
852          ELSIF ( l_attribute_code = 'START_AUTO_LOT_NUMBER' AND (NVL(l_item_rec.START_AUTO_LOT_NUMBER,'!') <> NVL(m_item_rec.START_AUTO_LOT_NUMBER,'!'))) THEN
853             l_create_child := TRUE;
854          ELSIF ( l_attribute_code = 'START_AUTO_SERIAL_NUMBER' AND (NVL(l_item_rec.START_AUTO_SERIAL_NUMBER,'!') <> NVL(m_item_rec.START_AUTO_SERIAL_NUMBER,'!'))) THEN
855             l_create_child := TRUE;
856          ELSIF ( l_attribute_code = 'STOCK_ENABLED_FLAG' AND (NVL(l_item_rec.STOCK_ENABLED_FLAG,'!') <> NVL(m_item_rec.STOCK_ENABLED_FLAG,'!'))) THEN
857             l_create_child := TRUE;
858          ELSIF ( l_attribute_code = 'UNIT_WEIGHT' AND (NVL(l_item_rec.UNIT_WEIGHT,-999999) <> NVL(m_item_rec.UNIT_WEIGHT,-999999))) THEN
859             l_create_child := TRUE;
860          ELSIF ( l_attribute_code = 'INVENTORY_PLANNING_CODE' AND (NVL(l_item_rec.INVENTORY_PLANNING_CODE,-999999) <> NVL(m_item_rec.INVENTORY_PLANNING_CODE,-999999))) THEN
861             l_create_child := TRUE;
862          ELSIF ( l_attribute_code = 'MIN_MINMAX_QUANTITY' AND (NVL(l_item_rec.MIN_MINMAX_QUANTITY,-999999) <> NVL(m_item_rec.MIN_MINMAX_QUANTITY,-999999))) THEN
863             l_create_child := TRUE;
864          ELSIF ( l_attribute_code = 'ACCEPTABLE_RATE_DECREASE' AND (NVL(l_item_rec.ACCEPTABLE_RATE_DECREASE,-999999) <> NVL(m_item_rec.ACCEPTABLE_RATE_DECREASE,-999999))) THEN
865             l_create_child := TRUE;
866          ELSIF ( l_attribute_code = 'PLANNING_TIME_FENCE_DAYS' AND (NVL(l_item_rec.PLANNING_TIME_FENCE_DAYS,-999999) <> NVL(m_item_rec.PLANNING_TIME_FENCE_DAYS,-999999))) THEN
867             l_create_child := TRUE;
868          ELSIF ( l_attribute_code = 'FIXED_LEAD_TIME' AND (NVL(l_item_rec.FIXED_LEAD_TIME,-999999) <> NVL(m_item_rec.FIXED_LEAD_TIME,-999999))) THEN
869             l_create_child := TRUE;
870          ELSIF ( l_attribute_code = 'BUILD_IN_WIP_FLAG' AND (NVL(l_item_rec.BUILD_IN_WIP_FLAG,'!') <> NVL(m_item_rec.BUILD_IN_WIP_FLAG,'!'))) THEN
871             l_create_child := TRUE;
872          ELSIF ( l_attribute_code = 'ATP_FLAG' AND (NVL(l_item_rec.ATP_FLAG,'!') <> NVL(m_item_rec.ATP_FLAG,'!'))) THEN
873             l_create_child := TRUE;
874          ELSIF ( l_attribute_code = 'COLLATERAL_FLAG' AND (NVL(l_item_rec.COLLATERAL_FLAG,'!') <> NVL(m_item_rec.COLLATERAL_FLAG,'!'))) THEN
875             l_create_child := TRUE;
876          ELSIF ( l_attribute_code = 'PICK_COMPONENTS_FLAG' AND (NVL(l_item_rec.PICK_COMPONENTS_FLAG,'!') <> NVL(m_item_rec.PICK_COMPONENTS_FLAG,'!'))) THEN
877             l_create_child := TRUE;
878          ELSIF ( l_attribute_code = 'ACCOUNTING_RULE_ID' AND (NVL(l_item_rec.ACCOUNTING_RULE_ID,-999999) <> NVL(m_item_rec.ACCOUNTING_RULE_ID,-999999))) THEN
879             l_create_child := TRUE;
880          ELSIF ( l_attribute_code = 'INVOICING_RULE_ID' AND (NVL(l_item_rec.INVOICING_RULE_ID,-999999) <> NVL(m_item_rec.INVOICING_RULE_ID,-999999))) THEN
881             l_create_child := TRUE;
882          ELSIF ( l_attribute_code = 'SALES_ACCOUNT' AND (NVL(l_item_rec.SALES_ACCOUNT,-999999) <> NVL(m_item_rec.SALES_ACCOUNT,-999999))) THEN
883             l_create_child := TRUE;
884          ELSIF ( l_attribute_code = 'PREVENTIVE_MAINTENANCE_FLAG' AND (NVL(l_item_rec.PREVENTIVE_MAINTENANCE_FLAG,'!') <> NVL(m_item_rec.PREVENTIVE_MAINTENANCE_FLAG,'!'))) THEN
885             l_create_child := TRUE;
886          ELSIF ( l_attribute_code = 'RELEASE_TIME_FENCE_DAYS' AND (NVL(l_item_rec.RELEASE_TIME_FENCE_DAYS,-999999) <> NVL(m_item_rec.RELEASE_TIME_FENCE_DAYS,-999999))) THEN
887             l_create_child := TRUE;
888          ELSIF ( l_attribute_code = 'SERVICE_STARTING_DELAY' AND (NVL(l_item_rec.SERVICE_STARTING_DELAY,-999999) <> NVL(m_item_rec.SERVICE_STARTING_DELAY,-999999))) THEN
889             l_create_child := TRUE;
890          ELSIF ( l_attribute_code = 'BASE_WARRANTY_SERVICE_ID' AND (NVL(l_item_rec.BASE_WARRANTY_SERVICE_ID,-999999) <> NVL(m_item_rec.BASE_WARRANTY_SERVICE_ID,-999999))) THEN
891             l_create_child := TRUE;
892          ELSIF ( l_attribute_code = 'OVERCOMPLETION_TOLERANCE_TYPE' AND (NVL(l_item_rec.OVERCOMPLETION_TOLERANCE_TYPE,-999999) <> NVL(m_item_rec.OVERCOMPLETION_TOLERANCE_TYPE,-999999))) THEN
893             l_create_child := TRUE;
894          ELSIF ( l_attribute_code = 'OVER_SHIPMENT_TOLERANCE' AND (NVL(l_item_rec.OVER_SHIPMENT_TOLERANCE,-999999) <> NVL(m_item_rec.OVER_SHIPMENT_TOLERANCE,-999999))) THEN
895             l_create_child := TRUE;
896          ELSIF ( l_attribute_code = 'UNDER_SHIPMENT_TOLERANCE' AND (NVL(l_item_rec.UNDER_SHIPMENT_TOLERANCE,-999999) <> NVL(m_item_rec.UNDER_SHIPMENT_TOLERANCE,-999999))) THEN
897             l_create_child := TRUE;
898          ELSIF ( l_attribute_code = 'LOT_STATUS_ENABLED' AND (NVL(l_item_rec.LOT_STATUS_ENABLED,'!') <> NVL(m_item_rec.LOT_STATUS_ENABLED,'!'))) THEN
899             l_create_child := TRUE;
900          ELSIF ( l_attribute_code = 'BULK_PICKED_FLAG' AND (NVL(l_item_rec.BULK_PICKED_FLAG,'!') <> NVL(m_item_rec.BULK_PICKED_FLAG,'!'))) THEN
901             l_create_child := TRUE;
902          ELSIF ( l_attribute_code = 'INVENTORY_CARRY_PENALTY' AND (NVL(l_item_rec.INVENTORY_CARRY_PENALTY,-999999) <> NVL(m_item_rec.INVENTORY_CARRY_PENALTY,-999999))) THEN
903             l_create_child := TRUE;
904          ELSIF ( l_attribute_code = 'PLANNED_INV_POINT_FLAG' AND (NVL(l_item_rec.PLANNED_INV_POINT_FLAG,'!') <> NVL(m_item_rec.PLANNED_INV_POINT_FLAG,'!'))) THEN
905             l_create_child := TRUE;
906          ELSIF ( l_attribute_code = 'EAM_ACTIVITY_SOURCE_CODE' AND (NVL(l_item_rec.EAM_ACTIVITY_SOURCE_CODE,'!') <> NVL(m_item_rec.EAM_ACTIVITY_SOURCE_CODE,'!'))) THEN
907             l_create_child := TRUE;
908          ELSIF ( l_attribute_code = 'CONFIG_MATCH' AND (NVL(l_item_rec.CONFIG_MATCH,'!') <> NVL(m_item_rec.CONFIG_MATCH,'!'))) THEN
909             l_create_child := TRUE;
910          ELSIF ( l_attribute_code = 'VMI_MINIMUM_DAYS' AND (NVL(l_item_rec.VMI_MINIMUM_DAYS,-999999) <> NVL(m_item_rec.VMI_MINIMUM_DAYS,-999999))) THEN
911             l_create_child := TRUE;
912          ELSIF ( l_attribute_code = 'VMI_FORECAST_TYPE' AND (NVL(l_item_rec.VMI_FORECAST_TYPE,-999999) <> NVL(m_item_rec.VMI_FORECAST_TYPE,-999999))) THEN
913             l_create_child := TRUE;
914          ELSIF ( l_attribute_code = 'DAYS_TGT_INV_SUPPLY' AND (NVL(l_item_rec.DAYS_TGT_INV_SUPPLY,-999999) <> NVL(m_item_rec.DAYS_TGT_INV_SUPPLY,-999999))) THEN
915             l_create_child := TRUE;
916          ELSIF ( l_attribute_code = 'CONVERGENCE' AND (NVL(l_item_rec.CONVERGENCE,-999999) <> NVL(m_item_rec.CONVERGENCE,-999999))) THEN
917             l_create_child := TRUE;
918          ELSIF ( l_attribute_code = 'CHILD_LOT_PREFIX' AND (NVL(l_item_rec.CHILD_LOT_PREFIX,'!') <> NVL(m_item_rec.CHILD_LOT_PREFIX,'!'))) THEN
919             l_create_child := TRUE;
920          ELSIF ( l_attribute_code = 'PREPOSITION_POINT' AND (NVL(l_item_rec.PREPOSITION_POINT,'!') <> NVL(m_item_rec.PREPOSITION_POINT,'!'))) THEN
921             l_create_child := TRUE;
922          ELSIF ( l_attribute_code = 'PROCESS_YIELD_SUBINVENTORY' AND (NVL(l_item_rec.PROCESS_YIELD_SUBINVENTORY,'!') <> NVL(m_item_rec.PROCESS_YIELD_SUBINVENTORY,'!'))) THEN
923             l_create_child := TRUE;
924          ELSIF ( l_attribute_code = 'DESCRIPTION' AND (NVL(l_item_rec.DESCRIPTION,'!') <> NVL(m_item_rec.DESCRIPTION,'!'))) THEN
925             l_create_child := TRUE;
926          ELSIF ( l_attribute_code = 'ALLOWED_UNITS_LOOKUP_CODE' AND (NVL(l_item_rec.ALLOWED_UNITS_LOOKUP_CODE,-999999) <> NVL(m_item_rec.ALLOWED_UNITS_LOOKUP_CODE,-999999))) THEN
927             l_create_child := TRUE;
928          ELSIF ( l_attribute_code = 'COSTING_ENABLED_FLAG' AND (NVL(l_item_rec.COSTING_ENABLED_FLAG,'!') <> NVL(m_item_rec.COSTING_ENABLED_FLAG,'!'))) THEN
929             l_create_child := TRUE;
930          ELSIF ( l_attribute_code = 'DEFAULT_INCLUDE_IN_ROLLUP_FLAG' AND (NVL(l_item_rec.DEFAULT_INCLUDE_IN_ROLLUP_FLAG,'!') <> NVL(m_item_rec.DEFAULT_INCLUDE_IN_ROLLUP_FLAG,'!'))) THEN
931             l_create_child := TRUE;
932          ELSIF ( l_attribute_code = 'PRICE_TOLERANCE_PERCENT' AND (NVL(l_item_rec.PRICE_TOLERANCE_PERCENT,-999999) <> NVL(m_item_rec.PRICE_TOLERANCE_PERCENT,-999999))) THEN
933             l_create_child := TRUE;
934          ELSIF ( l_attribute_code = 'ROUNDING_FACTOR' AND (NVL(l_item_rec.ROUNDING_FACTOR,-999999) <> NVL(m_item_rec.ROUNDING_FACTOR,-999999))) THEN
935             l_create_child := TRUE;
936          ELSIF ( l_attribute_code = 'UNIT_OF_ISSUE' AND (NVL(l_item_rec.UNIT_OF_ISSUE,'!') <> NVL(m_item_rec.UNIT_OF_ISSUE,'!'))) THEN
937             l_create_child := TRUE;
938          ELSIF ( l_attribute_code = 'INSPECTION_REQUIRED_FLAG' AND (NVL(l_item_rec.INSPECTION_REQUIRED_FLAG,'!') <> NVL(m_item_rec.INSPECTION_REQUIRED_FLAG,'!'))) THEN
939             l_create_child := TRUE;
940          ELSIF ( l_attribute_code = 'INVOICE_CLOSE_TOLERANCE' AND (NVL(l_item_rec.INVOICE_CLOSE_TOLERANCE,-999999) <> NVL(m_item_rec.INVOICE_CLOSE_TOLERANCE,-999999))) THEN
941             l_create_child := TRUE;
942          ELSIF ( l_attribute_code = 'SHELF_LIFE_CODE' AND (NVL(l_item_rec.SHELF_LIFE_CODE,-999999) <> NVL(m_item_rec.SHELF_LIFE_CODE,-999999))) THEN
943             l_create_child := TRUE;
944          ELSIF ( l_attribute_code = 'CUMULATIVE_TOTAL_LEAD_TIME' AND (NVL(l_item_rec.CUMULATIVE_TOTAL_LEAD_TIME,-999999) <> NVL(m_item_rec.CUMULATIVE_TOTAL_LEAD_TIME,-999999))) THEN
945             l_create_child := TRUE;
946          ELSIF ( l_attribute_code = 'POSTPROCESSING_LEAD_TIME' AND (NVL(l_item_rec.POSTPROCESSING_LEAD_TIME,-999999) <> NVL(m_item_rec.POSTPROCESSING_LEAD_TIME,-999999))) THEN
947             l_create_child := TRUE;
948          ELSIF ( l_attribute_code = 'INTERNAL_ORDER_FLAG' AND (NVL(l_item_rec.INTERNAL_ORDER_FLAG,'!') <> NVL(m_item_rec.INTERNAL_ORDER_FLAG,'!'))) THEN
949             l_create_child := TRUE;
950          ELSIF ( l_attribute_code = 'SO_TRANSACTIONS_FLAG' AND (NVL(l_item_rec.SO_TRANSACTIONS_FLAG,'!') <> NVL(m_item_rec.SO_TRANSACTIONS_FLAG,'!'))) THEN
951             l_create_child := TRUE;
952          ELSIF ( l_attribute_code = 'WARRANTY_VENDOR_ID' AND (NVL(l_item_rec.WARRANTY_VENDOR_ID,-999999) <> NVL(m_item_rec.WARRANTY_VENDOR_ID,-999999))) THEN
953             l_create_child := TRUE;
954          ELSIF ( l_attribute_code = 'NEW_REVISION_CODE' AND (NVL(l_item_rec.NEW_REVISION_CODE,'!') <> NVL(m_item_rec.NEW_REVISION_CODE,'!'))) THEN
955             l_create_child := TRUE;
956          ELSIF ( l_attribute_code = 'PRIMARY_SPECIALIST_ID' AND (NVL(l_item_rec.PRIMARY_SPECIALIST_ID,-999999) <> NVL(m_item_rec.PRIMARY_SPECIALIST_ID,-999999))) THEN
957             l_create_child := TRUE;
958          ELSIF ( l_attribute_code = 'PURCHASING_TAX_CODE' AND (NVL(l_item_rec.PURCHASING_TAX_CODE,'!') <> NVL(m_item_rec.PURCHASING_TAX_CODE,'!'))) THEN
959             l_create_child := TRUE;
960          ELSIF ( l_attribute_code = 'EVENT_FLAG' AND (NVL(l_item_rec.EVENT_FLAG,'!') <> NVL(m_item_rec.EVENT_FLAG,'!'))) THEN
961             l_create_child := TRUE;
962          ELSIF ( l_attribute_code = 'BACK_ORDERABLE_FLAG' AND (NVL(l_item_rec.BACK_ORDERABLE_FLAG,'!') <> NVL(m_item_rec.BACK_ORDERABLE_FLAG,'!'))) THEN
963             l_create_child := TRUE;
964          ELSIF ( l_attribute_code = 'INDIVISIBLE_FLAG' AND (NVL(l_item_rec.INDIVISIBLE_FLAG,'!') <> NVL(m_item_rec.INDIVISIBLE_FLAG,'!'))) THEN
965             l_create_child := TRUE;
966          ELSIF ( l_attribute_code = 'DIMENSION_UOM_CODE' AND (NVL(l_item_rec.DIMENSION_UOM_CODE,'!') <> NVL(m_item_rec.DIMENSION_UOM_CODE,'!'))) THEN
967             l_create_child := TRUE;
968          ELSIF ( l_attribute_code = 'EAM_ITEM_TYPE' AND (NVL(l_item_rec.EAM_ITEM_TYPE,-999999) <> NVL(m_item_rec.EAM_ITEM_TYPE,-999999))) THEN
969             l_create_child := TRUE;
970          ELSIF ( l_attribute_code = 'DEFAULT_SO_SOURCE_TYPE' AND (NVL(l_item_rec.DEFAULT_SO_SOURCE_TYPE,'!') <> NVL(m_item_rec.DEFAULT_SO_SOURCE_TYPE,'!'))) THEN
971             l_create_child := TRUE;
972          ELSIF ( l_attribute_code = 'SERV_BILLING_ENABLED_FLAG' AND (NVL(l_item_rec.SERV_BILLING_ENABLED_FLAG,'!') <> NVL(m_item_rec.SERV_BILLING_ENABLED_FLAG,'!'))) THEN
973             l_create_child := TRUE;
974          ELSIF ( l_attribute_code = 'LOT_SUBSTITUTION_ENABLED' AND (NVL(l_item_rec.LOT_SUBSTITUTION_ENABLED,'!') <> NVL(m_item_rec.LOT_SUBSTITUTION_ENABLED,'!'))) THEN
975             l_create_child := TRUE;
976          ELSIF ( l_attribute_code = 'VMI_FIXED_ORDER_QUANTITY' AND (NVL(l_item_rec.VMI_FIXED_ORDER_QUANTITY,-999999) <> NVL(m_item_rec.VMI_FIXED_ORDER_QUANTITY,-999999))) THEN
977             l_create_child := TRUE;
978          ELSIF ( l_attribute_code = 'EXCLUDE_FROM_BUDGET_FLAG' AND (NVL(l_item_rec.EXCLUDE_FROM_BUDGET_FLAG,-999999) <> NVL(m_item_rec.EXCLUDE_FROM_BUDGET_FLAG,-999999))) THEN
979             l_create_child := TRUE;
980          ELSIF ( l_attribute_code = 'LOT_DIVISIBLE_FLAG' AND (NVL(l_item_rec.LOT_DIVISIBLE_FLAG,'!') <> NVL(m_item_rec.LOT_DIVISIBLE_FLAG,'!'))) THEN
981             l_create_child := TRUE;
982          ELSIF ( l_attribute_code = 'OUTSOURCED_ASSEMBLY' AND (NVL(l_item_rec.OUTSOURCED_ASSEMBLY,-999999) <> NVL(m_item_rec.OUTSOURCED_ASSEMBLY,-999999))) THEN
983             l_create_child := TRUE;
984          ELSIF ( l_attribute_code = 'REPAIR_YIELD' AND (NVL(l_item_rec.REPAIR_YIELD,-999999) <> NVL(m_item_rec.REPAIR_YIELD,-999999))) THEN
985             l_create_child := TRUE;
986          ELSIF ( l_attribute_code = 'PROCESS_QUALITY_ENABLED_FLAG' AND (NVL(l_item_rec.PROCESS_QUALITY_ENABLED_FLAG,'!') <> NVL(m_item_rec.PROCESS_QUALITY_ENABLED_FLAG,'!'))) THEN
987             l_create_child := TRUE;
988          ELSIF ( l_attribute_code = 'CAS_NUMBER' AND (NVL(l_item_rec.CAS_NUMBER,'!') <> NVL(m_item_rec.CAS_NUMBER,'!'))) THEN
989             l_create_child := TRUE;
990          ELSIF ( l_attribute_code = 'ENG_ITEM_FLAG' AND (NVL(l_item_rec.ENG_ITEM_FLAG,'!') <> NVL(m_item_rec.ENG_ITEM_FLAG,'!'))) THEN
991             l_create_child := TRUE;
992          ELSIF ( l_attribute_code = 'COST_OF_SALES_ACCOUNT' AND (NVL(l_item_rec.COST_OF_SALES_ACCOUNT,-999999) <> NVL(m_item_rec.COST_OF_SALES_ACCOUNT,-999999))) THEN
993             l_create_child := TRUE;
994          ELSIF ( l_attribute_code = 'ALLOW_EXPRESS_DELIVERY_FLAG' AND (NVL(l_item_rec.ALLOW_EXPRESS_DELIVERY_FLAG,'!') <> NVL(m_item_rec.ALLOW_EXPRESS_DELIVERY_FLAG,'!'))) THEN
995             l_create_child := TRUE;
996          ELSIF ( l_attribute_code = 'RECEIPT_DAYS_EXCEPTION_CODE' AND (NVL(l_item_rec.RECEIPT_DAYS_EXCEPTION_CODE,'!') <> NVL(m_item_rec.RECEIPT_DAYS_EXCEPTION_CODE,'!'))) THEN
997             l_create_child := TRUE;
998          ELSIF ( l_attribute_code = 'RECEIPT_REQUIRED_FLAG' AND (NVL(l_item_rec.RECEIPT_REQUIRED_FLAG,'!') <> NVL(m_item_rec.RECEIPT_REQUIRED_FLAG,'!'))) THEN
999             l_create_child := TRUE;
1000          ELSIF ( l_attribute_code = 'RECEIVING_ROUTING_ID' AND (NVL(l_item_rec.RECEIVING_ROUTING_ID,-999999) <> NVL(m_item_rec.RECEIVING_ROUTING_ID,-999999))) THEN
1001             l_create_child := TRUE;
1002          ELSIF ( l_attribute_code = 'INVENTORY_ITEM_FLAG' AND (NVL(l_item_rec.INVENTORY_ITEM_FLAG,'!') <> NVL(m_item_rec.INVENTORY_ITEM_FLAG,'!'))) THEN
1003             l_create_child := TRUE;
1004          ELSIF ( l_attribute_code = 'LOCATION_CONTROL_CODE' AND (NVL(l_item_rec.LOCATION_CONTROL_CODE,-999999) <> NVL(m_item_rec.LOCATION_CONTROL_CODE,-999999))) THEN
1005             l_create_child := TRUE;
1006          ELSIF ( l_attribute_code = 'REVISION_QTY_CONTROL_CODE' AND (NVL(l_item_rec.REVISION_QTY_CONTROL_CODE,-999999) <> NVL(m_item_rec.REVISION_QTY_CONTROL_CODE,-999999))) THEN
1007             l_create_child := TRUE;
1008          ELSIF ( l_attribute_code = 'MRP_SAFETY_STOCK_PERCENT' AND (NVL(l_item_rec.MRP_SAFETY_STOCK_PERCENT,-999999) <> NVL(m_item_rec.MRP_SAFETY_STOCK_PERCENT,-999999))) THEN
1009             l_create_child := TRUE;
1010          ELSIF ( l_attribute_code = 'SAFETY_STOCK_BUCKET_DAYS' AND (NVL(l_item_rec.SAFETY_STOCK_BUCKET_DAYS,-999999) <> NVL(m_item_rec.SAFETY_STOCK_BUCKET_DAYS,-999999))) THEN
1011             l_create_child := TRUE;
1012          ELSIF ( l_attribute_code = 'OVERRUN_PERCENTAGE' AND (NVL(l_item_rec.OVERRUN_PERCENTAGE,-999999) <> NVL(m_item_rec.OVERRUN_PERCENTAGE,-999999))) THEN
1013             l_create_child := TRUE;
1014          ELSIF ( l_attribute_code = 'PLANNING_EXCEPTION_SET' AND (NVL(l_item_rec.PLANNING_EXCEPTION_SET,'!') <> NVL(m_item_rec.PLANNING_EXCEPTION_SET,'!'))) THEN
1015             l_create_child := TRUE;
1016          ELSIF ( l_attribute_code = 'PLANNING_TIME_FENCE_CODE' AND (NVL(l_item_rec.PLANNING_TIME_FENCE_CODE,-999999) <> NVL(m_item_rec.PLANNING_TIME_FENCE_CODE,-999999))) THEN
1017             l_create_child := TRUE;
1018          ELSIF ( l_attribute_code = 'ROUNDING_CONTROL_TYPE' AND (NVL(l_item_rec.ROUNDING_CONTROL_TYPE,-999999) <> NVL(m_item_rec.ROUNDING_CONTROL_TYPE,-999999))) THEN
1019             l_create_child := TRUE;
1020          ELSIF ( l_attribute_code = 'SHIP_MODEL_COMPLETE_FLAG' AND (NVL(l_item_rec.SHIP_MODEL_COMPLETE_FLAG,'!') <> NVL(m_item_rec.SHIP_MODEL_COMPLETE_FLAG,'!'))) THEN
1021             l_create_child := TRUE;
1022          ELSIF ( l_attribute_code = 'INVOICEABLE_ITEM_FLAG' AND (NVL(l_item_rec.INVOICEABLE_ITEM_FLAG,'!') <> NVL(m_item_rec.INVOICEABLE_ITEM_FLAG,'!'))) THEN
1023             l_create_child := TRUE;
1024          ELSIF ( l_attribute_code = 'COVERAGE_SCHEDULE_ID' AND (NVL(l_item_rec.COVERAGE_SCHEDULE_ID,-999999) <> NVL(m_item_rec.COVERAGE_SCHEDULE_ID,-999999))) THEN
1025             l_create_child := TRUE;
1026          ELSIF ( l_attribute_code = 'PRORATE_SERVICE_FLAG' AND (NVL(l_item_rec.PRORATE_SERVICE_FLAG,'!') <> NVL(m_item_rec.PRORATE_SERVICE_FLAG,'!'))) THEN
1027             l_create_child := TRUE;
1028          ELSIF ( l_attribute_code = 'SERVICE_DURATION_PERIOD_CODE' AND (NVL(l_item_rec.SERVICE_DURATION_PERIOD_CODE,'!') <> NVL(m_item_rec.SERVICE_DURATION_PERIOD_CODE,'!'))) THEN
1029             l_create_child := TRUE;
1030          ELSIF ( l_attribute_code = 'ATO_FORECAST_CONTROL' AND (NVL(l_item_rec.ATO_FORECAST_CONTROL,-999999) <> NVL(m_item_rec.ATO_FORECAST_CONTROL,-999999))) THEN
1031             l_create_child := TRUE;
1032          ELSIF ( l_attribute_code = 'OUTSIDE_OPERATION_FLAG' AND (NVL(l_item_rec.OUTSIDE_OPERATION_FLAG,'!') <> NVL(m_item_rec.OUTSIDE_OPERATION_FLAG,'!'))) THEN
1033             l_create_child := TRUE;
1034          ELSIF ( l_attribute_code = 'CARRYING_COST' AND (NVL(l_item_rec.CARRYING_COST,-999999) <> NVL(m_item_rec.CARRYING_COST,-999999))) THEN
1035             l_create_child := TRUE;
1036          ELSIF ( l_attribute_code = 'MRP_SAFETY_STOCK_CODE' AND (NVL(l_item_rec.MRP_SAFETY_STOCK_CODE,-999999) <> NVL(m_item_rec.MRP_SAFETY_STOCK_CODE,-999999))) THEN
1037             l_create_child := TRUE;
1038          ELSIF ( l_attribute_code = 'SOURCE_ORGANIZATION_ID' AND (NVL(l_item_rec.SOURCE_ORGANIZATION_ID,-999999) <> NVL(m_item_rec.SOURCE_ORGANIZATION_ID,-999999))) THEN
1039             l_create_child := TRUE;
1040          ELSIF ( l_attribute_code = 'OVER_RETURN_TOLERANCE' AND (NVL(l_item_rec.OVER_RETURN_TOLERANCE,-999999) <> NVL(m_item_rec.OVER_RETURN_TOLERANCE,-999999))) THEN
1041             l_create_child := TRUE;
1042          ELSIF ( l_attribute_code = 'ASSET_CREATION_CODE' AND (NVL(l_item_rec.ASSET_CREATION_CODE,'!') <> NVL(m_item_rec.ASSET_CREATION_CODE,'!'))) THEN
1043             l_create_child := TRUE;
1044          ELSIF ( l_attribute_code = 'COMMS_ACTIVATION_REQD_FLAG' AND (NVL(l_item_rec.COMMS_ACTIVATION_REQD_FLAG,'!') <> NVL(m_item_rec.COMMS_ACTIVATION_REQD_FLAG,'!'))) THEN
1045             l_create_child := TRUE;
1046          ELSIF ( l_attribute_code = 'CHECK_SHORTAGES_FLAG' AND (NVL(l_item_rec.CHECK_SHORTAGES_FLAG,'!') <> NVL(m_item_rec.CHECK_SHORTAGES_FLAG,'!'))) THEN
1047             l_create_child := TRUE;
1048          ELSIF ( l_attribute_code = 'LOT_MERGE_ENABLED' AND (NVL(l_item_rec.LOT_MERGE_ENABLED,'!') <> NVL(m_item_rec.LOT_MERGE_ENABLED,'!'))) THEN
1049             l_create_child := TRUE;
1050          ELSIF ( l_attribute_code = 'UNIT_LENGTH' AND (NVL(l_item_rec.UNIT_LENGTH,-999999) <> NVL(m_item_rec.UNIT_LENGTH,-999999))) THEN
1051             l_create_child := TRUE;
1052          ELSIF ( l_attribute_code = 'EAM_ACT_NOTIFICATION_FLAG' AND (NVL(l_item_rec.EAM_ACT_NOTIFICATION_FLAG,'!') <> NVL(m_item_rec.EAM_ACT_NOTIFICATION_FLAG,'!'))) THEN
1053             l_create_child := TRUE;
1054          ELSIF ( l_attribute_code = 'SUBSTITUTION_WINDOW_CODE' AND (NVL(l_item_rec.SUBSTITUTION_WINDOW_CODE,-999999) <> NVL(m_item_rec.SUBSTITUTION_WINDOW_CODE,-999999))) THEN
1055             l_create_child := TRUE;
1056          ELSIF ( l_attribute_code = 'CHILD_LOT_STARTING_NUMBER' AND (NVL(l_item_rec.CHILD_LOT_STARTING_NUMBER,-999999) <> NVL(m_item_rec.CHILD_LOT_STARTING_NUMBER,-999999))) THEN
1057             l_create_child := TRUE;
1058          ELSIF ( l_attribute_code = 'EXPIRATION_ACTION_INTERVAL' AND (NVL(l_item_rec.EXPIRATION_ACTION_INTERVAL,-999999) <> NVL(m_item_rec.EXPIRATION_ACTION_INTERVAL,-999999))) THEN
1059             l_create_child := TRUE;
1060          ELSIF ( l_attribute_code = 'SUBCONTRACTING_COMPONENT' AND (NVL(l_item_rec.SUBCONTRACTING_COMPONENT,-999999) <> NVL(m_item_rec.SUBCONTRACTING_COMPONENT,-999999))) THEN
1061             l_create_child := TRUE;
1062          ELSIF ( l_attribute_code = 'HAZARDOUS_MATERIAL_FLAG' AND (NVL(l_item_rec.HAZARDOUS_MATERIAL_FLAG,'!') <> NVL(m_item_rec.HAZARDOUS_MATERIAL_FLAG,'!'))) THEN
1063             l_create_child := TRUE;
1064          ELSIF ( l_attribute_code = 'ITEM_TYPE' AND (NVL(l_item_rec.ITEM_TYPE,'!') <> NVL(m_item_rec.ITEM_TYPE,'!'))) THEN
1065             l_create_child := TRUE;
1066          ELSIF ( l_attribute_code = 'ENCUMBRANCE_ACCOUNT' AND (NVL(l_item_rec.ENCUMBRANCE_ACCOUNT,-999999) <> NVL(m_item_rec.ENCUMBRANCE_ACCOUNT,-999999))) THEN
1067             l_create_child := TRUE;
1068          ELSIF ( l_attribute_code = 'MARKET_PRICE' AND (NVL(l_item_rec.MARKET_PRICE,-999999) <> NVL(m_item_rec.MARKET_PRICE,-999999))) THEN
1069             l_create_child := TRUE;
1070          ELSIF ( l_attribute_code = 'TAXABLE_FLAG' AND (NVL(l_item_rec.TAXABLE_FLAG,'!') <> NVL(m_item_rec.TAXABLE_FLAG,'!'))) THEN
1071             l_create_child := TRUE;
1072          ELSIF ( l_attribute_code = 'QTY_RCV_TOLERANCE' AND (NVL(l_item_rec.QTY_RCV_TOLERANCE,-999999) <> NVL(m_item_rec.QTY_RCV_TOLERANCE,-999999))) THEN
1073             l_create_child := TRUE;
1074          ELSIF ( l_attribute_code = 'NEGATIVE_MEASUREMENT_ERROR' AND (NVL(l_item_rec.NEGATIVE_MEASUREMENT_ERROR,-999999) <> NVL(m_item_rec.NEGATIVE_MEASUREMENT_ERROR,-999999))) THEN
1075             l_create_child := TRUE;
1076          ELSIF ( l_attribute_code = 'POSITIVE_MEASUREMENT_ERROR' AND (NVL(l_item_rec.POSITIVE_MEASUREMENT_ERROR,-999999) <> NVL(m_item_rec.POSITIVE_MEASUREMENT_ERROR,-999999))) THEN
1077             l_create_child := TRUE;
1078          ELSIF ( l_attribute_code = 'MAXIMUM_ORDER_QUANTITY' AND (NVL(l_item_rec.MAXIMUM_ORDER_QUANTITY,-999999) <> NVL(m_item_rec.MAXIMUM_ORDER_QUANTITY,-999999))) THEN
1079             l_create_child := TRUE;
1080          ELSIF ( l_attribute_code = 'AUTO_REDUCE_MPS' AND (NVL(l_item_rec.AUTO_REDUCE_MPS,-999999) <> NVL(m_item_rec.AUTO_REDUCE_MPS,-999999))) THEN
1081             l_create_child := TRUE;
1082          ELSIF ( l_attribute_code = 'FULL_LEAD_TIME' AND (NVL(l_item_rec.FULL_LEAD_TIME,-999999) <> NVL(m_item_rec.FULL_LEAD_TIME,-999999))) THEN
1083             l_create_child := TRUE;
1084          ELSIF ( l_attribute_code = 'WIP_SUPPLY_LOCATOR_ID' AND (NVL(l_item_rec.WIP_SUPPLY_LOCATOR_ID,-999999) <> NVL(m_item_rec.WIP_SUPPLY_LOCATOR_ID,-999999))) THEN
1085             l_create_child := TRUE;
1086          ELSIF ( l_attribute_code = 'INVOICE_ENABLED_FLAG' AND (NVL(l_item_rec.INVOICE_ENABLED_FLAG,'!') <> NVL(m_item_rec.INVOICE_ENABLED_FLAG,'!'))) THEN
1087             l_create_child := TRUE;
1088          ELSIF ( l_attribute_code = 'MATERIAL_BILLABLE_FLAG' AND (NVL(l_item_rec.MATERIAL_BILLABLE_FLAG,'!') <> NVL(m_item_rec.MATERIAL_BILLABLE_FLAG,'!'))) THEN
1089             l_create_child := TRUE;
1090          ELSIF ( l_attribute_code = 'SERVICEABLE_PRODUCT_FLAG' AND (NVL(l_item_rec.SERVICEABLE_PRODUCT_FLAG,'!') <> NVL(m_item_rec.SERVICEABLE_PRODUCT_FLAG,'!'))) THEN
1091             l_create_child := TRUE;
1092          ELSIF ( l_attribute_code = 'OVERCOMPLETION_TOLERANCE_VALUE' AND (NVL(l_item_rec.OVERCOMPLETION_TOLERANCE_VALUE,-999999) <> NVL(m_item_rec.OVERCOMPLETION_TOLERANCE_VALUE,-999999))) THEN
1093             l_create_child := TRUE;
1094          ELSIF ( l_attribute_code = 'CONTRACT_ITEM_TYPE_CODE' AND (NVL(l_item_rec.CONTRACT_ITEM_TYPE_CODE,'!') <> NVL(m_item_rec.CONTRACT_ITEM_TYPE_CODE,'!'))) THEN
1095             l_create_child := TRUE;
1096          ELSIF ( l_attribute_code = 'MINIMUM_LICENSE_QUANTITY' AND (NVL(l_item_rec.MINIMUM_LICENSE_QUANTITY,-999999) <> NVL(m_item_rec.MINIMUM_LICENSE_QUANTITY,-999999))) THEN
1097             l_create_child := TRUE;
1098          ELSIF ( l_attribute_code = 'CONFIG_ORGS' AND (NVL(l_item_rec.CONFIG_ORGS,'!') <> NVL(m_item_rec.CONFIG_ORGS,'!'))) THEN
1099             l_create_child := TRUE;
1100          ELSIF ( l_attribute_code = 'VMI_MAXIMUM_DAYS' AND (NVL(l_item_rec.VMI_MAXIMUM_DAYS,-999999) <> NVL(m_item_rec.VMI_MAXIMUM_DAYS,-999999))) THEN
1101             l_create_child := TRUE;
1102          ELSIF ( l_attribute_code = 'CONTINOUS_TRANSFER' AND (NVL(l_item_rec.CONTINOUS_TRANSFER,-999999) <> NVL(m_item_rec.CONTINOUS_TRANSFER,-999999))) THEN
1103             l_create_child := TRUE;
1104          ELSIF ( l_attribute_code = 'DEFAULT_GRADE' AND (NVL(l_item_rec.DEFAULT_GRADE,'!') <> NVL(m_item_rec.DEFAULT_GRADE,'!'))) THEN
1105             l_create_child := TRUE;
1106          ELSIF ( l_attribute_code = 'MATURITY_DAYS' AND (NVL(l_item_rec.MATURITY_DAYS,-999999) <> NVL(m_item_rec.MATURITY_DAYS,-999999))) THEN
1107             l_create_child := TRUE;
1108          ELSIF ( l_attribute_code = 'HOLD_DAYS' AND (NVL(l_item_rec.HOLD_DAYS,-999999) <> NVL(m_item_rec.HOLD_DAYS,-999999))) THEN
1109             l_create_child := TRUE;
1110          ELSIF ( l_attribute_code = 'REPAIR_LEADTIME' AND (NVL(l_item_rec.REPAIR_LEADTIME,-999999) <> NVL(m_item_rec.REPAIR_LEADTIME,-999999))) THEN
1111             l_create_child := TRUE;
1112          ELSIF ( l_attribute_code = 'RECIPE_ENABLED_FLAG' AND (NVL(l_item_rec.RECIPE_ENABLED_FLAG,'!') <> NVL(m_item_rec.RECIPE_ENABLED_FLAG,'!'))) THEN
1113             l_create_child := TRUE;
1114          ELSIF ( l_attribute_code = 'PROCESS_SUPPLY_LOCATOR_ID' AND (NVL(l_item_rec.PROCESS_SUPPLY_LOCATOR_ID,-999999) <> NVL(m_item_rec.PROCESS_SUPPLY_LOCATOR_ID,-999999))) THEN
1115             l_create_child := TRUE;
1116          ELSIF ( l_attribute_code = 'BASE_ITEM_ID' AND (NVL(l_item_rec.BASE_ITEM_ID,-999999) <> NVL(m_item_rec.BASE_ITEM_ID,-999999))) THEN
1117             l_create_child := TRUE;
1118          ELSIF ( l_attribute_code = 'STD_LOT_SIZE' AND (NVL(l_item_rec.STD_LOT_SIZE,-999999) <> NVL(m_item_rec.STD_LOT_SIZE,-999999))) THEN
1119             l_create_child := TRUE;
1120          ELSIF ( l_attribute_code = 'ALLOW_ITEM_DESC_UPDATE_FLAG' AND (NVL(l_item_rec.ALLOW_ITEM_DESC_UPDATE_FLAG,'!') <> NVL(m_item_rec.ALLOW_ITEM_DESC_UPDATE_FLAG,'!'))) THEN
1121             l_create_child := TRUE;
1122          ELSIF ( l_attribute_code = 'LIST_PRICE_PER_UNIT' AND (NVL(l_item_rec.LIST_PRICE_PER_UNIT,-999999) <> NVL(m_item_rec.LIST_PRICE_PER_UNIT,-999999))) THEN
1123             l_create_child := TRUE;
1124          ELSIF ( l_attribute_code = 'PURCHASING_ITEM_FLAG' AND (NVL(l_item_rec.PURCHASING_ITEM_FLAG,'!') <> NVL(m_item_rec.PURCHASING_ITEM_FLAG,'!'))) THEN
1125             l_create_child := TRUE;
1126          ELSIF ( l_attribute_code = 'ALLOW_SUBSTITUTE_RECEIPTS_FLAG' AND (NVL(l_item_rec.ALLOW_SUBSTITUTE_RECEIPTS_FLAG,'!') <> NVL(m_item_rec.ALLOW_SUBSTITUTE_RECEIPTS_FLAG,'!'))) THEN
1127             l_create_child := TRUE;
1128          ELSIF ( l_attribute_code = 'ORDER_COST' AND (NVL(l_item_rec.ORDER_COST,-999999) <> NVL(m_item_rec.ORDER_COST,-999999))) THEN
1129             l_create_child := TRUE;
1130          ELSIF ( l_attribute_code = 'DEMAND_TIME_FENCE_DAYS' AND (NVL(l_item_rec.DEMAND_TIME_FENCE_DAYS,-999999) <> NVL(m_item_rec.DEMAND_TIME_FENCE_DAYS,-999999))) THEN
1131             l_create_child := TRUE;
1132          ELSIF ( l_attribute_code = 'MRP_CALCULATE_ATP_FLAG' AND (NVL(l_item_rec.MRP_CALCULATE_ATP_FLAG,'!') <> NVL(m_item_rec.MRP_CALCULATE_ATP_FLAG,'!'))) THEN
1133             l_create_child := TRUE;
1134          ELSIF ( l_attribute_code = 'CUM_MANUFACTURING_LEAD_TIME' AND (NVL(l_item_rec.CUM_MANUFACTURING_LEAD_TIME,-999999) <> NVL(m_item_rec.CUM_MANUFACTURING_LEAD_TIME,-999999))) THEN
1135             l_create_child := TRUE;
1136          ELSIF ( l_attribute_code = 'WIP_SUPPLY_SUBINVENTORY' AND (NVL(l_item_rec.WIP_SUPPLY_SUBINVENTORY,'!') <> NVL(m_item_rec.WIP_SUPPLY_SUBINVENTORY,'!'))) THEN
1137             l_create_child := TRUE;
1138          ELSIF ( l_attribute_code = 'CUSTOMER_ORDER_ENABLED_FLAG' AND (NVL(l_item_rec.CUSTOMER_ORDER_ENABLED_FLAG,'!') <> NVL(m_item_rec.CUSTOMER_ORDER_ENABLED_FLAG,'!'))) THEN
1139             l_create_child := TRUE;
1140          ELSIF ( l_attribute_code = 'DEFAULT_SHIPPING_ORG' AND (NVL(l_item_rec.DEFAULT_SHIPPING_ORG,-999999) <> NVL(m_item_rec.DEFAULT_SHIPPING_ORG,-999999))) THEN
1141             l_create_child := TRUE;
1142          ELSIF ( l_attribute_code = 'RETURNABLE_FLAG' AND (NVL(l_item_rec.RETURNABLE_FLAG,'!') <> NVL(m_item_rec.RETURNABLE_FLAG,'!'))) THEN
1143             l_create_child := TRUE;
1144          ELSIF ( l_attribute_code = 'PAYMENT_TERMS_ID' AND (NVL(l_item_rec.PAYMENT_TERMS_ID,-999999) <> NVL(m_item_rec.PAYMENT_TERMS_ID,-999999))) THEN
1145             l_create_child := TRUE;
1146          ELSIF ( l_attribute_code = 'TAX_CODE' AND (NVL(l_item_rec.TAX_CODE,'!') <> NVL(m_item_rec.TAX_CODE,'!'))) THEN
1147             l_create_child := TRUE;
1148          ELSIF ( l_attribute_code = 'SERVICE_DURATION' AND (NVL(l_item_rec.SERVICE_DURATION,-999999) <> NVL(m_item_rec.SERVICE_DURATION,-999999))) THEN
1149             l_create_child := TRUE;
1150          ELSIF ( l_attribute_code = 'MAXIMUM_LOAD_WEIGHT' AND (NVL(l_item_rec.MAXIMUM_LOAD_WEIGHT,-999999) <> NVL(m_item_rec.MAXIMUM_LOAD_WEIGHT,-999999))) THEN
1151             l_create_child := TRUE;
1152          ELSIF ( l_attribute_code = 'MINIMUM_FILL_PERCENT' AND (NVL(l_item_rec.MINIMUM_FILL_PERCENT,-999999) <> NVL(m_item_rec.MINIMUM_FILL_PERCENT,-999999))) THEN
1153             l_create_child := TRUE;
1154          ELSIF ( l_attribute_code = 'DAYS_LATE_RECEIPT_ALLOWED' AND (NVL(l_item_rec.DAYS_LATE_RECEIPT_ALLOWED,-999999) <> NVL(m_item_rec.DAYS_LATE_RECEIPT_ALLOWED,-999999))) THEN
1155             l_create_child := TRUE;
1156          ELSIF ( l_attribute_code = 'REPLENISH_TO_ORDER_FLAG' AND (NVL(l_item_rec.REPLENISH_TO_ORDER_FLAG,'!') <> NVL(m_item_rec.REPLENISH_TO_ORDER_FLAG,'!'))) THEN
1157             l_create_child := TRUE;
1158          ELSIF ( l_attribute_code = 'CONTAINER_TYPE_CODE' AND (NVL(l_item_rec.CONTAINER_TYPE_CODE,'!') <> NVL(m_item_rec.CONTAINER_TYPE_CODE,'!'))) THEN
1159             l_create_child := TRUE;
1160          ELSIF ( l_attribute_code = 'DEFECT_TRACKING_ON_FLAG' AND (NVL(l_item_rec.DEFECT_TRACKING_ON_FLAG,'!') <> NVL(m_item_rec.DEFECT_TRACKING_ON_FLAG,'!'))) THEN
1161             l_create_child := TRUE;
1162          ELSIF ( l_attribute_code = 'ELECTRONIC_FLAG' AND (NVL(l_item_rec.ELECTRONIC_FLAG,'!') <> NVL(m_item_rec.ELECTRONIC_FLAG,'!'))) THEN
1163             l_create_child := TRUE;
1164          ELSIF ( l_attribute_code = 'VOL_DISCOUNT_EXEMPT_FLAG' AND (NVL(l_item_rec.VOL_DISCOUNT_EXEMPT_FLAG,'!') <> NVL(m_item_rec.VOL_DISCOUNT_EXEMPT_FLAG,'!'))) THEN
1165             l_create_child := TRUE;
1166          ELSIF ( l_attribute_code = 'WEB_STATUS' AND (NVL(l_item_rec.WEB_STATUS,'!') <> NVL(m_item_rec.WEB_STATUS,'!'))) THEN
1167             l_create_child := TRUE;
1168          ELSIF ( l_attribute_code = 'SERIAL_STATUS_ENABLED' AND (NVL(l_item_rec.SERIAL_STATUS_ENABLED,'!') <> NVL(m_item_rec.SERIAL_STATUS_ENABLED,'!'))) THEN
1169             l_create_child := TRUE;
1170          ELSIF ( l_attribute_code = 'DEFAULT_SERIAL_STATUS_ID' AND (NVL(l_item_rec.DEFAULT_SERIAL_STATUS_ID,-999999) <> NVL(m_item_rec.DEFAULT_SERIAL_STATUS_ID,-999999))) THEN
1171             l_create_child := TRUE;
1172          ELSIF ( l_attribute_code = 'UNIT_WIDTH' AND (NVL(l_item_rec.UNIT_WIDTH,-999999) <> NVL(m_item_rec.UNIT_WIDTH,-999999))) THEN
1173             l_create_child := TRUE;
1174          ELSIF ( l_attribute_code = 'OPERATION_SLACK_PENALTY' AND (NVL(l_item_rec.OPERATION_SLACK_PENALTY,-999999) <> NVL(m_item_rec.OPERATION_SLACK_PENALTY,-999999))) THEN
1175             l_create_child := TRUE;
1176          ELSIF ( l_attribute_code = 'LONG_DESCRIPTION' AND (NVL(l_item_rec.LONG_DESCRIPTION,'!') <> NVL(m_item_rec.LONG_DESCRIPTION,'!'))) THEN
1177             l_create_child := TRUE;
1178          ELSIF ( l_attribute_code = 'EAM_ACTIVITY_TYPE_CODE' AND (NVL(l_item_rec.EAM_ACTIVITY_TYPE_CODE,'!') <> NVL(m_item_rec.EAM_ACTIVITY_TYPE_CODE,'!'))) THEN
1179             l_create_child := TRUE;
1180          ELSIF ( l_attribute_code = 'CREATE_SUPPLY_FLAG' AND (NVL(l_item_rec.CREATE_SUPPLY_FLAG,'!') <> NVL(m_item_rec.CREATE_SUPPLY_FLAG,'!'))) THEN
1181             l_create_child := TRUE;
1182          ELSIF ( l_attribute_code = 'SERV_REQ_ENABLED_CODE' AND (NVL(l_item_rec.SERV_REQ_ENABLED_CODE,'!') <> NVL(m_item_rec.SERV_REQ_ENABLED_CODE,'!'))) THEN
1183             l_create_child := TRUE;
1184          ELSIF ( l_attribute_code = 'IB_ITEM_INSTANCE_CLASS' AND (NVL(l_item_rec.IB_ITEM_INSTANCE_CLASS,'!') <> NVL(m_item_rec.IB_ITEM_INSTANCE_CLASS,'!'))) THEN
1185             l_create_child := TRUE;
1186          ELSIF ( l_attribute_code = 'CONSIGNED_FLAG' AND (NVL(l_item_rec.CONSIGNED_FLAG,-999999) <> NVL(m_item_rec.CONSIGNED_FLAG,-999999))) THEN
1187             l_create_child := TRUE;
1188          ELSIF ( l_attribute_code = 'CRITICAL_COMPONENT_FLAG' AND (NVL(l_item_rec.CRITICAL_COMPONENT_FLAG,-999999) <> NVL(m_item_rec.CRITICAL_COMPONENT_FLAG,-999999))) THEN
1189             l_create_child := TRUE;
1190          ELSIF ( l_attribute_code = 'CHILD_LOT_VALIDATION_FLAG' AND (NVL(l_item_rec.CHILD_LOT_VALIDATION_FLAG,'!') <> NVL(m_item_rec.CHILD_LOT_VALIDATION_FLAG,'!'))) THEN
1191             l_create_child := TRUE;
1192          ELSIF ( l_attribute_code = 'PROCESS_YIELD_LOCATOR_ID' AND (NVL(l_item_rec.PROCESS_YIELD_LOCATOR_ID,-999999) <> NVL(m_item_rec.PROCESS_YIELD_LOCATOR_ID,-999999))) THEN
1193             l_create_child := TRUE;
1194          ELSIF ( l_attribute_code = 'BOM_ENABLED_FLAG' AND (NVL(l_item_rec.BOM_ENABLED_FLAG,'!') <> NVL(m_item_rec.BOM_ENABLED_FLAG,'!'))) THEN
1195             l_create_child := TRUE;
1196          ELSIF ( l_attribute_code = 'ASSET_CATEGORY_ID' AND (NVL(l_item_rec.ASSET_CATEGORY_ID,-999999) <> NVL(m_item_rec.ASSET_CATEGORY_ID,-999999))) THEN
1197             l_create_child := TRUE;
1198          ELSIF ( l_attribute_code = 'BUYER_ID' AND (NVL(l_item_rec.BUYER_ID,-999999) <> NVL(m_item_rec.BUYER_ID,-999999))) THEN
1199             l_create_child := TRUE;
1200          ELSIF ( l_attribute_code = 'RFQ_REQUIRED_FLAG' AND (NVL(l_item_rec.RFQ_REQUIRED_FLAG,'!') <> NVL(m_item_rec.RFQ_REQUIRED_FLAG,'!'))) THEN
1201             l_create_child := TRUE;
1202          ELSIF ( l_attribute_code = 'ALLOW_UNORDERED_RECEIPTS_FLAG' AND (NVL(l_item_rec.ALLOW_UNORDERED_RECEIPTS_FLAG,'!') <> NVL(m_item_rec.ALLOW_UNORDERED_RECEIPTS_FLAG,'!'))) THEN
1203             l_create_child := TRUE;
1204          ELSIF ( l_attribute_code = 'DAYS_EARLY_RECEIPT_ALLOWED' AND (NVL(l_item_rec.DAYS_EARLY_RECEIPT_ALLOWED,-999999) <> NVL(m_item_rec.DAYS_EARLY_RECEIPT_ALLOWED,-999999))) THEN
1205             l_create_child := TRUE;
1206          ELSIF ( l_attribute_code = 'CYCLE_COUNT_ENABLED_FLAG' AND (NVL(l_item_rec.CYCLE_COUNT_ENABLED_FLAG,'!') <> NVL(m_item_rec.CYCLE_COUNT_ENABLED_FLAG,'!'))) THEN
1207             l_create_child := TRUE;
1208          ELSIF ( l_attribute_code = 'WEIGHT_UOM_CODE' AND (NVL(l_item_rec.WEIGHT_UOM_CODE,'!') <> NVL(m_item_rec.WEIGHT_UOM_CODE,'!'))) THEN
1209             l_create_child := TRUE;
1210          ELSIF ( l_attribute_code = 'FIXED_ORDER_QUANTITY' AND (NVL(l_item_rec.FIXED_ORDER_QUANTITY,-999999) <> NVL(m_item_rec.FIXED_ORDER_QUANTITY,-999999))) THEN
1211             l_create_child := TRUE;
1212          ELSIF ( l_attribute_code = 'MAX_MINMAX_QUANTITY' AND (NVL(l_item_rec.MAX_MINMAX_QUANTITY,-999999) <> NVL(m_item_rec.MAX_MINMAX_QUANTITY,-999999))) THEN
1213             l_create_child := TRUE;
1214          ELSIF ( l_attribute_code = 'SOURCE_SUBINVENTORY' AND (NVL(l_item_rec.SOURCE_SUBINVENTORY,'!') <> NVL(m_item_rec.SOURCE_SUBINVENTORY,'!'))) THEN
1215             l_create_child := TRUE;
1216          ELSIF ( l_attribute_code = 'REPETITIVE_PLANNING_FLAG' AND (NVL(l_item_rec.REPETITIVE_PLANNING_FLAG,'!') <> NVL(m_item_rec.REPETITIVE_PLANNING_FLAG,'!'))) THEN
1217             l_create_child := TRUE;
1218          ELSIF ( l_attribute_code = 'INTERNAL_ORDER_ENABLED_FLAG' AND (NVL(l_item_rec.INTERNAL_ORDER_ENABLED_FLAG,'!') <> NVL(m_item_rec.INTERNAL_ORDER_ENABLED_FLAG,'!'))) THEN
1219             l_create_child := TRUE;
1220          ELSIF ( l_attribute_code = 'PICKING_RULE_ID' AND (NVL(l_item_rec.PICKING_RULE_ID,-999999) <> NVL(m_item_rec.PICKING_RULE_ID,-999999))) THEN
1221             l_create_child := TRUE;
1222          ELSIF ( l_attribute_code = 'SHIPPABLE_ITEM_FLAG' AND (NVL(l_item_rec.SHIPPABLE_ITEM_FLAG,'!') <> NVL(m_item_rec.SHIPPABLE_ITEM_FLAG,'!'))) THEN
1223             l_create_child := TRUE;
1224          ELSIF ( l_attribute_code = 'MAX_WARRANTY_AMOUNT' AND (NVL(l_item_rec.MAX_WARRANTY_AMOUNT,-999999) <> NVL(m_item_rec.MAX_WARRANTY_AMOUNT,-999999))) THEN
1225             l_create_child := TRUE;
1226          ELSIF ( l_attribute_code = 'RESPONSE_TIME_VALUE' AND (NVL(l_item_rec.RESPONSE_TIME_VALUE,-999999) <> NVL(m_item_rec.RESPONSE_TIME_VALUE,-999999))) THEN
1227             l_create_child := TRUE;
1228          ELSIF ( l_attribute_code = 'INVENTORY_ASSET_FLAG' AND (NVL(l_item_rec.INVENTORY_ASSET_FLAG,'!') <> NVL(m_item_rec.INVENTORY_ASSET_FLAG,'!'))) THEN
1229             l_create_child := TRUE;
1230          ELSIF ( l_attribute_code = 'UNIT_VOLUME' AND (NVL(l_item_rec.UNIT_VOLUME,-999999) <> NVL(m_item_rec.UNIT_VOLUME,-999999))) THEN
1231             l_create_child := TRUE;
1232          ELSIF ( l_attribute_code = 'END_ASSEMBLY_PEGGING_FLAG' AND (NVL(l_item_rec.END_ASSEMBLY_PEGGING_FLAG,'!') <> NVL(m_item_rec.END_ASSEMBLY_PEGGING_FLAG,'!'))) THEN
1233             l_create_child := TRUE;
1234          ELSIF ( l_attribute_code = 'VARIABLE_LEAD_TIME' AND (NVL(l_item_rec.VARIABLE_LEAD_TIME,-999999) <> NVL(m_item_rec.VARIABLE_LEAD_TIME,-999999))) THEN
1235             l_create_child := TRUE;
1236          ELSIF ( l_attribute_code = 'SERVICEABLE_ITEM_CLASS_ID' AND (NVL(l_item_rec.SERVICEABLE_ITEM_CLASS_ID,-999999) <> NVL(m_item_rec.SERVICEABLE_ITEM_CLASS_ID,-999999))) THEN
1237             l_create_child := TRUE;
1238          ELSIF ( l_attribute_code = 'RECOVERED_PART_DISP_CODE' AND (NVL(l_item_rec.RECOVERED_PART_DISP_CODE,'!') <> NVL(m_item_rec.RECOVERED_PART_DISP_CODE,'!'))) THEN
1239             l_create_child := TRUE;
1240          ELSIF ( l_attribute_code = 'DOWNLOADABLE_FLAG' AND (NVL(l_item_rec.DOWNLOADABLE_FLAG,'!') <> NVL(m_item_rec.DOWNLOADABLE_FLAG,'!'))) THEN
1241             l_create_child := TRUE;
1242          ELSIF ( l_attribute_code = 'LOT_SPLIT_ENABLED' AND (NVL(l_item_rec.LOT_SPLIT_ENABLED,'!') <> NVL(m_item_rec.LOT_SPLIT_ENABLED,'!'))) THEN
1243             l_create_child := TRUE;
1244          ELSIF ( l_attribute_code = 'UNIT_HEIGHT' AND (NVL(l_item_rec.UNIT_HEIGHT,-999999) <> NVL(m_item_rec.UNIT_HEIGHT,-999999))) THEN
1245             l_create_child := TRUE;
1246          ELSIF ( l_attribute_code = 'EAM_ACT_SHUTDOWN_STATUS' AND (NVL(l_item_rec.EAM_ACT_SHUTDOWN_STATUS,'!') <> NVL(m_item_rec.EAM_ACT_SHUTDOWN_STATUS,'!'))) THEN
1247             l_create_child := TRUE;
1248          ELSIF ( l_attribute_code = 'LOT_TRANSLATE_ENABLED' AND (NVL(l_item_rec.LOT_TRANSLATE_ENABLED,'!') <> NVL(m_item_rec.LOT_TRANSLATE_ENABLED,'!'))) THEN
1249             l_create_child := TRUE;
1250          ELSIF ( l_attribute_code = 'VMI_MINIMUM_UNITS' AND (NVL(l_item_rec.VMI_MINIMUM_UNITS,-999999) <> NVL(m_item_rec.VMI_MINIMUM_UNITS,-999999))) THEN
1251             l_create_child := TRUE;
1252          ELSIF ( l_attribute_code = 'VMI_MAXIMUM_UNITS' AND (NVL(l_item_rec.VMI_MAXIMUM_UNITS,-999999) <> NVL(m_item_rec.VMI_MAXIMUM_UNITS,-999999))) THEN
1253             l_create_child := TRUE;
1254          ELSIF ( l_attribute_code = 'SO_AUTHORIZATION_FLAG' AND (NVL(l_item_rec.SO_AUTHORIZATION_FLAG,-999999) <> NVL(m_item_rec.SO_AUTHORIZATION_FLAG,-999999))) THEN
1255             l_create_child := TRUE;
1256          ELSIF ( l_attribute_code = 'DAYS_MAX_INV_WINDOW' AND (NVL(l_item_rec.DAYS_MAX_INV_WINDOW,-999999) <> NVL(m_item_rec.DAYS_MAX_INV_WINDOW,-999999))) THEN
1257             l_create_child := TRUE;
1258          ELSIF ( l_attribute_code = 'DAYS_TGT_INV_WINDOW' AND (NVL(l_item_rec.DAYS_TGT_INV_WINDOW,-999999) <> NVL(m_item_rec.DAYS_TGT_INV_WINDOW,-999999))) THEN
1259             l_create_child := TRUE;
1260          ELSIF ( l_attribute_code = 'GRADE_CONTROL_FLAG' AND (NVL(l_item_rec.GRADE_CONTROL_FLAG,'!') <> NVL(m_item_rec.GRADE_CONTROL_FLAG,'!'))) THEN
1261             l_create_child := TRUE;
1262          ELSIF ( l_attribute_code = 'CHILD_LOT_FLAG' AND (NVL(l_item_rec.CHILD_LOT_FLAG,'!') <> NVL(m_item_rec.CHILD_LOT_FLAG,'!'))) THEN
1263             l_create_child := TRUE;
1264          ELSIF ( l_attribute_code = 'RETEST_INTERVAL' AND (NVL(l_item_rec.RETEST_INTERVAL,-999999) <> NVL(m_item_rec.RETEST_INTERVAL,-999999))) THEN
1265             l_create_child := TRUE;
1266          ELSIF ( l_attribute_code = 'CHARGE_PERIODICITY_CODE' AND (NVL(l_item_rec.CHARGE_PERIODICITY_CODE,'!') <> NVL(m_item_rec.CHARGE_PERIODICITY_CODE,'!'))) THEN
1267             l_create_child := TRUE;
1268          ELSIF ( l_attribute_code = 'BOM_ITEM_TYPE' AND (NVL(l_item_rec.BOM_ITEM_TYPE,-999999) <> NVL(m_item_rec.BOM_ITEM_TYPE,-999999))) THEN
1269             l_create_child := TRUE;
1270          ELSIF ( l_attribute_code = 'MUST_USE_APPROVED_VENDOR_FLAG' AND (NVL(l_item_rec.MUST_USE_APPROVED_VENDOR_FLAG,'!') <> NVL(m_item_rec.MUST_USE_APPROVED_VENDOR_FLAG,'!'))) THEN
1271             l_create_child := TRUE;
1272          ELSIF ( l_attribute_code = 'PURCHASING_ENABLED_FLAG' AND (NVL(l_item_rec.PURCHASING_ENABLED_FLAG,'!') <> NVL(m_item_rec.PURCHASING_ENABLED_FLAG,'!'))) THEN
1273             l_create_child := TRUE;
1274          ELSIF ( l_attribute_code = 'ENFORCE_SHIP_TO_LOCATION_CODE' AND (NVL(l_item_rec.ENFORCE_SHIP_TO_LOCATION_CODE,'!') <> NVL(m_item_rec.ENFORCE_SHIP_TO_LOCATION_CODE,'!'))) THEN
1275             l_create_child := TRUE;
1276          ELSIF ( l_attribute_code = 'RESERVABLE_TYPE' AND (NVL(l_item_rec.RESERVABLE_TYPE,-999999) <> NVL(m_item_rec.RESERVABLE_TYPE,-999999))) THEN
1277             l_create_child := TRUE;
1278          ELSIF ( l_attribute_code = 'SERIAL_NUMBER_CONTROL_CODE' AND (NVL(l_item_rec.SERIAL_NUMBER_CONTROL_CODE,-999999) <> NVL(m_item_rec.SERIAL_NUMBER_CONTROL_CODE,-999999))) THEN
1279             l_create_child := TRUE;
1280          ELSIF ( l_attribute_code = 'FIXED_DAYS_SUPPLY' AND (NVL(l_item_rec.FIXED_DAYS_SUPPLY,-999999) <> NVL(m_item_rec.FIXED_DAYS_SUPPLY,-999999))) THEN
1281             l_create_child := TRUE;
1282          ELSIF ( l_attribute_code = 'FIXED_LOT_MULTIPLIER' AND (NVL(l_item_rec.FIXED_LOT_MULTIPLIER,-999999) <> NVL(m_item_rec.FIXED_LOT_MULTIPLIER,-999999))) THEN
1283             l_create_child := TRUE;
1284          ELSIF ( l_attribute_code = 'MINIMUM_ORDER_QUANTITY' AND (NVL(l_item_rec.MINIMUM_ORDER_QUANTITY,-999999) <> NVL(m_item_rec.MINIMUM_ORDER_QUANTITY,-999999))) THEN
1285             l_create_child := TRUE;
1286          ELSIF ( l_attribute_code = 'PLANNER_CODE' AND (NVL(l_item_rec.PLANNER_CODE,'!') <> NVL(m_item_rec.PLANNER_CODE,'!'))) THEN
1287             l_create_child := TRUE;
1288          ELSIF ( l_attribute_code = 'SOURCE_TYPE' AND (NVL(l_item_rec.SOURCE_TYPE,-999999) <> NVL(m_item_rec.SOURCE_TYPE,-999999))) THEN
1289             l_create_child := TRUE;
1290          ELSIF ( l_attribute_code = 'MRP_PLANNING_CODE' AND (NVL(l_item_rec.MRP_PLANNING_CODE,-999999) <> NVL(m_item_rec.MRP_PLANNING_CODE,-999999))) THEN
1291             l_create_child := TRUE;
1292          ELSIF ( l_attribute_code = 'SHRINKAGE_RATE' AND (NVL(l_item_rec.SHRINKAGE_RATE,-999999) <> NVL(m_item_rec.SHRINKAGE_RATE,-999999))) THEN
1293             l_create_child := TRUE;
1294          ELSIF ( l_attribute_code = 'PREPROCESSING_LEAD_TIME' AND (NVL(l_item_rec.PREPROCESSING_LEAD_TIME,-999999) <> NVL(m_item_rec.PREPROCESSING_LEAD_TIME,-999999))) THEN
1295             l_create_child := TRUE;
1296          ELSIF ( l_attribute_code = 'WIP_SUPPLY_TYPE' AND (NVL(l_item_rec.WIP_SUPPLY_TYPE,-999999) <> NVL(m_item_rec.WIP_SUPPLY_TYPE,-999999))) THEN
1297             l_create_child := TRUE;
1298          ELSIF ( l_attribute_code = 'ATP_RULE_ID' AND (NVL(l_item_rec.ATP_RULE_ID,-999999) <> NVL(m_item_rec.ATP_RULE_ID,-999999))) THEN
1299             l_create_child := TRUE;
1300          ELSIF ( l_attribute_code = 'CUSTOMER_ORDER_FLAG' AND (NVL(l_item_rec.CUSTOMER_ORDER_FLAG,'!') <> NVL(m_item_rec.CUSTOMER_ORDER_FLAG,'!'))) THEN
1301             l_create_child := TRUE;
1302          ELSIF ( l_attribute_code = 'SECONDARY_SPECIALIST_ID' AND (NVL(l_item_rec.SECONDARY_SPECIALIST_ID,-999999) <> NVL(m_item_rec.SECONDARY_SPECIALIST_ID,-999999))) THEN
1303             l_create_child := TRUE;
1304          ELSIF ( l_attribute_code = 'QTY_RCV_EXCEPTION_CODE' AND (NVL(l_item_rec.QTY_RCV_EXCEPTION_CODE,'!') <> NVL(m_item_rec.QTY_RCV_EXCEPTION_CODE,'!'))) THEN
1305             l_create_child := TRUE;
1306          ELSIF ( l_attribute_code = 'LOT_CONTROL_CODE' AND (NVL(l_item_rec.LOT_CONTROL_CODE,-999999) <> NVL(m_item_rec.LOT_CONTROL_CODE,-999999))) THEN
1307             l_create_child := TRUE;
1308          ELSIF ( l_attribute_code = 'PLANNING_MAKE_BUY_CODE' AND (NVL(l_item_rec.PLANNING_MAKE_BUY_CODE,-999999) <> NVL(m_item_rec.PLANNING_MAKE_BUY_CODE,-999999))) THEN
1309             l_create_child := TRUE;
1310          ELSIF ( l_attribute_code = 'LEAD_TIME_LOT_SIZE' AND (NVL(l_item_rec.LEAD_TIME_LOT_SIZE,-999999) <> NVL(m_item_rec.LEAD_TIME_LOT_SIZE,-999999))) THEN
1311             l_create_child := TRUE;
1312          ELSIF ( l_attribute_code = 'SERVICEABLE_COMPONENT_FLAG' AND (NVL(l_item_rec.SERVICEABLE_COMPONENT_FLAG,'!') <> NVL(m_item_rec.SERVICEABLE_COMPONENT_FLAG,'!'))) THEN
1313             l_create_child := TRUE;
1314          ELSIF ( l_attribute_code = 'UNDER_RETURN_TOLERANCE' AND (NVL(l_item_rec.UNDER_RETURN_TOLERANCE,-999999) <> NVL(m_item_rec.UNDER_RETURN_TOLERANCE,-999999))) THEN
1315             l_create_child := TRUE;
1316          ELSIF ( l_attribute_code = 'EQUIPMENT_TYPE' AND (NVL(l_item_rec.EQUIPMENT_TYPE,-999999) <> NVL(m_item_rec.EQUIPMENT_TYPE,-999999))) THEN
1317             l_create_child := TRUE;
1318          ELSIF ( l_attribute_code = 'DEFAULT_LOT_STATUS_ID' AND (NVL(l_item_rec.DEFAULT_LOT_STATUS_ID,-999999) <> NVL(m_item_rec.DEFAULT_LOT_STATUS_ID,-999999))) THEN
1319             l_create_child := TRUE;
1320          ELSIF ( l_attribute_code = 'FINANCING_ALLOWED_FLAG' AND (NVL(l_item_rec.FINANCING_ALLOWED_FLAG,'!') <> NVL(m_item_rec.FINANCING_ALLOWED_FLAG,'!'))) THEN
1321             l_create_child := TRUE;
1322          ELSIF ( l_attribute_code = 'DUAL_UOM_CONTROL' AND (NVL(l_item_rec.DUAL_UOM_CONTROL,-999999) <> NVL(m_item_rec.DUAL_UOM_CONTROL,-999999))) THEN
1323             l_create_child := TRUE;
1324          ELSIF ( l_attribute_code = 'EAM_ACTIVITY_CAUSE_CODE' AND (NVL(l_item_rec.EAM_ACTIVITY_CAUSE_CODE,'!') <> NVL(m_item_rec.EAM_ACTIVITY_CAUSE_CODE,'!'))) THEN
1325             l_create_child := TRUE;
1326          ELSIF ( l_attribute_code = 'SUBSTITUTION_WINDOW_DAYS' AND (NVL(l_item_rec.SUBSTITUTION_WINDOW_DAYS,-999999) <> NVL(m_item_rec.SUBSTITUTION_WINDOW_DAYS,-999999))) THEN
1327             l_create_child := TRUE;
1328          ELSIF ( l_attribute_code = 'AUTO_CREATED_CONFIG_FLAG' AND (NVL(l_item_rec.AUTO_CREATED_CONFIG_FLAG,'!') <> NVL(m_item_rec.AUTO_CREATED_CONFIG_FLAG,'!'))) THEN
1329             l_create_child := TRUE;
1330          ELSIF ( l_attribute_code = 'FORECAST_HORIZON' AND (NVL(l_item_rec.FORECAST_HORIZON,-999999) <> NVL(m_item_rec.FORECAST_HORIZON,-999999))) THEN
1331             l_create_child := TRUE;
1332          ELSIF ( l_attribute_code = 'DAYS_MAX_INV_SUPPLY' AND (NVL(l_item_rec.DAYS_MAX_INV_SUPPLY,-999999) <> NVL(m_item_rec.DAYS_MAX_INV_SUPPLY,-999999))) THEN
1333             l_create_child := TRUE;
1334          ELSIF ( l_attribute_code = 'DIVERGENCE' AND (NVL(l_item_rec.DIVERGENCE,-999999) <> NVL(m_item_rec.DIVERGENCE,-999999))) THEN
1335             l_create_child := TRUE;
1336          ELSIF ( l_attribute_code = 'PARENT_CHILD_GENERATION_FLAG' AND (NVL(l_item_rec.PARENT_CHILD_GENERATION_FLAG,'!') <> NVL(m_item_rec.PARENT_CHILD_GENERATION_FLAG,'!'))) THEN
1337             l_create_child := TRUE;
1338          ELSIF ( l_attribute_code = 'EXPIRATION_ACTION_CODE' AND (NVL(l_item_rec.EXPIRATION_ACTION_CODE,'!') <> NVL(m_item_rec.EXPIRATION_ACTION_CODE,'!'))) THEN
1339             l_create_child := TRUE;
1340          ELSIF ( l_attribute_code = 'PROCESS_COSTING_ENABLED_FLAG' AND (NVL(l_item_rec.PROCESS_COSTING_ENABLED_FLAG,'!') <> NVL(m_item_rec.PROCESS_COSTING_ENABLED_FLAG,'!'))) THEN
1341             l_create_child := TRUE;
1342          ELSIF ( l_attribute_code = 'PROCESS_SUPPLY_SUBINVENTORY' AND (NVL(l_item_rec.PROCESS_SUPPLY_SUBINVENTORY,'!') <> NVL(m_item_rec.PROCESS_SUPPLY_SUBINVENTORY,'!'))) THEN
1343             l_create_child := TRUE;
1344          ELSIF ( l_attribute_code = 'EXPENSE_ACCOUNT' AND (NVL(l_item_rec.EXPENSE_ACCOUNT,-999999) <> NVL(m_item_rec.EXPENSE_ACCOUNT,-999999))) THEN
1345             l_create_child := TRUE;
1346          ELSIF ( l_attribute_code = 'UN_NUMBER_ID' AND (NVL(l_item_rec.UN_NUMBER_ID,-999999) <> NVL(m_item_rec.UN_NUMBER_ID,-999999))) THEN
1347             l_create_child := TRUE;
1348          ELSIF ( l_attribute_code = 'RECEIVE_CLOSE_TOLERANCE' AND (NVL(l_item_rec.RECEIVE_CLOSE_TOLERANCE,-999999) <> NVL(m_item_rec.RECEIVE_CLOSE_TOLERANCE,-999999))) THEN
1349             l_create_child := TRUE;
1350          ELSIF ( l_attribute_code = 'AUTO_SERIAL_ALPHA_PREFIX' AND (NVL(l_item_rec.AUTO_SERIAL_ALPHA_PREFIX,'!') <> NVL(m_item_rec.AUTO_SERIAL_ALPHA_PREFIX,'!'))) THEN
1351             l_create_child := TRUE;
1352          ELSIF ( l_attribute_code = 'MTL_TRANSACTIONS_ENABLED_FLAG' AND (NVL(l_item_rec.MTL_TRANSACTIONS_ENABLED_FLAG,'!') <> NVL(m_item_rec.MTL_TRANSACTIONS_ENABLED_FLAG,'!'))) THEN
1353             l_create_child := TRUE;
1354          ELSIF ( l_attribute_code = 'VOLUME_UOM_CODE' AND (NVL(l_item_rec.VOLUME_UOM_CODE,'!') <> NVL(m_item_rec.VOLUME_UOM_CODE,'!'))) THEN
1355             l_create_child := TRUE;
1356          ELSIF ( l_attribute_code = 'ACCEPTABLE_EARLY_DAYS' AND (NVL(l_item_rec.ACCEPTABLE_EARLY_DAYS,-999999) <> NVL(m_item_rec.ACCEPTABLE_EARLY_DAYS,-999999))) THEN
1357             l_create_child := TRUE;
1358          ELSIF ( l_attribute_code = 'ACCEPTABLE_RATE_INCREASE' AND (NVL(l_item_rec.ACCEPTABLE_RATE_INCREASE,-999999) <> NVL(m_item_rec.ACCEPTABLE_RATE_INCREASE,-999999))) THEN
1359             l_create_child := TRUE;
1360          ELSIF ( l_attribute_code = 'DEMAND_TIME_FENCE_CODE' AND (NVL(l_item_rec.DEMAND_TIME_FENCE_CODE,-999999) <> NVL(m_item_rec.DEMAND_TIME_FENCE_CODE,-999999))) THEN
1361             l_create_child := TRUE;
1362          ELSIF ( l_attribute_code = 'ATP_COMPONENTS_FLAG' AND (NVL(l_item_rec.ATP_COMPONENTS_FLAG,'!') <> NVL(m_item_rec.ATP_COMPONENTS_FLAG,'!'))) THEN
1363             l_create_child := TRUE;
1364          ELSIF ( l_attribute_code = 'RETURN_INSPECTION_REQUIREMENT' AND (NVL(l_item_rec.RETURN_INSPECTION_REQUIREMENT,-999999) <> NVL(m_item_rec.RETURN_INSPECTION_REQUIREMENT,-999999))) THEN
1365             l_create_child := TRUE;
1366          ELSIF ( l_attribute_code = 'RESPONSE_TIME_PERIOD_CODE' AND (NVL(l_item_rec.RESPONSE_TIME_PERIOD_CODE,'!') <> NVL(m_item_rec.RESPONSE_TIME_PERIOD_CODE,'!'))) THEN
1367             l_create_child := TRUE;
1368          ELSIF ( l_attribute_code = 'VEHICLE_ITEM_FLAG' AND (NVL(l_item_rec.VEHICLE_ITEM_FLAG,'!') <> NVL(m_item_rec.VEHICLE_ITEM_FLAG,'!'))) THEN
1369             l_create_child := TRUE;
1370          ELSIF ( l_attribute_code = 'CONTAINER_ITEM_FLAG' AND (NVL(l_item_rec.CONTAINER_ITEM_FLAG,'!') <> NVL(m_item_rec.CONTAINER_ITEM_FLAG,'!'))) THEN
1371             l_create_child := TRUE;
1372          ELSIF ( l_attribute_code = 'RELEASE_TIME_FENCE_CODE' AND (NVL(l_item_rec.RELEASE_TIME_FENCE_CODE,-999999) <> NVL(m_item_rec.RELEASE_TIME_FENCE_CODE,-999999))) THEN
1373             l_create_child := TRUE;
1374          ELSIF ( l_attribute_code = 'INTERNAL_VOLUME' AND (NVL(l_item_rec.INTERNAL_VOLUME,-999999) <> NVL(m_item_rec.INTERNAL_VOLUME,-999999))) THEN
1375             l_create_child := TRUE;
1376          ELSIF ( l_attribute_code = 'EFFECTIVITY_CONTROL' AND (NVL(l_item_rec.EFFECTIVITY_CONTROL,-999999) <> NVL(m_item_rec.EFFECTIVITY_CONTROL,-999999))) THEN
1377             l_create_child := TRUE;
1378          ELSIF ( l_attribute_code = 'COUPON_EXEMPT_FLAG' AND (NVL(l_item_rec.COUPON_EXEMPT_FLAG,'!') <> NVL(m_item_rec.COUPON_EXEMPT_FLAG,'!'))) THEN
1379             l_create_child := TRUE;
1380          ELSIF ( l_attribute_code = 'COMMS_NL_TRACKABLE_FLAG' AND (NVL(l_item_rec.COMMS_NL_TRACKABLE_FLAG,'!') <> NVL(m_item_rec.COMMS_NL_TRACKABLE_FLAG,'!'))) THEN
1381             l_create_child := TRUE;
1382          ELSIF ( l_attribute_code = 'ORDERABLE_ON_WEB_FLAG' AND (NVL(l_item_rec.ORDERABLE_ON_WEB_FLAG,'!') <> NVL(m_item_rec.ORDERABLE_ON_WEB_FLAG,'!'))) THEN
1383             l_create_child := TRUE;
1384          ELSIF ( l_attribute_code = 'CONFIG_MODEL_TYPE' AND (NVL(l_item_rec.CONFIG_MODEL_TYPE,'!') <> NVL(m_item_rec.CONFIG_MODEL_TYPE,'!'))) THEN
1385             l_create_child := TRUE;
1386          ELSIF ( l_attribute_code = 'ASN_AUTOEXPIRE_FLAG' AND (NVL(l_item_rec.ASN_AUTOEXPIRE_FLAG,-999999) <> NVL(m_item_rec.ASN_AUTOEXPIRE_FLAG,-999999))) THEN
1387             l_create_child := TRUE;
1388          ELSIF ( l_attribute_code = 'DRP_PLANNED_FLAG' AND (NVL(l_item_rec.DRP_PLANNED_FLAG,-999999) <> NVL(m_item_rec.DRP_PLANNED_FLAG,-999999))) THEN
1389             l_create_child := TRUE;
1390          ELSIF ( l_attribute_code = 'COPY_LOT_ATTRIBUTE_FLAG' AND (NVL(l_item_rec.COPY_LOT_ATTRIBUTE_FLAG,'!') <> NVL(m_item_rec.COPY_LOT_ATTRIBUTE_FLAG,'!'))) THEN
1391             l_create_child := TRUE;
1392          ELSIF ( l_attribute_code = 'REPAIR_PROGRAM' AND (NVL(l_item_rec.REPAIR_PROGRAM,-999999) <> NVL(m_item_rec.REPAIR_PROGRAM,-999999))) THEN
1393             l_create_child := TRUE;
1394          ELSIF ( l_attribute_code = 'PROCESS_EXECUTION_ENABLED_FLAG' AND (NVL(l_item_rec.PROCESS_EXECUTION_ENABLED_FLAG,'!') <> NVL(m_item_rec.PROCESS_EXECUTION_ENABLED_FLAG,'!'))) THEN
1395             l_create_child := TRUE;
1396 	 END IF;
1397 
1398    END LOOP;
1399    CLOSE c_master_attributes;
1400 
1401    check_create_child := l_create_child ;
1402 
1403 EXCEPTION
1404    WHEN OTHERS THEN
1405       IF (c_master_attributes%ISOPEN) THEN
1406          CLOSE c_master_attributes;
1407       END IF;
1408       check_create_child := TRUE;
1409       INVPUTLI.info('INVUPD2B.check_create_child_records : Exception ' || SQLERRM );
1410 
1411 END Check_create_child_records;
1412 
1413 FUNCTION check_child_records
1414 (
1415         master_row_id   ROWID,
1416         inv_item_id     NUMBER,
1417         org_id          NUMBER,
1418         trans_id        NUMBER,
1419         prog_appid      NUMBER          := -1,
1420         prog_id         NUMBER          := -1,
1421         request_id      NUMBER          := -1,
1422         user_id         NUMBER          := -1,
1423         login_id        NUMBER          := -1,
1424         err_text IN OUT NOCOPY VARCHAR2,
1425         xset_id  IN     NUMBER          DEFAULT NULL
1426 )
1427 return NUMBER
1428 IS
1429 
1430         CURSOR C_msi_child_records is
1431         select
1432         MSI.INVENTORY_ITEM_ID,
1433         MSI.ORGANIZATION_ID
1434         from MTL_SYSTEM_ITEMS_B MSI, MTL_PARAMETERS MP
1435         where MP.master_organization_id = org_id
1436         and MP.organization_id = MSI.organization_id
1437         and MSI.inventory_item_id = inv_item_id
1438         and MSI.organization_id <> MP.master_organization_id;
1439 
1440         CURSOR C_msii_forupdate_records is
1441         select
1442         ROWID, ORGANIZATION_ID
1443         from MTL_SYSTEM_ITEMS_INTERFACE
1444         where SET_PROCESS_ID = xset_id + 1000000000000
1445         and PROCESS_FLAG = 4
1446         and INVENTORY_ITEM_ID = inv_item_id;
1447 
1448         ret_code_create         NUMBER := 0;
1449         ret_code_update         NUMBER := 0;
1450         ret_code                NUMBER;
1451         org_id_temp             NUMBER;
1452 
1453         l_created_child         BOOLEAN := FALSE;
1454 
1455 	l_inv_debug_level	NUMBER := INVPUTLI.get_debug_level;     --Bug: 4667452
1456 	l_check_create_child    BOOLEAN; --Bug: 5437967
1457 
1458 BEGIN
1459 
1460    IF l_inv_debug_level IN(101, 102) THEN
1461       INVPUTLI.info('INVUPD2B: Inside check_child_records'|| '***orgid: ' || TO_CHAR(org_id));
1462    END IF;
1463 
1464         -- for each record in msi which is a child record of the item
1465 
1466         for crec in C_msi_child_records loop -- {
1467 	   --Bug: 5437967 Added call to Check_create_child_records
1468 	   Check_create_child_records(mast_rowid         => master_row_id,
1469 	                              item_id            => crec.inventory_item_id,
1470 				      org_id             => crec.organization_id,
1471 				      check_create_child => l_check_create_child);
1472 	   IF l_check_create_child = TRUE THEN
1473               ret_code := INVUPD2B.create_child_update_mast_attr(master_row_id, crec.INVENTORY_ITEM_ID, crec.ORGANIZATION_ID, xset_id);
1474               l_created_child := TRUE;
1475 	   END IF;
1476         end loop; -- }  -- msi_child loop
1477 
1478         --3515652: Should call only when child recods are inserted.
1479         -- validate the inserted records in msii with SET_PROCESS_ID = xset_id + 1000000000000
1480         IF l_created_child THEN
1481 
1482            ret_code_create := INVNIRIS.change_policy_check (
1483                                  org_id     => org_id,
1484                                  all_org    => 1,
1485                                  prog_appid => prog_appid,
1486                                  prog_id    => prog_id,
1487                                  request_id => request_id,
1488                                  user_id    => user_id,
1489                                  login_id   => login_id,
1490                                  err_text   => err_text,
1491                                  xset_id    => xset_id + 1000000000000);
1492 
1493            ret_code_create := INVPVALI.mtl_pr_validate_item(
1494                                 org_id,
1495                                 1,
1496                                 prog_appid,
1497                                 prog_id,
1498                                 request_id,
1499                                 user_id,
1500                                 login_id,
1501                                 err_text,
1502                                 xset_id + 1000000000000);
1503 
1504            for rec in C_msii_forupdate_records loop
1505               ret_code_update :=  INVUPD2B.update_validations(
1506                                                 rec.ROWID,
1507                                                 rec.ORGANIZATION_ID,
1508                                                 trans_id,
1509                                                 user_id,
1510                                                 login_id,
1511                                                 prog_appid,
1512                                                 prog_id,
1513                                                 request_id);
1514               exit when ret_code_update = 1;
1515            end loop;
1516         END IF;
1517 
1518         if (ret_code_create = 1 OR ret_code_update = 1) then
1519            return (1);
1520         else
1521            return (0);
1522         end if;
1523 
1524 EXCEPTION
1525 
1526    when NO_DATA_FOUND then
1527       -- there are no child records in msi
1528       return (0);
1529 
1530    when OTHERS then
1531       --bug #4251913 : Included SQLCODE and SQLERRM to trap exception messages.
1532       IF l_inv_debug_level IN(101, 102) THEN
1533          INVPUTLI.info(
1534 		     Substr('When OTHERS exception raised in check_child_records '||
1535 	             SQLCODE ||
1536 		     ' - '   ||
1537 		     SQLERRM,1,240));
1538       END IF;
1539       return (1);
1540 
1541 END check_child_records;
1542 
1543 -------------------------------------------------------------
1544 
1545 FUNCTION create_child_update_mast_attr
1546 (
1547         master_row_id   ROWID,
1548         inv_item_id     NUMBER,
1549         org_id          NUMBER,
1550         xset_id IN      NUMBER
1551 )
1552 return INTEGER
1553 IS
1554    ret_code    NUMBER;
1555 
1556    l_inv_debug_level	NUMBER := INVPUTLI.get_debug_level;     --Bug: 4667452
1557 BEGIN
1558 
1559    IF l_inv_debug_level IN(101, 102) THEN
1560       INVPUTLI.info('INVUPD2B: Inside create_child_update_mast_attr'|| '***orgid: ' || TO_CHAR(org_id));
1561    END IF;
1562    -- Insert msi data onto MSII for child record.
1563    -- Need to verify these attributes.
1564    --
1565    INSERT INTO MTL_SYSTEM_ITEMS_INTERFACE
1566    (
1567       TRANSACTION_ID,
1568       INVENTORY_ITEM_ID,
1569       ORGANIZATION_ID,
1570       SET_PROCESS_ID,
1571       TRANSACTION_TYPE,
1572                 SUMMARY_FLAG,
1573                 ENABLED_FLAG,
1574                 START_DATE_ACTIVE,
1575                 END_DATE_ACTIVE,
1576                 DESCRIPTION,
1577                 LONG_DESCRIPTION,
1578                 BUYER_ID,
1579                 ACCOUNTING_RULE_ID,
1580                 INVOICING_RULE_ID,
1581                 SEGMENT1,
1582                 SEGMENT2,
1583                 SEGMENT3,
1584                 SEGMENT4,
1585                 SEGMENT5,
1586                 SEGMENT6,
1587                 SEGMENT7,
1588                 SEGMENT8,
1589                 SEGMENT9,
1590                 SEGMENT10,
1591                 SEGMENT11,
1592                 SEGMENT12,
1593                 SEGMENT13,
1594                 SEGMENT14,
1595                 SEGMENT15,
1596                 SEGMENT16,
1597                 SEGMENT17,
1598                 SEGMENT18,
1599                 SEGMENT19,
1600                 SEGMENT20,
1601         ATTRIBUTE_CATEGORY,
1602         ATTRIBUTE1,
1603         ATTRIBUTE2,
1604         ATTRIBUTE3,
1605         ATTRIBUTE4,
1606         ATTRIBUTE5,
1607         ATTRIBUTE6,
1608         ATTRIBUTE7,
1609         ATTRIBUTE8,
1610         ATTRIBUTE9,
1611         ATTRIBUTE10,
1612         ATTRIBUTE11,
1613         ATTRIBUTE12,
1614         ATTRIBUTE13,
1615         ATTRIBUTE14,
1616         ATTRIBUTE15,
1617         /* Start Bug 3713912 */
1618         ATTRIBUTE16 ,
1619         ATTRIBUTE17 ,
1620         ATTRIBUTE18 ,
1621         ATTRIBUTE19 ,
1622         ATTRIBUTE20 ,
1623         ATTRIBUTE21 ,
1624         ATTRIBUTE22 ,
1625         ATTRIBUTE23 ,
1626         ATTRIBUTE24 ,
1627         ATTRIBUTE25 ,
1628         ATTRIBUTE26 ,
1629         ATTRIBUTE27 ,
1630         ATTRIBUTE28 ,
1631         ATTRIBUTE29 ,
1632         ATTRIBUTE30 ,
1633         /* End Bug 3713912 */
1634                 GLOBAL_ATTRIBUTE_CATEGORY,
1635                 GLOBAL_ATTRIBUTE1,
1636                 GLOBAL_ATTRIBUTE2,
1637                 GLOBAL_ATTRIBUTE3,
1638                 GLOBAL_ATTRIBUTE4,
1639                 GLOBAL_ATTRIBUTE5,
1640                 GLOBAL_ATTRIBUTE6,
1641                 GLOBAL_ATTRIBUTE7,
1642                 GLOBAL_ATTRIBUTE8,
1643                 GLOBAL_ATTRIBUTE9,
1644                 GLOBAL_ATTRIBUTE10,
1645                 GLOBAL_ATTRIBUTE11,
1646                 GLOBAL_ATTRIBUTE12,
1647                 GLOBAL_ATTRIBUTE13,
1648                 GLOBAL_ATTRIBUTE14,
1649                 GLOBAL_ATTRIBUTE15,
1650                 GLOBAL_ATTRIBUTE16,
1651                 GLOBAL_ATTRIBUTE17,
1652                 GLOBAL_ATTRIBUTE18,
1653                 GLOBAL_ATTRIBUTE19,
1654                 GLOBAL_ATTRIBUTE20,
1655                 PURCHASING_ITEM_FLAG,
1656                 SHIPPABLE_ITEM_FLAG,
1657                 CUSTOMER_ORDER_FLAG,
1658                 INTERNAL_ORDER_FLAG,
1659                 INVENTORY_ITEM_FLAG,
1660                 ENG_ITEM_FLAG,
1661                 INVENTORY_ASSET_FLAG,
1662                 PURCHASING_ENABLED_FLAG,
1663                 CUSTOMER_ORDER_ENABLED_FLAG,
1664                 INTERNAL_ORDER_ENABLED_FLAG,
1665                 SO_TRANSACTIONS_FLAG,
1666                 MTL_TRANSACTIONS_ENABLED_FLAG,
1667                 STOCK_ENABLED_FLAG,
1668                 BOM_ENABLED_FLAG,
1669                 BUILD_IN_WIP_FLAG,
1670                 REVISION_QTY_CONTROL_CODE,
1671                 ITEM_CATALOG_GROUP_ID,
1672                 CATALOG_STATUS_FLAG,
1673                 RETURNABLE_FLAG,
1674                 DEFAULT_SHIPPING_ORG,
1675                 COLLATERAL_FLAG,
1676                 TAXABLE_FLAG,
1677                 PURCHASING_TAX_CODE,
1678                 QTY_RCV_EXCEPTION_CODE,
1679                 ALLOW_ITEM_DESC_UPDATE_FLAG,
1680                 INSPECTION_REQUIRED_FLAG,
1681                 RECEIPT_REQUIRED_FLAG,
1682                 MARKET_PRICE,
1683                 HAZARD_CLASS_ID,
1684                 RFQ_REQUIRED_FLAG,
1685                 QTY_RCV_TOLERANCE,
1686                 LIST_PRICE_PER_UNIT,
1687                 UN_NUMBER_ID,
1688                 PRICE_TOLERANCE_PERCENT,
1689                 ASSET_CATEGORY_ID,
1690                 ROUNDING_FACTOR,
1691                 UNIT_OF_ISSUE,
1692                 ENFORCE_SHIP_TO_LOCATION_CODE,
1693                 ALLOW_SUBSTITUTE_RECEIPTS_FLAG,
1694                 ALLOW_UNORDERED_RECEIPTS_FLAG,
1695                 ALLOW_EXPRESS_DELIVERY_FLAG,
1696                 DAYS_EARLY_RECEIPT_ALLOWED,
1697                 DAYS_LATE_RECEIPT_ALLOWED,
1698                 RECEIPT_DAYS_EXCEPTION_CODE,
1699                 RECEIVING_ROUTING_ID,
1700                 INVOICE_CLOSE_TOLERANCE,
1701                 RECEIVE_CLOSE_TOLERANCE,
1702                 AUTO_LOT_ALPHA_PREFIX,
1703                 START_AUTO_LOT_NUMBER,
1704                 LOT_CONTROL_CODE,
1705                 SHELF_LIFE_CODE,
1706                 SHELF_LIFE_DAYS,
1707                 SERIAL_NUMBER_CONTROL_CODE,
1708                 START_AUTO_SERIAL_NUMBER,
1709                 AUTO_SERIAL_ALPHA_PREFIX,
1710                 SOURCE_TYPE,
1711                 SOURCE_ORGANIZATION_ID,
1712                 SOURCE_SUBINVENTORY,
1713                 EXPENSE_ACCOUNT,
1714                 ENCUMBRANCE_ACCOUNT,
1715                 RESTRICT_SUBINVENTORIES_CODE,
1716                 UNIT_WEIGHT,
1717                 WEIGHT_UOM_CODE,
1718                 VOLUME_UOM_CODE,
1719                 UNIT_VOLUME,
1720                 RESTRICT_LOCATORS_CODE,
1721                 LOCATION_CONTROL_CODE,
1722                 SHRINKAGE_RATE,
1723                 ACCEPTABLE_EARLY_DAYS,
1724                 PLANNING_TIME_FENCE_CODE,
1725                 DEMAND_TIME_FENCE_CODE,
1726                 RELEASE_TIME_FENCE_CODE,
1727                 LEAD_TIME_LOT_SIZE,
1728                 STD_LOT_SIZE,
1729                 CUM_MANUFACTURING_LEAD_TIME,
1730                 OVERRUN_PERCENTAGE,
1731                 MRP_CALCULATE_ATP_FLAG,
1732                 ACCEPTABLE_RATE_INCREASE,
1733                 ACCEPTABLE_RATE_DECREASE,
1734                 CUMULATIVE_TOTAL_LEAD_TIME,
1735                 PLANNING_TIME_FENCE_DAYS,
1736                 DEMAND_TIME_FENCE_DAYS,
1737                 RELEASE_TIME_FENCE_DAYS,
1738                 END_ASSEMBLY_PEGGING_FLAG,
1739                 REPETITIVE_PLANNING_FLAG,
1740                 PLANNING_EXCEPTION_SET,
1741                 BOM_ITEM_TYPE,
1742                 PICK_COMPONENTS_FLAG,
1743                 REPLENISH_TO_ORDER_FLAG,
1744                 BASE_ITEM_ID,
1745                 ATP_COMPONENTS_FLAG,
1746                 ATP_FLAG,
1747                 FIXED_LEAD_TIME,
1748                 VARIABLE_LEAD_TIME,
1749                 WIP_SUPPLY_LOCATOR_ID,
1750                 WIP_SUPPLY_TYPE,
1751                 WIP_SUPPLY_SUBINVENTORY,
1752                 PRIMARY_UOM_CODE,
1753                 PRIMARY_UNIT_OF_MEASURE,
1754                 ALLOWED_UNITS_LOOKUP_CODE,
1755                 COST_OF_SALES_ACCOUNT,
1756                 SALES_ACCOUNT,
1757                 DEFAULT_INCLUDE_IN_ROLLUP_FLAG,
1758                 INVENTORY_ITEM_STATUS_CODE,
1759                 INVENTORY_PLANNING_CODE,
1760                 PLANNER_CODE,
1761                 PLANNING_MAKE_BUY_CODE,
1762                 FIXED_LOT_MULTIPLIER,
1763                 ROUNDING_CONTROL_TYPE,
1764                 CARRYING_COST,
1765                 POSTPROCESSING_LEAD_TIME,
1766                 PREPROCESSING_LEAD_TIME,
1767                 FULL_LEAD_TIME,
1768                 ORDER_COST,
1769                 MRP_SAFETY_STOCK_PERCENT,
1770                 MRP_SAFETY_STOCK_CODE,
1771                 MIN_MINMAX_QUANTITY,
1772                 MAX_MINMAX_QUANTITY,
1773                 MINIMUM_ORDER_QUANTITY,
1774                 FIXED_ORDER_QUANTITY,
1775                 FIXED_DAYS_SUPPLY,
1776                 MAXIMUM_ORDER_QUANTITY,
1777                 ATP_RULE_ID,
1778                 PICKING_RULE_ID,
1779                 RESERVABLE_TYPE,
1780                 POSITIVE_MEASUREMENT_ERROR,
1781                 NEGATIVE_MEASUREMENT_ERROR,
1782                 ENGINEERING_ECN_CODE,
1783                 ENGINEERING_ITEM_ID,
1784                 ENGINEERING_DATE,
1785                 SERVICE_STARTING_DELAY,
1786                 SERVICEABLE_COMPONENT_FLAG,
1787                 SERVICEABLE_PRODUCT_FLAG,
1788                 BASE_WARRANTY_SERVICE_ID,
1789                 PAYMENT_TERMS_ID,
1790                 PREVENTIVE_MAINTENANCE_FLAG,
1791                 PRIMARY_SPECIALIST_ID,
1792                 SECONDARY_SPECIALIST_ID,
1793                 SERVICEABLE_ITEM_CLASS_ID,
1794                 TIME_BILLABLE_FLAG,
1795                 MATERIAL_BILLABLE_FLAG,
1796                 EXPENSE_BILLABLE_FLAG,
1797                 PRORATE_SERVICE_FLAG,
1798                 COVERAGE_SCHEDULE_ID,
1799                 SERVICE_DURATION_PERIOD_CODE,
1800                 SERVICE_DURATION,
1801                 WARRANTY_VENDOR_ID,
1802                 MAX_WARRANTY_AMOUNT,
1803                 RESPONSE_TIME_PERIOD_CODE,
1804                 RESPONSE_TIME_VALUE,
1805                 NEW_REVISION_CODE,
1806                 INVOICEABLE_ITEM_FLAG,
1807                 TAX_CODE,
1808                 INVOICE_ENABLED_FLAG,
1809                 MUST_USE_APPROVED_VENDOR_FLAG,
1810                 REQUEST_ID,
1811                 PROGRAM_APPLICATION_ID,
1812                 PROGRAM_ID,
1813                 PROGRAM_UPDATE_DATE,
1814                 OUTSIDE_OPERATION_FLAG,
1815                 OUTSIDE_OPERATION_UOM_TYPE,
1816                 SAFETY_STOCK_BUCKET_DAYS,
1817                 AUTO_REDUCE_MPS,
1818                 COSTING_ENABLED_FLAG,
1819                 AUTO_CREATED_CONFIG_FLAG,
1820                 CYCLE_COUNT_ENABLED_FLAG,
1821                 ITEM_TYPE,
1822                 MODEL_CONFIG_CLAUSE_NAME,
1823                 SHIP_MODEL_COMPLETE_FLAG,
1824                 MRP_PLANNING_CODE,
1825                 RETURN_INSPECTION_REQUIREMENT,
1826                 ATO_FORECAST_CONTROL,
1827                 CONTAINER_ITEM_FLAG,
1828                 VEHICLE_ITEM_FLAG,
1829                 MAXIMUM_LOAD_WEIGHT,
1830                 MINIMUM_FILL_PERCENT,
1831                 CONTAINER_TYPE_CODE,
1832                 INTERNAL_VOLUME,
1833       CHECK_SHORTAGES_FLAG
1834    ,  EFFECTIVITY_CONTROL
1835    ,   OVERCOMPLETION_TOLERANCE_TYPE
1836    ,   OVERCOMPLETION_TOLERANCE_VALUE
1837    ,   OVER_SHIPMENT_TOLERANCE
1838    ,   UNDER_SHIPMENT_TOLERANCE
1839    ,   OVER_RETURN_TOLERANCE
1840    ,   UNDER_RETURN_TOLERANCE
1841    ,   EQUIPMENT_TYPE
1842    ,   RECOVERED_PART_DISP_CODE
1843    ,   DEFECT_TRACKING_ON_FLAG
1844    ,   EVENT_FLAG
1845    ,   ELECTRONIC_FLAG
1846    ,   DOWNLOADABLE_FLAG
1847    ,   VOL_DISCOUNT_EXEMPT_FLAG
1848    ,   COUPON_EXEMPT_FLAG
1849    ,   COMMS_NL_TRACKABLE_FLAG
1850    ,   ASSET_CREATION_CODE
1851    ,   COMMS_ACTIVATION_REQD_FLAG
1852    ,   ORDERABLE_ON_WEB_FLAG
1853    ,   BACK_ORDERABLE_FLAG
1854    ,  WEB_STATUS
1855    ,  INDIVISIBLE_FLAG
1856    ,   DIMENSION_UOM_CODE
1857    ,   UNIT_LENGTH
1858    ,   UNIT_WIDTH
1859    ,   UNIT_HEIGHT
1860    ,   BULK_PICKED_FLAG
1861    ,   LOT_STATUS_ENABLED
1862    ,   DEFAULT_LOT_STATUS_ID
1863    ,   SERIAL_STATUS_ENABLED
1864    ,   DEFAULT_SERIAL_STATUS_ID
1865    ,   LOT_SPLIT_ENABLED
1866    ,   LOT_MERGE_ENABLED
1867    ,   INVENTORY_CARRY_PENALTY
1868    ,   OPERATION_SLACK_PENALTY
1869    ,   FINANCING_ALLOWED_FLAG
1870    ,  EAM_ITEM_TYPE
1871    ,  EAM_ACTIVITY_TYPE_CODE
1872    ,  EAM_ACTIVITY_CAUSE_CODE
1873    ,  EAM_ACT_NOTIFICATION_FLAG
1874    ,  EAM_ACT_SHUTDOWN_STATUS
1875    ,  DUAL_UOM_CONTROL
1876    ,  SECONDARY_UOM_CODE
1877    ,  DUAL_UOM_DEVIATION_HIGH
1878    ,  DUAL_UOM_DEVIATION_LOW
1879    --,  SERVICE_ITEM_FLAG
1880    --,  VENDOR_WARRANTY_FLAG
1881    --,  USAGE_ITEM_FLAG
1882    ,  CONTRACT_ITEM_TYPE_CODE
1883 --   ,  SUBSCRIPTION_DEPEND_FLAG
1884    --
1885    ,  SERV_REQ_ENABLED_CODE
1886    ,  SERV_BILLING_ENABLED_FLAG
1887 --   ,  SERV_IMPORTANCE_LEVEL
1888    ,  PLANNED_INV_POINT_FLAG
1889    ,  LOT_TRANSLATE_ENABLED
1890    ,  DEFAULT_SO_SOURCE_TYPE
1891    ,  CREATE_SUPPLY_FLAG
1892    ,  SUBSTITUTION_WINDOW_CODE
1893    ,  SUBSTITUTION_WINDOW_DAYS
1894 --Added as part of 11.5.9
1895    ,  LOT_SUBSTITUTION_ENABLED
1896    ,  MINIMUM_LICENSE_QUANTITY
1897    ,  EAM_ACTIVITY_SOURCE_CODE
1898    ,  IB_ITEM_INSTANCE_CLASS
1899    ,  CONFIG_MODEL_TYPE
1900 --Added as part of 11.5.10
1901    ,  TRACKING_QUANTITY_IND
1902    ,  ONT_PRICING_QTY_SOURCE
1903    ,  SECONDARY_DEFAULT_IND
1904    ,  CONFIG_ORGS
1905    ,  CONFIG_MATCH
1906         ,VMI_MINIMUM_UNITS
1907         ,VMI_MINIMUM_DAYS
1908         ,VMI_MAXIMUM_UNITS
1909         ,VMI_MAXIMUM_DAYS
1910         ,VMI_FIXED_ORDER_QUANTITY
1911         ,SO_AUTHORIZATION_FLAG
1912         ,CONSIGNED_FLAG
1913         ,ASN_AUTOEXPIRE_FLAG
1914         ,VMI_FORECAST_TYPE
1915         ,FORECAST_HORIZON
1916         ,EXCLUDE_FROM_BUDGET_FLAG
1917         ,DAYS_TGT_INV_SUPPLY
1918         ,DAYS_TGT_INV_WINDOW
1919         ,DAYS_MAX_INV_SUPPLY
1920         ,DAYS_MAX_INV_WINDOW
1921         ,DRP_PLANNED_FLAG
1922         ,CRITICAL_COMPONENT_FLAG
1923         ,CONTINOUS_TRANSFER
1924         ,CONVERGENCE
1925         ,DIVERGENCE ,
1926         /* Start Bug 3713912 */
1927         LOT_DIVISIBLE_FLAG                   ,
1928         GRADE_CONTROL_FLAG                   ,
1929         DEFAULT_GRADE                ,
1930         CHILD_LOT_FLAG               ,
1931         PARENT_CHILD_GENERATION_FLAG    ,
1932         CHILD_LOT_PREFIX                     ,
1933         CHILD_LOT_STARTING_NUMBER            ,
1934         CHILD_LOT_VALIDATION_FLAG            ,
1935         COPY_LOT_ATTRIBUTE_FLAG      ,
1936         RECIPE_ENABLED_FLAG          ,
1937         PROCESS_QUALITY_ENABLED_FLAG    ,
1938         PROCESS_EXECUTION_ENABLED_FLAG  ,
1939         PROCESS_COSTING_ENABLED_FLAG    ,
1940         PROCESS_SUPPLY_SUBINVENTORY     ,
1941         PROCESS_SUPPLY_LOCATOR_ID            ,
1942         PROCESS_YIELD_SUBINVENTORY           ,
1943         PROCESS_YIELD_LOCATOR_ID             ,
1944         HAZARDOUS_MATERIAL_FLAG      ,
1945         CAS_NUMBER                           ,
1946         RETEST_INTERVAL              ,
1947         EXPIRATION_ACTION_INTERVAL           ,
1948         EXPIRATION_ACTION_CODE       ,
1949         MATURITY_DAYS                ,
1950         HOLD_DAYS,
1951         /* End Bug 3713912 */
1952 	--R12 Enhancement
1953 	CHARGE_PERIODICITY_CODE,
1954         REPAIR_LEADTIME,
1955         REPAIR_YIELD,
1956         PREPOSITION_POINT,
1957         REPAIR_PROGRAM,
1958         SUBCONTRACTING_COMPONENT,
1959         OUTSOURCED_ASSEMBLY,
1960 	/* Bug 6397416*/
1961         GDSN_OUTBOUND_ENABLED_FLAG,
1962         TRADE_ITEM_DESCRIPTOR,
1963         STYLE_ITEM_FLAG,
1964         STYLE_ITEM_ID)
1965    SELECT
1966       MTL_SYSTEM_ITEMS_INTERFACE_S.NEXTVAL,
1967       inv_item_id,
1968       org_id,
1969       xset_id + 1000000000000,
1970       'AUTO_CHILD',
1971                 MSI.SUMMARY_FLAG,
1972                 MSI.ENABLED_FLAG,
1973                 MSI.START_DATE_ACTIVE,
1974                 MSI.END_DATE_ACTIVE,
1975                 MSI.DESCRIPTION,
1976                 MSI.LONG_DESCRIPTION,
1977                 MSI.BUYER_ID,
1978                 MSI.ACCOUNTING_RULE_ID,
1979                 MSI.INVOICING_RULE_ID,
1980                 MSI.SEGMENT1,
1981                 MSI.SEGMENT2,
1982                 MSI.SEGMENT3,
1983                 MSI.SEGMENT4,
1984                 MSI.SEGMENT5,
1985                 MSI.SEGMENT6,
1986                 MSI.SEGMENT7,
1987                 MSI.SEGMENT8,
1988                 MSI.SEGMENT9,
1989                 MSI.SEGMENT10,
1990                 MSI.SEGMENT11,
1991                 MSI.SEGMENT12,
1992                 MSI.SEGMENT13,
1993                 MSI.SEGMENT14,
1994                 MSI.SEGMENT15,
1995                 MSI.SEGMENT16,
1996                 MSI.SEGMENT17,
1997                 MSI.SEGMENT18,
1998                 MSI.SEGMENT19,
1999                 MSI.SEGMENT20,
2000         MSI.ATTRIBUTE_CATEGORY,
2001         MSI.ATTRIBUTE1,
2002         MSI.ATTRIBUTE2,
2003         MSI.ATTRIBUTE3,
2004         MSI.ATTRIBUTE4,
2005         MSI.ATTRIBUTE5,
2006         MSI.ATTRIBUTE6,
2007         MSI.ATTRIBUTE7,
2008         MSI.ATTRIBUTE8,
2009         MSI.ATTRIBUTE9,
2010         MSI.ATTRIBUTE10,
2011         MSI.ATTRIBUTE11,
2012         MSI.ATTRIBUTE12,
2013         MSI.ATTRIBUTE13,
2014         MSI.ATTRIBUTE14,
2015         MSI.ATTRIBUTE15,
2016         /* Start Bug 3713912 */
2017         MSI.ATTRIBUTE16 ,
2018         MSI.ATTRIBUTE17 ,
2019         MSI.ATTRIBUTE18 ,
2020         MSI.ATTRIBUTE19 ,
2021         MSI.ATTRIBUTE20 ,
2022         MSI.ATTRIBUTE21 ,
2023         MSI.ATTRIBUTE22 ,
2024         MSI.ATTRIBUTE23 ,
2025         MSI.ATTRIBUTE24 ,
2026         MSI.ATTRIBUTE25 ,
2027         MSI.ATTRIBUTE26 ,
2028         MSI.ATTRIBUTE27 ,
2029         MSI.ATTRIBUTE28 ,
2030         MSI.ATTRIBUTE29 ,
2031         MSI.ATTRIBUTE30 ,
2032         /* End Bug 3713912 */
2033                 MSI.GLOBAL_ATTRIBUTE_CATEGORY,
2034                 MSI.GLOBAL_ATTRIBUTE1,
2035                 MSI.GLOBAL_ATTRIBUTE2,
2036                 MSI.GLOBAL_ATTRIBUTE3,
2037                 MSI.GLOBAL_ATTRIBUTE4,
2038                 MSI.GLOBAL_ATTRIBUTE5,
2039                 MSI.GLOBAL_ATTRIBUTE6,
2040                 MSI.GLOBAL_ATTRIBUTE7,
2041                 MSI.GLOBAL_ATTRIBUTE8,
2042                 MSI.GLOBAL_ATTRIBUTE9,
2043                 MSI.GLOBAL_ATTRIBUTE10,
2044                 MSI.GLOBAL_ATTRIBUTE11,
2045                 MSI.GLOBAL_ATTRIBUTE12,
2046                 MSI.GLOBAL_ATTRIBUTE13,
2047                 MSI.GLOBAL_ATTRIBUTE14,
2048                 MSI.GLOBAL_ATTRIBUTE15,
2049                 MSI.GLOBAL_ATTRIBUTE16,
2050                 MSI.GLOBAL_ATTRIBUTE17,
2051                 MSI.GLOBAL_ATTRIBUTE18,
2052                 MSI.GLOBAL_ATTRIBUTE19,
2053                 MSI.GLOBAL_ATTRIBUTE20,
2054                 MSI.PURCHASING_ITEM_FLAG,
2055                 MSI.SHIPPABLE_ITEM_FLAG,
2056                 MSI.CUSTOMER_ORDER_FLAG,
2057                 MSI.INTERNAL_ORDER_FLAG,
2058                 MSI.INVENTORY_ITEM_FLAG,
2059                 MSI.ENG_ITEM_FLAG,
2060                 MSI.INVENTORY_ASSET_FLAG,
2061                 MSI.PURCHASING_ENABLED_FLAG,
2062                 MSI.CUSTOMER_ORDER_ENABLED_FLAG,
2063                 MSI.INTERNAL_ORDER_ENABLED_FLAG,
2064                 MSI.SO_TRANSACTIONS_FLAG,
2065                 MSI.MTL_TRANSACTIONS_ENABLED_FLAG,
2066                 MSI.STOCK_ENABLED_FLAG,
2067                 MSI.BOM_ENABLED_FLAG,
2068                 MSI.BUILD_IN_WIP_FLAG,
2069                 MSI.REVISION_QTY_CONTROL_CODE,
2070                 MSI.ITEM_CATALOG_GROUP_ID,
2071                 MSI.CATALOG_STATUS_FLAG,
2072                 MSI.RETURNABLE_FLAG,
2073                 MSI.DEFAULT_SHIPPING_ORG,
2074                 MSI.COLLATERAL_FLAG,
2075                 MSI.TAXABLE_FLAG,
2076                 MSI.PURCHASING_TAX_CODE,
2077                 MSI.QTY_RCV_EXCEPTION_CODE,
2078                 MSI.ALLOW_ITEM_DESC_UPDATE_FLAG,
2079                 MSI.INSPECTION_REQUIRED_FLAG,
2080                 MSI.RECEIPT_REQUIRED_FLAG,
2081                 MSI.MARKET_PRICE,
2082                 MSI.HAZARD_CLASS_ID,
2083                 MSI.RFQ_REQUIRED_FLAG,
2084                 MSI.QTY_RCV_TOLERANCE,
2085                 MSI.LIST_PRICE_PER_UNIT,
2086                 MSI.UN_NUMBER_ID,
2087                 MSI.PRICE_TOLERANCE_PERCENT,
2088                 MSI.ASSET_CATEGORY_ID,
2089                 MSI.ROUNDING_FACTOR,
2090                 MSI.UNIT_OF_ISSUE,
2091                 MSI.ENFORCE_SHIP_TO_LOCATION_CODE,
2092                 MSI.ALLOW_SUBSTITUTE_RECEIPTS_FLAG,
2093                 MSI.ALLOW_UNORDERED_RECEIPTS_FLAG,
2094                 MSI.ALLOW_EXPRESS_DELIVERY_FLAG,
2095                 MSI.DAYS_EARLY_RECEIPT_ALLOWED,
2096                 MSI.DAYS_LATE_RECEIPT_ALLOWED,
2097                 MSI.RECEIPT_DAYS_EXCEPTION_CODE,
2098                 MSI.RECEIVING_ROUTING_ID,
2099                 MSI.INVOICE_CLOSE_TOLERANCE,
2100                 MSI.RECEIVE_CLOSE_TOLERANCE,
2101                 MSI.AUTO_LOT_ALPHA_PREFIX,
2102                 MSI.START_AUTO_LOT_NUMBER,
2103                 MSI.LOT_CONTROL_CODE,
2104                 MSI.SHELF_LIFE_CODE,
2105                 MSI.SHELF_LIFE_DAYS,
2106                 MSI.SERIAL_NUMBER_CONTROL_CODE,
2107                 MSI.START_AUTO_SERIAL_NUMBER,
2108                 MSI.AUTO_SERIAL_ALPHA_PREFIX,
2109                 MSI.SOURCE_TYPE,
2110                 MSI.SOURCE_ORGANIZATION_ID,
2111                 MSI.SOURCE_SUBINVENTORY,
2112                 MSI.EXPENSE_ACCOUNT,
2113                 MSI.ENCUMBRANCE_ACCOUNT,
2114                 MSI.RESTRICT_SUBINVENTORIES_CODE,
2115                 MSI.UNIT_WEIGHT,
2116                 MSI.WEIGHT_UOM_CODE,
2117                 MSI.VOLUME_UOM_CODE,
2118                 MSI.UNIT_VOLUME,
2119                 MSI.RESTRICT_LOCATORS_CODE,
2120                 MSI.LOCATION_CONTROL_CODE,
2121                 MSI.SHRINKAGE_RATE,
2122                 MSI.ACCEPTABLE_EARLY_DAYS,
2123                 MSI.PLANNING_TIME_FENCE_CODE,
2124                 MSI.DEMAND_TIME_FENCE_CODE,
2125                 MSI.RELEASE_TIME_FENCE_CODE,
2126                 MSI.LEAD_TIME_LOT_SIZE,
2127                 MSI.STD_LOT_SIZE,
2128                 MSI.CUM_MANUFACTURING_LEAD_TIME,
2129                 MSI.OVERRUN_PERCENTAGE,
2130                 MSI.MRP_CALCULATE_ATP_FLAG,
2131                 MSI.ACCEPTABLE_RATE_INCREASE,
2132                 MSI.ACCEPTABLE_RATE_DECREASE,
2133                 MSI.CUMULATIVE_TOTAL_LEAD_TIME,
2134                 MSI.PLANNING_TIME_FENCE_DAYS,
2135                 MSI.DEMAND_TIME_FENCE_DAYS,
2136                 MSI.RELEASE_TIME_FENCE_DAYS,
2137                 MSI.END_ASSEMBLY_PEGGING_FLAG,
2138                 MSI.REPETITIVE_PLANNING_FLAG,
2139                 MSI.PLANNING_EXCEPTION_SET,
2140                 MSI.BOM_ITEM_TYPE,
2141                 MSI.PICK_COMPONENTS_FLAG,
2142                 MSI.REPLENISH_TO_ORDER_FLAG,
2143                 MSI.BASE_ITEM_ID,
2144                 MSI.ATP_COMPONENTS_FLAG,
2145                 MSI.ATP_FLAG,
2146                 MSI.FIXED_LEAD_TIME,
2147                 MSI.VARIABLE_LEAD_TIME,
2148                 MSI.WIP_SUPPLY_LOCATOR_ID,
2149                 MSI.WIP_SUPPLY_TYPE,
2150                 MSI.WIP_SUPPLY_SUBINVENTORY,
2151                 MSI.PRIMARY_UOM_CODE,
2152                 MSI.PRIMARY_UNIT_OF_MEASURE,
2153                 MSI.ALLOWED_UNITS_LOOKUP_CODE,
2154                 MSI.COST_OF_SALES_ACCOUNT,
2155                 MSI.SALES_ACCOUNT,
2156                 MSI.DEFAULT_INCLUDE_IN_ROLLUP_FLAG,
2157                 MSI.INVENTORY_ITEM_STATUS_CODE,
2158                 MSI.INVENTORY_PLANNING_CODE,
2159                 MSI.PLANNER_CODE,
2160                 MSI.PLANNING_MAKE_BUY_CODE,
2161                 MSI.FIXED_LOT_MULTIPLIER,
2162                 MSI.ROUNDING_CONTROL_TYPE,
2163                 MSI.CARRYING_COST,
2164                 MSI.POSTPROCESSING_LEAD_TIME,
2165                 MSI.PREPROCESSING_LEAD_TIME,
2166                 MSI.FULL_LEAD_TIME,
2167                 MSI.ORDER_COST,
2168                 MSI.MRP_SAFETY_STOCK_PERCENT,
2169                 MSI.MRP_SAFETY_STOCK_CODE,
2170                 MSI.MIN_MINMAX_QUANTITY,
2171                 MSI.MAX_MINMAX_QUANTITY,
2172                 MSI.MINIMUM_ORDER_QUANTITY,
2173                 MSI.FIXED_ORDER_QUANTITY,
2174                 MSI.FIXED_DAYS_SUPPLY,
2175                 MSI.MAXIMUM_ORDER_QUANTITY,
2176                 MSI.ATP_RULE_ID,
2177                 MSI.PICKING_RULE_ID,
2178                 MSI.RESERVABLE_TYPE,
2179                 MSI.POSITIVE_MEASUREMENT_ERROR,
2180                 MSI.NEGATIVE_MEASUREMENT_ERROR,
2181                 MSI.ENGINEERING_ECN_CODE,
2182                 MSI.ENGINEERING_ITEM_ID,
2183                 MSI.ENGINEERING_DATE,
2184                 MSI.SERVICE_STARTING_DELAY,
2185                 MSI.SERVICEABLE_COMPONENT_FLAG,
2186                 MSI.SERVICEABLE_PRODUCT_FLAG,
2187                 MSI.BASE_WARRANTY_SERVICE_ID,
2188                 MSI.PAYMENT_TERMS_ID,
2189                 MSI.PREVENTIVE_MAINTENANCE_FLAG,
2190                 MSI.PRIMARY_SPECIALIST_ID,
2191                 MSI.SECONDARY_SPECIALIST_ID,
2192                 MSI.SERVICEABLE_ITEM_CLASS_ID,
2193                 MSI.TIME_BILLABLE_FLAG,
2194                 MSI.MATERIAL_BILLABLE_FLAG,
2195                 MSI.EXPENSE_BILLABLE_FLAG,
2196                 MSI.PRORATE_SERVICE_FLAG,
2197                 MSI.COVERAGE_SCHEDULE_ID,
2198                 MSI.SERVICE_DURATION_PERIOD_CODE,
2199                 MSI.SERVICE_DURATION,
2200                 MSI.WARRANTY_VENDOR_ID,
2201                 MSI.MAX_WARRANTY_AMOUNT,
2202                 MSI.RESPONSE_TIME_PERIOD_CODE,
2203                 MSI.RESPONSE_TIME_VALUE,
2204                 MSI.NEW_REVISION_CODE,
2205                 MSI.INVOICEABLE_ITEM_FLAG,
2206                 MSI.TAX_CODE,
2207                 MSI.INVOICE_ENABLED_FLAG,
2208                 MSI.MUST_USE_APPROVED_VENDOR_FLAG,
2209                 MSI.REQUEST_ID,
2210                 MSI.PROGRAM_APPLICATION_ID,
2211                 MSI.PROGRAM_ID,
2212                 MSI.PROGRAM_UPDATE_DATE,
2213                 MSI.OUTSIDE_OPERATION_FLAG,
2214                 MSI.OUTSIDE_OPERATION_UOM_TYPE,
2215                 MSI.SAFETY_STOCK_BUCKET_DAYS,
2216                 MSI.AUTO_REDUCE_MPS,
2217                 MSI.COSTING_ENABLED_FLAG,
2218                 MSI.AUTO_CREATED_CONFIG_FLAG,
2219                 MSI.CYCLE_COUNT_ENABLED_FLAG,
2220                 MSI.ITEM_TYPE,
2221                 MSI.MODEL_CONFIG_CLAUSE_NAME,
2222                 MSI.SHIP_MODEL_COMPLETE_FLAG,
2223                 MSI.MRP_PLANNING_CODE,
2224                 MSI.RETURN_INSPECTION_REQUIREMENT,
2225                 MSI.ATO_FORECAST_CONTROL,
2226                 MSI.CONTAINER_ITEM_FLAG,
2227                 MSI.VEHICLE_ITEM_FLAG,
2228                 MSI.MAXIMUM_LOAD_WEIGHT,
2229                 MSI.MINIMUM_FILL_PERCENT,
2230                 MSI.CONTAINER_TYPE_CODE,
2231                 MSI.INTERNAL_VOLUME,
2232       MSI.CHECK_SHORTAGES_FLAG
2233    ,  MSI.EFFECTIVITY_CONTROL
2234    ,   MSI.OVERCOMPLETION_TOLERANCE_TYPE
2235    ,   MSI.OVERCOMPLETION_TOLERANCE_VALUE
2236    ,   MSI.OVER_SHIPMENT_TOLERANCE
2237    ,   MSI.UNDER_SHIPMENT_TOLERANCE
2238    ,   MSI.OVER_RETURN_TOLERANCE
2239    ,   MSI.UNDER_RETURN_TOLERANCE
2240    ,   MSI.EQUIPMENT_TYPE
2241    ,   MSI.RECOVERED_PART_DISP_CODE
2242    ,   MSI.DEFECT_TRACKING_ON_FLAG
2243    ,   MSI.EVENT_FLAG
2244    ,   MSI.ELECTRONIC_FLAG
2245    ,   MSI.DOWNLOADABLE_FLAG
2246    ,   MSI.VOL_DISCOUNT_EXEMPT_FLAG
2247    ,   MSI.COUPON_EXEMPT_FLAG
2248    ,   MSI.COMMS_NL_TRACKABLE_FLAG
2249    ,   MSI.ASSET_CREATION_CODE
2250    ,   MSI.COMMS_ACTIVATION_REQD_FLAG
2251    ,   MSI.ORDERABLE_ON_WEB_FLAG
2252    ,   MSI.BACK_ORDERABLE_FLAG
2253    ,  MSI.WEB_STATUS
2254    ,  MSI.INDIVISIBLE_FLAG
2255    ,   MSI.DIMENSION_UOM_CODE
2256    ,   MSI.UNIT_LENGTH
2257    ,   MSI.UNIT_WIDTH
2258    ,   MSI.UNIT_HEIGHT
2259    ,   MSI.BULK_PICKED_FLAG
2260    ,   MSI.LOT_STATUS_ENABLED
2261    ,   MSI.DEFAULT_LOT_STATUS_ID
2262    ,   MSI.SERIAL_STATUS_ENABLED
2263    ,   MSI.DEFAULT_SERIAL_STATUS_ID
2264    ,   MSI.LOT_SPLIT_ENABLED
2265    ,   MSI.LOT_MERGE_ENABLED
2266    ,   MSI.INVENTORY_CARRY_PENALTY
2267    ,   MSI.OPERATION_SLACK_PENALTY
2268    ,   MSI.FINANCING_ALLOWED_FLAG
2269    ,  MSI.EAM_ITEM_TYPE
2270    ,  MSI.EAM_ACTIVITY_TYPE_CODE
2271    ,  MSI.EAM_ACTIVITY_CAUSE_CODE
2272    ,  MSI.EAM_ACT_NOTIFICATION_FLAG
2273    ,  MSI.EAM_ACT_SHUTDOWN_STATUS
2274    ,  MSI.DUAL_UOM_CONTROL
2275    ,  MSI.SECONDARY_UOM_CODE
2276    ,  MSI.DUAL_UOM_DEVIATION_HIGH
2277    ,  MSI.DUAL_UOM_DEVIATION_LOW
2278    --,  MSI.SERVICE_ITEM_FLAG
2279    --,  MSI.VENDOR_WARRANTY_FLAG
2280    --,  MSI.USAGE_ITEM_FLAG
2281    ,  MSI.CONTRACT_ITEM_TYPE_CODE
2282 --   ,  MSI.SUBSCRIPTION_DEPEND_FLAG
2283    --
2284    ,  MSI.SERV_REQ_ENABLED_CODE
2285    ,  MSI.SERV_BILLING_ENABLED_FLAG
2286 --   ,  MSI.SERV_IMPORTANCE_LEVEL
2287    ,  MSI.PLANNED_INV_POINT_FLAG
2288    ,  MSI.LOT_TRANSLATE_ENABLED
2289    ,  MSI.DEFAULT_SO_SOURCE_TYPE
2290    ,  MSI.CREATE_SUPPLY_FLAG
2291    ,  MSI.SUBSTITUTION_WINDOW_CODE
2292    ,  MSI.SUBSTITUTION_WINDOW_DAYS
2293 --Added as part of 11.5.9
2294    ,  MSI.LOT_SUBSTITUTION_ENABLED
2295    ,  MSI.MINIMUM_LICENSE_QUANTITY
2296    ,  MSI.EAM_ACTIVITY_SOURCE_CODE
2297    ,  MSI.IB_ITEM_INSTANCE_CLASS
2298    ,  MSI.CONFIG_MODEL_TYPE
2299 --Added as part of 11.5.10
2300    ,  MSI.TRACKING_QUANTITY_IND
2301    ,  MSI.ONT_PRICING_QTY_SOURCE
2302    ,  MSI.SECONDARY_DEFAULT_IND
2303    ,  MSI.CONFIG_ORGS
2304    ,  MSI.CONFIG_MATCH
2305         ,MSI.VMI_MINIMUM_UNITS
2306         ,MSI.VMI_MINIMUM_DAYS
2307         ,MSI.VMI_MAXIMUM_UNITS
2308         ,MSI.VMI_MAXIMUM_DAYS
2309         ,MSI.VMI_FIXED_ORDER_QUANTITY
2310         ,MSI.SO_AUTHORIZATION_FLAG
2311         ,MSI.CONSIGNED_FLAG
2312         ,MSI.ASN_AUTOEXPIRE_FLAG
2313         ,MSI.VMI_FORECAST_TYPE
2314         ,MSI.FORECAST_HORIZON
2315         ,MSI.EXCLUDE_FROM_BUDGET_FLAG
2316         ,MSI.DAYS_TGT_INV_SUPPLY
2317         ,MSI.DAYS_TGT_INV_WINDOW
2318         ,MSI.DAYS_MAX_INV_SUPPLY
2319         ,MSI.DAYS_MAX_INV_WINDOW
2320         ,MSI.DRP_PLANNED_FLAG
2321         ,MSI.CRITICAL_COMPONENT_FLAG
2322         ,MSI.CONTINOUS_TRANSFER
2323         ,MSI.CONVERGENCE
2324         ,MSI.DIVERGENCE   ,
2325         /* Start Bug 3713912 */
2326         MSI.LOT_DIVISIBLE_FLAG               ,
2327         MSI.GRADE_CONTROL_FLAG               ,
2328         MSI.DEFAULT_GRADE                    ,
2329         MSI.CHILD_LOT_FLAG                   ,
2330         MSI.PARENT_CHILD_GENERATION_FLAG    ,
2331         MSI.CHILD_LOT_PREFIX                 ,
2332         MSI.CHILD_LOT_STARTING_NUMBER        ,
2333         MSI.CHILD_LOT_VALIDATION_FLAG        ,
2334         MSI.COPY_LOT_ATTRIBUTE_FLAG          ,
2335         MSI.RECIPE_ENABLED_FLAG      ,
2336         MSI.PROCESS_QUALITY_ENABLED_FLAG    ,
2337         MSI.PROCESS_EXECUTION_ENABLED_FLAG  ,
2338         MSI.PROCESS_COSTING_ENABLED_FLAG    ,
2339         MSI.PROCESS_SUPPLY_SUBINVENTORY     ,
2340         MSI.PROCESS_SUPPLY_LOCATOR_ID        ,
2341         MSI.PROCESS_YIELD_SUBINVENTORY       ,
2342         MSI.PROCESS_YIELD_LOCATOR_ID         ,
2343         MSI.HAZARDOUS_MATERIAL_FLAG          ,
2344         MSI.CAS_NUMBER                       ,
2345         MSI.RETEST_INTERVAL                  ,
2346         MSI.EXPIRATION_ACTION_INTERVAL       ,
2347         MSI.EXPIRATION_ACTION_CODE           ,
2348         MSI.MATURITY_DAYS                    ,
2349         MSI.HOLD_DAYS                        ,
2350         /* End Bug 3713912 */
2351 	--R12 Enhancement
2352 	MSI.CHARGE_PERIODICITY_CODE,
2353 	MSI.REPAIR_LEADTIME,
2354 	MSI.REPAIR_YIELD,
2355 	MSI.PREPOSITION_POINT,
2356 	MSI.REPAIR_PROGRAM,
2357 	MSI.SUBCONTRACTING_COMPONENT,
2358 	MSI.OUTSOURCED_ASSEMBLY,
2359         MSI.GDSN_OUTBOUND_ENABLED_FLAG,
2360         MSI.TRADE_ITEM_DESCRIPTOR,
2361         MSI.STYLE_ITEM_FLAG,
2362         MSI.STYLE_ITEM_ID
2363    FROM
2364       MTL_SYSTEM_ITEMS_VL  MSI
2365    WHERE
2366           MSI.inventory_item_id = inv_item_id
2367       AND MSI.organization_id   = org_id;
2368 
2369         --commit;
2370 
2371         -- copy master item data to child record created in msii
2372         ret_code := INVUPD2B.copy_master_to_child(master_row_id, inv_item_id, org_id, xset_id);
2373 
2374         --commit;
2375 
2376    RETURN (ret_code);
2377 
2378 EXCEPTION
2379 
2380    when OTHERS then
2381    --bug #4251913 : Included SQLCODE and SQLERRM to trap exception messages.
2382    IF l_inv_debug_level IN(101, 102) THEN
2383       INVPUTLI.info(
2384 		   Substr(
2385 		     'when OTHERS exception raised in create_child_update_mast_attr ' ||
2386 		      SQLCODE ||
2387 		      ' - '   ||
2388 		      SQLERRM, 1, 240));
2389    END IF;
2390    return (1);
2391 
2392 END create_child_update_mast_attr; -- }
2393 
2394 
2395 FUNCTION copy_master_to_child
2396 (
2397    master_row_id       ROWID
2398 ,  inv_item_id         NUMBER
2399 ,  org_id              NUMBER
2400 ,  xset_id        IN   NUMBER
2401 )
2402 RETURN INTEGER
2403 IS
2404 
2405    -- temprec to hold master record data from msii
2406    --
2407    msii_master_temp     mtl_system_items_interface%ROWTYPE;
2408 
2409    l_process_flag_2     NUMBER  :=  2;
2410 
2411    l_inv_debug_level	NUMBER := INVPUTLI.get_debug_level;     --Bug: 4667452
2412 
2413 BEGIN
2414 
2415    IF l_inv_debug_level IN(101, 102) THEN
2416       INVPUTLI.info('INVUPD2B: Inside copy_master_to_child'|| '***orgid: ' || TO_CHAR(org_id));
2417    END IF;
2418 
2419    -- Get master record info into msii_master_temp
2420    --
2421    select *
2422      into msii_master_temp
2423    from
2424       MTL_SYSTEM_ITEMS_INTERFACE MSII
2425    where
2426       MSII.ROWID = master_row_id;
2427 
2428    -- Update child record with master record data for attributes
2429    -- under master control.
2430    --
2431    UPDATE MTL_SYSTEM_ITEMS_INTERFACE MSII
2432    SET    MSII.ALLOWED_UNITS_LOOKUP_CODE     =  decode( A_ALLOWED_UNITS_LOOKUP_CODE,1,msii_master_temp.ALLOWED_UNITS_LOOKUP_CODE,MSII.ALLOWED_UNITS_LOOKUP_CODE ),
2433           MSII.INVENTORY_ITEM_STATUS_CODE    =  decode( A_INVENTORY_ITEM_STATUS_CODE,1, msii_master_temp.INVENTORY_ITEM_STATUS_CODE,MSII.INVENTORY_ITEM_STATUS_CODE ),
2434           MSII.ITEM_TYPE                     =  decode( A_ITEM_TYPE,1,msii_master_temp.ITEM_TYPE,MSII.ITEM_TYPE ),
2435 	  MSII.PRIMARY_UNIT_OF_MEASURE       =  decode( A_PRIMARY_UNIT_OF_MEASURE,1,msii_master_temp.PRIMARY_UNIT_OF_MEASURE,MSII.PRIMARY_UNIT_OF_MEASURE ),
2436           MSII.BASE_ITEM_ID                  =  decode( A_BASE_ITEM_ID,1,msii_master_temp.BASE_ITEM_ID,MSII.BASE_ITEM_ID ),
2437           MSII.BOM_ENABLED_FLAG              =  decode( A_BOM_ENABLED_FLAG,1,msii_master_temp.BOM_ENABLED_FLAG,MSII.BOM_ENABLED_FLAG ),
2438           MSII.BOM_ITEM_TYPE                 =  decode( A_BOM_ITEM_TYPE,1,msii_master_temp.BOM_ITEM_TYPE,MSII.BOM_ITEM_TYPE ),
2439           MSII.ENGINEERING_ECN_CODE          =  decode( A_ENGINEERING_ECN_CODE,1,msii_master_temp.ENGINEERING_ECN_CODE,MSII.ENGINEERING_ECN_CODE ),
2440           MSII.ENGINEERING_ITEM_ID           =  decode( A_ENGINEERING_ITEM_ID,1,msii_master_temp.ENGINEERING_ITEM_ID,MSII.ENGINEERING_ITEM_ID ),
2441           MSII.ENG_ITEM_FLAG                 =  decode( A_ENG_ITEM_FLAG,1,msii_master_temp.ENG_ITEM_FLAG,MSII.ENG_ITEM_FLAG ),
2442           MSII.COSTING_ENABLED_FLAG          =  decode( A_COSTING_ENABLED_FLAG,1,msii_master_temp.COSTING_ENABLED_FLAG,MSII.COSTING_ENABLED_FLAG ),
2443           MSII.COST_OF_SALES_ACCOUNT         =  decode( A_COST_OF_SALES_ACCOUNT,1,msii_master_temp.COST_OF_SALES_ACCOUNT,MSII.COST_OF_SALES_ACCOUNT ),
2444           MSII.DEFAULT_INCLUDE_IN_ROLLUP_FLAG=  decode( A_DEF_INCL_IN_ROLLUP_FLAG,1,msii_master_temp.DEFAULT_INCLUDE_IN_ROLLUP_FLAG,MSII.DEFAULT_INCLUDE_IN_ROLLUP_FLAG ),
2445           MSII.INVENTORY_ASSET_FLAG          =  decode( A_INVENTORY_ASSET_FLAG,1,msii_master_temp.INVENTORY_ASSET_FLAG,MSII.INVENTORY_ASSET_FLAG ),
2446           MSII.STD_LOT_SIZE                  =  decode( A_STD_LOT_SIZE,1,msii_master_temp.STD_LOT_SIZE,MSII.STD_LOT_SIZE ),
2447           MSII.ALLOW_ITEM_DESC_UPDATE_FLAG   =  decode( A_ALLOW_ITEM_DESC_UPDATE_FLAG,1,msii_master_temp.ALLOW_ITEM_DESC_UPDATE_FLAG,MSII.ALLOW_ITEM_DESC_UPDATE_FLAG ),
2448           MSII.ASSET_CATEGORY_ID             =  decode( A_ASSET_CATEGORY_ID,1, msii_master_temp.ASSET_CATEGORY_ID,MSII.ASSET_CATEGORY_ID ),
2449           MSII.BUYER_ID                      =  decode( A_BUYER_ID,1,msii_master_temp.BUYER_ID,MSII.BUYER_ID ),
2450           MSII.ENCUMBRANCE_ACCOUNT           =  decode( A_ENCUMBRANCE_ACCOUNT,1,msii_master_temp.ENCUMBRANCE_ACCOUNT,MSII.ENCUMBRANCE_ACCOUNT ),
2451           MSII.EXPENSE_ACCOUNT               =  decode( A_EXPENSE_ACCOUNT,1,msii_master_temp.EXPENSE_ACCOUNT,MSII.EXPENSE_ACCOUNT ),
2452           MSII.HAZARD_CLASS_ID               =  decode( A_HAZARD_CLASS_ID,1,msii_master_temp.HAZARD_CLASS_ID,MSII.HAZARD_CLASS_ID ),
2453           MSII.LIST_PRICE_PER_UNIT           =  decode( A_LIST_PRICE_PER_UNIT,1,msii_master_temp.LIST_PRICE_PER_UNIT,MSII.LIST_PRICE_PER_UNIT ),
2454           MSII.MARKET_PRICE                  =  decode( A_MARKET_PRICE,1,msii_master_temp.MARKET_PRICE,MSII.MARKET_PRICE ),
2455           MSII.MUST_USE_APPROVED_VENDOR_FLAG =  decode( A_MU_APPRVD_VENDOR_FLAG,1,msii_master_temp.MUST_USE_APPROVED_VENDOR_FLAG,MSII.MUST_USE_APPROVED_VENDOR_FLAG ),
2456           MSII.OUTSIDE_OPERATION_FLAG        =  decode( A_OUTSIDE_OPERATION_FLAG,1,msii_master_temp.OUTSIDE_OPERATION_FLAG,MSII.OUTSIDE_OPERATION_FLAG ),
2457           MSII.OUTSIDE_OPERATION_UOM_TYPE    =  decode( A_OUTSIDE_OPERATION_UOM_TYPE,1,msii_master_temp.OUTSIDE_OPERATION_UOM_TYPE,MSII.OUTSIDE_OPERATION_UOM_TYPE ),
2458           MSII.PRICE_TOLERANCE_PERCENT       =  decode( A_PRICE_TOLERANCE_PERCENT,1,msii_master_temp.PRICE_TOLERANCE_PERCENT,MSII.PRICE_TOLERANCE_PERCENT ),
2459           MSII.PURCHASING_ENABLED_FLAG       =  decode( A_PURCHASING_ENABLED_FLAG,1,msii_master_temp.PURCHASING_ENABLED_FLAG,MSII.PURCHASING_ENABLED_FLAG ),
2460           MSII.PURCHASING_ITEM_FLAG          =  decode( A_PURCHASING_ITEM_FLAG,1,msii_master_temp.PURCHASING_ITEM_FLAG,MSII.PURCHASING_ITEM_FLAG ),
2461           MSII.RFQ_REQUIRED_FLAG             =  decode( A_RFQ_REQUIRED_FLAG,1,msii_master_temp.RFQ_REQUIRED_FLAG,MSII.RFQ_REQUIRED_FLAG ),
2462           MSII.ROUNDING_FACTOR               =  decode( A_ROUNDING_FACTOR,1,msii_master_temp.ROUNDING_FACTOR,MSII.ROUNDING_FACTOR ),
2463           MSII.TAXABLE_FLAG                  =  decode( A_TAXABLE_FLAG,1,msii_master_temp.TAXABLE_FLAG,MSII.TAXABLE_FLAG ),
2464           MSII.PURCHASING_TAX_CODE           =  decode( A_PURCHASING_TAX_CODE,1,msii_master_temp.PURCHASING_TAX_CODE,MSII.PURCHASING_TAX_CODE ),
2465           MSII.UNIT_OF_ISSUE                 =  decode( A_UNIT_OF_ISSUE,1,msii_master_temp.UNIT_OF_ISSUE,MSII.UNIT_OF_ISSUE ),
2466           MSII.UN_NUMBER_ID                  =  decode( A_UN_NUMBER_ID,1,msii_master_temp.UN_NUMBER_ID,MSII.UN_NUMBER_ID ),
2467           MSII.ALLOW_EXPRESS_DELIVERY_FLAG   =  decode( A_ALLOW_EXPRESS_DELIVERY_FLAG,1,msii_master_temp.ALLOW_EXPRESS_DELIVERY_FLAG,MSII.ALLOW_EXPRESS_DELIVERY_FLAG ),
2468           MSII.ALLOW_SUBSTITUTE_RECEIPTS_FLAG=  decode( A_ALLOW_SUBS_RECEIPTS_FLAG,1,msii_master_temp.ALLOW_SUBSTITUTE_RECEIPTS_FLAG,MSII.ALLOW_SUBSTITUTE_RECEIPTS_FLAG ),
2469           MSII.ALLOW_UNORDERED_RECEIPTS_FLAG =  decode( A_ALLOW_UNORD_RECEIPTS_FLAG,1,msii_master_temp.ALLOW_UNORDERED_RECEIPTS_FLAG,MSII.ALLOW_UNORDERED_RECEIPTS_FLAG ),
2470           MSII.DAYS_EARLY_RECEIPT_ALLOWED    =  decode( A_DAYS_EARLY_RECEIPT_ALLOWED,1,msii_master_temp.DAYS_EARLY_RECEIPT_ALLOWED,MSII.DAYS_EARLY_RECEIPT_ALLOWED ),
2471           MSII.DAYS_LATE_RECEIPT_ALLOWED     =  decode( A_DAYS_LATE_RECEIPT_ALLOWED,1,msii_master_temp.DAYS_LATE_RECEIPT_ALLOWED,MSII.DAYS_LATE_RECEIPT_ALLOWED ),
2472           MSII.ENFORCE_SHIP_TO_LOCATION_CODE =  decode( A_ENFORCE_SHIP_TO_LOC_CODE,1,msii_master_temp.ENFORCE_SHIP_TO_LOCATION_CODE,MSII.ENFORCE_SHIP_TO_LOCATION_CODE ),
2473           MSII.INSPECTION_REQUIRED_FLAG      =  decode( A_INSPECTION_REQUIRED_FLAG,1,msii_master_temp.INSPECTION_REQUIRED_FLAG,MSII.INSPECTION_REQUIRED_FLAG ),
2474           MSII.INVOICE_CLOSE_TOLERANCE       =  decode( A_INVOICE_CLOSE_TOLERANCE,1,msii_master_temp.INVOICE_CLOSE_TOLERANCE,MSII.INVOICE_CLOSE_TOLERANCE ),
2475           MSII.QTY_RCV_EXCEPTION_CODE        =  decode( A_QTY_RCV_EXCEPTION_CODE,1,msii_master_temp.QTY_RCV_EXCEPTION_CODE,MSII.QTY_RCV_EXCEPTION_CODE ),
2476           MSII.QTY_RCV_TOLERANCE             =  decode( A_QTY_RCV_TOLERANCE,1,msii_master_temp.QTY_RCV_TOLERANCE,MSII.QTY_RCV_TOLERANCE ),
2477           MSII.RECEIPT_DAYS_EXCEPTION_CODE   =  decode( A_RECEIPT_DAYS_EXCEPTION_CODE,1,msii_master_temp.RECEIPT_DAYS_EXCEPTION_CODE,MSII.RECEIPT_DAYS_EXCEPTION_CODE ),
2478           MSII.RECEIPT_REQUIRED_FLAG         =  decode( A_RECEIPT_REQUIRED_FLAG,1,msii_master_temp.RECEIPT_REQUIRED_FLAG,MSII.RECEIPT_REQUIRED_FLAG ),
2479           MSII.RECEIVE_CLOSE_TOLERANCE       =  decode( A_RECEIVE_CLOSE_TOLERANCE,1,msii_master_temp.RECEIVE_CLOSE_TOLERANCE,MSII.RECEIVE_CLOSE_TOLERANCE ),
2480           MSII.RECEIVING_ROUTING_ID          =  decode( A_RECEIVING_ROUTING_ID,1,msii_master_temp.RECEIVING_ROUTING_ID,MSII.RECEIVING_ROUTING_ID ),
2481           MSII.AUTO_LOT_ALPHA_PREFIX         =  decode( A_AUTO_LOT_ALPHA_PREFIX,1,msii_master_temp.AUTO_LOT_ALPHA_PREFIX,MSII.AUTO_LOT_ALPHA_PREFIX ),
2482           MSII.AUTO_SERIAL_ALPHA_PREFIX      =  decode( A_AUTO_SERIAL_ALPHA_PREFIX,1,msii_master_temp.AUTO_SERIAL_ALPHA_PREFIX,MSII.AUTO_SERIAL_ALPHA_PREFIX ),
2483           MSII.CYCLE_COUNT_ENABLED_FLAG      =  decode( A_CYCLE_COUNT_ENABLED_FLAG,1,msii_master_temp.CYCLE_COUNT_ENABLED_FLAG,MSII.CYCLE_COUNT_ENABLED_FLAG ),
2484           MSII.INVENTORY_ITEM_FLAG           =  decode( A_INVENTORY_ITEM_FLAG,1,msii_master_temp.INVENTORY_ITEM_FLAG,MSII.INVENTORY_ITEM_FLAG ),
2485           MSII.LOCATION_CONTROL_CODE         =  decode( A_LOCATION_CONTROL_CODE,1,msii_master_temp.LOCATION_CONTROL_CODE,MSII.LOCATION_CONTROL_CODE ),
2486           MSII.LOT_CONTROL_CODE              =  decode( A_LOT_CONTROL_CODE,1,msii_master_temp.LOT_CONTROL_CODE,MSII.LOT_CONTROL_CODE ),
2487           MSII.MTL_TRANSACTIONS_ENABLED_FLAG =  decode( A_MTL_TRANSAC_ENABLED_FLAG,1,msii_master_temp.MTL_TRANSACTIONS_ENABLED_FLAG,MSII.MTL_TRANSACTIONS_ENABLED_FLAG ),
2488           MSII.NEGATIVE_MEASUREMENT_ERROR    =  decode( A_NEGATIVE_MEASUREMENT_ERROR,1,msii_master_temp.NEGATIVE_MEASUREMENT_ERROR,MSII.NEGATIVE_MEASUREMENT_ERROR ),
2489           MSII.RESERVABLE_TYPE               =  decode( A_RESERVABLE_TYPE,1,msii_master_temp.RESERVABLE_TYPE,MSII.RESERVABLE_TYPE ),
2490           MSII.RESTRICT_LOCATORS_CODE        =  decode( A_RESTRICT_LOCATORS_CODE,1,msii_master_temp.RESTRICT_LOCATORS_CODE,MSII.RESTRICT_LOCATORS_CODE ),
2491           MSII.RESTRICT_SUBINVENTORIES_CODE  =  decode( A_RESTRICT_SUBINVENTORIES_CODE,1,msii_master_temp.RESTRICT_SUBINVENTORIES_CODE,MSII.RESTRICT_SUBINVENTORIES_CODE ),
2492           MSII.REVISION_QTY_CONTROL_CODE     =  decode( A_REVISION_QTY_CONTROL_CODE,1,msii_master_temp.REVISION_QTY_CONTROL_CODE,MSII.REVISION_QTY_CONTROL_CODE ),
2493           MSII.SERIAL_NUMBER_CONTROL_CODE    =  decode( A_SERIAL_NUMBER_CONTROL_CODE,1,msii_master_temp.SERIAL_NUMBER_CONTROL_CODE,MSII.SERIAL_NUMBER_CONTROL_CODE ),
2494           MSII.SHELF_LIFE_CODE               =  decode( A_SHELF_LIFE_CODE,1,msii_master_temp.SHELF_LIFE_CODE,MSII.SHELF_LIFE_CODE ),
2495           MSII.SHELF_LIFE_DAYS               =  decode( A_SHELF_LIFE_DAYS,1,msii_master_temp.SHELF_LIFE_DAYS,MSII.SHELF_LIFE_DAYS ),
2496           MSII.START_AUTO_LOT_NUMBER         =  decode( A_START_AUTO_LOT_NUMBER,1,msii_master_temp.START_AUTO_LOT_NUMBER,MSII.START_AUTO_LOT_NUMBER ),
2497           MSII.START_AUTO_SERIAL_NUMBER      =  decode( A_START_AUTO_SERIAL_NUMBER,1,msii_master_temp.START_AUTO_SERIAL_NUMBER,MSII.START_AUTO_SERIAL_NUMBER ),
2498           MSII.STOCK_ENABLED_FLAG            =  decode( A_STOCK_ENABLED_FLAG,1,msii_master_temp.STOCK_ENABLED_FLAG,MSII.STOCK_ENABLED_FLAG ),
2499           MSII.UNIT_VOLUME                   =  decode( A_UNIT_VOLUME,1,msii_master_temp.UNIT_VOLUME,MSII.UNIT_VOLUME ),
2500           MSII.UNIT_WEIGHT                   =  decode( A_UNIT_WEIGHT,1,msii_master_temp.UNIT_WEIGHT,MSII.UNIT_WEIGHT ),
2501           MSII.VOLUME_UOM_CODE               =  decode( A_VOLUME_UOM_CODE,1,msii_master_temp.VOLUME_UOM_CODE,MSII.VOLUME_UOM_CODE ),
2502           MSII.WEIGHT_UOM_CODE               =  decode( A_WEIGHT_UOM_CODE,1,msii_master_temp.WEIGHT_UOM_CODE,MSII.WEIGHT_UOM_CODE ),
2503           MSII.CARRYING_COST                 =  decode( A_CARRYING_COST,1,msii_master_temp.CARRYING_COST,MSII.CARRYING_COST ),
2504           MSII.FIXED_DAYS_SUPPLY             =  decode( A_FIXED_DAYS_SUPPLY,1,msii_master_temp.FIXED_DAYS_SUPPLY,MSII.FIXED_DAYS_SUPPLY ),
2505           MSII.FIXED_LOT_MULTIPLIER          =  decode( A_FIXED_LOT_MULTIPLIER,1,msii_master_temp.FIXED_LOT_MULTIPLIER,MSII.FIXED_LOT_MULTIPLIER ),
2506           MSII.FIXED_ORDER_QUANTITY          =  decode( A_FIXED_ORDER_QUANTITY,1, msii_master_temp.FIXED_ORDER_QUANTITY,MSII.FIXED_ORDER_QUANTITY ),
2507           MSII.INVENTORY_PLANNING_CODE       =  decode( A_INVENTORY_PLANNING_CODE,1,msii_master_temp.INVENTORY_PLANNING_CODE,MSII.INVENTORY_PLANNING_CODE ),
2508           MSII.MAXIMUM_ORDER_QUANTITY        =  decode( A_MAXIMUM_ORDER_QUANTITY,1,msii_master_temp.MAXIMUM_ORDER_QUANTITY,MSII.MAXIMUM_ORDER_QUANTITY ),
2509           MSII.MAX_MINMAX_QUANTITY           =  decode( A_MAX_MINMAX_QUANTITY,1,msii_master_temp.MAX_MINMAX_QUANTITY,MSII.MAX_MINMAX_QUANTITY ),
2510           MSII.MINIMUM_ORDER_QUANTITY        =  decode( A_MINIMUM_ORDER_QUANTITY,1,msii_master_temp.MINIMUM_ORDER_QUANTITY,MSII.MINIMUM_ORDER_QUANTITY ),
2511           MSII.MIN_MINMAX_QUANTITY           =  decode( A_MIN_MINMAX_QUANTITY,1,msii_master_temp.MIN_MINMAX_QUANTITY,MSII.MIN_MINMAX_QUANTITY ),
2512           MSII.MRP_SAFETY_STOCK_CODE         =  decode( A_MRP_SAFETY_STOCK_CODE,1,msii_master_temp.MRP_SAFETY_STOCK_CODE,MSII.MRP_SAFETY_STOCK_CODE ),
2513           MSII.MRP_SAFETY_STOCK_PERCENT      =  decode( A_MRP_SAFETY_STOCK_PERCENT,1, msii_master_temp.MRP_SAFETY_STOCK_PERCENT,MSII.MRP_SAFETY_STOCK_PERCENT ),
2514           MSII.ORDER_COST                    =  decode( A_ORDER_COST,1,msii_master_temp.ORDER_COST,MSII.ORDER_COST ),
2515           MSII.PLANNER_CODE                  =  decode( A_PLANNER_CODE,1,msii_master_temp.PLANNER_CODE,MSII.PLANNER_CODE ),
2516           MSII.SAFETY_STOCK_BUCKET_DAYS      =  decode( A_SAFETY_STOCK_BUCKET_DAYS,1,msii_master_temp.SAFETY_STOCK_BUCKET_DAYS,MSII.SAFETY_STOCK_BUCKET_DAYS ),
2517           MSII.SOURCE_ORGANIZATION_ID        =  decode( A_SOURCE_ORGANIZATION_ID,1,msii_master_temp.SOURCE_ORGANIZATION_ID,MSII.SOURCE_ORGANIZATION_ID ),
2518           MSII.SOURCE_SUBINVENTORY           =  decode( A_SOURCE_SUBINVENTORY,1,msii_master_temp.SOURCE_SUBINVENTORY,MSII.SOURCE_SUBINVENTORY ),
2519           MSII.SOURCE_TYPE                   =  decode( A_SOURCE_TYPE,1,msii_master_temp.SOURCE_TYPE,MSII.SOURCE_TYPE ),
2520           MSII.ACCEPTABLE_EARLY_DAYS         =  decode( A_ACCEPTABLE_EARLY_DAYS,1,msii_master_temp.ACCEPTABLE_EARLY_DAYS,MSII.ACCEPTABLE_EARLY_DAYS ),
2521           MSII.ACCEPTABLE_RATE_DECREASE      =  decode( A_ACCEPTABLE_RATE_DECREASE,1,msii_master_temp.ACCEPTABLE_RATE_DECREASE,MSII.ACCEPTABLE_RATE_DECREASE ),
2522           MSII.ACCEPTABLE_RATE_INCREASE      =  decode( A_ACCEPTABLE_RATE_INCREASE,1,msii_master_temp.ACCEPTABLE_RATE_INCREASE,MSII.ACCEPTABLE_RATE_INCREASE ),
2523           MSII.AUTO_REDUCE_MPS               =  decode( A_AUTO_REDUCE_MPS,1,msii_master_temp.AUTO_REDUCE_MPS,MSII.AUTO_REDUCE_MPS ),
2524           MSII.DEMAND_TIME_FENCE_CODE        =  decode( A_DEMAND_TIME_FENCE_CODE,1,msii_master_temp.DEMAND_TIME_FENCE_CODE,MSII.DEMAND_TIME_FENCE_CODE ),
2525           MSII.DEMAND_TIME_FENCE_DAYS        =  decode( A_DEMAND_TIME_FENCE_DAYS,1,msii_master_temp.DEMAND_TIME_FENCE_DAYS,MSII.DEMAND_TIME_FENCE_DAYS ),
2526           MSII.END_ASSEMBLY_PEGGING_FLAG     =  decode( A_END_ASSEMBLY_PEGGING_FLAG,1,msii_master_temp.END_ASSEMBLY_PEGGING_FLAG,MSII.END_ASSEMBLY_PEGGING_FLAG ),
2527           MSII.MRP_CALCULATE_ATP_FLAG        =  decode( A_MRP_CALCULATE_ATP_FLAG,1,msii_master_temp.MRP_CALCULATE_ATP_FLAG,MSII.MRP_CALCULATE_ATP_FLAG ),
2528           MSII.MRP_PLANNING_CODE             =  decode( A_MRP_PLANNING_CODE,1,msii_master_temp.MRP_PLANNING_CODE,MSII.MRP_PLANNING_CODE ),
2529           MSII.OVERRUN_PERCENTAGE            =  decode( A_OVERRUN_PERCENTAGE,1,msii_master_temp.OVERRUN_PERCENTAGE,MSII.OVERRUN_PERCENTAGE ),
2530           MSII.PLANNING_EXCEPTION_SET        =  decode( A_PLANNING_EXCEPTION_SET,1,msii_master_temp.PLANNING_EXCEPTION_SET,MSII.PLANNING_EXCEPTION_SET ),
2531           MSII.PLANNING_MAKE_BUY_CODE        =  decode( A_PLANNING_MAKE_BUY_CODE,1,msii_master_temp.PLANNING_MAKE_BUY_CODE,MSII.PLANNING_MAKE_BUY_CODE ),
2532           MSII.PLANNING_TIME_FENCE_CODE      =  decode( A_PLANNING_TIME_FENCE_CODE,1,msii_master_temp.PLANNING_TIME_FENCE_CODE,MSII.PLANNING_TIME_FENCE_CODE ),
2533           MSII.PLANNING_TIME_FENCE_DAYS      =  decode( A_PLANNING_TIME_FENCE_DAYS,1,msii_master_temp.PLANNING_TIME_FENCE_DAYS,MSII.PLANNING_TIME_FENCE_DAYS ),
2534           -- Bug #1052111
2535           MSII.RELEASE_TIME_FENCE_CODE       =  decode( A_RELEASE_TIME_FENCE_CODE,1,msii_master_temp.RELEASE_TIME_FENCE_CODE,MSII.RELEASE_TIME_FENCE_CODE ),
2536           MSII.RELEASE_TIME_FENCE_DAYS       =  decode( A_RELEASE_TIME_FENCE_DAYS,1,msii_master_temp.RELEASE_TIME_FENCE_DAYS,MSII.RELEASE_TIME_FENCE_DAYS ),
2537           MSII.REPETITIVE_PLANNING_FLAG      =  decode( A_REPETITIVE_PLANNING_FLAG,1,msii_master_temp.REPETITIVE_PLANNING_FLAG,MSII.REPETITIVE_PLANNING_FLAG ),
2538           MSII.ROUNDING_CONTROL_TYPE         =  decode( A_ROUNDING_CONTROL_TYPE,1, msii_master_temp.ROUNDING_CONTROL_TYPE,MSII.ROUNDING_CONTROL_TYPE ),
2539           MSII.SHRINKAGE_RATE                =  decode( A_SHRINKAGE_RATE,1,msii_master_temp.SHRINKAGE_RATE,MSII.SHRINKAGE_RATE ),
2540           MSII.CUMULATIVE_TOTAL_LEAD_TIME    =  decode( A_CUMULATIVE_TOTAL_LEAD_TIME,1,msii_master_temp.CUMULATIVE_TOTAL_LEAD_TIME,MSII.CUMULATIVE_TOTAL_LEAD_TIME ),
2541           MSII.CUM_MANUFACTURING_LEAD_TIME   =  decode( A_CUM_MANUFACTURING_LEAD_TIME,1,msii_master_temp.CUM_MANUFACTURING_LEAD_TIME,MSII.CUM_MANUFACTURING_LEAD_TIME ),
2542           MSII.FIXED_LEAD_TIME               =  decode( A_FIXED_LEAD_TIME,1,msii_master_temp.FIXED_LEAD_TIME,MSII.FIXED_LEAD_TIME ),
2543           MSII.FULL_LEAD_TIME                =  decode( A_FULL_LEAD_TIME,1,msii_master_temp.FULL_LEAD_TIME,MSII.FULL_LEAD_TIME ),
2544           MSII.POSTPROCESSING_LEAD_TIME      =  decode( A_POSTPROCESSING_LEAD_TIME,1,msii_master_temp.POSTPROCESSING_LEAD_TIME,MSII.POSTPROCESSING_LEAD_TIME ),
2545           MSII.PREPROCESSING_LEAD_TIME       =  decode( A_PREPROCESSING_LEAD_TIME,1,msii_master_temp.PREPROCESSING_LEAD_TIME,MSII.PREPROCESSING_LEAD_TIME ),
2546           MSII.VARIABLE_LEAD_TIME            =  decode( A_VARIABLE_LEAD_TIME,1,msii_master_temp.VARIABLE_LEAD_TIME,MSII.VARIABLE_LEAD_TIME ),
2547           MSII.BUILD_IN_WIP_FLAG             =  decode( A_BUILD_IN_WIP_FLAG,1,msii_master_temp.BUILD_IN_WIP_FLAG,MSII.BUILD_IN_WIP_FLAG ),
2548           MSII.WIP_SUPPLY_LOCATOR_ID         =  decode( A_WIP_SUPPLY_LOCATOR_ID,1,msii_master_temp.WIP_SUPPLY_LOCATOR_ID,MSII.WIP_SUPPLY_LOCATOR_ID ),
2549           MSII.WIP_SUPPLY_SUBINVENTORY       =  decode( A_WIP_SUPPLY_SUBINVENTORY,1,msii_master_temp.WIP_SUPPLY_SUBINVENTORY,MSII.WIP_SUPPLY_SUBINVENTORY ),
2550           MSII.WIP_SUPPLY_TYPE               =  decode( A_WIP_SUPPLY_TYPE,1,msii_master_temp.WIP_SUPPLY_TYPE,MSII.WIP_SUPPLY_TYPE ),
2551           MSII.ATP_COMPONENTS_FLAG           =  decode( A_ATP_COMPONENTS_FLAG,1,msii_master_temp.ATP_COMPONENTS_FLAG,MSII.ATP_COMPONENTS_FLAG ),
2552           MSII.ATP_FLAG                      =  decode( A_ATP_FLAG,1,msii_master_temp.ATP_FLAG,MSII.ATP_FLAG ),
2553           MSII.ATP_RULE_ID                   =  decode( A_ATP_RULE_ID,1,msii_master_temp.ATP_RULE_ID,MSII.ATP_RULE_ID ),
2554           MSII.COLLATERAL_FLAG               =  decode( A_COLLATERAL_FLAG,1,msii_master_temp.COLLATERAL_FLAG,MSII.COLLATERAL_FLAG ),
2555           MSII.CUSTOMER_ORDER_ENABLED_FLAG   =  decode( A_CUSTOMER_ORDER_ENABLED_FLAG,1,msii_master_temp.CUSTOMER_ORDER_ENABLED_FLAG,MSII.CUSTOMER_ORDER_ENABLED_FLAG ),
2556           MSII.CUSTOMER_ORDER_FLAG           =  decode( A_CUSTOMER_ORDER_FLAG,1,msii_master_temp.CUSTOMER_ORDER_FLAG,MSII.CUSTOMER_ORDER_FLAG ),
2557           MSII.DEFAULT_SHIPPING_ORG          =  decode( A_DEFAULT_SHIPPING_ORG,1,msii_master_temp.DEFAULT_SHIPPING_ORG,MSII.DEFAULT_SHIPPING_ORG ),
2558           MSII.INTERNAL_ORDER_ENABLED_FLAG   =  decode( A_INTERNAL_ORDER_ENABLED_FLAG,1,msii_master_temp.INTERNAL_ORDER_ENABLED_FLAG,MSII.INTERNAL_ORDER_ENABLED_FLAG ),
2559 
2560                 MSII.INTERNAL_ORDER_FLAG =
2561                 decode( A_INTERNAL_ORDER_FLAG,
2562                         1,
2563                         msii_master_temp.INTERNAL_ORDER_FLAG,
2564                         MSII.INTERNAL_ORDER_FLAG ),
2565 
2566                 MSII.PICKING_RULE_ID =
2567                 decode( A_PICKING_RULE_ID,
2568                         1,
2569                         msii_master_temp.PICKING_RULE_ID,
2570                         MSII.PICKING_RULE_ID ),
2571 
2572                 MSII.PICK_COMPONENTS_FLAG =
2573                 decode( A_PICK_COMPONENTS_FLAG,
2574                         1,
2575                         msii_master_temp.PICK_COMPONENTS_FLAG,
2576                         MSII.PICK_COMPONENTS_FLAG ),
2577 
2578                 MSII.REPLENISH_TO_ORDER_FLAG =
2579                 decode( A_REPLENISH_TO_ORDER_FLAG,
2580                         1,
2581                         msii_master_temp.REPLENISH_TO_ORDER_FLAG,
2582                         MSII.REPLENISH_TO_ORDER_FLAG ),
2583 
2584                 MSII.RETURNABLE_FLAG =
2585                 decode( A_RETURNABLE_FLAG,
2586                         1,
2587                         msii_master_temp.RETURNABLE_FLAG,
2588                         MSII.RETURNABLE_FLAG ),
2589 
2590                 MSII.RETURN_INSPECTION_REQUIREMENT =
2591                 decode( A_RETURN_INSPECTION_REQMT,
2592                         1,
2593                         msii_master_temp.RETURN_INSPECTION_REQUIREMENT,
2594                         MSII.RETURN_INSPECTION_REQUIREMENT ),
2595 
2596                 MSII.SHIPPABLE_ITEM_FLAG =
2597                 decode( A_SHIPPABLE_ITEM_FLAG,
2598                         1,
2599                         msii_master_temp.SHIPPABLE_ITEM_FLAG,
2600                         MSII.SHIPPABLE_ITEM_FLAG ),
2601 
2602                 MSII.SHIP_MODEL_COMPLETE_FLAG =
2603                 decode( A_SHIP_MODEL_COMPLETE_FLAG,
2604                         1,
2605                         msii_master_temp.SHIP_MODEL_COMPLETE_FLAG,
2606                         MSII.SHIP_MODEL_COMPLETE_FLAG ),
2607 
2608                 MSII.SO_TRANSACTIONS_FLAG =
2609                 decode( A_SO_TRANSACTIONS_FLAG,
2610                         1,
2611                         msii_master_temp.SO_TRANSACTIONS_FLAG,
2612                         MSII.SO_TRANSACTIONS_FLAG ),
2613 
2614                 MSII.ACCOUNTING_RULE_ID =
2615                 decode( A_ACCOUNTING_RULE_ID,
2616                         1,
2617                         msii_master_temp.ACCOUNTING_RULE_ID,
2618                         MSII.ACCOUNTING_RULE_ID ),
2619 
2620                 MSII.INVOICEABLE_ITEM_FLAG =
2621                 decode( A_INVOICEABLE_ITEM_FLAG,
2622                         1,
2623                         msii_master_temp.INVOICEABLE_ITEM_FLAG,
2624                         MSII.INVOICEABLE_ITEM_FLAG ),
2625 
2626                 MSII.INVOICE_ENABLED_FLAG =
2627                 decode( A_INVOICE_ENABLED_FLAG,
2628                         1,
2629                         msii_master_temp.INVOICE_ENABLED_FLAG,
2630                         MSII.INVOICE_ENABLED_FLAG ),
2631 
2632                 MSII.ENGINEERING_DATE =
2633                 decode( A_ENGINEERING_DATE,
2634                         1,
2635                         msii_master_temp.ENGINEERING_DATE,
2636                         MSII.ENGINEERING_DATE ),
2637 
2638                 MSII.INVOICING_RULE_ID =
2639                 decode( A_INVOICING_RULE_ID,
2640                         1,
2641                         msii_master_temp.INVOICING_RULE_ID,
2642                         MSII.INVOICING_RULE_ID ),
2643 
2644                 MSII.PAYMENT_TERMS_ID =
2645                 decode( A_PAYMENT_TERMS_ID,
2646                         1,
2647                         msii_master_temp.PAYMENT_TERMS_ID,
2648                         MSII.PAYMENT_TERMS_ID ),
2649 
2650                 MSII.SALES_ACCOUNT =
2651                 decode( A_SALES_ACCOUNT,
2652                         1,
2653                         msii_master_temp.SALES_ACCOUNT,
2654                         MSII.SALES_ACCOUNT ),
2655 
2656                 MSII.TAX_CODE =
2657                 decode( A_TAX_CODE,
2658                         1,
2659                         msii_master_temp.TAX_CODE,
2660                         MSII.TAX_CODE ),
2661 
2662                 MSII.COVERAGE_SCHEDULE_ID =
2663                 decode( A_COVERAGE_SCHEDULE_ID,
2664                         1,
2665                         msii_master_temp.COVERAGE_SCHEDULE_ID,
2666                         MSII.COVERAGE_SCHEDULE_ID ),
2667 
2668                 MSII.MATERIAL_BILLABLE_FLAG =
2669                 decode( A_MATERIAL_BILLABLE_FLAG,
2670                         1,
2671                         msii_master_temp.MATERIAL_BILLABLE_FLAG,
2672                         MSII.MATERIAL_BILLABLE_FLAG ),
2673 
2674                 MSII.MAX_WARRANTY_AMOUNT =
2675                 decode( A_MAX_WARRANTY_AMOUNT,
2676                         1,
2677                         msii_master_temp.MAX_WARRANTY_AMOUNT,
2678                         MSII.MAX_WARRANTY_AMOUNT ),
2679 
2680                 MSII.PREVENTIVE_MAINTENANCE_FLAG =
2681                 decode( A_PREVENTIVE_MAINTENANCE_FLAG,
2682                         1,
2683                         msii_master_temp.PREVENTIVE_MAINTENANCE_FLAG,
2684                         MSII.PREVENTIVE_MAINTENANCE_FLAG ),
2685 
2686                 MSII.PRORATE_SERVICE_FLAG =
2687                 decode( A_PRORATE_SERVICE_FLAG,
2688                         1,
2689                         msii_master_temp.PRORATE_SERVICE_FLAG,
2690                         MSII.PRORATE_SERVICE_FLAG ),
2691 
2692                 MSII.RESPONSE_TIME_PERIOD_CODE =
2693                 decode( A_RESPONSE_TIME_PERIOD_CODE,
2694                         1,
2695                         msii_master_temp.RESPONSE_TIME_PERIOD_CODE,
2696                         MSII.RESPONSE_TIME_PERIOD_CODE ),
2697 
2698                 MSII.RESPONSE_TIME_VALUE =
2699                 decode( A_RESPONSE_TIME_VALUE,
2700                         1,
2701                         msii_master_temp.RESPONSE_TIME_VALUE,
2702                         MSII.RESPONSE_TIME_VALUE ),
2703 
2704                 MSII.SERVICE_DURATION =
2705                 decode( A_SERVICE_DURATION,
2706                         1,
2707                         msii_master_temp.SERVICE_DURATION,
2708                         MSII.SERVICE_DURATION ),
2709 
2710                 MSII.SERVICE_DURATION_PERIOD_CODE =
2711                 decode( A_SERVICE_DURATION_PERIOD_CODE,
2712                         1,
2713                         msii_master_temp.SERVICE_DURATION_PERIOD_CODE,
2714                         MSII.SERVICE_DURATION_PERIOD_CODE ),
2715 
2716                 MSII.WARRANTY_VENDOR_ID =
2717                 decode( A_WARRANTY_VENDOR_ID,
2718                         1,
2719                         msii_master_temp.WARRANTY_VENDOR_ID,
2720                         MSII.WARRANTY_VENDOR_ID ),
2721 
2722                 MSII.BASE_WARRANTY_SERVICE_ID =
2723                 decode( A_BASE_WARRANTY_SERVICE_ID,
2724                         1,
2725                         msii_master_temp.BASE_WARRANTY_SERVICE_ID,
2726                         MSII.BASE_WARRANTY_SERVICE_ID ),
2727 
2728                 MSII.NEW_REVISION_CODE =
2729                 decode( A_NEW_REVISION_CODE,
2730                         1,
2731                         msii_master_temp.NEW_REVISION_CODE,
2732                         MSII.NEW_REVISION_CODE ),
2733 
2734                 MSII.PRIMARY_SPECIALIST_ID =
2735                 decode( A_PRIMARY_SPECIALIST_ID,
2736                         1,
2737                         msii_master_temp.PRIMARY_SPECIALIST_ID,
2738                         MSII.PRIMARY_SPECIALIST_ID ),
2739 
2740                 MSII.SECONDARY_SPECIALIST_ID =
2741                 decode( A_SECONDARY_SPECIALIST_ID,
2742                         1,
2743                         msii_master_temp.SECONDARY_SPECIALIST_ID,
2744                         MSII.SECONDARY_SPECIALIST_ID ),
2745 
2746                 MSII.SERVICEABLE_COMPONENT_FLAG =
2747                 decode( A_SERVICEABLE_COMPONENT_FLAG,
2748                         1,
2749                         msii_master_temp.SERVICEABLE_COMPONENT_FLAG,
2750                         MSII.SERVICEABLE_COMPONENT_FLAG ),
2751 
2752                 MSII.SERVICEABLE_ITEM_CLASS_ID =
2753                 decode( A_SERVICEABLE_ITEM_CLASS_ID,
2754                         1,
2755                         msii_master_temp.SERVICEABLE_ITEM_CLASS_ID,
2756                         MSII.SERVICEABLE_ITEM_CLASS_ID ),
2757 
2758                 MSII.SERVICEABLE_PRODUCT_FLAG =
2759                 decode( A_SERVICEABLE_PRODUCT_FLAG,
2760                         1,
2761                         msii_master_temp.SERVICEABLE_PRODUCT_FLAG,
2762                         MSII.SERVICEABLE_PRODUCT_FLAG ),
2763 
2764                 MSII.SERVICE_STARTING_DELAY =
2765                 decode( A_SERVICE_STARTING_DELAY,
2766                         1,
2767                         msii_master_temp.SERVICE_STARTING_DELAY,
2768                         MSII.SERVICE_STARTING_DELAY ),
2769 
2770                 MSII.ATO_FORECAST_CONTROL =
2771                 decode( A_ATO_FORECAST_CONTROL,
2772                         1,
2773                         msii_master_temp.ATO_FORECAST_CONTROL,
2774                         MSII.ATO_FORECAST_CONTROL ),
2775 
2776                 MSII.DESCRIPTION =
2777                 decode( A_DESCRIPTION,
2778                         1,
2779                         msii_master_temp.DESCRIPTION,
2780                         MSII.DESCRIPTION ),
2781 
2782                 MSII.LONG_DESCRIPTION =
2783                 decode( A_LONG_DESCRIPTION,
2784                         1,
2785                         msii_master_temp.LONG_DESCRIPTION,
2786                         MSII.LONG_DESCRIPTION ),
2787 
2788                 MSII.LEAD_TIME_LOT_SIZE =
2789                 decode( A_LEAD_TIME_LOT_SIZE,
2790                         1,
2791                         msii_master_temp.LEAD_TIME_LOT_SIZE,
2792                         MSII.LEAD_TIME_LOT_SIZE ),
2793 
2794                 MSII.POSITIVE_MEASUREMENT_ERROR =
2795                 decode( A_POSITIVE_MEASUREMENT_ERROR,
2796                         1,
2797                         msii_master_temp.POSITIVE_MEASUREMENT_ERROR,
2798                         MSII.POSITIVE_MEASUREMENT_ERROR ),
2799 
2800 
2801                 MSII.CONTAINER_ITEM_FLAG =
2802                 decode( A_CONTAINER_ITEM_FLAG,
2803                         1,
2804                         msii_master_temp.CONTAINER_ITEM_FLAG,
2805                         MSII.CONTAINER_ITEM_FLAG ),
2806                 MSII.VEHICLE_ITEM_FLAG =
2807                 decode( A_VEHICLE_ITEM_FLAG,
2808                         1,
2809                         msii_master_temp.VEHICLE_ITEM_FLAG,
2810                         MSII.VEHICLE_ITEM_FLAG ),
2811 
2812                 MSII.MAXIMUM_LOAD_WEIGHT =
2813                 decode( A_MAXIMUM_LOAD_WEIGHT,
2814                         1,
2815                         msii_master_temp.MAXIMUM_LOAD_WEIGHT,
2816                         MSII.MAXIMUM_LOAD_WEIGHT ),
2817 
2818                 MSII.MINIMUM_FILL_PERCENT =
2819                 decode( A_MINIMUM_FILL_PERCENT,
2820                         1,
2821                         msii_master_temp.MINIMUM_FILL_PERCENT,
2822                         MSII.MINIMUM_FILL_PERCENT ),
2823 
2824                 MSII.INTERNAL_VOLUME =
2825                 decode( A_INTERNAL_VOLUME,
2826                         1,
2827                         msii_master_temp.INTERNAL_VOLUME,
2828                         MSII.INTERNAL_VOLUME ),
2829 
2830                 MSII.CONTAINER_TYPE_CODE =
2831                 decode( A_CONTAINER_TYPE_CODE,
2832                         1,
2833                         msii_master_temp.CONTAINER_TYPE_CODE,
2834                         MSII.CONTAINER_TYPE_CODE ),
2835 
2836          MSII.CHECK_SHORTAGES_FLAG =
2837          decode( A_CHECK_SHORTAGES_FLAG,
2838                  1, msii_master_temp.CHECK_SHORTAGES_FLAG,
2839                  MSII.CHECK_SHORTAGES_FLAG ),
2840 
2841          MSII.EFFECTIVITY_CONTROL =
2842          decode( A_EFFECTIVITY_CONTROL,
2843                  1, msii_master_temp.EFFECTIVITY_CONTROL,
2844                  MSII.EFFECTIVITY_CONTROL ),
2845 
2846          MSII.OVERCOMPLETION_TOLERANCE_TYPE =
2847          decode( A_OVERCOMPLETION_TOLERANCE_TYP,
2848                  1, msii_master_temp.OVERCOMPLETION_TOLERANCE_TYPE,
2849                  MSII.OVERCOMPLETION_TOLERANCE_TYPE ),
2850 
2851          MSII.OVERCOMPLETION_TOLERANCE_VALUE =
2852          decode( A_OVERCOMPLETION_TOLERANCE_VAL,
2853                  1, msii_master_temp.OVERCOMPLETION_TOLERANCE_VALUE,
2854                  MSII.OVERCOMPLETION_TOLERANCE_VALUE ),
2855 
2856          MSII.OVER_SHIPMENT_TOLERANCE =
2857          decode( A_OVER_SHIPMENT_TOLERANCE,
2858                  1, msii_master_temp.OVER_SHIPMENT_TOLERANCE,
2859                  MSII.OVER_SHIPMENT_TOLERANCE ),
2860 
2861          MSII.UNDER_SHIPMENT_TOLERANCE =
2862          decode( A_UNDER_SHIPMENT_TOLERANCE,
2863                  1, msii_master_temp.UNDER_SHIPMENT_TOLERANCE,
2864                  MSII.UNDER_SHIPMENT_TOLERANCE ),
2865 
2866          MSII.OVER_RETURN_TOLERANCE =
2867          decode( A_OVER_RETURN_TOLERANCE,
2868                  1, msii_master_temp.OVER_RETURN_TOLERANCE,
2869                  MSII.OVER_RETURN_TOLERANCE ),
2870 
2871          MSII.UNDER_RETURN_TOLERANCE =
2872          decode( A_UNDER_RETURN_TOLERANCE,
2873                  1, msii_master_temp.UNDER_RETURN_TOLERANCE,
2874                  MSII.UNDER_RETURN_TOLERANCE ),
2875 
2876          MSII.EQUIPMENT_TYPE =
2877          decode( A_EQUIPMENT_TYPE,
2878                  1, msii_master_temp.EQUIPMENT_TYPE,
2879                  MSII.EQUIPMENT_TYPE ),
2880 
2881          MSII.RECOVERED_PART_DISP_CODE =
2882          decode( A_RECOVERED_PART_DISP_CODE,
2883                  1, msii_master_temp.RECOVERED_PART_DISP_CODE,
2884                  MSII.RECOVERED_PART_DISP_CODE ),
2885 
2886          MSII.DEFECT_TRACKING_ON_FLAG =
2887          decode( A_DEFECT_TRACKING_ON_FLAG,
2888                  1, msii_master_temp.DEFECT_TRACKING_ON_FLAG,
2889                  MSII.DEFECT_TRACKING_ON_FLAG ),
2890 
2891          MSII.EVENT_FLAG =
2892          decode( A_EVENT_FLAG,
2893                  1, msii_master_temp.EVENT_FLAG,
2894                  MSII.EVENT_FLAG ),
2895 
2896          MSII.ELECTRONIC_FLAG =
2897          decode( A_ELECTRONIC_FLAG,
2898                  1, msii_master_temp.ELECTRONIC_FLAG,
2899                  MSII.ELECTRONIC_FLAG ),
2900 
2901          MSII. DOWNLOADABLE_FLAG=
2902          decode( A_DOWNLOADABLE_FLAG,
2903                  1, msii_master_temp.DOWNLOADABLE_FLAG,
2904                  MSII.DOWNLOADABLE_FLAG ),
2905 
2906          MSII.VOL_DISCOUNT_EXEMPT_FLAG =
2907          decode( A_VOL_DISCOUNT_EXEMPT_FLAG,
2908                  1, msii_master_temp.VOL_DISCOUNT_EXEMPT_FLAG,
2909                  MSII.VOL_DISCOUNT_EXEMPT_FLAG ),
2910 
2911          MSII.COUPON_EXEMPT_FLAG =
2912          decode( A_COUPON_EXEMPT_FLAG,
2913                  1, msii_master_temp.COUPON_EXEMPT_FLAG,
2914                  MSII.COUPON_EXEMPT_FLAG ),
2915 
2916          MSII.COMMS_NL_TRACKABLE_FLAG =
2917          decode( A_COMMS_NL_TRACKABLE_FLAG,
2918                  1, msii_master_temp.COMMS_NL_TRACKABLE_FLAG,
2919                  MSII.COMMS_NL_TRACKABLE_FLAG ),
2920 
2921          MSII.ASSET_CREATION_CODE =
2922          decode( A_ASSET_CREATION_CODE,
2923                  1, msii_master_temp.ASSET_CREATION_CODE,
2924                  MSII.ASSET_CREATION_CODE ),
2925 
2926          MSII.COMMS_ACTIVATION_REQD_FLAG =
2927          decode( A_COMMS_ACTIVATION_REQD_FLAG,
2928                  1, msii_master_temp.COMMS_ACTIVATION_REQD_FLAG,
2929                  MSII.COMMS_ACTIVATION_REQD_FLAG ),
2930 
2931          MSII.ORDERABLE_ON_WEB_FLAG =
2932          decode( A_ORDERABLE_ON_WEB_FLAG,
2933                  1, msii_master_temp.ORDERABLE_ON_WEB_FLAG,
2934                  MSII.ORDERABLE_ON_WEB_FLAG ),
2935 
2936          MSII.BACK_ORDERABLE_FLAG =
2937          decode( A_BACK_ORDERABLE_FLAG,
2938                  1, msii_master_temp.BACK_ORDERABLE_FLAG,
2939                  MSII.BACK_ORDERABLE_FLAG ),
2940 
2941       MSII.WEB_STATUS =
2942       decode( A_WEB_STATUS,
2943               1, msii_master_temp.WEB_STATUS,
2944               MSII.WEB_STATUS ),
2945 
2946       MSII.INDIVISIBLE_FLAG =
2947       decode( A_INDIVISIBLE_FLAG,
2948               1, msii_master_temp.INDIVISIBLE_FLAG,
2949               MSII.INDIVISIBLE_FLAG ),
2950 
2951          MSII.DIMENSION_UOM_CODE =
2952          decode( A_DIMENSION_UOM_CODE,
2953                  1, msii_master_temp.DIMENSION_UOM_CODE,
2954                  MSII.DIMENSION_UOM_CODE ),
2955 
2956          MSII.UNIT_LENGTH =
2957          decode( A_UNIT_LENGTH,
2958                  1, msii_master_temp.UNIT_LENGTH,
2959                  MSII.UNIT_LENGTH ),
2960 
2961          MSII.UNIT_WIDTH =
2962          decode( A_UNIT_WIDTH,
2963                  1, msii_master_temp.UNIT_WIDTH,
2964                  MSII.UNIT_WIDTH ),
2965 
2966          MSII.UNIT_HEIGHT =
2967          decode( A_UNIT_HEIGHT,
2968                  1, msii_master_temp.UNIT_HEIGHT,
2969                  MSII.UNIT_HEIGHT ),
2970 
2971          MSII.BULK_PICKED_FLAG =
2972          decode( A_BULK_PICKED_FLAG,
2973                  1, msii_master_temp.BULK_PICKED_FLAG,
2974                  MSII.BULK_PICKED_FLAG ),
2975 
2976          MSII. LOT_STATUS_ENABLED=
2977          decode( A_LOT_STATUS_ENABLED,
2978                  1, msii_master_temp.LOT_STATUS_ENABLED,
2979                  MSII.LOT_STATUS_ENABLED ),
2980 
2981          MSII.DEFAULT_LOT_STATUS_ID =
2982          decode( A_DEFAULT_LOT_STATUS_ID,
2983                  1, msii_master_temp.DEFAULT_LOT_STATUS_ID,
2984                  MSII.DEFAULT_LOT_STATUS_ID ),
2985 
2986          MSII.SERIAL_STATUS_ENABLED =
2987          decode( A_SERIAL_STATUS_ENABLED,
2988                  1, msii_master_temp.SERIAL_STATUS_ENABLED,
2989                  MSII.SERIAL_STATUS_ENABLED ),
2990 
2991          MSII.DEFAULT_SERIAL_STATUS_ID =
2992          decode( A_DEFAULT_SERIAL_STATUS_ID,
2993                  1, msii_master_temp.DEFAULT_SERIAL_STATUS_ID,
2994                  MSII.DEFAULT_SERIAL_STATUS_ID ),
2995 
2996          MSII.LOT_SPLIT_ENABLED =
2997          decode( A_LOT_SPLIT_ENABLED,
2998                  1, msii_master_temp.LOT_SPLIT_ENABLED,
2999                  MSII.LOT_SPLIT_ENABLED ),
3000 
3001          MSII.LOT_MERGE_ENABLED =
3002          decode( A_LOT_MERGE_ENABLED,
3003                  1, msii_master_temp.LOT_MERGE_ENABLED,
3004                  MSII.LOT_MERGE_ENABLED ),
3005 
3006          MSII.INVENTORY_CARRY_PENALTY =
3007          decode( A_INVENTORY_CARRY_PENALTY,
3008                  1, msii_master_temp.INVENTORY_CARRY_PENALTY,
3009                  MSII.INVENTORY_CARRY_PENALTY ),
3010 
3011          MSII.OPERATION_SLACK_PENALTY =
3012          decode( A_OPERATION_SLACK_PENALTY,
3013                  1, msii_master_temp.OPERATION_SLACK_PENALTY,
3014                  MSII.OPERATION_SLACK_PENALTY ),
3015 
3016          MSII.FINANCING_ALLOWED_FLAG =
3017          decode( A_FINANCING_ALLOWED_FLAG,
3018                  1, msii_master_temp.FINANCING_ALLOWED_FLAG,
3019                  MSII.FINANCING_ALLOWED_FLAG ),
3020 
3021          MSII.EAM_ITEM_TYPE =
3022          decode( A_EAM_ITEM_TYPE,
3023                  1, msii_master_temp.EAM_ITEM_TYPE,
3024                  MSII.EAM_ITEM_TYPE ),
3025 
3026          MSII.EAM_ACTIVITY_TYPE_CODE =
3027          decode( A_EAM_ACTIVITY_TYPE_CODE,
3028                  1, msii_master_temp.EAM_ACTIVITY_TYPE_CODE,
3029                  MSII.EAM_ACTIVITY_TYPE_CODE ),
3030 
3031          MSII.EAM_ACTIVITY_CAUSE_CODE =
3032          decode( A_EAM_ACTIVITY_CAUSE_CODE,
3033                  1, msii_master_temp.EAM_ACTIVITY_CAUSE_CODE,
3034                  MSII.EAM_ACTIVITY_CAUSE_CODE ),
3035 
3036          MSII.EAM_ACT_NOTIFICATION_FLAG =
3037          decode( A_EAM_ACT_NOTIFICATION_FLAG,
3038                  1, msii_master_temp.EAM_ACT_NOTIFICATION_FLAG,
3039                  MSII.EAM_ACT_NOTIFICATION_FLAG ),
3040 
3041          MSII.EAM_ACT_SHUTDOWN_STATUS =
3042          decode( A_EAM_ACT_SHUTDOWN_STATUS,
3043                  1, msii_master_temp.EAM_ACT_SHUTDOWN_STATUS,
3044                  MSII.EAM_ACT_SHUTDOWN_STATUS ),
3045 
3046          MSII.DUAL_UOM_CONTROL =
3047          decode( A_DUAL_UOM_CONTROL,
3048                  1, msii_master_temp.DUAL_UOM_CONTROL,
3049                  MSII.DUAL_UOM_CONTROL ),
3050 
3051          MSII.SECONDARY_UOM_CODE =
3052          decode( A_SECONDARY_UOM_CODE,
3053                  1, msii_master_temp.SECONDARY_UOM_CODE,
3054                  MSII.SECONDARY_UOM_CODE ),
3055 
3056          MSII.DUAL_UOM_DEVIATION_HIGH =
3057          decode( A_DUAL_UOM_DEVIATION_HIGH,
3058                  1, msii_master_temp.DUAL_UOM_DEVIATION_HIGH,
3059                  MSII.DUAL_UOM_DEVIATION_HIGH ),
3060 
3061          MSII.DUAL_UOM_DEVIATION_LOW =
3062          decode( A_DUAL_UOM_DEVIATION_LOW,
3063                  1, msii_master_temp.DUAL_UOM_DEVIATION_LOW,
3064                  MSII.DUAL_UOM_DEVIATION_LOW ),
3065          MSII.CONTRACT_ITEM_TYPE_CODE =
3066          decode( A_CONTRACT_ITEM_TYPE_CODE,
3067                  1, msii_master_temp.CONTRACT_ITEM_TYPE_CODE,
3068                  MSII.CONTRACT_ITEM_TYPE_CODE ),
3069 /* Removed 11.5.10
3070          MSII.SUBSCRIPTION_DEPEND_FLAG =
3071          decode( A_SUBSCRIPTION_DEPEND_FLAG,
3072                  1, msii_master_temp.SUBSCRIPTION_DEPEND_FLAG,
3073                  MSII.SUBSCRIPTION_DEPEND_FLAG ),
3074 */
3075       MSII.SERV_REQ_ENABLED_CODE =
3076       DECODE( A_SERV_REQ_ENABLED_CODE,
3077               1, msii_master_temp.SERV_REQ_ENABLED_CODE,
3078               MSII.SERV_REQ_ENABLED_CODE ),
3079 
3080       MSII.SERV_BILLING_ENABLED_FLAG =
3081       DECODE( A_SERV_BILLING_ENABLED_FLAG,
3082               1, msii_master_temp.SERV_BILLING_ENABLED_FLAG,
3083               MSII.SERV_BILLING_ENABLED_FLAG ),
3084       MSII.PLANNED_INV_POINT_FLAG =
3085       DECODE( A_PLANNED_INV_POINT_FLAG,
3086               1, msii_master_temp.PLANNED_INV_POINT_FLAG,
3087               MSII.PLANNED_INV_POINT_FLAG ),
3088 
3089       MSII.LOT_TRANSLATE_ENABLED =
3090       DECODE( A_LOT_TRANSLATE_ENABLED,
3091               1, msii_master_temp.LOT_TRANSLATE_ENABLED,
3092               MSII.LOT_TRANSLATE_ENABLED ),
3093 
3094       MSII.DEFAULT_SO_SOURCE_TYPE =
3095       DECODE( A_DEFAULT_SO_SOURCE_TYPE,
3096               1, msii_master_temp.DEFAULT_SO_SOURCE_TYPE,
3097               MSII.DEFAULT_SO_SOURCE_TYPE ),
3098 
3099       MSII.CREATE_SUPPLY_FLAG =
3100       DECODE( A_CREATE_SUPPLY_FLAG,
3101               1, msii_master_temp.CREATE_SUPPLY_FLAG,
3102               MSII.CREATE_SUPPLY_FLAG ),
3103 
3104       MSII.SUBSTITUTION_WINDOW_CODE =
3105       DECODE( A_SUBSTITUTION_WINDOW_CODE,
3106               1, msii_master_temp.SUBSTITUTION_WINDOW_CODE,
3107               MSII.SUBSTITUTION_WINDOW_CODE ),
3108 
3109       MSII.SUBSTITUTION_WINDOW_DAYS =
3110       DECODE( A_SUBSTITUTION_WINDOW_DAYS,
3111               1, msii_master_temp.SUBSTITUTION_WINDOW_DAYS,
3112               MSII.SUBSTITUTION_WINDOW_DAYS ),
3113 --Added as part of 11.5.9 ENH
3114       MSII.LOT_SUBSTITUTION_ENABLED =
3115       DECODE( A_LOT_SUBSTITUTION_ENABLED,
3116               1, msii_master_temp.LOT_SUBSTITUTION_ENABLED,
3117               MSII.LOT_SUBSTITUTION_ENABLED ),
3118 
3119       MSII.MINIMUM_LICENSE_QUANTITY =
3120       DECODE( A_MINIMUM_LICENSE_QUANTITY,
3121               1, msii_master_temp.MINIMUM_LICENSE_QUANTITY,
3122               MSII.MINIMUM_LICENSE_QUANTITY ),
3123 
3124       MSII.EAM_ACTIVITY_SOURCE_CODE =
3125       DECODE( A_EAM_ACTIVITY_SOURCE_CODE,
3126               1, msii_master_temp.EAM_ACTIVITY_SOURCE_CODE,
3127               MSII.EAM_ACTIVITY_SOURCE_CODE ),
3128 
3129       MSII.IB_ITEM_INSTANCE_CLASS =
3130       DECODE( A_IB_ITEM_INSTANCE_CLASS,
3131               1, msii_master_temp.IB_ITEM_INSTANCE_CLASS,
3132               MSII.IB_ITEM_INSTANCE_CLASS ),
3133 
3134       MSII.CONFIG_MODEL_TYPE =
3135       DECODE( A_CONFIG_MODEL_TYPE,
3136               1, msii_master_temp.CONFIG_MODEL_TYPE,
3137               MSII.CONFIG_MODEL_TYPE ),
3138 --Added as part of 11.5.10 ENH
3139       MSII.TRACKING_QUANTITY_IND =
3140       DECODE( A_TRACKING_QUANTITY_IND,
3141               1, msii_master_temp.TRACKING_QUANTITY_IND,
3142               MSII.TRACKING_QUANTITY_IND ),
3143 
3144       MSII.ONT_PRICING_QTY_SOURCE =
3145       DECODE( A_ONT_PRICING_QTY_SOURCE,
3146               1, msii_master_temp.ONT_PRICING_QTY_SOURCE,
3147               MSII.ONT_PRICING_QTY_SOURCE ),
3148 
3149       MSII.SECONDARY_DEFAULT_IND =
3150       DECODE( A_SECONDARY_DEFAULT_IND,
3151               1, msii_master_temp.SECONDARY_DEFAULT_IND,
3152               MSII.SECONDARY_DEFAULT_IND ),
3153 
3154       MSII.AUTO_CREATED_CONFIG_FLAG =
3155       DECODE( A_AUTO_CREATED_CONFIG_FLAG,
3156               1, msii_master_temp.AUTO_CREATED_CONFIG_FLAG,
3157               MSII.AUTO_CREATED_CONFIG_FLAG ),
3158 
3159       MSII.CONFIG_ORGS =
3160       DECODE( A_CONFIG_ORGS,
3161               1, msii_master_temp.CONFIG_ORGS,
3162               MSII.CONFIG_ORGS ),
3163 
3164       MSII.CONFIG_MATCH =
3165       DECODE( A_CONFIG_MATCH,
3166               1, msii_master_temp.CONFIG_MATCH,
3167               MSII.CONFIG_MATCH ),
3168 
3169       MSII.VMI_MINIMUM_UNITS =
3170       DECODE( A_VMI_MINIMUM_UNITS,
3171               1, msii_master_temp.VMI_MINIMUM_UNITS,
3172               MSII.VMI_MINIMUM_UNITS ),
3173 
3174       MSII.VMI_MINIMUM_DAYS =
3175       DECODE( A_VMI_MINIMUM_DAYS,
3176               1, msii_master_temp.VMI_MINIMUM_DAYS,
3177               MSII.VMI_MINIMUM_DAYS ),
3178 
3179       MSII.VMI_MAXIMUM_UNITS =
3180       DECODE( A_VMI_MAXIMUM_UNITS,
3181               1, msii_master_temp.VMI_MAXIMUM_UNITS,
3182               MSII.VMI_MAXIMUM_UNITS ),
3183 
3184       MSII.VMI_MAXIMUM_DAYS =
3185       DECODE( A_VMI_MAXIMUM_DAYS,
3186               1, msii_master_temp.VMI_MAXIMUM_DAYS,
3187               MSII.VMI_MAXIMUM_DAYS ),
3188 
3189       MSII.VMI_FIXED_ORDER_QUANTITY =
3190       DECODE( A_VMI_FIXED_ORDER_QUANTITY,
3191               1, msii_master_temp.VMI_FIXED_ORDER_QUANTITY,
3192               MSII.VMI_FIXED_ORDER_QUANTITY ),
3193 
3194       MSII.SO_AUTHORIZATION_FLAG =
3195       DECODE( A_SO_AUTHORIZATION_FLAG,
3196               1, msii_master_temp.SO_AUTHORIZATION_FLAG,
3197               MSII.SO_AUTHORIZATION_FLAG ),
3198 
3199       MSII.CONSIGNED_FLAG =
3200       DECODE( A_CONSIGNED_FLAG,
3201               1, msii_master_temp.CONSIGNED_FLAG,
3202               MSII.CONSIGNED_FLAG ),
3203 
3204       MSII.ASN_AUTOEXPIRE_FLAG =
3205       DECODE( A_ASN_AUTOEXPIRE_FLAG,
3206               1, msii_master_temp.ASN_AUTOEXPIRE_FLAG,
3207               MSII.ASN_AUTOEXPIRE_FLAG ),
3208 
3209       MSII.VMI_FORECAST_TYPE =
3210       DECODE( A_VMI_FORECAST_TYPE,
3211               1, msii_master_temp.VMI_FORECAST_TYPE,
3212               MSII.VMI_FORECAST_TYPE ),
3213 
3214       MSII.FORECAST_HORIZON =
3215       DECODE( A_FORECAST_HORIZON,
3216               1, msii_master_temp.FORECAST_HORIZON,
3217               MSII.FORECAST_HORIZON ),
3218 
3219       MSII.EXCLUDE_FROM_BUDGET_FLAG =
3220       DECODE( A_EXCLUDE_FROM_BUDGET_FLAG,
3221               1, msii_master_temp.EXCLUDE_FROM_BUDGET_FLAG,
3222               MSII.EXCLUDE_FROM_BUDGET_FLAG ),
3223 
3224       MSII.DAYS_TGT_INV_SUPPLY =
3225       DECODE( A_DAYS_TGT_INV_SUPPLY,
3226               1, msii_master_temp.DAYS_TGT_INV_SUPPLY,
3227               MSII.DAYS_TGT_INV_SUPPLY ),
3228 
3229       MSII.DAYS_TGT_INV_WINDOW =
3230       DECODE( A_DAYS_TGT_INV_WINDOW,
3231               1, msii_master_temp.DAYS_TGT_INV_WINDOW,
3232               MSII.DAYS_TGT_INV_WINDOW ),
3233 
3234       MSII.DAYS_MAX_INV_SUPPLY =
3235       DECODE( A_DAYS_MAX_INV_SUPPLY,
3236               1, msii_master_temp.DAYS_MAX_INV_SUPPLY,
3237               MSII.DAYS_MAX_INV_SUPPLY ),
3238 
3239       MSII.DAYS_MAX_INV_WINDOW =
3240       DECODE( A_DAYS_MAX_INV_WINDOW,
3241               1, msii_master_temp.DAYS_MAX_INV_WINDOW,
3242               MSII.DAYS_MAX_INV_WINDOW ),
3243 
3244       MSII.DRP_PLANNED_FLAG =
3245       DECODE( A_DRP_PLANNED_FLAG,
3246               1, msii_master_temp.DRP_PLANNED_FLAG,
3247               MSII.DRP_PLANNED_FLAG ),
3248 
3249       MSII.CRITICAL_COMPONENT_FLAG =
3250       DECODE( A_CRITICAL_COMPONENT_FLAG,
3251               1, msii_master_temp.CRITICAL_COMPONENT_FLAG,
3252               MSII.CRITICAL_COMPONENT_FLAG ),
3253 
3254       MSII.CONTINOUS_TRANSFER =
3255       DECODE( A_CONTINOUS_TRANSFER,
3256               1, msii_master_temp.CONTINOUS_TRANSFER,
3257               MSII.CONTINOUS_TRANSFER ),
3258 
3259       MSII.CONVERGENCE =
3260       DECODE( A_CONVERGENCE,
3261               1, msii_master_temp.CONVERGENCE,
3262               MSII.CONVERGENCE ),
3263 
3264       MSII.DIVERGENCE =
3265       DECODE( A_DIVERGENCE,
3266               1, msii_master_temp.DIVERGENCE,
3267               MSII.DIVERGENCE ),
3268 /* Start Bug 3713912 */
3269       MSII.LOT_DIVISIBLE_FLAG                =
3270       DECODE( A_LOT_DIVISIBLE_FLAG,
3271               1, msii_master_temp.LOT_DIVISIBLE_FLAG,
3272               MSII.LOT_DIVISIBLE_FLAG ),
3273 
3274 
3275       MSII.GRADE_CONTROL_FLAG                =
3276       DECODE( A_GRADE_CONTROL_FLAG,
3277               1, msii_master_temp.GRADE_CONTROL_FLAG,
3278               MSII.GRADE_CONTROL_FLAG    ),
3279 
3280       MSII.DEFAULT_GRADE                     =
3281       DECODE( A_DEFAULT_GRADE,
3282               1, msii_master_temp.DEFAULT_GRADE,
3283               MSII.DEFAULT_GRADE ),
3284 
3285       MSII.CHILD_LOT_FLAG                    =
3286       DECODE( A_CHILD_LOT_FLAG,
3287               1, msii_master_temp.CHILD_LOT_FLAG,
3288               MSII.CHILD_LOT_FLAG ),
3289 
3290       MSII.PARENT_CHILD_GENERATION_FLAG    =
3291       DECODE( A_PARENT_CHILD_GENERATION_FLAG,
3292               1, msii_master_temp.PARENT_CHILD_GENERATION_FLAG,
3293               MSII.PARENT_CHILD_GENERATION_FLAG ),
3294 
3295       MSII.CHILD_LOT_PREFIX                  =
3296       DECODE( A_CHILD_LOT_PREFIX,
3297               1, msii_master_temp.CHILD_LOT_PREFIX,
3298               MSII.CHILD_LOT_PREFIX ),
3299 
3300       MSII.CHILD_LOT_STARTING_NUMBER         =
3301       DECODE( A_CHILD_LOT_STARTING_NUMBER,
3302               1, msii_master_temp.CHILD_LOT_STARTING_NUMBER,
3303               MSII.CHILD_LOT_STARTING_NUMBER  ),
3304 
3305       MSII.CHILD_LOT_VALIDATION_FLAG         =
3306       DECODE( A_CHILD_LOT_VALIDATION_FLAG,
3307               1, msii_master_temp.CHILD_LOT_VALIDATION_FLAG,
3308               MSII.CHILD_LOT_VALIDATION_FLAG ),
3309 
3310       MSII.COPY_LOT_ATTRIBUTE_FLAG           =
3311       DECODE( A_COPY_LOT_ATTRIBUTE_FLAG,
3312               1, msii_master_temp.COPY_LOT_ATTRIBUTE_FLAG,
3313               MSII.COPY_LOT_ATTRIBUTE_FLAG ),
3314 
3315       MSII.RECIPE_ENABLED_FLAG       =
3316       DECODE( A_RECIPE_ENABLED_FLAG,
3317               1, msii_master_temp.RECIPE_ENABLED_FLAG,
3318               MSII.RECIPE_ENABLED_FLAG ),
3319 
3320       MSII.PROCESS_QUALITY_ENABLED_FLAG    =
3321       DECODE( A_PROCESS_QUALITY_ENABLED_FLAG,
3322               1, msii_master_temp.PROCESS_QUALITY_ENABLED_FLAG,
3323               MSII.PROCESS_QUALITY_ENABLED_FLAG ),
3324 
3325       MSII.PROCESS_EXECUTION_ENABLED_FLAG  =
3326       DECODE( A_PROCESS_EXEC_ENABLED_FLAG,
3327               1, msii_master_temp.PROCESS_EXECUTION_ENABLED_FLAG,
3328               MSII.PROCESS_EXECUTION_ENABLED_FLAG ),
3329 
3330       MSII.PROCESS_COSTING_ENABLED_FLAG    =
3331       DECODE( A_PROCESS_COSTING_ENABLED_FLAG,
3332               1, msii_master_temp.PROCESS_COSTING_ENABLED_FLAG,
3333               MSII.PROCESS_COSTING_ENABLED_FLAG ),
3334 
3335       MSII.HAZARDOUS_MATERIAL_FLAG           =
3336       DECODE( A_HAZARDOUS_MATERIAL_FLAG,
3337               1, msii_master_temp.HAZARDOUS_MATERIAL_FLAG,
3338               MSII.HAZARDOUS_MATERIAL_FLAG ),
3339 
3340       MSII.CAS_NUMBER                        =
3341       DECODE( A_CAS_NUMBER,
3342               1, msii_master_temp.CAS_NUMBER,
3343               MSII.CAS_NUMBER ),
3344 
3345       MSII.RETEST_INTERVAL                   =
3346       DECODE( A_RETEST_INTERVAL,
3347               1, msii_master_temp.RETEST_INTERVAL,
3348               MSII.RETEST_INTERVAL ),
3349 
3350       MSII.EXPIRATION_ACTION_INTERVAL        =
3351       DECODE( A_EXPIRATION_ACTION_INTERVAL,
3352               1, msii_master_temp.EXPIRATION_ACTION_INTERVAL,
3353               MSII.EXPIRATION_ACTION_INTERVAL ),
3354 
3355       MSII.EXPIRATION_ACTION_CODE            =
3356       DECODE( A_EXPIRATION_ACTION_CODE,
3357               1, msii_master_temp.EXPIRATION_ACTION_CODE,
3358               MSII.EXPIRATION_ACTION_CODE ),
3359 
3360       MSII.MATURITY_DAYS                     =
3361       DECODE( A_MATURITY_DAYS,
3362               1, msii_master_temp.MATURITY_DAYS,
3363               MSII.MATURITY_DAYS ),
3364 
3365       MSII.HOLD_DAYS                         =
3366       DECODE( A_HOLD_DAYS,
3367               1, msii_master_temp.HOLD_DAYS,
3368               MSII.HOLD_DAYS ),
3369 /* End Bug 3713912 */
3370       --R12 Enhancement
3371       MSII.CHARGE_PERIODICITY_CODE           =   DECODE( A_CHARGE_PERIODICITY_CODE,1, msii_master_temp.CHARGE_PERIODICITY_CODE,MSII.CHARGE_PERIODICITY_CODE ),
3372       MSII.REPAIR_LEADTIME                   =   DECODE( A_REPAIR_LEADTIME,1, msii_master_temp.REPAIR_LEADTIME,MSII.REPAIR_LEADTIME),
3373       MSII.REPAIR_YIELD                      =   DECODE( A_REPAIR_YIELD,1, msii_master_temp.REPAIR_YIELD,MSII.REPAIR_YIELD),
3374       MSII.PREPOSITION_POINT                 =   DECODE( A_PREPOSITION_POINT, 1, msii_master_temp.PREPOSITION_POINT, MSII.PREPOSITION_POINT),
3375       MSII.REPAIR_PROGRAM                    =   DECODE( A_REPAIR_PROGRAM,1, msii_master_temp.REPAIR_PROGRAM,MSII.REPAIR_PROGRAM),
3376       MSII.SUBCONTRACTING_COMPONENT          =   DECODE( A_SUBCONTRACTING_COMPONENT,1, msii_master_temp.SUBCONTRACTING_COMPONENT,MSII.SUBCONTRACTING_COMPONENT ),
3377       MSII.OUTSOURCED_ASSEMBLY               =   DECODE( A_OUTSOURCED_ASSEMBLY,1, msii_master_temp.OUTSOURCED_ASSEMBLY,MSII.OUTSOURCED_ASSEMBLY),
3378       MSII.ITEM_CATALOG_GROUP_ID             =   msii_master_temp.ITEM_CATALOG_GROUP_ID,--Bug: 3074458
3379       --3637854 Should carry masters' lifecycle.
3380       MSII.LIFECYCLE_ID                      =   msii_master_temp.LIFECYCLE_ID,
3381       MSII.CURRENT_PHASE_ID                  =   DECODE(MSII.LIFECYCLE_ID,msii_master_temp.LIFECYCLE_ID,MSII.CURRENT_PHASE_ID,msii_master_temp.CURRENT_PHASE_ID),
3382       MSII.PROCESS_FLAG                      =   l_process_flag_2,
3383       MSII.GDSN_OUTBOUND_ENABLED_FLAG        =   msii_master_temp.GDSN_OUTBOUND_ENABLED_FLAG,
3384       MSII.TRADE_ITEM_DESCRIPTOR             =   msii_master_temp.TRADE_ITEM_DESCRIPTOR
3385 
3386    WHERE  MSII.inventory_item_id = inv_item_id
3387       AND MSII.organization_id = org_id
3388       AND MSII.set_process_id = xset_id + 1000000000000;
3389 
3390    /* commit for debugging ONLY */
3391    -- commit;
3392 
3393    RETURN (0);
3394 
3395 EXCEPTION
3396 
3397    when NO_DATA_FOUND then
3398       -- No master controlled attributes
3399       return (0);
3400 
3401    when OTHERS then
3402       --bug #4251913 : Included SQLCODE and SQLERRM to trap exception messages.
3403       IF l_inv_debug_level IN(101, 102) THEN
3404          INVPUTLI.info(
3405 	              Substr(
3406 		        'when OTHERS exception raised in copy_master_to_child ' ||
3407 			 SQLCODE ||
3408 			 ' - '   ||
3409 			 SQLERRM,1,240));
3410       END IF;
3411       return (1);
3412 
3413 END copy_master_to_child; -- }
3414 
3415 
3416 FUNCTION validate_item_update_child
3417 (
3418         org_id          NUMBER,
3419         all_org         NUMBER          := 2,
3420         prog_appid      NUMBER          := -1,
3421         prog_id         NUMBER          := -1,
3422         request_id      NUMBER          := -1,
3423         user_id         NUMBER          := -1,
3424         login_id        NUMBER          := -1,
3425         err_text IN OUT NOCOPY VARCHAR2,
3426         xset_id  IN     NUMBER          DEFAULT NULL
3427 )
3428 RETURN INTEGER
3429 IS
3430    CURSOR C_msii_child_records is
3431         select
3432         ROWID,
3433         INVENTORY_ITEM_ID,
3434         ORGANIZATION_ID,
3435         TRANSACTION_ID
3436         from MTL_SYSTEM_ITEMS_INTERFACE
3437         where process_flag = 4
3438         and set_process_id = xset_id
3439         and ((organization_id = org_id) or (all_org = 1))
3440         and organization_id in
3441         (select organization_id
3442         from MTL_PARAMETERS MP
3443         where MP.organization_id <> MP.master_organization_id);
3444 
3445         ret_code_update         NUMBER          := 1;
3446 
3447 	l_inv_debug_level	NUMBER := INVPUTLI.get_debug_level;     --Bug: 4667452
3448 
3449 BEGIN -- {
3450 
3451    IF l_inv_debug_level IN(101, 102) THEN
3452       INVPUTLI.info('INVUPD2B: Inside validate_item_update_child'|| '***orgid: ' || TO_CHAR(org_id));
3453    END IF;
3454 
3455         for crec in C_msii_child_records loop -- {
3456                 -- child record validation here
3457                 ret_code_update := INVUPD2B.update_validations(
3458                                                 crec.ROWID,
3459                                                 crec.ORGANIZATION_ID,
3460                                                 crec.TRANSACTION_ID,
3461                                                 user_id,
3462                                                 login_id,
3463                                                 prog_appid,
3464                                                 prog_id,
3465                                                 request_id);
3466 
3467         end loop; -- }  -- msii loop
3468 
3469    return (0);
3470 
3471 EXCEPTION
3472 
3473    when NO_DATA_FOUND then
3474       return (0);
3475 
3476    -- No child record updates found
3477    when OTHERS then
3478       --bug #4251913 : Included SQLCODE and SQLERRM to trap exception messages.
3479       IF l_inv_debug_level IN(101, 102) THEN
3480          INVPUTLI.info(
3481 		     Substr(
3482 		        'when OTHERS exception raised in validate_item_update_child ' ||
3483 			 SQLCODE ||
3484 			 ' - '   ||
3485 			 SQLERRM,1,240));
3486       END IF;
3487       return (1);
3488 
3489 END validate_item_update_child;
3490 
3491 
3492 FUNCTION update_validations
3493 (
3494    row_id               ROWID,
3495    org_id               NUMBER,
3496    trans_id     NUMBER,
3497    user_id         NUMBER          := -1,
3498    login_id        NUMBER          := -1,
3499    prog_appid      NUMBER          := -1,
3500    prog_id         NUMBER          := -1,
3501    request_id      NUMBER          := -1
3502 )
3503 RETURN INTEGER
3504 IS
3505    msii_temp            mtl_system_items_interface%ROWTYPE;
3506    msi_temp             mtl_system_items_b%ROWTYPE;
3507 
3508    dumm_status          NUMBER;
3509    status               NUMBER;
3510 
3511    onhand_lot NUMBER;
3512    onhand_serial NUMBER;
3513    onhand_shelf NUMBER;
3514    onhand_rev NUMBER;
3515    onhand_loc NUMBER;
3516    onhand_all  NUMBER;
3517    onhand_trackable  NUMBER;
3518    wip_repetitive_item  NUMBER;
3519    rsv_exists NUMBER;
3520    so_rsv NUMBER;
3521    so_ship NUMBER;
3522    so_txn NUMBER;
3523    demand_exists NUMBER;
3524    uom_conv NUMBER;
3525    comp_atp NUMBER;
3526    bom_exists NUMBER;
3527    cost_txn NUMBER;
3528    bom_item NUMBER;
3529    mrp_schedule NUMBER;
3530    null_elem_exists NUMBER;
3531    so_open_exists NUMBER;
3532    fte_vehicle_exists NUMBER;
3533    pendadj_lot NUMBER;
3534    pendadj_loc NUMBER;
3535    pendadj_rev NUMBER;
3536    so_ato NUMBER;
3537    morgid NUMBER;
3538    err_text VARCHAR2(250);
3539    vmiorconsign_enabled  NUMBER;
3540    consign_enabled       NUMBER;
3541    process_enabled       NUMBER;
3542 
3543    /* Start Bug 3713912 */
3544    onhand_tracking_qty_ind            NUMBER;
3545    pendadj_tracking_qty_ind           NUMBER;
3546    onhand_primary_uom                 NUMBER;
3547    pendadj_primary_uom                NUMBER;
3548    onhand_secondary_uom               NUMBER;
3549    pendadj_secondary_uom              NUMBER;
3550    onhand_sec_default_ind             NUMBER;
3551    pendadj_sec_default_ind            NUMBER;
3552    onhand_deviation_high              NUMBER;
3553    pendadj_deviation_high             NUMBER;
3554    onhand_deviation_low               NUMBER;
3555    pendadj_deviation_low              NUMBER;
3556    onhand_child_lot       	NUMBER;
3557    pendadj_child_lot      	NUMBER;
3558    onhand_lot_divisible       	NUMBER;
3559    pendadj_lot_divisible      	NUMBER;
3560    onhand_grade       		NUMBER;
3561    pendadj_grade      		NUMBER;
3562    /* End Bug 3713912 */
3563    l_column_name         VARCHAR2(1000);
3564 /* Bug: 4569555 Commenting out ib_rtn_status and ib_rtn_msg
3565    -- For bug 3580698
3566    ib_rtn_status        VARCHAR2(1);
3567    ib_rtn_msg           VARCHAR2(2000);
3568    -- For bug 3580698
3569    End Bug: 4569555   */
3570    intr_ship_lot      NUMBER;  -- Bug 4387538
3571    intr_ship_serial  NUMBER;  -- Bug 4387538
3572    revision_control  NUMBER;   -- Bug 6501149
3573    stockable         NUMBER;   -- Bug 6501149
3574    lot_control       NUMBER;   -- Bug 6501149
3575    serial_control    NUMBER;   -- Bug 6501149
3576 
3577    l_inv_debug_level	NUMBER := INVPUTLI.get_debug_level;     --Bug: 4667452
3578    l_item_has_lot_comp  NUMBER;
3579 BEGIN
3580 
3581    IF l_inv_debug_level IN(101, 102) THEN
3582       INVPUTLI.info('INVUPD2B: Inside update_validations'|| '***orgid: ' || TO_CHAR(org_id));
3583    END IF;
3584    -- initialize status = 0
3585    status := 0;
3586 
3587    -- msii (updated to)
3588    select *
3589      into msii_temp
3590      from MTL_SYSTEM_ITEMS_INTERFACE MSII
3591     where MSII.rowid = row_id;
3592 
3593    -- msi (updated from)
3594    select *
3595      into msi_temp
3596      from MTL_SYSTEM_ITEMS_B MSI
3597      where MSI.organization_id = msii_temp.organization_id
3598       and msi.inventory_item_id = msii_temp.inventory_item_id ;
3599 
3600         select master_organization_id
3601         into morgid
3602         from MTL_PARAMETERS
3603         where organization_id = msii_temp.organization_id;
3604 
3605    -- Start : 6531911
3606 	IF msi_temp.lot_control_code <> msii_temp.lot_control_code THEN
3607 	   onhand_lot := 0;
3608 	ELSE
3609 	   onhand_lot := NULL;
3610 	END IF;
3611 
3612 	IF msi_temp.lot_control_code <> msii_temp.lot_control_code THEN
3613 	   onhand_lot    := 0;
3614 	   intr_ship_lot := 0;
3615 	ELSE
3616 	   onhand_lot    := NULL;
3617 	   intr_ship_lot := NULL;
3618 	END IF;
3619 
3620 
3621 	IF msi_temp.child_lot_flag <> msii_temp.child_lot_flag THEN
3622 	   onhand_child_lot  := 0;
3623 	   pendadj_child_lot := 0;
3624 	ELSE
3625 	   onhand_child_lot  := NULL;
3626 	   pendadj_child_lot := NULL;
3627 	END IF;
3628 
3629 
3630 	IF msi_temp.grade_control_flag <> msii_temp.grade_control_flag THEN
3631 	   onhand_grade  := 0;
3632 	   pendadj_grade := 0;
3633 	ELSE
3634 	   onhand_grade  := NULL;
3635 	   pendadj_grade := NULL;
3636 	END IF;
3637 
3638 	IF msi_temp.lot_divisible_flag <> msii_temp.lot_divisible_flag THEN
3639 	   onhand_lot_divisible  := 0;
3640 	   pendadj_lot_divisible :=0;
3641 	ELSE
3642 	   onhand_lot_divisible  := NULL;
3643 	   pendadj_lot_divisible := NULL;
3644 	END IF;
3645 
3646 	IF  (msi_temp.SHELF_LIFE_CODE <> msii_temp.SHELF_LIFE_CODE)
3647 	AND ((msi_temp.SHELF_LIFE_CODE  = 1) OR (msii_temp.SHELF_LIFE_CODE = 1))
3648 	THEN
3649 	   onhand_shelf := 0;
3650 	ELSE
3651 	   onhand_shelf := NULL;
3652 	END IF;
3653 
3654 	IF msi_temp.LOCATION_CONTROL_CODE <> msii_temp.LOCATION_CONTROL_CODE THEN
3655 	  onhand_loc  := 0;
3656 	  pendadj_loc := 0;
3657 	ELSE
3658 	  onhand_loc  := NULL;
3659 	  pendadj_loc := NULL;
3660 	END IF;
3661 
3662 	IF ((msi_temp.reservable_type = 1) and (msii_temp.reservable_type <> 1))
3663 	OR ((msi_temp.reservable_type = 2) and (msii_temp.reservable_type = 1))
3664 	THEN
3665 	    rsv_exists := 0;
3666 	ELSE
3667 	    rsv_exists := NULL;
3668 	END IF;
3669 
3670 	IF msi_temp.SHIPPABLE_ITEM_FLAG <> msii_temp.SHIPPABLE_ITEM_FLAG THEN
3671 	   so_ship := 0;
3672 	ELSE
3673 	   so_ship := NULL;
3674 	END IF;
3675 
3676 	IF msi_temp.REPLENISH_TO_ORDER_FLAG <> msii_temp.REPLENISH_TO_ORDER_FLAG THEN
3677 	   so_ato := 0;
3678 	ELSE
3679 	   so_ato := NULL;
3680 	END IF;
3681 
3682 	IF msi_temp.REVISION_QTY_CONTROL_CODE <> msii_temp.REVISION_QTY_CONTROL_CODE THEN
3683 	   onhand_rev  := 0;
3684 	   pendadj_rev := 0;
3685 	ELSE
3686 	   onhand_rev  := NULL;
3687 	   pendadj_rev := NULL;
3688 	END IF;
3689 
3690 	IF ((msi_temp.SERIAL_NUMBER_CONTROL_CODE in (1,6) and msii_temp.SERIAL_NUMBER_CONTROL_CODE in (2,5))
3691 	OR (msi_temp.SERIAL_NUMBER_CONTROL_CODE in (2,5) and msii_temp.SERIAL_NUMBER_CONTROL_CODE in (1,6)))
3692 	THEN
3693 	   onhand_serial    := 0;
3694 	   intr_ship_serial := 0;
3695 	ELSE
3696 	   onhand_serial := NULL;
3697 	   intr_ship_serial := NULL;
3698 	END IF;
3699 
3700 	IF msi_temp.bom_item_type <> msii_temp.bom_item_type
3701 	OR msi_temp.effectivity_control <> msii_temp.effectivity_control
3702 	THEN
3703 	   bom_item := 0;
3704 	ELSE
3705 	   bom_item := NULL;
3706 	END IF;
3707 
3708 	IF msii_temp.bom_item_type = 5 THEN
3709 	   bom_exists     := 0;
3710 	   so_open_exists := 0;
3711 	ELSE
3712 	   bom_exists      := NULL;
3713 	   so_open_exists  := NULL;
3714 	END IF;
3715 
3716 	IF msi_temp.costing_enabled_flag <> msii_temp.costing_enabled_flag
3717 	OR msi_temp.inventory_asset_flag <> msii_temp.inventory_asset_flag
3718 	THEN
3719 	   cost_txn := 0;
3720 	ELSE
3721 	   cost_txn := NULL;
3722 	END IF;
3723 
3724 	IF msi_temp.effectivity_control <> msii_temp.effectivity_control THEN
3725 	   onhand_all := 0;
3726 	ELSE
3727 	   onhand_all := NULL;
3728 	END IF;
3729 
3730 	IF msii_temp.vehicle_item_flag <> 'Y' THEN
3731 	  fte_vehicle_exists := 0;
3732 	ELSE
3733 	  fte_vehicle_exists := NULL;
3734 	END IF;
3735 
3736 	IF NVL(msii_temp.COMMS_NL_TRACKABLE_FLAG,'N') <> NVL(msi_temp.COMMS_NL_TRACKABLE_FLAG,'N') THEN
3737 	   onhand_trackable := 0;
3738 	ELSE
3739 	   onhand_trackable := NULL;
3740 	END IF;
3741 	vmiorconsign_enabled := 0;
3742 	IF msi_temp.TRACKING_QUANTITY_IND <> msii_temp.TRACKING_QUANTITY_IND THEN
3743 	   onhand_tracking_qty_ind  := 0;
3744 	   pendadj_tracking_qty_ind := 0;
3745 	ELSE
3746 	   onhand_tracking_qty_ind  := NULL;
3747 	   pendadj_tracking_qty_ind := NULL;
3748 	END IF;
3749 
3750 	IF msi_temp.SECONDARY_UOM_CODE <> msii_temp.SECONDARY_UOM_CODE THEN
3751 	   onhand_secondary_uom    := 0;
3752 	   pendadj_secondary_uom   := 0;
3753 	ELSE
3754 	   onhand_secondary_uom    := NULL;
3755 	   pendadj_secondary_uom   := NULL;
3756 	END IF;
3757 
3758 	IF msi_temp.SECONDARY_DEFAULT_IND <> msii_temp.SECONDARY_DEFAULT_IND THEN
3759 	   onhand_sec_default_ind  := 0;
3760 	   pendadj_sec_default_ind := 0;
3761 	ELSE
3762 	   onhand_sec_default_ind  := NULL;
3763 	   pendadj_sec_default_ind := NULL;
3764 	END IF;
3765 
3766 	IF msi_temp.PRIMARY_UOM_CODE <> msii_temp.PRIMARY_UOM_CODE THEN
3767 	   onhand_primary_uom  := 0;
3768 	   pendadj_primary_uom := 0;
3769 	ELSE
3770 	   onhand_primary_uom  := NULL;
3771 	   pendadj_primary_uom := NULL;
3772 	END IF;
3773 
3774 	IF msi_temp.DUAL_UOM_DEVIATION_HIGH <> msii_temp.DUAL_UOM_DEVIATION_HIGH THEN
3775 	   onhand_deviation_high  :=0;
3776 	   pendadj_deviation_high :=0;
3777 	ELSE
3778 	   onhand_deviation_high  :=NULL;
3779 	   pendadj_deviation_high :=NULL;
3780 	END IF;
3781 
3782 	IF msi_temp.DUAL_UOM_DEVIATION_LOW <> msii_temp.DUAL_UOM_DEVIATION_LOW THEN
3783 	   onhand_deviation_low  := 0;
3784 	   pendadj_deviation_low := 0;
3785 	ELSE
3786 	   onhand_deviation_low  := NULL;
3787 	   pendadj_deviation_low := NULL;
3788 	END IF;
3789    -- END   : 6531911
3790 
3791    INVIDIT3.Table_Queries(
3792         p_org_id                     => msii_temp.organization_id,
3793         p_item_id                    => msii_temp.inventory_item_id,
3794         p_master_org                 => morgid,
3795         p_primary_uom_code           => msii_temp.primary_uom_code,
3796         p_catalog_group_id           => msii_temp.item_catalog_group_id,
3797         p_calling_routine            => 'IOI',
3798         X_onhand_lot                 => onhand_lot,
3799         X_onhand_serial              => onhand_serial,
3800         X_onhand_shelf               => onhand_shelf,
3801         X_onhand_rev                 => onhand_rev,
3802         X_onhand_loc                 => onhand_loc,
3803         X_onhand_all                 => onhand_all,
3804         X_onhand_trackable           => onhand_trackable,
3805         X_wip_repetitive_item        => wip_repetitive_item,
3806         X_rsv_exists                 => rsv_exists,
3807         X_so_rsv                     => so_rsv,
3808         X_so_ship                    => so_ship,
3809         X_so_txn                     => so_txn,
3810         X_demand_exists              => demand_exists,
3811         X_uom_conv                   => uom_conv,
3812         X_comp_atp                   => comp_atp,
3813         X_bom_exists                 => bom_exists,
3814         X_cost_txn                   => cost_txn,
3815         X_bom_item                   => bom_item,
3816         X_mrp_schedule               => mrp_schedule,
3817         X_null_elem_exists           => null_elem_exists,
3818         X_so_open_exists             => so_open_exists,
3819         X_fte_vechicle_exists        => fte_vehicle_exists,    --Bug:2691174
3820         X_pendadj_lot                => pendadj_lot ,           -- Bug 3058650
3821         X_pendadj_rev                => pendadj_rev,           -- Bug 3058650
3822         X_pendadj_loc                => pendadj_loc,           -- Bug 3058650
3823         X_so_ato                     => so_ato,           -- Bug 3058650
3824         X_vmiorconsign_enabled       => vmiorconsign_enabled,
3825         X_consign_enabled            => consign_enabled,
3826         X_process_enabled            => process_enabled,
3827         X_onhand_tracking_qty_ind    => onhand_tracking_qty_ind,
3828         X_pendadj_tracking_qty_ind   => pendadj_tracking_qty_ind,
3829         X_onhand_primary_uom         => onhand_primary_uom,
3830         X_pendadj_primary_uom        => pendadj_primary_uom,
3831         X_onhand_secondary_uom       => onhand_secondary_uom,
3832         X_pendadj_secondary_uom      => pendadj_secondary_uom,
3833         X_onhand_sec_default_ind     => onhand_sec_default_ind,
3834         X_pendadj_sec_default_ind    => pendadj_sec_default_ind,
3835         X_onhand_deviation_high      => onhand_deviation_high,
3836         X_pendadj_deviation_high     => pendadj_deviation_high,
3837         X_onhand_deviation_low       => onhand_deviation_low,
3838         X_pendadj_deviation_low      => pendadj_deviation_low,
3839         X_onhand_child_lot           => onhand_child_lot,
3840         X_pendadj_child_lot          => pendadj_child_lot,
3841         X_onhand_lot_divisible       => onhand_lot_divisible,
3842         X_pendadj_lot_divisible      => pendadj_lot_divisible,
3843         X_onhand_grade               => onhand_grade,
3844         X_pendadj_grade              => pendadj_grade,
3845         X_intr_ship_lot              => intr_ship_lot,
3846         X_intr_ship_serial           => intr_ship_serial,
3847         X_revision_control           => revision_control,  -- Bug 6501149
3848         X_stockable                  => stockable,         -- Bug 6501149
3849         X_lot_control                => lot_control,       -- Bug 6501149
3850         X_serial_control             => serial_control     -- Bug 6501149
3851         );
3852 
3853    IF l_inv_debug_level IN(101, 102) THEN
3854       INVPUTLI.info('INVUPD2B: Inside update_validations: After Table Quries');
3855    END IF;
3856    -- validate LOT_CONTROL_CODE
3857    -- cannot update if there is onhand or transactions pending or lots exist
3858    if (msi_temp.lot_control_code <> msii_temp.lot_control_code) AND (onhand_lot = 1) then
3859       dumm_status  := INVPUOPI.mtl_log_interface_err(
3860                                                      org_id,
3861                                                      user_id,
3862                                                      login_id,
3863                                                      prog_appid,
3864                                                      prog_id,
3865                                                      request_id,
3866                                                      trans_id,
3867                                                      err_text,
3868                                                      'LOT_CONTROL_CODE',
3869                                                      'MTL_SYSTEM_ITEMS_INTERFACE',
3870                                                      'INV_LOT_QOH_CANNOT_UPDATE',
3871                                                      err_text);
3872 
3873       dumm_status := INVUPD2B.set_process_flag3(row_id,user_id,login_id,prog_appid,prog_id,request_id);
3874 
3875 /* Bug 3058650 : Validation added as part of Item attribute checks ER */
3876    elsif (msi_temp.lot_control_code <> msii_temp.lot_control_code) AND (pendadj_lot = 1) then
3877       dumm_status  := INVPUOPI.mtl_log_interface_err(
3878                                                      org_id,
3879                                                      user_id,
3880                                                      login_id,
3881                                                      prog_appid,
3882                                                      prog_id,
3883                                                      request_id,
3884                                                      trans_id,
3885                                                      err_text,
3886                                                      'LOT_CONTROL_CODE',
3887                                                      'MTL_SYSTEM_ITEMS_INTERFACE',
3888                                                      'INV_PENDING_ADJUSTMENT',
3889                                                      err_text);
3890 
3891       dumm_status := INVUPD2B.set_process_flag3(row_id,user_id,login_id,prog_appid,prog_id,request_id);
3892 
3893 /* End Bug 3058650 */
3894    elsif (msi_temp.lot_control_code <> msii_temp.lot_control_code) AND (intr_ship_lot = 1) then -- Bug 4387538
3895       dumm_status  := INVPUOPI.mtl_log_interface_err(
3896                                                      org_id,
3897                                                      user_id,
3898                                                      login_id,
3899                                                      prog_appid,
3900                                                      prog_id,
3901                                                      request_id,
3902                                                      trans_id,
3903                                                      err_text,
3904                                                      'LOT_CONTROL_CODE',
3905                                                      'MTL_SYSTEM_ITEMS_INTERFACE',
3906                                                      'INV_INTRANSIT_CANNOT_UPDATE',
3907                                                      err_text);
3908 
3909       dumm_status := INVUPD2B.set_process_flag3(row_id,user_id,login_id,prog_appid,prog_id,request_id);
3910      /*Bug 6501149 Added code */
3911    elsif (msi_temp.lot_control_code <> msii_temp.lot_control_code) AND (lot_control = 1) then
3912       dumm_status  := INVPUOPI.mtl_log_interface_err(
3913                                                       org_id,
3914                                                       user_id,
3915                                                       login_id,
3916                                                       prog_appid,
3917                                                       prog_id,
3918                                                       request_id,
3919                                                       trans_id,
3920                                                       err_text,
3921                                                       'LOT_CONTROL_CODE',
3922                                                       'MTL_SYSTEM_ITEMS_INTERFACE',
3923                                                       'INV_DELIVER_CANNOT_UPDATE',
3924                                                       err_text);
3925 
3926       dumm_status := INVUPD2B.set_process_flag3(row_id,user_id,login_id,prog_appid,prog_id,request_id);
3927      /* Bug 6501149 Code ended */
3928    end if;
3929 
3930    /* Start Bug 3713912 */
3931    -- validate CHILD_LOT_FLAG
3932    -- cannot update if there is onhand or transactions pending or lots exist
3933    if (msi_temp.child_lot_flag <> msii_temp.child_lot_flag) AND (onhand_child_lot = 1) then
3934       dumm_status  := INVPUOPI.mtl_log_interface_err(
3935                                                      org_id,
3936                                                      user_id,
3937                                                      login_id,
3938                                                      prog_appid,
3939                                                      prog_id,
3940                                                      request_id,
3941                                                      trans_id,
3942                                                      err_text,
3943                                                      'CHILD_LOT_FLAG',
3944                                                      'MTL_SYSTEM_ITEMS_INTERFACE',
3945                                                      'INV_LOT_QOH_CANNOT_UPDATE',
3946                                                      err_text);
3947 
3948       dumm_status := INVUPD2B.set_process_flag3(row_id,user_id,login_id,prog_appid,prog_id,request_id);
3949 
3950    elsif (msi_temp.child_lot_flag <> msii_temp.child_lot_flag) AND (pendadj_child_lot = 1) then
3951       dumm_status  := INVPUOPI.mtl_log_interface_err(
3952                                                      org_id,
3953                                                      user_id,
3954                                                      login_id,
3955                                                      prog_appid,
3956                                                      prog_id,
3957                                                      request_id,
3958                                                      trans_id,
3959                                                      err_text,
3960                                                      'CHILD_LOT_FLAG',
3961                                                      'MTL_SYSTEM_ITEMS_INTERFACE',
3962                                                      'INV_PENDING_ADJUSTMENT',
3963                                                      err_text);
3964 
3965       dumm_status := INVUPD2B.set_process_flag3(row_id,user_id,login_id,prog_appid,prog_id,request_id);
3966 
3967    end if;
3968 
3969    -- validate GRADE_CONTROL_FLAG
3970    -- cannot update if there is onhand or transactions pending or lots exist
3971    if (msi_temp.grade_control_flag <> msii_temp.grade_control_flag) AND (onhand_grade = 1) then
3972       dumm_status  := INVPUOPI.mtl_log_interface_err(
3973                                                      org_id,
3974                                                      user_id,
3975                                                      login_id,
3976                                                      prog_appid,
3977                                                      prog_id,
3978                                                      request_id,
3979                                                      trans_id,
3980                                                      err_text,
3981                                                      'GRADE_CONTROL_FLAG',
3982                                                      'MTL_SYSTEM_ITEMS_INTERFACE',
3983                                                      'INV_LOT_QOH_CANNOT_UPDATE',
3984                                                      err_text);
3985 
3986       dumm_status := INVUPD2B.set_process_flag3(row_id,user_id,login_id,prog_appid,prog_id,request_id);
3987 
3988    elsif (msi_temp.grade_control_flag <> msii_temp.grade_control_flag) AND (pendadj_grade = 1) then
3989       dumm_status  := INVPUOPI.mtl_log_interface_err(
3990                                                      org_id,
3991                                                      user_id,
3992                                                      login_id,
3993                                                      prog_appid,
3994                                                      prog_id,
3995                                                      request_id,
3996                                                      trans_id,
3997                                                      err_text,
3998                                                      'GRADE_CONTROL_FLAG',
3999                                                      'MTL_SYSTEM_ITEMS_INTERFACE',
4000                                                      'INV_PENDING_ADJUSTMENT',
4001                                                      err_text);
4002 
4003       dumm_status := INVUPD2B.set_process_flag3(row_id,user_id,login_id,prog_appid,prog_id,request_id);
4004 
4005    end if;
4006 
4007    -- validate LOT_DIVISIBLE_FLAG
4008    -- cannot update if there is onhand or transactions pending or lots exist
4009    if (msi_temp.lot_divisible_flag <> msii_temp.lot_divisible_flag) AND (onhand_lot_divisible = 1) then
4010       dumm_status  := INVPUOPI.mtl_log_interface_err(
4011                                                      org_id,
4012                                                      user_id,
4013                                                      login_id,
4014                                                      prog_appid,
4015                                                      prog_id,
4016                                                      request_id,
4017                                                      trans_id,
4018                                                      err_text,
4019                                                      'LOT_DIVISIBLE_FLAG',
4020                                                      'MTL_SYSTEM_ITEMS_INTERFACE',
4021                                                      'INV_LOT_QOH_CANNOT_UPDATE',
4022                                                      err_text);
4023 
4024       dumm_status := INVUPD2B.set_process_flag3(row_id,user_id,login_id,prog_appid,prog_id,request_id);
4025 
4026    elsif (msi_temp.lot_divisible_flag <> msii_temp.lot_divisible_flag) AND (pendadj_lot_divisible = 1) then
4027       dumm_status  := INVPUOPI.mtl_log_interface_err(
4028                                                      org_id,
4029                                                      user_id,
4030                                                      login_id,
4031                                                      prog_appid,
4032                                                      prog_id,
4033                                                      request_id,
4034                                                      trans_id,
4035                                                      err_text,
4036                                                      'LOT_DIVISIBLE_FLAG',
4037                                                      'MTL_SYSTEM_ITEMS_INTERFACE',
4038                                                      'INV_PENDING_ADJUSTMENT',
4039                                                      err_text);
4040 
4041       dumm_status := INVUPD2B.set_process_flag3(row_id,user_id,login_id,prog_appid,prog_id,request_id);
4042 
4043    end if;
4044 
4045    -- validate SHELF_LIFE_CODE
4046    -- cannot update if there is onhand or transactions pending or lots exist
4047    -- cannot change from 1 (no control) if qty onhand or txns pending
4048    -- cannot change from 2, 4 to 1 if qty onhand or txns pending
4049    -- ok to change between 2 and 4
4050    if     (msi_temp.SHELF_LIFE_CODE <> msii_temp.SHELF_LIFE_CODE)
4051       AND (    (msi_temp.SHELF_LIFE_CODE  = 1)
4052             OR (msii_temp.SHELF_LIFE_CODE = 1)
4053           )
4054       AND (onhand_shelf = 1) then
4055       dumm_status  := INVPUOPI.mtl_log_interface_err(
4056                                                      org_id,
4057                                                      user_id,
4058                                                      login_id,
4059                                                      prog_appid,
4060                                                      prog_id,
4061                                                      request_id,
4062                                                      trans_id,
4063                                                      err_text,
4064                                                      'SHELF_LIFE_CODE',
4065                                                      'MTL_SYSTEM_ITEMS_INTERFACE',
4066                                                      'INV_LOT_QOH_CANNOT_UPDATE',
4067                                                      err_text);
4068 
4069       dumm_status := INVUPD2B.set_process_flag3(row_id,user_id,login_id,prog_appid,prog_id,request_id);
4070    end if;
4071 
4072    /* End Bug 3713912 */
4073 
4074 /* Bug 3058650 : Validation added as part of Item attribute checks ER */
4075 
4076    -- validate LOCATOR_CONTROL_CODE
4077    -- cannot update if there is onhand or transactions pending
4078    if (msi_temp.LOCATION_CONTROL_CODE <> msii_temp.LOCATION_CONTROL_CODE) AND (onhand_loc = 1) then
4079       dumm_status  := INVPUOPI.mtl_log_interface_err(
4080                                                      org_id,
4081                                                      user_id,
4082                                                      login_id,
4083                                                      prog_appid,
4084                                                      prog_id,
4085                                                      request_id,
4086                                                      trans_id,
4087                                                      err_text,
4088                                                      'LOCATION_CONTROL_CODE',
4089                                                      'MTL_SYSTEM_ITEMS_INTERFACE',
4090                                                      'INV_LOC_CONTROL_CODE_ERR',
4091                                                      err_text);
4092 
4093       dumm_status := INVUPD2B.set_process_flag3(row_id,user_id,login_id,prog_appid,prog_id,request_id);
4094 
4095    elsif (msi_temp.LOCATION_CONTROL_CODE <> msii_temp.LOCATION_CONTROL_CODE) AND (pendadj_loc = 1) then
4096       dumm_status  := INVPUOPI.mtl_log_interface_err(
4097                                                      org_id,
4098                                                      user_id,
4099                                                      login_id,
4100                                                      prog_appid,
4101                                                      prog_id,
4102                                                      request_id,
4103                                                      trans_id,
4104                                                      err_text,
4105                                                      'LOCATION_CONTROL_CODE',
4106                                                      'MTL_SYSTEM_ITEMS_INTERFACE',
4107                                                      'INV_PENDING_ADJUSTMENT',
4108                                                      err_text);
4109 
4110       dumm_status := INVUPD2B.set_process_flag3(row_id,user_id,login_id,prog_appid,prog_id,request_id);
4111 
4112 /* End Bug 3058650 */
4113 
4114    end if;
4115 
4116    -- validate RESERVABLE_TYPE
4117    -- cannot update from 1 (reservable) if rows exist in mtl_demand
4118 
4119    if (msi_temp.reservable_type = 1) and (msii_temp.reservable_type <> 1) and (rsv_exists = 1) then
4120       dumm_status  := INVPUOPI.mtl_log_interface_err(
4121                                                      org_id,
4122                                                      user_id,
4123                                                      login_id,
4124                                                      prog_appid,
4125                                                      prog_id,
4126                                                      request_id,
4127                                                      trans_id,
4128                                                      err_text,
4129                                                      'RESERVABLE_TYPE',
4130                                                      'MTL_SYSTEM_ITEMS_INTERFACE',
4131                                                      'INV_RESERVABLE_TYPE_ERR',
4132                                                      err_text);
4133 
4134       dumm_status := INVUPD2B.set_process_flag3(row_id,user_id,login_id,prog_appid,prog_id,request_id);
4135    end if;
4136 
4137 /* Bug 3058650 : Validation added as part of Item attribute checks ER */
4138 
4139    if (msi_temp.reservable_type = 2) and (msii_temp.reservable_type = 1) and (rsv_exists <> 1) then
4140 
4141       if (INV_ATTRIBUTE_CONTROL_PVT.reservable_check(msii_temp.organization_id,
4142                                   msii_temp.inventory_item_id)) then
4143       dumm_status  := INVPUOPI.mtl_log_interface_err(
4144                                                      org_id,
4145                                                      user_id,
4146                                                      login_id,
4147                                                      prog_appid,
4148                                                      prog_id,
4149                                                      request_id,
4150                                                      trans_id,
4151                                                      err_text,
4152                                                      'RESERVABLE_TYPE',
4153                                                      'MTL_SYSTEM_ITEMS_INTERFACE',
4154                                                      'INV_RESERVABLE_NO_YES',
4155                                                      err_text);
4156       dumm_status := INVUPD2B.set_process_flag3(row_id,user_id,login_id,prog_appid,prog_id,request_id);
4157    end if;
4158    end if;
4159 
4160 
4161 /* End Bug 3058650 */
4162 
4163 /* Bug 3058650 : Validation added as part of Item attribute checks ER */
4164 
4165    -- validate TRANSACTIONS_ENABLED_FLAG
4166    -- cannot update if there are Open sales order lines
4167 
4168    if (msi_temp.mtl_transactions_enabled_flag = 'Y') and (msii_temp.mtl_transactions_enabled_flag = 'N')  then
4169 
4170       if (INV_ATTRIBUTE_CONTROL_PVT.transactable_uncheck(msii_temp.organization_id, msii_temp.inventory_item_id)) then
4171       dumm_status  := INVPUOPI.mtl_log_interface_err(
4172                                                      org_id,
4173                                                      user_id,
4174                                                      login_id,
4175                                                      prog_appid,
4176                                                      prog_id,
4177                                                      request_id,
4178                                                      trans_id,
4179                                                      err_text,
4180                                              'TRANSACTIONS_ENABLED_FLAG',
4181                                              'MTL_SYSTEM_ITEMS_INTERFACE',
4182                                              'INV_TRANSACTABLE_YES_NO',
4183                                                      err_text);
4184       dumm_status := INVUPD2B.set_process_flag3(row_id,user_id,login_id,prog_appid,prog_id,request_id);
4185    end if;
4186 
4187    end if;
4188 /* End Bug 3058650 */
4189 
4190 /* Bug 3058650 : Validation added as part of Item attribute checks ER */
4191 
4192    -- validate SHIPPABLE_ITEM_FLAG
4193    -- cannot update if there are Open sales order lines
4194 
4195    if (msi_temp.SHIPPABLE_ITEM_FLAG <> msii_temp.SHIPPABLE_ITEM_FLAG) and
4196       (so_ship = 1)  then
4197 
4198       dumm_status  := INVPUOPI.mtl_log_interface_err(
4199                                                      org_id,
4200                                                      user_id,
4201                                                      login_id,
4202                                                      prog_appid,
4203                                                      prog_id,
4204                                                      request_id,
4205                                                      trans_id,
4206                                                      err_text,
4207                                              'SHIPPABLE_ITEM_FLAG',
4208                                              'MTL_SYSTEM_ITEMS_INTERFACE',
4209                                              'INV_OPEN_SO',
4210                                              err_text);
4211       dumm_status := INVUPD2B.set_process_flag3(row_id,user_id,login_id,prog_appid,prog_id,request_id);
4212   elsif (msi_temp.SHIPPABLE_ITEM_FLAG = 'N' ) and (msii_temp.SHIPPABLE_ITEM_FLAG = 'Y') then
4213       if (INV_ATTRIBUTE_CONTROL_PVT.shippable_check(msii_temp.organization_id,
4214                                   msii_temp.inventory_item_id)) then
4215       dumm_status  := INVPUOPI.mtl_log_interface_err(
4216                                                      org_id,
4217                                                      user_id,
4218                                                      login_id,
4219                                                      prog_appid,
4220                                                      prog_id,
4221                                                      request_id,
4222                                                      trans_id,
4223                                                      err_text,
4224                                              'SHIPPABLE_ITEM_FLAG',
4225                                              'MTL_SYSTEM_ITEMS_INTERFACE',
4226                                              'INV_TRANSACTABLE_NO_YES',
4227                                                      err_text);
4228       dumm_status := INVUPD2B.set_process_flag3(row_id,user_id,login_id,prog_appid,prog_id,request_id);
4229       end if;
4230   end if;
4231 
4232 /* End Bug 3058650 */
4233 
4234 /* Bug 3058650 : Validation added as part of Item attribute checks ER */
4235 
4236    -- validate REPLENISH_TO_ORDER_FLAG
4237    -- cannot update if there are Open sales order lines
4238 
4239    if (msi_temp.REPLENISH_TO_ORDER_FLAG <> msii_temp.REPLENISH_TO_ORDER_FLAG) and (so_ato = 1)  then
4240 
4241       dumm_status  := INVPUOPI.mtl_log_interface_err(
4242                                                      org_id,
4243                                                      user_id,
4244                                                      login_id,
4245                                                      prog_appid,
4246                                                      prog_id,
4247                                                      request_id,
4248                                                      trans_id,
4249                                                      err_text,
4250                                              'REPLENISH_TO_ORDER_FLAG',
4251                                              'MTL_SYSTEM_ITEMS_INTERFACE',
4252                                              'INV_ATO_YES_NO',
4253                                              err_text);
4254       dumm_status := INVUPD2B.set_process_flag3(row_id,user_id,login_id,prog_appid,prog_id,request_id);
4255    end if;
4256 
4257 /* End Bug 3058650 */
4258 
4259    -- validate REVISION_QTY_CONTROL_CODE
4260    -- cannot update if there is onhand or transactions pending
4261 
4262    if (msi_temp.REVISION_QTY_CONTROL_CODE <> msii_temp.REVISION_QTY_CONTROL_CODE) AND (onhand_rev = 1) then
4263       dumm_status  := INVPUOPI.mtl_log_interface_err(
4264                                                      org_id,
4265                                                      user_id,
4266                                                      login_id,
4267                                                      prog_appid,
4268                                                      prog_id,
4269                                                      request_id,
4270                                                      trans_id,
4271                                                      err_text,
4272                                              'REVISION_QTY_CONTROL_CODE',
4273                                              'MTL_SYSTEM_ITEMS_INTERFACE',
4274                                              'INV_REV_QTY_CNTRL_CODE_ERR',
4275                                                      err_text);
4276 
4277       dumm_status := INVUPD2B.set_process_flag3(row_id,user_id,login_id,prog_appid,prog_id,request_id);
4278  /*Bug 6501149 Code starts */
4279    elsif (msi_temp.REVISION_QTY_CONTROL_CODE <> msii_temp.REVISION_QTY_CONTROL_CODE) AND (revision_control = 1) then
4280          dumm_status  := INVPUOPI.mtl_log_interface_err(
4281                                                         org_id,
4282                                                         user_id,
4283                                                         login_id,
4284                                                         prog_appid,
4285                                                         prog_id,
4286                                                         request_id,
4287                                                         trans_id,
4288                                                         err_text,
4289                                                 'REVISION_QTY_CONTROL_CODE',
4290                                                 'MTL_SYSTEM_ITEMS_INTERFACE',
4291                                                 'INV_DELIVER_CANNOT_UPDATE',
4292                                                         err_text);
4293 	dumm_status := INVUPD2B.set_process_flag3(row_id,user_id,login_id,prog_appid,prog_id,request_id);
4294    /*Bug 6501149 Code ends */
4295 
4296 /* Bug 3058650 : Validation added as part of Item attribute checks ER */
4297    elsif (msi_temp.REVISION_QTY_CONTROL_CODE <> msii_temp.REVISION_QTY_CONTROL_CODE) AND (pendadj_rev = 1) then
4298       dumm_status  := INVPUOPI.mtl_log_interface_err(
4299                                                      org_id,
4300                                                      user_id,
4301                                                      login_id,
4302                                                      prog_appid,
4303                                                      prog_id,
4304                                                      request_id,
4305                                                      trans_id,
4306                                                      err_text,
4307                                              'REVISION_QTY_CONTROL_CODE',
4308                                              'MTL_SYSTEM_ITEMS_INTERFACE',
4309                                              'INV_PENDING_ADJUSTMENT',
4310                                                      err_text);
4311 
4312       dumm_status := INVUPD2B.set_process_flag3(row_id,user_id,login_id,prog_appid,prog_id,request_id);
4313 /* End Bug 3058650 */
4314    end if;
4315 
4316 
4317 /* Bug 3058650 : Validation added as part of Item attribute checks ER */
4318 
4319    -- validate SERIAL_NUMBER_CONTROL_CODE
4320    -- cannot change from 1,6 to 2,5  if there is On hand
4321    -- Cannot change from 1 to 2,5,6 if there are Sales order lines
4322    -- or when there are open internal order or interorg intransit shipments - Bug 4387538
4323    if ((msi_temp.SERIAL_NUMBER_CONTROL_CODE in (1,6) and
4324       msii_temp.SERIAL_NUMBER_CONTROL_CODE in (2,5)) and
4325       (onhand_serial = 1))or
4326       ((msi_temp.SERIAL_NUMBER_CONTROL_CODE in (2,5) and msii_temp.SERIAL_NUMBER_CONTROL_CODE in (1,6)) and
4327       (onhand_serial = 1))  then
4328 
4329       dumm_status  := INVPUOPI.mtl_log_interface_err(
4330                                                      org_id,
4331                                                      user_id,
4332                                                      login_id,
4333                                                      prog_appid,
4334                                                      prog_id,
4335                                                      request_id,
4336                                                      trans_id,
4337                                                      err_text,
4338                                              'SERIAL_NUMBER_CONTROL_CODE',
4339                                              'MTL_SYSTEM_ITEMS_INTERFACE',
4340                                              'INV_QTY_ON_HAND',
4341                                              err_text);
4342       dumm_status := INVUPD2B.set_process_flag3(row_id,user_id,login_id,prog_appid,prog_id,request_id);
4343    elsif (msi_temp.SERIAL_NUMBER_CONTROL_CODE  = 1 and
4344       msii_temp.SERIAL_NUMBER_CONTROL_CODE in (2,5,6))then
4345 
4346       if (INV_ATTRIBUTE_CONTROL_PVT.serial_check(msii_temp.organization_id,
4347                                   msii_temp.inventory_item_id)) then
4348          dumm_status  := INVPUOPI.mtl_log_interface_err(
4349                                                      org_id,
4350                                                      user_id,
4351                                                      login_id,
4352                                                      prog_appid,
4353                                                      prog_id,
4354                                                      request_id,
4355                                                      trans_id,
4356                                                      err_text,
4357                                              'SERIAL_NUMBER_CONTROL_CODE',
4358                                              'MTL_SYSTEM_ITEMS_INTERFACE',
4359                                              'INV_SERIAL_NO_YES',
4360                                                      err_text);
4361          dumm_status := INVUPD2B.set_process_flag3(row_id,user_id,login_id,prog_appid,prog_id,request_id);
4362       end if;
4363 /* End Bug 3058650 */
4364 
4365 /* Start Bug 4387538 */
4366    elsif ((msi_temp.SERIAL_NUMBER_CONTROL_CODE in (1,6) and msii_temp.SERIAL_NUMBER_CONTROL_CODE in (2,5)) and
4367           (intr_ship_serial = 1)) or
4368          ((msi_temp.SERIAL_NUMBER_CONTROL_CODE in (2,5) and msii_temp.SERIAL_NUMBER_CONTROL_CODE in (1,6)) and
4369           (intr_ship_serial = 1))  then
4370 
4371          dumm_status  := INVPUOPI.mtl_log_interface_err(
4372 						     org_id,
4373 						     user_id,
4374 						     login_id,
4375 						     prog_appid,
4376 						     prog_id,
4377 						     request_id,
4378 						     trans_id,
4379 						     err_text,
4380 					     'SERIAL_NUMBER_CONTROL_CODE',
4381 					     'MTL_SYSTEM_ITEMS_INTERFACE',
4382 					     'INV_INTRANSIT_CANNOT_UPDATE',
4383 					     err_text);
4384 
4385          dumm_status := INVUPD2B.set_process_flag3(row_id,user_id,login_id,prog_appid,prog_id,request_id);
4386 
4387    /* Bug 6501149 Code start */
4388        elsif ((msi_temp.SERIAL_NUMBER_CONTROL_CODE in (1,6) and msii_temp.SERIAL_NUMBER_CONTROL_CODE in (2,5)) and
4389          (serial_control = 1)) or
4390          ((msi_temp.SERIAL_NUMBER_CONTROL_CODE in (2,5) and msii_temp.SERIAL_NUMBER_CONTROL_CODE in (1,6)) and
4391          (serial_control = 1))  then
4392 
4393          dumm_status  := INVPUOPI.mtl_log_interface_err(
4394                                                         org_id,
4395                                                         user_id,
4396                                                         login_id,
4397                                                         prog_appid,
4398                                                         prog_id,
4399                                                         request_id,
4400                                                         trans_id,
4401                                                         err_text,
4402                                                 'SERIAL_NUMBER_CONTROL_CODE',
4403                                                 'MTL_SYSTEM_ITEMS_INTERFACE',
4404                                                 'INV_DELIVER_CANNOT_UPDATE',
4405                                                 err_text);
4406          dumm_status := INVUPD2B.set_process_flag3(row_id,user_id,login_id,prog_appid,prog_id,request_id);
4407      /* Bug 6501149 Code ended */
4408    end if;
4409 /* End Bug 4387538 */
4410 
4411    -- validate BOM_ENABLED_FLAG
4412    -- Must =Y when bom_item_type = 5
4413 
4414    if (msii_temp.bom_item_type = 5) and
4415      (msii_temp.bom_enabled_flag = 'N') then
4416       dumm_status  := INVPUOPI.mtl_log_interface_err(
4417                                                      org_id,
4418                                                      user_id,
4419                                                      login_id,
4420                                                      prog_appid,
4421                                                      prog_id,
4422                                                      request_id,
4423                                                      trans_id,
4424                                                      err_text,
4425                                                      'BOM_ENABLED_FLAG',
4426                                                      'MTL_SYSTEM_ITEMS_INTERFACE',
4427                                                      'INV_BOM_ENABLED_FLAG_ERR',
4428                                                      err_text);
4429 
4430       dumm_status := INVUPD2B.set_process_flag3(row_id,user_id,login_id,prog_appid,prog_id,request_id);
4431    end if;
4432 
4433    -- validate BOM_ITEM_TYPE (1)
4434    -- Not updateable when row exists in bom_substitute_components or
4435    --     bom_bill_of_materials or bom_inventory_components
4436    -- or item is a Product Family with a bill defined
4437 
4438    if (msi_temp.bom_item_type <> msii_temp.bom_item_type) and
4439      ( (bom_item = 1) or
4440        (msii_temp.bom_item_type = 5 and bom_exists = 1) ) then
4441       dumm_status  := INVPUOPI.mtl_log_interface_err(
4442                                                      org_id,
4443                                                      user_id,
4444                                                      login_id,
4445                                                      prog_appid,
4446                                                      prog_id,
4447                                                      request_id,
4448                                                      trans_id,
4449                                                      err_text,
4450                                                      'BOM_ITEM_TYPE',
4451                                                      'MTL_SYSTEM_ITEMS_INTERFACE',
4452                                                      'INV_BOM_ITEM_TYPE_ERR1',
4453                                                      err_text);
4454 
4455       dumm_status := INVUPD2B.set_process_flag3(row_id,user_id,login_id,prog_appid,prog_id,request_id);
4456    end if;
4457 
4458    -- Start : 3436435 Item in BOM,BOM Enabled cannot be N
4459    /* commented for bug 5479302
4460    if (msii_temp.bom_enabled_flag = 'N' and bom_exists = 1) then
4461       dumm_status  := INVPUOPI.mtl_log_interface_err(
4462                                                      org_id,
4463                                                      user_id,
4464                                                      login_id,
4465                                                      prog_appid,
4466                                                      prog_id,
4467                                                      request_id,
4468                                                      trans_id,
4469                                                      err_text,
4470                                                      'BOM_ENABLED_FLAG',
4471                                                      'MTL_SYSTEM_ITEMS_INTERFACE',
4472                                                      'INV_IOI_ITEM_BOM_EXISTS',
4473                                                      err_text);
4474 
4475       dumm_status := INVUPD2B.set_process_flag3(row_id,user_id,login_id,prog_appid,prog_id,request_id);
4476    end if; */
4477    -- End   : 3436435 Item in BOM,BOM Enabled cannot be N
4478 
4479    -- validate BOM_ITEM_TYPE (2)
4480    -- If bom_item_type <> 4 then
4481    --                 build_in_wip = 'N',
4482    --                 base_item_id is NULL,
4483    --                 internal_order_flag = 'N',
4484    --                 vendor_warranty_flag = 'N'
4485 /*  Bug 967374. If the bom item type is not standard, then build in wip flag
4486     must be N */
4487 
4488 --ToDo (vendor_warranty_flag) :
4489 
4490 /*
4491    if (msii_temp.bom_item_type <> 4) and
4492      (msii_temp.build_in_wip_flag <> 'N' OR
4493       msii_temp.base_item_id IS NOT NULL OR
4494       msii_temp.internal_order_flag <> 'N' OR
4495       msii_temp.vendor_warranty_flag <> 'N') then
4496 
4497       dumm_status  := INVPUOPI.mtl_log_interface_err(
4498                                                      org_id,
4499                                                      user_id,
4500                                                      login_id,
4501                                                      prog_appid,
4502                                                      prog_id,
4503                                                      request_id,
4504                                                      trans_id,
4505                                                      err_text,
4506                                                      'BOM_ITEM_TYPE',
4507                                                      'MTL_SYSTEM_ITEMS_INTERFACE',
4508                                                      'INV_BOM_ITEM_TYPE_ERR2',
4509                                                      err_text);
4510 
4511       dumm_status := INVUPD2B.set_process_flag3(row_id,user_id,login_id,prog_appid,prog_id,request_id);
4512 
4513    end if;
4514 */
4515 
4516    -- validate BOM_ITEM_TYPE (3)
4517    -- Must not=5 when open shipping orders exist
4518 
4519    if (msii_temp.bom_item_type = 5 and
4520        so_open_exists = 1) then
4521 
4522       dumm_status  := INVPUOPI.mtl_log_interface_err(
4523                                                      org_id,
4524                                                      user_id,
4525                                                      login_id,
4526                                                      prog_appid,
4527                                                      prog_id,
4528                                                      request_id,
4529                                                      trans_id,
4530                                                      err_text,
4531                                                      'BOM_ITEM_TYPE',
4532                                                      'MTL_SYSTEM_ITEMS_INTERFACE',
4533                                                      'INV_BOM_ITEM_TYPE_ERR3',
4534                                                      err_text);
4535 
4536       dumm_status := INVUPD2B.set_process_flag3(row_id,user_id,login_id,prog_appid,prog_id,request_id);
4537    end if;
4538 
4539    -- Added for Bug 5143614
4540    -- Validate update of pick_components flag
4541    -- If item has a bill defined on it with components on lot basis
4542    -- then pick_components cannot be TRUE
4543 
4544    if  (msii_temp.pick_components_flag  = 'Y'
4545         OR  msii_temp.pick_components_flag  = 'y') then
4546      begin
4547         SELECT 1 INTO l_item_has_lot_comp
4548           FROM bom_components_b bic, bom_structures_b bbom
4549           WHERE bic.basis_type =2
4550             and bic.bill_sequence_id=bbom.common_bill_sequence_id
4551             and bbom.assembly_item_id=msii_temp.inventory_item_id
4552             and bbom.organization_id =msii_temp.organization_id
4553             and ROWNUM = 1;
4554           EXCEPTION WHEN NO_DATA_FOUND THEN
4555             l_item_has_lot_comp := 0;
4556      end;
4557      IF l_item_has_lot_comp = 1 THEN
4558        dumm_status  := INVPUOPI.mtl_log_interface_err(
4559                                                      org_id,
4560                                                      user_id,
4561                                                      login_id,
4562                                                      prog_appid,
4563                                                      prog_id,
4564                                                      request_id,
4565                                                      trans_id,
4566                                                      err_text,
4567                                                      'PICK_COMPONENTS_FLAG',
4568                                                      'MTL_SYSTEM_ITEMS_INTERFACE',
4569                                                      'INV_ITEM_LOT_COMP',
4570                                                      err_text);
4571        dumm_status := INVUPD2B.set_process_flag3(row_id,user_id,login_id,prog_appid,prog_id,request_id);
4572      END IF;
4573    end if;
4574 
4575    -- validate COSTING_ENABLED_FLAG
4576    -- Not updateable if onhand or txn pending or uncosted txn
4577    --  (determined from :cost_txn)
4578    --  (don't need to worry about Item vs. Item/org because SQL checks
4579    --  for orgs where costing_org = :org)
4580    --
4581    if (msi_temp.costing_enabled_flag <> msii_temp.costing_enabled_flag) and
4582      (cost_txn = 1) then
4583       dumm_status  := INVPUOPI.mtl_log_interface_err(
4584                                                      org_id,
4585                                                      user_id,
4586                                                      login_id,
4587                                                      prog_appid,
4588                                                      prog_id,
4589                                                      request_id,
4590                                                      trans_id,
4591                                                      err_text,
4592                                                      'COSTING_ENABLED_FLAG',
4593                                                      'MTL_SYSTEM_ITEMS_INTERFACE',
4594                                                      'INV_COSTING_ENABLED_FLAG_ERR',
4595                                                      err_text);
4596 
4597       dumm_status := INVUPD2B.set_process_flag3(row_id,user_id,login_id,prog_appid,prog_id,request_id);
4598    end if;
4599 
4600 
4601    -- validate INVENTORY_ASSET_FLAG
4602    -- Not updateable if onhand or txn pending or uncosted txn
4603    --  (determined from cost_txn)
4604    --  (dont need to worry about Item vs. Item/org because SQL checks
4605    --  for orgs where costing_org = org)
4606 
4607    if (msi_temp.inventory_asset_flag <> msii_temp.inventory_asset_flag) and
4608      (cost_txn = 1) then
4609       dumm_status  := INVPUOPI.mtl_log_interface_err(
4610                                                      org_id,
4611                                                      user_id,
4612                                                      login_id,
4613                                                      prog_appid,
4614                                                      prog_id,
4615                                                      request_id,
4616                                                      trans_id,
4617                                                      err_text,
4618                                                      'INVENTORY_ASSET_FLAG',
4619                                                      'MTL_SYSTEM_ITEMS_INTERFACE',
4620                                                      'INV_INVENTORY_ASSET_FLAG_ERR',
4621                                                      err_text);
4622 
4623       dumm_status := INVUPD2B.set_process_flag3(row_id,user_id,login_id,prog_appid,prog_id,request_id);
4624    end if;
4625 
4626 
4627    -- validate FIXED_ORDER_QUANTITY
4628    -- must be > 0
4629 
4630    if (msii_temp.fixed_order_quantity <=0 ) then
4631       dumm_status  := INVPUOPI.mtl_log_interface_err(
4632                                                      org_id,
4633                                                      user_id,
4634                                                      login_id,
4635                                                      prog_appid,
4636                                                      prog_id,
4637                                                      request_id,
4638                                                      trans_id,
4639                                                      err_text,
4640                                                      'FIXED_ORDER_QUANTITY',
4641                                                      'MTL_SYSTEM_ITEMS_INTERFACE',
4642                                                      'INV_FIXED_ORDER_QUANTITY_ERR',
4643                                                      err_text);
4644 
4645       dumm_status := INVUPD2B.set_process_flag3(row_id,user_id,login_id,prog_appid,prog_id,request_id);
4646    end if;
4647 
4648 
4649    -- validate PLANNING_MAKE_BUY_CODE
4650    -- Must be 1 if bom_item_type = 5 (product family)
4651    --
4652    if (msii_temp.planning_make_buy_code <> 1) AND
4653      (msii_temp.bom_item_type = 5) then
4654       dumm_status  := INVPUOPI.mtl_log_interface_err(
4655                                                      org_id,
4656                                                      user_id,
4657                                                      login_id,
4658                                                      prog_appid,
4659                                                      prog_id,
4660                                                      request_id,
4661                                                      trans_id,
4662                                                      err_text,
4663                                                      'PLANNING_MAKE_BUY_CODE',
4664                                                      'MTL_SYSTEM_ITEMS_INTERFACE',
4665                                                      'INV_PLANNING_MAKE_BUY_CODE',
4666                                                      err_text);
4667 
4668       dumm_status := INVUPD2B.set_process_flag3(row_id,user_id,login_id,prog_appid,prog_id,request_id);
4669    end if;
4670 
4671 
4672    -- validate ACCEPTABLE_EARLY_DAYS
4673    -- must be > 0
4674 
4675    if (msii_temp.acceptable_early_days <= 0) then
4676       dumm_status  := INVPUOPI.mtl_log_interface_err(
4677                                                      org_id,
4678                                                      user_id,
4679                                                      login_id,
4680                                                      prog_appid,
4681                                                      prog_id,
4682                                                      request_id,
4683                                                      trans_id,
4684                                                      err_text,
4685                                                      'ACCEPTABLE_EARLY_DAYS',
4686                                                      'MTL_SYSTEM_ITEMS_INTERFACE',
4687                                                      'INV_ACCEPTABLE_EARLY_DAYS_ERR',
4688                                                      err_text);
4689 
4690       dumm_status := INVUPD2B.set_process_flag3(row_id,user_id,login_id,prog_appid,prog_id,request_id);
4691    end if;
4692 
4693 
4694    -- validate ACCEPTABLE_RATE_INCREASE
4695    -- must be >= 0
4696 
4697    if (msii_temp.acceptable_rate_increase < 0) then
4698       dumm_status  := INVPUOPI.mtl_log_interface_err(
4699                                                      org_id,
4700                                                      user_id,
4701                                                      login_id,
4702                                                      prog_appid,
4703                                                      prog_id,
4704                                                      request_id,
4705                                                      trans_id,
4706                                                      err_text,
4707                                                      'ACCEPTABLE_RATE_INCREASE',
4708                                                      'MTL_SYSTEM_ITEMS_INTERFACE',
4709                                                      'INV_ACCEPT_RATE_INCREASE_ERR',
4710                                                      err_text);
4711 
4712       dumm_status := INVUPD2B.set_process_flag3(row_id,user_id,login_id,prog_appid,prog_id,request_id);
4713    end if;
4714 
4715 
4716    -- validate ACCEPTABLE_RATE_DECREASE
4717    -- must be >= 0
4718 
4719    if (msii_temp.acceptable_rate_decrease < 0) then
4720       dumm_status  := INVPUOPI.mtl_log_interface_err(
4721                                                      org_id,
4722                                                      user_id,
4723                                                      login_id,
4724                                                      prog_appid,
4725                                                      prog_id,
4726                                                      request_id,
4727                                                      trans_id,
4728                                                      err_text,
4729                                                      'ACCEPTABLE_RATE_DECREASE',
4730                                                      'MTL_SYSTEM_ITEMS_INTERFACE',
4731                                                      'INV_ACCEPT_RATE_DECREASE_ERR',
4732                                                      err_text);
4733 
4734       dumm_status := INVUPD2B.set_process_flag3(row_id,user_id,login_id,prog_appid,prog_id,request_id);
4735    end if;
4736 
4737 
4738    -- validate DEMAND_TIME_FENCE_DAYS
4739    -- updateable only if DEMAND_TIME_FENCE_CODE = 4
4740 
4741    if( msii_temp.demand_time_fence_days <> msi_temp.demand_time_fence_days) AND
4742      (msii_temp.demand_time_fence_code <> 4) then
4743       dumm_status  := INVPUOPI.mtl_log_interface_err(
4744                                                      org_id,
4745                                                      user_id,
4746                                                      login_id,
4747                                                      prog_appid,
4748                                                      prog_id,
4749                                                      request_id,
4750                                                      trans_id,
4751                                                      err_text,
4752                                                      'DEMAND_TIME_FENCE_DAYS',
4753                                                      'MTL_SYSTEM_ITEMS_INTERFACE',
4754                                                      'INV_DEMAND_TIME_FENCE_DAYS_ERR',
4755                                                      err_text);
4756 
4757       dumm_status := INVUPD2B.set_process_flag3(row_id,user_id,login_id,prog_appid,prog_id,request_id);
4758    end if;
4759 
4760 
4761    -- validate PLANNING_TIME_FENCE_DAYS
4762    -- updateable only if PLANNING_TIME_FENCE_CODE = 4
4763 
4764    if( msii_temp.planning_time_fence_days <> msi_temp.planning_time_fence_days) AND
4765      (msii_temp.planning_time_fence_code <> 4) then
4766       dumm_status  := INVPUOPI.mtl_log_interface_err(
4767                                                      org_id,
4768                                                      user_id,
4769                                                      login_id,
4770                                                      prog_appid,
4771                                                      prog_id,
4772                                                      request_id,
4773                                                      trans_id,
4774                                                      err_text,
4775                                                      'PLANNING_TIME_FENCE_DAYS',
4776                                                      'MTL_SYSTEM_ITEMS_INTERFACE',
4777                                                      'INV_PLAN_TIME_FENCE_DAYS_ERR',
4778                                                      err_text);
4779 
4780       dumm_status := INVUPD2B.set_process_flag3(row_id,user_id,login_id,prog_appid,prog_id,request_id);
4781    end if;
4782 
4783 
4784    -- validate REPETITIVE_PLANNING_FLAG
4785    -- not updateable if row exists in mrp_schedule_items for item and org
4786 
4787    if (msii_temp.repetitive_planning_flag <> msi_temp.repetitive_planning_flag) and
4788      (mrp_schedule = 1) then
4789       dumm_status  := INVPUOPI.mtl_log_interface_err(
4790                                                      org_id,
4791                                                      user_id,
4792                                                      login_id,
4793                                                      prog_appid,
4794                                                      prog_id,
4795                                                      request_id,
4796                                                      trans_id,
4797                                                      err_text,
4798                                                      'REPETITIVE_PLANNING_FLAG',
4799                                                      'MTL_SYSTEM_ITEMS_INTERFACE',
4800                                                      'INV_REPET_PLANNING_FLAG_ERR',
4801                                                      err_text);
4802 
4803       dumm_status := INVUPD2B.set_process_flag3(row_id,user_id,login_id,prog_appid,prog_id,request_id);
4804    end if;
4805 
4806 
4807    -- validate SHRINKAGE_RATE
4808    -- must be 0 <= SHRINKAGE_RATE < 1
4809 
4810    if (msii_temp.shrinkage_rate >= 1) or
4811       (msii_temp.shrinkage_rate < 0) then
4812 
4813       dumm_status  := INVPUOPI.mtl_log_interface_err(
4814                                                      org_id,
4815                                                      user_id,
4816                                                      login_id,
4817                                                      prog_appid,
4818                                                      prog_id,
4819                                                      request_id,
4820                                                      trans_id,
4821                                                      err_text,
4822                                                      'SHRINKAGE_RATE',
4823                                                      'MTL_SYSTEM_ITEMS_INTERFACE',
4824                                                      'INV_SHRINKAGE_RATE_ERR',
4825                                                      err_text);
4826 
4827       dumm_status := INVUPD2B.set_process_flag3(row_id,user_id,login_id,prog_appid,prog_id,request_id);
4828 
4829    end if;
4830 
4831 
4832    -- validate FULL_LEAD_TIME
4833    -- must be 0 when BOM_ITEM_TYPE = 5
4834 
4835    if (msii_temp.full_lead_time <> 0) and
4836      (msii_temp.bom_item_type = 5) then
4837       dumm_status  := INVPUOPI.mtl_log_interface_err(
4838                                                      org_id,
4839                                                      user_id,
4840                                                      login_id,
4841                                                      prog_appid,
4842                                                      prog_id,
4843                                                      request_id,
4844                                                      trans_id,
4845                                                      err_text,
4846                                                      'FULL_LEAD_TIME',
4847                                                      'MTL_SYSTEM_ITEMS_INTERFACE',
4848                                                      'INV_FULL_LEAD_TIME_ERR',
4849                                                      err_text);
4850 
4851       dumm_status := INVUPD2B.set_process_flag3(row_id,user_id,login_id,prog_appid,prog_id,request_id);
4852    end if;
4853 
4854 
4855    -- validate LEAD_TIME_LOT_SIZE
4856    -- if null, set to std_lot_size
4857 
4858    if (msii_temp.lead_time_lot_size IS null) then
4859       UPDATE mtl_system_items_interface
4860         SET lead_time_lot_size = msii_temp.std_lot_size
4861         WHERE rowid = row_id;
4862 
4863       /* commit for debugging ONLY */
4864       -- COMMIT;
4865 
4866       status := 0;
4867    end if;
4868 
4869 
4870    -- validate POSTPROCESSING_LEAD_TIME
4871    -- not updateable and = 0 if PLANNING_MAKE_BUY_CODE = 1
4872 
4873    if (msii_temp.planning_make_buy_code = 1) and
4874       (msii_temp.postprocessing_lead_time <> 0) then
4875       dumm_status  := INVPUOPI.mtl_log_interface_err(
4876                                                      org_id,
4877                                                      user_id,
4878                                                      login_id,
4879                                                      prog_appid,
4880                                                      prog_id,
4881                                                      request_id,
4882                                                      trans_id,
4883                                                      err_text,
4884                                                      'POSTPROCESSING_LEAD_TIME',
4885                                                      'MTL_SYSTEM_ITEMS_INTERFACE',
4886                                                      'INV_POSTPROC_LEAD_TIME_ERR',
4887                                                      err_text);
4888 
4889       dumm_status := INVUPD2B.set_process_flag3(row_id,user_id,login_id,prog_appid,prog_id,request_id);
4890    end if;
4891 
4892 
4893    -- validate VARIABLE_LEAD_TIME
4894    -- must be > 0
4895 
4896    if (msii_temp.variable_lead_time < 0) then
4897       dumm_status  := INVPUOPI.mtl_log_interface_err(
4898                                                      org_id,
4899                                                      user_id,
4900                                                      login_id,
4901                                                      prog_appid,
4902                                                      prog_id,
4903                                                      request_id,
4904                                                      trans_id,
4905                                                      err_text,
4906                                                      'VARIABLE_LEAD_TIME',
4907                                                      'MTL_SYSTEM_ITEMS_INTERFACE',
4908                                                      'INV_VARIABLE_LEAD_TIME_ERR',
4909                                                      err_text);
4910 
4911       dumm_status := INVUPD2B.set_process_flag3(row_id,user_id,login_id,prog_appid,prog_id,request_id);
4912    end if;
4913 
4914     /* Validation added for Bug 4139304 - Anmurali */
4915    if ((msi_temp.effectivity_control <> msii_temp.effectivity_control) AND (bom_item = 1 OR onhand_all = 1)) then
4916       dumm_status  := INVPUOPI.mtl_log_interface_err(
4917                                                      org_id,
4918                                                      user_id,
4919                                                      login_id,
4920                                                      prog_appid,
4921                                                      prog_id,
4922                                                      request_id,
4923                                                      trans_id,
4924                                                      err_text,
4925                                                      'EFFECTIVITY_CONTROL',
4926                                                      'MTL_SYSTEM_ITEMS_INTERFACE',
4927                                                      'ITM-EFFC-ITEM IS BILL OR COMP',
4928                                                      err_text);
4929 
4930       dumm_status := INVUPD2B.set_process_flag3(row_id,user_id,login_id,prog_appid,prog_id,request_id);
4931    end if;
4932 /* End of validation for Bug 4139304 */
4933 
4934 --ToDo (SERVICE_ITEM_FLAG) :
4935 
4936    -- validate BUILD_IN_WIP_FLAG
4937    -- must be 'N' when SERVICE_ITEM_FLAG = 'Y'
4938 /*
4939    if (msii_temp.build_in_wip_flag <> 'N') and
4940      (msii_temp.service_item_flag = 'Y') then
4941       dumm_status  := INVPUOPI.mtl_log_interface_err(
4942                                                      org_id,
4943                                                      user_id,
4944                                                      login_id,
4945                                                      prog_appid,
4946                                                      prog_id,
4947                                                      request_id,
4948                                                      trans_id,
4949                                                      err_text,
4950                                                      'BUILD_IN_WIP_FLAG',
4951                                                      'MTL_SYSTEM_ITEMS_INTERFACE',
4952                                                      'INV_BUILD_IN_WIP_FLAG_ERR',
4953                                                      err_text);
4954 
4955       dumm_status := INVUPD2B.set_process_flag3(row_id,user_id,login_id,prog_appid,prog_id,request_id);
4956    end if;
4957 */
4958 
4959    -- validate SERVICE_ITEM_FLAG
4960    -- must be 'N' when MATERIAL_BILLABLE_FLAG <> null
4961 /*
4962    if (msii_temp.service_item_flag <> 'N') and
4963      (msii_temp.material_billable_flag IS NOT NULL) then
4964       dumm_status  := INVPUOPI.mtl_log_interface_err(
4965                                                      org_id,
4966                                                      user_id,
4967                                                      login_id,
4968                                                      prog_appid,
4969                                                      prog_id,
4970                                                      request_id,
4971                                                      trans_id,
4972                                                      err_text,
4973                                                      'SERVICE_ITEM_FLAG',
4974                                                      'MTL_SYSTEM_ITEMS_INTERFACE',
4975                                                      'INV_SERVICE_ITEM_FLAG_ERR',
4976                                                      err_text);
4977 
4978       dumm_status := INVUPD2B.set_process_flag3(row_id,user_id,login_id,prog_appid,prog_id,request_id);
4979    end if;
4980 */
4981 
4982    -- validate SERVICE_STARTING_DELAY
4983    -- must be >= 0
4984 
4985    if (msii_temp.service_starting_delay < 0) then
4986       dumm_status  := INVPUOPI.mtl_log_interface_err(
4987                                                      org_id,
4988                                                      user_id,
4989                                                      login_id,
4990                                                      prog_appid,
4991                                                      prog_id,
4992                                                      request_id,
4993                                                      trans_id,
4994                                                      err_text,
4995                                                      'SERVICE_STARTING_DELAY',
4996                                                      'MTL_SYSTEM_ITEMS_INTERFACE',
4997                                                      'INV_SERVICE_STARTING_DELAY_ERR',
4998                                                      err_text);
4999 
5000       dumm_status := INVUPD2B.set_process_flag3(row_id,user_id,login_id,prog_appid,prog_id,request_id);
5001    end if;
5002 
5003    -- validate VEHICLE_ITEM_FLAG
5004    -- Not updateable when row exists in FTE_VEHICLE_TYPES
5005 
5006    if (msii_temp.vehicle_item_flag <> 'Y' and  fte_vehicle_exists = 1)  then
5007       dumm_status  := INVPUOPI.mtl_log_interface_err(
5008                                                      org_id,
5009                                                      user_id,
5010                                                      login_id,
5011                                                      prog_appid,
5012                                                      prog_id,
5013                                                      request_id,
5014                                                      trans_id,
5015                                                      err_text,
5016                                                      'VEHICLE_ITEM_FLAG',
5017                                                      'MTL_SYSTEM_ITEMS_INTERFACE',
5018                                                      'INV_VEHICLE_CANNOT_UPDATE',
5019                                                      err_text);
5020 
5021       dumm_status := INVUPD2B.set_process_flag3(row_id,user_id,login_id,prog_appid,prog_id,request_id);
5022    end if;
5023    -- Bug: 2710463
5024    -- validate COMMS_NL_TRACKABLE_FLAG
5025    -- Not updateable when Onhand Trackable exists
5026 
5027    if ( NVL(msii_temp.COMMS_NL_TRACKABLE_FLAG,'N') <> NVL(msi_temp.COMMS_NL_TRACKABLE_FLAG,'N') and  onhand_trackable = 1)  then
5028       dumm_status  := INVPUOPI.mtl_log_interface_err(
5029                                                      org_id,
5030                                                      user_id,
5031                                                      login_id,
5032                                                      prog_appid,
5033                                                      prog_id,
5034                                                      request_id,
5035                                                      trans_id,
5036                                                      err_text,
5037                                                      'COMMS_NL_TRACKABLE_FLAG',
5038                                                      'MTL_SYSTEM_ITEMS_INTERFACE',
5039                                                      'INV_ONHAND_TRACKABLE_EXIST',
5040                                                      err_text);
5041 
5042       dumm_status := INVUPD2B.set_process_flag3(row_id,user_id,login_id,prog_appid,prog_id,request_id);
5043    end if;
5044 
5045    IF l_inv_debug_level IN(101, 102) THEN
5046       INVPUTLI.info('INVUPD2B: Inside update_validations: 11.5.10 validations started');
5047    END IF;
5048    -- Added for 11.5.10
5049    -- validate OUTSIDE_OPERATION_FLAG, EAM_ITEM_TYPE, MTL_TRANSACTIONS_ENABLED_FLAG, STOCK_ENABLED_FLAG and INVENTORY_ASSET_FLAG
5050    -- validate Not updateable fields
5051     /*Bug 6501149 Code starts */
5052    if ((msi_temp.STOCK_ENABLED_FLAG <> msii_temp.STOCK_ENABLED_FLAG) AND (stockable = 1) AND msii_temp.STOCK_ENABLED_FLAG = 'N') then
5053              dumm_status  := INVPUOPI.mtl_log_interface_err(
5054                                                         org_id,
5055                                                         user_id,
5056                                                         login_id,
5057                                                         prog_appid,
5058                                                         prog_id,
5059                                                         request_id,
5060                                                         trans_id,
5061                                                         err_text,
5062                                                    'STOCK_ENABLED_FLAG',
5063                                                 'MTL_SYSTEM_ITEMS_INTERFACE',
5064                                                 'INV_DELIVER_CANNOT_UPDATE',
5065                                                         err_text);
5066          dumm_status := INVUPD2B.set_process_flag3(row_id,user_id,login_id,prog_appid,prog_id,request_id);
5067     end if;
5068     /*Bug 6501149 code ends */
5069 
5070    l_column_name := NULL;
5071    if (vmiorconsign_enabled = 1 ) then
5072        if (NVL(msii_temp.OUTSIDE_OPERATION_FLAG,'N') = 'Y' ) then
5073             l_column_name := 'OUTSIDE_OPERATION_FLAG';
5074        elsif( msii_temp.EAM_ITEM_TYPE IS NOT NULL ) then
5075            l_column_name := 'EAM_ITEM_TYPE';
5076        elsif (NVL(msii_temp.MTL_TRANSACTIONS_ENABLED_FLAG,'N') = 'N' )then
5077            l_column_name := 'MTL_TRANSACTIONS_ENABLED_FLAG';
5078        elsif (NVL(msii_temp.STOCK_ENABLED_FLAG,'N') = 'N') then
5079            l_column_name := 'STOCK_ENABLED_FLAG';
5080        end if;
5081    end if;
5082    if(consign_enabled = 1 AND NVL(msii_temp.INVENTORY_ASSET_FLAG,'N') = 'N')  then
5083            l_column_name := 'INVENTORY_ASSET_FLAG';
5084    end if;
5085    if (l_column_name IS NOT NULL) then
5086       IF l_inv_debug_level IN(101, 102) THEN
5087          INVPUTLI.info('INVUPD2B: Inside update_validations: VMI validations failed');
5088       END IF;
5089 
5090       dumm_status  := INVPUOPI.mtl_log_interface_err(
5091                                                      org_id,
5092                                                      user_id,
5093                                                      login_id,
5094                                                      prog_appid,
5095                                                      prog_id,
5096                                                      request_id,
5097                                                      trans_id,
5098                                                      err_text,
5099                                                      l_column_name,
5100                                                      'MTL_SYSTEM_ITEMS_INTERFACE',
5101                                                      'INV_VMI_ENABLED_ITEM',
5102                                                      err_text);
5103       dumm_status := INVUPD2B.set_process_flag3(row_id,user_id,login_id,prog_appid,prog_id,request_id);
5104    end if;
5105    IF l_inv_debug_level IN(101, 102) THEN
5106       INVPUTLI.info('INVUPD2B: Inside update_validations: 11.5.10 validations Ended');
5107    END IF;
5108 
5109    /* Start Bug 3713912 */
5110    -- validate TRACKING_QUANTITY_IND
5111    -- cannot update if there is onhand or transactions pending
5112    if (msi_temp.TRACKING_QUANTITY_IND <> msii_temp.TRACKING_QUANTITY_IND) AND (onhand_tracking_qty_ind = 1) then
5113       IF l_inv_debug_level IN(101, 102) THEN
5114          INVPUTLI.info('INVUPD2B: Inside update_validations: TRACKING_QUANTITY_IND onhand validations failed');
5115       END IF;
5116       dumm_status  := INVPUOPI.mtl_log_interface_err(
5117                                                      org_id,
5118                                                      user_id,
5119                                                      login_id,
5120                                                      prog_appid,
5121                                                      prog_id,
5122                                                      request_id,
5123                                                      trans_id,
5124                                                      err_text,
5125                                                      'TRACKING_QUANTITY_IND',
5126                                                      'MTL_SYSTEM_ITEMS_INTERFACE',
5127                                                      'INV_QOH_CANNOT_UPDATE',
5128                                                      err_text);
5129 
5130       dumm_status := INVUPD2B.set_process_flag3(row_id,user_id,login_id,prog_appid,prog_id,request_id);
5131 
5132    elsif (msi_temp.TRACKING_QUANTITY_IND <> msii_temp.TRACKING_QUANTITY_IND) AND (pendadj_tracking_qty_ind = 1) then
5133       IF l_inv_debug_level IN(101, 102) THEN
5134          INVPUTLI.info('INVUPD2B: Inside update_validations: TRACKING_QUANTITY_IND pending validations failed');
5135       END IF;
5136       dumm_status  := INVPUOPI.mtl_log_interface_err(
5137                                                      org_id,
5138                                                      user_id,
5139                                                      login_id,
5140                                                      prog_appid,
5141                                                      prog_id,
5142                                                      request_id,
5143                                                      trans_id,
5144                                                      err_text,
5145                                                      'TRACKING_QUANTITY_IND',
5146                                                      'MTL_SYSTEM_ITEMS_INTERFACE',
5147                                                      'INV_PENDING_ADJUSTMENT',
5148                                                      err_text);
5149 
5150       dumm_status := INVUPD2B.set_process_flag3(row_id,user_id,login_id,prog_appid,prog_id,request_id);
5151 
5152    end if;
5153 
5154    -- validate SECONDARY_UOM_CODE
5155    -- cannot update if there is onhand or transactions pending
5156    if (msi_temp.SECONDARY_UOM_CODE <> msii_temp.SECONDARY_UOM_CODE) AND (onhand_secondary_uom = 1) then
5157       IF l_inv_debug_level IN(101, 102) THEN
5158          INVPUTLI.info('INVUPD2B: Inside update_validations: SECONDARY_UOM_CODE onhand validations failed');
5159       END IF;
5160       dumm_status  := INVPUOPI.mtl_log_interface_err(
5161                                                      org_id,
5162                                                      user_id,
5163                                                      login_id,
5164                                                      prog_appid,
5165                                                      prog_id,
5166                                                      request_id,
5167                                                      trans_id,
5168                                                      err_text,
5169                                                      'SECONDARY_UOM_CODE',
5170                                                      'MTL_SYSTEM_ITEMS_INTERFACE',
5171                                                      'INV_QOH_CANNOT_UPDATE',
5172                                                      err_text);
5173 
5174       dumm_status := INVUPD2B.set_process_flag3(row_id,user_id,login_id,prog_appid,prog_id,request_id);
5175 
5176    elsif (msi_temp.SECONDARY_UOM_CODE <> msii_temp.SECONDARY_UOM_CODE) AND (pendadj_secondary_uom = 1) then
5177       IF l_inv_debug_level IN(101, 102) THEN
5178          INVPUTLI.info('INVUPD2B: Inside update_validations: SECONDARY_UOM_CODE pending validations failed');
5179       END IF;
5180       dumm_status  := INVPUOPI.mtl_log_interface_err(
5181                                                      org_id,
5182                                                      user_id,
5183                                                      login_id,
5184                                                      prog_appid,
5185                                                      prog_id,
5186                                                      request_id,
5187                                                      trans_id,
5188                                                      err_text,
5189                                                      'SECONDARY_UOM_CODE',
5190                                                      'MTL_SYSTEM_ITEMS_INTERFACE',
5191                                                      'INV_PENDING_ADJUSTMENT',
5192                                                      err_text);
5193 
5194       dumm_status := INVUPD2B.set_process_flag3(row_id,user_id,login_id,prog_appid,prog_id,request_id);
5195 
5196    end if;
5197 
5198    -- validate SECONDARY_DEFAULT_IND
5199    -- cannot update if there is onhand or transactions pending
5200    if (msi_temp.SECONDARY_DEFAULT_IND <> msii_temp.SECONDARY_DEFAULT_IND) AND (onhand_sec_default_ind = 1) then
5201       IF l_inv_debug_level IN(101, 102) THEN
5202 	      INVPUTLI.info('INVUPD2B: Inside update_validations: SECONDARY_DEFAULT_IND onhand validations failed');
5203       END IF;
5204       dumm_status  := INVPUOPI.mtl_log_interface_err(
5205                                                      org_id,
5206                                                      user_id,
5207                                                      login_id,
5208                                                      prog_appid,
5209                                                      prog_id,
5210                                                      request_id,
5211                                                      trans_id,
5212                                                      err_text,
5213                                                      'SECONDARY_DEFAULT_IND',
5214                                                      'MTL_SYSTEM_ITEMS_INTERFACE',
5215                                                      'INV_QOH_CANNOT_UPDATE',
5216                                                      err_text);
5217 
5218       dumm_status := INVUPD2B.set_process_flag3(row_id,user_id,login_id,prog_appid,prog_id,request_id);
5219 
5220    elsif (msi_temp.SECONDARY_DEFAULT_IND <> msii_temp.SECONDARY_DEFAULT_IND) AND (pendadj_sec_default_ind = 1) then
5221       IF l_inv_debug_level IN(101, 102) THEN
5222          INVPUTLI.info('INVUPD2B: Inside update_validations: SECONDARY_DEFAULT_IND pending validations failed');
5223       END IF;
5224       dumm_status  := INVPUOPI.mtl_log_interface_err(
5225                                                      org_id,
5226                                                      user_id,
5227                                                      login_id,
5228                                                      prog_appid,
5229                                                      prog_id,
5230                                                      request_id,
5231                                                      trans_id,
5232                                                      err_text,
5233                                                      'SECONDARY_DEFAULT_IND',
5234                                                      'MTL_SYSTEM_ITEMS_INTERFACE',
5235                                                      'INV_PENDING_ADJUSTMENT',
5236                                                      err_text);
5237 
5238       dumm_status := INVUPD2B.set_process_flag3(row_id,user_id,login_id,prog_appid,prog_id,request_id);
5239 
5240    end if;
5241 
5242    -- validate PRIMARY_UOM_CODE
5243    -- cannot update if there is onhand or transactions pending
5244    if (msi_temp.PRIMARY_UOM_CODE <> msii_temp.PRIMARY_UOM_CODE) AND (onhand_primary_uom = 1) then
5245       IF l_inv_debug_level IN(101, 102) THEN
5246          INVPUTLI.info('INVUPD2B: Inside update_validations: PRIMARY_UOM_CODE onhand validations failed');
5247       END IF;
5248       dumm_status  := INVPUOPI.mtl_log_interface_err(
5249                                                      org_id,
5250                                                      user_id,
5251                                                      login_id,
5252                                                      prog_appid,
5253                                                      prog_id,
5254                                                      request_id,
5255                                                      trans_id,
5256                                                      err_text,
5257                                                      'PRIMARY_UOM_CODE',
5258                                                      'MTL_SYSTEM_ITEMS_INTERFACE',
5259                                                      'INV_QOH_CANNOT_UPDATE',
5260                                                      err_text);
5261 
5262       dumm_status := INVUPD2B.set_process_flag3(row_id,user_id,login_id,prog_appid,prog_id,request_id);
5263 
5264    elsif (msi_temp.PRIMARY_UOM_CODE <> msii_temp.PRIMARY_UOM_CODE) AND (pendadj_primary_uom = 1) then
5265       IF l_inv_debug_level IN(101, 102) THEN
5266          INVPUTLI.info('INVUPD2B: Inside update_validations: PRIMARY_UOM_CODE pending validations failed');
5267       END IF;
5268       dumm_status  := INVPUOPI.mtl_log_interface_err(
5269                                                      org_id,
5270                                                      user_id,
5271                                                      login_id,
5272                                                      prog_appid,
5273                                                      prog_id,
5274                                                      request_id,
5275                                                      trans_id,
5276                                                      err_text,
5277                                                      'PRIMARY_UOM_CODE',
5278                                                      'MTL_SYSTEM_ITEMS_INTERFACE',
5279                                                      'INV_PENDING_ADJUSTMENT',
5280                                                      err_text);
5281 
5282       dumm_status := INVUPD2B.set_process_flag3(row_id,user_id,login_id,prog_appid,prog_id,request_id);
5283 
5284    end if;
5285 
5286    -- validate DUAL_UOM_DEVIATION_HIGH
5287    -- cannot update if there is onhand or transactions pending
5288    if (msi_temp.DUAL_UOM_DEVIATION_HIGH <> msii_temp.DUAL_UOM_DEVIATION_HIGH) AND (onhand_deviation_high = 1) then
5289       IF l_inv_debug_level IN(101, 102) THEN
5290          INVPUTLI.info('INVUPD2B: Inside update_validations: DUAL_UOM_DEVIATION_HIGH onhand validations failed');
5291       END IF;
5292       dumm_status  := INVPUOPI.mtl_log_interface_err(
5293                                                      org_id,
5294                                                      user_id,
5295                                                      login_id,
5296                                                      prog_appid,
5297                                                      prog_id,
5298                                                      request_id,
5299                                                      trans_id,
5300                                                      err_text,
5301                                                      'DUAL_UOM_DEVIATION_HIGH',
5302                                                      'MTL_SYSTEM_ITEMS_INTERFACE',
5303                                                      'INV_QOH_CANNOT_UPDATE',
5304                                                      err_text);
5305 
5306       dumm_status := INVUPD2B.set_process_flag3(row_id,user_id,login_id,prog_appid,prog_id,request_id);
5307 
5308    elsif (msi_temp.DUAL_UOM_DEVIATION_HIGH <> msii_temp.DUAL_UOM_DEVIATION_HIGH) AND (pendadj_deviation_high = 1) then
5309       IF l_inv_debug_level IN(101, 102) THEN
5310          INVPUTLI.info('INVUPD2B: Inside update_validations: DUAL_UOM_DEVIATION_HIGH pending validations failed');
5311       END IF;
5312       dumm_status  := INVPUOPI.mtl_log_interface_err(
5313                                                      org_id,
5314                                                      user_id,
5315                                                      login_id,
5316                                                      prog_appid,
5317                                                      prog_id,
5318                                                      request_id,
5319                                                      trans_id,
5320                                                      err_text,
5321                                                      'DUAL_UOM_DEVIATION_HIGH',
5322                                                      'MTL_SYSTEM_ITEMS_INTERFACE',
5323                                                      'INV_PENDING_ADJUSTMENT',
5324                                                      err_text);
5325 
5326       dumm_status := INVUPD2B.set_process_flag3(row_id,user_id,login_id,prog_appid,prog_id,request_id);
5327 
5328    end if;
5329 
5330    -- validate DUAL_UOM_DEVIATION_LOW
5331    -- cannot update if there is onhand or transactions pending
5332    if (msi_temp.DUAL_UOM_DEVIATION_LOW <> msii_temp.DUAL_UOM_DEVIATION_LOW) AND (onhand_deviation_low = 1) then
5333       IF l_inv_debug_level IN(101, 102) THEN
5334          INVPUTLI.info('INVUPD2B: Inside update_validations: DUAL_UOM_DEVIATION_LOW onhand validations failed');
5335       END IF;
5336       dumm_status  := INVPUOPI.mtl_log_interface_err(
5337                                                      org_id,
5338                                                      user_id,
5339                                                      login_id,
5340                                                      prog_appid,
5341                                                      prog_id,
5342                                                      request_id,
5343                                                      trans_id,
5344                                                      err_text,
5345                                                      'DUAL_UOM_DEVIATION_LOW',
5346                                                      'MTL_SYSTEM_ITEMS_INTERFACE',
5347                                                      'INV_QOH_CANNOT_UPDATE',
5348                                                      err_text);
5349 
5350       dumm_status := INVUPD2B.set_process_flag3(row_id,user_id,login_id,prog_appid,prog_id,request_id);
5351 
5352    elsif (msi_temp.DUAL_UOM_DEVIATION_LOW <> msii_temp.DUAL_UOM_DEVIATION_LOW) AND (pendadj_deviation_low = 1) then
5353       IF l_inv_debug_level IN(101, 102) THEN
5354          INVPUTLI.info('INVUPD2B: Inside update_validations: DUAL_UOM_DEVIATION_LOW pending validations failed');
5355       END IF;
5356       dumm_status  := INVPUOPI.mtl_log_interface_err(
5357                                                      org_id,
5358                                                      user_id,
5359                                                      login_id,
5360                                                      prog_appid,
5361                                                      prog_id,
5362                                                      request_id,
5363                                                      trans_id,
5364                                                      err_text,
5365                                                      'DUAL_UOM_DEVIATION_LOW',
5366                                                      'MTL_SYSTEM_ITEMS_INTERFACE',
5367                                                      'INV_PENDING_ADJUSTMENT',
5368                                                      err_text);
5369 
5370       dumm_status := INVUPD2B.set_process_flag3(row_id,user_id,login_id,prog_appid,prog_id,request_id);
5371 
5372    end if;
5373 
5374    /* End Bug 3713912 */
5375 
5376    RETURN (status);
5377 
5378 EXCEPTION
5379 
5380    when OTHERS then
5381       --bug #4251913 : Included SQLCODE and SQLERRM to trap exception messages.
5382       IF l_inv_debug_level IN(101, 102) THEN
5383          INVPUTLI.info(
5384 	         Substr(
5385 		   'when OTHERS exception raised in update_validations ' ||
5386 		    SQLCODE ||
5387 		    ' - '   ||
5388 		    SQLERRM,1,240));
5389       END IF;
5390       return (1);
5391 
5392 END update_validations;
5393 
5394 
5395 FUNCTION inproit_process_item_update
5396 (
5397         prg_appid  IN   NUMBER,
5398         prg_id     IN   NUMBER,
5399         req_id     IN   NUMBER,
5400         user_id    IN   NUMBER,
5401         login_id   IN   NUMBER,
5402         error_message  OUT NOCOPY VARCHAR2,
5403         message_name   OUT NOCOPY VARCHAR2,
5404         table_name     OUT NOCOPY VARCHAR2,
5405         xset_id    IN   NUMBER DEFAULT NULL
5406 )
5407 RETURN INTEGER
5408 IS
5409    --Fix bug 6974062(7442071,7001285)
5410    CURSOR C_msii_processed_records
5411    IS
5412       SELECT distinct msii.inventory_item_id
5413       FROM MTL_SYSTEM_ITEMS_INTERFACE msii
5414       WHERE
5415          ( set_process_id = xset_id OR
5416            set_process_id = xset_id + 1000000000000 )
5417          AND transaction_type IN ('UPDATE', 'AUTO_CHILD')
5418          AND process_flag = 4;
5419 
5420    CURSOR C_msii_processed_records_dup
5421    IS
5422       SELECT distinct msii.inventory_item_id, organization_id, item_number
5423       FROM MTL_SYSTEM_ITEMS_INTERFACE msii
5424       WHERE
5425          ( set_process_id = xset_id OR
5426            set_process_id = xset_id + 1000000000000 )
5427          AND transaction_type IN ('UPDATE', 'AUTO_CHILD')
5428          AND process_flag = 4;
5429 
5430    --2808277 : Revision update support
5431    CURSOR C_rev_processed_records
5432    IS
5433       SELECT rev.*, rev.rowid
5434       FROM   mtl_item_revisions_interface rev
5435       WHERE( rev.set_process_id = xset_id
5436              OR rev.set_process_id = xset_id + 1000000000000 )
5437       AND rev.transaction_type = 'UPDATE'
5438       AND rev.process_flag = 4;
5439    --2808277 : Revision update support
5440 
5441    -- Bug 5190184
5442    CURSOR UOM_Process IS
5443       SELECT
5444          msii.inventory_item_id  INV_ITEM_ID
5445       ,  msii.primary_uom_code   PUOMCODE
5446       ,  muom.unit_of_measure    PUOM
5447       ,  muom.base_uom_flag
5448       ,  muom.uom_class          UOMCL
5449       FROM
5450          mtl_units_of_measure_vl     muom
5451       ,  mtl_system_items_interface  msii
5452       WHERE
5453              msii.process_flag = 4
5454          AND msii.allowed_units_lookup_code = 1
5455          AND(msii.set_process_id = xset_id OR
5456              msii.set_process_id = xset_id + 1000000000000)
5457          AND muom.uom_code = msii.primary_uom_code
5458          AND NOT EXISTS
5459              ( select 'x'
5460                from mtl_uom_conversions
5461                where inventory_item_id = msii.inventory_item_id
5462                  and uom_code = msii.primary_uom_code
5463              );
5464 
5465       CURSOR c_ego_intf_rows
5466       IS
5467          SELECT msii.transaction_id,
5468                 tl.language,
5469                 tl.column_value,
5470                 msii.inventory_item_id,
5471                 msii.organization_id
5472            FROM mtl_system_items_interface msii,
5473                 ego_interface_tl tl,
5474                 mtl_system_items item
5475           WHERE item.inventory_item_id = msii.inventory_item_id
5476             AND item.organization_id = msii.organization_id
5477             AND msii.transaction_type in ('UPDATE','AUTO_CHILD')
5478             AND msii.process_flag = 4
5479             AND (msii.set_process_id = xset_id or msii.set_process_id = xset_id + 1000000000000)
5480             AND tl.unique_id = msii.transaction_id
5481             AND tl.set_process_id = msii.set_process_id
5482 		      AND UPPER(tl.table_name) = 'MTL_SYSTEM_ITEMS_INTERFACE'
5483 		      AND UPPER(tl.column_name) = 'DESCRIPTION'
5484             AND tl.language IN (SELECT l.language_code FROM fnd_languages l
5485                                  WHERE l.installed_flag IN ('I', 'B'));
5486 
5487       CURSOR is_gdsn_batch(cp_xset_id NUMBER) IS
5488          SELECT 1 FROM ego_import_option_sets
5489           WHERE batch_id = cp_xset_id
5490             AND enabled_for_data_pool = 'Y';
5491 
5492       CURSOR get_organization_code (cp_org_id VARCHAR2) IS
5493       	SELECT name
5494            FROM hr_organization_units
5495           WHERE organization_id = cp_org_id;
5496 
5497       -- Start fix for bug 7017691(7435552,7147893) Issue #2 Replacing COUNT(*) with CURSOR
5498       CURSOR c_duplicate_check(p_set_id NUMBER, p_inventory_item_id NUMBER,
5499         p_organization_id NUMBER) IS
5500         SELECT 1
5501         FROM   MTL_SYSTEM_ITEMS_INTERFACE
5502         WHERE  inventory_item_id = p_inventory_item_id
5503                AND organization_id = p_organization_id
5504                AND process_flag = 4
5505                AND set_process_id  = p_set_id
5506                AND transaction_type IN ('UPDATE', 'AUTO_CHILD');
5507       -- End fix for bug 7017691 Issue #2
5508 
5509       -- Start fix for bug 7017691(7435552,7147893) Issue #3 Move out of the
5510       -- C_msii_processed_records loop
5511       CURSOR c_item_number_updated
5512       IS
5513         SELECT msik.inventory_item_id,
5514                msii.segment1,msii.segment2,msii.segment3,msii.segment4,msii.segment5,
5515                msii.segment6,msii.segment7,msii.segment8,msii.segment9,msii.segment10,
5516                msii.segment11,msii.segment12,msii.segment13,msii.segment14,msii.segment15,
5517                msii.segment16,msii.segment17,msii.segment18,msii.segment19,msii.segment20
5518           FROM mtl_system_items_b_kfv msik,
5519                mtl_system_items_interface msii,
5520                mtl_parameters mp
5521          WHERE msii.set_process_id    = xset_id
5522            AND msii.transaction_type  = 'UPDATE'
5523            AND msii.process_flag      = 4
5524            AND msii.organization_id   = mp.master_organization_id
5525            AND mp.organization_id = mp.master_organization_id
5526            AND msii.inventory_item_id = msik.inventory_item_id
5527            AND msii.organization_id   = msik.organization_id
5528            AND msii.item_number      <> msik.concatenated_segments
5529            AND msik.concatenated_segments IS NOT NULL;
5530       -- End fix for bug 7017691 Issue #3
5531 
5532       TYPE transaction_type IS TABLE OF mtl_system_items_interface.transaction_id%TYPE
5533       INDEX BY BINARY_INTEGER;
5534 
5535         transaction_table transaction_type;
5536 
5537         l_sysdate          date  :=  SYSDATE;
5538         l_transaction_type varchar2(10)  :=  'UPDATE';
5539         l_last_updated_by  number;
5540         l_created_by       number;
5541         l_default_conversion_flag varchar2(1);
5542 	conversion_rate_temp NUMBER;
5543         temp_rowid         rowid;
5544         temp_status_code   varchar2(50);
5545         dumm_status        number;
5546         err_text           varchar2(250);
5547         l_INSTALLED_FLAG   VARCHAR2(1);
5548 
5549     l_return_status   VARCHAR2(1);
5550     l_msg_text        VARCHAR2(2000);
5551     l_cst_item_type   NUMBER;
5552 
5553     l_inv_debug_level	NUMBER := INVPUTLI.get_debug_level;     --Bug: 4667452
5554     l_is_gdsn_batch     NUMBER;
5555     org_name            VARCHAR2(1000);
5556     error_msg            VARCHAR2(1000);
5557     ext_flag            NUMBER := 0;
5558 
5559     l_dummy           NUMBER;  --7017691
5560 BEGIN
5561    -- calling UCCnet attribute updates
5562    -- added by Devendra for UCCnet functionality (11.5.10+)
5563    INV_EGO_REVISION_VALIDATE.Process_UCCnet_Attributes(
5564      P_Prog_AppId  => prg_appid
5565     ,P_Prog_Id     => prg_id
5566     ,P_Request_Id  => req_id
5567     ,P_User_Id     => user_id
5568     ,P_Login_Id    => login_id
5569     ,P_Set_id      => xset_id);
5570    -- added by Devendra for UCCnet functionality (11.5.10+)
5571 
5572    -- Start 3637854 : Pending ECO check and sync lifecycles
5573    INV_EGO_REVISION_VALIDATE.Pending_Eco_Check_Sync_Ids(
5574          P_Prog_AppId  => prg_appid
5575         ,P_Prog_Id     => prg_id
5576         ,P_Request_Id  => req_id
5577         ,P_User_Id     => user_id
5578         ,P_Login_Id    => login_id
5579         ,P_Set_id      => xset_id);
5580    -- End 3637854 : Pending ECO check and sync lifecycles
5581 
5582    IF l_inv_debug_level IN(101, 102) THEN
5583       INVPUTLI.info('INVUPD2B.inproit_process_item_update : begin');
5584    END IF;
5585 
5586    -- Identify the current session language as Base ('B') or Installed ('I')
5587    --
5588    select INSTALLED_FLAG
5589      into l_INSTALLED_FLAG
5590    from  FND_LANGUAGES
5591    where  LANGUAGE_CODE = userenv('LANG');
5592 
5593    -- Start fix for bug 7017691(7435552,7147893) Issue #1
5594    l_is_gdsn_batch := 0;
5595    OPEN  is_gdsn_batch(xset_id);
5596    FETCH is_gdsn_batch INTO l_is_gdsn_batch;
5597    CLOSE is_gdsn_batch;
5598    -- Start fix for bug 7017691 Issue #1
5599 
5600    FOR item_rec IN C_msii_processed_records_dup LOOP
5601      ext_flag        := 0;
5602 
5603      --Performing duplicate check validation for GDSN batches
5604      IF l_is_gdsn_batch = 1 THEN
5605        -- Start Fix for bug 7017691(7435552,7147893) Issue #2 Replacing
5606        -- COUNT(*) with CURSOR
5607         OPEN c_duplicate_check(xset_id, item_rec.inventory_item_id,
5608           item_rec.organization_id);
5609         FETCH c_duplicate_check INTO l_dummy;
5610 
5611         IF c_duplicate_check%FOUND THEN
5612           FETCH c_duplicate_check INTO l_dummy;
5613           IF c_duplicate_check%FOUND THEN
5614               ext_flag := 2;
5615           END IF;
5616         END IF;
5617 
5618         CLOSE c_duplicate_check;
5619       -- End Fix for bug 7017691 Issue #2
5620 
5621         IF ext_flag > 1 THEN
5622            UPDATE MTL_SYSTEM_ITEMS_INTERFACE
5623               SET process_flag = 3
5624             WHERE inventory_item_id = item_rec.inventory_item_id
5625               AND organization_id = item_rec.organization_id
5626               AND process_flag = 4
5627               AND set_process_id  = xset_id
5628               AND transaction_type IN ('UPDATE', 'AUTO_CHILD')
5629            RETURNING transaction_id BULK COLLECT INTO transaction_table;
5630 
5631 		     OPEN  get_organization_code(item_rec.organization_id);
5632 		     FETCH get_organization_code Into org_name;
5633 		     CLOSE get_organization_code;
5634 
5635            FND_MESSAGE.SET_NAME  ('INV', 'INV_IOI_DUPLICATE_REC_MSII');
5636            FND_MESSAGE.SET_TOKEN ('ITEM_NUMBER', item_rec.item_number);
5637            FND_MESSAGE.SET_TOKEN ('ORGANIZATION', org_name);
5638            error_msg := FND_MESSAGE.GET;
5639 
5640            IF transaction_table.COUNT > 0 THEN
5641               FOR j IN transaction_table.FIRST .. transaction_table.LAST LOOP
5642                  dumm_status := INVPUOPI.mtl_log_interface_err(
5643                                       item_rec.organization_id,
5644                                       user_id,
5645                                       login_id,
5646                                       prg_appid,
5647                                       prg_id,
5648                                       req_id,
5649                                       transaction_table(j),
5650                                       error_msg,
5651 	  	                                'INVENTORY_ITEM_ID',
5652                                       'MTL_SYSTEM_ITEMS_INTERFACE',
5653                                       'INV_IOI_ERR' ,
5654                                       err_text);
5655               END LOOP;
5656            END IF;
5657         END IF;
5658      END IF;
5659    END LOOP;
5660 
5661    FOR item_rec IN C_msii_processed_records LOOP
5662 
5663 /* All updates and inserts that happen for a given Item to production tables
5664    must ALL occur or NONE must occur. Also ALL Master-Child updates must happen
5665    or NONE.  Therefore defining a cursor that tries to lock all required
5666    records before proceeding.
5667 */
5668 
5669    DECLARE
5670 
5671       CURSOR C_lock_msi_records
5672       IS
5673          select msi.ROWID msi_rowid,
5674                 msi.inventory_item_status_code msi_status_code,
5675                 msi.lifecycle_id   msi_lifecycle_id,
5676                 msi.current_phase_id msi_current_phase_id,
5677                 msi.item_catalog_group_id msi_catalog_group_id,
5678                 msi.INVENTORY_ITEM_FLAG inv_item_flag,
5679                 msi.PURCHASING_ITEM_FLAG purchasing_flag,
5680                 msi.INTERNAL_ORDER_FLAG int_order_flag,
5681                 msi.MRP_PLANNING_CODE planning_code,
5682                 msi.SERVICE_ITEM_FLAG serv_item_flag,
5683                 msi.CUSTOMER_ORDER_FLAG cust_ord_flag,
5684                 msi.COSTING_ENABLED_FLAG cost_flag,
5685                 msi.ENG_ITEM_FLAG eng_flag,
5686 		         /* Adding GDSN Changes - R12 FPC */
5687 		          msi.GDSN_OUTBOUND_ENABLED_FLAG gdsn_flag,
5688                 msi.EAM_ITEM_TYPE eam_type,
5689                 msi.CONTRACT_ITEM_TYPE_CODE contract_type,
5690                 msi.INVENTORY_ASSET_FLAG inv_asset_flag,--Bug:3899614
5691                 msi.OBJECT_VERSION_NUMBER obj_ver_num,
5692                 msii.ROWID msii_rowid, msii.*
5693          from MTL_SYSTEM_ITEMS_B msi, MTL_SYSTEM_ITEMS_INTERFACE msii
5694          where item_rec.inventory_item_id = msii.inventory_item_id
5695            and item_rec.inventory_item_id = msi.inventory_item_id
5696            and msii.transaction_type in ('UPDATE','AUTO_CHILD')
5697            and msi.organization_id = msii.organization_id
5698            and msii.process_flag = 4
5699            and (msii.set_process_id = xset_id or msii.set_process_id = xset_id + 1000000000000)
5700          for update of msi.inventory_item_id nowait;
5701 
5702       resource_busy    EXCEPTION;
5703       -- Bug 5997870
5704       obj_version_error EXCEPTION;
5705       PRAGMA EXCEPTION_INIT (resource_busy, -54);
5706 
5707       -- 2810346: Lock failed record details into log
5708       l_org_id         mtl_system_items_interface.organization_id%TYPE;
5709       l_transaction_id mtl_system_items_interface.transaction_id%TYPE;
5710 
5711       l_target_lc_id   mtl_system_items_b.lifecycle_id%TYPE;
5712 
5713    BEGIN
5714       SAVEPOINT before_lock; -- Bug 5997870
5715       FOR rec IN C_lock_msi_records LOOP
5716 
5717         ---------- Coding changes for bug 5870114 starts------------
5718         -- If the current inventory item id and organization id matches with that set
5719         IF(obj_ver_rec.inventory_item_id IS NOT NULL AND
5720            obj_ver_rec.org_id IS NOT NULL) THEN    -- Check 1 some value is set..
5721           IF(rec.inventory_item_id = obj_ver_rec.inventory_item_id   AND
5722              rec.organization_id = obj_ver_rec.org_id) THEN   -- Check 2 , item id and org id matches
5723             IF( Nvl(rec.obj_ver_num,1) <> Nvl(obj_ver_rec.Object_Version_Number,1)) THEN -- Check 3, object version no. is not same...
5724                --Clear the values so that it does not persist to another call..
5725                obj_ver_rec.inventory_item_id := NULL;
5726                obj_ver_rec.org_id := NULL;
5727                obj_ver_rec.Object_Version_Number := NULL;
5728 
5729                ROLLBACK TO before_lock;  --Rollback and throw the error.
5730                RAISE   obj_version_error;
5731             END IF;
5732           END IF;
5733         END IF;
5734         --Clear the values so that it does not persist to another call..
5735         obj_ver_rec.inventory_item_id := NULL;
5736         obj_ver_rec.org_id := NULL;
5737         obj_ver_rec.Object_Version_Number := NULL;
5738 
5739         ---------- Coding changes for bug 5870114 ends------------
5740 
5741         /* Bug 2665114
5742           Add following condition to avoid performance issue */
5743 
5744          IF  (rec.inv_item_flag <> rec.INVENTORY_ITEM_FLAG )  or
5745              (rec.purchasing_flag <> rec.PURCHASING_ITEM_FLAG) or
5746              (rec.int_order_flag <> rec.INTERNAL_ORDER_FLAG) or
5747              (rec.planning_code <> rec.MRP_PLANNING_CODE ) or
5748              (rec.serv_item_flag <> rec.SERVICE_ITEM_FLAG) or
5749              (rec.cust_ord_flag <> rec.CUSTOMER_ORDER_FLAG) or
5750              (rec.cost_flag <> rec.COSTING_ENABLED_FLAG) or
5751              (rec.eng_flag <> rec.ENG_ITEM_FLAG) or
5752              (rec.eam_type <> rec.EAM_ITEM_TYPE) or
5753 	          ((rec.gdsn_flag <> rec.GDSN_OUTBOUND_ENABLED_FLAG) AND
5754                 (NVL(INV_EGO_REVISION_VALIDATE.Get_Process_Control(),'X')<> 'PLM_UI:Y') ) or
5755              (rec.contract_type <> rec.CONTRACT_ITEM_TYPE_CODE) then
5756 
5757 	     IF l_inv_debug_level IN(101, 102) THEN
5758            INVPUTLI.info('INVUPD2B: inserting the item category assignments for default category sets ');
5759          END IF;
5760 
5761          -- Creating item category assignments for the default category sets
5762          -- for the functional areas having the defining attribute enabled.
5763 
5764          insert into mtl_item_categories
5765          (
5766             inventory_item_id,
5767                         category_set_id,
5768                         category_id,
5769                         last_update_date,
5770                         last_updated_by,
5771                         creation_date,
5772                         created_by,
5773                         last_update_login,
5774                         program_application_id,
5775                         program_id,
5776                         program_update_date,
5777                         request_id,
5778                         organization_id
5779          )
5780          select
5781             rec.inventory_item_id,
5782                         s.category_set_id,
5783                         s.default_category_id,
5784                         sysdate,
5785                         -1,
5786                         sysdate,
5787                         -1,
5788                         -1,
5789                         -1,
5790                         -1,
5791                         sysdate,
5792                         -1,
5793                         rec.organization_id
5794          from  mtl_category_sets  s
5795          where  s.category_set_id in
5796                    ( select  d.category_set_id
5797                      from  mtl_default_category_sets  d
5798                      where  (d.functional_area_id =
5799                              decode(rec.INVENTORY_ITEM_FLAG,'Y',1,0)
5800                         or  d.functional_area_id =
5801                              decode(rec.PURCHASING_ITEM_FLAG,'Y',2,0)
5802                         or  d.functional_area_id =
5803                              decode(rec.INTERNAL_ORDER_FLAG,'Y',2,0)
5804                         or  d.functional_area_id =
5805                              decode(rec.MRP_PLANNING_CODE,6,0,3)
5806                         or  d.functional_area_id =
5807                              decode(rec.SERVICE_ITEM_FLAG,'Y',4,0)
5808                         or  d.functional_area_id =
5809                              decode(rec.CUSTOMER_ORDER_FLAG,'Y',7,0)
5810                         or  d.functional_area_id =
5811                              decode(rec.COSTING_ENABLED_FLAG,'Y',5,0)
5812                         or  d.functional_area_id =
5813                             decode(rec.ENG_ITEM_FLAG,'Y',6,0)
5814 	 	                /* Default vategory Assignment for GDSN Syndicated Items - R12 FPC */
5815 			               or  d.functional_area_id =
5816  			                   decode(rec.GDSN_OUTBOUND_ENABLED_FLAG, 'Y', 12,0)
5817                    or d.functional_area_id =
5818                         decode( NVL(rec.EAM_ITEM_TYPE, 0), 0, 0, 9 )
5819                    or d.functional_area_id =
5820                         decode( rec.CONTRACT_ITEM_TYPE_CODE,
5821                                  'SERVICE'      , 10,
5822                                  'WARRANTY'     , 10,
5823                                  'SUBSCRIPTION' , 10,
5824                                  'USAGE'        , 10, 0 )
5825            -- These Contract Item types also imply an item belonging to the Service functional area
5826                    or d.functional_area_id =
5827                          decode( rec.CONTRACT_ITEM_TYPE_CODE,
5828                                  'SERVICE'      , 4,
5829                                  'WARRANTY'     , 4, 0 )
5830                               )
5831                     )
5832               and  not exists
5833                    ( select 'already_exists'
5834                      from mtl_item_categories mic
5835                      where mic.inventory_item_id = rec.inventory_item_id
5836                        and mic.organization_id = rec.organization_id
5837                        and mic.category_set_id = s.category_set_id
5838                    );
5839 
5840 
5841            END IF;                      --- Bug 2665114
5842 
5843 -- 2433351,new functional area Product Reporting Looping through all the Orgs
5844             IF ( rec.transaction_type = 'UPDATE') THEN
5845              insert into mtl_item_categories
5846                  (
5847                     inventory_item_id,
5848                         category_set_id,
5849                         category_id,
5850                         last_update_date,
5851                         last_updated_by,
5852                         creation_date,
5853                         created_by,
5854                         last_update_login,
5855                         program_application_id,
5856                         program_id,
5857                         program_update_date,
5858                         request_id,
5859                         organization_id
5860                  )
5861                  select
5862                     rec.inventory_item_id,
5863                         s.category_set_id,
5864                         s.default_category_id,
5865                         sysdate,
5866                         -1,
5867                         sysdate,
5868                         -1,
5869                         -1,
5870                         -1,
5871                         -1,
5872                         sysdate,
5873                         -1,
5874                         p.organization_id
5875                  from  mtl_category_sets  s
5876                         ,  mtl_parameters       p
5877                  where
5878                      p.master_organization_id =
5879                              (select master_organization_id
5880                                 from mtl_parameters
5881                                 where organization_id = rec.organization_id
5882                                )
5883                  AND s.default_category_id IS NOT NULL --Bug: 2801594
5884                  and s.category_set_id in
5885                            ( select  d.category_set_id
5886                              from  mtl_default_category_sets  d
5887                              where  d.functional_area_id =
5888                                  decode( rec.INTERNAL_ORDER_FLAG, 'Y', 11, 0 )
5889                                     or d.functional_area_id =
5890                                  decode( rec.CUSTOMER_ORDER_FLAG, 'Y', 11, 0 )
5891                             )
5892                  and  EXISTS
5893                         ( SELECT 'x'
5894                           FROM  mtl_system_items_b  i
5895                           WHERE      i.inventory_item_id = rec.inventory_item_id
5896                              AND i.organization_id   = p.organization_id
5897                         )
5898         -- Check if the item already has any category assignment
5899                  and  not exists
5900                         ( select 'already_exists'
5901                              from mtl_item_categories mic
5902                              where mic.inventory_item_id = rec.inventory_item_id
5903                                --Bug 4089984. Modified following 'and' condition to
5904                                --  pick up rows from mtl_parameters table
5905                                and mic.organization_id = p.organization_id
5906                                and mic.category_set_id = s.category_set_id
5907                          );
5908               END IF;
5909 
5910 
5911 
5912       IF ( nvl(rec.msi_catalog_group_id,-999) <> nvl(rec.item_catalog_group_id,-999) ) THEN
5913 
5914          delete from mtl_descr_element_values
5915          where
5916                 inventory_item_id = rec.inventory_item_id
5917             and rec.item_catalog_group_id is not null
5918             and exists
5919                 ( select 'x'
5920                   from mtl_parameters MP
5921                   where MP.organization_id = rec.organization_id
5922                     and MP.master_organization_id = rec.organization_id
5923                 );
5924 
5925          insert into MTL_DESCR_ELEMENT_VALUES
5926          (
5927             inventory_item_id,
5928                  element_name,
5929                  default_element_flag,
5930                  last_update_date,
5931                  last_updated_by,
5932                  creation_date,
5933                  created_by,
5934                  last_update_login,
5935                  request_id,
5936                  program_application_id,
5937                  program_id,
5938                  program_update_date,
5939                  element_sequence
5940          )
5941          select
5942             rec.inventory_item_id,
5943              MDE.ELEMENT_NAME,
5944              MDE.default_element_flag,
5945              l_sysdate,
5946              user_id,       /* last_updated_by */
5947              l_sysdate,
5948              user_id,       /* created_by */
5949              login_id,      /* last_update_login */
5950              req_id,
5951              prg_appid,
5952              prg_id,
5953              l_sysdate,
5954              MDE.ELEMENT_SEQUENCE
5955          from
5956             mtl_descriptive_elements  MDE
5957          ,  mtl_parameters            MP
5958          where
5959                 rec.organization_id = MP.master_organization_id
5960             and rec.organization_id = MP.organization_id
5961             and MDE.item_catalog_group_id = nvl(rec.item_catalog_group_id,-999);
5962 
5963       END IF;
5964 --Bug:4132663 Not inserting if call from PLM UI
5965  IF (NVL(INV_EGO_REVISION_VALIDATE.Get_Process_Control(),'X')<> 'PLM_UI:Y' AND
5966           (( rec.msi_status_code <> rec.inventory_item_status_code )
5967           OR (NVL(rec.msi_lifecycle_id,1) <> NVL(rec.lifecycle_id,NVL(rec.msi_lifecycle_id,1)))
5968           OR (NVL(rec.msi_current_phase_id,1) <> NVL(rec.current_phase_id,NVL(rec.msi_current_phase_id,1)))))
5969       THEN
5970          insert into mtl_pending_item_status
5971          (  INVENTORY_ITEM_ID,
5972             ORGANIZATION_ID,
5973             STATUS_CODE,
5974             LIFECYCLE_ID,
5975             PHASE_ID,
5976             EFFECTIVE_DATE,
5977             IMPLEMENTED_DATE,
5978             PENDING_FLAG,
5979             LAST_UPDATE_DATE,
5980             LAST_UPDATED_BY,
5981             CREATION_DATE,
5982             CREATED_BY
5983          )
5984          values
5985          (  rec.inventory_item_id,
5986             rec.organization_id,
5987             rec.inventory_item_status_code,
5988             rec.lifecycle_id,
5989             rec.current_phase_id,
5990             l_sysdate,
5991             l_sysdate,
5992             'N',
5993             l_sysdate,
5994             user_id,
5995             l_sysdate,
5996             user_id
5997          );
5998 
5999       END IF;
6000 
6001       UPDATE  MTL_SYSTEM_ITEMS_B  MTLSYSI
6002       SET
6003                 --* Modified l_sysdate => Nvl(rec.LAST_UPDATE_DATE,l_sysdate) for Bug - 3313863
6004                 LAST_UPDATE_DATE               =        Nvl(rec.LAST_UPDATE_DATE,l_sysdate),
6005                 LAST_UPDATED_BY                =        user_id,
6006                 LAST_UPDATE_LOGIN               =        login_id,
6007                 SUMMARY_FLAG                    =        rec.SUMMARY_FLAG,
6008                 ENABLED_FLAG                    =        rec.ENABLED_FLAG,
6009 --                START_DATE_ACTIVE               =        rec.START_DATE_ACTIVE,      Commented for Bug: 4457440
6010 --                END_DATE_ACTIVE                 =        rec.END_DATE_ACTIVE,        Commented for Bug: 4457440
6011                 DESCRIPTION             =  decode(l_INSTALLED_FLAG, 'B', rec.DESCRIPTION, DESCRIPTION),
6012                 BUYER_ID                        =        rec.BUYER_ID,
6013                 ACCOUNTING_RULE_ID              =        rec.ACCOUNTING_RULE_ID,
6014                 INVOICING_RULE_ID               =        rec.INVOICING_RULE_ID,
6015                 ATTRIBUTE1                      =        rec.ATTRIBUTE1,
6016                 ATTRIBUTE2                      =        rec.ATTRIBUTE2,
6017                 ATTRIBUTE3                      =        rec.ATTRIBUTE3,
6018                 ATTRIBUTE4                      =        rec.ATTRIBUTE4,
6019                 ATTRIBUTE5                      =        rec.ATTRIBUTE5,
6020                 ATTRIBUTE6                      =        rec.ATTRIBUTE6,
6021                 ATTRIBUTE7                      =        rec.ATTRIBUTE7,
6022                 ATTRIBUTE8                      =        rec.ATTRIBUTE8,
6023                 ATTRIBUTE9                      =        rec.ATTRIBUTE9,
6024                 ATTRIBUTE10                     =        rec.ATTRIBUTE10,
6025                 ATTRIBUTE11                     =        rec.ATTRIBUTE11,
6026                 ATTRIBUTE12                     =        rec.ATTRIBUTE12,
6027                 ATTRIBUTE13                     =        rec.ATTRIBUTE13,
6028                 ATTRIBUTE14                     =        rec.ATTRIBUTE14,
6029                 ATTRIBUTE15                     =        rec.ATTRIBUTE15,
6030                 /* Start Bug 3713912 */
6031                 ATTRIBUTE16                     =        rec.ATTRIBUTE16,
6032                 ATTRIBUTE17                     =        rec.ATTRIBUTE17,
6033                 ATTRIBUTE18                     =        rec.ATTRIBUTE18,
6034                 ATTRIBUTE19                     =        rec.ATTRIBUTE19,
6035                 ATTRIBUTE20                     =        rec.ATTRIBUTE20,
6036                 ATTRIBUTE21                     =        rec.ATTRIBUTE21,
6037                 ATTRIBUTE22                     =        rec.ATTRIBUTE22,
6038                 ATTRIBUTE23                     =        rec.ATTRIBUTE23,
6039                 ATTRIBUTE24                     =        rec.ATTRIBUTE24,
6040                 ATTRIBUTE25                     =        rec.ATTRIBUTE25,
6041                 ATTRIBUTE26                     =        rec.ATTRIBUTE26,
6042                 ATTRIBUTE27                     =        rec.ATTRIBUTE27,
6043                 ATTRIBUTE28                     =        rec.ATTRIBUTE28,
6044                 ATTRIBUTE29                     =        rec.ATTRIBUTE29,
6045                 ATTRIBUTE30                     =        rec.ATTRIBUTE30,
6046                 /* End Bug 3713912 */
6047                 ATTRIBUTE_CATEGORY      =        rec.ATTRIBUTE_CATEGORY,
6048                 GLOBAL_ATTRIBUTE_CATEGORY       =        rec.GLOBAL_ATTRIBUTE_CATEGORY,
6049                 GLOBAL_ATTRIBUTE1               =        rec.GLOBAL_ATTRIBUTE1,
6050                 GLOBAL_ATTRIBUTE2               =        rec.GLOBAL_ATTRIBUTE2,
6051                 GLOBAL_ATTRIBUTE3               =        rec.GLOBAL_ATTRIBUTE3,
6052                 GLOBAL_ATTRIBUTE4               =        rec.GLOBAL_ATTRIBUTE4,
6053                 GLOBAL_ATTRIBUTE5               =        rec.GLOBAL_ATTRIBUTE5,
6054                 GLOBAL_ATTRIBUTE6               =        rec.GLOBAL_ATTRIBUTE6,
6055                 GLOBAL_ATTRIBUTE7               =        rec.GLOBAL_ATTRIBUTE7,
6056                 GLOBAL_ATTRIBUTE8               =        rec.GLOBAL_ATTRIBUTE8,
6057                 GLOBAL_ATTRIBUTE9               =        rec.GLOBAL_ATTRIBUTE9,
6058                 GLOBAL_ATTRIBUTE10              =        rec.GLOBAL_ATTRIBUTE10,
6059                 GLOBAL_ATTRIBUTE11               =        rec.GLOBAL_ATTRIBUTE11,
6060                 GLOBAL_ATTRIBUTE12               =        rec.GLOBAL_ATTRIBUTE12,
6061                 GLOBAL_ATTRIBUTE13               =        rec.GLOBAL_ATTRIBUTE13,
6062                 GLOBAL_ATTRIBUTE14               =        rec.GLOBAL_ATTRIBUTE14,
6063                 GLOBAL_ATTRIBUTE15               =        rec.GLOBAL_ATTRIBUTE15,
6064                 GLOBAL_ATTRIBUTE16               =        rec.GLOBAL_ATTRIBUTE16,
6065                 GLOBAL_ATTRIBUTE17               =        rec.GLOBAL_ATTRIBUTE17,
6066                 GLOBAL_ATTRIBUTE18               =        rec.GLOBAL_ATTRIBUTE18,
6067                 GLOBAL_ATTRIBUTE19               =        rec.GLOBAL_ATTRIBUTE19,
6068                 GLOBAL_ATTRIBUTE20              =        rec.GLOBAL_ATTRIBUTE20,
6069                 PURCHASING_ITEM_FLAG            =        rec.PURCHASING_ITEM_FLAG,
6070                 SHIPPABLE_ITEM_FLAG             =        rec.SHIPPABLE_ITEM_FLAG,
6071                 CUSTOMER_ORDER_FLAG             =        rec.CUSTOMER_ORDER_FLAG,
6072                 INTERNAL_ORDER_FLAG             =        rec.INTERNAL_ORDER_FLAG,
6073                 INVENTORY_ITEM_FLAG             =        rec.INVENTORY_ITEM_FLAG,
6074                 ENG_ITEM_FLAG                   =        rec.ENG_ITEM_FLAG,
6075                 INVENTORY_ASSET_FLAG            =        rec.INVENTORY_ASSET_FLAG,
6076                 PURCHASING_ENABLED_FLAG         =        rec.PURCHASING_ENABLED_FLAG,
6077                 CUSTOMER_ORDER_ENABLED_FLAG     =        rec.CUSTOMER_ORDER_ENABLED_FLAG,
6078                 INTERNAL_ORDER_ENABLED_FLAG     =        rec.INTERNAL_ORDER_ENABLED_FLAG,
6079                 SO_TRANSACTIONS_FLAG            =        rec.SO_TRANSACTIONS_FLAG,
6080                 MTL_TRANSACTIONS_ENABLED_FLAG   =        rec.MTL_TRANSACTIONS_ENABLED_FLAG,
6081                 STOCK_ENABLED_FLAG              =        rec.STOCK_ENABLED_FLAG,
6082                 BOM_ENABLED_FLAG                =        rec.BOM_ENABLED_FLAG,
6083                 BUILD_IN_WIP_FLAG               =        rec.BUILD_IN_WIP_FLAG,
6084                 REVISION_QTY_CONTROL_CODE       =        rec.REVISION_QTY_CONTROL_CODE,
6085                 ITEM_CATALOG_GROUP_ID           =        rec.ITEM_CATALOG_GROUP_ID,
6086                 CATALOG_STATUS_FLAG             =        rec.CATALOG_STATUS_FLAG,
6087                 RETURNABLE_FLAG                 =        rec.RETURNABLE_FLAG,
6088                 DEFAULT_SHIPPING_ORG            =        rec.DEFAULT_SHIPPING_ORG,
6089                 COLLATERAL_FLAG                 =        rec.COLLATERAL_FLAG,
6090                 TAXABLE_FLAG                    =        rec.TAXABLE_FLAG,
6091                 PURCHASING_TAX_CODE             =        rec.PURCHASING_TAX_CODE,
6092                 ALLOW_ITEM_DESC_UPDATE_FLAG     =        rec.ALLOW_ITEM_DESC_UPDATE_FLAG,
6093                 INSPECTION_REQUIRED_FLAG        =        rec.INSPECTION_REQUIRED_FLAG,
6094                 RECEIPT_REQUIRED_FLAG           =        rec.RECEIPT_REQUIRED_FLAG,
6095                 MARKET_PRICE                    =        rec.MARKET_PRICE,
6096                 HAZARD_CLASS_ID                 =        rec.HAZARD_CLASS_ID,
6097                 RFQ_REQUIRED_FLAG               =        rec.RFQ_REQUIRED_FLAG,
6098                 QTY_RCV_TOLERANCE               =        rec.QTY_RCV_TOLERANCE,
6099                 LIST_PRICE_PER_UNIT             =        rec.LIST_PRICE_PER_UNIT,
6100                 UN_NUMBER_ID                    =        rec.UN_NUMBER_ID,
6101                 PRICE_TOLERANCE_PERCENT         =        rec.PRICE_TOLERANCE_PERCENT,
6102                 ASSET_CATEGORY_ID               =        rec.ASSET_CATEGORY_ID,
6103                 ROUNDING_FACTOR                 =        rec.ROUNDING_FACTOR,
6104                 UNIT_OF_ISSUE                   =        rec.UNIT_OF_ISSUE,
6105                 ENFORCE_SHIP_TO_LOCATION_CODE   =        rec.ENFORCE_SHIP_TO_LOCATION_CODE,
6106                 ALLOW_SUBSTITUTE_RECEIPTS_FLAG  =        rec.ALLOW_SUBSTITUTE_RECEIPTS_FLAG,
6107                 ALLOW_UNORDERED_RECEIPTS_FLAG   =        rec.ALLOW_UNORDERED_RECEIPTS_FLAG,
6108                 ALLOW_EXPRESS_DELIVERY_FLAG     =        rec.ALLOW_EXPRESS_DELIVERY_FLAG,
6109                 DAYS_EARLY_RECEIPT_ALLOWED      =        rec.DAYS_EARLY_RECEIPT_ALLOWED,
6110                 DAYS_LATE_RECEIPT_ALLOWED       =        rec.DAYS_LATE_RECEIPT_ALLOWED,
6111                 RECEIPT_DAYS_EXCEPTION_CODE     =        rec.RECEIPT_DAYS_EXCEPTION_CODE,
6112                 RECEIVING_ROUTING_ID            =        rec.RECEIVING_ROUTING_ID,
6113                 INVOICE_CLOSE_TOLERANCE         =        rec.INVOICE_CLOSE_TOLERANCE,
6114                 RECEIVE_CLOSE_TOLERANCE         =        rec.RECEIVE_CLOSE_TOLERANCE,
6115                 AUTO_LOT_ALPHA_PREFIX           =        rec.AUTO_LOT_ALPHA_PREFIX,
6116                 START_AUTO_LOT_NUMBER           =        rec.START_AUTO_LOT_NUMBER,
6117                 LOT_CONTROL_CODE                =        rec.LOT_CONTROL_CODE,
6118                 SHELF_LIFE_CODE                 =        rec.SHELF_LIFE_CODE,
6119                 SHELF_LIFE_DAYS                 =        rec.SHELF_LIFE_DAYS,
6120                 SERIAL_NUMBER_CONTROL_CODE      =        rec.SERIAL_NUMBER_CONTROL_CODE,
6121                 START_AUTO_SERIAL_NUMBER        =        rec.START_AUTO_SERIAL_NUMBER,
6122                 AUTO_SERIAL_ALPHA_PREFIX        =        rec.AUTO_SERIAL_ALPHA_PREFIX,
6123                 SOURCE_TYPE                     =        rec.SOURCE_TYPE,
6124                 SOURCE_ORGANIZATION_ID          =        rec.SOURCE_ORGANIZATION_ID,
6125                 SOURCE_SUBINVENTORY             =        rec.SOURCE_SUBINVENTORY,
6126                 EXPENSE_ACCOUNT                 =        rec.EXPENSE_ACCOUNT,
6127                 ENCUMBRANCE_ACCOUNT             =        rec.ENCUMBRANCE_ACCOUNT,
6128                 RESTRICT_SUBINVENTORIES_CODE    =        rec.RESTRICT_SUBINVENTORIES_CODE,
6129                 UNIT_WEIGHT                     =        rec.UNIT_WEIGHT,
6130                 WEIGHT_UOM_CODE                 =        rec.WEIGHT_UOM_CODE,
6131                 VOLUME_UOM_CODE                 =        rec.VOLUME_UOM_CODE,
6132                 UNIT_VOLUME                     =        rec.UNIT_VOLUME,
6133                 RESTRICT_LOCATORS_CODE          =        rec.RESTRICT_LOCATORS_CODE,
6134                 LOCATION_CONTROL_CODE           =        rec.LOCATION_CONTROL_CODE,
6135                 SHRINKAGE_RATE                  =        rec.SHRINKAGE_RATE,
6136                 ACCEPTABLE_EARLY_DAYS           =        rec.ACCEPTABLE_EARLY_DAYS,
6137                 PLANNING_TIME_FENCE_CODE        =        rec.PLANNING_TIME_FENCE_CODE,
6138                 DEMAND_TIME_FENCE_CODE          =        rec.DEMAND_TIME_FENCE_CODE,
6139                 LEAD_TIME_LOT_SIZE              =        rec.LEAD_TIME_LOT_SIZE,
6140                 STD_LOT_SIZE                    =        rec.STD_LOT_SIZE,
6141                 CUM_MANUFACTURING_LEAD_TIME     =        rec.CUM_MANUFACTURING_LEAD_TIME,
6142                 OVERRUN_PERCENTAGE              =        rec.OVERRUN_PERCENTAGE,
6143                 ACCEPTABLE_RATE_INCREASE        =        rec.ACCEPTABLE_RATE_INCREASE,
6144                 ACCEPTABLE_RATE_DECREASE        =        rec.ACCEPTABLE_RATE_DECREASE,
6145                 CUMULATIVE_TOTAL_LEAD_TIME      =        rec.CUMULATIVE_TOTAL_LEAD_TIME,
6146                 PLANNING_TIME_FENCE_DAYS        =        rec.PLANNING_TIME_FENCE_DAYS,
6147                 DEMAND_TIME_FENCE_DAYS          =        rec.DEMAND_TIME_FENCE_DAYS,
6148                 END_ASSEMBLY_PEGGING_FLAG       =        rec.END_ASSEMBLY_PEGGING_FLAG,
6149                 PLANNING_EXCEPTION_SET          =        rec.PLANNING_EXCEPTION_SET,
6150                 BOM_ITEM_TYPE                   =        rec.BOM_ITEM_TYPE,
6151                 PICK_COMPONENTS_FLAG            =        rec.PICK_COMPONENTS_FLAG,
6152                 REPLENISH_TO_ORDER_FLAG         =        rec.REPLENISH_TO_ORDER_FLAG,
6153                 BASE_ITEM_ID                    =        rec.BASE_ITEM_ID,
6154                 ATP_COMPONENTS_FLAG             =        rec.ATP_COMPONENTS_FLAG,
6155                 ATP_FLAG                        =        rec.ATP_FLAG,
6156                 FIXED_LEAD_TIME                 =        rec.FIXED_LEAD_TIME,
6157                 VARIABLE_LEAD_TIME              =        rec.VARIABLE_LEAD_TIME,
6158                 WIP_SUPPLY_LOCATOR_ID           =        rec.WIP_SUPPLY_LOCATOR_ID,
6159                 WIP_SUPPLY_TYPE                 =        rec.WIP_SUPPLY_TYPE,
6160                 WIP_SUPPLY_SUBINVENTORY         =        rec.WIP_SUPPLY_SUBINVENTORY,
6161                 PRIMARY_UOM_CODE                =        rec.PRIMARY_UOM_CODE,
6162                 PRIMARY_UNIT_OF_MEASURE         =        rec.PRIMARY_UNIT_OF_MEASURE,
6163                 ALLOWED_UNITS_LOOKUP_CODE       =        rec.ALLOWED_UNITS_LOOKUP_CODE,
6164                 COST_OF_SALES_ACCOUNT           =        rec.COST_OF_SALES_ACCOUNT,
6165                 SALES_ACCOUNT                   =        rec.SALES_ACCOUNT,
6166                 DEFAULT_INCLUDE_IN_ROLLUP_FLAG  =        rec.DEFAULT_INCLUDE_IN_ROLLUP_FLAG,
6167                 INVENTORY_ITEM_STATUS_CODE      =        rec.INVENTORY_ITEM_STATUS_CODE,
6168                 INVENTORY_PLANNING_CODE         =        rec.INVENTORY_PLANNING_CODE,
6169                 PLANNER_CODE                    =        rec.PLANNER_CODE,
6170                 PLANNING_MAKE_BUY_CODE          =        rec.PLANNING_MAKE_BUY_CODE,
6171                 FIXED_LOT_MULTIPLIER            =        rec.FIXED_LOT_MULTIPLIER,
6172                 ROUNDING_CONTROL_TYPE           =        rec.ROUNDING_CONTROL_TYPE,
6173                 CARRYING_COST                   =        rec.CARRYING_COST,
6174                 POSTPROCESSING_LEAD_TIME        =        rec.POSTPROCESSING_LEAD_TIME,
6175                 PREPROCESSING_LEAD_TIME         =        rec.PREPROCESSING_LEAD_TIME,
6176                 FULL_LEAD_TIME                  =        rec.FULL_LEAD_TIME,
6177                 ORDER_COST                      =        rec.ORDER_COST,
6178                 MRP_SAFETY_STOCK_PERCENT        =        rec.MRP_SAFETY_STOCK_PERCENT,
6179                 MRP_SAFETY_STOCK_CODE           =        rec.MRP_SAFETY_STOCK_CODE,
6180                 MIN_MINMAX_QUANTITY             =        rec.MIN_MINMAX_QUANTITY,
6181                 MAX_MINMAX_QUANTITY             =        rec.MAX_MINMAX_QUANTITY,
6182                 MINIMUM_ORDER_QUANTITY          =        rec.MINIMUM_ORDER_QUANTITY,
6183                 FIXED_ORDER_QUANTITY            =        rec.FIXED_ORDER_QUANTITY,
6184                 FIXED_DAYS_SUPPLY               =        rec.FIXED_DAYS_SUPPLY,
6185                 MAXIMUM_ORDER_QUANTITY          =        rec.MAXIMUM_ORDER_QUANTITY,
6186                 ATP_RULE_ID                     =        rec.ATP_RULE_ID,
6187                 PICKING_RULE_ID                 =        rec.PICKING_RULE_ID,
6188                 RESERVABLE_TYPE                 =        rec.RESERVABLE_TYPE,
6189                 POSITIVE_MEASUREMENT_ERROR      =        rec.POSITIVE_MEASUREMENT_ERROR,
6190                 NEGATIVE_MEASUREMENT_ERROR      =        rec.NEGATIVE_MEASUREMENT_ERROR,
6191                 ENGINEERING_ECN_CODE            =        rec.ENGINEERING_ECN_CODE,
6192                 ENGINEERING_ITEM_ID             =        rec.ENGINEERING_ITEM_ID,
6193                 ENGINEERING_DATE                =        rec.ENGINEERING_DATE,
6194                 SERVICE_STARTING_DELAY          =        rec.SERVICE_STARTING_DELAY,
6195                 SERVICEABLE_COMPONENT_FLAG      =        rec.SERVICEABLE_COMPONENT_FLAG,
6196                 SERVICEABLE_PRODUCT_FLAG        =        rec.SERVICEABLE_PRODUCT_FLAG,
6197                 BASE_WARRANTY_SERVICE_ID        =        rec.BASE_WARRANTY_SERVICE_ID,
6198                 PAYMENT_TERMS_ID                =        rec.PAYMENT_TERMS_ID,
6199                 PREVENTIVE_MAINTENANCE_FLAG     =        rec.PREVENTIVE_MAINTENANCE_FLAG,
6200                 PRIMARY_SPECIALIST_ID           =        rec.PRIMARY_SPECIALIST_ID,
6201                 SECONDARY_SPECIALIST_ID         =        rec.SECONDARY_SPECIALIST_ID,
6202                 SERVICEABLE_ITEM_CLASS_ID       =        rec.SERVICEABLE_ITEM_CLASS_ID,
6203                 TIME_BILLABLE_FLAG              =        rec.TIME_BILLABLE_FLAG,
6204                 MATERIAL_BILLABLE_FLAG          =        rec.MATERIAL_BILLABLE_FLAG,
6205                 EXPENSE_BILLABLE_FLAG           =        rec.EXPENSE_BILLABLE_FLAG,
6206                 PRORATE_SERVICE_FLAG            =        rec.PRORATE_SERVICE_FLAG,
6207                 COVERAGE_SCHEDULE_ID            =        rec.COVERAGE_SCHEDULE_ID,
6208                 SERVICE_DURATION_PERIOD_CODE    =        rec.SERVICE_DURATION_PERIOD_CODE,
6209                 SERVICE_DURATION                =        rec.SERVICE_DURATION,
6210                 MAX_WARRANTY_AMOUNT             =        rec.MAX_WARRANTY_AMOUNT,
6211                 RESPONSE_TIME_PERIOD_CODE       =        rec.RESPONSE_TIME_PERIOD_CODE,
6212                 RESPONSE_TIME_VALUE             =        rec.RESPONSE_TIME_VALUE,
6213                 NEW_REVISION_CODE               =        rec.NEW_REVISION_CODE,
6214                 TAX_CODE                        =        rec.TAX_CODE,
6215                 MUST_USE_APPROVED_VENDOR_FLAG   =        rec.MUST_USE_APPROVED_VENDOR_FLAG,
6216                 SAFETY_STOCK_BUCKET_DAYS        =        rec.SAFETY_STOCK_BUCKET_DAYS,
6217                 AUTO_REDUCE_MPS                 =        rec.AUTO_REDUCE_MPS,
6218                 COSTING_ENABLED_FLAG            =        rec.COSTING_ENABLED_FLAG,
6219                 INVOICEABLE_ITEM_FLAG           =        rec.INVOICEABLE_ITEM_FLAG,
6220                 INVOICE_ENABLED_FLAG            =        rec.INVOICE_ENABLED_FLAG,
6221                 OUTSIDE_OPERATION_FLAG          =        rec.OUTSIDE_OPERATION_FLAG,
6222                 OUTSIDE_OPERATION_UOM_TYPE      =        rec.OUTSIDE_OPERATION_UOM_TYPE,
6223                 AUTO_CREATED_CONFIG_FLAG        =        rec.AUTO_CREATED_CONFIG_FLAG,
6224                 CYCLE_COUNT_ENABLED_FLAG        =        rec.CYCLE_COUNT_ENABLED_FLAG,
6225                 MODEL_CONFIG_CLAUSE_NAME        =        rec.MODEL_CONFIG_CLAUSE_NAME,
6226                 SHIP_MODEL_COMPLETE_FLAG        =        rec.SHIP_MODEL_COMPLETE_FLAG,
6227                 MRP_PLANNING_CODE               =        rec.MRP_PLANNING_CODE,
6228                 RETURN_INSPECTION_REQUIREMENT   =        rec.RETURN_INSPECTION_REQUIREMENT,
6229                 REQUEST_ID                      =        req_id,
6230                 PROGRAM_APPLICATION_ID          =        prg_appid,
6231                 PROGRAM_ID                      =        prg_id,
6232                 PROGRAM_UPDATE_DATE             =        l_sysdate,
6233                 REPETITIVE_PLANNING_FLAG        =        rec.REPETITIVE_PLANNING_FLAG,
6234                 QTY_RCV_EXCEPTION_CODE          =        rec.QTY_RCV_EXCEPTION_CODE,
6235                 MRP_CALCULATE_ATP_FLAG          =        rec.MRP_CALCULATE_ATP_FLAG,
6236                 ITEM_TYPE                       =        rec.ITEM_TYPE,
6237                 WARRANTY_VENDOR_ID              =        rec.WARRANTY_VENDOR_ID,
6238                 ATO_FORECAST_CONTROL            =        rec.ATO_FORECAST_CONTROL,
6239                 RELEASE_TIME_FENCE_CODE         =        rec.RELEASE_TIME_FENCE_CODE,
6240                 RELEASE_TIME_FENCE_DAYS         =        rec.RELEASE_TIME_FENCE_DAYS,
6241                 CONTAINER_ITEM_FLAG             =        rec.CONTAINER_ITEM_FLAG,
6242                 CONTAINER_TYPE_CODE             =        rec.CONTAINER_TYPE_CODE,
6243                 INTERNAL_VOLUME                 =        rec.INTERNAL_VOLUME,
6244                 MAXIMUM_LOAD_WEIGHT             =        rec.MAXIMUM_LOAD_WEIGHT,
6245                 MINIMUM_FILL_PERCENT            =        rec.MINIMUM_FILL_PERCENT,
6246                 VEHICLE_ITEM_FLAG               =        rec.VEHICLE_ITEM_FLAG,
6247 
6248          CHECK_SHORTAGES_FLAG           =  rec.CHECK_SHORTAGES_FLAG
6249       ,  EFFECTIVITY_CONTROL            =  rec.EFFECTIVITY_CONTROL
6250 
6251       ,   OVERCOMPLETION_TOLERANCE_TYPE =  rec.OVERCOMPLETION_TOLERANCE_TYPE
6252       ,   OVERCOMPLETION_TOLERANCE_VALUE        =  rec.OVERCOMPLETION_TOLERANCE_VALUE
6253       ,   OVER_SHIPMENT_TOLERANCE       =  rec.OVER_SHIPMENT_TOLERANCE
6254       ,   UNDER_SHIPMENT_TOLERANCE      =  rec.UNDER_SHIPMENT_TOLERANCE
6255       ,   OVER_RETURN_TOLERANCE         =  rec.OVER_RETURN_TOLERANCE
6256       ,   UNDER_RETURN_TOLERANCE        =  rec.UNDER_RETURN_TOLERANCE
6257       ,   EQUIPMENT_TYPE                =  rec.EQUIPMENT_TYPE
6258       ,   RECOVERED_PART_DISP_CODE      =  rec.RECOVERED_PART_DISP_CODE
6259       ,   DEFECT_TRACKING_ON_FLAG       =  rec.DEFECT_TRACKING_ON_FLAG
6260       ,   EVENT_FLAG                    =  rec.EVENT_FLAG
6261       ,   ELECTRONIC_FLAG               =  rec.ELECTRONIC_FLAG
6262       ,   DOWNLOADABLE_FLAG             =  rec.DOWNLOADABLE_FLAG
6263       ,   VOL_DISCOUNT_EXEMPT_FLAG      =  rec.VOL_DISCOUNT_EXEMPT_FLAG
6264       ,   COUPON_EXEMPT_FLAG            =  rec.COUPON_EXEMPT_FLAG
6265       ,   COMMS_NL_TRACKABLE_FLAG       =  rec.COMMS_NL_TRACKABLE_FLAG
6266       ,   ASSET_CREATION_CODE           =  rec.ASSET_CREATION_CODE
6267       ,   COMMS_ACTIVATION_REQD_FLAG    =  rec.COMMS_ACTIVATION_REQD_FLAG
6268       ,   ORDERABLE_ON_WEB_FLAG         =  rec.ORDERABLE_ON_WEB_FLAG
6269       ,   BACK_ORDERABLE_FLAG           =  rec.BACK_ORDERABLE_FLAG
6270       --
6271       ,  WEB_STATUS                     =  rec.WEB_STATUS
6272       ,  INDIVISIBLE_FLAG               =  rec.INDIVISIBLE_FLAG
6273       --
6274       ,   DIMENSION_UOM_CODE            =  rec.DIMENSION_UOM_CODE
6275       ,   UNIT_LENGTH                   =  rec.UNIT_LENGTH
6276       ,   UNIT_WIDTH                    =  rec.UNIT_WIDTH
6277       ,   UNIT_HEIGHT                   =  rec.UNIT_HEIGHT
6278       ,   BULK_PICKED_FLAG              =  rec.BULK_PICKED_FLAG
6279       ,   LOT_STATUS_ENABLED            =  rec.LOT_STATUS_ENABLED
6280       ,   DEFAULT_LOT_STATUS_ID         =  rec.DEFAULT_LOT_STATUS_ID
6281       ,   SERIAL_STATUS_ENABLED         =  rec.SERIAL_STATUS_ENABLED
6282       ,   DEFAULT_SERIAL_STATUS_ID      =  rec.DEFAULT_SERIAL_STATUS_ID
6283       ,   LOT_SPLIT_ENABLED             =  rec.LOT_SPLIT_ENABLED
6284       ,   LOT_MERGE_ENABLED             =  rec.LOT_MERGE_ENABLED
6285       ,   INVENTORY_CARRY_PENALTY       =  rec.INVENTORY_CARRY_PENALTY
6286       ,   OPERATION_SLACK_PENALTY       =  rec.OPERATION_SLACK_PENALTY
6287       ,   FINANCING_ALLOWED_FLAG        =  rec.FINANCING_ALLOWED_FLAG
6288       ,  EAM_ITEM_TYPE                  =  rec.EAM_ITEM_TYPE
6289       ,  EAM_ACTIVITY_TYPE_CODE         =  rec.EAM_ACTIVITY_TYPE_CODE
6290       ,  EAM_ACTIVITY_CAUSE_CODE        =  rec.EAM_ACTIVITY_CAUSE_CODE
6291       ,  EAM_ACT_NOTIFICATION_FLAG      =  rec.EAM_ACT_NOTIFICATION_FLAG
6292       ,  EAM_ACT_SHUTDOWN_STATUS        =  rec.EAM_ACT_SHUTDOWN_STATUS
6293       ,  DUAL_UOM_CONTROL               =  rec.DUAL_UOM_CONTROL
6294       ,  SECONDARY_UOM_CODE             =  rec.SECONDARY_UOM_CODE
6295       ,  DUAL_UOM_DEVIATION_HIGH        =  rec.DUAL_UOM_DEVIATION_HIGH
6296       ,  DUAL_UOM_DEVIATION_LOW         =  rec.DUAL_UOM_DEVIATION_LOW
6297       --
6298       -- Service Item, Warranty, Usage flag attributes are dependent on
6299       -- and derived from Contract Item Type; supported for view only.
6300       --
6301       ,  SERVICE_ITEM_FLAG              =  DECODE( rec.CONTRACT_ITEM_TYPE_CODE,
6302               'SERVICE'      , 'Y',
6303               'WARRANTY'     , 'Y', 'N' )
6304       ,  VENDOR_WARRANTY_FLAG           =  DECODE( rec.CONTRACT_ITEM_TYPE_CODE, 'WARRANTY', 'Y', 'N' )
6305       ,  USAGE_ITEM_FLAG                =  DECODE( rec.CONTRACT_ITEM_TYPE_CODE, 'USAGE', 'Y', NULL )
6306       --
6307       ,  CONTRACT_ITEM_TYPE_CODE        =  rec.CONTRACT_ITEM_TYPE_CODE
6308       ,  SUBSCRIPTION_DEPEND_FLAG       =  rec.SUBSCRIPTION_DEPEND_FLAG
6309       --
6310       ,  SERV_REQ_ENABLED_CODE          =  rec.SERV_REQ_ENABLED_CODE
6311       ,  SERV_BILLING_ENABLED_FLAG      =  rec.SERV_BILLING_ENABLED_FLAG
6312       ,  SERV_IMPORTANCE_LEVEL          =  rec.SERV_IMPORTANCE_LEVEL
6313       ,  PLANNED_INV_POINT_FLAG         =  rec.PLANNED_INV_POINT_FLAG
6314       ,  LOT_TRANSLATE_ENABLED          =  rec.LOT_TRANSLATE_ENABLED
6315       ,  DEFAULT_SO_SOURCE_TYPE         =  rec.DEFAULT_SO_SOURCE_TYPE
6316       ,  CREATE_SUPPLY_FLAG             =  rec.CREATE_SUPPLY_FLAG
6317       ,  SUBSTITUTION_WINDOW_CODE       =  rec.SUBSTITUTION_WINDOW_CODE
6318       ,  SUBSTITUTION_WINDOW_DAYS       =  rec.SUBSTITUTION_WINDOW_DAYS
6319 --Added as part of 11.5.9
6320       ,  LOT_SUBSTITUTION_ENABLED       =  rec.LOT_SUBSTITUTION_ENABLED
6321       ,  MINIMUM_LICENSE_QUANTITY       =  rec.MINIMUM_LICENSE_QUANTITY
6322       ,  EAM_ACTIVITY_SOURCE_CODE       =  rec.EAM_ACTIVITY_SOURCE_CODE
6323       ,  IB_ITEM_INSTANCE_CLASS         =  rec.IB_ITEM_INSTANCE_CLASS
6324       ,  CONFIG_MODEL_TYPE              =  rec.CONFIG_MODEL_TYPE
6325       --2777118:IOI Lifecycle and Phase validations
6326       ,CURRENT_PHASE_ID                 = rec.CURRENT_PHASE_ID
6327       --2805950 Missed placing lifecycle id during 2777118
6328       ,LIFECYCLE_ID                     = rec.LIFECYCLE_ID
6329 --Added as part of 11.5.10
6330       ,  TRACKING_QUANTITY_IND          =  rec.TRACKING_QUANTITY_IND
6331       ,  ONT_PRICING_QTY_SOURCE         =  rec.ONT_PRICING_QTY_SOURCE
6332       ,  SECONDARY_DEFAULT_IND          =  rec.SECONDARY_DEFAULT_IND
6333       ,  CONFIG_ORGS                    =  rec.CONFIG_ORGS
6334       ,  CONFIG_MATCH                   =  rec.CONFIG_MATCH
6335         ,VMI_MINIMUM_UNITS                 = rec.VMI_MINIMUM_UNITS
6336         ,VMI_MINIMUM_DAYS                  = rec.VMI_MINIMUM_DAYS
6337         ,VMI_MAXIMUM_UNITS                 = rec.VMI_MAXIMUM_UNITS
6338         ,VMI_MAXIMUM_DAYS                  = rec.VMI_MAXIMUM_DAYS
6339         ,VMI_FIXED_ORDER_QUANTITY          = rec.VMI_FIXED_ORDER_QUANTITY
6340         ,SO_AUTHORIZATION_FLAG             = rec.SO_AUTHORIZATION_FLAG
6341         ,CONSIGNED_FLAG                    = rec.CONSIGNED_FLAG
6342         ,ASN_AUTOEXPIRE_FLAG               = rec.ASN_AUTOEXPIRE_FLAG
6343         ,VMI_FORECAST_TYPE                 = rec.VMI_FORECAST_TYPE
6344         ,FORECAST_HORIZON                  = rec.FORECAST_HORIZON
6345         ,EXCLUDE_FROM_BUDGET_FLAG          = rec.EXCLUDE_FROM_BUDGET_FLAG
6346         ,DAYS_TGT_INV_SUPPLY               = rec.DAYS_TGT_INV_SUPPLY
6347         ,DAYS_TGT_INV_WINDOW               = rec.DAYS_TGT_INV_WINDOW
6348         ,DAYS_MAX_INV_SUPPLY               = rec.DAYS_MAX_INV_SUPPLY
6349         ,DAYS_MAX_INV_WINDOW               = rec.DAYS_MAX_INV_WINDOW
6350         ,DRP_PLANNED_FLAG                  = rec.DRP_PLANNED_FLAG
6351         ,CRITICAL_COMPONENT_FLAG           = rec.CRITICAL_COMPONENT_FLAG
6352         ,CONTINOUS_TRANSFER                = rec.CONTINOUS_TRANSFER
6353         ,CONVERGENCE                       = rec.CONVERGENCE
6354         ,DIVERGENCE                        = rec.DIVERGENCE
6355         ,OBJECT_VERSION_NUMBER             = NVL(OBJECT_VERSION_NUMBER,1)+1
6356          --Start Bug 3713912
6357         ,LOT_DIVISIBLE_FLAG                = rec.LOT_DIVISIBLE_FLAG
6358         ,GRADE_CONTROL_FLAG                = rec.GRADE_CONTROL_FLAG
6359         ,DEFAULT_GRADE                     = rec.DEFAULT_GRADE
6360         ,CHILD_LOT_FLAG                    = rec.CHILD_LOT_FLAG
6361         ,PARENT_CHILD_GENERATION_FLAG      = rec.PARENT_CHILD_GENERATION_FLAG
6362         ,CHILD_LOT_PREFIX                  = rec.CHILD_LOT_PREFIX
6363         ,CHILD_LOT_STARTING_NUMBER         = rec.CHILD_LOT_STARTING_NUMBER
6364         ,CHILD_LOT_VALIDATION_FLAG         = rec.CHILD_LOT_VALIDATION_FLAG
6365         ,COPY_LOT_ATTRIBUTE_FLAG           = rec.COPY_LOT_ATTRIBUTE_FLAG
6366         ,RECIPE_ENABLED_FLAG               = rec.RECIPE_ENABLED_FLAG
6367         ,PROCESS_QUALITY_ENABLED_FLAG      = rec.PROCESS_QUALITY_ENABLED_FLAG
6368         ,PROCESS_EXECUTION_ENABLED_FLAG    = rec.PROCESS_EXECUTION_ENABLED_FLAG
6369         ,PROCESS_COSTING_ENABLED_FLAG      = rec.PROCESS_COSTING_ENABLED_FLAG
6370         ,PROCESS_SUPPLY_SUBINVENTORY       = rec.PROCESS_SUPPLY_SUBINVENTORY
6371         ,PROCESS_SUPPLY_LOCATOR_ID         = rec.PROCESS_SUPPLY_LOCATOR_ID
6372         ,PROCESS_YIELD_SUBINVENTORY        = rec.PROCESS_YIELD_SUBINVENTORY
6373         ,PROCESS_YIELD_LOCATOR_ID          = rec.PROCESS_YIELD_LOCATOR_ID
6374         ,HAZARDOUS_MATERIAL_FLAG           = rec.HAZARDOUS_MATERIAL_FLAG
6375         ,CAS_NUMBER                        = rec.CAS_NUMBER
6376         ,RETEST_INTERVAL                   = rec.RETEST_INTERVAL
6377         ,EXPIRATION_ACTION_INTERVAL        = rec.EXPIRATION_ACTION_INTERVAL
6378         ,EXPIRATION_ACTION_CODE            = rec.EXPIRATION_ACTION_CODE
6379         ,MATURITY_DAYS                     = rec.MATURITY_DAYS
6380         ,HOLD_DAYS                         = rec.HOLD_DAYS
6381 	 --End Bug 3713912
6382 	 -- R12 Enhacement
6383 	,CHARGE_PERIODICITY_CODE           = rec.CHARGE_PERIODICITY_CODE
6384 	,REPAIR_LEADTIME                   = rec.REPAIR_LEADTIME
6385 	,REPAIR_YIELD                      = rec.REPAIR_YIELD
6386 	,PREPOSITION_POINT                 = rec.PREPOSITION_POINT
6387 	,REPAIR_PROGRAM                    = rec.REPAIR_PROGRAM
6388 	,SUBCONTRACTING_COMPONENT          = rec.SUBCONTRACTING_COMPONENT
6389 	,OUTSOURCED_ASSEMBLY               = rec.OUTSOURCED_ASSEMBLY
6390 	/* New attributes for R12 FPC */
6391 	,GDSN_OUTBOUND_ENABLED_FLAG        = rec.GDSN_OUTBOUND_ENABLED_FLAG
6392 	,TRADE_ITEM_DESCRIPTOR             = rec.TRADE_ITEM_DESCRIPTOR
6393 	,STYLE_ITEM_FLAG		   = rec.STYLE_ITEM_FLAG
6394         ,STYLE_ITEM_ID                     = rec.STYLE_ITEM_ID
6395       WHERE
6396 
6397          MTLSYSI.rowid = rec.msi_rowid;
6398 
6399       --
6400       -- R11.5 MLS
6401       --
6402       update MTL_SYSTEM_ITEMS_TL
6403       set
6404          DESCRIPTION         =  rec.DESCRIPTION,
6405          LONG_DESCRIPTION    =  rec.LONG_DESCRIPTION,
6406          LAST_UPDATE_DATE    =  NVL(rec.LAST_UPDATE_DATE,l_sysdate),
6407          LAST_UPDATED_BY     =  user_id,
6408          LAST_UPDATE_LOGIN   =  login_id,
6409          SOURCE_LANG         =  userenv('LANG')
6410       where
6411              INVENTORY_ITEM_ID = rec.INVENTORY_ITEM_ID
6412          and ORGANIZATION_ID = rec.ORGANIZATION_ID
6413          and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
6414   --Bug: 3899614,2948014 Updating the cst tables if asset flag is changed
6415       IF(rec.inv_asset_flag <> rec.INVENTORY_ASSET_FLAG )THEN
6416            INV_ITEM_PVT.Delete_Cost_Details(
6417             P_Item_Id             => rec.inventory_item_id
6418            ,P_Org_Id              => rec.organization_id
6419            ,P_Asset_Flag          => rec.inventory_asset_flag
6420            ,P_Cost_Txn            => NULL
6421            ,P_Last_Updated_By     => user_id
6422            ,P_Last_Updated_Login  => login_id);
6423            IF (NVL(rec.inv_asset_flag,'N')='N' AND rec.INVENTORY_ASSET_FLAG='Y' )THEN
6424              IF rec.planning_make_buy_code IN (1,2) THEN
6425                l_cst_item_type := rec.planning_make_buy_code;
6426              ELSE
6427                l_cst_item_type := 2;
6428              END IF;
6429              INVIDIT2.Insert_Cost_Details (
6430                  x_item_id         => rec.inventory_item_id
6431                 ,x_org_id          => rec.organization_id
6432                 ,x_inv_install     => INV_Item_Util.g_Appl_Inst.INV
6433                 ,x_last_updated_by => user_id
6434                 ,x_cst_item_type   => l_cst_item_type );
6435            END IF;
6436        END IF;
6437    --Bug:3899614 end
6438 
6439 
6440       END LOOP;  -- C_lock_msi_records
6441 
6442       /* commit for debugging ONLY */
6443       -- COMMIT;
6444 
6445    EXCEPTION
6446 
6447       when obj_version_error THEN -- bug 5870114
6448         update mtl_system_items_interface
6449           set process_flag = 3,
6450               request_id = req_id,
6451               PROGRAM_APPLICATION_ID = prg_appid,
6452               PROGRAM_ID = prg_id,
6453               PROGRAM_UPDATE_DATE             =        l_sysdate,
6454               last_update_login = login_id
6455         where inventory_item_id = item_rec.inventory_item_id
6456           and (set_process_id = xset_id or set_process_id = xset_id + 1000000000000)
6457           and process_flag = 4;
6458         -- Returning clause is commented and change to select clause a part of bug 5870114 as it was throwing TOO_MANY_RECORDS errors
6459 
6460        SELECT organization_id,   transaction_id INTO
6461               l_org_id,l_transaction_id
6462        FROM   mtl_system_items_interface
6463        WHERE inventory_item_id = item_rec.inventory_item_id
6464          and (set_process_id = xset_id or set_process_id = xset_id + 1000000000000)
6465          and process_flag = 3 AND ROWNUM=1;
6466 
6467        dumm_status  := INVPUOPI.mtl_log_interface_err(
6468                                          l_org_id,
6469  	                                 user_id,
6470  	                                 login_id,
6471  	                                 prg_appid,
6472  	                                 prg_id,
6473  	                                 req_id,
6474  	                                 l_transaction_id,
6475  	                                 err_text,
6476  	                                 'INVENTORY_ITEM_ID',
6477  	                                 'MTL_SYSTEM_ITEMS',
6478  	                                 'INV_IOI_RECORD_LOCKED',
6479  	                                 err_text);
6480       when resource_busy then
6481 
6482          -- 2810346: Lock failed record details into log
6483          -- Updating the interface records and then logging errors
6484          -- Earlier it was log and then update. Doing this to avoid a fetch.
6485 
6486          update mtl_system_items_interface
6487          set process_flag = 3,
6488          request_id = req_id,
6489          PROGRAM_APPLICATION_ID          =        prg_appid,
6490          PROGRAM_ID                      =        prg_id,
6491          PROGRAM_UPDATE_DATE             =        l_sysdate,
6492          last_update_login = login_id
6493          where inventory_item_id = item_rec.inventory_item_id
6494          and (set_process_id = xset_id or set_process_id = xset_id + 1000000000000)
6495          and process_flag = 4;
6496          --RETURNING organization_id,transaction_id INTO l_org_id,l_transaction_id;
6497 
6498         SELECT organization_id,   transaction_id INTO l_org_id,l_transaction_id
6499         FROM mtl_system_items_interface
6500         WHERE inventory_item_id = item_rec.inventory_item_id
6501           and (set_process_id = xset_id or set_process_id = xset_id +1000000000000)
6502           and process_flag = 3 AND ROWNUM=1;
6503 
6504        dumm_status  := INVPUOPI.mtl_log_interface_err(
6505                                 l_org_id,
6506                                 user_id,
6507                                 login_id,
6508                                 prg_appid,
6509                                 prg_id,
6510                                 req_id,
6511                                 l_transaction_id,
6512                                 err_text,
6513                                 'INVENTORY_ITEM_ID',
6514                                 'MTL_SYSTEM_ITEMS',
6515                                 'INV_IOI_RECORD_LOCKED',
6516                                 err_text);
6517                   /* commit for debugging ONLY */
6518                   -- COMMIT;
6519 
6520       when OTHERS then
6521          --bug #4251913 : Included SQLCODE and SQLERRM to trap exception messages.
6522 	IF l_inv_debug_level IN(101, 102) THEN
6523            INVPUTLI.info(
6524 		    Substr(
6525 		      'when OTHERS exception raised in inproit_process_item_update' ||
6526 		      ' - Cursor C_lock_msi_records '                               ||
6527 		      SQLCODE ||
6528 		      ' - '   ||
6529 		      SQLERRM,1,240));
6530 	END IF;
6531         return (1);
6532 
6533    END;
6534 
6535    END LOOP;  -- C_msii_processed_records
6536 
6537   -- Start fix for bug 7017691 Issue #3
6538   --6417028 propagate item number update to all org hierarchies
6539   FOR item_csr IN c_item_number_updated
6540   LOOP
6541    IF l_inv_debug_level IN(101, 102) THEN
6542       INVPUTLI.info('INVUPD2B: Update: III' || item_csr.inventory_item_id ||
6543 'segment1' || item_csr.segment1);
6544    END IF;
6545 
6546    UPDATE mtl_system_items_b
6547       SET segment1 = item_csr.segment1,
6548           segment2 = item_csr.segment2,
6549           segment3 = item_csr.segment3,
6550           segment4 = item_csr.segment4,
6551           segment5 = item_csr.segment5,
6552           segment6 = item_csr.segment6,
6553           segment7 = item_csr.segment7,
6554           segment8 = item_csr.segment8,
6555           segment9 = item_csr.segment9,
6556           segment10 = item_csr.segment10,
6557           segment11 = item_csr.segment11,
6558           segment12 = item_csr.segment12,
6559           segment13 = item_csr.segment13,
6560           segment14 = item_csr.segment14,
6561           segment15 = item_csr.segment15,
6562           segment16 = item_csr.segment16,
6563           segment17 = item_csr.segment17,
6564           segment18 = item_csr.segment18,
6565           segment19 = item_csr.segment19,
6566           segment20 = item_csr.segment20
6567     WHERE inventory_item_id = item_csr.inventory_item_id;
6568   END LOOP;
6569   -- End fix for bug 7017691 Issue #3
6570 
6571   -- Start fix for bug 7017691 Issue #4 Move out of the C_msii_processed_records
6572   -- loop
6573    FOR cr IN c_ego_intf_rows LOOP
6574       INVPUTLI.info('Ego Intf Table has rows '||cr.language || ' ' ||cr.column_value);
6575       UPDATE MTL_SYSTEM_ITEMS_TL
6576          SET DESCRIPTION = NVL(cr.column_value, DESCRIPTION),
6577              LAST_UPDATE_DATE = l_sysdate,
6578              LAST_UPDATED_BY = user_id,
6579              LAST_UPDATE_LOGIN = login_id
6580        WHERE inventory_item_id = cr.inventory_item_id
6581          AND organization_id = cr.organization_id
6582          AND language = cr.language;
6583     END LOOP; -- c_ego_intf_rows
6584     -- End fix for bug 7017691 Issue #4
6585 
6586    --6531937 : Item specific UOM conversion out of loop
6587    -- Start of Bug 5190184
6588    FOR UOM_process_rec IN UOM_Process LOOP
6589       IF ( UOM_process_rec.base_uom_flag = 'Y' ) THEN
6590          conversion_rate_temp := 1;
6591       ELSE
6592           select conversion_rate  into conversion_rate_temp
6593           from mtl_uom_conversions
6594           where inventory_item_id = 0
6595           and uom_code = UOM_process_rec.PUOMCODE;
6596       END IF;
6597 
6598       l_default_conversion_flag := 'N';
6599 
6600       INSERT INTO mtl_uom_conversions(
6601        unit_of_measure,
6602        uom_code,
6603        uom_class,
6604        inventory_item_id,
6605        conversion_rate,
6606        default_conversion_flag,
6607        last_update_date,
6608        last_updated_by,
6609        creation_date,
6610        created_by)
6611      VALUES(
6612        UOM_process_rec.PUOM,
6613        UOM_process_rec.PUOMCODE,
6614        UOM_process_rec.UOMCL,
6615        UOM_process_rec.INV_ITEM_ID,
6616        conversion_rate_temp,
6617        l_default_conversion_flag,
6618        l_sysdate,
6619        user_id,
6620        l_sysdate,
6621        user_id);
6622    END LOOP;
6623    -- End of Bug 5190184
6624 
6625 --INVPUTLI.info('INVPPROC: Finished updating record in MSI with MSII record'|| xset_id);
6626 
6627    --2808277 : Start Revision Update support
6628 
6629 
6630    FOR rev_rec IN C_rev_processed_records LOOP
6631 
6632 
6633       DECLARE
6634          CURSOR c_lock_rev_record IS
6635             SELECT ROWID
6636             FROM   mtl_item_revisions_b
6637             WHERE  revision_id   = rev_rec.revision_id
6638          FOR UPDATE of revision_id;
6639 
6640          resource_busy    EXCEPTION;
6641          PRAGMA EXCEPTION_INIT (resource_busy, -54);
6642          l_org_id         mtl_system_items_interface.organization_id%TYPE ;
6643          l_transaction_id mtl_system_items_interface.transaction_id%TYPE;
6644 
6645       BEGIN
6646 
6647 
6648          FOR update_rec IN c_lock_rev_record LOOP
6649 
6650 
6651             UPDATE MTL_ITEM_REVISIONS_B
6652             SET
6653                 DESCRIPTION             = decode(l_INSTALLED_FLAG, 'B', rev_rec.DESCRIPTION, DESCRIPTION),
6654                 CHANGE_NOTICE           = rev_rec.CHANGE_NOTICE,
6655                 ECN_INITIATION_DATE     = rev_rec.ECN_INITIATION_DATE,
6656                 IMPLEMENTATION_DATE     = rev_rec.IMPLEMENTATION_DATE,
6657                 EFFECTIVITY_DATE        = rev_rec.EFFECTIVITY_DATE,
6658                 ATTRIBUTE_CATEGORY      = rev_rec.ATTRIBUTE_CATEGORY,
6659                 ATTRIBUTE1              = rev_rec.ATTRIBUTE1,
6660                 ATTRIBUTE2              = rev_rec.ATTRIBUTE2,
6661                 ATTRIBUTE3              = rev_rec.ATTRIBUTE3,
6662                 ATTRIBUTE4              = rev_rec.ATTRIBUTE4,
6663                 ATTRIBUTE5              = rev_rec.ATTRIBUTE5,
6664                 ATTRIBUTE6              = rev_rec.ATTRIBUTE6,
6665                 ATTRIBUTE7              = rev_rec.ATTRIBUTE7,
6666                 ATTRIBUTE8              = rev_rec.ATTRIBUTE8,
6667                 ATTRIBUTE9              = rev_rec.ATTRIBUTE9,
6668                 ATTRIBUTE10             = rev_rec.ATTRIBUTE10,
6669                 ATTRIBUTE11             = rev_rec.ATTRIBUTE11,
6670                 ATTRIBUTE12             = rev_rec.ATTRIBUTE12,
6671                 ATTRIBUTE13             = rev_rec.ATTRIBUTE13,
6672                 ATTRIBUTE14             = rev_rec.ATTRIBUTE14,
6673                 ATTRIBUTE15             = rev_rec.ATTRIBUTE15,
6674                 LIFECYCLE_ID            = rev_rec.LIFECYCLE_ID,
6675                 CURRENT_PHASE_ID        = rev_rec.CURRENT_PHASE_ID,
6676                 REVISION_LABEL          = rev_rec.REVISION_LABEL,
6677                 REVISION_REASON         = rev_rec.REVISION_REASON,
6678                 REVISED_ITEM_SEQUENCE_ID = rev_rec.REVISED_ITEM_SEQUENCE_ID,
6679                 LAST_UPDATE_DATE        = NVL(rev_rec.last_update_date,l_sysdate),
6680                 LAST_UPDATED_BY         = user_id,
6681                 LAST_UPDATE_LOGIN       = login_id,
6682 	/* Bug 4224512 : Incrementing the object version number for each update -Anmurali */
6683 		OBJECT_VERSION_NUMBER   = NVL(OBJECT_VERSION_NUMBER,1)+1
6684             WHERE rowid = update_rec.rowid;
6685 
6686             UPDATE mtl_item_revisions_tl
6687             SET    description       = rev_rec.description,
6688                    last_update_date  =  NVL(rev_rec.last_update_date,l_sysdate),
6689                    last_updated_by   =  user_id,
6690                    last_update_login =  login_id,
6691                    source_lang       =  userenv('LANG')
6692             WHERE  revision_id = rev_rec.revision_id
6693             AND    userenv('LANG') IN (LANGUAGE, SOURCE_LANG);
6694 
6695          END LOOP;
6696 
6697       EXCEPTION
6698          WHEN resource_busy THEN
6699             UPDATE mtl_item_revisions_interface
6700             SET    process_flag = 3,
6701                    request_id = req_id,
6702                    PROGRAM_APPLICATION_ID          =        prg_appid,
6703                    PROGRAM_ID                      =        prg_id,
6704                    PROGRAM_UPDATE_DATE             =        l_sysdate,
6705                    last_update_login = login_id
6706          WHERE     rowid = rev_rec.rowid
6707          RETURNING organization_id,transaction_id INTO l_org_id,l_transaction_id;
6708 
6709          dumm_status  := INVPUOPI.mtl_log_interface_err(
6710                                 l_org_id,
6711                                 user_id,
6712                                 login_id,
6713                                 prg_appid,
6714                                 prg_id,
6715                                 req_id,
6716                                 l_transaction_id,
6717                                 err_text,
6718                                 'INVENTORY_ITEM_ID',
6719                                 'MTL_SYSTEM_ITEMS',
6720                                 'INV_IOI_RECORD_LOCKED',
6721                                 err_text);
6722           WHEN OTHERS THEN
6723              --bug #4251913: Included SQLCODE and SQLERRM to trap exception messages.
6724 	     IF l_inv_debug_level IN(101, 102) THEN
6725 	             INVPUTLI.info(
6726 		        Substr(
6727 			   'when OTHERS exception raised in inproit_process_item_update ' ||
6728 			   '- Cursor c_lock_rev_record ' ||
6729 			    SQLCODE                      ||
6730 			    ' - '                        ||
6731 			    SQLERRM,1,240));
6732 	     END IF;
6733              return (1);
6734       END;
6735    END LOOP;
6736    --2808277 : End Revision Update support
6737 
6738 --INVPUTLI.info('INVPPROC: Finished updating record in MSI with MSII record'|| xset_id);
6739 
6740 -- set process_flags to 7
6741 
6742         table_name := 'MTL_SYSTEM_ITEMS_INTERFACE';
6743         update MTL_SYSTEM_ITEMS_INTERFACE
6744         set process_flag = 7,
6745           request_id = req_id,
6746           PROGRAM_APPLICATION_ID          =        prg_appid,
6747           PROGRAM_ID                      =        prg_id,
6748           PROGRAM_UPDATE_DATE             =        l_sysdate,
6749           last_update_login = login_id
6750         where process_flag = 4
6751         and transaction_type in ('UPDATE','AUTO_CHILD')
6752         and (set_process_id = xset_id or set_process_id = xset_id + 1000000000000);
6753 
6754         --2808277 : Start Revision Update support
6755         table_name := 'MTL_ITEM_REVISIONS_INTERFACE';
6756 
6757         update MTL_ITEM_REVISIONS_INTERFACE
6758         set process_flag           = 7,
6759             request_id             = nvl(request_id,req_id),
6760             program_application_id = nvl(program_application_id,prg_appid),
6761             PROGRAM_ID             = nvl(PROGRAM_ID,prg_id),
6762             PROGRAM_UPDATE_DATE    = nvl(PROGRAM_UPDATE_DATE,l_sysdate),
6763             LAST_UPDATE_LOGIN      = nvl(LAST_UPDATE_LOGIN,login_id)
6764         where process_flag         = 4
6765         and   transaction_type     =  'UPDATE'
6766         and (set_process_id = xset_id or set_process_id = xset_id + 1000000000000);
6767         --2808277 : Start Revision Update support
6768 
6769    return (0);
6770 
6771 EXCEPTION
6772 
6773    when OTHERS then
6774       --dbms_output.put_line(sqlerrm);
6775       --bug #4251913 : Included SQLCODE and SQLERRM to trap exception messages.
6776       IF l_inv_debug_level IN(101, 102) THEN
6777 	      INVPUTLI.info(
6778 		 Substr(
6779 		    'when OTHERS exception raised in inproit_process_item_update ' ||
6780 		     SQLCODE ||
6781 		     ' - '   ||
6782 		     SQLERRM,1,240));
6783       END IF;
6784       return (1);
6785 
6786 END inproit_process_item_update;
6787 
6788 
6789 FUNCTION set_process_flag3
6790 (
6791    row_id       ROWID,
6792    user_id         NUMBER          := -1,
6793    login_id        NUMBER          := -1,
6794    prog_appid      NUMBER          := -1,
6795    prog_id         NUMBER          := -1,
6796    reqst_id      NUMBER          := -1
6797 )
6798 return INTEGER
6799 IS
6800    l_process_flag_3    NUMBER  := 3;
6801 
6802    l_inv_debug_level	NUMBER := INVPUTLI.get_debug_level;     --Bug: 4667452
6803 BEGIN
6804 
6805    IF l_inv_debug_level IN(101, 102) THEN
6806 	   INVPUTLI.info('INVUPD2B: Inside set_process_flag3');
6807    END IF;
6808         update MTL_SYSTEM_ITEMS_INTERFACE
6809         set PROCESS_FLAG = l_process_flag_3,
6810           request_id = reqst_id,
6811           PROGRAM_APPLICATION_ID = prog_appid,
6812           PROGRAM_ID = prog_id,
6813           last_update_login = login_id
6814         where ROWID = row_id;
6815         return (0);
6816 
6817 EXCEPTION
6818 
6819    when OTHERS then
6820       --bug #4251913: Included SQLCODE and SQLERRM to trap exception messages.
6821       IF l_inv_debug_level IN(101, 102) THEN
6822          INVPUTLI.info(
6823 	         Substr(
6824 		    'when OTHERS exception raised in set_process_flag3 ' ||
6825 		    SQLCODE ||
6826 		    ' - '   ||
6827 		    SQLERRM,1,240));
6828       END IF;
6829       /*End  Bug: 4667452*/
6830       return (1);
6831 
6832 END set_process_flag3;
6833 
6834 
6835 FUNCTION get_message
6836 (
6837    msg_name          VARCHAR2
6838 ,  error_text   OUT NOCOPY VARCHAR2
6839 )
6840 return INTEGER
6841 IS
6842 	l_inv_debug_level	NUMBER := INVPUTLI.get_debug_level;     --Bug: 4667452
6843 BEGIN
6844 
6845    IF l_inv_debug_level IN(101, 102) THEN
6846       INVPUTLI.info('INVUPD2B: inside get_message');
6847    END IF;
6848    FND_MESSAGE.SET_NAME('INV', SUBSTRB(msg_name, 1,30));
6849    error_text := FND_MESSAGE.GET;
6850    return (0);
6851 
6852 EXCEPTION
6853 
6854    when OTHERS then
6855       IF l_inv_debug_level IN(101, 102) THEN
6856          INVPUTLI.info( SUBSTRB('get_message: ' || SQLERRM, 1, 240) );
6857       END IF;
6858       return (1);
6859 
6860 END get_message;
6861 
6862 
6863 end INVUPD2B;