DBA Data[Home] [Help]

PACKAGE BODY: APPS.GMD_ACTIONS_PVT

Source


1 package body GMD_ACTIONS_PVT as
2 /* $Header: GMDVACPB.pls 115.1 2002/12/03 17:02:49 cnagarba noship $ */
3 procedure INSERT_ROW (
4   X_ROWID in out nocopy VARCHAR2,
5   X_ACTION_CODE in VARCHAR2,
6   X_ACTION_INTERVAL in NUMBER,
7   X_DELETE_MARK in NUMBER,
8   X_TEXT_CODE in NUMBER,
9   X_ATTRIBUTE1 in VARCHAR2,
10   X_ATTRIBUTE2 in VARCHAR2,
11   X_ATTRIBUTE3 in VARCHAR2,
12   X_ATTRIBUTE4 in VARCHAR2,
13   X_ATTRIBUTE5 in VARCHAR2,
14   X_ATTRIBUTE6 in VARCHAR2,
15   X_ATTRIBUTE7 in VARCHAR2,
16   X_ATTRIBUTE8 in VARCHAR2,
17   X_ATTRIBUTE9 in VARCHAR2,
18   X_ATTRIBUTE10 in VARCHAR2,
19   X_ATTRIBUTE11 in VARCHAR2,
20   X_ATTRIBUTE12 in VARCHAR2,
21   X_ATTRIBUTE13 in VARCHAR2,
22   X_ATTRIBUTE14 in VARCHAR2,
23   X_ATTRIBUTE15 in VARCHAR2,
24   X_ATTRIBUTE16 in VARCHAR2,
25   X_ATTRIBUTE17 in VARCHAR2,
26   X_ATTRIBUTE18 in VARCHAR2,
27   X_ATTRIBUTE19 in VARCHAR2,
28   X_ATTRIBUTE20 in VARCHAR2,
29   X_ATTRIBUTE21 in VARCHAR2,
30   X_ATTRIBUTE22 in VARCHAR2,
31   X_ATTRIBUTE23 in VARCHAR2,
32   X_ATTRIBUTE24 in VARCHAR2,
33   X_ATTRIBUTE25 in VARCHAR2,
34   X_ATTRIBUTE26 in VARCHAR2,
35   X_ATTRIBUTE27 in VARCHAR2,
36   X_ATTRIBUTE28 in VARCHAR2,
37   X_ATTRIBUTE29 in VARCHAR2,
38   X_ATTRIBUTE30 in VARCHAR2,
39   X_ATTRIBUTE_CATEGORY in VARCHAR2,
40   X_ACTION_DESC in VARCHAR2,
41   X_CREATION_DATE in DATE,
42   X_CREATED_BY in NUMBER,
43   X_LAST_UPDATE_DATE in DATE,
44   X_LAST_UPDATED_BY in NUMBER,
45   X_LAST_UPDATE_LOGIN in NUMBER
46 ) is
47   cursor C is select ROWID from GMD_ACTIONS_B
48     where ACTION_CODE = X_ACTION_CODE
49     ;
50 begin
51   insert into GMD_ACTIONS_B (
52     ACTION_CODE,
53     ACTION_INTERVAL,
54     DELETE_MARK,
55     TEXT_CODE,
56     ATTRIBUTE1,
57     ATTRIBUTE2,
58     ATTRIBUTE3,
59     ATTRIBUTE4,
60     ATTRIBUTE5,
61     ATTRIBUTE6,
62     ATTRIBUTE7,
63     ATTRIBUTE8,
64     ATTRIBUTE9,
65     ATTRIBUTE10,
66     ATTRIBUTE11,
67     ATTRIBUTE12,
68     ATTRIBUTE13,
69     ATTRIBUTE14,
70     ATTRIBUTE15,
71     ATTRIBUTE16,
72     ATTRIBUTE17,
73     ATTRIBUTE18,
74     ATTRIBUTE19,
75     ATTRIBUTE20,
76     ATTRIBUTE21,
77     ATTRIBUTE22,
78     ATTRIBUTE23,
79     ATTRIBUTE24,
80     ATTRIBUTE25,
81     ATTRIBUTE26,
82     ATTRIBUTE27,
83     ATTRIBUTE28,
84     ATTRIBUTE29,
85     ATTRIBUTE30,
86     ATTRIBUTE_CATEGORY,
87     CREATION_DATE,
88     CREATED_BY,
89     LAST_UPDATE_DATE,
90     LAST_UPDATED_BY,
91     LAST_UPDATE_LOGIN
92   ) values (
93     X_ACTION_CODE,
94     X_ACTION_INTERVAL,
95     X_DELETE_MARK,
96     X_TEXT_CODE,
97     X_ATTRIBUTE1,
98     X_ATTRIBUTE2,
99     X_ATTRIBUTE3,
100     X_ATTRIBUTE4,
101     X_ATTRIBUTE5,
102     X_ATTRIBUTE6,
103     X_ATTRIBUTE7,
104     X_ATTRIBUTE8,
105     X_ATTRIBUTE9,
106     X_ATTRIBUTE10,
107     X_ATTRIBUTE11,
108     X_ATTRIBUTE12,
109     X_ATTRIBUTE13,
110     X_ATTRIBUTE14,
111     X_ATTRIBUTE15,
112     X_ATTRIBUTE16,
113     X_ATTRIBUTE17,
114     X_ATTRIBUTE18,
115     X_ATTRIBUTE19,
116     X_ATTRIBUTE20,
117     X_ATTRIBUTE21,
118     X_ATTRIBUTE22,
119     X_ATTRIBUTE23,
120     X_ATTRIBUTE24,
121     X_ATTRIBUTE25,
122     X_ATTRIBUTE26,
123     X_ATTRIBUTE27,
124     X_ATTRIBUTE28,
125     X_ATTRIBUTE29,
126     X_ATTRIBUTE30,
127     X_ATTRIBUTE_CATEGORY,
128     X_CREATION_DATE,
129     X_CREATED_BY,
130     X_LAST_UPDATE_DATE,
131     X_LAST_UPDATED_BY,
132     X_LAST_UPDATE_LOGIN
133   );
134 
135   insert into GMD_ACTIONS_TL (
136     ACTION_CODE,
137     ACTION_DESC,
138     CREATION_DATE,
139     CREATED_BY,
140     LAST_UPDATE_DATE,
141     LAST_UPDATED_BY,
142     LAST_UPDATE_LOGIN,
143     LANGUAGE,
144     SOURCE_LANG
145   ) select
146     X_ACTION_CODE,
147     X_ACTION_DESC,
148     X_CREATION_DATE,
149     X_CREATED_BY,
150     X_LAST_UPDATE_DATE,
151     X_LAST_UPDATED_BY,
152     X_LAST_UPDATE_LOGIN,
153     L.LANGUAGE_CODE,
154     userenv('LANG')
155   from FND_LANGUAGES L
156   where L.INSTALLED_FLAG in ('I', 'B')
157   and not exists
158     (select NULL
159     from GMD_ACTIONS_TL T
160     where T.ACTION_CODE = X_ACTION_CODE
161     and T.LANGUAGE = L.LANGUAGE_CODE);
162 
163   open c;
164   fetch c into X_ROWID;
165   if (c%notfound) then
166     close c;
167     raise no_data_found;
168   end if;
169   close c;
170 
171 end INSERT_ROW;
172 
173 procedure LOCK_ROW (
174   X_ACTION_CODE in VARCHAR2,
175   X_ACTION_INTERVAL in NUMBER,
176   X_DELETE_MARK in NUMBER,
177   X_TEXT_CODE in NUMBER,
178   X_ATTRIBUTE1 in VARCHAR2,
179   X_ATTRIBUTE2 in VARCHAR2,
180   X_ATTRIBUTE3 in VARCHAR2,
181   X_ATTRIBUTE4 in VARCHAR2,
182   X_ATTRIBUTE5 in VARCHAR2,
183   X_ATTRIBUTE6 in VARCHAR2,
184   X_ATTRIBUTE7 in VARCHAR2,
185   X_ATTRIBUTE8 in VARCHAR2,
186   X_ATTRIBUTE9 in VARCHAR2,
187   X_ATTRIBUTE10 in VARCHAR2,
188   X_ATTRIBUTE11 in VARCHAR2,
189   X_ATTRIBUTE12 in VARCHAR2,
190   X_ATTRIBUTE13 in VARCHAR2,
191   X_ATTRIBUTE14 in VARCHAR2,
192   X_ATTRIBUTE15 in VARCHAR2,
193   X_ATTRIBUTE16 in VARCHAR2,
194   X_ATTRIBUTE17 in VARCHAR2,
195   X_ATTRIBUTE18 in VARCHAR2,
196   X_ATTRIBUTE19 in VARCHAR2,
197   X_ATTRIBUTE20 in VARCHAR2,
198   X_ATTRIBUTE21 in VARCHAR2,
199   X_ATTRIBUTE22 in VARCHAR2,
200   X_ATTRIBUTE23 in VARCHAR2,
201   X_ATTRIBUTE24 in VARCHAR2,
202   X_ATTRIBUTE25 in VARCHAR2,
203   X_ATTRIBUTE26 in VARCHAR2,
204   X_ATTRIBUTE27 in VARCHAR2,
205   X_ATTRIBUTE28 in VARCHAR2,
206   X_ATTRIBUTE29 in VARCHAR2,
207   X_ATTRIBUTE30 in VARCHAR2,
208   X_ATTRIBUTE_CATEGORY in VARCHAR2,
209   X_ACTION_DESC in VARCHAR2
210 ) is
211   cursor c is select
212       ACTION_INTERVAL,
213       DELETE_MARK,
214       TEXT_CODE,
215       ATTRIBUTE1,
216       ATTRIBUTE2,
217       ATTRIBUTE3,
218       ATTRIBUTE4,
219       ATTRIBUTE5,
220       ATTRIBUTE6,
221       ATTRIBUTE7,
222       ATTRIBUTE8,
223       ATTRIBUTE9,
224       ATTRIBUTE10,
225       ATTRIBUTE11,
226       ATTRIBUTE12,
227       ATTRIBUTE13,
228       ATTRIBUTE14,
229       ATTRIBUTE15,
230       ATTRIBUTE16,
231       ATTRIBUTE17,
232       ATTRIBUTE18,
233       ATTRIBUTE19,
234       ATTRIBUTE20,
235       ATTRIBUTE21,
236       ATTRIBUTE22,
237       ATTRIBUTE23,
238       ATTRIBUTE24,
239       ATTRIBUTE25,
240       ATTRIBUTE26,
241       ATTRIBUTE27,
242       ATTRIBUTE28,
243       ATTRIBUTE29,
244       ATTRIBUTE30,
245       ATTRIBUTE_CATEGORY
246     from GMD_ACTIONS_B
247     where ACTION_CODE = X_ACTION_CODE
248     for update of ACTION_CODE nowait;
249   recinfo c%rowtype;
250 
251   cursor c1 is select
252       ACTION_DESC,
253       decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
254     from GMD_ACTIONS_TL
255     where ACTION_CODE = X_ACTION_CODE
256     and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
257     for update of ACTION_CODE nowait;
258 begin
259   open c;
260   fetch c into recinfo;
261   if (c%notfound) then
262     close c;
263     fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
264     app_exception.raise_exception;
265   end if;
266   close c;
267   if (    (recinfo.ACTION_INTERVAL = X_ACTION_INTERVAL)
268       AND (recinfo.DELETE_MARK = X_DELETE_MARK)
269       AND ((recinfo.TEXT_CODE = X_TEXT_CODE)
270            OR ((recinfo.TEXT_CODE is null) AND (X_TEXT_CODE is null)))
271       AND ((recinfo.ATTRIBUTE1 = X_ATTRIBUTE1)
272            OR ((recinfo.ATTRIBUTE1 is null) AND (X_ATTRIBUTE1 is null)))
273       AND ((recinfo.ATTRIBUTE2 = X_ATTRIBUTE2)
274            OR ((recinfo.ATTRIBUTE2 is null) AND (X_ATTRIBUTE2 is null)))
275       AND ((recinfo.ATTRIBUTE3 = X_ATTRIBUTE3)
276            OR ((recinfo.ATTRIBUTE3 is null) AND (X_ATTRIBUTE3 is null)))
277       AND ((recinfo.ATTRIBUTE4 = X_ATTRIBUTE4)
278            OR ((recinfo.ATTRIBUTE4 is null) AND (X_ATTRIBUTE4 is null)))
279       AND ((recinfo.ATTRIBUTE5 = X_ATTRIBUTE5)
280            OR ((recinfo.ATTRIBUTE5 is null) AND (X_ATTRIBUTE5 is null)))
281       AND ((recinfo.ATTRIBUTE6 = X_ATTRIBUTE6)
282            OR ((recinfo.ATTRIBUTE6 is null) AND (X_ATTRIBUTE6 is null)))
283       AND ((recinfo.ATTRIBUTE7 = X_ATTRIBUTE7)
284            OR ((recinfo.ATTRIBUTE7 is null) AND (X_ATTRIBUTE7 is null)))
285       AND ((recinfo.ATTRIBUTE8 = X_ATTRIBUTE8)
286            OR ((recinfo.ATTRIBUTE8 is null) AND (X_ATTRIBUTE8 is null)))
287       AND ((recinfo.ATTRIBUTE9 = X_ATTRIBUTE9)
288            OR ((recinfo.ATTRIBUTE9 is null) AND (X_ATTRIBUTE9 is null)))
289       AND ((recinfo.ATTRIBUTE10 = X_ATTRIBUTE10)
290            OR ((recinfo.ATTRIBUTE10 is null) AND (X_ATTRIBUTE10 is null)))
291       AND ((recinfo.ATTRIBUTE11 = X_ATTRIBUTE11)
292            OR ((recinfo.ATTRIBUTE11 is null) AND (X_ATTRIBUTE11 is null)))
293       AND ((recinfo.ATTRIBUTE12 = X_ATTRIBUTE12)
294            OR ((recinfo.ATTRIBUTE12 is null) AND (X_ATTRIBUTE12 is null)))
295       AND ((recinfo.ATTRIBUTE13 = X_ATTRIBUTE13)
296            OR ((recinfo.ATTRIBUTE13 is null) AND (X_ATTRIBUTE13 is null)))
297       AND ((recinfo.ATTRIBUTE14 = X_ATTRIBUTE14)
298            OR ((recinfo.ATTRIBUTE14 is null) AND (X_ATTRIBUTE14 is null)))
299       AND ((recinfo.ATTRIBUTE15 = X_ATTRIBUTE15)
300            OR ((recinfo.ATTRIBUTE15 is null) AND (X_ATTRIBUTE15 is null)))
301       AND ((recinfo.ATTRIBUTE16 = X_ATTRIBUTE16)
302            OR ((recinfo.ATTRIBUTE16 is null) AND (X_ATTRIBUTE16 is null)))
303       AND ((recinfo.ATTRIBUTE17 = X_ATTRIBUTE17)
304            OR ((recinfo.ATTRIBUTE17 is null) AND (X_ATTRIBUTE17 is null)))
305       AND ((recinfo.ATTRIBUTE18 = X_ATTRIBUTE18)
306            OR ((recinfo.ATTRIBUTE18 is null) AND (X_ATTRIBUTE18 is null)))
307       AND ((recinfo.ATTRIBUTE19 = X_ATTRIBUTE19)
308            OR ((recinfo.ATTRIBUTE19 is null) AND (X_ATTRIBUTE19 is null)))
309       AND ((recinfo.ATTRIBUTE20 = X_ATTRIBUTE20)
310            OR ((recinfo.ATTRIBUTE20 is null) AND (X_ATTRIBUTE20 is null)))
311       AND ((recinfo.ATTRIBUTE21 = X_ATTRIBUTE21)
312            OR ((recinfo.ATTRIBUTE21 is null) AND (X_ATTRIBUTE21 is null)))
313       AND ((recinfo.ATTRIBUTE22 = X_ATTRIBUTE22)
314            OR ((recinfo.ATTRIBUTE22 is null) AND (X_ATTRIBUTE22 is null)))
315       AND ((recinfo.ATTRIBUTE23 = X_ATTRIBUTE23)
316            OR ((recinfo.ATTRIBUTE23 is null) AND (X_ATTRIBUTE23 is null)))
317       AND ((recinfo.ATTRIBUTE24 = X_ATTRIBUTE24)
318            OR ((recinfo.ATTRIBUTE24 is null) AND (X_ATTRIBUTE24 is null)))
319       AND ((recinfo.ATTRIBUTE25 = X_ATTRIBUTE25)
320            OR ((recinfo.ATTRIBUTE25 is null) AND (X_ATTRIBUTE25 is null)))
321       AND ((recinfo.ATTRIBUTE26 = X_ATTRIBUTE26)
322            OR ((recinfo.ATTRIBUTE26 is null) AND (X_ATTRIBUTE26 is null)))
323       AND ((recinfo.ATTRIBUTE27 = X_ATTRIBUTE27)
324            OR ((recinfo.ATTRIBUTE27 is null) AND (X_ATTRIBUTE27 is null)))
325       AND ((recinfo.ATTRIBUTE28 = X_ATTRIBUTE28)
326            OR ((recinfo.ATTRIBUTE28 is null) AND (X_ATTRIBUTE28 is null)))
327       AND ((recinfo.ATTRIBUTE29 = X_ATTRIBUTE29)
328            OR ((recinfo.ATTRIBUTE29 is null) AND (X_ATTRIBUTE29 is null)))
329       AND ((recinfo.ATTRIBUTE30 = X_ATTRIBUTE30)
330            OR ((recinfo.ATTRIBUTE30 is null) AND (X_ATTRIBUTE30 is null)))
331       AND ((recinfo.ATTRIBUTE_CATEGORY = X_ATTRIBUTE_CATEGORY)
332            OR ((recinfo.ATTRIBUTE_CATEGORY is null) AND (X_ATTRIBUTE_CATEGORY is null)))
333   ) then
334     null;
335   else
336     fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
337     app_exception.raise_exception;
338   end if;
339 
340   for tlinfo in c1 loop
341     if (tlinfo.BASELANG = 'Y') then
342       if (    (tlinfo.ACTION_DESC = X_ACTION_DESC)
343       ) then
344         null;
345       else
346         fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
347         app_exception.raise_exception;
348       end if;
349     end if;
350   end loop;
351   return;
352 end LOCK_ROW;
353 
354 procedure UPDATE_ROW (
355   X_ACTION_CODE in VARCHAR2,
356   X_ACTION_INTERVAL in NUMBER,
357   X_DELETE_MARK in NUMBER,
358   X_TEXT_CODE in NUMBER,
359   X_ATTRIBUTE1 in VARCHAR2,
360   X_ATTRIBUTE2 in VARCHAR2,
361   X_ATTRIBUTE3 in VARCHAR2,
362   X_ATTRIBUTE4 in VARCHAR2,
363   X_ATTRIBUTE5 in VARCHAR2,
364   X_ATTRIBUTE6 in VARCHAR2,
365   X_ATTRIBUTE7 in VARCHAR2,
366   X_ATTRIBUTE8 in VARCHAR2,
367   X_ATTRIBUTE9 in VARCHAR2,
368   X_ATTRIBUTE10 in VARCHAR2,
369   X_ATTRIBUTE11 in VARCHAR2,
370   X_ATTRIBUTE12 in VARCHAR2,
371   X_ATTRIBUTE13 in VARCHAR2,
372   X_ATTRIBUTE14 in VARCHAR2,
373   X_ATTRIBUTE15 in VARCHAR2,
374   X_ATTRIBUTE16 in VARCHAR2,
375   X_ATTRIBUTE17 in VARCHAR2,
376   X_ATTRIBUTE18 in VARCHAR2,
377   X_ATTRIBUTE19 in VARCHAR2,
378   X_ATTRIBUTE20 in VARCHAR2,
379   X_ATTRIBUTE21 in VARCHAR2,
380   X_ATTRIBUTE22 in VARCHAR2,
381   X_ATTRIBUTE23 in VARCHAR2,
382   X_ATTRIBUTE24 in VARCHAR2,
383   X_ATTRIBUTE25 in VARCHAR2,
384   X_ATTRIBUTE26 in VARCHAR2,
385   X_ATTRIBUTE27 in VARCHAR2,
386   X_ATTRIBUTE28 in VARCHAR2,
387   X_ATTRIBUTE29 in VARCHAR2,
388   X_ATTRIBUTE30 in VARCHAR2,
389   X_ATTRIBUTE_CATEGORY in VARCHAR2,
390   X_ACTION_DESC in VARCHAR2,
391   X_LAST_UPDATE_DATE in DATE,
392   X_LAST_UPDATED_BY in NUMBER,
393   X_LAST_UPDATE_LOGIN in NUMBER
394 ) is
395 begin
396   update GMD_ACTIONS_B set
397     ACTION_INTERVAL = X_ACTION_INTERVAL,
398     DELETE_MARK = X_DELETE_MARK,
399     TEXT_CODE = X_TEXT_CODE,
400     ATTRIBUTE1 = X_ATTRIBUTE1,
401     ATTRIBUTE2 = X_ATTRIBUTE2,
402     ATTRIBUTE3 = X_ATTRIBUTE3,
403     ATTRIBUTE4 = X_ATTRIBUTE4,
404     ATTRIBUTE5 = X_ATTRIBUTE5,
405     ATTRIBUTE6 = X_ATTRIBUTE6,
406     ATTRIBUTE7 = X_ATTRIBUTE7,
407     ATTRIBUTE8 = X_ATTRIBUTE8,
408     ATTRIBUTE9 = X_ATTRIBUTE9,
409     ATTRIBUTE10 = X_ATTRIBUTE10,
410     ATTRIBUTE11 = X_ATTRIBUTE11,
411     ATTRIBUTE12 = X_ATTRIBUTE12,
412     ATTRIBUTE13 = X_ATTRIBUTE13,
413     ATTRIBUTE14 = X_ATTRIBUTE14,
414     ATTRIBUTE15 = X_ATTRIBUTE15,
415     ATTRIBUTE16 = X_ATTRIBUTE16,
416     ATTRIBUTE17 = X_ATTRIBUTE17,
417     ATTRIBUTE18 = X_ATTRIBUTE18,
418     ATTRIBUTE19 = X_ATTRIBUTE19,
419     ATTRIBUTE20 = X_ATTRIBUTE20,
420     ATTRIBUTE21 = X_ATTRIBUTE21,
421     ATTRIBUTE22 = X_ATTRIBUTE22,
422     ATTRIBUTE23 = X_ATTRIBUTE23,
423     ATTRIBUTE24 = X_ATTRIBUTE24,
424     ATTRIBUTE25 = X_ATTRIBUTE25,
425     ATTRIBUTE26 = X_ATTRIBUTE26,
426     ATTRIBUTE27 = X_ATTRIBUTE27,
427     ATTRIBUTE28 = X_ATTRIBUTE28,
428     ATTRIBUTE29 = X_ATTRIBUTE29,
429     ATTRIBUTE30 = X_ATTRIBUTE30,
430     ATTRIBUTE_CATEGORY = X_ATTRIBUTE_CATEGORY,
431     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
432     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
433     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
434   where ACTION_CODE = X_ACTION_CODE;
435 
436   if (sql%notfound) then
437     raise no_data_found;
438   end if;
439 
440   update GMD_ACTIONS_TL set
441     ACTION_DESC = X_ACTION_DESC,
442     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
443     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
444     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
445     SOURCE_LANG = userenv('LANG')
446   where ACTION_CODE = X_ACTION_CODE
447   and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
448 
449   if (sql%notfound) then
450     raise no_data_found;
451   end if;
452 end UPDATE_ROW;
453 
454 procedure DELETE_ROW (
455   X_ACTION_CODE in VARCHAR2
456 ) is
457 begin
458   delete from GMD_ACTIONS_TL
459   where ACTION_CODE = X_ACTION_CODE;
460 
461   if (sql%notfound) then
462     raise no_data_found;
463   end if;
464 
465   delete from GMD_ACTIONS_B
466   where ACTION_CODE = X_ACTION_CODE;
467 
468   if (sql%notfound) then
469     raise no_data_found;
470   end if;
471 end DELETE_ROW;
472 
473 procedure ADD_LANGUAGE
474 is
475 begin
476   delete from GMD_ACTIONS_TL T
477   where not exists
478     (select NULL
479     from GMD_ACTIONS_B B
480     where B.ACTION_CODE = T.ACTION_CODE
481     );
482 
483   update GMD_ACTIONS_TL T set (
484       ACTION_DESC
485     ) = (select
486       B.ACTION_DESC
487     from GMD_ACTIONS_TL B
488     where B.ACTION_CODE = T.ACTION_CODE
489     and B.LANGUAGE = T.SOURCE_LANG)
490   where (
491       T.ACTION_CODE,
492       T.LANGUAGE
493   ) in (select
494       SUBT.ACTION_CODE,
495       SUBT.LANGUAGE
496     from GMD_ACTIONS_TL SUBB, GMD_ACTIONS_TL SUBT
497     where SUBB.ACTION_CODE = SUBT.ACTION_CODE
498     and SUBB.LANGUAGE = SUBT.SOURCE_LANG
499     and (SUBB.ACTION_DESC <> SUBT.ACTION_DESC
500   ));
501 
502   insert into GMD_ACTIONS_TL (
503     ACTION_CODE,
504     ACTION_DESC,
505     CREATION_DATE,
506     CREATED_BY,
507     LAST_UPDATE_DATE,
508     LAST_UPDATED_BY,
509     LAST_UPDATE_LOGIN,
510     LANGUAGE,
511     SOURCE_LANG
512   ) select
513     B.ACTION_CODE,
514     B.ACTION_DESC,
515     B.CREATION_DATE,
516     B.CREATED_BY,
517     B.LAST_UPDATE_DATE,
518     B.LAST_UPDATED_BY,
519     B.LAST_UPDATE_LOGIN,
520     L.LANGUAGE_CODE,
521     B.SOURCE_LANG
522   from GMD_ACTIONS_TL B, FND_LANGUAGES L
523   where L.INSTALLED_FLAG in ('I', 'B')
524   and B.LANGUAGE = userenv('LANG')
525   and not exists
526     (select NULL
527     from GMD_ACTIONS_TL T
528     where T.ACTION_CODE = B.ACTION_CODE
529     and T.LANGUAGE = L.LANGUAGE_CODE);
530 end ADD_LANGUAGE;
531 
532 end GMD_ACTIONS_PVT;