[Home] [Help]
PACKAGE BODY: APPS.MTL_ITEM_REVISIONS_UTIL
Source
1 PACKAGE BODY MTL_ITEM_REVISIONS_UTIL AS
2 /* $Header: INVIRVUB.pls 120.1 2006/08/01 11:31:56 lparihar noship $ */
3
4
5 --Added for bug 5435229
6 Procedure copy_rev_UDA(p_organization_id IN NUMBER
7 ,p_inventory_item_id IN NUMBER
8 ,p_revision_id IN NUMBER
9 ,p_revision IN VARCHAR2) IS
10
11 CURSOR c_get_effective_revision(cp_inventory_item_id NUMBER
12 ,cp_organization_id NUMBER
13 ,cp_revision VARCHAR2) IS
14 SELECT revision_id
15 FROM mtl_item_revisions_b
16 WHERE inventory_item_id = cp_inventory_item_id
17 AND organization_id = cp_organization_id
18 AND revision < cp_revision
19 AND implementation_date IS NOT NULL
20 AND effectivity_date <= sysdate
21 ORDER BY effectivity_date desc;
22
23 l_source_revision_id mtl_item_revisions_b.revision_id%TYPE;
24 l_return_status VARCHAR2(100);
25 l_error_code NUMBER;
26 l_msg_count NUMBER ;
27 l_msg_data VARCHAR2(100);
28 l_pk_item_pairs EGO_COL_NAME_VALUE_PAIR_ARRAY;
29 l_pk_item_rev_pairs_src EGO_COL_NAME_VALUE_PAIR_ARRAY;
30 l_pk_item_rev_pairs_dst EGO_COL_NAME_VALUE_PAIR_ARRAY;
31
32 BEGIN
33 OPEN c_get_effective_revision(cp_inventory_item_id => p_inventory_item_id
34 ,cp_organization_id => p_organization_id
35 ,cp_revision => p_revision);
36 FETCH c_get_effective_revision INTO l_source_revision_id;
37 CLOSE c_get_effective_revision;
38
39 IF l_source_revision_id IS NOT NULL THEN
40 l_pk_item_pairs :=EGO_COL_NAME_VALUE_PAIR_ARRAY(
41 EGO_COL_NAME_VALUE_PAIR_OBJ('INVENTORY_ITEM_ID', p_inventory_item_id)
42 ,EGO_COL_NAME_VALUE_PAIR_OBJ('ORGANIZATION_ID', p_organization_id));
43
44 l_pk_item_rev_pairs_src := EGO_COL_NAME_VALUE_PAIR_ARRAY(EGO_COL_NAME_VALUE_PAIR_OBJ( 'REVISION_ID' , l_source_revision_id));
45 l_pk_item_rev_pairs_dst := EGO_COL_NAME_VALUE_PAIR_ARRAY(EGO_COL_NAME_VALUE_PAIR_OBJ( 'REVISION_ID' , p_revision_id));
46 EGO_USER_ATTRS_DATA_PVT.Copy_User_Attrs_Data(
47 p_api_version => 1.0
48 ,p_application_id => 431
49 ,p_object_name => 'EGO_ITEM'
50 ,p_old_pk_col_value_pairs => l_pk_item_pairs
51 ,p_old_dtlevel_col_value_pairs => l_pk_item_rev_pairs_src
52 ,p_new_pk_col_value_pairs => l_pk_item_pairs
53 ,p_new_dtlevel_col_value_pairs => l_pk_item_rev_pairs_dst
54 ,x_return_status => l_return_status
55 ,x_errorcode => l_error_code
56 ,x_msg_count => l_msg_count
57 ,x_msg_data => l_msg_data);
58
59 END IF; --l_source_revision_id
60
61 EXCEPTION
62 WHEN OTHERS THEN
63 NULL;
64 END copy_rev_UDA;
65
66 PROCEDURE INSERT_ROW(P_Item_Revision_Rec IN MTL_ITEM_REVISIONS_B%ROWTYPE,
67 X_ROWID OUT NOCOPY VARCHAR2) IS
68
69 BEGIN
70
71 INSERT INTO MTL_ITEM_REVISIONS_B (
72 REVISION_ID,
73 REVISION_LABEL,
74 REVISION_REASON,
75 LIFECYCLE_ID,
76 CURRENT_PHASE_ID,
77 INVENTORY_ITEM_ID,
78 ORGANIZATION_ID,
79 REVISION,
80 CHANGE_NOTICE,
81 ECN_INITIATION_DATE,
82 IMPLEMENTATION_DATE,
83 IMPLEMENTED_SERIAL_NUMBER,
84 EFFECTIVITY_DATE,
85 ATTRIBUTE_CATEGORY,
86 ATTRIBUTE1,
87 ATTRIBUTE2,
88 ATTRIBUTE3,
89 ATTRIBUTE4,
90 ATTRIBUTE5,
91 ATTRIBUTE6,
92 ATTRIBUTE7,
93 ATTRIBUTE8,
94 ATTRIBUTE9,
95 ATTRIBUTE10,
96 ATTRIBUTE11,
97 ATTRIBUTE12,
98 ATTRIBUTE13,
99 ATTRIBUTE14,
100 ATTRIBUTE15,
101 REQUEST_ID,
102 REVISED_ITEM_SEQUENCE_ID,
103 OBJECT_VERSION_NUMBER,
104 CREATION_DATE,
105 CREATED_BY,
106 LAST_UPDATE_DATE,
107 LAST_UPDATED_BY,
108 LAST_UPDATE_LOGIN
109 ) VALUES (
110 P_Item_Revision_Rec.REVISION_ID,
111 P_Item_Revision_Rec.REVISION_LABEL,
112 P_Item_Revision_Rec.REVISION_REASON,
113 P_Item_Revision_Rec.LIFECYCLE_ID,
114 P_Item_Revision_Rec.CURRENT_PHASE_ID,
115 P_Item_Revision_Rec.INVENTORY_ITEM_ID,
116 P_Item_Revision_Rec.ORGANIZATION_ID,
117 P_Item_Revision_Rec.REVISION,
118 P_Item_Revision_Rec.CHANGE_NOTICE,
119 P_Item_Revision_Rec.ECN_INITIATION_DATE,
120 P_Item_Revision_Rec.IMPLEMENTATION_DATE,
121 P_Item_Revision_Rec.IMPLEMENTED_SERIAL_NUMBER,
122 P_Item_Revision_Rec.EFFECTIVITY_DATE,
123 P_Item_Revision_Rec.ATTRIBUTE_CATEGORY,
124 P_Item_Revision_Rec.ATTRIBUTE1,
125 P_Item_Revision_Rec.ATTRIBUTE2,
126 P_Item_Revision_Rec.ATTRIBUTE3,
127 P_Item_Revision_Rec.ATTRIBUTE4,
128 P_Item_Revision_Rec.ATTRIBUTE5,
129 P_Item_Revision_Rec.ATTRIBUTE6,
130 P_Item_Revision_Rec.ATTRIBUTE7,
131 P_Item_Revision_Rec.ATTRIBUTE8,
132 P_Item_Revision_Rec.ATTRIBUTE9,
133 P_Item_Revision_Rec.ATTRIBUTE10,
134 P_Item_Revision_Rec.ATTRIBUTE11,
135 P_Item_Revision_Rec.ATTRIBUTE12,
136 P_Item_Revision_Rec.ATTRIBUTE13,
137 P_Item_Revision_Rec.ATTRIBUTE14,
138 P_Item_Revision_Rec.ATTRIBUTE15,
139 P_Item_Revision_Rec.REQUEST_ID,
140 P_Item_Revision_Rec.REVISED_ITEM_SEQUENCE_ID,
141 NVL(P_Item_Revision_Rec.OBJECT_VERSION_NUMBER,1),
142 P_Item_Revision_Rec.CREATION_DATE,
143 P_Item_Revision_Rec.CREATED_BY,
144 P_Item_Revision_Rec.LAST_UPDATE_DATE,
145 P_Item_Revision_Rec.LAST_UPDATED_BY,
146 P_Item_Revision_Rec.LAST_UPDATE_LOGIN
147 ) RETURNING ROWID INTO X_ROWID;
148
149 INSERT INTO MTL_ITEM_REVISIONS_TL (
150 INVENTORY_ITEM_ID,
151 ORGANIZATION_ID,
152 REVISION_ID,
153 DESCRIPTION,
154 CREATION_DATE,
155 CREATED_BY,
156 LAST_UPDATE_DATE,
157 LAST_UPDATED_BY,
158 LAST_UPDATE_LOGIN,
159 LANGUAGE,
160 SOURCE_LANG
161 ) SELECT P_Item_Revision_Rec.INVENTORY_ITEM_ID,
162 P_Item_Revision_Rec.ORGANIZATION_ID,
163 P_Item_Revision_Rec.REVISION_ID,
164 P_Item_Revision_Rec.DESCRIPTION,
165 P_Item_Revision_Rec.CREATION_DATE,
166 P_Item_Revision_Rec.CREATED_BY,
167 P_Item_Revision_Rec.LAST_UPDATE_DATE,
168 P_Item_Revision_Rec.LAST_UPDATED_BY,
169 P_Item_Revision_Rec.LAST_UPDATE_LOGIN,
170 L.LANGUAGE_CODE,
171 USERENV('LANG')
172 FROM FND_LANGUAGES L
173 WHERE L.INSTALLED_FLAG in ('I', 'B')
174 AND NOT EXISTS (SELECT NULL
175 FROM MTL_ITEM_REVISIONS_TL T
176 WHERE T.INVENTORY_ITEM_ID = P_Item_Revision_Rec.INVENTORY_ITEM_ID
177 AND T.ORGANIZATION_ID = P_Item_Revision_Rec.ORGANIZATION_ID
178 AND T.REVISION_ID = P_Item_Revision_Rec.REVISION_ID
179 AND T.LANGUAGE = L.LANGUAGE_CODE);
180
181 -- Bug 5435229
182 -- Copy revision UDA
183 copy_rev_UDA(p_organization_id => p_Item_Revision_rec.organization_id
184 ,p_inventory_item_id => p_Item_Revision_rec.inventory_item_id
185 ,p_revision_id => p_Item_Revision_rec.revision_id
186 ,p_revision => p_Item_Revision_rec.revision);
187
188 -- R12: Business Event Enhancement : Raise Event if Revision got Created successfully
189 BEGIN
190 INV_ITEM_EVENTS_PVT.Raise_Events(
191 p_event_name => 'EGO_WF_WRAPPER_PVT.G_REV_CHANGE_EVENT'
192 ,p_dml_type => 'CREATE'
193 ,p_inventory_item_id => p_Item_Revision_rec.Inventory_Item_Id
194 ,p_organization_id => p_Item_Revision_rec.Organization_Id
195 ,p_revision_id => p_Item_Revision_rec.revision_id);
196 EXCEPTION
197 WHEN OTHERS THEN
198 NULL;
199 END;
200 --R12: Business Event Enhancement : Raise Event if Revision got Created successfully
201 END INSERT_ROW;
202
203 PROCEDURE LOCK_ROW (P_Item_Revision_Rec IN MTL_ITEM_REVISIONS_B%ROWTYPE) IS
204
205 CURSOR c_get_item_revision IS
206 SELECT
207 REVISION_LABEL,
208 REVISION_REASON,
209 LIFECYCLE_ID,
210 CURRENT_PHASE_ID,
211 REVISION,
212 CHANGE_NOTICE,
213 ECN_INITIATION_DATE,
214 IMPLEMENTATION_DATE,
215 IMPLEMENTED_SERIAL_NUMBER,
216 EFFECTIVITY_DATE,
217 ATTRIBUTE_CATEGORY,
218 ATTRIBUTE1,
219 ATTRIBUTE2,
220 ATTRIBUTE3,
221 ATTRIBUTE4,
222 ATTRIBUTE5,
223 ATTRIBUTE6,
224 ATTRIBUTE7,
225 ATTRIBUTE8,
226 ATTRIBUTE9,
227 ATTRIBUTE10,
228 ATTRIBUTE11,
229 ATTRIBUTE12,
230 ATTRIBUTE13,
231 ATTRIBUTE14,
232 ATTRIBUTE15,
233 REQUEST_ID,
234 REVISED_ITEM_SEQUENCE_ID,
235 OBJECT_VERSION_NUMBER
236 FROM MTL_ITEM_REVISIONS_B
237 WHERE INVENTORY_ITEM_ID = P_Item_Revision_Rec.INVENTORY_ITEM_ID
238 AND ORGANIZATION_ID = P_Item_Revision_Rec.ORGANIZATION_ID
239 AND REVISION_ID = P_Item_Revision_Rec.REVISION_ID
240 FOR UPDATE OF INVENTORY_ITEM_ID NOWAIT;
241
242 CURSOR c_get_revision_desc IS
243 SELECT
244 DESCRIPTION,
245 DECODE(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
246 FROM MTL_ITEM_REVISIONS_TL
247 WHERE INVENTORY_ITEM_ID = P_Item_Revision_Rec.INVENTORY_ITEM_ID
248 AND ORGANIZATION_ID = P_Item_Revision_Rec.ORGANIZATION_ID
249 AND REVISION_ID = P_Item_Revision_Rec.REVISION_ID
250 AND USERENV('LANG') IN (LANGUAGE, SOURCE_LANG)
251 FOR UPDATE OF INVENTORY_ITEM_ID NOWAIT;
252
253 recinfo c_get_item_revision%rowtype;
254 BEGIN
255
256 OPEN c_get_item_revision;
257 FETCH c_get_item_revision INTO recinfo;
258 IF (c_get_item_revision%notfound) THEN
259 CLOSE c_get_item_revision;
260 fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
261 Raise FND_API.g_EXC_UNEXPECTED_ERROR;
262 END IF;
263 CLOSE c_get_item_revision;
264
265 IF ((recinfo.REVISION = P_Item_Revision_Rec.REVISION)
266 AND (recinfo.REVISION_LABEL = P_Item_Revision_Rec.REVISION_LABEL)--Bug: 3017253
267 AND ((recinfo.CHANGE_NOTICE = P_Item_Revision_Rec.CHANGE_NOTICE)
268 OR ((recinfo.CHANGE_NOTICE is null) AND (P_Item_Revision_Rec.CHANGE_NOTICE is null)))
269 AND ((TRUNC(recinfo.ECN_INITIATION_DATE) = TRUNC(P_Item_Revision_Rec.ECN_INITIATION_DATE))
270 OR ((recinfo.ECN_INITIATION_DATE is null) AND (P_Item_Revision_Rec.ECN_INITIATION_DATE is null)))
271 AND ((TRUNC(recinfo.IMPLEMENTATION_DATE) = TRUNC(P_Item_Revision_Rec.IMPLEMENTATION_DATE))
272 OR ((recinfo.IMPLEMENTATION_DATE is null) AND (P_Item_Revision_Rec.IMPLEMENTATION_DATE is null)))
273 AND (TRUNC(recinfo.EFFECTIVITY_DATE) = TRUNC(P_Item_Revision_Rec.EFFECTIVITY_DATE))
274 AND ((recinfo.ATTRIBUTE_CATEGORY = P_Item_Revision_Rec.ATTRIBUTE_CATEGORY)
275 OR ((recinfo.ATTRIBUTE_CATEGORY is null) AND (P_Item_Revision_Rec.ATTRIBUTE_CATEGORY is null)))
276 AND ((recinfo.ATTRIBUTE1 = P_Item_Revision_Rec.ATTRIBUTE1)
277 OR ((recinfo.ATTRIBUTE1 is null) AND (P_Item_Revision_Rec.ATTRIBUTE1 is null)))
278 AND ((recinfo.ATTRIBUTE2 = P_Item_Revision_Rec.ATTRIBUTE2)
279 OR ((recinfo.ATTRIBUTE2 is null) AND (P_Item_Revision_Rec.ATTRIBUTE2 is null)))
280 AND ((recinfo.ATTRIBUTE3 = P_Item_Revision_Rec.ATTRIBUTE3)
281 OR ((recinfo.ATTRIBUTE3 is null) AND (P_Item_Revision_Rec.ATTRIBUTE3 is null)))
282 AND ((recinfo.ATTRIBUTE4 = P_Item_Revision_Rec.ATTRIBUTE4)
283 OR ((recinfo.ATTRIBUTE4 is null) AND (P_Item_Revision_Rec.ATTRIBUTE4 is null)))
284 AND ((recinfo.ATTRIBUTE5 = P_Item_Revision_Rec.ATTRIBUTE5)
285 OR ((recinfo.ATTRIBUTE5 is null) AND (P_Item_Revision_Rec.ATTRIBUTE5 is null)))
286 AND ((recinfo.ATTRIBUTE6 = P_Item_Revision_Rec.ATTRIBUTE6)
287 OR ((recinfo.ATTRIBUTE6 is null) AND (P_Item_Revision_Rec.ATTRIBUTE6 is null)))
288 AND ((recinfo.ATTRIBUTE7 = P_Item_Revision_Rec.ATTRIBUTE7)
289 OR ((recinfo.ATTRIBUTE7 is null) AND (P_Item_Revision_Rec.ATTRIBUTE7 is null)))
290 AND ((recinfo.ATTRIBUTE8 = P_Item_Revision_Rec.ATTRIBUTE8)
291 OR ((recinfo.ATTRIBUTE8 is null) AND (P_Item_Revision_Rec.ATTRIBUTE8 is null)))
292 AND ((recinfo.ATTRIBUTE9 = P_Item_Revision_Rec.ATTRIBUTE9)
293 OR ((recinfo.ATTRIBUTE9 is null) AND (P_Item_Revision_Rec.ATTRIBUTE9 is null)))
294 AND ((recinfo.ATTRIBUTE10 = P_Item_Revision_Rec.ATTRIBUTE10)
295 OR ((recinfo.ATTRIBUTE10 is null) AND (P_Item_Revision_Rec.ATTRIBUTE10 is null)))
296 AND ((recinfo.ATTRIBUTE11 = P_Item_Revision_Rec.ATTRIBUTE11)
297 OR ((recinfo.ATTRIBUTE11 is null) AND (P_Item_Revision_Rec.ATTRIBUTE11 is null)))
298 AND ((recinfo.ATTRIBUTE12 = P_Item_Revision_Rec.ATTRIBUTE12)
299 OR ((recinfo.ATTRIBUTE12 is null) AND (P_Item_Revision_Rec.ATTRIBUTE12 is null)))
300 AND ((recinfo.ATTRIBUTE13 = P_Item_Revision_Rec.ATTRIBUTE13)
301 OR ((recinfo.ATTRIBUTE13 is null) AND (P_Item_Revision_Rec.ATTRIBUTE13 is null)))
302 AND ((recinfo.ATTRIBUTE14 = P_Item_Revision_Rec.ATTRIBUTE14)
303 OR ((recinfo.ATTRIBUTE14 is null) AND (P_Item_Revision_Rec.ATTRIBUTE14 is null)))
304 AND ((recinfo.ATTRIBUTE15 = P_Item_Revision_Rec.ATTRIBUTE15)
305 OR ((recinfo.ATTRIBUTE15 is null) AND (P_Item_Revision_Rec.ATTRIBUTE15 is null))))
306 THEN
307 NULL;
308 ELSE
309 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
310 Raise FND_API.g_EXC_UNEXPECTED_ERROR;
311 END IF;
312
313 FOR tlinfo IN c_get_revision_desc
314 LOOP
315 IF (tlinfo.BASELANG = 'Y') THEN
316 IF (((tlinfo.DESCRIPTION = P_Item_Revision_Rec.DESCRIPTION)
317 OR ((tlinfo.DESCRIPTION is null) AND (P_Item_Revision_Rec.DESCRIPTION is null))))
318 THEN
319 NULL;
320 ELSE
321 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
322 Raise FND_API.g_EXC_UNEXPECTED_ERROR;
323 END IF;
324 END IF;
325 END LOOP;
326
327 EXCEPTION
328 WHEN FND_API.g_EXC_UNEXPECTED_ERROR THEN
329 IF ( c_get_item_revision%ISOPEN ) THEN
330 CLOSE c_get_item_revision;
331 END IF;
332 IF ( c_get_revision_desc%ISOPEN ) THEN
333 CLOSE c_get_revision_desc;
334 END IF;
335 app_exception.raise_exception;
336 END LOCK_ROW;
337
338 PROCEDURE UPDATE_ROW (P_Item_Revision_Rec IN MTL_ITEM_REVISIONS_B%ROWTYPE) IS
339
340 BEGIN
341 UPDATE MTL_ITEM_REVISIONS_B
342 SET
343 REVISION = P_Item_Revision_Rec.REVISION,
344 REVISION_LABEL = P_Item_Revision_Rec.REVISION_LABEL,--Bug: 3017253
345 CHANGE_NOTICE = P_Item_Revision_Rec.CHANGE_NOTICE,
346 ECN_INITIATION_DATE = P_Item_Revision_Rec.ECN_INITIATION_DATE,
347 IMPLEMENTATION_DATE = P_Item_Revision_Rec.IMPLEMENTATION_DATE,
348 EFFECTIVITY_DATE = DECODE(TRUNC(P_Item_Revision_Rec.EFFECTIVITY_DATE),TRUNC(EFFECTIVITY_DATE),EFFECTIVITY_DATE,TRUNC(SYSDATE),SYSDATE,P_Item_Revision_Rec.EFFECTIVITY_DATE),
349 ATTRIBUTE_CATEGORY = P_Item_Revision_Rec.ATTRIBUTE_CATEGORY,
350 ATTRIBUTE1 = P_Item_Revision_Rec.ATTRIBUTE1,
351 ATTRIBUTE2 = P_Item_Revision_Rec.ATTRIBUTE2,
352 ATTRIBUTE3 = P_Item_Revision_Rec.ATTRIBUTE3,
353 ATTRIBUTE4 = P_Item_Revision_Rec.ATTRIBUTE4,
354 ATTRIBUTE5 = P_Item_Revision_Rec.ATTRIBUTE5,
355 ATTRIBUTE6 = P_Item_Revision_Rec.ATTRIBUTE6,
356 ATTRIBUTE7 = P_Item_Revision_Rec.ATTRIBUTE7,
357 ATTRIBUTE8 = P_Item_Revision_Rec.ATTRIBUTE8,
358 ATTRIBUTE9 = P_Item_Revision_Rec.ATTRIBUTE9,
359 ATTRIBUTE10 = P_Item_Revision_Rec.ATTRIBUTE10,
360 ATTRIBUTE11 = P_Item_Revision_Rec.ATTRIBUTE11,
361 ATTRIBUTE12 = P_Item_Revision_Rec.ATTRIBUTE12,
362 ATTRIBUTE13 = P_Item_Revision_Rec.ATTRIBUTE13,
363 ATTRIBUTE14 = P_Item_Revision_Rec.ATTRIBUTE14,
364 ATTRIBUTE15 = P_Item_Revision_Rec.ATTRIBUTE15,
365 LAST_UPDATE_DATE = P_Item_Revision_Rec.LAST_UPDATE_DATE,
366 LAST_UPDATED_BY = P_Item_Revision_Rec.LAST_UPDATED_BY,
367 LAST_UPDATE_LOGIN = P_Item_Revision_Rec.LAST_UPDATE_LOGIN,
368 /* Bug 4224512 : Incrementing OBJECT_VERSION_NUMBER each time revision is updated - Anmurali*/
369 OBJECT_VERSION_NUMBER = NVL(OBJECT_VERSION_NUMBER,1)+1
370 WHERE INVENTORY_ITEM_ID = P_Item_Revision_Rec.INVENTORY_ITEM_ID
371 AND ORGANIZATION_ID = P_Item_Revision_Rec.ORGANIZATION_ID
372 AND REVISION_ID = P_Item_Revision_Rec.REVISION_ID;
373
374 IF (SQL%NOTFOUND) THEN
375 RAISE NO_DATA_FOUND;
376 END IF;
377
378 UPDATE MTL_ITEM_REVISIONS_TL set
379 DESCRIPTION = P_Item_Revision_Rec.DESCRIPTION,
380 LAST_UPDATE_DATE = P_Item_Revision_Rec.LAST_UPDATE_DATE,
381 LAST_UPDATED_BY = P_Item_Revision_Rec.LAST_UPDATED_BY,
385 AND ORGANIZATION_ID = P_Item_Revision_Rec.ORGANIZATION_ID
382 LAST_UPDATE_LOGIN = P_Item_Revision_Rec.LAST_UPDATE_LOGIN,
383 SOURCE_LANG = USERENV('LANG')
384 WHERE INVENTORY_ITEM_ID = P_Item_Revision_Rec.INVENTORY_ITEM_ID
386 AND REVISION_ID = P_Item_Revision_Rec.REVISION_ID
387 AND USERENV('LANG') IN (LANGUAGE, SOURCE_LANG);
388
389 IF (SQL%NOTFOUND) THEN
390 RAISE NO_DATA_FOUND;
391 END IF;
392
393 --R12: Business Event Enhancement : Raise Event if Revision got Updated successfully
394 BEGIN
395 INV_ITEM_EVENTS_PVT.Raise_Events(
396 p_event_name => 'EGO_WF_WRAPPER_PVT.G_REV_CHANGE_EVENT'
397 ,p_dml_type => 'UPDATE'
398 ,p_inventory_item_id => p_Item_Revision_rec.Inventory_Item_Id
399 ,p_organization_id => p_Item_Revision_rec.Organization_Id
400 ,p_revision_id => p_Item_Revision_rec.revision_id);
401 EXCEPTION
402 WHEN OTHERS THEN
403 NULL;
404 END;
405 --R12: Business Event Enhancement : Raise Event if Revision got Updated successfully
406
407 END UPDATE_ROW;
408
409 PROCEDURE ADD_LANGUAGE IS
410 BEGIN
411
412 -- Comment out as part of SQL Repositry fix. Bug: 4256727
413
414 /* DELETE FROM MTL_ITEM_REVISIONS_TL T
415 WHERE NOT EXISTS(SELECT NULL
416 FROM MTL_ITEM_REVISIONS_B B
417 WHERE B.INVENTORY_ITEM_ID = T.INVENTORY_ITEM_ID
418 AND B.ORGANIZATION_ID = T.ORGANIZATION_ID
419 AND B.REVISION_ID = T.REVISION_ID);
420
421 UPDATE MTL_ITEM_REVISIONS_TL T
422 SET (DESCRIPTION) = (SELECT B.DESCRIPTION
423 FROM MTL_ITEM_REVISIONS_TL B
424 WHERE B.INVENTORY_ITEM_ID = T.INVENTORY_ITEM_ID
425 AND B.ORGANIZATION_ID = T.ORGANIZATION_ID
426 AND B.REVISION_ID = T.REVISION_ID
427 AND B.LANGUAGE = T.SOURCE_LANG)
428 WHERE (T.INVENTORY_ITEM_ID,
429 T.ORGANIZATION_ID,
430 T.REVISION_ID,
431 T.LANGUAGE) IN (SELECT SUBT.INVENTORY_ITEM_ID,
432 SUBT.ORGANIZATION_ID,
433 SUBT.REVISION_ID,
434 SUBT.LANGUAGE
435 FROM MTL_ITEM_REVISIONS_TL SUBB,
436 MTL_ITEM_REVISIONS_TL SUBT
437 WHERE SUBB.INVENTORY_ITEM_ID = SUBT.INVENTORY_ITEM_ID
438 AND SUBB.ORGANIZATION_ID = SUBT.ORGANIZATION_ID
439 AND SUBB.REVISION_ID = SUBT.REVISION_ID
440 AND SUBB.LANGUAGE = SUBT.SOURCE_LANG
441 AND (SUBB.DESCRIPTION <> SUBT.DESCRIPTION
442 or (SUBB.DESCRIPTION is null and SUBT.DESCRIPTION is not null)
443 or (SUBB.DESCRIPTION is not null and SUBT.DESCRIPTION is null)));
444 */
445 INSERT INTO MTL_ITEM_REVISIONS_TL (
446 INVENTORY_ITEM_ID,
447 ORGANIZATION_ID,
448 REVISION_ID,
449 DESCRIPTION,
450 CREATION_DATE,
451 CREATED_BY,
452 LAST_UPDATE_DATE,
453 LAST_UPDATED_BY,
454 LAST_UPDATE_LOGIN,
455 LANGUAGE,
456 SOURCE_LANG
457 ) SELECT B.INVENTORY_ITEM_ID,
458 B.ORGANIZATION_ID,
459 B.REVISION_ID,
460 B.DESCRIPTION,
461 B.CREATION_DATE,
462 B.CREATED_BY,
463 B.LAST_UPDATE_DATE,
464 B.LAST_UPDATED_BY,
465 B.LAST_UPDATE_LOGIN,
466 L.LANGUAGE_CODE,
467 B.SOURCE_LANG
468 FROM MTL_ITEM_REVISIONS_TL B,
469 FND_LANGUAGES L
470 WHERE L.INSTALLED_FLAG IN ('I', 'B')
471 AND B.LANGUAGE = USERENV('LANG')
472 AND NOT EXISTS (SELECT NULL
473 FROM MTL_ITEM_REVISIONS_TL T
474 WHERE T.INVENTORY_ITEM_ID = B.INVENTORY_ITEM_ID
475 AND T.ORGANIZATION_ID = B.ORGANIZATION_ID
476 AND T.REVISION_ID = B.REVISION_ID
477 AND T.LANGUAGE = L.LANGUAGE_CODE);
478 end ADD_LANGUAGE;
479
480 end MTL_ITEM_REVISIONS_UTIL;