[Home] [Help]
PACKAGE BODY: APPS.XLA_CMP_LOCK_PAD_PKG
Source
1 PACKAGE BODY xla_cmp_lock_pad_pkg AS
2 /* $Header: xlacplok.pkb 120.13 2006/08/04 19:32:14 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_lock_pad_pkg |
10 | |
11 | DESCRIPTION |
12 | This is a XLA private package, which contains all the APIs required |
13 | for |
14 | |
15 | |
16 | HISTORY |
17 | 06/25/2002 Kaouther Boussema Created |
18 | 26-MAI-2003 K.Boussema Added amb_context_code column |
19 | 27-JUN-2003 K.Boussema Renamed XLA_DESCRIPTION_PRIO and |
20 | XLA_EVENT_CLASSES_ATTR tables |
21 | 02-JUL-2003 K.Boussema Updated error messages |
22 | 17-JUL-2003 K.Boussema Reviewed the code |
23 | 27-SEP-2003 K.Boussema Changed the event_class clauses using '_ALL' |
24 | 23-FEB-2004 K.Boussema Made changes for the FND_LOG. |
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-MAY-2005 Ashish Removed call to ax_exceptions_pkg and |
30 | replaced it with xla_exception_pkg. See |
31 | bug 4382783 |
32 +===========================================================================*/
33 --+==========================================================================+
34 --| |
35 --| Private global constant or variable declarations |
36 --| |
37 --+==========================================================================+
38 --
39 --
40 g_product_rule_name VARCHAR2(80);
41 g_product_rule_owner VARCHAR2(30);
42 --
43 --=============================================================================
44 -- *********** Local Trace Routine **********
45 --=============================================================================
46
47 C_LEVEL_STATEMENT CONSTANT NUMBER := FND_LOG.LEVEL_STATEMENT;
48 C_LEVEL_PROCEDURE CONSTANT NUMBER := FND_LOG.LEVEL_PROCEDURE;
49 C_LEVEL_EVENT CONSTANT NUMBER := FND_LOG.LEVEL_EVENT;
50 C_LEVEL_EXCEPTION CONSTANT NUMBER := FND_LOG.LEVEL_EXCEPTION;
51 C_LEVEL_ERROR CONSTANT NUMBER := FND_LOG.LEVEL_ERROR;
52 C_LEVEL_UNEXPECTED CONSTANT NUMBER := FND_LOG.LEVEL_UNEXPECTED;
53
54 C_LEVEL_LOG_DISABLED CONSTANT NUMBER := 99;
55 C_DEFAULT_MODULE CONSTANT VARCHAR2(240) := 'xla.plsql.xla_cmp_lock_pad_pkg';
56
57 g_log_level NUMBER;
58 g_log_enabled BOOLEAN;
59
60 PROCEDURE trace
61 (p_msg IN VARCHAR2
62 ,p_level IN NUMBER
63 ,p_module IN VARCHAR2 DEFAULT C_DEFAULT_MODULE) IS
64 BEGIN
65 ----------------------------------------------------------------------------
66 -- Following is for FND log.
67 ----------------------------------------------------------------------------
68 IF (p_msg IS NULL AND p_level >= g_log_level) THEN
69 fnd_log.message(p_level, p_module);
70 ELSIF p_level >= g_log_level THEN
71 fnd_log.string(p_level, p_module, p_msg);
72 END IF;
73
74 EXCEPTION
75 WHEN xla_exceptions_pkg.application_exception THEN
76 RAISE;
77 WHEN OTHERS THEN
78 xla_exceptions_pkg.raise_message
79 (p_location => 'xla_cmp_lock_pad_pkg.trace');
80 END trace;
81
82
83 --+==========================================================================+
84 --| |
85 --| OVERVIEW of private procedures and functions |
86 --| |
87 --+==========================================================================+
88 --
89 --
90 --
91 --+==========================================================================+
92 --| PUBLIC procedures and functions |
93 --| |
94 --| |
95 --| |
96 --| |
97 --| |
98 --| |
99 --| |
100 --| |
101 --| |
102 --| |
103 --| |
104 --| |
105 --| |
106 --| |
107 --+==========================================================================+
108
109 --
110 --+==========================================================================+
111 --| |
112 --| Private procedure |
113 --| LockRowLineDesc |
114 --| |
115 --+==========================================================================+
116 --
117 PROCEDURE LockRowLineDesc
118 ( p_application_id IN NUMBER
119 , p_product_rule_code IN VARCHAR2
120 , p_product_rule_type_code IN VARCHAR2
121 , p_amb_context_code IN VARCHAR2
122 )
123 IS
124 --
125 --
126 CURSOR Description_cur
127 IS
128 SELECT xdb.rowid
129 FROM xla_aad_line_defn_assgns xal
130 , xla_line_defn_jlt_assgns xld
131 , xla_descriptions_b xdb
132 , xla_descriptions_tl xdt
133 WHERE xal.application_id = p_application_id
134 AND xal.amb_context_code = p_amb_context_code
135 AND xal.product_rule_code = p_product_rule_code
136 AND xal.product_rule_type_code = p_product_rule_type_code
137 AND xld.application_id = xal.application_id
138 AND xld.amb_context_code = xal.amb_context_code
139 AND xld.event_class_code = xal.event_class_code
140 AND xld.event_type_code = xal.event_type_code
141 AND xld.line_definition_code = xal.line_definition_code
142 AND xld.line_definition_owner_code = xal.line_definition_owner_code
143 AND xdb.application_id = xld.application_id
144 AND xdb.amb_context_code = xld.amb_context_code
145 AND xdb.description_code = xld.description_code
146 AND xdb.description_type_code = xld.description_type_code
147 AND xdt.application_id = xdb.application_id
148 AND xdt.amb_context_code = xdb.amb_context_code
149 AND xdt.description_code = xdb.description_code
150 AND xdt.description_type_code = xdb.description_type_code
151 AND xdt.language = USERENV('LANG')
152 FOR UPDATE NOWAIT
153 ;
154 CURSOR Description_prio_cur
155 IS
156 SELECT xdp.rowid
157 FROM xla_aad_line_defn_assgns xal
158 , xla_line_defn_jlt_assgns xld
159 , xla_desc_priorities xdp
160 , xla_conditions xco
161 WHERE xal.application_id = p_application_id
162 AND xal.amb_context_code = p_amb_context_code
163 AND xal.product_rule_code = p_product_rule_code
164 AND xal.product_rule_type_code = p_product_rule_type_code
165 AND xld.application_id = xal.application_id
166 AND xld.amb_context_code = xal.amb_context_code
167 AND xld.event_class_code = xal.event_class_code
168 AND xld.event_type_code = xal.event_type_code
169 AND xld.line_definition_code = xal.line_definition_code
170 AND xld.line_definition_owner_code = xal.line_definition_owner_code
171 AND xdp.application_id = xld.application_id
172 AND xdp.amb_context_code = xld.amb_context_code
173 AND xdp.description_code = xld.description_code
174 AND xdp.description_type_code = xld.description_type_code
175 AND xco.description_prio_id = xdp.description_prio_id
176 FOR UPDATE NOWAIT
177 ;
178
179 CURSOR Description_dtl_cur
180 IS
181 SELECT xdd.rowid
182 FROM xla_aad_line_defn_assgns xal
183 , xla_line_defn_jlt_assgns xld
184 , xla_desc_priorities xdp
185 , xla_descript_details_b xdd
186 , xla_descript_details_tl xdt
187 WHERE xal.application_id = p_application_id
188 AND xal.amb_context_code = p_amb_context_code
189 AND xal.product_rule_code = p_product_rule_code
190 AND xal.product_rule_type_code = p_product_rule_type_code
191 AND xld.application_id = xal.application_id
192 AND xld.amb_context_code = xal.amb_context_code
193 AND xld.event_class_code = xal.event_class_code
194 AND xld.event_type_code = xal.event_type_code
195 AND xld.line_definition_code = xal.line_definition_code
196 AND xld.line_definition_owner_code = xal.line_definition_owner_code
197 AND xdp.application_id = xld.application_id
198 AND xdp.amb_context_code = xld.amb_context_code
199 AND xdp.description_code = xld.description_code
200 AND xdp.description_type_code = xld.description_type_code
201 AND xdd.description_prio_id = xdp.description_prio_id
202 AND xdt.description_detail_id = xdd.description_detail_id
203 FOR UPDATE NOWAIT
204 ;
205 --
206 l_rowid ROWID;
207 l_log_module VARCHAR2(240);
208 --
209 BEGIN
210 --
211 IF g_log_enabled THEN
212 l_log_module := C_DEFAULT_MODULE||'.LockRowLineDesc';
213 END IF;
214 --
215 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
216
217 trace
218 (p_msg => 'BEGIN of LockRowLineDesc'
219 ,p_level => C_LEVEL_PROCEDURE
220 ,p_module => l_log_module);
221
222 END IF;
223 --
224 -- Lock descriptions
225 OPEN Description_cur;
226 FETCH Description_cur INTO l_rowid;
227 CLOSE Description_cur;
228 --
229 -- Lock description priorities and conditions
230 OPEN Description_prio_cur;
231 FETCH Description_prio_cur INTO l_rowid;
232 CLOSE Description_prio_cur;
233 --
234 -- Lock description details and conditions
235 OPEN Description_dtl_cur;
236 FETCH Description_dtl_cur INTO l_rowid;
237 CLOSE Description_dtl_cur;
238 --
239 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
240
241 trace
242 (p_msg => 'END of LockRowLineDesc'
243 ,p_level => C_LEVEL_PROCEDURE
244 ,p_module => l_log_module);
245
246 END IF;
247 --
248 EXCEPTION
249 WHEN xla_exceptions_pkg.application_exception THEN
250 IF Description_cur%ISOPEN THEN
251 CLOSE Description_cur;
252 END IF;
253 IF Description_prio_cur%ISOPEN THEN
254 CLOSE Description_prio_cur;
255 END IF;
256 IF Description_dtl_cur%ISOPEN THEN
257 CLOSE Description_dtl_cur;
258 END IF;
259 RAISE;
260 WHEN xla_exceptions_pkg.resource_busy THEN
261 IF Description_cur%ISOPEN THEN
262 CLOSE Description_cur;
263 END IF;
264 IF Description_prio_cur%ISOPEN THEN
265 CLOSE Description_prio_cur;
266 END IF;
267 IF Description_dtl_cur%ISOPEN THEN
268 CLOSE Description_dtl_cur;
269 END IF;
270 -- SLA message
271 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
272 trace
273 (p_msg => 'ERROR: XLA_CMP_COMPONENTS_LOCKED'
274 ,p_level => C_LEVEL_EXCEPTION
275 ,p_module => l_log_module);
276 END IF;
277 xla_exceptions_pkg.raise_message
278 ( 'XLA'
279 ,'XLA_CMP_COMPONENTS_LOCKED'
280 ,'PAD_NAME'
281 , g_product_rule_name
282 ,'PAD_OWNER'
283 , g_product_rule_owner
284 );
285 WHEN OTHERS THEN
286 IF Description_cur%ISOPEN THEN
287 CLOSE Description_cur;
288 END IF;
289 -- SLA message to define
290 xla_exceptions_pkg.raise_message
291 (p_location => 'xla_cmp_lock_pad_pkg.LockRowLineDesc');
292 END LockRowLineDesc;
293
294
295 --+==========================================================================+
296 --| |
297 --| Private procedure |
298 --| LockRowHdrDesc |
299 --| |
300 --+==========================================================================+
301 --
302 PROCEDURE LockRowHdrDesc
303 ( p_application_id IN NUMBER
304 , p_product_rule_code IN VARCHAR2
305 , p_product_rule_type_code IN VARCHAR2
306 , p_amb_context_code IN VARCHAR2
307 )
308 IS
309 --
310 --
311 CURSOR Description_cur
312 IS
313 SELECT xdb.rowid
314 FROM xla_prod_acct_headers xpah
315 , xla_descriptions_b xdb
316 , xla_descriptions_tl xdt
317 WHERE xpah.application_id = p_application_id
318 AND xpah.amb_context_code = p_amb_context_code
319 AND xpah.product_rule_code = p_product_rule_code
320 AND xpah.product_rule_type_code = p_product_rule_type_code
321 AND xdb.application_id = xpah.application_id
322 AND xdb.amb_context_code = xpah.amb_context_code
323 AND xdb.description_code = xpah.description_code
324 AND xdb.description_type_code = xpah.description_type_code
325 AND xdt.application_id = xdb.application_id
326 AND xdt.amb_context_code = xdb.amb_context_code
327 AND xdt.description_code = xdb.description_code
328 AND xdt.description_type_code = xdb.description_type_code
329 AND xdt.language = USERENV('LANG')
330 FOR UPDATE NOWAIT
331 ;
332
333 CURSOR Description_prio_cur
334 IS
335 SELECT xdp.rowid
336 FROM xla_prod_acct_headers xpah
337 , xla_desc_priorities xdp
338 , xla_conditions xco
339 WHERE xpah.application_id = p_application_id
340 AND xpah.amb_context_code = p_amb_context_code
341 AND xpah.product_rule_code = p_product_rule_code
342 AND xpah.product_rule_type_code = p_product_rule_type_code
343 AND xdp.application_id = xpah.application_id
344 AND xdp.amb_context_code = xpah.amb_context_code
345 AND xdp.description_code = xpah.description_code
346 AND xdp.description_type_code = xpah.description_type_code
347 AND xco.description_prio_id = xdp.description_prio_id
348 FOR UPDATE NOWAIT
352 IS
349 ;
350
351 CURSOR Description_dtl_cur
353 SELECT xdd.rowid
354 FROM xla_prod_acct_headers xpah
355 , xla_desc_priorities xdp
356 , xla_descript_details_b xdd
357 , xla_descript_details_tl xdt
358 WHERE xpah.application_id = p_application_id
359 AND xpah.amb_context_code = p_amb_context_code
360 AND xpah.product_rule_code = p_product_rule_code
361 AND xpah.product_rule_type_code = p_product_rule_type_code
362 AND xdp.application_id = xpah.application_id
363 AND xdp.amb_context_code = xpah.amb_context_code
364 AND xdp.description_code = xpah.description_code
365 AND xdp.description_type_code = xpah.description_type_code
366 AND xdd.description_prio_id = xdp.description_prio_id
367 AND xdt.description_detail_id = xdd.description_detail_id
368 FOR UPDATE NOWAIT
369 ;
370 l_rowid ROWID;
371 l_log_module VARCHAR2(240);
372 --
373 BEGIN
374 --
375 IF g_log_enabled THEN
376 l_log_module := C_DEFAULT_MODULE||'.LockRowHdrDesc';
377 END IF;
378 --
379 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
380
381 trace
382 (p_msg => 'BEGIN of LockRowHdrDesc'
383 ,p_level => C_LEVEL_PROCEDURE
384 ,p_module => l_log_module);
385
386 END IF;
387 --
388 -- Lock descriptions
389 OPEN Description_cur;
390 FETCH Description_cur INTO l_rowid;
391 CLOSE Description_cur;
392 --
393 -- Lock description priorities and conditions
394 OPEN Description_prio_cur;
395 FETCH Description_prio_cur INTO l_rowid;
396 CLOSE Description_prio_cur;
397 --
398 -- Lock description details and conditions
399 OPEN Description_dtl_cur;
400 FETCH Description_dtl_cur INTO l_rowid;
401 CLOSE Description_dtl_cur;
402 --
403 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
404
405 trace
406 (p_msg => 'END of LockRowHdrDesc'
407 ,p_level => C_LEVEL_PROCEDURE
408 ,p_module => l_log_module);
409
410 END IF;
411 --
412 EXCEPTION
413 WHEN xla_exceptions_pkg.application_exception THEN
414 IF Description_cur%ISOPEN THEN
415 CLOSE Description_cur;
416 END IF;
417 IF Description_prio_cur%ISOPEN THEN
418 CLOSE Description_prio_cur;
419 END IF;
420 IF Description_dtl_cur%ISOPEN THEN
421 CLOSE Description_dtl_cur;
422 END IF;
423 RAISE;
424 WHEN xla_exceptions_pkg.resource_busy THEN
425 IF Description_cur%ISOPEN THEN
426 CLOSE Description_cur;
427 END IF;
428 IF Description_prio_cur%ISOPEN THEN
429 CLOSE Description_prio_cur;
430 END IF;
431 IF Description_dtl_cur%ISOPEN THEN
432 CLOSE Description_dtl_cur;
433 END IF;
434 -- SLA message
435 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
436 trace
437 (p_msg => 'ERROR: XLA_CMP_COMPONENTS_LOCKED'
438 ,p_level => C_LEVEL_EXCEPTION
439 ,p_module => l_log_module);
440 END IF;
441 xla_exceptions_pkg.raise_message
442 ( 'XLA'
443 ,'XLA_CMP_COMPONENTS_LOCKED'
444 ,'PAD_NAME'
445 , g_product_rule_name
446 ,'PAD_OWNER'
447 , g_product_rule_owner
448 );
449 WHEN OTHERS THEN
450 IF Description_cur%ISOPEN THEN
451 CLOSE Description_cur;
452 END IF;
453 -- SLA message to define
454 xla_exceptions_pkg.raise_message
455 (p_location => 'xla_cmp_lock_pad_pkg.LockRowHdrDesc');
456 END LockRowHdrDesc;
457 --
458 --
459 --+==========================================================================+
460 --| |
461 --| Private procedure |
462 --| LockRowSourceAssignment |
463 --| |
464 --+==========================================================================+
465 --
466 PROCEDURE LockRowSourceAssignment
467 ( p_application_id IN NUMBER
468 , p_product_rule_code IN VARCHAR2
469 , p_product_rule_type_code IN VARCHAR2
470 , p_amb_context_code IN VARCHAR2
471 )
472 IS
473 --
474 --
475 CURSOR SourceAssignment_cur
476 IS
477 SELECT xes.rowid
478 FROM xla_prod_acct_headers xpah
479 , xla_event_sources xes
480 WHERE xpah.application_id = p_application_id
481 AND xpah.amb_context_code = p_amb_context_code
482 AND xpah.product_rule_code = p_product_rule_code
483 AND xpah.product_rule_type_code = p_product_rule_type_code
484 AND xpah.event_class_code <> xpah.entity_code || '_ALL'
485 AND xes.application_id = xpah.application_id
486 AND xes.entity_code = xpah.entity_code
487 AND (
488 xes.event_class_code = xpah.event_class_code
489 OR
490 xes.event_class_code = xes.entity_code ||'_ALL'
491 )
492
493 FOR UPDATE NOWAIT
494 ;
495 l_rowid ROWID;
496 l_log_module VARCHAR2(240);
497 --
498 BEGIN
499 --
500 IF g_log_enabled THEN
504 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
501 l_log_module := C_DEFAULT_MODULE||'.LockRowSourceAssignment';
502 END IF;
503 --
505
506 trace
507 (p_msg => 'BEGIN of LockRowSourceAssignment'
508 ,p_level => C_LEVEL_PROCEDURE
509 ,p_module => l_log_module);
510
511 END IF;
512 --
513 OPEN SourceAssignment_cur;
514 FETCH SourceAssignment_cur INTO l_rowid;
515 CLOSE SourceAssignment_cur;
516 --
517 --
518 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
519
520 trace
521 (p_msg => 'END of LockRowSourceAssignment'
522 ,p_level => C_LEVEL_PROCEDURE
523 ,p_module => l_log_module);
524
525 END IF;
526 --
527 EXCEPTION
528 WHEN xla_exceptions_pkg.application_exception THEN
529 IF SourceAssignment_cur%ISOPEN THEN
530 CLOSE SourceAssignment_cur;
531 END IF;
532 RAISE;
533 WHEN xla_exceptions_pkg.resource_busy THEN
534 IF SourceAssignment_cur%ISOPEN THEN
535 CLOSE SourceAssignment_cur;
536 END IF;
537 -- SLA message
538 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
539 trace
540 (p_msg => 'ERROR: XLA_CMP_COMPONENTS_LOCKED'
541 ,p_level => C_LEVEL_EXCEPTION
542 ,p_module => l_log_module);
543 END IF;
544 xla_exceptions_pkg.raise_message
545 ( 'XLA'
546 ,'XLA_CMP_COMPONENTS_LOCKED'
547 ,'PAD_NAME'
548 , g_product_rule_name
549 ,'PAD_OWNER'
550 , g_product_rule_owner
551 );
552
553 WHEN OTHERS THEN
554 IF SourceAssignment_cur%ISOPEN THEN
555 CLOSE SourceAssignment_cur;
556 END IF;
557 -- SLA message to define
558 xla_exceptions_pkg.raise_message
559 (p_location => 'xla_cmp_lock_pad_pkg.LockRowSourceAssignment');
560 END LockRowSourceAssignment;
561 --
562 --
563 --+==========================================================================+
564 --| |
565 --| Private procedure |
566 --| LockRowExtractObject |
567 --| |
568 --+==========================================================================+
569 --
570 PROCEDURE LockRowExtractObject
571 ( p_application_id IN NUMBER
572 , p_product_rule_code IN VARCHAR2
573 , p_product_rule_type_code IN VARCHAR2
574 , p_amb_context_code IN VARCHAR2
575 )
576 IS
577 --
578 --
579 CURSOR ExtractObject_cur
580 IS
581 SELECT xeo.rowid
582 FROM xla_prod_acct_headers xpah
583 , xla_extract_objects xeo
584 WHERE xpah.application_id = p_application_id
585 AND xpah.amb_context_code = p_amb_context_code
586 AND xpah.product_rule_code = p_product_rule_code
587 AND xpah.product_rule_type_code = p_product_rule_type_code
588 AND xpah.event_class_code <> xpah.entity_code || '_ALL'
589 AND xeo.application_id = xpah.application_id
590 AND xeo.entity_code = xpah.entity_code
591 AND (xeo.event_class_code = xpah.event_class_code
592 OR
593 xeo.event_class_code = xeo.entity_code ||'_ALL'
594 )
595 FOR UPDATE NOWAIT
596 ;
597 l_rowid ROWID;
598 l_log_module VARCHAR2(240);
599 --
600 BEGIN
601 --
602 IF g_log_enabled THEN
603 l_log_module := C_DEFAULT_MODULE||'.LockRowExtractObject';
604 END IF;
605 --
606 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
607
608 trace
609 (p_msg => 'BEGIN of LockRowExtractObject'
610 ,p_level => C_LEVEL_PROCEDURE
611 ,p_module => l_log_module);
612
613 END IF;
614 --
615 OPEN ExtractObject_cur;
616 FETCH ExtractObject_cur INTO l_rowid;
617 CLOSE ExtractObject_cur;
618 --
619 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
620
621 trace
622 (p_msg => 'END of LockRowExtractObject'
623 ,p_level => C_LEVEL_PROCEDURE
624 ,p_module => l_log_module);
625
626 END IF;
627 --
628 EXCEPTION
629 WHEN xla_exceptions_pkg.application_exception THEN
630 IF ExtractObject_cur%ISOPEN THEN
631 CLOSE ExtractObject_cur;
632 END IF;
633 RAISE;
634 WHEN xla_exceptions_pkg.resource_busy THEN
635 IF ExtractObject_cur%ISOPEN THEN
636 CLOSE ExtractObject_cur;
637 END IF;
638 -- SLA message
639 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
640 trace
641 (p_msg => 'ERROR: XLA_CMP_COMPONENTS_LOCKED'
642 ,p_level => C_LEVEL_EXCEPTION
643 ,p_module => l_log_module);
644 END IF;
645 xla_exceptions_pkg.raise_message
646 ( 'XLA'
647 ,'XLA_CMP_COMPONENTS_LOCKED'
648 ,'PAD_NAME'
649 , g_product_rule_name
650 ,'PAD_OWNER'
651 , g_product_rule_owner
652 );
653
654 WHEN OTHERS THEN
658 -- SLA message to define
655 IF ExtractObject_cur%ISOPEN THEN
656 CLOSE ExtractObject_cur;
657 END IF;
659 xla_exceptions_pkg.raise_message
660 (p_location => 'xla_cmp_lock_pad_pkg.LockRowExtractObject');
661 END LockRowExtractObject;
662 --
663 --+==========================================================================+
664 --| |
665 --| Private procedure |
666 --| LockRowEventType |
667 --| |
668 --+==========================================================================+
669 --
670 PROCEDURE LockRowEventType
671 ( p_application_id IN NUMBER
672 , p_product_rule_code IN VARCHAR2
673 , p_product_rule_type_code IN VARCHAR2
674 , p_amb_context_code IN VARCHAR2
675 )
676 IS
677 --
678 --
679 CURSOR EventType_cur
680 IS
681 SELECT xett.rowid
682 FROM xla_prod_acct_headers xpah
683 , xla_event_types_b xetb
684 , xla_event_types_tl xett
685 WHERE xpah.application_id = p_application_id
686 AND xpah.amb_context_code = p_amb_context_code
687 AND xpah.product_rule_code = p_product_rule_code
688 AND xpah.product_rule_type_code = p_product_rule_type_code
689 AND xpah.event_class_code <> xpah.entity_code || '_ALL'
690 AND xetb.application_id = xpah.application_id
691 AND xetb.entity_code = xpah.entity_code
692 AND xetb.event_class_code = xpah.event_class_code
693 AND xetb.event_type_code = xpah.event_type_code
694 AND xetb.application_id = xett.application_id
695 AND xetb.entity_code = xett.entity_code
696 AND xetb.event_class_code = xett.event_class_code
697 AND xetb.event_type_code = xett.event_type_code
698 AND xett.language = USERENV('LANG')
699 FOR UPDATE NOWAIT
700 ;
701 l_rowid ROWID;
702 l_log_module VARCHAR2(240);
703 --
704 BEGIN
705 --
706 IF g_log_enabled THEN
707 l_log_module := C_DEFAULT_MODULE||'.LockRowEventType';
708 END IF;
709 --
710 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
711
712 trace
713 (p_msg => 'BEGIN of LockRowEventType'
714 ,p_level => C_LEVEL_PROCEDURE
715 ,p_module => l_log_module );
716
717 END IF;
718 --
719 OPEN EventType_cur;
720 FETCH EventType_cur INTO l_rowid;
721 CLOSE EventType_cur;
722 --
723 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
724
725 trace
726 (p_msg => 'END of LockRowEventType'
727 ,p_level => C_LEVEL_PROCEDURE
728 ,p_module => l_log_module);
729
730 END IF;
731 --
732 EXCEPTION
733 WHEN xla_exceptions_pkg.application_exception THEN
734 IF EventType_cur%ISOPEN THEN
735 CLOSE EventType_cur;
736 END IF;
737 RAISE;
738 WHEN xla_exceptions_pkg.resource_busy THEN
739 IF EventType_cur%ISOPEN THEN
740 CLOSE EventType_cur;
741 END IF;
742 -- SLA message
743 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
744 trace
745 (p_msg => 'ERROR: XLA_CMP_COMPONENTS_LOCKED'
746 ,p_level => C_LEVEL_EXCEPTION
747 ,p_module => l_log_module);
748 END IF;
749 xla_exceptions_pkg.raise_message
750 ( 'XLA'
751 ,'XLA_CMP_COMPONENTS_LOCKED'
752 ,'PAD_NAME'
753 , g_product_rule_name
754 ,'PAD_OWNER'
755 , g_product_rule_owner
756 );
757
758 WHEN OTHERS THEN
759 IF EventType_cur%ISOPEN THEN
760 CLOSE EventType_cur;
761 END IF;
762 -- SLA message to define
763 xla_exceptions_pkg.raise_message
764 (p_location => 'xla_cmp_lock_pad_pkg.LockRowEventType');
765 END LockRowEventType;
766 --
767 --+==========================================================================+
768 --| |
769 --| Private procedure |
770 --| LockRowEventClassGrp |
771 --| |
772 --+==========================================================================+
773 --
774 PROCEDURE LockRowEventClassGrp( p_application_id IN NUMBER
775 , p_product_rule_code IN VARCHAR2
776 , p_product_rule_type_code IN VARCHAR2
777 , p_amb_context_code IN VARCHAR2
778 )
779 IS
780 --
781 --
782 CURSOR EventClassGrp_cur
783 IS
784 SELECT xecgt.rowid
785 FROM xla_prod_acct_headers xpah
786 , xla_event_class_attrs xeca
787 , xla_event_class_grps_b xecgb
788 , xla_event_class_grps_tl xecgt
789 WHERE xpah.application_id = p_application_id
790 AND xpah.amb_context_code = p_amb_context_code
791 AND xpah.product_rule_code = p_product_rule_code
792 AND xpah.product_rule_type_code = p_product_rule_type_code
796 AND xeca.event_class_code = xpah.event_class_code
793 AND xpah.event_class_code <> xpah.entity_code || '_ALL'
794 AND xeca.application_id = xpah.application_id
795 AND xeca.entity_code = xpah.entity_code
797 AND xeca.application_id = xecgb.application_id
798 AND xeca.event_class_group_code = xecgb.event_class_group_code
799 AND xeca.application_id = xecgt.application_id
800 AND xeca.event_class_group_code = xecgt.event_class_group_code
801 AND xecgt.language = USERENV('LANG')
802 AND xeca.event_class_group_code IS NOT NULL
803 FOR UPDATE NOWAIT
804 ;
805 l_rowid ROWID;
806 l_log_module VARCHAR2(240);
807 --
808 BEGIN
809 --
810 IF g_log_enabled THEN
811 l_log_module := C_DEFAULT_MODULE||'.LockRowEventClassGrp';
812 END IF;
813 --
814 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
815
816 trace
817 (p_msg => 'BEGIN of LockRowEventClassGrp'
818 ,p_level => C_LEVEL_PROCEDURE
819 ,p_module => l_log_module);
820
821 END IF;
822 --
823 OPEN EventClassGrp_cur;
824 FETCH EventClassGrp_cur INTO l_rowid;
825 CLOSE EventClassGrp_cur;
826 --
827 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
828
829 trace
830 (p_msg => 'END of LockRowEventClassGrp'
831 ,p_level => C_LEVEL_PROCEDURE
832 ,p_module => l_log_module);
833
834 END IF;
835 --
836 EXCEPTION
837 WHEN xla_exceptions_pkg.application_exception THEN
838 IF EventClassGrp_cur%ISOPEN THEN
839 CLOSE EventClassGrp_cur;
840 END IF;
841 RAISE;
842 WHEN xla_exceptions_pkg.resource_busy THEN
843 IF EventClassGrp_cur%ISOPEN THEN
844 CLOSE EventClassGrp_cur;
845 END IF;
846 -- SLA message
847 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
848 trace
849 (p_msg => 'ERROR: XLA_CMP_COMPONENTS_LOCKED'
850 ,p_level => C_LEVEL_EXCEPTION
851 ,p_module => l_log_module);
852 END IF;
853 xla_exceptions_pkg.raise_message
854 ( 'XLA'
855 ,'XLA_CMP_COMPONENTS_LOCKED'
856 ,'PAD_NAME'
857 , g_product_rule_name
858 ,'PAD_OWNER'
859 , g_product_rule_owner
860 );
861
862 WHEN OTHERS THEN
863 IF EventClassGrp_cur%ISOPEN THEN
864 CLOSE EventClassGrp_cur;
865 END IF;
866 -- SLA message to define
867 xla_exceptions_pkg.raise_message
868 (p_location => 'xla_cmp_lock_pad_pkg.LockRowEventClassGrp');
869 END LockRowEventClassGrp;
870 --
871 --+==========================================================================+
872 --| |
873 --| Private procedure |
874 --| LockRowEventClass |
875 --| |
876 --+==========================================================================+
877 --
878 PROCEDURE LockRowEventClass( p_application_id IN NUMBER
879 , p_product_rule_code IN VARCHAR2
880 , p_product_rule_type_code IN VARCHAR2
881 , p_amb_context_code IN VARCHAR2
882 )
883 IS
884 --
885 --
886 CURSOR EventClass_cur
887 IS
888 SELECT xect.rowid
889 FROM xla_prod_acct_headers xpah
890 , xla_event_classes_b xecb
891 , xla_event_classes_tl xect
892 WHERE xpah.application_id = p_application_id
893 AND xpah.amb_context_code = p_amb_context_code
894 AND xpah.product_rule_code = p_product_rule_code
895 AND xpah.product_rule_type_code = p_product_rule_type_code
896 AND xpah.event_class_code <> xpah.entity_code || '_ALL'
897 AND xecb.application_id = xpah.application_id
898 AND xecb.entity_code = xpah.entity_code
899 AND xecb.event_class_code = xpah.event_class_code
900 AND xect.application_id = xecb.application_id
901 AND xect.entity_code = xecb.entity_code
902 AND xect.event_class_code = xecb.event_class_code
903 AND xect.language = USERENV('LANG')
904 FOR UPDATE NOWAIT
905 ;
906 l_rowid ROWID;
907 l_log_module VARCHAR2(240);
908 --
909 BEGIN
910 --
911 IF g_log_enabled THEN
912 l_log_module := C_DEFAULT_MODULE||'.LockRowEventClass';
913 END IF;
914 --
915 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
916
917 trace
918 (p_msg => 'BEGIN of LockRowEventClass'
919 ,p_level => C_LEVEL_PROCEDURE
920 ,p_module => l_log_module);
921
922 END IF;
923
924 --
925 OPEN EventClass_cur;
926 FETCH EventClass_cur INTO l_rowid;
927 CLOSE EventClass_cur;
928 --
929 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
930
931 trace
932 (p_msg => 'END of LockRowEventClass'
933 ,p_level => C_LEVEL_PROCEDURE
934 ,p_module => l_log_module);
935
936 END IF;
937 --
938 EXCEPTION
939 WHEN xla_exceptions_pkg.application_exception THEN
943 RAISE;
940 IF EventClass_cur%ISOPEN THEN
941 CLOSE EventClass_cur;
942 END IF;
944 WHEN xla_exceptions_pkg.resource_busy THEN
945 IF EventClass_cur%ISOPEN THEN
946 CLOSE EventClass_cur;
947 END IF;
948 -- SLA message
949 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
950 trace
951 (p_msg => 'ERROR: XLA_CMP_COMPONENTS_LOCKED'
952 ,p_level => C_LEVEL_EXCEPTION
953 ,p_module => l_log_module);
954 END IF;
955 xla_exceptions_pkg.raise_message
956 ( 'XLA'
957 ,'XLA_CMP_COMPONENTS_LOCKED'
958 ,'PAD_NAME'
959 , g_product_rule_name
960 ,'PAD_OWNER'
961 , g_product_rule_owner
962 );
963
964 WHEN OTHERS THEN
965 IF EventClass_cur%ISOPEN THEN
966 CLOSE EventClass_cur;
967 END IF;
968 -- SLA message to define
969 xla_exceptions_pkg.raise_message
970 (p_location => 'xla_cmp_lock_pad_pkg.LockRowEventClass');
971 END LockRowEventClass;
972 --
973 --+==========================================================================+
974 --| |
975 --| Private procedure |
976 --| LockRowADR |
977 --| |
978 --+==========================================================================+
979 --
980 PROCEDURE LockRowADR( p_application_id IN NUMBER
981 , p_product_rule_code IN VARCHAR2
982 , p_product_rule_type_code IN VARCHAR2
983 , p_amb_context_code IN VARCHAR2
984 )
985 IS
986 --
987 CURSOR ADR_cur
988 IS
989 --
990 SELECT xsrd.rowid
991 FROM xla_aad_line_defn_assgns xald
992 , xla_line_defn_adr_assgns xlda
993 , xla_seg_rule_details xsrd
994 , xla_seg_rules_b xsrb
995 , xla_seg_rules_tl xsrt
996 , xla_conditions xco
997 WHERE xald.application_id = p_application_id
998 AND xald.amb_context_code = p_amb_context_code
999 AND xald.product_rule_type_code = p_product_rule_type_code
1000 AND xald.product_rule_code = p_product_rule_code
1001 AND xlda.application_id = xald.application_id
1002 AND xlda.amb_context_code = xald.amb_context_code
1003 AND xlda.event_class_code = xald.event_class_code
1004 AND xlda.event_type_code = xald.event_type_code
1005 AND xlda.line_definition_owner_code = xald.line_definition_owner_code
1006 AND xlda.line_definition_code = xald.line_definition_code
1007 AND xsrd.application_id = xlda.application_id
1008 AND xsrd.amb_context_code = xlda.amb_context_code
1009 AND xsrd.segment_rule_code = xlda.segment_rule_code
1010 AND xsrd.segment_rule_type_code = xlda.segment_rule_type_code
1011 AND xsrb.application_id = xlda.application_id
1012 AND xsrb.amb_context_code = xlda.amb_context_code
1013 AND xsrb.segment_rule_code = xlda.segment_rule_code
1014 AND xsrb.segment_rule_type_code = xlda.segment_rule_type_code
1015 AND xsrt.application_id = xlda.application_id
1016 AND xsrt.amb_context_code = xlda.amb_context_code
1017 AND xsrt.segment_rule_code = xlda.segment_rule_code
1018 AND xsrt.segment_rule_type_code = xlda.segment_rule_type_code
1019 AND xsrt.language = USERENV('LANG')
1020 AND xco.segment_rule_detail_id(+) = xsrd.segment_rule_detail_id
1021 FOR UPDATE NOWAIT
1022 ;
1023 --
1024 l_rowid ROWID;
1025 l_log_module VARCHAR2(240);
1026 --
1027 BEGIN
1028 --
1029 IF g_log_enabled THEN
1030 l_log_module := C_DEFAULT_MODULE||'.LockRowADR';
1031 END IF;
1032 --
1033 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1034
1035 trace
1036 (p_msg => 'BEGIN of LockRowADR'
1037 ,p_level => C_LEVEL_PROCEDURE
1038 ,p_module => l_log_module);
1039
1040 END IF;
1041 --
1042 OPEN ADR_cur;
1043 FETCH ADR_cur INTO l_rowid;
1044 CLOSE ADR_cur;
1045 --
1046 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1047
1048 trace
1049 (p_msg => 'END of LockRowADR'
1050 ,p_level => C_LEVEL_PROCEDURE
1051 ,p_module => l_log_module);
1052
1053 END IF;
1054 --
1055 EXCEPTION
1056 WHEN xla_exceptions_pkg.application_exception THEN
1057 IF ADR_cur%ISOPEN THEN
1058 CLOSE ADR_cur;
1059 END IF;
1060 RAISE;
1061 WHEN xla_exceptions_pkg.resource_busy THEN
1062 IF ADR_cur%ISOPEN THEN
1063 CLOSE ADR_cur;
1064 END IF;
1065 -- SLA message
1066 xla_exceptions_pkg.raise_message
1067 ( 'XLA'
1068 ,'XLA_CMP_COMPONENTS_LOCKED'
1069 ,'PAD_NAME'
1070 , g_product_rule_name
1071 ,'PAD_OWNER'
1072 , g_product_rule_owner
1073 );
1074 WHEN OTHERS THEN
1075 IF ADR_cur%ISOPEN THEN
1076 CLOSE ADR_cur;
1077 END IF;
1078 -- SLA message to define
1082 --
1079 xla_exceptions_pkg.raise_message
1080 (p_location => 'xla_cmp_lock_pad_pkg.LockRowADR');
1081 END LockRowADR;
1083 --
1084 --+==========================================================================+
1085 --| |
1086 --| Private procedure |
1087 --| LockRowAcctgLines |
1088 --| |
1089 --+==========================================================================+
1090 --
1091 --
1092 PROCEDURE LockRowAcctgLines( p_application_id IN NUMBER
1093 , p_product_rule_code IN VARCHAR2
1094 , p_product_rule_type_code IN VARCHAR2
1095 , p_amb_context_code IN VARCHAR2
1096 )
1097 IS
1098 --
1099 CURSOR AcctgLines_cur
1100 IS
1101 --
1102 SELECT xald.rowid
1103 FROM xla_aad_line_defn_assgns xald
1104 , xla_line_defn_jlt_assgns xldj
1105 , xla_line_definitions_b xldb
1106 , xla_line_definitions_tl xldt
1107 , xla_acct_line_types_b xalb
1108 , xla_acct_line_types_tl xalt
1109 , xla_conditions xcon
1110 , xla_prod_acct_headers xpah
1111 WHERE xpah.application_id = p_application_id
1112 AND xpah.amb_context_code = p_amb_context_code
1113 AND xpah.product_rule_code = p_product_rule_code
1114 AND xpah.product_rule_type_code = p_product_rule_type_code
1115 AND xald.application_id = xpah.application_id
1116 AND xald.amb_context_code = xpah.amb_context_code
1117 AND xald.event_class_code = xpah.event_class_code
1118 AND xald.event_type_code = xpah.event_type_code
1119 AND xald.product_rule_code = xpah.product_rule_code
1120 AND xald.product_rule_type_code = xpah.product_rule_type_code
1121 AND xldj.application_id = xald.application_id
1122 AND xldj.amb_context_code = xald.amb_context_code
1123 AND xldj.event_class_code = xald.event_class_code
1124 AND xldj.event_type_code = xald.event_type_code
1125 AND xldj.line_definition_code = xald.line_definition_code
1126 AND xldj.line_definition_owner_code = xald.line_definition_owner_code
1127 AND xldb.application_id = xldj.application_id
1128 AND xldb.amb_context_code = xldj.amb_context_code
1129 AND xldb.event_class_code = xldj.event_class_code
1130 AND xldb.event_type_code = xldj.event_type_code
1131 AND xldb.line_definition_code = xldj.line_definition_code
1132 AND xldb.line_definition_owner_code = xldj.line_definition_owner_code
1133 AND xldt.application_id = xldb.application_id
1134 AND xldt.amb_context_code = xldb.amb_context_code
1135 AND xldt.event_class_code = xldb.event_class_code
1136 AND xldt.event_type_code = xldb.event_type_code
1137 AND xldt.line_definition_code = xldb.line_definition_code
1138 AND xldt.line_definition_owner_code = xldb.line_definition_owner_code
1139 AND xalb.application_id = xldj.application_id
1140 AND xalb.amb_context_code = xldj.amb_context_code
1141 AND xalb.entity_code = xpah.entity_code
1142 AND xalb.event_class_code = xldj.event_class_code
1143 AND xalb.accounting_line_type_code = xldj.accounting_line_type_code
1144 AND xalb.accounting_line_code = xldj.accounting_line_code
1145 AND xalt.application_id = xalb.application_id
1146 AND xalt.amb_context_code = xalb.amb_context_code
1147 AND xalt.entity_code = xalb.entity_code
1148 AND xalt.event_class_code = xalb.event_class_code
1149 AND xalt.accounting_line_type_code = xalb.accounting_line_type_code
1150 AND xalt.accounting_line_code = xalb.accounting_line_code
1151 AND xcon.application_id(+) = xalb.application_id
1152 AND xcon.amb_context_code(+) = xalb.amb_context_code
1153 AND xcon.entity_code(+) = xalb.entity_code
1154 AND xcon.event_class_code(+) = xalb.event_class_code
1155 AND xcon.accounting_line_type_code(+) = xalb.accounting_line_type_code
1156 AND xcon.accounting_line_code(+) = xalb.accounting_line_code
1157 FOR UPDATE NOWAIT
1158 ;
1159 --
1160 l_rowid ROWID;
1161 --
1162 l_log_module VARCHAR2(240);
1163 --
1164 BEGIN
1165 --
1166 IF g_log_enabled THEN
1167 l_log_module := C_DEFAULT_MODULE||'.LockRowAcctgLines';
1168 END IF;
1169 --
1170 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1171
1172 trace
1173 (p_msg => 'BEGIN of LockRowAcctgLines'
1174 ,p_level => C_LEVEL_PROCEDURE
1175 ,p_module => l_log_module);
1176
1177 END IF;
1178
1179 --
1180 OPEN AcctgLines_cur;
1181 FETCH AcctgLines_cur INTO l_rowid;
1182 CLOSE AcctgLines_cur;
1183 --
1184 LockRowLineDesc( p_application_id => p_application_id
1185 , p_product_rule_code => p_product_rule_code
1186 , p_product_rule_type_code => p_product_rule_type_code
1187 , p_amb_context_code => p_amb_context_code
1188 );
1189 --
1190 --
1191 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1192
1193 trace
1194 (p_msg => 'END of LockRowAcctgLines'
1195 ,p_level => C_LEVEL_PROCEDURE
1196 ,p_module => l_log_module);
1197
1198 END IF;
1199 --
1200 EXCEPTION
1201 WHEN xla_exceptions_pkg.application_exception THEN
1205 RAISE;
1202 IF AcctgLines_cur%ISOPEN THEN
1203 CLOSE AcctgLines_cur;
1204 END IF;
1206 WHEN xla_exceptions_pkg.resource_busy THEN
1207 IF AcctgLines_cur%ISOPEN THEN
1208 CLOSE AcctgLines_cur;
1209 END IF;
1210 -- SLA message to define
1211 xla_exceptions_pkg.raise_message
1212 ( 'XLA'
1213 ,'XLA_CMP_COMPONENTS_LOCKED'
1214 ,'PAD_NAME'
1215 , g_product_rule_name
1216 ,'PAD_OWNER'
1217 , g_product_rule_owner
1218 );
1219 WHEN OTHERS THEN
1220 IF AcctgLines_cur%ISOPEN THEN
1221 CLOSE AcctgLines_cur;
1222 END IF;
1223 -- SLA message to define
1224 xla_exceptions_pkg.raise_message
1225 (p_location => 'xla_cmp_lock_pad_pkg.LockRowAcctgLines');
1226 END LockRowAcctgLines;
1227 --
1228 --+==========================================================================+
1229 --| |
1230 --| Private procedure |
1231 --| LockRowHeaders |
1232 --| lock header and Headers, event class , event type |
1233 --+==========================================================================+
1234 --
1235 PROCEDURE LockRowHeaders( p_application_id IN NUMBER
1236 , p_product_rule_code IN VARCHAR2
1237 , p_product_rule_type_code IN VARCHAR2
1238 , p_amb_context_code IN VARCHAR2
1239 )
1240 IS
1241 --
1242 CURSOR Headers_cur
1243 IS
1244 SELECT xpah.rowid
1245 FROM xla_prod_acct_headers xpah
1246 , xla_entity_types_b xetb
1247 , xla_entity_types_tl xett
1248 , xla_event_classes_b xecb
1249 , xla_event_classes_tl xect
1250 WHERE xpah.application_id = p_application_id
1251 AND xpah.amb_context_code = p_amb_context_code
1252 AND xpah.product_rule_code = p_product_rule_code
1253 AND xpah.product_rule_type_code = p_product_rule_type_code
1254 AND xetb.entity_code = xpah.entity_code
1255 AND xetb.application_id = xpah.application_id
1256 AND xetb.entity_code = xpah.entity_code
1257 AND xetb.application_id = xett.application_id
1258 AND xetb.entity_code = xett.entity_code
1259 AND xecb.application_id(+) = xpah.application_id
1260 AND xecb.entity_code(+) = xpah.entity_code
1261 AND xecb.event_class_code(+) = xpah.event_class_code
1262 AND xect.application_id(+) = xecb.application_id
1263 AND xect.entity_code(+) = xecb.entity_code
1264 AND xect.event_class_code(+) = xecb.event_class_code
1265 FOR UPDATE NOWAIT
1266 ;
1267 --
1268 l_rowid ROWID;
1269 --
1270 l_log_module VARCHAR2(240);
1271 BEGIN
1272 --
1273 IF g_log_enabled THEN
1274 l_log_module := C_DEFAULT_MODULE||'.LockRowHeaders';
1275 END IF;
1276 --
1277 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1278
1279 trace
1280 (p_msg => 'BEGIN of LockRowHeaders'
1281 ,p_level => C_LEVEL_PROCEDURE
1282 ,p_module => l_log_module);
1283
1284 END IF;
1285 --
1286 OPEN Headers_cur;
1287 FETCH Headers_cur INTO l_rowid;
1288 CLOSE Headers_cur;
1289 --
1290 LockRowEventClass( p_application_id => p_application_id
1291 , p_product_rule_code => p_product_rule_code
1292 , p_product_rule_type_code => p_product_rule_type_code
1293 , p_amb_context_code => p_amb_context_code
1294 );
1295 --
1296 LockRowEventClassGrp( p_application_id => p_application_id
1297 , p_product_rule_code => p_product_rule_code
1298 , p_product_rule_type_code => p_product_rule_type_code
1299 , p_amb_context_code => p_amb_context_code
1300 );
1301 --
1302 LockRowSourceAssignment( p_application_id => p_application_id
1303 , p_product_rule_code => p_product_rule_code
1304 , p_product_rule_type_code => p_product_rule_type_code
1305 , p_amb_context_code => p_amb_context_code
1306 );
1307 --
1308 LockRowExtractObject( p_application_id => p_application_id
1309 , p_product_rule_code => p_product_rule_code
1310 , p_product_rule_type_code => p_product_rule_type_code
1311 , p_amb_context_code => p_amb_context_code
1312 );
1313 --
1314 LockRowEventType( p_application_id => p_application_id
1315 , p_product_rule_code => p_product_rule_code
1316 , p_product_rule_type_code => p_product_rule_type_code
1317 , p_amb_context_code => p_amb_context_code
1318 );
1319 --
1320 LockRowHdrDesc( p_application_id => p_application_id
1321 , p_product_rule_code => p_product_rule_code
1322 , p_product_rule_type_code => p_product_rule_type_code
1323 , p_amb_context_code => p_amb_context_code
1324 );
1325 --
1326 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1327
1328 trace
1329 (p_msg => 'END of LockRowHeaders'
1330 ,p_level => C_LEVEL_PROCEDURE
1331 ,p_module => l_log_module);
1332
1333 END IF;
1337 IF Headers_cur%ISOPEN THEN
1334 --
1335 EXCEPTION
1336 WHEN xla_exceptions_pkg.application_exception THEN
1338 CLOSE Headers_cur;
1339 END IF;
1340 RAISE;
1341 WHEN xla_exceptions_pkg.resource_busy THEN
1342 IF Headers_cur%ISOPEN THEN
1343 CLOSE Headers_cur;
1344 END IF;
1345 -- SLA message to define
1346 xla_exceptions_pkg.raise_message
1347 ( 'XLA'
1348 ,'XLA_CMP_COMPONENTS_LOCKED'
1349 ,'PAD_NAME'
1350 , g_product_rule_name
1351 ,'PAD_OWNER'
1352 , g_product_rule_owner
1353 );
1354 WHEN OTHERS THEN
1355 IF Headers_cur%ISOPEN THEN
1356 CLOSE Headers_cur;
1357 END IF;
1358 -- SLA message to define
1359 xla_exceptions_pkg.raise_message
1360 (p_location => 'xla_cmp_lock_pad_pkg.LockRowHeaders');
1361 END LockRowHeaders;
1362 --
1363 --+==========================================================================+
1364 --| |
1365 --| Private procedure |
1366 --| LockRowPAD : lock Product Accounting Defintition tables |
1367 --| |
1368 --+==========================================================================+
1369 --
1370
1371 PROCEDURE LockRowPAD( p_application_id IN NUMBER
1372 , p_product_rule_code IN VARCHAR2
1373 , p_product_rule_type_code IN VARCHAR2
1374 , p_amb_context_code IN VARCHAR2
1375 )
1376 IS
1377 --
1378 CURSOR pad_cur
1379 IS
1380 SELECT xprb.rowid
1381 , xprt.name
1382 FROM xla_product_rules_b xprb
1383 , xla_product_rules_tl xprt
1384 WHERE xprb.application_id = p_application_id
1385 AND xprb.product_rule_code = p_product_rule_code
1386 AND xprb.product_rule_type_code = p_product_rule_type_code
1387 AND xprb.amb_context_code = p_amb_context_code
1388 AND xprb.application_id = xprt.application_id
1389 AND xprb.product_rule_code = xprt.product_rule_code
1390 AND xprb.product_rule_type_code = xprt.product_rule_type_code
1391 AND xprb.amb_context_code = xprt.amb_context_code
1392 AND xprt.language = USERENV('LANG')
1393 FOR UPDATE NOWAIT
1394 ;
1395 l_rowid ROWID;
1396 l_name VARCHAR2(80);
1397 l_log_module VARCHAR2(240);
1398 --
1399 BEGIN
1400 --
1401 IF g_log_enabled THEN
1402 l_log_module := C_DEFAULT_MODULE||'.LockRowPAD';
1403 END IF;
1404 --
1405 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1406
1407 trace
1408 (p_msg => 'BEGIN of LockRowPAD'
1409 ,p_level => C_LEVEL_PROCEDURE
1410 ,p_module => l_log_module);
1411
1412 END IF;
1413 --
1414 OPEN pad_cur;
1415 FETCH pad_cur INTO l_rowid,l_name;
1416 CLOSE pad_cur;
1417 --
1418 -- lock Headers, entities, event classes, event types defintions against changes
1419 --
1420 LockRowHeaders( p_application_id => p_application_id
1421 , p_product_rule_code => p_product_rule_code
1422 , p_product_rule_type_code => p_product_rule_type_code
1423 , p_amb_context_code => p_amb_context_code
1424 );
1425 --
1426 -- lock Accounting Lines , descriptions, conditions
1427 --
1428 LockRowAcctgLines( p_application_id => p_application_id
1429 , p_product_rule_code => p_product_rule_code
1430 , p_product_rule_type_code => p_product_rule_type_code
1431 , p_amb_context_code => p_amb_context_code
1432 );
1433 --
1434 -- lock account derivation rules, conditions
1435 --
1436
1437 LockRowADR( p_application_id => p_application_id
1438 , p_product_rule_code => p_product_rule_code
1439 , p_product_rule_type_code => p_product_rule_type_code
1440 , p_amb_context_code => p_amb_context_code
1441 );
1442
1443 --
1444 --
1445 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1446
1447 trace
1448 (p_msg => 'END of LockRowPAD'
1449 ,p_level => C_LEVEL_PROCEDURE
1450 ,p_module => l_log_module);
1451
1452 END IF;
1453 --
1454 EXCEPTION
1455 WHEN xla_exceptions_pkg.application_exception THEN
1456 IF pad_cur%ISOPEN THEN
1457 CLOSE pad_cur;
1458 END IF;
1459 RAISE;
1460 WHEN xla_exceptions_pkg.resource_busy THEN
1461 IF pad_cur%ISOPEN THEN
1462 CLOSE pad_cur;
1463 END IF;
1464 -- SLA message
1465 xla_exceptions_pkg.raise_message
1466 ( 'XLA'
1467 ,'XLA_CMP_COMPONENTS_LOCKED'
1468 ,'PAD_NAME'
1469 , g_product_rule_name
1470 ,'PAD_OWNER'
1471 , g_product_rule_owner
1472 );
1473 WHEN OTHERS THEN
1474 IF pad_cur%ISOPEN THEN
1475 CLOSE pad_cur;
1476 END IF;
1477 -- SLA message to define
1478 xla_exceptions_pkg.raise_message
1482 --+==========================================================================+
1479 (p_location => 'xla_cmp_lock_pad_pkg.LockRowPAD');
1480 END LockRowPAD;
1481 --
1483 --| PUBLIC procedures and functions |
1484 --| |
1485 --| |
1486 --| |
1487 --| |
1488 --| |
1489 --| |
1490 --| |
1491 --| |
1492 --| |
1493 --| |
1494 --| |
1495 --| |
1496 --| |
1497 --| |
1498 --+==========================================================================+
1499 --
1500
1501 FUNCTION LockPAD ( p_application_id IN NUMBER
1502 , p_product_rule_code IN VARCHAR2
1503 , p_product_rule_type_code IN VARCHAR2
1504 , p_product_rule_name IN VARCHAR2
1505 , p_amb_context_code IN VARCHAR2
1506 )
1507 RETURN BOOLEAN
1508 IS
1509 l_log_module VARCHAR2(240);
1510 --
1511 BEGIN
1512 --
1513 IF g_log_enabled THEN
1514 l_log_module := C_DEFAULT_MODULE||'.LockPAD';
1515 END IF;
1516 --
1517 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1518
1519 trace
1520 (p_msg => 'BEGIN of '
1521 ,p_level => C_LEVEL_PROCEDURE
1522 ,p_module => l_log_module);
1523
1524 END IF;
1525 --
1526 g_product_rule_name := nvl(p_product_rule_name,p_product_rule_code);
1527 g_product_rule_owner := xla_lookups_pkg.get_meaning(
1528 p_lookup_type => 'XLA_OWNER_TYPE'
1529 , p_lookup_code => p_product_rule_type_code
1530 ) ;
1531
1532 --
1533 SAVEPOINT LockPADRows;
1534 --
1535 LockRowPAD( p_application_id => p_application_id
1536 , p_product_rule_code => p_product_rule_code
1537 , p_product_rule_type_code => p_product_rule_type_code
1538 , p_amb_context_code => p_amb_context_code
1539 );
1540 --
1541 --
1542 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1543
1544 trace
1545 (p_msg => 'return value = TRUE'
1546 ,p_level => C_LEVEL_PROCEDURE
1547 ,p_module => l_log_module);
1548
1549 trace
1550 (p_msg => 'END of LockPAD'
1551 ,p_level => C_LEVEL_PROCEDURE
1552 ,p_module => l_log_module);
1553
1554 END IF;
1555 --
1556 RETURN TRUE;
1557 --
1558 EXCEPTION
1559 WHEN xla_exceptions_pkg.application_exception THEN
1560 --
1561 ROLLBACK TO LockPADRows;
1562 --
1563 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1564
1565 trace
1566 (p_msg => 'return value = FALSE'
1567 ,p_level => C_LEVEL_PROCEDURE
1568 ,p_module => l_log_module);
1569
1570 trace
1571 (p_msg => 'END of LockPAD'
1572 ,p_level => C_LEVEL_PROCEDURE
1573 ,p_module => l_log_module);
1574
1575 END IF;
1576 --
1577 RETURN FALSE;
1578 --
1579 WHEN OTHERS THEN
1580 --
1581 ROLLBACK TO LockPADRows;
1582 --
1583 xla_exceptions_pkg.raise_message
1584 (p_location => 'xla_cmp_lock_pad_pkg.LockPAD');
1585 END LockPAD;
1586 --
1587 --=============================================================================
1588 --
1589 --
1590 --
1591 --
1592 --
1593 --
1594 --
1595 --
1596 --
1597 --
1598 --
1599 --
1600 --
1601 --
1602 --
1603 --
1604 --
1605 --
1606 --
1607 --
1608 --
1609 --
1610 --=============================================================================
1611 --=============================================================================
1612 -- *********** Initialization routine **********
1613 --=============================================================================
1614
1615 BEGIN
1616
1617 g_log_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
1618 g_log_enabled := fnd_log.test
1619 (log_level => g_log_level
1620 ,module => C_DEFAULT_MODULE);
1621
1622 IF NOT g_log_enabled THEN
1623 g_log_level := C_LEVEL_LOG_DISABLED;
1624 END IF;
1625
1626 END xla_cmp_lock_pad_pkg; -- end of package spec