[Home] [Help]
PACKAGE BODY: APPS.XLA_FV_ACCT_HOOKS_PKG
Source
1 PACKAGE BODY xla_fv_acct_hooks_pkg AS
2 -- $Header: xlaapfvh.pkb 120.4 2006/06/28 05:51:54 vinaykum noship $
3 /*===========================================================================+
4 | Copyright (c) 2003 Oracle Corporation BelmFont, California, USA |
5 | ALL rights reserved. |
6 +============================================================================+
7 | PACKAGE NAME |
8 | xla_fv_acct_hooks_pkg |
9 | |
10 | DESCRIPTION |
11 | Call accounting program integration APIs for Federal |
12 | |
13 | HISTORY |
14 | 08/15/2005 W. Chan Created |
15 | |
16 +===========================================================================*/
17
18
19 --=============================================================================
20 -- **************** declaraions ********************
21 --=============================================================================
22
23 --=============================================================================
24 -- *********** Local Trace Routine **********
25 --=============================================================================
26 C_LEVEL_STATEMENT CONSTANT NUMBER := FND_LOG.LEVEL_STATEMENT;
27 C_LEVEL_PROCEDURE CONSTANT NUMBER := FND_LOG.LEVEL_PROCEDURE;
28 C_LEVEL_EVENT CONSTANT NUMBER := FND_LOG.LEVEL_EVENT;
29 C_LEVEL_EXCEPTION CONSTANT NUMBER := FND_LOG.LEVEL_EXCEPTION;
30 C_LEVEL_ERROR CONSTANT NUMBER := FND_LOG.LEVEL_ERROR;
31 C_LEVEL_UNEXPECTED CONSTANT NUMBER := FND_LOG.LEVEL_UNEXPECTED;
32
33 C_LEVEL_LOG_DISABLED CONSTANT NUMBER := 99;
34 C_DEFAULT_MODULE CONSTANT VARCHAR2(240) := 'xla.plsql.xla_fv_acct_hooks_pkg';
35
36 g_log_level NUMBER;
37 g_log_enabled BOOLEAN;
38
39 PROCEDURE trace
40 (p_msg IN VARCHAR2
41 ,p_level IN NUMBER
42 ,p_module IN VARCHAR2 DEFAULT C_DEFAULT_MODULE) IS
43 BEGIN
44 IF (p_msg IS NULL AND p_level >= g_log_level) THEN
45 fnd_log.message(p_level, NVL(p_module,C_DEFAULT_MODULE));
46 ELSIF p_level >= g_log_level THEN
47 fnd_log.string(p_level, NVL(p_module,C_DEFAULT_MODULE), p_msg);
48 END IF;
49
50 EXCEPTION
51 WHEN xla_exceptions_pkg.application_exception THEN
52 RAISE;
53 WHEN OTHERS THEN
54 xla_exceptions_pkg.raise_message
55 (p_location => 'xla_fv_acct_hooks_pkg.trace');
56 END trace;
57
58 --=============================================================================
59 -- ******* Print Log File **********
60 --=============================================================================
61 PROCEDURE print_logfile(p_msg IN VARCHAR2) IS
62 BEGIN
63
64 fnd_file.put_line(fnd_file.log,p_msg);
65
66 EXCEPTION
67 WHEN xla_exceptions_pkg.application_exception THEN
68 RAISE;
69 WHEN OTHERS THEN
70 xla_exceptions_pkg.raise_message
71 (p_location => 'xla_fv_acct_hooks_pkg.print_logfile');
72 END print_logfile;
73
74
75 --=============================================================================
76 -- *********** public procedures and functions **********
77 --=============================================================================
78 --=============================================================================
79 --
80 --
81 --
82 --
83 --
84 --
85 --
86 --
87 --
88 --
89 --
90 -- 1. main (procedure)
91 --
92 --
93 --
94 --
95 --
96 --
97 --
98 --
99 --
100 --
101 --=============================================================================
102
103 --=============================================================================
104
105 --============================================================================
106 --
107 --
108 --
109 --============================================================================
110 PROCEDURE main
111 (p_application_id IN NUMBER
112 ,p_ledger_id IN NUMBER
113 ,p_process_category IN VARCHAR2
114 ,p_end_date IN DATE
115 ,p_accounting_mode IN VARCHAR2
116 ,p_valuation_method IN VARCHAR2
117 ,p_security_id_int_1 IN NUMBER
118 ,p_security_id_int_2 IN NUMBER
119 ,p_security_id_int_3 IN NUMBER
120 ,p_security_id_char_1 IN VARCHAR2
121 ,p_security_id_char_2 IN VARCHAR2
122 ,p_security_id_char_3 IN VARCHAR2
123 ,p_report_request_id IN NUMBER
124 ,p_event_name IN VARCHAR2)
125 IS
126 l_log_module VARCHAR2(240);
127 l_sqlerrm VARCHAR2(2000);
128 BEGIN
129
130 IF g_log_enabled THEN
131 l_log_module := C_DEFAULT_MODULE||'.main';
132 END IF;
133
134 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
135 trace
136 (p_msg => 'BEGIN of procedure Main'
137 ,p_level => C_LEVEL_PROCEDURE
138 ,p_module => l_log_module);
139 trace
140 (p_msg => 'p_application_id = '||p_application_id
141 ,p_level => C_LEVEL_PROCEDURE
142 ,p_module => l_log_module);
143 trace
144 (p_msg => 'p_accounting_mode = '||p_accounting_mode
145 ,p_level => C_LEVEL_PROCEDURE
146 ,p_module => l_log_module);
147 trace
148 (p_msg => 'p_event_name = '||p_event_name
149 ,p_level => C_LEVEL_PROCEDURE
150 ,p_module => l_log_module);
151 END IF;
152
153 IF (C_LEVEL_PROCEDURE >= g_log_level) AND
154 (p_event_name IN ('preaccounting','postaccounting'))
155 THEN
156 trace
157 (p_msg => 'p_ledger_id = '||p_ledger_id
158 ,p_level => C_LEVEL_PROCEDURE
159 ,p_module => l_log_module);
160 trace
161 (p_msg => 'p_process_category = '||p_process_category
162 ,p_level => C_LEVEL_PROCEDURE
163 ,p_module => l_log_module);
164 trace
165 (p_msg => 'p_end_date = '||p_end_date
166 ,p_level => C_LEVEL_PROCEDURE
167 ,p_module => l_log_module);
168 trace
169 (p_msg => 'p_valuation_method = '||p_valuation_method
170 ,p_level => C_LEVEL_PROCEDURE
171 ,p_module => l_log_module);
172 trace
173 (p_msg => 'p_security_id_int_1 = '||p_security_id_int_1
174 ,p_level => C_LEVEL_PROCEDURE
175 ,p_module => l_log_module);
176 trace
177 (p_msg => 'p_security_id_int_2 = '||p_security_id_int_2
178 ,p_level => C_LEVEL_PROCEDURE
179 ,p_module => l_log_module);
180 trace
181 (p_msg => 'p_security_id_int_3 = '||p_security_id_int_3
182 ,p_level => C_LEVEL_PROCEDURE
183 ,p_module => l_log_module);
184 trace
185 (p_msg => 'p_security_id_char_1 = '||p_security_id_char_1
186 ,p_level => C_LEVEL_PROCEDURE
187 ,p_module => l_log_module);
188 trace
189 (p_msg => 'p_security_id_char_2 = '||p_security_id_char_2
190 ,p_level => C_LEVEL_PROCEDURE
191 ,p_module => l_log_module);
192 trace
193 (p_msg => 'p_security_id_char_3 = '||p_security_id_char_3
194 ,p_level => C_LEVEL_PROCEDURE
195 ,p_module => l_log_module);
196 trace
197 (p_msg => 'p_report_request_id = '||p_report_request_id
198 ,p_level => C_LEVEL_PROCEDURE
199 ,p_module => l_log_module);
200 END IF;
201
202 ----------------------------------------------------------------------------
203 -- Calling different event depending on event_name
204 ----------------------------------------------------------------------------
205
206 CASE
207 WHEN p_event_name = 'preaccounting' THEN
208 -------------------------------------------------------------------------
209 -- Following code calls preaccounting API
210 -------------------------------------------------------------------------
211 IF (C_LEVEL_EVENT >= g_log_level) THEN
212 trace
213 (p_msg => 'Ready to call preaccounting API for FV'
214 ,p_level => C_LEVEL_EVENT
215 ,p_module => l_log_module);
216 END IF;
217
218 fv_sla_processing_pub.preaccounting
219 ( p_application_id => p_application_id
220 ,p_ledger_id => p_ledger_id
221 ,p_process_category => p_process_category
222 ,p_end_date => p_end_date
223 ,p_accounting_mode => p_accounting_mode
224 ,p_valuation_method => p_valuation_method
225 ,p_security_id_int_1 => p_security_id_int_1
226 ,p_security_id_int_2 => p_security_id_int_2
227 ,p_security_id_int_3 => p_security_id_int_3
228 ,p_security_id_char_1 => p_security_id_char_1
229 ,p_security_id_char_2 => p_security_id_char_2
230 ,p_security_id_char_3 => p_security_id_char_3
231 ,p_report_request_id => p_report_request_id );
232
233 IF (C_LEVEL_EVENT >= g_log_level) THEN
234 trace
235 (p_msg => 'Control returned from preaccounting API'
236 ,p_level => C_LEVEL_EVENT
237 ,p_module => l_log_module);
238 END IF;
239
240 WHEN p_event_name = 'extract' THEN
241 -------------------------------------------------------------------------
242 -- Following code calls extract API
243 -------------------------------------------------------------------------
244 IF (C_LEVEL_EVENT >= g_log_level) THEN
245 trace
246 (p_msg => 'Ready to call extract API for FV'
247 ,p_level => C_LEVEL_EVENT
248 ,p_module => l_log_module);
249 END IF;
250
251 fv_sla_processing_pub.extract
252 ( p_application_id => p_application_id
253 ,p_accounting_mode => p_accounting_mode);
254
255 IF (C_LEVEL_EVENT >= g_log_level) THEN
256 trace
257 (p_msg => 'Control returned from extract API'
258 ,p_level => C_LEVEL_EVENT
259 ,p_module => l_log_module);
260 END IF;
261
262 WHEN p_event_name = 'postprocessing' THEN
263 -------------------------------------------------------------------------
264 -- Following code calls postprocessing API
265 -------------------------------------------------------------------------
266 IF (C_LEVEL_EVENT >= g_log_level) THEN
267 trace
268 (p_msg => 'Ready to call postprocessing API for FV'
269 ,p_level => C_LEVEL_EVENT
270 ,p_module => l_log_module);
271 END IF;
272
273 fv_sla_processing_pub.postprocessing
274 ( p_application_id => p_application_id
275 ,p_accounting_mode => p_accounting_mode);
276
277 IF (C_LEVEL_EVENT >= g_log_level) THEN
278 trace
279 (p_msg => 'Control returned from postprocessing API'
280 ,p_level => C_LEVEL_EVENT
281 ,p_module => l_log_module);
282 END IF;
283
284 WHEN p_event_name = 'postaccounting' THEN
285 -------------------------------------------------------------------------
286 -- Following code calls postaccounting API
287 -------------------------------------------------------------------------
288 IF (C_LEVEL_EVENT >= g_log_level) THEN
289 trace
290 (p_msg => 'Ready to call postaccounting API for FV'
291 ,p_level => C_LEVEL_EVENT
292 ,p_module => l_log_module);
293 END IF;
294
295 fv_sla_processing_pub.postaccounting
296 ( p_application_id => p_application_id
297 ,p_ledger_id => p_ledger_id
298 ,p_process_category => p_process_category
299 ,p_end_date => p_end_date
300 ,p_accounting_mode => p_accounting_mode
301 ,p_valuation_method => p_valuation_method
302 ,p_security_id_int_1 => p_security_id_int_1
303 ,p_security_id_int_2 => p_security_id_int_2
304 ,p_security_id_int_3 => p_security_id_int_3
305 ,p_security_id_char_1 => p_security_id_char_1
306 ,p_security_id_char_2 => p_security_id_char_2
307 ,p_security_id_char_3 => p_security_id_char_3
308 ,p_report_request_id => p_report_request_id );
309
310 IF (C_LEVEL_EVENT >= g_log_level) THEN
311 trace
312 (p_msg => 'Control returned from postaccounting API'
313 ,p_level => C_LEVEL_EVENT
314 ,p_module => l_log_module);
315 END IF;
316 END CASE;
317 EXCEPTION
318 WHEN xla_exceptions_pkg.application_exception THEN
319 l_sqlerrm := fnd_message.get();
320
321 IF (C_LEVEL_EXCEPTION>= g_log_level) THEN
322 trace
323 (p_msg => 'Technical problem : Error encountered in product API for '||p_event_name||
324 xla_environment_pkg.g_chr_newline||
325 l_sqlerrm
326 ,p_level => C_LEVEL_EXCEPTION
327 ,p_module => l_log_module);
328 END IF;
329
330 xla_accounting_err_pkg.build_message
331 (p_appli_s_name => 'XLA'
332 ,p_msg_name => 'XLA_AP_TECHNICAL_ERROR'
333 ,p_token_1 => 'APPLICATION_NAME'
334 ,p_value_1 => 'SLA'
335 ,p_entity_id => NULL
336 ,p_event_id => NULL);
337
338 print_logfile('Technical problem : Error encountered in product API for '||p_event_name);
339
340 xla_exceptions_pkg.raise_message
341 (p_appli_s_name => 'XLA'
342 ,p_msg_name => 'XLA_COMMON_ERROR'
343 ,p_token_1 => 'LOCATION'
344 ,p_value_1 => 'xla_fv_acct_hooks_pkg.main'
345 ,p_token_2 => 'ERROR'
346 ,p_value_2 => 'Technical problem : Error encountered in product API for '||p_event_name||
347 xla_environment_pkg.g_chr_newline||l_sqlerrm);
348 WHEN OTHERS THEN
349 l_sqlerrm := sqlerrm;
350
351 IF (C_LEVEL_EXCEPTION>= g_log_level) THEN
352 trace
353 (p_msg => 'Technical problem : Error encountered in product API for '||p_event_name||
354 xla_environment_pkg.g_chr_newline||l_sqlerrm
355 ,p_level => C_LEVEL_EXCEPTION
356 ,p_module => l_log_module);
357 END IF;
358
359 xla_accounting_err_pkg.build_message
360 (p_appli_s_name => 'XLA'
361 ,p_msg_name => 'XLA_AP_TECHNICAL_ERROR'
362 ,p_token_1 => 'APPLICATION_NAME'
363 ,p_value_1 => 'SLA'
364 ,p_entity_id => NULL
365 ,p_event_id => NULL);
366
367 print_logfile('Technical problem : Error encountered in product API for '||p_event_name);
368
369 xla_exceptions_pkg.raise_message
370 (p_appli_s_name => 'XLA'
371 ,p_msg_name => 'XLA_COMMON_ERROR'
372 ,p_token_1 => 'LOCATION'
373 ,p_value_1 => 'xla_fv_acct_hooks_pkg.main'
374 ,p_token_2 => 'ERROR'
375 ,p_value_2 => 'Technical problem : Error encountered in product API for '||p_event_name||
376 xla_environment_pkg.g_chr_newline||
377 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_fv_acct_hooks_pkg;