DBA Data[Home] [Help]

PACKAGE BODY: APPS.AR_CREATE_ACCTING_SRS

Source


1 PACKAGE BODY ar_create_accting_srs AS
2 /*$Header: ARSACCTB.pls 120.14 2010/09/20 13:51:56 rmanikan ship $*/
3 
4 g_exec_status      VARCHAR2(1) := fnd_api.G_RET_STS_SUCCESS;
5 
6 g_xla_run          VARCHAR2(1) := 'Y';
7 --Local procedures
8 PROCEDURE log(
9    message       IN VARCHAR2,
10    newline       IN BOOLEAN DEFAULT TRUE) IS
11 BEGIN
12   IF message = 'NEWLINE' THEN
13    FND_FILE.NEW_LINE(FND_FILE.LOG, 1);
14   ELSIF (newline) THEN
15     FND_FILE.put_line(fnd_file.log,message);
16   ELSE
17     FND_FILE.put(fnd_file.log,message);
18   END IF;
19 END log;
20 
21 PROCEDURE out(
22    message      IN      VARCHAR2,
23    newline      IN      BOOLEAN DEFAULT TRUE) IS
24 BEGIN
25   IF message = 'NEWLINE' THEN
26    FND_FILE.NEW_LINE(FND_FILE.output, 1);
27   ELSIF (newline) THEN
28     FND_FILE.put_line(fnd_file.output,message);
29   ELSE
30     FND_FILE.put(fnd_file.output,message);
31   END IF;
32 END out;
33 
34 PROCEDURE outandlog(
35    message      IN      VARCHAR2,
36    newline      IN      BOOLEAN DEFAULT TRUE) IS
37 BEGIN
38   out(message, newline);
39   log(message, newline);
40 END outandlog;
41 
42 FUNCTION logerror(SQLERRM VARCHAR2 DEFAULT NULL)
43 RETURN VARCHAR2 IS
44   l_msg_data VARCHAR2(2000);
45 BEGIN
46   FND_MSG_PUB.Reset;
47 
48   FOR I IN 1..FND_MSG_PUB.Count_Msg LOOP
49     l_msg_data := l_msg_data || FND_MSG_PUB.Get(p_encoded => FND_API.G_FALSE );
50   END LOOP;
51   IF (SQLERRM IS NOT NULL) THEN
52     l_msg_data := l_msg_data || SQLERRM;
53   END IF;
54   log(l_msg_data);
55   RETURN l_msg_data;
56 END logerror;
57 
58 PROCEDURE revrec_per_org
59 (p_report_mode    IN  VARCHAR2 := 'S',
60  p_max_workers    IN  NUMBER := 2,
61  p_interval       IN  NUMBER := 60,
62  p_max_wait       IN  NUMBER := 180,
63  p_org_id         IN  NUMBER,
64  x_out_request_id OUT NOCOPY NUMBER)
65 IS
66  revrec_sub_pb    EXCEPTION;
67 BEGIN
68   outandlog('Submitting Revenue Recognition ARTERRPM for Org_id:'||p_org_id);
69   FND_REQUEST.SET_ORG_ID(p_org_id);
70   x_out_request_id := FND_REQUEST.SUBMIT_REQUEST(
71                          application=>'AR',
72                          program=>'ARTERRPM',
73                          sub_request=>FALSE,
74                          argument1=> p_report_mode,
75                          argument2=> p_max_workers,
76                          argument3=> p_interval,
77                          argument4=> p_max_wait,
78                          argument5=> p_org_id );
79   IF x_out_request_id <> 0 THEN
80      outandlog('Revenue Recognition submitted for Org_id:'||p_org_id||' by the request '||x_out_request_id);
81      INSERT INTO ar_submission_ctrl_gt
82      (worker_id         , --org_id
83       batch_id          , --batch_id
84       script_name       , --script_name
85       status            , --
86       order_num         , --order helper number
87       request_id        , --request_id
88       table_name        ) --table_name
89       VALUES
90      (p_org_id,
91       NULL,
92       'ARTERRPM',
93       'SUBMITTED',
94       1,
95       x_out_request_id,
96       'REVREC');
97      COMMIT;
98   ELSE
99      RAISE revrec_sub_pb;
100   END IF;
101 EXCEPTION
102   WHEN revrec_sub_pb THEN
103      log(logerror(SQLERRM));
104   WHEN OTHERS THEN
105      log(logerror(SQLERRM));
106 END;
107 
108 
109 PROCEDURE rev_contigency_per_org
110 (p_org_id         IN NUMBER,
111  x_out_request_id OUT NOCOPY NUMBER)
112 IS
113   rev_contingency_sub_pb  EXCEPTION;
114 BEGIN
115   outandlog('submit_rev_contigency for org_id :'||p_org_id);
116   FND_REQUEST.SET_ORG_ID(p_org_id);
117 
118   IF (ar_revenue_management_pvt.revenue_management_enabled) THEN
119 
120   x_out_request_id := FND_REQUEST.SUBMIT_REQUEST(
121                          application=>'AR',
122                          program=>'ARREVSWP',
123                          sub_request=>FALSE,
124                          argument1 =>p_org_id);
125   IF x_out_request_id <> 0 THEN
126      outandlog('submit_rev_contigency for org_id :'||p_org_id||' has submitted the request :'||x_out_request_id);
127      INSERT INTO ar_submission_ctrl_gt
128      (worker_id         , --org_id
129       batch_id          , --batch_id
130       script_name       , --script_name
131       status            , --
132       order_num         , --order helper number
133       request_id        , --request_id
134       table_name        ) --table_name
135       VALUES
136      (p_org_id,
137       NULL,
138       'ARREVSWP',
139       'SUBMITTED',
140       2,
141       x_out_request_id,
142       'REVCONTEN');
143      COMMIT;
144   ELSE
145      RAISE rev_contingency_sub_pb;
146   END IF;
147 
148   END IF;
149 EXCEPTION
150   WHEN rev_contingency_sub_pb THEN
151      log(logerror(SQLERRM));
152   WHEN OTHERS THEN
153      log(logerror(SQLERRM));
154 END;
155 
156 
157 PROCEDURE sla_create_accounting
158 (p_request_id     IN  NUMBER   DEFAULT NULL
159 ,p_entity_id      IN  NUMBER   DEFAULT NULL
160 ,p_src_app        IN  NUMBER   DEFAULT NULL
161 ,p_app            IN  NUMBER   DEFAULT NULL
162 ,p_dummy_param0   IN  VARCHAR2 DEFAULT NULL
163 ,p_ledger         IN  NUMBER
164 ,p_proc_categ     IN  VARCHAR2 DEFAULT NULL
165 ,p_end_date       IN  DATE
166 ,p_create_acct    IN  VARCHAR2
167 ,p_dummy_param1   IN  VARCHAR2 DEFAULT NULL
168 ,p_acct_mode      IN  VARCHAR2
169 ,p_dummy_param2   IN  VARCHAR2 DEFAULT NULL
170 ,p_errors_only    IN  VARCHAR2
171 ,p_report         IN  VARCHAR2
172 ,p_transf_gl      IN  VARCHAR2
173 ,p_dummy_param3   IN  VARCHAR2 DEFAULT NULL
174 ,p_post_to_gl     IN  VARCHAR2
175 ,p_gl_batch_name  IN  VARCHAR2 DEFAULT NULL
176 ,p_mixed_currency IN  NUMBER   DEFAULT NULL
177 ,p_val_meth       IN  VARCHAR2 DEFAULT NULL
178 ,p_sec_id_int_1   IN  NUMBER   DEFAULT NULL
179 ,p_sec_id_int_2   IN  NUMBER   DEFAULT NULL
180 ,p_sec_id_int_3   IN  NUMBER   DEFAULT NULL
181 ,p_sec_id_char_1  IN  VARCHAR2 DEFAULT NULL
182 ,p_sec_id_char_2  IN  VARCHAR2 DEFAULT NULL
183 ,p_sec_id_char_3  IN  VARCHAR2 DEFAULT NULL
184 --BUG#5391740
185 ,p_include_user_trx_id_flag     IN VARCHAR2 DEFAULT 'N'
186 ,p_include_user_trx_identifiers IN VARCHAR2 DEFAULT NULL
187 ,p_debug_flag                   IN VARCHAR2 DEFAULT NULL
188 )
189 IS
190  CURSOR c_app_name(p_app_id  IN NUMBER) IS
191   SELECT application_name
192     FROM FND_APPLICATION_VL FVL
193    WHERE application_id = p_src_app;
194 
195  CURSOR c_ledger_name(p_ledger_id  IN NUMBER) IS
196   SELECT name
197     FROM gl_ledgers
198    WHERE ledger_id = p_ledger_id;
199 
200 -- Added for bug 10102580
201 
202 --argument24
203 CURSOR c_proc_categ(p_app_id IN NUMBER, p_proc_categ_code IN VARCHAR2) IS
204   SELECT name
205     FROM xla_event_class_grps_vl
206     WHERE application_id = p_app_id
207     AND event_class_group_code = p_proc_categ;
208 
209 CURSOR c_fetch_lookup(p_lookup_type IN VARCHAR2, p_lookup_code IN VARCHAR2) IS
210   SELECT meaning
211     FROM xla_lookups
212     WHERE lookup_type = p_lookup_type
213     AND lookup_code = p_lookup_code;
214 
215 -- End bug 10102580
216 
217  CURSOR c_valid_date(p_ledger_id IN VARCHAR2,
218                      p_date      IN DATE) IS
219   SELECT 'Y'
220     FROM gl_period_statuses  glp
221    WHERE glp.application_id  = 222
222      AND p_date     BETWEEN glp.start_date AND glp.end_date
223      AND glp.set_of_books_id = p_ledger
224      AND glp.closing_status  IN ('O','F');
225 
226  l_res                 VARCHAr2(1);
227  l_iso_language        VARCHAR2(30);
228  l_iso_territory       VARCHAR2(30);
229  l_bool                BOOLEAN;
230  l_request_id          NUMBER;
231  l_src_app             VARCHAR2(240);
232  l_app                 VARCHAR2(240);
233  l_ledger_name         VARCHAR2(30);
234  l_proc_categ          VARCHAR2(80);
235  l_create_acct         VARCHAR2(80);
236  l_acct_mode           VARCHAR2(80);
237  l_errors_only         VARCHAR2(80);
238  l_report              VARCHAR2(80);
239  l_transf_gl           VARCHAR2(80);
240  l_post_to_gl          VARCHAR2(80);
241  l_no                  VARCHAR2(80);
242  x_msg_count           NUMBER;
243  x_msg_data            VARCHAR2(2000);
244  create_acct_sub_pb    EXCEPTION;
245  accting_date_pb       EXCEPTION;
246 BEGIN
247   outandlog('sla_create_accounting for the ledger: '||p_ledger);
248 
249 /*BUG#5687816 -- Remove the verification to AR accounting period status
250   IF  p_acct_mode = 'F' THEN
251     log('ledger_id:'||p_ledger);
252     log('End Date :'||p_end_date);
253     OPEN c_valid_date(p_ledger_id => p_ledger,
254                       p_date      => p_end_date);
255     FETCH c_valid_date INTO l_res;
256     IF c_valid_date%NOTFOUND THEN
257        FND_MSG_PUB.initialize;
258        FND_MESSAGE.SET_NAME('AR','AR_ACCT_PERIOD_NOT_OPEN');
259        FND_MSG_PUB.ADD;
260        RAISE accting_date_pb;
261    END IF;
262   END IF;
263 */
264 
265   OPEN c_app_name(p_src_app);
266   FETCH c_app_name INTO l_src_app;
267   CLOSE c_app_name;
268 
269   OPEN c_app_name(p_app);
270   FETCH c_app_name INTO l_app;
271   CLOSE c_app_name;
272 
273   OPEN c_ledger_name(p_ledger);
274   FETCH c_ledger_name INTO l_ledger_name;
275   CLOSE c_ledger_name;
276 
277   -- Begin bug 10102580
278 
279   --argument24
280   OPEN c_proc_categ(p_app, p_proc_categ);
281   FETCH c_proc_categ INTO l_proc_categ;
282   CLOSE c_proc_categ;
283 
284   --argument25
285   OPEN c_fetch_lookup('XLA_YES_NO', p_create_acct);
286   FETCH c_fetch_lookup INTO l_create_acct;
287   CLOSE c_fetch_lookup;
288 
289   --argument26
290   OPEN c_fetch_lookup('XLA_ACCOUNTING_ENTRY_STATUS', p_acct_mode);
291   FETCH c_fetch_lookup INTO l_acct_mode;
292   CLOSE c_fetch_lookup;
293 
294   --argument27
295   OPEN c_fetch_lookup('XLA_YES_NO', p_errors_only);
296   FETCH c_fetch_lookup INTO l_errors_only;
297   CLOSE c_fetch_lookup;
298 
299   --argument28
300   OPEN c_fetch_lookup('XLA_REPORT_LEVEL', p_report);
301   FETCH c_fetch_lookup INTO l_report;
302   CLOSE c_fetch_lookup;
303 
304   --argument29
305   OPEN c_fetch_lookup('XLA_YES_NO', p_transf_gl);
306   FETCH c_fetch_lookup INTO l_transf_gl;
307   CLOSE c_fetch_lookup;
308 
309   --argument30
310   OPEN c_fetch_lookup('XLA_YES_NO', p_post_to_gl);
311   FETCH c_fetch_lookup INTO l_post_to_gl;
312   CLOSE c_fetch_lookup;
313 
314   --argument31
315   OPEN c_fetch_lookup('XLA_YES_NO', 'N');
316   FETCH c_fetch_lookup INTO l_no;
317   CLOSE c_fetch_lookup;
318 
319   -- end bug 10102580
320 
321   SELECT lower(iso_language),iso_territory
322     INTO   l_iso_language,
323            l_iso_territory
324     FROM   FND_LANGUAGES
325    WHERE  language_code = USERENV('LANG');
326 
327 
328   l_bool := fnd_request.add_layout
329            (template_appl_name => 'XLA',
330 			template_code      => 'XLAACCPB01',
331 			template_language  => l_iso_language,
332  			template_territory => l_iso_territory,
333 			output_format      => 'PDF');
334 
335   l_request_id := FND_REQUEST.SUBMIT_REQUEST(
336                          application=>'XLA',
337                          program=>'XLAACCPB',
338                          sub_request=>FALSE,
339                          argument1 =>p_app,
340                          argument2 =>p_src_app,
341                          argument3 =>p_dummy_param0,
342                          argument4 =>p_ledger,
343                          argument5 =>p_proc_categ,
344                          argument6 =>fnd_date.date_to_canonical(p_end_date),
345                          argument7 =>p_create_acct,
346                          argument8 =>p_dummy_param1,
347                          argument9 =>p_acct_mode,
348                          argument10=>p_dummy_param2,
349                          argument11=>p_errors_only,
350                          argument12=>p_report,
351                          argument13=>p_transf_gl,
352                          argument14=>p_dummy_param3,
353                          argument15=>p_post_to_gl,
354                          argument16=>p_gl_batch_name,
355                          argument17=>p_mixed_currency,
356                          argument18=>nvl(FND_PROFILE.value('XLA_SHOW_ZERO_AMT_JRNL'),'N'),
357                          argument19=>p_request_id,
358                          argument20=>p_entity_id,
359                          argument21=>l_src_app,
360                          argument22=>l_app,
361                          argument23=>l_ledger_name,
362                          argument24=>l_proc_categ,
363                          argument25=>l_create_acct,
364                          argument26=>l_acct_mode,
365                          argument27=>l_errors_only,
366                          argument28=>l_report,
367                          argument29=>l_transf_gl,
368                          argument30=>l_post_to_gl,
369                          argument31=>l_no,
370                          argument32=>p_val_meth,
371                          argument33=>p_sec_id_int_1,
372                          argument34=>p_sec_id_int_2,
373                          argument35=>p_sec_id_int_3,
374                          argument36=>p_sec_id_char_1,
375                          argument37=>p_sec_id_char_2,
376                          argument38=>p_sec_id_char_3,
377                          argument39=>NULL,
378                          argument40=>p_include_user_trx_id_flag,
379                          argument41=>p_include_user_trx_identifiers,
380                          argument42=>p_debug_flag );
381 
382 
383   IF l_request_id <> 0 THEN
384      outandlog('sla create accounting submitted with the request_id'||l_request_id);
385      COMMIT;
386   ELSE
387      RAISE create_acct_sub_pb;
388   END IF;
389 EXCEPTION
390   WHEN accting_date_pb THEN
391        g_xla_run     := 'N';
392        IF c_valid_date%ISOPEN THEN
393          CLOSE c_valid_date;
394        END IF;
395        FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
396                                  p_count => x_msg_count,
397                                  p_data  => x_msg_data);
398      out(message => x_msg_data);
399      log(message => x_msg_data);
400   WHEN create_acct_sub_pb THEN
401      log(logerror(SQLERRM));
402   WHEN OTHERS THEN
403      log(logerror(SQLERRM));
404 END;
405 
406 PROCEDURE wait_for_end_subreq(
407  p_interval       IN  NUMBER   DEFAULT 60
408 ,p_max_wait       IN  NUMBER   DEFAULT 180
409 ,p_sub_name       IN  VARCHAR2)
410 IS
411   CURSOR reqs IS
412   SELECT request_id
413     FROM ar_submission_ctrl_gt
414    WHERE status      <> 'COMPLETE'
415      AND script_name = p_sub_name;
416   l_req_id      NUMBER;
417   l_phase       VARCHAR2(50);
418   l_status      VARCHAR2(50);
419   l_dev_phase   VARCHAR2(50);
420   l_dev_status  VARCHAR2(50);
421   l_message     VARCHAR2(2000);
422   l_complete    BOOLEAN;
423   revrecdone    EXCEPTION;
424 BEGIN
425   log('wait_for_end_subreq :'|| p_sub_name ||' to finish');
426   LOOP
427     OPEN reqs;
428     LOOP
429       FETCH reqs INTO l_req_id;
430       EXIT WHEN reqs%NOTFOUND;
431       l_complete := FND_CONCURRENT.WAIT_FOR_REQUEST(
432 		       request_id=>l_req_id,
433 		       interval=>p_interval,
434 		       max_wait=>p_max_wait,
435 		       phase=>l_phase,
436 		       status=>l_status,
437 		       dev_phase=>l_dev_phase,
438 		       dev_status=>l_dev_status,
439 		       message=>l_message);
440        IF l_dev_phase = 'COMPLETE' THEN
441         UPDATE ar_submission_ctrl_gt
442            SET status = 'COMPLETE'
443          WHERE request_id = l_req_id;
444 --{If required, we can control the error handling at concurrent process level
445 -- but as this is part of the accounting posting process if revrec or rev analyser fails
446 -- for now we allow the accouning for the cash receipts
447 --         IF l_dev_status IN ('TERMINATED', 'CANCELLED', 'ERROR') THEN
448 --           RAISE fnd_api.G_EXC_UNEXPECTED_ERROR;
449 --         END IF;
450 --}
451        END IF;
452     END LOOP;
453     CLOSE reqs;
454 
455     OPEN reqs;
456     FETCH reqs INTO l_req_id;
457     IF reqs%NOTFOUND THEN
458       RAISE revrecdone;
459     END IF;
460     CLOSE reqs;
461   END LOOP;
462 EXCEPTION
463   WHEN revrecdone THEN
464     IF reqs%ISOPEN THEN
465        CLOSE reqs;
466     END IF;
467   WHEN fnd_api.G_EXC_UNEXPECTED_ERROR THEN
468     g_exec_status := fnd_api.G_RET_STS_UNEXP_ERROR;
469   WHEN OTHERS THEN
470     IF reqs%ISOPEN THEN
471        CLOSE reqs;
472     END IF;
473     RAISE;
474 END;
475 
476 -- Public procedure
477 PROCEDURE submission (
478  errbuf           OUT NOCOPY VARCHAR2
479 ,retcode          OUT NOCOPY NUMBER
480 --
481 ,p_report_mode    IN  VARCHAR2 DEFAULT 'S'
482 ,p_max_workers    IN  NUMBER   DEFAULT 2
483 ,p_interval       IN  NUMBER   DEFAULT 60
484 ,p_max_wait       IN  NUMBER   DEFAULT 180
485 ---
486 ,p_request_id     IN  NUMBER   DEFAULT NULL
487 ,p_entity_id      IN  NUMBER   DEFAULT NULL
488 ,p_src_app        IN  NUMBER   DEFAULT NULL
489 ,p_app            IN  NUMBER   DEFAULT NULL
490 ,p_dummy_param0   IN  VARCHAR2 DEFAULT NULL
491 ,p_ledger         IN  NUMBER
492 ,p_proc_categ     IN  VARCHAR2 DEFAULT NULL
493 ,p_end_date       IN  VARCHAR2
494 ,p_create_acct    IN  VARCHAR2
495 ,p_dummy_param1   IN  VARCHAR2 DEFAULT NULL
496 ,p_acct_mode      IN  VARCHAR2
497 ,p_dummy_param2   IN  VARCHAR2 DEFAULT NULL
498 ,p_errors_only    IN  VARCHAR2
499 ,p_report         IN  VARCHAR2
500 ,p_transf_gl      IN  VARCHAR2
501 ,p_dummy_param3   IN  VARCHAR2 DEFAULT NULL
502 ,p_post_to_gl     IN  VARCHAR2
503 ,p_gl_batch_name  IN  VARCHAR2 DEFAULT NULL
504 ,p_mixed_currency IN  NUMBER   DEFAULT NULL
505 ,p_val_meth       IN  VARCHAR2 DEFAULT NULL
506 ,p_sec_id_int_1   IN  NUMBER   DEFAULT NULL
507 ,p_sec_id_int_2   IN  NUMBER   DEFAULT NULL
508 ,p_sec_id_int_3   IN  NUMBER   DEFAULT NULL
509 ,p_sec_id_char_1  IN  VARCHAR2 DEFAULT NULL
510 ,p_sec_id_char_2  IN  VARCHAR2 DEFAULT NULL
511 ,p_sec_id_char_3  IN  VARCHAR2 DEFAULT NULL
512 --BUG#5391740
513 ,p_include_user_trx_id_flag     IN VARCHAR2 DEFAULT 'N'
514 ,p_include_user_trx_identifiers IN VARCHAR2 DEFAULT NULL
515 ,p_debug_flag                   IN VARCHAR2 DEFAULT NULL
516 ,p_user_id                      IN NUMBER   DEFAULT fnd_profile.value('USER_ID')
517 )
518 IS
519   CURSOR ous(p_ledger_id IN NUMBER) IS
520   SELECT DISTINCT arsys.org_id
521     FROM ar_system_parameters_all arsys,
522          mo_glob_org_access_tmp   mo
523    WHERE arsys.set_of_books_id = p_ledger_id
524      AND arsys.org_id          = mo.organization_id;
525 
526   l_org_id     NUMBER;
527   l_request_id NUMBER;
528   i            NUMBER;
529   l_text       VARCHAR2(2000);
530   NullLedger   EXCEPTION;
531   xla_not_run  EXCEPTION;
532 BEGIN
533 outandlog('Submission parameters');
534 outandlog('p_report_mode :'||p_report_mode);
535 outandlog('p_max_workers :'||p_max_workers);
536 outandlog('p_interval    :'||p_interval);
537 outandlog('p_max_wait    :'||p_max_wait);
538 outandlog('p_request_id  :'||p_request_id);
539 outandlog('p_entity_id   :'||p_entity_id);
540 outandlog('p_src_app     :'||p_src_app);
541 outandlog('p_app         :'||p_app);
542 outandlog('p_dummy_param0:'||p_dummy_param0);
543 outandlog('p_ledger      :'||p_ledger);
544 outandlog('p_proc_categ  :'||p_proc_categ);
545 outandlog('p_end_date    :'||p_end_date);
546 outandlog('p_create_acct :'||p_create_acct);
547 outandlog('p_dummy_param1:'||p_dummy_param1);
548 outandlog('p_acct_mode   :'||p_acct_mode);
549 outandlog('p_dummy_param2:'||p_dummy_param2);
550 outandlog('p_errors_only :'||p_errors_only);
551 outandlog('p_report      :'||p_report);
552 outandlog('p_transf_gl   :'||p_transf_gl);
553 outandlog('p_dummy_param3:'||p_dummy_param3);
554 outandlog('p_post_to_gl  :'||p_post_to_gl);
555 outandlog('p_gl_batch_name:'||p_gl_batch_name);
556 outandlog('p_mixed_currency:'||p_mixed_currency);
557 outandlog('p_val_meth     :'||p_val_meth);
558 outandlog('p_sec_id_int_1 :'||p_sec_id_int_1);
559 outandlog('p_sec_id_int_2 :'||p_sec_id_int_2);
560 outandlog('p_sec_id_int_3 :'||p_sec_id_int_3);
561 outandlog('p_sec_id_char_1:'||p_sec_id_char_1);
562 outandlog('p_sec_id_char_2:'||p_sec_id_char_2);
563 outandlog('p_sec_id_char_3:'||p_sec_id_char_3);
564 
565 IF p_ledger IS NULL THEN
566   RAISE NullLedger;
567 END IF;
568 
569 OPEN ous(p_ledger);
570 LOOP
571   FETCH ous INTO l_org_id;
572   EXIT WHEN ous%NOTFOUND;
573 
574   --submission of Rev Rec
575   revrec_per_org
576   (p_report_mode    => p_report_mode,
577    p_max_workers    => p_max_workers,
578    p_interval       => p_interval,
579    p_max_wait       => p_max_wait,
580    p_org_id         => l_org_id,
581    x_out_request_id => l_request_id);
582 
583 END LOOP;
584 CLOSE ous;
585 
586 wait_for_end_subreq(
587  p_interval       => p_interval
588 ,p_max_wait       => p_max_wait
589 ,p_sub_name       => 'ARTERRPM' );
590 
591 
592 OPEN ous(p_ledger);
593 LOOP
594   FETCH ous INTO l_org_id;
595   EXIT WHEN ous%NOTFOUND;
596   --Run Revenue Contingency Analyzer
597   rev_contigency_per_org
598   (p_org_id         => l_org_id,
599    x_out_request_id => l_request_id);
600 END LOOP;
601 CLOSE ous;
602 
603 wait_for_end_subreq(
604  p_interval       => p_interval
605 ,p_max_wait       => p_max_wait
606 ,p_sub_name       => 'ARREVSWP' );
607 
608 --Submit SLA Create Accounting
609 sla_create_accounting
610 (p_request_id     => p_request_id
611 ,p_entity_id      => p_entity_id
612 ,p_src_app        => p_src_app
613 ,p_app            => p_app
614 ,p_dummy_param0   => p_dummy_param0
615 ,p_ledger         => p_ledger
616 ,p_proc_categ     => p_proc_categ
617 ,p_end_date       => fnd_date.canonical_to_date(p_end_date)
618 --,p_end_date       => p_end_date
619 ,p_create_acct    => p_create_acct
620 ,p_dummy_param1   => p_dummy_param1
621 ,p_acct_mode      => p_acct_mode
622 ,p_dummy_param2   => p_dummy_param2
623 ,p_errors_only    => p_errors_only
624 ,p_report         => p_report
625 ,p_transf_gl      => p_transf_gl
626 ,p_dummy_param3   => p_dummy_param3
627 ,p_post_to_gl     => p_post_to_gl
628 ,p_gl_batch_name  => p_gl_batch_name
629 ,p_mixed_currency => p_mixed_currency
630 ,p_val_meth       => p_val_meth
631 ,p_sec_id_int_1   => p_sec_id_int_1
632 ,p_sec_id_int_2   => p_sec_id_int_2
633 ,p_sec_id_int_3   => p_sec_id_int_3
634 ,p_sec_id_char_1  => p_sec_id_char_1
635 ,p_sec_id_char_2  => p_sec_id_char_2
636 ,p_sec_id_char_3  => p_sec_id_char_3
637 ,p_include_user_trx_id_flag     => p_include_user_trx_id_flag
638 ,p_include_user_trx_identifiers => p_include_user_trx_identifiers
639 ,p_debug_flag                   => p_debug_flag
640 );
641 
642 IF g_xla_run = 'N' THEN
643   RAISE xla_not_run;
644 END IF;
645 
646 EXCEPTION
647   WHEN NullLedger THEN
648     retcode   := 2;
649     log('Ledger can not be null');
650     errbuf    := 'Ledger can not be null';
651 
652   WHEN xla_not_run THEN
653     retcode   := 1;
654 
655   WHEN OTHERS THEN
656     retcode   := 2;
657     l_text    := logerror(SQLERRM);
658     log(l_text);
659     errbuf := l_text;
660     IF ous%ISOPEN THEN CLOSE ous; END IF;
661     RAISE;
662 
663 END;
664 
665 END;