DBA Data[Home] [Help]

PACKAGE BODY: APPS.XNP_MSG_TYPES_PKG

Source


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