DBA Data[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;