[Home] [Help]
PACKAGE BODY: APPS.AMS_QUERY_COND_DISP_STRUCT_PKG
Source
1 package body AMS_QUERY_COND_DISP_STRUCT_PKG as
2 /* $Header: amstcdsb.pls 120.1 2005/06/27 05:39:52 appldev ship $ */
3 procedure INSERT_ROW (
4 X_ROWID in OUT NOCOPY VARCHAR2,
5 X_QUERY_COND_DISP_STRUCT_ID in NUMBER,
6 X_QUERY_TEMPLATE_ID in NUMBER,
7 X_QUERY_CONDITION_ID in NUMBER,
8 X_TOKEN_TYPE in VARCHAR2,
9 X_TOKEN_SEQUENCE in NUMBER,
10 X_AVAILABLE_LOV_ID in NUMBER,
11 X_VALUE_TYPE in VARCHAR2,
12 X_NON_VARIANT_VALUE in VARCHAR2,
13 X_QUERY_ALIAS_ID in NUMBER,
14 X_DATA_TYPE in VARCHAR2,
15 X_EXP_LOGIC_SEQ in NUMBER,
16 X_EXP_DISPLAY_SEQ in NUMBER,
17 X_OBJECT_VERSION_NUMBER in NUMBER,
18 X_REQUEST_ID in NUMBER,
19 X_SECURITY_GROUP_ID in NUMBER,
20 X_DISPLAY_TEXT in VARCHAR2,
21 X_CREATION_DATE in DATE,
22 X_CREATED_BY in NUMBER,
23 X_LAST_UPDATE_DATE in DATE,
24 X_LAST_UPDATED_BY in NUMBER,
25 X_LAST_UPDATE_LOGIN in NUMBER,
26 X_PROGRAM_ID in NUMBER,
27 X_PROGRAM_APPLICATION_ID in NUMBER,
28 X_PROGRAM_UPDATE_DATE in DATE
29 ) is
30 cursor C is select ROWID from AMS_QUERY_COND_DISP_STRUCT_ALL
31 where QUERY_COND_DISP_STRUCT_ID = X_QUERY_COND_DISP_STRUCT_ID
32 ;
33 begin
34 insert into AMS_QUERY_COND_DISP_STRUCT_ALL (
35 QUERY_COND_DISP_STRUCT_ID,
36 QUERY_TEMPLATE_ID,
37 QUERY_CONDITION_ID,
38 TOKEN_TYPE,
39 TOKEN_SEQUENCE,
40 AVAILABLE_LOV_ID,
41 VALUE_TYPE,
42 NON_VARIANT_VALUE,
43 QUERY_ALIAS_ID,
44 DATA_TYPE,
45 EXP_LOGIC_SEQ,
46 EXP_DISPLAY_SEQ,
47 OBJECT_VERSION_NUMBER,
48 REQUEST_ID,
49 SECURITY_GROUP_ID,
50 CREATION_DATE,
51 CREATED_BY,
52 LAST_UPDATE_DATE,
53 LAST_UPDATED_BY,
54 LAST_UPDATE_LOGIN,
55 PROGRAM_ID,
56 PROGRAM_APPLICATION_ID,
57 PROGRAM_UPDATE_DATE
58 ) values (
59 X_QUERY_COND_DISP_STRUCT_ID,
60 X_QUERY_TEMPLATE_ID,
61 X_QUERY_CONDITION_ID,
62 X_TOKEN_TYPE,
63 X_TOKEN_SEQUENCE,
64 X_AVAILABLE_LOV_ID,
65 X_VALUE_TYPE,
66 X_NON_VARIANT_VALUE,
67 X_QUERY_ALIAS_ID,
68 X_DATA_TYPE,
69 X_EXP_LOGIC_SEQ,
70 X_EXP_DISPLAY_SEQ,
71 X_OBJECT_VERSION_NUMBER,
72 X_REQUEST_ID,
73 X_SECURITY_GROUP_ID,
74 X_CREATION_DATE,
75 X_CREATED_BY,
76 X_LAST_UPDATE_DATE,
77 X_LAST_UPDATED_BY,
78 X_LAST_UPDATE_LOGIN,
79 X_PROGRAM_ID,
80 X_PROGRAM_APPLICATION_ID,
81 X_PROGRAM_UPDATE_DATE
82 );
83
84 insert into AMS_QUERY_COND_DISP_STRUCT_TL (
85 QUERY_COND_DISP_STRUCT_ID,
86 DISPLAY_TEXT,
87 LAST_UPDATE_DATE,
88 LAST_UPDATED_BY,
89 CREATION_DATE,
90 CREATED_BY,
91 LAST_UPDATE_LOGIN,
92 LANGUAGE,
93 SOURCE_LANG
94 ) select
95 X_QUERY_COND_DISP_STRUCT_ID,
96 X_DISPLAY_TEXT,
97 X_LAST_UPDATE_DATE,
98 X_LAST_UPDATED_BY,
99 X_CREATION_DATE,
100 X_CREATED_BY,
101 X_LAST_UPDATE_LOGIN,
102 L.LANGUAGE_CODE,
103 userenv('LANG')
104 from FND_LANGUAGES L
105 where L.INSTALLED_FLAG in ('I', 'B')
106 and not exists
107 (select NULL
108 from AMS_QUERY_COND_DISP_STRUCT_TL T
109 where T.QUERY_COND_DISP_STRUCT_ID = X_QUERY_COND_DISP_STRUCT_ID
110 and T.LANGUAGE = L.LANGUAGE_CODE);
111
112 open c;
113 fetch c into X_ROWID;
114 if (c%notfound) then
115 close c;
116 raise no_data_found;
117 end if;
118 close c;
119
120 end INSERT_ROW;
121
122 procedure LOCK_ROW (
123 X_QUERY_COND_DISP_STRUCT_ID in NUMBER,
124 X_QUERY_TEMPLATE_ID in NUMBER,
125 X_QUERY_CONDITION_ID in NUMBER,
126 X_TOKEN_TYPE in VARCHAR2,
127 X_TOKEN_SEQUENCE in NUMBER,
128 X_AVAILABLE_LOV_ID in NUMBER,
129 X_VALUE_TYPE in VARCHAR2,
130 X_NON_VARIANT_VALUE in VARCHAR2,
131 X_QUERY_ALIAS_ID in NUMBER,
132 X_DATA_TYPE in VARCHAR2,
133 X_EXP_LOGIC_SEQ in NUMBER,
134 X_EXP_DISPLAY_SEQ in NUMBER,
135 X_OBJECT_VERSION_NUMBER in NUMBER,
136 X_REQUEST_ID in NUMBER,
137 X_SECURITY_GROUP_ID in NUMBER,
138 X_DISPLAY_TEXT in VARCHAR2,
139 X_PROGRAM_ID in NUMBER,
140 X_PROGRAM_APPLICATION_ID in NUMBER,
141 X_PROGRAM_UPDATE_DATE in DATE
142 ) is
143 cursor c is select
144 QUERY_TEMPLATE_ID,
145 QUERY_CONDITION_ID,
146 TOKEN_TYPE,
147 TOKEN_SEQUENCE,
148 AVAILABLE_LOV_ID,
149 VALUE_TYPE,
150 NON_VARIANT_VALUE,
151 QUERY_ALIAS_ID,
152 DATA_TYPE,
153 EXP_LOGIC_SEQ,
154 EXP_DISPLAY_SEQ,
155 OBJECT_VERSION_NUMBER,
156 REQUEST_ID,
157 SECURITY_GROUP_ID
158 from AMS_QUERY_COND_DISP_STRUCT_ALL
159 where QUERY_COND_DISP_STRUCT_ID = X_QUERY_COND_DISP_STRUCT_ID
160 for update of QUERY_COND_DISP_STRUCT_ID nowait;
161 recinfo c%rowtype;
162
163 cursor c1 is select
164 DISPLAY_TEXT,
165 decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
166 from AMS_QUERY_COND_DISP_STRUCT_TL
167 where QUERY_COND_DISP_STRUCT_ID = X_QUERY_COND_DISP_STRUCT_ID
168 and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
169 for update of QUERY_COND_DISP_STRUCT_ID nowait;
170 begin
171 open c;
172 fetch c into recinfo;
173 if (c%notfound) then
174 close c;
175 fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
176 app_exception.raise_exception;
177 end if;
178 close c;
179 if ( ((recinfo.QUERY_TEMPLATE_ID = X_QUERY_TEMPLATE_ID)
180 OR ((recinfo.QUERY_TEMPLATE_ID is null) AND (X_QUERY_TEMPLATE_ID is null)))
181 AND ((recinfo.QUERY_CONDITION_ID = X_QUERY_CONDITION_ID)
182 OR ((recinfo.QUERY_CONDITION_ID is null) AND (X_QUERY_CONDITION_ID is null)))
183 AND ((recinfo.TOKEN_TYPE = X_TOKEN_TYPE)
184 OR ((recinfo.TOKEN_TYPE is null) AND (X_TOKEN_TYPE is null)))
185 AND ((recinfo.TOKEN_SEQUENCE = X_TOKEN_SEQUENCE)
186 OR ((recinfo.TOKEN_SEQUENCE is null) AND (X_TOKEN_SEQUENCE is null)))
187 AND ((recinfo.AVAILABLE_LOV_ID = X_AVAILABLE_LOV_ID)
188 OR ((recinfo.AVAILABLE_LOV_ID is null) AND (X_AVAILABLE_LOV_ID is null)))
189 AND ((recinfo.VALUE_TYPE = X_VALUE_TYPE)
190 OR ((recinfo.VALUE_TYPE is null) AND (X_VALUE_TYPE is null)))
191 AND ((recinfo.NON_VARIANT_VALUE = X_NON_VARIANT_VALUE)
192 OR ((recinfo.NON_VARIANT_VALUE is null) AND (X_NON_VARIANT_VALUE is null)))
193 AND ((recinfo.QUERY_ALIAS_ID = X_QUERY_ALIAS_ID)
194 OR ((recinfo.QUERY_ALIAS_ID is null) AND (X_QUERY_ALIAS_ID is null)))
195 AND ((recinfo.DATA_TYPE = X_DATA_TYPE)
196 OR ((recinfo.DATA_TYPE is null) AND (X_DATA_TYPE is null)))
197 AND ((recinfo.EXP_LOGIC_SEQ = X_EXP_LOGIC_SEQ)
198 OR ((recinfo.EXP_LOGIC_SEQ is null) AND (X_EXP_LOGIC_SEQ is null)))
199 AND ((recinfo.EXP_DISPLAY_SEQ = X_EXP_DISPLAY_SEQ)
200 OR ((recinfo.EXP_DISPLAY_SEQ is null) AND (X_EXP_DISPLAY_SEQ is null)))
201 AND ((recinfo.OBJECT_VERSION_NUMBER = X_OBJECT_VERSION_NUMBER)
202 OR ((recinfo.OBJECT_VERSION_NUMBER is null) AND (X_OBJECT_VERSION_NUMBER is null)))
203 AND ((recinfo.REQUEST_ID = X_REQUEST_ID)
204 OR ((recinfo.REQUEST_ID is null) AND (X_REQUEST_ID is null)))
205 AND ((recinfo.SECURITY_GROUP_ID = X_SECURITY_GROUP_ID)
206 OR ((recinfo.SECURITY_GROUP_ID is null) AND (X_SECURITY_GROUP_ID is null)))
207 ) then
208 null;
209 else
210 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
211 app_exception.raise_exception;
212 end if;
213
214 for tlinfo in c1 loop
215 if (tlinfo.BASELANG = 'Y') then
216 if ( ((tlinfo.DISPLAY_TEXT = X_DISPLAY_TEXT)
217 OR ((tlinfo.DISPLAY_TEXT is null) AND (X_DISPLAY_TEXT is null)))
218 ) then
219 null;
220 else
221 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
222 app_exception.raise_exception;
223 end if;
224 end if;
225 end loop;
226 return;
227 end LOCK_ROW;
228
229 procedure UPDATE_ROW (
230 X_QUERY_COND_DISP_STRUCT_ID in NUMBER,
231 X_QUERY_TEMPLATE_ID in NUMBER,
232 X_QUERY_CONDITION_ID in NUMBER,
233 X_TOKEN_TYPE in VARCHAR2,
234 X_TOKEN_SEQUENCE in NUMBER,
235 X_AVAILABLE_LOV_ID in NUMBER,
236 X_VALUE_TYPE in VARCHAR2,
237 X_NON_VARIANT_VALUE in VARCHAR2,
238 X_QUERY_ALIAS_ID in NUMBER,
239 X_DATA_TYPE in VARCHAR2,
240 X_EXP_LOGIC_SEQ in NUMBER,
241 X_EXP_DISPLAY_SEQ in NUMBER,
242 X_OBJECT_VERSION_NUMBER in NUMBER,
243 X_REQUEST_ID in NUMBER,
244 X_SECURITY_GROUP_ID in NUMBER,
245 X_DISPLAY_TEXT in VARCHAR2,
246 X_LAST_UPDATE_DATE in DATE,
247 X_LAST_UPDATED_BY in NUMBER,
248 X_LAST_UPDATE_LOGIN in NUMBER,
249 X_PROGRAM_ID in NUMBER,
250 X_PROGRAM_APPLICATION_ID in NUMBER,
251 X_PROGRAM_UPDATE_DATE in DATE
252 ) is
253 begin
254 update AMS_QUERY_COND_DISP_STRUCT_ALL set
255 QUERY_TEMPLATE_ID = X_QUERY_TEMPLATE_ID,
256 QUERY_CONDITION_ID = X_QUERY_CONDITION_ID,
257 TOKEN_TYPE = X_TOKEN_TYPE,
258 TOKEN_SEQUENCE = X_TOKEN_SEQUENCE,
259 AVAILABLE_LOV_ID = X_AVAILABLE_LOV_ID,
260 VALUE_TYPE = X_VALUE_TYPE,
261 NON_VARIANT_VALUE = X_NON_VARIANT_VALUE,
262 QUERY_ALIAS_ID = X_QUERY_ALIAS_ID,
263 DATA_TYPE = X_DATA_TYPE,
264 EXP_LOGIC_SEQ = X_EXP_LOGIC_SEQ,
265 EXP_DISPLAY_SEQ = X_EXP_DISPLAY_SEQ,
266 OBJECT_VERSION_NUMBER = X_OBJECT_VERSION_NUMBER,
267 REQUEST_ID = X_REQUEST_ID,
268 SECURITY_GROUP_ID = X_SECURITY_GROUP_ID,
269 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
270 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
271 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
272 PROGRAM_ID = X_PROGRAM_ID,
273 PROGRAM_APPLICATION_ID = X_PROGRAM_APPLICATION_ID,
274 PROGRAM_UPDATE_DATE = X_PROGRAM_UPDATE_DATE
275 where QUERY_COND_DISP_STRUCT_ID = X_QUERY_COND_DISP_STRUCT_ID;
276
277 if (sql%notfound) then
278 raise no_data_found;
279 end if;
280
281 update AMS_QUERY_COND_DISP_STRUCT_TL set
282 DISPLAY_TEXT = X_DISPLAY_TEXT,
283 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
284 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
285 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
286 SOURCE_LANG = userenv('LANG')
287 where QUERY_COND_DISP_STRUCT_ID = X_QUERY_COND_DISP_STRUCT_ID
288 and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
289
290 if (sql%notfound) then
291 raise no_data_found;
292 end if;
293 end UPDATE_ROW;
294
295
296 PROCEDURE LOAD_ROW (
297 X_QUERY_COND_DISP_STRUCT_ID IN NUMBER,
298 X_QUERY_TEMPLATE_ID in NUMBER,
299 X_QUERY_CONDITION_ID in NUMBER,
300 X_TOKEN_TYPE in VARCHAR2,
301 X_TOKEN_SEQUENCE in NUMBER,
302 X_AVAILABLE_LOV_ID in NUMBER,
303 X_VALUE_TYPE in VARCHAR2,
304 X_NON_VARIANT_VALUE in VARCHAR2,
305 X_QUERY_ALIAS_ID in NUMBER,
306 X_DATA_TYPE in VARCHAR2,
307 X_EXP_LOGIC_SEQ in NUMBER,
308 X_EXP_DISPLAY_SEQ in NUMBER,
309 X_DISPLAY_TEXT in VARCHAR2,
310 x_owner IN VARCHAR2,
311 x_custom_mode IN VARCHAR2
312 )
313 IS
314 l_user_id number := 0;
315 l_obj_verno number;
316 l_dummy_char varchar2(1);
317 l_row_id varchar2(100);
318 l_disp_struct_id number;
319 l_db_luby_id number;
320
321 CURSOR c_obj_verno IS
322 SELECT object_version_number, last_updated_by
323 FROM AMS_QUERY_COND_DISP_STRUCT_ALL
324 WHERE QUERY_COND_DISP_STRUCT_ID = X_QUERY_COND_DISP_STRUCT_ID;
325
326 CURSOR c_chk_exists is
327 SELECT 'x'
328 FROM AMS_QUERY_COND_DISP_STRUCT_ALL
329 WHERE QUERY_COND_DISP_STRUCT_ID = X_QUERY_COND_DISP_STRUCT_ID;
330
331 CURSOR c_get_id is
332 SELECT AMS_QUERY_COND_DISP_STRUCT_S.NEXTVAL
333 FROM DUAL;
334 BEGIN
335 if X_OWNER = 'SEED' then
336 l_user_id := 1;
337 elsif X_OWNER = 'ORACLE' then
338 l_user_id := 2;
339 elsif X_OWNER = 'SYSADMIN' then
340 l_user_id := 0;
344 OPEN c_chk_exists;
341
342 end if;
343
345 FETCH c_chk_exists INTO l_dummy_char;
346 IF c_chk_exists%notfound THEN
347 CLOSE c_chk_exists;
348
349 IF X_QUERY_COND_DISP_STRUCT_ID IS NULL THEN
350 OPEN c_get_id;
351 FETCH c_get_id INTO l_disp_struct_id;
352 CLOSE c_get_id;
353 ELSE
354 l_disp_struct_id := X_QUERY_COND_DISP_STRUCT_ID;
355 END IF;
356
357 l_obj_verno := 1;
358
359 AMS_QUERY_COND_DISP_STRUCT_PKG.Insert_Row (
360 X_ROWID => l_row_id,
361 X_QUERY_COND_DISP_STRUCT_ID => l_disp_struct_id,
362 X_QUERY_TEMPLATE_ID => X_QUERY_TEMPLATE_ID,
363 X_QUERY_CONDITION_ID => X_QUERY_CONDITION_ID,
364 X_TOKEN_TYPE => X_TOKEN_TYPE,
365 X_TOKEN_SEQUENCE => X_TOKEN_SEQUENCE,
366 X_AVAILABLE_LOV_ID => X_AVAILABLE_LOV_ID,
367 X_VALUE_TYPE => X_VALUE_TYPE,
368 X_NON_VARIANT_VALUE => X_NON_VARIANT_VALUE,
369 X_QUERY_ALIAS_ID => X_QUERY_ALIAS_ID,
370 X_DATA_TYPE => X_DATA_TYPE,
371 X_EXP_LOGIC_SEQ => X_EXP_LOGIC_SEQ,
372 X_EXP_DISPLAY_SEQ => X_EXP_DISPLAY_SEQ,
373 X_OBJECT_VERSION_NUMBER => l_obj_verno,
374 X_REQUEST_ID => 0,
375 X_SECURITY_GROUP_ID => 0,
376 X_DISPLAY_TEXT => X_DISPLAY_TEXT,
377 X_creation_date => SYSDATE,
378 X_created_by => l_user_id,
379 X_last_update_date => SYSDATE,
380 X_last_updated_by => l_user_id,
381 X_last_update_login => 0,
382 X_PROGRAM_ID => 0,
383 X_PROGRAM_APPLICATION_ID => 0,
384 X_PROGRAM_UPDATE_DATE => SYSDATE
385 );
386 ELSE
387 CLOSE c_chk_exists;
388 OPEN c_obj_verno;
389 FETCH c_obj_verno INTO l_obj_verno, l_db_luby_id;
390 CLOSE c_obj_verno;
391
392
393 if (l_db_luby_id IN (0, 1, 2) or NVL(x_custom_mode, 'PRESERVE')='FORCE')
394 then
395
396 AMS_QUERY_COND_DISP_STRUCT_PKG.Update_Row (
397 X_QUERY_COND_DISP_STRUCT_ID => X_QUERY_COND_DISP_STRUCT_ID ,
398 X_QUERY_TEMPLATE_ID => X_QUERY_TEMPLATE_ID,
399 X_QUERY_CONDITION_ID => X_QUERY_CONDITION_ID,
400 X_TOKEN_TYPE => X_TOKEN_TYPE,
401 X_TOKEN_SEQUENCE => X_TOKEN_SEQUENCE,
402 X_AVAILABLE_LOV_ID => X_AVAILABLE_LOV_ID,
403 X_VALUE_TYPE => X_VALUE_TYPE,
404 X_NON_VARIANT_VALUE => X_NON_VARIANT_VALUE,
405 X_QUERY_ALIAS_ID => X_QUERY_ALIAS_ID,
406 X_DATA_TYPE => X_DATA_TYPE,
407 X_EXP_LOGIC_SEQ => X_EXP_LOGIC_SEQ,
408 X_EXP_DISPLAY_SEQ => X_EXP_DISPLAY_SEQ,
409 X_OBJECT_VERSION_NUMBER => l_obj_verno,
410 X_REQUEST_ID => 0,
411 X_SECURITY_GROUP_ID => 0,
412 X_DISPLAY_TEXT => X_DISPLAY_TEXT,
413 X_last_update_date => SYSDATE,
414 X_last_updated_by => l_user_id,
415 X_last_update_login => 0,
416 X_PROGRAM_ID => 0,
417 X_PROGRAM_APPLICATION_ID => 0,
418 X_PROGRAM_UPDATE_DATE => SYSDATE
419 );
420 end if;
421 END IF;
422 END LOAD_ROW;
423
424 procedure DELETE_ROW (
425 X_QUERY_COND_DISP_STRUCT_ID in NUMBER
426 ) is
427 begin
428 delete from AMS_QUERY_COND_DISP_STRUCT_TL
429 where QUERY_COND_DISP_STRUCT_ID = X_QUERY_COND_DISP_STRUCT_ID;
430
431 if (sql%notfound) then
432 raise no_data_found;
433 end if;
434
435 delete from AMS_QUERY_COND_DISP_STRUCT_ALL
436 where QUERY_COND_DISP_STRUCT_ID = X_QUERY_COND_DISP_STRUCT_ID;
437
438 if (sql%notfound) then
439 raise no_data_found;
440 end if;
441 end DELETE_ROW;
442
443 procedure ADD_LANGUAGE
444 is
445 begin
446 delete from AMS_QUERY_COND_DISP_STRUCT_TL T
447 where not exists
448 (select NULL
449 from AMS_QUERY_COND_DISP_STRUCT_ALL B
450 where B.QUERY_COND_DISP_STRUCT_ID = T.QUERY_COND_DISP_STRUCT_ID
451 );
452
453 update AMS_QUERY_COND_DISP_STRUCT_TL T set (
454 DISPLAY_TEXT
455 ) = (select
456 B.DISPLAY_TEXT
457 from AMS_QUERY_COND_DISP_STRUCT_TL B
458 where B.QUERY_COND_DISP_STRUCT_ID = T.QUERY_COND_DISP_STRUCT_ID
459 and B.LANGUAGE = T.SOURCE_LANG)
460 where (
461 T.QUERY_COND_DISP_STRUCT_ID,
462 T.LANGUAGE
463 ) in (select
464 SUBT.QUERY_COND_DISP_STRUCT_ID,
465 SUBT.LANGUAGE
466 from AMS_QUERY_COND_DISP_STRUCT_TL SUBB, AMS_QUERY_COND_DISP_STRUCT_TL SUBT
467 where SUBB.QUERY_COND_DISP_STRUCT_ID = SUBT.QUERY_COND_DISP_STRUCT_ID
468 and SUBB.LANGUAGE = SUBT.SOURCE_LANG
469 and (SUBB.DISPLAY_TEXT <> SUBT.DISPLAY_TEXT
470 or (SUBB.DISPLAY_TEXT is null and SUBT.DISPLAY_TEXT is not null)
471 or (SUBB.DISPLAY_TEXT is not null and SUBT.DISPLAY_TEXT is null)
472 ));
473
474 insert into AMS_QUERY_COND_DISP_STRUCT_TL (
475 QUERY_COND_DISP_STRUCT_ID,
476 DISPLAY_TEXT,
477 LAST_UPDATE_DATE,
478 LAST_UPDATED_BY,
479 CREATION_DATE,
480 CREATED_BY,
481 LAST_UPDATE_LOGIN,
482 LANGUAGE,
483 SOURCE_LANG
484 ) select /*+ ORDERED */
485 B.QUERY_COND_DISP_STRUCT_ID,
486 B.DISPLAY_TEXT,
487 B.LAST_UPDATE_DATE,
488 B.LAST_UPDATED_BY,
489 B.CREATION_DATE,
490 B.CREATED_BY,
494 from AMS_QUERY_COND_DISP_STRUCT_TL B, FND_LANGUAGES L
491 B.LAST_UPDATE_LOGIN,
492 L.LANGUAGE_CODE,
493 B.SOURCE_LANG
495 where L.INSTALLED_FLAG in ('I', 'B')
496 and B.LANGUAGE = userenv('LANG')
497 and not exists
498 (select NULL
499 from AMS_QUERY_COND_DISP_STRUCT_TL T
500 where T.QUERY_COND_DISP_STRUCT_ID = B.QUERY_COND_DISP_STRUCT_ID
501 and T.LANGUAGE = L.LANGUAGE_CODE);
502 end ADD_LANGUAGE;
503
504
505 procedure TRANSLATE_ROW(
506 X_QUERY_COND_DISP_STRUCT_ID in NUMBER,
507 X_DISPLAY_TEXT in VARCHAR2,
508 x_owner in VARCHAR2,
509 x_custom_mode in VARCHAR2
510 ) is
511
512 cursor c_last_updated_by is
513 select last_updated_by
514 from AMS_QUERY_COND_DISP_STRUCT_TL
515 where QUERY_COND_DISP_STRUCT_ID = x_QUERY_COND_DISP_STRUCT_ID
516 and USERENV('LANG') = LANGUAGE;
517
518 l_luby number; --last updated by
519
520 begin
521
522 open c_last_updated_by;
523 fetch c_last_updated_by into l_luby;
524 close c_last_updated_by;
525
526 if (l_luby IN (0, 1, 2) or NVL(x_custom_mode, 'PRESERVE')='FORCE')
527 then
528 update AMS_QUERY_COND_DISP_STRUCT_TL set
529 DISPLAY_TEXT = nvl(x_DISPLAY_TEXT, DISPLAY_TEXT),
530 source_lang = userenv('LANG'),
531 last_update_date = sysdate,
532 last_updated_by = decode(x_owner, 'SEED', 1, 'ORACLE', 2, 'SYSADMIN', 0, -1),
533 last_update_login = 0
534 where QUERY_COND_DISP_STRUCT_ID = x_QUERY_COND_DISP_STRUCT_ID
535 and userenv('LANG') in (language, source_lang);
536 end if;
537 end TRANSLATE_ROW;
538
539
540 end AMS_QUERY_COND_DISP_STRUCT_PKG;