DBA Data[Home] [Help]

PACKAGE BODY: APPS.INVUPD2B

Source


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