DBA Data[Home] [Help]

PACKAGE BODY: APPS.AHL_DI_DOC_REVISION_PUB

Source


1 PACKAGE BODY AHL_DI_DOC_REVISION_PUB AS
2 /* $Header: AHLPDORB.pls 120.3.12020000.2 2012/12/07 00:02:03 sareepar ship $ */
3 --
4 G_PKG_NAME  VARCHAR2(30)  := 'AHL_DI_DOC_REVISION_PUB';
5 /*-----------------------------------------------------------*/
6 /* procedure name: Check_lookup_name_Or_Id(private procedure)*/
7 /* description :  used to retrieve lookup code               */
8 /*                                                           */
9 /*-----------------------------------------------------------*/
10 
11 --G_DEBUG 		 VARCHAR2(1):=FND_PROFILE.VALUE('AHL_API_FILE_DEBUG_ON');
12   G_DEBUG                VARCHAR2(1)   := AHL_DEBUG_PUB.is_log_enabled;
13 PROCEDURE Check_lookup_name_Or_Id
14  ( p_lookup_type      IN FND_LOOKUPS.lookup_type%TYPE,
15    p_lookup_code      IN FND_LOOKUPS.lookup_code%TYPE,
16    p_meaning          IN FND_LOOKUPS.meaning%TYPE,
17    p_check_id_flag    IN VARCHAR2,
18    x_lookup_code      OUT NOCOPY FND_LOOKUPS.lookup_code%TYPE,
19    x_return_status    OUT NOCOPY VARCHAR2)
20 IS
21 
22 BEGIN
23       IF (p_lookup_code IS NOT NULL) THEN
24         IF (p_check_id_flag = 'Y') THEN
25           SELECT lookup_code INTO x_lookup_code
26            FROM FND_LOOKUP_VALUES_VL
27           WHERE lookup_type = p_lookup_type
28             AND lookup_code = p_lookup_code
29             AND sysdate between start_date_active
30             AND nvl(end_date_active,sysdate);
31         ELSE
32            x_lookup_code := p_lookup_code;
33         END IF;
34      ELSE
35           SELECT lookup_code INTO x_lookup_code
36            FROM FND_LOOKUP_VALUES_VL
37           WHERE lookup_type = p_lookup_type
38             AND meaning     = p_meaning
39             AND sysdate between start_date_active
40             AND nvl(end_date_active,sysdate);
41     END IF;
42       x_return_status := FND_API.G_RET_STS_SUCCESS;
43 EXCEPTION
44    WHEN no_data_found THEN
45       x_return_status := FND_API.G_RET_STS_ERROR;
46    WHEN too_many_rows THEN
47       x_return_status := FND_API.G_RET_STS_ERROR;
48    WHEN OTHERS THEN
49       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
50       RAISE;
51 END;
52 /*---------------------------------------------------*/
53 /* procedure name: create_revision                   */
54 /* description :  Creates new revision record        */
55 /*                for an associated document         */
56 /*                                                   */
57 /*---------------------------------------------------*/
58 PROCEDURE CREATE_REVISION
59 (
60  p_api_version               IN     NUMBER    :=  1.0                ,
61  p_init_msg_list             IN     VARCHAR2  := FND_API.G_TRUE      ,
62  p_commit                    IN     VARCHAR2  := FND_API.G_FALSE     ,
63  p_validate_only             IN     VARCHAR2  := FND_API.G_TRUE      ,
64  p_validation_level          IN     NUMBER    := FND_API.G_VALID_LEVEL_FULL,
65  p_x_revision_tbl            IN OUT NOCOPY revision_tbl              ,
66  p_module_type               IN     VARCHAR2                         ,
67  x_return_status                OUT NOCOPY VARCHAR2                         ,
68  x_msg_count                    OUT NOCOPY NUMBER                           ,
69  x_msg_data                     OUT NOCOPY VARCHAR2)
70 IS
71 
72 --Check for ID based on the name
73 CURSOR get_party_name(c_approved_by_pty_name IN VARCHAR2)
74  IS
75  --Modified pjha:07-Aug-2002 for performance
76  /*
77  SELECT party_id
78   FROM ahl_hz_per_employees_v
79  WHERE upper(party_name) = upper(c_approved_by_pty_name);
80  */
81  -- changes for performance pbarman 7.5.2003
82  SELECT party_id
83  FROM hz_parties
84  WHERE upper(PARTY_NAME) = upper(c_approved_by_pty_name)
85  AND AHL_DI_DOC_INDEX_PVT.GET_PRODUCT_INSTALL_STATUS('PER') IN ('N','L')
86  AND party_type = 'PERSON'
87  UNION
88  SELECT person_id
89  FROM per_people_f ppf,per_person_types ppt
90  WHERE upper(FULL_NAME) = upper(c_approved_by_pty_name)
91  AND trunc(sysdate) BETWEEN effective_start_date AND effective_end_date
92  AND nvl(current_employee_flag, 'X') = 'Y'
93  AND ppf.person_type_id = ppt.person_type_id
94  AND system_person_type = 'EMP'
95  AND AHL_DI_DOC_INDEX_PVT.GET_PRODUCT_INSTALL_STATUS('PER') IN ('I','S');
96 
97 -- Check for ID
98 CURSOR approved_by_party_id(c_approved_by_pty_id  IN NUMBER)
99  IS
100 SELECT party_id
101   FROM hz_parties
102  WHERE party_id = c_approved_by_pty_id;
103 
104 --Check for Name
105 CURSOR approved_by_party_desc(c_approved_by_pty_name  IN VARCHAR2)
106  IS
107 SELECT party_id
108   FROM hz_parties
109  WHERE UPPER(party_name) = UPPER(c_approved_by_pty_name);
110 
111    --Used to retrieve the party id for party name and party id
112     CURSOR get_party_name_id (c_party_name  IN VARCHAR2, c_party_id IN NUMBER)
113     IS
114     SELECT person_id
115     FROM per_people_f ppf, per_person_types ppt
116     WHERE upper(FULL_NAME) = upper(c_party_name)
117       AND ppf.person_id = c_party_id
118       AND trunc(sysdate) between ppf.effective_start_date and ppf.effective_end_date
119       AND nvl(ppf.current_employee_flag,'x') = 'Y'
120       AND ppf.person_type_id = ppt.person_type_id
121       AND ppt.system_person_type ='EMP';
122 
123 
124 
125 
126 --
127  l_api_name      CONSTANT VARCHAR2(30) := 'CREATE_REVISION';
128  l_api_version   CONSTANT NUMBER       := 1.0;
129 
130  l_num_rec                NUMBER;
131  l_msg_count              NUMBER;
132  l_msg_data               VARCHAR2(2000);
133  l_return_status          VARCHAR2(1);
134  l_revision_type_code     VARCHAR2(30);
135  l_media_type_code        VARCHAR2(30);
136  l_revision_status_code   VARCHAR2(30);
137  l_revision_status_type   VARCHAR2(30) := 'AHL_REVISION_STATUS_TYPE';
138  l_revision_type          VARCHAR2(30) := 'AHL_REVISION_TYPE';
139  l_approved_by_party_id   NUMBER;
140  l_revision_tbl           AHL_DI_DOC_REVISION_PVT.revision_tbl;
141  l_init_msg_list          VARCHAR2(10) := FND_API.G_TRUE;
142  l_sysdate                DATE;
143  --pekambar Enigma Phase II changes -- start
144  l_enigma_doc_id    VARCHAR2(80);
145  l_enigma_model_code    VARCHAR2(30);
146  l_enigma_model_meaning    VARCHAR2(80);
147  --pekambar Enigma Phase II changes -- end
148 
149 BEGIN
150    -- Standard Start of API savepoint
151    SAVEPOINT create_revision;
152    -- Check if API is called in debug mode. If yes, enable debug.
153    IF G_DEBUG='Y' THEN
154 		  AHL_DEBUG_PUB.enable_debug;
155 
156 	END IF;
157    -- Debug info.
158    IF G_DEBUG='Y' THEN
159        IF G_DEBUG='Y' THEN
160 		  AHL_DEBUG_PUB.debug( 'enter ahl_di_doc_revision_pub.Create Revision','+REV+');
161 
162 	END IF;
163     END IF;
164    -- Standard call to check for call compatibility.
165    IF FND_API.to_boolean(l_init_msg_list)
166    THEN
167      FND_MSG_PUB.initialize;
168    END IF;
169    --  Initialize API return status to success
170     x_return_status := 'S';
171    -- Initialize message list if p_init_msg_list is set to TRUE.
172    IF NOT FND_API.COMPATIBLE_API_CALL(l_api_version,
173                                       p_api_version,
174                                       l_api_name,G_PKG_NAME)
175    THEN
176        RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
177    END IF;
178 
179    --Start of API Body
180    IF p_x_revision_tbl.COUNT > 0
181    THEN
182      FOR i IN p_x_revision_tbl.FIRST..p_x_revision_tbl.LAST
183      LOOP
184          --For Approved by Party Id, Party Name is present
185            IF (p_x_revision_tbl(i).approved_by_pty_name IS NOT NULL)
186               THEN
187 
188 
189 
190 
191              IF ahl_di_doc_index_pvt.get_product_install_status('PER') in ('N','L')
192              THEN
193 
194                  OPEN  approved_by_party_desc(p_x_revision_tbl(i).approved_by_pty_name);
195                  FETCH approved_by_party_desc INTO l_approved_by_party_id;
196                  IF approved_by_party_desc%FOUND
197                  THEN
198 
199                   p_x_revision_tbl(i).approved_by_party_id := l_approved_by_party_id;
200                   ELSE
201                    FND_MESSAGE.SET_NAME('AHL','AHL_DI_APP_BY_PTY_ID_NOT_EXIST');
202                    FND_MSG_PUB.ADD;
203                  END IF;
204                  CLOSE approved_by_party_desc;
205              ELSIF ahl_di_doc_index_pvt.get_product_install_status('PER') in ('I','S')
206              THEN
207              -- modified for bugfix 2193744
208 
209 		      OPEN get_party_name_id (p_x_revision_tbl(i).approved_by_pty_name, p_x_revision_tbl(i).approved_by_party_id);
210 	              FETCH get_party_name_id INTO l_approved_by_party_id;
211 
212 	              -- If 1 record retrieved then party id and name match, use party id
213 	              p_x_revision_tbl(i).approved_by_party_id := l_approved_by_party_id;
214 
215 
216 	              -- If no records, then party name has been changed
217 	              IF get_party_name_id%NOTFOUND THEN
218 
219 
220 		           IF (p_x_revision_tbl(i).approved_by_party_id IS  NULL)
221         	         THEN
222 
223 
224 		 		  		   OPEN get_party_name(p_x_revision_tbl(i).approved_by_pty_name);
225 		 		     		   LOOP
226 		 		    			    FETCH get_party_name INTO l_approved_by_party_id;
227 		 		    			    EXIT WHEN get_party_name%NOTFOUND;
228 		 		    		   END LOOP;
229 
230 		 		    		  IF get_party_name%ROWCOUNT = 0 THEN
231 		 		    			  FND_MESSAGE.SET_NAME('AHL','AHL_DI_APP_BY_PTY_ID_NOT_EXIST');
232 		 		    			  FND_MSG_PUB.ADD;
233 		 		    		  ELSIF get_party_name%ROWCOUNT = 1 THEN
234 		 		    			  p_x_revision_tbl(i).approved_by_party_id := l_approved_by_party_id;
235 		 		    		  ELSE
236 		 		    		  -- It will show the message to use LOV , so it would take care
237 		 		    		  -- for duplicate records as well
238 
239 		 		    			    FND_MESSAGE.SET_NAME('AHL','AHL_DI_APPROVED_BY_USE_LOV');
240 		 					    FND_MSG_PUB.ADD;
241 
242 		 		    		  END IF;
243 		 		     		  CLOSE get_party_name;
244 				   END IF;
245                      		   CLOSE get_party_name_id;
246 
247 			END IF;
248               -- modified for bugfix 2193744
249 
250 
251                END IF;
252 
253 
254 
255             ELSE
256                       /* If Party Name is not available then set the Party Id also to null */
257 
258                   p_x_revision_tbl(i).approved_by_party_id := null;
259 
260             END IF;
261          --For Revision Type Code
262        IF p_x_revision_tbl(i).revision_type_desc IS NOT NULL
263        THEN
264 
265              Check_lookup_name_Or_Id (
266                   p_lookup_type  => 'AHL_REVISION_TYPE',
267                   p_lookup_code  => null,
268                   p_meaning      => p_x_revision_tbl(i).revision_type_desc,
269                   p_check_id_flag => 'Y',
270                   x_lookup_code   => l_revision_tbl(i).revision_type_code,
271                   x_return_status => l_return_status);
272 
273          IF nvl(l_return_status, 'X') <> 'S'
274          THEN
275             FND_MESSAGE.SET_NAME('AHL','AHL_DI_REV_TYPE_CODE_NOT_EXIST');
276             FND_MSG_PUB.ADD;
277          END IF;
278         END IF;
279          -- If Code is present
280         IF p_x_revision_tbl(i).revision_type_code IS NOT NULL
281          THEN
282            l_revision_tbl(i).revision_type_code := p_x_revision_tbl(i).revision_type_code;
283         --If both are missing
284         ELSE
285            l_revision_tbl(i).revision_type_code := p_x_revision_tbl(i).revision_type_code;
286         END IF;
287         --For Media Type Code, meaning is present
288         IF p_x_revision_tbl(i).media_type_desc IS NOT NULL
289          THEN
290 
291              Check_lookup_name_Or_Id (
292                   p_lookup_type  => 'AHL_MEDIA_TYPE',
293                   p_lookup_code  => null,
294                   p_meaning      => p_x_revision_tbl(i).media_type_desc,
295                   p_check_id_flag => 'Y',
296                   x_lookup_code   => l_revision_tbl(i).media_type_code,
297                   x_return_status => l_return_status);
298 
299          IF nvl(l_return_status, 'X') <> 'S'
300          THEN
301             FND_MESSAGE.SET_NAME('AHL','AHL_DI_MEDTYP_CODE_NOT_EXISTS');
302             FND_MSG_PUB.ADD;
303          END IF;
304         END IF;
305          -- If ID presnt
306         IF p_x_revision_tbl(i).media_type_code IS NOT NULL
307          THEN
308            l_revision_tbl(i).media_type_code := p_x_revision_tbl(i).media_type_code;
309          --Both are missing
310          ELSE
311            l_revision_tbl(i).media_type_code := p_x_revision_tbl(i).media_type_code;
312          END IF;
313          --For Revision Status Code
314          IF p_x_revision_tbl(i).revision_status_desc IS NOT NULL
315          THEN
316 
317              Check_lookup_name_Or_Id (
318                   p_lookup_type  => 'AHL_REVISION_STATUS_TYPE',
319                   p_lookup_code  => null,
320                   p_meaning      => p_x_revision_tbl(i).revision_status_desc,
321                   p_check_id_flag => 'Y',
322                   x_lookup_code   => l_revision_tbl(i).revision_status_code,
323                   x_return_status => l_return_status);
324 
325          IF nvl(l_return_status, 'X') <> 'S'
326          THEN
327             FND_MESSAGE.SET_NAME('AHL','AHL_DI_REV_STAT_CODE_NOT_EXIST');
328             FND_MSG_PUB.ADD;
329          END IF;
330         END IF;
331         -- If Revision status code presents
332          IF p_x_revision_tbl(i).revision_status_code IS NOT NULL
333          THEN
334            l_revision_tbl(i).revision_status_code := p_x_revision_tbl(i).revision_status_code;
335          ELSE
336           --Both are missing
337            l_revision_tbl(i).revision_status_code := p_x_revision_tbl(i).revision_status_code;
338          END IF;
339         --
340 
341         --validations put for enhancements
342         -- Enhancement no #2027019: pbarman : April 2003
343 	--if rev date is null then rev date = sysdate.
344 
345 	IF p_x_revision_tbl(i).revision_date IS NULL
346 	THEN
347 	    SELECT TRUNC(SYSDATE) into p_x_revision_tbl(i).revision_date FROM DUAL;
348 	     -- truncate time stamp
349 	/* as per FP for ER 5859915 where PM had decided to remove following validation
350 	ELSE
351 	    SELECT SYSDATE into l_sysdate FROM DUAL;
352 	    IF p_x_revision_tbl(i).revision_date < TRUNC(l_sysdate)
353 	    THEN
354 	      FND_MESSAGE.SET_NAME('AHL','AHL_DI_REVDT_LESS_SYSDT');
355               FND_MSG_PUB.ADD;
356             END IF;
357           */
358 	END IF;
359 /* Vineet - As per the FP for 11510 Bug 5930628 where PM had decided to remove all date validations except Revision date
360         --if approved_date < revision_date then error
361 
362 	IF p_x_revision_tbl(i).approved_date IS NOT NULL
363 	THEN
364 	   IF p_x_revision_tbl(i).approved_date < p_x_revision_tbl(i).revision_date
365 	   THEN
366 	       FND_MESSAGE.SET_NAME('AHL','AHL_DI_APVDT_LESS_REVDT');
367                FND_MSG_PUB.ADD;
368 	   END IF;
369 	END IF;
370 
371 -- As per the FP for bug 3662906 removing issue date validation
372 	--if( issue date  <  either of (approved date,revision date)) then error.
373 	--according to dld -- issue date has no validations but PM asked to put
374         IF p_x_revision_tbl(i).issue_date IS NOT NULL
375 	THEN
376 
377 	  IF p_x_revision_tbl(i).issue_date < nvl(p_x_revision_tbl(i).approved_date, p_x_revision_tbl(i).revision_date)
378 	  THEN
379 					IF p_x_revision_tbl(i).approved_date IS NULL
380 					THEN
381 							FND_MESSAGE.SET_NAME('AHL', 'AHL_DI_ISSDT_LESS_REVDT');
382        FND_MSG_PUB.ADD;
383 					ELSE
384 	      FND_MESSAGE.SET_NAME('AHL','AHL_DI_ISSDT_LESS_APVDT');
385        FND_MSG_PUB.ADD;
386 					END IF;
387 	  END IF;
388 	END IF;
389 
390 	--if(effective date <  either of  (approved date, revision date))
391 
392         IF p_x_revision_tbl(i).effective_date IS NOT NULL
393 	THEN
394 
395 	  IF p_x_revision_tbl(i).effective_date < nvl(p_x_revision_tbl(i).approved_date, p_x_revision_tbl(i).revision_date)
396 	  THEN
397 					IF p_x_revision_tbl(i).approved_date IS NULL
398 					THEN
399 							FND_MESSAGE.SET_NAME('AHL','AHL_DI_EFFDT_LESS_REVDT');
400        FND_MSG_PUB.ADD;
401 					ELSE
402  	     FND_MESSAGE.SET_NAME('AHL','AHL_DI_EFFDT_LESS_APVDT');
403        FND_MSG_PUB.ADD;
404 					END IF;
405 	  END IF;
406 	END IF;
407 
408        --if(received_date > revision_date)
409 
410 	IF p_x_revision_tbl(i).received_date IS NOT NULL
411 	THEN
412 	  IF p_x_revision_tbl(i).received_date > p_x_revision_tbl(i).revision_date
413           THEN
414 	     FND_MESSAGE.SET_NAME('AHL','AHL_DI_RECDT_GT_REVDT');
415              FND_MSG_PUB.ADD;
416 	  END IF;
417 	END IF;
418 	*/
419 	-- if obsolete date is not null, check if it is less than any other date
420 	IF p_x_revision_tbl(i).obsolete_date IS NOT NULL
421 	THEN
422 	    IF p_x_revision_tbl(i).obsolete_date < p_x_revision_tbl(i).revision_date
423 	    THEN
424 	    	FND_MESSAGE.SET_NAME('AHL','AHL_DI_OBSDT_LT_REVDT');
425 	        FND_MSG_PUB.ADD;
426 	    END IF;
427 
428 	/* Removing following validations too for FP for bug 5930628
429 	    IF p_x_revision_tbl(i).obsolete_date < p_x_revision_tbl(i).approved_date
430 	    THEN
431 	    	FND_MESSAGE.SET_NAME('AHL','AHL_DI_OBSDT_LT_APVDT');
432 	    	FND_MSG_PUB.ADD;
433 	    END IF;
434 
435 	    IF p_x_revision_tbl(i).obsolete_date < p_x_revision_tbl(i).effective_date
436 	    THEN
437 	    	FND_MESSAGE.SET_NAME('AHL','AHL_DI_OBSDT_LT_EFFDT');
438 	    	FND_MSG_PUB.ADD;
439 	    END IF;
440 
441 	    IF p_x_revision_tbl(i).obsolete_date < p_x_revision_tbl(i).issue_date
442 	    THEN
443 	    	FND_MESSAGE.SET_NAME('AHL','AHL_DI_OBSDT_LT_ISSDT');
444 	        FND_MSG_PUB.ADD;
445 	    END IF;
446 
447 	    IF p_x_revision_tbl(i).obsolete_date < p_x_revision_tbl(i).received_date
448 	    THEN
449 	        FND_MESSAGE.SET_NAME('AHL','AHL_DI_OBSDT_LT_RECDT');
450 	        FND_MSG_PUB.ADD;
451 	    END IF;
452 	*/
453 	END IF;
454 	-- if REVISION_STATUS_CODE == OBSOLETE and obsolete date is null then set it to sysdate.
455 
456 	IF p_x_revision_tbl(i).revision_status_code IS NOT NULL AND
457 	p_x_revision_tbl(i).revision_status_code = 'OBSOLETE'
458 	THEN
459 	  SELECT TRUNC(SYSDATE) into p_x_revision_tbl(i).obsolete_date FROM DUAL;
460 	      -- truncate time stamp
461 	END IF;
462 
463 
464 
465         l_revision_tbl(i).doc_revision_id       := p_x_revision_tbl(i).doc_revision_id;
466 
467         l_revision_tbl(i).approved_by_party_id  := p_x_revision_tbl(i).approved_by_party_id;
468 
469         l_revision_tbl(i).document_id           := p_x_revision_tbl(i).document_id;
470         l_revision_tbl(i).revision_no           := p_x_revision_tbl(i).revision_no;
471         l_revision_tbl(i).revision_date         := p_x_revision_tbl(i).revision_date;
472         l_revision_tbl(i).approved_date         := p_x_revision_tbl(i).approved_date;
473         l_revision_tbl(i).effective_date        := p_x_revision_tbl(i).effective_date;
474         l_revision_tbl(i).obsolete_date         := p_x_revision_tbl(i).obsolete_date;
475         l_revision_tbl(i).issue_date            := p_x_revision_tbl(i).issue_date;
476         l_revision_tbl(i).received_date         := p_x_revision_tbl(i).received_date;
477         l_revision_tbl(i).url                   := p_x_revision_tbl(i).url;
478        	--pekambar Enigma Phase II changes -- start
479         l_revision_tbl(i).enigma_doc_id    := p_x_revision_tbl(i).enigma_doc_id;
480 	l_revision_tbl(i).enigma_model_code    := p_x_revision_tbl(i).enigma_model_code;
481 	l_revision_tbl(i).enigma_model_meaning    := p_x_revision_tbl(i).enigma_model_meaning;
482 	--pekambar Enigma Phase II changes -- end
483         l_revision_tbl(i).volume                := p_x_revision_tbl(i).volume;
484         l_revision_tbl(i).issue                 := p_x_revision_tbl(i).issue;
485         l_revision_tbl(i).issue_number          := p_x_revision_tbl(i).issue_number;
486         l_revision_tbl(i).language              := p_x_revision_tbl(i).language;
487         l_revision_tbl(i).source_lang           := p_x_revision_tbl(i).source_lang;
488         l_revision_tbl(i).comments              := p_x_revision_tbl(i).comments;
489         l_revision_tbl(i).attribute_category    := p_x_revision_tbl(i).attribute_category;
490         l_revision_tbl(i).attribute1            := p_x_revision_tbl(i).attribute1;
491         l_revision_tbl(i).attribute2            := p_x_revision_tbl(i).attribute2;
492         l_revision_tbl(i).attribute3            := p_x_revision_tbl(i).attribute3;
493         l_revision_tbl(i).attribute4            := p_x_revision_tbl(i).attribute4;
494         l_revision_tbl(i).attribute5            := p_x_revision_tbl(i).attribute5;
495         l_revision_tbl(i).attribute6            := p_x_revision_tbl(i).attribute6;
496         l_revision_tbl(i).attribute7            := p_x_revision_tbl(i).attribute7;
497         l_revision_tbl(i).attribute8            := p_x_revision_tbl(i).attribute8;
498         l_revision_tbl(i).attribute9            := p_x_revision_tbl(i).attribute9;
499         l_revision_tbl(i).attribute10           := p_x_revision_tbl(i).attribute10;
500         l_revision_tbl(i).attribute11           := p_x_revision_tbl(i).attribute11;
501         l_revision_tbl(i).attribute12           := p_x_revision_tbl(i).attribute12;
502         l_revision_tbl(i).attribute13           := p_x_revision_tbl(i).attribute13;
503         l_revision_tbl(i).attribute14           := p_x_revision_tbl(i).attribute14;
504         l_revision_tbl(i).attribute15           := p_x_revision_tbl(i).attribute15;
505         l_revision_tbl(i).delete_flag           := p_x_revision_tbl(i).delete_flag;
506         l_revision_tbl(i).object_version_number := p_x_revision_tbl(i).object_version_number;
507 
508    -- Standard call to get message count and if count is  get message info.
509    l_msg_count := FND_MSG_PUB.count_msg;
510 
511    IF l_msg_count > 0 THEN
512       X_msg_count := l_msg_count;
513       IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR
514       THEN
515          X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
516          RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
517       ELSE
518         X_return_status := FND_API.G_RET_STS_ERROR;
519         RAISE FND_API.G_EXC_ERROR;
520       END IF;
521    END IF;
522  END LOOP;
523 END IF;
524 
525 
526 /*----------------------------------------------------------------- */
527 /* procedure name: AHL_DI_DOC_REVISION_CUHK.CREATE_REVISION_PRE	    */
528 /*		   AHL_DI_DOC_REVISION_VUHK.CREATE_REVISION_PRE     */
529 /* description   : Added by Siddhartha to call User Hooks  	    */
530 /*      Date     : Dec 27 2001                                      */
531 /*----------------------------------------------------------------- */
532 
533 
534 IF   JTF_USR_HKS.Ok_to_Execute( 'AHL_DI_DOC_REVISION_PUB','CREATE_REVISION',
535 					'B', 'C' )  then
536 
537 
538 IF G_DEBUG='Y' THEN
539 		  AHL_DEBUG_PUB.debug( 'Start AHL_DI_DOC_REVISION_CUHK.CREATE_REVISION_PRE');
540 
541 	END IF;
542 
543 AHL_DI_DOC_REVISION_CUHK.CREATE_REVISION_PRE
544 (
545 
546 	 p_x_revision_tbl	     =>		l_revision_tbl ,
547 	 x_return_status             =>		l_return_status,
548 	 x_msg_count                 =>		l_msg_count   ,
549 	 x_msg_data                  =>		l_msg_data
550 );
551 
552 
553    IF G_DEBUG='Y' THEN
554 		  AHL_DEBUG_PUB.debug( 'end AHL_DI_DOC_REVISION_CUHK.CREATE_REVISION_PRE');
555 
556 	END IF;
557 
558 
559       		IF   l_return_status = FND_API.G_RET_STS_ERROR  THEN
560     			RAISE FND_API.G_EXC_ERROR;
561              	ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR  THEN
562 			RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
563 		END IF;
564 END IF;
565 
566 IF   JTF_USR_HKS.Ok_to_Execute( 'AHL_DI_DOC_REVISION_PUB','CREATE_REVISION',
567 					'B', 'V' )  then
568    IF G_DEBUG='Y' THEN
569 		  AHL_DEBUG_PUB.debug( 'Start AHL_DI_DOC_REVISION_VUHK.CREATE_REVISION_PRE');
570 
571 	END IF;
572 
573 AHL_DI_DOC_REVISION_VUHK.CREATE_REVISION_PRE(
574 			p_x_revision_tbl     	=>	l_revision_tbl ,
575 			X_RETURN_STATUS        	=>	l_return_status       ,
576 			X_MSG_COUNT            	=>	l_msg_count           ,
577 			X_MSG_DATA             	=>	l_msg_data  );
578 
579 
580 IF G_DEBUG='Y' THEN
581 		  AHL_DEBUG_PUB.debug( 'End AHL_DI_DOC_REVISION_VUHK.CREATE_REVISION_PRE');
582 
583 	END IF;
584 
585       		IF   l_return_status = FND_API.G_RET_STS_ERROR  THEN
586     			RAISE FND_API.G_EXC_ERROR;
587              	ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR  THEN
588 			RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
589 		END IF;
590 
591 
592 
593 END IF;
594 
595 
596 /*---------------------------------------------------------*/
597 /*     End ; Date     : Dec 20 2001                        */
598 /*---------------------------------------------------------*/
599 
600 
601   -- Call the Private API
602    AHL_DI_DOC_REVISION_PVT.CREATE_REVISION
603                         (
604                          p_api_version      => 1.0,
605                          p_init_msg_list    => p_init_msg_list,
606                          p_commit           => p_commit,
607                          p_validate_only    => p_validate_only,
608                          p_validation_level => p_validation_level,
609                          p_x_revision_tbl   => l_revision_tbl,
610                          x_return_status    => l_return_status,
611                          x_msg_count        => l_msg_count,
612                          x_msg_data         => l_msg_data
613                          );
614 
615    -- Standard call to get message count and if count is  get message info.
616 
617    l_msg_count := FND_MSG_PUB.count_msg;
618 
619    IF l_msg_count > 0 THEN
620       X_msg_count := l_msg_count;
621       IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR
622       THEN
623          X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
624          RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
625       ELSE
626         X_return_status := FND_API.G_RET_STS_ERROR;
627         RAISE FND_API.G_EXC_ERROR;
628       END IF;
629     ELSE
630        FOR i IN 1..l_revision_tbl.COUNT
631        LOOP
632         p_x_revision_tbl(i).doc_revision_id := l_revision_tbl(i).doc_revision_id;
633        END LOOP;
634    END IF;
635 
636 
637 
638 /*-----------------------------------------------------------------------------	*/
639 /* procedure name: AHL_DI_DOC_REVISION_VUHK.CREATE_REVISION_POST		*/
640 /*		   AHL_DI_DOC_REVISION_CUHK.CREATE_REVISION_POST		*/
641 /*        									*/
642 /* description   :  Added by siddhartha to call User Hooks   			*/
643 /*      Date     : Dec 27 2001                             			*/
644 /*------------------------------------------------------------------------------*/
645 
646 
647 IF   JTF_USR_HKS.Ok_to_Execute( 'AHL_DI_DOC_REVISION_PUB','CREATE_REVISION',
648 					'A', 'V' )  then
649 
650    IF G_DEBUG='Y' THEN
651 		  AHL_DEBUG_PUB.debug( 'Start AHL_DI_DOC_REVISION_VUHK.CREATE_REVISION_POST');
652 
653 	END IF;
654 
655             AHL_DI_DOC_REVISION_VUHK.CREATE_REVISION_POST(
656 			p_revision_tbl	=>	l_revision_tbl,
657 			X_RETURN_STATUS        	=>	l_return_status      ,
658 			X_MSG_COUNT            	=>	l_msg_count           ,
659 			X_MSG_DATA             	=>	l_msg_data  );
660 
661    IF G_DEBUG='Y' THEN
662 		  AHL_DEBUG_PUB.debug( 'End  AHL_DI_DOC_REVISION_VUHK.CREATE_REVISION_POST');
663 
664 	END IF;
665 
666       		IF   l_return_status = FND_API.G_RET_STS_ERROR  THEN
667     			RAISE FND_API.G_EXC_ERROR;
668              	ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR  THEN
669 			RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
670 		END IF;
671 
672 END IF;
673 
674 IF   JTF_USR_HKS.Ok_to_Execute( 'AHL_DI_DOC_REVISION_PUB','CREATE_REVISION',
675 					'A', 'C' )  then
676 
677    IF G_DEBUG='Y' THEN
678 		  AHL_DEBUG_PUB.debug( 'Start AHL_DI_DOC_REVISION_CUHK.CREATE_REVISION_POST');
679 
680 	END IF;
681 
682               AHL_DI_DOC_REVISION_CUHK.CREATE_REVISION_POST(
683 
684 			p_revision_tbl	=>		l_revision_tbl ,
685 			X_RETURN_STATUS        	=>	l_return_status      ,
686 			X_MSG_COUNT            	=>	l_msg_count           ,
687 			X_MSG_DATA             	=>	l_msg_data  );
688 
689    IF G_DEBUG='Y' THEN
690 		  AHL_DEBUG_PUB.debug( 'End AHL_DI_DOC_REVISION_CUHK.CREATE_REVISION_POST');
691 
692 	END IF;
693 
694       		IF   l_return_status = FND_API.G_RET_STS_ERROR  THEN
695     			RAISE FND_API.G_EXC_ERROR;
696              	ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR  THEN
697 			RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
698 		END IF;
699 
700 END IF;
701 
702 
703 
704 /*---------------------------------------------------------*/
705 /*     End ; Date     : Dec 27 2001                        */
706 /*---------------------------------------------------------*/
707 
708 
709 
710    -- Standard check of p_commit.
711    IF FND_API.TO_BOOLEAN(p_commit) THEN
712       COMMIT;
713    END IF;
714    -- Debug info
715    IF G_DEBUG='Y' THEN
716 		  AHL_DEBUG_PUB.debug( 'End of public api Create Revision','+REV+');
717 
718 	END IF;
719    -- Check if API is called in debug mode. If yes, disable debug.
720    IF G_DEBUG='Y' THEN
721 		  AHL_DEBUG_PUB.disable_debug;
722 
723 	END IF;
724 
725    x_msg_data := 'tHIS IS A cHECK'||TO_CHAR(p_x_revision_tbl(1).approved_by_party_id);
726 EXCEPTION
727  WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
728   ROLLBACK TO create_revision;
729     X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
730     FND_MSG_PUB.count_and_get( p_encoded => FND_API.G_FALSE,
731                                p_count => x_msg_count,
732                                p_data  => x_msg_data);
733         IF G_DEBUG='Y' THEN
734             AHL_DEBUG_PUB.log_app_messages (x_msg_count, x_msg_data, 'ERROR' );
735             AHL_DEBUG_PUB.debug( 'ahl_di_doc_revision_pub.Create Revision','+REV+');
736 
737 
738         -- Check if API is called in debug mode. If yes, disable debug.
739             AHL_DEBUG_PUB.disable_debug;
740 
741 	END IF;
742 
743  WHEN FND_API.G_EXC_ERROR THEN
744     ROLLBACK TO create_revision;
745     X_return_status := FND_API.G_RET_STS_ERROR;
746     FND_MSG_PUB.count_and_get( p_encoded => FND_API.G_FALSE,
747                                p_count => x_msg_count,
748                                p_data  => X_msg_data);
749         -- Debug info.
750         IF G_DEBUG='Y' THEN
751             AHL_DEBUG_PUB.log_app_messages (x_msg_count, x_msg_data, 'UNEXPECTED ERROR' );
752             AHL_DEBUG_PUB.debug( 'ahl_di_doc_revision_pub.Create Revision','+REV+');
753 
754 
755         -- Check if API is called in debug mode. If yes, disable debug.
756            AHL_DEBUG_PUB.disable_debug;
757 
758 	END IF;
759 
760 
761  WHEN OTHERS THEN
762     ROLLBACK TO create_revision;
763     X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
764     IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
765     THEN
766     fnd_msg_pub.add_exc_msg(p_pkg_name        =>  'AHL_DI_DOC_REVISION_PUB',
767                             p_procedure_name  =>  'CREATE_REVISION',
768                             p_error_text      => SUBSTR(SQLERRM,1,240));
769     END IF;
770     FND_MSG_PUB.count_and_get( p_encoded => FND_API.G_FALSE,
771                                p_count => x_msg_count,
772                                p_data  => X_msg_data);
773         -- Debug info.
774         IF G_DEBUG='Y' THEN
775             AHL_DEBUG_PUB.log_app_messages (x_msg_count, x_msg_data, 'SQL ERROR' );
776             AHL_DEBUG_PUB.debug( 'ahl_di_doc_revision_pub.Create Revision','+REV+');
777 
778         -- Check if API is called in debug mode. If yes, disable debug.
779             AHL_DEBUG_PUB.disable_debug;
780 
781 	END IF;
782 
783 END CREATE_REVISION;
784 /*---------------------------------------------------*/
785 /* procedure name: modify_revision                  */
786 /* description :  Update the existing revision record*/
787 /*                                                   */
788 /*---------------------------------------------------*/
789 
790 PROCEDURE MODIFY_REVISION
791 (
792  p_api_version              IN      NUMBER    :=  1.0                ,
793  p_init_msg_list            IN      VARCHAR2  := FND_API.G_TRUE      ,
794  p_commit                   IN      VARCHAR2  := FND_API.G_FALSE     ,
795  p_validate_only            IN      VARCHAR2  := FND_API.G_TRUE      ,
796  p_validation_level         IN      NUMBER    := FND_API.G_VALID_LEVEL_FULL,
797  p_x_revision_tbl           IN  OUT NOCOPY revision_tbl              ,
798  p_module_type              IN      VARCHAR2,
799  x_return_status                OUT NOCOPY VARCHAR2                         ,
800  x_msg_count                    OUT NOCOPY NUMBER                           ,
801  x_msg_data                     OUT NOCOPY VARCHAR2
802 )
803 IS
804 
805 
806 CURSOR get_party_name(c_approved_by_pty_name IN VARCHAR2)
807  IS
808 --Modified pjha:07-Aug-2002 for performance
809  /*
810 SELECT party_id
811   FROM ahl_hz_per_employees_v
812  WHERE upper(party_name) = upper(c_approved_by_pty_name);
813  */
814  --changes due to performance pbarman 7.5.2003
815  SELECT party_id
816  FROM hz_parties
817  WHERE upper(PARTY_NAME) = upper(c_approved_by_pty_name)
818  AND AHL_DI_DOC_INDEX_PVT.GET_PRODUCT_INSTALL_STATUS('PER') IN ('N','L')
819  AND party_type = 'PERSON'
820  UNION
821  SELECT person_id
822  FROM per_people_f ppf,per_person_types ppt
823  WHERE upper(FULL_NAME) = upper(c_approved_by_pty_name)
824  AND trunc(sysdate) BETWEEN effective_start_date AND effective_end_date
825  AND nvl(current_employee_flag, 'X') = 'Y'
826  AND ppf.person_type_id = ppt.person_type_id
827  AND system_person_type = 'EMP'
828  AND AHL_DI_DOC_INDEX_PVT.GET_PRODUCT_INSTALL_STATUS('PER') IN ('I','S');
829 
830 -- Check for ID
831 CURSOR approved_by_party_id(c_approved_by_pty_id  IN NUMBER)
832  IS
833 SELECT party_id
834   FROM hz_parties
835  WHERE party_id = c_approved_by_pty_id;
836 
837 --Check for Name
838 CURSOR approved_by_party_desc(c_approved_by_pty_name  IN VARCHAR2)
839  IS
840 SELECT party_id
841   FROM hz_parties
842  WHERE UPPER(party_name) = UPPER(c_approved_by_pty_name);
843 
844   --Used to retrieve the party id for party name and party id
845    CURSOR get_party_name_id (c_party_name  IN VARCHAR2, c_party_id IN NUMBER)
846    IS
847    SELECT person_id
848    FROM per_people_f ppf, per_person_types ppt
849    WHERE upper(FULL_NAME) = upper(c_party_name)
850      AND ppf.person_id = c_party_id
851      AND trunc(sysdate) between ppf.effective_start_date and ppf.effective_end_date
852      AND nvl(ppf.current_employee_flag,'x') = 'Y'
853      AND ppf.person_type_id = ppt.person_type_id
854      AND ppt.system_person_type ='EMP';
855 
856     -- FP For Bug #8410484
857     CURSOR get_current_effective_date (c_doc_revision_id NUMBER,c_document_id NUMBER)
858     IS
859     SELECT effective_date
860     FROM AHL_DOC_REVISIONS_B
861     WHERE doc_revision_id = c_doc_revision_id
862     AND document_id = c_document_id;
863    --FP end
864 
865 
866 
867 --
868  l_api_name     CONSTANT VARCHAR2(30) := 'MODIFY_REVISION';
869  l_api_version  CONSTANT NUMBER       := 1.0;
870  l_num_rec               NUMBER;
871  l_msg_count             NUMBER;
872  l_msg_data              VARCHAR2(2000);
873  l_return_status         VARCHAR2(1);
874  l_revision_type_code    VARCHAR2(30);
875  l_media_type_code       VARCHAR2(30);
876  l_revision_status_code  VARCHAR2(30);
877  l_approved_by_party_id  NUMBER;
878  l_revision_tbl          AHL_DI_DOC_REVISION_PVT.revision_tbl;
879  l_init_msg_list          VARCHAR2(10) := FND_API.G_TRUE;
880  l_sysdate                DATE;
881  l_current_revision_date  DATE;
882  l_current_effective_date DATE;
883  --pekambar Enigma Phase II changes -- start
884  l_enigma_doc_id    VARCHAR2(80);
885  l_enigma_model_code    VARCHAR2(80);
886  l_enigma_model_meaning    VARCHAR2(80);
887  --pekambar Enigma Phase II changes -- end
888 
889 BEGIN
890     -- Standard Start of API savepoint
891      SAVEPOINT modify_revision;
892    -- Check if API is called in debug mode. If yes, enable debug.
893    IF G_DEBUG='Y' THEN
894 		  AHL_DEBUG_PUB.enable_debug;
895 
896 	END IF;
897    -- Debug info.
898    IF G_DEBUG='Y' THEN
899        IF G_DEBUG='Y' THEN
900 		  AHL_DEBUG_PUB.debug( 'enter ahl_di_doc_revision_pub.Modify Revision','+REV+');
901 
902 	END IF;
903     END IF;
904     -- Standard call to check for call compatibility.
905    IF FND_API.to_boolean(l_init_msg_list)
906    THEN
907      FND_MSG_PUB.initialize;
908    END IF;
909     --  Initialize API return status to success
910     x_return_status := 'S';
911     -- Initialize message list if p_init_msg_list is set to TRUE.
912    IF NOT FND_API.COMPATIBLE_API_CALL(l_api_version,
913                                       p_api_version,
914                                       l_api_name,G_PKG_NAME)
915    THEN
916        RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
917    END IF;
918    --Start API Body
919    IF p_x_revision_tbl.COUNT > 0
920    THEN
921      FOR i IN p_x_revision_tbl.FIRST..p_x_revision_tbl.LAST
922      LOOP
923 
924          --For Approved by Party Id, Party Name is present
925            IF (p_x_revision_tbl(i).approved_by_pty_name IS NOT NULL)
926               THEN
927 
928              IF ahl_di_doc_index_pvt.get_product_install_status('PER') in ('N','L')
929              	THEN
930      	            OPEN  approved_by_party_desc(p_x_revision_tbl(i).approved_by_pty_name);
931      	            FETCH approved_by_party_desc INTO l_approved_by_party_id;
932      		            IF approved_by_party_desc%FOUND
933      		            THEN
934      		             p_x_revision_tbl(i).approved_by_party_id := l_approved_by_party_id;
935      		             ELSE
936      		              FND_MESSAGE.SET_NAME('AHL','AHL_DI_APP_BY_PTY_ID_NOT_EXIST');
937      		              FND_MSG_PUB.ADD;
938      		            END IF;
939      	            CLOSE approved_by_party_desc;
940 
941 
942              ELSIF ahl_di_doc_index_pvt.get_product_install_status('PER') in ('I','S')
943              THEN
944 
945              	-- modified for bugfix 2193744
946 
947 		      OPEN get_party_name_id (p_x_revision_tbl(i).approved_by_pty_name, p_x_revision_tbl(i).approved_by_party_id);
948 	              FETCH get_party_name_id INTO l_approved_by_party_id;
949 
950 	              -- If 1 record retrieved then party id and name match, use party id
951 	              p_x_revision_tbl(i).approved_by_party_id := l_approved_by_party_id;
952 
953 
954 	              -- If no records, then party name has been changed
955 	              IF get_party_name_id%NOTFOUND THEN
956 
957 
958                      		  IF p_x_revision_tbl(i).APPROVED_BY_PARTY_ID IS NULL THEN
959 		 			     p_x_revision_tbl(i).approved_by_party_id := null;
960 		   	  	  END IF;
961 
962 
963 						OPEN get_party_name(p_x_revision_tbl(i).approved_by_pty_name);
964 		 		     		   LOOP
965 		 		    			    FETCH get_party_name INTO l_approved_by_party_id;
966 		 		    			    EXIT WHEN get_party_name%NOTFOUND;
967 		 		    		   END LOOP;
968 
969 		 		    		  IF get_party_name%ROWCOUNT = 0 THEN
970 		 		    			  FND_MESSAGE.SET_NAME('AHL','AHL_DI_APP_BY_PTY_ID_NOT_EXIST');
971 		 		    			  FND_MSG_PUB.ADD;
972 		 		    		  ELSIF get_party_name%ROWCOUNT = 1 THEN
973 		 		    			  p_x_revision_tbl(i).approved_by_party_id := l_approved_by_party_id;
974 		 		    		  ELSE
975 		 		    		  -- It will show the message to use LOV , so it would take care
976 		 		    		  -- for duplicate records as well
977 
978 
979 		 		    			    FND_MESSAGE.SET_NAME('AHL','AHL_DI_APPROVED_BY_USE_LOV');
980 		 					    FND_MSG_PUB.ADD;
981 
982 		 		    		  END IF;
983 		 		     		  CLOSE get_party_name;
984 				   END IF;
985                      		   CLOSE get_party_name_id;
986 
987 
988           -- modified for bugfix 2193744
989           END IF;
990 
991 
992           /* If Party Name is not available then set the Party Id also to null */
993             ELSE
994               --Party Name is missing
995 
996                	   p_x_revision_tbl(i).approved_by_party_id := NULL;
997 
998             END IF;
999          --For Revision Type Code
1000        IF p_x_revision_tbl(i).revision_type_desc IS NOT NULL
1001        THEN
1002 
1003              Check_lookup_name_Or_Id (
1004                   p_lookup_type  => 'AHL_REVISION_TYPE',
1005                   p_lookup_code  => null,
1006                   p_meaning      => p_x_revision_tbl(i).revision_type_desc,
1007                   p_check_id_flag => 'Y',
1008                   x_lookup_code   => l_revision_tbl(i).revision_type_code,
1009                   x_return_status => l_return_status);
1010 
1011          IF nvl(l_return_status, 'X') <> 'S'
1012          THEN
1013             FND_MESSAGE.SET_NAME('AHL','AHL_DI_REV_TYPE_CODE_NOT_EXIST');
1014             FND_MSG_PUB.ADD;
1015          END IF;
1016         END IF;
1017          -- If Code is present
1018         IF p_x_revision_tbl(i).revision_type_code IS NOT NULL
1019          THEN
1020            l_revision_tbl(i).revision_type_code := p_x_revision_tbl(i).revision_type_code;
1021         --If both are missing
1022         ELSE
1023            l_revision_tbl(i).revision_type_code := p_x_revision_tbl(i).revision_type_code;
1024         END IF;
1025         --For Media Type Code, meaning is present
1026         IF p_x_revision_tbl(i).media_type_desc IS NOT NULL
1027          THEN
1028 
1029              Check_lookup_name_Or_Id (
1030                   p_lookup_type  => 'AHL_MEDIA_TYPE',
1031                   p_lookup_code  => null,
1032                   p_meaning      => p_x_revision_tbl(i).media_type_desc,
1033                   p_check_id_flag => 'Y',
1034                   x_lookup_code   => l_revision_tbl(i).media_type_code,
1035                   x_return_status => l_return_status);
1036 
1037          IF nvl(l_return_status, 'X') <> 'S'
1038          THEN
1039             FND_MESSAGE.SET_NAME('AHL','AHL_DI_MEDTYP_CODE_NOT_EXISTS');
1040             FND_MSG_PUB.ADD;
1041          END IF;
1042         END IF;
1043          -- If ID presnt
1044         IF p_x_revision_tbl(i).media_type_code IS NOT NULL
1045          THEN
1046            l_revision_tbl(i).media_type_code := p_x_revision_tbl(i).media_type_code;
1047          --Both are missing
1048          ELSE
1049            l_revision_tbl(i).media_type_code := p_x_revision_tbl(i).media_type_code;
1050          END IF;
1051 
1052          --For Revision Status Code
1053          IF p_x_revision_tbl(i).revision_status_desc IS NOT NULL
1054          THEN
1055 
1056              Check_lookup_name_Or_Id (
1057                   p_lookup_type  => 'AHL_REVISION_STATUS_TYPE',
1058                   p_lookup_code  => null,
1059                   p_meaning      => p_x_revision_tbl(i).revision_status_desc,
1060                   p_check_id_flag => 'Y',
1061                   x_lookup_code   => l_revision_tbl(i).revision_status_code,
1062                   x_return_status => l_return_status);
1063 
1064          IF nvl(l_return_status, 'X') <> 'S'
1065          THEN
1066             FND_MESSAGE.SET_NAME('AHL','AHL_DI_REV_STAT_CODE_NOT_EXIST');
1067             FND_MSG_PUB.ADD;
1068          END IF;
1069         END IF;
1070         -- If Revision status code presents
1071          IF p_x_revision_tbl(i).revision_status_code IS NOT NULL
1072          THEN
1073            l_revision_tbl(i).revision_status_code := p_x_revision_tbl(i).revision_status_code;
1074          ELSE
1075           --Both are missing
1076            l_revision_tbl(i).revision_status_code := p_x_revision_tbl(i).revision_status_code;
1077          END IF;
1078         --
1079 
1080         --validations put for enhancements
1081 	-- Enhancement no #2027019: pbarman : April 2003
1082 	--if rev date is null then rev date = sysdate.
1083 
1084 		IF p_x_revision_tbl(i).revision_date IS NULL OR p_x_revision_tbl(i).revision_date = FND_API.G_MISS_DATE
1085 		THEN
1086 		    FND_MESSAGE.SET_NAME('AHL','AHL_DI_REVDT_NULL');
1087 	            FND_MSG_PUB.ADD;
1088 		ELSE
1089 		-- select the current revision date. the edited date cannot be less than that.
1090 		    SELECT REVISION_DATE INTO l_current_revision_date from
1091 		    ahl_doc_revisions_b
1092 		    where
1093 		    ahl_doc_revisions_b.doc_revision_id = p_x_revision_tbl(i).doc_revision_id
1094 		    and
1095 		    ahl_doc_revisions_b.document_id = p_x_revision_tbl(i).document_id;
1096 
1097 		    IF p_x_revision_tbl(i).revision_date < l_current_revision_date
1098 		    THEN
1099 		      FND_MESSAGE.SET_NAME('AHL','AHL_DI_REVDT_LESS_PREVDATE');
1100 	              FND_MSG_PUB.ADD;
1101 	            END IF;
1102 	END IF;
1103 /* Vineet - FP for Bug 5930628 - Removing all date validations as per PM discussion
1104 	--if approved_date < revision_date then error
1105 
1106 	IF p_x_revision_tbl(i).approved_date IS NOT NULL
1107 	THEN
1108 	   IF p_x_revision_tbl(i).approved_date < p_x_revision_tbl(i).revision_date
1109 	   THEN
1110 	       FND_MESSAGE.SET_NAME('AHL','AHL_DI_APVDT_LESS_REVDT');
1111                FND_MSG_PUB.ADD;
1112 	   END IF;
1113 	END IF;
1114 
1115 	--if( issue date  <  either of (approved date,revision date)) then error.
1116 
1117 	-- bug 3662906
1118         IF p_x_revision_tbl(i).issue_date IS NOT NULL
1119 	THEN
1120 	  IF p_x_revision_tbl(i).issue_date < nvl(p_x_revision_tbl(i).approved_date, p_x_revision_tbl(i).revision_date)
1121 	  THEN
1122 				IF p_x_revision_tbl(i).approved_date IS NULL
1123 					THEN
1124 							FND_MESSAGE.SET_NAME('AHL', 'AHL_DI_ISSDT_LESS_REVDT');
1125        FND_MSG_PUB.ADD;
1126 					ELSE
1127 	     FND_MESSAGE.SET_NAME('AHL','AHL_DI_ISSDT_LESS_APVDT');
1128              FND_MSG_PUB.ADD;
1129 					END IF;
1130 	  END IF;
1131 
1132 	END IF;
1133 
1134         --if(effective date <  either of  (approved date, revision date))
1135 
1136         IF p_x_revision_tbl(i).effective_date IS NOT NULL
1137 	THEN
1138 
1139 	  IF p_x_revision_tbl(i).effective_date < nvl(p_x_revision_tbl(i).approved_date, p_x_revision_tbl(i).revision_date)
1140 	  THEN
1141 			IF p_x_revision_tbl(i).approved_date IS NULL
1142 					THEN
1143 							FND_MESSAGE.SET_NAME('AHL','AHL_DI_EFFDT_LESS_REVDT');
1144        FND_MSG_PUB.ADD;
1145 					ELSE
1146 	     FND_MESSAGE.SET_NAME('AHL','AHL_DI_EFFDT_LESS_APVDT');
1147              FND_MSG_PUB.ADD;
1148 					END IF;
1149 	  END IF;
1150 	END IF;
1151 
1152 	--if(received_date > revision_date)
1153 
1154 	IF p_x_revision_tbl(i).received_date IS NOT NULL
1155 	THEN
1156 	  IF p_x_revision_tbl(i).received_date > p_x_revision_tbl(i).revision_date
1157           THEN
1158 	     FND_MESSAGE.SET_NAME('AHL','AHL_DI_RECDT_GT_REVDT');
1159              FND_MSG_PUB.ADD;
1160 	  END IF;
1161 	END IF;
1162 */
1163   	-- if obsolete date is not null, check if it is less than any other date
1164 		IF p_x_revision_tbl(i).obsolete_date IS NOT NULL
1165 		THEN
1166 		    IF p_x_revision_tbl(i).obsolete_date < p_x_revision_tbl(i).revision_date
1167 		    THEN
1168 		    	FND_MESSAGE.SET_NAME('AHL','AHL_DI_OBSDT_LT_REVDT');
1169 		        FND_MSG_PUB.ADD;
1170 		    END IF;
1171 
1172 		/* IF p_x_revision_tbl(i).obsolete_date < p_x_revision_tbl(i).approved_date
1173 		    THEN
1174 		    	FND_MESSAGE.SET_NAME('AHL','AHL_DI_OBSDT_LT_APVDT');
1175 		    	FND_MSG_PUB.ADD;
1176 		    END IF;
1177 
1178 		    IF p_x_revision_tbl(i).obsolete_date < p_x_revision_tbl(i).effective_date
1179 		    THEN
1180 		    	FND_MESSAGE.SET_NAME('AHL','AHL_DI_OBSDT_LT_EFFDT');
1181 		    	FND_MSG_PUB.ADD;
1182 		    END IF;
1183 
1184 		    IF p_x_revision_tbl(i).obsolete_date < p_x_revision_tbl(i).issue_date
1185 		    THEN
1186 		    	FND_MESSAGE.SET_NAME('AHL','AHL_DI_OBSDT_LT_ISSDT');
1187 		        FND_MSG_PUB.ADD;
1188 		    END IF;
1189 
1190 		    IF p_x_revision_tbl(i).obsolete_date < p_x_revision_tbl(i).received_date
1191 		    THEN
1192 		        FND_MESSAGE.SET_NAME('AHL','AHL_DI_OBSDT_LT_RECDT');
1193 		        FND_MSG_PUB.ADD;
1194 		    END IF;
1195 		*/
1196 	END IF;
1197   	-- if REVISION_STATUS_CODE == OBSOLETE and obsolete date is null then set it to sysdate.
1198 
1199 	IF p_x_revision_tbl(i).revision_status_code IS NOT NULL AND
1200 	p_x_revision_tbl(i).revision_status_code = 'OBSOLETE'
1201 	THEN
1202 	 --   IF p_x_revision_tbl(i).obsolete_date IS NULL
1203 	  --  THEN
1204 	        SELECT TRUNC(SYSDATE) into p_x_revision_tbl(i).obsolete_date FROM DUAL;
1205 	         -- truncate time stamp
1206 	   -- END IF;
1207 	END IF;
1208 
1209 	-- FP for Bug #8410484
1210 	    OPEN get_current_effective_date(p_x_revision_tbl(i).doc_revision_id,p_x_revision_tbl(i).document_id);
1211 	    FETCH get_current_effective_date INTO l_current_effective_date;
1212 	    CLOSE get_current_effective_date;
1213   	    IF l_current_effective_date > p_x_revision_tbl(i).effective_date THEN
1214 		FND_MESSAGE.SET_NAME('AHL','AHL_DI_EFFDT_LESS_PREVDATE');
1215 		FND_MSG_PUB.ADD;
1216 	    END IF;
1217 	-- FP end
1218 
1219         l_revision_tbl(i).doc_revision_id      := p_x_revision_tbl(i).doc_revision_id;
1220 
1221         l_revision_tbl(i).approved_by_party_id := p_x_revision_tbl(i).approved_by_party_id;
1222 
1223         l_revision_tbl(i).document_id          := p_x_revision_tbl(i).document_id;
1224         l_revision_tbl(i).revision_no          := p_x_revision_tbl(i).revision_no;
1225         l_revision_tbl(i).revision_date        := p_x_revision_tbl(i).revision_date;
1226         l_revision_tbl(i).approved_date        := p_x_revision_tbl(i).approved_date;
1227         l_revision_tbl(i).effective_date       := p_x_revision_tbl(i).effective_date;
1228         l_revision_tbl(i).obsolete_date        := p_x_revision_tbl(i).obsolete_date;
1229         l_revision_tbl(i).issue_date           := p_x_revision_tbl(i).issue_date;
1230         l_revision_tbl(i).received_date        := p_x_revision_tbl(i).received_date;
1231         l_revision_tbl(i).url                  := p_x_revision_tbl(i).url;
1232 	--pekambar Enigma Phase II changes -- start
1233         l_revision_tbl(i).enigma_doc_id                  := p_x_revision_tbl(i).enigma_doc_id;
1234 	l_revision_tbl(i).enigma_model_code                  := p_x_revision_tbl(i).enigma_model_code;
1235 	l_revision_tbl(i).enigma_model_meaning                  := p_x_revision_tbl(i).enigma_model_meaning;
1236 	--pekambar Enigma Phase II changes -- end
1237         l_revision_tbl(i).volume               := p_x_revision_tbl(i).volume;
1238         l_revision_tbl(i).issue                := p_x_revision_tbl(i).issue;
1239         l_revision_tbl(i).issue_number         := p_x_revision_tbl(i).issue_number;
1240         l_revision_tbl(i).language             := p_x_revision_tbl(i).language;
1241         l_revision_tbl(i).source_lang          := p_x_revision_tbl(i).source_lang;
1242         l_revision_tbl(i).comments             := p_x_revision_tbl(i).comments;
1243         l_revision_tbl(i).attribute_category   := p_x_revision_tbl(i).attribute_category;
1244         l_revision_tbl(i).attribute1           := p_x_revision_tbl(i).attribute1;
1245         l_revision_tbl(i).attribute2           := p_x_revision_tbl(i).attribute2;
1246         l_revision_tbl(i).attribute3           := p_x_revision_tbl(i).attribute3;
1247         l_revision_tbl(i).attribute4           := p_x_revision_tbl(i).attribute4;
1248         l_revision_tbl(i).attribute5           := p_x_revision_tbl(i).attribute5;
1249         l_revision_tbl(i).attribute6           := p_x_revision_tbl(i).attribute6;
1250         l_revision_tbl(i).attribute7           := p_x_revision_tbl(i).attribute7;
1251         l_revision_tbl(i).attribute8           := p_x_revision_tbl(i).attribute8;
1252         l_revision_tbl(i).attribute9           := p_x_revision_tbl(i).attribute9;
1253         l_revision_tbl(i).attribute10          := p_x_revision_tbl(i).attribute10;
1254         l_revision_tbl(i).attribute11          := p_x_revision_tbl(i).attribute11;
1255         l_revision_tbl(i).attribute12          := p_x_revision_tbl(i).attribute12;
1256         l_revision_tbl(i).attribute13          := p_x_revision_tbl(i).attribute13;
1257         l_revision_tbl(i).attribute14          := p_x_revision_tbl(i).attribute14;
1258         l_revision_tbl(i).attribute15          := p_x_revision_tbl(i).attribute15;
1259         l_revision_tbl(i).delete_flag          := p_x_revision_tbl(i).delete_flag;
1260         l_revision_tbl(i).object_version_number := p_x_revision_tbl(i).object_version_number;
1261 
1262    -- Standard call to get message count and if count is  get message info.
1263    l_msg_count := FND_MSG_PUB.count_msg;
1264 
1265    IF l_msg_count > 0 THEN
1266       X_msg_count := l_msg_count;
1267       IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR
1268       THEN
1269          X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1270          RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1271       ELSE
1272         X_return_status := FND_API.G_RET_STS_ERROR;
1273         RAISE FND_API.G_EXC_ERROR;
1274       END IF;
1275    END IF;
1276  END LOOP;
1277 END IF;
1278 
1279 
1280 
1281 /*---------------------------------------------------------------*/
1282 /* procedure name: AHL_DI_DOC_REVISION_CUHK.MODIFY_REVISION_PRE  */
1283 /*		   AHL_DI_DOC_REVISION_VUHK.MODIFY_REVISION_PRE  */
1284 /* description   : Added by Siddhartha to call User Hooks  	 */
1285 /*      Date     : Dec 27 2001                             	 */
1286 /*---------------------------------------------------------------*/
1287 
1288 
1289 IF   JTF_USR_HKS.Ok_to_Execute( 'AHL_DI_DOC_REVISION_PUB','MODIFY_REVISION',
1290 					'B', 'C' )  then
1291    IF G_DEBUG='Y' THEN
1292 		  AHL_DEBUG_PUB.debug( 'Start AHL_DI_DOC_REVISION_CUHK.MODIFY_REVISION_PRE');
1293 
1294 	END IF;
1295 
1296  AHL_DI_DOC_REVISION_CUHK.MODIFY_REVISION_PRE
1297 (
1298 
1299 	 p_x_revision_tbl	     =>		l_revision_tbl ,
1300 	 x_return_status             =>		l_return_status,
1301 	 x_msg_count                 =>		l_msg_count,
1302 	 x_msg_data                  =>		l_msg_data
1303 );
1304 
1305 
1306    IF G_DEBUG='Y' THEN
1307 		  AHL_DEBUG_PUB.debug( 'End AHL_DI_DOC_REVISION_CUHK.MODIFY_REVISION_PRE');
1308 
1309 	END IF;
1310 
1311   IF   l_return_status = FND_API.G_RET_STS_ERROR  THEN
1312     			RAISE FND_API.G_EXC_ERROR;
1313              	ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR  THEN
1314 			RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1315 		END IF;
1316 END IF;
1317 
1318 IF   JTF_USR_HKS.Ok_to_Execute( 'AHL_DI_DOC_REVISION_PUB','MODIFY_REVISION',
1319 					'B', 'V' )  then
1320    IF G_DEBUG='Y' THEN
1321 		  AHL_DEBUG_PUB.debug( 'Start AHL_DI_DOC_REVISION_VUHK.MODIFY_REVISION_PRE');
1322 
1323 	END IF;
1324 
1325 
1326 AHL_DI_DOC_REVISION_VUHK.MODIFY_REVISION_PRE(
1327 			p_x_revision_tbl     	=>	l_revision_tbl ,
1328 			X_RETURN_STATUS        	=>	l_return_status       ,
1329 			X_MSG_COUNT            	=>	l_msg_count           ,
1330 			X_MSG_DATA             	=>	l_msg_data  );
1331 
1332 
1333       		IF   l_return_status = FND_API.G_RET_STS_ERROR  THEN
1334     			RAISE FND_API.G_EXC_ERROR;
1335              	ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR  THEN
1336 			RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1337 		END IF;
1338 IF G_DEBUG='Y' THEN
1339 		  AHL_DEBUG_PUB.debug( 'End AHL_DI_DOC_REVISION_VUHK.MODIFY_REVISION_PRE');
1340 
1341 	END IF;
1342 
1343 END IF;
1344 
1345 
1346 /*---------------------------------------------------------*/
1347 /*     End ; Date     : Dec 20 2001                        */
1348 /*---------------------------------------------------------*/
1349 
1350   -- Call the Private API
1351    AHL_DI_DOC_REVISION_PVT.MODIFY_REVISION
1352                         (
1353                          p_api_version      => 1.0,
1354                          p_init_msg_list    => l_init_msg_list,
1355                          p_commit           => p_commit,
1356                          p_validate_only    => p_validate_only,
1357                          p_validation_level => p_validation_level,
1358                          p_x_revision_tbl   => l_revision_tbl,
1359                          x_return_status    => l_return_status,
1360                          x_msg_count        => l_msg_count,
1361                          x_msg_data         => l_msg_data
1362                          );
1363    -- Standard call to get message count and if count is  get message info.
1364    l_msg_count := FND_MSG_PUB.count_msg;
1365 
1366    IF l_msg_count > 0 THEN
1367       X_msg_count := l_msg_count;
1368       IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR
1369       THEN
1370          X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1371          RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1372       ELSE
1373         X_return_status := FND_API.G_RET_STS_ERROR;
1374         RAISE FND_API.G_EXC_ERROR;
1375       END IF;
1376    END IF;
1377 
1378 
1379 
1380 /*-----------------------------------------------------------------------------	*/
1381 /* procedure name: AHL_DI_DOC_REVISION_VUHK.MODIFY_REVISION_POST		*/
1382 /*		   AHL_DI_DOC_REVISION_CUHK.MODIFY_REVISION_POST		*/
1383 /*        									*/
1384 /* description   :  Added by siddhartha to call User Hooks   			*/
1385 /*      Date     : Dec 27 2001                             			*/
1386 /*------------------------------------------------------------------------------*/
1387 
1388 
1389 
1390 IF   JTF_USR_HKS.Ok_to_Execute( 'AHL_DI_DOC_REVISION_PUB','MODIFY_REVISION',
1391 					'A', 'V' )  then
1392    IF G_DEBUG='Y' THEN
1393 		  AHL_DEBUG_PUB.debug( 'Start AHL_DI_DOC_REVISION_VUHK.MODIFY_REVISION_POST');
1394 
1395 	END IF;
1396 
1397             AHL_DI_DOC_REVISION_VUHK.MODIFY_REVISION_POST(
1398 			p_revision_tbl		=>	l_revision_tbl,
1399 			X_RETURN_STATUS        	=>	l_return_status      ,
1400 			X_MSG_COUNT            	=>	l_msg_count           ,
1401 			X_MSG_DATA             	=>	l_msg_data  );
1402 
1403 
1404    IF G_DEBUG='Y' THEN
1405 		  AHL_DEBUG_PUB.debug( 'End AHL_DI_DOC_REVISION_VUHK.MODIFY_REVISION_POST');
1406 
1407 	END IF;
1408 
1409       		IF   l_return_status = FND_API.G_RET_STS_ERROR  THEN
1410     			RAISE FND_API.G_EXC_ERROR;
1411              	ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR  THEN
1412 			RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1413 		END IF;
1414 
1415 
1416 END IF;
1417 
1418 IF   JTF_USR_HKS.Ok_to_Execute( 'AHL_DI_DOC_REVISION_PUB','MODIFY_REVISION',
1419 					'A', 'C' )  then
1420    IF G_DEBUG='Y' THEN
1421 		  AHL_DEBUG_PUB.debug( 'Start AHL_DI_DOC_REVISION_CUHK.MODIFY_REVISION_POST');
1422 
1423 	END IF;
1424 
1425             AHL_DI_DOC_REVISION_CUHK.MODIFY_REVISION_POST(
1426 
1427 			p_revision_tbl	=>		l_revision_tbl ,
1428 			X_RETURN_STATUS        	=>	l_return_status      ,
1429 			X_MSG_COUNT            	=>	l_msg_count           ,
1430 			X_MSG_DATA             	=>	l_msg_data  );
1431 
1432 IF G_DEBUG='Y' THEN
1433 		  AHL_DEBUG_PUB.debug( 'End AHL_DI_DOC_REVISION_CUHK.MODIFY_REVISION_POST');
1434 
1435 	END IF;
1436 
1437       		IF   l_return_status = FND_API.G_RET_STS_ERROR  THEN
1438     			RAISE FND_API.G_EXC_ERROR;
1439              	ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR  THEN
1440 			RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1441 		END IF;
1442 
1443 END IF;
1444 
1445 
1446 /*---------------------------------------------------------*/
1447 /*     End ; Date     : Dec 27 2001                        */
1448 /*---------------------------------------------------------*/
1449 
1450 
1451 
1452     -- Standard check of p_commit.
1453    IF FND_API.TO_BOOLEAN(p_commit) THEN
1454       COMMIT;
1455    END IF;
1456    -- Debug info
1457    IF G_DEBUG='Y' THEN
1458 		  AHL_DEBUG_PUB.debug( 'End of public api Modify Revision','+REV+');
1459 
1460 	END IF;
1461    -- Check if API is called in debug mode. If yes, disable debug.
1462    IF G_DEBUG='Y' THEN
1463 		  AHL_DEBUG_PUB.disable_debug;
1464 
1465 	END IF;
1466 
1467    x_msg_data := 'tHIS IS A cHECK'||TO_CHAR(p_x_revision_tbl(1).approved_by_party_id);
1468 
1469 EXCEPTION
1470  WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1471     ROLLBACK TO modify_revision;
1472     X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1473     FND_MSG_PUB.count_and_get( p_encoded => FND_API.G_FALSE,
1474                                p_count => x_msg_count,
1475                                p_data  => x_msg_data);
1476         IF G_DEBUG='Y' THEN
1477             AHL_DEBUG_PUB.log_app_messages (x_msg_count, x_msg_data, 'ERROR' );
1478             AHL_DEBUG_PUB.debug( 'ahl_di_doc_revision_pub.Modify Revision','+REV+');
1479 
1480         -- Check if API is called in debug mode. If yes, disable debug.
1481           AHL_DEBUG_PUB.disable_debug;
1482 
1483 	END IF;
1484 
1485  WHEN FND_API.G_EXC_ERROR THEN
1486     ROLLBACK TO modify_revision;
1487     X_return_status := FND_API.G_RET_STS_ERROR;
1488     FND_MSG_PUB.count_and_get( p_encoded => FND_API.G_FALSE,
1489                                p_count => x_msg_count,
1490                                p_data  => X_msg_data);
1491         -- Debug info.
1492         IF G_DEBUG='Y' THEN
1493             AHL_DEBUG_PUB.log_app_messages (x_msg_count, x_msg_data, 'UNEXPECTED ERROR' );
1494             AHL_DEBUG_PUB.debug( 'ahl_di_doc_revision_pub.Modify Revision','+REV+');
1495 
1496 
1497         -- Check if API is called in debug mode. If yes, disable debug.
1498            AHL_DEBUG_PUB.disable_debug;
1499 
1500 	END IF;
1501 
1502  WHEN OTHERS THEN
1503     ROLLBACK TO modify_revision;
1504     X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1505     IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1506     THEN
1507     fnd_msg_pub.add_exc_msg(p_pkg_name        =>  'AHL_DI_DOC_REVISION_PUB',
1508                             p_procedure_name  =>  'MODIFY_REVISION',
1509                             p_error_text      => SUBSTR(SQLERRM,1,240));
1510     END IF;
1511     FND_MSG_PUB.count_and_get( p_encoded => FND_API.G_FALSE,
1512                                p_count => x_msg_count,
1513                                p_data  => X_msg_data);
1514 
1515         -- Debug info.
1516         IF G_DEBUG='Y' THEN
1517             AHL_DEBUG_PUB.log_app_messages (x_msg_count, x_msg_data, 'SQL ERROR' );
1518             AHL_DEBUG_PUB.debug( 'ahl_di_doc_revision_pub.Modify Revision','+REV+');
1519 
1520 
1521         -- Check if API is called in debug mode. If yes, disable debug.
1522            AHL_DEBUG_PUB.disable_debug;
1523 
1524 	END IF;
1525 
1526 END MODIFY_REVISION;
1527 END AHL_DI_DOC_REVISION_PUB;