DBA Data[Home] [Help]

PACKAGE BODY: APPS.FND_CONCURRENT_QUEUES_PKG

Source


1 package body FND_CONCURRENT_QUEUES_PKG as
2 /* $Header: AFCPDCQB.pls 120.2 2005/08/19 18:50:39 tkamiya ship $ */
3 
4 procedure INSERT_ROW (
5   X_ROWID in out NOCOPY VARCHAR2,
6   X_APPLICATION_ID in NUMBER,
7   X_CONCURRENT_QUEUE_ID in NUMBER,
8   X_RESOURCE_CONSUMER_GROUP in VARCHAR2,
9   X_CONCURRENT_QUEUE_NAME in VARCHAR2,
10   X_PROCESSOR_APPLICATION_ID in NUMBER,
11   X_CONCURRENT_PROCESSOR_ID in NUMBER,
12   X_MAX_PROCESSES in NUMBER,
13   X_RUNNING_PROCESSES in NUMBER,
14   X_CACHE_SIZE in NUMBER,
15   X_MIN_PROCESSES in NUMBER,
16   X_TARGET_PROCESSES in NUMBER,
17   X_TARGET_NODE in VARCHAR2,
18   X_TARGET_QUEUE in VARCHAR2,
19   X_SLEEP_SECONDS in NUMBER,
20   X_CONTROL_CODE in VARCHAR2,
21   X_DIAGNOSTIC_LEVEL in VARCHAR2,
22   X_MANAGER_TYPE in VARCHAR2,
23   X_NODE_NAME in VARCHAR2,
24   X_NODE_NAME2 in VARCHAR2,
25   X_OS_QUEUE in VARCHAR2,
26   X_OS_QUEUE2 in VARCHAR2,
27   X_DATA_GROUP_ID in NUMBER,
28   X_RESTART_TYPE in VARCHAR2,
29   X_RESTART_INTERVAL in NUMBER,
30   X_ATTRIBUTE_CATEGORY in VARCHAR2,
31   X_ATTRIBUTE in VARCHAR2,
32   X_ATTRIBUTE1 in VARCHAR2,
33   X_ATTRIBUTE2 in VARCHAR2,
34   X_ATTRIBUTE3 in VARCHAR2,
35   X_ATTRIBUTE4 in VARCHAR2,
36   X_ATTRIBUTE5 in VARCHAR2,
37   X_ATTRIBUTE6 in VARCHAR2,
38   X_ATTRIBUTE7 in VARCHAR2,
39   X_ATTRIBUTE8 in VARCHAR2,
40   X_ATTRIBUTE9 in VARCHAR2,
41   X_ATTRIBUTE10 in VARCHAR2,
42   X_ATTRIBUTE11 in VARCHAR2,
43   X_ATTRIBUTE12 in VARCHAR2,
44   X_ENABLED_FLAG in VARCHAR2,
45   X_DESCRIPTION in VARCHAR2,
46   X_USER_CONCURRENT_QUEUE_NAME in VARCHAR2,
47   X_CREATION_DATE in DATE,
48   X_CREATED_BY in NUMBER,
49   X_LAST_UPDATE_DATE in DATE,
50   X_LAST_UPDATED_BY in NUMBER,
51   X_LAST_UPDATE_LOGIN in NUMBER
52 ) is
53   cursor C is select ROWID from FND_CONCURRENT_QUEUES
54     where APPLICATION_ID = X_APPLICATION_ID
55     and CONCURRENT_QUEUE_ID = X_CONCURRENT_QUEUE_ID
56     ;
57 begin
58   insert into FND_CONCURRENT_QUEUES (
59     RESOURCE_CONSUMER_GROUP,
60     APPLICATION_ID,
61     CONCURRENT_QUEUE_ID,
62     CONCURRENT_QUEUE_NAME,
63     PROCESSOR_APPLICATION_ID,
64     CONCURRENT_PROCESSOR_ID,
65     MAX_PROCESSES,
66     RUNNING_PROCESSES,
67     CACHE_SIZE,
68     MIN_PROCESSES,
69     TARGET_PROCESSES,
70     TARGET_NODE,
71     TARGET_QUEUE,
72     SLEEP_SECONDS,
73     CONTROL_CODE,
74     DIAGNOSTIC_LEVEL,
75     MANAGER_TYPE,
76     NODE_NAME,
77     NODE_NAME2,
78     OS_QUEUE,
79     OS_QUEUE2,
80     DATA_GROUP_ID,
81     RESTART_TYPE,
82     RESTART_INTERVAL,
83     ATTRIBUTE_CATEGORY,
84     ATTRIBUTE,
85     ATTRIBUTE1,
86     ATTRIBUTE2,
87     ATTRIBUTE3,
88     ATTRIBUTE4,
89     ATTRIBUTE5,
90     ATTRIBUTE6,
91     ATTRIBUTE7,
92     ATTRIBUTE8,
93     ATTRIBUTE9,
94     ATTRIBUTE10,
95     ATTRIBUTE11,
96     ATTRIBUTE12,
97     ENABLED_FLAG,
98     CREATION_DATE,
99     CREATED_BY,
100     LAST_UPDATE_DATE,
101     LAST_UPDATED_BY,
102     LAST_UPDATE_LOGIN
103   ) values (
104     X_RESOURCE_CONSUMER_GROUP,
105     X_APPLICATION_ID,
106     X_CONCURRENT_QUEUE_ID,
107     X_CONCURRENT_QUEUE_NAME,
108     X_PROCESSOR_APPLICATION_ID,
109     X_CONCURRENT_PROCESSOR_ID,
110     X_MAX_PROCESSES,
111     X_RUNNING_PROCESSES,
112     X_CACHE_SIZE,
113     X_MIN_PROCESSES,
114     X_TARGET_PROCESSES,
115     X_TARGET_NODE,
116     X_TARGET_QUEUE,
117     X_SLEEP_SECONDS,
118     X_CONTROL_CODE,
119     X_DIAGNOSTIC_LEVEL,
120     X_MANAGER_TYPE,
121     X_NODE_NAME,
122     X_NODE_NAME2,
123     X_OS_QUEUE,
124     X_OS_QUEUE2,
125     X_DATA_GROUP_ID,
126     X_RESTART_TYPE,
127     X_RESTART_INTERVAL,
128     X_ATTRIBUTE_CATEGORY,
129     X_ATTRIBUTE,
130     X_ATTRIBUTE1,
131     X_ATTRIBUTE2,
132     X_ATTRIBUTE3,
133     X_ATTRIBUTE4,
134     X_ATTRIBUTE5,
135     X_ATTRIBUTE6,
136     X_ATTRIBUTE7,
137     X_ATTRIBUTE8,
138     X_ATTRIBUTE9,
139     X_ATTRIBUTE10,
140     X_ATTRIBUTE11,
141     X_ATTRIBUTE12,
142     X_ENABLED_FLAG,
143     X_CREATION_DATE,
144     X_CREATED_BY,
145     X_LAST_UPDATE_DATE,
146     X_LAST_UPDATED_BY,
147     X_LAST_UPDATE_LOGIN
148   );
149 
150   insert into FND_CONCURRENT_QUEUES_TL (
151     USER_CONCURRENT_QUEUE_NAME,
152     APPLICATION_ID,
153     CONCURRENT_QUEUE_ID,
154     CONCURRENT_QUEUE_NAME,
155     CREATION_DATE,
156     CREATED_BY,
157     LAST_UPDATE_DATE,
158     LAST_UPDATED_BY,
159     LAST_UPDATE_LOGIN,
160     DESCRIPTION,
161     LANGUAGE,
162     SOURCE_LANG
163   ) select
164     X_USER_CONCURRENT_QUEUE_NAME,
165     X_APPLICATION_ID,
166     X_CONCURRENT_QUEUE_ID,
167     X_CONCURRENT_QUEUE_NAME,
168     X_CREATION_DATE,
169     X_CREATED_BY,
170     X_LAST_UPDATE_DATE,
171     X_LAST_UPDATED_BY,
172     X_LAST_UPDATE_LOGIN,
173     X_DESCRIPTION,
174     L.LANGUAGE_CODE,
175     userenv('LANG')
176   from FND_LANGUAGES L
177   where L.INSTALLED_FLAG in ('I', 'B')
178   and not exists
179     (select NULL
180     from FND_CONCURRENT_QUEUES_TL T
181     where T.APPLICATION_ID = X_APPLICATION_ID
182     and T.CONCURRENT_QUEUE_ID = X_CONCURRENT_QUEUE_ID
183     and T.LANGUAGE = L.LANGUAGE_CODE);
184 
185   open c;
186   fetch c into X_ROWID;
187   if (c%notfound) then
188     close c;
189     raise no_data_found;
190   end if;
191   close c;
192 
193 end INSERT_ROW;
194 
195 procedure LOCK_ROW (
196   X_APPLICATION_ID in NUMBER,
197   X_CONCURRENT_QUEUE_ID in NUMBER,
198   X_RESOURCE_CONSUMER_GROUP in VARCHAR2,
199   X_CONCURRENT_QUEUE_NAME in VARCHAR2,
200   X_PROCESSOR_APPLICATION_ID in NUMBER,
201   X_CONCURRENT_PROCESSOR_ID in NUMBER,
202   X_MAX_PROCESSES in NUMBER,
203   X_RUNNING_PROCESSES in NUMBER,
204   X_CACHE_SIZE in NUMBER,
205   X_MIN_PROCESSES in NUMBER,
206   X_TARGET_PROCESSES in NUMBER,
207   X_TARGET_NODE in VARCHAR2,
208   X_TARGET_QUEUE in VARCHAR2,
209   X_SLEEP_SECONDS in NUMBER,
210   X_CONTROL_CODE in VARCHAR2,
211   X_DIAGNOSTIC_LEVEL in VARCHAR2,
212   X_MANAGER_TYPE in VARCHAR2,
213   X_NODE_NAME in VARCHAR2,
214   X_NODE_NAME2 in VARCHAR2,
215   X_OS_QUEUE in VARCHAR2,
216   X_OS_QUEUE2 in VARCHAR2,
217   X_DATA_GROUP_ID in NUMBER,
218   X_RESTART_TYPE in VARCHAR2,
219   X_RESTART_INTERVAL in NUMBER,
220   X_ATTRIBUTE_CATEGORY in VARCHAR2,
221   X_ATTRIBUTE in VARCHAR2,
222   X_ATTRIBUTE1 in VARCHAR2,
223   X_ATTRIBUTE2 in VARCHAR2,
224   X_ATTRIBUTE3 in VARCHAR2,
225   X_ATTRIBUTE4 in VARCHAR2,
226   X_ATTRIBUTE5 in VARCHAR2,
227   X_ATTRIBUTE6 in VARCHAR2,
228   X_ATTRIBUTE7 in VARCHAR2,
229   X_ATTRIBUTE8 in VARCHAR2,
230   X_ATTRIBUTE9 in VARCHAR2,
231   X_ATTRIBUTE10 in VARCHAR2,
232   X_ATTRIBUTE11 in VARCHAR2,
233   X_ATTRIBUTE12 in VARCHAR2,
234   X_ENABLED_FLAG in VARCHAR2,
235   X_DESCRIPTION in VARCHAR2,
236   X_USER_CONCURRENT_QUEUE_NAME in VARCHAR2
237 ) is
238   cursor c is select
239       RESOURCE_CONSUMER_GROUP,
240       CONCURRENT_QUEUE_NAME,
241       PROCESSOR_APPLICATION_ID,
242       CONCURRENT_PROCESSOR_ID,
243       MAX_PROCESSES,
244       RUNNING_PROCESSES,
245       CACHE_SIZE,
246       MIN_PROCESSES,
247       TARGET_PROCESSES,
248       TARGET_NODE,
249       TARGET_QUEUE,
250       SLEEP_SECONDS,
251       CONTROL_CODE,
252       DIAGNOSTIC_LEVEL,
253       MANAGER_TYPE,
254       NODE_NAME,
255       NODE_NAME2,
256       OS_QUEUE,
257       OS_QUEUE2,
258       DATA_GROUP_ID,
259       RESTART_TYPE,
260       RESTART_INTERVAL,
261       ATTRIBUTE_CATEGORY,
262       ATTRIBUTE,
263       ATTRIBUTE1,
264       ATTRIBUTE2,
265       ATTRIBUTE3,
266       ATTRIBUTE4,
267       ATTRIBUTE5,
268       ATTRIBUTE6,
269       ATTRIBUTE7,
270       ATTRIBUTE8,
271       ATTRIBUTE9,
272       ATTRIBUTE10,
273       ATTRIBUTE11,
274       ATTRIBUTE12,
275       ENABLED_FLAG
276     from FND_CONCURRENT_QUEUES
277     where APPLICATION_ID = X_APPLICATION_ID
278     and CONCURRENT_QUEUE_ID = X_CONCURRENT_QUEUE_ID
279     for update of APPLICATION_ID nowait;
280   recinfo c%rowtype;
281 
282   cursor c1 is select
283       DESCRIPTION,
284       USER_CONCURRENT_QUEUE_NAME,
285       decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
286     from FND_CONCURRENT_QUEUES_TL
287     where APPLICATION_ID = X_APPLICATION_ID
288     and CONCURRENT_QUEUE_ID = X_CONCURRENT_QUEUE_ID
289     and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
290     for update of APPLICATION_ID nowait;
291 begin
292   open c;
293   fetch c into recinfo;
294   if (c%notfound) then
295     close c;
296     fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
297     app_exception.raise_exception;
298   end if;
299   close c;
300   if (    ((recinfo.RESOURCE_CONSUMER_GROUP = X_RESOURCE_CONSUMER_GROUP)
301            OR ((recinfo.RESOURCE_CONSUMER_GROUP is null) AND (X_RESOURCE_CONSUMER_GROUP is null)))
302       AND (recinfo.CONCURRENT_QUEUE_NAME = X_CONCURRENT_QUEUE_NAME)
303       AND (recinfo.PROCESSOR_APPLICATION_ID = X_PROCESSOR_APPLICATION_ID)
304       AND (recinfo.CONCURRENT_PROCESSOR_ID = X_CONCURRENT_PROCESSOR_ID)
305       AND (recinfo.MAX_PROCESSES = X_MAX_PROCESSES)
306       AND (recinfo.RUNNING_PROCESSES = X_RUNNING_PROCESSES)
307       AND ((recinfo.CACHE_SIZE = X_CACHE_SIZE)
308            OR ((recinfo.CACHE_SIZE is null) AND (X_CACHE_SIZE is null)))
309       AND ((recinfo.MIN_PROCESSES = X_MIN_PROCESSES)
310            OR ((recinfo.MIN_PROCESSES is null) AND (X_MIN_PROCESSES is null)))
311       AND ((recinfo.TARGET_PROCESSES = X_TARGET_PROCESSES)
312            OR ((recinfo.TARGET_PROCESSES is null) AND (X_TARGET_PROCESSES is null)))
313       AND ((recinfo.TARGET_NODE = X_TARGET_NODE)
314            OR ((recinfo.TARGET_NODE is null) AND (X_TARGET_NODE is null)))
315       AND ((recinfo.TARGET_QUEUE = X_TARGET_QUEUE)
316            OR ((recinfo.TARGET_QUEUE is null) AND (X_TARGET_QUEUE is null)))
317       AND ((recinfo.SLEEP_SECONDS = X_SLEEP_SECONDS)
318            OR ((recinfo.SLEEP_SECONDS is null) AND (X_SLEEP_SECONDS is null)))
319       AND ((recinfo.CONTROL_CODE = X_CONTROL_CODE)
320            OR ((recinfo.CONTROL_CODE is null) AND (X_CONTROL_CODE is null)))
321       AND ((recinfo.DIAGNOSTIC_LEVEL = X_DIAGNOSTIC_LEVEL)
322            OR ((recinfo.DIAGNOSTIC_LEVEL is null) AND (X_DIAGNOSTIC_LEVEL is null)))
323       AND ((recinfo.MANAGER_TYPE = X_MANAGER_TYPE)
324            OR ((recinfo.MANAGER_TYPE is null) AND (X_MANAGER_TYPE is null)))
325       AND ((recinfo.NODE_NAME = X_NODE_NAME)
326            OR ((recinfo.NODE_NAME is null) AND (X_NODE_NAME is null)))
327       AND ((recinfo.NODE_NAME2 = X_NODE_NAME2)
328            OR ((recinfo.NODE_NAME2 is null) AND (X_NODE_NAME2 is null)))
329       AND ((recinfo.OS_QUEUE = X_OS_QUEUE)
330            OR ((recinfo.OS_QUEUE is null) AND (X_OS_QUEUE is null)))
331       AND ((recinfo.OS_QUEUE2 = X_OS_QUEUE2)
332            OR ((recinfo.OS_QUEUE2 is null) AND (X_OS_QUEUE2 is null)))
333       AND ((recinfo.DATA_GROUP_ID = X_DATA_GROUP_ID)
334            OR ((recinfo.DATA_GROUP_ID is null) AND (X_DATA_GROUP_ID is null)))
335       AND ((recinfo.RESTART_TYPE = X_RESTART_TYPE)
336            OR ((recinfo.RESTART_TYPE is null) AND (X_RESTART_TYPE is null)))
337       AND ((recinfo.RESTART_INTERVAL = X_RESTART_INTERVAL)
338            OR ((recinfo.RESTART_INTERVAL is null) AND (X_RESTART_INTERVAL is null)))
339       AND ((recinfo.ATTRIBUTE_CATEGORY = X_ATTRIBUTE_CATEGORY)
340            OR ((recinfo.ATTRIBUTE_CATEGORY is null) AND (X_ATTRIBUTE_CATEGORY is null)))
341       AND ((recinfo.ATTRIBUTE = X_ATTRIBUTE)
342            OR ((recinfo.ATTRIBUTE is null) AND (X_ATTRIBUTE is null)))
343       AND ((recinfo.ATTRIBUTE1 = X_ATTRIBUTE1)
344            OR ((recinfo.ATTRIBUTE1 is null) AND (X_ATTRIBUTE1 is null)))
345       AND ((recinfo.ATTRIBUTE2 = X_ATTRIBUTE2)
346            OR ((recinfo.ATTRIBUTE2 is null) AND (X_ATTRIBUTE2 is null)))
347       AND ((recinfo.ATTRIBUTE3 = X_ATTRIBUTE3)
348            OR ((recinfo.ATTRIBUTE3 is null) AND (X_ATTRIBUTE3 is null)))
349       AND ((recinfo.ATTRIBUTE4 = X_ATTRIBUTE4)
350            OR ((recinfo.ATTRIBUTE4 is null) AND (X_ATTRIBUTE4 is null)))
351       AND ((recinfo.ATTRIBUTE5 = X_ATTRIBUTE5)
352            OR ((recinfo.ATTRIBUTE5 is null) AND (X_ATTRIBUTE5 is null)))
353       AND ((recinfo.ATTRIBUTE6 = X_ATTRIBUTE6)
354            OR ((recinfo.ATTRIBUTE6 is null) AND (X_ATTRIBUTE6 is null)))
355       AND ((recinfo.ATTRIBUTE7 = X_ATTRIBUTE7)
356            OR ((recinfo.ATTRIBUTE7 is null) AND (X_ATTRIBUTE7 is null)))
357       AND ((recinfo.ATTRIBUTE8 = X_ATTRIBUTE8)
358            OR ((recinfo.ATTRIBUTE8 is null) AND (X_ATTRIBUTE8 is null)))
359       AND ((recinfo.ATTRIBUTE9 = X_ATTRIBUTE9)
360            OR ((recinfo.ATTRIBUTE9 is null) AND (X_ATTRIBUTE9 is null)))
361       AND ((recinfo.ATTRIBUTE10 = X_ATTRIBUTE10)
362            OR ((recinfo.ATTRIBUTE10 is null) AND (X_ATTRIBUTE10 is null)))
363       AND ((recinfo.ATTRIBUTE11 = X_ATTRIBUTE11)
364            OR ((recinfo.ATTRIBUTE11 is null) AND (X_ATTRIBUTE11 is null)))
365       AND ((recinfo.ATTRIBUTE12 = X_ATTRIBUTE12)
366            OR ((recinfo.ATTRIBUTE12 is null) AND (X_ATTRIBUTE12 is null)))
367       AND (recinfo.ENABLED_FLAG = X_ENABLED_FLAG)
368   ) then
369     null;
370   else
371     fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
372     app_exception.raise_exception;
373   end if;
374 
375   for tlinfo in c1 loop
376     if (tlinfo.BASELANG = 'Y') then
377       if (    ((tlinfo.DESCRIPTION = X_DESCRIPTION)
378                OR ((tlinfo.DESCRIPTION is null) AND (X_DESCRIPTION is null)))
379           AND ((tlinfo.USER_CONCURRENT_QUEUE_NAME = X_USER_CONCURRENT_QUEUE_NAME)
380                OR ((tlinfo.USER_CONCURRENT_QUEUE_NAME is null) AND (X_USER_CONCURRENT_QUEUE_NAME is null)))
381       ) then
382         null;
383       else
384         fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
385         app_exception.raise_exception;
386       end if;
387     end if;
388   end loop;
389   return;
390 end LOCK_ROW;
391 
392 procedure UPDATE_ROW (
393   X_APPLICATION_ID in NUMBER,
394   X_CONCURRENT_QUEUE_ID in NUMBER,
395   X_RESOURCE_CONSUMER_GROUP in VARCHAR2,
396   X_CONCURRENT_QUEUE_NAME in VARCHAR2,
397   X_PROCESSOR_APPLICATION_ID in NUMBER,
398   X_CONCURRENT_PROCESSOR_ID in NUMBER,
399   X_MAX_PROCESSES in NUMBER,
400   X_RUNNING_PROCESSES in NUMBER,
401   X_CACHE_SIZE in NUMBER,
402   X_MIN_PROCESSES in NUMBER,
403   X_TARGET_PROCESSES in NUMBER,
404   X_TARGET_NODE in VARCHAR2,
405   X_TARGET_QUEUE in VARCHAR2,
406   X_SLEEP_SECONDS in NUMBER,
407   X_CONTROL_CODE in VARCHAR2,
408   X_DIAGNOSTIC_LEVEL in VARCHAR2,
409   X_MANAGER_TYPE in VARCHAR2,
410   X_NODE_NAME in VARCHAR2,
411   X_NODE_NAME2 in VARCHAR2,
412   X_OS_QUEUE in VARCHAR2,
413   X_OS_QUEUE2 in VARCHAR2,
414   X_DATA_GROUP_ID in NUMBER,
415   X_RESTART_TYPE in VARCHAR2,
416   X_RESTART_INTERVAL in NUMBER,
417   X_ATTRIBUTE_CATEGORY in VARCHAR2,
418   X_ATTRIBUTE in VARCHAR2,
419   X_ATTRIBUTE1 in VARCHAR2,
420   X_ATTRIBUTE2 in VARCHAR2,
421   X_ATTRIBUTE3 in VARCHAR2,
422   X_ATTRIBUTE4 in VARCHAR2,
423   X_ATTRIBUTE5 in VARCHAR2,
424   X_ATTRIBUTE6 in VARCHAR2,
425   X_ATTRIBUTE7 in VARCHAR2,
426   X_ATTRIBUTE8 in VARCHAR2,
427   X_ATTRIBUTE9 in VARCHAR2,
428   X_ATTRIBUTE10 in VARCHAR2,
429   X_ATTRIBUTE11 in VARCHAR2,
430   X_ATTRIBUTE12 in VARCHAR2,
431   X_ENABLED_FLAG in VARCHAR2,
432   X_DESCRIPTION in VARCHAR2,
433   X_USER_CONCURRENT_QUEUE_NAME in VARCHAR2,
434   X_LAST_UPDATE_DATE in DATE,
435   X_LAST_UPDATED_BY in NUMBER,
439   update FND_CONCURRENT_QUEUES set
436   X_LAST_UPDATE_LOGIN in NUMBER
437 ) is
438 begin
440     RESOURCE_CONSUMER_GROUP = X_RESOURCE_CONSUMER_GROUP,
441     CONCURRENT_QUEUE_NAME = X_CONCURRENT_QUEUE_NAME,
442     PROCESSOR_APPLICATION_ID = X_PROCESSOR_APPLICATION_ID,
443     CONCURRENT_PROCESSOR_ID = X_CONCURRENT_PROCESSOR_ID,
444     MAX_PROCESSES = X_MAX_PROCESSES,
445     RUNNING_PROCESSES = X_RUNNING_PROCESSES,
446     CACHE_SIZE = X_CACHE_SIZE,
447     MIN_PROCESSES = X_MIN_PROCESSES,
448     TARGET_PROCESSES = X_TARGET_PROCESSES,
449     TARGET_NODE = X_TARGET_NODE,
450     TARGET_QUEUE = X_TARGET_QUEUE,
451     SLEEP_SECONDS = X_SLEEP_SECONDS,
452     CONTROL_CODE = X_CONTROL_CODE,
453     DIAGNOSTIC_LEVEL = X_DIAGNOSTIC_LEVEL,
454     MANAGER_TYPE = X_MANAGER_TYPE,
455     NODE_NAME = X_NODE_NAME,
456     NODE_NAME2 = X_NODE_NAME2,
457     OS_QUEUE = X_OS_QUEUE,
458     OS_QUEUE2 = X_OS_QUEUE2,
459     DATA_GROUP_ID = X_DATA_GROUP_ID,
460     RESTART_TYPE = X_RESTART_TYPE,
461     RESTART_INTERVAL = X_RESTART_INTERVAL,
462     ATTRIBUTE_CATEGORY = X_ATTRIBUTE_CATEGORY,
463     ATTRIBUTE = X_ATTRIBUTE,
464     ATTRIBUTE1 = X_ATTRIBUTE1,
465     ATTRIBUTE2 = X_ATTRIBUTE2,
466     ATTRIBUTE3 = X_ATTRIBUTE3,
467     ATTRIBUTE4 = X_ATTRIBUTE4,
468     ATTRIBUTE5 = X_ATTRIBUTE5,
469     ATTRIBUTE6 = X_ATTRIBUTE6,
470     ATTRIBUTE7 = X_ATTRIBUTE7,
471     ATTRIBUTE8 = X_ATTRIBUTE8,
472     ATTRIBUTE9 = X_ATTRIBUTE9,
473     ATTRIBUTE10 = X_ATTRIBUTE10,
474     ATTRIBUTE11 = X_ATTRIBUTE11,
475     ATTRIBUTE12 = X_ATTRIBUTE12,
476     ENABLED_FLAG = X_ENABLED_FLAG,
477     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
478     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
479     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
480   where APPLICATION_ID = X_APPLICATION_ID
481   and CONCURRENT_QUEUE_ID = X_CONCURRENT_QUEUE_ID;
482 
483   if (sql%notfound) then
484     raise no_data_found;
485   end if;
486 
487   update FND_CONCURRENT_QUEUES_TL set
488     DESCRIPTION = X_DESCRIPTION,
489     USER_CONCURRENT_QUEUE_NAME = X_USER_CONCURRENT_QUEUE_NAME,
490     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
491     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
492     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
493     SOURCE_LANG = userenv('LANG')
494   where APPLICATION_ID = X_APPLICATION_ID
495   and CONCURRENT_QUEUE_ID = X_CONCURRENT_QUEUE_ID
496   and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
497 
498   if (sql%notfound) then
499     raise no_data_found;
500   end if;
501 end UPDATE_ROW;
502 
503 procedure DELETE_ROW (
504   X_APPLICATION_ID in NUMBER,
505   X_CONCURRENT_QUEUE_ID in NUMBER
506 ) is
507 begin
508   delete from FND_CONCURRENT_QUEUES_TL
509   where APPLICATION_ID = X_APPLICATION_ID
510   and CONCURRENT_QUEUE_ID = X_CONCURRENT_QUEUE_ID;
511 
512   if (sql%notfound) then
513     raise no_data_found;
514   end if;
515 
516   delete from FND_CONCURRENT_QUEUES
517   where APPLICATION_ID = X_APPLICATION_ID
518   and CONCURRENT_QUEUE_ID = X_CONCURRENT_QUEUE_ID;
519 
520   if (sql%notfound) then
521     raise no_data_found;
522   end if;
523 end DELETE_ROW;
524 
525 procedure ADD_LANGUAGE
526 is
527 begin
528 
529 /* Mar/19/03 requested by Ric Ginsberg */
530 /* The following delete and update statements are commented out */
531 /* as a quick workaround to fix the time-consuming table handler issue */
532 /* Eventually we'll need to turn them into a separate fix_language procedure */
533 /*
534 
535   delete from FND_CONCURRENT_QUEUES_TL T
536   where not exists
537     (select NULL
538     from FND_CONCURRENT_QUEUES B
539     where B.APPLICATION_ID = T.APPLICATION_ID
540     and B.CONCURRENT_QUEUE_ID = T.CONCURRENT_QUEUE_ID
541     );
542 
543   update FND_CONCURRENT_QUEUES_TL T set (
544       DESCRIPTION,
545       USER_CONCURRENT_QUEUE_NAME
546     ) = (select
547       B.DESCRIPTION,
548       B.USER_CONCURRENT_QUEUE_NAME
549     from FND_CONCURRENT_QUEUES_TL B
550     where B.APPLICATION_ID = T.APPLICATION_ID
551     and B.CONCURRENT_QUEUE_ID = T.CONCURRENT_QUEUE_ID
552     and B.LANGUAGE = T.SOURCE_LANG)
553   where (
554       T.APPLICATION_ID,
555       T.CONCURRENT_QUEUE_ID,
556       T.LANGUAGE
557   ) in (select
558       SUBT.APPLICATION_ID,
559       SUBT.CONCURRENT_QUEUE_ID,
560       SUBT.LANGUAGE
561     from FND_CONCURRENT_QUEUES_TL SUBB, FND_CONCURRENT_QUEUES_TL SUBT
562     where SUBB.APPLICATION_ID = SUBT.APPLICATION_ID
563     and SUBB.CONCURRENT_QUEUE_ID = SUBT.CONCURRENT_QUEUE_ID
564     and SUBB.LANGUAGE = SUBT.SOURCE_LANG
565     and (SUBB.DESCRIPTION <> SUBT.DESCRIPTION
566       or (SUBB.DESCRIPTION is null and SUBT.DESCRIPTION is not null)
567       or (SUBB.DESCRIPTION is not null and SUBT.DESCRIPTION is null)
568       or SUBB.USER_CONCURRENT_QUEUE_NAME <> SUBT.USER_CONCURRENT_QUEUE_NAME
569       or (SUBB.USER_CONCURRENT_QUEUE_NAME is null and SUBT.USER_CONCURRENT_QUEUE_NAME is not null)
570       or (SUBB.USER_CONCURRENT_QUEUE_NAME is not null and SUBT.USER_CONCURRENT_QUEUE_NAME is null)
571   ));
572 
573 */
574 
578     CONCURRENT_QUEUE_ID,
575   insert into FND_CONCURRENT_QUEUES_TL (
576     USER_CONCURRENT_QUEUE_NAME,
577     APPLICATION_ID,
579     CONCURRENT_QUEUE_NAME,
580     CREATION_DATE,
581     CREATED_BY,
582     LAST_UPDATE_DATE,
583     LAST_UPDATED_BY,
584     LAST_UPDATE_LOGIN,
585     DESCRIPTION,
586     LANGUAGE,
587     SOURCE_LANG
588   ) select
589     B.USER_CONCURRENT_QUEUE_NAME,
590     B.APPLICATION_ID,
591     B.CONCURRENT_QUEUE_ID,
592     B.CONCURRENT_QUEUE_NAME,
593     B.CREATION_DATE,
594     B.CREATED_BY,
595     B.LAST_UPDATE_DATE,
596     B.LAST_UPDATED_BY,
597     B.LAST_UPDATE_LOGIN,
598     B.DESCRIPTION,
599     L.LANGUAGE_CODE,
600     B.SOURCE_LANG
601   from FND_CONCURRENT_QUEUES_TL B, FND_LANGUAGES L
602   where L.INSTALLED_FLAG in ('I', 'B')
603   and B.LANGUAGE = userenv('LANG')
604   and not exists
605     (select NULL
606     from FND_CONCURRENT_QUEUES_TL T
607     where T.APPLICATION_ID = B.APPLICATION_ID
608     and T.CONCURRENT_QUEUE_ID = B.CONCURRENT_QUEUE_ID
609     and T.LANGUAGE = L.LANGUAGE_CODE);
610 end ADD_LANGUAGE;
611 
612 end FND_CONCURRENT_QUEUES_PKG;