[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;