DBA Data[Home] [Help]

PACKAGE BODY: APPS.CN_MODULES_PKG

Source


1 PACKAGE BODY CN_MODULES_PKG AS
2 -- $Header: cnsymodb.pls 120.6.12010000.2 2008/10/10 07:19:37 rajukum ship $
3 
4 -- Procedure Name
5 --   sync_module
6 -- Purpose
7 --   Generate a module for a Commissions function.
8 -- History
9 --   06-05-95	Amy Erickson	Created
10 --
11 
12 -- This Procedure Is Not Used Now,
13 -- We Can Remove This Procedure
14 
15 -- Local Variable
16 
17 	l_org_id NUMBER;
18 
19   PROCEDURE sync_module (
20 	    x_module_id 	    NUMBER,
21 	    x_module_status IN OUT NOCOPY  VARCHAR2) IS
22 
23 
24     x_module_type	cn_modules.module_type%TYPE;
25     x_rc		BOOLEAN;
26     x_temp_id		cn_modules.module_id%TYPE;
27 
28   BEGIN
29 
30    SELECT module_type, module_status
31      INTO x_module_type, x_module_status
32      FROM cn_modules
33     WHERE module_id = x_module_id ;
34 
35   END sync_module;
36 
37 
38 -- Procedure Name
39 --   unsync_module
40 -- Purpose
41 --   Mark a module status as UNSYNC.
42 -- History
43 --
44 
45 -- This Procedure Is Not Used Now,
46 -- We Can Remove This Procedure
47 
48   PROCEDURE unsync_module (
49 	    x_module_id 	    NUMBER,
50 	    x_module_status IN OUT NOCOPY  VARCHAR2,
51 	    x_org_id IN NUMBER) IS
52 
53 
54   BEGIN
55 
56   l_org_id := x_org_id;
57 
58   x_module_status := 'UNSYNC' ;
59 
60      update_row(x_module_id     => x_module_id,
61 				x_module_status => x_module_status,
62 				x_org_id => l_org_id);
63 
64   END unsync_module;
65 
66   PROCEDURE INSERT_ROW (
67 			X_ROWID IN OUT nocopy VARCHAR2,
68 			X_MODULE_ID IN NUMBER,
69 			X_MODULE_TYPE IN VARCHAR2,
70 			X_REPOSITORY_ID IN NUMBER,
71 			X_DESCRIPTION IN VARCHAR2,
72 			X_PARENT_MODULE_ID IN NUMBER,
73 			X_SOURCE_REPOSITORY_ID IN NUMBER,
74 			X_MODULE_STATUS IN VARCHAR2,
75 			X_EVENT_ID IN NUMBER,
76 			X_LAST_MODIFICATION IN DATE,
77 			X_LAST_SYNCHRONIZATION IN DATE,
78 			X_OUTPUT_FILENAME IN VARCHAR2,
79 			X_COLLECT_FLAG IN VARCHAR2,
80 			X_NAME IN VARCHAR2,
81 			X_CREATION_DATE IN DATE,
82 			X_CREATED_BY IN NUMBER,
83 			X_LAST_UPDATE_DATE IN DATE,
84 			X_LAST_UPDATED_BY IN NUMBER,
85 			X_LAST_UPDATE_LOGIN IN NUMBER,
86             X_ORG_ID IN NUMBER) IS  -- Modified For R12 MOAC
87 
88   CURSOR C IS SELECT ROWID FROM CN_MODULES_ALL_B
89   WHERE MODULE_ID = x_module_id;
90 
91   BEGIN
92      INSERT INTO CN_MODULES_ALL_B(
93 	MODULE_ID,
94         MODULE_TYPE,
95         REPOSITORY_ID,
96         DESCRIPTION,
97         PARENT_MODULE_ID,
98         SOURCE_REPOSITORY_ID,
99         MODULE_STATUS,
100         EVENT_ID,
101         LAST_MODIFICATION,
102         LAST_SYNCHRONIZATION,
103         OUTPUT_FILENAME,
104         COLLECT_FLAG,
105         CREATION_DATE,
106         CREATED_BY,
107         LAST_UPDATE_DATE,
108         LAST_UPDATED_BY,
109         LAST_UPDATE_LOGIN,
110         ORG_ID  -- Modified For R12 MOAC
111         ) VALUES (
112 	X_MODULE_ID,
113 	X_MODULE_TYPE,
114 	X_REPOSITORY_ID,
115 	X_DESCRIPTION,
116 	X_PARENT_MODULE_ID,
117 	X_SOURCE_REPOSITORY_ID,
118 	X_MODULE_STATUS,
119 	X_EVENT_ID,
120 	X_LAST_MODIFICATION,
121 	X_LAST_SYNCHRONIZATION,
122 	X_OUTPUT_FILENAME,
123 	X_COLLECT_FLAG,
124 	X_CREATION_DATE,
125 	X_CREATED_BY,
126 	X_LAST_UPDATE_DATE,
127 	X_LAST_UPDATED_BY,
128 	X_LAST_UPDATE_LOGIN,
129     X_ORG_ID    -- Modified For R12 MOAC
130 	);
131 
132   INSERT INTO CN_MODULES_ALL_TL (
133     MODULE_ID,
134     NAME,
135     LAST_UPDATE_DATE,
136     LAST_UPDATED_BY,
137     LAST_UPDATE_LOGIN,
138     CREATION_DATE,
139     CREATED_BY,
140     LANGUAGE,
141     SOURCE_LANG,
142     ORG_ID
143   ) SELECT
144     X_MODULE_ID,
145     X_NAME,
146     X_LAST_UPDATE_DATE,
147     X_LAST_UPDATED_BY,
148     X_LAST_UPDATE_LOGIN,
149     X_CREATION_DATE,
150     X_CREATED_BY,
151     L.LANGUAGE_CODE,
152     userenv('LANG'),
153     X_ORG_ID
154   FROM FND_LANGUAGES L
155   WHERE L.INSTALLED_FLAG IN ('I', 'B')
156   AND NOT EXISTS
157     (SELECT NULL
158     FROM CN_MODULES_ALL_TL T
159     WHERE T.MODULE_ID = X_MODULE_ID
160      AND T.LANGUAGE = L.language_code
161      AND T.ORG_ID = X_ORG_ID
162     );
163 
164   OPEN c;
165   FETCH c INTO x_rowid;
166   IF (c%NOTFOUND) THEN
167     CLOSE c;
168     RAISE NO_DATA_FOUND;
169   END IF;
170   CLOSE c;
171 
172 END INSERT_ROW;
173 
174 -- This Procedure Is Not Used Now,
175 -- We Can Remove This Procedure
176 
177 PROCEDURE LOCK_ROW (
178   X_MODULE_ID IN NUMBER,
179   X_MODULE_TYPE IN VARCHAR2,
180   X_REPOSITORY_ID IN NUMBER,
181   X_DESCRIPTION IN VARCHAR2,
182   X_PARENT_MODULE_ID IN NUMBER,
183   X_SOURCE_REPOSITORY_ID IN NUMBER,
184   X_MODULE_STATUS IN VARCHAR2,
185   X_EVENT_ID IN NUMBER,
186   X_LAST_MODIFICATION IN DATE,
187   X_LAST_SYNCHRONIZATION IN DATE,
188   X_OUTPUT_FILENAME IN VARCHAR2,
189   X_COLLECT_FLAG IN VARCHAR2,
190   X_NAME IN VARCHAR2,
191   X_ORG_ID IN NUMBER
192 ) IS
193   CURSOR c IS SELECT
194       MODULE_TYPE,
195       REPOSITORY_ID,
196       DESCRIPTION,
197       PARENT_MODULE_ID,
198       SOURCE_REPOSITORY_ID,
199       MODULE_STATUS,
200       EVENT_ID,
201       LAST_MODIFICATION,
202       LAST_SYNCHRONIZATION,
203       OUTPUT_FILENAME,
204       COLLECT_FLAG
205     FROM CN_MODULES_ALL_B
206     WHERE MODULE_ID = x_module_id AND
207     ORG_ID = X_ORG_ID
208     FOR UPDATE OF MODULE_ID NOWAIT;
209   recinfo c%ROWTYPE;
210 
211   CURSOR c1 IS SELECT
212       NAME,
213       decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
214     FROM CN_MODULES_ALL_TL
215     WHERE MODULE_ID = x_module_id AND
216     ORG_ID = X_ORG_ID
217     AND userenv('LANG') IN (LANGUAGE, SOURCE_LANG)
218     FOR UPDATE OF MODULE_ID NOWAIT;
219 BEGIN
220   OPEN c;
221   FETCH c INTO recinfo;
222   IF (c%NOTFOUND) THEN
223     CLOSE c;
224     fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
225     app_exception.raise_exception;
226   END IF;
227   CLOSE c;
228   IF (    (recinfo.MODULE_TYPE = X_MODULE_TYPE)
229       AND (recinfo.REPOSITORY_ID = X_REPOSITORY_ID)
230       AND ((recinfo.DESCRIPTION = X_DESCRIPTION)
231            OR ((recinfo.DESCRIPTION IS NULL) AND (X_DESCRIPTION IS NULL)))
232       AND ((recinfo.PARENT_MODULE_ID = X_PARENT_MODULE_ID)
233            OR ((recinfo.PARENT_MODULE_ID IS NULL) AND (X_PARENT_MODULE_ID IS NULL)))
234       AND ((recinfo.SOURCE_REPOSITORY_ID = X_SOURCE_REPOSITORY_ID)
235            OR ((recinfo.SOURCE_REPOSITORY_ID IS NULL) AND (X_SOURCE_REPOSITORY_ID IS NULL)))
236       AND (recinfo.MODULE_STATUS = X_MODULE_STATUS)
237       AND ((recinfo.EVENT_ID = X_EVENT_ID)
238            OR ((recinfo.EVENT_ID IS NULL) AND (X_EVENT_ID IS NULL)))
239       AND ((recinfo.LAST_MODIFICATION = X_LAST_MODIFICATION)
240            OR ((recinfo.LAST_MODIFICATION IS NULL) AND (X_LAST_MODIFICATION IS NULL)))
241       AND ((recinfo.LAST_SYNCHRONIZATION = X_LAST_SYNCHRONIZATION)
242            OR ((recinfo.LAST_SYNCHRONIZATION IS NULL) AND (X_LAST_SYNCHRONIZATION IS NULL)))
243       AND ((recinfo.OUTPUT_FILENAME = X_OUTPUT_FILENAME)
244            OR ((recinfo.OUTPUT_FILENAME IS NULL) AND (X_OUTPUT_FILENAME IS NULL)))
245       AND ((recinfo.COLLECT_FLAG = X_COLLECT_FLAG)
246            OR ((recinfo.COLLECT_FLAG IS NULL) AND (X_COLLECT_FLAG IS NULL)))
247   ) THEN
248     NULL;
249   ELSE
250     fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
251     app_exception.raise_exception;
252   END IF;
253 
254   FOR tlinfo IN c1 LOOP
255     IF (tlinfo.BASELANG = 'Y') THEN
256       IF (    (tlinfo.NAME = X_NAME)
257       ) THEN
258         NULL;
259       ELSE
260         fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
261         app_exception.raise_exception;
262       END IF;
263     END IF;
264   END LOOP;
265   RETURN;
266 END LOCK_ROW;
267 
268 
269 
270 PROCEDURE UPDATE_ROW (
271   X_MODULE_ID IN NUMBER,
272   X_MODULE_TYPE IN VARCHAR2,
273   X_REPOSITORY_ID IN NUMBER,
274   X_DESCRIPTION IN VARCHAR2,
275   X_PARENT_MODULE_ID IN NUMBER,
276   X_SOURCE_REPOSITORY_ID IN NUMBER,
277   X_MODULE_STATUS IN VARCHAR2,
278   X_EVENT_ID IN NUMBER,
279   X_LAST_MODIFICATION IN DATE,
280   X_LAST_SYNCHRONIZATION IN DATE,
281   X_OUTPUT_FILENAME IN VARCHAR2,
282   X_COLLECT_FLAG IN VARCHAR2,
283   X_NAME IN VARCHAR2,
284   X_LAST_UPDATE_DATE IN DATE,
285   X_LAST_UPDATED_BY IN NUMBER,
289 
286   X_LAST_UPDATE_LOGIN IN NUMBER,
287   X_ORG_ID  IN NUMBER
288 ) IS
290    CURSOR cur_b IS
291       SELECT *
292 	FROM cn_modules_all_b
293 	WHERE module_id = x_module_id AND
294     org_id = X_ORG_ID;
295 
296    CURSOR cur_tl IS
297       SELECT NAME, last_update_date, last_updated_by,last_update_login
298 	FROM cn_modules_all_tl
299 	WHERE module_id = x_module_id AND
300 	userenv('LANG') IN (LANGUAGE, SOURCE_LANG) AND
301     org_id = X_ORG_ID;
302 
303    rec_b  cur_b%ROWTYPE;
304    rec_tl cur_tl%ROWTYPE;
305 
306 BEGIN
307 
308    OPEN cur_b;
309 
310    FETCH cur_b INTO rec_b;
311 
312    IF (cur_b%NOTFOUND) THEN
313       CLOSE cur_b;
314       RAISE no_data_found;
315 
316     ELSE
317 
318       SELECT Decode(X_MODULE_ID, FND_API.G_MISS_NUM, rec_b.module_id,
319 		    Ltrim(Rtrim(X_MODULE_ID)))
320 	INTO rec_b.module_id FROM sys.dual;
321 
322       SELECT Decode(X_MODULE_TYPE, FND_API.G_MISS_CHAR, rec_b.MODULE_TYPE,
323 		    Ltrim(Rtrim(X_MODULE_TYPE)))
324 	INTO rec_b.MODULE_TYPE FROM sys.dual;
325 
326       SELECT Decode(X_REPOSITORY_ID, FND_API.G_MISS_NUM, rec_b.REPOSITORY_ID,
327 		    Ltrim(Rtrim(X_REPOSITORY_ID)))
328 	INTO rec_b.REPOSITORY_ID FROM sys.dual;
329 
330       SELECT Decode(X_DESCRIPTION, FND_API.G_MISS_CHAR, rec_b.DESCRIPTION,
331 		    Ltrim(Rtrim(X_DESCRIPTION)))
332 	INTO rec_b.DESCRIPTION FROM sys.dual;
333 
334       SELECT Decode(X_PARENT_MODULE_ID, FND_API.G_MISS_NUM, rec_b.PARENT_MODULE_ID,
335 		    Ltrim(Rtrim(X_PARENT_MODULE_ID)))
336 	INTO rec_b.PARENT_MODULE_ID FROM sys.dual;
337 
338       SELECT Decode(X_SOURCE_REPOSITORY_ID, FND_API.G_MISS_NUM, rec_b.SOURCE_REPOSITORY_ID,Ltrim(Rtrim(X_SOURCE_REPOSITORY_ID)))
339 	INTO rec_b.SOURCE_REPOSITORY_ID FROM sys.dual;
340 
341       SELECT Decode(X_MODULE_STATUS, FND_API.G_MISS_CHAR, rec_b.MODULE_STATUS,
342 		    Ltrim(Rtrim(X_MODULE_STATUS)))
343 	INTO rec_b.MODULE_STATUS FROM sys.dual;
344 
345       SELECT Decode(X_EVENT_ID, FND_API.G_MISS_NUM, rec_b.EVENT_ID,
346 		    Ltrim(Rtrim(X_EVENT_ID)))
347 	INTO rec_b.EVENT_ID FROM sys.dual;
348 
349       SELECT Decode(X_LAST_MODIFICATION, FND_API.G_MISS_DATE, rec_b.LAST_MODIFICATION,
350 		    Ltrim(Rtrim(X_LAST_MODIFICATION)))
351 	INTO rec_b.LAST_MODIFICATION FROM sys.dual;
352 
353       SELECT Decode(X_LAST_SYNCHRONIZATION, FND_API.G_MISS_DATE, rec_b.LAST_SYNCHRONIZATION,
354 		    Ltrim(Rtrim(X_LAST_SYNCHRONIZATION)))
355 	INTO rec_b.LAST_SYNCHRONIZATION FROM sys.dual;
356 
357       SELECT Decode(X_OUTPUT_FILENAME, FND_API.G_MISS_CHAR, rec_b.OUTPUT_FILENAME,
358 		    Ltrim(Rtrim(X_OUTPUT_FILENAME)))
359 	INTO rec_b.OUTPUT_FILENAME FROM sys.dual;
360 
361       SELECT Decode(X_COLLECT_FLAG, FND_API.G_MISS_CHAR, rec_b.COLLECT_FLAG,
362 		    Ltrim(Rtrim(X_COLLECT_FLAG)))
363 	INTO rec_b.COLLECT_FLAG FROM sys.dual;
364 
365 
366       SELECT Decode(X_LAST_UPDATE_DATE, FND_API.G_MISS_DATE, rec_b.LAST_UPDATE_DATE,
367 		    Ltrim(Rtrim(X_LAST_UPDATE_DATE)))
368 	INTO rec_b.LAST_UPDATE_DATE FROM sys.dual;
369 
370       SELECT Decode(X_LAST_UPDATED_BY, FND_API.G_MISS_NUM, rec_b.LAST_UPDATED_BY,
371 		    Ltrim(Rtrim(X_LAST_UPDATED_BY)))
372 	INTO rec_b.last_updated_by FROM sys.dual;
373 
374       SELECT Decode(X_LAST_UPDATE_LOGIN, FND_API.G_MISS_NUM, rec_b.LAST_UPDATE_LOGIN,
375 		    Ltrim(Rtrim(X_LAST_UPDATE_LOGIN)))
376 	INTO rec_b.last_update_login FROM sys.dual;
377 
378       UPDATE CN_MODULES_ALL_B SET
379 	MODULE_TYPE = rec_b.MODULE_TYPE,
380 	REPOSITORY_ID = rec_b.REPOSITORY_ID,
381 	DESCRIPTION = rec_b.DESCRIPTION,
382 	PARENT_MODULE_ID = rec_b.PARENT_MODULE_ID,
383 	SOURCE_REPOSITORY_ID = rec_b.SOURCE_REPOSITORY_ID,
384 	MODULE_STATUS = rec_b.MODULE_STATUS,
385 	EVENT_ID = rec_b.EVENT_ID,
386 	LAST_MODIFICATION = rec_b.LAST_MODIFICATION,
387 	LAST_SYNCHRONIZATION = rec_b.LAST_SYNCHRONIZATION,
388 	OUTPUT_FILENAME = rec_b.OUTPUT_FILENAME,
389 	COLLECT_FLAG = rec_b.COLLECT_FLAG,
390 	LAST_UPDATE_DATE = rec_b.LAST_UPDATE_DATE,
391 	LAST_UPDATED_BY = rec_b.LAST_UPDATED_BY,
392 	LAST_UPDATE_LOGIN = rec_b.LAST_UPDATE_LOGIN
393 	WHERE MODULE_ID = rec_b.module_id
394 	AND
395     org_id = X_ORG_ID;
396 
397       IF (SQL%NOTFOUND) THEN
398 	 CLOSE cur_b;
399 	 RAISE no_data_found;
400       END IF;
401 
402    END IF;
403    CLOSE cur_b;
404 
405    OPEN cur_tl;
406 
407    FETCH cur_tl INTO rec_tl;
408 
409    IF (cur_tl%NOTFOUND) THEN
410       CLOSE cur_tl;
411       RAISE no_data_found;
412 
413     ELSE
414 
415       SELECT Decode(X_NAME, FND_API.G_MISS_CHAR, rec_tl.NAME,
416 		    Ltrim(Rtrim(X_NAME)))
417 	INTO rec_tl.NAME FROM sys.dual;
418 
419       SELECT Decode(X_LAST_UPDATE_DATE, FND_API.G_MISS_DATE, rec_tl.LAST_UPDATE_DATE,
420 		    Ltrim(Rtrim(X_LAST_UPDATE_DATE)))
421 	INTO rec_tl.LAST_UPDATE_DATE FROM sys.dual;
422 
423       SELECT Decode(X_LAST_UPDATED_BY, FND_API.G_MISS_NUM, rec_tl.LAST_UPDATED_BY,
424 		    Ltrim(Rtrim(X_LAST_UPDATED_BY)))
425 	INTO rec_tl.last_updated_by FROM sys.dual;
426 
427       SELECT Decode(X_LAST_UPDATE_LOGIN, FND_API.G_MISS_NUM, rec_tl.LAST_UPDATE_LOGIN,
428 		    Ltrim(Rtrim(X_LAST_UPDATE_LOGIN)))
429 	INTO rec_tl.last_update_login FROM sys.dual;
430 
431       UPDATE CN_MODULES_ALL_TL SET
432 	NAME = rec_tl.NAME,
433 	LAST_UPDATE_DATE = rec_tl.LAST_UPDATE_DATE,
434 	LAST_UPDATED_BY = rec_tl.LAST_UPDATED_BY,
435 	LAST_UPDATE_LOGIN = rec_tl.LAST_UPDATE_LOGIN,
436 	SOURCE_LANG = userenv('LANG')
437 	WHERE MODULE_ID = x_module_id AND
438 	userenv('LANG') IN (LANGUAGE, SOURCE_LANG) AND
439     org_id = X_ORG_ID;
440 
441       IF (SQL%NOTFOUND) THEN
445 
442 	 CLOSE cur_tl;
443 	 RAISE no_data_found;
444       END IF;
446    END IF;
447    CLOSE cur_tl;
448 
449 EXCEPTION
450    WHEN no_data_found THEN
451       RAISE no_data_found;
452 
453 END UPDATE_ROW;
454 
455 
456 PROCEDURE DELETE_ROW (
457     X_MODULE_ID IN NUMBER,
458     X_ORG_ID IN NUMBER
459 ) IS
460 BEGIN
461   DELETE FROM CN_MODULES_ALL_TL
462     WHERE MODULE_ID = x_module_id AND
463     ORG_ID = X_ORG_ID;
464 
465   IF (SQL%NOTFOUND) THEN
466     RAISE no_data_found;
467   END IF;
468 
469   DELETE FROM CN_MODULES_ALL_B
470     WHERE MODULE_ID = x_module_id AND
471     ORG_ID = X_ORG_ID;
472 
473   IF (SQL%NOTFOUND) THEN
474     RAISE no_data_found;
475   END IF;
476 END DELETE_ROW;
477 
478 PROCEDURE ADD_LANGUAGE
479 IS
480 BEGIN
481   DELETE FROM CN_MODULES_ALL_TL T
482   WHERE NOT EXISTS
483     (SELECT NULL
484     FROM CN_MODULES_ALL_B B
485      WHERE B.MODULE_ID = T.module_id
486     AND    B.org_id = T.org_id);
487 
488   UPDATE CN_MODULES_ALL_TL T SET (
489       NAME
490     ) = (SELECT
491       B.NAME
492     FROM CN_MODULES_ALL_TL B
493     WHERE B.MODULE_ID = T.MODULE_ID
494     AND B.LANGUAGE = T.source_lang
495     AND B.org_id = T.org_id)
496   WHERE (
497       T.MODULE_ID,
498       T.LANGUAGE
499   ) IN (SELECT
500       SUBT.MODULE_ID,
501       SUBT.LANGUAGE
502     FROM CN_MODULES_ALL_TL SUBB, CN_MODULES_ALL_TL SUBT
503     WHERE SUBB.MODULE_ID = SUBT.MODULE_ID
504     AND SUBB.LANGUAGE = SUBT.source_lang
505     AND SUBB.ORG_ID = SUBT.ORG_ID
506     AND (SUBB.NAME <> SUBT.NAME
507       OR (SUBB.NAME IS NULL AND SUBT.NAME IS NOT NULL)
508       OR (SUBB.NAME IS NOT NULL AND SUBT.NAME IS NULL)
509   ));
510 
511   INSERT INTO CN_MODULES_ALL_TL (
512     ORG_ID,
513     MODULE_ID,
514     NAME,
515     LAST_UPDATE_DATE,
516     LAST_UPDATED_BY,
517     LAST_UPDATE_LOGIN,
518     CREATION_DATE,
519     CREATED_BY,
520     LANGUAGE,
521     SOURCE_LANG
522   ) SELECT
523     B.ORG_ID,
524     B.MODULE_ID,
525     B.NAME,
526     B.LAST_UPDATE_DATE,
527     B.LAST_UPDATED_BY,
528     B.LAST_UPDATE_LOGIN,
529     B.CREATION_DATE,
530     B.CREATED_BY,
531     L.LANGUAGE_CODE,
532     B.SOURCE_LANG
533   FROM CN_MODULES_ALL_TL B, FND_LANGUAGES L
534   WHERE L.INSTALLED_FLAG IN ('I', 'B')
535   AND B.LANGUAGE = userenv('LANG')
536   AND NOT EXISTS
537     (SELECT NULL
538     FROM CN_MODULES_ALL_TL T
539     WHERE T.MODULE_ID = B.MODULE_ID
540     AND T.LANGUAGE = L.language_code
541     AND T.ORG_ID = B.ORG_ID);
542 END ADD_LANGUAGE;
543 
544 -- --------------------------------------------------------------------+
545 -- Procedure : LOAD_ROW
546 -- Description : Called by FNDLOAD to upload seed datas, this procedure
547 --    only handle seed datas. ORG_ID = -3113
548 -- --------------------------------------------------------------------+
549   PROCEDURE  LOAD_ROW
550     (x_module_id IN NUMBER,
551      x_name IN VARCHAR2,
552      x_description IN VARCHAR2,
553      x_module_type IN VARCHAR2,
554      x_module_status IN VARCHAR2,
555      x_event_id IN NUMBER,
556      x_repository_id IN NUMBER,
557      x_parent_module_id IN NUMBER,
558      x_source_repository_id IN NUMBER,
559      x_last_modification IN DATE,
560      x_last_synchronization IN DATE,
561      x_output_filename IN VARCHAR2,
562      x_collect_flag IN VARCHAR2,
563      x_org_id IN NUMBER,
564      x_owner IN VARCHAR2) IS
565        user_id NUMBER;
566 
567 BEGIN
568    -- Validate input data
569    IF (x_module_id IS NULL)
570      OR  (x_name IS NULL) OR (x_module_type  IS NULL)
571        OR (x_repository_id IS NULL) OR (x_module_status IS NULL) THEN
572       GOTO end_load_row;
573    END IF;
574 
575    IF (x_owner IS NOT NULL) AND (x_owner = 'SEED') THEN
576       user_id := 1;
577     ELSE
578       user_id := 0;
579    END IF;
580    -- Load The record to _B table
581    UPDATE  CN_MODULES_ALL_B SET
582      DESCRIPTION = X_DESCRIPTION,
583      MODULE_TYPE = X_MODULE_TYPE,
584      MODULE_STATUS = X_MODULE_STATUS,
585      EVENT_ID = X_EVENT_ID,
586      REPOSITORY_ID = X_REPOSITORY_ID,
587      PARENT_MODULE_ID = X_PARENT_MODULE_ID,
588      SOURCE_REPOSITORY_ID = X_SOURCE_REPOSITORY_ID,
589      LAST_MODIFICATION = X_LAST_MODIFICATION,
590      LAST_SYNCHRONIZATION = X_LAST_SYNCHRONIZATION,
591      OUTPUT_FILENAME = X_OUTPUT_FILENAME,
592      COLLECT_FLAG = X_COLLECT_FLAG,
593      LAST_UPDATE_DATE = sysdate,
594      LAST_UPDATED_BY = user_id,
595      LAST_UPDATE_LOGIN = 0
596      WHERE MODULE_ID = x_module_id
597      AND org_id = x_org_id;
598 
599    IF (SQL%NOTFOUND) THEN
600       -- Insert new record to _B table
601       INSERT INTO cn_modules_all_b
602 	(MODULE_ID,
603 	 DESCRIPTION,
604 	 MODULE_TYPE,
605 	 MODULE_STATUS,
606 	 EVENT_ID,
607 	 REPOSITORY_ID,
608 	 PARENT_MODULE_ID,
609 	 SOURCE_REPOSITORY_ID,
610 	 LAST_MODIFICATION,
611 	 LAST_SYNCHRONIZATION,
612 	 OUTPUT_FILENAME,
613 	 COLLECT_FLAG,
614 	 CREATION_DATE,
615 	 CREATED_BY,
616 	 LAST_UPDATE_DATE,
617 	 LAST_UPDATED_BY,
618 	LAST_UPDATE_login,
619 	org_id
620 	 ) VALUES
621 	(X_MODULE_ID,
622 	 X_DESCRIPTION,
623 	 X_MODULE_TYPE,
624 	 X_MODULE_STATUS,
625 	 X_EVENT_ID,
626 	 X_REPOSITORY_ID,
627 	 X_PARENT_MODULE_ID,
628 	 X_SOURCE_REPOSITORY_ID,
629 	 X_LAST_MODIFICATION,
630 	 X_LAST_SYNCHRONIZATION,
631 	 X_OUTPUT_FILENAME,
632 	 X_COLLECT_FLAG,
633 	 sysdate,
634 	 user_id,
635 	 sysdate,
636 	 user_id,
637 	0,
638 	x_org_id
639 	 );
640    END IF;
641    -- Load The record to _TL table
642    UPDATE  CN_MODULES_ALL_TL SET
643      NAME = X_NAME,
644      LAST_UPDATE_DATE = sysdate,
645      LAST_UPDATED_BY = user_id,
646      LAST_UPDATE_LOGIN = 0,
647      SOURCE_LANG = userenv('LANG')
648      WHERE  MODULE_ID = x_module_id
649      AND    userenv('LANG') IN (LANGUAGE, SOURCE_LANG)
650      AND org_id = x_org_id;
651 
652    IF (SQL%NOTFOUND) THEN
653       -- Insert new record to _TL table
654       INSERT  INTO CN_MODULES_ALL_TL
655 	(MODULE_ID,
656 	 NAME,
657 	 LAST_UPDATE_DATE,
658 	 LAST_UPDATED_BY,
659 	 LAST_UPDATE_LOGIN,
660 	 CREATION_DATE,
661 	 CREATED_BY,
662          org_id,
663 	 LANGUAGE,
664 	 SOURCE_LANG
665 	 ) SELECT
666 	X_MODULE_ID,
667 	X_NAME,
668 	sysdate,
669 	user_id,
670 	0,
671 	sysdate,
672 	user_id,
673         x_org_id,
674 	L.LANGUAGE_CODE,
675 	userenv('LANG')
676 	FROM FND_LANGUAGES L
677 	WHERE L.INSTALLED_FLAG IN ('I', 'B')
678 	AND NOT EXISTS
679 	(SELECT NULL
680 	 FROM CN_MODULES_ALL_TL T
681 	 WHERE T.MODULE_ID = X_MODULE_ID
682 	 AND T.LANGUAGE = L.LANGUAGE_CODE);
683    END IF;
684    << end_load_row >>
685      NULL;
686 END  LOAD_ROW ;
687 
688 -- --------------------------------------------------------------------+
689 -- Procedure : TRANSLATE_ROW
690 -- Description : Called by FNDLOAD to translate seed datas, this procedure
691 --    only handle seed datas. ORG_ID = -3113
692 -- --------------------------------------------------------------------+
693   PROCEDURE TRANSLATE_ROW
694   ( x_module_id IN NUMBER,
695     x_name IN VARCHAR2,
696     x_owner IN VARCHAR2) IS
697        user_id NUMBER;
698 BEGIN
699     -- Validate input data
700    IF (x_module_id IS NULL) OR  (x_name IS NULL)  THEN
701       GOTO end_translate_row;
702    END IF;
703 
704    IF (x_owner IS NOT NULL) AND (x_owner = 'SEED') THEN
705       user_id := 1;
706     ELSE
707       user_id := 0;
708    END IF;
709    -- Update the translation
710    UPDATE cn_modules_all_tl SET
711      NAME = x_name,
712      last_update_date = sysdate,
713      last_updated_by = user_id,
714      last_update_login = 0,
715      source_lang = userenv('LANG')
716      WHERE module_id = x_module_id
717      AND userenv('LANG') IN (LANGUAGE, SOURCE_LANG);
718 
719    << end_translate_row >>
720      NULL;
721 END TRANSLATE_ROW ;
722 
723 END cn_modules_pkg;