[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;