[Home] [Help]
PACKAGE BODY: APPS.XLA_CMP_HASH_PKG
Source
1 PACKAGE BODY xla_cmp_hash_pkg AS
2 /* $Header: xlacphsh.pkb 120.19 2005/08/31 21:46:13 wychan ship $ */
3 /*===========================================================================+
4 | Copyright (c) 2001-2002 Oracle Corporation |
5 | Redwood Shores, CA, USA |
6 | All rights reserved. |
7 +============================================================================+
8 | PACKAGE NAME |
9 | xla_cmp_hash_pkg |
10 | |
11 | DESCRIPTION |
12 | |
13 | |
14 | HISTORY |
15 | 25-JUL-2002 K.Boussema Created |
16 | 11-FEB-2003 K.Boussema Added Drop package API |
17 | 18-FEB-2003 K.Boussema Added Hash product rule code API |
18 | 18-MAR-2003 K.Boussema Added amb_context_code column |
19 | 22-APR-2003 K.Boussema Included error messages |
20 | 22-JUN-2003 K.Boussema Updated error messages |
21 | 17-JUL-2003 K.Boussema Reviewd the code |
22 | 23-FEB-2004 K.Boussema Made changes for the FND_LOG. |
23 | 17-MAR-2004 K.Boussema Reviewed GetPADHashId to handle multiple AADs|
24 | with the same name (same product_rule_code) |
25 | 22-MAR-2004 K.Boussema Added a parameter p_module to the TRACE calls|
26 | and the procedure. |
27 | 11-MAY-2004 K.Boussema Removed the call to XLA trace routine from |
28 | trace() procedure |
29 | 24-JUN-2005 K.Boussema Redefined the GetPADHashId function as an |
30 | autonomous transaction |
31 | 26-JUN-2005 W.Chan Add application_id and product_rule_type_code |
32 | when looking up the hash id for the aad. |
33 | 12-AUG-2005 W.Chan bug 4549711 - Redefined the GetPADHashId |
34 | function as an non-autonomous transaction |
35 | 31-AUG-2005 W.Chan bug 4585458 - Fix GetPADHashId to not to |
36 | update the xla_product_rules_b with |
37 | product_rule_hash_id if one is not found |
38 +===========================================================================*/
39 --
40 --
41 --
42 --=============================================================================
43 -- *********** Local Trace Routine **********
44 --=============================================================================
45
46 C_LEVEL_STATEMENT CONSTANT NUMBER := FND_LOG.LEVEL_STATEMENT;
47 C_LEVEL_PROCEDURE CONSTANT NUMBER := FND_LOG.LEVEL_PROCEDURE;
48 C_LEVEL_EVENT CONSTANT NUMBER := FND_LOG.LEVEL_EVENT;
49 C_LEVEL_EXCEPTION CONSTANT NUMBER := FND_LOG.LEVEL_EXCEPTION;
50 C_LEVEL_ERROR CONSTANT NUMBER := FND_LOG.LEVEL_ERROR;
51 C_LEVEL_UNEXPECTED CONSTANT NUMBER := FND_LOG.LEVEL_UNEXPECTED;
52
53 C_LEVEL_LOG_DISABLED CONSTANT NUMBER := 99;
54 C_DEFAULT_MODULE CONSTANT VARCHAR2(240) := 'xla.plsql.xla_cmp_hash_pkg';
55
56 g_log_level NUMBER;
57 g_log_enabled BOOLEAN;
58
59 PROCEDURE trace
60 (p_msg IN VARCHAR2
61 ,p_level IN NUMBER
62 ,p_module IN VARCHAR2 DEFAULT C_DEFAULT_MODULE) IS
63 BEGIN
64 ----------------------------------------------------------------------------
65 -- Following is for FND log.
66 ----------------------------------------------------------------------------
67 IF (p_msg IS NULL AND p_level >= g_log_level) THEN
68 fnd_log.message(p_level, p_module);
69 ELSIF p_level >= g_log_level THEN
70 fnd_log.string(p_level, p_module, p_msg);
71 END IF;
72
73 EXCEPTION
74 WHEN xla_exceptions_pkg.application_exception THEN
75 RAISE;
76 WHEN OTHERS THEN
77 xla_exceptions_pkg.raise_message
78 (p_location => 'xla_cmp_hash_pkg.trace');
79 END trace;
80 --+==========================================================================+
81 --| |
82 --| OVERVIEW of private procedures and functions |
83 --| |
84 --+==========================================================================+
85 --
86
87 --
88 /*======================================================================+
89 | |
90 | Public Function |
91 | |
92 | GetPADHashId |
93 | |
94 | Determines the product hash id associated to the current product rule |
95 | code, returns a number |
96 | |
97 | Parameters: |
98 | 1 IN p_product_rule_code VARCHAR2 product rule |
99 | 2 IN p_amb_context_code VARCHAR2 AMB context |
100 +======================================================================*/
101 --
102 FUNCTION GetPADHashId (p_product_rule_code IN VARCHAR2
103 ,p_amb_context_code IN VARCHAR2
104 ,p_application_id IN INTEGER
105 ,p_product_rule_type_code IN VARCHAR2)
106 RETURN NUMBER
107 IS
108 l_HashID NUMBER;
109 l_log_module VARCHAR2(240);
110 BEGIN
111 IF g_log_enabled THEN
112 l_log_module := C_DEFAULT_MODULE||'.GetPADHashId';
113 END IF;
114
115 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
116 trace
117 (p_msg => 'BEGIN of GetPADHashId'
118 ,p_level => C_LEVEL_PROCEDURE
119 ,p_module => l_log_module);
120 END IF;
121
122 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
123
124 trace
125 (p_msg => 'p_product_rule_code = '||p_product_rule_code ||
126 ' - p_amb_context_code = '|| p_amb_context_code
127 ,p_level => C_LEVEL_STATEMENT
128 ,p_module => l_log_module);
129
130 trace
131 (p_msg => 'SQL - select from xla_product_rules_b'
132 ,p_level => C_LEVEL_STATEMENT
133 ,p_module => l_log_module);
134
135 END IF;
136
137 BEGIN
138
139 SELECT DISTINCT product_rule_hash_id
140 INTO l_HashID
141 FROM xla_product_rules_b
142 WHERE product_rule_code = p_product_rule_code
143 AND amb_context_code = p_amb_context_code
144 AND application_id = p_application_id
145 AND product_rule_type_code = p_product_rule_type_code
146 AND product_rule_hash_id IS NOT NULL
147 ;
148
149 EXCEPTION
150
151 WHEN NO_DATA_FOUND THEN
152
153 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
154 trace
155 (p_msg => 'SQL - update xla_product_rules_b'
156 ,p_level => C_LEVEL_STATEMENT
157 ,p_module => l_log_module);
158
159 END IF;
160
161 -- Fix bug 4585458
162 -- When this is called by xla_cmp_hash_pkg.BuildPADName in the
163 -- xla_accounting_cashe_pkg.load_application_ledgers, it error with ORA-14551
164 /*
165 UPDATE xla_product_rules_b xprb
166 SET xprb.product_rule_hash_id = (SELECT NVL(MAX(xpr.product_rule_hash_id),0) + 1
167 FROM xla_product_rules_b xpr)
168 WHERE xprb.amb_context_code = p_amb_context_code
169 AND xprb.product_rule_code = p_product_rule_code
170 AND xprb.application_id = p_application_id
171 AND xprb.product_rule_type_code = p_product_rule_type_code
172 RETURNING xprb.product_rule_hash_id INTO l_HashID
173 ;
174 */
175 SELECT NVL(MAX(product_rule_hash_id),0) + 1
176 INTO l_HashID
177 FROM xla_product_rules_b;
178
179 WHEN TOO_MANY_ROWS THEN
180
181 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
182 trace
183 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR: TWO OR MORE HASH_ID FOR THE SAME AAD code'
184 ,p_level => C_LEVEL_EXCEPTION
185 ,p_module => l_log_module);
186 END IF;
187
188 l_HashID:= NULL;
189
190 END ;
191
192 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
193 trace
194 (p_msg => 'return value. = '||l_HashID
195 ,p_level => C_LEVEL_PROCEDURE
196 ,p_module => l_log_module);
197
198 trace
199 (p_msg => 'END of GetPADHashId'
200 ,p_level => C_LEVEL_PROCEDURE
201 ,p_module => l_log_module);
202
203 END IF;
204
205 RETURN l_HashID;
206 EXCEPTION
207 WHEN xla_exceptions_pkg.application_exception THEN
208 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
209 trace
210 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR: FAILED TO CREATE THE AAD HASH_ID VALUE'
211 ,p_level => C_LEVEL_EXCEPTION
212 ,p_module => l_log_module);
213 END IF;
214 RAISE;
215 WHEN OTHERS THEN
216 xla_exceptions_pkg.raise_message
217 (p_location => 'xla_cmp_hash_pkg.GetPADHashId');
218 END GetPADHashId;
219 --
220
221 --
222 /*======================================================================+
223 | |
224 | Public Function |
225 | |
226 | GetPackageName |
227 | |
228 | Get package name |
229 | |
230 | Parameters |
231 | 1 IN p_application_id NUMBER application id |
232 | 2 IN p_product_rule_type_code VARCHAR2 product rule type |
233 | 3 IN p_product_rule_hash_id NUMBER product rule hash id|
234 +======================================================================*/
235 FUNCTION GetPackageName ( p_application_id IN NUMBER
236 ,p_product_rule_type_code IN VARCHAR2
237 ,p_product_rule_hash_id IN NUMBER )
238 RETURN VARCHAR2
239 IS
240 --
241 l_name VARCHAR2(30);
242 l_hashApplication VARCHAR2(30);
243 l_HashRuleCode VARCHAR2(30);
244 l_log_module VARCHAR2(240);
245 --
246 BEGIN
247 IF g_log_enabled THEN
248 l_log_module := C_DEFAULT_MODULE||'.GetPackageName';
249 END IF;
250
251 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
252 trace
253 (p_msg => 'BEGIN of GetPackageName'
254 ,p_level => C_LEVEL_PROCEDURE
255 ,p_module => l_log_module);
256 END IF;
257
258 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
259 trace
260 (p_msg => 'p_application_id = '||p_application_id ||
264 ,p_module => l_log_module);
261 ' - p_product_rule_type_code = '||p_product_rule_type_code ||
262 ' - p_product_rule_hash_id = '||p_product_rule_hash_id
263 ,p_level => C_LEVEL_PROCEDURE
265 END IF;
266
267 l_hashApplication := LPAD(SUBSTR(TO_CHAR(ABS(p_application_id)), 1, 5), 5, '0');
268 l_HashRuleCode := LPAD(SUBSTR(TO_CHAR(p_product_rule_hash_id), 1, 6), 6, '0');
269
270 l_name := C_PACKAGE_NAME;
271 l_name := REPLACE(l_name,'$id1$',l_hashApplication);
272 l_name := REPLACE(l_name,'$id2$',p_product_rule_type_code);
273 l_name := REPLACE(l_name,'$id3$',l_HashRuleCode);
274
275 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
276 trace
277 (p_msg => 'return value. package_name = '||l_name
278 ,p_level => C_LEVEL_PROCEDURE
279 ,p_module => l_log_module);
280 trace
281 (p_msg => 'END of GetPackageName'
282 ,p_level => C_LEVEL_PROCEDURE
283 ,p_module => l_log_module);
284 END IF;
285 RETURN l_name;
286 EXCEPTION
287 WHEN xla_exceptions_pkg.application_exception THEN
288 RAISE;
289 WHEN OTHERS THEN
290 xla_exceptions_pkg.raise_message
291 (p_location => 'xla_cmp_hash_pkg.GetPackageName');
292 END GetPackageName;
293 --
294 --
295 /*======================================================================+
296 | |
297 | Private function |
298 | |
299 | Parameters |
300 | 1 IN p_application_id NUMBER application id |
301 | 2 IN p_product_rule_code VARCHAR2 product rule |
302 | 3 IN p_product_rule_type_code VARCHAR2 product rule type |
303 | 4 IN p_amb_context_code VARCHAR2 AMB context |
304 | 5 OUT p_product_rule_hash_id NUMBER product rule hash id|
305 +======================================================================*/
306 FUNCTION SearchPAD ( p_application_id IN NUMBER
307 ,p_product_rule_code IN VARCHAR2
308 ,p_product_rule_type_code IN VARCHAR2
309 ,p_amb_context_code IN VARCHAR2
310 ,p_product_rule_hash_id OUT NOCOPY NUMBER)
311 RETURN BOOLEAN
312 IS
313 l_log_module VARCHAR2(240);
314 BEGIN
315 --
316 IF g_log_enabled THEN
317 l_log_module := C_DEFAULT_MODULE||'.SearchPAD';
318 END IF;
319
320 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
321
322 trace
323 (p_msg => 'BEGIN of SearchPAD'
324 ,p_level => C_LEVEL_PROCEDURE
325 ,p_module => l_log_module);
326
327 END IF;
328
329 SELECT product_rule_hash_id
330 INTO p_product_rule_hash_id
331 FROM xla_product_rules_b
332 WHERE product_rule_code = p_product_rule_code
333 AND product_rule_type_code = p_product_rule_type_code
334 AND application_id = p_application_id
335 AND amb_context_code = p_amb_context_code
336 ;
337
338 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
339 IF (p_product_rule_hash_id IS NOT NULL) THEN
340 trace
341 (p_msg => 'return value. = TRUE'
342 ,p_level => C_LEVEL_PROCEDURE
343 ,p_module => l_log_module);
344 ELSE
345 trace
346 (p_msg => 'return value. = FALSE'
347 ,p_level => C_LEVEL_PROCEDURE
348 ,p_module => l_log_module);
349 END IF;
350
351 trace
352 (p_msg => 'END of SearchPAD'
353 ,p_level => C_LEVEL_PROCEDURE
354 ,p_module => l_log_module);
355
356 END IF;
357 RETURN (p_product_rule_hash_id IS NOT NULL);
358 EXCEPTION
359 WHEN NO_DATA_FOUND THEN
360 RETURN FALSE;
361 WHEN xla_exceptions_pkg.application_exception THEN
362 RAISE;
363 WHEN OTHERS THEN
364 xla_exceptions_pkg.raise_message
365 (p_location => 'xla_cmp_hash_pkg.SearchPAD');
366 END SearchPAD;
367 --
368 /*======================================================================+
369 | |
370 | Public Procedure |
371 | |
372 | DropPadPkg |
373 | |
374 | Drop PAD package for the current application,product rule code, |
375 | , product rule type code |
376 | |
377 | Parameters: |
378 | 1 IN p_application_id NUMBER application id |
379 | 2 IN p_product_rule_code VARCHAR2 product rule |
380 | 3 IN p_product_rule_type_code VARCHAR2 product rule type |
381 | 4 IN p_amb_context_code VARCHAR2 AMB context |
382 +======================================================================*/
383 PROCEDURE DropPadPkg ( p_application_id IN NUMBER
384 ,p_product_rule_code IN VARCHAR2
385 ,p_product_rule_type_code IN VARCHAR2
386 ,p_amb_context_code IN VARCHAR2
387 )
388 IS
392 l_PADId NUMBER;
389
390 l_statement VARCHAR2(200);
391 l_package_name VARCHAR2(30) ;
393 --
394 package_does_not_exist EXCEPTION;
395 package_locked EXCEPTION;
396
397 PRAGMA EXCEPTION_INIT(package_locked ,-04021);
398 PRAGMA EXCEPTION_INIT(package_does_not_exist,-04043);
399 --
400 l_log_module VARCHAR2(240);
401 --
402 BEGIN
403 --
404 IF g_log_enabled THEN
405 l_log_module := C_DEFAULT_MODULE||'.DropPadPkg';
406 END IF;
407 --
408 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
409
410 trace
411 (p_msg => 'BEGIN of DropPadPkg'
412 ,p_level => C_LEVEL_PROCEDURE
413 ,p_module => l_log_module);
414
415 trace
416 (p_msg => 'p_application_id = '||p_application_id ||
417 ' - p_product_rule_code = '||p_product_rule_code ||
418 ' - p_product_rule_type_code = '||p_product_rule_type_code ||
419 ' - p_amb_context_code = '||p_amb_context_code
420 ,p_level => C_LEVEL_PROCEDURE
421 ,p_module => l_log_module);
422
423 END IF;
424
425 IF SearchPAD ( p_application_id => p_application_id
426 ,p_product_rule_code => p_product_rule_code
427 ,p_product_rule_type_code => p_product_rule_type_code
428 ,p_amb_context_code => p_amb_context_code
429 ,p_product_rule_hash_id => l_PADId)
430 THEN
431 --
432 -- package exists in the Data Base
433 --
434 l_package_name := GetPackageName (
435 p_application_id => p_application_id
436 ,p_product_rule_type_code => p_product_rule_type_code
437 ,p_product_rule_hash_id => l_PADId
438 );
439
440 --
441 -- drop specification package
442 --
443 l_statement := 'DROP PACKAGE '||l_package_name ;
444
445 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
446
447 trace
448 (p_msg => '>> EXECUTE dynamic SQL = '||l_statement
452 END IF;
449 ,p_level => C_LEVEL_STATEMENT
450 ,p_module => l_log_module);
451
453
454 EXECUTE IMMEDIATE l_statement;
455
456 --
457 -- drop body package
458 --
459 l_statement := 'DROP PACKAGE BODY '||l_package_name ;
460
461 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
462
463 trace
467
464 (p_msg => '>> EXECUTE dynamic SQL = '||l_statement
465 ,p_level => C_LEVEL_STATEMENT
466 ,p_module => l_log_module);
468 END IF;
469
470 EXECUTE IMMEDIATE l_statement;
471 --
472 END IF;
473 --
474 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
475
476 trace
477 (p_msg => 'END of DropPadPkg'
478 ,p_level => C_LEVEL_PROCEDURE
479 ,p_module => l_log_module);
480
481 END IF;
482 --
483 EXCEPTION
484 WHEN package_does_not_exist THEN
485
486 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
487 trace
488 (p_msg => 'WARNNING: Package '|| l_package_name ||' does not exist '
489 ,p_level => C_LEVEL_EXCEPTION
490 ,p_module => l_log_module);
491 END IF;
492
493 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
494
495 trace
496 (p_msg => 'END of DropPadPkg'
497 ,p_level => C_LEVEL_PROCEDURE
498 ,p_module => l_log_module);
499
500 END IF;
501
502 WHEN package_locked THEN
503
504 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
505 trace
506 (p_msg => 'ERROR: XLA_CMP_PACKAGE_LOCKED'
507 ,p_level => C_LEVEL_EXCEPTION
508 ,p_module => l_log_module);
509 END IF;
510 xla_exceptions_pkg.raise_message
511 ('XLA'
512 ,'XLA_CMP_PACKAGE_LOCKED'
513 ,'PACKAGE_NAME'
514 , l_package_name
515 );
516 WHEN xla_exceptions_pkg.application_exception THEN
517 RAISE;
518 WHEN OTHERS THEN
519 xla_exceptions_pkg.raise_message
520 (p_location => 'xla_cmp_hash_pkg.DropPadPkg');
521 END DropPadPkg;
522 --
523 --
524 /*======================================================================+
525 | |
526 | Public Function |
527 | |
528 | DropPadPkg |
529 | |
530 | Drop PAD package for the current application,product rule code, |
531 | , product rule type code |
532 | |
533 | Parameters: |
534 | 1 IN p_application_id NUMBER application id |
535 | 2 IN p_product_rule_code VARCHAR2 product rule |
536 | 3 IN p_product_rule_type_code VARCHAR2 product rule type |
537 | 4 IN p_amb_context_code VARCHAR2 AMB context |
538 | |
539 +======================================================================*/
540 FUNCTION DropPadPkg ( p_application_id IN NUMBER
541 ,p_product_rule_code IN VARCHAR2
542 ,p_product_rule_type_code IN VARCHAR2
543 ,p_amb_context_code IN VARCHAR2
544 )
545 RETURN BOOLEAN
546 IS
547 l_log_module VARCHAR2(240);
548 BEGIN
549 --
550 DropPadPkg (p_application_id => p_application_id
551 ,p_product_rule_code => p_product_rule_code
552 ,p_product_rule_type_code => p_product_rule_type_code
553 ,p_amb_context_code => p_amb_context_code
554 )
555 ;
556 RETURN TRUE;
557 --
558 EXCEPTION
559 WHEN OTHERS THEN
560 RETURN FALSE;
561 END;
562 --
563 /*======================================================================+
564 | |
565 | Public Function |
566 | |
567 | BuildPackageName |
568 | |
569 | Build a package name |
570 | |
571 | Parameters |
572 | 1 IN p_application_id NUMBER application id |
573 | 2 IN p_product_rule_code VARCHAR2 product rule |
574 | 3 IN p_product_rule_type_code VARCHAR2 product rule type |
575 | 4 IN p_amb_context_code VARCHAR2 AMB context |
576 +======================================================================*/
577 FUNCTION BuildPackageName (p_application_id IN NUMBER
578 ,p_product_rule_code IN VARCHAR2
579 ,p_product_rule_type_code IN VARCHAR2
580 ,p_amb_context_code IN VARCHAR2
581 )
582 RETURN VARCHAR2
583 IS
584 --
585 l_PADId NUMBER :=NULL;
586 l_name VARCHAR2(30):=NULL;
587 l_hashApplication VARCHAR2(30);
588 --
589 l_pad_name VARCHAR2(80);
590 l_log_module VARCHAR2(240);
591 BEGIN
592
593 IF g_log_enabled THEN
594 l_log_module := C_DEFAULT_MODULE||'.BuildPackageName';
595 END IF;
596
597 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
598
599 trace
600 (p_msg => 'BEGIN of BuildPackageName'
601 ,p_level => C_LEVEL_PROCEDURE
602 ,p_module => l_log_module);
603
604 trace
605 (p_msg => 'p_application_id = '||p_application_id ||
606 ' - p_product_rule_code = '||p_product_rule_code ||
607 ' - p_product_rule_type_code = '||p_product_rule_type_code ||
611
608 ' - p_amb_context_code = '||p_amb_context_code
609 ,p_level => C_LEVEL_PROCEDURE
610 ,p_module => l_log_module);
612 END IF;
613
614 IF SearchPAD ( p_application_id => p_application_id
615 ,p_product_rule_code => p_product_rule_code
616 ,p_product_rule_type_code => p_product_rule_type_code
617 ,p_amb_context_code => p_amb_context_code
618 ,p_product_rule_hash_id => l_PADId)
619 THEN
620 l_name := GetPackageName (
621 p_application_id => p_application_id
622 ,p_product_rule_type_code => p_product_rule_type_code
623 ,p_product_rule_hash_id => l_PADId
624 );
625 ELSE
626
627 l_PADId:= GetPADHashId (p_product_rule_code => p_product_rule_code
628 ,p_amb_context_code => p_amb_context_code
629 ,p_application_id => p_application_id
630 ,p_product_rule_type_code => p_product_rule_type_code) ;
631
632
633 IF l_PADId IS NOT NULL THEN
634
635 l_name := GetPackageName (
636 p_application_id => p_application_id
637 ,p_product_rule_type_code => p_product_rule_type_code
638 ,p_product_rule_hash_id => l_PADId
639 );
640 ELSE
641 -- raise an error
642 BEGIN
643
644 SELECT xprt.name
645 INTO l_pad_name
646 FROM xla_product_rules_tl xprt
647 WHERE xprt.application_id = p_application_id
648 AND xprt.product_rule_code = p_product_rule_code
649 AND xprt.product_rule_type_code = p_product_rule_type_code
650 AND xprt.amb_context_code = p_amb_context_code
651 AND nvl(xprt.language ,USERENV('LANG')) = USERENV('LANG')
652 ;
653
654 EXCEPTION
655
656 WHEN OTHERS THEN
657 l_pad_name := p_product_rule_code;
658 END;
659
660 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
661 trace
662 (p_msg => 'ERROR: XLA_CMP_NO_PAD_PACKAGE'
663 ,p_level => C_LEVEL_EXCEPTION
664 ,p_module => l_log_module);
665 END IF;
666
667 xla_exceptions_pkg.raise_message
668 ('XLA'
669 ,'XLA_CMP_NO_PAD_PACKAGE'
670 ,'PAD_NAME'
671 , l_pad_name
672 ,'OWNER'
673 , xla_lookups_pkg.get_meaning(
674 p_lookup_type => 'XLA_OWNER_TYPE'
675 , p_lookup_code => p_product_rule_type_code
676 )
677 );
678
679 END IF;
680 END IF;
681
682 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
683 trace
684 (p_msg => 'END of BuildPackageName'
685 ,p_level => C_LEVEL_PROCEDURE
686 ,p_module => l_log_module);
687 END IF;
688 RETURN l_name;
689 EXCEPTION
690 WHEN xla_exceptions_pkg.application_exception THEN
691 RAISE;
692 WHEN OTHERS THEN
696 --=============================================================================
693 xla_exceptions_pkg.raise_message
694 (p_location => 'xla_cmp_hash_pkg.BuildPackageName');
695 END BuildPackageName;
697 --
698 --
699 --
700 --
701 --
702 --
703 --
704 --
705 --
706 --
707 --
708 --
709 --
710 --
711 --
712 --
713 --
714 --
715 --
716 --
717 --
718 --
719 --=============================================================================
720 --=============================================================================
721 -- *********** Initialization routine **********
722 --=============================================================================
723
724 BEGIN
725
726 g_log_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
727 g_log_enabled := fnd_log.test
728 (log_level => g_log_level
729 ,module => C_DEFAULT_MODULE);
730
731 IF NOT g_log_enabled THEN
732 g_log_level := C_LEVEL_LOG_DISABLED;
733 END IF;
734
735 END xla_cmp_hash_pkg; --