DBA Data[Home] [Help]

PACKAGE BODY: APPS.PER_CAGR_APIS_PKG

Source


1 package body PER_CAGR_APIS_PKG as
2 /* $Header: peapilct.pkb 120.1 2006/06/20 09:24:40 bshukla noship $ */
3 
4 procedure KEY_TO_IDS (
5   X_API_NAME  in VARCHAR2,
6   X_CAGR_API_ID out nocopy NUMBER
7 
8 ) is
9 
10   cursor CSR_CAGR_API_NAME (
11     X_API_NAME VARCHAR2
12     ) is
13     select API.CAGR_API_ID
14     from PER_CAGR_APIS API
15     where API.API_NAME = X_API_NAME;
16 
17   cursor CSR_SEQUENCE is
18     select PER_CAGR_APIS_S.nextval
19     from   dual;
20 
21 begin
22 
23   open CSR_CAGR_API_NAME (    X_API_NAME );
24   fetch CSR_CAGR_API_NAME into X_CAGR_API_ID;
25   if (CSR_CAGR_API_NAME%notfound) then
26     open CSR_SEQUENCE;
27     fetch CSR_SEQUENCE into X_CAGR_API_ID;
28     close CSR_SEQUENCE;
29   end if;
30   close CSR_CAGR_API_NAME;
31 end KEY_TO_IDS;
32 
33 procedure INSERT_ROW (
34   X_ROWID in out nocopy VARCHAR2,
35   X_CAGR_API_ID in NUMBER,
36   X_OBJECT_VERSION_NUMBER in NUMBER,
37   X_CATEGORY_NAME in VARCHAR2,
38   X_API_NAME in VARCHAR2,
39   X_CREATION_DATE in DATE,
40   X_CREATED_BY in NUMBER,
41   X_LAST_UPDATE_DATE in DATE,
42   X_LAST_UPDATED_BY in NUMBER,
43   X_LAST_UPDATE_LOGIN in NUMBER
44 ) is
45   cursor C is select ROWID from PER_CAGR_APIS
46     where CAGR_API_ID = X_CAGR_API_ID
47     ;
48 begin
49   insert into PER_CAGR_APIS (
50     OBJECT_VERSION_NUMBER,
51     CATEGORY_NAME,
52     API_NAME,
53     CAGR_API_ID,
54     CREATION_DATE,
55     CREATED_BY,
56     LAST_UPDATE_DATE,
57     LAST_UPDATED_BY,
58     LAST_UPDATE_LOGIN
59   ) values (
60     X_OBJECT_VERSION_NUMBER,
61     X_CATEGORY_NAME,
62     X_API_NAME,
63     X_CAGR_API_ID,
64     X_CREATION_DATE,
65     X_CREATED_BY,
66     X_LAST_UPDATE_DATE,
67     X_LAST_UPDATED_BY,
68     X_LAST_UPDATE_LOGIN
69   );
70 
71   insert into PER_CAGR_APIS_TL (
72     LAST_UPDATE_DATE,
73     LAST_UPDATED_BY,
74     CAGR_API_ID,
75     API_NAME,
76     LAST_UPDATE_LOGIN,
77     CREATED_BY,
78     CREATION_DATE,
79     LANGUAGE,
80     SOURCE_LANG
81   ) select
82     X_LAST_UPDATE_DATE,
83     X_LAST_UPDATED_BY,
84     X_CAGR_API_ID,
85     X_API_NAME,
86     X_LAST_UPDATE_LOGIN,
87     X_CREATED_BY,
88     X_CREATION_DATE,
89     L.LANGUAGE_CODE,
90     userenv('LANG')
91   from FND_LANGUAGES L
92   where L.INSTALLED_FLAG in ('I', 'B')
93   and not exists
94     (select NULL
95     from PER_CAGR_APIS_TL T
96     where T.CAGR_API_ID = X_CAGR_API_ID
97     and T.LANGUAGE = L.LANGUAGE_CODE);
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 end INSERT_ROW;
108 
109 procedure TRANSLATE_ROW (
110   X_API_NAME1                 in VARCHAR2 default null,
111   X_API_NAME                  in VARCHAR2,
112   X_OWNER                     in VARCHAR2
113    ) is
114 X_CAGR_API_ID NUMBER;
115 
116 begin
117 
118  KEY_TO_IDS (
119     X_API_NAME1,
120     X_CAGR_API_ID
121   );
122 
123 
124   update per_cagr_apis_tl set
125     api_name           = X_API_NAME,
126     last_update_date  = sysdate,
127     last_updated_by   = decode(X_OWNER, 'SEED', 1, 0),
128     last_update_login = 0,
129     source_lang       = userenv('LANG')
130   where cagr_api_id   = X_CAGR_API_ID
131   and userenv('LANG') in (language, source_lang);
132 
133 end TRANSLATE_ROW;
134 
135 
136 procedure LOAD_ROW (
137   X_API_NAME                  in VARCHAR2,
138   X_CATEGORY_NAME 	      in VARCHAR2,
139   X_OWNER                     in VARCHAR2,
140   X_OBJECT_VERSION_NUMBER     in NUMBER) is
141 
142   X_ROW_ID ROWID;
143   user_id number := 0;
144   X_CAGR_API_ID NUMBER;
145 
146 begin
147 
148  KEY_TO_IDS (
149     X_API_NAME,
150     X_CAGR_API_ID
151   );
152 
153 if (X_OWNER = 'SEED') then
154     user_id := 1;
155   else
156     user_id := 0;
157   end if;
158 
159 PER_CAGR_APIS_PKG.UPDATE_ROW (
160   X_CAGR_API_ID => X_CAGR_API_ID,
161   X_OBJECT_VERSION_NUMBER => X_OBJECT_VERSION_NUMBER,
162   X_CATEGORY_NAME => X_CATEGORY_NAME,
163   X_API_NAME => X_API_NAME,
164   X_LAST_UPDATE_DATE => SYSDATE,
165   X_LAST_UPDATED_BY => USER_ID,
166   X_LAST_UPDATE_LOGIN => 0);
167 
168 exception
169   when NO_DATA_FOUND then
170 
171 
172 PER_CAGR_APIS_PKG.INSERT_ROW(
173   X_ROWID => X_ROW_ID,
174   X_CAGR_API_ID => X_CAGR_API_ID,
175   X_OBJECT_VERSION_NUMBER => X_OBJECT_VERSION_NUMBER,
176   X_CATEGORY_NAME => X_CATEGORY_NAME,
177   X_API_NAME => X_API_NAME,
178   X_CREATION_DATE => SYSDATE,
179   X_CREATED_BY => USER_ID,
180   X_LAST_UPDATE_DATE => SYSDATE,
181   X_LAST_UPDATED_BY => USER_ID,
182   X_LAST_UPDATE_LOGIN => 0);
183 
184 end LOAD_ROW;
185 
186 
187 procedure LOCK_ROW (
188   X_CAGR_API_ID in NUMBER,
189   X_OBJECT_VERSION_NUMBER in NUMBER,
190   X_CATEGORY_NAME in VARCHAR2,
191   X_API_NAME in VARCHAR2
192 ) is
193   cursor c is select
194       OBJECT_VERSION_NUMBER,
195       CATEGORY_NAME
196     from PER_CAGR_APIS
197     where CAGR_API_ID = X_CAGR_API_ID
198     for update of CAGR_API_ID nowait;
199   recinfo c%rowtype;
200 
201   cursor c1 is select
202       API_NAME,
203       decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
204     from PER_CAGR_APIS_TL
205     where CAGR_API_ID = X_CAGR_API_ID
206     and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
207     for update of CAGR_API_ID nowait;
208 begin
209   open c;
210   fetch c into recinfo;
211   if (c%notfound) then
212     close c;
213     fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
214     app_exception.raise_exception;
215   end if;
216   close c;
217   if (    (recinfo.OBJECT_VERSION_NUMBER = X_OBJECT_VERSION_NUMBER)
218       AND (recinfo.CATEGORY_NAME = X_CATEGORY_NAME)
219   ) then
220     null;
221   else
222     fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
223     app_exception.raise_exception;
224   end if;
225 
226   for tlinfo in c1 loop
227     if (tlinfo.BASELANG = 'Y') then
228       if (    (tlinfo.API_NAME = X_API_NAME)
229       ) then
230         null;
231       else
232         fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
233         app_exception.raise_exception;
234       end if;
235     end if;
236   end loop;
237   return;
238 end LOCK_ROW;
239 
240 procedure UPDATE_ROW (
241   X_CAGR_API_ID in NUMBER,
242   X_OBJECT_VERSION_NUMBER in NUMBER,
243   X_CATEGORY_NAME in VARCHAR2,
244   X_API_NAME in VARCHAR2,
245   X_LAST_UPDATE_DATE in DATE,
246   X_LAST_UPDATED_BY in NUMBER,
247   X_LAST_UPDATE_LOGIN in NUMBER
248 ) is
249 begin
250   update PER_CAGR_APIS set
251     OBJECT_VERSION_NUMBER = X_OBJECT_VERSION_NUMBER,
252     CATEGORY_NAME = X_CATEGORY_NAME,
253     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
254     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
255     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
256   where CAGR_API_ID = X_CAGR_API_ID;
257 
258   if (sql%notfound) then
259     raise no_data_found;
260   end if;
261 
262   update PER_CAGR_APIS_TL set
263     API_NAME = X_API_NAME,
264     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
265     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
266     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
267     SOURCE_LANG = userenv('LANG')
268   where CAGR_API_ID = X_CAGR_API_ID
269   and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
270 
271   if (sql%notfound) then
272     raise no_data_found;
273   end if;
274 end UPDATE_ROW;
275 
276 procedure DELETE_ROW (
277   X_CAGR_API_ID in NUMBER
278 ) is
279 begin
280   delete from PER_CAGR_APIS_TL
281   where CAGR_API_ID = X_CAGR_API_ID;
282 
283   if (sql%notfound) then
284     raise no_data_found;
285   end if;
286 
287   delete from PER_CAGR_APIS
288   where CAGR_API_ID = X_CAGR_API_ID;
289 
290   if (sql%notfound) then
291     raise no_data_found;
292   end if;
293 end DELETE_ROW;
294 
295 procedure ADD_LANGUAGE
296 is
297 begin
298   delete from PER_CAGR_APIS_TL T
299   where not exists
300     (select NULL
301     from PER_CAGR_APIS B
302     where B.CAGR_API_ID = T.CAGR_API_ID
303     );
304 
305   update PER_CAGR_APIS_TL T set (
306       API_NAME
307     ) = (select
308       B.API_NAME
309     from PER_CAGR_APIS_TL B
310     where B.CAGR_API_ID = T.CAGR_API_ID
311     and B.LANGUAGE = T.SOURCE_LANG)
312   where (
313       T.CAGR_API_ID,
314       T.LANGUAGE
315   ) in (select
316       SUBT.CAGR_API_ID,
317       SUBT.LANGUAGE
318     from PER_CAGR_APIS_TL SUBB, PER_CAGR_APIS_TL SUBT
319     where SUBB.CAGR_API_ID = SUBT.CAGR_API_ID
320     and SUBB.LANGUAGE = SUBT.SOURCE_LANG
321     and (SUBB.API_NAME <> SUBT.API_NAME
322   ));
323 
324   insert into PER_CAGR_APIS_TL (
325     LAST_UPDATE_DATE,
326     LAST_UPDATED_BY,
327     CAGR_API_ID,
328     API_NAME,
329     LAST_UPDATE_LOGIN,
330     CREATED_BY,
331     CREATION_DATE,
332     LANGUAGE,
333     SOURCE_LANG
334   ) select /*+ ORDERED */
335     B.LAST_UPDATE_DATE,
336     B.LAST_UPDATED_BY,
337     B.CAGR_API_ID,
338     B.API_NAME,
339     B.LAST_UPDATE_LOGIN,
340     B.CREATED_BY,
341     B.CREATION_DATE,
342     L.LANGUAGE_CODE,
343     B.SOURCE_LANG
344   from PER_CAGR_APIS_TL B, FND_LANGUAGES L
345   where L.INSTALLED_FLAG in ('I', 'B')
346   and B.LANGUAGE = userenv('LANG')
347   and not exists
348     (select NULL
349     from PER_CAGR_APIS_TL T
350     where T.CAGR_API_ID = B.CAGR_API_ID
351     and T.LANGUAGE = L.LANGUAGE_CODE);
352 end ADD_LANGUAGE;
353 
354 
355 end PER_CAGR_APIS_PKG;