DBA Data[Home] [Help]

PACKAGE BODY: APPS.JTF_TASK_REFERENCES_PKG

Source


1 PACKAGE body JTF_TASK_REFERENCES_PKG as
2 /* $Header: jtftkrfb.pls 120.2 2006/01/19 06:21:30 sbarat ship $ */
3 
4 procedure INSERT_ROW (
5   X_ROWID in out NOCOPY VARCHAR2,
6   X_TASK_REFERENCE_ID in NUMBER,
7   X_TASK_ID in NUMBER,
8   X_OBJECT_TYPE_CODE in VARCHAR2,
9   X_OBJECT_NAME in VARCHAR2,
10   X_OBJECT_ID in NUMBER,
11   X_OBJECT_DETAILS in VARCHAR2,
12   X_REFERENCE_CODE in VARCHAR2,
13   X_ATTRIBUTE1 in VARCHAR2,
14   X_ATTRIBUTE2 in VARCHAR2,
15   X_ATTRIBUTE3 in VARCHAR2,
16   X_ATTRIBUTE4 in VARCHAR2,
17   X_ATTRIBUTE5 in VARCHAR2,
18   X_ATTRIBUTE6 in VARCHAR2,
19   X_ATTRIBUTE7 in VARCHAR2,
20   X_ATTRIBUTE8 in VARCHAR2,
21   X_ATTRIBUTE9 in VARCHAR2,
22   X_ATTRIBUTE10 in VARCHAR2,
23   X_ATTRIBUTE11 in VARCHAR2,
24   X_ATTRIBUTE12 in VARCHAR2,
25   X_ATTRIBUTE13 in VARCHAR2,
26   X_ATTRIBUTE14 in VARCHAR2,
27   X_ATTRIBUTE15 in VARCHAR2,
28   X_ATTRIBUTE_CATEGORY in VARCHAR2,
29   X_USAGE in VARCHAR2,
30   X_CREATION_DATE in DATE,
31   X_CREATED_BY in NUMBER,
32   X_LAST_UPDATE_DATE in DATE,
33   X_LAST_UPDATED_BY in NUMBER,
34   X_LAST_UPDATE_LOGIN in NUMBER
35 ) is
36   cursor C is select ROWID from JTF_TASK_REFERENCES_B
37     where TASK_REFERENCE_ID = X_TASK_REFERENCE_ID
38     ;
39 begin
40   insert into JTF_TASK_REFERENCES_B (
41     TASK_REFERENCE_ID,
42     TASK_ID,
43     OBJECT_TYPE_CODE,
44     OBJECT_NAME,
45     OBJECT_ID,
46     OBJECT_DETAILS,
47     REFERENCE_CODE,
48     ATTRIBUTE1,
49     ATTRIBUTE2,
50     ATTRIBUTE3,
51     ATTRIBUTE4,
52     ATTRIBUTE5,
53     ATTRIBUTE6,
54     ATTRIBUTE7,
55     ATTRIBUTE8,
56     ATTRIBUTE9,
57     ATTRIBUTE10,
58     ATTRIBUTE11,
59     ATTRIBUTE12,
60     ATTRIBUTE13,
61     ATTRIBUTE14,
62     ATTRIBUTE15,
63     ATTRIBUTE_CATEGORY,
64     CREATION_DATE,
65     CREATED_BY,
66     LAST_UPDATE_DATE,
67     LAST_UPDATED_BY,
68     LAST_UPDATE_LOGIN,
69     OBJECT_VERSION_NUMBER
70   ) values (
71     X_TASK_REFERENCE_ID,
72     X_TASK_ID,
73     X_OBJECT_TYPE_CODE,
74     X_OBJECT_NAME,
75     X_OBJECT_ID,
76     X_OBJECT_DETAILS,
77     X_REFERENCE_CODE,
78     X_ATTRIBUTE1,
79     X_ATTRIBUTE2,
80     X_ATTRIBUTE3,
81     X_ATTRIBUTE4,
82     X_ATTRIBUTE5,
83     X_ATTRIBUTE6,
84     X_ATTRIBUTE7,
85     X_ATTRIBUTE8,
86     X_ATTRIBUTE9,
87     X_ATTRIBUTE10,
88     X_ATTRIBUTE11,
89     X_ATTRIBUTE12,
90     X_ATTRIBUTE13,
91     X_ATTRIBUTE14,
92     X_ATTRIBUTE15,
93     X_ATTRIBUTE_CATEGORY,
94     X_CREATION_DATE,
95     X_CREATED_BY,
96     X_LAST_UPDATE_DATE,
97     X_LAST_UPDATED_BY,
98     X_LAST_UPDATE_LOGIN,
99     1
100   );
101 
102   insert into JTF_TASK_REFERENCES_TL (
103     TASK_REFERENCE_ID,
104     USAGE,
105     CREATED_BY,
106     CREATION_DATE,
107     LAST_UPDATED_BY,
108     LAST_UPDATE_DATE,
109     LAST_UPDATE_LOGIN,
110     LANGUAGE,
111     SOURCE_LANG
112   ) select
113     X_TASK_REFERENCE_ID,
114     X_USAGE,
115     X_CREATED_BY,
116     X_CREATION_DATE,
117     X_LAST_UPDATED_BY,
118     X_LAST_UPDATE_DATE,
119     X_LAST_UPDATE_LOGIN,
120     L.LANGUAGE_CODE,
121     userenv('LANG')
122   from FND_LANGUAGES L
123   where L.INSTALLED_FLAG in ('I', 'B')
124   and not exists
125     (select NULL
126     from JTF_TASK_REFERENCES_TL T
127     where T.TASK_REFERENCE_ID = X_TASK_REFERENCE_ID
128     and T.LANGUAGE = L.LANGUAGE_CODE);
129 
130   open c;
131   fetch c into X_ROWID;
132   if (c%notfound) then
133     close c;
134     raise no_data_found;
135   end if;
136   close c;
137 
138 end INSERT_ROW;
139 
140 procedure LOCK_ROW (
141   X_TASK_REFERENCE_ID in NUMBER,
142   X_OBJECT_VERSION_NUMBER in NUMBER
143 ) is
144   cursor c is select
145         OBJECT_VERSION_NUMBER
146     from JTF_TASK_REFERENCES_VL
147     where TASK_REFERENCE_ID = X_TASK_REFERENCE_ID
148     and OBJECT_VERSION_NUMBER = X_OBJECT_VERSION_NUMBER
149     for update of TASK_REFERENCE_ID nowait;
150   recinfo c%rowtype;
151 
152 begin
153   open c;
154   fetch c into recinfo;
155   if (c%notfound) then
156     close c;
157     fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
158     app_exception.raise_exception;
159   end if;
160   close c;
161 
162   if (recinfo.OBJECT_VERSION_NUMBER = X_OBJECT_VERSION_NUMBER)
163   then
164     null;
165   else
166     fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
167     app_exception.raise_exception;
168   end if;
169 end LOCK_ROW;
170 
171 
172 procedure UPDATE_ROW (
173   X_TASK_REFERENCE_ID in NUMBER,
174   X_OBJECT_VERSION_NUMBER in NUMBER,
175   X_TASK_ID in NUMBER,
176   X_OBJECT_TYPE_CODE in VARCHAR2,
177   X_OBJECT_NAME in VARCHAR2,
178   X_OBJECT_ID in NUMBER,
179   X_OBJECT_DETAILS in VARCHAR2,
180   X_REFERENCE_CODE in VARCHAR2,
181   X_ATTRIBUTE1 in VARCHAR2,
182   X_ATTRIBUTE2 in VARCHAR2,
183   X_ATTRIBUTE3 in VARCHAR2,
184   X_ATTRIBUTE4 in VARCHAR2,
185   X_ATTRIBUTE5 in VARCHAR2,
186   X_ATTRIBUTE6 in VARCHAR2,
187   X_ATTRIBUTE7 in VARCHAR2,
188   X_ATTRIBUTE8 in VARCHAR2,
189   X_ATTRIBUTE9 in VARCHAR2,
190   X_ATTRIBUTE10 in VARCHAR2,
191   X_ATTRIBUTE11 in VARCHAR2,
192   X_ATTRIBUTE12 in VARCHAR2,
193   X_ATTRIBUTE13 in VARCHAR2,
194   X_ATTRIBUTE14 in VARCHAR2,
195   X_ATTRIBUTE15 in VARCHAR2,
196   X_ATTRIBUTE_CATEGORY in VARCHAR2,
197   X_USAGE in VARCHAR2,
198   X_LAST_UPDATE_DATE in DATE,
199   X_LAST_UPDATED_BY in NUMBER,
200   X_LAST_UPDATE_LOGIN in NUMBER
201 ) is
202 begin
203   update JTF_TASK_REFERENCES_B set
204     TASK_ID = X_TASK_ID,
205     OBJECT_VERSION_NUMBER = X_OBJECT_VERSION_NUMBER,
206     OBJECT_TYPE_CODE = X_OBJECT_TYPE_CODE,
207     OBJECT_NAME = X_OBJECT_NAME,
208     OBJECT_ID = X_OBJECT_ID,
209     OBJECT_DETAILS = X_OBJECT_DETAILS,
210     REFERENCE_CODE = X_REFERENCE_CODE,
211     ATTRIBUTE1 = X_ATTRIBUTE1,
212     ATTRIBUTE2 = X_ATTRIBUTE2,
213     ATTRIBUTE3 = X_ATTRIBUTE3,
214     ATTRIBUTE4 = X_ATTRIBUTE4,
215     ATTRIBUTE5 = X_ATTRIBUTE5,
216     ATTRIBUTE6 = X_ATTRIBUTE6,
217     ATTRIBUTE7 = X_ATTRIBUTE7,
218     ATTRIBUTE8 = X_ATTRIBUTE8,
219     ATTRIBUTE9 = X_ATTRIBUTE9,
220     ATTRIBUTE10 = X_ATTRIBUTE10,
221     ATTRIBUTE11 = X_ATTRIBUTE11,
222     ATTRIBUTE12 = X_ATTRIBUTE12,
223     ATTRIBUTE13 = X_ATTRIBUTE13,
224     ATTRIBUTE14 = X_ATTRIBUTE14,
225     ATTRIBUTE15 = X_ATTRIBUTE15,
226     ATTRIBUTE_CATEGORY = X_ATTRIBUTE_CATEGORY,
227     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
228     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
229     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
230   where TASK_REFERENCE_ID = X_TASK_REFERENCE_ID;
231 
232   if (sql%notfound) then
233     raise no_data_found;
234   end if;
235 
236   update JTF_TASK_REFERENCES_TL set
237     USAGE = X_USAGE,
238     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
239     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
240     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
241     SOURCE_LANG = userenv('LANG')
242   where TASK_REFERENCE_ID = X_TASK_REFERENCE_ID
243   and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
244 
245   if (sql%notfound) then
246     raise no_data_found;
247   end if;
248 end UPDATE_ROW;
249 
250 procedure DELETE_ROW (
251   X_TASK_REFERENCE_ID in NUMBER
252 ) is
253 begin
254   delete from JTF_TASK_REFERENCES_TL
255   where TASK_REFERENCE_ID = X_TASK_REFERENCE_ID;
256 
257   if (sql%notfound) then
258     raise no_data_found;
259   end if;
260 
261   delete from JTF_TASK_REFERENCES_B
262   where TASK_REFERENCE_ID = X_TASK_REFERENCE_ID ;
263 
264   if (sql%notfound) then
265     raise no_data_found;
266   end if;
267 end DELETE_ROW;
268 
269 procedure ADD_LANGUAGE
270 is
271 begin
272 
273 /* Solving Perf. Bug 3723927 */
274      /* The following delete and update statements are commented out */
275      /* as a quick workaround to fix the time-consuming table handler issue */
276      /*
277 
278   delete from JTF_TASK_REFERENCES_TL T
279   where not exists
280     (select NULL
281     from JTF_TASK_REFERENCES_B B
282     where B.TASK_REFERENCE_ID = T.TASK_REFERENCE_ID
283     );
284 
285   update JTF_TASK_REFERENCES_TL T set (
286       USAGE
287     ) = (select
288       B.USAGE
289     from JTF_TASK_REFERENCES_TL B
290     where B.TASK_REFERENCE_ID = T.TASK_REFERENCE_ID
291     and B.LANGUAGE = T.SOURCE_LANG)
292   where (
293       T.TASK_REFERENCE_ID,
294       T.LANGUAGE
295   ) in (select
296       SUBT.TASK_REFERENCE_ID,
297       SUBT.LANGUAGE
298     from JTF_TASK_REFERENCES_TL SUBB, JTF_TASK_REFERENCES_TL SUBT
299     where SUBB.TASK_REFERENCE_ID = SUBT.TASK_REFERENCE_ID
300     and SUBB.LANGUAGE = SUBT.SOURCE_LANG
301     and (SUBB.USAGE <> SUBT.USAGE
302       or (SUBB.USAGE is null and SUBT.USAGE is not null)
303       or (SUBB.USAGE is not null and SUBT.USAGE is null)
304   ));
305   */
306 
307   -- Added hint 'parallel' by SBARAT on 19/01/2006 for perf bug# 4888496
308 
309   insert into JTF_TASK_REFERENCES_TL (
310     TASK_REFERENCE_ID,
311     USAGE,
312     CREATED_BY,
313     CREATION_DATE,
314     LAST_UPDATED_BY,
315     LAST_UPDATE_DATE,
316     LAST_UPDATE_LOGIN,
317     LANGUAGE,
318     SOURCE_LANG
319   ) select /*+ parallel(B) parallel(L) */
320     B.TASK_REFERENCE_ID,
321     B.USAGE,
322     B.CREATED_BY,
323     B.CREATION_DATE,
324     B.LAST_UPDATED_BY,
325     B.LAST_UPDATE_DATE,
326     B.LAST_UPDATE_LOGIN,
327     L.LANGUAGE_CODE,
328     B.SOURCE_LANG
329   from JTF_TASK_REFERENCES_TL B, FND_LANGUAGES L
330   where L.INSTALLED_FLAG in ('I', 'B')
331   and B.LANGUAGE = userenv('LANG')
332   and not exists
333     (select /*+ parallel(T) */  NULL
334     from JTF_TASK_REFERENCES_TL T
335     where T.TASK_REFERENCE_ID = B.TASK_REFERENCE_ID
336     and T.LANGUAGE = L.LANGUAGE_CODE);
337 end ADD_LANGUAGE;
338 
339 procedure translate_row(
340    x_task_reference_id in number,
341    x_usage   in varchar2,
342    x_owner   in varchar2 )
343 as
344 begin
345   update jtf_task_references_tl set
346     usage = nvl(X_usage,usage),
347     LAST_UPDATE_DATE = sysdate,
348     LAST_UPDATEd_by = decode(x_owner,'SEED',1,0),
349     LAST_UPDATE_LOGIN = 0,
350     SOURCE_LANG = userenv('LANG')
351   where task_reference_id = X_task_reference_id
352   and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
353 
354   if (sql%notfound) then
355     raise no_data_found;
356   end if;
357 
358 end ;
359 
360 end JTF_TASK_REFERENCES_PKG;