DBA Data[Home] [Help]

PACKAGE BODY: APPS.XLA_OKL_ACCT_HOOKS_PKG

Source


1 PACKAGE BODY xla_okl_acct_hooks_pkg AS
2 -- $Header: xlaapokl.pkb 120.1 2007/05/17 07:27:58 svellani noship $
3 
4 /*===========================================================================+
5 |  Copyright (c) 2003 Oracle Corporation BelmFont, California, USA           |
6 |                          ALL rights reserved.                              |
7 +============================================================================+
8 | PACKAGE NAME                                                               |
9 |     xla_okl_acct_hooks_pkg                                                 |
10 |                                                                            |
11 | DESCRIPTION                                                                |
12 |     Call accounting program integration APIs for Lease Management          |
13 |                                                                            |
14 | HISTORY                                                                    |
15 |     04/17/2007    V. Swapna       Created                                  |
16 |                                                                            |
17 +===========================================================================*/
18 
19 
20 --=============================================================================
21 --           ****************  declarations  ********************
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_okl_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_okl_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_okl_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 events depending on the 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
215                             Lease Management'
216             ,p_level    => C_LEVEL_EVENT
217             ,p_module   => l_log_module);
218       END IF;
219 
220       okl_sla_processing_pvt.preaccounting
221             ( p_application_id     => p_application_id
222              ,p_ledger_id          => p_ledger_id
223              ,p_process_category   => p_process_category
224              ,p_end_date           => p_end_date
225              ,p_accounting_mode    => p_accounting_mode
226              ,p_valuation_method   => p_valuation_method
227              ,p_security_id_int_1  => p_security_id_int_1
228              ,p_security_id_int_2  => p_security_id_int_2
229              ,p_security_id_int_3  => p_security_id_int_3
230              ,p_security_id_char_1 => p_security_id_char_1
231              ,p_security_id_char_2 => p_security_id_char_2
232              ,p_security_id_char_3 => p_security_id_char_3
233              ,p_report_request_id  => p_report_request_id  );
234 
235       IF (C_LEVEL_EVENT >= g_log_level) THEN
236          trace
237             (p_msg      => 'Control returned from preaccounting API'
238             ,p_level    => C_LEVEL_EVENT
239             ,p_module   => l_log_module);
240       END IF;
241 
242    WHEN p_event_name = 'extract'        THEN
243       -------------------------------------------------------------------------
244       -- Following code calls extract API
245       -------------------------------------------------------------------------
246       IF (C_LEVEL_EVENT >= g_log_level) THEN
247          trace
248             (p_msg      => 'Ready to call extract API for
249                             Lease Management'
250             ,p_level    => C_LEVEL_EVENT
251             ,p_module   => l_log_module);
252       END IF;
253 
254       okl_sla_processing_pvt.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
272                             Lease Management'
273             ,p_level    => C_LEVEL_EVENT
274             ,p_module   => l_log_module);
275       END IF;
276 
277       okl_sla_processing_pvt.postprocessing
278             ( p_application_id     => p_application_id
279              ,p_accounting_mode    => p_accounting_mode);
280 
281       IF (C_LEVEL_EVENT >= g_log_level) THEN
282          trace
283             (p_msg      => 'Control returned from postprocessing API'
284             ,p_level    => C_LEVEL_EVENT
285             ,p_module   => l_log_module);
286       END IF;
287 
288    WHEN p_event_name = 'postaccounting'  THEN
289       -------------------------------------------------------------------------
290       -- Following code calls postaccounting API
291       -------------------------------------------------------------------------
292       IF (C_LEVEL_EVENT >= g_log_level) THEN
293          trace
294             (p_msg      => 'Ready to call postaccounting API for
295                             Lease Management'
296             ,p_level    => C_LEVEL_EVENT
297             ,p_module   => l_log_module);
298       END IF;
299 
300      okl_sla_processing_pvt.postaccounting
301             ( p_application_id     => p_application_id
302              ,p_ledger_id          => p_ledger_id
303              ,p_process_category   => p_process_category
304              ,p_end_date           => p_end_date
305              ,p_accounting_mode    => p_accounting_mode
306              ,p_valuation_method   => p_valuation_method
307              ,p_security_id_int_1  => p_security_id_int_1
308              ,p_security_id_int_2  => p_security_id_int_2
309              ,p_security_id_int_3  => p_security_id_int_3
310              ,p_security_id_char_1 => p_security_id_char_1
311              ,p_security_id_char_2 => p_security_id_char_2
312              ,p_security_id_char_3 => p_security_id_char_3
313              ,p_report_request_id  => p_report_request_id  );
314 
315       IF (C_LEVEL_EVENT >= g_log_level) THEN
316          trace
317             (p_msg      => 'Control returned from postaccounting API'
318             ,p_level    => C_LEVEL_EVENT
319             ,p_module   => l_log_module);
320       END IF;
321    END CASE;
322 EXCEPTION
323 WHEN xla_exceptions_pkg.application_exception THEN
324    l_sqlerrm := fnd_message.get();
325 
326    IF (C_LEVEL_EXCEPTION>= g_log_level) THEN
327       trace
328          (p_msg      => 'Technical problem : Error encountered in product API for '||p_event_name||
329                         xla_environment_pkg.g_chr_newline||
330                         l_sqlerrm
331          ,p_level    => C_LEVEL_EXCEPTION
332          ,p_module   => l_log_module);
333    END IF;
334 
335    xla_accounting_err_pkg.build_message
336       (p_appli_s_name   => 'XLA'
337       ,p_msg_name       => 'XLA_AP_TECHNICAL_ERROR'
338       ,p_token_1        => 'APPLICATION_NAME'
339       ,p_value_1        => 'SLA'
340       ,p_entity_id      => NULL
341       ,p_event_id       => NULL);
342 
343    print_logfile('Technical problem : Error encountered in product API for '||p_event_name);
344 
345    xla_exceptions_pkg.raise_message
346       (p_appli_s_name   => 'XLA'
347       ,p_msg_name       => 'XLA_COMMON_ERROR'
348       ,p_token_1        => 'LOCATION'
349       ,p_value_1        => 'xla_okl_acct_hooks_pkg.main'
350       ,p_token_2        => 'ERROR'
351       ,p_value_2        => 'Technical problem : Error encountered in product API for '||p_event_name||
352                            xla_environment_pkg.g_chr_newline||l_sqlerrm);
353 WHEN OTHERS THEN
354    l_sqlerrm := sqlerrm;
355 
356    IF (C_LEVEL_EXCEPTION>= g_log_level) THEN
357       trace
358          (p_msg      => 'Technical problem : Error encountered in product API for '||p_event_name||
359                         xla_environment_pkg.g_chr_newline||l_sqlerrm
360          ,p_level    => C_LEVEL_EXCEPTION
361          ,p_module   => l_log_module);
362    END IF;
363 
364    xla_accounting_err_pkg.build_message
365       (p_appli_s_name   => 'XLA'
366       ,p_msg_name       => 'XLA_AP_TECHNICAL_ERROR'
367       ,p_token_1        => 'APPLICATION_NAME'
368       ,p_value_1        => 'SLA'
369       ,p_entity_id      => NULL
370       ,p_event_id       => NULL);
371 
372    print_logfile('Technical problem : Error encountered in product API for '||p_event_name);
373 
374    xla_exceptions_pkg.raise_message
375       (p_appli_s_name   => 'XLA'
376       ,p_msg_name       => 'XLA_COMMON_ERROR'
377       ,p_token_1        => 'LOCATION'
378       ,p_value_1        => 'xla_okl_acct_hooks_pkg.main'
379       ,p_token_2        => 'ERROR'
380       ,p_value_2        => 'Technical problem : Error encountered in product API for '||p_event_name||
381                            xla_environment_pkg.g_chr_newline||
382                            l_sqlerrm);
383 END main;
384 
385 
386 --=============================================================================
387 --          *********** Initialization routine **********
388 --=============================================================================
389 
390 --=============================================================================
391 --
392 --
393 --
394 --
395 --
396 --
397 --
398 --
399 --
400 --
401 -- Following code is executed when the package body is referenced for the first
402 -- time
403 --
404 --
405 --
406 --
407 --
408 --
409 --
410 --
411 --
412 --
413 --
414 --
415 --=============================================================================
416 
417 BEGIN
418    g_log_level      := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
419    g_log_enabled    := fnd_log.test
420                           (log_level  => g_log_level
421                           ,MODULE     => C_DEFAULT_MODULE);
422 
423    IF NOT g_log_enabled  THEN
424       g_log_level := C_LEVEL_LOG_DISABLED;
425    END IF;
426 
427 END xla_okl_acct_hooks_pkg;