DBA Data[Home] [Help]

PACKAGE BODY: APPS.XDP_DQ_CONFIGURATION_PKG

Source


1 PACKAGE BODY XDP_DQ_CONFIGURATION_PKG AS
2 /* $Header: XDPDQCNB.pls 120.1 2005/06/15 22:47:12 appldev  $ */
3 procedure INSERT_ROW (
4   X_ROWID in OUT NOCOPY VARCHAR2,
5   X_INTERNAL_Q_NAME in VARCHAR2,
6   X_Q_ALIAS in VARCHAR2,
7   X_QUEUE_TABLE_NAME in VARCHAR2,
8   X_PAYLOAD_TYPE in VARCHAR2,
9   X_NUM_OF_DQER in NUMBER,
10   X_DQ_PROC_NAME in VARCHAR2,
11   X_MODULE_NAME in VARCHAR2,
12   X_IS_AQ_FLAG in VARCHAR2,
13   X_STATE in VARCHAR2,
14   X_DISPLAY_SEQUENCE in NUMBER,
15   X_EXCEPTION_QUEUE_NAME in VARCHAR2,
16   X_MAX_RETRIES in NUMBER,
17   X_DISPLAY_NAME in VARCHAR2,
18   X_DESCRIPTION in VARCHAR2,
19   X_CREATION_DATE in DATE,
20   X_CREATED_BY in NUMBER,
21   X_LAST_UPDATE_DATE in DATE,
22   X_LAST_UPDATED_BY in NUMBER,
23   X_LAST_UPDATE_LOGIN in NUMBER
24 ) is
25   cursor C is select ROWID from XDP_DQ_CONFIGURATION
26     where INTERNAL_Q_NAME = X_INTERNAL_Q_NAME
27     ;
28 begin
29   insert into XDP_DQ_CONFIGURATION (
30     INTERNAL_Q_NAME,
31     Q_ALIAS,
32     QUEUE_TABLE_NAME,
33     PAYLOAD_TYPE,
34     NUM_OF_DQER,
35     DQ_PROC_NAME,
36     MODULE_NAME,
37     IS_AQ_FLAG,
38     STATE,
39     DISPLAY_SEQUENCE,
40     EXCEPTION_QUEUE_NAME,
41     MAX_RETRIES,
42     CREATION_DATE,
43     CREATED_BY,
44     LAST_UPDATE_DATE,
45     LAST_UPDATED_BY,
46     LAST_UPDATE_LOGIN
47   ) values (
48     X_INTERNAL_Q_NAME,
49     X_Q_ALIAS,
50     X_QUEUE_TABLE_NAME,
51     X_PAYLOAD_TYPE,
52     X_NUM_OF_DQER,
53     X_DQ_PROC_NAME,
54     X_MODULE_NAME,
55     X_IS_AQ_FLAG,
56     X_STATE,
57     X_DISPLAY_SEQUENCE,
58     X_EXCEPTION_QUEUE_NAME,
59     X_MAX_RETRIES,
60     X_CREATION_DATE,
61     X_CREATED_BY,
62     X_LAST_UPDATE_DATE,
63     X_LAST_UPDATED_BY,
64     X_LAST_UPDATE_LOGIN
65   );
66 
67   insert into XDP_DQ_CONFIGURATION_TL (
68     LAST_UPDATE_DATE,
69     LAST_UPDATE_LOGIN,
70     INTERNAL_Q_NAME,
71     DISPLAY_NAME,
72     DESCRIPTION,
73     CREATED_BY,
74     CREATION_DATE,
75     LAST_UPDATED_BY,
76     LANGUAGE,
77     SOURCE_LANG
78   ) select
79     X_LAST_UPDATE_DATE,
80     X_LAST_UPDATE_LOGIN,
81     X_INTERNAL_Q_NAME,
82     X_DISPLAY_NAME,
83     X_DESCRIPTION,
84     X_CREATED_BY,
85     X_CREATION_DATE,
86     X_LAST_UPDATED_BY,
87     L.LANGUAGE_CODE,
88     userenv('LANG')
89   from FND_LANGUAGES L
90   where L.INSTALLED_FLAG in ('I', 'B')
91   and not exists
92     (select NULL
93     from XDP_DQ_CONFIGURATION_TL T
94     where T.INTERNAL_Q_NAME = X_INTERNAL_Q_NAME
95     and T.LANGUAGE = L.LANGUAGE_CODE);
96 
97   open c;
98   fetch c into X_ROWID;
99   if (c%notfound) then
100     close c;
101     raise no_data_found;
102   end if;
103   close c;
104 
105 end INSERT_ROW;
106 
107 procedure LOCK_ROW (
108   X_INTERNAL_Q_NAME in VARCHAR2,
109   X_Q_ALIAS in VARCHAR2,
110   X_QUEUE_TABLE_NAME in VARCHAR2,
111   X_PAYLOAD_TYPE in VARCHAR2,
112   X_NUM_OF_DQER in NUMBER,
113   X_DQ_PROC_NAME in VARCHAR2,
114   X_MODULE_NAME in VARCHAR2,
115   X_IS_AQ_FLAG in VARCHAR2,
116   X_STATE in VARCHAR2,
117   X_DISPLAY_SEQUENCE in NUMBER,
118   X_EXCEPTION_QUEUE_NAME in VARCHAR2,
119   X_MAX_RETRIES in NUMBER,
120   X_DISPLAY_NAME in VARCHAR2,
121   X_DESCRIPTION in VARCHAR2
122 ) is
123   cursor c is select
124       Q_ALIAS,
125       QUEUE_TABLE_NAME,
126       PAYLOAD_TYPE,
127       NUM_OF_DQER,
128       DQ_PROC_NAME,
129       MODULE_NAME,
130       IS_AQ_FLAG,
131       STATE,
132       DISPLAY_SEQUENCE,
133       EXCEPTION_QUEUE_NAME,
134       MAX_RETRIES
135     from XDP_DQ_CONFIGURATION
136     where INTERNAL_Q_NAME = X_INTERNAL_Q_NAME
137     for update of INTERNAL_Q_NAME nowait;
138   recinfo c%rowtype;
139 
140   cursor c1 is select
141       DISPLAY_NAME,
142       DESCRIPTION,
143       decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
144     from XDP_DQ_CONFIGURATION_TL
145     where INTERNAL_Q_NAME = X_INTERNAL_Q_NAME
146     and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
147     for update of INTERNAL_Q_NAME nowait;
148 begin
149   open c;
150   fetch c into recinfo;
151   if (c%notfound) then
152     close c;
153     fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
154     app_exception.raise_exception;
155   end if;
156   close c;
157   if (    (recinfo.Q_ALIAS = X_Q_ALIAS)
158       AND (recinfo.QUEUE_TABLE_NAME = X_QUEUE_TABLE_NAME)
159       AND (recinfo.PAYLOAD_TYPE = X_PAYLOAD_TYPE)
160       AND (recinfo.NUM_OF_DQER = X_NUM_OF_DQER)
161       AND (recinfo.DQ_PROC_NAME = X_DQ_PROC_NAME)
162       AND (recinfo.MODULE_NAME = X_MODULE_NAME)
163       AND (recinfo.IS_AQ_FLAG = X_IS_AQ_FLAG)
164       AND (recinfo.STATE = X_STATE)
165       AND ((recinfo.DISPLAY_SEQUENCE = X_DISPLAY_SEQUENCE)
166            OR ((recinfo.DISPLAY_SEQUENCE is null) AND (X_DISPLAY_SEQUENCE is null)))
167       AND ((recinfo.EXCEPTION_QUEUE_NAME = X_EXCEPTION_QUEUE_NAME)
168            OR ((recinfo.EXCEPTION_QUEUE_NAME is null) AND (X_EXCEPTION_QUEUE_NAME is null)))
169       AND ((recinfo.MAX_RETRIES = X_MAX_RETRIES)
170            OR ((recinfo.MAX_RETRIES is null) AND (X_MAX_RETRIES is null)))
171   ) then
172     null;
173   else
174     fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
175     app_exception.raise_exception;
176   end if;
177 
178   for tlinfo in c1 loop
179     if (tlinfo.BASELANG = 'Y') then
180       if (    (tlinfo.DISPLAY_NAME = X_DISPLAY_NAME)
181           AND ((tlinfo.DESCRIPTION = X_DESCRIPTION)
182                OR ((tlinfo.DESCRIPTION is null) AND (X_DESCRIPTION is null)))
183       ) then
184         null;
185       else
186         fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
187         app_exception.raise_exception;
188       end if;
189     end if;
190   end loop;
191   return;
192 end LOCK_ROW;
193 
194 procedure UPDATE_ROW (
195   X_INTERNAL_Q_NAME in VARCHAR2,
196   X_Q_ALIAS in VARCHAR2,
197   X_QUEUE_TABLE_NAME in VARCHAR2,
198   X_PAYLOAD_TYPE in VARCHAR2,
199   X_NUM_OF_DQER in NUMBER,
200   X_DQ_PROC_NAME in VARCHAR2,
201   X_MODULE_NAME in VARCHAR2,
202   X_IS_AQ_FLAG in VARCHAR2,
203   X_STATE in VARCHAR2,
204   X_DISPLAY_SEQUENCE in NUMBER,
205   X_EXCEPTION_QUEUE_NAME in VARCHAR2,
206   X_MAX_RETRIES in NUMBER,
207   X_DISPLAY_NAME in VARCHAR2,
208   X_DESCRIPTION in VARCHAR2,
209   X_LAST_UPDATE_DATE in DATE,
210   X_LAST_UPDATED_BY in NUMBER,
211   X_LAST_UPDATE_LOGIN in NUMBER
212 ) is
213 begin
214   update XDP_DQ_CONFIGURATION set
215     Q_ALIAS = X_Q_ALIAS,
216     QUEUE_TABLE_NAME = X_QUEUE_TABLE_NAME,
217     PAYLOAD_TYPE = X_PAYLOAD_TYPE,
218     NUM_OF_DQER = X_NUM_OF_DQER,
219     DQ_PROC_NAME = X_DQ_PROC_NAME,
220     MODULE_NAME = X_MODULE_NAME,
221     IS_AQ_FLAG = X_IS_AQ_FLAG,
222     STATE = X_STATE,
223     DISPLAY_SEQUENCE = X_DISPLAY_SEQUENCE,
224     EXCEPTION_QUEUE_NAME = X_EXCEPTION_QUEUE_NAME,
225     MAX_RETRIES = X_MAX_RETRIES,
226     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
227     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
228     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
229   where INTERNAL_Q_NAME = X_INTERNAL_Q_NAME;
230 
231   if (sql%notfound) then
232     raise no_data_found;
233   end if;
234 
235   update XDP_DQ_CONFIGURATION_TL set
236     DISPLAY_NAME = X_DISPLAY_NAME,
237     DESCRIPTION = X_DESCRIPTION,
238     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
239     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
240     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
241     SOURCE_LANG = userenv('LANG')
242   where INTERNAL_Q_NAME = X_INTERNAL_Q_NAME
243   and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
244 
245   if (sql%notfound) then
246     raise no_data_found;
247   end if;
248 end UPDATE_ROW;
249 
250 procedure DELETE_ROW (
251   X_INTERNAL_Q_NAME in VARCHAR2
252 ) is
253 begin
254   delete from XDP_DQ_CONFIGURATION_TL
255   where INTERNAL_Q_NAME = X_INTERNAL_Q_NAME;
256 
257   if (sql%notfound) then
258     raise no_data_found;
259   end if;
260 
261   delete from XDP_DQ_CONFIGURATION
262   where INTERNAL_Q_NAME = X_INTERNAL_Q_NAME;
263 
264   if (sql%notfound) then
265     raise no_data_found;
266   end if;
267 end DELETE_ROW;
268 
269 procedure ADD_LANGUAGE
270 is
271 begin
272   delete from XDP_DQ_CONFIGURATION_TL T
273   where not exists
274     (select NULL
275     from XDP_DQ_CONFIGURATION B
276     where B.INTERNAL_Q_NAME = T.INTERNAL_Q_NAME
277     );
278 
279   update XDP_DQ_CONFIGURATION_TL T set (
280       DISPLAY_NAME,
281       DESCRIPTION
282     ) = (select
283       B.DISPLAY_NAME,
284       B.DESCRIPTION
285     from XDP_DQ_CONFIGURATION_TL B
286     where B.INTERNAL_Q_NAME = T.INTERNAL_Q_NAME
287     and B.LANGUAGE = T.SOURCE_LANG)
288   where (
289       T.INTERNAL_Q_NAME,
290       T.LANGUAGE
291   ) in (select
292       SUBT.INTERNAL_Q_NAME,
293       SUBT.LANGUAGE
294     from XDP_DQ_CONFIGURATION_TL SUBB, XDP_DQ_CONFIGURATION_TL SUBT
295     where SUBB.INTERNAL_Q_NAME = SUBT.INTERNAL_Q_NAME
296     and SUBB.LANGUAGE = SUBT.SOURCE_LANG
297     and (SUBB.DISPLAY_NAME <> SUBT.DISPLAY_NAME
298       or SUBB.DESCRIPTION <> SUBT.DESCRIPTION
299       or (SUBB.DESCRIPTION is null and SUBT.DESCRIPTION is not null)
300       or (SUBB.DESCRIPTION is not null and SUBT.DESCRIPTION is null)
301   ));
302 
303   insert into XDP_DQ_CONFIGURATION_TL (
304     LAST_UPDATE_DATE,
305     LAST_UPDATE_LOGIN,
306     INTERNAL_Q_NAME,
307     DISPLAY_NAME,
308     DESCRIPTION,
309     CREATED_BY,
310     CREATION_DATE,
311     LAST_UPDATED_BY,
312     LANGUAGE,
313     SOURCE_LANG
314   ) select
315     B.LAST_UPDATE_DATE,
316     B.LAST_UPDATE_LOGIN,
317     B.INTERNAL_Q_NAME,
318     B.DISPLAY_NAME,
319     B.DESCRIPTION,
320     B.CREATED_BY,
321     B.CREATION_DATE,
322     B.LAST_UPDATED_BY,
323     L.LANGUAGE_CODE,
324     B.SOURCE_LANG
325   from XDP_DQ_CONFIGURATION_TL B, FND_LANGUAGES L
326   where L.INSTALLED_FLAG in ('I', 'B')
327   and B.LANGUAGE = userenv('LANG')
328   and not exists
329     (select NULL
330     from XDP_DQ_CONFIGURATION_TL T
331     where T.INTERNAL_Q_NAME = B.INTERNAL_Q_NAME
332     and T.LANGUAGE = L.LANGUAGE_CODE);
333 end ADD_LANGUAGE;
334 
335 procedure LOAD_ROW (
336   X_INTERNAL_Q_NAME in VARCHAR2,
337   X_Q_ALIAS in VARCHAR2,
338   X_QUEUE_TABLE_NAME in VARCHAR2,
339   X_PAYLOAD_TYPE in VARCHAR2,
340   X_NUM_OF_DQER in NUMBER,
341   X_DQ_PROC_NAME in VARCHAR2,
342   X_MODULE_NAME in VARCHAR2,
343   X_IS_AQ_FLAG in VARCHAR2,
344   X_STATE in VARCHAR2,
345   X_DISPLAY_SEQUENCE in NUMBER,
346   X_EXCEPTION_QUEUE_NAME in VARCHAR2,
347   X_MAX_RETRIES in NUMBER,
348   X_DISPLAY_NAME in VARCHAR2,
349   X_DESCRIPTION in VARCHAR2,
350   X_OWNER in VARCHAR2) IS
351 begin
352 
353   declare
354      user_id            number := 0;
355      row_id             varchar2(64);
356 
357   begin
358 
359      if (X_OWNER = 'SEED') then
360         user_id := 1;
361      end if;
362 
363      XDP_DQ_CONFIGURATION_PKG.UPDATE_ROW (
364   	X_INTERNAL_Q_NAME => X_INTERNAL_Q_NAME,
365   	X_Q_ALIAS => X_Q_ALIAS,
366   	X_QUEUE_TABLE_NAME => X_QUEUE_TABLE_NAME,
367   	X_PAYLOAD_TYPE => X_PAYLOAD_TYPE,
368   	X_NUM_OF_DQER => X_NUM_OF_DQER,
369   	X_DQ_PROC_NAME => X_DQ_PROC_NAME,
370   	X_MODULE_NAME => X_MODULE_NAME,
371   	X_IS_AQ_FLAG => X_IS_AQ_FLAG,
372   	X_STATE => X_STATE,
373   	X_DISPLAY_SEQUENCE => X_DISPLAY_SEQUENCE,
374   	X_EXCEPTION_QUEUE_NAME => X_EXCEPTION_QUEUE_NAME,
375   	X_MAX_RETRIES => X_MAX_RETRIES,
376   	X_DISPLAY_NAME => X_DISPLAY_NAME,
377   	X_DESCRIPTION => X_DESCRIPTION,
378         X_LAST_UPDATE_DATE => sysdate,
379         X_LAST_UPDATED_BY => user_id,
380         X_LAST_UPDATE_LOGIN => 0);
381 
382     exception
383        when NO_DATA_FOUND then
384           XDP_DQ_CONFIGURATION_PKG.INSERT_ROW (
385              	X_ROWID => row_id,
386   	  	X_INTERNAL_Q_NAME => X_INTERNAL_Q_NAME,
387   		X_Q_ALIAS => X_Q_ALIAS,
388   		X_QUEUE_TABLE_NAME => X_QUEUE_TABLE_NAME,
389   		X_PAYLOAD_TYPE => X_PAYLOAD_TYPE,
390   		X_NUM_OF_DQER => X_NUM_OF_DQER,
391   		X_DQ_PROC_NAME => X_DQ_PROC_NAME,
392   		X_MODULE_NAME => X_MODULE_NAME,
393   		X_IS_AQ_FLAG => X_IS_AQ_FLAG,
394   		X_STATE => X_STATE,
395   		X_DISPLAY_SEQUENCE => X_DISPLAY_SEQUENCE,
396   		X_EXCEPTION_QUEUE_NAME => X_EXCEPTION_QUEUE_NAME,
397   		X_MAX_RETRIES => X_MAX_RETRIES,
398              	X_DISPLAY_NAME => X_DISPLAY_NAME,
399              	X_DESCRIPTION => X_DESCRIPTION,
400              	X_CREATION_DATE => sysdate,
401              	X_CREATED_BY => user_id,
402              	X_LAST_UPDATE_DATE => sysdate,
403              	X_LAST_UPDATED_BY => user_id,
404              	X_LAST_UPDATE_LOGIN => 0);
405    end;
406 end LOAD_ROW;
407 
408 procedure TRANSLATE_ROW (
409    X_INTERNAL_Q_NAME in VARCHAR2,
410    X_DISPLAY_NAME in VARCHAR2,
411    X_DESCRIPTION in VARCHAR2,
412    X_OWNER in VARCHAR2) IS
413 
414 begin
415 
416     -- only update rows that have not been altered by user
417 
418     update XDP_DQ_CONFIGURATION_TL
419     set display_name = X_DISPLAY_NAME,
420         description = X_DESCRIPTION,
421         source_lang = userenv('LANG'),
422         last_update_date = sysdate,
423         last_updated_by = decode(X_OWNER, 'SEED', 1, 0),
424         last_update_login = 0
425     where internal_q_name = X_INTERNAL_Q_NAME
426     and   userenv('LANG') in (language, source_lang);
427 
428 end TRANSLATE_ROW;
429 
430 
431 end XDP_DQ_CONFIGURATION_PKG;