DBA Data[Home] [Help]

PACKAGE BODY: APPS.XLA_ASSIGNMENT_DEFNS_F_PKG

Source


1 PACKAGE BODY xla_assignment_defns_f_pkg AS
2 /* $Header: xlathasd.pkb 120.3 2012/05/17 11:40:22 vgopiset ship $ */
3 /*======================================================================+
4 |             Copyright (c) 2001-2002 Oracle Corporation                |
5 |                       Redwood Shores, CA, USA                         |
6 |                         All rights reserved.                          |
10 |                                                                       |
7 +=======================================================================+
8 | PACKAGE NAME                                                          |
9 |    xla_assignment_defns                                               |
11 | DESCRIPTION                                                           |
12 |    Forms PL/SQL Wrapper for xla_assignment_defns                      |
13 |                                                                       |
14 | HISTORY                                                               |
15 |    Generated from XLAUTB.                                             |
16 |                                                                       |
17 +======================================================================*/
18 
19 
20 --=============================================================================
21 --               *********** Local Trace Routine **********
22 --=============================================================================
23 C_LEVEL_STATEMENT     CONSTANT NUMBER := FND_LOG.LEVEL_STATEMENT;
24 C_LEVEL_PROCEDURE     CONSTANT NUMBER := FND_LOG.LEVEL_PROCEDURE;
25 C_LEVEL_EVENT         CONSTANT NUMBER := FND_LOG.LEVEL_EVENT;
26 C_LEVEL_EXCEPTION     CONSTANT NUMBER := FND_LOG.LEVEL_EXCEPTION;
27 C_LEVEL_ERROR         CONSTANT NUMBER := FND_LOG.LEVEL_ERROR;
28 C_LEVEL_UNEXPECTED    CONSTANT NUMBER := FND_LOG.LEVEL_UNEXPECTED;
29 
30 C_LEVEL_LOG_DISABLED  CONSTANT NUMBER := 99;
31 C_DEFAULT_MODULE      CONSTANT VARCHAR2(240) := 'xla.plsql.xla_assignment_defns_f_pkg';
32 
33 g_debug_flag          VARCHAR2(1) :=
34 NVL(fnd_profile.value('XLA_DEBUG_TRACE'),'N');
35 
36 g_log_level           NUMBER;
37 g_log_enabled         BOOLEAN;
38 
39 PROCEDURE trace
40   (p_msg                        IN VARCHAR2
41   ,p_module                     IN VARCHAR2
42   ,p_level                      IN NUMBER) IS
43 BEGIN
44   ----------------------------------------------------------------------------
45   -- Following is for FND log.
46   ----------------------------------------------------------------------------
47   IF (p_msg IS NULL AND p_level >= g_log_level) THEN
48     fnd_log.message(p_level, p_module);
49   ELSIF p_level >= g_log_level THEN
50     fnd_log.string(p_level, p_module, p_msg);
51   END IF;
52 
53 EXCEPTION
54   WHEN xla_exceptions_pkg.application_exception THEN
55     RAISE;
56 
57   WHEN OTHERS THEN
58     xla_exceptions_pkg.raise_message
59       (p_location   => 'xla_assignment_defns_f_pkg.trace');
60 END trace;
61 
62 /*======================================================================+
63 |                                                                       |
64 |  Procedure insert_row                                                 |
65 |                                                                       |
66 +======================================================================*/
67 PROCEDURE insert_row
68   (x_rowid                            IN OUT NOCOPY VARCHAR2
69   ,x_program_code                     IN VARCHAR2
70   ,x_program_owner_code               IN VARCHAR2
71   ,x_assignment_code                  IN VARCHAR2
72   ,x_assignment_owner_code            IN VARCHAR2
73   ,x_ledger_id                        IN NUMBER
74   ,x_enabled_flag                     IN VARCHAR2
75   ,x_name                             IN VARCHAR2
76   ,x_creation_date                    IN DATE
77   ,x_created_by                       IN NUMBER
78   ,x_last_update_date                 IN DATE
79   ,x_last_updated_by                  IN NUMBER
80   ,x_last_update_login                IN NUMBER)
81 
82 IS
83 
84 CURSOR c IS
85 SELECT rowid
86 FROM   xla_assignment_defns_b
87 WHERE  program_code                      = x_program_code
88   AND  program_owner_code                = x_program_owner_code
89   AND  assignment_code                   = x_assignment_code
90   AND  assignment_owner_code             = x_assignment_owner_code
91 ;
92 
93   l_log_module            VARCHAR2(240);
94 BEGIN
95 
96   IF g_log_enabled THEN
97     l_log_module := C_DEFAULT_MODULE||'.insert_row';
98   END IF;
99 
100   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
101     trace(p_msg    => 'BEGIN of procedure insert_row',
102           p_module => l_log_module,
103           p_level  => C_LEVEL_PROCEDURE);
104   END IF;
105 
106 
107 INSERT INTO xla_assignment_defns_b
108 (creation_date
109 ,created_by
110 ,program_code
111 ,program_owner_code
112 ,assignment_code
113 ,assignment_owner_code
114 ,ledger_id
115 ,enabled_flag
116 ,last_update_date
117 ,last_updated_by
118 ,last_update_login)
119 VALUES
120 (x_creation_date
121 ,x_created_by
122 ,x_program_code
123 ,x_program_owner_code
124 ,x_assignment_code
125 ,x_assignment_owner_code
126 ,x_ledger_id
127 ,x_enabled_flag
128 ,x_last_update_date
129 ,x_last_updated_by
130 ,x_last_update_login)
131 ;
132 
133 INSERT INTO xla_assignment_defns_tl
134 (creation_date
135 ,program_code
136 ,program_owner_code
137 ,assignment_code
138 ,assignment_owner_code
139 ,name
140 ,last_update_date
141 ,last_updated_by
142 ,last_update_login
143 ,created_by
144 ,language
145 ,source_lang)
146 SELECT
147        x_creation_date
148       ,x_program_code
149       ,x_program_owner_code
150       ,x_assignment_code
151       ,x_assignment_owner_code
152       ,x_name
153       ,x_last_update_date
154       ,x_last_updated_by
155       ,x_last_update_login
159 FROM   fnd_languages l
156       ,x_created_by
157       ,l.language_code
158       ,USERENV('LANG')
160 WHERE  l.installed_flag                 IN ('I', 'B')
161   AND  NOT EXISTS
162       (SELECT NULL
163        FROM   xla_assignment_defns_tl               t
164        WHERE  t.program_code                      = x_program_code
165          AND  t.program_owner_code                = x_program_owner_code
166          AND  t.assignment_code                   = x_assignment_code
167          AND  t.assignment_owner_code             = x_assignment_owner_code
168          AND  t.language                          = l.language_code);
169 
170 OPEN c;
171 FETCH c INTO x_rowid;
172 
173 IF (c%NOTFOUND) THEN
174    CLOSE c;
175    RAISE NO_DATA_FOUND;
176 END IF;
177 CLOSE c;
178 
179   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
180     trace(p_msg    => 'END of procedure insert_row',
181           p_module => l_log_module,
182           p_level  => C_LEVEL_PROCEDURE);
183   END IF;
184 
185 END insert_row;
186 
187 /*======================================================================+
188 |                                                                       |
189 |  Procedure lock_row                                                   |
190 |                                                                       |
191 +======================================================================*/
192 PROCEDURE lock_row
193   (x_program_code                     IN VARCHAR2
194   ,x_program_owner_code               IN VARCHAR2
195   ,x_assignment_code                  IN VARCHAR2
196   ,x_assignment_owner_code            IN VARCHAR2
197   ,x_ledger_id                        IN NUMBER
198   ,x_enabled_flag                     IN VARCHAR2
199   ,x_name                             IN VARCHAR2)
200 
201 IS
202 
203 CURSOR c IS
204 SELECT enabled_flag, ledger_id
205 FROM   xla_assignment_defns_b
206 WHERE  program_code                      = x_program_code
207   AND  program_owner_code                = x_program_owner_code
208   AND  assignment_code                   = x_assignment_code
209   AND  assignment_owner_code             = x_assignment_owner_code
210 FOR UPDATE OF program_code NOWAIT;
211 
212 recinfo              c%ROWTYPE;
213 
214 CURSOR c1 IS
215 SELECT source_lang
216       ,name
217       ,DECODE(language     , USERENV('LANG'), 'Y', 'N') baselang
218 FROM   xla_assignment_defns_tl
219 WHERE  program_code                      = X_program_code
220   AND  program_owner_code                = X_program_owner_code
221   AND  assignment_code                   = x_assignment_code
222   AND  assignment_owner_code             = x_assignment_owner_code
223   AND  USERENV('LANG')                 IN (language     ,source_lang)
224 FOR UPDATE OF program_code NOWAIT;
225 
226   l_log_module            VARCHAR2(240);
227 BEGIN
228 
229   IF g_log_enabled THEN
230     l_log_module := C_DEFAULT_MODULE||'.lock_row';
231   END IF;
232 
233   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
234     trace(p_msg    => 'BEGIN of procedure lock_row',
235           p_module => l_log_module,
236           p_level  => C_LEVEL_PROCEDURE);
237   END IF;
238 
239 OPEN c;
240 FETCH c INTO recinfo;
241 
242 IF (c%NOTFOUND) THEN
243    CLOSE c;
244    fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
245    app_exception.raise_exception;
246 END IF;
247 CLOSE c;
248 
249 IF ( (recinfo.enabled_flag                     = x_enabled_flag)
250    AND ((recinfo.ledger_id                     = x_ledger_id)
251     OR ((recinfo.ledger_id                      is null)
252         AND (X_ledger_id                      is null)))
253                    ) THEN
254    NULL;
255 ELSE
256    fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
257    app_exception.raise_exception;
258 END IF;
259 
260 FOR tlinfo IN c1 LOOP
261    IF (tlinfo.baselang = 'Y') THEN
262       IF (    (tlinfo.name = X_name)
263       ) THEN
264         NULL;
265       ELSE
266          fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
267          app_exception.raise_exception;
268       END IF;
269    END IF;
270 END LOOP;
271 
272   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
273     trace(p_msg    => 'END of procedure lock_row',
274           p_module => l_log_module,
275           p_level  => C_LEVEL_PROCEDURE);
276   END IF;
277 
278 RETURN;
279 
280 END lock_row;
281 
282 /*======================================================================+
283 |                                                                       |
284 |  Procedure update_row                                                 |
285 |                                                                       |
286 +======================================================================*/
287 PROCEDURE update_row
288  (x_program_code                     IN VARCHAR2
289   ,x_program_owner_code               IN VARCHAR2
290   ,x_assignment_code                  IN VARCHAR2
291   ,x_assignment_owner_code            IN VARCHAR2
292   ,x_ledger_id                        IN NUMBER
293   ,x_enabled_flag                     IN VARCHAR2
294   ,x_name                             IN VARCHAR2
295  ,x_last_update_date                  IN DATE
296  ,x_last_updated_by                   IN NUMBER
297  ,x_last_update_login                 IN NUMBER)
298 
299 IS
300 
301   l_log_module            VARCHAR2(240);
302 BEGIN
303 
304   IF g_log_enabled THEN
305     l_log_module := C_DEFAULT_MODULE||'.update_row';
309     trace(p_msg    => 'BEGIN of procedure update_row',
306   END IF;
307 
308   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
310           p_module => l_log_module,
311           p_level  => C_LEVEL_PROCEDURE);
312   END IF;
313 
314 UPDATE xla_assignment_defns_b
315    SET
316        last_update_date                 = x_last_update_date
317       ,ledger_id                        = x_ledger_id
318       ,enabled_flag                     = x_enabled_flag
319       ,last_updated_by                  = x_last_updated_by
320       ,last_update_login                = x_last_update_login
321 WHERE  program_code                      = X_program_code
322   AND  program_owner_code                = X_program_owner_code
323   AND  assignment_code                   = x_assignment_code
324   AND  assignment_owner_code             = x_assignment_owner_code;
325 
326 IF (SQL%NOTFOUND) THEN
327    RAISE NO_DATA_FOUND;
328 END IF;
329 
330 UPDATE xla_assignment_defns_tl
331 SET
332        last_update_date                 = x_last_update_date
333       ,name                             = X_name
334       ,last_updated_by                  = x_last_updated_by
335       ,last_update_login                = x_last_update_login
336       ,source_lang                      = USERENV('LANG')
337 WHERE  program_code                      = X_program_code
338   AND  program_owner_code                 = X_program_owner_code
339   AND  assignment_code                   = x_assignment_code
340   AND  assignment_owner_code             = x_assignment_owner_code
341   AND  USERENV('LANG')                 IN (language, source_lang);
342 
343 IF (SQL%NOTFOUND) THEN
344    RAISE NO_DATA_FOUND;
345 END IF;
346 
347   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
348     trace(p_msg    => 'END of procedure update_row',
349           p_module => l_log_module,
350           p_level  => C_LEVEL_PROCEDURE);
351   END IF;
352 
353 END update_row;
354 
355 /*======================================================================+
356 |                                                                       |
357 |  Procedure delete_row                                                 |
358 |                                                                       |
359 +======================================================================*/
360 PROCEDURE delete_row
361   (x_program_code                     IN VARCHAR2
362   ,x_program_owner_code               IN VARCHAR2
363   ,x_assignment_code                  IN VARCHAR2
364   ,x_assignment_owner_code            IN VARCHAR2)
365 
366 IS
367 
368   l_log_module            VARCHAR2(240);
369 BEGIN
370 
371   IF g_log_enabled THEN
372     l_log_module := C_DEFAULT_MODULE||'.delete_row';
373   END IF;
374 
375   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
376     trace(p_msg    => 'BEGIN of procedure delete_row',
377           p_module => l_log_module,
378           p_level  => C_LEVEL_PROCEDURE);
379   END IF;
380 
381 DELETE FROM xla_assignment_defns_tl
382 WHERE program_code                      = x_program_code
383   AND program_owner_code                 = x_program_owner_code
384   AND  assignment_code                   = x_assignment_code
385   AND  assignment_owner_code             = x_assignment_owner_code;
386 
387 
388 IF (SQL%NOTFOUND) THEN
389    RAISE NO_DATA_FOUND;
390 END IF;
391 
392 DELETE FROM xla_assignment_defns_b
393 WHERE program_code                      = x_program_code
394   AND program_owner_code                 = x_program_owner_code
395   AND  assignment_code                   = x_assignment_code
396   AND  assignment_owner_code             = x_assignment_owner_code;
397 
398 
399 IF (SQL%NOTFOUND) THEN
400    RAISE NO_DATA_FOUND;
401 END IF;
402 
403   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
404     trace(p_msg    => 'END of procedure delete_row',
405           p_module => l_log_module,
406           p_level  => C_LEVEL_PROCEDURE);
407   END IF;
408 
409 END delete_row;
410 
411 /*======================================================================+
412 |                                                                       |
413 |  Procedure add_language                                               |
414 |                                                                       |
415 +======================================================================*/
416 PROCEDURE add_language
417 IS
418   l_log_module            VARCHAR2(240);
419 BEGIN
420 
421   IF g_log_enabled THEN
422     l_log_module := C_DEFAULT_MODULE||'.add_language';
423   END IF;
424 
425   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
426     trace(p_msg    => 'BEGIN of procedure add_language',
427           p_module => l_log_module,
428           p_level  => C_LEVEL_PROCEDURE);
429   END IF;
430 
431 DELETE FROM xla_assignment_defns_tl T
432 WHERE  NOT EXISTS
433       (SELECT NULL
434        FROM   xla_assignment_defns_b                b
435        WHERE  b.program_code                      = t.program_code
436          AND  b.program_owner_code                 = t.program_owner_code
437          AND  b.assignment_code                   = t.assignment_code
438          AND  b.assignment_owner_code             = t.assignment_owner_code);
439 
440 UPDATE xla_assignment_defns_tl   t
441 SET   (name)
442    = (SELECT b.name
443       FROM   xla_assignment_defns_tl               b
444       WHERE  b.program_code                      = t.program_code
445         AND  b.program_owner_code                 = t.program_owner_code
446          AND  b.assignment_code                   = t.assignment_code
447          AND  b.assignment_owner_code             = t.assignment_owner_code
448         AND  b.language                         = t.source_lang)
449 WHERE (t.program_code
450       ,t.program_owner_code
451       ,t.assignment_code
452       ,t.assignment_owner_code
453       ,t.language)
454     IN (SELECT subt.program_code
455               ,subt.program_owner_code
456               ,subt.assignment_code
457               ,subt.assignment_owner_code
458               ,subt.language
459         FROM   xla_assignment_defns_tl                   subb
460               ,xla_assignment_defns_tl                   subt
461         WHERE  subb.program_code                       = subt.program_code
462          AND  subb.program_owner_code                  = subt.program_owner_code
463          AND  subb.assignment_code                   = subt.assignment_code
464          AND  subb.assignment_owner_code             = subt.assignment_owner_code
465          AND  subb.language                         = subt.source_lang
466          AND (SUBB.name                             <> SUBT.name
467       ))
468 ;
469 
470 INSERT INTO xla_assignment_defns_tl
471 (creation_date
472 ,program_code
473 ,program_owner_code
474 ,assignment_code
475 ,assignment_owner_code
476 ,name
477 ,last_update_date
478 ,last_updated_by
479 ,last_update_login
480 ,created_by
481 ,language
482 ,source_lang)
483 SELECT   /*+ ORDERED */
484        b.creation_date
485       ,b.program_code
486       ,b.program_owner_code
487       ,b.assignment_code
488       ,b.assignment_owner_code
489       ,b.name
490       ,b.last_update_date
491       ,b.last_updated_by
492       ,b.last_update_login
493       ,b.created_by
494       ,l.language_code
495       ,b.source_lang
496 FROM   xla_assignment_defns_tl             b
497       ,fnd_languages                    l
498 WHERE  l.installed_flag                IN ('I', 'B')
499   AND  b.language                       = userenv('LANG')
500   AND  NOT EXISTS
501       (SELECT NULL
502        FROM   xla_assignment_defns_tl               t
503        WHERE  t.program_code                      = b.program_code
504          AND  t.program_owner_code                = b.program_owner_code
505          AND  t.assignment_code                   = b.assignment_code
506          AND  t.assignment_owner_code             = b.assignment_owner_code
507          AND  t.language                          = l.language_code);
508 
509   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
510     trace(p_msg    => 'END of procedure add_language',
511           p_module => l_log_module,
512           p_level  => C_LEVEL_PROCEDURE);
513   END IF;
514 
515 END add_language;
516 
517 --=============================================================================
518 --
519 -- Name: load_row
520 -- Description: To be used by FNDLOAD to upload a row to the table
521 --
522 --=============================================================================
523 PROCEDURE load_row
524 (p_program_code                       IN VARCHAR2
525 ,p_program_owner_code                 IN VARCHAR2
526 ,p_assignment_code                    IN VARCHAR2
527 ,p_assignment_owner_code              IN VARCHAR2
528 ,p_enabled_flag                       IN VARCHAR2
529 ,p_ledger_short_name                  IN VARCHAR2
530 ,p_owner                              IN VARCHAR2
531 ,p_last_update_date                   IN VARCHAR2
532 ,p_name                               IN VARCHAR2)
533 IS
534 
535   CURSOR c_ledger
536   IS
537   SELECT ledger_id
538     FROM gl_ledgers
539    WHERE short_name = p_ledger_short_name;
540 
541   l_ledger_id             INTEGER;
542   l_rowid                 ROWID;
543   l_exist                 VARCHAR2(1);
544   f_luby                  NUMBER;      -- entity owner in file
545   f_ludate                DATE;        -- entity update date in file
546   db_luby                 NUMBER;      -- entity owner in db
547   db_ludate               DATE;        -- entity update date in db
548   l_log_module            VARCHAR2(240);
549 BEGIN
550 
551   IF g_log_enabled THEN
552     l_log_module := C_DEFAULT_MODULE||'.load_row';
553   END IF;
554 
555   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
556     trace(p_msg    => 'BEGIN of procedure load_row',
557           p_module => l_log_module,
558           p_level  => C_LEVEL_PROCEDURE);
559   END IF;
560 
561   -- Translate owner to file_last_updated_by
565   f_ludate := nvl(to_date(p_last_update_date, 'YYYY/MM/DD'), sysdate);
562   f_luby := fnd_load_util.owner_id(p_owner);
563 
564   -- Translate char last_update_date to date
566 
567   OPEN c_ledger;
568   FETCH c_ledger
569    INTO l_ledger_id;
570   CLOSE c_ledger;
571 
572   BEGIN
573 
574     SELECT last_updated_by, last_update_date
575       INTO db_luby, db_ludate
576       FROM xla_assignment_defns_vl
577      WHERE program_code           = p_program_code
578        AND program_owner_code     = p_program_owner_code
579        AND assignment_code        = p_assignment_code
580        AND assignment_owner_code  = p_assignment_owner_code;
581 
582     IF (fnd_load_util.upload_test(f_luby, f_ludate, db_luby, db_ludate, NULL)) THEN
583       xla_assignment_defns_f_pkg.update_row
584           (x_program_code                  => p_program_code
585           ,x_program_owner_code            => p_program_owner_code
586           ,x_assignment_code               => p_assignment_code
587           ,x_assignment_owner_code         => p_assignment_owner_code
588           ,x_enabled_flag                  => p_enabled_flag
589           ,x_ledger_id                     => l_ledger_id
590           ,x_name                          => p_name
591           ,x_last_update_date              => f_ludate
592           ,x_last_updated_by               => f_luby
593           ,x_last_update_login             => 0);
594 
595     END IF;
596 
597   EXCEPTION
598     WHEN NO_DATA_FOUND THEN
599       xla_assignment_defns_f_pkg.insert_row
600           (x_rowid                         => l_rowid
601           ,x_program_code                  => p_program_code
602           ,x_program_owner_code            => p_program_owner_code
603           ,x_assignment_code               => p_assignment_code
604           ,x_assignment_owner_code         => p_assignment_owner_code
605           ,x_ledger_id                     => l_ledger_id
606           ,x_enabled_flag                  => p_enabled_flag
607           ,x_name                          => p_name
608           ,x_creation_date                 => f_ludate
609           ,x_created_by                    => f_luby
610           ,x_last_update_date              => f_ludate
611           ,x_last_updated_by               => f_luby
612           ,x_last_update_login             => 0);
613   END;
614 
615   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
616     trace(p_msg    => 'END of procedure load_row',
617           p_module => l_log_module,
618           p_level  => C_LEVEL_PROCEDURE);
619   END IF;
620 
621 EXCEPTION
622    WHEN NO_DATA_FOUND THEN
623       null;
624    WHEN OTHERS THEN
625    xla_exceptions_pkg.raise_message
626       (p_location   => 'xla_assignment_defns_f_pkg.load_row');
627 
628 END load_row;
629 
630 --=============================================================================
631 --
632 -- Name: translate_row
633 -- Description: To be used by FNDLOAD to upload a translated row
634 --
635 --=============================================================================
636 PROCEDURE translate_row
637   (p_program_code                     IN VARCHAR2
638   ,p_program_owner_code               IN VARCHAR2
639   ,p_assignment_code                  IN VARCHAR2
640   ,p_assignment_owner_code            IN VARCHAR2
641   ,p_name                             IN VARCHAR2
642   ,p_owner                            IN VARCHAR2
643   ,p_last_update_date                 IN VARCHAR2
644   ,p_custom_mode                      IN VARCHAR2)
645 IS
646 
647   l_rowid                 ROWID;
648   l_exist                 VARCHAR2(1);
649   f_luby                  NUMBER;      -- entity owner in file
650   f_ludate                DATE;        -- entity update date in file
651   db_luby                 NUMBER;      -- entity owner in db
652   db_ludate               DATE;        -- entity update date in db
653   l_log_module            VARCHAR2(240);
654 BEGIN
655 
656   IF g_log_enabled THEN
657     l_log_module := C_DEFAULT_MODULE||'.translate_row';
658   END IF;
659 
660   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
661     trace(p_msg    => 'BEGIN of procedure translate_row',
662           p_module => l_log_module,
663           p_level  => C_LEVEL_PROCEDURE);
664   END IF;
665 
666   -- Translate owner to file_last_updated_by
667   f_luby := fnd_load_util.owner_id(p_owner);
668 
669   -- Translate char last_update_date to date
670   f_ludate := nvl(to_date(p_last_update_date, 'YYYY/MM/DD'), sysdate);
671   -- 14074384, the join conditions should use the PARAMTER and not the Table Column
672   -- This is resulting in Error exact fetch returned more than one row when a
673   -- post accounting program has multiple assignments.
674   BEGIN
675     SELECT last_updated_by, last_update_date
676       INTO db_luby, db_ludate
677       FROM xla_assignment_defns_tl
678      WHERE program_code          = p_program_code
679        AND program_owner_code    = p_program_owner_code
680        AND assignment_code       = p_assignment_code -- changed to parameter 14074384
681        AND assignment_owner_code = p_assignment_owner_code -- changed to parameter 14074384
682        AND language              = userenv('LANG');
683 
684     IF (fnd_load_util.upload_test(f_luby, f_ludate, db_luby,
685                                db_ludate, p_custom_mode)) then
686       UPDATE xla_assignment_defns_tl
687          SET name              = p_name
688             ,last_update_date  = f_ludate
689             ,last_updated_by   = f_luby
690             ,last_update_login = 0
691             ,source_lang       = userenv('LANG')
692        WHERE userenv('LANG')   IN (language, source_lang)
693          AND program_code          = p_program_code
694          AND program_owner_code    = p_program_owner_code
695          AND assignment_code       = p_assignment_code
696          AND assignment_owner_code = p_assignment_owner_code;
697 
698     END IF;
699 
700 
701 
702   END;
703 
704   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
705     trace(p_msg    => 'END of procedure translate_row',
706           p_module => l_log_module,
707           p_level  => C_LEVEL_PROCEDURE);
708   END IF;
709 
710 
711 END translate_row;
712 
713 
714 --=============================================================================
715 --
716 -- Following code is executed when the package body is referenced for the first
717 -- time
718 --
719 --=============================================================================
720 BEGIN
721    g_log_level      := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
722    g_log_enabled    := fnd_log.test
723                           (log_level  => g_log_level
724                           ,module     => C_DEFAULT_MODULE);
725 
726    IF NOT g_log_enabled  THEN
727       g_log_level := C_LEVEL_LOG_DISABLED;
728    END IF;
729 
730 end xla_assignment_defns_f_PKG;