DBA Data[Home] [Help]

PACKAGE BODY: APPS.XLA_EVENT_CLASS_ATTRS_F_PKG

Source


1 PACKAGE BODY xla_event_class_attrs_f_pkg AS
2 /* $Header: xlatbeca.pkb 120.13 2006/02/16 03:28:23 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_event_class_attrs_f_pkg                                       |
10 |                                                                       |
11 | DESCRIPTION                                                           |
12 |    Forms PL/SQL Wrapper for xla_classes_attr                          |
13 |                                                                       |
14 | HISTORY                                                               |
15 |    05/22/01     Dimple Shah    Created                                |
16 |                                                                       |
17 +======================================================================*/
18 
19 --=============================================================================
20 --               *********** Local Trace Routine **********
21 --=============================================================================
22 C_LEVEL_STATEMENT     CONSTANT NUMBER := FND_LOG.LEVEL_STATEMENT;
23 C_LEVEL_PROCEDURE     CONSTANT NUMBER := FND_LOG.LEVEL_PROCEDURE;
24 C_LEVEL_EVENT         CONSTANT NUMBER := FND_LOG.LEVEL_EVENT;
25 C_LEVEL_EXCEPTION     CONSTANT NUMBER := FND_LOG.LEVEL_EXCEPTION;
26 C_LEVEL_ERROR         CONSTANT NUMBER := FND_LOG.LEVEL_ERROR;
27 C_LEVEL_UNEXPECTED    CONSTANT NUMBER := FND_LOG.LEVEL_UNEXPECTED;
28 
29 C_LEVEL_LOG_DISABLED  CONSTANT NUMBER := 99;
30 C_DEFAULT_MODULE      CONSTANT VARCHAR2(240) := 'xla.plsql.xla_event_class_attrs_f_pkg';
31 
32 g_debug_flag          VARCHAR2(1) :=
33 NVL(fnd_profile.value('XLA_DEBUG_TRACE'),'N');
34 
35 g_log_level           NUMBER;
36 g_log_enabled         BOOLEAN;
37 
38 PROCEDURE trace
39   (p_msg                        IN VARCHAR2
40   ,p_module                     IN VARCHAR2
41   ,p_level                      IN NUMBER) IS
42 BEGIN
43   ----------------------------------------------------------------------------
44   -- Following is for FND log.
45   ----------------------------------------------------------------------------
46   IF (p_msg IS NULL AND p_level >= g_log_level) THEN
47     fnd_log.message(p_level, p_module);
48   ELSIF p_level >= g_log_level THEN
49     fnd_log.string(p_level, p_module, p_msg);
50   END IF;
51 
52 EXCEPTION
53   WHEN xla_exceptions_pkg.application_exception THEN
54     RAISE;
55 
56   WHEN OTHERS THEN
57     xla_exceptions_pkg.raise_message
58       (p_location   => 'xla_event_class_attrs_f_pkg.trace');
59 END trace;
60 
61 
62 
63 /*======================================================================+
64 |                                                                       |
65 |  Procedure insert_row                                                 |
66 |                                                                       |
67 +======================================================================*/
68 PROCEDURE insert_row
69   (x_rowid                            IN OUT NOCOPY VARCHAR2
70   ,x_application_id                   IN NUMBER
71   ,x_entity_code                      IN VARCHAR2
72   ,x_event_class_code                 IN VARCHAR2
73   ,x_event_class_group_code           IN VARCHAR2
74   ,x_je_category_name                 IN VARCHAR2
75   ,x_reporting_view_name              IN VARCHAR2
76   ,x_allow_actuals_flag               IN VARCHAR2
77   ,x_allow_budgets_flag               IN VARCHAR2
78   ,x_allow_encumbrance_flag           IN VARCHAR2
79   ,x_calculate_acctd_amts_flag        IN VARCHAR2
80   ,x_calculate_g_l_amts_flag          IN VARCHAR2
81   ,x_creation_date                    IN DATE
82   ,x_created_by                       IN NUMBER
83   ,x_last_update_date                 IN DATE
84   ,x_last_updated_by                  IN NUMBER
85   ,x_last_update_login                IN NUMBER)
86 
87 IS
88 
89 CURSOR c IS
90 SELECT rowid
91 FROM   xla_event_class_attrs
92 WHERE  application_id                   = x_application_id
93   AND  entity_code                      = x_entity_code
94   AND  event_class_code                 = x_event_class_code
95 ;
96 
97   l_log_module            VARCHAR2(240);
98 BEGIN
99 
100   IF g_log_enabled THEN
101     l_log_module := C_DEFAULT_MODULE||'.insert_row';
102   END IF;
103 
104   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
105     trace(p_msg    => 'BEGIN of procedure insert_row',
106           p_module => l_log_module,
107           p_level  => C_LEVEL_PROCEDURE);
108   END IF;
109 
110 INSERT INTO xla_event_class_attrs
111 (creation_date
112 ,created_by
113 ,application_id
114 ,entity_code
115 ,event_class_code
116 ,event_class_group_code
117 ,je_category_name
118 ,reporting_view_name
119 ,allow_actuals_flag
120 ,allow_budgets_flag
121 ,allow_encumbrance_flag
122 ,calculate_acctd_amts_flag
123 ,calculate_g_l_amts_flag
124 ,last_update_date
125 ,last_updated_by
126 ,last_update_login)
127 VALUES
128 (x_creation_date
129 ,x_created_by
130 ,x_application_id
131 ,x_entity_code
132 ,x_event_class_code
133 ,x_event_class_group_code
134 ,x_je_category_name
135 ,x_reporting_view_name
136 ,x_allow_actuals_flag
137 ,x_allow_budgets_flag
138 ,x_allow_encumbrance_flag
139 ,x_calculate_acctd_amts_flag
140 ,x_calculate_g_l_amts_flag
141 ,x_last_update_date
142 ,x_last_updated_by
143 ,x_last_update_login)
144 ;
145 
146 OPEN c;
147 FETCH c INTO x_rowid;
148 
149 IF (c%NOTFOUND) THEN
150    CLOSE c;
151    RAISE NO_DATA_FOUND;
152 END IF;
153 CLOSE c;
154 
155   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
156     trace(p_msg    => 'END of procedure insert_row',
157           p_module => l_log_module,
158           p_level  => C_LEVEL_PROCEDURE);
159   END IF;
160 
161 END insert_row;
162 
163 /*======================================================================+
164 |                                                                       |
165 |  Procedure lock_row                                                   |
166 |                                                                       |
167 +======================================================================*/
168 PROCEDURE lock_row
169   (x_rowid                            IN OUT NOCOPY VARCHAR2
170   ,x_application_id                   IN NUMBER
171   ,x_entity_code                      IN VARCHAR2
172   ,x_event_class_code                 IN VARCHAR2
173   ,x_event_class_group_code           IN VARCHAR2
174   ,x_je_category_name                 IN VARCHAR2
175   ,x_reporting_view_name              IN VARCHAR2
176   ,x_allow_actuals_flag               IN VARCHAR2
177   ,x_allow_budgets_flag               IN VARCHAR2
178   ,x_allow_encumbrance_flag           IN VARCHAR2
179   ,x_calculate_acctd_amts_flag        IN VARCHAR2
180   ,x_calculate_g_l_amts_flag          IN VARCHAR2)
181 
182 IS
183 
184 CURSOR c IS
185 SELECT application_id
186       ,entity_code
187       ,event_class_code
188       ,event_class_group_code
189       ,je_category_name
190       ,reporting_view_name
191       ,allow_actuals_flag
192       ,allow_budgets_flag
193       ,allow_encumbrance_flag
194       ,calculate_acctd_amts_flag
195       ,calculate_g_l_amts_flag
196 FROM   xla_event_class_attrs
197 WHERE  application_id                   = x_application_id
198   AND  entity_code                      = x_entity_code
199   AND  event_class_code                 = x_event_class_code
200 FOR UPDATE OF application_id NOWAIT;
201 
202 recinfo              c%ROWTYPE;
203 
204   l_log_module            VARCHAR2(240);
205 BEGIN
206 
207   IF g_log_enabled THEN
208     l_log_module := C_DEFAULT_MODULE||'.lock_row';
209   END IF;
210 
211   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
212     trace(p_msg    => 'BEGIN of procedure lock_row',
213           p_module => l_log_module,
214           p_level  => C_LEVEL_PROCEDURE);
215   END IF;
216 
217 OPEN c;
218 FETCH c INTO recinfo;
219 
220 IF (c%NOTFOUND) THEN
221    CLOSE c;
222    fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
223    app_exception.raise_exception;
224 END IF;
225 CLOSE c;
226 
227 IF ( (recinfo.application_id                    = x_application_id)
228  AND (recinfo.entity_code                       = x_entity_code)
229  AND (recinfo.event_class_code                  = x_event_class_code)
230  AND (recinfo.event_class_group_code            = x_event_class_group_code)
231  AND (recinfo.je_category_name                  = x_je_category_name)
232  AND (recinfo.allow_actuals_flag                = x_allow_actuals_flag)
233  AND (recinfo.allow_budgets_flag                = x_allow_budgets_flag)
234  AND (recinfo.allow_encumbrance_flag            = x_allow_encumbrance_flag)
235  AND (recinfo.calculate_acctd_amts_flag         = x_calculate_acctd_amts_flag)
236  AND (recinfo.calculate_g_l_amts_flag           = x_calculate_g_l_amts_flag)
237  AND ((recinfo.reporting_view_name              = X_reporting_view_name)
238    OR ((recinfo.reporting_view_name              IS NULL)
239   AND (x_reporting_view_name              IS NULL)))
240                    ) THEN
241    null;
242 ELSE
243    fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
244    app_exception.raise_exception;
245 END IF;
246 
247   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
248     trace(p_msg    => 'END of procedure lock_row',
249           p_module => l_log_module,
250           p_level  => C_LEVEL_PROCEDURE);
251   END IF;
252 
253 RETURN;
254 
255 END lock_row;
256 
257 /*======================================================================+
258 |                                                                       |
259 |  Procedure update_row                                                 |
260 |                                                                       |
261 +======================================================================*/
262 PROCEDURE update_row
263   (x_rowid                            IN OUT NOCOPY VARCHAR2
264   ,x_application_id                   IN NUMBER
265   ,x_entity_code                      IN VARCHAR2
266   ,x_event_class_code                 IN VARCHAR2
267   ,x_event_class_group_code           IN VARCHAR2
268   ,x_je_category_name                 IN VARCHAR2
269   ,x_reporting_view_name              IN VARCHAR2
270   ,x_allow_actuals_flag               IN VARCHAR2
271   ,x_allow_budgets_flag               IN VARCHAR2
272   ,x_allow_encumbrance_flag           IN VARCHAR2
273   ,x_calculate_acctd_amts_flag        IN VARCHAR2
274   ,x_calculate_g_l_amts_flag          IN VARCHAR2
275   ,x_last_update_date                 IN DATE
276   ,x_last_updated_by                  IN NUMBER
277   ,x_last_update_login                IN NUMBER)
278 IS
279 
280   l_log_module            VARCHAR2(240);
281 BEGIN
282 
283   IF g_log_enabled THEN
284     l_log_module := C_DEFAULT_MODULE||'.update_row';
285   END IF;
286 
287   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
288     trace(p_msg    => 'BEGIN of procedure update_row',
289           p_module => l_log_module,
290           p_level  => C_LEVEL_PROCEDURE);
291   END IF;
292 
293 UPDATE xla_event_class_attrs
294    SET
295        last_update_date                 = x_last_update_date
296       ,event_class_group_code           = x_event_class_group_code
297       ,je_category_name                 = x_je_category_name
298       ,reporting_view_name              = x_reporting_view_name
299       ,allow_actuals_flag               = x_allow_actuals_flag
300       ,allow_budgets_flag               = x_allow_budgets_flag
301       ,allow_encumbrance_flag           = x_allow_encumbrance_flag
302       ,calculate_acctd_amts_flag        = x_calculate_acctd_amts_flag
303       ,calculate_g_l_amts_flag          = x_calculate_g_l_amts_flag
304       ,last_updated_by                  = x_last_updated_by
305       ,last_update_login                = x_last_update_login
306 WHERE  application_id                   = X_application_id
307   AND  entity_code                      = x_entity_code
308   AND  event_class_code                 = x_event_class_code;
309 
310 IF (SQL%NOTFOUND) THEN
311    RAISE NO_DATA_FOUND;
312 END IF;
313 
314   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
315     trace(p_msg    => 'END of procedure update_row',
316           p_module => l_log_module,
317           p_level  => C_LEVEL_PROCEDURE);
318   END IF;
319 
320 END update_row;
321 
322 /*======================================================================+
323 |                                                                       |
324 |  Procedure delete_row                                                 |
325 |                                                                       |
326 +======================================================================*/
327 PROCEDURE delete_row
328   (x_application_id                   IN NUMBER
329   ,x_entity_code                      IN VARCHAR2
330   ,x_event_class_code                 IN VARCHAR2)
331 
332 IS
333 
334   l_log_module            VARCHAR2(240);
335 BEGIN
336 
337   IF g_log_enabled THEN
338     l_log_module := C_DEFAULT_MODULE||'.delete_row';
339   END IF;
340 
341   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
342     trace(p_msg    => 'BEGIN of procedure delete_row',
343           p_module => l_log_module,
344           p_level  => C_LEVEL_PROCEDURE);
345   END IF;
346 
347 DELETE FROM xla_event_class_attrs
348 WHERE application_id                   = x_application_id
349   AND entity_code                      = x_entity_code
350   AND event_class_code                 = x_event_class_code;
351 
352 IF (SQL%NOTFOUND) THEN
353    RAISE NO_DATA_FOUND;
354 END IF;
355 
356   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
357     trace(p_msg    => 'END of procedure delete_row',
358           p_module => l_log_module,
359           p_level  => C_LEVEL_PROCEDURE);
360   END IF;
361 
362 END delete_row;
363 
364 --=============================================================================
365 --
366 -- Name: load_row
367 -- Description: To be used by FNDLOAD to upload a row to the table
368 --
369 --=============================================================================
370 PROCEDURE load_row
371 (p_application_short_name             IN VARCHAR2
372 ,p_entity_code                        IN VARCHAR2
373 ,p_event_class_code                   IN VARCHAR2
374 ,p_event_class_group_code             IN VARCHAR2
375 ,p_je_category_key                    IN VARCHAR2
376 ,p_reporting_view_name                IN VARCHAR2
377 ,p_allow_actuals_flag                 IN VARCHAR2
378 ,p_allow_budgets_flag                 IN VARCHAR2
379 ,p_allow_encumbrance_flag             IN VARCHAR2
380 ,p_calculate_acctd_amts_flag          IN VARCHAR2
381 ,p_calculate_g_l_amts_flag            IN VARCHAR2
382 ,p_owner                              IN VARCHAR2
383 ,p_last_update_date                   IN VARCHAR2)
384 IS
385   CURSOR c_app_id(p_app_short_name VARCHAR2) IS
386   SELECT application_id
387   FROM   fnd_application
388   WHERE  application_short_name          = p_app_short_name;
389 
390   CURSOR c_je_category(p_je_category_key VARCHAR2) IS
391   SELECT je_category_name
392   FROM   gl_je_categories
393   WHERE  je_category_key          = p_je_category_key;
394 
395   l_application_id        INTEGER;
396   l_je_category_name      VARCHAR2(30);
397   l_rowid                 ROWID;
398   l_exist                 VARCHAR2(1);
399   f_luby                  NUMBER;      -- entity owner in file
400   f_ludate                DATE;        -- entity update date in file
401   db_luby                 NUMBER;      -- entity owner in db
402   db_ludate               DATE;        -- entity update date in db
403   l_log_module            VARCHAR2(240);
404 BEGIN
405 
406   IF g_log_enabled THEN
407     l_log_module := C_DEFAULT_MODULE||'.load_row';
408   END IF;
409 
410   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
411     trace(p_msg    => 'BEGIN of procedure load_row',
412           p_module => l_log_module,
413           p_level  => C_LEVEL_PROCEDURE);
414   END IF;
415 
416   -- Translate owner to file_last_updated_by
417   f_luby := fnd_load_util.owner_id(p_owner);
418 
419   -- Translate char last_update_date to date
420   f_ludate := nvl(to_date(p_last_update_date, 'YYYY/MM/DD'), sysdate);
421 
422   OPEN c_app_id(p_application_short_name);
423   FETCH c_app_id INTO l_application_id;
424   CLOSE c_app_id;
425 
426   OPEN c_je_category(p_je_category_key);
427   FETCH c_je_category INTO l_je_category_name;
428   CLOSE c_je_category;
429 
430   BEGIN
431 
432     SELECT last_updated_by, last_update_date
433       INTO db_luby, db_ludate
434       FROM xla_event_class_attrs
435      WHERE application_id       = l_application_id
436        AND entity_code          = p_entity_code
437        AND event_class_code     = p_event_class_code;
438 
439     IF (fnd_load_util.upload_test(f_luby, f_ludate, db_luby, db_ludate, NULL)) THEN
440 
441       xla_event_class_attrs_f_pkg.update_row
442           (x_rowid                         => l_rowid
443           ,x_application_id                => l_application_id
444           ,x_entity_code                   => p_entity_code
445           ,x_event_class_code              => p_event_class_code
446           ,x_event_class_group_code        => p_event_class_group_code
447           ,x_je_category_name              => l_je_category_name
448           ,x_reporting_view_name           => p_reporting_view_name
449           ,x_allow_actuals_flag            => p_allow_actuals_flag
450           ,x_allow_budgets_flag            => p_allow_budgets_flag
451           ,x_allow_encumbrance_flag        => p_allow_encumbrance_flag
452           ,x_calculate_acctd_amts_flag     => p_calculate_acctd_amts_flag
453           ,x_calculate_g_l_amts_flag       => p_calculate_g_l_amts_flag
454           ,x_last_update_date              => f_ludate
455           ,x_last_updated_by               => f_luby
456           ,x_last_update_login             => 0);
457 
458     END IF;
459 
460   EXCEPTION
461     WHEN NO_DATA_FOUND THEN
462       xla_event_class_attrs_f_pkg.insert_row
463           (x_rowid                         => l_rowid
464           ,x_application_id                => l_application_id
465           ,x_entity_code                   => p_entity_code
466           ,x_event_class_code              => p_event_class_code
467           ,x_event_class_group_code        => p_event_class_group_code
468           ,x_je_category_name              => l_je_category_name
469           ,x_reporting_view_name           => p_reporting_view_name
470           ,x_allow_actuals_flag            => p_allow_actuals_flag
471           ,x_allow_budgets_flag            => p_allow_budgets_flag
472           ,x_allow_encumbrance_flag        => p_allow_encumbrance_flag
473           ,x_calculate_acctd_amts_flag     => p_calculate_acctd_amts_flag
474           ,x_calculate_g_l_amts_flag       => p_calculate_g_l_amts_flag
475           ,x_creation_date                 => f_ludate
476           ,x_created_by                    => f_luby
477           ,x_last_update_date              => f_ludate
478           ,x_last_updated_by               => f_luby
479           ,x_last_update_login             => 0);
480 
481       xla_acct_setup_pkg.perform_event_class_setup
482           (p_application_id                => l_application_id
483           ,p_event_class_code              => p_event_class_code);
484 
485   END;
486 
487   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
488     trace(p_msg    => 'END of procedure load_row',
489           p_module => l_log_module,
490           p_level  => C_LEVEL_PROCEDURE);
491   END IF;
492 
493 EXCEPTION
494    WHEN NO_DATA_FOUND THEN
495       null;
496    WHEN OTHERS THEN
497    xla_exceptions_pkg.raise_message
498       (p_location   => 'xla_event_class_attrs_f_pkg.load_row');
499 
500 END load_row;
501 
502 --=============================================================================
503 --
504 -- Name: load_row
505 -- Description: This overload API is created for backward compatiability.
506 --              It can eb removed as soon as 9/2/2005 freeze is completed.
507 --
508 --=============================================================================
509 /*
510 PROCEDURE load_row
511 (p_application_short_name             IN VARCHAR2
512 ,p_entity_code                        IN VARCHAR2
513 ,p_event_class_code                   IN VARCHAR2
514 ,p_event_class_group_code             IN VARCHAR2
515 ,p_je_category_name                   IN VARCHAR2
516 ,p_reporting_view_name                IN VARCHAR2
517 ,p_allow_actuals_flag                 IN VARCHAR2
518 ,p_allow_budgets_flag                 IN VARCHAR2
519 ,p_allow_encumbrance_flag             IN VARCHAR2
520 ,p_calculate_acctd_amts_flag          IN VARCHAR2
521 ,p_calculate_g_l_amts_flag            IN VARCHAR2
522 ,p_owner                              IN VARCHAR2
523 ,p_last_update_date                   IN VARCHAR2)
524 IS
525 BEGIN
526   xla_event_class_attrs_f_pkg.load_row
527      (p_application_short_name             => p_application_short_name
528      ,p_entity_code                        => p_entity_code
529      ,p_event_class_code                   => p_event_class_code
530      ,p_event_class_group_code             => p_event_class_group_code
531      ,p_je_category_key                    => p_je_category_name
532      ,p_reporting_view_name                => p_reporting_view_name
533      ,p_allow_actuals_flag                 => p_allow_actuals_flag
534      ,p_allow_budgets_flag                 => p_allow_budgets_flag
535      ,p_allow_encumbrance_flag             => p_allow_encumbrance_flag
536      ,p_calculate_acctd_amts_flag          => p_calculate_acctd_amts_flag
537      ,p_calculate_g_l_amts_flag            => p_calculate_g_l_amts_flag
538      ,p_owner                              => p_owner
539      ,p_last_update_date                   => p_last_update_date);
540 
541 EXCEPTION
542    WHEN NO_DATA_FOUND THEN
543       null;
544    WHEN OTHERS THEN
545    xla_exceptions_pkg.raise_message
546       (p_location   => 'xla_event_class_attrs_f_pkg.load_row');
547 
548 END load_row;
549 */
550 
551 --=============================================================================
552 --
553 -- Following code is executed when the package body is referenced for the first
554 -- time
555 --
556 --=============================================================================
557 BEGIN
558    g_log_level      := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
559    g_log_enabled    := fnd_log.test
560                           (log_level  => g_log_level
561                           ,module     => C_DEFAULT_MODULE);
562 
563    IF NOT g_log_enabled  THEN
564       g_log_level := C_LEVEL_LOG_DISABLED;
565    END IF;
566 
567 
568 end xla_event_class_attrs_f_pkg;