DBA Data[Home] [Help]

PACKAGE BODY: APPS.AMS_CLIK_THRU_ACT_PARAM_PKG

Source


1 package body AMS_CLIK_THRU_ACT_PARAM_PKG as
2 /* $Header: amslctpb.pls 115.8 2003/11/26 06:46:25 mayjain noship $ */
3 procedure INSERT_ROW (
4   X_ROWID IN OUT NOCOPY VARCHAR2,
5   X_ACTION_PARAM_ID in NUMBER,
6   X_ACTION_ID in NUMBER,
7   X_ACTION_CODE in VARCHAR2,
8   X_ACTION_PARAM_CODE in VARCHAR2,
9   X_ENABLED_FLAG in VARCHAR2,
10   X_TRACK_FLAG in VARCHAR2,
11   X_MANDATORY_FLAG in VARCHAR2,
12   X_ENCRYPT_FLAG in VARCHAR2,
13   X_LOV in VARCHAR2,
14   X_ACTION_PARAM_CODE_MEANING in VARCHAR2,
15   X_DESCRIPTION in VARCHAR2,
16   X_LAST_UPDATE_DATE in DATE,
17   X_LAST_UPDATED_BY in NUMBER,
18   X_CREATION_DATE in DATE,
19   X_CREATED_BY in NUMBER,
20   X_LAST_UPDATE_LOGIN in NUMBER,
21   X_OBJECT_VERSION_NUMBER in NUMBER
22 )
23 is
24   cursor c is select ROWID from AMS_CLIK_THRU_ACT_PARAMS_B
25     where ACTION_PARAM_ID = X_ACTION_PARAM_ID
26     ;
27   cursor ctl is select ROWID from AMS_CLIK_THRU_ACT_PARAMS_TL
28     where ACTION_PARAM_ID = X_ACTION_PARAM_ID
29     ;
30 begin
31 
32 	insert into AMS_CLIK_THRU_ACT_PARAMS_B (
33 		ACTION_PARAM_ID
34 		,ACTION_ID
35 		,ACTION_CODE
36 		,ACTION_PARAM_CODE
37 		,ENABLED_FLAG
38 		,TRACK_FLAG
39 		,MANDATORY_FLAG
40 		,ENCRYPT_FLAG
41 		,LOV
42 		,LAST_UPDATE_DATE
43 		,LAST_UPDATED_BY
44 		,CREATION_DATE
45 		,CREATED_BY
46 		,LAST_UPDATE_LOGIN
47 		,OBJECT_VERSION_NUMBER
48 	) values (
49 		X_ACTION_PARAM_ID
50 		,X_ACTION_ID
51 		,X_ACTION_CODE
52 		,X_ACTION_PARAM_CODE
53 		,X_ENABLED_FLAG
54 		,X_TRACK_FLAG
55 		,X_MANDATORY_FLAG
56 		,X_ENCRYPT_FLAG
57 		,X_LOV
58 		,DECODE(X_LAST_UPDATE_DATE,FND_API.G_MISS_DATE,SYSDATE,NULL,SYSDATE,X_LAST_UPDATE_DATE)
59 		,DECODE(X_LAST_UPDATED_BY,FND_API.G_MISS_NUM,FND_GLOBAL.user_id,NULL,FND_GLOBAL.user_id,X_LAST_UPDATED_BY)
60 		,DECODE(X_CREATION_DATE,FND_API.G_MISS_DATE,SYSDATE,NULL,SYSDATE,X_CREATION_DATE)
61 		,DECODE(X_CREATED_BY,FND_API.G_MISS_NUM,FND_GLOBAL.user_id,NULL,FND_GLOBAL.user_id,X_CREATED_BY)
62 		,DECODE(X_LAST_UPDATE_LOGIN,FND_API.G_MISS_NUM,FND_GLOBAL.login_id,NULL,FND_GLOBAL.user_id,X_LAST_UPDATE_LOGIN)
63 		,X_OBJECT_VERSION_NUMBER
64 	);
65 
66   open c;
67   fetch c into X_ROWID;
68   if (c%notfound) then
69     close c;
70     raise no_data_found;
71   end if;
72   close c;
73 
74 	insert into AMS_CLIK_THRU_ACT_PARAMS_TL (
75 		ACTION_PARAM_ID
76 		,ACTION_PARAM_CODE_MEANING
77 		,DESCRIPTION
78 		,LANGUAGE
79 		,SOURCE_LANG
80 		,LAST_UPDATE_DATE
81 		,LAST_UPDATED_BY
82 		,CREATION_DATE
83 		,CREATED_BY
84 		,LAST_UPDATE_LOGIN
85 	)
86 	SELECT
87      X_ACTION_PARAM_ID
88     ,X_ACTION_PARAM_CODE_MEANING
89     ,DECODE(X_DESCRIPTION,FND_API.G_MISS_CHAR,NULL,X_DESCRIPTION)
90     ,l.language_code
91     ,USERENV('lang')
92     ,DECODE(X_LAST_UPDATE_DATE,FND_API.G_MISS_DATE,SYSDATE,NULL,SYSDATE,X_LAST_UPDATE_DATE)
93     ,DECODE(X_LAST_UPDATED_BY,FND_API.G_MISS_NUM,FND_GLOBAL.user_id,NULL,FND_GLOBAL.user_id,X_LAST_UPDATED_BY)
94     ,DECODE(X_CREATION_DATE,FND_API.G_MISS_DATE,SYSDATE,NULL,SYSDATE,X_CREATION_DATE)
95     ,DECODE(X_CREATED_BY,FND_API.G_MISS_NUM,FND_GLOBAL.user_id,NULL,FND_GLOBAL.user_id,X_CREATED_BY)
96     ,DECODE(X_LAST_UPDATE_LOGIN,FND_API.G_MISS_NUM,FND_GLOBAL.login_id,NULL,FND_GLOBAL.user_id,X_LAST_UPDATE_LOGIN)
97   FROM fnd_languages l
98   WHERE l.installed_flag IN ('I', 'B')
99   AND NOT EXISTS
100     (SELECT NULL
101     FROM AMS_CLIK_THRU_ACT_PARAMS_TL T
102     WHERE T.ACTION_PARAM_ID = X_ACTION_PARAM_ID
103     AND T.LANGUAGE = l.language_code);
104 
105   open ctl;
106   fetch ctl into X_ROWID;
107   if (ctl%notfound) then
108     close ctl;
109     raise no_data_found;
110   end if;
111   close ctl;
112 EXCEPTION
113   WHEN NO_DATA_FOUND THEN
114 	RAISE FND_API.g_exc_error;
115 end INSERT_ROW;
116 
117 procedure LOCK_ROW (
118   X_ACTION_PARAM_ID in NUMBER,
119   X_OBJECT_VERSION_NUMBER in NUMBER,
120   X_ACTION_ID in NUMBER,
121   X_ACTION_CODE in VARCHAR2,
122   X_ACTION_PARAM_CODE in VARCHAR2,
123   X_ENABLED_FLAG in VARCHAR2,
124   X_TRACK_FLAG in VARCHAR2,
125   X_MANDATORY_FLAG in VARCHAR2,
126   X_ENCRYPT_FLAG in VARCHAR2,
127   X_LOV in VARCHAR2,
128   X_ACTION_PARAM_CODE_MEANING in VARCHAR2,
129   X_DESCRIPTION in VARCHAR2
130 )is
131   cursor c is select
132      OBJECT_VERSION_NUMBER
133 		,ACTION_ID
134 		,ACTION_CODE
135 		,ACTION_PARAM_CODE
136 		,ENABLED_FLAG
137 		,TRACK_FLAG
138 		,MANDATORY_FLAG
139 		,ENCRYPT_FLAG
140 		,LOV		,LAST_UPDATE_DATE
141 		,LAST_UPDATED_BY
142 		,CREATION_DATE
143 		,CREATED_BY
144 		,LAST_UPDATE_LOGIN
145     from AMS_CLIK_THRU_ACT_PARAMS_B
146     where ACTION_PARAM_ID = X_ACTION_PARAM_ID
147     for update of ACTION_PARAM_ID nowait;
148   recinfo c%rowtype;
149 
150   CURSOR ctl IS SELECT
151       ACTION_PARAM_CODE_MEANING,
152       DESCRIPTION,
153       DECODE(LANGUAGE, USERENV('lang'), 'y', 'n') baselang
154     FROM AMS_CLIK_THRU_ACT_PARAMS_TL
155     WHERE ACTION_PARAM_ID = X_ACTION_PARAM_ID
156     AND USERENV('lang') IN (LANGUAGE, source_lang)
157     FOR UPDATE OF ACTION_PARAM_ID NOWAIT;
158 
159 begin
160   open c;
161   fetch c into recinfo;
162   if (c%notfound) then
163     close c;
164     fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
165     app_exception.raise_exception;
166   end if;
167   close c;
168   if (    ((recinfo.OBJECT_VERSION_NUMBER = X_OBJECT_VERSION_NUMBER)
169            OR ((recinfo.OBJECT_VERSION_NUMBER is null) AND (X_OBJECT_VERSION_NUMBER is null)))
170       AND ((recinfo.ACTION_ID = X_ACTION_ID)
171            OR ((recinfo.ACTION_ID is null) AND (X_ACTION_ID is null)))
172       AND ((recinfo.ACTION_CODE= X_ACTION_CODE)
173            OR ((recinfo.ACTION_CODE is null) AND (X_ACTION_CODE is null)))
174       AND ((recinfo.ACTION_PARAM_CODE = X_ACTION_PARAM_CODE)
175            OR ((recinfo.ACTION_PARAM_CODE is null) AND (X_ACTION_PARAM_CODE is null)))
176       AND ((recinfo.ENABLED_FLAG = X_ENABLED_FLAG)
177            OR ((recinfo.ENABLED_FLAG is null) AND (X_ENABLED_FLAG is null)))
178       AND ((recinfo.TRACK_FLAG = X_TRACK_FLAG)
179            OR ((recinfo.TRACK_FLAG is null) AND (X_TRACK_FLAG is null)))
180       AND ((recinfo.MANDATORY_FLAG = X_MANDATORY_FLAG)
181            OR ((recinfo.MANDATORY_FLAG is null) AND (X_MANDATORY_FLAG is null)))
182       AND ((recinfo.ENCRYPT_FLAG = X_ENCRYPT_FLAG)
183            OR ((recinfo.ENCRYPT_FLAG is null) AND (X_ENCRYPT_FLAG is null)))
184       AND ((recinfo.LOV = X_LOV)
185            OR ((recinfo.LOV is null) AND (X_LOV is null)))
186   ) then
187     null;
188   else
189     fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
190     app_exception.raise_exception;
191   end if;
192 
193   FOR tlinfo IN ctl LOOP
194   IF (tlinfo.BASELANG = 'Y') THEN
195       IF (    (tlinfo.ACTION_PARAM_CODE_MEANING = X_ACTION_PARAM_CODE_MEANING)
196           AND ((tlinfo.DESCRIPTION = X_DESCRIPTION)
197                OR ((tlinfo.DESCRIPTION IS NULL) AND (X_DESCRIPTION IS NULL)))
198       ) THEN
199         NULL;
200       ELSE
201         Fnd_Message.set_name('FND', 'FORM_RECORD_CHANGED');
202         App_Exception.raise_exception;
203       END IF;
204     END IF;
205   END LOOP;
206 
207   return;
208   EXCEPTION
209   WHEN NO_DATA_FOUND THEN
210 	RAISE FND_API.g_exc_error;
211 end LOCK_ROW;
212 
213 procedure UPDATE_ROW (
214   X_ACTION_PARAM_ID in NUMBER,
215   X_OBJECT_VERSION_NUMBER in NUMBER,
216   X_ACTION_ID in NUMBER,
217   X_ACTION_CODE in VARCHAR2,
218   X_ACTION_PARAM_CODE in VARCHAR2,
219   X_ENABLED_FLAG in VARCHAR2,
220   X_TRACK_FLAG in VARCHAR2,
221   X_MANDATORY_FLAG in VARCHAR2,
222   X_ENCRYPT_FLAG in VARCHAR2,
223   X_LOV in VARCHAR2,
224   X_ACTION_PARAM_CODE_MEANING in VARCHAR2,
225   X_DESCRIPTION in VARCHAR2,
226   X_LAST_UPDATE_DATE in DATE,
227   X_LAST_UPDATED_BY in NUMBER,
228   X_LAST_UPDATE_LOGIN in NUMBER
229 )
230 is
231 begin
232 
233 
234   update AMS_CLIK_THRU_ACT_PARAMS_B set
235 		OBJECT_VERSION_NUMBER	= X_OBJECT_VERSION_NUMBER
236 		,ACTION_ID					= X_ACTION_ID
237 		,ACTION_CODE				= X_ACTION_CODE
238 		,ACTION_PARAM_CODE		= X_ACTION_PARAM_CODE
239 		,ENABLED_FLAG				= X_ENABLED_FLAG
240 		,TRACK_FLAG					= X_TRACK_FLAG
241 		,MANDATORY_FLAG			= X_MANDATORY_FLAG
242 		,ENCRYPT_FLAG				= X_ENCRYPT_FLAG
243 		,LOV							= X_LOV
244 		,LAST_UPDATE_DATE			= X_LAST_UPDATE_DATE
245 		,LAST_UPDATED_BY			= X_LAST_UPDATED_BY
246 		,LAST_UPDATE_LOGIN		= X_LAST_UPDATE_LOGIN
247   where ACTION_PARAM_ID       = X_ACTION_PARAM_ID
248     and ACTION_ID					= X_ACTION_ID;
249 
250   if (sql%notfound) then
251     raise no_data_found;
252   end if;
253 
254   update AMS_CLIK_THRU_ACT_PARAMS_TL set
255     ACTION_PARAM_CODE_MEANING = X_ACTION_PARAM_CODE_MEANING,
256     DESCRIPTION = X_DESCRIPTION,
257     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
258     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
259     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
260     SOURCE_LANG = USERENV('LANG')
261   where ACTION_PARAM_ID = X_ACTION_PARAM_ID
262   and USERENV('LANG') IN (LANGUAGE, SOURCE_LANG);
263 
264   if (sql%notfound) then
265     raise no_data_found;
266   end if;
267 
268 end UPDATE_ROW;
269 
270 procedure DELETE_ROW (
271   X_ACTION_PARAM_ID in NUMBER
272 )
273 is
274 begin
275   delete from AMS_CLIK_THRU_ACT_PARAMS_TL
276   where ACTION_PARAM_ID = X_ACTION_PARAM_ID;
277 
278   if (sql%notfound) then
279     raise no_data_found;
280   end if;
281 
282   delete from AMS_CLIK_THRU_ACT_PARAMS_B
283   where ACTION_PARAM_ID = X_ACTION_PARAM_ID;
284 
285   if (sql%notfound) then
286     raise no_data_found;
287   end if;
288 EXCEPTION
289   WHEN NO_DATA_FOUND THEN
290 	RAISE FND_API.g_exc_error;
291 end DELETE_ROW;
292 
293 procedure  LOAD_ROW(
294   X_ACTION_PARAM_ID in NUMBER,
295   X_ACTION_ID in NUMBER,
296   X_ACTION_CODE in VARCHAR2,
297   X_ACTION_PARAM_CODE in VARCHAR2,
298   X_ENABLED_FLAG in VARCHAR2,
299   X_TRACK_FLAG in VARCHAR2,
300   X_MANDATORY_FLAG in VARCHAR2,
301   X_ENCRYPT_FLAG in VARCHAR2,
302   X_LOV in VARCHAR2,
303   X_ACTION_PARAM_CODE_MEANING in VARCHAR2,
304   X_DESCRIPTION in VARCHAR2,
305   X_OWNER in  VARCHAR2,
306   X_CUSTOM_MODE in VARCHAR2
307 )
308 is
309     l_user_id    NUMBER := 0;
310     l_row_id     VARCHAR2(64);
311     l_obj_verno  number;
312     l_last_updated_by number;
313     l_dummy_char  varchar2(1);
314 
315     cursor c_obj_verno is
316 	select OBJECT_VERSION_NUMBER, last_updated_by
317 	from   AMS_CLIK_THRU_ACT_PARAMS_B
318 	where  ACTION_PARAM_ID =  X_ACTION_PARAM_ID;
319 
320     cursor c_ctp_exists is
321 	select 'x'
322 	from   AMS_CLIK_THRU_ACT_PARAMS_B
323 	where  ACTION_PARAM_ID =  X_ACTION_PARAM_ID;
324 
325 BEGIN
326 
327  IF (X_OWNER = 'SEED') THEN
328 	l_user_id := 1;
329  elsif X_OWNER = 'ORACLE' then
330      l_user_id := 2;
331  elsif X_OWNER = 'SYSADMIN' THEN
332     l_user_id := 0;
333  END IF;
334 
335    open c_ctp_exists;
336    fetch c_ctp_exists into l_dummy_char;
337 
338    if c_ctp_exists%notfound
339    then
340 	close c_ctp_exists;
341 
342 	AMS_CLIK_THRU_ACT_PARAM_PKG.INSERT_ROW(
343 		  X_ROWID								=> l_row_id
344 		  ,X_ACTION_PARAM_ID					=> X_ACTION_PARAM_ID
345 		  ,X_ACTION_ID							=> X_ACTION_ID
346 		  ,X_ACTION_CODE						=> X_ACTION_CODE
347 		  ,X_ACTION_PARAM_CODE				=> X_ACTION_PARAM_CODE
348 		  ,X_ENABLED_FLAG						=> X_ENABLED_FLAG
349 		  ,X_TRACK_FLAG						=> X_TRACK_FLAG
350 		  ,X_MANDATORY_FLAG					=> X_MANDATORY_FLAG
351 		  ,X_ENCRYPT_FLAG						=> X_ENCRYPT_FLAG
352 		  ,X_LOV									=> X_LOV
353 		  ,X_ACTION_PARAM_CODE_MEANING	=> X_ACTION_PARAM_CODE_MEANING
354 		  ,X_DESCRIPTION						=> X_DESCRIPTION
355 		  ,X_LAST_UPDATE_DATE				=> SYSDATE
356 		  ,X_LAST_UPDATED_BY					=> l_user_id
357 		  ,X_CREATION_DATE					=> SYSDATE
358 		  ,X_CREATED_BY						=> l_user_id
359 		  ,X_LAST_UPDATE_LOGIN				=> 0
360 		  ,X_OBJECT_VERSION_NUMBER			=> 1
361 	);
362    else
363 	close c_ctp_exists;
364 
365 	open c_obj_verno;
366 	fetch c_obj_verno into l_obj_verno,l_last_updated_by;
367 	close c_obj_verno;
368 
369 	if (l_last_updated_by in (1,2,0) OR
370 	       NVL(x_custom_mode,'PRESERVE')='FORCE') THEN
371 
372 	       AMS_CLIK_THRU_ACT_PARAM_PKG.UPDATE_ROW(
373 			X_ACTION_PARAM_ID             =>   X_ACTION_PARAM_ID,
374 			X_ACTION_ID	=>   X_ACTION_ID,
375 			X_ACTION_CODE	=>	  X_ACTION_CODE,
376 			X_ACTION_PARAM_CODE=>	  X_ACTION_PARAM_CODE,
377 			X_ENABLED_FLAG	=>	  X_ENABLED_FLAG,
378 			X_TRACK_FLAG	=>	  X_TRACK_FLAG,
379 			X_MANDATORY_FLAG=>	  X_MANDATORY_FLAG,
380 			X_ENCRYPT_FLAG	=>	  X_ENCRYPT_FLAG,
381 			X_LOV		=>	  X_LOV,
382 			X_ACTION_PARAM_CODE_MEANING	=>  X_ACTION_PARAM_CODE_MEANING,
383 			X_DESCRIPTION	=>	  X_DESCRIPTION,
384 			X_LAST_UPDATE_DATE =>   SYSDATE,
385 			X_LAST_UPDATED_BY =>   l_user_id,
386 			X_LAST_UPDATE_LOGIN =>   0,
387 			X_OBJECT_VERSION_NUMBER =>   l_obj_verno + 1
388 		 );
389 	end if;
390     end if;
391 
392 END LOAD_ROW;
393 
394 PROCEDURE TRANSLATE_ROW (
395 	  X_ACTION_PARAM_ID IN NUMBER
396 	, X_ACTION_PARAM_CODE_MEANING IN VARCHAR2
397 	, X_DESCRIPTION IN VARCHAR2
398 	, X_OWNER IN VARCHAR2
399 	,X_CUSTOM_MODE IN VARCHAR2
400 )
401 IS
402     cursor c_last_updated_by is
403 	      select last_updated_by
404 	      FROM AMS_CLIK_THRU_ACT_PARAMS_TL
405               where  ACTION_PARAM_ID =  X_ACTION_PARAM_ID
406 	      and  USERENV('LANG') = LANGUAGE;
407 
408     l_last_updated_by number;
409 
410 BEGIN
411 
412   open c_last_updated_by;
413   fetch c_last_updated_by into l_last_updated_by;
414   close c_last_updated_by;
415 
416   if (l_last_updated_by in (1,2,0) OR
417 	 NVL(x_custom_mode,'PRESERVE')='FORCE') THEN
418 
419      -- Only update rows which have not been altered by user
420      UPDATE AMS_CLIK_THRU_ACT_PARAMS_TL
421      SET description = X_DESCRIPTION,
422       action_param_code_meaning = X_ACTION_PARAM_CODE_MEANING,
423       source_lang = USERENV('LANG'),
424       last_update_date = SYSDATE,
425       last_updated_by = DECODE(X_OWNER, 'SEED', 1,
426 			       'ORACLE',2,
427 			       'SYSADMIN',0, -1),
428       last_update_login = 0
429       WHERE ACTION_PARAM_ID = X_ACTION_PARAM_ID
430       AND USERENV('LANG') IN (LANGUAGE, source_lang);
431 
432    end if;
433 
434 END TRANSLATE_ROW;
435 
436 PROCEDURE ADD_LANGUAGE
437 IS
438 BEGIN
439   DELETE FROM AMS_CLIK_THRU_ACT_PARAMS_TL T
440   WHERE NOT EXISTS
441     (SELECT NULL
442      FROM AMS_CLIK_THRU_ACT_PARAMS_B B
443      WHERE B.ACTION_PARAM_ID = T.ACTION_PARAM_ID
444     );
445 
446   UPDATE AMS_CLIK_THRU_ACT_PARAMS_TL T SET (
447       ACTION_PARAM_CODE_MEANING,
448       DESCRIPTION
449     ) =
450 	 (SELECT
451       T1.ACTION_PARAM_CODE_MEANING,
452       T1.DESCRIPTION
453     FROM AMS_CLIK_THRU_ACT_PARAMS_TL T1
454     WHERE T1.ACTION_PARAM_ID = T.ACTION_PARAM_ID
455     AND T1.LANGUAGE = T.SOURCE_LANG)
456   WHERE (
457       T.ACTION_PARAM_ID,
458       T.LANGUAGE
459    ) IN
460    (SELECT
461       subt.ACTION_PARAM_ID,
462       subt.LANGUAGE
463     FROM AMS_CLIK_THRU_ACT_PARAMS_TL subb, AMS_CLIK_THRU_ACT_PARAMS_TL subt
464     WHERE subb.ACTION_PARAM_ID = subt.ACTION_PARAM_ID
465     AND subb.LANGUAGE = subt.SOURCE_LANG
466     AND (subb.ACTION_PARAM_CODE_MEANING <> subt.ACTION_PARAM_CODE_MEANING
467       OR subb.DESCRIPTION <> subt.DESCRIPTION
468       OR (subb.DESCRIPTION IS NULL AND subt.DESCRIPTION IS NOT NULL)
469       OR (subb.DESCRIPTION IS NOT NULL AND subt.DESCRIPTION IS NULL)
470   ));
471 
472   INSERT INTO AMS_CLIK_THRU_ACT_PARAMS_TL (
473     action_param_id,
474     action_param_code_meaning,
475     description,
476     created_by,
477     creation_date,
478     last_updated_by,
479     last_update_date,
480     last_update_login,
481     LANGUAGE,
482     source_lang
483   ) SELECT /*+ ordered */
484     b.action_param_id,
485     b.action_param_code_meaning,
486     b.description,
487     b.created_by,
488     b.creation_date,
489     b.last_updated_by,
490     b.last_update_date,
491     b.last_update_login,
492     l.language_code,
493     b.source_lang
494   FROM AMS_CLIK_THRU_ACT_PARAMS_TL b, fnd_languages l
495   WHERE l.installed_flag IN ('I', 'B')
496   AND b.LANGUAGE = USERENV('lang')
497   AND NOT EXISTS
498     (SELECT NULL
499     FROM AMS_CLIK_THRU_ACT_PARAMS_TL T
500     WHERE T.action_param_id = b.action_param_id
501     AND T.LANGUAGE = l.language_code);
502 END add_language;
503 
504 
505 end AMS_CLIK_THRU_ACT_PARAM_PKG;