DBA Data[Home] [Help]

PACKAGE BODY: APPS.PV_GE_HIST_LOG_PVT

Source


1 PACKAGE BODY PV_Ge_Hist_Log_PVT as
2 /* $Header: pvxvghlb.pls 120.4 2005/10/10 14:47:04 saarumug ship $ */
3 -- ===============================================================
4 -- Start of Comments
5 -- Package name
6 --          PV_Ge_Hist_Log_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_Ge_Hist_Log_PVT';
21 G_FILE_NAME CONSTANT VARCHAR2(12) := 'pvxvghlb.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_Ge_Hist_Log_Items (
30    p_ge_hist_log_rec IN  ge_hist_log_rec_type ,
31    x_ge_hist_log_rec OUT NOCOPY ge_hist_log_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_Ge_Hist_Log
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_ge_hist_log_rec            IN   ge_hist_log_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_Ge_Hist_Log(
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_ge_hist_log_rec              IN   ge_hist_log_rec_type  := g_miss_ge_hist_log_rec,
85     x_entity_history_log_id              OUT NOCOPY  NUMBER
86      )
87 
88  IS
89 L_API_NAME                  CONSTANT VARCHAR2(30) := 'Create_Ge_Hist_Log';
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_entity_history_log_id              NUMBER;
95    l_dummy                     NUMBER;
96    CURSOR c_id IS
97       SELECT pv_ge_history_log_b_s.NEXTVAL
98       FROM dual;
99 
100    CURSOR c_id_exists (l_id IN NUMBER) IS
101       SELECT 1
102       FROM PV_GE_HISTORY_LOG_B
103       WHERE entity_history_log_id = l_id;
104 BEGIN
105       -- Standard Start of API savepoint
106       SAVEPOINT create_ge_hist_log_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_Ge_Hist_Log');
155           END IF;
156 
157           -- Invoke validation procedures
158           Validate_ge_hist_log(
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_ge_hist_log_rec  =>  p_ge_hist_log_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_ge_hist_log_rec.entity_history_log_id IS NULL OR p_ge_hist_log_rec.entity_history_log_id = FND_API.g_miss_num THEN
176       LOOP
177          l_dummy := NULL;
178          OPEN c_id;
179          FETCH c_id INTO l_entity_history_log_id;
180          CLOSE c_id;
181 
182          OPEN c_id_exists(l_entity_history_log_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_entity_history_log_id := p_ge_hist_log_rec.entity_history_log_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_Ge_Hist_Log_Pkg.Insert_Row)
198       Pv_Ge_Hist_Log_Pkg.Insert_Row(
199           px_entity_history_log_id  => l_entity_history_log_id,
200           px_object_version_number  => l_object_version_number,
201           p_arc_history_for_entity_code  => p_ge_hist_log_rec.arc_history_for_entity_code,
202           p_history_for_entity_id  => p_ge_hist_log_rec.history_for_entity_id,
203           p_message_code  => p_ge_hist_log_rec.message_code,
204           p_history_category_code  => p_ge_hist_log_rec.history_category_code,
205           p_created_by  => FND_GLOBAL.USER_ID,
206           p_creation_date  => SYSDATE,
207           p_last_updated_by  => FND_GLOBAL.USER_ID,
208           p_last_update_date  => SYSDATE,
209           p_last_update_login  => FND_GLOBAL.conc_login_id,
210           p_partner_id  => p_ge_hist_log_rec.partner_id,
211           p_access_level_flag  => p_ge_hist_log_rec.access_level_flag,
212           p_interaction_level  => p_ge_hist_log_rec.interaction_level,
213           p_comments  => p_ge_hist_log_rec.comments
214 );
215 
216           x_entity_history_log_id := l_entity_history_log_id;
217       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
218           RAISE FND_API.G_EXC_ERROR;
219       END IF;
220 --
221 -- End of API body
222 --
223 
224       -- Standard check for p_commit
225       IF FND_API.to_Boolean( p_commit )
226       THEN
227          COMMIT WORK;
228       END IF;
229 
230 
231       -- Debug Message
232       IF (PV_DEBUG_HIGH_ON) THEN
233 
234       PVX_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'end');
235       END IF;
236 
237 
238       -- Standard call to get message count and if count is 1, get message info.
239       FND_MSG_PUB.Count_And_Get
240         (p_count          =>   x_msg_count,
241          p_data           =>   x_msg_data
242       );
243 EXCEPTION
244 
245    WHEN PVX_UTILITY_PVT.resource_locked THEN
246      x_return_status := FND_API.g_ret_sts_error;
247          PVX_UTILITY_PVT.Error_Message(p_message_name => 'PV_API_RESOURCE_LOCKED');
248 
249    WHEN FND_API.G_EXC_ERROR THEN
250      ROLLBACK TO CREATE_Ge_Hist_Log_PVT;
251      x_return_status := FND_API.G_RET_STS_ERROR;
252      -- Standard call to get message count and if count=1, get the message
253      FND_MSG_PUB.Count_And_Get (
254             p_encoded => FND_API.G_FALSE,
255             p_count   => x_msg_count,
256             p_data    => x_msg_data
257      );
258 
259    WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
260      ROLLBACK TO CREATE_Ge_Hist_Log_PVT;
261      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
262      -- Standard call to get message count and if count=1, get the message
263      FND_MSG_PUB.Count_And_Get (
264             p_encoded => FND_API.G_FALSE,
265             p_count => x_msg_count,
266             p_data  => x_msg_data
267      );
268 
269    WHEN OTHERS THEN
270      ROLLBACK TO CREATE_Ge_Hist_Log_PVT;
271      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
272      IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
273      THEN
274         FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
275      END IF;
276      -- Standard call to get message count and if count=1, get the message
277      FND_MSG_PUB.Count_And_Get (
278             p_encoded => FND_API.G_FALSE,
279             p_count => x_msg_count,
280             p_data  => x_msg_data
281      );
282 End Create_Ge_Hist_Log;
283 
284 
285 --   ==============================================================================
286 --    Start of Comments
287 --   ==============================================================================
288 --   API Name
289 --           Update_Ge_Hist_Log
290 --   Type
291 --           Private
292 --   Pre-Req
293 --
294 --   Parameters
295 --
296 --   IN
297 --       p_api_version_number      IN   NUMBER     Required
298 --       p_init_msg_list           IN   VARCHAR2   Optional  Default = FND_API_G_FALSE
299 --       p_commit                  IN   VARCHAR2   Optional  Default = FND_API.G_FALSE
300 --       p_validation_level        IN   NUMBER     Optional  Default = FND_API.G_VALID_LEVEL_FULL
301 --       p_ge_hist_log_rec            IN   ge_hist_log_rec_type  Required
302 --
303 --   OUT
304 --       x_return_status           OUT  VARCHAR2
305 --       x_msg_count               OUT  NUMBER
306 --       x_msg_data                OUT  VARCHAR2
307 --   Version : Current version 1.0
308 --   Note: This automatic generated procedure definition, it includes standard IN/OUT parameters
309 --         and basic operation, developer must manually add parameters and business logic as necessary.
310 --
311 --   History
312 --
313 --   NOTE
314 --
315 --   End of Comments
316 --   ==============================================================================
317 
318 PROCEDURE Update_Ge_Hist_Log(
319     p_api_version_number         IN   NUMBER,
320     p_init_msg_list              IN   VARCHAR2     := FND_API.G_FALSE,
321     p_commit                     IN   VARCHAR2     := FND_API.G_FALSE,
322     p_validation_level           IN  NUMBER       := FND_API.G_VALID_LEVEL_FULL,
323 
324     x_return_status              OUT NOCOPY  VARCHAR2,
325     x_msg_count                  OUT NOCOPY  NUMBER,
326     x_msg_data                   OUT NOCOPY  VARCHAR2,
327 
328     p_ge_hist_log_rec               IN    ge_hist_log_rec_type
329     )
330 
331  IS
332 
333 
334 CURSOR c_get_ge_hist_log(entity_history_log_id NUMBER) IS
335     SELECT *
336     FROM  PV_GE_HISTORY_LOG_B
337     WHERE  entity_history_log_id = p_ge_hist_log_rec.entity_history_log_id;
338     -- Hint: Developer need to provide Where clause
339 
340 
341 L_API_NAME                  CONSTANT VARCHAR2(30) := 'Update_Ge_Hist_Log';
342 L_API_VERSION_NUMBER        CONSTANT NUMBER   := 1.0;
343 -- Local Variables
344 l_object_version_number     NUMBER;
345 l_entity_history_log_id    NUMBER;
346 l_ref_ge_hist_log_rec  c_get_Ge_Hist_Log%ROWTYPE ;
347 l_tar_ge_hist_log_rec  ge_hist_log_rec_type := P_ge_hist_log_rec;
348 l_rowid  ROWID;
349 
350  BEGIN
351       -- Standard Start of API savepoint
352       SAVEPOINT update_ge_hist_log_pvt;
353 
354       -- Standard call to check for call compatibility.
355       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
356                                            p_api_version_number,
357                                            l_api_name,
358                                            G_PKG_NAME)
359       THEN
360           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
361       END IF;
362 
363 
364       -- Initialize message list if p_init_msg_list is set to TRUE.
365       IF FND_API.to_Boolean( p_init_msg_list )
366       THEN
367          FND_MSG_PUB.initialize;
368       END IF;
369 
370 
371 
372       -- Debug Message
373       IF (PV_DEBUG_HIGH_ON) THEN
374 
375       PVX_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
376       END IF;
377 
378 
379 
380       -- Initialize API return status to SUCCESS
381       x_return_status := FND_API.G_RET_STS_SUCCESS;
382 
383       -- Debug Message
384       IF (PV_DEBUG_HIGH_ON) THEN
385 
386       PVX_UTILITY_PVT.debug_message('Private API: - Open Cursor to Select');
387       END IF;
388 
389       OPEN c_get_Ge_Hist_Log( l_tar_ge_hist_log_rec.entity_history_log_id);
390 
391       FETCH c_get_Ge_Hist_Log INTO l_ref_ge_hist_log_rec  ;
392 
393        If ( c_get_Ge_Hist_Log%NOTFOUND) THEN
394   PVX_UTILITY_PVT.Error_Message(p_message_name => 'API_MISSING_UPDATE_TARGET',
395    p_token_name   => 'INFO',
396  p_token_value  => 'Ge_Hist_Log') ;
397            RAISE FND_API.G_EXC_ERROR;
398        END IF;
399        -- Debug Message
400        IF (PV_DEBUG_HIGH_ON) THEN
401 
402        PVX_UTILITY_PVT.debug_message('Private API: - Close Cursor');
403        END IF;
404        CLOSE     c_get_Ge_Hist_Log;
405 
406 
407       If (l_tar_ge_hist_log_rec.object_version_number is NULL or
408           l_tar_ge_hist_log_rec.object_version_number = FND_API.G_MISS_NUM ) Then
409   PVX_UTILITY_PVT.Error_Message(p_message_name => 'API_VERSION_MISSING',
410    p_token_name   => 'COLUMN',
411  p_token_value  => 'Last_Update_Date') ;
415       If (l_tar_ge_hist_log_rec.object_version_number <> l_ref_ge_hist_log_rec.object_version_number) Then
412           raise FND_API.G_EXC_ERROR;
413       End if;
414       -- Check Whether record has been changed by someone else
416   PVX_UTILITY_PVT.Error_Message(p_message_name => 'API_RECORD_CHANGED',
417    p_token_name   => 'INFO',
418  p_token_value  => 'Ge_Hist_Log') ;
419           raise FND_API.G_EXC_ERROR;
420       End if;
421 
422 
423       IF ( P_validation_level >= FND_API.G_VALID_LEVEL_FULL)
424       THEN
425           -- Debug message
426           IF (PV_DEBUG_HIGH_ON) THEN
427 
428           PVX_UTILITY_PVT.debug_message('Private API: Validate_Ge_Hist_Log');
429           END IF;
430 
431           -- Invoke validation procedures
432           Validate_ge_hist_log(
433             p_api_version_number     => 1.0,
434             p_init_msg_list    => FND_API.G_FALSE,
435             p_validation_level => p_validation_level,
436             p_validation_mode => JTF_PLSQL_API.g_update,
437             p_ge_hist_log_rec  =>  p_ge_hist_log_rec,
438             x_return_status    => x_return_status,
439             x_msg_count        => x_msg_count,
440             x_msg_data         => x_msg_data);
441       END IF;
442 
443       IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
444           RAISE FND_API.G_EXC_ERROR;
445       END IF;
446 
447 
448       -- Debug Message
449       IF (PV_DEBUG_HIGH_ON) THEN
450 
451       PVX_UTILITY_PVT.debug_message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API: Calling update table handler');
452       END IF;
453 
454       -- Invoke table handler(Pv_Ge_Hist_Log_Pkg.Update_Row)
455       Pv_Ge_Hist_Log_Pkg.Update_Row(
456           p_entity_history_log_id  => p_ge_hist_log_rec.entity_history_log_id,
457           p_object_version_number  => p_ge_hist_log_rec.object_version_number,
458           p_arc_history_for_entity_code  => p_ge_hist_log_rec.arc_history_for_entity_code,
459           p_history_for_entity_id  => p_ge_hist_log_rec.history_for_entity_id,
460           p_message_code  => p_ge_hist_log_rec.message_code,
461           p_history_category_code  => p_ge_hist_log_rec.history_category_code,
462           p_last_updated_by  => FND_GLOBAL.USER_ID,
463           p_last_update_date  => SYSDATE,
464           p_last_update_login  => FND_GLOBAL.conc_login_id,
465           p_partner_id  => p_ge_hist_log_rec.partner_id,
466           p_access_level_flag  => p_ge_hist_log_rec.access_level_flag,
467           p_interaction_level  => p_ge_hist_log_rec.interaction_level,
468           p_comments  => p_ge_hist_log_rec.comments
469 );
470       --
471       -- End of API body.
472       --
473 
474       -- Standard check for p_commit
475       IF FND_API.to_Boolean( p_commit )
476       THEN
477          COMMIT WORK;
478       END IF;
479 
480 
481       -- Debug Message
482       IF (PV_DEBUG_HIGH_ON) THEN
483 
484       PVX_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'end');
485       END IF;
486 
487 
488       -- Standard call to get message count and if count is 1, get message info.
489       FND_MSG_PUB.Count_And_Get
490         (p_count          =>   x_msg_count,
491          p_data           =>   x_msg_data
492       );
493 EXCEPTION
494 
495    WHEN PVX_UTILITY_PVT.resource_locked THEN
496      x_return_status := FND_API.g_ret_sts_error;
497          PVX_UTILITY_PVT.Error_Message(p_message_name => 'PV_API_RESOURCE_LOCKED');
498 
499    WHEN FND_API.G_EXC_ERROR THEN
500      ROLLBACK TO UPDATE_Ge_Hist_Log_PVT;
501      x_return_status := FND_API.G_RET_STS_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 FND_API.G_EXC_UNEXPECTED_ERROR THEN
510      ROLLBACK TO UPDATE_Ge_Hist_Log_PVT;
511      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
512      -- Standard call to get message count and if count=1, get the message
513      FND_MSG_PUB.Count_And_Get (
514             p_encoded => FND_API.G_FALSE,
515             p_count => x_msg_count,
516             p_data  => x_msg_data
517      );
518 
519    WHEN OTHERS THEN
520      ROLLBACK TO UPDATE_Ge_Hist_Log_PVT;
521      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
522      IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
523      THEN
524         FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
525      END IF;
526      -- Standard call to get message count and if count=1, get the message
527      FND_MSG_PUB.Count_And_Get (
528             p_encoded => FND_API.G_FALSE,
529             p_count => x_msg_count,
530             p_data  => x_msg_data
531      );
532 End Update_Ge_Hist_Log;
533 
534 
535 --   ==============================================================================
536 --    Start of Comments
537 --   ==============================================================================
538 --   API Name
539 --           Delete_Ge_Hist_Log
540 --   Type
541 --           Private
542 --   Pre-Req
543 --
544 --   Parameters
545 --
546 --   IN
547 --       p_api_version_number      IN   NUMBER     Required
551 --       p_entity_history_log_id                IN   NUMBER
548 --       p_init_msg_list           IN   VARCHAR2   Optional  Default = FND_API_G_FALSE
549 --       p_commit                  IN   VARCHAR2   Optional  Default = FND_API.G_FALSE
550 --       p_validation_level        IN   NUMBER     Optional  Default = FND_API.G_VALID_LEVEL_FULL
552 --       p_object_version_number   IN   NUMBER     Optional  Default = NULL
553 --
554 --   OUT
555 --       x_return_status           OUT  VARCHAR2
556 --       x_msg_count               OUT  NUMBER
557 --       x_msg_data                OUT  VARCHAR2
558 --   Version : Current version 1.0
559 --   Note: This automatic generated procedure definition, it includes standard IN/OUT parameters
560 --         and basic operation, developer must manually add parameters and business logic as necessary.
561 --
562 --   History
563 --
564 --   NOTE
565 --
566 --   End of Comments
567 --   ==============================================================================
568 
569 PROCEDURE Delete_Ge_Hist_Log(
570     p_api_version_number         IN   NUMBER,
571     p_init_msg_list              IN   VARCHAR2     := FND_API.G_FALSE,
572     p_commit                     IN   VARCHAR2     := FND_API.G_FALSE,
573     p_validation_level           IN   NUMBER       := FND_API.G_VALID_LEVEL_FULL,
574     x_return_status              OUT NOCOPY  VARCHAR2,
575     x_msg_count                  OUT NOCOPY  NUMBER,
576     x_msg_data                   OUT NOCOPY  VARCHAR2,
577     p_entity_history_log_id                   IN  NUMBER,
578     p_object_version_number      IN   NUMBER
579     )
580 
581  IS
582 L_API_NAME                  CONSTANT VARCHAR2(30) := 'Delete_Ge_Hist_Log';
583 L_API_VERSION_NUMBER        CONSTANT NUMBER   := 1.0;
584 l_object_version_number     NUMBER;
585 
586  BEGIN
587       -- Standard Start of API savepoint
588       SAVEPOINT delete_ge_hist_log_pvt;
589 
590       -- Standard call to check for call compatibility.
591       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
592                                            p_api_version_number,
593                                            l_api_name,
594                                            G_PKG_NAME)
595       THEN
596           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
597       END IF;
598 
599 
600       -- Initialize message list if p_init_msg_list is set to TRUE.
601       IF FND_API.to_Boolean( p_init_msg_list )
602       THEN
603          FND_MSG_PUB.initialize;
604       END IF;
605 
606 
607 
608       -- Debug Message
609       IF (PV_DEBUG_HIGH_ON) THEN
610 
611       PVX_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
612       END IF;
613 
614 
615 
616       -- Initialize API return status to SUCCESS
617       x_return_status := FND_API.G_RET_STS_SUCCESS;
618 
619       --
620       -- Api body
621       --
622       -- Debug Message
623       IF (PV_DEBUG_HIGH_ON) THEN
624 
625       PVX_UTILITY_PVT.debug_message( 'Private API: Calling delete table handler');
626       END IF;
627 
628       -- Invoke table handler(Pv_Ge_Hist_Log_Pkg.Delete_Row)
629       Pv_Ge_Hist_Log_Pkg.Delete_Row(
630           p_entity_history_log_id  => p_entity_history_log_id,
631           p_object_version_number => p_object_version_number     );
632       --
633       -- End of API body
634       --
635 
636       -- Standard check for p_commit
637       IF FND_API.to_Boolean( p_commit )
638       THEN
639          COMMIT WORK;
640       END IF;
641 
642 
643       -- Debug Message
644       IF (PV_DEBUG_HIGH_ON) THEN
645 
646       PVX_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'end');
647       END IF;
648 
649 
650       -- Standard call to get message count and if count is 1, get message info.
651       FND_MSG_PUB.Count_And_Get
652         (p_count          =>   x_msg_count,
653          p_data           =>   x_msg_data
654       );
655 EXCEPTION
656 
657    WHEN PVX_UTILITY_PVT.resource_locked THEN
658      x_return_status := FND_API.g_ret_sts_error;
659          PVX_UTILITY_PVT.Error_Message(p_message_name => 'PV_API_RESOURCE_LOCKED');
660 
661    WHEN FND_API.G_EXC_ERROR THEN
662      ROLLBACK TO DELETE_Ge_Hist_Log_PVT;
663      x_return_status := FND_API.G_RET_STS_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 FND_API.G_EXC_UNEXPECTED_ERROR THEN
672      ROLLBACK TO DELETE_Ge_Hist_Log_PVT;
673      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
674      -- Standard call to get message count and if count=1, get the message
675      FND_MSG_PUB.Count_And_Get (
676             p_encoded => FND_API.G_FALSE,
677             p_count => x_msg_count,
678             p_data  => x_msg_data
679      );
680 
681    WHEN OTHERS THEN
682      ROLLBACK TO DELETE_Ge_Hist_Log_PVT;
683      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
684      IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
685      THEN
689      FND_MSG_PUB.Count_And_Get (
686         FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
687      END IF;
688      -- Standard call to get message count and if count=1, get the message
690             p_encoded => FND_API.G_FALSE,
691             p_count => x_msg_count,
692             p_data  => x_msg_data
693      );
694 End Delete_Ge_Hist_Log;
695 
696 
697 
698 -- Hint: Primary key needs to be returned.
699 --   ==============================================================================
700 --    Start of Comments
701 --   ==============================================================================
702 --   API Name
703 --           Lock_Ge_Hist_Log
704 --   Type
705 --           Private
706 --   Pre-Req
707 --
708 --   Parameters
709 --
710 --   IN
711 --       p_api_version_number      IN   NUMBER     Required
712 --       p_init_msg_list           IN   VARCHAR2   Optional  Default = FND_API_G_FALSE
713 --       p_commit                  IN   VARCHAR2   Optional  Default = FND_API.G_FALSE
714 --       p_validation_level        IN   NUMBER     Optional  Default = FND_API.G_VALID_LEVEL_FULL
715 --       p_ge_hist_log_rec            IN   ge_hist_log_rec_type  Required
716 --
717 --   OUT
718 --       x_return_status           OUT  VARCHAR2
719 --       x_msg_count               OUT  NUMBER
720 --       x_msg_data                OUT  VARCHAR2
721 --   Version : Current version 1.0
722 --   Note: This automatic generated procedure definition, it includes standard IN/OUT parameters
723 --         and basic operation, developer must manually add parameters and business logic as necessary.
724 --
725 --   History
726 --
727 --   NOTE
728 --
729 --   End of Comments
730 --   ==============================================================================
731 
732 PROCEDURE Lock_Ge_Hist_Log(
733     p_api_version_number         IN   NUMBER,
734     p_init_msg_list              IN   VARCHAR2     := FND_API.G_FALSE,
735 
736     x_return_status              OUT NOCOPY  VARCHAR2,
737     x_msg_count                  OUT NOCOPY  NUMBER,
738     x_msg_data                   OUT NOCOPY  VARCHAR2,
739 
740     p_entity_history_log_id                   IN  NUMBER,
741     p_object_version             IN  NUMBER
742     )
743 
744  IS
745 L_API_NAME                  CONSTANT VARCHAR2(30) := 'Lock_Ge_Hist_Log';
746 L_API_VERSION_NUMBER        CONSTANT NUMBER   := 1.0;
747 L_FULL_NAME                 CONSTANT VARCHAR2(60) := g_pkg_name ||'.'|| l_api_name;
748 l_entity_history_log_id                  NUMBER;
749 
750 BEGIN
751 
752       -- Debug Message
753       IF (PV_DEBUG_HIGH_ON) THEN
754 
755       PVX_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
756       END IF;
757 
758 
759       -- Initialize message list if p_init_msg_list is set to TRUE.
760       IF FND_API.to_Boolean( p_init_msg_list )
761       THEN
762          FND_MSG_PUB.initialize;
763       END IF;
764 
765 
766 
767       -- Standard call to check for call compatibility.
768       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
769                                            p_api_version_number,
770                                            l_api_name,
771                                            G_PKG_NAME)
772       THEN
773           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
774       END IF;
775 
776 
777 
778       -- Initialize API return status to SUCCESS
779       x_return_status := FND_API.G_RET_STS_SUCCESS;
780 
781 
782 ------------------------ lock -------------------------
783 Pv_Ge_Hist_Log_Pkg.Lock_Row(l_entity_history_log_id,p_object_version);
784 
785 
786  -------------------- finish --------------------------
787   FND_MSG_PUB.count_and_get(
788     p_encoded => FND_API.g_false,
789     p_count   => x_msg_count,
790     p_data    => x_msg_data);
791   IF (PV_DEBUG_HIGH_ON) THEN
792 
793   PVX_UTILITY_PVT.debug_message(l_full_name ||': end');
794   END IF;
795 EXCEPTION
796 
797    WHEN PVX_UTILITY_PVT.resource_locked THEN
798      x_return_status := FND_API.g_ret_sts_error;
799          PVX_UTILITY_PVT.Error_Message(p_message_name => 'PV_API_RESOURCE_LOCKED');
800 
801    WHEN FND_API.G_EXC_ERROR THEN
802      ROLLBACK TO LOCK_Ge_Hist_Log_PVT;
803      x_return_status := FND_API.G_RET_STS_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 FND_API.G_EXC_UNEXPECTED_ERROR THEN
812      ROLLBACK TO LOCK_Ge_Hist_Log_PVT;
813      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
814      -- Standard call to get message count and if count=1, get the message
815      FND_MSG_PUB.Count_And_Get (
816             p_encoded => FND_API.G_FALSE,
817             p_count => x_msg_count,
818             p_data  => x_msg_data
819      );
820 
821    WHEN OTHERS THEN
822      ROLLBACK TO LOCK_Ge_Hist_Log_PVT;
823      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
824      IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
828      -- Standard call to get message count and if count=1, get the message
825      THEN
826         FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
827      END IF;
829      FND_MSG_PUB.Count_And_Get (
830             p_encoded => FND_API.G_FALSE,
831             p_count => x_msg_count,
832             p_data  => x_msg_data
833      );
834 End Lock_Ge_Hist_Log;
835 
836 
837 
838 
839 PROCEDURE check_Ge_Hist_Log_Uk_Items(
840     p_ge_hist_log_rec               IN   ge_hist_log_rec_type,
841     p_validation_mode            IN  VARCHAR2 := JTF_PLSQL_API.g_create,
842     x_return_status              OUT NOCOPY VARCHAR2)
843 IS
844 l_valid_flag  VARCHAR2(1);
845 
846 BEGIN
847       x_return_status := FND_API.g_ret_sts_success;
848       IF p_validation_mode = JTF_PLSQL_API.g_create
849       AND p_ge_hist_log_rec.entity_history_log_id IS NOT NULL
850       THEN
851          l_valid_flag := PVX_UTILITY_PVT.check_uniqueness(
852          'pv_ge_history_log_b',
853          'entity_history_log_id = ''' || p_ge_hist_log_rec.entity_history_log_id ||''''
854          );
855       END IF;
856 
857       IF l_valid_flag = FND_API.g_false THEN
858          PVX_UTILITY_PVT.Error_Message(p_message_name => 'PV_entity_history_log_id_DUPLICATE');
859          x_return_status := FND_API.g_ret_sts_error;
860       END IF;
861 
862 END check_Ge_Hist_Log_Uk_Items;
863 
864 
865 
866 PROCEDURE check_Ge_Hist_Log_Req_Items(
867     p_ge_hist_log_rec               IN  ge_hist_log_rec_type,
868     p_validation_mode IN VARCHAR2 := JTF_PLSQL_API.g_create,
869     x_return_status	         OUT NOCOPY VARCHAR2
870 )
871 IS
872 BEGIN
873    x_return_status := FND_API.g_ret_sts_success;
874 
875    IF p_validation_mode = JTF_PLSQL_API.g_create THEN
876 
877       /*
878       IF p_ge_hist_log_rec.entity_history_log_id = FND_API.G_MISS_NUM OR p_ge_hist_log_rec.entity_history_log_id IS NULL THEN
879                PVX_UTILITY_PVT.Error_Message('AMS_API_MISSING_FIELD', 'MISS_FIELD', 'ENTITY_HISTORY_LOG_ID' );
880                x_return_status := FND_API.g_ret_sts_error;
881       END IF;
882 
883 
884       IF p_ge_hist_log_rec.object_version_number = FND_API.G_MISS_NUM OR p_ge_hist_log_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       IF p_ge_hist_log_rec.arc_history_for_entity_code = FND_API.g_miss_char OR p_ge_hist_log_rec.arc_history_for_entity_code IS NULL THEN
891                PVX_UTILITY_PVT.Error_Message('AMS_API_MISSING_FIELD', 'MISS_FIELD', 'ARC_HISTORY_FOR_ENTITY_CODE' );
892                x_return_status := FND_API.g_ret_sts_error;
893       END IF;
894 
895 
896       IF p_ge_hist_log_rec.history_for_entity_id = FND_API.G_MISS_NUM OR p_ge_hist_log_rec.history_for_entity_id IS NULL THEN
897                PVX_UTILITY_PVT.Error_Message('AMS_API_MISSING_FIELD', 'MISS_FIELD', 'HISTORY_FOR_ENTITY_ID' );
898                x_return_status := FND_API.g_ret_sts_error;
899       END IF;
900 
901 
902       IF p_ge_hist_log_rec.message_code = FND_API.g_miss_char OR p_ge_hist_log_rec.message_code IS NULL THEN
903                PVX_UTILITY_PVT.Error_Message('AMS_API_MISSING_FIELD', 'MISS_FIELD', 'MESSAGE_CODE' );
904                x_return_status := FND_API.g_ret_sts_error;
905       END IF;
906 
907       IF p_ge_hist_log_rec.partner_id = FND_API.G_MISS_NUM OR p_ge_hist_log_rec.partner_id IS NULL THEN
908                PVX_UTILITY_PVT.Error_Message('AMS_API_MISSING_FIELD', 'MISS_FIELD', 'PARTNER_ID' );
909                x_return_status := FND_API.g_ret_sts_error;
910       END IF;
911 
912 
913       IF p_ge_hist_log_rec.access_level_flag = FND_API.g_miss_char OR p_ge_hist_log_rec.access_level_flag IS NULL THEN
914                PVX_UTILITY_PVT.Error_Message('AMS_API_MISSING_FIELD', 'MISS_FIELD', 'ACCESS_LEVEL_FLAG' );
915                x_return_status := FND_API.g_ret_sts_error;
916       END IF;
917 
918 
919       IF p_ge_hist_log_rec.interaction_level = FND_API.G_MISS_NUM OR p_ge_hist_log_rec.interaction_level IS NULL THEN
920                PVX_UTILITY_PVT.Error_Message('AMS_API_MISSING_FIELD', 'MISS_FIELD', 'INTERACTION_LEVEL' );
921                x_return_status := FND_API.g_ret_sts_error;
922       END IF;
923 
924    ELSE
925 
926 
927       IF p_ge_hist_log_rec.entity_history_log_id = FND_API.G_MISS_NUM THEN
928                PVX_UTILITY_PVT.Error_Message('AMS_API_MISSING_FIELD', 'MISS_FIELD', 'ENTITY_HISTORY_LOG_ID' );
929                x_return_status := FND_API.g_ret_sts_error;
930       END IF;
931 
932 
933       IF p_ge_hist_log_rec.object_version_number = FND_API.G_MISS_NUM THEN
934                PVX_UTILITY_PVT.Error_Message('AMS_API_MISSING_FIELD', 'MISS_FIELD', 'OBJECT_VERSION_NUMBER' );
935                x_return_status := FND_API.g_ret_sts_error;
936       END IF;
937 
938 
939       IF p_ge_hist_log_rec.arc_history_for_entity_code = FND_API.g_miss_char THEN
940                PVX_UTILITY_PVT.Error_Message('AMS_API_MISSING_FIELD', 'MISS_FIELD', 'ARC_HISTORY_FOR_ENTITY_CODE' );
941                x_return_status := FND_API.g_ret_sts_error;
942       END IF;
943 
944 
945       IF p_ge_hist_log_rec.history_for_entity_id = FND_API.G_MISS_NUM THEN
949 
946                PVX_UTILITY_PVT.Error_Message('AMS_API_MISSING_FIELD', 'MISS_FIELD', 'HISTORY_FOR_ENTITY_ID' );
947                x_return_status := FND_API.g_ret_sts_error;
948       END IF;
950 
951       IF p_ge_hist_log_rec.message_code = FND_API.g_miss_char THEN
952                PVX_UTILITY_PVT.Error_Message('AMS_API_MISSING_FIELD', 'MISS_FIELD', 'MESSAGE_CODE' );
953                x_return_status := FND_API.g_ret_sts_error;
954       END IF;
955 
956       IF p_ge_hist_log_rec.partner_id = FND_API.G_MISS_NUM THEN
957                PVX_UTILITY_PVT.Error_Message('AMS_API_MISSING_FIELD', 'MISS_FIELD', 'PARTNER_ID' );
958                x_return_status := FND_API.g_ret_sts_error;
959       END IF;
960 
961 
962       IF p_ge_hist_log_rec.access_level_flag = FND_API.g_miss_char THEN
963                PVX_UTILITY_PVT.Error_Message('AMS_API_MISSING_FIELD', 'MISS_FIELD', 'ACCESS_LEVEL_FLAG' );
964                x_return_status := FND_API.g_ret_sts_error;
965       END IF;
966 
967 
968       IF p_ge_hist_log_rec.interaction_level = FND_API.G_MISS_NUM THEN
969                PVX_UTILITY_PVT.Error_Message('AMS_API_MISSING_FIELD', 'MISS_FIELD', 'INTERACTION_LEVEL' );
970                x_return_status := FND_API.g_ret_sts_error;
971       END IF;
972    END IF;
973 
974 END check_Ge_Hist_Log_Req_Items;
975 
976 
977 
978 PROCEDURE check_Ge_Hist_Log_Fk_Items(
979     p_ge_hist_log_rec IN ge_hist_log_rec_type,
980     x_return_status OUT NOCOPY VARCHAR2
981 )
982 IS
983 BEGIN
984    x_return_status := FND_API.g_ret_sts_success;
985 
986    -- Enter custom code here
987 
988 END check_Ge_Hist_Log_Fk_Items;
989 
990 
991 
992 PROCEDURE check_Ge_Hist_Log_Lookup_Items(
993     p_ge_hist_log_rec IN ge_hist_log_rec_type,
994     x_return_status OUT NOCOPY VARCHAR2
995 )
996 IS
997 BEGIN
998    x_return_status := FND_API.g_ret_sts_success;
999 
1000    -- Enter custom code here
1001 
1002 END check_Ge_Hist_Log_Lookup_Items;
1003 
1004 
1005 
1006 PROCEDURE Check_Ge_Hist_Log_Items (
1007     P_ge_hist_log_rec     IN    ge_hist_log_rec_type,
1008     p_validation_mode  IN    VARCHAR2,
1009     x_return_status    OUT NOCOPY   VARCHAR2
1010     )
1011 IS
1012    l_return_status   VARCHAR2(1);
1013 BEGIN
1014 
1015     l_return_status := FND_API.g_ret_sts_success;
1016    -- Check Items Uniqueness API calls
1017 
1018    check_Ge_hist_log_Uk_Items(
1019       p_ge_hist_log_rec => p_ge_hist_log_rec,
1020       p_validation_mode => p_validation_mode,
1021       x_return_status => x_return_status);
1022    IF x_return_status <> FND_API.g_ret_sts_success THEN
1023       l_return_status := FND_API.g_ret_sts_error;
1024    END IF;
1025 
1026    -- Check Items Required/NOT NULL API calls
1027 
1028    check_ge_hist_log_req_items(
1029       p_ge_hist_log_rec => p_ge_hist_log_rec,
1030       p_validation_mode => p_validation_mode,
1031       x_return_status => x_return_status);
1032    IF x_return_status <> FND_API.g_ret_sts_success THEN
1033       l_return_status := FND_API.g_ret_sts_error;
1034    END IF;
1035    -- Check Items Foreign Keys API calls
1036 
1037    check_ge_hist_log_FK_items(
1038       p_ge_hist_log_rec => p_ge_hist_log_rec,
1039       x_return_status => x_return_status);
1040    IF x_return_status <> FND_API.g_ret_sts_success THEN
1041       l_return_status := FND_API.g_ret_sts_error;
1042    END IF;
1043    -- Check Items Lookups
1044 
1045    check_ge_hist_log_Lookup_items(
1046       p_ge_hist_log_rec => p_ge_hist_log_rec,
1047       x_return_status => x_return_status);
1048    IF x_return_status <> FND_API.g_ret_sts_success THEN
1049       l_return_status := FND_API.g_ret_sts_error;
1050    END IF;
1051 
1052    x_return_status := l_return_status;
1053 
1054 END Check_ge_hist_log_Items;
1055 
1056 
1057 
1058 
1059 
1060 PROCEDURE Complete_Ge_Hist_Log_Rec (
1061    p_ge_hist_log_rec IN ge_hist_log_rec_type,
1062    x_complete_rec OUT NOCOPY ge_hist_log_rec_type)
1063 IS
1064    l_return_status  VARCHAR2(1);
1065 
1066    CURSOR c_complete IS
1067       SELECT *
1068       FROM pv_ge_history_log_b
1069       WHERE entity_history_log_id = p_ge_hist_log_rec.entity_history_log_id;
1070    l_ge_hist_log_rec c_complete%ROWTYPE;
1071 BEGIN
1072    x_complete_rec := p_ge_hist_log_rec;
1073 
1074 
1075    OPEN c_complete;
1076    FETCH c_complete INTO l_ge_hist_log_rec;
1077    CLOSE c_complete;
1078 
1079    -- entity_history_log_id
1080    IF p_ge_hist_log_rec.entity_history_log_id IS NULL THEN
1081       x_complete_rec.entity_history_log_id := l_ge_hist_log_rec.entity_history_log_id;
1082    END IF;
1083 
1084    -- object_version_number
1085    IF p_ge_hist_log_rec.object_version_number IS NULL THEN
1086       x_complete_rec.object_version_number := l_ge_hist_log_rec.object_version_number;
1087    END IF;
1088 
1089    -- arc_history_for_entity_code
1090    IF p_ge_hist_log_rec.arc_history_for_entity_code IS NULL THEN
1091       x_complete_rec.arc_history_for_entity_code := l_ge_hist_log_rec.arc_history_for_entity_code;
1092    END IF;
1093 
1094    -- history_for_entity_id
1095    IF p_ge_hist_log_rec.history_for_entity_id IS NULL THEN
1096       x_complete_rec.history_for_entity_id := l_ge_hist_log_rec.history_for_entity_id;
1100    IF p_ge_hist_log_rec.message_code IS NULL THEN
1097    END IF;
1098 
1099    -- message_code
1101       x_complete_rec.message_code := l_ge_hist_log_rec.message_code;
1102    END IF;
1103 
1104    -- history_category_code
1105    IF p_ge_hist_log_rec.history_category_code IS NULL THEN
1106       x_complete_rec.history_category_code := l_ge_hist_log_rec.history_category_code;
1107    END IF;
1108 
1109    -- created_by
1110    IF p_ge_hist_log_rec.created_by IS NULL THEN
1111       x_complete_rec.created_by := l_ge_hist_log_rec.created_by;
1112    END IF;
1113 
1114    -- creation_date
1115    IF p_ge_hist_log_rec.creation_date IS NULL THEN
1116       x_complete_rec.creation_date := l_ge_hist_log_rec.creation_date;
1117    END IF;
1118 
1119    -- last_updated_by
1120    IF p_ge_hist_log_rec.last_updated_by IS NULL THEN
1121       x_complete_rec.last_updated_by := l_ge_hist_log_rec.last_updated_by;
1122    END IF;
1123 
1124    -- last_update_date
1125    IF p_ge_hist_log_rec.last_update_date IS NULL THEN
1126       x_complete_rec.last_update_date := l_ge_hist_log_rec.last_update_date;
1127    END IF;
1128 
1129    -- last_update_login
1130    IF p_ge_hist_log_rec.last_update_login IS NULL THEN
1131       x_complete_rec.last_update_login := l_ge_hist_log_rec.last_update_login;
1132    END IF;
1133 
1134    -- partner_id
1135    IF p_ge_hist_log_rec.partner_id IS NULL THEN
1136       x_complete_rec.partner_id := l_ge_hist_log_rec.partner_id;
1137    END IF;
1138 
1139    -- access_level_flag
1140    IF p_ge_hist_log_rec.access_level_flag IS NULL THEN
1141       x_complete_rec.access_level_flag := l_ge_hist_log_rec.access_level_flag;
1142    END IF;
1143 
1144    -- interaction_level
1145    IF p_ge_hist_log_rec.interaction_level IS NULL THEN
1146       x_complete_rec.interaction_level := l_ge_hist_log_rec.interaction_level;
1147    END IF;
1148    -- Note: Developers need to modify the procedure
1149    -- to handle any business specific requirements.
1150 END Complete_Ge_Hist_Log_Rec;
1151 
1152 
1153 
1154 
1155 PROCEDURE Default_Ge_Hist_Log_Items ( p_ge_hist_log_rec IN ge_hist_log_rec_type ,
1156                                 x_ge_hist_log_rec OUT NOCOPY ge_hist_log_rec_type )
1157 IS
1158    l_ge_hist_log_rec ge_hist_log_rec_type := p_ge_hist_log_rec;
1159 BEGIN
1160    -- Developers should put their code to default the record type
1161    -- e.g. IF p_campaign_rec.status_code IS NULL
1162    --      OR p_campaign_rec.status_code = FND_API.G_MISS_CHAR THEN
1163    --         l_campaign_rec.status_code := 'NEW' ;
1164    --      END IF ;
1165    --
1166    NULL ;
1167 END;
1168 
1169 
1170 
1171 
1172 PROCEDURE Validate_Ge_Hist_Log(
1173     p_api_version_number         IN   NUMBER,
1174     p_init_msg_list              IN   VARCHAR2     := FND_API.G_FALSE,
1175     p_validation_level           IN   NUMBER := FND_API.G_VALID_LEVEL_FULL,
1176     p_ge_hist_log_rec               IN   ge_hist_log_rec_type,
1177     p_validation_mode            IN    VARCHAR2,
1178     x_return_status              OUT NOCOPY  VARCHAR2,
1179     x_msg_count                  OUT NOCOPY  NUMBER,
1180     x_msg_data                   OUT NOCOPY  VARCHAR2
1181     )
1182  IS
1183 L_API_NAME                  CONSTANT VARCHAR2(30) := 'Validate_Ge_Hist_Log';
1184 L_API_VERSION_NUMBER        CONSTANT NUMBER   := 1.0;
1185 l_object_version_number     NUMBER;
1186 l_ge_hist_log_rec     ge_hist_log_rec_type;
1187 l_ge_hist_log_rec_out ge_hist_log_rec_type;
1188 
1189  BEGIN
1190       -- Standard Start of API savepoint
1191       SAVEPOINT validate_ge_hist_log_;
1192 
1193       -- Standard call to check for call compatibility.
1194       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
1195                                            p_api_version_number,
1196                                            l_api_name,
1197                                            G_PKG_NAME)
1198       THEN
1199           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1200       END IF;
1201 
1202 
1203       -- Initialize message list if p_init_msg_list is set to TRUE.
1204       IF FND_API.to_Boolean( p_init_msg_list )
1205       THEN
1206          FND_MSG_PUB.initialize;
1207       END IF;
1208 
1209 
1210       IF p_validation_level >= JTF_PLSQL_API.g_valid_level_item THEN
1211               Check_ge_hist_log_Items(
1212                  p_ge_hist_log_rec        => p_ge_hist_log_rec,
1213                  p_validation_mode   => p_validation_mode,
1214                  x_return_status     => x_return_status
1215               );
1216 
1217               IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1218                   RAISE FND_API.G_EXC_ERROR;
1219               ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1220                   RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1221               END IF;
1222       END IF;
1223 
1224       IF p_validation_mode = JTF_PLSQL_API.g_create THEN
1225          Default_Ge_Hist_Log_Items (p_ge_hist_log_rec => p_ge_hist_log_rec ,
1226                                 x_ge_hist_log_rec => l_ge_hist_log_rec) ;
1227       END IF ;
1228 
1229 
1230       Complete_ge_hist_log_Rec(
1231          p_ge_hist_log_rec        => l_ge_hist_log_rec,
1232          x_complete_rec           => l_ge_hist_log_rec_out
1233       );
1234 
1238          Validate_ge_hist_log_Rec(
1235       l_ge_hist_log_rec := l_ge_hist_log_rec_out;
1236 
1237       IF p_validation_level >= JTF_PLSQL_API.g_valid_level_item THEN
1239            p_api_version_number     => 1.0,
1240            p_init_msg_list          => FND_API.G_FALSE,
1241            x_return_status          => x_return_status,
1242            x_msg_count              => x_msg_count,
1243            x_msg_data               => x_msg_data,
1244            p_ge_hist_log_rec           =>    l_ge_hist_log_rec);
1245 
1246               IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1247                  RAISE FND_API.G_EXC_ERROR;
1248               ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1249                  RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1250               END IF;
1251       END IF;
1252 
1253 
1254       -- Debug Message
1255       IF (PV_DEBUG_HIGH_ON) THEN
1256 
1257       PVX_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
1258       END IF;
1259 
1260 
1261 
1262       -- Initialize API return status to SUCCESS
1263       x_return_status := FND_API.G_RET_STS_SUCCESS;
1264 
1265 
1266       -- Debug Message
1267       IF (PV_DEBUG_HIGH_ON) THEN
1268 
1269       PVX_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'end');
1270       END IF;
1271 
1272 
1273       -- Standard call to get message count and if count is 1, get message info.
1274       FND_MSG_PUB.Count_And_Get
1275         (p_count          =>   x_msg_count,
1276          p_data           =>   x_msg_data
1277       );
1278 EXCEPTION
1279 
1280    WHEN PVX_UTILITY_PVT.resource_locked THEN
1281      x_return_status := FND_API.g_ret_sts_error;
1282          PVX_UTILITY_PVT.Error_Message(p_message_name => 'PV_API_RESOURCE_LOCKED');
1283 
1284    WHEN FND_API.G_EXC_ERROR THEN
1285      ROLLBACK TO VALIDATE_Ge_Hist_Log_;
1286      x_return_status := FND_API.G_RET_STS_ERROR;
1287      -- Standard call to get message count and if count=1, get the message
1288      FND_MSG_PUB.Count_And_Get (
1289             p_encoded => FND_API.G_FALSE,
1290             p_count   => x_msg_count,
1291             p_data    => x_msg_data
1292      );
1293 
1294    WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1295      ROLLBACK TO VALIDATE_Ge_Hist_Log_;
1296      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1297      -- Standard call to get message count and if count=1, get the message
1298      FND_MSG_PUB.Count_And_Get (
1299             p_encoded => FND_API.G_FALSE,
1300             p_count => x_msg_count,
1301             p_data  => x_msg_data
1302      );
1303 
1304    WHEN OTHERS THEN
1305      ROLLBACK TO VALIDATE_Ge_Hist_Log_;
1306      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1307      IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1308      THEN
1309         FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
1310      END IF;
1311      -- Standard call to get message count and if count=1, get the message
1312      FND_MSG_PUB.Count_And_Get (
1313             p_encoded => FND_API.G_FALSE,
1314             p_count => x_msg_count,
1315             p_data  => x_msg_data
1316      );
1317 End Validate_Ge_Hist_Log;
1318 
1319 
1320 PROCEDURE Validate_Ge_Hist_Log_Rec (
1321     p_api_version_number         IN   NUMBER,
1322     p_init_msg_list              IN   VARCHAR2     := FND_API.G_FALSE,
1323     x_return_status              OUT NOCOPY  VARCHAR2,
1324     x_msg_count                  OUT NOCOPY  NUMBER,
1325     x_msg_data                   OUT NOCOPY  VARCHAR2,
1326     p_ge_hist_log_rec               IN    ge_hist_log_rec_type
1327     )
1328 IS
1329 BEGIN
1330       -- Initialize message list if p_init_msg_list is set to TRUE.
1331       IF FND_API.to_Boolean( p_init_msg_list )
1332       THEN
1333          FND_MSG_PUB.initialize;
1334       END IF;
1335 
1336 
1337 
1338       -- Initialize API return status to SUCCESS
1339       x_return_status := FND_API.G_RET_STS_SUCCESS;
1340 
1341       -- Hint: Validate data
1342       -- If data not valid
1343       -- THEN
1344       -- x_return_status := FND_API.G_RET_STS_ERROR;
1345 
1346       -- Debug Message
1347       IF (PV_DEBUG_HIGH_ON) THEN
1348 
1349       PVX_UTILITY_PVT.debug_message('Private API: Validate_dm_model_rec');
1350       END IF;
1351       -- Standard call to get message count and if count is 1, get message info.
1352       FND_MSG_PUB.Count_And_Get
1353         (p_count          =>   x_msg_count,
1354          p_data           =>   x_msg_data
1355       );
1356 END Validate_ge_hist_log_Rec;
1357 
1358 
1359 ---------------------------------------------------------------------
1360 -- FUNCTION
1361 --    get_message_from_param
1362 --
1363 -- PURPOSE
1364 --    This function returns the message
1365 
1366 ---------------------------------------------------------------------
1367 FUNCTION get_message_from_param(
1368 	   p_entity_history_log_id            IN NUMBER,
1369 	   p_message_code  IN VARCHAR2
1370 	)
1371 	RETURN VARCHAR2
1372 	IS
1373 	    l_msg_text VARCHAR2(2000);
1374 	    l_lookup_text VARCHAR2(2000);
1375 	    l_query VARCHAR2(4000);
1376         l_product_code VARCHAR(5);
1377         l_note_text VARCHAR(4000);
1378 
1379 	    type cur_type            IS        REF CURSOR;
1380 	    l_meaning_cursor         cur_type;
1381 
1385 	    WHERE entity_history_log_id = p_entity_history_log_id;
1382 	    CURSOR c_get_rectype IS
1383 	    SELECT param_type, lookup_type, param_name, param_value
1384 	    FROM pv_ge_history_log_params
1386 
1387 	BEGIN
1388 
1389         IF (SUBSTR(p_message_code, 1, 2) = 'PV') THEN
1390             l_product_code := 'PV';
1391         ELSIF (SUBSTR(p_message_code, 1, 3) = 'OZF') THEN
1392             l_product_code := 'OZF';
1393         END IF;
1394 
1395 	    FND_MESSAGE.SET_NAME (l_product_code,p_message_code);
1396 
1397 	    FOR c_token IN c_get_rectype LOOP
1398 
1399 	        IF (c_token.param_type = 'LOOKUP') THEN
1400 
1401 
1402 	            l_query := ' SELECT meaning FROM FND_LOOKUP_VALUES ' ||
1403 	                       ' WHERE  lookup_type = :1 ' ||
1404 	                       ' AND    lookup_code = :2 ' ||
1405                            ' AND    language = USERENV(''LANG'') ' ;
1406 
1407 		        OPEN l_meaning_cursor FOR  l_query
1408 		        USING  c_token.lookup_type , c_token.param_value;
1409 
1410 	            FETCH l_meaning_cursor INTO l_lookup_text;
1411 	            CLOSE l_meaning_cursor;
1412 
1413 	            FND_MESSAGE.SET_TOKEN(c_token.param_name , l_lookup_text);
1414 
1415 	        ELSIF (c_token.param_type = 'MESSAGE') THEN
1416 
1417 	            FND_MESSAGE.SET_TOKEN(c_token.param_name
1418 	                                  , FND_MESSAGE.GET_STRING(l_product_code,c_token.param_value));
1419 
1420             ELSIF (c_token.param_type = 'NOTE') THEN
1421 
1422                 l_note_text := null;
1423                 -- this is for note to be added to the text of the log
1424                 FOR x IN (SELECT n.NOTES FROM jtf_notes_vl n, PV_GE_HISTORY_LOG_PARAMS p
1425                           WHERE p.ENTITY_HISTORY_LOG_ID = p_entity_history_log_id
1426                           AND   n.jtf_note_id = p.param_value
1427                           AND   p.param_type = 'NOTE')
1428                 LOOP
1429                     l_note_text := x.NOTES;
1430                 END LOOP;
1431 
1432                 IF l_note_text IS NULL THEN
1433                     l_note_text := '';
1434                 ELSE
1435                     l_note_text := FND_MESSAGE.GET_STRING(l_product_code,'PV_NOTE_TEXT')
1436                                    || ': ' || l_note_text;
1437                 END IF;
1438 
1439 	            FND_MESSAGE.SET_TOKEN(c_token.param_name, l_note_text);
1440 
1441 	        ELSE
1442 	            FND_MESSAGE.SET_TOKEN(c_token.param_name , c_token.param_value);
1443 	        END IF;
1444 
1445 	    END LOOP;
1446 	   l_msg_text := FND_MESSAGE.GET;
1447 
1448 	   RETURN l_msg_text;
1449 
1450 END get_message_from_param;
1451 
1452 END PV_Ge_Hist_Log_PVT;