[Home] [Help]
PACKAGE BODY: APPS.XLA_AP_ACCT_HOOKS_PKG
Source
1 PACKAGE BODY xla_ap_acct_hooks_pkg AS
2 -- $Header: xlaapaph.pkb 120.2 2006/06/28 05:48:48 vinaykum noship $
3 /*===========================================================================+
4 | Copyright (c) 2003 Oracle Corporation BelmFont, California, USA |
5 | ALL rights reserved. |
6 +============================================================================+
7 | PACKAGE NAME |
8 | xla_ap_acct_hooks_pkg |
9 | |
10 | DESCRIPTION |
11 | Call accounting program integration APIs for Account Payables |
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_ap_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_ap_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_ap_acct_hooks_pkg.print_logfile');
74
75 END print_logfile;
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 event depending on 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 Account Payables'
216 ,p_level => C_LEVEL_EVENT
217 ,p_module => l_log_module);
218 END IF;
219
220 ap_sla_processing_pkg.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 Account Payables'
249 ,p_level => C_LEVEL_EVENT
250 ,p_module => l_log_module);
251 END IF;
252
253 ap_sla_processing_pkg.extract
254 ( p_application_id => p_application_id
255 ,p_accounting_mode => p_accounting_mode);
256
257 IF (C_LEVEL_EVENT >= g_log_level) THEN
258 trace
259 (p_msg => 'Control returned from extract API'
260 ,p_level => C_LEVEL_EVENT
261 ,p_module => l_log_module);
262 END IF;
263
264 WHEN p_event_name = 'postprocessing' THEN
265 -------------------------------------------------------------------------
266 -- Following code calls postprocessing API
267 -------------------------------------------------------------------------
268 IF (C_LEVEL_EVENT >= g_log_level) THEN
269 trace
270 (p_msg => 'Ready to call postprocessing API for Account Payables'
271 ,p_level => C_LEVEL_EVENT
272 ,p_module => l_log_module);
273 END IF;
274
275 ap_sla_processing_pkg.postprocessing
276 ( p_application_id => p_application_id
277 ,p_accounting_mode => p_accounting_mode);
278
279 IF (C_LEVEL_EVENT >= g_log_level) THEN
280 trace
281 (p_msg => 'Control returned from postprocessing API'
282 ,p_level => C_LEVEL_EVENT
283 ,p_module => l_log_module);
284 END IF;
285
286 WHEN p_event_name = 'postaccounting' THEN
287 -------------------------------------------------------------------------
288 -- Following code calls postaccounting API
289 -------------------------------------------------------------------------
290 IF (C_LEVEL_EVENT >= g_log_level) THEN
291 trace
292 (p_msg => 'Ready to call postaccounting API for Account Payables'
293 ,p_level => C_LEVEL_EVENT
294 ,p_module => l_log_module);
295 END IF;
296
297 ap_sla_processing_pkg.postaccounting
298 ( p_application_id => p_application_id
299 ,p_ledger_id => p_ledger_id
300 ,p_process_category => p_process_category
301 ,p_end_date => p_end_date
302 ,p_accounting_mode => p_accounting_mode
303 ,p_valuation_method => p_valuation_method
304 ,p_security_id_int_1 => p_security_id_int_1
305 ,p_security_id_int_2 => p_security_id_int_2
306 ,p_security_id_int_3 => p_security_id_int_3
307 ,p_security_id_char_1 => p_security_id_char_1
308 ,p_security_id_char_2 => p_security_id_char_2
309 ,p_security_id_char_3 => p_security_id_char_3
310 ,p_report_request_id => p_report_request_id );
311
312 IF (C_LEVEL_EVENT >= g_log_level) THEN
313 trace
314 (p_msg => 'Control returned from postaccounting API'
315 ,p_level => C_LEVEL_EVENT
316 ,p_module => l_log_module);
317 END IF;
318 END CASE;
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_ap_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_ap_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_ap_acct_hooks_pkg;