DBA Data[Home] [Help]

PACKAGE BODY: APPS.PV_ENTYATTMAP_PVT

Source


1 PACKAGE BODY PV_ENTYATTMAP_PVT as
2 /* $Header: pvrveamb.pls 120.0 2005/05/27 16:09:55 appldev noship $ */
3 -- Start of Comments
4 -- Package name     : PV_ENTYATTMAP_PVT
5 -- Purpose          :
6 -- History          :
7 -- NOTE             :
8 -- End of Comments
9 
10 
11 G_PKG_NAME CONSTANT VARCHAR2(30):= 'PV_ENTYATTMAP_PVT';
12 G_FILE_NAME CONSTANT VARCHAR2(12) := 'pvrveamb.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_entyattmap(
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_ENTYATTMAP_Rec             IN   PV_RULE_RECTYPE_PUB.ENTYATTMAP_Rec_Type
27                                    := PV_RULE_RECTYPE_PUB.G_MISS_ENTYATTMAP_REC,
28     X_MAPPING_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_entyattmap';
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_ENTYATTMAP_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_entyattmap');
91       END IF;
92 
93       -- Invoke validation procedures
94       Validate_entyattmap(
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_ENTYATTMAP_Rec   => P_ENTYATTMAP_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_ATTR_MAPPINGS_PKG.Insert_Row)
116       PV_ENTITY_ATTR_MAPPINGS_PKG.Insert_Row(
117           px_MAPPING_ID  => x_MAPPING_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_ENTYATTMAP_rec.OBJECT_VERSION_NUMBER
124          ,p_REQUEST_ID  => p_ENTYATTMAP_rec.REQUEST_ID
125          ,p_PROGRAM_APPLICATION_ID  => p_ENTYATTMAP_rec.PROGRAM_APPLICATION_ID
126          ,p_PROGRAM_ID  => p_ENTYATTMAP_rec.PROGRAM_ID
127          ,p_PROGRAM_UPDATE_DATE  => p_ENTYATTMAP_rec.PROGRAM_UPDATE_DATE
128          ,p_PROCESS_RULE_ID  => p_ENTYATTMAP_rec.PROCESS_RULE_ID
129          ,p_SOURCE_ATTR_TYPE  => p_ENTYATTMAP_rec.SOURCE_ATTR_TYPE
130          ,p_SOURCE_ATTR_ID  => p_ENTYATTMAP_rec.SOURCE_ATTR_ID
131          ,p_TARGET_ATTR_TYPE  => p_ENTYATTMAP_rec.TARGET_ATTR_TYPE
132          ,p_TARGET_ATTR_ID  => p_ENTYATTMAP_rec.TARGET_ATTR_ID
133          ,p_OPERATOR  => p_ENTYATTMAP_rec.OPERATOR
134          ,p_ATTRIBUTE_CATEGORY  => p_ENTYATTMAP_rec.ATTRIBUTE_CATEGORY
135          ,p_ATTRIBUTE1  => p_ENTYATTMAP_rec.ATTRIBUTE1
136          ,p_ATTRIBUTE2  => p_ENTYATTMAP_rec.ATTRIBUTE2
137          ,p_ATTRIBUTE3  => p_ENTYATTMAP_rec.ATTRIBUTE3
138          ,p_ATTRIBUTE4  => p_ENTYATTMAP_rec.ATTRIBUTE4
139          ,p_ATTRIBUTE5  => p_ENTYATTMAP_rec.ATTRIBUTE5
140          ,p_ATTRIBUTE6  => p_ENTYATTMAP_rec.ATTRIBUTE6
141          ,p_ATTRIBUTE7  => p_ENTYATTMAP_rec.ATTRIBUTE7
142          ,p_ATTRIBUTE8  => p_ENTYATTMAP_rec.ATTRIBUTE8
143          ,p_ATTRIBUTE9  => p_ENTYATTMAP_rec.ATTRIBUTE9
144          ,p_ATTRIBUTE10  => p_ENTYATTMAP_rec.ATTRIBUTE10
145          ,p_ATTRIBUTE11  => p_ENTYATTMAP_rec.ATTRIBUTE11
146          ,p_ATTRIBUTE12  => p_ENTYATTMAP_rec.ATTRIBUTE12
147          ,p_ATTRIBUTE13  => p_ENTYATTMAP_rec.ATTRIBUTE13
148          ,p_ATTRIBUTE14  => p_ENTYATTMAP_rec.ATTRIBUTE14
149          ,p_ATTRIBUTE15  => p_ENTYATTMAP_rec.ATTRIBUTE15
150 );
151 
152           IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
153               RAISE FND_API.G_EXC_ERROR;
154           END IF;
155 
156       --
157       -- End of API body
158       --
159 
160       -- Standard check for p_commit
161       IF FND_API.to_Boolean( p_commit )
162       THEN
163           COMMIT WORK;
164       END IF;
165 
166 
167       -- Debug Message
168       IF (AS_DEBUG_HIGH_ON) THEN
169 
170       AS_UTILITY_PVT.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API: ' || l_api_name || 'end');
171       END IF;
172 
173 
174       -- Standard call to get message count and if count is 1, get message info.
175       FND_MSG_PUB.Count_And_Get
176       (  p_count          =>   x_msg_count,
177          p_data           =>   x_msg_data
178       );
179 
180       EXCEPTION
181           WHEN FND_API.G_EXC_ERROR THEN
182               AS_UTILITY_PVT.HANDLE_EXCEPTIONS(
183                    P_API_NAME => L_API_NAME
184                   ,P_PKG_NAME => G_PKG_NAME
185                   ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
186                   ,P_PACKAGE_TYPE => AS_UTILITY_PVT.G_PVT
187                   ,X_MSG_COUNT => X_MSG_COUNT
188                   ,X_MSG_DATA => X_MSG_DATA
189                   ,X_RETURN_STATUS => X_RETURN_STATUS);
190 
191           WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
192               AS_UTILITY_PVT.HANDLE_EXCEPTIONS(
193                    P_API_NAME => L_API_NAME
194                   ,P_PKG_NAME => G_PKG_NAME
195                   ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
196                   ,P_PACKAGE_TYPE => AS_UTILITY_PVT.G_PVT
197                   ,X_MSG_COUNT => X_MSG_COUNT
198                   ,X_MSG_DATA => X_MSG_DATA
199                   ,X_RETURN_STATUS => X_RETURN_STATUS);
200 
201           WHEN OTHERS THEN
202               AS_UTILITY_PVT.HANDLE_EXCEPTIONS(
203                    P_API_NAME => L_API_NAME
204                   ,P_PKG_NAME => G_PKG_NAME
205                   ,P_EXCEPTION_LEVEL => AS_UTILITY_PVT.G_EXC_OTHERS
206                   ,P_SQLCODE => SQLCODE
207                   ,P_SQLERRM => SQLERRM
208                   ,P_PACKAGE_TYPE => AS_UTILITY_PVT.G_PVT
209                   ,X_MSG_COUNT => X_MSG_COUNT
210                   ,X_MSG_DATA => X_MSG_DATA
211                   ,X_RETURN_STATUS => X_RETURN_STATUS);
212 End Create_entyattmap;
213 
214 
215 -- Hint: Add corresponding update detail table procedures if it's master-detail relationship.
216 PROCEDURE Update_entyattmap(
217     P_Api_Version_Number         IN   NUMBER,
218     P_Init_Msg_List              IN   VARCHAR2  := FND_API.G_FALSE,
219     P_Commit                     IN   VARCHAR2  := FND_API.G_FALSE,
220     p_validation_level           IN   NUMBER    := FND_API.G_VALID_LEVEL_FULL,
221     P_Identity_Resource_Id       IN   NUMBER,
222     P_ENTYATTMAP_Rec             IN   PV_RULE_RECTYPE_PUB.ENTYATTMAP_Rec_Type,
223     X_Return_Status              OUT NOCOPY  VARCHAR2,
224     X_Msg_Count                  OUT NOCOPY  NUMBER,
225     X_Msg_Data                   OUT NOCOPY  VARCHAR2
226     )
227 
228  IS
229 Cursor C_Get_entyattmap(pc_MAPPING_ID Number) IS
230     Select object_version_number
231     From  PV_ENTITY_ATTR_MAPPINGS
232     where mapping_id = pc_mapping_id
233     For Update NOWAIT;
234 
235 l_api_name                CONSTANT VARCHAR2(30) := 'Update_entyattmap';
236 l_api_version_number      CONSTANT NUMBER   := 2.0;
237 
238 -- Local Variables
239 l_ref_ENTYATTMAP_rec  PV_RULE_RECTYPE_PUB.ENTYATTMAP_Rec_Type;
240 l_tar_ENTYATTMAP_rec  PV_RULE_RECTYPE_PUB.ENTYATTMAP_Rec_Type := P_ENTYATTMAP_Rec;
241 l_rowid  ROWID;
242  BEGIN
243       -- Standard Start of API savepoint
244       SAVEPOINT UPDATE_ENTYATTMAP_PVT;
245 
246       -- Standard call to check for call compatibility.
247       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
248                          	             p_api_version_number,
249                                            l_api_name,
250                                            G_PKG_NAME)
251       THEN
252           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
253       END IF;
254 
255 
256       -- Initialize message list if p_init_msg_list is set to TRUE.
257       IF FND_API.to_Boolean( p_init_msg_list )
258       THEN
259           FND_MSG_PUB.initialize;
260       END IF;
261 
262 
263       -- Debug Message
264       IF (AS_DEBUG_HIGH_ON) THEN
265 
266       AS_UTILITY_PVT.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API: ' || l_api_name || 'start');
267       END IF;
268 
269 
270       -- Initialize API return status to SUCCESS
271       x_return_status := FND_API.G_RET_STS_SUCCESS;
272 
273       --
274       -- Api body
275       --
276 
277       -- Debug Message
278       IF (AS_DEBUG_HIGH_ON) THEN
279 
280       AS_UTILITY_PVT.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW,'Private API: - Open Cursor to Select');
281       END IF;
282 
283       Open C_Get_entyattmap( l_tar_ENTYATTMAP_rec.MAPPING_ID);
284       Fetch C_Get_entyattmap into
285                l_ref_ENTYATTMAP_rec.object_version_number;
286 
287        If ( C_Get_entyattmap%NOTFOUND) Then
288            IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
289            THEN
290                FND_MESSAGE.Set_Name('PV', 'API_MISSING_UPDATE_TARGET');
291                FND_MESSAGE.Set_Token ('INFO', 'entyattmap', FALSE);
292                FND_MSG_PUB.Add;
293            END IF;
294            Close C_Get_entyattmap;
295            raise FND_API.G_EXC_ERROR;
296        END IF;
297        -- Debug Message
298        IF (AS_DEBUG_HIGH_ON) THEN
299 
300        AS_UTILITY_PVT.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW,'Private API: - Close Cursor');
301        END IF;
302        Close     C_Get_entyattmap;
303 
304 
305       If (l_tar_ENTYATTMAP_rec.object_version_number is NULL or
306           l_tar_ENTYATTMAP_rec.object_version_number = FND_API.G_MISS_NUM ) Then
307           IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
308           THEN
309               FND_MESSAGE.Set_Name('PV', 'API_MISSING_ID');
310               FND_MESSAGE.Set_Token('COLUMN', 'object_version_number', FALSE);
311               FND_MSG_PUB.ADD;
312           END IF;
313           raise FND_API.G_EXC_ERROR;
314       End if;
315       -- Check Whether record has been changed by someone else
316       If (l_tar_ENTYATTMAP_rec.object_version_number <> l_ref_ENTYATTMAP_rec.object_version_number) Then
317           IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
318           THEN
319               FND_MESSAGE.Set_Name('PV', 'API_RECORD_CHANGED');
320               FND_MESSAGE.Set_Token('INFO', 'entyattmap', FALSE);
321               FND_MSG_PUB.ADD;
322           END IF;
323           raise FND_API.G_EXC_ERROR;
324       End if;
325 
326       -- Debug message
327       IF (AS_DEBUG_HIGH_ON) THEN
328 
329       AS_UTILITY_PVT.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW,'Private API: Validate_entyattmap');
330       END IF;
331 
332       -- Invoke validation procedures
333       Validate_entyattmap(
334           p_init_msg_list    => FND_API.G_FALSE,
335           p_validation_level => p_validation_level,
336           p_validation_mode  => AS_UTILITY_PVT.G_UPDATE,
337           P_ENTYATTMAP_Rec   =>  P_ENTYATTMAP_Rec,
338           x_return_status    => x_return_status,
339           x_msg_count        => x_msg_count,
340           x_msg_data         => x_msg_data);
341 
342       IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
343           RAISE FND_API.G_EXC_ERROR;
344       END IF;
345 
346       -- Hint: Add corresponding Master-Detail business logic here if necessary.
347 
348       -- Debug Message
349       IF (AS_DEBUG_HIGH_ON) THEN
350 
351       AS_UTILITY_PVT.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API: Calling update table handler');
352       END IF;
353 
354       -- Invoke table handler(PV_ENTITY_ATTR_MAPPINGS_PKG.Update_Row)
355       PV_ENTITY_ATTR_MAPPINGS_PKG.Update_Row(
356           p_MAPPING_ID  => p_ENTYATTMAP_rec.MAPPING_ID
357          ,p_LAST_UPDATE_DATE  => SYSDATE
358          ,p_LAST_UPDATED_BY  => FND_GLOBAL.USER_ID
359          ,p_CREATION_DATE  => FND_API.G_MISS_DATE
360          ,p_CREATED_BY     => FND_API.G_MISS_NUM
361          ,p_LAST_UPDATE_LOGIN  => FND_GLOBAL.CONC_LOGIN_ID
362          ,p_OBJECT_VERSION_NUMBER  => p_ENTYATTMAP_rec.OBJECT_VERSION_NUMBER
363          ,p_REQUEST_ID  => p_ENTYATTMAP_rec.REQUEST_ID
364          ,p_PROGRAM_APPLICATION_ID  => p_ENTYATTMAP_rec.PROGRAM_APPLICATION_ID
365          ,p_PROGRAM_ID  => p_ENTYATTMAP_rec.PROGRAM_ID
366          ,p_PROGRAM_UPDATE_DATE  => p_ENTYATTMAP_rec.PROGRAM_UPDATE_DATE
367          ,p_PROCESS_RULE_ID  => p_ENTYATTMAP_rec.PROCESS_RULE_ID
368          ,p_SOURCE_ATTR_TYPE  => p_ENTYATTMAP_rec.SOURCE_ATTR_TYPE
369          ,p_SOURCE_ATTR_ID  => p_ENTYATTMAP_rec.SOURCE_ATTR_ID
370          ,p_TARGET_ATTR_TYPE  => p_ENTYATTMAP_rec.TARGET_ATTR_TYPE
371          ,p_TARGET_ATTR_ID  => p_ENTYATTMAP_rec.TARGET_ATTR_ID
372          ,p_OPERATOR  => p_ENTYATTMAP_rec.OPERATOR
373          ,p_ATTRIBUTE_CATEGORY  => p_ENTYATTMAP_rec.ATTRIBUTE_CATEGORY
374          ,p_ATTRIBUTE1  => p_ENTYATTMAP_rec.ATTRIBUTE1
375          ,p_ATTRIBUTE2  => p_ENTYATTMAP_rec.ATTRIBUTE2
376          ,p_ATTRIBUTE3  => p_ENTYATTMAP_rec.ATTRIBUTE3
377          ,p_ATTRIBUTE4  => p_ENTYATTMAP_rec.ATTRIBUTE4
378          ,p_ATTRIBUTE5  => p_ENTYATTMAP_rec.ATTRIBUTE5
379          ,p_ATTRIBUTE6  => p_ENTYATTMAP_rec.ATTRIBUTE6
380          ,p_ATTRIBUTE7  => p_ENTYATTMAP_rec.ATTRIBUTE7
381          ,p_ATTRIBUTE8  => p_ENTYATTMAP_rec.ATTRIBUTE8
382          ,p_ATTRIBUTE9  => p_ENTYATTMAP_rec.ATTRIBUTE9
383          ,p_ATTRIBUTE10  => p_ENTYATTMAP_rec.ATTRIBUTE10
384          ,p_ATTRIBUTE11  => p_ENTYATTMAP_rec.ATTRIBUTE11
385          ,p_ATTRIBUTE12  => p_ENTYATTMAP_rec.ATTRIBUTE12
386          ,p_ATTRIBUTE13  => p_ENTYATTMAP_rec.ATTRIBUTE13
387          ,p_ATTRIBUTE14  => p_ENTYATTMAP_rec.ATTRIBUTE14
388          ,p_ATTRIBUTE15  => p_ENTYATTMAP_rec.ATTRIBUTE15
389 );      --
390       -- End of API body.
391       --
392 
393       -- Standard check for p_commit
394       IF FND_API.to_Boolean( p_commit )
395       THEN
396           COMMIT WORK;
397       END IF;
398 
399 
400       -- Debug Message
401       IF (AS_DEBUG_HIGH_ON) THEN
402 
403       AS_UTILITY_PVT.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API: ' || l_api_name || 'end');
404       END IF;
405 
406 
407       -- Standard call to get message count and if count is 1, get message info.
408       FND_MSG_PUB.Count_And_Get
409       (  p_count          =>   x_msg_count,
410          p_data           =>   x_msg_data
411       );
412 
413       EXCEPTION
414           WHEN FND_API.G_EXC_ERROR THEN
415               AS_UTILITY_PVT.HANDLE_EXCEPTIONS(
416                    P_API_NAME => L_API_NAME
417                   ,P_PKG_NAME => G_PKG_NAME
418                   ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
419                   ,P_PACKAGE_TYPE => AS_UTILITY_PVT.G_PVT
420                   ,X_MSG_COUNT => X_MSG_COUNT
421                   ,X_MSG_DATA => X_MSG_DATA
422                   ,X_RETURN_STATUS => X_RETURN_STATUS);
423 
424           WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
425               AS_UTILITY_PVT.HANDLE_EXCEPTIONS(
426                    P_API_NAME => L_API_NAME
427                   ,P_PKG_NAME => G_PKG_NAME
428                   ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
429                   ,P_PACKAGE_TYPE => AS_UTILITY_PVT.G_PVT
430                   ,X_MSG_COUNT => X_MSG_COUNT
431                   ,X_MSG_DATA => X_MSG_DATA
432                   ,X_RETURN_STATUS => X_RETURN_STATUS);
433 
434           WHEN OTHERS THEN
435               AS_UTILITY_PVT.HANDLE_EXCEPTIONS(
436                    P_API_NAME => L_API_NAME
437                   ,P_PKG_NAME => G_PKG_NAME
438                   ,P_EXCEPTION_LEVEL => AS_UTILITY_PVT.G_EXC_OTHERS
439                   ,P_SQLCODE => SQLCODE
440                   ,P_SQLERRM => SQLERRM
441                   ,P_PACKAGE_TYPE => AS_UTILITY_PVT.G_PVT
442                   ,X_MSG_COUNT => X_MSG_COUNT
443                   ,X_MSG_DATA => X_MSG_DATA
444                   ,X_RETURN_STATUS => X_RETURN_STATUS);
445 End Update_entyattmap;
446 
447 
448 -- Hint: Add corresponding delete detail table procedures if it's master-detail relationship.
449 --       The Master delete procedure may not be needed depends on different business requirements.
450 PROCEDURE Delete_entyattmap(
451     P_Api_Version_Number         IN   NUMBER,
452     P_Init_Msg_List              IN   VARCHAR2   := FND_API.G_FALSE,
453     P_Commit                     IN   VARCHAR2   := FND_API.G_FALSE,
454     p_validation_level           IN   NUMBER     := FND_API.G_VALID_LEVEL_FULL,
455     P_Identity_Resource_Id       IN   NUMBER,
456     P_ENTYATTMAP_Rec             IN   PV_RULE_RECTYPE_PUB.ENTYATTMAP_Rec_Type,
457     X_Return_Status              OUT NOCOPY  VARCHAR2,
458     X_Msg_Count                  OUT NOCOPY  NUMBER,
459     X_Msg_Data                   OUT NOCOPY  VARCHAR2
460     )
461 
462  IS
463 l_api_name                CONSTANT VARCHAR2(30) := 'Delete_entyattmap';
464 l_api_version_number      CONSTANT NUMBER   := 2.0;
465  BEGIN
466       -- Standard Start of API savepoint
467       SAVEPOINT DELETE_ENTYATTMAP_PVT;
468 
469       -- Standard call to check for call compatibility.
470       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
471                          	             p_api_version_number,
472                                            l_api_name,
473                                            G_PKG_NAME)
474       THEN
475           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
476       END IF;
477 
478 
479       -- Initialize message list if p_init_msg_list is set to TRUE.
480       IF FND_API.to_Boolean( p_init_msg_list )
481       THEN
482           FND_MSG_PUB.initialize;
483       END IF;
484 
485 
486       -- Debug Message
487       IF (AS_DEBUG_HIGH_ON) THEN
488 
489       AS_UTILITY_PVT.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API: ' || l_api_name || 'start');
490       END IF;
491 
492 
493       -- Initialize API return status to SUCCESS
494       x_return_status := FND_API.G_RET_STS_SUCCESS;
495 
496       --
497       -- Api body
498       --
499 
500       -- Debug Message
501       IF (AS_DEBUG_HIGH_ON) THEN
502 
503       AS_UTILITY_PVT.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API: Calling delete table handler');
504       END IF;
505 
506       -- Invoke table handler(PV_ENTITY_ATTR_MAPPINGS_PKG.Delete_Row)
507       PV_ENTITY_ATTR_MAPPINGS_PKG.Delete_Row(
508           p_MAPPING_ID  => p_ENTYATTMAP_rec.MAPPING_ID);
509       --
510       -- End of API body
511       --
512 
513       -- Standard check for p_commit
514       IF FND_API.to_Boolean( p_commit )
515       THEN
516           COMMIT WORK;
517       END IF;
518 
519 
520       -- Debug Message
521       IF (AS_DEBUG_HIGH_ON) THEN
522 
523       AS_UTILITY_PVT.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API: ' || l_api_name || 'end');
524       END IF;
525 
526 
527       -- Standard call to get message count and if count is 1, get message info.
528       FND_MSG_PUB.Count_And_Get
529       (  p_count          =>   x_msg_count,
530          p_data           =>   x_msg_data
531       );
532 
533       EXCEPTION
534           WHEN FND_API.G_EXC_ERROR THEN
535               AS_UTILITY_PVT.HANDLE_EXCEPTIONS(
536                    P_API_NAME => L_API_NAME
537                   ,P_PKG_NAME => G_PKG_NAME
538                   ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
539                   ,P_PACKAGE_TYPE => AS_UTILITY_PVT.G_PVT
540                   ,X_MSG_COUNT => X_MSG_COUNT
541                   ,X_MSG_DATA => X_MSG_DATA
542                   ,X_RETURN_STATUS => X_RETURN_STATUS);
543 
544           WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
545               AS_UTILITY_PVT.HANDLE_EXCEPTIONS(
546                    P_API_NAME => L_API_NAME
547                   ,P_PKG_NAME => G_PKG_NAME
548                   ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
549                   ,P_PACKAGE_TYPE => AS_UTILITY_PVT.G_PVT
550                   ,X_MSG_COUNT => X_MSG_COUNT
551                   ,X_MSG_DATA => X_MSG_DATA
552                   ,X_RETURN_STATUS => X_RETURN_STATUS);
553 
554           WHEN OTHERS THEN
555               AS_UTILITY_PVT.HANDLE_EXCEPTIONS(
556                    P_API_NAME => L_API_NAME
557                   ,P_PKG_NAME => G_PKG_NAME
558                   ,P_EXCEPTION_LEVEL => AS_UTILITY_PVT.G_EXC_OTHERS
559                   ,P_SQLCODE => SQLCODE
560                   ,P_SQLERRM => SQLERRM
561                   ,P_PACKAGE_TYPE => AS_UTILITY_PVT.G_PVT
562                   ,X_MSG_COUNT => X_MSG_COUNT
563                   ,X_MSG_DATA => X_MSG_DATA
564                   ,X_RETURN_STATUS => X_RETURN_STATUS);
565 End Delete_entyattmap;
566 
567 
568 -- Item-level validation procedures
569 PROCEDURE Validate_MAPPING_ID (
570     P_Init_Msg_List              IN   VARCHAR2     := FND_API.G_FALSE,
571     P_Validation_mode            IN   VARCHAR2,
572     P_MAPPING_ID                 IN   NUMBER,
573     X_Return_Status              OUT NOCOPY  VARCHAR2,
574     X_Msg_Count                  OUT NOCOPY  NUMBER,
575     X_Msg_Data                   OUT NOCOPY  VARCHAR2
576     )
577 IS
578   CURSOR C_mapping_id_exists (pc_mapping_id NUMBER) IS
579       SELECT 'X'
580       FROM  pv_entity_attr_mappings
581       WHERE mapping_id = pc_mapping_id;
582 
583   l_val   VARCHAR2(1);
584 BEGIN
585 
586       -- Initialize message list if p_init_msg_list is set to TRUE.
587       IF FND_API.to_Boolean( p_init_msg_list )
588       THEN
589           FND_MSG_PUB.initialize;
590       END IF;
591 
592 
593       -- Initialize API return status to SUCCESS
594       x_return_status := FND_API.G_RET_STS_SUCCESS;
595 
596       IF(p_validation_mode = AS_UTILITY_PVT.G_CREATE)
597       THEN
598           IF (p_mapping_id IS NOT NULL) AND
599              (p_mapping_id <> FND_API.G_MISS_NUM)
600           THEN
601               AS_UTILITY_PVT.Set_Message(
602                   p_msg_level    => FND_MSG_PUB.G_MSG_LVL_ERROR,
603                   p_msg_name     => 'API_INVALID_ID',
604                   p_token1       => 'MAPPING_ID',
605                   p_token1_value => p_mapping_id);
606 
607               x_return_status := FND_API.G_RET_STS_ERROR;
608           END IF;
609 
610       ELSIF(p_validation_mode = AS_UTILITY_PVT.G_UPDATE)
611       THEN
612           -- validate NOT NULL column
613           IF (p_mapping_id IS NULL) OR
614              (p_mapping_id = FND_API.G_MISS_NUM)
615           THEN
616               AS_UTILITY_PVT.Set_Message(
617                   p_msg_level     => FND_MSG_PUB.G_MSG_LVL_ERROR,
618                   p_msg_name      => 'API_MISSING_LEAD_ID');
619 
620               x_return_status := FND_API.G_RET_STS_ERROR;
621           ELSE
622               OPEN  C_mapping_id_exists (p_mapping_id);
623               FETCH C_mapping_id_exists into l_val;
624 
625               IF C_mapping_id_exists%NOTFOUND
626               THEN
627                   AS_UTILITY_PVT.Set_Message(
628                       p_msg_level     => FND_MSG_PUB.G_MSG_LVL_ERROR,
629                       p_msg_name      => 'API_INVALID_ID',
630                       p_token1        => 'MAPPING_ID',
631                       p_token1_value  => p_mapping_id );
632 
633                   x_return_status := FND_API.G_RET_STS_ERROR;
634               END IF;
635 
636               CLOSE C_mapping_id_exists;
637           END IF;
638       END IF;
639 
640       -- Standard call to get message count and if count is 1, get message info.
641       FND_MSG_PUB.Count_And_Get
642       (  p_count          =>   x_msg_count,
643          p_data           =>   x_msg_data
644       );
645 
646 END Validate_MAPPING_ID;
647 
648 
649 PROCEDURE Validate_MAPPING_OPERATOR (
650     P_Init_Msg_List              IN   VARCHAR2     := FND_API.G_FALSE,
651     P_Validation_mode            IN   VARCHAR2,
652     P_ATTRIBUTE_ID               IN   NUMBER,
653     P_OPERATOR                   IN   VARCHAR2,
654     X_Return_Status              OUT NOCOPY  VARCHAR2,
655     X_Msg_Count                  OUT NOCOPY  NUMBER,
656     X_Msg_Data                   OUT NOCOPY  VARCHAR2
657     )
658 IS
659 BEGIN
660 
661       -- Initialize message list if p_init_msg_list is set to TRUE.
662       IF FND_API.to_Boolean( p_init_msg_list )
663       THEN
664           FND_MSG_PUB.initialize;
665       END IF;
666 
667       -- Initialize API return status to SUCCESS
668       x_return_status := FND_API.G_RET_STS_SUCCESS;
669 
670       if p_operator is NULL or p_operator = FND_API.G_MISS_CHAR then
671 
672          AS_UTILITY_PVT.Set_Message(
673              p_msg_level     => FND_MSG_PUB.G_MSG_LVL_ERROR,
674              p_msg_name      => 'API_MISSING_OPERATOR');
675 
676          x_return_status := FND_API.G_RET_STS_ERROR;
677 
678       elsif p_operator not in ('EQUALS', 'NOT_EQUALS',
679                                'LESS_THAN', 'GREATER_THAN',
680                                'LESS_THAN_OR_EQUALS', 'GREATER_THAN_OR_EQUALS')
681       then
682          FND_MESSAGE.SET_NAME('PV', 'API_INVALID_MAPPING_OPERATOR');
683          FND_MESSAGE.SET_TOKEN('OPERATOR', p_operator);
684          FND_MSG_PUB.ADD;
685 
686          x_return_status := FND_API.G_RET_STS_ERROR;
687 
688       else
689           pv_common_checks_pvt.Validate_OPERATOR(
690               p_init_msg_list          => FND_API.G_FALSE,
691               p_validation_mode        => p_validation_mode,
692               p_TABLE_NAME             => 'PV_ENTITY_ATTR_MAPPINGS',
693               p_COLUMN_NAME            => 'OPERATOR',
694               p_attribute_id           => p_ATTRIBUTE_ID,
695               p_OPERATOR_CODE          => p_operator,
696               x_return_status          => x_return_status,
697               x_msg_count              => x_msg_count,
698               x_msg_data               => x_msg_data);
699 
700           IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
701               raise FND_API.G_EXC_ERROR;
702           END IF;
703 
704       end if;
705 
706       -- Standard call to get message count and if count is 1, get message info.
707       FND_MSG_PUB.Count_And_Get
708       (  p_count          =>   x_msg_count,
709          p_data           =>   x_msg_data
710       );
711 
712 END Validate_MAPPING_OPERATOR;
713 
714 
715 PROCEDURE Validate_entyattmap(
716     P_Init_Msg_List              IN   VARCHAR2     := FND_API.G_FALSE,
717     P_Validation_level           IN   NUMBER := FND_API.G_VALID_LEVEL_FULL,
718     P_Validation_mode            IN   VARCHAR2,
719     P_ENTYATTMAP_Rec             IN   PV_RULE_RECTYPE_PUB.ENTYATTMAP_Rec_Type,
720     X_Return_Status              OUT NOCOPY  VARCHAR2,
721     X_Msg_Count                  OUT NOCOPY  NUMBER,
722     X_Msg_Data                   OUT NOCOPY  VARCHAR2
723     )
724 IS
725 l_api_name   CONSTANT VARCHAR2(30) := 'Validate_entyattmap';
726  BEGIN
727 
728       -- Debug Message
729       IF (AS_DEBUG_HIGH_ON) THEN
730 
731       AS_UTILITY_PVT.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API: ' || l_api_name || 'start');
732       END IF;
733 
734 
735       -- Initialize API return status to SUCCESS
736       x_return_status := FND_API.G_RET_STS_SUCCESS;
737 
738       IF (p_validation_level >= AS_UTILITY_PUB.G_VALID_LEVEL_ITEM) THEN
739 
740           Validate_MAPPING_ID(
741               p_init_msg_list          => FND_API.G_FALSE,
742               p_validation_mode        => p_validation_mode,
743               p_MAPPING_ID             => P_ENTYATTMAP_Rec.MAPPING_ID,
744               x_return_status          => x_return_status,
745               x_msg_count              => x_msg_count,
746               x_msg_data               => x_msg_data);
747 
748           IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
749               raise FND_API.G_EXC_ERROR;
750           END IF;
751 
752           pv_common_checks_pvt.Validate_OBJECT_VERSION_NUMBER(
753               p_init_msg_list          => FND_API.G_FALSE,
754               p_validation_mode        => p_validation_mode,
755               p_OBJECT_VERSION_NUMBER   => p_ENTYATTMAP_rec.OBJECT_VERSION_NUMBER,
756               x_return_status          => x_return_status,
757               x_msg_count              => x_msg_count,
758               x_msg_data               => x_msg_data);
759 
760           IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
761               raise FND_API.G_EXC_ERROR;
762           END IF;
763 
764           pv_common_checks_pvt.Validate_PROCESS_RULE_ID(
765               p_init_msg_list          => FND_API.G_FALSE,
766               p_validation_mode        => p_validation_mode,
767               p_PROCESS_RULE_ID        => P_ENTYATTMAP_Rec.PROCESS_RULE_ID,
768               x_return_status          => x_return_status,
769               x_msg_count              => x_msg_count,
770               x_msg_data               => x_msg_data);
771 
772           IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
773               raise FND_API.G_EXC_ERROR;
774           END IF;
775 
776           pv_common_checks_pvt.Validate_Lookup(
777               p_init_msg_list          => FND_API.G_FALSE,
778               p_validation_mode        => p_validation_mode,
779               p_TABLE_NAME             => 'PV_ENTITY_ATTR_MAPPINGS',
780               p_COLUMN_NAME            => 'SOURCE_ATTR_TYPE',
781               p_LOOKUP_TYPE            => 'PV_ATTRIBUTE_ENTITY_TYPE',
782               p_LOOKUP_CODE            => P_ENTYATTMAP_Rec.SOURCE_ATTR_TYPE,
783               x_return_status          => x_return_status,
784               x_msg_count              => x_msg_count,
785               x_msg_data               => x_msg_data);
786 
787           IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
788               raise FND_API.G_EXC_ERROR;
789           END IF;
790 
791           pv_common_checks_pvt.Validate_attribute_id(
792               p_init_msg_list          => FND_API.G_FALSE,
793               p_validation_mode        => p_validation_mode,
794               p_attribute_id           => P_ENTYATTMAP_Rec.SOURCE_ATTR_ID,
795               x_return_status          => x_return_status,
796               x_msg_count              => x_msg_count,
797               x_msg_data               => x_msg_data);
798           IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
799               raise FND_API.G_EXC_ERROR;
800           END IF;
801 
802           pv_common_checks_pvt.Validate_Lookup(
803               p_init_msg_list          => FND_API.G_FALSE,
804               p_validation_mode        => p_validation_mode,
805               p_TABLE_NAME             => 'PV_ENTITY_ATTR_MAPPINGS',
806               p_COLUMN_NAME            => 'TARGET_ATTR_TYPE',
807               p_LOOKUP_TYPE            => 'PV_ATTRIBUTE_ENTITY_TYPE',
808               p_LOOKUP_CODE            => P_ENTYATTMAP_Rec.TARGET_ATTR_TYPE,
809               x_return_status          => x_return_status,
810               x_msg_count              => x_msg_count,
811               x_msg_data               => x_msg_data);
812 
813           IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
814               raise FND_API.G_EXC_ERROR;
815           END IF;
816 
817           pv_common_checks_pvt.Validate_attribute_id(
818               p_init_msg_list          => FND_API.G_FALSE,
819               p_validation_mode        => p_validation_mode,
820               p_attribute_id           => P_ENTYATTMAP_Rec.TARGET_ATTR_ID,
821               x_return_status          => x_return_status,
822               x_msg_count              => x_msg_count,
823               x_msg_data               => x_msg_data);
824 
825           IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
826               raise FND_API.G_EXC_ERROR;
827           END IF;
828 
829           Validate_MAPPING_OPERATOR(
830               p_init_msg_list          => FND_API.G_FALSE,
831               p_validation_mode        => p_validation_mode,
832               p_attribute_id           => P_ENTYATTMAP_Rec.SOURCE_ATTR_ID,
833               p_OPERATOR               => P_ENTYATTMAP_Rec.OPERATOR,
834               x_return_status          => x_return_status,
835               x_msg_count              => x_msg_count,
836               x_msg_data               => x_msg_data);
837           IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
838               raise FND_API.G_EXC_ERROR;
839           END IF;
840 
841       END IF;
842 
843       IF (p_validation_level >= AS_UTILITY_PUB.G_VALID_LEVEL_RECORD) THEN
844           -- Hint: Inter-field level validation can be added here
845           -- invoke record level validation procedures
846 
847           if (p_validation_mode = AS_UTILITY_PVT.G_CREATE) then
848 
849               if (P_ENTYATTMAP_Rec.SOURCE_ATTR_ID IS NULL or
850                  P_ENTYATTMAP_Rec.SOURCE_ATTR_ID = FND_API.G_MISS_NUM or
851                  P_ENTYATTMAP_Rec.OPERATOR IS NULL or
852                  P_ENTYATTMAP_Rec.OPERATOR = FND_API.G_MISS_CHAR or
853                  P_ENTYATTMAP_Rec.TARGET_ATTR_ID IS NULL or
854                  P_ENTYATTMAP_Rec.TARGET_ATTR_ID = FND_API.G_MISS_NUM) then
855 
856                     FND_MESSAGE.Set_Name('PV', 'PV_INVALID_ENTITY_MAPPING');
857                     FND_MSG_PUB.Add;
858                     x_return_status := FND_API.G_RET_STS_ERROR;
859 
860               END IF;
861           END IF;
862 
863       END IF;
864 
865       IF (p_validation_level >= AS_UTILITY_PUB.G_VALID_LEVEL_INTER_RECORD) THEN
866           -- invoke inter-record level validation procedures
867           NULL;
868       END IF;
869 
870       IF (p_validation_level >= AS_UTILITY_PUB.G_VALID_LEVEL_INTER_ENTITY) THEN
871           -- invoke inter-entity level validation procedures
872           NULL;
873       END IF;
874 
875 
876       -- Debug Message
877       IF (AS_DEBUG_HIGH_ON) THEN
878 
879       AS_UTILITY_PVT.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API: ' || l_api_name || 'end');
880       END IF;
881 
882 END Validate_entyattmap;
883 
884 End PV_ENTYATTMAP_PVT;