DBA Data[Home] [Help]

PACKAGE BODY: APPS.FV_CMERGE

Source


4 
1 package body FV_CMERGE AS
2 -- $Header: FVARCMGB.pls 120.12 2011/09/09 13:29:31 snama ship $
3   g_module_name VARCHAR2(100) := 'fv.plsql.FV_CMERGE.';
5  PROCEDURE FV_CUST_FINANCE_CHRGS (
6         req_id                       NUMBER,
7         set_num                      NUMBER,
8         process_mode                 VARCHAR2);
9 
10 
11  PROCEDURE FV_CUST_VEND_XREFS (
12         req_id                       NUMBER,
13         set_num                      NUMBER,
14         process_mode                 VARCHAR2);
15 
16  PROCEDURE FV_INTERAGENCY_FUNDS (
17         req_id                       NUMBER,
18         set_num                      NUMBER,
19         process_mode                 VARCHAR2);
20 
21  PROCEDURE FV_INTERIM_CASH_RECEIPTS (
22         req_id                       NUMBER,
23         set_num                      NUMBER,
24         process_mode                 VARCHAR2);
25 
26  PROCEDURE FV_INVOICE_FINANCE_CHRGS (
27         req_id                       NUMBER,
28         set_num                      NUMBER,
29         process_mode                 VARCHAR2);
30 
31  PROCEDURE FV_IPAC_TRX (
32         req_id                       NUMBER,
33         set_num                      NUMBER,
34         process_mode                 VARCHAR2);
35 
36 
37 
38 ------------------------------------------------------------------------------
39 -- Merge Routine for FV_CUST_FINANCE_CHRGS table
40 ------------------------------------------------------------------------------
41 PROCEDURE FV_CUST_FINANCE_CHRGS (
42         req_id                       NUMBER,
43         set_num                      NUMBER,
44         process_mode                 VARCHAR2) IS
45   l_module_name VARCHAR2(200) := g_module_name || 'FV_CUST_FINANCE_CHRGS';
46   l_errbuf      VARCHAR2(1024);
47 
48   TYPE MERGE_HEADER_ID_LIST_TYPE IS TABLE OF
49        RA_CUSTOMER_MERGE_HEADERS.CUSTOMER_MERGE_HEADER_ID%TYPE
50        INDEX BY BINARY_INTEGER;
51   MERGE_HEADER_ID_LIST MERGE_HEADER_ID_LIST_TYPE;
52 
53   TYPE CUSTOMER_ID_LIST_TYPE IS TABLE OF
54          FV_CUST_FINANCE_CHRGS_ALL.CUSTOMER_ID%TYPE
55         INDEX BY BINARY_INTEGER;
56   PRIMARY_KEY1_LIST CUSTOMER_ID_LIST_TYPE;
57 
58   TYPE CHARGE_ID_LIST_TYPE IS TABLE OF
59          FV_CUST_FINANCE_CHRGS_ALL.CHARGE_ID%TYPE
60         INDEX BY BINARY_INTEGER;
61   PRIMARY_KEY2_LIST CHARGE_ID_LIST_TYPE;
62 
63   TYPE CUSTOMER_ID_LIST_TYPE1 IS TABLE OF
64          FV_CUST_FINANCE_CHRGS_ALL.CUSTOMER_ID%TYPE
65         INDEX BY BINARY_INTEGER;
66   NUM_COL1_ORIG_LIST CUSTOMER_ID_LIST_TYPE1;
67   NUM_COL1_NEW_LIST CUSTOMER_ID_LIST_TYPE1;
68 
69   l_profile_val VARCHAR2(30);
70   CURSOR merged_records IS
71         SELECT distinct CUSTOMER_MERGE_HEADER_ID
72               ,yt.CUSTOMER_ID
76          WHERE (
73               ,yt.CHARGE_ID
74               ,yt.CUSTOMER_ID
75          FROM FV_CUST_FINANCE_CHRGS yt, ra_customer_merges m
77             yt.CUSTOMER_ID = m.DUPLICATE_ID
78          ) AND    m.process_flag = 'N'
79          AND    m.request_id = req_id
80          AND    m.set_number = set_num;
81   l_last_fetch BOOLEAN := FALSE;
82   l_count NUMBER := 0;
83 BEGIN
84   IF process_mode='LOCK' THEN
85     NULL;
86   ELSE
87     ARP_MESSAGE.SET_NAME('AR','AR_UPDATING_TABLE');
88     ARP_MESSAGE.SET_TOKEN('TABLE_NAME','FV_CUST_FINANCE_CHRGS',FALSE);
89     IF ( FND_LOG.LEVEL_EVENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
90       FV_UTILITY.MESSAGE(FND_LOG.LEVEL_EVENT, l_module_name);
91     END IF;
92 
93     HZ_ACCT_MERGE_UTIL.load_set(set_num, req_id);
94     l_profile_val :=  FND_PROFILE.VALUE('HZ_AUDIT_ACCT_MERGE');
95 
96     --remove records from table that will be duplicates when merged.
97     delete from fv_cust_finance_chrgs
98                 where (customer_id, charge_id) in
99                                 (select duplicate_id, charge_id
100                                    from ra_customer_merges racm,
101                                         fv_cust_finance_chrgs fcfc
102                                      where  racm.process_flag = 'N'
103                                        and racm.request_id = req_id
104                                        and racm.set_number = set_num
105                              and racm.customer_id = fcfc.customer_id
106                              and fcfc.charge_id in
107                                 (select charge_id
108                                    from fv_cust_finance_chrgs
109                                   where customer_id = racm.duplicate_id));
110 
111     open merged_records;
112     LOOP
113       FETCH merged_records BULK COLLECT INTO
114          MERGE_HEADER_ID_LIST
115           , PRIMARY_KEY1_LIST
116           , PRIMARY_KEY2_LIST
117           , NUM_COL1_ORIG_LIST
118           limit 1000
119           ;
120       IF merged_records%NOTFOUND THEN
121          l_last_fetch := TRUE;
122       END IF;
123       IF MERGE_HEADER_ID_LIST.COUNT = 0 and l_last_fetch then
124         exit;
125       END IF;
126       FOR I in 1..MERGE_HEADER_ID_LIST.COUNT LOOP
127          NUM_COL1_NEW_LIST(I) := HZ_ACCT_MERGE_UTIL.GETDUP_ACCOUNT(NUM_COL1_ORIG_LIST(I));
128       END LOOP;
129       IF l_profile_val IS NOT NULL AND l_profile_val = 'Y' THEN
130         FORALL I in 1..MERGE_HEADER_ID_LIST.COUNT
131          INSERT INTO HZ_CUSTOMER_MERGE_LOG (
132            MERGE_LOG_ID,
133            TABLE_NAME,
134            MERGE_HEADER_ID,
135            PRIMARY_KEY1,
136            PRIMARY_KEY2,
137            NUM_COL1_ORIG,
138            NUM_COL1_NEW,
139            ACTION_FLAG,
140            REQUEST_ID,
141            CREATED_BY,
142            CREATION_DATE,
143            LAST_UPDATE_LOGIN,
144            LAST_UPDATE_DATE,
145            LAST_UPDATED_BY
146       ) VALUES (         HZ_CUSTOMER_MERGE_LOG_s.nextval,
147          'FV_CUST_FINANCE_CHRGS',
148          MERGE_HEADER_ID_LIST(I),
149          PRIMARY_KEY1_LIST(I),
150          PRIMARY_KEY2_LIST(I),
151          NUM_COL1_ORIG_LIST(I),
152          NUM_COL1_NEW_LIST(I),
153          'U',
154          req_id,
155          hz_utility_pub.CREATED_BY,
156          hz_utility_pub.CREATION_DATE,
157          hz_utility_pub.LAST_UPDATE_LOGIN,
158          hz_utility_pub.LAST_UPDATE_DATE,
159          hz_utility_pub.LAST_UPDATED_BY
160       );
161 
162     END IF;    FORALL I in 1..MERGE_HEADER_ID_LIST.COUNT
163       UPDATE FV_CUST_FINANCE_CHRGS yt SET
164            CUSTOMER_ID=NUM_COL1_NEW_LIST(I)
165           , LAST_UPDATE_DATE=SYSDATE
166           , last_updated_by=arp_standard.profile.user_id
167           , last_update_login=arp_standard.profile.last_update_login
168       WHERE CUSTOMER_ID=PRIMARY_KEY1_LIST(I)
172       IF l_last_fetch THEN
169       AND CHARGE_ID=PRIMARY_KEY2_LIST(I)
170          ;
171       l_count := l_count + SQL%ROWCOUNT;
173          EXIT;
174       END IF;
175     END LOOP;
176 
177     arp_message.set_name('AR','AR_ROWS_UPDATED');
178     arp_message.set_token('NUM_ROWS',to_char(l_count));
179     IF ( FND_LOG.LEVEL_EVENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
180       FV_UTILITY.MESSAGE(FND_LOG.LEVEL_EVENT, l_module_name);
181     END IF;
182   END IF;
183 EXCEPTION
184   WHEN OTHERS THEN
185     l_errbuf := SQLERRM;
186     FV_UTILITY.LOG_MESG(FND_LOG.LEVEL_ERROR, l_module_name||'.final_exception', l_errbuf);
187     arp_message.set_line( 'FV_CUST_FINANCE_CHRGS');
188     IF ( FND_LOG.LEVEL_ERROR >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
189       FV_UTILITY.MESSAGE(FND_LOG.LEVEL_ERROR, l_module_name);
190     END IF;
191     RAISE;
192 END FV_CUST_FINANCE_CHRGS;
193 
194 ------------------------------------------------------------------------------
195 -- Merge Routine for FV_CUST_VEND_XREFS table
196 -----------------------------------------------------------------------------
197 
198 PROCEDURE FV_CUST_VEND_XREFS (
199         req_id                       NUMBER,
200         set_num                      NUMBER,
201         process_mode                 VARCHAR2) IS
202   l_module_name VARCHAR2(200) := g_module_name || 'FV_CUST_VEND_XREFS';
203   l_errbuf      VARCHAR2(1024);
204 
205   TYPE MERGE_HEADER_ID_LIST_TYPE IS TABLE OF
206        RA_CUSTOMER_MERGE_HEADERS.CUSTOMER_MERGE_HEADER_ID%TYPE
207        INDEX BY BINARY_INTEGER;
208   MERGE_HEADER_ID_LIST MERGE_HEADER_ID_LIST_TYPE;
209 
210   -- Bug 12964038. Removed FV schema name prepended to table
211   TYPE CUST_VEND_XREF_ID_LIST_TYPE IS TABLE OF
212         --FV_CUST_VEND_XREFS.CUST_VEND_XREF_ID%TYPE
213 	NUMBER(15)
214         INDEX BY BINARY_INTEGER;
215   PRIMARY_KEY_ID_LIST CUST_VEND_XREF_ID_LIST_TYPE;
216 
217   TYPE CUSTOMER_ID_LIST_TYPE IS TABLE OF
218          --FV_CUST_VEND_XREFS.CUSTOMER_ID%TYPE
219         NUMBER(15)
220         INDEX BY BINARY_INTEGER;
221   NUM_COL1_ORIG_LIST CUSTOMER_ID_LIST_TYPE;
222   NUM_COL1_NEW_LIST CUSTOMER_ID_LIST_TYPE;
223 
224   l_profile_val VARCHAR2(30);
225   CURSOR merged_records IS
226         SELECT distinct CUSTOMER_MERGE_HEADER_ID
227               ,CUST_VEND_XREF_ID
228               ,yt.CUSTOMER_ID
229          FROM FV_CUST_VEND_XREFS yt, ra_customer_merges m
230          WHERE (
231             yt.CUSTOMER_ID = m.DUPLICATE_ID
235   l_last_fetch BOOLEAN := FALSE;
232          ) AND    m.process_flag = 'N'
233          AND    m.request_id = req_id
234          AND    m.set_number = set_num;
236   l_count NUMBER := 0;
237   g_count NUMBER := 0;
238 BEGIN
239   IF process_mode='LOCK' THEN
240     NULL;
241   ELSE
242     ARP_MESSAGE.SET_NAME('AR','AR_UPDATING_TABLE');
243     ARP_MESSAGE.SET_TOKEN('TABLE_NAME','FV_CUST_VEND_XREFS',FALSE);
244     IF ( FND_LOG.LEVEL_EVENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
245       FV_UTILITY.MESSAGE(FND_LOG.LEVEL_EVENT, l_module_name);
246     END IF;
247     HZ_ACCT_MERGE_UTIL.load_set(set_num, req_id);
248     l_profile_val :=  FND_PROFILE.VALUE('HZ_AUDIT_ACCT_MERGE');
249 
250     -- remove the records that will be duplicates when merged.
251     delete from fv_cust_vend_xrefs
252                  where customer_id IN (select  duplicate_id
253                                         from ra_customer_merges racm,
254                                              fv_cust_vend_xrefs t
255                                       where  racm.process_flag = 'N'
256                                         and racm.request_id =  req_id
257                                         and racm.set_number = set_num
258                                         and racm.customer_id = t.customer_id);
259 
260      g_count := SQL%ROWCOUNT;
261 
262     arp_message.set_name('AR','AR_ROWS_DELETED');
263     arp_message.set_token('NUM_ROWS',to_char(g_count));
264     IF ( FND_LOG.LEVEL_EVENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
265       FV_UTILITY.MESSAGE(FND_LOG.LEVEL_EVENT, l_module_name);
266     END IF;
267 
268     open merged_records;
269     LOOP
270       FETCH merged_records BULK COLLECT INTO
271          MERGE_HEADER_ID_LIST
272           , PRIMARY_KEY_ID_LIST
273           , NUM_COL1_ORIG_LIST
274           limit 1000
275           ;
276       IF merged_records%NOTFOUND THEN
277          l_last_fetch := TRUE;
278       END IF;
279       IF MERGE_HEADER_ID_LIST.COUNT = 0 and l_last_fetch then
280         exit;
281       END IF;
282       FOR I in 1..MERGE_HEADER_ID_LIST.COUNT LOOP
283          NUM_COL1_NEW_LIST(I) := HZ_ACCT_MERGE_UTIL.GETDUP_ACCOUNT(NUM_COL1_ORIG_LIST(I));
284       END LOOP;
285       IF l_profile_val IS NOT NULL AND l_profile_val = 'Y' THEN
286         FORALL I in 1..MERGE_HEADER_ID_LIST.COUNT
287          INSERT INTO HZ_CUSTOMER_MERGE_LOG (
288            MERGE_LOG_ID,
289            TABLE_NAME,
290            MERGE_HEADER_ID,
291            PRIMARY_KEY_ID,
292            NUM_COL1_ORIG,
293            NUM_COL1_NEW,
294            ACTION_FLAG,
295            REQUEST_ID,
296            CREATED_BY,
297            CREATION_DATE,
298            LAST_UPDATE_LOGIN,
299            LAST_UPDATE_DATE,
300            LAST_UPDATED_BY
301       ) VALUES (         HZ_CUSTOMER_MERGE_LOG_s.nextval,
302          'FV_CUST_VEND_XREFS',
303          MERGE_HEADER_ID_LIST(I),
304          PRIMARY_KEY_ID_LIST(I),
305          NUM_COL1_ORIG_LIST(I),
306          NUM_COL1_NEW_LIST(I),
307          'U',
308          req_id,
309          hz_utility_pub.CREATED_BY,
310          hz_utility_pub.CREATION_DATE,
311          hz_utility_pub.LAST_UPDATE_LOGIN,
312          hz_utility_pub.LAST_UPDATE_DATE,
313          hz_utility_pub.LAST_UPDATED_BY
314       );
315 
316     END IF;    FORALL I in 1..MERGE_HEADER_ID_LIST.COUNT
317       UPDATE FV_CUST_VEND_XREFS yt SET
318            CUSTOMER_ID=NUM_COL1_NEW_LIST(I)
319           , LAST_UPDATE_DATE=SYSDATE
320           , last_updated_by=arp_standard.profile.user_id
321           , last_update_login=arp_standard.profile.last_update_login
322       WHERE CUST_VEND_XREF_ID=PRIMARY_KEY_ID_LIST(I)
323          ;
324       l_count := l_count + SQL%ROWCOUNT;
325       IF l_last_fetch THEN
326          EXIT;
327       END IF;
328     END LOOP;
329 
330     arp_message.set_name('AR','AR_ROWS_UPDATED');
331     arp_message.set_token('NUM_ROWS',to_char(l_count));
332     IF ( FND_LOG.LEVEL_EVENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
333       FV_UTILITY.MESSAGE(FND_LOG.LEVEL_EVENT, l_module_name);
334     END IF;
335   END IF;
336 EXCEPTION
337   WHEN OTHERS THEN
338     l_errbuf := SQLERRM;
339     FV_UTILITY.LOG_MESG(FND_LOG.LEVEL_ERROR, l_module_name||'.final_exception', l_errbuf);
340     arp_message.set_line( 'FV_CUST_VEND_XREFS');
341     IF ( FND_LOG.LEVEL_ERROR >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
342       FV_UTILITY.MESSAGE(FND_LOG.LEVEL_ERROR, l_module_name);
343     END IF;
344     RAISE;
345 END FV_CUST_VEND_XREFS;
346 
347 ------------------------------------------------------------------------------
348 -- Merge Routine for FV_INTERAGENCY_FUNDS table
349 ------------------------------------------------------------------------------
350 
351 PROCEDURE FV_INTERAGENCY_FUNDS (
352         req_id                       NUMBER,
353         set_num                      NUMBER,
354         process_mode                 VARCHAR2) IS
355   l_module_name VARCHAR2(200) := g_module_name || 'FV_INTERAGENCY_FUNDS';
356   l_errbuf      VARCHAR2(1024);
357 
358   TYPE MERGE_HEADER_ID_LIST_TYPE IS TABLE OF
359        RA_CUSTOMER_MERGE_HEADERS.CUSTOMER_MERGE_HEADER_ID%TYPE
360        INDEX BY BINARY_INTEGER;
361   MERGE_HEADER_ID_LIST MERGE_HEADER_ID_LIST_TYPE;
362 
363   TYPE INTERAGENCY_FUND_ID_LIST_TYPE IS TABLE OF
364          FV_INTERAGENCY_FUNDS_ALL.INTERAGENCY_FUND_ID%TYPE
365         INDEX BY BINARY_INTEGER;
366   PRIMARY_KEY_ID_LIST INTERAGENCY_FUND_ID_LIST_TYPE;
367 
368   TYPE CUSTOMER_ID_LIST_TYPE IS TABLE OF
369          FV_INTERAGENCY_FUNDS_ALL.CUSTOMER_ID%TYPE
373 
370         INDEX BY BINARY_INTEGER;
371   NUM_COL1_ORIG_LIST CUSTOMER_ID_LIST_TYPE;
372   NUM_COL1_NEW_LIST CUSTOMER_ID_LIST_TYPE;
374   l_profile_val VARCHAR2(30);
375   CURSOR merged_records IS
376         SELECT distinct CUSTOMER_MERGE_HEADER_ID
377               ,INTERAGENCY_FUND_ID
378               ,yt.CUSTOMER_ID
379          FROM FV_INTERAGENCY_FUNDS yt, ra_customer_merges m
380          WHERE (
381             yt.CUSTOMER_ID = m.DUPLICATE_ID
382          ) AND    m.process_flag = 'N'
383          AND    m.request_id = req_id
384          AND    m.set_number = set_num;
385   l_last_fetch BOOLEAN := FALSE;
386   l_count NUMBER := 0;
387 BEGIN
388   IF process_mode='LOCK' THEN
389     NULL;
390   ELSE
391     ARP_MESSAGE.SET_NAME('AR','AR_UPDATING_TABLE');
392     ARP_MESSAGE.SET_TOKEN('TABLE_NAME','FV_INTERAGENCY_FUNDS',FALSE);
393     IF ( FND_LOG.LEVEL_EVENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
394       FV_UTILITY.MESSAGE(FND_LOG.LEVEL_EVENT, l_module_name);
395     END IF;
396     HZ_ACCT_MERGE_UTIL.load_set(set_num, req_id);
397     l_profile_val :=  FND_PROFILE.VALUE('HZ_AUDIT_ACCT_MERGE');
398 
399     open merged_records;
400     LOOP
401       FETCH merged_records BULK COLLECT INTO
402          MERGE_HEADER_ID_LIST
403           , PRIMARY_KEY_ID_LIST
404           , NUM_COL1_ORIG_LIST
405           limit 1000
406           ;
407       IF merged_records%NOTFOUND THEN
408          l_last_fetch := TRUE;
409       END IF;
410       IF MERGE_HEADER_ID_LIST.COUNT = 0 and l_last_fetch then
411         exit;
412       END IF;
413       FOR I in 1..MERGE_HEADER_ID_LIST.COUNT LOOP
414          NUM_COL1_NEW_LIST(I) := HZ_ACCT_MERGE_UTIL.GETDUP_ACCOUNT(NUM_COL1_ORIG_LIST(I));
415       END LOOP;
416       IF l_profile_val IS NOT NULL AND l_profile_val = 'Y' THEN
417         FORALL I in 1..MERGE_HEADER_ID_LIST.COUNT
418          INSERT INTO HZ_CUSTOMER_MERGE_LOG (
419            MERGE_LOG_ID,
420            TABLE_NAME,
421            MERGE_HEADER_ID,
422            PRIMARY_KEY_ID,
423            NUM_COL1_ORIG,
424            NUM_COL1_NEW,
425            ACTION_FLAG,
426            REQUEST_ID,
427            CREATED_BY,
428            CREATION_DATE,
429            LAST_UPDATE_LOGIN,
430            LAST_UPDATE_DATE,
431            LAST_UPDATED_BY
432       ) VALUES (         HZ_CUSTOMER_MERGE_LOG_s.nextval,
433          'FV_INTERAGENCY_FUNDS',
434          MERGE_HEADER_ID_LIST(I),
435          PRIMARY_KEY_ID_LIST(I),
436          NUM_COL1_ORIG_LIST(I),
437          NUM_COL1_NEW_LIST(I),
438          'U',
439          req_id,
440          hz_utility_pub.CREATED_BY,
441          hz_utility_pub.CREATION_DATE,
442          hz_utility_pub.LAST_UPDATE_LOGIN,
443          hz_utility_pub.LAST_UPDATE_DATE,
444          hz_utility_pub.LAST_UPDATED_BY
445       );
446 
447     END IF;    FORALL I in 1..MERGE_HEADER_ID_LIST.COUNT
448       UPDATE FV_INTERAGENCY_FUNDS yt SET
449            CUSTOMER_ID=NUM_COL1_NEW_LIST(I)
450           , LAST_UPDATE_DATE=SYSDATE
451           , last_updated_by=arp_standard.profile.user_id
452           , last_update_login=arp_standard.profile.last_update_login
453       WHERE INTERAGENCY_FUND_ID=PRIMARY_KEY_ID_LIST(I)
454          ;
455       l_count := l_count + SQL%ROWCOUNT;
456       IF l_last_fetch THEN
457          EXIT;
458       END IF;
459     END LOOP;
460 
461     arp_message.set_name('AR','AR_ROWS_UPDATED');
462     arp_message.set_token('NUM_ROWS',to_char(l_count));
463     IF ( FND_LOG.LEVEL_EVENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
464       FV_UTILITY.MESSAGE(FND_LOG.LEVEL_EVENT, l_module_name);
465     END IF;
466   END IF;
467 EXCEPTION
468   WHEN OTHERS THEN
469     l_errbuf := SQLERRM;
470     FV_UTILITY.LOG_MESG(FND_LOG.LEVEL_ERROR, l_module_name||'.final_exception', l_errbuf);
471     arp_message.set_line( 'FV_INTERAGENCY_FUNDS');
472     IF ( FND_LOG.LEVEL_ERROR >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
473       FV_UTILITY.MESSAGE(FND_LOG.LEVEL_ERROR, l_module_name);
474     END IF;
475     RAISE;
476 END FV_INTERAGENCY_FUNDS;
477 ------------------------------------------------------------------------------
478 -- Merge Routine for FV_INTERIM_CASH_RECEIPTS table
479 ------------------------------------------------------------------------------
480 PROCEDURE FV_INTERIM_CASH_RECEIPTS (
481         req_id                       NUMBER,
482         set_num                      NUMBER,
483         process_mode                 VARCHAR2) IS
484   l_module_name VARCHAR2(200) := g_module_name || 'FV_INTERIM_CASH_RECEIPTS';
485   l_errbuf      VARCHAR2(1024);
486 
487   TYPE MERGE_HEADER_ID_LIST_TYPE IS TABLE OF
488        RA_CUSTOMER_MERGE_HEADERS.CUSTOMER_MERGE_HEADER_ID%TYPE
489        INDEX BY BINARY_INTEGER;
490   MERGE_HEADER_ID_LIST MERGE_HEADER_ID_LIST_TYPE;
491 
492   TYPE BATCH_ID_LIST_TYPE IS TABLE OF
493         FV_INTERIM_CASH_RECEIPTS_ALL.BATCH_ID%TYPE
494         INDEX BY BINARY_INTEGER;
495   PRIMARY_KEY1_LIST BATCH_ID_LIST_TYPE;
496 
497   TYPE CUSTOMER_ID_LIST_TYPE IS TABLE OF
498          FV_INTERIM_CASH_RECEIPTS_ALL.CUSTOMER_ID%TYPE
499         INDEX BY BINARY_INTEGER;
500   PRIMARY_KEY2_LIST CUSTOMER_ID_LIST_TYPE;
501 
502   TYPE CUSTOMER_TRX_ID_LIST_TYPE IS TABLE OF
503          FV_INTERIM_CASH_RECEIPTS_ALL.CUSTOMER_TRX_ID%TYPE
504         INDEX BY BINARY_INTEGER;
505   PRIMARY_KEY3_LIST CUSTOMER_TRX_ID_LIST_TYPE;
506 
507   TYPE RECEIPT_NUMBER_LIST_TYPE IS TABLE OF
508          FV_INTERIM_CASH_RECEIPTS_ALL.RECEIPT_NUMBER%TYPE
509         INDEX BY BINARY_INTEGER;
513          FV_INTERIM_CASH_RECEIPTS_ALL.CUSTOMER_ID%TYPE
510   PRIMARY_KEY4_LIST RECEIPT_NUMBER_LIST_TYPE;
511 
512   TYPE CUSTOMER_ID_LIST_TYPE1 IS TABLE OF
514         INDEX BY BINARY_INTEGER;
515   NUM_COL1_ORIG_LIST CUSTOMER_ID_LIST_TYPE1;
516   NUM_COL1_NEW_LIST CUSTOMER_ID_LIST_TYPE1;
517 
518   TYPE SITE_USE_ID_LIST_TYPE IS TABLE OF
519          FV_INTERIM_CASH_RECEIPTS_ALL.SITE_USE_ID%TYPE
520         INDEX BY BINARY_INTEGER;
521   NUM_COL2_ORIG_LIST SITE_USE_ID_LIST_TYPE;
522   NUM_COL2_NEW_LIST SITE_USE_ID_LIST_TYPE;
523 
524   l_profile_val VARCHAR2(30);
525   CURSOR merged_records IS
526         SELECT distinct CUSTOMER_MERGE_HEADER_ID
527               ,BATCH_ID
528               ,yt.CUSTOMER_ID
529               ,CUSTOMER_TRX_ID
530               ,RECEIPT_NUMBER
531               ,yt.CUSTOMER_ID
532               ,yt.SITE_USE_ID
533          FROM FV_INTERIM_CASH_RECEIPTS yt, ra_customer_merges m
534          WHERE (
535             yt.CUSTOMER_ID = m.DUPLICATE_ID
536             OR yt.SITE_USE_ID = m.DUPLICATE_SITE_ID
537          ) AND    m.process_flag = 'N'
538          AND    m.request_id = req_id
539          AND    m.set_number = set_num;
540   l_last_fetch BOOLEAN := FALSE;
541   l_count NUMBER := 0;
542 BEGIN
543   IF process_mode='LOCK' THEN
544     NULL;
545   ELSE
546     ARP_MESSAGE.SET_NAME('AR','AR_UPDATING_TABLE');
547     ARP_MESSAGE.SET_TOKEN('TABLE_NAME','FV_INTERIM_CASH_RECEIPTS',FALSE);
548     IF ( FND_LOG.LEVEL_EVENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
549       FV_UTILITY.MESSAGE(FND_LOG.LEVEL_EVENT, l_module_name);
550     END IF;
551     HZ_ACCT_MERGE_UTIL.load_set(set_num, req_id);
552     l_profile_val :=  FND_PROFILE.VALUE('HZ_AUDIT_ACCT_MERGE');
553 
554     open merged_records;
555     LOOP
556       FETCH merged_records BULK COLLECT INTO
557          MERGE_HEADER_ID_LIST
558           , PRIMARY_KEY1_LIST
559           , PRIMARY_KEY2_LIST
560           , PRIMARY_KEY3_LIST
561           , PRIMARY_KEY4_LIST
562           , NUM_COL1_ORIG_LIST
563           , NUM_COL2_ORIG_LIST
564           limit 1000
565           ;
566       IF merged_records%NOTFOUND THEN
567          l_last_fetch := TRUE;
568       END IF;
569       IF MERGE_HEADER_ID_LIST.COUNT = 0 and l_last_fetch then
570         exit;
571       END IF;
572       FOR I in 1..MERGE_HEADER_ID_LIST.COUNT LOOP
573          NUM_COL1_NEW_LIST(I) := HZ_ACCT_MERGE_UTIL.GETDUP_ACCOUNT(NUM_COL1_ORIG_LIST(I));
574          NUM_COL2_NEW_LIST(I) := HZ_ACCT_MERGE_UTIL.GETDUP_SITE_USE(NUM_COL2_ORIG_LIST(I));
575       END LOOP;
576       IF l_profile_val IS NOT NULL AND l_profile_val = 'Y' THEN
577         FORALL I in 1..MERGE_HEADER_ID_LIST.COUNT
578          INSERT INTO HZ_CUSTOMER_MERGE_LOG (
579            MERGE_LOG_ID,
580            TABLE_NAME,
581            MERGE_HEADER_ID,
582            PRIMARY_KEY1,
583            PRIMARY_KEY2,
584            PRIMARY_KEY3,
585            PRIMARY_KEY4,
586            NUM_COL1_ORIG,
587            NUM_COL1_NEW,
588            NUM_COL2_ORIG,
589            NUM_COL2_NEW,
590            ACTION_FLAG,
591            REQUEST_ID,
592            CREATED_BY,
593            CREATION_DATE,
594            LAST_UPDATE_LOGIN,
595            LAST_UPDATE_DATE,
596            LAST_UPDATED_BY
597       ) VALUES (         HZ_CUSTOMER_MERGE_LOG_s.nextval,
598          'FV_INTERIM_CASH_RECEIPTS',
599          MERGE_HEADER_ID_LIST(I),
600          PRIMARY_KEY1_LIST(I),
601          PRIMARY_KEY2_LIST(I),
602          PRIMARY_KEY3_LIST(I),
603          PRIMARY_KEY4_LIST(I),
604          NUM_COL1_ORIG_LIST(I),
605          NUM_COL1_NEW_LIST(I),
606          NUM_COL2_ORIG_LIST(I),
607          NUM_COL2_NEW_LIST(I),
608          'U',
609          req_id,
610          hz_utility_pub.CREATED_BY,
611          hz_utility_pub.CREATION_DATE,
612          hz_utility_pub.LAST_UPDATE_LOGIN,
613          hz_utility_pub.LAST_UPDATE_DATE,
614          hz_utility_pub.LAST_UPDATED_BY
615       );
616 
617     END IF;    FORALL I in 1..MERGE_HEADER_ID_LIST.COUNT
618       UPDATE FV_INTERIM_CASH_RECEIPTS yt SET
619            CUSTOMER_ID=NUM_COL1_NEW_LIST(I)
620           ,SITE_USE_ID=NUM_COL2_NEW_LIST(I)
621           , LAST_UPDATE_DATE=SYSDATE
622           , last_updated_by=arp_standard.profile.user_id
623           , last_update_login=arp_standard.profile.last_update_login
624       WHERE BATCH_ID=PRIMARY_KEY1_LIST(I)
625       AND CUSTOMER_ID=PRIMARY_KEY2_LIST(I)
626       AND CUSTOMER_TRX_ID=PRIMARY_KEY3_LIST(I)
627       AND RECEIPT_NUMBER=PRIMARY_KEY4_LIST(I)
628          ;
629       l_count := l_count + SQL%ROWCOUNT;
630       IF l_last_fetch THEN
631          EXIT;
632       END IF;
633     END LOOP;
634 
635     arp_message.set_name('AR','AR_ROWS_UPDATED');
636     arp_message.set_token('NUM_ROWS',to_char(l_count));
637     IF ( FND_LOG.LEVEL_EVENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
638       FV_UTILITY.MESSAGE(FND_LOG.LEVEL_EVENT, l_module_name);
639     END IF;
640   END IF;
641 EXCEPTION
642   WHEN OTHERS THEN
643     l_errbuf := SQLERRM;
644     FV_UTILITY.LOG_MESG(FND_LOG.LEVEL_ERROR, l_module_name||'.final_exception', l_errbuf);
645     arp_message.set_line( 'FV_INTERIM_CASH_RECEIPTS');
646     IF ( FND_LOG.LEVEL_ERROR >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
647       FV_UTILITY.MESSAGE(FND_LOG.LEVEL_ERROR, l_module_name);
648     END IF;
649     RAISE;
650 END FV_INTERIM_CASH_RECEIPTS;
651 
652 ------------------------------------------------------------------------------
656 PROCEDURE FV_INVOICE_FINANCE_CHRGS (
653 -- Merge Routine for FV_INVOICE_FINANCE_CHRGS table
654 -----------------------------------------------------------------------------
655 
657         req_id                       NUMBER,
658         set_num                      NUMBER,
659         process_mode                 VARCHAR2) IS
660   l_module_name VARCHAR2(200) := g_module_name || 'FV_INVOICE_FINANCE_CHRGS';
661   l_errbuf      VARCHAR2(1024);
662 
663   TYPE MERGE_HEADER_ID_LIST_TYPE IS TABLE OF
664        RA_CUSTOMER_MERGE_HEADERS.CUSTOMER_MERGE_HEADER_ID%TYPE
665        INDEX BY BINARY_INTEGER;
666   MERGE_HEADER_ID_LIST MERGE_HEADER_ID_LIST_TYPE;
667 
668   TYPE CUSTOMER_TRX_ID_LIST_TYPE IS TABLE OF
669          FV_INVOICE_FINANCE_CHRGS_ALL.CUSTOMER_TRX_ID%TYPE
670         INDEX BY BINARY_INTEGER;
671   PRIMARY_KEY1_LIST CUSTOMER_TRX_ID_LIST_TYPE;
672 
673   TYPE CUSTOMER_ID_LIST_TYPE IS TABLE OF
674          FV_INVOICE_FINANCE_CHRGS_ALL.CUSTOMER_ID%TYPE
675         INDEX BY BINARY_INTEGER;
676   PRIMARY_KEY2_LIST CUSTOMER_ID_LIST_TYPE;
677 
678   TYPE CHARGE_ID_LIST_TYPE IS TABLE OF
679          FV_INVOICE_FINANCE_CHRGS_ALL.CHARGE_ID%TYPE
680         INDEX BY BINARY_INTEGER;
681   PRIMARY_KEY3_LIST CHARGE_ID_LIST_TYPE;
682 
683   TYPE CUSTOMER_ID_LIST_TYPE1 IS TABLE OF
684          FV_INVOICE_FINANCE_CHRGS_ALL.CUSTOMER_ID%TYPE
685         INDEX BY BINARY_INTEGER;
686   NUM_COL1_ORIG_LIST CUSTOMER_ID_LIST_TYPE1;
687   NUM_COL1_NEW_LIST CUSTOMER_ID_LIST_TYPE1;
688 
689   l_profile_val VARCHAR2(30);
690   CURSOR merged_records IS
691         SELECT distinct CUSTOMER_MERGE_HEADER_ID
692               ,CUSTOMER_TRX_ID
693               ,yt.CUSTOMER_ID
694               ,CHARGE_ID
695               ,yt.CUSTOMER_ID
696          FROM FV_INVOICE_FINANCE_CHRGS yt, ra_customer_merges m
697          WHERE (
698             yt.CUSTOMER_ID = m.DUPLICATE_ID
699          ) AND    m.process_flag = 'N'
700          AND    m.request_id = req_id
701          AND    m.set_number = set_num;
702   l_last_fetch BOOLEAN := FALSE;
703   l_count NUMBER := 0;
704 BEGIN
705   IF process_mode='LOCK' THEN
706     NULL;
707   ELSE
708     ARP_MESSAGE.SET_NAME('AR','AR_UPDATING_TABLE');
709     ARP_MESSAGE.SET_TOKEN('TABLE_NAME','FV_INVOICE_FINANCE_CHRGS',FALSE);
710     IF ( FND_LOG.LEVEL_EVENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
711       FV_UTILITY.MESSAGE(FND_LOG.LEVEL_EVENT, l_module_name);
712     END IF;
713     HZ_ACCT_MERGE_UTIL.load_set(set_num, req_id);
714     l_profile_val :=  FND_PROFILE.VALUE('HZ_AUDIT_ACCT_MERGE');
715 
716     open merged_records;
717     LOOP
718       FETCH merged_records BULK COLLECT INTO
719          MERGE_HEADER_ID_LIST
720           , PRIMARY_KEY1_LIST
721           , PRIMARY_KEY2_LIST
722           , PRIMARY_KEY3_LIST
723           , NUM_COL1_ORIG_LIST
724           limit 1000
725           ;
726       IF merged_records%NOTFOUND THEN
727          l_last_fetch := TRUE;
728       END IF;
729       IF MERGE_HEADER_ID_LIST.COUNT = 0 and l_last_fetch then
730         exit;
731       END IF;
732       FOR I in 1..MERGE_HEADER_ID_LIST.COUNT LOOP
733          NUM_COL1_NEW_LIST(I) := HZ_ACCT_MERGE_UTIL.GETDUP_ACCOUNT(NUM_COL1_ORIG_LIST(I));
734       END LOOP;
735       IF l_profile_val IS NOT NULL AND l_profile_val = 'Y' THEN
736         FORALL I in 1..MERGE_HEADER_ID_LIST.COUNT
737          INSERT INTO HZ_CUSTOMER_MERGE_LOG (
738            MERGE_LOG_ID,
739            TABLE_NAME,
740            MERGE_HEADER_ID,
741            PRIMARY_KEY1,
742            PRIMARY_KEY2,
743            PRIMARY_KEY3,
744            NUM_COL1_ORIG,
745            NUM_COL1_NEW,
746            ACTION_FLAG,
747            REQUEST_ID,
748            CREATED_BY,
749            CREATION_DATE,
750            LAST_UPDATE_LOGIN,
751            LAST_UPDATE_DATE,
752            LAST_UPDATED_BY
753       ) VALUES (         HZ_CUSTOMER_MERGE_LOG_s.nextval,
754          'FV_INVOICE_FINANCE_CHRGS',
755          MERGE_HEADER_ID_LIST(I),
756          PRIMARY_KEY1_LIST(I),
757          PRIMARY_KEY2_LIST(I),
758          PRIMARY_KEY3_LIST(I),
759          NUM_COL1_ORIG_LIST(I),
760          NUM_COL1_NEW_LIST(I),
761          'U',
762          req_id,
763          hz_utility_pub.CREATED_BY,
764          hz_utility_pub.CREATION_DATE,
765          hz_utility_pub.LAST_UPDATE_LOGIN,
766          hz_utility_pub.LAST_UPDATE_DATE,
767          hz_utility_pub.LAST_UPDATED_BY
768       );
769 
770     END IF;    FORALL I in 1..MERGE_HEADER_ID_LIST.COUNT
771       UPDATE FV_INVOICE_FINANCE_CHRGS yt SET
772            CUSTOMER_ID=NUM_COL1_NEW_LIST(I)
773           , LAST_UPDATE_DATE=SYSDATE
774           , last_updated_by=arp_standard.profile.user_id
775           , last_update_login=arp_standard.profile.last_update_login
776       WHERE CUSTOMER_TRX_ID=PRIMARY_KEY1_LIST(I)
777       AND CUSTOMER_ID=PRIMARY_KEY2_LIST(I)
778       AND CHARGE_ID=PRIMARY_KEY3_LIST(I)
779          ;
780       l_count := l_count + SQL%ROWCOUNT;
781       IF l_last_fetch THEN
782          EXIT;
783       END IF;
784     END LOOP;
785 
786     arp_message.set_name('AR','AR_ROWS_UPDATED');
787     arp_message.set_token('NUM_ROWS',to_char(l_count));
788     IF ( FND_LOG.LEVEL_EVENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
789       FV_UTILITY.MESSAGE(FND_LOG.LEVEL_EVENT, l_module_name);
790     END IF;
791   END IF;
792 EXCEPTION
793   WHEN OTHERS THEN
794     l_errbuf := SQLERRM;
795     FV_UTILITY.LOG_MESG(FND_LOG.LEVEL_ERROR, l_module_name||'.final_exception', l_errbuf);
796     arp_message.set_line( 'FV_INVOICE_FINANCE_CHRGS');
797     IF ( FND_LOG.LEVEL_ERROR >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
801 END FV_INVOICE_FINANCE_CHRGS;
798       FV_UTILITY.MESSAGE(FND_LOG.LEVEL_ERROR, l_module_name);
799     END IF;
800     RAISE;
802 
803 ------------------------------------------------------------------------------
804 -- Merge Routine for FV_IPAC_TRX table
805 -----------------------------------------------------------------------------
806 
807 
808 PROCEDURE FV_IPAC_TRX (
809         req_id                       NUMBER,
810         set_num                      NUMBER,
811         process_mode                 VARCHAR2) IS
812   l_module_name VARCHAR2(200) := g_module_name || 'FV_IPAC_TRX';
813   l_errbuf      VARCHAR2(1024);
814 
815   TYPE MERGE_HEADER_ID_LIST_TYPE IS TABLE OF
816        RA_CUSTOMER_MERGE_HEADERS.CUSTOMER_MERGE_HEADER_ID%TYPE
817        INDEX BY BINARY_INTEGER;
818   MERGE_HEADER_ID_LIST MERGE_HEADER_ID_LIST_TYPE;
819 
820   TYPE IPAC_BILLING_ID_LIST_TYPE IS TABLE OF
821          FV_IPAC_TRX_ALL.IPAC_BILLING_ID%TYPE
822         INDEX BY BINARY_INTEGER;
823   PRIMARY_KEY1_LIST IPAC_BILLING_ID_LIST_TYPE;
824 
825   TYPE CUSTOMER_ID_LIST_TYPE IS TABLE OF
826          FV_IPAC_TRX_ALL.CUSTOMER_ID%TYPE
827         INDEX BY BINARY_INTEGER;
828   NUM_COL1_ORIG_LIST CUSTOMER_ID_LIST_TYPE;
829   NUM_COL1_NEW_LIST CUSTOMER_ID_LIST_TYPE;
830 
831   l_profile_val VARCHAR2(30);
832   CURSOR merged_records IS
833         SELECT distinct CUSTOMER_MERGE_HEADER_ID
834               ,IPAC_BILLING_ID
835               ,yt.CUSTOMER_ID
836          FROM FV_IPAC_TRX yt, ra_customer_merges m
837          WHERE (
838             yt.CUSTOMER_ID = m.DUPLICATE_ID
839          ) AND    m.process_flag = 'N'
840          AND    m.request_id = req_id
841          AND    m.set_number = set_num;
842   l_last_fetch BOOLEAN := FALSE;
843   l_count NUMBER := 0;
844 BEGIN
845   IF process_mode='LOCK' THEN
846     NULL;
847   ELSE
848     ARP_MESSAGE.SET_NAME('AR','AR_UPDATING_TABLE');
849     ARP_MESSAGE.SET_TOKEN('TABLE_NAME','FV_IPAC_TRX',FALSE);
850     IF ( FND_LOG.LEVEL_EVENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
851       FV_UTILITY.MESSAGE(FND_LOG.LEVEL_EVENT, l_module_name);
852     END IF;
853     HZ_ACCT_MERGE_UTIL.load_set(set_num, req_id);
854     l_profile_val :=  FND_PROFILE.VALUE('HZ_AUDIT_ACCT_MERGE');
855 
856     open merged_records;
857     LOOP
858       FETCH merged_records BULK COLLECT INTO
859          MERGE_HEADER_ID_LIST
860           , PRIMARY_KEY1_LIST
861           , NUM_COL1_ORIG_LIST
862           limit 1000
863           ;
864       IF merged_records%NOTFOUND THEN
865          l_last_fetch := TRUE;
866       END IF;
867       IF MERGE_HEADER_ID_LIST.COUNT = 0 and l_last_fetch then
868         exit;
869       END IF;
870       FOR I in 1..MERGE_HEADER_ID_LIST.COUNT LOOP
871          NUM_COL1_NEW_LIST(I) := HZ_ACCT_MERGE_UTIL.GETDUP_ACCOUNT(NUM_COL1_ORIG_LIST(I));
872       END LOOP;
873       IF l_profile_val IS NOT NULL AND l_profile_val = 'Y' THEN
874         FORALL I in 1..MERGE_HEADER_ID_LIST.COUNT
875          INSERT INTO HZ_CUSTOMER_MERGE_LOG (
876            MERGE_LOG_ID,
877            TABLE_NAME,
878            MERGE_HEADER_ID,
879            PRIMARY_KEY1,
880            NUM_COL1_ORIG,
881            NUM_COL1_NEW,
882            ACTION_FLAG,
883            REQUEST_ID,
884            CREATED_BY,
885            CREATION_DATE,
886            LAST_UPDATE_LOGIN,
887            LAST_UPDATE_DATE,
888            LAST_UPDATED_BY
889       ) VALUES (         HZ_CUSTOMER_MERGE_LOG_s.nextval,
890          'FV_IPAC_TRX',
891          MERGE_HEADER_ID_LIST(I),
892          PRIMARY_KEY1_LIST(I),
893          NUM_COL1_ORIG_LIST(I),
894          NUM_COL1_NEW_LIST(I),
895          'U',
896          req_id,
897          hz_utility_pub.CREATED_BY,
898          hz_utility_pub.CREATION_DATE,
899          hz_utility_pub.LAST_UPDATE_LOGIN,
900          hz_utility_pub.LAST_UPDATE_DATE,
901          hz_utility_pub.LAST_UPDATED_BY
902       );
903 
904     END IF;    FORALL I in 1..MERGE_HEADER_ID_LIST.COUNT
905       UPDATE FV_IPAC_TRX yt SET
906            CUSTOMER_ID=NUM_COL1_NEW_LIST(I)
907           , LAST_UPDATE_DATE=SYSDATE
908           , last_updated_by=arp_standard.profile.user_id
909           , last_update_login=arp_standard.profile.last_update_login
910       WHERE IPAC_BILLING_ID=PRIMARY_KEY1_LIST(I)
911          ;
912       l_count := l_count + SQL%ROWCOUNT;
913       IF l_last_fetch THEN
914          EXIT;
915       END IF;
916     END LOOP;
917 
918     arp_message.set_name('AR','AR_ROWS_UPDATED');
919     arp_message.set_token('NUM_ROWS',to_char(l_count));
920     IF ( FND_LOG.LEVEL_EVENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
921       FV_UTILITY.MESSAGE(FND_LOG.LEVEL_EVENT, l_module_name);
922     END IF;
923   END IF;
924 EXCEPTION
925   WHEN OTHERS THEN
926     l_errbuf := SQLERRM;
927     FV_UTILITY.LOG_MESG(FND_LOG.LEVEL_ERROR, l_module_name||'.final_exception', l_errbuf);
928     arp_message.set_line( 'FV_IPAC_TRX');
929     IF ( FND_LOG.LEVEL_ERROR >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
930       FV_UTILITY.MESSAGE(FND_LOG.LEVEL_ERROR, l_module_name);
931     END IF;
932     RAISE;
933 END FV_IPAC_TRX;
934 
935 PROCEDURE merge(req_id IN Number,
936                  set_num IN NUMBER,
937                  process_mode IN VARCHAR2) IS
938   l_module_name VARCHAR2(200) := g_module_name || 'merge';
939   l_errbuf      VARCHAR2(1024);
940 
941 BEGIN
942  FV_CUST_FINANCE_CHRGS(req_id, set_num, process_mode);
943  FV_CUST_VEND_XREFS(req_id, set_num, process_mode);
944  FV_INTERAGENCY_FUNDS(req_id, set_num, process_mode);
945  FV_INTERIM_CASH_RECEIPTS(req_id, set_num, process_mode);
946  FV_INVOICE_FINANCE_CHRGS(req_id, set_num, process_mode);
947  FV_IPAC_TRX(req_id, set_num, process_mode);
948 EXCEPTION WHEN OTHERS THEN
949   l_errbuf := SQLERRM;
950   FV_UTILITY.LOG_MESG(FND_LOG.LEVEL_ERROR, l_module_name||'.final_exception', l_errbuf);
951   RAISE;
952 END merge;
953 
954 END fv_cmerge;