DBA Data[Home] [Help]

PACKAGE BODY: APPS.XLA_SEG_RULES_F_PKG

Source


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