[Home] [Help]
PACKAGE BODY: APPS.PV_ENTYRLS_PVT
Source
1 PACKAGE BODY PV_ENTYRLS_PVT as
2 /* $Header: pvrverab.pls 115.4 2002/12/19 05:54:09 dhii ship $ */
3 -- Start of Comments
4 -- Package name : PV_ENTYRLS_PVT
5 -- Purpose :
6 -- History :
7 -- NOTE :
8 -- End of Comments
9
10
11 G_PKG_NAME CONSTANT VARCHAR2(30):= 'PV_ENTYRLS_PVT';
12 G_FILE_NAME CONSTANT VARCHAR2(12) := 'pvrverab.pls';
13
14
15 -- Hint: Primary key needs to be returned.
16 AS_DEBUG_HIGH_ON boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_HIGH);
17 AS_DEBUG_LOW_ON boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW);
18 AS_DEBUG_MEDIUM_ON boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_MEDIUM);
19
20 PROCEDURE Create_entyrls(
21 P_Api_Version_Number IN NUMBER,
22 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
23 P_Commit IN VARCHAR2 := FND_API.G_FALSE,
24 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
25 P_Identity_Resource_Id IN NUMBER,
26 P_ENTYRLS_Rec IN PV_RULE_RECTYPE_PUB.ENTYRLS_Rec_Type
27 := PV_RULE_RECTYPE_PUB.G_MISS_ENTYRLS_REC,
28 X_ENTITY_RULE_APPLIED_ID OUT NOCOPY NUMBER,
29 X_Return_Status OUT NOCOPY VARCHAR2,
30 X_Msg_Count OUT NOCOPY NUMBER,
31 X_Msg_Data OUT NOCOPY VARCHAR2
32 )
33
34 IS
35 l_api_name CONSTANT VARCHAR2(30) := 'Create_entyrls';
36 l_api_version_number CONSTANT NUMBER := 2.0;
37 l_return_status_full VARCHAR2(1);
38 l_access_flag VARCHAR2(1);
39 BEGIN
40 -- Standard Start of API savepoint
41 SAVEPOINT CREATE_ENTYRLS_PVT;
42
43 -- Standard call to check for call compatibility.
44 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
45 p_api_version_number,
46 l_api_name,
47 G_PKG_NAME)
48 THEN
49 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
50 END IF;
51
52
53 -- Initialize message list if p_init_msg_list is set to TRUE.
54 IF FND_API.to_Boolean( p_init_msg_list )
55 THEN
56 FND_MSG_PUB.initialize;
57 END IF;
58
59
60 -- Debug Message
61 IF (AS_DEBUG_HIGH_ON) THEN
62
63 AS_UTILITY_PVT.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API: ' || l_api_name || 'start');
64 END IF;
65
66
67 -- Initialize API return status to SUCCESS
68 x_return_status := FND_API.G_RET_STS_SUCCESS;
69
70 --
71 -- API body
72 --
73 -- ******************************************************************
74 -- Validate Environment
75 -- ******************************************************************
76 IF FND_GLOBAL.User_Id IS NULL
77 THEN
78 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
79 THEN
80 FND_MESSAGE.Set_Name('PV', 'UT_CANNOT_GET_PROFILE_VALUE');
81 FND_MESSAGE.Set_Token('PROFILE', 'USER_ID', FALSE);
82 FND_MSG_PUB.ADD;
83 END IF;
84 RAISE FND_API.G_EXC_ERROR;
85 END IF;
86
87 -- Debug message
88 IF (AS_DEBUG_HIGH_ON) THEN
89
90 AS_UTILITY_PVT.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW,'Private API: Validate_entyrls');
91 END IF;
92
93 -- Invoke validation procedures
94 Validate_entyrls(
95 p_init_msg_list => FND_API.G_FALSE,
96 p_validation_level => p_validation_level,
97 p_validation_mode => AS_UTILITY_PVT.G_CREATE,
98 P_ENTYRLS_Rec => P_ENTYRLS_Rec,
99 x_return_status => x_return_status,
100 x_msg_count => x_msg_count,
101 x_msg_data => x_msg_data);
102
103 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
104 RAISE FND_API.G_EXC_ERROR;
105 END IF;
106
107 -- Hint: Add corresponding Master-Detail business logic here if necessary.
108
109 -- Debug Message
110 IF (AS_DEBUG_HIGH_ON) THEN
111
112 AS_UTILITY_PVT.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API: Calling create table handler');
113 END IF;
114
115 -- Invoke table handler(PV_ENTITY_RULES_APPLIED_PKG.Insert_Row)
116 PV_ENTITY_RULES_APPLIED_PKG.Insert_Row(
117 px_ENTITY_RULE_APPLIED_ID => x_ENTITY_RULE_APPLIED_ID
118 ,p_LAST_UPDATE_DATE => SYSDATE
119 ,p_LAST_UPDATED_BY => FND_GLOBAL.USER_ID
120 ,p_CREATION_DATE => SYSDATE
121 ,p_CREATED_BY => FND_GLOBAL.USER_ID
122 ,p_LAST_UPDATE_LOGIN => FND_GLOBAL.CONC_LOGIN_ID
123 ,p_OBJECT_VERSION_NUMBER => p_ENTYRLS_rec.OBJECT_VERSION_NUMBER
124 ,p_REQUEST_ID => p_ENTYRLS_rec.REQUEST_ID
125 ,p_PROGRAM_APPLICATION_ID => p_ENTYRLS_rec.PROGRAM_APPLICATION_ID
126 ,p_PROGRAM_ID => p_ENTYRLS_rec.PROGRAM_ID
127 ,p_PROGRAM_UPDATE_DATE => p_ENTYRLS_rec.PROGRAM_UPDATE_DATE
128 ,p_ENTITY => p_ENTYRLS_rec.ENTITY
129 ,p_ENTITY_ID => p_ENTYRLS_rec.ENTITY_ID
130 ,p_PROCESS_RULE_ID => p_ENTYRLS_rec.PROCESS_RULE_ID
131 ,p_PARENT_PROCESS_RULE_ID => p_ENTYRLS_rec.PARENT_PROCESS_RULE_ID
132 ,p_LATEST_FLAG => p_ENTYRLS_rec.LATEST_FLAG
133 ,p_ACTION_VALUE => p_ENTYRLS_rec.ACTION_VALUE
134 ,p_PROCESS_TYPE => p_ENTYRLS_rec.PROCESS_TYPE
135 ,p_WINNING_RULE_FLAG => p_ENTYRLS_rec.WINNING_RULE_FLAG
136 ,p_ENTITY_DETAIL => p_ENTYRLS_rec.ENTITY_DETAIL
137 ,p_ATTRIBUTE_CATEGORY => p_ENTYRLS_rec.ATTRIBUTE_CATEGORY
138 ,p_ATTRIBUTE1 => p_ENTYRLS_rec.ATTRIBUTE1
139 ,p_ATTRIBUTE2 => p_ENTYRLS_rec.ATTRIBUTE2
140 ,p_ATTRIBUTE3 => p_ENTYRLS_rec.ATTRIBUTE3
141 ,p_ATTRIBUTE4 => p_ENTYRLS_rec.ATTRIBUTE4
142 ,p_ATTRIBUTE5 => p_ENTYRLS_rec.ATTRIBUTE5
143 ,p_ATTRIBUTE6 => p_ENTYRLS_rec.ATTRIBUTE6
144 ,p_ATTRIBUTE7 => p_ENTYRLS_rec.ATTRIBUTE7
145 ,p_ATTRIBUTE8 => p_ENTYRLS_rec.ATTRIBUTE8
146 ,p_ATTRIBUTE9 => p_ENTYRLS_rec.ATTRIBUTE9
147 ,p_ATTRIBUTE10 => p_ENTYRLS_rec.ATTRIBUTE10
148 ,p_ATTRIBUTE11 => p_ENTYRLS_rec.ATTRIBUTE11
149 ,p_ATTRIBUTE12 => p_ENTYRLS_rec.ATTRIBUTE12
150 ,p_ATTRIBUTE13 => p_ENTYRLS_rec.ATTRIBUTE13
151 ,p_ATTRIBUTE14 => p_ENTYRLS_rec.ATTRIBUTE14
152 ,p_ATTRIBUTE15 => p_ENTYRLS_rec.ATTRIBUTE15
153 ,p_PROCESS_STATUS => p_ENTYRLS_rec.PROCESS_STATUS);
154 -- Hint: Primary key should be returned.
155 -- x_ENTITY_RULE_APPLIED_ID := px_ENTITY_RULE_APPLIED_ID;
156
157 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
158 RAISE FND_API.G_EXC_ERROR;
159 END IF;
160
161 --
162 -- End of API body
163 --
164
165 -- Standard check for p_commit
166 IF FND_API.to_Boolean( p_commit )
167 THEN
168 COMMIT WORK;
169 END IF;
170
171
172 -- Debug Message
173 IF (AS_DEBUG_HIGH_ON) THEN
174
175 AS_UTILITY_PVT.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API: ' || l_api_name || 'end');
176 END IF;
177
178
179 -- Standard call to get message count and if count is 1, get message info.
180 FND_MSG_PUB.Count_And_Get
181 ( p_count => x_msg_count,
182 p_data => x_msg_data
183 );
184
185 EXCEPTION
186 WHEN FND_API.G_EXC_ERROR THEN
187 AS_UTILITY_PVT.HANDLE_EXCEPTIONS(
188 P_API_NAME => L_API_NAME
189 ,P_PKG_NAME => G_PKG_NAME
190 ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
191 ,P_PACKAGE_TYPE => AS_UTILITY_PVT.G_PVT
192 ,X_MSG_COUNT => X_MSG_COUNT
193 ,X_MSG_DATA => X_MSG_DATA
194 ,X_RETURN_STATUS => X_RETURN_STATUS);
195
196 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
197 AS_UTILITY_PVT.HANDLE_EXCEPTIONS(
198 P_API_NAME => L_API_NAME
199 ,P_PKG_NAME => G_PKG_NAME
200 ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
201 ,P_PACKAGE_TYPE => AS_UTILITY_PVT.G_PVT
202 ,X_MSG_COUNT => X_MSG_COUNT
203 ,X_MSG_DATA => X_MSG_DATA
204 ,X_RETURN_STATUS => X_RETURN_STATUS);
205
206 WHEN OTHERS THEN
207 AS_UTILITY_PVT.HANDLE_EXCEPTIONS(
208 P_API_NAME => L_API_NAME
209 ,P_PKG_NAME => G_PKG_NAME
210 ,P_EXCEPTION_LEVEL => AS_UTILITY_PVT.G_EXC_OTHERS
211 ,P_SQLCODE => SQLCODE
212 ,P_SQLERRM => SQLERRM
213 ,P_PACKAGE_TYPE => AS_UTILITY_PVT.G_PVT
214 ,X_MSG_COUNT => X_MSG_COUNT
215 ,X_MSG_DATA => X_MSG_DATA
216 ,X_RETURN_STATUS => X_RETURN_STATUS);
217 End Create_entyrls;
218
219
220 -- Hint: Add corresponding update detail table procedures if it's master-detail relationship.
221 PROCEDURE Update_entyrls(
222 P_Api_Version_Number IN NUMBER,
223 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
224 P_Commit IN VARCHAR2 := FND_API.G_FALSE,
225 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
226 P_Identity_Resource_Id IN NUMBER,
227 P_ENTYRLS_Rec IN PV_RULE_RECTYPE_PUB.ENTYRLS_Rec_Type,
228 X_Return_Status OUT NOCOPY VARCHAR2,
229 X_Msg_Count OUT NOCOPY NUMBER,
230 X_Msg_Data OUT NOCOPY VARCHAR2
231 )
232
233 IS
234 Cursor C_Get_entyrls(pc_ENTITY_RULE_APPLIED_ID Number) IS
235 Select object_version_number
236 From PV_ENTITY_RULES_APPLIED
237 where entity_rule_applied_id = pc_entity_rule_applied_id
238 For Update NOWAIT;
239
240 l_api_name CONSTANT VARCHAR2(30) := 'Update_entyrls';
241 l_api_version_number CONSTANT NUMBER := 2.0;
242 -- Local Variables
243 l_ref_ENTYRLS_rec PV_RULE_RECTYPE_PUB.ENTYRLS_Rec_Type;
244 l_tar_ENTYRLS_rec PV_RULE_RECTYPE_PUB.ENTYRLS_Rec_Type := P_ENTYRLS_Rec;
245 l_rowid ROWID;
246 BEGIN
247 -- Standard Start of API savepoint
248 SAVEPOINT UPDATE_ENTYRLS_PVT;
249
250 -- Standard call to check for call compatibility.
251 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
252 p_api_version_number,
253 l_api_name,
254 G_PKG_NAME)
255 THEN
256 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
257 END IF;
258
259
260 -- Initialize message list if p_init_msg_list is set to TRUE.
261 IF FND_API.to_Boolean( p_init_msg_list )
262 THEN
263 FND_MSG_PUB.initialize;
264 END IF;
265
266
267 -- Debug Message
268 IF (AS_DEBUG_HIGH_ON) THEN
269
270 AS_UTILITY_PVT.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API: ' || l_api_name || 'start');
271 END IF;
272
273
274 -- Initialize API return status to SUCCESS
275 x_return_status := FND_API.G_RET_STS_SUCCESS;
276
277 --
278 -- Api body
279 --
280
281 -- Debug Message
282 IF (AS_DEBUG_HIGH_ON) THEN
283
284 AS_UTILITY_PVT.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW,'Private API: - Open Cursor to Select');
285 END IF;
286
287 Open C_Get_entyrls( l_tar_ENTYRLS_rec.ENTITY_RULE_APPLIED_ID);
288
289 Fetch C_Get_entyrls into
290 l_ref_ENTYRLS_rec.object_version_number;
291
292 If ( C_Get_entyrls%NOTFOUND) Then
293 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
294 THEN
295 FND_MESSAGE.Set_Name('PV', 'API_MISSING_UPDATE_TARGET');
296 FND_MESSAGE.Set_Token ('INFO', 'entyrls', FALSE);
297 FND_MSG_PUB.Add;
298 END IF;
299 Close C_Get_entyrls;
300 raise FND_API.G_EXC_ERROR;
301 END IF;
302 -- Debug Message
303 IF (AS_DEBUG_HIGH_ON) THEN
304
305 AS_UTILITY_PVT.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW,'Private API: - Close Cursor');
306 END IF;
307 Close C_Get_entyrls;
308
309
310 If (l_tar_ENTYRLS_rec.object_version_number is NULL or
311 l_tar_ENTYRLS_rec.object_version_number = FND_API.G_MISS_NUM ) Then
312 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
313 THEN
314 FND_MESSAGE.Set_Name('PV', 'API_MISSING_ID');
315 FND_MESSAGE.Set_Token('COLUMN', 'object_version_number', FALSE);
316 FND_MSG_PUB.ADD;
317 END IF;
318 raise FND_API.G_EXC_ERROR;
319 End if;
320 -- Check Whether record has been changed by someone else
321 If (l_tar_ENTYRLS_rec.object_version_number <> l_ref_ENTYRLS_rec.object_version_number) Then
322 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
323 THEN
324 FND_MESSAGE.Set_Name('PV', 'API_RECORD_CHANGED');
325 FND_MESSAGE.Set_Token('INFO', 'entyrls', FALSE);
326 FND_MSG_PUB.ADD;
327 END IF;
328 raise FND_API.G_EXC_ERROR;
329 End if;
330
331 -- Debug message
332 IF (AS_DEBUG_HIGH_ON) THEN
333
334 AS_UTILITY_PVT.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW,'Private API: Validate_entyrls');
335 END IF;
336
337 -- Invoke validation procedures
338 Validate_entyrls(
339 p_init_msg_list => FND_API.G_FALSE,
340 p_validation_level => p_validation_level,
341 p_validation_mode => AS_UTILITY_PVT.G_UPDATE,
342 P_ENTYRLS_Rec => P_ENTYRLS_Rec,
343 x_return_status => x_return_status,
344 x_msg_count => x_msg_count,
345 x_msg_data => x_msg_data);
346
347 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
348 RAISE FND_API.G_EXC_ERROR;
349 END IF;
350
351 -- Hint: Add corresponding Master-Detail business logic here if necessary.
352
353 -- Debug Message
354 IF (AS_DEBUG_HIGH_ON) THEN
355
356 AS_UTILITY_PVT.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API: Calling update table handler');
357 END IF;
358
359 -- Invoke table handler(PV_ENTITY_RULES_APPLIED_PKG.Update_Row)
360 PV_ENTITY_RULES_APPLIED_PKG.Update_Row(
361 p_ENTITY_RULE_APPLIED_ID => p_ENTYRLS_rec.ENTITY_RULE_APPLIED_ID
362 ,p_LAST_UPDATE_DATE => SYSDATE
363 ,p_LAST_UPDATED_BY => FND_GLOBAL.USER_ID
364 ,p_CREATION_DATE => FND_API.G_MISS_DATE
365 ,p_CREATED_BY => FND_API.G_MISS_NUM
366 ,p_LAST_UPDATE_LOGIN => FND_GLOBAL.CONC_LOGIN_ID
367 ,p_OBJECT_VERSION_NUMBER => p_ENTYRLS_rec.OBJECT_VERSION_NUMBER
368 ,p_REQUEST_ID => p_ENTYRLS_rec.REQUEST_ID
369 ,p_PROGRAM_APPLICATION_ID => p_ENTYRLS_rec.PROGRAM_APPLICATION_ID
370 ,p_PROGRAM_ID => p_ENTYRLS_rec.PROGRAM_ID
371 ,p_PROGRAM_UPDATE_DATE => p_ENTYRLS_rec.PROGRAM_UPDATE_DATE
372 ,p_ENTITY => p_ENTYRLS_rec.ENTITY
373 ,p_ENTITY_ID => p_ENTYRLS_rec.ENTITY_ID
374 ,p_PROCESS_RULE_ID => p_ENTYRLS_rec.PROCESS_RULE_ID
375 ,p_PARENT_PROCESS_RULE_ID => p_ENTYRLS_rec.PARENT_PROCESS_RULE_ID
376 ,p_LATEST_FLAG => p_ENTYRLS_rec.LATEST_FLAG
377 ,p_ACTION_VALUE => p_ENTYRLS_rec.ACTION_VALUE
378 ,p_PROCESS_TYPE => p_ENTYRLS_rec.PROCESS_TYPE
379 ,p_WINNING_RULE_FLAG => p_ENTYRLS_rec.WINNING_RULE_FLAG
380 ,p_ENTITY_DETAIL => p_ENTYRLS_rec.ENTITY_DETAIL
381 ,p_ATTRIBUTE_CATEGORY => p_ENTYRLS_rec.ATTRIBUTE_CATEGORY
382 ,p_ATTRIBUTE1 => p_ENTYRLS_rec.ATTRIBUTE1
383 ,p_ATTRIBUTE2 => p_ENTYRLS_rec.ATTRIBUTE2
384 ,p_ATTRIBUTE3 => p_ENTYRLS_rec.ATTRIBUTE3
385 ,p_ATTRIBUTE4 => p_ENTYRLS_rec.ATTRIBUTE4
386 ,p_ATTRIBUTE5 => p_ENTYRLS_rec.ATTRIBUTE5
387 ,p_ATTRIBUTE6 => p_ENTYRLS_rec.ATTRIBUTE6
388 ,p_ATTRIBUTE7 => p_ENTYRLS_rec.ATTRIBUTE7
389 ,p_ATTRIBUTE8 => p_ENTYRLS_rec.ATTRIBUTE8
390 ,p_ATTRIBUTE9 => p_ENTYRLS_rec.ATTRIBUTE9
391 ,p_ATTRIBUTE10 => p_ENTYRLS_rec.ATTRIBUTE10
392 ,p_ATTRIBUTE11 => p_ENTYRLS_rec.ATTRIBUTE11
393 ,p_ATTRIBUTE12 => p_ENTYRLS_rec.ATTRIBUTE12
394 ,p_ATTRIBUTE13 => p_ENTYRLS_rec.ATTRIBUTE13
395 ,p_ATTRIBUTE14 => p_ENTYRLS_rec.ATTRIBUTE14
396 ,p_ATTRIBUTE15 => p_ENTYRLS_rec.ATTRIBUTE15
397 ,p_PROCESS_STATUS => p_ENTYRLS_rec.PROCESS_STATUS);
398 --
399 -- End of API body.
400 --
401
402 -- Standard check for p_commit
403 IF FND_API.to_Boolean( p_commit )
404 THEN
405 COMMIT WORK;
406 END IF;
407
408
409 -- Debug Message
410 IF (AS_DEBUG_HIGH_ON) THEN
411
412 AS_UTILITY_PVT.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API: ' || l_api_name || 'end');
413 END IF;
414
415
416 -- Standard call to get message count and if count is 1, get message info.
417 FND_MSG_PUB.Count_And_Get
418 ( p_count => x_msg_count,
419 p_data => x_msg_data
420 );
421
422 EXCEPTION
423 WHEN FND_API.G_EXC_ERROR THEN
424 AS_UTILITY_PVT.HANDLE_EXCEPTIONS(
425 P_API_NAME => L_API_NAME
426 ,P_PKG_NAME => G_PKG_NAME
427 ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
428 ,P_PACKAGE_TYPE => AS_UTILITY_PVT.G_PVT
429 ,X_MSG_COUNT => X_MSG_COUNT
430 ,X_MSG_DATA => X_MSG_DATA
431 ,X_RETURN_STATUS => X_RETURN_STATUS);
432
433 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
434 AS_UTILITY_PVT.HANDLE_EXCEPTIONS(
435 P_API_NAME => L_API_NAME
436 ,P_PKG_NAME => G_PKG_NAME
437 ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
438 ,P_PACKAGE_TYPE => AS_UTILITY_PVT.G_PVT
439 ,X_MSG_COUNT => X_MSG_COUNT
440 ,X_MSG_DATA => X_MSG_DATA
441 ,X_RETURN_STATUS => X_RETURN_STATUS);
442
443 WHEN OTHERS THEN
444 AS_UTILITY_PVT.HANDLE_EXCEPTIONS(
445 P_API_NAME => L_API_NAME
446 ,P_PKG_NAME => G_PKG_NAME
447 ,P_EXCEPTION_LEVEL => AS_UTILITY_PVT.G_EXC_OTHERS
448 ,P_SQLCODE => SQLCODE
449 ,P_SQLERRM => SQLERRM
450 ,P_PACKAGE_TYPE => AS_UTILITY_PVT.G_PVT
451 ,X_MSG_COUNT => X_MSG_COUNT
452 ,X_MSG_DATA => X_MSG_DATA
453 ,X_RETURN_STATUS => X_RETURN_STATUS);
454 End Update_entyrls;
455
456
457 -- Hint: Add corresponding delete detail table procedures if it's master-detail relationship.
458 -- The Master delete procedure may not be needed depends on different business requirements.
459 PROCEDURE Delete_entyrls(
460 P_Api_Version_Number IN NUMBER,
461 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
462 P_Commit IN VARCHAR2 := FND_API.G_FALSE,
463 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
464 P_Identity_Resource_Id IN NUMBER,
465 P_ENTYRLS_Rec IN PV_RULE_RECTYPE_PUB.ENTYRLS_Rec_Type,
466 X_Return_Status OUT NOCOPY VARCHAR2,
467 X_Msg_Count OUT NOCOPY NUMBER,
468 X_Msg_Data OUT NOCOPY VARCHAR2
469 )
470
471 IS
472 l_api_name CONSTANT VARCHAR2(30) := 'Delete_entyrls';
473 l_api_version_number CONSTANT NUMBER := 2.0;
474 BEGIN
475 -- Standard Start of API savepoint
476 SAVEPOINT DELETE_ENTYRLS_PVT;
477
478 -- Standard call to check for call compatibility.
479 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
480 p_api_version_number,
481 l_api_name,
482 G_PKG_NAME)
483 THEN
484 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
485 END IF;
486
487
488 -- Initialize message list if p_init_msg_list is set to TRUE.
489 IF FND_API.to_Boolean( p_init_msg_list )
490 THEN
491 FND_MSG_PUB.initialize;
492 END IF;
493
494
495 -- Debug Message
496 IF (AS_DEBUG_HIGH_ON) THEN
497
498 AS_UTILITY_PVT.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API: ' || l_api_name || 'start');
499 END IF;
500
501
502 -- Initialize API return status to SUCCESS
503 x_return_status := FND_API.G_RET_STS_SUCCESS;
504
505 --
506 -- Api body
507 --
508
509 -- Debug Message
510 IF (AS_DEBUG_HIGH_ON) THEN
511
512 AS_UTILITY_PVT.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API: Calling delete table handler');
513 END IF;
514
515 -- Invoke table handler(PV_ENTITY_RULES_APPLIED_PKG.Delete_Row)
516 PV_ENTITY_RULES_APPLIED_PKG.Delete_Row(
517 p_ENTITY_RULE_APPLIED_ID => p_ENTYRLS_rec.ENTITY_RULE_APPLIED_ID);
518 --
519 -- End of API body
520 --
521
522 -- Standard check for p_commit
523 IF FND_API.to_Boolean( p_commit )
524 THEN
525 COMMIT WORK;
526 END IF;
527
528
529 -- Debug Message
530 IF (AS_DEBUG_HIGH_ON) THEN
531
532 AS_UTILITY_PVT.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API: ' || l_api_name || 'end');
533 END IF;
534
535
536 -- Standard call to get message count and if count is 1, get message info.
537 FND_MSG_PUB.Count_And_Get
538 ( p_count => x_msg_count,
539 p_data => x_msg_data
540 );
541
542 EXCEPTION
543 WHEN FND_API.G_EXC_ERROR THEN
544 AS_UTILITY_PVT.HANDLE_EXCEPTIONS(
545 P_API_NAME => L_API_NAME
546 ,P_PKG_NAME => G_PKG_NAME
547 ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
548 ,P_PACKAGE_TYPE => AS_UTILITY_PVT.G_PVT
549 ,X_MSG_COUNT => X_MSG_COUNT
550 ,X_MSG_DATA => X_MSG_DATA
551 ,X_RETURN_STATUS => X_RETURN_STATUS);
552
553 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
554 AS_UTILITY_PVT.HANDLE_EXCEPTIONS(
555 P_API_NAME => L_API_NAME
556 ,P_PKG_NAME => G_PKG_NAME
557 ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
558 ,P_PACKAGE_TYPE => AS_UTILITY_PVT.G_PVT
559 ,X_MSG_COUNT => X_MSG_COUNT
560 ,X_MSG_DATA => X_MSG_DATA
561 ,X_RETURN_STATUS => X_RETURN_STATUS);
562
563 WHEN OTHERS THEN
564 AS_UTILITY_PVT.HANDLE_EXCEPTIONS(
565 P_API_NAME => L_API_NAME
566 ,P_PKG_NAME => G_PKG_NAME
567 ,P_EXCEPTION_LEVEL => AS_UTILITY_PVT.G_EXC_OTHERS
568 ,P_SQLCODE => SQLCODE
569 ,P_SQLERRM => SQLERRM
570 ,P_PACKAGE_TYPE => AS_UTILITY_PVT.G_PVT
571 ,X_MSG_COUNT => X_MSG_COUNT
572 ,X_MSG_DATA => X_MSG_DATA
573 ,X_RETURN_STATUS => X_RETURN_STATUS);
574 End Delete_entyrls;
575
576
577 -- Item-level validation procedures
578 PROCEDURE Validate_ENTY_RULE_APPLIED_ID (
579 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
580 P_Validation_mode IN VARCHAR2,
581 P_ENTITY_RULE_APPLIED_ID IN NUMBER,
582 X_Return_Status OUT NOCOPY VARCHAR2,
583 X_Msg_Count OUT NOCOPY NUMBER,
584 X_Msg_Data OUT NOCOPY VARCHAR2
585 )
586 IS
587 CURSOR C_entity_rule_applied_exists (pc_entity_rule_applied_id NUMBER) IS
588 SELECT 'X'
589 FROM pv_entity_rules_applied
590 WHERE entity_rule_applied_id = pc_entity_rule_applied_id;
591
592 l_val VARCHAR2(1);
593 BEGIN
594
595 -- Initialize message list if p_init_msg_list is set to TRUE.
596 IF FND_API.to_Boolean( p_init_msg_list )
597 THEN
598 FND_MSG_PUB.initialize;
599 END IF;
600
601
602 -- Initialize API return status to SUCCESS
603 x_return_status := FND_API.G_RET_STS_SUCCESS;
604
605 IF(p_validation_mode = AS_UTILITY_PVT.G_CREATE)
606 THEN
607 IF (p_entity_rule_applied_id IS NOT NULL) AND
608 (p_entity_rule_applied_id <> FND_API.G_MISS_NUM)
609 THEN
610 AS_UTILITY_PVT.Set_Message(
611 p_msg_level => FND_MSG_PUB.G_MSG_LVL_ERROR,
612 p_msg_name => 'API_INVALID_ID',
613 p_token1 => 'ENTITY_RULE_APPLIED_ID',
614 p_token1_value => p_entity_rule_applied_id);
615
616 x_return_status := FND_API.G_RET_STS_ERROR;
617 END IF;
618
619 ELSIF(p_validation_mode = AS_UTILITY_PVT.G_UPDATE)
620 THEN
621 -- validate NOT NULL column
622 IF (p_entity_rule_applied_id IS NULL) OR
623 (p_entity_rule_applied_id = FND_API.G_MISS_NUM)
624 THEN
625 AS_UTILITY_PVT.Set_Message(
626 p_msg_level => FND_MSG_PUB.G_MSG_LVL_ERROR,
627 p_msg_name => 'API_MISSING_LEAD_ID');
628
629 x_return_status := FND_API.G_RET_STS_ERROR;
630 ELSE
631 OPEN C_entity_rule_applied_exists (p_entity_rule_applied_id);
632 FETCH C_entity_rule_applied_exists into l_val;
633
634 IF C_entity_rule_applied_exists%NOTFOUND
635 THEN
636 AS_UTILITY_PVT.Set_Message(
637 p_msg_level => FND_MSG_PUB.G_MSG_LVL_ERROR,
638 p_msg_name => 'API_INVALID_ID',
639 p_token1 => 'ENTITY_RULE_APPLIED_ID',
640 p_token1_value => p_entity_rule_applied_id );
641
642 x_return_status := FND_API.G_RET_STS_ERROR;
643 END IF;
644
645 CLOSE C_entity_rule_applied_exists;
646 END IF;
647 END IF;
648
649
650 -- Standard call to get message count and if count is 1, get message info.
651 FND_MSG_PUB.Count_And_Get
652 ( p_count => x_msg_count,
653 p_data => x_msg_data
654 );
655
656 END Validate_ENTY_RULE_APPLIED_ID;
657
658
659 PROCEDURE Validate_entyrls(
660 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
661 P_Validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
662 P_Validation_mode IN VARCHAR2,
663 P_ENTYRLS_Rec IN PV_RULE_RECTYPE_PUB.ENTYRLS_Rec_Type,
664 X_Return_Status OUT NOCOPY VARCHAR2,
665 X_Msg_Count OUT NOCOPY NUMBER,
666 X_Msg_Data OUT NOCOPY VARCHAR2
667 )
668 IS
669 l_api_name CONSTANT VARCHAR2(30) := 'Validate_entyrls';
670 BEGIN
671
672 -- Debug Message
673 IF (AS_DEBUG_HIGH_ON) THEN
674
675 AS_UTILITY_PVT.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API: ' || l_api_name || 'start');
676 END IF;
677
678
679 -- Initialize API return status to SUCCESS
680 x_return_status := FND_API.G_RET_STS_SUCCESS;
681
682 IF (p_validation_level >= AS_UTILITY_PUB.G_VALID_LEVEL_ITEM) THEN
683
684 Validate_ENTY_RULE_APPLIED_ID(
685 p_init_msg_list => FND_API.G_FALSE,
686 p_validation_mode => p_validation_mode,
687 p_ENTITY_RULE_APPLIED_ID => P_ENTYRLS_Rec.ENTITY_RULE_APPLIED_ID,
688 x_return_status => x_return_status,
689 x_msg_count => x_msg_count,
690 x_msg_data => x_msg_data);
691
692 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
693 raise FND_API.G_EXC_ERROR;
694 END IF;
695
696 pv_common_checks_pvt.Validate_OBJECT_VERSION_NUMBER(
697 p_init_msg_list => FND_API.G_FALSE,
698 p_validation_mode => p_validation_mode,
699 p_OBJECT_VERSION_NUMBER => P_ENTYRLS_Rec.OBJECT_VERSION_NUMBER,
700 x_return_status => x_return_status,
701 x_msg_count => x_msg_count,
702 x_msg_data => x_msg_data);
703
704 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
705 raise FND_API.G_EXC_ERROR;
706 END IF;
707
708 pv_common_checks_pvt.Validate_Lookup(
709 p_init_msg_list => FND_API.G_FALSE,
710 p_validation_mode => p_validation_mode,
711 p_TABLE_NAME => 'PV_ENTITY_RULES_APPLIED',
712 p_COLUMN_NAME => 'ENTITY',
713 p_lookup_type => 'PV_RULE_APPLIED_ENTITY_TYPE',
714 p_lookup_code => P_ENTYRLS_Rec.ENTITY,
715 x_return_status => x_return_status,
716 x_msg_count => x_msg_count,
717 x_msg_data => x_msg_data);
718
719 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
720 raise FND_API.G_EXC_ERROR;
721 END IF;
722
723 pv_common_checks_pvt.Validate_PROCESS_RULE_ID(
724 p_init_msg_list => FND_API.G_FALSE,
725 p_validation_mode => p_validation_mode,
726 p_PROCESS_RULE_ID => P_ENTYRLS_Rec.PROCESS_RULE_ID,
727 x_return_status => x_return_status,
728 x_msg_count => x_msg_count,
729 x_msg_data => x_msg_data);
730
731 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
732 raise FND_API.G_EXC_ERROR;
733 END IF;
734
735 pv_common_checks_pvt.Validate_PROCESS_RULE_ID(
736 p_init_msg_list => FND_API.G_FALSE,
737 p_validation_mode => p_validation_mode,
738 p_PROCESS_RULE_ID => P_ENTYRLS_Rec.PARENT_PROCESS_RULE_ID,
739 x_return_status => x_return_status,
740 x_msg_count => x_msg_count,
741 x_msg_data => x_msg_data);
742
743 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
744 raise FND_API.G_EXC_ERROR;
745 END IF;
746
747 pv_common_checks_pvt.Validate_Lookup(
748 p_init_msg_list => FND_API.G_FALSE,
749 p_validation_mode => p_validation_mode,
750 p_TABLE_NAME => 'PV_ENTITY_RULES_APPLIED',
751 p_COLUMN_NAME => 'PROCESS_TYPE',
752 p_lookup_type => 'PV_PROCESS_TYPE',
753 p_lookup_code => P_ENTYRLS_Rec.PROCESS_TYPE,
754 x_return_status => x_return_status,
755 x_msg_count => x_msg_count,
756 x_msg_data => x_msg_data);
757
758 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
759 raise FND_API.G_EXC_ERROR;
760 END IF;
761
762 pv_common_checks_pvt.Validate_FLAG(
763 p_init_msg_list => FND_API.G_FALSE,
764 p_validation_mode => p_validation_mode,
765 p_FLAG => P_ENTYRLS_Rec.WINNING_RULE_FLAG,
766 x_return_status => x_return_status,
767 x_msg_count => x_msg_count,
768 x_msg_data => x_msg_data);
769
770 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
771 raise FND_API.G_EXC_ERROR;
772 END IF;
773
774 pv_common_checks_pvt.Validate_FLAG(
775 p_init_msg_list => FND_API.G_FALSE,
776 p_validation_mode => p_validation_mode,
777 p_FLAG => P_ENTYRLS_Rec.LATEST_FLAG,
778 x_return_status => x_return_status,
779 x_msg_count => x_msg_count,
780 x_msg_data => x_msg_data);
781
782 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
783 raise FND_API.G_EXC_ERROR;
784 END IF;
785
786 pv_common_checks_pvt.Validate_Lookup(
787 p_init_msg_list => FND_API.G_FALSE,
788 p_validation_mode => p_validation_mode,
789 p_TABLE_NAME => 'PV_ENTITY_RULES_APPLIED',
790 p_COLUMN_NAME => 'PROCESS_STATUS',
791 p_lookup_type => 'PV_RULES_APPLIED_STATUS',
792 p_lookup_code => P_ENTYRLS_Rec.PROCESS_STATUS,
793 x_return_status => x_return_status,
794 x_msg_count => x_msg_count,
795 x_msg_data => x_msg_data);
796
797 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
798 raise FND_API.G_EXC_ERROR;
799 END IF;
800
801 END IF;
802
803 IF (p_validation_level >= AS_UTILITY_PUB.G_VALID_LEVEL_RECORD) THEN
804 -- Hint: Inter-field level validation can be added here
805 -- invoke record level validation procedures
806 NULL;
807 END IF;
808
809 IF (p_validation_level >= AS_UTILITY_PUB.G_VALID_LEVEL_INTER_RECORD) THEN
810 -- invoke inter-record level validation procedures
811 NULL;
812 END IF;
813
814 IF (p_validation_level >= AS_UTILITY_PUB.G_VALID_LEVEL_INTER_ENTITY) THEN
815 -- invoke inter-entity level validation procedures
816 NULL;
817 END IF;
818
819
820 -- Debug Message
821 IF (AS_DEBUG_HIGH_ON) THEN
822
823 AS_UTILITY_PVT.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API: ' || l_api_name || 'end');
824 END IF;
825
826 END Validate_entyrls;
827
828 End PV_ENTYRLS_PVT;