1 package body ENG_CHANGE_ACTIONS_PKG as
2 /* $Header: ENGUCAMB.pls 120.3 2005/12/22 04:23:17 lkasturi noship $ */
3
4 procedure INSERT_ROW (
5 X_ROWID in out NOCOPY VARCHAR2,
6 X_ACTION_ID in NUMBER,
7 X_ORIGINAL_SYSTEM_REFERENCE in VARCHAR2,
8 X_WORKFLOW_ITEM_KEY in VARCHAR2,
9 X_REQUEST_ID in NUMBER,
10 X_STATUS_CODE in NUMBER,
11 X_PRIORITY_CODE in VARCHAR2,
12 X_ASSIGNEE_ID in NUMBER,
13 X_RESPONSE_BY_DATE in DATE,
14 X_PARTY_ID_LIST in VARCHAR2,
15 X_PARENT_STATUS_CODE in NUMBER,
16 X_WORKFLOW_ITEM_TYPE in VARCHAR2,
17 X_ROUTE_ID in NUMBER,
18 X_PARENT_ACTION_ID in NUMBER,
19 X_ACTION_TYPE in VARCHAR2,
20 X_OBJECT_NAME in VARCHAR2,
21 X_OBJECT_ID1 in NUMBER,
22 X_OBJECT_ID2 in NUMBER,
23 X_OBJECT_ID3 in NUMBER,
24 X_OBJECT_ID4 in NUMBER,
25 X_OBJECT_ID5 in NUMBER,
26 X_DESCRIPTION in VARCHAR2,
27 X_PROGRAM_ID in NUMBER,
28 X_PROGRAM_APPLICATION_ID in NUMBER,
29 X_PROGRAM_UPDATE_DATE in DATE,
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 X_IMPLEMENTATION_REQ_ID in NUMBER DEFAULT NULL,
36 X_LOCAL_ORGANIZATION_ID in NUMBER DEFAULT NULL -- Bug 4704384
37 ) is
38 cursor C is select ROWID from ENG_CHANGE_ACTIONS
39 where ACTION_ID = X_ACTION_ID;
40 begin
41 insert into ENG_CHANGE_ACTIONS (
42 ORIGINAL_SYSTEM_REFERENCE,
43 WORKFLOW_ITEM_KEY,
44 REQUEST_ID,
45 STATUS_CODE,
46 PRIORITY_CODE,
47 ASSIGNEE_ID,
48 RESPONSE_BY_DATE,
49 PARTY_ID_LIST,
50 PARENT_STATUS_CODE,
51 WORKFLOW_ITEM_TYPE,
52 ROUTE_ID,
53 PARENT_ACTION_ID,
54 ACTION_ID,
55 ACTION_TYPE,
56 OBJECT_NAME,
57 OBJECT_ID1,
58 OBJECT_ID2,
59 OBJECT_ID3,
60 OBJECT_ID4,
61 OBJECT_ID5,
62 PROGRAM_ID,
63 PROGRAM_APPLICATION_ID,
64 PROGRAM_UPDATE_DATE,
65 CREATION_DATE,
66 CREATED_BY,
67 LAST_UPDATE_DATE,
68 LAST_UPDATED_BY,
69 LAST_UPDATE_LOGIN,
70 IMPLEMENTATION_REQ_ID,
71 LOCAL_ORGANIZATION_ID -- Bug 4704384
72 ) values (
73 X_ORIGINAL_SYSTEM_REFERENCE,
74 X_WORKFLOW_ITEM_KEY,
75 X_REQUEST_ID,
76 X_STATUS_CODE,
77 X_PRIORITY_CODE,
78 X_ASSIGNEE_ID,
79 X_RESPONSE_BY_DATE,
80 X_PARTY_ID_LIST,
81 X_PARENT_STATUS_CODE,
82 X_WORKFLOW_ITEM_TYPE,
83 X_ROUTE_ID,
84 X_PARENT_ACTION_ID,
85 X_ACTION_ID,
86 X_ACTION_TYPE,
87 X_OBJECT_NAME,
88 X_OBJECT_ID1,
89 X_OBJECT_ID2,
90 X_OBJECT_ID3,
91 X_OBJECT_ID4,
92 X_OBJECT_ID5,
93 X_PROGRAM_ID,
94 X_PROGRAM_APPLICATION_ID,
95 X_PROGRAM_UPDATE_DATE,
96 X_CREATION_DATE,
97 X_CREATED_BY,
98 X_LAST_UPDATE_DATE,
99 X_LAST_UPDATED_BY,
100 X_LAST_UPDATE_LOGIN,
101 X_IMPLEMENTATION_REQ_ID,
102 X_LOCAL_ORGANIZATION_ID -- Bug 4704384
103 );
104
105 insert into ENG_CHANGE_ACTIONS_TL (
106 LAST_UPDATED_BY,
107 LAST_UPDATE_LOGIN,
108 LAST_UPDATE_DATE,
109 CREATED_BY,
110 DESCRIPTION,
111 CREATION_DATE,
112 ACTION_ID,
113 LANGUAGE,
114 SOURCE_LANG
115 ) select
116 X_LAST_UPDATED_BY,
117 X_LAST_UPDATE_LOGIN,
118 X_LAST_UPDATE_DATE,
119 X_CREATED_BY,
120 X_DESCRIPTION,
121 X_CREATION_DATE,
122 X_ACTION_ID,
123 L.LANGUAGE_CODE,
124 userenv('LANG')
125 from FND_LANGUAGES L
126 where L.INSTALLED_FLAG in ('I', 'B')
127 and not exists
128 (select NULL
129 from ENG_CHANGE_ACTIONS_TL T
130 where T.ACTION_ID = X_ACTION_ID
131 and T.LANGUAGE = L.LANGUAGE_CODE);
132
133 open c;
134 fetch c into X_ROWID;
135 if (c%notfound) then
136 close c;
137 raise no_data_found;
138 end if;
139 close c;
140
141 BEGIN
142
143 ENG_CHANGE_TEXT_UTIL.Insert_Update_Change ( p_change_id => X_OBJECT_ID1 );
144
145 EXCEPTION
146 WHEN others THEN
147 NULL;
148 END;
149
150 end INSERT_ROW;
151
152
153 procedure LOCK_ROW (
154 X_ACTION_ID in NUMBER,
155 X_ORIGINAL_SYSTEM_REFERENCE in VARCHAR2,
156 X_WORKFLOW_ITEM_KEY in VARCHAR2,
157 X_REQUEST_ID in NUMBER,
158 X_STATUS_CODE in NUMBER,
159 X_PRIORITY_CODE in VARCHAR2,
160 X_ASSIGNEE_ID in NUMBER,
161 X_RESPONSE_BY_DATE in DATE,
162 X_PARTY_ID_LIST in VARCHAR2,
163 X_PARENT_STATUS_CODE in NUMBER,
164 X_WORKFLOW_ITEM_TYPE in VARCHAR2,
165 X_ROUTE_ID in NUMBER,
166 X_PARENT_ACTION_ID in NUMBER,
167 X_ACTION_TYPE in VARCHAR2,
168 X_OBJECT_NAME in VARCHAR2,
169 X_OBJECT_ID1 in NUMBER,
170 X_OBJECT_ID2 in NUMBER,
171 X_OBJECT_ID3 in NUMBER,
172 X_OBJECT_ID4 in NUMBER,
173 X_OBJECT_ID5 in NUMBER,
174 X_DESCRIPTION in VARCHAR2,
175 X_PROGRAM_ID in NUMBER,
176 X_PROGRAM_APPLICATION_ID in NUMBER,
177 X_PROGRAM_UPDATE_DATE in DATE,
178 X_IMPLEMENTATION_REQ_ID in NUMBER,
179 X_LOCAL_ORGANIZATION_ID in NUMBER DEFAULT NULL -- Bug 4704384
180
181 ) is
182 cursor c is select
183 ORIGINAL_SYSTEM_REFERENCE,
184 WORKFLOW_ITEM_KEY,
185 REQUEST_ID,
186 STATUS_CODE,
187 PRIORITY_CODE,
188 ASSIGNEE_ID,
189 RESPONSE_BY_DATE,
190 PARTY_ID_LIST,
191 PARENT_STATUS_CODE,
192 WORKFLOW_ITEM_TYPE,
193 ROUTE_ID,
194 PARENT_ACTION_ID,
195 ACTION_TYPE,
196 OBJECT_NAME,
197 OBJECT_ID1,
198 OBJECT_ID2,
199 OBJECT_ID3,
200 OBJECT_ID4,
201 OBJECT_ID5,
202 PROGRAM_ID,
203 PROGRAM_APPLICATION_ID,
204 PROGRAM_UPDATE_DATE,
205 IMPLEMENTATION_REQ_ID,
206 LOCAL_ORGANIZATION_ID
207 from ENG_CHANGE_ACTIONS
208 where ACTION_ID = X_ACTION_ID
209 for update of ACTION_ID nowait;
210 recinfo c%rowtype;
211
212 cursor c1 is select
213 DESCRIPTION,
214 decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
215 from ENG_CHANGE_ACTIONS_TL
216 where ACTION_ID = X_ACTION_ID
217 and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
218 for update of ACTION_ID nowait;
219 begin
220 open c;
221 fetch c into recinfo;
222 if (c%notfound) then
223 close c;
224 fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
225 app_exception.raise_exception;
226 end if;
227 close c;
228 if ( ((recinfo.ORIGINAL_SYSTEM_REFERENCE = X_ORIGINAL_SYSTEM_REFERENCE)
229 OR ((recinfo.ORIGINAL_SYSTEM_REFERENCE is null) AND (X_ORIGINAL_SYSTEM_REFERENCE is null)))
230 AND ((recinfo.WORKFLOW_ITEM_KEY = X_WORKFLOW_ITEM_KEY)
231 OR ((recinfo.WORKFLOW_ITEM_KEY is null) AND (X_WORKFLOW_ITEM_KEY is null)))
232 AND ((recinfo.REQUEST_ID = X_REQUEST_ID)
233 OR ((recinfo.REQUEST_ID is null) AND (X_REQUEST_ID is null)))
234 AND ((recinfo.STATUS_CODE = X_STATUS_CODE)
235 OR ((recinfo.STATUS_CODE is null) AND (X_STATUS_CODE is null)))
236 AND ((recinfo.PRIORITY_CODE = X_PRIORITY_CODE)
237 OR ((recinfo.PRIORITY_CODE is null) AND (X_PRIORITY_CODE is null)))
238 AND ((recinfo.ASSIGNEE_ID = X_ASSIGNEE_ID)
239 OR ((recinfo.ASSIGNEE_ID is null) AND (X_ASSIGNEE_ID is null)))
240 AND ((recinfo.RESPONSE_BY_DATE = X_RESPONSE_BY_DATE)
241 OR ((recinfo.RESPONSE_BY_DATE is null) AND (X_RESPONSE_BY_DATE is null)))
242 AND ((recinfo.PARTY_ID_LIST = X_PARTY_ID_LIST)
243 OR ((recinfo.PARTY_ID_LIST is null) AND (X_PARTY_ID_LIST is null)))
244 AND ((recinfo.PARENT_STATUS_CODE = X_PARENT_STATUS_CODE)
245 OR ((recinfo.PARENT_STATUS_CODE is null) AND (X_PARENT_STATUS_CODE is null)))
246 AND ((recinfo.WORKFLOW_ITEM_TYPE = X_WORKFLOW_ITEM_TYPE)
247 OR ((recinfo.WORKFLOW_ITEM_TYPE is null) AND (X_WORKFLOW_ITEM_TYPE is null)))
248 AND ((recinfo.ROUTE_ID = X_ROUTE_ID)
249 OR ((recinfo.ROUTE_ID is null) AND (X_ROUTE_ID is null)))
250 AND ((recinfo.PARENT_ACTION_ID = X_PARENT_ACTION_ID)
251 OR ((recinfo.PARENT_ACTION_ID is null) AND (X_PARENT_ACTION_ID is null)))
252 AND (recinfo.ACTION_TYPE = X_ACTION_TYPE)
253 AND (recinfo.OBJECT_NAME = X_OBJECT_NAME)
254 AND (recinfo.OBJECT_ID1 = X_OBJECT_ID1)
255 AND ((recinfo.OBJECT_ID2 = X_OBJECT_ID2)
256 OR ((recinfo.OBJECT_ID2 is null) AND (X_OBJECT_ID2 is null)))
257 AND ((recinfo.OBJECT_ID3 = X_OBJECT_ID3)
258 OR ((recinfo.OBJECT_ID3 is null) AND (X_OBJECT_ID3 is null)))
259 AND ((recinfo.OBJECT_ID4 = X_OBJECT_ID4)
260 OR ((recinfo.OBJECT_ID4 is null) AND (X_OBJECT_ID4 is null)))
261 AND ((recinfo.OBJECT_ID5 = X_OBJECT_ID5)
262 OR ((recinfo.OBJECT_ID5 is null) AND (X_OBJECT_ID5 is null)))
263 AND ((recinfo.PROGRAM_ID = X_PROGRAM_ID)
264 OR ((recinfo.PROGRAM_ID is null) AND (X_PROGRAM_ID is null)))
265 AND ((recinfo.PROGRAM_APPLICATION_ID = X_PROGRAM_APPLICATION_ID)
266 OR ((recinfo.PROGRAM_APPLICATION_ID is null) AND (X_PROGRAM_APPLICATION_ID is null)))
267 AND ((recinfo.PROGRAM_UPDATE_DATE = X_PROGRAM_UPDATE_DATE)
268 OR ((recinfo.PROGRAM_UPDATE_DATE is null) AND (X_PROGRAM_UPDATE_DATE is null)))
269 AND ((recinfo.IMPLEMENTATION_REQ_ID = X_IMPLEMENTATION_REQ_ID)
270 OR ((recinfo.IMPLEMENTATION_REQ_ID is null) AND (X_IMPLEMENTATION_REQ_ID is null)))
271 -- Bug 4704384
272 AND ((recinfo.LOCAL_ORGANIZATION_ID = X_LOCAL_ORGANIZATION_ID)
273 OR ((recinfo.LOCAL_ORGANIZATION_ID is null) AND (X_LOCAL_ORGANIZATION_ID is null)))
274
275 ) then
276 null;
277 else
278 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
279 app_exception.raise_exception;
280 end if;
281
282 for tlinfo in c1 loop
283 if (tlinfo.BASELANG = 'Y') then
284 if ( ((tlinfo.DESCRIPTION = X_DESCRIPTION)
285 OR ((tlinfo.DESCRIPTION is null) AND (X_DESCRIPTION is null)))
286 ) then
287 null;
288 else
289 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
290 app_exception.raise_exception;
291 end if;
292 end if;
293 end loop;
294 return;
295 end LOCK_ROW;
296
297 procedure UPDATE_ROW (
298 X_ACTION_ID in NUMBER,
299 X_ORIGINAL_SYSTEM_REFERENCE in VARCHAR2,
300 X_WORKFLOW_ITEM_KEY in VARCHAR2,
301 X_REQUEST_ID in NUMBER,
302 X_STATUS_CODE in NUMBER,
303 X_PRIORITY_CODE in VARCHAR2,
304 X_ASSIGNEE_ID in NUMBER,
305 X_RESPONSE_BY_DATE in DATE,
306 X_PARTY_ID_LIST in VARCHAR2,
307 X_PARENT_STATUS_CODE in NUMBER,
308 X_WORKFLOW_ITEM_TYPE in VARCHAR2,
309 X_ROUTE_ID in NUMBER,
310 X_PARENT_ACTION_ID in NUMBER,
311 X_ACTION_TYPE in VARCHAR2,
312 X_OBJECT_NAME in VARCHAR2,
313 X_OBJECT_ID1 in NUMBER,
314 X_OBJECT_ID2 in NUMBER,
315 X_OBJECT_ID3 in NUMBER,
316 X_OBJECT_ID4 in NUMBER,
317 X_OBJECT_ID5 in NUMBER,
318 X_DESCRIPTION in VARCHAR2,
319 X_PROGRAM_ID in NUMBER,
320 X_PROGRAM_APPLICATION_ID in NUMBER,
321 X_PROGRAM_UPDATE_DATE in DATE,
322 X_LAST_UPDATE_DATE in DATE,
323 X_LAST_UPDATED_BY in NUMBER,
324 X_LAST_UPDATE_LOGIN in NUMBER,
325 X_IMPLEMENTATION_REQ_ID in NUMBER,
326 X_LOCAL_ORGANIZATION_ID in NUMBER DEFAULT NULL -- Bug 4704384
327
328 ) is
329 begin
330 update ENG_CHANGE_ACTIONS set
331 ORIGINAL_SYSTEM_REFERENCE = X_ORIGINAL_SYSTEM_REFERENCE,
332 WORKFLOW_ITEM_KEY = X_WORKFLOW_ITEM_KEY,
333 REQUEST_ID = X_REQUEST_ID,
334 STATUS_CODE = X_STATUS_CODE,
335 PRIORITY_CODE = X_PRIORITY_CODE,
336 ASSIGNEE_ID = X_ASSIGNEE_ID,
337 RESPONSE_BY_DATE = X_RESPONSE_BY_DATE,
338 PARTY_ID_LIST = X_PARTY_ID_LIST,
339 PARENT_STATUS_CODE = X_PARENT_STATUS_CODE,
340 WORKFLOW_ITEM_TYPE = X_WORKFLOW_ITEM_TYPE,
341 ROUTE_ID = X_ROUTE_ID,
342 PARENT_ACTION_ID = X_PARENT_ACTION_ID,
343 ACTION_TYPE = X_ACTION_TYPE,
344 OBJECT_NAME = X_OBJECT_NAME,
345 OBJECT_ID1 = X_OBJECT_ID1,
346 OBJECT_ID2 = X_OBJECT_ID2,
347 OBJECT_ID3 = X_OBJECT_ID3,
348 OBJECT_ID4 = X_OBJECT_ID4,
349 OBJECT_ID5 = X_OBJECT_ID5,
350 PROGRAM_ID = X_PROGRAM_ID,
351 PROGRAM_APPLICATION_ID = X_PROGRAM_APPLICATION_ID,
352 PROGRAM_UPDATE_DATE = X_PROGRAM_UPDATE_DATE,
353 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
354 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
355 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
356 IMPLEMENTATION_REQ_ID = X_IMPLEMENTATION_REQ_ID,
357 LOCAL_ORGANIZATION_ID = X_LOCAL_ORGANIZATION_ID -- Bug 4704384
358 where ACTION_ID = X_ACTION_ID;
359
360 if (sql%notfound) then
361 raise no_data_found;
362 end if;
363
364 update ENG_CHANGE_ACTIONS_TL set
365 DESCRIPTION = X_DESCRIPTION,
366 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
367 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
368 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
369 SOURCE_LANG = userenv('LANG')
370 where ACTION_ID = X_ACTION_ID
371 and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
372
373 if (sql%notfound) then
374 raise no_data_found;
375 end if;
376 end UPDATE_ROW;
377
378 procedure DELETE_ROW (
379 X_ACTION_ID in NUMBER
380 ) is
381 begin
382 delete from ENG_CHANGE_ACTIONS_TL
383 where ACTION_ID = X_ACTION_ID;
384
385 if (sql%notfound) then
386 raise no_data_found;
387 end if;
388
389 delete from ENG_CHANGE_ACTIONS
390 where ACTION_ID = X_ACTION_ID;
391
392 if (sql%notfound) then
393 raise no_data_found;
394 end if;
395 end DELETE_ROW;
396
397 procedure ADD_LANGUAGE
398 is
399 begin
400 delete from ENG_CHANGE_ACTIONS_TL T
401 where not exists
402 (select NULL
403 from ENG_CHANGE_ACTIONS B
404 where B.ACTION_ID = T.ACTION_ID
405 );
406
407 update ENG_CHANGE_ACTIONS_TL T set (
408 DESCRIPTION
409 ) = (select
410 B.DESCRIPTION
411 from ENG_CHANGE_ACTIONS_TL B
412 where B.ACTION_ID = T.ACTION_ID
413 and B.LANGUAGE = T.SOURCE_LANG)
414 where (
415 T.ACTION_ID,
416 T.LANGUAGE
417 ) in (select
418 SUBT.ACTION_ID,
419 SUBT.LANGUAGE
420 from ENG_CHANGE_ACTIONS_TL SUBB, ENG_CHANGE_ACTIONS_TL SUBT
421 where SUBB.ACTION_ID = SUBT.ACTION_ID
422 and SUBB.LANGUAGE = SUBT.SOURCE_LANG
423 and (SUBB.DESCRIPTION <> SUBT.DESCRIPTION
424 or (SUBB.DESCRIPTION is null and SUBT.DESCRIPTION is not null)
425 or (SUBB.DESCRIPTION is not null and SUBT.DESCRIPTION is null)
426 ));
427
428 insert into ENG_CHANGE_ACTIONS_TL (
429 LAST_UPDATED_BY,
430 LAST_UPDATE_LOGIN,
431 LAST_UPDATE_DATE,
432 CREATED_BY,
433 DESCRIPTION,
434 CREATION_DATE,
435 ACTION_ID,
436 LANGUAGE,
437 SOURCE_LANG
438 ) select
439 B.LAST_UPDATED_BY,
440 B.LAST_UPDATE_LOGIN,
441 B.LAST_UPDATE_DATE,
442 B.CREATED_BY,
443 B.DESCRIPTION,
444 B.CREATION_DATE,
445 B.ACTION_ID,
446 L.LANGUAGE_CODE,
447 B.SOURCE_LANG
448 from ENG_CHANGE_ACTIONS_TL B, FND_LANGUAGES L
449 where L.INSTALLED_FLAG in ('I', 'B')
450 and B.LANGUAGE = userenv('LANG')
451 and not exists
452 (select NULL
453 from ENG_CHANGE_ACTIONS_TL T
454 where T.ACTION_ID = B.ACTION_ID
455 and T.LANGUAGE = L.LANGUAGE_CODE);
456 end ADD_LANGUAGE;
457
458
459 end ENG_CHANGE_ACTIONS_PKG;