DBA Data[Home] [Help]

PACKAGE BODY: APPS.GMA_PROCCOL_WF_PKG

Source


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