DBA Data[Home] [Help]

PACKAGE BODY: APPS.XLA_EVENT_TYPES_F_PKG

Source


1 PACKAGE BODY xla_event_types_f_pkg AS
2 /* $Header: xlathevt.pkb 120.17.12010000.1 2008/07/29 10:09:42 appldev 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_types                                                    |
10 |                                                                       |
11 | DESCRIPTION                                                           |
12 |    Forms PL/SQL Wrapper for xla_event_types                           |
13 |                                                                       |
14 | HISTORY                                                               |
15 |    Generated from XLAUTB.                                             |
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_types_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_types_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_type_code                  IN VARCHAR2
74   ,x_accounting_flag                  IN VARCHAR2
75   ,x_tax_flag                         IN VARCHAR2
76   ,x_enabled_flag                     IN VARCHAR2
77   ,x_name                             IN VARCHAR2
78   ,x_description                      IN VARCHAR2
79   ,x_creation_date                    IN DATE
80   ,x_created_by                       IN NUMBER
81   ,x_last_update_date                 IN DATE
82   ,x_last_updated_by                  IN NUMBER
83   ,x_last_update_login                IN NUMBER)
84 
85 IS
86 
87 CURSOR c IS
88 SELECT rowid
89 FROM   xla_event_types_b
90 WHERE  application_id                   = x_application_id
91   AND  entity_code                      = x_entity_code
92   AND  event_class_code                 = x_event_class_code
93   AND  event_type_code                  = x_event_type_code
94 ;
95 
96   l_log_module            VARCHAR2(240);
97 BEGIN
98 
99   IF g_log_enabled THEN
100     l_log_module := C_DEFAULT_MODULE||'.insert_row';
101   END IF;
102 
103   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
104     trace(p_msg    => 'BEGIN of procedure insert_row',
105           p_module => l_log_module,
106           p_level  => C_LEVEL_PROCEDURE);
107   END IF;
108 
109 INSERT INTO xla_event_types_b
110 (creation_date
111 ,created_by
112 ,application_id
113 ,entity_code
114 ,event_class_code
115 ,event_type_code
116 ,accounting_flag
117 ,tax_flag
118 ,enabled_flag
119 ,last_update_date
120 ,last_updated_by
121 ,last_update_login)
122 VALUES
123 (x_creation_date
124 ,x_created_by
125 ,x_application_id
126 ,x_entity_code
127 ,x_event_class_code
128 ,x_event_type_code
129 ,x_accounting_flag
130 ,x_tax_flag
131 ,x_enabled_flag
132 ,x_last_update_date
133 ,x_last_updated_by
134 ,x_last_update_login)
135 ;
136 
137 INSERT INTO xla_event_types_tl
138 (application_id
139 ,entity_code
140 ,event_class_code
141 ,event_type_code
142 ,name
143 ,description
144 ,creation_date
145 ,created_by
146 ,last_update_date
147 ,last_updated_by
148 ,last_update_login
149 ,language
150 ,source_lang)
151 SELECT
152        x_application_id
153       ,x_entity_code
154       ,x_event_class_code
155       ,x_event_type_code
156       ,x_name
157       ,x_description
158       ,x_creation_date
159       ,x_created_by
160       ,x_last_update_date
161       ,x_last_updated_by
162       ,x_last_update_login
163       ,l.language_code
164       ,USERENV('LANG')
165 FROM   fnd_languages l
166 WHERE  l.installed_flag                 IN ('I', 'B')
167   AND  NOT EXISTS
168       (SELECT NULL
169        FROM   xla_event_types_tl                 t
170        WHERE  t.application_id                   = x_application_id
171          AND  t.entity_code                      = x_entity_code
172          AND  t.event_class_code                 = x_event_class_code
173          AND  t.event_type_code                  = x_event_type_code
174          AND  t.language                         = l.language_code);
175 
176 OPEN c;
177 FETCH c INTO x_rowid;
178 
179 IF (c%NOTFOUND) THEN
180    CLOSE c;
181    RAISE NO_DATA_FOUND;
182 END IF;
183 CLOSE c;
184 
185   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
186     trace(p_msg    => 'END of procedure insert_row',
187           p_module => l_log_module,
188           p_level  => C_LEVEL_PROCEDURE);
189   END IF;
190 
191 END insert_row;
192 
193 /*======================================================================+
194 |                                                                       |
195 |  Procedure lock_row                                                   |
196 |                                                                       |
197 +======================================================================*/
198 PROCEDURE lock_row
199   (x_application_id                   IN NUMBER
200   ,x_entity_code                      IN VARCHAR2
201   ,x_event_class_code                 IN VARCHAR2
202   ,x_event_type_code                  IN VARCHAR2
203   ,x_accounting_flag                  IN VARCHAR2
204   ,x_tax_flag                         IN VARCHAR2
205   ,x_enabled_flag                     IN VARCHAR2
206   ,x_name                             IN VARCHAR2
207   ,x_description                      IN VARCHAR2)
208 
209 IS
210 
211 CURSOR c IS
212 SELECT application_id
213       ,accounting_flag
214       ,tax_flag
215       ,enabled_flag
216 FROM   xla_event_types_b
217 WHERE  application_id                   = x_application_id
218   AND  entity_code                      = x_entity_code
219   AND  event_class_code                 = x_event_class_code
220   AND  event_type_code                  = x_event_type_code
221 FOR UPDATE OF application_id NOWAIT;
222 
223 recinfo              c%ROWTYPE;
224 
225 CURSOR c1 IS
226 SELECT application_id
227       ,name
228       ,description
229       ,DECODE(language     , USERENV('LANG'), 'Y', 'N') baselang
230 FROM   xla_event_types_tl
231 WHERE  application_id                   = X_application_id
232   AND  entity_code                      = X_entity_code
233   AND  event_class_code                 = X_event_class_code
234   AND  event_type_code                  = X_event_type_code
235   AND  USERENV('LANG')                 IN (language     ,source_lang)
236 FOR UPDATE OF application_id NOWAIT;
237 
238   l_log_module            VARCHAR2(240);
239 BEGIN
240 
241   IF g_log_enabled THEN
242     l_log_module := C_DEFAULT_MODULE||'.lock_row';
243   END IF;
244 
245   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
246     trace(p_msg    => 'BEGIN of procedure lock_row',
247           p_module => l_log_module,
248           p_level  => C_LEVEL_PROCEDURE);
249   END IF;
250 
251 OPEN c;
252 FETCH c INTO recinfo;
253 
254 IF (c%NOTFOUND) THEN
255    CLOSE c;
256    fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
257    app_exception.raise_exception;
258 END IF;
259 CLOSE c;
260 
261 IF ( (recinfo.accounting_flag                  = x_accounting_flag)
262  AND (recinfo.tax_flag                         = x_tax_flag)
263  AND (recinfo.enabled_flag                     = x_enabled_flag)
264                    ) THEN
265    NULL;
266 ELSE
267    fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
268    app_exception.raise_exception;
269 END IF;
270 
271 FOR tlinfo IN c1 LOOP
272    IF (tlinfo.baselang = 'Y') THEN
273       IF (    (tlinfo.name = X_name)
274           AND ((tlinfo.description = X_description)
275                OR ((tlinfo.description                      is null)
276                 AND (X_description                      is null)))
277       ) THEN
278         NULL;
279       ELSE
280          fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
281          app_exception.raise_exception;
282       END IF;
283    END IF;
284 END LOOP;
285 
286   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
287     trace(p_msg    => 'END of procedure lock_row',
288           p_module => l_log_module,
289           p_level  => C_LEVEL_PROCEDURE);
290   END IF;
291 
292 RETURN;
293 
294 END lock_row;
295 
296 /*======================================================================+
297 |                                                                       |
298 |  Procedure update_row                                                 |
299 |                                                                       |
300 +======================================================================*/
301 PROCEDURE update_row
302  (x_application_id                   IN NUMBER
303  ,x_entity_code                      IN VARCHAR2
304  ,x_event_class_code                 IN VARCHAR2
305  ,x_event_type_code                  IN VARCHAR2
306  ,x_accounting_flag                  IN VARCHAR2
307  ,x_tax_flag                         IN VARCHAR2
308  ,x_enabled_flag                     IN VARCHAR2
309  ,x_name                             IN VARCHAR2
310  ,x_description                      IN VARCHAR2
311  ,x_last_update_date                  IN DATE
312  ,x_last_updated_by                   IN NUMBER
313  ,x_last_update_login                 IN NUMBER)
314 
315 IS
316 
317   l_log_module            VARCHAR2(240);
318 BEGIN
319 
320   IF g_log_enabled THEN
321     l_log_module := C_DEFAULT_MODULE||'.update_row';
322   END IF;
323 
324   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
325     trace(p_msg    => 'BEGIN of procedure update_row',
326           p_module => l_log_module,
327           p_level  => C_LEVEL_PROCEDURE);
328   END IF;
329 
330 UPDATE xla_event_types_b
331    SET
332        last_update_date                 = x_last_update_date
333       ,accounting_flag                  = x_accounting_flag
334       ,tax_flag                         = x_tax_flag
335       ,enabled_flag                     = x_enabled_flag
336       ,last_updated_by                  = x_last_updated_by
337       ,last_update_login                = x_last_update_login
338 WHERE  application_id                   = X_application_id
339   AND  entity_code                      = X_entity_code
340   AND  event_class_code                 = X_event_class_code
341   AND  event_type_code                  = X_event_type_code;
342 
343 IF (SQL%NOTFOUND) THEN
344    RAISE NO_DATA_FOUND;
345 END IF;
346 
347 UPDATE xla_event_types_tl
348 SET
349        last_update_date                 = x_last_update_date
350       ,name                             = X_name
351       ,description                      = X_description
352       ,last_updated_by                  = x_last_updated_by
353       ,last_update_login                = x_last_update_login
354       ,source_lang                      = USERENV('LANG')
355 WHERE  application_id                   = X_application_id
356   AND  entity_code                      = X_entity_code
357   AND  event_class_code                 = X_event_class_code
358   AND  event_type_code                  = X_event_type_code
359   AND  USERENV('LANG')                 IN (language, source_lang);
360 
361 IF (SQL%NOTFOUND) THEN
362    RAISE NO_DATA_FOUND;
363 END IF;
364 
365   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
366     trace(p_msg    => 'END of procedure update_row',
367           p_module => l_log_module,
368           p_level  => C_LEVEL_PROCEDURE);
369   END IF;
370 
371 END update_row;
372 
373 /*======================================================================+
374 |                                                                       |
375 |  Procedure delete_row                                                 |
376 |                                                                       |
377 +======================================================================*/
378 PROCEDURE delete_row
379   (x_application_id                   IN NUMBER
380   ,x_entity_code                      IN VARCHAR2
381   ,x_event_class_code                 IN VARCHAR2
382   ,x_event_type_code                  IN VARCHAR2)
383 
384 IS
385 
386   l_log_module            VARCHAR2(240);
387 BEGIN
388 
389   IF g_log_enabled THEN
390     l_log_module := C_DEFAULT_MODULE||'.delete_row';
391   END IF;
392 
393   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
394     trace(p_msg    => 'BEGIN of procedure delete_row',
395           p_module => l_log_module,
396           p_level  => C_LEVEL_PROCEDURE);
397   END IF;
398 
399 DELETE FROM xla_event_types_tl
400 WHERE application_id                   = x_application_id
401   AND entity_code                      = x_entity_code
402   AND event_class_code                 = x_event_class_code
403   AND event_type_code                  = x_event_type_code;
404 
405 
406 IF (SQL%NOTFOUND) THEN
407    RAISE NO_DATA_FOUND;
408 END IF;
409 
410 DELETE FROM xla_event_types_b
411 WHERE application_id                   = x_application_id
412   AND entity_code                      = x_entity_code
413   AND event_class_code                 = x_event_class_code
414   AND event_type_code                  = x_event_type_code;
415 
416 
417 IF (SQL%NOTFOUND) THEN
418    RAISE NO_DATA_FOUND;
419 END IF;
420 
421 
422   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
423     trace(p_msg    => 'END of procedure delete_row',
424           p_module => l_log_module,
425           p_level  => C_LEVEL_PROCEDURE);
426   END IF;
427 
428 END delete_row;
429 
430 /*======================================================================+
431 |                                                                       |
432 |  Procedure add_language                                               |
433 |                                                                       |
434 +======================================================================*/
435 PROCEDURE add_language
436 
437 IS
438 
439   l_log_module            VARCHAR2(240);
440 BEGIN
441 
442   IF g_log_enabled THEN
443     l_log_module := C_DEFAULT_MODULE||'.add_language';
444   END IF;
445 
446   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
447     trace(p_msg    => 'BEGIN of procedure add_language',
448           p_module => l_log_module,
449           p_level  => C_LEVEL_PROCEDURE);
450   END IF;
451 
452 
453 DELETE FROM xla_event_types_tl T
454 WHERE  NOT EXISTS
455       (SELECT NULL
456        FROM   xla_event_types_b                  b
457        WHERE  b.application_id                   = t.application_id
458          AND  b.entity_code                      = t.entity_code
459          AND  b.event_class_code                 = t.event_class_code
460          AND  b.event_type_code                  = t.event_type_code);
461 
462 UPDATE xla_event_types_tl   t
463 SET   (name
464       ,description)
465    = (SELECT b.name
466             ,b.description
467       FROM   xla_event_types_tl                 b
468       WHERE  b.application_id                   = t.application_id
469         AND  b.entity_code                      = t.entity_code
470         AND  b.event_class_code                 = t.event_class_code
471         AND  b.event_type_code                  = t.event_type_code
472         AND  b.language                         = t.source_lang)
473 WHERE (t.application_id
474       ,t.entity_code
475       ,t.event_class_code
476       ,t.event_type_code
477       ,t.language)
478     IN (SELECT subt.application_id
479               ,subt.entity_code
480               ,subt.event_class_code
481               ,subt.event_type_code
482               ,subt.language
483         FROM   xla_event_types_tl                     subb
484               ,xla_event_types_tl                     subt
485         WHERE  subb.application_id                   = subt.application_id
486          AND  subb.entity_code                       = subt.entity_code
487          AND  subb.event_class_code                  = subt.event_class_code
488          AND  subb.event_type_code                   = subt.event_type_code
489          AND  subb.language                         = subt.source_lang
490          AND (SUBB.name                             <> SUBT.name
491           OR  SUBB.description                      <> SUBT.description
492           OR (subb.description                      IS NULL
493          AND  subt.description                      IS NOT NULL)
494           OR (subb.description                      IS NOT NULL
495          AND  subt.description                      IS NULL)
496       ))
497 ;
498 
499 INSERT INTO xla_event_types_tl
500 (application_id
501 ,entity_code
502 ,event_class_code
503 ,event_type_code
504 ,name
505 ,description
506 ,creation_date
507 ,created_by
508 ,last_update_date
509 ,last_updated_by
510 ,last_update_login
511 ,language
512 ,source_lang)
513 SELECT   /*+ ORDERED */
514        b.application_id
515       ,b.entity_code
516       ,b.event_class_code
517       ,b.event_type_code
518       ,b.name
519       ,b.description
520       ,b.creation_date
521       ,b.created_by
522       ,b.last_update_date
523       ,b.last_updated_by
524       ,b.last_update_login
525       ,l.language_code
526       ,b.source_lang
527 FROM   xla_event_types_tl               b
528       ,fnd_languages                    l
529 WHERE  l.installed_flag                IN ('I', 'B')
530   AND  b.language                       = userenv('LANG')
531   AND  NOT EXISTS
532       (SELECT NULL
533        FROM   xla_event_types_tl                 t
534        WHERE  t.application_id                   = b.application_id
535          AND  t.entity_code                      = b.entity_code
536          AND  t.event_class_code                 = b.event_class_code
537          AND  t.event_type_code                  = b.event_type_code
538          AND  t.language                         = l.language_code);
539 
540   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
541     trace(p_msg    => 'END of procedure add_language',
542           p_module => l_log_module,
543           p_level  => C_LEVEL_PROCEDURE);
544   END IF;
545 
546 END add_language;
547 
548 --=============================================================================
549 --
550 -- Name: load_row
551 -- Description: To be used by FNDLOAD to upload a row to the table
552 --
553 --=============================================================================
554 PROCEDURE load_row
555 (p_application_short_name             IN VARCHAR2
556 ,p_entity_code                        IN VARCHAR2
557 ,p_event_class_code                   IN VARCHAR2
558 ,p_event_type_code                    IN VARCHAR2
559 ,p_enabled_flag                       IN VARCHAR2
560 ,p_tax_flag                           IN VARCHAR2
561 ,p_accounting_flag                    IN VARCHAR2
562 ,p_owner                              IN VARCHAR2
563 ,p_last_update_date                   IN VARCHAR2
564 ,p_name                               IN VARCHAR2
565 ,p_description                        IN VARCHAR2)
566 IS
567   CURSOR c_app_id IS
568   SELECT application_id
569   FROM   fnd_application
570   WHERE  application_short_name          = p_application_short_name;
571 
572   l_application_id        INTEGER;
573   l_rowid                 ROWID;
574   l_exist                 VARCHAR2(1);
575   f_luby                  NUMBER;      -- entity owner in file
576   f_ludate                DATE;        -- entity update date in file
577   db_luby                 NUMBER;      -- entity owner in db
578   db_ludate               DATE;        -- entity update date in db
579   l_log_module            VARCHAR2(240);
580 BEGIN
581 
582   IF g_log_enabled THEN
583     l_log_module := C_DEFAULT_MODULE||'.load_row';
584   END IF;
585 
586   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
587     trace(p_msg    => 'BEGIN of procedure load_row',
588           p_module => l_log_module,
589           p_level  => C_LEVEL_PROCEDURE);
590   END IF;
591 
592   -- Translate owner to file_last_updated_by
593   f_luby := fnd_load_util.owner_id(p_owner);
594 
595   -- Translate char last_update_date to date
596   f_ludate := nvl(to_date(p_last_update_date, 'YYYY/MM/DD'), sysdate);
597 
598   OPEN c_app_id;
599   FETCH c_app_id INTO l_application_id;
600   CLOSE c_app_id;
601 
602   BEGIN
603 
604     SELECT last_updated_by, last_update_date
605       INTO db_luby, db_ludate
606       FROM xla_event_types_vl
607      WHERE application_id       = l_application_id
608        AND entity_code          = p_entity_code
609        AND event_class_code     = p_event_class_code
610        AND event_type_code      = p_event_type_code;
611 
612     IF (fnd_load_util.upload_test(f_luby, f_ludate, db_luby, db_ludate, NULL)) THEN
613       xla_event_types_f_pkg.update_row
614           (x_application_id                => l_application_id
615           ,x_entity_code                   => p_entity_code
616           ,x_event_class_code              => p_event_class_code
617           ,x_event_type_code               => p_event_type_code
618           ,x_enabled_flag                  => p_enabled_flag
619           ,x_tax_flag                      => p_tax_flag
620           ,x_accounting_flag               => p_accounting_flag
621           ,x_name                          => p_name
622           ,x_description                   => p_description
623           ,x_last_update_date              => f_ludate
624           ,x_last_updated_by               => f_luby
625           ,x_last_update_login             => 0);
626 
627     END IF;
628 
629   EXCEPTION
630     WHEN NO_DATA_FOUND THEN
631       xla_event_types_f_pkg.insert_row
632           (x_rowid                         => l_rowid
633           ,x_application_id                => l_application_id
634           ,x_entity_code                   => p_entity_code
635           ,x_event_class_code              => p_event_class_code
636           ,x_event_type_code               => p_event_type_code
637           ,x_enabled_flag                  => p_enabled_flag
638           ,x_tax_flag                      => p_tax_flag
639           ,x_accounting_flag               => p_accounting_flag
640           ,x_name                          => p_name
641           ,x_description                   => p_description
642           ,x_creation_date                 => f_ludate
643           ,x_created_by                    => f_luby
644           ,x_last_update_date              => f_ludate
645           ,x_last_updated_by               => f_luby
646           ,x_last_update_login             => 0);
647   END;
648 
649   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
650     trace(p_msg    => 'END of procedure load_row',
651           p_module => l_log_module,
652           p_level  => C_LEVEL_PROCEDURE);
653   END IF;
654 
655 EXCEPTION
656    WHEN NO_DATA_FOUND THEN
657       null;
658    WHEN OTHERS THEN
659    xla_exceptions_pkg.raise_message
660       (p_location   => 'xla_event_types_f_pkg.load_row');
661 
662 END load_row;
663 
664 --=============================================================================
665 --
666 -- Name: translate_row
667 -- Description: To be used by FNDLOAD to upload a translated row
668 --
669 --=============================================================================
670 PROCEDURE translate_row
671   (p_application_short_name           IN VARCHAR2
672   ,p_entity_code                      IN VARCHAR2
673   ,p_event_class_code                 IN VARCHAR2
674   ,p_event_type_code                  IN VARCHAR2
675   ,p_name                             IN VARCHAR2
676   ,p_description                      IN VARCHAR2
677   ,p_owner                            IN VARCHAR2
678   ,p_last_update_date                 IN VARCHAR2
679   ,p_custom_mode                      IN VARCHAR2)
680 IS
681   CURSOR c_app_id IS
682   SELECT application_id
683   FROM   fnd_application
684   WHERE  application_short_name          = p_application_short_name;
685 
686   l_application_id        INTEGER;
687   l_rowid                 ROWID;
688   l_exist                 VARCHAR2(1);
689   f_luby                  NUMBER;      -- entity owner in file
690   f_ludate                DATE;        -- entity update date in file
691   db_luby                 NUMBER;      -- entity owner in db
692   db_ludate               DATE;        -- entity update date in db
693   l_log_module            VARCHAR2(240);
694 BEGIN
695 
696   IF g_log_enabled THEN
697     l_log_module := C_DEFAULT_MODULE||'.translate_row';
698   END IF;
699 
700   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
701     trace(p_msg    => 'BEGIN of procedure translate_row',
702           p_module => l_log_module,
703           p_level  => C_LEVEL_PROCEDURE);
704   END IF;
705 
706   -- Translate owner to file_last_updated_by
707   f_luby := fnd_load_util.owner_id(p_owner);
708 
709   -- Translate char last_update_date to date
710   f_ludate := nvl(to_date(p_last_update_date, 'YYYY/MM/DD'), sysdate);
711 
712   OPEN c_app_id;
713   FETCH c_app_id INTO l_application_id;
714   CLOSE c_app_id;
715 
716   BEGIN
717     SELECT last_updated_by, last_update_date
718       INTO db_luby, db_ludate
719       FROM xla_event_types_tl
720      WHERE application_id   = l_application_id
721        AND entity_code      = p_entity_code
722        AND event_class_code = p_event_class_code
723        AND event_type_code  = p_event_type_code
724        AND language         = userenv('LANG');
725 
726     IF (fnd_load_util.upload_test(f_luby, f_ludate, db_luby,
727                                db_ludate, p_custom_mode)) then
728       UPDATE xla_event_types_tl
729          SET name              = p_name
730             ,description       = p_description
731             ,last_update_date  = f_ludate
732             ,last_updated_by   = f_luby
733             ,last_update_login = 0
734             ,source_lang       = userenv('LANG')
735        WHERE userenv('LANG')   IN (language, source_lang)
736          AND application_id    = l_application_id
737          AND entity_code       = p_entity_code
738          AND event_class_code  = p_event_class_code
739          AND event_type_code   = p_event_type_code;
740 
741     END IF;
742 
743 
744   END;
745 
746   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
747     trace(p_msg    => 'END of procedure translate_row',
748           p_module => l_log_module,
749           p_level  => C_LEVEL_PROCEDURE);
750   END IF;
751 
752 
753 
754 END translate_row;
755 
756 
757 --=============================================================================
758 --
759 -- Following code is executed when the package body is referenced for the first
760 -- time
761 --
762 --=============================================================================
763 BEGIN
764    g_log_level      := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
765    g_log_enabled    := fnd_log.test
766                           (log_level  => g_log_level
767                           ,module     => C_DEFAULT_MODULE);
768 
769    IF NOT g_log_enabled  THEN
770       g_log_level := C_LEVEL_LOG_DISABLED;
771    END IF;
772 
773 end xla_event_types_f_PKG;