DBA Data[Home] [Help]

PACKAGE BODY: APPS.JTF_TASK_CUST_MERGE_PKG

Source


1 PACKAGE BODY JTF_TASK_CUST_MERGE_PKG as
2 /* $Header: jtftkmgb.pls 115.15 2003/02/20 23:03:56 cjang ship $ */
3 --/**==================================================================*
4 --|   Copyright (c) 2001 Oracle Corporation, Redwood Shores, CA, USA   |
5 --|                        All rights reserved.                        |
6 --+====================================================================+
7 -- Package body for JTF_TASK_CUST_MERGE_PKG package
8 --
9 --      Version :  1.0
10 -- Performs an account merge for TASKS module.
11 -------------------------------------------------------------------------------------------
12 --                              History
13 -------------------------------------------------------------------------------------------
14 --      01-FEB-01       tivanov         Created.
15 --      29-OCT-01       tivanov         Added account merge for task's saved search
16 --                                      in jtf_perz_query_param
17 --      29-APR-02       sanjeev choudhary       Changed the update calls for bug  2288291
18 --                                              Customer merge issue
19 --      13-AUG-02       chanik jang     Added statments to log the change information
20 --                                         for the bug 2465855
21 --      12-FEB-03       Chanik Jang     1) Customer Account Merge allows to merge account
22 --                                         only in the same party
23 --                                      2) If you want to merge between different parties,
24 --                                         submit party merge first.
25 --                                      3) The lock mode is not implemented
26 --                                      4) For performance, the codes generated the perl script
27 --                                          is used. Refer http://www-apps.us.oracle.com/~csng/AMInstructions.html
28 --      19-FEB-03       Chanik Jang     Added LIMIT g_rows_fetched in BULK COLLECT clause
29 --      20-FEB-03       Chanik Jang     Modified merge_perz() to update account_number as char
30 --                                      Modified each procedures to update primary_key_id instead of primary_key_id1
31 ---------------------------------------------------------------------------------
32 -- End of comments
33 
34     TYPE AccountNumberList IS TABLE OF VARCHAR2(30) INDEX BY BINARY_INTEGER;
35     g_acctnum_list AccountNumberList;
36 
37     g_profile_val VARCHAR2(30);
38     g_rows_fetched NUMBER := 1000;
39 
40     -- Load the new account number corresponding to the duplicate account
41     PROCEDURE load_acct_number_set (
42       p_set_num    IN NUMBER,
43       p_request_id IN NUMBER)
44     IS
45     BEGIN
46       g_acctnum_list.DELETE;
47 
48       FOR CUST IN (SELECT distinct m.customer_id, acct.account_number
49                      FROM ra_customer_merges m
50                         , hz_cust_accounts acct
51                     WHERE m.set_number = p_set_num
52                       AND m.request_id = p_request_id
53                       AND m.process_flag = 'N'
54                       AND acct.cust_account_id = m.customer_id
55                   )
56       LOOP
57 
58          g_acctnum_list(CUST.customer_id) := CUST.account_number;
59 
60       END LOOP;
61 
62     END;
63 
64     FUNCTION GETDUP_ACCOUNT_NUMBER (p_acct_id IN VARCHAR2)
65     RETURN VARCHAR2
66     IS
67     BEGIN
68       IF p_acct_id IS NULL THEN
69         RETURN p_acct_id;
70       END IF;
71 
72       RETURN g_acctnum_list(p_acct_id);
73     EXCEPTION
74       WHEN NO_DATA_FOUND THEN
75         RETURN p_acct_id;
76     END;
77 
78     ----------------------------------------------------------------------
79     -- merge_tasks(): merge cust_account_id in jtf_tasks_b table.
80     ----------------------------------------------------------------------
81     PROCEDURE merge_tasks (
82             p_request_id   IN NUMBER,
83             p_set_number   IN NUMBER,
84             p_process_mode IN VARCHAR2
85     )
86     IS
87       TYPE MERGE_HEADER_ID_LIST_TYPE IS TABLE OF
88            RA_CUSTOMER_MERGE_HEADERS.CUSTOMER_MERGE_HEADER_ID%TYPE
89            INDEX BY BINARY_INTEGER;
90       MERGE_HEADER_ID_LIST MERGE_HEADER_ID_LIST_TYPE;
91 
92       TYPE task_id_LIST_TYPE IS TABLE OF
93              JTF_TASKS_B.task_id%TYPE
94             INDEX BY BINARY_INTEGER;
95       PRIMARY_KEY_ID_LIST task_id_LIST_TYPE;
96 
97       TYPE cust_account_id_LIST_TYPE IS TABLE OF
98              JTF_TASKS_B.cust_account_id%TYPE
99             INDEX BY BINARY_INTEGER;
100       NUM_COL1_ORIG_LIST cust_account_id_LIST_TYPE;
101       NUM_COL1_NEW_LIST cust_account_id_LIST_TYPE;
102 
103       CURSOR merged_records IS
104             SELECT distinct CUSTOMER_MERGE_HEADER_ID
105                   ,task_id
106                   ,cust_account_id
107              FROM JTF_TASKS_B yt, ra_customer_merges m
108              WHERE (
109                 yt.cust_account_id = m.DUPLICATE_ID
110              ) AND    m.process_flag = 'N'
111              AND    m.request_id = p_request_id
112              AND    m.set_number = p_set_number;
113       l_last_fetch BOOLEAN := FALSE;
114       l_count NUMBER := 0;
115     BEGIN
116       IF p_process_mode='LOCK' THEN
117         NULL;
118       ELSE
119         ARP_MESSAGE.SET_NAME('AR','AR_UPDATING_TABLE');
120         ARP_MESSAGE.SET_TOKEN('TABLE_NAME','JTF_TASKS_B',FALSE);
121 
122         HZ_ACCT_MERGE_UTIL.load_set(p_set_number, p_request_id);
123 
124         open merged_records;
125         LOOP
126           FETCH merged_records BULK COLLECT INTO
127                 MERGE_HEADER_ID_LIST
128               , PRIMARY_KEY_ID_LIST
129               , NUM_COL1_ORIG_LIST
130           LIMIT g_rows_fetched;
131 
132           IF merged_records%NOTFOUND THEN
133              l_last_fetch := TRUE;
134           END IF;
135 
136           IF MERGE_HEADER_ID_LIST.COUNT = 0 and l_last_fetch then
137             exit;
138           END IF;
139 
140           FOR I in 1..MERGE_HEADER_ID_LIST.COUNT LOOP
141              NUM_COL1_NEW_LIST(I) := HZ_ACCT_MERGE_UTIL.GETDUP_ACCOUNT(NUM_COL1_ORIG_LIST(I));
142           END LOOP;
143 
144           IF g_profile_val IS NOT NULL AND g_profile_val = 'Y' THEN
145 
146             FORALL I in 1..MERGE_HEADER_ID_LIST.COUNT
147              INSERT INTO HZ_CUSTOMER_MERGE_LOG (
148                MERGE_LOG_ID,
149                TABLE_NAME,
150                MERGE_HEADER_ID,
151                PRIMARY_KEY_ID,
152                NUM_COL1_ORIG,
153                NUM_COL1_NEW,
154                ACTION_FLAG,
155                REQUEST_ID,
156                CREATED_BY,
157                CREATION_DATE,
158                LAST_UPDATE_LOGIN,
159                LAST_UPDATE_DATE,
160                LAST_UPDATED_BY
161           ) VALUES (
162              HZ_CUSTOMER_MERGE_LOG_s.nextval,
163              'JTF_TASKS_B',
164              MERGE_HEADER_ID_LIST(I),
165              PRIMARY_KEY_ID_LIST(I),
166              NUM_COL1_ORIG_LIST(I),
167              NUM_COL1_NEW_LIST(I),
168              'U',
169              p_request_id,
170              hz_utility_pub.CREATED_BY,
171              hz_utility_pub.CREATION_DATE,
172              hz_utility_pub.LAST_UPDATE_LOGIN,
173              hz_utility_pub.LAST_UPDATE_DATE,
174              hz_utility_pub.LAST_UPDATED_BY
175           );
176 
177         END IF;
178 
179         FORALL I in 1..MERGE_HEADER_ID_LIST.COUNT
180           UPDATE JTF_TASKS_B yt SET
181                 cust_account_id=NUM_COL1_NEW_LIST(I)
182               , LAST_UPDATE_DATE=SYSDATE
183               , last_updated_by=arp_standard.profile.user_id
184               , last_update_login=arp_standard.profile.last_update_login
185           WHERE task_id=PRIMARY_KEY_ID_LIST(I);
186 
187           l_count := l_count + SQL%ROWCOUNT;
188           IF l_last_fetch THEN
189              EXIT;
190           END IF;
191         END LOOP;
192 
193         arp_message.set_name('AR','AR_ROWS_UPDATED');
194         arp_message.set_token('NUM_ROWS',to_char(l_count));
195       END IF;
196     EXCEPTION
197       WHEN OTHERS THEN
198         arp_message.set_line( 'merge_tasks');
199         RAISE;
200     END merge_tasks;
201 
202     ----------------------------------------------------------------------
203     -- merge_audits(): merge old_cust_account_id, new_cust_account_id
204     --   in jtf_task_audits_b table.
205     ----------------------------------------------------------------------
206     PROCEDURE merge_audits (
207             p_request_id      IN NUMBER,
208             p_set_number      IN NUMBER,
209             p_process_mode    IN VARCHAR2)
210     IS
211 
212       TYPE MERGE_HEADER_ID_LIST_TYPE IS TABLE OF
213            RA_CUSTOMER_MERGE_HEADERS.CUSTOMER_MERGE_HEADER_ID%TYPE
214            INDEX BY BINARY_INTEGER;
215       MERGE_HEADER_ID_LIST MERGE_HEADER_ID_LIST_TYPE;
216 
217       TYPE task_audit_id_LIST_TYPE IS TABLE OF
218              JTF_TASK_AUDITS_B.task_audit_id%TYPE
219             INDEX BY BINARY_INTEGER;
220       PRIMARY_KEY_ID_LIST task_audit_id_LIST_TYPE;
221 
222       TYPE old_cust_account_id_LIST_TYPE IS TABLE OF
223              JTF_TASK_AUDITS_B.old_cust_account_id%TYPE
224             INDEX BY BINARY_INTEGER;
225       NUM_COL1_ORIG_LIST old_cust_account_id_LIST_TYPE;
226       NUM_COL1_NEW_LIST old_cust_account_id_LIST_TYPE;
227 
228       TYPE new_cust_account_id_LIST_TYPE IS TABLE OF
229              JTF_TASK_AUDITS_B.new_cust_account_id%TYPE
230             INDEX BY BINARY_INTEGER;
231       NUM_COL2_ORIG_LIST new_cust_account_id_LIST_TYPE;
232       NUM_COL2_NEW_LIST new_cust_account_id_LIST_TYPE;
233 
234       CURSOR merged_records IS
235             SELECT distinct CUSTOMER_MERGE_HEADER_ID
236                   ,task_audit_id
237                   ,old_cust_account_id
238                   ,new_cust_account_id
239              FROM JTF_TASK_AUDITS_B yt, ra_customer_merges m
240              WHERE (
241                 yt.old_cust_account_id = m.DUPLICATE_ID
242                 OR yt.new_cust_account_id = m.DUPLICATE_ID
243              ) AND    m.process_flag = 'N'
244              AND    m.request_id = p_request_id
245              AND    m.set_number = p_set_number;
246       l_last_fetch BOOLEAN := FALSE;
247       l_count NUMBER := 0;
248     BEGIN
249       IF p_process_mode='LOCK' THEN
250         NULL;
251       ELSE
252         ARP_MESSAGE.SET_NAME('AR','AR_UPDATING_TABLE');
253         ARP_MESSAGE.SET_TOKEN('TABLE_NAME','JTF_TASK_AUDITS_B',FALSE);
254 
255         HZ_ACCT_MERGE_UTIL.load_set(p_set_number, p_request_id);
256 
257         open merged_records;
258         LOOP
259           FETCH merged_records BULK COLLECT INTO
260              MERGE_HEADER_ID_LIST
261               , PRIMARY_KEY_ID_LIST
262               , NUM_COL1_ORIG_LIST
263               , NUM_COL2_ORIG_LIST
264           LIMIT g_rows_fetched;
265 
266           IF merged_records%NOTFOUND THEN
267              l_last_fetch := TRUE;
268           END IF;
269 
270           IF MERGE_HEADER_ID_LIST.COUNT = 0 and l_last_fetch then
271             exit;
272           END IF;
273 
274           FOR I in 1..MERGE_HEADER_ID_LIST.COUNT LOOP
275              NUM_COL1_NEW_LIST(I) := HZ_ACCT_MERGE_UTIL.GETDUP_ACCOUNT(NUM_COL1_ORIG_LIST(I));
276              NUM_COL2_NEW_LIST(I) := HZ_ACCT_MERGE_UTIL.GETDUP_ACCOUNT(NUM_COL2_ORIG_LIST(I));
277           END LOOP;
278 
279           IF g_profile_val IS NOT NULL AND g_profile_val = 'Y' THEN
280 
281             FORALL I in 1..MERGE_HEADER_ID_LIST.COUNT
282              INSERT INTO HZ_CUSTOMER_MERGE_LOG (
283                MERGE_LOG_ID,
284                TABLE_NAME,
285                MERGE_HEADER_ID,
286                PRIMARY_KEY_ID,
287                NUM_COL1_ORIG,
288                NUM_COL1_NEW,
289                NUM_COL2_ORIG,
290                NUM_COL2_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 (
299              HZ_CUSTOMER_MERGE_LOG_s.nextval,
300              'JTF_TASK_AUDITS_B',
301              MERGE_HEADER_ID_LIST(I),
302              PRIMARY_KEY_ID_LIST(I),
303              NUM_COL1_ORIG_LIST(I),
304              NUM_COL1_NEW_LIST(I),
305              NUM_COL2_ORIG_LIST(I),
306              NUM_COL2_NEW_LIST(I),
307              'U',
308              p_request_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;
317 
318         FORALL I in 1..MERGE_HEADER_ID_LIST.COUNT
319           UPDATE JTF_TASK_AUDITS_B yt SET
320                 old_cust_account_id=NUM_COL1_NEW_LIST(I)
321               , new_cust_account_id=NUM_COL2_NEW_LIST(I)
322               , LAST_UPDATE_DATE=SYSDATE
323               , last_updated_by=arp_standard.profile.user_id
324               , last_update_login=arp_standard.profile.last_update_login
325           WHERE task_audit_id=PRIMARY_KEY_ID_LIST(I)
326              ;
327           l_count := l_count + SQL%ROWCOUNT;
328           IF l_last_fetch THEN
329              EXIT;
330           END IF;
331         END LOOP;
332 
333         arp_message.set_name('AR','AR_ROWS_UPDATED');
334         arp_message.set_token('NUM_ROWS',to_char(l_count));
335       END IF;
336     EXCEPTION
337       WHEN OTHERS THEN
338         arp_message.set_line( 'merge_audits');
339         RAISE;
340     END merge_audits;
341 
342     ----------------------------------------------------------------------
343     -- merge_perz(): merge parameter_value in jtf_perz_query_param table.
344     ----------------------------------------------------------------------
345     PROCEDURE merge_perz (
346             p_request_id     IN NUMBER,
347             p_set_number     IN NUMBER,
348             p_process_mode   IN VARCHAR2)
349     IS
350 
351       TYPE MERGE_HEADER_ID_LIST_TYPE IS TABLE OF
352            RA_CUSTOMER_MERGE_HEADERS.CUSTOMER_MERGE_HEADER_ID%TYPE
353            INDEX BY BINARY_INTEGER;
354       MERGE_HEADER_ID_LIST MERGE_HEADER_ID_LIST_TYPE;
355 
356       TYPE QUERY_PARAM_ID_LIST_TYPE IS TABLE OF
357              JTF_PERZ_QUERY_PARAM.QUERY_PARAM_ID%TYPE
358             INDEX BY BINARY_INTEGER;
359       PRIMARY_KEY_ID1_LIST QUERY_PARAM_ID_LIST_TYPE;
360       PRIMARY_KEY_ID2_LIST QUERY_PARAM_ID_LIST_TYPE;
361 
362       TYPE PARAMETER_VALUE_LIST_TYPE IS TABLE OF
363              JTF_PERZ_QUERY_PARAM.PARAMETER_VALUE%TYPE
364             INDEX BY BINARY_INTEGER;
365       VCHAR_COL1_ORIG_LIST PARAMETER_VALUE_LIST_TYPE;
366       VCHAR_COL1_NEW_LIST PARAMETER_VALUE_LIST_TYPE;
367       VCHAR_CN_ORIG_LIST PARAMETER_VALUE_LIST_TYPE;
368       VCHAR_CN_NEW_LIST PARAMETER_VALUE_LIST_TYPE;
369 
370       CURSOR merged_records IS
371             SELECT distinct CUSTOMER_MERGE_HEADER_ID
372                   ,yt.QUERY_PARAM_ID
373                   ,yt.PARAMETER_VALUE
374                   ,cn.QUERY_PARAM_ID
375                   ,cn.PARAMETER_VALUE
376              FROM JTF_PERZ_QUERY_PARAM yt
377                 , JTF_PERZ_QUERY_PARAM cn
378                 , ra_customer_merges m
379              WHERE yt.PARAMETER_VALUE = to_char(m.DUPLICATE_ID)
380              AND m.process_flag = 'N'
381              AND m.request_id = p_request_id
382              AND m.set_number = p_set_number
383              AND cn.query_id = yt.query_id
384              AND cn.parameter_name = 'CUSTOMER_NAME'
385              AND yt.parameter_name = 'CUSTOMER_ID'
386              AND yt.query_id IN (SELECT q.query_id
387                                    FROM jtf_perz_query q,
391                                     AND p.query_id = q.query_id
388                                         jtf_perz_query_param p
389                                   WHERE q.query_type= 'JTF_TASK'
390                                     AND q.application_id = 690
392                                     AND p.parameter_name = 'CUSTOMER'
393                                     AND p.parameter_value = 'ACCOUNT');
394       l_last_fetch BOOLEAN := FALSE;
395       l_count NUMBER := 0;
396     BEGIN
397       IF p_process_mode='LOCK' THEN
398         NULL;
399       ELSE
400         ARP_MESSAGE.SET_NAME('AR','AR_UPDATING_TABLE');
401         ARP_MESSAGE.SET_TOKEN('TABLE_NAME','JTF_PERZ_QUERY_PARAM',FALSE);
402 
403         HZ_ACCT_MERGE_UTIL.load_set(p_set_number, p_request_id);
404         load_acct_number_set(p_set_number, p_request_id);
405 
406         open merged_records;
407         LOOP
408           FETCH merged_records BULK COLLECT INTO
409              MERGE_HEADER_ID_LIST
410               , PRIMARY_KEY_ID1_LIST
411               , VCHAR_COL1_ORIG_LIST
412               , PRIMARY_KEY_ID2_LIST
413               , VCHAR_CN_ORIG_LIST
414           LIMIT g_rows_fetched;
415 
416           IF merged_records%NOTFOUND THEN
417              l_last_fetch := TRUE;
418           END IF;
419 
420           IF MERGE_HEADER_ID_LIST.COUNT = 0 and l_last_fetch then
421             exit;
422           END IF;
423 
424           FOR I in 1..MERGE_HEADER_ID_LIST.COUNT LOOP
425              VCHAR_COL1_NEW_LIST(I) := HZ_ACCT_MERGE_UTIL.GETDUP_ACCOUNT(VCHAR_COL1_ORIG_LIST(I));
426              VCHAR_CN_NEW_LIST(I)   := GETDUP_ACCOUNT_NUMBER(VCHAR_COL1_NEW_LIST(I));
427           END LOOP;
428 
429           IF g_profile_val IS NOT NULL AND g_profile_val = 'Y' THEN
430             FORALL I in 1..MERGE_HEADER_ID_LIST.COUNT
431                  -- Log account id
432                  INSERT INTO HZ_CUSTOMER_MERGE_LOG (
433                    MERGE_LOG_ID,
434                    TABLE_NAME,
435                    MERGE_HEADER_ID,
436                    PRIMARY_KEY_ID,
437                    VCHAR_COL1_ORIG,
438                    VCHAR_COL1_NEW,
439                    ACTION_FLAG,
440                    REQUEST_ID,
441                    CREATED_BY,
442                    CREATION_DATE,
443                    LAST_UPDATE_LOGIN,
444                    LAST_UPDATE_DATE,
445                    LAST_UPDATED_BY
446                  ) VALUES (
447                  HZ_CUSTOMER_MERGE_LOG_s.nextval,
448                  'JTF_PERZ_QUERY_PARAM',
449                  MERGE_HEADER_ID_LIST(I),
450                  PRIMARY_KEY_ID1_LIST(I),
451                  VCHAR_COL1_ORIG_LIST(I),
452                  VCHAR_COL1_NEW_LIST(I),
453                  'U',
454                  p_request_id,
455                  hz_utility_pub.CREATED_BY,
456                  hz_utility_pub.CREATION_DATE,
457                  hz_utility_pub.LAST_UPDATE_LOGIN,
458                  hz_utility_pub.LAST_UPDATE_DATE,
459                  hz_utility_pub.LAST_UPDATED_BY
460                  );
461 
462             FORALL I in 1..MERGE_HEADER_ID_LIST.COUNT
463                  -- Log account number
464                  INSERT INTO HZ_CUSTOMER_MERGE_LOG (
465                    MERGE_LOG_ID,
466                    TABLE_NAME,
467                    MERGE_HEADER_ID,
468                    PRIMARY_KEY_ID,
469                    VCHAR_COL1_ORIG,
470                    VCHAR_COL1_NEW,
471                    ACTION_FLAG,
472                    REQUEST_ID,
473                    CREATED_BY,
474                    CREATION_DATE,
475                    LAST_UPDATE_LOGIN,
476                    LAST_UPDATE_DATE,
477                    LAST_UPDATED_BY
478                  ) VALUES (
479                  HZ_CUSTOMER_MERGE_LOG_s.nextval,
480                  'JTF_PERZ_QUERY_PARAM',
481                  MERGE_HEADER_ID_LIST(I),
482                  PRIMARY_KEY_ID2_LIST(I),
483                  VCHAR_CN_ORIG_LIST(I),
484                  VCHAR_CN_NEW_LIST(I),
485                  'U',
486                  p_request_id,
487                  hz_utility_pub.CREATED_BY,
488                  hz_utility_pub.CREATION_DATE,
489                  hz_utility_pub.LAST_UPDATE_LOGIN,
490                  hz_utility_pub.LAST_UPDATE_DATE,
491                  hz_utility_pub.LAST_UPDATED_BY
492                  );
493         END IF;
494 
495         FORALL I in 1..MERGE_HEADER_ID_LIST.COUNT
496             -- Update account id
497             UPDATE JTF_PERZ_QUERY_PARAM yt SET
498                   PARAMETER_VALUE=VCHAR_COL1_NEW_LIST(I)
499                 , LAST_UPDATE_DATE=SYSDATE
500                 , last_updated_by=arp_standard.profile.user_id
501                 , last_update_login=arp_standard.profile.last_update_login
502             WHERE QUERY_PARAM_ID=PRIMARY_KEY_ID1_LIST(I);
503             l_count := l_count + SQL%ROWCOUNT;
504 
505         FORALL I in 1..MERGE_HEADER_ID_LIST.COUNT
506             -- Update account number
507             UPDATE JTF_PERZ_QUERY_PARAM yt SET
508                   PARAMETER_VALUE=VCHAR_CN_NEW_LIST(I)
509                 , LAST_UPDATE_DATE=SYSDATE
510                 , last_updated_by=arp_standard.profile.user_id
511                 , last_update_login=arp_standard.profile.last_update_login
512             WHERE QUERY_PARAM_ID=PRIMARY_KEY_ID2_LIST(I);
513             l_count := l_count + SQL%ROWCOUNT;
514 
515             IF l_last_fetch THEN
516                EXIT;
517             END IF;
518 
519         END LOOP;
520 
521         arp_message.set_name('AR','AR_ROWS_UPDATED');
522         arp_message.set_token('NUM_ROWS',to_char(l_count));
523       END IF;
524     EXCEPTION
525       WHEN OTHERS THEN
526         arp_message.set_line( 'merge_perz');
527         RAISE;
528     END merge_perz;
529 
530     PROCEDURE Task_Account_Merge(
531                     p_request_id     IN NUMBER,
532                     p_set_number  IN NUMBER,
533                     p_process_mode   IN VARCHAR2) Is
534 
535     BEGIN
536         arp_message.set_line('CRM_MERGE.JTF_TASK_CUST_MERGE_PKG()+');
537 
538         g_profile_val := FND_PROFILE.VALUE('HZ_AUDIT_ACCT_MERGE');
539 
540         merge_tasks (p_request_id   => p_request_id,
541                      p_set_number   => p_set_number,
542                      p_process_mode => p_process_mode);
543 
544         merge_audits(p_request_id   => p_request_id,
545                      p_set_number   => p_set_number,
546                      p_process_mode => p_process_mode);
547 
548         merge_perz  (p_request_id   => p_request_id,
549                      p_set_number   => p_set_number,
550                      p_process_mode => p_process_mode);
551     EXCEPTION
552         WHEN OTHERS THEN
553             arp_message.set_error (SQLCODE || SQLERRM);
554             arp_message.set_error ('CRM_MERGE.JTF_TASK_CUST_MERGE_PKG()');
555             RAISE;
556     END Task_Account_Merge;
557 
558 END JTF_TASK_CUST_MERGE_PKG;