[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;