DBA Data[Home] [Help]

PACKAGE BODY: APPS.XLA_AR_ACCT_HOOKS_PKG

Source


1 PACKAGE BODY xla_ar_acct_hooks_pkg AS
2 -- $Header: xlaaparh.pkb 120.2 2006/06/28 05:50:13 vinaykum noship $
3 /*===========================================================================+
4 |  Copyright (c) 2003 Oracle Corporation BelmFont, California, USA           |
5 |                          ALL rights reserved.                              |
6 +============================================================================+
7 | PACKAGE NAME                                                               |
8 |     xla_ar_acct_hooks_pkg                                                  |
9 |                                                                            |
10 | DESCRIPTION                                                                |
11 |     Call accounting program integration APIs for Account Receivables       |
12 |                                                                            |
13 | HISTORY                                                                    |
14 |     05/27/2005    V. Kumar        Created                                  |
15 |     06/10/2005    V. Kumar        Bug#4421985 Corrected the spelling of    |
16 |                                       event names                          |
17 |                                                                            |
18 +===========================================================================*/
19 
20 
21 --=============================================================================
22 --           ****************  declaraions  ********************
23 --=============================================================================
24 
25 --=============================================================================
26 --               *********** Local Trace Routine **********
27 --=============================================================================
28 C_LEVEL_STATEMENT     CONSTANT NUMBER := FND_LOG.LEVEL_STATEMENT;
29 C_LEVEL_PROCEDURE     CONSTANT NUMBER := FND_LOG.LEVEL_PROCEDURE;
30 C_LEVEL_EVENT         CONSTANT NUMBER := FND_LOG.LEVEL_EVENT;
31 C_LEVEL_EXCEPTION     CONSTANT NUMBER := FND_LOG.LEVEL_EXCEPTION;
32 C_LEVEL_ERROR         CONSTANT NUMBER := FND_LOG.LEVEL_ERROR;
33 C_LEVEL_UNEXPECTED    CONSTANT NUMBER := FND_LOG.LEVEL_UNEXPECTED;
34 
35 C_LEVEL_LOG_DISABLED  CONSTANT NUMBER := 99;
36 C_DEFAULT_MODULE      CONSTANT VARCHAR2(240) := 'xla.plsql.xla_ar_acct_hooks_pkg';
37 
38 g_log_level           NUMBER;
39 g_log_enabled         BOOLEAN;
40 
41 PROCEDURE trace
42        (p_msg                        IN VARCHAR2
43        ,p_level                      IN NUMBER
44        ,p_module                     IN VARCHAR2 DEFAULT C_DEFAULT_MODULE) IS
45 BEGIN
46    IF (p_msg IS NULL AND p_level >= g_log_level) THEN
47       fnd_log.message(p_level, NVL(p_module,C_DEFAULT_MODULE));
48    ELSIF p_level >= g_log_level THEN
49       fnd_log.string(p_level, NVL(p_module,C_DEFAULT_MODULE), p_msg);
50    END IF;
51 
52 EXCEPTION
53    WHEN xla_exceptions_pkg.application_exception THEN
54       RAISE;
55    WHEN OTHERS THEN
56       xla_exceptions_pkg.raise_message
57          (p_location   => 'xla_ar_acct_hooks_pkg.trace');
58 END trace;
59 
60 --=============================================================================
61 --                   ******* Print Log File **********
62 --=============================================================================
63 PROCEDURE print_logfile(p_msg  IN  VARCHAR2) IS
64 BEGIN
65 
66    fnd_file.put_line(fnd_file.log,p_msg);
67 
68 EXCEPTION
69    WHEN xla_exceptions_pkg.application_exception THEN
70       RAISE;
71    WHEN OTHERS THEN
72       xla_exceptions_pkg.raise_message
73          (p_location   => 'xla_ar_acct_hooks_pkg.print_logfile');
74 
75 END print_logfile;
76 
77 
78 --=============================================================================
79 --          *********** public procedures and functions **********
80 --=============================================================================
81 --=============================================================================
82 --
83 --
84 --
85 --
86 --
87 --
88 --
89 --
90 --
91 --
92 --
93 --    1.    main (procedure)
94 --
95 --
96 --
97 --
98 --
99 --
100 --
101 --
102 --
103 --
104 --=============================================================================
105 
106 --=============================================================================
107 
108 --============================================================================
109 --
110 --
111 --
112 --============================================================================
113 PROCEDURE main
114        (p_application_id           IN NUMBER
115        ,p_ledger_id                IN NUMBER
116        ,p_process_category         IN VARCHAR2
117        ,p_end_date                 IN DATE
118        ,p_accounting_mode          IN VARCHAR2
119        ,p_valuation_method         IN VARCHAR2
120        ,p_security_id_int_1        IN NUMBER
121        ,p_security_id_int_2        IN NUMBER
122        ,p_security_id_int_3        IN NUMBER
123        ,p_security_id_char_1       IN VARCHAR2
124        ,p_security_id_char_2       IN VARCHAR2
125        ,p_security_id_char_3       IN VARCHAR2
126        ,p_report_request_id        IN NUMBER
127        ,p_event_name               IN VARCHAR2)
128 IS
129 l_log_module         VARCHAR2(240);
130 l_sqlerrm            VARCHAR2(2000);
131 BEGIN
132 
133    IF g_log_enabled THEN
134       l_log_module := C_DEFAULT_MODULE||'.main';
135    END IF;
136 
137    IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
138       trace
139          (p_msg    =>  'BEGIN of procedure Main'
140          ,p_level  =>  C_LEVEL_PROCEDURE
141          ,p_module =>  l_log_module);
142       trace
143          (p_msg      => 'p_application_id = '||p_application_id
144          ,p_level    => C_LEVEL_PROCEDURE
145          ,p_module   => l_log_module);
146       trace
147          (p_msg      => 'p_accounting_mode = '||p_accounting_mode
148          ,p_level    => C_LEVEL_PROCEDURE
149          ,p_module   => l_log_module);
150       trace
151          (p_msg      => 'p_event_name = '||p_event_name
152          ,p_level    => C_LEVEL_PROCEDURE
153          ,p_module   => l_log_module);
154    END IF;
155 
156    IF (C_LEVEL_PROCEDURE >= g_log_level) AND
157       (p_event_name IN ('preaccounting','postaccounting'))
158    THEN
159       trace
160          (p_msg      => 'p_ledger_id = '||p_ledger_id
161          ,p_level    => C_LEVEL_PROCEDURE
162          ,p_module   => l_log_module);
163       trace
164          (p_msg      => 'p_process_category = '||p_process_category
165          ,p_level    => C_LEVEL_PROCEDURE
166          ,p_module   => l_log_module);
167       trace
168          (p_msg      => 'p_end_date = '||p_end_date
169          ,p_level    => C_LEVEL_PROCEDURE
170          ,p_module   => l_log_module);
171       trace
172          (p_msg      => 'p_valuation_method = '||p_valuation_method
173          ,p_level    => C_LEVEL_PROCEDURE
174          ,p_module   => l_log_module);
175       trace
176          (p_msg      => 'p_security_id_int_1 = '||p_security_id_int_1
177          ,p_level    => C_LEVEL_PROCEDURE
178          ,p_module   => l_log_module);
179       trace
180          (p_msg      => 'p_security_id_int_2 = '||p_security_id_int_2
181          ,p_level    => C_LEVEL_PROCEDURE
182          ,p_module   => l_log_module);
183       trace
184          (p_msg      => 'p_security_id_int_3 = '||p_security_id_int_3
185          ,p_level    => C_LEVEL_PROCEDURE
186          ,p_module   => l_log_module);
187       trace
188          (p_msg      => 'p_security_id_char_1 = '||p_security_id_char_1
189          ,p_level    => C_LEVEL_PROCEDURE
190          ,p_module   => l_log_module);
191       trace
192          (p_msg      => 'p_security_id_char_2 = '||p_security_id_char_2
193          ,p_level    => C_LEVEL_PROCEDURE
194          ,p_module   => l_log_module);
195       trace
196          (p_msg      => 'p_security_id_char_3 = '||p_security_id_char_3
197          ,p_level    => C_LEVEL_PROCEDURE
198          ,p_module   => l_log_module);
199       trace
200          (p_msg      => 'p_report_request_id = '||p_report_request_id
201          ,p_level    => C_LEVEL_PROCEDURE
202          ,p_module   => l_log_module);
203    END IF;
204 
205    ----------------------------------------------------------------------------
206    -- Calling different event depending on event_name
207    ----------------------------------------------------------------------------
208 
209    CASE
210    WHEN  p_event_name = 'preaccounting'  THEN
211       -------------------------------------------------------------------------
212       -- Following code calls preaccounting API
213       -------------------------------------------------------------------------
214       IF (C_LEVEL_EVENT >= g_log_level) THEN
215          trace
216             (p_msg      => 'Ready to call preaccounting API for Account Receivables'
217             ,p_level    => C_LEVEL_EVENT
218             ,p_module   => l_log_module);
219       END IF;
220 
221       arp_xla_extract_main_pkg.preaccounting
222             ( p_application_id     => p_application_id
223              ,p_ledger_id          => p_ledger_id
224              ,p_process_category   => p_process_category
225              ,p_end_date           => p_end_date
226              ,p_accounting_mode    => p_accounting_mode
227              ,p_valuation_method   => p_valuation_method
228              ,p_security_id_int_1  => p_security_id_int_1
229              ,p_security_id_int_2  => p_security_id_int_2
230              ,p_security_id_int_3  => p_security_id_int_3
231              ,p_security_id_char_1 => p_security_id_char_1
232              ,p_security_id_char_2 => p_security_id_char_2
233              ,p_security_id_char_3 => p_security_id_char_3
234              ,p_report_request_id  => p_report_request_id  );
235 
236       IF (C_LEVEL_EVENT >= g_log_level) THEN
237          trace
238             (p_msg      => 'Control returned from preaccounting API'
239             ,p_level    => C_LEVEL_EVENT
240             ,p_module   => l_log_module);
241       END IF;
242 
243    WHEN p_event_name = 'extract'        THEN
244       -------------------------------------------------------------------------
245       -- Following code calls extract API
246       -------------------------------------------------------------------------
247       IF (C_LEVEL_EVENT >= g_log_level) THEN
248          trace
249             (p_msg      => 'Ready to call extract API for Account Receivables'
250             ,p_level    => C_LEVEL_EVENT
251             ,p_module   => l_log_module);
252       END IF;
253 
254       arp_xla_extract_main_pkg.extract
255             ( p_application_id     => p_application_id
256              ,p_accounting_mode    => p_accounting_mode);
257 
258       IF (C_LEVEL_EVENT >= g_log_level) THEN
259          trace
260             (p_msg      => 'Control returned from extract API'
261             ,p_level    => C_LEVEL_EVENT
262             ,p_module   => l_log_module);
263       END IF;
264 
265    WHEN p_event_name = 'postprocessing'  THEN
266       -------------------------------------------------------------------------
267       -- Following code calls postprocessing API
268       -------------------------------------------------------------------------
269       IF (C_LEVEL_EVENT >= g_log_level) THEN
270          trace
271             (p_msg      => 'Ready to call postprocessing API for Account Receivables'
272             ,p_level    => C_LEVEL_EVENT
273             ,p_module   => l_log_module);
274       END IF;
275 
276       arp_xla_extract_main_pkg.postprocessing
277             ( p_application_id     => p_application_id
278              ,p_accounting_mode    => p_accounting_mode);
279 
280       IF (C_LEVEL_EVENT >= g_log_level) THEN
281          trace
282             (p_msg      => 'Control returned from postprocessing API'
283             ,p_level    => C_LEVEL_EVENT
284             ,p_module   => l_log_module);
285       END IF;
286 
287    WHEN p_event_name = 'postaccounting'  THEN
288       -------------------------------------------------------------------------
289       -- Following code calls postaccounting API
290       -------------------------------------------------------------------------
291       IF (C_LEVEL_EVENT >= g_log_level) THEN
292          trace
293             (p_msg      => 'Ready to call postaccounting API for Account Receivables'
294             ,p_level    => C_LEVEL_EVENT
295             ,p_module   => l_log_module);
296       END IF;
297 
298       arp_xla_extract_main_pkg.postaccounting
299             ( p_application_id     => p_application_id
300              ,p_ledger_id          => p_ledger_id
301              ,p_process_category   => p_process_category
302              ,p_end_date           => p_end_date
303              ,p_accounting_mode    => p_accounting_mode
304              ,p_valuation_method   => p_valuation_method
305              ,p_security_id_int_1  => p_security_id_int_1
306              ,p_security_id_int_2  => p_security_id_int_2
307              ,p_security_id_int_3  => p_security_id_int_3
308              ,p_security_id_char_1 => p_security_id_char_1
309              ,p_security_id_char_2 => p_security_id_char_2
310              ,p_security_id_char_3 => p_security_id_char_3
311              ,p_report_request_id  => p_report_request_id  );
312 
313       IF (C_LEVEL_EVENT >= g_log_level) THEN
314          trace
315             (p_msg      => 'Control returned from postaccounting API'
316             ,p_level    => C_LEVEL_EVENT
317             ,p_module   => l_log_module);
318       END IF;
319    END CASE;
320 EXCEPTION
321 WHEN xla_exceptions_pkg.application_exception THEN
322    l_sqlerrm := fnd_message.get();
323 
324    IF (C_LEVEL_EXCEPTION>= g_log_level) THEN
325       trace
326          (p_msg      => 'Technical problem : Error encountered in product API for '||p_event_name||
327                         xla_environment_pkg.g_chr_newline||
328                         l_sqlerrm
329          ,p_level    => C_LEVEL_EXCEPTION
330          ,p_module   => l_log_module);
331    END IF;
332 
333    xla_accounting_err_pkg.build_message
334       (p_appli_s_name   => 'XLA'
335       ,p_msg_name       => 'XLA_AP_TECHNICAL_ERROR'
336       ,p_token_1        => 'APPLICATION_NAME'
337       ,p_value_1        => 'SLA'
338       ,p_entity_id      => NULL
339       ,p_event_id       => NULL);
340 
341    print_logfile('Technical problem : Error encountered in product API for '||p_event_name);
342 
343    xla_exceptions_pkg.raise_message
344       (p_appli_s_name   => 'XLA'
345       ,p_msg_name       => 'XLA_COMMON_ERROR'
346       ,p_token_1        => 'LOCATION'
347       ,p_value_1        => 'xla_ar_acct_hooks_pkg.main'
348       ,p_token_2        => 'ERROR'
349       ,p_value_2        => 'Technical problem : Error encountered in product API for '||p_event_name||
350                            xla_environment_pkg.g_chr_newline||l_sqlerrm);
351 WHEN OTHERS THEN
352    l_sqlerrm := sqlerrm;
353 
354    IF (C_LEVEL_EXCEPTION>= g_log_level) THEN
355       trace
356          (p_msg      => 'Technical problem : Error encountered in product API for '||p_event_name||
357                         xla_environment_pkg.g_chr_newline||l_sqlerrm
358          ,p_level    => C_LEVEL_EXCEPTION
359          ,p_module   => l_log_module);
360    END IF;
361 
362    xla_accounting_err_pkg.build_message
363       (p_appli_s_name   => 'XLA'
364       ,p_msg_name       => 'XLA_AP_TECHNICAL_ERROR'
365       ,p_token_1        => 'APPLICATION_NAME'
366       ,p_value_1        => 'SLA'
367       ,p_entity_id      => NULL
368       ,p_event_id       => NULL);
369 
370    print_logfile('Technical problem : Error encountered in product API for '||p_event_name);
371 
372    xla_exceptions_pkg.raise_message
373       (p_appli_s_name   => 'XLA'
374       ,p_msg_name       => 'XLA_COMMON_ERROR'
375       ,p_token_1        => 'LOCATION'
376       ,p_value_1        => 'xla_ar_acct_hooks_pkg.main'
377       ,p_token_2        => 'ERROR'
378       ,p_value_2        => 'Technical problem : Error encountered in product API for '||p_event_name||
379                            xla_environment_pkg.g_chr_newline||
380                            l_sqlerrm);
381 END main;
382 
383 
384 --=============================================================================
385 --          *********** Initialization routine **********
386 --=============================================================================
387 
388 --=============================================================================
389 --
390 --
391 --
392 --
393 --
394 --
395 --
396 --
397 --
398 --
399 -- Following code is executed when the package body is referenced for the first
400 -- time
401 --
402 --
403 --
404 --
405 --
406 --
407 --
408 --
409 --
410 --
411 --
412 --
413 --=============================================================================
414 
415 BEGIN
416    g_log_level      := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
417    g_log_enabled    := fnd_log.test
418                           (log_level  => g_log_level
419                           ,MODULE     => C_DEFAULT_MODULE);
420 
421    IF NOT g_log_enabled  THEN
422       g_log_level := C_LEVEL_LOG_DISABLED;
423    END IF;
424 
425 END xla_ar_acct_hooks_pkg;