DBA Data[Home] [Help]

PACKAGE BODY: APPS.INVNIRIS

Source


1 PACKAGE BODY INVNIRIS AS
2 /* $Header: INVNIRIB.pls 120.32.12010000.2 2008/09/17 12:40:19 bparthas ship $ */
3 ------------------------ validate_item_revs -----------------------------------
4 
5 FUNCTION mtl_validate_nir_item
6 (
7 org_id          number,
8 all_org         NUMBER,
9 prog_appid      NUMBER,
10 prog_id         NUMBER,
11 request_id      NUMBER,
12 user_id         NUMBER,
13 login_id        NUMBER,
14 xset_id  IN     NUMBER,
15 err_text in out NOCOPY varchar2
16 )
17 RETURN INTEGER
18 IS
19    LOGGING_ERR Exception;
20    status    NUMBER;
21    l_sysdate DATE  ;
22    l_nir_rec_exists BOOLEAN;
23    l_flag_error NUMBER;
24    l_item_approval_status mtl_system_items_b.approval_status%TYPE; --Bug 4418037
25    l_dumm_status NUMBER;
26    l_inv_debug_level	NUMBER := INVPUTLI.get_debug_level;     --Bug: 4667452
27    l_err_text VARCHAR2(1000);
28 
29  /* R12C : Changing the New Item Req Reqd = 'Y' sub-query for hierarchy enabled Catalogs */
30    CURSOR c_get_processed_records(cp_process_flag NUMBER) IS
31       SELECT msii.INVENTORY_ITEM_ID,
32              msii.ITEM_CATALOG_GROUP_ID,
33              msii.ORGANIZATION_ID,
34              msii.TRANSACTION_ID,
35              msii.ITEM_NUMBER,
36              msii.rowid,
37              msii.ENG_ITEM_FLAG,
38        --    micb.NEW_ITEM_REQ_CHANGE_TYPE_ID,
39              mp.ORGANIZATION_CODE,
40 	          mp.MASTER_ORGANIZATION_ID,
41              msii.TRANSACTION_TYPE
42        FROM  MTL_SYSTEM_ITEMS_INTERFACE msii,
43              --MTL_ITEM_CATALOG_GROUPS_B  micb,
44              MTL_PARAMETERS mp
45       WHERE  ( (msii.organization_id + 0 = org_id) OR (all_Org = 1) )
46         AND  msii.process_flag = cp_process_flag
47         AND  msii.set_process_id = xset_id
48         --AND  msii.ITEM_CATALOG_GROUP_ID = micb.ITEM_CATALOG_GROUP_ID
49         --AND  micb.NEW_ITEM_REQUEST_REQD = 'Y'
50         AND  mp.ORGANIZATION_ID = msii.ORGANIZATION_ID
51         FOR UPDATE OF msii.INVENTORY_ITEM_ID;
52 
53 /* R12C : Introducing cursor for hierarchy enabled Catalogs */
54    CURSOR c_nir_reqd (cp_item_catalog_group_id IN NUMBER)
55    IS
56       SELECT  ICC.NEW_ITEM_REQUEST_REQD
57         FROM  MTL_ITEM_CATALOG_GROUPS_B ICC
58        WHERE  ICC.NEW_ITEM_REQUEST_REQD IS NOT NULL
59          AND  ICC.NEW_ITEM_REQUEST_REQD <> 'I'
60      CONNECT BY PRIOR ICC.PARENT_CATALOG_GROUP_ID = ICC.ITEM_CATALOG_GROUP_ID
61        START WITH ICC.ITEM_CATALOG_GROUP_ID = cp_item_catalog_group_id
62        ORDER BY LEVEL ASC;
63 
64    --4676583 : Honouring batch option - Add All Imported Items to Change Order
65    CURSOR c_get_batch_policy IS
66       SELECT NVL(add_all_to_change_flag,'N')
67       FROM   ego_import_option_sets
68       WHERE  batch_id = xset_id;
69 
70    l_import_co_option  VARCHAR2(1) := 'N';
71    l_nir_reqd          VARCHAR2(1) := 'N';
72 
73 BEGIN
74    status    := 0;
75    l_sysdate := sysdate;
76    l_nir_rec_exists := false;
77 
78    IF l_inv_debug_level IN(101, 102) THEN
79       INVPUTLI.info('INVNIRIS: first sta..set_id'||to_char(xset_id)||'org'||to_char(org_id)||'all'||to_char(all_org));
80    END IF;
81 
82    FOR cur in c_get_processed_records(cp_process_flag=>2) LOOP
83    /* R12C : Retrieving NIR reqd for hierarchy enabled Catalogs */
84       l_nir_reqd := 'N';
85 
86       OPEN  c_nir_reqd(cp_item_catalog_group_id => cur.item_catalog_group_id);
87       FETCH c_nir_reqd INTO l_nir_reqd;
88       CLOSE c_nir_reqd;
89 
90       IF l_nir_reqd = 'Y' THEN
91         l_flag_error := 0;
92       --Start : Child Items for a master item which is unapproved cannot be created.
93         IF cur.TRANSACTION_TYPE =  'UPDATE' THEN
94 
95            BEGIN
96               SELECT approval_status
97                 INTO l_item_approval_status
98                 FROM mtl_system_items_b
99                WHERE inventory_item_id = cur.INVENTORY_ITEM_ID
100                  AND organization_id   = cur.ORGANIZATION_ID;
101            EXCEPTION
102              WHEN OTHERS THEN
103  	             l_item_approval_status := 'N';
104            END;
105 
106         ELSIF cur.TRANSACTION_TYPE = 'CREATE' THEN
107 
108           IF cur.organization_id <> cur.master_organization_id THEN
109 
110              BEGIN
111                 SELECT msi.approval_status
112 	             INTO l_item_approval_status
113                 FROM mtl_system_items_b msi
114                 WHERE msi.inventory_item_id = cur.inventory_item_id
115                 AND msi.organization_id     = (SELECT mp.master_organization_id
116                                                FROM mtl_parameters mp
117                                                WHERE mp.organization_id = cur.organization_id);
118              EXCEPTION
119                 WHEN OTHERS THEN
120                    l_item_approval_status := 'N';
121              END;
122 
123              IF l_item_approval_status <> 'A' THEN
124                 UPDATE mtl_system_items_interface
125                 SET process_flag   = 3
126                 WHERE CURRENT OF c_get_processed_records;
127 
128  	             l_dumm_status := INVPUOPI.mtl_log_interface_err (
129                         -1,
130                         user_id,
131                         login_id,
132                         prog_appid,
133                         prog_id,
134                         request_id,
135                         cur.transaction_id,
136                         'Unapproved Item cannot be assigned to a child org',
137                         'APPROVAL_STATUS',
138                         'MTL_SYSTEM_ITEMS_INTERFACE',
139                         'INV_NIR_NO_APPROVE',
140                         l_err_text);
141   	             IF l_dumm_status < 0 then
142                   raise LOGGING_ERR;
143                 END IF;
144 	             l_flag_error := 1;
145              END IF;
146           END IF;
147         END IF;
148 
149         IF ( l_flag_error = 0 ) THEN
150           IF (((cur.TRANSACTION_TYPE = 'CREATE') AND (cur.organization_id = cur.master_organization_id))
151              OR((cur.TRANSACTION_TYPE = 'UPDATE') AND (NVL(l_item_approval_status, 'A') <> 'A')))
152           THEN
153              l_nir_rec_exists := true;
154 
155              UPDATE MTL_SYSTEM_ITEMS_INTERFACE I
156              SET I.SET_PROCESS_ID                 = I.SET_PROCESS_ID + 3000000000000,
157  	              I.ENG_ITEM_FLAG                  = 'Y', --Bug 5519768
158                  I.SUMMARY_FLAG                   = 'Y',
159                  I.ENABLED_FLAG                   = 'Y',
160                  I.BUYER_ID                       = NULL,
161                  I.ACCOUNTING_RULE_ID             = NULL,
162                  I.INVOICING_RULE_ID              = NULL,
163                  I.COLLATERAL_FLAG                = NULL,
164                  I.STOCK_ENABLED_FLAG             = 'N',
165                  I.MTL_TRANSACTIONS_ENABLED_FLAG  = 'N',
166                  I.INTERNAL_ORDER_ENABLED_FLAG    = 'N',
167                  I.INVOICE_ENABLED_FLAG           = 'N',
168 	      -- Bug 5738958: BOM Allowed Flag can be updated even when Item Status is Pending
169               -- I.BOM_ENABLED_FLAG               = 'N',
170                  I.BUILD_IN_WIP_FLAG              = 'N',
171                  I.CUSTOMER_ORDER_ENABLED_FLAG    = 'N',
172                  I.PURCHASING_ENABLED_FLAG        = 'N',
173                  I.INVENTORY_ITEM_FLAG            = 'N',
174                  I.WIP_SUPPLY_TYPE                = 1,
175                  I.AUTO_CREATED_CONFIG_FLAG       = 'N',
176                  I.CYCLE_COUNT_ENABLED_FLAG       = 'N',
177                  I.INTERNAL_ORDER_FLAG            = 'N',
178                  I.INVENTORY_ITEM_STATUS_CODE     = 'Pending',
179                  I.INVENTORY_PLANNING_CODE        = 6,
180                  I.MRP_PLANNING_CODE              = 6,
181                  I.INVENTORY_ASSET_FLAG           = 'N',
182                  I.INVOICEABLE_ITEM_FLAG          = 'N',
183                  I.EXPENSE_BILLABLE_FLAG          = NULL,
184                  I.BOM_ITEM_TYPE                  = 4,
185                  I.COSTING_ENABLED_FLAG           = 'N',
186                  I.CUSTOMER_ORDER_FLAG            = 'N',
187                  -- I.ALLOWED_UNITS_LOOKUP_CODE      = 3, --BUG 7255713
188                  I.ATP_COMPONENTS_FLAG            = 'N',
189                  I.ATP_FLAG                       = 'N',
190                  I.TIME_BILLABLE_FLAG             = NULL,
191                  I.SERVICEABLE_PRODUCT_FLAG       = 'N',
192                  I.SHELF_LIFE_CODE                = 1,
193                  I.SHIPPABLE_ITEM_FLAG            = 'N',
194                  I.SO_TRANSACTIONS_FLAG           = 'N',
195                  I.SERVICEABLE_COMPONENT_FLAG     = 'N',
196                  I.REPLENISH_TO_ORDER_FLAG        = 'N',
197                  I.RESERVABLE_TYPE                = 1,
198                  I.RESTRICT_LOCATORS_CODE         = 2,
199                  I.RESTRICT_SUBINVENTORIES_CODE   = 2,
200                  I.REVISION_QTY_CONTROL_CODE      = 1,
201                  I.SERIAL_NUMBER_CONTROL_CODE     = 1,
202                  I.PREVENTIVE_MAINTENANCE_FLAG    = 'N',
203                  I.SERV_BILLING_ENABLED_FLAG      = 'N',
204                  I.PRORATE_SERVICE_FLAG           = 'N',
205                  I.PURCHASING_ITEM_FLAG           = 'N',
206                  I.OUTSIDE_OPERATION_FLAG         = 'N',
207                  I.PICK_COMPONENTS_FLAG           = 'N',
208                  I.PLANNING_MAKE_BUY_CODE         = 2,
209                  I.PLANNING_TIME_FENCE_CODE       = 4,
210                  I.PLANNING_TIME_FENCE_DAYS       = 1,
211                  I.MUST_USE_APPROVED_VENDOR_FLAG  = 'N',
212                  I.LOCATION_CONTROL_CODE          = 1,
213                  I.LOT_CONTROL_CODE               = 1,
214                  I.MRP_SAFETY_STOCK_CODE          = 1,
215                  I.SHIP_MODEL_COMPLETE_FLAG       = 'N',
216                  I.MARKET_PRICE                   = NULL,
217                  I.LIST_PRICE_PER_UNIT            = NULL,
218                  I.PRICE_TOLERANCE_PERCENT        = NULL,
219                  I.SHELF_LIFE_DAYS                = 0,
220                  I.REPETITIVE_PLANNING_FLAG       = 'N',
221                  I.ACCEPTABLE_RATE_DECREASE       = 0,
222                  I.ACCEPTABLE_RATE_INCREASE       = 0,
223                  I.POSTPROCESSING_LEAD_TIME       = 0,
224                  I.RETURN_INSPECTION_REQUIREMENT  = 2,
225                  I.CONTAINER_ITEM_FLAG            = 'N',
226                  I.VEHICLE_ITEM_FLAG              = 'N',
227                  I.SERVICE_DURATION               = NULL,
228                  I.RETURNABLE_FLAG                = 'N',
229                  I.LEAD_TIME_LOT_SIZE             = 1,
230                  I.CHECK_SHORTAGES_FLAG           = 'N',
231                  I.EFFECTIVITY_CONTROL            = 1,
232                  I.EQUIPMENT_TYPE                 = 2,
233                  I.COMMS_NL_TRACKABLE_FLAG        = NULL,
234                  I.WEB_STATUS                     = 'UNPUBLISHED',
235                  I.BULK_PICKED_FLAG               = 'N',
236                  I.LOT_STATUS_ENABLED             = 'N',
237                  I.DEFAULT_LOT_STATUS_ID          = NULL,
238                  I.SERIAL_STATUS_ENABLED          = 'N',
239                  I.DEFAULT_SERIAL_STATUS_ID       =  NULL,
240                  I.DUAL_UOM_CONTROL               = 1,
241                  I.LOT_SPLIT_ENABLED              = 'N',
242                  I.LOT_MERGE_ENABLED              = 'N',
243                  I.LOT_TRANSLATE_ENABLED          = 'N',
244                  I.DEFAULT_SO_SOURCE_TYPE         = 'INTERNAL',
245                  I.CREATE_SUPPLY_FLAG             = 'Y',
246                  -- I.TRACKING_QUANTITY_IND          = 'P', --BUG 7255713
247                  -- I.ONT_PRICING_QTY_SOURCE         = 'P', --BUG 7255713
248                  -- I.DUAL_UOM_DEVIATION_HIGH        = 0, --BUG 7255713
249                  -- I.DUAL_UOM_DEVIATION_LOW         = 0, --BUG 7255713
250                  I.VMI_MINIMUM_UNITS              = NULL,
251                  I.VMI_MINIMUM_DAYS               = NULL,
252                  I.VMI_MAXIMUM_UNITS              = NULL,
253                  I.VMI_MAXIMUM_DAYS               = NULL,
254                  I.VMI_FIXED_ORDER_QUANTITY       = NULL,
255                  I.SO_AUTHORIZATION_FLAG          = NULL,
256                  I.CONSIGNED_FLAG                 = 2,
257                  I.ASN_AUTOEXPIRE_FLAG            = 2,
258                  I.VMI_FORECAST_TYPE              = 1,
259                  I.FORECAST_HORIZON               = NULL,
260                  I.EXCLUDE_FROM_BUDGET_FLAG       = 2,
261                  I.DAYS_TGT_INV_SUPPLY            = NULL,
262                  I.DAYS_TGT_INV_WINDOW            = NULL,
263                  I.DAYS_MAX_INV_SUPPLY            = NULL,
264                  I.DAYS_MAX_INV_WINDOW            = NULL,
265                  I.DRP_PLANNED_FLAG               = 2,
266                  I.CRITICAL_COMPONENT_FLAG        = 2,
267                  I.CONTINOUS_TRANSFER             = 3,
268                  I.CONVERGENCE                    = 3,
269                  I.DIVERGENCE                     = 3,
270                  I.ACCEPTABLE_EARLY_DAYS          = NULL,
271                  I.ALLOW_EXPRESS_DELIVERY_FLAG    = NULL,
272                  I.ALLOW_SUBSTITUTE_RECEIPTS_FLAG = NULL,
273                  I.ALLOW_UNORDERED_RECEIPTS_FLAG  = NULL,
274                  I.ASSET_CATEGORY_ID              = NULL,
275                  I.ASSET_CREATION_CODE            = NULL,
276                  I.ATO_FORECAST_CONTROL           = NULL,
277                  I.ATP_RULE_ID                    = NULL,
278                  I.AUTO_LOT_ALPHA_PREFIX          = NULL,
279                  I.AUTO_REDUCE_MPS                = NULL,
280                  I.AUTO_SERIAL_ALPHA_PREFIX       = NULL,
281                  I.BACK_ORDERABLE_FLAG            = NULL,
282                  I.BASE_ITEM_ID                   = NULL,
283                  I.BASE_WARRANTY_SERVICE_ID       = NULL,
284                  I.CARRYING_COST                  = NULL,
285                  I.CATALOG_STATUS_FLAG            = NULL,
286                  I.COMMS_ACTIVATION_REQD_FLAG     = NULL,
290                  I.CONTAINER_TYPE_CODE            = NULL,
287                  I.CONFIG_MATCH                   = NULL,
288                  I.CONFIG_MODEL_TYPE              = NULL,
289                  I.CONFIG_ORGS                    = NULL,
291                  I.CONTRACT_ITEM_TYPE_CODE        = NULL,
292                  I.COUPON_EXEMPT_FLAG             = NULL,
293                  I.COVERAGE_SCHEDULE_ID           = NULL,
294                  I.CUM_MANUFACTURING_LEAD_TIME    = NULL,
295                  I.CUMULATIVE_TOTAL_LEAD_TIME     = NULL,
296                  I.DAYS_EARLY_RECEIPT_ALLOWED     = NULL,
297                  I.DAYS_LATE_RECEIPT_ALLOWED      = NULL,
298                  I.DEFAULT_INCLUDE_IN_ROLLUP_FLAG = NULL,
299                  I.DEFAULT_SHIPPING_ORG           = NULL,
300                  I.DEFECT_TRACKING_ON_FLAG        = NULL,
301                  I.DEMAND_TIME_FENCE_CODE         = NULL,
302                  I.DEMAND_TIME_FENCE_DAYS         = NULL,
303                  I.DIMENSION_UOM_CODE             = NULL,
304                  I.DOWNLOADABLE_FLAG              = NULL,
305                  I.EAM_ACT_NOTIFICATION_FLAG      = NULL,
306                  I.EAM_ACT_SHUTDOWN_STATUS        = NULL,
307                  I.EAM_ACTIVITY_CAUSE_CODE        = NULL,
308                  I.EAM_ACTIVITY_SOURCE_CODE       = NULL,
309                  I.EAM_ACTIVITY_TYPE_CODE         = NULL,
310                  I.EAM_ITEM_TYPE                  = NULL,
311                  I.ELECTRONIC_FLAG                = NULL,
312                  I.END_ASSEMBLY_PEGGING_FLAG      = NULL,
313                  I.END_DATE_ACTIVE                = NULL,
314                  I.ENFORCE_SHIP_TO_LOCATION_CODE  = NULL,
315                  I.ENGINEERING_DATE               = NULL,
316                  I.ENGINEERING_ECN_CODE           = NULL,
317                  I.ENGINEERING_ITEM_ID            = NULL,
318                  I.EVENT_FLAG                     = NULL,
319                  I.FINANCING_ALLOWED_FLAG         = NULL,
320                  I.FIXED_DAYS_SUPPLY              = NULL,
321                  I.FIXED_LEAD_TIME                = NULL,
322                  I.FIXED_LOT_MULTIPLIER           = NULL,
323                  I.FIXED_ORDER_QUANTITY           = NULL,
324                  I.FULL_LEAD_TIME                 = NULL,
325                  I.HAZARD_CLASS_ID                = NULL,
326                  I.IB_ITEM_INSTANCE_CLASS         = NULL,
327                  I.INDIVISIBLE_FLAG               = NULL,
328                  I.INSPECTION_REQUIRED_FLAG       = NULL,
329                  I.INTERNAL_VOLUME                = NULL,
330                  I.INVENTORY_CARRY_PENALTY        = NULL,
331                  I.INVOICE_CLOSE_TOLERANCE        = NULL,
332                  I.LOT_SUBSTITUTION_ENABLED       = NULL,
333                  I.MATERIAL_BILLABLE_FLAG         = NULL,
334                  I.MAX_MINMAX_QUANTITY            = NULL,
335                  I.MAX_WARRANTY_AMOUNT            = NULL,
336                  I.MAXIMUM_LOAD_WEIGHT            = NULL,
337                  I.MAXIMUM_ORDER_QUANTITY         = NULL,
338                  I.MIN_MINMAX_QUANTITY            = NULL,
339                  I.MINIMUM_FILL_PERCENT           = NULL,
340                  I.MINIMUM_LICENSE_QUANTITY       = NULL,
341                  I.MINIMUM_ORDER_QUANTITY         = NULL,
342                  I.MODEL_CONFIG_CLAUSE_NAME       = NULL,
343                  I.MRP_CALCULATE_ATP_FLAG         = NULL,
344                  I.MRP_SAFETY_STOCK_PERCENT       = NULL,
345                  I.NEGATIVE_MEASUREMENT_ERROR     = NULL,
346                  I.OPERATION_SLACK_PENALTY        = NULL,
347                  I.ORDER_COST                     = NULL,
348                  I.ORDERABLE_ON_WEB_FLAG          = NULL,
349                  I.OUTSIDE_OPERATION_UOM_TYPE     = NULL,
350                  I.OVER_RETURN_TOLERANCE          = NULL,
351                  I.OVER_SHIPMENT_TOLERANCE        = NULL,
352                  I.OVERCOMPLETION_TOLERANCE_TYPE  = NULL,
353                  I.OVERCOMPLETION_TOLERANCE_VALUE = NULL,
354                  I.OVERRUN_PERCENTAGE             = NULL,
355                  I.PAYMENT_TERMS_ID               = NULL,
356                  I.PICKING_RULE_ID                = NULL,
357                  I.PLANNED_INV_POINT_FLAG         = NULL,
358                  I.PLANNER_CODE                   = NULL,
359                  I.PLANNING_EXCEPTION_SET         = NULL,
360                  I.POSITIVE_MEASUREMENT_ERROR     = NULL,
361                  I.PREPROCESSING_LEAD_TIME        = NULL,
362                  I.PRIMARY_SPECIALIST_ID          = NULL,
363                  I.PRODUCT_FAMILY_ITEM_ID         = NULL,
364                  I.PURCHASING_TAX_CODE            = NULL,
365                  I.QTY_RCV_EXCEPTION_CODE         = NULL,
366                  I.QTY_RCV_TOLERANCE              = NULL,
367                  I.RECEIPT_DAYS_EXCEPTION_CODE    = NULL,
368                  I.RECEIVE_CLOSE_TOLERANCE        = NULL,
369                  I.RECEIVING_ROUTING_ID           = NULL,
370                  I.RECOVERED_PART_DISP_CODE       = NULL,
371                  I.RELEASE_TIME_FENCE_CODE        = NULL,
372                  I.RELEASE_TIME_FENCE_DAYS        = NULL,
373                  I.RESPONSE_TIME_PERIOD_CODE      = NULL,
374                  I.RESPONSE_TIME_VALUE            = NULL,
375                  I.ROUNDING_CONTROL_TYPE          = NULL,
376                  I.ROUNDING_FACTOR                = NULL,
377                  I.SAFETY_STOCK_BUCKET_DAYS       = NULL,
378                  -- I.SECONDARY_DEFAULT_IND          = NULL, BUG 7255713
379                  I.SECONDARY_SPECIALIST_ID        = NULL,
383                  I.SERVICE_DURATION_PERIOD_CODE   = NULL,
380                  -- I.SECONDARY_UOM_CODE             = NULL, BUG 7255713
381                  I.SERV_IMPORTANCE_LEVEL          = NULL,
382                  I.SERV_REQ_ENABLED_CODE          = NULL,
384                  I.SERVICE_ITEM_FLAG              = NULL,
385                  I.SERVICE_STARTING_DELAY         = NULL,
386                  I.SERVICEABLE_ITEM_CLASS_ID      = NULL,
387                  I.SHRINKAGE_RATE                 = NULL,
388                  I.SOURCE_ORGANIZATION_ID         = NULL,
389                  I.SOURCE_SUBINVENTORY            = NULL,
390                  I.SOURCE_TYPE                    = NULL,
391                  I.START_AUTO_LOT_NUMBER          = NULL,
392                  I.START_AUTO_SERIAL_NUMBER       = NULL,
393                  I.START_DATE_ACTIVE              = NULL,
394                  I.STD_LOT_SIZE                   = NULL,
395                  I.SUBSCRIPTION_DEPEND_FLAG       = NULL,
396                  I.SUBSTITUTION_WINDOW_CODE       = NULL,
397                  I.SUBSTITUTION_WINDOW_DAYS       = NULL,
398                  I.TAX_CODE                       = NULL,
399                  I.UN_NUMBER_ID                   = NULL,
400                  I.UNDER_RETURN_TOLERANCE         = NULL,
401                  I.UNDER_SHIPMENT_TOLERANCE       = NULL,
402                  I.UNIT_HEIGHT                    = NULL,
403                  I.UNIT_LENGTH                    = NULL,
404                  I.UNIT_OF_ISSUE                  = NULL,
405                  I.UNIT_VOLUME                    = NULL,
406 	      -- Unit Weight can be updated for Pending Items -R12 C
407               -- I.UNIT_WEIGHT                    = NULL,
408                  I.UNIT_WIDTH                     = NULL,
409                  I.USAGE_ITEM_FLAG                = NULL,
410                  I.VARIABLE_LEAD_TIME             = NULL,
411                  I.VENDOR_WARRANTY_FLAG           = NULL,
412                  I.VOL_DISCOUNT_EXEMPT_FLAG       = NULL,
413                  I.VOLUME_UOM_CODE                = NULL,
414                  I.WARRANTY_VENDOR_ID             = NULL,
415  	     -- Weight UOM can be updated for Pending Items -R12 C
416               -- I.WEIGHT_UOM_CODE                = NULL,
417                  I.WH_UPDATE_DATE                 = NULL,
418                  I.WIP_SUPPLY_LOCATOR_ID          = NULL,
419                  I.WIP_SUPPLY_SUBINVENTORY        = NULL,
420                  I.GLOBAL_ATTRIBUTE_CATEGORY      = NULL,
421                  I.GLOBAL_ATTRIBUTE1              = NULL,
422                  I.GLOBAL_ATTRIBUTE2              = NULL,
423                  I.GLOBAL_ATTRIBUTE3              = NULL,
424                  I.GLOBAL_ATTRIBUTE4              = NULL,
425                  I.GLOBAL_ATTRIBUTE5              = NULL,
426                  I.GLOBAL_ATTRIBUTE6              = NULL,
427                  I.GLOBAL_ATTRIBUTE7              = NULL,
428                  I.GLOBAL_ATTRIBUTE8              = NULL,
429                  I.GLOBAL_ATTRIBUTE9              = NULL,
430                  I.GLOBAL_ATTRIBUTE10             = NULL,
431                  I.ATTRIBUTE_CATEGORY             = NULL,
432                  I.ATTRIBUTE1                     = NULL,
433                  I.ATTRIBUTE2                     = NULL,
434                  I.ATTRIBUTE3                     = NULL,
435                  I.ATTRIBUTE4                     = NULL,
436                  I.ATTRIBUTE5                     = NULL,
437                  I.ATTRIBUTE6                     = NULL,
438                  I.ATTRIBUTE7                     = NULL,
439                  I.ATTRIBUTE8                     = NULL,
440                  I.ATTRIBUTE9                     = NULL,
441                  I.ATTRIBUTE10                    = NULL,
442                  I.ATTRIBUTE11                    = NULL,
443                  I.ATTRIBUTE12                    = NULL,
444                  I.ATTRIBUTE13                    = NULL,
445                  I.ATTRIBUTE14                    = NULL,
446                  I.ATTRIBUTE15                    = NULL
447              WHERE I.ROWID = CUR.ROWID;
448 
449              UPDATE MTL_ITEM_REVISIONS_INTERFACE
450              SET    SET_PROCESS_ID    = SET_PROCESS_ID + 3000000000000
451              WHERE  INVENTORY_ITEM_ID = CUR.INVENTORY_ITEM_ID
452              AND    ORGANIZATION_ID   = CUR.ORGANIZATION_ID;
453 
454           END IF;
455        END IF;
456      END IF; -- If New Item Req is YES
457    END LOOP;
458 
459    --Start : Check for data security and user privileges
460    IF l_inv_debug_level IN(101, 102) THEN
461       INVPUTLI.info('INVNIRIS.mtl_pr_validate_item: before INV_EGO_REVISION_VALIDATE.validate_item_user_privileges');
462    END IF;
463 
464    IF l_nir_rec_exists THEN
465       status := INV_EGO_REVISION_VALIDATE.validate_item_user_privileges(
466                          P_Org_Id     => org_id
467                         ,P_All_Org    => all_org
468                         ,P_Prog_AppId => prog_appid
469                         ,P_Prog_Id    => prog_id
470                         ,P_Request_Id => request_id
471                         ,P_User_Id    => user_id
472                         ,P_Login_Id   => login_id
473                         ,P_Set_Id     => xset_id +  3000000000000
474                         ,X_Err_Text   => err_text);
475 
476       IF l_inv_debug_level IN(101, 102) THEN
477         INVPUTLI.info('INVNIRIS.mtl_pr_validate_item: INV_EGO_REVISION_VALIDATE.validate_item_user_privileges');
478       END IF;
479 
480       --End : Check for data security and user privileges
481 
485 	      END IF;
482       IF (status = 0) then
483          IF l_inv_debug_level IN(101, 102) THEN
484 	         INVPUTLI.info('INVNIRIS: before INVPVHDR.validate_item_header'||to_char(xset_id)||'org'||to_char(org_id)||'all'||to_char(all_org));
486 
487          status := INVPVHDR.validate_item_header(
488                         org_id,
489                         all_org,
490                         prog_appid,
491                         prog_id,
492                         request_id,
493                         user_id,
494                         login_id,
495                         err_text,
496                         xset_id + 3000000000000);
497       END IF;
498 
499       IF (status = 0) THEN
500 
501          UPDATE  MTL_SYSTEM_ITEMS_INTERFACE
502          --SET   PROCESS_FLAG   = 4  BUG 7255713
503          SET   PROCESS_FLAG   = 44  -- added for bug 7255713-ccsingh
504          WHERE PROCESS_FLAG   = 41
505          AND   ((SET_PROCESS_ID >= 3000000000000) OR (SET_PROCESS_ID = 3000000000000-999));
506 
507          IF l_inv_debug_level IN(101, 102) THEN
508            INVPUTLI.info('INVNIRIS.mtl_pr_validate_item: before INV_EGO_REVISION_VALIDATE.validate_items_lifecycle');
509          END IF;
510          /* start addition of code for bug 7255713-ccsingh */
511          status := INVPVDR5.validate_item_header5(
512                         org_id,
513                         all_org,
514                         prog_appid,
515                         prog_id,
516                         request_id,
517                         user_id,
518                         login_id,
519                         err_text,
520                         xset_id + 3000000000000);
521 
522 
523       END IF ;
524 
525       IF (status = 0) THEN
526 
527          UPDATE  MTL_SYSTEM_ITEMS_INTERFACE
528          SET   PROCESS_FLAG   = 4
529          WHERE PROCESS_FLAG   = 45 --Changed the value from 41 to 45 as we need to validate primary attributes
530          AND   ((SET_PROCESS_ID >= 3000000000000) OR (SET_PROCESS_ID = 3000000000000-999));
531 
532          IF l_inv_debug_level IN(101, 102) THEN
533             INVPUTLI.info('INVNIRIS.mtl_pr_validate_item: before INV_EGO_REVISION_VALIDATE.validate_items_lifecycle');
534          END IF;
535          /* end addition of code for bug 7255713-ccsingh */
536          status := INV_EGO_REVISION_VALIDATE.validate_items_lifecycle(
537                          P_Org_Id     => org_id
538                         ,P_All_Org    => all_org
539                         ,P_Prog_AppId => prog_appid
540                         ,P_Prog_Id    => prog_id
541                         ,P_Request_Id => request_id
542                         ,P_User_Id    => user_id
543                         ,P_Login_Id   => login_id
544                         ,P_Set_Id     => xset_id + 3000000000000
545                         ,X_Err_Text   => err_text);
546 
547          IF l_inv_debug_level IN(101, 102) THEN
548             INVPUTLI.info('INVNIRIS.mtl_pr_validate_item: INV_EGO_REVISION_VALIDATE.validate_items_lifecycle');
549          END IF;
550 
551       END IF;
552 
553       -- validate item revisions
554       IF (status = 0) THEN
555          IF l_inv_debug_level IN(101, 102) THEN
556 	         INVPUTLI.info('INVNIRIS.mtl_pr_validate_item: before validate_item_revs');
557          END IF;
558          status := INVPVALI.validate_item_revs (
559                         org_id,
560                         all_org,
561                         prog_appid,
562                         prog_id,
563                         request_id,
564                         user_id,
565                         login_id,
566                         err_text,
567                         xset_id + 3000000000000 );
568 
569          IF l_inv_debug_level IN(101, 102) THEN
570   	         INVPUTLI.info('INVNIRIS.mtl_pr_validate_item: after validate_item_revs');
571          END IF;
572       END IF;
573    END IF;
574 
575    IF l_inv_debug_level IN(101, 102) THEN
576       INVPUTLI.info('INVNIRIS.mtl_pr_validate_item:  done with status :'||status);
577    END IF;
578 
579    UPDATE mtl_system_items_interface
580    SET SET_PROCESS_ID = xset_id
581    WHERE ((SET_PROCESS_ID >= 3000000000000) OR (SET_PROCESS_ID = 3000000000000-999));
582 
583    UPDATE mtl_item_revisions_interface
584    SET SET_PROCESS_ID = xset_id
585    WHERE ((SET_PROCESS_ID >= 3000000000000) OR (SET_PROCESS_ID = 3000000000000-999));
586 
587 
588    OPEN  c_get_batch_policy;
589    FETCH c_get_batch_policy INTO l_import_co_option;
590    CLOSE c_get_batch_policy;
591 
592    IF NVL(l_import_co_option,'N') = 'Y' THEN
593 
594       UPDATE mtl_item_revisions_interface i
595       SET    i.process_flag      = 5
596       WHERE  i.process_flag      = 2
597       AND    i.set_process_id    = xset_id
598       AND    ((i.organization_id = org_id) or (all_org = 1))
599       AND    i.transaction_type  = 'CREATE'
600       AND    i.revision <> (select m.starting_revision
601                             from  mtl_parameters m
602                             where  m.organization_id = i.organization_id);
603    END IF;
604 
605    RETURN (status);
606 
607 EXCEPTION
608 
609    WHEN OTHERS THEN
610       err_text := substr('INVNIRIS.mtl_pr_validate_item ' || SQLERRM, 1,240);
611       IF l_inv_debug_level IN(101, 102) THEN
612          INVPUTLI.info(err_text);
613       END IF;
614       RETURN(SQLCODE);
615 
619 org_id          number,
616 END mtl_validate_nir_item;
617 
618 FUNCTION change_policy_check(
620 all_org         NUMBER  DEFAULT 2,
621 prog_appid      NUMBER  DEFAULT -1,
622 prog_id         NUMBER  DEFAULT -1,
623 request_id      NUMBER  DEFAULT -1,
624 user_id         NUMBER  DEFAULT -1,
625 login_id        NUMBER  DEFAULT -1,
626 xset_id         NUMBER  DEFAULT -999,
627 err_text        IN OUT  NOCOPY VARCHAR2) RETURN INTEGER IS
628 
629    CURSOR c_populate_values IS
630       SELECT msi.rowid
631             ,msb.lifecycle_id
632             ,msb.current_phase_id
633             ,msb.inventory_item_status_code
634             ,msb.item_catalog_group_id
635             ,msb.eng_item_flag -- 5306178
636             ,msb.style_item_flag
637             ,msb.style_item_id
638             ,msb.gdsn_outbound_enabled_flag
639       FROM   mtl_system_items_interface msi,
640              mtl_system_items_b msb
641       WHERE  msi.process_flag      = 1
642       AND    msi.set_process_id    = xset_id
643       AND    ((msi.organization_id = org_id) or (all_org = 1))
644       AND    msi.transaction_type  = 'UPDATE'
645       AND    msi.organization_id   = msb.organization_id
646       AND    msi.inventory_item_id = msb.inventory_item_id;
647       -- 5306178 and    NVL(msb.approval_status,'A') = 'A';
648 
649   CURSOR c_check_attributes_policy IS
650       SELECT  msi.rowid
651              ,msi.*
652       FROM   mtl_system_items_interface msi
653       WHERE  msi.process_flag      = 1
654       AND    msi.set_process_id    = xset_id
655       AND    ((msi.organization_id = org_id) or (all_org = 1))
656       AND    msi.transaction_type  = 'UPDATE';
657 
658    --4676583 : Honouring batch option - Add All Imported Items to Change Order
659    --5216971 : Added structure_type_id
660    CURSOR c_get_batch_policy IS
661       SELECT NVL(add_all_to_change_flag,'N'), structure_type_id
662       FROM   ego_import_option_sets
663       WHERE  batch_id = xset_id;
664 
665 
666    cursor c_hold_status_codes is
667    SELECT msi.inventory_item_status_code, msi.eng_item_flag, msi.rowid
668      FROM mtl_system_items_interface msi
669     WHERE msi.process_flag      = 1
670       AND msi.set_process_id    = xset_id
671       AND ((msi.organization_id = org_id) or (all_org = 1))
672       AND msi.transaction_type  = 'UPDATE';
673 
674    l_process_control   VARCHAR2(50) := INV_EGO_REVISION_VALIDATE.Get_Process_Control;
675    l_ret_code          NUMBER  := 1;
676    l_msb_rec           mtl_system_items%ROWTYPE;
677    l_attr_grps         VARCHAR2(200);
678    l_eng_object        VARCHAR2(10);
679    l_policy_value      VARCHAR2(100);
680    l_error_logged      NUMBER := 0;
681    l_Err_Text          VARCHAR2(500);
682    LOGGING_ERR         EXCEPTION;
683    l_return_status     VARCHAR2(100);
684    l_import_co_option  VARCHAR2(1) := 'N';
685    l_inv_debug_level	  NUMBER := INVPUTLI.get_debug_level;     --Bug: 4667452
686    --Contains  'Attribute_Group_ID:Attribute_Group_Name'
687    TYPE Item_Attributes_Type IS TABLE OF  VARCHAR2(100) INDEX BY BINARY_INTEGER;
688    Attribute_Grp_Table  Item_Attributes_Type;
689    l_status             NUMBER;
690 
691    l_structure_type_id  NUMBER; --5216971
692    l_values_provided    BOOLEAN := FALSE;
693    l_desc_status_change BOOLEAN := FALSE;
694    l_rowid              ROWID;
695    l_status_code        mtl_system_items_b.inventory_item_status_code%TYPE;
696    l_eng_item_flag      mtl_system_items_b.eng_item_flag%TYPE;
697 
698    --Bug: 5532737
699    l_attr_grp_name      EGO_ATTR_GROUPS_V.ATTR_GROUP_DISP_NAME%TYPE;
700    l_ch_policy_found    BOOLEAN := FALSE;
701    l_delim_pos          NUMBER  := 1;
702    l_attr_group_id           VARCHAR2(10);
703    l_msg_text           VARCHAR2(2000);
704    --End Bug: 5532737
705 
706    FUNCTION get_attribute_group_id(p_attr_grp_name VARCHAR2) RETURN NUMBER IS
707       l_attr_grp_id    NUMBER;
708    BEGIN
709 
710       FOR I IN 1..Attribute_Grp_Table.COUNT LOOP
711          IF SUBSTR(Attribute_Grp_Table(I),INSTR(Attribute_Grp_Table(I),':')+1) = p_attr_grp_name THEN
712             l_attr_grp_id := TO_NUMBER(SUBSTR(Attribute_Grp_Table(I),1,INSTR(Attribute_Grp_Table(I),':')-1));
713          END IF;
714       END LOOP;
715       RETURN l_attr_grp_id ;
716    END get_attribute_group_id;
717 
718 
719 BEGIN
720 
721    UPDATE MTL_SYSTEM_ITEMS_INTERFACE
722    SET    transaction_id = MTL_SYSTEM_ITEMS_INTERFACE_S.NEXTVAL
723    WHERE  transaction_id IS NULL
724    AND    set_process_id = xset_id;
725 
726    --Assign Item Id and apply template.
727    l_ret_code := INVUPD1B.chk_exist_copy_template_attr(
728            org_id,
729            all_org,
730            prog_appid,
731            prog_id,
732            request_id,
733            user_id,
734            login_id,
735            err_text,
736            xset_id);
737 
738    --Start bug: 5238510
739    --         : Check for data security and user privileges
740    IF l_inv_debug_level IN(101, 102) THEN
741       INVPUTLI.info('INVNIRIS.change_poilcy_check: before INV_EGO_REVISION_VALIDATE.validate_item_user_privileges');
742    END IF;
743 
744    l_status := INV_EGO_REVISION_VALIDATE.validate_item_user_privileges(
745                          P_Org_Id       => org_id
746                         ,P_All_Org      => all_org
747                         ,P_Prog_AppId   => prog_appid
748                         ,P_Prog_Id      => prog_id
749                         ,P_Request_Id   => request_id
750                         ,P_User_Id      => user_id
754 			,P_Process_flag => 1);
751                         ,P_Login_Id     => login_id
752                         ,P_Set_Id       => xset_id
753                         ,X_Err_Text     => err_text
755 
756    IF l_inv_debug_level IN(101, 102) THEN
757      INVPUTLI.info('INVNIRIS.change_poilcy_check: done INV_EGO_REVISION_VALIDATE.validate_item_user_privileges');
758    END IF;
759    --End bug: 5238510
760 
761    l_eng_object := INV_ITEM_UTIL.Object_Exists(p_object_type=>'PACKAGE BODY',p_object_name=>'ENG_CHANGE_POLICY_PKG');
762 
763    --When called from ECO validate and impliment should not mark them to 5.
764    --6157001 : Removed the ENG_CALL:Y check
765    IF (INSTR(l_process_control,'PLM_UI:Y') = 0) AND (l_eng_object ='Y')  THEN
766 
767       --Bug 5383744
768       --Cache the current value of status code in this cursor.
769       OPEN c_hold_status_codes;
770 
771       --Default certain basic attributes which are required for policy check.
772       FOR cur IN c_populate_values LOOP
773             UPDATE mtl_system_items_interface
774             SET  lifecycle_id               = DECODE(lifecycle_id,NULL,cur.lifecycle_id,-999999,NULL,lifecycle_id)
775                 ,current_phase_id           = DECODE(current_phase_id,NULL,cur.current_phase_id,-999999,NULL,current_phase_id)
776                 ,item_catalog_group_id      = DECODE(item_catalog_group_id,NULL,cur.item_catalog_group_id,-999999, NULL,item_catalog_group_id)
777                 ,inventory_item_status_code = NVL(inventory_item_status_code,cur.inventory_item_status_code)
778                 ,eng_item_flag              = NVL(eng_item_flag,cur.eng_item_flag) -- 5306178
779                  --Adding style item defaulting, since style/sku validations need to be performed before ICC change
780 	  	           --which happens in policy check
781    		       ,style_item_flag            = DECODE(style_item_flag,NULL,cur.style_item_flag,'!',NULL,chr(0),NULL,style_item_flag)
782 		          ,style_item_id              = DECODE(style_item_id,NULL, cur.style_item_id,-999999,NULL,9.99E125,NULL,style_item_id)
783                 ,gdsn_outbound_enabled_flag = DECODE(gdsn_outbound_enabled_flag,NULL,cur.gdsn_outbound_enabled_flag,'!',NULL,chr(0),NULL,gdsn_outbound_enabled_flag)
784             WHERE rowid = cur.rowid;
785       END LOOP;
786 
787       --Call Item Lifecycle-Phase-Status validation.
788       l_ret_code := INV_EGO_REVISION_VALIDATE.validate_items_lifecycle(
789           P_Org_Id       => org_id
790          ,P_All_Org      => all_org
791          ,P_Prog_AppId   => prog_appid
792          ,P_Prog_Id      => prog_id
793          ,P_Request_Id   => request_id
794          ,P_User_Id      => user_id
795          ,P_Login_Id     => login_id
796          ,P_Set_id       => xset_id
797          ,P_Process_Flag => 1
798          ,X_Err_Text     => err_text);
799 
800       --Bug 5383744 Update the status code values back to what user has populated.
801       LOOP
802          FETCH c_hold_status_codes
803           INTO l_status_code, l_eng_item_flag, l_rowid ;
804          EXIT WHEN c_hold_status_codes%NOTFOUND;
805          UPDATE mtl_system_items_interface
806             SET inventory_item_status_code = l_status_code
807 	       ,eng_item_flag              = l_eng_item_flag
808           WHERE rowid = l_rowid;
809       END LOOP;
810       CLOSE c_hold_status_codes;
811 
812       --Get attribute group+id
813       SELECT ATTR_GROUP_ID||':'||UPPER(ATTR_GROUP_NAME)
814       BULK COLLECT INTO Attribute_Grp_Table
815       FROM EGO_ATTR_GROUPS_V
816       WHERE ATTR_GROUP_TYPE ='EGO_MASTER_ITEMS';
817 
818     -- Bug 4870703 : Change policy check should take precedence over batch options
819     -- Bug 4676583 : Honouring batch option - Add All Imported Items to Change Order
820 
821       OPEN  c_get_batch_policy;
822       FETCH c_get_batch_policy INTO l_import_co_option, l_structure_type_id;
823       CLOSE c_get_batch_policy;
824 
825       FOR cur IN c_check_attributes_policy LOOP
826          IF l_inv_debug_level IN(101, 102) THEN
827             INVPUTLI.info('INVNIRIS.change_policy_check: Checking Attr groups');
828          END IF;
829 
830          l_attr_grps    := NULL;
831          l_policy_value := NULL;
832          l_Err_Text     := NULL;
833          l_error_logged := 0;
834 
835          SELECT * INTO  l_msb_rec
836          FROM   mtl_system_items
837          WHERE inventory_item_id = cur.inventory_item_id
838          AND   organization_id   = cur.organization_id;
839 
840          --5367962 Check for attribute changes if:
841          --Item Import     : Item has a lifecycle attached to it.
842          --Structure Import: If Add to CO is YES.
843 
844          IF NVL(l_msb_rec.APPROVAL_STATUS,'A') ='A'
845          AND (cur.current_phase_id is NOT NULL OR
846              (NVL(l_import_co_option,'N') = 'Y' AND l_structure_type_id IS NOT NULL) )
847          THEN
848 
849             --Inventory Attribute Group
850             IF (NVL(cur.INVENTORY_ITEM_FLAG,           NVL(l_msb_rec.INVENTORY_ITEM_FLAG,'!'))              <> NVL(l_msb_rec.INVENTORY_ITEM_FLAG,'!'))
851             OR (NVL(cur.STOCK_ENABLED_FLAG,            NVL(l_msb_rec.STOCK_ENABLED_FLAG,'!'))               <> NVL(l_msb_rec.STOCK_ENABLED_FLAG,'!'))
852             OR (NVL(cur.MTL_TRANSACTIONS_ENABLED_FLAG, NVL(l_msb_rec.MTL_TRANSACTIONS_ENABLED_FLAG,'!'))    <> NVL(l_msb_rec.MTL_TRANSACTIONS_ENABLED_FLAG,'!'))
853             OR (NVL(cur.REVISION_QTY_CONTROL_CODE,     NVL(l_msb_rec.REVISION_QTY_CONTROL_CODE,-999999))    <> NVL(l_msb_rec.REVISION_QTY_CONTROL_CODE,-999999))
854             OR (NVL(cur.RESERVABLE_TYPE,               NVL(l_msb_rec.RESERVABLE_TYPE,-999999))              <> NVL(l_msb_rec.RESERVABLE_TYPE,-999999))
858             OR (NVL(cur.START_AUTO_LOT_NUMBER,         NVL(l_msb_rec.START_AUTO_LOT_NUMBER,'!'))            <> NVL(l_msb_rec.START_AUTO_LOT_NUMBER,'!'))
855             OR (NVL(cur.CHECK_SHORTAGES_FLAG,          NVL(l_msb_rec.CHECK_SHORTAGES_FLAG,'!'))             <> NVL(l_msb_rec.CHECK_SHORTAGES_FLAG,'!'))
856             OR (NVL(cur.LOT_CONTROL_CODE,              NVL(l_msb_rec.LOT_CONTROL_CODE,-999999))             <> NVL(l_msb_rec.LOT_CONTROL_CODE,-999999))
857             OR (NVL(cur.AUTO_LOT_ALPHA_PREFIX,         NVL(l_msb_rec.AUTO_LOT_ALPHA_PREFIX,'!'))            <> NVL(l_msb_rec.AUTO_LOT_ALPHA_PREFIX,'!'))
859             OR (NVL(cur.MATURITY_DAYS,                 NVL(l_msb_rec.MATURITY_DAYS,-999999))                <> NVL(l_msb_rec.MATURITY_DAYS,-999999))
860             OR (NVL(cur.HOLD_DAYS,                     NVL(l_msb_rec.HOLD_DAYS,-999999))                    <> NVL(l_msb_rec.HOLD_DAYS,-999999))
861             OR (NVL(cur.SHELF_LIFE_CODE,               NVL(l_msb_rec.SHELF_LIFE_CODE,-999999))              <> NVL(l_msb_rec.SHELF_LIFE_CODE,-999999))
862             OR (NVL(cur.SHELF_LIFE_DAYS,               NVL(l_msb_rec.SHELF_LIFE_DAYS,-999999))              <> NVL(l_msb_rec.SHELF_LIFE_DAYS,-999999))
863             OR (NVL(cur.RETEST_INTERVAL,               NVL(l_msb_rec.RETEST_INTERVAL,-999999))              <> NVL(l_msb_rec.RETEST_INTERVAL,-999999))
864             OR (NVL(cur.EXPIRATION_ACTION_INTERVAL,    NVL(l_msb_rec.EXPIRATION_ACTION_INTERVAL,-999999))   <> NVL(l_msb_rec.EXPIRATION_ACTION_INTERVAL,-999999))
865             OR (NVL(cur.EXPIRATION_ACTION_CODE,        NVL(l_msb_rec.EXPIRATION_ACTION_CODE,'!'))           <> NVL(l_msb_rec.EXPIRATION_ACTION_CODE,'!'))
866             OR (NVL(cur.CYCLE_COUNT_ENABLED_FLAG,      NVL(l_msb_rec.CYCLE_COUNT_ENABLED_FLAG,'!'))         <> NVL(l_msb_rec.CYCLE_COUNT_ENABLED_FLAG,'!'))
867             OR (NVL(cur.NEGATIVE_MEASUREMENT_ERROR,    NVL(l_msb_rec.NEGATIVE_MEASUREMENT_ERROR,-999999))   <> NVL(l_msb_rec.NEGATIVE_MEASUREMENT_ERROR,-999999))
868             OR (NVL(cur.POSITIVE_MEASUREMENT_ERROR,    NVL(l_msb_rec.POSITIVE_MEASUREMENT_ERROR,-999999))   <> NVL(l_msb_rec.POSITIVE_MEASUREMENT_ERROR,-999999))
869             OR (NVL(cur.SERIAL_NUMBER_CONTROL_CODE,    NVL(l_msb_rec.SERIAL_NUMBER_CONTROL_CODE,-999999))   <> NVL(l_msb_rec.SERIAL_NUMBER_CONTROL_CODE,-999999))
870             OR (NVL(cur.AUTO_SERIAL_ALPHA_PREFIX,      NVL(l_msb_rec.AUTO_SERIAL_ALPHA_PREFIX,'!'))         <> NVL(l_msb_rec.AUTO_SERIAL_ALPHA_PREFIX,'!'))
871             OR (NVL(cur.START_AUTO_SERIAL_NUMBER,      NVL(l_msb_rec.START_AUTO_SERIAL_NUMBER,'!'))         <> NVL(l_msb_rec.START_AUTO_SERIAL_NUMBER,'!'))
872             OR (NVL(cur.LOCATION_CONTROL_CODE,         NVL(l_msb_rec.LOCATION_CONTROL_CODE,-999999))        <> NVL(l_msb_rec.LOCATION_CONTROL_CODE,-999999))
873             OR (NVL(cur.RESTRICT_SUBINVENTORIES_CODE,  NVL(l_msb_rec.RESTRICT_SUBINVENTORIES_CODE,-999999)) <> NVL(l_msb_rec.RESTRICT_SUBINVENTORIES_CODE,-999999))
874             OR (NVL(cur.RESTRICT_LOCATORS_CODE,        NVL(l_msb_rec.RESTRICT_LOCATORS_CODE,-999999))       <> NVL(l_msb_rec.RESTRICT_LOCATORS_CODE,-999999))
875             OR (NVL(cur.LOT_STATUS_ENABLED,            NVL(l_msb_rec.LOT_STATUS_ENABLED,'!'))               <> NVL(l_msb_rec.LOT_STATUS_ENABLED,'!'))
876             OR (NVL(cur.DEFAULT_LOT_STATUS_ID,         NVL(l_msb_rec.DEFAULT_LOT_STATUS_ID,-999999))        <> NVL(l_msb_rec.DEFAULT_LOT_STATUS_ID,-999999))
877             OR (NVL(cur.SERIAL_STATUS_ENABLED,         NVL(l_msb_rec.SERIAL_STATUS_ENABLED,'!'))            <> NVL(l_msb_rec.SERIAL_STATUS_ENABLED,'!'))
878             OR (NVL(cur.DEFAULT_SERIAL_STATUS_ID,      NVL(l_msb_rec.DEFAULT_SERIAL_STATUS_ID,-999999))     <> NVL(l_msb_rec.DEFAULT_SERIAL_STATUS_ID,-999999))
879             OR (NVL(cur.SERIAL_STATUS_ENABLED,         NVL(l_msb_rec.SERIAL_STATUS_ENABLED,'!'))            <> NVL(l_msb_rec.SERIAL_STATUS_ENABLED,'!'))
880             OR (NVL(cur.DEFAULT_SERIAL_STATUS_ID,      NVL(l_msb_rec.DEFAULT_SERIAL_STATUS_ID,-999999))     <> NVL(l_msb_rec.DEFAULT_SERIAL_STATUS_ID,-999999))
881             OR (NVL(cur.GRADE_CONTROL_FLAG,            NVL(l_msb_rec.GRADE_CONTROL_FLAG,'!'))               <> NVL(l_msb_rec.GRADE_CONTROL_FLAG,'!'))
882             OR (NVL(cur.DEFAULT_GRADE,                 NVL(l_msb_rec.DEFAULT_GRADE,'!'))                    <> NVL(l_msb_rec.DEFAULT_GRADE,'!'))
883             OR (NVL(cur.LOT_SPLIT_ENABLED,             NVL(l_msb_rec.LOT_SPLIT_ENABLED,'!'))                <> NVL(l_msb_rec.LOT_SPLIT_ENABLED,'!'))
884             OR (NVL(cur.LOT_MERGE_ENABLED,             NVL(l_msb_rec.LOT_MERGE_ENABLED,'!'))                <> NVL(l_msb_rec.LOT_MERGE_ENABLED,'!'))
885             OR (NVL(cur.LOT_TRANSLATE_ENABLED,         NVL(l_msb_rec.LOT_TRANSLATE_ENABLED,'!'))            <> NVL(l_msb_rec.LOT_TRANSLATE_ENABLED,'!'))
886             OR (NVL(cur.LOT_SUBSTITUTION_ENABLED,      NVL(l_msb_rec.LOT_SUBSTITUTION_ENABLED,'!'))         <> NVL(l_msb_rec.LOT_SUBSTITUTION_ENABLED,'!'))
887             OR (NVL(cur.BULK_PICKED_FLAG,              NVL(l_msb_rec.BULK_PICKED_FLAG,'!'))                 <> NVL(l_msb_rec.BULK_PICKED_FLAG,'!'))
888             OR (NVL(cur.LOT_DIVISIBLE_FLAG,            NVL(l_msb_rec.LOT_DIVISIBLE_FLAG,'!'))               <> NVL(l_msb_rec.LOT_DIVISIBLE_FLAG,'!'))
889             OR (NVL(cur.CHILD_LOT_PREFIX,              NVL(l_msb_rec.CHILD_LOT_PREFIX,-999999))                 <> NVL(l_msb_rec.CHILD_LOT_PREFIX,-999999))
890             OR (NVL(cur.CHILD_LOT_STARTING_NUMBER,     NVL(l_msb_rec.CHILD_LOT_STARTING_NUMBER,-999999))    <> NVL(l_msb_rec.CHILD_LOT_STARTING_NUMBER,-999999))
891             OR (NVL(cur.CHILD_LOT_VALIDATION_FLAG,     NVL(l_msb_rec.CHILD_LOT_VALIDATION_FLAG,'!'))        <> NVL(l_msb_rec.CHILD_LOT_VALIDATION_FLAG,'!'))
892             OR (NVL(cur.PARENT_CHILD_GENERATION_FLAG,  NVL(l_msb_rec.PARENT_CHILD_GENERATION_FLAG,'!'))     <> NVL(l_msb_rec.PARENT_CHILD_GENERATION_FLAG,'!'))
893             OR (NVL(cur.COPY_LOT_ATTRIBUTE_FLAG,       NVL(l_msb_rec.COPY_LOT_ATTRIBUTE_FLAG,'!'))          <> NVL(l_msb_rec.COPY_LOT_ATTRIBUTE_FLAG,'!'))
894             OR (NVL(cur.CHILD_LOT_FLAG,                NVL(l_msb_rec.CHILD_LOT_FLAG,'!'))                   <> NVL(l_msb_rec.CHILD_LOT_FLAG,'!'))
895             THEN
896                IF l_attr_grps IS NULL THEN
900                END IF;
897                   l_attr_grps := TO_CHAR(get_attribute_group_id('INVENTORY'));
898                ELSE
899                   l_attr_grps := l_attr_grps ||','||TO_CHAR(get_attribute_group_id('INVENTORY'));
901             END IF;
902 
903             --BOM Attribute Group
904             IF (NVL(cur.BOM_ENABLED_FLAG,              NVL(l_msb_rec.BOM_ENABLED_FLAG,'!'))                 <> NVL(l_msb_rec.BOM_ENABLED_FLAG,'!'))
905             OR (NVL(cur.BOM_ITEM_TYPE,                 NVL(l_msb_rec.BOM_ITEM_TYPE,-999999))                <> NVL(l_msb_rec.BOM_ITEM_TYPE,-999999))
906             OR (NVL(cur.BASE_ITEM_ID,                  NVL(l_msb_rec.BASE_ITEM_ID,-999999))                 <> NVL(l_msb_rec.BASE_ITEM_ID,-999999))
907             OR (NVL(cur.AUTO_CREATED_CONFIG_FLAG,      NVL(l_msb_rec.AUTO_CREATED_CONFIG_FLAG,'!'))         <> NVL(l_msb_rec.AUTO_CREATED_CONFIG_FLAG,'!'))
908             OR (NVL(cur.ENG_ITEM_FLAG,                 NVL(l_msb_rec.ENG_ITEM_FLAG,'!'))                    <> NVL(l_msb_rec.ENG_ITEM_FLAG,'!'))
909             OR (NVL(cur.EFFECTIVITY_CONTROL,           NVL(l_msb_rec.EFFECTIVITY_CONTROL,-999999))          <> NVL(l_msb_rec.EFFECTIVITY_CONTROL,-999999))
910             OR (NVL(cur.CONFIG_MODEL_TYPE,             NVL(l_msb_rec.CONFIG_MODEL_TYPE,'!'))                <> NVL(l_msb_rec.CONFIG_MODEL_TYPE,'!'))
911             OR (NVL(cur.CONFIG_ORGS,                   NVL(l_msb_rec.CONFIG_ORGS,-999999))                  <> NVL(l_msb_rec.CONFIG_ORGS,-999999))
912             OR (NVL(cur.CONFIG_MATCH,                  NVL(l_msb_rec.CONFIG_MATCH,'!'))                     <> NVL(l_msb_rec.CONFIG_MATCH,'!'))
913             THEN
914                IF l_attr_grps IS NULL THEN
915                   l_attr_grps := TO_CHAR(get_attribute_group_id('BILLOFMATERIALS'));
916                ELSE
917                   l_attr_grps := l_attr_grps ||','||TO_CHAR(get_attribute_group_id('BILLOFMATERIALS'));
918                END IF;
919             END IF;
920 
921             --Asset Management Group
922             IF (NVL(cur.EAM_ITEM_TYPE,                 NVL(l_msb_rec.EAM_ITEM_TYPE,-999999))                <> NVL(l_msb_rec.EAM_ITEM_TYPE,-999999))
923             OR (NVL(cur.EAM_ACTIVITY_TYPE_CODE,        NVL(l_msb_rec.EAM_ACTIVITY_TYPE_CODE,'!'))           <> NVL(l_msb_rec.EAM_ACTIVITY_TYPE_CODE,'!'))
924             OR (NVL(cur.EAM_ACTIVITY_CAUSE_CODE,       NVL(l_msb_rec.EAM_ACTIVITY_CAUSE_CODE,'!'))          <> NVL(l_msb_rec.EAM_ACTIVITY_CAUSE_CODE,'!'))
925             OR (NVL(cur.EAM_ACTIVITY_SOURCE_CODE,      NVL(l_msb_rec.EAM_ACTIVITY_SOURCE_CODE,'!'))         <> NVL(l_msb_rec.EAM_ACTIVITY_SOURCE_CODE,'!'))
926             OR (NVL(cur.EAM_ACT_SHUTDOWN_STATUS,       NVL(l_msb_rec.EAM_ACT_SHUTDOWN_STATUS,'!'))          <> NVL(l_msb_rec.EAM_ACT_SHUTDOWN_STATUS,'!'))
927             OR (NVL(cur.EAM_ACT_NOTIFICATION_FLAG,     NVL(l_msb_rec.EAM_ACT_NOTIFICATION_FLAG,'!'))        <> NVL(l_msb_rec.EAM_ACT_NOTIFICATION_FLAG,'!'))
928             THEN
929                IF l_attr_grps IS NULL THEN
930                   l_attr_grps := TO_CHAR(get_attribute_group_id('ASSETMANAGEMENT'));
931                ELSE
932                   l_attr_grps := l_attr_grps ||','||TO_CHAR(get_attribute_group_id('ASSETMANAGEMENT'));
933                END IF;
934             END IF;
935 
936             --Costing Attribute Group
937             IF (NVL(cur.COSTING_ENABLED_FLAG,          NVL(l_msb_rec.COSTING_ENABLED_FLAG,'!'))             <> NVL(l_msb_rec.COSTING_ENABLED_FLAG,'!'))
938             OR (NVL(cur.INVENTORY_ASSET_FLAG,          NVL(l_msb_rec.INVENTORY_ASSET_FLAG,'!'))             <> NVL(l_msb_rec.INVENTORY_ASSET_FLAG,'!'))
939             OR (NVL(cur.DEFAULT_INCLUDE_IN_ROLLUP_FLAG,NVL(l_msb_rec.DEFAULT_INCLUDE_IN_ROLLUP_FLAG,'!'))   <> NVL(l_msb_rec.DEFAULT_INCLUDE_IN_ROLLUP_FLAG,'!'))
940             OR (NVL(cur.COST_OF_SALES_ACCOUNT,         NVL(l_msb_rec.COST_OF_SALES_ACCOUNT,-999999))        <> NVL(l_msb_rec.COST_OF_SALES_ACCOUNT,-999999))
941             OR (NVL(cur.STD_LOT_SIZE,                  NVL(l_msb_rec.STD_LOT_SIZE,-999999))                 <> NVL(l_msb_rec.STD_LOT_SIZE,-999999))
942             THEN
943                IF l_attr_grps IS NULL THEN
944                   l_attr_grps := TO_CHAR(get_attribute_group_id('COSTING'));
945                ELSE
946                   l_attr_grps := l_attr_grps ||','||TO_CHAR(get_attribute_group_id('COSTING'));
947                END IF;
948             END IF;
949 
950             --Purchasing Attribute Group
951             IF (NVL(cur.PURCHASING_ITEM_FLAG,          NVL(l_msb_rec.PURCHASING_ITEM_FLAG,'!'))             <> NVL(l_msb_rec.PURCHASING_ITEM_FLAG,'!'))
952             OR (NVL(cur.PURCHASING_ENABLED_FLAG,       NVL(l_msb_rec.PURCHASING_ENABLED_FLAG,'!'))          <> NVL(l_msb_rec.PURCHASING_ENABLED_FLAG,'!'))
953             OR (NVL(cur.MUST_USE_APPROVED_VENDOR_FLAG, NVL(l_msb_rec.MUST_USE_APPROVED_VENDOR_FLAG,'!'))    <> NVL(l_msb_rec.MUST_USE_APPROVED_VENDOR_FLAG,'!'))
954             OR (NVL(cur.ALLOW_ITEM_DESC_UPDATE_FLAG,   NVL(l_msb_rec.ALLOW_ITEM_DESC_UPDATE_FLAG,'!'))      <> NVL(l_msb_rec.ALLOW_ITEM_DESC_UPDATE_FLAG,'!'))
955             OR (NVL(cur.RFQ_REQUIRED_FLAG,             NVL(l_msb_rec.RFQ_REQUIRED_FLAG,'!'))                <> NVL(l_msb_rec.RFQ_REQUIRED_FLAG,'!'))
956             OR (NVL(cur.OUTSIDE_OPERATION_FLAG,        NVL(l_msb_rec.OUTSIDE_OPERATION_FLAG,'!'))           <> NVL(l_msb_rec.OUTSIDE_OPERATION_FLAG,'!'))
957             OR (NVL(cur.OUTSIDE_OPERATION_UOM_TYPE,    NVL(l_msb_rec.OUTSIDE_OPERATION_UOM_TYPE,'!'))       <> NVL(l_msb_rec.OUTSIDE_OPERATION_UOM_TYPE,'!'))
958             OR (NVL(cur.TAXABLE_FLAG,                  NVL(l_msb_rec.TAXABLE_FLAG,'!'))                     <> NVL(l_msb_rec.TAXABLE_FLAG,'!'))
959             OR (NVL(cur.TAX_CODE,                      NVL(l_msb_rec.TAX_CODE,'!'))                         <> NVL(l_msb_rec.TAX_CODE,'!'))
960             OR (NVL(cur.RECEIPT_REQUIRED_FLAG,         NVL(l_msb_rec.RECEIPT_REQUIRED_FLAG,'!'))            <> NVL(l_msb_rec.RECEIPT_REQUIRED_FLAG,'!'))
961             OR (NVL(cur.INSPECTION_REQUIRED_FLAG,      NVL(l_msb_rec.INSPECTION_REQUIRED_FLAG,'!'))         <> NVL(l_msb_rec.INSPECTION_REQUIRED_FLAG,'!'))
965             OR (NVL(cur.INVOICE_CLOSE_TOLERANCE,       NVL(l_msb_rec.INVOICE_CLOSE_TOLERANCE,-999999))      <> NVL(l_msb_rec.INVOICE_CLOSE_TOLERANCE,-999999))
962             OR (NVL(cur.BUYER_ID,                      NVL(l_msb_rec.BUYER_ID,-999999))                     <> NVL(l_msb_rec.BUYER_ID,-999999))
963             OR (NVL(cur.UNIT_OF_ISSUE,                 NVL(l_msb_rec.UNIT_OF_ISSUE,'!'))                    <> NVL(l_msb_rec.UNIT_OF_ISSUE,'!'))
964             OR (NVL(cur.RECEIVE_CLOSE_TOLERANCE,       NVL(l_msb_rec.RECEIVE_CLOSE_TOLERANCE,-999999))      <> NVL(l_msb_rec.RECEIVE_CLOSE_TOLERANCE,-999999))
966             OR (NVL(cur.UN_NUMBER_ID,                  NVL(l_msb_rec.UN_NUMBER_ID,-999999))                 <> NVL(l_msb_rec.UN_NUMBER_ID,-999999))
967             OR (NVL(cur.HAZARD_CLASS_ID,               NVL(l_msb_rec.HAZARD_CLASS_ID,-999999))              <> NVL(l_msb_rec.HAZARD_CLASS_ID,-999999))
968             OR (NVL(cur.LIST_PRICE_PER_UNIT,           NVL(l_msb_rec.LIST_PRICE_PER_UNIT,-999999))          <> NVL(l_msb_rec.LIST_PRICE_PER_UNIT,-999999))
969             OR (NVL(cur.MARKET_PRICE,                  NVL(l_msb_rec.MARKET_PRICE,-999999))                 <> NVL(l_msb_rec.MARKET_PRICE,-999999))
970             OR (NVL(cur.PRICE_TOLERANCE_PERCENT,       NVL(l_msb_rec.PRICE_TOLERANCE_PERCENT,-999999))      <> NVL(l_msb_rec.PRICE_TOLERANCE_PERCENT,-999999))
971             OR (NVL(cur.ROUNDING_FACTOR,               NVL(l_msb_rec.ROUNDING_FACTOR,-999999))              <> NVL(l_msb_rec.ROUNDING_FACTOR,-999999))
972             OR (NVL(cur.ENCUMBRANCE_ACCOUNT,           NVL(l_msb_rec.ENCUMBRANCE_ACCOUNT,-999999))          <> NVL(l_msb_rec.ENCUMBRANCE_ACCOUNT,-999999))
973             OR (NVL(cur.EXPENSE_ACCOUNT,               NVL(l_msb_rec.EXPENSE_ACCOUNT,-999999))              <> NVL(l_msb_rec.EXPENSE_ACCOUNT,-999999))
974             OR (NVL(cur.ASSET_CATEGORY_ID,             NVL(l_msb_rec.ASSET_CATEGORY_ID,-999999))            <> NVL(l_msb_rec.ASSET_CATEGORY_ID,-999999))
975             OR (NVL(cur.OUTSOURCED_ASSEMBLY,           NVL(l_msb_rec.OUTSOURCED_ASSEMBLY,-999999))          <> NVL(l_msb_rec.OUTSOURCED_ASSEMBLY,-999999))
976             THEN
977                IF l_attr_grps IS NULL THEN
978                   l_attr_grps := TO_CHAR(get_attribute_group_id('PURCHASING'));
979                ELSE
980                   l_attr_grps := l_attr_grps ||','||TO_CHAR(get_attribute_group_id('PURCHASING'));
981                END IF;
982             END IF;
983 
984             --Receiving Attribute Group
985             IF (NVL(cur.RECEIPT_DAYS_EXCEPTION_CODE,   NVL(l_msb_rec.RECEIPT_DAYS_EXCEPTION_CODE,'!'))     <> NVL(l_msb_rec.RECEIPT_DAYS_EXCEPTION_CODE,'!'))
986             OR (NVL(cur.DAYS_EARLY_RECEIPT_ALLOWED,    NVL(l_msb_rec.DAYS_EARLY_RECEIPT_ALLOWED,-999999))  <> NVL(l_msb_rec.DAYS_EARLY_RECEIPT_ALLOWED,-999999))
987             OR (NVL(cur.DAYS_LATE_RECEIPT_ALLOWED,     NVL(l_msb_rec.DAYS_LATE_RECEIPT_ALLOWED,-999999))   <> NVL(l_msb_rec.DAYS_LATE_RECEIPT_ALLOWED,-999999))
988             OR (NVL(cur.QTY_RCV_EXCEPTION_CODE,        NVL(l_msb_rec.QTY_RCV_EXCEPTION_CODE,'!'))          <> NVL(l_msb_rec.QTY_RCV_EXCEPTION_CODE,'!'))
989             OR (NVL(cur.QTY_RCV_TOLERANCE,             NVL(l_msb_rec.QTY_RCV_TOLERANCE,-999999))           <> NVL(l_msb_rec.QTY_RCV_TOLERANCE,-999999))
990             OR (NVL(cur.ALLOW_SUBSTITUTE_RECEIPTS_FLAG,NVL(l_msb_rec.ALLOW_SUBSTITUTE_RECEIPTS_FLAG,'!'))  <> NVL(l_msb_rec.ALLOW_SUBSTITUTE_RECEIPTS_FLAG,'!'))
991             OR (NVL(cur.ALLOW_UNORDERED_RECEIPTS_FLAG, NVL(l_msb_rec.ALLOW_UNORDERED_RECEIPTS_FLAG,'!'))   <> NVL(l_msb_rec.ALLOW_UNORDERED_RECEIPTS_FLAG,'!'))
992             OR (NVL(cur.ALLOW_EXPRESS_DELIVERY_FLAG,   NVL(l_msb_rec.ALLOW_EXPRESS_DELIVERY_FLAG,'!'))     <> NVL(l_msb_rec.ALLOW_EXPRESS_DELIVERY_FLAG,'!'))
993             OR (NVL(cur.RECEIVING_ROUTING_ID,          NVL(l_msb_rec.RECEIVING_ROUTING_ID,-999999))        <> NVL(l_msb_rec.RECEIVING_ROUTING_ID,-999999))
994             OR (NVL(cur.ENFORCE_SHIP_TO_LOCATION_CODE, NVL(l_msb_rec.ENFORCE_SHIP_TO_LOCATION_CODE,'!'))   <> NVL(l_msb_rec.ENFORCE_SHIP_TO_LOCATION_CODE,'!'))
995             THEN
996                IF l_attr_grps IS NULL THEN
997                   l_attr_grps := TO_CHAR(get_attribute_group_id('RECEIVING'));
998                ELSE
999                   l_attr_grps := l_attr_grps ||','||TO_CHAR(get_attribute_group_id('RECEIVING'));
1000                END IF;
1001             END IF;
1002 
1003             --Process Manufacturing Attribute Group
1004             IF (NVL(cur.RECIPE_ENABLED_FLAG,           NVL(l_msb_rec.RECIPE_ENABLED_FLAG,'!'))              <> NVL(l_msb_rec.RECIPE_ENABLED_FLAG,'!'))
1005             OR (NVL(cur.PROCESS_QUALITY_ENABLED_FLAG,  NVL(l_msb_rec.PROCESS_QUALITY_ENABLED_FLAG,'!'))     <> NVL(l_msb_rec.PROCESS_QUALITY_ENABLED_FLAG,'!'))
1006             OR (NVL(cur.PROCESS_EXECUTION_ENABLED_FLAG,NVL(l_msb_rec.PROCESS_EXECUTION_ENABLED_FLAG,'!'))   <> NVL(l_msb_rec.PROCESS_EXECUTION_ENABLED_FLAG,'!'))
1007             OR (NVL(cur.PROCESS_SUPPLY_SUBINVENTORY,   NVL(l_msb_rec.PROCESS_SUPPLY_SUBINVENTORY,'!'))      <> NVL(l_msb_rec.PROCESS_SUPPLY_SUBINVENTORY,'!'))
1008             OR (NVL(cur.PROCESS_SUPPLY_LOCATOR_ID,     NVL(l_msb_rec.PROCESS_SUPPLY_LOCATOR_ID,-999999))    <> NVL(l_msb_rec.PROCESS_SUPPLY_LOCATOR_ID,-999999))
1009             OR (NVL(cur.PROCESS_YIELD_SUBINVENTORY,    NVL(l_msb_rec.PROCESS_YIELD_SUBINVENTORY,'!'))       <> NVL(l_msb_rec.PROCESS_YIELD_SUBINVENTORY,'!'))
1010             OR (NVL(cur.PROCESS_YIELD_LOCATOR_ID,      NVL(l_msb_rec.PROCESS_YIELD_LOCATOR_ID,-999999))     <> NVL(l_msb_rec.PROCESS_YIELD_LOCATOR_ID,-999999))
1011             OR (NVL(cur.PROCESS_COSTING_ENABLED_FLAG,  NVL(l_msb_rec.PROCESS_COSTING_ENABLED_FLAG,'!'))     <> NVL(l_msb_rec.PROCESS_COSTING_ENABLED_FLAG,'!'))
1012             OR (NVL(cur.HAZARDOUS_MATERIAL_FLAG,       NVL(l_msb_rec.HAZARDOUS_MATERIAL_FLAG,'!'))          <> NVL(l_msb_rec.HAZARDOUS_MATERIAL_FLAG,'!'))
1013             OR (NVL(cur.CAS_NUMBER,                    NVL(l_msb_rec.CAS_NUMBER,'!'))                       <> NVL(l_msb_rec.CAS_NUMBER,'!'))
1014             THEN
1015                IF l_attr_grps IS NULL THEN
1016                   l_attr_grps := TO_CHAR(get_attribute_group_id('PROCESSMANUFACTURING'));
1017                ELSE
1021 
1018                   l_attr_grps := l_attr_grps ||','||TO_CHAR(get_attribute_group_id('PROCESSMANUFACTURING'));
1019                END IF;
1020             END IF;
1022             --Physical Attributes
1023             IF (NVL(cur.WEIGHT_UOM_CODE,               NVL(l_msb_rec.WEIGHT_UOM_CODE,'!'))                  <> NVL(l_msb_rec.WEIGHT_UOM_CODE,'!'))
1024             OR (NVL(cur.UNIT_WEIGHT,                   NVL(l_msb_rec.UNIT_WEIGHT,-999999))                  <> NVL(l_msb_rec.UNIT_WEIGHT,-999999))
1025             OR (NVL(cur.VOLUME_UOM_CODE,               NVL(l_msb_rec.VOLUME_UOM_CODE,'!'))                  <> NVL(l_msb_rec.VOLUME_UOM_CODE,'!'))
1026             OR (NVL(cur.UNIT_VOLUME,                   NVL(l_msb_rec.UNIT_VOLUME,-999999))                  <> NVL(l_msb_rec.UNIT_VOLUME,-999999))
1027             OR (NVL(cur.CONTAINER_ITEM_FLAG,           NVL(l_msb_rec.CONTAINER_ITEM_FLAG,'!'))              <> NVL(l_msb_rec.CONTAINER_ITEM_FLAG,'!'))
1028             OR (NVL(cur.VEHICLE_ITEM_FLAG,             NVL(l_msb_rec.VEHICLE_ITEM_FLAG,'!'))                <> NVL(l_msb_rec.VEHICLE_ITEM_FLAG,'!'))
1029             OR (NVL(cur.CONTAINER_TYPE_CODE,           NVL(l_msb_rec.CONTAINER_TYPE_CODE,'!'))              <> NVL(l_msb_rec.CONTAINER_TYPE_CODE,'!'))
1030             OR (NVL(cur.INTERNAL_VOLUME,               NVL(l_msb_rec.INTERNAL_VOLUME,-999999))              <> NVL(l_msb_rec.INTERNAL_VOLUME,-999999))
1031             OR (NVL(cur.MAXIMUM_LOAD_WEIGHT,           NVL(l_msb_rec.MAXIMUM_LOAD_WEIGHT,-999999))          <> NVL(l_msb_rec.MAXIMUM_LOAD_WEIGHT,-999999))
1032             OR (NVL(cur.MINIMUM_FILL_PERCENT,          NVL(l_msb_rec.MINIMUM_FILL_PERCENT,-999999))         <> NVL(l_msb_rec.MINIMUM_FILL_PERCENT,-999999))
1033             OR (NVL(cur.DIMENSION_UOM_CODE,            NVL(l_msb_rec.DIMENSION_UOM_CODE,'!'))               <> NVL(l_msb_rec.DIMENSION_UOM_CODE,'!'))
1034             OR (NVL(cur.UNIT_LENGTH,                   NVL(l_msb_rec.UNIT_LENGTH,-999999))                  <> NVL(l_msb_rec.UNIT_LENGTH,-999999))
1035             OR (NVL(cur.UNIT_WIDTH,                    NVL(l_msb_rec.UNIT_WIDTH,-999999))                   <> NVL(l_msb_rec.UNIT_WIDTH,-999999))
1036             OR (NVL(cur.UNIT_HEIGHT,                   NVL(l_msb_rec.UNIT_HEIGHT,-999999))                  <> NVL(l_msb_rec.UNIT_HEIGHT,-999999))
1037             OR (NVL(cur.COLLATERAL_FLAG,               NVL(l_msb_rec.COLLATERAL_FLAG,'!'))                  <> NVL(l_msb_rec.COLLATERAL_FLAG,'!'))
1038             OR (NVL(cur.EVENT_FLAG,                    NVL(l_msb_rec.EVENT_FLAG,'!'))                       <> NVL(l_msb_rec.EVENT_FLAG,'!'))
1039             OR (NVL(cur.EQUIPMENT_TYPE,                NVL(l_msb_rec.EQUIPMENT_TYPE,-999999))               <> NVL(l_msb_rec.EQUIPMENT_TYPE,-999999))
1040             OR (NVL(cur.ELECTRONIC_FLAG,               NVL(l_msb_rec.ELECTRONIC_FLAG,'!'))                  <> NVL(l_msb_rec.ELECTRONIC_FLAG,'!'))
1041             OR (NVL(cur.DOWNLOADABLE_FLAG,             NVL(l_msb_rec.DOWNLOADABLE_FLAG,'!'))                <> NVL(l_msb_rec.DOWNLOADABLE_FLAG,'!'))
1042             OR (NVL(cur.INDIVISIBLE_FLAG,              NVL(l_msb_rec.INDIVISIBLE_FLAG,'!'))                 <> NVL(l_msb_rec.INDIVISIBLE_FLAG,'!'))
1043             THEN
1044                IF l_attr_grps IS NULL THEN
1045                   l_attr_grps := TO_CHAR(get_attribute_group_id('PHYSICALATTRIBUTES'));
1046                ELSE
1047                   l_attr_grps := l_attr_grps ||','||TO_CHAR(get_attribute_group_id('PHYSICALATTRIBUTES'));
1048                END IF;
1049             END IF;
1050 
1051             --General Planning
1052             IF (NVL(cur.INVENTORY_PLANNING_CODE,       NVL(l_msb_rec.INVENTORY_PLANNING_CODE,-999999))      <> NVL(l_msb_rec.INVENTORY_PLANNING_CODE,-999999))
1053             OR (NVL(cur.PLANNER_CODE,                  NVL(l_msb_rec.PLANNER_CODE,'!'))                     <> NVL(l_msb_rec.PLANNER_CODE,'!'))
1054             OR (NVL(cur.PLANNING_MAKE_BUY_CODE,        NVL(l_msb_rec.PLANNING_MAKE_BUY_CODE,-999999))       <> NVL(l_msb_rec.PLANNING_MAKE_BUY_CODE,-999999))
1055             OR (NVL(cur.MIN_MINMAX_QUANTITY,           NVL(l_msb_rec.MIN_MINMAX_QUANTITY,-999999))          <> NVL(l_msb_rec.MIN_MINMAX_QUANTITY,-999999))
1056             OR (NVL(cur.MAX_MINMAX_QUANTITY,           NVL(l_msb_rec.MAX_MINMAX_QUANTITY,-999999))          <> NVL(l_msb_rec.MAX_MINMAX_QUANTITY,-999999))
1057             OR (NVL(cur.MINIMUM_ORDER_QUANTITY,        NVL(l_msb_rec.MINIMUM_ORDER_QUANTITY,-999999))       <> NVL(l_msb_rec.MINIMUM_ORDER_QUANTITY,-999999))
1058             OR (NVL(cur.MAXIMUM_ORDER_QUANTITY,        NVL(l_msb_rec.MAXIMUM_ORDER_QUANTITY,-999999))       <> NVL(l_msb_rec.MAXIMUM_ORDER_QUANTITY,-999999))
1059             OR (NVL(cur.ORDER_COST,                    NVL(l_msb_rec.ORDER_COST,-999999))                   <> NVL(l_msb_rec.ORDER_COST,-999999))
1060             OR (NVL(cur.CARRYING_COST,                 NVL(l_msb_rec.CARRYING_COST,-999999))                <> NVL(l_msb_rec.CARRYING_COST,-999999))
1061             OR (NVL(cur.VMI_MINIMUM_UNITS,             NVL(l_msb_rec.VMI_MINIMUM_UNITS,-999999))            <> NVL(l_msb_rec.VMI_MINIMUM_UNITS,-999999))
1062             OR (NVL(cur.VMI_MINIMUM_DAYS,              NVL(l_msb_rec.VMI_MINIMUM_DAYS,-999999))             <> NVL(l_msb_rec.VMI_MINIMUM_DAYS,-999999))
1063             OR (NVL(cur.VMI_MAXIMUM_UNITS,             NVL(l_msb_rec.VMI_MAXIMUM_UNITS,-999999))            <> NVL(l_msb_rec.VMI_MAXIMUM_UNITS,-999999))
1064             OR (NVL(cur.VMI_MAXIMUM_DAYS,              NVL(l_msb_rec.VMI_MAXIMUM_DAYS,-999999))             <> NVL(l_msb_rec.VMI_MAXIMUM_DAYS,-999999))
1065             OR (NVL(cur.VMI_FIXED_ORDER_QUANTITY,      NVL(l_msb_rec.VMI_FIXED_ORDER_QUANTITY,-999999))     <> NVL(l_msb_rec.VMI_FIXED_ORDER_QUANTITY,-999999))
1066             OR (NVL(cur.SO_AUTHORIZATION_FLAG,         NVL(l_msb_rec.SO_AUTHORIZATION_FLAG,-999999))        <> NVL(l_msb_rec.SO_AUTHORIZATION_FLAG,-999999))
1067             OR (NVL(cur.CONSIGNED_FLAG,                NVL(l_msb_rec.CONSIGNED_FLAG,-999999))               <> NVL(l_msb_rec.CONSIGNED_FLAG,-999999))
1068             OR (NVL(cur.ASN_AUTOEXPIRE_FLAG,           NVL(l_msb_rec.ASN_AUTOEXPIRE_FLAG,-999999))          <> NVL(l_msb_rec.ASN_AUTOEXPIRE_FLAG,-999999))
1072             OR (NVL(cur.SOURCE_ORGANIZATION_ID,        NVL(l_msb_rec.SOURCE_ORGANIZATION_ID,-999999))       <> NVL(l_msb_rec.SOURCE_ORGANIZATION_ID,-999999))
1069             OR (NVL(cur.VMI_FORECAST_TYPE,             NVL(l_msb_rec.VMI_FORECAST_TYPE,-999999))            <> NVL(l_msb_rec.VMI_FORECAST_TYPE,-999999))
1070             OR (NVL(cur.FORECAST_HORIZON,              NVL(l_msb_rec.FORECAST_HORIZON,-999999))             <> NVL(l_msb_rec.FORECAST_HORIZON,-999999))
1071             OR (NVL(cur.SOURCE_TYPE,                   NVL(l_msb_rec.SOURCE_TYPE,-999999))                  <> NVL(l_msb_rec.SOURCE_TYPE,-999999))
1073             OR (NVL(cur.SOURCE_SUBINVENTORY,           NVL(l_msb_rec.SOURCE_SUBINVENTORY,'!'))              <> NVL(l_msb_rec.SOURCE_SUBINVENTORY,'!'))
1074             OR (NVL(cur.MRP_SAFETY_STOCK_CODE,         NVL(l_msb_rec.MRP_SAFETY_STOCK_CODE,-999999))        <> NVL(l_msb_rec.MRP_SAFETY_STOCK_CODE,-999999))
1075             OR (NVL(cur.SAFETY_STOCK_BUCKET_DAYS,      NVL(l_msb_rec.SAFETY_STOCK_BUCKET_DAYS,-999999))     <> NVL(l_msb_rec.SAFETY_STOCK_BUCKET_DAYS,-999999))
1076             OR (NVL(cur.MRP_SAFETY_STOCK_PERCENT,      NVL(l_msb_rec.MRP_SAFETY_STOCK_PERCENT,-999999))     <> NVL(l_msb_rec.MRP_SAFETY_STOCK_PERCENT,-999999))
1077             OR (NVL(cur.FIXED_ORDER_QUANTITY,          NVL(l_msb_rec.FIXED_ORDER_QUANTITY,-999999))             <> NVL(l_msb_rec.FIXED_ORDER_QUANTITY,-999999))
1078             OR (NVL(cur.FIXED_LOT_MULTIPLIER,          NVL(l_msb_rec.FIXED_LOT_MULTIPLIER,-999999))         <> NVL(l_msb_rec.FIXED_LOT_MULTIPLIER,-999999))
1079             OR (NVL(cur.SUBCONTRACTING_COMPONENT,      NVL(l_msb_rec.SUBCONTRACTING_COMPONENT,-999999))     <> NVL(l_msb_rec.SUBCONTRACTING_COMPONENT,-999999))
1080             THEN
1081                IF l_attr_grps IS NULL THEN
1082                   l_attr_grps := TO_CHAR(get_attribute_group_id('GENERALPLANNING'));
1083                ELSE
1084                   l_attr_grps := l_attr_grps ||','||TO_CHAR(get_attribute_group_id('GENERALPLANNING'));
1085                END IF;
1086             END IF;
1087 
1088             --MPS/MRP Planning
1089             IF (NVL(cur.MRP_PLANNING_CODE,             NVL(l_msb_rec.MRP_PLANNING_CODE,-999999))            <> NVL(l_msb_rec.MRP_PLANNING_CODE,-999999))
1090             OR (NVL(cur.ATO_FORECAST_CONTROL,          NVL(l_msb_rec.ATO_FORECAST_CONTROL,-999999))         <> NVL(l_msb_rec.ATO_FORECAST_CONTROL,-999999))
1091             OR (NVL(cur.PLANNING_EXCEPTION_SET,        NVL(l_msb_rec.PLANNING_EXCEPTION_SET,'!'))           <> NVL(l_msb_rec.PLANNING_EXCEPTION_SET,'!'))
1092             OR (NVL(cur.END_ASSEMBLY_PEGGING_FLAG,     NVL(l_msb_rec.END_ASSEMBLY_PEGGING_FLAG,'!'))        <> NVL(l_msb_rec.END_ASSEMBLY_PEGGING_FLAG,'!'))
1093             OR (NVL(cur.PLANNED_INV_POINT_FLAG,        NVL(l_msb_rec.PLANNED_INV_POINT_FLAG,'!'))           <> NVL(l_msb_rec.PLANNED_INV_POINT_FLAG,'!'))
1094             OR (NVL(cur.CREATE_SUPPLY_FLAG,            NVL(l_msb_rec.CREATE_SUPPLY_FLAG,'!'))               <> NVL(l_msb_rec.CREATE_SUPPLY_FLAG,'!'))
1095             OR (NVL(cur.EXCLUDE_FROM_BUDGET_FLAG,      NVL(l_msb_rec.EXCLUDE_FROM_BUDGET_FLAG,-999999))     <> NVL(l_msb_rec.EXCLUDE_FROM_BUDGET_FLAG,-999999))
1096             OR (NVL(cur.ROUNDING_CONTROL_TYPE,         NVL(l_msb_rec.ROUNDING_CONTROL_TYPE,-999999))        <> NVL(l_msb_rec.ROUNDING_CONTROL_TYPE,-999999))
1097             OR (NVL(cur.SHRINKAGE_RATE,                NVL(l_msb_rec.SHRINKAGE_RATE,-999999))               <> NVL(l_msb_rec.SHRINKAGE_RATE,-999999))
1098             OR (NVL(cur.ACCEPTABLE_EARLY_DAYS,         NVL(l_msb_rec.ACCEPTABLE_EARLY_DAYS,-999999))        <> NVL(l_msb_rec.ACCEPTABLE_EARLY_DAYS,-999999))
1099             OR (NVL(cur.REPETITIVE_PLANNING_FLAG,      NVL(l_msb_rec.REPETITIVE_PLANNING_FLAG,'!'))         <> NVL(l_msb_rec.REPETITIVE_PLANNING_FLAG,'!'))
1100             OR (NVL(cur.OVERRUN_PERCENTAGE,            NVL(l_msb_rec.OVERRUN_PERCENTAGE,-999999))           <> NVL(l_msb_rec.OVERRUN_PERCENTAGE,-999999))
1101             OR (NVL(cur.ACCEPTABLE_RATE_DECREASE,      NVL(l_msb_rec.ACCEPTABLE_RATE_DECREASE,-999999))     <> NVL(l_msb_rec.ACCEPTABLE_RATE_DECREASE,-999999))
1102             OR (NVL(cur.ACCEPTABLE_RATE_INCREASE,      NVL(l_msb_rec.ACCEPTABLE_RATE_INCREASE,-999999))     <> NVL(l_msb_rec.ACCEPTABLE_RATE_INCREASE,-999999))
1103             OR (NVL(cur.MRP_CALCULATE_ATP_FLAG,        NVL(l_msb_rec.MRP_CALCULATE_ATP_FLAG,'!'))           <> NVL(l_msb_rec.MRP_CALCULATE_ATP_FLAG,'!'))
1104             OR (NVL(cur.AUTO_REDUCE_MPS,               NVL(l_msb_rec.AUTO_REDUCE_MPS,-999999))              <> NVL(l_msb_rec.AUTO_REDUCE_MPS,-999999))
1105             OR (NVL(cur.PLANNING_TIME_FENCE_CODE,      NVL(l_msb_rec.PLANNING_TIME_FENCE_CODE,-999999))     <> NVL(l_msb_rec.PLANNING_TIME_FENCE_CODE,-999999))
1106             OR (NVL(cur.PLANNING_TIME_FENCE_DAYS,      NVL(l_msb_rec.PLANNING_TIME_FENCE_DAYS,-999999))     <> NVL(l_msb_rec.PLANNING_TIME_FENCE_DAYS,-999999))
1107             OR (NVL(cur.DEMAND_TIME_FENCE_CODE,        NVL(l_msb_rec.DEMAND_TIME_FENCE_CODE,-999999))       <> NVL(l_msb_rec.DEMAND_TIME_FENCE_CODE,-999999))
1108             OR (NVL(cur.DEMAND_TIME_FENCE_DAYS,        NVL(l_msb_rec.DEMAND_TIME_FENCE_DAYS,-999999))       <> NVL(l_msb_rec.DEMAND_TIME_FENCE_DAYS,-999999))
1109             OR (NVL(cur.RELEASE_TIME_FENCE_CODE,       NVL(l_msb_rec.RELEASE_TIME_FENCE_CODE,-999999))      <> NVL(l_msb_rec.RELEASE_TIME_FENCE_CODE,-999999))
1110             OR (NVL(cur.RELEASE_TIME_FENCE_DAYS,       NVL(l_msb_rec.RELEASE_TIME_FENCE_DAYS,-999999))      <> NVL(l_msb_rec.RELEASE_TIME_FENCE_DAYS,-999999))
1111             OR (NVL(cur.SUBSTITUTION_WINDOW_CODE,      NVL(l_msb_rec.SUBSTITUTION_WINDOW_CODE,-999999))     <> NVL(l_msb_rec.SUBSTITUTION_WINDOW_CODE,-999999))
1112             OR (NVL(cur.SUBSTITUTION_WINDOW_DAYS,      NVL(l_msb_rec.SUBSTITUTION_WINDOW_DAYS,-999999))     <> NVL(l_msb_rec.SUBSTITUTION_WINDOW_DAYS,-999999))
1113             OR (NVL(cur.DAYS_TGT_INV_SUPPLY,           NVL(l_msb_rec.DAYS_TGT_INV_SUPPLY,-999999))          <> NVL(l_msb_rec.DAYS_TGT_INV_SUPPLY,-999999))
1114             OR (NVL(cur.DAYS_TGT_INV_WINDOW,           NVL(l_msb_rec.DAYS_TGT_INV_WINDOW,-999999))          <> NVL(l_msb_rec.DAYS_TGT_INV_WINDOW,-999999))
1115             OR (NVL(cur.DAYS_MAX_INV_SUPPLY,           NVL(l_msb_rec.DAYS_MAX_INV_SUPPLY,-999999))          <> NVL(l_msb_rec.DAYS_MAX_INV_SUPPLY,-999999))
1119             OR (NVL(cur.CONTINOUS_TRANSFER,            NVL(l_msb_rec.CONTINOUS_TRANSFER,-999999))           <> NVL(l_msb_rec.CONTINOUS_TRANSFER,-999999))
1116             OR (NVL(cur.DAYS_MAX_INV_WINDOW,           NVL(l_msb_rec.DAYS_MAX_INV_WINDOW,-999999))          <> NVL(l_msb_rec.DAYS_MAX_INV_WINDOW,-999999))
1117             OR (NVL(cur.CRITICAL_COMPONENT_FLAG,       NVL(l_msb_rec.CRITICAL_COMPONENT_FLAG,-999999))      <> NVL(l_msb_rec.CRITICAL_COMPONENT_FLAG,-999999))
1118             OR (NVL(cur.CONVERGENCE,                   NVL(l_msb_rec.CONVERGENCE,-999999))                  <> NVL(l_msb_rec.CONVERGENCE,-999999))
1120             OR (NVL(cur.DIVERGENCE,                    NVL(l_msb_rec.DIVERGENCE,-999999))                   <> NVL(l_msb_rec.DIVERGENCE,-999999))
1121             OR (NVL(cur.DRP_PLANNED_FLAG,              NVL(l_msb_rec.DRP_PLANNED_FLAG,-999999))             <> NVL(l_msb_rec.DRP_PLANNED_FLAG,-999999))
1122             OR (NVL(cur.REPAIR_LEADTIME,               NVL(l_msb_rec.REPAIR_LEADTIME,-999999))              <> NVL(l_msb_rec.REPAIR_LEADTIME,-999999))
1123             OR (NVL(cur.REPAIR_YIELD,                  NVL(l_msb_rec.REPAIR_YIELD,-999999))                 <> NVL(l_msb_rec.REPAIR_YIELD,-999999))
1124             OR (NVL(cur.PREPOSITION_POINT,             NVL(l_msb_rec.PREPOSITION_POINT,'!'))                <> NVL(l_msb_rec.PREPOSITION_POINT,'!'))
1125             OR (NVL(cur.REPAIR_PROGRAM,                NVL(l_msb_rec.REPAIR_PROGRAM,-999999))               <> NVL(l_msb_rec.REPAIR_PROGRAM,-999999))
1126             THEN
1127                IF l_attr_grps IS NULL THEN
1128                   l_attr_grps := TO_CHAR(get_attribute_group_id('MPSMRPPLANNING'));
1129                ELSE
1130                   l_attr_grps := l_attr_grps ||','||TO_CHAR(get_attribute_group_id('MPSMRPPLANNING'));
1131                END IF;
1132             END IF;
1133 
1134             --Lead Times
1135             IF (NVL(cur.PREPROCESSING_LEAD_TIME,       NVL(l_msb_rec.PREPROCESSING_LEAD_TIME,-999999))      <> NVL(l_msb_rec.PREPROCESSING_LEAD_TIME,-999999))
1136             OR (NVL(cur.FULL_LEAD_TIME,                NVL(l_msb_rec.FULL_LEAD_TIME,-999999))               <> NVL(l_msb_rec.FULL_LEAD_TIME,-999999))
1137             OR (NVL(cur.POSTPROCESSING_LEAD_TIME,      NVL(l_msb_rec.POSTPROCESSING_LEAD_TIME,-999999))     <> NVL(l_msb_rec.POSTPROCESSING_LEAD_TIME,-999999))
1138             OR (NVL(cur.FIXED_LEAD_TIME,               NVL(l_msb_rec.FIXED_LEAD_TIME,-999999))              <> NVL(l_msb_rec.FIXED_LEAD_TIME,-999999))
1139             OR (NVL(cur.VARIABLE_LEAD_TIME,            NVL(l_msb_rec.VARIABLE_LEAD_TIME,-999999))           <> NVL(l_msb_rec.VARIABLE_LEAD_TIME,-999999))
1140             OR (NVL(cur.CUM_MANUFACTURING_LEAD_TIME,   NVL(l_msb_rec.CUM_MANUFACTURING_LEAD_TIME,-999999))  <> NVL(l_msb_rec.CUM_MANUFACTURING_LEAD_TIME,-999999))
1141             OR (NVL(cur.CUMULATIVE_TOTAL_LEAD_TIME,    NVL(l_msb_rec.CUMULATIVE_TOTAL_LEAD_TIME,-999999))   <> NVL(l_msb_rec.CUMULATIVE_TOTAL_LEAD_TIME,-999999))
1142             OR (NVL(cur.LEAD_TIME_LOT_SIZE,            NVL(l_msb_rec.LEAD_TIME_LOT_SIZE,-999999))           <> NVL(l_msb_rec.LEAD_TIME_LOT_SIZE,-999999))
1143             THEN
1144                IF l_attr_grps IS NULL THEN
1145                   l_attr_grps := TO_CHAR(get_attribute_group_id('LEADTIMES'));
1146                ELSE
1147                   l_attr_grps := l_attr_grps ||','||TO_CHAR(get_attribute_group_id('LEADTIMES'));
1148                END IF;
1149             END IF;
1150 
1151             --Work In Progress
1152             IF (NVL(cur.BUILD_IN_WIP_FLAG,             NVL(l_msb_rec.BUILD_IN_WIP_FLAG,'!'))                <> NVL(l_msb_rec.BUILD_IN_WIP_FLAG,'!'))
1153             OR (NVL(cur.WIP_SUPPLY_TYPE,               NVL(l_msb_rec.WIP_SUPPLY_TYPE,-999999))              <> NVL(l_msb_rec.WIP_SUPPLY_TYPE,-999999))
1154             OR (NVL(cur.WIP_SUPPLY_SUBINVENTORY,       NVL(l_msb_rec.WIP_SUPPLY_SUBINVENTORY,'!'))          <> NVL(l_msb_rec.WIP_SUPPLY_SUBINVENTORY,'!'))
1155             OR (NVL(cur.WIP_SUPPLY_LOCATOR_ID,         NVL(l_msb_rec.WIP_SUPPLY_LOCATOR_ID,-999999))        <> NVL(l_msb_rec.WIP_SUPPLY_LOCATOR_ID,-999999))
1156             OR (NVL(cur.OVERCOMPLETION_TOLERANCE_TYPE, NVL(l_msb_rec.OVERCOMPLETION_TOLERANCE_TYPE,-999999))<> NVL(l_msb_rec.OVERCOMPLETION_TOLERANCE_TYPE,-999999))
1157             OR (NVL(cur.OVERCOMPLETION_TOLERANCE_VALUE,NVL(l_msb_rec.OVERCOMPLETION_TOLERANCE_VALUE,-999999))<>NVL(l_msb_rec.OVERCOMPLETION_TOLERANCE_VALUE,-999999))
1158             OR (NVL(cur.INVENTORY_CARRY_PENALTY,       NVL(l_msb_rec.INVENTORY_CARRY_PENALTY,-999999))      <> NVL(l_msb_rec.INVENTORY_CARRY_PENALTY,-999999))
1159             OR (NVL(cur.OPERATION_SLACK_PENALTY,       NVL(l_msb_rec.OPERATION_SLACK_PENALTY,-999999))      <> NVL(l_msb_rec.OPERATION_SLACK_PENALTY,-999999))
1160             THEN
1161                IF l_attr_grps IS NULL THEN
1162                   l_attr_grps := TO_CHAR(get_attribute_group_id('WORKINPROGRESS'));
1163                ELSE
1164                   l_attr_grps := l_attr_grps ||','||TO_CHAR(get_attribute_group_id('WORKINPROGRESS'));
1165                END IF;
1166             END IF;
1167 
1168             --Order Management
1169             IF (NVL(cur.CUSTOMER_ORDER_FLAG,           NVL(l_msb_rec.CUSTOMER_ORDER_FLAG,'!'))              <> NVL(l_msb_rec.CUSTOMER_ORDER_FLAG,'!'))
1170             OR (NVL(cur.CUSTOMER_ORDER_ENABLED_FLAG,   NVL(l_msb_rec.CUSTOMER_ORDER_ENABLED_FLAG,'!'))      <> NVL(l_msb_rec.CUSTOMER_ORDER_ENABLED_FLAG,'!'))
1171             OR (NVL(cur.INTERNAL_ORDER_FLAG,           NVL(l_msb_rec.INTERNAL_ORDER_FLAG,'!'))              <> NVL(l_msb_rec.INTERNAL_ORDER_FLAG,'!'))
1172             OR (NVL(cur.INTERNAL_ORDER_ENABLED_FLAG,   NVL(l_msb_rec.INTERNAL_ORDER_ENABLED_FLAG,'!'))      <> NVL(l_msb_rec.INTERNAL_ORDER_ENABLED_FLAG,'!'))
1173             OR (NVL(cur.SHIPPABLE_ITEM_FLAG,           NVL(l_msb_rec.SHIPPABLE_ITEM_FLAG,'!'))              <> NVL(l_msb_rec.SHIPPABLE_ITEM_FLAG,'!'))
1177             OR (NVL(cur.PICK_COMPONENTS_FLAG,          NVL(l_msb_rec.PICK_COMPONENTS_FLAG,'!'))             <> NVL(l_msb_rec.PICK_COMPONENTS_FLAG,'!'))
1174             OR (NVL(cur.SO_TRANSACTIONS_FLAG,          NVL(l_msb_rec.SO_TRANSACTIONS_FLAG,'!'))             <> NVL(l_msb_rec.SO_TRANSACTIONS_FLAG,'!'))
1175             OR (NVL(cur.DEFAULT_SHIPPING_ORG,          NVL(l_msb_rec.DEFAULT_SHIPPING_ORG,-999999))         <> NVL(l_msb_rec.DEFAULT_SHIPPING_ORG,-999999))
1176             OR (NVL(cur.DEFAULT_SO_SOURCE_TYPE,        NVL(l_msb_rec.DEFAULT_SO_SOURCE_TYPE,'!'))           <> NVL(l_msb_rec.DEFAULT_SO_SOURCE_TYPE,'!'))
1178             OR (NVL(cur.REPLENISH_TO_ORDER_FLAG,       NVL(l_msb_rec.REPLENISH_TO_ORDER_FLAG,'!'))          <> NVL(l_msb_rec.REPLENISH_TO_ORDER_FLAG,'!'))
1179             OR (NVL(cur.ATP_FLAG,                      NVL(l_msb_rec.ATP_FLAG,'!'))                         <> NVL(l_msb_rec.ATP_FLAG,'!'))
1180             OR (NVL(cur.ATP_COMPONENTS_FLAG,           NVL(l_msb_rec.ATP_COMPONENTS_FLAG,'!'))              <> NVL(l_msb_rec.ATP_COMPONENTS_FLAG,'!'))
1181             OR (NVL(cur.ATP_RULE_ID,                   NVL(l_msb_rec.ATP_RULE_ID,-999999))                  <> NVL(l_msb_rec.ATP_RULE_ID,-999999))
1182             OR (NVL(cur.SHIP_MODEL_COMPLETE_FLAG,      NVL(l_msb_rec.SHIP_MODEL_COMPLETE_FLAG,'!'))         <> NVL(l_msb_rec.SHIP_MODEL_COMPLETE_FLAG,'!'))
1183             OR (NVL(cur.RETURNABLE_FLAG,               NVL(l_msb_rec.RETURNABLE_FLAG,'!'))                  <> NVL(l_msb_rec.RETURNABLE_FLAG,'!'))
1184             OR (NVL(cur.RETURN_INSPECTION_REQUIREMENT, NVL(l_msb_rec.RETURN_INSPECTION_REQUIREMENT,-999999))<> NVL(l_msb_rec.RETURN_INSPECTION_REQUIREMENT,-999999))
1185             OR (NVL(cur.FINANCING_ALLOWED_FLAG,        NVL(l_msb_rec.FINANCING_ALLOWED_FLAG,'!'))           <> NVL(l_msb_rec.FINANCING_ALLOWED_FLAG,'!'))
1186             OR (NVL(cur.OVER_SHIPMENT_TOLERANCE,       NVL(l_msb_rec.OVER_SHIPMENT_TOLERANCE,-999999))      <> NVL(l_msb_rec.OVER_SHIPMENT_TOLERANCE,-999999))
1187             OR (NVL(cur.OVER_SHIPMENT_TOLERANCE,       NVL(l_msb_rec.OVER_SHIPMENT_TOLERANCE,-999999))      <> NVL(l_msb_rec.OVER_SHIPMENT_TOLERANCE,-999999))
1188             OR (NVL(cur.UNDER_SHIPMENT_TOLERANCE,      NVL(l_msb_rec.UNDER_SHIPMENT_TOLERANCE,-999999))     <> NVL(l_msb_rec.UNDER_SHIPMENT_TOLERANCE,-999999))
1189             OR (NVL(cur.OVER_RETURN_TOLERANCE,         NVL(l_msb_rec.OVER_RETURN_TOLERANCE,-999999))        <> NVL(l_msb_rec.OVER_RETURN_TOLERANCE,-999999))
1190             OR (NVL(cur.UNDER_RETURN_TOLERANCE,        NVL(l_msb_rec.UNDER_RETURN_TOLERANCE,-999999))       <> NVL(l_msb_rec.UNDER_RETURN_TOLERANCE,-999999))
1191             OR (NVL(cur.PICKING_RULE_ID,               NVL(l_msb_rec.PICKING_RULE_ID,-999999))              <> NVL(l_msb_rec.PICKING_RULE_ID,-999999))
1192             OR (NVL(cur.CHARGE_PERIODICITY_CODE,       NVL(l_msb_rec.CHARGE_PERIODICITY_CODE,'!'))          <> NVL(l_msb_rec.CHARGE_PERIODICITY_CODE,'!'))
1193             THEN
1194                IF l_attr_grps IS NULL THEN
1195                   l_attr_grps := TO_CHAR(get_attribute_group_id('ORDERMANAGEMENT'));
1196                ELSE
1197                   l_attr_grps := l_attr_grps ||','||TO_CHAR(get_attribute_group_id('ORDERMANAGEMENT'));
1198                END IF;
1199             END IF;
1200 
1201             --Service Attributes
1202             IF (NVL(cur.CONTRACT_ITEM_TYPE_CODE,       NVL(l_msb_rec.CONTRACT_ITEM_TYPE_CODE,'!'))          <> NVL(l_msb_rec.CONTRACT_ITEM_TYPE_CODE,'!'))
1203             OR (NVL(cur.COVERAGE_SCHEDULE_ID,          NVL(l_msb_rec.COVERAGE_SCHEDULE_ID,-999999))         <> NVL(l_msb_rec.COVERAGE_SCHEDULE_ID,-999999))
1204             OR (NVL(cur.SERVICE_DURATION_PERIOD_CODE,  NVL(l_msb_rec.SERVICE_DURATION_PERIOD_CODE,'!'))     <> NVL(l_msb_rec.SERVICE_DURATION_PERIOD_CODE,'!'))
1205             OR (NVL(cur.MATERIAL_BILLABLE_FLAG,        NVL(l_msb_rec.MATERIAL_BILLABLE_FLAG,'!'))           <> NVL(l_msb_rec.MATERIAL_BILLABLE_FLAG,'!'))
1206             OR (NVL(cur.SERV_REQ_ENABLED_CODE,         NVL(l_msb_rec.SERV_REQ_ENABLED_CODE,'!'))            <> NVL(l_msb_rec.SERV_REQ_ENABLED_CODE,'!'))
1207             OR (NVL(cur.COMMS_ACTIVATION_REQD_FLAG,    NVL(l_msb_rec.COMMS_ACTIVATION_REQD_FLAG,'!'))       <> NVL(l_msb_rec.COMMS_ACTIVATION_REQD_FLAG,'!'))
1208             OR (NVL(cur.SERVICEABLE_PRODUCT_FLAG,      NVL(l_msb_rec.SERVICEABLE_PRODUCT_FLAG,'!'))         <> NVL(l_msb_rec.SERVICEABLE_PRODUCT_FLAG,'!'))
1209             OR (NVL(cur.SERV_BILLING_ENABLED_FLAG,     NVL(l_msb_rec.SERV_BILLING_ENABLED_FLAG,'!'))        <> NVL(l_msb_rec.SERV_BILLING_ENABLED_FLAG,'!'))
1210             OR (NVL(cur.DEFECT_TRACKING_ON_FLAG,       NVL(l_msb_rec.DEFECT_TRACKING_ON_FLAG,'!'))          <> NVL(l_msb_rec.DEFECT_TRACKING_ON_FLAG,'!'))
1211             OR (NVL(cur.RECOVERED_PART_DISP_CODE,      NVL(l_msb_rec.RECOVERED_PART_DISP_CODE,'!'))         <> NVL(l_msb_rec.RECOVERED_PART_DISP_CODE,'!'))
1212             OR (NVL(cur.COMMS_NL_TRACKABLE_FLAG,       NVL(l_msb_rec.COMMS_NL_TRACKABLE_FLAG,'!'))          <> NVL(l_msb_rec.COMMS_NL_TRACKABLE_FLAG,'!'))
1213             OR (NVL(cur.SERVICE_STARTING_DELAY,        NVL(l_msb_rec.SERVICE_STARTING_DELAY,-999999))       <> NVL(l_msb_rec.SERVICE_STARTING_DELAY,-999999))
1214             OR (NVL(cur.ASSET_CREATION_CODE,           NVL(l_msb_rec.ASSET_CREATION_CODE,'!'))              <> NVL(l_msb_rec.ASSET_CREATION_CODE,'!'))
1215             THEN
1216                IF l_attr_grps IS NULL THEN
1217                   l_attr_grps := TO_CHAR(get_attribute_group_id('SERVICE'));
1218                ELSE
1219                   l_attr_grps := l_attr_grps ||','||TO_CHAR(get_attribute_group_id('SERVICE'));
1220                END IF;
1221             END IF;
1222 
1223             --Web Option
1224             IF (NVL(cur.WEB_STATUS,                    NVL(l_msb_rec.WEB_STATUS,'!'))                       <> NVL(l_msb_rec.WEB_STATUS,'!'))
1225             OR (NVL(cur.ORDERABLE_ON_WEB_FLAG,         NVL(l_msb_rec.ORDERABLE_ON_WEB_FLAG,'!'))            <> NVL(l_msb_rec.ORDERABLE_ON_WEB_FLAG,'!'))
1229                IF l_attr_grps IS NULL THEN
1226             OR (NVL(cur.BACK_ORDERABLE_FLAG,           NVL(l_msb_rec.BACK_ORDERABLE_FLAG,'!'))              <> NVL(l_msb_rec.BACK_ORDERABLE_FLAG,'!'))
1227             OR (NVL(cur.MINIMUM_LICENSE_QUANTITY,      NVL(l_msb_rec.MINIMUM_LICENSE_QUANTITY,-999999))     <> NVL(l_msb_rec.MINIMUM_LICENSE_QUANTITY,-999999))
1228             THEN
1230                   l_attr_grps := TO_CHAR(get_attribute_group_id('WEBOPTION'));
1231                ELSE
1232                   l_attr_grps := l_attr_grps ||','||TO_CHAR(get_attribute_group_id('WEBOPTION'));
1233                END IF;
1234             END IF;
1235 
1236             IF l_attr_grps IS NOT NULL THEN
1237                IF l_inv_debug_level IN(101, 102) THEN
1238                   INVPUTLI.info('INVNIRIS.change_policy_check: Attr Grps Changed:' || l_attr_grps);
1239                END IF;
1240 
1241                IF cur.current_phase_id is NOT NULL THEN
1242                   --Bug 5367962 Find if any of the AG as ChanhePolicy of 'NOT ALLOWED'
1243                   EXECUTE IMMEDIATE
1244                     'BEGIN                                                      '||
1245                     '    ENG_CHANGE_POLICY_PKG.GET_OPATTR_CHANGEPOLICY(         '||
1246                     '       P_API_VERSION         => 1.0                        '||
1247                     '      ,X_RETURN_STATUS       => :l_return_status           '||
1248                     '      ,P_CATALOG_CATEGORY_ID => :cur.item_catalog_group_id '||
1249                     '      ,P_ITEM_LIFECYCLE_ID   => :cur.lifecycle_id          '||
1250                     '      ,P_LIFECYCLE_PHASE_ID  => :cur.current_phase_id      '||
1251                     '      ,P_ATTRIBUTE_GRP_IDS   => :l_attr_grps               '||
1252                     '      ,X_POLICY_VALUE        => :l_policy_value);          '||
1253                     ' EXCEPTION                                                 '||
1254                     '    WHEN OTHERS THEN                                       '||
1255                     '      NULL;                                                '||
1256                     ' END;                                                      '
1257                   USING OUT l_return_status,
1258                         IN  cur.item_catalog_group_id,
1259                         IN  cur.lifecycle_id,
1260                         IN  cur.current_phase_id,
1261                         IN  l_attr_grps,
1262                         OUT l_policy_value;
1263 
1264 		  --If the above call returns NULL or ALLOWED CO is not required except the case
1265 		  --when add to CO is true
1266                   --If NOT_ALLOWED is returned find which AG has it
1267                   IF l_policy_value = 'NOT_ALLOWED' THEN
1268                      WHILE ((l_delim_pos > 0) AND (l_ch_policy_found = FALSE)) LOOP
1269                         l_delim_pos := instr(l_attr_grps,',');
1270                         IF(l_delim_pos = 0 AND l_attr_grps is not null) then
1271                            l_attr_group_id := l_attr_grps;
1272                         ELSE
1273                            l_attr_group_id := substr(l_attr_grps,1,l_delim_pos-1);
1274                            l_attr_grps := substr(l_attr_grps,l_delim_pos+1);
1275                         END IF;
1276                         EXECUTE IMMEDIATE
1277                           'BEGIN                                                      '||
1278                           '    ENG_CHANGE_POLICY_PKG.GET_OPATTR_CHANGEPOLICY(         '||
1279                           '       P_API_VERSION         => 1.0                        '||
1280                           '      ,X_RETURN_STATUS       => :l_return_status           '||
1281                           '      ,P_CATALOG_CATEGORY_ID => :cur.item_catalog_group_id '||
1282                           '      ,P_ITEM_LIFECYCLE_ID   => :cur.lifecycle_id          '||
1283                           '      ,P_LIFECYCLE_PHASE_ID  => :cur.current_phase_id      '||
1284                           '      ,P_ATTRIBUTE_GRP_IDS   => :l_attr_group_id           '||
1285                           '      ,X_POLICY_VALUE        => :l_policy_value);          '||
1286                           ' EXCEPTION                                                 '||
1287                           '    WHEN OTHERS THEN                                       '||
1288                           '      NULL;                                                '||
1289                           ' END;                                                      '
1290                         USING OUT l_return_status,
1291                               IN  cur.item_catalog_group_id,
1292                               IN  cur.lifecycle_id,
1293                               IN  cur.current_phase_id,
1294                               IN  l_attr_group_id,
1295                               OUT l_policy_value;
1296 
1297                         IF l_policy_value = 'NOT_ALLOWED' THEN
1298                            l_ch_policy_found := TRUE;
1299                         END IF;
1300                      END LOOP;
1301 		  END IF; --l_policy_value = NOT ALLOWED
1302                ELSE    --current_phase_id is NULL
1303                      l_policy_value := 'CHANGE_ORDER_REQUIRED';
1304 	       END IF; --cur.current_phase_id is not NULL
1305 
1306                IF l_policy_value = 'NOT_ALLOWED' THEN
1307                   UPDATE mtl_system_items_interface
1308                   SET    process_flag = 3
1309                   WHERE  rowid        = cur.rowid;
1310 
1311                   SELECT ATTR_GROUP_DISP_NAME INTO l_attr_grp_name
1312 		  FROM EGO_ATTR_GROUPS_V
1313 		  WHERE ATTR_GROUP_ID = l_attr_group_id;
1314 
1315                   FND_MESSAGE.SET_NAME('INV','INV_IOI_CHANGE_NOT_ALLOWED');
1319                                 cur.organization_id,
1316 		  FND_MESSAGE.SET_TOKEN('ATTR_GROUP_NAME',l_attr_grp_name);
1317 		  l_msg_text := FND_MESSAGE.GET;
1318                   l_error_logged := INVPUOPI.mtl_log_interface_err(
1320                                 User_Id,
1321                                 Login_Id,
1322                                 Prog_AppId,
1323                                 Prog_Id,
1324                                 Request_id,
1325                                 cur.transaction_id,
1326                                 l_msg_text,
1327                                 'APPROVAL_STATUS',
1328                                 'MTL_SYTEM_ITEMS_INTERFACE',
1329                                 'INV_IOI_ERR',
1330                                 l_Err_Text);
1331                   IF l_error_logged < 0 THEN
1332                      Raise LOGGING_ERR;
1333                   END IF;
1334                ELSIF l_policy_value = 'CHANGE_ORDER_REQUIRED' OR
1335 	             (NVL(l_import_co_option,'N') = 'Y' AND l_structure_type_id IS NOT NULL)
1336 	          THEN
1337                   --4723028 If called from CO, dont move to 5.
1338                   IF INSTR(l_process_control,'ENG_CALL:Y') = 0 THEN
1339                      IF l_inv_debug_level IN(101, 102) THEN
1340                         INVPUTLI.info('INVNIRIS.change_policy_check: Moving to 5 for CO');
1341                      END IF;
1342 
1343                      --4696529: Insert row into interface table to propogate changes to production.
1344                      IF l_msb_rec.inventory_item_status_code <> NVL(cur.inventory_item_status_code,l_msb_rec.inventory_item_status_code)
1345                         OR l_msb_rec.description <> NVL(cur.description,l_msb_rec.description)
1346                      THEN
1347                          INSERT INTO mtl_system_items_interface(
1348                             organization_id
1349                            ,inventory_item_id
1350                            ,process_flag
1351                            ,set_process_id
1352                            ,transaction_type
1353                            ,transaction_id
1354                            ,inventory_item_status_code
1355                            ,allowed_units_lookup_code
1356                            ,item_type
1357                            ,description)
1358                          VALUES(
1359                             cur.organization_id
1360                            ,cur.inventory_item_id
1361                            ,1
1362                            ,cur.set_process_id
1363                            ,'UPDATE'
1364                            ,mtl_system_items_interface_s.nextval
1365                            ,cur.inventory_item_status_code   --Bug 5383744
1366                            ,cur.allowed_units_lookup_code
1367                            ,cur.item_type
1368                            ,NVL(cur.description,l_msb_rec.description));
1369                      END IF;
1370 
1371                      UPDATE mtl_system_items_interface
1372                      SET    process_flag = 5,
1373 		            --bug 5383744
1374 		            inventory_item_status_code = NVL(cur.inventory_item_status_code,l_msb_rec.inventory_item_status_code)
1375                      WHERE  rowid        = cur.rowid;
1376 
1377                   END IF; --ENG call
1378                END IF;  --l_policy_value
1379             END IF; --l_attr_grps IS NOT NULL
1380 
1381          END IF; -- NVL(l_msb_rec.approval_status,'A') ='A'
1382       END LOOP;
1383 
1384    /*-- Bug 5216971 : Added the and condition on structure_type_id. Rows should not be
1385        marked to 5 if they are coming from structure import and have no changes on item
1386        specified. For rows which have changes to attributes will be set to 5
1387        in the above for loop. */
1388       -- 6157001 : Added the ENG_CALL check
1389       IF NVL(l_import_co_option,'N') = 'Y'
1390          AND l_structure_type_id IS NULL
1391 	 AND INSTR(l_process_control,'ENG_CALL:Y') = 0
1392       THEN
1393 
1394          --Start: 5383744: Donot move 5 for no attrib values
1395          FOR cur IN c_check_attributes_policy LOOP
1396 
1397             SELECT * INTO  l_msb_rec
1398             FROM   mtl_system_items
1399             WHERE inventory_item_id = cur.inventory_item_id
1400             AND   organization_id   = cur.organization_id;
1401 
1402             --Inventory Attribute group
1403             IF cur.AUTO_LOT_ALPHA_PREFIX IS NOT NULL
1404             OR cur.AUTO_SERIAL_ALPHA_PREFIX IS NOT NULL
1405             OR cur.CYCLE_COUNT_ENABLED_FLAG IS NOT NULL
1406             OR cur.INVENTORY_ITEM_FLAG IS NOT NULL
1407             OR cur.LOCATION_CONTROL_CODE IS NOT NULL
1408             OR cur.MTL_TRANSACTIONS_ENABLED_FLAG IS NOT NULL
1409             OR cur.NEGATIVE_MEASUREMENT_ERROR IS NOT NULL
1410             OR cur.POSITIVE_MEASUREMENT_ERROR IS NOT NULL
1411             OR cur.RESERVABLE_TYPE IS NOT NULL
1412             OR cur.RESTRICT_LOCATORS_CODE IS NOT NULL
1413             OR cur.RESTRICT_SUBINVENTORIES_CODE IS NOT NULL
1414             OR cur.REVISION_QTY_CONTROL_CODE IS NOT NULL
1415             OR cur.SERIAL_NUMBER_CONTROL_CODE IS NOT NULL
1416             OR cur.SHELF_LIFE_CODE IS NOT NULL
1417             OR cur.SHELF_LIFE_DAYS IS NOT NULL
1418             OR cur.START_AUTO_LOT_NUMBER IS NOT NULL
1419             OR cur.START_AUTO_SERIAL_NUMBER IS NOT NULL
1420             OR cur.STOCK_ENABLED_FLAG IS NOT NULL
1421             OR cur.LOT_CONTROL_CODE IS NOT NULL
1422             OR cur.CHECK_SHORTAGES_FLAG IS NOT NULL
1423             OR cur.LOT_STATUS_ENABLED IS NOT NULL
1424             OR cur.DEFAULT_LOT_STATUS_ID IS NOT NULL
1428             OR cur.LOT_MERGE_ENABLED IS NOT NULL
1425             OR cur.SERIAL_STATUS_ENABLED IS NOT NULL
1426             OR cur.DEFAULT_SERIAL_STATUS_ID IS NOT NULL
1427             OR cur.LOT_SPLIT_ENABLED IS NOT NULL
1429             OR cur.BULK_PICKED_FLAG IS NOT NULL
1430             OR cur.LOT_TRANSLATE_ENABLED IS NOT NULL
1431             OR cur.LOT_SUBSTITUTION_ENABLED IS NOT NULL
1432             OR cur.LOT_DIVISIBLE_FLAG IS NOT NULL
1433             OR cur.GRADE_CONTROL_FLAG IS NOT NULL
1434             OR cur.DEFAULT_GRADE IS NOT NULL
1435             OR cur.CHILD_LOT_FLAG IS NOT NULL
1436             OR cur.PARENT_CHILD_GENERATION_FLAG IS NOT NULL
1437             OR cur.CHILD_LOT_PREFIX IS NOT NULL
1438             OR cur.CHILD_LOT_STARTING_NUMBER IS NOT NULL
1439             OR cur.CHILD_LOT_VALIDATION_FLAG IS NOT NULL
1440             OR cur.RETEST_INTERVAL IS NOT NULL
1441             OR cur.EXPIRATION_ACTION_INTERVAL IS NOT NULL
1442             OR cur.EXPIRATION_ACTION_CODE IS NOT NULL
1443             OR cur.MATURITY_DAYS IS NOT NULL
1444             OR cur.HOLD_DAYS IS NOT NULL
1445             OR cur.COPY_LOT_ATTRIBUTE_FLAG IS NOT NULL
1446 
1447 
1448             --BOM Attribute Group
1449             OR cur.BASE_ITEM_ID IS NOT NULL
1450             OR cur.BOM_ENABLED_FLAG IS NOT NULL
1451             OR cur.BOM_ITEM_TYPE IS NOT NULL
1452             OR cur.ENG_ITEM_FLAG IS NOT NULL
1453             OR cur.EFFECTIVITY_CONTROL IS NOT NULL
1454             OR cur.CONFIG_MODEL_TYPE IS NOT NULL
1455             OR cur.AUTO_CREATED_CONFIG_FLAG IS NOT NULL
1456             OR cur.CONFIG_ORGS IS NOT NULL
1457             OR cur.CONFIG_MATCH IS NOT NULL
1458 
1459             --Asset Management Group
1460             OR cur.EAM_ITEM_TYPE IS NOT NULL
1461             OR cur.EAM_ACTIVITY_TYPE_CODE IS NOT NULL
1462             OR cur.EAM_ACTIVITY_CAUSE_CODE IS NOT NULL
1463             OR cur.EAM_ACT_SHUTDOWN_STATUS IS NOT NULL
1464             OR cur.EAM_ACT_NOTIFICATION_FLAG IS NOT NULL
1465             OR cur.EAM_ACTIVITY_SOURCE_CODE IS NOT NULL
1466 
1467             --Costing Attribute Group
1468             OR cur.COSTING_ENABLED_FLAG IS NOT NULL
1469             OR cur.COST_OF_SALES_ACCOUNT IS NOT NULL
1470             OR cur.DEFAULT_INCLUDE_IN_ROLLUP_FLAG IS NOT NULL
1471             OR cur.STD_LOT_SIZE IS NOT NULL
1472             OR cur.INVENTORY_ASSET_FLAG IS NOT NULL
1473 
1474             --Purchasing Attribute Group
1475             OR cur.ALLOW_ITEM_DESC_UPDATE_FLAG IS NOT NULL
1476             OR cur.ASSET_CATEGORY_ID IS NOT NULL
1477             OR cur.BUYER_ID IS NOT NULL
1478             OR cur.ENCUMBRANCE_ACCOUNT IS NOT NULL
1479             OR cur.EXPENSE_ACCOUNT IS NOT NULL
1480             OR cur.HAZARD_CLASS_ID IS NOT NULL
1481             OR cur.LIST_PRICE_PER_UNIT IS NOT NULL
1482             OR cur.MARKET_PRICE IS NOT NULL
1483             OR cur.MUST_USE_APPROVED_VENDOR_FLAG IS NOT NULL
1484             OR cur.OUTSIDE_OPERATION_UOM_TYPE IS NOT NULL
1485             OR cur.PRICE_TOLERANCE_PERCENT IS NOT NULL
1486             OR cur.PURCHASING_ITEM_FLAG IS NOT NULL
1487             OR cur.RFQ_REQUIRED_FLAG IS NOT NULL
1488             OR cur.ROUNDING_FACTOR IS NOT NULL
1489             OR cur.TAXABLE_FLAG IS NOT NULL
1490             OR cur.UNIT_OF_ISSUE IS NOT NULL
1491             OR cur.UN_NUMBER_ID IS NOT NULL
1492             OR cur.INSPECTION_REQUIRED_FLAG IS NOT NULL
1493             OR cur.INVOICE_CLOSE_TOLERANCE IS NOT NULL
1494             OR cur.RECEIPT_REQUIRED_FLAG IS NOT NULL
1495             OR cur.RECEIVE_CLOSE_TOLERANCE IS NOT NULL
1496             OR cur.OUTSIDE_OPERATION_FLAG IS NOT NULL
1497             OR cur.PURCHASING_TAX_CODE IS NOT NULL
1498             OR cur.OUTSOURCED_ASSEMBLY IS NOT NULL
1499             OR cur.PURCHASING_ENABLED_FLAG IS NOT NULL
1500 
1501             --Receiving Attribute Group
1502             OR cur.ALLOW_EXPRESS_DELIVERY_FLAG IS NOT NULL
1503             OR cur.ALLOW_SUBSTITUTE_RECEIPTS_FLAG IS NOT NULL
1504             OR cur.ALLOW_UNORDERED_RECEIPTS_FLAG IS NOT NULL
1505             OR cur.DAYS_EARLY_RECEIPT_ALLOWED IS NOT NULL
1506             OR cur.ENFORCE_SHIP_TO_LOCATION_CODE IS NOT NULL
1507             OR cur.QTY_RCV_TOLERANCE IS NOT NULL
1508             OR cur.RECEIPT_DAYS_EXCEPTION_CODE IS NOT NULL
1509             OR cur.RECEIVING_ROUTING_ID IS NOT NULL
1510             OR cur.DAYS_LATE_RECEIPT_ALLOWED IS NOT NULL
1511             OR cur.QTY_RCV_EXCEPTION_CODE IS NOT NULL
1512 
1513             --Process Manufacturing Attribute Group
1514             OR cur.RECIPE_ENABLED_FLAG IS NOT NULL
1515             OR cur.CAS_NUMBER IS NOT NULL
1516             OR cur.HAZARDOUS_MATERIAL_FLAG IS NOT NULL
1517             OR cur.PROCESS_YIELD_LOCATOR_ID IS NOT NULL
1518             OR cur.PROCESS_QUALITY_ENABLED_FLAG IS NOT NULL
1519             OR cur.PROCESS_SUPPLY_LOCATOR_ID IS NOT NULL
1520             OR cur.PROCESS_EXECUTION_ENABLED_FLAG IS NOT NULL
1521             OR cur.PROCESS_COSTING_ENABLED_FLAG IS NOT NULL
1522             OR cur.PROCESS_SUPPLY_SUBINVENTORY IS NOT NULL
1523             OR cur.PROCESS_YIELD_SUBINVENTORY IS NOT NULL
1524 
1525             --Physical Attributes
1526             OR cur.UNIT_WEIGHT IS NOT NULL
1527             OR cur.VOLUME_UOM_CODE IS NOT NULL
1528             OR cur.WEIGHT_UOM_CODE IS NOT NULL
1529             OR cur.COLLATERAL_FLAG IS NOT NULL
1530             OR cur.VEHICLE_ITEM_FLAG IS NOT NULL
1531             OR cur.MAXIMUM_LOAD_WEIGHT IS NOT NULL
1532             OR cur.MINIMUM_FILL_PERCENT IS NOT NULL
1533             OR cur.UNIT_VOLUME IS NOT NULL
1534             OR cur.CONTAINER_ITEM_FLAG IS NOT NULL
1538             OR cur.EVENT_FLAG IS NOT NULL
1535             OR cur.INTERNAL_VOLUME IS NOT NULL
1536             OR cur.CONTAINER_TYPE_CODE IS NOT NULL
1537             OR cur.EQUIPMENT_TYPE IS NOT NULL
1539             OR cur.ELECTRONIC_FLAG IS NOT NULL
1540             OR cur.DOWNLOADABLE_FLAG IS NOT NULL
1541             OR cur.INDIVISIBLE_FLAG IS NOT NULL
1542             OR cur.DIMENSION_UOM_CODE IS NOT NULL
1543             OR cur.UNIT_LENGTH IS NOT NULL
1544             OR cur.UNIT_WIDTH IS NOT NULL
1545             OR cur.UNIT_HEIGHT IS NOT NULL
1546 
1547             --General Planning
1548             OR cur.FIXED_DAYS_SUPPLY IS NOT NULL
1549             OR cur.FIXED_LOT_MULTIPLIER IS NOT NULL
1550             OR cur.FIXED_ORDER_QUANTITY IS NOT NULL
1551             OR cur.INVENTORY_PLANNING_CODE IS NOT NULL
1552             OR cur.MAXIMUM_ORDER_QUANTITY IS NOT NULL
1553             OR cur.MAX_MINMAX_QUANTITY IS NOT NULL
1554             OR cur.MINIMUM_ORDER_QUANTITY IS NOT NULL
1555             OR cur.MIN_MINMAX_QUANTITY IS NOT NULL
1556             OR cur.MRP_SAFETY_STOCK_PERCENT IS NOT NULL
1557             OR cur.ORDER_COST IS NOT NULL
1558             OR cur.PLANNER_CODE IS NOT NULL
1559             OR cur.SAFETY_STOCK_BUCKET_DAYS IS NOT NULL
1560             OR cur.SOURCE_SUBINVENTORY IS NOT NULL
1561             OR cur.SOURCE_TYPE IS NOT NULL
1562             OR cur.CARRYING_COST IS NOT NULL
1563             OR cur.MRP_SAFETY_STOCK_CODE IS NOT NULL
1564             OR cur.SOURCE_ORGANIZATION_ID IS NOT NULL
1565             OR cur.PLANNING_MAKE_BUY_CODE IS NOT NULL
1566             OR cur.VMI_MINIMUM_UNITS IS NOT NULL
1567             OR cur.VMI_MINIMUM_DAYS IS NOT NULL
1568             OR cur.VMI_MAXIMUM_UNITS IS NOT NULL
1569             OR cur.VMI_MAXIMUM_DAYS IS NOT NULL
1570             OR cur.VMI_FIXED_ORDER_QUANTITY IS NOT NULL
1571             OR cur.SO_AUTHORIZATION_FLAG IS NOT NULL
1572             OR cur.CONSIGNED_FLAG IS NOT NULL
1573             OR cur.VMI_FORECAST_TYPE IS NOT NULL
1574             OR cur.FORECAST_HORIZON IS NOT NULL
1575             OR cur.ASN_AUTOEXPIRE_FLAG IS NOT NULL
1576             OR cur.SUBCONTRACTING_COMPONENT IS NOT NULL
1577 
1578             --MPS/MRP Planning
1579             OR cur.ACCEPTABLE_EARLY_DAYS IS NOT NULL
1580             OR cur.ACCEPTABLE_RATE_DECREASE IS NOT NULL
1581             OR cur.ACCEPTABLE_RATE_INCREASE IS NOT NULL
1582             OR cur.AUTO_REDUCE_MPS IS NOT NULL
1583             OR cur.DEMAND_TIME_FENCE_CODE IS NOT NULL
1584             OR cur.DEMAND_TIME_FENCE_DAYS IS NOT NULL
1585             OR cur.MRP_CALCULATE_ATP_FLAG IS NOT NULL
1586             OR cur.MRP_PLANNING_CODE IS NOT NULL
1587             OR cur.OVERRUN_PERCENTAGE IS NOT NULL
1588             OR cur.PLANNING_EXCEPTION_SET IS NOT NULL
1589             OR cur.PLANNING_TIME_FENCE_CODE IS NOT NULL
1590             OR cur.PLANNING_TIME_FENCE_DAYS IS NOT NULL
1591             OR cur.REPETITIVE_PLANNING_FLAG IS NOT NULL
1592             OR cur.ROUNDING_CONTROL_TYPE IS NOT NULL
1593             OR cur.SHRINKAGE_RATE IS NOT NULL
1594             OR cur.ATO_FORECAST_CONTROL IS NOT NULL
1595             OR cur.END_ASSEMBLY_PEGGING_FLAG IS NOT NULL
1596             OR cur.RELEASE_TIME_FENCE_CODE IS NOT NULL
1597             OR cur.RELEASE_TIME_FENCE_DAYS IS NOT NULL
1598             OR cur.PLANNED_INV_POINT_FLAG IS NOT NULL
1599             OR cur.CREATE_SUPPLY_FLAG IS NOT NULL
1600             OR cur.SUBSTITUTION_WINDOW_CODE IS NOT NULL
1601             OR cur.SUBSTITUTION_WINDOW_DAYS IS NOT NULL
1602             OR cur.CRITICAL_COMPONENT_FLAG IS NOT NULL
1603             OR cur.EXCLUDE_FROM_BUDGET_FLAG IS NOT NULL
1604             OR cur.DRP_PLANNED_FLAG IS NOT NULL
1605             OR cur.DAYS_MAX_INV_SUPPLY IS NOT NULL
1606             OR cur.DAYS_MAX_INV_WINDOW IS NOT NULL
1607             OR cur.DAYS_TGT_INV_SUPPLY IS NOT NULL
1608             OR cur.DAYS_TGT_INV_WINDOW IS NOT NULL
1609             OR cur.CONTINOUS_TRANSFER IS NOT NULL
1610             OR cur.CONVERGENCE IS NOT NULL
1611             OR cur.DIVERGENCE IS NOT NULL
1612             OR cur.REPAIR_PROGRAM IS NOT NULL
1613             OR cur.REPAIR_LEADTIME IS NOT NULL
1614             OR cur.REPAIR_YIELD IS NOT NULL
1615             OR cur.PREPOSITION_POINT IS NOT NULL
1616 
1617             --Lead Times
1618             OR cur.CUM_MANUFACTURING_LEAD_TIME IS NOT NULL
1619             OR cur.FIXED_LEAD_TIME IS NOT NULL
1620             OR cur.VARIABLE_LEAD_TIME IS NOT NULL
1621             OR cur.FULL_LEAD_TIME IS NOT NULL
1622             OR cur.POSTPROCESSING_LEAD_TIME IS NOT NULL
1623             OR cur.PREPROCESSING_LEAD_TIME IS NOT NULL
1624             OR cur.LEAD_TIME_LOT_SIZE IS NOT NULL
1625             OR cur.CUMULATIVE_TOTAL_LEAD_TIME IS NOT NULL
1626 
1627             --Work In Progress
1628             OR cur.WIP_SUPPLY_TYPE IS NOT NULL
1629             OR cur.OVERCOMPLETION_TOLERANCE_TYPE IS NOT NULL
1630             OR cur.INVENTORY_CARRY_PENALTY IS NOT NULL
1631             OR cur.OPERATION_SLACK_PENALTY IS NOT NULL
1632             OR cur.OVERCOMPLETION_TOLERANCE_VALUE IS NOT NULL
1633             OR cur.WIP_SUPPLY_SUBINVENTORY IS NOT NULL
1634             OR cur.WIP_SUPPLY_LOCATOR_ID IS NOT NULL
1635             OR cur.BUILD_IN_WIP_FLAG IS NOT NULL
1636 
1637             --Order Management
1638             OR cur.ATP_COMPONENTS_FLAG IS NOT NULL
1639             OR cur.ATP_FLAG IS NOT NULL
1640             OR cur.ATP_RULE_ID IS NOT NULL
1641             OR cur.CUSTOMER_ORDER_ENABLED_FLAG IS NOT NULL
1642             OR cur.CUSTOMER_ORDER_FLAG IS NOT NULL
1643             OR cur.DEFAULT_SHIPPING_ORG IS NOT NULL
1647             OR cur.PICK_COMPONENTS_FLAG IS NOT NULL
1644             OR cur.INTERNAL_ORDER_ENABLED_FLAG IS NOT NULL
1645             OR cur.INTERNAL_ORDER_FLAG IS NOT NULL
1646             OR cur.PICKING_RULE_ID IS NOT NULL
1648             OR cur.RETURNABLE_FLAG IS NOT NULL
1649             OR cur.RETURN_INSPECTION_REQUIREMENT IS NOT NULL
1650             OR cur.SHIPPABLE_ITEM_FLAG IS NOT NULL
1651             OR cur.SHIP_MODEL_COMPLETE_FLAG IS NOT NULL
1652             OR cur.SO_TRANSACTIONS_FLAG IS NOT NULL
1653             OR cur.REPLENISH_TO_ORDER_FLAG IS NOT NULL
1654             OR cur.OVER_SHIPMENT_TOLERANCE IS NOT NULL
1655             OR cur.UNDER_SHIPMENT_TOLERANCE IS NOT NULL
1656             OR cur.OVER_RETURN_TOLERANCE IS NOT NULL
1657             OR cur.UNDER_RETURN_TOLERANCE IS NOT NULL
1658             OR cur.VOL_DISCOUNT_EXEMPT_FLAG IS NOT NULL
1659             OR cur.COUPON_EXEMPT_FLAG IS NOT NULL
1660             OR cur.FINANCING_ALLOWED_FLAG IS NOT NULL
1661             OR cur.DEFAULT_SO_SOURCE_TYPE IS NOT NULL
1662             OR cur.CHARGE_PERIODICITY_CODE IS NOT NULL
1663 
1664             --Service Attributes
1665             OR cur.COVERAGE_SCHEDULE_ID IS NOT NULL
1666             OR cur.MATERIAL_BILLABLE_FLAG IS NOT NULL
1667             OR cur.MAX_WARRANTY_AMOUNT IS NOT NULL
1668             OR cur.PREVENTIVE_MAINTENANCE_FLAG IS NOT NULL
1669             OR cur.PRORATE_SERVICE_FLAG IS NOT NULL
1670             OR cur.RESPONSE_TIME_PERIOD_CODE IS NOT NULL
1671             OR cur.RESPONSE_TIME_VALUE IS NOT NULL
1672             OR cur.SERVICE_DURATION IS NOT NULL
1673             OR cur.SERVICE_DURATION_PERIOD_CODE IS NOT NULL
1674             OR cur.SERVICE_ITEM_FLAG IS NOT NULL
1675             OR cur.WARRANTY_VENDOR_ID IS NOT NULL
1676             OR cur.SERVICEABLE_PRODUCT_FLAG IS NOT NULL
1677             OR cur.VENDOR_WARRANTY_FLAG IS NOT NULL
1678             OR cur.SERVICE_STARTING_DELAY IS NOT NULL
1679             OR cur.USAGE_ITEM_FLAG IS NOT NULL
1680             OR cur.RECOVERED_PART_DISP_CODE IS NOT NULL
1681             OR cur.DEFECT_TRACKING_ON_FLAG IS NOT NULL
1682             OR cur.COMMS_NL_TRACKABLE_FLAG IS NOT NULL
1683             OR cur.ASSET_CREATION_CODE IS NOT NULL
1684             OR cur.COMMS_ACTIVATION_REQD_FLAG IS NOT NULL
1685             OR cur.CONTRACT_ITEM_TYPE_CODE IS NOT NULL
1686             OR cur.SERV_REQ_ENABLED_CODE IS NOT NULL
1687             OR cur.SERV_BILLING_ENABLED_FLAG IS NOT NULL
1688             OR cur.IB_ITEM_INSTANCE_CLASS IS NOT NULL
1689 
1690             --Web Option
1691             OR cur.ORDERABLE_ON_WEB_FLAG IS NOT NULL
1692             OR cur.BACK_ORDERABLE_FLAG IS NOT NULL
1693             OR cur.WEB_STATUS IS NOT NULL
1694             OR cur.MINIMUM_LICENSE_QUANTITY IS NOT NULL
1695             THEN
1696                IF l_inv_debug_level IN(101, 102) THEN
1697                   INVPUTLI.info('INVNIRIS.change_policy_check: Some Attr is non null');
1698                END IF;
1699 
1700               l_values_provided := TRUE;
1701             ELSE
1702               l_values_provided := FALSE;
1703             END IF;
1704 
1705             IF l_msb_rec.inventory_item_status_code <> NVL(cur.inventory_item_status_code,l_msb_rec.inventory_item_status_code)
1706                OR l_msb_rec.description <> NVL(cur.description,l_msb_rec.description)
1707             THEN
1708                l_desc_status_change := TRUE;
1709             ELSE
1710                l_desc_status_change := FALSE;
1711             END IF;
1712 
1713             IF l_values_provided THEN
1714                UPDATE mtl_system_items_interface msi
1715                SET    process_flag          = 5,
1716 	              --Bug 5383744
1717 		      inventory_item_status_code = NVL(cur.inventory_item_status_code,l_msb_rec.inventory_item_status_code)
1718                WHERE  rowid = cur.rowid;
1719 
1720                IF l_desc_status_change THEN
1721                   INSERT INTO mtl_system_items_interface(
1722                       organization_id
1723                      ,inventory_item_id
1724                      ,process_flag
1725                      ,set_process_id
1726                      ,transaction_type
1727                      ,transaction_id
1728                      ,inventory_item_status_code
1729                      ,allowed_units_lookup_code
1730                      ,item_type
1731                      ,description)
1732                   VALUES(
1733                       cur.organization_id
1734                      ,cur.inventory_item_id
1735                      ,1
1736                      ,cur.set_process_id
1737                      ,'UPDATE'
1738                      ,mtl_system_items_interface_s.nextval
1739                      ,cur.inventory_item_status_code --Bug 5383744
1740                      ,cur.allowed_units_lookup_code
1741                      ,cur.item_type
1742                      ,NVL(cur.description,l_msb_rec.description));
1743                END IF;
1744 
1745             ELSIF NOT l_desc_status_change THEN
1746 
1747                UPDATE mtl_system_items_interface msi
1748                SET    process_flag          = 7
1749                WHERE  rowid = cur.rowid;
1750 
1751             END IF; -- IF l_values_provided THEN
1752             --Start: 5383744: Donot move 5 for no attrib values
1753 
1754          END LOOP;
1755 
1756       END IF;  -- NVL(l_import_co_option,'N') = 'Y' AND l_structure_type_id IS NULL
1757 
1758    END IF; -- INTSR('ITEM_APPROVAL:A')
1759 
1760    RETURN(l_ret_code);
1761 
1762 EXCEPTION
1763   WHEN LOGGING_ERR then
1764      IF l_inv_debug_level IN(101, 102) THEN
1765         INVPUTLI.info(l_Err_Text);
1766      END IF;
1767      RETURN(l_error_logged);
1768    WHEN OTHERS THEN
1769       err_text := substr('INVNIRIS.change_policy_check ' || SQLERRM, 1,240);
1770       IF l_inv_debug_level IN(101, 102) THEN
1771          INVPUTLI.info(err_text);
1772       END IF;
1773       RETURN(SQLCODE);
1774 END change_policy_check;
1775 
1776 END INVNIRIS;