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