DBA Data[Home] [Help]

PACKAGE BODY: APPS.PV_PG_ENRQ_INIT_SOURCES_PVT

Source


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