DBA Data[Home] [Help]

PACKAGE BODY: APPS.XLA_PRODUCT_RULES_F_PKG

Source


1 PACKAGE BODY xla_product_rules_f_pkg AS
2 /* $Header: xlathpdr.pkb 120.19.12010000.1 2008/07/29 10:10:17 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_product_rules                                                  |
10 |                                                                       |
11 | DESCRIPTION                                                           |
12 |    Forms PL/SQL Wrapper for xla_product_rules                         |
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_product_rules_f_pkg';
31 
32 g_log_level           NUMBER;
33 g_log_enabled         BOOLEAN;
34 
35 PROCEDURE trace
36   (p_msg                        IN VARCHAR2
37   ,p_module                     IN VARCHAR2
38   ,p_level                      IN NUMBER) IS
39 BEGIN
40   ----------------------------------------------------------------------------
41   -- Following is for FND log.
42   ----------------------------------------------------------------------------
43   IF (p_msg IS NULL AND p_level >= g_log_level) THEN
44     fnd_log.message(p_level, p_module);
45   ELSIF p_level >= g_log_level THEN
46     fnd_log.string(p_level, p_module, p_msg);
47   END IF;
48 
49 EXCEPTION
50   WHEN xla_exceptions_pkg.application_exception THEN
51     RAISE;
52 
53   WHEN OTHERS THEN
54     xla_exceptions_pkg.raise_message
55       (p_location   => 'xla_product_rules_f_pkg.trace');
56 END trace;
57 
58 
59 /*======================================================================+
60 |                                                                       |
61 |  Procedure insert_row                                                 |
62 |                                                                       |
63 +======================================================================*/
64 PROCEDURE insert_row
65   (x_rowid                            IN OUT NOCOPY VARCHAR2
66   ,x_application_id                   IN NUMBER
67   ,x_amb_context_code                 IN VARCHAR2
68   ,x_product_rule_type_code           IN VARCHAR2
69   ,x_product_rule_code                IN VARCHAR2
70   ,x_enabled_flag                     IN VARCHAR2
71   ,x_request_id                       IN NUMBER
72   ,x_product_rule_version             IN VARCHAR2
73   ,x_transaction_coa_id               IN NUMBER
74   ,x_accounting_coa_id                IN NUMBER
75   ,x_product_rule_hash_id             IN NUMBER
76   ,x_compile_status_code              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_product_rules_b
90 WHERE  application_id                   = x_application_id
91   AND  amb_context_code                 = x_amb_context_code
92   AND  product_rule_type_code           = x_product_rule_type_code
93   AND  product_rule_code                = x_product_rule_code
94 ;
95 
96 l_log_module                    VARCHAR2(240);
97 BEGIN
98 IF g_log_enabled THEN
99   l_log_module := C_DEFAULT_MODULE||'.insert_row';
100 END IF;
101 
102 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
103   trace(p_msg    => 'BEGIN of procedure insert_row',
104         p_module => l_log_module,
105         p_level  => C_LEVEL_PROCEDURE);
106 END IF;
107 
108 INSERT INTO xla_product_rules_b
109 (creation_date
110 ,created_by
111 ,enabled_flag
112 ,request_id
113 ,product_rule_version
114 ,application_id
115 ,product_rule_type_code
116 ,product_rule_code
117 ,transaction_coa_id
118 ,accounting_coa_id
119 ,product_rule_hash_id
120 ,amb_context_code
121 ,compile_status_code
122 ,updated_flag
123 ,version_num
124 ,last_update_date
125 ,last_updated_by
126 ,last_update_login)
127 VALUES
128 (x_creation_date
129 ,x_created_by
130 ,x_enabled_flag
131 ,x_request_id
132 ,x_product_rule_version
133 ,x_application_id
134 ,x_product_rule_type_code
135 ,x_product_rule_code
136 ,x_transaction_coa_id
137 ,x_accounting_coa_id
138 ,x_product_rule_hash_id
139 ,x_amb_context_code
140 ,x_compile_status_code
141 ,'Y'
142 ,0
143 ,x_last_update_date
144 ,x_last_updated_by
145 ,x_last_update_login)
146 ;
147 
148 INSERT INTO xla_product_rules_tl
149 (amb_context_code
150 ,last_update_login
151 ,creation_date
152 ,created_by
153 ,last_update_date
154 ,last_updated_by
155 ,application_id
156 ,product_rule_type_code
157 ,product_rule_code
158 ,name
159 ,description
160 ,language
161 ,source_lang)
162 SELECT
163        x_amb_context_code
164       ,x_last_update_login
165       ,x_creation_date
166       ,x_created_by
167       ,x_last_update_date
168       ,x_last_updated_by
169       ,x_application_id
170       ,x_product_rule_type_code
171       ,x_product_rule_code
172       ,x_name
173       ,x_description
174       ,l.language_code
175       ,USERENV('LANG')
176 FROM   fnd_languages l
177 WHERE  l.installed_flag                 IN ('I', 'B')
178   AND  NOT EXISTS
179       (SELECT NULL
180        FROM   xla_product_rules_tl               t
181        WHERE  t.application_id                   = x_application_id
182          AND  t.amb_context_code                 = x_amb_context_code
183          AND  t.product_rule_type_code           = x_product_rule_type_code
184          AND  t.product_rule_code                = x_product_rule_code
185          AND  t.language                         = l.language_code);
186 
187 OPEN c;
188 FETCH c INTO x_rowid;
189 
190 IF (c%NOTFOUND) THEN
191    CLOSE c;
192    RAISE NO_DATA_FOUND;
193 END IF;
194 CLOSE c;
195 
196 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
197   trace(p_msg    => 'END of procedure insert_row',
198         p_module => l_log_module,
199         p_level  => C_LEVEL_PROCEDURE);
200 END IF;
201 
202 END insert_row;
203 
204 /*======================================================================+
205 |                                                                       |
206 |  Procedure lock_row                                                   |
207 |                                                                       |
208 +======================================================================*/
209 PROCEDURE lock_row
210   (x_application_id                   IN NUMBER
211   ,x_amb_context_code                 IN VARCHAR2
212   ,x_product_rule_type_code           IN VARCHAR2
213   ,x_product_rule_code                IN VARCHAR2
214   ,x_enabled_flag                     IN VARCHAR2
215   ,x_request_id                       IN NUMBER
216   ,x_product_rule_version             IN VARCHAR2
217   ,x_transaction_coa_id               IN NUMBER
218   ,x_accounting_coa_id                IN NUMBER
219   ,x_product_rule_hash_id             IN NUMBER
220   ,x_compile_status_code              IN VARCHAR2
221   ,x_name                             IN VARCHAR2
222   ,x_description                      IN VARCHAR2)
223 
224 IS
225 
226 CURSOR c IS
227 SELECT enabled_flag
228       ,request_id
229       ,product_rule_version
230       ,transaction_coa_id
231       ,accounting_coa_id
232       ,product_rule_hash_id
233       ,compile_status_code
234 FROM   xla_product_rules_b
235 WHERE  application_id                   = x_application_id
236   AND  amb_context_code                 = x_amb_context_code
237   AND  product_rule_type_code           = x_product_rule_type_code
238   AND  product_rule_code                = x_product_rule_code
239 FOR UPDATE OF application_id NOWAIT;
240 
241 recinfo              c%ROWTYPE;
242 
243 CURSOR c1 IS
244 SELECT amb_context_code
245       ,name
246       ,description
247       ,DECODE(language     , USERENV('LANG'), 'Y', 'N') baselang
248 FROM   xla_product_rules_tl
249 WHERE  application_id                   = X_application_id
250   AND  amb_context_code                 = X_amb_context_code
251   AND  product_rule_type_code           = X_product_rule_type_code
252   AND  product_rule_code                = X_product_rule_code
253   AND  USERENV('LANG')                 IN (language     ,source_lang)
254 FOR UPDATE OF application_id NOWAIT;
255 
256 l_log_module                    VARCHAR2(240);
257 BEGIN
258 IF g_log_enabled THEN
259   l_log_module := C_DEFAULT_MODULE||'.lock_row';
260 END IF;
261 
262 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
263   trace(p_msg    => 'BEGIN of procedure lock_row',
264         p_module => l_log_module,
265         p_level  => C_LEVEL_PROCEDURE);
266 END IF;
267 
268 
269 OPEN c;
270 FETCH c INTO recinfo;
271 
272 IF (c%NOTFOUND) THEN
273    CLOSE c;
274    fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
275    app_exception.raise_exception;
276 END IF;
277 CLOSE c;
278 
279 IF ( (recinfo.enabled_flag                     = x_enabled_flag)
280  AND ((recinfo.request_id                       = X_request_id)
281    OR ((recinfo.request_id                       IS NULL)
282   AND (x_request_id                       IS NULL)))
283  AND ((recinfo.product_rule_version             = X_product_rule_version)
284    OR ((recinfo.product_rule_version             IS NULL)
285   AND (x_product_rule_version             IS NULL)))
286  AND ((recinfo.transaction_coa_id               = X_transaction_coa_id)
287    OR ((recinfo.transaction_coa_id               IS NULL)
288   AND (x_transaction_coa_id               IS NULL)))
289  AND ((recinfo.accounting_coa_id                = X_accounting_coa_id)
290    OR ((recinfo.accounting_coa_id                IS NULL)
291   AND (x_accounting_coa_id                IS NULL)))
292  AND ((recinfo.product_rule_hash_id             = X_product_rule_hash_id)
293    OR ((recinfo.product_rule_hash_id             IS NULL)
294   AND (x_product_rule_hash_id             IS NULL)))
295  AND ((recinfo.compile_status_code              = X_compile_status_code)
296    OR ((recinfo.compile_status_code              IS NULL)
297   AND (x_compile_status_code              IS NULL)))
298                    ) THEN
299    NULL;
300 ELSE
301    fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
302    app_exception.raise_exception;
303 END IF;
304 
305 FOR tlinfo IN c1 LOOP
306    IF (tlinfo.baselang = 'Y') THEN
307       IF (    (tlinfo.name = X_name)
308           AND ((tlinfo.description = X_description)
309                OR ((tlinfo.description                      is null)
310                 AND (X_description                      is null)))
311       ) THEN
312         NULL;
313       ELSE
314          fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
315          app_exception.raise_exception;
316       END IF;
317    END IF;
318 END LOOP;
319 
320 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
321   trace(p_msg    => 'END of procedure lock_row',
322         p_module => l_log_module,
323         p_level  => C_LEVEL_PROCEDURE);
324 END IF;
325 
326 RETURN;
327 
328 END lock_row;
329 
330 /*======================================================================+
331 |                                                                       |
332 |  Procedure update_row                                                 |
333 |                                                                       |
334 +======================================================================*/
335 PROCEDURE update_row
336  (x_application_id                   IN NUMBER
337  ,x_amb_context_code                 IN VARCHAR2
338  ,x_product_rule_type_code           IN VARCHAR2
339  ,x_product_rule_code                IN VARCHAR2
340  ,x_enabled_flag                     IN VARCHAR2
341  ,x_request_id                       IN NUMBER
342  ,x_product_rule_version             IN VARCHAR2
343  ,x_transaction_coa_id               IN NUMBER
344  ,x_accounting_coa_id                IN NUMBER
345  ,x_product_rule_hash_id             IN NUMBER
346  ,x_compile_status_code              IN VARCHAR2
347  ,x_name                             IN VARCHAR2
348  ,x_description                      IN VARCHAR2
349  ,x_last_update_date                  IN DATE
350  ,x_last_updated_by                   IN NUMBER
351  ,x_last_update_login                 IN NUMBER)
352 
353 IS
354 
355 l_log_module                    VARCHAR2(240);
356 BEGIN
357 IF g_log_enabled THEN
358   l_log_module := C_DEFAULT_MODULE||'.update_row';
359 END IF;
360 
361 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
362   trace(p_msg    => 'BEGIN of procedure update_row',
363         p_module => l_log_module,
364         p_level  => C_LEVEL_PROCEDURE);
365 END IF;
366 
367 UPDATE xla_product_rules_b
368    SET
369        last_update_date                 = x_last_update_date
370       ,enabled_flag                     = x_enabled_flag
371       ,request_id                       = x_request_id
372       ,product_rule_version             = x_product_rule_version
373       ,transaction_coa_id               = x_transaction_coa_id
374       ,accounting_coa_id                = x_accounting_coa_id
375       ,product_rule_hash_id             = x_product_rule_hash_id
376       ,compile_status_code              = x_compile_status_code
377       ,updated_flag                     = 'Y'
378       ,last_updated_by                  = x_last_updated_by
379       ,last_update_login                = x_last_update_login
380 WHERE  application_id                   = X_application_id
381   AND  amb_context_code                 = X_amb_context_code
382   AND  product_rule_type_code           = X_product_rule_type_code
383   AND  product_rule_code                = X_product_rule_code;
384 
385 IF (SQL%NOTFOUND) THEN
386    RAISE NO_DATA_FOUND;
387 END IF;
388 
389 UPDATE xla_product_rules_tl
390 SET
391        last_update_date                 = x_last_update_date
392       ,name                             = X_name
393       ,description                      = X_description
394       ,last_updated_by                  = x_last_updated_by
395       ,last_update_login                = x_last_update_login
396       ,source_lang                      = USERENV('LANG')
397 WHERE  application_id                   = X_application_id
398   AND  amb_context_code                 = X_amb_context_code
399   AND  product_rule_type_code           = X_product_rule_type_code
400   AND  product_rule_code                = X_product_rule_code
401   AND  USERENV('LANG')                 IN (language, source_lang);
402 
403 IF (SQL%NOTFOUND) THEN
404    RAISE NO_DATA_FOUND;
405 END IF;
406 
407 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
408   trace(p_msg    => 'END of procedure update_row',
409         p_module => l_log_module,
410         p_level  => C_LEVEL_PROCEDURE);
411 END IF;
412 
413 END update_row;
414 
415 /*======================================================================+
416 |                                                                       |
417 |  Procedure delete_row                                                 |
418 |                                                                       |
419 +======================================================================*/
420 PROCEDURE delete_row
421   (x_application_id                   IN NUMBER
422   ,x_amb_context_code                 IN VARCHAR2
423   ,x_product_rule_type_code           IN VARCHAR2
424   ,x_product_rule_code                IN VARCHAR2)
425 
426 IS
427 
428 l_log_module                    VARCHAR2(240);
429 BEGIN
430 IF g_log_enabled THEN
431   l_log_module := C_DEFAULT_MODULE||'.delete_row';
432 END IF;
433 
434 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
435   trace(p_msg    => 'BEGIN of procedure delete_row',
436         p_module => l_log_module,
437         p_level  => C_LEVEL_PROCEDURE);
438 END IF;
439 
440 DELETE FROM xla_product_rules_tl
441 WHERE application_id                   = x_application_id
442   AND amb_context_code                 = x_amb_context_code
443   AND product_rule_type_code           = x_product_rule_type_code
444   AND product_rule_code                = x_product_rule_code;
445 
446 
447 IF (SQL%NOTFOUND) THEN
448    RAISE NO_DATA_FOUND;
449 END IF;
450 
451 DELETE FROM xla_product_rules_b
452 WHERE application_id                   = x_application_id
453   AND amb_context_code                 = x_amb_context_code
454   AND product_rule_type_code           = x_product_rule_type_code
455   AND product_rule_code                = x_product_rule_code;
456 
457 
458 IF (SQL%NOTFOUND) THEN
459    RAISE NO_DATA_FOUND;
460 END IF;
461 
462 
463 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
464   trace(p_msg    => 'END of procedure delete_row',
465         p_module => l_log_module,
466         p_level  => C_LEVEL_PROCEDURE);
467 END IF;
468 
469 END delete_row;
470 
471 /*======================================================================+
472 |                                                                       |
473 |  Procedure add_language                                               |
474 |                                                                       |
475 +======================================================================*/
476 PROCEDURE add_language
477 
478 IS
479 
480 l_log_module                    VARCHAR2(240);
481 BEGIN
482 IF g_log_enabled THEN
483   l_log_module := C_DEFAULT_MODULE||'.add_language';
484 END IF;
485 
486 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
487   trace(p_msg    => 'BEGIN of procedure add_language',
488         p_module => l_log_module,
489         p_level  => C_LEVEL_PROCEDURE);
490 END IF;
491 
492 
493 DELETE FROM xla_product_rules_tl T
494 WHERE  NOT EXISTS
495       (SELECT NULL
496        FROM   xla_product_rules_b                b
497        WHERE  b.application_id                   = t.application_id
498          AND  b.amb_context_code                 = t.amb_context_code
499          AND  b.product_rule_type_code           = t.product_rule_type_code
500          AND  b.product_rule_code                = t.product_rule_code);
501 
502 UPDATE xla_product_rules_tl   t
503 SET   (name
504       ,description)
505    = (SELECT b.name
506             ,b.description
507       FROM   xla_product_rules_tl               b
508       WHERE  b.application_id                   = t.application_id
509         AND  b.amb_context_code                 = t.amb_context_code
510         AND  b.product_rule_type_code           = t.product_rule_type_code
511         AND  b.product_rule_code                = t.product_rule_code
512         AND  b.language                         = t.source_lang)
513 WHERE (t.application_id
514       ,t.amb_context_code
515       ,t.product_rule_type_code
516       ,t.product_rule_code
517       ,t.language)
518     IN (SELECT subt.application_id
519               ,subt.amb_context_code
520               ,subt.product_rule_type_code
521               ,subt.product_rule_code
522               ,subt.language
523         FROM   xla_product_rules_tl                   subb
524               ,xla_product_rules_tl                   subt
525         WHERE  subb.application_id                   = subt.application_id
526          AND  subb.amb_context_code                  = subt.amb_context_code
527          AND  subb.product_rule_type_code            = subt.product_rule_type_code
528          AND  subb.product_rule_code                 = subt.product_rule_code
529          AND  subb.language                         = subt.source_lang
530          AND (SUBB.name                             <> SUBT.name
531           OR  SUBB.description                      <> SUBT.description
532           OR (subb.description                      IS NULL
533          AND  subt.description                      IS NOT NULL)
534           OR (subb.description                      IS NOT NULL
535          AND  subt.description                      IS NULL)
536       ))
537 ;
538 
539 INSERT INTO xla_product_rules_tl
540 (amb_context_code
541 ,last_update_login
542 ,creation_date
543 ,created_by
544 ,last_update_date
545 ,last_updated_by
546 ,application_id
547 ,product_rule_type_code
548 ,product_rule_code
549 ,name
550 ,description
551 ,language
552 ,source_lang)
553 SELECT   /*+ ORDERED */
554        b.amb_context_code
555       ,b.last_update_login
556       ,b.creation_date
557       ,b.created_by
558       ,b.last_update_date
559       ,b.last_updated_by
560       ,b.application_id
561       ,b.product_rule_type_code
562       ,b.product_rule_code
563       ,b.name
564       ,b.description
565       ,l.language_code
566       ,b.source_lang
567 FROM   xla_product_rules_tl             b
568       ,fnd_languages                    l
569 WHERE  l.installed_flag                IN ('I', 'B')
570   AND  b.language                       = userenv('LANG')
571   AND  NOT EXISTS
572       (SELECT NULL
573        FROM   xla_product_rules_tl               t
574        WHERE  t.application_id                   = b.application_id
575          AND  t.amb_context_code                 = b.amb_context_code
576          AND  t.product_rule_type_code           = b.product_rule_type_code
577          AND  t.product_rule_code                = b.product_rule_code
578          AND  t.language                         = l.language_code);
579 
580 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
581   trace(p_msg    => 'END of procedure add_language',
582         p_module => l_log_module,
583         p_level  => C_LEVEL_PROCEDURE);
584 END IF;
585 
586 END add_language;
587 
588 --=============================================================================
589 --
590 -- Name: translate_row
591 -- Description: To be used by FNDLOAD to upload a translated row
592 --
593 --=============================================================================
594 PROCEDURE translate_row
595   (p_application_short_name       IN VARCHAR2
596   ,p_amb_context_code             IN VARCHAR2
597   ,p_product_rule_type_code       IN VARCHAR2
598   ,p_product_rule_code            IN VARCHAR2
599   ,p_name                         IN VARCHAR2
600   ,p_description                  IN VARCHAR2
601   ,p_owner                        IN VARCHAR2
602   ,p_last_update_date             IN VARCHAR2
603   ,p_custom_mode                  IN VARCHAR2)
604 IS
605   CURSOR c_app_id IS
606   SELECT application_id
607   FROM   fnd_application
608 WHERE  application_short_name          = p_application_short_name;
609 
610   l_application_id        INTEGER;
611   l_rowid                 ROWID;
612   l_exist                 VARCHAR2(1);
613   f_luby                  NUMBER;      -- entity owner in file
614   f_ludate                DATE;        -- entity update date in file
615   db_luby                 NUMBER;      -- entity owner in db
616   db_ludate               DATE;        -- entity update date in db
617   l_log_module            VARCHAR2(240);
618 BEGIN
619 
620   IF g_log_enabled THEN
621     l_log_module := C_DEFAULT_MODULE||'.translate_row';
622   END IF;
623 
624   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
625     trace(p_msg    => 'BEGIN of procedure translate_row',
626           p_module => l_log_module,
627           p_level  => C_LEVEL_PROCEDURE);
628   END IF;
629 
630   -- Translate owner to file_last_updated_by
631   f_luby := fnd_load_util.owner_id(p_owner);
632 
633   -- Translate char last_update_date to date
634   f_ludate := nvl(to_date(p_last_update_date, 'YYYY/MM/DD'), sysdate);
635 
636   OPEN c_app_id;
637   FETCH c_app_id INTO l_application_id;
638   CLOSE c_app_id;
639 
640   BEGIN
641     SELECT last_updated_by, last_update_date
642       INTO db_luby, db_ludate
643       FROM xla_product_rules_tl
644      WHERE application_id          = l_application_id
645        AND amb_context_code        = p_amb_context_code
646        AND product_rule_type_code  = p_product_rule_type_code
647        AND product_rule_code       = p_product_rule_code
648        AND language                = userenv('LANG');
649 
650     IF (fnd_load_util.upload_test(f_luby, f_ludate, db_luby,
651                                db_ludate, p_custom_mode)) then
652       UPDATE xla_product_rules_tl
653          SET name                    = p_name
654             ,description             = p_description
655             ,last_update_date        = f_ludate
656             ,last_updated_by         = f_luby
657             ,last_update_login       = 0
658             ,source_lang             = userenv('LANG')
659        WHERE userenv('LANG')         IN (language, source_lang)
660          AND application_id          = l_application_id
661          AND amb_context_code        = p_amb_context_code
662          AND product_rule_type_code  = p_product_rule_type_code
663          AND product_rule_code       = p_product_rule_code;
664 
665     END IF;
666 
667 
668 
669   END;
670 
671   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
672     trace(p_msg    => 'END of procedure translate_row',
673           p_module => l_log_module,
674           p_level  => C_LEVEL_PROCEDURE);
675   END IF;
676 
677 
678 END translate_row;
679 
680 --=============================================================================
681 --
682 -- Following code is executed when the package body is referenced for the first
683 -- time
684 --
685 --=============================================================================
686 BEGIN
687    g_log_level          := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
688    g_log_enabled        := fnd_log.test
689                           (log_level  => g_log_level
690                           ,module     => C_DEFAULT_MODULE);
691 
692    IF NOT g_log_enabled THEN
693       g_log_level := C_LEVEL_LOG_DISABLED;
694    END IF;
695 
696 
697 end xla_product_rules_f_PKG;