156: -- write into amw_approved_hierarchies
157: -- update the association_tables
158: -- update amw_proc_hierarchy_denorm table where hierarchy_type = 'A'
159: procedure approve(p_process_id in number, p_org_id in number,
160: p_update_count in varchar2 := FND_API.G_TRUE) is
161:
162: rev_num number;
163: approv_choice varchar2(10);
164: curr_app_status varchar2(10);
230: approve_associations(p_process_id, p_org_id);
231: write_approved_hierarchy(p_process_id, 2, p_org_id);
232: -- kosriniv.. Approve the Exceptions..
233: approve_exceptions(p_org_id, p_process_id);
234: IF p_update_count = FND_API.G_TRUE THEN
235: -- Now updat the Org Count......
236: amw_rl_hierarchy_pkg.update_org_count(p_process_id);
237: END IF;
238:
265: end if;
266:
267: approve_associations(c2_rec.parent_child_id, p_org_id);
268: write_approved_hierarchy(c2_rec.parent_child_id, 2, p_org_id);
269: IF p_update_count = FND_API.G_TRUE THEN
270: -- Update the Org Count
271: amw_rl_hierarchy_pkg.update_org_count(c2_rec.parent_child_id);
272: END IF;
273:
280:
281: end loop;
282: write_approved_hierarchy(p_process_id,0 , p_org_id);
283:
284: IF p_update_count = FND_API.G_TRUE THEN
285: amw_org_hierarchy_pkg.upd_appr_control_count(p_org_id, null); --ko, commenting this.. -2);
286: amw_org_hierarchy_pkg.upd_appr_risk_count(p_org_id, null); --ko the count api is currently aggregating in the upward direction -2);
287: END IF;
288:
317: end if;
318:
319: approve_associations(c1_rec.parent_child_id, p_org_id);
320: write_approved_hierarchy(c1_rec.parent_child_id, 2, p_org_id);
321: IF p_update_count = FND_API.G_TRUE THEN
322: -- Update the Org Count
323: amw_rl_hierarchy_pkg.update_org_count(c1_rec.parent_child_id);
324: END IF;
325:
331: --ko replacing the below clause for removing amw_org_hierarchy_denorm usage...
332: /*
333: amw_rl_hierarchy_pkg.update_approved_denorm(p_org_id);
334: */
335: IF p_update_count = FND_API.G_TRUE THEN
336: amw_org_hierarchy_pkg.upd_appr_control_count(p_org_id, null); --ko, commenting this.. -2);
337: amw_org_hierarchy_pkg.upd_appr_risk_count(p_org_id, null); --ko the count api is currently aggregating in the upward direction -2);
338: END IF;
339:
893:
894: procedure autoapprove(
895: p_process_id in number,
896: p_org_id in number,
897: p_commit in varchar2 := FND_API.G_FALSE,
898: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
899: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
900: x_return_status out nocopy varchar2,
901: x_msg_count out nocopy number,
894: procedure autoapprove(
895: p_process_id in number,
896: p_org_id in number,
897: p_commit in varchar2 := FND_API.G_FALSE,
898: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
899: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
900: x_return_status out nocopy varchar2,
901: x_msg_count out nocopy number,
902: x_msg_data out nocopy varchar2 )
895: p_process_id in number,
896: p_org_id in number,
897: p_commit in varchar2 := FND_API.G_FALSE,
898: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
899: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
900: x_return_status out nocopy varchar2,
901: x_msg_count out nocopy number,
902: x_msg_data out nocopy varchar2 )
903:
909: l_msg_data varchar2(4000);
910:
911: begin
912:
913: x_return_status := FND_API.G_RET_STS_SUCCESS;
914: IF FND_API.to_Boolean( p_init_msg_list ) THEN
915: FND_MSG_PUB.initialize;
916: END IF;
917: IF FND_GLOBAL.User_Id IS NULL THEN
910:
911: begin
912:
913: x_return_status := FND_API.G_RET_STS_SUCCESS;
914: IF FND_API.to_Boolean( p_init_msg_list ) THEN
915: FND_MSG_PUB.initialize;
916: END IF;
917: IF FND_GLOBAL.User_Id IS NULL THEN
918: AMW_Utility_PVT.Error_Message(p_message_name => 'USER_PROFILE_MISSING');
915: FND_MSG_PUB.initialize;
916: END IF;
917: IF FND_GLOBAL.User_Id IS NULL THEN
918: AMW_Utility_PVT.Error_Message(p_message_name => 'USER_PROFILE_MISSING');
919: RAISE FND_API.G_EXC_ERROR;
920: END IF;
921:
922: sub_for_approval (p_process_id, p_org_id);
923: approve(p_process_id, p_org_id);
923: approve(p_process_id, p_org_id);
924:
925: exception
926:
927: WHEN FND_API.G_EXC_ERROR THEN
928: ROLLBACK;
929: x_return_status := FND_API.G_RET_STS_ERROR;
930: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,p_count => x_msg_count,p_data => x_msg_data);
931:
925: exception
926:
927: WHEN FND_API.G_EXC_ERROR THEN
928: ROLLBACK;
929: x_return_status := FND_API.G_RET_STS_ERROR;
930: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,p_count => x_msg_count,p_data => x_msg_data);
931:
932: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
933: ROLLBACK;
926:
927: WHEN FND_API.G_EXC_ERROR THEN
928: ROLLBACK;
929: x_return_status := FND_API.G_RET_STS_ERROR;
930: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,p_count => x_msg_count,p_data => x_msg_data);
931:
932: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
933: ROLLBACK;
934: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
928: ROLLBACK;
929: x_return_status := FND_API.G_RET_STS_ERROR;
930: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,p_count => x_msg_count,p_data => x_msg_data);
931:
932: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
933: ROLLBACK;
934: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
935: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,p_count => x_msg_count,p_data => x_msg_data);
936:
930: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,p_count => x_msg_count,p_data => x_msg_data);
931:
932: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
933: ROLLBACK;
934: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
935: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,p_count => x_msg_count,p_data => x_msg_data);
936:
937: WHEN OTHERS THEN
938: ROLLBACK;
931:
932: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
933: ROLLBACK;
934: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
935: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,p_count => x_msg_count,p_data => x_msg_data);
936:
937: WHEN OTHERS THEN
938: ROLLBACK;
939: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
935: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,p_count => x_msg_count,p_data => x_msg_data);
936:
937: WHEN OTHERS THEN
938: ROLLBACK;
939: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
940: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
941: THEN
942: FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME,l_api_name);
943: END IF;
940: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
941: THEN
942: FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME,l_api_name);
943: END IF;
944: FND_MSG_PUB.Count_And_Get (p_encoded => FND_API.G_FALSE,p_count => x_msg_count, p_data => x_msg_data);
945:
946: end autoapprove;
947:
948:
958: p_process_id in number,
959: p_org_id in number,
960: p_result out nocopy varchar2,
961: p_out_mesg out nocopy varchar2,
962: p_commit in varchar2 := FND_API.G_FALSE,
963: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
964: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
965: x_return_status out nocopy varchar2,
966: x_msg_count out nocopy number,
959: p_org_id in number,
960: p_result out nocopy varchar2,
961: p_out_mesg out nocopy varchar2,
962: p_commit in varchar2 := FND_API.G_FALSE,
963: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
964: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
965: x_return_status out nocopy varchar2,
966: x_msg_count out nocopy number,
967: x_msg_data out nocopy varchar2 )
960: p_result out nocopy varchar2,
961: p_out_mesg out nocopy varchar2,
962: p_commit in varchar2 := FND_API.G_FALSE,
963: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
964: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
965: x_return_status out nocopy varchar2,
966: x_msg_count out nocopy number,
967: x_msg_data out nocopy varchar2 )
968:
977: st_var_pid number;
978:
979: begin
980:
981: x_return_status := FND_API.G_RET_STS_SUCCESS;
982: IF FND_API.to_Boolean( p_init_msg_list ) THEN
983: FND_MSG_PUB.initialize;
984: END IF;
985: IF FND_GLOBAL.User_Id IS NULL THEN
978:
979: begin
980:
981: x_return_status := FND_API.G_RET_STS_SUCCESS;
982: IF FND_API.to_Boolean( p_init_msg_list ) THEN
983: FND_MSG_PUB.initialize;
984: END IF;
985: IF FND_GLOBAL.User_Id IS NULL THEN
986: AMW_Utility_PVT.Error_Message(p_message_name => 'USER_PROFILE_MISSING');
983: FND_MSG_PUB.initialize;
984: END IF;
985: IF FND_GLOBAL.User_Id IS NULL THEN
986: AMW_Utility_PVT.Error_Message(p_message_name => 'USER_PROFILE_MISSING');
987: RAISE FND_API.G_EXC_ERROR;
988: END IF;
989:
990: p_result := 'Y';
991: p_out_mesg := null;
1005: end if;
1006:
1007: exception
1008:
1009: WHEN FND_API.G_EXC_ERROR THEN
1010: ROLLBACK;
1011: x_return_status := FND_API.G_RET_STS_ERROR;
1012: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,p_count => x_msg_count,p_data => x_msg_data);
1013:
1007: exception
1008:
1009: WHEN FND_API.G_EXC_ERROR THEN
1010: ROLLBACK;
1011: x_return_status := FND_API.G_RET_STS_ERROR;
1012: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,p_count => x_msg_count,p_data => x_msg_data);
1013:
1014: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1015: ROLLBACK;
1008:
1009: WHEN FND_API.G_EXC_ERROR THEN
1010: ROLLBACK;
1011: x_return_status := FND_API.G_RET_STS_ERROR;
1012: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,p_count => x_msg_count,p_data => x_msg_data);
1013:
1014: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1015: ROLLBACK;
1016: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1010: ROLLBACK;
1011: x_return_status := FND_API.G_RET_STS_ERROR;
1012: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,p_count => x_msg_count,p_data => x_msg_data);
1013:
1014: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1015: ROLLBACK;
1016: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1017: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,p_count => x_msg_count,p_data => x_msg_data);
1018:
1012: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,p_count => x_msg_count,p_data => x_msg_data);
1013:
1014: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1015: ROLLBACK;
1016: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1017: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,p_count => x_msg_count,p_data => x_msg_data);
1018:
1019: WHEN OTHERS THEN
1020: ROLLBACK;
1013:
1014: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1015: ROLLBACK;
1016: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1017: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,p_count => x_msg_count,p_data => x_msg_data);
1018:
1019: WHEN OTHERS THEN
1020: ROLLBACK;
1021: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1017: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,p_count => x_msg_count,p_data => x_msg_data);
1018:
1019: WHEN OTHERS THEN
1020: ROLLBACK;
1021: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1022: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1023: THEN
1024: FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME,l_api_name);
1025: END IF;
1022: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1023: THEN
1024: FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME,l_api_name);
1025: END IF;
1026: FND_MSG_PUB.Count_And_Get (p_encoded => FND_API.G_FALSE,p_count => x_msg_count, p_data => x_msg_data);
1027:
1028: end check_approval_subm_eligib;
1029:
1030: PROCEDURE approve_exceptions(p_org_id IN NUMBER, p_process_id IN NUMBER) IS