DBA Data[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;