23: AS_DEBUG_MEDIUM_ON boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_MEDIUM);
24: AS_DEBUG_ERROR_ON boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_ERROR);
25:
26: PROCEDURE Validate_Score_Range (
27: P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
28: P_Validation_mode IN VARCHAR2,
29: p_sales_lead_rank_rec IN AS_SALES_LEAD_RANKS_PUB.sales_lead_rank_rec_type,
30: p_is_old_engine IN VARCHAR2,
31: X_Return_Status OUT NOCOPY VARCHAR2,
51: l_count NUMBER;
52:
53: BEGIN
54: -- Initialize message list IF p_init_msg_list is set to TRUE.
55: IF FND_API.to_Boolean( p_init_msg_list )
56: THEN
57: FND_MSG_PUB.initialize;
58: END IF;
59:
57: FND_MSG_PUB.initialize;
58: END IF;
59:
60: -- Initialize API return status to SUCCESS
61: x_return_status := FND_API.G_RET_STS_SUCCESS;
62: IF upper(nvl(p_sales_lead_rank_rec.enabled_flag,'N')) = 'Y'
63: THEN
64: -- Validate if the score range overlap with other ranks' range
65: OPEN C_Get_Ranks (p_sales_lead_rank_rec.min_score,
101: p_msg_name => 'AS_PREC_RANKSCORE_OVERLAP',
102: p_token1 => 'MEANING',
103: p_token1_value => p_sales_lead_rank_rec.meaning);
104: END IF;
105: x_return_status := FND_API.G_RET_STS_ERROR;
106: END IF;
107: END IF;
108: CLOSE C_Get_Ranks;
109: END IF;
116: END Validate_Score_Range;
117:
118:
119: PROCEDURE Validate_Rank_Meaning (
120: P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
121: P_Validation_mode IN VARCHAR2,
122: p_sales_lead_rank_rec IN AS_SALES_LEAD_RANKS_PUB.sales_lead_rank_rec_type,
123: X_Return_Status OUT NOCOPY VARCHAR2,
124: X_Msg_Count OUT NOCOPY NUMBER,
135: l_rank_id NUMBER;
136:
137: BEGIN
138: -- Initialize message list IF p_init_msg_list is set to TRUE.
139: IF FND_API.to_Boolean( p_init_msg_list )
140: THEN
141: FND_MSG_PUB.initialize;
142: END IF;
143:
141: FND_MSG_PUB.initialize;
142: END IF;
143:
144: -- Initialize API return status to SUCCESS
145: x_return_status := FND_API.G_RET_STS_SUCCESS;
146: IF upper(nvl(p_sales_lead_rank_rec.enabled_flag,'N')) = 'Y'
147: THEN
148: -- Validate if the meaning is duplicate
149: OPEN C_Get_Meaning (p_sales_lead_rank_rec.meaning);
165: p_msg_name => 'ASF_DUPLICATE_RANK',
166: p_token1 => 'MEANING',
167: p_token1_value => p_sales_lead_rank_rec.meaning);
168:
169: x_return_status := FND_API.G_RET_STS_ERROR;
170: END IF;
171: END IF;
172: CLOSE C_Get_Meaning;
173: END IF;
179: END Validate_Rank_Meaning;
180:
181:
182: PROCEDURE Validate_PRECEDENCE (
183: P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
184: P_Validation_mode IN VARCHAR2,
185: P_PRECEDENCE IN NUMBER,
186: p_sales_lead_rank_id IN NUMBER,
187: X_Return_Status OUT NOCOPY VARCHAR2,
199:
200: BEGIN
201:
202: -- Initialize message list if p_init_msg_list is set to TRUE.
203: IF FND_API.to_Boolean( p_init_msg_list )
204: THEN
205: FND_MSG_PUB.initialize;
206: END IF;
207:
206: END IF;
207:
208:
209: -- Initialize API return status to SUCCESS
210: x_return_status := FND_API.G_RET_STS_SUCCESS;
211:
212: -- validate NOT NULL column
213: IF(p_PRECEDENCE is NULL OR p_PRECEDENCE = FND_API.G_MISS_NUM)
214: THEN
209: -- Initialize API return status to SUCCESS
210: x_return_status := FND_API.G_RET_STS_SUCCESS;
211:
212: -- validate NOT NULL column
213: IF(p_PRECEDENCE is NULL OR p_PRECEDENCE = FND_API.G_MISS_NUM)
214: THEN
215: AS_UTILITY_PVT.Set_Message(
216: p_msg_level => FND_MSG_PUB.G_MSG_LVL_ERROR,
217: p_msg_name => 'API_MISSING_ID',
216: p_msg_level => FND_MSG_PUB.G_MSG_LVL_ERROR,
217: p_msg_name => 'API_MISSING_ID',
218: p_token1 => 'PRECEDENCE',
219: p_token1_value => p_PRECEDENCE);
220: x_return_status := FND_API.G_RET_STS_ERROR;
221: END IF;
222:
223:
224: IF(p_validation_mode = AS_UTILITY_PVT.G_CREATE)
225: THEN
226: -- Hint: Validate data
227: -- IF p_PRECEDENCE is not NULL and p_PRECEDENCE <> G_MISS_CHAR
228: -- verify if data is valid
229: -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
230:
231: OPEN C_Get_Rating(p_PRECEDENCE);
232: FETCH C_Get_Rating INTO l_sales_lead_rank_id;
233:
236: AS_UTILITY_PVT.Set_Message(
237: p_msg_level => FND_MSG_PUB.G_MSG_LVL_ERROR,
238: p_msg_name => 'AS_DUPE_PRECEDENCE');
239:
240: x_return_status := FND_API.G_RET_STS_ERROR;
241: END IF;
242: CLOSE C_Get_Rating;
243:
244: ELSIF(p_validation_mode = AS_UTILITY_PVT.G_UPDATE)
245: THEN
246: -- Hint: Validate data
247: -- IF p_PRECEDENCE <> G_MISS_CHAR
248: -- verify if data is valid
249: -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
250:
251: OPEN C_Get_Rating(p_PRECEDENCE);
252: FETCH C_Get_Rating INTO l_sales_lead_rank_id;
253:
257: AS_UTILITY_PVT.Set_Message(
258: p_msg_level => FND_MSG_PUB.G_MSG_LVL_ERROR,
259: p_msg_name => 'AS_DUPE_PRECEDENCE');
260:
261: x_return_status := FND_API.G_RET_STS_ERROR;
262:
263: END IF;
264:
265: END IF;
276: END Validate_PRECEDENCE;
277:
278:
279: PROCEDURE Validate_USED_RANK (
280: P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
281: P_Validation_mode IN VARCHAR2,
282: P_Sales_Lead_Rank_Id IN NUMBER,
283: X_Return_Status OUT NOCOPY VARCHAR2,
284: X_Msg_Count OUT NOCOPY NUMBER,
298:
299: BEGIN
300:
301: -- Initialize message list if p_init_msg_list is set to TRUE.
302: IF FND_API.to_Boolean( p_init_msg_list )
303: THEN
304: FND_MSG_PUB.initialize;
305: END IF;
306:
305: END IF;
306:
307:
308: -- Initialize API return status to SUCCESS
309: x_return_status := FND_API.G_RET_STS_SUCCESS;
310:
311:
312: l_default_profile := to_number( nvl(fnd_profile.value('AS_DEFAULT_LEAD_ENGINE_RANK'), '-1'));
313:
318: AS_UTILITY_PVT.Set_Message(
319: p_msg_level => FND_MSG_PUB.G_MSG_LVL_ERROR,
320: p_msg_name => 'AS_USED_RANK');
321:
322: --x_return_status := FND_API.G_RET_STS_ERROR;
323: raise FND_API.G_EXC_ERROR;
324:
325:
326: end if;
319: p_msg_level => FND_MSG_PUB.G_MSG_LVL_ERROR,
320: p_msg_name => 'AS_USED_RANK');
321:
322: --x_return_status := FND_API.G_RET_STS_ERROR;
323: raise FND_API.G_EXC_ERROR;
324:
325:
326: end if;
327:
336: AS_UTILITY_PVT.Set_Message(
337: p_msg_level => FND_MSG_PUB.G_MSG_LVL_ERROR,
338: p_msg_name => 'AS_USED_RANK');
339: CLOSE C_Get_Lead_Using_Rank;
340: raise FND_API.G_EXC_ERROR;
341: END IF;
342: CLOSE C_Get_Lead_Using_Rank;
343:
344:
356: AS_UTILITY_PVT.Set_Message(
357: p_msg_level => FND_MSG_PUB.G_MSG_LVL_ERROR,
358: p_msg_name => 'AS_USED_RANK');
359:
360: raise FND_API.G_EXC_ERROR;
361: end if;
362:
363:
364: END IF;
376:
377:
378: PROCEDURE Create_Rank (
379: p_api_version IN NUMBER := 2.0,
380: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
381: p_commit IN VARCHAR2 := FND_API.G_FALSE,
382: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
383: x_return_status OUT NOCOPY VARCHAR2,
384: x_msg_count OUT NOCOPY NUMBER,
377:
378: PROCEDURE Create_Rank (
379: p_api_version IN NUMBER := 2.0,
380: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
381: p_commit IN VARCHAR2 := FND_API.G_FALSE,
382: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
383: x_return_status OUT NOCOPY VARCHAR2,
384: x_msg_count OUT NOCOPY NUMBER,
385: x_msg_data OUT NOCOPY VARCHAR2,
378: PROCEDURE Create_Rank (
379: p_api_version IN NUMBER := 2.0,
380: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
381: p_commit IN VARCHAR2 := FND_API.G_FALSE,
382: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
383: x_return_status OUT NOCOPY VARCHAR2,
384: x_msg_count OUT NOCOPY NUMBER,
385: x_msg_data OUT NOCOPY VARCHAR2,
386: p_sales_lead_rank_rec IN AS_SALES_LEAD_RANKS_PUB.sales_lead_rank_rec_type,
411: -- Standard start of API savepoint
412: SAVEPOINT Create_Rank_PVT;
413:
414: -- Standard call to check for call compatibility
415: IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version,
416: l_api_name, G_PKG_NAME)
417: THEN
418: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
419: END IF;
414: -- Standard call to check for call compatibility
415: IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version,
416: l_api_name, G_PKG_NAME)
417: THEN
418: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
419: END IF;
420:
421: -- Initialize message list if p_init_msg_list is set to TRUE
422: IF FND_API.To_Boolean(p_init_msg_list) THEN
418: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
419: END IF;
420:
421: -- Initialize message list if p_init_msg_list is set to TRUE
422: IF FND_API.To_Boolean(p_init_msg_list) THEN
423: FND_MSG_PUB.initialize;
424: END IF;
425:
426: -- Initialize API return status to success
423: FND_MSG_PUB.initialize;
424: END IF;
425:
426: -- Initialize API return status to success
427: x_return_status := FND_API.G_RET_STS_SUCCESS;
428:
429: -- API body
430: OPEN c1;
431: FETCH c1 INTO l_dummy;
434: --dbms_output.put_line('duplicate found ');
435: FND_MESSAGE.SET_NAME('AS', 'AS_DUPE_RANK');
436: -- Add message to API message list
437: FND_MSG_PUB.Add;
438: RAISE FND_API.G_EXC_ERROR;
439: END IF;
440: CLOSE c1;
441:
442: /* OPEN c2;
471:
472: IF l_is_old_engine = 'N'
473: THEN
474: Validate_PRECEDENCE(
475: p_init_msg_list => FND_API.G_FALSE,
476: p_validation_mode => AS_UTILITY_PVT.G_CREATE,
477: p_PRECEDENCE => P_SALES_LEAD_RANK_Rec.MIN_SCORE,
478: p_SALES_LEAD_RANK_ID => -1,
479: x_return_status => x_return_status,
478: p_SALES_LEAD_RANK_ID => -1,
479: x_return_status => x_return_status,
480: x_msg_count => x_msg_count,
481: x_msg_data => x_msg_data);
482: IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
483: raise FND_API.G_EXC_ERROR;
484: END IF;
485: END IF; /* end if l_is_old_engine = 'N' */
486:
479: x_return_status => x_return_status,
480: x_msg_count => x_msg_count,
481: x_msg_data => x_msg_data);
482: IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
483: raise FND_API.G_EXC_ERROR;
484: END IF;
485: END IF; /* end if l_is_old_engine = 'N' */
486:
487:
487:
488: /*
489: -- Check score range
490: Validate_Score_Range (
491: P_Init_Msg_List => FND_API.G_FALSE,
492: P_Validation_mode => AS_UTILITY_PVT.G_CREATE,
493: p_sales_lead_rank_rec => l_sales_lead_rank_rec,
494: p_is_old_engine => l_is_old_engine,
495: X_Return_Status => x_return_status,
496: X_Msg_Count => x_msg_count,
497: X_Msg_Data => x_msg_data
498: );
499:
500: IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
501: RAISE FND_API.G_EXC_ERROR;
502: END IF;
503:
504: */
497: X_Msg_Data => x_msg_data
498: );
499:
500: IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
501: RAISE FND_API.G_EXC_ERROR;
502: END IF;
503:
504: */
505:
505:
506:
507: -- Check duplicate rank
508: Validate_Rank_Meaning (
509: P_Init_Msg_List => FND_API.G_FALSE,
510: P_Validation_mode => AS_UTILITY_PVT.G_CREATE,
511: p_sales_lead_rank_rec => l_sales_lead_rank_rec,
512: X_Return_Status => x_return_status,
513: X_Msg_Count => x_msg_count,
513: X_Msg_Count => x_msg_count,
514: X_Msg_Data => x_msg_data
515: );
516:
517: IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
518: RAISE FND_API.G_EXC_ERROR;
519: END IF;
520:
521: -- get the nextval from the sequence as rank_id
514: X_Msg_Data => x_msg_data
515: );
516:
517: IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
518: RAISE FND_API.G_EXC_ERROR;
519: END IF;
520:
521: -- get the nextval from the sequence as rank_id
522: select as_sales_lead_ranks_s.nextval into l_rank_id from dual;
548:
549: -- End of API body
550:
551: -- Standard check of p_commit
552: IF FND_API.To_Boolean(p_commit) THEN
553: COMMIT WORK;
554: END IF;
555:
556: -- Standard call to get message count and if count is 1, get message info
557: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
558:
559: EXCEPTION
560:
561: WHEN FND_API.G_EXC_ERROR THEN
562: ROLLBACK TO Create_Rank_PVT;
563: x_return_status := FND_API.G_RET_STS_ERROR;
564: FND_MSG_PUB.Count_And_Get(
565: p_count => x_msg_count,
559: EXCEPTION
560:
561: WHEN FND_API.G_EXC_ERROR THEN
562: ROLLBACK TO Create_Rank_PVT;
563: x_return_status := FND_API.G_RET_STS_ERROR;
564: FND_MSG_PUB.Count_And_Get(
565: p_count => x_msg_count,
566: p_data => x_msg_data);
567:
564: FND_MSG_PUB.Count_And_Get(
565: p_count => x_msg_count,
566: p_data => x_msg_data);
567:
568: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
569: ROLLBACK TO Create_Rank_PVT;
570: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
571: FND_MSG_PUB.Count_And_Get(
572: p_count => x_msg_count,
566: p_data => x_msg_data);
567:
568: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
569: ROLLBACK TO Create_Rank_PVT;
570: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
571: FND_MSG_PUB.Count_And_Get(
572: p_count => x_msg_count,
573: p_data => x_msg_data);
574:
573: p_data => x_msg_data);
574:
575: WHEN OTHERS THEN
576: ROLLBACK TO Create_Rank_PVT;
577: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
578: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
579: FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME, l_api_name);
580: END IF;
581: FND_MSG_PUB.Count_And_Get(
585:
586:
587: PROCEDURE Update_Rank (
588: p_api_version IN NUMBER := 2.0,
589: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
590: p_commit IN VARCHAR2 := FND_API.G_FALSE,
591: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
592: x_return_status OUT NOCOPY VARCHAR2,
593: x_msg_count OUT NOCOPY NUMBER,
586:
587: PROCEDURE Update_Rank (
588: p_api_version IN NUMBER := 2.0,
589: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
590: p_commit IN VARCHAR2 := FND_API.G_FALSE,
591: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
592: x_return_status OUT NOCOPY VARCHAR2,
593: x_msg_count OUT NOCOPY NUMBER,
594: x_msg_data OUT NOCOPY VARCHAR2,
587: PROCEDURE Update_Rank (
588: p_api_version IN NUMBER := 2.0,
589: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
590: p_commit IN VARCHAR2 := FND_API.G_FALSE,
591: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
592: x_return_status OUT NOCOPY VARCHAR2,
593: x_msg_count OUT NOCOPY NUMBER,
594: x_msg_data OUT NOCOPY VARCHAR2,
595: p_sales_lead_rank_rec IN AS_SALES_LEAD_RANKS_PUB.sales_lead_rank_rec_type)
621: -- Standard start of API savepoint
622: SAVEPOINT Update_Rank_PVT;
623:
624: -- Standard call to check for call compatibility
625: IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version,
626: l_api_name, G_PKG_NAME)
627: THEN
628: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
629: END IF;
624: -- Standard call to check for call compatibility
625: IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version,
626: l_api_name, G_PKG_NAME)
627: THEN
628: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
629: END IF;
630:
631: -- Initialize message list if p_init_msg_list is set to TRUE
632: IF FND_API.To_Boolean(p_init_msg_list) THEN
628: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
629: END IF;
630:
631: -- Initialize message list if p_init_msg_list is set to TRUE
632: IF FND_API.To_Boolean(p_init_msg_list) THEN
633: FND_MSG_PUB.initialize;
634: END IF;
635:
636: l_sales_lead_rank_rec := p_sales_lead_rank_rec;
635:
636: l_sales_lead_rank_rec := p_sales_lead_rank_rec;
637:
638: -- Initialize API return status to success
639: x_return_status := FND_API.G_RET_STS_SUCCESS;
640:
641: -- API body
642: OPEN c1;
643: FETCH c1 INTO l_enabled_flag, l_min_score;
648: CLOSE c1;
649:
650: -- 120400 ffang, Check Whether record has been changed by someone else
651: IF (p_sales_lead_rank_rec.last_update_date is NULL or
652: p_sales_lead_rank_rec.last_update_date = FND_API.G_MISS_Date )
653: THEN
654: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
655: THEN
656: FND_MESSAGE.Set_Name('AS', 'API_MISSING_ID');
656: FND_MESSAGE.Set_Name('AS', 'API_MISSING_ID');
657: FND_MESSAGE.Set_Token('COLUMN', 'LAST_UPDATE_DATE', FALSE);
658: FND_MSG_PUB.ADD;
659: END IF;
660: raise FND_API.G_EXC_ERROR;
661: END IF;
662:
663: OPEN c_get_last_update;
664: FETCH c_get_last_update into l_last_update_date;
670: FND_MSG_PUB.Add;
671: END IF;
672: CLOSE c_get_last_update;
673:
674: raise FND_API.G_EXC_ERROR;
675: END IF;
676: CLOSE c_get_last_update;
677:
678: IF (p_sales_lead_rank_rec.last_update_date <> l_last_update_date)
682: FND_MESSAGE.Set_Name('AS', 'API_RECORD_CHANGED');
683: FND_MESSAGE.Set_Token('INFO', 'SALES_LEAD', FALSE);
684: FND_MSG_PUB.ADD;
685: END IF;
686: raise FND_API.G_EXC_ERROR;
687: END IF;
688:
689: -- Check score range
690: -- 120200 FFANG for bug 1520911
708:
709: IF l_is_old_engine = 'N'
710: THEN
711: Validate_PRECEDENCE(
712: p_init_msg_list => FND_API.G_FALSE,
713: p_validation_mode => AS_UTILITY_PVT.G_UPDATE,
714: p_PRECEDENCE => P_SALES_LEAD_RANK_Rec.MIN_SCORE,
715: p_sales_lead_rank_id => P_SALES_LEAD_RANK_Rec.RANK_ID,
716: x_return_status => x_return_status,
715: p_sales_lead_rank_id => P_SALES_LEAD_RANK_Rec.RANK_ID,
716: x_return_status => x_return_status,
717: x_msg_count => x_msg_count,
718: x_msg_data => x_msg_data);
719: IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
720: raise FND_API.G_EXC_ERROR;
721: END IF;
722: END IF;
723:
716: x_return_status => x_return_status,
717: x_msg_count => x_msg_count,
718: x_msg_data => x_msg_data);
719: IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
720: raise FND_API.G_EXC_ERROR;
721: END IF;
722: END IF;
723:
724: /*
723:
724: /*
725: -- Check score range
726: Validate_Score_Range (
727: P_Init_Msg_List => FND_API.G_FALSE,
728: P_Validation_mode => AS_UTILITY_PVT.G_CREATE,
729: p_sales_lead_rank_rec => l_sales_lead_rank_rec,
730: p_is_old_engine => l_is_old_engine,
731: X_Return_Status => x_return_status,
732: X_Msg_Count => x_msg_count,
733: X_Msg_Data => x_msg_data
734: );
735:
736: IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
737: RAISE FND_API.G_EXC_ERROR;
738: END IF;
739: */
740: END IF;
733: X_Msg_Data => x_msg_data
734: );
735:
736: IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
737: RAISE FND_API.G_EXC_ERROR;
738: END IF;
739: */
740: END IF;
741:
741:
742: -- Check duplicate rank only when meaning is passed in
743: IF p_sales_lead_rank_rec.meaning is not null THEN
744: Validate_Rank_Meaning (
745: P_Init_Msg_List => FND_API.G_FALSE,
746: P_Validation_mode => AS_UTILITY_PVT.G_UPDATE,
747: p_sales_lead_rank_rec => p_sales_lead_rank_rec,
748: X_Return_Status => x_return_status,
749: X_Msg_Count => x_msg_count,
749: X_Msg_Count => x_msg_count,
750: X_Msg_Data => x_msg_data
751: );
752:
753: IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
754: RAISE FND_API.G_EXC_ERROR;
755: END IF;
756: END IF;
757:
750: X_Msg_Data => x_msg_data
751: );
752:
753: IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
754: RAISE FND_API.G_EXC_ERROR;
755: END IF;
756: END IF;
757:
758:
758:
759: -- Cannot disable a rank if used by profile or by a lead
760: IF (l_enabled_flag = 'Y' and p_sales_lead_rank_rec.enabled_flag <> 'Y') THEN
761: Validate_USED_RANK(
762: P_Init_Msg_List => FND_API.G_FALSE,
763: P_Validation_mode => AS_UTILITY_PVT.G_UPDATE,
764: p_sales_lead_rank_id => p_sales_lead_rank_rec.rank_id,
765: X_Return_Status => x_return_status,
766: X_Msg_Count => x_msg_count,
766: X_Msg_Count => x_msg_count,
767: X_Msg_Data => x_msg_data
768: );
769:
770: IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
771: RAISE FND_API.G_EXC_ERROR;
772: END IF;
773: END IF;
774:
767: X_Msg_Data => x_msg_data
768: );
769:
770: IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
771: RAISE FND_API.G_EXC_ERROR;
772: END IF;
773: END IF;
774:
775:
803: END IF;
804: -- End of API body
805:
806: -- Standard check of p_commit
807: IF FND_API.To_Boolean(p_commit) THEN
808: COMMIT WORK;
809: END IF;
810:
811: -- Standard call to get message count and if count is 1, get message info
811: -- Standard call to get message count and if count is 1, get message info
812: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
813:
814: EXCEPTION
815: WHEN FND_API.G_EXC_ERROR THEN
816: ROLLBACK TO Update_Rank_PVT;
817: x_return_status := FND_API.G_RET_STS_ERROR;
818: FND_MSG_PUB.Count_And_Get(
819: p_count => x_msg_count,
813:
814: EXCEPTION
815: WHEN FND_API.G_EXC_ERROR THEN
816: ROLLBACK TO Update_Rank_PVT;
817: x_return_status := FND_API.G_RET_STS_ERROR;
818: FND_MSG_PUB.Count_And_Get(
819: p_count => x_msg_count,
820: p_data => x_msg_data);
821:
818: FND_MSG_PUB.Count_And_Get(
819: p_count => x_msg_count,
820: p_data => x_msg_data);
821:
822: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
823: ROLLBACK TO Update_Rank_PVT;
824: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
825: FND_MSG_PUB.Count_And_Get(
826: p_count => x_msg_count,
820: p_data => x_msg_data);
821:
822: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
823: ROLLBACK TO Update_Rank_PVT;
824: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
825: FND_MSG_PUB.Count_And_Get(
826: p_count => x_msg_count,
827: p_data => x_msg_data);
828:
827: p_data => x_msg_data);
828:
829: WHEN OTHERS THEN
830: ROLLBACK TO Update_Rank_PVT;
831: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
832: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
833: FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME, l_api_name);
834: END IF;
835: FND_MSG_PUB.Count_And_Get(
839:
840:
841: Procedure Delete_Rank (
842: p_api_version IN NUMBER := 2.0,
843: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
844: p_commit IN VARCHAR2 := FND_API.G_FALSE,
845: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
846: x_return_status OUT NOCOPY VARCHAR2,
847: x_msg_count OUT NOCOPY NUMBER,
840:
841: Procedure Delete_Rank (
842: p_api_version IN NUMBER := 2.0,
843: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
844: p_commit IN VARCHAR2 := FND_API.G_FALSE,
845: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
846: x_return_status OUT NOCOPY VARCHAR2,
847: x_msg_count OUT NOCOPY NUMBER,
848: x_msg_data OUT NOCOPY VARCHAR2,
841: Procedure Delete_Rank (
842: p_api_version IN NUMBER := 2.0,
843: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
844: p_commit IN VARCHAR2 := FND_API.G_FALSE,
845: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
846: x_return_status OUT NOCOPY VARCHAR2,
847: x_msg_count OUT NOCOPY NUMBER,
848: x_msg_data OUT NOCOPY VARCHAR2,
849: p_sales_lead_rank_id IN NUMBER)
877: -- Standard start of API savepoint
878: SAVEPOINT Delete_Rank_PVT;
879:
880: -- Standard call to check for call compatibility
881: IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version,
882: l_api_name, G_PKG_NAME)
883: THEN
884: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
885: END IF;
880: -- Standard call to check for call compatibility
881: IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version,
882: l_api_name, G_PKG_NAME)
883: THEN
884: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
885: END IF;
886:
887: -- Initialize message list if p_init_msg_list is set to TRUE
888: IF FND_API.To_Boolean(p_init_msg_list) THEN
884: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
885: END IF;
886:
887: -- Initialize message list if p_init_msg_list is set to TRUE
888: IF FND_API.To_Boolean(p_init_msg_list) THEN
889: FND_MSG_PUB.initialize;
890: END IF;
891:
892: l_sales_lead_rank_id := p_sales_lead_rank_id;
895:
896:
897:
898: -- Initialize API return status to success
899: x_return_status := FND_API.G_RET_STS_SUCCESS;
900:
901:
902: -- API body
903: OPEN c1;
918: AS_UTILITY_PVT.Set_Message(
919: p_msg_level => FND_MSG_PUB.G_MSG_LVL_ERROR,
920: p_msg_name => 'AS_SEEDED_RANK');
921:
922: raise FND_API.G_EXC_ERROR;
923: end if;
924:
925: --Do not allow delete on any grade which is referred by any Lead
926: --otherwise it will throw BIM report OUT NOCOPY of sink), disable the rank if
936: p_msg_level => FND_MSG_PUB.G_MSG_LVL_ERROR,
937: p_msg_name => 'AS_USED_RANK');
938:
939: CLOSE C_Get_Lead_Using_Rank;
940: raise FND_API.G_EXC_ERROR;
941: END IF;
942: CLOSE C_Get_Lead_Using_Rank;
943:
944: -- Do not allow delete on any grade which is set in the profile value
950: AS_UTILITY_PVT.Set_Message(
951: p_msg_level => FND_MSG_PUB.G_MSG_LVL_ERROR,
952: p_msg_name => 'AS_USED_RANK');
953:
954: raise FND_API.G_EXC_ERROR;
955:
956: end if;
957:
958:
969: AS_UTILITY_PVT.Set_Message(
970: p_msg_level => FND_MSG_PUB.G_MSG_LVL_ERROR,
971: p_msg_name => 'AS_USED_RANK');
972:
973: raise FND_API.G_EXC_ERROR;
974: end if;
975:
976:
977:
981:
982:
983:
984: -- Standard check of p_commit
985: IF FND_API.To_Boolean(p_commit) THEN
986: COMMIT WORK;
987: END IF;
988:
989: -- Standard call to get message count and if count is 1, get message info
989: -- Standard call to get message count and if count is 1, get message info
990: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
991:
992: EXCEPTION
993: WHEN FND_API.G_EXC_ERROR THEN
994: ROLLBACK TO Delete_Rank_PVT;
995: x_return_status := FND_API.G_RET_STS_ERROR;
996: FND_MSG_PUB.Count_And_Get(
997: p_count => x_msg_count,
991:
992: EXCEPTION
993: WHEN FND_API.G_EXC_ERROR THEN
994: ROLLBACK TO Delete_Rank_PVT;
995: x_return_status := FND_API.G_RET_STS_ERROR;
996: FND_MSG_PUB.Count_And_Get(
997: p_count => x_msg_count,
998: p_data => x_msg_data);
999:
996: FND_MSG_PUB.Count_And_Get(
997: p_count => x_msg_count,
998: p_data => x_msg_data);
999:
1000: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1001: ROLLBACK TO Delete_Rank_PVT;
1002: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1003: FND_MSG_PUB.Count_And_Get(
1004: p_count => x_msg_count,
998: p_data => x_msg_data);
999:
1000: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1001: ROLLBACK TO Delete_Rank_PVT;
1002: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1003: FND_MSG_PUB.Count_And_Get(
1004: p_count => x_msg_count,
1005: p_data => x_msg_data);
1006:
1005: p_data => x_msg_data);
1006:
1007: WHEN OTHERS THEN
1008: ROLLBACK TO Delete_Rank_PVT;
1009: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1010: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
1011: FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME, l_api_name);
1012: END IF;
1013: FND_MSG_PUB.Count_And_Get(
1044: from as_sales_leads sl
1045: where sl.lead_rank_id = x_lead_rank_id);
1046:
1047: EXCEPTION
1048: WHEN FND_API.G_EXC_ERROR THEN
1049: ERRBUF := ERRBUF || sqlerrm;
1050: RETCODE := FND_API.G_RET_STS_ERROR;
1051: ROLLBACK;
1052: Write_log (1, 'Error in as_sales_lead_ranks_pvt.update_lead_rank_score');
1046:
1047: EXCEPTION
1048: WHEN FND_API.G_EXC_ERROR THEN
1049: ERRBUF := ERRBUF || sqlerrm;
1050: RETCODE := FND_API.G_RET_STS_ERROR;
1051: ROLLBACK;
1052: Write_log (1, 'Error in as_sales_lead_ranks_pvt.update_lead_rank_score');
1053: Write_log (1, 'SQLCODE ' || to_char(SQLCODE) ||
1054: ' SQLERRM ' || substr(SQLERRM, 1, 100));
1051: ROLLBACK;
1052: Write_log (1, 'Error in as_sales_lead_ranks_pvt.update_lead_rank_score');
1053: Write_log (1, 'SQLCODE ' || to_char(SQLCODE) ||
1054: ' SQLERRM ' || substr(SQLERRM, 1, 100));
1055: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1056: ERRBUF := ERRBUF||sqlerrm;
1057: RETCODE := FND_API.G_RET_STS_UNEXP_ERROR;
1058: ROLLBACK;
1059: Write_Log(1, 'Unexpected error in as_sales_lead_ranks_pvt.update_lead_rank_score');
1053: Write_log (1, 'SQLCODE ' || to_char(SQLCODE) ||
1054: ' SQLERRM ' || substr(SQLERRM, 1, 100));
1055: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1056: ERRBUF := ERRBUF||sqlerrm;
1057: RETCODE := FND_API.G_RET_STS_UNEXP_ERROR;
1058: ROLLBACK;
1059: Write_Log(1, 'Unexpected error in as_sales_lead_ranks_pvt.update_lead_rank_score');
1060: WHEN others THEN
1061: ERRBUF := SQLERRM;
1058: ROLLBACK;
1059: Write_Log(1, 'Unexpected error in as_sales_lead_ranks_pvt.update_lead_rank_score');
1060: WHEN others THEN
1061: ERRBUF := SQLERRM;
1062: RETCODE := FND_API.G_RET_STS_UNEXP_ERROR;
1063: ROLLBACK;
1064: Write_Log(1, 'Exception: others in as_sales_lead_ranks_pvt.update_lead_rank_score');
1065: Write_Log(1, 'SQLCODE ' || to_char(SQLCODE) ||
1066: ' SQLERRM ' || substr(SQLERRM, 1, 100));