DBA Data[Home] [Help]

PACKAGE BODY: APPS.XLA_PAY_ACCT_HOOKS_PKG

Source


1 PACKAGE BODY xla_pay_acct_hooks_pkg AS
2 -- $Header: xlaappay.pkb 120.1 2006/06/28 05:55:12 vinaykum noship $
3 
4 /*===========================================================================+
5 |  Copyright (c) 2003 Oracle Corporation BelmFont, California, USA           |
6 |                          ALL rights reserved.                              |
7 +============================================================================+
8 | PACKAGE NAME                                                               |
9 |     xla_pay_acct_hooks_pkg                                                 |
10 |                                                                            |
11 | DESCRIPTION                                                                |
12 |     Call accounting program integration APIs for Payroll                   |
13 |                                                                            |
14 | HISTORY                                                                    |
15 |     09/12/2005    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_pay_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_pay_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_pay_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 Payroll'
215             ,p_level    => C_LEVEL_EVENT
216             ,p_module   => l_log_module);
217       END IF;
218 
219       pay_sla_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 Payroll'
248             ,p_level    => C_LEVEL_EVENT
249             ,p_module   => l_log_module);
250       END IF;
251 
252       pay_sla_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 Payroll '
270             ,p_level    => C_LEVEL_EVENT
271             ,p_module   => l_log_module);
272       END IF;
273 
274       pay_sla_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 Payroll'
292             ,p_level    => C_LEVEL_EVENT
293             ,p_module   => l_log_module);
294       END IF;
295 
296       pay_sla_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 
319 EXCEPTION
320 WHEN xla_exceptions_pkg.application_exception THEN
321    l_sqlerrm := fnd_message.get();
322 
323    IF (C_LEVEL_EXCEPTION>= g_log_level) THEN
324       trace
325          (p_msg      => 'Technical problem : Error encountered in product API for '||p_event_name||
326                         xla_environment_pkg.g_chr_newline||
327                         l_sqlerrm
328          ,p_level    => C_LEVEL_EXCEPTION
329          ,p_module   => l_log_module);
330    END IF;
331 
332    xla_accounting_err_pkg.build_message
333       (p_appli_s_name   => 'XLA'
334       ,p_msg_name       => 'XLA_AP_TECHNICAL_ERROR'
335       ,p_token_1        => 'APPLICATION_NAME'
336       ,p_value_1        => 'SLA'
337       ,p_entity_id      => NULL
338       ,p_event_id       => NULL);
339 
340    print_logfile('Technical problem : Error encountered in product API for '||p_event_name);
341 
342    xla_exceptions_pkg.raise_message
343       (p_appli_s_name   => 'XLA'
344       ,p_msg_name       => 'XLA_COMMON_ERROR'
345       ,p_token_1        => 'LOCATION'
346       ,p_value_1        => 'xla_pay_acct_hooks_pkg.main'
347       ,p_token_2        => 'ERROR'
348       ,p_value_2        => 'Technical problem : Error encountered in product API for '||p_event_name||
349                            xla_environment_pkg.g_chr_newline||l_sqlerrm);
350 WHEN OTHERS THEN
351    l_sqlerrm := sqlerrm;
352 
353    IF (C_LEVEL_EXCEPTION>= g_log_level) THEN
354       trace
355          (p_msg      => 'Technical problem : Error encountered in product API for '||p_event_name||
356                         xla_environment_pkg.g_chr_newline||l_sqlerrm
357          ,p_level    => C_LEVEL_EXCEPTION
358          ,p_module   => l_log_module);
359    END IF;
360 
361    xla_accounting_err_pkg.build_message
362       (p_appli_s_name   => 'XLA'
363       ,p_msg_name       => 'XLA_AP_TECHNICAL_ERROR'
364       ,p_token_1        => 'APPLICATION_NAME'
365       ,p_value_1        => 'SLA'
366       ,p_entity_id      => NULL
367       ,p_event_id       => NULL);
368 
369    print_logfile('Technical problem : Error encountered in product API for '||p_event_name);
370 
371    xla_exceptions_pkg.raise_message
372       (p_appli_s_name   => 'XLA'
373       ,p_msg_name       => 'XLA_COMMON_ERROR'
374       ,p_token_1        => 'LOCATION'
375       ,p_value_1        => 'xla_pay_acct_hooks_pkg.main'
376       ,p_token_2        => 'ERROR'
377       ,p_value_2        => 'Technical problem : Error encountered in product API for '||p_event_name||
378                            xla_environment_pkg.g_chr_newline||
379                            l_sqlerrm);
380 END main;
381 
382 
383 --=============================================================================
384 --          *********** Initialization routine **********
385 --=============================================================================
386 
387 --=============================================================================
388 --
389 --
390 --
391 --
392 --
393 --
394 --
395 --
396 --
397 --
398 -- Following code is executed when the package body is referenced for the first
399 -- time
400 --
401 --
402 --
403 --
404 --
405 --
406 --
407 --
408 --
409 --
410 --
411 --
412 --=============================================================================
413 
414 BEGIN
415    g_log_level      := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
416    g_log_enabled    := fnd_log.test
417                           (log_level  => g_log_level
418                           ,MODULE     => C_DEFAULT_MODULE);
419 
420    IF NOT g_log_enabled  THEN
421       g_log_level := C_LEVEL_LOG_DISABLED;
422    END IF;
423 
424 END xla_pay_acct_hooks_pkg;