DBA Data[Home] [Help]

PACKAGE BODY: APPS.AHL_DI_FILEUPLOAD_PVT

Source


1 PACKAGE BODY AHL_DI_FILEUPLOAD_PVT AS
2 /* $Header: AHLVFUPB.pls 115.6 2004/01/21 09:07:58 adharia noship $ */
3 --
4 G_PKG_NAME  VARCHAR2(30)  := 'AHL_DI_FILEUPLOAD_PVT';
5 
6 /*-----------------------------------------------------------*/
7 /* procedure name: UPLOAD_ITEM                               */
8 /* description: Procedure to insert/update content item for  */
9 /*              an associated document                       */
10 /*-----------------------------------------------------------*/
11 
12 
13 
14 
15 G_DEBUG 		 VARCHAR2(1):=AHL_DEBUG_PUB.is_log_enabled;
16 
17 
18 
19 PROCEDURE UPLOAD_ITEM
20  (p_api_version                  IN NUMBER    := 1.0,
21   p_init_msg_list                IN VARCHAR2  := FND_API.G_TRUE,
22   p_commit                       IN VARCHAR2  := FND_API.G_FALSE ,
23   p_validation_level             IN NUMBER    := FND_API.G_VALID_LEVEL_FULL,
24   x_return_status                OUT NOCOPY VARCHAR2 ,
25   x_msg_count                    OUT NOCOPY NUMBER ,
26   x_msg_data                     OUT NOCOPY VARCHAR2,
27   p_x_ahl_fileupload_rec         IN OUT NOCOPY ahl_fileupload_rec
28  )
29 
30  IS
31 
32 
33  l_api_name      CONSTANT VARCHAR2(30) := 'UPLOAD_ITEM';
34  l_api_version   CONSTANT NUMBER       := 1.0;
35  l_init_msg_list          VARCHAR2(10) := FND_API.G_TRUE;
36  l_msg_count                NUMBER;
37  l_msg_data                 VARCHAR2(2000);
38  l_return_status            VARCHAR2(1);
39  l_rowid                    VARCHAR2(30);
40  l_dummy NUMBER;
41  l_object_version_number NUMBER;
42  l_association_id        NUMBER;
43  l_security_group_id NUMBER;
44 
45   --AHL Specific code  :
46 
47     l_is_exist_mid    NUMBER := 0 ;
48 
49 
50     CURSOR c_association_id IS
51           SELECT AHL_DOC_FILE_ASSOC_B_S.nextval
52           FROM dual;
53 
54 
55   CURSOR c_does_attach_exist (l_revid IN VARCHAR2) IS
56      select  FUPV.FILE_ID , FUPV.FILE_NAME   from AHL_DOC_FILE_ASSOC_V FUPV, FND_LOBS FLOB
57      where FUPV.REVISION_ID = l_revid
58      and FUPV.FILE_ID  = FLOB.FILE_ID;
59 
60     l_attach_doc c_does_attach_exist%ROWTYPE;
61 
62  BEGIN
63 
64     -- Standard Start of API savepoint
65     SAVEPOINT UPLOAD_ITEM;
66 
67     -- Check if API is called in debug mode. If yes, enable debug.
68     IF G_DEBUG='Y' THEN
69 		  AHL_DEBUG_PUB.enable_debug;
70 
71 	END IF;
72     -- Debug info.
73     IF G_DEBUG='Y' THEN
74         AHL_DEBUG_PUB.debug( 'enter private AHL_DI_FILEUPLOAD_PVT.UPLOAD_ITEM');
75 
76 
77     END IF;
78 
79 
80     -- Standard call to check for call compatibility.
81     IF NOT FND_API.COMPATIBLE_API_CALL(l_api_version,
82                                        p_api_version,
83                                        l_api_name,G_PKG_NAME)
84        THEN
85           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
86     END IF;
87    -- Initialize message list if p_init_msg_list is set to TRUE.
88     IF FND_API.to_boolean(l_init_msg_list)
89      THEN
90        FND_MSG_PUB.initialize;
91     END IF;
92 
93     --  Initialize API return status to success
94      x_return_status := FND_API.G_RET_STS_SUCCESS;
95 
96  --Start of API body
97 
98  --Validations
99 
100 
101 
102    --Validate Document_Revision_id
103    IF (p_x_ahl_fileupload_rec.p_revision_id IS NOT NULL) THEN
104      BEGIN
105        SELECT 1
106        INTO l_dummy
107        FROM AHL_DOC_REVISIONS_B
108        WHERE DOC_REVISION_ID = p_x_ahl_fileupload_rec.p_revision_id;
109      EXCEPTION
110        WHEN no_data_found THEN
111           FND_MESSAGE.SET_NAME('AHL','AHL_DI_DOC_REV_ID_INVALID');
112           FND_MSG_PUB.ADD;
113           IF G_DEBUG='Y' THEN
114 	     AHL_DEBUG_PUB.debug( 'ERROR: AHL_DI_DOC REV ID:'||p_x_ahl_fileupload_rec.p_revision_id||': invalid');
115 
116 
117           END IF;
118           x_return_status := FND_API.G_RET_STS_ERROR;
119        WHEN OTHERS THEN
120           x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
121        RAISE;
122      END;
123    ELSE
124      FND_MESSAGE.SET_NAME('AHL','AHL_DI_DOC_REV_ID_NULL');
125      FND_MSG_PUB.ADD;
126      IF G_DEBUG='Y' THEN
127      	 AHL_DEBUG_PUB.debug( 'ERROR: AHL_DI_DOC REV null');
128 
129      END IF;
130      x_return_status := FND_API.G_RET_STS_ERROR;
131    END IF;
132 
133 
134 
135 
136 
137    --Validate file_id
138    IF (p_x_ahl_fileupload_rec.p_file_id IS NOT NULL) THEN
139      BEGIN
140        SELECT distinct 1
141        INTO l_dummy
142        FROM FND_LOBS
143        WHERE FILE_ID = p_x_ahl_fileupload_rec.p_file_id;
144      EXCEPTION
145        WHEN no_data_found THEN
146            IF G_DEBUG='Y' THEN
147 	     AHL_DEBUG_PUB.debug( 'ERROR: AHL_DI_ATTACH_FILE_NOT_EXISTS');
148            END IF;
149            x_return_status := FND_API.G_RET_STS_ERROR;
150        WHEN OTHERS THEN
151            x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
152        RAISE;
153      END;
154    ELSE
155       IF G_DEBUG='Y' THEN
156       	AHL_DEBUG_PUB.debug( 'ERROR: AHL_DI_ATTACH_FILE IS Null');
157       END IF;
158       x_return_status := FND_API.G_RET_STS_ERROR;
159    END IF;
160 
161 
162    -- check if association exists
163    IF G_DEBUG='Y' THEN
164       AHL_DEBUG_PUB.debug( 'checking for already existing file ');
165      END IF;
166 
167     open c_does_attach_exist (p_x_ahl_fileupload_rec.p_revision_id);
168 
169      LOOP
170        fetch c_does_attach_exist into l_attach_doc;
171        exit when c_does_attach_exist%NOTFOUND;
172        AHL_DEBUG_PUB.debug( 'l_attach_doc  value '||  l_attach_doc.file_id);
173        AHL_DEBUG_PUB.debug( 'l_attach_doc  value '||  l_attach_doc.file_name);
174        l_is_exist_mid := l_attach_doc.file_id;
175 
176     END LOOP;
177   close c_does_attach_exist;
178 
179 
180 
181    if( l_is_exist_mid  <> 0)
182    then
183    DELETE_ITEM
184            (
185              p_api_version => 1.0,
186    	     p_init_msg_list => FND_API.G_FALSE,
187    	     p_commit => FND_API.G_FALSE,
188    	     p_validation_level => FND_API.G_VALID_LEVEL_FULL,
189    	     x_return_status => l_return_status,
190    	     x_msg_count => l_msg_count,
191    	     x_msg_data => l_msg_data,
192              p_x_ahl_fileupload_rec => p_x_ahl_fileupload_rec
193       );
194 
195    end if;
196   IF G_DEBUG='Y' THEN
197     AHL_DEBUG_PUB.debug('completed delete if there are any  ');
198     END IF;
199 
200  -- get new associationid from sequence.
201 
202    open c_association_id ;
203    fetch c_association_id  into l_association_id;
204    close c_association_id ;
205 
206    p_x_ahl_fileupload_rec.p_association_id := l_association_id;
207 
208 
209 
210 
211    AHL_DOC_FILE_ASSOC_PKG.INSERT_ROW(
212    X_ROWID => l_rowid ,
213    X_ASSOCIATION_ID => l_association_id,
217    X_REVISION_ID => p_x_ahl_fileupload_rec.p_revision_id,
214    X_OBJECT_VERSION_NUMBER => 1,
215    X_FILE_ID => p_x_ahl_fileupload_rec.p_file_id,
216    X_FILE_NAME => p_x_ahl_fileupload_rec.p_file_name,
218    X_DATATYPE_CODE => p_x_ahl_fileupload_rec.p_datatype_code,
219    X_SECURITY_GROUP_ID => l_security_group_id,
220    X_ATTRIBUTE_CATEGORY => p_x_ahl_fileupload_rec.p_attribute_category,
221      X_ATTRIBUTE1 =>  p_x_ahl_fileupload_rec.p_attribute1,
222      X_ATTRIBUTE2  => p_x_ahl_fileupload_rec.p_attribute2,
223      X_ATTRIBUTE3  => p_x_ahl_fileupload_rec.p_attribute3,
224      X_ATTRIBUTE4  => p_x_ahl_fileupload_rec.p_attribute4,
225      X_ATTRIBUTE5 => p_x_ahl_fileupload_rec.p_attribute5,
226      X_ATTRIBUTE6  => p_x_ahl_fileupload_rec.p_attribute6,
227      X_ATTRIBUTE7  => p_x_ahl_fileupload_rec.p_attribute7,
228      X_ATTRIBUTE8 => p_x_ahl_fileupload_rec.p_attribute8,
229      X_ATTRIBUTE9  => p_x_ahl_fileupload_rec.p_attribute9,
230      X_ATTRIBUTE10 => p_x_ahl_fileupload_rec.p_attribute10,
231      X_ATTRIBUTE11  => p_x_ahl_fileupload_rec.p_attribute11,
232      X_ATTRIBUTE12 => p_x_ahl_fileupload_rec.p_attribute12,
233      X_ATTRIBUTE13 => p_x_ahl_fileupload_rec.p_attribute13,
234      X_ATTRIBUTE14  => p_x_ahl_fileupload_rec.p_attribute14,
235      X_ATTRIBUTE15 => p_x_ahl_fileupload_rec.p_attribute15,
236    X_FILE_DESC =>  p_x_ahl_fileupload_rec.p_file_description,
237    X_CREATION_DATE => sysdate,
238    X_CREATED_BY => fnd_global.user_id,
239    X_LAST_UPDATE_DATE => sysdate,
240    X_LAST_UPDATED_BY => fnd_global.user_id,
241    X_LAST_UPDATE_LOGIN => fnd_global.login_id
242    );
243 
244 
245 
246 
247 
248    --Standard check for commit
249       IF FND_API.TO_BOOLEAN(p_commit) THEN
250          COMMIT;
251       END IF;
252       -- Debug info
253       IF G_DEBUG='Y' THEN
254         AHL_DEBUG_PUB.debug( 'End of private api UPLOAD_ITEM');
255 
256 
257       END IF;
258       -- Check if API is called in debug mode. If yes, disable debug.
259       IF G_DEBUG='Y' THEN
260 		  AHL_DEBUG_PUB.disable_debug;
261 
262 	END IF;
263 
264    EXCEPTION
265     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
266        ROLLBACK TO UPLOAD_ITEM;
267        x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
268        FND_MSG_PUB.count_and_get( p_encoded => FND_API.G_FALSE,
269                                   p_count => x_msg_count,
270                                   p_data  => x_msg_data);
271        IF G_DEBUG='Y' THEN
272          AHL_DEBUG_PUB.log_app_messages (x_msg_count, x_msg_data, 'ERROR' );
273          AHL_DEBUG_PUB.debug( 'AHL_DI_FILEUPLOAD_PVT.UPLOAD_ITEM');
274 
275        -- Check if API is called in debug mode. If yes, disable debug.
276          AHL_DEBUG_PUB.disable_debug;
277 
278 	END IF;
279 
280     WHEN FND_API.G_EXC_ERROR THEN
281        ROLLBACK TO UPLOAD_ITEM;
282        X_return_status := FND_API.G_RET_STS_ERROR;
283        FND_MSG_PUB.count_and_get( p_encoded => FND_API.G_FALSE,
284                                   p_count => x_msg_count,
285                                   p_data  => X_msg_data);
286        -- Debug info.
287        IF G_DEBUG='Y' THEN
288           AHL_DEBUG_PUB.log_app_messages (x_msg_count, x_msg_data, 'UNEXPECTED ERROR' );
289           AHL_DEBUG_PUB.debug( 'AHL_DI_FILEUPLOAD_PVT.UPLOAD_ITEM');
290 
291        -- Check if API is called in debug mode. If yes, disable debug.
292           AHL_DEBUG_PUB.disable_debug;
293 
294 	END IF;
295 
296     WHEN OTHERS THEN
297        ROLLBACK TO UPLOAD_ITEM;
298        x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
299        IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
300           fnd_msg_pub.add_exc_msg(p_pkg_name        =>  G_PKG_NAME,
301                                   p_procedure_name  =>  l_api_name,
302                                   p_error_text      => SUBSTR(SQLERRM,1,240));
303        END IF;
304        FND_MSG_PUB.count_and_get( p_encoded => FND_API.G_FALSE,
305                                   p_count => x_msg_count,
306                                   p_data  => x_msg_data);
307 
308        -- Debug info.
309        IF G_DEBUG='Y' THEN
310           AHL_DEBUG_PUB.log_app_messages (x_msg_count, x_msg_data, 'SQL ERROR' );
311           AHL_DEBUG_PUB.debug( 'AHL_DI_FILEUPLOAD_PVT.UPLOAD_ITEM');
312 
313        -- Check if API is called in debug mode. If yes, disable debug.
314           AHL_DEBUG_PUB.disable_debug;
315 
316 	END IF;
317 
318 END UPLOAD_ITEM;
319 
320 
321  PROCEDURE DELETE_ITEM
322   (
323    p_api_version                  IN  NUMBER    := 1.0               ,
324    p_init_msg_list                IN  VARCHAR2  := FND_API.G_TRUE      ,
325    p_commit                       IN  VARCHAR2  := FND_API.G_FALSE     ,
326    p_validation_level             IN  NUMBER    := FND_API.G_VALID_LEVEL_FULL,
327    x_return_status                OUT NOCOPY VARCHAR2,
328    x_msg_count                    OUT NOCOPY NUMBER,
329    x_msg_data                     OUT NOCOPY VARCHAR2,
330    p_x_ahl_fileupload_rec           IN ahl_fileupload_rec
331  )
332 
333   IS
334 
335    l_api_name      CONSTANT VARCHAR2(30) := 'DELETE_ITEM';
336    l_api_version   CONSTANT NUMBER       := 1.0;
337    l_init_msg_list          VARCHAR2(10) := FND_API.G_TRUE;
338    l_msg_count                NUMBER;
339    l_msg_data                 VARCHAR2(2000);
340    l_return_status            VARCHAR2(1);
341 
342    l_dummy NUMBER;
343    l_assoc_id  NUMBER;
344    l_security_group_id NUMBER;
345 
346   CURSOR c_get_association_id (l_revid IN VARCHAR2) IS
347        select  FUPV.ASSOCIATION_ID  from AHL_DOC_FILE_ASSOC_V FUPV , FND_LOBS FLOB
348        where FUPV.REVISION_ID = l_revid
349      and FUPV.FILE_ID  = FLOB.FILE_ID;
350 
351   BEGIN
352     -- Standard Start of API savepoint
353         SAVEPOINT Delete_Item;
354 
355         -- Check if API is called in debug mode. If yes, enable debug.
356         IF G_DEBUG='Y' THEN
357   		  AHL_DEBUG_PUB.enable_debug;
358 
359   	END IF;
360         -- Debug info.
361         IF G_DEBUG='Y' THEN
362             AHL_DEBUG_PUB.debug( 'enter private AHL_DI_FILEUPLOAD_PVT.DELETE_ITEM');
363         END IF;
364 
365 
366         -- Standard call to check for call compatibility.
367         IF NOT FND_API.COMPATIBLE_API_CALL(l_api_version,
368                                            p_api_version,
369                                            l_api_name,G_PKG_NAME) THEN
370               RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
371         END IF;
372        -- Initialize message list if p_init_msg_list is set to TRUE.
373         IF FND_API.to_boolean(l_init_msg_list) THEN
374            FND_MSG_PUB.initialize;
375         END IF;
376 
377         --  Initialize API return status to success
378          x_return_status := FND_API.G_RET_STS_SUCCESS;
379 
380    --Start of API body
381 
382    --Validations
383 
384 
385 
386     --Validate Document Revision Id
387 
388       IF G_DEBUG='Y' THEN
389            AHL_DEBUG_PUB.debug( 'enter private AHL_DI_FILEUPLOAD_PVT.DELETE_ITEM');
390       END IF;
391 
392       IF (p_x_ahl_fileupload_rec.p_revision_id IS NOT NULL) THEN
393               BEGIN
394                 SELECT 1
395   	      INTO l_dummy
396   	      FROM AHL_DOC_REVISIONS_B
397                 WHERE DOC_REVISION_ID = p_x_ahl_fileupload_rec.p_revision_id;
398               EXCEPTION
399                 WHEN no_data_found THEN
400                     IF G_DEBUG='Y' THEN
401   		      AHL_DEBUG_PUB.debug( 'ERROR: AHL_DI_DOC_REV_ID_INVALID');
402 
403 
404                     END IF;
405                     FND_MESSAGE.SET_NAME('AHL','AHL_DI_DOC_REV_ID_INVALID');
406                     FND_MSG_PUB.ADD;
407                     x_return_status := FND_API.G_RET_STS_ERROR;
408                 WHEN OTHERS THEN
409                     x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
410                 RAISE;
411               END;
412             ELSE
413                IF G_DEBUG='Y' THEN
414   	     	 AHL_DEBUG_PUB.debug( 'ERROR: AHL_DI_DOC_REV_ID is null');
415 
416 
417                END IF;
418                FND_MESSAGE.SET_NAME('AHL','AHL_DI_DOC_REV_ID_INVALID');
419                FND_MSG_PUB.ADD;
420                x_return_status := FND_API.G_RET_STS_ERROR;
421      END IF;
422 
423 
424     --Validate if file exists in FND_LOBS
425 
426     IF (p_x_ahl_fileupload_rec.p_file_id IS NOT NULL) THEN
427          BEGIN
428            SELECT distinct 1
429            INTO l_dummy
430            FROM FND_LOBS
431            WHERE FILE_ID = p_x_ahl_fileupload_rec.p_file_id;
432          EXCEPTION
433            WHEN no_data_found THEN
434                IF G_DEBUG='Y' THEN
435     	     AHL_DEBUG_PUB.debug( 'ERROR: AHL_DI_ATTACH_FILE_NOT_EXISTS');
436 
437 
438                END IF;
439                x_return_status := FND_API.G_RET_STS_ERROR;
440            WHEN OTHERS THEN
441                x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
442            RAISE;
443          END;
444        ELSE
445           IF G_DEBUG='Y' THEN
446           	AHL_DEBUG_PUB.debug( 'ERROR: AHL_DI_ATTACH_FILE IS Null');
447 
448 
449           END IF;
450           x_return_status := FND_API.G_RET_STS_ERROR;
451        END IF;
452 
453 
454        -- Validate if association exists and retrieve the association id to be deleted.
455 
456        l_assoc_id := 0;
457 
458        IF G_DEBUG='Y' THEN
459           AHL_DEBUG_PUB.debug( 'checking for already existing file ');
460          END IF;
461 
462         open c_get_association_id (p_x_ahl_fileupload_rec.p_revision_id);
463 
464          LOOP
465            fetch c_get_association_id  into l_assoc_id;
466            exit when c_get_association_id %NOTFOUND;
467            AHL_DEBUG_PUB.debug( 'l_assoc_id  value to be deleted'||  l_assoc_id);
468          END LOOP;
469         close c_get_association_id;
470 
471         -- if association id not found then raise error.
472         IF(l_assoc_id = 0)THEN
473 
474           FND_MESSAGE.SET_NAME('AHL','AHL_DI_DOC_FILE_ASSOC_INVALID');
475 	  FND_MSG_PUB.ADD;
476 	  x_return_status := FND_API.G_RET_STS_ERROR;
477 
478 	  IF G_DEBUG='Y' THEN
479     	   AHL_DEBUG_PUB.debug( 'ERROR: the file association to be deleted is not found ');
480           END IF;
481 
482         END IF;
483 
484 
485 
486 
487 
488 
489    AHL_DOC_FILE_ASSOC_PKG.DELETE_ROW(
490 
491       X_ASSOCIATION_ID => l_assoc_id
492 
493       );
494 
495 
496   IF   l_return_status = FND_API.G_RET_STS_ERROR  THEN
497                 RAISE FND_API.G_EXC_ERROR;
498   ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR  THEN
499                 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
500   END IF;
501 
502   IF FND_API.TO_BOOLEAN(p_commit) THEN
503              COMMIT;
504          END IF;
505 
506         -- Debug info.
507         IF G_DEBUG='Y' THEN
508             AHL_DEBUG_PUB.debug( 'exit private AHL_DI_FILEUPLOAD_PVT.DELETE_ITEM');
509         END IF;
510 
511        EXCEPTION
512              WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
513                 ROLLBACK TO Delete_Item;
514                 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
515                 FND_MSG_PUB.count_and_get( p_encoded => FND_API.G_FALSE,
516                                            p_count => x_msg_count,
517                                            p_data  => x_msg_data);
518                 IF G_DEBUG='Y' THEN
519                   AHL_DEBUG_PUB.log_app_messages (x_msg_count, x_msg_data, 'ERROR' );
520                   AHL_DEBUG_PUB.debug( 'AHL_DI_FILEUPLOAD_PVT.DELETE_ITEMS');
521 
522 
523                 -- Check if API is called in debug mode. If yes, disable debug.
524                   AHL_DEBUG_PUB.disable_debug;
525 
526        	END IF;
527 
528              WHEN FND_API.G_EXC_ERROR THEN
529                 ROLLBACK TO Delete_Item;
530                 X_return_status := FND_API.G_RET_STS_ERROR;
531                 FND_MSG_PUB.count_and_get( p_encoded => FND_API.G_FALSE,
532                                            p_count => x_msg_count,
533                                            p_data  => X_msg_data);
534                 -- Debug info.
535                 IF G_DEBUG='Y' THEN
536                    AHL_DEBUG_PUB.log_app_messages (x_msg_count, x_msg_data, 'UNEXPECTED ERROR' );
537                    AHL_DEBUG_PUB.debug( 'AHL_DI_FILEUPLOAD_PVT.DELETE_ITEMS:');
538 
539 
540                 -- Check if API is called in debug mode. If yes, disable debug.
541                    AHL_DEBUG_PUB.disable_debug;
542 
543        	END IF;
544 
545              WHEN OTHERS THEN
546                 ROLLBACK TO Delete_Item;
547                 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
548                 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
549                    fnd_msg_pub.add_exc_msg(p_pkg_name        =>  G_PKG_NAME,
550                                            p_procedure_name  =>  l_api_name,
551                                            p_error_text      => SUBSTR(SQLERRM,1,240));
552                 END IF;
553                 FND_MSG_PUB.count_and_get( p_encoded => FND_API.G_FALSE,
554                                            p_count => x_msg_count,
555                                            p_data  => x_msg_data);
556 
557                 -- Debug info.
558                 IF G_DEBUG='Y' THEN
559                    AHL_DEBUG_PUB.log_app_messages (x_msg_count, x_msg_data, 'SQL ERROR' );
560                    AHL_DEBUG_PUB.debug( 'AHL_DI_FILEUPLOAD_PVT.DELETE_ITEM');
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 
569   END DELETE_ITEM;
570 
571 
572  PROCEDURE PROCESS_ITEM
573      (p_api_version                  IN NUMBER    DEFAULT 1.0,
574       p_init_msg_list                IN VARCHAR2  DEFAULT FND_API.G_TRUE,
575       p_commit                       IN VARCHAR2  DEFAULT FND_API.G_FALSE ,
576       p_validation_level             IN NUMBER    DEFAULT FND_API.G_VALID_LEVEL_FULL,
577       x_return_status                OUT NOCOPY VARCHAR2 ,
578       x_msg_count                    OUT NOCOPY NUMBER ,
579       x_msg_data                     OUT NOCOPY VARCHAR2,
580       p_x_ahl_fileupload_rec            IN OUT NOCOPY ahl_fileupload_rec,
581       p_delete_flag                  IN VARCHAR2
582      )
583 
584      IS
585 
586       l_ahl_fileupload_rec ahl_fileupload_rec;
587       l_api_name      CONSTANT VARCHAR2(30) := 'PROCESS_ITEM';
588       l_api_version   CONSTANT NUMBER       := 1.0;
589       l_init_msg_list          VARCHAR2(10) := FND_API.G_TRUE;
590 
591      BEGIN
592      -- Standard Start of API savepoint
593         SAVEPOINT process_item;
594       IF G_DEBUG='Y' THEN
595          		  AHL_DEBUG_PUB.enable_debug;
596 
597          	END IF;
598              -- Debug info.
599              IF G_DEBUG='Y' THEN
600                  AHL_DEBUG_PUB.debug( 'enter private AHL_DI_FILEUPLOAD_PVT.PROCESS_ITEM');
601 
602 
603              END IF;
604 
605 
606              -- Standard call to check for call compatibility.
607              IF NOT FND_API.COMPATIBLE_API_CALL(l_api_version,
608                                                 p_api_version,
609                                                 l_api_name,G_PKG_NAME)
610                 THEN
611                    RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
612              END IF;
613             -- Initialize message list if p_init_msg_list is set to TRUE.
614              IF FND_API.to_boolean(l_init_msg_list)
615               THEN
616                 FND_MSG_PUB.initialize;
617              END IF;
618 
619              --  Initialize API return status to success
620               x_return_status := FND_API.G_RET_STS_SUCCESS;
621 
622     --Start of API body
623 
624 	IF ( p_delete_flag ='Y') THEN
625 
626 		DELETE_ITEM
627 		(
628 		  p_api_version => 1.0,
629 		  p_init_msg_list => FND_API.G_FALSE,
630 		  p_commit => FND_API.G_FALSE,
631 		  p_validation_level => FND_API.G_VALID_LEVEL_FULL,
632 		  x_return_status => x_return_status,
633 		  x_msg_count => x_msg_count,
634 		  x_msg_data => x_msg_data,
635 		  p_x_ahl_fileupload_rec => p_x_ahl_fileupload_rec
636 	        );
637 
638 	ELSIF ( p_delete_flag = 'N') THEN
639 	         UPLOAD_ITEM
640 	   	 (
641 	   	  p_api_version => 1.0,
642 	   	  p_init_msg_list => FND_API.G_TRUE,
643 	   	  p_commit => FND_API.G_FALSE,
644 	   	  p_validation_level => FND_API.G_VALID_LEVEL_FULL,
645 	   	  x_return_status => x_return_status,
646 	   	  x_msg_count => x_msg_count,
647 	    	  x_msg_data => x_msg_data,
648 	   	  p_x_ahl_fileupload_rec => p_x_ahl_fileupload_rec
649                  );
650 
651         ELSE
652                   RAISE FND_API.G_EXC_ERROR;
653         END IF;
654 
655        IF G_DEBUG='Y' THEN
656          AHL_DEBUG_PUB.debug( 'exit private AHL_DI_FILEUPLOAD_PVT.PROCESS_ITEM');
657        END IF;
658        EXCEPTION
659        WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
660           ROLLBACK TO process_item;
661           x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
662           FND_MSG_PUB.count_and_get( p_encoded => FND_API.G_FALSE,
663                                      p_count => x_msg_count,
664                                      p_data  => x_msg_data);
665           IF G_DEBUG='Y' THEN
666             AHL_DEBUG_PUB.log_app_messages (x_msg_count, x_msg_data, 'ERROR' );
667             AHL_DEBUG_PUB.debug( 'AHL_DI_FILEUPLOAD_PVT.PROCESS_ITEM');
668 
669 
670           -- Check if API is called in debug mode. If yes, disable debug.
671             AHL_DEBUG_PUB.disable_debug;
672 
673  	END IF;
674 
675        WHEN FND_API.G_EXC_ERROR THEN
676           ROLLBACK TO process_item;
677           X_return_status := FND_API.G_RET_STS_ERROR;
678           FND_MSG_PUB.count_and_get( p_encoded => FND_API.G_FALSE,
679                                      p_count => x_msg_count,
680                                      p_data  => X_msg_data);
681           -- Debug info.
682           IF G_DEBUG='Y' THEN
683              AHL_DEBUG_PUB.log_app_messages (x_msg_count, x_msg_data, 'UNEXPECTED ERROR' );
684              AHL_DEBUG_PUB.debug( 'AHL_DI_CONTENT_MGMT_PVT.PROCESS_ITEM');
685 
686 
687           -- Check if API is called in debug mode. If yes, disable debug.
688              AHL_DEBUG_PUB.disable_debug;
689 
690  	END IF;
691 
692        WHEN OTHERS THEN
693           ROLLBACK TO process_item;
694           x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
695           IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
696              fnd_msg_pub.add_exc_msg(p_pkg_name        =>  G_PKG_NAME,
697                                      p_procedure_name  =>  l_api_name,
698                                      p_error_text      => SUBSTR(SQLERRM,1,240));
699           END IF;
700           FND_MSG_PUB.count_and_get( p_encoded => FND_API.G_FALSE,
701                                      p_count => x_msg_count,
702                                      p_data  => x_msg_data);
703 
704           -- Debug info.
705           IF G_DEBUG='Y' THEN
706              AHL_DEBUG_PUB.log_app_messages (x_msg_count, x_msg_data, 'SQL ERROR' );
707              AHL_DEBUG_PUB.debug( 'AHL_DI_FILEUPLOAD_PVT.PROCESS_ITEM');
708 
709 
710           -- Check if API is called in debug mode. If yes, disable debug.
711              AHL_DEBUG_PUB.disable_debug;
712 
713  	END IF;
714 
715      END PROCESS_ITEM;
716 
717 
718 
719 
720 END AHL_DI_FILEUPLOAD_PVT;
721