[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