DBA Data[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;