[Home] [Help]
PACKAGE BODY: APPS.PV_AS_ACCESS_VHUK
Source
1 package body PV_AS_ACCESS_VHUK as
2 /* $Header: pvxvacsb.pls 120.0 2005/05/27 15:39:07 appldev noship $ */
3
4
5 G_PKG_NAME CONSTANT VARCHAR2(30):='PV_AS_ACCESS_VHUK';
6 G_FILE_NAME CONSTANT VARCHAR2(12):='pvxvacsb.pls';
7
8
9 procedure Validate_Salesteam (
10 p_api_version_number IN NUMBER,
11 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
12 p_commit IN VARCHAR2 := FND_API.G_FALSE,
13 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
14 p_access_id IN NUMBER,
15 p_lead_id IN NUMBER,
16 p_salesforce_id IN NUMBER,
17 p_mode IN VARCHAR2, -- The mode can be CREATE, UPDATE, DELETE
18 x_return_status OUT NOCOPY VARCHAR2,
19 x_msg_count OUT NOCOPY NUMBER,
20 x_msg_data OUT NOCOPY VARCHAR2) is
21
22
23 l_api_name CONSTANT VARCHAR2(30) := 'Validate_Salesteam';
24 l_api_version_number CONSTANT NUMBER := 2.0;
25
26 l_lead_id NUMBER := p_lead_id; --p_sales_team_rec.salesforce_id;
27 l_salesforce_id NUMBER := p_salesforce_id; --p_sales_team_rec.salesforce_id;
28
29
30 l_party_id NUMBER;
31 l_relationship_type VARCHAR2(300);
32 l_prm_keep_flag VARCHAR2(10);
33
34 -- Required by getWorkflowID
35 l_entity VARCHAR2(200) := 'OPPORTUNITY';
36 l_itemType VARCHAR2(300);
37 l_itemKey VARCHAR2(300);
38 l_routing_status varchar2(300);
39 l_wf_status VARCHAR2(200);
40
41
42
43 -- new query to support directional flag
44 CURSOR lc_get_rel_type(pc_salesforce_id number) is
45 SELECT
46 PTORG.relationship_code
47 FROM
48 hz_relationships CONTACT,
49 hz_relationships PTORG,
50 pv_partner_profiles PVPP,
51 jtf_rs_resource_extns EXTN
52 WHERE EXTN.resource_id = pc_salesforce_id
53 AND EXTN.source_id = CONTACT.party_id
54 AND EXTN.category = 'PARTY'
55 AND CONTACT.subject_table_name = 'HZ_PARTIES'
56 AND CONTACT.object_table_name = 'HZ_PARTIES'
57 AND CONTACT.RELATIONSHIP_TYPE = 'EMPLOYMENT'
58 AND CONTACT.RELATIONSHIP_CODE = 'EMPLOYEE_OF'
59 AND CONTACT.directional_flag = 'F'
60 AND CONTACT.STATUS = 'A'
61 AND CONTACT.start_date <= SYSDATE
62 AND nvl(CONTACT.end_date, SYSDATE) >= SYSDATE
63 AND PTORG.subject_id = CONTACT.object_id
64 AND PTORG.subject_table_name = 'HZ_PARTIES'
65 AND PTORG.object_table_name = 'HZ_PARTIES'
66 AND PTORG.RELATIONSHIP_TYPE = 'PARTNER'
67 AND PTORG.STATUS = 'A'
68 AND PTORG.start_date <= SYSDATE
69 AND nvl(PTORG.end_date, SYSDATE) >= SYSDATE
70 AND PVPP.partner_party_id = PTORG.object_id
71 AND PVPP.partner_id = PTORG.party_id
72 AND PVPP.SALES_PARTNER_FLAG = 'Y'
73 AND PVPP.status = 'A'
74 ORDER BY PTORG.relationship_code desc;
75
76
77 CURSOR lc_get_prm_flag(pc_access_id number) is
78 SELECT prm_keep_flag
79 FROM as_accesses_all
80 WHERE access_id = pc_access_id;
81
82 l_get_upd_del_check_perm VARCHAR2(1) := 'N';
83
84 CURSOR lc_get_upd_del_check_perm(pc_lead_id number, pc_access_id number) is
85
86 SELECT
87 1 from as_accesses_all acc , hz_relationships hzpp , hz_parties ptorg,
88 fnd_user fndu, jtf_rs_resource_extns jtfre,
89 hz_parties ptorg1 ,hz_relationships hzpp1
90 WHERE
91 acc.partner_cont_party_id = hzpp.party_id and
92 hzpp.object_id = ptorg.party_id and
93 ptorg.party_type = 'ORGANIZATION' and
94 --acc.salesforce_id = pc_sales_force_id and
95 acc.access_id = pc_access_id and
96 fndu.user_id = fnd_global.user_id and
97 jtfre.user_id = fndu.user_id and
98 jtfre.source_id = hzpp1.party_id and
99 hzpp1.object_id = ptorg1.party_id and
100 ptorg1.party_type = 'ORGANIZATION' and
101 acc.lead_id = pc_lead_id and
102 ptorg1.party_id=ptorg.party_id
103 ;
104
105 CURSOR lc_is_partner_user is
106
107 SELECT 'PARTNER_OF'
108 FROM
109 hz_relationships CONTACT,
110 pv_partner_profiles PVPP,
111 jtf_rs_resource_extns EXTN,
112 fnd_user fndu
113 WHERE fndu.user_id = fnd_global.user_id
114 AND EXTN.user_id = fndu.user_id
115 AND CONTACT.party_id = EXTN.source_id
116 AND CONTACT.subject_table_name = 'HZ_PARTIES'
117 AND CONTACT.object_table_name = 'HZ_PARTIES'
118 AND CONTACT.RELATIONSHIP_TYPE = 'EMPLOYMENT'
119 AND CONTACT.RELATIONSHIP_CODE = 'EMPLOYEE_OF'
120 AND CONTACT.directional_flag = 'F'
121 AND CONTACT.STATUS = 'A'
122 AND CONTACT.start_date <= SYSDATE
123 AND nvl(CONTACT.end_date, SYSDATE) >= SYSDATE
124 AND PVPP.partner_party_id = CONTACT.object_id
125 ;
126
127 l_is_partner_user VARCHAR2(1) := 'N';
128
129 BEGIN
130 --FND_MSG_PUB.G_MSG_LEVEL_THRESHOLD := FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW;
131
132 -- Standard call to check for call compatibility.
133 IF NOT FND_API.Compatible_API_Call(l_api_version_number,
134 p_api_version_number,
135 l_api_name,
136 G_PKG_NAME)
137 THEN
138 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
139 END IF;
140
141 -- Initialize message list if p_init_msg_list is set to TRUE.
142 IF FND_API.to_Boolean( p_init_msg_list ) THEN
143 fnd_msg_pub.initialize;
144 END IF;
145
146 IF fnd_msg_pub.Check_Msg_Level (fnd_msg_pub.G_MSG_LVL_DEBUG_LOW) THEN
147 fnd_message.Set_Name('PV', 'PV_DEBUG_MESSAGE');
148 fnd_message.Set_Token('TEXT', 'In ' || l_api_name || ' , access > ' || p_access_id || ', lead_id > ' || p_lead_id || ', salesforce > ' || l_salesforce_id || ', api version > ' || p_api_version_number);
149 fnd_msg_pub.Add;
150 END IF;
151
152 -- Initialize API return status to success
153 x_return_status := FND_API.G_RET_STS_SUCCESS;
154
155 IF fnd_msg_pub.Check_Msg_Level (fnd_msg_pub.G_MSG_LVL_DEBUG_LOW) THEN
156 fnd_message.Set_Name('PV', 'PV_DEBUG_MESSAGE');
157 fnd_message.Set_Token('TEXT', 'before pv_assignment_pvt.GetWorkflowID');
158 fnd_msg_pub.Add;
159 END IF;
160
161 -- if its a customer, lead_id will be null
162 if p_lead_id is null then
163 return;
164 end if;
165
166 -- call getWorkflowId to check the Workflow status
167 pv_assign_util_pvt.GetWorkflowID (p_api_version_number => 1.0,
168 p_init_msg_list => FND_API.G_FALSE,
169 p_commit => FND_API.G_FALSE,
170 p_validation_level => p_validation_level,
171 p_lead_id => l_lead_id,
172 p_entity => l_entity,
173 x_itemType => l_itemType,
174 x_itemKey => l_itemKey,
175 x_routing_status => l_routing_status,
176 x_wf_status => l_wf_status,
177 x_return_status => x_return_status,
178 x_msg_count => x_msg_count,
179 x_msg_data => x_msg_data);
180
181 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
182 RAISE FND_API.G_EXC_ERROR;
183 END IF;
184
185 -- Debug Message
186 IF fnd_msg_pub.Check_Msg_Level (fnd_msg_pub.G_MSG_LVL_DEBUG_LOW) THEN
187 fnd_message.Set_Name('PV', 'PV_DEBUG_MESSAGE');
188 fnd_message.Set_Token('TEXT', 'After pv_assignment_pvt.GetWorkflowID : wf status : ' || l_wf_status);
189 fnd_msg_pub.Add;
190 END IF;
191
192 OPEN lc_get_rel_type (pc_salesforce_id => l_salesforce_id);
193 FETCH lc_get_rel_type
194 INTO l_relationship_type;
195 CLOSE lc_get_rel_type;
196
197 IF fnd_msg_pub.Check_Msg_Level (fnd_msg_pub.G_MSG_LVL_DEBUG_LOW) THEN
198 fnd_message.Set_Name('PV', 'PV_DEBUG_MESSAGE');
199 fnd_message.Set_Token('TEXT', 'Relationship Type : ' || l_relationship_type);
200 fnd_msg_pub.Add;
201 END IF;
202
203 -- wf_status could be OPEN and routing_status ACTIVE in case of Joint
204 IF l_wf_status = g_wf_status_open and l_routing_status <> 'ACTIVE' THEN
205
206 IF p_mode = 'CREATE' then
207
208 /* OPEN lc_get_rel_type (pc_salesforce_id => l_salesforce_id);
209 FETCH lc_get_rel_type
210 INTO l_relationship_type;
211 CLOSE lc_get_rel_type;
212
213 IF fnd_msg_pub.Check_Msg_Level (fnd_msg_pub.G_MSG_LVL_DEBUG_LOW) THEN
214 fnd_message.Set_Name('PV', 'PV_DEBUG_MESSAGE');
215 fnd_message.Set_Token('TEXT', 'Relationship Type : ' || l_relationship_type);
216 fnd_msg_pub.Add;
217 END IF;
218 */
219 IF (l_relationship_type IS NULL) THEN
220 IF fnd_msg_pub.Check_Msg_Level (fnd_msg_pub.G_MSG_LVL_DEBUG_LOW) THEN
221 fnd_message.Set_Name('PV', 'PV_DEBUG_MESSAGE');
222 fnd_message.Set_Token('TEXT', 'Resource id: ' || l_salesforce_id || ' is not a partner user. Returning');
223 fnd_msg_pub.Add;
224 END IF;
225 return;
226 ELSIF l_relationship_type = 'PARTNER_OF' THEN
227 fnd_message.SET_NAME('PV', 'PV_ADDSLSTEAM_NOT_ALLOWED'); -- Change message 1 ********************
228 fnd_msg_pub.ADD;
229 RAISE FND_API.G_EXC_ERROR;
230 END IF;
231
232 ELSIF p_mode = 'DELETE' or p_mode = 'UPDATE' then
233
234 IF fnd_msg_pub.Check_Msg_Level (fnd_msg_pub.G_MSG_LVL_DEBUG_LOW) THEN
235 fnd_message.Set_Name('PV', 'PV_DEBUG_MESSAGE');
236 fnd_message.Set_Token('TEXT', 'In Delete / Update block ');
237 fnd_msg_pub.Add;
238 END IF;
239
240 OPEN lc_get_prm_flag(pc_access_id => p_access_id);
241 FETCH lc_get_prm_flag
242 INTO l_prm_keep_flag;
243 CLOSE lc_get_prm_flag;
244
245 IF fnd_msg_pub.Check_Msg_Level (fnd_msg_pub.G_MSG_LVL_DEBUG_LOW) THEN
246 fnd_message.Set_Name('PV', 'PV_DEBUG_MESSAGE');
247 fnd_message.Set_Token('TEXT', 'After PRM KEEP FLAG check : ' || l_prm_keep_flag);
248 fnd_msg_pub.Add;
249 END IF;
250
251 IF (l_prm_keep_flag = 'Y') THEN
252 fnd_message.SET_NAME('PV', 'PV_UPDSLSTEAM_NOT_ALLOWED'); -- Change message 1 ********************
253 fnd_msg_pub.ADD;
254 RAISE FND_API.G_EXC_ERROR;
255 END IF;
256
257 IF fnd_msg_pub.Check_Msg_Level (fnd_msg_pub.G_MSG_LVL_DEBUG_LOW) THEN
258 fnd_message.Set_Name('PV', 'PV_DEBUG_MESSAGE');
259 fnd_message.Set_Token('TEXT', 'Success ..... ');
260 fnd_msg_pub.Add;
261 END IF;
262
263 END IF;
264
265 ELSE
266 -- Workflow is not running. return success mesage and continue with the calling API
267 NULL;
268
269 END IF; -- Workflow open or not
270
271
272
273 --Checking if user can update or delete sales team.
274 --Logged in user can update or delete sales team if \user belongs to the
275 --organisation of the person he tries to update or delete.
276 --for bug# 3439126
277 -- this condition only applies for partner user
278
279 IF p_mode = 'DELETE' or p_mode = 'UPDATE' then
280
281 for x in lc_get_upd_del_check_perm(pc_lead_id =>p_lead_id,pc_access_id => p_access_id)
282 loop
283 l_get_upd_del_check_perm := 'Y' ;
284 end loop;
285
286 --to find if logged in user is partner user
287
288 for x in lc_is_partner_user
289 loop
290 l_is_partner_user := 'Y' ;
291 end loop;
292
293
294
295 if(l_get_upd_del_check_perm = 'N' and
296 l_is_partner_user = 'Y' )
297
298 then
299
300 IF (FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)) THEN
301 FND_MESSAGE.Set_Name('PV', 'PV_USER_NOT_UPD_DEL_EXT_SLSTM');
302 --FND_MESSAGE.Set_Token('ATTRIBUTE_NAME',p_attribute_rec.name );
303 --FND_MESSAGE.Set_Token('RESPONSIBILITY_LIST',substr(l_being_used_list,2) );
304 FND_MSG_PUB.Add;
305 END IF;
306 RAISE FND_API.G_EXC_ERROR;
307 end if;
308 end if;
309
310
311
312 -- Standard call to get message count and if count is 1, get message info.
313 fnd_msg_pub.Count_And_Get( p_encoded => FND_API.G_TRUE,
314 p_count => x_msg_count,
315 p_data => x_msg_data);
316
317 EXCEPTION
318
319 WHEN NO_DATA_FOUND THEN
320 IF fnd_msg_pub.Check_Msg_Level (fnd_msg_pub.G_MSG_LVL_DEBUG_LOW) THEN
321 fnd_message.Set_Name('PV', 'PV_DEBUG_MESSAGE');
322 fnd_message.Set_Token('TEXT', 'NO Data found ..');
323 fnd_msg_pub.Add;
324 END IF;
325
326 WHEN FND_API.G_EXC_ERROR THEN
327
328 x_return_status := FND_API.G_RET_STS_ERROR ;
329 fnd_msg_pub.Count_And_Get( p_encoded => FND_API.G_TRUE,
330 p_count => x_msg_count,
331 p_data => x_msg_data);
332
333 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
334
335 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
336 fnd_msg_pub.Count_And_Get( p_encoded => FND_API.G_TRUE,
337 p_count => x_msg_count,
338 p_data => x_msg_data);
339
340 WHEN OTHERS THEN
341
342 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
343 FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME, l_api_name);
344 fnd_msg_pub.Count_And_Get( p_encoded => FND_API.G_TRUE,
345 p_count => x_msg_count,
346 p_data => x_msg_data);
347
348 END Validate_Salesteam;
349
350
351 procedure Create_Salesteam_Pre (
352 p_api_version_number IN NUMBER,
353 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
354 p_commit IN VARCHAR2 := FND_API.G_FALSE,
355 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
356 p_lead_id IN NUMBER,
357 p_salesforce_id IN NUMBER,
358 x_return_status OUT NOCOPY VARCHAR2,
359 x_msg_count OUT NOCOPY NUMBER,
360 x_msg_data OUT NOCOPY VARCHAR2) is
361
362 l_api_name CONSTANT VARCHAR2(30) := 'Create_Salesteam_Pre';
363 l_api_version_number CONSTANT NUMBER := 2.0;
364
365 l_mode CONSTANT VARCHAR2(20) := 'CREATE';
366
367 BEGIN
368 --FND_MSG_PUB.G_MSG_LEVEL_THRESHOLD := FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW;
369 -- Standard call to check for call compatibility.
370 IF NOT FND_API.Compatible_API_Call(l_api_version_number,
371 p_api_version_number,
372 l_api_name,
373 G_PKG_NAME)
374 THEN
375 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
376 END IF;
377
378 -- Initialize message list if p_init_msg_list is set to TRUE.
379 IF FND_API.to_Boolean( p_init_msg_list ) THEN
380 fnd_msg_pub.initialize;
381 END IF;
382
383 IF fnd_msg_pub.Check_Msg_Level (fnd_msg_pub.G_MSG_LVL_DEBUG_LOW) THEN
384 fnd_message.Set_Name('PV', 'PV_DEBUG_MESSAGE');
385 fnd_message.Set_Token('TEXT', 'In ' || l_api_name || ' ' || p_lead_id || ' ' || p_salesforce_id || ' ' || p_api_version_number);
386 fnd_msg_pub.Add;
387 END IF;
388
389 -- Initialize API return status to success
390 x_return_status := FND_API.G_RET_STS_SUCCESS;
391
392 -- if its a customer, lead_id will be null
393 if p_lead_id is null then
394 return;
395 end if;
396
397 Validate_Salesteam (
398 p_api_version_number => l_api_version_number,
399 p_init_msg_list => p_init_msg_list,
400 p_commit => p_commit,
401 p_validation_level => p_validation_level,
402 p_access_id => null,
403 p_lead_id => p_lead_id,
404 p_salesforce_id => p_salesforce_id,
405 p_mode => l_mode,
406 x_return_status => x_return_status,
407 x_msg_count => x_msg_count,
408 x_msg_data => x_msg_data);
409
410 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
411 RAISE FND_API.G_EXC_ERROR;
412 END IF;
413
414 -- Standard call to get message count and if count is 1, get message info.
415 fnd_msg_pub.Count_And_Get( p_encoded => FND_API.G_TRUE,
416 p_count => x_msg_count,
417 p_data => x_msg_data);
418
419 EXCEPTION
420
421 WHEN FND_API.G_EXC_ERROR THEN
422
423 x_return_status := FND_API.G_RET_STS_ERROR ;
424 fnd_msg_pub.Count_And_Get( p_encoded => FND_API.G_TRUE,
425 p_count => x_msg_count,
426 p_data => x_msg_data);
427
428 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
429
430 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
431 fnd_msg_pub.Count_And_Get( p_encoded => FND_API.G_TRUE,
432 p_count => x_msg_count,
433 p_data => x_msg_data);
434
435 WHEN OTHERS THEN
436
437 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
438 FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME, l_api_name);
439 fnd_msg_pub.Count_And_Get( p_encoded => FND_API.G_TRUE,
440 p_count => x_msg_count,
441 p_data => x_msg_data);
442
443 END Create_Salesteam_Pre;
444
445 procedure Update_Salesteam_Pre (
446 p_api_version_number IN NUMBER,
447 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
448 p_commit IN VARCHAR2 := FND_API.G_FALSE,
449 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
450 p_access_id IN NUMBER,
451 p_lead_id IN NUMBER,
452 x_return_status OUT NOCOPY VARCHAR2,
453 x_msg_count OUT NOCOPY NUMBER,
454 x_msg_data OUT NOCOPY VARCHAR2) is
455
456 l_api_name CONSTANT VARCHAR2(30) := 'Update_Salesteam_Pre';
457 l_api_version_number CONSTANT NUMBER := 2.0;
458
459 l_mode CONSTANT VARCHAR2(20) := 'UPDATE';
460 BEGIN
461 -- Standard call to check for call compatibility.
462 IF NOT FND_API.Compatible_API_Call(l_api_version_number,
463 p_api_version_number,
464 l_api_name,
465 G_PKG_NAME)
466 THEN
467 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
468 END IF;
469
470 -- Initialize message list if p_init_msg_list is set to TRUE.
471 IF FND_API.to_Boolean( p_init_msg_list ) THEN
472 fnd_msg_pub.initialize;
473 END IF;
474
475 IF fnd_msg_pub.Check_Msg_Level (fnd_msg_pub.G_MSG_LVL_DEBUG_LOW) THEN
476 fnd_message.Set_Name('PV', 'PV_DEBUG_MESSAGE');
477 fnd_message.Set_Token('TEXT', 'In ' || l_api_name || ' , access id : ' || p_access_id );
478 fnd_msg_pub.Add;
479 END IF;
480
481 -- Initialize API return status to success
482 x_return_status := FND_API.G_RET_STS_SUCCESS;
483
484 Validate_Salesteam (
485 p_api_version_number => l_api_version_number,
486 p_init_msg_list => p_init_msg_list,
487 p_commit => p_commit,
488 p_validation_level => p_validation_level,
489 p_access_id => p_access_id,
490 p_lead_id => p_lead_id,
491 p_salesforce_id => null,
492 p_mode => l_mode,
493 x_return_status => x_return_status,
494 x_msg_count => x_msg_count,
495 x_msg_data => x_msg_data);
496
497
498 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
499 RAISE FND_API.G_EXC_ERROR;
500 END IF;
501
502 -- Standard call to get message count and if count is 1, get message info.
503 fnd_msg_pub.Count_And_Get( p_encoded => FND_API.G_TRUE,
504 p_count => x_msg_count,
505 p_data => x_msg_data);
506
507 EXCEPTION
508
509 WHEN FND_API.G_EXC_ERROR THEN
510
511 x_return_status := FND_API.G_RET_STS_ERROR ;
512 fnd_msg_pub.Count_And_Get( p_encoded => FND_API.G_TRUE,
513 p_count => x_msg_count,
514 p_data => x_msg_data);
515
516 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
517
518 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
519 fnd_msg_pub.Count_And_Get( p_encoded => FND_API.G_TRUE,
520 p_count => x_msg_count,
521 p_data => x_msg_data);
522
523 WHEN OTHERS THEN
524
525 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
526 FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME, l_api_name);
527 fnd_msg_pub.Count_And_Get( p_encoded => FND_API.G_TRUE,
528 p_count => x_msg_count,
529 p_data => x_msg_data);
530
531 END Update_Salesteam_Pre;
532
533 procedure Delete_Salesteam_Pre (
534 p_api_version_number IN NUMBER,
535 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
536 p_commit IN VARCHAR2 := FND_API.G_FALSE,
537 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
538 p_access_id IN NUMBER,
539 p_lead_id IN NUMBER,
540 x_return_status OUT NOCOPY VARCHAR2,
541 x_msg_count OUT NOCOPY NUMBER,
542 x_msg_data OUT NOCOPY VARCHAR2) is
543
544 l_api_name CONSTANT VARCHAR2(30) := 'Delete_Salesteam_Pre';
545 l_api_version_number CONSTANT NUMBER := 2.0;
546 l_mode CONSTANT VARCHAR2(20) := 'DELETE';
547
548 BEGIN
549
550 --FND_MSG_PUB.g_msg_level_threshold := FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW;
551
552 -- Standard call to check for call compatibility.
553 IF NOT FND_API.Compatible_API_Call(l_api_version_number,
554 p_api_version_number,
555 l_api_name,
556 G_PKG_NAME)
557 THEN
558 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
559 END IF;
560
561 -- Initialize message list if p_init_msg_list is set to TRUE.
562 IF FND_API.to_Boolean( p_init_msg_list ) THEN
563 fnd_msg_pub.initialize;
564 END IF;
565
566
567 IF fnd_msg_pub.Check_Msg_Level (fnd_msg_pub.G_MSG_LVL_DEBUG_LOW) THEN
568 fnd_message.Set_Name('PV', 'PV_DEBUG_MESSAGE');
569 fnd_message.Set_Token('TEXT', 'In ' || l_api_name || ' , access id : ' || p_access_id );
570 fnd_msg_pub.Add;
571 END IF;
572
573 -- Initialize API return status to success
574 x_return_status := FND_API.G_RET_STS_SUCCESS;
575
576 Validate_Salesteam (
577 p_api_version_number => l_api_version_number,
578 p_init_msg_list => p_init_msg_list,
579 p_commit => p_commit,
580 p_validation_level => p_validation_level,
581 p_access_id => p_access_id,
582 p_lead_id => p_lead_id,
583 p_salesforce_id => null,
584 p_mode => l_mode,
585 x_return_status => x_return_status,
586 x_msg_count => x_msg_count,
587 x_msg_data => x_msg_data);
588
589 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
590 RAISE FND_API.G_EXC_ERROR;
591 END IF;
592
593 -- Standard call to get message count and if count is 1, get message info.
594 fnd_msg_pub.Count_And_Get( p_encoded => FND_API.G_TRUE,
595 p_count => x_msg_count,
596 p_data => x_msg_data);
597
598 EXCEPTION
599
600 WHEN FND_API.G_EXC_ERROR THEN
601
602 x_return_status := FND_API.G_RET_STS_ERROR ;
603 fnd_msg_pub.Count_And_Get( p_encoded => FND_API.G_TRUE,
604 p_count => x_msg_count,
605 p_data => x_msg_data);
606
607 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
608
609 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
610 fnd_msg_pub.Count_And_Get( p_encoded => FND_API.G_TRUE,
611 p_count => x_msg_count,
612 p_data => x_msg_data);
613
614 WHEN OTHERS THEN
615
616 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
617 FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME, l_api_name);
618 fnd_msg_pub.Count_And_Get( p_encoded => FND_API.G_TRUE,
619 p_count => x_msg_count,
620 p_data => x_msg_data);
621
622 END Delete_Salesteam_Pre;
623
624 END PV_AS_ACCESS_VHUK;