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