[Home] [Help]
PACKAGE BODY: APPS.INVUPD1B
Source
1 PACKAGE BODY INVUPD1B AS -- {
2 /* $Header: INVUPD1B.pls 120.23.12010000.4 2008/11/26 00:59:33 akbharga ship $ */
3 -- Values used in IOI to indicate an attribute update to NULL.
4 --
5 g_Upd_Null_CHAR VARCHAR2(1) := '!';
6 g_Upd_Null_NUM NUMBER := -999999;
7 g_Upd_Null_DATE DATE := NULL;
8
9 -- FND null value sets
10 g_FND_Upd_Null_NUM NUMBER := 9.99E125;
11 g_FND_Upd_Null_Char VARCHAR2(1) := chr(0);
12
13 --2808277 Start supporting Item Revision Update
14 FUNCTION assign_item_rev_data_update(
15 org_id NUMBER,
16 all_org NUMBER := 2,
17 prog_appid NUMBER := -1,
18 prog_id NUMBER := -1,
19 request_id NUMBER := -1,
20 user_id NUMBER := -1,
21 login_id NUMBER := -1,
22 err_text IN OUT NOCOPY VARCHAR2,
23 xset_id IN NUMBER DEFAULT -999)
24 RETURN NUMBER;
25 --2808277 End supporting Item Revision Update
26
27 FUNCTION mtl_pr_assign_item_data_update(
28 org_id NUMBER,
29 all_org NUMBER := 2,
30 prog_appid NUMBER := -1,
31 prog_id NUMBER := -1,
32 request_id NUMBER := -1,
33 user_id NUMBER := -1,
34 login_id NUMBER := -1,
35 err_text IN OUT NOCOPY VARCHAR2,
36 xset_id IN NUMBER DEFAULT -999) RETURN INTEGER IS
37
38 CURSOR C_msii_records IS
39 SELECT ROWID, intf.*
40 FROM mtl_system_items_interface intf
41 WHERE intf.process_flag = 1
42 AND intf.set_process_id = xset_id
43 AND ((intf.organization_id = org_id) or (all_org = 1));
44
45 CURSOR C_status_controlled_attr(cp_item_status_code VARCHAR2) IS
46 SELECT status.attribute_name
47 ,status.attribute_value
48 FROM mtl_status_attribute_values status
49 ,mtl_item_attributes ctrl
50 WHERE status.attribute_name = ctrl.attribute_name
51 AND status.inventory_item_status_code = cp_item_status_code
52 AND ctrl.status_control_code = 1;
53
54 --Added for Bug 4366615
55 CURSOR C_puom_records IS
56 SELECT Primary_Unit_Of_Measure, ROWID
57 FROM Mtl_System_Items_Interface
58 WHERE Process_Flag = 1
59 AND Set_Process_Id = xset_id
60 AND ((organization_id = org_id) or (all_org = 1))
61 FOR UPDATE OF Primary_Uom_Code;
62 -- End of Bug 4366615
63
64 ret_code NUMBER := 0;
65 rtn_status NUMBER := 0;
66 error_text VARCHAR2(250);
67 dumm_status NUMBER;
68 status_code NUMBER;
69 t_trans_id NUMBER;
70 t_organization_id NUMBER;
71 t_inventory_item_id NUMBER;
72 t_template_id VARCHAR2(30) DEFAULT null;
73 msi_primary_uom VARCHAR2(26) DEFAULT null;
74 msi_eng_item_flag VARCHAR2(1) DEFAULT null;
75 msi_inventory_item_status_code VARCHAR2(20) DEFAULT NULL;
76
77 ASS_ITEM_ERR EXCEPTION;
78 attr_err_mesg_name VARCHAR2(30) DEFAULT null;
79 upd_status NUMBER DEFAULT 1;
80
81 --Added for Bug 4366615
82 temp_uom_code VARCHAR2(3);
83 msi_primary_uom_code VARCHAR2(3);
84 --End of Bug 4366615
85
86 msi_tracking_quantity_ind mtl_system_items.tracking_quantity_ind%TYPE;
87 msi_secondary_uom_code mtl_system_items.secondary_uom_code%TYPE;
88 msi_secondary_default_ind mtl_system_items.secondary_default_ind%TYPE;
89 msi_ont_pricing_qty_source mtl_system_items.ont_pricing_qty_source%TYPE;
90 msi_dual_uom_deviation_high mtl_system_items.dual_uom_deviation_high%TYPE;
91 msi_dual_uom_deviation_low mtl_system_items.dual_uom_deviation_low%TYPE;
92
93 l_inv_debug_level NUMBER := INVPUTLI.get_debug_level; --Bug: 4667452
94
95
96 BEGIN -- {
97
98 IF l_inv_debug_level IN(101, 102) THEN
99 INVPUTLI.info('INVUPD1B.mtl_pr_assign_item_data_update: begin org_id=' || TO_CHAR(org_id));
100 END IF;
101
102 -- Added for Bug 4366615
103 FOR puom IN C_puom_records LOOP
104 BEGIN
105 IF puom.Primary_Unit_of_Measure IS NOT NULL THEN
106 SELECT Uom_Code
107 INTO temp_uom_code
108 FROM Mtl_Units_Of_Measure
109 WHERE Unit_Of_Measure = puom.Primary_Unit_Of_Measure --Bug 5192495
110 AND SYSDATE < nvl(Disable_Date, SYSDATE+1);
111
112 UPDATE Mtl_System_Items_Interface
113 SET Primary_Uom_Code = temp_uom_code
114 WHERE Rowid = puom.Rowid;
115 END IF;
116 EXCEPTION
117 WHEN NO_DATA_FOUND THEN
118 dumm_status := INVPUOPI.mtl_log_interface_err(
119 t_organization_id,
120 user_id,
121 login_id,
122 prog_appid,
123 prog_id,
124 request_id,
125 t_trans_id,
126 error_text,
127 'PRIMARY_UNIT_OF_MEASURE',
128 'MTL_SYSTEM_ITEMS_INTERFACE',
129 'INV_IOI_PRIMARY_UOM',
130 err_text);
131 dumm_status := INVUPD2B.set_process_flag3(puom.ROWID,user_id,login_id,prog_appid,prog_id,request_id);
132 END;
133 END LOOP;
134 --End of Bug 4366615
135
136 FOR rec IN C_msii_records LOOP -- {
137 t_organization_id := rec.organization_id;
138 t_inventory_item_id := rec.inventory_item_id;
139 t_trans_id := rec.transaction_id;
140
141 -- Start 2913856
142 --Jalaj Srivastava Bug 5017588
143 --update of uom fields not allowed.
144
145 BEGIN
146 SELECT msi.primary_unit_of_measure,
147 msi.eng_item_flag,
148 msi.primary_uom_code, --* Added for Bug 4366615
149 msi.inventory_item_status_code,
150 msi.tracking_quantity_ind,
151 msi.secondary_uom_code,
152 msi.secondary_default_ind,
153 msi.ont_pricing_qty_source,
154 msi.dual_uom_deviation_high,
155 msi.dual_uom_deviation_low
156 INTO msi_primary_uom,
157 msi_eng_item_flag,
158 msi_primary_uom_code, --* Added for Bug 4366615
159 msi_inventory_item_status_code,
160 msi_tracking_quantity_ind,
161 msi_secondary_uom_code,
162 msi_secondary_default_ind,
163 msi_ont_pricing_qty_source,
164 msi_dual_uom_deviation_high,
165 msi_dual_uom_deviation_low
166 FROM mtl_system_items_B msi
167 WHERE msi.inventory_item_id = t_inventory_item_id
168 AND msi.organization_id = t_organization_id;
169 EXCEPTION
170 WHEN NO_DATA_FOUND THEN
171 NULL;
172 END;
173 -- End 2913856
174
175 -- if any of the non-updateable fields are being updated [ENG_ITEM_FLAG and PRIMARY_UOM]
176 IF (rec.MATERIAL_COST IS NULL
177 AND rec.MATERIAL_SUB_ELEM IS NULL
178 AND rec.MATERIAL_OH_RATE IS NULL
179 AND rec.MATERIAL_OH_SUB_ELEM IS NULL
180 AND rec.MATERIAL_SUB_ELEM_ID IS NULL
181 AND rec.MATERIAL_OH_SUB_ELEM_ID IS NULL)
182 THEN
183
184 IF (rec.ENG_ITEM_FLAG IS NULL OR rec.ENG_ITEM_FLAG = msi_eng_item_flag)
185 AND (rec.PRIMARY_UOM_CODE IS NULL OR rec.primary_uom_code = msi_primary_uom_code)
186 --Jalaj Srivastava Bug 5017588
187 --all uom fields are non updateable
188 AND (rec.tracking_quantity_ind IS NULL OR rec.tracking_quantity_ind = msi_tracking_quantity_ind )
189 AND (rec.secondary_uom_code IS NULL OR rec.secondary_uom_code = msi_secondary_uom_code )
190 AND (rec.secondary_default_ind IS NULL OR rec.secondary_default_ind = msi_secondary_default_ind )
191 AND (rec.ont_pricing_qty_source IS NULL OR rec.ont_pricing_qty_source = msi_ont_pricing_qty_source )
192 AND (rec.dual_uom_deviation_high IS NULL OR rec.dual_uom_deviation_high = msi_dual_uom_deviation_high )
193 AND (rec.dual_uom_deviation_low IS NULL OR rec.dual_uom_deviation_low = msi_dual_uom_deviation_low )
194 THEN
195
196 status_code := 1;
197 /* Bug 4751471 Status Controlled attrs are relevantly updated when status is applied. Eliminating this chk
198 BEGIN -- {
199
200 -- if status controlled attributes are not being modified
201 IF NOT (rec.STOCK_ENABLED_FLAG IS NULL
202 AND rec.MTL_TRANSACTIONS_ENABLED_FLAG IS NULL
203 AND rec.PURCHASING_ENABLED_FLAG IS NULL
204 AND rec.BUILD_IN_WIP_FLAG IS NULL
205 AND rec.CUSTOMER_ORDER_ENABLED_FLAG IS NULL
206 AND rec.INTERNAL_ORDER_ENABLED_FLAG IS NULL
207 AND rec.BOM_ENABLED_FLAG IS NULL
208 AND rec.INVOICE_ENABLED_FLAG IS NULL
209 AND rec.RECIPE_ENABLED_FLAG IS NULL
210 AND rec.PROCESS_EXECUTION_ENABLED_FLAG IS NULL)
211 THEN -- {
212
213 -- Start 2913856 Changed is not null to <>
214 --4751471 : Status attributes under sets control
215 --Values passed in the interface table should be compared against status setup not against msb db value.
216 FOR srec IN C_status_controlled_attr(nvl(rec.inventory_item_status_code,msi_inventory_item_status_code)) LOOP -- {
217 IF((srec.attribute_name = 'MTL_SYSTEM_ITEMS.STOCK_ENABLED_FLAG'
218 AND NVL(rec.STOCK_ENABLED_FLAG,srec.attribute_value) <> srec.attribute_value)
219 OR (srec.attribute_name = 'MTL_SYSTEM_ITEMS.MTL_TRANSACTIONS_ENABLED_FLAG'
220 AND NVL(rec.MTL_TRANSACTIONS_ENABLED_FLAG,srec.attribute_value) <> srec.attribute_value)
221 OR (srec.attribute_name = 'MTL_SYSTEM_ITEMS.PURCHASING_ENABLED_FLAG'
222 AND NVL(rec.PURCHASING_ENABLED_FLAG,srec.attribute_value) <> srec.attribute_value)
223 OR (srec.attribute_name = 'MTL_SYSTEM_ITEMS.BUILD_IN_WIP_FLAG'
224 AND NVL(rec.BUILD_IN_WIP_FLAG,srec.attribute_value) <> srec.attribute_value)
225 OR (srec.attribute_name = 'MTL_SYSTEM_ITEMS.CUSTOMER_ORDER_ENABLED_FLAG'
226 AND NVL(rec.CUSTOMER_ORDER_ENABLED_FLAG,srec.attribute_value) <> srec.attribute_value)
227 OR (srec.attribute_name = 'MTL_SYSTEM_ITEMS.INTERNAL_ORDER_ENABLED_FLAG'
228 AND NVL(rec.INTERNAL_ORDER_ENABLED_FLAG,srec.attribute_value) <> srec.attribute_value)
229 OR (srec.attribute_name = 'MTL_SYSTEM_ITEMS.BOM_ENABLED_FLAG'
230 AND NVL(rec.BOM_ENABLED_FLAG,srec.attribute_value) <> srec.attribute_value)
231 OR (srec.attribute_name = 'MTL_SYSTEM_ITEMS.INVOICE_ENABLED_FLAG'
232 AND NVL(rec.INVOICE_ENABLED_FLAG,srec.attribute_value) <> srec.attribute_value)
233 OR (srec.attribute_name = 'MTL_SYSTEM_ITEMS.RECIPE_ENABLED_FLAG'
234 AND NVL(rec.RECIPE_ENABLED_FLAG,srec.attribute_value) <> srec.attribute_value)
235 OR (srec.attribute_name = 'MTL_SYSTEM_ITEMS.PROCESS_EXECUTION_ENABLED_FLAG'
236 AND NVL(rec.PROCESS_EXECUTION_ENABLED_FLAG,srec.attribute_value) <> srec.attribute_value))
237 THEN -- {
238 status_code := 0;
239 END IF; -- }
240 -- exit when first status controlled attribute is found not to be null
241 EXIT WHEN status_code = 0;
242 END LOOP; -- }
243 --End 2913856
244 END IF; -- }
245 EXCEPTION
246 WHEN NO_DATA_FOUND THEN
247 NULL; -- no status controlled attributes
248 END; -- }
249
250 IF (status_code = 1) THEN -- { */
251 -- check if an attribute that should not be updated if onhand qties exist is being updated
252 IF NOT (rec.LOCATION_CONTROL_CODE IS NULL
253 AND rec.LOT_CONTROL_CODE IS NULL
254 AND rec.REVISION_QTY_CONTROL_CODE IS NULL
255 AND rec.SERIAL_NUMBER_CONTROL_CODE IS NULL
256 AND rec.SHELF_LIFE_CODE IS NULL
257 AND rec.COSTING_ENABLED_FLAG IS NULL
258 AND rec.INVENTORY_ASSET_FLAG IS NULL )
259 THEN -- {
260 -- if onhand quantities exist or transactions pending then
261 IF (INVUPD1B.exists_onhand_quantities(t_organization_id, t_inventory_item_id) <> 1
262 AND INVUPD1B.exists_onhand_child_qties(t_organization_id, t_inventory_item_id) <> 1 )
263 THEN -- {
264 -- copy msi data to msii record for ``missing'' attributes, also set process_ flag = 2
265 dumm_status := INVUPD1B.copy_msi_to_msii(rec.rowid,t_organization_id, t_inventory_item_id);
266 rtn_status := INVPULI4.assign_status_attributes(rec.inventory_item_id,rec.organization_id,err_text,xset_id,rec.rowid);
267 IF rtn_status = 0 THEN
268 status_code := 1;
269 ELSE
270 status_code := 0;
271 END IF;
272
273 ELSE -- } {
274 -- Check for dependencies of attributes being updated
275 upd_status := INVUPD1B.mtl_validate_attr_upd(
276 rec.organization_id,
277 rec.inventory_item_id,
278 rec.rowid,
279 attr_err_mesg_name);
280
281 IF upd_status <> 0 THEN --{
282 -- At least one attribute failed the dependency check.
283 -- Flag error that on-hand qties exist and related
284 -- non-updateable attribute is being updated.
285 upd_status := INVPUOPI.mtl_log_interface_err(
286 t_organization_id,
287 user_id,
288 login_id,
289 prog_appid,
290 prog_id,
291 request_id,
292 t_trans_id,
293 error_text,
294 null,
295 'MTL_SYSTEM_ITEMS_INTERFACE',
296 attr_err_mesg_name,
297 err_text);
298
299 upd_status := INVUPD2B.set_process_flag3(rec.ROWID,user_id,login_id,prog_appid,prog_id,request_id);
300 ELSE
301 dumm_status := INVUPD1B.copy_msi_to_msii(rec.rowid,t_organization_id,t_inventory_item_id);
302 rtn_status := INVPULI4.assign_status_attributes(rec.inventory_item_id,rec.organization_id,err_text,xset_id,rec.rowid);
303 IF rtn_status = 0 THEN
304 status_code := 1;
305 ELSE
306 status_code := 0;
307 END IF;
308 END IF; --}
309 END IF; -- }
310 ELSE -- no onhand qties exist and no transactions pending -- } {
311 -- copy msi data to msii record for ``missing'' attributes, also set process_flag = 2
312 dumm_status := INVUPD1B.copy_msi_to_msii(rec.rowid, t_organization_id, t_inventory_item_id);
313 rtn_status := INVPULI4.assign_status_attributes(rec.inventory_item_id,rec.organization_id,err_text,xset_id,rec.rowid);
314 IF rtn_status = 0 THEN
315 status_code := 1;
316 ELSE
317 status_code := 0;
318 END IF;
319 END IF; -- }
320 /* Bug 4751471 - Status Controlled attrs are relevantly updated when status is applied. Eliminating chk
321 ELSE -- } {
322 -- flag error that status controlled attribute is being modified and move to next record
323 dumm_status := INVPUOPI.mtl_log_interface_err(
324 t_organization_id,
325 user_id,
326 login_id,
327 prog_appid,
328 prog_id,
329 request_id,
330 t_trans_id,
331 error_text,
332 null,
333 'MTL_SYSTEM_ITEMS_INTERFACE',
334 'INV_STATUS_CNTRL_ATTRIB_ERROR',
335 err_text);
336 dumm_status := INVUPD2B.set_process_flag3(rec.ROWID,user_id,login_id,prog_appid,prog_id,request_id);
337 END IF; -- } */
338 ELSE -- } {
339 -- flag error that non-updateable fields are being updated and move to next record
340 dumm_status := INVPUOPI.mtl_log_interface_err(
341 t_organization_id,
342 user_id,
343 login_id,
344 prog_appid,
345 prog_id,
346 request_id,
347 t_trans_id,
348 error_text,
349 null,
350 'MTL_SYSTEM_ITEMS_INTERFACE',
351 'INV_NON_UPDATE_ATTRIBUTE_ERROR',
352 err_text);
353 dumm_status := INVUPD2B.set_process_flag3(rec.ROWID,user_id,login_id,prog_appid,prog_id,request_id);
354 END IF; -- }
355 ELSE -- } {
356 -- flag error that costing related fields are being updated and move to next record
357 dumm_status := INVPUOPI.mtl_log_interface_err(
358 t_organization_id,
359 user_id,
360 login_id,
361 prog_appid,
362 prog_id,
363 request_id,
364 t_trans_id,
365 error_text,
366 null,
367 'MTL_SYSTEM_ITEMS_INTERFACE',
368 'INV_NON_UPDATE_ATTR_ERROR2',
369 err_text);
370 dumm_status := INVUPD2B.set_process_flag3(rec.ROWID,user_id,login_id,prog_appid,prog_id,request_id);
371 END IF; -- }
372 END LOOP; -- MSII LOOP -- }
373
374 --2808277 Start supporting Item Revision Update
375 rtn_status := assign_item_rev_data_update(
376 org_id => org_id
377 ,all_org => all_org
378 ,prog_appid => prog_appid
379 ,prog_id => prog_id
380 ,request_id => request_id
381 ,user_id => user_id
382 ,login_id => login_id
383 ,err_text => err_text
384 ,xset_id => xset_id);
385
386 IF (rtn_status <> 0) THEN
387 dumm_status := INVPUOPI.mtl_log_interface_err (
388 -1,
389 user_id,
390 login_id,
391 prog_appid,
392 prog_id,
393 request_id,
394 -1,
395 '*** BAD RETURN CODE e ***' || err_text,
396 null,
397 'MTL_ITEM_REVISIONS_INTERFACE',
398 'INV_IOI_ERR',
399 err_text);
400 ret_code := rtn_status;
401
402 END IF;
403 --2808277 End supporting Item Revision Update
404
405 return (ret_code);
406
407 EXCEPTION
408 WHEN NO_DATA_FOUND THEN
409 dumm_status := INVPUOPI.mtl_log_interface_err(
410 t_organization_id,
411 user_id,
412 login_id,
413 prog_appid,
414 prog_id,
415 request_id,
416 t_trans_id,
417 error_text,
418 null,
419 'MTL_SYSTEM_ITEMS_INTERFACE',
420 'INV_RECORD_NOT_FOUND_ERROR',
421 err_text);
422 RETURN (1);
423 WHEN OTHERS THEN
424 IF l_inv_debug_level IN(101, 102) THEN
425 INVPUTLI.info('INVUPD1B.mtl_pr_assign_item_data_update: when OTHERS exception');
426 END IF;
427 RETURN (1);
428 -- any other error other than no data found ?
429 END mtl_pr_assign_item_data_update; -- }
430
431 --
432 -- Function to check for attribute dependencies impacted by on-hand quantites.
433 --
434
435 FUNCTION mtl_validate_attr_upd
436 (
437 org_id IN NUMBER
438 , item_id IN NUMBER
439 , row_id IN ROWID
440 , attr_err_mesg_name OUT NOCOPY VARCHAR2
441 )
442 RETURN INTEGER
443 IS
444
445
446 cursor msii_attr is
447 select LOCATION_CONTROL_CODE,
448 LOT_CONTROL_CODE,
449 REVISION_QTY_CONTROL_CODE,
450 SERIAL_NUMBER_CONTROL_CODE,
451 SHELF_LIFE_CODE,
452 COSTING_ENABLED_FLAG,
453 INVENTORY_ASSET_FLAG,
454 RESTRICT_LOCATORS_CODE,
455 AUTO_SERIAL_ALPHA_PREFIX,
456 START_AUTO_SERIAL_NUMBER,
457 /* Start Bug 3713912 */
458 SECONDARY_UOM_CODE ,
459 TRACKING_QUANTITY_IND,
460 SECONDARY_DEFAULT_IND,
461 DUAL_UOM_DEVIATION_HIGH,
462 DUAL_UOM_DEVIATION_LOW
463 /* End Bug 3713912 */
464 from MTL_SYSTEM_ITEMS_INTERFACE
465 where rowid = row_id;
466
467 cursor msi_attr is
468 select LOCATION_CONTROL_CODE,
469 LOT_CONTROL_CODE,
470 REVISION_QTY_CONTROL_CODE,
471 SERIAL_NUMBER_CONTROL_CODE,
472 SHELF_LIFE_CODE,
473 COSTING_ENABLED_FLAG,
474 INVENTORY_ASSET_FLAG,
475 RESTRICT_LOCATORS_CODE,
476 AUTO_SERIAL_ALPHA_PREFIX, -- Bug #1402402
477 START_AUTO_SERIAL_NUMBER, -- Bug #1402402
478 /* Start Bug 3713912 */
479 SECONDARY_UOM_CODE ,
480 TRACKING_QUANTITY_IND,
481 SECONDARY_DEFAULT_IND,
482 DUAL_UOM_DEVIATION_HIGH,
483 DUAL_UOM_DEVIATION_LOW
484 /* End Bug 3713912 */
485 from MTL_SYSTEM_ITEMS
486 where inventory_item_id = item_id
487 and organization_id = org_id;
488
489 msii_rec msii_attr%rowtype;
490 msi_rec msi_attr%rowtype;
491 attrib_error exception;
492 attr_noerr_flg number;
493
494 l_inv_debug_level NUMBER := INVPUTLI.get_debug_level; --Bug: 4667452
495
496 BEGIN --{
497
498 attr_noerr_flg := 0;
499 open msii_attr;
500 fetch msii_attr into msii_rec;
501 open msi_attr;
502 fetch msi_attr into msi_rec;
503
504 -- Location Control Code
505
506 if msii_rec.location_control_code is not null then --{
507
508 if msi_rec.location_control_code = 1 then
509 if msii_rec.location_control_code = 1 then
510 attr_noerr_flg := 0;
511 elsif msii_rec.location_control_code in (2,3) then
512 attr_err_mesg_name := 'INV_IOI_LOC_CTRL_CODE_UPD_QOH';
513 raise attrib_error;
514 end if;
515 elsif msi_rec.location_control_code = 2 then
516 if msii_rec.location_control_code = 1 then
517 attr_err_mesg_name := 'INV_IOI_LOC_CTRL_CODE_UPD_QOH';
518 raise attrib_error;
519 elsif msii_rec.location_control_code = 2 then
520 attr_noerr_flg := 0;
521 elsif msii_rec.location_control_code = 3 then
522 if msi_rec.restrict_locators_code = 1 then
523 attr_err_mesg_name := 'INV_IOI_LOC_CTRL_CODE_UPD_QOH';
524 raise attrib_error;
525 elsif msi_rec.restrict_locators_code = 2 then
526 attr_noerr_flg := 0;
527 end if;
528 end if;
529 elsif msi_rec.location_control_code = 3 then
530 if msii_rec.location_control_code = 1 then
531 attr_err_mesg_name := 'INV_IOI_LOC_CTRL_CODE_UPD_QOH';
532 raise attrib_error;
533 elsif msii_rec.location_control_code = 2 then
534 attr_noerr_flg := 0;
535 elsif msii_rec.location_control_code = 3 then
536 attr_noerr_flg := 0;
537 end if;
538 end if;
539
540 end if; --}
541
542 -- end Location Control Code
543
544 -- Lot Control Code
545 if msii_rec.lot_control_code is not null then --{
546 if msi_rec.lot_control_code = msii_rec.lot_control_code then
547 attr_noerr_flg := 0;
548 else
549 attr_err_mesg_name := 'INV_IOI_LOT_CTRL_CODE_UPD_QOH';
550 raise attrib_error;
551 end if;
552 end if; --}
553 -- End Lot Control Code
554
555 -- Revision Qty Control Code
556 if msii_rec.revision_qty_control_code is not null then --{
557 if msi_rec.Revision_qty_control_code = msii_rec.Revision_qty_control_code then
558 attr_noerr_flg := 0;
559 else
560 attr_err_mesg_name := 'INV_IOI_REV_QTY_CTRL_UPD_QOH';
561 raise attrib_error;
562 end if;
563 end if; --}
564 -- End Revision qty control code
565
566 -- Serial Number Control Code
567 if msii_rec.serial_number_control_code is not null then --{
568 if msi_rec.serial_number_control_code = 1 then
569 if msii_rec.serial_number_control_code in (1,6) then -- Bug 1402402
570 attr_noerr_flg := 0;
571 else
572 attr_err_mesg_name := 'INV_IOI_SRL_NUM_CTRL_UPD_QOH';
573 raise attrib_error;
574 end if;
575 /* elsif msii_rec.serial_number_control_code = 6 then
576 if (msii_rec.auto_serial_alpha_prefix is null and
577 msii_rec.start_auto_serial_number is null) then
578 attr_err_mesg_name := 'INV_AUTO_SERIAL_PREFIX';
579 raise attrib_error;
580 else
581 attr_noerr_flg := 0;
582 end if;
583 else
584 attr_err_mesg_name := 'INV_IOI_SRL_NUM_CTRL_UPD_QOH';
585 raise attrib_error;
586 end if;
587 */ -- Commented for Bug 1402402
588 elsif msi_rec.serial_number_control_code = 2 then
589 if msii_rec.serial_number_control_code in (2,5) then
590 attr_noerr_flg := 0;
591 else
592 attr_err_mesg_name := 'INV_IOI_SRL_NUM_CTRL_UPD_QOH';
593 raise attrib_error;
594 end if;
595 elsif msi_rec.serial_number_control_code = 5 then
596 if msii_rec.serial_number_control_code = 5 then -- Bug 1402402
597 attr_noerr_flg := 0;
598 elsif msii_rec.serial_number_control_code = 2 then -- Added for Bug 1402402
599 if (msii_rec.auto_serial_alpha_prefix is null or
600 msii_rec.start_auto_serial_number is null) then
601 attr_err_mesg_name := 'INV_AUTO_SERIAL_PREFIX';
602 raise attrib_error;
603 else
604 attr_noerr_flg := 0;
605 end if;
606 else
607 attr_err_mesg_name := 'INV_IOI_SRL_NUM_CTRL_UPD_QOH';
608 raise attrib_error;
609 end if;
610 elsif msi_rec.serial_number_control_code = 6 then
611 if msii_rec.serial_number_control_code in (1,6) then
612 attr_noerr_flg := 0;
613 else
614 attr_err_mesg_name := 'INV_IOI_SRL_NUM_CTRL_UPD_QOH';
615 raise attrib_error;
616 end if;
617 end if;
618 end if; --}
619 -- End Serial Number Control Code
620
621 -- Shelf Life Code
622 if msii_rec.shelf_life_code is not null then --{
623 if msi_rec.shelf_life_code = 1 then
624 if msii_rec.shelf_life_code = 1 then
625 attr_noerr_flg := 0;
626 else
627 attr_err_mesg_name := 'INV_IOI_SHLF_LIF_CODE_UPD_QOH';
628 raise attrib_error;
629 end if;
630 elsif msi_rec.shelf_life_code in (2,4) then
631 if msii_rec.shelf_life_code = 1 then
632 attr_err_mesg_name := 'INV_IOI_SHLF_LIF_CODE_UPD_QOH';
633 raise attrib_error;
634 elsif msii_rec.shelf_life_code in ( 2,4) then
635 attr_noerr_flg := 0;
636 end if;
637 end if;
638 end if; --}
639 -- end shelf life code
640
641 -- Inventory Asset Flag
642 if msii_rec.inventory_asset_flag is not null then --{
643 if msi_rec.inventory_asset_flag = msii_rec.inventory_asset_flag then
644 attr_noerr_flg := 0;
645 else
646 attr_err_mesg_name := 'INV_IOI_INV_ASST_FLG_UPD_QOH';
647 raise attrib_error;
648 end if;
649 end if; --}
650 -- End Inventory Asset Flag
651
652 -- Costing Enabled Flag
653 if msii_rec.costing_enabled_flag is not null then --{
654 if msi_rec.costing_enabled_flag = msii_rec.costing_enabled_flag then
655 attr_noerr_flg := 0;
656 else
657 attr_err_mesg_name := 'INV_IOI_COST_ENBL_FLG_UPD_QOH';
658 raise attrib_error;
659 end if;
660 end if; --}
661 -- End Costing Enabled Flag
662
663 /* Start Bug 3713912 */
664 -- Tracking Quantity Indicator
665 if msii_rec.TRACKING_QUANTITY_IND is not null then --{
666 if msi_rec.TRACKING_QUANTITY_IND = msii_rec.TRACKING_QUANTITY_IND then
667 attr_noerr_flg := 0;
668 else
669 attr_err_mesg_name := 'INV_IOI_TRCK_QTY_IND_UPD_QOH';
670 raise attrib_error;
671 end if;
672 end if; --}
673 -- Tracking Quantity Indicator
674
675 -- Secondary Default Indicator
676 if msii_rec.SECONDARY_DEFAULT_IND is not null then --{
677 if msi_rec.SECONDARY_DEFAULT_IND = msii_rec.SECONDARY_DEFAULT_IND then
678 attr_noerr_flg := 0;
679 else
680 attr_err_mesg_name := 'INV_IOI_SEC_DFLT_IND_UPD_QOH';
681 raise attrib_error;
682 end if;
683 end if; --}
684 -- Secondary Default Indicator
685
686 -- Secondary UOM Code
687 if msii_rec.SECONDARY_UOM_CODE is not null then --{
688 if msi_rec.SECONDARY_UOM_CODE = msii_rec.SECONDARY_UOM_CODE then
689 attr_noerr_flg := 0;
690 else
691 attr_err_mesg_name := 'INV_IOI_SEC_UOM_CODE_UPD_QOH';
692 raise attrib_error;
693 end if;
694 end if; --}
695 -- Secondary UOM Code
696
697 -- Dual UOM Deviation High
698 if msii_rec.DUAL_UOM_DEVIATION_HIGH is not null then --{
699 if msi_rec.DUAL_UOM_DEVIATION_HIGH = msii_rec.DUAL_UOM_DEVIATION_HIGH then
700 attr_noerr_flg := 0;
701 else
702 attr_err_mesg_name := 'INV_IOI_DUAL_HI_DEV_UPD_QOH';
703 raise attrib_error;
704 end if;
705 end if; --}
706 -- Dual UOM Deviation High
707
708 -- Dual UOM Deviation Low
709 if msii_rec.DUAL_UOM_DEVIATION_LOW is not null then --{
710 if msi_rec.DUAL_UOM_DEVIATION_LOW = msii_rec.DUAL_UOM_DEVIATION_LOW then
711 attr_noerr_flg := 0;
712 else
713 attr_err_mesg_name := 'INV_IOI_DUAL_LOW_DEV_UPD_QOH';
714 raise attrib_error;
715 end if;
716 end if; --}
717 -- Dual UOM Deviation Low
718 /* End Bug 3713912 */
719 return attr_noerr_flg;
720 close msi_attr;
721 close msii_attr;
722
723 exception
724
725 when attrib_error then
726 close msi_attr;
727 close msii_attr;
728 return 1;
729 when OTHERS then
730 IF l_inv_debug_level IN(101, 102) THEN
731 INVPUTLI.info('when OTHERS exception raised in mtl_validate_attr_upd');
732 END IF;
733 close msi_attr;
734 close msii_attr;
735 return 1;
736
737 END mtl_validate_attr_upd; --}
738
739
740 FUNCTION chk_exist_copy_template_attr
741 (
742 org_id NUMBER,
743 all_org NUMBER := 2,
744 prog_appid NUMBER := -1,
745 prog_id NUMBER := -1,
746 request_id NUMBER := -1,
747 user_id NUMBER := -1,
748 login_id NUMBER := -1,
749 err_text IN OUT NOCOPY VARCHAR2,
750 xset_id IN NUMBER DEFAULT -999
751 )
752 RETURN INTEGER
753 IS
754 CURSOR C_msii_records is
755 select
756 ROWID,
757 INVENTORY_ITEM_ID,
758 ORGANIZATION_ID,
759 LAST_UPDATE_DATE,
760 LAST_UPDATED_BY,
761 CREATION_DATE,
762 CREATED_BY,
763 LAST_UPDATE_LOGIN,
764 SUMMARY_FLAG,
765 ENABLED_FLAG,
766 START_DATE_ACTIVE,
767 END_DATE_ACTIVE,
768 DESCRIPTION,
769 BUYER_ID,
770 ACCOUNTING_RULE_ID,
771 INVOICING_RULE_ID,
772 SEGMENT1,
773 SEGMENT2,
774 SEGMENT3,
775 SEGMENT4,
776 SEGMENT5,
777 SEGMENT6,
778 SEGMENT7,
779 SEGMENT8,
780 SEGMENT9,
781 SEGMENT10,
782 SEGMENT11,
783 SEGMENT12,
784 SEGMENT13,
785 SEGMENT14,
786 SEGMENT15,
787 SEGMENT16,
788 SEGMENT17,
789 SEGMENT18,
790 SEGMENT19,
791 SEGMENT20,
792 ATTRIBUTE_CATEGORY,
793 ATTRIBUTE1,
794 ATTRIBUTE2,
795 ATTRIBUTE3,
796 ATTRIBUTE4,
797 ATTRIBUTE5,
798 ATTRIBUTE6,
799 ATTRIBUTE7,
800 ATTRIBUTE8,
801 ATTRIBUTE9,
802 ATTRIBUTE10,
803 ATTRIBUTE11,
804 ATTRIBUTE12,
805 ATTRIBUTE13,
806 ATTRIBUTE14,
807 ATTRIBUTE15,
808 GLOBAL_ATTRIBUTE_CATEGORY,
809 GLOBAL_ATTRIBUTE1,
810 GLOBAL_ATTRIBUTE2,
811 GLOBAL_ATTRIBUTE3,
812 GLOBAL_ATTRIBUTE4,
813 GLOBAL_ATTRIBUTE5,
814 GLOBAL_ATTRIBUTE6,
815 GLOBAL_ATTRIBUTE7,
816 GLOBAL_ATTRIBUTE8,
817 GLOBAL_ATTRIBUTE9,
818 GLOBAL_ATTRIBUTE10,
819 GLOBAL_ATTRIBUTE11,
820 GLOBAL_ATTRIBUTE12,
821 GLOBAL_ATTRIBUTE13,
822 GLOBAL_ATTRIBUTE14,
823 GLOBAL_ATTRIBUTE15,
824 GLOBAL_ATTRIBUTE16,
825 GLOBAL_ATTRIBUTE17,
826 GLOBAL_ATTRIBUTE18,
827 GLOBAL_ATTRIBUTE19,
828 GLOBAL_ATTRIBUTE20,
829 PURCHASING_ITEM_FLAG,
830 SHIPPABLE_ITEM_FLAG,
831 CUSTOMER_ORDER_FLAG,
832 INTERNAL_ORDER_FLAG,
833 -- SERVICE_ITEM_FLAG,
834 INVENTORY_ITEM_FLAG,
835 ENG_ITEM_FLAG,
836 INVENTORY_ASSET_FLAG,
837 PURCHASING_ENABLED_FLAG,
838 CUSTOMER_ORDER_ENABLED_FLAG,
839 INTERNAL_ORDER_ENABLED_FLAG,
840 SO_TRANSACTIONS_FLAG,
841 MTL_TRANSACTIONS_ENABLED_FLAG,
842 STOCK_ENABLED_FLAG,
843 BOM_ENABLED_FLAG,
844 BUILD_IN_WIP_FLAG,
845 REVISION_QTY_CONTROL_CODE,
846 ITEM_CATALOG_GROUP_ID,
847 CATALOG_STATUS_FLAG,
848 RETURNABLE_FLAG,
849 DEFAULT_SHIPPING_ORG,
850 COLLATERAL_FLAG,
851 TAXABLE_FLAG,
852 PURCHASING_TAX_CODE,
853 QTY_RCV_EXCEPTION_CODE,
854 ALLOW_ITEM_DESC_UPDATE_FLAG,
855 INSPECTION_REQUIRED_FLAG,
856 RECEIPT_REQUIRED_FLAG,
857 MARKET_PRICE,
858 HAZARD_CLASS_ID,
859 RFQ_REQUIRED_FLAG,
860 QTY_RCV_TOLERANCE,
861 LIST_PRICE_PER_UNIT,
862 UN_NUMBER_ID,
863 PRICE_TOLERANCE_PERCENT,
864 ASSET_CATEGORY_ID,
865 ROUNDING_FACTOR,
866 UNIT_OF_ISSUE,
867 ENFORCE_SHIP_TO_LOCATION_CODE,
868 ALLOW_SUBSTITUTE_RECEIPTS_FLAG,
869 ALLOW_UNORDERED_RECEIPTS_FLAG,
870 ALLOW_EXPRESS_DELIVERY_FLAG,
871 DAYS_EARLY_RECEIPT_ALLOWED,
872 DAYS_LATE_RECEIPT_ALLOWED,
873 RECEIPT_DAYS_EXCEPTION_CODE,
874 RECEIVING_ROUTING_ID,
875 INVOICE_CLOSE_TOLERANCE,
876 RECEIVE_CLOSE_TOLERANCE,
877 AUTO_LOT_ALPHA_PREFIX,
878 START_AUTO_LOT_NUMBER,
879 LOT_CONTROL_CODE,
880 SHELF_LIFE_CODE,
881 SHELF_LIFE_DAYS,
882 SERIAL_NUMBER_CONTROL_CODE,
883 START_AUTO_SERIAL_NUMBER,
884 AUTO_SERIAL_ALPHA_PREFIX,
885 SOURCE_TYPE,
886 SOURCE_ORGANIZATION_ID,
887 SOURCE_SUBINVENTORY,
888 EXPENSE_ACCOUNT,
889 ENCUMBRANCE_ACCOUNT,
890 RESTRICT_SUBINVENTORIES_CODE,
891 UNIT_WEIGHT,
892 WEIGHT_UOM_CODE,
893 VOLUME_UOM_CODE,
894 UNIT_VOLUME,
895 RESTRICT_LOCATORS_CODE,
896 LOCATION_CONTROL_CODE,
897 SHRINKAGE_RATE,
898 ACCEPTABLE_EARLY_DAYS,
899 PLANNING_TIME_FENCE_CODE,
900 DEMAND_TIME_FENCE_CODE,
901 LEAD_TIME_LOT_SIZE,
902 STD_LOT_SIZE,
903 CUM_MANUFACTURING_LEAD_TIME,
904 OVERRUN_PERCENTAGE,
905 MRP_CALCULATE_ATP_FLAG,
906 ACCEPTABLE_RATE_INCREASE,
907 ACCEPTABLE_RATE_DECREASE,
908 CUMULATIVE_TOTAL_LEAD_TIME,
909 PLANNING_TIME_FENCE_DAYS,
910 DEMAND_TIME_FENCE_DAYS,
911 END_ASSEMBLY_PEGGING_FLAG,
912 REPETITIVE_PLANNING_FLAG,
913 PLANNING_EXCEPTION_SET,
914 BOM_ITEM_TYPE,
915 PICK_COMPONENTS_FLAG,
916 REPLENISH_TO_ORDER_FLAG,
917 BASE_ITEM_ID,
918 ATP_COMPONENTS_FLAG,
919 ATP_FLAG,
920 FIXED_LEAD_TIME,
921 VARIABLE_LEAD_TIME,
922 WIP_SUPPLY_LOCATOR_ID,
923 WIP_SUPPLY_TYPE,
924 WIP_SUPPLY_SUBINVENTORY,
925 PRIMARY_UOM_CODE,
926 PRIMARY_UNIT_OF_MEASURE,
927 ALLOWED_UNITS_LOOKUP_CODE,
928 COST_OF_SALES_ACCOUNT,
929 SALES_ACCOUNT,
930 DEFAULT_INCLUDE_IN_ROLLUP_FLAG,
931 INVENTORY_ITEM_STATUS_CODE,
932 INVENTORY_PLANNING_CODE,
933 PLANNER_CODE,
934 PLANNING_MAKE_BUY_CODE,
935 FIXED_LOT_MULTIPLIER,
936 ROUNDING_CONTROL_TYPE,
937 CARRYING_COST,
938 POSTPROCESSING_LEAD_TIME,
939 PREPROCESSING_LEAD_TIME,
940 FULL_LEAD_TIME,
941 ORDER_COST,
942 MRP_SAFETY_STOCK_PERCENT,
943 MRP_SAFETY_STOCK_CODE,
944 MIN_MINMAX_QUANTITY,
945 MAX_MINMAX_QUANTITY,
946 MINIMUM_ORDER_QUANTITY,
947 FIXED_ORDER_QUANTITY,
948 FIXED_DAYS_SUPPLY,
949 MAXIMUM_ORDER_QUANTITY,
950 ATP_RULE_ID,
951 PICKING_RULE_ID,
952 RESERVABLE_TYPE,
953 POSITIVE_MEASUREMENT_ERROR,
954 NEGATIVE_MEASUREMENT_ERROR,
955 ENGINEERING_ECN_CODE,
956 ENGINEERING_ITEM_ID,
957 ENGINEERING_DATE,
958 SERVICE_STARTING_DELAY,
959 -- VENDOR_WARRANTY_FLAG,
960 SERVICEABLE_COMPONENT_FLAG,
961 SERVICEABLE_PRODUCT_FLAG,
962 BASE_WARRANTY_SERVICE_ID,
963 PAYMENT_TERMS_ID,
964 PREVENTIVE_MAINTENANCE_FLAG,
965 PRIMARY_SPECIALIST_ID,
966 SECONDARY_SPECIALIST_ID,
967 SERVICEABLE_ITEM_CLASS_ID,
968 TIME_BILLABLE_FLAG,
969 MATERIAL_BILLABLE_FLAG,
970 EXPENSE_BILLABLE_FLAG,
971 PRORATE_SERVICE_FLAG,
972 COVERAGE_SCHEDULE_ID,
973 SERVICE_DURATION_PERIOD_CODE,
974 SERVICE_DURATION,
975 WARRANTY_VENDOR_ID,
976 MAX_WARRANTY_AMOUNT,
977 RESPONSE_TIME_PERIOD_CODE,
978 RESPONSE_TIME_VALUE,
979 NEW_REVISION_CODE,
980 INVOICEABLE_ITEM_FLAG,
981 TAX_CODE,
982 INVOICE_ENABLED_FLAG,
983 MUST_USE_APPROVED_VENDOR_FLAG,
984 REQUEST_ID,
985 PROGRAM_APPLICATION_ID,
986 PROGRAM_ID,
987 PROGRAM_UPDATE_DATE,
988 OUTSIDE_OPERATION_FLAG,
989 OUTSIDE_OPERATION_UOM_TYPE,
990 SAFETY_STOCK_BUCKET_DAYS,
991 AUTO_REDUCE_MPS,
992 COSTING_ENABLED_FLAG,
993 CYCLE_COUNT_ENABLED_FLAG,
994 DEMAND_SOURCE_LINE,
995 COPY_ITEM_ID,
996 SET_ID,
997 REVISION,
998 AUTO_CREATED_CONFIG_FLAG,
999 ITEM_TYPE,
1000 MODEL_CONFIG_CLAUSE_NAME,
1001 SHIP_MODEL_COMPLETE_FLAG,
1002 MRP_PLANNING_CODE,
1003 RETURN_INSPECTION_REQUIREMENT,
1004 DEMAND_SOURCE_TYPE,
1005 DEMAND_SOURCE_HEADER_ID,
1006 TRANSACTION_ID,
1007 PROCESS_FLAG,
1008 ORGANIZATION_CODE,
1009 ITEM_NUMBER,
1010 COPY_ITEM_NUMBER,
1011 TEMPLATE_ID,
1012 TEMPLATE_NAME,
1013 COPY_ORGANIZATION_ID,
1014 COPY_ORGANIZATION_CODE,
1015 ATO_FORECAST_CONTROL,
1016 TRANSACTION_TYPE,
1017 MATERIAL_COST,
1018 MATERIAL_SUB_ELEM,
1019 MATERIAL_OH_RATE,
1020 MATERIAL_OH_SUB_ELEM,
1021 MATERIAL_SUB_ELEM_ID,
1022 MATERIAL_OH_SUB_ELEM_ID,
1023 RELEASE_TIME_FENCE_CODE,
1024 RELEASE_TIME_FENCE_DAYS,
1025 CONTAINER_ITEM_FLAG,
1026 VEHICLE_ITEM_FLAG,
1027 MAXIMUM_LOAD_WEIGHT,
1028 MINIMUM_FILL_PERCENT,
1029 CONTAINER_TYPE_CODE,
1030 INTERNAL_VOLUME,
1031 SET_PROCESS_ID
1032 from MTL_SYSTEM_ITEMS_INTERFACE
1033 where process_flag = 1
1034 and set_process_id = xset_id
1035 and ((organization_id = org_id) or (all_org = 1));
1036
1037 ret_code NUMBER := 1;
1038 error_text VARCHAR2(250);
1039 dumm_status NUMBER;
1040 status_code NUMBER;
1041 t_organization_id NUMBER;
1042 t_inventory_item_id NUMBER;
1043 t_trans_id NUMBER;
1044 INVALID_TEMPLATE_ERR EXCEPTION;
1045 ASS_ITEM_ERR EXCEPTION;
1046 ORG_TEMPLATE_ERR EXCEPTION;
1047 PARSE_ITEM_ERR EXCEPTION;
1048 l_inv_debug_level NUMBER := INVPUTLI.get_debug_level; --Bug: 4667452
1049
1050 BEGIN -- {
1051
1052 IF l_inv_debug_level IN(101, 102) THEN
1053 INVPUTLI.info('INVUPD1B: Inside chk_exist_copy_template_attr'|| '***orgid: ' || TO_CHAR(org_id));
1054 END IF;
1055
1056 status_code := INVUPD1B.check_inv_item_id(
1057 org_id,
1058 all_org,
1059 prog_appid,
1060 prog_id,
1061 request_id,
1062 user_id,
1063 login_id,
1064 err_text,
1065 xset_id);
1066
1067 for rec in C_msii_records loop -- {
1068 BEGIN -- {
1069 t_organization_id := rec.organization_id;
1070 t_inventory_item_id := rec.inventory_item_id;
1071 t_trans_id := rec.transaction_id;
1072
1073 if (rec.item_number is not NULL) then -- {
1074 error_text := NULL;
1075 ret_code := INVPUOPI.mtl_pr_parse_item_number(
1076 rec.item_number,
1077 rec.inventory_item_id,
1078 rec.transaction_id,
1079 rec.organization_id,
1080 error_text,
1081 rec.rowid);
1082 if (ret_code < 0) then -- {
1083 raise PARSE_ITEM_ERR;
1084 end if; -- }
1085 end if; -- }
1086
1087 if ( INVUPD1B.exists_in_msi(
1088 rec.ROWID,
1089 t_organization_id,
1090 t_inventory_item_id,
1091 prog_appid,
1092 prog_id,
1093 request_id,
1094 user_id,
1095 login_id,
1096 t_trans_id,
1097 err_text,
1098 xset_id) = 1 )
1099 then
1100 rec.inventory_item_id := t_inventory_item_id;
1101 else
1102 -- flag error that record does not exist in msi
1103 --Bug: 4937990
1104 -- Changed the error message
1105 dumm_status := INVPUOPI.mtl_log_interface_err(
1106 t_organization_id,
1107 user_id,
1108 login_id,
1109 prog_appid,
1110 prog_id,
1111 request_id,
1112 t_trans_id,
1113 error_text,
1114 null,
1115 'MTL_SYSTEM_ITEMS_INTERFACE',
1116 'INV_ORGITEM_ID_NOT_FOUND',
1117 err_text);
1118 dumm_status := INVUPD2B.set_process_flag3(rec.ROWID,user_id,login_id,prog_appid,prog_id,request_id);
1119 end if;
1120 EXCEPTION
1121 -- if an oracle error occurred
1122 when ASS_ITEM_ERR then
1123 dumm_status := INVPUOPI.mtl_log_interface_err(
1124 t_organization_id,
1125 user_id,
1126 login_id,
1127 prog_appid,
1128 prog_id,
1129 request_id,
1130 t_trans_id,
1131 error_text,
1132 null,
1133 'MTL_SYSTEM_ITEMS_INTERFACE',
1134 'INV_TEMPLATE_ERROR',
1135 err_text);
1136 dumm_status := INVUPD2B.set_process_flag3(rec.ROWID,user_id,login_id,prog_appid,prog_id,request_id);
1137 status_code := 1;
1138
1139 when PARSE_ITEM_ERR then
1140 dumm_status := INVPUOPI.mtl_log_interface_err(
1141 t_organization_id,
1142 user_id,
1143 login_id,
1144 prog_appid,
1145 prog_id,
1146 request_id,
1147 t_trans_id,
1148 error_text,
1149 'ITEM_NUMBER',
1150 'MTL_SYSTEM_ITEMS_INTERFACE',
1151 'INV_PARSE_ITEM_ERROR',
1152 err_text);
1153 dumm_status := INVUPD2B.set_process_flag3(rec.ROWID,user_id,login_id,prog_appid,prog_id,request_id);
1154 END;
1155 end loop; -- msii loop
1156
1157 -- IOI Perf improvements..apply mass template.
1158 IF (INSTR(INV_EGO_REVISION_VALIDATE.Get_Process_Control,'PLM_UI:Y') = 0) THEN
1159 status_code := INVPULI2.copy_template_attributes(
1160 org_id
1161 ,all_org
1162 ,prog_appid
1163 ,prog_id
1164 ,request_id
1165 ,user_id
1166 ,login_id
1167 ,xset_id
1168 ,err_text);
1169 END IF;
1170
1171 return (status_code);
1172
1173 EXCEPTION
1174
1175 when OTHERS then
1176 IF l_inv_debug_level IN(101, 102) THEN
1177 INVPUTLI.info('when OTHERS exception raised in chk_exist_copy_template_attr');
1178 END IF;
1179 return (1);
1180
1181 END chk_exist_copy_template_attr; -- }
1182
1183
1184 FUNCTION check_inv_item_id
1185 (
1186 org_id NUMBER,
1187 all_org NUMBER := 2,
1188 prog_appid NUMBER := -1,
1189 prog_id NUMBER := -1,
1190 request_id NUMBER := -1,
1191 user_id NUMBER := -1,
1192 login_id NUMBER := -1,
1193 err_text IN OUT NOCOPY VARCHAR2,
1194 xset_id IN NUMBER DEFAULT -999
1195 )
1196 return INTEGER
1197 IS
1198 CURSOR C_inv_item_id_records is
1199 select process_flag, organization_id, transaction_id
1200 from MTL_SYSTEM_ITEMS_INTERFACE MSII
1201 where MSII.inventory_item_id is not NULL
1202 and MSII.set_process_id = xset_id
1203 and MSII.process_flag = 1
1204 and not exists
1205 (select inventory_item_id
1206 from MTL_SYSTEM_ITEMS_B MSI
1207 where MSII.inventory_item_id = MSI.inventory_item_id
1208 and MSII.organization_id = MSI.organization_id)
1209 for update;
1210
1211 error_text VARCHAR2(250);
1212 l_process_flag_3 NUMBER := 3;
1213 dumm_status NUMBER;
1214 ret_code NUMBER := 0;
1215 l_inv_debug_level NUMBER := INVPUTLI.get_debug_level; --Bug: 4667452
1216
1217 BEGIN -- {
1218
1219 IF l_inv_debug_level IN(101, 102) THEN
1220 INVPUTLI.info('INVUPD1B: Inside check_inv_item_id'|| '***orgid: ' || TO_CHAR(org_id));
1221 END IF;
1222
1223 for rec in C_inv_item_id_records loop -- {
1224
1225 dumm_status := INVPUOPI.mtl_log_interface_err(
1226 rec.organization_id,
1227 user_id,
1228 login_id,
1229 prog_appid,
1230 prog_id,
1231 request_id,
1232 rec.transaction_id,
1233 error_text,
1234 'INVENTORY_ITEM_ID',
1235 'MTL_SYSTEM_ITEMS_INTERFACE',
1236 'INV_INV_ITEM_ID_NOEXIST_ERROR',
1237 err_text);
1238
1239 update MTL_SYSTEM_ITEMS_INTERFACE
1240 set process_flag = l_process_flag_3
1241 where current of C_inv_item_id_records;
1242 ret_code := 1;
1243
1244 end loop; -- }
1245
1246 /* commit for debugging ONLY */
1247 -- commit;
1248
1249 return (ret_code);
1250
1251 EXCEPTION
1252
1253 when OTHERS then
1254 IF l_inv_debug_level IN(101, 102) THEN
1255 INVPUTLI.info('when OTHERS exception raised in check_inv_item_id');
1256 END IF;
1257 return (1);
1258
1259 END check_inv_item_id; -- }
1260
1261
1262 FUNCTION exists_in_msi
1263 (
1264 row_id ROWID,
1265 org_id NUMBER,
1266 inv_item_id IN OUT NOCOPY NUMBER,
1267 prog_appid NUMBER := -1,
1268 prog_id NUMBER := -1,
1269 request_id NUMBER := -1,
1270 user_id NUMBER := -1,
1271 login_id NUMBER := -1,
1272 trans_id NUMBER,
1273 err_text IN OUT NOCOPY VARCHAR2,
1274 xset_id IN NUMBER DEFAULT NULL
1275 )
1276 return INTEGER
1277 IS
1278 tmp_orgid NUMBER;
1279 error_text VARCHAR2(250);
1280 dumm_status NUMBER;
1281
1282 -- Dynamic SQL vars
1283 DSQL_inventory_item_id NUMBER;
1284 DSQL_statement VARCHAR2(3000);
1285 DSQL_c INTEGER; -- pointer to dynamic SQL cursor
1286 DSQL_rows_processed INTEGER;
1287 statement_temp VARCHAR2(2000);
1288 err_temp VARCHAR2(1000);
1289 transaction_id_bind INTEGER;
1290 dummy_ret_code NUMBER;
1291
1292 l_inv_debug_level NUMBER := INVPUTLI.get_debug_level; --Bug: 4667452
1293
1294 BEGIN -- {
1295
1296 IF l_inv_debug_level IN(101, 102) THEN
1297 INVPUTLI.info('INVUPD1B: Inside exists_in_msi'|| '***orgid: ' || TO_CHAR(org_id));
1298 END IF;
1299
1300 if inv_item_id is null then -- {
1301
1302 dummy_ret_code := INVPUTLI.get_dynamic_sql_str(1, statement_temp, err_temp);
1303 DSQL_statement := 'select msi.inventory_item_id
1304 from mtl_system_items_B msi,
1305 mtl_system_items_interface msii
1306 where msii.rowid = :row_id_bind
1307 AND msi.organization_id = msii.organization_id
1308 and ' || statement_temp;
1309 DSQL_c := dbms_sql.open_cursor;
1310 dbms_sql.parse(DSQL_c, DSQL_statement, dbms_sql.native);
1311 dbms_sql.define_column(DSQL_c,1,DSQL_inventory_item_id);
1312 dbms_sql.bind_variable(DSQL_c, 'row_id_bind', row_id);
1313 DSQL_rows_processed := dbms_sql.execute(DSQL_c);
1314 --
1315 if dbms_sql.fetch_rows(DSQL_c) > 0 then -- {
1316 dbms_sql.column_value(DSQL_c,1,DSQL_inventory_item_id);
1317 --
1318 update MTL_SYSTEM_ITEMS_INTERFACE
1319 set inventory_item_id = DSQL_inventory_item_id
1320 where rowid = row_id;
1321 --
1322 inv_item_id := DSQL_inventory_item_id;
1323 dbms_sql.close_cursor(DSQL_c);
1324 else -- } {
1325 dbms_sql.close_cursor(DSQL_c);
1326 --
1327 return (0);
1328 end if; -- }
1329
1330 end if; -- }
1331
1332 select organization_id
1333 into tmp_orgid
1334 from MTL_SYSTEM_ITEMS_B
1335 where organization_id = org_id
1336 and inventory_item_id = inv_item_id;
1337
1338 return (1);
1339
1340 EXCEPTION
1341
1342 when NO_DATA_FOUND then
1343 -- orgid inv_item_id combination does not exist in msi
1344 return 0;
1345
1346 when OTHERS then
1347 IF l_inv_debug_level IN(101, 102) THEN
1348 INVPUTLI.info('when OTHERS exception raised in exists_in_msi');
1349 END IF;
1350
1351 if dbms_sql.is_open(DSQL_c) then -- {
1352 dbms_sql.close_cursor(DSQL_c);
1353 end if; -- }
1354
1355 dumm_status := INVPUOPI.mtl_log_interface_err(
1356 org_id,
1357 user_id,
1358 login_id,
1359 prog_appid,
1360 prog_id,
1361 request_id,
1362 trans_id,
1363 error_text,
1364 null,
1365 'MTL_SYSTEM_ITEMS_INTERFACE',
1366 'INV_DYN_SQL_ERROR',
1367 err_text);
1368
1369 dumm_status := INVUPD2B.set_process_flag3 (row_id,user_id,login_id,prog_appid,prog_id,request_id);
1370
1371 return (0);
1372
1373 END exists_in_msi; -- }
1374
1375
1376 FUNCTION exists_onhand_quantities
1377 (
1378 org_id NUMBER,
1379 inv_item_id NUMBER
1380 )
1381 return INTEGER
1382 IS
1383 tmp_org_id NUMBER;
1384 l_inv_debug_level NUMBER := INVPUTLI.get_debug_level; --Bug: 4667452
1385 BEGIN -- {
1386
1387 IF l_inv_debug_level IN(101, 102) THEN
1388 INVPUTLI.info('INVUPD1B: Inside exists_onhand_quantities'|| '***orgid: ' || TO_CHAR(org_id));
1389 END IF;
1390
1391
1392
1393 select organization_id
1394 into tmp_org_id
1395 from MTL_ONHAND_QUANTITIES_DETAIL MOQ -- Bug:2687570
1396 where MOQ.ORGANIZATION_ID = org_id
1397 AND MOQ.INVENTORY_ITEM_ID = inv_item_id;
1398
1399 return (1);
1400
1401 EXCEPTION
1402
1403 when NO_DATA_FOUND then
1404 return (0);
1405
1406 when TOO_MANY_ROWS then
1407 return (1);
1408
1409 when OTHERS then
1410 IF l_inv_debug_level IN(101, 102) THEN
1411 INVPUTLI.info('when OTHERS exception raised in exists_onhand_quantities');
1412 END IF;
1413 return (0);
1414
1415 END exists_onhand_quantities; -- }
1416
1417
1418 FUNCTION exists_onhand_child_qties
1419 (
1420 org_id NUMBER,
1421 inv_item_id NUMBER
1422 )
1423 return INTEGER
1424 IS
1425 -- child records in msi of master org_id
1426 CURSOR C_child_msi_records IS
1427 select
1428 MSI.INVENTORY_ITEM_ID,
1429 MSI.ORGANIZATION_ID
1430 from MTL_SYSTEM_ITEMS_B MSI, MTL_PARAMETERS MP
1431 where MP.master_organization_id = org_id
1432 and MP.organization_id = MSI.organization_id
1433 and MSI.inventory_item_id = inv_item_id
1434 and MSI.organization_id <> MP.master_organization_id;
1435
1436 tmp_org_id NUMBER;
1437 status NUMBER := 0;
1438
1439 l_inv_debug_level NUMBER := INVPUTLI.get_debug_level; --Bug: 4667452
1440
1441 BEGIN -- {
1442
1443 IF l_inv_debug_level IN(101, 102) THEN
1444 INVPUTLI.info('INVUPD1B: Inside exists_onhand_child_qties'|| '***orgid: ' || TO_CHAR(org_id));
1445 END IF;
1446 -- if record is a master record
1447 select organization_id
1448 into tmp_org_id
1449 from MTL_PARAMETERS MP
1450 where MP.organization_id = org_id
1451 AND MP.master_organization_id = org_id;
1452
1453 for rec in C_child_msi_records loop -- {
1454
1455 status := INVUPD1B.exists_onhand_quantities(rec.INVENTORY_ITEM_ID, rec.ORGANIZATION_ID);
1456 exit when status = 1;
1457
1458 end loop; -- }
1459
1460 return status;
1461
1462 -- if exists_onhand_quantities
1463 -- return (1)
1464 -- else
1465 -- return (0) [default]
1466
1467 EXCEPTION
1468
1469 when NO_DATA_FOUND then -- record is not a master record
1470 return (0);
1471
1472 when OTHERS then
1473 IF l_inv_debug_level IN(101, 102) THEN
1474 INVPUTLI.info('when OTHERS exception raised in exists_onhand_child_qties');
1475 END IF;
1476 return (0);
1477
1478 END exists_onhand_child_qties; -- }
1479
1480
1481 FUNCTION copy_msi_to_msii(
1482 row_id ROWID,
1483 org_id NUMBER,
1484 inv_item_id NUMBER) return INTEGER IS
1485
1486 CURSOR c_trade_item_default
1487 IS
1488 SELECT default_value FROM FND_DESCR_FLEX_COLUMN_USAGES
1489 WHERE application_id = 431
1490 AND DESCRIPTIVE_FLEXFIELD_NAME = 'EGO_MASTER_ITEMS'
1491 AND DESCRIPTIVE_FLEX_CONTEXT_CODE = 'Main'
1492 AND END_USER_COLUMN_NAME = 'Trade_Item_Descriptor';
1493
1494 msi_record_temp MTL_SYSTEM_ITEMS_VL%ROWTYPE;
1495 msii_temp_data MTL_SYSTEM_ITEMS_INTERFACE%ROWTYPE;
1496 l_process_flag_2 NUMBER := 2;
1497 l_inv_debug_level NUMBER := INVPUTLI.get_debug_level; --Bug: 4667452
1498
1499 BEGIN -- {
1500
1501 IF l_inv_debug_level IN(101, 102) THEN
1502 INVPUTLI.info('INVUPD1B: Inside copy_msi_to_msii'|| '***orgid: ' || TO_CHAR(org_id));
1503 END IF;
1504
1505 SELECT * INTO msi_record_temp
1506 FROM MTL_SYSTEM_ITEMS_VL MSI
1507 WHERE MSI.organization_id = org_id
1508 AND MSI.inventory_item_id = inv_item_id;
1509
1510 SELECT * INTO msii_temp_data
1511 FROM MTL_SYSTEM_ITEMS_INTERFACE msii
1512 WHERE MSII.ROWID = ROW_ID;
1513
1514 -- Start 5565453 : Perf issue reducing the shared memory
1515 IF msii_temp_data.DAYS_MAX_INV_WINDOW IS NULL THEN
1516 msii_temp_data.DAYS_MAX_INV_WINDOW := msi_record_temp.DAYS_MAX_INV_WINDOW;
1517 ELSIF msii_temp_data.DAYS_MAX_INV_WINDOW = g_Upd_Null_NUM THEN
1518 msii_temp_data.DAYS_MAX_INV_WINDOW := NULL;
1519 ELSIF msii_temp_data.DAYS_MAX_INV_WINDOW = g_FND_Upd_Null_NUM THEN
1520 msii_temp_data.DAYS_MAX_INV_WINDOW := NULL;
1521 END IF;
1522 IF msii_temp_data.DRP_PLANNED_FLAG IS NULL THEN
1523 msii_temp_data.DRP_PLANNED_FLAG := msi_record_temp.DRP_PLANNED_FLAG;
1524 ELSIF msii_temp_data.DRP_PLANNED_FLAG = g_Upd_Null_NUM THEN
1525 msii_temp_data.DRP_PLANNED_FLAG := NULL;
1526 ELSIF msii_temp_data.DRP_PLANNED_FLAG = g_FND_Upd_Null_NUM THEN
1527 msii_temp_data.DRP_PLANNED_FLAG := NULL;
1528 END IF;
1529 IF msii_temp_data.CRITICAL_COMPONENT_FLAG IS NULL THEN
1530 msii_temp_data.CRITICAL_COMPONENT_FLAG := msi_record_temp.CRITICAL_COMPONENT_FLAG;
1531 ELSIF msii_temp_data.CRITICAL_COMPONENT_FLAG = g_Upd_Null_NUM THEN
1532 msii_temp_data.CRITICAL_COMPONENT_FLAG := NULL;
1533 ELSIF msii_temp_data.CRITICAL_COMPONENT_FLAG = g_FND_Upd_Null_NUM THEN
1534 msii_temp_data.CRITICAL_COMPONENT_FLAG := NULL;
1535 END IF;
1536 IF msii_temp_data.CONTINOUS_TRANSFER IS NULL THEN
1537 msii_temp_data.CONTINOUS_TRANSFER := msi_record_temp.CONTINOUS_TRANSFER;
1538 ELSIF msii_temp_data.CONTINOUS_TRANSFER = g_Upd_Null_NUM THEN
1539 msii_temp_data.CONTINOUS_TRANSFER := NULL;
1540 ELSIF msii_temp_data.CONTINOUS_TRANSFER = g_FND_Upd_Null_NUM THEN
1541 msii_temp_data.CONTINOUS_TRANSFER := NULL;
1542 END IF;
1543 IF msii_temp_data.CONVERGENCE IS NULL THEN
1544 msii_temp_data.CONVERGENCE := msi_record_temp.CONVERGENCE;
1545 ELSIF msii_temp_data.CONVERGENCE = g_Upd_Null_NUM THEN
1546 msii_temp_data.CONVERGENCE := NULL;
1547 ELSIF msii_temp_data.CONVERGENCE = g_FND_Upd_Null_NUM THEN
1548 msii_temp_data.CONVERGENCE := NULL;
1549 END IF;
1550 IF msii_temp_data.DIVERGENCE IS NULL THEN
1551 msii_temp_data.DIVERGENCE := msi_record_temp.DIVERGENCE;
1552 ELSIF msii_temp_data.DIVERGENCE = g_Upd_Null_NUM THEN
1553 msii_temp_data.DIVERGENCE := NULL;
1554 ELSIF msii_temp_data.DIVERGENCE = g_FND_Upd_Null_NUM THEN
1555 msii_temp_data.DIVERGENCE := NULL;
1556 END IF;
1557 IF msii_temp_data.LOT_DIVISIBLE_FLAG is null then
1558 msii_temp_data.LOT_DIVISIBLE_FLAG := msi_record_temp.LOT_DIVISIBLE_FLAG;
1559 END IF;
1560 IF msii_temp_data.GRADE_CONTROL_FLAG is null then
1561 msii_temp_data.GRADE_CONTROL_FLAG := msi_record_temp.GRADE_CONTROL_FLAG;
1562 END IF;
1563 IF msii_temp_data.CHILD_LOT_FLAG is null then
1564 msii_temp_data.CHILD_LOT_FLAG := msi_record_temp.CHILD_LOT_FLAG;
1565 END IF;
1566 IF msii_temp_data.PARENT_CHILD_GENERATION_FLAG is null then
1567 msii_temp_data.PARENT_CHILD_GENERATION_FLAG := msi_record_temp.PARENT_CHILD_GENERATION_FLAG;
1568 END IF;
1569 IF msii_temp_data.CHILD_LOT_STARTING_NUMBER IS NULL THEN
1570 msii_temp_data.CHILD_LOT_STARTING_NUMBER := msi_record_temp.CHILD_LOT_STARTING_NUMBER;
1571 ELSIF msii_temp_data.CHILD_LOT_STARTING_NUMBER = '!' THEN
1572 msii_temp_data.CHILD_LOT_STARTING_NUMBER := NULL;
1573 ELSIF msii_temp_data.CHILD_LOT_STARTING_NUMBER = g_FND_Upd_Null_Char THEN
1574 msii_temp_data.CHILD_LOT_STARTING_NUMBER := NULL;
1575 END IF;
1576 IF msii_temp_data.CHILD_LOT_VALIDATION_FLAG is null then
1577 msii_temp_data.CHILD_LOT_VALIDATION_FLAG := msi_record_temp.CHILD_LOT_VALIDATION_FLAG;
1578 END IF;
1579 IF msii_temp_data.PROCESS_QUALITY_ENABLED_FLAG is null then
1580 msii_temp_data.PROCESS_QUALITY_ENABLED_FLAG := msi_record_temp.PROCESS_QUALITY_ENABLED_FLAG;
1581 END IF;
1582 IF msii_temp_data.PROCESS_SUPPLY_SUBINVENTORY IS NULL THEN
1583 msii_temp_data.PROCESS_SUPPLY_SUBINVENTORY := msi_record_temp.PROCESS_SUPPLY_SUBINVENTORY;
1584 ELSIF msii_temp_data.PROCESS_SUPPLY_SUBINVENTORY = '!' THEN
1585 msii_temp_data.PROCESS_SUPPLY_SUBINVENTORY := NULL;
1586 ELSIF msii_temp_data.PROCESS_SUPPLY_SUBINVENTORY = g_FND_Upd_Null_Char THEN
1587 msii_temp_data.PROCESS_SUPPLY_SUBINVENTORY := NULL;
1588 END IF;
1589 IF msii_temp_data.PROCESS_YIELD_SUBINVENTORY IS NULL THEN
1590 msii_temp_data.PROCESS_YIELD_SUBINVENTORY := msi_record_temp.PROCESS_YIELD_SUBINVENTORY;
1591 ELSIF msii_temp_data.PROCESS_YIELD_SUBINVENTORY = '!' THEN
1592 msii_temp_data.PROCESS_YIELD_SUBINVENTORY := NULL;
1593 ELSIF msii_temp_data.PROCESS_YIELD_SUBINVENTORY = g_FND_Upd_Null_Char THEN
1594 msii_temp_data.PROCESS_YIELD_SUBINVENTORY := NULL;
1595 END IF;
1596 IF msii_temp_data.HAZARDOUS_MATERIAL_FLAG is null then
1597 msii_temp_data.HAZARDOUS_MATERIAL_FLAG := msi_record_temp.HAZARDOUS_MATERIAL_FLAG;
1598 END IF;
1599 IF msii_temp_data.CAS_NUMBER IS NULL THEN
1600 msii_temp_data.CAS_NUMBER := msi_record_temp.CAS_NUMBER;
1601 ELSIF msii_temp_data.CAS_NUMBER = '!' THEN
1602 msii_temp_data.CAS_NUMBER := NULL;
1603 ELSIF msii_temp_data.CAS_NUMBER = g_FND_Upd_Null_Char THEN
1604 msii_temp_data.CAS_NUMBER := NULL;
1605 END IF;
1606 IF msii_temp_data.EXPIRATION_ACTION_INTERVAL IS NULL THEN
1607 msii_temp_data.EXPIRATION_ACTION_INTERVAL := msi_record_temp.EXPIRATION_ACTION_INTERVAL;
1608 ELSIF msii_temp_data.EXPIRATION_ACTION_INTERVAL = -999999 THEN
1609 msii_temp_data.EXPIRATION_ACTION_INTERVAL := NULL;
1610 ELSIF msii_temp_data.EXPIRATION_ACTION_INTERVAL = g_FND_Upd_Null_NUM THEN
1611 msii_temp_data.EXPIRATION_ACTION_INTERVAL := NULL;
1612 END IF;
1613 IF msii_temp_data.EXPIRATION_ACTION_CODE is null then
1614 msii_temp_data.EXPIRATION_ACTION_CODE := msi_record_temp.EXPIRATION_ACTION_CODE;
1615 END IF;
1616 IF msii_temp_data.HOLD_DAYS IS NULL THEN
1617 msii_temp_data.HOLD_DAYS := msi_record_temp.HOLD_DAYS;
1618 ELSIF msii_temp_data.HOLD_DAYS = -999999 THEN
1619 msii_temp_data.HOLD_DAYS := NULL;
1620 ELSIF msii_temp_data.HOLD_DAYS = g_FND_Upd_Null_NUM THEN
1621 msii_temp_data.HOLD_DAYS := NULL;
1622 END IF;
1623 IF msii_temp_data.REPAIR_LEADTIME IS NULL THEN
1624 msii_temp_data.REPAIR_LEADTIME := msi_record_temp.REPAIR_LEADTIME;
1625 ELSIF msii_temp_data.REPAIR_LEADTIME = -999999 THEN
1626 msii_temp_data.REPAIR_LEADTIME := NULL;
1627 ELSIF msii_temp_data.REPAIR_LEADTIME = g_FND_Upd_Null_NUM THEN
1628 msii_temp_data.REPAIR_LEADTIME := NULL;
1629 END IF;
1630 IF msii_temp_data.REPAIR_YIELD IS NULL THEN
1631 msii_temp_data.REPAIR_YIELD := msi_record_temp.REPAIR_YIELD;
1632 ELSIF msii_temp_data.REPAIR_YIELD = -999999 THEN
1633 msii_temp_data.REPAIR_YIELD := NULL;
1634 ELSIF msii_temp_data.REPAIR_YIELD = g_FND_Upd_Null_NUM THEN
1635 msii_temp_data.REPAIR_YIELD := NULL;
1636 END IF;
1637 IF msii_temp_data.REPAIR_PROGRAM IS NULL THEN
1638 msii_temp_data.REPAIR_PROGRAM := msi_record_temp.REPAIR_PROGRAM;
1639 ELSIF msii_temp_data.REPAIR_PROGRAM = -999999 THEN
1640 msii_temp_data.REPAIR_PROGRAM := NULL;
1641 ELSIF msii_temp_data.REPAIR_PROGRAM = g_FND_Upd_Null_NUM THEN
1642 msii_temp_data.REPAIR_PROGRAM := NULL;
1643 END IF;
1644 IF msii_temp_data.OUTSOURCED_ASSEMBLY IS NULL THEN
1645 msii_temp_data.OUTSOURCED_ASSEMBLY := msi_record_temp.OUTSOURCED_ASSEMBLY;
1646 ELSIF msii_temp_data.OUTSOURCED_ASSEMBLY = -999999 THEN
1647 msii_temp_data.OUTSOURCED_ASSEMBLY := NULL;
1648 ELSIF msii_temp_data.OUTSOURCED_ASSEMBLY = g_FND_Upd_Null_NUM THEN
1649 msii_temp_data.OUTSOURCED_ASSEMBLY := NULL;
1650 END IF;
1651 IF trim(msii_temp_data.RFQ_REQUIRED_FLAG) is null then
1652 msii_temp_data.RFQ_REQUIRED_FLAG := msi_record_temp.RFQ_REQUIRED_FLAG;
1653 ELSE
1654 msii_temp_data.RFQ_REQUIRED_FLAG := trim(msii_temp_data.RFQ_REQUIRED_FLAG);
1655 END IF;
1656 IF msii_temp_data.MIN_MINMAX_QUANTITY IS NULL THEN
1657 msii_temp_data.MIN_MINMAX_QUANTITY := msi_record_temp.MIN_MINMAX_QUANTITY;
1658 ELSIF msii_temp_data.MIN_MINMAX_QUANTITY = -999999 THEN
1659 msii_temp_data.MIN_MINMAX_QUANTITY := NULL;
1660 ELSIF msii_temp_data.MIN_MINMAX_QUANTITY = g_FND_Upd_Null_NUM THEN
1661 msii_temp_data.MIN_MINMAX_QUANTITY := NULL;
1662 END IF;
1663 IF msii_temp_data.PROGRAM_APPLICATION_ID is null then
1664 msii_temp_data.PROGRAM_APPLICATION_ID := msi_record_temp.PROGRAM_APPLICATION_ID;
1665 END IF;
1666 IF msii_temp_data.DEFAULT_SERIAL_STATUS_ID IS NULL THEN
1667 msii_temp_data.DEFAULT_SERIAL_STATUS_ID := msi_record_temp.DEFAULT_SERIAL_STATUS_ID;
1668 ELSIF msii_temp_data.DEFAULT_SERIAL_STATUS_ID = g_Upd_Null_NUM THEN
1669 msii_temp_data.DEFAULT_SERIAL_STATUS_ID := NULL;
1670 ELSIF msii_temp_data.DEFAULT_SERIAL_STATUS_ID = g_FND_Upd_Null_NUM THEN
1671 msii_temp_data.DEFAULT_SERIAL_STATUS_ID := NULL;
1672 END IF;
1673 IF msii_temp_data.ASN_AUTOEXPIRE_FLAG IS NULL THEN
1674 msii_temp_data.ASN_AUTOEXPIRE_FLAG := msi_record_temp.ASN_AUTOEXPIRE_FLAG;
1675 ELSIF msii_temp_data.ASN_AUTOEXPIRE_FLAG = g_Upd_Null_NUM THEN
1676 msii_temp_data.ASN_AUTOEXPIRE_FLAG := NULL;
1677 ELSIF msii_temp_data.ASN_AUTOEXPIRE_FLAG = g_FND_Upd_Null_NUM THEN
1678 msii_temp_data.ASN_AUTOEXPIRE_FLAG := NULL;
1679 END IF;
1680 IF msii_temp_data.DEFAULT_GRADE IS NULL THEN
1681 msii_temp_data.DEFAULT_GRADE := msi_record_temp.DEFAULT_GRADE;
1682 ELSIF msii_temp_data.DEFAULT_GRADE = '!' THEN
1683 msii_temp_data.DEFAULT_GRADE := NULL;
1684 ELSIF msii_temp_data.DEFAULT_GRADE = g_FND_Upd_Null_Char THEN
1685 msii_temp_data.DEFAULT_GRADE := NULL;
1686 END IF;
1687 IF msii_temp_data.CHILD_LOT_PREFIX IS NULL THEN
1688 msii_temp_data.CHILD_LOT_PREFIX := msi_record_temp.CHILD_LOT_PREFIX;
1689 ELSIF msii_temp_data.CHILD_LOT_PREFIX = '!' THEN
1690 msii_temp_data.CHILD_LOT_PREFIX := NULL;
1691 ELSIF msii_temp_data.CHILD_LOT_PREFIX = g_FND_Upd_Null_Char THEN
1692 msii_temp_data.CHILD_LOT_PREFIX := NULL;
1693 END IF;
1694 IF msii_temp_data.COPY_LOT_ATTRIBUTE_FLAG is null then
1695 msii_temp_data.COPY_LOT_ATTRIBUTE_FLAG := msi_record_temp.COPY_LOT_ATTRIBUTE_FLAG;
1696 END IF;
1697 IF msii_temp_data.PROCESS_COSTING_ENABLED_FLAG is null then
1698 msii_temp_data.PROCESS_COSTING_ENABLED_FLAG := msi_record_temp.PROCESS_COSTING_ENABLED_FLAG;
1699 END IF;
1700 IF msii_temp_data.PROCESS_SUPPLY_LOCATOR_ID IS NULL THEN
1701 msii_temp_data.PROCESS_SUPPLY_LOCATOR_ID := msi_record_temp.PROCESS_SUPPLY_LOCATOR_ID;
1702 ELSIF msii_temp_data.PROCESS_SUPPLY_LOCATOR_ID = -999999 THEN
1703 msii_temp_data.PROCESS_SUPPLY_LOCATOR_ID := NULL;
1704 ELSIF msii_temp_data.PROCESS_SUPPLY_LOCATOR_ID = g_FND_Upd_Null_NUM THEN
1705 msii_temp_data.PROCESS_SUPPLY_LOCATOR_ID := NULL;
1706 END IF;
1707 IF msii_temp_data.PROCESS_YIELD_LOCATOR_ID IS NULL THEN
1708 msii_temp_data.PROCESS_YIELD_LOCATOR_ID := msi_record_temp.PROCESS_YIELD_LOCATOR_ID;
1709 ELSIF msii_temp_data.PROCESS_YIELD_LOCATOR_ID = -999999 THEN
1710 msii_temp_data.PROCESS_YIELD_LOCATOR_ID := NULL;
1711 ELSIF msii_temp_data.PROCESS_YIELD_LOCATOR_ID = g_FND_Upd_Null_NUM THEN
1712 msii_temp_data.PROCESS_YIELD_LOCATOR_ID := NULL;
1713 END IF;
1714 IF msii_temp_data.RETEST_INTERVAL IS NULL THEN
1715 msii_temp_data.RETEST_INTERVAL := msi_record_temp.RETEST_INTERVAL;
1716 ELSIF msii_temp_data.RETEST_INTERVAL = -999999 THEN
1717 msii_temp_data.RETEST_INTERVAL := NULL;
1718 ELSIF msii_temp_data.RETEST_INTERVAL = g_FND_Upd_Null_NUM THEN
1719 msii_temp_data.RETEST_INTERVAL := NULL;
1720 END IF;
1721 IF msii_temp_data.MATURITY_DAYS IS NULL THEN
1722 msii_temp_data.MATURITY_DAYS := msi_record_temp.MATURITY_DAYS;
1723 ELSIF msii_temp_data.MATURITY_DAYS = -999999 THEN
1724 msii_temp_data.MATURITY_DAYS := NULL;
1725 ELSIF msii_temp_data.MATURITY_DAYS = g_FND_Upd_Null_NUM THEN
1726 msii_temp_data.MATURITY_DAYS := NULL;
1727 END IF;
1728 IF msii_temp_data.CHARGE_PERIODICITY_CODE IS NULL THEN
1729 msii_temp_data.CHARGE_PERIODICITY_CODE := msi_record_temp.CHARGE_PERIODICITY_CODE;
1730 ELSIF msii_temp_data.CHARGE_PERIODICITY_CODE = '!' THEN
1731 msii_temp_data.CHARGE_PERIODICITY_CODE := NULL;
1732 ELSIF msii_temp_data.CHARGE_PERIODICITY_CODE = g_FND_Upd_Null_Char THEN
1733 msii_temp_data.CHARGE_PERIODICITY_CODE := NULL;
1734 END IF;
1735 IF msii_temp_data.PREPOSITION_POINT IS NULL THEN
1736 msii_temp_data.PREPOSITION_POINT := msi_record_temp.PREPOSITION_POINT;
1737 ELSIF msii_temp_data.PREPOSITION_POINT = '!' THEN
1738 msii_temp_data.PREPOSITION_POINT := NULL;
1739 ELSIF msii_temp_data.PREPOSITION_POINT = g_FND_Upd_Null_Char THEN
1740 msii_temp_data.PREPOSITION_POINT := NULL;
1741 END IF;
1742 IF msii_temp_data.SUBCONTRACTING_COMPONENT IS NULL THEN
1743 msii_temp_data.SUBCONTRACTING_COMPONENT := msi_record_temp.SUBCONTRACTING_COMPONENT;
1744 ELSIF msii_temp_data.SUBCONTRACTING_COMPONENT = -999999 THEN
1745 msii_temp_data.SUBCONTRACTING_COMPONENT := NULL;
1746 ELSIF msii_temp_data.SUBCONTRACTING_COMPONENT = g_FND_Upd_Null_NUM THEN
1747 msii_temp_data.SUBCONTRACTING_COMPONENT := NULL;
1748 END IF;
1749 IF msii_temp_data.DEMAND_TIME_FENCE_CODE IS NULL THEN
1750 msii_temp_data.DEMAND_TIME_FENCE_CODE := msi_record_temp.DEMAND_TIME_FENCE_CODE;
1751 ELSIF msii_temp_data.DEMAND_TIME_FENCE_CODE = -999999 THEN
1752 msii_temp_data.DEMAND_TIME_FENCE_CODE := NULL;
1753 ELSIF msii_temp_data.DEMAND_TIME_FENCE_CODE = g_FND_Upd_Null_NUM THEN
1754 msii_temp_data.DEMAND_TIME_FENCE_CODE := NULL;
1755 END IF;
1756 IF msii_temp_data.SAFETY_STOCK_BUCKET_DAYS IS NULL THEN
1757 msii_temp_data.SAFETY_STOCK_BUCKET_DAYS := msi_record_temp.SAFETY_STOCK_BUCKET_DAYS;
1758 ELSIF msii_temp_data.SAFETY_STOCK_BUCKET_DAYS = -999999 THEN
1759 msii_temp_data.SAFETY_STOCK_BUCKET_DAYS := NULL;
1760 ELSIF msii_temp_data.SAFETY_STOCK_BUCKET_DAYS = g_FND_Upd_Null_NUM THEN
1761 msii_temp_data.SAFETY_STOCK_BUCKET_DAYS := NULL;
1762 END IF;
1763 IF trim(msii_temp_data.DESCRIPTION) is null then
1764 msii_temp_data.DESCRIPTION := msi_record_temp.DESCRIPTION;
1765 ELSE
1766 msii_temp_data.DESCRIPTION := trim(msii_temp_data.DESCRIPTION);
1767 END IF;
1768 IF msii_temp_data.LONG_DESCRIPTION IS NULL THEN
1769 msii_temp_data.LONG_DESCRIPTION := msi_record_temp.LONG_DESCRIPTION;
1770 ELSIF msii_temp_data.LONG_DESCRIPTION = '!' THEN
1771 msii_temp_data.LONG_DESCRIPTION := NULL;
1772 ELSIF msii_temp_data.LONG_DESCRIPTION = g_FND_Upd_Null_Char THEN
1773 msii_temp_data.LONG_DESCRIPTION := NULL;
1774 ELSE
1775 msii_temp_data.LONG_DESCRIPTION := trim(msii_temp_data.LONG_DESCRIPTION);
1776 END IF;
1777 IF msii_temp_data.BUYER_ID IS NULL THEN
1778 msii_temp_data.BUYER_ID := msi_record_temp.BUYER_ID;
1779 ELSIF msii_temp_data.BUYER_ID = -999999 THEN
1780 msii_temp_data.BUYER_ID := NULL;
1781 ELSIF msii_temp_data.BUYER_ID = g_FND_Upd_Null_NUM THEN
1782 msii_temp_data.BUYER_ID := NULL;
1783 END IF;
1784 IF msii_temp_data.INVOICING_RULE_ID IS NULL THEN
1785 msii_temp_data.INVOICING_RULE_ID := msi_record_temp.INVOICING_RULE_ID;
1786 ELSIF msii_temp_data.INVOICING_RULE_ID = -999999 THEN
1787 msii_temp_data.INVOICING_RULE_ID := NULL;
1788 ELSIF msii_temp_data.INVOICING_RULE_ID = g_FND_Upd_Null_NUM THEN
1789 msii_temp_data.INVOICING_RULE_ID := NULL;
1790 END IF;
1791 IF trim(msii_temp_data.SEGMENT6) is null then
1792 msii_temp_data.SEGMENT6 := msi_record_temp.SEGMENT6;
1793 ELSE
1794 msii_temp_data.SEGMENT6 := trim(msii_temp_data.SEGMENT6);
1795 END IF;
1796 IF trim(msii_temp_data.SEGMENT8) is null then
1797 msii_temp_data.SEGMENT8 := msi_record_temp.SEGMENT8;
1798 ELSE
1799 msii_temp_data.SEGMENT8 := trim(msii_temp_data.SEGMENT8);
1800 END IF;
1801 IF trim(msii_temp_data.SEGMENT11) is null then
1802 msii_temp_data.SEGMENT11 := msi_record_temp.SEGMENT11;
1803 ELSE
1804 msii_temp_data.SEGMENT11 := trim(msii_temp_data.SEGMENT11);
1805 END IF;
1806 IF trim(msii_temp_data.SEGMENT14) is null then
1807 msii_temp_data.SEGMENT14 := msi_record_temp.SEGMENT14;
1808 ELSE
1809 msii_temp_data.SEGMENT14 := trim(msii_temp_data.SEGMENT14);
1810 END IF;
1811 IF trim(msii_temp_data.SEGMENT19) is null then
1812 msii_temp_data.SEGMENT19 := msi_record_temp.SEGMENT19;
1813 ELSE
1814 msii_temp_data.SEGMENT19 := trim(msii_temp_data.SEGMENT19);
1815 END IF;
1816 IF msii_temp_data.ATTRIBUTE_CATEGORY IS NULL THEN
1817 msii_temp_data.ATTRIBUTE_CATEGORY := msi_record_temp.ATTRIBUTE_CATEGORY;
1818 ELSIF msii_temp_data.ATTRIBUTE_CATEGORY = '!' THEN
1819 msii_temp_data.ATTRIBUTE_CATEGORY := NULL;
1820 ELSIF msii_temp_data.ATTRIBUTE_CATEGORY = g_FND_Upd_Null_Char THEN
1821 msii_temp_data.ATTRIBUTE_CATEGORY := NULL;
1822 ELSE
1823 msii_temp_data.ATTRIBUTE_CATEGORY := trim(msii_temp_data.ATTRIBUTE_CATEGORY);
1824 END IF;
1825 IF msii_temp_data.ATTRIBUTE3 IS NULL THEN
1826 msii_temp_data.ATTRIBUTE3 := msi_record_temp.ATTRIBUTE3;
1827 ELSIF msii_temp_data.ATTRIBUTE3 = '!' THEN
1828 msii_temp_data.ATTRIBUTE3 := NULL;
1829 ELSIF msii_temp_data.ATTRIBUTE3 = g_FND_Upd_Null_Char THEN
1830 msii_temp_data.ATTRIBUTE3 := NULL;
1831 ELSE
1832 msii_temp_data.ATTRIBUTE3 := trim(msii_temp_data.ATTRIBUTE3);
1833 END IF;
1834 IF msii_temp_data.ATTRIBUTE5 IS NULL THEN
1835 msii_temp_data.ATTRIBUTE5 := msi_record_temp.ATTRIBUTE5;
1836 ELSIF msii_temp_data.ATTRIBUTE5 = '!' THEN
1837 msii_temp_data.ATTRIBUTE5 := NULL;
1838 ELSIF msii_temp_data.ATTRIBUTE5 = g_FND_Upd_Null_Char THEN
1839 msii_temp_data.ATTRIBUTE5 := NULL;
1840 ELSE
1841 msii_temp_data.ATTRIBUTE5 := trim(msii_temp_data.ATTRIBUTE5);
1842 END IF;
1843 IF msii_temp_data.ATTRIBUTE7 IS NULL THEN
1844 msii_temp_data.ATTRIBUTE7 := msi_record_temp.ATTRIBUTE7;
1845 ELSIF msii_temp_data.ATTRIBUTE7 = '!' THEN
1846 msii_temp_data.ATTRIBUTE7 := NULL;
1847 ELSIF msii_temp_data.ATTRIBUTE7 = g_FND_Upd_Null_Char THEN
1848 msii_temp_data.ATTRIBUTE7 := NULL;
1849 ELSE
1850 msii_temp_data.ATTRIBUTE7 := trim(msii_temp_data.ATTRIBUTE7);
1851 END IF;
1852 IF msii_temp_data.ATTRIBUTE10 IS NULL THEN
1853 msii_temp_data.ATTRIBUTE10 := msi_record_temp.ATTRIBUTE10;
1854 ELSIF msii_temp_data.ATTRIBUTE10 = '!' THEN
1855 msii_temp_data.ATTRIBUTE10 := NULL;
1856 ELSIF msii_temp_data.ATTRIBUTE10 = g_FND_Upd_Null_Char THEN
1857 msii_temp_data.ATTRIBUTE10 := NULL;
1858 ELSE
1859 msii_temp_data.ATTRIBUTE10 := trim(msii_temp_data.ATTRIBUTE10);
1860 END IF;
1861 IF msii_temp_data.ATTRIBUTE12 IS NULL THEN
1862 msii_temp_data.ATTRIBUTE12 := msi_record_temp.ATTRIBUTE12;
1863 ELSIF msii_temp_data.ATTRIBUTE12 = '!' THEN
1864 msii_temp_data.ATTRIBUTE12 := NULL;
1865 ELSIF msii_temp_data.ATTRIBUTE12 = g_FND_Upd_Null_Char THEN
1866 msii_temp_data.ATTRIBUTE12 := NULL;
1867 ELSE
1868 msii_temp_data.ATTRIBUTE12 := trim(msii_temp_data.ATTRIBUTE12);
1869 END IF;
1870 IF msii_temp_data.ATTRIBUTE14 IS NULL THEN
1871 msii_temp_data.ATTRIBUTE14 := msi_record_temp.ATTRIBUTE14;
1872 ELSIF msii_temp_data.ATTRIBUTE14 = '!' THEN
1873 msii_temp_data.ATTRIBUTE14 := NULL;
1874 ELSIF msii_temp_data.ATTRIBUTE14 = g_FND_Upd_Null_Char THEN
1875 msii_temp_data.ATTRIBUTE14 := NULL;
1876 ELSE
1877 msii_temp_data.ATTRIBUTE14 := trim(msii_temp_data.ATTRIBUTE14);
1878 END IF;
1879 IF msii_temp_data.ATTRIBUTE17 IS NULL THEN
1880 msii_temp_data.ATTRIBUTE17 := msi_record_temp.ATTRIBUTE17;
1881 ELSIF msii_temp_data.ATTRIBUTE17 = '!' THEN
1882 msii_temp_data.ATTRIBUTE17 := NULL;
1883 ELSIF msii_temp_data.ATTRIBUTE17 = g_FND_Upd_Null_Char THEN
1884 msii_temp_data.ATTRIBUTE17 := NULL;
1885 ELSE
1886 msii_temp_data.ATTRIBUTE17 := trim(msii_temp_data.ATTRIBUTE17);
1887 END IF;
1888 IF msii_temp_data.ATTRIBUTE19 IS NULL THEN
1889 msii_temp_data.ATTRIBUTE19 := msi_record_temp.ATTRIBUTE19;
1890 ELSIF msii_temp_data.ATTRIBUTE19 = '!' THEN
1891 msii_temp_data.ATTRIBUTE19 := NULL;
1892 ELSIF msii_temp_data.ATTRIBUTE19 = g_FND_Upd_Null_Char THEN
1893 msii_temp_data.ATTRIBUTE19 := NULL;
1894 ELSE
1895 msii_temp_data.ATTRIBUTE19 := trim(msii_temp_data.ATTRIBUTE19);
1896 END IF;
1897 IF msii_temp_data.ATTRIBUTE21 IS NULL THEN
1898 msii_temp_data.ATTRIBUTE21 := msi_record_temp.ATTRIBUTE21;
1899 ELSIF msii_temp_data.ATTRIBUTE21 = '!' THEN
1900 msii_temp_data.ATTRIBUTE21 := NULL;
1901 ELSIF msii_temp_data.ATTRIBUTE21 = g_FND_Upd_Null_Char THEN
1902 msii_temp_data.ATTRIBUTE21 := NULL;
1903 ELSE
1904 msii_temp_data.ATTRIBUTE21 := trim(msii_temp_data.ATTRIBUTE21);
1905 END IF;
1906 IF msii_temp_data.ATTRIBUTE24 IS NULL THEN
1907 msii_temp_data.ATTRIBUTE24 := msi_record_temp.ATTRIBUTE24;
1908 ELSIF msii_temp_data.ATTRIBUTE24 = '!' THEN
1909 msii_temp_data.ATTRIBUTE24 := NULL;
1910 ELSIF msii_temp_data.ATTRIBUTE24 = g_FND_Upd_Null_Char THEN
1911 msii_temp_data.ATTRIBUTE24 := NULL;
1912 ELSE
1913 msii_temp_data.ATTRIBUTE24 := trim(msii_temp_data.ATTRIBUTE24);
1914 END IF;
1915 IF msii_temp_data.ATTRIBUTE26 IS NULL THEN
1916 msii_temp_data.ATTRIBUTE26 := msi_record_temp.ATTRIBUTE26;
1917 ELSIF msii_temp_data.ATTRIBUTE26 = '!' THEN
1918 msii_temp_data.ATTRIBUTE26 := NULL;
1919 ELSIF msii_temp_data.ATTRIBUTE26 = g_FND_Upd_Null_Char THEN
1920 msii_temp_data.ATTRIBUTE26 := NULL;
1921 ELSE
1922 msii_temp_data.ATTRIBUTE26 := trim(msii_temp_data.ATTRIBUTE26);
1923 END IF;
1924 IF msii_temp_data.ATTRIBUTE28 IS NULL THEN
1925 msii_temp_data.ATTRIBUTE28 := msi_record_temp.ATTRIBUTE28;
1926 ELSIF msii_temp_data.ATTRIBUTE28 = '!' THEN
1927 msii_temp_data.ATTRIBUTE28 := NULL;
1928 ELSIF msii_temp_data.ATTRIBUTE28 = g_FND_Upd_Null_Char THEN
1929 msii_temp_data.ATTRIBUTE28 := NULL;
1930 ELSE
1931 msii_temp_data.ATTRIBUTE28 := trim(msii_temp_data.ATTRIBUTE28);
1932 END IF;
1933 IF msii_temp_data.GLOBAL_ATTRIBUTE_CATEGORY IS NULL THEN
1934 msii_temp_data.GLOBAL_ATTRIBUTE_CATEGORY := msi_record_temp.GLOBAL_ATTRIBUTE_CATEGORY;
1935 ELSIF msii_temp_data.GLOBAL_ATTRIBUTE_CATEGORY = '!' THEN
1936 msii_temp_data.GLOBAL_ATTRIBUTE_CATEGORY := NULL;
1937 ELSIF msii_temp_data.GLOBAL_ATTRIBUTE_CATEGORY = g_FND_Upd_Null_Char THEN
1938 msii_temp_data.GLOBAL_ATTRIBUTE_CATEGORY := NULL;
1939 ELSE
1940 msii_temp_data.GLOBAL_ATTRIBUTE_CATEGORY := trim(msii_temp_data.GLOBAL_ATTRIBUTE_CATEGORY);
1941 END IF;
1942 IF msii_temp_data.GLOBAL_ATTRIBUTE2 IS NULL THEN
1943 msii_temp_data.GLOBAL_ATTRIBUTE2 := msi_record_temp.GLOBAL_ATTRIBUTE2;
1944 ELSIF msii_temp_data.GLOBAL_ATTRIBUTE2 = '!' THEN
1945 msii_temp_data.GLOBAL_ATTRIBUTE2 := NULL;
1946 ELSIF msii_temp_data.GLOBAL_ATTRIBUTE2 = g_FND_Upd_Null_Char THEN
1947 msii_temp_data.GLOBAL_ATTRIBUTE2 := NULL;
1948 ELSE
1949 msii_temp_data.GLOBAL_ATTRIBUTE2 := trim(msii_temp_data.GLOBAL_ATTRIBUTE2);
1950 END IF;
1951 IF msii_temp_data.GLOBAL_ATTRIBUTE5 IS NULL THEN
1952 msii_temp_data.GLOBAL_ATTRIBUTE5 := msi_record_temp.GLOBAL_ATTRIBUTE5;
1953 ELSIF msii_temp_data.GLOBAL_ATTRIBUTE5 = '!' THEN
1954 msii_temp_data.GLOBAL_ATTRIBUTE5 := NULL;
1955 ELSIF msii_temp_data.GLOBAL_ATTRIBUTE5 = g_FND_Upd_Null_Char THEN
1956 msii_temp_data.GLOBAL_ATTRIBUTE5 := NULL;
1957 ELSE
1958 msii_temp_data.GLOBAL_ATTRIBUTE5 := trim(msii_temp_data.GLOBAL_ATTRIBUTE5);
1959 END IF;
1960 IF msii_temp_data.GLOBAL_ATTRIBUTE7 IS NULL THEN
1961 msii_temp_data.GLOBAL_ATTRIBUTE7 := msi_record_temp.GLOBAL_ATTRIBUTE7;
1962 ELSIF msii_temp_data.GLOBAL_ATTRIBUTE7 = '!' THEN
1963 msii_temp_data.GLOBAL_ATTRIBUTE7 := NULL;
1964 ELSIF msii_temp_data.GLOBAL_ATTRIBUTE7 = g_FND_Upd_Null_Char THEN
1965 msii_temp_data.GLOBAL_ATTRIBUTE7 := NULL;
1966 ELSE
1967 msii_temp_data.GLOBAL_ATTRIBUTE7 := trim(msii_temp_data.GLOBAL_ATTRIBUTE7);
1968 END IF;
1969 IF msii_temp_data.GLOBAL_ATTRIBUTE9 IS NULL THEN
1970 msii_temp_data.GLOBAL_ATTRIBUTE9 := msi_record_temp.GLOBAL_ATTRIBUTE9;
1971 ELSIF msii_temp_data.GLOBAL_ATTRIBUTE9 = '!' THEN
1972 msii_temp_data.GLOBAL_ATTRIBUTE9 := NULL;
1973 ELSIF msii_temp_data.GLOBAL_ATTRIBUTE9 = g_FND_Upd_Null_Char THEN
1974 msii_temp_data.GLOBAL_ATTRIBUTE9 := NULL;
1975 ELSE
1976 msii_temp_data.GLOBAL_ATTRIBUTE9 := trim(msii_temp_data.GLOBAL_ATTRIBUTE9);
1977 END IF;
1978 IF trim(msii_temp_data.CUSTOMER_ORDER_FLAG) is null then
1979 msii_temp_data.CUSTOMER_ORDER_FLAG := msi_record_temp.CUSTOMER_ORDER_FLAG;
1980 ELSE
1981 msii_temp_data.CUSTOMER_ORDER_FLAG := trim(msii_temp_data.CUSTOMER_ORDER_FLAG);
1982 END IF;
1983 IF trim(msii_temp_data.ENG_ITEM_FLAG) is null then
1984 msii_temp_data.ENG_ITEM_FLAG := msi_record_temp.ENG_ITEM_FLAG;
1985 ELSE
1986 msii_temp_data.ENG_ITEM_FLAG := trim(msii_temp_data.ENG_ITEM_FLAG);
1987 END IF;
1988 IF trim(msii_temp_data.PURCHASING_ENABLED_FLAG) is null then
1989 IF msii_temp_data.inventory_item_status_code IS NULL THEN
1990 msii_temp_data.PURCHASING_ENABLED_FLAG := msi_record_temp.PURCHASING_ENABLED_FLAG;
1991 END IF;
1992 ELSE
1993 msii_temp_data.PURCHASING_ENABLED_FLAG := trim(msii_temp_data.PURCHASING_ENABLED_FLAG);
1994 END IF;
1995 IF trim(msii_temp_data.INTERNAL_ORDER_ENABLED_FLAG) is null then
1996 IF msii_temp_data.inventory_item_status_code IS NULL THEN
1997 msii_temp_data.INTERNAL_ORDER_ENABLED_FLAG := msi_record_temp.INTERNAL_ORDER_ENABLED_FLAG;
1998 END IF;
1999 ELSE
2000 msii_temp_data.INTERNAL_ORDER_ENABLED_FLAG := trim(msii_temp_data.INTERNAL_ORDER_ENABLED_FLAG);
2001 END IF;
2002 IF trim(msii_temp_data.BOM_ENABLED_FLAG) is null then
2003 IF msii_temp_data.inventory_item_status_code IS NULL THEN
2004 msii_temp_data.BOM_ENABLED_FLAG := msi_record_temp.BOM_ENABLED_FLAG;
2005 END IF;
2006 ELSE
2007 msii_temp_data.BOM_ENABLED_FLAG := trim(msii_temp_data.BOM_ENABLED_FLAG);
2008 END IF;
2009
2010 IF msii_temp_data.RESTRICT_LOCATORS_CODE is null then
2011 msii_temp_data.RESTRICT_LOCATORS_CODE := msi_record_temp.RESTRICT_LOCATORS_CODE;
2012 END IF;
2013 IF msii_temp_data.SHRINKAGE_RATE IS NULL THEN
2014 msii_temp_data.SHRINKAGE_RATE := msi_record_temp.SHRINKAGE_RATE;
2015 ELSIF msii_temp_data.SHRINKAGE_RATE = -999999 THEN
2016 msii_temp_data.SHRINKAGE_RATE := NULL;
2017 ELSIF msii_temp_data.SHRINKAGE_RATE = g_FND_Upd_Null_NUM THEN
2018 msii_temp_data.SHRINKAGE_RATE := NULL;
2019 END IF;
2020
2021 IF msii_temp_data.LEAD_TIME_LOT_SIZE IS NULL THEN
2022 msii_temp_data.LEAD_TIME_LOT_SIZE := msi_record_temp.LEAD_TIME_LOT_SIZE;
2023 ELSIF msii_temp_data.LEAD_TIME_LOT_SIZE = -999999 THEN
2024 IF msii_temp_data.STD_LOT_SIZE IS NULL THEN
2025 IF msi_record_temp.STD_LOT_SIZE IS NULL THEN
2026 msii_temp_data.LEAD_TIME_LOT_SIZE := 1;
2027 ELSE
2028 msii_temp_data.LEAD_TIME_LOT_SIZE := msi_record_temp.STD_LOT_SIZE;
2029 END IF;
2030 ELSIF msii_temp_data.STD_LOT_SIZE = -999999 THEN
2031 msii_temp_data.LEAD_TIME_LOT_SIZE := 1;
2032 ELSIF msii_temp_data.STD_LOT_SIZE = g_FND_Upd_Null_NUM THEN
2033 msii_temp_data.LEAD_TIME_LOT_SIZE := 1;
2034 ELSE
2035 msii_temp_data.LEAD_TIME_LOT_SIZE := msii_temp_data.STD_LOT_SIZE;
2036 END IF;
2037 ELSIF msii_temp_data.LEAD_TIME_LOT_SIZE = g_FND_Upd_Null_NUM THEN
2038 IF msii_temp_data.STD_LOT_SIZE IS NULL THEN
2039 IF msi_record_temp.STD_LOT_SIZE IS NULL THEN
2040 msii_temp_data.LEAD_TIME_LOT_SIZE := 1;
2041 ELSE
2042 msii_temp_data.LEAD_TIME_LOT_SIZE := msi_record_temp.STD_LOT_SIZE;
2043 END IF;
2044 ELSIF msii_temp_data.STD_LOT_SIZE = -999999 THEN
2045 msii_temp_data.LEAD_TIME_LOT_SIZE := 1;
2046 ELSIF msii_temp_data.STD_LOT_SIZE = g_FND_Upd_Null_NUM THEN
2047 msii_temp_data.LEAD_TIME_LOT_SIZE := 1;
2048 ELSE
2049 msii_temp_data.LEAD_TIME_LOT_SIZE := msii_temp_data.STD_LOT_SIZE;
2050 END IF;
2051 END IF;
2052
2053 --STD_LOT_SIZE should be updated only after lead_time_lot_size
2054 IF msii_temp_data.STD_LOT_SIZE IS NULL THEN
2055 msii_temp_data.STD_LOT_SIZE := msi_record_temp.STD_LOT_SIZE;
2056 ELSIF msii_temp_data.STD_LOT_SIZE = -999999 THEN
2057 msii_temp_data.STD_LOT_SIZE := NULL;
2058 ELSIF msii_temp_data.STD_LOT_SIZE = g_FND_Upd_Null_NUM THEN
2059 msii_temp_data.STD_LOT_SIZE := NULL;
2060 END IF;
2061
2062 IF msii_temp_data.CUM_MANUFACTURING_LEAD_TIME IS NULL THEN
2063 msii_temp_data.CUM_MANUFACTURING_LEAD_TIME := msi_record_temp.CUM_MANUFACTURING_LEAD_TIME;
2064 ELSIF msii_temp_data.CUM_MANUFACTURING_LEAD_TIME = -999999 THEN
2065 msii_temp_data.CUM_MANUFACTURING_LEAD_TIME := NULL;
2066 ELSIF msii_temp_data.CUM_MANUFACTURING_LEAD_TIME = g_FND_Upd_Null_NUM THEN
2067 msii_temp_data.CUM_MANUFACTURING_LEAD_TIME := NULL;
2068 END IF;
2069 IF msii_temp_data.DEMAND_TIME_FENCE_DAYS IS NULL THEN
2070 msii_temp_data.DEMAND_TIME_FENCE_DAYS := msi_record_temp.DEMAND_TIME_FENCE_DAYS;
2071 ELSIF msii_temp_data.DEMAND_TIME_FENCE_DAYS = -999999 THEN
2072 msii_temp_data.DEMAND_TIME_FENCE_DAYS := NULL;
2073 ELSIF msii_temp_data.DEMAND_TIME_FENCE_DAYS = g_FND_Upd_Null_NUM THEN
2074 msii_temp_data.DEMAND_TIME_FENCE_DAYS := NULL;
2075 END IF;
2076 IF msii_temp_data.RELEASE_TIME_FENCE_DAYS IS NULL THEN
2077 msii_temp_data.RELEASE_TIME_FENCE_DAYS := msi_record_temp.RELEASE_TIME_FENCE_DAYS;
2078 ELSIF msii_temp_data.RELEASE_TIME_FENCE_DAYS = -999999 THEN
2079 msii_temp_data.RELEASE_TIME_FENCE_DAYS := NULL;
2080 ELSIF msii_temp_data.RELEASE_TIME_FENCE_DAYS = g_FND_Upd_Null_NUM THEN
2081 msii_temp_data.RELEASE_TIME_FENCE_DAYS := NULL;
2082 END IF;
2083 IF msii_temp_data.PLANNING_EXCEPTION_SET IS NULL THEN
2084 msii_temp_data.PLANNING_EXCEPTION_SET := msi_record_temp.PLANNING_EXCEPTION_SET;
2085 ELSIF msii_temp_data.PLANNING_EXCEPTION_SET = '!' THEN
2086 msii_temp_data.PLANNING_EXCEPTION_SET := NULL;
2087 ELSIF msii_temp_data.PLANNING_EXCEPTION_SET = g_FND_Upd_Null_Char THEN
2088 msii_temp_data.PLANNING_EXCEPTION_SET := NULL;
2089 ELSE
2090 msii_temp_data.PLANNING_EXCEPTION_SET := trim(msii_temp_data.PLANNING_EXCEPTION_SET);
2091 END IF;
2092 IF msii_temp_data.BASE_ITEM_ID IS NULL THEN
2093 msii_temp_data.BASE_ITEM_ID := msi_record_temp.BASE_ITEM_ID;
2094 ELSIF msii_temp_data.BASE_ITEM_ID = -999999 THEN
2095 msii_temp_data.BASE_ITEM_ID := NULL;
2096 ELSIF msii_temp_data.BASE_ITEM_ID = g_FND_Upd_Null_NUM THEN
2097 msii_temp_data.BASE_ITEM_ID := NULL;
2098 END IF;
2099 IF msii_temp_data.FIXED_LEAD_TIME IS NULL THEN
2100 msii_temp_data.FIXED_LEAD_TIME := msi_record_temp.FIXED_LEAD_TIME;
2101 ELSIF msii_temp_data.FIXED_LEAD_TIME = -999999 THEN
2102 msii_temp_data.FIXED_LEAD_TIME := NULL;
2103 ELSIF msii_temp_data.FIXED_LEAD_TIME = g_FND_Upd_Null_NUM THEN
2104 msii_temp_data.FIXED_LEAD_TIME := NULL;
2105 END IF;
2106 IF msii_temp_data.WIP_SUPPLY_TYPE is null then
2107 msii_temp_data.WIP_SUPPLY_TYPE := msi_record_temp.WIP_SUPPLY_TYPE;
2108 END IF;
2109 IF msii_temp_data.WIP_SUPPLY_SUBINVENTORY IS NULL THEN
2110 msii_temp_data.WIP_SUPPLY_SUBINVENTORY := msi_record_temp.WIP_SUPPLY_SUBINVENTORY;
2111 ELSIF msii_temp_data.WIP_SUPPLY_SUBINVENTORY = '!' THEN
2112 msii_temp_data.WIP_SUPPLY_SUBINVENTORY := NULL;
2113 ELSIF msii_temp_data.WIP_SUPPLY_SUBINVENTORY = g_FND_Upd_Null_Char THEN
2114 msii_temp_data.WIP_SUPPLY_SUBINVENTORY := NULL;
2115 ELSE
2116 msii_temp_data.WIP_SUPPLY_SUBINVENTORY := trim(msii_temp_data.WIP_SUPPLY_SUBINVENTORY);
2117 END IF;
2118 IF trim(msii_temp_data.DEFAULT_INCLUDE_IN_ROLLUP_FLAG) is null then
2119 msii_temp_data.DEFAULT_INCLUDE_IN_ROLLUP_FLAG := msi_record_temp.DEFAULT_INCLUDE_IN_ROLLUP_FLAG;
2120 ELSE
2121 msii_temp_data.DEFAULT_INCLUDE_IN_ROLLUP_FLAG := trim(msii_temp_data.DEFAULT_INCLUDE_IN_ROLLUP_FLAG);
2122 END IF;
2123 IF msii_temp_data.PLANNER_CODE IS NULL THEN
2124 msii_temp_data.PLANNER_CODE := msi_record_temp.PLANNER_CODE;
2125 ELSIF msii_temp_data.PLANNER_CODE = '!' THEN
2126 msii_temp_data.PLANNER_CODE := NULL;
2127 ELSIF msii_temp_data.PLANNER_CODE = g_FND_Upd_Null_Char THEN
2128 msii_temp_data.PLANNER_CODE := NULL;
2129 ELSE
2130 msii_temp_data.PLANNER_CODE := trim(msii_temp_data.PLANNER_CODE);
2131 END IF;
2132 IF msii_temp_data.ROUNDING_CONTROL_TYPE is null then
2133 msii_temp_data.ROUNDING_CONTROL_TYPE := msi_record_temp.ROUNDING_CONTROL_TYPE;
2134 END IF;
2135 IF msii_temp_data.POSTPROCESSING_LEAD_TIME IS NULL THEN
2136 msii_temp_data.POSTPROCESSING_LEAD_TIME := msi_record_temp.POSTPROCESSING_LEAD_TIME;
2137 ELSIF msii_temp_data.POSTPROCESSING_LEAD_TIME = -999999 THEN
2138 msii_temp_data.POSTPROCESSING_LEAD_TIME := NULL;
2139 ELSIF msii_temp_data.POSTPROCESSING_LEAD_TIME = g_FND_Upd_Null_NUM THEN
2140 msii_temp_data.POSTPROCESSING_LEAD_TIME := NULL;
2141 END IF;
2142 IF msii_temp_data.FULL_LEAD_TIME IS NULL THEN
2143 msii_temp_data.FULL_LEAD_TIME := msi_record_temp.FULL_LEAD_TIME;
2144 ELSIF msii_temp_data.FULL_LEAD_TIME = -999999 THEN
2145 msii_temp_data.FULL_LEAD_TIME := NULL;
2146 ELSIF msii_temp_data.FULL_LEAD_TIME = g_FND_Upd_Null_NUM THEN
2147 msii_temp_data.FULL_LEAD_TIME := NULL;
2148 END IF;
2149 IF msii_temp_data.MRP_SAFETY_STOCK_PERCENT IS NULL THEN
2150 msii_temp_data.MRP_SAFETY_STOCK_PERCENT := msi_record_temp.MRP_SAFETY_STOCK_PERCENT;
2151 ELSIF msii_temp_data.MRP_SAFETY_STOCK_PERCENT = -999999 THEN
2152 msii_temp_data.MRP_SAFETY_STOCK_PERCENT := NULL;
2153 ELSIF msii_temp_data.MRP_SAFETY_STOCK_PERCENT = g_FND_Upd_Null_NUM THEN
2154 msii_temp_data.MRP_SAFETY_STOCK_PERCENT := NULL;
2155 END IF;
2156 IF msii_temp_data.MAX_MINMAX_QUANTITY IS NULL THEN
2157 msii_temp_data.MAX_MINMAX_QUANTITY := msi_record_temp.MAX_MINMAX_QUANTITY;
2158 ELSIF msii_temp_data.MAX_MINMAX_QUANTITY = -999999 THEN
2159 msii_temp_data.MAX_MINMAX_QUANTITY := NULL;
2160 ELSIF msii_temp_data.MAX_MINMAX_QUANTITY = g_FND_Upd_Null_NUM THEN
2161 msii_temp_data.MAX_MINMAX_QUANTITY := NULL;
2162 END IF;
2163 IF msii_temp_data.FIXED_ORDER_QUANTITY IS NULL THEN
2164 msii_temp_data.FIXED_ORDER_QUANTITY := msi_record_temp.FIXED_ORDER_QUANTITY;
2165 ELSIF msii_temp_data.FIXED_ORDER_QUANTITY = -999999 THEN
2166 msii_temp_data.FIXED_ORDER_QUANTITY := NULL;
2167 ELSIF msii_temp_data.FIXED_ORDER_QUANTITY = g_FND_Upd_Null_NUM THEN
2168 msii_temp_data.FIXED_ORDER_QUANTITY := NULL;
2169 END IF;
2170 IF msii_temp_data.ATP_RULE_ID IS NULL THEN
2171 msii_temp_data.ATP_RULE_ID := msi_record_temp.ATP_RULE_ID;
2172 ELSIF msii_temp_data.ATP_RULE_ID = -999999 THEN
2173 msii_temp_data.ATP_RULE_ID := NULL;
2174 ELSIF msii_temp_data.ATP_RULE_ID = g_FND_Upd_Null_NUM THEN
2175 msii_temp_data.ATP_RULE_ID := NULL;
2176 END IF;
2177 IF msii_temp_data.POSITIVE_MEASUREMENT_ERROR IS NULL THEN
2178 msii_temp_data.POSITIVE_MEASUREMENT_ERROR := msi_record_temp.POSITIVE_MEASUREMENT_ERROR;
2179 ELSIF msii_temp_data.POSITIVE_MEASUREMENT_ERROR = -999999 THEN
2180 msii_temp_data.POSITIVE_MEASUREMENT_ERROR := NULL;
2181 ELSIF msii_temp_data.POSITIVE_MEASUREMENT_ERROR = g_FND_Upd_Null_NUM THEN
2182 msii_temp_data.POSITIVE_MEASUREMENT_ERROR := NULL;
2183 END IF;
2184 IF msii_temp_data.ENGINEERING_ITEM_ID is null then
2185 msii_temp_data.ENGINEERING_ITEM_ID := msi_record_temp.ENGINEERING_ITEM_ID;
2186 END IF;
2187 IF msii_temp_data.SERVICE_STARTING_DELAY IS NULL THEN
2188 msii_temp_data.SERVICE_STARTING_DELAY := msi_record_temp.SERVICE_STARTING_DELAY;
2189 ELSIF msii_temp_data.SERVICE_STARTING_DELAY = -999999 THEN
2190 msii_temp_data.SERVICE_STARTING_DELAY := NULL;
2191 ELSIF msii_temp_data.SERVICE_STARTING_DELAY = g_FND_Upd_Null_NUM THEN
2192 msii_temp_data.SERVICE_STARTING_DELAY := NULL;
2193 END IF;
2194 IF msii_temp_data.PAYMENT_TERMS_ID IS NULL THEN
2195 msii_temp_data.PAYMENT_TERMS_ID := msi_record_temp.PAYMENT_TERMS_ID;
2196 ELSIF msii_temp_data.PAYMENT_TERMS_ID = -999999 THEN
2197 msii_temp_data.PAYMENT_TERMS_ID := NULL;
2198 ELSIF msii_temp_data.PAYMENT_TERMS_ID = g_FND_Upd_Null_NUM THEN
2199 msii_temp_data.PAYMENT_TERMS_ID := NULL;
2200 END IF;
2201 IF msii_temp_data.SECONDARY_SPECIALIST_ID is null then
2202 msii_temp_data.SECONDARY_SPECIALIST_ID := msi_record_temp.SECONDARY_SPECIALIST_ID;
2203 END IF;
2204 IF msii_temp_data.MATERIAL_BILLABLE_FLAG IS NULL THEN
2205 msii_temp_data.MATERIAL_BILLABLE_FLAG := msi_record_temp.MATERIAL_BILLABLE_FLAG;
2206 ELSIF msii_temp_data.MATERIAL_BILLABLE_FLAG = '!' THEN
2207 msii_temp_data.MATERIAL_BILLABLE_FLAG := NULL;
2208 ELSIF msii_temp_data.MATERIAL_BILLABLE_FLAG = g_FND_Upd_Null_Char THEN
2209 msii_temp_data.MATERIAL_BILLABLE_FLAG := NULL;
2210 ELSE
2211 msii_temp_data.MATERIAL_BILLABLE_FLAG := trim(msii_temp_data.MATERIAL_BILLABLE_FLAG);
2212 END IF;
2213 IF msii_temp_data.COVERAGE_SCHEDULE_ID IS NULL THEN
2214 msii_temp_data.COVERAGE_SCHEDULE_ID := msi_record_temp.COVERAGE_SCHEDULE_ID;
2215 ELSIF msii_temp_data.COVERAGE_SCHEDULE_ID = -999999 THEN
2216 msii_temp_data.COVERAGE_SCHEDULE_ID := NULL;
2217 ELSIF msii_temp_data.COVERAGE_SCHEDULE_ID = g_FND_Upd_Null_NUM THEN
2218 msii_temp_data.COVERAGE_SCHEDULE_ID := NULL;
2219 END IF;
2220 IF msii_temp_data.WARRANTY_VENDOR_ID is null then
2221 msii_temp_data.WARRANTY_VENDOR_ID := msi_record_temp.WARRANTY_VENDOR_ID;
2222 END IF;
2223 IF trim(msii_temp_data.RESPONSE_TIME_PERIOD_CODE) is null then
2224 msii_temp_data.RESPONSE_TIME_PERIOD_CODE := msi_record_temp.RESPONSE_TIME_PERIOD_CODE;
2225 ELSE
2226 msii_temp_data.RESPONSE_TIME_PERIOD_CODE := trim(msii_temp_data.RESPONSE_TIME_PERIOD_CODE);
2227 END IF;
2228 IF msii_temp_data.TAX_CODE IS NULL THEN
2229 msii_temp_data.TAX_CODE := msi_record_temp.TAX_CODE;
2230 ELSIF msii_temp_data.TAX_CODE = '!' THEN
2231 msii_temp_data.TAX_CODE := NULL;
2232 ELSIF msii_temp_data.TAX_CODE = g_FND_Upd_Null_Char THEN
2233 msii_temp_data.TAX_CODE := NULL;
2234 ELSE
2235 msii_temp_data.TAX_CODE := trim(msii_temp_data.TAX_CODE);
2236 END IF;
2237 IF trim(msii_temp_data.MUST_USE_APPROVED_VENDOR_FLAG) is null then
2238 msii_temp_data.MUST_USE_APPROVED_VENDOR_FLAG := msi_record_temp.MUST_USE_APPROVED_VENDOR_FLAG;
2239 ELSE
2240 msii_temp_data.MUST_USE_APPROVED_VENDOR_FLAG := trim(msii_temp_data.MUST_USE_APPROVED_VENDOR_FLAG);
2241 END IF;
2242 IF trim(msii_temp_data.OUTSIDE_OPERATION_FLAG) is null then
2243 msii_temp_data.OUTSIDE_OPERATION_FLAG := msi_record_temp.OUTSIDE_OPERATION_FLAG;
2244 ELSE
2245 msii_temp_data.OUTSIDE_OPERATION_FLAG := trim(msii_temp_data.OUTSIDE_OPERATION_FLAG);
2246 END IF;
2247 IF msii_temp_data.AUTO_REDUCE_MPS IS NULL THEN
2248 msii_temp_data.AUTO_REDUCE_MPS := msi_record_temp.AUTO_REDUCE_MPS;
2249 ELSIF msii_temp_data.AUTO_REDUCE_MPS = -999999 THEN
2250 msii_temp_data.AUTO_REDUCE_MPS := NULL;
2251 ELSIF msii_temp_data.AUTO_REDUCE_MPS = g_FND_Upd_Null_NUM THEN
2252 msii_temp_data.AUTO_REDUCE_MPS := NULL;
2253 ELSE
2254 msii_temp_data.AUTO_REDUCE_MPS := trim(msii_temp_data.AUTO_REDUCE_MPS);
2255 END IF;
2256 IF trim(msii_temp_data.AUTO_CREATED_CONFIG_FLAG) is null then
2257 msii_temp_data.AUTO_CREATED_CONFIG_FLAG := msi_record_temp.AUTO_CREATED_CONFIG_FLAG;
2258 ELSE
2259 msii_temp_data.AUTO_CREATED_CONFIG_FLAG := trim(msii_temp_data.AUTO_CREATED_CONFIG_FLAG);
2260 END IF;
2261 IF trim(msii_temp_data.SHIP_MODEL_COMPLETE_FLAG) is null then
2262 msii_temp_data.SHIP_MODEL_COMPLETE_FLAG := msi_record_temp.SHIP_MODEL_COMPLETE_FLAG;
2263 ELSE
2264 msii_temp_data.SHIP_MODEL_COMPLETE_FLAG := trim(msii_temp_data.SHIP_MODEL_COMPLETE_FLAG);
2265 END IF;
2266 IF msii_temp_data.ATO_FORECAST_CONTROL IS NULL THEN
2267 msii_temp_data.ATO_FORECAST_CONTROL := msi_record_temp.ATO_FORECAST_CONTROL;
2268 ELSIF msii_temp_data.ATO_FORECAST_CONTROL = -999999 THEN
2269 msii_temp_data.ATO_FORECAST_CONTROL := NULL;
2270 ELSIF msii_temp_data.ATO_FORECAST_CONTROL = g_FND_Upd_Null_NUM THEN
2271 msii_temp_data.ATO_FORECAST_CONTROL := NULL;
2272 END IF;
2273 IF msii_temp_data.MAXIMUM_LOAD_WEIGHT IS NULL THEN
2274 msii_temp_data.MAXIMUM_LOAD_WEIGHT := msi_record_temp.MAXIMUM_LOAD_WEIGHT;
2275 ELSIF msii_temp_data.MAXIMUM_LOAD_WEIGHT = -999999 THEN
2276 msii_temp_data.MAXIMUM_LOAD_WEIGHT := NULL;
2277 ELSIF msii_temp_data.MAXIMUM_LOAD_WEIGHT = g_FND_Upd_Null_NUM THEN
2278 msii_temp_data.MAXIMUM_LOAD_WEIGHT := NULL;
2279 END IF;
2280 IF msii_temp_data.INTERNAL_VOLUME IS NULL THEN
2281 msii_temp_data.INTERNAL_VOLUME := msi_record_temp.INTERNAL_VOLUME;
2282 ELSIF msii_temp_data.INTERNAL_VOLUME = -999999 THEN
2283 msii_temp_data.INTERNAL_VOLUME := NULL;
2284 ELSIF msii_temp_data.INTERNAL_VOLUME = g_FND_Upd_Null_NUM THEN
2285 msii_temp_data.INTERNAL_VOLUME := NULL;
2286 END IF;
2287 IF msii_temp_data.OVERCOMPLETION_TOLERANCE_TYPE IS NULL THEN
2288 msii_temp_data.OVERCOMPLETION_TOLERANCE_TYPE := msi_record_temp.OVERCOMPLETION_TOLERANCE_TYPE;
2289 ELSIF msii_temp_data.OVERCOMPLETION_TOLERANCE_TYPE = g_Upd_Null_NUM THEN
2290 msii_temp_data.OVERCOMPLETION_TOLERANCE_TYPE := NULL;
2291 ELSIF msii_temp_data.OVERCOMPLETION_TOLERANCE_TYPE = g_FND_Upd_Null_NUM THEN
2292 msii_temp_data.OVERCOMPLETION_TOLERANCE_TYPE := NULL;
2293 END IF;
2294 IF trim(msii_temp_data.RECIPE_ENABLED_FLAG) is null then
2295 IF msii_temp_data.INVENTORY_ITEM_STATUS_CODE IS NULL THEN
2296 msii_temp_data.RECIPE_ENABLED_FLAG := msi_record_temp.RECIPE_ENABLED_FLAG;
2297 END IF;
2298 ELSE
2299 msii_temp_data.RECIPE_ENABLED_FLAG := trim(msii_temp_data.RECIPE_ENABLED_FLAG);
2300 END IF;
2301 IF msii_temp_data.REVISION_QTY_CONTROL_CODE is null then
2302 msii_temp_data.REVISION_QTY_CONTROL_CODE := msi_record_temp.REVISION_QTY_CONTROL_CODE;
2303 END IF;
2304 IF msii_temp_data.CATALOG_STATUS_FLAG IS NULL THEN
2305 msii_temp_data.CATALOG_STATUS_FLAG := msi_record_temp.CATALOG_STATUS_FLAG;
2306 ELSIF msii_temp_data.CATALOG_STATUS_FLAG = '!' THEN
2307 msii_temp_data.CATALOG_STATUS_FLAG := NULL;
2308 ELSIF msii_temp_data.CATALOG_STATUS_FLAG = g_FND_Upd_Null_Char THEN
2309 msii_temp_data.CATALOG_STATUS_FLAG := NULL;
2310 ELSE
2311 msii_temp_data.CATALOG_STATUS_FLAG := trim(msii_temp_data.CATALOG_STATUS_FLAG);
2312 END IF;
2313 IF trim(msii_temp_data.COLLATERAL_FLAG) is null then
2314 msii_temp_data.COLLATERAL_FLAG := msi_record_temp.COLLATERAL_FLAG;
2315 ELSE
2316 msii_temp_data.COLLATERAL_FLAG := trim(msii_temp_data.COLLATERAL_FLAG);
2317 END IF;
2318 IF msii_temp_data.PURCHASING_TAX_CODE IS NULL THEN
2319 msii_temp_data.PURCHASING_TAX_CODE := msi_record_temp.PURCHASING_TAX_CODE;
2320 ELSIF msii_temp_data.PURCHASING_TAX_CODE = '!' THEN
2321 msii_temp_data.PURCHASING_TAX_CODE := NULL;
2322 ELSIF msii_temp_data.PURCHASING_TAX_CODE = g_FND_Upd_Null_Char THEN
2323 msii_temp_data.PURCHASING_TAX_CODE := NULL;
2324 ELSE
2325 msii_temp_data.PURCHASING_TAX_CODE := trim(msii_temp_data.PURCHASING_TAX_CODE);
2326 END IF;
2327 IF msii_temp_data.INSPECTION_REQUIRED_FLAG IS NULL THEN
2328 msii_temp_data.INSPECTION_REQUIRED_FLAG := msi_record_temp.INSPECTION_REQUIRED_FLAG;
2329 ELSIF msii_temp_data.INSPECTION_REQUIRED_FLAG = '!' THEN
2330 msii_temp_data.INSPECTION_REQUIRED_FLAG := NULL;
2331 ELSIF msii_temp_data.INSPECTION_REQUIRED_FLAG = g_FND_Upd_Null_Char THEN
2332 msii_temp_data.INSPECTION_REQUIRED_FLAG := NULL;
2333 ELSE
2334 msii_temp_data.INSPECTION_REQUIRED_FLAG := trim(msii_temp_data.INSPECTION_REQUIRED_FLAG);
2335 END IF;
2336 IF msii_temp_data.MARKET_PRICE IS NULL THEN
2337 msii_temp_data.MARKET_PRICE := msi_record_temp.MARKET_PRICE;
2338 ELSIF msii_temp_data.MARKET_PRICE = -999999 THEN
2339 msii_temp_data.MARKET_PRICE := NULL;
2340 ELSIF msii_temp_data.MARKET_PRICE = g_FND_Upd_Null_NUM THEN
2341 msii_temp_data.MARKET_PRICE := NULL;
2342 END IF;
2343 IF msii_temp_data.LIST_PRICE_PER_UNIT IS NULL THEN
2344 msii_temp_data.LIST_PRICE_PER_UNIT := msi_record_temp.LIST_PRICE_PER_UNIT;
2345 ELSIF msii_temp_data.LIST_PRICE_PER_UNIT = -999999 THEN
2346 msii_temp_data.LIST_PRICE_PER_UNIT := NULL;
2347 ELSIF msii_temp_data.LIST_PRICE_PER_UNIT = g_FND_Upd_Null_NUM THEN
2348 msii_temp_data.LIST_PRICE_PER_UNIT := NULL;
2349 END IF;
2350 IF msii_temp_data.PRICE_TOLERANCE_PERCENT IS NULL THEN
2351 msii_temp_data.PRICE_TOLERANCE_PERCENT := msi_record_temp.PRICE_TOLERANCE_PERCENT;
2352 ELSIF msii_temp_data.PRICE_TOLERANCE_PERCENT = -999999 THEN
2353 msii_temp_data.PRICE_TOLERANCE_PERCENT := NULL;
2354 ELSIF msii_temp_data.PRICE_TOLERANCE_PERCENT = g_FND_Upd_Null_NUM THEN
2355 msii_temp_data.PRICE_TOLERANCE_PERCENT := NULL;
2356 END IF;
2357 IF msii_temp_data.UNIT_OF_ISSUE IS NULL THEN
2358 msii_temp_data.UNIT_OF_ISSUE := msi_record_temp.UNIT_OF_ISSUE;
2359 ELSIF msii_temp_data.UNIT_OF_ISSUE = '!' THEN
2360 msii_temp_data.UNIT_OF_ISSUE := NULL;
2361 ELSIF msii_temp_data.UNIT_OF_ISSUE = g_FND_Upd_Null_Char THEN
2362 msii_temp_data.UNIT_OF_ISSUE := NULL;
2363 ELSE
2364 msii_temp_data.UNIT_OF_ISSUE := trim(msii_temp_data.UNIT_OF_ISSUE);
2365 END IF;
2366 IF msii_temp_data.ALLOW_SUBSTITUTE_RECEIPTS_FLAG IS NULL THEN
2367 msii_temp_data.ALLOW_SUBSTITUTE_RECEIPTS_FLAG := msi_record_temp.ALLOW_SUBSTITUTE_RECEIPTS_FLAG;
2368 ELSIF msii_temp_data.ALLOW_SUBSTITUTE_RECEIPTS_FLAG = '!' THEN
2369 msii_temp_data.ALLOW_SUBSTITUTE_RECEIPTS_FLAG := NULL;
2370 ELSIF msii_temp_data.ALLOW_SUBSTITUTE_RECEIPTS_FLAG = g_FND_Upd_Null_Char THEN
2371 msii_temp_data.ALLOW_SUBSTITUTE_RECEIPTS_FLAG := NULL;
2372 ELSE
2373 msii_temp_data.ALLOW_SUBSTITUTE_RECEIPTS_FLAG := trim(msii_temp_data.ALLOW_SUBSTITUTE_RECEIPTS_FLAG);
2374 END IF;
2375 IF msii_temp_data.ALLOW_EXPRESS_DELIVERY_FLAG IS NULL THEN
2376 msii_temp_data.ALLOW_EXPRESS_DELIVERY_FLAG := msi_record_temp.ALLOW_EXPRESS_DELIVERY_FLAG;
2377 ELSIF msii_temp_data.ALLOW_EXPRESS_DELIVERY_FLAG = '!' THEN
2378 msii_temp_data.ALLOW_EXPRESS_DELIVERY_FLAG := NULL;
2379 ELSIF msii_temp_data.ALLOW_EXPRESS_DELIVERY_FLAG = g_FND_Upd_Null_Char THEN
2380 msii_temp_data.ALLOW_EXPRESS_DELIVERY_FLAG := NULL;
2381 ELSE
2382 msii_temp_data.ALLOW_EXPRESS_DELIVERY_FLAG := trim(msii_temp_data.ALLOW_EXPRESS_DELIVERY_FLAG);
2383 END IF;
2384 IF msii_temp_data.RECEIPT_DAYS_EXCEPTION_CODE IS NULL THEN
2385 msii_temp_data.RECEIPT_DAYS_EXCEPTION_CODE := msi_record_temp.RECEIPT_DAYS_EXCEPTION_CODE;
2386 ELSIF msii_temp_data.RECEIPT_DAYS_EXCEPTION_CODE = '!' THEN
2387 msii_temp_data.RECEIPT_DAYS_EXCEPTION_CODE := NULL;
2388 ELSIF msii_temp_data.RECEIPT_DAYS_EXCEPTION_CODE = g_FND_Upd_Null_Char THEN
2389 msii_temp_data.RECEIPT_DAYS_EXCEPTION_CODE := NULL;
2390 ELSE
2391 msii_temp_data.RECEIPT_DAYS_EXCEPTION_CODE := trim(msii_temp_data.RECEIPT_DAYS_EXCEPTION_CODE);
2392 END IF;
2393 IF msii_temp_data.RECEIVE_CLOSE_TOLERANCE IS NULL THEN
2394 msii_temp_data.RECEIVE_CLOSE_TOLERANCE := msi_record_temp.RECEIVE_CLOSE_TOLERANCE;
2395 ELSIF msii_temp_data.RECEIVE_CLOSE_TOLERANCE = -999999 THEN
2396 msii_temp_data.RECEIVE_CLOSE_TOLERANCE := NULL;
2397 ELSIF msii_temp_data.RECEIVE_CLOSE_TOLERANCE = g_FND_Upd_Null_NUM THEN
2398 msii_temp_data.RECEIVE_CLOSE_TOLERANCE := NULL;
2399 END IF;
2400 IF msii_temp_data.START_AUTO_LOT_NUMBER IS NULL THEN
2401 msii_temp_data.START_AUTO_LOT_NUMBER := msi_record_temp.START_AUTO_LOT_NUMBER;
2402 ELSIF msii_temp_data.START_AUTO_LOT_NUMBER = '!' THEN
2403 msii_temp_data.START_AUTO_LOT_NUMBER := NULL;
2404 ELSIF msii_temp_data.START_AUTO_LOT_NUMBER = g_FND_Upd_Null_Char THEN
2405 msii_temp_data.START_AUTO_LOT_NUMBER := NULL;
2406 ELSE
2407 msii_temp_data.START_AUTO_LOT_NUMBER := trim(msii_temp_data.START_AUTO_LOT_NUMBER);
2408 END IF;
2409 IF msii_temp_data.SERIAL_NUMBER_CONTROL_CODE is null then
2410 msii_temp_data.SERIAL_NUMBER_CONTROL_CODE := msi_record_temp.SERIAL_NUMBER_CONTROL_CODE;
2411 END IF;
2412 IF msii_temp_data.AUTO_SERIAL_ALPHA_PREFIX IS NULL THEN
2413 msii_temp_data.AUTO_SERIAL_ALPHA_PREFIX := msi_record_temp.AUTO_SERIAL_ALPHA_PREFIX;
2414 ELSIF msii_temp_data.AUTO_SERIAL_ALPHA_PREFIX = '!' THEN
2415 msii_temp_data.AUTO_SERIAL_ALPHA_PREFIX := NULL;
2416 ELSIF msii_temp_data.AUTO_SERIAL_ALPHA_PREFIX = g_FND_Upd_Null_Char THEN
2417 msii_temp_data.AUTO_SERIAL_ALPHA_PREFIX := NULL;
2418 ELSE
2419 msii_temp_data.AUTO_SERIAL_ALPHA_PREFIX := trim(msii_temp_data.AUTO_SERIAL_ALPHA_PREFIX);
2420 END IF;
2421 IF msii_temp_data.SOURCE_ORGANIZATION_ID IS NULL THEN
2422 msii_temp_data.SOURCE_ORGANIZATION_ID := msi_record_temp.SOURCE_ORGANIZATION_ID;
2423 ELSIF msii_temp_data.SOURCE_ORGANIZATION_ID = -999999 THEN
2424 msii_temp_data.SOURCE_ORGANIZATION_ID := NULL;
2425 ELSIF msii_temp_data.SOURCE_ORGANIZATION_ID = g_FND_Upd_Null_NUM THEN
2426 msii_temp_data.SOURCE_ORGANIZATION_ID := NULL;
2427 END IF;
2428 IF msii_temp_data.ENCUMBRANCE_ACCOUNT IS NULL THEN
2429 msii_temp_data.ENCUMBRANCE_ACCOUNT := msi_record_temp.ENCUMBRANCE_ACCOUNT;
2430 ELSIF msii_temp_data.ENCUMBRANCE_ACCOUNT = -999999 THEN
2431 msii_temp_data.ENCUMBRANCE_ACCOUNT := NULL;
2432 ELSIF msii_temp_data.ENCUMBRANCE_ACCOUNT = g_FND_Upd_Null_NUM THEN
2433 msii_temp_data.ENCUMBRANCE_ACCOUNT := NULL;
2434 END IF;
2435 IF msii_temp_data.WEIGHT_UOM_CODE IS NULL THEN
2436 msii_temp_data.WEIGHT_UOM_CODE := msi_record_temp.WEIGHT_UOM_CODE;
2437 ELSIF msii_temp_data.WEIGHT_UOM_CODE = '!' THEN
2438 msii_temp_data.WEIGHT_UOM_CODE := NULL;
2439 ELSIF msii_temp_data.WEIGHT_UOM_CODE = g_FND_Upd_Null_Char THEN
2440 msii_temp_data.WEIGHT_UOM_CODE := NULL;
2441 ELSE
2442 msii_temp_data.WEIGHT_UOM_CODE := trim(msii_temp_data.WEIGHT_UOM_CODE);
2443 END IF;
2444 IF trim(msii_temp_data.SEGMENT16) is null then
2445 msii_temp_data.SEGMENT16 := msi_record_temp.SEGMENT16;
2446 ELSE
2447 msii_temp_data.SEGMENT16 := trim(msii_temp_data.SEGMENT16);
2448 END IF;
2449 IF trim(msii_temp_data.SEGMENT17) is null then
2450 msii_temp_data.SEGMENT17 := msi_record_temp.SEGMENT17;
2451 ELSE
2452 msii_temp_data.SEGMENT17 := trim(msii_temp_data.SEGMENT17);
2453 END IF;
2454 msii_temp_data.PROCESS_FLAG := l_process_flag_2;
2455 IF trim(msii_temp_data.SUMMARY_FLAG) is null then
2456 msii_temp_data.SUMMARY_FLAG := msi_record_temp.SUMMARY_FLAG;
2457 ELSE
2458 msii_temp_data.SUMMARY_FLAG := trim(msii_temp_data.SUMMARY_FLAG);
2459 END IF;
2460 IF trim(msii_temp_data.ENABLED_FLAG) is null then
2461 msii_temp_data.ENABLED_FLAG := msi_record_temp.ENABLED_FLAG;
2462 ELSE
2463 msii_temp_data.ENABLED_FLAG := trim(msii_temp_data.ENABLED_FLAG);
2464 END IF;
2465 IF msii_temp_data.START_DATE_ACTIVE is null then
2466 msii_temp_data.START_DATE_ACTIVE := msi_record_temp.START_DATE_ACTIVE;
2467 END IF;
2468 IF msii_temp_data.END_DATE_ACTIVE is null then
2469 msii_temp_data.END_DATE_ACTIVE := msi_record_temp.END_DATE_ACTIVE;
2470 END IF;
2471 IF msii_temp_data.ACCOUNTING_RULE_ID IS NULL THEN
2472 msii_temp_data.ACCOUNTING_RULE_ID := msi_record_temp.ACCOUNTING_RULE_ID;
2473 ELSIF msii_temp_data.ACCOUNTING_RULE_ID = -999999 THEN
2474 msii_temp_data.ACCOUNTING_RULE_ID := NULL;
2475 ELSIF msii_temp_data.ACCOUNTING_RULE_ID = g_FND_Upd_Null_NUM THEN
2476 msii_temp_data.ACCOUNTING_RULE_ID := NULL;
2477 END IF;
2478 IF trim(msii_temp_data.SEGMENT1) is null then
2479 msii_temp_data.SEGMENT1 := msi_record_temp.SEGMENT1;
2480 ELSE
2481 msii_temp_data.SEGMENT1 := trim(msii_temp_data.SEGMENT1);
2482 END IF;
2483 IF trim(msii_temp_data.SEGMENT2) is null then
2484 msii_temp_data.SEGMENT2 := msi_record_temp.SEGMENT2;
2485 ELSE
2486 msii_temp_data.SEGMENT2 := trim(msii_temp_data.SEGMENT2);
2487 END IF;
2488 IF trim(msii_temp_data.SEGMENT3) is null then
2489 msii_temp_data.SEGMENT3 := msi_record_temp.SEGMENT3;
2490 ELSE
2491 msii_temp_data.SEGMENT3 := trim(msii_temp_data.SEGMENT3);
2492 END IF;
2493 IF trim(msii_temp_data.SEGMENT4) is null then
2494 msii_temp_data.SEGMENT4 := msi_record_temp.SEGMENT4;
2495 ELSE
2496 msii_temp_data.SEGMENT4 := trim(msii_temp_data.SEGMENT4);
2497 END IF;
2498 IF trim(msii_temp_data.SEGMENT5) is null then
2499 msii_temp_data.SEGMENT5 := msi_record_temp.SEGMENT5;
2500 ELSE
2501 msii_temp_data.SEGMENT5 := trim(msii_temp_data.SEGMENT5);
2502 END IF;
2503 IF trim(msii_temp_data.SEGMENT7) is null then
2504 msii_temp_data.SEGMENT7 := msi_record_temp.SEGMENT7;
2505 ELSE
2506 msii_temp_data.SEGMENT7 := trim(msii_temp_data.SEGMENT7);
2507 END IF;
2508 IF trim(msii_temp_data.SEGMENT9) is null then
2509 msii_temp_data.SEGMENT9 := msi_record_temp.SEGMENT9;
2510 ELSE
2511 msii_temp_data.SEGMENT9 := trim(msii_temp_data.SEGMENT9);
2512 END IF;
2513 IF trim(msii_temp_data.SEGMENT10) is null then
2514 msii_temp_data.SEGMENT10 := msi_record_temp.SEGMENT10;
2515 ELSE
2516 msii_temp_data.SEGMENT10 := trim(msii_temp_data.SEGMENT10);
2517 END IF;
2518 IF trim(msii_temp_data.SEGMENT12) is null then
2519 msii_temp_data.SEGMENT12 := msi_record_temp.SEGMENT12;
2520 ELSE
2521 msii_temp_data.SEGMENT12 := trim(msii_temp_data.SEGMENT12);
2522 END IF;
2523 IF trim(msii_temp_data.SEGMENT13) is null then
2524 msii_temp_data.SEGMENT13 := msi_record_temp.SEGMENT13;
2525 ELSE
2526 msii_temp_data.SEGMENT13 := trim(msii_temp_data.SEGMENT13);
2527 END IF;
2528 IF trim(msii_temp_data.SEGMENT15) is null then
2529 msii_temp_data.SEGMENT15 := msi_record_temp.SEGMENT15;
2530 ELSE
2531 msii_temp_data.SEGMENT15 := trim(msii_temp_data.SEGMENT15);
2532 END IF;
2533 IF trim(msii_temp_data.SEGMENT18) is null then
2534 msii_temp_data.SEGMENT18 := msi_record_temp.SEGMENT18;
2535 ELSE
2536 msii_temp_data.SEGMENT18 := trim(msii_temp_data.SEGMENT18);
2537 END IF;
2538 IF trim(msii_temp_data.SEGMENT20) is null then
2539 msii_temp_data.SEGMENT20 := msi_record_temp.SEGMENT20;
2540 ELSE
2541 msii_temp_data.SEGMENT20 := trim(msii_temp_data.SEGMENT20);
2542 END IF;
2543 IF msii_temp_data.ATTRIBUTE1 IS NULL THEN
2544 msii_temp_data.ATTRIBUTE1 := msi_record_temp.ATTRIBUTE1;
2545 ELSIF msii_temp_data.ATTRIBUTE1 = '!' THEN
2546 msii_temp_data.ATTRIBUTE1 := NULL;
2547 ELSIF msii_temp_data.ATTRIBUTE1 = g_FND_Upd_Null_Char THEN
2548 msii_temp_data.ATTRIBUTE1 := NULL;
2549 ELSE
2550 msii_temp_data.ATTRIBUTE1 := trim(msii_temp_data.ATTRIBUTE1);
2551 END IF;
2552 IF msii_temp_data.ATTRIBUTE2 IS NULL THEN
2553 msii_temp_data.ATTRIBUTE2 := msi_record_temp.ATTRIBUTE2;
2554 ELSIF msii_temp_data.ATTRIBUTE2 = '!' THEN
2555 msii_temp_data.ATTRIBUTE2 := NULL;
2556 ELSIF msii_temp_data.ATTRIBUTE2 = g_FND_Upd_Null_Char THEN
2557 msii_temp_data.ATTRIBUTE2 := NULL;
2558 ELSE
2559 msii_temp_data.ATTRIBUTE2 := trim(msii_temp_data.ATTRIBUTE2);
2560 END IF;
2561 IF msii_temp_data.ATTRIBUTE4 IS NULL THEN
2562 msii_temp_data.ATTRIBUTE4 := msi_record_temp.ATTRIBUTE4;
2563 ELSIF msii_temp_data.ATTRIBUTE4 = '!' THEN
2564 msii_temp_data.ATTRIBUTE4 := NULL;
2565 ELSIF msii_temp_data.ATTRIBUTE4 = g_FND_Upd_Null_Char THEN
2566 msii_temp_data.ATTRIBUTE4 := NULL;
2567 ELSE
2568 msii_temp_data.ATTRIBUTE4 := trim(msii_temp_data.ATTRIBUTE4);
2569 END IF;
2570 IF msii_temp_data.ATTRIBUTE6 IS NULL THEN
2571 msii_temp_data.ATTRIBUTE6 := msi_record_temp.ATTRIBUTE6;
2572 ELSIF msii_temp_data.ATTRIBUTE6 = '!' THEN
2573 msii_temp_data.ATTRIBUTE6 := NULL;
2574 ELSIF msii_temp_data.ATTRIBUTE6 = g_FND_Upd_Null_Char THEN
2575 msii_temp_data.ATTRIBUTE6 := NULL;
2576 ELSE
2577 msii_temp_data.ATTRIBUTE6 := trim(msii_temp_data.ATTRIBUTE6);
2578 END IF;
2579 IF msii_temp_data.ATTRIBUTE8 IS NULL THEN
2580 msii_temp_data.ATTRIBUTE8 := msi_record_temp.ATTRIBUTE8;
2581 ELSIF msii_temp_data.ATTRIBUTE8 = '!' THEN
2582 msii_temp_data.ATTRIBUTE8 := NULL;
2583 ELSIF msii_temp_data.ATTRIBUTE8 = g_FND_Upd_Null_Char THEN
2584 msii_temp_data.ATTRIBUTE8 := NULL;
2585 ELSE
2586 msii_temp_data.ATTRIBUTE8 := trim(msii_temp_data.ATTRIBUTE8);
2587 END IF;
2588 IF msii_temp_data.ATTRIBUTE9 IS NULL THEN
2589 msii_temp_data.ATTRIBUTE9 := msi_record_temp.ATTRIBUTE9;
2590 ELSIF msii_temp_data.ATTRIBUTE9 = '!' THEN
2591 msii_temp_data.ATTRIBUTE9 := NULL;
2592 ELSIF msii_temp_data.ATTRIBUTE9 = g_FND_Upd_Null_Char THEN
2593 msii_temp_data.ATTRIBUTE9 := NULL;
2594 ELSE
2595 msii_temp_data.ATTRIBUTE9 := trim(msii_temp_data.ATTRIBUTE9);
2596 END IF;
2597 IF msii_temp_data.ATTRIBUTE11 IS NULL THEN
2598 msii_temp_data.ATTRIBUTE11 := msi_record_temp.ATTRIBUTE11;
2599 ELSIF msii_temp_data.ATTRIBUTE11 = '!' THEN
2600 msii_temp_data.ATTRIBUTE11 := NULL;
2601 ELSIF msii_temp_data.ATTRIBUTE11 = g_FND_Upd_Null_Char THEN
2602 msii_temp_data.ATTRIBUTE11 := NULL;
2603 ELSE
2604 msii_temp_data.ATTRIBUTE11 := trim(msii_temp_data.ATTRIBUTE11);
2605 END IF;
2606 IF msii_temp_data.ATTRIBUTE13 IS NULL THEN
2607 msii_temp_data.ATTRIBUTE13 := msi_record_temp.ATTRIBUTE13;
2608 ELSIF msii_temp_data.ATTRIBUTE13 = '!' THEN
2609 msii_temp_data.ATTRIBUTE13 := NULL;
2610 ELSIF msii_temp_data.ATTRIBUTE13 = g_FND_Upd_Null_Char THEN
2611 msii_temp_data.ATTRIBUTE13 := NULL;
2612 ELSE
2613 msii_temp_data.ATTRIBUTE13 := trim(msii_temp_data.ATTRIBUTE13);
2614 END IF;
2615 IF msii_temp_data.ATTRIBUTE15 IS NULL THEN
2616 msii_temp_data.ATTRIBUTE15 := msi_record_temp.ATTRIBUTE15;
2617 ELSIF msii_temp_data.ATTRIBUTE15 = '!' THEN
2618 msii_temp_data.ATTRIBUTE15 := NULL;
2619 ELSIF msii_temp_data.ATTRIBUTE15 = g_FND_Upd_Null_Char THEN
2620 msii_temp_data.ATTRIBUTE15 := NULL;
2621 ELSE
2622 msii_temp_data.ATTRIBUTE15 := trim(msii_temp_data.ATTRIBUTE15);
2623 END IF;
2624 IF msii_temp_data.ATTRIBUTE16 IS NULL THEN
2625 msii_temp_data.ATTRIBUTE16 := msi_record_temp.ATTRIBUTE16;
2626 ELSIF msii_temp_data.ATTRIBUTE16 = '!' THEN
2627 msii_temp_data.ATTRIBUTE16 := NULL;
2628 ELSIF msii_temp_data.ATTRIBUTE16 = g_FND_Upd_Null_Char THEN
2629 msii_temp_data.ATTRIBUTE16 := NULL;
2630 ELSE
2631 msii_temp_data.ATTRIBUTE16 := trim(msii_temp_data.ATTRIBUTE16);
2632 END IF;
2633 IF msii_temp_data.ATTRIBUTE18 IS NULL THEN
2634 msii_temp_data.ATTRIBUTE18 := msi_record_temp.ATTRIBUTE18;
2635 ELSIF msii_temp_data.ATTRIBUTE18 = '!' THEN
2636 msii_temp_data.ATTRIBUTE18 := NULL;
2637 ELSIF msii_temp_data.ATTRIBUTE18 = g_FND_Upd_Null_Char THEN
2638 msii_temp_data.ATTRIBUTE18 := NULL;
2639 ELSE
2640 msii_temp_data.ATTRIBUTE18 := trim(msii_temp_data.ATTRIBUTE18);
2641 END IF;
2642 IF msii_temp_data.ATTRIBUTE20 IS NULL THEN
2643 msii_temp_data.ATTRIBUTE20 := msi_record_temp.ATTRIBUTE20;
2644 ELSIF msii_temp_data.ATTRIBUTE20 = '!' THEN
2645 msii_temp_data.ATTRIBUTE20 := NULL;
2646 ELSIF msii_temp_data.ATTRIBUTE20 = g_FND_Upd_Null_Char THEN
2647 msii_temp_data.ATTRIBUTE20 := NULL;
2648 ELSE
2649 msii_temp_data.ATTRIBUTE20 := trim(msii_temp_data.ATTRIBUTE20);
2650 END IF;
2651 IF msii_temp_data.ATTRIBUTE22 IS NULL THEN
2652 msii_temp_data.ATTRIBUTE22 := msi_record_temp.ATTRIBUTE22;
2653 ELSIF msii_temp_data.ATTRIBUTE22 = '!' THEN
2654 msii_temp_data.ATTRIBUTE22 := NULL;
2655 ELSIF msii_temp_data.ATTRIBUTE22 = g_FND_Upd_Null_Char THEN
2656 msii_temp_data.ATTRIBUTE22 := NULL;
2657 ELSE
2658 msii_temp_data.ATTRIBUTE22 := trim(msii_temp_data.ATTRIBUTE22);
2659 END IF;
2660 IF msii_temp_data.ATTRIBUTE23 IS NULL THEN
2661 msii_temp_data.ATTRIBUTE23 := msi_record_temp.ATTRIBUTE23;
2662 ELSIF msii_temp_data.ATTRIBUTE23 = '!' THEN
2663 msii_temp_data.ATTRIBUTE23 := NULL;
2664 ELSIF msii_temp_data.ATTRIBUTE23 = g_FND_Upd_Null_Char THEN
2665 msii_temp_data.ATTRIBUTE23 := NULL;
2666 ELSE
2667 msii_temp_data.ATTRIBUTE23 := trim(msii_temp_data.ATTRIBUTE23);
2668 END IF;
2669 IF msii_temp_data.ATTRIBUTE25 IS NULL THEN
2670 msii_temp_data.ATTRIBUTE25 := msi_record_temp.ATTRIBUTE25;
2671 ELSIF msii_temp_data.ATTRIBUTE25 = '!' THEN
2672 msii_temp_data.ATTRIBUTE25 := NULL;
2673 ELSIF msii_temp_data.ATTRIBUTE25 = g_FND_Upd_Null_Char THEN
2674 msii_temp_data.ATTRIBUTE25 := NULL;
2675 ELSE
2676 msii_temp_data.ATTRIBUTE25 := trim(msii_temp_data.ATTRIBUTE25);
2677 END IF;
2678 IF msii_temp_data.ATTRIBUTE27 IS NULL THEN
2679 msii_temp_data.ATTRIBUTE27 := msi_record_temp.ATTRIBUTE27;
2680 ELSIF msii_temp_data.ATTRIBUTE27 = '!' THEN
2681 msii_temp_data.ATTRIBUTE27 := NULL;
2682 ELSIF msii_temp_data.ATTRIBUTE27 = g_FND_Upd_Null_Char THEN
2683 msii_temp_data.ATTRIBUTE27 := NULL;
2684 ELSE
2685 msii_temp_data.ATTRIBUTE27 := trim(msii_temp_data.ATTRIBUTE27);
2686 END IF;
2687 IF msii_temp_data.ATTRIBUTE29 IS NULL THEN
2688 msii_temp_data.ATTRIBUTE29 := msi_record_temp.ATTRIBUTE29;
2689 ELSIF msii_temp_data.ATTRIBUTE29 = '!' THEN
2690 msii_temp_data.ATTRIBUTE29 := NULL;
2691 ELSIF msii_temp_data.ATTRIBUTE29 = g_FND_Upd_Null_Char THEN
2692 msii_temp_data.ATTRIBUTE29 := NULL;
2693 ELSE
2694 msii_temp_data.ATTRIBUTE29 := trim(msii_temp_data.ATTRIBUTE29);
2695 END IF;
2696 IF msii_temp_data.ATTRIBUTE30 IS NULL THEN
2697 msii_temp_data.ATTRIBUTE30 := msi_record_temp.ATTRIBUTE30;
2698 ELSIF msii_temp_data.ATTRIBUTE30 = '!' THEN
2699 msii_temp_data.ATTRIBUTE30 := NULL;
2700 ELSIF msii_temp_data.ATTRIBUTE30 = g_FND_Upd_Null_Char THEN
2701 msii_temp_data.ATTRIBUTE30 := NULL;
2702 ELSE
2703 msii_temp_data.ATTRIBUTE30 := trim(msii_temp_data.ATTRIBUTE30);
2704 END IF;
2705 IF msii_temp_data.GLOBAL_ATTRIBUTE1 IS NULL THEN
2706 msii_temp_data.GLOBAL_ATTRIBUTE1 := msi_record_temp.GLOBAL_ATTRIBUTE1;
2707 ELSIF msii_temp_data.GLOBAL_ATTRIBUTE1 = '!' THEN
2708 msii_temp_data.GLOBAL_ATTRIBUTE1 := NULL;
2709 ELSIF msii_temp_data.GLOBAL_ATTRIBUTE1 = g_FND_Upd_Null_Char THEN
2710 msii_temp_data.GLOBAL_ATTRIBUTE1 := NULL;
2711 ELSE
2712 msii_temp_data.GLOBAL_ATTRIBUTE1 := trim(msii_temp_data.GLOBAL_ATTRIBUTE1);
2713 END IF;
2714 IF msii_temp_data.GLOBAL_ATTRIBUTE3 IS NULL THEN
2715 msii_temp_data.GLOBAL_ATTRIBUTE3 := msi_record_temp.GLOBAL_ATTRIBUTE3;
2716 ELSIF msii_temp_data.GLOBAL_ATTRIBUTE3 = '!' THEN
2717 msii_temp_data.GLOBAL_ATTRIBUTE3 := NULL;
2718 ELSIF msii_temp_data.GLOBAL_ATTRIBUTE3 = g_FND_Upd_Null_Char THEN
2719 msii_temp_data.GLOBAL_ATTRIBUTE3 := NULL;
2720 ELSE
2721 msii_temp_data.GLOBAL_ATTRIBUTE3 := trim(msii_temp_data.GLOBAL_ATTRIBUTE3);
2722 END IF;
2723 IF msii_temp_data.GLOBAL_ATTRIBUTE4 IS NULL THEN
2724 msii_temp_data.GLOBAL_ATTRIBUTE4 := msi_record_temp.GLOBAL_ATTRIBUTE4;
2725 ELSIF msii_temp_data.GLOBAL_ATTRIBUTE4 = '!' THEN
2726 msii_temp_data.GLOBAL_ATTRIBUTE4 := NULL;
2727 ELSIF msii_temp_data.GLOBAL_ATTRIBUTE4 = g_FND_Upd_Null_Char THEN
2728 msii_temp_data.GLOBAL_ATTRIBUTE4 := NULL;
2729 ELSE
2730 msii_temp_data.GLOBAL_ATTRIBUTE4 := trim(msii_temp_data.GLOBAL_ATTRIBUTE4);
2731 END IF;
2732 IF msii_temp_data.GLOBAL_ATTRIBUTE6 IS NULL THEN
2733 msii_temp_data.GLOBAL_ATTRIBUTE6 := msi_record_temp.GLOBAL_ATTRIBUTE6;
2734 ELSIF msii_temp_data.GLOBAL_ATTRIBUTE6 = '!' THEN
2735 msii_temp_data.GLOBAL_ATTRIBUTE6 := NULL;
2736 ELSIF msii_temp_data.GLOBAL_ATTRIBUTE6 = g_FND_Upd_Null_Char THEN
2737 msii_temp_data.GLOBAL_ATTRIBUTE6 := NULL;
2738 ELSE
2739 msii_temp_data.GLOBAL_ATTRIBUTE6 := trim(msii_temp_data.GLOBAL_ATTRIBUTE6);
2740 END IF;
2741 IF msii_temp_data.GLOBAL_ATTRIBUTE8 IS NULL THEN
2742 msii_temp_data.GLOBAL_ATTRIBUTE8 := msi_record_temp.GLOBAL_ATTRIBUTE8;
2743 ELSIF msii_temp_data.GLOBAL_ATTRIBUTE8 = '!' THEN
2744 msii_temp_data.GLOBAL_ATTRIBUTE8 := NULL;
2745 ELSIF msii_temp_data.GLOBAL_ATTRIBUTE8 = g_FND_Upd_Null_Char THEN
2746 msii_temp_data.GLOBAL_ATTRIBUTE8 := NULL;
2747 ELSE
2748 msii_temp_data.GLOBAL_ATTRIBUTE8 := trim(msii_temp_data.GLOBAL_ATTRIBUTE8);
2749 END IF;
2750 IF msii_temp_data.GLOBAL_ATTRIBUTE10 IS NULL THEN
2751 msii_temp_data.GLOBAL_ATTRIBUTE10 := msi_record_temp.GLOBAL_ATTRIBUTE10;
2752 ELSIF msii_temp_data.GLOBAL_ATTRIBUTE10 = '!' THEN
2753 msii_temp_data.GLOBAL_ATTRIBUTE10 := NULL;
2754 ELSIF msii_temp_data.GLOBAL_ATTRIBUTE10 = g_FND_Upd_Null_Char THEN
2755 msii_temp_data.GLOBAL_ATTRIBUTE10 := NULL;
2756 ELSE
2757 msii_temp_data.GLOBAL_ATTRIBUTE10 := trim(msii_temp_data.GLOBAL_ATTRIBUTE10);
2758 END IF;
2759 IF msii_temp_data.GLOBAL_ATTRIBUTE11 IS NULL THEN
2760 msii_temp_data.GLOBAL_ATTRIBUTE11 := msi_record_temp.GLOBAL_ATTRIBUTE11;
2761 ELSIF msii_temp_data.GLOBAL_ATTRIBUTE11 = '!' THEN
2762 msii_temp_data.GLOBAL_ATTRIBUTE11 := NULL;
2763 ELSIF msii_temp_data.GLOBAL_ATTRIBUTE11 = g_FND_Upd_Null_Char THEN
2764 msii_temp_data.GLOBAL_ATTRIBUTE11 := NULL;
2765 ELSE
2766 msii_temp_data.GLOBAL_ATTRIBUTE11 := trim(msii_temp_data.GLOBAL_ATTRIBUTE11);
2767 END IF;
2768 IF msii_temp_data.GLOBAL_ATTRIBUTE12 IS NULL THEN
2769 msii_temp_data.GLOBAL_ATTRIBUTE12 := msi_record_temp.GLOBAL_ATTRIBUTE12;
2770 ELSIF msii_temp_data.GLOBAL_ATTRIBUTE12 = '!' THEN
2771 msii_temp_data.GLOBAL_ATTRIBUTE12 := NULL;
2772 ELSIF msii_temp_data.GLOBAL_ATTRIBUTE12 = g_FND_Upd_Null_Char THEN
2773 msii_temp_data.GLOBAL_ATTRIBUTE12 := NULL;
2774 ELSE
2775 msii_temp_data.GLOBAL_ATTRIBUTE12 := trim(msii_temp_data.GLOBAL_ATTRIBUTE12);
2776 END IF;
2777 IF msii_temp_data.GLOBAL_ATTRIBUTE13 IS NULL THEN
2778 msii_temp_data.GLOBAL_ATTRIBUTE13 := msi_record_temp.GLOBAL_ATTRIBUTE13;
2779 ELSIF msii_temp_data.GLOBAL_ATTRIBUTE13 = '!' THEN
2780 msii_temp_data.GLOBAL_ATTRIBUTE13 := NULL;
2781 ELSIF msii_temp_data.GLOBAL_ATTRIBUTE13 = g_FND_Upd_Null_Char THEN
2782 msii_temp_data.GLOBAL_ATTRIBUTE13 := NULL;
2783 ELSE
2784 msii_temp_data.GLOBAL_ATTRIBUTE13 := trim(msii_temp_data.GLOBAL_ATTRIBUTE13);
2785 END IF;
2786 IF msii_temp_data.GLOBAL_ATTRIBUTE14 IS NULL THEN
2787 msii_temp_data.GLOBAL_ATTRIBUTE14 := msi_record_temp.GLOBAL_ATTRIBUTE14;
2788 ELSIF msii_temp_data.GLOBAL_ATTRIBUTE14 = '!' THEN
2789 msii_temp_data.GLOBAL_ATTRIBUTE14 := NULL;
2790 ELSIF msii_temp_data.GLOBAL_ATTRIBUTE14 = g_FND_Upd_Null_Char THEN
2791 msii_temp_data.GLOBAL_ATTRIBUTE14 := NULL;
2792 ELSE
2793 msii_temp_data.GLOBAL_ATTRIBUTE14 := trim(msii_temp_data.GLOBAL_ATTRIBUTE14);
2794 END IF;
2795 IF msii_temp_data.GLOBAL_ATTRIBUTE15 IS NULL THEN
2796 msii_temp_data.GLOBAL_ATTRIBUTE15 := msi_record_temp.GLOBAL_ATTRIBUTE15;
2797 ELSIF msii_temp_data.GLOBAL_ATTRIBUTE15 = '!' THEN
2798 msii_temp_data.GLOBAL_ATTRIBUTE15 := NULL;
2799 ELSIF msii_temp_data.GLOBAL_ATTRIBUTE15 = g_FND_Upd_Null_Char THEN
2800 msii_temp_data.GLOBAL_ATTRIBUTE15 := NULL;
2801 ELSE
2802 msii_temp_data.GLOBAL_ATTRIBUTE15 := trim(msii_temp_data.GLOBAL_ATTRIBUTE15);
2803 END IF;
2804 IF msii_temp_data.GLOBAL_ATTRIBUTE16 IS NULL THEN
2805 msii_temp_data.GLOBAL_ATTRIBUTE16 := msi_record_temp.GLOBAL_ATTRIBUTE16;
2806 ELSIF msii_temp_data.GLOBAL_ATTRIBUTE16 = '!' THEN
2807 msii_temp_data.GLOBAL_ATTRIBUTE16 := NULL;
2808 ELSIF msii_temp_data.GLOBAL_ATTRIBUTE16 = g_FND_Upd_Null_Char THEN
2809 msii_temp_data.GLOBAL_ATTRIBUTE16 := NULL;
2810 ELSE
2811 msii_temp_data.GLOBAL_ATTRIBUTE16 := trim(msii_temp_data.GLOBAL_ATTRIBUTE16);
2812 END IF;
2813
2814 IF msii_temp_data.GLOBAL_ATTRIBUTE17 IS NULL THEN
2815 msii_temp_data.GLOBAL_ATTRIBUTE17 := msi_record_temp.GLOBAL_ATTRIBUTE17;
2816 ELSIF msii_temp_data.GLOBAL_ATTRIBUTE17 = '!' THEN
2817 msii_temp_data.GLOBAL_ATTRIBUTE17 := NULL;
2818 ELSIF msii_temp_data.GLOBAL_ATTRIBUTE17 = g_FND_Upd_Null_Char THEN
2819 msii_temp_data.GLOBAL_ATTRIBUTE17 := NULL;
2820 ELSE
2821 msii_temp_data.GLOBAL_ATTRIBUTE17 := trim(msii_temp_data.GLOBAL_ATTRIBUTE17);
2822 END IF;
2823 IF msii_temp_data.GLOBAL_ATTRIBUTE18 IS NULL THEN
2824 msii_temp_data.GLOBAL_ATTRIBUTE18 := msi_record_temp.GLOBAL_ATTRIBUTE18;
2825 ELSIF msii_temp_data.GLOBAL_ATTRIBUTE18 = '!' THEN
2826 msii_temp_data.GLOBAL_ATTRIBUTE18 := NULL;
2827 ELSIF msii_temp_data.GLOBAL_ATTRIBUTE18 = g_FND_Upd_Null_Char THEN
2828 msii_temp_data.GLOBAL_ATTRIBUTE18 := NULL;
2829 ELSE
2830 msii_temp_data.GLOBAL_ATTRIBUTE18 := trim(msii_temp_data.GLOBAL_ATTRIBUTE18);
2831 END IF;
2832 IF msii_temp_data.GLOBAL_ATTRIBUTE19 IS NULL THEN
2833 msii_temp_data.GLOBAL_ATTRIBUTE19 := msi_record_temp.GLOBAL_ATTRIBUTE19;
2834 ELSIF msii_temp_data.GLOBAL_ATTRIBUTE19 = '!' THEN
2835 msii_temp_data.GLOBAL_ATTRIBUTE19 := NULL;
2836 ELSIF msii_temp_data.GLOBAL_ATTRIBUTE19 = g_FND_Upd_Null_Char THEN
2837 msii_temp_data.GLOBAL_ATTRIBUTE19 := NULL;
2838 ELSE
2839 msii_temp_data.GLOBAL_ATTRIBUTE19 := trim(msii_temp_data.GLOBAL_ATTRIBUTE19);
2840 END IF;
2841 IF msii_temp_data.GLOBAL_ATTRIBUTE20 IS NULL THEN
2842 msii_temp_data.GLOBAL_ATTRIBUTE20 := msi_record_temp.GLOBAL_ATTRIBUTE20;
2843 ELSIF msii_temp_data.GLOBAL_ATTRIBUTE20 = '!' THEN
2844 msii_temp_data.GLOBAL_ATTRIBUTE20 := NULL;
2845 ELSIF msii_temp_data.GLOBAL_ATTRIBUTE20 = g_FND_Upd_Null_Char THEN
2846 msii_temp_data.GLOBAL_ATTRIBUTE20 := NULL;
2847 ELSE
2848 msii_temp_data.GLOBAL_ATTRIBUTE20 := trim(msii_temp_data.GLOBAL_ATTRIBUTE20);
2849 END IF;
2850
2851 IF trim(msii_temp_data.PURCHASING_ITEM_FLAG) is null then
2852 msii_temp_data.PURCHASING_ITEM_FLAG := msi_record_temp.PURCHASING_ITEM_FLAG;
2853 ELSE
2854 msii_temp_data.PURCHASING_ITEM_FLAG := trim(msii_temp_data.PURCHASING_ITEM_FLAG);
2855 END IF;
2856 IF trim(msii_temp_data.SHIPPABLE_ITEM_FLAG) is null then
2857 msii_temp_data.SHIPPABLE_ITEM_FLAG := msi_record_temp.SHIPPABLE_ITEM_FLAG;
2858 ELSE
2859 msii_temp_data.SHIPPABLE_ITEM_FLAG := trim(msii_temp_data.SHIPPABLE_ITEM_FLAG);
2860 END IF;
2861 IF trim(msii_temp_data.INTERNAL_ORDER_FLAG) is null then
2862 msii_temp_data.INTERNAL_ORDER_FLAG := msi_record_temp.INTERNAL_ORDER_FLAG;
2863 ELSE
2864 msii_temp_data.INTERNAL_ORDER_FLAG := trim(msii_temp_data.INTERNAL_ORDER_FLAG);
2865 END IF;
2866 IF trim(msii_temp_data.INVENTORY_ITEM_FLAG) is null then
2867 msii_temp_data.INVENTORY_ITEM_FLAG := msi_record_temp.INVENTORY_ITEM_FLAG;
2868 ELSE
2869 msii_temp_data.INVENTORY_ITEM_FLAG := trim(msii_temp_data.INVENTORY_ITEM_FLAG);
2870 END IF;
2871 IF trim(msii_temp_data.INVENTORY_ASSET_FLAG) is null then
2872 msii_temp_data.INVENTORY_ASSET_FLAG := msi_record_temp.INVENTORY_ASSET_FLAG;
2873 ELSE
2874 msii_temp_data.INVENTORY_ASSET_FLAG := trim(msii_temp_data.INVENTORY_ASSET_FLAG);
2875 END IF;
2876 IF Trim(msii_temp_data.CUSTOMER_ORDER_ENABLED_FLAG) IS NULL THEN
2877 IF msii_temp_data.INVENTORY_ITEM_STATUS_CODE IS NULL THEN
2878 msii_temp_data.CUSTOMER_ORDER_ENABLED_FLAG := msi_record_temp.CUSTOMER_ORDER_ENABLED_FLAG;
2879 END IF;
2880 ELSE
2881 msii_temp_data.CUSTOMER_ORDER_ENABLED_FLAG := trim(msii_temp_data.CUSTOMER_ORDER_ENABLED_FLAG);
2882 END IF;
2883 IF trim(msii_temp_data.MTL_TRANSACTIONS_ENABLED_FLAG) is null then
2884 IF msii_temp_data.inventory_item_status_code IS NULL THEN
2885 msii_temp_data.MTL_TRANSACTIONS_ENABLED_FLAG := msi_record_temp.MTL_TRANSACTIONS_ENABLED_FLAG;
2886 END IF;
2887 ELSE
2888 msii_temp_data.MTL_TRANSACTIONS_ENABLED_FLAG := trim(msii_temp_data.MTL_TRANSACTIONS_ENABLED_FLAG);
2889 END IF;
2890 IF trim(msii_temp_data.STOCK_ENABLED_FLAG) is null then
2891 if msii_temp_data.inventory_item_status_code IS NULL THEN
2892 msii_temp_data.STOCK_ENABLED_FLAG := msi_record_temp.STOCK_ENABLED_FLAG;
2893 END IF;
2894 ELSE
2895 msii_temp_data.STOCK_ENABLED_FLAG := trim(msii_temp_data.STOCK_ENABLED_FLAG);
2896 END IF;
2897 IF trim(msii_temp_data.BUILD_IN_WIP_FLAG) is null then
2898 IF msii_temp_data.inventory_item_status_code is null then
2899 msii_temp_data.BUILD_IN_WIP_FLAG := msi_record_temp.BUILD_IN_WIP_FLAG;
2900 END IF;
2901 ELSE
2902 msii_temp_data.BUILD_IN_WIP_FLAG := trim(msii_temp_data.BUILD_IN_WIP_FLAG);
2903 END IF;
2904 IF trim(msii_temp_data.SO_TRANSACTIONS_FLAG) is null then
2905 msii_temp_data.SO_TRANSACTIONS_FLAG := msi_record_temp.SO_TRANSACTIONS_FLAG;
2906 ELSE
2907 msii_temp_data.SO_TRANSACTIONS_FLAG := trim(msii_temp_data.SO_TRANSACTIONS_FLAG);
2908 END IF;
2909 IF trim(msii_temp_data.PROCESS_EXECUTION_ENABLED_FLAG) is null then
2910 IF msii_temp_data.inventory_item_status_code is null then
2911 msii_temp_data.PROCESS_EXECUTION_ENABLED_FLAG := msi_record_temp.PROCESS_EXECUTION_ENABLED_FLAG;
2912 END IF;
2913 ELSE
2914 msii_temp_data.PROCESS_EXECUTION_ENABLED_FLAG := trim(msii_temp_data.PROCESS_EXECUTION_ENABLED_FLAG);
2915 END IF;
2916 IF msii_temp_data.ITEM_CATALOG_GROUP_ID IS NULL THEN
2917 msii_temp_data.ITEM_CATALOG_GROUP_ID := msi_record_temp.ITEM_CATALOG_GROUP_ID;
2918 ELSIF msii_temp_data.ITEM_CATALOG_GROUP_ID = -999999 THEN
2919 msii_temp_data.ITEM_CATALOG_GROUP_ID := NULL;
2920 ELSIF msii_temp_data.ITEM_CATALOG_GROUP_ID = g_FND_Upd_Null_NUM THEN
2921 msii_temp_data.ITEM_CATALOG_GROUP_ID := NULL;
2922 END IF;
2923 IF trim(msii_temp_data.RETURNABLE_FLAG) is null then
2924 msii_temp_data.RETURNABLE_FLAG := msi_record_temp.RETURNABLE_FLAG;
2925 ELSE
2926 msii_temp_data.RETURNABLE_FLAG := trim(msii_temp_data.RETURNABLE_FLAG);
2927 END IF;
2928 IF msii_temp_data.DEFAULT_SHIPPING_ORG IS NULL THEN
2929 msii_temp_data.DEFAULT_SHIPPING_ORG := msi_record_temp.DEFAULT_SHIPPING_ORG;
2930 ELSIF msii_temp_data.DEFAULT_SHIPPING_ORG = -999999 THEN
2931 msii_temp_data.DEFAULT_SHIPPING_ORG := NULL;
2932 ELSIF msii_temp_data.DEFAULT_SHIPPING_ORG = g_FND_Upd_Null_NUM THEN
2933 msii_temp_data.DEFAULT_SHIPPING_ORG := NULL;
2934 END IF;
2935 IF msii_temp_data.TAXABLE_FLAG IS NULL THEN
2936 msii_temp_data.TAXABLE_FLAG := msi_record_temp.TAXABLE_FLAG;
2937 ELSIF msii_temp_data.TAXABLE_FLAG = '!' THEN
2938 msii_temp_data.TAXABLE_FLAG := NULL;
2939 ELSIF msii_temp_data.TAXABLE_FLAG = g_FND_Upd_Null_Char THEN
2940 msii_temp_data.TAXABLE_FLAG := NULL;
2941 ELSE
2942 msii_temp_data.TAXABLE_FLAG := trim(msii_temp_data.TAXABLE_FLAG);
2943 END IF;
2944 IF msii_temp_data.QTY_RCV_EXCEPTION_CODE IS NULL THEN
2945 msii_temp_data.QTY_RCV_EXCEPTION_CODE := msi_record_temp.QTY_RCV_EXCEPTION_CODE;
2946 ELSIF msii_temp_data.QTY_RCV_EXCEPTION_CODE = '!' THEN
2947 msii_temp_data.QTY_RCV_EXCEPTION_CODE := NULL;
2948 ELSIF msii_temp_data.QTY_RCV_EXCEPTION_CODE = g_FND_Upd_Null_Char THEN
2949 msii_temp_data.QTY_RCV_EXCEPTION_CODE := NULL;
2950 ELSE
2951 msii_temp_data.QTY_RCV_EXCEPTION_CODE := trim(msii_temp_data.QTY_RCV_EXCEPTION_CODE);
2952 END IF;
2953 IF trim(msii_temp_data.ALLOW_ITEM_DESC_UPDATE_FLAG) is null then
2954 msii_temp_data.ALLOW_ITEM_DESC_UPDATE_FLAG := msi_record_temp.ALLOW_ITEM_DESC_UPDATE_FLAG;
2955 ELSE
2956 msii_temp_data.ALLOW_ITEM_DESC_UPDATE_FLAG := trim(msii_temp_data.ALLOW_ITEM_DESC_UPDATE_FLAG);
2957 END IF;
2958 IF msii_temp_data.RECEIPT_REQUIRED_FLAG IS NULL THEN
2959 msii_temp_data.RECEIPT_REQUIRED_FLAG := msi_record_temp.RECEIPT_REQUIRED_FLAG;
2960 ELSIF msii_temp_data.RECEIPT_REQUIRED_FLAG = '!' THEN
2961 msii_temp_data.RECEIPT_REQUIRED_FLAG := NULL;
2962 ELSIF msii_temp_data.RECEIPT_REQUIRED_FLAG = g_FND_Upd_Null_Char THEN
2963 msii_temp_data.RECEIPT_REQUIRED_FLAG := NULL;
2964 ELSE
2965 msii_temp_data.RECEIPT_REQUIRED_FLAG := trim(msii_temp_data.RECEIPT_REQUIRED_FLAG);
2966 END IF;
2967 IF msii_temp_data.HAZARD_CLASS_ID IS NULL THEN
2968 msii_temp_data.HAZARD_CLASS_ID := msi_record_temp.HAZARD_CLASS_ID;
2969 ELSIF msii_temp_data.HAZARD_CLASS_ID = -999999 THEN
2970 msii_temp_data.HAZARD_CLASS_ID := NULL;
2971 ELSIF msii_temp_data.HAZARD_CLASS_ID = g_FND_Upd_Null_NUM THEN
2972 msii_temp_data.HAZARD_CLASS_ID := NULL;
2973 END IF;
2974 IF msii_temp_data.QTY_RCV_TOLERANCE IS NULL THEN
2975 msii_temp_data.QTY_RCV_TOLERANCE := msi_record_temp.QTY_RCV_TOLERANCE;
2976 ELSIF msii_temp_data.QTY_RCV_TOLERANCE = -999999 THEN
2977 msii_temp_data.QTY_RCV_TOLERANCE := NULL;
2978 ELSIF msii_temp_data.QTY_RCV_TOLERANCE = g_FND_Upd_Null_NUM THEN
2979 msii_temp_data.QTY_RCV_TOLERANCE := NULL;
2980 END IF;
2981 IF msii_temp_data.UN_NUMBER_ID IS NULL THEN
2982 msii_temp_data.UN_NUMBER_ID := msi_record_temp.UN_NUMBER_ID;
2983 ELSIF msii_temp_data.UN_NUMBER_ID = -999999 THEN
2984 msii_temp_data.UN_NUMBER_ID := NULL;
2985 ELSIF msii_temp_data.UN_NUMBER_ID = g_FND_Upd_Null_NUM THEN
2986 msii_temp_data.UN_NUMBER_ID := NULL;
2987 END IF;
2988 IF msii_temp_data.ASSET_CATEGORY_ID IS NULL THEN
2989 msii_temp_data.ASSET_CATEGORY_ID := msi_record_temp.ASSET_CATEGORY_ID;
2990 ELSIF msii_temp_data.ASSET_CATEGORY_ID = -999999 THEN
2991 msii_temp_data.ASSET_CATEGORY_ID := NULL;
2992 ELSIF msii_temp_data.ASSET_CATEGORY_ID = g_FND_Upd_Null_NUM THEN
2993 msii_temp_data.ASSET_CATEGORY_ID := NULL;
2994 END IF;
2995 IF msii_temp_data.ROUNDING_FACTOR IS NULL THEN
2996 msii_temp_data.ROUNDING_FACTOR := msi_record_temp.ROUNDING_FACTOR;
2997 ELSIF msii_temp_data.ROUNDING_FACTOR = -999999 THEN
2998 msii_temp_data.ROUNDING_FACTOR := NULL;
2999 ELSIF msii_temp_data.ROUNDING_FACTOR = g_FND_Upd_Null_NUM THEN
3000 msii_temp_data.ROUNDING_FACTOR := NULL;
3001 END IF;
3002 IF msii_temp_data.ENFORCE_SHIP_TO_LOCATION_CODE IS NULL THEN
3003 msii_temp_data.ENFORCE_SHIP_TO_LOCATION_CODE := msi_record_temp.ENFORCE_SHIP_TO_LOCATION_CODE;
3004 ELSIF msii_temp_data.ENFORCE_SHIP_TO_LOCATION_CODE = '!' THEN
3005 msii_temp_data.ENFORCE_SHIP_TO_LOCATION_CODE := NULL;
3006 ELSIF msii_temp_data.ENFORCE_SHIP_TO_LOCATION_CODE = g_FND_Upd_Null_Char THEN
3007 msii_temp_data.ENFORCE_SHIP_TO_LOCATION_CODE := NULL;
3008 ELSE
3009 msii_temp_data.ENFORCE_SHIP_TO_LOCATION_CODE := trim(msii_temp_data.ENFORCE_SHIP_TO_LOCATION_CODE);
3010 END IF;
3011 IF msii_temp_data.ALLOW_UNORDERED_RECEIPTS_FLAG IS NULL THEN
3012 msii_temp_data.ALLOW_UNORDERED_RECEIPTS_FLAG := msi_record_temp.ALLOW_UNORDERED_RECEIPTS_FLAG;
3013 ELSIF msii_temp_data.ALLOW_UNORDERED_RECEIPTS_FLAG = '!' THEN
3014 msii_temp_data.ALLOW_UNORDERED_RECEIPTS_FLAG := NULL;
3015 ELSIF msii_temp_data.ALLOW_UNORDERED_RECEIPTS_FLAG = g_FND_Upd_Null_Char THEN
3016 msii_temp_data.ALLOW_UNORDERED_RECEIPTS_FLAG := NULL;
3017 ELSE
3018 msii_temp_data.ALLOW_UNORDERED_RECEIPTS_FLAG := trim(msii_temp_data.ALLOW_UNORDERED_RECEIPTS_FLAG);
3019 END IF;
3020 IF msii_temp_data.DAYS_EARLY_RECEIPT_ALLOWED IS NULL THEN
3021 msii_temp_data.DAYS_EARLY_RECEIPT_ALLOWED := msi_record_temp.DAYS_EARLY_RECEIPT_ALLOWED;
3022 ELSIF msii_temp_data.DAYS_EARLY_RECEIPT_ALLOWED = -999999 THEN
3023 msii_temp_data.DAYS_EARLY_RECEIPT_ALLOWED := NULL;
3024 ELSIF msii_temp_data.DAYS_EARLY_RECEIPT_ALLOWED = g_FND_Upd_Null_NUM THEN
3025 msii_temp_data.DAYS_EARLY_RECEIPT_ALLOWED := NULL;
3026 END IF;
3027 IF msii_temp_data.DAYS_LATE_RECEIPT_ALLOWED IS NULL THEN
3028 msii_temp_data.DAYS_LATE_RECEIPT_ALLOWED := msi_record_temp.DAYS_LATE_RECEIPT_ALLOWED;
3029 ELSIF msii_temp_data.DAYS_LATE_RECEIPT_ALLOWED = -999999 THEN
3030 msii_temp_data.DAYS_LATE_RECEIPT_ALLOWED := NULL;
3031 ELSIF msii_temp_data.DAYS_LATE_RECEIPT_ALLOWED = g_FND_Upd_Null_NUM THEN
3032 msii_temp_data.DAYS_LATE_RECEIPT_ALLOWED := NULL;
3033 END IF;
3034 IF msii_temp_data.RECEIVING_ROUTING_ID IS NULL THEN
3035 msii_temp_data.RECEIVING_ROUTING_ID := msi_record_temp.RECEIVING_ROUTING_ID;
3036 ELSIF msii_temp_data.RECEIVING_ROUTING_ID = -999999 THEN
3037 msii_temp_data.RECEIVING_ROUTING_ID := NULL;
3038 ELSIF msii_temp_data.RECEIVING_ROUTING_ID = g_FND_Upd_Null_NUM THEN
3039 msii_temp_data.RECEIVING_ROUTING_ID := NULL;
3040 END IF;
3041 IF msii_temp_data.INVOICE_CLOSE_TOLERANCE IS NULL THEN
3042 msii_temp_data.INVOICE_CLOSE_TOLERANCE := msi_record_temp.INVOICE_CLOSE_TOLERANCE;
3043 ELSIF msii_temp_data.INVOICE_CLOSE_TOLERANCE = -999999 THEN
3044 msii_temp_data.INVOICE_CLOSE_TOLERANCE := NULL;
3045 ELSIF msii_temp_data.INVOICE_CLOSE_TOLERANCE = g_FND_Upd_Null_NUM THEN
3046 msii_temp_data.INVOICE_CLOSE_TOLERANCE := NULL;
3047 END IF;
3048 IF msii_temp_data.AUTO_LOT_ALPHA_PREFIX IS NULL THEN
3049 msii_temp_data.AUTO_LOT_ALPHA_PREFIX := msi_record_temp.AUTO_LOT_ALPHA_PREFIX;
3050 ELSIF msii_temp_data.AUTO_LOT_ALPHA_PREFIX = '!' THEN
3051 msii_temp_data.AUTO_LOT_ALPHA_PREFIX := NULL;
3052 ELSIF msii_temp_data.AUTO_LOT_ALPHA_PREFIX = g_FND_Upd_Null_Char THEN
3053 msii_temp_data.AUTO_LOT_ALPHA_PREFIX := NULL;
3054 ELSE
3055 msii_temp_data.AUTO_LOT_ALPHA_PREFIX := trim(msii_temp_data.AUTO_LOT_ALPHA_PREFIX);
3056 END IF;
3057 IF msii_temp_data.LOT_CONTROL_CODE is null then
3058 msii_temp_data.LOT_CONTROL_CODE := msi_record_temp.LOT_CONTROL_CODE;
3059 END IF;
3060 IF msii_temp_data.SHELF_LIFE_CODE is null then
3061 msii_temp_data.SHELF_LIFE_CODE := msi_record_temp.SHELF_LIFE_CODE;
3062 END IF;
3063 IF msii_temp_data.SHELF_LIFE_DAYS IS NULL THEN
3064 msii_temp_data.SHELF_LIFE_DAYS := msi_record_temp.SHELF_LIFE_DAYS;
3065 ELSIF msii_temp_data.SHELF_LIFE_DAYS = -999999 THEN
3066 msii_temp_data.SHELF_LIFE_DAYS := NULL;
3067 ELSIF msii_temp_data.SHELF_LIFE_DAYS = g_FND_Upd_Null_NUM THEN
3068 msii_temp_data.SHELF_LIFE_DAYS := NULL;
3069 END IF;
3070 IF msii_temp_data.START_AUTO_SERIAL_NUMBER IS NULL THEN
3071 msii_temp_data.START_AUTO_SERIAL_NUMBER := msi_record_temp.START_AUTO_SERIAL_NUMBER;
3072 ELSIF msii_temp_data.START_AUTO_SERIAL_NUMBER = '!' THEN
3073 msii_temp_data.START_AUTO_SERIAL_NUMBER := NULL;
3074 ELSIF msii_temp_data.START_AUTO_SERIAL_NUMBER = g_FND_Upd_Null_Char THEN
3075 msii_temp_data.START_AUTO_SERIAL_NUMBER := NULL;
3076 ELSE
3077 msii_temp_data.START_AUTO_SERIAL_NUMBER := trim(msii_temp_data.START_AUTO_SERIAL_NUMBER);
3078 END IF;
3079 IF msii_temp_data.SOURCE_TYPE IS NULL THEN
3080 msii_temp_data.SOURCE_TYPE := msi_record_temp.SOURCE_TYPE;
3081 ELSIF msii_temp_data.SOURCE_TYPE = -999999 THEN
3082 msii_temp_data.SOURCE_TYPE := NULL;
3083 ELSIF msii_temp_data.SOURCE_TYPE = g_FND_Upd_Null_NUM THEN
3084 msii_temp_data.SOURCE_TYPE := NULL;
3085 END IF;
3086 IF msii_temp_data.SOURCE_SUBINVENTORY IS NULL THEN
3087 msii_temp_data.SOURCE_SUBINVENTORY := msi_record_temp.SOURCE_SUBINVENTORY;
3088 ELSIF msii_temp_data.SOURCE_SUBINVENTORY = '!' THEN
3089 msii_temp_data.SOURCE_SUBINVENTORY := NULL;
3090 ELSIF msii_temp_data.SOURCE_SUBINVENTORY = g_FND_Upd_Null_Char THEN
3091 msii_temp_data.SOURCE_SUBINVENTORY := NULL;
3092 ELSE
3093 msii_temp_data.SOURCE_SUBINVENTORY := trim(msii_temp_data.SOURCE_SUBINVENTORY);
3094 END IF;
3095 IF msii_temp_data.EXPENSE_ACCOUNT IS NULL THEN
3096 msii_temp_data.EXPENSE_ACCOUNT := msi_record_temp.EXPENSE_ACCOUNT;
3097 ELSIF msii_temp_data.EXPENSE_ACCOUNT = -999999 THEN
3098 msii_temp_data.EXPENSE_ACCOUNT := NULL;
3099 ELSIF msii_temp_data.EXPENSE_ACCOUNT = g_FND_Upd_Null_NUM THEN
3100 msii_temp_data.EXPENSE_ACCOUNT := NULL;
3101 END IF;
3102 IF msii_temp_data.RESTRICT_SUBINVENTORIES_CODE is null then
3103 msii_temp_data.RESTRICT_SUBINVENTORIES_CODE := msi_record_temp.RESTRICT_SUBINVENTORIES_CODE;
3104 END IF;
3105 IF msii_temp_data.UNIT_WEIGHT IS NULL THEN
3106 msii_temp_data.UNIT_WEIGHT := msi_record_temp.UNIT_WEIGHT;
3107 ELSIF msii_temp_data.UNIT_WEIGHT = -999999 THEN
3108 msii_temp_data.UNIT_WEIGHT := NULL;
3109 ELSIF msii_temp_data.UNIT_WEIGHT = g_FND_Upd_Null_NUM THEN
3110 msii_temp_data.UNIT_WEIGHT := NULL;
3111 END IF;
3112 IF msii_temp_data.VOLUME_UOM_CODE IS NULL THEN
3113 msii_temp_data.VOLUME_UOM_CODE := msi_record_temp.VOLUME_UOM_CODE;
3114 ELSIF msii_temp_data.VOLUME_UOM_CODE = '!' THEN
3115 msii_temp_data.VOLUME_UOM_CODE := NULL;
3116 ELSIF msii_temp_data.VOLUME_UOM_CODE = g_FND_Upd_Null_Char THEN
3117 msii_temp_data.VOLUME_UOM_CODE := NULL;
3118 ELSE
3119 msii_temp_data.VOLUME_UOM_CODE := trim(msii_temp_data.VOLUME_UOM_CODE);
3120 END IF;
3121 IF msii_temp_data.UNIT_VOLUME IS NULL THEN
3122 msii_temp_data.UNIT_VOLUME := msi_record_temp.UNIT_VOLUME;
3123 ELSIF msii_temp_data.UNIT_VOLUME = -999999 THEN
3124 msii_temp_data.UNIT_VOLUME := NULL;
3125 ELSIF msii_temp_data.UNIT_VOLUME = g_FND_Upd_Null_NUM THEN
3126 msii_temp_data.UNIT_VOLUME := NULL;
3127 END IF;
3128 IF msii_temp_data.LOCATION_CONTROL_CODE is null then
3129 msii_temp_data.LOCATION_CONTROL_CODE := msi_record_temp.LOCATION_CONTROL_CODE;
3130 END IF;
3131 IF msii_temp_data.ACCEPTABLE_EARLY_DAYS IS NULL THEN
3132 msii_temp_data.ACCEPTABLE_EARLY_DAYS := msi_record_temp.ACCEPTABLE_EARLY_DAYS;
3133 ELSIF msii_temp_data.ACCEPTABLE_EARLY_DAYS = -999999 THEN
3134 msii_temp_data.ACCEPTABLE_EARLY_DAYS := NULL;
3135 ELSIF msii_temp_data.ACCEPTABLE_EARLY_DAYS = g_FND_Upd_Null_NUM THEN
3136 msii_temp_data.ACCEPTABLE_EARLY_DAYS := NULL;
3137 END IF;
3138 IF msii_temp_data.PLANNING_TIME_FENCE_CODE is null then
3139 msii_temp_data.PLANNING_TIME_FENCE_CODE := msi_record_temp.PLANNING_TIME_FENCE_CODE;
3140 END IF;
3141 IF msii_temp_data.OVERRUN_PERCENTAGE IS NULL THEN
3142 msii_temp_data.OVERRUN_PERCENTAGE := msi_record_temp.OVERRUN_PERCENTAGE;
3143 ELSIF msii_temp_data.OVERRUN_PERCENTAGE = -999999 THEN
3144 msii_temp_data.OVERRUN_PERCENTAGE := NULL;
3145 ELSIF msii_temp_data.OVERRUN_PERCENTAGE = g_FND_Upd_Null_NUM THEN
3146 msii_temp_data.OVERRUN_PERCENTAGE := NULL;
3147 END IF;
3148 IF msii_temp_data.MRP_CALCULATE_ATP_FLAG is null then
3149 msii_temp_data.MRP_CALCULATE_ATP_FLAG := msi_record_temp.MRP_CALCULATE_ATP_FLAG;
3150 END IF;
3151 IF msii_temp_data.ACCEPTABLE_RATE_INCREASE IS NULL THEN
3152 msii_temp_data.ACCEPTABLE_RATE_INCREASE := msi_record_temp.ACCEPTABLE_RATE_INCREASE;
3153 ELSIF msii_temp_data.ACCEPTABLE_RATE_INCREASE = -999999 THEN
3154 msii_temp_data.ACCEPTABLE_RATE_INCREASE := NULL;
3155 ELSIF msii_temp_data.ACCEPTABLE_RATE_INCREASE = g_FND_Upd_Null_NUM THEN
3156 msii_temp_data.ACCEPTABLE_RATE_INCREASE := NULL;
3157 END IF;
3158 IF msii_temp_data.ACCEPTABLE_RATE_DECREASE IS NULL THEN
3159 msii_temp_data.ACCEPTABLE_RATE_DECREASE := msi_record_temp.ACCEPTABLE_RATE_DECREASE;
3160 ELSIF msii_temp_data.ACCEPTABLE_RATE_DECREASE = -999999 THEN
3161 msii_temp_data.ACCEPTABLE_RATE_DECREASE := NULL;
3162 ELSIF msii_temp_data.ACCEPTABLE_RATE_DECREASE = g_FND_Upd_Null_NUM THEN
3163 msii_temp_data.ACCEPTABLE_RATE_DECREASE := NULL;
3164 END IF;
3165 IF msii_temp_data.CUMULATIVE_TOTAL_LEAD_TIME IS NULL THEN
3166 msii_temp_data.CUMULATIVE_TOTAL_LEAD_TIME := msi_record_temp.CUMULATIVE_TOTAL_LEAD_TIME;
3167 ELSIF msii_temp_data.CUMULATIVE_TOTAL_LEAD_TIME = -999999 THEN
3168 msii_temp_data.CUMULATIVE_TOTAL_LEAD_TIME := NULL;
3169 ELSIF msii_temp_data.CUMULATIVE_TOTAL_LEAD_TIME = g_FND_Upd_Null_NUM THEN
3170 msii_temp_data.CUMULATIVE_TOTAL_LEAD_TIME := NULL;
3171 END IF;
3172 IF msii_temp_data.PLANNING_TIME_FENCE_DAYS IS NULL THEN
3173 msii_temp_data.PLANNING_TIME_FENCE_DAYS := msi_record_temp.PLANNING_TIME_FENCE_DAYS;
3174 ELSIF msii_temp_data.PLANNING_TIME_FENCE_DAYS = -999999 THEN
3175 msii_temp_data.PLANNING_TIME_FENCE_DAYS := NULL;
3176 ELSIF msii_temp_data.PLANNING_TIME_FENCE_DAYS = g_FND_Upd_Null_NUM THEN
3177 msii_temp_data.PLANNING_TIME_FENCE_DAYS := NULL;
3178 END IF;
3179 IF msii_temp_data.RELEASE_TIME_FENCE_CODE IS NULL THEN
3180 msii_temp_data.RELEASE_TIME_FENCE_CODE := msi_record_temp.RELEASE_TIME_FENCE_CODE;
3181 ELSIF msii_temp_data.RELEASE_TIME_FENCE_CODE = -999999 THEN
3182 msii_temp_data.RELEASE_TIME_FENCE_CODE := NULL;
3183 ELSIF msii_temp_data.RELEASE_TIME_FENCE_CODE = g_FND_Upd_Null_NUM THEN
3184 msii_temp_data.RELEASE_TIME_FENCE_CODE := NULL;
3185 END IF;
3186 IF msii_temp_data.END_ASSEMBLY_PEGGING_FLAG IS NULL THEN
3187 msii_temp_data.END_ASSEMBLY_PEGGING_FLAG := msi_record_temp.END_ASSEMBLY_PEGGING_FLAG;
3188 ELSIF msii_temp_data.END_ASSEMBLY_PEGGING_FLAG = '!' THEN
3189 msii_temp_data.END_ASSEMBLY_PEGGING_FLAG := NULL;
3190 ELSIF msii_temp_data.END_ASSEMBLY_PEGGING_FLAG = g_FND_Upd_Null_Char THEN
3191 msii_temp_data.END_ASSEMBLY_PEGGING_FLAG := NULL;
3192 ELSE
3193 msii_temp_data.END_ASSEMBLY_PEGGING_FLAG := trim(msii_temp_data.END_ASSEMBLY_PEGGING_FLAG);
3194 END IF;
3195 IF trim(msii_temp_data.REPETITIVE_PLANNING_FLAG) is null then
3196 msii_temp_data.REPETITIVE_PLANNING_FLAG := msi_record_temp.REPETITIVE_PLANNING_FLAG;
3197 ELSE
3198 msii_temp_data.REPETITIVE_PLANNING_FLAG := trim(msii_temp_data.REPETITIVE_PLANNING_FLAG);
3199 END IF;
3200 IF msii_temp_data.BOM_ITEM_TYPE is null then
3201 msii_temp_data.BOM_ITEM_TYPE := msi_record_temp.BOM_ITEM_TYPE;
3202 END IF;
3203 IF trim(msii_temp_data.PICK_COMPONENTS_FLAG) is null then
3204 msii_temp_data.PICK_COMPONENTS_FLAG := msi_record_temp.PICK_COMPONENTS_FLAG;
3205 ELSE
3206 msii_temp_data.PICK_COMPONENTS_FLAG := trim(msii_temp_data.PICK_COMPONENTS_FLAG);
3207 END IF;
3208 IF trim(msii_temp_data.REPLENISH_TO_ORDER_FLAG) is null then
3209 msii_temp_data.REPLENISH_TO_ORDER_FLAG := msi_record_temp.REPLENISH_TO_ORDER_FLAG;
3210 ELSE
3211 msii_temp_data.REPLENISH_TO_ORDER_FLAG := trim(msii_temp_data.REPLENISH_TO_ORDER_FLAG);
3212 END IF;
3213 IF trim(msii_temp_data.ATP_COMPONENTS_FLAG) is null then
3214 msii_temp_data.ATP_COMPONENTS_FLAG := msi_record_temp.ATP_COMPONENTS_FLAG;
3215 END IF;
3216 IF trim(msii_temp_data.ATP_FLAG) is null then
3217 msii_temp_data.ATP_FLAG := msi_record_temp.ATP_FLAG;
3218 ELSE
3219 msii_temp_data.ATP_FLAG := trim(msii_temp_data.ATP_FLAG);
3220 END IF;
3221 IF msii_temp_data.VARIABLE_LEAD_TIME IS NULL THEN
3222 msii_temp_data.VARIABLE_LEAD_TIME := msi_record_temp.VARIABLE_LEAD_TIME;
3223 ELSIF msii_temp_data.VARIABLE_LEAD_TIME = -999999 THEN
3224 msii_temp_data.VARIABLE_LEAD_TIME := NULL;
3225 ELSIF msii_temp_data.VARIABLE_LEAD_TIME = g_FND_Upd_Null_NUM THEN
3226 msii_temp_data.VARIABLE_LEAD_TIME := NULL;
3227 END IF;
3228 IF msii_temp_data.WIP_SUPPLY_LOCATOR_ID IS NULL THEN
3229 msii_temp_data.WIP_SUPPLY_LOCATOR_ID := msi_record_temp.WIP_SUPPLY_LOCATOR_ID;
3230 ELSIF msii_temp_data.WIP_SUPPLY_LOCATOR_ID = -999999 THEN
3231 msii_temp_data.WIP_SUPPLY_LOCATOR_ID := NULL;
3232 ELSIF msii_temp_data.WIP_SUPPLY_LOCATOR_ID = g_FND_Upd_Null_NUM THEN
3233 msii_temp_data.WIP_SUPPLY_LOCATOR_ID := NULL;
3234 END IF;
3235 msii_temp_data.PRIMARY_UOM_CODE := msi_record_temp.PRIMARY_UOM_CODE;
3236 msii_temp_data.PRIMARY_UNIT_OF_MEASURE := trim(msi_record_temp.PRIMARY_UNIT_OF_MEASURE);
3237 IF msii_temp_data.ALLOWED_UNITS_LOOKUP_CODE is null then
3238 msii_temp_data.ALLOWED_UNITS_LOOKUP_CODE := msi_record_temp.ALLOWED_UNITS_LOOKUP_CODE;
3239 END IF;
3240 IF msii_temp_data.COST_OF_SALES_ACCOUNT is null then
3241 msii_temp_data.COST_OF_SALES_ACCOUNT := msi_record_temp.COST_OF_SALES_ACCOUNT;
3242 END IF;
3243 IF msii_temp_data.SALES_ACCOUNT is null then
3244 msii_temp_data.SALES_ACCOUNT := msi_record_temp.SALES_ACCOUNT;
3245 END IF;
3246 IF msii_temp_data.INVENTORY_PLANNING_CODE is null then
3247 msii_temp_data.INVENTORY_PLANNING_CODE := msi_record_temp.INVENTORY_PLANNING_CODE;
3248 END IF;
3249 IF msii_temp_data.PLANNING_MAKE_BUY_CODE is null then
3250 msii_temp_data.PLANNING_MAKE_BUY_CODE := msi_record_temp.PLANNING_MAKE_BUY_CODE;
3251 END IF;
3252 IF msii_temp_data.FIXED_LOT_MULTIPLIER IS NULL THEN
3253 msii_temp_data.FIXED_LOT_MULTIPLIER := msi_record_temp.FIXED_LOT_MULTIPLIER;
3254 ELSIF msii_temp_data.FIXED_LOT_MULTIPLIER = -999999 THEN
3255 msii_temp_data.FIXED_LOT_MULTIPLIER := NULL;
3256 ELSIF msii_temp_data.FIXED_LOT_MULTIPLIER = g_FND_Upd_Null_NUM THEN
3257 msii_temp_data.FIXED_LOT_MULTIPLIER := NULL;
3258 END IF;
3259 IF msii_temp_data.CARRYING_COST IS NULL THEN
3260 msii_temp_data.CARRYING_COST := msi_record_temp.CARRYING_COST;
3261 ELSIF msii_temp_data.CARRYING_COST = -999999 THEN
3262 msii_temp_data.CARRYING_COST := NULL;
3263 ELSIF msii_temp_data.CARRYING_COST = g_FND_Upd_Null_NUM THEN
3264 msii_temp_data.CARRYING_COST := NULL;
3265 END IF;
3266 IF msii_temp_data.PREPROCESSING_LEAD_TIME IS NULL THEN
3267 msii_temp_data.PREPROCESSING_LEAD_TIME := msi_record_temp.PREPROCESSING_LEAD_TIME;
3268 ELSIF msii_temp_data.PREPROCESSING_LEAD_TIME = -999999 THEN
3269 msii_temp_data.PREPROCESSING_LEAD_TIME := NULL;
3270 ELSIF msii_temp_data.PREPROCESSING_LEAD_TIME = g_FND_Upd_Null_NUM THEN
3271 msii_temp_data.PREPROCESSING_LEAD_TIME := NULL;
3272 END IF;
3273 IF msii_temp_data.ORDER_COST IS NULL THEN
3274 msii_temp_data.ORDER_COST := msi_record_temp.ORDER_COST;
3275 ELSIF msii_temp_data.ORDER_COST = -999999 THEN
3276 msii_temp_data.ORDER_COST := NULL;
3277 ELSIF msii_temp_data.ORDER_COST = g_FND_Upd_Null_NUM THEN
3278 msii_temp_data.ORDER_COST := NULL;
3279 END IF;
3280 IF msii_temp_data.MRP_SAFETY_STOCK_CODE is null then
3281 msii_temp_data.MRP_SAFETY_STOCK_CODE := msi_record_temp.MRP_SAFETY_STOCK_CODE;
3282 END IF;
3283 IF msii_temp_data.MINIMUM_ORDER_QUANTITY IS NULL THEN
3284 msii_temp_data.MINIMUM_ORDER_QUANTITY := msi_record_temp.MINIMUM_ORDER_QUANTITY;
3285 ELSIF msii_temp_data.MINIMUM_ORDER_QUANTITY = -999999 THEN
3286 msii_temp_data.MINIMUM_ORDER_QUANTITY := NULL;
3287 ELSIF msii_temp_data.MINIMUM_ORDER_QUANTITY = g_FND_Upd_Null_NUM THEN
3288 msii_temp_data.MINIMUM_ORDER_QUANTITY := NULL;
3289
3290 END IF;
3291 IF msii_temp_data.FIXED_DAYS_SUPPLY IS NULL THEN
3292 msii_temp_data.FIXED_DAYS_SUPPLY := msi_record_temp.FIXED_DAYS_SUPPLY;
3293 ELSIF msii_temp_data.FIXED_DAYS_SUPPLY = -999999 THEN
3294 msii_temp_data.FIXED_DAYS_SUPPLY := NULL;
3295 ELSIF msii_temp_data.FIXED_DAYS_SUPPLY = g_FND_Upd_Null_NUM THEN
3296 msii_temp_data.FIXED_DAYS_SUPPLY := NULL;
3297 END IF;
3298 IF msii_temp_data.MAXIMUM_ORDER_QUANTITY IS NULL THEN
3299 msii_temp_data.MAXIMUM_ORDER_QUANTITY := msi_record_temp.MAXIMUM_ORDER_QUANTITY;
3300 ELSIF msii_temp_data.MAXIMUM_ORDER_QUANTITY = -999999 THEN
3301 msii_temp_data.MAXIMUM_ORDER_QUANTITY := NULL;
3302 ELSIF msii_temp_data.MAXIMUM_ORDER_QUANTITY = g_FND_Upd_Null_NUM THEN
3303 msii_temp_data.MAXIMUM_ORDER_QUANTITY := NULL;
3304 END IF;
3305 IF msii_temp_data.PICKING_RULE_ID IS NULL THEN
3306 msii_temp_data.PICKING_RULE_ID := msi_record_temp.PICKING_RULE_ID;
3307 ELSIF msii_temp_data.PICKING_RULE_ID = -999999 THEN
3308 msii_temp_data.PICKING_RULE_ID := NULL;
3309 ELSIF msii_temp_data.PICKING_RULE_ID = g_FND_Upd_Null_NUM THEN
3310 msii_temp_data.PICKING_RULE_ID := NULL;
3311 END IF;
3312 IF msii_temp_data.RESERVABLE_TYPE is null then
3313 msii_temp_data.RESERVABLE_TYPE := msi_record_temp.RESERVABLE_TYPE;
3314 END IF;
3315 IF msii_temp_data.NEGATIVE_MEASUREMENT_ERROR IS NULL THEN
3316 msii_temp_data.NEGATIVE_MEASUREMENT_ERROR := msi_record_temp.NEGATIVE_MEASUREMENT_ERROR;
3317 ELSIF msii_temp_data.NEGATIVE_MEASUREMENT_ERROR = -999999 THEN
3318 msii_temp_data.NEGATIVE_MEASUREMENT_ERROR := NULL;
3319 ELSIF msii_temp_data.NEGATIVE_MEASUREMENT_ERROR = g_FND_Upd_Null_NUM THEN
3320 msii_temp_data.NEGATIVE_MEASUREMENT_ERROR := NULL;
3321 END IF;
3322 IF trim(msii_temp_data.ENGINEERING_ECN_CODE) is null then
3323 msii_temp_data.ENGINEERING_ECN_CODE := msi_record_temp.ENGINEERING_ECN_CODE;
3324 ELSE
3325 msii_temp_data.ENGINEERING_ECN_CODE := trim(msii_temp_data.ENGINEERING_ECN_CODE);
3326 END IF;
3327 IF msii_temp_data.ENGINEERING_DATE is null then
3328 msii_temp_data.ENGINEERING_DATE := msi_record_temp.ENGINEERING_DATE;
3329 END IF;
3330 IF trim(msii_temp_data.SERVICEABLE_COMPONENT_FLAG) is null then
3331 msii_temp_data.SERVICEABLE_COMPONENT_FLAG := msi_record_temp.SERVICEABLE_COMPONENT_FLAG;
3332 ELSE
3333 msii_temp_data.SERVICEABLE_COMPONENT_FLAG := trim(msii_temp_data.SERVICEABLE_COMPONENT_FLAG);
3334 END IF;
3335 IF trim(msii_temp_data.SERVICEABLE_PRODUCT_FLAG) is null then
3336 msii_temp_data.SERVICEABLE_PRODUCT_FLAG := msi_record_temp.SERVICEABLE_PRODUCT_FLAG;
3337 ELSE
3338 msii_temp_data.SERVICEABLE_PRODUCT_FLAG := trim(msii_temp_data.SERVICEABLE_PRODUCT_FLAG);
3339 END IF;
3340 IF msii_temp_data.BASE_WARRANTY_SERVICE_ID is null then
3341 msii_temp_data.BASE_WARRANTY_SERVICE_ID := msi_record_temp.BASE_WARRANTY_SERVICE_ID;
3342 END IF;
3343 IF trim(msii_temp_data.PREVENTIVE_MAINTENANCE_FLAG) is null then
3344 msii_temp_data.PREVENTIVE_MAINTENANCE_FLAG := msi_record_temp.PREVENTIVE_MAINTENANCE_FLAG;
3345 ELSE
3346 msii_temp_data.PREVENTIVE_MAINTENANCE_FLAG := trim(msii_temp_data.PREVENTIVE_MAINTENANCE_FLAG);
3347 END IF;
3348 IF msii_temp_data.PRIMARY_SPECIALIST_ID is null then
3349 msii_temp_data.PRIMARY_SPECIALIST_ID := msi_record_temp.PRIMARY_SPECIALIST_ID;
3350 END IF;
3351 IF msii_temp_data.SERVICEABLE_ITEM_CLASS_ID is null then
3352 msii_temp_data.SERVICEABLE_ITEM_CLASS_ID := msi_record_temp.SERVICEABLE_ITEM_CLASS_ID;
3353 END IF;
3354 IF trim(msii_temp_data.TIME_BILLABLE_FLAG) is null then
3355 msii_temp_data.TIME_BILLABLE_FLAG := msi_record_temp.TIME_BILLABLE_FLAG;
3356 ELSE
3357 msii_temp_data.TIME_BILLABLE_FLAG := trim(msii_temp_data.TIME_BILLABLE_FLAG);
3358 END IF;
3359 IF trim(msii_temp_data.EXPENSE_BILLABLE_FLAG) is null then
3360 msii_temp_data.EXPENSE_BILLABLE_FLAG := msi_record_temp.EXPENSE_BILLABLE_FLAG;
3361 ELSE
3362 msii_temp_data.EXPENSE_BILLABLE_FLAG := trim(msii_temp_data.EXPENSE_BILLABLE_FLAG);
3363 END IF;
3364 IF trim(msii_temp_data.PRORATE_SERVICE_FLAG) is null then
3365 msii_temp_data.PRORATE_SERVICE_FLAG := msi_record_temp.PRORATE_SERVICE_FLAG;
3366 ELSE
3367 msii_temp_data.PRORATE_SERVICE_FLAG := trim(msii_temp_data.PRORATE_SERVICE_FLAG);
3368 END IF;
3369 IF msii_temp_data.SERVICE_DURATION_PERIOD_CODE IS NULL THEN
3370 msii_temp_data.SERVICE_DURATION_PERIOD_CODE := msi_record_temp.SERVICE_DURATION_PERIOD_CODE;
3371 ELSIF msii_temp_data.SERVICE_DURATION_PERIOD_CODE = '!' THEN
3372 msii_temp_data.SERVICE_DURATION_PERIOD_CODE := NULL;
3373 ELSIF msii_temp_data.SERVICE_DURATION_PERIOD_CODE = g_FND_Upd_Null_Char THEN
3374 msii_temp_data.SERVICE_DURATION_PERIOD_CODE := NULL;
3375 ELSE
3376 msii_temp_data.SERVICE_DURATION_PERIOD_CODE := trim(msii_temp_data.SERVICE_DURATION_PERIOD_CODE);
3377 END IF;
3378 IF msii_temp_data.SERVICE_DURATION IS NULL THEN
3379 msii_temp_data.SERVICE_DURATION := msi_record_temp.SERVICE_DURATION;
3380 ELSIF msii_temp_data.SERVICE_DURATION = -999999 THEN
3381 msii_temp_data.SERVICE_DURATION := NULL;
3382 ELSIF msii_temp_data.SERVICE_DURATION = g_FND_Upd_Null_NUM THEN
3383 msii_temp_data.SERVICE_DURATION := NULL;
3384 END IF;
3385 IF msii_temp_data.MAX_WARRANTY_AMOUNT is null then
3386 msii_temp_data.MAX_WARRANTY_AMOUNT := msi_record_temp.MAX_WARRANTY_AMOUNT;
3387 END IF;
3388 IF msii_temp_data.RESPONSE_TIME_VALUE is null then
3389 msii_temp_data.RESPONSE_TIME_VALUE := msi_record_temp.RESPONSE_TIME_VALUE;
3390 END IF;
3391 IF trim(msii_temp_data.NEW_REVISION_CODE) is null then
3392 msii_temp_data.NEW_REVISION_CODE := msi_record_temp.NEW_REVISION_CODE;
3393 ELSE
3394 msii_temp_data.NEW_REVISION_CODE := trim(msii_temp_data.NEW_REVISION_CODE);
3395 END IF;
3396 IF trim(msii_temp_data.INVOICEABLE_ITEM_FLAG) is null then
3397 msii_temp_data.INVOICEABLE_ITEM_FLAG := msi_record_temp.INVOICEABLE_ITEM_FLAG;
3398 ELSE
3399 msii_temp_data.INVOICEABLE_ITEM_FLAG := trim(msii_temp_data.INVOICEABLE_ITEM_FLAG);
3400 END IF;
3401 IF trim(msii_temp_data.INVOICE_ENABLED_FLAG) is null then
3402 IF msii_temp_data.inventory_item_status_code is null then
3403 msii_temp_data.INVOICE_ENABLED_FLAG := msi_record_temp.INVOICE_ENABLED_FLAG;
3404 END IF;
3405 ELSE
3406 msii_temp_data.INVOICE_ENABLED_FLAG := trim(msii_temp_data.INVOICE_ENABLED_FLAG);
3407 END IF;
3408 IF msii_temp_data.REQUEST_ID is null then
3409 msii_temp_data.REQUEST_ID := msi_record_temp.REQUEST_ID;
3410 END IF;
3411 IF msii_temp_data.PROGRAM_ID is null then
3412 msii_temp_data.PROGRAM_ID := msi_record_temp.PROGRAM_ID;
3413 END IF;
3414 IF msii_temp_data.PROGRAM_UPDATE_DATE is null then
3415 msii_temp_data.PROGRAM_UPDATE_DATE := msi_record_temp.PROGRAM_UPDATE_DATE;
3416 END IF;
3417 IF msii_temp_data.OUTSIDE_OPERATION_UOM_TYPE IS NULL THEN
3418 msii_temp_data.OUTSIDE_OPERATION_UOM_TYPE := msi_record_temp.OUTSIDE_OPERATION_UOM_TYPE;
3419 ELSIF msii_temp_data.OUTSIDE_OPERATION_UOM_TYPE = '!' THEN
3420 msii_temp_data.OUTSIDE_OPERATION_UOM_TYPE := NULL;
3421 ELSIF msii_temp_data.OUTSIDE_OPERATION_UOM_TYPE = g_FND_Upd_Null_Char THEN
3422 msii_temp_data.OUTSIDE_OPERATION_UOM_TYPE := NULL;
3423 ELSE
3424 msii_temp_data.OUTSIDE_OPERATION_UOM_TYPE := trim(msii_temp_data.OUTSIDE_OPERATION_UOM_TYPE);
3425 END IF;
3426 IF trim(msii_temp_data.COSTING_ENABLED_FLAG) is null then
3427 msii_temp_data.COSTING_ENABLED_FLAG := msi_record_temp.COSTING_ENABLED_FLAG;
3428 ELSE
3429 msii_temp_data.COSTING_ENABLED_FLAG := trim(msii_temp_data.COSTING_ENABLED_FLAG);
3430 END IF;
3431 IF trim(msii_temp_data.CYCLE_COUNT_ENABLED_FLAG) is null then
3432 msii_temp_data.CYCLE_COUNT_ENABLED_FLAG := msi_record_temp.CYCLE_COUNT_ENABLED_FLAG;
3433 ELSE
3434 msii_temp_data.CYCLE_COUNT_ENABLED_FLAG := trim(msii_temp_data.CYCLE_COUNT_ENABLED_FLAG);
3435 END IF;
3436 IF msii_temp_data.ITEM_TYPE IS NULL THEN
3437 msii_temp_data.ITEM_TYPE := msi_record_temp.ITEM_TYPE;
3438 ELSIF msii_temp_data.ITEM_TYPE = '!' THEN
3439 msii_temp_data.ITEM_TYPE := NULL;
3440 ELSIF msii_temp_data.ITEM_TYPE = g_FND_Upd_Null_Char THEN
3441 msii_temp_data.ITEM_TYPE := NULL;
3442 ELSE
3443 msii_temp_data.ITEM_TYPE := trim(msii_temp_data.ITEM_TYPE);
3444 END IF;
3445 IF trim(msii_temp_data.MODEL_CONFIG_CLAUSE_NAME) is null then
3446 msii_temp_data.MODEL_CONFIG_CLAUSE_NAME := msi_record_temp.MODEL_CONFIG_CLAUSE_NAME;
3447 ELSE
3448 msii_temp_data.MODEL_CONFIG_CLAUSE_NAME := trim(msii_temp_data.MODEL_CONFIG_CLAUSE_NAME);
3449 END IF;
3450 IF msii_temp_data.MRP_PLANNING_CODE is null then
3451 msii_temp_data.MRP_PLANNING_CODE := msi_record_temp.MRP_PLANNING_CODE;
3452 END IF;
3453 IF msii_temp_data.RETURN_INSPECTION_REQUIREMENT is null then
3454 msii_temp_data.RETURN_INSPECTION_REQUIREMENT := msi_record_temp.RETURN_INSPECTION_REQUIREMENT;
3455 END IF;
3456 IF trim(msii_temp_data.CONTAINER_ITEM_FLAG) is null then
3457 msii_temp_data.CONTAINER_ITEM_FLAG := msi_record_temp.CONTAINER_ITEM_FLAG;
3458 ELSE
3459 msii_temp_data.CONTAINER_ITEM_FLAG := trim(msii_temp_data.CONTAINER_ITEM_FLAG);
3460 END IF;
3461 IF trim(msii_temp_data.VEHICLE_ITEM_FLAG) is null then
3462 msii_temp_data.VEHICLE_ITEM_FLAG := msi_record_temp.VEHICLE_ITEM_FLAG;
3463 ELSE
3464 msii_temp_data.VEHICLE_ITEM_FLAG := trim(msii_temp_data.VEHICLE_ITEM_FLAG);
3465 END IF;
3466 IF msii_temp_data.MINIMUM_FILL_PERCENT IS NULL THEN
3467 msii_temp_data.MINIMUM_FILL_PERCENT := msi_record_temp.MINIMUM_FILL_PERCENT;
3468 ELSIF msii_temp_data.MINIMUM_FILL_PERCENT = -999999 THEN
3469 msii_temp_data.MINIMUM_FILL_PERCENT := NULL;
3470 ELSIF msii_temp_data.MINIMUM_FILL_PERCENT = g_FND_Upd_Null_NUM THEN
3471 msii_temp_data.MINIMUM_FILL_PERCENT := NULL;
3472 END IF;
3473 IF msii_temp_data.CONTAINER_TYPE_CODE IS NULL THEN
3474 msii_temp_data.CONTAINER_TYPE_CODE := msi_record_temp.CONTAINER_TYPE_CODE;
3475 ELSIF msii_temp_data.CONTAINER_TYPE_CODE = '!' THEN
3476 msii_temp_data.CONTAINER_TYPE_CODE := NULL;
3477 ELSIF msii_temp_data.CONTAINER_TYPE_CODE = g_FND_Upd_Null_Char THEN
3478 msii_temp_data.CONTAINER_TYPE_CODE := NULL;
3479 ELSE
3480 msii_temp_data.CONTAINER_TYPE_CODE := trim(msii_temp_data.CONTAINER_TYPE_CODE);
3481 END IF;
3482 IF trim(msii_temp_data.CHECK_SHORTAGES_FLAG) is null then
3483 msii_temp_data.CHECK_SHORTAGES_FLAG := msi_record_temp.CHECK_SHORTAGES_FLAG;
3484 END IF;
3485 IF msii_temp_data. EFFECTIVITY_CONTROL is null then
3486 msii_temp_data.EFFECTIVITY_CONTROL := msi_record_temp.EFFECTIVITY_CONTROL;
3487 END IF;
3488 IF msii_temp_data.OVERCOMPLETION_TOLERANCE_VALUE IS NULL THEN
3489 msii_temp_data.OVERCOMPLETION_TOLERANCE_VALUE := msi_record_temp.OVERCOMPLETION_TOLERANCE_VALUE;
3490 ELSIF msii_temp_data.OVERCOMPLETION_TOLERANCE_VALUE = g_Upd_Null_NUM THEN
3491 msii_temp_data.OVERCOMPLETION_TOLERANCE_VALUE := NULL;
3492 ELSIF msii_temp_data.OVERCOMPLETION_TOLERANCE_VALUE = g_FND_Upd_Null_NUM THEN
3493 msii_temp_data.OVERCOMPLETION_TOLERANCE_VALUE := NULL;
3494 END IF;
3495 IF msii_temp_data.UNDER_SHIPMENT_TOLERANCE IS NULL THEN
3496 msii_temp_data.UNDER_SHIPMENT_TOLERANCE := msi_record_temp.UNDER_SHIPMENT_TOLERANCE;
3497 ELSIF msii_temp_data.UNDER_SHIPMENT_TOLERANCE = g_Upd_Null_NUM THEN
3498 msii_temp_data.UNDER_SHIPMENT_TOLERANCE := NULL;
3499 ELSIF msii_temp_data.UNDER_SHIPMENT_TOLERANCE = g_FND_Upd_Null_NUM THEN
3500 msii_temp_data.UNDER_SHIPMENT_TOLERANCE := NULL;
3501 END IF;
3502 IF msii_temp_data.OVER_RETURN_TOLERANCE IS NULL THEN
3503 msii_temp_data.OVER_RETURN_TOLERANCE := msi_record_temp.OVER_RETURN_TOLERANCE;
3504 ELSIF msii_temp_data.OVER_RETURN_TOLERANCE = g_Upd_Null_NUM THEN
3505 msii_temp_data.OVER_RETURN_TOLERANCE := NULL;
3506 ELSIF msii_temp_data.OVER_RETURN_TOLERANCE = g_FND_Upd_Null_NUM THEN
3507 msii_temp_data.OVER_RETURN_TOLERANCE := NULL;
3508 END IF;
3509 IF msii_temp_data. EQUIPMENT_TYPE is null then
3510 msii_temp_data.EQUIPMENT_TYPE := msi_record_temp.EQUIPMENT_TYPE;
3511 END IF;
3512 IF msii_temp_data.RECOVERED_PART_DISP_CODE IS NULL THEN
3513 msii_temp_data.RECOVERED_PART_DISP_CODE := msi_record_temp.RECOVERED_PART_DISP_CODE;
3514 ELSIF msii_temp_data.RECOVERED_PART_DISP_CODE = '!' THEN
3515 msii_temp_data.RECOVERED_PART_DISP_CODE := NULL;
3516 ELSIF msii_temp_data.RECOVERED_PART_DISP_CODE = g_FND_Upd_Null_Char THEN
3517 msii_temp_data.RECOVERED_PART_DISP_CODE := NULL;
3518 ELSE
3519 msii_temp_data.RECOVERED_PART_DISP_CODE := trim(msii_temp_data.RECOVERED_PART_DISP_CODE);
3520 END IF;
3521 IF trim(msii_temp_data.EVENT_FLAG) is null then
3522 msii_temp_data.EVENT_FLAG := msi_record_temp.EVENT_FLAG;
3523 END IF;
3524 IF trim(msii_temp_data.ELECTRONIC_FLAG) is null then
3525 msii_temp_data.ELECTRONIC_FLAG := msi_record_temp.ELECTRONIC_FLAG;
3526 END IF;
3527 IF trim(msii_temp_data.VOL_DISCOUNT_EXEMPT_FLAG) is null then
3528 msii_temp_data.VOL_DISCOUNT_EXEMPT_FLAG := msi_record_temp.VOL_DISCOUNT_EXEMPT_FLAG;
3529 END IF;
3530 IF trim(msii_temp_data.COUPON_EXEMPT_FLAG) is null then
3531 msii_temp_data.COUPON_EXEMPT_FLAG := msi_record_temp.COUPON_EXEMPT_FLAG;
3532 END IF;
3533 IF msii_temp_data.ASSET_CREATION_CODE IS NULL THEN
3534 msii_temp_data.ASSET_CREATION_CODE := msi_record_temp.ASSET_CREATION_CODE;
3535 ELSIF msii_temp_data.ASSET_CREATION_CODE = '!' THEN
3536 msii_temp_data.ASSET_CREATION_CODE := NULL;
3537 ELSIF msii_temp_data.ASSET_CREATION_CODE = g_FND_Upd_Null_Char THEN
3538 msii_temp_data.ASSET_CREATION_CODE := NULL;
3539 ELSE
3540 msii_temp_data.ASSET_CREATION_CODE := trim(msii_temp_data.ASSET_CREATION_CODE);
3541 END IF;
3542 IF trim(msii_temp_data.ORDERABLE_ON_WEB_FLAG) is null then
3543 msii_temp_data.ORDERABLE_ON_WEB_FLAG := msi_record_temp.ORDERABLE_ON_WEB_FLAG;
3544 END IF;
3545 IF trim(msii_temp_data.BACK_ORDERABLE_FLAG) is null then
3546 msii_temp_data.BACK_ORDERABLE_FLAG := msi_record_temp.BACK_ORDERABLE_FLAG;
3547 END IF;
3548 IF trim(msii_temp_data.INDIVISIBLE_FLAG) is null then
3549 msii_temp_data.INDIVISIBLE_FLAG := msi_record_temp.INDIVISIBLE_FLAG;
3550 END IF;
3551 IF msii_temp_data.UNIT_LENGTH IS NULL THEN
3552 msii_temp_data.UNIT_LENGTH := msi_record_temp.UNIT_LENGTH;
3553 ELSIF msii_temp_data.UNIT_LENGTH = g_Upd_Null_NUM THEN
3554 msii_temp_data.UNIT_LENGTH := NULL;
3555 ELSIF msii_temp_data.UNIT_LENGTH = g_FND_Upd_Null_NUM THEN
3556 msii_temp_data.UNIT_LENGTH := NULL;
3557 END IF;
3558 IF msii_temp_data.UNIT_WIDTH IS NULL THEN
3559 msii_temp_data.UNIT_WIDTH := msi_record_temp.UNIT_WIDTH;
3560 ELSIF msii_temp_data.UNIT_WIDTH = g_Upd_Null_NUM THEN
3561 msii_temp_data.UNIT_WIDTH := NULL;
3562 ELSIF msii_temp_data.UNIT_WIDTH = g_FND_Upd_Null_NUM THEN
3563 msii_temp_data.UNIT_WIDTH := NULL;
3564 END IF;
3565 IF trim(msii_temp_data.BULK_PICKED_FLAG) is null then
3566 msii_temp_data.BULK_PICKED_FLAG := msi_record_temp.BULK_PICKED_FLAG;
3567 END IF;
3568 IF trim(msii_temp_data.LOT_STATUS_ENABLED) is null then
3569 msii_temp_data.LOT_STATUS_ENABLED := msi_record_temp.LOT_STATUS_ENABLED;
3570 END IF;
3571 IF trim(msii_temp_data.SERIAL_STATUS_ENABLED) is null then
3572 msii_temp_data.SERIAL_STATUS_ENABLED := msi_record_temp.SERIAL_STATUS_ENABLED;
3573 END IF;
3574 IF trim(msii_temp_data.LOT_SPLIT_ENABLED) is null then
3575 msii_temp_data.LOT_SPLIT_ENABLED := msi_record_temp.LOT_SPLIT_ENABLED;
3576 END IF;
3577 IF trim(msii_temp_data.LOT_MERGE_ENABLED) is null then
3578 msii_temp_data.LOT_MERGE_ENABLED := msi_record_temp.LOT_MERGE_ENABLED;
3579 END IF;
3580 IF msii_temp_data.OPERATION_SLACK_PENALTY IS NULL THEN
3581 msii_temp_data.OPERATION_SLACK_PENALTY := msi_record_temp.OPERATION_SLACK_PENALTY;
3582 ELSIF msii_temp_data.OPERATION_SLACK_PENALTY = g_Upd_Null_NUM THEN
3583 msii_temp_data.OPERATION_SLACK_PENALTY := NULL;
3584 ELSIF msii_temp_data.OPERATION_SLACK_PENALTY = g_FND_Upd_Null_NUM THEN
3585 msii_temp_data.OPERATION_SLACK_PENALTY := NULL;
3586 END IF;
3587 IF trim(msii_temp_data.FINANCING_ALLOWED_FLAG) is null then
3588 msii_temp_data.FINANCING_ALLOWED_FLAG := msi_record_temp.FINANCING_ALLOWED_FLAG;
3589 END IF;
3590 IF msii_temp_data.EAM_ACTIVITY_TYPE_CODE IS NULL THEN
3591 msii_temp_data.EAM_ACTIVITY_TYPE_CODE := msi_record_temp.EAM_ACTIVITY_TYPE_CODE;
3592 ELSIF msii_temp_data.EAM_ACTIVITY_TYPE_CODE = g_Upd_Null_CHAR THEN
3593 msii_temp_data.EAM_ACTIVITY_TYPE_CODE := NULL;
3594 ELSIF msii_temp_data.EAM_ACTIVITY_TYPE_CODE = g_FND_Upd_Null_Char THEN
3595 msii_temp_data.EAM_ACTIVITY_TYPE_CODE := NULL;
3596 ELSE
3597 msii_temp_data.EAM_ACTIVITY_TYPE_CODE := trim(msii_temp_data.EAM_ACTIVITY_TYPE_CODE);
3598 END IF;
3599 IF msii_temp_data.EAM_ACT_NOTIFICATION_FLAG IS NULL THEN
3600 msii_temp_data.EAM_ACT_NOTIFICATION_FLAG := msi_record_temp.EAM_ACT_NOTIFICATION_FLAG ;
3601 ELSIF msii_temp_data.EAM_ACT_NOTIFICATION_FLAG = g_Upd_Null_CHAR THEN
3602 msii_temp_data.EAM_ACT_NOTIFICATION_FLAG := NULL;
3603 ELSIF msii_temp_data.EAM_ACT_NOTIFICATION_FLAG = g_FND_Upd_Null_Char THEN
3604 msii_temp_data.EAM_ACT_NOTIFICATION_FLAG := NULL;
3605 ELSE
3606 msii_temp_data.EAM_ACT_NOTIFICATION_FLAG := trim(msii_temp_data.EAM_ACT_NOTIFICATION_FLAG);
3607 END IF;
3608 IF msii_temp_data.DUAL_UOM_CONTROL is null then
3609 msii_temp_data.DUAL_UOM_CONTROL := msi_record_temp.DUAL_UOM_CONTROL;
3610 END IF;
3611
3612 msii_temp_data.SECONDARY_UOM_CODE := trim(msi_record_temp.SECONDARY_UOM_CODE);
3613 msii_temp_data.DUAL_UOM_DEVIATION_HIGH := msi_record_temp.DUAL_UOM_DEVIATION_HIGH;
3614 msii_temp_data.DUAL_UOM_DEVIATION_LOW := msi_record_temp.DUAL_UOM_DEVIATION_LOW;
3615
3616 IF msii_temp_data.SUBSCRIPTION_DEPEND_FLAG IS NULL THEN
3617 msii_temp_data.SUBSCRIPTION_DEPEND_FLAG := msi_record_temp.SUBSCRIPTION_DEPEND_FLAG;
3618 ELSIF msii_temp_data.SUBSCRIPTION_DEPEND_FLAG = g_Upd_Null_CHAR THEN
3619 msii_temp_data.SUBSCRIPTION_DEPEND_FLAG := NULL;
3620 ELSIF msii_temp_data.SUBSCRIPTION_DEPEND_FLAG = g_FND_Upd_Null_Char THEN
3621 msii_temp_data.SUBSCRIPTION_DEPEND_FLAG := NULL;
3622 ELSE
3623 msii_temp_data.SUBSCRIPTION_DEPEND_FLAG := trim(msii_temp_data.SUBSCRIPTION_DEPEND_FLAG);
3624 END IF;
3625 IF msii_temp_data.SERV_BILLING_ENABLED_FLAG IS NULL THEN
3626 msii_temp_data.SERV_BILLING_ENABLED_FLAG := msi_record_temp.SERV_BILLING_ENABLED_FLAG;
3627 ELSIF msii_temp_data.SERV_BILLING_ENABLED_FLAG = g_Upd_Null_CHAR THEN
3628 msii_temp_data.SERV_BILLING_ENABLED_FLAG := NULL;
3629 ELSIF msii_temp_data.SERV_BILLING_ENABLED_FLAG = g_FND_Upd_Null_Char THEN
3630 msii_temp_data.SERV_BILLING_ENABLED_FLAG := NULL;
3631 ELSE
3632 msii_temp_data.SERV_BILLING_ENABLED_FLAG := trim(msii_temp_data.SERV_BILLING_ENABLED_FLAG);
3633 END IF;
3634 IF msii_temp_data.SERV_IMPORTANCE_LEVEL IS NULL THEN
3635 msii_temp_data.SERV_IMPORTANCE_LEVEL := msi_record_temp.SERV_IMPORTANCE_LEVEL;
3636 ELSIF msii_temp_data.SERV_IMPORTANCE_LEVEL = g_Upd_Null_NUM THEN
3637 msii_temp_data.SERV_IMPORTANCE_LEVEL := NULL;
3638 ELSIF msii_temp_data.SERV_IMPORTANCE_LEVEL = g_FND_Upd_Null_NUM THEN
3639 msii_temp_data.SERV_IMPORTANCE_LEVEL := NULL;
3640 END IF;
3641 IF msii_temp_data.LOT_TRANSLATE_ENABLED IS NULL THEN
3642 msii_temp_data.LOT_TRANSLATE_ENABLED := msi_record_temp.LOT_TRANSLATE_ENABLED;
3643 ELSIF msii_temp_data.LOT_TRANSLATE_ENABLED = g_Upd_Null_CHAR THEN
3644 msii_temp_data.LOT_TRANSLATE_ENABLED := NULL;
3645 ELSIF msii_temp_data.LOT_TRANSLATE_ENABLED = g_FND_Upd_Null_Char THEN
3646 msii_temp_data.LOT_TRANSLATE_ENABLED := NULL;
3647 ELSE
3648 msii_temp_data.LOT_TRANSLATE_ENABLED := trim(msii_temp_data.LOT_TRANSLATE_ENABLED);
3649 END IF;
3650 IF msii_temp_data.CREATE_SUPPLY_FLAG IS NULL THEN
3651 msii_temp_data.CREATE_SUPPLY_FLAG := msi_record_temp.CREATE_SUPPLY_FLAG;
3652 ELSIF msii_temp_data.CREATE_SUPPLY_FLAG = g_Upd_Null_CHAR THEN
3653 msii_temp_data.CREATE_SUPPLY_FLAG := NULL;
3654 ELSIF msii_temp_data.CREATE_SUPPLY_FLAG = g_FND_Upd_Null_Char THEN
3655 msii_temp_data.CREATE_SUPPLY_FLAG := NULL;
3656 ELSE
3657 msii_temp_data.CREATE_SUPPLY_FLAG := trim(msii_temp_data.CREATE_SUPPLY_FLAG);
3658 END IF;
3659 IF msii_temp_data.SUBSTITUTION_WINDOW_DAYS IS NULL THEN
3660 msii_temp_data.SUBSTITUTION_WINDOW_DAYS := msi_record_temp.SUBSTITUTION_WINDOW_DAYS;
3661 ELSIF msii_temp_data.SUBSTITUTION_WINDOW_DAYS = g_Upd_Null_NUM THEN
3662 msii_temp_data.SUBSTITUTION_WINDOW_DAYS := NULL;
3663 ELSIF msii_temp_data.SUBSTITUTION_WINDOW_DAYS = g_FND_Upd_Null_NUM THEN
3664 msii_temp_data.SUBSTITUTION_WINDOW_DAYS := NULL;
3665 END IF;
3666 IF msii_temp_data.LOT_SUBSTITUTION_ENABLED IS NULL THEN
3667 msii_temp_data.LOT_SUBSTITUTION_ENABLED := msi_record_temp.LOT_SUBSTITUTION_ENABLED;
3668 ELSIF msii_temp_data.LOT_SUBSTITUTION_ENABLED = g_Upd_Null_CHAR THEN
3669 msii_temp_data.LOT_SUBSTITUTION_ENABLED := NULL;
3670 ELSIF msii_temp_data.LOT_SUBSTITUTION_ENABLED = g_FND_Upd_Null_Char THEN
3671 msii_temp_data.LOT_SUBSTITUTION_ENABLED := NULL;
3672 ELSE
3673 msii_temp_data.LOT_SUBSTITUTION_ENABLED := trim(msii_temp_data.LOT_SUBSTITUTION_ENABLED);
3674 END IF;
3675 IF msii_temp_data.EAM_ACTIVITY_SOURCE_CODE IS NULL THEN
3676 msii_temp_data.EAM_ACTIVITY_SOURCE_CODE := msi_record_temp.EAM_ACTIVITY_SOURCE_CODE;
3677 ELSIF msii_temp_data.EAM_ACTIVITY_SOURCE_CODE = g_Upd_Null_CHAR THEN
3678 msii_temp_data.EAM_ACTIVITY_SOURCE_CODE := NULL;
3679 ELSIF msii_temp_data.EAM_ACTIVITY_SOURCE_CODE = g_FND_Upd_Null_Char THEN
3680 msii_temp_data.EAM_ACTIVITY_SOURCE_CODE := NULL;
3681 ELSE
3682 msii_temp_data.EAM_ACTIVITY_SOURCE_CODE := trim(msii_temp_data.EAM_ACTIVITY_SOURCE_CODE);
3683 END IF;
3684 IF msii_temp_data.CONFIG_MODEL_TYPE IS NULL THEN
3685 msii_temp_data.CONFIG_MODEL_TYPE := msi_record_temp.CONFIG_MODEL_TYPE;
3686 ELSIF msii_temp_data.CONFIG_MODEL_TYPE = g_Upd_Null_CHAR THEN
3687 msii_temp_data.CONFIG_MODEL_TYPE := NULL;
3688 ELSIF msii_temp_data.CONFIG_MODEL_TYPE = g_FND_Upd_Null_Char THEN
3689 msii_temp_data.CONFIG_MODEL_TYPE := NULL;
3690 ELSE
3691 msii_temp_data.CONFIG_MODEL_TYPE := trim(msii_temp_data.CONFIG_MODEL_TYPE);
3692 END IF;
3693 msii_temp_data.TRACKING_QUANTITY_IND := trim(msi_record_temp.TRACKING_QUANTITY_IND);
3694 msii_temp_data.ONT_PRICING_QTY_SOURCE := trim(msi_record_temp.ONT_PRICING_QTY_SOURCE);
3695 msii_temp_data.SECONDARY_DEFAULT_IND := trim(msi_record_temp.SECONDARY_DEFAULT_IND);
3696 IF msii_temp_data.CONFIG_MATCH IS NULL THEN
3697 msii_temp_data.CONFIG_MATCH := msi_record_temp.CONFIG_MATCH;
3698 ELSIF msii_temp_data.CONFIG_MATCH = g_Upd_Null_CHAR THEN
3699 msii_temp_data.CONFIG_MATCH := NULL;
3700 ELSIF msii_temp_data.CONFIG_MATCH = g_FND_Upd_Null_Char THEN
3701 msii_temp_data.CONFIG_MATCH := NULL;
3702 ELSE
3703 msii_temp_data.CONFIG_MATCH := trim(msii_temp_data.CONFIG_MATCH);
3704 END IF;
3705 IF msii_temp_data.CURRENT_PHASE_ID IS NULL THEN
3706 msii_temp_data.CURRENT_PHASE_ID := msi_record_temp.CURRENT_PHASE_ID;
3707 ELSIF msii_temp_data.CURRENT_PHASE_ID = -999999 THEN
3708 msii_temp_data.CURRENT_PHASE_ID := NULL;
3709 ELSIF msii_temp_data.CURRENT_PHASE_ID = g_FND_Upd_Null_NUM THEN
3710 msii_temp_data.CURRENT_PHASE_ID := NULL;
3711 END IF;
3712 IF msii_temp_data.VMI_MINIMUM_DAYS IS NULL THEN
3713 msii_temp_data.VMI_MINIMUM_DAYS := msi_record_temp.VMI_MINIMUM_DAYS;
3714 ELSIF msii_temp_data.VMI_MINIMUM_DAYS = g_Upd_Null_NUM THEN
3715 msii_temp_data.VMI_MINIMUM_DAYS := NULL;
3716 ELSIF msii_temp_data.VMI_MINIMUM_DAYS = g_FND_Upd_Null_NUM THEN
3717 msii_temp_data.VMI_MINIMUM_DAYS := NULL;
3718 END IF;
3719 IF msii_temp_data.VMI_MAXIMUM_DAYS IS NULL THEN
3720 msii_temp_data.VMI_MAXIMUM_DAYS := msi_record_temp.VMI_MAXIMUM_DAYS;
3721 ELSIF msii_temp_data.VMI_MAXIMUM_DAYS = g_Upd_Null_NUM THEN
3722 msii_temp_data.VMI_MAXIMUM_DAYS := NULL;
3723 ELSIF msii_temp_data.VMI_MAXIMUM_DAYS = g_FND_Upd_Null_NUM THEN
3724 msii_temp_data.VMI_MAXIMUM_DAYS := NULL;
3725 END IF;
3726 IF msii_temp_data.SO_AUTHORIZATION_FLAG IS NULL THEN
3727 msii_temp_data.SO_AUTHORIZATION_FLAG := msi_record_temp.SO_AUTHORIZATION_FLAG;
3728 ELSIF msii_temp_data.SO_AUTHORIZATION_FLAG = g_Upd_Null_NUM THEN
3729 msii_temp_data.SO_AUTHORIZATION_FLAG := NULL;
3730 ELSIF msii_temp_data.SO_AUTHORIZATION_FLAG = g_FND_Upd_Null_NUM THEN
3731 msii_temp_data.SO_AUTHORIZATION_FLAG := NULL;
3732 END IF;
3733 IF msii_temp_data.CONSIGNED_FLAG IS NULL THEN
3734 msii_temp_data.CONSIGNED_FLAG := msi_record_temp.CONSIGNED_FLAG;
3735 ELSIF msii_temp_data.CONSIGNED_FLAG = g_Upd_Null_NUM THEN
3736 msii_temp_data.CONSIGNED_FLAG := NULL;
3737 ELSIF msii_temp_data.CONSIGNED_FLAG = g_FND_Upd_Null_NUM THEN
3738 msii_temp_data.CONSIGNED_FLAG := NULL;
3739 END IF;
3740 IF msii_temp_data.FORECAST_HORIZON IS NULL THEN
3741 msii_temp_data.FORECAST_HORIZON := msi_record_temp.FORECAST_HORIZON;
3742 ELSIF msii_temp_data.FORECAST_HORIZON = g_Upd_Null_NUM THEN
3743 msii_temp_data.FORECAST_HORIZON := NULL;
3744 ELSIF msii_temp_data.FORECAST_HORIZON = g_FND_Upd_Null_NUM THEN
3745 msii_temp_data.FORECAST_HORIZON := NULL;
3746 END IF;
3747 IF msii_temp_data.DAYS_TGT_INV_SUPPLY IS NULL THEN
3748 msii_temp_data.DAYS_TGT_INV_SUPPLY := msi_record_temp.DAYS_TGT_INV_SUPPLY;
3749 ELSIF msii_temp_data.DAYS_TGT_INV_SUPPLY = g_Upd_Null_NUM THEN
3750 msii_temp_data.DAYS_TGT_INV_SUPPLY := NULL;
3751 ELSIF msii_temp_data.DAYS_TGT_INV_SUPPLY = g_FND_Upd_Null_NUM THEN
3752 msii_temp_data.DAYS_TGT_INV_SUPPLY := NULL;
3753 END IF;
3754 IF msii_temp_data.DAYS_TGT_INV_WINDOW IS NULL THEN
3755 msii_temp_data.DAYS_TGT_INV_WINDOW := msi_record_temp.DAYS_TGT_INV_WINDOW;
3756 ELSIF msii_temp_data.DAYS_TGT_INV_WINDOW = g_Upd_Null_NUM THEN
3757 msii_temp_data.DAYS_TGT_INV_WINDOW := NULL;
3758 ELSIF msii_temp_data.DAYS_TGT_INV_WINDOW = g_FND_Upd_Null_NUM THEN
3759 msii_temp_data.DAYS_TGT_INV_WINDOW := NULL;
3760 END IF;
3761 IF msii_temp_data.OVER_SHIPMENT_TOLERANCE IS NULL THEN
3762 msii_temp_data.OVER_SHIPMENT_TOLERANCE := msi_record_temp.OVER_SHIPMENT_TOLERANCE;
3763 ELSIF msii_temp_data.OVER_SHIPMENT_TOLERANCE = g_Upd_Null_NUM THEN
3764 msii_temp_data.OVER_SHIPMENT_TOLERANCE := NULL;
3765 ELSIF msii_temp_data.OVER_SHIPMENT_TOLERANCE = g_FND_Upd_Null_NUM THEN
3766 msii_temp_data.OVER_SHIPMENT_TOLERANCE := NULL;
3767 END IF;
3768 IF msii_temp_data.UNDER_RETURN_TOLERANCE IS NULL THEN
3769 msii_temp_data.UNDER_RETURN_TOLERANCE := msi_record_temp.UNDER_RETURN_TOLERANCE;
3770 ELSIF msii_temp_data.UNDER_RETURN_TOLERANCE = g_Upd_Null_NUM THEN
3771 msii_temp_data.UNDER_RETURN_TOLERANCE := NULL;
3772 ELSIF msii_temp_data.UNDER_RETURN_TOLERANCE = g_FND_Upd_Null_NUM THEN
3773 msii_temp_data.UNDER_RETURN_TOLERANCE := NULL;
3774 END IF;
3775 IF trim(msii_temp_data.DEFECT_TRACKING_ON_FLAG) is null then
3776 msii_temp_data.DEFECT_TRACKING_ON_FLAG := msi_record_temp.DEFECT_TRACKING_ON_FLAG;
3777 END IF;
3778 IF trim(msii_temp_data.DOWNLOADABLE_FLAG) is null then
3779 msii_temp_data.DOWNLOADABLE_FLAG := msi_record_temp.DOWNLOADABLE_FLAG;
3780 END IF;
3781 IF trim(msii_temp_data.COMMS_NL_TRACKABLE_FLAG) is null then
3782 msii_temp_data.COMMS_NL_TRACKABLE_FLAG := msi_record_temp.COMMS_NL_TRACKABLE_FLAG;
3783 END IF;
3784 IF trim(msii_temp_data.COMMS_ACTIVATION_REQD_FLAG) is null then
3785 msii_temp_data.COMMS_ACTIVATION_REQD_FLAG := msi_record_temp.COMMS_ACTIVATION_REQD_FLAG;
3786 END IF;
3787 IF trim(msii_temp_data.WEB_STATUS) is null then
3788 msii_temp_data.WEB_STATUS := msi_record_temp.WEB_STATUS;
3789 ELSE
3790 msii_temp_data.WEB_STATUS := trim(msii_temp_data.WEB_STATUS);
3791 END IF;
3792 IF msii_temp_data.DIMENSION_UOM_CODE IS NULL THEN
3793 msii_temp_data.DIMENSION_UOM_CODE := msi_record_temp.DIMENSION_UOM_CODE;
3794 ELSIF msii_temp_data.DIMENSION_UOM_CODE = '!' THEN
3795 msii_temp_data.DIMENSION_UOM_CODE := NULL;
3796 ELSIF msii_temp_data.DIMENSION_UOM_CODE = g_FND_Upd_Null_Char THEN
3797 msii_temp_data.DIMENSION_UOM_CODE := NULL;
3798 ELSE
3799 msii_temp_data.DIMENSION_UOM_CODE := trim(msii_temp_data.DIMENSION_UOM_CODE);
3800 END IF;
3801 IF msii_temp_data.UNIT_HEIGHT IS NULL THEN
3802 msii_temp_data.UNIT_HEIGHT := msi_record_temp.UNIT_HEIGHT;
3803 ELSIF msii_temp_data.UNIT_HEIGHT = g_Upd_Null_NUM THEN
3804 msii_temp_data.UNIT_HEIGHT := NULL;
3805 ELSIF msii_temp_data.UNIT_HEIGHT = g_FND_Upd_Null_NUM THEN
3806 msii_temp_data.UNIT_HEIGHT := NULL;
3807 END IF;
3808 IF msii_temp_data.DEFAULT_LOT_STATUS_ID IS NULL THEN
3809 msii_temp_data.DEFAULT_LOT_STATUS_ID := msi_record_temp.DEFAULT_LOT_STATUS_ID;
3810 ELSIF msii_temp_data.DEFAULT_LOT_STATUS_ID = g_Upd_Null_NUM THEN
3811 msii_temp_data.DEFAULT_LOT_STATUS_ID := NULL;
3812 ELSIF msii_temp_data.DEFAULT_LOT_STATUS_ID = g_FND_Upd_Null_NUM THEN
3813 msii_temp_data.DEFAULT_LOT_STATUS_ID := NULL;
3814 END IF;
3815 IF msii_temp_data.INVENTORY_CARRY_PENALTY IS NULL THEN
3816 msii_temp_data.INVENTORY_CARRY_PENALTY := msi_record_temp.INVENTORY_CARRY_PENALTY;
3817 ELSIF msii_temp_data.INVENTORY_CARRY_PENALTY = g_Upd_Null_NUM THEN
3818 msii_temp_data.INVENTORY_CARRY_PENALTY := NULL;
3819 ELSIF msii_temp_data.INVENTORY_CARRY_PENALTY = g_FND_Upd_Null_NUM THEN
3820 msii_temp_data.INVENTORY_CARRY_PENALTY := NULL;
3821 END IF;
3822 IF msii_temp_data.EAM_ITEM_TYPE IS NULL THEN
3823 msii_temp_data.EAM_ITEM_TYPE := msi_record_temp.EAM_ITEM_TYPE;
3824 ELSIF msii_temp_data.EAM_ITEM_TYPE = g_Upd_Null_NUM THEN
3825 msii_temp_data.EAM_ITEM_TYPE := NULL;
3826 ELSIF msii_temp_data.EAM_ITEM_TYPE = g_FND_Upd_Null_NUM THEN
3827 msii_temp_data.EAM_ITEM_TYPE := NULL;
3828 END IF;
3829 IF msii_temp_data.EAM_ACTIVITY_CAUSE_CODE IS NULL THEN
3830 msii_temp_data.EAM_ACTIVITY_CAUSE_CODE := msi_record_temp.EAM_ACTIVITY_CAUSE_CODE;
3831 ELSIF msii_temp_data.EAM_ACTIVITY_CAUSE_CODE = g_Upd_Null_CHAR THEN
3832 msii_temp_data.EAM_ACTIVITY_CAUSE_CODE := NULL;
3833 ELSIF msii_temp_data.EAM_ACTIVITY_CAUSE_CODE = g_FND_Upd_Null_Char THEN
3834 msii_temp_data.EAM_ACTIVITY_CAUSE_CODE := NULL;
3835 ELSE
3836 msii_temp_data.EAM_ACTIVITY_CAUSE_CODE := trim(msii_temp_data.EAM_ACTIVITY_CAUSE_CODE);
3837 END IF;
3838 IF msii_temp_data.EAM_ACT_SHUTDOWN_STATUS IS NULL THEN
3839 msii_temp_data.EAM_ACT_SHUTDOWN_STATUS := msi_record_temp.EAM_ACT_SHUTDOWN_STATUS;
3840 ELSIF msii_temp_data.EAM_ACT_SHUTDOWN_STATUS = g_Upd_Null_CHAR THEN
3841 msii_temp_data.EAM_ACT_SHUTDOWN_STATUS := NULL;
3842 ELSIF msii_temp_data.EAM_ACT_SHUTDOWN_STATUS = g_FND_Upd_Null_Char THEN
3843 msii_temp_data.EAM_ACT_SHUTDOWN_STATUS := NULL;
3844 ELSE
3845 msii_temp_data.EAM_ACT_SHUTDOWN_STATUS := trim(msii_temp_data.EAM_ACT_SHUTDOWN_STATUS);
3846 END IF;
3847 IF msii_temp_data.CONTRACT_ITEM_TYPE_CODE IS NULL THEN
3848 msii_temp_data.CONTRACT_ITEM_TYPE_CODE := msi_record_temp.CONTRACT_ITEM_TYPE_CODE;
3849 ELSIF msii_temp_data.CONTRACT_ITEM_TYPE_CODE = g_Upd_Null_CHAR THEN
3850 msii_temp_data.CONTRACT_ITEM_TYPE_CODE := NULL;
3851 ELSIF msii_temp_data.CONTRACT_ITEM_TYPE_CODE = g_FND_Upd_Null_Char THEN
3852 msii_temp_data.CONTRACT_ITEM_TYPE_CODE := NULL;
3853 ELSE
3854 msii_temp_data.CONTRACT_ITEM_TYPE_CODE := trim(msii_temp_data.CONTRACT_ITEM_TYPE_CODE);
3855 END IF;
3856 IF msii_temp_data.SERV_REQ_ENABLED_CODE IS NULL THEN
3857 msii_temp_data.SERV_REQ_ENABLED_CODE := msi_record_temp.SERV_REQ_ENABLED_CODE;
3858 ELSIF msii_temp_data.SERV_REQ_ENABLED_CODE = g_Upd_Null_CHAR THEN
3859 msii_temp_data.SERV_REQ_ENABLED_CODE := NULL;
3860 ELSIF msii_temp_data.SERV_REQ_ENABLED_CODE = g_FND_Upd_Null_Char THEN
3861 msii_temp_data.SERV_REQ_ENABLED_CODE := NULL;
3862 ELSE
3863 msii_temp_data.SERV_REQ_ENABLED_CODE := trim(msii_temp_data.SERV_REQ_ENABLED_CODE);
3864 END IF;
3865 IF msii_temp_data.PLANNED_INV_POINT_FLAG IS NULL THEN
3866 msii_temp_data.PLANNED_INV_POINT_FLAG := msi_record_temp.PLANNED_INV_POINT_FLAG;
3867 ELSIF msii_temp_data.PLANNED_INV_POINT_FLAG = g_Upd_Null_CHAR THEN
3868 msii_temp_data.PLANNED_INV_POINT_FLAG := NULL;
3869 ELSIF msii_temp_data.PLANNED_INV_POINT_FLAG = g_FND_Upd_Null_Char THEN
3870 msii_temp_data.PLANNED_INV_POINT_FLAG := NULL;
3871 ELSE
3872 msii_temp_data.PLANNED_INV_POINT_FLAG := trim(msii_temp_data.PLANNED_INV_POINT_FLAG);
3873 END IF;
3874 IF msii_temp_data.DEFAULT_SO_SOURCE_TYPE IS NULL THEN
3875 msii_temp_data.DEFAULT_SO_SOURCE_TYPE := msi_record_temp.DEFAULT_SO_SOURCE_TYPE;
3876 ELSIF msii_temp_data.DEFAULT_SO_SOURCE_TYPE = g_Upd_Null_CHAR THEN
3877 msii_temp_data.DEFAULT_SO_SOURCE_TYPE := NULL;
3878 ELSIF msii_temp_data.DEFAULT_SO_SOURCE_TYPE = g_FND_Upd_Null_Char THEN
3879 msii_temp_data.DEFAULT_SO_SOURCE_TYPE := NULL;
3880 ELSE
3881 msii_temp_data.DEFAULT_SO_SOURCE_TYPE := trim(msii_temp_data.DEFAULT_SO_SOURCE_TYPE);
3882 END IF;
3883 IF msii_temp_data.SUBSTITUTION_WINDOW_CODE IS NULL THEN
3884 msii_temp_data.SUBSTITUTION_WINDOW_CODE := msi_record_temp.SUBSTITUTION_WINDOW_CODE;
3885 ELSIF msii_temp_data.SUBSTITUTION_WINDOW_CODE = g_Upd_Null_NUM THEN
3886 msii_temp_data.SUBSTITUTION_WINDOW_CODE := NULL;
3887 ELSIF msii_temp_data.SUBSTITUTION_WINDOW_CODE = g_FND_Upd_Null_NUM THEN
3888 msii_temp_data.SUBSTITUTION_WINDOW_CODE := NULL;
3889 END IF;
3890 IF msii_temp_data.MINIMUM_LICENSE_QUANTITY IS NULL THEN
3891 msii_temp_data.MINIMUM_LICENSE_QUANTITY := msi_record_temp.MINIMUM_LICENSE_QUANTITY;
3892 ELSIF msii_temp_data.MINIMUM_LICENSE_QUANTITY = -999999 THEN
3893 msii_temp_data.MINIMUM_LICENSE_QUANTITY := NULL;
3894 ELSIF msii_temp_data.MINIMUM_LICENSE_QUANTITY = g_FND_Upd_Null_NUM THEN
3895 msii_temp_data.MINIMUM_LICENSE_QUANTITY := NULL;
3896 END IF;
3897 IF msii_temp_data.IB_ITEM_INSTANCE_CLASS IS NULL THEN
3898 msii_temp_data.IB_ITEM_INSTANCE_CLASS := msi_record_temp.IB_ITEM_INSTANCE_CLASS;
3899 ELSIF msii_temp_data.IB_ITEM_INSTANCE_CLASS = g_Upd_Null_CHAR THEN
3900 msii_temp_data.IB_ITEM_INSTANCE_CLASS := NULL;
3901 ELSIF msii_temp_data.IB_ITEM_INSTANCE_CLASS = g_FND_Upd_Null_Char THEN
3902 msii_temp_data.IB_ITEM_INSTANCE_CLASS := NULL;
3903 ELSE
3904 msii_temp_data.IB_ITEM_INSTANCE_CLASS := trim(msii_temp_data.IB_ITEM_INSTANCE_CLASS);
3905 END IF;
3906 IF msii_temp_data.CONFIG_ORGS IS NULL THEN
3907 msii_temp_data.CONFIG_ORGS := msi_record_temp.CONFIG_ORGS;
3908 ELSIF msii_temp_data.CONFIG_ORGS = g_Upd_Null_CHAR THEN
3909 msii_temp_data.CONFIG_ORGS := NULL;
3910 ELSIF msii_temp_data.CONFIG_ORGS = g_FND_Upd_Null_Char THEN
3911 msii_temp_data.CONFIG_ORGS := NULL;
3912 ELSE
3913 msii_temp_data.CONFIG_ORGS := trim(msii_temp_data.CONFIG_ORGS);
3914 END IF;
3915 IF msii_temp_data.LIFECYCLE_ID IS NULL THEN
3916 msii_temp_data.LIFECYCLE_ID := msi_record_temp.LIFECYCLE_ID;
3917 ELSIF msii_temp_data.LIFECYCLE_ID = -999999 THEN
3918 msii_temp_data.LIFECYCLE_ID := NULL;
3919 ELSIF msii_temp_data.LIFECYCLE_ID = g_FND_Upd_Null_NUM THEN
3920 msii_temp_data.LIFECYCLE_ID := NULL;
3921 END IF;
3922 IF msii_temp_data.VMI_MINIMUM_UNITS IS NULL THEN
3923 msii_temp_data.VMI_MINIMUM_UNITS := msi_record_temp.VMI_MINIMUM_UNITS;
3924 ELSIF msii_temp_data.VMI_MINIMUM_UNITS = g_Upd_Null_NUM THEN
3925 msii_temp_data.VMI_MINIMUM_UNITS := NULL;
3926 ELSIF msii_temp_data.VMI_MINIMUM_UNITS = g_FND_Upd_Null_NUM THEN
3927 msii_temp_data.VMI_MINIMUM_UNITS := NULL;
3928 END IF;
3929 IF msii_temp_data.VMI_MAXIMUM_UNITS IS NULL THEN
3930 msii_temp_data.VMI_MAXIMUM_UNITS := msi_record_temp.VMI_MAXIMUM_UNITS;
3931 ELSIF msii_temp_data.VMI_MAXIMUM_UNITS = g_Upd_Null_NUM THEN
3932 msii_temp_data.VMI_MAXIMUM_UNITS := NULL;
3933 ELSIF msii_temp_data.VMI_MAXIMUM_UNITS = g_FND_Upd_Null_NUM THEN
3934 msii_temp_data.VMI_MAXIMUM_UNITS := NULL;
3935 END IF;
3936 IF msii_temp_data.VMI_FIXED_ORDER_QUANTITY IS NULL THEN
3937 msii_temp_data.VMI_FIXED_ORDER_QUANTITY := msi_record_temp.VMI_FIXED_ORDER_QUANTITY;
3938 ELSIF msii_temp_data.VMI_FIXED_ORDER_QUANTITY = g_Upd_Null_NUM THEN
3939 msii_temp_data.VMI_FIXED_ORDER_QUANTITY := NULL;
3940 ELSIF msii_temp_data.VMI_FIXED_ORDER_QUANTITY = g_FND_Upd_Null_NUM THEN
3941 msii_temp_data.VMI_FIXED_ORDER_QUANTITY := NULL;
3942 END IF;
3943 IF msii_temp_data.VMI_FORECAST_TYPE IS NULL THEN
3944 msii_temp_data.VMI_FORECAST_TYPE := msi_record_temp.VMI_FORECAST_TYPE;
3945 ELSIF msii_temp_data.VMI_FORECAST_TYPE = g_Upd_Null_NUM THEN
3946 msii_temp_data.VMI_FORECAST_TYPE := NULL;
3947 ELSIF msii_temp_data.VMI_FORECAST_TYPE = g_FND_Upd_Null_NUM THEN
3948 msii_temp_data.VMI_FORECAST_TYPE := NULL;
3949 END IF;
3950 IF msii_temp_data.EXCLUDE_FROM_BUDGET_FLAG IS NULL THEN
3951 msii_temp_data.EXCLUDE_FROM_BUDGET_FLAG := msi_record_temp.EXCLUDE_FROM_BUDGET_FLAG;
3952 ELSIF msii_temp_data.EXCLUDE_FROM_BUDGET_FLAG = g_Upd_Null_NUM THEN
3953 msii_temp_data.EXCLUDE_FROM_BUDGET_FLAG := NULL;
3954 ELSIF msii_temp_data.EXCLUDE_FROM_BUDGET_FLAG = g_FND_Upd_Null_NUM THEN
3955 msii_temp_data.EXCLUDE_FROM_BUDGET_FLAG := NULL;
3956 END IF;
3957 IF msii_temp_data.DAYS_MAX_INV_SUPPLY IS NULL THEN
3958 msii_temp_data.DAYS_MAX_INV_SUPPLY := msi_record_temp.DAYS_MAX_INV_SUPPLY;
3959 ELSIF msii_temp_data.DAYS_MAX_INV_SUPPLY = g_Upd_Null_NUM THEN
3960 msii_temp_data.DAYS_MAX_INV_SUPPLY := NULL;
3961 ELSIF msii_temp_data.DAYS_MAX_INV_SUPPLY = g_FND_Upd_Null_NUM THEN
3962 msii_temp_data.DAYS_MAX_INV_SUPPLY := NULL;
3963 END IF;
3964 IF trim(msii_temp_data.INVENTORY_ITEM_STATUS_CODE) is null then
3965 msii_temp_data.INVENTORY_ITEM_STATUS_CODE := msi_record_temp.INVENTORY_ITEM_STATUS_CODE;
3966 ELSE
3967 msii_temp_data.INVENTORY_ITEM_STATUS_CODE := trim(msii_temp_data.INVENTORY_ITEM_STATUS_CODE);
3968 END IF;
3969 /* R12 FPC Attributes */
3970 IF msii_temp_data.STYLE_ITEM_ID IS NULL THEN
3971 msii_temp_data.STYLE_ITEM_ID := msi_record_temp.STYLE_ITEM_ID;
3972 ELSIF msii_temp_data.STYLE_ITEM_ID = g_Upd_Null_NUM THEN
3973 msii_temp_data.STYLE_ITEM_ID := NULL;
3974 ELSIF msii_temp_data.STYLE_ITEM_ID = g_FND_Upd_Null_NUM THEN
3975 msii_temp_data.STYLE_ITEM_ID := NULL;
3976 END IF;
3977
3978 IF trim(msii_temp_data.STYLE_ITEM_FLAG) IS NULL THEN
3979 msii_temp_data.STYLE_ITEM_FLAG := msi_record_temp.STYLE_ITEM_FLAG;
3980 ELSIF msii_temp_data.STYLE_ITEM_FLAG = g_Upd_Null_CHAR THEN
3981 msii_temp_data.STYLE_ITEM_FLAG := NULL;
3982 ELSIF msii_temp_data.STYLE_ITEM_FLAG = g_FND_Upd_Null_CHAR THEN
3983 msii_temp_data.STYLE_ITEM_FLAG := NULL;
3984 ELSE
3985 msii_temp_data.STYLE_ITEM_FLAG := trim(msii_temp_data.STYLE_ITEM_FLAG);
3986 END IF;
3987
3988 IF trim(msii_temp_data.GDSN_OUTBOUND_ENABLED_FLAG) IS NULL THEN
3989 msii_temp_data.GDSN_OUTBOUND_ENABLED_FLAG := msi_record_temp.GDSN_OUTBOUND_ENABLED_FLAG;
3990 ELSIF msii_temp_data.GDSN_OUTBOUND_ENABLED_FLAG = g_Upd_Null_CHAR THEN
3991 msii_temp_data.GDSN_OUTBOUND_ENABLED_FLAG := NULL;
3992 ELSIF msii_temp_data.GDSN_OUTBOUND_ENABLED_FLAG = g_FND_Upd_Null_CHAR THEN
3993 msii_temp_data.GDSN_OUTBOUND_ENABLED_FLAG := NULL;
3994 ELSE
3995 msii_temp_data.GDSN_OUTBOUND_ENABLED_FLAG := trim(msii_temp_data.GDSN_OUTBOUND_ENABLED_FLAG);
3996 END IF;
3997
3998 IF trim(msii_temp_data.TRADE_ITEM_DESCRIPTOR) IS NULL THEN
3999 IF ( msi_record_temp.TRADE_ITEM_DESCRIPTOR IS NULL AND msii_temp_data.GDSN_OUTBOUND_ENABLED_FLAG = 'Y' ) THEN --BUG 6455261
4000 --Retrieve default value for Trade Item Descriptor
4001 OPEN c_trade_item_default;
4002 FETCH c_trade_item_default INTO msii_temp_data.TRADE_ITEM_DESCRIPTOR;
4003 CLOSE c_trade_item_default;
4004 ELSE
4005 msii_temp_data.TRADE_ITEM_DESCRIPTOR := msi_record_temp.TRADE_ITEM_DESCRIPTOR;
4006 END IF;
4007 ELSIF msii_temp_data.TRADE_ITEM_DESCRIPTOR = g_Upd_Null_CHAR THEN
4008 msii_temp_data.TRADE_ITEM_DESCRIPTOR := NULL;
4009 ELSIF msii_temp_data.TRADE_ITEM_DESCRIPTOR = g_FND_Upd_Null_CHAR THEN
4010 msii_temp_data.TRADE_ITEM_DESCRIPTOR := NULL;
4011 ELSE
4012 msii_temp_data.TRADE_ITEM_DESCRIPTOR := trim(msii_temp_data.TRADE_ITEM_DESCRIPTOR);
4013 END IF;
4014
4015
4016 UPDATE MTL_SYSTEM_ITEMS_INTERFACE SET ROW = msii_temp_data WHERE ROWID = row_id;
4017
4018 -- End 5565453 : Perf issue reducing the shared memory
4019
4020 RETURN (0);
4021
4022 EXCEPTION
4023
4024 WHEN OTHERS THEN
4025 IF l_inv_debug_level IN(101, 102) THEN
4026 INVPUTLI.info('when OTHERS exception raised in copy_msi_to_msii');
4027 END IF;
4028 RETURN(1);
4029
4030 END copy_msi_to_msii; -- }
4031
4032
4033 FUNCTION mtl_pr_validate_item_update
4034 (
4035 org_id NUMBER,
4036 all_org NUMBER := 2,
4037 prog_appid NUMBER := -1,
4038 prog_id NUMBER := -1,
4039 request_id NUMBER := -1,
4040 user_id NUMBER := -1,
4041 login_id NUMBER := -1,
4042 err_text IN OUT NOCOPY VARCHAR2,
4043 xset_id IN NUMBER DEFAULT NULL
4044 )
4045 return INTEGER
4046 IS
4047 ret_code_create NUMBER := 1;
4048 ret_code_master NUMBER := 1;
4049 ret_code_child NUMBER := 1;
4050
4051 l_inv_debug_level NUMBER := INVPUTLI.get_debug_level; --Bug: 4667452
4052
4053 BEGIN -- {
4054
4055 IF l_inv_debug_level IN(101, 102) THEN
4056 INVPUTLI.info('INVUPD1B: Inside mtl_pr_validate_item_update'|| '***orgid: ' || TO_CHAR(org_id));
4057 END IF;
4058
4059 ret_code_create := INVPVALI.mtl_pr_validate_item(
4060 org_id => org_id,
4061 all_org => all_org,
4062 prog_appid => prog_appid,
4063 prog_id => prog_id,
4064 request_id => request_id,
4065 user_id => user_id,
4066 login_id => login_id,
4067 err_text => err_text,
4068 xset_id => xset_id);
4069
4070 if (ret_code_create <> 0) then
4071 return (ret_code_create);
4072 end if;
4073
4074 ret_code_master := INVUPD2B.validate_item_update_master(
4075 org_id,
4076 all_org,
4077 prog_appid,
4078 prog_id,
4079 request_id,
4080 user_id,
4081 login_id,
4082 err_text,
4083 xset_id);
4084
4085 ret_code_child := INVUPD2B.validate_item_update_child(
4086 org_id,
4087 all_org,
4088 prog_appid,
4089 prog_id,
4090 request_id,
4091 user_id,
4092 login_id,
4093 err_text,
4094 xset_id);
4095
4096 if (ret_code_master = 0 AND ret_code_child = 0) then
4097 return (0);
4098 else
4099 if (ret_code_master <> 0) then
4100 return (ret_code_master);
4101 end if;
4102 if (ret_code_child <> 0) then
4103 return (ret_code_child);
4104 end if;
4105 end if;
4106
4107 EXCEPTION
4108
4109 when OTHERS then
4110 IF l_inv_debug_level IN(101, 102) THEN
4111 INVPUTLI.info('when OTHERS exception raised in mtl_pr_validate_item_update' || SQLERRM);
4112 END IF;
4113
4114 return (1);
4115
4116 END mtl_pr_validate_item_update; -- }
4117
4118 --Start Bug: 2808277 Supporting Item Revision Update
4119 FUNCTION assign_item_rev_data_update(
4120 org_id NUMBER,
4121 all_org NUMBER := 2,
4122 prog_appid NUMBER := -1,
4123 prog_id NUMBER := -1,
4124 request_id NUMBER := -1,
4125 user_id NUMBER := -1,
4126 login_id NUMBER := -1,
4127 err_text IN OUT NOCOPY VARCHAR2,
4128 xset_id IN NUMBER DEFAULT -999)
4129 RETURN NUMBER IS
4130
4131 --Fill Item Id for Item Number
4132 CURSOR c_fill_Item_Id IS
4133 SELECT DISTINCT item_number,
4134 organization_id
4135 FROM mtl_item_revisions_interface
4136 WHERE inventory_item_id IS NULL
4137 AND item_number IS NOT NULL
4138 AND organization_id IS NOT NULL
4139 AND set_process_id = xset_id
4140 AND process_flag = 1;
4141
4142 --Assigning Transaction Id
4143 CURSOR c_fill_transaction_id IS
4144 SELECT distinct inventory_item_id,
4145 organization_id,
4146 transaction_type
4147 FROM mtl_item_revisions_interface
4148 WHERE process_flag = 1
4149 AND set_process_id = xset_id
4150 AND transaction_id IS NULL --Bug: 3019435 Added condition
4151 AND (organization_id = org_id or all_org = 1);
4152
4153 --Fill Revision id, default values
4154 CURSOR c_fill_revision_details IS
4155 SELECT rowid
4156 ,revision
4157 ,revision_id
4158 ,description
4159 ,inventory_item_id
4160 ,organization_id
4161 ,change_notice
4162 ,ecn_initiation_date
4163 ,implementation_date
4164 ,implemented_serial_number
4165 ,effectivity_date
4166 ,attribute_category
4167 ,attribute1
4168 ,attribute2
4169 ,attribute3
4170 ,attribute4
4171 ,attribute5
4172 ,attribute6
4173 ,attribute7
4174 ,attribute8
4175 ,attribute9
4176 ,attribute10
4177 ,attribute11
4178 ,attribute12
4179 ,attribute13
4180 ,attribute14
4181 ,attribute15
4182 ,revision_label
4183 ,revision_reason
4184 ,transaction_id
4185 FROM mtl_item_revisions_interface
4186 WHERE process_flag = 1
4187 AND set_process_id = xset_id
4188 AND (organization_id = org_id or all_org = 1);
4189
4190 CURSOR c_get_rev_defaults(cp_org_id NUMBER,
4191 cp_item_id NUMBER,
4192 cp_revision VARCHAR2) IS
4193 SELECT revision_id
4194 ,description
4195 ,change_notice
4196 ,ecn_initiation_date
4197 ,implementation_date
4198 --,implemented_serial_number
4199 ,effectivity_date
4200 ,attribute_category
4201 ,attribute1
4202 ,attribute2
4203 ,attribute3
4204 ,attribute4
4205 ,attribute5
4206 ,attribute6
4207 ,attribute7
4208 ,attribute8
4209 ,attribute9
4210 ,attribute10
4211 ,attribute11
4212 ,attribute12
4213 ,attribute13
4214 ,attribute14
4215 ,attribute15
4216 ,revision_label
4217 ,revision_reason
4218 ,revised_item_sequence_id
4219 ,lifecycle_id
4220 ,current_phase_id
4221 FROM mtl_item_revisions
4222 WHERE organization_id = cp_org_id
4223 AND inventory_item_id = cp_item_id
4224 AND revision = cp_revision;
4225
4226 l_process_flag_1 CONSTANT NUMBER := 1;
4227 l_process_flag_2 CONSTANT NUMBER := 2;
4228 l_process_flag_3 CONSTANT NUMBER := 3;
4229 flex_id NUMBER;
4230 l_rev_rec c_get_rev_defaults%ROWTYPE;
4231 status NUMBER := 0;
4232 dumm_status NUMBER := 0;
4233 tran_id NUMBER := 0;
4234 ASSIGN_ERROR EXCEPTION;
4235 LOGGING_ERROR EXCEPTION;
4236 l_sysdate DATE := SYSDATE;
4237 l_all_org CONSTANT NUMBER := 1;
4238 l_default_revision VARCHAR2(3);
4239
4240 BEGIN
4241
4242 --Assign Orgnization Id for missing ones
4243 UPDATE mtl_item_revisions_interface i
4244 SET i.organization_id = (SELECT o.organization_id
4245 FROM mtl_parameters o
4246 WHERE o.organization_code = i.organization_code)
4247 WHERE i.organization_id is NULL
4248 AND set_process_id = xset_id
4249 AND i.process_flag = l_process_flag_1;
4250
4251 --Assign Item Id
4252 FOR cr IN c_fill_Item_Id loop
4253
4254 status := INVPUOPI.mtl_pr_parse_flex_name (
4255 cr.organization_id, 'MSTK',
4256 cr.item_number, flex_id,
4257 0, err_text);
4258 IF status <> 0 THEN
4259 ----Bug: 3019435 Changed the code with in IF st.
4260 UPDATE mtl_item_revisions_interface
4261 SET process_flag = l_process_flag_3,
4262 transaction_id = NVL(transaction_id,MTL_SYSTEM_ITEMS_INTERFACE_S.nextval)
4263 WHERE item_number = cr.item_number
4264 AND inventory_item_id IS NULL
4265 AND process_flag = l_process_flag_1
4266 AND set_process_id = xset_id
4267 AND organization_id = cr.organization_id
4268 RETURNING transaction_id INTO tran_id;
4269 /*
4270 SELECT MTL_SYSTEM_ITEMS_INTERFACE_S.nextval
4271 INTO tran_id
4272 FROM dual;
4273 */
4274 dumm_status := INVPUOPI.mtl_log_interface_err(
4275 cr.organization_id,
4276 user_id,
4277 login_id,
4278 prog_appid,
4279 prog_id,
4280 request_id,
4281 tran_id,
4282 err_text,
4283 'item_number',
4284 'MTL_ITEM_REVISIONS_INTERFACE',
4285 'BOM_OP_VALIDATION_ERR',
4286 err_text);
4287 IF dumm_status < 0 THEN
4288 raise LOGGING_ERROR ;
4289 END IF;
4290
4291 /* UPDATE mtl_item_revisions_interface
4292 SET process_flag = l_process_flag_3,
4293 transaction_id = tran_id
4294 WHERE item_number = cr.item_number
4295 AND inventory_item_id IS NULL
4296 AND process_flag = l_process_flag_1
4297 AND set_process_id = xset_id
4298 AND organization_id = cr.organization_id;
4299 */
4300 IF status < 0 THEN
4301 raise ASSIGN_ERROR;
4302 END IF;
4303
4304 ELSIF status = 0 THEN
4305
4306 UPDATE mtl_item_revisions_interface
4307 SET inventory_item_id = flex_id
4308 WHERE item_number = cr.item_number
4309 AND set_process_id = xset_id
4310 AND organization_id = cr.organization_id;
4311
4312 END IF;
4313
4314 END LOOP; -- Fill Item Id LOOP.
4315
4316 --Assign Transaction Id
4317 FOR cr IN c_fill_transaction_id LOOP
4318
4319 SELECT MTL_SYSTEM_ITEMS_INTERFACE_S.nextval
4320 INTO tran_id FROM dual;
4321
4322 UPDATE mtl_item_revisions_interface
4323 SET transaction_id = tran_id
4324 WHERE inventory_item_id = cr.inventory_item_id
4325 AND organization_id = cr.organization_id
4326 AND transaction_type = cr.transaction_type
4327 AND set_process_id + 0 = xset_id
4328 AND process_flag = l_process_flag_1;
4329
4330 END LOOP;
4331
4332
4333 --Fill Revision id, default values
4334 FOR cr IN c_fill_Revision_details LOOP
4335
4336 OPEN c_get_rev_defaults(cp_org_id => cr.organization_id,
4337 cp_item_id => cr.inventory_item_id,
4338 cp_revision => cr.revision);
4339 FETCH c_get_rev_defaults INTO l_rev_rec;
4340 CLOSE c_get_rev_defaults;
4341
4342 IF l_rev_rec.revision_id IS NOT NULL THEN
4343
4344 SELECT starting_revision
4345 INTO l_default_revision
4346 FROM mtl_parameters
4347 WHERE organization_id = cr.organization_id;
4348
4349 IF l_default_revision = cr.revision THEN
4350
4351 UPDATE mtl_item_revisions_interface
4352 SET effectivity_date = l_rev_rec.effectivity_date
4353 WHERE rowid = cr.rowid;
4354
4355 END IF;
4356
4357
4358 UPDATE mtl_item_revisions_interface
4359 SET revision_id = l_rev_rec.revision_id
4360 ,description = decode(description,NULL,l_rev_rec.description,'!',NULL,g_FND_Upd_Null_Char,NULL,description)
4361 ,change_notice = l_rev_rec.change_notice
4362 ,ecn_initiation_date = l_rev_rec.ecn_initiation_date
4363 ,implementation_date = NVL(implementation_date,l_rev_rec.implementation_date)
4364 --,implemented_serial_number = NVL(implemented_serial_number,l_rev_rec.implemented_serial_number)
4365 ,effectivity_date = NVL(effectivity_date,l_rev_rec.effectivity_date)
4366 ,attribute_category = decode(attribute_category,NULL,l_rev_rec.attribute_category,'!',NULL, g_FND_Upd_Null_Char, NULL, attribute_category)
4367 ,attribute1 = decode(attribute1,NULL,l_rev_rec.attribute1,'!',NULL, g_FND_Upd_Null_Char, NULL, attribute1)
4368 ,attribute2 = decode(attribute2,NULL,l_rev_rec.attribute2,'!',NULL, g_FND_Upd_Null_Char, NULL, attribute2)
4369 ,attribute3 = decode(attribute3,NULL,l_rev_rec.attribute3,'!',NULL, g_FND_Upd_Null_Char, NULL, attribute3)
4370 ,attribute4 = decode(attribute4,NULL,l_rev_rec.attribute4,'!',NULL, g_FND_Upd_Null_Char, NULL, attribute4)
4371 ,attribute5 = decode(attribute5,NULL,l_rev_rec.attribute5,'!',NULL, g_FND_Upd_Null_Char, NULL, attribute5)
4372 ,attribute6 = decode(attribute6,NULL,l_rev_rec.attribute6,'!',NULL, g_FND_Upd_Null_Char, NULL, attribute6)
4373 ,attribute7 = decode(attribute7,NULL,l_rev_rec.attribute7,'!',NULL, g_FND_Upd_Null_Char, NULL, attribute7)
4374 ,attribute8 = decode(attribute8,NULL,l_rev_rec.attribute8,'!',NULL, g_FND_Upd_Null_Char, NULL, attribute8)
4375 ,attribute9 = decode(attribute9,NULL,l_rev_rec.attribute9,'!',NULL, g_FND_Upd_Null_Char, NULL, attribute9)
4376 ,attribute10 = decode(attribute10,NULL,l_rev_rec.attribute10,'!',NULL, g_FND_Upd_Null_Char, NULL, attribute10)
4377 ,attribute11 = decode(attribute11,NULL,l_rev_rec.attribute11,'!',NULL, g_FND_Upd_Null_Char, NULL, attribute11)
4378 ,attribute12 = decode(attribute12,NULL,l_rev_rec.attribute12,'!',NULL, g_FND_Upd_Null_Char, NULL, attribute12)
4379 ,attribute13 = decode(attribute13,NULL,l_rev_rec.attribute13,'!',NULL, g_FND_Upd_Null_Char, NULL, attribute13)
4380 ,attribute14 = decode(attribute14,NULL,l_rev_rec.attribute14,'!',NULL, g_FND_Upd_Null_Char, NULL, attribute14)
4381 ,attribute15 = decode(attribute15,NULL,l_rev_rec.attribute15,'!',NULL, g_FND_Upd_Null_Char, NULL, attribute15)
4382 ,revision_label = decode(revision_label,NULL,l_rev_rec.revision_label,'!',NULL, g_FND_Upd_Null_Char, NULL, revision_label)
4383 ,revision_reason = decode(revision_reason,NULL,l_rev_rec.revision_reason,'!',NULL, g_FND_Upd_Null_Char, NULL, revision_reason)
4384 ,revised_item_sequence_id = decode(revised_item_sequence_id,NULL,l_rev_rec.revised_item_sequence_id,g_Upd_Null_NUM,NULL, g_FND_Upd_Null_NUM, NULL, revised_item_sequence_id)
4385 ,lifecycle_id = decode(lifecycle_id,NULL,l_rev_rec.lifecycle_id,g_Upd_Null_NUM,NULL, g_FND_Upd_Null_NUM, NULL, lifecycle_id)
4386 ,current_phase_id = decode(current_phase_id,NULL,l_rev_rec.current_phase_id,g_Upd_Null_NUM,NULL, g_FND_Upd_Null_NUM, NULL, current_phase_id)
4387 WHERE rowid = cr.rowid;
4388
4389 ELSE
4390
4391 dumm_status := INVPUOPI.mtl_log_interface_err(
4392 cr.organization_id,
4393 user_id,
4394 login_id,
4395 prog_appid,
4396 prog_id,
4397 request_id,
4398 cr.transaction_id,
4399 err_text,
4400 'REVISION',
4401 'MTL_ITEM_REVISIONS_INTERFACE',
4402 'INV_INVALID_REVISION',
4403 err_text);
4404 IF dumm_status < 0 THEN
4405 raise LOGGING_ERROR ;
4406 END IF;
4407
4408 UPDATE mtl_item_revisions_interface
4409 SET process_flag = l_process_flag_3
4410 WHERE rowid = cr.rowid;
4411
4412 END IF;
4413
4414 END LOOP; --Revision defaults fill LOOP
4415
4416 --Update process flag , at last
4417 UPDATE mtl_item_revisions_interface
4418 SET process_flag = l_process_flag_2 ,
4419 last_update_date = l_sysdate,
4420 last_updated_by = decode(last_updated_by,NULL,user_id,last_updated_by),
4421 creation_date = l_sysdate,
4422 created_by = decode(created_by, NULL, user_id,created_by)
4423 --3070781 :Revision defaults fill LOOP is enough to fill below columns
4424 --This routine gets called only during revision update.
4425 --implementation_date = nvl(effectivity_date, l_sysdate),
4426 --effectivity_date = nvl(effectivity_date, l_sysdate)
4427 WHERE inventory_item_id is not null
4428 AND process_flag = l_process_flag_1
4429 AND set_process_id = xset_id
4430 AND (organization_id = org_id or all_org = l_all_org);
4431
4432 --Set process flag for the records with errors
4433 UPDATE mtl_item_revisions_interface i
4434 SET i.process_flag = l_process_flag_3,
4435 i.last_update_date = sysdate,
4436 i.last_updated_by = decode(i.last_updated_by, NULL, user_id,i.last_updated_by),
4437 i.creation_date = l_sysdate,
4438 i.created_by = decode(i.created_by, NULL, user_id,i.created_by)
4439 WHERE (i.inventory_item_id is NULL or i.organization_id is NULL)
4440 AND i.set_process_id = xset_id
4441 AND i.process_flag = l_process_flag_1
4442 AND (i.organization_id = org_id or all_org = l_all_org );
4443
4444 RETURN (0);
4445
4446 EXCEPTION
4447 WHEN OTHERS THEN
4448 RETURN (1);
4449 END assign_item_rev_data_update;
4450 --End Bug: 2808277 Supporting Item Revision Update
4451
4452
4453 end INVUPD1B; -- }