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