DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKE_COMM_ACTIONS_PKG

Source


1 package body OKE_COMM_ACTIONS_PKG as
2 /* $Header: OKEOCAXB.pls 115.5 2002/11/21 23:04:07 ybchen ship $ */
3 procedure INSERT_ROW (
4   X_ROWID 			in out NOCOPY VARCHAR2
5 , X_COMM_ACTION_CODE 		in 	VARCHAR2
6 , X_CREATION_DATE 		in 	DATE
7 , X_CREATED_BY 			in 	NUMBER
8 , X_LAST_UPDATE_DATE 		in 	DATE
9 , X_LAST_UPDATED_BY 		in 	NUMBER
10 , X_LAST_UPDATE_LOGIN 		in 	NUMBER
11 , X_COMM_ACTION_NAME 		in 	VARCHAR2
12 , X_OWNER_ID 			in 	NUMBER
13 , X_WF_ITEM_TYPE		in 	VARCHAR2
14 , X_WF_PROCESS  		in 	VARCHAR2
15 , X_DESCRIPTION 		in 	VARCHAR2
16 , X_START_DATE_ACTIVE 		in 	DATE
17 , X_END_DATE_ACTIVE   		in 	DATE
18 , X_ATTRIBUTE_CATEGORY 		in 	VARCHAR2
19 , X_ATTRIBUTE1 			in 	VARCHAR2
20 , X_ATTRIBUTE2 			in 	VARCHAR2
21 , X_ATTRIBUTE3 			in 	VARCHAR2
22 , X_ATTRIBUTE4 			in 	VARCHAR2
23 , X_ATTRIBUTE5 			in 	VARCHAR2
24 , X_ATTRIBUTE6 			in 	VARCHAR2
25 , X_ATTRIBUTE7 			in 	VARCHAR2
26 , X_ATTRIBUTE8 			in 	VARCHAR2
27 , X_ATTRIBUTE9 			in 	VARCHAR2
28 , X_ATTRIBUTE10 		in 	VARCHAR2
29 , X_ATTRIBUTE11 		in 	VARCHAR2
30 , X_ATTRIBUTE12 		in 	VARCHAR2
31 , X_ATTRIBUTE13 		in 	VARCHAR2
32 , X_ATTRIBUTE14 		in 	VARCHAR2
33 , X_ATTRIBUTE15 		in 	VARCHAR2
34 ) is
35   cursor C is select ROWID from OKE_COMM_ACTIONS_B
36     where COMM_ACTION_CODE = X_COMM_ACTION_CODE
37     ;
38 begin
39   insert into OKE_COMM_ACTIONS_B (
40   COMM_ACTION_CODE
41 , CREATION_DATE
42 , CREATED_BY
43 , LAST_UPDATE_DATE
44 , LAST_UPDATED_BY
45 , LAST_UPDATE_LOGIN
46 , OWNER_ID
47 , WF_ITEM_TYPE
48 , WF_PROCESS
49 , START_DATE_ACTIVE
50 , END_DATE_ACTIVE
51 , ATTRIBUTE_CATEGORY
52 , ATTRIBUTE1
53 , ATTRIBUTE2
54 , ATTRIBUTE3
55 , ATTRIBUTE4
56 , ATTRIBUTE5
57 , ATTRIBUTE6
58 , ATTRIBUTE7
59 , ATTRIBUTE8
60 , ATTRIBUTE9
61 , ATTRIBUTE10
62 , ATTRIBUTE11
63 , ATTRIBUTE12
64 , ATTRIBUTE13
65 , ATTRIBUTE14
66 , ATTRIBUTE15
67   ) values (
68   X_COMM_ACTION_CODE
69 , X_CREATION_DATE
70 , X_CREATED_BY
71 , X_LAST_UPDATE_DATE
72 , X_LAST_UPDATED_BY
73 , X_LAST_UPDATE_LOGIN
74 , X_OWNER_ID
75 , X_WF_ITEM_TYPE
76 , X_WF_PROCESS
77 , X_START_DATE_ACTIVE
78 , X_END_DATE_ACTIVE
79 , X_ATTRIBUTE_CATEGORY
80 , X_ATTRIBUTE1
81 , X_ATTRIBUTE2
82 , X_ATTRIBUTE3
83 , X_ATTRIBUTE4
84 , X_ATTRIBUTE5
85 , X_ATTRIBUTE6
86 , X_ATTRIBUTE7
87 , X_ATTRIBUTE8
88 , X_ATTRIBUTE9
89 , X_ATTRIBUTE10
90 , X_ATTRIBUTE11
91 , X_ATTRIBUTE12
92 , X_ATTRIBUTE13
93 , X_ATTRIBUTE14
94 , X_ATTRIBUTE15
95 );
96 
97   insert into OKE_COMM_ACTIONS_TL (
98   COMM_ACTION_CODE
99 , LANGUAGE
100 , CREATION_DATE
101 , CREATED_BY
102 , LAST_UPDATE_DATE
103 , LAST_UPDATED_BY
104 , LAST_UPDATE_LOGIN
105 , COMM_ACTION_NAME
106 , DESCRIPTION
107 , SOURCE_LANG
108   ) select
109   X_COMM_ACTION_CODE
110 , L.LANGUAGE_CODE
111 , X_CREATION_DATE
112 , X_CREATED_BY
113 , X_LAST_UPDATE_DATE
114 , X_LAST_UPDATED_BY
115 , X_LAST_UPDATE_LOGIN
116 , X_COMM_ACTION_NAME
117 , X_DESCRIPTION
118 , userenv('LANG')
119   from FND_LANGUAGES L
120  where L.INSTALLED_FLAG in ('I', 'B')
121    and not exists
122     (select NULL
123     from OKE_COMM_ACTIONS_TL T
124    where T.COMM_ACTION_CODE = X_COMM_ACTION_CODE
125      and T.LANGUAGE = L.LANGUAGE_CODE)
126 ;
127 
128   open c;
129   fetch c into X_ROWID;
130   if (c%notfound) then
131     close c;
132     raise no_data_found;
133   end if;
134   close c;
135 
136 end INSERT_ROW;
137 
138 procedure LOCK_ROW (
139   X_COMM_ACTION_CODE		in 	VARCHAR2
140 , X_COMM_ACTION_NAME 		in 	VARCHAR2
141 , X_OWNER_ID 			in 	NUMBER
142 , X_WF_ITEM_TYPE		in 	VARCHAR2
143 , X_WF_PROCESS  		in 	VARCHAR2
144 , X_DESCRIPTION 		in 	VARCHAR2
145 , X_START_DATE_ACTIVE 		in 	DATE
146 , X_END_DATE_ACTIVE   		in 	DATE
147 , X_ATTRIBUTE_CATEGORY 		in 	VARCHAR2
148 , X_ATTRIBUTE1 			in 	VARCHAR2
149 , X_ATTRIBUTE2 			in 	VARCHAR2
150 , X_ATTRIBUTE3 			in 	VARCHAR2
151 , X_ATTRIBUTE4 			in 	VARCHAR2
152 , X_ATTRIBUTE5 			in 	VARCHAR2
153 , X_ATTRIBUTE6 			in 	VARCHAR2
154 , X_ATTRIBUTE7 			in 	VARCHAR2
155 , X_ATTRIBUTE8 			in 	VARCHAR2
156 , X_ATTRIBUTE9 			in 	VARCHAR2
157 , X_ATTRIBUTE10 		in 	VARCHAR2
158 , X_ATTRIBUTE11 		in 	VARCHAR2
159 , X_ATTRIBUTE12 		in 	VARCHAR2
160 , X_ATTRIBUTE13 		in 	VARCHAR2
161 , X_ATTRIBUTE14 		in 	VARCHAR2
162 , X_ATTRIBUTE15 		in 	VARCHAR2
163 ) is
164   cursor c is select
165        COMM_ACTION_CODE
166      , OWNER_ID
167      , WF_ITEM_TYPE
168      , WF_PROCESS
169      , START_DATE_ACTIVE
170      , END_DATE_ACTIVE
171      , ATTRIBUTE_CATEGORY
172      , ATTRIBUTE1
173      , ATTRIBUTE2
174      , ATTRIBUTE3
175      , ATTRIBUTE4
176      , ATTRIBUTE5
177      , ATTRIBUTE6
178      , ATTRIBUTE7
179      , ATTRIBUTE8
180      , ATTRIBUTE9
181      , ATTRIBUTE10
182      , ATTRIBUTE11
183      , ATTRIBUTE12
184      , ATTRIBUTE13
185      , ATTRIBUTE14
186      , ATTRIBUTE15
187     from OKE_COMM_ACTIONS_B
188     where COMM_ACTION_CODE = X_COMM_ACTION_CODE
189     for update of COMM_ACTION_CODE nowait;
190   recinfo c%rowtype;
191 
192   cursor c1 is select
193       COMM_ACTION_NAME
194      ,DESCRIPTION
195      ,decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
196     from OKE_COMM_ACTIONS_TL
197     where COMM_ACTION_CODE= X_COMM_ACTION_CODE
198     and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
199     for update of COMM_ACTION_CODE nowait;
200   tlinfo c1%rowtype;
201 
202 begin
203   open c;
204   fetch c into recinfo;
205   if (c%notfound) then
206     close c;
207     fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
208     app_exception.raise_exception;
209   end if;
210   close c;
211 
212   if (    (recinfo.COMM_ACTION_CODE = X_COMM_ACTION_CODE)
213       AND ((recinfo.OWNER_ID = X_OWNER_ID)
214            OR ((recinfo.OWNER_ID is null) AND (X_OWNER_ID is null)))
215       AND ((recinfo.WF_ITEM_TYPE = X_WF_ITEM_TYPE)
216            OR ((recinfo.WF_ITEM_TYPE is null) AND (X_WF_ITEM_TYPE is null)))
217       AND ((recinfo.WF_PROCESS = X_WF_PROCESS)
218            OR ((recinfo.WF_PROCESS is null) AND (X_WF_PROCESS is null)))
219       AND ((recinfo.START_DATE_ACTIVE = X_START_DATE_ACTIVE)
220            OR ((recinfo.START_DATE_ACTIVE is null) AND (X_START_DATE_ACTIVE is null)))
221       AND ((recinfo.END_DATE_ACTIVE = X_END_DATE_ACTIVE)
222            OR ((recinfo.END_DATE_ACTIVE is null) AND (X_END_DATE_ACTIVE is null)))
223       AND ((recinfo.ATTRIBUTE_CATEGORY = X_ATTRIBUTE_CATEGORY)
224            OR ((recinfo.ATTRIBUTE_CATEGORY is null) AND (X_ATTRIBUTE_CATEGORY is null)))
225       AND ((recinfo.ATTRIBUTE1 = X_ATTRIBUTE1)
226            OR ((recinfo.ATTRIBUTE1 is null) AND (X_ATTRIBUTE1 is null)))
227       AND ((recinfo.ATTRIBUTE2 = X_ATTRIBUTE2)
228            OR ((recinfo.ATTRIBUTE2 is null) AND (X_ATTRIBUTE2 is null)))
229       AND ((recinfo.ATTRIBUTE3 = X_ATTRIBUTE3)
230            OR ((recinfo.ATTRIBUTE3 is null) AND (X_ATTRIBUTE3 is null)))
231       AND ((recinfo.ATTRIBUTE4 = X_ATTRIBUTE4)
232            OR ((recinfo.ATTRIBUTE4 is null) AND (X_ATTRIBUTE4 is null)))
233       AND ((recinfo.ATTRIBUTE5 = X_ATTRIBUTE5)
234            OR ((recinfo.ATTRIBUTE5 is null) AND (X_ATTRIBUTE5 is null)))
235       AND ((recinfo.ATTRIBUTE6 = X_ATTRIBUTE6)
236            OR ((recinfo.ATTRIBUTE6 is null) AND (X_ATTRIBUTE6 is null)))
237       AND ((recinfo.ATTRIBUTE7 = X_ATTRIBUTE7)
238            OR ((recinfo.ATTRIBUTE7 is null) AND (X_ATTRIBUTE7 is null)))
239       AND ((recinfo.ATTRIBUTE8 = X_ATTRIBUTE8)
240            OR ((recinfo.ATTRIBUTE8 is null) AND (X_ATTRIBUTE8 is null)))
241       AND ((recinfo.ATTRIBUTE9 = X_ATTRIBUTE9)
242            OR ((recinfo.ATTRIBUTE9 is null) AND (X_ATTRIBUTE9 is null)))
243       AND ((recinfo.ATTRIBUTE10 = X_ATTRIBUTE10)
244            OR ((recinfo.ATTRIBUTE10 is null) AND (X_ATTRIBUTE10 is null)))
245       AND ((recinfo.ATTRIBUTE11 = X_ATTRIBUTE11)
246            OR ((recinfo.ATTRIBUTE11 is null) AND (X_ATTRIBUTE11 is null)))
247       AND ((recinfo.ATTRIBUTE12 = X_ATTRIBUTE12)
248            OR ((recinfo.ATTRIBUTE12 is null) AND (X_ATTRIBUTE12 is null)))
249       AND ((recinfo.ATTRIBUTE13 = X_ATTRIBUTE13)
250            OR ((recinfo.ATTRIBUTE13 is null) AND (X_ATTRIBUTE13 is null)))
251       AND ((recinfo.ATTRIBUTE14 = X_ATTRIBUTE14)
252            OR ((recinfo.ATTRIBUTE14 is null) AND (X_ATTRIBUTE14 is null)))
253       AND ((recinfo.ATTRIBUTE15 = X_ATTRIBUTE15)
254            OR ((recinfo.ATTRIBUTE15 is null) AND (X_ATTRIBUTE15 is null)))
255   ) then
256     null;
257   else
258     fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
259     app_exception.raise_exception;
260   end if;
261 
262   for tlinfo in c1 loop
263     if (tlinfo.BASELANG = 'Y') then
264       if (    ((tlinfo.COMM_ACTION_NAME = X_COMM_ACTION_NAME)
265                OR ((tlinfo.COMM_ACTION_NAME is null) AND (X_COMM_ACTION_NAME is null)))
266           AND ((tlinfo.DESCRIPTION = X_DESCRIPTION)
267                OR ((tlinfo.DESCRIPTION is null) AND (X_DESCRIPTION is null)))
268       ) then
269         null;
270       else
271         fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
272         app_exception.raise_exception;
273       end if;
274     end if;
275   end loop;
276 
277   return;
278 end LOCK_ROW;
279 
280 procedure UPDATE_ROW (
281   X_COMM_ACTION_CODE 		in 	VARCHAR2
282 , X_LAST_UPDATE_DATE 		in 	DATE
283 , X_LAST_UPDATED_BY 		in 	NUMBER
284 , X_LAST_UPDATE_LOGIN 		in 	NUMBER
285 , X_COMM_ACTION_NAME 		in 	VARCHAR2
286 , X_OWNER_ID 			in 	NUMBER
287 , X_WF_ITEM_TYPE		in 	VARCHAR2
288 , X_WF_PROCESS  		in 	VARCHAR2
289 , X_DESCRIPTION 		in 	VARCHAR2
290 , X_START_DATE_ACTIVE 		in 	DATE
291 , X_END_DATE_ACTIVE   		in 	DATE
292 , X_ATTRIBUTE_CATEGORY 		in 	VARCHAR2
293 , X_ATTRIBUTE1 			in 	VARCHAR2
294 , X_ATTRIBUTE2 			in 	VARCHAR2
295 , X_ATTRIBUTE3 			in 	VARCHAR2
296 , X_ATTRIBUTE4 			in 	VARCHAR2
297 , X_ATTRIBUTE5 			in 	VARCHAR2
298 , X_ATTRIBUTE6 			in 	VARCHAR2
299 , X_ATTRIBUTE7 			in 	VARCHAR2
300 , X_ATTRIBUTE8 			in 	VARCHAR2
301 , X_ATTRIBUTE9 			in 	VARCHAR2
302 , X_ATTRIBUTE10 		in 	VARCHAR2
303 , X_ATTRIBUTE11 		in 	VARCHAR2
304 , X_ATTRIBUTE12 		in 	VARCHAR2
305 , X_ATTRIBUTE13 		in 	VARCHAR2
306 , X_ATTRIBUTE14 		in 	VARCHAR2
307 , X_ATTRIBUTE15 		in 	VARCHAR2
308 ) is
309 begin
310   update OKE_COMM_ACTIONS_B set
311   LAST_UPDATE_DATE      	= X_LAST_UPDATE_DATE
312 , LAST_UPDATED_BY 		= X_LAST_UPDATED_BY
313 , LAST_UPDATE_LOGIN   		= X_LAST_UPDATE_LOGIN
314 , OWNER_ID 			= X_OWNER_ID
315 , WF_ITEM_TYPE			= X_WF_ITEM_TYPE
316 , WF_PROCESS  			= X_WF_PROCESS
317 , START_DATE_ACTIVE 		= X_START_DATE_ACTIVE
318 , END_DATE_ACTIVE   		= X_END_DATE_ACTIVE
319 , ATTRIBUTE_CATEGORY		= X_ATTRIBUTE_CATEGORY
320 , ATTRIBUTE1            	= X_ATTRIBUTE1
321 , ATTRIBUTE2			= X_ATTRIBUTE2
322 , ATTRIBUTE3    		= X_ATTRIBUTE3
323 , ATTRIBUTE4        		= X_ATTRIBUTE4
324 , ATTRIBUTE5            	= X_ATTRIBUTE5
325 , ATTRIBUTE6			= X_ATTRIBUTE6
326 , ATTRIBUTE7    		= X_ATTRIBUTE7
327 , ATTRIBUTE8        		= X_ATTRIBUTE8
328 , ATTRIBUTE9            	= X_ATTRIBUTE9
329 , ATTRIBUTE10           	= X_ATTRIBUTE10
330 , ATTRIBUTE11			= X_ATTRIBUTE11
331 , ATTRIBUTE12    		= X_ATTRIBUTE12
332 , ATTRIBUTE13        		= X_ATTRIBUTE13
333 , ATTRIBUTE14           	= X_ATTRIBUTE14
334 , ATTRIBUTE15           	= X_ATTRIBUTE15
335 where COMM_ACTION_CODE 		= X_COMM_ACTION_CODE
336 ;
337 
338   if (sql%notfound) then
339     raise no_data_found;
340   end if;
341 
342   update OKE_COMM_ACTIONS_TL set
343   LAST_UPDATE_DATE      = X_LAST_UPDATE_DATE
344 , LAST_UPDATED_BY 	= X_LAST_UPDATED_BY
345 , LAST_UPDATE_LOGIN   	= X_LAST_UPDATE_LOGIN
346 , COMM_ACTION_NAME 	= X_COMM_ACTION_NAME
347 , DESCRIPTION       	= X_DESCRIPTION
348 , SOURCE_LANG 		= userenv('LANG')
349 where COMM_ACTION_CODE= X_COMM_ACTION_CODE
350   and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
351 ;
352 
353   if (sql%notfound) then
354     raise no_data_found;
355   end if;
356 end UPDATE_ROW;
357 
358 procedure ADD_LANGUAGE
359 is
360 begin
361   delete from OKE_COMM_ACTIONS_TL T
362   where not exists
363     (select NULL
364     from OKE_COMM_ACTIONS_B B
365     where B.COMM_ACTION_CODE = T.COMM_ACTION_CODE
366     );
367 
368   update OKE_COMM_ACTIONS_TL T set (
369       COMM_ACTION_NAME,
370       DESCRIPTION
371     ) = (select
372       B.COMM_ACTION_NAME,
373       B.DESCRIPTION
374     from OKE_COMM_ACTIONS_TL B
375     where B.COMM_ACTION_CODE = T.COMM_ACTION_CODE
376     and B.LANGUAGE = T.SOURCE_LANG)
377   where (
378       T.COMM_ACTION_CODE,
379       T.LANGUAGE
380   ) in (select
381       SUBT.COMM_ACTION_CODE,
382       SUBT.LANGUAGE
383     from OKE_COMM_ACTIONS_TL SUBB, OKE_COMM_ACTIONS_TL SUBT
384     where SUBB.COMM_ACTION_CODE = SUBT.COMM_ACTION_CODE
385     and SUBB.LANGUAGE = SUBT.SOURCE_LANG
386     and (SUBB.COMM_ACTION_NAME <> SUBT.COMM_ACTION_NAME
387       or SUBB.DESCRIPTION <> SUBT.DESCRIPTION
388       or (SUBB.DESCRIPTION is null and SUBT.DESCRIPTION is not null)
389       or (SUBB.DESCRIPTION is not null and SUBT.DESCRIPTION is null)
390   ));
391 
392   insert into OKE_COMM_ACTIONS_TL (
393     LAST_UPDATED_BY,
394     LAST_UPDATE_LOGIN,
395     COMM_ACTION_NAME,
396     DESCRIPTION,
397     LAST_UPDATE_DATE,
398     COMM_ACTION_CODE,
399     CREATION_DATE,
400     CREATED_BY,
401     LANGUAGE,
402     SOURCE_LANG
403   ) select
404     B.LAST_UPDATED_BY,
405     B.LAST_UPDATE_LOGIN,
406     B.COMM_ACTION_NAME,
407     B.DESCRIPTION,
408     B.LAST_UPDATE_DATE,
409     B.COMM_ACTION_CODE,
410     B.CREATION_DATE,
411     B.CREATED_BY,
412     L.LANGUAGE_CODE,
413     B.SOURCE_LANG
414   from OKE_COMM_ACTIONS_TL B, FND_LANGUAGES L
415   where L.INSTALLED_FLAG in ('I', 'B')
416   and B.LANGUAGE = userenv('LANG')
417   and not exists
418     (select NULL
419     from OKE_COMM_ACTIONS_TL T
420     where T.COMM_ACTION_CODE = B.COMM_ACTION_CODE
421     and T.LANGUAGE = L.LANGUAGE_CODE);
422 end ADD_LANGUAGE;
423 
424 end OKE_COMM_ACTIONS_PKG;