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