30: , x_approver OUT NOCOPY ame_util.approverRecord2)
31: RETURN BOOLEAN;
32:
33: PROCEDURE START_APPROVAL_PROCESS( p_api_version_number IN NUMBER
34: , p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE
35: , p_commit IN VARCHAR2 := FND_API.G_FALSE
36: , p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL
37: , p_referral_id IN NUMBER
38: , p_partner_id IN NUMBER DEFAULT NULL
31: RETURN BOOLEAN;
32:
33: PROCEDURE START_APPROVAL_PROCESS( p_api_version_number IN NUMBER
34: , p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE
35: , p_commit IN VARCHAR2 := FND_API.G_FALSE
36: , p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL
37: , p_referral_id IN NUMBER
38: , p_partner_id IN NUMBER DEFAULT NULL
39: , p_change_cntry_flag IN VARCHAR2 -- if ref country is changed set this to true
32:
33: PROCEDURE START_APPROVAL_PROCESS( p_api_version_number IN NUMBER
34: , p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE
35: , p_commit IN VARCHAR2 := FND_API.G_FALSE
36: , p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL
37: , p_referral_id IN NUMBER
38: , p_partner_id IN NUMBER DEFAULT NULL
39: , p_change_cntry_flag IN VARCHAR2 -- if ref country is changed set this to true
40: , p_country_code IN VARCHAR2 -- new country code if change_country_flag is true
93: -- ********* Start Standard Initializations *******
94: SAVEPOINT START_APPROVAL_PROCESS;
95:
96: -- Standard call to check for call compatibility.
97: IF NOT FND_API.Compatible_API_Call (l_api_version_number,
98: p_api_version_number,
99: l_api_name,
100: 'PV_AME_API_W') THEN
101: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
97: IF NOT FND_API.Compatible_API_Call (l_api_version_number,
98: p_api_version_number,
99: l_api_name,
100: 'PV_AME_API_W') THEN
101: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
102: END IF;
103:
104: -- Initialize message list if p_init_msg_list is set to TRUE.
105: IF FND_API.to_Boolean( p_init_msg_list )
101: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
102: END IF;
103:
104: -- Initialize message list if p_init_msg_list is set to TRUE.
105: IF FND_API.to_Boolean( p_init_msg_list )
106: THEN
107: fnd_msg_pub.initialize;
108: END IF;
109:
106: THEN
107: fnd_msg_pub.initialize;
108: END IF;
109:
110: x_return_status := FND_API.G_RET_STS_SUCCESS;
111: -- ********* End Standard Initializations *********
112: IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
113: FND_LOG.MESSAGE(FND_LOG.LEVEL_PROCEDURE
114: ,'pv.plsql.' || g_pkg_name || '.' || l_api_name
120: IF p_approval_entity not in ('PVREFFRL','PVDEALRN','PVDQMAPR') THEN
121: fnd_message.Set_Name('PV', 'PV_DEBUG_MESSAGE');
122: fnd_message.Set_Token('TEXT', 'Invalid Approval Entity: ' || p_approval_entity);
123: fnd_msg_pub.Add;
124: RAISE FND_API.g_exc_error;
125: END IF;
126:
127: -- This is to make sure that no other thread of execution
128: -- can try to update the rows for this referrral in
251: IF approverUserIds(1) IS NULL THEN
252: fnd_message.Set_Name('PV', 'PV_DEBUG_MESSAGE');
253: fnd_message.Set_Token('TEXT', 'Could not find approver in either AME or profile');
254: fnd_msg_pub.Add;
255: RAISE FND_API.G_EXC_ERROR;
256: END IF;
257: ELSE
258: l_appr_status := 'PENDING_APPROVAL';
259: END IF;
315: -- there was an event of changing country which may have caused Approvers to change.
316: -- So notification is called explicitly.
317:
318: PV_BENFT_STATUS_CHANGE.STATUS_CHANGE_notification(p_api_version_number => 1.0
319: ,p_init_msg_list => FND_API.G_FALSE
320: ,p_commit => FND_API.G_FALSE
321: ,p_validation_level => FND_API.G_VALID_LEVEL_FULL
322: ,P_BENEFIT_ID => l_benefit_id
323: ,P_STATUS => 'SUBMITTED_FOR_APPROVAL'
316: -- So notification is called explicitly.
317:
318: PV_BENFT_STATUS_CHANGE.STATUS_CHANGE_notification(p_api_version_number => 1.0
319: ,p_init_msg_list => FND_API.G_FALSE
320: ,p_commit => FND_API.G_FALSE
321: ,p_validation_level => FND_API.G_VALID_LEVEL_FULL
322: ,P_BENEFIT_ID => l_benefit_id
323: ,P_STATUS => 'SUBMITTED_FOR_APPROVAL'
324: ,P_ENTITY_ID => p_referral_id
317:
318: PV_BENFT_STATUS_CHANGE.STATUS_CHANGE_notification(p_api_version_number => 1.0
319: ,p_init_msg_list => FND_API.G_FALSE
320: ,p_commit => FND_API.G_FALSE
321: ,p_validation_level => FND_API.G_VALID_LEVEL_FULL
322: ,P_BENEFIT_ID => l_benefit_id
323: ,P_STATUS => 'SUBMITTED_FOR_APPROVAL'
324: ,P_ENTITY_ID => p_referral_id
325: ,P_PARTNER_ID => l_partner_id
329: ,x_return_status => l_return_status
330: ,x_msg_count => l_msg_count
331: ,x_msg_data => l_msg_data);
332:
333: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
334: RAISE FND_API.G_EXC_ERROR;
335: END IF;
336:
337: -- Fix for Bug 5689433.
330: ,x_msg_count => l_msg_count
331: ,x_msg_data => l_msg_data);
332:
333: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
334: RAISE FND_API.G_EXC_ERROR;
335: END IF;
336:
337: -- Fix for Bug 5689433.
338: l_message_name := null;
385: END IF;
386:
387: CLOSE lc_lock_approvals;
388: -- Standard call to get message count and if count is 1, get message info.
389: FND_MSG_PUB.Count_And_Get( p_encoded => FND_API.G_FALSE,
390: p_count => x_msg_count,
391: p_data => x_msg_data);
392:
393: EXCEPTION
390: p_count => x_msg_count,
391: p_data => x_msg_data);
392:
393: EXCEPTION
394: WHEN FND_API.G_EXC_ERROR THEN
395:
396: ROLLBACK TO START_APPROVAL_PROCESS;
397: x_return_status := FND_API.G_RET_STS_ERROR ;
398:
393: EXCEPTION
394: WHEN FND_API.G_EXC_ERROR THEN
395:
396: ROLLBACK TO START_APPROVAL_PROCESS;
397: x_return_status := FND_API.G_RET_STS_ERROR ;
398:
399: fnd_msg_pub.Count_And_Get(
400: p_encoded => FND_API.G_FALSE,
401: p_count => x_msg_count,
396: ROLLBACK TO START_APPROVAL_PROCESS;
397: x_return_status := FND_API.G_RET_STS_ERROR ;
398:
399: fnd_msg_pub.Count_And_Get(
400: p_encoded => FND_API.G_FALSE,
401: p_count => x_msg_count,
402: p_data => x_msg_data);
403:
404: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
400: p_encoded => FND_API.G_FALSE,
401: p_count => x_msg_count,
402: p_data => x_msg_data);
403:
404: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
405:
406: ROLLBACK TO START_APPROVAL_PROCESS;
407: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
408:
403:
404: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
405:
406: ROLLBACK TO START_APPROVAL_PROCESS;
407: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
408:
409: fnd_msg_pub.Count_And_Get(
410: p_encoded => FND_API.G_FALSE,
411: p_count => x_msg_count,
406: ROLLBACK TO START_APPROVAL_PROCESS;
407: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
408:
409: fnd_msg_pub.Count_And_Get(
410: p_encoded => FND_API.G_FALSE,
411: p_count => x_msg_count,
412: p_data => x_msg_data);
413:
414: WHEN g_concurrent_update THEN
414: WHEN g_concurrent_update THEN
415: fnd_message.Set_Name('PV', 'PV_REQUERY_THE_RECORD');
416: fnd_msg_pub.Add;
417: ROLLBACK TO UPDATE_APPROVER_RESPONSE;
418: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
419: fnd_msg_pub.Count_And_Get(
420: p_encoded => FND_API.G_FALSE,
421: p_count => x_msg_count,
422: p_data => x_msg_data);
416: fnd_msg_pub.Add;
417: ROLLBACK TO UPDATE_APPROVER_RESPONSE;
418: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
419: fnd_msg_pub.Count_And_Get(
420: p_encoded => FND_API.G_FALSE,
421: p_count => x_msg_count,
422: p_data => x_msg_data);
423:
424: WHEN OTHERS THEN
423:
424: WHEN OTHERS THEN
425:
426: ROLLBACK TO START_APPROVAL_PROCESS;
427: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
428:
429: FND_MSG_PUB.Add_Exc_Msg(
430: 'PV_AME_API_W',
431: l_api_name);
430: 'PV_AME_API_W',
431: l_api_name);
432:
433: fnd_msg_pub.Count_And_Get(
434: p_encoded => FND_API.G_FALSE,
435: p_count => x_msg_count,
436: p_data => x_msg_data);
437:
438: END START_APPROVAL_PROCESS;
441: /********************************************************************************
442: This procedure starts the updates Responses given by approvers to the AME system.
443: *********************************************************************************/
444: PROCEDURE UPDATE_APPROVER_RESPONSE( p_api_version_number IN NUMBER
445: , p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE
446: , p_commit IN VARCHAR2 := FND_API.G_FALSE
447: , p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL
448: , p_referral_id IN NUMBER
449: , p_approval_entity IN VARCHAR2 -- PVREFFRL/PVDEALRN/PVDQMAPR
442: This procedure starts the updates Responses given by approvers to the AME system.
443: *********************************************************************************/
444: PROCEDURE UPDATE_APPROVER_RESPONSE( p_api_version_number IN NUMBER
445: , p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE
446: , p_commit IN VARCHAR2 := FND_API.G_FALSE
447: , p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL
448: , p_referral_id IN NUMBER
449: , p_approval_entity IN VARCHAR2 -- PVREFFRL/PVDEALRN/PVDQMAPR
450: , p_response IN VARCHAR2 -- refer to AME_UTIL.approverIn
443: *********************************************************************************/
444: PROCEDURE UPDATE_APPROVER_RESPONSE( p_api_version_number IN NUMBER
445: , p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE
446: , p_commit IN VARCHAR2 := FND_API.G_FALSE
447: , p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL
448: , p_referral_id IN NUMBER
449: , p_approval_entity IN VARCHAR2 -- PVREFFRL/PVDEALRN/PVDQMAPR
450: , p_response IN VARCHAR2 -- refer to AME_UTIL.approverIn
451: , p_approver_user_id IN NUMBER -- userID of the person sending approver resp
553: -- ********* Start Standard Initializations *******
554: SAVEPOINT UPDATE_APPROVER_RESPONSE;
555:
556: -- Standard call to check for call compatibility.
557: IF NOT FND_API.Compatible_API_Call (l_api_version_number,
558: p_api_version_number,
559: l_api_name,
560: 'PV_AME_API_W') THEN
561: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
557: IF NOT FND_API.Compatible_API_Call (l_api_version_number,
558: p_api_version_number,
559: l_api_name,
560: 'PV_AME_API_W') THEN
561: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
562: END IF;
563:
564: -- Initialize message list if p_init_msg_list is set to TRUE.
565: IF FND_API.to_Boolean( p_init_msg_list ) THEN
561: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
562: END IF;
563:
564: -- Initialize message list if p_init_msg_list is set to TRUE.
565: IF FND_API.to_Boolean( p_init_msg_list ) THEN
566: fnd_msg_pub.initialize;
567: END IF;
568:
569: IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
573: );
574: END IF;
575:
576:
577: x_return_status := FND_API.G_RET_STS_SUCCESS;
578: -- ********* End Standard Initializations *********
579:
580: -- This is to make sure that no other thread of execution
581: -- can try to update the rows for this referrral in
604:
605: IF l_forwardee.orig_system_id IS NULL THEN
606: fnd_message.Set_Name('PV', 'PV_NO_PERSON_ERROR');
607: fnd_msg_pub.Add;
608: RAISE FND_API.g_exc_error;
609: END IF;
610:
611: l_approval_status := 'FORWARDED';
612: IF p_approval_entity = 'PVREFFRL' then
681: IF l_approval_status IS NULL THEN
682: fnd_message.Set_Name('PV', 'PV_DEBUG_MESSAGE');
683: fnd_message.Set_Token('TEXT', 'Possible error. Invalid : Response ' || p_response);
684: fnd_msg_pub.Add;
685: RAISE FND_API.g_exc_error;
686: END IF;
687:
688: IF p_response = AME_UTIL.forwardStatus and p_forwardee_user_id is null then
689: fnd_message.Set_Name('PV', 'PV_REFERRAL_REASSIGN_APPROVER');
687:
688: IF p_response = AME_UTIL.forwardStatus and p_forwardee_user_id is null then
689: fnd_message.Set_Name('PV', 'PV_REFERRAL_REASSIGN_APPROVER');
690: fnd_msg_pub.Add;
691: RAISE FND_API.g_exc_error;
692: END IF;
693:
694: open lc_is_default_approver(pc_user_id => p_approver_user_id,
695: pc_benefit_type => p_approval_entity,
758: x_return_status => l_return_status,
759: x_msg_count => l_msg_count,
760: x_msg_data => l_msg_data);
761:
762: if L_return_status <> FND_API.G_RET_STS_SUCCESS then
763: raise FND_API.G_EXC_ERROR;
764: end if;
765:
766: end if;
759: x_msg_count => l_msg_count,
760: x_msg_data => l_msg_data);
761:
762: if L_return_status <> FND_API.G_RET_STS_SUCCESS then
763: raise FND_API.G_EXC_ERROR;
764: end if;
765:
766: end if;
767:
783: END IF;
784:
785: FND_MESSAGE.Set_Name('PV', 'PV_REFERRAL_REASSIGN_ERROR');
786: FND_MSG_PUB.Add;
787: RAISE FND_API.G_EXC_ERROR;
788:
789: END IF;
790:
791:
953:
954: IF ( l_valid_users_flag = 'N' ) THEN
955: FND_MESSAGE.Set_Name('PV', 'PV_NO_USER_FOR_PERSON_ERROR');
956: FND_MSG_PUB.Add;
957: RAISE FND_API.g_exc_error;
958: END IF;
959:
960:
961: IF ((l_approval_list IS NULL OR l_approval_list.COUNT < 1)
969: END IF;
970:
971: FND_MESSAGE.Set_Name('PV', 'PV_REFERRAL_NO_FORWARDEE');
972: FND_MSG_PUB.Add;
973: RAISE FND_API.g_exc_error;
974: END IF;
975:
976: DEL_PRIOR_REP_APPR(p_approval_entity => p_approval_entity
977: ,p_referral_id => p_referral_id
1139: BEGIN
1140:
1141: -- restart approval process
1142: START_APPROVAL_PROCESS(p_api_version_number => 1.0
1143: ,p_init_msg_list => FND_API.G_FALSE
1144: ,p_commit => FND_API.G_FALSE
1145: ,p_validation_level => 90 --fnd_api.g_valid_level_full,
1146: ,p_referral_id => p_referral_id
1147: ,p_change_cntry_flag => 'N'
1140:
1141: -- restart approval process
1142: START_APPROVAL_PROCESS(p_api_version_number => 1.0
1143: ,p_init_msg_list => FND_API.G_FALSE
1144: ,p_commit => FND_API.G_FALSE
1145: ,p_validation_level => 90 --fnd_api.g_valid_level_full,
1146: ,p_referral_id => p_referral_id
1147: ,p_change_cntry_flag => 'N'
1148: ,p_country_code => NULL
1141: -- restart approval process
1142: START_APPROVAL_PROCESS(p_api_version_number => 1.0
1143: ,p_init_msg_list => FND_API.G_FALSE
1144: ,p_commit => FND_API.G_FALSE
1145: ,p_validation_level => 90 --fnd_api.g_valid_level_full,
1146: ,p_referral_id => p_referral_id
1147: ,p_change_cntry_flag => 'N'
1148: ,p_country_code => NULL
1149: ,p_approval_entity => p_approval_entity
1150: ,x_return_status => l_return_status
1151: ,x_msg_count => l_msg_count
1152: ,x_msg_data => l_msg_data);
1153:
1154: IF L_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1155: RAISE FND_API.G_EXC_ERROR;
1156: END IF;
1157:
1158: x_approval_done := 'N';
1151: ,x_msg_count => l_msg_count
1152: ,x_msg_data => l_msg_data);
1153:
1154: IF L_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1155: RAISE FND_API.G_EXC_ERROR;
1156: END IF;
1157:
1158: x_approval_done := 'N';
1159: EXCEPTION
1176: l_partner_id := x.partner_id;
1177: END LOOP;
1178:
1179: PV_BENFT_STATUS_CHANGE.STATUS_CHANGE_notification(p_api_version_number => 1.0
1180: ,p_init_msg_list => FND_API.G_FALSE
1181: ,p_commit => FND_API.G_FALSE
1182: ,p_validation_level => FND_API.G_VALID_LEVEL_FULL
1183: ,P_BENEFIT_ID => l_benefit_id
1184: ,P_STATUS => 'SUBMITTED_FOR_APPROVAL'
1177: END LOOP;
1178:
1179: PV_BENFT_STATUS_CHANGE.STATUS_CHANGE_notification(p_api_version_number => 1.0
1180: ,p_init_msg_list => FND_API.G_FALSE
1181: ,p_commit => FND_API.G_FALSE
1182: ,p_validation_level => FND_API.G_VALID_LEVEL_FULL
1183: ,P_BENEFIT_ID => l_benefit_id
1184: ,P_STATUS => 'SUBMITTED_FOR_APPROVAL'
1185: ,P_ENTITY_ID => p_referral_id
1178:
1179: PV_BENFT_STATUS_CHANGE.STATUS_CHANGE_notification(p_api_version_number => 1.0
1180: ,p_init_msg_list => FND_API.G_FALSE
1181: ,p_commit => FND_API.G_FALSE
1182: ,p_validation_level => FND_API.G_VALID_LEVEL_FULL
1183: ,P_BENEFIT_ID => l_benefit_id
1184: ,P_STATUS => 'SUBMITTED_FOR_APPROVAL'
1185: ,P_ENTITY_ID => p_referral_id
1186: ,P_PARTNER_ID => l_partner_id
1190: ,x_return_status => l_return_status
1191: ,x_msg_count => l_msg_count
1192: ,x_msg_data => l_msg_data);
1193:
1194: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1195: RAISE FND_API.G_EXC_ERROR;
1196: END IF;
1197: END IF;
1198:
1191: ,x_msg_count => l_msg_count
1192: ,x_msg_data => l_msg_data);
1193:
1194: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1195: RAISE FND_API.G_EXC_ERROR;
1196: END IF;
1197: END IF;
1198:
1199: -- Standard call to get message count and if count is 1, get message info.
1196: END IF;
1197: END IF;
1198:
1199: -- Standard call to get message count and if count is 1, get message info.
1200: FND_MSG_PUB.Count_And_Get( p_encoded => FND_API.G_FALSE,
1201: p_count => x_msg_count,
1202: p_data => x_msg_data);
1203:
1204: EXCEPTION
1202: p_data => x_msg_data);
1203:
1204: EXCEPTION
1205:
1206: WHEN FND_API.G_EXC_ERROR THEN
1207:
1208: ROLLBACK TO UPDATE_APPROVER_RESPONSE;
1209: x_return_status := FND_API.G_RET_STS_ERROR ;
1210:
1205:
1206: WHEN FND_API.G_EXC_ERROR THEN
1207:
1208: ROLLBACK TO UPDATE_APPROVER_RESPONSE;
1209: x_return_status := FND_API.G_RET_STS_ERROR ;
1210:
1211: fnd_msg_pub.Count_And_Get(
1212: p_encoded => FND_API.G_FALSE,
1213: p_count => x_msg_count,
1208: ROLLBACK TO UPDATE_APPROVER_RESPONSE;
1209: x_return_status := FND_API.G_RET_STS_ERROR ;
1210:
1211: fnd_msg_pub.Count_And_Get(
1212: p_encoded => FND_API.G_FALSE,
1213: p_count => x_msg_count,
1214: p_data => x_msg_data);
1215:
1216: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1212: p_encoded => FND_API.G_FALSE,
1213: p_count => x_msg_count,
1214: p_data => x_msg_data);
1215:
1216: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1217:
1218: ROLLBACK TO UPDATE_APPROVER_RESPONSE;
1219: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1220:
1215:
1216: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1217:
1218: ROLLBACK TO UPDATE_APPROVER_RESPONSE;
1219: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1220:
1221: fnd_msg_pub.Count_And_Get(
1222: p_encoded => FND_API.G_FALSE,
1223: p_count => x_msg_count,
1218: ROLLBACK TO UPDATE_APPROVER_RESPONSE;
1219: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1220:
1221: fnd_msg_pub.Count_And_Get(
1222: p_encoded => FND_API.G_FALSE,
1223: p_count => x_msg_count,
1224: p_data => x_msg_data);
1225:
1226: WHEN g_concurrent_update THEN
1227: fnd_message.Set_Name('PV', 'PV_REQUERY_THE_RECORD');
1228: fnd_msg_pub.Add;
1229:
1230: ROLLBACK TO UPDATE_APPROVER_RESPONSE;
1231: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1232: fnd_msg_pub.Count_And_Get(
1233: p_encoded => FND_API.G_FALSE,
1234: p_count => x_msg_count,
1235: p_data => x_msg_data);
1229:
1230: ROLLBACK TO UPDATE_APPROVER_RESPONSE;
1231: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1232: fnd_msg_pub.Count_And_Get(
1233: p_encoded => FND_API.G_FALSE,
1234: p_count => x_msg_count,
1235: p_data => x_msg_data);
1236:
1237: WHEN OTHERS THEN
1236:
1237: WHEN OTHERS THEN
1238:
1239: ROLLBACK TO UPDATE_APPROVER_RESPONSE;
1240: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1241:
1242: FND_MSG_PUB.Add_Exc_Msg('PV_AME_API_W', l_api_name);
1243:
1244: fnd_msg_pub.Count_And_Get(
1241:
1242: FND_MSG_PUB.Add_Exc_Msg('PV_AME_API_W', l_api_name);
1243:
1244: fnd_msg_pub.Count_And_Get(
1245: p_encoded => FND_API.G_FALSE,
1246: p_count => x_msg_count,
1247: p_data => x_msg_data);
1248:
1249: END UPDATE_APPROVER_RESPONSE;
1384: ': ' || SQLERRM);
1385: END IF;
1386: FND_MESSAGE.Set_Name('PV', 'PV_REFERRAL_APPROVAL_ERROR');
1387: FND_MSG_PUB.Add;
1388: RAISE FND_API.G_EXC_ERROR;
1389:
1390: END VALIDATE_APPROVAL;
1391:
1392: PROCEDURE GET_APPROVERS(p_approval_entity IN VARCHAR2