DBA Data[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
388          ,p_ATTRIBUTE7  => p_ENTYRLS_rec.ATTRIBUTE7
385          ,p_ATTRIBUTE4  => p_ENTYRLS_rec.ATTRIBUTE4
386          ,p_ATTRIBUTE5  => p_ENTYRLS_rec.ATTRIBUTE5
387          ,p_ATTRIBUTE6  => p_ENTYRLS_rec.ATTRIBUTE6
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 
532       AS_UTILITY_PVT.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API: ' || l_api_name || 'end');
529       -- Debug Message
530       IF (AS_DEBUG_HIGH_ON) THEN
531 
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
670  BEGIN
667     )
668 IS
669 l_api_name   CONSTANT VARCHAR2(30) := 'Validate_entyrls';
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;