DBA Data[Home] [Help]

PACKAGE BODY: APPS.AMS_WEB_TRACK_PVT

Source


1 PACKAGE BODY AMS_Web_Track_PVT as
2 /* $Header: amsvwtgb.pls 120.1 2005/06/27 05:42:14 appldev ship $ */
3 -- ===============================================================
4 -- Start of Comments
5 -- Package name
6 --          AMS_Web_Track_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):= 'AMS_Web_Track_PVT';
21 G_FILE_NAME CONSTANT VARCHAR2(12) := 'amsvwtgb.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 /*
30 PROCEDURE insert_log_mesg (p_mesg IN VARCHAR2)
31 IS
32 PRAGMA AUTONOMOUS_TRANSACTION;
33 BEGIN
34  insert into raghu_table values (p_mesg,sysdate);
35  commit;
36 END;
37 */
38 
39 PROCEDURE Default_Web_Track_Items (
40    p_web_track_rec IN  web_track_rec_type ,
41    x_web_track_rec OUT NOCOPY web_track_rec_type
42 ) ;
43 
44 
45 
46 -- Hint: Primary key needs to be returned.
47 --   ==============================================================================
48 --    Start of Comments
49 --   ==============================================================================
50 --   API Name
51 --           Create_Web_Track
52 --   Type
53 --           Private
54 --   Pre-Req
55 --
56 --   Parameters
57 --
58 --   IN
59 --       p_api_version_number      IN   NUMBER     Required
60 --       p_init_msg_list           IN   VARCHAR2   Optional  Default = FND_API_G_FALSE
61 --       p_commit                  IN   VARCHAR2   Optional  Default = FND_API.G_FALSE
62 --       p_validation_level        IN   NUMBER     Optional  Default = FND_API.G_VALID_LEVEL_FULL
63 --       p_web_track_rec            IN   web_track_rec_type  Required
64 --
65 --   OUT
66 --       x_return_status           OUT  VARCHAR2
67 --       x_msg_count               OUT  NUMBER
68 --       x_msg_data                OUT  VARCHAR2
69 --   Version : Current version 1.0
70 --   Note: This automatic generated procedure definition, it includes standard IN/OUT parameters
71 --         and basic operation, developer must manually add parameters and business logic as necessary.
72 --
73 --   History
74 --
75 --   NOTE
76 --
77 --   End of Comments
78 --   ==============================================================================
79 
80 PROCEDURE Create_Web_Track(
81     p_api_version_number         IN   NUMBER,
82     p_init_msg_list              IN   VARCHAR2     := FND_API.G_FALSE,
83     p_commit                     IN   VARCHAR2     := FND_API.G_FALSE,
84     p_validation_level           IN   NUMBER       := FND_API.G_VALID_LEVEL_FULL,
85     x_return_status              OUT NOCOPY  VARCHAR2,
86     x_msg_count                  OUT NOCOPY  NUMBER,
87     x_msg_data                   OUT NOCOPY  VARCHAR2,
88     p_web_track_rec              IN   web_track_rec_type, -- := g_miss_web_track_rec,
89     x_web_tracking_id              OUT NOCOPY  NUMBER
90      )
91 
92  IS
93    L_API_NAME                  CONSTANT VARCHAR2(30) := 'Create_Web_Track';
94    L_API_VERSION_NUMBER        CONSTANT NUMBER   := 1.0;
95    l_return_status_full        VARCHAR2(1);
96    l_object_version_number     NUMBER := 1;
97    l_org_id                    NUMBER := FND_API.G_MISS_NUM;
98    l_web_tracking_id              NUMBER;
99    l_dummy                     NUMBER;
100    CURSOR c_id IS
101       SELECT AMS_WEB_TRACKING_S.NEXTVAL
102       FROM dual;
103 
104    CURSOR c_id_exists (l_id IN NUMBER) IS
105       SELECT 1
106       FROM AMS_WEB_TRACKING
107       WHERE web_tracking_id = l_id;
108 BEGIN
109       -- Standard Start of API savepoint
110       SAVEPOINT create_web_track_pvt;
111 
112       --insert_log_mesg('SAVEPOINT create_web_track_pvt ::::');
113 
114       -- Standard call to check for call compatibility.
115       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
116                                            p_api_version_number,
117                                            l_api_name,
118                                            G_PKG_NAME)
119       THEN
120           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
121       END IF;
122 
123       --insert_log_mesg('Standard call to check for call compatibility');
124       -- Initialize message list if p_init_msg_list is set to TRUE.
125       IF FND_API.to_Boolean( p_init_msg_list )
126       THEN
127          FND_MSG_PUB.initialize;
128       END IF;
129 
130 
131 
132       -- Debug Message
133       AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
134 
135 
136 
137       -- Initialize API return status to SUCCESS
138       x_return_status := FND_API.G_RET_STS_SUCCESS;
139 
140       -- =========================================================================
141       -- Validate Environment
142       -- =========================================================================
143 
144       IF FND_GLOBAL.USER_ID IS NULL
145       THEN
146          AMS_Utility_PVT.Error_Message(p_message_name => 'USER_PROFILE_MISSING');
147           RAISE FND_API.G_EXC_ERROR;
148       END IF;
149 
150       --insert_log_mesg('Validate Environment');
151 
152       IF ( P_validation_level >= FND_API.G_VALID_LEVEL_FULL)
153       THEN
154           -- Debug message
155           AMS_UTILITY_PVT.debug_message('Private API: Validate_Web_Track');
156 
157           -- Invoke validation procedures
158           Validate_web_track(
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_web_track_rec  =>  p_web_track_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       --insert_log_mesg('Done Validate_web_track');
170       --insert_log_mesg('Done Validate_web_track'||x_return_status);
171       IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
172           RAISE FND_API.G_EXC_ERROR;
173       END IF;
174 
175    -- Local variable initialization
176 
177 	--insert_log_mesg('Local variable initialization');
178 
179 
180    IF p_web_track_rec.web_tracking_id IS NULL OR p_web_track_rec.web_tracking_id = FND_API.g_miss_num THEN
181       LOOP
182          l_dummy := NULL;
183          OPEN c_id;
184          FETCH c_id INTO l_web_tracking_id;
185          CLOSE c_id;
186 
187          OPEN c_id_exists(l_web_tracking_id);
188          FETCH c_id_exists INTO l_dummy;
189          CLOSE c_id_exists;
190          EXIT WHEN l_dummy IS NULL;
191       END LOOP;
192    ELSE
193          l_web_tracking_id := p_web_track_rec.web_tracking_id;
194    END IF;
195 
196       -- Debug Message
197       AMS_UTILITY_PVT.debug_message( 'Private API: Calling create table handler');
198       --insert_log_mesg('Private API: Calling create table handler ::::');
199 
200       -- Invoke table handler(Ams_Web_Track_Pkg.Insert_Row)
201       Ams_Web_Track_Pkg.Insert_Row(
202           px_web_tracking_id  => l_web_tracking_id,
203           p_schedule_id  => p_web_track_rec.schedule_id,
204           p_party_id  => p_web_track_rec.party_id,
205           p_placement_id  => p_web_track_rec.placement_id,
206           p_content_item_id  => p_web_track_rec.content_item_id,
207           p_last_update_date  => SYSDATE,
208           p_last_updated_by  => FND_GLOBAL.USER_ID,
209           p_creation_date  => SYSDATE,
210           p_created_by  => FND_GLOBAL.USER_ID,
211           p_last_update_login  => FND_GLOBAL.conc_login_id,
212           px_object_version_number  => l_object_version_number,
213           p_attribute_category  => p_web_track_rec.attribute_category,
214           p_attribute1  => p_web_track_rec.attribute1,
215           p_attribute2  => p_web_track_rec.attribute2,
216           p_attribute3  => p_web_track_rec.attribute3,
217           p_attribute4  => p_web_track_rec.attribute4,
218           p_attribute5  => p_web_track_rec.attribute5,
219           p_attribute6  => p_web_track_rec.attribute6,
220           p_attribute7  => p_web_track_rec.attribute7,
221           p_attribute8  => p_web_track_rec.attribute8,
222           p_attribute9  => p_web_track_rec.attribute9,
223           p_attribute10  => p_web_track_rec.attribute10,
224           p_attribute11  => p_web_track_rec.attribute11,
225           p_attribute12  => p_web_track_rec.attribute12,
226           p_attribute13  => p_web_track_rec.attribute13,
227           p_attribute14  => p_web_track_rec.attribute14,
228           p_attribute15  => p_web_track_rec.attribute15
229 );
230 
231           x_web_tracking_id := l_web_tracking_id;
232 	  --insert_log_mesg('Web Tracking Id ::::'||x_web_tracking_id);
233       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
234           RAISE FND_API.G_EXC_ERROR;
235       END IF;
236 --
237 -- End of API body
238 --
239 
240       -- Standard check for p_commit
241       IF FND_API.to_Boolean( p_commit )
242       THEN
243          COMMIT WORK;
244       END IF;
245 
246 
247       -- Debug Message
248       AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'end');
249 
250 
251       -- Standard call to get message count and if count is 1, get message info.
252       FND_MSG_PUB.Count_And_Get
253         (p_count          =>   x_msg_count,
254          p_data           =>   x_msg_data
255       );
256 EXCEPTION
257 
258    WHEN AMS_Utility_PVT.resource_locked THEN
259      x_return_status := FND_API.g_ret_sts_error;
260          AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
261 	 --insert_log_mesg('AMS_API_RESOURCE_LOCKED');
262 
263    WHEN FND_API.G_EXC_ERROR THEN
264      ROLLBACK TO create_web_track_pvt;
265      x_return_status := FND_API.G_RET_STS_ERROR;
266      -- Standard call to get message count and if count=1, get the message
267      FND_MSG_PUB.Count_And_Get (
268             p_encoded => FND_API.G_FALSE,
269             p_count   => x_msg_count,
270             p_data    => x_msg_data
271      );
272      --insert_log_mesg('x_return_status');
273 
274    WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
275      ROLLBACK TO create_web_track_pvt;
276      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
277      -- Standard call to get message count and if count=1, get the message
278      FND_MSG_PUB.Count_And_Get (
279             p_encoded => FND_API.G_FALSE,
280             p_count => x_msg_count,
281             p_data  => x_msg_data
282      );
283 
284    WHEN OTHERS THEN
285      ROLLBACK TO create_web_track_pvt;
286      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
287      IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
288      THEN
289         FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
290      END IF;
291      -- Standard call to get message count and if count=1, get the message
292      FND_MSG_PUB.Count_And_Get (
293             p_encoded => FND_API.G_FALSE,
294             p_count => x_msg_count,
295             p_data  => x_msg_data
296      );
297      --insert_log_mesg('Ams_Web_Track_Pkg.Insert_Row'||x_return_status);
298 End Create_Web_Track;
299 
300 
301 --   ==============================================================================
302 --    Start of Comments
303 --   ==============================================================================
304 --   API Name
305 --           Update_Web_Track
306 --   Type
307 --           Private
308 --   Pre-Req
309 --
310 --   Parameters
311 --
312 --   IN
313 --       p_api_version_number      IN   NUMBER     Required
314 --       p_init_msg_list           IN   VARCHAR2   Optional  Default = FND_API_G_FALSE
315 --       p_commit                  IN   VARCHAR2   Optional  Default = FND_API.G_FALSE
316 --       p_validation_level        IN   NUMBER     Optional  Default = FND_API.G_VALID_LEVEL_FULL
317 --       p_web_track_rec            IN   web_track_rec_type  Required
318 --
319 --   OUT
320 --       x_return_status           OUT  VARCHAR2
321 --       x_msg_count               OUT  NUMBER
322 --       x_msg_data                OUT  VARCHAR2
323 --   Version : Current version 1.0
324 --   Note: This automatic generated procedure definition, it includes standard IN/OUT parameters
325 --         and basic operation, developer must manually add parameters and business logic as necessary.
326 --
327 --   History
328 --
329 --   NOTE
330 --
331 --   End of Comments
332 --   ==============================================================================
333 
334 PROCEDURE Update_Web_Track(
335     p_api_version_number         IN   NUMBER,
336     p_init_msg_list              IN   VARCHAR2     := FND_API.G_FALSE,
337     p_commit                     IN   VARCHAR2     := FND_API.G_FALSE,
338     p_validation_level           IN  NUMBER       := FND_API.G_VALID_LEVEL_FULL,
339 
340     x_return_status              OUT NOCOPY  VARCHAR2,
341     x_msg_count                  OUT NOCOPY  NUMBER,
342     x_msg_data                   OUT NOCOPY  VARCHAR2,
343 
344     p_web_track_rec               IN    web_track_rec_type
345     )
346 
347  IS
348 
349 
350 CURSOR c_get_web_track(web_tracking_id NUMBER) IS
351     SELECT *
352     FROM  AMS_WEB_TRACKING
353     WHERE  web_tracking_id = p_web_track_rec.web_tracking_id;
354     -- Hint: Developer need to provide Where clause
355 
356 
357 L_API_NAME                  CONSTANT VARCHAR2(30) := 'Update_Web_Track';
358 L_API_VERSION_NUMBER        CONSTANT NUMBER   := 1.0;
359 -- Local Variables
360 l_object_version_number     NUMBER;
361 l_web_tracking_id    NUMBER;
362 l_ref_web_track_rec  c_get_Web_Track%ROWTYPE ;
363 l_tar_web_track_rec  web_track_rec_type := P_web_track_rec;
364 l_rowid  ROWID;
365 
366  BEGIN
367       -- Standard Start of API savepoint
368       SAVEPOINT update_web_track_pvt;
369 
370       -- Standard call to check for call compatibility.
371       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
372                                            p_api_version_number,
373                                            l_api_name,
374                                            G_PKG_NAME)
375       THEN
376           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
377       END IF;
378 
379 
380       -- Initialize message list if p_init_msg_list is set to TRUE.
381       IF FND_API.to_Boolean( p_init_msg_list )
382       THEN
383          FND_MSG_PUB.initialize;
384       END IF;
385 
386 
387 
388       -- Debug Message
389       AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
390 
391 
392 
393       -- Initialize API return status to SUCCESS
394       x_return_status := FND_API.G_RET_STS_SUCCESS;
395 
396       -- Debug Message
397       AMS_UTILITY_PVT.debug_message('Private API: - Open Cursor to Select');
398 
399       OPEN c_get_Web_Track( l_tar_web_track_rec.web_tracking_id);
400 
401       FETCH c_get_Web_Track INTO l_ref_web_track_rec  ;
402 
403        If ( c_get_Web_Track%NOTFOUND) THEN
404   AMS_Utility_PVT.Error_Message(p_message_name => 'API_MISSING_UPDATE_TARGET',
405    p_token_name   => 'INFO',
406  p_token_value  => 'Web_Track') ;
407            RAISE FND_API.G_EXC_ERROR;
408        END IF;
409        -- Debug Message
410        AMS_UTILITY_PVT.debug_message('Private API: - Close Cursor');
411        CLOSE     c_get_Web_Track;
412 
413 
414       If (l_tar_web_track_rec.object_version_number is NULL or
415           l_tar_web_track_rec.object_version_number = FND_API.G_MISS_NUM ) Then
416   AMS_Utility_PVT.Error_Message(p_message_name => 'API_VERSION_MISSING',
417    p_token_name   => 'COLUMN',
418  p_token_value  => 'Last_Update_Date') ;
419           raise FND_API.G_EXC_ERROR;
420       End if;
421       -- Check Whether record has been changed by someone else
422       If (l_tar_web_track_rec.object_version_number <> l_ref_web_track_rec.object_version_number) Then
423   AMS_Utility_PVT.Error_Message(p_message_name => 'API_RECORD_CHANGED',
424    p_token_name   => 'INFO',
425  p_token_value  => 'Web_Track') ;
426           raise FND_API.G_EXC_ERROR;
427       End if;
428 
429 
430       IF ( P_validation_level >= FND_API.G_VALID_LEVEL_FULL)
431       THEN
432           -- Debug message
433           AMS_UTILITY_PVT.debug_message('Private API: Validate_Web_Track');
434 
435 
436           -- Invoke validation procedures
437           Validate_web_track(
438             p_api_version_number     => 1.0,
439             p_init_msg_list    => FND_API.G_FALSE,
440             p_validation_level => p_validation_level,
441             p_validation_mode => JTF_PLSQL_API.g_update,
442             p_web_track_rec  =>  p_web_track_rec,
443             x_return_status    => x_return_status,
444             x_msg_count        => x_msg_count,
445             x_msg_data         => x_msg_data);
446       END IF;
447 
448       IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
449           RAISE FND_API.G_EXC_ERROR;
450       END IF;
451 
452 
453       -- Debug Message
454       AMS_UTILITY_PVT.debug_message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API: Calling update table handler');
455 
456       -- Invoke table handler(Ams_Web_Track_Pkg.Update_Row)
457       Ams_Web_Track_Pkg.Update_Row(
458           p_web_tracking_id  => p_web_track_rec.web_tracking_id,
459           p_schedule_id  => p_web_track_rec.schedule_id,
460           p_party_id  => p_web_track_rec.party_id,
461           p_placement_id  => p_web_track_rec.placement_id,
462           p_content_item_id  => p_web_track_rec.content_item_id,
463           p_last_update_date  => SYSDATE,
464           p_last_updated_by  => FND_GLOBAL.USER_ID,
465           p_last_update_login  => FND_GLOBAL.conc_login_id,
466           p_object_version_number  => p_web_track_rec.object_version_number,
467           p_attribute_category  => p_web_track_rec.attribute_category,
468           p_attribute1  => p_web_track_rec.attribute1,
469           p_attribute2  => p_web_track_rec.attribute2,
470           p_attribute3  => p_web_track_rec.attribute3,
471           p_attribute4  => p_web_track_rec.attribute4,
472           p_attribute5  => p_web_track_rec.attribute5,
473           p_attribute6  => p_web_track_rec.attribute6,
474           p_attribute7  => p_web_track_rec.attribute7,
475           p_attribute8  => p_web_track_rec.attribute8,
476           p_attribute9  => p_web_track_rec.attribute9,
477           p_attribute10  => p_web_track_rec.attribute10,
478           p_attribute11  => p_web_track_rec.attribute11,
479           p_attribute12  => p_web_track_rec.attribute12,
480           p_attribute13  => p_web_track_rec.attribute13,
481           p_attribute14  => p_web_track_rec.attribute14,
482           p_attribute15  => p_web_track_rec.attribute15
483 );
484       --
485       -- End of API body.
486       --
487 
488       -- Standard check for p_commit
489       IF FND_API.to_Boolean( p_commit )
490       THEN
491          COMMIT WORK;
492       END IF;
493 
494 
495       -- Debug Message
496       AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'end');
497 
498 
499       -- Standard call to get message count and if count is 1, get message info.
500       FND_MSG_PUB.Count_And_Get
501         (p_count          =>   x_msg_count,
502          p_data           =>   x_msg_data
503       );
504 EXCEPTION
505 
506    WHEN AMS_Utility_PVT.resource_locked THEN
507      x_return_status := FND_API.g_ret_sts_error;
508          AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
509 
510    WHEN FND_API.G_EXC_ERROR THEN
511      ROLLBACK TO UPDATE_Web_Track_PVT;
512      x_return_status := FND_API.G_RET_STS_ERROR;
513      -- Standard call to get message count and if count=1, get the message
514      FND_MSG_PUB.Count_And_Get (
515             p_encoded => FND_API.G_FALSE,
516             p_count   => x_msg_count,
517             p_data    => x_msg_data
518      );
519 
520    WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
521      ROLLBACK TO UPDATE_Web_Track_PVT;
522      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
523      -- Standard call to get message count and if count=1, get the message
524      FND_MSG_PUB.Count_And_Get (
525             p_encoded => FND_API.G_FALSE,
526             p_count => x_msg_count,
527             p_data  => x_msg_data
528      );
529 
530    WHEN OTHERS THEN
531      ROLLBACK TO UPDATE_Web_Track_PVT;
532      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
533      IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
534      THEN
535         FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
536      END IF;
537      -- Standard call to get message count and if count=1, get the message
538      FND_MSG_PUB.Count_And_Get (
539             p_encoded => FND_API.G_FALSE,
540             p_count => x_msg_count,
541             p_data  => x_msg_data
542      );
543 End Update_Web_Track;
544 
545 
546 --   ==============================================================================
547 --    Start of Comments
548 --   ==============================================================================
549 --   API Name
550 --           Delete_Web_Track
551 --   Type
552 --           Private
553 --   Pre-Req
554 --
555 --   Parameters
556 --
557 --   IN
558 --       p_api_version_number      IN   NUMBER     Required
559 --       p_init_msg_list           IN   VARCHAR2   Optional  Default = FND_API_G_FALSE
560 --       p_commit                  IN   VARCHAR2   Optional  Default = FND_API.G_FALSE
561 --       p_validation_level        IN   NUMBER     Optional  Default = FND_API.G_VALID_LEVEL_FULL
562 --       p_web_tracking_id                IN   NUMBER
563 --       p_object_version_number   IN   NUMBER     Optional  Default = NULL
564 --
565 --   OUT
566 --       x_return_status           OUT  VARCHAR2
567 --       x_msg_count               OUT  NUMBER
568 --       x_msg_data                OUT  VARCHAR2
569 --   Version : Current version 1.0
570 --   Note: This automatic generated procedure definition, it includes standard IN/OUT parameters
571 --         and basic operation, developer must manually add parameters and business logic as necessary.
572 --
573 --   History
574 --
575 --   NOTE
576 --
577 --   End of Comments
578 --   ==============================================================================
579 
580 PROCEDURE Delete_Web_Track(
581     p_api_version_number         IN   NUMBER,
582     p_init_msg_list              IN   VARCHAR2     := FND_API.G_FALSE,
583     p_commit                     IN   VARCHAR2     := FND_API.G_FALSE,
584     p_validation_level           IN   NUMBER       := FND_API.G_VALID_LEVEL_FULL,
585     x_return_status              OUT NOCOPY  VARCHAR2,
586     x_msg_count                  OUT NOCOPY  NUMBER,
587     x_msg_data                   OUT NOCOPY  VARCHAR2,
588     p_web_tracking_id                   IN  NUMBER,
589     p_object_version_number      IN   NUMBER
590     )
591 
592  IS
593 L_API_NAME                  CONSTANT VARCHAR2(30) := 'Delete_Web_Track';
594 L_API_VERSION_NUMBER        CONSTANT NUMBER   := 1.0;
595 l_object_version_number     NUMBER;
596 
597  BEGIN
598       -- Standard Start of API savepoint
599       SAVEPOINT delete_web_track_pvt;
600 
601       -- Standard call to check for call compatibility.
602       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
603                                            p_api_version_number,
604                                            l_api_name,
605                                            G_PKG_NAME)
606       THEN
607           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
608       END IF;
609 
610 
611       -- Initialize message list if p_init_msg_list is set to TRUE.
612       IF FND_API.to_Boolean( p_init_msg_list )
613       THEN
614          FND_MSG_PUB.initialize;
615       END IF;
616 
617 
618 
619       -- Debug Message
620       AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
621 
622 
623 
624       -- Initialize API return status to SUCCESS
625       x_return_status := FND_API.G_RET_STS_SUCCESS;
626 
627       --
628       -- Api body
629       --
630       -- Debug Message
631       AMS_UTILITY_PVT.debug_message( 'Private API: Calling delete table handler');
632 
633       -- Invoke table handler(Ams_Web_Track_Pkg.Delete_Row)
634       Ams_Web_Track_Pkg.Delete_Row(
635           p_web_tracking_id  => p_web_tracking_id,
636           p_object_version_number => p_object_version_number     );
637       --
638       -- End of API body
639       --
640 
641       -- Standard check for p_commit
642       IF FND_API.to_Boolean( p_commit )
643       THEN
644          COMMIT WORK;
645       END IF;
646 
647 
648       -- Debug Message
649       AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'end');
650 
651 
652       -- Standard call to get message count and if count is 1, get message info.
653       FND_MSG_PUB.Count_And_Get
654         (p_count          =>   x_msg_count,
655          p_data           =>   x_msg_data
656       );
657 EXCEPTION
658 
659    WHEN AMS_Utility_PVT.resource_locked THEN
660      x_return_status := FND_API.g_ret_sts_error;
661          AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
662 
663    WHEN FND_API.G_EXC_ERROR THEN
664      ROLLBACK TO DELETE_Web_Track_PVT;
665      x_return_status := FND_API.G_RET_STS_ERROR;
666      -- Standard call to get message count and if count=1, get the message
667      FND_MSG_PUB.Count_And_Get (
668             p_encoded => FND_API.G_FALSE,
669             p_count   => x_msg_count,
670             p_data    => x_msg_data
671      );
672 
673    WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
674      ROLLBACK TO DELETE_Web_Track_PVT;
675      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
676      -- Standard call to get message count and if count=1, get the message
677      FND_MSG_PUB.Count_And_Get (
678             p_encoded => FND_API.G_FALSE,
679             p_count => x_msg_count,
680             p_data  => x_msg_data
681      );
682 
683    WHEN OTHERS THEN
684      ROLLBACK TO DELETE_Web_Track_PVT;
685      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
686      IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
687      THEN
688         FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
689      END IF;
690      -- Standard call to get message count and if count=1, get the message
691      FND_MSG_PUB.Count_And_Get (
692             p_encoded => FND_API.G_FALSE,
693             p_count => x_msg_count,
694             p_data  => x_msg_data
695      );
696 End Delete_Web_Track;
697 
698 
699 
700 -- Hint: Primary key needs to be returned.
701 --   ==============================================================================
702 --    Start of Comments
703 --   ==============================================================================
704 --   API Name
705 --           Lock_Web_Track
706 --   Type
707 --           Private
708 --   Pre-Req
709 --
710 --   Parameters
711 --
712 --   IN
713 --       p_api_version_number      IN   NUMBER     Required
714 --       p_init_msg_list           IN   VARCHAR2   Optional  Default = FND_API_G_FALSE
715 --       p_commit                  IN   VARCHAR2   Optional  Default = FND_API.G_FALSE
716 --       p_validation_level        IN   NUMBER     Optional  Default = FND_API.G_VALID_LEVEL_FULL
717 --       p_web_track_rec            IN   web_track_rec_type  Required
718 --
719 --   OUT
720 --       x_return_status           OUT  VARCHAR2
721 --       x_msg_count               OUT  NUMBER
722 --       x_msg_data                OUT  VARCHAR2
723 --   Version : Current version 1.0
724 --   Note: This automatic generated procedure definition, it includes standard IN/OUT parameters
725 --         and basic operation, developer must manually add parameters and business logic as necessary.
726 --
727 --   History
728 --
729 --   NOTE
730 --
731 --   End of Comments
732 --   ==============================================================================
733 
734 PROCEDURE Lock_Web_Track(
735     p_api_version_number         IN   NUMBER,
736     p_init_msg_list              IN   VARCHAR2     := FND_API.G_FALSE,
737 
738     x_return_status              OUT NOCOPY  VARCHAR2,
739     x_msg_count                  OUT NOCOPY  NUMBER,
740     x_msg_data                   OUT NOCOPY  VARCHAR2,
741 
742     p_web_tracking_id                   IN  NUMBER,
743     p_object_version             IN  NUMBER
744     )
745 
746  IS
747 L_API_NAME                  CONSTANT VARCHAR2(30) := 'Lock_Web_Track';
748 L_API_VERSION_NUMBER        CONSTANT NUMBER   := 1.0;
749 L_FULL_NAME                 CONSTANT VARCHAR2(60) := g_pkg_name ||'.'|| l_api_name;
750 l_web_tracking_id                  NUMBER;
751 
752 BEGIN
753 
754       -- Debug Message
755       AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
756 
757 
758       -- Initialize message list if p_init_msg_list is set to TRUE.
759       IF FND_API.to_Boolean( p_init_msg_list )
760       THEN
761          FND_MSG_PUB.initialize;
762       END IF;
763 
764 
765 
766       -- Standard call to check for call compatibility.
767       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
768                                            p_api_version_number,
769                                            l_api_name,
770                                            G_PKG_NAME)
771       THEN
772           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
773       END IF;
774 
775 
776 
777       -- Initialize API return status to SUCCESS
778       x_return_status := FND_API.G_RET_STS_SUCCESS;
779 
780 
781 ------------------------ lock -------------------------
782 Ams_Web_Track_Pkg.Lock_Row(l_web_tracking_id,p_object_version);
783 
784 
785  -------------------- finish --------------------------
786   FND_MSG_PUB.count_and_get(
787     p_encoded => FND_API.g_false,
788     p_count   => x_msg_count,
789     p_data    => x_msg_data);
790   AMS_Utility_PVT.debug_message(l_full_name ||': end');
791 EXCEPTION
792 
793    WHEN AMS_Utility_PVT.resource_locked THEN
794      x_return_status := FND_API.g_ret_sts_error;
795          AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
796 
797    WHEN FND_API.G_EXC_ERROR THEN
798      ROLLBACK TO LOCK_Web_Track_PVT;
799      x_return_status := FND_API.G_RET_STS_ERROR;
800      -- Standard call to get message count and if count=1, get the message
801      FND_MSG_PUB.Count_And_Get (
802             p_encoded => FND_API.G_FALSE,
803             p_count   => x_msg_count,
804             p_data    => x_msg_data
805      );
806 
807    WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
808      ROLLBACK TO LOCK_Web_Track_PVT;
809      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
810      -- Standard call to get message count and if count=1, get the message
811      FND_MSG_PUB.Count_And_Get (
812             p_encoded => FND_API.G_FALSE,
813             p_count => x_msg_count,
814             p_data  => x_msg_data
815      );
816 
817    WHEN OTHERS THEN
818      ROLLBACK TO LOCK_Web_Track_PVT;
819      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
820      IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
821      THEN
822         FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
823      END IF;
824      -- Standard call to get message count and if count=1, get the message
825      FND_MSG_PUB.Count_And_Get (
826             p_encoded => FND_API.G_FALSE,
827             p_count => x_msg_count,
828             p_data  => x_msg_data
829      );
830 End Lock_Web_Track;
831 
832 
833 
834 
835 PROCEDURE check_Web_Track_Uk_Items(
836     p_web_track_rec               IN   web_track_rec_type,
837     p_validation_mode            IN  VARCHAR2 := JTF_PLSQL_API.g_create,
838     x_return_status              OUT NOCOPY VARCHAR2)
839 IS
840 l_valid_flag  VARCHAR2(1);
841 
842 BEGIN
843       x_return_status := FND_API.g_ret_sts_success;
844       IF p_validation_mode = JTF_PLSQL_API.g_create
845       AND p_web_track_rec.web_tracking_id IS NOT NULL
846       THEN
847          l_valid_flag := AMS_Utility_PVT.check_uniqueness(
848          'ams_web_tracking',
849          'web_tracking_id = ''' || p_web_track_rec.web_tracking_id ||''''
850          );
851       END IF;
852 
853       IF l_valid_flag = FND_API.g_false THEN
854          AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_web_tracking_id_DUPLICATE');
855          x_return_status := FND_API.g_ret_sts_error;
856       END IF;
857 
858 END check_Web_Track_Uk_Items;
859 
860 
861 
862 PROCEDURE check_Web_Track_Req_Items(
863     p_web_track_rec               IN  web_track_rec_type,
864     p_validation_mode IN VARCHAR2 := JTF_PLSQL_API.g_create,
865     x_return_status	         OUT NOCOPY VARCHAR2
866 )
867 IS
868 BEGIN
869    x_return_status := FND_API.g_ret_sts_success;
870    --insert_log_mesg('check_Web_Track_Req_Items');
871    --insert_log_mesg(x_return_status);
872 
873    IF p_validation_mode = JTF_PLSQL_API.g_create THEN
874 
875       --insert_log_mesg('Web Tracking Id ::::'||p_web_track_rec.web_tracking_id);
876 
877      -- IF p_web_track_rec.web_tracking_id = FND_API.G_MISS_NUM OR p_web_track_rec.web_tracking_id IS NULL THEN
878        --insert_log_mesg('error');
879 	 --      AMS_Utility_PVT.Error_Message('AMS_API_MISSING_FIELD', 'MISS_FIELD', 'WEB_TRACKING_ID' );
880            --    x_return_status := FND_API.g_ret_sts_error;
881      -- END IF;
882       --insert_log_mesg(x_return_status);
883 
884       IF p_web_track_rec.schedule_id = FND_API.G_MISS_NUM OR p_web_track_rec.schedule_id IS NULL THEN
885                AMS_Utility_PVT.Error_Message('AMS_API_MISSING_FIELD', 'MISS_FIELD', 'SCHEDULE_ID' );
886                x_return_status := FND_API.g_ret_sts_error;
887       END IF;
888 
889        --insert_log_mesg('Schedule Id ::::'||p_web_track_rec.schedule_id);
890       IF p_web_track_rec.party_id = FND_API.G_MISS_NUM OR p_web_track_rec.party_id IS NULL THEN
891                AMS_Utility_PVT.Error_Message('AMS_API_MISSING_FIELD', 'MISS_FIELD', 'PARTY_ID' );
892                x_return_status := FND_API.g_ret_sts_error;
893       END IF;
894 
895 	--insert_log_mesg(p_web_track_rec.placement_id);
896       IF p_web_track_rec.placement_id = FND_API.G_MISS_NUM OR p_web_track_rec.placement_id IS NULL THEN
897                AMS_Utility_PVT.Error_Message('AMS_API_MISSING_FIELD', 'MISS_FIELD', 'PLACEMENT_ID' );
898                x_return_status := FND_API.g_ret_sts_error;
899       END IF;
900 
901 
902    ELSE
903 
904          --insert_log_mesg('else check_Web_Track_Req_Items');
905       IF p_web_track_rec.web_tracking_id = FND_API.G_MISS_NUM THEN
906                AMS_Utility_PVT.Error_Message('AMS_API_MISSING_FIELD', 'MISS_FIELD', 'WEB_TRACKING_ID' );
907                x_return_status := FND_API.g_ret_sts_error;
908       END IF;
909 
910 
911       IF p_web_track_rec.schedule_id = FND_API.G_MISS_NUM THEN
912                AMS_Utility_PVT.Error_Message('AMS_API_MISSING_FIELD', 'MISS_FIELD', 'SCHEDULE_ID' );
913                x_return_status := FND_API.g_ret_sts_error;
914       END IF;
915 
916 
917       IF p_web_track_rec.party_id = FND_API.G_MISS_NUM THEN
918                AMS_Utility_PVT.Error_Message('AMS_API_MISSING_FIELD', 'MISS_FIELD', 'PARTY_ID' );
919                x_return_status := FND_API.g_ret_sts_error;
920       END IF;
921 
922 
923       IF p_web_track_rec.placement_id = FND_API.G_MISS_NUM THEN
924                AMS_Utility_PVT.Error_Message('AMS_API_MISSING_FIELD', 'MISS_FIELD', 'PLACEMENT_ID' );
925                x_return_status := FND_API.g_ret_sts_error;
926       END IF;
927    END IF;
928 
929    --insert_log_mesg('check_Web_Track_Req_Items done');
930 
931 END check_Web_Track_Req_Items;
932 
933 
934 
935 PROCEDURE check_Web_Track_Fk_Items(
936     p_web_track_rec IN web_track_rec_type,
937     x_return_status OUT NOCOPY VARCHAR2
938 )
939 IS
940 BEGIN
941    x_return_status := FND_API.g_ret_sts_success;
942 
943    -- Enter custom code here
944 
945 END check_Web_Track_Fk_Items;
946 
947 
948 
949 PROCEDURE check_Web_Track_Lookup_Items(
950     p_web_track_rec IN web_track_rec_type,
951     x_return_status OUT NOCOPY VARCHAR2
952 )
953 IS
954 BEGIN
955    x_return_status := FND_API.g_ret_sts_success;
956 
957    -- Enter custom code here
958 
959 END check_Web_Track_Lookup_Items;
960 
961 
962 
963 PROCEDURE Check_Web_Track_Items (
964     P_web_track_rec     IN    web_track_rec_type,
965     p_validation_mode  IN    VARCHAR2,
966     x_return_status    OUT NOCOPY   VARCHAR2
967     )
968 IS
969    l_return_status   VARCHAR2(1);
970 BEGIN
971 
972     l_return_status := FND_API.g_ret_sts_success;
973    -- Check Items Uniqueness API calls
974    --insert_log_mesg('inside Check_web_track_Items');
975    --insert_log_mesg(l_return_status);
976    check_Web_track_Uk_Items(
977       p_web_track_rec => p_web_track_rec,
978       p_validation_mode => p_validation_mode,
979       x_return_status => x_return_status);
980       --insert_log_mesg(x_return_status);
981    IF x_return_status <> FND_API.g_ret_sts_success THEN
982       l_return_status := FND_API.g_ret_sts_error;
983    END IF;
984       --insert_log_mesg('done check_Web_track_Uk_Items');
985 
986    -- Check Items Required/NOT NULL API calls
987   --insert_log_mesg('start check_web_track_req_items');
988    check_web_track_req_items(
989       p_web_track_rec => p_web_track_rec,
990       p_validation_mode => p_validation_mode,
991       x_return_status => x_return_status);
992       --insert_log_mesg(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    --insert_log_mesg('Check Items Required/NOT NULL API calls');
998    -- Check Items Foreign Keys API calls
999 
1000    check_web_track_FK_items(
1001       p_web_track_rec => p_web_track_rec,
1002       x_return_status => x_return_status);
1003       --insert_log_mesg(x_return_status);
1004    IF x_return_status <> FND_API.g_ret_sts_success THEN
1005       l_return_status := FND_API.g_ret_sts_error;
1006    END IF;
1007    -- Check Items Lookups
1008    --insert_log_mesg('Check Items Lookups');
1009    check_web_track_Lookup_items(
1010       p_web_track_rec => p_web_track_rec,
1011       x_return_status => x_return_status);
1012       --insert_log_mesg(x_return_status);
1013    IF x_return_status <> FND_API.g_ret_sts_success THEN
1014       l_return_status := FND_API.g_ret_sts_error;
1015    END IF;
1016 
1017    x_return_status := l_return_status;
1018    --insert_log_mesg(x_return_status);
1019 
1020 END Check_web_track_Items;
1021 
1022 
1023 
1024 
1025 
1026 PROCEDURE Complete_Web_Track_Rec (
1027    p_web_track_rec IN web_track_rec_type,
1028    x_complete_rec OUT NOCOPY web_track_rec_type)
1029 IS
1030    l_return_status  VARCHAR2(1);
1031 
1032    CURSOR c_complete IS
1033       SELECT *
1034       FROM ams_web_tracking
1035       WHERE web_tracking_id = p_web_track_rec.web_tracking_id;
1036    l_web_track_rec c_complete%ROWTYPE;
1037 BEGIN
1038    x_complete_rec := p_web_track_rec;
1039 
1040 
1041    OPEN c_complete;
1042    FETCH c_complete INTO l_web_track_rec;
1043    CLOSE c_complete;
1044 
1045    -- web_tracking_id
1046    IF p_web_track_rec.web_tracking_id IS NULL THEN
1047       x_complete_rec.web_tracking_id := l_web_track_rec.web_tracking_id;
1048    END IF;
1049 
1050    -- schedule_id
1051    IF p_web_track_rec.schedule_id IS NULL THEN
1052       x_complete_rec.schedule_id := l_web_track_rec.schedule_id;
1053    END IF;
1054 
1055    -- party_id
1056    IF p_web_track_rec.party_id IS NULL THEN
1057       x_complete_rec.party_id := l_web_track_rec.party_id;
1058    END IF;
1059 
1060    -- placement_id
1061    IF p_web_track_rec.placement_id IS NULL THEN
1062       x_complete_rec.placement_id := l_web_track_rec.placement_id;
1063    END IF;
1064 
1065    -- content_item_id
1066    IF p_web_track_rec.content_item_id IS NULL THEN
1067       x_complete_rec.content_item_id := l_web_track_rec.content_item_id;
1068    END IF;
1069 
1070    -- last_update_date
1071    IF p_web_track_rec.last_update_date IS NULL THEN
1072       x_complete_rec.last_update_date := l_web_track_rec.last_update_date;
1073    END IF;
1074 
1075    -- last_updated_by
1076    IF p_web_track_rec.last_updated_by IS NULL THEN
1077       x_complete_rec.last_updated_by := l_web_track_rec.last_updated_by;
1078    END IF;
1079 
1080    -- creation_date
1081    IF p_web_track_rec.creation_date IS NULL THEN
1082       x_complete_rec.creation_date := l_web_track_rec.creation_date;
1083    END IF;
1084 
1085    -- created_by
1086    IF p_web_track_rec.created_by IS NULL THEN
1087       x_complete_rec.created_by := l_web_track_rec.created_by;
1088    END IF;
1089 
1090    -- last_update_login
1091    IF p_web_track_rec.last_update_login IS NULL THEN
1092       x_complete_rec.last_update_login := l_web_track_rec.last_update_login;
1093    END IF;
1094 
1095    -- object_version_number
1096    IF p_web_track_rec.object_version_number IS NULL THEN
1097       x_complete_rec.object_version_number := l_web_track_rec.object_version_number;
1098    END IF;
1099 
1100    -- attribute_category
1101    IF p_web_track_rec.attribute_category IS NULL THEN
1102       x_complete_rec.attribute_category := l_web_track_rec.attribute_category;
1103    END IF;
1104 
1105    -- attribute1
1106    IF p_web_track_rec.attribute1 IS NULL THEN
1107       x_complete_rec.attribute1 := l_web_track_rec.attribute1;
1108    END IF;
1109 
1110    -- attribute2
1111    IF p_web_track_rec.attribute2 IS NULL THEN
1112       x_complete_rec.attribute2 := l_web_track_rec.attribute2;
1113    END IF;
1114 
1115    -- attribute3
1116    IF p_web_track_rec.attribute3 IS NULL THEN
1117       x_complete_rec.attribute3 := l_web_track_rec.attribute3;
1118    END IF;
1119 
1120    -- attribute4
1121    IF p_web_track_rec.attribute4 IS NULL THEN
1122       x_complete_rec.attribute4 := l_web_track_rec.attribute4;
1123    END IF;
1124 
1125    -- attribute5
1126    IF p_web_track_rec.attribute5 IS NULL THEN
1127       x_complete_rec.attribute5 := l_web_track_rec.attribute5;
1128    END IF;
1129 
1130    -- attribute6
1131    IF p_web_track_rec.attribute6 IS NULL THEN
1132       x_complete_rec.attribute6 := l_web_track_rec.attribute6;
1133    END IF;
1134 
1135    -- attribute7
1136    IF p_web_track_rec.attribute7 IS NULL THEN
1137       x_complete_rec.attribute7 := l_web_track_rec.attribute7;
1138    END IF;
1139 
1140    -- attribute8
1141    IF p_web_track_rec.attribute8 IS NULL THEN
1142       x_complete_rec.attribute8 := l_web_track_rec.attribute8;
1143    END IF;
1144 
1145    -- attribute9
1146    IF p_web_track_rec.attribute9 IS NULL THEN
1147       x_complete_rec.attribute9 := l_web_track_rec.attribute9;
1148    END IF;
1149 
1150    -- attribute10
1151    IF p_web_track_rec.attribute10 IS NULL THEN
1152       x_complete_rec.attribute10 := l_web_track_rec.attribute10;
1153    END IF;
1154 
1155    -- attribute11
1156    IF p_web_track_rec.attribute11 IS NULL THEN
1157       x_complete_rec.attribute11 := l_web_track_rec.attribute11;
1158    END IF;
1159 
1160    -- attribute12
1161    IF p_web_track_rec.attribute12 IS NULL THEN
1162       x_complete_rec.attribute12 := l_web_track_rec.attribute12;
1163    END IF;
1164 
1165    -- attribute13
1166    IF p_web_track_rec.attribute13 IS NULL THEN
1167       x_complete_rec.attribute13 := l_web_track_rec.attribute13;
1168    END IF;
1169 
1170    -- attribute14
1171    IF p_web_track_rec.attribute14 IS NULL THEN
1172       x_complete_rec.attribute14 := l_web_track_rec.attribute14;
1173    END IF;
1174 
1175    -- attribute15
1176    IF p_web_track_rec.attribute15 IS NULL THEN
1177       x_complete_rec.attribute15 := l_web_track_rec.attribute15;
1178    END IF;
1179    -- Note: Developers need to modify the procedure
1180    -- to handle any business specific requirements.
1181 END Complete_Web_Track_Rec;
1182 
1183 
1184 
1185 
1186 PROCEDURE Default_Web_Track_Items ( p_web_track_rec IN web_track_rec_type ,
1187                                 x_web_track_rec OUT NOCOPY web_track_rec_type )
1188 IS
1189    l_web_track_rec web_track_rec_type := p_web_track_rec;
1190 BEGIN
1191    -- Developers should put their code to default the record type
1192    -- e.g. IF p_campaign_rec.status_code IS NULL
1193    --      OR p_campaign_rec.status_code = FND_API.G_MISS_CHAR THEN
1194    --         l_campaign_rec.status_code := 'NEW' ;
1195    --      END IF ;
1196    --
1197    NULL ;
1198 END;
1199 
1200 
1201 
1202 
1203 PROCEDURE Validate_Web_Track(
1204     p_api_version_number         IN   NUMBER,
1205     p_init_msg_list              IN   VARCHAR2     := FND_API.G_FALSE,
1206     p_validation_level           IN   NUMBER := FND_API.G_VALID_LEVEL_FULL,
1207     p_web_track_rec               IN   web_track_rec_type,
1208     p_validation_mode            IN    VARCHAR2,
1209     x_return_status              OUT NOCOPY  VARCHAR2,
1210     x_msg_count                  OUT NOCOPY  NUMBER,
1211     x_msg_data                   OUT NOCOPY  VARCHAR2
1212     )
1213  IS
1214 L_API_NAME                  CONSTANT VARCHAR2(30) := 'Validate_Web_Track';
1215 L_API_VERSION_NUMBER        CONSTANT NUMBER   := 1.0;
1216 l_object_version_number     NUMBER;
1217 l_web_track_rec  web_track_rec_type;
1218 
1219  BEGIN
1220       -- Standard Start of API savepoint
1221       SAVEPOINT validate_web_track_;
1222 
1223       --insert_log_mesg('Standard Start of API savepoint');
1224 
1225       -- Standard call to check for call compatibility.
1226       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
1227                                            p_api_version_number,
1228                                            l_api_name,
1229                                            G_PKG_NAME)
1230       THEN
1231           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1232       END IF;
1233 
1234       --insert_log_mesg('Standard call to check for call');
1235       -- Initialize message list if p_init_msg_list is set to TRUE.
1236       IF FND_API.to_Boolean( p_init_msg_list )
1237       THEN
1238          FND_MSG_PUB.initialize;
1239       END IF;
1240       --insert_log_mesg('Private API: Validate_Web_Track');
1241 
1242       IF p_validation_level >= JTF_PLSQL_API.g_valid_level_item THEN
1243 	--insert_log_mesg('Check_web_track_Items');
1244               Check_web_track_Items(
1245                  p_web_track_rec        => p_web_track_rec,
1246                  p_validation_mode   => p_validation_mode,
1247                  x_return_status     => x_return_status
1248               );
1249 	--insert_log_mesg('done Check_web_track_Items');
1250 	--insert_log_mesg(x_return_status);
1251               IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1252 	          RAISE FND_API.G_EXC_ERROR;
1253               ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1254                   RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1255               END IF;
1256       END IF;
1257 
1258       IF p_validation_mode = JTF_PLSQL_API.g_create THEN
1259 	 --insert_log_mesg('before Default_Web_Track_Items');
1260          Default_Web_Track_Items (p_web_track_rec => p_web_track_rec ,
1261                                 x_web_track_rec => l_web_track_rec) ;
1262       END IF ;
1263 	--insert_log_mesg('before Complete_web_track_Rec');
1264 
1265       Complete_web_track_Rec(
1266          p_web_track_rec        => l_web_track_rec,
1267          x_complete_rec        => l_web_track_rec
1268       );
1269       --insert_log_mesg('Complete_web_track_Rec');
1270 
1271       IF p_validation_level >= JTF_PLSQL_API.g_valid_level_item THEN
1272          Validate_web_track_Rec(
1273            p_api_version_number     => 1.0,
1274            p_init_msg_list          => FND_API.G_FALSE,
1275            x_return_status          => x_return_status,
1276            x_msg_count              => x_msg_count,
1277            x_msg_data               => x_msg_data,
1278            p_web_track_rec           =>    l_web_track_rec);
1279 
1280               IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1281                  RAISE FND_API.G_EXC_ERROR;
1282               ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1283                  RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1284               END IF;
1285       END IF;
1286 
1287 
1288       -- Debug Message
1289       AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
1290 
1291 
1292 
1293       -- Initialize API return status to SUCCESS
1294       x_return_status := FND_API.G_RET_STS_SUCCESS;
1295 
1296       --insert_log_mesg(x_return_status);
1297       -- Debug Message
1298       AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'end');
1299 
1300 
1301       -- Standard call to get message count and if count is 1, get message info.
1302       FND_MSG_PUB.Count_And_Get
1303         (p_count          =>   x_msg_count,
1304          p_data           =>   x_msg_data
1305       );
1306 EXCEPTION
1307 
1308    WHEN AMS_Utility_PVT.resource_locked THEN
1309      x_return_status := FND_API.g_ret_sts_error;
1310          AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
1311 
1312    WHEN FND_API.G_EXC_ERROR THEN
1313      ROLLBACK TO VALIDATE_Web_Track_;
1314      x_return_status := FND_API.G_RET_STS_ERROR;
1315      -- Standard call to get message count and if count=1, get the message
1316      FND_MSG_PUB.Count_And_Get (
1317             p_encoded => FND_API.G_FALSE,
1318             p_count   => x_msg_count,
1319             p_data    => x_msg_data
1320      );
1321 
1322    WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1323      ROLLBACK TO VALIDATE_Web_Track_;
1324      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1325      -- Standard call to get message count and if count=1, get the message
1326      FND_MSG_PUB.Count_And_Get (
1327             p_encoded => FND_API.G_FALSE,
1328             p_count => x_msg_count,
1329             p_data  => x_msg_data
1330      );
1331 
1332    WHEN OTHERS THEN
1333      ROLLBACK TO VALIDATE_Web_Track_;
1334      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1335      IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1336      THEN
1337         FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
1338      END IF;
1339      -- Standard call to get message count and if count=1, get the message
1340      FND_MSG_PUB.Count_And_Get (
1341             p_encoded => FND_API.G_FALSE,
1342             p_count => x_msg_count,
1343             p_data  => x_msg_data
1344      );
1345 End Validate_Web_Track;
1346 
1347 
1348 PROCEDURE Validate_Web_Track_Rec (
1349     p_api_version_number         IN   NUMBER,
1350     p_init_msg_list              IN   VARCHAR2     := FND_API.G_FALSE,
1351     x_return_status              OUT NOCOPY  VARCHAR2,
1352     x_msg_count                  OUT NOCOPY  NUMBER,
1353     x_msg_data                   OUT NOCOPY  VARCHAR2,
1354     p_web_track_rec               IN    web_track_rec_type
1355     )
1356 IS
1357 BEGIN
1358       -- Initialize message list if p_init_msg_list is set to TRUE.
1359       IF FND_API.to_Boolean( p_init_msg_list )
1360       THEN
1361          FND_MSG_PUB.initialize;
1362       END IF;
1363 
1364 
1365 
1366       -- Initialize API return status to SUCCESS
1367       x_return_status := FND_API.G_RET_STS_SUCCESS;
1368 
1369       -- Hint: Validate data
1370       -- If data not valid
1371       -- THEN
1372       -- x_return_status := FND_API.G_RET_STS_ERROR;
1373 
1374       -- Debug Message
1375       AMS_UTILITY_PVT.debug_message('Private API: Validate_dm_model_rec');
1376       -- Standard call to get message count and if count is 1, get message info.
1377       FND_MSG_PUB.Count_And_Get
1378         (p_count          =>   x_msg_count,
1379          p_data           =>   x_msg_data
1380       );
1381 END Validate_web_track_Rec;
1382 
1383 -- Foreward Procedure Declarations
1384 --
1385 
1386 PROCEDURE Default_Web_Recomms_Items (
1387    p_web_recomms_rec IN  web_recomms_rec_type ,
1388    x_web_recomms_rec OUT NOCOPY web_recomms_rec_type
1389 ) ;
1390 
1391 
1392 
1393 -- Hint: Primary key needs to be returned.
1394 --   ==============================================================================
1395 --    Start of Comments
1396 --   ==============================================================================
1397 --   API Name
1398 --           Create_Web_Recomms
1399 --   Type
1400 --           Private
1401 --   Pre-Req
1402 --
1403 --   Parameters
1404 --
1405 --   IN
1406 --       p_api_version_number      IN   NUMBER     Required
1407 --       p_init_msg_list           IN   VARCHAR2   Optional  Default = FND_API_G_FALSE
1408 --       p_commit                  IN   VARCHAR2   Optional  Default = FND_API.G_FALSE
1409 --       p_validation_level        IN   NUMBER     Optional  Default = FND_API.G_VALID_LEVEL_FULL
1410 --       p_web_recomms_rec            IN   web_recomms_rec_type  Required
1411 --
1412 --   OUT
1413 --       x_return_status           OUT  VARCHAR2
1414 --       x_msg_count               OUT  NUMBER
1415 --       x_msg_data                OUT  VARCHAR2
1416 --   Version : Current version 1.0
1417 --   Note: This automatic generated procedure definition, it includes standard IN/OUT parameters
1418 --         and basic operation, developer must manually add parameters and business logic as necessary.
1419 --
1420 --   History
1421 --
1422 --   NOTE
1423 --
1424 --   End of Comments
1425 --   ==============================================================================
1426 
1427 PROCEDURE Create_Web_Recomms(
1428     p_api_version_number         IN   NUMBER,
1429     p_init_msg_list              IN   VARCHAR2     := FND_API.G_FALSE,
1430     p_commit                     IN   VARCHAR2     := FND_API.G_FALSE,
1431     p_validation_level           IN   NUMBER       := FND_API.G_VALID_LEVEL_FULL,
1432     x_return_status              OUT NOCOPY  VARCHAR2,
1433     x_msg_count                  OUT NOCOPY  NUMBER,
1434     x_msg_data                   OUT NOCOPY  VARCHAR2,
1435     p_web_recomms_rec            IN   web_recomms_rec_type  := g_miss_web_recomms_rec,
1436     x_web_recomm_id              OUT NOCOPY  NUMBER
1437      )
1438 
1439  IS
1440 L_API_NAME                  CONSTANT VARCHAR2(30) := 'Create_Web_Recomms';
1441 L_API_VERSION_NUMBER        CONSTANT NUMBER   := 1.0;
1442    l_return_status_full        VARCHAR2(1);
1443    l_object_version_number     NUMBER := 1;
1444    l_org_id                    NUMBER := FND_API.G_MISS_NUM;
1445    l_web_recomm_id              NUMBER;
1446    l_dummy                     NUMBER;
1447    CURSOR c_id IS
1448       SELECT ams_web_recomms_s.NEXTVAL
1449       FROM dual;
1450 
1451    CURSOR c_id_exists (l_id IN NUMBER) IS
1452       SELECT 1
1453       FROM AMS_WEB_RECOMMS
1454       WHERE web_recomm_id = l_id;
1455 BEGIN
1456       -- Standard Start of API savepoint
1457       SAVEPOINT create_web_recomms_pvt;
1458 
1459       -- Standard call to check for call compatibility.
1460       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
1461                                            p_api_version_number,
1462                                            l_api_name,
1463                                            G_PKG_NAME)
1464       THEN
1465           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1466       END IF;
1467 
1468 
1469       -- Initialize message list if p_init_msg_list is set to TRUE.
1470       IF FND_API.to_Boolean( p_init_msg_list )
1471       THEN
1472          FND_MSG_PUB.initialize;
1473       END IF;
1474 
1475 
1476 
1477       -- Debug Message
1478       AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
1479 
1480 
1481 
1482       -- Initialize API return status to SUCCESS
1483       x_return_status := FND_API.G_RET_STS_SUCCESS;
1484 
1485       -- =========================================================================
1486       -- Validate Environment
1487       -- =========================================================================
1488 
1489       IF FND_GLOBAL.USER_ID IS NULL
1490       THEN
1491          AMS_Utility_PVT.Error_Message(p_message_name => 'USER_PROFILE_MISSING');
1492           RAISE FND_API.G_EXC_ERROR;
1493       END IF;
1494 
1495 
1496 
1497       IF ( P_validation_level >= FND_API.G_VALID_LEVEL_FULL)
1498       THEN
1499           -- Debug message
1500           AMS_UTILITY_PVT.debug_message('Private API: Validate_Web_Recomms');
1501 
1502           -- Invoke validation procedures
1503           Validate_web_recomms(
1504             p_api_version_number     => 1.0,
1505             p_init_msg_list    => FND_API.G_FALSE,
1506             p_validation_level => p_validation_level,
1507             p_validation_mode => JTF_PLSQL_API.g_create,
1508             p_web_recomms_rec  =>  p_web_recomms_rec,
1509             x_return_status    => x_return_status,
1510             x_msg_count        => x_msg_count,
1511             x_msg_data         => x_msg_data);
1512       END IF;
1513 
1514       IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
1515           RAISE FND_API.G_EXC_ERROR;
1516       END IF;
1517 
1518    -- Local variable initialization
1519 
1520    IF p_web_recomms_rec.web_recomm_id IS NULL OR p_web_recomms_rec.web_recomm_id = FND_API.g_miss_num THEN
1521       LOOP
1522          l_dummy := NULL;
1523          OPEN c_id;
1524          FETCH c_id INTO l_web_recomm_id;
1525          CLOSE c_id;
1526 
1527          OPEN c_id_exists(l_web_recomm_id);
1528          FETCH c_id_exists INTO l_dummy;
1529          CLOSE c_id_exists;
1530          EXIT WHEN l_dummy IS NULL;
1531       END LOOP;
1532    ELSE
1533          l_web_recomm_id := p_web_recomms_rec.web_recomm_id;
1534    END IF;
1535 
1536       -- Debug Message
1537       AMS_UTILITY_PVT.debug_message( 'Private API: Calling create table handler');
1538 
1539       -- Invoke table handler(Ams_Web_Recomms_Pkg.Insert_Row)
1540       Ams_Web_Recomms_Pkg.Insert_Row(
1541           px_web_recomm_id  => l_web_recomm_id,
1542           p_web_tracking_id  => p_web_recomms_rec.web_tracking_id,
1543           p_recomm_object_id  => p_web_recomms_rec.recomm_object_id,
1544           p_recomm_type  => p_web_recomms_rec.recomm_type,
1545           p_rule_id  => p_web_recomms_rec.rule_id,
1546           p_offer_id  => p_web_recomms_rec.offer_id,
1547           p_offer_src_code  => p_web_recomms_rec.offer_src_code,
1548           p_last_update_date  => SYSDATE,
1549           p_last_updated_by  => FND_GLOBAL.USER_ID,
1550           p_creation_date  => SYSDATE,
1551           p_created_by  => FND_GLOBAL.USER_ID,
1552           p_last_update_login  => FND_GLOBAL.conc_login_id,
1553           px_object_version_number  => l_object_version_number,
1554           p_attribute_category  => p_web_recomms_rec.attribute_category,
1555           p_attribute1  => p_web_recomms_rec.attribute1,
1556           p_attribute2  => p_web_recomms_rec.attribute2,
1557           p_attribute3  => p_web_recomms_rec.attribute3,
1558           p_attribute4  => p_web_recomms_rec.attribute4,
1559           p_attribute5  => p_web_recomms_rec.attribute5,
1560           p_attribute6  => p_web_recomms_rec.attribute6,
1561           p_attribute7  => p_web_recomms_rec.attribute7,
1562           p_attribute8  => p_web_recomms_rec.attribute8,
1563           p_attribute9  => p_web_recomms_rec.attribute9,
1564           p_attribute10  => p_web_recomms_rec.attribute10,
1565           p_attribute11  => p_web_recomms_rec.attribute11,
1566           p_attribute12  => p_web_recomms_rec.attribute12,
1567           p_attribute13  => p_web_recomms_rec.attribute13,
1568           p_attribute14  => p_web_recomms_rec.attribute14,
1569           p_attribute15  => p_web_recomms_rec.attribute15
1570 );
1571 
1572           x_web_recomm_id := l_web_recomm_id;
1573       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1574           RAISE FND_API.G_EXC_ERROR;
1575       END IF;
1576 --
1577 -- End of API body
1578 --
1579 
1580       -- Standard check for p_commit
1581       IF FND_API.to_Boolean( p_commit )
1582       THEN
1583          COMMIT WORK;
1584       END IF;
1585 
1586 
1587       -- Debug Message
1588       AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'end');
1589 
1590 
1591       -- Standard call to get message count and if count is 1, get message info.
1592       FND_MSG_PUB.Count_And_Get
1593         (p_count          =>   x_msg_count,
1594          p_data           =>   x_msg_data
1595       );
1596 EXCEPTION
1597 
1598    WHEN AMS_Utility_PVT.resource_locked THEN
1599      x_return_status := FND_API.g_ret_sts_error;
1600          AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
1601 
1602    WHEN FND_API.G_EXC_ERROR THEN
1603      ROLLBACK TO CREATE_Web_Recomms_PVT;
1604      x_return_status := FND_API.G_RET_STS_ERROR;
1605      -- Standard call to get message count and if count=1, get the message
1606      FND_MSG_PUB.Count_And_Get (
1607             p_encoded => FND_API.G_FALSE,
1608             p_count   => x_msg_count,
1609             p_data    => x_msg_data
1610      );
1611 
1612    WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1613      ROLLBACK TO CREATE_Web_Recomms_PVT;
1614      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1615      -- Standard call to get message count and if count=1, get the message
1616      FND_MSG_PUB.Count_And_Get (
1617             p_encoded => FND_API.G_FALSE,
1618             p_count => x_msg_count,
1619             p_data  => x_msg_data
1620      );
1621 
1622    WHEN OTHERS THEN
1623      ROLLBACK TO CREATE_Web_Recomms_PVT;
1624      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1625      IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1626      THEN
1627         FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
1628      END IF;
1629      -- Standard call to get message count and if count=1, get the message
1630      FND_MSG_PUB.Count_And_Get (
1631             p_encoded => FND_API.G_FALSE,
1632             p_count => x_msg_count,
1633             p_data  => x_msg_data
1634      );
1635 End Create_Web_Recomms;
1636 
1637 
1638 --   ==============================================================================
1639 --    Start of Comments
1640 --   ==============================================================================
1641 --   API Name
1642 --           Update_Web_Recomms
1643 --   Type
1644 --           Private
1645 --   Pre-Req
1646 --
1647 --   Parameters
1648 --
1649 --   IN
1650 --       p_api_version_number      IN   NUMBER     Required
1651 --       p_init_msg_list           IN   VARCHAR2   Optional  Default = FND_API_G_FALSE
1652 --       p_commit                  IN   VARCHAR2   Optional  Default = FND_API.G_FALSE
1653 --       p_validation_level        IN   NUMBER     Optional  Default = FND_API.G_VALID_LEVEL_FULL
1654 --       p_web_recomms_rec            IN   web_recomms_rec_type  Required
1655 --
1656 --   OUT
1657 --       x_return_status           OUT  VARCHAR2
1658 --       x_msg_count               OUT  NUMBER
1659 --       x_msg_data                OUT  VARCHAR2
1660 --   Version : Current version 1.0
1661 --   Note: This automatic generated procedure definition, it includes standard IN/OUT parameters
1662 --         and basic operation, developer must manually add parameters and business logic as necessary.
1663 --
1664 --   History
1665 --
1666 --   NOTE
1667 --
1668 --   End of Comments
1669 --   ==============================================================================
1670 
1671 PROCEDURE Update_Web_Recomms(
1672     p_api_version_number         IN   NUMBER,
1673     p_init_msg_list              IN   VARCHAR2     := FND_API.G_FALSE,
1674     p_commit                     IN   VARCHAR2     := FND_API.G_FALSE,
1675     p_validation_level           IN  NUMBER       := FND_API.G_VALID_LEVEL_FULL,
1676 
1677     x_return_status              OUT NOCOPY  VARCHAR2,
1678     x_msg_count                  OUT NOCOPY  NUMBER,
1679     x_msg_data                   OUT NOCOPY  VARCHAR2,
1680 
1681     p_web_recomms_rec               IN    web_recomms_rec_type
1682     )
1683 
1684  IS
1685 
1686 
1687 CURSOR c_get_web_recomms(web_recomm_id NUMBER) IS
1688     SELECT *
1689     FROM  AMS_WEB_RECOMMS
1690     WHERE  web_recomm_id = p_web_recomms_rec.web_recomm_id;
1691     -- Hint: Developer need to provide Where clause
1692 
1693 
1694 L_API_NAME                  CONSTANT VARCHAR2(30) := 'Update_Web_Recomms';
1695 L_API_VERSION_NUMBER        CONSTANT NUMBER   := 1.0;
1696 -- Local Variables
1697 l_object_version_number     NUMBER;
1698 l_web_recomm_id    NUMBER;
1699 l_ref_web_recomms_rec  c_get_Web_Recomms%ROWTYPE ;
1700 l_tar_web_recomms_rec  web_recomms_rec_type := P_web_recomms_rec;
1701 l_rowid  ROWID;
1702 
1703  BEGIN
1704       -- Standard Start of API savepoint
1705       SAVEPOINT update_web_recomms_pvt;
1706 
1707       -- Standard call to check for call compatibility.
1708       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
1709                                            p_api_version_number,
1710                                            l_api_name,
1711                                            G_PKG_NAME)
1712       THEN
1713           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1714       END IF;
1715 
1716 
1717       -- Initialize message list if p_init_msg_list is set to TRUE.
1718       IF FND_API.to_Boolean( p_init_msg_list )
1719       THEN
1720          FND_MSG_PUB.initialize;
1721       END IF;
1722 
1723 
1724 
1725       -- Debug Message
1726       AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
1727 
1728 
1729 
1730       -- Initialize API return status to SUCCESS
1731       x_return_status := FND_API.G_RET_STS_SUCCESS;
1732 
1733       -- Debug Message
1734       AMS_UTILITY_PVT.debug_message('Private API: - Open Cursor to Select');
1735 
1736       OPEN c_get_Web_Recomms( l_tar_web_recomms_rec.web_recomm_id);
1737 
1738       FETCH c_get_Web_Recomms INTO l_ref_web_recomms_rec  ;
1739 
1740        If ( c_get_Web_Recomms%NOTFOUND) THEN
1741   AMS_Utility_PVT.Error_Message(p_message_name => 'API_MISSING_UPDATE_TARGET',
1742    p_token_name   => 'INFO',
1743  p_token_value  => 'Web_Recomms') ;
1744            RAISE FND_API.G_EXC_ERROR;
1745        END IF;
1746        -- Debug Message
1747        AMS_UTILITY_PVT.debug_message('Private API: - Close Cursor');
1748        CLOSE     c_get_Web_Recomms;
1749 
1750 
1751       If (l_tar_web_recomms_rec.object_version_number is NULL or
1752           l_tar_web_recomms_rec.object_version_number = FND_API.G_MISS_NUM ) Then
1753   AMS_Utility_PVT.Error_Message(p_message_name => 'API_VERSION_MISSING',
1754    p_token_name   => 'COLUMN',
1755  p_token_value  => 'Last_Update_Date') ;
1756           raise FND_API.G_EXC_ERROR;
1757       End if;
1758       -- Check Whether record has been changed by someone else
1759       If (l_tar_web_recomms_rec.object_version_number <> l_ref_web_recomms_rec.object_version_number) Then
1760   AMS_Utility_PVT.Error_Message(p_message_name => 'API_RECORD_CHANGED',
1761    p_token_name   => 'INFO',
1762  p_token_value  => 'Web_Recomms') ;
1763           raise FND_API.G_EXC_ERROR;
1764       End if;
1765 
1766 
1767       IF ( P_validation_level >= FND_API.G_VALID_LEVEL_FULL)
1768       THEN
1769           -- Debug message
1770           AMS_UTILITY_PVT.debug_message('Private API: Validate_Web_Recomms');
1771 
1772           -- Invoke validation procedures
1773           Validate_web_recomms(
1774             p_api_version_number     => 1.0,
1775             p_init_msg_list    => FND_API.G_FALSE,
1776             p_validation_level => p_validation_level,
1777             p_validation_mode => JTF_PLSQL_API.g_update,
1778             p_web_recomms_rec  =>  p_web_recomms_rec,
1779             x_return_status    => x_return_status,
1780             x_msg_count        => x_msg_count,
1781             x_msg_data         => x_msg_data);
1782       END IF;
1783 
1784       IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
1785           RAISE FND_API.G_EXC_ERROR;
1786       END IF;
1787 
1788 
1789       -- Debug Message
1790       AMS_UTILITY_PVT.debug_message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API: Calling update table handler');
1791 
1792       -- Invoke table handler(Ams_Web_Recomms_Pkg.Update_Row)
1793       Ams_Web_Recomms_Pkg.Update_Row(
1794           p_web_recomm_id  => p_web_recomms_rec.web_recomm_id,
1795           p_web_tracking_id  => p_web_recomms_rec.web_tracking_id,
1796           p_recomm_object_id  => p_web_recomms_rec.recomm_object_id,
1797           p_recomm_type  => p_web_recomms_rec.recomm_type,
1798           p_rule_id  => p_web_recomms_rec.rule_id,
1799           p_offer_id  => p_web_recomms_rec.offer_id,
1800           p_offer_src_code  => p_web_recomms_rec.offer_src_code,
1801           p_last_update_date  => SYSDATE,
1802           p_last_updated_by  => FND_GLOBAL.USER_ID,
1803           p_last_update_login  => FND_GLOBAL.conc_login_id,
1804           p_object_version_number  => p_web_recomms_rec.object_version_number,
1805           p_attribute_category  => p_web_recomms_rec.attribute_category,
1806           p_attribute1  => p_web_recomms_rec.attribute1,
1807           p_attribute2  => p_web_recomms_rec.attribute2,
1808           p_attribute3  => p_web_recomms_rec.attribute3,
1809           p_attribute4  => p_web_recomms_rec.attribute4,
1810           p_attribute5  => p_web_recomms_rec.attribute5,
1811           p_attribute6  => p_web_recomms_rec.attribute6,
1812           p_attribute7  => p_web_recomms_rec.attribute7,
1813           p_attribute8  => p_web_recomms_rec.attribute8,
1814           p_attribute9  => p_web_recomms_rec.attribute9,
1815           p_attribute10  => p_web_recomms_rec.attribute10,
1816           p_attribute11  => p_web_recomms_rec.attribute11,
1817           p_attribute12  => p_web_recomms_rec.attribute12,
1818           p_attribute13  => p_web_recomms_rec.attribute13,
1819           p_attribute14  => p_web_recomms_rec.attribute14,
1820           p_attribute15  => p_web_recomms_rec.attribute15
1821 );
1822       --
1823       -- End of API body.
1824       --
1825 
1826       -- Standard check for p_commit
1827       IF FND_API.to_Boolean( p_commit )
1828       THEN
1829          COMMIT WORK;
1830       END IF;
1831 
1832 
1833       -- Debug Message
1834       AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'end');
1835 
1836 
1837       -- Standard call to get message count and if count is 1, get message info.
1838       FND_MSG_PUB.Count_And_Get
1839         (p_count          =>   x_msg_count,
1840          p_data           =>   x_msg_data
1841       );
1842 EXCEPTION
1843 
1844    WHEN AMS_Utility_PVT.resource_locked THEN
1845      x_return_status := FND_API.g_ret_sts_error;
1846          AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
1847 
1848    WHEN FND_API.G_EXC_ERROR THEN
1849      ROLLBACK TO UPDATE_Web_Recomms_PVT;
1850      x_return_status := FND_API.G_RET_STS_ERROR;
1851      -- Standard call to get message count and if count=1, get the message
1852      FND_MSG_PUB.Count_And_Get (
1853             p_encoded => FND_API.G_FALSE,
1854             p_count   => x_msg_count,
1855             p_data    => x_msg_data
1856      );
1857 
1858    WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1859      ROLLBACK TO UPDATE_Web_Recomms_PVT;
1860      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1861      -- Standard call to get message count and if count=1, get the message
1862      FND_MSG_PUB.Count_And_Get (
1863             p_encoded => FND_API.G_FALSE,
1864             p_count => x_msg_count,
1865             p_data  => x_msg_data
1866      );
1867 
1868    WHEN OTHERS THEN
1869      ROLLBACK TO UPDATE_Web_Recomms_PVT;
1870      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1871      IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1872      THEN
1873         FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
1874      END IF;
1875      -- Standard call to get message count and if count=1, get the message
1876      FND_MSG_PUB.Count_And_Get (
1877             p_encoded => FND_API.G_FALSE,
1878             p_count => x_msg_count,
1879             p_data  => x_msg_data
1880      );
1881 End Update_Web_Recomms;
1882 
1883 
1884 --   ==============================================================================
1885 --    Start of Comments
1886 --   ==============================================================================
1887 --   API Name
1888 --           Delete_Web_Recomms
1889 --   Type
1890 --           Private
1891 --   Pre-Req
1892 --
1893 --   Parameters
1894 --
1895 --   IN
1896 --       p_api_version_number      IN   NUMBER     Required
1897 --       p_init_msg_list           IN   VARCHAR2   Optional  Default = FND_API_G_FALSE
1898 --       p_commit                  IN   VARCHAR2   Optional  Default = FND_API.G_FALSE
1899 --       p_validation_level        IN   NUMBER     Optional  Default = FND_API.G_VALID_LEVEL_FULL
1900 --       p_web_recomm_id                IN   NUMBER
1901 --       p_object_version_number   IN   NUMBER     Optional  Default = NULL
1902 --
1903 --   OUT
1904 --       x_return_status           OUT  VARCHAR2
1905 --       x_msg_count               OUT  NUMBER
1906 --       x_msg_data                OUT  VARCHAR2
1907 --   Version : Current version 1.0
1908 --   Note: This automatic generated procedure definition, it includes standard IN/OUT parameters
1909 --         and basic operation, developer must manually add parameters and business logic as necessary.
1910 --
1911 --   History
1912 --
1913 --   NOTE
1914 --
1915 --   End of Comments
1916 --   ==============================================================================
1917 
1918 PROCEDURE Delete_Web_Recomms(
1919     p_api_version_number         IN   NUMBER,
1920     p_init_msg_list              IN   VARCHAR2     := FND_API.G_FALSE,
1921     p_commit                     IN   VARCHAR2     := FND_API.G_FALSE,
1922     p_validation_level           IN   NUMBER       := FND_API.G_VALID_LEVEL_FULL,
1923     x_return_status              OUT NOCOPY  VARCHAR2,
1924     x_msg_count                  OUT NOCOPY  NUMBER,
1925     x_msg_data                   OUT NOCOPY  VARCHAR2,
1926     p_web_recomm_id                   IN  NUMBER,
1927     p_object_version_number      IN   NUMBER
1928     )
1929 
1930  IS
1931 L_API_NAME                  CONSTANT VARCHAR2(30) := 'Delete_Web_Recomms';
1932 L_API_VERSION_NUMBER        CONSTANT NUMBER   := 1.0;
1933 l_object_version_number     NUMBER;
1934 
1935  BEGIN
1936       -- Standard Start of API savepoint
1937       SAVEPOINT delete_web_recomms_pvt;
1938 
1939       -- Standard call to check for call compatibility.
1940       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
1941                                            p_api_version_number,
1942                                            l_api_name,
1943                                            G_PKG_NAME)
1944       THEN
1945           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1946       END IF;
1947 
1948 
1949       -- Initialize message list if p_init_msg_list is set to TRUE.
1950       IF FND_API.to_Boolean( p_init_msg_list )
1951       THEN
1952          FND_MSG_PUB.initialize;
1953       END IF;
1954 
1955 
1956 
1957       -- Debug Message
1958       AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
1959 
1960 
1961 
1962       -- Initialize API return status to SUCCESS
1963       x_return_status := FND_API.G_RET_STS_SUCCESS;
1964 
1965       --
1966       -- Api body
1967       --
1968       -- Debug Message
1969       AMS_UTILITY_PVT.debug_message( 'Private API: Calling delete table handler');
1970 
1971       -- Invoke table handler(Ams_Web_Recomms_Pkg.Delete_Row)
1972       Ams_Web_Recomms_Pkg.Delete_Row(
1973           p_web_recomm_id  => p_web_recomm_id,
1974           p_object_version_number => p_object_version_number     );
1975       --
1976       -- End of API body
1977       --
1978 
1979       -- Standard check for p_commit
1980       IF FND_API.to_Boolean( p_commit )
1981       THEN
1982          COMMIT WORK;
1983       END IF;
1984 
1985 
1986       -- Debug Message
1987       AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'end');
1988 
1989 
1990       -- Standard call to get message count and if count is 1, get message info.
1991       FND_MSG_PUB.Count_And_Get
1992         (p_count          =>   x_msg_count,
1993          p_data           =>   x_msg_data
1994       );
1995 EXCEPTION
1996 
1997    WHEN AMS_Utility_PVT.resource_locked THEN
1998      x_return_status := FND_API.g_ret_sts_error;
1999          AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
2000 
2001    WHEN FND_API.G_EXC_ERROR THEN
2002      ROLLBACK TO DELETE_Web_Recomms_PVT;
2003      x_return_status := FND_API.G_RET_STS_ERROR;
2004      -- Standard call to get message count and if count=1, get the message
2005      FND_MSG_PUB.Count_And_Get (
2006             p_encoded => FND_API.G_FALSE,
2007             p_count   => x_msg_count,
2008             p_data    => x_msg_data
2009      );
2010 
2011    WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2012      ROLLBACK TO DELETE_Web_Recomms_PVT;
2013      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2014      -- Standard call to get message count and if count=1, get the message
2015      FND_MSG_PUB.Count_And_Get (
2016             p_encoded => FND_API.G_FALSE,
2017             p_count => x_msg_count,
2018             p_data  => x_msg_data
2019      );
2020 
2021    WHEN OTHERS THEN
2022      ROLLBACK TO DELETE_Web_Recomms_PVT;
2023      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2024      IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2025      THEN
2026         FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
2027      END IF;
2028      -- Standard call to get message count and if count=1, get the message
2029      FND_MSG_PUB.Count_And_Get (
2030             p_encoded => FND_API.G_FALSE,
2031             p_count => x_msg_count,
2032             p_data  => x_msg_data
2033      );
2034 End Delete_Web_Recomms;
2035 
2036 
2037 
2038 -- Hint: Primary key needs to be returned.
2039 --   ==============================================================================
2040 --    Start of Comments
2041 --   ==============================================================================
2042 --   API Name
2043 --           Lock_Web_Recomms
2044 --   Type
2045 --           Private
2046 --   Pre-Req
2047 --
2048 --   Parameters
2049 --
2050 --   IN
2051 --       p_api_version_number      IN   NUMBER     Required
2052 --       p_init_msg_list           IN   VARCHAR2   Optional  Default = FND_API_G_FALSE
2053 --       p_commit                  IN   VARCHAR2   Optional  Default = FND_API.G_FALSE
2054 --       p_validation_level        IN   NUMBER     Optional  Default = FND_API.G_VALID_LEVEL_FULL
2055 --       p_web_recomms_rec            IN   web_recomms_rec_type  Required
2056 --
2057 --   OUT
2058 --       x_return_status           OUT  VARCHAR2
2059 --       x_msg_count               OUT  NUMBER
2060 --       x_msg_data                OUT  VARCHAR2
2061 --   Version : Current version 1.0
2062 --   Note: This automatic generated procedure definition, it includes standard IN/OUT parameters
2063 --         and basic operation, developer must manually add parameters and business logic as necessary.
2064 --
2065 --   History
2066 --
2067 --   NOTE
2068 --
2069 --   End of Comments
2070 --   ==============================================================================
2071 
2072 PROCEDURE Lock_Web_Recomms(
2073     p_api_version_number         IN   NUMBER,
2074     p_init_msg_list              IN   VARCHAR2     := FND_API.G_FALSE,
2075 
2076     x_return_status              OUT NOCOPY  VARCHAR2,
2077     x_msg_count                  OUT NOCOPY  NUMBER,
2078     x_msg_data                   OUT NOCOPY  VARCHAR2,
2079 
2080     p_web_recomm_id                   IN  NUMBER,
2081     p_object_version             IN  NUMBER
2082     )
2083 
2084  IS
2085 L_API_NAME                  CONSTANT VARCHAR2(30) := 'Lock_Web_Recomms';
2086 L_API_VERSION_NUMBER        CONSTANT NUMBER   := 1.0;
2087 L_FULL_NAME                 CONSTANT VARCHAR2(60) := g_pkg_name ||'.'|| l_api_name;
2088 l_web_recomm_id                  NUMBER;
2089 
2090 BEGIN
2091 
2092       -- Debug Message
2093       AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
2094 
2095 
2096       -- Initialize message list if p_init_msg_list is set to TRUE.
2097       IF FND_API.to_Boolean( p_init_msg_list )
2098       THEN
2099          FND_MSG_PUB.initialize;
2100       END IF;
2101 
2102 
2103 
2104       -- Standard call to check for call compatibility.
2105       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
2106                                            p_api_version_number,
2107                                            l_api_name,
2108                                            G_PKG_NAME)
2109       THEN
2110           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2111       END IF;
2112 
2113 
2114 
2115       -- Initialize API return status to SUCCESS
2116       x_return_status := FND_API.G_RET_STS_SUCCESS;
2117 
2118 
2119 ------------------------ lock -------------------------
2120 Ams_Web_Recomms_Pkg.Lock_Row(l_web_recomm_id,p_object_version);
2121 
2122 
2123  -------------------- finish --------------------------
2124   FND_MSG_PUB.count_and_get(
2125     p_encoded => FND_API.g_false,
2126     p_count   => x_msg_count,
2127     p_data    => x_msg_data);
2128   AMS_Utility_PVT.debug_message(l_full_name ||': end');
2129 EXCEPTION
2130 
2131    WHEN AMS_Utility_PVT.resource_locked THEN
2132      x_return_status := FND_API.g_ret_sts_error;
2133          AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
2134 
2135    WHEN FND_API.G_EXC_ERROR THEN
2136      ROLLBACK TO LOCK_Web_Recomms_PVT;
2137      x_return_status := FND_API.G_RET_STS_ERROR;
2138      -- Standard call to get message count and if count=1, get the message
2139      FND_MSG_PUB.Count_And_Get (
2140             p_encoded => FND_API.G_FALSE,
2141             p_count   => x_msg_count,
2142             p_data    => x_msg_data
2143      );
2144 
2145    WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2146      ROLLBACK TO LOCK_Web_Recomms_PVT;
2147      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2148      -- Standard call to get message count and if count=1, get the message
2149      FND_MSG_PUB.Count_And_Get (
2150             p_encoded => FND_API.G_FALSE,
2151             p_count => x_msg_count,
2152             p_data  => x_msg_data
2153      );
2154 
2155    WHEN OTHERS THEN
2156      ROLLBACK TO LOCK_Web_Recomms_PVT;
2157      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2158      IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2159      THEN
2160         FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
2161      END IF;
2162      -- Standard call to get message count and if count=1, get the message
2163      FND_MSG_PUB.Count_And_Get (
2164             p_encoded => FND_API.G_FALSE,
2165             p_count => x_msg_count,
2166             p_data  => x_msg_data
2167      );
2168 End Lock_Web_Recomms;
2169 
2170 
2171 
2172 
2173 PROCEDURE check_Web_Recomms_Uk_Items(
2174     p_web_recomms_rec               IN   web_recomms_rec_type,
2175     p_validation_mode            IN  VARCHAR2 := JTF_PLSQL_API.g_create,
2176     x_return_status              OUT NOCOPY VARCHAR2)
2177 IS
2178 l_valid_flag  VARCHAR2(1);
2179 
2180 BEGIN
2181       x_return_status := FND_API.g_ret_sts_success;
2182       IF p_validation_mode = JTF_PLSQL_API.g_create
2183       AND p_web_recomms_rec.web_recomm_id IS NOT NULL
2184       THEN
2185          l_valid_flag := AMS_Utility_PVT.check_uniqueness(
2186          'ams_web_recomms',
2187          'web_recomm_id = ''' || p_web_recomms_rec.web_recomm_id ||''''
2188          );
2189       END IF;
2190 
2191       IF l_valid_flag = FND_API.g_false THEN
2192          AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_web_recomm_id_DUPLICATE');
2193          x_return_status := FND_API.g_ret_sts_error;
2194       END IF;
2195 
2196 END check_Web_Recomms_Uk_Items;
2197 
2198 
2199 
2200 PROCEDURE check_Web_Recomms_Req_Items(
2201     p_web_recomms_rec               IN  web_recomms_rec_type,
2202     p_validation_mode IN VARCHAR2 := JTF_PLSQL_API.g_create,
2203     x_return_status	         OUT NOCOPY VARCHAR2
2204 )
2205 IS
2206 BEGIN
2207    x_return_status := FND_API.g_ret_sts_success;
2208 
2209    IF p_validation_mode = JTF_PLSQL_API.g_create THEN
2210 
2211 
2212      -- IF p_web_recomms_rec.web_recomm_id = FND_API.G_MISS_NUM OR p_web_recomms_rec.web_recomm_id IS NULL THEN
2213        --        AMS_Utility_PVT.Error_Message('AMS_API_MISSING_FIELD', 'MISS_FIELD', 'WEB_RECOMM_ID' );
2214          --      x_return_status := FND_API.g_ret_sts_error;
2215     --  END IF;
2216 
2217 
2218       IF p_web_recomms_rec.web_tracking_id = FND_API.G_MISS_NUM OR p_web_recomms_rec.web_tracking_id IS NULL THEN
2219                AMS_Utility_PVT.Error_Message('AMS_API_MISSING_FIELD', 'MISS_FIELD', 'WEB_TRACKING_ID' );
2220                x_return_status := FND_API.g_ret_sts_error;
2221       END IF;
2222 
2223 
2224    ELSE
2225 
2226 
2227       IF p_web_recomms_rec.web_recomm_id = FND_API.G_MISS_NUM THEN
2228                AMS_Utility_PVT.Error_Message('AMS_API_MISSING_FIELD', 'MISS_FIELD', 'WEB_RECOMM_ID' );
2229                x_return_status := FND_API.g_ret_sts_error;
2230       END IF;
2231 
2232 
2233       IF p_web_recomms_rec.web_tracking_id = FND_API.G_MISS_NUM THEN
2234                AMS_Utility_PVT.Error_Message('AMS_API_MISSING_FIELD', 'MISS_FIELD', 'WEB_TRACKING_ID' );
2235                x_return_status := FND_API.g_ret_sts_error;
2236       END IF;
2237    END IF;
2238 
2239 END check_Web_Recomms_Req_Items;
2240 
2241 
2242 
2243 PROCEDURE check_Web_Recomms_Fk_Items(
2244     p_web_recomms_rec IN web_recomms_rec_type,
2245     x_return_status OUT NOCOPY VARCHAR2
2246 )
2247 IS
2248 BEGIN
2249    x_return_status := FND_API.g_ret_sts_success;
2250 
2251    -- Enter custom code here
2252 
2253 END check_Web_Recomms_Fk_Items;
2254 
2255 
2256 
2257 PROCEDURE check_Web_Recomms_Lookup_Items(
2258     p_web_recomms_rec IN web_recomms_rec_type,
2259     x_return_status OUT NOCOPY VARCHAR2
2260 )
2261 IS
2262 BEGIN
2263    x_return_status := FND_API.g_ret_sts_success;
2264 
2265    -- Enter custom code here
2266 
2267 END check_Web_Recomms_Lookup_Items;
2268 
2269 
2270 
2271 PROCEDURE Check_Web_Recomms_Items (
2272     P_web_recomms_rec     IN    web_recomms_rec_type,
2273     p_validation_mode  IN    VARCHAR2,
2274     x_return_status    OUT NOCOPY   VARCHAR2
2275     )
2276 IS
2277    l_return_status   VARCHAR2(1);
2278 BEGIN
2279 
2280     l_return_status := FND_API.g_ret_sts_success;
2281    -- Check Items Uniqueness API calls
2282 
2283    check_Web_recomms_Uk_Items(
2284       p_web_recomms_rec => p_web_recomms_rec,
2285       p_validation_mode => p_validation_mode,
2286       x_return_status => x_return_status);
2287    IF x_return_status <> FND_API.g_ret_sts_success THEN
2288       l_return_status := FND_API.g_ret_sts_error;
2289    END IF;
2290 
2291    -- Check Items Required/NOT NULL API calls
2292 
2293    check_web_recomms_req_items(
2294       p_web_recomms_rec => p_web_recomms_rec,
2295       p_validation_mode => p_validation_mode,
2296       x_return_status => x_return_status);
2297    IF x_return_status <> FND_API.g_ret_sts_success THEN
2298       l_return_status := FND_API.g_ret_sts_error;
2299    END IF;
2300    -- Check Items Foreign Keys API calls
2301 
2302    check_web_recomms_FK_items(
2303       p_web_recomms_rec => p_web_recomms_rec,
2304       x_return_status => x_return_status);
2305    IF x_return_status <> FND_API.g_ret_sts_success THEN
2306       l_return_status := FND_API.g_ret_sts_error;
2307    END IF;
2308    -- Check Items Lookups
2309 
2310    check_web_recomms_Lookup_items(
2311       p_web_recomms_rec => p_web_recomms_rec,
2312       x_return_status => x_return_status);
2313    IF x_return_status <> FND_API.g_ret_sts_success THEN
2314       l_return_status := FND_API.g_ret_sts_error;
2315    END IF;
2316 
2317    x_return_status := l_return_status;
2318 
2319 END Check_web_recomms_Items;
2320 
2321 
2322 
2323 
2324 
2325 PROCEDURE Complete_Web_Recomms_Rec (
2326    p_web_recomms_rec IN web_recomms_rec_type,
2327    x_complete_rec OUT NOCOPY web_recomms_rec_type)
2328 IS
2329    l_return_status  VARCHAR2(1);
2330 
2331    CURSOR c_complete IS
2332       SELECT *
2333       FROM ams_web_recomms
2334       WHERE web_recomm_id = p_web_recomms_rec.web_recomm_id;
2335    l_web_recomms_rec c_complete%ROWTYPE;
2336 BEGIN
2337    x_complete_rec := p_web_recomms_rec;
2338 
2339 
2340    OPEN c_complete;
2341    FETCH c_complete INTO l_web_recomms_rec;
2342    CLOSE c_complete;
2343 
2344    -- web_recomm_id
2345    IF p_web_recomms_rec.web_recomm_id IS NULL THEN
2346       x_complete_rec.web_recomm_id := l_web_recomms_rec.web_recomm_id;
2347    END IF;
2348 
2349    -- web_tracking_id
2350    IF p_web_recomms_rec.web_tracking_id IS NULL THEN
2351       x_complete_rec.web_tracking_id := l_web_recomms_rec.web_tracking_id;
2352    END IF;
2353 
2354    -- recomm_object_id
2355    IF p_web_recomms_rec.recomm_object_id IS NULL THEN
2356       x_complete_rec.recomm_object_id := l_web_recomms_rec.recomm_object_id;
2357    END IF;
2358 
2359    -- recomm_type
2360    IF p_web_recomms_rec.recomm_type IS NULL THEN
2361       x_complete_rec.recomm_type := l_web_recomms_rec.recomm_type;
2362    END IF;
2363 
2364    -- rule_id
2365    IF p_web_recomms_rec.rule_id IS NULL THEN
2366       x_complete_rec.rule_id := l_web_recomms_rec.rule_id;
2367    END IF;
2368 
2369    -- offer_id
2370    IF p_web_recomms_rec.offer_id IS NULL THEN
2371       x_complete_rec.offer_id := l_web_recomms_rec.offer_id;
2372    END IF;
2373 
2374    -- offer_src_code
2375    IF p_web_recomms_rec.offer_src_code IS NULL THEN
2376       x_complete_rec.offer_src_code := l_web_recomms_rec.offer_src_code;
2377    END IF;
2378 
2379    -- last_update_date
2380    IF p_web_recomms_rec.last_update_date IS NULL THEN
2381       x_complete_rec.last_update_date := l_web_recomms_rec.last_update_date;
2382    END IF;
2383 
2384    -- last_updated_by
2385    IF p_web_recomms_rec.last_updated_by IS NULL THEN
2386       x_complete_rec.last_updated_by := l_web_recomms_rec.last_updated_by;
2387    END IF;
2388 
2389    -- creation_date
2390    IF p_web_recomms_rec.creation_date IS NULL THEN
2391       x_complete_rec.creation_date := l_web_recomms_rec.creation_date;
2392    END IF;
2393 
2394    -- created_by
2395    IF p_web_recomms_rec.created_by IS NULL THEN
2396       x_complete_rec.created_by := l_web_recomms_rec.created_by;
2397    END IF;
2398 
2399    -- last_update_login
2400    IF p_web_recomms_rec.last_update_login IS NULL THEN
2401       x_complete_rec.last_update_login := l_web_recomms_rec.last_update_login;
2402    END IF;
2403 
2404    -- object_version_number
2405    IF p_web_recomms_rec.object_version_number IS NULL THEN
2406       x_complete_rec.object_version_number := l_web_recomms_rec.object_version_number;
2407    END IF;
2408 
2409    -- attribute_category
2410    IF p_web_recomms_rec.attribute_category IS NULL THEN
2411       x_complete_rec.attribute_category := l_web_recomms_rec.attribute_category;
2412    END IF;
2413 
2414    -- attribute1
2415    IF p_web_recomms_rec.attribute1 IS NULL THEN
2416       x_complete_rec.attribute1 := l_web_recomms_rec.attribute1;
2417    END IF;
2418 
2419    -- attribute2
2420    IF p_web_recomms_rec.attribute2 IS NULL THEN
2421       x_complete_rec.attribute2 := l_web_recomms_rec.attribute2;
2422    END IF;
2423 
2424    -- attribute3
2425    IF p_web_recomms_rec.attribute3 IS NULL THEN
2426       x_complete_rec.attribute3 := l_web_recomms_rec.attribute3;
2427    END IF;
2428 
2429    -- attribute4
2430    IF p_web_recomms_rec.attribute4 IS NULL THEN
2431       x_complete_rec.attribute4 := l_web_recomms_rec.attribute4;
2432    END IF;
2433 
2434    -- attribute5
2435    IF p_web_recomms_rec.attribute5 IS NULL THEN
2436       x_complete_rec.attribute5 := l_web_recomms_rec.attribute5;
2437    END IF;
2438 
2439    -- attribute6
2440    IF p_web_recomms_rec.attribute6 IS NULL THEN
2441       x_complete_rec.attribute6 := l_web_recomms_rec.attribute6;
2442    END IF;
2443 
2444    -- attribute7
2445    IF p_web_recomms_rec.attribute7 IS NULL THEN
2446       x_complete_rec.attribute7 := l_web_recomms_rec.attribute7;
2447    END IF;
2448 
2449    -- attribute8
2450    IF p_web_recomms_rec.attribute8 IS NULL THEN
2451       x_complete_rec.attribute8 := l_web_recomms_rec.attribute8;
2452    END IF;
2453 
2454    -- attribute9
2455    IF p_web_recomms_rec.attribute9 IS NULL THEN
2456       x_complete_rec.attribute9 := l_web_recomms_rec.attribute9;
2457    END IF;
2458 
2459    -- attribute10
2460    IF p_web_recomms_rec.attribute10 IS NULL THEN
2461       x_complete_rec.attribute10 := l_web_recomms_rec.attribute10;
2462    END IF;
2463 
2464    -- attribute11
2465    IF p_web_recomms_rec.attribute11 IS NULL THEN
2466       x_complete_rec.attribute11 := l_web_recomms_rec.attribute11;
2467    END IF;
2468 
2469    -- attribute12
2470    IF p_web_recomms_rec.attribute12 IS NULL THEN
2471       x_complete_rec.attribute12 := l_web_recomms_rec.attribute12;
2472    END IF;
2473 
2474    -- attribute13
2475    IF p_web_recomms_rec.attribute13 IS NULL THEN
2476       x_complete_rec.attribute13 := l_web_recomms_rec.attribute13;
2477    END IF;
2478 
2479    -- attribute14
2480    IF p_web_recomms_rec.attribute14 IS NULL THEN
2481       x_complete_rec.attribute14 := l_web_recomms_rec.attribute14;
2482    END IF;
2483 
2484    -- attribute15
2485    IF p_web_recomms_rec.attribute15 IS NULL THEN
2486       x_complete_rec.attribute15 := l_web_recomms_rec.attribute15;
2487    END IF;
2488    -- Note: Developers need to modify the procedure
2489    -- to handle any business specific requirements.
2490 END Complete_Web_Recomms_Rec;
2491 
2492 
2493 
2494 
2495 PROCEDURE Default_Web_Recomms_Items ( p_web_recomms_rec IN web_recomms_rec_type ,
2496                                 x_web_recomms_rec OUT NOCOPY web_recomms_rec_type )
2497 IS
2498    l_web_recomms_rec web_recomms_rec_type := p_web_recomms_rec;
2499 BEGIN
2500    -- Developers should put their code to default the record type
2501    -- e.g. IF p_campaign_rec.status_code IS NULL
2502    --      OR p_campaign_rec.status_code = FND_API.G_MISS_CHAR THEN
2503    --         l_campaign_rec.status_code := 'NEW' ;
2504    --      END IF ;
2505    --
2506    NULL ;
2507 END;
2508 
2509 
2510 
2511 
2512 PROCEDURE Validate_Web_Recomms(
2513     p_api_version_number         IN   NUMBER,
2514     p_init_msg_list              IN   VARCHAR2     := FND_API.G_FALSE,
2515     p_validation_level           IN   NUMBER := FND_API.G_VALID_LEVEL_FULL,
2516     p_web_recomms_rec               IN   web_recomms_rec_type,
2517     p_validation_mode            IN    VARCHAR2,
2518     x_return_status              OUT NOCOPY  VARCHAR2,
2519     x_msg_count                  OUT NOCOPY  NUMBER,
2520     x_msg_data                   OUT NOCOPY  VARCHAR2
2521     )
2522  IS
2523 L_API_NAME                  CONSTANT VARCHAR2(30) := 'Validate_Web_Recomms';
2524 L_API_VERSION_NUMBER        CONSTANT NUMBER   := 1.0;
2525 l_object_version_number     NUMBER;
2526 l_web_recomms_rec  web_recomms_rec_type;
2527 
2528  BEGIN
2529       -- Standard Start of API savepoint
2530       SAVEPOINT validate_web_recomms_;
2531 
2532       -- Standard call to check for call compatibility.
2533       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
2534                                            p_api_version_number,
2535                                            l_api_name,
2536                                            G_PKG_NAME)
2537       THEN
2538           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2539       END IF;
2540 
2541 
2542       -- Initialize message list if p_init_msg_list is set to TRUE.
2543       IF FND_API.to_Boolean( p_init_msg_list )
2544       THEN
2545          FND_MSG_PUB.initialize;
2546       END IF;
2547 
2548 
2549       IF p_validation_level >= JTF_PLSQL_API.g_valid_level_item THEN
2550               Check_web_recomms_Items(
2551                  p_web_recomms_rec        => p_web_recomms_rec,
2552                  p_validation_mode   => p_validation_mode,
2553                  x_return_status     => x_return_status
2554               );
2555 
2556               IF x_return_status = FND_API.G_RET_STS_ERROR THEN
2557                   RAISE FND_API.G_EXC_ERROR;
2558               ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2559                   RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2560               END IF;
2561       END IF;
2562 
2563       IF p_validation_mode = JTF_PLSQL_API.g_create THEN
2564          Default_Web_Recomms_Items (p_web_recomms_rec => p_web_recomms_rec ,
2565                                 x_web_recomms_rec => l_web_recomms_rec) ;
2566       END IF ;
2567 
2568 
2569       Complete_web_recomms_Rec(
2570          p_web_recomms_rec        => l_web_recomms_rec,
2571          x_complete_rec        => l_web_recomms_rec
2572       );
2573 
2574       IF p_validation_level >= JTF_PLSQL_API.g_valid_level_item THEN
2575          Validate_web_recomms_Rec(
2576            p_api_version_number     => 1.0,
2577            p_init_msg_list          => FND_API.G_FALSE,
2578            x_return_status          => x_return_status,
2579            x_msg_count              => x_msg_count,
2580            x_msg_data               => x_msg_data,
2581            p_web_recomms_rec           =>    l_web_recomms_rec);
2582 
2583               IF x_return_status = FND_API.G_RET_STS_ERROR THEN
2584                  RAISE FND_API.G_EXC_ERROR;
2585               ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2586                  RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2587               END IF;
2588       END IF;
2589 
2590 
2591       -- Debug Message
2592       AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
2593 
2594 
2595 
2596       -- Initialize API return status to SUCCESS
2597       x_return_status := FND_API.G_RET_STS_SUCCESS;
2598 
2599 
2600       -- Debug Message
2601       AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'end');
2602 
2603 
2604       -- Standard call to get message count and if count is 1, get message info.
2605       FND_MSG_PUB.Count_And_Get
2606         (p_count          =>   x_msg_count,
2607          p_data           =>   x_msg_data
2608       );
2609 EXCEPTION
2610 
2611    WHEN AMS_Utility_PVT.resource_locked THEN
2612      x_return_status := FND_API.g_ret_sts_error;
2613          AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
2614 
2615    WHEN FND_API.G_EXC_ERROR THEN
2616      ROLLBACK TO VALIDATE_Web_Recomms_;
2617      x_return_status := FND_API.G_RET_STS_ERROR;
2618      -- Standard call to get message count and if count=1, get the message
2619      FND_MSG_PUB.Count_And_Get (
2620             p_encoded => FND_API.G_FALSE,
2621             p_count   => x_msg_count,
2622             p_data    => x_msg_data
2623      );
2624 
2625    WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2626      ROLLBACK TO VALIDATE_Web_Recomms_;
2627      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2628      -- Standard call to get message count and if count=1, get the message
2629      FND_MSG_PUB.Count_And_Get (
2630             p_encoded => FND_API.G_FALSE,
2631             p_count => x_msg_count,
2632             p_data  => x_msg_data
2633      );
2634 
2635    WHEN OTHERS THEN
2636      ROLLBACK TO VALIDATE_Web_Recomms_;
2637      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2638      IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2639      THEN
2640         FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
2641      END IF;
2642      -- Standard call to get message count and if count=1, get the message
2643      FND_MSG_PUB.Count_And_Get (
2644             p_encoded => FND_API.G_FALSE,
2645             p_count => x_msg_count,
2646             p_data  => x_msg_data
2647      );
2648 End Validate_Web_Recomms;
2649 
2650 
2651 PROCEDURE Validate_Web_Recomms_Rec (
2652     p_api_version_number         IN   NUMBER,
2653     p_init_msg_list              IN   VARCHAR2     := FND_API.G_FALSE,
2654     x_return_status              OUT NOCOPY  VARCHAR2,
2655     x_msg_count                  OUT NOCOPY  NUMBER,
2656     x_msg_data                   OUT NOCOPY  VARCHAR2,
2657     p_web_recomms_rec               IN    web_recomms_rec_type
2658     )
2659 IS
2660 BEGIN
2661       -- Initialize message list if p_init_msg_list is set to TRUE.
2662       IF FND_API.to_Boolean( p_init_msg_list )
2663       THEN
2664          FND_MSG_PUB.initialize;
2665       END IF;
2666 
2667 
2668 
2669       -- Initialize API return status to SUCCESS
2670       x_return_status := FND_API.G_RET_STS_SUCCESS;
2671 
2672       -- Hint: Validate data
2673       -- If data not valid
2674       -- THEN
2675       -- x_return_status := FND_API.G_RET_STS_ERROR;
2676 
2677       -- Debug Message
2678       AMS_UTILITY_PVT.debug_message('Private API: Validate_dm_model_rec');
2679       -- Standard call to get message count and if count is 1, get message info.
2680       FND_MSG_PUB.Count_And_Get
2681         (p_count          =>   x_msg_count,
2682          p_data           =>   x_msg_data
2683       );
2684 END Validate_web_recomms_Rec;
2685 
2686 
2687 
2688 
2689 PROCEDURE Create_Web_Imp_Track (
2690     p_api_version_number   IN   NUMBER,
2691     p_init_msg_list        IN   VARCHAR2  := FND_API.G_FALSE,
2692     p_commit               IN   VARCHAR2  := FND_API.G_FALSE,
2693     p_validation_level     IN   NUMBER    := FND_API.G_VALID_LEVEL_FULL,
2694     p_web_track_rec        IN   web_track_rec_type,
2695     p_web_recomms_tbl      IN  web_recomms_tbl_type,
2696     --p_web_prod             IN  VARCHAR2,
2697     x_impr_obj_id_rec     OUT NOCOPY impr_obj_id_tbl_type,
2698     x_return_status       OUT NOCOPY  VARCHAR2,
2699     x_msg_count           OUT NOCOPY  NUMBER,
2700     x_msg_data            OUT NOCOPY  VARCHAR2
2701           )
2702 IS
2703    L_API_NAME                  CONSTANT VARCHAR2(30) := 'CreateWebImpTrack';
2704    L_API_VERSION_NUMBER        CONSTANT NUMBER   := 1.0;
2705    l_object_version_number     NUMBER;
2706    l_web_track_rec	       web_track_rec_type;
2707    l_web_recomms_rec	       web_recomms_rec_type;
2708    l_impr_obj_id_tbl          impr_obj_id_tbl_type;
2709    l_web_tracking_id	       NUMBER;
2710    l_schedule_id	       NUMBER;
2711    l_party_id		       NUMBER;
2712    l_placement_id	       NUMBER;
2713    l_content_item_id	       NUMBER;
2714    l_web_recomm_id	       NUMBER;
2715    l_recomm_object_id	       NUMBER;
2716    l_recomm_type	       VARCHAR2(30);
2717    l_rule_id		       NUMBER;
2718    l_offer_src_code	       VARCHAR2(30);
2719    l_offer_id		       NUMBER;
2720 
2721 BEGIN
2722 
2723  -- Standard Start of API savepoint
2724       SAVEPOINT Create_Web_Imp_Track;
2725 
2726  -- Initialize message list if p_init_msg_list is set to TRUE.
2727       IF FND_API.to_Boolean( p_init_msg_list )
2728       THEN
2729          FND_MSG_PUB.initialize;
2730       END IF;
2731 
2732       -- Initialize API return status to SUCCESS
2733       x_return_status := FND_API.G_RET_STS_SUCCESS;
2734 
2735       -- Hint: Validate data
2736       -- If data not valid
2737       -- THEN
2738       -- x_return_status := FND_API.G_RET_STS_ERROR;
2739 
2740       -- Debug Message
2741       AMS_UTILITY_PVT.debug_message('Private API: Create_Web_Imp_Track');
2742       -- Standard call to get message count and if count is 1, get message info.
2743       FND_MSG_PUB.Count_And_Get
2744         (p_count          =>   x_msg_count,
2745          p_data           =>   x_msg_data
2746       );
2747 
2748       --insert_log_mesg('Private API: Create_Web_Imp_Track');
2749 
2750  --validate web_track_rec_type
2751  -- dbms_output.put_line('before inserting into AMS_Web_Tracking web_tracking_id'||l_web_tracking_id );
2752  -- dbms_output.put_line('before inserting into AMS_Web_Tracking schedule_id '||l_schedule_id );
2753  -- dbms_output.put_line('before inserting into AMS_Web_Tracking party_id'||l_party_id );
2754  -- dbms_output.put_line('before inserting into AMS_Web_Tracking placement_id '||l_placement_id );
2755  -- dbms_output.put_line('before inserting into AMS_Web_Tracking content_item_id'||l_content_item_id );
2756 
2757 	 --insert_log_mesg(p_web_track_rec.schedule_id);
2758 	l_web_track_rec.web_tracking_id := null;
2759 	l_web_track_rec.schedule_id := p_web_track_rec.schedule_id;
2760 	l_web_track_rec.party_id := p_web_track_rec.party_id ;
2761 	l_web_track_rec.placement_id := p_web_track_rec.placement_id;
2762 	l_web_track_rec.content_item_id := p_web_track_rec.content_item_id;
2763 
2764 
2765 	 IF  (p_web_track_rec.schedule_id) IS NOT NULL THEN
2766 			--insert_log_mesg('Calling Create_Web_Track ::::');
2767 	     		Create_Web_Track(p_api_version_number  => 1.0,
2768 					   p_init_msg_list       => FND_API.G_FALSE,
2769 					   p_commit              => FND_API.G_FALSE,
2770 					   p_validation_level    => FND_API.G_VALID_LEVEL_FULL,
2771 					   x_return_status       => x_return_status,
2772 					   x_msg_count           => x_msg_count,
2773 					   x_msg_data            => x_msg_data,
2774 					   p_web_track_rec       => l_web_track_rec,
2775 					   x_web_tracking_id     => l_web_tracking_id
2776 				           );
2777 		--insert_log_mesg('Done Create_Web_Track ::::');
2778 	--dbms_output.put_line('before inserting into AMS_Web_Tracking web_tracking_id'||l_web_tracking_id );
2779 	--insert_log_mesg('l_web_tracking_id');
2780 	--insert_log_mesg('Web Tracking Id ::::'||l_web_tracking_id);
2781 
2782 	IF l_web_tracking_id IS NULL    THEN
2783          IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
2784             FND_MESSAGE.set_name('AMS', 'AMS_NO_PRIMARY_KEY');
2785             FND_MSG_PUB.add;
2786          END IF;
2787          RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2788         END IF;
2789 
2790 	--dbms_output.put_line('after inserting into AMS_WEB_TRACKING '||l_web_tracking_id );
2791 	--dbms_output.put_line('l_web_recomms_tbl_type.COUNT '||web_recomms_tbl_type.COUNT);
2792 
2793 	IF ( (p_web_track_rec.schedule_type = 'WEB_ADV') OR (p_web_track_rec.schedule_type = 'WEB_OFFER') ) THEN
2794 		x_impr_obj_id_rec(0).impr_track_id := l_web_tracking_id;
2795 	        x_impr_obj_id_rec(0).obj_id := null;
2796 	END IF;
2797 
2798 	--insert_log_mesg('RECORD POPULATED');
2799 
2800 /*	IF( (p_web_track_rec.schedule_type = 'AMS_WEB_ADV') OR (p_web_track_rec.schedule_type = 'AMS_WEB_OFFER') )
2801 
2802 	THEN
2803 
2804 	IF(p_web_recomms_tbl.COUNT = 0) THEN  -- also compare for schedule_type
2805 	    l_web_recomms_rec.web_tracking_id := l_web_tracking_id;
2806             l_web_recomms_rec.recomm_type := 'IMPR_ONLY';
2807 
2808 	     Create_Web_Recomms(p_api_version_number => 1.0,
2809 					     p_init_msg_list => FND_API.G_FALSE,
2810 			                     p_commit => FND_API.G_FALSE,
2811                                              p_validation_level => FND_API.G_VALID_LEVEL_FULL,
2812 					     x_return_status => x_return_status,
2813 					     x_msg_count  => x_msg_count,
2814 					     x_msg_data  =>  x_msg_data,
2815 					     p_web_recomms_rec =>  l_web_recomms_rec,
2816 					     x_web_recomm_id => l_web_recomm_id
2817 					     );
2818 	   x_impr_obj_id_rec(1).impr_track_id := l_web_recomm_id;
2819 	   x_impr_obj_id_rec(1).obj_id := null;
2820     	END IF;
2821 
2822 	IF(p_web_recomms_tbl.COUNT = 1) THEN  -- also compare for schedule_type
2823 	    l_web_recomms_rec.web_tracking_id := l_web_tracking_id;
2824             l_web_recomms_rec.recomm_type := 'PROD';
2825 
2826 	     Create_Web_Recomms(p_api_version_number => 1.0,
2827 					     p_init_msg_list => FND_API.G_FALSE,
2828 			                     p_commit => FND_API.G_FALSE,
2829                                              p_validation_level => FND_API.G_VALID_LEVEL_FULL,
2830 					     x_return_status => x_return_status,
2831 					     x_msg_count  => x_msg_count,
2832 					     x_msg_data  =>  x_msg_data,
2833 					     p_web_recomms_rec =>  l_web_recomms_rec,
2834 					     x_web_recomm_id => l_web_recomm_id
2835 					     );
2836 	   x_impr_obj_id_rec(0).impr_track_id := l_web_recomm_id;
2837 	   x_impr_obj_id_rec(0).obj_id := null;
2838     	END IF;
2839 
2840 
2841 	END IF;  -- compared WEB-ADV OR WEB-OFFER
2842 */
2843 	--insert_log_mesg('Schedule Type ::::'||p_web_track_rec.schedule_type);
2844 
2845 	IF( p_web_track_rec.schedule_type = 'WEB_PRODUCT' )
2846 --	IF( p_web_track_rec.schedule_type = 'WEB_ADV' )
2847 	THEN
2848 	IF(p_web_recomms_tbl.COUNT > 0) THEN
2849 
2850   	   FOR i IN 1..p_web_recomms_tbl.COUNT
2851 	   LOOP
2852 	   l_web_recomms_rec := p_web_recomms_tbl(i);
2853 	   l_web_recomms_rec.web_tracking_id := l_web_tracking_id;
2854            l_web_recomms_rec.recomm_type := 'WEB_PROD';
2855 	   Create_Web_Recomms(p_api_version_number => 1.0,
2856 					     p_init_msg_list => FND_API.G_FALSE,
2857 			                     p_commit => FND_API.G_FALSE,
2858                                              p_validation_level => FND_API.G_VALID_LEVEL_FULL,
2859 					     x_return_status => x_return_status,
2860 					     x_msg_count  => x_msg_count,
2861 					     x_msg_data  =>  x_msg_data,
2862 					     p_web_recomms_rec =>  l_web_recomms_rec,
2863 					     x_web_recomm_id => l_web_recomm_id
2864 					     );
2865 
2866      -- dbms_output.put_line('before inserting into AMS_Web_Recomms web recomm id '|| l_web_recomm_id );
2867      --insert_log_mesg('Web Recomm Id ::::'||l_web_recomm_id);
2868 
2869          IF l_web_recomm_id IS NULL THEN
2870 		 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
2871 		    FND_MESSAGE.set_name('AMS', 'AMS_NO_PRIMARY_KEY');
2872 		    FND_MSG_PUB.add;
2873 		 END IF;
2874 		 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2875 	 END IF;
2876 	  x_impr_obj_id_rec(i).impr_track_id := l_web_recomm_id;
2877 	  x_impr_obj_id_rec(i).obj_id := l_web_recomms_rec.recomm_object_id;
2878 
2879 
2880 	 END LOOP;
2881 	END IF;
2882        END IF;
2883 
2884       END IF; --
2885        	--insert_log_mesg('Return Status ::::'||x_return_status);
2886 	x_return_status := FND_API.g_ret_sts_success;
2887 
2888 		--insert_log_mesg(p_commit);
2889 
2890    --    IF FND_API.to_Boolean( p_commit )
2891      --  THEN
2892          --insert_log_mesg('COMMIT WORK');
2893          COMMIT WORK;
2894      --  END IF;
2895 
2896 	--insert_log_mesg('FINALLY DONE ::::');
2897 
2898 EXCEPTION
2899 
2900    WHEN AMS_Utility_PVT.resource_locked THEN
2901      x_return_status := FND_API.g_ret_sts_error;
2902          AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
2903 	 --insert_log_mesg(x_return_status);
2904 
2905    WHEN FND_API.G_EXC_ERROR THEN
2906      ROLLBACK TO Create_Web_Imp_Track;
2907      x_return_status := FND_API.G_RET_STS_ERROR;
2908      -- Standard call to get message count and if count=1, get the message
2909      FND_MSG_PUB.Count_And_Get (
2910             p_encoded => FND_API.G_FALSE,
2911             p_count   => x_msg_count,
2912             p_data    => x_msg_data
2913      );
2914      --insert_log_mesg(x_return_status);
2915 
2916    WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2917      ROLLBACK TO Create_Web_Imp_Track;
2918      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2919      -- Standard call to get message count and if count=1, get the message
2920      FND_MSG_PUB.Count_And_Get (
2921             p_encoded => FND_API.G_FALSE,
2922             p_count => x_msg_count,
2923             p_data  => x_msg_data
2924      );
2925      --insert_log_mesg(x_return_status);
2926 
2927    WHEN OTHERS THEN
2928      ROLLBACK TO Create_Web_Imp_Track;
2929      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2930      IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2931      THEN
2932         FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
2933      END IF;
2934      -- Standard call to get message count and if count=1, get the message
2935      FND_MSG_PUB.Count_And_Get (
2936             p_encoded => FND_API.G_FALSE,
2937             p_count => x_msg_count,
2938             p_data  => x_msg_data
2939      );
2940      --insert_log_mesg(x_return_status);
2941 
2942 END Create_Web_Imp_Track;
2943 
2944 
2945 
2946 END AMS_Web_Track_PVT;