DBA Data[Home] [Help]

PACKAGE BODY: APPS.AMS_CONTACT_PREFERENCE_PVT

Source


1 PACKAGE BODY AMS_CONTACT_PREFERENCE_PVT as
2 /* $Header: amsvcppb.pls 115.8 2002/12/23 22:11:09 vbhandar ship $ */
3 -- ===============================================================
4 -- Start of Comments
5 -- Package name
6 --          AMS_CONTACT_PREFERENCE_PVT
7 -- Purpose
8 --
9 -- History
10 --
11 --
12 -- NOTE
13 --
14 -- End of Comments
15 -- ===============================================================
16 
17 
18 G_PKG_NAME CONSTANT VARCHAR2(30):= 'AMS_CONTACT_PREFERENCE_PVT';
19 G_FILE_NAME CONSTANT VARCHAR2(12) := 'amsvcppb.pls';
20 
21 /*
22 G_USER_ID         NUMBER := FND_GLOBAL.USER_ID;
23 G_LOGIN_ID        NUMBER := FND_GLOBAL.CONC_LOGIN_ID;
24 */
25 
26 -- Hint: Primary key needs to be returned.
27 AMS_DEBUG_HIGH_ON boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_HIGH);
28 AMS_DEBUG_LOW_ON boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW);
29 AMS_DEBUG_MEDIUM_ON boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_MEDIUM);
30 
31 PROCEDURE create_contact_preference(
32     p_api_version_number         IN   NUMBER,
33     p_init_msg_list              IN   VARCHAR2     := FND_API.G_FALSE,
34     p_commit                     IN   VARCHAR2     := FND_API.G_FALSE,
35     p_validation_level           IN   NUMBER       := FND_API.G_VALID_LEVEL_FULL,
36 
37     x_return_status              OUT NOCOPY  VARCHAR2,
38     x_msg_count                  OUT NOCOPY  NUMBER,
39     x_msg_data                   OUT NOCOPY  VARCHAR2,
40 
41     p_ams_contact_pref_rec       IN   contact_preference_rec_type ,
42     p_request_id                 IN   NUMBER,
43     x_contact_preference_id      OUT NOCOPY  NUMBER
44      )
45 
46  IS
47    L_API_NAME                  CONSTANT VARCHAR2(30) := 'create_contact_preference';
48    L_API_VERSION_NUMBER        CONSTANT NUMBER   := 1.0;
49    l_object_version_number     NUMBER := 1;
50    l_contact_preference_id                  NUMBER;
51    l_return_status     VARCHAR2(1);
52    l_msg_count         NUMBER;
53    l_msg_data          VARCHAR2(2000);
54 
55 
56 
57     l_hz_contact_pref_rec HZ_CONTACT_PREFERENCE_V2PUB.CONTACT_PREFERENCE_REC_TYPE;
58 BEGIN
59       -- Standard Start of API savepoint
60       SAVEPOINT Create_Contact_Preference_PVT;
61 
62 
63       -- Standard call to check for call compatibility.
64 
65       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
66                                            p_api_version_number,
67                                            l_api_name,
68                                            G_PKG_NAME)
69       THEN
70           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
71       END IF;
72 
73 
74       -- Initialize message list if p_init_msg_list is set to TRUE.
75       IF FND_API.to_Boolean( p_init_msg_list )
76       THEN
77          FND_MSG_PUB.initialize;
78       END IF;
79 
80       -- Debug Message
81       IF (AMS_DEBUG_HIGH_ON) THEN
82 
83       AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
84       END IF;
85 
86 
87       -- Initialize API return status to SUCCESS
88       x_return_status := FND_API.G_RET_STS_SUCCESS;
89 
90 
91       -- =========================================================================
92       -- Validate Environment
93       -- =========================================================================
94 
95       IF FND_GLOBAL.User_Id IS NULL
96       THEN
97           AMS_Utility_PVT.Error_Message(p_message_name => 'USER_PROFILE_MISSING');
98           RAISE FND_API.G_EXC_ERROR;
99       END IF;
100 
101       -- Debug Message
102       IF (AMS_DEBUG_HIGH_ON) THEN
103 
104       AMS_UTILITY_PVT.debug_message( 'Private API: Calling HZ create table PUB');
105       END IF;
106 
107 
108       l_hz_contact_pref_rec.contact_preference_id   :=  p_ams_contact_pref_rec.contact_preference_id;
109       l_hz_contact_pref_rec.contact_level_table   :=  p_ams_contact_pref_rec.contact_level_table;
110       l_hz_contact_pref_rec.contact_level_table_id   :=  p_ams_contact_pref_rec.contact_level_table_id;
111       l_hz_contact_pref_rec.contact_type   :=  p_ams_contact_pref_rec.contact_type;
112       l_hz_contact_pref_rec.preference_code   :=  p_ams_contact_pref_rec.preference_code;
113       l_hz_contact_pref_rec.preference_topic_type   :=  p_ams_contact_pref_rec.preference_topic_type;
114       l_hz_contact_pref_rec.preference_topic_type_id   :=  p_ams_contact_pref_rec.preference_topic_type_id;
115       l_hz_contact_pref_rec.preference_topic_type_code   :=  p_ams_contact_pref_rec.preference_topic_type_code;
116       l_hz_contact_pref_rec.preference_start_date   :=  p_ams_contact_pref_rec.preference_start_date;
117       l_hz_contact_pref_rec.preference_end_date   :=  p_ams_contact_pref_rec.preference_end_date;
118       l_hz_contact_pref_rec.preference_start_time_hr   :=  p_ams_contact_pref_rec.preference_start_time_hr;
119       l_hz_contact_pref_rec.preference_end_time_hr   :=  p_ams_contact_pref_rec.preference_end_time_hr;
120       l_hz_contact_pref_rec.preference_start_time_mi   :=  p_ams_contact_pref_rec.preference_start_time_mi;
121       l_hz_contact_pref_rec.preference_end_time_mi   :=  p_ams_contact_pref_rec.preference_end_time_mi;
122       l_hz_contact_pref_rec.max_no_of_interactions   :=  p_ams_contact_pref_rec.max_no_of_interactions;
123       l_hz_contact_pref_rec.max_no_of_interact_uom_code   :=  p_ams_contact_pref_rec.max_no_of_interact_uom_code;
124       l_hz_contact_pref_rec.requested_by   :=  p_ams_contact_pref_rec.requested_by;
125       l_hz_contact_pref_rec.created_by_module   :=  p_ams_contact_pref_rec.created_by_module;
126       -- Do not include the following columns. It will make update failed without any error message
127       /*
128       l_hz_contact_pref_rec.reason_code   :=  p_ams_contact_pref_rec.reason_code;
129       l_hz_contact_pref_rec.status   :=  p_ams_contact_pref_rec.status;
130       l_hz_contact_pref_rec.application_id   :=  p_ams_contact_pref_rec.application_id;
131       */
132       HZ_CONTACT_PREFERENCE_V2PUB.create_contact_preference
133       (
134         p_init_msg_list => p_init_msg_list,
135         p_contact_preference_rec =>l_hz_contact_pref_rec ,
136         x_contact_preference_id => l_contact_preference_id,
137         x_return_status => l_return_status,
138         x_msg_count => l_msg_count,
139         x_msg_data => l_msg_data
140       );
141 
142 
143 
144       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
145           x_msg_count := l_msg_count;
146           x_msg_data := l_msg_data;
147           RAISE FND_API.G_EXC_ERROR;
148       END IF;
149       x_contact_preference_id:=l_contact_preference_id;
150 
151 
152       IF (p_request_id IS NOT NULL) THEN
153          JTF_FM_TRACK_PVT.UNSUBSCRIBE_USER(p_request_id,p_ams_contact_pref_rec.contact_level_table_id);
154 
155       END IF;
156 
157       -- Standard check for p_commit
158       IF FND_API.to_Boolean( p_commit )
159       THEN
160          COMMIT WORK;
161       END IF;
162 
163 
164       -- Debug Message
165       IF (AMS_DEBUG_HIGH_ON) THEN
166 
167       AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'end');
168       END IF;
169 
170       -- Standard call to get message count and if count is 1, get message info.
171       FND_MSG_PUB.Count_And_Get
172         (p_count          =>   x_msg_count,
173          p_data           =>   x_msg_data
174       );
175 EXCEPTION
176 
177    WHEN AMS_Utility_PVT.resource_locked THEN
178      x_return_status := FND_API.g_ret_sts_error;
179      AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
180 
181    WHEN FND_API.G_EXC_ERROR THEN
182      ROLLBACK TO Create_Contact_Preference_PVT;
183      x_return_status := FND_API.G_RET_STS_ERROR;
184      -- Standard call to get message count and if count=1, get the message
185      FND_MSG_PUB.Count_And_Get (
186             p_encoded => FND_API.G_FALSE,
187             p_count   => x_msg_count,
188             p_data    => x_msg_data
189      );
190 
191    WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
192      ROLLBACK TO Create_Contact_Preference_PVT;
193      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
194      -- Standard call to get message count and if count=1, get the message
195      FND_MSG_PUB.Count_And_Get (
196             p_encoded => FND_API.G_FALSE,
197             p_count => x_msg_count,
198             p_data  => x_msg_data
199      );
200 
201    WHEN OTHERS THEN
202      ROLLBACK TO Create_Contact_Preference_PVT;
203      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
204      IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
205      THEN
206         FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
207      END IF;
208      -- Standard call to get message count and if count=1, get the message
209      FND_MSG_PUB.Count_And_Get (
210             p_encoded => FND_API.G_FALSE,
211             p_count => x_msg_count,
212             p_data  => x_msg_data
213      );
214 End create_contact_preference;
215 
216 
217 
218 
219 PROCEDURE update_contact_preference(
220     p_api_version_number         IN   NUMBER,
221     p_init_msg_list              IN   VARCHAR2     := FND_API.G_FALSE,
222     p_commit                     IN   VARCHAR2     := FND_API.G_FALSE,
223     p_validation_level           IN   NUMBER       := FND_API.G_VALID_LEVEL_FULL,
224 
225     x_return_status              OUT NOCOPY  VARCHAR2,
226     x_msg_count                  OUT NOCOPY  NUMBER,
227     x_msg_data                   OUT NOCOPY  VARCHAR2,
228 
229     p_ams_contact_pref_rec       IN   contact_preference_rec_type ,
230     p_request_id                 IN   NUMBER,
231     px_object_version_number     IN OUT NOCOPY  NUMBER
232     )
233 
234  IS
235         L_API_NAME                  CONSTANT VARCHAR2(30) := 'update_contact_preference';
236         L_API_VERSION_NUMBER        CONSTANT NUMBER   := 1.0;
237         l_object_version_number     NUMBER;
238         l_contact_preference_id     NUMBER;
239         l_commit                    VARCHAR2(1) := FND_API.g_true;
240         l_return_status             VARCHAR2(1);
241         l_msg_count                 NUMBER;
242         l_msg_data                  VARCHAR2(2000);
243     l_hz_contact_pref_rec HZ_CONTACT_PREFERENCE_V2PUB.CONTACT_PREFERENCE_REC_TYPE;
244 
245  BEGIN
246       -- Standard Start of API savepoint
247       SAVEPOINT UPDATE_CONTACT_PREFERENCE_PVT;
248 
249       -- Standard call to check for call compatibility.
250       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
251                                            p_api_version_number,
252                                            l_api_name,
253                                            G_PKG_NAME)
254       THEN
255           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
256       END IF;
257 
258       -- Initialize message list if p_init_msg_list is set to TRUE.
259       IF FND_API.to_Boolean( p_init_msg_list )
260       THEN
261          FND_MSG_PUB.initialize;
262       END IF;
263 
264       -- Debug Message
265       IF (AMS_DEBUG_HIGH_ON) THEN
266 
267       AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
268       END IF;
269 
270 
271       -- Initialize API return status to SUCCESS
272       x_return_status := FND_API.G_RET_STS_SUCCESS;
273 
274       -- Debug Message
275       IF (AMS_DEBUG_HIGH_ON) THEN
276 
277       AMS_UTILITY_PVT.debug_message('Private API: Calling HZ update table PUB');
278       END IF;
279 
280 
281       l_hz_contact_pref_rec.contact_preference_id   :=  p_ams_contact_pref_rec.contact_preference_id;
282       l_hz_contact_pref_rec.contact_level_table   :=  p_ams_contact_pref_rec.contact_level_table;
283       l_hz_contact_pref_rec.contact_level_table_id   :=  p_ams_contact_pref_rec.contact_level_table_id;
284       l_hz_contact_pref_rec.contact_type   :=  p_ams_contact_pref_rec.contact_type;
285       l_hz_contact_pref_rec.preference_code   :=  p_ams_contact_pref_rec.preference_code;
286       l_hz_contact_pref_rec.preference_topic_type   :=  p_ams_contact_pref_rec.preference_topic_type;
287       l_hz_contact_pref_rec.preference_topic_type_id   :=  p_ams_contact_pref_rec.preference_topic_type_id;
288       l_hz_contact_pref_rec.preference_topic_type_code   :=  p_ams_contact_pref_rec.preference_topic_type_code;
289       l_hz_contact_pref_rec.preference_start_date   :=  p_ams_contact_pref_rec.preference_start_date;
290       l_hz_contact_pref_rec.preference_end_date   :=  p_ams_contact_pref_rec.preference_end_date;
291       l_hz_contact_pref_rec.preference_start_time_hr   :=  p_ams_contact_pref_rec.preference_start_time_hr;
292       l_hz_contact_pref_rec.preference_end_time_hr   :=  p_ams_contact_pref_rec.preference_end_time_hr;
293       l_hz_contact_pref_rec.preference_start_time_mi   :=  p_ams_contact_pref_rec.preference_start_time_mi;
294       l_hz_contact_pref_rec.preference_end_time_mi   :=  p_ams_contact_pref_rec.preference_end_time_mi;
295       l_hz_contact_pref_rec.max_no_of_interactions   :=  p_ams_contact_pref_rec.max_no_of_interactions;
296       l_hz_contact_pref_rec.max_no_of_interact_uom_code   :=  p_ams_contact_pref_rec.max_no_of_interact_uom_code;
297          /*
298       l_hz_contact_pref_rec.requested_by   :=  p_ams_contact_pref_rec.requested_by;
299       l_hz_contact_pref_rec.reason_code   :=  p_ams_contact_pref_rec.reason_code;
300       l_hz_contact_pref_rec.status   :=  p_ams_contact_pref_rec.status;
301       l_hz_contact_pref_rec.created_by_module   :=  p_ams_contact_pref_rec.created_by_module;
302       l_hz_contact_pref_rec.application_id   :=  p_ams_contact_pref_rec.application_id;
303          */
304       HZ_CONTACT_PREFERENCE_V2PUB.update_contact_preference
305       (
306         p_init_msg_list => p_init_msg_list,
307         p_contact_preference_rec => l_hz_contact_pref_rec,
308         p_object_version_number => px_object_version_number,
309         x_return_status => l_return_status,
310         x_msg_count => l_msg_count,
311         x_msg_data => l_msg_data
312       );
313 
314        IF (p_request_id IS NOT NULL) THEN
315          JTF_FM_TRACK_PVT.UNSUBSCRIBE_USER(p_request_id,p_ams_contact_pref_rec.contact_level_table_id);
316 
317       END IF;
318 
319       -- Standard check for p_commit
320       IF FND_API.to_Boolean( p_commit )
321       THEN
322          COMMIT WORK;
323       END IF;
324 
325 
326       -- Debug Message
327       IF (AMS_DEBUG_HIGH_ON) THEN
328 
329       AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'end');
330       END IF;
331 
332       -- Standard call to get message count and if count is 1, get message info.
333       FND_MSG_PUB.Count_And_Get
334         (p_count          =>   x_msg_count,
335          p_data           =>   x_msg_data
336       );
337 EXCEPTION
338 
339    WHEN AMS_Utility_PVT.resource_locked THEN
340      x_return_status := FND_API.g_ret_sts_error;
341      AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
342 
343    WHEN FND_API.G_EXC_ERROR THEN
344      ROLLBACK TO UPDATE_CONTACT_PREFERENCE_PVT;
345      x_return_status := FND_API.G_RET_STS_ERROR;
346      -- Standard call to get message count and if count=1, get the message
347      FND_MSG_PUB.Count_And_Get (
348             p_encoded => FND_API.G_FALSE,
349             p_count   => x_msg_count,
350             p_data    => x_msg_data
351      );
352 
353    WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
354      ROLLBACK TO UPDATE_CONTACT_PREFERENCE_PVT;
355      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
356      -- Standard call to get message count and if count=1, get the message
357      FND_MSG_PUB.Count_And_Get (
358             p_encoded => FND_API.G_FALSE,
359             p_count => x_msg_count,
360             p_data  => x_msg_data
361      );
362 
363    WHEN OTHERS THEN
364      ROLLBACK TO UPDATE_CONTACT_PREFERENCE_PVT;
365      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
366      IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
367      THEN
368         FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
369      END IF;
370      -- Standard call to get message count and if count=1, get the message
371      FND_MSG_PUB.Count_And_Get (
372             p_encoded => FND_API.G_FALSE,
373             p_count => x_msg_count,
374             p_data  => x_msg_data
375      );
376 End update_contact_preference;
377 
378 
379 
380 END AMS_CONTACT_PREFERENCE_PVT;