DBA Data[Home] [Help]

PACKAGE BODY: APPS.PV_PG_MMBR_TRANSITIONS_PVT

Source


1 PACKAGE BODY pv_pg_mmbr_transitions_PVT as
2 /* $Header: pvxvmbtb.pls 120.1 2005/08/26 10:21:16 appldev ship $ */
3 -- ===============================================================
4 -- Start of Comments
5 -- Package name
6 --          pv_pg_mmbr_transitions_PVT
7 -- Purpose
8 --
9 -- History
10 --
11 -- NOTE
12 --
13 -- This Api is generated with Latest version of
14 -- Rosetta, where g_miss indicates NULL and
15 -- NULL indicates missing value. Rosetta Version 1.55
16 -- End of Comments
17 -- ===============================================================
18 
19 
20 G_PKG_NAME CONSTANT VARCHAR2(30):= 'pv_pg_mmbr_transitions_PVT';
21 G_FILE_NAME CONSTANT VARCHAR2(12) := 'pvxvmbtb.pls';
22 
23 -- G_USER_ID         NUMBER := FND_GLOBAL.USER_ID;
24 -- G_LOGIN_ID        NUMBER := FND_GLOBAL.CONC_LOGIN_ID;
25 --
26 -- Foreward Procedure Declarations
27 --
28 
29 PROCEDURE Default_Mmbr_Tran_Items (
30    p_mmbr_tran_rec IN  mmbr_tran_rec_type ,
31    x_mmbr_tran_rec OUT NOCOPY mmbr_tran_rec_type
32 ) ;
33 
34 
35 
36 -- Hint: Primary key needs to be returned.
37 --   ==============================================================================
38 --    Start of Comments
39 --   ==============================================================================
40 --   API Name
41 --           Create_Mmbr_Trans
42 --   Type
43 --           Private
44 --   Pre-Req
45 --
46 --   Parameters
47 --
48 --   IN
49 --       p_api_version_number      IN   NUMBER     Required
50 --       p_init_msg_list           IN   VARCHAR2   Optional  Default = FND_API_G_FALSE
51 --       p_commit                  IN   VARCHAR2   Optional  Default = FND_API.G_FALSE
52 --       p_validation_level        IN   NUMBER     Optional  Default = FND_API.G_VALID_LEVEL_FULL
53 --       p_mmbr_tran_rec            IN   mmbr_tran_rec_type  Required
54 --
55 --   OUT
56 --       x_return_status           OUT  VARCHAR2
57 --       x_msg_count               OUT  NUMBER
58 --       x_msg_data                OUT  VARCHAR2
59 --   Version : Current version 1.0
60 --   Note: This automatic generated procedure definition, it includes standard IN/OUT parameters
61 --         and basic operation, developer must manually add parameters and business logic as necessary.
62 --
63 --   History
64 --
65 --   NOTE
66 --
67 --   End of Comments
68 --   ==============================================================================
69 
70 PV_DEBUG_HIGH_ON CONSTANT boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_HIGH);
71 PV_DEBUG_LOW_ON CONSTANT boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW);
72 PV_DEBUG_MEDIUM_ON CONSTANT boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_MEDIUM);
73 
74 PROCEDURE Create_Mmbr_Trans(
75     p_api_version_number         IN   NUMBER,
76     p_init_msg_list              IN   VARCHAR2     := FND_API.G_FALSE,
77     p_commit                     IN   VARCHAR2     := FND_API.G_FALSE,
78     p_validation_level           IN   NUMBER       := FND_API.G_VALID_LEVEL_FULL,
79 
80     x_return_status              OUT NOCOPY  VARCHAR2,
81     x_msg_count                  OUT NOCOPY  NUMBER,
82     x_msg_data                   OUT NOCOPY  VARCHAR2,
83 
84     p_mmbr_tran_rec              IN   mmbr_tran_rec_type  := g_miss_mmbr_tran_rec,
85     x_mmbr_transition_id              OUT NOCOPY  NUMBER
86      )
87 
88  IS
89 L_API_NAME                  CONSTANT VARCHAR2(30) := 'Create_Mmbr_Trans';
90 L_API_VERSION_NUMBER        CONSTANT NUMBER   := 1.0;
91    l_return_status_full        VARCHAR2(1);
92    l_object_version_number     NUMBER := 1;
93    l_org_id                    NUMBER := FND_API.G_MISS_NUM;
94    l_mmbr_transition_id              NUMBER;
95    l_dummy                     NUMBER;
96    CURSOR c_id IS
97       SELECT pv_pg_mmbr_transitions_s.NEXTVAL
98       FROM dual;
99 
100    CURSOR c_id_exists (l_id IN NUMBER) IS
101       SELECT 1
102       FROM PV_PG_MMBR_TRANSITIONS
103       WHERE mmbr_transition_id = l_id;
104 BEGIN
105       -- Standard Start of API savepoint
106       SAVEPOINT create_mmbr_trans_pvt;
107 
108       -- Standard call to check for call compatibility.
109       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
110                                            p_api_version_number,
111                                            l_api_name,
112                                            G_PKG_NAME)
113       THEN
114           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
115       END IF;
116 
117 
118       -- Initialize message list if p_init_msg_list is set to TRUE.
119       IF FND_API.to_Boolean( p_init_msg_list )
120       THEN
121          FND_MSG_PUB.initialize;
122       END IF;
123 
124 
125 
126       -- Debug Message
127       IF (PV_DEBUG_HIGH_ON) THEN
128 
129       PVX_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
130       END IF;
131 
132 
133 
134       -- Initialize API return status to SUCCESS
135       x_return_status := FND_API.G_RET_STS_SUCCESS;
136 
137       -- =========================================================================
138       -- Validate Environment
139       -- =========================================================================
140 
141       IF FND_GLOBAL.USER_ID IS NULL
142       THEN
143          PVX_UTILITY_PVT.Error_Message(p_message_name => 'USER_PROFILE_MISSING');
144           RAISE FND_API.G_EXC_ERROR;
145       END IF;
146 
147 
148 
149       IF ( P_validation_level >= FND_API.G_VALID_LEVEL_FULL)
150       THEN
151           -- Debug message
152           IF (PV_DEBUG_HIGH_ON) THEN
153 
154           PVX_UTILITY_PVT.debug_message('Private API: Validate_Mmbr_Trans');
155           END IF;
156 
157           -- Invoke validation procedures
158           Validate_mmbr_trans(
159             p_api_version_number     => 1.0,
160             p_init_msg_list    => FND_API.G_FALSE,
161             p_validation_level => p_validation_level,
162             p_validation_mode => JTF_PLSQL_API.g_create,
163             p_mmbr_tran_rec  =>  p_mmbr_tran_rec,
164             x_return_status    => x_return_status,
165             x_msg_count        => x_msg_count,
166             x_msg_data         => x_msg_data);
167       END IF;
168 
169       IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
170           RAISE FND_API.G_EXC_ERROR;
171       END IF;
172 
173    -- Local variable initialization
174 
175    IF p_mmbr_tran_rec.mmbr_transition_id IS NULL OR p_mmbr_tran_rec.mmbr_transition_id = FND_API.g_miss_num THEN
176       LOOP
177          l_dummy := NULL;
178          OPEN c_id;
179          FETCH c_id INTO l_mmbr_transition_id;
180          CLOSE c_id;
181 
182          OPEN c_id_exists(l_mmbr_transition_id);
183          FETCH c_id_exists INTO l_dummy;
184          CLOSE c_id_exists;
185          EXIT WHEN l_dummy IS NULL;
186       END LOOP;
187    ELSE
188          l_mmbr_transition_id := p_mmbr_tran_rec.mmbr_transition_id;
189    END IF;
190 
191       -- Debug Message
192       IF (PV_DEBUG_HIGH_ON) THEN
193 
194       PVX_UTILITY_PVT.debug_message( 'Private API: Calling create table handler');
195       END IF;
196 
197       -- Invoke table handler(pv_pg_mmbr_transitions_Pkg.Insert_Row)
198       pv_pg_mmbr_transitions_Pkg.Insert_Row(
199           px_mmbr_transition_id  => l_mmbr_transition_id,
200           p_from_membership_id  => p_mmbr_tran_rec.from_membership_id,
201           p_to_membership_id  => p_mmbr_tran_rec.to_membership_id,
202           px_object_version_number  => l_object_version_number,
203           p_created_by  => FND_GLOBAL.USER_ID,
204           p_creation_date  => SYSDATE,
205           p_last_updated_by  => FND_GLOBAL.USER_ID,
206           p_last_update_date  => SYSDATE,
207           p_last_update_login  => FND_GLOBAL.conc_login_id
208 );
209 
210           x_mmbr_transition_id := l_mmbr_transition_id;
211       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
212           RAISE FND_API.G_EXC_ERROR;
213       END IF;
214 --
215 -- End of API body
216 --
217 
218       -- Standard check for p_commit
219       IF FND_API.to_Boolean( p_commit )
220       THEN
221          COMMIT WORK;
222       END IF;
223 
224 
225       -- Debug Message
226       IF (PV_DEBUG_HIGH_ON) THEN
227 
228       PVX_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'end');
229       END IF;
230 
231 
232       -- Standard call to get message count and if count is 1, get message info.
233       FND_MSG_PUB.Count_And_Get
234         (p_count          =>   x_msg_count,
235          p_data           =>   x_msg_data
236       );
237 EXCEPTION
238 
239    WHEN PVX_UTILITY_PVT.resource_locked THEN
240      x_return_status := FND_API.g_ret_sts_error;
241          PVX_UTILITY_PVT.Error_Message(p_message_name => 'PV_API_RESOURCE_LOCKED');
242 
243    WHEN FND_API.G_EXC_ERROR THEN
244      ROLLBACK TO CREATE_Mmbr_Trans_PVT;
245      x_return_status := FND_API.G_RET_STS_ERROR;
246      -- Standard call to get message count and if count=1, get the message
247      FND_MSG_PUB.Count_And_Get (
248             p_encoded => FND_API.G_FALSE,
249             p_count   => x_msg_count,
250             p_data    => x_msg_data
251      );
252 
253    WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
254      ROLLBACK TO CREATE_Mmbr_Trans_PVT;
255      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
256      -- Standard call to get message count and if count=1, get the message
257      FND_MSG_PUB.Count_And_Get (
258             p_encoded => FND_API.G_FALSE,
259             p_count => x_msg_count,
260             p_data  => x_msg_data
261      );
262 
263    WHEN OTHERS THEN
264      ROLLBACK TO CREATE_Mmbr_Trans_PVT;
265      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
266      IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
267      THEN
268         FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
269      END IF;
270      -- Standard call to get message count and if count=1, get the message
271      FND_MSG_PUB.Count_And_Get (
272             p_encoded => FND_API.G_FALSE,
273             p_count => x_msg_count,
274             p_data  => x_msg_data
275      );
276 End Create_Mmbr_Trans;
277 
278 
279 --   ==============================================================================
280 --    Start of Comments
281 --   ==============================================================================
282 --   API Name
283 --           Update_Mmbr_Trans
284 --   Type
285 --           Private
286 --   Pre-Req
287 --
288 --   Parameters
289 --
290 --   IN
291 --       p_api_version_number      IN   NUMBER     Required
292 --       p_init_msg_list           IN   VARCHAR2   Optional  Default = FND_API_G_FALSE
293 --       p_commit                  IN   VARCHAR2   Optional  Default = FND_API.G_FALSE
294 --       p_validation_level        IN   NUMBER     Optional  Default = FND_API.G_VALID_LEVEL_FULL
295 --       p_mmbr_tran_rec            IN   mmbr_tran_rec_type  Required
296 --
297 --   OUT
298 --       x_return_status           OUT  VARCHAR2
299 --       x_msg_count               OUT  NUMBER
300 --       x_msg_data                OUT  VARCHAR2
301 --   Version : Current version 1.0
302 --   Note: This automatic generated procedure definition, it includes standard IN/OUT parameters
303 --         and basic operation, developer must manually add parameters and business logic as necessary.
304 --
305 --   History
306 --
307 --   NOTE
308 --
309 --   End of Comments
310 --   ==============================================================================
311 
312 PROCEDURE Update_Mmbr_Trans(
313     p_api_version_number         IN   NUMBER,
314     p_init_msg_list              IN   VARCHAR2     := FND_API.G_FALSE,
315     p_commit                     IN   VARCHAR2     := FND_API.G_FALSE,
316     p_validation_level           IN  NUMBER       := FND_API.G_VALID_LEVEL_FULL,
317 
318     x_return_status              OUT NOCOPY  VARCHAR2,
319     x_msg_count                  OUT NOCOPY  NUMBER,
320     x_msg_data                   OUT NOCOPY  VARCHAR2,
321 
322     p_mmbr_tran_rec               IN    mmbr_tran_rec_type
323     )
324 
325  IS
326 
327 
328 CURSOR c_get_mmbr_trans(mmbr_transition_id NUMBER) IS
329     SELECT *
330     FROM  PV_PG_MMBR_TRANSITIONS
331     WHERE  mmbr_transition_id = p_mmbr_tran_rec.mmbr_transition_id;
332     -- Hint: Developer need to provide Where clause
333 
334 
335 L_API_NAME                  CONSTANT VARCHAR2(30) := 'Update_Mmbr_Trans';
336 L_API_VERSION_NUMBER        CONSTANT NUMBER   := 1.0;
337 -- Local Variables
338 l_object_version_number     NUMBER;
339 l_mmbr_transition_id    NUMBER;
340 l_ref_mmbr_tran_rec  c_get_Mmbr_Trans%ROWTYPE ;
341 l_tar_mmbr_tran_rec  mmbr_tran_rec_type := P_mmbr_tran_rec;
342 l_rowid  ROWID;
343 
344  BEGIN
345       -- Standard Start of API savepoint
346       SAVEPOINT update_mmbr_trans_pvt;
347 
348       -- Standard call to check for call compatibility.
349       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
350                                            p_api_version_number,
351                                            l_api_name,
352                                            G_PKG_NAME)
353       THEN
354           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
355       END IF;
356 
357 
358       -- Initialize message list if p_init_msg_list is set to TRUE.
359       IF FND_API.to_Boolean( p_init_msg_list )
360       THEN
361          FND_MSG_PUB.initialize;
362       END IF;
363 
364 
365 
366       -- Debug Message
367       IF (PV_DEBUG_HIGH_ON) THEN
368 
369       PVX_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
370       END IF;
371 
372 
373 
374       -- Initialize API return status to SUCCESS
375       x_return_status := FND_API.G_RET_STS_SUCCESS;
376 
377       -- Debug Message
378       IF (PV_DEBUG_HIGH_ON) THEN
379 
380       PVX_UTILITY_PVT.debug_message('Private API: - Open Cursor to Select');
381       END IF;
382 
383       OPEN c_get_Mmbr_Trans( l_tar_mmbr_tran_rec.mmbr_transition_id);
384 
385       FETCH c_get_Mmbr_Trans INTO l_ref_mmbr_tran_rec  ;
386 
387        If ( c_get_Mmbr_Trans%NOTFOUND) THEN
388   PVX_UTILITY_PVT.Error_Message(p_message_name => 'API_MISSING_UPDATE_TARGET',
389    p_token_name   => 'INFO',
390  p_token_value  => 'Mmbr_Trans') ;
391            RAISE FND_API.G_EXC_ERROR;
392        END IF;
393        -- Debug Message
394        IF (PV_DEBUG_HIGH_ON) THEN
395 
396        PVX_UTILITY_PVT.debug_message('Private API: - Close Cursor');
397        END IF;
398        CLOSE     c_get_Mmbr_Trans;
399 
400 
401       If (l_tar_mmbr_tran_rec.object_version_number is NULL or
402           l_tar_mmbr_tran_rec.object_version_number = FND_API.G_MISS_NUM ) Then
403   PVX_UTILITY_PVT.Error_Message(p_message_name => 'API_VERSION_MISSING',
404    p_token_name   => 'COLUMN',
405  p_token_value  => 'Last_Update_Date') ;
406           raise FND_API.G_EXC_ERROR;
407       End if;
408       -- Check Whether record has been changed by someone else
409       If (l_tar_mmbr_tran_rec.object_version_number <> l_ref_mmbr_tran_rec.object_version_number) Then
410   PVX_UTILITY_PVT.Error_Message(p_message_name => 'API_RECORD_CHANGED',
411    p_token_name   => 'INFO',
412  p_token_value  => 'Mmbr_Trans') ;
413           raise FND_API.G_EXC_ERROR;
414       End if;
415 
416 
417       IF ( P_validation_level >= FND_API.G_VALID_LEVEL_FULL)
418       THEN
419           -- Debug message
420           IF (PV_DEBUG_HIGH_ON) THEN
421 
422           PVX_UTILITY_PVT.debug_message('Private API: Validate_Mmbr_Trans');
423           END IF;
424 
425           -- Invoke validation procedures
426           Validate_mmbr_trans(
427             p_api_version_number     => 1.0,
428             p_init_msg_list    => FND_API.G_FALSE,
429             p_validation_level => p_validation_level,
430             p_validation_mode => JTF_PLSQL_API.g_update,
431             p_mmbr_tran_rec  =>  p_mmbr_tran_rec,
432             x_return_status    => x_return_status,
433             x_msg_count        => x_msg_count,
434             x_msg_data         => x_msg_data);
435       END IF;
436 
437       IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
438           RAISE FND_API.G_EXC_ERROR;
439       END IF;
440 
441 
442       -- Debug Message
443       IF (PV_DEBUG_HIGH_ON) THEN
444 
445       PVX_UTILITY_PVT.debug_message( 'Private API: Calling update table handler');
446       END IF;
447 
448       -- Invoke table handler(pv_pg_mmbr_transitions_Pkg.Update_Row)
449       pv_pg_mmbr_transitions_Pkg.Update_Row(
450           p_mmbr_transition_id  => p_mmbr_tran_rec.mmbr_transition_id,
451           p_from_membership_id  => p_mmbr_tran_rec.from_membership_id,
452           p_to_membership_id  => p_mmbr_tran_rec.to_membership_id,
453           p_object_version_number  => p_mmbr_tran_rec.object_version_number,
454           p_last_updated_by  => FND_GLOBAL.USER_ID,
455           p_last_update_date  => SYSDATE,
456           p_last_update_login  => FND_GLOBAL.conc_login_id
457 );
458       --
459       -- End of API body.
460       --
461 
462       -- Standard check for p_commit
463       IF FND_API.to_Boolean( p_commit )
464       THEN
465          COMMIT WORK;
466       END IF;
467 
468 
469       -- Debug Message
470       IF (PV_DEBUG_HIGH_ON) THEN
471 
472       PVX_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'end');
473       END IF;
474 
475 
476       -- Standard call to get message count and if count is 1, get message info.
477       FND_MSG_PUB.Count_And_Get
478         (p_count          =>   x_msg_count,
479          p_data           =>   x_msg_data
480       );
481 EXCEPTION
482 
483    WHEN PVX_UTILITY_PVT.resource_locked THEN
484      x_return_status := FND_API.g_ret_sts_error;
485          PVX_UTILITY_PVT.Error_Message(p_message_name => 'PV_API_RESOURCE_LOCKED');
486 
487    WHEN FND_API.G_EXC_ERROR THEN
488      ROLLBACK TO UPDATE_Mmbr_Trans_PVT;
489      x_return_status := FND_API.G_RET_STS_ERROR;
490      -- Standard call to get message count and if count=1, get the message
491      FND_MSG_PUB.Count_And_Get (
492             p_encoded => FND_API.G_FALSE,
493             p_count   => x_msg_count,
494             p_data    => x_msg_data
495      );
496 
497    WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
498      ROLLBACK TO UPDATE_Mmbr_Trans_PVT;
499      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
500      -- Standard call to get message count and if count=1, get the message
501      FND_MSG_PUB.Count_And_Get (
502             p_encoded => FND_API.G_FALSE,
503             p_count => x_msg_count,
504             p_data  => x_msg_data
505      );
506 
507    WHEN OTHERS THEN
508      ROLLBACK TO UPDATE_Mmbr_Trans_PVT;
509      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
510      IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
511      THEN
512         FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
513      END IF;
514      -- Standard call to get message count and if count=1, get the message
515      FND_MSG_PUB.Count_And_Get (
516             p_encoded => FND_API.G_FALSE,
517             p_count => x_msg_count,
518             p_data  => x_msg_data
519      );
520 End Update_Mmbr_Trans;
521 
522 
523 --   ==============================================================================
524 --    Start of Comments
525 --   ==============================================================================
526 --   API Name
527 --           Delete_Mmbr_Trans
528 --   Type
529 --           Private
530 --   Pre-Req
531 --
532 --   Parameters
533 --
534 --   IN
535 --       p_api_version_number      IN   NUMBER     Required
536 --       p_init_msg_list           IN   VARCHAR2   Optional  Default = FND_API_G_FALSE
537 --       p_commit                  IN   VARCHAR2   Optional  Default = FND_API.G_FALSE
538 --       p_validation_level        IN   NUMBER     Optional  Default = FND_API.G_VALID_LEVEL_FULL
539 --       p_mmbr_transition_id                IN   NUMBER
540 --       p_object_version_number   IN   NUMBER     Optional  Default = NULL
541 --
542 --   OUT
543 --       x_return_status           OUT  VARCHAR2
544 --       x_msg_count               OUT  NUMBER
545 --       x_msg_data                OUT  VARCHAR2
546 --   Version : Current version 1.0
547 --   Note: This automatic generated procedure definition, it includes standard IN/OUT parameters
548 --         and basic operation, developer must manually add parameters and business logic as necessary.
549 --
550 --   History
551 --
552 --   NOTE
553 --
554 --   End of Comments
555 --   ==============================================================================
556 
557 PROCEDURE Delete_Mmbr_Trans(
558     p_api_version_number         IN   NUMBER,
559     p_init_msg_list              IN   VARCHAR2     := FND_API.G_FALSE,
560     p_commit                     IN   VARCHAR2     := FND_API.G_FALSE,
561     p_validation_level           IN   NUMBER       := FND_API.G_VALID_LEVEL_FULL,
562     x_return_status              OUT NOCOPY  VARCHAR2,
563     x_msg_count                  OUT NOCOPY  NUMBER,
564     x_msg_data                   OUT NOCOPY  VARCHAR2,
565     p_mmbr_transition_id                   IN  NUMBER,
566     p_object_version_number      IN   NUMBER
567     )
568 
569  IS
570 L_API_NAME                  CONSTANT VARCHAR2(30) := 'Delete_Mmbr_Trans';
571 L_API_VERSION_NUMBER        CONSTANT NUMBER   := 1.0;
572 l_object_version_number     NUMBER;
573 
574  BEGIN
575       -- Standard Start of API savepoint
576       SAVEPOINT delete_mmbr_trans_pvt;
577 
578       -- Standard call to check for call compatibility.
579       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
580                                            p_api_version_number,
581                                            l_api_name,
582                                            G_PKG_NAME)
583       THEN
584           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
585       END IF;
586 
587 
588       -- Initialize message list if p_init_msg_list is set to TRUE.
589       IF FND_API.to_Boolean( p_init_msg_list )
590       THEN
591          FND_MSG_PUB.initialize;
592       END IF;
593 
594 
595 
596       -- Debug Message
597       IF (PV_DEBUG_HIGH_ON) THEN
598 
599       PVX_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
600       END IF;
601 
602 
603 
604       -- Initialize API return status to SUCCESS
605       x_return_status := FND_API.G_RET_STS_SUCCESS;
606 
607       --
608       -- Api body
609       --
610       -- Debug Message
611       IF (PV_DEBUG_HIGH_ON) THEN
612 
613       PVX_UTILITY_PVT.debug_message( 'Private API: Calling delete table handler');
614       END IF;
615 
616       -- Invoke table handler(pv_pg_mmbr_transitions_Pkg.Delete_Row)
617       pv_pg_mmbr_transitions_Pkg.Delete_Row(
618           p_mmbr_transition_id  => p_mmbr_transition_id,
619           p_object_version_number => p_object_version_number     );
620       --
621       -- End of API body
622       --
623 
624       -- Standard check for p_commit
625       IF FND_API.to_Boolean( p_commit )
626       THEN
627          COMMIT WORK;
628       END IF;
629 
630 
631       -- Debug Message
632       IF (PV_DEBUG_HIGH_ON) THEN
633 
634       PVX_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'end');
635       END IF;
636 
637 
638       -- Standard call to get message count and if count is 1, get message info.
639       FND_MSG_PUB.Count_And_Get
640         (p_count          =>   x_msg_count,
641          p_data           =>   x_msg_data
642       );
643 EXCEPTION
644 
645    WHEN PVX_UTILITY_PVT.resource_locked THEN
646      x_return_status := FND_API.g_ret_sts_error;
647          PVX_UTILITY_PVT.Error_Message(p_message_name => 'PV_API_RESOURCE_LOCKED');
648 
649    WHEN FND_API.G_EXC_ERROR THEN
650      ROLLBACK TO DELETE_Mmbr_Trans_PVT;
651      x_return_status := FND_API.G_RET_STS_ERROR;
652      -- Standard call to get message count and if count=1, get the message
653      FND_MSG_PUB.Count_And_Get (
654             p_encoded => FND_API.G_FALSE,
655             p_count   => x_msg_count,
656             p_data    => x_msg_data
657      );
658 
659    WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
660      ROLLBACK TO DELETE_Mmbr_Trans_PVT;
661      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
662      -- Standard call to get message count and if count=1, get the message
663      FND_MSG_PUB.Count_And_Get (
664             p_encoded => FND_API.G_FALSE,
665             p_count => x_msg_count,
666             p_data  => x_msg_data
667      );
668 
669    WHEN OTHERS THEN
670      ROLLBACK TO DELETE_Mmbr_Trans_PVT;
671      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
672      IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
673      THEN
674         FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
675      END IF;
676      -- Standard call to get message count and if count=1, get the message
677      FND_MSG_PUB.Count_And_Get (
678             p_encoded => FND_API.G_FALSE,
679             p_count => x_msg_count,
680             p_data  => x_msg_data
681      );
682 End Delete_Mmbr_Trans;
683 
684 
685 
686 -- Hint: Primary key needs to be returned.
687 --   ==============================================================================
688 --    Start of Comments
689 --   ==============================================================================
690 --   API Name
691 --           Lock_Mmbr_Trans
692 --   Type
693 --           Private
694 --   Pre-Req
695 --
696 --   Parameters
697 --
698 --   IN
699 --       p_api_version_number      IN   NUMBER     Required
700 --       p_init_msg_list           IN   VARCHAR2   Optional  Default = FND_API_G_FALSE
701 --       p_commit                  IN   VARCHAR2   Optional  Default = FND_API.G_FALSE
702 --       p_validation_level        IN   NUMBER     Optional  Default = FND_API.G_VALID_LEVEL_FULL
703 --       p_mmbr_tran_rec            IN   mmbr_tran_rec_type  Required
704 --
705 --   OUT
706 --       x_return_status           OUT  VARCHAR2
707 --       x_msg_count               OUT  NUMBER
708 --       x_msg_data                OUT  VARCHAR2
709 --   Version : Current version 1.0
710 --   Note: This automatic generated procedure definition, it includes standard IN/OUT parameters
711 --         and basic operation, developer must manually add parameters and business logic as necessary.
712 --
713 --   History
714 --
715 --   NOTE
716 --
717 --   End of Comments
718 --   ==============================================================================
719 
720 PROCEDURE Lock_Mmbr_Trans(
721     p_api_version_number         IN   NUMBER,
722     p_init_msg_list              IN   VARCHAR2     := FND_API.G_FALSE,
723 
724     x_return_status              OUT NOCOPY  VARCHAR2,
725     x_msg_count                  OUT NOCOPY  NUMBER,
726     x_msg_data                   OUT NOCOPY  VARCHAR2,
727 
728     p_mmbr_transition_id                   IN  NUMBER,
729     p_object_version             IN  NUMBER
730     )
731 
732  IS
733 L_API_NAME                  CONSTANT VARCHAR2(30) := 'Lock_Mmbr_Trans';
734 L_API_VERSION_NUMBER        CONSTANT NUMBER   := 1.0;
735 L_FULL_NAME                 CONSTANT VARCHAR2(60) := g_pkg_name ||'.'|| l_api_name;
736 l_mmbr_transition_id                  NUMBER;
737 
738 BEGIN
739 
740       -- Debug Message
741       IF (PV_DEBUG_HIGH_ON) THEN
742 
743       PVX_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
744       END IF;
745 
746 
747       -- Initialize message list if p_init_msg_list is set to TRUE.
748       IF FND_API.to_Boolean( p_init_msg_list )
749       THEN
750          FND_MSG_PUB.initialize;
751       END IF;
752 
753 
754 
755       -- Standard call to check for call compatibility.
756       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
757                                            p_api_version_number,
758                                            l_api_name,
759                                            G_PKG_NAME)
760       THEN
761           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
762       END IF;
763 
764 
765 
766       -- Initialize API return status to SUCCESS
767       x_return_status := FND_API.G_RET_STS_SUCCESS;
768 
769 
770 ------------------------ lock -------------------------
771 pv_pg_mmbr_transitions_Pkg.Lock_Row(l_mmbr_transition_id,p_object_version);
772 
773 
774  -------------------- finish --------------------------
775   FND_MSG_PUB.count_and_get(
776     p_encoded => FND_API.g_false,
777     p_count   => x_msg_count,
778     p_data    => x_msg_data);
779   IF (PV_DEBUG_HIGH_ON) THEN
780 
781   PVX_UTILITY_PVT.debug_message(l_full_name ||': end');
782   END IF;
783 EXCEPTION
784 
785    WHEN PVX_UTILITY_PVT.resource_locked THEN
786      x_return_status := FND_API.g_ret_sts_error;
787          PVX_UTILITY_PVT.Error_Message(p_message_name => 'PV_API_RESOURCE_LOCKED');
788 
789    WHEN FND_API.G_EXC_ERROR THEN
790      ROLLBACK TO LOCK_Mmbr_Trans_PVT;
791      x_return_status := FND_API.G_RET_STS_ERROR;
792      -- Standard call to get message count and if count=1, get the message
793      FND_MSG_PUB.Count_And_Get (
794             p_encoded => FND_API.G_FALSE,
795             p_count   => x_msg_count,
796             p_data    => x_msg_data
797      );
798 
799    WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
800      ROLLBACK TO LOCK_Mmbr_Trans_PVT;
801      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
802      -- Standard call to get message count and if count=1, get the message
803      FND_MSG_PUB.Count_And_Get (
804             p_encoded => FND_API.G_FALSE,
805             p_count => x_msg_count,
806             p_data  => x_msg_data
807      );
808 
809    WHEN OTHERS THEN
810      ROLLBACK TO LOCK_Mmbr_Trans_PVT;
811      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
812      IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
813      THEN
814         FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
815      END IF;
816      -- Standard call to get message count and if count=1, get the message
817      FND_MSG_PUB.Count_And_Get (
818             p_encoded => FND_API.G_FALSE,
819             p_count => x_msg_count,
820             p_data  => x_msg_data
821      );
822 End Lock_Mmbr_Trans;
823 
824 
825 
826 
827 PROCEDURE check_Mmbr_Tran_Uk_Items(
828     p_mmbr_tran_rec               IN   mmbr_tran_rec_type,
829     p_validation_mode            IN  VARCHAR2 := JTF_PLSQL_API.g_create,
830     x_return_status              OUT NOCOPY VARCHAR2)
831 IS
832 l_valid_flag  VARCHAR2(1);
833 
834 BEGIN
835       x_return_status := FND_API.g_ret_sts_success;
836       IF p_validation_mode = JTF_PLSQL_API.g_create
837       AND p_mmbr_tran_rec.mmbr_transition_id IS NOT NULL
838       THEN
839          l_valid_flag := PVX_UTILITY_PVT.check_uniqueness(
840          'pv_pg_mmbr_transitions',
841          'mmbr_transition_id = ''' || p_mmbr_tran_rec.mmbr_transition_id ||''''
842          );
843       END IF;
844 
845       IF l_valid_flag = FND_API.g_false THEN
846          PVX_UTILITY_PVT.Error_Message(p_message_name => 'pv_pg_mmbr_transitionsition_id_DUPLICATE');
847          x_return_status := FND_API.g_ret_sts_error;
848       END IF;
849 
850 END check_Mmbr_Tran_Uk_Items;
851 
852 
853 
854 PROCEDURE check_Mmbr_Tran_Req_Items(
855     p_mmbr_tran_rec               IN  mmbr_tran_rec_type,
856     p_validation_mode IN VARCHAR2 := JTF_PLSQL_API.g_create,
857     x_return_status	         OUT NOCOPY VARCHAR2
858 )
859 IS
860 BEGIN
861    x_return_status := FND_API.g_ret_sts_success;
862 
863    IF p_validation_mode = JTF_PLSQL_API.g_create THEN
864 
865       /*
866       IF p_mmbr_tran_rec.mmbr_transition_id = FND_API.G_MISS_NUM OR p_mmbr_tran_rec.mmbr_transition_id IS NULL THEN
867                PVX_UTILITY_PVT.Error_Message('AMS_API_MISSING_FIELD', 'MISS_FIELD', 'MMBR_TRANSITION_ID' );
868                x_return_status := FND_API.g_ret_sts_error;
869       END IF;
870       */
871 
872       IF p_mmbr_tran_rec.from_membership_id = FND_API.G_MISS_NUM OR p_mmbr_tran_rec.from_membership_id IS NULL THEN
873                PVX_UTILITY_PVT.Error_Message('AMS_API_MISSING_FIELD', 'MISS_FIELD', 'FROM_MEMBERSHIP_ID' );
874                x_return_status := FND_API.g_ret_sts_error;
875       END IF;
876 
877 
878       IF p_mmbr_tran_rec.to_membership_id = FND_API.G_MISS_NUM OR p_mmbr_tran_rec.to_membership_id IS NULL THEN
879                PVX_UTILITY_PVT.Error_Message('AMS_API_MISSING_FIELD', 'MISS_FIELD', 'TO_MEMBERSHIP_ID' );
880                x_return_status := FND_API.g_ret_sts_error;
881       END IF;
882 
883       /*
884       IF p_mmbr_tran_rec.object_version_number = FND_API.G_MISS_NUM OR p_mmbr_tran_rec.object_version_number IS NULL THEN
885                PVX_UTILITY_PVT.Error_Message('AMS_API_MISSING_FIELD', 'MISS_FIELD', 'OBJECT_VERSION_NUMBER' );
886                x_return_status := FND_API.g_ret_sts_error;
887       END IF;
888 
889       */
890    ELSE
891 
892 
893       IF p_mmbr_tran_rec.mmbr_transition_id = FND_API.G_MISS_NUM THEN
894                PVX_UTILITY_PVT.Error_Message('AMS_API_MISSING_FIELD', 'MISS_FIELD', 'MMBR_TRANSITION_ID' );
895                x_return_status := FND_API.g_ret_sts_error;
896       END IF;
897 
898 
899       IF p_mmbr_tran_rec.from_membership_id = FND_API.G_MISS_NUM THEN
900                PVX_UTILITY_PVT.Error_Message('AMS_API_MISSING_FIELD', 'MISS_FIELD', 'FROM_MEMBERSHIP_ID' );
901                x_return_status := FND_API.g_ret_sts_error;
902       END IF;
903 
904 
905       IF p_mmbr_tran_rec.to_membership_id = FND_API.G_MISS_NUM THEN
906                PVX_UTILITY_PVT.Error_Message('AMS_API_MISSING_FIELD', 'MISS_FIELD', 'TO_MEMBERSHIP_ID' );
907                x_return_status := FND_API.g_ret_sts_error;
908       END IF;
909 
910 
911       IF p_mmbr_tran_rec.object_version_number = FND_API.G_MISS_NUM THEN
912                PVX_UTILITY_PVT.Error_Message('AMS_API_MISSING_FIELD', 'MISS_FIELD', 'OBJECT_VERSION_NUMBER' );
913                x_return_status := FND_API.g_ret_sts_error;
914       END IF;
915    END IF;
916 
917 END check_Mmbr_Tran_Req_Items;
918 
919 
920 
921 PROCEDURE check_Mmbr_Tran_Fk_Items(
922     p_mmbr_tran_rec IN mmbr_tran_rec_type,
923     x_return_status OUT NOCOPY VARCHAR2
924 )
925 IS
926 BEGIN
927    x_return_status := FND_API.g_ret_sts_success;
928 
929    -- Enter custom code here
930 
931 END check_Mmbr_Tran_Fk_Items;
932 
933 
934 
935 PROCEDURE check_Mmbr_Tran_Lookup_Items(
936     p_mmbr_tran_rec IN mmbr_tran_rec_type,
937     x_return_status OUT NOCOPY VARCHAR2
938 )
939 IS
940 BEGIN
941    x_return_status := FND_API.g_ret_sts_success;
942 
943    -- Enter custom code here
944 
945 END check_Mmbr_Tran_Lookup_Items;
946 
947 
948 
949 PROCEDURE Check_Mmbr_Tran_Items (
950     P_mmbr_tran_rec     IN    mmbr_tran_rec_type,
951     p_validation_mode  IN    VARCHAR2,
952     x_return_status    OUT NOCOPY   VARCHAR2
953     )
954 IS
955    l_return_status   VARCHAR2(1);
956 BEGIN
957 
958     l_return_status := FND_API.g_ret_sts_success;
959    -- Check Items Uniqueness API calls
960 
961    check_Mmbr_tran_Uk_Items(
962       p_mmbr_tran_rec => p_mmbr_tran_rec,
963       p_validation_mode => p_validation_mode,
964       x_return_status => x_return_status);
965    IF x_return_status <> FND_API.g_ret_sts_success THEN
966       l_return_status := FND_API.g_ret_sts_error;
967    END IF;
968 
969    -- Check Items Required/NOT NULL API calls
970 
971    check_mmbr_tran_req_items(
972       p_mmbr_tran_rec => p_mmbr_tran_rec,
973       p_validation_mode => p_validation_mode,
974       x_return_status => x_return_status);
975    IF x_return_status <> FND_API.g_ret_sts_success THEN
976       l_return_status := FND_API.g_ret_sts_error;
977    END IF;
978    -- Check Items Foreign Keys API calls
979 
980    check_mmbr_tran_FK_items(
981       p_mmbr_tran_rec => p_mmbr_tran_rec,
982       x_return_status => x_return_status);
983    IF x_return_status <> FND_API.g_ret_sts_success THEN
984       l_return_status := FND_API.g_ret_sts_error;
985    END IF;
986    -- Check Items Lookups
987 
988    check_mmbr_tran_Lookup_items(
989       p_mmbr_tran_rec => p_mmbr_tran_rec,
990       x_return_status => x_return_status);
991    IF x_return_status <> FND_API.g_ret_sts_success THEN
992       l_return_status := FND_API.g_ret_sts_error;
993    END IF;
994 
995    x_return_status := l_return_status;
996 
997 END Check_mmbr_tran_Items;
998 
999 
1000 
1001 
1002 
1003 PROCEDURE Complete_Mmbr_Tran_Rec (
1004    p_mmbr_tran_rec IN mmbr_tran_rec_type,
1005    x_complete_rec OUT NOCOPY mmbr_tran_rec_type)
1006 IS
1007    l_return_status  VARCHAR2(1);
1008 
1009    CURSOR c_complete IS
1010       SELECT *
1011       FROM pv_pg_mmbr_transitions
1012       WHERE mmbr_transition_id = p_mmbr_tran_rec.mmbr_transition_id;
1013    l_mmbr_tran_rec c_complete%ROWTYPE;
1014 BEGIN
1015    x_complete_rec := p_mmbr_tran_rec;
1016 
1017 
1018    OPEN c_complete;
1019    FETCH c_complete INTO l_mmbr_tran_rec;
1020    CLOSE c_complete;
1021 
1022    -- mmbr_transition_id
1023    IF p_mmbr_tran_rec.mmbr_transition_id IS NULL THEN
1024       x_complete_rec.mmbr_transition_id := l_mmbr_tran_rec.mmbr_transition_id;
1025    END IF;
1026 
1027    -- from_membership_id
1028    IF p_mmbr_tran_rec.from_membership_id IS NULL THEN
1029       x_complete_rec.from_membership_id := l_mmbr_tran_rec.from_membership_id;
1030    END IF;
1031 
1032    -- to_membership_id
1033    IF p_mmbr_tran_rec.to_membership_id IS NULL THEN
1034       x_complete_rec.to_membership_id := l_mmbr_tran_rec.to_membership_id;
1035    END IF;
1036 
1037    -- object_version_number
1038    IF p_mmbr_tran_rec.object_version_number IS NULL THEN
1039       x_complete_rec.object_version_number := l_mmbr_tran_rec.object_version_number;
1040    END IF;
1041 
1042    -- created_by
1043    IF p_mmbr_tran_rec.created_by IS NULL THEN
1044       x_complete_rec.created_by := l_mmbr_tran_rec.created_by;
1045    END IF;
1046 
1047    -- creation_date
1048    IF p_mmbr_tran_rec.creation_date IS NULL THEN
1049       x_complete_rec.creation_date := l_mmbr_tran_rec.creation_date;
1050    END IF;
1051 
1052    -- last_updated_by
1053    IF p_mmbr_tran_rec.last_updated_by IS NULL THEN
1054       x_complete_rec.last_updated_by := l_mmbr_tran_rec.last_updated_by;
1055    END IF;
1056 
1057    -- last_update_date
1058    IF p_mmbr_tran_rec.last_update_date IS NULL THEN
1059       x_complete_rec.last_update_date := l_mmbr_tran_rec.last_update_date;
1060    END IF;
1061 
1062    -- last_update_login
1063    IF p_mmbr_tran_rec.last_update_login IS NULL THEN
1064       x_complete_rec.last_update_login := l_mmbr_tran_rec.last_update_login;
1065    END IF;
1066    -- Note: Developers need to modify the procedure
1067    -- to handle any business specific requirements.
1068 END Complete_Mmbr_Tran_Rec;
1069 
1070 
1071 
1072 
1073 PROCEDURE Default_Mmbr_Tran_Items ( p_mmbr_tran_rec IN mmbr_tran_rec_type ,
1074                                 x_mmbr_tran_rec OUT NOCOPY mmbr_tran_rec_type )
1075 IS
1076    l_mmbr_tran_rec mmbr_tran_rec_type := p_mmbr_tran_rec;
1077 BEGIN
1078    -- Developers should put their code to default the record type
1079    -- e.g. IF p_campaign_rec.status_code IS NULL
1080    --      OR p_campaign_rec.status_code = FND_API.G_MISS_CHAR THEN
1081    --         l_campaign_rec.status_code := 'NEW' ;
1082    --      END IF ;
1083    --
1084    NULL ;
1085 END;
1086 
1087 
1088 
1089 
1090 PROCEDURE Validate_Mmbr_Trans(
1091     p_api_version_number         IN   NUMBER,
1092     p_init_msg_list              IN   VARCHAR2     := FND_API.G_FALSE,
1093     p_validation_level           IN   NUMBER := FND_API.G_VALID_LEVEL_FULL,
1094     p_mmbr_tran_rec               IN   mmbr_tran_rec_type,
1095     p_validation_mode            IN    VARCHAR2,
1096     x_return_status              OUT NOCOPY  VARCHAR2,
1097     x_msg_count                  OUT NOCOPY  NUMBER,
1098     x_msg_data                   OUT NOCOPY  VARCHAR2
1099     )
1100  IS
1101 L_API_NAME                  CONSTANT VARCHAR2(30) := 'Validate_Mmbr_Trans';
1102 L_API_VERSION_NUMBER        CONSTANT NUMBER   := 1.0;
1103 l_object_version_number     NUMBER;
1104 l_mmbr_tran_rec       mmbr_tran_rec_type;
1105 l_mmbr_tran_rec_out   mmbr_tran_rec_type;
1106 
1107  BEGIN
1108       -- Standard Start of API savepoint
1109       SAVEPOINT validate_mmbr_trans_;
1110 
1111       -- Standard call to check for call compatibility.
1112       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
1113                                            p_api_version_number,
1114                                            l_api_name,
1115                                            G_PKG_NAME)
1116       THEN
1117           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1118       END IF;
1119 
1120 
1121       -- Initialize message list if p_init_msg_list is set to TRUE.
1122       IF FND_API.to_Boolean( p_init_msg_list )
1123       THEN
1124          FND_MSG_PUB.initialize;
1125       END IF;
1126 
1127 
1128       IF p_validation_level >= JTF_PLSQL_API.g_valid_level_item THEN
1129               Check_mmbr_tran_Items(
1130                  p_mmbr_tran_rec        => p_mmbr_tran_rec,
1131                  p_validation_mode   => p_validation_mode,
1132                  x_return_status     => x_return_status
1133               );
1134 
1135               IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1136                   RAISE FND_API.G_EXC_ERROR;
1137               ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1138                   RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1139               END IF;
1140       END IF;
1141 
1142       IF p_validation_mode = JTF_PLSQL_API.g_create THEN
1143          Default_Mmbr_Tran_Items (p_mmbr_tran_rec => p_mmbr_tran_rec ,
1144                                 x_mmbr_tran_rec => l_mmbr_tran_rec) ;
1145       END IF ;
1146 
1147 
1148       Complete_mmbr_tran_Rec(
1149          p_mmbr_tran_rec        => l_mmbr_tran_rec,
1150          x_complete_rec         => l_mmbr_tran_rec_out
1151       );
1152 
1153       l_mmbr_tran_rec := l_mmbr_tran_rec_out;
1154 
1155       IF p_validation_level >= JTF_PLSQL_API.g_valid_level_item THEN
1156          Validate_mmbr_tran_Rec(
1157            p_api_version_number     => 1.0,
1158            p_init_msg_list          => FND_API.G_FALSE,
1159            x_return_status          => x_return_status,
1160            x_msg_count              => x_msg_count,
1161            x_msg_data               => x_msg_data,
1162            p_mmbr_tran_rec           =>    l_mmbr_tran_rec);
1163 
1164               IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1165                  RAISE FND_API.G_EXC_ERROR;
1166               ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1167                  RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1168               END IF;
1169       END IF;
1170 
1171 
1172       -- Debug Message
1173       IF (PV_DEBUG_HIGH_ON) THEN
1174 
1175       PVX_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
1176       END IF;
1177 
1178 
1179 
1180       -- Initialize API return status to SUCCESS
1181       x_return_status := FND_API.G_RET_STS_SUCCESS;
1182 
1183 
1184       -- Debug Message
1185       IF (PV_DEBUG_HIGH_ON) THEN
1186 
1187       PVX_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'end');
1188       END IF;
1189 
1190 
1191       -- Standard call to get message count and if count is 1, get message info.
1192       FND_MSG_PUB.Count_And_Get
1193         (p_count          =>   x_msg_count,
1194          p_data           =>   x_msg_data
1195       );
1196 EXCEPTION
1197 
1198    WHEN PVX_UTILITY_PVT.resource_locked THEN
1199      x_return_status := FND_API.g_ret_sts_error;
1200          PVX_UTILITY_PVT.Error_Message(p_message_name => 'PV_API_RESOURCE_LOCKED');
1201 
1202    WHEN FND_API.G_EXC_ERROR THEN
1203      ROLLBACK TO VALIDATE_Mmbr_Trans_;
1204      x_return_status := FND_API.G_RET_STS_ERROR;
1205      -- Standard call to get message count and if count=1, get the message
1206      FND_MSG_PUB.Count_And_Get (
1207             p_encoded => FND_API.G_FALSE,
1208             p_count   => x_msg_count,
1209             p_data    => x_msg_data
1210      );
1211 
1212    WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1213      ROLLBACK TO VALIDATE_Mmbr_Trans_;
1214      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1215      -- Standard call to get message count and if count=1, get the message
1216      FND_MSG_PUB.Count_And_Get (
1217             p_encoded => FND_API.G_FALSE,
1218             p_count => x_msg_count,
1219             p_data  => x_msg_data
1220      );
1221 
1222    WHEN OTHERS THEN
1223      ROLLBACK TO VALIDATE_Mmbr_Trans_;
1224      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1225      IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1226      THEN
1227         FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
1228      END IF;
1229      -- Standard call to get message count and if count=1, get the message
1230      FND_MSG_PUB.Count_And_Get (
1231             p_encoded => FND_API.G_FALSE,
1232             p_count => x_msg_count,
1233             p_data  => x_msg_data
1234      );
1235 End Validate_Mmbr_Trans;
1236 
1237 
1238 PROCEDURE Validate_Mmbr_Tran_Rec (
1239     p_api_version_number         IN   NUMBER,
1240     p_init_msg_list              IN   VARCHAR2     := FND_API.G_FALSE,
1241     x_return_status              OUT NOCOPY  VARCHAR2,
1242     x_msg_count                  OUT NOCOPY  NUMBER,
1243     x_msg_data                   OUT NOCOPY  VARCHAR2,
1244     p_mmbr_tran_rec               IN    mmbr_tran_rec_type
1245     )
1246 IS
1247 BEGIN
1248       -- Initialize message list if p_init_msg_list is set to TRUE.
1249       IF FND_API.to_Boolean( p_init_msg_list )
1250       THEN
1251          FND_MSG_PUB.initialize;
1252       END IF;
1253 
1254 
1255 
1256       -- Initialize API return status to SUCCESS
1257       x_return_status := FND_API.G_RET_STS_SUCCESS;
1258 
1259       -- Hint: Validate data
1260       -- If data not valid
1261       -- THEN
1262       -- x_return_status := FND_API.G_RET_STS_ERROR;
1263 
1264       -- Debug Message
1265       IF (PV_DEBUG_HIGH_ON) THEN
1266 
1267       PVX_UTILITY_PVT.debug_message('Private API: Validate_dm_model_rec');
1268       END IF;
1269       -- Standard call to get message count and if count is 1, get message info.
1270       FND_MSG_PUB.Count_And_Get
1271         (p_count          =>   x_msg_count,
1272          p_data           =>   x_msg_data
1273       );
1274 END Validate_mmbr_tran_Rec;
1275 
1276 END pv_pg_mmbr_transitions_PVT;