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