[Home] [Help]
PACKAGE BODY: APPS.PV_PRGM_PTR_TYPES_PVT
Source
1 PACKAGE BODY PV_PRGM_PTR_TYPES_PVT as
2 /* $Header: pvxvprpb.pls 115.5 2003/01/17 00:51:31 speddu ship $ */
3 -- ===============================================================
4 -- Start of Comments
5 -- Package name
6 -- PV_PRGM_PTR_TYPES_PVT
7 -- Purpose
8 --
9 -- History
10 -- 28-FEB-2002 Paul.Ukken Created
11 -- 29-APR-2002 Peter.Nixon Modified
12 -- 14-JUN-2002 Karen.Tsao Modified to reverse logic of G_MISS_XXX and NULL.
13 --
14 -- NOTE
15 --
16 -- Copyright (c) 2002 Oracle Corporation Redwood Shores, California, USA
17 -- All rights reserved.
18 --
19 -- End of Comments
20 -- ===============================================================
21
22
23 G_PKG_NAME CONSTANT VARCHAR2(30) := 'PV_PRGM_PTR_TYPES_PVT';
24 G_FILE_NAME CONSTANT VARCHAR2(12) := 'pvxvprpb.pls';
25
26
27 PV_DEBUG_HIGH_ON CONSTANT boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_HIGH);
28 PV_DEBUG_LOW_ON CONSTANT boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW);
29 PV_DEBUG_MEDIUM_ON CONSTANT boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_MEDIUM);
30
31 PROCEDURE Create_Prgm_Ptr_Type(
32 p_api_version_number IN NUMBER
33 ,p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE
34 ,p_commit IN VARCHAR2 := FND_API.G_FALSE
35 ,p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL
36
37 ,x_return_status OUT NOCOPY VARCHAR2
38 ,x_msg_count OUT NOCOPY NUMBER
39 ,x_msg_data OUT NOCOPY VARCHAR2
40
41 ,p_prgm_ptr_types_rec IN prgm_ptr_types_rec_type := g_miss_prgm_ptr_types_rec
42 ,x_program_partner_types_id OUT NOCOPY NUMBER
43 )
44
45 IS
46 l_api_version_number CONSTANT NUMBER := 1.0;
47 l_api_name CONSTANT VARCHAR2(30) := 'Create_Prgm_Ptr_Type';
48 l_full_name CONSTANT VARCHAR2(60) := g_pkg_name ||'.'|| l_api_name;
49
50 l_return_status VARCHAR2(1);
51 l_prgm_ptr_types_rec prgm_ptr_types_rec_type := p_prgm_ptr_types_rec;
52
53 l_object_version_number NUMBER := 1;
54 l_uniqueness_check VARCHAR2(1);
55
56 CURSOR c_prgm_ptr_types_id_seq IS
57 SELECT PV_PROGRAM_PARTNER_TYPES_s.NEXTVAL
58 FROM dual;
59
60 CURSOR c_prgm_ptr_types_id_seq_exists (l_id IN NUMBER) IS
61 SELECT 'X'
62 FROM PV_PROGRAM_PARTNER_TYPES
63 WHERE PROGRAM_PARTNER_TYPES_ID = l_id;
64
65 BEGIN
66 ---------------Initialize --------------------
67 -- Standard Start of API savepoint
68 SAVEPOINT CREATE_PGM_TGT_PTR_TYP_PVT;
69
70 -- Initialize message list if p_init_msg_list is set to TRUE.
71 IF FND_API.to_Boolean( p_init_msg_list )
72 THEN
73 FND_MSG_PUB.initialize;
74 END IF;
75
76 -- Standard call to check for call compatibility.
77 IF NOT FND_API.Compatible_API_Call (
78 l_api_version_number
79 ,p_api_version_number
80 ,l_api_name
81 ,G_PKG_NAME
82 )
83 THEN
84 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
85 END IF;
86
87 -- Debug Message
88 IF (PV_DEBUG_HIGH_ON) THEN
89
90 PVX_UTILITY_PVT.debug_message('Private API: ' || l_api_name || ' - start');
91 END IF;
92
93
94 -- Initialize API return status to SUCCESS
95 x_return_status := FND_API.G_RET_STS_SUCCESS;
96
97 --------------- validate -------------------------
98
99 IF FND_GLOBAL.User_Id IS NULL THEN
100 FND_MESSAGE.set_name('PV', 'PV_API_USER_PROFILE_MISSING');
101 FND_MSG_PUB.add;
102 RAISE FND_API.G_EXC_ERROR;
103 END IF;
104
105
106 IF p_prgm_ptr_types_rec.program_partner_types_id IS NULL OR
107 p_prgm_ptr_types_rec.program_partner_types_id = FND_API.g_miss_num THEN
108 LOOP
109 -- Get the identifier
110 OPEN c_prgm_ptr_types_id_seq;
111 FETCH c_prgm_ptr_types_id_seq INTO l_prgm_ptr_types_rec.program_partner_types_id;
112 CLOSE c_prgm_ptr_types_id_seq;
113
114 -- Check the uniqueness of the identifier
115 OPEN c_prgm_ptr_types_id_seq_exists(l_prgm_ptr_types_rec.program_partner_types_id);
116 FETCH c_prgm_ptr_types_id_seq_exists INTO l_uniqueness_check;
117 -- Exit when the identifier uniqueness is established
118 EXIT WHEN c_prgm_ptr_types_id_seq_exists%ROWCOUNT = 0;
119 CLOSE c_prgm_ptr_types_id_seq_exists;
120 END LOOP;
121 END IF;
122
123 -- Debug message
124 IF (PV_DEBUG_HIGH_ON) THEN
125
126 PVX_UTILITY_PVT.debug_message('Private API: ' || l_full_name || ' - program_partner_types_id = '|| l_prgm_ptr_types_rec.program_partner_types_id);
127 END IF;
128
129 IF ( p_validation_level >= FND_API.G_VALID_LEVEL_FULL) THEN
130 -- Debug message
131 IF (PV_DEBUG_HIGH_ON) THEN
132
133 PVX_UTILITY_PVT.debug_message('Private API: ' || l_full_name || ' - Validate_Prgm_Ptr_Type');
134 END IF;
135
136 -- Populate the default required items
137 l_prgm_ptr_types_rec.last_update_date := SYSDATE;
138 l_prgm_ptr_types_rec.last_updated_by := FND_GLOBAL.user_id;
139 l_prgm_ptr_types_rec.creation_date := SYSDATE;
140 l_prgm_ptr_types_rec.created_by := FND_GLOBAL.user_id;
141 l_prgm_ptr_types_rec.last_update_login := FND_GLOBAL.conc_login_id;
142 l_prgm_ptr_types_rec.object_version_number := l_object_version_number;
143
144 -- Invoke validation procedures
145 Validate_Prgm_Ptr_Type(
146 p_api_version_number => 1.0
147 ,p_init_msg_list => FND_API.G_FALSE
148 ,p_validation_level => p_validation_level
149 ,p_validation_mode => JTF_PLSQL_API.g_create
150 ,p_prgm_ptr_types_rec => l_prgm_ptr_types_rec
151 ,x_return_status => x_return_status
152 ,x_msg_count => x_msg_count
153 ,x_msg_data => x_msg_data
154 );
155 -- Debug message
156 IF (PV_DEBUG_HIGH_ON) THEN
157
158 PVX_UTILITY_PVT.debug_message('Private API: ' || l_api_name || ' - Validate_Prgm_Ptr_Type return_status = ' || x_return_status );
159 END IF;
160
161 END IF;
162
163 IF x_return_status = FND_API.g_ret_sts_error THEN
164 RAISE FND_API.g_exc_error;
165 ELSIF x_return_status = FND_API.g_ret_sts_unexp_error THEN
166 RAISE FND_API.g_exc_unexpected_error;
167 END IF;
168
169 -- Debug Message
170 IF (PV_DEBUG_HIGH_ON) THEN
171
172 PVX_UTILITY_PVT.debug_message( 'Private API: ' || l_full_name || ' - Calling create table handler');
173 END IF;
174
175 -- Invoke table handler(PV_PRGM_PTR_TYPES_PKG.Insert_Row)
176 PV_PRGM_PTR_TYPES_PKG.Insert_Row(
177 px_program_partner_types_id => l_prgm_ptr_types_rec.program_partner_types_id
178 ,p_PROGRAM_TYPE_ID => l_prgm_ptr_types_rec.PROGRAM_TYPE_ID
179 ,p_partner_type => l_prgm_ptr_types_rec.partner_type
180 ,p_last_update_date => l_prgm_ptr_types_rec.last_update_date
181 ,p_last_updated_by => l_prgm_ptr_types_rec.last_updated_by
182 ,p_creation_date => l_prgm_ptr_types_rec.creation_date
183 ,p_created_by => l_prgm_ptr_types_rec.created_by
184 ,p_last_update_login => l_prgm_ptr_types_rec.last_update_login
185 ,p_object_version_number => l_object_version_number
186 );
187
188 x_program_partner_types_id := l_prgm_ptr_types_rec.program_partner_types_id;
189
190 IF l_return_status = FND_API.g_ret_sts_error THEN
191 RAISE FND_API.g_exc_error;
192 ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
193 RAISE FND_API.g_exc_unexpected_error;
194 END IF;
195
196 FND_MSG_PUB.count_and_get(
197 p_encoded => FND_API.g_false
198 ,p_count => x_msg_count
199 ,p_data => x_msg_data
200 );
201
202 -- Debug Message
203 IF (PV_DEBUG_HIGH_ON) THEN
204
205 PVX_UTILITY_PVT.debug_message('Private API: ' || l_api_name || ' - end');
206 END IF;
207
208 -- Standard check for p_commit
209 IF FND_API.to_Boolean( p_commit ) THEN
210 COMMIT WORK;
211 END IF;
212
213
214 EXCEPTION
215 WHEN FND_API.G_EXC_ERROR THEN
216 ROLLBACK TO CREATE_PGM_TGT_PTR_TYP_PVT;
217 x_return_status := FND_API.G_RET_STS_ERROR;
218 -- Standard call to get message count and if count=1, get the message
219 FND_MSG_PUB.Count_And_Get (
220 p_encoded => FND_API.G_FALSE
221 ,p_count => x_msg_count
222 ,p_data => x_msg_data
223 );
224
225 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
226 ROLLBACK TO CREATE_PGM_TGT_PTR_TYP_PVT;
227 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
228 -- Standard call to get message count and if count=1, get the message
229 FND_MSG_PUB.Count_And_Get (
230 p_encoded => FND_API.G_FALSE
231 ,p_count => x_msg_count
232 ,p_data => x_msg_data
233 );
234
235 WHEN OTHERS THEN
236 ROLLBACK TO CREATE_PGM_TGT_PTR_TYP_PVT;
237 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
238 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
239 THEN
240 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
241 END IF;
242 -- Standard call to get message count and if count=1, get the message
243 FND_MSG_PUB.Count_And_Get (
244 p_encoded => FND_API.G_FALSE
245 ,p_count => x_msg_count
246 ,p_data => x_msg_data
247 );
248 End Create_Prgm_Ptr_Type;
249
250
251 PROCEDURE Update_Prgm_Ptr_Type(
252 p_api_version_number IN NUMBER
253 ,p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE
254 ,p_commit IN VARCHAR2 := FND_API.G_FALSE
255 ,p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL
256
257 ,x_return_status OUT NOCOPY VARCHAR2
258 ,x_msg_count OUT NOCOPY NUMBER
259 ,x_msg_data OUT NOCOPY VARCHAR2
260
261 ,p_prgm_ptr_types_rec IN prgm_ptr_types_rec_type
262 )
263
264 IS
265
266
267 CURSOR c_get_pgm_tgt_ptr_typ(cv_program_partner_types_id NUMBER) IS
268 SELECT *
269 FROM PV_PROGRAM_PARTNER_TYPES
270 WHERE program_partner_types_id = cv_program_partner_types_id;
271
272 l_api_name CONSTANT VARCHAR2(30) := 'Update_Prgm_Ptr_Type';
273 l_full_name CONSTANT VARCHAR2(60) := g_pkg_name ||'.'|| l_api_name;
274 l_api_version_number CONSTANT NUMBER := 1.0;
275
276 -- Local Variables
277 l_ref_prgm_ptr_types_rec c_get_Pgm_Tgt_Ptr_Typ%ROWTYPE ;
278 l_tar_prgm_ptr_types_rec PV_PRGM_PTR_TYPES_PVT.prgm_ptr_types_rec_type := p_prgm_ptr_types_rec;
279
280 BEGIN
281 ---------Initialize ------------------
282
283 -- Standard Start of API savepoint
284 SAVEPOINT UPDATE_PGM_TGT_PTR_TYP_PVT;
285
286 -- Debug Message
287 IF (PV_DEBUG_HIGH_ON) THEN
288
289 PVX_UTILITY_PVT.debug_message('Private API: ' || l_api_name || ' - start');
290 END IF;
291
292 -- Standard call to check for call compatibility.
293 IF NOT FND_API.Compatible_API_Call (l_api_version_number
294 ,p_api_version_number
295 ,l_api_name
296 ,G_PKG_NAME
297 )
298 THEN
299 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
300 END IF;
301
302 -- Initialize message list if p_init_msg_list is set to TRUE.
303 IF FND_API.to_Boolean( p_init_msg_list )
304 THEN
305 FND_MSG_PUB.initialize;
306 END IF;
307
308 -- Initialize API return status to SUCCESS
309 x_return_status := FND_API.G_RET_STS_SUCCESS;
310
311 -- Debug Message
312 IF (PV_DEBUG_HIGH_ON) THEN
313
314 PVX_Utility_PVT.debug_message('Private API: '||l_full_name||' - Open Cursor to Select');
315 END IF;
316
317 OPEN c_get_Pgm_Tgt_Ptr_Typ( l_tar_prgm_ptr_types_rec.program_partner_types_id);
318 FETCH c_get_Pgm_Tgt_Ptr_Typ INTO l_ref_prgm_ptr_types_rec ;
319
320 If ( c_get_Pgm_Tgt_Ptr_Typ%NOTFOUND) THEN
321 FND_MESSAGE.set_name('PV', 'PV_API_MISSING_ENTITY');
322 FND_MESSAGE.set_token('MODE','Update');
323 FND_MESSAGE.set_token('ENTITY','Pgm_Tgt_Ptr_Typ');
324 FND_MESSAGE.set_token('ID',TO_CHAR(l_tar_prgm_ptr_types_rec.program_partner_types_id));
325 FND_MSG_PUB.add;
326 RAISE FND_API.G_EXC_ERROR;
327 END IF;
328
329 -- Debug Message
330 IF (PV_DEBUG_HIGH_ON) THEN
331
332 PVX_Utility_PVT.debug_message('Private API: '||l_full_name||' - Close Cursor');
333 END IF;
334 CLOSE c_get_Pgm_Tgt_Ptr_Typ;
335
336
337 If (l_tar_prgm_ptr_types_rec.object_version_number is NULL or
338 l_tar_prgm_ptr_types_rec.object_version_number = FND_API.G_MISS_NUM ) THEN
339
340 FND_MESSAGE.set_name('PV', 'PV_API_VERSION_MISSING');
341 FND_MESSAGE.set_token('COLUMN','OBJECT_VERSION_NUMBER');
342 FND_MSG_PUB.add;
343 RAISE FND_API.G_EXC_ERROR;
344 End if;
345
346 -- Check Whether record has been changed by someone else
347 If (l_tar_prgm_ptr_types_rec.object_version_number <> l_ref_prgm_ptr_types_rec.object_version_number) Then
348 FND_MESSAGE.set_name('PV', 'PV_API_RECORD_CHANGED');
349 FND_MESSAGE.set_token('VALUE','Pgm_Tgt_Ptr_Typ');
350 FND_MSG_PUB.add;
351 RAISE FND_API.G_EXC_ERROR;
352 End if;
353
354 IF ( P_validation_level >= FND_API.G_VALID_LEVEL_FULL) THEN
355 -- Debug message
356 IF (PV_DEBUG_HIGH_ON) THEN
357
358 PVX_UTILITY_PVT.debug_message('Private API: '||l_full_name||' - Validate_Prgm_Ptr_Type');
359 END IF;
360
361
362 -- Invoke validation procedures
363 Validate_Prgm_Ptr_Type(
364 p_api_version_number => 1.0
365 ,p_init_msg_list => FND_API.G_FALSE
366 ,p_validation_level => p_validation_level
367 ,p_validation_mode => JTF_PLSQL_API.g_update
368 ,p_prgm_ptr_types_rec => p_prgm_ptr_types_rec
369 ,x_return_status => x_return_status
370 ,x_msg_count => x_msg_count
371 ,x_msg_data => x_msg_data
372 );
373 END IF;
374
375 IF x_return_status = FND_API.g_ret_sts_error THEN
376 RAISE FND_API.g_exc_error;
377 ELSIF x_return_status = FND_API.g_ret_sts_unexp_error THEN
378 RAISE FND_API.g_exc_unexpected_error;
379 END IF;
380
381 -- replace g_miss_char/num/date with current column values
382 Complete_Rec(
383 p_prgm_ptr_types_rec => p_prgm_ptr_types_rec
384 ,x_complete_rec => l_tar_prgm_ptr_types_rec
385 );
386
387 -- Debug Message
388 IF (PV_DEBUG_HIGH_ON) THEN
389
390 PVX_Utility_PVT.debug_message('Private API: '||l_full_name||' - Calling update table handler');
391 END IF;
392
393 -- Invoke table handler(PV_PRGM_PTR_TYPES_PKG.Update_Row)
394 PV_PRGM_PTR_TYPES_PKG.Update_Row(
395 p_program_partner_types_id => p_prgm_ptr_types_rec.program_partner_types_id
396 ,p_PROGRAM_TYPE_ID => p_prgm_ptr_types_rec.PROGRAM_TYPE_ID
397 ,p_partner_type => p_prgm_ptr_types_rec.partner_type
398 ,p_last_update_date => SYSDATE
399 ,p_last_updated_by => FND_GLOBAL.user_id
400 ,p_last_update_login => FND_GLOBAL.conc_login_id
401 ,p_object_version_number => p_prgm_ptr_types_rec.object_version_number
402 );
403
404 -- Check for commit
405 IF FND_API.to_boolean(p_commit) THEN
406 COMMIT;
407 END IF;
408
409 FND_MSG_PUB.count_and_get(
410 p_encoded => FND_API.g_false
411 ,p_count => x_msg_count
412 ,p_data => x_msg_data
413 );
414
415 -- Debug Message
416 IF (PV_DEBUG_HIGH_ON) THEN
417
418 PVX_UTILITY_PVT.debug_message('Private API: ' || l_api_name || ' - end');
419 END IF;
420
421 EXCEPTION
422 WHEN FND_API.G_EXC_ERROR THEN
423 ROLLBACK TO UPDATE_PGM_TGT_PTR_TYP_PVT;
424 x_return_status := FND_API.G_RET_STS_ERROR;
425 -- Standard call to get message count and if count=1, get the message
426 FND_MSG_PUB.Count_And_Get (
427 p_encoded => FND_API.G_FALSE
428 ,p_count => x_msg_count
429 ,p_data => x_msg_data
430 );
431
432 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
433 ROLLBACK TO UPDATE_PGM_TGT_PTR_TYP_PVT;
434 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
435 -- Standard call to get message count and if count=1, get the message
436 FND_MSG_PUB.Count_And_Get (
437 p_encoded => FND_API.G_FALSE
438 ,p_count => x_msg_count
439 ,p_data => x_msg_data
440 );
441
442 WHEN OTHERS THEN
443 ROLLBACK TO UPDATE_PGM_TGT_PTR_TYP_PVT;
444 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
445 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
446 THEN
447 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
448 END IF;
449 -- Standard call to get message count and if count=1, get the message
450 FND_MSG_PUB.Count_And_Get (
451 p_encoded => FND_API.G_FALSE
452 ,p_count => x_msg_count
453 ,p_data => x_msg_data
454 );
455
456 END Update_Prgm_Ptr_Type;
457
458
459
460 PROCEDURE Delete_Prgm_Ptr_Type(
461 p_api_version_number IN NUMBER
462 ,p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE
463 ,p_commit IN VARCHAR2 := FND_API.G_FALSE
464 ,p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL
465 ,x_return_status OUT NOCOPY VARCHAR
466 ,x_msg_count OUT NOCOPY NUMBER
467 ,x_msg_data OUT NOCOPY VARCHAR2
468 ,p_program_partner_types_id IN NUMBER
469 ,p_object_version_number IN NUMBER
470 )
471
472 IS
473
474 l_api_name CONSTANT VARCHAR2(30) := 'Delete_Prgm_Ptr_Type';
475 l_full_name CONSTANT VARCHAR2(60) := g_pkg_name ||'.'|| l_api_name;
476 l_api_version_number CONSTANT NUMBER := 1.0;
477
478 BEGIN
479
480 ---- Initialize----------------
481
482 -- Standard Start of API savepoint
483 SAVEPOINT DELETE_PGM_TGT_PTR_TYP_PVT;
484
485 -- Debug Message
486 IF (PV_DEBUG_HIGH_ON) THEN
487
488 PVX_UTILITY_PVT.debug_message('Private API: ' || l_api_name || ' - start');
489 END IF;
490
491 -- Standard call to check for call compatibility.
492 IF NOT FND_API.Compatible_API_Call (l_api_version_number
493 ,p_api_version_number
494 ,l_api_name
495 ,G_PKG_NAME
496 )
497 THEN
498 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
499 END IF;
500
501 -- Initialize message list if p_init_msg_list is set to TRUE.
502 IF FND_API.to_Boolean( p_init_msg_list )
503 THEN
504 FND_MSG_PUB.initialize;
505 END IF;
506
507 -- Initialize API return status to SUCCESS
508 x_return_status := FND_API.G_RET_STS_SUCCESS;
509
510 -- Debug Message
511 IF (PV_DEBUG_HIGH_ON) THEN
512
513 PVX_UTILITY_PVT.debug_message( 'Private API: Calling delete table handler');
514 END IF;
515
516 -- Invoke table handler(PV_PRGM_PTR_TYPES_PKG.Delete_Row)
517 PV_PRGM_PTR_TYPES_PKG.Delete_Row(
518 p_program_partner_types_id => p_program_partner_types_id
519 ,p_object_version_number => p_object_version_number
520 );
521
522 -- Check for commit
523 IF FND_API.to_boolean(p_commit) THEN
524 COMMIT;
525 END IF;
526
527 FND_MSG_PUB.count_and_get(
528 p_encoded => FND_API.g_false
529 ,p_count => x_msg_count
530 ,p_data => x_msg_data
531 );
532
533 -- Debug Message
534 IF (PV_DEBUG_HIGH_ON) THEN
535
536 PVX_UTILITY_PVT.debug_message('Private API: ' || l_api_name || ' - end');
537 END IF;
538
539 EXCEPTION
540 WHEN FND_API.G_EXC_ERROR THEN
541 --ROLLBACK TO DELETE_PGM_TGT_PTR_TYP_PVT;
542 ROLLBACK TO DELETE_PGM_TGT_PTR_TYP_PVT;
543 x_return_status := FND_API.G_RET_STS_ERROR;
544 -- Standard call to get message count and if count=1, get the message
545 FND_MSG_PUB.Count_And_Get (
546 p_encoded => FND_API.G_FALSE
547 ,p_count => x_msg_count
548 ,p_data => x_msg_data
549 );
550
551 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
552 ROLLBACK TO DELETE_PGM_TGT_PTR_TYP_PVT;
553 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
554 -- Standard call to get message count and if count=1, get the message
555 FND_MSG_PUB.Count_And_Get (
556 p_encoded => FND_API.G_FALSE
557 ,p_count => x_msg_count
558 ,p_data => x_msg_data
559 );
560
561 WHEN OTHERS THEN
562 ROLLBACK TO DELETE_PGM_TGT_PTR_TYP_PVT;
563 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
564 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
565 THEN
566 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
567 END IF;
568 -- Standard call to get message count and if count=1, get the message
569 FND_MSG_PUB.Count_And_Get (
570 p_encoded => FND_API.G_FALSE
571 ,p_count => x_msg_count
572 ,p_data => x_msg_data
573 );
574
575 End Delete_Prgm_Ptr_Type;
576
577
578
579
580 PROCEDURE Lock_Prgm_Ptr_Type(
581 p_api_version_number IN NUMBER
582 ,p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE
583
584 ,x_return_status OUT NOCOPY VARCHAR2
585 ,x_msg_count OUT NOCOPY NUMBER
586 ,x_msg_data OUT NOCOPY VARCHAR2
587
588 ,p_program_partner_types_id IN NUMBER
589 ,p_object_version IN NUMBER
590 )
591
592 IS
593 l_api_name CONSTANT VARCHAR2(30) := 'Lock_Prgm_Ptr_Type';
594 l_api_version_number CONSTANT NUMBER := 1.0;
595 l_full_name CONSTANT VARCHAR2(60) := g_pkg_name ||'.'|| l_api_name;
596 l_program_partner_types_id NUMBER;
597
598 CURSOR c_Pgm_Tgt_Ptr_Typ IS
599 SELECT PROGRAM_PARTNER_TYPES_ID
600 FROM PV_PROGRAM_PARTNER_TYPES
601 WHERE PROGRAM_PARTNER_TYPES_ID = p_PROGRAM_PARTNER_TYPES_ID
602 AND object_version_number = p_object_version
603 FOR UPDATE NOWAIT;
604
605 BEGIN
606
607 -- Debug Message
608 IF (PV_DEBUG_HIGH_ON) THEN
609
610 PVX_UTILITY_PVT.debug_message('Private API: ' || l_full_name || ' - start');
611 END IF;
612
613 -- Initialize message list if p_init_msg_list is set to TRUE.
614 IF FND_API.to_Boolean( p_init_msg_list )
615 THEN
616 FND_MSG_PUB.initialize;
617 END IF;
618
619 -- Standard call to check for call compatibility.
620 IF NOT FND_API.Compatible_API_Call (
621 l_api_version_number
622 ,p_api_version_number
623 ,l_api_name
624 ,G_PKG_NAME
625 )
626 THEN
627 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
628 END IF;
629
630
631 -- Initialize API return status to SUCCESS
632 x_return_status := FND_API.G_RET_STS_SUCCESS;
633
634
635 ------------------------ lock -------------------------
636 OPEN c_Pgm_Tgt_Ptr_Typ;
637
638 FETCH c_Pgm_Tgt_Ptr_Typ INTO l_program_partner_types_id;
639
640 IF (c_Pgm_Tgt_Ptr_Typ%NOTFOUND) THEN
641 CLOSE c_Pgm_Tgt_Ptr_Typ;
642 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
643 FND_MESSAGE.set_name('AMS', 'AMS_API_RECORD_NOT_FOUND');
644 FND_MSG_PUB.add;
645 END IF;
646 RAISE FND_API.g_exc_error;
647 END IF;
648
649 CLOSE c_Pgm_Tgt_Ptr_Typ;
650
651 -------------------- finish --------------------------
652 FND_MSG_PUB.count_and_get(
653 p_encoded => FND_API.g_false
654 ,p_count => x_msg_count
655 ,p_data => x_msg_data
656 );
657
658 -- Debug Message
659 IF (PV_DEBUG_HIGH_ON) THEN
660
661 PVX_UTILITY_PVT.debug_message('Private API: ' || l_api_name || ' - end');
662 END IF;
663
664 EXCEPTION
665 /*
666 WHEN PVX_Utility_PVT.resource_locked THEN
667 x_return_status := FND_API.g_ret_sts_error;
668 PVX_Utility_PVT.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
669 */
670 WHEN FND_API.G_EXC_ERROR THEN
671 ROLLBACK TO LOCK_PGM_TGT_PTR_TYP_PVT;
672 x_return_status := FND_API.G_RET_STS_ERROR;
673 -- Standard call to get message count and if count=1, get the message
674 FND_MSG_PUB.Count_And_Get (
675 p_encoded => FND_API.G_FALSE
676 ,p_count => x_msg_count
677 ,p_data => x_msg_data
678 );
679
680 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
681 ROLLBACK TO LOCK_Pgm_Tgt_Ptr_Typ_PVT;
682 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
683 -- Standard call to get message count and if count=1, get the message
684 FND_MSG_PUB.Count_And_Get (
685 p_encoded => FND_API.G_FALSE
686 ,p_count => x_msg_count
687 ,p_data => x_msg_data
688 );
689
690 WHEN OTHERS THEN
691 ROLLBACK TO LOCK_PGM_TGT_PTR_TYP_PVT;
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
695 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
696 END IF;
697 -- Standard call to get message count and if count=1, get the message
698 FND_MSG_PUB.Count_And_Get (
699 p_encoded => FND_API.G_FALSE
700 ,p_count => x_msg_count
701 ,p_data => x_msg_data
702 );
703 End Lock_Prgm_Ptr_Type;
704
705
706 PROCEDURE Check_UK_Items(
707 p_prgm_ptr_types_rec IN prgm_ptr_types_rec_type
708 ,p_validation_mode IN VARCHAR2 := JTF_PLSQL_API.g_create
709 ,x_return_status OUT NOCOPY VARCHAR2
710 )
711
712 IS
713
714 l_valid_flag VARCHAR2(1);
715
716 BEGIN
717
718 x_return_status := FND_API.g_ret_sts_success;
719 IF p_validation_mode = JTF_PLSQL_API.g_create THEN
720
721 l_valid_flag := PVX_Utility_PVT.check_uniqueness(
722 'PV_PROGRAM_PARTNER_TYPES'
723 ,'PROGRAM_PARTNER_TYPES_ID = ''' || p_prgm_ptr_types_rec.PROGRAM_PARTNER_TYPES_ID ||''''
724 );
725
726 IF l_valid_flag = FND_API.g_false THEN
727 FND_MESSAGE.set_name('PV', 'PV_API_DUPLICATE_ENTITY');
728 FND_MESSAGE.set_token('ID',to_char(p_prgm_ptr_types_rec.PROGRAM_PARTNER_TYPES_ID) );
729 FND_MESSAGE.set_token('ENTITY','Pgm_Tgt_Ptr_Typ');
730 FND_MSG_PUB.add;
731 x_return_status := FND_API.g_ret_sts_error;
732 RETURN;
733 END IF;
734
735 -- Debug message
736 IF (PV_DEBUG_HIGH_ON) THEN
737
738 PVX_UTILITY_PVT.debug_message('- In Check_UK_Items API Before PROGRAM_TYPE_ID check' );
739 END IF;
740
741 l_valid_flag := PVX_Utility_PVT.check_uniqueness(
742 'PV_PROGRAM_PARTNER_TYPES'
743 ,'PROGRAM_TYPE_ID = ''' || p_prgm_ptr_types_rec.PROGRAM_TYPE_ID ||''' AND PARTNER_TYPE = ''' || p_prgm_ptr_types_rec.PARTNER_TYPE || ''''
744 );
745
746 IF l_valid_flag = FND_API.g_false THEN
747 FND_MESSAGE.set_name('PV', 'PV_API_DUPLICATE_ENTITY');
748 FND_MESSAGE.set_token('ID',to_char(p_prgm_ptr_types_rec.PROGRAM_TYPE_ID) );
749 FND_MESSAGE.set_token('ENTITY','Pgm_Tgt_Ptr_Typ');
750 FND_MSG_PUB.add;
751 x_return_status := FND_API.g_ret_sts_error;
752 RETURN;
753 END IF;
754 END IF;
755
756 END Check_UK_Items;
757
758
759
760 PROCEDURE Check_Req_Items(
761 p_prgm_ptr_types_rec IN prgm_ptr_types_rec_type
762 ,p_validation_mode IN VARCHAR2 := JTF_PLSQL_API.g_create
763 ,x_return_status OUT NOCOPY VARCHAR2
764 )
765
766 IS
767
768 BEGIN
769
770 x_return_status := FND_API.g_ret_sts_success;
771
772 IF p_validation_mode = JTF_PLSQL_API.g_create THEN
773
774 IF p_prgm_ptr_types_rec.program_partner_types_id = FND_API.g_miss_num
775 OR p_prgm_ptr_types_rec.program_partner_types_id IS NULL THEN
776 FND_MESSAGE.set_name('PV', 'PV_API_MISSING_REQ_COLUMN');
777 FND_MESSAGE.set_token('COLUMN','PROGRAM_PARTNER_TYPES_ID');
778 FND_MSG_PUB.add;
779 x_return_status := FND_API.g_ret_sts_error;
780 RETURN;
781 END IF;
782
783
784 IF p_prgm_ptr_types_rec.PROGRAM_TYPE_ID = FND_API.g_miss_num
785 OR p_prgm_ptr_types_rec.PROGRAM_TYPE_ID IS NULL THEN
786 FND_MESSAGE.set_name('PV', 'PV_API_MISSING_REQ_COLUMN');
787 FND_MESSAGE.set_token('COLUMN','PROGRAM_TYPE_ID');
788 FND_MSG_PUB.add;
789 x_return_status := FND_API.g_ret_sts_error;
790 RETURN;
791 END IF;
792
793
794 IF p_prgm_ptr_types_rec.partner_type = FND_API.g_miss_char
795 OR p_prgm_ptr_types_rec.partner_type IS NULL THEN
796 FND_MESSAGE.set_name('PV', 'PV_API_MISSING_REQ_COLUMN');
797 FND_MESSAGE.set_token('COLUMN','PARTNER_TYPE');
798 FND_MSG_PUB.add;
799 x_return_status := FND_API.g_ret_sts_error;
800 RETURN;
801 END IF;
802
803
804 IF p_prgm_ptr_types_rec.last_update_date = FND_API.g_miss_date
805 OR p_prgm_ptr_types_rec.last_update_date IS NULL THEN
806 FND_MESSAGE.set_name('PV', 'PV_API_MISSING_REQ_COLUMN');
807 FND_MESSAGE.set_token('COLUMN','LAST_UPDATE_DATE');
808 FND_MSG_PUB.add;
809 x_return_status := FND_API.g_ret_sts_error;
810 RETURN;
811 END IF;
812
813
814 IF p_prgm_ptr_types_rec.last_updated_by = FND_API.g_miss_num
815 OR p_prgm_ptr_types_rec.last_updated_by IS NULL THEN
816 FND_MESSAGE.set_name('PV', 'PV_API_MISSING_REQ_COLUMN');
817 FND_MESSAGE.set_token('COLUMN','LAST_UPDATED_BY');
818 FND_MSG_PUB.add;
819 x_return_status := FND_API.g_ret_sts_error;
820 RETURN;
821 END IF;
822
823
824 IF p_prgm_ptr_types_rec.creation_date = FND_API.g_miss_date
825 OR p_prgm_ptr_types_rec.creation_date IS NULL THEN
826 FND_MESSAGE.set_name('PV', 'PV_API_MISSING_REQ_COLUMN');
827 FND_MESSAGE.set_token('COLUMN','CREATION_DATE');
828 FND_MSG_PUB.add;
829 x_return_status := FND_API.g_ret_sts_error;
830 RETURN;
831 END IF;
832
833
834 IF p_prgm_ptr_types_rec.created_by = FND_API.g_miss_num
835 OR p_prgm_ptr_types_rec.created_by IS NULL THEN
836
837 FND_MESSAGE.set_name('PV', 'PV_API_MISSING_REQ_COLUMN');
838 FND_MESSAGE.set_token('COLUMN','CREATED_BY');
839 FND_MSG_PUB.add;
840 x_return_status := FND_API.g_ret_sts_error;
841 RETURN;
842 END IF;
843
844
845 IF p_prgm_ptr_types_rec.last_update_login = FND_API.g_miss_num
846 OR p_prgm_ptr_types_rec.last_update_login IS NULL THEN
847 FND_MESSAGE.set_name('PV', 'PV_API_MISSING_REQ_COLUMN');
848 FND_MESSAGE.set_token('COLUMN','LAST_UPDATE_LOGIN');
849 FND_MSG_PUB.add;
850 x_return_status := FND_API.g_ret_sts_error;
851 RETURN;
852 END IF;
853
854
855 IF p_prgm_ptr_types_rec.object_version_number = FND_API.g_miss_num
856 OR p_prgm_ptr_types_rec.object_version_number IS NULL THEN
857 FND_MESSAGE.set_name('PV', 'PV_API_MISSING_REQ_COLUMN');
858 FND_MESSAGE.set_token('COLUMN','OBJECT_VERSION_NUMBER');
859 FND_MSG_PUB.add;
860 x_return_status := FND_API.g_ret_sts_error;
861 RETURN;
862 END IF;
863 ELSE
864
865
866 IF p_prgm_ptr_types_rec.program_partner_types_id IS NULL THEN
867 FND_MESSAGE.set_name('PV', 'PV_API_MISSING_REQ_COLUMN');
868 FND_MESSAGE.set_token('COLUMN','PROGRAM_PARTNER_TYPES_ID');
869 FND_MSG_PUB.add;
870 x_return_status := FND_API.g_ret_sts_error;
871 RETURN;
872 END IF;
873
874
875 IF p_prgm_ptr_types_rec.object_version_number IS NULL THEN
876 FND_MESSAGE.set_name('PV', 'PV_API_MISSING_REQ_COLUMN');
877 FND_MESSAGE.set_token('COLUMN','OBJECT_VERSION_NUMBER');
878 FND_MSG_PUB.add;
879 x_return_status := FND_API.g_ret_sts_error;
880 RETURN;
881 END IF;
882 END IF;
883
884 END Check_Req_Items;
885
886
887
888 PROCEDURE Check_FK_Items(
889 p_prgm_ptr_types_rec IN prgm_ptr_types_rec_type
890 ,x_return_status OUT NOCOPY VARCHAR2
891 )
892 IS
893 BEGIN
894 x_return_status := FND_API.g_ret_sts_success;
895
896 ----------------------- PROGRAM_TYPE_ID ------------------------
897 IF (p_prgm_ptr_types_rec.PROGRAM_TYPE_ID <> FND_API.g_miss_num and
898 p_prgm_ptr_types_rec.PROGRAM_TYPE_ID IS NOT NULL ) THEN
899
900 -- Debug message
901 IF (PV_DEBUG_HIGH_ON) THEN
902
903 PVX_UTILITY_PVT.debug_message('- In Check_FK_Items before PROGRAM_TYPE_ID check : PROGRAM_TYPE_ID = ' || p_prgm_ptr_types_rec.PROGRAM_TYPE_ID);
904 END IF;
905
906 IF PVX_Utility_PVT.check_fk_exists(
907 'PV_PARTNER_PROGRAM_TYPE_B', -- Parent schema object having the primary key
908 'PROGRAM_TYPE_ID', -- Column name in the parent object that maps to the fk value
909 p_prgm_ptr_types_rec.PROGRAM_TYPE_ID, -- Value of fk to be validated against the parent object's pk column
910 PVX_utility_PVT.g_number, -- datatype of fk
911 NULL
912 ) = FND_API.g_false
913 THEN
914 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
915 THEN
916 FND_MESSAGE.set_name('PV', 'PV_NOT_A_VALID_PRGM_PTR_TYPE');
917 FND_MSG_PUB.add;
918 END IF;
919
920 x_return_status := FND_API.g_ret_sts_error;
921 RETURN;
922 END IF;
923 END IF;
924
925 -- Debug message
926 IF (PV_DEBUG_HIGH_ON) THEN
927
928 PVX_UTILITY_PVT.debug_message('- In Check_FK_Items after PROGRAM_TYPE_ID FK check ');
929 END IF;
930
931 END Check_FK_Items;
932
933
934
935
936 PROCEDURE Check_Lookup_Items(
937 p_prgm_ptr_types_rec IN prgm_ptr_types_rec_type
938 ,x_return_status OUT NOCOPY VARCHAR2
939 )
940
941 IS
942
943 BEGIN
944
945 x_return_status := FND_API.g_ret_sts_success;
946
947 -- Enter custom code here
948
949 END Check_Lookup_Items;
950
951
952
953
954 PROCEDURE Check_Items (
955 p_prgm_ptr_types_rec IN prgm_ptr_types_rec_type
956 ,p_validation_mode IN VARCHAR2
957 ,x_return_status OUT NOCOPY VARCHAR2
958 )
959
960 IS
961
962 l_api_name CONSTANT VARCHAR2(30) := ' Check_Items';
963 l_full_name CONSTANT VARCHAR2(60) := g_pkg_name ||'.'|| l_api_name;
964
965 BEGIN
966
967 -- Debug message
968 IF (PV_DEBUG_HIGH_ON) THEN
969
970 PVX_UTILITY_PVT.debug_message('- Check_Items API prior to Check_Req_Items call');
971 END IF;
972
973 -- Check Items Required/NOT NULL API calls
974 Check_Req_Items(
975 p_prgm_ptr_types_rec => p_prgm_ptr_types_rec
976 ,p_validation_mode => p_validation_mode
977 ,x_return_status => x_return_status
978 );
979
980 -- Debug message
981 IF (PV_DEBUG_HIGH_ON) THEN
982
983 PVX_UTILITY_PVT.debug_message('- After Check_Req_Items. return status = ' || x_return_status);
984 END IF;
985
986 IF x_return_status <> FND_API.g_ret_sts_success THEN
987 RETURN;
988 END IF;
989
990 -- Debug message
991 IF (PV_DEBUG_HIGH_ON) THEN
992
993 PVX_UTILITY_PVT.debug_message('- Check_Items API prior to Check_UK_Items call');
994 END IF;
995
996 -- Check Items Uniqueness API calls
997 Check_UK_Items(
998 p_prgm_ptr_types_rec => p_prgm_ptr_types_rec
999 ,p_validation_mode => p_validation_mode
1000 ,x_return_status => x_return_status
1001 );
1002
1003 -- Debug message
1004 IF (PV_DEBUG_HIGH_ON) THEN
1005
1006 PVX_UTILITY_PVT.debug_message('- After Check_UK_Items. return status = ' || x_return_status);
1007 END IF;
1008
1009 IF x_return_status <> FND_API.g_ret_sts_success THEN
1010 RETURN;
1011 END IF;
1012
1013 -- Debug message
1014 IF (PV_DEBUG_HIGH_ON) THEN
1015
1016 PVX_UTILITY_PVT.debug_message('- Check_Items API prior to Check_FK_Items call');
1017 END IF;
1018
1019 -- Check Items Foreign Keys API calls
1020 Check_FK_Items(
1021 p_prgm_ptr_types_rec => p_prgm_ptr_types_rec
1022 ,x_return_status => x_return_status
1023 );
1024
1025 IF x_return_status <> FND_API.g_ret_sts_success THEN
1026 RETURN;
1027 END IF;
1028
1029 -- Debug message
1030 IF (PV_DEBUG_HIGH_ON) THEN
1031
1032 PVX_UTILITY_PVT.debug_message('- After Check_FK_Items. return status = ' || x_return_status);
1033 END IF;
1034
1035 IF x_return_status <> FND_API.g_ret_sts_success THEN
1036 RETURN;
1037 END IF;
1038
1039 -- Debug message
1040 IF (PV_DEBUG_HIGH_ON) THEN
1041
1042 PVX_UTILITY_PVT.debug_message('- Check_Items API prior to Check_Lookup_Items call');
1043 END IF;
1044
1045 -- Check Items Lookups
1046 Check_Lookup_Items(
1047 p_prgm_ptr_types_rec => p_prgm_ptr_types_rec
1048 ,x_return_status => x_return_status
1049 );
1050
1051 -- Debug message
1052 IF (PV_DEBUG_HIGH_ON) THEN
1053
1054 PVX_UTILITY_PVT.debug_message('- After Check_Lookup_Items. return status = ' || x_return_status);
1055 END IF;
1056
1057 IF x_return_status <> FND_API.g_ret_sts_success THEN
1058 RETURN;
1059 END IF;
1060
1061 END Check_Items;
1062
1063
1064
1065 PROCEDURE Complete_Rec (
1066 p_prgm_ptr_types_rec IN prgm_ptr_types_rec_type
1067 ,x_complete_rec OUT NOCOPY prgm_ptr_types_rec_type
1068 )
1069
1070 IS
1071
1072 CURSOR c_complete IS
1073 SELECT *
1074 FROM PV_PROGRAM_PARTNER_TYPES
1075 WHERE program_partner_types_id = p_prgm_ptr_types_rec.program_partner_types_id;
1076
1077 l_prgm_ptr_types_rec c_complete%ROWTYPE;
1078
1079 BEGIN
1080
1081 x_complete_rec := p_prgm_ptr_types_rec;
1082
1083
1084 OPEN c_complete;
1085 FETCH c_complete INTO l_prgm_ptr_types_rec;
1086 CLOSE c_complete;
1087
1088 -- Debug message
1089 IF (PV_DEBUG_HIGH_ON) THEN
1090
1091 PVX_UTILITY_PVT.debug_message('- In Complete_Rec API prior to assigning program_id');
1092 END IF;
1093
1094 -- program_partner_types_id
1095 IF p_prgm_ptr_types_rec.program_partner_types_id IS NULL THEN
1096 x_complete_rec.program_partner_types_id := l_prgm_ptr_types_rec.program_partner_types_id;
1097 END IF;
1098
1099 -- PROGRAM_TYPE_ID
1100 IF p_prgm_ptr_types_rec.PROGRAM_TYPE_ID IS NULL THEN
1101 x_complete_rec.PROGRAM_TYPE_ID := l_prgm_ptr_types_rec.PROGRAM_TYPE_ID;
1102 END IF;
1103
1104 -- partner_type
1105 IF p_prgm_ptr_types_rec.partner_type IS NULL THEN
1106 x_complete_rec.partner_type := l_prgm_ptr_types_rec.partner_type;
1107 END IF;
1108
1109 -- last_update_date
1110 IF p_prgm_ptr_types_rec.last_update_date IS NULL THEN
1111 x_complete_rec.last_update_date := l_prgm_ptr_types_rec.last_update_date;
1112 END IF;
1113
1114 -- last_updated_by
1115 IF p_prgm_ptr_types_rec.last_updated_by IS NULL THEN
1116 x_complete_rec.last_updated_by := l_prgm_ptr_types_rec.last_updated_by;
1117 END IF;
1118
1119 -- creation_date
1120 IF p_prgm_ptr_types_rec.creation_date IS NULL THEN
1121 x_complete_rec.creation_date := l_prgm_ptr_types_rec.creation_date;
1122 END IF;
1123
1124 -- created_by
1125 IF p_prgm_ptr_types_rec.created_by IS NULL THEN
1126 x_complete_rec.created_by := l_prgm_ptr_types_rec.created_by;
1127 END IF;
1128
1129 -- last_update_login
1130 IF p_prgm_ptr_types_rec.last_update_login IS NULL THEN
1131 x_complete_rec.last_update_login := l_prgm_ptr_types_rec.last_update_login;
1132 END IF;
1133
1134 -- object_version_number
1135 IF p_prgm_ptr_types_rec.object_version_number IS NULL THEN
1136 x_complete_rec.object_version_number := l_prgm_ptr_types_rec.object_version_number;
1137 END IF;
1138
1139 END Complete_Rec;
1140
1141
1142
1143
1144 PROCEDURE Validate_Prgm_Ptr_Type(
1145 p_api_version_number IN NUMBER
1146 ,p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE
1147 ,p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL
1148 ,p_validation_mode IN VARCHAR2
1149 ,p_prgm_ptr_types_rec IN prgm_ptr_types_rec_type
1150 ,x_return_status OUT NOCOPY VARCHAR2
1151 ,x_msg_count OUT NOCOPY NUMBER
1152 ,x_msg_data OUT NOCOPY VARCHAR2
1153 )
1154
1155 IS
1156
1157 l_api_name CONSTANT VARCHAR2(30) := 'Validate_Prgm_Ptr_Type';
1158 l_full_name CONSTANT VARCHAR2(60) := g_pkg_name ||'.'|| l_api_name;
1159 l_api_version_number CONSTANT NUMBER := 1.0;
1160 l_object_version_number NUMBER;
1161 l_prgm_ptr_types_rec PV_PRGM_PTR_TYPES_PVT.prgm_ptr_types_rec_type;
1162
1163 BEGIN
1164
1165 -- Standard Start of API savepoint
1166 SAVEPOINT VALIDATE_PGM_TGT_PTR_TYP_PVT;
1167
1168 -- Initialize API return status to SUCCESS
1169 x_return_status := FND_API.G_RET_STS_SUCCESS;
1170
1171 -- Standard call to check for call compatibility.
1172 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
1173 p_api_version_number,
1174 l_api_name,
1175 G_PKG_NAME)
1176 THEN
1177 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1178 END IF;
1179
1180 -- Initialize message list if p_init_msg_list is set to TRUE.
1181 IF FND_API.to_Boolean( p_init_msg_list ) THEN
1182 FND_MSG_PUB.initialize;
1183 END IF;
1184
1185 -- Debug Message
1186 IF (PV_DEBUG_HIGH_ON) THEN
1187
1188 PVX_UTILITY_PVT.debug_message(' Private API: ' || l_full_name || ' - start');
1189 END IF;
1190
1191 IF p_validation_level >= JTF_PLSQL_API.g_valid_level_item THEN
1192 -- Debug message
1193 IF (PV_DEBUG_HIGH_ON) THEN
1194
1195 PVX_UTILITY_PVT.debug_message(' Private API: ' || l_full_name || ' - prior to Check_Items call');
1196 END IF;
1197
1198 Check_Items(
1199 p_prgm_ptr_types_rec => p_prgm_ptr_types_rec
1200 ,p_validation_mode => p_validation_mode
1201 ,x_return_status => x_return_status
1202 );
1203
1204 -- Debug message
1205 IF (PV_DEBUG_HIGH_ON) THEN
1206
1207 PVX_UTILITY_PVT.debug_message(' Private API: ' || l_full_name || ' - return status after Check_Items call ' || x_return_status);
1208 END IF;
1209
1210 IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1211 RAISE FND_API.G_EXC_ERROR;
1212 ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1213 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1214 END IF;
1215 END IF;
1216
1217 IF p_validation_level >= JTF_PLSQL_API.g_valid_level_item THEN
1218 Validate_Rec(
1219 p_api_version_number => 1.0
1220 ,p_init_msg_list => FND_API.G_FALSE
1221 ,x_return_status => x_return_status
1222 ,x_msg_count => x_msg_count
1223 ,x_msg_data => x_msg_data
1224 ,p_prgm_ptr_types_rec => l_prgm_ptr_types_rec
1225 );
1226
1227 IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1228 RAISE FND_API.G_EXC_ERROR;
1229 ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1230 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1231 END IF;
1232 END IF;
1233
1234
1235 -- Debug Message
1236 IF (PV_DEBUG_HIGH_ON) THEN
1237
1238 PVX_UTILITY_PVT.debug_message('Private API: ' || l_full_name || ' - end');
1239 END IF;
1240
1241 -- Standard call to get message count and if count is 1, get message info.
1242 FND_MSG_PUB.Count_And_Get
1243 ( p_encoded => FND_API.G_FALSE,
1244 p_count => x_msg_count,
1245 p_data => x_msg_data
1246 );
1247
1248 EXCEPTION
1249
1250 WHEN FND_API.G_EXC_ERROR THEN
1251 ROLLBACK TO VALIDATE_PGM_TGT_PTR_TYP_PVT;
1252 x_return_status := FND_API.G_RET_STS_ERROR;
1253 -- Standard call to get message count and if count=1, get the message
1254 FND_MSG_PUB.Count_And_Get (
1255 p_encoded => FND_API.G_FALSE
1256 ,p_count => x_msg_count
1257 ,p_data => x_msg_data
1258 );
1259
1260 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1261 ROLLBACK TO VALIDATE_PGM_TGT_PTR_TYP_PVT;
1262 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1263 -- Standard call to get message count and if count=1, get the message
1264 FND_MSG_PUB.Count_And_Get (
1265 p_encoded => FND_API.G_FALSE
1266 ,p_count => x_msg_count
1267 ,p_data => x_msg_data
1268 );
1269
1270 WHEN OTHERS THEN
1271 ROLLBACK TO VALIDATE_PGM_TGT_PTR_TYP_PVT;
1272 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1273 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1274 THEN
1275 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
1276 END IF;
1277 -- Standard call to get message count and if count=1, get the message
1278 FND_MSG_PUB.Count_And_Get (
1279 p_encoded => FND_API.G_FALSE
1280 ,p_count => x_msg_count
1281 ,p_data => x_msg_data
1282 );
1283 End Validate_Prgm_Ptr_Type;
1284
1285
1286
1287
1288 PROCEDURE Validate_Rec(
1289 p_api_version_number IN NUMBER
1290 ,p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE
1291 ,x_return_status OUT NOCOPY VARCHAR2
1292 ,x_msg_count OUT NOCOPY NUMBER
1293 ,x_msg_data OUT NOCOPY VARCHAR
1294 ,p_prgm_ptr_types_rec IN prgm_ptr_types_rec_type
1295 )
1296
1297 IS
1298
1299 BEGIN
1300
1301 -- Initialize message list if p_init_msg_list is set to TRUE.
1302 IF FND_API.to_Boolean( p_init_msg_list )
1303 THEN
1304 FND_MSG_PUB.initialize;
1305 END IF;
1306
1307 -- Initialize API return status to SUCCESS
1308 x_return_status := FND_API.G_RET_STS_SUCCESS;
1309
1310 -- Hint: Validate data
1311 -- If data not valid
1312 -- THEN
1313 -- x_return_status := FND_API.G_RET_STS_ERROR;
1314
1315 -- Debug Message
1316 IF (PV_DEBUG_HIGH_ON) THEN
1317
1318 PVX_UTILITY_PVT.debug_message('Private API: Validate_dm_model_rec');
1319 END IF;
1320 -- Standard call to get message count and if count is 1, get message info.
1321 FND_MSG_PUB.Count_And_Get
1322 ( p_count => x_msg_count
1323 ,p_data => x_msg_data
1324 );
1325 END Validate_Rec;
1326
1327
1328 END PV_PRGM_PTR_TYPES_PVT;