DBA Data[Home] [Help]

PACKAGE BODY: APPS.XLA_FA_ACCT_HOOKS_PKG

Source


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