DBA Data[Home] [Help]

PACKAGE BODY: APPS.INVPVLM2

Source


1 PACKAGE BODY INVPVLM2 AS
2 /* $Header: INVPVM2B.pls 120.2 2005/07/14 01:08:15 anmurali ship $ */
3 
4 FUNCTION validate_item_org4
5 (
6 org_id		number,
7 all_org         NUMBER          := 2,
8 prog_appid      NUMBER          := -1,
9 prog_id         NUMBER          := -1,
10 request_id      NUMBER          := -1,
11 user_id         NUMBER          := -1,
12 login_id        NUMBER          := -1,
13 err_text in out	NOCOPY varchar2,
14 xset_id  IN     NUMBER  DEFAULT -999
15 )
16 return integer
17 is
18 	/*
19 	** Retrieve column values for validation
20 	*/
21 	CURSOR cc is
22 	select
23 	 msii.TRANSACTION_ID,
24 	 msii.INVENTORY_ITEM_ID III,
25 	 msii.ORGANIZATION_ID ORGID,
26 	 mp.MASTER_ORGANIZATION_ID MORGID,
27  	 msii.START_AUTO_LOT_NUMBER,
28 	 msii.LOT_CONTROL_CODE,
29 	 msii.SHELF_LIFE_CODE,
30 	 msii.SHELF_LIFE_DAYS,
31 	 msii.SERIAL_NUMBER_CONTROL_CODE,
32 	 msii.START_AUTO_SERIAL_NUMBER,
33 	 msii.AUTO_SERIAL_ALPHA_PREFIX,
34 	 msii.SOURCE_TYPE,
35 	 msii.SOURCE_ORGANIZATION_ID,
36 	 msii.SOURCE_SUBINVENTORY,
37 	 msii.EXPENSE_ACCOUNT,
38 	 msii.ENCUMBRANCE_ACCOUNT,
39 	 msii.RESTRICT_SUBINVENTORIES_CODE,
40 	 msii.UNIT_WEIGHT,
41 	 msii.WEIGHT_UOM_CODE,
42 	 msii.VOLUME_UOM_CODE,
43 	 msii.UNIT_VOLUME,
44 	 msii.RESTRICT_LOCATORS_CODE,
45 	 msii.LOCATION_CONTROL_CODE,
46 	 msii.SHRINKAGE_RATE,
47 	 msii.ACCEPTABLE_EARLY_DAYS,
48 	 msii.PLANNING_TIME_FENCE_CODE,
49 	 msii.DEMAND_TIME_FENCE_CODE,
50 	 msii.LEAD_TIME_LOT_SIZE,
51 	 msii.STD_LOT_SIZE,
52 	 msii.CUM_MANUFACTURING_LEAD_TIME,
53 	 msii.OVERRUN_PERCENTAGE,
54 	 msii.MRP_CALCULATE_ATP_FLAG,
55 	 msii.ACCEPTABLE_RATE_INCREASE,
56 	 msii.ACCEPTABLE_RATE_DECREASE,
57  	 msii.CUMULATIVE_TOTAL_LEAD_TIME,
58 	 msii.PLANNING_TIME_FENCE_DAYS,
59 	 msii.DEMAND_TIME_FENCE_DAYS,
60 	 msii.END_ASSEMBLY_PEGGING_FLAG,
61 	 msii.REPETITIVE_PLANNING_FLAG,
62 	 msii.PLANNING_EXCEPTION_SET,
63 	 msii.BOM_ITEM_TYPE,
64 	 msii.PICK_COMPONENTS_FLAG,
65 	 msii.REPLENISH_TO_ORDER_FLAG,
66 	 msii.BASE_ITEM_ID,
67 	 msii.ATP_COMPONENTS_FLAG,
68 	 msii.ATP_FLAG,
69 	 msii.FIXED_LEAD_TIME,
70 	 msii.VARIABLE_LEAD_TIME,
71 	 msii.WIP_SUPPLY_LOCATOR_ID,
72 	 msii.WIP_SUPPLY_TYPE,
73 	 msii.WIP_SUPPLY_SUBINVENTORY,
74 	 msii.PRIMARY_UOM_CODE,
75 	-- msii.PRIMARY_UNIT_OF_MEASURE,
76 	 msii.ALLOWED_UNITS_LOOKUP_CODE,
77 	 msii.COST_OF_SALES_ACCOUNT,
78 	 msii.SALES_ACCOUNT,
79 	 msii.DEFAULT_INCLUDE_IN_ROLLUP_FLAG,
80 	 msii.INVENTORY_ITEM_STATUS_CODE,
81 	 msii.INVENTORY_PLANNING_CODE,
82 	 msii.PLANNER_CODE,
83 	 msii.PLANNING_MAKE_BUY_CODE,
84 	 msii.FIXED_LOT_MULTIPLIER,
85 	 msii.ROUNDING_CONTROL_TYPE,
86 	 msii.CARRYING_COST,
87  	 msii.POSTPROCESSING_LEAD_TIME,
88 	 msii.PREPROCESSING_LEAD_TIME,
89 	 msii.FULL_LEAD_TIME,
90 	 msii.ORDER_COST,
91 	 msii.MRP_SAFETY_STOCK_PERCENT,
92 	 msii.MRP_SAFETY_STOCK_CODE,
93 	 msii.MIN_MINMAX_QUANTITY,
94 	 msii.MAX_MINMAX_QUANTITY,
95 	 msii.MINIMUM_ORDER_QUANTITY,
96 	 msii.FIXED_ORDER_QUANTITY,
97 	 msii.FIXED_DAYS_SUPPLY,
98 	 msii.MAXIMUM_ORDER_QUANTITY,
99 	 msii.ATP_RULE_ID,
100 	 msii.PICKING_RULE_ID,
101 	 msii.RESERVABLE_TYPE,
102 	 msii.POSITIVE_MEASUREMENT_ERROR,
103 	 msii.OUTSIDE_OPERATION_FLAG,
104 	 msii.OUTSIDE_OPERATION_UOM_TYPE,
105 	 msii.SAFETY_STOCK_BUCKET_DAYS,
106 	 msii.AUTO_REDUCE_MPS,
107 	 msii.COSTING_ENABLED_FLAG,
108 	 msii.AUTO_CREATED_CONFIG_FLAG,
109 	 msii.CYCLE_COUNT_ENABLED_FLAG,
110 	 msii.ITEM_TYPE,
111 	 msii.MODEL_CONFIG_CLAUSE_NAME,
112 	 msii.SHIP_MODEL_COMPLETE_FLAG,
113 	 msii.MRP_PLANNING_CODE,
114 	 msii.RETURN_INSPECTION_REQUIREMENT,
115 	 msii.ATO_FORECAST_CONTROL
116 --Added as part of 11.5.9 ENH
117  	,msii.LOT_SUBSTITUTION_ENABLED
118 	,msii.MINIMUM_LICENSE_QUANTITY
119 	,msii.EAM_ACTIVITY_SOURCE_CODE
120 	,msii.IB_ITEM_INSTANCE_CLASS
121 	,msii.CONFIG_MODEL_TYPE
122 	--Added as part of R12 Enh
123         ,msii.OUTSOURCED_ASSEMBLY
124 	,msii.CHARGE_PERIODICITY_CODE
125 	,msii.SUBCONTRACTING_COMPONENT
126 	,msii.REPAIR_LEADTIME
127 	,msii.REPAIR_PROGRAM
128 	,msii.REPAIR_YIELD
129 	,msii.PREPOSITION_POINT
130 	from MTL_SYSTEM_ITEMS_INTERFACE msii, MTL_PARAMETERS mp
131 	where ((msii.organization_id = org_id) or
132 	       (all_Org = 1))
133 	and   msii.process_flag = 2
134 	and   msii.organization_id = mp.organization_id
135         and   msii.set_process_id = xset_id
136 	and   msii.organization_id <> mp.master_organization_id;
137 
138 	/*
139 	** Attributes that are Item level (can't be different from master org's value)
140 	*/
141 
142         CURSOR ee is
143         select attribute_name,
144 	       control_level
145         from MTL_ITEM_ATTRIBUTES
146         where control_level = 1;
147 
148 	msicount		number;
149 	msiicount		number;
150 	l_item_id		number;
151 	l_org_id		number;
152 	trans_id		number;
153 	ext_flag		number := 0;
154 	error_msg		varchar2(70);
155 	status			number;
156 	dumm_status		number;
157 	master_org_id		number;
158 	LOGGING_ERR		exception;
159 	VALIDATE_ERR		exception;
160 	X_TRUE			number := 1;
161  	 A_START_AUTO_LOT_NUMBER	number := 2;
162 	 A_LOT_CONTROL_CODE		number := 2;
163 	 A_SHELF_LIFE_CODE		number := 2;
164 	 A_SHELF_LIFE_DAYS		number := 2;
165 	 A_SERIAL_NUMBER_CONTROL_CODE	number := 2;
166 	 A_START_AUTO_SERIAL_NUMBER	number := 2;
167 	 A_AUTO_SERIAL_ALPHA_PREFIX	number := 2;
168 	 A_SOURCE_TYPE			number := 2;
169 	 A_SOURCE_ORGANIZATION_ID	number := 2;
170 	 A_SOURCE_SUBINVENTORY		number := 2;
171 	 A_EXPENSE_ACCOUNT		number := 2;
172 	 A_ENCUMBRANCE_ACCOUNT		number := 2;
173 	 A_RESTRICT_SUBINVENTORIES_CODE	number := 2;
174 	 A_UNIT_WEIGHT			number := 2;
175 	 A_WEIGHT_UOM_CODE		number := 2;
176 	 A_VOLUME_UOM_CODE		number := 2;
177 	 A_UNIT_VOLUME			number := 2;
178 	 A_RESTRICT_LOCATORS_CODE	number := 2;
179 	 A_LOCATION_CONTROL_CODE	number := 2;
180 	 A_SHRINKAGE_RATE		number := 2;
181 	 A_ACCEPTABLE_EARLY_DAYS	number := 2;
182 	 A_PLANNING_TIME_FENCE_CODE	number := 2;
183 	 A_DEMAND_TIME_FENCE_CODE	number := 2;
184 	 A_LEAD_TIME_LOT_SIZE		number := 2;
185 	 A_STD_LOT_SIZE			number := 2;
186 	 A_CUM_MANUFACTURING_LEAD_TIME	number := 2;
187 	 A_OVERRUN_PERCENTAGE		number := 2;
188 	 A_MRP_CALCULATE_ATP_FLAG	number := 2;
189 	 A_ACCEPTABLE_RATE_INCREASE	number := 2;
190 	 A_ACCEPTABLE_RATE_DECREASE	number := 2;
191  	 A_CUMULATIVE_TOTAL_LEAD_TIME	number := 2;
192 	 A_PLANNING_TIME_FENCE_DAYS	number := 2;
193 	 A_DEMAND_TIME_FENCE_DAYS	number := 2;
194 	 A_END_ASSEMBLY_PEGGING_FLAG	number := 2;
195 	 A_REPETITIVE_PLANNING_FLAG	number := 2;
196 	 A_PLANNING_EXCEPTION_SET	number := 2;
197 	 A_BOM_ITEM_TYPE		number := 2;
198 	 A_PICK_COMPONENTS_FLAG		number := 2;
199 	 A_REPLENISH_TO_ORDER_FLAG	number := 2;
200 	 A_BASE_ITEM_ID			number := 2;
201 	 A_ATP_COMPONENTS_FLAG		number := 2;
202 	 A_ATP_FLAG			number := 2;
203 	 A_FIXED_LEAD_TIME		number := 2;
204 	 A_VARIABLE_LEAD_TIME		number := 2;
205 	 A_WIP_SUPPLY_LOCATOR_ID	number := 2;
206 	 A_WIP_SUPPLY_TYPE		number := 2;
207 	 A_WIP_SUPPLY_SUBINVENTORY	number := 2;
208 	 A_PRIMARY_UOM_CODE		number := 2;
209 	-- A_PRIMARY_UNIT_OF_MEASURE	number := 2;
210 	 A_ALLOWED_UNITS_LOOKUP_CODE	number := 2;
211 	 A_COST_OF_SALES_ACCOUNT	number := 2;
212 	 A_SALES_ACCOUNT		number := 2;
213 	 A_DEFAULT_INCLUDE_IN_ROLLUP_F	number := 2;
214 	 A_INVENTORY_ITEM_STATUS_CODE	number := 2;
215 	 A_INVENTORY_PLANNING_CODE	number := 2;
216 	 A_PLANNER_CODE			number := 2;
217 	 A_PLANNING_MAKE_BUY_CODE	number := 2;
218 	 A_FIXED_LOT_MULTIPLIER		number := 2;
219 	 A_ROUNDING_CONTROL_TYPE	number := 2;
220 	 A_CARRYING_COST		number := 2;
221  	 A_POSTPROCESSING_LEAD_TIME	number := 2;
222 	 A_PREPROCESSING_LEAD_TIME	number := 2;
223 	 A_FULL_LEAD_TIME		number := 2;
224 	 A_ORDER_COST			number := 2;
225 	 A_MRP_SAFETY_STOCK_PERCENT	number := 2;
226 	 A_MRP_SAFETY_STOCK_CODE	number := 2;
227 	 A_MIN_MINMAX_QUANTITY		number := 2;
228 	 A_MAX_MINMAX_QUANTITY		number := 2;
229 	 A_MINIMUM_ORDER_QUANTITY	number := 2;
230 	 A_FIXED_ORDER_QUANTITY		number := 2;
231 	 A_FIXED_DAYS_SUPPLY		number := 2;
232 	 A_MAXIMUM_ORDER_QUANTITY	number := 2;
233 	 A_ATP_RULE_ID			number := 2;
234 	 A_PICKING_RULE_ID		number := 2;
235 	 A_RESERVABLE_TYPE		number := 2;
236 	 A_POSITIVE_MEASUREMENT_ERROR	number := 2;
237 	 A_OUTSIDE_OPERATION_FLAG	number := 2;
238 	 A_OUTSIDE_OPERATION_UOM_TYPE	number := 2;
239 	 A_SAFETY_STOCK_BUCKET_DAYS	number := 2;
240 	 A_AUTO_REDUCE_MPS		number := 2;
241 	 A_COSTING_ENABLED_FLAG		number := 2;
242 	 A_AUTO_CREATED_CONFIG_FLAG	number := 2;
243 	 A_CYCLE_COUNT_ENABLED_FLAG	number := 2;
244 	 A_ITEM_TYPE			number := 2;
245 	 A_MODEL_CONFIG_CLAUSE_NAME	number := 2;
246 	 A_SHIP_MODEL_COMPLETE_FLAG	number := 2;
247 	 A_MRP_PLANNING_CODE		number := 2;
248 	 A_RETURN_INSPECTION_REQUIRE	number := 2;
249 	 A_ATO_FORECAST_CONTROL		number := 2;
250  	 A_LOT_SUBSTITUTION_ENABLED     number := 2;
251  	 A_MINIMUM_LICENSE_QUANTITY     number := 2;
252 	 A_EAM_ACTIVITY_SOURCE_CODE     number := 2;
253 	 A_IB_ITEM_INSTANCE_CLASS       number := 2;
254 	 A_CONFIG_MODEL_TYPE            number := 2;
255 	 --Added as part of R12
256 	 A_SUBCONTRACTING_COMPONENT     number := 2;
257 	 A_OUTSOURCED_ASSEMBLY          number := 2;
258 	 A_CHARGE_PERIODICITY_CODE      number := 2;
259 	 A_REPAIR_LEADTIME              number := 2;
260 	 A_REPAIR_PROGRAM               number := 2;
261 	 A_REPAIR_YIELD                 number := 2;
262 	 A_PREPOSITION_POINT            number := 2;
263 
264 begin
265 
266 /* set the attribute level variables to be used when validating a child's item
267 ** level attributes against the master org's attribute value.  this is done
268 ** outside the loop so that it is only done once for all the records
269 ** instead of once PER record.
270 */
271 
272 	for att in ee loop
273 		if substr(att.attribute_name,18) = 'START_AUTO_LOT_NUMBER' then
274 			A_START_AUTO_LOT_NUMBER := att.control_level;
275 		end if;
276 		if substr(att.attribute_name,18) = 'LOT_CONTROL_CODE' then
277 			A_LOT_CONTROL_CODE := att.control_level;
278 		end if;
279 		if substr(att.attribute_name,18) = 'SHELF_LIFE_CODE' then
280 			A_SHELF_LIFE_CODE := att.control_level;
281 		end if;
282 		if substr(att.attribute_name,18) = 'SHELF_LIFE_DAYS' then
283 			A_SHELF_LIFE_DAYS := att.control_level;
284 		end if;
285 		if substr(att.attribute_name,18) = 'SERIAL_NUMBER_CONTROL_CODE' then
286 			A_SERIAL_NUMBER_CONTROL_CODE := att.control_level;
287 		end if;
288 		if substr(att.attribute_name,18) = 'START_AUTO_SERIAL_NUMBER' then
289 			A_START_AUTO_SERIAL_NUMBER := att.control_level;
290 		end if;
291 		if substr(att.attribute_name,18) = 'AUTO_SERIAL_ALPHA_PREFIX' then
292 			A_AUTO_SERIAL_ALPHA_PREFIX := att.control_level;
293 		end if;
294 		if substr(att.attribute_name,18) = 'SOURCE_TYPE' then
295 			A_SOURCE_TYPE := att.control_level;
296 		end if;
297 		if substr(att.attribute_name,18) = 'SOURCE_ORGANIZATION_ID' then
298 			A_SOURCE_ORGANIZATION_ID := att.control_level;
299 		end if;
300 		if substr(att.attribute_name,18) = 'SOURCE_SUBINVENTORY' then
301 			A_SOURCE_SUBINVENTORY := att.control_level;
302 		end if;
303 		if substr(att.attribute_name,18) = 'EXPENSE_ACCOUNT' then
304 			A_EXPENSE_ACCOUNT := att.control_level;
305 		end if;
306 		if substr(att.attribute_name,18) = 'ENCUMBRANCE_ACCOUNT' then
307 			A_ENCUMBRANCE_ACCOUNT := att.control_level;
308 		end if;
309 		if substr(att.attribute_name,18) = 'RESTRICT_SUBINVENTORIES_CODE' then
310 			A_RESTRICT_SUBINVENTORIES_CODE := att.control_level;
311 		end if;
312 		if substr(att.attribute_name,18) = 'UNIT_WEIGHT' then
313 			A_UNIT_WEIGHT := att.control_level;
314 		end if;
315 		if substr(att.attribute_name,18) = 'WEIGHT_UOM_CODE' then
316 			A_WEIGHT_UOM_CODE := att.control_level;
317 		end if;
318 		if substr(att.attribute_name,18) = 'VOLUME_UOM_CODE' then
319 			A_VOLUME_UOM_CODE := att.control_level;
320 		end if;
321 		if substr(att.attribute_name,18) = 'UNIT_VOLUME' then
322 			A_UNIT_VOLUME := att.control_level;
323 		end if;
324 		if substr(att.attribute_name,18) = 'RESTRICT_LOCATORS_CODE' then
325 			A_RESTRICT_LOCATORS_CODE := att.control_level;
326 		end if;
327 		if substr(att.attribute_name,18) = 'LOCATION_CONTROL_CODE' then
328 			A_LOCATION_CONTROL_CODE := att.control_level;
329 		end if;
330 		if substr(att.attribute_name,18) = 'SHRINKAGE_RATE' then
331 			A_SHRINKAGE_RATE := att.control_level;
332 		end if;
333 		if substr(att.attribute_name,18) = 'ACCEPTABLE_EARLY_DAYS' then
334 			A_ACCEPTABLE_EARLY_DAYS := att.control_level;
335 		end if;
336 		if substr(att.attribute_name,18) = 'PLANNING_TIME_FENCE_CODE' then
337 			A_PLANNING_TIME_FENCE_CODE := att.control_level;
338 		end if;
339 		if substr(att.attribute_name,18) = 'DEMAND_TIME_FENCE_CODE' then
340 			A_DEMAND_TIME_FENCE_CODE := att.control_level;
341 		end if;
342 		if substr(att.attribute_name,18) = 'LEAD_TIME_LOT_SIZE' then
343 			A_LEAD_TIME_LOT_SIZE := att.control_level;
344 		end if;
345 		if substr(att.attribute_name,18) = 'STD_LOT_SIZE' then
346 			A_STD_LOT_SIZE := att.control_level;
347 		end if;
348 		if substr(att.attribute_name,18) = 'CUM_MANUFACTURING_LEAD_TIME' then
349 			A_CUM_MANUFACTURING_LEAD_TIME := att.control_level;
350 		end if;
351 		if substr(att.attribute_name,18) = 'OVERRUN_PERCENTAGE' then
352 			A_OVERRUN_PERCENTAGE := att.control_level;
353 		end if;
354 		if substr(att.attribute_name,18) = 'MRP_CALCULATE_ATP_FLAG' then
355 			A_MRP_CALCULATE_ATP_FLAG := att.control_level;
356 		end if;
357 		if substr(att.attribute_name,18) = 'ACCEPTABLE_RATE_INCREASE' then
358 			A_ACCEPTABLE_RATE_INCREASE := att.control_level;
359 		end if;
360 		if substr(att.attribute_name,18) = 'ACCEPTABLE_RATE_DECREASE' then
361 			A_ACCEPTABLE_RATE_DECREASE := att.control_level;
362 		end if;
363 		if substr(att.attribute_name,18) = 'CUMULATIVE_TOTAL_LEAD_TIME' then
364 			A_CUMULATIVE_TOTAL_LEAD_TIME := att.control_level;
365 		end if;
366 		if substr(att.attribute_name,18) = 'PLANNING_TIME_FENCE_DAYS' then
367 			A_PLANNING_TIME_FENCE_DAYS := att.control_level;
368 		end if;
369 		if substr(att.attribute_name,18) = 'DEMAND_TIME_FENCE_DAYS' then
370 			A_DEMAND_TIME_FENCE_DAYS := att.control_level;
371 		end if;
372 		if substr(att.attribute_name,18) = 'END_ASSEMBLY_PEGGING_FLAG' then
373 			A_END_ASSEMBLY_PEGGING_FLAG := att.control_level;
374 		end if;
375 		if substr(att.attribute_name,18) = 'REPETITIVE_PLANNING_FLAG' then
376 			A_REPETITIVE_PLANNING_FLAG := att.control_level;
377 		end if;
378 		if substr(att.attribute_name,18) = 'PLANNING_EXCEPTION_SET' then
379 			A_PLANNING_EXCEPTION_SET := att.control_level;
380 		end if;
381 		if substr(att.attribute_name,18) = 'BOM_ITEM_TYPE' then
382 			A_BOM_ITEM_TYPE := att.control_level;
383 		end if;
384 		if substr(att.attribute_name,18) = 'PICK_COMPONENTS_FLAG' then
385 			A_PICK_COMPONENTS_FLAG := att.control_level;
386 		end if;
387 		if substr(att.attribute_name,18) = 'REPLENISH_TO_ORDER_FLAG' then
388 			A_REPLENISH_TO_ORDER_FLAG := att.control_level;
389 		end if;
390 		if substr(att.attribute_name,18) = 'BASE_ITEM_ID' then
391 			A_BASE_ITEM_ID := att.control_level;
392 		end if;
393 		if substr(att.attribute_name,18) = 'ATP_COMPONENTS_FLAG' then
394 			A_ATP_COMPONENTS_FLAG := att.control_level;
395 		end if;
396 		if substr(att.attribute_name,18) = 'ATP_FLAG' then
397 			A_ATP_FLAG := att.control_level;
398 		end if;
399 		if substr(att.attribute_name,18) = 'FIXED_LEAD_TIME' then
400 			A_FIXED_LEAD_TIME := att.control_level;
401 		end if;
402 		if substr(att.attribute_name,18) = 'VARIABLE_LEAD_TIME' then
403 			A_VARIABLE_LEAD_TIME := att.control_level;
404 		end if;
405 		if substr(att.attribute_name,18) = 'WIP_SUPPLY_LOCATOR_ID' then
406 			A_WIP_SUPPLY_LOCATOR_ID := att.control_level;
407 		end if;
408 		if substr(att.attribute_name,18) = 'WIP_SUPPLY_TYPE' then
409 			A_WIP_SUPPLY_TYPE := att.control_level;
410 		end if;
411 		if substr(att.attribute_name,18) = 'WIP_SUPPLY_SUBINVENTORY' then
412 			A_WIP_SUPPLY_SUBINVENTORY := att.control_level;
413 		end if;
417 /*
414 		if substr(att.attribute_name,18) = 'PRIMARY_UOM_CODE' then
415 			A_PRIMARY_UOM_CODE := att.control_level;
416 		end if;
418 		if substr(att.attribute_name,18) = 'PRIMARY_UNIT_OF_MEASURE' then
419 			A_PRIMARY_UNIT_OF_MEASURE := att.control_level;
420 		end if;
421 */
422 		if substr(att.attribute_name,18) = 'ALLOWED_UNITS_LOOKUP_CODE' then
423 			A_ALLOWED_UNITS_LOOKUP_CODE := att.control_level;
424 		end if;
425 		if substr(att.attribute_name,18) = 'COST_OF_SALES_ACCOUNT' then
426 			A_COST_OF_SALES_ACCOUNT := att.control_level;
427 		end if;
428 		if substr(att.attribute_name,18) = 'SALES_ACCOUNT' then
429 			A_SALES_ACCOUNT := att.control_level;
430 		end if;
431 		if substr(att.attribute_name,18) = 'DEFAULT_INCLUDE_IN_ROLLUP_FLAG' then
432 			A_DEFAULT_INCLUDE_IN_ROLLUP_F := att.control_level;
433 		end if;
434 		if substr(att.attribute_name,18) = 'INVENTORY_ITEM_STATUS_CODE' then
435 			A_INVENTORY_ITEM_STATUS_CODE := att.control_level;
436 		end if;
437 		if substr(att.attribute_name,18) = 'INVENTORY_PLANNING_CODE' then
438 			A_INVENTORY_PLANNING_CODE := att.control_level;
439 		end if;
440 		if substr(att.attribute_name,18) = 'PLANNER_CODE' then
441 			A_PLANNER_CODE := att.control_level;
442 		end if;
443 		if substr(att.attribute_name,18) = 'PLANNING_MAKE_BUY_CODE' then
444 			A_PLANNING_MAKE_BUY_CODE := att.control_level;
445 		end if;
446 		if substr(att.attribute_name,18) = 'FIXED_LOT_MULTIPLIER' then
447 			A_FIXED_LOT_MULTIPLIER := att.control_level;
448 		end if;
449 		if substr(att.attribute_name,18) = 'ROUNDING_CONTROL_TYPE' then
450 			A_ROUNDING_CONTROL_TYPE := att.control_level;
451 		end if;
452 		if substr(att.attribute_name,18) = 'CARRYING_COST' then
453 			A_CARRYING_COST := att.control_level;
454 		end if;
455 		if substr(att.attribute_name,18) = 'POSTPROCESSING_LEAD_TIME' then
456 			A_POSTPROCESSING_LEAD_TIME := att.control_level;
457 		end if;
458 		if substr(att.attribute_name,18) = 'PREPROCESSING_LEAD_TIME' then
459 			A_PREPROCESSING_LEAD_TIME := att.control_level;
460 		end if;
461 		if substr(att.attribute_name,18) = 'FULL_LEAD_TIME' then
462 			A_FULL_LEAD_TIME := att.control_level;
463 		end if;
464 		if substr(att.attribute_name,18) = 'ORDER_COST' then
465 			A_ORDER_COST := att.control_level;
466 		end if;
467 		if substr(att.attribute_name,18) = 'MRP_SAFETY_STOCK_PERCENT' then
468 			A_MRP_SAFETY_STOCK_PERCENT := att.control_level;
469 		end if;
470 		if substr(att.attribute_name,18) = 'MRP_SAFETY_STOCK_CODE' then
471 			A_MRP_SAFETY_STOCK_CODE := att.control_level;
472 		end if;
473 		if substr(att.attribute_name,18) = 'MIN_MINMAX_QUANTITY' then
474 			A_MIN_MINMAX_QUANTITY := att.control_level;
475 		end if;
476 		if substr(att.attribute_name,18) = 'MAX_MINMAX_QUANTITY' then
477 			A_MAX_MINMAX_QUANTITY := att.control_level;
478 		end if;
479 		if substr(att.attribute_name,18) = 'MINIMUM_ORDER_QUANTITY' then
480 			A_MINIMUM_ORDER_QUANTITY := att.control_level;
481 		end if;
482 		if substr(att.attribute_name,18) = 'FIXED_ORDER_QUANTITY' then
483 			A_FIXED_ORDER_QUANTITY := att.control_level;
484 		end if;
485 		if substr(att.attribute_name,18) = 'FIXED_DAYS_SUPPLY' then
486 			A_FIXED_DAYS_SUPPLY := att.control_level;
487 		end if;
488 		if substr(att.attribute_name,18) = 'MAXIMUM_ORDER_QUANTITY' then
489 			A_MAXIMUM_ORDER_QUANTITY := att.control_level;
490 		end if;
491 		if substr(att.attribute_name,18) = 'ATP_RULE_ID' then
492 			A_ATP_RULE_ID := att.control_level;
493 		end if;
494 		if substr(att.attribute_name,18) = 'PICKING_RULE_ID' then
495 			A_PICKING_RULE_ID := att.control_level;
496 		end if;
497 		if substr(att.attribute_name,18) = 'RESERVABLE_TYPE' then
498 			A_RESERVABLE_TYPE := att.control_level;
499 		end if;
500 		if substr(att.attribute_name,18) = 'POSITIVE_MEASUREMENT_ERROR' then
501 			A_POSITIVE_MEASUREMENT_ERROR := att.control_level;
502 		end if;
503 		if substr(att.attribute_name,18) = 'OUTSIDE_OPERATION_FLAG' then
504 			A_OUTSIDE_OPERATION_FLAG := att.control_level;
505 		end if;
506 		if substr(att.attribute_name,18) = 'OUTSIDE_OPERATION_UOM_TYPE' then
507 			A_OUTSIDE_OPERATION_UOM_TYPE := att.control_level;
508 		end if;
509 		if substr(att.attribute_name,18) = 'SAFETY_STOCK_BUCKET_DAYS' then
510 			A_SAFETY_STOCK_BUCKET_DAYS := att.control_level;
511 		end if;
512 		if substr(att.attribute_name,18) = 'AUTO_REDUCE_MPS' then
513 			A_AUTO_REDUCE_MPS := att.control_level;
514 		end if;
515 		if substr(att.attribute_name,18) = 'COSTING_ENABLED_FLAG' then
516 			A_COSTING_ENABLED_FLAG := att.control_level;
517 		end if;
518 		if substr(att.attribute_name,18) = 'AUTO_CREATED_CONFIG_FLAG' then
519 			A_AUTO_CREATED_CONFIG_FLAG := att.control_level;
520 		end if;
521 		if substr(att.attribute_name,18) = 'CYCLE_COUNT_ENABLED_FLAG' then
522 			A_CYCLE_COUNT_ENABLED_FLAG := att.control_level;
523 		end if;
524 		if substr(att.attribute_name,18) = 'ITEM_TYPE' then
525 			A_ITEM_TYPE := att.control_level;
526 		end if;
527 		if substr(att.attribute_name,18) = 'MODEL_CONFIG_CLAUSE_NAME' then
528 			A_MODEL_CONFIG_CLAUSE_NAME := att.control_level;
529 		end if;
530 		if substr(att.attribute_name,18) = 'SHIP_MODEL_COMPLETE_FLAG' then
531 			A_SHIP_MODEL_COMPLETE_FLAG := att.control_level;
532 		end if;
533 		if substr(att.attribute_name,18) = 'MRP_PLANNING_CODE' then
534 			A_MRP_PLANNING_CODE := att.control_level;
535 		end if;
536 		if substr(att.attribute_name,18) = 'RETURN_INSPECTION_REQUIREMENT' then
540 			A_ATO_FORECAST_CONTROL := att.control_level;
537 			A_RETURN_INSPECTION_REQUIRE := att.control_level;
538 		end if;
539 		if substr(att.attribute_name,18) = 'ATO_FORECAST_CONTROL' then
541 		end if;
542 --Added as part of 11.5.9
543 		if substr(att.attribute_name,18) = 'LOT_SUBSTITUTION_ENABLED' then
544 			 A_LOT_SUBSTITUTION_ENABLED := att.control_level;
545 		end if;
546 		if substr(att.attribute_name,18) = 'MINIMUM_LICENSE_QUANTITY' then
547 			 A_MINIMUM_LICENSE_QUANTITY := att.control_level;
548 		end if;
549 		if substr(att.attribute_name,18) = 'EAM_ACTIVITY_SOURCE_CODE' then
550 			 A_EAM_ACTIVITY_SOURCE_CODE := att.control_level;
551 		end if;
552 		if substr(att.attribute_name,18) = 'IB_ITEM_INSTANCE_CLASS' then
553 			 A_IB_ITEM_INSTANCE_CLASS := att.control_level;
554 		end if;
555 		if substr(att.attribute_name,18) = 'CONFIG_MODEL_TYPE' then
556 			 A_CONFIG_MODEL_TYPE := att.control_level;
557 		end if;
558 --Added as part of R12 Enh.
559 		if substr(att.attribute_name,18) = 'OUTSOURCED_ASSEMBLY' then
560 			 A_OUTSOURCED_ASSEMBLY := att.control_level;
561 		end if;
562 		if substr(att.attribute_name,18) = 'SUBCONTRACTING_COMPONENT' then
563 			 A_SUBCONTRACTING_COMPONENT := att.control_level;
564 		end if;
565 		if substr(att.attribute_name,18) = 'CHARGE_PERIODICITY_CODE' then
566 			 A_CHARGE_PERIODICITY_CODE := att.control_level;
567 		end if;
568 		if substr(att.attribute_name,18) = 'REPAIR_LEADTIME' then
569 			 A_REPAIR_LEADTIME := att.control_level;
570 		end if;
571 		if substr(att.attribute_name,18) = 'REPAIR_PROGRAM' then
572 			 A_REPAIR_PROGRAM := att.control_level;
573 		end if;
574 		if substr(att.attribute_name,18) = 'REPAIR_YIELD' then
575 			 A_REPAIR_YIELD := att.control_level;
576 		end if;
577 		if substr(att.attribute_name,18) = 'PREPOSITION_POINT' then
578 			 A_PREPOSITION_POINT := att.control_level;
579 		end if;
580 	end loop;
581 /*
582 ** validate the records
583 */
584 	for cr in cc loop
585 		status := 0;
586 		trans_id := cr.transaction_id;
587 		l_org_id := cr.ORGID;
588 
589 		begin /* MASTER_CHILD_4A */
590 
591 			select inventory_item_id into msicount
592 			from mtl_system_items msi
593 			where msi.inventory_item_id = cr.III
594 			and   msi.organization_id = cr.MORGID
595  			and decode(A_START_AUTO_LOT_NUMBER,X_TRUE,nvl(cr.START_AUTO_LOT_NUMBER,-1),nvl(msi.START_AUTO_LOT_NUMBER,-1))=nvl(msi.START_AUTO_LOT_NUMBER,-1)
596  			and decode(A_LOT_CONTROL_CODE,X_TRUE,nvl(cr.LOT_CONTROL_CODE,-1),nvl(msi.LOT_CONTROL_CODE,-1))=nvl(msi.LOT_CONTROL_CODE,-1)
597  			and decode(A_SHELF_LIFE_CODE,X_TRUE,nvl(cr.SHELF_LIFE_CODE,-1),nvl(msi.SHELF_LIFE_CODE,-1))=nvl(msi.SHELF_LIFE_CODE,-1)
598  			and decode(A_SHELF_LIFE_DAYS,X_TRUE,nvl(cr.SHELF_LIFE_DAYS,-1),nvl(msi.SHELF_LIFE_DAYS,-1))=nvl(msi.SHELF_LIFE_DAYS,-1)
599  			and decode(A_SERIAL_NUMBER_CONTROL_CODE,X_TRUE,nvl(cr.SERIAL_NUMBER_CONTROL_CODE,-1),nvl(msi.SERIAL_NUMBER_CONTROL_CODE,-1))=nvl(msi.SERIAL_NUMBER_CONTROL_CODE,-1)
600  			and decode(A_START_AUTO_SERIAL_NUMBER,X_TRUE,nvl(cr.START_AUTO_SERIAL_NUMBER,-1),nvl(msi.START_AUTO_SERIAL_NUMBER,-1))=nvl(msi.START_AUTO_SERIAL_NUMBER,-1)
601  			and decode(A_AUTO_SERIAL_ALPHA_PREFIX,X_TRUE,nvl(cr.AUTO_SERIAL_ALPHA_PREFIX,-1),nvl(msi.AUTO_SERIAL_ALPHA_PREFIX,-1))=nvl(msi.AUTO_SERIAL_ALPHA_PREFIX,-1);
602 
603 		exception
604 			when NO_DATA_FOUND then
605 				dumm_status := INVPUOPI.mtl_log_interface_err(
606 				cr.ORGID,
607                 	        user_id,
608 	                        login_id,
609 	                        prog_appid,
610 	                        prog_id,
611 	                        request_id,
612 				cr.TRANSACTION_ID,
613 				error_msg,
614 				'MASTER_CHILD_4A',
615 				'MTL_SYSTEM_ITEMS_INTERFACE',
616 				'INV_IOI_MASTER_CHILD_4A',
617 				err_text);
618                                 If dumm_status < 0 Then
619                                    raise LOGGING_ERR ;
620                                 End if ;
621 				update mtl_system_items_interface msii
622 				set process_flag = 3
623 				where msii.transaction_id = cr.transaction_id;
624 
625 		end;  /* MASTER_CHILD_4A */
626 
627 
628 		begin /* MASTER_CHILD_4B */
629 
630 			select inventory_item_id into msicount
631 			from mtl_system_items msi
632 			where msi.inventory_item_id = cr.III
633 			and   msi.organization_id = cr.MORGID
634  			and decode(A_SOURCE_TYPE,X_TRUE,nvl(cr.SOURCE_TYPE,-1),nvl(msi.SOURCE_TYPE,-1))=nvl(msi.SOURCE_TYPE,-1)
635  			and decode(A_SOURCE_ORGANIZATION_ID,X_TRUE,nvl(cr.SOURCE_ORGANIZATION_ID,-1),nvl(msi.SOURCE_ORGANIZATION_ID,-1))=nvl(msi.SOURCE_ORGANIZATION_ID,-1)
636  			and decode(A_SOURCE_SUBINVENTORY,X_TRUE,nvl(cr.SOURCE_SUBINVENTORY,-1),nvl(msi.SOURCE_SUBINVENTORY,-1))=nvl(msi.SOURCE_SUBINVENTORY,-1)
637  			and decode(A_EXPENSE_ACCOUNT,X_TRUE,nvl(cr.EXPENSE_ACCOUNT,-1),nvl(msi.EXPENSE_ACCOUNT,-1))=nvl(msi.EXPENSE_ACCOUNT,-1)
638  			and decode(A_ENCUMBRANCE_ACCOUNT,X_TRUE,nvl(cr.ENCUMBRANCE_ACCOUNT,-1),nvl(msi.ENCUMBRANCE_ACCOUNT,-1))=nvl(msi.ENCUMBRANCE_ACCOUNT,-1)
639  			and decode(A_RESTRICT_SUBINVENTORIES_CODE,X_TRUE,nvl(cr.RESTRICT_SUBINVENTORIES_CODE,-1),nvl(msi.RESTRICT_SUBINVENTORIES_CODE,-1))=nvl(msi.RESTRICT_SUBINVENTORIES_CODE,-1)
640  			and decode(A_UNIT_WEIGHT,X_TRUE,nvl(cr.UNIT_WEIGHT,-1),nvl(msi.UNIT_WEIGHT,-1))=nvl(msi.UNIT_WEIGHT,-1)
641  			and decode(A_WEIGHT_UOM_CODE,X_TRUE,nvl(cr.WEIGHT_UOM_CODE,-1),nvl(msi.WEIGHT_UOM_CODE,-1))=nvl(msi.WEIGHT_UOM_CODE,-1);
642 
643 		exception
644 			when NO_DATA_FOUND then
645 				dumm_status := INVPUOPI.mtl_log_interface_err(
646 				cr.ORGID,
650 	                        prog_id,
647                 	        user_id,
648 	                        login_id,
649 	                        prog_appid,
651 	                        request_id,
652 				cr.TRANSACTION_ID,
653 				error_msg,
654 				'MASTER_CHILD_4B',
655 				'MTL_SYSTEM_ITEMS_INTERFACE',
656 				'INV_IOI_MASTER_CHILD_4B',
657 				err_text);
658                                 If dumm_status < 0 Then
659                                    raise LOGGING_ERR ;
660                                 End if ;
661 				update mtl_system_items_interface msii
662 				set process_flag = 3
663 				where msii.transaction_id = cr.transaction_id;
664 
665 		end;  /* MASTER_CHILD_4B */
666 
667 
668 		begin /* MASTER_CHILD_4C */
669 
670 			select inventory_item_id into msicount
671 			from mtl_system_items msi
672 			where msi.inventory_item_id = cr.III
673 			and   msi.organization_id = cr.MORGID
674  			and decode(A_VOLUME_UOM_CODE,X_TRUE,nvl(cr.VOLUME_UOM_CODE,-1),nvl(msi.VOLUME_UOM_CODE,-1))=nvl(msi.VOLUME_UOM_CODE,-1)
675  			and decode(A_UNIT_VOLUME,X_TRUE,nvl(cr.UNIT_VOLUME,-1),nvl(msi.UNIT_VOLUME,-1))=nvl(msi.UNIT_VOLUME,-1)
676  			and decode(A_RESTRICT_LOCATORS_CODE,X_TRUE,nvl(cr.RESTRICT_LOCATORS_CODE,-1),nvl(msi.RESTRICT_LOCATORS_CODE,-1))=nvl(msi.RESTRICT_LOCATORS_CODE,-1)
677  			and decode(A_LOCATION_CONTROL_CODE,X_TRUE,nvl(cr.LOCATION_CONTROL_CODE,-1),nvl(msi.LOCATION_CONTROL_CODE,-1))=nvl(msi.LOCATION_CONTROL_CODE,-1)
678  			and decode(A_SHRINKAGE_RATE,X_TRUE,nvl(cr.SHRINKAGE_RATE,-1),nvl(msi.SHRINKAGE_RATE,-1))=nvl(msi.SHRINKAGE_RATE,-1)
679  			and decode(A_ACCEPTABLE_EARLY_DAYS,X_TRUE,nvl(cr.ACCEPTABLE_EARLY_DAYS,-1),nvl(msi.ACCEPTABLE_EARLY_DAYS,-1))=nvl(msi.ACCEPTABLE_EARLY_DAYS,-1)
680  			and decode(A_PLANNING_TIME_FENCE_CODE,X_TRUE,nvl(cr.PLANNING_TIME_FENCE_CODE,-1),nvl(msi.PLANNING_TIME_FENCE_CODE,-1))=nvl(msi.PLANNING_TIME_FENCE_CODE,-1);
681 
682 		exception
683 			when NO_DATA_FOUND then
684 				dumm_status := INVPUOPI.mtl_log_interface_err(
685 				cr.ORGID,
686                 	        user_id,
687 	                        login_id,
688 	                        prog_appid,
689 	                        prog_id,
690 	                        request_id,
691 				cr.TRANSACTION_ID,
692 				error_msg,
693 				'MASTER_CHILD_4C',
694 				'MTL_SYSTEM_ITEMS_INTERFACE',
695 				'INV_IOI_MASTER_CHILD_4C',
696 				err_text);
697                                 If dumm_status < 0 Then
698                                    raise LOGGING_ERR ;
699                                 End if ;
700 				update mtl_system_items_interface msii
701 				set process_flag = 3
702 				where msii.transaction_id = cr.transaction_id;
703 
704 		end;  /* MASTER_CHILD_4C */
705 
706 
707 		begin /* MASTER_CHILD_4D */
708 
709 			select inventory_item_id into msicount
710 			from mtl_system_items msi
711 			where msi.inventory_item_id = cr.III
712 			and   msi.organization_id = cr.MORGID
713  			and decode(A_DEMAND_TIME_FENCE_CODE,X_TRUE,nvl(cr.DEMAND_TIME_FENCE_CODE,-1),nvl(msi.DEMAND_TIME_FENCE_CODE,-1))=nvl(msi.DEMAND_TIME_FENCE_CODE,-1)
714  			and decode(A_LEAD_TIME_LOT_SIZE,X_TRUE,nvl(cr.LEAD_TIME_LOT_SIZE,-1),nvl(msi.LEAD_TIME_LOT_SIZE,-1))=nvl(msi.LEAD_TIME_LOT_SIZE,-1)
715  			and decode(A_STD_LOT_SIZE,X_TRUE,nvl(cr.STD_LOT_SIZE,-1),nvl(msi.STD_LOT_SIZE,-1))=nvl(msi.STD_LOT_SIZE,-1)
716  			and decode(A_CUM_MANUFACTURING_LEAD_TIME,X_TRUE,nvl(cr.CUM_MANUFACTURING_LEAD_TIME,-1),nvl(msi.CUM_MANUFACTURING_LEAD_TIME,-1))=nvl(msi.CUM_MANUFACTURING_LEAD_TIME,-1)
717  			and decode(A_OVERRUN_PERCENTAGE,X_TRUE,nvl(cr.OVERRUN_PERCENTAGE,-1),nvl(msi.OVERRUN_PERCENTAGE,-1))=nvl(msi.OVERRUN_PERCENTAGE,-1)
718  			and decode(A_MRP_CALCULATE_ATP_FLAG,X_TRUE,nvl(cr.MRP_CALCULATE_ATP_FLAG,-1),nvl(msi.MRP_CALCULATE_ATP_FLAG,-1))=nvl(msi.MRP_CALCULATE_ATP_FLAG,-1)
719  			and decode(A_ACCEPTABLE_RATE_INCREASE,X_TRUE,nvl(cr.ACCEPTABLE_RATE_INCREASE,-1),nvl(msi.ACCEPTABLE_RATE_INCREASE,-1))=nvl(msi.ACCEPTABLE_RATE_INCREASE,-1)
720  			and decode(A_ACCEPTABLE_RATE_DECREASE,X_TRUE,nvl(cr.ACCEPTABLE_RATE_DECREASE,-1),nvl(msi.ACCEPTABLE_RATE_DECREASE,-1))=nvl(msi.ACCEPTABLE_RATE_DECREASE,-1);
721 
722 		exception
723 			when NO_DATA_FOUND then
724 				dumm_status := INVPUOPI.mtl_log_interface_err(
725 				cr.ORGID,
726                 	        user_id,
727 	                        login_id,
728 	                        prog_appid,
729 	                        prog_id,
730 	                        request_id,
731 				cr.TRANSACTION_ID,
732 				error_msg,
733 				'MASTER_CHILD_4D',
734 				'MTL_SYSTEM_ITEMS_INTERFACE',
735 				'INV_IOI_MASTER_CHILD_4D',
736 				err_text);
737                                 If dumm_status < 0 Then
738                                    raise LOGGING_ERR ;
739                                 End if ;
740 				update mtl_system_items_interface msii
741 				set process_flag = 3
742 				where msii.transaction_id = cr.transaction_id;
743 
744 		end;  /* MASTER_CHILD_4D */
745 
746 
747 		begin /* MASTER_CHILD_4E */
748 
749 			select inventory_item_id into msicount
750 			from mtl_system_items msi
751 			where msi.inventory_item_id = cr.III
752 			and   msi.organization_id = cr.MORGID
753  			and decode(A_CUMULATIVE_TOTAL_LEAD_TIME,X_TRUE,nvl(cr.CUMULATIVE_TOTAL_LEAD_TIME,-1),nvl(msi.CUMULATIVE_TOTAL_LEAD_TIME,-1))=nvl(msi.CUMULATIVE_TOTAL_LEAD_TIME,-1)
754  			and decode(A_PLANNING_TIME_FENCE_DAYS,X_TRUE,nvl(cr.PLANNING_TIME_FENCE_DAYS,-1),nvl(msi.PLANNING_TIME_FENCE_DAYS,-1))=nvl(msi.PLANNING_TIME_FENCE_DAYS,-1)
758  			and decode(A_PLANNING_EXCEPTION_SET,X_TRUE,nvl(cr.PLANNING_EXCEPTION_SET,-1),nvl(msi.PLANNING_EXCEPTION_SET,-1))=nvl(msi.PLANNING_EXCEPTION_SET,-1)
755  			and decode(A_DEMAND_TIME_FENCE_DAYS,X_TRUE,nvl(cr.DEMAND_TIME_FENCE_DAYS,-1),nvl(msi.DEMAND_TIME_FENCE_DAYS,-1))=nvl(msi.DEMAND_TIME_FENCE_DAYS,-1)
756  			and decode(A_END_ASSEMBLY_PEGGING_FLAG,X_TRUE,nvl(cr.END_ASSEMBLY_PEGGING_FLAG,-1),nvl(msi.END_ASSEMBLY_PEGGING_FLAG,-1))=nvl(msi.END_ASSEMBLY_PEGGING_FLAG,-1)
757  			and decode(A_REPETITIVE_PLANNING_FLAG,X_TRUE,nvl(cr.REPETITIVE_PLANNING_FLAG,-1),nvl(msi.REPETITIVE_PLANNING_FLAG,-1))=nvl(msi.REPETITIVE_PLANNING_FLAG,-1)
759  			and decode(A_BOM_ITEM_TYPE,X_TRUE,nvl(cr.BOM_ITEM_TYPE,-1),nvl(msi.BOM_ITEM_TYPE,-1))=nvl(msi.BOM_ITEM_TYPE,-1);
760 
761 		exception
762 			when NO_DATA_FOUND then
763 				dumm_status := INVPUOPI.mtl_log_interface_err(
764 				cr.ORGID,
765                 	        user_id,
766 	                        login_id,
767 	                        prog_appid,
768 	                        prog_id,
769 	                        request_id,
770 				cr.TRANSACTION_ID,
771 				error_msg,
772 				'MASTER_CHILD_4E',
773 				'MTL_SYSTEM_ITEMS_INTERFACE',
774 				'INV_IOI_MASTER_CHILD_4E',
775 				err_text);
776                                 If dumm_status < 0 Then
777                                    raise LOGGING_ERR ;
778                                 End if ;
779 				update mtl_system_items_interface msii
780 				set process_flag = 3
781 				where msii.transaction_id = cr.transaction_id;
782 
783 		end;  /* MASTER_CHILD_4E */
784 
785 
786 		begin /* MASTER_CHILD_4F */
787 
788 			select inventory_item_id into msicount
789 			from mtl_system_items msi
790 			where msi.inventory_item_id = cr.III
791 			and   msi.organization_id = cr.MORGID
792  			and decode(A_PICK_COMPONENTS_FLAG,X_TRUE,nvl(cr.PICK_COMPONENTS_FLAG,-1),nvl(msi.PICK_COMPONENTS_FLAG,-1))=nvl(msi.PICK_COMPONENTS_FLAG,-1)
793  			and decode(A_REPLENISH_TO_ORDER_FLAG,X_TRUE,nvl(cr.REPLENISH_TO_ORDER_FLAG,-1),nvl(msi.REPLENISH_TO_ORDER_FLAG,-1))=nvl(msi.REPLENISH_TO_ORDER_FLAG,-1)
794  			and decode(A_BASE_ITEM_ID,X_TRUE,nvl(cr.BASE_ITEM_ID,-1),nvl(msi.BASE_ITEM_ID,-1))=nvl(msi.BASE_ITEM_ID,-1)
795  			and decode(A_ATP_COMPONENTS_FLAG,X_TRUE,nvl(cr.ATP_COMPONENTS_FLAG,-1),nvl(msi.ATP_COMPONENTS_FLAG,-1))=nvl(msi.ATP_COMPONENTS_FLAG,-1)
796  			and decode(A_ATP_FLAG,X_TRUE,nvl(cr.ATP_FLAG,-1),nvl(msi.ATP_FLAG,-1))=nvl(msi.ATP_FLAG,-1)
797  			and decode(A_FIXED_LEAD_TIME,X_TRUE,nvl(cr.FIXED_LEAD_TIME,-1),nvl(msi.FIXED_LEAD_TIME,-1))=nvl(msi.FIXED_LEAD_TIME,-1)
798  			and decode(A_VARIABLE_LEAD_TIME,X_TRUE,nvl(cr.VARIABLE_LEAD_TIME,-1),nvl(msi.VARIABLE_LEAD_TIME,-1))=nvl(msi.VARIABLE_LEAD_TIME,-1)
799  			and decode(A_WIP_SUPPLY_LOCATOR_ID,X_TRUE,nvl(cr.WIP_SUPPLY_LOCATOR_ID,-1),nvl(msi.WIP_SUPPLY_LOCATOR_ID,-1))=nvl(msi.WIP_SUPPLY_LOCATOR_ID,-1);
800 
801 		exception
802 			when NO_DATA_FOUND then
803 				dumm_status := INVPUOPI.mtl_log_interface_err(
804 				cr.ORGID,
805                 	        user_id,
806 	                        login_id,
807 	                        prog_appid,
808 	                        prog_id,
809 	                        request_id,
810 				cr.TRANSACTION_ID,
811 				error_msg,
812 				'MASTER_CHILD_4F',
813 				'MTL_SYSTEM_ITEMS_INTERFACE',
814 				'INV_IOI_MASTER_CHILD_4F',
815 				err_text);
816                                 If dumm_status < 0 Then
817                                    raise LOGGING_ERR ;
818                                 End if ;
819 				update mtl_system_items_interface msii
820 				set process_flag = 3
821 				where msii.transaction_id = cr.transaction_id;
822 
823 		end;  /* MASTER_CHILD_4F */
824 
825 
826 		begin /* MASTER_CHILD_4G */
827 
828 			select inventory_item_id into msicount
829 			from mtl_system_items msi
830 			where msi.inventory_item_id = cr.III
831 			and   msi.organization_id = cr.MORGID
832  			and decode(A_WIP_SUPPLY_TYPE,X_TRUE,nvl(cr.WIP_SUPPLY_TYPE,-1),nvl(msi.WIP_SUPPLY_TYPE,-1))=nvl(msi.WIP_SUPPLY_TYPE,-1)
833  			and decode(A_WIP_SUPPLY_SUBINVENTORY,X_TRUE,nvl(cr.WIP_SUPPLY_SUBINVENTORY,-1),nvl(msi.WIP_SUPPLY_SUBINVENTORY,-1))=nvl(msi.WIP_SUPPLY_SUBINVENTORY,-1)
834  			and decode(A_PRIMARY_UOM_CODE,X_TRUE,nvl(cr.PRIMARY_UOM_CODE,-1),nvl(msi.PRIMARY_UOM_CODE,-1))=nvl(msi.PRIMARY_UOM_CODE,-1)
835 /*
836  			and decode(A_PRIMARY_UNIT_OF_MEASURE,X_TRUE,nvl(cr.PRIMARY_UNIT_OF_MEASURE,-1),nvl(msi.PRIMARY_UNIT_OF_MEASURE,-1))=nvl(msi.PRIMARY_UNIT_OF_MEASURE,-1)
837 */
838  			and decode(A_ALLOWED_UNITS_LOOKUP_CODE,X_TRUE,nvl(cr.ALLOWED_UNITS_LOOKUP_CODE,-1),nvl(msi.ALLOWED_UNITS_LOOKUP_CODE,-1))=nvl(msi.ALLOWED_UNITS_LOOKUP_CODE,-1)
839  			and decode(A_COST_OF_SALES_ACCOUNT,X_TRUE,nvl(cr.COST_OF_SALES_ACCOUNT,-1),nvl(msi.COST_OF_SALES_ACCOUNT,-1))=nvl(msi.COST_OF_SALES_ACCOUNT,-1)
840  			and decode(A_SALES_ACCOUNT,X_TRUE,nvl(cr.SALES_ACCOUNT,-1),nvl(msi.SALES_ACCOUNT,-1))=nvl(msi.SALES_ACCOUNT,-1);
841 
842 		exception
843 			when NO_DATA_FOUND then
844 				dumm_status := INVPUOPI.mtl_log_interface_err(
845 				cr.ORGID,
846                 	        user_id,
847 	                        login_id,
848 	                        prog_appid,
849 	                        prog_id,
850 	                        request_id,
851 				cr.TRANSACTION_ID,
852 				error_msg,
853 				'MASTER_CHILD_4G',
854 				'MTL_SYSTEM_ITEMS_INTERFACE',
855 				'INV_IOI_MASTER_CHILD_4G',
856 				err_text);
857                                 If dumm_status < 0 Then
858                                    raise LOGGING_ERR ;
859                                 End if ;
863 
860 				update mtl_system_items_interface msii
861 				set process_flag = 3
862 				where msii.transaction_id = cr.transaction_id;
864 		end;  /* MASTER_CHILD_4G */
865 
866 
867 		begin /* MASTER_CHILD_4H */
868 
869 			select inventory_item_id into msicount
870 			from mtl_system_items msi
871 			where msi.inventory_item_id = cr.III
872 			and   msi.organization_id = cr.MORGID
873  			and decode(A_DEFAULT_INCLUDE_IN_ROLLUP_F,X_TRUE,nvl(cr.DEFAULT_INCLUDE_IN_ROLLUP_FLAG,-1),nvl(msi.DEFAULT_INCLUDE_IN_ROLLUP_FLAG,-1))=nvl(msi.DEFAULT_INCLUDE_IN_ROLLUP_FLAG,-1)
874  			and decode(A_INVENTORY_ITEM_STATUS_CODE,X_TRUE,nvl(cr.INVENTORY_ITEM_STATUS_CODE,-1),nvl(msi.INVENTORY_ITEM_STATUS_CODE,-1))=nvl(msi.INVENTORY_ITEM_STATUS_CODE,-1)
875  			and decode(A_INVENTORY_PLANNING_CODE,X_TRUE,nvl(cr.INVENTORY_PLANNING_CODE,-1),nvl(msi.INVENTORY_PLANNING_CODE,-1))=nvl(msi.INVENTORY_PLANNING_CODE,-1)
876  			and decode(A_PLANNER_CODE,X_TRUE,nvl(cr.PLANNER_CODE,-1),nvl(msi.PLANNER_CODE,-1))=nvl(msi.PLANNER_CODE,-1)
877  			and decode(A_PLANNING_MAKE_BUY_CODE,X_TRUE,nvl(cr.PLANNING_MAKE_BUY_CODE,-1),nvl(msi.PLANNING_MAKE_BUY_CODE,-1))=nvl(msi.PLANNING_MAKE_BUY_CODE,-1)
878  			and decode(A_FIXED_LOT_MULTIPLIER,X_TRUE,nvl(cr.FIXED_LOT_MULTIPLIER,-1),nvl(msi.FIXED_LOT_MULTIPLIER,-1))=nvl(msi.FIXED_LOT_MULTIPLIER,-1)
879  			and decode(A_ROUNDING_CONTROL_TYPE,X_TRUE,nvl(cr.ROUNDING_CONTROL_TYPE,-1),nvl(msi.ROUNDING_CONTROL_TYPE,-1))=nvl(msi.ROUNDING_CONTROL_TYPE,-1)
880  			and decode(A_CARRYING_COST,X_TRUE,nvl(cr.CARRYING_COST,-1),nvl(msi.CARRYING_COST,-1))=nvl(msi.CARRYING_COST,-1);
881 
882 		exception
883 			when NO_DATA_FOUND then
884 				dumm_status := INVPUOPI.mtl_log_interface_err(
885 				cr.ORGID,
886                 	        user_id,
887 	                        login_id,
888 	                        prog_appid,
889 	                        prog_id,
890 	                        request_id,
891 				cr.TRANSACTION_ID,
892 				error_msg,
893 				'MASTER_CHILD_4H',
894 				'MTL_SYSTEM_ITEMS_INTERFACE',
895 				'INV_IOI_MASTER_CHILD_4H',
896 				err_text);
897                                 If dumm_status < 0 Then
898                                    raise LOGGING_ERR ;
899                                 End if ;
900 				update mtl_system_items_interface msii
901 				set process_flag = 3
902 				where msii.transaction_id = cr.transaction_id;
903 
904 		end;  /* MASTER_CHILD_4H */
905 
906 
907 
908 		begin /* MASTER_CHILD_4I */
909 
910 			select inventory_item_id into msicount
911 			from mtl_system_items msi
912 			where msi.inventory_item_id = cr.III
913 			and   msi.organization_id = cr.MORGID
914  			and decode(A_POSTPROCESSING_LEAD_TIME,X_TRUE,nvl(cr.POSTPROCESSING_LEAD_TIME,-1),nvl(msi.POSTPROCESSING_LEAD_TIME,-1))=nvl(msi.POSTPROCESSING_LEAD_TIME,-1)
915  			and decode(A_PREPROCESSING_LEAD_TIME,X_TRUE,nvl(cr.PREPROCESSING_LEAD_TIME,-1),nvl(msi.PREPROCESSING_LEAD_TIME,-1))=nvl(msi.PREPROCESSING_LEAD_TIME,-1)
916  			and decode(A_FULL_LEAD_TIME,X_TRUE,nvl(cr.FULL_LEAD_TIME,-1),nvl(msi.FULL_LEAD_TIME,-1))=nvl(msi.FULL_LEAD_TIME,-1)
917  			and decode(A_ORDER_COST,X_TRUE,nvl(cr.ORDER_COST,-1),nvl(msi.ORDER_COST,-1))=nvl(msi.ORDER_COST,-1)
918  			and decode(A_MRP_SAFETY_STOCK_PERCENT,X_TRUE,nvl(cr.MRP_SAFETY_STOCK_PERCENT,-1),nvl(msi.MRP_SAFETY_STOCK_PERCENT,-1))=nvl(msi.MRP_SAFETY_STOCK_PERCENT,-1)
919  			and decode(A_MRP_SAFETY_STOCK_CODE,X_TRUE,nvl(cr.MRP_SAFETY_STOCK_CODE,-1),nvl(msi.MRP_SAFETY_STOCK_CODE,-1))=nvl(msi.MRP_SAFETY_STOCK_CODE,-1)
920  			and decode(A_MIN_MINMAX_QUANTITY,X_TRUE,nvl(cr.MIN_MINMAX_QUANTITY,-1),nvl(msi.MIN_MINMAX_QUANTITY,-1))=nvl(msi.MIN_MINMAX_QUANTITY,-1);
921 
922 		exception
923 			when NO_DATA_FOUND then
924 				dumm_status := INVPUOPI.mtl_log_interface_err(
925 				cr.ORGID,
926                 	        user_id,
927 	                        login_id,
928 	                        prog_appid,
929 	                        prog_id,
930 	                        request_id,
931 				cr.TRANSACTION_ID,
932 				error_msg,
933 				'MASTER_CHILD_4I',
934 				'MTL_SYSTEM_ITEMS_INTERFACE',
935 				'INV_IOI_MASTER_CHILD_4I',
936 				err_text);
937                                 If dumm_status < 0 Then
938                                    raise LOGGING_ERR ;
939                                 End if ;
940 				update mtl_system_items_interface msii
941 				set process_flag = 3
942 				where msii.transaction_id = cr.transaction_id;
943 
944 		end;  /* MASTER_CHILD_4I */
945 
946 		begin /* MASTER_CHILD_4J */
947 
948 			select inventory_item_id into msicount
949 			from mtl_system_items msi
950 			where msi.inventory_item_id = cr.III
951 			and   msi.organization_id = cr.MORGID
952  			and decode(A_MAX_MINMAX_QUANTITY,X_TRUE,nvl(cr.MAX_MINMAX_QUANTITY,-1),nvl(msi.MAX_MINMAX_QUANTITY,-1))=nvl(msi.MAX_MINMAX_QUANTITY,-1)
953  			and decode(A_MINIMUM_ORDER_QUANTITY,X_TRUE,nvl(cr.MINIMUM_ORDER_QUANTITY,-1),nvl(msi.MINIMUM_ORDER_QUANTITY,-1))=nvl(msi.MINIMUM_ORDER_QUANTITY,-1)
954  			and decode(A_FIXED_ORDER_QUANTITY,X_TRUE,nvl(cr.FIXED_ORDER_QUANTITY,-1),nvl(msi.FIXED_ORDER_QUANTITY,-1))=nvl(msi.FIXED_ORDER_QUANTITY,-1)
955  			and decode(A_FIXED_DAYS_SUPPLY,X_TRUE,nvl(cr.FIXED_DAYS_SUPPLY,-1),nvl(msi.FIXED_DAYS_SUPPLY,-1))=nvl(msi.FIXED_DAYS_SUPPLY,-1)
956  			and decode(A_MAXIMUM_ORDER_QUANTITY,X_TRUE,nvl(cr.MAXIMUM_ORDER_QUANTITY,-1),nvl(msi.MAXIMUM_ORDER_QUANTITY,-1))=nvl(msi.MAXIMUM_ORDER_QUANTITY,-1)
957  			and decode(A_ATP_RULE_ID,X_TRUE,nvl(cr.ATP_RULE_ID,-1),nvl(msi.ATP_RULE_ID,-1))=nvl(msi.ATP_RULE_ID,-1)
961 			when NO_DATA_FOUND then
958  			and decode(A_PICKING_RULE_ID,X_TRUE,nvl(cr.PICKING_RULE_ID,-1),nvl(msi.PICKING_RULE_ID,-1))=nvl(msi.PICKING_RULE_ID,-1);
959 
960 		exception
962 				dumm_status := INVPUOPI.mtl_log_interface_err(
963 				cr.ORGID,
964                 	        user_id,
965 	                        login_id,
966 	                        prog_appid,
967 	                        prog_id,
968 	                        request_id,
969 				cr.TRANSACTION_ID,
970 				error_msg,
971 				'MASTER_CHILD_4J',
972 				'MTL_SYSTEM_ITEMS_INTERFACE',
973 				'INV_IOI_MASTER_CHILD_4J',
974 				err_text);
975                                 If dumm_status < 0 Then
976                                    raise LOGGING_ERR ;
977                                 End if ;
978 				update mtl_system_items_interface msii
979 				set process_flag = 3
980 				where msii.transaction_id = cr.transaction_id;
981 
982 		end;  /* MASTER_CHILD_4J */
983 
984 
985 
986 		begin /* MASTER_CHILD_4K */
987 
988 			select inventory_item_id into msicount
989 			from mtl_system_items msi
990 			where msi.inventory_item_id = cr.III
991 			and   msi.organization_id = cr.MORGID
992  			and decode(A_RESERVABLE_TYPE,X_TRUE,nvl(cr.RESERVABLE_TYPE,-1),nvl(msi.RESERVABLE_TYPE,-1))=nvl(msi.RESERVABLE_TYPE,-1)
993  			and decode(A_POSITIVE_MEASUREMENT_ERROR,X_TRUE,nvl(cr.POSITIVE_MEASUREMENT_ERROR,-1),nvl(msi.POSITIVE_MEASUREMENT_ERROR,-1))=nvl(msi.POSITIVE_MEASUREMENT_ERROR,-1)
994  			and decode(A_OUTSIDE_OPERATION_FLAG,X_TRUE,nvl(cr.OUTSIDE_OPERATION_FLAG,-1),nvl(msi.OUTSIDE_OPERATION_FLAG,-1))=nvl(msi.OUTSIDE_OPERATION_FLAG,-1)
995  			and decode(A_OUTSIDE_OPERATION_UOM_TYPE,X_TRUE,nvl(cr.OUTSIDE_OPERATION_UOM_TYPE,-1),nvl(msi.OUTSIDE_OPERATION_UOM_TYPE,-1))=nvl(msi.OUTSIDE_OPERATION_UOM_TYPE,-1)
996  			and decode(A_SAFETY_STOCK_BUCKET_DAYS,X_TRUE,nvl(cr.SAFETY_STOCK_BUCKET_DAYS,-1),nvl(msi.SAFETY_STOCK_BUCKET_DAYS,-1))=nvl(msi.SAFETY_STOCK_BUCKET_DAYS,-1)
997  			and decode(A_AUTO_REDUCE_MPS,X_TRUE,nvl(cr.AUTO_REDUCE_MPS,-1),nvl(msi.AUTO_REDUCE_MPS,-1))=nvl(msi.AUTO_REDUCE_MPS,-1)
998  			and decode(A_COSTING_ENABLED_FLAG,X_TRUE,nvl(cr.COSTING_ENABLED_FLAG,-1),nvl(msi.COSTING_ENABLED_FLAG,-1))=nvl(msi.COSTING_ENABLED_FLAG,-1);
999 
1000 
1001 		exception
1002 			when NO_DATA_FOUND then
1003 				dumm_status := INVPUOPI.mtl_log_interface_err(
1004 				cr.ORGID,
1005                 	        user_id,
1006 	                        login_id,
1007 	                        prog_appid,
1008 	                        prog_id,
1009 	                        request_id,
1010 				cr.TRANSACTION_ID,
1011 				error_msg,
1012 				'MASTER_CHILD_4K',
1013 				'MTL_SYSTEM_ITEMS_INTERFACE',
1014 				'INV_IOI_MASTER_CHILD_4K',
1015 				err_text);
1016                                 If dumm_status < 0 Then
1017                                    raise LOGGING_ERR ;
1018                                 End if ;
1019 				update mtl_system_items_interface msii
1020 				set process_flag = 3
1021 				where msii.transaction_id = cr.transaction_id;
1022 
1023 		end;  /* MASTER_CHILD_4K */
1024 
1025 		begin /* MASTER_CHILD_4L */
1026 
1027 			select inventory_item_id into msicount
1028 			from mtl_system_items msi
1029 			where msi.inventory_item_id = cr.III
1030 			and   msi.organization_id = cr.MORGID
1031  			and decode(A_AUTO_CREATED_CONFIG_FLAG,X_TRUE,nvl(cr.AUTO_CREATED_CONFIG_FLAG,-1),nvl(msi.AUTO_CREATED_CONFIG_FLAG,-1))=nvl(msi.AUTO_CREATED_CONFIG_FLAG,-1)
1032  			and decode(A_CYCLE_COUNT_ENABLED_FLAG,X_TRUE,nvl(cr.CYCLE_COUNT_ENABLED_FLAG,-1),nvl(msi.CYCLE_COUNT_ENABLED_FLAG,-1))=nvl(msi.CYCLE_COUNT_ENABLED_FLAG,-1)
1033  			and decode(A_ITEM_TYPE,X_TRUE,nvl(cr.ITEM_TYPE,-1),nvl(msi.ITEM_TYPE,-1))=nvl(msi.ITEM_TYPE,-1)
1034  			and decode(A_MODEL_CONFIG_CLAUSE_NAME,X_TRUE,nvl(cr.MODEL_CONFIG_CLAUSE_NAME,-1),nvl(msi.MODEL_CONFIG_CLAUSE_NAME,-1))=nvl(msi.MODEL_CONFIG_CLAUSE_NAME,-1)
1038  			and decode(A_ATO_FORECAST_CONTROL,X_TRUE,nvl(cr.ATO_FORECAST_CONTROL,-1),nvl(msi.ATO_FORECAST_CONTROL,-1))=nvl(msi.ATO_FORECAST_CONTROL,-1);
1035  			and decode(A_SHIP_MODEL_COMPLETE_FLAG,X_TRUE,nvl(cr.SHIP_MODEL_COMPLETE_FLAG,-1),nvl(msi.SHIP_MODEL_COMPLETE_FLAG,-1))=nvl(msi.SHIP_MODEL_COMPLETE_FLAG,-1)
1036  			and decode(A_MRP_PLANNING_CODE,X_TRUE,nvl(cr.MRP_PLANNING_CODE,-1),nvl(msi.MRP_PLANNING_CODE,-1))=nvl(msi.MRP_PLANNING_CODE,-1)
1037  			and decode(A_RETURN_INSPECTION_REQUIRE,X_TRUE,nvl(cr.RETURN_INSPECTION_REQUIREMENT,-1),nvl(msi.RETURN_INSPECTION_REQUIREMENT,-1))=nvl(msi.RETURN_INSPECTION_REQUIREMENT,-1)
1039 
1040 		exception
1041 			when NO_DATA_FOUND then
1042 				dumm_status := INVPUOPI.mtl_log_interface_err(
1043 				cr.ORGID,
1044                 	        user_id,
1045 	                        login_id,
1046 	                        prog_appid,
1047 	                        prog_id,
1048 	                        request_id,
1049 				cr.TRANSACTION_ID,
1050 				error_msg,
1051 				'MASTER_CHILD_4L',
1052 				'MTL_SYSTEM_ITEMS_INTERFACE',
1053 				'INV_IOI_MASTER_CHILD_4L',
1054 				err_text);
1055                                 If dumm_status < 0 Then
1056                                    raise LOGGING_ERR ;
1057                                 End if ;
1058 				update mtl_system_items_interface msii
1059 				set process_flag = 3
1060 				where msii.transaction_id = cr.transaction_id;
1061 
1062 		end;  /* MASTER_CHILD_4L */
1063 		begin /* MASTER_CHILD_4M Added as part of 11.5.9*/
1064 
1065 			select inventory_item_id into msicount
1066 			from mtl_system_items msi
1067 			where msi.inventory_item_id = cr.III
1068 			and   msi.organization_id = cr.MORGID
1069  			and decode(A_LOT_SUBSTITUTION_ENABLED,X_TRUE,nvl(cr.LOT_SUBSTITUTION_ENABLED,-1),nvl(msi.LOT_SUBSTITUTION_ENABLED,-1))=nvl(msi.LOT_SUBSTITUTION_ENABLED,-1)
1070  			and decode(A_MINIMUM_LICENSE_QUANTITY,X_TRUE,nvl(cr.MINIMUM_LICENSE_QUANTITY,-1),nvl(msi.MINIMUM_LICENSE_QUANTITY,-1))=nvl(msi.MINIMUM_LICENSE_QUANTITY,-1)
1071  			and decode(A_EAM_ACTIVITY_SOURCE_CODE,X_TRUE,nvl(cr.EAM_ACTIVITY_SOURCE_CODE,-1),nvl(msi.EAM_ACTIVITY_SOURCE_CODE,-1))=nvl(msi.EAM_ACTIVITY_SOURCE_CODE,-1)
1072  			and decode(A_IB_ITEM_INSTANCE_CLASS,X_TRUE,nvl(cr.IB_ITEM_INSTANCE_CLASS,-1),nvl(msi.IB_ITEM_INSTANCE_CLASS,-1))=nvl(msi.IB_ITEM_INSTANCE_CLASS,-1)
1073  			and decode(A_CONFIG_MODEL_TYPE,X_TRUE,nvl(cr.CONFIG_MODEL_TYPE,-1),nvl(msi.CONFIG_MODEL_TYPE,-1))=nvl(msi.CONFIG_MODEL_TYPE,-1);
1074 	        exception
1075 			when NO_DATA_FOUND then
1076 				dumm_status := INVPUOPI.mtl_log_interface_err(
1077 				cr.ORGID,
1078                 	        user_id,
1079 	                        login_id,
1080 	                        prog_appid,
1081 	                        prog_id,
1082 	                        request_id,
1083 				cr.TRANSACTION_ID,
1084 				error_msg,
1085 				'MASTER_CHILD_4M',
1086 				'MTL_SYSTEM_ITEMS_INTERFACE',
1087 				'INV_IOI_MASTER_CHILD_4M',
1088 				err_text);
1089                                 If dumm_status < 0 Then
1090                                    raise LOGGING_ERR ;
1091                                 End if ;
1092 				update mtl_system_items_interface msii
1093 				set process_flag = 3
1094 				where msii.transaction_id = cr.transaction_id;
1095 
1096 		end;  /* MASTER_CHILD_4M */
1097 				begin /* MASTER_CHILD_4N Added as part of R12*/
1098 
1099 			select inventory_item_id into msicount
1100 			from mtl_system_items msi
1101 			where msi.inventory_item_id = cr.III
1102 			and   msi.organization_id = cr.MORGID
1103  			and decode(A_OUTSOURCED_ASSEMBLY,X_TRUE,nvl(cr.OUTSOURCED_ASSEMBLY,-1),nvl(msi.OUTSOURCED_ASSEMBLY,-1))=nvl(msi.OUTSOURCED_ASSEMBLY,-1)
1104  			and decode(A_SUBCONTRACTING_COMPONENT,X_TRUE,nvl(cr.SUBCONTRACTING_COMPONENT,-1),nvl(msi.SUBCONTRACTING_COMPONENT,-1))=nvl(msi.SUBCONTRACTING_COMPONENT,-1)
1105  			and decode(A_CHARGE_PERIODICITY_CODE,X_TRUE,nvl(cr.CHARGE_PERIODICITY_CODE,-1),nvl(msi.CHARGE_PERIODICITY_CODE,-1))=nvl(msi.CHARGE_PERIODICITY_CODE,-1);
1106 	        exception
1107 			when NO_DATA_FOUND then
1108 				dumm_status := INVPUOPI.mtl_log_interface_err(
1109 				cr.ORGID,
1110                 	        user_id,
1111 	                        login_id,
1112 	                        prog_appid,
1113 	                        prog_id,
1114 	                        request_id,
1115 				cr.TRANSACTION_ID,
1116 				error_msg,
1117 				'MASTER_CHILD_4M',
1118 				'MTL_SYSTEM_ITEMS_INTERFACE',
1119 				'INV_IOI_MASTER_CHILD_4N',
1120 				err_text);
1121                                 If dumm_status < 0 Then
1122                                    raise LOGGING_ERR ;
1123                                 End if ;
1124 				update mtl_system_items_interface msii
1125 				set process_flag = 3
1126 				where msii.transaction_id = cr.transaction_id;
1127 
1128 		end;  /* MASTER_CHILD_4N */
1129 		begin /* MASTER_CHILD_4O Added as part of R12*/
1130 
1131 			select inventory_item_id into msicount
1132 			from mtl_system_items msi
1133 			where msi.inventory_item_id = cr.III
1134 			and   msi.organization_id = cr.MORGID
1135  			and decode(A_REPAIR_LEADTIME,X_TRUE,nvl(cr.REPAIR_LEADTIME,-1),nvl(msi.REPAIR_LEADTIME,-1))=nvl(msi.REPAIR_LEADTIME,-1)
1136  			and decode(A_REPAIR_PROGRAM,X_TRUE,nvl(cr.REPAIR_PROGRAM,-1),nvl(msi.REPAIR_PROGRAM,-1))=nvl(msi.REPAIR_PROGRAM,-1)
1137  			and decode(A_REPAIR_YIELD,X_TRUE,nvl(cr.REPAIR_YIELD,-1),nvl(msi.REPAIR_YIELD,-1))=nvl(msi.REPAIR_YIELD,-1)
1138 			and decode(A_PREPOSITION_POINT,X_TRUE,nvl(cr.PREPOSITION_POINT,-1),nvl(msi.PREPOSITION_POINT,-1))=nvl(msi.PREPOSITION_POINT,-1);
1139 	        exception
1140 			when NO_DATA_FOUND then
1141 				dumm_status := INVPUOPI.mtl_log_interface_err(
1142 				cr.ORGID,
1143                 	        user_id,
1144 	                        login_id,
1145 	                        prog_appid,
1146 	                        prog_id,
1147 	                        request_id,
1148 				cr.TRANSACTION_ID,
1149 				error_msg,
1150 				'MASTER_CHILD_4M',
1151 				'MTL_SYSTEM_ITEMS_INTERFACE',
1152 				'INV_IOI_MASTER_CHILD_4O',
1153 				err_text);
1154                                 If dumm_status < 0 Then
1155                                    raise LOGGING_ERR ;
1156                                 End if ;
1157 				update mtl_system_items_interface msii
1158 				set process_flag = 3
1159 				where msii.transaction_id = cr.transaction_id;
1160 
1161 		end;  /* MASTER_CHILD_40 */
1162 
1163 	end loop;
1164 
1165 	return(0);
1166 
1167 exception
1168 
1169 	when LOGGING_ERR then
1170 		return(dumm_status);
1171 
1172 	when VALIDATE_ERR then
1173 		dumm_status := INVPUOPI.mtl_log_interface_err(
1174                                 l_org_id,
1175                                 user_id,
1176                                 login_id,
1177                                 prog_appid,
1178                                 prog_id,
1179                                 request_id,
1183 				'MTL_SYSTEM_ITEMS_INTERFACE',
1180                                 trans_id,
1181                                 err_text,
1182                                 'MASTER_CHILD_4',
1184                                 'BOM_OP_VALIDATION_ERR',
1185                                 err_text);
1186 
1187 		return(status);
1188 
1189 	when OTHERS then
1190 
1191 		err_text := substr('INVPVALI.validate_item_org4' || SQLERRM , 1, 240);
1192 		return(SQLCODE);
1193 
1194 END validate_item_org4;
1195 
1196 
1197 END INVPVLM2;