[Home] [Help]
PACKAGE BODY: APPS.MSC_CL_PULL
Source
1 PACKAGE BODY MSC_CL_PULL AS -- body
2 /* $Header: MSCCLFAB.pls 120.62.12020000.3 2013/01/24 02:35:24 beitang ship $ */
3
4
5
6 -- Misc --
7 v_sql_stmt VARCHAR2(32767);
8
9 -- included for the fix 2351297 --
10 v_req_data varchar2(10);
11
12 v_item_type_id NUMBER := MSC_UTIL.G_PARTCONDN_ITEMTYPEID;
13 v_item_type_good NUMBER := MSC_UTIL.G_PARTCONDN_GOOD;
14 v_item_type_bad NUMBER := MSC_UTIL.G_PARTCONDN_BAD;
15
16 v_cp_enabled NUMBER;
17
18
19 v_msc_tp_coll_window NUMBER := MSC_UTIL.v_msc_tp_coll_window;
20
21 v_gmp_routine_name VARCHAR2(50);
22 GMP_ERROR EXCEPTION;
23
24 NULL_DBLINK CONSTANT VARCHAR2(1):= ' ';
25
26 TSK_RM_ASSIGNMENT_SETS NUMBER := 1;
27 TSK_RM_ATP_RULES NUMBER := 1;
28 TSK_RM_BILL_OF_RESOURCES NUMBER := 1;
29 TSK_RM_BIS_PERIODS NUMBER := 1;
30 TSK_RM_BIS_BUSINESS_PLANS NUMBER := 1;
31 TSK_RM_BIS_PFMC_MEASURES NUMBER := 1;
32 TSK_RM_BIS_TARGET_LEVELS NUMBER := 1;
33 TSK_RM_BIS_TARGETS NUMBER := 1;
34 TSK_RM_BOM_COMPONENTS NUMBER := 1;
35 TSK_RM_BOMS NUMBER := 1;
36 TSK_RM_BOR_REQUIREMENTS NUMBER := 1;
37 TSK_RM_CAL_WEEK_START_DATES NUMBER := 1;
38 TSK_RM_CAL_YEAR_START_DATES NUMBER := 1;
39 TSK_RM_CALENDAR_DATES NUMBER := 1;
40 TSK_RM_CALENDAR_SHIFTS NUMBER := 1;
41 TSK_RM_CALENDAR_ASSIGNMENTS NUMBER := 1;
42 TSK_RM_CATEGORY_SETS NUMBER := 1;
43 TSK_RM_CARRIER_SERVICES NUMBER := 1;
44 TSK_RM_COMPONENT_SUBSTITUTES NUMBER := 1;
45 TSK_RM_DEMAND_CLASSES NUMBER := 1;
46 TSK_RM_DEMANDS NUMBER := 3;
47 TSK_RM_DEPARTMENT_RESOURCES NUMBER := 1;
48 TSK_RM_DESIGNATORS NUMBER := 1;
49 TSK_RM_INTERORG_SHIP_METHODS NUMBER := 1;
50 TSK_RM_ITEM_CATEGORIES NUMBER := 1;
51 TSK_RM_ITEM_SUBSTITUTES NUMBER := 1;
52 TSK_RM_ITEM_SUPPLIERS NUMBER := 1;
53 TSK_RM_LOCATION_ASSOCIATIONS NUMBER := 1;
54 TSK_RM_SOURCING_RULES NUMBER := 1;
55 TSK_RM_OPERATION_COMPONENTS NUMBER := 1;
56 TSK_RM_OPERATION_RESOURCE_SEQS NUMBER := 1;
57 TSK_RM_OPERATION_RESOURCES NUMBER := 1;
58 TSK_RM_PARAMETERS NUMBER := 1;
59 TSK_RM_PARTNER_CONTACTS NUMBER := 2;
60 TSK_RM_PERIOD_START_DATES NUMBER := 1;
61 TSK_RM_PLANNERS NUMBER := 1;
62 TSK_RM_PROCESS_EFFECTIVITY NUMBER := 1;
63 TSK_RM_PROJECT_TASKS NUMBER := 1;
64 TSK_RM_PROJECTS NUMBER := 1;
65 TSK_RM_REGIONS NUMBER := 1;
66 TSK_RM_REGION_SITES NUMBER := 1;
67 TSK_RM_RESERVATIONS NUMBER := 1;
68 TSK_RM_RESOURCE_CHANGES NUMBER := 1;
69 TSK_RM_RESOURCE_GROUPS NUMBER := 1;
70 TSK_RM_RESOURCE_REQUIREMENTS NUMBER := 1;
71 TSK_RM_RESOURCE_SHIFTS NUMBER := 1;
72 TSK_RM_ROUTING_OPERATIONS NUMBER := 1;
73 TSK_RM_ROUTINGS NUMBER := 1;
74 TSK_RM_SAFETY_STOCKS NUMBER := 1;
75 TSK_RM_SALES_ORDERS NUMBER := 1;
76 TSK_RM_JOB_OP_NETWORKS NUMBER := 1;
77 TSK_RM_JOB_OPERATIONS NUMBER := 1;
78 TSK_RM_JOB_REQUIREMENT_OPS NUMBER := 1;
79 TSK_RM_JOB_OP_RESOURCES NUMBER := 1;
80 TSK_RM_SHIFT_DATES NUMBER := 1;
81 TSK_RM_SHIFT_EXCEPTIONS NUMBER := 1;
82 TSK_RM_SHIFT_TIMES NUMBER := 1;
83 TSK_RM_SIMULATION_SETS NUMBER := 1;
84 TSK_RM_SR_ASSIGNMENTS NUMBER := 1;
85 TSK_RM_SR_RECEIPT_ORG NUMBER := 1;
86 TSK_RM_SR_SOURCE_ORG NUMBER := 1;
87 TSK_RM_SUB_INVENTORIES NUMBER := 1;
88 TSK_RM_SUPPLIER_CAPACITIES NUMBER := 1;
89 TSK_RM_SUPPLIER_FLEX_FENCES NUMBER := 1;
90 TSK_RM_SUPPLIES NUMBER := 7; -- 5 changed to 7 .
91 TSK_RM_SYSTEM_ITEMS NUMBER := 3;
92 TSK_RM_TRADING_PARTNER_SITES NUMBER := 1;
93 TSK_RM_TRADING_PARTNERS NUMBER := 1;
94 TSK_RM_TRIPS NUMBER := 1;
95 TSK_RM_TRIP_STOPS NUMBER := 1;
96 TSK_RM_UNIT_NUMBERS NUMBER := 1;
97 TSK_RM_UNITS_OF_MEASURE NUMBER := 1;
98 TSK_RM_UOM_CLASS_CONVERSIONS NUMBER := 1;
99 TSK_RM_UOM_CONVERSIONS NUMBER := 1;
100 TSK_RM_ZONE_REGIONS NUMBER := 1;
101 /* ds change start */
102 TSK_RM_RESOURCE_SETUP NUMBER := 1;
103 TSK_RM_RESOURCE_INSTANCE NUMBER := 1;
104 /* ds change end */
105 TSK_RM_ABC_CLASSES NUMBER := 1;
106 TSK_RM_SALES_CHANNEL NUMBER := 1;
107 TSK_RM_FISCAL_CALENDAR NUMBER := 1;
108 TSK_RM_INTERNAL_REPAIR NUMBER := 1;
109 TSK_RM_EXTERNAL_REPAIR NUMBER := 1;
110 TSK_RM_PAYBACK_DEMAND_SUPPLY NUMBER := 1;
111 TSK_RM_CURRENCY_CONVERSION NUMBER := 1;
112 TSK_RM_DELIVERY_DETAILS NUMBER := 1;
113 TSK_RM_IBUC_HISTORY NUMBER :=1;
114 TSK_RM_SHORT_TEXT NUMBER :=1;
115 TSK_RM_LONG_TEXT NUMBER :=1;
116
117 /*procedure to return the org string of Depot org */ -- needs to be changed
118 PROCEDURE GET_DEPOT_ORG_STRINGS(p_instance_id IN NUMBER)
119 IS
120 lv_in_org_str VARCHAR2(32767):=NULL;
121 lv_depot_org_str VARCHAR2(32767);
122 lv_non_depot_org_str VARCHAR2(32767); -- For Bug 590379 SRP Changes
123 lv_ext_repair_org_str VARCHAR2(32767);
124 lv_ext_repair_sup_id_str VARCHAR2(32767);
125 lv_sql_stmt VARCHAR2(32767);
126 lv_org_type NUMBER;
127 lv_org_id NUMBER;
128 lv_count NUMBER;
129 lv_sup_id NUMBER;
130 type cur_type is ref cursor;
131 cur cur_type;
132 BEGIN
133 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS,'GET_DEPOT_ORG_STR value of v_instance_id: '||to_char(p_instance_id));
134 lv_in_org_str := GET_ORG_STR (p_instance_id,2);
135
136 lv_sql_stmt := ' Select organization_id, nvl(organization_type,1) '
137 ||' From msc_instance_orgs mio '
138 ||' Where sr_instance_id = '||p_instance_id|| ' and organization_id '||lv_in_org_str
139 ;
140
141 lv_count:= 0;
142 lv_non_depot_org_str := NULL;
143 lv_depot_org_str := NULL;
144 lv_ext_repair_org_str := NULL;
145 lv_ext_repair_sup_id_str := NULL;
146 --On error, org_str will be populated with -9998
147 MSC_UTIL.v_depot_org_str := '= -9998';
148 MSC_UTIL.v_non_depot_org_str := '= -9998';
149
150 --lv_depot_org_str :=' IN (';
151 --lv_non_depot_org_str :=' IN (';
152 --MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS,'Opening Cursor ');
153 open cur for lv_sql_stmt;
154 --FOR Cur IN lv_sql_stmt
155 LOOP
156 fetch cur into lv_org_id,lv_org_type;
157 exit when cur%notfound;
158
159
160 IF lv_org_type = 3 THEN
161 IF lv_depot_org_str is NULL THEN
162 lv_depot_org_str:=' IN ('|| lv_org_id;
163 ELSE
164 lv_depot_org_str := lv_depot_org_str||','||lv_org_id;
165 END IF;
166 MSC_UTIL.LOG_MSG(MSC_UTIL.G_D_DEBUG_1,'lv_org_id : '||lv_org_id);
167 MSC_UTIL.LOG_MSG(MSC_UTIL.G_D_DEBUG_1,'lv_depot_org_str : '||lv_depot_org_str);
168 ELSE
169 IF lv_non_depot_org_str is NULL THEN
170 lv_non_depot_org_str:=' IN ('|| lv_org_id;
171 ELSE
172 lv_non_depot_org_str := lv_non_depot_org_str||','||lv_org_id;
173 END IF;
174
175 IF lv_org_type = 4 THEN
176 IF lv_ext_repair_org_str is NULL THEN
177 lv_ext_repair_org_str:=' IN ('|| lv_org_id;
178 ELSE
179 lv_ext_repair_org_str := lv_ext_repair_org_str||','||lv_org_id;
180 END IF;
181 MSC_UTIL.LOG_MSG(MSC_UTIL.G_D_DEBUG_1,'lv_org_id : '||lv_org_id);
182 MSC_UTIL.LOG_MSG(MSC_UTIL.G_D_DEBUG_1,'lv_ext_repair_org_str : '||lv_ext_repair_org_str);
183 END IF;
184 END IF;
185 Lv_count:= lv_count+1;
186
187 END LOOP;
188 Close cur;
189
190
191 IF lv_depot_org_str <>'NULL' THEN
192 lv_depot_org_str:= lv_depot_org_str|| ')' ; -- Needs to be changed
193 ELSE
194 lv_depot_org_str:= '= -9999';
195 END IF;
196
197 IF lv_non_depot_org_str<>'NULL' THEN
198 lv_non_depot_org_str:= lv_non_depot_org_str||')' ; -- Needs to be changed
199 ELSE
200 lv_non_depot_org_str:= '= -9999';
201 END IF;
202
203 IF lv_ext_repair_org_str <>'NULL' THEN
204 lv_ext_repair_org_str:= lv_ext_repair_org_str|| ')' ; -- Needs to be changed
205 lv_sql_stmt := 'select mtil.sr_tp_id '
206 || ' from msc_trading_partners mtp, msc_tp_id_lid mtil '
207 || ' where mtp.modeled_supplier_id is not null and '
208 || ' mtp.sr_tp_id '|| lv_ext_repair_org_str || ' and '
209 || ' mtil.tp_id=mtp.modeled_supplier_id and '
210 || ' mtp.sr_instance_id = ' || p_instance_id || ' and '
211 || ' mtp.sr_instance_id = mtil.sr_instance_id and '
212 || ' mtil.partner_type = 1 and '
213 || ' mtp.partner_type = 3';
214 open cur for lv_sql_stmt;
215 LOOP
216 fetch cur into lv_sup_id;
217 exit when cur%notfound;
218
219 IF lv_ext_repair_sup_id_str is NULL THEN
220 lv_ext_repair_sup_id_str:=' IN ('|| lv_sup_id;
221 ELSE
222 lv_ext_repair_sup_id_str := lv_ext_repair_sup_id_str||','||lv_sup_id;
223 END IF;
224 MSC_UTIL.LOG_MSG(MSC_UTIL.G_D_DEBUG_1,'lv_org_id : '||lv_sup_id);
225 MSC_UTIL.LOG_MSG(MSC_UTIL.G_D_DEBUG_1,'lv_ext_repair_sup_id_str : '||lv_ext_repair_sup_id_str);
226
227 END LOOP;
228 Close cur;
229 ELSE
230 lv_ext_repair_org_str:= '= -9999';
231 END IF;
232
233 IF lv_ext_repair_sup_id_str<>'NULL' THEN
234 lv_ext_repair_sup_id_str:= lv_ext_repair_sup_id_str||')' ; -- Needs to be changed
235 ELSE
236 lv_ext_repair_sup_id_str:= '= -9999';
237 END IF;
238
239 MSC_UTIL.v_depot_org_str := lv_depot_org_str;
240 MSC_UTIL.v_non_depot_org_str := lv_non_depot_org_str;
241 MSC_UTIL.v_ext_repair_sup_id_str := lv_ext_repair_sup_id_str;
242
243 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS,'GET_DEPO_ORG_STR returned :'||MSC_UTIL.v_depot_org_str);
244 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS,'G_NON_DEPOT ORG STRING RETURNED :'||MSC_UTIL.v_non_depot_org_str);
245
246 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS,'ext_repair_org_str returned :'||lv_ext_repair_org_str);
247 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS,'ext_repair_sup_id_str RETURNED :'||MSC_UTIL.v_ext_repair_sup_id_str);
248
249
250 EXCEPTION
251 WHEN OTHERS THEN
252 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_FATAL_ERR,' Error: In GET_DEPOT_ORG_STR ');
253
254 END GET_DEPOT_ORG_STRINGS; -- For Bug 5909379 SRP Changes
255
256
257 FUNCTION collection_type ( p_entity_enabled IN NUMBER,
258 p_refresh_code IN NUMBER)
259 RETURN VARCHAR2 IS
260 BEGIN
261
262 IF (p_entity_enabled =1 or p_entity_enabled =3 ) THEN
263 IF (p_refresh_code = 2) THEN
264 RETURN 'No Collection';
265 ELSIF (p_refresh_code = 3) THEN
266 RETURN 'Incremental Collection';
267 ELSIF (p_refresh_code = 4) OR (p_refresh_code = 1) THEN
268 RETURN 'Targeted Collection';
269 END IF;
270 ELSE
271 RETURN 'No Collection';
272 END IF;
273
274 RETURN to_char(p_refresh_code);
275
276 EXCEPTION
277 WHEN OTHERS THEN
278 RETURN to_char(p_refresh_code);
279 END collection_type;
280
281 FUNCTION is_monitor_status_running RETURN NUMBER
282 IS
283 l_call_status boolean;
284 l_phase varchar2(80);
285 l_status varchar2(80);
286 l_dev_phase varchar2(80);
287 l_dev_status varchar2(80);
288 l_message varchar2(1024);
289
290 BEGIN
291
292 IF v_cp_enabled= MSC_UTIL.SYS_NO THEN
293 RETURN MSC_UTIL.SYS_YES;
294 END IF;
295
296 l_call_status:= FND_CONCURRENT.GET_REQUEST_STATUS
297 ( v_monitor_request_id,
298 NULL,
299 NULL,
300 l_phase,
301 l_status,
302 l_dev_phase,
303 l_dev_status,
304 l_message);
305
306 IF l_call_status=FALSE THEN
307 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_FATAL_ERR, 'IS_MONITOR_STATUS_RUNNING');
308
309 FND_MESSAGE.SET_NAME('MSC', 'MSC_FUNC_MON_RUNNING');
310 FND_MESSAGE.SET_TOKEN('REQUEST_ID',v_monitor_request_id);
311 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_FATAL_ERR, FND_MESSAGE.GET);
312
313 FND_MESSAGE.SET_NAME('MSC', 'MSC_CL_CONC_MESSAGE');
314 FND_MESSAGE.SET_TOKEN('MESSAGE',l_message);
315 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_FATAL_ERR, FND_MESSAGE.GET);
316
317 RETURN MSC_UTIL.SYS_NO;
318 END IF;
319
320 IF l_dev_phase='RUNNING' THEN
321 RETURN MSC_UTIL.SYS_YES;
322 ELSE
323 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_FATAL_ERR, 'IS_MONITOR_STATUS_RUNNING');
324
325 FND_MESSAGE.SET_NAME('MSC', 'MSC_FUNC_MON_RUN');
326 FND_MESSAGE.SET_TOKEN('REQUEST_ID', v_monitor_request_id);
327 FND_MESSAGE.SET_TOKEN('PHASE',l_dev_phase);
328 FND_MESSAGE.SET_TOKEN('STATUS',l_dev_status);
329 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_FATAL_ERR, FND_MESSAGE.GET);
330
331 FND_MESSAGE.SET_NAME('MSC', 'MSC_CL_CONC_MESSAGE');
332 FND_MESSAGE.SET_TOKEN('MESSAGE',l_message);
333 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_FATAL_ERR, FND_MESSAGE.GET);
334
335 RETURN MSC_UTIL.SYS_NO;
336 END IF;
337
338 END is_monitor_status_running;
339
340 FUNCTION is_request_status_running RETURN NUMBER
341 IS
342 l_call_status boolean;
343 l_phase varchar2(80);
344 l_status varchar2(80);
345 l_dev_phase varchar2(80);
346 l_dev_status varchar2(80);
347 l_message varchar2(1024);
348
349 l_request_id NUMBER;
350
351 BEGIN
352
353 IF v_cp_enabled= MSC_UTIL.SYS_NO THEN
354 RETURN MSC_UTIL.SYS_YES;
355 END IF;
356
357 l_request_id := FND_GLOBAL.CONC_REQUEST_ID;
358
359 l_call_status:= FND_CONCURRENT.GET_REQUEST_STATUS
360 ( l_request_id,
361 NULL,
362 NULL,
363 l_phase,
364 l_status,
365 l_dev_phase,
366 l_dev_status,
367 l_message);
368
369 IF l_call_status=FALSE THEN
370 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_FATAL_ERR, 'IS_REQUEST_STATUS_RUNNING');
371
372 FND_MESSAGE.SET_NAME('MSC', 'MSC_FUNC_MON_RUNNING');
373 FND_MESSAGE.SET_TOKEN('REQUEST_ID',l_request_id);
374 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_FATAL_ERR, FND_MESSAGE.GET);
375
376 FND_MESSAGE.SET_NAME('MSC', 'MSC_CL_CONC_MESSAGE');
377 FND_MESSAGE.SET_TOKEN('MESSAGE',l_message);
378 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_FATAL_ERR, FND_MESSAGE.GET);
379
380 RETURN MSC_UTIL.SYS_NO;
381 END IF;
382
383 IF l_dev_phase='RUNNING' THEN
384 RETURN MSC_UTIL.SYS_YES;
385 ELSE
386 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_FATAL_ERR, 'IS_REQUEST_STATUS_RUNNING');
387
388 FND_MESSAGE.SET_NAME('MSC', 'MSC_FUNC_MON_RUN');
389 FND_MESSAGE.SET_TOKEN('REQUEST_ID',l_request_id);
390 FND_MESSAGE.SET_TOKEN('PHASE',l_dev_phase);
391 FND_MESSAGE.SET_TOKEN('STATUS',l_dev_status);
392 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_FATAL_ERR, FND_MESSAGE.GET);
393
394 FND_MESSAGE.SET_NAME('MSC', 'MSC_CL_CONC_MESSAGE');
395 FND_MESSAGE.SET_TOKEN('MESSAGE',l_message);
396 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_FATAL_ERR, FND_MESSAGE.GET);
397
398 RETURN MSC_UTIL.SYS_NO;
399 END IF;
400
401 END is_request_status_running;
402
403 FUNCTION is_worker_status_valid( ps_request_id IN NumTblTyp)
404 RETURN NUMBER
405 IS
406 l_call_status boolean;
407 l_phase varchar2(80);
408 l_status varchar2(80);
409 l_dev_phase varchar2(80);
410 l_dev_status varchar2(80);
411 l_message varchar2(1024);
412
413 l_request_id NUMBER;
414 BEGIN
415
416 IF v_cp_enabled= MSC_UTIL.SYS_NO THEN
417 RETURN MSC_UTIL.SYS_YES;
418 END IF;
419
420 FOR lc_i IN 1..(ps_request_id.COUNT-1) LOOP
421
422 l_request_id := ps_request_id(lc_i);
423
424 l_call_status:= FND_CONCURRENT.GET_REQUEST_STATUS
425 ( l_request_id,
426 NULL,
427 NULL,
428 l_phase,
429 l_status,
430 l_dev_phase,
431 l_dev_status,
432 l_message);
433
434 IF l_call_status=FALSE THEN
435 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_FATAL_ERR, 'IS_WORKER_STATUS_VALID');
436
437 FND_MESSAGE.SET_NAME('MSC', 'MSC_FUNC_MON_RUNNING');
438 FND_MESSAGE.SET_TOKEN('REQUEST_ID',l_request_id);
439 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_FATAL_ERR, FND_MESSAGE.GET);
440
441 FND_MESSAGE.SET_NAME('MSC', 'MSC_CL_CONC_MESSAGE');
442 FND_MESSAGE.SET_TOKEN('MESSAGE',l_message);
443 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_FATAL_ERR, FND_MESSAGE.GET);
444
445 RETURN MSC_UTIL.SYS_NO;
446 END IF;
447
448 IF l_dev_phase NOT IN ( 'PENDING','RUNNING') THEN
449 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_FATAL_ERR, 'IS_WORKER_STATUS_VALID');
450
451 FND_MESSAGE.SET_NAME('MSC', 'MSC_FUNC_MON_RUN');
452 FND_MESSAGE.SET_TOKEN('REQUEST_ID',l_request_id);
453 FND_MESSAGE.SET_TOKEN('PHASE',l_dev_phase);
454 FND_MESSAGE.SET_TOKEN('STATUS',l_dev_status);
455 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_FATAL_ERR, FND_MESSAGE.GET);
456
457 FND_MESSAGE.SET_NAME('MSC', 'MSC_CL_CONC_MESSAGE');
458 FND_MESSAGE.SET_TOKEN('MESSAGE',l_message);
459 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_FATAL_ERR, FND_MESSAGE.GET);
460
461 RETURN MSC_UTIL.SYS_NO;
462 END IF;
463
464 END LOOP;
465
466 RETURN MSC_UTIL.SYS_YES;
467
468 END is_worker_status_valid;
469
470 /* Added this function to verify that all the workers are completed For bug : 2210970
471 */
472 FUNCTION all_workers_completed( ps_request_id IN NumTblTyp)
473 RETURN NUMBER
474 IS
475 l_call_status boolean;
476 l_phase varchar2(80);
477 l_status varchar2(80);
478 l_dev_phase varchar2(80);
479 l_dev_status varchar2(80);
480 l_message varchar2(1024);
481
482 l_request_id NUMBER;
483
484 req_complete number := 0;
485 total_req number;
486 BEGIN
487 req_complete := 0;
488 total_req := 0;
489
490 IF v_cp_enabled= MSC_UTIL.SYS_NO THEN
491 RETURN MSC_UTIL.SYS_YES;
492 END IF;
493
494 total_req := ps_request_id.COUNT - 1;
495 MSC_UTIL.LOG_MSG(MSC_UTIL.G_D_DEBUG_1, 'Total requests = :' ||total_req);
496
497 FOR lc_i IN 1..(ps_request_id.COUNT-1) LOOP
498
499 l_request_id := ps_request_id(lc_i);
500
501 l_call_status:= FND_CONCURRENT.GET_REQUEST_STATUS
502 ( l_request_id,
503 NULL,
504 NULL,
505 l_phase,
506 l_status,
507 l_dev_phase,
508 l_dev_status,
509 l_message);
510 MSC_UTIL.LOG_MSG(MSC_UTIL.G_D_DEBUG_1, 'Request id = '||l_request_id);
511
512 IF l_dev_phase IN ('COMPLETE') THEN
513
514 req_complete := req_complete + 1;
515
516 MSC_UTIL.LOG_MSG(MSC_UTIL.G_D_DEBUG_1, 'ALL_WORKERS_COMPLETED');
517
518 FND_MESSAGE.SET_NAME('MSC', 'MSC_FUNC_MON_RUN');
519 FND_MESSAGE.SET_TOKEN('REQUEST_ID',l_request_id);
520 FND_MESSAGE.SET_TOKEN('PHASE',l_dev_phase);
521 FND_MESSAGE.SET_TOKEN('STATUS',l_dev_status);
522 MSC_UTIL.LOG_MSG(MSC_UTIL.G_D_DEBUG_1, FND_MESSAGE.GET);
523
524 FND_MESSAGE.SET_NAME('MSC', 'MSC_CL_TOTAL_REQS_COMPLETE');
525 FND_MESSAGE.SET_TOKEN('REQUESTS',req_complete);
526 MSC_UTIL.LOG_MSG(MSC_UTIL.G_D_DEBUG_1, FND_MESSAGE.GET);
527
528 END IF;
529
530 END LOOP;
531
532 IF total_req = req_complete THEN
533 FND_MESSAGE.SET_NAME('MSC', 'MSC_CL_ALL_WORKERS_COMP');
534 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, FND_MESSAGE.GET);
535 RETURN MSC_UTIL.SYS_YES;
536 ELSE
537 RETURN MSC_UTIL.SYS_NO;
538 END IF;
539
540 END all_workers_completed;
541
542 PROCEDURE INITIALIZE_PULL_GLOBALS( pINSTANCE_ID IN NUMBER)
543 IS
544 BEGIN
545
546 /* initialize the database pipe name */
547 v_pipe_task_que := 'MSC_CL_PULL_TQ'||TO_CHAR(pINSTANCE_ID);
548 v_pipe_wm := 'MSC_CL_PULL_WM'||TO_CHAR(pINSTANCE_ID);
549 v_pipe_mw := 'MSC_CL_PULL_MW'||TO_CHAR(pINSTANCE_ID);
550 v_pipe_status := 'MSC_CL_PULL_ST'||TO_CHAR(pINSTANCE_ID);
551
552 -- Initializes Level 2 Global Variables used in Data Pull
553
554 END INITIALIZE_PULL_GLOBALS;
555
556
557 PROCEDURE INITIALIZE_REMOTE_INSTANCE
558 IS
559 lv_user_name VARCHAR2(100):= NULL;
560 lv_resp_name VARCHAR2(100):= NULL;
561 lv_application_name VARCHAR2(240):= NULL;
562
563 lv_user_id NUMBER;
564 lv_resp_id NUMBER;
565 lv_application_id NUMBER;
566
567 BEGIN
568
569 SELECT
570 FND_GLOBAL.USER_NAME,
571 FND_GLOBAL.RESP_NAME,
572 FND_GLOBAL.APPLICATION_NAME
573 INTO lv_user_name,
574 lv_resp_name,
575 lv_application_name
576 FROM dual;
577
578 SELECT APPLICATION_ID
579 INTO lv_application_id
580 FROM FND_APPLICATION_VL
581 WHERE APPLICATION_NAME = lv_application_name;
582 v_sql_stmt:=
583 'BEGIN'
584 ||' MRP_CL_FUNCTION.APPS_INITIALIZE'||v_dblink
585 ||'( :lv_user_name,'
586 ||' :lv_resp_name,'
587 ||' :lv_application_name,'
588 ||' :lv_application_id);'
589 ||'END;';
590 EXECUTE IMMEDIATE v_sql_stmt
591 USING lv_user_name,
592 lv_resp_name,
593 lv_application_name,
594 lv_application_id;
595 END INITIALIZE_REMOTE_INSTANCE;
596
597 -- ===============================================================
598
599 FUNCTION REFRESH_SNAPSHOT( p_instance_id IN NUMBER,pRTYPE IN NUMBER)
600 RETURN BOOLEAN
601 IS
602
603 lv_errbuf VARCHAR2(2048);
604 lv_retcode NUMBER;
605
606 lv_request_id NUMBER;
607 lv_timeout NUMBER:= NVL(FND_PROFILE.VALUE('MSC_REF_SNAP_PENDING_TIMEOUT'),10.0); /* minutes */
608
609 lv_user_name VARCHAR2(100);
610 lv_resp_name VARCHAR2(100);
611 lv_application_name VARCHAR2(240);
612 lv_refresh_type VARCHAR2(1);
613 lv_application_id NUMBER;
614
615 BEGIN
616
617 FND_MESSAGE.SET_NAME('MSC', 'MSC_DP_RS_START');
618 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, FND_MESSAGE.GET );
619
620 savepoint start_of_submission;
621
622 -- agmcont:
623
624 /* SELECT FND_GLOBAL.USER_NAME,
625 FND_GLOBAL.RESP_NAME,
626 FND_GLOBAL.APPLICATION_NAME
627 INTO lv_user_name,
628 lv_resp_name,
629 lv_application_name
630 FROM dual;
631 */
632
633 lv_user_name := FND_GLOBAL.USER_NAME;
634 lv_resp_name := FND_GLOBAL.RESP_NAME;
635 lv_application_name := FND_GLOBAL.APPLICATION_NAME;
636
637 SELECT APPLICATION_ID
638 INTO lv_application_id
639 FROM FND_APPLICATION_VL
640 WHERE APPLICATION_NAME = lv_application_name;
641
642
643 SELECT DECODE ( pRTYPE, MSC_UTIL.G_COMPLETE, 'C',
644 MSC_UTIL.G_INCREMENTAL, 'I',
645 MSC_UTIL.G_PARTIAL, 'P',
646 MSC_UTIL.G_CONT, 'T')
647 INTO lv_refresh_type
648 FROM DUAL;
649 MSC_UTIL.LOG_MSG(MSC_UTIL.G_D_DEBUG_1, ' before calling MRP_CL_REFRESH_SNAPSHOT.REFRESH_SNAPSHOT 1 ');
650 /* submit a (remote) request */
651 IF v_apps_ver >= MSC_UTIL.G_APPS115 THEN
652 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, 'Application id: ' || lv_application_id);
653 v_sql_stmt:=
654 'BEGIN MRP_CL_REFRESH_SNAPSHOT.REFRESH_SNAPSHOT'||v_dblink||'('
655 ||' ERRBUF => :lv_errbuf,'
656 ||' RETCODE => :lv_retcode,'
657 ||' p_user_name => :lv_user_name,'
658 ||' p_resp_name => :lv_resp_name,'
659 ||' p_application_name => :lv_application_name,'
660 ||' p_refresh_type => :lv_refresh_type,'
661 ||' o_request_id => :lv_request_id,'
662 ||' pInstance_ID => :p_instance_id,'
663 ||' pInstance_Code => :v_instance_code,'
664 ||' pa2m_dblink => :v_dest_a2m );'
665 ||'END;';
666 /*||' p_application_id=> :lv_application_id );' */
667
668 EXECUTE IMMEDIATE v_sql_stmt
669 USING OUT lv_errbuf,
670 OUT lv_retcode,
671 IN lv_user_name,
672 IN lv_resp_name,
673 IN lv_application_name,
674 IN lv_refresh_type,
675 OUT lv_request_id,
676 IN p_instance_id,
677 IN v_instance_code,
678 IN v_dest_a2m;
679 /*IN lv_application_id;*/
680
681 ELSE
682
683 v_sql_stmt:=
684 'BEGIN MRP_CL_REFRESH_SNAPSHOT.REFRESH_SNAPSHOT'||v_dblink||'('
685 ||' :lv_errbuf,'
686 ||' :lv_retcode,'
687 ||' :lv_user_name,'
688 ||' :lv_resp_name,'
689 ||' :lv_application_name,'
690 ||' :lv_refresh_type,'
691 ||' :lv_request_id, '
692 ||' p_application_id =>:lv_application_id );'
693 ||'END;';
694
695
696 EXECUTE IMMEDIATE v_sql_stmt
697 USING OUT lv_errbuf,
698 OUT lv_retcode,
699 IN lv_user_name,
700 IN lv_resp_name,
701 IN lv_application_name,
702 IN lv_refresh_type,
703 OUT lv_request_id,
704 IN lv_application_id;
705
706 END IF;
707
708 MSC_UTIL.LOG_MSG(MSC_UTIL.G_D_DEBUG_1, 'After refresh 2');
709 IF lv_retcode= MSC_UTIL.G_ERROR THEN
710 ROLLBACK TO start_of_submission;
711
712 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_FATAL_ERR, lv_errbuf);
713 FND_MESSAGE.SET_NAME('MSC', 'MSC_DP_RS_REQ_ERROR');
714 FND_MESSAGE.SET_TOKEN('REQUEST_ID', lv_request_id);
715 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_FATAL_ERR, FND_MESSAGE.GET );
716 RETURN FALSE;
717 END IF;
718
719 IF lv_request_id= 0 THEN
720 ROLLBACK TO start_of_submission;
721
722 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_FATAL_ERR, lv_errbuf);
723 FND_MESSAGE.SET_NAME('MSC', 'MSC_DP_RS_ERROR');
724 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_FATAL_ERR, FND_MESSAGE.GET );
725 RETURN FALSE;
726 END IF;
727
728 COMMIT;
729
730 FND_MESSAGE.SET_NAME('MSC', 'MSC_DP_RS_REQUEST_ID');
731 FND_MESSAGE.SET_TOKEN('REQUEST_ID', lv_request_id);
732 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, FND_MESSAGE.GET );
733
734 /* purge the staging tables
735 the purpose of calling this procedure is that we do a COMMIT after
736 every task is done, if the previous data pull failed we may have
737 data left in the staging tables...*/
738 MSC_UTIL.LOG_MSG(MSC_UTIL.G_D_DEBUG_1, 'Before PURGE_STAGING_TABLES_SUB' );
739 MSC_CL_PURGE_STAGING.PURGE_STAGING_TABLES_SUB( p_instance_id);
740
741 MSC_UTIL.LOG_MSG(MSC_UTIL.G_D_DEBUG_1, 'After PURGE_STAGING_TABLES_SUB' );
742 -- fix for 2351297 --
743 -- If its a single instance set up. Refresh Snapshot is submitted as a child request
744 -- and setting the parent request at a PAUSED status.
745 IF(v_dblink=NULL_DBLINK) THEN
746
747 fnd_conc_global.set_req_globals( conc_status => 'PAUSED',
748 request_data => to_char(lv_request_id));
749 -- No need to call wait_for_request, as the parent would be resumed after the completeion of the sub request.
750 RETURN TRUE;
751 END IF;
752 /* wait until the refresh snapshot process is completed
753 lv_timeout is used as the maximum waiting time for the refresh
754 snapshot process to start */
755
756 v_sql_stmt:=
757 'BEGIN MRP_CL_REFRESH_SNAPSHOT.WAIT_FOR_REQUEST'||v_dblink||'('
758 ||' :lv_timeout,'
759 ||' :lv_retcode);'
760 ||'END;';
761
762 EXECUTE IMMEDIATE v_sql_stmt
763 USING IN lv_timeout,
764 OUT lv_retcode;
765
766 IF lv_retcode = MSC_UTIL.G_NORMAL_COMPLETION THEN
767 RETURN TRUE;
768 ELSE
769 IF lv_retcode = MSC_UTIL.G_PENDING_INACTIVE THEN
770 FND_MESSAGE.SET_NAME('MSC', 'MSC_RS_TIME_OUT');
771 FND_MESSAGE.SET_TOKEN('PENDING_TIMEOUT', lv_timeout);
772 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_FATAL_ERR, FND_MESSAGE.GET);
773 ELSE
774 FND_MESSAGE.SET_NAME('MSC', 'MSC_DP_RS_REQ_ERROR');
775 FND_MESSAGE.SET_TOKEN('REQUEST_ID', lv_request_id);
776 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_FATAL_ERR, FND_MESSAGE.GET );
777 END IF;
778 RETURN FALSE;
779 END IF;
780
781 END REFRESH_SNAPSHOT;
782
783 /* --------------Continuous Collections private funcs/procs----------------------------------------------- */
784 /*
785 FUNCTION get_snapshot_log( p_snap_name IN varchar2,
786 p_dblink IN varchar2,
787 lv_snap_schema OUT NOCOPY varchar2,
788 lv_mlog_tab_name OUT NOCOPY varchar2)
789 RETURN boolean
790 IS
791 lv_base_table_name varchar2(30);
792
793 BEGIN
794
795 EXECUTE IMMEDIATE
796 ' SELECT owner,master FROM ALL_SNAPSHOTS'|| p_dblink || ' WHERE name = :p_snap_name '
797 INTO lv_snap_schema,lv_base_table_name
798 USING p_snap_name;
799
800 MSC_UTIL.LOG_MSG(MSC_UTIL.G_D_DEBUG_1, 'Snapshot Owner = '||lv_snap_schema);
801 MSC_UTIL.LOG_MSG(MSC_UTIL.G_D_DEBUG_1, 'Master Table = '||lv_base_table_name);
802
803 EXECUTE IMMEDIATE
804 ' SELECT LOG_TABLE FROM ALL_SNAPSHOT_LOGS'|| p_dblink
805 ||' WHERE MASTER = upper(:pTABLE_NAME)
806 AND LOG_OWNER = upper(:pSCHEMA_NAME)
807 AND ROWNUM = 1 '
808 INTO lv_mlog_tab_name
809 USING lv_base_table_name, lv_snap_schema;
810
811 MSC_UTIL.LOG_MSG(MSC_UTIL.G_D_DEBUG_1, 'Snapshot Log = '||lv_mlog_tab_name);
812
813 RETURN TRUE;
814
815 EXCEPTION
816 WHEN OTHERS THEN
817 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_FATAL_ERR, ' Error in getting the Snapshot information ....');
818 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_FATAL_ERR, SQLERRM);
819 RETURN FALSE;
820
821 END get_snapshot_log;
822 */
823
824 PROCEDURE GET_COLL_PARAM
825 (p_instance_id IN NUMBER,
826 p_prec OUT NOCOPY MSC_UTIL.CollParamREC )
827 AS
828 BEGIN
829
830 /* Initialize the global prec record variable */
831
832 SELECT delete_ods_data,org_group,threshold,supplier_capacity, atp_rules,
833 bom, bor, calendar_check, demand_class,ITEM_SUBSTITUTES, forecast, item,
834 kpi_targets_bis, mds, mps, oh, parameter, planners,
835 projects, po, reservations, nra, safety_stock,
836 sales_order, sourcing_history, sourcing, sub_inventories,
837 customer, supplier, unit_numbers, uom, user_supply_demand, wip, user_comp_association,
838 /* CP-ACK starts */
839 supplier_response,
840 /* CP-ACK ends */
841 trip, ds_mode, po_receipts, sales_channel,fiscal_calendar,INTERNAL_REPAIR,EXTERNAL_REPAIR, -- For Bug 5909379
842 payback_demand_supply, currency_conversion,delivery_Details,ibuc_history,notes_attach ,
843 eAM_info, eAM_forecasts, eam_fc_st_date, eam_fc_end_date, cmro, cmro_forecasts, cmro_fc_st_date, cmro_fc_end_date
844 ,cmro_closed_wo,osp_supply
845 INTO p_prec.purge_ods_flag,p_prec.org_group_flag, p_prec.threshold,p_prec.app_supp_cap_flag,
846 p_prec.atp_rules_flag, p_prec.bom_flag,
847 p_prec.bor_flag, p_prec.calendar_flag,
848 p_prec.demand_class_flag, p_prec.item_subst_flag,p_prec.forecast_flag,
849 p_prec.item_flag, p_prec.kpi_bis_flag,
850 p_prec.mds_flag, p_prec.mps_flag,
851 p_prec.oh_flag, p_prec.parameter_flag,
852 p_prec.planner_flag, p_prec.project_flag,
853 p_prec.po_flag, p_prec.reserves_flag,
854 p_prec.resource_nra_flag, p_prec.saf_stock_flag,
855 p_prec.sales_order_flag, p_prec.source_hist_flag,
856 p_prec.sourcing_rule_flag, p_prec.sub_inventory_flag,
857 p_prec.tp_customer_flag, p_prec.tp_vendor_flag,
858 p_prec.unit_number_flag, p_prec.uom_flag,
859 p_prec.user_supply_demand_flag, p_prec.wip_flag, p_prec.user_company_flag,
860 /* CP-ACK starts */
861 p_prec.supplier_response_flag,
862 /* CP-ACK ends */
863 p_prec.trip_flag, p_prec.ds_mode,p_prec.po_receipts_flag,
864 p_prec.sales_channel_flag,p_prec.fiscal_calendar_flag,p_prec.internal_repair_flag,p_prec.external_repair_flag, -- for bug 5909379
865 p_prec.payback_demand_supply_flag, p_prec.currency_conversion_flag ,--bug # 6469722
866 p_prec.delivery_details_flag,p_prec.ibuc_history_flag,p_prec.notes_attach_flag,
867 p_prec.eAM_info_flag, p_prec.eAM_forecasts_flag, p_prec.eam_fc_st_date, p_prec.eam_fc_end_date,
868 p_prec.cmro_flag, p_prec.cmro_forecasts_flag, p_prec.cmro_fc_st_date, p_prec.cmro_fc_end_date
869 ,p_prec.cmro_closed_wo,p_prec.osp_supply
870 FROM msc_coll_parameters
871 WHERE instance_id = p_instance_id;
872
873 END GET_COLL_PARAM;
874
875
876 PROCEDURE SALES_ORDER_REFRESH_TYPE ( p_instance_id in NUMBER,
877 so_sn_flag out NOCOPY NUMBER )
878 IS
879
880 lv_bom_sn_flag number := MSC_UTIL.SYS_NO;
881 lv_bor_sn_flag number := MSC_UTIL.SYS_NO;
882 lv_item_sn_flag number := MSC_UTIL.SYS_NO;
883 lv_oh_sn_flag number := MSC_UTIL.SYS_NO;
884 lv_usup_sn_flag number := MSC_UTIL.SYS_NO;
885 lv_udmd_sn_flag number := MSC_UTIL.SYS_NO;
886 lv_so_sn_flag number := MSC_UTIL.SYS_NO;
887 lv_fcst_sn_flag number := MSC_UTIL.SYS_NO;
888 lv_wip_sn_flag number := MSC_UTIL.SYS_NO;
889 lv_supcap_sn_flag number := MSC_UTIL.SYS_NO;
890 lv_po_sn_flag number := MSC_UTIL.SYS_NO;
891 lv_mds_sn_flag number := MSC_UTIL.SYS_NO;
892 /* CP-AUTO */
893 lv_suprep_sn_flag number := MSC_UTIL.SYS_NO;
894 lv_mps_sn_flag number := MSC_UTIL.SYS_NO;
895 lv_nosnap_flag number := MSC_UTIL.SYS_NO;
896 lv_trip_sn_flag number := MSC_UTIL.SYS_NO;
897
898 lv_last_tgt_cont_coll_time date;
899
900 lv_prec MSC_UTIL.CollParamREC;
901
902 BEGIN
903
904 BEGIN
905 SELECT DECODE( M2A_DBLINK,
906 NULL, NULL_DBLINK,
907 '@'||M2A_DBLINK),
908 LAST_TGT_CONT_COLL_TIME
909 INTO v_dblink,
910 lv_last_tgt_cont_coll_time
911 FROM MSC_APPS_INSTANCES
912 WHERE INSTANCE_ID= p_instance_id;
913
914 EXCEPTION
915 WHEN NO_DATA_FOUND THEN
916
917 FND_MESSAGE.SET_NAME('MSC', 'MSC_DP_INVALID_INSTANCE_ID');
918 FND_MESSAGE.SET_TOKEN('INSTANCE_ID', p_instance_id);
919 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_FATAL_ERR, FND_MESSAGE.GET);
920 RETURN;
921 WHEN OTHERS THEN
922
923 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_FATAL_ERR, SQLERRM);
924 RETURN;
925 END;
926
927 GET_COLL_PARAM(p_instance_id,lv_prec);
928
929 --bug10005268 Set parameters in lv_prec to No Except for Item and sales oders
930
931 lv_prec.bom_flag := MSC_UTIL.SYS_NO;
932 lv_prec.bor_flag := MSC_UTIL.SYS_NO;
933 -- lv_prec.item_flag := MSC_UTIL.SYS_NO;
934 lv_prec.oh_flag := MSC_UTIL.SYS_NO;
935 lv_prec.user_supply_demand_flag:= MSC_UTIL.SYS_NO;
936 -- lv_prec.sales_order_flag := MSC_UTIL.SYS_NO;
937 lv_prec.forecast_flag := MSC_UTIL.SYS_NO;
938 lv_prec.wip_flag := MSC_UTIL.SYS_NO;
939 lv_prec.app_supp_cap_flag := MSC_UTIL.SYS_NO;
940 lv_prec.po_flag := MSC_UTIL.SYS_NO;
941 lv_prec.mds_flag := MSC_UTIL.SYS_NO;
942 lv_prec.supplier_response_flag := MSC_UTIL.SYS_NO;
943 lv_prec.mps_flag := MSC_UTIL.SYS_NO;
944 lv_prec.nosnap_flag := MSC_UTIL.SYS_NO;
945 lv_prec.trip_flag := MSC_UTIL.SYS_NO;
946
947
948
949
950 MSC_CL_CONT_COLL_FW.INIT_ENTITY_REFRESH_TYPE (lv_prec.threshold,
951 null,
952 lv_last_tgt_cont_coll_time,
953 v_dblink,
954 p_instance_id,
955 lv_prec,
956 lv_prec.org_group_flag,
957 lv_bom_sn_flag,
958 lv_bor_sn_flag,
959 lv_item_sn_flag,
960 lv_oh_sn_flag,
961 lv_usup_sn_flag,
962 lv_udmd_sn_flag,
963 lv_so_sn_flag,
964 lv_fcst_sn_flag,
965 lv_wip_sn_flag,
966 lv_supcap_sn_flag,
967 lv_po_sn_flag,
968 lv_mds_sn_flag,
969 lv_mps_sn_flag,
970 lv_nosnap_flag,
971 /* CP-AUTO */
972 lv_suprep_sn_flag,
973 lv_trip_sn_flag);
974
975 so_sn_flag := lv_so_sn_flag;
976
977 EXCEPTION
978 WHEN OTHERS THEN
979 ROLLBACK;
980 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_FATAL_ERR, SQLERRM);
981 END SALES_ORDER_REFRESH_TYPE;
982
983
984 -- ============== End of Private Functions ===================
985
986 -- ============== Public Function =====================
987
988 FUNCTION GET_ORG_STR(p_instance_id IN NUMBER, p_type IN NUMBER)
989 RETURN VARCHAR2 IS
990
991 TYPE OpmOrgCurType IS REF CURSOR;
992 lc_opm_org OpmOrgCurType;
993
994 wrong_p_type EXCEPTION;
995
996 lv_org_id NUMBER;
997 lv_dblink VARCHAR2(128);
998 lv_in_org_str VARCHAR2(32767):=NULL;
999 lv_sql_str VARCHAR2(1000);
1000
1001 cursor org IS
1002 select mio.organization_id org_id
1003 from msc_instance_orgs mio,
1004 msc_coll_parameters mcp
1005 where mio.sr_instance_id= p_instance_id
1006 and mcp.instance_id = p_instance_id
1007 and mio.enabled_flag= 1
1008 and (( mcp.org_group = MSC_UTIL.G_ALL_ORGANIZATIONS ) or
1009 (mio.org_group=mcp.org_group));
1010
1011 cursor all_org IS
1012 select organization_id org_id
1013 from msc_instance_orgs
1014 where sr_instance_id= p_instance_id
1015 and enabled_flag= 1;
1016
1017 BEGIN
1018
1019 --MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, 'GET_ORG_STR() input parameter p_type: '||to_char(p_type));
1020 --MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, 'GET_ORG_STR() input parameter p_instance_id: '||to_char(p_instance_id));
1021
1022 IF(p_type=1 OR p_type=2)then
1023 FOR lc_ins_org IN org LOOP
1024 IF org%rowcount = 1 THEN
1025 lv_in_org_str:=' IN ('|| lc_ins_org.org_id;
1026 ELSE
1027 lv_in_org_str := lv_in_org_str||','||lc_ins_org.org_id;
1028 END IF;
1029 END LOOP;
1030 /* we want all OPM orgs in case it GMP version < = k and p_type=2 */
1031 IF(p_type=2 AND gmp_aps_utility.is_opm_compatible=0)then
1032 --then append all the OPM orgs
1033 BEGIN
1034 SELECT DECODE(M2A_DBLINK,NULL,NULL_DBLINK,'@'||M2A_DBLINK)
1035 INTO lv_dblink
1036 FROM MSC_APPS_INSTANCES
1037 WHERE INSTANCE_ID= p_instance_id;
1038
1039 EXCEPTION
1040 WHEN NO_DATA_FOUND THEN
1041 FND_MESSAGE.SET_NAME('MSC','MSC_DP_INVALID_INSTANCE_ID');
1042 FND_MESSAGE.SET_TOKEN('INSTANCE_ID', p_instance_id);
1043 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_FATAL_ERR, FND_MESSAGE.GET);
1044 RETURN '=-9999';
1045 WHEN OTHERS THEN
1046 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_FATAL_ERR, SQLERRM);
1047 RETURN '=-9999';
1048 END;
1049
1050 BEGIN
1051 lv_sql_str:=' SELECT mp.organization_id org_id'
1052 ||' from mtl_parameters'||lv_dblink||' mp,'
1053 ||' msc_instance_orgs mio'
1054 ||' where mio.sr_instance_id= :p_instance_id'
1055 ||' and mio.enabled_flag= 1'
1056 ||' and mio.organization_id=mp.organization_id'
1057 ||' and mp.process_enabled_flag='||'''Y''';
1058 OPEN lc_opm_org FOR lv_sql_str USING p_instance_id;
1059 LOOP
1060 FETCH lc_opm_org INTO lv_org_id; -- fetch next row
1061 EXIT WHEN lc_opm_org%NOTFOUND; -- exit loop when last row is fetched
1062 lv_in_org_str := lv_in_org_str||','||lv_org_id;
1063 END LOOP;
1064 CLOSE lc_opm_org;
1065 EXCEPTION
1066 WHEN OTHERS THEN
1067 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_FATAL_ERR, SQLERRM);
1068 RETURN '=-9999';
1069 END;
1070 END IF;
1071 IF lv_in_org_str<>'NULL' THEN
1072 lv_in_org_str:= lv_in_org_str || ')';
1073 ELSE
1074 lv_in_org_str:= '= -9999';
1075 END IF;
1076 ELSIF(p_type=3)THEN
1077 FOR lc_ins_org IN all_org LOOP
1078 IF all_org%rowcount = 1 THEN
1079 lv_in_org_str:=' IN ('|| lc_ins_org.org_id;
1080 ELSE
1081 lv_in_org_str := lv_in_org_str||','||lc_ins_org.org_id;
1082 END IF;
1083 END LOOP;
1084 IF lv_in_org_str<>'NULL' THEN
1085 lv_in_org_str:= lv_in_org_str || ')';
1086 ELSE
1087 lv_in_org_str:= '= -9999';
1088 END IF;
1089 ELSE RAISE wrong_p_type;
1090 END IF;
1091
1092 --MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, 'GET_ORG_STR() returns '||lv_in_org_str);
1093 RETURN lv_in_org_str;
1094
1095 EXCEPTION
1096 WHEN wrong_p_type THEN
1097 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, 'Error: Wrong value of p_type('||to_Char(p_type)||') in GET_ORG_STR() ');
1098 RETURN '=-9999';
1099 WHEN OTHERS THEN
1100 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, ' Error: In GET_ORG_STR() ');
1101 RETURN '=-9999';
1102 END GET_ORG_STR;
1103
1104 /* This function is created as wrapper over GET_ORG_STR(p_instance_id IN NUMBER, p_type IN NUMBER), as OPM call is without any parameters. */
1105 FUNCTION GET_ORG_STR
1106 RETURN VARCHAR2 IS
1107
1108 lv_in_org_str VARCHAR2(32767):=NULL;
1109
1110 BEGIN
1111
1112 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, 'GET_ORG_STR value of v_instance_id: '||to_char(v_instance_id));
1113
1114 lv_in_org_str := GET_ORG_STR (v_instance_id,2);
1115
1116 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, 'GET_ORG_STR returns '||lv_in_org_str);
1117 RETURN lv_in_org_str;
1118
1119 EXCEPTION
1120 WHEN OTHERS THEN
1121 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, ' Error: In GET_ORG_STR ');
1122 RETURN '=-9999';
1123 END GET_ORG_STR;
1124
1125 -- ============== End of Public Functions ===================
1126
1127 -- ============== Public Procedures ===================
1128 -- LAUNCH_WORKER --
1129 PROCEDURE LAUNCH_WORKER( ERRBUF OUT NOCOPY VARCHAR2,
1130 RETCODE OUT NOCOPY NUMBER ,
1131 pMONITOR_REQUEST_ID IN NUMBER ,
1132 pINSTANCE_ID IN NUMBER ,
1133 pTIMEOUT IN NUMBER ,
1134 pLANG IN VARCHAR2 ,
1135 pRTYPE IN NUMBER ,
1136 pREFRESH_ID IN NUMBER ,
1137 ----- FLAGS --------------------------------------------------------------
1138 pAPPROV_SUPPLIER_CAP_ENABLED IN NUMBER ,
1139 pATP_RULES_ENABLED IN NUMBER ,
1140 pBOM_ENABLED IN NUMBER ,
1141 pBOR_ENABLED IN NUMBER ,
1142 pCALENDAR_ENABLED IN NUMBER ,
1143 pDEMAND_CLASS_ENABLED IN NUMBER ,
1144 pITEM_SUBST_ENABLED IN NUMBER ,
1145 pFORECAST_ENABLED IN NUMBER ,
1146 pITEM_ENABLED IN NUMBER ,
1147 pKPI_BIS_ENABLED IN NUMBER ,
1148 pMDS_ENABLED IN NUMBER ,
1149 pMPS_ENABLED IN NUMBER ,
1150 pOH_ENABLED IN NUMBER ,
1151 pPARAMETER_ENABLED IN NUMBER ,
1152 pPLANNER_ENABLED IN NUMBER ,
1153 pPROJECT_ENABLED IN NUMBER ,
1154 pPUR_REQ_PO_ENABLED IN NUMBER ,
1155 pRESERVES_HARD_ENABLED IN NUMBER ,
1156 pRESOURCE_NRA_ENABLED IN NUMBER ,
1157 pSafeStock_ENABLED IN NUMBER ,
1158 pSalesOrder_RTYPE IN NUMBER ,
1159 pSH_ENABLED IN NUMBER ,
1160 pSOURCING_ENABLED IN NUMBER ,
1161 pSUB_INV_ENABLED IN NUMBER ,
1162 pTP_CUSTOMER_ENABLED IN NUMBER ,
1163 pTP_VENDOR_ENABLED IN NUMBER ,
1164 pUNIT_NO_ENABLED IN NUMBER ,
1165 pUOM_ENABLED IN NUMBER ,
1166 pUSER_SUPPLY_DEMAND IN NUMBER ,
1167 pWIP_ENABLED IN NUMBER ,
1168 pPO_RECEIPTS_ENABLED IN NUMBER ,
1169 pUSER_COMPANY_ENABLED IN NUMBER ,
1170 /* CP-ACK starts */
1171 pSUPPLIER_RESPONSE_ENABLED IN NUMBER ,
1172 /* CP-ACK ends */
1173 pTRIP_ENABLED IN NUMBER
1174 )
1175 IS
1176
1177 -- Profile Option --
1178
1179 lv_so_ship_arrive_value NUMBER;
1180 lv_mps_consume_profile_value NUMBER;
1181 lv_spread_load NUMBER;
1182 lv_hour_uom VARCHAR2(3);
1183
1184 -- MSC Profile Option --
1185
1186 lv_mso_item_dmd_penalty NUMBER;
1187 lv_mso_item_cap_penalty NUMBER;
1188 lv_mso_org_dmd_penalty NUMBER;
1189 lv_mso_org_item_penalty NUMBER;
1190 lv_mso_org_res_penalty NUMBER;
1191 lv_mso_org_trsp_penalty NUMBER;
1192 lv_msc_aggreg_res_name NUMBER;
1193 lv_mso_res_penalty NUMBER;
1194 lv_mso_sup_cap_penalty NUMBER;
1195 lv_msc_bom_subst_priority NUMBER;
1196 lv_mso_trsp_penalty NUMBER;
1197 lv_msc_alt_bom_cost NUMBER;
1198 lv_mso_fcst_penalty NUMBER;
1199 lv_mso_so_penalty NUMBER;
1200 -- lv_msc_alt_op_res NUMBER;
1201 lv_msc_alt_res_priority NUMBER;
1202 lv_msc_batchable_flag NUMBER;
1203 lv_msc_batching_window NUMBER;
1204 lv_msc_min_capacity NUMBER;
1205 lv_msc_max_capacity NUMBER;
1206 lv_msc_unit_of_measure NUMBER;
1207 lv_msc_simul_res_seq NUMBER;
1208 lv_mrp_bis_av_discount NUMBER;
1209 lv_mrp_bis_price_list NUMBER;
1210 lv_msc_dmd_priority_flex_num NUMBER;
1211 lv_msc_fcst_priority_flex_num NUMBER;
1212
1213 -- Userenv, Installation Information --
1214 lv_lang VARCHAR2(4);
1215 lv_oe_install VARCHAR2(170):= 'OE';
1216
1217 -- Task Parameter --
1218 lv_lrn NUMBER;
1219
1220 -- Task Control --
1221 lv_task_num PLS_INTEGER; -- NEGATIVE: Unknown Error Occurs
1222 -- 0 : All Task Is Done
1223 -- POSITIVE: The Task Number
1224
1225 lv_task_status NUMBER; -- ::OK : THE TASK IS Done in MSC
1226 -- OTHERS : THE TASK Fails
1227
1228 lv_start_time DATE;
1229 lv_process_time NUMBER;
1230
1231 lv_apps_ver NUMBER;
1232
1233 EX_PROCESS_TIME_OUT EXCEPTION;
1234
1235 -- Pipe Control --
1236
1237 lv_ret_code NUMBER; -- The return value of Sending/Receiving Pipe Messages
1238
1239 EX_PIPE_RCV EXCEPTION;
1240 EX_PIPE_SND EXCEPTION;
1241
1242 prec MSC_UTIL.CollParamREC;
1243
1244 --Status of worker
1245 lv_is_waiting boolean := TRUE;
1246
1247 --agmcont:
1248 lv_toset_prec_flag boolean:=TRUE;
1249
1250
1251 BEGIN
1252 RETCODE := MSC_UTIL.G_SUCCESS;
1253 ERRBUF := NULL;
1254 v_instance_id := pINSTANCE_ID;
1255
1256 v_monitor_request_id := pMONITOR_REQUEST_ID;
1257
1258 -- SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
1259
1260 IF fnd_global.conc_request_id > 0 THEN
1261 v_cp_enabled:= MSC_UTIL.SYS_YES;
1262 ELSE
1263 v_cp_enabled:= MSC_UTIL.SYS_NO;
1264 END IF;
1265
1266
1267
1268
1269
1270 BEGIN
1271
1272 SELECT DECODE( M2A_DBLINK,
1273 NULL, NULL_DBLINK,
1274 '@'||M2A_DBLINK),
1275 DECODE( M2A_DBLINK,
1276 NULL, MSC_UTIL.SYS_NO,
1277 MSC_UTIL.SYS_YES),
1278 APPS_VER,
1279 APPS_LRN,
1280 APPS_LRN
1281 INTO v_dblink,
1282 v_distributed_config_flag,
1283 lv_apps_ver,
1284 v_lrnn,
1285 v_so_lrn
1286 FROM MSC_APPS_INSTANCES
1287 WHERE INSTANCE_ID= pINSTANCE_ID;
1288
1289 EXCEPTION
1290
1291 WHEN NO_DATA_FOUND THEN
1292
1293 RETCODE := MSC_UTIL.G_ERROR;
1294
1295 FND_MESSAGE.SET_NAME('MSC', 'MSC_DP_INVALID_INSTANCE_ID');
1296 FND_MESSAGE.SET_TOKEN('INSTANCE_ID', pINSTANCE_ID);
1297 ERRBUF:= FND_MESSAGE.GET;
1298 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_FATAL_ERR, ERRBUF);
1299 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_FATAL_ERR, SQLERRM);
1300
1301 RETURN;
1302
1303 WHEN OTHERS THEN
1304
1305 RAISE;
1306
1307 END;
1308
1309
1310 -- to initialize common global variables bug#5897346
1311 MSC_UTIL.INITIALIZE_COMMON_GLOBALS(pINSTANCE_ID);
1312 INITIALIZE_PULL_GLOBALS( pINSTANCE_ID); -- Initializes Level 2 Global Variables used in Data Pull
1313 -- Initialize the Start Time and Pipename
1314
1315
1316 -- Initialize the remote Applications database, if it's a distributed
1317 -- configuration.
1318
1319 IF v_distributed_config_flag = MSC_UTIL.SYS_YES THEN
1320 INITIALIZE_REMOTE_INSTANCE;
1321 COMMIT;
1322
1323 END IF;
1324
1325 -- Get environment parameters
1326 -- 1. LANG
1327 -- 2. PROFILE OPTIONS
1328
1329
1330 IF lv_apps_ver>= MSC_UTIL.G_APPS115 THEN
1331 v_sql_stmt:=
1332 'SELECT USERENV(''LANG''),'
1333 ||' FND_PROFILE.VALUE'||v_dblink||'(''BOM:HOUR_UOM_CODE''),'
1334 ||' DECODE( FND_PROFILE.VALUE'||v_dblink||'(''MRP_MPS_CONSUMPTION''),'
1335 ||' ''Y'', 1,'
1336 ||' ''1'', 1,'
1337 ||' 2),'
1338 ||' DECODE( FND_PROFILE.VALUE'||v_dblink||'(''MRP_SHIP_ARRIVE_FLAG''),'
1339 ||' ''Y'', 1,'
1340 ||' ''1'', 1,'
1341 ||' 2),'
1342 ||' DECODE( FND_PROFILE.VALUE'||v_dblink||'(''CRP_SPREAD_LOAD''),'
1343 ||' ''Y'', 1,'
1344 ||' ''1'', 1,'
1345 ||' 2),'
1346 ||' TO_NUMBER( FND_PROFILE.VALUE'||v_dblink||'(''MSO_ITEM_DMD_PENALTY'')),'
1347 ||' TO_NUMBER( FND_PROFILE.VALUE'||v_dblink||'(''MSO_ITEM_CAP_PENALTY'')),'
1348 ||' TO_NUMBER( FND_PROFILE.VALUE'||v_dblink||'(''MSO_ORG_DMD_PENALTY'')),'
1349 ||' TO_NUMBER( FND_PROFILE.VALUE'||v_dblink||'(''MSO_ORG_ITEM_PENALTY'')),'
1350 ||' TO_NUMBER( FND_PROFILE.VALUE'||v_dblink||'(''MSO_ORG_RES_PENALTY'')),'
1351 ||' TO_NUMBER( FND_PROFILE.VALUE'||v_dblink||'(''MSO_ORG_TRSP_PENALTY'')),'
1352 ||' FND_PROFILE.VALUE'||v_dblink||'(''MSC_AGGREG_RES_NAME''),'
1353 ||' TO_NUMBER( FND_PROFILE.VALUE'||v_dblink||'(''MSO_RES_PENALTY'')),'
1354 ||' TO_NUMBER( FND_PROFILE.VALUE'||v_dblink||'(''MSO_SUP_CAP_PENALTY'')),'
1355 ||' TO_NUMBER( FND_PROFILE.VALUE'||v_dblink||'(''MSC_BOM_SUBST_PRIORITY'')),'
1356 ||' TO_NUMBER( FND_PROFILE.VALUE'||v_dblink||'(''MSO_TRSP_PENALTY'')),'
1357 ||' TO_NUMBER( FND_PROFILE.VALUE'||v_dblink||'(''MSC_ALT_BOM_COST'')),'
1358 ||' TO_NUMBER( FND_PROFILE.VALUE'||v_dblink||'(''MSO_FCST_PENALTY'')),'
1359 ||' TO_NUMBER( FND_PROFILE.VALUE'||v_dblink||'(''MSO_SO_PENALTY'')),'
1360 -- ||' TO_NUMBER( FND_PROFILE.VALUE'||v_dblink||'(''MSC_RESOURCE_TYPE'')),'
1361 ||' TO_NUMBER( FND_PROFILE.VALUE'||v_dblink||'(''MSC_ALT_RES_PRIORITY'')),'
1362 ||' TO_NUMBER( FND_PROFILE.VALUE'||v_dblink||'(''MSC_BATCHABLE_FLAG'')),'
1363 ||' TO_NUMBER( FND_PROFILE.VALUE'||v_dblink||'(''MSC_BATCHING_WINDOW'')),'
1364 ||' TO_NUMBER( FND_PROFILE.VALUE'||v_dblink||'(''MSC_MIN_CAPACITY'')),'
1365 ||' TO_NUMBER( FND_PROFILE.VALUE'||v_dblink||'(''MSC_MAX_CAPACITY'')),'
1366 ||' TO_NUMBER( FND_PROFILE.VALUE'||v_dblink||'(''MSC_UNIT_OF_MEASURE'')),'
1367 ||' TO_NUMBER( FND_PROFILE.VALUE'||v_dblink||'(''MSC_SIMUL_RES_SEQ'')),'
1368 ||' NVL(TO_NUMBER( FND_PROFILE.VALUE'||v_dblink||'(''MRP_BIS_AV_DISCOUNT'')),0),'
1369 ||' TO_NUMBER( FND_PROFILE.VALUE'||v_dblink||'(''MRP_BIS_PRICE_LIST'')),'
1370 ||' TO_NUMBER( FND_PROFILE.VALUE'||v_dblink||'(''MRP_DMD_PRIORITY_FLEX_NUM'')),'
1371 --for bug13562886,use the MSC_UTIL.MSC_NUMVAL() to filter the wrong value set in the profile.
1372 ||' MSC_UTIL.MSC_NUMVAL( FND_PROFILE.VALUE'||v_dblink||'(''MSC_FCST_PRIORITY_FLEX_NUM''))'
1373 --||' TO_NUMBER( FND_PROFILE.VALUE'||v_dblink||'(''MSC_FCST_PRIORITY_FLEX_NUM''))'
1374 ||' FROM DUAL';
1375
1376 ELSE
1377 v_sql_stmt:=
1378 'SELECT USERENV(''LANG''),'
1379 ||' FND_PROFILE.VALUE'||v_dblink||'(''BOM:HOUR_UOM_CODE''),'
1380 ||' DECODE( FND_PROFILE.VALUE'||v_dblink||'(''MRP_MPS_CONSUMPTION''),'
1381 ||' ''Y'', 1,'
1382 ||' ''1'', 1,'
1383 ||' 2),'
1384 ||' DECODE( FND_PROFILE.VALUE'||v_dblink||'(''MRP_SHIP_ARRIVE_FLAG''),'
1385 ||' ''Y'', 1,'
1386 ||' ''1'', 1,'
1387 ||' 2),'
1388 ||' DECODE( FND_PROFILE.VALUE'||v_dblink||'(''CRP_SPREAD_LOAD''),'
1389 ||' ''Y'', 1,'
1390 ||' ''1'', 1,'
1391 ||' 2),'
1392 ||' TO_NUMBER( FND_PROFILE.VALUE'||v_dblink||'(''MRP_ITEM_DMD_PENALTY'')),'
1393 ||' TO_NUMBER( FND_PROFILE.VALUE'||v_dblink||'(''MRP_ITEM_CAP_PENALTY'')),'
1394 ||' TO_NUMBER( FND_PROFILE.VALUE'||v_dblink||'(''MRP_ORG_DMD_PENALTY'')),'
1395 ||' TO_NUMBER( FND_PROFILE.VALUE'||v_dblink||'(''MRP_ORG_ITEM_PENALTY'')),'
1396 ||' TO_NUMBER( FND_PROFILE.VALUE'||v_dblink||'(''MRP_ORG_RES_PENALTY'')),'
1397 ||' TO_NUMBER( FND_PROFILE.VALUE'||v_dblink||'(''MRP_ORG_TRSP_PENALTY'')),'
1398 ||' TO_NUMBER( FND_PROFILE.VALUE'||v_dblink||'(''MRP_AGGREG_RES_NAME'')),'
1399 ||' TO_NUMBER( FND_PROFILE.VALUE'||v_dblink||'(''MRP_RES_PENALTY'')),'
1400 ||' TO_NUMBER( FND_PROFILE.VALUE'||v_dblink||'(''MRP_SUP_CAP_PENALTY'')),'
1401 ||' TO_NUMBER( FND_PROFILE.VALUE'||v_dblink||'(''MRP_BOM_SUBST_PRIORITY'')),'
1402 ||' TO_NUMBER( FND_PROFILE.VALUE'||v_dblink||'(''MRP_TRSP_PENALTY'')),'
1403 ||' TO_NUMBER( FND_PROFILE.VALUE'||v_dblink||'(''MRP_ALT_BOM_COST'')),'
1404 ||' TO_NUMBER( FND_PROFILE.VALUE'||v_dblink||'(''MRP_FCST_PENALTY'')),'
1405 ||' TO_NUMBER( FND_PROFILE.VALUE'||v_dblink||'(''MRP_SO_PENALTY'')),'
1406 ||' TO_NUMBER( FND_PROFILE.VALUE'||v_dblink||'(''MRP_RESOURCE_TYPE'')),'
1407 ||' TO_NUMBER( FND_PROFILE.VALUE'||v_dblink||'(''MRP_ALT_RES_PRIORITY'')),'
1408 ||' TO_NUMBER( FND_PROFILE.VALUE'||v_dblink||'(''MRP_BATCHABLE_FLAG'')),'
1409 ||' TO_NUMBER( FND_PROFILE.VALUE'||v_dblink||'(''MRP_BATCHING_WINDOW'')),'
1410 ||' TO_NUMBER( FND_PROFILE.VALUE'||v_dblink||'(''MRP_MIN_CAPACITY'')),'
1411 ||' TO_NUMBER( FND_PROFILE.VALUE'||v_dblink||'(''MRP_MAX_CAPACITY'')),'
1412 ||' TO_NUMBER( FND_PROFILE.VALUE'||v_dblink||'(''MRP_UNIT_OF_MEASURE'')),'
1413 ||' TO_NUMBER( FND_PROFILE.VALUE'||v_dblink||'(''MRP_SIMUL_RES_SEQ'')),'
1414 ||' NVL(TO_NUMBER( FND_PROFILE.VALUE'||v_dblink||'(''MRP_BIS_AV_DISCOUNT'')),0),'
1415 ||' TO_NUMBER( FND_PROFILE.VALUE'||v_dblink||'(''MRP_BIS_PRICE_LIST'')),'
1416 ||' TO_NUMBER( FND_PROFILE.VALUE'||v_dblink||'(''MRP_DMD_PRIORITY_FLEX_NUM'')),'
1417 --for bug13562886,use the MSC_UTIL.MSC_NUMVAL() to filter the wrong value set in the profile.
1418 --||' TO_NUMBER( FND_PROFILE.VALUE'||v_dblink||'(''MSC_FCST_PRIORITY_FLEX_NUM''))'
1419 ||' MSC_UTIL.MSC_NUMVAL( FND_PROFILE.VALUE'||v_dblink||'(''MSC_FCST_PRIORITY_FLEX_NUM''))'
1420 ||' FROM DUAL';
1421
1422 END IF;
1423
1424 EXECUTE IMMEDIATE v_sql_stmt
1425 INTO lv_lang,
1426 lv_hour_uom, -- used in resource required
1427 lv_mps_consume_profile_value,
1428 lv_so_ship_arrive_value,-- used in supplies
1429 lv_spread_load, -- used in resource required
1430 lv_mso_item_dmd_penalty,
1431 lv_mso_item_cap_penalty,
1432 lv_mso_org_dmd_penalty,
1433 lv_mso_org_item_penalty,
1434 lv_mso_org_res_penalty,
1435 lv_mso_org_trsp_penalty,
1436 lv_msc_aggreg_res_name,
1437 lv_mso_res_penalty,
1438 lv_mso_sup_cap_penalty,
1439 lv_msc_bom_subst_priority,
1440 lv_mso_trsp_penalty,
1441 lv_msc_alt_bom_cost,
1442 lv_mso_fcst_penalty,
1443 lv_mso_so_penalty,
1444 -- lv_msc_alt_op_res,
1445 lv_msc_alt_res_priority,
1446 lv_msc_batchable_flag ,
1447 lv_msc_batching_window ,
1448 lv_msc_min_capacity ,
1449 lv_msc_max_capacity ,
1450 lv_msc_unit_of_measure ,
1451 lv_msc_simul_res_seq,
1452 lv_mrp_bis_av_discount,
1453 lv_mrp_bis_price_list,
1454 lv_msc_dmd_priority_flex_num,
1455 lv_msc_fcst_priority_flex_num;
1456
1457 BEGIN
1458
1459 /*
1460 v_sql_stmt:=
1461 'SELECT OE_INSTALL.Get_Active_Product'||v_dblink||' FROM DUAL';
1462
1463 EXECUTE IMMEDIATE v_sql_stmt
1464 INTO lv_oe_install;
1465 */
1466
1467 /* NCPerf */
1468 lv_oe_install:= OE_INSTALL.Get_Active_Product||v_dblink;
1469
1470 EXCEPTION
1471
1472 WHEN OTHERS THEN
1473
1474 IF SQLCODE<> -904 THEN
1475 RAISE;
1476 END IF;
1477 END;
1478
1479
1480 -- Set the Last Refresh Number, -1: for complete refresh ------------------
1481
1482 /** PREPLACE CHANGE START **/
1483
1484 --IF pRTYPE= MSC_UTIL.SYS_YES THEN
1485 IF ((pRTYPE = MSC_UTIL.G_COMPLETE) OR (pRTYPE = MSC_UTIL.G_PARTIAL)) THEN
1486 v_lrnn:= -1;
1487
1488 IF pSalesOrder_RTYPE= MSC_UTIL.SYS_YES THEN
1489 v_so_lrn:= -1;
1490 END IF;
1491 END IF;
1492
1493 /** PREPLACE CHANGE END **/
1494
1495 lv_start_time:= SYSDATE;
1496
1497
1498 -- ============= Get the Task FROM Task Que ==============
1499
1500 LOOP
1501
1502 -- ============= Check the execution time ==============
1503
1504 EXIT WHEN is_monitor_status_running <> MSC_UTIL.SYS_YES;
1505
1506 EXIT WHEN is_request_status_running <> MSC_UTIL.SYS_YES;
1507
1508 SELECT (SYSDATE- lv_start_time) INTO lv_process_time FROM dual;
1509 IF lv_process_time > pTIMEOUT/1440.0 THEN RAISE EX_PROCESS_TIME_OUT;
1510 END IF;
1511
1512 -- Get the Task Number ----------------------
1513
1514 lv_ret_code := DBMS_PIPE.RECEIVE_MESSAGE( v_pipe_task_que, PIPE_TIME_OUT);
1515
1516 --agmcont
1517 if (lv_toset_prec_flag) then
1518 lv_toset_prec_flag := FALSE;
1519 SELECT org_group,delete_ods_data, supplier_capacity, atp_rules,
1520 bom, bor, calendar_check, demand_class,ITEM_SUBSTITUTES, forecast, item,
1521 decode(v_apps_ver, MSC_UTIL.G_APPS122, MSC_UTIL.SYS_NO, kpi_targets_bis), mds, mps, oh, parameter, planners,
1522 projects, po, reservations, nra, safety_stock,
1523 sales_order, sourcing_history, sourcing, sub_inventories,
1524 customer, supplier, unit_numbers, uom, user_supply_demand, wip, user_comp_association,
1525 po_receipts, bom_sn_flag, bor_sn_flag, item_sn_flag, oh_sn_flag,
1526 usup_sn_flag, udmd_sn_flag, so_sn_flag, fcst_sn_flag,
1527 wip_sn_flag, supcap_sn_flag, po_sn_flag, mds_sn_flag,
1528 mps_sn_flag, nosnap_flag
1529 /* CP-ACK starts */
1530 ,SUPPLIER_RESPONSE
1531 /* CP-ACK ends */
1532 /* CP-AUTO */
1533 ,SUPREP_SN_FLAG,trip,trip_sn_flag,ds_mode,sales_channel,fiscal_calendar,INTERNAL_REPAIR,EXTERNAL_REPAIR -- for bug 5909379
1534 ,payback_demand_supply, currency_conversion -- bug #6469722
1535 ,delivery_Details,ibuc_history,notes_attach,
1536 eAM_info, eAM_forecasts, eam_fc_st_date, eam_fc_end_date, cmro, cmro_forecasts, cmro_fc_st_date, cmro_fc_end_date
1537 ,cmro_closed_wo,osp_supply
1538 INTO prec.org_group_flag, prec.purge_ods_flag, prec.app_supp_cap_flag,
1539 prec.atp_rules_flag, prec.bom_flag,
1540 prec.bor_flag, prec.calendar_flag,
1541 prec.demand_class_flag, prec.item_subst_flag,prec.forecast_flag,
1542 prec.item_flag, prec.kpi_bis_flag,
1543 prec.mds_flag, prec.mps_flag,
1544 prec.oh_flag, prec.parameter_flag,
1545 prec.planner_flag, prec.project_flag,
1546 prec.po_flag, prec.reserves_flag,
1547 prec.resource_nra_flag, prec.saf_stock_flag,
1548 prec.sales_order_flag, prec.source_hist_flag,
1549 prec.sourcing_rule_flag, prec.sub_inventory_flag,
1550 prec.tp_customer_flag, prec.tp_vendor_flag,
1551 prec.unit_number_flag, prec.uom_flag,
1552 prec.user_supply_demand_flag, prec.wip_flag, prec.user_company_flag,
1553 prec.po_receipts_flag,
1554 prec.bom_sn_flag, prec.bor_sn_flag,
1555 prec.item_sn_flag, prec.oh_sn_flag,
1556 prec.usup_sn_flag, prec.udmd_sn_flag,
1557 prec.so_sn_flag, prec.fcst_sn_flag,
1558 prec.wip_sn_flag,
1559 prec.supcap_sn_flag, prec.po_sn_flag,
1560 prec.mds_sn_flag, prec.mps_sn_flag,
1561 prec.nosnap_flag
1562 /* CP-ACK starts */
1563 ,prec.supplier_response_flag
1564 /* CP-ACK ends */
1565 /* CP-AUTO */
1566 ,prec.suprep_sn_flag,prec.trip_flag,prec.trip_sn_flag ,
1567 prec.ds_mode,
1568 prec.sales_channel_flag,prec.fiscal_calendar_flag,prec.internal_repair_flag,prec.external_repair_flag -- for bug 5909379
1569 ,prec.payback_demand_supply_flag, prec.currency_conversion_flag -- bug # 6469722
1570 ,prec.delivery_details_flag,prec.ibuc_history_flag,prec.notes_attach_flag,
1571 prec.eAM_info_flag, prec.eAM_forecasts_flag, prec.eam_fc_st_date, prec.eam_fc_end_date,
1572 prec.cmro_flag, prec.cmro_forecasts_flag, prec.cmro_fc_st_date, prec.cmro_fc_end_date, prec.cmro_closed_wo,
1573 prec.osp_supply
1574 FROM msc_coll_parameters
1575 WHERE instance_id = pINSTANCE_ID;
1576 end if;
1577
1578
1579 FND_MESSAGE.SET_NAME('MSC','MSC_CL_WORKER_RCV_RET_CODE');
1580 FND_MESSAGE.SET_TOKEN('LV_TASK_NUMBER',lv_ret_code);
1581 MSC_UTIL.LOG_MSG(MSC_UTIL.G_D_DEBUG_1, FND_MESSAGE.GET);
1582
1583 IF lv_ret_code<>0 THEN
1584
1585 IF lv_ret_code = 1 THEN
1586 IF lv_is_waiting THEN
1587 lv_is_waiting := false;
1588 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS,'Waiting for task to arrive');
1589 END IF;
1590 ELSE
1591 RAISE EX_PIPE_RCV;
1592 END IF;
1593
1594
1595 ELSE
1596 lv_is_waiting := true;
1597 DBMS_PIPE.UNPACK_MESSAGE( lv_task_num);
1598
1599 FND_MESSAGE.SET_NAME('MSC','MSC_CL_WORKER_TSK_UNPACK');
1600 FND_MESSAGE.SET_TOKEN('LV_TASK_NUM',lv_task_num);
1601 MSC_UTIL.LOG_MSG(MSC_UTIL.G_D_DEBUG_1, FND_MESSAGE.GET);
1602
1603 EXIT WHEN lv_task_num<= 0; -- No task is left or unknown error occurs.
1604
1605 -- ============= Execute the Task =============
1606
1607 lv_task_status := FAIL;
1608
1609 IF (lv_task_num= TASK_SALES_ORDER1) OR
1610 (lv_task_num= TASK_SALES_ORDER2) OR
1611 (lv_task_num= TASK_SALES_ORDER3) OR
1612 -- (lv_task_num= TASK_SALES_ORDER3) OR
1613 (lv_task_num= TASK_AHL) THEN
1614 lv_lrn:= v_so_lrn;
1615 ELSE
1616 lv_lrn:= v_lrnn;
1617 END IF;
1618
1619 MSC_UTIL.LOG_MSG(MSC_UTIL.G_D_DEBUG_1, 'Executing Task Number '|| TO_CHAR(lv_task_num));
1620
1621 EXECUTE_TASK
1622 ( lv_task_status,
1623 lv_task_num,
1624 pINSTANCE_ID,
1625 lv_lrn,
1626 pREFRESH_ID,
1627 ----- PROFILE OPTION --------------------------------------------------
1628 lv_so_ship_arrive_value,
1629 lv_mps_consume_profile_value,
1630 lv_spread_load,
1631 lv_hour_uom,
1632 lv_lang,
1633 lv_oe_install,
1634 ----- MSC PROFILE OPTION ----------------------------------------------
1635 lv_mso_item_dmd_penalty,
1636 lv_mso_item_cap_penalty,
1637 lv_mso_org_dmd_penalty,
1638 lv_mso_org_item_penalty,
1639 lv_mso_org_res_penalty,
1640 lv_mso_org_trsp_penalty,
1641 lv_msc_aggreg_res_name,
1642 lv_mso_res_penalty,
1643 lv_mso_sup_cap_penalty,
1644 lv_msc_bom_subst_priority,
1645 lv_mso_trsp_penalty,
1646 lv_msc_alt_bom_cost,
1647 lv_mso_fcst_penalty,
1648 lv_mso_so_penalty,
1649 null,
1650 -- lv_msc_alt_op_res,
1651 lv_msc_alt_res_priority,
1652 lv_msc_batchable_flag ,
1653 lv_msc_batching_window ,
1654 lv_msc_min_capacity ,
1655 lv_msc_max_capacity ,
1656 lv_msc_unit_of_measure ,
1657 lv_msc_simul_res_seq,
1658 lv_mrp_bis_av_discount,
1659 lv_mrp_bis_price_list,
1660 lv_msc_dmd_priority_flex_num,
1661 lv_msc_fcst_priority_flex_num,
1662 ----- FLAGS -----------------------------------------------------------
1663 pITEM_ENABLED,
1664 pTP_VENDOR_ENABLED,
1665 pTP_CUSTOMER_ENABLED,
1666 pBOM_ENABLED,
1667 pRESERVES_HARD_ENABLED,
1668 pSOURCING_ENABLED,
1669 pWIP_ENABLED,
1670 pPO_RECEIPTS_ENABLED,
1671 pSafeStock_ENABLED,
1672 pPUR_REQ_PO_ENABLED ,
1673 pITEM_SUBST_ENABLED,
1674 pOH_ENABLED,
1675 pAPPROV_SUPPLIER_CAP_ENABLED,
1676 pUOM_ENABLED,
1677 pMDS_ENABLED,
1678 pFORECAST_ENABLED,
1679 pMPS_ENABLED,
1680 pRESOURCE_NRA_ENABLED,
1681 pSH_ENABLED,
1682 pUSER_COMPANY_ENABLED,
1683 /* CP-ACK change starts */
1684 pSUPPLIER_RESPONSE_ENABLED,
1685 /* CP-ACK change ends */
1686 pTRIP_ENABLED,
1687 prec);
1688
1689
1690 -- =========== Send the executed lv_task_num back to the monitor =======
1691 -- =========== Positive Number means OK, Negative means FAIL ===========
1692
1693 IF lv_task_status <> OK THEN
1694 FND_MESSAGE.SET_NAME('MSC','MSC_CL_EXECUTE_TSK_PROB');
1695 FND_MESSAGE.SET_TOKEN('LV_TASK_NUMBER',lv_task_num);
1696 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, FND_MESSAGE.GET);
1697
1698 DBMS_PIPE.PACK_MESSAGE( -lv_task_num);
1699
1700 ELSE
1701
1702 DBMS_PIPE.PACK_MESSAGE( lv_task_num);
1703 COMMIT;
1704
1705 END IF;
1706
1707 IF DBMS_PIPE.SEND_MESSAGE( v_pipe_wm)<>0 THEN RAISE EX_PIPE_SND;
1708 END IF;
1709
1710 IF lv_task_status <> OK THEN DBMS_LOCK.SLEEP(5);
1711 END IF;
1712
1713 END IF;
1714
1715 END LOOP;
1716
1717 IF lv_task_num = 0 THEN -- NO TASK IS LEFT
1718 COMMIT;
1719
1720 DBMS_PIPE.PACK_MESSAGE( MSC_UTIL.SYS_YES);
1721
1722 IF DBMS_PIPE.SEND_MESSAGE( v_pipe_status)<>0 THEN
1723 RAISE EX_PIPE_SND;
1724 END IF;
1725
1726 FND_MESSAGE.SET_NAME('MSC', 'MSC_DP_SUCCEED');
1727 ERRBUF:= FND_MESSAGE.GET;
1728 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, ERRBUF);
1729
1730 RETCODE := MSC_UTIL.G_SUCCESS;
1731 return;
1732 ELSIF (lv_task_num = START_ODS_LOAD) THEN --- call the ODS Load worker
1733
1734 /* ---------------- agmcont -------------------- */
1735
1736 /* --- call ods load worker --- */
1737
1738 if (pRTYPE = MSC_UTIL.G_CONT) then
1739 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, 'Calling ODS load worker');
1740
1741 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, '****************************************************');
1742 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, 'Planning ODS LOAD Worker is Started.');
1743 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, '****************************************************');
1744
1745
1746 BEGIN
1747 MSC_CL_COLLECTION.LAUNCH_WORKER(
1748 ERRBUF ,
1749 RETCODE ,
1750 pMONITOR_REQUEST_ID ,
1751 pINSTANCE_ID ,
1752 -99, -- last_collection_id
1753 pTIMEOUT ,
1754 MSC_UTIL.SYS_NO, --- Recalc NRA
1755 MSC_UTIL.SYS_NO, -- Recalc sourcing history
1756 MSC_UTIL.SYS_YES, --exchange_mode
1757 MSC_UTIL.SYS_YES );
1758
1759 EXCEPTION
1760 WHEN OTHERS THEN
1761 ROLLBACK;
1762 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_FATAL_ERR, ERRBUF);
1763 END;
1764
1765 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, '****************************************************');
1766 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, 'Planning ODS LOAD Worker is Completed.');
1767 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, '****************************************************');
1768
1769 end if;
1770
1771 /* ---------------- agmcont -------------------- */
1772
1773 ELSE -- Unknown Error
1774 ROLLBACK;
1775
1776 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_FATAL_ERR, 'There is an Unknown error in the Worker.');
1777
1778 DBMS_PIPE.PACK_MESSAGE( MSC_UTIL.SYS_YES);
1779
1780 IF DBMS_PIPE.SEND_MESSAGE( v_pipe_status)<>0 THEN
1781 RAISE EX_PIPE_SND;
1782 END IF;
1783
1784 FND_MESSAGE.SET_NAME('MSC', 'MSC_DP_FAIL');
1785 ERRBUF:= FND_MESSAGE.GET;
1786
1787 RETCODE := MSC_UTIL.G_ERROR;
1788
1789 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_FATAL_ERR, ERRBUF);
1790 END IF;
1791
1792 RETCODE := MSC_UTIL.G_SUCCESS;
1793
1794 EXCEPTION
1795
1796 WHEN others THEN
1797
1798 ROLLBACK; -- ROLLBACK if any exception occurs
1799
1800 FND_MESSAGE.SET_NAME('MSC', 'MSC_DP_FAIL');
1801 ERRBUF:= FND_MESSAGE.GET;
1802 RETCODE := MSC_UTIL.G_ERROR;
1803
1804 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_FATAL_ERR, SQLERRM);
1805
1806 DBMS_PIPE.PACK_MESSAGE( UNRESOLVABLE_ERROR);
1807
1808 IF DBMS_PIPE.SEND_MESSAGE( v_pipe_wm)<>0 THEN
1809
1810 FND_MESSAGE.SET_NAME('MSC', 'MSC_MSG_SEND_FAIL');
1811 FND_MESSAGE.SET_TOKEN('PIPE', v_pipe_wm);
1812 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_FATAL_ERR, FND_MESSAGE.GET);
1813
1814 END IF;
1815
1816 DBMS_PIPE.PACK_MESSAGE( MSC_UTIL.SYS_YES);
1817
1818 IF DBMS_PIPE.SEND_MESSAGE( v_pipe_status)<>0 THEN
1819 FND_MESSAGE.SET_NAME('MSC', 'MSC_MSG_SEND_FAIL');
1820 FND_MESSAGE.SET_TOKEN('PIPE', v_pipe_status);
1821 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_FATAL_ERR, FND_MESSAGE.GET);
1822 END IF;
1823
1824 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_FATAL_ERR, 'Error_Stack...');
1825 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_FATAL_ERR, DBMS_UTILITY.FORMAT_ERROR_STACK );
1826 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_FATAL_ERR, 'Error_Backtrace...' );
1827 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_FATAL_ERR, DBMS_UTILITY.FORMAT_ERROR_BACKTRACE );
1828
1829 END LAUNCH_WORKER;
1830
1831 -- ===============================================================
1832
1833 PROCEDURE LAUNCH_MONITOR(
1834 ERRBUF OUT NOCOPY VARCHAR2,
1835 RETCODE OUT NOCOPY NUMBER,
1836 pINSTANCE_ID IN NUMBER,
1837 pORG_GROUP IN VARCHAR2,
1838 pTotalWorkerNum IN NUMBER,
1839 pTIMEOUT IN NUMBER, -- min
1840 pLANG IN VARCHAR2 ,
1841 pOdsPURGEoption IN NUMBER ,
1842 pRTYPE IN NUMBER ,
1843 pANATBL_ENABLED IN NUMBER ,
1844 pAPPROV_SUPPLIER_CAP_ENABLED IN NUMBER ,
1845 pATP_RULES_ENABLED IN NUMBER ,
1846 pBOM_ENABLED IN NUMBER ,
1847 pBOR_ENABLED IN NUMBER ,
1848 pCALENDAR_ENABLED IN NUMBER ,
1849 pDEMAND_CLASS_ENABLED IN NUMBER ,
1850 pITEM_SUBST_ENABLED IN NUMBER ,
1851 pFORECAST_ENABLED IN NUMBER ,
1852 pITEM_ENABLED IN NUMBER ,
1853 pKPI_BIS_ENABLED IN NUMBER ,
1854 pMDS_ENABLED IN NUMBER ,
1855 pMPS_ENABLED IN NUMBER ,
1856 pOH_ENABLED IN NUMBER ,
1857 pPARAMETER_ENABLED IN NUMBER ,
1858 pPLANNER_ENABLED IN NUMBER ,
1859 pPO_RECEIPTS_ENABLED IN NUMBER ,
1860 pPROJECT_ENABLED IN NUMBER ,
1861 pPUR_REQ_PO_ENABLED IN NUMBER ,
1862 pRESERVES_HARD_ENABLED IN NUMBER ,
1863 pRESOURCE_NRA_ENABLED IN NUMBER ,
1864 pSafeStock_ENABLED IN NUMBER ,
1865 pSalesOrder_RTYPE IN NUMBER ,
1866 pSH_ENABLED IN NUMBER ,
1867 pSOURCING_ENABLED IN NUMBER ,
1868 pSUB_INV_ENABLED IN NUMBER ,
1869 /* CP-ACK change starts */
1870 pSUPPLIER_RESPONSE_ENABLED IN NUMBER ,
1871 /* CP-ACK change ends */
1872 pTP_CUSTOMER_ENABLED IN NUMBER ,
1873 pTP_VENDOR_ENABLED IN NUMBER ,
1874 pTRIP_ENABLED IN NUMBER , -- DRP
1875 pUNIT_NO_ENABLED IN NUMBER ,
1876 pUOM_ENABLED IN NUMBER ,
1877 pUSER_COMPANY_ENABLED IN NUMBER ,
1878 pUSER_SUPPLY_DEMAND IN NUMBER ,
1879 pWIP_ENABLED IN NUMBER ,
1880 pSALES_CHANNEL_ENABLED IN NUMBER ,
1881 pFISCAL_CALENDAR_ENABLED IN NUMBER ,
1882 pINTERNAL_REPAIR_ENABLED IN NUMBER , -- for bug 5909379
1883 pEXTERNAL_REPAIR_ENABLED IN NUMBER ,
1884 pPAYBACK_DEMAND_SUPPLY_ENABLED IN NUMBER ,
1885 pCURRENCY_CONVERSION_ENABLED IN NUMBER, -- for bug 6469722
1886 pDELIVERY_DETAILS_ENABLED IN NUMBER,
1887 pIBUC_HISTORY_ENABLED IN NUMBER,
1888 pNOTES_ATTACH_ENABLED IN NUMBER,
1889 peAM_info IN NUMBER ,
1890 peAM_forecasts IN NUMBER ,
1891 peam_fc_st_date IN VARCHAR2 ,
1892 peam_fc_end_date IN VARCHAR2 ,
1893 pCMRO_enabled IN NUMBER ,
1894 pCMRO_forecasts IN NUMBER ,
1895 pcmro_fc_st_date IN VARCHAR2 ,
1896 pcmro_fc_end_date IN VARCHAR2,
1897 pcmro_closed_wo IN NUMBER,
1898 posp_supply IN NUMBER
1899 )
1900
1901 IS
1902
1903 lc_i PLS_INTEGER;
1904 lc_j PLS_INTEGER;
1905
1906 lv_worker_committed NUMBER;
1907 lv_total_task_number NUMBER;
1908 lv_task_num NUMBER;
1909
1910 lv_task_not_completed NUMBER := 0;
1911
1912 lv_start_time DATE;
1913 lv_process_time NUMBER;
1914
1915 EX_PIPE_RCV EXCEPTION;
1916 EX_PIPE_SND EXCEPTION;
1917 EX_PROCESS_TIME_OUT EXCEPTION;
1918
1919 lv_pipe_ret_code NUMBER;
1920
1921
1922 lv_errbuf VARCHAR2(2048);
1923 lv_sql_stmt VARCHAR2(32767);
1924 lv_retcode NUMBER;
1925
1926 lv_check_point NUMBER := 0;
1927
1928 lvs_request_id NumTblTyp := NumTblTyp(0);
1929
1930 -- lv_instance_type NUMBER;
1931 return_status BOOLEAN;
1932
1933
1934 ----- New variables for PREPLACE ----
1935
1936 lv_param_rec_count NUMBER;
1937 lv_coll_stat NUMBER;
1938 v_current_user NUMBER;
1939 var_debug NUMBER := 0;
1940
1941 prec MSC_UTIL.CollParamREC;
1942
1943
1944 ---- New Variables for a2m_dblinks for the bug fix 2320600 ---
1945
1946 lv_sr_a2m VARCHAR2(128);
1947 lv_sr_m2a VARCHAR2(128);
1948
1949 l_call_status boolean;
1950 l_phase varchar2(80);
1951 l_status varchar2(80);
1952 l_dev_phase varchar2(80);
1953 l_dev_status varchar2(80);
1954 l_message varchar2(1024);
1955 lv_request_id NUMBER;
1956
1957 -- agmcont
1958 lv_bom_sn_flag number := MSC_UTIL.SYS_NO;
1959 lv_bor_sn_flag number := MSC_UTIL.SYS_NO;
1960 lv_item_sn_flag number := MSC_UTIL.SYS_NO;
1961 lv_oh_sn_flag number := MSC_UTIL.SYS_NO;
1962 lv_usup_sn_flag number := MSC_UTIL.SYS_NO;
1963 lv_udmd_sn_flag number := MSC_UTIL.SYS_NO;
1964 lv_so_sn_flag number := MSC_UTIL.SYS_NO;
1965 lv_fcst_sn_flag number := MSC_UTIL.SYS_NO;
1966 lv_wip_sn_flag number := MSC_UTIL.SYS_NO;
1967 lv_supcap_sn_flag number := MSC_UTIL.SYS_NO;
1968 lv_po_sn_flag number := MSC_UTIL.SYS_NO;
1969 lv_mds_sn_flag number := MSC_UTIL.SYS_NO;
1970 /* CP-AUTO */
1971 lv_suprep_sn_flag number := MSC_UTIL.SYS_NO;
1972 lv_mps_sn_flag number := MSC_UTIL.SYS_NO;
1973 lv_nosnap_flag number := MSC_UTIL.SYS_NO;
1974 lv_trip_sn_flag number := MSC_UTIL.SYS_NO; -- DRP
1975 lv_src_time DATE;
1976
1977 lv_so_lrtype number;
1978
1979 lv_last_tgt_cont_coll_time date;
1980
1981 lv_worker_prg VARCHAR2(30);
1982
1983 lv_table_name VARCHAR2(100);
1984
1985 lv_pjm_enabled VARCHAR2(1);
1986
1987 lv_inv_ctp_val NUMBER := NVL(FND_PROFILE.Value('INV_CTP'),0);
1988
1989 BEGIN
1990 v_instance_id := pINSTANCE_ID;
1991 IF fnd_global.conc_request_id > 0 THEN
1992 v_cp_enabled:= MSC_UTIL.SYS_YES;
1993 ELSE
1994 v_cp_enabled:= MSC_UTIL.SYS_NO;
1995 END IF;
1996
1997 -- set the value for v_req_data. Fix for 2351297--
1998 v_req_data := fnd_conc_global.request_data;
1999
2000 -- if Refresh Snapshot was submitted as a sub request,
2001 -- Planning Data Pull should continue only if the sub request
2002 -- completed 'NORMAL' or with a 'WARNING', else the Planning Data
2003 -- Pull should error out as well. ( fix for 2548643)
2004 IF (v_req_data is not null) THEN
2005 lv_request_id:= to_number(v_req_data);
2006 l_call_status:= FND_CONCURRENT.GET_REQUEST_STATUS
2007 ( lv_request_id,
2008 NULL,
2009 NULL,
2010 l_phase,
2011 l_status,
2012 l_dev_phase,
2013 l_dev_status,
2014 l_message);
2015
2016 IF l_call_status=FALSE THEN
2017 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_FATAL_ERR, l_message);
2018 FND_MESSAGE.SET_NAME('MSC', 'MSC_DP_RS_ERROR');
2019 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_FATAL_ERR, FND_MESSAGE.GET );
2020 RETCODE := MSC_UTIL.G_ERROR;
2021 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_FATAL_ERR, ERRBUF);
2022 IF SET_ST_STATUS( lv_errbuf, lv_retcode,
2023 pINSTANCE_ID, MSC_UTIL.G_ST_EMPTY) THEN
2024 COMMIT;
2025 END IF;
2026 RETURN;
2027 END IF;
2028
2029 IF ((l_dev_phase='COMPLETE') AND (l_dev_status IN ('NORMAL','WARNING'))) THEN
2030 -- the Planning Data Pull should continue
2031 null;
2032 ELSE
2033 -- the Planning Data Pull should error out
2034 FND_MESSAGE.SET_NAME('MSC', 'MSC_DP_RS_ERROR');
2035 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_FATAL_ERR, FND_MESSAGE.GET );
2036 RETCODE := MSC_UTIL.G_ERROR;
2037 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_FATAL_ERR, ERRBUF);
2038 IF SET_ST_STATUS( lv_errbuf, lv_retcode,
2039 pINSTANCE_ID, MSC_UTIL.G_ST_EMPTY) THEN
2040 COMMIT;
2041 END IF;
2042 RETURN;
2043 END IF;
2044
2045 END IF;
2046
2047
2048
2049 --- PREPLACE CHANGE START ---
2050 prec.purge_ods_flag := pOdsPURGEoption;
2051 prec.app_supp_cap_flag := pAPPROV_SUPPLIER_CAP_ENABLED;
2052 prec.atp_rules_flag := pATP_RULES_ENABLED;
2053 prec.bom_flag := pBOM_ENABLED;
2054 prec.bor_flag := pBOR_ENABLED;
2055 prec.calendar_flag := pCALENDAR_ENABLED;
2056 prec.demand_class_flag := pDEMAND_CLASS_ENABLED;
2057 prec.forecast_flag := pFORECAST_ENABLED;
2058 prec.item_flag := pITEM_ENABLED;
2059 prec.kpi_bis_flag := CASE WHEN v_apps_ver >= MSC_UTIL.G_APPS122 THEN MSC_UTIL.SYS_NO ELSE pKPI_BIS_ENABLED END;
2060 prec.mds_flag := pMDS_ENABLED;
2061 prec.mps_flag := pMPS_ENABLED;
2062 prec.oh_flag := pOH_ENABLED;
2063 prec.parameter_flag := pPARAMETER_ENABLED;
2064 prec.planner_flag := pPLANNER_ENABLED;
2065 prec.item_subst_flag := pITEM_SUBST_ENABLED;
2066 prec.project_flag := pPROJECT_ENABLED;
2067 prec.po_flag := pPUR_REQ_PO_ENABLED;
2068 prec.reserves_flag := pRESERVES_HARD_ENABLED;
2069 prec.resource_nra_flag := pRESOURCE_NRA_ENABLED;
2070 prec.saf_stock_flag := pSafeStock_ENABLED;
2071 prec.sales_order_flag := pSalesOrder_RTYPE;
2072 prec.source_hist_flag := pSH_ENABLED;
2073 prec.po_receipts_flag := pPO_RECEIPTS_ENABLED;
2074 prec.sourcing_rule_flag := pSOURCING_ENABLED;
2075 prec.sub_inventory_flag := pSUB_INV_ENABLED;
2076 prec.tp_customer_flag := pTP_CUSTOMER_ENABLED;
2077 prec.tp_vendor_flag := pTP_VENDOR_ENABLED;
2078 prec.unit_number_flag := pUNIT_NO_ENABLED;
2079 prec.uom_flag := pUOM_ENABLED;
2080 prec.user_supply_demand_flag := pUSER_SUPPLY_DEMAND;
2081 prec.wip_flag := pWIP_ENABLED;
2082 prec.user_company_flag := pUSER_COMPANY_ENABLED;
2083 /* CP-ACK change starts */
2084 prec.supplier_response_flag := pSUPPLIER_RESPONSE_ENABLED;
2085 /* CP-ACK change starts */
2086 prec.trip_flag := pTRIP_ENABLED; -- DRP
2087 prec.ds_mode := v_DSMode;
2088
2089 prec.org_group_flag := pORG_GROUP;
2090
2091 prec.sales_channel_flag := pSALES_CHANNEL_ENABLED;
2092 prec.fiscal_calendar_flag := pFISCAL_CALENDAR_ENABLED;
2093 prec.internal_repair_flag := pINTERNAL_REPAIR_ENABLED; -- for bug 5909379
2094 prec.external_repair_flag := pEXTERNAL_REPAIR_ENABLED; -- for bug 5935273
2095 prec.payback_demand_supply_flag := pPAYBACK_DEMAND_SUPPLY_ENABLED;
2096 prec.currency_conversion_flag := pCURRENCY_CONVERSION_ENABLED; --bug # 6469722
2097 prec.delivery_details_flag := pDELIVERY_DETAILS_ENABLED; --bug # 6730983
2098 prec.ibuc_history_flag := pIBUC_HISTORY_ENABLED ;
2099 prec.notes_attach_flag := pNOTES_ATTACH_ENABLED ;
2100 /* In case of Trading Partners both supplier and
2101 // and customer information will be loaded together.
2102 // HARD CODED - Vendor and customer CURRENTLY cannot be
2103 // separately refreshed during targeted/partial refreshment.
2104 */
2105 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, 'RRRRRR--Values for peam_fc_st_date ' ||peam_fc_st_date||'-- peam_fc_end_date'||peam_fc_end_date);
2106 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, 'RRRRRR--Values for peam_pcmro_fc_st_date ' ||pcmro_fc_st_date||'-- pcmro_fc_end_date'||pcmro_fc_end_date);
2107
2108 prec.eAM_info_flag := peAM_info ;
2109 prec.eAM_forecasts_flag := peAM_forecasts ;
2110
2111 IF peam_fc_st_date IS NULL THEN
2112 prec.eam_fc_st_date := TRUNC(to_date(1, 'j')) ;
2113 ELSE
2114 prec.eam_fc_st_date := fnd_date.canonical_to_date(peam_fc_st_date);
2115 END IF;
2116
2117 IF peam_fc_end_date IS NULL THEN
2118 prec.eam_fc_end_date := TRUNC(to_date(1, 'j')) ;
2119 ELSE
2120 prec.eam_fc_end_date := fnd_date.canonical_to_date(peam_fc_end_date);
2121 END IF;
2122
2123 prec.cmro_flag := pCMRO_enabled ;
2124 prec.cmro_forecasts_flag := pCMRO_forecasts ;
2125 IF pcmro_fc_st_date IS NULL THEN
2126 prec.cmro_fc_st_date := TRUNC(to_date(1, 'j')) ;
2127 ELSE
2128 prec.cmro_fc_st_date := fnd_date.canonical_to_date(pcmro_fc_st_date);
2129 END IF;
2130
2131 IF pcmro_fc_end_date IS NULL THEN
2132 prec.cmro_fc_end_date := TRUNC(to_date(1, 'j')) ;
2133 ELSE
2134 prec.cmro_fc_end_date := fnd_date.canonical_to_date(pcmro_fc_end_date);
2135 END IF;
2136
2137 prec.cmro_closed_wo := pcmro_closed_wo ;
2138 prec.osp_supply := posp_supply;
2139
2140 IF pTP_VENDOR_ENABLED = MSC_UTIL.SYS_YES THEN
2141 prec.tp_customer_flag := MSC_UTIL.SYS_YES;
2142 ELSIF pTP_CUSTOMER_ENABLED = MSC_UTIL.SYS_YES THEN
2143 prec.tp_vendor_flag := MSC_UTIL.SYS_YES;
2144 END IF;
2145
2146 /* In case of MDS, MPS both need to go together as they are dependent on the same
2147 // snapshot mrp_schedule_dates
2148 */
2149
2150 IF prec.mds_flag = MSC_UTIL.SYS_YES THEN
2151 prec.mps_flag := MSC_UTIL.SYS_YES;
2152 ELSIF prec.mps_flag = MSC_UTIL.SYS_YES THEN
2153 prec.mds_flag := MSC_UTIL.SYS_YES;
2154 END IF;
2155
2156 --Bug 8415844 We set prec.sales_order_flag to Yes in case of net change collection
2157
2158 IF (pRTYPE = MSC_UTIL.G_INCREMENTAL) THEN
2159 prec.sales_order_flag := MSC_UTIL.SYS_YES;
2160 END IF;
2161
2162 --agmcont
2163 /* select the instance_type and database link */
2164 BEGIN
2165 SELECT DECODE( M2A_DBLINK,
2166 NULL, NULL_DBLINK,
2167 '@'||M2A_DBLINK),
2168 DECODE( A2M_DBLINK,
2169 NULL, NULL_DBLINK,
2170 A2M_DBLINK),
2171 INSTANCE_TYPE,
2172 APPS_VER,
2173 LAST_TGT_CONT_COLL_TIME,
2174 INSTANCE_CODE
2175 INTO v_dblink,
2176 v_dest_a2m, -- bug fix for 2320600
2177 v_instance_type,
2178 v_apps_ver,
2179 lv_last_tgt_cont_coll_time,
2180 v_instance_code
2181 FROM MSC_APPS_INSTANCES
2182 WHERE INSTANCE_ID= pINSTANCE_ID;
2183
2184 IF (v_apps_ver = MSC_UTIL.G_APPS120) THEN --bug#5684183 (bcaru)
2185 prec.payback_demand_supply_flag := MSC_UTIL.SYS_NO;
2186 --prec.currency_conversion_flag := MSC_UTIL.SYS_NO;
2187 --prec.delivery_details_flag := MSC_UTIL.SYS_NO;
2188 prec.ibuc_history_flag := MSC_UTIL.SYS_NO;
2189 prec.notes_attach_flag := MSC_UTIL.SYS_NO;
2190 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, 'Entity borrow payback is not supported for this source version');
2191 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, 'Entity IBUC coll is not supported for this source version');
2192 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, 'Entity Notes (Attachments) coll is not supported for this source version');
2193 If pITEM_SUBST_ENABLED = MSC_UTIL.SYS_YES and pRTYPE = MSC_UTIL.G_INCREMENTAL Then
2194 prec.item_subst_flag := MSC_UTIL.SYS_NO;
2195 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, 'Netchange of Item substitutes is not supported for this source version');
2196 end if;
2197
2198 END IF;
2199
2200 /*If the source version is 11510, PO receipts is not supported*/
2201 IF (v_apps_ver < MSC_UTIL.G_APPS120) THEN --bug#5684183 (bcaru)
2202 prec.po_receipts_flag := MSC_UTIL.SYS_NO;
2203 prec.internal_repair_flag := MSC_UTIL.SYS_NO;
2204 prec.external_repair_flag := MSC_UTIL.SYS_NO;
2205 --prec.payback_demand_supply_flag := MSC_UTIL.SYS_NO;
2206 --prec.currency_conversion_flag := MSC_UTIL.SYS_NO;
2207 prec.delivery_details_flag := MSC_UTIL.SYS_NO;
2208 prec.ibuc_history_flag := MSC_UTIL.SYS_NO;
2209 prec.notes_attach_flag := MSC_UTIL.SYS_NO;
2210 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, 'Entity IBUC coll is not supported for this version ');
2211 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, 'Entity Notes (Attachments) coll is not supported for this source version');
2212 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, 'Entities po_receipts, IRO,ERO are not supported for this source version');
2213 If pITEM_SUBST_ENABLED = MSC_UTIL.SYS_YES and pRTYPE = MSC_UTIL.G_INCREMENTAL Then
2214 prec.item_subst_flag := MSC_UTIL.SYS_NO;
2215 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, 'Netchange of Item substitutes is not supported for this source version');
2216 end if;
2217
2218 END IF;
2219
2220 /* IBUC*/
2221
2222 IF ( MSC_UTIL.G_COLLECT_SRP_PH2_ENABLE = 'N' AND prec.ibuc_history_flag = MSC_UTIL.SYS_YES ) THEN
2223 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, 'Value of the Profile MSC:SRP PHASE2 ENABLED ' ||MSC_UTIL.G_COLLECT_SRP_PH2_ENABLE );
2224 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, 'Entity IBUC will be collected only if the profile MSC:SRP PHASE2 ENABLED is set to Y');
2225 prec.ibuc_history_flag := MSC_UTIL.SYS_NO ;
2226 ELSIF ( MSC_UTIL.G_COLLECT_SRP_PH2_ENABLE = 'N' AND prec.notes_attach_flag = MSC_UTIL.SYS_YES ) THEN
2227 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, 'Value of the Profile MSC:SRP PHASE2 ENABLED ' ||MSC_UTIL.G_COLLECT_SRP_PH2_ENABLE );
2228 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, 'Entity Notes(Attachments) will be collected only if the profile MSC:SRP PHASE2 ENABLED is set to Y');
2229 prec.notes_attach_flag := MSC_UTIL.SYS_NO ;
2230 END IF;
2231
2232 /* USAF -- rgurugub */
2233 IF ((v_apps_ver < MSC_UTIL.G_EAM_CMRO_SUP_VER OR MSC_UTIL.G_CMRO_EAM_INT_ENABLED = 'N' ) AND prec.eAM_info_flag = MSC_UTIL.SYS_YES) Then
2234 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, 'Value of the Profile MSC:IS_CMRO_EAM_INTG_ENABLED ' ||MSC_UTIL.G_CMRO_EAM_INT_ENABLED );
2235 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, 'Entity EAM Info will be collected only if the profile MSC:IS_CMRO_EAM_INTG_ENABLED is set to Y');
2236 prec.eAM_info_flag := MSC_UTIL.SYS_NO ;
2237 ELSIF ((v_apps_ver < MSC_UTIL.G_EAM_CMRO_SUP_VER OR MSC_UTIL.G_CMRO_EAM_INT_ENABLED = 'N' ) AND prec.eAM_forecasts_flag = MSC_UTIL.SYS_YES) Then
2238 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, 'Value of the Profile MSC:IS_CMRO_EAM_INTG_ENABLED ' ||MSC_UTIL.G_CMRO_EAM_INT_ENABLED );
2239 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, 'Entity EAM Forecats will be collected only if the profile MSC:IS_CMRO_EAM_INTG_ENABLED is set to Y');
2240 prec.eAM_forecasts_flag := MSC_UTIL.SYS_NO ;
2241 prec.eam_fc_st_date := NULL ;
2242 prec.eam_fc_end_date := NULL ;
2243 end if ;
2244 IF ((v_apps_ver < MSC_UTIL.G_EAM_CMRO_SUP_VER OR MSC_UTIL.G_CMRO_EAM_INT_ENABLED = 'N' ) AND prec.cmro_flag = MSC_UTIL.SYS_YES) Then
2245 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, 'Value of the Profile MSC:IS_CMRO_EAM_INTG_ENABLED ' ||MSC_UTIL.G_CMRO_EAM_INT_ENABLED );
2246 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, 'Entity CMRO Info will be collected only if the profile MSC:IS_CMRO_EAM_INTG_ENABLED is set to Y');
2247 prec.cmro_flag := MSC_UTIL.SYS_NO ;
2248 ELSIF ((v_apps_ver < MSC_UTIL.G_EAM_CMRO_SUP_VER OR MSC_UTIL.G_CMRO_EAM_INT_ENABLED = 'N' ) AND prec.eAM_forecasts_flag = MSC_UTIL.SYS_YES) Then
2249 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, 'Value of the Profile MSC:IS_CMRO_EAM_INTG_ENABLED ' ||MSC_UTIL.G_CMRO_EAM_INT_ENABLED );
2250 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, 'Entity CMRO Forecats will be collected only if the profile MSC:IS_CMRO_EAM_INTG_ENABLED is set to Y');
2251 prec.cmro_forecasts_flag := MSC_UTIL.SYS_NO ;
2252 prec.cmro_fc_st_date := NULL ;
2253 prec.cmro_fc_end_date := NULL ;
2254 end if ;
2255 /* USAF -- rgurugub */
2256
2257 IF ((v_apps_ver < MSC_UTIL.G_EAM_CMRO_SUP_VER OR MSC_UTIL.G_CMRO_EAM_INT_ENABLED = 'N' ) AND prec.cmro_closed_wo = MSC_UTIL.SYS_YES) Then
2258 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, 'Value of the Profile MSC:IS_CMRO_EAM_INTG_ENABLED ' ||MSC_UTIL.G_CMRO_EAM_INT_ENABLED );
2259 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, 'Entity CMRO Closed WOs will be collected only if the profile MSC:IS_CMRO_EAM_INTG_ENABLED is set to Y');
2260 prec.cmro_closed_wo := MSC_UTIL.SYS_NO ;
2261 END IF;
2262
2263 IF ((v_apps_ver < MSC_UTIL.G_EAM_CMRO_SUP_VER OR MSC_UTIL.G_CMRO_EAM_INT_ENABLED = 'N' ) AND prec.osp_supply = MSC_UTIL.SYS_YES) Then
2264 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, 'Value of the Profile MSC:IS_CMRO_EAM_INTG_ENABLED ' ||MSC_UTIL.G_CMRO_EAM_INT_ENABLED );
2265 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, 'Entity CMRO OSP Supplies will be collected only if the profile MSC:IS_CMRO_EAM_INTG_ENABLED is set to Y');
2266 prec.osp_supply := MSC_UTIL.SYS_NO ;
2267 END IF;
2268
2269 If pRTYPE = MSC_UTIL.G_COMPLETE Then
2270 IF v_apps_ver >= MSC_UTIL.G_APPS115 Then
2271 lv_sql_stmt:= 'update msc_apps_instances set LBJ_DETAILS = (select decode(to_number(FND_PROFILE.VALUE' || v_dblink || '(''WSM_CREATE_LBJ_COPY_ROUTING'')),1,1,2) from dual' || ' ) '
2272 || ' where instance_id = ' || pINSTANCE_ID ;
2273 ELSE
2274 lv_sql_stmt:= 'update msc_apps_instances set LBJ_DETAILS = 2 '
2275 || ' where instance_id = ' || pINSTANCE_ID ;
2276 END IF;
2277
2278 EXECUTE IMMEDIATE lv_sql_stmt;
2279
2280 commit;
2281 END If;
2282
2283
2284 --bug#6126924 (bcaru)
2285 UPDATE msc_coll_parameters
2286 SET COLLECTIONS_START_TIME = sysdate
2287 WHERE INSTANCE_ID = pINSTANCE_ID;
2288
2289
2290 -- To Check if the refresh type is partial(ie Targetted)
2291 -- the a2m_dblink on the destination should be in sync with
2292 -- the a2m_dblink on the source side.
2293 IF pRTYPE = MSC_UTIL.G_PARTIAL THEN
2294
2295 IF v_apps_ver >= MSC_UTIL.G_APPS115 THEN
2296 lv_table_name := 'MRP_AP_APPS_INSTANCES_ALL';
2297 ELSE
2298 lv_table_name := 'MRP_AP_APPS_INSTANCES';
2299 END IF;
2300
2301 v_sql_stmt:=
2302 'SELECT DECODE( mar.A2M_DBLINK,NULL,'''||NULL_DBLINK||''',mar.A2M_DBLINK),'
2303 ||' DECODE( mar.M2A_DBLINK,NULL,'''||NULL_DBLINK||''',''@''||mar.M2A_DBLINK)'
2304 ||' FROM '||lv_table_name||v_dblink||' mar'
2305 ||' WHERE mar.INSTANCE_ID = '||pINSTANCE_ID
2306 ||' AND mar.INSTANCE_CODE = '''||v_instance_code||''''
2307 ||' AND nvl(mar.A2M_DBLINK,'''||NULL_DBLINK||''') = '''||v_dest_a2m||'''';
2308
2309 EXECUTE IMMEDIATE v_sql_stmt INTO lv_sr_a2m,lv_sr_m2a ;
2310
2311
2312 -- If a2m_dblink or m2a_dblink on the source and destination
2313 -- are out of synchronization - error out.
2314 IF(( lv_sr_a2m <> v_dest_a2m) OR (lv_sr_m2a <> v_dblink)) THEN
2315
2316 RETCODE := MSC_UTIL.G_ERROR;
2317 FND_MESSAGE.SET_NAME('MSC', 'MSC_COLL_A2MDBLINK_INVALID');
2318 ERRBUF:= FND_MESSAGE.GET;
2319 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_FATAL_ERR, ERRBUF);
2320 RETURN;
2321 END IF;
2322
2323
2324 END IF;
2325
2326 EXCEPTION
2327 WHEN NO_DATA_FOUND THEN
2328
2329 RETCODE := MSC_UTIL.G_ERROR;
2330 FND_MESSAGE.SET_NAME('MSC', 'MSC_DP_INVALID_INSTANCE_ID');
2331 FND_MESSAGE.SET_TOKEN('INSTANCE_ID', pINSTANCE_ID);
2332 ERRBUF:= FND_MESSAGE.GET;
2333 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_FATAL_ERR, ERRBUF);
2334 RETURN;
2335 WHEN OTHERS THEN
2336
2337 RETCODE := MSC_UTIL.G_ERROR;
2338 ERRBUF := SQLERRM;
2339 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_FATAL_ERR, ERRBUF);
2340 RETURN;
2341 END;
2342
2343
2344 SELECT FND_GLOBAL.USER_ID
2345 INTO v_current_user
2346 FROM MSC_APPS_INSTANCES
2347 WHERE INSTANCE_ID= pINSTANCE_ID;
2348
2349 -- To be called only at the first run.
2350 IF (v_req_data is null) THEN -- for the fix 2351297
2351
2352 BEGIN
2353 v_sql_stmt:=
2354 'SELECT PJM_UNIT_EFF.ENABLED'||v_dblink || ' FROM DUAL';
2355
2356 EXECUTE IMMEDIATE v_sql_stmt
2357 INTO lv_pjm_enabled;
2358 EXCEPTION
2359 WHEN OTHERS THEN
2360 lv_pjm_enabled := NULL;
2361 END;
2362
2363 UPDATE msc_apps_instances
2364 SET lrtype = DECODE ( pRTYPE, MSC_UTIL.G_COMPLETE, 'C',
2365 MSC_UTIL.G_INCREMENTAL, 'I',
2366 MSC_UTIL.G_PARTIAL, 'P',
2367 MSC_UTIL.G_CONT, 'T'),
2368 pjm_enabled = lv_pjm_enabled
2369 WHERE instance_id = pINSTANCE_ID;
2370
2371 -- Indicate the data pull type in MSC_APPS_INSTANCES
2372
2373 SELECT count(*)
2374 INTO lv_param_rec_count
2375 FROM msc_coll_parameters
2376 WHERE instance_id = pINSTANCE_ID;
2377
2378
2379 IF lv_param_rec_count = 0 THEN
2380
2381 -- Initialize session information if no records
2382 -- found for the particular source_instance.
2383 --agmcont
2384
2385 INSERT INTO msc_coll_parameters
2386 (INSTANCE_ID,org_group,threshold, delete_ods_data, supplier_capacity, atp_rules,
2387 bom, bor, calendar_check, demand_class, forecast, item,
2388 kpi_targets_bis, mds, mps, oh, parameter, planners,
2389 item_substitutes, projects, po, reservations, nra, safety_stock,
2390 sales_order, sourcing_history, sourcing, sub_inventories,
2391 customer, supplier, unit_numbers, uom, user_supply_demand, wip, user_comp_association,trip ,po_receipts,
2392 supplier_response,sales_channel,fiscal_calendar,internal_repair,external_repair,LAST_UPDATE_DATE, LAST_UPDATED_BY, CREATION_DATE, CREATED_BY, -- for bug 5909379
2393 ds_mode, payback_demand_supply, currency_conversion,delivery_details,ibuc_history,notes_attach, -- bug # 6469722
2394 eAM_info, eAM_forecasts, eam_fc_st_date, eam_fc_end_date, cmro, cmro_forecasts, cmro_fc_st_date, cmro_fc_end_date,cmro_closed_wo,
2395 osp_supply)
2396 VALUES (pINSTANCE_ID,prec.org_group_flag,v_cont_coll_thresh, prec.purge_ods_flag, prec.app_supp_cap_flag,
2397 prec.atp_rules_flag, prec.bom_flag,
2398 prec.bor_flag, prec.calendar_flag,
2399 prec.demand_class_flag, prec.forecast_flag,
2400 prec.item_flag, decode(v_apps_ver, MSC_UTIL.G_APPS122, MSC_UTIL.SYS_NO, prec.kpi_bis_flag),
2401 prec.mds_flag, prec.mps_flag,
2402 prec.oh_flag, prec.parameter_flag,
2403 prec.planner_flag,prec.item_subst_flag, prec.project_flag,
2404 prec.po_flag, prec.reserves_flag,
2405 prec.resource_nra_flag, prec.saf_stock_flag,
2406 prec.sales_order_flag, prec.source_hist_flag,
2407 prec.sourcing_rule_flag, prec.sub_inventory_flag,
2408 prec.tp_customer_flag, prec.tp_vendor_flag,
2409 prec.unit_number_flag, prec.uom_flag,
2410 prec.user_supply_demand_flag, prec.wip_flag, prec.user_company_flag,prec.trip_flag, -- DRP
2411 prec.po_receipts_flag, prec.supplier_response_flag,prec.sales_channel_flag,prec.fiscal_calendar_flag,prec.internal_repair_flag,prec.external_repair_flag, sysdate, v_current_user, sysdate, v_current_user,
2412 prec.ds_mode,
2413 prec.payback_demand_supply_flag, prec.currency_conversion_flag, --bug # 6469722
2414 prec.delivery_details_flag,prec.ibuc_history_flag,prec.notes_attach_flag ,
2415 prec.eAM_info_flag, prec.eAM_forecasts_flag, prec.eam_fc_st_date, prec.eam_fc_end_date,
2416 prec.cmro_flag, prec.cmro_forecasts_flag, prec.cmro_fc_st_date, prec.cmro_fc_end_date,prec.cmro_closed_wo,
2417 prec.osp_supply );
2418 -- for bug 5909379
2419 ELSE
2420
2421 SELECT st_status
2422 INTO lv_coll_stat
2423 FROM msc_apps_instances
2424 WHERE instance_id = pINSTANCE_ID;
2425
2426 IF lv_coll_stat = MSC_UTIL.G_ST_EMPTY THEN
2427
2428 DELETE FROM msc_coll_parameters
2429 WHERE instance_id = pINSTANCE_ID;
2430
2431 -- If collection status is NOT in progress then
2432 -- delete old collection session info and insert
2433 -- new collection session info.
2434
2435 INSERT INTO msc_coll_parameters
2436 (INSTANCE_ID,org_group,threshold, delete_ods_data, supplier_capacity, atp_rules,
2437 bom, bor, calendar_check, demand_class, forecast, item,
2438 kpi_targets_bis, mds, mps, oh, parameter, planners,
2439 item_substitutes,projects, po, reservations, nra,
2440 safety_stock, sales_order, sourcing_history, sourcing,
2441 sub_inventories, customer, supplier, unit_numbers,
2442 uom, user_supply_demand, wip, user_comp_association,trip,po_receipts,supplier_response,
2443 sales_channel,fiscal_calendar,internal_repair , external_repair , -- for bug 5909379
2444 LAST_UPDATE_DATE,LAST_UPDATED_BY, CREATION_DATE, CREATED_BY,
2445 ds_mode,
2446 payback_demand_supply, currency_conversion,delivery_details,ibuc_history,notes_attach, -- bug # 6469722
2447 eAM_info, eAM_forecasts, eam_fc_st_date, eam_fc_end_date, cmro, cmro_forecasts, cmro_fc_st_date, cmro_fc_end_date,
2448 cmro_closed_wo,osp_supply )
2449 VALUES (pINSTANCE_ID,prec.org_group_flag,v_cont_coll_thresh, prec.purge_ods_flag,
2450 prec.app_supp_cap_flag, prec.atp_rules_flag,
2451 prec.bom_flag, prec.bor_flag, prec.calendar_flag,
2452 prec.demand_class_flag, prec.forecast_flag,
2453 prec.item_flag, decode(v_apps_ver, MSC_UTIL.G_APPS122, MSC_UTIL.SYS_NO,prec.kpi_bis_flag ),
2454 prec.mds_flag, prec.mps_flag,
2455 prec.oh_flag, prec.parameter_flag,
2456 prec.planner_flag,prec.item_subst_flag, prec.project_flag,
2457 prec.po_flag, prec.reserves_flag,
2458 prec.resource_nra_flag, prec.saf_stock_flag,
2459 prec.sales_order_flag, prec.source_hist_flag,
2460 prec.sourcing_rule_flag, prec.sub_inventory_flag,
2461 prec.tp_customer_flag, prec.tp_vendor_flag,
2462 prec.unit_number_flag, prec.uom_flag,
2463 prec.user_supply_demand_flag, prec.wip_flag, prec.user_company_flag,prec.trip_flag, -- DRP
2464 prec.po_receipts_flag, prec.supplier_response_flag,
2465 prec.sales_channel_flag,prec.fiscal_calendar_flag,prec.internal_repair_flag,prec.external_repair_flag, -- for bug 5909379
2466 sysdate, v_current_user, sysdate, v_current_user,
2467 prec.ds_mode,
2468 prec.payback_demand_supply_flag,prec.currency_conversion_flag,--bug # 6469722
2469 prec.delivery_details_flag,prec.ibuc_history_flag,prec.notes_attach_flag ,
2470 prec.eAM_info_flag, prec.eAM_forecasts_flag, prec.eam_fc_st_date, prec.eam_fc_end_date,
2471 prec.cmro_flag, prec.cmro_forecasts_flag, prec.cmro_fc_st_date, prec.cmro_fc_end_date,prec.cmro_closed_wo,
2472 prec.osp_supply);
2473
2474 -- ELSE EXIT WITH ERROR ????
2475
2476 END IF;
2477
2478 END IF;
2479
2480 END IF; -- End of IF (v_req_data is null)
2481
2482 msc_util.print_pull_params(pINSTANCE_ID);
2483
2484 --- PREPLACE CHANGE END ---
2485
2486 /* check if this procedure is launched as a concurrent program */
2487 -- IF fnd_global.conc_request_id > 0 THEN
2488 -- v_cp_enabled:= MSC_UTIL.SYS_YES;
2489 -- ELSE
2490 -- v_cp_enabled:= MSC_UTIL.SYS_NO;
2491 -- END IF;
2492
2493 /* select the instance_type and database link */
2494 /* --agmcont: move code below above, since we need dblink earlier
2495 BEGIN
2496 SELECT DECODE( M2A_DBLINK,
2497 NULL, NULL_DBLINK,
2498 '@'||M2A_DBLINK),
2499 DECODE( A2M_DBLINK,
2500 NULL, NULL_DBLINK,
2501 A2M_DBLINK),
2502 INSTANCE_TYPE
2503 INTO v_dblink,
2504 lv_dest_a2m, -- bug fix for 2320600
2505 v_instance_type
2506 FROM MSC_APPS_INSTANCES
2507 WHERE INSTANCE_ID= pINSTANCE_ID;
2508
2509 -- To Check if the refresh type is partial(ie Targetted)
2510 -- the a2m_dblink on the destination should be in sync with
2511 -- the a2m_dblink on the source side.
2512 IF pRTYPE = MSC_UTIL.G_PARTIAL THEN
2513 v_sql_stmt:=
2514 'SELECT DECODE( mar.A2M_DBLINK,NULL,'''||NULL_DBLINK||''',mar.A2M_DBLINK),'
2515 ||' DECODE( mar.M2A_DBLINK,NULL,'''||NULL_DBLINK||''',''@''||mar.M2A_DBLINK)'
2516 ||' FROM MRP_AP_APPS_INSTANCES'||v_dblink||' mar';
2517
2518 EXECUTE IMMEDIATE v_sql_stmt INTO lv_sr_a2m,lv_sr_m2a;
2519
2520 -- If a2m_dblink or m2a_dblink on the source and destination
2521 -- are out of synchronization - error out.
2522 IF(( lv_sr_a2m <> lv_dest_a2m) OR (lv_sr_m2a <> v_dblink)) THEN
2523
2524 RETCODE := MSC_UTIL.G_ERROR;
2525 FND_MESSAGE.SET_NAME('MSC', 'MSC_COLL_A2MDBLINK_INVALID');
2526 ERRBUF:= FND_MESSAGE.GET;
2527 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_FATAL_ERR, ERRBUF);
2528 RETURN;
2529 END IF;
2530
2531 END IF;
2532
2533 EXCEPTION
2534 WHEN NO_DATA_FOUND THEN
2535 RETCODE := MSC_UTIL.G_ERROR;
2536 FND_MESSAGE.SET_NAME('MSC', 'MSC_DP_INVALID_INSTANCE_ID');
2537 FND_MESSAGE.SET_TOKEN('INSTANCE_ID', pINSTANCE_ID);
2538 ERRBUF:= FND_MESSAGE.GET;
2539 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_FATAL_ERR, ERRBUF);
2540 RETURN;
2541 WHEN OTHERS THEN
2542 RETCODE := MSC_UTIL.G_ERROR;
2543 ERRBUF := SQLERRM;
2544 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_FATAL_ERR, ERRBUF);
2545 RETURN;
2546
2547 END;
2548 */
2549
2550
2551 -- to initialize common global variables bug#5897346
2552 MSC_UTIL.INITIALIZE_COMMON_GLOBALS(pINSTANCE_ID);
2553
2554 INITIALIZE_PULL_GLOBALS( pINSTANCE_ID); -- Initializes Level 2 Global Variables used in Data Pull
2555
2556
2557 DBMS_PIPE.PURGE( v_pipe_task_que);
2558 DBMS_PIPE.PURGE( v_pipe_wm);
2559 DBMS_PIPE.PURGE( v_pipe_mw);
2560 DBMS_PIPE.PURGE( v_pipe_status);
2561
2562
2563 -- To be called only at the first run.
2564 IF (v_req_data is null) THEN -- for the fix 2351297
2565
2566 /* set the status of the staging table to PULLING */
2567 lv_check_point:= 1;
2568
2569 IF SET_ST_STATUS( lv_errbuf,
2570 lv_retcode,
2571 pINSTANCE_ID,
2572 MSC_UTIL.G_ST_PULLING,
2573 pSalesOrder_RTYPE) THEN
2574
2575 COMMIT;
2576
2577 lv_check_point:= 2;
2578
2579 ELSE
2580
2581 ROLLBACK;
2582
2583 ERRBUF := lv_errbuf;
2584 RETCODE := lv_retcode;
2585
2586 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_FATAL_ERR, ERRBUF);
2587
2588 RETURN;
2589
2590 END IF;
2591
2592 ELSE
2593
2594 lv_check_point := 2; -- for the second run, lv_check_point would be 2.
2595
2596 END IF; -- if v_req_data is null --
2597
2598 MSC_UTIL.LOG_MSG(MSC_UTIL.G_D_DEBUG_1, ' before calling REFRESH_SNAPSHOT 1 ');
2599 -- Code fix for 2351297--
2600 IF v_cp_enabled= MSC_UTIL.SYS_YES THEN
2601 IF v_req_data is NULL THEN -- i.e. the first run of the program.
2602
2603 IF REFRESH_SNAPSHOT( pINSTANCE_ID,pRTYPE)=FALSE THEN
2604
2605 RETCODE:= MSC_UTIL.G_ERROR;
2606
2607 IF SET_ST_STATUS( lv_errbuf,
2608 lv_retcode,
2609 pINSTANCE_ID,
2610 MSC_UTIL.G_ST_EMPTY) THEN
2611 COMMIT;
2612 END IF;
2613
2614 IF lv_check_point =2 THEN
2615 UPDATE MSC_APPS_INSTANCES
2616 SET SO_TBL_STATUS = decode(pSalesOrder_RTYPE,MSC_UTIL.SYS_YES
2617 ,decode(pRTYPE,MSC_UTIL.G_COMPLETE,decode(lv_inv_ctp_val,5,MSC_UTIL.SYS_YES,SO_TBL_STATUS),MSC_UTIL.G_PARTIAL,decode(lv_inv_ctp_val,5,MSC_UTIL.SYS_YES,SO_TBL_STATUS),SO_TBL_STATUS),
2618 SO_TBL_STATUS)
2619 WHERE INSTANCE_ID= pINSTANCE_ID;
2620 COMMIT;
2621 END IF;
2622
2623 RETURN;
2624
2625 END IF; -- IF REFRESH_SNAPSHOT
2626
2627 -- If its a single instance set up, the program should exit as the request is PAUSED.
2628 IF(v_dblink=NULL_DBLINK) THEN
2629 RETURN;
2630 END IF;
2631
2632 END IF; -- IF v_req_data is NULL
2633
2634 END IF;
2635
2636
2637 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, ' after calling REFRESH_SNAPSHOT ');
2638 /* get the refresh number used in the last refresh snapshot process*/
2639
2640 IF v_apps_ver >= MSC_UTIL.G_APPS115 THEN
2641
2642 lv_table_name := 'MRP_AP_APPS_INSTANCES_ALL';
2643
2644 v_sql_stmt:=
2645 'SELECT mar.LRN, mar.validation_org_id'
2646 ||' FROM '||lv_table_name||v_dblink||' mar'
2647 ||' WHERE mar.INSTANCE_ID = ' ||pINSTANCE_ID
2648 ||' AND mar.INSTANCE_CODE = '''||v_instance_code||''''
2649 ||' AND nvl(mar.A2M_DBLINK, '''||NULL_DBLINK||''' ) = '''||v_dest_a2m||'''';
2650
2651 EXECUTE IMMEDIATE v_sql_stmt INTO v_crn, v_validation_org_id;
2652
2653 UPDATE MSC_APPS_INSTANCES
2654 SET VALIDATION_ORG_ID = v_validation_org_id
2655 WHERE INSTANCE_ID = pINSTANCE_ID;
2656
2657 ELSE
2658
2659 lv_table_name := 'MRP_AP_APPS_INSTANCES';
2660
2661 v_sql_stmt:=
2662 'SELECT mar.LRN '
2663 ||' FROM '||lv_table_name||v_dblink||' mar'
2664 ||' WHERE mar.INSTANCE_ID = ' ||pINSTANCE_ID
2665 ||' AND mar.INSTANCE_CODE = '''||v_instance_code||''''
2666 ||' AND nvl(mar.A2M_DBLINK, '''||NULL_DBLINK||''' ) = '''||v_dest_a2m||'''';
2667
2668 EXECUTE IMMEDIATE v_sql_stmt INTO v_crn ;
2669
2670 END IF;
2671
2672 -- agmcont
2673
2674 if (v_is_cont_refresh = MSC_UTIL.SYS_YES) then
2675 -- determine w hat mode each entity should be refreshed in
2676
2677 MSC_CL_CONT_COLL_FW.INIT_ENTITY_REFRESH_TYPE (v_cont_coll_thresh,
2678 v_cont_coll_freq,
2679 lv_last_tgt_cont_coll_time,
2680 v_dblink,
2681 pINSTANCE_ID,
2682 prec,
2683 pORG_GROUP,
2684 lv_bom_sn_flag,
2685 lv_bor_sn_flag,
2686 lv_item_sn_flag,
2687 lv_oh_sn_flag,
2688 lv_usup_sn_flag,
2689 lv_udmd_sn_flag,
2690 lv_so_sn_flag,
2691 lv_fcst_sn_flag,
2692 lv_wip_sn_flag,
2693 lv_supcap_sn_flag,
2694 lv_po_sn_flag,
2695 lv_mds_sn_flag,
2696 lv_mps_sn_flag,
2697 lv_nosnap_flag,
2698 /* CP-AUTO */
2699 lv_suprep_sn_flag,
2700 lv_trip_sn_flag );-- DRP
2701
2702 /* The following will finally determine based on user settings whether the entity really needs
2703 to be refreshed and this will be inserted into msc_coll_parameters*/
2704 IF (prec.bom_flag = MSC_UTIL.SYS_YES) THEN
2705 prec.bom_sn_flag := lv_bom_sn_flag;
2706 ELSE
2707 prec.bom_sn_flag := MSC_UTIL.SYS_NO;
2708 END IF;
2709 IF (prec.bor_flag = MSC_UTIL.SYS_YES) THEN
2710 prec.bor_sn_flag := lv_bor_sn_flag;
2711 ELSE
2712 prec.bor_sn_flag := MSC_UTIL.SYS_NO;
2713 END IF;
2714 IF (prec.item_flag = MSC_UTIL.SYS_YES) THEN
2715 prec.item_sn_flag := lv_item_sn_flag;
2716 ELSE
2717 prec.item_sn_flag := MSC_UTIL.SYS_NO;
2718 END IF;
2719 IF (prec.oh_flag = MSC_UTIL.SYS_YES) THEN
2720 prec.oh_sn_flag := lv_oh_sn_flag;
2721 ELSE
2722 prec.oh_sn_flag := MSC_UTIL.SYS_NO;
2723 END IF;
2724 IF (prec.user_supply_demand_flag = MSC_UTIL.SYS_YES) THEN
2725 prec.usup_sn_flag := lv_usup_sn_flag;
2726 prec.udmd_sn_flag := lv_udmd_sn_flag;
2727 ELSE
2728 prec.usup_sn_flag := MSC_UTIL.SYS_NO;
2729 prec.udmd_sn_flag := MSC_UTIL.SYS_NO;
2730 END IF;
2731
2732 /* Sales Orders will always be collected in continous*/
2733 -- above is no longer true . ds change
2734
2735 IF (prec.sales_order_flag = MSC_UTIL.SYS_YES) THEN
2736 prec.so_sn_flag := lv_so_sn_flag;
2737 ELSE
2738 prec.so_sn_flag := MSC_UTIL.SYS_NO;
2739 END IF;
2740
2741 IF (prec.forecast_flag = MSC_UTIL.SYS_YES) THEN
2742 prec.fcst_sn_flag := lv_fcst_sn_flag;
2743 ELSE
2744 prec.fcst_sn_flag := MSC_UTIL.SYS_NO;
2745 END IF;
2746 IF (prec.wip_flag = MSC_UTIL.SYS_YES) THEN
2747 prec.wip_sn_flag := lv_wip_sn_flag;
2748 ELSE
2749 prec.wip_sn_flag := MSC_UTIL.SYS_NO;
2750 END IF;
2751 IF (prec.app_supp_cap_flag = MSC_UTIL.SYS_YES or prec.app_supp_cap_flag =MSC_UTIL.ASL_YES_RETAIN_CP ) THEN
2752 prec.supcap_sn_flag := lv_supcap_sn_flag;
2753 ELSE
2754 prec.supcap_sn_flag := MSC_UTIL.SYS_NO;
2755 END IF;
2756 IF (prec.po_flag = MSC_UTIL.SYS_YES) THEN
2757 prec.po_sn_flag := lv_po_sn_flag;
2758 ELSE
2759 prec.po_sn_flag := MSC_UTIL.SYS_NO;
2760 END IF;
2761
2762 IF (prec.trip_flag = MSC_UTIL.SYS_YES) THEN
2763 prec.trip_sn_flag := lv_trip_sn_flag;
2764 ELSE
2765 prec.trip_sn_flag := MSC_UTIL.SYS_NO;
2766 END IF;
2767
2768 prec.nosnap_flag := lv_nosnap_flag;
2769
2770 /* CP-AUTO */
2771 prec.suprep_sn_flag := lv_suprep_sn_flag;
2772 /* MPS and MDS need to go hand in hand because they are based on same snapshot*/
2773 IF (prec.mds_flag = MSC_UTIL.SYS_YES) or (prec.mps_flag = MSC_UTIL.SYS_YES) THEN
2774 prec.mds_flag := MSC_UTIL.SYS_YES;
2775 prec.mps_flag := MSC_UTIL.SYS_YES;
2776 prec.mds_sn_flag := lv_mds_sn_flag;
2777 prec.mps_sn_flag := lv_mps_sn_flag;
2778 ELSE
2779 prec.mds_sn_flag := MSC_UTIL.SYS_NO;
2780 prec.mps_sn_flag := MSC_UTIL.SYS_NO;
2781 END IF;
2782
2783 /*
2784 IF (prec.mps_flag = MSC_UTIL.SYS_YES) THEN
2785 prec.mps_sn_flag := lv_mps_sn_flag;
2786 ELSE
2787 prec.mps_sn_flag := MSC_UTIL.SYS_NO;
2788 END IF;
2789 */
2790
2791
2792 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, '*****************************************************************');
2793 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, 'BOM refresh type = '|| collection_type(prec.bom_flag,prec.bom_sn_flag) );
2794 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, 'BOR refresh type = '|| collection_type(prec.bor_flag,prec.bor_sn_flag) );
2795 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, 'ITEM refresh type = '|| collection_type(prec.item_flag,prec.item_sn_flag) );
2796 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, 'ONHAND refresh type = '|| collection_type(prec.oh_flag,prec.oh_sn_flag) );
2797 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, 'USER SUP refresh type = '|| collection_type(prec.user_supply_demand_flag,prec.usup_sn_flag) );
2798 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, 'USER DMD refresh type = '|| collection_type(prec.user_supply_demand_flag,prec.udmd_sn_flag) );
2799 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, 'SALES ORDER refresh type = '|| collection_type(prec.sales_order_flag,prec.so_sn_flag) );
2800 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, 'FORECAST refresh type = '|| collection_type(prec.forecast_flag,prec.fcst_sn_flag) );
2801 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, 'WIP refresh type = '|| collection_type(prec.wip_flag,prec.wip_sn_flag) );
2802 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, 'SUP CAP refresh type = '|| collection_type(prec.app_supp_cap_flag,prec.supcap_sn_flag) );
2803 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, 'PO type = '|| collection_type(prec.po_flag,prec.po_sn_flag) );
2804 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, 'MDS refresh type = '|| collection_type(prec.mds_flag,prec.mds_sn_flag) );
2805 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, 'MPS refresh type = '|| collection_type(prec.mps_flag,prec.mps_sn_flag) );
2806 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, 'SUPP RESP refresh type = '|| collection_type(prec.supplier_response_flag, prec.suprep_sn_flag) );
2807 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, 'TRIP refresh type = '|| collection_type(prec.trip_flag,prec.trip_sn_flag) );
2808 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, '*****************************************************************');
2809 -- agmcont:
2810
2811
2812 UPDATE msc_coll_parameters
2813 SET bom_sn_flag = prec.bom_sn_flag,
2814 bor_sn_flag = prec.bor_sn_flag,
2815 item_sn_flag = prec.item_sn_flag,
2816 oh_sn_flag = prec.oh_sn_flag,
2817 usup_sn_flag = prec.usup_sn_flag,
2818 udmd_sn_flag = prec.udmd_sn_flag,
2819 so_sn_flag = prec.so_sn_flag,
2820 fcst_sn_flag = prec.fcst_sn_flag,
2821 wip_sn_flag = prec.wip_sn_flag,
2822 supcap_sn_flag = prec.supcap_sn_flag,
2823 po_sn_flag = prec.po_sn_flag,
2824 mds_sn_flag = prec.mds_sn_flag,
2825 mps_sn_flag = prec.mps_sn_flag,
2826 --supplier_response = prec.supplier_response_flag,
2827 suprep_sn_flag = prec.suprep_sn_flag,
2828 nosnap_flag = prec.nosnap_flag,
2829 trip_sn_flag = prec.trip_sn_flag
2830 WHERE INSTANCE_ID=pINSTANCE_ID;
2831
2832 UPDATE msc_apps_instances
2833 SET SO_TBL_STATUS = decode (prec.so_sn_flag,MSC_UTIL.SYS_TGT,MSC_UTIL.SYS_NO,SO_TBL_STATUS)
2834 WHERE INSTANCE_ID=pINSTANCE_ID;
2835
2836 COMMIT;
2837
2838 end if;
2839
2840 /* initialize the MSC_CL_PULL_WORKER package */
2841 /* get the total task number */
2842 INITIALIZE
2843 ( v_refresh_id,
2844 lv_total_task_number);
2845
2846 -- process mfg only. if extracting items the call to populate the item
2847 -- table in the procees instance must be executed before anything else
2848 -- the other routines use this table to extract the data
2849 -- since the gmp's procedure doesn't support incremental refresh, the
2850 -- following process is valid only if it's a complete refresh.
2851
2852 -- agmcont TODO
2853
2854 --- PREPLACE CHANGE START ---
2855 /* IF (pRTYPE = MSC_UTIL.SYS_YES) THEN -- complete refresh */
2856
2857 IF ( (pRTYPE = MSC_UTIL.G_PARTIAL) OR (pRTYPE = MSC_UTIL.G_COMPLETE) OR
2858 (pRTYPE = MSC_UTIL.G_CONT AND prec.item_sn_flag = MSC_UTIL.SYS_TGT) ) THEN
2859 -- complete refresh or Partial refresh
2860
2861 --- PREPLACE CHANGE END ---
2862
2863 IF pITEM_ENABLED = MSC_UTIL.SYS_YES and
2864 ( v_instance_type = MSC_UTIL.G_INS_PROCESS OR
2865 v_instance_type = MSC_UTIL.G_INS_MIXED ) THEN
2866
2867 IF v_cp_enabled = MSC_UTIL.SYS_YES THEN
2868 return_status := TRUE;
2869 ELSE
2870 return_status := FALSE;
2871 END IF;
2872
2873 /* OPM Team - OPM Inventory Convergence Project
2874 - remove the call to extract items
2875 gmp_bom_routing_pkg.extract_items (v_dblink,
2876 pINSTANCE_ID,
2877 sysdate,
2878 return_status);
2879 */
2880 --bug 7328992 11i opm coll
2881 IF (v_apps_ver = MSC_UTIL.G_APPS115) THEN
2882
2883 MSC_CL_GMP_UTILITY.extract_items(v_dblink,
2884 pINSTANCE_ID,
2885 sysdate,
2886 return_status);
2887
2888 END IF;
2889
2890 END IF;
2891
2892 END IF;
2893
2894 -- ============ Lauch the workers here ===============
2895
2896 lvs_request_id.EXTEND( pTotalWorkerNum);
2897
2898 MSC_UTIL.LOG_MSG(MSC_UTIL.G_D_DEBUG_1, ' before calling workers ');
2899
2900
2901 IF v_cp_enabled= MSC_UTIL.SYS_YES THEN
2902
2903 FOR lc_i IN 1..pTotalWorkerNum LOOP
2904
2905 if (v_is_cont_refresh = MSC_UTIL.SYS_YES) then -- if continuous refresh
2906 lv_worker_prg := 'MSCAUTPW';
2907 else
2908 lv_worker_prg := 'MSCPDPW';
2909 end if;
2910
2911 lvs_request_id(lc_i) := FND_REQUEST.SUBMIT_REQUEST(
2912 'MSC',
2913 lv_worker_prg,
2914 NULL, -- description
2915 NULL, -- start date
2916 FALSE, -- TRUE,
2917 FND_GLOBAL.CONC_REQUEST_ID,
2918 pINSTANCE_ID,
2919 pTIMEOUT,
2920 pLANG,
2921 pRTYPE,
2922 v_refresh_id,
2923 pAPPROV_SUPPLIER_CAP_ENABLED ,
2924 pATP_RULES_ENABLED ,
2925 pBOM_ENABLED ,
2926 pBOR_ENABLED ,
2927 pCALENDAR_ENABLED ,
2928 pDEMAND_CLASS_ENABLED ,
2929 pITEM_SUBST_ENABLED ,
2930 pFORECAST_ENABLED ,
2931 pITEM_ENABLED ,
2932 pKPI_BIS_ENABLED ,
2933 pMDS_ENABLED ,
2934 pMPS_ENABLED ,
2935 pOH_ENABLED ,
2936 pPARAMETER_ENABLED ,
2937 pPLANNER_ENABLED ,
2938 pPROJECT_ENABLED ,
2939 pPUR_REQ_PO_ENABLED ,
2940 pRESERVES_HARD_ENABLED ,
2941 pRESOURCE_NRA_ENABLED ,
2942 pSafeStock_ENABLED ,
2943 pSalesOrder_RTYPE ,
2944 pSH_ENABLED ,
2945 pSOURCING_ENABLED ,
2946 pSUB_INV_ENABLED ,
2947 pTP_CUSTOMER_ENABLED ,
2948 pTP_VENDOR_ENABLED ,
2949 pUNIT_NO_ENABLED ,
2950 pUOM_ENABLED ,
2951 pUSER_SUPPLY_DEMAND ,
2952 pWIP_ENABLED ,
2953 pPO_RECEIPTS_ENABLED ,
2954 pUSER_COMPANY_ENABLED ,
2955 /* CP-ACK starts */
2956 pSUPPLIER_RESPONSE_ENABLED,
2957 /* CP-ACK ends */
2958 pTRIP_ENABLED ); -- sub request
2959
2960 COMMIT;
2961
2962
2963 ---- If the request_id=0 then
2964 ---- 1. Restore the status of the staging table.
2965 ---- 2. Send termination messages to the other launched workers.
2966 ---- 3. Return.
2967
2968 IF lvs_request_id(lc_i)= 0 THEN
2969
2970 FND_MESSAGE.SET_NAME('MSC', 'MSC_DP_LAUNCH_WORKER_FAIL');
2971 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, FND_MESSAGE.GET);
2972
2973 ROLLBACK;
2974
2975 IF SET_ST_STATUS( lv_errbuf,
2976 lv_retcode,
2977 pINSTANCE_ID,
2978 MSC_UTIL.G_ST_EMPTY) THEN
2979 COMMIT;
2980 END IF;
2981
2982 IF lv_check_point =2 THEN
2983 UPDATE MSC_APPS_INSTANCES
2984 SET SO_TBL_STATUS = decode(pSalesOrder_RTYPE,MSC_UTIL.SYS_YES
2985 ,decode(pRTYPE,MSC_UTIL.G_COMPLETE,decode(lv_inv_ctp_val,5,MSC_UTIL.SYS_YES,SO_TBL_STATUS),MSC_UTIL.G_PARTIAL,decode(lv_inv_ctp_val,5,MSC_UTIL.SYS_YES,SO_TBL_STATUS),SO_TBL_STATUS),
2986 SO_TBL_STATUS)
2987 WHERE INSTANCE_ID= pINSTANCE_ID;
2988 END IF;
2989
2990 FOR lc_j IN 1..pTotalWorkerNum LOOP
2991
2992 DBMS_PIPE.PACK_MESSAGE( -1);
2993
2994 IF DBMS_PIPE.SEND_MESSAGE( v_pipe_task_que)<>0 THEN
2995 RAISE EX_PIPE_SND;
2996 END IF;
2997
2998 FND_MESSAGE.SET_NAME('MSC','MSC_CL_SEND_WOR_END');
2999 FND_MESSAGE.SET_TOKEN('LCI',lc_j);
3000 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, FND_MESSAGE.GET);
3001
3002 END LOOP; -- lc_j
3003
3004 FND_MESSAGE.SET_NAME('MSC', 'MSC_DP_LAUNCH_WORKER_FAIL');
3005 ERRBUF:= FND_MESSAGE.GET;
3006 RETCODE := MSC_UTIL.G_ERROR;
3007 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_FATAL_ERR, ERRBUF);
3008 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_FATAL_ERR, SQLERRM);
3009
3010 COMMIT;
3011
3012 RETURN;
3013
3014 ELSE
3015
3016 FND_MESSAGE.SET_NAME('MSC', 'MSC_DP_WORKER_REQUEST_ID');
3017 FND_MESSAGE.SET_TOKEN('REQUEST_ID', lvs_request_id(lc_i));
3018 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, FND_MESSAGE.GET);
3019
3020 END IF;
3021
3022 END LOOP; -- lc_i
3023
3024 END IF; -- CP_ENABLED;
3025 -- Updating the timestamp of pullworker
3026 BEGIN -- For Bug 6126924
3027 v_sql_stmt:=
3028 'SELECT sysdate FROM DUAL'||v_dblink;
3029
3030 EXECUTE IMMEDIATE v_sql_stmt INTO lv_src_time;
3031
3032 UPDATE msc_coll_parameters
3033 SET PULL_WRKR_START_TIME = lv_src_time
3034 WHERE INSTANCE_ID = pINSTANCE_ID;
3035 END;
3036
3037 msc_util.print_trace_file_name(FND_GLOBAL.CONC_REQUEST_ID);
3038 -- ============ Send Tasks to Task Que 'v_pipe_task_que' =============
3039
3040 FOR lc_i IN 1..lv_total_task_number LOOP
3041
3042
3043 --- PREPLACE CHANGE START ---
3044
3045 --==========================================================
3046 -- Send all tasks in case of complete refresh.
3047 -- In case of Partial refresh and incremental refresh
3048 -- use Q_PARTIAL_TASK API to decide which
3049 -- task to be sent.
3050 --==========================================================
3051
3052 IF (pRTYPE = MSC_UTIL.G_COMPLETE) AND
3053 (prec.ds_mode <> MSC_UTIL.SYS_YES ) THEN /*ds_plan: change */
3054 -- maintain old behaviour for complete collection
3055
3056 DBMS_PIPE.PACK_MESSAGE( lc_i);
3057 MSC_UTIL.LOG_MSG(MSC_UTIL.G_D_DEBUG_1, 'ALL:Sending task number: '||lc_i||' to the queue');
3058
3059 -- Only send the message if it has been packed.
3060 IF DBMS_PIPE.SEND_MESSAGE( v_pipe_task_que)<>0 THEN
3061 FND_MESSAGE.SET_NAME('MSC','MSC_CL_ERROR_SEND_TSK');
3062 FND_MESSAGE.SET_TOKEN('LCI',lc_i);
3063 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, FND_MESSAGE.GET);
3064
3065 RAISE EX_PIPE_SND;
3066 END IF;
3067
3068 lv_task_not_completed := lv_task_not_completed + 1;
3069
3070 FND_MESSAGE.SET_NAME('MSC','MSC_CL_TOTAL_TSK_ADDED');
3071 FND_MESSAGE.SET_TOKEN('lv_task_not_completed',lv_task_not_completed);
3072 MSC_UTIL.LOG_MSG(MSC_UTIL.G_D_DEBUG_1, FND_MESSAGE.GET);
3073
3074 ELSIF Q_PARTIAL_TASK (pINSTANCE_ID, lc_i,
3075 prec, pRTYPE) THEN
3076 -- agmcont:
3077 -- NCPerf: Do for incremental and targeted
3078 -- Only carry out Data Pull for specific objects
3079
3080 MSC_UTIL.LOG_MSG(MSC_UTIL.G_D_DEBUG_1, 'Partial: PIPE to the DATA PULL - Task Number ' || TO_CHAR(lc_i));
3081 DBMS_PIPE.PACK_MESSAGE( lc_i);
3082
3083 -- Only send the message if it has been packed.
3084 IF DBMS_PIPE.SEND_MESSAGE( v_pipe_task_que)<>0 THEN
3085 RAISE EX_PIPE_SND;
3086 END IF;
3087 lv_task_not_completed := lv_task_not_completed + 1;
3088
3089 END IF;
3090
3091 --- PREPLACE CHANGE END ---
3092
3093 END LOOP; -- lc_i
3094
3095 DBMS_LOCK.SLEEP( 5); -- initial estimated sleep time
3096
3097 --lv_task_not_completed := lv_total_task_number;
3098
3099 lv_start_time:= SYSDATE;
3100
3101 FND_MESSAGE.SET_NAME('MSC','MSC_CL_TOTAL_TSK_ADDED');
3102 FND_MESSAGE.SET_TOKEN('lv_task_not_completed',lv_task_not_completed);
3103 MSC_UTIL.LOG_MSG(MSC_UTIL.G_D_DEBUG_1, FND_MESSAGE.GET);
3104
3105 LOOP
3106
3107 var_debug := 0;
3108 EXIT WHEN lv_task_not_completed = 0;
3109
3110 var_debug := 1;
3111 EXIT WHEN is_request_status_running <> MSC_UTIL.SYS_YES;
3112
3113 var_debug := 2;
3114 EXIT WHEN is_worker_status_valid(lvs_request_id) <> MSC_UTIL.SYS_YES;
3115
3116 lv_pipe_ret_code:= DBMS_PIPE.RECEIVE_MESSAGE( v_pipe_wm, PIPE_TIME_OUT);
3117
3118 IF lv_pipe_ret_code=0 THEN
3119
3120 DBMS_PIPE.UNPACK_MESSAGE( lv_task_num);
3121 MSC_UTIL.LOG_MSG(MSC_UTIL.G_D_DEBUG_1, 'Unpacked Task Number: '||lv_task_num);
3122
3123 IF lv_task_num>0 THEN -- it's ok, the vlaue is the task number
3124
3125 IF pANATBL_ENABLED= MSC_UTIL.SYS_YES AND
3126 v_instance_type = MSC_UTIL.G_INS_DISCRETE THEN
3127 ANALYZE_ST_TABLE( lv_task_num);
3128 END IF;
3129
3130 lv_task_not_completed := lv_task_not_completed -1;
3131 MSC_UTIL.LOG_MSG(MSC_UTIL.G_D_DEBUG_1, 'Tasks remaining :'||lv_task_not_completed);
3132
3133 IF lv_task_not_completed= 0 THEN
3134 var_debug := 3;
3135 EXIT;
3136 END IF;
3137
3138 ELSE
3139
3140 var_debug := 4;
3141 EXIT WHEN lv_task_num= UNRESOLVABLE_ERROR;
3142
3143 DBMS_PIPE.PACK_MESSAGE( -lv_task_num);
3144 -- resend the task to the task que
3145 MSC_UTIL.LOG_MSG(MSC_UTIL.G_D_DEBUG_1, 'Re-sending the task number: '||lv_task_num ||' to the queue');
3146
3147 IF DBMS_PIPE.SEND_MESSAGE( v_pipe_task_que)<>0 THEN
3148 RAISE EX_PIPE_SND;
3149 END IF;
3150
3151 MSC_UTIL.LOG_MSG(MSC_UTIL.G_D_DEBUG_1, 'Task number: '||lv_task_num||' re-sent to the pipe queue');
3152
3153 END IF;
3154
3155 ELSIF lv_pipe_ret_code<> 1 THEN
3156 FND_MESSAGE.SET_NAME('MSC','MSC_CL_RCV_PIPE_ERR');
3157 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_FATAL_ERR, FND_MESSAGE.GET);
3158
3159 RAISE EX_PIPE_RCV; -- If the error is not time-out error
3160 END IF;
3161
3162 -- ============= Check the execution time ==============
3163
3164 SELECT (SYSDATE- lv_start_time) INTO lv_process_time FROM dual;
3165
3166 IF lv_process_time > pTIMEOUT/1440.0 THEN RAISE EX_PROCESS_TIME_OUT;
3167 END IF;
3168
3169 END LOOP;
3170
3171 MSC_UTIL.LOG_MSG(MSC_UTIL.G_D_DEBUG_1, '----------------------------------------------------');
3172 FND_MESSAGE.SET_NAME('MSC','MSC_CL_TSK_NOT_COMP');
3173 FND_MESSAGE.SET_TOKEN('lv_task_not_completed',lv_task_not_completed);
3174 MSC_UTIL.LOG_MSG(MSC_UTIL.G_D_DEBUG_1, FND_MESSAGE.GET);
3175
3176 IF (var_debug = 0) THEN
3177 FND_MESSAGE.SET_NAME('MSC','MSC_CL_ERR_PDP_1');
3178 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_FATAL_ERR, FND_MESSAGE.GET);
3179 ELSIF (var_debug = 1) THEN
3180 FND_MESSAGE.SET_NAME('MSC','MSC_CL_ERR_PDP_2');
3181 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_FATAL_ERR, FND_MESSAGE.GET);
3182 ELSIF (var_debug = 2) THEN
3183 FND_MESSAGE.SET_NAME('MSC','MSC_CL_ERR_PDP_3');
3184 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_FATAL_ERR, FND_MESSAGE.GET);
3185 ELSIF (var_debug = 3) THEN
3186 FND_MESSAGE.SET_NAME('MSC','MSC_CL_ERR_PDC_3');
3187 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_FATAL_ERR, FND_MESSAGE.GET);
3188 ELSIF (var_debug = 4) THEN
3189 FND_MESSAGE.SET_NAME('MSC','MSC_CL_ERR_PDC_4');
3190 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_FATAL_ERR, FND_MESSAGE.GET);
3191 END IF;
3192
3193 MSC_UTIL.LOG_MSG(MSC_UTIL.G_D_DEBUG_1, '----------------------------------------------------');
3194
3195 IF lv_task_not_completed > 0 THEN
3196
3197 DBMS_PIPE.PURGE( v_pipe_task_que);
3198
3199 FND_MESSAGE.SET_NAME('MSC', 'MSC_DP_FAIL');
3200 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_FATAL_ERR, FND_MESSAGE.GET);
3201 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_FATAL_ERR, SQLERRM);
3202
3203 lv_task_num:= -1;
3204
3205 ROLLBACK;
3206
3207 ERRBUF:= FND_MESSAGE.GET;
3208 RETCODE := MSC_UTIL.G_ERROR;
3209
3210 ELSE
3211
3212 lv_task_num:= 0;
3213
3214 FND_MESSAGE.SET_NAME('MSC', 'MSC_DP_SUCCEED');
3215 ERRBUF:= FND_MESSAGE.GET;
3216 RETCODE := MSC_UTIL.G_SUCCESS;
3217 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, SQLERRM);
3218
3219 lv_so_lrtype := pSalesOrder_RTYPE;
3220
3221 /* If the Sales Order is Targeted in Continuous collections ,set the so_rtype = YES */
3222 IF (pRTYPE = MSC_UTIL.G_CONT) AND (prec.sales_order_flag = MSC_UTIL.SYS_YES) THEN
3223 IF (prec.so_sn_flag = MSC_UTIL.SYS_TGT) THEN
3224 lv_so_lrtype := MSC_UTIL.SYS_YES;
3225 END IF;
3226 END IF;
3227
3228 FINAL( pINSTANCE_ID,
3229 pORG_GROUP,
3230 pRTYPE,
3231 lv_so_lrtype,
3232 -- pSalesOrder_RTYPE,
3233 v_crn,
3234 pSOURCING_ENABLED,
3235 prec);
3236
3237 IF pANATBL_ENABLED= MSC_UTIL.SYS_YES AND
3238 v_instance_type <> MSC_UTIL.G_INS_DISCRETE THEN
3239 ANALYZE_ALL_ST_TABLE;
3240 END IF;
3241
3242 END IF;
3243
3244 IF (pRTYPE <> MSC_UTIL.G_CONT) then
3245
3246 -- ======================== Inform workers to end the process ================
3247
3248 FOR lc_i IN 1..pTotalWorkerNum LOOP
3249
3250 FND_MESSAGE.SET_NAME('MSC','MSC_CL_SEND_WOR_END');
3251 FND_MESSAGE.SET_TOKEN('LCI',lc_i);
3252 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, FND_MESSAGE.GET);
3253
3254 DBMS_PIPE.PACK_MESSAGE( lv_task_num);
3255
3256 MSC_UTIL.LOG_MSG(MSC_UTIL.G_D_DEBUG_1, 'Sending task number: '||lv_task_num|| ' to the worker '||lc_i);
3257
3258 IF DBMS_PIPE.SEND_MESSAGE( v_pipe_task_que)<>0 THEN
3259 RAISE EX_PIPE_SND;
3260 END IF;
3261
3262 END LOOP; -- lc_i
3263
3264 IF lv_task_num=0 THEN
3265
3266 IF SET_ST_STATUS( lv_errbuf, lv_retcode,
3267 pINSTANCE_ID, MSC_UTIL.G_ST_READY) THEN
3268 COMMIT;
3269 END IF;
3270
3271 ELSE
3272 IF SET_ST_STATUS( lv_errbuf, lv_retcode,
3273 pINSTANCE_ID, MSC_UTIL.G_ST_EMPTY) THEN
3274 COMMIT;
3275 END IF;
3276
3277 END IF;
3278
3279
3280 lv_worker_committed:= 0;
3281
3282 lv_start_time:= SYSDATE;
3283
3284 LOOP
3285
3286 lv_pipe_ret_code:= DBMS_PIPE.RECEIVE_MESSAGE( v_pipe_status,
3287 PIPE_TIME_OUT);
3288
3289 IF lv_pipe_ret_code=0 THEN
3290
3291 lv_worker_committed:= lv_worker_committed+1;
3292
3293 FND_MESSAGE.SET_NAME('MSC','MSC_CL_WORKER_COMMIT');
3294 FND_MESSAGE.SET_TOKEN('LV_WORKER_COMMITTED',lv_worker_committed);
3295 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, FND_MESSAGE.GET);
3296
3297 EXIT WHEN lv_worker_committed= pTotalWorkerNum;
3298
3299 ELSIF lv_pipe_ret_code<> 1 THEN
3300 RAISE EX_PIPE_RCV; -- If the error is not time-out error
3301 END IF;
3302
3303 SELECT (SYSDATE- lv_start_time) INTO lv_process_time FROM dual;
3304 -- For bug:2210970 Removed this exit and added the function all_workers_completed to exit
3305 -- EXIT WHEN lv_process_time > 3.0/1440.0;
3306
3307 IF (lv_process_time > 3.0/1440.0) AND (lv_worker_committed <> pTotalWorkerNum) THEN
3308 EXIT WHEN all_workers_completed(lvs_request_id) = MSC_UTIL.SYS_YES;
3309 END IF;
3310
3311 END LOOP;
3312
3313 IF lv_worker_committed<> pTotalWorkerNum THEN
3314
3315 FND_MESSAGE.SET_NAME('MSC', 'MSC_DP_FAIL_TO_COMMIT');
3316 ERRBUF:= FND_MESSAGE.GET;
3317 RETCODE := MSC_UTIL.G_ERROR;
3318 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_FATAL_ERR, ERRBUF);
3319 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_FATAL_ERR, SQLERRM);
3320
3321 FND_MESSAGE.SET_NAME('MSC','MSC_CL_CHECK_PDP_LOG');
3322 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_FATAL_ERR, FND_MESSAGE.GET);
3323
3324 IF lv_check_point= 2 THEN
3325 IF SET_ST_STATUS( lv_errbuf, lv_retcode,
3326 pINSTANCE_ID, MSC_UTIL.G_ST_EMPTY) THEN
3327 COMMIT;
3328 END IF;
3329
3330 UPDATE MSC_APPS_INSTANCES
3331 SET SO_TBL_STATUS = decode(pSalesOrder_RTYPE,MSC_UTIL.SYS_YES
3332 ,decode(pRTYPE,MSC_UTIL.G_COMPLETE,decode(lv_inv_ctp_val,5,MSC_UTIL.SYS_YES,SO_TBL_STATUS),MSC_UTIL.G_PARTIAL,decode(lv_inv_ctp_val,5,MSC_UTIL.SYS_YES,SO_TBL_STATUS),SO_TBL_STATUS),
3333 SO_TBL_STATUS)
3334 WHERE INSTANCE_ID= pINSTANCE_ID;
3335
3336 END IF;
3337
3338 END IF;
3339
3340 COMMIT;
3341 ELSE
3342
3343 /* ------------------- agmcont ---------------------- */
3344
3345 /* call ods load monitor for continuous collections */
3346
3347 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, 'launch ods load monitor');
3348
3349 lv_task_num := START_ODS_LOAD;
3350
3351 -- ======================== Inform workers to start the ODS Worker ================
3352
3353 FOR lc_i IN 1..pTotalWorkerNum LOOP
3354
3355 FND_MESSAGE.SET_NAME('MSC','MSC_CL_SEND_WOR_END');
3356 FND_MESSAGE.SET_TOKEN('LCI',lc_i);
3357 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, FND_MESSAGE.GET);
3358
3359 DBMS_PIPE.PACK_MESSAGE( lv_task_num);
3360
3361 MSC_UTIL.LOG_MSG(MSC_UTIL.G_D_DEBUG_1, 'Sending task number: '||lv_task_num|| ' to the worker '||lc_i);
3362
3363 IF DBMS_PIPE.SEND_MESSAGE( v_pipe_task_que)<>0 THEN
3364 RAISE EX_PIPE_SND;
3365 END IF;
3366
3367 END LOOP; -- lc_i
3368
3369 IF SET_ST_STATUS( lv_errbuf, lv_retcode,
3370 pINSTANCE_ID, MSC_UTIL.G_ST_READY) THEN
3371 COMMIT;
3372 END IF;
3373 BEGIN
3374
3375 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, '****************************************************');
3376 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, 'Planning ODS Load Monitor is Started.');
3377 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, '****************************************************');
3378 /*ds change */
3379 IF MSC_CL_COLLECTION.LAUNCH_MONITOR_CONT(
3380 ERRBUF ,
3381 RETCODE ,
3382 pINSTANCE_ID ,
3383 pTIMEOUT ,-- minutes
3384 pTotalWorkerNum ,
3385 prec.ds_mode ) THEN
3386
3387 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, '****************************************************');
3388 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, 'Planning ODS Load Monitor is Completed.');
3389 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, '****************************************************');
3390 ELSE
3391 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, ERRBUF);
3392 RETCODE := MSC_UTIL.G_ERROR;
3393 END IF;
3394
3395 EXCEPTION
3396 WHEN OTHERS THEN
3397 ROLLBACK;
3398 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_FATAL_ERR, ERRBUF);
3399 RAISE;
3400 END;
3401
3402 /* ------------------- agmcont ---------------------- */
3403
3404 END IF;
3405
3406 EXCEPTION
3407
3408 WHEN EX_PROCESS_TIME_OUT THEN
3409
3410 ROLLBACK;
3411
3412 DBMS_PIPE.PURGE( v_pipe_task_que);
3413
3414 IF lv_check_point= 2 THEN
3415 IF SET_ST_STATUS( lv_errbuf, lv_retcode,
3416 pINSTANCE_ID, MSC_UTIL.G_ST_EMPTY) THEN
3417 COMMIT;
3418 END IF;
3419
3420 UPDATE MSC_APPS_INSTANCES
3421 SET SO_TBL_STATUS = decode(pSalesOrder_RTYPE,MSC_UTIL.SYS_YES
3422 ,decode(pRTYPE,MSC_UTIL.G_COMPLETE,decode(lv_inv_ctp_val,5,MSC_UTIL.SYS_YES,SO_TBL_STATUS),MSC_UTIL.G_PARTIAL,decode(lv_inv_ctp_val,5,MSC_UTIL.SYS_YES,SO_TBL_STATUS),SO_TBL_STATUS),
3423 SO_TBL_STATUS)
3424 WHERE INSTANCE_ID= pINSTANCE_ID;
3425
3426 COMMIT;
3427
3428 END IF;
3429
3430 FND_MESSAGE.SET_NAME('MSC', 'MSC_TIMEOUT');
3431 ERRBUF:= FND_MESSAGE.GET;
3432 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_FATAL_ERR, ERRBUF);
3433 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_FATAL_ERR, SQLERRM);
3434
3435 RETCODE := MSC_UTIL.G_ERROR;
3436
3437 WHEN OTHERS THEN
3438
3439 ROLLBACK;
3440
3441 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_FATAL_ERR, SQLERRM);
3442
3443 IF lv_check_point= 2 THEN
3444 IF SET_ST_STATUS( lv_errbuf, lv_retcode,
3445 pINSTANCE_ID, MSC_UTIL.G_ST_EMPTY) THEN
3446 COMMIT;
3447 END IF;
3448
3449 UPDATE MSC_APPS_INSTANCES
3450 SET SO_TBL_STATUS = decode(pSalesOrder_RTYPE,MSC_UTIL.SYS_YES
3451 ,decode(pRTYPE,MSC_UTIL.G_COMPLETE,decode(lv_inv_ctp_val,5,MSC_UTIL.SYS_YES,SO_TBL_STATUS),MSC_UTIL.G_PARTIAL,decode(lv_inv_ctp_val,5,MSC_UTIL.SYS_YES,SO_TBL_STATUS),SO_TBL_STATUS),
3452 SO_TBL_STATUS)
3453 WHERE INSTANCE_ID= pINSTANCE_ID;
3454
3455 COMMIT;
3456
3457 END IF;
3458
3459 ERRBUF := SQLERRM;
3460 RETCODE := MSC_UTIL.G_ERROR;
3461
3462 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_FATAL_ERR, 'Error_Stack...');
3463 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_FATAL_ERR, DBMS_UTILITY.FORMAT_ERROR_STACK );
3464 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_FATAL_ERR, 'Error_Backtrace...' );
3465 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_FATAL_ERR, DBMS_UTILITY.FORMAT_ERROR_BACKTRACE );
3466
3467 END LAUNCH_MONITOR;
3468
3469
3470 /* ------------------------------------------------------------- */
3471
3472
3473 -- agmcont
3474 -- Entry point for continuous collections
3475
3476 PROCEDURE LAUNCH_MONITOR_CONT(
3477 ERRBUF OUT NOCOPY VARCHAR2,
3478 RETCODE OUT NOCOPY NUMBER,
3479 pINSTANCE_ID IN NUMBER,
3480 pORG_GROUP IN VARCHAR2,
3481 pTotalWorkerNum IN NUMBER,
3482 pTIMEOUT IN NUMBER, -- min
3483 pLANG IN VARCHAR2 := NULL,
3484 -- pOdsPURGEoption IN NUMBER := SYS_NO,
3485 -- pRTYPE IN NUMBER,
3486 pTHRESH IN NUMBER,
3487 pFREQ IN NUMBER,
3488 pANATBL_ENABLED IN NUMBER := MSC_UTIL.SYS_NO,
3489 pAPPROV_SUPPLIER_CAP_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3490 pBOM_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3491 pBOR_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3492 pFORECAST_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3493 pITEM_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3494 pMDS_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3495 pMPS_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3496 pOH_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3497 pPUR_REQ_PO_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3498 pSalesOrder_RTYPE IN NUMBER,
3499 /* CP-AUTO */
3500 pSUPPLIER_RESPONSE_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3501 pTRIP_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3502 pUSER_SUPPLY_DEMAND IN NUMBER := MSC_UTIL.SYS_YES,
3503 pWIP_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3504 pATP_RULES_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3505 pCALENDAR_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3506 pDEMAND_CLASS_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3507 pITEM_SUBST_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3508 pKPI_BIS_ENABLED IN NUMBER := CASE WHEN v_apps_ver >= MSC_UTIL.G_APPS122 THEN MSC_UTIL.SYS_NO ELSE MSC_UTIL.SYS_YES END,
3509 pPARAMETER_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3510 pPLANNER_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3511 pPO_RECEIPTS_ENABLED IN NUMBER := MSC_UTIL.SYS_NO,
3512 pPROJECT_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3513 pRESERVES_HARD_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3514 pRESOURCE_NRA_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3515 pSafeStock_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3516 pSH_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3517 pSOURCING_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3518 pSUB_INV_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3519 pTP_CUSTOMER_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3520 pTP_VENDOR_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3521 pUNIT_NO_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3522 pUOM_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3523 pUSER_COMPANY_ENABLED IN NUMBER := MSC_UTIL.SYS_YES
3524
3525
3526 )
3527 is
3528
3529 lv_SUPPLIER_RESPONSE_ENABLED number := MSC_UTIL.SYS_NO;
3530
3531 BEGIN
3532
3533
3534 v_is_cont_refresh := MSC_UTIL.SYS_YES;
3535 v_cont_coll_thresh := pTHRESH;
3536 v_cont_coll_freq := pFREQ;
3537 /* just call launch_monitor */
3538
3539 --MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, 'x1');
3540 LAUNCH_MONITOR(ERRBUF,
3541 RETCODE,
3542 pINSTANCE_ID,
3543 pORG_GROUP,
3544 pTotalWorkerNum,
3545 pTIMEOUT,
3546 pLANG,
3547 MSC_UTIL.SYS_NO, --pOdsPURGEoption,
3548 MSC_UTIL.G_CONT, --pRTYPE,
3549 pANATBL_ENABLED,
3550 pAPPROV_SUPPLIER_CAP_ENABLED,
3551 pATP_RULES_ENABLED,
3552 pBOM_ENABLED,
3553 pBOR_ENABLED,
3554 pCALENDAR_ENABLED,
3555 pDEMAND_CLASS_ENABLED,
3556 pITEM_SUBST_ENABLED,
3557 pFORECAST_ENABLED,
3558 pITEM_ENABLED,
3559 pKPI_BIS_ENABLED,
3560 pMDS_ENABLED,
3561 pMPS_ENABLED,
3562 pOH_ENABLED,
3563 pPARAMETER_ENABLED,
3564 pPLANNER_ENABLED,
3565 pPO_RECEIPTS_ENABLED,
3566 pPROJECT_ENABLED,
3567 pPUR_REQ_PO_ENABLED,
3568 pRESERVES_HARD_ENABLED,
3569 pRESOURCE_NRA_ENABLED,
3570 pSafeStock_ENABLED,
3571 pSalesOrder_RTYPE,
3572 pSH_ENABLED,
3573 pSOURCING_ENABLED,
3574 pSUB_INV_ENABLED,
3575 /* CP-AUTO */
3576 pSUPPLIER_RESPONSE_ENABLED,
3577 pTP_CUSTOMER_ENABLED,
3578 pTP_VENDOR_ENABLED,
3579 pTRIP_ENABLED,
3580 pUNIT_NO_ENABLED,
3581 pUOM_ENABLED,
3582 pUSER_COMPANY_ENABLED,
3583 pUSER_SUPPLY_DEMAND,
3584 pWIP_ENABLED
3585
3586 );
3587
3588
3589 end LAUNCH_MONITOR_CONT;
3590
3591 PROCEDURE LAUNCH_WORKER_CONT(
3592 ERRBUF OUT NOCOPY VARCHAR2,
3593 RETCODE OUT NOCOPY NUMBER,
3594 pMONITOR_REQUEST_ID IN NUMBER,
3595 pINSTANCE_ID IN NUMBER,
3596 pTIMEOUT IN NUMBER,
3597 pLANG IN VARCHAR2 := NULL,
3598 pRTYPE IN NUMBER,
3599 pREFRESH_ID IN NUMBER,
3600 pAPPROV_SUPPLIER_CAP_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3601 pATP_RULES_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3602 pBOM_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3603 pBOR_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3604 pCALENDAR_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3605 pDEMAND_CLASS_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3606 pITEM_SUBST_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3607 pFORECAST_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3608 pITEM_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3609 pKPI_BIS_ENABLED IN NUMBER := CASE WHEN v_apps_ver >= MSC_UTIL.G_APPS122 THEN MSC_UTIL.SYS_NO ELSE MSC_UTIL.SYS_YES END,
3610 pMDS_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3611 pMPS_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3612 pOH_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3613 pPARAMETER_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3614 pPLANNER_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3615 pPROJECT_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3616 pPUR_REQ_PO_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3617 pRESERVES_HARD_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3618 pRESOURCE_NRA_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3619 pSafeStock_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3620 pSalesOrder_RTYPE IN NUMBER,
3621 pSH_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3622 pSOURCING_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3623 pSUB_INV_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3624 pTP_CUSTOMER_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3625 pTP_VENDOR_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3626 pUNIT_NO_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3627 pUOM_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3628 pUSER_SUPPLY_DEMAND IN NUMBER := MSC_UTIL.SYS_YES,
3629 pWIP_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3630 pUSER_COMPANY_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3631 /* CP-ACK starts */
3632 pSUPPLIER_RESPONSE_ENABLED IN NUMBER := MSC_UTIL.SYS_NO,
3633 /* CP-ACK ends */
3634 pTRIP_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3635 pPO_RECEIPTS_ENABLED IN NUMBER := MSC_UTIL.SYS_NO
3636 ) is
3637 BEGIN
3638
3639 MSC_CL_PULL.LAUNCH_WORKER(
3640 ERRBUF ,
3641 RETCODE ,
3642 pMONITOR_REQUEST_ID ,
3643 pINSTANCE_ID ,
3644 pTIMEOUT ,
3645 pLANG ,
3646 pRTYPE ,
3647 pREFRESH_ID ,
3648 pAPPROV_SUPPLIER_CAP_ENABLED ,
3649 pATP_RULES_ENABLED ,
3650 pBOM_ENABLED ,
3651 pBOR_ENABLED ,
3652 pCALENDAR_ENABLED ,
3653 pDEMAND_CLASS_ENABLED ,
3654 pITEM_SUBST_ENABLED ,
3655 pFORECAST_ENABLED ,
3656 pITEM_ENABLED ,
3657 pKPI_BIS_ENABLED ,
3658 pMDS_ENABLED ,
3659 pMPS_ENABLED ,
3660 pOH_ENABLED ,
3661 pPARAMETER_ENABLED ,
3662 pPLANNER_ENABLED ,
3663 pPROJECT_ENABLED ,
3664 pPUR_REQ_PO_ENABLED ,
3665 pRESERVES_HARD_ENABLED ,
3666 pRESOURCE_NRA_ENABLED ,
3667 pSafeStock_ENABLED ,
3668 pSalesOrder_RTYPE ,
3669 pSH_ENABLED ,
3670 pSOURCING_ENABLED ,
3671 pSUB_INV_ENABLED ,
3672 pTP_CUSTOMER_ENABLED ,
3673 pTP_VENDOR_ENABLED ,
3674 pUNIT_NO_ENABLED ,
3675 pUOM_ENABLED ,
3676 pUSER_SUPPLY_DEMAND ,
3677 pWIP_ENABLED ,
3678 pPO_RECEIPTS_ENABLED ,
3679 pUSER_COMPANY_ENABLED ,
3680 pSUPPLIER_RESPONSE_ENABLED ,
3681 pTRIP_ENABLED ); -- sub request
3682
3683
3684 END LAUNCH_WORKER_CONT;
3685
3686 PROCEDURE LAUNCH_MONITOR_CONT_DET_SCH(
3687 ERRBUF OUT NOCOPY VARCHAR2,
3688 RETCODE OUT NOCOPY NUMBER,
3689 pINSTANCE_ID IN NUMBER,
3690 pORG_GROUP IN VARCHAR2,
3691 pTotalWorkerNum IN NUMBER,
3692 pTIMEOUT IN NUMBER, -- min
3693 pLANG IN VARCHAR2 := NULL,
3694 pTHRESH IN NUMBER,
3695 pFREQ IN NUMBER,
3696 pANATBL_ENABLED IN NUMBER := MSC_UTIL.SYS_NO,
3697 pAPPROV_SUPPLIER_CAP_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3698 pBOM_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3699 --pBOR_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3700 --pFORECAST_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3701 pITEM_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3702 --pMDS_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3703 pMPS_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3704 pOH_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3705 pPUR_REQ_PO_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3706 pSalesOrder_RTYPE IN NUMBER := MSC_UTIL.SYS_YES,
3707 pSUPPLIER_RESPONSE_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3708 --pTRIP_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3709 --pUSER_SUPPLY_DEMAND IN NUMBER := MSC_UTIL.SYS_YES,
3710 pWIP_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3711 --pUSER_SUPPLY_DEMAND IN NUMBER := MSC_UTIL.SYS_YES,
3712 --pATP_RULES_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3713 pCALENDAR_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3714 pDEMAND_CLASS_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3715 --pITEM_SUBST_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3716 pKPI_BIS_ENABLED IN NUMBER := CASE WHEN v_apps_ver >= MSC_UTIL.G_APPS122 THEN MSC_UTIL.SYS_NO ELSE MSC_UTIL.SYS_YES END,
3717 pPARAMETER_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3718 pPLANNER_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3719 pPROJECT_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3720 pRESERVES_HARD_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3721 pRESOURCE_NRA_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3722 pSafeStock_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3723 --pSH_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3724 --pSOURCING_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3725 --pSUB_INV_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3726 pTP_CUSTOMER_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3727 pTP_VENDOR_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3728 pUNIT_NO_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3729 pUOM_ENABLED IN NUMBER := MSC_UTIL.SYS_YES
3730 --pUSER_COMPANY_ENABLED IN NUMBER := MSC_UTIL.SYS_YES
3731 )
3732
3733 is
3734 BEGIN
3735
3736 MSC_CL_PULL.LAUNCH_MONITOR(ERRBUF,
3737 RETCODE,
3738 pINSTANCE_ID,
3739 pORG_GROUP,
3740 pTotalWorkerNum,
3741 pTIMEOUT,
3742 pLANG,
3743 MSC_UTIL.SYS_NO, --pOdsPURGEoption,
3744 MSC_UTIL.G_CONT, --pRTYPE,
3745 pANATBL_ENABLED,
3746 pAPPROV_SUPPLIER_CAP_ENABLED,
3747 MSC_UTIL.SYS_NO, --pATP_RULES_ENABLED,
3748 pBOM_ENABLED,
3749 MSC_UTIL.SYS_NO, --pBOR_ENABLED,
3750 pCALENDAR_ENABLED,
3751 pDEMAND_CLASS_ENABLED,
3752 MSC_UTIL.SYS_NO, --pITEM_SUBST_ENABLED,
3753 MSC_UTIL.SYS_NO, --pFORECAST_ENABLED,
3754 pITEM_ENABLED,
3755 pKPI_BIS_ENABLED,
3756 MSC_UTIL.SYS_NO, --pMDS_ENABLED,
3757 pMPS_ENABLED,
3758 pOH_ENABLED,
3759 pPARAMETER_ENABLED,
3760 pPLANNER_ENABLED,
3761 MSC_UTIL.SYS_NO, --pPO_Receipts_ENABLED,
3762 pPROJECT_ENABLED,
3763 pPUR_REQ_PO_ENABLED,
3764 pRESERVES_HARD_ENABLED, --pRESERVES_HARD_ENABLED,
3765 pRESOURCE_NRA_ENABLED,
3766 pSafeStock_ENABLED,
3767 pSalesOrder_RTYPE, --pSalesOrder_RTYPE,
3768 MSC_UTIL.SYS_NO, --pSH_ENABLED,
3769 MSC_UTIL.SYS_NO, --pSOURCING_ENABLED,
3770 MSC_UTIL.SYS_NO, --pSUB_INV_ENABLED,
3771 pSUPPLIER_RESPONSE_ENABLED,
3772 pTP_CUSTOMER_ENABLED,
3773 pTP_VENDOR_ENABLED,
3774 MSC_UTIL.SYS_NO, --pTRIP_ENABLED,
3775 pUNIT_NO_ENABLED,
3776 pUOM_ENABLED,
3777 MSC_UTIL.SYS_NO, --pUSER_COMPANY_ENABLED,
3778 MSC_UTIL.SYS_NO, --pUSER_SUPPLY_DEMAND,
3779 pWIP_ENABLED
3780 );
3781
3782
3783 end LAUNCH_MONITOR_CONT_DET_SCH;
3784
3785 -- agmcont
3786 /* ------------------------------------------------------------- */
3787
3788 PROCEDURE DELETE_PROCESS(
3789 ERRBUF OUT NOCOPY VARCHAR2,
3790 RETCODE OUT NOCOPY NUMBER,
3791 pINSTANCE_ID IN NUMBER)
3792 IS
3793 BEGIN
3794
3795 INITIALIZE_PULL_GLOBALS( pINSTANCE_ID); -- Initializes Level 2 Global Variables used in Data Pull
3796
3797 RETCODE := MSC_UTIL.G_SUCCESS;
3798
3799 DBMS_PIPE.PACK_MESSAGE( UNRESOLVABLE_ERROR);
3800
3801 IF DBMS_PIPE.SEND_MESSAGE( v_pipe_wm)<>0 THEN
3802
3803 FND_MESSAGE.SET_NAME('MSC', 'MSC_MSG_SEND_FAIL');
3804 FND_MESSAGE.SET_TOKEN('PIPE', v_pipe_wm);
3805 ERRBUF:= FND_MESSAGE.GET;
3806
3807 RETCODE := MSC_UTIL.G_ERROR;
3808
3809 END IF;
3810
3811 END DELETE_PROCESS;
3812
3813 /* ds_plan: change start */
3814 PROCEDURE LAUNCH_MONITOR_DET_SCH(
3815 ERRBUF OUT NOCOPY VARCHAR2,
3816 RETCODE OUT NOCOPY NUMBER,
3817 pINSTANCE_ID IN NUMBER,
3818 pORG_GROUP IN VARCHAR2,
3819 pTotalWorkerNum IN NUMBER,
3820 pTIMEOUT IN NUMBER,
3821 pLANG IN VARCHAR2 := NULL,
3822 pOdsPURGEoption IN NUMBER := MSC_UTIL.SYS_NO,
3823 pRTYPE IN NUMBER,
3824 pANATBL_ENABLED IN NUMBER := MSC_UTIL.SYS_NO,
3825 pAPPROV_SUPPLIER_CAP_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3826 --pATP_RULES_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3827 pBOM_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3828 --pBOR_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3829 pCALENDAR_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3830 pDEMAND_CLASS_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3831 --pITEM_SUBST_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3832 --pFORECAST_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3833 pITEM_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3834 pKPI_BIS_ENABLED IN NUMBER := CASE WHEN v_apps_ver >= MSC_UTIL.G_APPS122 THEN MSC_UTIL.SYS_NO ELSE MSC_UTIL.SYS_YES END,
3835 --pMDS_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3836 pMPS_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3837 pOH_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3838 pPARAMETER_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3839 pPLANNER_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3840 pPROJECT_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3841 pPUR_REQ_PO_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3842 pRESERVES_HARD_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3843 pRESOURCE_NRA_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3844 pSafeStock_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3845 pSalesOrder_RTYPE IN NUMBER,
3846 --pSH_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3847 --pSOURCING_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3848 --pSUB_INV_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3849 pSUPPLIER_RESPONSE_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3850 pTP_CUSTOMER_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3851 pTP_VENDOR_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3852 --pTRIP_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3853 pUNIT_NO_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3854 pUOM_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3855 --pUSER_COMPANY_ENABLED IN NUMBER := MSC_UTIL.SYS_YES,
3856 --pUSER_SUPPLY_DEMAND IN NUMBER := MSC_UTIL.SYS_YES,
3857 pWIP_ENABLED IN NUMBER := MSC_UTIL.SYS_YES
3858 )
3859 is
3860
3861 lv_SUPPLIER_RESPONSE_ENABLED number := MSC_UTIL.SYS_NO;
3862
3863 BEGIN
3864 v_DSMode := MSC_UTIL.SYS_YES;
3865 LAUNCH_MONITOR(ERRBUF,
3866 RETCODE,
3867 pINSTANCE_ID,
3868 pORG_GROUP,
3869 pTotalWorkerNum,
3870 pTIMEOUT,
3871 pLANG,
3872 pOdsPURGEoption,
3873 pRTYPE,
3874 pANATBL_ENABLED,
3875 pAPPROV_SUPPLIER_CAP_ENABLED,
3876 MSC_UTIL.SYS_NO, --pATP_RULES_ENABLED,
3877 pBOM_ENABLED,
3878 MSC_UTIL.SYS_NO, --pBOR_ENABLED,
3879 pCALENDAR_ENABLED,
3880 pDEMAND_CLASS_ENABLED,
3881 MSC_UTIL.SYS_NO, --pITEM_SUBST_ENABLED,
3882 MSC_UTIL.SYS_NO, --pFORECAST_ENABLED,
3883 pITEM_ENABLED,
3884 pKPI_BIS_ENABLED,
3885 MSC_UTIL.SYS_NO, --pMDS_ENABLED,
3886 pMPS_ENABLED,
3887 pOH_ENABLED,
3888 pPARAMETER_ENABLED,
3889 pPLANNER_ENABLED,
3890 MSC_UTIL.SYS_NO, --PO_Receipt_ENABLED,
3891 pPROJECT_ENABLED,
3892 pPUR_REQ_PO_ENABLED,
3893 pRESERVES_HARD_ENABLED, --pRESERVES_HARD_ENABLED,
3894 pRESOURCE_NRA_ENABLED,
3895 pSafeStock_ENABLED,
3896 pSalesOrder_RTYPE, --pSalesOrder_RTYPE,
3897 MSC_UTIL.SYS_NO, --pSH_ENABLED,
3898 MSC_UTIL.SYS_NO, --pSOURCING_ENABLED,
3899 MSC_UTIL.SYS_NO, --pSUB_INV_ENABLED,
3900 pSUPPLIER_RESPONSE_ENABLED,
3901 pTP_CUSTOMER_ENABLED,
3902 pTP_VENDOR_ENABLED,
3903 MSC_UTIL.SYS_NO, --pTRIP_ENABLED,
3904 pUNIT_NO_ENABLED,
3905 pUOM_ENABLED,
3906 MSC_UTIL.SYS_NO, --pUSER_COMPANY_ENABLED,
3907 MSC_UTIL.SYS_NO, --pUSER_SUPPLY_DEMAND,
3908 pWIP_ENABLED
3909 );
3910
3911 end LAUNCH_MONITOR_DET_SCH;
3912
3913
3914 FUNCTION get_entity_lrn (p_instance_id in NUMBER,
3915 p_task_num in NUMBER,
3916 prec in MSC_UTIL.CollParamREC,
3917 p_lrnn in number,
3918 p_rtype in number,
3919 p_org_group in varchar2,
3920 p_entity_lrnn out NOCOPY number)
3921
3922 RETURN BOOLEAN AS
3923 lv_sup_cap_lrn number;
3924 lv_bom_lrn number;
3925 lv_bor_lrn number;
3926 lv_forecast_lrn number;
3927 lv_item_lrn number;
3928 lv_mds_lrn number;
3929 lv_mps_lrn number;
3930 lv_oh_lrn number;
3931 lv_rsv_lrn number;
3932 lv_po_lrn number;
3933 lv_so_lrn number;
3934 lv_usd_lrn number;
3935 lv_wip_lrn number;
3936 lv_nra_lrn number;
3937 lv_saf_stock_lrn number;
3938 lv_unit_no_lrn number;
3939 lv_uom_lrn number;
3940 lv_calendar_lrn number;
3941 lv_apps_lrn number;
3942 lv_trip_lrn number;
3943 lv_ero_lrn number;
3944 lv_iro_lrn number; -- For Bug 6126698
3945 BEGIN
3946
3947 /* We will pass apps_lrn for the entity lrn, if it is NULL */
3948
3949 select apps_lrn
3950 into lv_apps_lrn
3951 from msc_apps_instances
3952 where instance_id = p_instance_id;
3953
3954 select min(nvl(supplier_capacity_lrn,lv_apps_lrn)),
3955 min(nvl(bom_lrn,lv_apps_lrn)),
3956 min(nvl(bor_lrn,lv_apps_lrn)),
3957 min(nvl(forecast_lrn,lv_apps_lrn)),
3958 min(nvl(item_lrn,lv_apps_lrn)),
3959 min(nvl(mds_lrn,lv_apps_lrn)),
3960 min(nvl(mps_lrn,lv_apps_lrn)),
3961 min(nvl(oh_lrn,lv_apps_lrn)),
3962 min(nvl(reservations_lrn,lv_apps_lrn)),
3963 min(nvl(LAST_SUCC_RES_REF_TIME, SYSDATE-365000)),
3964 min(nvl(po_lrn,lv_apps_lrn)),
3965 min(nvl(so_lrn,lv_apps_lrn)),
3966 min(nvl(user_supply_demand_lrn,lv_apps_lrn)),
3967 min(nvl(wip_lrn,lv_apps_lrn)),
3968 min(nvl(nra_lrn,lv_apps_lrn)),
3969 min(nvl(saf_stock_lrn,lv_apps_lrn)),
3970 min(nvl(unit_no_lrn,lv_apps_lrn)),
3971 min(nvl(uom_lrn,lv_apps_lrn)),
3972 min(nvl(calendar_lrn,lv_apps_lrn)),
3973 min(nvl(trip_lrn,lv_apps_lrn))
3974 into
3975 lv_sup_cap_lrn,
3976 lv_bom_lrn,
3977 lv_bor_lrn,
3978 lv_forecast_lrn,
3979 lv_item_lrn,
3980 lv_mds_lrn,
3981 lv_mps_lrn,
3982 lv_oh_lrn,
3983 lv_rsv_lrn,
3984 g_LAST_SUCC_RES_REF_TIME,
3985 lv_po_lrn,
3986 lv_so_lrn,
3987 lv_usd_lrn,
3988 lv_wip_lrn,
3989 lv_nra_lrn,
3990 lv_saf_stock_lrn,
3991 lv_unit_no_lrn,
3992 lv_uom_lrn,
3993 lv_calendar_lrn,
3994 lv_trip_lrn
3995 from msc_instance_orgs
3996 WHERE ((p_org_group =MSC_UTIL.G_ALL_ORGANIZATIONS) or (org_group=p_org_group))
3997 AND sr_instance_id = p_instance_id;
3998 /* Earlier sales order is alwasy collected in netchange even if sales order is not selected for continuous collection
3999 in srs */
4000
4001 select min(nvl(IRO_LRN,lv_apps_lrn)),
4002 nvl(min(LAST_SUCC_IRO_REF_TIME), SYSDATE-365000)
4003 into
4004 lv_iro_lrn,
4005 g_last_succ_iro_ref_time
4006 from msc_instance_orgs
4007 WHERE organization_type = 3
4008 AND sr_instance_id = p_instance_id;
4009
4010
4011 select min(nvl(ERO_LRN,lv_apps_lrn))
4012 into
4013 lv_ero_lrn
4014 from msc_instance_orgs
4015 WHERE organization_type <> 3
4016 AND sr_instance_id = p_instance_id;
4017
4018 IF (prec.sales_order_flag = MSC_UTIL.SYS_YES ) AND
4019 p_task_num in (TASK_SALES_ORDER1,TASK_SALES_ORDER2,TASK_SALES_ORDER3,TASK_AHL) THEN
4020 if ((p_rtype <> MSC_UTIL.G_INCREMENTAL and p_rtype <> MSC_UTIL.G_CONT) ) then
4021 -- do complete/targeted for this entity
4022 p_entity_lrnn := -1;
4023 else
4024 if (p_rtype = MSC_UTIL.G_CONT and prec.so_sn_flag = MSC_UTIL.SYS_TGT ) then
4025 p_entity_lrnn := -1;
4026 else
4027 -- do netchange for this entity
4028 p_entity_lrnn := lv_so_lrn;
4029 end if;
4030 end if;
4031
4032 -- Bug 13406851
4033 v_so_lrn := p_entity_lrnn;
4034 RETURN TRUE;
4035 END IF;
4036
4037
4038 IF (p_rtype <> MSC_UTIL.G_INCREMENTAL AND p_rtype <> MSC_UTIL.G_CONT ) then /* Non-incremental refresh or Non-Continious Refresh*/
4039 -- do targeted/complete for this entity
4040 p_entity_lrnn := -1;
4041 RETURN TRUE;
4042 ELSE
4043
4044 IF (prec.app_supp_cap_flag = MSC_UTIL.SYS_YES OR prec.app_supp_cap_flag =MSC_UTIL.ASL_YES_RETAIN_CP) AND p_task_num = TASK_SUPPLIER_CAPACITY THEN
4045 -- do net-change for this entity
4046 p_entity_lrnn := lv_sup_cap_lrn;
4047 RETURN TRUE;
4048 END IF;
4049
4050 IF prec.bom_flag = MSC_UTIL.SYS_YES THEN
4051 IF ((p_task_num = TASK_BOM) or
4052 (p_task_num = TASK_ROUTING) or
4053 (p_task_num = TASK_OPER_NETWORKS) or
4054 (p_task_num = TASK_ROUTING_OPERATIONS) or
4055 (p_task_num = TASK_OPERATION_RES_SEQS) or
4056 (p_task_num = TASK_OPERATION_RESOURCES) or
4057 (p_task_num = TASK_RESOURCE) or
4058 (p_task_num = TASK_RESOURCE_SETUP) or /* ds change */
4059 (p_task_num = TASK_RESOURCE_INSTANCE) or /* ds change */
4060 -- Load Resources Data excluding those based on WIP_FLAG
4061 (p_task_num = TASK_OPERATION_COMPONENTS) or
4062 (p_task_num = TASK_PROCESS_EFFECTIVITY) ) THEN
4063 -- MSC_CL_BOM_PULL.LOAD_BOM,
4064 -- MSC_CL_ROUTING_PULL.LOAD_ROUTING,
4065 -- MSC_CL_WIP_PULL.LOAD_OPER_NETWORKS
4066 -- MSC_CL_ROUTING_PULL.LOAD_ROUTING_OPERATIONS
4067 -- MSC_CL_ROUTING_PULL.LOAD_OPERATION_RES_SEQS
4068 -- MSC_CL_ROUTING_PULL.LOAD_OPERATION_RESOURCES
4069 -- MSC_CL_ROUTING_PULL.LOAD_OPERATION_COMPONENTS
4070 -- MSC_CL_BOM_PULL.LOAD_PROCESS_EFFECTIVITY
4071 -- extract effectivities are performed
4072
4073 -- do net-change for this entity
4074 p_entity_lrnn := lv_bom_lrn;
4075 RETURN TRUE;
4076
4077 END IF;
4078 END IF;
4079
4080 IF prec.bor_flag = MSC_UTIL.SYS_YES AND ( p_task_num = TASK_BOR ) THEN
4081 -- do net-change for this entity
4082 p_entity_lrnn := lv_bor_lrn;
4083 RETURN TRUE;
4084
4085 END IF;
4086
4087 IF prec.forecast_flag = MSC_UTIL.SYS_YES AND (p_task_num = TASK_LOAD_FORECAST) THEN
4088 -- both of the ones below will get executed
4089 -- MSC_CL_DEMAND_PULL.LOAD_FORECASTS
4090 -- MSC_CL_DEMAND_PULL.LOAD_ITEM_FORECASTS
4091
4092 -- do net-change for this entity
4093 p_entity_lrnn := lv_forecast_lrn;
4094 RETURN TRUE;
4095 END IF;
4096
4097 IF prec.item_flag = MSC_UTIL.SYS_YES THEN
4098 IF ((p_task_num = TASK_CATEGORY) or
4099 (p_task_num = TASK_ITEM1) or
4100 (p_task_num = TASK_ITEM2) or
4101 (p_task_num = TASK_ITEM3) ) THEN
4102
4103 -- do net-change for this entity
4104 p_entity_lrnn := lv_item_lrn;
4105 RETURN TRUE;
4106 END IF;
4107 END IF;
4108
4109
4110 IF prec.mds_flag = MSC_UTIL.SYS_YES AND (p_task_num = TASK_MDS_DEMAND) THEN
4111 -- do net-change for this entity
4112 p_entity_lrnn := lv_mds_lrn;
4113 RETURN TRUE;
4114 END IF;
4115
4116
4117 IF prec.mps_flag = MSC_UTIL.SYS_YES AND (p_task_num = TASK_MPS_SUPPLY) THEN
4118 -- do net-change for this entity
4119 p_entity_lrnn := lv_mps_lrn;
4120 RETURN TRUE;
4121 END IF;
4122
4123
4124 IF prec.oh_flag = MSC_UTIL.SYS_YES AND (p_task_num = TASK_OH_SUPPLY) THEN
4125 -- do net-change for this entity
4126 p_entity_lrnn := lv_oh_lrn;
4127 RETURN TRUE;
4128 END IF;
4129
4130
4131 -- IF prec.po_flag = MSC_UTIL.SYS_YES AND (p_task_num = TASK_PO_SUPPLY) THEN
4132 -- do net-change for this entity
4133 IF prec.po_flag = MSC_UTIL.SYS_YES THEN
4134 IF ( (p_task_num = TASK_PO_SUPPLY) or
4135 (p_task_num = TASK_PO_PO_SUPPLY) or
4136 (p_task_num = TASK_PO_REQ_SUPPLY) ) THEN
4137 p_entity_lrnn := lv_po_lrn;
4138 RETURN TRUE;
4139 END IF ;
4140 END IF;
4141
4142
4143 IF prec.user_supply_demand_flag = MSC_UTIL.SYS_YES AND ((p_task_num = TASK_USER_SUPPLY) OR (p_task_num = TASK_USER_DEMAND)) THEN
4144 -- do net-change for this entity
4145 p_entity_lrnn := lv_usd_lrn;
4146 RETURN TRUE;
4147 END IF;
4148
4149
4150 -- FOR MSC_CL_WIP_PULL.LOAD_WIP_SUPPLY
4151 -- FOR MSC_CL_WIP_PULL.LOAD_WIP_DEMAND
4152 IF prec.wip_flag = MSC_UTIL.SYS_YES AND ( (p_task_num = TASK_WIP_SUPPLY) OR
4153 (p_task_num = TASK_WIP_DEMAND) OR (p_task_num = TASK_RESOURCE)
4154 OR (p_task_num = TASK_RESOURCE_INSTANCE) ) THEN /* ds change */
4155 -- do net-change for this entity
4156 p_entity_lrnn := lv_wip_lrn;
4157 RETURN TRUE;
4158 END IF;
4159
4160
4161 IF (prec.calendar_flag = MSC_UTIL.SYS_YES OR prec.resource_nra_flag in (1,3)) AND ( p_task_num = TASK_CALENDAR_DATE ) THEN
4162 -- do net-change for this entity
4163 p_entity_lrnn := lv_calendar_lrn;
4164 RETURN TRUE;
4165 END IF;
4166
4167
4168 IF prec.reserves_flag = MSC_UTIL.SYS_YES AND ( p_task_num = TASK_HARD_RESERVATION ) THEN
4169 -- do net-change for this entity
4170 p_entity_lrnn := lv_rsv_lrn;
4171 RETURN TRUE;
4172 END IF;
4173
4174 IF prec.saf_stock_flag = MSC_UTIL.SYS_YES AND ( p_task_num = TASK_SAFETY_STOCK ) THEN
4175 -- do net-change for this entity
4176 p_entity_lrnn := lv_saf_stock_lrn;
4177 RETURN TRUE;
4178 END IF;
4179
4180
4181 IF prec.unit_number_flag = MSC_UTIL.SYS_YES AND ( p_task_num = TASK_UNIT_NUMBER ) THEN
4182 -- do net-change for this entity
4183 p_entity_lrnn := lv_unit_no_lrn;
4184 RETURN TRUE;
4185 END IF;
4186
4187 IF prec.uom_flag = MSC_UTIL.SYS_YES AND ( p_task_num = TASK_UOM ) THEN
4188 -- do net-change for this entity
4189 p_entity_lrnn := lv_uom_lrn;
4190 RETURN TRUE;
4191 END IF;
4192
4193
4194 IF (prec.mds_flag = MSC_UTIL.SYS_YES OR prec.mps_flag = MSC_UTIL.SYS_YES) AND (p_task_num = TASK_SCHEDULE) THEN
4195 p_entity_lrnn := p_lrnn;
4196 RETURN TRUE;
4197 END IF;
4198
4199 IF prec.atp_rules_flag = MSC_UTIL.SYS_YES AND (p_task_num = TASK_ATP_RULES) THEN p_entity_lrnn := p_lrnn;
4200 RETURN TRUE;
4201 END IF;
4202
4203 IF prec.demand_class_flag = MSC_UTIL.SYS_YES AND ( p_task_num = TASK_DEMAND_CLASS ) THEN
4204 p_entity_lrnn := p_lrnn;
4205 RETURN TRUE;
4206 END IF;
4207
4208 IF prec.kpi_bis_flag = MSC_UTIL.SYS_YES AND ( p_task_num = TASK_BIS ) THEN
4209 p_entity_lrnn := p_lrnn;
4210 RETURN TRUE;
4211 END IF;
4212
4213 IF prec.parameter_flag = MSC_UTIL.SYS_YES AND ( p_task_num = TASK_PARAMETER ) THEN
4214 p_entity_lrnn := p_lrnn;
4215 RETURN TRUE;
4216 END IF;
4217
4218 IF prec.planner_flag = MSC_UTIL.SYS_YES AND ( p_task_num = TASK_PLANNERS ) THEN
4219 p_entity_lrnn := p_lrnn;
4220 RETURN TRUE;
4221 END IF;
4222
4223 IF prec.project_flag = MSC_UTIL.SYS_YES AND ( p_task_num = TASK_PROJECT ) THEN
4224 p_entity_lrnn := p_lrnn;
4225 RETURN TRUE;
4226 END IF;
4227
4228 IF prec.sourcing_rule_flag = MSC_UTIL.SYS_YES AND ( p_task_num = TASK_SOURCING ) THEN
4229 p_entity_lrnn := p_lrnn;
4230 RETURN TRUE;
4231 END IF;
4232
4233 IF prec.sub_inventory_flag = MSC_UTIL.SYS_YES AND ( p_task_num = TASK_SUB_INVENTORY ) THEN
4234 p_entity_lrnn := p_lrnn;
4235 RETURN TRUE;
4236 END IF;
4237
4238 IF (prec.tp_customer_flag = MSC_UTIL.SYS_YES) OR (prec.tp_vendor_flag = MSC_UTIL.SYS_YES) THEN
4239 IF (p_task_num = TASK_TRADING_PARTNER) OR (p_task_num = TASK_BUYER_CONTACT) THEN
4240 p_entity_lrnn := p_lrnn;
4241 RETURN TRUE;
4242 END IF;
4243 END IF;
4244
4245 IF prec.item_subst_flag = MSC_UTIL.SYS_YES AND ( p_task_num = TASK_ITEM_SUBSTITUTES ) THEN
4246 p_entity_lrnn := p_lrnn;
4247 RETURN TRUE;
4248 END IF;
4249
4250 IF ( p_task_num = TASK_USER_COMPANY ) THEN
4251 IF (prec.user_company_flag = 2) OR (prec.user_company_flag = 3) THEN
4252 p_entity_lrnn := p_lrnn;
4253 RETURN TRUE;
4254 END IF;
4255 END IF;
4256
4257 IF prec.trip_flag = MSC_UTIL.SYS_YES AND (p_task_num = TASK_TRIP) THEN
4258 -- do net-change for this entity
4259 p_entity_lrnn := lv_trip_lrn;
4260 RETURN TRUE;
4261 END IF;
4262
4263 IF prec.external_repair_flag = MSC_UTIL.SYS_YES AND (p_task_num = TASK_ERO) THEN
4264 -- do net-change for this entity
4265 p_entity_lrnn := lv_ERO_lrn;
4266 RETURN TRUE;
4267 END IF;
4268
4269 IF prec.internal_repair_flag = MSC_UTIL.SYS_YES AND (p_task_num = TASK_IRO) THEN
4270 -- do net-change for this entity Bug 6126698
4271
4272 p_entity_lrnn := lv_IRO_lrn;
4273
4274 RETURN TRUE;
4275 END IF;
4276 END IF; /* Non-incremental refresh */
4277
4278
4279
4280 RETURN FALSE;
4281
4282 END get_entity_lrn;
4283
4284
4285
4286 FUNCTION SET_ST_STATUS( ERRBUF OUT NOCOPY VARCHAR2,
4287 RETCODE OUT NOCOPY NUMBER,
4288 pINSTANCE_ID IN NUMBER,
4289 pST_STATUS IN NUMBER,
4290 pSO_RTYPE IN NUMBER:= NULL)
4291 RETURN BOOLEAN
4292 IS
4293
4294 lv_staging_table_status NUMBER;
4295 lv_instance_enabled NUMBER;
4296 lv_refresh_type NUMBER;
4297 lv_cont_coll_mode msc_coll_parameters.so_sn_flag%type;
4298 lv_inv_ctp_val NUMBER := NVL(FND_PROFILE.Value('INV_CTP'),0);
4299 BEGIN
4300
4301 ---===================== PULLING ====================
4302
4303 IF pST_STATUS= MSC_UTIL.G_ST_PULLING THEN
4304
4305 SELECT mai.ENABLE_FLAG,
4306 mai.ST_STATUS,
4307 DECODE(mai.LRTYPE,'C',MSC_UTIL.G_COMPLETE,'P',MSC_UTIL.G_PARTIAL,'I',MSC_UTIL.G_INCREMENTAL,'T',MSC_UTIL.G_CONT)
4308 INTO lv_instance_enabled, lv_staging_table_status,lv_refresh_type
4309 FROM MSC_APPS_INSTANCES mai
4310 WHERE mai.INSTANCE_ID= pINSTANCE_ID
4311 FOR UPDATE;
4312
4313 IF lv_instance_enabled= MSC_UTIL.SYS_YES THEN
4314
4315 IF lv_staging_table_status= MSC_UTIL.G_ST_EMPTY THEN
4316 IF lv_refresh_type = MSC_UTIL.G_CONT THEN
4317 BEGIN
4318 SELECT so_sn_flag
4319 INTO lv_cont_coll_mode
4320 FROM msc_coll_parameters
4321 WHERE instance_id = pINSTANCE_ID;
4322 EXCEPTION
4323 WHEN others THEN
4324 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_FATAL_ERR, ERRBUF);
4325 RETCODE := MSC_UTIL.G_ERROR;
4326 RETURN FALSE;
4327 END;
4328 END IF;
4329 /* for bug:2605884 ,added the decode in updating so_tbl_status=2 if ODS ATP and complete
4330 refresh of the sales orders */
4331 UPDATE MSC_APPS_INSTANCES
4332 SET ST_STATUS= MSC_UTIL.G_ST_PULLING,
4333 SO_TBL_STATUS= DECODE( pSO_RTYPE,MSC_UTIL.SYS_YES
4334 ,decode(lv_refresh_type,MSC_UTIL.G_INCREMENTAL,MSC_UTIL.SYS_YES,
4335 decode(lv_inv_ctp_val,5,decode(lv_refresh_type,
4336 MSC_UTIL.G_CONT ,decode(lv_cont_coll_mode,
4337 MSC_UTIL.SYS_INCR,MSC_UTIL.SYS_YES,
4338 MSC_UTIL.SYS_NO,MSC_UTIL.SYS_YES,
4339 MSC_UTIL.SYS_NO),
4340 MSC_UTIL.SYS_NO),
4341 MSC_UTIL.SYS_YES)
4342 )
4343 ,MSC_UTIL.SYS_YES),
4344 LAST_UPDATE_DATE= SYSDATE,
4345 LAST_UPDATED_BY= FND_GLOBAL.USER_ID,
4346 REQUEST_ID= FND_GLOBAL.CONC_REQUEST_ID
4347 WHERE INSTANCE_ID= pINSTANCE_ID;
4348
4349 RETCODE := MSC_UTIL.G_SUCCESS;
4350
4351 RETURN TRUE;
4352
4353 ELSIF lv_staging_table_status= MSC_UTIL.G_ST_PULLING THEN
4354
4355 FND_MESSAGE.SET_NAME('MSC', 'MSC_ST_ERROR_PULLING');
4356 ERRBUF:= FND_MESSAGE.GET;
4357
4358 ELSIF lv_staging_table_status= MSC_UTIL.G_ST_READY THEN
4359
4360 FND_MESSAGE.SET_NAME('MSC', 'MSC_ST_ERROR_DATA_EXIST');
4361 ERRBUF:= FND_MESSAGE.GET;
4362
4363 ELSIF lv_staging_table_status= MSC_UTIL.G_ST_COLLECTING THEN
4364
4365 FND_MESSAGE.SET_NAME('MSC', 'MSC_ST_ERROR_LOADING');
4366 ERRBUF:= FND_MESSAGE.GET;
4367
4368 ELSIF lv_staging_table_status= MSC_UTIL.G_ST_PURGING THEN
4369
4370 FND_MESSAGE.SET_NAME('MSC', 'MSC_ST_ERROR_PURGING');
4371 ERRBUF:= FND_MESSAGE.GET;
4372
4373 END IF;
4374
4375 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_FATAL_ERR, ERRBUF);
4376 RETCODE := MSC_UTIL.G_ERROR;
4377 RETURN FALSE;
4378
4379 ELSE
4380 FND_MESSAGE.SET_NAME('MSC', 'MSC_DP_INSTANCE_INACTIVE');
4381 ERRBUF:= FND_MESSAGE.GET;
4382 RETCODE := MSC_UTIL.G_ERROR;
4383 RETURN FALSE;
4384 END IF;
4385
4386 ---===================== EMPTY ====================
4387 ELSIF pST_STATUS= MSC_UTIL.G_ST_EMPTY THEN
4388
4389 UPDATE MSC_APPS_INSTANCES
4390 SET ST_STATUS= MSC_UTIL.G_ST_EMPTY,
4391 LAST_UPDATE_DATE= SYSDATE,
4392 LAST_UPDATED_BY= FND_GLOBAL.USER_ID,
4393 REQUEST_ID= FND_GLOBAL.CONC_REQUEST_ID
4394 WHERE INSTANCE_ID= pINSTANCE_ID;
4395
4396 RETCODE:= MSC_UTIL.G_SUCCESS;
4397 RETURN TRUE;
4398
4399 ---===================== READY ====================
4400 ELSIF pST_STATUS= MSC_UTIL.G_ST_READY THEN
4401
4402 UPDATE MSC_APPS_INSTANCES
4403 SET ST_STATUS= MSC_UTIL.G_ST_READY,
4404 LAST_UPDATE_DATE= SYSDATE,
4405 LAST_UPDATED_BY= FND_GLOBAL.USER_ID,
4406 REQUEST_ID= FND_GLOBAL.CONC_REQUEST_ID
4407 WHERE INSTANCE_ID= pINSTANCE_ID;
4408
4409 RETCODE:= MSC_UTIL.G_SUCCESS;
4410 RETURN TRUE;
4411
4412 END IF;
4413
4414
4415 END SET_ST_STATUS;
4416
4417
4418 --============= Called by the monitor to get the TOTAL_TASK_NUMBER =========
4419
4420 PROCEDURE INITIALIZE( pREFRESH_ID OUT NOCOPY NUMBER,
4421 pTOTAL_TASK_NUMBER OUT NOCOPY NUMBER)
4422 IS
4423 BEGIN
4424
4425 Select MSC_CL_REFRESH_S.NEXTVAL
4426 into pREFRESH_ID
4427 from dual;
4428
4429 pTOTAL_TASK_NUMBER := TOTAL_TASK_NUMBER;
4430
4431 END INITIALIZE;
4432
4433 PROCEDURE FINAL( pINSTANCE_ID IN NUMBER,
4434 pORG_GROUP IN VARCHAR2,
4435 pRTYPE IN NUMBER,
4436 pSO_RTYPE IN NUMBER,
4437 pLRN IN NUMBER,
4438 pSOURCING_ENABLED IN NUMBER,
4439 prec IN MSC_UTIL.CollParamREC)
4440 IS
4441 BEGIN
4442
4443 --- PREPLACE CHANGE START ---
4444 /*
4445 UPDATE MSC_APPS_INSTANCES
4446 SET APPS_LRN= pLRN,
4447 LRTYPE= DECODE( pRTYPE, MSC_UTIL.SYS_YES, 'C', 'I'),
4448 SO_LRTYPE= DECODE( pSO_RTYPE, MSC_UTIL.SYS_YES, 'C', 'I'),
4449 LRID= msc_cl_refresh_s.currval,
4450 CLEANSED_FLAG= MSC_UTIL.SYS_NO,
4451 LAST_UPDATE_DATE= SYSDATE,
4452 LAST_UPDATED_BY= FND_GLOBAL.USER_ID,
4453 REQUEST_ID= FND_GLOBAL.CONC_REQUEST_ID,
4454 LR_SOURCING_FLAG = pSOURCING_ENABLED
4455 WHERE INSTANCE_ID= pINSTANCE_ID;
4456 */
4457
4458 UPDATE MSC_APPS_INSTANCES
4459 SET APPS_LRN= pLRN,
4460 LRTYPE= DECODE( pRTYPE, MSC_UTIL.G_COMPLETE, 'C',
4461 MSC_UTIL.G_INCREMENTAL, 'I',
4462 MSC_UTIL.G_PARTIAL, 'P',
4463 MSC_UTIL.G_CONT, 'T'),
4464 SO_LRTYPE= DECODE( pSO_RTYPE, MSC_UTIL.SYS_YES, DECODE(pRTYPE,MSC_UTIL.G_INCREMENTAL,'I', 'C'), 'I'),
4465 LRID= msc_cl_refresh_s.currval,
4466 CLEANSED_FLAG= MSC_UTIL.SYS_NO,
4467 LAST_UPDATE_DATE= SYSDATE,
4468 LAST_UPDATED_BY= FND_GLOBAL.USER_ID,
4469 REQUEST_ID= FND_GLOBAL.CONC_REQUEST_ID,
4470 LR_SOURCING_FLAG = pSOURCING_ENABLED
4471 WHERE INSTANCE_ID= pINSTANCE_ID;
4472
4473 --- PREPLACE CHANGE END ---
4474
4475 UPDATE MSC_INSTANCE_ORGS
4476 SET ITEM_LRN = decode(prec.item_flag,1,pLRN,ITEM_LRN),
4477 SAF_STOCK_LRN = decode(prec.saf_stock_flag, 1, pLRN, SAF_STOCK_LRN),
4478 UNIT_NO_LRN = decode(prec.unit_number_flag,1,pLRN,UNIT_NO_LRN),
4479 UOM_LRN = decode(prec.uom_flag,1,pLRN,UOM_LRN),
4480 BOM_LRN = decode(prec.bom_flag,1,pLRN,BOM_LRN),
4481 BOR_LRN = decode(prec.bor_flag ,1,pLRN,BOR_LRN ),
4482 FORECAST_LRN = decode(prec.forecast_flag ,1,pLRN,FORECAST_LRN ),
4483 MDS_LRN = decode(prec.mds_flag ,1,pLRN,MDS_LRN ),
4484 MPS_LRN = decode(prec.mps_flag ,1,pLRN,MPS_LRN ),
4485 OH_LRN = decode(prec.oh_flag ,1,pLRN,OH_LRN ),
4486 PO_LRN = decode(prec.po_flag ,1,pLRN,PO_LRN ),
4487 WIP_LRN = decode(prec.wip_flag ,1,pLRN,WIP_LRN ),
4488 RESERVATIONS_LRN = decode(prec.reserves_flag ,1,pLRN,RESERVATIONS_LRN ),
4489 USER_SUPPLY_DEMAND_LRN = decode(prec.user_supply_demand_flag ,1,pLRN,USER_SUPPLY_DEMAND_LRN ),
4490 SUPPLIER_CAPACITY_LRN = decode(prec.app_supp_cap_flag ,1,pLRN, 3,pLRN,SUPPLIER_CAPACITY_LRN ),
4491 TRIP_LRN = decode(prec.trip_flag ,1,pLRN,TRIP_LRN ),
4492 LAST_SUCC_RES_REF_TIME = decode(prec.reserves_flag ,1,sysdate,g_LAST_SUCC_RES_REF_TIME),
4493 ORG_LRN = pLRN
4494 WHERE SR_INSTANCE_ID= pINSTANCE_ID
4495 AND (pORG_GROUP= MSC_UTIL.G_ALL_ORGANIZATIONS OR ORG_GROUP=pORG_GROUP);
4496
4497 IF (prec.external_repair_flag = MSC_UTIL.SYS_YES AND MSC_UTIL.G_COLLECT_SRP_DATA = 'Y') THEN
4498 UPDATE MSC_INSTANCE_ORGS
4499 SET ERO_LRN = decode(prec.external_repair_flag ,1,pLRN,ERO_LRN )
4500 WHERE SR_INSTANCE_ID= pINSTANCE_ID
4501 AND organization_type <> 3;
4502 END IF;
4503
4504 IF (prec.internal_repair_flag = MSC_UTIL.SYS_YES AND MSC_UTIL.G_COLLECT_SRP_DATA = 'Y' ) THEN
4505 UPDATE MSC_INSTANCE_ORGS
4506 SET
4507 IRO_LRN = decode(prec.internal_repair_flag ,1,pLRN,IRO_LRN ),
4508 LAST_SUCC_IRO_REF_TIME = sysdate
4509 WHERE SR_INSTANCE_ID= pINSTANCE_ID
4510 AND organization_type = 3;
4511 END IF;
4512
4513 IF ((prec.calendar_flag = MSC_UTIL.SYS_YES) OR (prec.resource_nra_flag in (1,3))) THEN
4514 UPDATE MSC_INSTANCE_ORGS
4515 SET CALENDAR_LRN= pLRN
4516 WHERE SR_INSTANCE_ID= pINSTANCE_ID
4517 AND (pORG_GROUP= MSC_UTIL.G_ALL_ORGANIZATIONS OR ORG_GROUP=pORG_GROUP);
4518 END IF;
4519
4520 /* Sales orders are not collected during Targeted and Continious Refresh if Sales Orders = No, so we will not update SO_LRN in this case */
4521 IF ( (pRTYPE = MSC_UTIL.G_PARTIAL OR pRTYPE = MSC_UTIL.G_CONT) AND prec.sales_order_flag = MSC_UTIL.SYS_NO ) THEN
4522 NULL;
4523 ELSE
4524 UPDATE MSC_INSTANCE_ORGS
4525 SET SO_LRN= pLRN
4526 WHERE SR_INSTANCE_ID= pINSTANCE_ID
4527 AND (pORG_GROUP= MSC_UTIL.G_ALL_ORGANIZATIONS OR ORG_GROUP=pORG_GROUP);
4528 END IF;
4529
4530
4531 END;
4532
4533 -- ============== PARTIAL REPLACEMENT METHODS ====================
4534
4535 --- PREPLACE CHANGE START ---
4536
4537 /* NCPerf */
4538 FUNCTION Q_PARTIAL_TASK (p_instance_id NUMBER,
4539 p_task_num NUMBER,
4540 prec MSC_UTIL.CollParamREC,
4541 p_collection_type NUMBER)
4542
4543 RETURN BOOLEAN AS
4544
4545 BEGIN
4546
4547 IF (prec.app_supp_cap_flag = MSC_UTIL.ASL_YES or prec.app_supp_cap_flag = MSC_UTIL.ASL_YES_RETAIN_CP ) THEN
4548 IF p_task_num = TASK_SUPPLIER_CAPACITY THEN
4549 RETURN TRUE;
4550 END IF;
4551 END IF;
4552
4553 IF prec.atp_rules_flag = MSC_UTIL.SYS_YES THEN
4554 IF p_task_num = TASK_ATP_RULES THEN
4555 if (p_collection_type = MSC_UTIL.G_INCREMENTAL) then
4556 return false; -- NCP: do not call TASK_ATP_RULES in net change
4557 else
4558 RETURN TRUE;
4559 end if;
4560 END IF;
4561 END IF;
4562
4563 IF prec.bom_flag = MSC_UTIL.SYS_YES THEN
4564 IF ((p_task_num = TASK_BOM) or
4565 (p_task_num = TASK_ROUTING) or
4566 (p_task_num = TASK_OPER_NETWORKS) or
4567 (p_task_num = TASK_ROUTING_OPERATIONS) or
4568 (p_task_num = TASK_OPERATION_RES_SEQS) or
4569 (p_task_num = TASK_OPERATION_RESOURCES) or
4570 (p_task_num = TASK_RESOURCE) or
4571 (p_task_num = TASK_RESOURCE_SETUP) or /* ds change */
4572 (p_task_num = TASK_RESOURCE_INSTANCE) or /* ds change */
4573 -- Load Resources Data excluding those based on WIP_FLAG
4574 (p_task_num = TASK_OPERATION_COMPONENTS) or
4575 (p_task_num = TASK_PROCESS_EFFECTIVITY) ) THEN
4576 -- MSC_CL_BOM_PULL.LOAD_BOM,
4577 -- MSC_CL_ROUTING_PULL.LOAD_ROUTING,
4578 -- MSC_CL_WIP_PULL.LOAD_OPER_NETWORKS
4579 -- MSC_CL_ROUTING_PULL.LOAD_ROUTING_OPERATIONS
4580 -- MSC_CL_ROUTING_PULL.LOAD_OPERATION_RES_SEQS
4581 -- MSC_CL_ROUTING_PULL.LOAD_OPERATION_RESOURCES
4582 -- MSC_CL_ROUTING_PULL.LOAD_OPERATION_COMPONENTS
4583 -- MSC_CL_BOM_PULL.LOAD_PROCESS_EFFECTIVITY
4584 -- extract effectivities are performed
4585 RETURN TRUE;
4586 END IF;
4587 END IF;
4588
4589 IF prec.bor_flag = MSC_UTIL.SYS_YES THEN
4590 IF ( p_task_num = TASK_BOR ) THEN
4591 if (p_collection_type = MSC_UTIL.G_INCREMENTAL) then
4592 return false; -- NCP: do not call TASK_BOR in net change
4593 else
4594 RETURN TRUE;
4595 end if;
4596 END IF;
4597 END IF;
4598
4599 IF prec.calendar_flag = MSC_UTIL.SYS_YES THEN
4600 IF ( p_task_num = TASK_CALENDAR_DATE ) THEN
4601 if (p_collection_type = MSC_UTIL.G_INCREMENTAL) then
4602 return false; -- NCP: do not call TASK_CALENDAR_DATE in net change
4603 else
4604 RETURN TRUE;
4605 end if;
4606 END IF;
4607 END IF;
4608
4609 IF prec.demand_class_flag = MSC_UTIL.SYS_YES THEN
4610 IF ( p_task_num = TASK_DEMAND_CLASS ) THEN
4611 if (p_collection_type = MSC_UTIL.G_INCREMENTAL) then
4612 return false; -- NCP: do not call TASK_DEMAND_CLASS in net change
4613 else
4614 RETURN TRUE;
4615 end if;
4616 END IF;
4617 END IF;
4618
4619 IF prec.forecast_flag = MSC_UTIL.SYS_YES THEN
4620 IF (p_task_num = TASK_LOAD_FORECAST) THEN
4621 -- both of the ones below will get executed
4622 -- MSC_CL_DEMAND_PULL.LOAD_FORECASTS
4623 -- MSC_CL_DEMAND_PULL.LOAD_ITEM_FORECASTS
4624 RETURN TRUE;
4625 END IF;
4626 END IF;
4627
4628 IF prec.item_flag = MSC_UTIL.SYS_YES THEN
4629 IF ((p_task_num = TASK_CATEGORY) or
4630 (p_task_num = TASK_ITEM1) or
4631 (p_task_num = TASK_ITEM2) or
4632 (p_task_num = TASK_ITEM3) or
4633 (p_task_num = TASK_ABC_CLASSES) )THEN
4634
4635 RETURN TRUE;
4636 END IF;
4637 END IF;
4638
4639 -- TASK_BUYER_CONTACT now moved to combine
4640 -- with TRADING_PARTNER since ODS LOAD
4641 -- loads contact information through MSC_CL_SETUP_PULL.LOAD_TRADING_PARTNER.
4642
4643 IF prec.kpi_bis_flag = MSC_UTIL.SYS_YES THEN
4644 IF ( p_task_num = TASK_BIS ) THEN
4645 RETURN TRUE;
4646 END IF;
4647 END IF;
4648
4649 IF prec.mds_flag = MSC_UTIL.SYS_YES THEN
4650 IF ((p_task_num = TASK_MDS_DEMAND) OR
4651 (p_task_num = TASK_SCHEDULE) ) THEN
4652 RETURN TRUE;
4653 END IF;
4654 END IF;
4655
4656 IF prec.mps_flag = MSC_UTIL.SYS_YES THEN
4657 IF ((p_task_num = TASK_MPS_SUPPLY) OR
4658 (p_task_num = TASK_SCHEDULE) ) THEN
4659 RETURN TRUE;
4660 END IF;
4661 END IF;
4662
4663 IF prec.oh_flag = MSC_UTIL.SYS_YES THEN
4664 IF p_task_num = TASK_OH_SUPPLY THEN
4665 RETURN TRUE;
4666 END IF;
4667 END IF;
4668
4669 IF prec.parameter_flag = MSC_UTIL.SYS_YES THEN
4670 IF p_task_num = TASK_PARAMETER THEN
4671 RETURN TRUE;
4672 END IF;
4673 END IF;
4674
4675 IF prec.planner_flag = MSC_UTIL.SYS_YES THEN
4676 IF p_task_num = TASK_PLANNERS THEN
4677 RETURN TRUE;
4678 END IF;
4679 END IF;
4680
4681 IF prec.project_flag = MSC_UTIL.SYS_YES THEN
4682 IF p_task_num = TASK_PROJECT THEN
4683 if (p_collection_type = MSC_UTIL.G_INCREMENTAL) then
4684 return false; -- NCP: do not call TASK_PROJECT in net change
4685 else
4686 RETURN TRUE;
4687 end if;
4688 END IF;
4689 END IF;
4690
4691 IF prec.po_flag = MSC_UTIL.SYS_YES THEN
4692 -- IF p_task_num = TASK_PO_SUPPLY THEN
4693 IF ((p_task_num = TASK_PO_SUPPLY) or
4694 (p_task_num = TASK_PO_PO_SUPPLY) or
4695 (p_task_num = TASK_PO_REQ_SUPPLY)) THEN
4696 RETURN TRUE;
4697 END IF;
4698 END IF;
4699
4700 IF prec.reserves_flag = MSC_UTIL.SYS_YES THEN
4701 IF ((p_task_num = TASK_HARD_RESERVATION) OR
4702 (p_task_num = TASK_CMRO_SUPP_RESRV)) THEN
4703 -- FOR MSC_CL_DEMAND_PULL.LOAD_HARD_RESERVATION
4704 RETURN TRUE;
4705 END IF;
4706 END IF;
4707
4708 IF prec.resource_nra_flag in (1,3) THEN
4709 IF p_task_num = TASK_CALENDAR_DATE THEN
4710 -- Can we create another task TASK_NRA??
4711 -- Will call MSC_CL_SETUP_PULL.LOAD_TRADING_PARTNER
4712 -- and also will carry out NRA calculation
4713 -- using gmp_calendar_pkg.populate_rsrc_cal
4714 RETURN TRUE;
4715 END IF;
4716 END IF;
4717
4718 IF prec.saf_stock_flag = MSC_UTIL.SYS_YES THEN
4719 IF p_task_num = TASK_SAFETY_STOCK THEN
4720 RETURN TRUE;
4721 END IF;
4722 END IF;
4723
4724 IF prec.sales_order_flag = MSC_UTIL.SYS_YES THEN
4725 IF (p_task_num = TASK_SALES_ORDER1
4726 OR p_task_num = TASK_SALES_ORDER2
4727 OR p_task_num = TASK_SALES_ORDER3
4728 OR p_task_num = TASK_AHL) THEN
4729 RETURN TRUE;
4730 END IF;
4731 END IF;
4732
4733 --=======================================
4734 -- NCPerf.
4735 -- Sales Orders need to be collected in
4736 -- case of Net change collections even if
4737 -- Sales Order parameter is set to NO
4738 -- ======================================
4739 -- commenting this code as above comment is no longer true
4740 /*
4741 IF ((p_task_num = TASK_SALES_ORDER1
4742 OR p_task_num = TASK_SALES_ORDER2
4743 OR p_task_num = TASK_SALES_ORDER3
4744 OR p_task_num = TASK_AHL) and
4745 (p_collection_type = MSC_UTIL.G_INCREMENTAL)) THEN
4746 RETURN TRUE;
4747 END IF;
4748 */
4749
4750 IF prec.sourcing_rule_flag = MSC_UTIL.SYS_YES THEN
4751 IF p_task_num = TASK_SOURCING THEN
4752 if (p_collection_type = MSC_UTIL.G_INCREMENTAL) then
4753 return false; -- NCP: do not call TASK_SOURCING in net change
4754 else
4755 RETURN TRUE;
4756 end if;
4757 -- FOR MSC_CL_OTHER_PULL.LOAD_SOURCING
4758 END IF;
4759 END IF;
4760
4761 -- NOTE : There is no procedure that deals
4762 -- with Sourcing History in Data Pull,
4763 -- which completely belongs to ODS Load.
4764
4765 IF prec.sub_inventory_flag = MSC_UTIL.SYS_YES THEN
4766 IF p_task_num = TASK_SUB_INVENTORY THEN
4767 if (p_collection_type = MSC_UTIL.G_INCREMENTAL) then
4768 return false; -- NCP: do not call TASK_SUB_INVENTORY in net change
4769 else
4770 RETURN TRUE;
4771 end if;
4772 END IF;
4773 END IF;
4774
4775 -- TASK_BUYER_CONTACT now moved to combine
4776 -- with TRADING_PARTNER since ODS LOAD
4777 -- loads contact information through MSC_CL_SETUP_PULL.LOAD_TRADING_PARTNER.
4778
4779 IF prec.tp_customer_flag = MSC_UTIL.SYS_YES OR prec.tp_vendor_flag = MSC_UTIL.SYS_YES THEN
4780 IF ((p_task_num = TASK_TRADING_PARTNER) and
4781 (p_collection_type = MSC_UTIL.G_INCREMENTAL)) then
4782 return false; -- NCP: do not call TASK_TRADING_PARTNER in net change
4783 ELSIF ((p_task_num = TASK_TRADING_PARTNER) or
4784 (p_task_num = TASK_BUYER_CONTACT) ) THEN
4785 RETURN TRUE;
4786 END IF;
4787 END IF;
4788
4789 IF prec.unit_number_flag = MSC_UTIL.SYS_YES THEN
4790 IF p_task_num = TASK_UNIT_NUMBER THEN
4791 RETURN TRUE;
4792 END IF;
4793 END IF;
4794
4795 IF prec.uom_flag = MSC_UTIL.SYS_YES THEN
4796 IF p_task_num = TASK_UOM THEN
4797 if (p_collection_type = MSC_UTIL.G_INCREMENTAL) then
4798 return false; -- NCP: do not call TASK_UOM in net change
4799 else
4800 RETURN TRUE;
4801 end if;
4802 END IF;
4803 END IF;
4804
4805 -- Added this task for Prod subst in Targeted Collections --
4806 IF prec.item_subst_flag = MSC_UTIL.SYS_YES THEN
4807 IF p_task_num = TASK_ITEM_SUBSTITUTES THEN
4808 RETURN TRUE;
4809 END IF;
4810 END IF;
4811
4812 IF prec.user_supply_demand_flag = MSC_UTIL.SYS_YES THEN
4813 IF ((p_task_num = TASK_USER_SUPPLY) OR
4814 (p_task_num = TASK_USER_DEMAND)) THEN
4815 RETURN TRUE;
4816 END IF;
4817 END IF;
4818
4819 IF prec.wip_flag = MSC_UTIL.SYS_YES THEN
4820 IF ((p_task_num = TASK_WIP_SUPPLY) or
4821 (p_task_num = TASK_WIP_DEMAND) or
4822 (p_task_num = TASK_RESOURCE_INSTANCE) or /* ds change */
4823 (p_task_num = TASK_RESOURCE) ) THEN
4824 -- Load Resources Data excluding those based on BOM_FLAG
4825 -- FOR MSC_CL_WIP_PULL.LOAD_WIP_SUPPLY
4826 -- FOR MSC_CL_WIP_PULL.LOAD_WIP_DEMAND
4827 -- FOR MSC_CL_BOM_PULL.LOAD_RESOURCE
4828 RETURN TRUE;
4829 END IF;
4830 END IF;
4831
4832 /* SCE Change starts */
4833 IF ((prec.user_company_flag = 2) OR
4834 (prec.user_company_flag = 3)) THEN
4835 IF p_task_num = TASK_USER_COMPANY THEN
4836 RETURN TRUE;
4837 END IF;
4838 END IF;
4839 /* SCE Change ends */
4840
4841 /* CP-ACK starts */
4842 IF (prec.supplier_response_flag = MSC_UTIL.SYS_YES) THEN
4843 IF (p_task_num = TASK_SUPPLIER_RESPONSE) THEN
4844 RETURN TRUE;
4845 END IF;
4846 END IF;
4847 /* CP-ACK ends */
4848
4849 IF (prec.trip_flag = MSC_UTIL.SYS_YES) THEN
4850 IF (p_task_num = TASK_TRIP) THEN
4851 RETURN TRUE;
4852 END IF;
4853 END IF;
4854
4855 IF (prec.sales_channel_flag = MSC_UTIL.SYS_YES) THEN
4856 IF (p_task_num = TASK_SALES_CHANNEL) THEN
4857 RETURN TRUE;
4858 END IF;
4859 END IF;
4860
4861 IF (prec.fiscal_calendar_flag = MSC_UTIL.SYS_YES) THEN
4862 IF (p_task_num = TASK_FISCAL_CALENDAR) THEN
4863 RETURN TRUE;
4864 END IF;
4865 END IF;
4866
4867 IF prec.internal_repair_flag = MSC_UTIL.SYS_YES THEN
4868 IF (MSC_UTIL.G_COLLECT_SRP_DATA='Y') THEN
4869 IF ( (p_task_num = TASK_IRO_DEMAND) or
4870 (p_task_num = TASK_IRO )) THEN /*changes for executing repair order load Bug# 5909379*/
4871 RETURN TRUE;
4872 END IF;
4873 END IF;
4874 END IF;
4875
4876 IF prec.external_repair_flag = MSC_UTIL.SYS_YES THEN
4877 IF (MSC_UTIL.G_COLLECT_SRP_DATA='Y') THEN
4878 IF ( (p_task_num = TASK_ERO_DEMAND) or
4879 (p_task_num = TASK_ERO )) THEN /*changes for executing repair order load Bug# 5909379*/
4880 RETURN TRUE;
4881 END IF;
4882 END IF;
4883 END IF;
4884 IF (prec.payback_demand_supply_flag = MSC_UTIL.SYS_YES) THEN
4885 IF (p_task_num = TASK_PAYBACK_DEMAND_SUPPLY) THEN
4886 RETURN TRUE;
4887 END IF;
4888 END IF;
4889 -- for bug # 6469722
4890 IF (prec.currency_conversion_flag = MSC_UTIL.SYS_YES) THEN
4891 IF (p_task_num = TASK_CURRENCY_CONVERSION) THEN
4892 RETURN TRUE;
4893 END IF;
4894 END IF;
4895 -- for bug # 6730983
4896 IF (prec.delivery_details_flag = MSC_UTIL.SYS_YES) THEN
4897 IF (p_task_num = TASK_DELIVERY_DETAILS) THEN
4898 RETURN TRUE;
4899 END IF;
4900 END IF;
4901
4902 IF (prec.ibuc_history_flag = MSC_UTIL.SYS_YES) THEN
4903 IF (p_task_num = TASK_IBUC_HISTORY) THEN
4904 RETURN TRUE;
4905 END IF;
4906 END IF;
4907
4908 IF (prec.notes_attach_flag = MSC_UTIL.SYS_YES) THEN
4909 IF (p_task_num = TASK_SHORT_TEXT) OR (p_task_num = TASK_LONG_TEXT) THEN
4910 RETURN TRUE;
4911 END IF;
4912 END IF;
4913 /* USAF */
4914 IF (prec.eAM_info_flag = MSC_UTIL.SYS_YES) THEN
4915 IF (p_task_num = TASK_EAM_INFO) THEN
4916 RETURN TRUE;
4917 END IF;
4918 END IF;
4919 IF (prec.eAM_forecasts_flag = MSC_UTIL.SYS_YES) THEN
4920 IF (p_task_num = TASK_EAM_FORECAST) THEN
4921 RETURN TRUE;
4922 END IF;
4923 END IF;
4924
4925 IF (prec.cmro_flag = MSC_UTIL.SYS_YES) THEN
4926 IF (p_task_num = TASK_VISITS) OR (p_task_num = TASK_WO_ATTRIBUTES) OR
4927 (p_task_num = TASK_WO_TASK_HIERARCHY) OR
4928 (p_task_num = TASK_WO_OPERATION_REL ) OR
4929 (p_task_num = TASK_WORK_BREAKDOWN_STRUCT ) OR
4930 (p_task_num = TASK_WO_MILESTONES ) OR
4931 (p_task_num = TASK_WO_SUB_COMP )
4932 THEN
4933 RETURN TRUE;
4934 END IF;
4935 END IF;
4936 IF (prec.cmro_forecasts_flag = MSC_UTIL.SYS_YES) THEN
4937 IF (p_task_num = TASK_CMRO_FORECASTS) THEN
4938 RETURN TRUE;
4939 END IF;
4940 END IF;
4941
4942 IF (prec.cmro_closed_wo = MSC_UTIL.SYS_YES) THEN
4943 IF (p_task_num = TASK_cmro_closed_wo) THEN
4944 RETURN TRUE;
4945 END IF;
4946 END IF;
4947
4948 IF (prec.osp_supply = MSC_UTIL.SYS_YES) THEN
4949 IF (p_task_num = TASK_OSP_SUPPLY) THEN
4950 RETURN TRUE;
4951 END IF;
4952 END IF;
4953
4954 RETURN FALSE;
4955
4956 END Q_PARTIAL_TASK;
4957
4958 --- PREPLACE CHANGE END ---
4959
4960 -- agmcont
4961
4962
4963 -- ===============================================================
4964
4965 PROCEDURE EXECUTE_TASK(
4966 pSTATUS OUT NOCOPY NUMBER,
4967 pTASKNUM IN NUMBER,
4968 pIID IN NUMBER,
4969 pLRN IN NUMBER,
4970 pREFRESH_ID IN NUMBER,
4971 ----- PROFILE OPTION, ENVIRONMENT, INSTALLATION -----------------------
4972 pSO_SHIP_ARRIVE_VALUE IN NUMBER,
4973 pMPS_CONSUME_PROFILE_VALUE IN NUMBER,
4974 pSPREAD_LOAD IN NUMBER,
4975 pHOUR_UOM IN VARCHAR2,
4976 pLANG IN VARCHAR2,
4977 pOE_INSTALL IN VARCHAR2,
4978 ----- MSC PROFILE OPTION ----------------------------------------------
4979 pMSO_ITEM_DMD_PENALTY IN NUMBER,
4980 pMSO_ITEM_CAP_PENALTY IN NUMBER,
4981 pMSO_ORG_DMD_PENALTY IN NUMBER,
4982 pMSO_ORG_ITEM_PENALTY IN NUMBER,
4983 pMSO_ORG_RES_PENALTY IN NUMBER,
4984 pMSO_ORG_TRSP_PENALTY IN NUMBER,
4985 pMSC_AGGREG_RES_NAME IN NUMBER,
4986 pMSO_RES_PENALTY IN NUMBER,
4987 pMSO_SUP_CAP_PENALTY IN NUMBER,
4988 pMSC_BOM_SUBST_PRIORITY IN NUMBER,
4989 pMSO_TRSP_PENALTY IN NUMBER,
4990 pMSC_ALT_BOM_COST IN NUMBER,
4991 pMSO_FCST_PENALTY IN NUMBER,
4992 pMSO_SO_PENALTY IN NUMBER,
4993 pMSC_ALT_OP_RES IN NUMBER,
4994 pMSC_ALT_RES_PRIORITY IN NUMBER,
4995 pMSC_BATCHABLE_FLAG IN NUMBER,
4996 pMSC_BATCHING_WINDOW IN NUMBER,
4997 pMSC_MIN_CAPACITY IN NUMBER,
4998 pMSC_MAX_CAPACITY IN NUMBER,
4999 pMSC_UNIT_OF_MEASURE IN NUMBER,
5000 pMSC_SIMUL_RES_SEQ IN NUMBER,
5001 pMRP_BIS_AV_DISCOUNT IN NUMBER,
5002 pMRP_BIS_PRICE_LIST IN NUMBER,
5003 pMSC_DMD_PRIORITY_FLEX_NUM IN NUMBER,
5004 pMSC_FCST_PRIORITY_FLEX_NUM IN NUMBER,
5005 ----- FLAGS -----------------------------------------------------------
5006 pITEM_ENABLED IN NUMBER,
5007 pVENDOR_ENABLED IN NUMBER,
5008 pCUSTOMER_ENABLED IN NUMBER,
5009 pBOM_ENABLED IN NUMBER,
5010 pHARD_RESRVS_ENABLED IN NUMBER,
5011 pSOURCING_ENABLED IN NUMBER,
5012 pWIP_ENABLED IN NUMBER,
5013 pPO_RECEIPTS_ENABLED IN NUMBER,
5014 pSS_ENABLED IN NUMBER,
5015 pPO_ENABLED IN NUMBER,
5016 pITEM_SUBST_ENABLED IN NUMBER,
5017 pOH_ENABLED IN NUMBER,
5018 pSUPPLIER_CAP_ENABLED IN NUMBER,
5019 pUOM_ENABLED IN NUMBER,
5020 pMDS_ENABLED IN NUMBER,
5021 pFORECAST_ENABLED IN NUMBER,
5022 pMPS_ENABLED IN NUMBER,
5023 pNRA_ENABLED IN NUMBER,
5024 pSH_ENABLED IN NUMBER,
5025 pUSER_COMPANY_ENABLED IN NUMBER,
5026 /* CP-ACK starts */
5027 pSUPPLIER_RESPONSE_ENABLED IN NUMBER,
5028 /* CP-ACK ends */
5029 pTRIP_ENABLED IN NUMBER,
5030 prec in MSC_UTIL.CollParamREC
5031 )
5032
5033 IS
5034
5035 lv_task_start_time DATE;
5036
5037
5038 -- Added for Process MFG
5039 lv_return_status BOOLEAN;
5040 lv_refresh_type NUMBER;
5041 lv_entity_lrn NUMBER;
5042 lv_sql_stmt VARCHAR2(32767);
5043 lv_ps_ver NUMBER;
5044
5045 lv_nra_enabled_r11 NUMBER;
5046
5047 EX_SERIALIZATION_ERROR EXCEPTION;
5048
5049 PRAGMA EXCEPTION_INIT(EX_SERIALIZATION_ERROR, -8177);
5050
5051 -- agmcont
5052 lv_cont_lrn number;
5053
5054 BEGIN
5055
5056
5057 IF fnd_global.conc_request_id > 0 THEN
5058 v_cp_enabled:= MSC_UTIL.SYS_YES;
5059 ELSE
5060 v_cp_enabled:= MSC_UTIL.SYS_NO;
5061 END IF;
5062
5063 v_instance_id := pIID;
5064 v_lrnn := pLRN;
5065 v_lrn := TO_CHAR(pLRN);
5066 v_refresh_id := pREFRESH_ID;
5067 v_org_group := prec.org_group_flag;
5068
5069
5070
5071 ----- PROFILE OPTION --------------------------------------------------
5072
5073 v_so_ship_arrive_value := pSO_SHIP_ARRIVE_VALUE;
5074 v_mps_consume_profile_value := pMPS_CONSUME_PROFILE_VALUE;
5075 v_spread_load := pSPREAD_LOAD;
5076 v_hour_uom := pHOUR_UOM;
5077 v_lang := pLANG;
5078 v_oe_install := pOE_INSTALL;
5079
5080 v_mso_item_dmd_penalty := pMSO_ITEM_DMD_PENALTY;
5081 v_mso_item_cap_penalty := pMSO_ITEM_CAP_PENALTY;
5082 v_mso_org_dmd_penalty := pMSO_ORG_DMD_PENALTY;
5083 v_mso_org_item_penalty := pMSO_ORG_ITEM_PENALTY;
5084 v_mso_org_res_penalty := pMSO_ORG_RES_PENALTY;
5085 v_mso_org_trsp_penalty := pMSO_ORG_TRSP_PENALTY;
5086 v_msc_batchable_flag := pMSC_BATCHABLE_FLAG;
5087 v_msc_batching_window := pMSC_BATCHING_WINDOW;
5088 v_msc_min_capacity := pMSC_MIN_CAPACITY;
5089 v_msc_max_capacity := pMSC_MAX_CAPACITY;
5090 v_msc_unit_of_measure := pMSC_UNIT_OF_MEASURE;
5091 v_msc_aggreg_res_name := pMSC_AGGREG_RES_NAME;
5092 v_mso_res_penalty := pMSO_RES_PENALTY;
5093 v_mso_sup_cap_penalty := pMSO_SUP_CAP_PENALTY;
5094 v_msc_bom_subst_priority := pMSC_BOM_SUBST_PRIORITY;
5095 v_mso_trsp_penalty := pMSO_TRSP_PENALTY;
5096 v_msc_alt_bom_cost := pMSC_ALT_BOM_COST;
5097 v_mso_fcst_penalty := pMSO_FCST_PENALTY;
5098 v_mso_so_penalty := pMSO_SO_PENALTY;
5099 v_msc_alt_op_res := pMSC_ALT_OP_RES;
5100 v_msc_alt_res_priority := pMSC_ALT_RES_PRIORITY;
5101 v_msc_simul_res_seq := pMSC_SIMUL_RES_SEQ;
5102 v_mrp_bis_av_discount := pMRP_BIS_AV_DISCOUNT;
5103 v_mrp_bis_price_list := pMRP_BIS_PRICE_LIST;
5104 v_msc_dmd_priority_flex_num := pMSC_DMD_PRIORITY_FLEX_NUM;
5105 v_msc_fcst_priority_flex_num := pMSC_FCST_PRIORITY_FLEX_NUM;
5106
5107 ----- FLAGS -----------------------------------------------------------
5108
5109 ITEM_ENABLED := pITEM_ENABLED;
5110 FORECAST_ENABLED := pFORECAST_ENABLED;
5111 VENDOR_ENABLED := pVENDOR_ENABLED;
5112 CUSTOMER_ENABLED := pCUSTOMER_ENABLED;
5113 BOM_ENABLED := pBOM_ENABLED;
5114 HARD_RESRVS_ENABLED := pHARD_RESRVS_ENABLED;
5115 SOURCING_ENABLED := pSOURCING_ENABLED;
5116 WIP_ENABLED := pWIP_ENABLED;
5117 SS_ENABLED := pSS_ENABLED;
5118 PO_ENABLED := pPO_ENABLED;
5119 ITEM_SUBST_ENABLED := pITEM_SUBST_ENABLED;
5120 OH_ENABLED := pOH_ENABLED;
5121 SUPPLIER_CAP_ENABLED := pSUPPLIER_CAP_ENABLED;
5122 UOM_ENABLED := pUOM_ENABLED;
5123 MDS_ENABLED := prec.mds_flag;
5124 MPS_ENABLED := pMPS_ENABLED;
5125 NRA_ENABLED := pNRA_ENABLED;
5126 SH_ENABLED := pSH_ENABLED;
5127 PO_RECEIPTS_ENABLED := pPO_RECEIPTS_ENABLED;
5128 /* SCE Change Starts */
5129 USER_COMPANY_ENABLED := pUSER_COMPANY_ENABLED;
5130 /* SCE Change Ends */
5131
5132 /* CP-Ack starts */
5133 SUPPLIER_RESPONSE_ENABLED := pSUPPLIER_RESPONSE_ENABLED;
5134 /* CP-Ack ends */
5135
5136 TRIP_ENABLED := pTRIP_ENABLED;
5137 INTERNAL_REPAIR_ENABLED := prec.internal_repair_flag;
5138 EXTERNAL_REPAIR_ENABLED := prec.external_repair_flag;
5139
5140 IF NRA_ENABLED = 1 OR NRA_ENABLED = 3 THEN
5141 lv_nra_enabled_r11 := 1;
5142 ELSE
5143 lv_nra_enabled_r11 := 0;
5144 /*
5145 select decode(NRA_ENABLED,1,1,2,0,3,1,0)
5146 into lv_nra_enabled_r11
5147 from dual;
5148 */
5149 END IF;
5150 SELECT DECODE( M2A_DBLINK,
5151 NULL, ' ',
5152 '@'||M2A_DBLINK),
5153 INSTANCE_CODE||':',
5154 APPS_VER,
5155 GMT_DIFFERENCE/24.0,
5156 SYSDATE,
5157 FND_GLOBAL.USER_ID,
5158 SYSDATE,
5159 INSTANCE_TYPE
5160 INTO v_dblink,
5161 v_icode,
5162 v_apps_ver,
5163 v_dgmt,
5164 lv_task_start_time,
5165 v_current_user,
5166 v_current_date,
5167 v_instance_type
5168 FROM MSC_APPS_INSTANCES
5169 WHERE INSTANCE_ID= pIID;
5170
5171
5172 /* added code so that for 107/110 source this profile option = 0 */
5173 IF (v_apps_ver = MSC_UTIL.G_APPS107) OR (v_apps_ver = MSC_UTIL.G_APPS110) THEN
5174 v_msc_tp_coll_window := 0;
5175 ELSE
5176 v_msc_tp_coll_window := MSC_UTIL.v_msc_tp_coll_window;
5177 END IF;
5178
5179 SELECT decode(NVL(FND_PROFILE.VALUE('MSC_COLLECT_COMPLETED_JOBS'),'Y'),
5180 'Y', 1,
5181 2)
5182 INTO v_collect_completed_jobs
5183 FROM DUAL;
5184
5185 /* this feature is not supported yet, so set to 0 as default */
5186 v_dgmt:= 0;
5187
5188 SAVEPOINT ExecuteTask;
5189
5190 pSTATUS := FAIL;
5191
5192 -- set the flags as to whether discrete and/or process
5193 -- manufacturing are being used in the same instance
5194
5195 v_discrete_flag:= MSC_UTIL.SYS_NO;
5196 v_process_flag := MSC_UTIL.SYS_NO;
5197
5198 IF v_instance_type = MSC_UTIL.G_INS_DISCRETE OR
5199 v_instance_type = MSC_UTIL.G_INS_MIXED THEN
5200 v_discrete_flag := MSC_UTIL.SYS_YES;
5201 END IF;
5202
5203 -- since the gmp's procedure doesn't support incremental refresh, the
5204 -- v_process_flag is set to YES only if it's a complete refresh.
5205
5206 IF pLRN = -1 THEN -- complete refresh
5207 IF v_instance_type = MSC_UTIL.G_INS_PROCESS OR
5208 v_instance_type = MSC_UTIL.G_INS_MIXED THEN
5209 v_process_flag := MSC_UTIL.SYS_YES;
5210 END IF;
5211 END IF;
5212
5213 --- PREPLACE CHANGE START ---
5214
5215
5216 SELECT DECODE(LRTYPE, 'P', MSC_UTIL.SYS_YES, MSC_UTIL.SYS_NO)
5217 INTO v_is_partial_refresh
5218 FROM msc_apps_instances
5219 WHERE instance_id = pIID;
5220
5221
5222 -- IF v_is_partial_refresh = MSC_UTIL.SYS_YES THEN
5223
5224 IF pVENDOR_ENABLED = MSC_UTIL.SYS_YES THEN
5225 CUSTOMER_ENABLED := MSC_UTIL.SYS_YES;
5226 ELSIF pCUSTOMER_ENABLED = MSC_UTIL.SYS_YES THEN
5227 VENDOR_ENABLED := MSC_UTIL.SYS_YES;
5228 END IF;
5229
5230 -- END IF;
5231
5232 --- PREPLACE CHANGE END ---
5233 -- agmcont
5234
5235 SELECT DECODE(LRTYPE,'C',MSC_UTIL.G_COMPLETE,'P',MSC_UTIL.G_PARTIAL,'I',MSC_UTIL.G_INCREMENTAL,'T',MSC_UTIL.G_CONT)
5236 INTO
5237 lv_refresh_type
5238 FROM msc_apps_instances
5239 WHERE instance_id = pIID;
5240
5241 if (get_entity_lrn (pIID, pTASKNUM, prec, pLRN, lv_refresh_type,prec.org_group_flag ,lv_entity_lrn)) then
5242 v_lrnn := lv_entity_lrn;
5243 v_lrn := TO_CHAR(v_lrnn);
5244 end if;
5245
5246 SELECT DECODE(LRTYPE, 'T', MSC_UTIL.SYS_YES, MSC_UTIL.SYS_NO)
5247 INTO v_is_cont_refresh
5248 FROM msc_apps_instances
5249 WHERE instance_id = pIID;
5250
5251
5252 if (v_is_cont_refresh = MSC_UTIL.SYS_YES) then
5253 if (MSC_CL_CONT_COLL_FW.set_cont_refresh_type (pIID, pTASKNUM, prec, lv_entity_lrn, lv_cont_lrn)) then
5254 v_lrnn := lv_cont_lrn;
5255 v_lrn := TO_CHAR(v_lrnn);
5256 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, 'LRNN=' || v_lrnn);
5257 else
5258 pSTATUS := OK;
5259 return;
5260 end if;
5261 end if;
5262
5263 if (v_is_cont_refresh = MSC_UTIL.SYS_YES) then
5264 IF v_lrn = -1 THEN -- complete refresh
5265 IF v_instance_type = MSC_UTIL.G_INS_PROCESS OR
5266 v_instance_type = MSC_UTIL.G_INS_MIXED THEN
5267 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, 'process flag is Yes');
5268 v_process_flag := MSC_UTIL.SYS_YES;
5269 END IF;
5270 END IF;
5271 end if;
5272
5273 -- ============= Execute the task according to its task number ===========
5274
5275 BEGIN--LOAD_DATA
5276
5277 IF prec.po_flag = MSC_UTIL.SYS_YES AND pTASKNUM= TASK_PO_SUPPLY THEN
5278
5279 FND_MESSAGE.SET_NAME('MSC', 'MSC_DP_TASK_START');
5280 FND_MESSAGE.SET_TOKEN('PROCEDURE', 'MSC_CL_SUPPLY_PULL.LOAD_PO_SUPPLY');
5281 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, FND_MESSAGE.GET);
5282 MSC_CL_SUPPLY_PULL.LOAD_PO_SUPPLY;
5283
5284 ELSIF prec.po_flag = MSC_UTIL.SYS_YES AND pTASKNUM= TASK_PO_PO_SUPPLY THEN
5285
5286 FND_MESSAGE.SET_NAME('MSC', 'MSC_DP_TASK_START');
5287 FND_MESSAGE.SET_TOKEN('PROCEDURE', 'MSC_CL_SUPPLY_PULL.LOAD_PO_PO_SUPPLY');
5288 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, FND_MESSAGE.GET);
5289 MSC_CL_SUPPLY_PULL.LOAD_PO_PO_SUPPLY;
5290
5291 ELSIF prec.po_flag = MSC_UTIL.SYS_YES AND pTASKNUM= TASK_PO_REQ_SUPPLY THEN
5292
5293 FND_MESSAGE.SET_NAME('MSC', 'MSC_DP_TASK_START');
5294 FND_MESSAGE.SET_TOKEN('PROCEDURE', 'MSC_CL_SUPPLY_PULL.LOAD_PO_REQ_SUPPLY');
5295 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, FND_MESSAGE.GET);
5296 MSC_CL_SUPPLY_PULL.LOAD_PO_REQ_SUPPLY;
5297
5298 ELSIF prec.wip_flag = MSC_UTIL.SYS_YES AND pTASKNUM= TASK_WIP_SUPPLY THEN
5299
5300 -- call the appropriate routine for the type being used
5301
5302 FND_MESSAGE.SET_NAME('MSC', 'MSC_DP_TASK_START');
5303 FND_MESSAGE.SET_TOKEN('PROCEDURE', 'MSC_CL_WIP_PULL.LOAD_WIP_SUPPLY');
5304 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, FND_MESSAGE.GET);
5305 IF v_discrete_flag = MSC_UTIL.SYS_YES THEN
5306 MSC_CL_WIP_PULL.LOAD_WIP_SUPPLY;
5307 END IF;
5308
5309 IF v_process_flag = MSC_UTIL.SYS_YES THEN
5310
5311 IF v_cp_enabled = MSC_UTIL.SYS_YES THEN
5312 lv_return_status := TRUE;
5313 ELSE
5314 lv_return_status := FALSE;
5315 END IF;
5316 IF (v_apps_ver >= MSC_UTIL.G_APPS120) THEN --bug#5684183 (bcaru)
5317
5318 gmp_aps_ds_pull.production_orders(v_dblink,
5319 v_instance_id,
5320 lv_task_start_time,
5321 v_delimiter,
5322 lv_return_status);
5323
5324 v_gmp_routine_name := 'GMP_APS_DS_PULL.PRODUCTION_ORDERS';
5325
5326 ELSIF (v_apps_ver = MSC_UTIL.G_APPS115) THEN
5327 MSC_CL_GMP_UTILITY.production_orders(v_dblink,
5328 v_instance_id,
5329 lv_task_start_time,
5330 v_delimiter,
5331 lv_return_status);
5332
5333 v_gmp_routine_name := 'MSC_CL_GMP_UTILITY.PRODUCTION_ORDERS';
5334 END IF;
5335
5336 IF lv_return_status = FALSE THEN
5337 RAISE GMP_ERROR;
5338 END IF;
5339
5340 END IF;
5341
5342
5343 ELSIF prec.oh_flag = MSC_UTIL.SYS_YES AND pTASKNUM= TASK_OH_SUPPLY THEN
5344
5345 -- call the appropriate routine for onhand inventory
5346
5347 FND_MESSAGE.SET_NAME('MSC', 'MSC_DP_TASK_START');
5348 FND_MESSAGE.SET_TOKEN('PROCEDURE', 'MSC_CL_SUPPLY_PULL.LOAD_OH_SUPPLY');
5349 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, FND_MESSAGE.GET);
5350
5351 /* OPM Team - OPM Inventory Convergence Project
5352 Onhand calculation has to be performed for both
5353 discrete/process orgs.
5354 IF v_discrete_flag = MSC_UTIL.SYS_YES THEN*/
5355 MSC_CL_SUPPLY_PULL.LOAD_OH_SUPPLY;
5356 -- END IF;
5357
5358 IF v_process_flag = MSC_UTIL.SYS_YES THEN
5359 IF v_cp_enabled = MSC_UTIL.SYS_YES THEN
5360 lv_return_status := TRUE;
5361 ELSE
5362 lv_return_status := FALSE;
5363 END IF;
5364
5365 /* OPM Team - OPM Inventory Convergence Project
5366 On Hand inventories to be stored in the same schema
5367 as discrete mfg - the views are modified to consider
5368 added functionality
5369 gmp_aps_ds_pull.onhand_inventory(v_dblink,
5370 v_instance_id,
5371 lv_task_start_time,
5372 v_delimiter,
5373 lv_return_status);
5374
5375 v_gmp_routine_name := 'GMP_APS_DS_PULL.ONHAND_INVENTORY';
5376
5377 IF lv_return_status = FALSE THEN
5378 RAISE GMP_ERROR;
5379 END IF;
5380 */
5381
5382 IF (v_apps_ver = MSC_UTIL.G_APPS115) THEN
5383
5384 MSC_CL_GMP_UTILITY.onhand_inventory(v_dblink,
5385 v_instance_id,
5386 lv_task_start_time,
5387 v_delimiter,
5388 lv_return_status);
5389
5390 v_gmp_routine_name := 'MSC_CL_GMP_UTILITY.ONHAND_INVENTORY';
5391
5392 IF lv_return_status = FALSE THEN
5393 RAISE GMP_ERROR;
5394 END IF;
5395 END IF;
5396 END IF;
5397
5398 ELSIF prec.mps_flag = MSC_UTIL.SYS_YES AND pTASKNUM= TASK_MPS_SUPPLY THEN
5399
5400 -- only call if doing discrete mfg
5401
5402 FND_MESSAGE.SET_NAME('MSC', 'MSC_DP_TASK_START');
5403 FND_MESSAGE.SET_TOKEN('PROCEDURE', 'MSC_CL_SUPPLY_PULL.LOAD_MPS_SUPPLY');
5404 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, FND_MESSAGE.GET);
5405 IF v_discrete_flag = MSC_UTIL.SYS_YES THEN
5406 MSC_CL_SUPPLY_PULL.LOAD_MPS_SUPPLY;
5407 END IF;
5408
5409 ELSIF prec.bor_flag = MSC_UTIL.SYS_YES AND pTASKNUM= TASK_BOR THEN
5410
5411 -- only call if doing discrete mfg
5412
5413 FND_MESSAGE.SET_NAME('MSC', 'MSC_DP_TASK_START');
5414 FND_MESSAGE.SET_TOKEN('PROCEDURE', 'MSC_CL_BOM_PULL.LOAD_BOR');
5415 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, FND_MESSAGE.GET);
5416 IF v_discrete_flag = MSC_UTIL.SYS_YES THEN
5417 MSC_CL_BOM_PULL.LOAD_BOR;
5418 END IF;
5419
5420 ELSIF (prec.calendar_flag = MSC_UTIL.SYS_YES OR prec.resource_nra_flag in (1,3)) AND pTASKNUM= TASK_CALENDAR_DATE THEN
5421
5422 -- call the appropriate routine for calendar dates
5423
5424 FND_MESSAGE.SET_NAME('MSC', 'MSC_DP_TASK_START');
5425 FND_MESSAGE.SET_TOKEN('PROCEDURE', 'MSC_CL_SETUP_PULL.LOAD_CALENDAR_DATE');
5426 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, FND_MESSAGE.GET);
5427
5428 /* OPM Team - OPM Inventory Convergence Project
5429 Calendar data should be populated for both discrete and process organizations.
5430 So commenting the chk to discrete alone.
5431 IF v_discrete_flag = MSC_UTIL.SYS_YES THEN
5432 MSC_CL_SETUP_PULL.LOAD_CALENDAR_DATE;
5433 END IF;
5434 */
5435 MSC_CL_SETUP_PULL.LOAD_CALENDAR_DATE;
5436
5437 -- BIS_PERIODS will be collected as part of calendar entity
5438 FND_MESSAGE.SET_NAME('MSC', 'MSC_DP_TASK_START');
5439 FND_MESSAGE.SET_TOKEN('PROCEDURE', 'LOAD_BIS');
5440 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, FND_MESSAGE.GET);
5441 MSC_CL_OTHER_PULL.LOAD_BIS107;
5442
5443 IF v_process_flag = MSC_UTIL.SYS_YES THEN
5444
5445 -- Process will populate the trading partners here then
5446 -- update the org partner for the appropriate calendars
5447 -- in the calendar routine. also populated is net_resource_avail
5448 MSC_CL_SETUP_PULL.LOAD_TRADING_PARTNER;
5449
5450 IF v_cp_enabled = MSC_UTIL.SYS_YES THEN
5451 lv_return_status := TRUE;
5452 ELSE
5453 lv_return_status := FALSE;
5454 END IF;
5455
5456 IF (v_apps_ver >= MSC_UTIL.G_APPS120) THEN --bug#5684183 (bcaru)
5457 gmp_calendar_pkg.populate_rsrc_cal( lv_task_start_time,
5458 v_instance_id,
5459 v_delimiter,
5460 v_dblink,
5461 NRA_ENABLED,
5462 lv_return_status);
5463
5464 v_gmp_routine_name := 'GMP_CALENDAR_PKG.POPULATE_RSRC_CAL';
5465 ELSIF (v_apps_ver = MSC_UTIL.G_APPS115) THEN
5466
5467 MSC_CL_GMP_UTILITY.populate_rsrc_cal( lv_task_start_time,
5468 v_instance_id,
5469 v_delimiter,
5470 v_dblink,
5471 lv_nra_enabled_r11,
5472 lv_return_status);
5473
5474 v_gmp_routine_name := 'MSC_CL_GMP_UTILITY.POPULATE_RSRC_CAL';
5475 END IF;
5476
5477 IF lv_return_status = FALSE THEN
5478 RAISE GMP_ERROR;
5479 END IF;
5480
5481 END IF;
5482
5483 ELSIF (prec.mds_flag = MSC_UTIL.SYS_YES OR prec.mps_flag = MSC_UTIL.SYS_YES) AND pTASKNUM= TASK_SCHEDULE THEN
5484
5485 -- only call if doing discrete mfg, for process this is done in
5486 -- MDS demands
5487
5488 FND_MESSAGE.SET_NAME('MSC', 'MSC_DP_TASK_START');
5489 FND_MESSAGE.SET_TOKEN('PROCEDURE', 'MSC_CL_OTHER_PULL.LOAD_SCHEDULE');
5490 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, FND_MESSAGE.GET);
5491 IF ( v_discrete_flag = MSC_UTIL.SYS_YES ) THEN
5492 IF prec.mds_flag = MSC_UTIL.SYS_YES AND prec.mps_flag = MSC_UTIL.SYS_NO THEN
5493 v_schedule_flag := MSC_UTIL.G_MDS;
5494 ELSIF prec.mds_flag = MSC_UTIL.SYS_NO AND prec.mps_flag = MSC_UTIL.SYS_YES THEN
5495 v_schedule_flag := MSC_UTIL.G_MPS;
5496 ELSE
5497 v_schedule_flag := MSC_UTIL.G_BOTH;
5498 END IF;
5499
5500 MSC_CL_OTHER_PULL.LOAD_SCHEDULE;
5501 END IF;
5502
5503 ELSIF prec.item_flag = MSC_UTIL.SYS_YES AND pTASKNUM= TASK_ITEM1 THEN
5504
5505 FND_MESSAGE.SET_NAME('MSC', 'MSC_DP_TASK_START');
5506 FND_MESSAGE.SET_TOKEN('PROCEDURE', 'MSC_CL_ITEM_PULL.LOAD_ITEM(1)');
5507 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, FND_MESSAGE.GET);
5508 MSC_CL_ITEM_PULL.LOAD_ITEM(1);
5509 /* ds change for non standard jobs and eam wo, we may not have
5510 primary item specified in wo. We are going to create
5511 two dummy item, on eofr non standard job and other for
5512 eam wo */
5513 MSC_CL_ITEM_PULL.INSERT_DUMMY_ITEMS;
5514
5515 ELSIF prec.item_flag = MSC_UTIL.SYS_YES AND pTASKNUM= TASK_ITEM2 THEN
5516
5517 FND_MESSAGE.SET_NAME('MSC', 'MSC_DP_TASK_START');
5518 FND_MESSAGE.SET_TOKEN('PROCEDURE', 'MSC_CL_ITEM_PULL.LOAD_ITEM(2)');
5519 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, FND_MESSAGE.GET);
5520 MSC_CL_ITEM_PULL.LOAD_ITEM(2);
5521
5522 ELSIF prec.item_flag = MSC_UTIL.SYS_YES AND pTASKNUM= TASK_ITEM3 THEN
5523
5524 FND_MESSAGE.SET_NAME('MSC', 'MSC_DP_TASK_START');
5525 FND_MESSAGE.SET_TOKEN('PROCEDURE', 'MSC_CL_ITEM_PULL.LOAD_ITEM(0)');
5526 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, FND_MESSAGE.GET);
5527 MSC_CL_ITEM_PULL.LOAD_ITEM(0);
5528
5529 /*added for bug:4765403*/
5530 ELSIF prec.item_flag = MSC_UTIL.SYS_YES AND pTASKNUM= TASK_ABC_CLASSES THEN
5531
5532 FND_MESSAGE.SET_NAME('MSC', 'MSC_DP_TASK_START');
5533 FND_MESSAGE.SET_TOKEN('PROCEDURE', 'MSC_CL_ITEM_PULL.LOAD_ABC_CLASSES');
5534 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, FND_MESSAGE.GET);
5535 IF (v_apps_ver >= MSC_UTIL.G_APPS120) THEN
5536 MSC_CL_ITEM_PULL.LOAD_ABC_CLASSES;
5537 END IF;
5538
5539 ELSIF (prec.bom_flag = MSC_UTIL.SYS_YES OR prec.wip_flag = MSC_UTIL.SYS_YES) AND pTASKNUM= TASK_RESOURCE THEN
5540
5541 -- call the appropriate routine for resources
5542 FND_MESSAGE.SET_NAME('MSC', 'MSC_DP_TASK_START');
5543 FND_MESSAGE.SET_TOKEN('PROCEDURE', 'MSC_CL_BOM_PULL.LOAD_RESOURCE');
5544 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, FND_MESSAGE.GET);
5545 IF v_discrete_flag = MSC_UTIL.SYS_YES THEN
5546 MSC_CL_BOM_PULL.LOAD_RESOURCE;
5547 END IF;
5548 IF v_process_flag = MSC_UTIL.SYS_YES THEN
5549 IF v_cp_enabled = MSC_UTIL.SYS_YES THEN
5550 lv_return_status := TRUE;
5551 ELSE
5552 lv_return_status := FALSE;
5553 END IF;
5554 IF (v_apps_ver >= MSC_UTIL.G_APPS120) THEN --bug#5684183 (bcaru)
5555 gmp_calendar_pkg.rsrc_extract( v_instance_id,
5556 v_dblink ,
5557 lv_return_status);
5558
5559 v_gmp_routine_name := 'GMP_CALENDAR_PKG.RSRC_EXTRACT';
5560 ELSIF (v_apps_ver = MSC_UTIL.G_APPS115) THEN
5561 MSC_CL_GMP_UTILITY.rsrc_extract( v_instance_id,
5562 v_dblink ,
5563 lv_return_status);
5564
5565 v_gmp_routine_name := 'MSC_CL_GMP_UTILITY.RSRC_EXTRACT';
5566 END IF;
5567 /*gmp_calendar_pkg.rsrc_extract( v_instance_id,
5568 v_dblink ,
5569 lv_return_status);
5570
5571 v_gmp_routine_name := 'GMP_CALENDAR_PKG.RSRC_EXTRACT';*/
5572
5573 IF lv_return_status = FALSE THEN
5574 RAISE GMP_ERROR;
5575 END IF;
5576
5577 END IF;
5578
5579 /*ds change start */
5580 ELSIF (prec.bom_flag = MSC_UTIL.SYS_YES OR prec.wip_flag = MSC_UTIL.SYS_YES) AND
5581 pTASKNUM= TASK_RESOURCE_INSTANCE THEN
5582
5583 FND_MESSAGE.SET_NAME('MSC', 'MSC_DP_TASK_START');
5584 FND_MESSAGE.SET_TOKEN('PROCEDURE', 'MSC_CL_BOM_PULL.LOAD_RESOURCE_INSTANCE');
5585 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, FND_MESSAGE.GET);
5586 IF v_discrete_flag = MSC_UTIL.SYS_YES THEN
5587 MSC_CL_BOM_PULL.LOAD_RESOURCE_INSTANCE;
5588 END IF;
5589
5590 -- opm populated dept resource instances in call
5591 -- populate_rsrc_cal
5592
5593 ELSIF (prec.bom_flag = MSC_UTIL.SYS_YES ) AND
5594 pTASKNUM= TASK_RESOURCE_SETUP THEN
5595 FND_MESSAGE.SET_NAME('MSC', 'MSC_DP_TASK_START');
5596 FND_MESSAGE.SET_TOKEN('PROCEDURE', 'MSC_CL_BOM_PULL.LOAD_RESOURCE_SETUP');
5597 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, FND_MESSAGE.GET);
5598 IF v_discrete_flag = MSC_UTIL.SYS_YES THEN
5599 MSC_CL_BOM_PULL.LOAD_RESOURCE_SETUP;
5600 END IF;
5601
5602 -- opm populates resource setups and transitions
5603 -- in extract_effectivities
5604
5605 /*ds change end */
5606
5607 ELSIF (prec.tp_customer_flag = MSC_UTIL.SYS_YES OR prec.tp_vendor_flag = MSC_UTIL.SYS_YES) AND pTASKNUM= TASK_TRADING_PARTNER THEN
5608
5609 -- only call if not doing process mfg. for process this is done
5610 -- with calendar dates
5611
5612 FND_MESSAGE.SET_NAME('MSC', 'MSC_DP_TASK_START');
5613 FND_MESSAGE.SET_TOKEN('PROCEDURE', 'MSC_CL_SETUP_PULL.LOAD_TRADING_PARTNER');
5614 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, FND_MESSAGE.GET);
5615
5616 --- PREPLACE CHANGE START ---
5617 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, 'v_process_flag is ' || v_process_flag);
5618
5619 /* Even when customer_flag or vendor_flag is enabled we must not call loading
5620 MSC_CL_SETUP_PULL.LOAD_TRADING_PARTNER if v_process_flag is YES and CALENDAR is Yes, beacuse
5621 in this case MSC_CL_SETUP_PULL.LOAD_TRADING_PARTNER would be called in CALENDAR task. */
5622
5623 IF (NOT((v_process_flag = MSC_UTIL.SYS_YES) AND
5624 (prec.calendar_flag = MSC_UTIL.SYS_YES OR prec.resource_nra_flag in (1,3)))) THEN
5625 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, 'LOADING TRADING PARTNERS');
5626
5627 --- PREPLACE CHANGE END ---
5628
5629 MSC_CL_SETUP_PULL.LOAD_TRADING_PARTNER;
5630
5631 /* In case if process_enabled is true, it can come here only if
5632 calendar is not YES in which case one should call populate_rsrc_cal
5633 since this required for both calendar and partner sites. For process orgs
5634 if either calendar or customer or vendor are yes, we have to call
5635 populate_rsrc_cal . */
5636
5637 IF v_process_flag = MSC_UTIL.SYS_YES THEN
5638 IF v_cp_enabled = MSC_UTIL.SYS_YES THEN
5639 lv_return_status := TRUE;
5640 ELSE
5641 lv_return_status := FALSE;
5642 END IF;
5643 IF (v_apps_ver >= MSC_UTIL.G_APPS120) THEN --bug#5684183 (bcaru)
5644 gmp_calendar_pkg.populate_rsrc_cal( lv_task_start_time,
5645 v_instance_id,
5646 v_delimiter,
5647 v_dblink,
5648 NRA_ENABLED,
5649 lv_return_status);
5650
5651 v_gmp_routine_name := 'GMP_CALENDAR_PKG.POPULATE_RSRC_CAL';
5652 ELSIF (v_apps_ver = MSC_UTIL.G_APPS115) THEN
5653 MSC_CL_GMP_UTILITY.populate_rsrc_cal( lv_task_start_time,
5654 v_instance_id,
5655 v_delimiter,
5656 v_dblink,
5657 lv_nra_enabled_r11,
5658 lv_return_status);
5659
5660 v_gmp_routine_name := 'MSC_CL_GMP_UTILITY.POPULATE_RSRC_CAL';
5661 END IF;
5662
5663 IF lv_return_status = FALSE THEN
5664 RAISE GMP_ERROR;
5665 END IF;
5666 END IF;
5667 END IF;
5668
5669 ELSIF prec.forecast_flag = MSC_UTIL.SYS_YES AND pTASKNUM = TASK_LOAD_FORECAST THEN
5670 FND_MESSAGE.SET_NAME('MSC', 'MSC_DP_TASK_START');
5671 FND_MESSAGE.SET_TOKEN('PROCEDURE', 'LOAD_FORECAST');
5672 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, FND_MESSAGE.GET);
5673
5674 IF (v_apps_ver= MSC_UTIL.G_APPS110 OR
5675 v_apps_ver>= MSC_UTIL.G_APPS115) THEN /*to be changed after coding for 107/11i*/
5676
5677 MSC_CL_DEMAND_PULL.LOAD_FORECASTS;
5678
5679 END IF;
5680
5681 FND_MESSAGE.SET_NAME('MSC', 'MSC_DP_TASK_START');
5682 FND_MESSAGE.SET_TOKEN('PROCEDURE', 'MSC_CL_DEMAND_PULL.LOAD_ITEM_FORECASTS');
5683 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, FND_MESSAGE.GET);
5684
5685 IF (v_apps_ver= MSC_UTIL.G_APPS110 OR
5686 v_apps_ver>= MSC_UTIL.G_APPS115) THEN /*to be changed after coding for 107/11i*/
5687
5688 MSC_CL_DEMAND_PULL.LOAD_ITEM_FORECASTS;
5689
5690 END IF;
5691
5692 IF v_process_flag = MSC_UTIL.SYS_YES THEN
5693
5694 IF v_cp_enabled = MSC_UTIL.SYS_YES THEN
5695 lv_return_status := TRUE;
5696 ELSE
5697 lv_return_status := FALSE;
5698 END IF;
5699
5700 /* OPM Team - OPM Inventory Convergence Project
5701 OPM forecast merges with discrete forecast in R12
5702 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, 'Loading SALES_FORECAST for Process Mfg');
5703
5704 gmp_aps_ds_pull.sales_forecast(v_dblink,
5705 v_instance_id,
5706 lv_task_start_time,
5707 v_delimiter,
5708 lv_return_status);
5709
5710 v_gmp_routine_name := 'GMP_APS_DS_PULL.SALES_FORECAST';
5711
5712 IF lv_return_status = FALSE THEN
5713 RAISE GMP_ERROR;
5714 END IF;
5715 */
5716
5717 IF (v_apps_ver = MSC_UTIL.G_APPS115) THEN
5718
5719 MSC_CL_GMP_UTILITY.sales_forecast(v_dblink,
5720 v_instance_id,
5721 lv_task_start_time,
5722 v_delimiter,
5723 lv_return_status);
5724
5725 v_gmp_routine_name := 'MSC_CL_GMP_UTILITY.SALES_FORECAST';
5726
5727 IF lv_return_status = FALSE THEN
5728 RAISE GMP_ERROR;
5729 END IF;
5730
5731 END IF;
5732
5733 END IF;
5734
5735
5736
5737 ELSIF prec.mds_flag = MSC_UTIL.SYS_YES AND pTASKNUM= TASK_MDS_DEMAND THEN
5738
5739 -- call the appropriate routine for MDS demand
5740 /* how we can avoid this for ds */
5741 FND_MESSAGE.SET_NAME('MSC', 'MSC_DP_TASK_START');
5742 FND_MESSAGE.SET_TOKEN('PROCEDURE', 'MSC_CL_DEMAND_PULL.LOAD_MDS_DEMAND');
5743 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, FND_MESSAGE.GET);
5744
5745 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, 'Starting MDS LOAD');
5746 IF v_discrete_flag = MSC_UTIL.SYS_YES THEN
5747 MSC_CL_DEMAND_PULL.LOAD_MDS_DEMAND;
5748 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, 'MDS LOAD COMPLETED');
5749 END IF;
5750 /*
5751 IF v_process_flag = MSC_UTIL.SYS_YES THEN
5752 IF v_cp_enabled = MSC_UTIL.SYS_YES THEN
5753 lv_return_status := TRUE;
5754 ELSE
5755 lv_return_status := FALSE;
5756 END IF;
5757
5758 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, 'Loading SALES_FORECAST for Process Mfg');
5759
5760 gmp_aps_ds_pull.sales_forecast(v_dblink,
5761 v_instance_id,
5762 lv_task_start_time,
5763 v_delimiter,
5764 lv_return_status);
5765
5766 v_gmp_routine_name := 'GMP_APS_DS_PULL.SALES_FORECAST';
5767
5768 IF lv_return_status = FALSE THEN
5769 RAISE GMP_ERROR;
5770 END IF;
5771
5772 END IF;
5773 */
5774 ELSIF prec.wip_flag = MSC_UTIL.SYS_YES AND pTASKNUM= TASK_WIP_DEMAND THEN
5775
5776 -- only call if doing discrete mfg. process does this as part of
5777 -- wip supply
5778
5779 FND_MESSAGE.SET_NAME('MSC', 'MSC_DP_TASK_START');
5780 FND_MESSAGE.SET_TOKEN('PROCEDURE', 'MSC_CL_WIP_PULL.LOAD_WIP_DEMAND');
5781 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, FND_MESSAGE.GET);
5782
5783 IF v_discrete_flag = MSC_UTIL.SYS_YES THEN
5784 MSC_CL_WIP_PULL.LOAD_WIP_DEMAND;
5785 END IF;
5786 /* check sales order is selected */
5787 ELSIF prec.sales_order_flag = MSC_UTIL.SYS_YES AND pTASKNUM= TASK_SALES_ORDER1 THEN
5788
5789 IF ( v_apps_ver>= MSC_UTIL.G_APPS115) and (v_discrete_flag = MSC_UTIL.SYS_YES) THEN -- 11i source instance only
5790 -- only call if doing discrete mfg
5791
5792 FND_MESSAGE.SET_NAME('MSC', 'MSC_DP_TASK_START');
5793 FND_MESSAGE.SET_TOKEN('PROCEDURE', 'MSC_CL_DEMAND_PULL.LOAD_SALES_ORDER(1)');
5794 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, FND_MESSAGE.GET);
5795 MSC_CL_DEMAND_PULL.LOAD_SALES_ORDER(1);
5796
5797 END IF;
5798
5799 ELSIF prec.sales_order_flag = MSC_UTIL.SYS_YES AND pTASKNUM= TASK_SALES_ORDER2 THEN
5800
5801 IF ( v_apps_ver>= MSC_UTIL.G_APPS115) AND (v_discrete_flag = MSC_UTIL.SYS_YES) THEN -- 11i source instance only
5802 -- only call if doing discrete mfg
5803
5804 FND_MESSAGE.SET_NAME('MSC', 'MSC_DP_TASK_START');
5805 FND_MESSAGE.SET_TOKEN('PROCEDURE', 'MSC_CL_DEMAND_PULL.LOAD_SALES_ORDER(2)');
5806 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, FND_MESSAGE.GET);
5807 MSC_CL_DEMAND_PULL.LOAD_SALES_ORDER(2);
5808
5809 END IF;
5810
5811 ELSIF prec.sales_order_flag = MSC_UTIL.SYS_YES AND pTASKNUM= TASK_SALES_ORDER3 THEN
5812
5813 IF (v_discrete_flag = MSC_UTIL.SYS_YES) THEN
5814 -- only call if doing discrete mfg
5815
5816 FND_MESSAGE.SET_NAME('MSC', 'MSC_DP_TASK_START');
5817 FND_MESSAGE.SET_TOKEN('PROCEDURE', 'MSC_CL_DEMAND_PULL.LOAD_SALES_ORDER(3)');
5818 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, FND_MESSAGE.GET);
5819 MSC_CL_DEMAND_PULL.LOAD_SALES_ORDER(3);
5820
5821 END IF;
5822 /*
5823 ELSIF pTASKNUM= TASK_SALES_ORDER THEN
5824
5825 -- only call if doing discrete mfg
5826
5827 FND_MESSAGE.SET_NAME('MSC', 'MSC_DP_TASK_START');
5828 FND_MESSAGE.SET_TOKEN('PROCEDURE', 'MSC_CL_DEMAND_PULL.LOAD_SALES_ORDER(4)');
5829 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, FND_MESSAGE.GET);
5830
5831 IF v_discrete_flag = MSC_UTIL.SYS_YES THEN
5832 MSC_CL_DEMAND_PULL.LOAD_SALES_ORDER(4);
5833 END IF;
5834 */
5835 ELSIF pTASKNUM= TASK_AHL THEN
5836
5837 lv_sql_stmt:=
5838 'BEGIN'
5839 ||' :lv_ps_ver := MRP_CL_FUNCTION.CHECK_AHL_VER'||v_dblink||';'
5840 ||'END;';
5841
5842 EXECUTE IMMEDIATE lv_sql_stmt
5843 USING OUT lv_ps_ver;
5844
5845 IF ( v_apps_ver>= MSC_UTIL.G_APPS115)
5846 and (v_discrete_flag = MSC_UTIL.SYS_YES)
5847 and (lv_ps_ver =1) THEN
5848 -- 11i source instance only
5849 -- only call if doing discrete mfg, Is this a valid assumption --dsoosai 12/04/2003
5850
5851 FND_MESSAGE.SET_NAME('MSC', 'MSC_DP_TASK_START');
5852 FND_MESSAGE.SET_TOKEN('PROCEDURE', 'MSC_CL_DEMAND_PULL.LOAD_SALES_ORDER(5:AHL)');
5853 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, FND_MESSAGE.GET);
5854 MSC_CL_DEMAND_PULL.LOAD_AHL;
5855
5856 END IF;
5857
5858 ELSIF prec.sub_inventory_flag = MSC_UTIL.SYS_YES AND pTASKNUM= TASK_SUB_INVENTORY THEN
5859
5860 -- call the appropriate routine for sub inventory
5861
5862 FND_MESSAGE.SET_NAME('MSC', 'MSC_DP_TASK_START');
5863 FND_MESSAGE.SET_TOKEN('PROCEDURE', 'MSC_CL_OTHER_PULL.LOAD_SUB_INVENTORY');
5864 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, FND_MESSAGE.GET);
5865
5866 /* OPM Team - OPM Inventory Convergence Project
5867 Commented this has to be called for both discrete/process
5868 IF v_discrete_flag = MSC_UTIL.SYS_YES THEN */
5869 MSC_CL_OTHER_PULL.LOAD_SUB_INVENTORY;
5870 -- END IF;
5871 IF v_process_flag = MSC_UTIL.SYS_YES and WIP_ENABLED= MSC_UTIL.SYS_YES THEN
5872 IF v_cp_enabled = MSC_UTIL.SYS_YES THEN
5873 lv_return_status := TRUE;
5874 ELSE
5875 lv_return_status := FALSE;
5876 END IF;
5877
5878
5879 /* OPM Team - OPM Inventory Convergence Project
5880 extract the process subinventories through
5881 modified mrp_ap_sub_inventories_v
5882 gmp_bom_routing_pkg.extract_sub_inventory(v_dblink,
5883 v_instance_id,
5884 lv_task_start_time,
5885 lv_return_status);
5886
5887 v_gmp_routine_name := 'GMP_BOM_ROUTING_PKG.EXTRACT_SUB_INVENTORY';
5888
5889 IF lv_return_status = FALSE THEN
5890 RAISE GMP_ERROR;
5891 END IF;
5892 */
5893 IF (v_apps_ver = MSC_UTIL.G_APPS115) THEN
5894
5895 MSC_CL_GMP_UTILITY.extract_sub_inventory(v_dblink,
5896 v_instance_id,
5897 lv_task_start_time,
5898 lv_return_status);
5899
5900 v_gmp_routine_name := 'MSC_CL_GMP_UTILITY.EXTRACT_SUB_INVENTORY';
5901
5902 IF lv_return_status = FALSE THEN
5903 RAISE GMP_ERROR;
5904 END IF;
5905
5906 END IF;
5907
5908
5909 END IF;
5910
5911 ELSIF prec.reserves_flag = MSC_UTIL.SYS_YES AND pTASKNUM= TASK_HARD_RESERVATION THEN
5912
5913 -- only call if doing discrete mfg
5914
5915 FND_MESSAGE.SET_NAME('MSC', 'MSC_DP_TASK_START');
5916 FND_MESSAGE.SET_TOKEN('PROCEDURE', 'MSC_CL_DEMAND_PULL.LOAD_HARD_RESERVATION');
5917 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, FND_MESSAGE.GET);
5918
5919
5920 IF v_discrete_flag = MSC_UTIL.SYS_YES THEN
5921 MSC_CL_DEMAND_PULL.LOAD_HARD_RESERVATION;
5922 END IF;
5923
5924 ELSIF prec.sourcing_rule_flag = MSC_UTIL.SYS_YES AND pTASKNUM= TASK_SOURCING THEN
5925
5926 FND_MESSAGE.SET_NAME('MSC', 'MSC_DP_TASK_START');
5927 FND_MESSAGE.SET_TOKEN('PROCEDURE', 'MSC_CL_OTHER_PULL.LOAD_SOURCING');
5928 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, FND_MESSAGE.GET);
5929
5930 MSC_CL_OTHER_PULL.LOAD_SOURCING;
5931
5932 ELSIF (prec.app_supp_cap_flag = MSC_UTIL.ASL_YES or prec.app_supp_cap_flag = MSC_UTIL.ASL_YES_RETAIN_CP ) AND pTASKNUM= TASK_SUPPLIER_CAPACITY THEN
5933
5934 FND_MESSAGE.SET_NAME('MSC', 'MSC_DP_TASK_START');
5935 FND_MESSAGE.SET_TOKEN('PROCEDURE', 'MSC_CL_ITEM_PULL.LOAD_SUPPLIER_CAPACITY');
5936 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, FND_MESSAGE.GET);
5937
5938 MSC_CL_ITEM_PULL.LOAD_SUPPLIER_CAPACITY;
5939
5940 ELSIF prec.item_flag = MSC_UTIL.SYS_YES AND pTASKNUM= TASK_CATEGORY THEN
5941
5942 FND_MESSAGE.SET_NAME('MSC', 'MSC_DP_TASK_START');
5943 FND_MESSAGE.SET_TOKEN('PROCEDURE', 'MSC_CL_ITEM_PULL.LOAD_CATEGORY');
5944 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, FND_MESSAGE.GET);
5945
5946 MSC_CL_ITEM_PULL.LOAD_CATEGORY;
5947
5948 FND_MESSAGE.SET_NAME('MSC', 'MSC_DP_TASK_START');
5949 FND_MESSAGE.SET_TOKEN('PROCEDURE', 'MSC_CL_ITEM_PULL.INSERT_DUMMY_CATEGORIES');
5950 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, FND_MESSAGE.GET);
5951
5952 MSC_CL_ITEM_PULL.INSERT_DUMMY_CATEGORIES ;
5953
5954 ELSIF prec.bom_flag = MSC_UTIL.SYS_YES AND pTASKNUM= TASK_BOM THEN
5955
5956 -- call the appropriate routine for bom
5957
5958 FND_MESSAGE.SET_NAME('MSC', 'MSC_DP_TASK_START');
5959 FND_MESSAGE.SET_TOKEN('PROCEDURE', 'MSC_CL_BOM_PULL.LOAD_BOM');
5960 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, FND_MESSAGE.GET);
5961
5962
5963 IF v_discrete_flag = MSC_UTIL.SYS_YES THEN
5964 MSC_CL_BOM_PULL.LOAD_BOM;
5965 END IF;
5966 IF v_process_flag = MSC_UTIL.SYS_YES and BOM_ENABLED= MSC_UTIL.SYS_YES THEN
5967 -- process will also extract routings here
5968 IF v_cp_enabled = MSC_UTIL.SYS_YES THEN
5969 lv_return_status := TRUE;
5970 ELSE
5971 lv_return_status := FALSE;
5972 END IF;
5973 IF (v_apps_ver >= MSC_UTIL.G_APPS120) THEN --bug#5684183 (bcaru)
5974 gmp_bom_routing_pkg.extract_effectivities(v_dblink,
5975 v_delimiter,
5976 v_instance_id,
5977 lv_task_start_time,
5978 lv_return_status);
5979
5980 v_gmp_routine_name := 'GMP_BOM_ROUTING_PKG.EXTRACT_EFFECTIVITIES';
5981 ELSIF (v_apps_ver = MSC_UTIL.G_APPS115) THEN
5982 MSC_CL_GMP_UTILITY.extract_effectivities(v_dblink,
5983 v_delimiter,
5984 v_instance_id,
5985 lv_task_start_time,
5986 lv_return_status);
5987
5988 v_gmp_routine_name := 'MSC_CL_GMP_UTILITY.EXTRACT_EFFECTIVITIES';
5989 END IF;
5990
5991 IF lv_return_status = FALSE THEN
5992 RAISE GMP_ERROR;
5993 END IF;
5994
5995 END IF;
5996
5997 ELSIF prec.bom_flag = MSC_UTIL.SYS_YES AND pTASKNUM= TASK_ROUTING THEN
5998
5999 -- only call if doing discrete mfg. process will do this with
6000 -- boms
6001
6002 FND_MESSAGE.SET_NAME('MSC', 'MSC_DP_TASK_START');
6003 FND_MESSAGE.SET_TOKEN('PROCEDURE', 'MSC_CL_ROUTING_PULL.LOAD_ROUTING');
6004 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, FND_MESSAGE.GET);
6005
6006
6007 IF v_discrete_flag = MSC_UTIL.SYS_YES THEN
6008 MSC_CL_ROUTING_PULL.LOAD_ROUTING;
6009 END IF;
6010
6011 ELSIF prec.bom_flag = MSC_UTIL.SYS_YES AND pTASKNUM= TASK_OPER_NETWORKS THEN
6012
6013 -- only call if doing discrete mfg. process will do this with
6014 -- boms
6015
6016 FND_MESSAGE.SET_NAME('MSC', 'MSC_DP_TASK_START');
6017 FND_MESSAGE.SET_TOKEN('PROCEDURE', 'MSC_CL_WIP_PULL.LOAD_OPER_NETWORKS');
6018 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, FND_MESSAGE.GET);
6019
6020
6021 IF v_discrete_flag = MSC_UTIL.SYS_YES THEN
6022 MSC_CL_WIP_PULL.LOAD_OPER_NETWORKS;
6023 END IF;
6024
6025 ELSIF prec.bom_flag = MSC_UTIL.SYS_YES AND pTASKNUM= TASK_ROUTING_OPERATIONS THEN
6026
6027 -- only call if doing discrete mfg. process will do this with
6028 -- boms
6029
6030 FND_MESSAGE.SET_NAME('MSC', 'MSC_DP_TASK_START');
6031 FND_MESSAGE.SET_TOKEN('PROCEDURE', 'MSC_CL_ROUTING_PULL.LOAD_ROUTING_OPERATIONS');
6032 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, FND_MESSAGE.GET);
6033
6034
6035 IF v_discrete_flag = MSC_UTIL.SYS_YES THEN
6036 MSC_CL_ROUTING_PULL.LOAD_ROUTING_OPERATIONS;
6037 END IF;
6038
6039 ELSIF prec.bom_flag = MSC_UTIL.SYS_YES AND pTASKNUM= TASK_OPERATION_RES_SEQS THEN
6040
6041 -- only call if doing discrete mfg. process will do this with
6042 -- boms
6043
6044 FND_MESSAGE.SET_NAME('MSC', 'MSC_DP_TASK_START');
6045 FND_MESSAGE.SET_TOKEN('PROCEDURE', 'LOAD_OPERATION_RES_SEQ');
6046 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, FND_MESSAGE.GET);
6047
6048
6049 IF v_discrete_flag = MSC_UTIL.SYS_YES THEN
6050 MSC_CL_ROUTING_PULL.LOAD_OPERATION_RES_SEQS;
6051 END IF;
6052 ELSIF prec.bom_flag = MSC_UTIL.SYS_YES AND pTASKNUM= TASK_OPERATION_RESOURCES THEN
6053
6054 -- only call if doing discrete mfg. process will do this with
6055 -- boms
6056
6057 FND_MESSAGE.SET_NAME('MSC', 'MSC_DP_TASK_START');
6058 FND_MESSAGE.SET_TOKEN('PROCEDURE', 'MSC_CL_ROUTING_PULL.LOAD_OPERATION_RESOURCES');
6059 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, FND_MESSAGE.GET);
6060
6061
6062 IF v_discrete_flag = MSC_UTIL.SYS_YES THEN
6063 MSC_CL_ROUTING_PULL.LOAD_OPERATION_RESOURCES;
6064 END IF;
6065 ELSIF prec.bom_flag = MSC_UTIL.SYS_YES AND pTASKNUM= TASK_OPERATION_COMPONENTS THEN
6066
6067 -- only call if doing discrete mfg. process will do this with
6068 -- boms
6069
6070 FND_MESSAGE.SET_NAME('MSC', 'MSC_DP_TASK_START');
6071 FND_MESSAGE.SET_TOKEN('PROCEDURE', 'MSC_CL_ROUTING_PULL.LOAD_OPERATION_COMPONENTS');
6072 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, FND_MESSAGE.GET);
6073
6074
6075 IF v_discrete_flag = MSC_UTIL.SYS_YES THEN
6076 MSC_CL_ROUTING_PULL.LOAD_OPERATION_COMPONENTS;
6077 END IF;
6078 ELSIF prec.bom_flag = MSC_UTIL.SYS_YES AND pTASKNUM= TASK_PROCESS_EFFECTIVITY THEN
6079
6080 -- only call if doing discrete mfg. process will do this with
6081 -- boms
6082
6083 FND_MESSAGE.SET_NAME('MSC', 'MSC_DP_TASK_START');
6084 FND_MESSAGE.SET_TOKEN('PROCEDURE', 'MSC_CL_BOM_PULL.LOAD_PROCESS_EFFECTIVITY');
6085 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, FND_MESSAGE.GET);
6086
6087
6088 IF v_discrete_flag = MSC_UTIL.SYS_YES THEN
6089 MSC_CL_BOM_PULL.LOAD_PROCESS_EFFECTIVITY;
6090 END IF;
6091
6092 ELSIF prec.unit_number_flag = MSC_UTIL.SYS_YES AND pTASKNUM= TASK_UNIT_NUMBER THEN
6093
6094 FND_MESSAGE.SET_NAME('MSC', 'MSC_DP_TASK_START');
6095 FND_MESSAGE.SET_TOKEN('PROCEDURE', 'MSC_CL_OTHER_PULL.LOAD_UNIT_NUMBER');
6096 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, FND_MESSAGE.GET);
6097
6098 MSC_CL_OTHER_PULL.LOAD_UNIT_NUMBER;
6099
6100 ELSIF prec.saf_stock_flag = MSC_UTIL.SYS_YES AND pTASKNUM= TASK_SAFETY_STOCK THEN
6101
6102 FND_MESSAGE.SET_NAME('MSC', 'MSC_DP_TASK_START');
6103 FND_MESSAGE.SET_TOKEN('PROCEDURE', 'MSC_CL_OTHER_PULL.LOAD_SAFETY_STOCK');
6104 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, FND_MESSAGE.GET);
6105
6106 MSC_CL_OTHER_PULL.LOAD_SAFETY_STOCK;
6107
6108 ELSIF prec.project_flag = MSC_UTIL.SYS_YES AND pTASKNUM= TASK_PROJECT THEN
6109
6110 FND_MESSAGE.SET_NAME('MSC', 'MSC_DP_TASK_START');
6111 FND_MESSAGE.SET_TOKEN('PROCEDURE', 'MSC_CL_OTHER_PULL.LOAD_PROJECT');
6112 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, FND_MESSAGE.GET);
6113
6114 MSC_CL_OTHER_PULL.LOAD_PROJECT;
6115
6116 ELSIF prec.parameter_flag = MSC_UTIL.SYS_YES AND pTASKNUM= TASK_PARAMETER THEN
6117
6118 FND_MESSAGE.SET_NAME('MSC', 'MSC_DP_TASK_START');
6119 FND_MESSAGE.SET_TOKEN('PROCEDURE', 'MSC_CL_SETUP_PULL.LOAD_PARAMETER');
6120 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, FND_MESSAGE.GET);
6121
6122 MSC_CL_SETUP_PULL.LOAD_PARAMETER;
6123
6124 ELSIF prec.uom_flag = MSC_UTIL.SYS_YES AND pTASKNUM= TASK_UOM THEN
6125
6126 FND_MESSAGE.SET_NAME('MSC', 'MSC_DP_TASK_START');
6127 FND_MESSAGE.SET_TOKEN('PROCEDURE', 'MSC_CL_SETUP_PULL.LOAD_UOM');
6128 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, FND_MESSAGE.GET);
6129
6130 MSC_CL_SETUP_PULL.LOAD_UOM;
6131
6132 ELSIF prec.kpi_bis_flag = MSC_UTIL.SYS_YES AND pTASKNUM= TASK_BIS THEN
6133
6134 FND_MESSAGE.SET_NAME('MSC', 'MSC_DP_TASK_START');
6135 FND_MESSAGE.SET_TOKEN('PROCEDURE', 'LOAD_BIS');
6136 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, FND_MESSAGE.GET);
6137
6138
6139 IF v_apps_ver= MSC_UTIL.G_APPS110 THEN
6140
6141 MSC_CL_OTHER_PULL.LOAD_BIS110;
6142
6143 ELSIF v_apps_ver>= MSC_UTIL.G_APPS115 THEN
6144
6145 MSC_CL_OTHER_PULL.LOAD_BIS115;
6146
6147 END IF;
6148
6149 ELSIF prec.atp_rules_flag = MSC_UTIL.SYS_YES AND pTASKNUM= TASK_ATP_RULES THEN
6150
6151 FND_MESSAGE.SET_NAME('MSC', 'MSC_DP_TASK_START');
6152 FND_MESSAGE.SET_TOKEN('PROCEDURE', 'MSC_CL_OTHER_PULL.LOAD_ATP_RULES');
6153 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, FND_MESSAGE.GET);
6154
6155 MSC_CL_OTHER_PULL.LOAD_ATP_RULES;
6156
6157 ELSIF prec.user_supply_demand_flag = MSC_UTIL.SYS_YES AND pTASKNUM= TASK_USER_SUPPLY THEN
6158
6159 FND_MESSAGE.SET_NAME('MSC', 'MSC_DP_TASK_START');
6160 FND_MESSAGE.SET_TOKEN('PROCEDURE', 'MSC_CL_SUPPLY_PULL.LOAD_USER_SUPPLY');
6161 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, FND_MESSAGE.GET);
6162
6163 MSC_CL_SUPPLY_PULL.LOAD_USER_SUPPLY;
6164
6165 ELSIF prec.user_supply_demand_flag = MSC_UTIL.SYS_YES AND pTASKNUM= TASK_USER_DEMAND THEN
6166
6167 FND_MESSAGE.SET_NAME('MSC', 'MSC_DP_TASK_START');
6168 FND_MESSAGE.SET_TOKEN('PROCEDURE', 'MSC_CL_DEMAND_PULL.LOAD_USER_DEMAND');
6169 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, FND_MESSAGE.GET);
6170
6171 MSC_CL_DEMAND_PULL.LOAD_USER_DEMAND;
6172
6173 ELSIF prec.planner_flag = MSC_UTIL.SYS_YES AND pTASKNUM= TASK_PLANNERS THEN
6174
6175 FND_MESSAGE.SET_NAME('MSC', 'MSC_DP_TASK_START');
6176 FND_MESSAGE.SET_TOKEN('PROCEDURE', 'MSC_CL_OTHER_PULL.LOAD_PLANNERS');
6177 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, FND_MESSAGE.GET);
6178
6179 MSC_CL_OTHER_PULL.LOAD_PLANNERS;
6180
6181 -- Added this new task for Prod. Subst ---
6182 ELSIF prec.item_subst_flag = MSC_UTIL.SYS_YES AND pTASKNUM= TASK_ITEM_SUBSTITUTES THEN
6183
6184 FND_MESSAGE.SET_NAME('MSC', 'MSC_DP_TASK_START');
6185 FND_MESSAGE.SET_TOKEN('PROCEDURE', 'MSC_CL_ITEM_PULL.LOAD_ITEM_SUBSTITUTES');
6186 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, FND_MESSAGE.GET);
6187
6188 IF ( v_apps_ver >= MSC_UTIL.G_APPS115 ) THEN
6189 MSC_CL_ITEM_PULL.LOAD_ITEM_SUBSTITUTES;
6190 END IF;
6191
6192 ELSIF prec.demand_class_flag = MSC_UTIL.SYS_YES AND pTASKNUM= TASK_DEMAND_CLASS THEN
6193
6194 FND_MESSAGE.SET_NAME('MSC', 'MSC_DP_TASK_START');
6195 FND_MESSAGE.SET_TOKEN('PROCEDURE', 'MSC_CL_OTHER_PULL.LOAD_DEMAND_CLASS');
6196 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, FND_MESSAGE.GET);
6197
6198 MSC_CL_OTHER_PULL.LOAD_DEMAND_CLASS;
6199
6200 ELSIF (prec.tp_customer_flag = MSC_UTIL.SYS_YES OR prec.tp_vendor_flag = MSC_UTIL.SYS_YES) AND pTASKNUM= TASK_BUYER_CONTACT THEN
6201
6202 FND_MESSAGE.SET_NAME('MSC', 'MSC_DP_TASK_START');
6203 FND_MESSAGE.SET_TOKEN('PROCEDURE', 'MSC_CL_SETUP_PULL.LOAD_BUYER_CONTACT');
6204 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, FND_MESSAGE.GET);
6205 MSC_CL_SETUP_PULL.LOAD_BUYER_CONTACT;
6206
6207 /* SCE Change starts */
6208
6209 ELSIF (prec.user_company_flag <> MSC_UTIL.NO_USER_COMPANY) AND pTASKNUM = TASK_USER_COMPANY THEN
6210
6211 /* Pull User Company association only if Collection mode is either complete
6212 refresh or targeted refresh.
6213 We do not collect association in net change refresh since there is
6214 no snapshot in the source for fnd_user*/
6215
6216 IF v_lrnn = -1 THEN
6217
6218 /* Pull User Company association only if Apps version is MSC_UTIL.G_APPS115 */
6219
6220 IF v_apps_ver >= MSC_UTIL.G_APPS115 THEN
6221
6222 /* Pull User Company association only if MSC:Configuration is APS or APS+SCE */
6223 IF (MSC_UTIL.G_MSC_CONFIGURATION = MSC_UTIL.G_CONF_APS_SCE
6224 OR
6225 MSC_UTIL.G_MSC_CONFIGURATION = MSC_UTIL.G_CONF_SCE) THEN
6226
6227 FND_MESSAGE.SET_NAME('MSC', 'MSC_DP_TASK_START');
6228 FND_MESSAGE.SET_TOKEN('PROCEDURE', 'MSC_CL_SCE_COLLECTION.PULL_USER_COMPANY');
6229 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, FND_MESSAGE.GET);
6230
6231 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, 'Value of USER_COMPANY_ENABLED :'||USER_COMPANY_ENABLED);
6232 MSC_CL_SCE_COLLECTION.PULL_USER_COMPANY(v_dblink,
6233 v_instance_id,
6234 lv_return_status,
6235 USER_COMPANY_ENABLED);
6236 IF (lv_return_status = FALSE) THEN
6237 pSTATUS := FAIL;
6238 END IF;
6239 END IF; /* IF MSC_UTIL.G_MSC_CONFIGURATION */
6240 END IF; /* IF v_apps_ver >= MSC_UTIL.G_APPS115 */
6241 END IF; /* IF v_lrnn */
6242
6243 /* SCE Change ends */
6244
6245 /* CP-ACK starts */
6246 ELSIF (prec.supplier_response_flag = MSC_UTIL.SYS_YES) AND pTASKNUM = TASK_SUPPLIER_RESPONSE THEN
6247
6248 /* Pull supplier responses only if Supplier Response flag is set
6249 to Yes */
6250 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, 'Value of SUPPLIER_RESPONSE_ENABLED :'||SUPPLIER_RESPONSE_ENABLED);
6251
6252 IF (SUPPLIER_RESPONSE_ENABLED = MSC_UTIL.SYS_YES) THEN
6253
6254 /* Pull Supplier response only if Apps version is MSC_UTIL.G_APPS115 */
6255
6256 IF v_apps_ver >= MSC_UTIL.G_APPS115 THEN
6257
6258 /* Pull Supplier Response only if MSC:Configuration is CP or APS+CP */
6259
6260 IF (MSC_UTIL.G_MSC_CONFIGURATION = MSC_UTIL.G_CONF_APS_SCE
6261 OR
6262 MSC_UTIL.G_MSC_CONFIGURATION = MSC_UTIL.G_CONF_SCE) THEN
6263
6264 FND_MESSAGE.SET_NAME('MSC', 'MSC_DP_TASK_START');
6265 FND_MESSAGE.SET_TOKEN('PROCEDURE', 'MSC_CL_SUPPLIER_RESP.PULL_SUPPLIER_RESP');
6266 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, FND_MESSAGE.GET);
6267
6268 MSC_CL_SUPPLIER_RESP.PULL_SUPPLIER_RESP(v_dblink,
6269 v_instance_id,
6270 lv_return_status,
6271 SUPPLIER_RESPONSE_ENABLED,
6272 v_refresh_id,
6273 v_lrn,
6274 MSC_UTIL.v_in_org_str
6275 );
6276 IF (lv_return_status = FALSE) THEN
6277 pSTATUS := FAIL;
6278 END IF;
6279 END IF; /* IF MSC_UTIL.G_MSC_CONFIGURATION */
6280 END IF; /* IF v_apps_ver >= MSC_UTIL.G_APPS115 */
6281 END IF;
6282 /* CP-ACK ends */
6283
6284 ELSIF prec.trip_flag = MSC_UTIL.SYS_YES AND pTASKNUM= TASK_TRIP THEN
6285
6286 FND_MESSAGE.SET_NAME('MSC', 'MSC_DP_TASK_START');
6287 FND_MESSAGE.SET_TOKEN('PROCEDURE', 'MSC_CL_OTHER_PULL.LOAD_TRIP');
6288 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, FND_MESSAGE.GET);
6289
6290 MSC_CL_OTHER_PULL.LOAD_TRIP;
6291
6292
6293 ELSIF prec.sales_channel_flag = MSC_UTIL.SYS_YES AND pTASKNUM= TASK_SALES_CHANNEL THEN
6294
6295 FND_MESSAGE.SET_NAME('MSC', 'MSC_DP_TASK_START');
6296 FND_MESSAGE.SET_TOKEN('PROCEDURE', 'MSC_CL_OTHER_PULL.LOAD_SALES_CHANNEL');
6297 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS,FND_MESSAGE.GET);
6298
6299 MSC_CL_OTHER_PULL.LOAD_SALES_CHANNEL;
6300
6301 ELSIF prec.fiscal_calendar_flag = MSC_UTIL.SYS_YES AND pTASKNUM= TASK_FISCAL_CALENDAR THEN
6302
6303 FND_MESSAGE.SET_NAME('MSC', 'MSC_DP_TASK_START');
6304 FND_MESSAGE.SET_TOKEN('PROCEDURE', 'MSC_CL_OTHER_PULL.LOAD_FISCAL_CALENDAR');
6305 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS,FND_MESSAGE.GET);
6306
6307 MSC_CL_OTHER_PULL.LOAD_FISCAL_CALENDAR;
6308
6309 ELSIF (prec.internal_repair_flag = MSC_UTIL.SYS_YES) AND (MSC_UTIL.G_COLLECT_SRP_DATA='Y') AND (pTASKNUM= TASK_IRO) THEN
6310
6311 FND_MESSAGE.SET_NAME('MSC', 'MSC_DP_TASK_START');
6312 FND_MESSAGE.SET_TOKEN('PROCEDURE', 'MSC_CL_RPO_PULL.LOAD_IRO');
6313 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS,FND_MESSAGE.GET);
6314 /* changes for executing repair order load Bug# 5909379 */
6315 MSC_CL_RPO_PULL.LOAD_IRO;
6316
6317 ELSIF (prec.internal_repair_flag = MSC_UTIL.SYS_YES) AND (MSC_UTIL.G_COLLECT_SRP_DATA='Y') AND (pTASKNUM= TASK_IRO_DEMAND) THEN
6318
6319 FND_MESSAGE.SET_NAME('MSC', 'MSC_DP_TASK_START');
6320 FND_MESSAGE.SET_TOKEN('PROCEDURE', 'MSC_CL_RPO_PULL.LOAD_IRO_DEMAND');
6321 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS,FND_MESSAGE.GET);
6322 /* changes for executing repair order load Bug# 5909379 */
6323 MSC_CL_RPO_PULL.LOAD_IRO_DEMAND;
6324
6325 ELSIF (prec.external_repair_flag = MSC_UTIL.SYS_YES) AND (MSC_UTIL.G_COLLECT_SRP_DATA='Y') AND (pTASKNUM= TASK_ERO) THEN
6326
6327 FND_MESSAGE.SET_NAME('MSC', 'MSC_DP_TASK_START');
6328 FND_MESSAGE.SET_TOKEN('PROCEDURE', 'MSC_CL_RPO_PULL.LOAD_ERO');
6329 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS,FND_MESSAGE.GET);
6330 /* changes for executing repair order load Bug# 5935273*/
6331 MSC_CL_RPO_PULL.LOAD_ERO;
6332
6333 ELSIF (prec.external_repair_flag = MSC_UTIL.SYS_YES) AND (MSC_UTIL.G_COLLECT_SRP_DATA='Y') AND (pTASKNUM= TASK_ERO_DEMAND) THEN
6334
6335 FND_MESSAGE.SET_NAME('MSC', 'MSC_DP_TASK_START');
6336 FND_MESSAGE.SET_TOKEN('PROCEDURE', 'MSC_CL_RPO_PULL.LOAD_ERO_DEMAND');
6337 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS,FND_MESSAGE.GET);
6338 /* changes for executing repair order load Bug# 5935273 */
6339 MSC_CL_RPO_PULL.LOAD_ERO_DEMAND;
6340
6341
6342 ELSIF prec.payback_demand_supply_flag = MSC_UTIL.SYS_YES AND pTASKNUM= TASK_PAYBACK_DEMAND_SUPPLY THEN
6343
6344 FND_MESSAGE.SET_NAME('MSC', 'MSC_DP_TASK_START');
6345 FND_MESSAGE.SET_TOKEN('PROCEDURE', 'LOAD_OPEN_PAYBACKS');
6346 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS,FND_MESSAGE.GET);
6347
6348 MSC_CL_DEMAND_PULL.LOAD_OPEN_PAYBACKS;
6349
6350 /* changes for currency conversion bug # 6469722 */
6351 ELSIF prec.currency_conversion_flag = MSC_UTIL.SYS_YES AND pTASKNUM= TASK_CURRENCY_CONVERSION THEN -- bug # 6469722
6352 IF (MSC_CL_OTHER_PULL.G_MSC_HUB_CURR_CODE IS NOT NULL) THEN
6353 FND_MESSAGE.SET_NAME('MSC', 'MSC_DP_TASK_START');
6354 FND_MESSAGE.SET_TOKEN('PROCEDURE', 'MSC_CL_OTHER_PULL.LOAD_CURRENCY_CONVERSION');
6355 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS,FND_MESSAGE.GET);
6356
6357 MSC_CL_OTHER_PULL.LOAD_CURRENCY_CONVERSION;
6358 ELSE
6359 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, 'Currency Data is not collected as MSC:Planning Hub Currency Code Profile is NULL.');
6360 END IF;
6361 ELSIF prec.delivery_details_flag = MSC_UTIL.SYS_YES AND pTASKNUM= TASK_DELIVERY_DETAILS THEN
6362
6363 FND_MESSAGE.SET_NAME('MSC', 'MSC_DP_TASK_START');
6364 FND_MESSAGE.SET_TOKEN('PROCEDURE', 'LOAD_DELIVERY_DETAILS');
6365 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS,FND_MESSAGE.GET);
6366
6367 MSC_CL_OTHER_PULL.LOAD_DELIVERY_DETAILS;
6368 ELSIF prec.ibuc_history_flag = MSC_UTIL.SYS_YES AND pTASKNUM= TASK_IBUC_HISTORY
6369 AND MSC_UTIL.G_COLLECT_SRP_PH2_ENABLE = 'Y' THEN
6370 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS,MSC_UTIL.G_COLLECT_SRP_PH2_ENABLE);
6371
6372 FND_MESSAGE.SET_NAME('MSC', 'MSC_DP_TASK_START');
6373 FND_MESSAGE.SET_TOKEN('PROCEDURE', 'LOAD_IB_CONTRACTS');
6374 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS,FND_MESSAGE.GET);
6375
6376 MSC_CL_OTHER_PULL.LOAD_IB_CONTRACTS;
6377 ELSIF prec.notes_attach_flag = MSC_UTIL.SYS_YES AND pTASKNUM= TASK_SHORT_TEXT
6378 AND MSC_UTIL.G_COLLECT_SRP_PH2_ENABLE = 'Y' THEN
6379 --MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS,MSC_UTIL.G_COLLECT_SRP_PH2_ENABLE);
6380
6381 FND_MESSAGE.SET_NAME('MSC', 'MSC_DP_TASK_START');
6382 FND_MESSAGE.SET_TOKEN('PROCEDURE', 'LOAD_SHORT_TEXT');
6383 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS,FND_MESSAGE.GET);
6384
6385 MSC_CL_OTHER_PULL.LOAD_SHORT_TEXT;
6386
6387 ELSIF prec.notes_attach_flag = MSC_UTIL.SYS_YES AND pTASKNUM= TASK_LONG_TEXT
6388 AND MSC_UTIL.G_COLLECT_SRP_PH2_ENABLE = 'Y' THEN
6389 --MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS,MSC_UTIL.G_COLLECT_SRP_PH2_ENABLE);
6390
6391 FND_MESSAGE.SET_NAME('MSC', 'MSC_DP_TASK_START');
6392 FND_MESSAGE.SET_TOKEN('PROCEDURE', 'LOAD_LONG_TEXT');
6393 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS,FND_MESSAGE.GET);
6394
6395 MSC_CL_OTHER_PULL.LOAD_LONG_TEXT;
6396
6397 /* USAF --rgurugub*/
6398 ELSIF prec.eAM_info_flag = MSC_UTIL.SYS_YES AND pTASKNUM= TASK_EAM_INFO
6399 AND v_apps_ver >= MSC_UTIL.G_EAM_CMRO_SUP_VER AND MSC_UTIL.G_CMRO_EAM_INT_ENABLED = 'Y'THEN
6400
6401 FND_MESSAGE.SET_NAME('MSC', 'MSC_DP_TASK_START');
6402 FND_MESSAGE.SET_TOKEN('PROCEDURE', 'LOAD_EAM_INFO');
6403 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS,FND_MESSAGE.GET);
6404 MSC_CL_EAM_PULL.LOAD_EAM_INFO;
6405
6406 ELSIF prec.eAM_forecasts_flag = MSC_UTIL.SYS_YES AND
6407 pTASKNUM= TASK_EAM_FORECAST
6408 AND v_apps_ver >= MSC_UTIL.G_EAM_CMRO_SUP_VER AND MSC_UTIL.G_CMRO_EAM_INT_ENABLED = 'Y'THEN
6409 FND_MESSAGE.SET_NAME('MSC', 'MSC_DP_TASK_START');
6410 FND_MESSAGE.SET_TOKEN('PROCEDURE', 'LOAD_EAM_FORECASTS');
6411 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS,FND_MESSAGE.GET);
6412 MSC_CL_EAM_PULL.LOAD_EAM_FORECASTS(prec.eam_fc_st_date,prec.eam_fc_end_date);
6413
6414 ELSIF prec.cmro_forecasts_flag = MSC_UTIL.SYS_YES AND pTASKNUM= TASK_CMRO_FORECASTS
6415 AND v_apps_ver >= MSC_UTIL.G_EAM_CMRO_SUP_VER AND MSC_UTIL.G_CMRO_EAM_INT_ENABLED = 'Y'THEN
6416 FND_MESSAGE.SET_NAME('MSC', 'MSC_DP_TASK_START');
6417 FND_MESSAGE.SET_TOKEN('PROCEDURE', 'LOAD_CMRO_FORECASTS');
6418 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS,FND_MESSAGE.GET);
6419 MSC_CL_AHL_PULL.LOAD_CMRO_FORECASTS(prec.cmro_fc_st_date,prec.cmro_fc_end_date);
6420
6421 ELSIF prec.cmro_flag = MSC_UTIL.SYS_YES AND
6422 pTASKNUM= TASK_VISITS
6423 AND v_apps_ver >= MSC_UTIL.G_EAM_CMRO_SUP_VER AND MSC_UTIL.G_CMRO_EAM_INT_ENABLED = 'Y'THEN
6424 FND_MESSAGE.SET_NAME('MSC', 'MSC_DP_TASK_START');
6425 FND_MESSAGE.SET_TOKEN('PROCEDURE', 'LOAD_VISITS');
6426 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS,FND_MESSAGE.GET);
6427 MSC_CL_AHL_PULL.LOAD_VISITS;
6428
6429 ELSIF prec.cmro_flag = MSC_UTIL.SYS_YES AND
6430 pTASKNUM= TASK_WO_ATTRIBUTES
6431 AND v_apps_ver >= MSC_UTIL.G_EAM_CMRO_SUP_VER AND MSC_UTIL.G_CMRO_EAM_INT_ENABLED = 'Y'THEN
6432 FND_MESSAGE.SET_NAME('MSC', 'MSC_DP_TASK_START');
6433 FND_MESSAGE.SET_TOKEN('PROCEDURE', 'LOAD_WO_ATTRIBUTES');
6434 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS,FND_MESSAGE.GET);
6435 MSC_CL_AHL_PULL.LOAD_WO_ATTRIBUTES;
6436
6437 ELSIF prec.cmro_flag = MSC_UTIL.SYS_YES AND
6438 pTASKNUM= TASK_WO_TASK_HIERARCHY
6439 AND v_apps_ver >= MSC_UTIL.G_EAM_CMRO_SUP_VER AND MSC_UTIL.G_CMRO_EAM_INT_ENABLED = 'Y'THEN
6440 FND_MESSAGE.SET_NAME('MSC', 'MSC_DP_TASK_START');
6441 FND_MESSAGE.SET_TOKEN('PROCEDURE', 'LOAD_WO_TASK_HRY');
6442 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS,FND_MESSAGE.GET);
6443 MSC_CL_AHL_PULL.LOAD_WO_TASK_HRY;
6444
6445 ELSIF prec.cmro_flag = MSC_UTIL.SYS_YES AND
6446 pTASKNUM= TASK_WO_OPERATION_REL
6447 AND v_apps_ver >= MSC_UTIL.G_EAM_CMRO_SUP_VER AND MSC_UTIL.G_CMRO_EAM_INT_ENABLED = 'Y'THEN
6448 FND_MESSAGE.SET_NAME('MSC', 'MSC_DP_TASK_START');
6449 FND_MESSAGE.SET_TOKEN('PROCEDURE', 'LOAD_WO_OPER_RELN');
6450 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS,FND_MESSAGE.GET);
6451 MSC_CL_AHL_PULL.LOAD_WO_OPER_RELN;
6452
6453 ELSIF prec.cmro_flag = MSC_UTIL.SYS_YES AND
6454 pTASKNUM= TASK_WORK_BREAKDOWN_STRUCT
6455 AND v_apps_ver >= MSC_UTIL.G_EAM_CMRO_SUP_VER AND MSC_UTIL.G_CMRO_EAM_INT_ENABLED = 'Y'THEN
6456 FND_MESSAGE.SET_NAME('MSC', 'MSC_DP_TASK_START');
6457 FND_MESSAGE.SET_TOKEN('PROCEDURE', 'LOAD_WORK_BREAKDOWN');
6458 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS,FND_MESSAGE.GET);
6459 MSC_CL_AHL_PULL.LOAD_WORK_BREAKDOWN;
6460
6461 ELSIF prec.cmro_flag = MSC_UTIL.SYS_YES AND
6462 pTASKNUM= TASK_WO_MILESTONES
6463 AND v_apps_ver >= MSC_UTIL.G_EAM_CMRO_SUP_VER AND MSC_UTIL.G_CMRO_EAM_INT_ENABLED = 'Y'THEN
6464 FND_MESSAGE.SET_NAME('MSC', 'MSC_DP_TASK_START');
6465 FND_MESSAGE.SET_TOKEN('PROCEDURE', 'LOAD_MILESTONES');
6466 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS,FND_MESSAGE.GET);
6467 MSC_CL_AHL_PULL.LOAD_MILESTONES;
6468
6469 ELSIF prec.cmro_flag = MSC_UTIL.SYS_YES AND
6470 pTASKNUM= TASK_WO_SUB_COMP
6471 AND v_apps_ver >= MSC_UTIL.G_EAM_CMRO_SUP_VER AND MSC_UTIL.G_CMRO_EAM_INT_ENABLED = 'Y'THEN
6472 FND_MESSAGE.SET_NAME('MSC', 'MSC_DP_TASK_START');
6473 FND_MESSAGE.SET_TOKEN('PROCEDURE', 'LOAD_WO_SUB_COMP ');
6474 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS,FND_MESSAGE.GET);
6475 MSC_CL_AHL_PULL.LOAD_WO_SUB_COMP ;
6476
6477 ELSIF prec.reserves_flag = MSC_UTIL.SYS_YES AND
6478 pTASKNUM= TASK_CMRO_SUPP_RESRV
6479 AND v_apps_ver >= MSC_UTIL.G_EAM_CMRO_SUP_VER AND MSC_UTIL.G_CMRO_EAM_INT_ENABLED = 'Y'THEN
6480 FND_MESSAGE.SET_NAME('MSC', 'MSC_DP_TASK_START');
6481 FND_MESSAGE.SET_TOKEN('PROCEDURE', 'LOAD_SUPPLY_RESERVATIONS');
6482 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS,FND_MESSAGE.GET);
6483 MSC_CL_AHL_PULL.LOAD_SUPPLY_RESERVATIONS;
6484
6485 /* USAF --rgurugub*/
6486
6487 ELSIF prec.cmro_closed_wo = MSC_UTIL.SYS_YES AND
6488 pTASKNUM= TASK_cmro_closed_wo
6489 AND v_apps_ver >= MSC_UTIL.G_EAM_CMRO_SUP_VER AND MSC_UTIL.G_CMRO_EAM_INT_ENABLED = 'Y'THEN
6490 FND_MESSAGE.SET_NAME('MSC', 'MSC_DP_TASK_START');
6491 FND_MESSAGE.SET_TOKEN('PROCEDURE', 'LOAD_CLOSED_CMRO_WOS');
6492 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS,FND_MESSAGE.GET);
6493 MSC_CL_AHL_PULL.LOAD_CLOSED_CMRO_WOS ;
6494
6495 ELSIF prec.osp_supply = MSC_UTIL.SYS_YES AND
6496 pTASKNUM= TASK_OSP_SUPPLY
6497 AND v_apps_ver >= MSC_UTIL.G_EAM_CMRO_SUP_VER AND MSC_UTIL.G_CMRO_EAM_INT_ENABLED = 'Y'THEN
6498 FND_MESSAGE.SET_NAME('MSC', 'MSC_DP_TASK_START');
6499 FND_MESSAGE.SET_TOKEN('PROCEDURE', 'LOAD_OSP_SUPPLY');
6500 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS,FND_MESSAGE.GET);
6501 MSC_CL_AHL_PULL.LOAD_OSP_SUPPLY ;
6502
6503 END IF;
6504
6505 -- ======== If no exception occurs, then returns with status = OK ========
6506 pSTATUS := OK;
6507
6508 -- agmcont
6509 -- restore value of v_lrnn and v_lrn
6510 if (v_is_cont_refresh = MSC_UTIL.SYS_YES) then
6511 v_lrnn := pLRN;
6512 v_lrn := TO_CHAR(pLRN);
6513 end if;
6514
6515 EXCEPTION--LOAD_DATA
6516
6517 WHEN EX_SERIALIZATION_ERROR THEN
6518
6519 ROLLBACK WORK TO SAVEPOINT ExecuteTask;
6520
6521 RETURN;
6522
6523 WHEN GMP_ERROR THEN
6524
6525 FND_MESSAGE.SET_NAME('MSC', 'MSC_DP_TASK_GMP_ERR');
6526 FND_MESSAGE.SET_TOKEN('ROUTINE', v_gmp_routine_name);
6527
6528 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_FATAL_ERR, FND_MESSAGE.GET);
6529
6530 RAISE;
6531
6532 WHEN OTHERS THEN
6533
6534 FND_MESSAGE.SET_NAME('MSC', 'MSC_DP_TASK_ERR');
6535 FND_MESSAGE.SET_TOKEN('TABLE', v_table_name);
6536 FND_MESSAGE.SET_TOKEN('VIEW', v_view_name);
6537
6538 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_FATAL_ERR, FND_MESSAGE.GET);
6539
6540 RAISE;
6541
6542 END;--LOAD_DATA
6543
6544 FND_MESSAGE.SET_NAME('MSC', 'MSC_ELAPSED_TIME');
6545 FND_MESSAGE.SET_TOKEN('ELAPSED_TIME',
6546 TO_CHAR(CEIL((SYSDATE- lv_task_start_time)*14400.0)/10));
6547 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_STATUS, FND_MESSAGE.GET);
6548 msc_util.print_top_wait(CEIL((SYSDATE- lv_task_start_time)*14400.0)/10);
6549 msc_util.print_cum_stat(CEIL((SYSDATE- lv_task_start_time)*14400.0)/10);
6550 msc_util.print_bad_sqls(CEIL((SYSDATE- lv_task_start_time)*14400.0)/10);
6551
6552
6553 EXCEPTION
6554
6555 WHEN OTHERS THEN
6556 IF SQLCODE IN (-01578,-26040) THEN
6557 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_FATAL_ERR,SQLERRM);
6558 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_FATAL_ERR,'To rectify this problem -');
6559 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_FATAL_ERR,'Run concurrent program "Truncate Planning Staging Tables" ');
6560 ELSE
6561 MSC_UTIL.LOG_MSG(MSC_UTIL.G_LVL_FATAL_ERR,SQLERRM);
6562 END IF;
6563 RAISE;
6564
6565 END EXECUTE_TASK;
6566
6567
6568 -- ==================================================
6569
6570 PROCEDURE ANALYZE_ALL_ST_TABLE
6571 IS
6572
6573 CURSOR tab_list(p_owner varchar) IS
6574 SELECT table_name
6575 FROM all_tables
6576 WHERE owner=p_owner
6577 AND table_name like 'MSC_ST_%'
6578 AND temporary <> 'Y';
6579
6580 var_table_name VARCHAR2(30);
6581 v_msc_schema VARCHAR2(32);
6582 lv_retval boolean;
6583 lv_dummy1 varchar2(32);
6584 lv_dummy2 varchar2(32);
6585
6586 BEGIN
6587 lv_retval := FND_INSTALLATION.GET_APP_INFO ('MSC', lv_dummy1, lv_dummy2, v_msc_schema);
6588 OPEN tab_list(v_msc_schema);
6589 LOOP
6590 FETCH tab_list INTO var_table_name;
6591
6592 EXIT WHEN tab_list%NOTFOUND;
6593
6594 fnd_stats.gather_table_stats(v_msc_schema, var_table_name, 10, 4);
6595
6596 END LOOP;
6597
6598 END ANALYZE_ALL_ST_TABLE;
6599
6600
6601 PROCEDURE ANALYZE_ST_TABLE( pTASK_NUMBER IN NUMBER)
6602 IS
6603
6604 lv_pctg NUMBER:= 10;
6605 lv_deg NUMBER:= 4;
6606 lv_owner VARCHAR2(30);
6607
6608 CURSOR tab_list is
6609 SELECT a.oracle_username
6610 FROM FND_ORACLE_USERID a, FND_PRODUCT_INSTALLATIONS b
6611 WHERE a.oracle_id = b.oracle_id
6612 and b.application_id= 724;
6613
6614 BEGIN
6615
6616 OPEN tab_list;
6617 FETCH tab_list INTO lv_owner;
6618 IF tab_list%NOTFOUND THEN RETURN; END IF;
6619 CLOSE tab_list;
6620
6621 IF pTASK_NUMBER= TASK_BOM THEN
6622
6623 TSK_RM_BOM_COMPONENTS:= TSK_RM_BOM_COMPONENTS - 1;
6624 IF TSK_RM_BOM_COMPONENTS=0 THEN
6625 FND_STATS.gather_table_stats( lv_owner,'MSC_ST_BOM_COMPONENTS',lv_pctg,lv_deg);
6626 END IF;
6627
6628 TSK_RM_BOMS:= TSK_RM_BOMS - 1;
6629 IF TSK_RM_BOMS=0 THEN
6630 FND_STATS.gather_table_stats( lv_owner,'MSC_ST_BOMS',lv_pctg,lv_deg);
6631 END IF;
6632
6633 TSK_RM_COMPONENT_SUBSTITUTES:= TSK_RM_COMPONENT_SUBSTITUTES- 1;
6634 IF TSK_RM_COMPONENT_SUBSTITUTES=0 THEN
6635 FND_STATS.gather_table_stats( lv_owner,'MSC_ST_COMPONENT_SUBSTITUTES',lv_pctg,lv_deg);
6636 END IF;
6637
6638 ELSIF pTASK_NUMBER= TASK_ROUTING THEN
6639
6640 TSK_RM_ROUTINGS:= TSK_RM_ROUTINGS- 1;
6641 IF TSK_RM_ROUTINGS=0 THEN
6642 FND_STATS.gather_table_stats( lv_owner,'MSC_ST_ROUTINGS',lv_pctg,lv_deg);
6643 END IF;
6644
6645 TSK_RM_ROUTING_OPERATIONS:= TSK_RM_ROUTING_OPERATIONS- 1;
6646 IF TSK_RM_ROUTING_OPERATIONS=0 THEN
6647 FND_STATS.gather_table_stats( lv_owner,'MSC_ST_ROUTING_OPERATIONS',lv_pctg,lv_deg);
6648 END IF;
6649
6650 TSK_RM_OPERATION_RESOURCE_SEQS:= TSK_RM_OPERATION_RESOURCE_SEQS- 1;
6651 IF TSK_RM_OPERATION_RESOURCE_SEQS=0 THEN
6652 FND_STATS.gather_table_stats( lv_owner,'MSC_ST_OPERATION_RESOURCE_SEQS',lv_pctg,lv_deg);
6653 END IF;
6654
6655 TSK_RM_OPERATION_RESOURCES:= TSK_RM_OPERATION_RESOURCES- 1;
6656 IF TSK_RM_OPERATION_RESOURCES=0 THEN
6657 FND_STATS.gather_table_stats( lv_owner,'MSC_ST_OPERATION_RESOURCES',lv_pctg,lv_deg);
6658 END IF;
6659
6660 TSK_RM_OPERATION_COMPONENTS:= TSK_RM_OPERATION_COMPONENTS- 1;
6661 IF TSK_RM_OPERATION_COMPONENTS=0 THEN
6662 FND_STATS.gather_table_stats( lv_owner,'MSC_ST_OPERATION_COMPONENTS',lv_pctg,lv_deg);
6663 END IF;
6664
6665 TSK_RM_PROCESS_EFFECTIVITY:= TSK_RM_PROCESS_EFFECTIVITY- 1;
6666 IF TSK_RM_PROCESS_EFFECTIVITY=0 THEN
6667 FND_STATS.gather_table_stats( lv_owner,'MSC_ST_PROCESS_EFFECTIVITY',lv_pctg,lv_deg);
6668 END IF;
6669
6670 ELSIF pTASK_NUMBER= TASK_BOR THEN
6671
6672 TSK_RM_BILL_OF_RESOURCES:= TSK_RM_BILL_OF_RESOURCES- 1;
6673 IF TSK_RM_BILL_OF_RESOURCES=0 THEN
6674 FND_STATS.gather_table_stats( lv_owner,'MSC_ST_BILL_OF_RESOURCES',lv_pctg,lv_deg);
6675 END IF;
6676
6677 TSK_RM_BOR_REQUIREMENTS:= TSK_RM_BOR_REQUIREMENTS- 1;
6678 IF TSK_RM_BOR_REQUIREMENTS=0 THEN
6679 FND_STATS.gather_table_stats( lv_owner,'MSC_ST_BOR_REQUIREMENTS',lv_pctg,lv_deg);
6680 END IF;
6681
6682 ELSIF pTASK_NUMBER= TASK_CALENDAR_DATE THEN
6683
6684 TSK_RM_RESOURCE_CHANGES:= TSK_RM_RESOURCE_CHANGES- 1;
6685 IF TSK_RM_RESOURCE_CHANGES=0 THEN
6686 FND_STATS.gather_table_stats( lv_owner,'MSC_ST_RESOURCE_CHANGES',lv_pctg,lv_deg);
6687 END IF;
6688
6689 TSK_RM_CALENDAR_DATES:= TSK_RM_CALENDAR_DATES- 1;
6690 IF TSK_RM_CALENDAR_DATES=0 THEN
6691 FND_STATS.gather_table_stats( lv_owner,'MSC_ST_CALENDAR_DATES',lv_pctg,lv_deg);
6692 END IF;
6693
6694 TSK_RM_PERIOD_START_DATES:= TSK_RM_PERIOD_START_DATES- 1;
6695 IF TSK_RM_PERIOD_START_DATES=0 THEN
6696 FND_STATS.gather_table_stats( lv_owner,'MSC_ST_PERIOD_START_DATES',lv_pctg,lv_deg);
6697 END IF;
6698
6699 TSK_RM_CAL_YEAR_START_DATES:= TSK_RM_CAL_YEAR_START_DATES- 1;
6700 IF TSK_RM_CAL_YEAR_START_DATES=0 THEN
6701 FND_STATS.gather_table_stats( lv_owner,'MSC_ST_CAL_YEAR_START_DATES',lv_pctg,lv_deg);
6702 END IF;
6703
6704 TSK_RM_CAL_WEEK_START_DATES:= TSK_RM_CAL_WEEK_START_DATES- 1;
6705 IF TSK_RM_CAL_WEEK_START_DATES=0 THEN
6706 FND_STATS.gather_table_stats( lv_owner,'MSC_ST_CAL_WEEK_START_DATES',lv_pctg,lv_deg);
6707 END IF;
6708
6709 TSK_RM_RESOURCE_SHIFTS:= TSK_RM_RESOURCE_SHIFTS- 1;
6710 IF TSK_RM_RESOURCE_SHIFTS=0 THEN
6711 FND_STATS.gather_table_stats( lv_owner,'MSC_ST_RESOURCE_SHIFTS',lv_pctg,lv_deg);
6712 END IF;
6713
6714 TSK_RM_CALENDAR_SHIFTS:= TSK_RM_CALENDAR_SHIFTS- 1;
6715 IF TSK_RM_CALENDAR_SHIFTS=0 THEN
6716 FND_STATS.gather_table_stats( lv_owner,'MSC_ST_CALENDAR_SHIFTS',lv_pctg,lv_deg);
6717 END IF;
6718
6719 TSK_RM_SHIFT_DATES:= TSK_RM_SHIFT_DATES- 1;
6720 IF TSK_RM_SHIFT_DATES=0 THEN
6721 FND_STATS.gather_table_stats( lv_owner,'MSC_ST_SHIFT_DATES',lv_pctg,lv_deg);
6722 END IF;
6723
6724 TSK_RM_SHIFT_TIMES:= TSK_RM_SHIFT_TIMES- 1;
6725 IF TSK_RM_SHIFT_TIMES=0 THEN
6726 FND_STATS.gather_table_stats( lv_owner,'MSC_ST_SHIFT_TIMES',lv_pctg,lv_deg);
6727 END IF;
6728
6729 TSK_RM_SHIFT_EXCEPTIONS:= TSK_RM_SHIFT_EXCEPTIONS- 1;
6730 IF TSK_RM_SHIFT_EXCEPTIONS=0 THEN
6731 FND_STATS.gather_table_stats( lv_owner,'MSC_ST_SHIFT_EXCEPTIONS',lv_pctg,lv_deg);
6732 END IF;
6733
6734 TSK_RM_CALENDAR_ASSIGNMENTS:= TSK_RM_CALENDAR_ASSIGNMENTS- 1;
6735 IF TSK_RM_CALENDAR_ASSIGNMENTS=0 THEN
6736 FND_STATS.gather_table_stats( lv_owner,'MSC_ST_CALENDAR_ASSIGNMENTS',lv_pctg,lv_deg);
6737 END IF;
6738
6739 TSK_RM_BIS_PERIODS:= TSK_RM_BIS_PERIODS- 1;
6740 IF TSK_RM_BIS_PERIODS=0 THEN
6741 FND_STATS.gather_table_stats( lv_owner,'MSC_ST_BIS_PERIODS',lv_pctg,lv_deg);
6742 END IF;
6743
6744 ELSIF pTASK_NUMBER= TASK_CATEGORY THEN
6745
6746 TSK_RM_ITEM_CATEGORIES:= TSK_RM_ITEM_CATEGORIES- 1;
6747 IF TSK_RM_ITEM_CATEGORIES=0 THEN
6748 FND_STATS.gather_table_stats( lv_owner,'MSC_ST_ITEM_CATEGORIES',lv_pctg,lv_deg);
6749 END IF;
6750
6751 TSK_RM_CATEGORY_SETS:= TSK_RM_CATEGORY_SETS- 1;
6752 IF TSK_RM_CATEGORY_SETS=0 THEN
6753 FND_STATS.gather_table_stats( lv_owner,'MSC_ST_CATEGORY_SETS',lv_pctg,lv_deg);
6754 END IF;
6755
6756 ELSIF pTASK_NUMBER= TASK_MDS_DEMAND THEN
6757
6758 TSK_RM_DEMANDS:= TSK_RM_DEMANDS- 1;
6759 IF TSK_RM_DEMANDS=0 THEN
6760 FND_STATS.gather_table_stats( lv_owner,'MSC_ST_DEMANDS',lv_pctg,lv_deg);
6761 END IF;
6762
6763 ELSIF pTASK_NUMBER= TASK_WIP_DEMAND THEN
6764
6765 TSK_RM_DEMANDS:= TSK_RM_DEMANDS- 1;
6766 IF TSK_RM_DEMANDS=0 THEN
6767 FND_STATS.gather_table_stats( lv_owner,'MSC_ST_DEMANDS',lv_pctg,lv_deg);
6768 END IF;
6769
6770 ELSIF pTASK_NUMBER in (TASK_SALES_ORDER1,TASK_SALES_ORDER2,TASK_SALES_ORDER3,TASK_AHL) THEN
6771
6772 TSK_RM_SALES_ORDERS:= TSK_RM_SALES_ORDERS- 1;
6773 IF TSK_RM_SALES_ORDERS=0 THEN
6774 FND_STATS.gather_table_stats( lv_owner,'MSC_ST_SALES_ORDERS',lv_pctg,lv_deg);
6775 END IF;
6776
6777 ELSIF pTASK_NUMBER= TASK_HARD_RESERVATION THEN
6778
6779 TSK_RM_RESERVATIONS:= TSK_RM_RESERVATIONS- 1;
6780 IF TSK_RM_RESERVATIONS=0 THEN
6781 FND_STATS.gather_table_stats( lv_owner,'MSC_ST_RESERVATIONS',lv_pctg,lv_deg);
6782 END IF;
6783
6784 ELSIF pTASK_NUMBER IN ( TASK_ITEM1, TASK_ITEM2, TASK_ITEM3) THEN
6785
6786 TSK_RM_SYSTEM_ITEMS:= TSK_RM_SYSTEM_ITEMS- 1;
6787 IF TSK_RM_SYSTEM_ITEMS=0 THEN
6788 FND_STATS.gather_table_stats( lv_owner,'MSC_ST_SYSTEM_ITEMS',lv_pctg,lv_deg);
6789 END IF;
6790
6791 ELSIF pTASK_NUMBER = TASK_BUYER_CONTACT THEN
6792
6793 TSK_RM_PARTNER_CONTACTS:= TSK_RM_PARTNER_CONTACTS- 1;
6794 IF TSK_RM_PARTNER_CONTACTS=0 THEN
6795 FND_STATS.gather_table_stats( lv_owner,'MSC_ST_PARTNER_CONTACTS',lv_pctg,lv_deg);
6796 END IF;
6797
6798 ELSIF pTASK_NUMBER = TASK_RESOURCE THEN
6799
6800 TSK_RM_DEPARTMENT_RESOURCES:= TSK_RM_DEPARTMENT_RESOURCES- 1;
6801 IF TSK_RM_DEPARTMENT_RESOURCES=0 THEN
6802 FND_STATS.gather_table_stats( lv_owner,'MSC_ST_DEPARTMENT_RESOURCES',lv_pctg,lv_deg);
6803 END IF;
6804
6805 TSK_RM_SIMULATION_SETS:= TSK_RM_SIMULATION_SETS- 1;
6806 IF TSK_RM_SIMULATION_SETS=0 THEN
6807 FND_STATS.gather_table_stats( lv_owner,'MSC_ST_SIMULATION_SETS',lv_pctg,lv_deg);
6808 END IF;
6809
6810 TSK_RM_RESOURCE_GROUPS:= TSK_RM_RESOURCE_GROUPS- 1;
6811 IF TSK_RM_RESOURCE_GROUPS=0 THEN
6812 FND_STATS.gather_table_stats( lv_owner,'MSC_ST_RESOURCE_GROUPS',lv_pctg,lv_deg);
6813 END IF;
6814
6815 TSK_RM_RESOURCE_REQUIREMENTS:= TSK_RM_RESOURCE_REQUIREMENTS- 1;
6816 IF TSK_RM_RESOURCE_REQUIREMENTS=0 THEN
6817 FND_STATS.gather_table_stats( lv_owner,'MSC_ST_RESOURCE_REQUIREMENTS',lv_pctg,lv_deg);
6818 END IF;
6819
6820 ELSIF pTASK_NUMBER = TASK_SAFETY_STOCK THEN
6821
6822 TSK_RM_SAFETY_STOCKS:= TSK_RM_SAFETY_STOCKS- 1;
6823 IF TSK_RM_SAFETY_STOCKS=0 THEN
6824 FND_STATS.gather_table_stats( lv_owner,'MSC_ST_SAFETY_STOCKS',lv_pctg,lv_deg);
6825 END IF;
6826
6827 ELSIF pTASK_NUMBER = TASK_SCHEDULE THEN
6828
6829 TSK_RM_DESIGNATORS:= TSK_RM_DESIGNATORS- 1;
6830 IF TSK_RM_DESIGNATORS=0 THEN
6831 FND_STATS.gather_table_stats( lv_owner,'MSC_ST_DESIGNATORS',lv_pctg,lv_deg);
6832 END IF;
6833
6834 ELSIF pTASK_NUMBER = TASK_SOURCING THEN
6835
6836 TSK_RM_ASSIGNMENT_SETS:= TSK_RM_ASSIGNMENT_SETS- 1;
6837 IF TSK_RM_ASSIGNMENT_SETS=0 THEN
6838 FND_STATS.gather_table_stats( lv_owner,'MSC_ST_ASSIGNMENT_SETS',lv_pctg,lv_deg);
6839 END IF;
6840
6841 TSK_RM_SR_ASSIGNMENTS:= TSK_RM_SR_ASSIGNMENTS- 1;
6842 IF TSK_RM_SR_ASSIGNMENTS=0 THEN
6843 FND_STATS.gather_table_stats( lv_owner,'MSC_ST_SR_ASSIGNMENTS',lv_pctg,lv_deg);
6844 END IF;
6845
6846 TSK_RM_SOURCING_RULES:= TSK_RM_SOURCING_RULES- 1;
6847 IF TSK_RM_SOURCING_RULES=0 THEN
6848 FND_STATS.gather_table_stats( lv_owner,'MSC_ST_SOURCING_RULES',lv_pctg,lv_deg);
6849 END IF;
6850
6851 TSK_RM_SR_RECEIPT_ORG:= TSK_RM_SR_RECEIPT_ORG- 1;
6852 IF TSK_RM_SR_RECEIPT_ORG=0 THEN
6853 FND_STATS.gather_table_stats( lv_owner,'MSC_ST_SR_RECEIPT_ORG',lv_pctg,lv_deg);
6854 END IF;
6855
6856 TSK_RM_SR_SOURCE_ORG:= TSK_RM_SR_SOURCE_ORG- 1;
6857 IF TSK_RM_SR_SOURCE_ORG=0 THEN
6858 FND_STATS.gather_table_stats( lv_owner,'MSC_ST_SR_SOURCE_ORG',lv_pctg,lv_deg);
6859 END IF;
6860
6861 TSK_RM_INTERORG_SHIP_METHODS:= TSK_RM_INTERORG_SHIP_METHODS- 1;
6862 IF TSK_RM_INTERORG_SHIP_METHODS=0 THEN
6863 FND_STATS.gather_table_stats( lv_owner,'MSC_ST_INTERORG_SHIP_METHODS',lv_pctg,lv_deg);
6864 END IF;
6865
6866 TSK_RM_REGIONS := TSK_RM_REGIONS - 1;
6867 IF TSK_RM_REGIONS = 0 THEN
6868 FND_STATS.gather_table_stats( lv_owner,'MSC_ST_REGIONS',lv_pctg,lv_deg);
6869 END IF;
6870
6871 TSK_RM_ZONE_REGIONS := TSK_RM_ZONE_REGIONS - 1;
6872 IF TSK_RM_ZONE_REGIONS = 0 THEN
6873 FND_STATS.gather_table_stats( lv_owner,'MSC_ST_ZONE_REGIONS',lv_pctg,lv_deg);
6874 END IF;
6875
6876 TSK_RM_CARRIER_SERVICES:= TSK_RM_CARRIER_SERVICES- 1;
6877 IF TSK_RM_CARRIER_SERVICES=0 THEN
6878 FND_STATS.gather_table_stats( lv_owner,'MSC_ST_CARRIER_SERVICES',lv_pctg,lv_deg);
6879 END IF;
6880
6881 TSK_RM_REGION_SITES:= TSK_RM_REGION_SITES- 1;
6882 IF TSK_RM_REGION_SITES=0 THEN
6883 FND_STATS.gather_table_stats( lv_owner,'MSC_ST_REGION_SITES',lv_pctg,lv_deg);
6884 END IF;
6885
6886 ELSIF pTASK_NUMBER = TASK_SUB_INVENTORY THEN
6887
6888 TSK_RM_SUB_INVENTORIES:= TSK_RM_SUB_INVENTORIES- 1;
6889 IF TSK_RM_SUB_INVENTORIES=0 THEN
6890 FND_STATS.gather_table_stats( lv_owner,'MSC_ST_SUB_INVENTORIES',lv_pctg,lv_deg);
6891 END IF;
6892
6893 ELSIF pTASK_NUMBER = TASK_SUPPLIER_CAPACITY THEN
6894
6895 TSK_RM_ITEM_SUPPLIERS:= TSK_RM_ITEM_SUPPLIERS- 1;
6896 IF TSK_RM_ITEM_SUPPLIERS=0 THEN
6897 FND_STATS.gather_table_stats( lv_owner,'MSC_ST_ITEM_SUPPLIERS',lv_pctg,lv_deg);
6898 END IF;
6899
6900 TSK_RM_SUPPLIER_CAPACITIES:= TSK_RM_SUPPLIER_CAPACITIES- 1;
6901 IF TSK_RM_SUPPLIER_CAPACITIES=0 THEN
6902 FND_STATS.gather_table_stats( lv_owner,'MSC_ST_SUPPLIER_CAPACITIES',lv_pctg,lv_deg);
6903 END IF;
6904
6905 TSK_RM_SUPPLIER_FLEX_FENCES:= TSK_RM_SUPPLIER_FLEX_FENCES- 1;
6906 IF TSK_RM_SUPPLIER_FLEX_FENCES=0 THEN
6907 FND_STATS.gather_table_stats( lv_owner,'MSC_ST_SUPPLIER_FLEX_FENCES',lv_pctg,lv_deg);
6908 END IF;
6909
6910 ELSIF pTASK_NUMBER IN ( TASK_PO_SUPPLY, TASK_WIP_SUPPLY, TASK_OH_SUPPLY, TASK_MPS_SUPPLY, TASK_PO_PO_SUPPLY, TASK_PO_REQ_SUPPLY) THEN
6911
6912 TSK_RM_SUPPLIES:= TSK_RM_SUPPLIES- 1;
6913 IF TSK_RM_SUPPLIES=0 THEN
6914 FND_STATS.gather_table_stats( lv_owner,'MSC_ST_SUPPLIES',lv_pctg,lv_deg);
6915 END IF;
6916
6917 TSK_RM_JOB_OP_NETWORKS := TSK_RM_JOB_OP_NETWORKS - 1;
6918 IF TSK_RM_JOB_OP_NETWORKS=0 THEN
6919 FND_STATS.gather_table_stats( lv_owner,'MSC_ST_JOB_OPERATION_NETWORKS',lv_pctg,lv_deg);
6920 END IF;
6921
6922 TSK_RM_JOB_OPERATIONS := TSK_RM_JOB_OPERATIONS - 1;
6923 IF TSK_RM_JOB_OPERATIONS=0 THEN
6924 FND_STATS.gather_table_stats( lv_owner,'MSC_ST_JOB_OPERATIONS',lv_pctg,lv_deg);
6925 END IF;
6926
6927 TSK_RM_JOB_REQUIREMENT_OPS := TSK_RM_JOB_REQUIREMENT_OPS - 1;
6928 IF TSK_RM_JOB_REQUIREMENT_OPS=0 THEN
6929 FND_STATS.gather_table_stats( lv_owner,'MSC_ST_JOB_REQUIREMENT_OPS',lv_pctg,lv_deg);
6930 END IF;
6931
6932 TSK_RM_JOB_OP_RESOURCES := TSK_RM_JOB_OP_RESOURCES - 1;
6933 IF TSK_RM_JOB_OP_RESOURCES=0 THEN
6934 FND_STATS.gather_table_stats( lv_owner,'MSC_ST_JOB_OP_RESOURCES',lv_pctg,lv_deg);
6935 END IF;
6936
6937 ELSIF pTASK_NUMBER = TASK_TRADING_PARTNER THEN
6938
6939 TSK_RM_TRADING_PARTNERS:= TSK_RM_TRADING_PARTNERS- 1;
6940 IF TSK_RM_TRADING_PARTNERS=0 THEN
6941 FND_STATS.gather_table_stats( lv_owner,'MSC_ST_TRADING_PARTNERS',lv_pctg,lv_deg);
6942 END IF;
6943
6944 TSK_RM_TRADING_PARTNER_SITES:= TSK_RM_TRADING_PARTNER_SITES- 1;
6945 IF TSK_RM_TRADING_PARTNER_SITES=0 THEN
6946 FND_STATS.gather_table_stats( lv_owner,'MSC_ST_TRADING_PARTNER_SITES',lv_pctg,lv_deg);
6947 END IF;
6948
6949 TSK_RM_LOCATION_ASSOCIATIONS:= TSK_RM_LOCATION_ASSOCIATIONS- 1;
6950 IF TSK_RM_LOCATION_ASSOCIATIONS=0 THEN
6951 FND_STATS.gather_table_stats( lv_owner,'MSC_ST_LOCATION_ASSOCIATIONS',lv_pctg,lv_deg);
6952 END IF;
6953
6954 TSK_RM_PARTNER_CONTACTS:= TSK_RM_PARTNER_CONTACTS- 1;
6955 IF TSK_RM_PARTNER_CONTACTS=0 THEN
6956 FND_STATS.gather_table_stats( lv_owner,'MSC_ST_PARTNER_CONTACTS',lv_pctg,lv_deg);
6957 END IF;
6958
6959 ELSIF pTASK_NUMBER = TASK_UNIT_NUMBER THEN
6960
6961 TSK_RM_UNIT_NUMBERS:= TSK_RM_UNIT_NUMBERS- 1;
6962 IF TSK_RM_UNIT_NUMBERS=0 THEN
6963 FND_STATS.gather_table_stats( lv_owner,'MSC_ST_UNIT_NUMBERS',lv_pctg,lv_deg);
6964 END IF;
6965
6966 ELSIF pTASK_NUMBER = TASK_PROJECT THEN
6967
6968 TSK_RM_PROJECTS:= TSK_RM_PROJECTS- 1;
6969 IF TSK_RM_PROJECTS=0 THEN
6970 FND_STATS.gather_table_stats( lv_owner,'MSC_ST_PROJECTS',lv_pctg,lv_deg);
6971 END IF;
6972
6973 TSK_RM_PROJECT_TASKS:= TSK_RM_PROJECT_TASKS- 1;
6974 IF TSK_RM_PROJECT_TASKS=0 THEN
6975 FND_STATS.gather_table_stats( lv_owner,'MSC_ST_PROJECT_TASKS',lv_pctg,lv_deg);
6976 END IF;
6977
6978 ELSIF pTASK_NUMBER = TASK_PARAMETER THEN
6979
6980 TSK_RM_PARAMETERS:= TSK_RM_PARAMETERS- 1;
6981 IF TSK_RM_PARAMETERS=0 THEN
6982 FND_STATS.gather_table_stats( lv_owner,'MSC_ST_PARAMETERS',lv_pctg,lv_deg);
6983 END IF;
6984
6985 ELSIF pTASK_NUMBER = TASK_UOM THEN
6986
6987 TSK_RM_UNITS_OF_MEASURE:= TSK_RM_UNITS_OF_MEASURE- 1;
6988 IF TSK_RM_UNITS_OF_MEASURE=0 THEN
6989 FND_STATS.gather_table_stats( lv_owner,'MSC_ST_UNITS_OF_MEASURE',lv_pctg,lv_deg);
6990 END IF;
6991
6992 TSK_RM_UOM_CLASS_CONVERSIONS:= TSK_RM_UOM_CLASS_CONVERSIONS- 1;
6993 IF TSK_RM_UOM_CLASS_CONVERSIONS=0 THEN
6994 FND_STATS.gather_table_stats( lv_owner,'MSC_ST_UOM_CLASS_CONVERSIONS',lv_pctg,lv_deg);
6995 END IF;
6996
6997 TSK_RM_UOM_CONVERSIONS:= TSK_RM_UOM_CONVERSIONS- 1;
6998 IF TSK_RM_UOM_CONVERSIONS=0 THEN
6999 FND_STATS.gather_table_stats( lv_owner,'MSC_ST_UOM_CONVERSIONS',lv_pctg,lv_deg);
7000 END IF;
7001
7002 ELSIF pTASK_NUMBER = TASK_BIS THEN
7003
7004 TSK_RM_BIS_PFMC_MEASURES:= TSK_RM_BIS_PFMC_MEASURES- 1;
7005 IF TSK_RM_BIS_PFMC_MEASURES=0 THEN
7006 FND_STATS.gather_table_stats( lv_owner,'MSC_ST_BIS_PFMC_MEASURES',lv_pctg,lv_deg);
7007 END IF;
7008
7009 TSK_RM_BIS_TARGET_LEVELS:= TSK_RM_BIS_TARGET_LEVELS- 1;
7010 IF TSK_RM_BIS_TARGET_LEVELS=0 THEN
7011 FND_STATS.gather_table_stats( lv_owner,'MSC_ST_BIS_TARGET_LEVELS',lv_pctg,lv_deg);
7012 END IF;
7013
7014 TSK_RM_BIS_TARGETS:= TSK_RM_BIS_TARGETS- 1;
7015 IF TSK_RM_BIS_TARGETS=0 THEN
7016 FND_STATS.gather_table_stats( lv_owner,'MSC_ST_BIS_TARGETS',lv_pctg,lv_deg);
7017 END IF;
7018
7019 TSK_RM_BIS_BUSINESS_PLANS:= TSK_RM_BIS_BUSINESS_PLANS- 1;
7020 IF TSK_RM_BIS_BUSINESS_PLANS=0 THEN
7021 FND_STATS.gather_table_stats( lv_owner,'MSC_ST_BIS_BUSINESS_PLANS',lv_pctg,lv_deg);
7022 END IF;
7023
7024 ELSIF pTASK_NUMBER = TASK_ATP_RULES THEN
7025
7026 TSK_RM_ATP_RULES:= TSK_RM_ATP_RULES- 1;
7027 IF TSK_RM_ATP_RULES=0 THEN
7028 FND_STATS.gather_table_stats( lv_owner,'MSC_ST_ATP_RULES',lv_pctg,lv_deg);
7029 END IF;
7030
7031 ELSIF pTASK_NUMBER = TASK_USER_SUPPLY THEN
7032
7033 TSK_RM_SUPPLIES:= TSK_RM_SUPPLIES- 1;
7034 IF TSK_RM_SUPPLIES=0 THEN
7035 FND_STATS.gather_table_stats( lv_owner,'MSC_ST_SUPPLIES',lv_pctg,lv_deg);
7036 END IF;
7037
7038 ELSIF pTASK_NUMBER = TASK_USER_DEMAND THEN
7039
7040 TSK_RM_DEMANDS:= TSK_RM_DEMANDS- 1;
7041 IF TSK_RM_DEMANDS=0 THEN
7042 FND_STATS.gather_table_stats( lv_owner,'MSC_ST_DEMANDS',lv_pctg,lv_deg);
7043 END IF;
7044
7045 ELSIF pTASK_NUMBER = TASK_PLANNERS THEN
7046
7047 TSK_RM_PLANNERS:= TSK_RM_PLANNERS- 1;
7048 IF TSK_RM_PLANNERS=0 THEN
7049 FND_STATS.gather_table_stats( lv_owner,'MSC_ST_PLANNERS',lv_pctg,lv_deg);
7050 END IF;
7051
7052 ELSIF pTASK_NUMBER = TASK_DEMAND_CLASS THEN
7053
7054 TSK_RM_DEMAND_CLASSES:= TSK_RM_DEMAND_CLASSES- 1;
7055 IF TSK_RM_DEMAND_CLASSES=0 THEN
7056 FND_STATS.gather_table_stats( lv_owner,'MSC_ST_DEMAND_CLASSES',lv_pctg,lv_deg);
7057 END IF;
7058
7059 ELSIF pTASK_NUMBER = TASK_ITEM_SUBSTITUTES THEN
7060
7061 TSK_RM_ITEM_SUBSTITUTES := TSK_RM_ITEM_SUBSTITUTES - 1;
7062 IF TSK_RM_ITEM_SUBSTITUTES = 0 THEN
7063 FND_STATS.gather_table_stats(lv_owner,'MSC_ST_ITEM_SUBSTITUTES',lv_pctg,lv_deg);
7064 END IF;
7065
7066 ELSIF pTASK_NUMBER = TASK_TRIP THEN
7067
7068 TSK_RM_TRIPS := TSK_RM_TRIPS - 1;
7069 IF TSK_RM_TRIPS = 0 THEN
7070 FND_STATS.gather_table_stats( lv_owner,'MSC_ST_TRIPS',lv_pctg,lv_deg);
7071 END IF;
7072
7073 TSK_RM_TRIP_STOPS := TSK_RM_TRIP_STOPS - 1;
7074 IF TSK_RM_TRIP_STOPS = 0 THEN
7075 FND_STATS.gather_table_stats( lv_owner,'MSC_ST_TRIP_STOPS',lv_pctg,lv_deg);
7076 END IF;
7077 /* ds change start */
7078 ELSIF pTASK_NUMBER = TASK_RESOURCE_INSTANCE THEN
7079 TSK_RM_RESOURCE_INSTANCE := TSK_RM_RESOURCE_INSTANCE -1;
7080 IF TSK_RM_RESOURCE_INSTANCE = 0 THEN
7081 FND_STATS.gather_table_stats(lv_owner, 'MSC_ST_DEPT_RES_INSTANCES',lv_pctg,lv_deg);
7082 FND_STATS.gather_table_stats(lv_owner, 'MSC_ST_RESOURCE_INSTANCE_REQS',lv_pctg,lv_deg);
7083 FND_STATS.gather_table_stats(lv_owner, 'MSC_ST_JOB_OP_RES_INSTANCES',lv_pctg,lv_deg);
7084 END IF;
7085 ELSIF pTASK_NUMBER = TASK_RESOURCE_SETUP THEN
7086 TSK_RM_RESOURCE_SETUP := TSK_RM_RESOURCE_SETUP -1;
7087 IF TSK_RM_RESOURCE_SETUP = 0 THEN
7088 FND_STATS.gather_table_stats(lv_owner, 'MSC_ST_RESOURCE_SETUPS',lv_pctg,lv_deg);
7089 FND_STATS.gather_table_stats(lv_owner, 'MSC_ST_SETUP_TRANSITIONS',lv_pctg,lv_deg);
7090 FND_STATS.gather_table_stats(lv_owner, 'MSC_ST_STD_OP_RESOURCES',lv_pctg,lv_deg);
7091 END IF;
7092 /* ds change end */
7093 ELSIF pTASK_NUMBER = TASK_ABC_CLASSES THEN
7094 TSK_RM_ABC_CLASSES := TSK_RM_ABC_CLASSES - 1;
7095 IF TSK_RM_ABC_CLASSES =0 THEN
7096 FND_STATS.gather_table_stats(lv_owner, 'MSC_ST_ABC_CLASSES',lv_pctg,lv_deg);
7097 END IF;
7098
7099 ELSIF pTASK_NUMBER = TASK_FISCAL_CALENDAR THEN
7100 TSK_RM_FISCAL_CALENDAR := TSK_RM_FISCAL_CALENDAR - 1;
7101 IF TSK_RM_FISCAL_CALENDAR = 0 THEN
7102 FND_STATS.gather_table_stats( lv_owner,'MSC_ST_CALENDAR_MONTHS',lv_pctg,lv_deg);
7103 END IF;
7104
7105 ELSIF pTASK_NUMBER = TASK_SALES_CHANNEL THEN
7106 TSK_RM_SALES_CHANNEL := TSK_RM_SALES_CHANNEL - 1;
7107 IF TSK_RM_SALES_CHANNEL = 0 THEN
7108 FND_STATS.gather_table_stats( lv_owner,'MSC_ST_SR_LOOKUPS',lv_pctg,lv_deg);
7109 END IF;
7110
7111 ELSIF pTASK_NUMBER = TASK_IRO THEN
7112 TSK_RM_INTERNAL_REPAIR := TSK_RM_INTERNAL_REPAIR - 1;
7113 IF TSK_RM_INTERNAL_REPAIR = 0 THEN
7114 FND_STATS.gather_table_stats( lv_owner,'MSC_ST_SUPPLIES',lv_pctg,lv_deg);
7115 END IF;
7116
7117 ELSIF pTASK_NUMBER = TASK_IRO_DEMAND THEN
7118 TSK_RM_INTERNAL_REPAIR := TSK_RM_INTERNAL_REPAIR - 1;
7119 IF TSK_RM_INTERNAL_REPAIR = 0 THEN
7120 FND_STATS.gather_table_stats( lv_owner,'MSC_ST_DEMANDS',lv_pctg,lv_deg);
7121 END IF;
7122 ELSIF pTASK_NUMBER = TASK_PAYBACK_DEMAND_SUPPLY THEN
7123 TSK_RM_PAYBACK_DEMAND_SUPPLY := TSK_RM_PAYBACK_DEMAND_SUPPLY - 1;
7124 IF TSK_RM_PAYBACK_DEMAND_SUPPLY = 0 THEN
7125 FND_STATS.gather_table_stats( lv_owner,'MSC_ST_OPEN_PAYBACKS',lv_pctg,lv_deg);
7126 END IF;
7127 ELSIF pTASK_NUMBER = TASK_CURRENCY_CONVERSION THEN
7128 TSK_RM_CURRENCY_CONVERSION := TSK_RM_CURRENCY_CONVERSION - 1;
7129 IF TSK_RM_CURRENCY_CONVERSION = 0 THEN
7130 FND_STATS.gather_table_stats( lv_owner,'MSC_ST_CURRENCY_CONVERSIONS',lv_pctg,lv_deg);
7131 END IF;
7132 ELSIF pTASK_NUMBER = TASK_DELIVERY_DETAILS THEN
7133 TSK_RM_DELIVERY_DETAILS := TSK_RM_DELIVERY_DETAILS - 1;
7134 IF TSK_RM_DELIVERY_DETAILS = 0 THEN
7135 FND_STATS.gather_table_stats( lv_owner,'MSC_ST_DELIVERY_DETAILS',lv_pctg,lv_deg);
7136 END IF;
7137 ELSIF pTASK_NUMBER = TASK_IBUC_HISTORY THEN
7138 TSK_RM_IBUC_HISTORY := TSK_RM_IBUC_HISTORY - 1;
7139 IF TSK_RM_IBUC_HISTORY = 0 THEN
7140 FND_STATS.gather_table_stats( lv_owner,'MSC_ST_ZN_AGGR_IBUC',lv_pctg,lv_deg);
7141 END IF;
7142 ELSIF pTASK_NUMBER = TASK_SHORT_TEXT THEN
7143 TSK_RM_SHORT_TEXT := TSK_RM_SHORT_TEXT - 1;
7144 IF TSK_RM_SHORT_TEXT = 0 THEN
7145 FND_STATS.gather_table_stats( lv_owner,'MSC_ST_DOC_ATTACHMENTS',lv_pctg,lv_deg);
7146 FND_STATS.gather_table_stats( lv_owner,'MSC_ST_SHORT_TEXT',lv_pctg,lv_deg);
7147 END IF;
7148 ELSIF pTASK_NUMBER = TASK_LONG_TEXT THEN
7149 TSK_RM_LONG_TEXT := TSK_RM_LONG_TEXT - 1;
7150 IF TSK_RM_LONG_TEXT = 0 THEN
7151 FND_STATS.gather_table_stats( lv_owner,'MSC_ST_LONG_TEXT',lv_pctg,lv_deg);
7152 END IF;
7153 END IF;
7154
7155
7156 END ANALYZE_ST_TABLE;
7157
7158 /* ds_plan: change end */
7159
7160 END MSC_CL_PULL;