DBA Data[Home] [Help]

PACKAGE BODY: APPS.AK_OBJECTS_PKG

Source


1 package body AK_OBJECTS_PKG as
2 /* $Header: AKDOBJTB.pls 120.3 2006/01/25 15:58:21 tshort ship $ */
3 procedure INSERT_ROW (
4   X_ROWID in out NOCOPY VARCHAR2,
5   X_DATABASE_OBJECT_NAME in VARCHAR2,
6   X_APPLICATION_ID in NUMBER,
7   X_NAME in VARCHAR2,
8   X_DESCRIPTION in VARCHAR2,
9   X_PRIMARY_KEY_NAME IN VARCHAR2,
10   X_DEFAULTING_API_PKG IN VARCHAR2,
11   X_DEFAULTING_API_PROC IN VARCHAR2,
12   X_VALIDATION_API_PKG IN VARCHAR2,
13   X_VALIDATION_API_PROC IN VARCHAR2,
14   X_CREATION_DATE in DATE,
15   X_CREATED_BY in NUMBER,
16   X_LAST_UPDATE_DATE in DATE,
17   X_LAST_UPDATED_BY in NUMBER,
18   X_LAST_UPDATE_LOGIN in NUMBER,
19   X_ATTRIBUTE_CATEGORY in VARCHAR2,
20   X_ATTRIBUTE1 in VARCHAR2,
21   X_ATTRIBUTE2 in VARCHAR2,
22   X_ATTRIBUTE3 in VARCHAR2,
23   X_ATTRIBUTE4 in VARCHAR2,
24   X_ATTRIBUTE5 in VARCHAR2,
25   X_ATTRIBUTE6 in VARCHAR2,
26   X_ATTRIBUTE7 in VARCHAR2,
27   X_ATTRIBUTE8 in VARCHAR2,
28   X_ATTRIBUTE9 in VARCHAR2,
29   X_ATTRIBUTE10 in VARCHAR2,
30   X_ATTRIBUTE11 in VARCHAR2,
31   X_ATTRIBUTE12 in VARCHAR2,
32   X_ATTRIBUTE13 in VARCHAR2,
33   X_ATTRIBUTE14 in VARCHAR2,
34   X_ATTRIBUTE15 in VARCHAR2
35 ) is
36   cursor C is select ROWID from AK_OBJECTS
37     where DATABASE_OBJECT_NAME = X_DATABASE_OBJECT_NAME;
38 begin
39   insert into AK_OBJECTS (
40     DATABASE_OBJECT_NAME,
41     APPLICATION_ID,
42     PRIMARY_KEY_NAME,
43     DEFAULTING_API_PKG,
44     DEFAULTING_API_PROC,
45     VALIDATION_API_PKG,
46     VALIDATION_API_PROC,
47     CREATION_DATE,
48     CREATED_BY,
49     LAST_UPDATE_DATE,
50     LAST_UPDATED_BY,
51     LAST_UPDATE_LOGIN,
52     ATTRIBUTE_CATEGORY,
53     ATTRIBUTE1,
54     ATTRIBUTE2,
55     ATTRIBUTE3,
56     ATTRIBUTE4,
57     ATTRIBUTE5,
58     ATTRIBUTE6,
59     ATTRIBUTE7,
60     ATTRIBUTE8,
61     ATTRIBUTE9,
62     ATTRIBUTE10,
63     ATTRIBUTE11,
64     ATTRIBUTE12,
65     ATTRIBUTE13,
66     ATTRIBUTE14,
67     ATTRIBUTE15
68   ) values (
69     X_DATABASE_OBJECT_NAME,
70     X_APPLICATION_ID,
71     X_PRIMARY_KEY_NAME,
72     X_DEFAULTING_API_PKG,
73     X_DEFAULTING_API_PROC,
74     X_VALIDATION_API_PKG,
75     X_VALIDATION_API_PROC,
76     X_CREATION_DATE,
77     X_CREATED_BY,
78     X_LAST_UPDATE_DATE,
79     X_LAST_UPDATED_BY,
80     X_LAST_UPDATE_LOGIN,
81     X_ATTRIBUTE_CATEGORY,
82     X_ATTRIBUTE1,
83     X_ATTRIBUTE2,
84     X_ATTRIBUTE3,
85     X_ATTRIBUTE4,
86     X_ATTRIBUTE5,
87     X_ATTRIBUTE6,
88     X_ATTRIBUTE7,
89     X_ATTRIBUTE8,
90     X_ATTRIBUTE9,
91     X_ATTRIBUTE10,
92     X_ATTRIBUTE11,
93     X_ATTRIBUTE12,
94     X_ATTRIBUTE13,
95     X_ATTRIBUTE14,
96     X_ATTRIBUTE15
97   );
98 
99   open c;
100   fetch c into X_ROWID;
101   if (c%notfound) then
102     close c;
103     raise no_data_found;
104   end if;
105   close c;
106 
107   insert into AK_OBJECTS_TL (
108     DATABASE_OBJECT_NAME,
109     LANGUAGE,
110     NAME,
111     DESCRIPTION,
112     SOURCE_LANG,
113     CREATED_BY,
114     CREATION_DATE,
115     LAST_UPDATED_BY,
116     LAST_UPDATE_DATE,
117     LAST_UPDATE_LOGIN
118   ) select
119     X_DATABASE_OBJECT_NAME,
120     L.LANGUAGE_CODE,
121     X_NAME,
122     X_DESCRIPTION,
123     userenv('LANG'),
124     X_CREATED_BY,
125     X_CREATION_DATE,
126     X_LAST_UPDATED_BY,
127     X_LAST_UPDATE_DATE,
128     X_LAST_UPDATE_LOGIN
129   from FND_LANGUAGES L
130   where L.INSTALLED_FLAG in ('I', 'B')
131   and not exists
132     (select NULL
133     from AK_OBJECTS_TL T
134     where T.DATABASE_OBJECT_NAME = X_DATABASE_OBJECT_NAME
135     and T.LANGUAGE = L.LANGUAGE_CODE);
136 end INSERT_ROW;
137 
138 procedure LOCK_ROW (
139   X_DATABASE_OBJECT_NAME in VARCHAR2,
140   X_ATTRIBUTE_CATEGORY in VARCHAR2,
141   X_ATTRIBUTE1 in VARCHAR2,
142   X_ATTRIBUTE2 in VARCHAR2,
143   X_ATTRIBUTE3 in VARCHAR2,
144   X_ATTRIBUTE4 in VARCHAR2,
145   X_ATTRIBUTE5 in VARCHAR2,
146   X_ATTRIBUTE6 in VARCHAR2,
147   X_ATTRIBUTE7 in VARCHAR2,
148   X_ATTRIBUTE8 in VARCHAR2,
149   X_ATTRIBUTE9 in VARCHAR2,
150   X_ATTRIBUTE10 in VARCHAR2,
151   X_ATTRIBUTE11 in VARCHAR2,
152   X_ATTRIBUTE12 in VARCHAR2,
153   X_ATTRIBUTE13 in VARCHAR2,
154   X_ATTRIBUTE14 in VARCHAR2,
155   X_ATTRIBUTE15 in VARCHAR2,
156   X_APPLICATION_ID in NUMBER,
157   X_NAME in VARCHAR2,
158   X_DESCRIPTION in VARCHAR2,
159   X_PRIMARY_KEY_NAME IN VARCHAR2,
160   X_DEFAULTING_API_PKG IN VARCHAR2,
161   X_DEFAULTING_API_PROC IN VARCHAR2,
162   X_VALIDATION_API_PKG IN VARCHAR2,
163   X_VALIDATION_API_PROC IN VARCHAR2
164 ) is
165   cursor c is select
166       ATTRIBUTE_CATEGORY,
167       ATTRIBUTE1,
168       ATTRIBUTE2,
169       ATTRIBUTE3,
170       ATTRIBUTE4,
171       ATTRIBUTE5,
172       ATTRIBUTE6,
173       ATTRIBUTE7,
174       ATTRIBUTE8,
175       ATTRIBUTE9,
176       ATTRIBUTE10,
177       ATTRIBUTE11,
178       ATTRIBUTE12,
179       ATTRIBUTE13,
180       ATTRIBUTE14,
181       ATTRIBUTE15,
182       APPLICATION_ID,
183       PRIMARY_KEY_NAME,
184       DEFAULTING_API_PKG,
185       DEFAULTING_API_PROC,
186       VALIDATION_API_PKG,
187       VALIDATION_API_PROC
188     from AK_OBJECTS
189     where DATABASE_OBJECT_NAME = X_DATABASE_OBJECT_NAME
190     for update of DATABASE_OBJECT_NAME nowait;
191   recinfo c%rowtype;
192 
193   cursor c1 is select
194       NAME,
195       DESCRIPTION
196     from AK_OBJECTS_TL
197     where DATABASE_OBJECT_NAME = X_DATABASE_OBJECT_NAME
198     and LANGUAGE = userenv('LANG')
199     for update of DATABASE_OBJECT_NAME 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       if ( ((recinfo.ATTRIBUTE_CATEGORY = X_ATTRIBUTE_CATEGORY)
212            OR ((recinfo.ATTRIBUTE_CATEGORY is null)
213                AND (X_ATTRIBUTE_CATEGORY is null)))
214       AND ((recinfo.ATTRIBUTE1 = X_ATTRIBUTE1)
215            OR ((recinfo.ATTRIBUTE1 is null)
216                AND (X_ATTRIBUTE1 is null)))
217       AND ((recinfo.ATTRIBUTE2 = X_ATTRIBUTE2)
218            OR ((recinfo.ATTRIBUTE2 is null)
219                AND (X_ATTRIBUTE2 is null)))
220       AND ((recinfo.ATTRIBUTE3 = X_ATTRIBUTE3)
221            OR ((recinfo.ATTRIBUTE3 is null)
222                AND (X_ATTRIBUTE3 is null)))
223       AND ((recinfo.ATTRIBUTE4 = X_ATTRIBUTE4)
224            OR ((recinfo.ATTRIBUTE4 is null)
225                AND (X_ATTRIBUTE4 is null)))
226       AND ((recinfo.ATTRIBUTE5 = X_ATTRIBUTE5)
227            OR ((recinfo.ATTRIBUTE5 is null)
228                AND (X_ATTRIBUTE5 is null)))
229       AND ((recinfo.ATTRIBUTE6 = X_ATTRIBUTE6)
230            OR ((recinfo.ATTRIBUTE6 is null)
231                AND (X_ATTRIBUTE6 is null)))
232       AND ((recinfo.ATTRIBUTE7 = X_ATTRIBUTE7)
233            OR ((recinfo.ATTRIBUTE7 is null)
234                AND (X_ATTRIBUTE7 is null)))
235       AND ((recinfo.ATTRIBUTE8 = X_ATTRIBUTE8)
236            OR ((recinfo.ATTRIBUTE8 is null)
237                AND (X_ATTRIBUTE8 is null)))
238       AND ((recinfo.ATTRIBUTE9 = X_ATTRIBUTE9)
239            OR ((recinfo.ATTRIBUTE9 is null)
240                AND (X_ATTRIBUTE9 is null)))
241       AND ((recinfo.ATTRIBUTE10 = X_ATTRIBUTE10)
242            OR ((recinfo.ATTRIBUTE10 is null)
243                AND (X_ATTRIBUTE10 is null)))
244       AND ((recinfo.ATTRIBUTE11 = X_ATTRIBUTE11)
245            OR ((recinfo.ATTRIBUTE11 is null)
246                AND (X_ATTRIBUTE11 is null)))
247       AND ((recinfo.ATTRIBUTE12 = X_ATTRIBUTE12)
248            OR ((recinfo.ATTRIBUTE12 is null)
249                AND (X_ATTRIBUTE12 is null)))
250       AND ((recinfo.ATTRIBUTE13 = X_ATTRIBUTE13)
251            OR ((recinfo.ATTRIBUTE13 is null)
252                AND (X_ATTRIBUTE13 is null)))
253       AND ((recinfo.ATTRIBUTE14 = X_ATTRIBUTE14)
254            OR ((recinfo.ATTRIBUTE14 is null)
255                AND (X_ATTRIBUTE14 is null)))
256       AND ((recinfo.ATTRIBUTE15 = X_ATTRIBUTE15)
257            OR ((recinfo.ATTRIBUTE15 is null)
258                AND (X_ATTRIBUTE15 is null)))
259       AND (recinfo.APPLICATION_ID = X_APPLICATION_ID)
260       AND ((recinfo.PRIMARY_KEY_NAME = X_PRIMARY_KEY_NAME)
261            OR ((recinfo.PRIMARY_KEY_NAME is null)
262                AND (X_PRIMARY_KEY_NAME is null)))
263       AND ((recinfo.DEFAULTING_API_PKG = X_DEFAULTING_API_PKG)
264            OR ((recinfo.DEFAULTING_API_PKG is null)
265 	       AND (X_DEFAULTING_API_PKG is null)))
266       AND ((recinfo.DEFAULTING_API_PROC = X_DEFAULTING_API_PROC)
267            OR ((recinfo.DEFAULTING_API_PROC is null)
268 	       AND (X_DEFAULTING_API_PROC is null)))
269       AND ((recinfo.VALIDATION_API_PKG = X_VALIDATION_API_PKG)
270            OR ((recinfo.VALIDATION_API_PKG is null)
271 	       AND (X_VALIDATION_API_PKG is null)))
272       AND ((recinfo.VALIDATION_API_PROC = X_VALIDATION_API_PROC)
273            OR ((recinfo.VALIDATION_API_PROC is null)
274 	       AND (X_VALIDATION_API_PROC is null)))
275   ) then
276     null;
277   else
278     fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
279     app_exception.raise_exception;
280   end if;
281 
282   open c1;
283   fetch c1 into tlinfo;
284   if (c1%notfound) then
285     close c1;
286     return;
287   end if;
288   close c1;
289 
290   if ( (tlinfo.NAME = X_NAME)
291       AND ((tlinfo.DESCRIPTION = X_DESCRIPTION)
292            OR ((tlinfo.DESCRIPTION is null)
293                AND (X_DESCRIPTION is null)))
294   ) then
295     null;
296   else
297     fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
298     app_exception.raise_exception;
299   end if;
300   return;
301 end LOCK_ROW;
302 
303 procedure UPDATE_ROW (
304   X_DATABASE_OBJECT_NAME in VARCHAR2,
305   X_APPLICATION_ID in NUMBER,
306   X_NAME in VARCHAR2,
307   X_DESCRIPTION in VARCHAR2,
308   X_PRIMARY_KEY_NAME IN VARCHAR2,
309   X_DEFAULTING_API_PKG IN VARCHAR2,
310   X_DEFAULTING_API_PROC IN VARCHAR2,
311   X_VALIDATION_API_PKG IN VARCHAR2,
312   X_VALIDATION_API_PROC IN VARCHAR2,
313   X_LAST_UPDATE_DATE in DATE,
314   X_LAST_UPDATED_BY in NUMBER,
315   X_LAST_UPDATE_LOGIN in NUMBER,
316   X_ATTRIBUTE_CATEGORY in VARCHAR2,
317   X_ATTRIBUTE1 in VARCHAR2,
318   X_ATTRIBUTE2 in VARCHAR2,
319   X_ATTRIBUTE3 in VARCHAR2,
320   X_ATTRIBUTE4 in VARCHAR2,
321   X_ATTRIBUTE5 in VARCHAR2,
322   X_ATTRIBUTE6 in VARCHAR2,
323   X_ATTRIBUTE7 in VARCHAR2,
324   X_ATTRIBUTE8 in VARCHAR2,
325   X_ATTRIBUTE9 in VARCHAR2,
326   X_ATTRIBUTE10 in VARCHAR2,
327   X_ATTRIBUTE11 in VARCHAR2,
328   X_ATTRIBUTE12 in VARCHAR2,
329   X_ATTRIBUTE13 in VARCHAR2,
330   X_ATTRIBUTE14 in VARCHAR2,
331   X_ATTRIBUTE15 in VARCHAR2
332 ) is
333 begin
334   update AK_OBJECTS set
335     ATTRIBUTE_CATEGORY = X_ATTRIBUTE_CATEGORY,
336     ATTRIBUTE1 = X_ATTRIBUTE1,
337     ATTRIBUTE2 = X_ATTRIBUTE2,
338     ATTRIBUTE3 = X_ATTRIBUTE3,
339     ATTRIBUTE4 = X_ATTRIBUTE4,
340     ATTRIBUTE5 = X_ATTRIBUTE5,
341     ATTRIBUTE6 = X_ATTRIBUTE6,
342     ATTRIBUTE7 = X_ATTRIBUTE7,
343     ATTRIBUTE8 = X_ATTRIBUTE8,
344     ATTRIBUTE9 = X_ATTRIBUTE9,
345     ATTRIBUTE10 = X_ATTRIBUTE10,
346     ATTRIBUTE11 = X_ATTRIBUTE11,
347     ATTRIBUTE12 = X_ATTRIBUTE12,
348     ATTRIBUTE13 = X_ATTRIBUTE13,
349     ATTRIBUTE14 = X_ATTRIBUTE14,
350     ATTRIBUTE15 = X_ATTRIBUTE15,
351     APPLICATION_ID = X_APPLICATION_ID,
352     PRIMARY_KEY_NAME = X_PRIMARY_KEY_NAME,
353     DEFAULTING_API_PKG = X_DEFAULTING_API_PKG,
354     DEFAULTING_API_PROC = X_DEFAULTING_API_PROC,
355     VALIDATION_API_PKG = X_VALIDATION_API_PKG,
356     VALIDATION_API_PROC = X_VALIDATION_API_PROC,
357     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
358     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
359     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
360   where DATABASE_OBJECT_NAME = X_DATABASE_OBJECT_NAME;
361 
362   if (sql%notfound) then
363     raise no_data_found;
364   end if;
365 
366   update AK_OBJECTS_TL set
367     NAME = X_NAME,
368     DESCRIPTION = X_DESCRIPTION,
369     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
370     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
371     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
372     SOURCE_LANG = userenv('LANG')
373   where DATABASE_OBJECT_NAME = X_DATABASE_OBJECT_NAME
374   and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
375 
376   if (sql%notfound) then
377     raise no_data_found;
378   end if;
379 end UPDATE_ROW;
380 
381 procedure DELETE_ROW (
382   X_DATABASE_OBJECT_NAME in VARCHAR2
383 ) is
384 begin
385   delete from AK_OBJECTS
386   where DATABASE_OBJECT_NAME = X_DATABASE_OBJECT_NAME;
387 
388   if (sql%notfound) then
389     raise no_data_found;
390   end if;
391 
392   delete from AK_OBJECTS_TL
393   where DATABASE_OBJECT_NAME = X_DATABASE_OBJECT_NAME;
394   if (sql%notfound) then
395     raise no_data_found;
396   end if;
397 end DELETE_ROW;
398 
399 procedure ADD_LANGUAGE
400 is
401 begin
402 
403 /* Mar/19/03 requested by Ric Ginsberg */
404 /* The following delete and update statements are commented out */
405 /* as a quick workaround to fix the time-consuming table handler issue */
406 /* Eventually we'll need to turn them into a separate fix_language procedure */
407 /*
408   delete from AK_OBJECTS_TL T
409   where not exists
410     (select NULL
411     from AK_OBJECTS B
412     where B.DATABASE_OBJECT_NAME = T.DATABASE_OBJECT_NAME
413     );
414 
415   update AK_OBJECTS_TL T set (
416       NAME,
417       DESCRIPTION
418     ) = (select
419       B.NAME,
420       B.DESCRIPTION
421     from AK_OBJECTS_TL B
422     where B.DATABASE_OBJECT_NAME = T.DATABASE_OBJECT_NAME
423     and B.LANGUAGE = T.SOURCE_LANG)
424   where (
425       T.DATABASE_OBJECT_NAME,
426       T.LANGUAGE
427   ) in (select
428       SUBT.DATABASE_OBJECT_NAME,
429       SUBT.LANGUAGE
430     from AK_OBJECTS_TL SUBB, AK_OBJECTS_TL SUBT
431     where SUBB.DATABASE_OBJECT_NAME = SUBT.DATABASE_OBJECT_NAME
432     and SUBB.LANGUAGE = SUBT.SOURCE_LANG
433     and (SUBB.NAME <> SUBT.NAME
434       or (SUBB.NAME is null and SUBT.NAME is not null)
435       or (SUBB.NAME is not null and SUBT.NAME is null)
436       or SUBB.DESCRIPTION <> SUBT.DESCRIPTION
437       or (SUBB.DESCRIPTION is null and SUBT.DESCRIPTION is not null)
438       or (SUBB.DESCRIPTION is not null and SUBT.DESCRIPTION is null)
439   ));
440 */
441 
442   insert /*+ append parallel(tt) */ into AK_OBJECTS_TL tt (
443     DATABASE_OBJECT_NAME,
444     NAME,
445     DESCRIPTION,
446     CREATED_BY,
447     CREATION_DATE,
448     LAST_UPDATED_BY,
449     LAST_UPDATE_DATE,
450     LAST_UPDATE_LOGIN,
451     LANGUAGE,
452     SOURCE_LANG
453   ) select /*+ parallel(v) parallel(t) use_nl(t)  */ v.* from
454 (select /*+ no_merge ordered parallel(b) */
455     B.DATABASE_OBJECT_NAME,
456     B.NAME,
457     B.DESCRIPTION,
458     B.CREATED_BY,
459     B.CREATION_DATE,
460     B.LAST_UPDATED_BY,
461     B.LAST_UPDATE_DATE,
462     B.LAST_UPDATE_LOGIN,
463     L.LANGUAGE_CODE,
464     B.SOURCE_LANG
465   from AK_OBJECTS_TL B, FND_LANGUAGES L
466   where L.INSTALLED_FLAG in ('I', 'B')
467   and B.LANGUAGE = userenv('LANG')
468 ) v, AK_OBJECTS_TL T
469     where T.DATABASE_OBJECT_NAME(+) = v.DATABASE_OBJECT_NAME
470     and T.LANGUAGE(+) = v.LANGUAGE_CODE
471 and T.DATABASE_OBJECT_NAME is NULL;
472 
473 end ADD_LANGUAGE;
474 
475 end AK_OBJECTS_PKG;