1 PACKAGE BODY AHL_DI_DOC_REVISION_PVT AS
2 /* $Header: AHLVDORB.pls 120.0 2005/05/26 01:44:41 appldev noship $ */
3 --
4 G_PKG_NAME VARCHAR2(30) := 'AHL_DI_DOC_REVISION_PVT';
5 --
6 /*---------------------------------------------------------*/
7 /* procedure name: validate_revision(private procedure) */
8 /* description : Validation checks for before inserting */
9 /* new record as well before modification */
10 /* takes place */
11 /*---------------------------------------------------------*/
12
13 G_DEBUG VARCHAR2(1):=AHL_DEBUG_PUB.is_log_enabled;
14 PROCEDURE VALIDATE_REVISION
15 (
16 P_DOC_REVISION_ID IN NUMBER ,
17 P_DOCUMENT_ID IN NUMBER ,
18 P_REVISION_NO IN VARCHAR2 ,
19 P_REVISION_TYPE_CODE IN VARCHAR2 ,
20 P_REVISION_STATUS_CODE IN VARCHAR2 ,
21 P_REVISION_DATE IN DATE ,
22 P_APPROVED_BY_PARTY_ID IN NUMBER ,
23 P_APPROVED_DATE IN DATE ,
24 P_EFFECTIVE_DATE IN DATE ,
25 P_OBSOLETE_DATE IN DATE ,
26 P_ISSUE_DATE IN DATE ,
27 P_RECEIVED_DATE IN DATE ,
28 P_MEDIA_TYPE_CODE IN VARCHAR2 ,
29 P_ISSUE_NUMBER IN NUMBER ,
30 P_DELETE_FLAG IN VARCHAR2 := 'N' )
31 IS
32
33 --Cursor to retrieve the revision type code
34 CURSOR get_revision_type_code(c_revision_type_code VARCHAR2)
35 IS
36 SELECT lookup_code
37 FROM FND_LOOKUP_VALUES_VL
38 WHERE lookup_code = c_revision_type_code
39 AND lookup_type = 'AHL_REVISION_TYPE'
40 AND sysdate between start_date_active
41 AND nvl(end_date_active,sysdate);
42
43 --Cursor to retrieve revision status code
44 CURSOR get_revision_status_code(c_revision_status_code VARCHAR2)
45 IS
46 SELECT lookup_code
47 FROM FND_LOOKUP_VALUES_VL
48 WHERE lookup_code = c_revision_status_code
49 AND lookup_type = 'AHL_REVISION_STATUS_TYPE'
50 AND sysdate between start_date_active
51 AND nvl(end_date_active,sysdate);
52
53 --Cursor to retrieve media type code
54 CURSOR get_media_type_code(c_media_type_code VARCHAR2)
55 IS
56 SELECT lookup_code
57 FROM FND_LOOKUP_VALUES_VL
58 WHERE lookup_code = c_media_type_code
59 AND lookup_type = 'AHL_MEDIA_TYPE'
60 AND sysdate between start_date_active
61 AND nvl(end_date_active,sysdate);
62
63 -- Used to validate the document id
64 CURSOR check_doc_info(c_document_id NUMBER)
65 IS
66 SELECT 'X'
67 FROM AHL_DOCUMENTS_B
68 WHERE document_id = c_document_id;
69
70 -- Retrieves doc revision record
71 CURSOR get_doc_revision_rec_info (c_doc_revision_id NUMBER)
72 IS
73 SELECT document_id,
74 revision_no,
75 revision_type_code,
76 revision_status_code,
77 revision_date,
78 approved_by_party_id,
79 approved_date,
80 effective_date,
81 obsolete_date,
82 issue_date,
83 received_date,
84 media_type_code,
85 issue_number
86 FROM AHL_DOC_REVISIONS_B
87 WHERE doc_revision_id = c_doc_revision_id;
88
89 -- Check for Duplicate Record
90 CURSOR dup_rec(c_document_id NUMBER,
91 c_revision_no VARCHAR2)
92 IS
93 SELECT 'X'
94 FROM AHL_DOC_REVISIONS_B
95 WHERE document_id = c_document_id
96 AND revision_no = c_revision_no;
97
98 --Modified pjha 25-Jun-2002 for restricting Media Type to Electronic File
99 --if there is a file uploaded for the document : Begin
100 --Cursor to check if record exist in IBC_CITEM_LIVE_V
101 CURSOR get_record_from_AHL(c_doc_revision_id VARCHAR2)
102 IS
103 SELECT '1'
104 FROM AHL_DOC_FILE_ASSOC_V
105 WHERE revision_id = c_doc_revision_id;
106 --Modified pjha 25-Jun-2002 for restricting Media Type to Electronic File
107 --if there is a file uploaded for the document : End
108 --
109 l_api_name CONSTANT VARCHAR2(30) := 'VALIDATE_REVISION';
110 l_api_version CONSTANT NUMBER := 1.0;
111 l_dummy VARCHAR2(2000);
112 l_doc_revision_id NUMBER;
113 l_revision_no VARCHAR2(30);
114 l_document_id NUMBER;
115 l_revision_type_code VARCHAR2(30);
116 l_revision_status_code VARCHAR2(30);
117 l_revision_date DATE;
118 l_approved_by_party_id NUMBER;
119 l_approved_date DATE;
120 l_effective_date DATE;
121 l_obsolete_date DATE;
122 l_issue_date DATE;
123 l_received_date DATE;
124 l_media_type_code VARCHAR2(30);
125 l_media_type_meaning VARCHAR2(80);
126 l_issue_number NUMBER;
127
128 BEGIN
129 --When the delete flag is 'YES' means either insert or update
130 IF NVL(p_delete_flag,'N') <> 'Y'
131 THEN
132 IF p_doc_revision_id IS NOT NULL
133 THEN
134 OPEN get_doc_revision_rec_info(p_doc_revision_id);
135 FETCH get_doc_revision_rec_info INTO l_document_id,
136 l_revision_no,
137 l_revision_type_code,
138 l_revision_status_code,
139 l_revision_date,
140 l_approved_by_party_id,
141 l_approved_date,
142 l_effective_date,
143 l_obsolete_date,
144 l_issue_date,
145 l_received_date,
146 l_media_type_code,
147 l_issue_number;
148 CLOSE get_doc_revision_rec_info;
149 END IF;
150 --
151 IF p_document_id IS NOT NULL
152 THEN
153 l_document_id := p_document_id;
154 END IF;
155 --
156 IF p_revision_no IS NOT NULL
157 THEN
158 l_revision_no := p_revision_no;
159 END IF;
160 --
161 IF p_revision_type_code IS NOT NULL
162 THEN
163 l_revision_type_code := p_revision_type_code;
164 END IF;
165 --
166 IF p_revision_status_code IS NOT NULL
167 THEN
168 l_revision_status_code := p_revision_status_code;
169 END IF;
170 --
171 IF p_revision_date IS NOT NULL
172 THEN
173 l_revision_date := p_revision_date;
174 END IF;
175 --
176 IF p_approved_by_party_id IS NOT NULL
177 THEN
178 l_approved_by_party_id := p_approved_by_party_id;
179 END IF;
180 --
181 IF p_approved_date IS NOT NULL
182 THEN
183 l_approved_date := p_approved_date;
184 END IF;
185 --
186 IF p_effective_date IS NOT NULL
187 THEN
188 l_effective_date := p_effective_date;
189 END IF;
190 --
191 IF p_obsolete_date IS NOT NULL
192 THEN
193 l_obsolete_date := p_obsolete_date;
194 END IF;
195 --
196 IF p_media_type_code IS NOT NULL
197 THEN
198 l_media_type_code := p_media_type_code;
199 END IF;
200 --
201 IF p_issue_number IS NOT NULL
202 THEN
203 l_issue_number := p_issue_number;
204 END IF;
205 l_doc_revision_id := p_doc_revision_id;
206 -- This condition checks Document Id, when the action is insert or update
207 IF ((p_doc_revision_id IS NULL AND
208 p_document_id IS NULL)
209 OR
210
211 (p_doc_revision_id IS NOT NULL
212 AND l_document_id IS NULL))
213
214 THEN
215 FND_MESSAGE.SET_NAME('AHL','AHL_DI_DOCUMENT_ID_NULL');
216 FND_MSG_PUB.ADD;
217 END IF;
218 --This condition checks fro Revision Number, when the action is insert or update
219 IF ((p_doc_revision_id IS NULL AND
220 p_revision_no IS NULL)
221 OR
222
223 (p_doc_revision_id IS NOT NULL
224 AND l_revision_no IS NULL))
225 THEN
226 FND_MESSAGE.SET_NAME('AHL','AHL_DI_REVISION_NO_NULL');
227 FND_MSG_PUB.ADD;
228 END IF;
229 --This condition checks for Revision Type Code
230 IF ((p_doc_revision_id IS NULL AND
231 p_revision_type_code IS NULL)
232 OR
233
234 (p_doc_revision_id IS NOT NULL
235 AND l_revision_type_code IS NULL))
236 THEN
237 FND_MESSAGE.SET_NAME('AHL','AHL_DI_REV_TYPE_CODE_NULL');
238 FND_MSG_PUB.ADD;
239 END IF;
240 --This condition checks for Revision Status Code
241 IF ((p_doc_revision_id IS NULL AND
242 p_revision_status_code IS NULL)
243 OR
244
245 (p_doc_revision_id IS NOT NULL
246 AND l_revision_status_code IS NULL))
247
248 THEN
249 FND_MESSAGE.SET_NAME('AHL','AHL_DI_REV_STATUS_CODE_NULL');
250 FND_MSG_PUB.ADD;
251 END IF;
252 -- Checks for existence of Revision type code in fnd lookups
253 IF p_revision_type_code IS NOT NULL
254 THEN
255 OPEN get_revision_type_code(p_revision_type_code);
256 FETCH get_revision_type_code INTO l_dummy;
257 IF get_revision_type_code%NOTFOUND
258 THEN
259 FND_MESSAGE.SET_NAME('AHL','AHL_DI_REV_TYPE_CODE_NOT_EXIST');
260 FND_MSG_PUB.ADD;
261 END IF;
262 CLOSE get_revision_type_code;
263 END IF;
264 --Checks for existence of Revision Status Code in fnd lookups
265 IF p_revision_status_code IS NOT NULL
266 THEN
267 OPEN get_revision_status_code(p_revision_status_code);
268 FETCH get_revision_status_code INTO l_dummy;
269 IF get_revision_status_code%NOTFOUND
270 THEN
271 FND_MESSAGE.SET_NAME('AHL','AHL_DI_REV_STAT_CODE_NOT_EXIST');
272 FND_MSG_PUB.ADD;
273 END IF;
274 CLOSE get_revision_status_code;
275 END IF;
276 -- Checks for existence of Media Type Code in fnd lookups
277 IF p_media_type_code IS NOT NULL
278 THEN
279 OPEN get_media_type_code(p_media_type_code);
280 FETCH get_media_type_code INTO l_dummy;
281 IF get_media_type_code%NOTFOUND
282 THEN
283 FND_MESSAGE.SET_NAME('AHL','AHL_DI_MEDTYP_CODE_NOT_EXISTS');
284 FND_MSG_PUB.ADD;
285 END IF;
286 CLOSE get_media_type_code;
287 END IF;
288
289 --Modified pjha 25-Jun-2002 for restricting Media Type to Electronic File
290 --if there is a file uploaded for the document : Begin
291 IF (p_media_type_code IS NULL OR p_media_type_code <> 'E-FILE')
292 THEN
293 OPEN get_record_from_AHL(l_doc_revision_id);
294 FETCH get_record_from_AHL into l_dummy;
295 IF get_record_from_AHL%FOUND THEN
296 --{{adharia to add a token to the message
297 SELECT MEANING into l_media_type_meaning
298 FROM FND_LOOKUP_VALUES_VL
299 WHERE LOOKUP_TYPE='AHL_MEDIA_TYPE' AND LOOKUP_CODE='E-FILE';
300
301 FND_MESSAGE.SET_NAME('AHL','AHL_DI_MEDTYP_NOT_EFILE');
302 FND_MESSAGE.SET_TOKEN('EFILE',l_media_type_meaning);
303 FND_MSG_PUB.ADD;
304 END IF;
305 CLOSE get_record_from_AHL;
306 END IF;
307 --Modified pjha 25-Jun-2002 for restricting Media Type to Electronic File
308 --if there is a file uploaded for the document : End
309
310 -- Validates for existence of document id in ahl documents table
311 IF p_document_id IS NOT NULL
312 THEN
313 OPEN Check_doc_info(p_document_id);
314 FETCH Check_doc_info INTO l_dummy;
315 IF Check_doc_info%NOTFOUND
316 THEN
317 FND_MESSAGE.SET_NAME('AHL','AHL_DI_DOCUMENT_ID_NOT_EXISTS');
318 FND_MSG_PUB.ADD;
319 END IF;
320 CLOSE Check_doc_info;
321 END IF;
322
323 -- Validates the Issue Number
324 IF p_issue_number IS NOT NULL
325 OR
326 l_issue_number IS NOT NULL
327 THEN
328 IF(p_issue_number <= 0 or l_issue_number <= 0)
329 THEN
330 FND_MESSAGE.SET_NAME('AHL','AHL_DI_ISSUE_NUM_INVALID');
331 FND_MSG_PUB.ADD;
332 END IF;
333 END IF;
334 --Validations for Duplicate Record
335 IF p_doc_revision_id IS NULL
336 THEN
337 OPEN dup_rec(l_document_id, l_revision_no);
338 FETCH dup_rec INTO l_dummy;
339 IF dup_rec%FOUND THEN
340 FND_MESSAGE.SET_NAME('AHL','AHL_DI_REVISION_DUP_RECORD');
341 FND_MSG_PUB.ADD;
342 END IF;
343 CLOSE dup_rec;
344 END IF;
345
346 END IF;
347 END VALIDATE_REVISION;
348
349 /*------------------------------------------------------*/
350 /* procedure name: create_revision */
351 /* description : Creates new revision record */
352 /* for an associated document */
353 /* */
354 /*------------------------------------------------------*/
355 PROCEDURE CREATE_REVISION
356 (
357 p_api_version IN NUMBER := 1.0 ,
358 p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE ,
359 p_commit IN VARCHAR2 := FND_API.G_FALSE ,
360 p_validate_only IN VARCHAR2 := FND_API.G_TRUE ,
361 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
362 p_x_revision_tbl IN OUT NOCOPY revision_tbl ,
363 x_return_status OUT NOCOPY VARCHAR2 ,
364 x_msg_count OUT NOCOPY NUMBER ,
365 x_msg_data OUT NOCOPY VARCHAR2
366 )
367 IS
368 --
369 l_api_name CONSTANT VARCHAR2(30) := 'CREATE_REVISION';
370 l_api_version CONSTANT NUMBER := 1.0;
371 l_msg_count NUMBER;
372 l_rowid ROWID;
373 l_doc_revision_id NUMBER;
374 l_revision_info revision_rec;
375 --Added for storing local variables to pass to Table Handler- Prakash 26-Dec-2001
376 l_row_id VARCHAR2(30);
377 --End of addition: Prakash 26-dec-2001
378 BEGIN
379 -- Standard Start of API savepoint
380 SAVEPOINT create_revision;
381 -- Check if API is called in debug mode. If yes, enable debug.
382 IF G_DEBUG='Y' THEN
383 AHL_DEBUG_PUB.enable_debug;
384
385 END IF;
386 -- Debug info.
387 IF G_DEBUG='Y' THEN
388 IF G_DEBUG='Y' THEN
389 AHL_DEBUG_PUB.debug( 'enter ahl_di_doc_revision_pvt.Create Revision','+REV+');
390
391 END IF;
392 END IF;
393 -- Standard call to check for call compatibility.
394 IF FND_API.to_boolean(p_init_msg_list)
395 THEN
396 FND_MSG_PUB.initialize;
397 END IF;
398 -- Initialize API return status to success
399 x_return_status := 'S';
400 -- Initialize message list if p_init_msg_list is set to TRUE.
401 IF NOT FND_API.COMPATIBLE_API_CALL(l_api_version,
402 p_api_version,
403 l_api_name,G_PKG_NAME)
404 THEN
405 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
406 END IF;
407 --Start of API Body
408 IF p_x_revision_tbl.COUNT > 0
409 THEN
410 FOR i IN p_x_revision_tbl.FIRST..p_x_revision_tbl.LAST
411 LOOP
412 -- Calling for Validation
413 VALIDATE_REVISION
414 (
415 p_doc_revision_id => p_x_revision_tbl(i).doc_revision_id,
416 p_document_id => p_x_revision_tbl(i).document_id,
417 p_revision_no => p_x_revision_tbl(i).revision_no,
418 p_revision_type_code => p_x_revision_tbl(i).revision_type_code,
422 p_approved_date => p_x_revision_tbl(i).approved_date,
419 p_revision_status_code => p_x_revision_tbl(i).revision_status_code,
420 p_revision_date => p_x_revision_tbl(i).revision_date,
421 p_approved_by_party_id => p_x_revision_tbl(i).approved_by_party_id,
423 p_effective_date => p_x_revision_tbl(i).effective_date,
424 p_obsolete_date => p_x_revision_tbl(i).obsolete_date,
425 p_issue_date => p_x_revision_tbl(i).issue_date,
426 p_received_date => p_x_revision_tbl(i).received_date,
427 p_media_type_code => p_x_revision_tbl(i).media_type_code,
428 p_issue_number => p_x_revision_tbl(i).issue_number,
429 p_delete_flag => p_x_revision_tbl(i).delete_flag
430 );
431 END LOOP;
432 -- Standard call to get message count and if count is get message info.
433 l_msg_count := FND_MSG_PUB.count_msg;
434
435
436 IF l_msg_count > 0 THEN
437 X_msg_count := l_msg_count;
438 X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
439 RAISE FND_API.G_EXC_ERROR;
440 END IF;
441 FOR i IN p_x_revision_tbl.FIRST..p_x_revision_tbl.LAST
442 LOOP
443 IF p_x_revision_tbl(i).doc_revision_id IS NULL
444 THEN
445 -- The following conditions should be checked for Optional Fields
446 l_revision_info.approved_by_party_id := p_x_revision_tbl(i).approved_by_party_id;
447 l_revision_info.revision_date := p_x_revision_tbl(i).revision_date;
448 l_revision_info.approved_date := p_x_revision_tbl(i).approved_date;
449 l_revision_info.effective_date := p_x_revision_tbl(i).effective_date;
450 l_revision_info.obsolete_date := p_x_revision_tbl(i).obsolete_date;
451 l_revision_info.issue_date := p_x_revision_tbl(i).issue_date;
452 l_revision_info.received_date := p_x_revision_tbl(i).received_date;
453 l_revision_info.url := p_x_revision_tbl(i).url;
454 l_revision_info.media_type_code := p_x_revision_tbl(i).media_type_code;
455 l_revision_info.volume := p_x_revision_tbl(i).volume;
456 l_revision_info.issue := p_x_revision_tbl(i).issue;
457 l_revision_info.issue_number := p_x_revision_tbl(i).issue_number;
458 l_revision_info.comments := p_x_revision_tbl(i).comments;
459 l_revision_info.attribute_category := p_x_revision_tbl(i).attribute_category;
460 l_revision_info.attribute1 := p_x_revision_tbl(i).attribute1;
461 l_revision_info.attribute2 := p_x_revision_tbl(i).attribute2;
462 l_revision_info.attribute3 := p_x_revision_tbl(i).attribute3;
463 l_revision_info.attribute4 := p_x_revision_tbl(i).attribute4;
464 l_revision_info.attribute5 := p_x_revision_tbl(i).attribute5;
465 l_revision_info.attribute6 := p_x_revision_tbl(i).attribute6;
466 l_revision_info.attribute7 := p_x_revision_tbl(i).attribute7;
467 l_revision_info.attribute8 := p_x_revision_tbl(i).attribute8;
468 l_revision_info.attribute9 := p_x_revision_tbl(i).attribute9;
469 l_revision_info.attribute10 := p_x_revision_tbl(i).attribute10;
470 l_revision_info.attribute11 := p_x_revision_tbl(i).attribute11;
471 l_revision_info.attribute12 := p_x_revision_tbl(i).attribute12;
472 l_revision_info.attribute13 := p_x_revision_tbl(i).attribute13;
473 l_revision_info.attribute14 := p_x_revision_tbl(i).attribute14;
474 l_revision_info.attribute15 := p_x_revision_tbl(i).attribute15;
475 -- Gets the value from sequence
476 Select AHL_DOC_REVISIONS_B_S.Nextval Into l_doc_revision_id from dual;
477 --Insert the record into doc revisions table
478 AHL_DOC_REVISIONS_PKG.INSERT_ROW(X_ROWID => l_row_id,
479 X_DOC_REVISION_ID => l_doc_revision_id,
480 X_APPROVED_DATE => l_revision_info.approved_date,
481 X_EFFECTIVE_DATE => l_revision_info.effective_date,
482 X_OBSOLETE_DATE => l_revision_info.obsolete_date,
483 X_ISSUE_DATE => l_revision_info.issue_date,
484 X_RECEIVED_DATE => l_revision_info.received_date,
485 X_URL => l_revision_info.url,
486 X_MEDIA_TYPE_CODE => l_revision_info.media_type_code,
487 X_VOLUME => l_revision_info.volume,
488 X_ISSUE => l_revision_info.issue,
489 X_ISSUE_NUMBER => l_revision_info.issue_number,
490 X_ATTRIBUTE_CATEGORY => l_revision_info.attribute_category,
491 X_ATTRIBUTE1 => l_revision_info.attribute1,
492 X_ATTRIBUTE2 => l_revision_info.attribute2,
493 X_REVISION_DATE => l_revision_info.revision_date,
494 X_ATTRIBUTE15 => l_revision_info.attribute15,
495 X_ATTRIBUTE9 => l_revision_info.attribute9,
496 X_ATTRIBUTE10 => l_revision_info.attribute10,
497 X_ATTRIBUTE11 => l_revision_info.attribute11,
498 X_ATTRIBUTE12 => l_revision_info.attribute12,
499 X_ATTRIBUTE13 => l_revision_info.attribute13,
500 X_DOCUMENT_ID => p_x_revision_tbl(i).document_id,
501 X_REVISION_NO => p_x_revision_tbl(i).revision_no,
502 X_APPROVED_BY_PARTY_ID => l_revision_info.approved_by_party_id,
506 X_ATTRIBUTE3 => l_revision_info.attribute3,
503 X_REVISION_TYPE_CODE => p_x_revision_tbl(i).revision_type_code,
504 X_REVISION_STATUS_CODE => p_x_revision_tbl(i).revision_status_code,
505 X_OBJECT_VERSION_NUMBER => 1,
507 X_ATTRIBUTE4 => l_revision_info.attribute4,
508 X_ATTRIBUTE5 => l_revision_info.attribute5,
509 X_ATTRIBUTE6 => l_revision_info.attribute6,
510 X_ATTRIBUTE7 => l_revision_info.attribute7,
511 X_ATTRIBUTE8 => l_revision_info.attribute8,
512 X_ATTRIBUTE14 => l_revision_info.attribute14,
513 X_COMMENTS => l_revision_info.comments,
514 X_CREATION_DATE => sysdate,
515 X_CREATED_BY => fnd_global.user_id,
516 X_LAST_UPDATE_DATE => sysdate,
517 X_LAST_UPDATED_BY => fnd_global.user_id,
518 X_LAST_UPDATE_LOGIN => fnd_global.login_id);
519
520 /*Following line have been moved, since table handler does not take care of
521 assignments: Prakash : 24-Dec-2001*/
522 --Assign doc revision id
523 p_x_revision_tbl(i).doc_revision_id := l_doc_revision_id;
524 p_x_revision_tbl(i).object_version_number := 1;
525 l_msg_count := FND_MSG_PUB.count_msg;
526
527 IF l_msg_count > 0 THEN
528 X_msg_count := l_msg_count;
529 X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
530 RAISE FND_API.G_EXC_ERROR;
531 END IF;
532 END IF;
533 END LOOP;
534 END IF;
535 -- Standard check of p_commit.
536 IF FND_API.TO_BOOLEAN(p_commit) THEN
537 COMMIT;
538 END IF;
539 -- Debug info
540 IF G_DEBUG='Y' THEN
541 AHL_DEBUG_PUB.debug( 'End of private api Create Revision','+REV+');
542
543 END IF;
544 -- Check if API is called in debug mode. If yes, disable debug.
545 IF G_DEBUG='Y' THEN
546 AHL_DEBUG_PUB.disable_debug;
547
548 END IF;
549
550 EXCEPTION
551 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
552 ROLLBACK TO create_revision;
553 X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
554 FND_MSG_PUB.count_and_get( p_encoded => FND_API.G_FALSE,
555 p_count => x_msg_count,
556 p_data => x_msg_data);
557 --Debug Info
558 IF G_DEBUG='Y' THEN
559 AHL_DEBUG_PUB.log_app_messages (x_msg_count, x_msg_data, 'ERROR' );
560 AHL_DEBUG_PUB.debug( 'ahl_di_doc_revision_pvt.Create Revision','+REV+');
561
562
563 -- Check if API is called in debug mode. If yes, disable debug.
564 AHL_DEBUG_PUB.disable_debug;
565
566 END IF;
567
568 WHEN FND_API.G_EXC_ERROR THEN
569 ROLLBACK TO create_revision;
570 X_return_status := FND_API.G_RET_STS_ERROR;
571 FND_MSG_PUB.count_and_get( p_encoded => FND_API.G_FALSE,
572 p_count => x_msg_count,
573 p_data => X_msg_data);
574 -- Debug info.
575 IF G_DEBUG='Y' THEN
576 AHL_DEBUG_PUB.log_app_messages (x_msg_count, x_msg_data, 'UNEXPECTED ERROR' );
577 AHL_DEBUG_PUB.debug( 'ahl_di_doc_revision_pvt.Create Revision','+REV+');
578
579
580 -- Check if API is called in debug mode. If yes, disable debug.
581 AHL_DEBUG_PUB.disable_debug;
582
583 END IF;
584
585 WHEN OTHERS THEN
586 ROLLBACK TO create_revision;
587 X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
588 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
589 THEN
590 fnd_msg_pub.add_exc_msg(p_pkg_name => 'AHL_DI_DOC_REVISION_PVT',
591 p_procedure_name => 'CREATE_REVISION',
592 p_error_text => SUBSTR(SQLERRM,1,240));
593 END IF;
594 FND_MSG_PUB.count_and_get( p_encoded => FND_API.G_FALSE,
595 p_count => x_msg_count,
596 p_data => X_msg_data);
597 -- Debug info.
598 IF G_DEBUG='Y' THEN
599 AHL_DEBUG_PUB.log_app_messages (x_msg_count, x_msg_data, 'SQL ERROR' );
600 AHL_DEBUG_PUB.debug( 'ahl_di_doc_revision_pvt.Create Revision','+REV+');
601
602 -- Check if API is called in debug mode. If yes, disable debug.
603 AHL_DEBUG_PUB.disable_debug;
604
605 END IF;
606
607 END CREATE_REVISION;
608 /*------------------------------------------------------*/
609 /* procedure name: modify_revision */
610 /* description : Update the existing revision record */
611 /* and removes the revision record */
612 /* for an associated document */
613 /* */
614 /*------------------------------------------------------*/
615 PROCEDURE MODIFY_REVISION
616 (
617 p_api_version IN NUMBER := 1.0 ,
618 p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE ,
619 p_commit IN VARCHAR2 := FND_API.G_FALSE ,
620 p_validate_only IN VARCHAR2 := FND_API.G_TRUE ,
621 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
622 p_x_revision_tbl IN revision_tbl ,
626 )
623 x_return_status OUT NOCOPY VARCHAR2 ,
624 x_msg_count OUT NOCOPY NUMBER ,
625 x_msg_data OUT NOCOPY VARCHAR2
627 IS
628 -- Used to retrieve the existing record info
629 CURSOR get_doc_revisions_b_rec_info(c_doc_revision_id NUMBER)
630 IS
631 SELECT ROWID,
632 document_id,
633 revision_no,
634 revision_type_code,
635 revision_status_code,
636 revision_date,
637 approved_by_party_id,
638 approved_date,
639 effective_date,
640 obsolete_date,
641 issue_date,
642 received_date,
643 url,
644 media_type_code,
645 volume,
646 issue,
647 issue_number,
648 object_version_number,
649 attribute_category,
650 attribute1,
651 attribute2,
652 attribute3,
653 attribute4,
654 attribute5,
655 attribute6,
656 attribute7,
657 attribute8,
658 attribute9,
659 attribute10,
660 attribute11,
661 attribute12,
662 attribute13,
663 attribute14,
664 attribute15
665 FROM AHL_DOC_REVISIONS_B
666 WHERE doc_revision_id = c_doc_revision_id
667 FOR UPDATE OF object_version_number NOWAIT;
668 --Used to retrieve the record from trans table
669 CURSOR get_doc_revisions_tl_rec_info(c_doc_revision_id NUMBER)
670 IS
671 SELECT comments
672 FROM AHL_DOC_REVISIONS_TL
673 WHERE doc_revision_id = c_doc_revision_id
674 FOR UPDATE OF doc_revision_id NOWAIT;
675 --
676 l_api_name CONSTANT VARCHAR2(30) := 'MODIFY_REVISION';
677 l_api_version CONSTANT NUMBER := 1.0;
678 l_msg_count NUMBER;
679 l_rowid ROWID;
680 l_doc_revision_id NUMBER;
681 l_language VARCHAR2(4);
682 l_source_lang VARCHAR2(4);
683 l_comments VARCHAR2(2000);
684 l_revision_info get_doc_revisions_b_rec_info%ROWTYPE;
685 --
686 BEGIN
687 -- Standard Start of API savepoint
688 SAVEPOINT modify_revision;
689 -- Check if API is called in debug mode. If yes, enable debug.
690 IF G_DEBUG='Y' THEN
691 AHL_DEBUG_PUB.enable_debug;
692
693 END IF;
694 -- Debug info.
695 IF G_DEBUG='Y' THEN
696 IF G_DEBUG='Y' THEN
697 AHL_DEBUG_PUB.debug( 'enter ahl_di_doc_revision_pvt.Modify Revision','+REV+');
698
699 END IF;
700 END IF;
701 -- Standard call to check for call compatibility.
702 IF FND_API.to_boolean(p_init_msg_list)
703 THEN
704 FND_MSG_PUB.initialize;
705 END IF;
706 -- Initialize API return status to success
707 x_return_status := 'S';
708
709 IF NOT FND_API.COMPATIBLE_API_CALL(l_api_version,
710 p_api_version,
711 l_api_name,G_PKG_NAME)
712 THEN
713 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
714 END IF;
715 --Start of API Body
716 IF p_x_revision_tbl.COUNT > 0
717 THEN
718 FOR i IN p_x_revision_tbl.FIRST..p_x_revision_tbl.LAST
719 LOOP
720 --Calling for Validation
721 VALIDATE_REVISION
722 (
723 p_doc_revision_id => p_x_revision_tbl(i).doc_revision_id,
724 p_document_id => p_x_revision_tbl(i).document_id,
725 p_revision_no => p_x_revision_tbl(i).revision_no,
726 p_revision_type_code => p_x_revision_tbl(i).revision_type_code,
727 p_revision_status_code => p_x_revision_tbl(i).revision_status_code,
728 p_revision_date => p_x_revision_tbl(i).revision_date,
729 p_approved_by_party_id => p_x_revision_tbl(i).approved_by_party_id,
730 p_approved_date => p_x_revision_tbl(i).approved_date,
731 p_effective_date => p_x_revision_tbl(i).effective_date,
732 p_obsolete_date => p_x_revision_tbl(i).obsolete_date,
733 p_issue_date => p_x_revision_tbl(i).obsolete_date,
734 p_received_date => p_x_revision_tbl(i).obsolete_date,
735 p_media_type_code => p_x_revision_tbl(i).media_type_code,
736 p_issue_number => p_x_revision_tbl(i).issue_number,
737 p_delete_flag => p_x_revision_tbl(i).delete_flag
738 );
739 END LOOP;
740 --End of Validations
741 -- Standard call to get message count
742 l_msg_count := FND_MSG_PUB.count_msg;
743 IF l_msg_count > 0 THEN
744 X_msg_count := l_msg_count;
745 X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
746 RAISE FND_API.G_EXC_ERROR;
747 END IF;
748 FOR i IN p_x_revision_tbl.FIRST..p_x_revision_tbl.LAST
749 LOOP
750 OPEN get_doc_revisions_b_rec_info(p_x_revision_tbl(i).doc_revision_id);
751 FETCH get_doc_revisions_b_rec_info INTO l_revision_info;
752 CLOSE get_doc_revisions_b_rec_info;
753 --
754 OPEN get_doc_revisions_tl_rec_info(p_x_revision_tbl(i).doc_revision_id);
755 FETCH get_doc_revisions_tl_rec_info INTO l_comments;
756 CLOSE get_doc_revisions_tl_rec_info;
757
758 -- This bug fix when concurrent users update
759 -- updating same record...02/05/02
763 FND_MSG_PUB.ADD;
760 if (l_revision_info.object_version_number <>p_x_revision_tbl(i).object_version_number)
761 then
762 FND_MESSAGE.SET_NAME('AHL','AHL_COM_RECORD_CHANGED');
764 RAISE FND_API.G_EXC_ERROR;
765 end if;
766 -- The following conditions compare the new record value with old record
767 -- value, if its different then assign the new value else continue
768 IF p_x_revision_tbl(i).doc_revision_id IS NOT NULL
769 THEN
770 l_revision_info.document_id := p_x_revision_tbl(i).document_id;
771 l_revision_info.revision_no := p_x_revision_tbl(i).revision_no;
772 l_revision_info.revision_type_code := p_x_revision_tbl(i).revision_type_code;
773 l_revision_info.revision_status_code := p_x_revision_tbl(i).revision_status_code;
774 l_revision_info.revision_date := p_x_revision_tbl(i).revision_date;
775 l_revision_info.approved_by_party_id := p_x_revision_tbl(i).approved_by_party_id;
776 l_revision_info.approved_date := p_x_revision_tbl(i).approved_date;
777 l_revision_info.effective_date := p_x_revision_tbl(i).effective_date;
778 l_revision_info.obsolete_date := p_x_revision_tbl(i).obsolete_date;
779 l_revision_info.issue_date := p_x_revision_tbl(i).issue_date;
780 l_revision_info.received_date := p_x_revision_tbl(i).received_date;
781 l_revision_info.url := p_x_revision_tbl(i).url;
782 l_revision_info.media_type_code := p_x_revision_tbl(i).media_type_code;
783 l_revision_info.volume := p_x_revision_tbl(i).volume;
784 l_revision_info.issue := p_x_revision_tbl(i).issue;
785 l_revision_info.issue_number := p_x_revision_tbl(i).issue_number;
786 l_comments := p_x_revision_tbl(i).comments;
787 l_revision_info.attribute_category := p_x_revision_tbl(i).attribute_category;
788 l_revision_info.attribute1 := p_x_revision_tbl(i).attribute1;
789 l_revision_info.attribute2 := p_x_revision_tbl(i).attribute2;
790 l_revision_info.attribute3 := p_x_revision_tbl(i).attribute3;
791 l_revision_info.attribute4 := p_x_revision_tbl(i).attribute4;
792 l_revision_info.attribute5 := p_x_revision_tbl(i).attribute5;
793 l_revision_info.attribute6 := p_x_revision_tbl(i).attribute6;
794 l_revision_info.attribute7 := p_x_revision_tbl(i).attribute7;
795 l_revision_info.attribute8 := p_x_revision_tbl(i).attribute8;
796 l_revision_info.attribute9 := p_x_revision_tbl(i).attribute9;
797 l_revision_info.attribute10 := p_x_revision_tbl(i).attribute10;
798 l_revision_info.attribute11 := p_x_revision_tbl(i).attribute11;
799 l_revision_info.attribute12 := p_x_revision_tbl(i).attribute12;
800 l_revision_info.attribute13 := p_x_revision_tbl(i).attribute13;
801 l_revision_info.attribute14 := p_x_revision_tbl(i).attribute14;
802 l_revision_info.attribute15 := p_x_revision_tbl(i).attribute15;
803
804 /*Calling Table Handler: Prakash : 26-Dec-2001 */
805 AHL_DOC_REVISIONS_PKG.UPDATE_ROW(X_DOC_REVISION_ID => p_x_revision_tbl(i).doc_revision_id,
806 X_APPROVED_DATE => l_revision_info.approved_date,
807 X_EFFECTIVE_DATE => l_revision_info.effective_date,
808 X_OBSOLETE_DATE => l_revision_info.obsolete_date,
809 X_ISSUE_DATE => l_revision_info.issue_date,
810 X_RECEIVED_DATE => l_revision_info.received_date,
811 X_URL => l_revision_info.url,
812 X_MEDIA_TYPE_CODE => l_revision_info.media_type_code,
813 X_VOLUME => l_revision_info.volume,
814 X_ISSUE => l_revision_info.issue,
815 X_ISSUE_NUMBER => l_revision_info.issue_number,
816 X_ATTRIBUTE_CATEGORY => l_revision_info.attribute_category,
817 X_ATTRIBUTE1 => l_revision_info.attribute1,
818 X_ATTRIBUTE2 => l_revision_info.attribute2,
819 X_REVISION_DATE => l_revision_info.revision_date,
820 X_ATTRIBUTE15 => l_revision_info.attribute15,
821 X_ATTRIBUTE9 => l_revision_info.attribute9,
822 X_ATTRIBUTE10 => l_revision_info.attribute10,
823 X_ATTRIBUTE11 => l_revision_info.attribute11,
824 X_ATTRIBUTE12 => l_revision_info.attribute12,
825 X_ATTRIBUTE13 => l_revision_info.attribute13,
826 X_DOCUMENT_ID => l_revision_info.document_id,
827 X_REVISION_NO => l_revision_info.revision_no,
828 X_APPROVED_BY_PARTY_ID => l_revision_info.approved_by_party_id,
829 X_REVISION_TYPE_CODE => l_revision_info.revision_type_code,
830 X_REVISION_STATUS_CODE => l_revision_info.revision_status_code,
831 X_OBJECT_VERSION_NUMBER => l_revision_info.object_version_number+1,
832 X_ATTRIBUTE3 => l_revision_info.attribute3,
833 X_ATTRIBUTE4 => l_revision_info.attribute4,
837 X_ATTRIBUTE8 => l_revision_info.attribute8,
834 X_ATTRIBUTE5 => l_revision_info.attribute5,
835 X_ATTRIBUTE6 => l_revision_info.attribute6,
836 X_ATTRIBUTE7 => l_revision_info.attribute7,
838 X_ATTRIBUTE14 => l_revision_info.attribute14,
839 X_COMMENTS => l_comments,
840 X_LAST_UPDATE_DATE => sysdate,
841 X_LAST_UPDATED_BY => fnd_global.user_id,
842 X_LAST_UPDATE_LOGIN => fnd_global.login_id);
843 -- This will be called to delete revision record, not supported in this phase
844 ELSIF ((p_x_revision_tbl(i).doc_revision_id IS NOT NULL) AND
845 NVL(p_x_revision_tbl(i).delete_flag, 'N') = 'Y' )
846
847 THEN
848 DELETE_REVISION
849 (p_api_version => 1.0 ,
850 p_init_msg_list => FND_API.G_TRUE ,
851 p_commit => FND_API.G_FALSE ,
852 p_validate_only => FND_API.G_TRUE ,
853 p_validation_level => FND_API.G_VALID_LEVEL_FULL,
854 p_x_revision_tbl => p_x_revision_tbl ,
855 x_return_status => x_return_status ,
856 x_msg_count => x_msg_count ,
857 x_msg_data => x_msg_data
858 );
859 END IF;
860 END LOOP;
861 END IF;
862 -- Standard check of p_commit.
863 IF FND_API.TO_BOOLEAN(p_commit) THEN
864 COMMIT;
865 END IF;
866 -- Debug info
867 IF G_DEBUG='Y' THEN
868 AHL_DEBUG_PUB.debug( 'End of private api Modify Revision','+REV+');
869
870 END IF;
871 -- Check if API is called in debug mode. If yes, disable debug.
872 IF G_DEBUG='Y' THEN
873 AHL_DEBUG_PUB.disable_debug;
874
875 END IF;
876 EXCEPTION
877 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
878 ROLLBACK TO modify_revision;
879 X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
880 FND_MSG_PUB.count_and_get( p_encoded => FND_API.G_FALSE,
881 p_count => x_msg_count,
882 p_data => x_msg_data);
883
884 IF G_DEBUG='Y' THEN
885 AHL_DEBUG_PUB.log_app_messages (x_msg_count, x_msg_data, 'ERROR' );
886 AHL_DEBUG_PUB.debug( 'ahl_di_doc_revision_pvt.Modify Revision','+REV+');
887
888
889 -- Check if API is called in debug mode. If yes, disable debug.
890 AHL_DEBUG_PUB.disable_debug;
891
892 END IF;
893
894 WHEN FND_API.G_EXC_ERROR THEN
895 ROLLBACK TO modify_revision;
896 X_return_status := FND_API.G_RET_STS_ERROR;
897 FND_MSG_PUB.count_and_get( p_encoded => FND_API.G_FALSE,
898 p_count => x_msg_count,
899 p_data => X_msg_data);
900 -- Debug info.
901 IF G_DEBUG='Y' THEN
902 AHL_DEBUG_PUB.log_app_messages (x_msg_count, x_msg_data, 'UNEXPECTED ERROR' );
903 AHL_DEBUG_PUB.debug( 'ahl_di_doc_revision_pvt.Modify Revision','+REV+');
904
905
906 -- Check if API is called in debug mode. If yes, disable debug.
907 AHL_DEBUG_PUB.disable_debug;
908
909 END IF;
910
911 WHEN OTHERS THEN
912 ROLLBACK TO modify_revision;
913 X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
914 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
915 THEN
916 fnd_msg_pub.add_exc_msg(p_pkg_name => 'AHL_DI_DOC_REVISION_PVT',
917 p_procedure_name => 'MODIFY_REVISION',
918 p_error_text => SUBSTR(SQLERRM,1,240));
919 END IF;
920 FND_MSG_PUB.count_and_get( p_encoded => FND_API.G_FALSE,
921 p_count => x_msg_count,
922 p_data => X_msg_data);
923
924 -- Debug info.
925 IF G_DEBUG='Y' THEN
926 AHL_DEBUG_PUB.log_app_messages (x_msg_count, x_msg_data, 'SQL ERROR' );
927 AHL_DEBUG_PUB.debug( 'ahl_di_doc_revision_pvt.Modify Revision','+REV+');
928
929
930 -- Check if API is called in debug mode. If yes, disable debug.
931 AHL_DEBUG_PUB.disable_debug;
932
933 END IF;
934
935 END MODIFY_REVISION;
936 --
937 PROCEDURE DELETE_REVISION
938 (
939 p_api_version IN NUMBER := 1.0 ,
940 p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE ,
941 p_commit IN VARCHAR2 := FND_API.G_FALSE ,
942 p_validate_only IN VARCHAR2 := FND_API.G_TRUE ,
943 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
944 p_x_revision_tbl IN revision_tbl ,
945 x_return_status OUT NOCOPY VARCHAR2 ,
946 x_msg_count OUT NOCOPY NUMBER ,
947 x_msg_data OUT NOCOPY VARCHAR2
948 )
949 IS
950 -- to get the revision rec
951 CURSOR get_revision_rec_b_info(c_doc_revision_id NUMBER)
952 IS
953 SELECT ROWID,
957 FROM AHL_DOC_REVISIONS_B
954 effective_date,
955 obsolete_date,
956 object_version_number
958 WHERE doc_revision_id = c_doc_revision_id
959 FOR UPDATE OF object_version_number NOWAIT;
960 --
961 l_api_name CONSTANT VARCHAR2(30) := 'DELETE_REVISION';
962 l_api_version CONSTANT NUMBER := 1.0;
963 l_rowid ROWID;
964 l_object_version_number NUMBER;
965 l_effective_date DATE;
966 l_obsolete_date DATE;
967 BEGIN
968 -- Standard Start of API savepoint
969 SAVEPOINT delete_revision;
970 -- Standard call to check for call compatibility.
971 IF FND_API.to_boolean(p_init_msg_list)
972 THEN
973 FND_MSG_PUB.initialize;
974 END IF;
975 -- Initialize API return status to success
976 x_return_status := 'S';
977 -- Initialize message list if p_init_msg_list is set to TRUE.
978 IF NOT FND_API.COMPATIBLE_API_CALL(l_api_version,
979 p_api_version,
980 l_api_name,G_PKG_NAME)
981 THEN
982 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
983 END IF;
984 --Start of API Body
985 IF p_x_revision_tbl.COUNT > 0
986 THEN
987 FOR i IN p_x_revision_tbl.FIRST..p_x_revision_tbl.LAST
988 LOOP
989 OPEN get_revision_rec_b_info(p_x_revision_tbl(i).doc_revision_id);
990 FETCH get_revision_rec_b_info INTO l_rowid,
991 l_effective_date,
992 l_obsolete_date,
993 l_object_version_number;
994 IF (get_revision_rec_b_info%NOTFOUND)
995 THEN
996 FND_MESSAGE.SET_NAME('AHL','AHL_DI_DOC_REVI_RECORD_INVALID');
997 FND_MSG_PUB.ADD;
998 END IF;
999 CLOSE get_revision_rec_b_info;
1000 -- Check for version number
1001 IF (l_object_version_number <> p_x_revision_tbl(i).object_version_number)
1002 THEN
1003 FND_MESSAGE.SET_NAME('AHL','AHL_DI_DOC_REVI_RECORD_CHANGED');
1004 FND_MSG_PUB.ADD;
1005 END IF;
1006 -- Validate with end date
1007 IF (l_obsolete_date IS NOT NULL AND l_obsolete_date <= SYSDATE)
1008 THEN
1009 FND_MESSAGE.SET_NAME('AHL','AHL_DI_DOC_REVI_RECORD_CLOSED');
1010 FND_MSG_PUB.ADD;
1011 END IF;
1012 IF (TRUNC(NVL(l_obsolete_date, SYSDATE)) >
1013 TRUNC(NVL(p_x_revision_tbl(i).obsolete_date,SYSDATE)))
1014 THEN
1015 FND_MESSAGE.SET_NAME('AHL','AHL_DI_OBSOLETE_DATE_INVALID');
1016 FND_MSG_PUB.ADD;
1017 END IF;
1018 -- Update the end date in subscriptions table
1019 UPDATE AHL_DOC_REVISIONS_B
1020 SET OBSOLETE_DATE = p_x_revision_tbl(i).obsolete_date
1021 WHERE ROWID = l_rowid;
1022 END LOOP;
1023 END IF;
1024 -- Standard check of p_commit.
1025 IF FND_API.TO_BOOLEAN(p_commit) THEN
1026 COMMIT;
1027 END IF;
1028
1029 EXCEPTION
1030 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1031 ROLLBACK TO delete_revision;
1032 X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1033 FND_MSG_PUB.count_and_get( p_encoded => FND_API.G_FALSE,
1034 p_count => x_msg_count,
1035 p_data => x_msg_data);
1036
1037 WHEN FND_API.G_EXC_ERROR THEN
1038 ROLLBACK TO delete_revision;
1039 X_return_status := FND_API.G_RET_STS_ERROR;
1040 FND_MSG_PUB.count_and_get( p_encoded => FND_API.G_FALSE,
1041 p_count => x_msg_count,
1042 p_data => X_msg_data);
1043 WHEN OTHERS THEN
1044 ROLLBACK TO delete_revision;
1045 X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1046 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1047 THEN
1048 fnd_msg_pub.add_exc_msg(p_pkg_name => 'AHL_DOC_REVISIONS_PVT',
1049 p_procedure_name => 'DELETE_REVISION',
1050 p_error_text => SUBSTR(SQLERRM,1,240));
1051 END IF;
1052 FND_MSG_PUB.count_and_get( p_encoded => FND_API.G_FALSE,
1053 p_count => x_msg_count,
1054 p_data => X_msg_data);
1055
1056 END DELETE_REVISION;
1057
1058 --
1059 END AHL_DI_DOC_REVISION_PVT;