1 package body FND_REQUEST_SET_STAGES_PKG as
2 /* $Header: AFRSRSSB.pls 120.2 2005/08/19 20:20:34 ckclark ship $ */
3
4 procedure INSERT_ROW (
5 X_ROWID in out nocopy VARCHAR2,
6 X_REQUEST_SET_ID in NUMBER,
7 X_SET_APPLICATION_ID in NUMBER,
8 X_REQUEST_SET_STAGE_ID in NUMBER,
9 X_STAGE_NAME in VARCHAR2,
10 X_CRITICAL in VARCHAR2,
11 X_OUTCOME in VARCHAR2,
12 X_ALLOW_CONSTRAINTS_FLAG in VARCHAR2,
13 X_DISPLAY_SEQUENCE in NUMBER,
14 X_FUNCTION_APPLICATION_ID in NUMBER,
15 X_FUNCTION_ID in NUMBER,
16 X_SUCCESS_LINK in NUMBER,
17 X_WARNING_LINK in NUMBER,
18 X_ERROR_LINK in NUMBER,
19 X_CONCURRENT_PROGRAM_ID in NUMBER,
20 X_X in NUMBER,
21 X_Y in NUMBER,
22 X_ICON_NAME in VARCHAR2,
23 X_USER_STAGE_NAME in VARCHAR2,
24 X_DESCRIPTION in VARCHAR2,
25 X_CREATION_DATE in DATE,
26 X_CREATED_BY in NUMBER,
27 X_LAST_UPDATE_DATE in DATE,
28 X_LAST_UPDATED_BY in NUMBER,
29 X_LAST_UPDATE_LOGIN in NUMBER
30 ) is
31 cursor C is select ROWID from FND_REQUEST_SET_STAGES
32 where REQUEST_SET_ID = X_REQUEST_SET_ID
33 and SET_APPLICATION_ID = X_SET_APPLICATION_ID
34 and REQUEST_SET_STAGE_ID = X_REQUEST_SET_STAGE_ID
35 ;
36 begin
37 insert into FND_REQUEST_SET_STAGES (
38 SET_APPLICATION_ID,
39 REQUEST_SET_ID,
40 REQUEST_SET_STAGE_ID,
41 STAGE_NAME,
42 CRITICAL,
43 OUTCOME,
44 ALLOW_CONSTRAINTS_FLAG,
45 DISPLAY_SEQUENCE,
46 FUNCTION_APPLICATION_ID,
47 FUNCTION_ID,
48 SUCCESS_LINK,
49 WARNING_LINK,
50 ERROR_LINK,
51 CONCURRENT_PROGRAM_ID,
52 X,
53 Y,
54 ICON_NAME,
55 CREATION_DATE,
56 CREATED_BY,
57 LAST_UPDATE_DATE,
58 LAST_UPDATED_BY,
59 LAST_UPDATE_LOGIN
60 ) values (
61 X_SET_APPLICATION_ID,
62 X_REQUEST_SET_ID,
63 X_REQUEST_SET_STAGE_ID,
64 X_STAGE_NAME,
65 X_CRITICAL,
66 X_OUTCOME,
67 X_ALLOW_CONSTRAINTS_FLAG,
68 X_DISPLAY_SEQUENCE,
69 X_FUNCTION_APPLICATION_ID,
70 X_FUNCTION_ID,
71 X_SUCCESS_LINK,
72 X_WARNING_LINK,
73 X_ERROR_LINK,
74 X_CONCURRENT_PROGRAM_ID,
75 X_X,
76 X_Y,
77 X_ICON_NAME,
78 X_CREATION_DATE,
79 X_CREATED_BY,
80 X_LAST_UPDATE_DATE,
81 X_LAST_UPDATED_BY,
82 X_LAST_UPDATE_LOGIN
83 );
84
85 insert into FND_REQUEST_SET_STAGES_TL (
86 SET_APPLICATION_ID,
87 REQUEST_SET_ID,
88 REQUEST_SET_STAGE_ID,
89 CREATION_DATE,
90 CREATED_BY,
91 LAST_UPDATE_DATE,
92 LAST_UPDATED_BY,
93 LAST_UPDATE_LOGIN,
94 USER_STAGE_NAME,
95 DESCRIPTION,
96 LANGUAGE,
97 SOURCE_LANG
98 ) select
99 X_SET_APPLICATION_ID,
100 X_REQUEST_SET_ID,
101 X_REQUEST_SET_STAGE_ID,
102 X_CREATION_DATE,
103 X_CREATED_BY,
104 X_LAST_UPDATE_DATE,
105 X_LAST_UPDATED_BY,
106 X_LAST_UPDATE_LOGIN,
107 X_USER_STAGE_NAME,
108 X_DESCRIPTION,
109 L.LANGUAGE_CODE,
110 userenv('LANG')
111 from FND_LANGUAGES L
112 where L.INSTALLED_FLAG in ('I', 'B')
113 and not exists
114 (select NULL
115 from FND_REQUEST_SET_STAGES_TL T
116 where T.REQUEST_SET_ID = X_REQUEST_SET_ID
117 and T.SET_APPLICATION_ID = X_SET_APPLICATION_ID
118 and T.REQUEST_SET_STAGE_ID = X_REQUEST_SET_STAGE_ID
119 and T.LANGUAGE = L.LANGUAGE_CODE);
120
121 open c;
122 fetch c into X_ROWID;
123 if (c%notfound) then
124 close c;
125 raise no_data_found;
126 end if;
127 close c;
128
129 end INSERT_ROW;
130
131 procedure LOCK_ROW (
132 X_REQUEST_SET_ID in NUMBER,
133 X_SET_APPLICATION_ID in NUMBER,
134 X_REQUEST_SET_STAGE_ID in NUMBER,
135 X_STAGE_NAME in VARCHAR2,
136 X_CRITICAL in VARCHAR2,
137 X_OUTCOME in VARCHAR2,
138 X_ALLOW_CONSTRAINTS_FLAG in VARCHAR2,
139 X_DISPLAY_SEQUENCE in NUMBER,
140 X_FUNCTION_APPLICATION_ID in NUMBER,
141 X_FUNCTION_ID in NUMBER,
142 X_SUCCESS_LINK in NUMBER,
143 X_WARNING_LINK in NUMBER,
144 X_ERROR_LINK in NUMBER,
145 X_CONCURRENT_PROGRAM_ID in NUMBER,
146 X_X in NUMBER,
147 X_Y in NUMBER,
148 X_ICON_NAME in VARCHAR2,
149 X_USER_STAGE_NAME in VARCHAR2,
150 X_DESCRIPTION in VARCHAR2
151 ) is
152 cursor c is select
153 STAGE_NAME,
154 CRITICAL,
155 OUTCOME,
156 ALLOW_CONSTRAINTS_FLAG,
157 DISPLAY_SEQUENCE,
158 FUNCTION_APPLICATION_ID,
159 FUNCTION_ID,
160 SUCCESS_LINK,
161 WARNING_LINK,
162 ERROR_LINK,
163 CONCURRENT_PROGRAM_ID,
164 X,
165 Y,
166 ICON_NAME
167 from FND_REQUEST_SET_STAGES
168 where REQUEST_SET_ID = X_REQUEST_SET_ID
169 and SET_APPLICATION_ID = X_SET_APPLICATION_ID
170 and REQUEST_SET_STAGE_ID = X_REQUEST_SET_STAGE_ID
171 for update of REQUEST_SET_ID nowait;
172 recinfo c%rowtype;
173
174 cursor c1 is select
175 USER_STAGE_NAME,
176 DESCRIPTION
177 from FND_REQUEST_SET_STAGES_TL
178 where REQUEST_SET_ID = X_REQUEST_SET_ID
179 and SET_APPLICATION_ID = X_SET_APPLICATION_ID
180 and REQUEST_SET_STAGE_ID = X_REQUEST_SET_STAGE_ID
181 and LANGUAGE = userenv('LANG')
182 for update of REQUEST_SET_ID nowait;
183 tlinfo c1%rowtype;
184
185 begin
186 open c;
187 fetch c into recinfo;
188 if (c%notfound) then
189 close c;
190 fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
191 app_exception.raise_exception;
192 end if;
193 close c;
194 if ( (recinfo.STAGE_NAME = X_STAGE_NAME)
195 AND (recinfo.CRITICAL = X_CRITICAL)
196 AND (recinfo.OUTCOME = X_OUTCOME)
197 AND (recinfo.ALLOW_CONSTRAINTS_FLAG = X_ALLOW_CONSTRAINTS_FLAG)
198 AND (recinfo.DISPLAY_SEQUENCE = X_DISPLAY_SEQUENCE)
199 AND ((recinfo.FUNCTION_APPLICATION_ID = X_FUNCTION_APPLICATION_ID)
200 OR ((recinfo.FUNCTION_APPLICATION_ID is null) AND (X_FUNCTION_APPLICATION_ID is null)))
201 AND ((recinfo.FUNCTION_ID = X_FUNCTION_ID)
202 OR ((recinfo.FUNCTION_ID is null) AND (X_FUNCTION_ID is null)))
203 AND ((recinfo.SUCCESS_LINK = X_SUCCESS_LINK)
204 OR ((recinfo.SUCCESS_LINK is null) AND (X_SUCCESS_LINK is null)))
205 AND ((recinfo.WARNING_LINK = X_WARNING_LINK)
206 OR ((recinfo.WARNING_LINK is null) AND (X_WARNING_LINK is null)))
207 AND ((recinfo.ERROR_LINK = X_ERROR_LINK)
208 OR ((recinfo.ERROR_LINK is null) AND (X_ERROR_LINK is null)))
209 AND ((recinfo.CONCURRENT_PROGRAM_ID = X_CONCURRENT_PROGRAM_ID)
210 OR ((recinfo.CONCURRENT_PROGRAM_ID is null) AND (X_CONCURRENT_PROGRAM_ID is null)))
211 AND ((recinfo.X = X_X)
212 OR ((recinfo.X is null) AND (X_X is null)))
213 AND ((recinfo.Y = X_Y)
214 OR ((recinfo.Y is null) AND (X_Y is null)))
215 AND ((recinfo.ICON_NAME = X_ICON_NAME)
216 OR ((recinfo.ICON_NAME is null) AND (X_ICON_NAME is null)))
217 ) then
218 null;
219 else
220 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
221 app_exception.raise_exception;
222 end if;
223
224 open c1;
225 fetch c1 into tlinfo;
226 if (c1%notfound) then
227 close c1;
228 return;
229 end if;
230 close c1;
231
232 if ( (tlinfo.USER_STAGE_NAME = X_USER_STAGE_NAME)
233 AND ((tlinfo.DESCRIPTION = X_DESCRIPTION)
234 OR ((tlinfo.DESCRIPTION is null) AND (X_DESCRIPTION is null)))
235 ) then
236 null;
237 else
238 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
239 app_exception.raise_exception;
240 end if;
241 return;
242 end LOCK_ROW;
243
244 procedure UPDATE_ROW (
245 X_REQUEST_SET_ID in NUMBER,
246 X_SET_APPLICATION_ID in NUMBER,
247 X_REQUEST_SET_STAGE_ID in NUMBER,
248 X_STAGE_NAME in VARCHAR2,
249 X_CRITICAL in VARCHAR2,
250 X_OUTCOME in VARCHAR2,
251 X_ALLOW_CONSTRAINTS_FLAG in VARCHAR2,
252 X_DISPLAY_SEQUENCE in NUMBER,
253 X_FUNCTION_APPLICATION_ID in NUMBER,
254 X_FUNCTION_ID in NUMBER,
255 X_SUCCESS_LINK in NUMBER,
256 X_WARNING_LINK in NUMBER,
257 X_ERROR_LINK in NUMBER,
258 X_CONCURRENT_PROGRAM_ID in NUMBER,
259 X_X in NUMBER,
260 X_Y in NUMBER,
261 X_ICON_NAME in VARCHAR2,
262 X_USER_STAGE_NAME in VARCHAR2,
263 X_DESCRIPTION in VARCHAR2,
264 X_LAST_UPDATE_DATE in DATE,
265 X_LAST_UPDATED_BY in NUMBER,
266 X_LAST_UPDATE_LOGIN in NUMBER
267 ) is
268 begin
269 update FND_REQUEST_SET_STAGES set
270 STAGE_NAME = X_STAGE_NAME,
271 CRITICAL = X_CRITICAL,
272 OUTCOME = X_OUTCOME,
273 ALLOW_CONSTRAINTS_FLAG = X_ALLOW_CONSTRAINTS_FLAG,
274 DISPLAY_SEQUENCE = X_DISPLAY_SEQUENCE,
275 FUNCTION_APPLICATION_ID = X_FUNCTION_APPLICATION_ID,
276 FUNCTION_ID = X_FUNCTION_ID,
277 SUCCESS_LINK = X_SUCCESS_LINK,
278 WARNING_LINK = X_WARNING_LINK,
279 ERROR_LINK = X_ERROR_LINK,
280 CONCURRENT_PROGRAM_ID = X_CONCURRENT_PROGRAM_ID,
281 X = X_X,
282 Y = X_Y,
283 ICON_NAME = X_ICON_NAME,
284 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
285 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
286 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
287 where REQUEST_SET_ID = X_REQUEST_SET_ID
288 and SET_APPLICATION_ID = X_SET_APPLICATION_ID
289 and REQUEST_SET_STAGE_ID = X_REQUEST_SET_STAGE_ID;
290
291 if (sql%notfound) then
292 raise no_data_found;
293 end if;
294
295 update FND_REQUEST_SET_STAGES_TL set
296 USER_STAGE_NAME = X_USER_STAGE_NAME,
297 DESCRIPTION = X_DESCRIPTION,
298 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
299 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
300 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
301 SOURCE_LANG = userenv('LANG')
302 where REQUEST_SET_ID = X_REQUEST_SET_ID
303 and SET_APPLICATION_ID = X_SET_APPLICATION_ID
304 and REQUEST_SET_STAGE_ID = X_REQUEST_SET_STAGE_ID
305 and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
306
307 if (sql%notfound) then
308 raise no_data_found;
309 end if;
310 end UPDATE_ROW;
311
312 procedure DELETE_ROW (
313 X_REQUEST_SET_ID in NUMBER,
314 X_SET_APPLICATION_ID in NUMBER,
315 X_REQUEST_SET_STAGE_ID in NUMBER
316 ) is
317
318 -- This added code fixes the problem of having success, error, and/or warning links
319 -- pointing to stages which have been deleted. Before the stage gets deleted, the
320 -- following code checks to see if any other stage has a link pointing to the
321 -- stage which is about to be deleted. If so, the link is set to null.
322 --BUG 871226 (Begin of Added Declarations)
323
324 bad_stage_id NUMBER(15);
325
326 bad_SL NUMBER(15);
327 bad_WL NUMBER(15);
328 bad_EL NUMBER(15);
329
330 TYPE set_app_id_table IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
331 TYPE req_set_id_table IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
332 TYPE req_set_stage_id_table IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
333
334 set_app_id_array set_app_id_table;
335 req_set_id_array req_set_id_table;
336 req_set_stage_id_array req_set_stage_id_table;
337
338 bad_link_counter BINARY_INTEGER := 0;
339
340 CURSOR get_bad_links IS SELECT set_application_id, request_set_id, request_set_stage_id
341 FROM fnd_request_set_stages_vl WHERE (success_link = bad_stage_id)
342 OR (warning_link = bad_stage_id)
343 OR (error_link = bad_stage_id);
344
345 --BUG 871226 (End of Added Declarations)
346
347 begin
348 -- Disable the concurrent program (if any).
349 begin
350 update fnd_concurrent_programs
351 set enabled_flag='N'
352 where application_id = x_set_application_id
353 and concurrent_program_id in
354 (select concurrent_program_id
355 from fnd_request_set_stages
356 where set_application_id = x_set_application_id
357 and request_set_id = x_request_set_id
358 and request_set_stage_id = x_request_set_stage_id
359 and concurrent_program_id is null);
360
361 --BUG 871226 (Begin of Added Code)
362
363 SELECT request_set_stage_id INTO bad_stage_id
364 FROM fnd_request_set_stages_vl
365 WHERE set_application_id = x_set_application_id
366 AND request_set_id = x_request_set_id
367 AND request_set_stage_id = x_request_set_stage_id;
368
369 OPEN get_bad_links;
370
371 LOOP
372 FETCH get_bad_links INTO set_app_id_array(bad_link_counter),
373 req_set_id_array(bad_link_counter),
374 req_set_stage_id_array(bad_link_counter);
375
376 EXIT WHEN get_bad_links%NOTFOUND;
377 bad_link_counter := bad_link_counter + 1; -- counter gets inc 1 too high here
378 END LOOP;
379
380 CLOSE get_bad_links;
381
382
383 FOR array_index IN 0..bad_link_counter - 1 LOOP -- dec 1 from counter because too high
384
385 SELECT success_link,warning_link,error_link INTO bad_SL,bad_WL,bad_EL
386 FROM fnd_request_set_stages_vl WHERE
387 set_application_id = set_app_id_array(array_index) AND
388 request_set_id = req_set_id_array(array_index) AND
389 request_set_stage_id = req_set_stage_id_array(array_index);
390
391 IF (bad_SL = bad_stage_id ) THEN
392 UPDATE fnd_request_set_stages SET success_link = NULL WHERE
393 set_application_id = set_app_id_array(array_index) AND
394 request_set_id = req_set_id_array(array_index) AND
395 request_set_stage_id = req_set_stage_id_array(array_index);
396 END IF;
397
398 IF (bad_WL = bad_stage_id) THEN
399 UPDATE fnd_request_set_stages SET warning_link = NULL WHERE
400 set_application_id = set_app_id_array(array_index) AND
401 request_set_id = req_set_id_array(array_index) AND
402 request_set_stage_id = req_set_stage_id_array(array_index);
403 END IF;
404
405 IF (bad_EL = bad_stage_id) THEN
406 UPDATE fnd_request_set_stages SET error_link = NULL WHERE
407 set_application_id = set_app_id_array(array_index) AND
408 request_set_id = req_set_id_array(array_index) AND
409 request_set_stage_id = req_set_stage_id_array(array_index);
410 END IF;
411 END LOOP;
412 --BUG 871226 (End of Added Code)
413
414 exception
415 when no_data_found then -- We don't care.
416 null;
417 end;
418
419 delete from FND_REQUEST_SET_PROGRAM_ARGS
420 where (application_id, request_set_id, request_set_program_id)
421 in (select set_application_id, request_set_id, request_set_program_id
422 from fnd_request_set_programs
423 where set_application_id = x_set_application_id
424 and request_set_id = x_request_set_id
425 and request_set_stage_id = x_request_set_stage_id);
426
427 delete from fnd_request_set_programs
428 where set_application_id = x_set_application_id
429 and request_set_id = x_request_set_id
430 and request_set_stage_id = x_request_set_stage_id;
431
432 delete from FND_STAGE_FN_PARAMETER_VALUES
433 where SET_APPLICATION_ID = X_SET_APPLICATION_ID
434 and REQUEST_SET_ID = X_REQUEST_SET_ID
435 and REQUEST_SET_STAGE_ID = X_REQUEST_SET_STAGE_ID;
436
437 delete from FND_REQUEST_SET_STAGES
438 where SET_APPLICATION_ID = X_SET_APPLICATION_ID
439 and REQUEST_SET_ID = X_REQUEST_SET_ID
440 and REQUEST_SET_STAGE_ID = X_REQUEST_SET_STAGE_ID;
441
442 if (sql%notfound) then
443 raise no_data_found;
444 end if;
445
446 delete from FND_REQUEST_SET_STAGES_TL
447 where SET_APPLICATION_ID = X_SET_APPLICATION_ID
448 and REQUEST_SET_ID = X_REQUEST_SET_ID
449 and REQUEST_SET_STAGE_ID = X_REQUEST_SET_STAGE_ID;
450
451 if (sql%notfound) then
452 raise no_data_found;
453 end if;
454 end DELETE_ROW;
455
456
457 procedure ADD_LANGUAGE
458 is
459 begin
460 /* Mar/19/03 requested by Ric Ginsberg */
461 /* The following delete and update statements are commented out */
462 /* as a quick workaround to fix the time-consuming table handler issue */
463 /* Eventually we'll need to turn them into a separate fix_language procedure */
464 /*
465
466 delete from FND_REQUEST_SET_STAGES_TL T
467 where not exists
468 (select NULL
469 from FND_REQUEST_SET_STAGES B
470 where B.REQUEST_SET_ID = T.REQUEST_SET_ID
471 and B.SET_APPLICATION_ID = T.SET_APPLICATION_ID
472 and B.REQUEST_SET_STAGE_ID = T.REQUEST_SET_STAGE_ID
473 );
474
475 update FND_REQUEST_SET_STAGES_TL T set (
476 USER_STAGE_NAME,
477 DESCRIPTION
478 ) = (select
479 B.USER_STAGE_NAME,
480 B.DESCRIPTION
481 from FND_REQUEST_SET_STAGES_TL B
482 where B.REQUEST_SET_ID = T.REQUEST_SET_ID
483 and B.SET_APPLICATION_ID = T.SET_APPLICATION_ID
484 and B.REQUEST_SET_STAGE_ID = T.REQUEST_SET_STAGE_ID
485 and B.LANGUAGE = T.SOURCE_LANG)
486 where (
487 T.REQUEST_SET_ID,
488 T.SET_APPLICATION_ID,
489 T.REQUEST_SET_STAGE_ID,
490 T.LANGUAGE
491 ) in (select
492 SUBT.REQUEST_SET_ID,
493 SUBT.SET_APPLICATION_ID,
494 SUBT.REQUEST_SET_STAGE_ID,
495 SUBT.LANGUAGE
496 from FND_REQUEST_SET_STAGES_TL SUBB, FND_REQUEST_SET_STAGES_TL SUBT
497 where SUBB.REQUEST_SET_ID = SUBT.REQUEST_SET_ID
498 and SUBB.SET_APPLICATION_ID = SUBT.SET_APPLICATION_ID
499 and SUBB.REQUEST_SET_STAGE_ID = SUBT.REQUEST_SET_STAGE_ID
500 and SUBB.LANGUAGE = SUBT.SOURCE_LANG
501 and (SUBB.USER_STAGE_NAME <> SUBT.USER_STAGE_NAME
502 or SUBB.DESCRIPTION <> SUBT.DESCRIPTION
503 or (SUBB.DESCRIPTION is null and SUBT.DESCRIPTION is not null)
504 or (SUBB.DESCRIPTION is not null and SUBT.DESCRIPTION is null)
505 ));
506 */
507
508 insert into FND_REQUEST_SET_STAGES_TL (
509 SET_APPLICATION_ID,
510 REQUEST_SET_ID,
511 REQUEST_SET_STAGE_ID,
512 CREATION_DATE,
513 CREATED_BY,
514 LAST_UPDATE_DATE,
515 LAST_UPDATED_BY,
516 LAST_UPDATE_LOGIN,
517 USER_STAGE_NAME,
518 DESCRIPTION,
519 LANGUAGE,
520 SOURCE_LANG
521 ) select
522 B.SET_APPLICATION_ID,
523 B.REQUEST_SET_ID,
524 B.REQUEST_SET_STAGE_ID,
525 B.CREATION_DATE,
526 B.CREATED_BY,
527 B.LAST_UPDATE_DATE,
528 B.LAST_UPDATED_BY,
529 B.LAST_UPDATE_LOGIN,
530 B.USER_STAGE_NAME,
531 B.DESCRIPTION,
532 L.LANGUAGE_CODE,
533 B.SOURCE_LANG
534 from FND_REQUEST_SET_STAGES_TL B, FND_LANGUAGES L
535 where L.INSTALLED_FLAG in ('I', 'B')
536 and B.LANGUAGE = userenv('LANG')
537 and not exists
538 (select NULL
539 from FND_REQUEST_SET_STAGES_TL T
540 where T.REQUEST_SET_ID = B.REQUEST_SET_ID
541 and T.SET_APPLICATION_ID = B.SET_APPLICATION_ID
542 and T.REQUEST_SET_STAGE_ID = B.REQUEST_SET_STAGE_ID
543 and T.LANGUAGE = L.LANGUAGE_CODE);
544 end ADD_LANGUAGE;
545
546 end FND_REQUEST_SET_STAGES_PKG;