[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;