[Home] [Help]
PACKAGE BODY: APPS.XLA_JE_FUNDS_CHECKER_PKG
Source
1 PACKAGE BODY xla_je_funds_checker_pkg AS
2 /* $Header: xlajefck.pkb 120.13 2006/11/10 19:50:57 awan ship $ */
3
4 -------------------------------------------------------------------------------
5 -- declaring global types
6 -------------------------------------------------------------------------------
7
8
9 -------------------------------------------------------------------------------
10 -- forward declarion of private procedures and functions
11 -------------------------------------------------------------------------------
12
13 FUNCTION bc_packet_insert
14 (p_ae_header_id IN INTEGER
15 ,p_application_id IN INTEGER
16 ,p_funds_action IN VARCHAR2)
17 RETURN INTEGER;
18
19 FUNCTION funds_action
20 (p_ledger_id IN INTEGER
21 ,p_ae_header_id IN INTEGER
22 ,p_application_id IN INTEGER
23 ,p_funds_action IN VARCHAR2
24 ,p_packet_id IN INTEGER)
25 RETURN VARCHAR2;
26
27 -------------------------------------------------------------------------------
28 -- declaring global constants
29 -------------------------------------------------------------------------------
30
31 G_FUNDS_ACTION_RESERVE CONSTANT VARCHAR2(1) := 'P'; -- 5649848 'R'
32 G_FUNDS_ACTION_UNRESERVE CONSTANT VARCHAR2(1) := 'U';
33 G_FUNDS_ACTION_CHECK CONSTANT VARCHAR2(1) := 'C';
34
35
36 --=============================================================================
37 -- *********** Local Trace Routine **********
38 --=============================================================================
39 C_LEVEL_STATEMENT CONSTANT NUMBER := FND_LOG.LEVEL_STATEMENT;
40 C_LEVEL_PROCEDURE CONSTANT NUMBER := FND_LOG.LEVEL_PROCEDURE;
41 C_LEVEL_EVENT CONSTANT NUMBER := FND_LOG.LEVEL_EVENT;
42 C_LEVEL_EXCEPTION CONSTANT NUMBER := FND_LOG.LEVEL_EXCEPTION;
43 C_LEVEL_ERROR CONSTANT NUMBER := FND_LOG.LEVEL_ERROR;
44 C_LEVEL_UNEXPECTED CONSTANT NUMBER := FND_LOG.LEVEL_UNEXPECTED;
45
46 C_LEVEL_LOG_DISABLED CONSTANT NUMBER := 99;
47 C_DEFAULT_MODULE CONSTANT VARCHAR2(240) := 'xla.plsql.xla_je_funds_checker_pkg';
48
49 g_debug_flag VARCHAR2(1) :=
50 NVL(fnd_profile.value('XLA_DEBUG_TRACE'),'N');
51
52 g_log_level NUMBER;
53 g_log_enabled BOOLEAN;
54
55 PROCEDURE trace
56 (p_msg IN VARCHAR2
57 ,p_module IN VARCHAR2
58 ,p_level IN NUMBER) IS
59 BEGIN
60 ----------------------------------------------------------------------------
61 -- Following is for FND log.
62 ----------------------------------------------------------------------------
63 IF (p_msg IS NULL AND p_level >= g_log_level) THEN
64 fnd_log.message(p_level, p_module);
65 ELSIF p_level >= g_log_level THEN
66 fnd_log.string(p_level, p_module, p_msg);
67 END IF;
68
69 EXCEPTION
70 WHEN xla_exceptions_pkg.application_exception THEN
71 RAISE;
72 WHEN OTHERS THEN
73 xla_exceptions_pkg.raise_message
74 (p_location => 'xla_je_funds_checker_pkg.trace');
75 END trace;
76
77 --=============================================================================
78 -- *********** public procedures and functions **********
79 --=============================================================================
80
81 --=============================================================================
82 --
83 --
84 --
85 --=============================================================================
86 FUNCTION reserve_funds
87 (p_ae_header_id IN INTEGER
88 ,p_application_id IN INTEGER
89 ,p_ledger_id IN INTEGER
90 ,p_packet_id OUT NOCOPY INTEGER)
91 RETURN VARCHAR2
92 IS
93 l_result VARCHAR2(1);
94 l_packet_id INTEGER;
95 l_log_module VARCHAR2(240);
96
97 BEGIN
98 IF g_log_enabled THEN
99 l_log_module := C_DEFAULT_MODULE||'.reserve_funds';
100 END IF;
101
102 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
103 trace(p_msg => 'BEGIN of procedure reserve_funds',
104 p_module => l_log_module,
105 p_level => C_LEVEL_PROCEDURE);
106 trace(p_msg => 'ae_header_id = '||p_ae_header_id,
107 p_module => l_log_module,
108 p_level => C_LEVEL_PROCEDURE);
109 trace(p_msg => 'application_id = '||p_application_id,
110 p_module => l_log_module,
111 p_level => C_LEVEL_PROCEDURE);
112 trace(p_msg => 'ledger_id = '||p_ledger_id,
113 p_module => l_log_module,
114 p_level => C_LEVEL_PROCEDURE);
115 END IF;
116
117 --
118 -- Insert into gl_bc_packet
119 --
120 p_packet_id := bc_packet_insert(p_ae_header_id, p_application_id, G_FUNDS_ACTION_RESERVE);
121
122 --
123 -- Call funds checker
124 --
125 l_result := funds_action(p_ledger_id, p_ae_header_id, p_application_id,
126 G_FUNDS_ACTION_RESERVE, p_packet_id);
127
128 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
129 trace(p_msg => 'END of procedure reserve_funds',
130 p_module => l_log_module,
131 p_level => C_LEVEL_PROCEDURE);
132 END IF;
133
134 return l_result;
135 EXCEPTION
136 WHEN xla_exceptions_pkg.application_exception THEN
137 RAISE;
138 WHEN OTHERS THEN
139 xla_exceptions_pkg.raise_message
140 (p_location => 'xla_je_funds_checker_pkg.reserve_funds');
141 END reserve_funds;
142
143
144 --=============================================================================
145 --
146 --
147 --
148 --=============================================================================
149 FUNCTION unreserve_funds
150 (p_ae_header_id IN INTEGER
151 ,p_application_id IN INTEGER
152 ,p_ledger_id IN INTEGER
153 ,p_packet_id IN INTEGER)
154 RETURN VARCHAR2
155 IS
156 l_result VARCHAR2(1);
157 l_log_module VARCHAR2(240);
158
159 BEGIN
160 IF g_log_enabled THEN
161 l_log_module := C_DEFAULT_MODULE||'.unreserve_funds';
162 END IF;
163
164 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
165 trace(p_msg => 'BEGIN of procedure unreserve_funds',
166 p_module => l_log_module,
167 p_level => C_LEVEL_PROCEDURE);
168 trace(p_msg => 'ae_header_id = '||p_ae_header_id,
169 p_module => l_log_module,
170 p_level => C_LEVEL_PROCEDURE);
171 trace(p_msg => 'application_id = '||p_application_id,
172 p_module => l_log_module,
173 p_level => C_LEVEL_PROCEDURE);
174 trace(p_msg => 'ledger_id = '||p_ledger_id,
175 p_module => l_log_module,
176 p_level => C_LEVEL_PROCEDURE);
177 trace(p_msg => 'packet_id = '||p_packet_id,
178 p_module => l_log_module,
179 p_level => C_LEVEL_PROCEDURE);
180 END IF;
181
182 --
183 -- Call funds checker with unreserve mode
184 --
185 l_result := funds_action(p_ledger_id, p_ae_header_id, p_application_id,
186 G_FUNDS_ACTION_UNRESERVE, p_packet_id);
187
188 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
189 trace(p_msg => 'END of procedure unreserve_funds',
190 p_module => l_log_module,
191 p_level => C_LEVEL_PROCEDURE);
192 END IF;
193
194 return l_result;
195 EXCEPTION
196 WHEN xla_exceptions_pkg.application_exception THEN
197 RAISE;
198 WHEN OTHERS THEN
199 xla_exceptions_pkg.raise_message
200 (p_location => 'xla_je_funds_checker_pkg.unreserve_funds');
201 END unreserve_funds;
202
203
204 --=============================================================================
205 --
206 --
207 --
208 --=============================================================================
209 PROCEDURE check_funds
210 (p_ae_header_id IN INTEGER
211 ,p_application_id IN INTEGER
212 ,p_ledger_id IN INTEGER
213 ,p_packet_id IN INTEGER
214 ,p_retcode OUT NOCOPY VARCHAR2)
215 IS
216 l_log_module VARCHAR2(240);
217 BEGIN
218 IF g_log_enabled THEN
219 l_log_module := C_DEFAULT_MODULE||'.check_funds';
220 END IF;
221
222 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
223 trace(p_msg => 'BEGIN of procedure check_funds',
224 p_module => l_log_module,
225 p_level => C_LEVEL_PROCEDURE);
226 trace(p_msg => 'ae_header_id = '||p_ae_header_id,
227 p_module => l_log_module,
228 p_level => C_LEVEL_PROCEDURE);
229 trace(p_msg => 'application_id = '||p_application_id,
230 p_module => l_log_module,
231 p_level => C_LEVEL_PROCEDURE);
232 trace(p_msg => 'ledger_id = '||p_ledger_id,
233 p_module => l_log_module,
234 p_level => C_LEVEL_PROCEDURE);
235 trace(p_msg => 'packet_id = '||p_packet_id,
236 p_module => l_log_module,
237 p_level => C_LEVEL_PROCEDURE);
238 END IF;
239
240
241 p_retcode := funds_action(p_ledger_id, p_ae_header_id, p_application_id,
242 G_FUNDS_ACTION_CHECK, p_packet_id);
243
244 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
245 trace(p_msg => 'END of procedure check_funds',
246 p_module => l_log_module,
247 p_level => C_LEVEL_PROCEDURE);
248 END IF;
249
250 EXCEPTION
251 WHEN xla_exceptions_pkg.application_exception THEN
252 RAISE;
253 WHEN OTHERS THEN
254 xla_exceptions_pkg.raise_message
255 (p_location => 'xla_je_funds_checker_pkg.check_funds');
256 END check_funds;
257
258
259 --=============================================================================
260 --
261 --
262 --
263 --=============================================================================
264 PROCEDURE insert_check_funds_row
265 (p_packet_id IN INTEGER
266 ,p_ledger_id IN INTEGER
267 ,p_application_id IN INTEGER
268 ,p_ae_header_id IN INTEGER
269 ,p_ae_line_num IN INTEGER
270 ,p_gl_date IN DATE
271 ,p_balance_type_code IN VARCHAR2
272 ,p_je_category_name IN VARCHAR2
273 ,p_budget_version_id IN INTEGER
274 ,p_encumbrance_type_id IN INTEGER
275 ,p_code_combination_id IN INTEGER
276 ,p_currency_code IN VARCHAR2
277 ,p_entered_dr IN NUMBER
278 ,p_entered_cr IN NUMBER
279 ,p_accounted_dr IN NUMBER
280 ,p_accounted_cr IN NUMBER
281 ,p_ussgl_transaction_code IN VARCHAR2
282 ,p_event_id IN NUMBER)
283 IS
284 PRAGMA AUTONOMOUS_TRANSACTION;
285 l_log_module VARCHAR2(240);
286 BEGIN
287 IF g_log_enabled THEN
288 l_log_module := C_DEFAULT_MODULE||'.insert_check_funds_row';
289 END IF;
290
291 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
292 trace(p_msg => 'BEGIN of procedure insert_check_funds_row',
293 p_module => l_log_module,
294 p_level => C_LEVEL_PROCEDURE);
295 trace(p_msg => 'application_id = '||p_application_id,
296 p_module => l_log_module,
297 p_level => C_LEVEL_PROCEDURE);
298 trace(p_msg => 'ledger_id = '||p_ledger_id,
299 p_module => l_log_module,
300 p_level => C_LEVEL_PROCEDURE);
301 trace(p_msg => 'packet_id = '||p_packet_id,
302 p_module => l_log_module,
303 p_level => C_LEVEL_PROCEDURE);
304 trace(p_msg => 'ae_header_id = '||p_ae_header_id,
305 p_module => l_log_module,
306 p_level => C_LEVEL_PROCEDURE);
307 trace(p_msg => 'ae_line_num = '||p_ae_line_num,
308 p_module => l_log_module,
309 p_level => C_LEVEL_PROCEDURE);
310 END IF;
311
312 --
313 -- Insert the data into gl_je_packets
314 --
315 insert into gl_bc_packets
316 (PACKET_ID
317 ,APPLICATION_ID
318 ,LEDGER_ID
319 ,JE_SOURCE_NAME
320 ,JE_CATEGORY_NAME
321 ,CODE_COMBINATION_ID
322 ,ACTUAL_FLAG
323 ,PERIOD_NAME
324 ,PERIOD_YEAR
325 ,PERIOD_NUM
326 ,QUARTER_NUM
327 ,CURRENCY_CODE
328 ,STATUS_CODE
329 ,LAST_UPDATE_DATE
330 ,LAST_UPDATED_BY
331 ,ENCUMBRANCE_TYPE_ID
332 ,BUDGET_VERSION_ID
333 ,ENTERED_DR
334 ,ENTERED_CR
335 ,ACCOUNTED_DR
336 ,ACCOUNTED_CR
337 ,EVENT_ID
338 ,AE_HEADER_ID
339 ,AE_LINE_NUM
340 ,SESSION_ID
341 ,SERIAL_ID
342 ,BC_DATE
343 )
344 SELECT
345 p_packet_id
346 , p_application_id
347 , p_ledger_id
348 , xs.je_source_name
349 , p_je_category_name
350 , p_code_combination_id
351 , p_balance_type_code
352 , gps.period_name
353 , gps.period_year
354 , gps.period_num
355 , gps.quarter_num
356 , p_currency_code
357 , G_FUNDS_ACTION_CHECK
358 , sysdate
359 , xla_environment_pkg.g_usr_id
360 , p_encumbrance_type_id
361 , p_budget_version_id
362 , p_entered_dr
363 , p_entered_cr
364 , p_accounted_dr
365 , p_accounted_cr
366 , p_event_id
367 , p_ae_header_id
368 , p_ae_line_num
369 , ses.sid
370 , ses.serial#
371 , p_gl_date
372 FROM xla_subledgers xs
373 , gl_period_statuses gps
374 , v$session ses
375 WHERE xs.application_id = p_application_id
376 AND gps.application_id = 101
377 AND gps.ledger_id = p_ledger_id
378 AND p_gl_date between gps.start_date and gps.end_date
379 AND ses.audsid = userenv('SESSIONID');
380
381 COMMIT;
382
383 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
384 trace(p_msg => 'END of procedure insert_check_funds_row',
385 p_module => l_log_module,
386 p_level => C_LEVEL_PROCEDURE);
387 END IF;
388
389 EXCEPTION
390 WHEN xla_exceptions_pkg.application_exception THEN
391 RAISE;
392 WHEN OTHERS THEN
393 xla_exceptions_pkg.raise_message
394 (p_location => 'xla_je_funds_checker_pkg.insert_check_funds_row');
395
396 END insert_check_funds_row;
397
398 --=============================================================================
399 -- *********** private procedures and functions **********
400 --=============================================================================
401
402 --=============================================================================
403 --
404 --
405 --
406 --=============================================================================
407 FUNCTION bc_packet_insert
408 (p_ae_header_id IN INTEGER
409 ,p_application_id IN INTEGER
410 ,p_funds_action IN VARCHAR2)
411 RETURN INTEGER
412 IS
413 PRAGMA AUTONOMOUS_TRANSACTION;
414 CURSOR c_get_packet_id IS
415 SELECT gl_bc_packets_s.NEXTVAL
416 FROM dual;
417 l_packet_id NUMBER;
418 l_log_module VARCHAR2(240);
419
420 BEGIN
421 IF g_log_enabled THEN
422 l_log_module := C_DEFAULT_MODULE||'.bc_packet_insert';
423 END IF;
424
425 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
426 trace(p_msg => 'BEGIN of procedure bc_packet_insert',
427 p_module => l_log_module,
428 p_level => C_LEVEL_PROCEDURE);
429 trace(p_msg => 'ae_header_id = '||p_ae_header_id,
430 p_module => l_log_module,
431 p_level => C_LEVEL_PROCEDURE);
432 trace(p_msg => 'application_id = '||p_application_id,
433 p_module => l_log_module,
434 p_level => C_LEVEL_PROCEDURE);
435 trace(p_msg => 'funds_action = '||p_funds_action,
436 p_module => l_log_module,
437 p_level => C_LEVEL_PROCEDURE);
438 END IF;
439
440 --
441 -- Get the packet id
442 --
443 OPEN c_get_packet_id;
444 FETCH c_get_packet_id INTO l_packet_id;
445
446 IF c_get_packet_id%FOUND THEN
447 CLOSE c_get_packet_id;
448 ELSE
449 CLOSE c_get_packet_id;
450 fnd_message.set_name('SQLGL', 'GL_ERROR_GETTING_UNIQUE_ID');
451 fnd_message.set_token('SEQUENCE', 'GL_BC_PACKETS_S');
452 app_exception.raise_exception;
453 END IF;
454
455 IF (C_LEVEL_EVENT >= g_log_level) THEN
456 trace(p_msg => 'packet_id: '||l_packet_id,
457 p_module => l_log_module,
458 p_level => C_LEVEL_EVENT);
459 END IF;
460
461 --
462 -- Insert the data into gl_je_packets
463 --
464 insert into gl_bc_packets
465 (PACKET_ID
466 ,APPLICATION_ID
467 ,LEDGER_ID
468 ,JE_SOURCE_NAME
469 ,JE_CATEGORY_NAME
470 ,CODE_COMBINATION_ID
471 ,ACTUAL_FLAG
472 ,PERIOD_NAME
473 ,PERIOD_YEAR
474 ,PERIOD_NUM
475 ,QUARTER_NUM
476 ,CURRENCY_CODE
477 ,STATUS_CODE -- Should be C if checking, P if reservation
478 ,LAST_UPDATE_DATE
479 ,LAST_UPDATED_BY
480 ,ENCUMBRANCE_TYPE_ID
481 ,BUDGET_VERSION_ID
482 ,ENTERED_DR
483 ,ENTERED_CR
484 ,ACCOUNTED_DR
485 ,ACCOUNTED_CR
486 ,EVENT_ID
487 ,AE_HEADER_ID
488 ,AE_LINE_NUM
489 ,SESSION_ID
490 ,SERIAL_ID
491 ,BC_DATE
492 )
493 SELECT
494 l_packet_id
495 , p_application_id
496 , xah.ledger_id
497 , xs.je_source_name
498 , xah.je_category_name
499 , xal.code_combination_id
500 , xah.balance_type_code
501 , xah.period_name
502 , gps.period_year
503 , gps.period_num
504 , gps.quarter_num
505 , xal.currency_code
506 , p_funds_action
507 , sysdate
508 , xla_environment_pkg.g_usr_id
509 , xal.encumbrance_type_id
510 , xah.budget_version_id
511 , xal.entered_dr
512 , xal.entered_cr
513 , xal.accounted_dr
514 , xal.accounted_cr
515 , xah.event_id
516 , xal.ae_header_id
517 , xal.ae_line_num
518 , ses.sid
519 , ses.serial#
520 , xah.accounting_date
521 FROM xla_ae_headers xah
522 , xla_ae_lines xal
523 , xla_subledgers xs
524 , gl_period_statuses gps
525 , v$session ses
526 WHERE xal.application_id = xah.application_id
527 AND xal.ae_header_id = xah.ae_header_id
528 AND xs.application_id = xah.application_id
529 AND gps.application_id = 101
530 AND gps.ledger_id = xah.ledger_id
531 AND gps.period_name = xah.period_name
532 AND xah.application_id = p_application_id
533 AND xah.ae_header_id = p_ae_header_id
534 AND ses.audsid = userenv('SESSIONID');
535
536 IF (C_LEVEL_EVENT >= g_log_level) THEN
537 trace(p_msg => 'Num of rows inserted: '||SQL%ROWCOUNT,
538 p_module => l_log_module,
539 p_level => C_LEVEL_EVENT);
540 END IF;
541
542 COMMIT;
543
544 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
545 trace(p_msg => 'END of procedure bc_packet_insert',
546 p_module => l_log_module,
547 p_level => C_LEVEL_PROCEDURE);
548 END IF;
549
550 RETURN l_packet_id;
551
552 EXCEPTION
553 WHEN xla_exceptions_pkg.application_exception THEN
554
555 if (c_get_packet_id%ISOPEN) then
556 CLOSE c_get_packet_id;
557 end if;
558
559 RAISE;
560 WHEN OTHERS THEN
561
562 if (c_get_packet_id%ISOPEN) then
563 CLOSE c_get_packet_id;
564 end if;
565
566 xla_exceptions_pkg.raise_message
567 (p_location => 'xla_je_funds_checker_pkg.bc_packet_insert');
568
569 END bc_packet_insert;
570
571 --=============================================================================
572 --
573 --
574 --
575 --=============================================================================
576 FUNCTION funds_action
577 (p_ledger_id IN INTEGER
578 ,p_ae_header_id IN INTEGER
579 ,p_application_id IN INTEGER
580 ,p_funds_action IN VARCHAR2
581 ,p_packet_id IN INTEGER)
582 RETURN VARCHAR2
583 IS
584 l_result VARCHAR2(1);
585 l_log_module VARCHAR2(240);
586
587 BEGIN
588 IF g_log_enabled THEN
589 l_log_module := C_DEFAULT_MODULE||'.funds_action';
590 END IF;
591
592 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
593 trace(p_msg => 'BEGIN of procedure funds_action',
594 p_module => l_log_module,
595 p_level => C_LEVEL_PROCEDURE);
596 trace(p_msg => 'ledger_id = '||p_ledger_id,
597 p_module => l_log_module,
598 p_level => C_LEVEL_PROCEDURE);
599 trace(p_msg => 'ae_header_id = '||p_ae_header_id,
600 p_module => l_log_module,
601 p_level => C_LEVEL_PROCEDURE);
602 trace(p_msg => 'application_id = '||p_application_id,
603 p_module => l_log_module,
604 p_level => C_LEVEL_PROCEDURE);
605 trace(p_msg => 'funds_action = '||p_funds_action,
606 p_module => l_log_module,
607 p_level => C_LEVEL_PROCEDURE);
608 trace(p_msg => 'packet_id = '||p_packet_id,
609 p_module => l_log_module,
610 p_level => C_LEVEL_PROCEDURE);
611 END IF;
612
613 --
614 -- Call PSA funds checker function
615 --
616
617
618 IF (NOT PSA_FUNDS_CHECKER_PKG.glxfck
619 (p_ledgerid => p_ledger_id
620 ,p_packetid => p_packet_id
621 ,p_mode => p_funds_action
622 ,p_override => 'N'
623 ,p_conc_flag => 'N'
624 ,p_user_id => xla_environment_pkg.g_usr_id
625 ,p_user_resp_id => xla_environment_pkg.g_resp_appl_id
626 ,p_calling_prog_flag => 'S' -- SLA
627 ,p_return_code => l_result)) THEN
628
629 xla_exceptions_pkg.raise_message
630 ('XLA'
631 ,'XLA_COMMON_ERROR'
632 ,'ERROR'
633 ,'Error from funds checking routine: '||PSA_FUNDS_CHECKER_PKG.GET_DEBUG
634 ,'LOCATION'
635 ,'xla_je_funds_checker_pkg.funds_action');
636
637 END IF;
638
639 IF (C_LEVEL_EVENT >= g_log_level) THEN
640 trace(p_msg => 'GL_FUNDS_CHECKER_PKG.glxfck return code = '||l_result,
641 p_module => l_log_module,
642 p_level => C_LEVEL_EVENT);
643 END IF;
644
645 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
646 trace(p_msg => 'END of procedure funds_action',
647 p_module => l_log_module,
648 p_level => C_LEVEL_PROCEDURE);
649 END IF;
650
651 return l_result;
652 EXCEPTION
653 WHEN xla_exceptions_pkg.application_exception THEN
654 IF (C_LEVEL_EVENT >= g_log_level) THEN
655 trace(p_msg => 'rollback in funds_action',
656 p_module => l_log_module,
657 p_level => C_LEVEL_EVENT);
658 END IF;
659
660 RAISE;
661 WHEN OTHERS THEN
662 IF (C_LEVEL_EVENT >= g_log_level) THEN
663 trace(p_msg => 'rollback in funds_action',
664 p_module => l_log_module,
665 p_level => C_LEVEL_EVENT);
666 END IF;
667
668 xla_exceptions_pkg.raise_message
669 (p_location => 'xla_je_funds_checker_pkg.funds_action');
670 END funds_action;
671
672 end xla_je_funds_checker_pkg;