1 PACKAGE BODY CN_SCENARIOS_PVT AS
2 /*$Header: cnvscnb.pls 120.0 2007/07/26 01:11:26 appldev noship $*/
3
4 G_PKG_NAME CONSTANT VARCHAR2(30) :='CN_SCENARIOS_PVT';
5
6 PROCEDURE delete_scenario_plans
7 (p_api_version IN NUMBER ,
8 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE ,
9 p_commit IN VARCHAR2 := FND_API.G_FALSE ,
10 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
11 p_role_plan_id IN CN_SCENARIO_PLANS_ALL.ROLE_PLAN_ID%TYPE := NULL,
12 p_comp_plan_id IN CN_SCENARIO_PLANS_ALL.COMP_PLAN_ID%TYPE := NULL,
13 p_role_id IN CN_SCENARIO_PLANS_ALL.ROLE_ID%TYPE := NULL,
14 x_return_status OUT NOCOPY VARCHAR2 ,
15 x_msg_count OUT NOCOPY NUMBER ,
16 x_msg_data OUT NOCOPY VARCHAR2 ) IS
17
18 l_api_name CONSTANT VARCHAR2(30) := 'delete_scenario_plans';
19 l_api_version CONSTANT NUMBER := 1.0;
20 BEGIN
21
22 -- Standard Start of API savepoint
23 SAVEPOINT delete_scenario_plans;
24 -- Standard call to check for call compatibility.
25 IF NOT FND_API.Compatible_API_Call
26 (l_api_version ,
27 p_api_version ,
28 l_api_name ,
29 G_PKG_NAME )
30 THEN
31 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
32 END IF;
33 -- Initialize message list if p_init_msg_list is set to TRUE.
34 IF FND_API.to_Boolean( p_init_msg_list ) THEN
35 FND_MSG_PUB.initialize;
36 END IF;
37 -- Initialize API return status to success
38 x_return_status := FND_API.G_RET_STS_SUCCESS;
39
40 IF p_role_plan_id is not null then
41 delete from cn_scenario_plans_all where role_plan_id = p_role_plan_id;
42 end if;
43
44
45 IF p_role_id is not null then
46 delete from cn_scenario_plans_all where role_id = p_role_id;
47 end if;
48
49
50 IF p_comp_plan_id is not null then
51 delete from cn_scenario_plans_all where comp_plan_id = p_comp_plan_id;
52 end if;
53
54 -- End of API body.
55
56 -- Standard check of p_commit.
57 IF FND_API.To_Boolean( p_commit ) THEN
58 COMMIT WORK;
59 END IF;
60 -- Standard call to get message count and if count is 1, get message info.
61 FND_MSG_PUB.Count_And_Get
62 (p_count => x_msg_count ,
63 p_data => x_msg_data ,
64 p_encoded => FND_API.G_FALSE );
65 EXCEPTION
66 WHEN FND_API.G_EXC_ERROR THEN
67 ROLLBACK TO delete_scenario_plans;
68 x_return_status := FND_API.G_RET_STS_ERROR ;
69 FND_MSG_PUB.count_and_get
70 (p_count => x_msg_count ,
71 p_data => x_msg_data ,
72 p_encoded => FND_API.G_FALSE );
73 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
74 ROLLBACK TO delete_scenario_plans;
75 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
76 FND_MSG_PUB.count_and_get
77 (p_count => x_msg_count ,
78 p_data => x_msg_data ,
79 p_encoded => FND_API.G_FALSE );
80 WHEN OTHERS THEN
81 ROLLBACK TO delete_scenario_plans;
82 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
83 IF FND_MSG_PUB.check_msg_level
84 (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
85 THEN
86 FND_MSG_PUB.add_exc_msg
87 (G_PKG_NAME ,
88 l_api_name );
89 END IF;
90 FND_MSG_PUB.count_and_get
91 (p_count => x_msg_count ,
92 p_data => x_msg_data ,
93 p_encoded => FND_API.G_FALSE );
94 END;
95
96 END CN_SCENARIOS_PVT;