DBA Data[Home] [Help]

PACKAGE BODY: APPS.XDP_FULFILL_ACTIONS_PKG

Source


1 package body XDP_FULFILL_ACTIONS_PKG as
2 /* $Header: XDPFAB.pls 120.2 2005/07/14 08:32:27 appldev ship $ */
3 procedure INSERT_ROW (
4   X_ROWID in OUT NOCOPY VARCHAR2,
5   X_FULFILLMENT_ACTION_ID in NUMBER,
6   X_FULFILLMENT_ACTION in VARCHAR2,
7   X_VERSION in VARCHAR2,
8   X_FE_ROUTING_PROC in VARCHAR2,
9   X_EVALUATE_PARAM_PROC in VARCHAR2,
10   X_FA_TYPE_CODE in VARCHAR2,
11   X_ROLE_NAME in VARCHAR2,
12   X_DISPLAY_NAME in VARCHAR2,
13   X_DESCRIPTION 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 ) is
20   cursor C is select ROWID from XDP_FULFILL_ACTIONS
21     where FULFILLMENT_ACTION_ID = X_FULFILLMENT_ACTION_ID
22     ;
23 begin
24   insert into XDP_FULFILL_ACTIONS (
25     FULFILLMENT_ACTION_ID,
26     FULFILLMENT_ACTION,
27     VERSION,
28     FE_ROUTING_PROC,
29     EVALUATE_PARAM_PROC,
30     FA_TYPE_CODE,
31     ROLE_NAME,
32     CREATION_DATE,
33     CREATED_BY,
34     LAST_UPDATE_DATE,
35     LAST_UPDATED_BY,
36     LAST_UPDATE_LOGIN
37   ) values (
38     X_FULFILLMENT_ACTION_ID,
39     X_FULFILLMENT_ACTION,
40     X_VERSION,
41     X_FE_ROUTING_PROC,
42     X_EVALUATE_PARAM_PROC,
43     X_FA_TYPE_CODE,
44     X_ROLE_NAME,
45     X_CREATION_DATE,
46     X_CREATED_BY,
47     X_LAST_UPDATE_DATE,
48     X_LAST_UPDATED_BY,
49     X_LAST_UPDATE_LOGIN
50   );
51 
52   insert into XDP_FULFILL_ACTIONS_TL (
53     FULFILLMENT_ACTION_ID,
54     DISPLAY_NAME,
55     DESCRIPTION,
56     CREATED_BY,
57     CREATION_DATE,
58     LAST_UPDATED_BY,
59     LAST_UPDATE_DATE,
60     LAST_UPDATE_LOGIN,
61     LANGUAGE,
62     SOURCE_LANG
63   ) select
64     X_FULFILLMENT_ACTION_ID,
65     X_DISPLAY_NAME,
66     X_DESCRIPTION,
67     X_CREATED_BY,
68     X_CREATION_DATE,
69     X_LAST_UPDATED_BY,
70     X_LAST_UPDATE_DATE,
71     X_LAST_UPDATE_LOGIN,
72     L.LANGUAGE_CODE,
73     userenv('LANG')
74   from FND_LANGUAGES L
75   where L.INSTALLED_FLAG in ('I', 'B')
76   and not exists
77     (select NULL
78     from XDP_FULFILL_ACTIONS_TL T
79     where T.FULFILLMENT_ACTION_ID = X_FULFILLMENT_ACTION_ID
80     and T.LANGUAGE = L.LANGUAGE_CODE);
81 
82   open c;
83   fetch c into X_ROWID;
84   if (c%notfound) then
85     close c;
86     raise no_data_found;
87   end if;
88   close c;
89 
90 end INSERT_ROW;
91 
92 procedure LOCK_ROW (
93   X_FULFILLMENT_ACTION_ID in NUMBER,
94   X_FULFILLMENT_ACTION in VARCHAR2,
95   X_VERSION in VARCHAR2,
96   X_FE_ROUTING_PROC in VARCHAR2,
97   X_EVALUATE_PARAM_PROC in VARCHAR2,
98   X_FA_TYPE_CODE in VARCHAR2,
99   X_ROLE_NAME in VARCHAR2,
100   X_DISPLAY_NAME in VARCHAR2,
101   X_DESCRIPTION in VARCHAR2
102 ) is
103   cursor c is select
104       FULFILLMENT_ACTION,
105       VERSION,
106       FE_ROUTING_PROC,
107       EVALUATE_PARAM_PROC,
108       FA_TYPE_CODE,
109       ROLE_NAME
110     from XDP_FULFILL_ACTIONS
111     where FULFILLMENT_ACTION_ID = X_FULFILLMENT_ACTION_ID
112     for update of FULFILLMENT_ACTION_ID nowait;
113   recinfo c%rowtype;
114 
115   cursor c1 is select
116       DISPLAY_NAME,
117       DESCRIPTION,
118       decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
119     from XDP_FULFILL_ACTIONS_TL
120     where FULFILLMENT_ACTION_ID = X_FULFILLMENT_ACTION_ID
121     and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
122     for update of FULFILLMENT_ACTION_ID nowait;
123 begin
124   open c;
125   fetch c into recinfo;
126   if (c%notfound) then
127     close c;
128     fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
129     app_exception.raise_exception;
130   end if;
131   close c;
132   if (    (recinfo.FULFILLMENT_ACTION = X_FULFILLMENT_ACTION)
133       AND (recinfo.VERSION = X_VERSION)
134       AND ((recinfo.FE_ROUTING_PROC = X_FE_ROUTING_PROC)
135            OR ((recinfo.FE_ROUTING_PROC is null) AND (X_FE_ROUTING_PROC is null)))
136       AND ((recinfo.EVALUATE_PARAM_PROC = X_EVALUATE_PARAM_PROC)
137            OR ((recinfo.EVALUATE_PARAM_PROC is null) AND (X_EVALUATE_PARAM_PROC is null)))
138       AND ((recinfo.FA_TYPE_CODE = X_FA_TYPE_CODE)
139            OR ((recinfo.FA_TYPE_CODE is null) AND (X_FA_TYPE_CODE is null)))
140       AND ((recinfo.ROLE_NAME = X_ROLE_NAME)
141            OR ((recinfo.ROLE_NAME is null) AND (X_ROLE_NAME is null)))
142   ) then
143     null;
144   else
145     fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
146     app_exception.raise_exception;
147   end if;
148 
149   for tlinfo in c1 loop
150     if (tlinfo.BASELANG = 'Y') then
151       if (    (tlinfo.DISPLAY_NAME = X_DISPLAY_NAME)
152           AND ((tlinfo.DESCRIPTION = X_DESCRIPTION)
153                OR ((tlinfo.DESCRIPTION is null) AND (X_DESCRIPTION is null)))
154       ) then
155         null;
156       else
157         fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
158         app_exception.raise_exception;
159       end if;
160     end if;
161   end loop;
162   return;
163 end LOCK_ROW;
164 
165 procedure UPDATE_ROW (
166   X_FULFILLMENT_ACTION_ID in NUMBER,
167   X_FULFILLMENT_ACTION in VARCHAR2,
168   X_VERSION in VARCHAR2,
169   X_FE_ROUTING_PROC in VARCHAR2,
170   X_EVALUATE_PARAM_PROC in VARCHAR2,
171   X_FA_TYPE_CODE in VARCHAR2,
172   X_ROLE_NAME in VARCHAR2,
173   X_DISPLAY_NAME in VARCHAR2,
174   X_DESCRIPTION in VARCHAR2,
175   X_LAST_UPDATE_DATE in DATE,
176   X_LAST_UPDATED_BY in NUMBER,
177   X_LAST_UPDATE_LOGIN in NUMBER
178 ) is
179 begin
180   update XDP_FULFILL_ACTIONS set
181     FULFILLMENT_ACTION = X_FULFILLMENT_ACTION,
182     VERSION = X_VERSION,
183     FE_ROUTING_PROC = X_FE_ROUTING_PROC,
184     EVALUATE_PARAM_PROC = X_EVALUATE_PARAM_PROC,
185     FA_TYPE_CODE = X_FA_TYPE_CODE,
186     ROLE_NAME = X_ROLE_NAME,
187     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
188     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
189     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
190   where FULFILLMENT_ACTION_ID = X_FULFILLMENT_ACTION_ID;
191 
192   if (sql%notfound) then
193     raise no_data_found;
194   end if;
195 
196   update XDP_FULFILL_ACTIONS_TL set
197     DISPLAY_NAME = X_DISPLAY_NAME,
198     DESCRIPTION = X_DESCRIPTION,
199     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
200     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
201     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
202     SOURCE_LANG = userenv('LANG')
203   where FULFILLMENT_ACTION_ID = X_FULFILLMENT_ACTION_ID
204   and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
205 
206   if (sql%notfound) then
207     raise no_data_found;
208   end if;
209 end UPDATE_ROW;
210 
211 procedure DELETE_ROW (
212   X_FULFILLMENT_ACTION_ID in NUMBER
213 ) is
214 begin
215   delete from XDP_FULFILL_ACTIONS_TL
216   where FULFILLMENT_ACTION_ID = X_FULFILLMENT_ACTION_ID;
217 
218   if (sql%notfound) then
219     raise no_data_found;
220   end if;
221 
222   delete from XDP_FULFILL_ACTIONS
223   where FULFILLMENT_ACTION_ID = X_FULFILLMENT_ACTION_ID;
224 
225   if (sql%notfound) then
226     raise no_data_found;
227   end if;
228 end DELETE_ROW;
229 
230 procedure ADD_LANGUAGE
231 is
232 begin
233   delete from XDP_FULFILL_ACTIONS_TL T
234   where not exists
235     (select NULL
236     from XDP_FULFILL_ACTIONS B
237     where B.FULFILLMENT_ACTION_ID = T.FULFILLMENT_ACTION_ID
238     );
239 
240   update XDP_FULFILL_ACTIONS_TL T set (
241       DISPLAY_NAME,
242       DESCRIPTION
243     ) = (select
244       B.DISPLAY_NAME,
245       B.DESCRIPTION
246     from XDP_FULFILL_ACTIONS_TL B
247     where B.FULFILLMENT_ACTION_ID = T.FULFILLMENT_ACTION_ID
248     and B.LANGUAGE = T.SOURCE_LANG)
249   where (
250       T.FULFILLMENT_ACTION_ID,
251       T.LANGUAGE
252   ) in (select
253       SUBT.FULFILLMENT_ACTION_ID,
254       SUBT.LANGUAGE
255     from XDP_FULFILL_ACTIONS_TL SUBB, XDP_FULFILL_ACTIONS_TL SUBT
256     where SUBB.FULFILLMENT_ACTION_ID = SUBT.FULFILLMENT_ACTION_ID
257     and SUBB.LANGUAGE = SUBT.SOURCE_LANG
258     and (SUBB.DISPLAY_NAME <> SUBT.DISPLAY_NAME
259       or SUBB.DESCRIPTION <> SUBT.DESCRIPTION
260       or (SUBB.DESCRIPTION is null and SUBT.DESCRIPTION is not null)
261       or (SUBB.DESCRIPTION is not null and SUBT.DESCRIPTION is null)
262   ));
263 
264   insert into XDP_FULFILL_ACTIONS_TL (
265     FULFILLMENT_ACTION_ID,
266     DISPLAY_NAME,
267     DESCRIPTION,
268     CREATED_BY,
269     CREATION_DATE,
270     LAST_UPDATED_BY,
271     LAST_UPDATE_DATE,
272     LAST_UPDATE_LOGIN,
273     LANGUAGE,
274     SOURCE_LANG
275   ) select
276     B.FULFILLMENT_ACTION_ID,
277     B.DISPLAY_NAME,
278     B.DESCRIPTION,
279     B.CREATED_BY,
280     B.CREATION_DATE,
281     B.LAST_UPDATED_BY,
282     B.LAST_UPDATE_DATE,
283     B.LAST_UPDATE_LOGIN,
284     L.LANGUAGE_CODE,
285     B.SOURCE_LANG
286   from XDP_FULFILL_ACTIONS_TL B, FND_LANGUAGES L
287   where L.INSTALLED_FLAG in ('I', 'B')
288   and B.LANGUAGE = userenv('LANG')
289   and not exists
290     (select NULL
291     from XDP_FULFILL_ACTIONS_TL T
292     where T.FULFILLMENT_ACTION_ID = B.FULFILLMENT_ACTION_ID
293     and T.LANGUAGE = L.LANGUAGE_CODE);
294 end ADD_LANGUAGE;
295 
296 procedure LOAD_ROW (
297   X_FULFILLMENT_ACTION_ID in NUMBER,
298   X_FULFILLMENT_ACTION in VARCHAR2,
299   X_VERSION in VARCHAR2,
300   X_FE_ROUTING_PROC in VARCHAR2,
301   X_EVALUATE_PARAM_PROC in VARCHAR2,
302   X_FA_TYPE_CODE in VARCHAR2,
303   X_ROLE_NAME in VARCHAR2,
304   X_DISPLAY_NAME in VARCHAR2,
305   X_DESCRIPTION in VARCHAR2,
306   X_OWNER in VARCHAR2) IS
307 begin
308 
309   declare
310      user_id            number := 0;
311      row_id             varchar2(64);
312 
313   begin
314 
315      /* The following derivation has been replaced with the FND API.		dputhiye 14-JUL-2005. R12 ATG "Seed Version by Date" Uptake */
316      --if (X_OWNER = 'SEED') then
317      --   user_id := 1;
318      --end if;
319      user_id := fnd_load_util.owner_id(X_OWNER);
320 
321      XDP_FULFILL_ACTIONS_PKG.UPDATE_ROW (
322   	X_FULFILLMENT_ACTION_ID => X_FULFILLMENT_ACTION_ID,
323   	X_FULFILLMENT_ACTION => X_FULFILLMENT_ACTION,
324   	X_VERSION => X_VERSION,
325   	X_FE_ROUTING_PROC => X_FE_ROUTING_PROC,
326   	X_EVALUATE_PARAM_PROC => X_EVALUATE_PARAM_PROC,
327   	X_FA_TYPE_CODE => X_FA_TYPE_CODE,
328   	X_ROLE_NAME => X_ROLE_NAME,
329   	X_DISPLAY_NAME => X_DISPLAY_NAME,
330   	X_DESCRIPTION => X_DESCRIPTION,
331         X_LAST_UPDATE_DATE => sysdate,
332         X_LAST_UPDATED_BY => user_id,
333         X_LAST_UPDATE_LOGIN => 0);
334 
335     exception
336        when NO_DATA_FOUND then
337           XDP_FULFILL_ACTIONS_PKG.INSERT_ROW (
338              	X_ROWID => row_id,
339   		X_FULFILLMENT_ACTION_ID => X_FULFILLMENT_ACTION_ID,
340   		X_FULFILLMENT_ACTION => X_FULFILLMENT_ACTION,
341   		X_VERSION => X_VERSION,
342   		X_FE_ROUTING_PROC => X_FE_ROUTING_PROC,
343   		X_EVALUATE_PARAM_PROC => X_EVALUATE_PARAM_PROC,
344   		X_FA_TYPE_CODE => X_FA_TYPE_CODE,
345   		X_ROLE_NAME => X_ROLE_NAME,
346              	X_DISPLAY_NAME => X_DISPLAY_NAME,
347              	X_DESCRIPTION => X_DESCRIPTION,
348              	X_CREATION_DATE => sysdate,
349              	X_CREATED_BY => user_id,
350              	X_LAST_UPDATE_DATE => sysdate,
351              	X_LAST_UPDATED_BY => user_id,
352              	X_LAST_UPDATE_LOGIN => 0);
353    end;
354 end LOAD_ROW;
355 
356 procedure TRANSLATE_ROW (
357    X_FULFILLMENT_ACTION_ID in NUMBER,
358    X_DISPLAY_NAME in VARCHAR2,
359    X_DESCRIPTION in VARCHAR2,
360    X_OWNER in VARCHAR2) IS
361 
362 begin
363 
364     -- only update rows that have not been altered by user
365 
366     update XDP_FULFILL_ACTIONS_TL
367     set display_name = X_DISPLAY_NAME,
368         description = X_DESCRIPTION,
369         source_lang = userenv('LANG'),
370         last_update_date = sysdate,
371         --last_updated_by = decode(X_OWNER, 'SEED', 1, 0),		/*dputhiye 14-JUL-2005. DECODE replaced with FND API.*/
372 	last_updated_by = fnd_load_util.owner_id(X_OWNER),
373         last_update_login = 0
374   where fulfillment_action_id = X_FULFILLMENT_ACTION_ID
375     and   userenv('LANG') in (language, source_lang);
376 
377 end TRANSLATE_ROW;
378 
379 
380 end XDP_FULFILL_ACTIONS_PKG;