DBA Data[Home] [Help]

PACKAGE BODY: APPS.AMS_TRACKING_PVT

Source


1 PACKAGE BODY AMS_TRACKING_PVT as
2 /* $Header: amsvtrkb.pls 120.1 2006/10/27 23:35:17 rrajesh noship $ */
3 -- ===============================================================
4 -- Start of Comments
5 -- Package name
6 --          AMS_TRACKING_PVT
7 -- Purpose
8 --
9 -- History
10 --
11 -- NOTE
12 --
13 -- End of Comments
14 -- ===============================================================
15 
16 G_PKG_NAME CONSTANT VARCHAR2(30):= 'AMS_TRACKING_PVT';
17 G_FILE_NAME CONSTANT VARCHAR2(12) := 'amsvtrkb.pls';
18 
19 FUNCTION isMinisite_iStore(p_minisite_id IN NUMBER) RETURN BOOLEAN
20 IS
21 l_count NUMBER := 0;
22 BEGIN
23      SELECT COUNT(MSITE_ID) into l_count FROM IBE_MSITES_B where MSITE_ID = p_minisite_id;
24       IF l_count > 0 THEN
25         RETURN TRUE;
26     ELSE
27         RETURN FALSE;
28     END IF;
29 EXCEPTION
30     WHEN NO_DATA_FOUND THEN
31         RETURN FALSE;
32 END isMinisite_iStore;
33 
34 
35 /* PROCEDURE insert_log_mesg (p_mesg IN VARCHAR2)
36 IS
37 PRAGMA AUTONOMOUS_TRANSACTION;
38 BEGIN
39  insert into raghu_table values (p_mesg, sysdate);
40  commit;
41 END; */
42 
43 
44 PROCEDURE Log_interaction(
45     p_api_version_number  IN   NUMBER,
46     p_init_msg_list       IN   VARCHAR2 := FND_API.G_FALSE,
47     p_commit              IN   VARCHAR2 := FND_API.G_FALSE,
48     p_validation_level    IN   NUMBER   := FND_API.G_VALID_LEVEL_FULL,
49 
50     x_return_status       OUT NOCOPY VARCHAR2,
51     x_msg_count           OUT NOCOPY NUMBER,
52     x_msg_data            OUT NOCOPY VARCHAR2,
53     x_interaction_id      OUT NOCOPY NUMBER,
54 
55     p_track_rec           IN  interaction_track_rec_type := g_miss_ps_strats_rec
56     )
57  IS
58    L_API_NAME               CONSTANT VARCHAR2(30) := 'Log_interaction';
59    L_API_VERSION_NUMBER     CONSTANT NUMBER   := 1.0;
60 
61    l_interaction_rec    JTF_IH_PUB.interaction_rec_type;
62    l_media_rec          JTF_IH_PUB.media_rec_type;
63    l_activity_rec       JTF_IH_PUB.activity_rec_type;
64    l_activity_tbl       JTF_IH_PUB.activity_tbl_type;
65    l_media_id           NUMBER;
66    l_return_status      VARCHAR2(1);
67    l_msg_count          NUMBER;
68    l_msg_data           VARCHAR2(2000);
69    l_resource_id        NUMBER;
70    l_interaction_id     NUMBER := null;
71    code_id              NUMBER := null;
72    l_activity_id        NUMBER;
73    l_action_item_id     NUMBER;
74    l_minisite_id  NUMBER := null;
75    l_web_content_id NUMBER := null;
76    l_activity_type      VARCHAR2(30);
77    obj_type VARCHAR2(4);
78 
79   CURSOR c_minisite_id(p_webcontent_id NUMBER) IS
80     SELECT NVL(display_rule_id,0) FROM jtf_amv_attachments WHERE
81     attachment_id = p_webcontent_id;
82 
83   CURSOR c_minisite_id_lite(p_webcontent_id NUMBER) IS
84     select p.action_param_value
85     from ams_ctds a, ams_ctd_param_values p
86     where a.ctd_id = p.ctd_id
87     and p.action_param_id in (21,31,41, 61)
88     and a.ctd_id = p_webcontent_id;
89 
90 BEGIN
91       -- Standard Start of API savepoint
92       SAVEPOINT Log_interaction ;
93 
94       -- Standard call to check for call compatibility.
95       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
96                                            p_api_version_number,
97                                            l_api_name,
98                                            G_PKG_NAME)
99       THEN
100           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
101       END IF;
102 
103       -- Initialize message list if p_init_msg_list is set to TRUE.
104       IF FND_API.to_Boolean( p_init_msg_list )
105       THEN
106          FND_MSG_PUB.initialize;
107       END IF;
108 
109       -- Debug Message
110       AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
111 
112       -- Initialize API return status to SUCCESS
113       l_return_status := FND_API.G_RET_STS_SUCCESS;
114       x_return_status := FND_API.G_RET_STS_SUCCESS;
115 
116    -- JTF_IH_PUB.open_mediaitem
117       l_media_rec.start_date_time  := SYSDATE;
118 
119 --   IF (p_track_rec.obj_type = 'CSCH')
120 --      THEN
121         l_media_rec.media_item_type := 'WEB FORM';
122 --      ELSE
123 --        l_media_rec.media_item_type     := 'WEB FORM';
124 
125 --     Keeping it as WEB FORM for the time being,will change shortly.
126 
127 --      END IF;
128 
129 -- Validation for Minisite and Populate the media_rec
130 -- Validate for PHAT ONLY
131 
132     IF (p_track_rec.web_content_id IS NOT NULL ) THEN
133         l_web_content_id := p_track_rec.web_content_id;
134         l_media_rec.source_id := l_web_content_id;
135 
136         IF (p_track_rec.flavour <> 'LITE') THEN
137           OPEN c_minisite_id(l_web_content_id);
138           FETCH c_minisite_id INTO l_minisite_id;
139           CLOSE c_minisite_id;
140         ELSE -- LITE
141            /* l_web_content_id is CTDID */
142           OPEN c_minisite_id_lite(l_web_content_id);
143           FETCH c_minisite_id_lite INTO l_minisite_id;
144           CLOSE c_minisite_id_lite;
145         END IF;
146     END IF;
147 
148     IF (l_minisite_id > 0) THEN
149      -- validate the minisite at iStore
150       IF (isMinisite_iStore(l_minisite_id)) THEN
151         l_media_rec.source_item_id := l_minisite_id;
152         l_media_rec.media_item_ref := '671';
153       END IF;
154     END IF;
155     -- End Minisite Population
156 
157   JTF_IH_PUB.open_mediaitem(
158       p_api_version     => 1.0,
159       p_init_msg_list   => FND_API.g_false,
160       p_commit          => FND_API.g_false,
161       p_resp_appl_id    => FND_GLOBAL.resp_appl_id,
162       p_resp_id         => FND_GLOBAL.resp_id,
163       p_user_id         => FND_GLOBAL.user_id,
164       p_login_id        => FND_GLOBAL.conc_login_id,
165       x_return_status   => l_return_status,
166       x_msg_count       => l_msg_count,
167       x_msg_data        => l_msg_data,
168       p_media_rec       => l_media_rec,
169       x_media_id        => l_media_id
170    );
171 
172    IF l_return_status <> FND_API.g_ret_sts_success THEN
173      RAISE FND_API.g_exc_error;
174    END IF;
175 
176   -- JTF_IH_PUB.close_mediaitem
177      l_media_rec.media_id := l_media_id;
178 
179      JTF_IH_PUB.close_mediaitem(
180       p_api_version     => 1.0,
181       p_init_msg_list   => FND_API.g_false,
182       p_commit          => FND_API.g_false,
183       p_resp_appl_id    => FND_GLOBAL.resp_appl_id,
184       p_resp_id         => FND_GLOBAL.resp_id,
185       p_user_id         => FND_GLOBAL.user_id,
186       p_login_id        => FND_GLOBAL.conc_login_id,
187       x_return_status   => l_return_status,
188       x_msg_count       => l_msg_count,
189       x_msg_data        => l_msg_data,
190       p_media_rec       => l_media_rec
191    );
192 
193    IF l_return_status <> FND_API.g_ret_sts_success THEN
194       RAISE FND_API.g_exc_error;
195    END IF;
196 
197    /* Bug fix:5594167 */
198 
199    select source_code_id,arc_source_code_for  into code_id,obj_type  from  ams_source_codes  ascd where (ascd.source_code=p_track_rec.obj_src_code);
200 
201  --IF (p_track_rec.obj_type = 'CSCH')
202       --THEN
203 
204    -- insert_log_mesg('obj_type from src_codes tbl::' || obj_type);
205 
206    IF (obj_type = 'CSCH')
207    THEN
208        select distinct owner_user_id, activity_id, activity_type_code into l_resource_id, l_activity_id, l_activity_type from AMS_CAMPAIGN_SCHEDULES_B csched
209 	   where (csched.source_code=p_track_rec.obj_src_code);
210 
211    ELSIF ( (obj_type = 'EONE') OR (obj_type = 'EVEO') )
212    THEN
213        -- l_resource_id := 100001738;
214        select owner_user_id into l_resource_id from ams_event_offers_all_b eve  where (eve.source_code=p_track_rec.obj_src_code);
215        l_activity_id := 20;
216        l_activity_type := 'EMAIL';
217    ELSE
218        l_resource_id := 100001738;
219        l_activity_id := 20;
220        l_activity_type := 'EMAIL';
221    END IF;
222 
223    /* insert_log_mesg('l_resource_id' || l_resource_id);
224    insert_log_mesg('l_activity_id' || l_activity_id);
225    insert_log_mesg('l_activity_type' || l_activity_type); */
226 
227    -- select source_code_id  into code_id  from  ams_source_codes  ascd where (ascd.source_code=p_track_rec.obj_src_code); --Moving up
228 
229    /* End bug fix: 5594167 */
230 
231    if (l_activity_id = 40) then
232      l_action_item_id := 82; -- Web Offer
233    elsif (l_activity_id = 30) then
234      l_action_item_id := 81; -- Web Ad
235    elsif (l_activity_id = 20) then
236      l_action_item_id := 83; -- Email Link
237    elsif (l_activity_id = 510) then
238      l_action_item_id := 100; -- Web Prod
239   -- db added the following logic for Pretty url tracking in IH
240    elsif ((l_activity_id <> 20) and( l_activity_id <> 460)) then
241       l_action_item_id := 106; -- pretty URL.
242    elsif ((l_activity_type = 'BROADCAST') OR(l_activity_type = 'PUBLIC_RELATIONS')OR(l_activity_type= 'IN_STORE')) then
243      l_action_item_id := 106; -- All advertising and Press Relations.
244      -- END Pretty url tracking in IH
245    else
246      l_action_item_id := 81; -- Web ad for the others
247    end if;
248 
249    IF (p_track_rec.flavour <> 'LITE') THEN
250       if(l_activity_id = 20) then
251         l_activity_rec.doc_ref := 'EMAIL';
252       else
253         l_activity_rec.doc_ref := 'POSTING';
254       end if;
255    ELSE
256       /* Not correct for emails */
257       --IF (p_track_rec.flavour = 'LITE') THEN
258       l_activity_rec.doc_ref := 'IMPRESSION_TRACK';
259    END IF;
260 
261    l_activity_rec.start_date_time  := SYSDATE;
262    l_activity_rec.end_date_time    := SYSDATE;
263    l_activity_rec.media_id         := l_media_id;
264    l_activity_rec.action_id        := 79;
265    l_activity_rec.action_item_id   := l_action_item_id;
266    l_activity_rec.outcome_id       := 7;
267    l_activity_rec.result_id        := 31;
268    l_activity_rec.source_code      := p_track_rec.obj_src_code;
269    l_activity_rec.source_code_id   := code_id;
270    IF (p_track_rec.flavour <> 'LITE') THEN
271      l_activity_rec.doc_id         := p_track_rec.posting_id;
272    ELSE
273      l_activity_rec.doc_id	   := p_track_rec.web_tracking_id;
274    END IF;
275    l_activity_rec.doc_source_object_name := p_track_rec.offer_src_code;
276 
277    SELECT jtf_ih_interactions_s1.NEXTVAL INTO l_interaction_id FROM dual;
278    x_interaction_id := l_interaction_id;
279 
280    l_interaction_rec.interaction_id  := l_interaction_id;
281    l_interaction_rec.start_date_time := SYSDATE;
282    l_interaction_rec.end_date_time   := SYSDATE;
283    l_interaction_rec.handler_id      := 530;
284    l_interaction_rec.outcome_id      := 7;
285    l_interaction_rec.result_id       := 31;
286    l_interaction_rec.resource_id     := l_resource_id;
287    l_interaction_rec.party_id        := p_track_rec.party_id;
288    l_interaction_rec.source_code     := p_track_rec.obj_src_code;
289    l_interaction_rec.source_code_id  := code_id;
290 
291    l_activity_tbl(1) := l_activity_rec;
292 
293    JTF_IH_PUB. create_interaction(
294     p_api_version       => 1.0,
295     p_init_msg_list     => FND_API.g_false,
296     p_commit    	=> FND_API.g_false,
297     p_resp_appl_id   	=> FND_GLOBAL.resp_appl_id,
298     p_resp_id    	=> FND_GLOBAL.resp_id,
299     p_user_id   	=> FND_GLOBAL.user_id,
300     p_login_id    	=> FND_GLOBAL.conc_login_id,
301     x_return_status 	=> l_return_status,
302     x_msg_count   	=> l_msg_count,
303     x_msg_data    	=> l_msg_data,
304     p_interaction_rec   => l_interaction_rec,
305     p_activities        => l_activity_tbl
306     );
307 
308 
309     IF l_return_status <> FND_API.g_ret_sts_success THEN
310       RAISE FND_API.g_exc_error;
311     END IF;
312 
313       -- Standard check for p_commit
314       IF FND_API.to_Boolean( p_commit )
315       THEN
316          COMMIT WORK;
317       END IF;
318 
319        -- Debug Message
320       AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'end');
321 
322       -- Standard call to get message count and if count is 1, get message info.
323       FND_MSG_PUB.Count_And_Get
324         (p_count  =>   x_msg_count,
325          p_data   =>   x_msg_data
326       );
327 
328 EXCEPTION
329 
330     WHEN FND_API.G_EXC_ERROR THEN
331      ROLLBACK TO Log_interaction;
332      x_return_status := FND_API.G_RET_STS_ERROR;
333      -- Standard call to get message count and if count=1, get the message
334      FND_MSG_PUB.Count_And_Get (
335             p_encoded => FND_API.G_FALSE,
336             p_count   => x_msg_count,
337             p_data    => x_msg_data
338      );
339 
340    WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
341      ROLLBACK TO Log_interaction;
342      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
343      -- Standard call to get message count and if count=1, get the message
344      FND_MSG_PUB.Count_And_Get (
345             p_encoded => FND_API.G_FALSE,
346             p_count => x_msg_count,
347             p_data  => x_msg_data
348      );
349 
350    WHEN OTHERS THEN
351      ROLLBACK TO Log_interaction;
352      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
353      IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
354      THEN
355         FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
356      END IF;
357      -- Standard call to get message count and if count=1, get the message
358      FND_MSG_PUB.Count_And_Get (
359             p_encoded => FND_API.G_FALSE,
360             p_count => x_msg_count,
361             p_data  => x_msg_data
362      );
363 End Log_interaction;
364 
365 
366 PROCEDURE Log_redirect(
367     tracking_rec    IN  interaction_track_rec_type := g_miss_ps_strats_rec,
368     x_redirect_url  OUT  NOCOPY  VARCHAR2,
369     x_interaction_id  OUT  NOCOPY  NUMBER ,
370     x_action_parameter_code   OUT  NOCOPY  VARCHAR2
371 )
372  IS
373 
374 L_API_NAME             CONSTANT VARCHAR2(30) := 'Log_redirect';
375 L_API_VERSION_NUMBER   CONSTANT NUMBER := 1.0;
376 -- Local Variables
377     l_profile                VARCHAR2(1);
378     x_return_status          VARCHAR2(1);
379     x_msg_count              NUMBER;
380     x_msg_data               VARCHAR2(2000);
381     p_init_msg_list          VARCHAR2(2000);
382     p_commit                 VARCHAR2(2000);
383     l_interaction_id         NUMBER := null;
384     l_action_parameter_code  VARCHAR2(2000) := null;
385     l_redirect_url           VARCHAR2(2000) := null;
386  BEGIN
387       -- Standard Start of API savepoint
388         SAVEPOINT Log_redirect;
389    p_init_msg_list   := FND_API.G_FALSE;
390    p_commit   := FND_API.G_FALSE;
391      -- Initialize message list if p_init_msg_list is set to TRUE.
392         IF FND_API.to_Boolean( p_init_msg_list )
393         THEN
394      FND_MSG_PUB.initialize;
395         END IF;
396 
397         -- Debug Message
398    AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
399    x_return_status := FND_API.G_RET_STS_SUCCESS;
400    l_profile := FND_PROFILE.VALUE('AMS_LOG_INTERACTION') ;
401 
402     IF (l_profile='Y' or tracking_rec.did <> null) THEN
403 
404   Log_interaction( p_api_version_number => 1.0,
405       p_init_msg_list      =>  FND_API.G_FALSE,
406       p_commit             =>  FND_API.G_TRUE,
407       p_validation_level   =>  FND_API.G_VALID_LEVEL_FULL,
408 
409       x_return_status      =>  x_return_status,
410       x_msg_count          =>  x_msg_count,
411       x_msg_data           =>  x_msg_data,
412       x_interaction_id  =>  l_interaction_id,
413       p_track_rec         =>  tracking_rec
414       );
415 
416    IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
417       RAISE FND_API.G_EXC_ERROR;
418    END IF;
419    x_interaction_id :=  l_interaction_id;
420    get_redirect_url
421     (
422       tracking_rec.web_content_id,
423       l_redirect_url,
424       l_action_parameter_code
425      );
426 --  x_redirect_url := l_redirect_url;
427 --  x_action_parameter_code :=  l_action_parameter_code;
428 
429     ELSE
430    get_redirect_url
431     (
432       tracking_rec.web_content_id,
433       l_redirect_url,
434       l_action_parameter_code
435      );
436 --  x_redirect_url := l_redirect_url;
437 --  x_action_parameter_code :=  l_action_parameter_code;
438 
439     END IF;
440 
441         x_redirect_url := l_redirect_url;
442   x_action_parameter_code :=  l_action_parameter_code;
443 
444     -- End of API body.
445 
446      -- Standard check for p_commit
447       IF FND_API.to_Boolean( p_commit ) THEN
448            COMMIT WORK;
449        END IF;
450 
451       -- Debug Message
452       AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'end');
453 
454 EXCEPTION
455 
456    WHEN FND_API.G_EXC_ERROR THEN
457      ROLLBACK TO Log_redirect;
458      x_return_status := FND_API.G_RET_STS_ERROR;
459      -- Standard call to get message count and if count=1, get the message
460      FND_MSG_PUB.Count_And_Get (
461             p_encoded => FND_API.G_FALSE,
462             p_count   => x_msg_count,
463             p_data    => x_msg_data
464      );
465 
466    WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
467      ROLLBACK TO Log_redirect;
468      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
469      -- Standard call to get message count and if count=1, get the message
470      FND_MSG_PUB.Count_And_Get (
471             p_encoded => FND_API.G_FALSE,
472             p_count => x_msg_count,
473             p_data  => x_msg_data
474      );
475 
476    WHEN OTHERS THEN
477      ROLLBACK TO Log_redirect;
478      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
479      IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
480      THEN
481         FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
482      END IF;
483      -- Standard call to get message count and if count=1, get the message
484      FND_MSG_PUB.Count_And_Get (
485             p_encoded => FND_API.G_FALSE,
486             p_count => x_msg_count,
487             p_data  => x_msg_data
488      );
489 
490    End Log_redirect;
491 
492 
493 
494    PROCEDURE get_redirect_url(
495         p_web_content_id IN NUMBER,
496         x_redirect_url   OUT NOCOPY VARCHAR2,
497         x_action_parameter_code   OUT  NOCOPY  VARCHAR2  )
498    IS
499    BEGIN
500         SAVEPOINT get_redirect_url;
501               x_redirect_url := NULL;
502         x_action_parameter_code := NULL;
503 
504         IF (p_web_content_id IS NOT NULL) THEN
505     select display_url, link_to
506     into x_redirect_url, x_action_parameter_code
507     from jtf_amv_attachments
508     where attachment_id = p_web_content_id;
509         END IF;
510     End get_redirect_url;
511 
512    PROCEDURE weblite_log(tracking_rec IN  interaction_track_rec_type := g_miss_ps_strats_rec,
513 		 x_interaction_id  OUT NOCOPY NUMBER,
514 		 x_msource  	   OUT NOCOPY NUMBER,
515 		 x_return_status   OUT NOCOPY VARCHAR2,
516 		 x_msg_count       OUT NOCOPY NUMBER,
517 		 x_msg_data        OUT NOCOPY VARCHAR2
518 	     )
519     IS
520 
521    l_api_name             CONSTANT VARCHAR2(30) := 'weblite_log';
522    l_api_version_number   CONSTANT NUMBER   := 1.0;
523    -- Local Variables
524    l_profile 		VARCHAR2(1);
525    l_msg_count          NUMBER;
526    l_msg_data           VARCHAR2(2000);
527    p_init_msg_list      VARCHAR2(2000);
528    p_commit             VARCHAR2(2000);
529    l_interaction_id     NUMBER := null;
530    l_obj_src_code       VARCHAR2(150);
531    l_code_id 	        NUMBER := null;
532 
533    CURSOR c_code_id(p_code VARCHAR2) IS
534      SELECT source_code_id FROM ams_source_codes
535      WHERE source_code = p_code;
536 
537    BEGIN
538 
539    --insert_log_mesg('Very first statement of weblite log');
540 
541    -- Standard Start of API savepoint
542          SAVEPOINT weblite_log;
543    -- Debug Message
544    AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
545    p_init_msg_list   := FND_API.G_FALSE;
546    p_commit   := FND_API.G_FALSE;
547    -- Initialize message list if p_init_msg_list is set to TRUE.
548    IF FND_API.to_Boolean( p_init_msg_list ) THEN
549      FND_MSG_PUB.initialize;
550    END IF;
551 
552    x_return_status := FND_API.G_RET_STS_SUCCESS;
553 
554    l_profile := FND_PROFILE.VALUE('AMS_LOG_INTERACTION') ;
555 
556 --insert_log_mesg('Profile: Log Interaction: '||l_profile);
557 
558    IF (l_profile = 'Y') THEN
559    Log_interaction( p_api_version_number => 1.0,
560           p_init_msg_list      =>  FND_API.G_FALSE,
561           p_commit             =>  FND_API.G_TRUE,
562           p_validation_level   =>  FND_API.G_VALID_LEVEL_FULL,
563           x_return_status      =>  x_return_status,
564           x_msg_count          =>  x_msg_count,
565           x_msg_data           =>  x_msg_data,
566           x_interaction_id     =>  l_interaction_id,
567           p_track_rec          =>  tracking_rec
568     );
569     END IF;
570 
571 --insert_log_mesg('Log Interaction return status: '||x_return_status);
572 --insert_log_mesg('Interaction Id: '||l_interaction_id);
573 
574     --if (x_return_status <> FND_API.G_RET_STS_SUCCESS) then
575       --for i in 1..x_msg_count
576       --loop
577        --insert_log_mesg('Message count: '||x_msg_count);
578        --insert_log_mesg('Message Data: '||x_msg_data);
579       --end loop;
580     --end if;
581 
582 --insert_log_mesg('Obj Source Code: '||tracking_rec.obj_src_code);
583 
584     IF (tracking_rec.obj_src_code IS NOT NULL ) THEN
585        l_obj_src_code := tracking_rec.obj_src_code;
586        OPEN c_code_id(l_obj_src_code);
587            fetch c_code_id into l_code_id;
588        CLOSE c_code_id;
589     END IF;
590 --insert_log_mesg('Msource: '||l_code_id);
591 
592     IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
593       RAISE FND_API.G_EXC_ERROR;
594     END IF;
595     x_return_status := FND_API.G_RET_STS_SUCCESS;
596     x_interaction_id :=  l_interaction_id;
597     x_msource := l_code_id;
598 
599     -- End of API body.
600 
601      -- Standard check for p_commit
602     IF FND_API.to_Boolean( p_commit ) THEN
603        COMMIT WORK;
604     END IF;
605 
606 --insert_log_mesg('Leaving weblitelog Happily !!!:)');
607       -- Debug Message
608    AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'end');
609 
610    EXCEPTION
611 
612    WHEN FND_API.G_EXC_ERROR THEN
613      ROLLBACK TO weblite_log;
614      x_return_status := FND_API.G_RET_STS_ERROR;
615 --insert_log_mesg('amsvtrkb:weblitelog:FND_API.G_EXC_ERROR');
616      -- Standard call to get message count and if count=1, get the message
617      FND_MSG_PUB.Count_And_Get (
618             p_encoded => FND_API.G_FALSE,
619             p_count   => x_msg_count,
620             p_data    => x_msg_data
621      );
622 
623    WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
624      ROLLBACK TO weblite_log;
625      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
626 --insert_log_mesg('amsvtrkb:weblitelog:FND_API.G_EXC_UNEXPECTED_ERROR');
627      -- Standard call to get message count and if count=1, get the message
628      FND_MSG_PUB.Count_And_Get (
629             p_encoded => FND_API.G_FALSE,
630             p_count => x_msg_count,
631             p_data  => x_msg_data
632      );
633 
634    WHEN OTHERS THEN
635      ROLLBACK TO weblite_log;
636      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
637 --insert_log_mesg('amsvtrkb:weblitelog:OTHERS');
638      IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
639      THEN
640         FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
641      END IF;
642      -- Standard call to get message count and if count=1, get the message
643      FND_MSG_PUB.Count_And_Get (
644             p_encoded => FND_API.G_FALSE,
645             p_count => x_msg_count,
646             p_data  => x_msg_data
647      );
648 
649    End weblite_log;
650 
651 END AMS_TRACKING_PVT;