[Home] [Help]
PACKAGE BODY: APPS.PV_ENTY_ATTR_VALIDATIONS_PUB
Source
1 PACKAGE BODY PV_ENTY_ATTR_VALIDATIONS_PUB AS
2 /* $Header: pvxvvldb.pls 115.1 2002/12/10 19:29:45 amaram ship $ */
3 -- ===============================================================
4 -- Start of Comments
5 -- Package name
6 -- PV_ENTY_ATTR_VALIDATIONS_PVT
7 -- Purpose
8 --
9 -- History
10 --
11 -- NOTE
12 --
13 -- End of Comments
14 -- ===============================================================
15
16
17 G_PKG_NAME CONSTANT VARCHAR2(30) := 'PV_ENTY_ATTR_VALIDATIONS_PUB';
18 G_FILE_NAME CONSTANT VARCHAR2(12) := 'pvxvvldb.pls';
19
20 G_USER_ID NUMBER := NVL(FND_GLOBAL.USER_ID,-1);
21 G_LOGIN_ID NUMBER := NVL(FND_GLOBAL.CONC_LOGIN_ID,-1);
22
23
24 PROCEDURE Update_Attr_Validations(
25 p_api_version_number IN NUMBER
26 ,p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE
27 ,p_commit IN VARCHAR2 := FND_API.G_FALSE
28 ,p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL
29
30 ,x_return_status OUT NOCOPY VARCHAR2
31 ,x_msg_count OUT NOCOPY NUMBER
32 ,x_msg_data OUT NOCOPY VARCHAR2
33
34 ,p_enty_attr_validation_rec IN PV_ENTY_ATTR_VALIDATIONS_PVT.enty_attr_validation_rec_type := PV_ENTY_ATTR_VALIDATIONS_PVT.g_miss_enty_attr_vldtn_rec
35 ,p_attribute_Id IN NUMBER
36 ,p_entity_Id IN NUMBER
37 ,p_entity IN VARCHAR2
38
39 )
40 IS
41
42 CURSOR c_get_enty_attr_value(cv_entity_id NUMBER, cv_attribute_id NUMBER, cv_entity VARCHAR2 ) IS
43 SELECT *
44 FROM PV_ENTY_ATTR_VALUES
45 WHERE entity_id = cv_entity_id and
46 attribute_id = cv_attribute_id and
47 entity = cv_entity and
48 latest_flag = 'Y'
49 ;
50
51 l_api_name CONSTANT VARCHAR2(30) := 'Update_Attr_Validations';
52 l_full_name CONSTANT VARCHAR2(60) := g_pkg_name ||'.'|| l_api_name;
53 l_api_version_number CONSTANT NUMBER := 1.0;
54
55 l_ref_enty_attr_val_rec c_get_Enty_Attr_Value%ROWTYPE ;
56 l_tar_enty_attr_val_rec PV_Enty_Attr_Value_PVT.enty_attr_val_rec_type ;
57
58 l_object_version_number NUMBER;
59 l_enty_attr_validation_id NUMBER;
60
61 l_count NUMBER :=0;
62
63
64 BEGIN
65 -- Standard Start of API savepoint
66 SAVEPOINT Update_Attr_Validations_PUB;
67
68 -- Standard call to check for call compatibility.
69 IF NOT FND_API.Compatible_API_Call (
70 l_api_version_number
71 ,p_api_version_number
72 ,l_api_name
73 ,G_PKG_NAME
74 )
75 THEN
76 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
77 END IF;
78
79 -- Initialize message list if p_init_msg_list is set to TRUE.
80 IF FND_API.to_Boolean( p_init_msg_list )
81 THEN
82 FND_MSG_PUB.initialize;
83 END IF;
84
85 -- Debug Message
86 IF (FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)) THEN
87 PVX_Utility_PVT.debug_message('Public API: '||l_full_name||' - start');
88 END IF;
89
90
91 -- Initialize API return status to SUCCESS
92 x_return_status := FND_API.G_RET_STS_SUCCESS;
93
94 --first call validations API, get valiodation id and update entity_attr_values API with that validation_id
95 IF (FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)) THEN
96 PVX_Utility_PVT.debug_message('Public API: '||l_full_name||' - calling PV_ENTY_ATTR_VALIDATIONS_PVT.Create_Enty_Attr_Validation');
97 END IF;
98 PV_ENTY_ATTR_VALIDATIONS_PVT.Create_Enty_Attr_Validation(
99 p_api_version_number => p_api_version_number
100 ,p_init_msg_list => p_init_msg_list
101 ,p_commit => p_commit
102 ,p_validation_level => p_validation_level
103
104 ,x_return_status => x_return_status
105 ,x_msg_count => x_msg_count
106 ,x_msg_data => x_msg_data
107
108 ,p_enty_attr_validation_rec => p_enty_attr_validation_rec
109 ,x_enty_attr_validation_id => l_enty_attr_validation_id
110 );
111
112 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
113 RAISE FND_API.G_EXC_ERROR;
114 END IF;
115
116
117
118
119 -- Debug Message
120 IF (FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)) THEN
121 PVX_Utility_PVT.debug_message('Private API: '||l_full_name||' - Open Cursor to Select');
122 END IF;
123
124 OPEN c_get_Enty_Attr_Value( cv_entity_id =>p_entity_id ,
125 cv_attribute_id => p_attribute_id,
126 cv_entity => p_entity
127 );
128 LOOP
129
130 FETCH c_get_Enty_Attr_Value INTO l_ref_enty_attr_val_rec ;
131
132 EXIT WHEN c_get_Enty_Attr_Value%NOTFOUND;
133
134
135
136
137 l_tar_enty_attr_val_rec.validation_id := l_enty_attr_validation_id;
138
139 l_tar_enty_attr_val_rec.enty_attr_val_id := l_ref_enty_attr_val_rec.enty_attr_val_id ;
140 l_tar_enty_attr_val_rec.last_update_date := SYSDATE;
141 l_tar_enty_attr_val_rec.last_updated_by := G_USER_ID;
142 l_tar_enty_attr_val_rec.creation_date := l_ref_enty_attr_val_rec.creation_date;
143 l_tar_enty_attr_val_rec.created_by := l_ref_enty_attr_val_rec.created_by ;
144 l_tar_enty_attr_val_rec.last_update_login := l_ref_enty_attr_val_rec.last_update_login;
145 l_tar_enty_attr_val_rec.object_version_number := l_ref_enty_attr_val_rec.object_version_number;
146 l_tar_enty_attr_val_rec.entity := l_ref_enty_attr_val_rec.entity;
147 l_tar_enty_attr_val_rec.attribute_id := l_ref_enty_attr_val_rec.attribute_id;
148 l_tar_enty_attr_val_rec.party_id := l_ref_enty_attr_val_rec.party_id ;
149 l_tar_enty_attr_val_rec.attr_value := l_ref_enty_attr_val_rec.attr_value;
150 l_tar_enty_attr_val_rec.score := l_ref_enty_attr_val_rec.score;
151 l_tar_enty_attr_val_rec.enabled_flag := l_ref_enty_attr_val_rec.enabled_flag ;
152 l_tar_enty_attr_val_rec.entity_id := l_ref_enty_attr_val_rec.entity_id;
153 l_tar_enty_attr_val_rec.version := l_ref_enty_attr_val_rec.version;
154 l_tar_enty_attr_val_rec.latest_flag := l_ref_enty_attr_val_rec.latest_flag ;
155 l_tar_enty_attr_val_rec.attr_value_extn := l_ref_enty_attr_val_rec.attr_value_extn;
156
157 IF (FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)) THEN
158 PVX_Utility_PVT.debug_message('Public API: '||l_full_name||' - calling PV_Enty_Attr_Value_PVT.Update_Attr_Value');
159 END IF;
160 PV_Enty_Attr_Value_PVT.Update_Attr_Value(
161 p_api_version_number => p_api_version_number
162 ,p_init_msg_list => p_init_msg_list
163 ,p_commit => p_commit
164 ,p_validation_level => p_validation_level
165
166 ,x_return_status => x_return_status
167 ,x_msg_count => x_msg_count
168 ,x_msg_data => x_msg_data
169
170 ,p_enty_attr_val_rec => l_tar_enty_attr_val_rec
171 ,x_object_version_number => l_object_version_number
172 );
173
174 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
175 RAISE FND_API.G_EXC_ERROR;
176 END IF;
177
178 l_count := l_count +1;
179 END LOOP;
180 -- Debug Message
181 IF (FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)) THEN
182 PVX_Utility_PVT.debug_message('Public API: '||l_full_name||' - Close Cursor');
183 END IF;
184 CLOSE c_get_Enty_Attr_Value;
185
186
187 if(l_count = 0) then
188 IF (FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)) THEN
189 FND_MESSAGE.set_name('PV', 'PV_API_MISSING_ENTITY');
190 FND_MESSAGE.set_token('MODE','Update');
191 FND_MESSAGE.set_token('ENTITY','Enty_Attr_Value');
192 FND_MESSAGE.set_token('ID','Entity:' || p_entity || ' entity id:' || p_entity_id || ' attribute id:' || p_attribute_id);
193 FND_MSG_PUB.add;
194 END IF;
195 RAISE FND_API.G_EXC_ERROR;
196 end if;
197
198
199
200 --
201 -- End of API body.
202 --
203
204 -- Standard check for p_commit
205 IF FND_API.to_Boolean( p_commit )
206 THEN
207 COMMIT WORK;
208 END IF;
209
210 -- Debug Message
211 IF (FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)) THEN
212 PVX_Utility_PVT.debug_message('Private API: '||l_full_name||' - end');
213 END IF;
214
215 -- Standard call to get message count and if count is 1, get message info.
216 FND_MSG_PUB.Count_And_Get (
217 p_count => x_msg_count
218 ,p_data => x_msg_data
219 );
220 EXCEPTION
221 /*
222 WHEN PVX_Utility_PVT.resource_locked THEN
223 x_return_status := FND_API.g_ret_sts_error;
224 PVX_Utility_PVT.Error_Message(p_message_name => 'PV_API_RESOURCE_LOCKED');
225 */
226 WHEN FND_API.G_EXC_ERROR THEN
227 ROLLBACK TO Update_Attr_Validations_PUB;
228 x_return_status := FND_API.G_RET_STS_ERROR;
229 -- Standard call to get message count and if count=1, get the message
230 FND_MSG_PUB.Count_And_Get (
231 p_encoded => FND_API.G_FALSE
232 ,p_count => x_msg_count
233 ,p_data => x_msg_data
234 );
235
236 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
237 ROLLBACK TO Update_Attr_Validations_PUB;
238 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
239 -- Standard call to get message count and if count=1, get the message
240 FND_MSG_PUB.Count_And_Get (
241 p_encoded => FND_API.G_FALSE
242 ,p_count => x_msg_count
243 ,p_data => x_msg_data
244 );
245
246 WHEN OTHERS THEN
247 ROLLBACK TO Update_Attr_Validations_PUB;
248 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
249 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
250 THEN
251 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
252 END IF;
253 -- Standard call to get message count and if count=1, get the message
254 FND_MSG_PUB.Count_And_Get (
255 p_encoded => FND_API.G_FALSE
256 ,p_count => x_msg_count
257 ,p_data => x_msg_data
258 );
259 End Update_Attr_Validations;
260
261
262
263
264 END PV_ENTY_ATTR_VALIDATIONS_PUB;