DBA Data[Home] [Help]

PACKAGE BODY: APPS.XLA_GMF_ACCT_HOOKS_PKG

Source


1 PACKAGE BODY xla_gmf_acct_hooks_pkg AS
2 -- $Header: xlaapgmf.pkb 120.2 2006/06/28 05:54:15 vinaykum noship $
3 
4 /*===========================================================================+
5 |  Copyright (c) 2003 Oracle Corporation BelmFont, California, USA           |
6 |                          ALL rights reserved.                              |
7 +============================================================================+
8 | PACKAGE NAME                                                               |
9 |     xla_gmf_acct_hooks_pkg                                                 |
10 |                                                                            |
11 | DESCRIPTION                                                                |
12 |     Call accounting program integration APIs for Process Manufacturing     |
13 |     Financials                                                             |
14 |                                                                            |
15 | HISTORY                                                                    |
16 |     09/12/2005    V. Swapna       Created                                  |
17 |                                                                            |
18 +===========================================================================*/
19 
20 
21 --=============================================================================
22 --           ****************  declarations  ********************
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_gmf_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_gmf_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_gmf_acct_hooks_pkg.print_logfile');
74 END print_logfile;
75 
76 
77 --=============================================================================
78 --          *********** public procedures and functions **********
79 --=============================================================================
80 --=============================================================================
81 --
82 --
83 --
84 --
85 --
86 --
87 --
88 --
89 --
90 --
91 --
92 --    1.    main (procedure)
93 --
94 --
95 --
96 --
97 --
98 --
99 --
100 --
101 --
102 --
103 --=============================================================================
104 
105 --=============================================================================
106 
107 --============================================================================
108 --
109 --
110 --
111 --============================================================================
112 PROCEDURE main
113        (p_application_id           IN NUMBER
114        ,p_ledger_id                IN NUMBER
115        ,p_process_category         IN VARCHAR2
116        ,p_end_date                 IN DATE
117        ,p_accounting_mode          IN VARCHAR2
118        ,p_valuation_method         IN VARCHAR2
119        ,p_security_id_int_1        IN NUMBER
120        ,p_security_id_int_2        IN NUMBER
121        ,p_security_id_int_3        IN NUMBER
122        ,p_security_id_char_1       IN VARCHAR2
123        ,p_security_id_char_2       IN VARCHAR2
124        ,p_security_id_char_3       IN VARCHAR2
125        ,p_report_request_id        IN NUMBER
126        ,p_event_name               IN VARCHAR2)
127 IS
128 l_log_module         VARCHAR2(240);
129 l_sqlerrm            VARCHAR2(2000);
130 BEGIN
131 
132    IF g_log_enabled THEN
133       l_log_module := C_DEFAULT_MODULE||'.main';
134    END IF;
135 
136    IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
137       trace
138          (p_msg    =>  'BEGIN of procedure Main'
139          ,p_level  =>  C_LEVEL_PROCEDURE
140          ,p_module =>  l_log_module);
141       trace
142          (p_msg      => 'p_application_id = '||p_application_id
143          ,p_level    => C_LEVEL_PROCEDURE
144          ,p_module   => l_log_module);
145       trace
146          (p_msg      => 'p_accounting_mode = '||p_accounting_mode
147          ,p_level    => C_LEVEL_PROCEDURE
148          ,p_module   => l_log_module);
149       trace
150          (p_msg      => 'p_event_name = '||p_event_name
151          ,p_level    => C_LEVEL_PROCEDURE
152          ,p_module   => l_log_module);
153    END IF;
154 
155    IF (C_LEVEL_PROCEDURE >= g_log_level) AND
156       (p_event_name IN ('preaccounting','postaccounting'))
157    THEN
158       trace
159          (p_msg      => 'p_ledger_id = '||p_ledger_id
160          ,p_level    => C_LEVEL_PROCEDURE
161          ,p_module   => l_log_module);
162       trace
163          (p_msg      => 'p_process_category = '||p_process_category
164          ,p_level    => C_LEVEL_PROCEDURE
165          ,p_module   => l_log_module);
166       trace
167          (p_msg      => 'p_end_date = '||p_end_date
168          ,p_level    => C_LEVEL_PROCEDURE
169          ,p_module   => l_log_module);
170       trace
171          (p_msg      => 'p_valuation_method = '||p_valuation_method
172          ,p_level    => C_LEVEL_PROCEDURE
173          ,p_module   => l_log_module);
174       trace
175          (p_msg      => 'p_security_id_int_1 = '||p_security_id_int_1
176          ,p_level    => C_LEVEL_PROCEDURE
177          ,p_module   => l_log_module);
178       trace
179          (p_msg      => 'p_security_id_int_2 = '||p_security_id_int_2
180          ,p_level    => C_LEVEL_PROCEDURE
181          ,p_module   => l_log_module);
182       trace
183          (p_msg      => 'p_security_id_int_3 = '||p_security_id_int_3
184          ,p_level    => C_LEVEL_PROCEDURE
185          ,p_module   => l_log_module);
186       trace
187          (p_msg      => 'p_security_id_char_1 = '||p_security_id_char_1
188          ,p_level    => C_LEVEL_PROCEDURE
189          ,p_module   => l_log_module);
190       trace
191          (p_msg      => 'p_security_id_char_2 = '||p_security_id_char_2
192          ,p_level    => C_LEVEL_PROCEDURE
193          ,p_module   => l_log_module);
194       trace
195          (p_msg      => 'p_security_id_char_3 = '||p_security_id_char_3
196          ,p_level    => C_LEVEL_PROCEDURE
197          ,p_module   => l_log_module);
198       trace
199          (p_msg      => 'p_report_request_id = '||p_report_request_id
200          ,p_level    => C_LEVEL_PROCEDURE
201          ,p_module   => l_log_module);
202    END IF;
203 
204    ----------------------------------------------------------------------------
205    -- Calling different events depending on the event name
206    ----------------------------------------------------------------------------
207 
208    CASE
209    WHEN  p_event_name = 'preaccounting'  THEN
210       -------------------------------------------------------------------------
211       -- Following code calls preaccounting API
212       -------------------------------------------------------------------------
213       IF (C_LEVEL_EVENT >= g_log_level) THEN
214          trace
215             (p_msg      => 'Ready to call preaccounting API for
216                             Process Manufacturing Financials'
217             ,p_level    => C_LEVEL_EVENT
218             ,p_module   => l_log_module);
219       END IF;
220 
221       gmf_xla_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
250                              Process Manufacturing Financials'
251             ,p_level    => C_LEVEL_EVENT
252             ,p_module   => l_log_module);
253       END IF;
254 
255       gmf_xla_pkg.extract
256             ( p_application_id     => p_application_id
257              ,p_accounting_mode    => p_accounting_mode);
258 
259       IF (C_LEVEL_EVENT >= g_log_level) THEN
260          trace
261             (p_msg      => 'Control returned from extract API'
262             ,p_level    => C_LEVEL_EVENT
263             ,p_module   => l_log_module);
264       END IF;
265 
266    WHEN p_event_name = 'postprocessing'  THEN
267       -------------------------------------------------------------------------
268       -- Following code calls postprocessing API
269       -------------------------------------------------------------------------
270       IF (C_LEVEL_EVENT >= g_log_level) THEN
271          trace
272             (p_msg      => 'Ready to call postprocessing API for
273                             Process Manufacturing Financials'
274             ,p_level    => C_LEVEL_EVENT
275             ,p_module   => l_log_module);
276       END IF;
277 
278       gmf_xla_pkg.postprocessing
279             ( p_application_id     => p_application_id
280              ,p_accounting_mode    => p_accounting_mode);
281 
282       IF (C_LEVEL_EVENT >= g_log_level) THEN
283          trace
284             (p_msg      => 'Control returned from postprocessing API'
285             ,p_level    => C_LEVEL_EVENT
286             ,p_module   => l_log_module);
287       END IF;
288 
289    WHEN p_event_name = 'postaccounting'  THEN
290       -------------------------------------------------------------------------
291       -- Following code calls postaccounting API
292       -------------------------------------------------------------------------
293       IF (C_LEVEL_EVENT >= g_log_level) THEN
294          trace
295             (p_msg      => 'Ready to call postaccounting API for
296                              Process Manufacturing Financials'
297             ,p_level    => C_LEVEL_EVENT
298             ,p_module   => l_log_module);
299       END IF;
300 
301      gmf_xla_pkg.postaccounting
302             ( p_application_id     => p_application_id
303              ,p_ledger_id          => p_ledger_id
304              ,p_process_category   => p_process_category
305              ,p_end_date           => p_end_date
306              ,p_accounting_mode    => p_accounting_mode
307              ,p_valuation_method   => p_valuation_method
308              ,p_security_id_int_1  => p_security_id_int_1
309              ,p_security_id_int_2  => p_security_id_int_2
310              ,p_security_id_int_3  => p_security_id_int_3
311              ,p_security_id_char_1 => p_security_id_char_1
312              ,p_security_id_char_2 => p_security_id_char_2
313              ,p_security_id_char_3 => p_security_id_char_3
314              ,p_report_request_id  => p_report_request_id  );
315 
316       IF (C_LEVEL_EVENT >= g_log_level) THEN
317          trace
318             (p_msg      => 'Control returned from postaccounting API'
319             ,p_level    => C_LEVEL_EVENT
320             ,p_module   => l_log_module);
321       END IF;
322    END CASE;
323 EXCEPTION
324 WHEN xla_exceptions_pkg.application_exception THEN
325    l_sqlerrm := fnd_message.get();
326 
327    IF (C_LEVEL_EXCEPTION>= g_log_level) THEN
328       trace
329          (p_msg      => 'Technical problem : Error encountered in product API for '||p_event_name||
330                         xla_environment_pkg.g_chr_newline||
331                         l_sqlerrm
332          ,p_level    => C_LEVEL_EXCEPTION
333          ,p_module   => l_log_module);
334    END IF;
335 
336    xla_accounting_err_pkg.build_message
337       (p_appli_s_name   => 'XLA'
338       ,p_msg_name       => 'XLA_AP_TECHNICAL_ERROR'
339       ,p_token_1        => 'APPLICATION_NAME'
340       ,p_value_1        => 'SLA'
341       ,p_entity_id      => NULL
342       ,p_event_id       => NULL);
343 
344    print_logfile('Technical problem : Error encountered in product API for '||p_event_name);
345 
346    xla_exceptions_pkg.raise_message
347       (p_appli_s_name   => 'XLA'
348       ,p_msg_name       => 'XLA_COMMON_ERROR'
349       ,p_token_1        => 'LOCATION'
350       ,p_value_1        => 'xla_gmf_acct_hooks_pkg.main'
351       ,p_token_2        => 'ERROR'
352       ,p_value_2        => 'Technical problem : Error encountered in product API for '||p_event_name||
353                            xla_environment_pkg.g_chr_newline||l_sqlerrm);
354 WHEN OTHERS THEN
355    l_sqlerrm := sqlerrm;
356 
357    IF (C_LEVEL_EXCEPTION>= g_log_level) THEN
358       trace
359          (p_msg      => 'Technical problem : Error encountered in product API for '||p_event_name||
360                         xla_environment_pkg.g_chr_newline||l_sqlerrm
361          ,p_level    => C_LEVEL_EXCEPTION
362          ,p_module   => l_log_module);
363    END IF;
364 
365    xla_accounting_err_pkg.build_message
366       (p_appli_s_name   => 'XLA'
367       ,p_msg_name       => 'XLA_AP_TECHNICAL_ERROR'
368       ,p_token_1        => 'APPLICATION_NAME'
369       ,p_value_1        => 'SLA'
370       ,p_entity_id      => NULL
371       ,p_event_id       => NULL);
372 
373    print_logfile('Technical problem : Error encountered in product API for '||p_event_name);
374 
375    xla_exceptions_pkg.raise_message
376       (p_appli_s_name   => 'XLA'
377       ,p_msg_name       => 'XLA_COMMON_ERROR'
378       ,p_token_1        => 'LOCATION'
379       ,p_value_1        => 'xla_gmf_acct_hooks_pkg.main'
380       ,p_token_2        => 'ERROR'
381       ,p_value_2        => 'Technical problem : Error encountered in product API for '||p_event_name||
382                            xla_environment_pkg.g_chr_newline||
383                            l_sqlerrm);
384 END main;
385 
386 
387 --=============================================================================
388 --          *********** Initialization routine **********
389 --=============================================================================
390 
391 --=============================================================================
392 --
393 --
394 --
395 --
396 --
397 --
398 --
399 --
400 --
401 --
402 -- Following code is executed when the package body is referenced for the first
403 -- time
404 --
405 --
406 --
407 --
408 --
409 --
410 --
411 --
412 --
413 --
414 --
415 --
416 --=============================================================================
417 
418 BEGIN
419    g_log_level      := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
420    g_log_enabled    := fnd_log.test
421                           (log_level  => g_log_level
422                           ,MODULE     => C_DEFAULT_MODULE);
423 
424    IF NOT g_log_enabled  THEN
425       g_log_level := C_LEVEL_LOG_DISABLED;
426    END IF;
427 
428 END xla_gmf_acct_hooks_pkg;