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