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