DBA Data[Home] [Help]

PACKAGE BODY: APPS.IEX_ATA_PUB

Source


1 PACKAGE BODY IEX_ATA_PUB  as
2 /* $Header: iextpinb.pls 120.16 2006/08/29 14:26:24 gnramasa noship $ */
3 PROCEDURE Set_Up(
4     px_acct_qual_tbl         IN OUT NOCOPY QUAL_LIST_TBL_TYPE);
5 
6 PROCEDURE Concurrent_Profile_Options;
7 
8 PROCEDURE Prepare_Parallel_Processing(
9     P_Request_Id                 NUMBER,
10     P_Prev_Request_Id            NUMBER,
11     P_Run_Mode                   VARCHAR2,
12     P_AccountCount               NUMBER,
13     P_MinNumParallelProc         NUMBER,
14     P_NumChildAccountWorker      NUMBER,
15     X_ActualAccountWorkersUsed   OUT NOCOPY NUMBER);
16 
17 
18 /*-------------------------------------------------------------------------*
19  |
20  |                             PUBLIC ROUTINES
21  |
22  *-------------------------------------------------------------------------*/
23 
24 
25 /*-------------------------------------------------------------------------*
26  | PRIVATE ROUTINE
27  |  Assign_Territory_Accesses
28  |
29  | PURPOSE
30  |
31  |
32  *-------------------------------------------------------------------------*/
33 
34 PROCEDURE Assign_Territory_Accesses(
35     ERRBUF                OUT NOCOPY VARCHAR2,
36     RETCODE               OUT NOCOPY VARCHAR2,
37     P_ORG_ID              IN NUMBER
38    )
39    --Bug5043777 Removed the parameters which is no longer in use.
40 IS
41     p_debug_mode            VARCHAR2(240);
42     p_trace_mode          VARCHAR2(240);
43     p_prev_request_id      NUMBER(24);
44     p_ext_param1          VARCHAR2(240);
45     p_ext_param2           VARCHAR2(240);
46     p_ext_param3          VARCHAR2(240);
47 
48     p_trans_type_acc  CONSTANT VARCHAR2(30) := 'ACCOUNT';
49 
50     -- account qualifiers array of structure
51     l_acct_qual_tbl             QUAL_LIST_TBL_TYPE;
52     l_req_id	                NUMBER;
53     l_msg	                VARCHAR2(2000);
54     l_number	                NUMBER := 1;
55     l_status                    BOOLEAN;
56     p_ActualAccountWorkersUsed  NUMBER :=0;
57     l_call_pre_uhk              BOOLEAN;
58     l_call_post_uhk             BOOLEAN;
59     l_msg_count                 NUMBER;
60     l_msg_data                  VARCHAR2(2000);
61     l_acc_count                 NUMBER := 0;
62     l_return_status             VARCHAR2(30);
63     lX_Msg_Count                NUMBER;
64     lX_Msg_Data                 VARCHAR2(32767);
65     lx_retcode                  VARCHAR2(100);
66     lx_errbuf                   VARCHAR2(32767);
67     l_temp                      VARCHAR2(3000);
68 
69     --l_terr_globals   AS_TERR_WINNERS_PUB.TERR_GLOBALS;
70     l_errbuf                    VARCHAR2(4000);
71     l_retcode                   VARCHAR2(255);
72     l_target_type               VARCHAR2(50);
73 
74     l_percent_analysed          NUMBER(15);
75 
76     l_debug                     NUMBER(15);
77     l_AssignLevel               VARCHAR2(20);  -- Added by gnramasa on 29/08/2006 for bug # 5487449
78 BEGIN
79     --Bug5043777 Removed the parameters which is no longer in use. Fix By LKKUMAR. Start.
80     MO_GLOBAL.INIT('IEX');
81 
82     IF (P_ORG_ID) IS NULL THEN
83      MO_GLOBAL.SET_POLICY_CONTEXT('M',NULL);
84     ELSE
85      MO_GLOBAL.SET_POLICY_CONTEXT('S',P_ORG_ID);
86     END IF;
87 
88     l_debug := NVL(FND_PROFILE.value('IEX_DEBUG_LEVEL'),20);
89     FND_FILE.put_line(fnd_file.log,'Value of Profile IEX: Debug Level is : ' || l_debug);
90     FND_FILE.put_line(fnd_file.log,'Operating Unit is : ' || MO_GLOBAL.GET_CURRENT_ORG_ID );
91     --Start changes by gnramasa on 29/08/2006 for bug # 5487449
92     l_Assignlevel:= NVL(FND_PROFILE.VALUE('IEX_ACCESS_LEVEL'),'PARTY');
93     FND_FILE.PUT_LINE(FND_FILE.LOG,'Territory Assignment Level, IEX: Territory Access Level (IEX_ACCESS_LEVEL) := ' ||l_Assignlevel);
94 
95     IF (l_debug <10) THEN
96       P_debug_mode := 'Y';
97       FND_FILE.PUT_LINE(FND_FILE.LOG,'Debug trace is Enabled , IEX: Debug Level (IEX_DEBUG_LEVEL) :' || l_debug);
98     ELSE
99       P_debug_mode := 'N';
100       FND_FILE.PUT_LINE(FND_FILE.LOG,'Debug trace is not Enabled , IEX: Debug Level (IEX_DEBUG_LEVEL) < 10, Current value :' || l_debug);
101     END IF;
102 
103     IF (l_debug =1) THEN
104       P_trace_mode := 'Y';
105     ELSE
106       P_trace_mode := 'N';
107     END IF;
108 
109     G_debug_flag := P_debug_mode;
110     G_trace_mode := P_trace_mode;
111 
112     IF p_trace_mode = 'Y' THEN
113         l_temp := 'alter session set events = ''10046 trace name context forever, level 8'' ';
114         EXECUTE IMMEDIATE l_temp;
115 	FND_FILE.PUT_LINE(FND_FILE.LOG,'SQL Trace is Enabled , IEX: Debug Level (IEX_DEBUG_LEVEL) = 1');
116     ELSE
117         FND_FILE.PUT_LINE(FND_FILE.LOG,'SQL Trace is not Enabled , IEX: Debug Level (IEX_DEBUG_LEVEL) <> 1');
118     END IF;
119    --End changes by gnramasa on 29/08/2006 for bug # 5487449
120    --Bug5043777 Removed the parameters which is no longer in use. Fix By LKKUMAR. End.
121 
122     iex_ata_pub.g_debug_flag := p_debug_mode;
123 
124     IEX_DEBUG('Program iextpinb.pls : *** IEXTATA starts ***');
125 
126     l_call_pre_uhk := JTF_USR_HKS.Ok_to_execute('IEX_ATA_PUB',
127                                                 'Assign_Territory_Accesses',
128                                                 'B','C');
129     IF l_call_pre_uhk THEN
130         IEX_DEBUG('Call pre user hook is true');
131         AS_ATA_UHK.ATA_Pre (
132             p_api_version_number    =>  2.0,
133             p_init_msg_list         =>  FND_API.G_FALSE,
134             p_validation_level      =>  FND_API.G_VALID_LEVEL_FULL,
135             p_commit                =>  FND_API.G_FALSE,
136             p_param1                =>  p_ext_param1,
137             p_param2                =>  p_ext_param2,
138             p_param3                =>  p_ext_param3,
139             x_return_status         =>  l_return_status,
140             x_msg_count             =>  l_msg_count,
141             x_msg_data              =>  l_msg_data);
142     END IF;
143 
144     -- call SetUp() to verify parameters and set global variables and arrays
145     Set_Up(l_acct_qual_tbl);
146 
147 
148 
149     g_request_id      := TO_NUMBER(fnd_profile.value('CONC_REQUEST_ID'));
150     g_debug_flag      := p_debug_mode;
151     g_run_mode        := 'TOTAL'; --Bug5043777
152     g_prev_request_id := p_prev_request_id;
153 
154 
155     Set_Area_Sizes;
156     COMMIT;
157 /*
158     IF g_run_mode = G_TOTAL_MODE THEN
159 	IEX_DEBUG('Calling IEX_ATA_TOTAL.Load_All');
160         IEX_ATA_TOTAL.Load_All(
161             g_user_id, g_last_update_login, g_prog_appl_id, g_prog_id,
162             g_request_id, g_num_rollup_days, g_conversion_type);
163     END IF;
164 */
165     l_call_post_uhk := JTF_USR_HKS.Ok_to_execute('IEX_ATA_PUB',
166                                                  'Assign_Territory_Accesses',
167                                                  'A','C');
168 
169     IF l_call_post_uhk THEN
170         IEX_DEBUG('Call post user hook is true');
171 
172         AS_ATA_UHK.ATA_Post (
173             p_api_version_number    =>  2.0,
174             p_init_msg_list         =>  FND_API.G_FALSE,
175             p_validation_level      =>  FND_API.G_VALID_LEVEL_FULL,
176             p_commit                =>  FND_API.G_FALSE,
177             p_param1                =>  p_ext_param1,
178             p_param2                =>  p_ext_param2,
179             p_param3                =>  p_ext_param3,
180             p_request_id            =>  g_request_id,
181             x_return_status         =>  l_return_status,
182             x_msg_count             =>  l_msg_count,
183             x_msg_data              =>  l_msg_data);
184 
185         IEX_DEBUG('user hook return: ' || l_return_status);
186     END IF;
187 
188     g_min_num_parallel_proc:=nvl(TO_NUMBER(fnd_profile.value('IEX_TERR_MIN_NUM_PARALLEL_PROC')),1);
189     IEX_DEBUG('Min records for Parallel Processing (IEX_TERR_MIN_NUM_PARALLEL_PROC)=' || g_min_num_parallel_proc);
190 
191     g_NumChildAccountWorker:=nvl(TO_NUMBER(fnd_profile.value('IEX_TAP_NUM_CHILD_ACCOUNT_WORKERS')),1);
192     if g_NumChildAccountWorker < 1  then
193        g_NumChildAccountWorker:=1;
194     elsif g_NumChildAccountWorker > 10  then
195        g_NumChildAccountWorker:=10;
196        IEX_DEBUG('Max no. of Parallel Account Workers allowed is:' || g_NumChildAccountWorker);
197     end if;
198     IEX_DEBUG('Max Parallel Account Workers (IEX_TAP_NUM_CHILD_ACCOUNT_WORKERS)=' || g_NumChildAccountWorker);
199 
200     l_percent_analysed :=nvl(TO_NUMBER(fnd_profile.value('IEX_TAP_PERCENT_ANALYSED')),20);
201 
202 
203     l_target_type := 'TOTAL';
204 
205      BEGIN
206       IEX_DEBUG('Starting JTY_ASSIGN_BULK_PUB.collect_trans_data...');
207       JTY_ASSIGN_BULK_PUB.collect_trans_data(
208        p_api_version_number    => 1.0,
209        p_init_msg_list         => FND_API.G_FALSE,
210        p_source_id             => -1600,
211        p_trans_id              => -1601,
212        p_program_name          => 'COLLECTIONS/CUSTOMER PROGRAM',
213        p_mode                  => l_target_type,
214        p_where                 => null,
215        p_no_of_workers         => g_NumChildAccountWorker,
216        p_percent_analyzed      => l_percent_analysed,
217        p_request_id            => g_request_id,
218        x_return_status         => l_return_status,
219        x_msg_count             => lx_msg_count,
220        x_msg_data              => lx_msg_data,
221        ERRBUF                  => lx_errbuf,
222        RETCODE                 => lx_retcode);
223        IEX_DEBUG('Completed JTY_ASSIGN_BULK_PUB.collect_trans_data with status  ' || l_return_status);
224        IEX_DEBUG('Message from JTY_ASSIGN_BULK_PUB.collect_trans_data ' ||lx_msg_data);
225       EXCEPTION WHEN OTHERS THEN
226        IEX_DEBUG('Error occured JTY_ASSIGN_BULK_PUB.collect_trans_data' ||SQLERRM);
227        IEX_DEBUG('Error buffer ' || lx_errbuf);
228       END;
229 
230 
231        SELECT count(*) INTO  l_acc_count FROM jtf_tae_1600_cust_trans;
232        IEX_DEBUG('Number of records in jtf_tae_1600_cust_trans : ' || l_acc_count );
233 
234      IEX_DEBUG('Analyse values and Prepare Parallel Processing ...' );
235      -- populate worker_id in TRANS or NM_TRANS tables
236       Prepare_Parallel_Processing(
237        P_Request_Id                => g_request_id,
238        P_Prev_Request_Id           => g_prev_request_id,
239        P_Run_Mode                  => g_run_mode,
240        P_AccountCount              => l_acc_count,
241        P_MinNumParallelProc        => g_min_num_parallel_proc,
242        P_NumChildAccountWorker     => g_NumChildAccountWorker,
243        X_ActualAccountWorkersUsed  => p_ActualAccountWorkersUsed);
244      IEX_DEBUG('Parallel Processing values analysed successfully...');
245 
246      IF (p_ActualAccountWorkersUsed = 0) THEN
247        IEX_DEBUG('No Records in JTF Trans Table, Do the Setup and then run this program');
248      END IF;
249 
250 
251      -- submit concurrent request IEXGAR for ACCOUNT
252      FOR i in 1..p_ActualAccountWorkersUsed
253      LOOP
254      --Bug5043777. Fix By LKKUMAR. Set the Context for Spawn Program. Start.
255      fnd_request.set_org_id(mo_global.get_current_org_id);
256      FND_FILE.put_line(fnd_file.log,'Operating Unit Before Submitting IEXGAR is : ' || mo_global.get_current_org_id  );
257      --Bug5043777. Fix By LKKUMAR. Set the Context for Spawn Program. Start.
258 
259        IEX_DEBUG('Submiting IEXGAR for ACCOUNT');
260        l_req_id := FND_REQUEST.SUBMIT_REQUEST('IEX',
261                 'IEXGAR',
262                 'Generate Access Records Collections',
263                 '',
264                 FALSE,
265                 'TOTAL', --Bug5043777
266             	p_debug_mode,
267                 'N',
268                 p_trans_type_acc,
269                 i, -- worker id
270                 p_ActualAccountWorkersUsed,
271                 g_request_id,
272                 l_number ,
273                 CHR(0));
274 
275 		IF l_req_id = 0 THEN
276         	l_msg:=FND_MESSAGE.GET;
277         	IEX_DEBUG(l_msg);
278     	END IF;
279  	  IEX_DEBUG('Submitted request for ACCOUNT :' || l_req_id|| '  Worker Id:'||i);
280     END LOOP;
281 
282 EXCEPTION
283     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
284         IEX_DEBUG('Cannot Start');
285 
286     WHEN others THEN
287         IEX_DEBUG('Exception: others in Assign_Territory_Accesses');
288         IEX_DEBUG('SQLCODE ' || to_char(SQLCODE) ||
289                  ' SQLERRM ' || substr(SQLERRM, 1, 100));
290 
291         errbuf := SQLERRM;
292         retcode := FND_API.G_RET_STS_UNEXP_ERROR;
293         l_status := FND_CONCURRENT.SET_COMPLETION_STATUS('ERROR', SQLERRM);
294 
295 END Assign_Territory_Accesses;
296 
297 
298 /*-------------------------------------------------------------------------*
299  | PRIVATE ROUTINE
300  |  Set_Up
301  |
302  | PURPOSE
303  |  Set up global variables and arrays
304  |
305  *-------------------------------------------------------------------------*/
306 
307 PROCEDURE Set_Up(
308     px_acct_qual_tbl         IN OUT NOCOPY QUAL_LIST_TBL_TYPE
309 )
310 IS
311     l_profile_value    VARCHAR2(240);
312 BEGIN
313     IEX_DEBUG('Started doing the Set Up');
314 
315     Concurrent_Profile_Options;
316 
317     -- get profile option - AS_MC_MAX_ROLL_DAYS
318     /*
319     l_profile_value := fnd_profile.value('AS_MC_MAX_ROLL_DAYS');
320     IF RTRIM(l_profile_value) IS NULL THEN
321         g_num_rollup_days := 0;
322     ELSE
323         g_num_rollup_days := TO_NUMBER(l_profile_value);
324     END IF;
325 
326     -- get profile option - AS_MC_DAILY_CONVERSION_TYPE
327     g_conversion_type := fnd_profile.value('AS_MC_DAILY_CONVERSION_TYPE');
328     */
329     -- get profile option - number of child process
330     g_num_child_processes :=
331           TO_NUMBER(fnd_profile.value('IEX_TERR_NUM_CHILD_PROCESSES'));
332     IEX_DEBUG('Mininum Child Process ' || g_num_child_processes);
333     -- get profile option - min number for parallel processing
334     g_min_num_parallel_proc :=
335           TO_NUMBER(NVL(fnd_profile.value('IEX_TERR_MIN_NUM_PARALLEL_PROC'), 3));
336     IEX_DEBUG('Minimum Number of Prallel Proc ' || g_min_num_parallel_proc);
337 
338     -- fill in Account Qualifier Array
339     --Bug4654733. Fix by LKKUMAR on 06-Sep-2005. Remove AS dependency. Start
340     /*
341     AS_Tata_Process_Changed_Terr.Load_Acct_Qual_Array;
342     g_num_acct_qual := AS_Tata_Process_Changed_Terr.G_Account_Qualifier_Count; */
343     --Bug4654733. Fix by LKKUMAR on 06-Sep-2005. Remove AS dependency. End.
344 
345 EXCEPTION
346     WHEN others THEN
347         IEX_DEBUG('Exception: others in set_up');
348         IEX_DEBUG('SQLCODE ' || to_char(SQLCODE) ||
349                  ' SQLERRM ' || substr(SQLERRM, 1, 100));
350 
351         RAISE;
352 END Set_Up;
353 
354 
355 /*-------------------------------------------------------------------------*
356  | PRIVATE ROUTINE
357  |  Concurrent_Profile_Options
358  |
359  | PURPOSE
360  |  Get concurrent profile options
361  |
362  *-------------------------------------------------------------------------*/
363 
364 PROCEDURE Concurrent_Profile_Options
365 IS
366     l_temp_seq    NUMBER;
367     l_retvalue    VARCHAR2(20);
368 
369     CURSOR c_get_conseq_cur IS
370         SELECT fnd_concurrent_requests_s.nextval
371         FROM   dual;
372 BEGIN
373 
374 
375     -- get profile option - USER_ID
376     g_user_id := TO_NUMBER(fnd_profile.value('USER_ID'));
377 
378     -- get profile option -- CONC_PROGRAM_APPLICATION_ID
379     g_prog_appl_id := FND_GLOBAL.PROG_APPL_ID;
380 
381     -- get profile option -- CONC_PROGRAM_ID
382     g_prog_id := TO_NUMBER(fnd_profile.value('CONC_PROGRAM_ID'));
383 
384     -- get profile option -- CONC_LOGIN_ID
385     g_last_update_login := TO_NUMBER(fnd_profile.value('CONC_LOGIN_ID'));
386 
387     -- get profile option -- CONC_REQUEST_ID
388     g_request_id := TO_NUMBER(fnd_profile.value('CONC_REQUEST_ID'));
389 
390 
391     -- If g_request_id = 0, select directly from sequence
392     IF g_request_id = 0
393     THEN
394         -- Get concurrent sequence
395         OPEN c_get_conseq_cur;
396         FETCH c_get_conseq_cur INTO l_temp_seq;
397         CLOSE c_get_conseq_cur;
398 
399         g_request_id := l_temp_seq;
400     END IF;
401 EXCEPTION
402     WHEN others THEN
403         IEX_DEBUG('Exception: others in concurrent_profile_options');
404         IEX_DEBUG('SQLCODE ' || to_char(SQLCODE) ||
405                  ' SQLERRM ' || substr(SQLERRM, 1, 100));
406 
407         RAISE;
408 END Concurrent_Profile_Options;
409 
410 /*-------------------------------------------------------------------------*
411  | PUBLIC ROUTINE
412  |  IEX_DEBUG
413  |
414  | PURPOSE
415  |  write debug message
416  *-------------------------------------------------------------------------*/
417 
418 PROCEDURE IEX_DEBUG( msg in VARCHAR2)
419 IS
420     l_length        NUMBER;
421     l_start         NUMBER := 1;
422     l_substring     VARCHAR2(255);
423 
424     l_base          VARCHAR2(12);
425     l_date_str      VARCHAR2(255);
426 
427 BEGIN
428     IF g_debug_flag = 'Y'
429     THEN
430         select to_char( sysdate, 'DD-Mon-YYYY HH24:MI:SS') into l_date_str from dual;
431         FND_FILE.PUT_LINE(FND_FILE.LOG,'---' || l_date_str || '--------------------------');
432 
433         -- chop the message to 255 long
434         l_length := length(msg);
435         WHILE l_length > 255 LOOP
436             l_substring := substr(msg, l_start, 255);
437             FND_FILE.PUT_LINE(FND_FILE.LOG, l_substring);
438             --Bug4221324. Fix by LKKUMAR on 06-Dec-2005. Start.
439             IEX_DEBUG_PUB.logmessage(l_substring);
440             --Bug4221324. Fix by LKKUMAR on 06-Dec-2005. End.
441             -- dbms_output.put_line(l_substring);
442 
443             l_start := l_start + 255;
444             l_length := l_length - 255;
445         END LOOP;
446 
447         l_substring := substr(msg, l_start);
448         FND_FILE.PUT_LINE(FND_FILE.LOG,l_substring);
449        --Bug4221324. Fix by LKKUMAR on 06-Dec-2005. Start.
450         IEX_DEBUG_PUB.logmessage(l_substring);
451         --Bug4221324. Fix by LKKUMAR on 06-Dec-2005. End.
452         -- dbms_output.put_line(l_substring);
453     END IF;
454 EXCEPTION
455     WHEN others THEN
456         FND_FILE.PUT_LINE(FND_FILE.LOG, 'Exception: others in IEX_DEBUG');
457         FND_FILE.PUT_LINE(FND_FILE.LOG,
458                           'SQLCODE ' || to_char(SQLCODE) ||
459                           ' SQLERRM ' || substr(SQLERRM, 1, 100));
460 END IEX_DEBUG;
461 
462 
463 /*-------------------------------------------------------------------------*
464  | PUBLIC ROUTINE
465  |  Set_Area_Sizes
466  |
467  | PURPOSE
468  |  Set profile option values for sort area size and hash area size
469  *-------------------------------------------------------------------------*/
470 
471 PROCEDURE Set_Area_Sizes
472 IS
473     st varchar2(500);
474     sort_size NUMBER := 100000000;
475     hash_size NUMBER := 100000000;
476     s number;
477 
478 BEGIN
479     -- Alter session to set sort area size and hash area size
480     sort_size := fnd_profile.value('IEX_SORT_AREA_SIZE_FOR_TAP');
481     IF sort_size is not NULL and sort_size > 0 THEN
482         st := 'ALTER SESSION SET SORT_AREA_SIZE = ' || sort_size;
483         EXECUTE IMMEDIATE st;
484         select value into s from V$PARAMETER where name = 'sort_area_size';
485     END IF;
486     IEX_DEBUG('Sort Area Size ' || s );
487 
488     hash_size := fnd_profile.value('IEX_HASH_AREA_SIZE_FOR_TAP');
489     IF hash_size is not NULL and hash_size > 0 THEN
490         st := 'ALTER SESSION SET HASH_AREA_SIZE = ' || hash_size;
491         EXECUTE IMMEDIATE st;
492         select value into s from V$PARAMETER where name = 'hash_area_size';
493     END IF;
494     IEX_DEBUG('Hash Area Size ' || s );
495 END Set_Area_Sizes;
496 
497 /*-------------------------------------------------------------------------*
498  | PUBLIC ROUTINE
499  |  Prepare_Parallel_Processing
500  |
501  | PURPOSE
502  |  Prepare the TRANS tables for parallel processing
503  *-------------------------------------------------------------------------*/
504 PROCEDURE Prepare_Parallel_Processing(
505     P_Request_Id                 NUMBER,
506     P_Prev_Request_Id            NUMBER,
507     P_Run_Mode                   VARCHAR2,
508     P_AccountCount               NUMBER,
509     P_MinNumParallelProc         NUMBER,
510     P_NumChildAccountWorker      NUMBER,
511     X_ActualAccountWorkersUsed   OUT NOCOPY NUMBER)
512 IS
513     l_ActualWorker     NUMBER := 0;
514     l_WorkerLoad       NUMBER := 0;
515 
516 BEGIN
517 
518     IEX_DEBUG('*** Prepare_Parallel_Processing() *** - Start - ');
519     X_ActualAccountWorkersUsed := 0;
520 
521     l_ActualWorker   := 0;
522     l_WorkerLoad     := 0;
523 
524     l_WorkerLoad := CEIL(P_AccountCount / P_NumChildAccountWorker);
525     If l_WorkerLoad < P_MinNumParallelProc then
526         l_WorkerLoad := P_MinNumParallelProc;
527     End If;
528 
529     l_ActualWorker := CEIL(P_AccountCount/l_WorkerLoad);
530     IEX_DEBUG('Actual Worker Assigned : '||l_ActualWorker);
531 
532 /*
533     IF p_run_mode = G_TOTAL_MODE THEN
534         UPDATE JTF_TAE_1001_ACCOUNT_TRANS
535             SET worker_id = mod (trans_object_id, l_ActualWorker) + 1;
536         IEX_DEBUG('UPDATE JTF_TAE_1001_ACCOUNT_TRANS.worker_id');
537     ELSIF p_run_mode = G_NEW_MODE THEN
538         UPDATE JTF_TAE_1001_ACCOUNT_NM_TRANS
539             SET worker_id = mod (trans_object_id, l_ActualWorker) + 1;
540         IEX_DEBUG('UPDATE JTF_TAE_1001_ACCOUNT_NM_TRANS.worker_id');
541     END IF;
542 */
543     X_ActualAccountWorkersUsed := l_ActualWorker;
544 
545 EXCEPTION
546     WHEN others THEN
547        IEX_DEBUG('Exception: others in Prepare_Parallel_Processing');
548        IEX_DEBUG('SQLCODE ' || to_char(SQLCODE) || ' SQLERRM ' || substr(SQLERRM, 1, 100));
549 
550 END Prepare_Parallel_Processing;
551 
552 
553 END IEX_ATA_PUB;