[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;