[Home] [Help]
PACKAGE BODY: APPS.AMS_ACTDELVMETHOD_PVT
Source
1 PACKAGE BODY AMS_ActDelvMethod_PVT AS
2 /* $Header: amsvdlvb.pls 120.1 2005/06/15 01:42:02 appldev $ */
3
4 -- NAME
5 -- AMS_ActDelvMethod_PVT
6 --
7 -- HISTORY
8 -- 11/11/99 rvaka CREATED
9 --
10 G_PACKAGE_NAME CONSTANT VARCHAR2(30):='AMS_ActDelvMethod_PVT';
11 G_FILE_NAME CONSTANT VARCHAR2(12):='amsvdlvb.pls';
12 -- Debug mode
13 g_debug boolean := FALSE;
14 --g_debug boolean := TRUE;
15 --
16 -- Procedure and function declarations.
17 -- Start of Comments
18 --
19 -- NAME
20 -- Create_Act_DelvMethod
21 --
22 -- PURPOSE
23 -- This procedure is to create a Delivery Method record that satisfy caller needs
24 --
25 -- HISTORY
26 -- 11/11/1999 rvaka created
27 -- End of Comments
28
29 PROCEDURE Create_Act_DelvMethod
30 ( p_api_version IN NUMBER,
31 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
32 p_commit IN VARCHAR2 := FND_API.G_FALSE,
33 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
34 x_return_status OUT NOCOPY VARCHAR2,
35 x_msg_count OUT NOCOPY NUMBER,
36 x_msg_data OUT NOCOPY VARCHAR2,
37 p_act_DelvMethod_rec IN act_DelvMethod_rec_type,
38 x_act_DelvMethod_id OUT NOCOPY NUMBER
39 ) IS
40 l_api_name CONSTANT VARCHAR2(30) := 'Create_Act_DelvMethod';
41 l_api_version CONSTANT NUMBER := 1.0;
42 l_full_name CONSTANT VARCHAR2(60) := G_PACKAGE_NAME || '.' || l_api_name;
43 -- Status Local Variables
44 l_return_status VARCHAR2(1); -- Return value from procedures
45 l_act_DelvMethod_rec act_DelvMethod_rec_type := p_act_DelvMethod_rec;
46 l_act_delivery_method_id NUMBER;
47 CURSOR C_act_delivery_method_id IS
48 SELECT ams_act_delivery_methods_s.NEXTVAL
49 FROM dual;
50 BEGIN
51 -- Standard Start of API savepoint
52 SAVEPOINT Create_Act_DelvMethod_PVT;
53 -- Standard call to check for call compatibility.
54 IF NOT FND_API.Compatible_API_Call ( l_api_version,
55 p_api_version,
56 l_api_name,
57 G_PACKAGE_NAME)
58 THEN
59 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
60 END IF;
61 -- Initialize message list IF p_init_msg_list is set to TRUE.
62 IF FND_API.to_Boolean( p_init_msg_list )
63 THEN
64 FND_MSG_PUB.initialize;
65 END IF;
66 -- Initialize API return status to success
67 x_return_status := FND_API.G_RET_STS_SUCCESS;
68 --
69 -- API body
70 --
71 ----------------------- validate -----------------------
72 AMS_Utility_PVT.debug_message(l_full_name ||': validate');
73 Validate_Act_DelvMethod
74 ( p_api_version => 1.0
75 ,p_init_msg_list => p_init_msg_list
76 ,p_validation_level => p_validation_level
77 ,x_return_status => l_return_status
78 ,x_msg_count => x_msg_count
79 ,x_msg_data => x_msg_data
80 ,p_act_DelvMethod_rec => l_act_DelvMethod_rec
81 );
82 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW)
83 THEN
84 FND_MESSAGE.set_name('AMS', 'API_DEBUG_MESSAGE');
85 FND_MSG_PUB.add;
86 END IF;
87 -- If any errors happen abort API.
88 IF l_return_status = FND_API.G_RET_STS_ERROR
89 THEN
90 RAISE FND_API.G_EXC_ERROR;
91 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR
92 THEN
93 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
94 END IF;
95 --
96 -- Get ID for activity delivery method from sequence.
97 OPEN c_act_delivery_method_id;
98 FETCH c_act_delivery_method_id INTO l_act_DelvMethod_rec.activity_delivery_method_id;
99 CLOSE c_act_delivery_method_id;
100 INSERT INTO AMS_ACT_DELIVERY_METHODS
101 (activity_delivery_method_id,
102 -- standard who columns
103 last_update_date,
104 last_updated_by,
105 creation_date,
106 created_by,
107 last_update_login,
108 -- other columns
109 object_version_number,
110 act_delivery_method_used_by_id,
111 arc_act_delivery_used_by,
112 delivery_media_type_code,
113 attribute_category,
114 attribute1,
115 attribute2,
116 attribute3,
117 attribute4,
118 attribute5,
119 attribute6,
120 attribute7,
121 attribute8,
122 attribute9,
123 attribute10,
124 attribute11,
125 attribute12,
126 attribute13,
127 attribute14,
128 attribute15
129 )
130 VALUES
131 (
132 l_act_DelvMethod_rec.activity_delivery_method_id,
133 -- standard who columns
134 sysdate,
135 FND_GLOBAL.User_Id,
136 sysdate,
137 FND_GLOBAL.User_Id,
138 FND_GLOBAL.Conc_Login_Id,
139 1, -- object_version_number
140 l_act_DelvMethod_rec.act_delivery_method_used_by_id,
141 l_act_DelvMethod_rec.arc_act_delivery_used_by,
142 l_act_DelvMethod_rec.delivery_media_type_code,
143 l_act_DelvMethod_rec.attribute_category,
144 l_act_DelvMethod_rec.attribute1,
145 l_act_DelvMethod_rec.attribute2,
146 l_act_DelvMethod_rec.attribute3,
147 l_act_DelvMethod_rec.attribute4,
148 l_act_DelvMethod_rec.attribute5,
149 l_act_DelvMethod_rec.attribute6,
150 l_act_DelvMethod_rec.attribute7,
151 l_act_DelvMethod_rec.attribute8,
152 l_act_DelvMethod_rec.attribute9,
153 l_act_DelvMethod_rec.attribute10,
154 l_act_DelvMethod_rec.attribute11,
155 l_act_DelvMethod_rec.attribute12,
156 l_act_DelvMethod_rec.attribute13,
157 l_act_DelvMethod_rec.attribute14,
158 l_act_DelvMethod_rec.attribute15
159 );
160 -- set OUT value
161 x_act_delvmethod_id := l_act_DelvMethod_rec.activity_delivery_method_id;
162 --
163 -- END of API body.
164 --
165 -- Standard check of p_commit.
166 IF FND_API.To_Boolean ( p_commit )
167 THEN
168 COMMIT WORK;
169 END IF;
170 -- Standard call to get message count AND IF count is 1, get message info.
171 FND_MSG_PUB.Count_AND_Get
172 ( p_count => x_msg_count,
173 p_data => x_msg_data,
174 p_encoded => FND_API.G_FALSE
175 );
176 EXCEPTION
177 WHEN FND_API.G_EXC_ERROR THEN
178 ROLLBACK TO Create_Act_DelvMethod_PVT;
179 x_return_status := FND_API.G_RET_STS_ERROR ;
180 FND_MSG_PUB.Count_AND_Get
181 ( p_count => x_msg_count,
182 p_data => x_msg_data,
183 p_encoded => FND_API.G_FALSE
184 );
185 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
186 ROLLBACK TO Create_Act_DelvMethod_PVT;
187 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
188 FND_MSG_PUB.Count_AND_Get
189 ( p_count => x_msg_count,
190 p_data => x_msg_data,
191 p_encoded => FND_API.G_FALSE
192 );
193 WHEN OTHERS THEN
194 ROLLBACK TO Create_Act_DelvMethod_PVT;
195 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
196 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR )
197 THEN
198 FND_MSG_PUB.Add_Exc_Msg( G_PACKAGE_NAME,l_api_name);
199 END IF;
200 FND_MSG_PUB.Count_AND_Get
201 ( p_count => x_msg_count,
202 p_data => x_msg_data,
203 p_encoded => FND_API.G_FALSE
204 );
205 END Create_Act_DelvMethod;
206
207 /*****************************************************************************************/
208 -- Start of Comments
209 --
210 -- NAME
211 -- Update_Act_DelvMethod
212 --
213 -- PURPOSE
214 -- This procedure is to update a delivery method record that satisfy caller needs
215 --
216 -- HISTORY
217 -- 11/11/1999 rvaka created
218 -- End of Comments
219 PROCEDURE Update_Act_DelvMethod
220 ( p_api_version IN NUMBER,
221 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
222 p_commit IN VARCHAR2 := FND_API.G_FALSE,
223 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
224 x_return_status OUT NOCOPY VARCHAR2,
225 x_msg_count OUT NOCOPY NUMBER,
226 x_msg_data OUT NOCOPY VARCHAR2,
227 p_act_DelvMethod_rec IN act_DelvMethod_rec_type
228 ) IS
229 l_api_name CONSTANT VARCHAR2(30) := 'Update_Act_DelvMethod';
230 l_api_version CONSTANT NUMBER := 1.0;
231 -- Status Local Variables
232 l_return_status VARCHAR2(1); -- Return value from procedures
233 l_act_DelvMethod_rec act_DelvMethod_rec_type;
234 BEGIN
235 -- Standard Start of API savepoint
236 SAVEPOINT Update_Act_DelvMethod_PVT;
237 -- Standard call to check for call compatibility.
238 IF NOT FND_API.Compatible_API_Call ( l_api_version,
239 p_api_version,
240 l_api_name,
241 G_PACKAGE_NAME)
242 THEN
243 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
244 END IF;
245 -- Initialize message list IF p_init_msg_list is set to TRUE.
246 IF FND_API.to_Boolean( p_init_msg_list ) THEN
247 FND_MSG_PUB.initialize;
248 END IF;
249 -- Initialize API return status to success
250 x_return_status := FND_API.G_RET_STS_SUCCESS;
251 --
252 -- API body
253 --
254 complete_act_DelvMethod_rec(
255 p_act_DelvMethod_rec,
256 l_act_DelvMethod_rec
257 );
258 -- Perform the database operation
259
260
261
262 AMS_Utility_PVT.debug_message(l_api_name||': Calling check items');
263 IF p_validation_level >= JTF_PLSQL_API.g_valid_level_item
264 THEN
265 Validate_Act_DelvMethod_Items
266 ( p_act_DelvMethod_rec => l_act_DelvMethod_rec,
267 p_validation_mode => JTF_PLSQL_API.g_update,
268 x_return_status => l_return_status
269 );
270 -- If any errors happen abort API.
271 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR
272 THEN
273 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
274 ELSIF l_return_status = FND_API.G_RET_STS_ERROR
275 THEN
276 RAISE FND_API.G_EXC_ERROR;
277 END IF;
278 END IF;
279
280
281 update AMS_ACT_DELIVERY_METHODS
282 set
283 last_update_date = sysdate
284 ,last_updated_by = FND_GLOBAL.User_Id
285 ,last_update_login = FND_GLOBAL.Conc_Login_Id
286 ,object_version_number = l_act_DelvMethod_rec.object_version_number+1
287 ,act_delivery_method_used_by_id = l_act_DelvMethod_rec.act_delivery_method_used_by_id
288 ,arc_act_delivery_used_by = l_act_DelvMethod_rec.arc_act_delivery_used_by
289 ,delivery_media_type_code = l_act_DelvMethod_rec.delivery_media_type_code
290 ,attribute_category = l_act_DelvMethod_rec.attribute_category
291 ,attribute1 = l_act_DelvMethod_rec.attribute1
292 ,attribute2 = l_act_DelvMethod_rec.attribute2
293 ,attribute3 = l_act_DelvMethod_rec.attribute3
294 ,attribute4 = l_act_DelvMethod_rec.attribute4
295 ,attribute5 = l_act_DelvMethod_rec.attribute5
296 ,attribute6 = l_act_DelvMethod_rec.attribute6
297 ,attribute7 = l_act_DelvMethod_rec.attribute7
298 ,attribute8 = l_act_DelvMethod_rec.attribute8
299 ,attribute9 = l_act_DelvMethod_rec.attribute9
300 ,attribute10 = l_act_DelvMethod_rec.attribute10
301 ,attribute11 = l_act_DelvMethod_rec.attribute11
302 ,attribute12 = l_act_DelvMethod_rec.attribute12
303 ,attribute13 = l_act_DelvMethod_rec.attribute13
304 ,attribute14 = l_act_DelvMethod_rec.attribute14
305 ,attribute15 = l_act_DelvMethod_rec.attribute15
306 where activity_delivery_method_id = l_act_DelvMethod_rec.activity_delivery_method_id
307 and object_version_number = l_act_DelvMethod_rec.object_version_number;
308 IF (SQL%NOTFOUND)
309 THEN
310 -- Error, check the msg level and added an error message to the
311 -- API message list
312 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
313 THEN -- MMSG
314 FND_MESSAGE.set_name('AMS', 'AMS_API_RECORD_NOT_FOUND');
315 FND_MSG_PUB.Add;
316 END IF;
317 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
318 END IF;
319 --
320 -- END of API body.
321 --
322 -- Standard check of p_commit.
323 IF FND_API.To_Boolean ( p_commit )
324 THEN
325 COMMIT WORK;
326 END IF;
327 -- Standard call to get message count AND IF count is 1, get message info.
328 FND_MSG_PUB.Count_AND_Get
329 ( p_count => x_msg_count,
330 p_data => x_msg_data,
331 p_encoded => FND_API.G_FALSE
332 );
333 EXCEPTION
334 WHEN FND_API.G_EXC_ERROR THEN
335 ROLLBACK TO Update_Act_DelvMethod_PVT;
336 x_return_status := FND_API.G_RET_STS_ERROR ;
337 FND_MSG_PUB.Count_AND_Get
338 ( p_count => x_msg_count,
339 p_data => x_msg_data,
340 p_encoded => FND_API.G_FALSE
341 );
342 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
343 ROLLBACK TO Update_Act_DelvMethod_PVT;
344 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
345 FND_MSG_PUB.Count_AND_Get
346 ( p_count => x_msg_count,
347 p_data => x_msg_data,
348 p_encoded => FND_API.G_FALSE
349 );
350 WHEN OTHERS THEN
351 ROLLBACK TO Update_Act_DelvMethod_PVT;
352 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
353 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR )
354 THEN
355 FND_MSG_PUB.Add_Exc_Msg( G_PACKAGE_NAME,l_api_name);
356 END IF;
357 FND_MSG_PUB.Count_AND_Get
358 ( p_count => x_msg_count,
359 p_data => x_msg_data,
360 p_encoded => FND_API.G_FALSE
361 );
362 END Update_Act_DelvMethod;
363 /*****************************************************************************************/
364 -- Start of Comments
365 --
366 -- NAME
367 -- Delete_Act_DelvMethod
368 --
369 -- PURPOSE
370 -- This procedure is to delete a delivery method record that satisfy caller needs
371 --
372 -- HISTORY
373 -- 11/11/1999 rvaka created
374 -- End of Comments
375 PROCEDURE Delete_Act_DelvMethod
376 ( p_api_version IN NUMBER,
377 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
378 p_commit IN VARCHAR2 := FND_API.G_FALSE,
379 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
380 x_return_status OUT NOCOPY VARCHAR2,
381 x_msg_count OUT NOCOPY NUMBER,
382 x_msg_data OUT NOCOPY VARCHAR2,
383 p_act_DelvMethod_id IN NUMBER,
384 p_object_version IN NUMBER
385 ) IS
386 l_api_name CONSTANT VARCHAR2(30) := 'Delete_Act_DelvMethod';
387 l_api_version CONSTANT NUMBER := 1.0;
388 -- Status Local Variables
389 l_return_status VARCHAR2(1); -- Return value from procedures
390 l_act_delivery_method_id NUMBER := p_act_DelvMethod_id;
391 BEGIN
392 -- Standard Start of API savepoint
393 SAVEPOINT Delete_Act_DelvMethod_PVT;
394 -- Standard call to check for call compatibility.
395 IF NOT FND_API.Compatible_API_Call ( l_api_version,
396 p_api_version,
397 l_api_name,
398 G_PACKAGE_NAME)
399 THEN
400 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
401 END IF;
402 -- Initialize message list IF p_init_msg_list is set to TRUE.
403 IF FND_API.to_Boolean( p_init_msg_list )
404 THEN
405 FND_MSG_PUB.initialize;
406 END IF;
407 -- Initialize API return status to success
408 x_return_status := FND_API.G_RET_STS_SUCCESS;
409 --
410 -- API body
411 --
415 WHERE activity_delivery_method_id = l_act_delivery_method_id
412 -- Perform the database operation
413 -- Delete header data
414 DELETE FROM AMS_ACT_DELIVERY_METHODS
416 and object_version_number = p_object_version;
417 IF SQL%NOTFOUND THEN
418 --
419 -- Add error message to API message list.
420 --
421 IF FND_MSG_PUB.check_msg_level (FND_MSG_PUB.G_MSG_LVL_ERROR)
422 THEN
423 FND_MESSAGE.set_name ('AMS', 'AMS_API_RECORD_NOT_FOUND');
424 FND_MSG_PUB.add;
425 END IF;
426 RAISE FND_API.G_EXC_ERROR;
427 END IF;
428 --
429 -- END of API body.
430 --
431 -- Standard check of p_commit.
432 IF FND_API.To_Boolean ( p_commit )
433 THEN
434 COMMIT WORK;
435 END IF;
436 -- Standard call to get message count AND IF count is 1, get message info.
437 FND_MSG_PUB.Count_AND_Get
438 ( p_count => x_msg_count,
439 p_data => x_msg_data,
440 p_encoded => FND_API.G_FALSE
441 );
442 EXCEPTION
443 WHEN FND_API.G_EXC_ERROR THEN
444 ROLLBACK TO Delete_Act_DelvMethod_PVT;
445 x_return_status := FND_API.G_RET_STS_ERROR ;
446 FND_MSG_PUB.Count_AND_Get
447 ( p_count => x_msg_count,
448 p_data => x_msg_data,
449 p_encoded => FND_API.G_FALSE
450 );
451 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
452 ROLLBACK TO Delete_Act_DelvMethod_PVT;
453 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
454 FND_MSG_PUB.Count_AND_Get
455 ( p_count => x_msg_count,
456 p_data => x_msg_data,
457 p_encoded => FND_API.G_FALSE
458 );
459 WHEN OTHERS THEN
460 ROLLBACK TO Delete_Act_DelvMethod_PVT;
461 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
462 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR )
463 THEN
464 FND_MSG_PUB.Add_Exc_Msg( G_PACKAGE_NAME,l_api_name);
465 END IF;
466 FND_MSG_PUB.Count_AND_Get
467 ( p_count => x_msg_count,
468 p_data => x_msg_data,
469 p_encoded => FND_API.G_FALSE
470 );
471 END Delete_Act_DelvMethod;
472 /*****************************************************************************************/
473 -- Start of Comments
474 --
475 -- NAME
476 -- Lock_Act_DelvMethod
477 --
478 -- PURPOSE
479 -- This procedure is to lock a delivery method record that satisfy caller needs
480 --
481 -- HISTORY
482 -- 11/11/1999 rvaka created
483 -- End of Comments
484
485 PROCEDURE Lock_Act_DelvMethod
486 ( p_api_version IN NUMBER,
487 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
488 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
489 x_return_status OUT NOCOPY VARCHAR2,
490 x_msg_count OUT NOCOPY NUMBER,
491 x_msg_data OUT NOCOPY VARCHAR2,
492 p_act_DelvMethod_id IN NUMBER,
493 p_object_version IN NUMBER
494 ) IS
495 l_api_name CONSTANT VARCHAR2(30) := 'Lock_Act_DelvMethod';
496 l_api_version CONSTANT NUMBER := 1.0;
497 -- Status Local Variables
498 l_return_status VARCHAR2(1); -- Return value from procedures
499 l_act_delivery_method_id NUMBER;
500 CURSOR c_act_delivery_method IS
501 SELECT activity_delivery_method_id
502 FROM AMS_ACT_DELIVERY_METHODS
503 WHERE activity_delivery_method_id = p_act_delvmethod_id
504 and object_version_number = p_object_version
505 FOR UPDATE of activity_delivery_method_id NOWAIT;
506 BEGIN
507 -- Standard call to check for call compatibility.
508 IF NOT FND_API.Compatible_API_Call ( l_api_version,
509 p_api_version,
510 l_api_name,
511 G_PACKAGE_NAME)
512 THEN
513 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
514 END IF;
515 -- Initialize message list if p_init_msg_list is set to TRUE.
516 IF FND_API.to_Boolean( p_init_msg_list )
517 THEN
518 FND_MSG_PUB.initialize;
519 END IF;
520 -- Initialize API return status to success
521 x_return_status := FND_API.G_RET_STS_SUCCESS;
522 --
523 -- API body
524 --
525 -- Perform the database operation
526 OPEN c_act_delivery_method;
527 FETCH c_act_delivery_method INTO l_act_delivery_method_id;
528 IF (c_act_delivery_method%NOTFOUND) THEN
529 CLOSE c_act_delivery_method;
530 -- Error, check the msg level and added an error message to the
531 -- API message list
532 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
533 THEN -- MMSG
534 FND_MESSAGE.Set_Name('AMS', 'AMS_API_RECORD_NOT_FOUND');
535 FND_MSG_PUB.Add;
536 END IF;
537 RAISE FND_API.G_EXC_ERROR;
538 END IF;
539 CLOSE c_act_delivery_method;
540 --
541 -- END of API body.
542 --
543 -- Standard call to get message count AND IF count is 1, get message info.
544 FND_MSG_PUB.Count_AND_Get
545 ( p_count => x_msg_count,
546 p_data => x_msg_data,
547 p_encoded => FND_API.G_FALSE
548 );
549 EXCEPTION
550 WHEN FND_API.G_EXC_ERROR THEN
551 x_return_status := FND_API.G_RET_STS_ERROR ;
552 FND_MSG_PUB.Count_AND_Get
553 ( p_count => x_msg_count,
554 p_data => x_msg_data,
555 p_encoded => FND_API.G_FALSE
559 FND_MSG_PUB.Count_AND_Get
556 );
557 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
558 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
560 ( p_count => x_msg_count,
561 p_data => x_msg_data,
562 p_encoded => FND_API.G_FALSE
563 );
564 WHEN AMS_Utility_PVT.resource_locked THEN
565 x_return_status := FND_API.g_ret_sts_error;
566 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
567 FND_MESSAGE.set_name('AMS', 'AMS_API_RESOURCE_LOCKED');
568 FND_MSG_PUB.add;
569 END IF;
570 FND_MSG_PUB.Count_AND_Get
571 ( p_count => x_msg_count,
572 p_data => x_msg_data,
573 p_encoded => FND_API.G_FALSE
574 );
575 WHEN OTHERS THEN
576 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
577 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR )
578 THEN
579 FND_MSG_PUB.Add_Exc_Msg( G_PACKAGE_NAME,l_api_name);
580 END IF;
581 FND_MSG_PUB.Count_AND_Get
582 ( p_count => x_msg_count,
583 p_data => x_msg_data,
584 p_encoded => FND_API.G_FALSE
585 );
586 END Lock_Act_DelvMethod;
587 /*****************************************************************************************/
588 -- Start of Comments
589 --
590 -- NAME
591 -- Validate_Act_DelvMethod
592 --
593 -- PURPOSE
594 -- This procedure is to validate an activity delivery method record
595 --
596 -- HISTORY
597 -- 11/11/1999 rvaka created
598 -- End of Comments
599 PROCEDURE Validate_Act_DelvMethod
600 ( p_api_version IN NUMBER,
601 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
602 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
603 x_return_status OUT NOCOPY VARCHAR2,
604 x_msg_count OUT NOCOPY NUMBER,
605 x_msg_data OUT NOCOPY VARCHAR2,
606 p_act_DelvMethod_rec IN act_DelvMethod_rec_type
607 ) IS
608 l_api_name CONSTANT VARCHAR2(30) := 'Validate_Act_DelvMethod';
609 l_api_version CONSTANT NUMBER := 1.0;
610 l_full_name CONSTANT VARCHAR2(60) := G_PACKAGE_NAME || '.' || l_api_name;
611 -- Status Local Variables
612 l_return_status VARCHAR2(1); -- Return value from procedures
613 l_act_DelvMethod_rec act_DelvMethod_rec_type := p_act_DelvMethod_rec;
614 l_default_act_DelvMethod_rec act_DelvMethod_rec_type;
615 l_act_delivery_method_id NUMBER;
616 BEGIN
617 -- Standard call to check for call compatibility.
618 IF NOT FND_API.Compatible_API_Call ( l_api_version,
619 p_api_version,
620 l_api_name,
621 G_PACKAGE_NAME)
622 THEN
623 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
624 END IF;
625 -- Initialize message list if p_init_msg_list is set to TRUE.
626 IF FND_API.to_Boolean( p_init_msg_list ) THEN
627 FND_MSG_PUB.initialize;
628 END IF;
629 -- Initialize API return status to success
630 x_return_status := FND_API.G_RET_STS_SUCCESS;
631 --
632 -- API body
633 --
634 AMS_Utility_PVT.debug_message(l_full_name||': check items');
635 IF p_validation_level >= JTF_PLSQL_API.g_valid_level_item
636 THEN
637 Validate_Act_DelvMethod_Items
638 ( p_act_DelvMethod_rec => l_act_DelvMethod_rec,
639 p_validation_mode => JTF_PLSQL_API.g_create,
640 x_return_status => l_return_status
641 );
642 -- If any errors happen abort API.
643 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR
644 THEN
645 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
646 ELSIF l_return_status = FND_API.G_RET_STS_ERROR
647 THEN
648 RAISE FND_API.G_EXC_ERROR;
649 END IF;
650 END IF;
651 -- Perform cross attribute validation and missing attribute checks. Record
652 -- level validation.
653 AMS_Utility_PVT.debug_message(l_full_name||': check record level');
654 IF p_validation_level >= JTF_PLSQL_API.g_valid_level_record
655 THEN
656 Validate_Act_DelvMethod_Record(
657 p_act_DelvMethod_rec => l_act_DelvMethod_rec,
658 x_return_status => l_return_status
659 );
660 -- If any errors happen abort API.
661 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
662 RAISE FND_API.G_EXC_ERROR;
663 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
664 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
665 END IF;
666 END IF;
667 --
668 -- END of API body.
669 --
670 -------------------- finish --------------------------
671 FND_MSG_PUB.count_and_get(
672 p_encoded => FND_API.g_false,
673 p_count => x_msg_count,
674 p_data => x_msg_data
675 );
676 EXCEPTION
677 WHEN FND_API.G_EXC_ERROR THEN
678 x_return_status := FND_API.G_RET_STS_ERROR ;
679 FND_MSG_PUB.Count_AND_Get
680 ( p_count => x_msg_count,
681 p_data => x_msg_data,
682 p_encoded => FND_API.G_FALSE
683 );
684 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
685 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
686 FND_MSG_PUB.Count_AND_Get
687 ( p_count => x_msg_count,
688 p_data => x_msg_data,
689 p_encoded => FND_API.G_FALSE
690 );
691 WHEN OTHERS THEN
692 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
693 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR )
694 THEN
698 ( p_count => x_msg_count,
695 FND_MSG_PUB.Add_Exc_Msg( G_PACKAGE_NAME,l_api_name);
696 END IF;
697 FND_MSG_PUB.Count_AND_Get
699 p_data => x_msg_data,
700 p_encoded => FND_API.G_FALSE
701 );
702 END Validate_Act_DelvMethod;
703 /*****************************************************************************************/
704 -- Start of Comments
705 --
706 -- NAME
707 -- Validate_Act_DelvMethod_Items
708 --
709 -- PURPOSE
710 -- This procedure is to validate Delivery Method items
711 -- End of Comments
712 PROCEDURE Validate_Act_DelvMethod_Items
713 ( p_act_DelvMethod_rec IN act_DelvMethod_rec_type,
714 p_validation_mode IN VARCHAR2 := JTF_PLSQL_API.g_create,
715 x_return_status OUT NOCOPY VARCHAR2
716 ) IS
717 l_table_name VARCHAR2(30);
718 l_pk_name VARCHAR2(30);
719 l_pk_value VARCHAR2(30);
720 BEGIN
721 -- Initialize API/Procedure return status to success
722 x_return_status := FND_API.G_RET_STS_SUCCESS;
723 -- Check required parameters
724 IF (p_act_DelvMethod_rec.ACT_DELIVERY_METHOD_USED_BY_ID = FND_API.G_MISS_NUM OR
725 p_act_DelvMethod_rec.ACT_DELIVERY_METHOD_USED_BY_ID IS NULL)
726 THEN
727 -- missing required fields
728 IF FND_MSG_PUB.check_msg_level (FND_MSG_PUB.G_MSG_LVL_ERROR)
729 THEN -- MMSG
730 FND_MESSAGE.set_name('AMS', 'AMS_ACT_DLV_NO_USEDBYID');
731 FND_MSG_PUB.add;
732 END IF;
733 x_return_status := FND_API.G_RET_STS_ERROR;
734 -- If any error happens abort API.
735 RETURN;
736 END IF;
737 -- ARC_ACT_DELIVERY_USED_BY
738 IF (p_act_DelvMethod_rec.ARC_ACT_DELIVERY_USED_BY = FND_API.G_MISS_CHAR OR
739 p_act_DelvMethod_rec.ARC_ACT_DELIVERY_USED_BY IS NULL)
740 THEN
741 -- missing required fields
742 IF FND_MSG_PUB.check_msg_level (FND_MSG_PUB.G_MSG_LVL_ERROR)
743 THEN -- MMSG
744 FND_MESSAGE.set_name('AMS', 'AMS_ACT_DLV_NO_USEDBY');
745 FND_MSG_PUB.add;
746 END IF;
747 x_return_status := FND_API.G_RET_STS_ERROR;
748 -- If any error happens abort API.
749 RETURN;
750 END IF;
751 IF (p_act_DelvMethod_rec.delivery_media_type_code = FND_API.G_MISS_CHAR OR
752 p_act_DelvMethod_rec.delivery_media_type_code IS NULL)
753 THEN
754 -- missing required fields
755 IF FND_MSG_PUB.check_msg_level (FND_MSG_PUB.G_MSG_LVL_ERROR)
756 THEN -- MMSG
757 FND_MESSAGE.set_name('AMS', 'AMS_ACT_DLV_NO_DELV_MEDIA');
758 FND_MSG_PUB.add;
759 END IF;
760 x_return_status := FND_API.G_RET_STS_ERROR;
761 -- If any error happens abort API.
762 RETURN;
763 END IF;
764 -- Validate uniqueness
765 IF p_validation_mode = JTF_PLSQL_API.g_create
766 AND p_act_DelvMethod_rec.activity_delivery_method_id IS NOT NULL
767 THEN
768 IF AMS_Utility_PVT.check_uniqueness(
769 'ams_act_delivery_methods',
770 'activity_delivery_method_id = ' || p_act_DelvMethod_rec.activity_delivery_method_id
771 ) = FND_API.g_false
772 THEN
773 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
774 THEN
775 FND_MESSAGE.set_name('AMS', 'AMS_ACT_DLV_DUPLICATE_ID');
776 FND_MSG_PUB.add;
777 END IF;
778 x_return_status := FND_API.g_ret_sts_error;
779 RETURN;
780 END IF;
781 END IF;
782 --
783 -- Begin Validate Referential
784 --
785 -- Check FK parameter: ACT_DELIVERY_METHOD_USED_BY_ID #1
786 IF p_act_DelvMethod_rec.ACT_DELIVERY_METHOD_USED_BY_ID <> FND_API.g_miss_num
787 THEN
788 IF p_act_DelvMethod_rec.ARC_ACT_DELIVERY_USED_BY = 'EVEH' THEN
789 l_table_name := 'AMS_EVENT_HEADERS_VL';
790 l_pk_name := 'EVENT_HEADER_ID';
791 l_pk_value := p_act_DelvMethod_rec.ACT_DELIVERY_METHOD_USED_BY_ID;
792 AMS_Utility_PVT.debug_message(l_pk_value ||': insert B');
793 IF AMS_Utility_PVT.Check_FK_Exists (
794 p_table_name => l_table_name
795 ,p_pk_name => l_pk_name
796 ,p_pk_value => l_pk_value
797 ) = FND_API.G_FALSE
798 THEN
799 IF FND_MSG_PUB.check_msg_level (FND_MSG_PUB.G_MSG_LVL_ERROR)
800 THEN
801 FND_MESSAGE.set_name('AMS', 'AMS_ACT_DLV_INVALID_REFERENCE');
802 FND_MSG_PUB.add;
803 END IF;
804 x_return_status := FND_API.G_RET_STS_ERROR;
805 -- If any errors happen abort API/Procedure.
806 RETURN;
807 END IF; -- check_fk_exists
808 END IF;
809 END IF;
810
811 -- check for lookups....
812 IF p_act_DelvMethod_rec.arc_act_delivery_used_by <> FND_API.g_miss_char THEN
813 IF AMS_Utility_PVT.check_lookup_exists(
814 p_lookup_type => 'AMS_SYS_ARC_QUALIFIER',
815 p_lookup_code => p_act_DelvMethod_rec.arc_act_delivery_used_by
816 ) = FND_API.g_false
817 THEN
818 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
819 THEN
820 FND_MESSAGE.set_name('AMS', 'AMS_ACT_DLV_BAD_SYS_ARC');
821 FND_MSG_PUB.add;
822 END IF;
823 x_return_status := FND_API.g_ret_sts_error;
824 RETURN;
825 END IF;
826 END IF;
827 IF p_act_DelvMethod_rec.delivery_media_type_code <> FND_API.g_miss_char THEN
828 IF AMS_Utility_PVT.check_lookup_exists(
829 p_lookup_type => 'AMS_DELIVERY_MEDIA_TYPE',
830 p_lookup_code => p_act_DelvMethod_rec.DELIVERY_MEDIA_TYPE_CODE
831 ) = FND_API.g_false
832 THEN
836 FND_MSG_PUB.add;
833 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
834 THEN
835 FND_MESSAGE.set_name('AMS', 'AMS_ACT_DLV_BAD_DELV_MEDIA');
837 END IF;
838 x_return_status := FND_API.g_ret_sts_error;
839 RETURN;
840 END IF;
841 END IF;
842 -- check for flags...no flags.
843 END Validate_Act_DelvMethod_Items;
844 /*****************************************************************************************/
845 -- Start of Comments
846 --
847 -- NAME
848 -- Validate_Act_DelvMethod_Record
849 --
850 -- PURPOSE
851 -- This procedure is to validate delivery method record
852 --
853 -- NOTES
854 -- End of Comments
855 PROCEDURE Validate_Act_DelvMethod_Record(
856 p_act_DelvMethod_rec IN act_DelvMethod_rec_type,
857 x_return_status OUT NOCOPY VARCHAR2
858 ) IS
859 l_api_name CONSTANT VARCHAR2(30) := 'Validate_Act_DelvMethod_Record';
860 l_api_version CONSTANT NUMBER := 1.0;
861 -- Status Local Variables
862 l_return_status VARCHAR2(1); -- Return value from procedures
863 BEGIN
864 -- Standard call to check for call compatibility.
865 IF NOT FND_API.Compatible_API_Call ( l_api_version,
866 l_api_version,
867 l_api_name,
868 G_PACKAGE_NAME)
869 THEN
870 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
871 END IF;
872 -- Initialize API return status to success
873 x_return_status := FND_API.G_RET_STS_SUCCESS;
874 --
875 -- API body
876 NULL;
877 --
878 -- END of API body.
879 --
880 END Validate_Act_DelvMethod_Record;
881 ---------------------------------------------------------------------
882 -- PROCEDURE
883 -- init_act_DelvMethod_rec
884 --
885 -- HISTORY
886 -- 07/26/2000 sugupta Create.
887 ---------------------------------------------------------------------
888 PROCEDURE init_act_DelvMethod_rec(
889 x_act_DelvMethod_rec OUT NOCOPY act_DelvMethod_rec_type
890 )
891 IS
892 BEGIN
893
894 x_act_DelvMethod_rec.ACTIVITY_DELIVERY_METHOD_ID := FND_API.g_miss_num;
895 x_act_DelvMethod_rec.last_update_date := FND_API.g_miss_date;
896 x_act_DelvMethod_rec.last_updated_by := FND_API.g_miss_num;
897 x_act_DelvMethod_rec.creation_date := FND_API.g_miss_date;
898 x_act_DelvMethod_rec.created_by := FND_API.g_miss_num;
899 x_act_DelvMethod_rec.last_update_login := FND_API.g_miss_num;
900 x_act_DelvMethod_rec.object_version_number := FND_API.g_miss_num;
901 x_act_DelvMethod_rec.ACT_DELIVERY_METHOD_USED_BY_ID := FND_API.g_miss_num;
902 x_act_DelvMethod_rec.ARC_ACT_DELIVERY_USED_BY := FND_API.g_miss_char;
903 x_act_DelvMethod_rec.DELIVERY_MEDIA_TYPE_CODE := FND_API.g_miss_char;
904 x_act_DelvMethod_rec.attribute_category := FND_API.g_miss_char;
905 x_act_DelvMethod_rec.attribute1 := FND_API.g_miss_char;
906 x_act_DelvMethod_rec.attribute2 := FND_API.g_miss_char;
907 x_act_DelvMethod_rec.attribute3 := FND_API.g_miss_char;
908 x_act_DelvMethod_rec.attribute4 := FND_API.g_miss_char;
909 x_act_DelvMethod_rec.attribute5 := FND_API.g_miss_char;
910 x_act_DelvMethod_rec.attribute6 := FND_API.g_miss_char;
911 x_act_DelvMethod_rec.attribute7 := FND_API.g_miss_char;
912 x_act_DelvMethod_rec.attribute8 := FND_API.g_miss_char;
913 x_act_DelvMethod_rec.attribute9 := FND_API.g_miss_char;
914 x_act_DelvMethod_rec.attribute10 := FND_API.g_miss_char;
915 x_act_DelvMethod_rec.attribute11 := FND_API.g_miss_char;
916 x_act_DelvMethod_rec.attribute12 := FND_API.g_miss_char;
917 x_act_DelvMethod_rec.attribute13 := FND_API.g_miss_char;
918 x_act_DelvMethod_rec.attribute14 := FND_API.g_miss_char;
919 x_act_DelvMethod_rec.attribute15 := FND_API.g_miss_char;
920 END init_act_DelvMethod_rec;
921
922 PROCEDURE complete_act_DelvMethod_rec(
923 p_act_DelvMethod_rec IN act_DelvMethod_rec_type,
924 x_act_DelvMethod_rec OUT NOCOPY act_DelvMethod_rec_type
925 ) IS
926 CURSOR c_dlv IS
927 SELECT *
928 FROM ams_act_delivery_methods
929 WHERE activity_delivery_method_id = p_act_DelvMethod_rec.activity_delivery_method_id;
930 l_act_DelvMethod_rec c_dlv%ROWTYPE;
931 BEGIN
932 x_act_DelvMethod_rec := p_act_DelvMethod_rec;
933 OPEN c_dlv;
934 FETCH c_dlv INTO l_act_DelvMethod_rec;
935 IF c_dlv%NOTFOUND THEN
936 CLOSE c_dlv;
937 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
938 FND_MESSAGE.set_name('AMS', 'AMS_API_RECORD_NOT_FOUND');
939 FND_MSG_PUB.add;
940 END IF;
941 RAISE FND_API.g_exc_error;
942 END IF;
943 CLOSE c_dlv;
944 IF p_act_DelvMethod_rec.ACT_DELIVERY_METHOD_USED_BY_ID = FND_API.g_miss_num THEN
945 x_act_DelvMethod_rec.ACT_DELIVERY_METHOD_USED_BY_ID :=l_act_DelvMethod_rec.ACT_DELIVERY_METHOD_USED_BY_ID;
946 END IF;
947 IF p_act_DelvMethod_rec.ARC_ACT_DELIVERY_USED_BY = FND_API.g_miss_char THEN
948 x_act_DelvMethod_rec.ARC_ACT_DELIVERY_USED_BY := l_act_DelvMethod_rec.ARC_ACT_DELIVERY_USED_BY;
949 END IF;
950 IF p_act_DelvMethod_rec.delivery_media_type_code = FND_API.g_miss_CHAR THEN
951 x_act_DelvMethod_rec.delivery_media_type_code := l_act_DelvMethod_rec.delivery_media_type_code;
952 END IF;
953 IF p_act_DelvMethod_rec.ATTRIBUTE_CATEGORY = FND_API.g_miss_char THEN
954 x_act_DelvMethod_rec.ATTRIBUTE_CATEGORY := l_act_DelvMethod_rec.ATTRIBUTE_CATEGORY;
955 END IF;
956 IF p_act_DelvMethod_rec.ATTRIBUTE1 = FND_API.g_miss_char THEN
957 x_act_DelvMethod_rec.ATTRIBUTE1 := l_act_DelvMethod_rec.ATTRIBUTE1;
958 END IF;
959 IF p_act_DelvMethod_rec.ATTRIBUTE2 = FND_API.g_miss_char THEN
960 x_act_DelvMethod_rec.ATTRIBUTE2 := l_act_DelvMethod_rec.ATTRIBUTE2;
961 END IF;
962 IF p_act_DelvMethod_rec.ATTRIBUTE3 = FND_API.g_miss_char THEN
963 x_act_DelvMethod_rec.ATTRIBUTE3 := l_act_DelvMethod_rec.ATTRIBUTE3;
964 END IF;
965 IF p_act_DelvMethod_rec.ATTRIBUTE4 = FND_API.g_miss_char THEN
966 x_act_DelvMethod_rec.ATTRIBUTE4 := l_act_DelvMethod_rec.ATTRIBUTE4;
967 END IF;
968 IF p_act_DelvMethod_rec.ATTRIBUTE5 = FND_API.g_miss_char THEN
969 x_act_DelvMethod_rec.ATTRIBUTE5 := l_act_DelvMethod_rec.ATTRIBUTE5;
970 END IF;
971 IF p_act_DelvMethod_rec.ATTRIBUTE6 = FND_API.g_miss_char THEN
972 x_act_DelvMethod_rec.ATTRIBUTE6 := l_act_DelvMethod_rec.ATTRIBUTE6;
973 END IF;
974 IF p_act_DelvMethod_rec.ATTRIBUTE7 = FND_API.g_miss_char THEN
975 x_act_DelvMethod_rec.ATTRIBUTE7 := l_act_DelvMethod_rec.ATTRIBUTE7;
976 END IF;
977 IF p_act_DelvMethod_rec.ATTRIBUTE8 = FND_API.g_miss_char THEN
978 x_act_DelvMethod_rec.ATTRIBUTE8 := l_act_DelvMethod_rec.ATTRIBUTE8;
979 END IF;
980 IF p_act_DelvMethod_rec.ATTRIBUTE9 = FND_API.g_miss_char THEN
981 x_act_DelvMethod_rec.ATTRIBUTE9 := l_act_DelvMethod_rec.ATTRIBUTE9;
982 END IF;
983 IF p_act_DelvMethod_rec.ATTRIBUTE10 = FND_API.g_miss_char THEN
984 x_act_DelvMethod_rec.ATTRIBUTE10 := l_act_DelvMethod_rec.ATTRIBUTE10;
985 END IF;
986 IF p_act_DelvMethod_rec.ATTRIBUTE11 = FND_API.g_miss_char THEN
987 x_act_DelvMethod_rec.ATTRIBUTE11 := l_act_DelvMethod_rec.ATTRIBUTE11;
988 END IF;
989 IF p_act_DelvMethod_rec.ATTRIBUTE11 = FND_API.g_miss_char THEN
990 x_act_DelvMethod_rec.ATTRIBUTE11 := l_act_DelvMethod_rec.ATTRIBUTE11;
991 END IF;
992 IF p_act_DelvMethod_rec.ATTRIBUTE12 = FND_API.g_miss_char THEN
993 x_act_DelvMethod_rec.ATTRIBUTE12 := l_act_DelvMethod_rec.ATTRIBUTE12;
994 END IF;
995 IF p_act_DelvMethod_rec.ATTRIBUTE13 = FND_API.g_miss_char THEN
996 x_act_DelvMethod_rec.ATTRIBUTE13 := l_act_DelvMethod_rec.ATTRIBUTE13;
997 END IF;
998 IF p_act_DelvMethod_rec.ATTRIBUTE14 = FND_API.g_miss_char THEN
999 x_act_DelvMethod_rec.ATTRIBUTE14 := l_act_DelvMethod_rec.ATTRIBUTE14;
1000 END IF;
1001 IF p_act_DelvMethod_rec.ATTRIBUTE15 = FND_API.g_miss_char THEN
1002 x_act_DelvMethod_rec.ATTRIBUTE15 := l_act_DelvMethod_rec.ATTRIBUTE15;
1003 END IF;
1004 END complete_act_DelvMethod_rec;
1005 END AMS_ActDelvMethod_PVT;