DBA Data[Home] [Help]

PACKAGE BODY: APPS.MRPP_CMERGE_FCST

Source


1 PACKAGE BODY MRPP_CMERGE_FCST as
2 		/* $Header: MRPPMGFB.pls 120.1 2011/10/26 23:49:17 pstrnad ship $ */
3 
4 /*--------------------------- PRIVATE ROUTINES ------------------------------*/
5 
6 /*-------------------------------------------------------------
7 |
8 |  PROCEDURE
9 |      MRP_FD
10 |  DESCRIPTION :
11 |      Account merge procedure for the table, MRP_FORECAST_DATES
12 |
13 |  NOTES:
14 |
15 |--------------------------------------------------------------*/
16 
17 PROCEDURE MRP_FD (
18         req_id                       NUMBER,
19         set_num                      NUMBER,
20         process_mode                 VARCHAR2) IS
21 
22   TYPE MERGE_HEADER_ID_LIST_TYPE IS TABLE OF
23        RA_CUSTOMER_MERGE_HEADERS.CUSTOMER_MERGE_HEADER_ID%TYPE
24        INDEX BY BINARY_INTEGER;
25   MERGE_HEADER_ID_LIST MERGE_HEADER_ID_LIST_TYPE;
26 
27   TYPE TRANSACTION_ID_LIST_TYPE IS TABLE OF
28          MRP_FORECAST_DATES.TRANSACTION_ID%TYPE
29         INDEX BY BINARY_INTEGER;
30   PRIMARY_KEY_ID_LIST TRANSACTION_ID_LIST_TYPE;
31 
32   TYPE customer_id_LIST_TYPE IS TABLE OF
33          MRP_FORECAST_DATES.customer_id%TYPE
34         INDEX BY BINARY_INTEGER;
35   NUM_COL1_ORIG_LIST customer_id_LIST_TYPE;
36   NUM_COL1_NEW_LIST customer_id_LIST_TYPE;
37 
38   TYPE ship_id_LIST_TYPE IS TABLE OF
39          MRP_FORECAST_DATES.ship_id%TYPE
40         INDEX BY BINARY_INTEGER;
41   NUM_COL2_ORIG_LIST ship_id_LIST_TYPE;
42   NUM_COL2_NEW_LIST ship_id_LIST_TYPE;
43 
44   TYPE bill_id_LIST_TYPE IS TABLE OF
45          MRP_FORECAST_DATES.bill_id%TYPE
46         INDEX BY BINARY_INTEGER;
47   NUM_COL3_ORIG_LIST bill_id_LIST_TYPE;
48   NUM_COL3_NEW_LIST bill_id_LIST_TYPE;
49 
50   l_profile_val VARCHAR2(30);
51   CURSOR merged_records IS
52         SELECT distinct m.CUSTOMER_MERGE_HEADER_ID
53               ,yt.TRANSACTION_ID
54               ,yt.customer_id
55               ,yt.ship_id
56               ,yt.bill_id
57          FROM MRP_FORECAST_DATES yt, ra_customer_merges m
58          WHERE (
59             yt.customer_id = m.DUPLICATE_ID
60             OR yt.ship_id = m.DUPLICATE_SITE_ID
61             OR yt.bill_id = m.DUPLICATE_SITE_ID
62          ) AND    m.process_flag = 'N'
63          AND    yt.origination_type = '10' /* Overconsumption */
64          AND    m.request_id = req_id
65          AND    m.set_number = set_num;
66   l_last_fetch BOOLEAN := FALSE;
67   l_count NUMBER;
68 BEGIN
69   IF process_mode='LOCK' THEN
70     NULL;
71   ELSE
72     ARP_MESSAGE.SET_NAME('AR','AR_UPDATING_TABLE');
73     ARP_MESSAGE.SET_TOKEN('TABLE_NAME','MRP_FORECAST_DATES',FALSE);
74     HZ_ACCT_MERGE_UTIL.load_set(set_num, req_id);
75     l_profile_val :=  FND_PROFILE.VALUE('HZ_AUDIT_ACCT_MERGE');
76 
77     open merged_records;
78     LOOP
79       FETCH merged_records BULK COLLECT INTO
80          MERGE_HEADER_ID_LIST
81           , PRIMARY_KEY_ID_LIST
82           , NUM_COL1_ORIG_LIST
83           , NUM_COL2_ORIG_LIST
84           , NUM_COL3_ORIG_LIST
85           limit 1000
86           ;
87       IF merged_records%NOTFOUND THEN
88          l_last_fetch := TRUE;
89       END IF;
90       IF MERGE_HEADER_ID_LIST.COUNT = 0 and l_last_fetch then
91         exit;
92       END IF;
93       FOR I in 1..MERGE_HEADER_ID_LIST.COUNT LOOP
94          NUM_COL1_NEW_LIST(I) := HZ_ACCT_MERGE_UTIL.GETDUP_ACCOUNT(NUM_COL1_ORIG_LIST(I));
95          NUM_COL2_NEW_LIST(I) := HZ_ACCT_MERGE_UTIL.GETDUP_SITE_USE(NUM_COL2_ORIG_LIST(I));
96          NUM_COL3_NEW_LIST(I) := HZ_ACCT_MERGE_UTIL.GETDUP_SITE_USE(NUM_COL3_ORIG_LIST(I));
97       END LOOP;
98       IF l_profile_val IS NOT NULL AND l_profile_val = 'Y' THEN
99         FORALL I in 1..MERGE_HEADER_ID_LIST.COUNT
100          INSERT INTO HZ_CUSTOMER_MERGE_LOG (
101            MERGE_LOG_ID,
102            TABLE_NAME,
103            MERGE_HEADER_ID,
104            PRIMARY_KEY_ID,
105            NUM_COL1_ORIG,
106            NUM_COL1_NEW,
107            NUM_COL2_ORIG,
108            NUM_COL2_NEW,
109            NUM_COL3_ORIG,
110            NUM_COL3_NEW,
111            ACTION_FLAG,
112            REQUEST_ID,
113            CREATED_BY,
114            CREATION_DATE,
115            LAST_UPDATE_LOGIN,
116            LAST_UPDATE_DATE,
117            LAST_UPDATED_BY
118       ) VALUES (         HZ_CUSTOMER_MERGE_LOG_s.nextval,
119          'MRP_FORECAST_DATES',
120          MERGE_HEADER_ID_LIST(I),
121          PRIMARY_KEY_ID_LIST(I),
122          NUM_COL1_ORIG_LIST(I),
123          NUM_COL1_NEW_LIST(I),
124          NUM_COL2_ORIG_LIST(I),
125          NUM_COL2_NEW_LIST(I),
126          NUM_COL3_ORIG_LIST(I),
127          NUM_COL3_NEW_LIST(I),
128          'U',
129          req_id,
130          hz_utility_pub.CREATED_BY,
131          hz_utility_pub.CREATION_DATE,
132          hz_utility_pub.LAST_UPDATE_LOGIN,
133          hz_utility_pub.LAST_UPDATE_DATE,
134          hz_utility_pub.LAST_UPDATED_BY
135       );
136 
137     END IF;
138     FORALL I in 1..MERGE_HEADER_ID_LIST.COUNT
139       UPDATE MRP_FORECAST_DATES yt SET
140            customer_id=NUM_COL1_NEW_LIST(I)
141           ,ship_id=NUM_COL2_NEW_LIST(I)
142           ,bill_id=NUM_COL3_NEW_LIST(I)
143           , LAST_UPDATE_DATE=SYSDATE
144           , last_updated_by=arp_standard.profile.user_id
145           , last_update_login=arp_standard.profile.last_update_login
146           , REQUEST_ID=req_id
147           , PROGRAM_APPLICATION_ID=arp_standard.profile.program_application_id
148           , PROGRAM_ID=arp_standard.profile.program_id
149           , PROGRAM_UPDATE_DATE=SYSDATE
150       WHERE TRANSACTION_ID=PRIMARY_KEY_ID_LIST(I)
151          ;
152       l_count := l_count + SQL%ROWCOUNT;
153       IF l_last_fetch THEN
154          EXIT;
155       END IF;
156     END LOOP;
157 
158     arp_message.set_name('AR','AR_ROWS_UPDATED');
159     arp_message.set_token('NUM_ROWS',to_char(l_count));
160   END IF;
161 EXCEPTION
162   WHEN OTHERS THEN
163     arp_message.set_line( 'MRP_FD');
164     RAISE;
165 END MRP_FD;
166 
167 
168 /*-------------------------------------------------------------
169 |
170 |  PROCEDURE
171 |      MRP_FDE
172 |  DESCRIPTION :
173 |      Account merge procedure for the table, MRP_FORECAST_DESIGNATORS
174 |
175 |  NOTES:
176 |--------------------------------------------------------------*/
177 
178 PROCEDURE MRP_FDE (
179         req_id                       NUMBER,
180         set_num                      NUMBER,
181         process_mode                 VARCHAR2) IS
182 
183   TYPE MERGE_HEADER_ID_LIST_TYPE IS TABLE OF
184        RA_CUSTOMER_MERGE_HEADERS.CUSTOMER_MERGE_HEADER_ID%TYPE
185        INDEX BY BINARY_INTEGER;
186   MERGE_HEADER_ID_LIST MERGE_HEADER_ID_LIST_TYPE;
187 
188   TYPE ORGANIZATION_ID_LIST_TYPE IS TABLE OF
189          MRP_FORECAST_DESIGNATORS.ORGANIZATION_ID%TYPE
190         INDEX BY BINARY_INTEGER;
191   PRIMARY_KEY1_LIST ORGANIZATION_ID_LIST_TYPE;
192 
193   TYPE FORECAST_DESIGNATOR_LIST_TYPE IS TABLE OF
194          MRP_FORECAST_DESIGNATORS.FORECAST_DESIGNATOR%TYPE
195         INDEX BY BINARY_INTEGER;
196   PRIMARY_KEY2_LIST FORECAST_DESIGNATOR_LIST_TYPE;
197 
198   TYPE customer_id_LIST_TYPE IS TABLE OF
199          MRP_FORECAST_DESIGNATORS.customer_id%TYPE
200         INDEX BY BINARY_INTEGER;
201   NUM_COL1_ORIG_LIST customer_id_LIST_TYPE;
202   NUM_COL1_NEW_LIST customer_id_LIST_TYPE;
203 
204   TYPE ship_id_LIST_TYPE IS TABLE OF
205          MRP_FORECAST_DESIGNATORS.ship_id%TYPE
206         INDEX BY BINARY_INTEGER;
207   NUM_COL2_ORIG_LIST ship_id_LIST_TYPE;
208   NUM_COL2_NEW_LIST ship_id_LIST_TYPE;
209 
210   TYPE bill_id_LIST_TYPE IS TABLE OF
211          MRP_FORECAST_DESIGNATORS.bill_id%TYPE
212         INDEX BY BINARY_INTEGER;
213   NUM_COL3_ORIG_LIST bill_id_LIST_TYPE;
214   NUM_COL3_NEW_LIST bill_id_LIST_TYPE;
215 
216   l_profile_val VARCHAR2(30);
217   CURSOR merged_records IS
218         SELECT distinct m.CUSTOMER_MERGE_HEADER_ID
219               ,yt.ORGANIZATION_ID
220               ,yt.FORECAST_DESIGNATOR
221               ,yt.customer_id
222               ,yt.ship_id
223               ,yt.bill_id
224          FROM MRP_FORECAST_DESIGNATORS yt, ra_customer_merges m
225          WHERE (
226             yt.customer_id = m.DUPLICATE_ID
227             OR yt.ship_id = m.DUPLICATE_SITE_ID
228             OR yt.bill_id = m.DUPLICATE_SITE_ID
229          ) AND    m.process_flag = 'N'
230          AND    m.request_id = req_id
231          AND    m.set_number = set_num;
232   l_last_fetch BOOLEAN := FALSE;
233   l_count NUMBER;
234 BEGIN
235   IF process_mode='LOCK' THEN
236     NULL;
237   ELSE
238     ARP_MESSAGE.SET_NAME('AR','AR_UPDATING_TABLE');
239     ARP_MESSAGE.SET_TOKEN('TABLE_NAME','MRP_FORECAST_DESIGNATORS',FALSE);
240     HZ_ACCT_MERGE_UTIL.load_set(set_num, req_id);
241     l_profile_val :=  FND_PROFILE.VALUE('HZ_AUDIT_ACCT_MERGE');
242 
243     open merged_records;
244     LOOP
245       FETCH merged_records BULK COLLECT INTO
246          MERGE_HEADER_ID_LIST
247           , PRIMARY_KEY1_LIST
248           , PRIMARY_KEY2_LIST
249           , NUM_COL1_ORIG_LIST
250           , NUM_COL2_ORIG_LIST
251           , NUM_COL3_ORIG_LIST
252           limit 1000
253           ;
254       IF merged_records%NOTFOUND THEN
255          l_last_fetch := TRUE;
256       END IF;
257       IF MERGE_HEADER_ID_LIST.COUNT = 0 and l_last_fetch then
258         exit;
259       END IF;
260       FOR I in 1..MERGE_HEADER_ID_LIST.COUNT LOOP
261          NUM_COL1_NEW_LIST(I) := HZ_ACCT_MERGE_UTIL.GETDUP_ACCOUNT(NUM_COL1_ORIG_LIST(I));
262          NUM_COL2_NEW_LIST(I) := HZ_ACCT_MERGE_UTIL.GETDUP_SITE_USE(NUM_COL2_ORIG_LIST(I));
263          NUM_COL3_NEW_LIST(I) := HZ_ACCT_MERGE_UTIL.GETDUP_SITE_USE(NUM_COL3_ORIG_LIST(I));
264       END LOOP;
265       IF l_profile_val IS NOT NULL AND l_profile_val = 'Y' THEN
266         FORALL I in 1..MERGE_HEADER_ID_LIST.COUNT
267          INSERT INTO HZ_CUSTOMER_MERGE_LOG (
268            MERGE_LOG_ID,
269            TABLE_NAME,
270            MERGE_HEADER_ID,
271            PRIMARY_KEY1,
272            PRIMARY_KEY2,
273            NUM_COL1_ORIG,
274            NUM_COL1_NEW,
275            NUM_COL2_ORIG,
276            NUM_COL2_NEW,
277            NUM_COL3_ORIG,
278            NUM_COL3_NEW,
279            ACTION_FLAG,
280            REQUEST_ID,
281            CREATED_BY,
282            CREATION_DATE,
283            LAST_UPDATE_LOGIN,
284            LAST_UPDATE_DATE,
285            LAST_UPDATED_BY
286       ) VALUES (         HZ_CUSTOMER_MERGE_LOG_s.nextval,
287          'MRP_FORECAST_DESIGNATORS',
288          MERGE_HEADER_ID_LIST(I),
289          PRIMARY_KEY1_LIST(I),
290          PRIMARY_KEY2_LIST(I),
291          NUM_COL1_ORIG_LIST(I),
292          NUM_COL1_NEW_LIST(I),
293          NUM_COL2_ORIG_LIST(I),
294          NUM_COL2_NEW_LIST(I),
295          NUM_COL3_ORIG_LIST(I),
296          NUM_COL3_NEW_LIST(I),
297          'U',
298          req_id,
299          hz_utility_pub.CREATED_BY,
300          hz_utility_pub.CREATION_DATE,
301          hz_utility_pub.LAST_UPDATE_LOGIN,
302          hz_utility_pub.LAST_UPDATE_DATE,
303          hz_utility_pub.LAST_UPDATED_BY
304       );
305 
306     END IF;
307     FORALL I in 1..MERGE_HEADER_ID_LIST.COUNT
308       UPDATE MRP_FORECAST_DESIGNATORS yt SET
309            customer_id=NUM_COL1_NEW_LIST(I)
310           ,ship_id=NUM_COL2_NEW_LIST(I)
311           ,bill_id=NUM_COL3_NEW_LIST(I)
312           , LAST_UPDATE_DATE=SYSDATE
313           , last_updated_by=arp_standard.profile.user_id
314           , last_update_login=arp_standard.profile.last_update_login
315           , REQUEST_ID=req_id
316           , PROGRAM_APPLICATION_ID=arp_standard.profile.program_application_id
317           , PROGRAM_ID=arp_standard.profile.program_id
318           , PROGRAM_UPDATE_DATE=SYSDATE
319       WHERE ORGANIZATION_ID=PRIMARY_KEY1_LIST(I)
320       AND FORECAST_DESIGNATOR=PRIMARY_KEY2_LIST(I)
321          ;
322       l_count := l_count + SQL%ROWCOUNT;
323       IF l_last_fetch THEN
324          EXIT;
325       END IF;
326     END LOOP;
327 
328     arp_message.set_name('AR','AR_ROWS_UPDATED');
329     arp_message.set_token('NUM_ROWS',to_char(l_count));
330   END IF;
331 EXCEPTION
332   WHEN OTHERS THEN
333     arp_message.set_line( 'MRP_FDE');
334     RAISE;
335 END MRP_FDE;
336 
337 
338 /*-------------------------------------------------------------
339 |
340 |  PROCEDURE
341 |      MRP_FU
342 |  DESCRIPTION :
343 |      Account merge procedure for the table, MRP_FORECAST_UPDATES
344 |
345 |  NOTES:
346 |
347 |--------------------------------------------------------------*/
348 
349 PROCEDURE MRP_FU (
350         req_id                       NUMBER,
351         set_num                      NUMBER,
352         process_mode                 VARCHAR2) IS
353 
354   TYPE MERGE_HEADER_ID_LIST_TYPE IS TABLE OF
355        RA_CUSTOMER_MERGE_HEADERS.CUSTOMER_MERGE_HEADER_ID%TYPE
356        INDEX BY BINARY_INTEGER;
357   MERGE_HEADER_ID_LIST MERGE_HEADER_ID_LIST_TYPE;
358 
359   TYPE TRANSACTION_ID_LIST_TYPE IS TABLE OF
360          MRP_FORECAST_UPDATES.TRANSACTION_ID%TYPE
361         INDEX BY BINARY_INTEGER;
362   PRIMARY_KEY_ID_LIST TRANSACTION_ID_LIST_TYPE;
363 
364   TYPE customer_id_LIST_TYPE IS TABLE OF
365          MRP_FORECAST_UPDATES.customer_id%TYPE
366         INDEX BY BINARY_INTEGER;
367   NUM_COL1_ORIG_LIST customer_id_LIST_TYPE;
368   NUM_COL1_NEW_LIST customer_id_LIST_TYPE;
369 
370   TYPE ship_id_LIST_TYPE IS TABLE OF
371          MRP_FORECAST_UPDATES.ship_id%TYPE
372         INDEX BY BINARY_INTEGER;
373   NUM_COL2_ORIG_LIST ship_id_LIST_TYPE;
374   NUM_COL2_NEW_LIST ship_id_LIST_TYPE;
375 
376   TYPE bill_id_LIST_TYPE IS TABLE OF
377          MRP_FORECAST_UPDATES.bill_id%TYPE
378         INDEX BY BINARY_INTEGER;
379   NUM_COL3_ORIG_LIST bill_id_LIST_TYPE;
380   NUM_COL3_NEW_LIST bill_id_LIST_TYPE;
381 
382   l_profile_val VARCHAR2(30);
383   CURSOR merged_records IS
384         SELECT distinct m.CUSTOMER_MERGE_HEADER_ID
385               ,yt.TRANSACTION_ID
386               ,yt.customer_id
387               ,yt.ship_id
388               ,yt.bill_id
389          FROM MRP_FORECAST_UPDATES yt, ra_customer_merges m
390          WHERE (
391             yt.customer_id = m.DUPLICATE_ID
392             OR yt.ship_id = m.DUPLICATE_SITE_ID
393             OR yt.bill_id = m.DUPLICATE_SITE_ID
394          ) AND    m.process_flag = 'N'
395          AND    m.request_id = req_id
396          AND    m.set_number = set_num;
397   l_last_fetch BOOLEAN := FALSE;
398   l_count NUMBER;
399 BEGIN
400   IF process_mode='LOCK' THEN
401     NULL;
402   ELSE
403     ARP_MESSAGE.SET_NAME('AR','AR_UPDATING_TABLE');
404     ARP_MESSAGE.SET_TOKEN('TABLE_NAME','MRP_FORECAST_UPDATES',FALSE);
405     HZ_ACCT_MERGE_UTIL.load_set(set_num, req_id);
406     l_profile_val :=  FND_PROFILE.VALUE('HZ_AUDIT_ACCT_MERGE');
407 
408     open merged_records;
409     LOOP
410       FETCH merged_records BULK COLLECT INTO
411          MERGE_HEADER_ID_LIST
412           , PRIMARY_KEY_ID_LIST
413           , NUM_COL1_ORIG_LIST
414           , NUM_COL2_ORIG_LIST
415           , NUM_COL3_ORIG_LIST
416           limit 1000
417           ;
418       IF merged_records%NOTFOUND THEN
419          l_last_fetch := TRUE;
420       END IF;
421       IF MERGE_HEADER_ID_LIST.COUNT = 0 and l_last_fetch then
422         exit;
423       END IF;
424       FOR I in 1..MERGE_HEADER_ID_LIST.COUNT LOOP
425          NUM_COL1_NEW_LIST(I) := HZ_ACCT_MERGE_UTIL.GETDUP_ACCOUNT(NUM_COL1_ORIG_LIST(I));
426          NUM_COL2_NEW_LIST(I) := HZ_ACCT_MERGE_UTIL.GETDUP_SITE_USE(NUM_COL2_ORIG_LIST(I));
427          NUM_COL3_NEW_LIST(I) := HZ_ACCT_MERGE_UTIL.GETDUP_SITE_USE(NUM_COL3_ORIG_LIST(I));
428       END LOOP;
429       IF l_profile_val IS NOT NULL AND l_profile_val = 'Y' THEN
430         FORALL I in 1..MERGE_HEADER_ID_LIST.COUNT
431          INSERT INTO HZ_CUSTOMER_MERGE_LOG (
432            MERGE_LOG_ID,
433            TABLE_NAME,
434            MERGE_HEADER_ID,
435            PRIMARY_KEY_ID,
436            NUM_COL1_ORIG,
437            NUM_COL1_NEW,
438            NUM_COL2_ORIG,
439            NUM_COL2_NEW,
440            NUM_COL3_ORIG,
441            NUM_COL3_NEW,
442            ACTION_FLAG,
443            REQUEST_ID,
444            CREATED_BY,
445            CREATION_DATE,
446            LAST_UPDATE_LOGIN,
447            LAST_UPDATE_DATE,
448            LAST_UPDATED_BY
449       ) VALUES (         HZ_CUSTOMER_MERGE_LOG_s.nextval,
450          'MRP_FORECAST_UPDATES',
451          MERGE_HEADER_ID_LIST(I),
452          PRIMARY_KEY_ID_LIST(I),
453          NUM_COL1_ORIG_LIST(I),
454          NUM_COL1_NEW_LIST(I),
455          NUM_COL2_ORIG_LIST(I),
456          NUM_COL2_NEW_LIST(I),
457          NUM_COL3_ORIG_LIST(I),
458          NUM_COL3_NEW_LIST(I),
459          'U',
460          req_id,
461          hz_utility_pub.CREATED_BY,
462          hz_utility_pub.CREATION_DATE,
463          hz_utility_pub.LAST_UPDATE_LOGIN,
464          hz_utility_pub.LAST_UPDATE_DATE,
465          hz_utility_pub.LAST_UPDATED_BY
466       );
467 
468     END IF;
469     FORALL I in 1..MERGE_HEADER_ID_LIST.COUNT
470       UPDATE MRP_FORECAST_UPDATES yt SET
471            customer_id=NUM_COL1_NEW_LIST(I)
472           ,ship_id=NUM_COL2_NEW_LIST(I)
473           ,bill_id=NUM_COL3_NEW_LIST(I)
474           , LAST_UPDATE_DATE=SYSDATE
475           , last_updated_by=arp_standard.profile.user_id
476           , last_update_login=arp_standard.profile.last_update_login
477           , REQUEST_ID=req_id
478           , PROGRAM_APPLICATION_ID=arp_standard.profile.program_application_id
479           , PROGRAM_ID=arp_standard.profile.program_id
480           , PROGRAM_UPDATE_DATE=SYSDATE
481       WHERE TRANSACTION_ID=PRIMARY_KEY_ID_LIST(I)
482       AND   CUSTOMER_ID=NUM_COL1_ORIG_LIST(I)
483       AND   NVL(SHIP_ID,-23453)=NVL(NUM_COL2_ORIG_LIST(I),-23453)
484       AND   NVL(BILL_ID,-23453)=NVL(NUM_COL3_ORIG_LIST(I),-23453)
485          ;
486       l_count := l_count + SQL%ROWCOUNT;
487       IF l_last_fetch THEN
488          EXIT;
489       END IF;
490     END LOOP;
491 
492     arp_message.set_name('AR','AR_ROWS_UPDATED');
493     arp_message.set_token('NUM_ROWS',to_char(l_count));
494   END IF;
495 EXCEPTION
496   WHEN OTHERS THEN
497     arp_message.set_line( 'MRP_FU');
498     RAISE;
499 END MRP_FU;
500 
501 
502 /*-------------------------------------------------------------
503 |
504 |  PROCEDURE
505 |      MRP_SOU
506 |  DESCRIPTION :
507 |      Account merge procedure for the table, MRP_SALES_ORDER_UPDATES
508 |
509 |
510 |--------------------------------------------------------------*/
511 
512 PROCEDURE MRP_SOU (
513         req_id                       NUMBER,
514         set_num                      NUMBER,
515         process_mode                 VARCHAR2) IS
516 
517   TYPE MERGE_HEADER_ID_LIST_TYPE IS TABLE OF
518        RA_CUSTOMER_MERGE_HEADERS.CUSTOMER_MERGE_HEADER_ID%TYPE
519        INDEX BY BINARY_INTEGER;
520   MERGE_HEADER_ID_LIST MERGE_HEADER_ID_LIST_TYPE;
521 
522   TYPE UPDATE_SEQ_NUM_LIST_TYPE IS TABLE OF
523          MRP_SALES_ORDER_UPDATES.UPDATE_SEQ_NUM%TYPE
524         INDEX BY BINARY_INTEGER;
525   PRIMARY_KEY_ID_LIST UPDATE_SEQ_NUM_LIST_TYPE;
526 
527   TYPE current_customer_id_LIST_TYPE IS TABLE OF
528          MRP_SALES_ORDER_UPDATES.current_customer_id%TYPE
529         INDEX BY BINARY_INTEGER;
530   NUM_COL1_ORIG_LIST current_customer_id_LIST_TYPE;
531   NUM_COL1_NEW_LIST current_customer_id_LIST_TYPE;
532 
533   TYPE current_ship_id_LIST_TYPE IS TABLE OF
534          MRP_SALES_ORDER_UPDATES.current_ship_id%TYPE
535         INDEX BY BINARY_INTEGER;
536   NUM_COL2_ORIG_LIST current_ship_id_LIST_TYPE;
537   NUM_COL2_NEW_LIST current_ship_id_LIST_TYPE;
538 
539   TYPE current_bill_id_LIST_TYPE IS TABLE OF
540          MRP_SALES_ORDER_UPDATES.current_bill_id%TYPE
541         INDEX BY BINARY_INTEGER;
542   NUM_COL3_ORIG_LIST current_bill_id_LIST_TYPE;
543   NUM_COL3_NEW_LIST current_bill_id_LIST_TYPE;
544 
545   TYPE previous_customer_id_LIST_TYPE IS TABLE OF
546          MRP_SALES_ORDER_UPDATES.previous_customer_id%TYPE
547         INDEX BY BINARY_INTEGER;
548   NUM_COL4_ORIG_LIST previous_customer_id_LIST_TYPE;
549   NUM_COL4_NEW_LIST previous_customer_id_LIST_TYPE;
550 
551   TYPE previous_bill_id_LIST_TYPE IS TABLE OF
552          MRP_SALES_ORDER_UPDATES.previous_bill_id%TYPE
553         INDEX BY BINARY_INTEGER;
554   NUM_COL5_ORIG_LIST previous_bill_id_LIST_TYPE;
555   NUM_COL5_NEW_LIST previous_bill_id_LIST_TYPE;
556 
557   TYPE previous_ship_id_LIST_TYPE IS TABLE OF
558          MRP_SALES_ORDER_UPDATES.previous_ship_id%TYPE
559         INDEX BY BINARY_INTEGER;
560   NUM_COL6_ORIG_LIST previous_ship_id_LIST_TYPE;
561   NUM_COL6_NEW_LIST previous_ship_id_LIST_TYPE;
562 
563   l_profile_val VARCHAR2(30);
564   CURSOR merged_records IS
565         SELECT distinct CUSTOMER_MERGE_HEADER_ID
566               ,UPDATE_SEQ_NUM
567               ,current_customer_id
568               ,current_ship_id
569               ,current_bill_id
570               ,previous_customer_id
571               ,previous_bill_id
572               ,previous_ship_id
573          FROM MRP_SALES_ORDER_UPDATES yt, ra_customer_merges m
574          WHERE (
575             yt.current_customer_id = m.DUPLICATE_ID
576             OR yt.current_ship_id = m.DUPLICATE_SITE_ID
577             OR yt.current_bill_id = m.DUPLICATE_SITE_ID
578             OR yt.previous_customer_id = m.DUPLICATE_ID
579             OR yt.previous_bill_id = m.DUPLICATE_SITE_ID
580             OR yt.previous_ship_id = m.DUPLICATE_SITE_ID
581          ) AND    m.process_flag = 'N'
582          AND    m.request_id = req_id
583          AND    m.set_number = set_num;
584   l_last_fetch BOOLEAN := FALSE;
585   l_count NUMBER;
586 BEGIN
587   IF process_mode='LOCK' THEN
588     NULL;
589   ELSE
590     ARP_MESSAGE.SET_NAME('AR','AR_UPDATING_TABLE');
591     ARP_MESSAGE.SET_TOKEN('TABLE_NAME','MRP_SALES_ORDER_UPDATES',FALSE);
592     HZ_ACCT_MERGE_UTIL.load_set(set_num, req_id);
593     l_profile_val :=  FND_PROFILE.VALUE('HZ_AUDIT_ACCT_MERGE');
594 
595     open merged_records;
596     LOOP
597       FETCH merged_records BULK COLLECT INTO
598          MERGE_HEADER_ID_LIST
599           , PRIMARY_KEY_ID_LIST
600           , NUM_COL1_ORIG_LIST
601           , NUM_COL2_ORIG_LIST
602           , NUM_COL3_ORIG_LIST
603           , NUM_COL4_ORIG_LIST
604           , NUM_COL5_ORIG_LIST
605           , NUM_COL6_ORIG_LIST
606           limit 1000
607           ;
608       IF merged_records%NOTFOUND THEN
609          l_last_fetch := TRUE;
610       END IF;
611       IF MERGE_HEADER_ID_LIST.COUNT = 0 and l_last_fetch then
612         exit;
613       END IF;
614       FOR I in 1..MERGE_HEADER_ID_LIST.COUNT LOOP
615          NUM_COL1_NEW_LIST(I) := HZ_ACCT_MERGE_UTIL.GETDUP_ACCOUNT(NUM_COL1_ORIG_LIST(I));
616          NUM_COL2_NEW_LIST(I) := HZ_ACCT_MERGE_UTIL.GETDUP_SITE_USE(NUM_COL2_ORIG_LIST(I));
617          NUM_COL3_NEW_LIST(I) := HZ_ACCT_MERGE_UTIL.GETDUP_SITE_USE(NUM_COL3_ORIG_LIST(I));
618          NUM_COL4_NEW_LIST(I) := HZ_ACCT_MERGE_UTIL.GETDUP_ACCOUNT(NUM_COL4_ORIG_LIST(I));
619          NUM_COL5_NEW_LIST(I) := HZ_ACCT_MERGE_UTIL.GETDUP_SITE_USE(NUM_COL5_ORIG_LIST(I));
620          NUM_COL6_NEW_LIST(I) := HZ_ACCT_MERGE_UTIL.GETDUP_SITE_USE(NUM_COL6_ORIG_LIST(I));
621       END LOOP;
622       IF l_profile_val IS NOT NULL AND l_profile_val = 'Y' THEN
623         FORALL I in 1..MERGE_HEADER_ID_LIST.COUNT
624          INSERT INTO HZ_CUSTOMER_MERGE_LOG (
625            MERGE_LOG_ID,
626            TABLE_NAME,
627            MERGE_HEADER_ID,
628            PRIMARY_KEY_ID,
629            NUM_COL1_ORIG,
630            NUM_COL1_NEW,
631            NUM_COL2_ORIG,
632            NUM_COL2_NEW,
633            NUM_COL3_ORIG,
634            NUM_COL3_NEW,
635            NUM_COL4_ORIG,
636            NUM_COL4_NEW,
637            NUM_COL5_ORIG,
638            NUM_COL5_NEW,
639            NUM_COL6_ORIG,
640            NUM_COL6_NEW,
641            ACTION_FLAG,
642            REQUEST_ID,
643            CREATED_BY,
644            CREATION_DATE,
645            LAST_UPDATE_LOGIN,
646            LAST_UPDATE_DATE,
647            LAST_UPDATED_BY
648       ) VALUES (         HZ_CUSTOMER_MERGE_LOG_s.nextval,
649          'MRP_SALES_ORDER_UPDATES',
650          MERGE_HEADER_ID_LIST(I),
651          PRIMARY_KEY_ID_LIST(I),
652          NUM_COL1_ORIG_LIST(I),
653          NUM_COL1_NEW_LIST(I),
654          NUM_COL2_ORIG_LIST(I),
655          NUM_COL2_NEW_LIST(I),
656          NUM_COL3_ORIG_LIST(I),
657          NUM_COL3_NEW_LIST(I),
658          NUM_COL4_ORIG_LIST(I),
659          NUM_COL4_NEW_LIST(I),
660          NUM_COL5_ORIG_LIST(I),
661          NUM_COL5_NEW_LIST(I),
662          NUM_COL6_ORIG_LIST(I),
663          NUM_COL6_NEW_LIST(I),
664          'U',
665          req_id,
666          hz_utility_pub.CREATED_BY,
667          hz_utility_pub.CREATION_DATE,
668          hz_utility_pub.LAST_UPDATE_LOGIN,
669          hz_utility_pub.LAST_UPDATE_DATE,
670          hz_utility_pub.LAST_UPDATED_BY
671       );
672 
673     END IF;    FORALL I in 1..MERGE_HEADER_ID_LIST.COUNT
674       UPDATE MRP_SALES_ORDER_UPDATES yt SET
675            current_customer_id=NUM_COL1_NEW_LIST(I)
676           ,current_ship_id=NUM_COL2_NEW_LIST(I)
677           ,current_bill_id=NUM_COL3_NEW_LIST(I)
678           ,previous_customer_id=NUM_COL4_NEW_LIST(I)
679           ,previous_bill_id=NUM_COL5_NEW_LIST(I)
680           ,previous_ship_id=NUM_COL6_NEW_LIST(I)
681           , LAST_UPDATE_DATE=SYSDATE
682           , last_updated_by=arp_standard.profile.user_id
683           , last_update_login=arp_standard.profile.last_update_login
684           , REQUEST_ID=req_id
685           , PROGRAM_APPLICATION_ID=arp_standard.profile.program_application_id
686           , PROGRAM_ID=arp_standard.profile.program_id
687           , PROGRAM_UPDATE_DATE=SYSDATE
688       WHERE UPDATE_SEQ_NUM=PRIMARY_KEY_ID_LIST(I)
689          ;
690       l_count := l_count + SQL%ROWCOUNT;
691       IF l_last_fetch THEN
692          EXIT;
693       END IF;
694     END LOOP;
695 
696     arp_message.set_name('AR','AR_ROWS_UPDATED');
697     arp_message.set_token('NUM_ROWS',to_char(l_count));
698   END IF;
699 EXCEPTION
700   WHEN OTHERS THEN
701     arp_message.set_line( 'MRP_SOU');
702     RAISE;
703 END MRP_SOU;
704 
705 /*-------------------------------------------------------------
706 |
707 |  PROCEDURE
708 |      MRP_SA
709 |  DESCRIPTION :
710 |      Account merge procedure for the table, MRP_SR_ASSIGNMENTS
711 |
712 |  NOTES:
713 |--------------------------------------------------------------*/
714 
715 PROCEDURE MRP_SA (
716         req_id                       NUMBER,
717         set_num                      NUMBER,
718         process_mode                 VARCHAR2) IS
719 
720   TYPE MERGE_HEADER_ID_LIST_TYPE IS TABLE OF
721        RA_CUSTOMER_MERGE_HEADERS.CUSTOMER_MERGE_HEADER_ID%TYPE
722        INDEX BY BINARY_INTEGER;
723   MERGE_HEADER_ID_LIST MERGE_HEADER_ID_LIST_TYPE;
724 
725   TYPE ASSIGNMENT_ID_LIST_TYPE IS TABLE OF
726          MRP_SR_ASSIGNMENTS.ASSIGNMENT_ID%TYPE
727         INDEX BY BINARY_INTEGER;
728   PRIMARY_KEY_ID_LIST ASSIGNMENT_ID_LIST_TYPE;
729 
730   TYPE customer_id_LIST_TYPE IS TABLE OF
731          MRP_SR_ASSIGNMENTS.customer_id%TYPE
732         INDEX BY BINARY_INTEGER;
733   NUM_COL1_ORIG_LIST customer_id_LIST_TYPE;
734   NUM_COL1_NEW_LIST customer_id_LIST_TYPE;
735 
736   TYPE ship_to_site_id_LIST_TYPE IS TABLE OF
737          MRP_SR_ASSIGNMENTS.ship_to_site_id%TYPE
738         INDEX BY BINARY_INTEGER;
739   NUM_COL2_ORIG_LIST ship_to_site_id_LIST_TYPE;
740   NUM_COL2_NEW_LIST ship_to_site_id_LIST_TYPE;
741 
742   l_profile_val VARCHAR2(30);
743   CURSOR merged_records IS
744         SELECT distinct m.CUSTOMER_MERGE_HEADER_ID
745               ,yt.ASSIGNMENT_ID
746               ,yt.customer_id
747               ,yt.ship_to_site_id
748          FROM MRP_SR_ASSIGNMENTS yt, ra_customer_merges m
749          WHERE (
750             yt.customer_id = m.DUPLICATE_ID
751             OR yt.ship_to_site_id = m.DUPLICATE_SITE_ID
752          ) AND yt.assignment_type in (4,5,6)
753          AND    m.process_flag = 'N'
754          AND    m.request_id = req_id
755          AND    m.set_number = set_num;
756 
757   cursor potential_duplicates(q_id number) is
758     select v1.assignment_set_id, v1.assignment_type,
759     v1.organization_id, r1.duplicate_id, r1.duplicate_site_id,
760     v1.sourcing_rule_type, v1.inventory_item_id, v1.category_id,
761     v1.customer_id, v1.customer_site_id
762     from ra_customer_merges r1, (
763       select m.number2                assignment_set_id,
764       m.number3                       assignment_type,
765       nvl(m.number4, -23453)          organization_id,
766       nvl(r.customer_id, -23453)      customer_id,
767       nvl(r.customer_site_id, -23453) customer_site_id,
768       m.number7                       sourcing_rule_type,
769       nvl(m.number8, -23453)          inventory_item_id,
770       nvl(m.number9, -23453)          category_id,
771       count(*)
772       from msc_form_query m, ra_customer_merges r
773       where m.number5 = r.duplicate_id
774       and m.number6 = r.duplicate_site_id
775       and m.query_id = q_id
776       and r.process_flag = 'N'
777       and r.request_id = req_id
778       and r.set_number = set_num
779       group by m.number2, m.number3,
780       nvl(m.number4, -23453), nvl(r.customer_id, -23453),
781       nvl(r.customer_site_id, -23453), m.number7,
782       nvl(m.number8, -23453), nvl(m.number9, -23453)
783       having count(*) > 1
784     ) v1
785     where r1.customer_id = v1.customer_id
786     and r1.customer_site_id = v1.customer_site_id
787     and r1.process_flag = 'N'
788     and r1.request_id = req_id
789     and r1.set_number = set_num
790     order by v1.assignment_set_id, v1.assignment_type,
791     v1.organization_id, v1.sourcing_rule_type, v1.inventory_item_id,
792     v1.category_id, v1.customer_id, v1.customer_site_id;
793 
794   l_last_fetch BOOLEAN := FALSE;
795   l_count NUMBER;
796 
797   l_assignment_set_id  msc_form_query.number2%type;
798   l_assignment_type    msc_form_query.number3%type;
799   l_organization_id    msc_form_query.number4%type;
800   l_sourcing_rule_type msc_form_query.number7%type;
801   l_inventory_item_id  msc_form_query.number8%type;
802   l_category_id        msc_form_query.number9%type;
803   l_customer_id        ra_customer_merges.customer_id%type;
804   l_customer_site_id   ra_customer_merges.customer_site_id%type;
805 
806   q_id number;
807 
808 BEGIN
809   IF process_mode='LOCK' THEN
810     NULL;
811   ELSE
812     ARP_MESSAGE.SET_NAME('AR','AR_UPDATING_TABLE');
813     ARP_MESSAGE.SET_TOKEN('TABLE_NAME','MRP_SR_ASSIGNMENTS',FALSE);
814     HZ_ACCT_MERGE_UTIL.load_set(set_num, req_id);
815     l_profile_val :=  FND_PROFILE.VALUE('HZ_AUDIT_ACCT_MERGE');
816 
817     /* Fix for bug 1292873, part 2. */
818     select msc_form_query_s.nextval
819     into q_id
820     from dual;
821 
822     insert into msc_form_query
823     (query_id, last_update_date, last_updated_by, creation_date,
824     created_by,
825     number1,
826     number2,
827     number3,
828     number4,
829     number5,
830     number6,
831     number7,
832     number8,
833     number9)
834     select q_id, sysdate, -1, sysdate, -1,
835     m.assignment_id,
836     m.assignment_set_id,
837     m.assignment_type,
838     m.organization_id,
839     m.customer_id,
840     m.ship_to_site_id,
841     m.sourcing_rule_type,
842     m.inventory_item_id,
843     m.category_id
844     from mrp_sr_assignments m, ra_customer_merges r
845     where (m.customer_id = r.duplicate_id
846            and m.ship_to_site_id = r.duplicate_site_id)
847       and m.assignment_type in (4, 5, 6)
848       and r.process_flag = 'N'
849       and r.request_id = req_id
850       and r.set_number = set_num;
851 
852     l_assignment_set_id := -1;
853     l_assignment_type := -1;
854     l_organization_id := -1;
855     l_sourcing_rule_type := -1;
856     l_inventory_item_id := -1;
857     l_category_id := -1;
858     l_customer_id := -1;
859     l_customer_site_id := -1;
860 
861     for rec in potential_duplicates(q_id) loop
862       if (l_assignment_set_id = rec.assignment_set_id and
863           l_assignment_type = rec.assignment_type and
864           l_organization_id = rec.organization_id and
865           l_sourcing_rule_type = rec.sourcing_rule_type and
866           l_inventory_item_id = rec.inventory_item_id and
867           l_category_id = rec.category_id and
868           l_customer_id = rec.customer_id and
869           l_customer_site_id = rec.customer_site_id) then
870 
871         delete /*+ index (msa mrp_sr_assignments_u1) */
872         from mrp_sr_assignments msa
873         where assignment_set_id = rec.assignment_set_id
874         and assignment_type = rec.assignment_type
875         and nvl(organization_id, -23453) = rec.organization_id
876         and nvl(customer_id, -23453) = rec.duplicate_id
877         and nvl(ship_to_site_id, -23453) = rec.duplicate_site_id
878         and sourcing_rule_type = rec.sourcing_rule_type
879         and nvl(inventory_item_id, -23453) = rec.inventory_item_id
880         and nvl(category_id, -23453) = rec.category_id
881         and assignment_id in (
882           select number1
883           from msc_form_query
884           where query_id = q_id
885         );
886       end if;
887 
888       l_assignment_set_id := rec.assignment_set_id;
889       l_assignment_type := rec.assignment_type;
890       l_organization_id := rec.organization_id;
891       l_sourcing_rule_type := rec.sourcing_rule_type;
892       l_inventory_item_id := rec.inventory_item_id;
893       l_category_id := rec.category_id;
894       l_customer_id := rec.customer_id;
895       l_customer_site_id := rec.customer_site_id;
896     end loop;
897 
898     open merged_records;
899     LOOP
900       FETCH merged_records BULK COLLECT INTO
901          MERGE_HEADER_ID_LIST
902           , PRIMARY_KEY_ID_LIST
903           , NUM_COL1_ORIG_LIST
904           , NUM_COL2_ORIG_LIST
905           limit 1000
906           ;
907       IF merged_records%NOTFOUND THEN
908          l_last_fetch := TRUE;
909       END IF;
910       IF MERGE_HEADER_ID_LIST.COUNT = 0 and l_last_fetch then
911         exit;
912       END IF;
913       FOR I in 1..MERGE_HEADER_ID_LIST.COUNT LOOP
914          NUM_COL1_NEW_LIST(I) := HZ_ACCT_MERGE_UTIL.GETDUP_ACCOUNT(NUM_COL1_ORIG_LIST(I));
915          NUM_COL2_NEW_LIST(I) := HZ_ACCT_MERGE_UTIL.GETDUP_SITE_USE(NUM_COL2_ORIG_LIST(I));
916       END LOOP;
917       IF l_profile_val IS NOT NULL AND l_profile_val = 'Y' THEN
918         FORALL I in 1..MERGE_HEADER_ID_LIST.COUNT
919          INSERT INTO HZ_CUSTOMER_MERGE_LOG (
920            MERGE_LOG_ID,
921            TABLE_NAME,
922            MERGE_HEADER_ID,
923            PRIMARY_KEY_ID,
924            NUM_COL1_ORIG,
925            NUM_COL1_NEW,
926            NUM_COL2_ORIG,
927            NUM_COL2_NEW,
928            ACTION_FLAG,
929            REQUEST_ID,
930            CREATED_BY,
931            CREATION_DATE,
932            LAST_UPDATE_LOGIN,
933            LAST_UPDATE_DATE,
934            LAST_UPDATED_BY
935       ) VALUES (         HZ_CUSTOMER_MERGE_LOG_s.nextval,
936          'MRP_SR_ASSIGNMENTS',
937          MERGE_HEADER_ID_LIST(I),
938          PRIMARY_KEY_ID_LIST(I),
939          NUM_COL1_ORIG_LIST(I),
940          NUM_COL1_NEW_LIST(I),
941          NUM_COL2_ORIG_LIST(I),
942          NUM_COL2_NEW_LIST(I),
943          'U',
944          req_id,
945          hz_utility_pub.CREATED_BY,
946          hz_utility_pub.CREATION_DATE,
947          hz_utility_pub.LAST_UPDATE_LOGIN,
948          hz_utility_pub.LAST_UPDATE_DATE,
949          hz_utility_pub.LAST_UPDATED_BY
950       );
951 
952     END IF;
953 
954     /* Fix for bug 12928793, part 1. */
955     FORALL I in 1..MERGE_HEADER_ID_LIST.COUNT
956       delete from mrp_sr_assignments
957       where assignment_id IN
958        (SELECT
959           assignment_id
960         FROM mrp_sr_assignments
961         WHERE
962          (ASSIGNMENT_SET_ID ,
963           ASSIGNMENT_TYPE,
964           NVL(ORGANIZATION_ID, -23453),
965           NVL(CUSTOMER_ID, -23453),
966           NVL(SHIP_TO_SITE_ID, -23453),
967           SOURCING_RULE_TYPE,
968           NVL(INVENTORY_ITEM_ID, -23453),
969           NVL(CATEGORY_ID, -23453)) IN
970           (SELECT
971             ASSIGNMENT_SET_ID ,
972             ASSIGNMENT_TYPE,
973             NVL(ORGANIZATION_ID, -23453),
974             NVL(num_col1_new_list(I) , -23453),
975             NVL(num_col2_new_list(I), -23453),
976             SOURCING_RULE_TYPE,
977             NVL(INVENTORY_ITEM_ID, -23453),
978             NVL(CATEGORY_ID, -23453)
979            FROM mrp_sr_assignments
980            WHERE assignment_id = primary_key_id_list(I)));
981 
982     FORALL I in 1..MERGE_HEADER_ID_LIST.COUNT
983       UPDATE MRP_SR_ASSIGNMENTS yt SET
984            customer_id=NUM_COL1_NEW_LIST(I)
985           ,ship_to_site_id=NUM_COL2_NEW_LIST(I)
986           , LAST_UPDATE_DATE=SYSDATE
987           , last_updated_by=arp_standard.profile.user_id
988           , last_update_login=arp_standard.profile.last_update_login
989           , REQUEST_ID=req_id
990           , PROGRAM_APPLICATION_ID=arp_standard.profile.program_application_id
991           , PROGRAM_ID=arp_standard.profile.program_id
992           , PROGRAM_UPDATE_DATE=SYSDATE
993       WHERE ASSIGNMENT_ID=PRIMARY_KEY_ID_LIST(I)
994          ;
995       l_count := l_count + SQL%ROWCOUNT;
996       IF l_last_fetch THEN
997          EXIT;
998       END IF;
999     END LOOP;
1000 
1001     arp_message.set_name('AR','AR_ROWS_UPDATED');
1002     arp_message.set_token('NUM_ROWS',to_char(l_count));
1003   END IF;
1004 EXCEPTION
1005   WHEN OTHERS THEN
1006     arp_message.set_line( 'MRP_SA');
1007     RAISE;
1008 END MRP_SA;
1009 
1010 
1011 /*---------------------------- PUBLIC ROUTINES ------------------------------*/
1012 
1013 PROCEDURE MERGE (req_id NUMBER, set_num NUMBER, process_mode VARCHAR2) is
1014 BEGIN
1015 
1016   arp_message.set_line( 'MRPP_CMERGE_FCST.MERGE()+' );
1017 
1018   MRP_FD( req_id, set_num, process_mode );
1019   MRP_FDE( req_id, set_num, process_mode );
1020   MRP_FU( req_id, set_num, process_mode );
1021   MRP_SOU( req_id, set_num, process_mode);
1022   MRP_SA( req_id, set_num, process_mode); /* Bug 1848916 */
1023 
1024   arp_message.set_line( 'MRPP_CMERGE_FCST.MERGE()-' );
1025 
1026 END MERGE;
1027 
1028 end MRPP_CMERGE_FCST;