[Home] [Help]
PACKAGE BODY: APPS.PV_PARTNER_ACCESSES_PVT
Source
1 PACKAGE BODY PV_Partner_Accesses_PVT as
2 /* $Header: pvxvprab.pls 120.1 2005/09/05 23:50:35 appldev ship $ */
3 -- ===============================================================
4 -- Start of Comments
5 -- Package name
6 -- PV_Partner_Accesses_PVT
7 -- Purpose
8 --
9 -- History
10 --
11 -- NOTE
12 --
13 -- This Api is generated with Latest version of
14 -- Rosetta, where g_miss indicates NULL and
15 -- NULL indicates missing value. Rosetta Version 1.55
16 -- End of Comments
17 -- ===============================================================
18
19
20 G_PKG_NAME CONSTANT VARCHAR2(30):= 'PV_Partner_Accesses_PVT';
21 G_FILE_NAME CONSTANT VARCHAR2(12) := 'pvxvprab.pls';
22
23 PV_DEBUG_HIGH_ON CONSTANT boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_HIGH);
24 PV_DEBUG_LOW_ON CONSTANT boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW);
25 PV_DEBUG_MEDIUM_ON CONSTANT boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_MEDIUM);
26
27 -- G_USER_ID NUMBER := FND_GLOBAL.USER_ID;
28 -- G_LOGIN_ID NUMBER := FND_GLOBAL.CONC_LOGIN_ID;
29 --
30 -- Foreward Procedure Declarations
31 --
32
33 -- Hint: Primary key needs to be returned.
34 -- ==============================================================================
35 -- Start of Comments
36 -- ==============================================================================
37 -- API Name
38 -- Create_Partner_Accesses
39 -- Type
40 -- Private
41 -- Pre-Req
42 --
43 -- Parameters
44 --
45 -- IN
46 -- p_api_version_number IN NUMBER Required
47 -- p_init_msg_list IN VARCHAR2 Optional Default = FND_API_G_FALSE
48 -- p_commit IN VARCHAR2 Optional Default = FND_API.G_FALSE
49 -- p_validation_level IN NUMBER Optional Default = FND_API.G_VALID_LEVEL_FULL
50 -- p_partner_access_rec IN partner_access_rec_type Required
51 --
52 -- OUT
53 -- x_return_status OUT VARCHAR2
54 -- x_msg_count OUT NUMBER
55 -- x_msg_data OUT VARCHAR2
56 -- Version : Current version 1.0
57 -- Note: This automatic generated procedure definition, it includes standard IN/OUT parameters
58 -- and basic operation, developer must manually add parameters and business logic as necessary.
59 --
60 -- History
61 --
62 -- NOTE
63 --
64 -- End of Comments
65 -- ==============================================================================
66
67 PROCEDURE Create_Partner_Accesses(
68 p_api_version_number IN NUMBER,
69 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
70 p_commit IN VARCHAR2 := FND_API.G_FALSE,
71 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
72 x_return_status OUT NOCOPY VARCHAR2,
73 x_msg_count OUT NOCOPY NUMBER,
74 x_msg_data OUT NOCOPY VARCHAR2,
75 p_partner_access_rec IN partner_access_rec_type := g_miss_partner_access_rec,
76 x_partner_access_id OUT NOCOPY NUMBER
77 )
78 IS
79 L_API_NAME CONSTANT VARCHAR2(30) := 'Create_Partner_Accesses';
80 L_API_VERSION_NUMBER CONSTANT NUMBER := 1.0;
81 l_return_status_full VARCHAR2(1);
82 l_object_version_number NUMBER := 1;
83 l_org_id NUMBER ;
84 l_partner_access_id NUMBER;
85 l_dummy NUMBER;
86 l_err_num NUMBER;
87 l_err_msg VARCHAR2(2000);
88 l_return_status VARCHAR2(1);
89
90 CURSOR c_id IS
91 SELECT pv_partner_accesses_s.NEXTVAL
92 FROM dual;
93
94 CURSOR c_id_exists (l_id IN NUMBER) IS
95 SELECT 1
96 FROM PV_PARTNER_ACCESSES
97 WHERE partner_access_id = l_id;
98 BEGIN
99 -- Standard Start of API savepoint
100 SAVEPOINT create_partner_accesses_pvt;
101
102 -- Standard call to check for call compatibility.
103 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
104 p_api_version_number,
105 l_api_name,
106 G_PKG_NAME)
107 THEN
108 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
109 END IF;
110
111 -- Initialize message list if p_init_msg_list is set to TRUE.
112 IF FND_API.to_Boolean( p_init_msg_list )
113 THEN
114 FND_MSG_PUB.initialize;
115 END IF;
116
117 -- Debug Message
118 IF (PV_DEBUG_HIGH_ON) THEN
119 PVX_UTILITY_PVT.debug_message('Private API: ' || l_api_name || ' start.');
120 END IF;
121
122 -- Initialize API return status to SUCCESS
123 x_return_status := FND_API.G_RET_STS_SUCCESS;
124
125 -- =========================================================================
126 -- Validate Environment
127 -- =========================================================================
128
129 IF FND_GLOBAL.USER_ID IS NULL
130 THEN
131 PVX_UTILITY_PVT.Error_Message(p_message_name => 'USER_PROFILE_MISSING');
132 RAISE FND_API.G_EXC_ERROR;
133 END IF;
134
135 IF ( P_validation_level >= FND_API.G_VALID_LEVEL_FULL)
136 THEN
137 -- Debug message
138 IF (PV_DEBUG_HIGH_ON) THEN
139 PVX_UTILITY_PVT.debug_message('Private API: Validate_Partner_Accesses.');
140 END IF;
141
142 -- Invoke validation procedures
143 Validate_partner_accesses(
144 p_api_version_number => 1.0,
145 p_init_msg_list => FND_API.G_FALSE,
146 p_validation_level => p_validation_level,
147 p_validation_mode => JTF_PLSQL_API.g_create,
148 p_partner_access_rec => p_partner_access_rec,
149 x_return_status => x_return_status,
150 x_msg_count => x_msg_count,
151 x_msg_data => x_msg_data);
152 END IF;
153
154 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
155 RAISE FND_API.G_EXC_ERROR;
156 END IF;
157
158 -- Local variable initialization
159
160 IF p_partner_access_rec.partner_access_id IS NULL OR p_partner_access_rec.partner_access_id = FND_API.g_miss_num THEN
161 LOOP
162 l_dummy := NULL;
163 OPEN c_id;
164 FETCH c_id INTO l_partner_access_id;
165 CLOSE c_id;
166
167 OPEN c_id_exists(l_partner_access_id);
168 FETCH c_id_exists INTO l_dummy;
169 CLOSE c_id_exists;
170 EXIT WHEN l_dummy IS NULL;
171 END LOOP;
172 ELSE
173 l_partner_access_id := p_partner_access_rec.partner_access_id;
174 END IF;
175
176 -- Debug Message
177 IF (PV_DEBUG_HIGH_ON) THEN
178 PVX_UTILITY_PVT.debug_message( 'Private API: Calling create table handler.');
179 END IF;
180
181 -- Invoke table handler(Pv_Partner_Accesses_Pkg.Insert_Row)
182 Pv_Partner_Accesses_Pkg.Insert_Row(
183 px_partner_access_id => l_partner_access_id,
184 p_partner_id => p_partner_access_rec.partner_id,
185 p_resource_id => p_partner_access_rec.resource_id,
186 p_keep_flag => p_partner_access_rec.keep_flag,
187 p_created_by_tap_flag => p_partner_access_rec.created_by_tap_flag,
188 p_access_type => p_partner_access_rec.access_type,
189 p_vad_partner_id => p_partner_access_rec.vad_partner_id,
190 p_last_update_date => SYSDATE,
191 p_last_updated_by => FND_GLOBAL.USER_ID,
192 p_creation_date => SYSDATE,
193 p_created_by => FND_GLOBAL.USER_ID,
194 p_last_update_login => FND_GLOBAL.conc_login_id,
195 p_object_version_number => p_partner_access_rec.object_version_number,
196 p_request_id => p_partner_access_rec.request_id,
197 p_program_application_id => p_partner_access_rec.program_application_id,
198 p_program_id => p_partner_access_rec.program_id,
199 p_program_update_date => p_partner_access_rec.program_update_date,
200 p_attribute_category => p_partner_access_rec.attribute_category,
201 p_attribute1 => p_partner_access_rec.attribute1,
202 p_attribute2 => p_partner_access_rec.attribute2,
203 p_attribute3 => p_partner_access_rec.attribute3,
204 p_attribute4 => p_partner_access_rec.attribute4,
205 p_attribute5 => p_partner_access_rec.attribute5,
206 p_attribute6 => p_partner_access_rec.attribute6,
207 p_attribute7 => p_partner_access_rec.attribute7,
208 p_attribute8 => p_partner_access_rec.attribute8,
209 p_attribute9 => p_partner_access_rec.attribute9,
210 p_attribute10 => p_partner_access_rec.attribute10,
211 p_attribute11 => p_partner_access_rec.attribute11,
212 p_attribute12 => p_partner_access_rec.attribute12,
213 p_attribute13 => p_partner_access_rec.attribute13,
214 p_attribute14 => p_partner_access_rec.attribute14,
215 p_attribute15 => p_partner_access_rec.attribute15,
216 x_return_status=> x_return_status);
217
218 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
219 l_err_msg := substr(to_char(SQLCODE)||'-'||SQLERRM,1,2000);
220 FND_MESSAGE.set_name('PV', 'PV_API_OTHERS_EXCEP');
221 FND_MESSAGE.set_token('ERROR', l_err_msg);
222 FND_MSG_PUB.add;
223 IF x_return_status = FND_API.G_RET_STS_ERROR THEN
224 RAISE FND_API.G_EXC_ERROR;
225 ELSE
226 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
227 END IF;
228 END IF;
229
230 x_partner_access_id := l_partner_access_id;
231 --
232 -- End of API body
233 --
234
235 -- Standard check for p_commit
236 IF FND_API.to_Boolean( p_commit )
237 THEN
238 COMMIT WORK;
239 END IF;
240
241 -- Debug Message
242 IF (PV_DEBUG_HIGH_ON) THEN
243 PVX_UTILITY_PVT.debug_message('Private API: ' || l_api_name || ' end.');
244 END IF;
245
246 -- Standard call to get message count and if count is 1, get message info.
247 FND_MSG_PUB.Count_And_Get
248 (p_count => x_msg_count,
249 p_data => x_msg_data
250 );
251 EXCEPTION
252
253 WHEN PVX_UTILITY_PVT.resource_locked THEN
254 x_return_status := FND_API.g_ret_sts_error;
255 PVX_UTILITY_PVT.Error_Message(p_message_name => 'PV_API_RESOURCE_LOCKED');
256
257 WHEN FND_API.G_EXC_ERROR THEN
258 ROLLBACK TO CREATE_Partner_Accesses_PVT;
259 x_return_status := FND_API.G_RET_STS_ERROR;
260 -- Standard call to get message count and if count=1, get the message
261 FND_MSG_PUB.Count_And_Get (
262 p_encoded => FND_API.G_FALSE,
263 p_count => x_msg_count,
264 p_data => x_msg_data
265 );
266
267 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
268 ROLLBACK TO CREATE_Partner_Accesses_PVT;
269 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
270 -- Standard call to get message count and if count=1, get the message
271 FND_MSG_PUB.Count_And_Get (
272 p_encoded => FND_API.G_FALSE,
273 p_count => x_msg_count,
274 p_data => x_msg_data
275 );
276
277 WHEN OTHERS THEN
278 ROLLBACK TO CREATE_Partner_Accesses_PVT;
279 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
280 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
281 THEN
282 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
283 END IF;
284 -- Standard call to get message count and if count=1, get the message
285 FND_MSG_PUB.Count_And_Get (
286 p_encoded => FND_API.G_FALSE,
287 p_count => x_msg_count,
288 p_data => x_msg_data
289 );
290 End Create_Partner_Accesses;
291
292 -- ==============================================================================
293 -- Start of Comments
294 -- ==============================================================================
295 -- API Name
296 -- Update_Partner_Accesses
297 -- Type
298 -- Private
299 -- Pre-Req
300 --
301 -- Parameters
302 --
303 -- IN
304 -- p_api_version_number IN NUMBER Required
305 -- p_init_msg_list IN VARCHAR2 Optional Default = FND_API_G_FALSE
306 -- p_commit IN VARCHAR2 Optional Default = FND_API.G_FALSE
307 -- p_validation_level IN NUMBER Optional Default = FND_API.G_VALID_LEVEL_FULL
308 -- p_partner_access_rec IN partner_access_rec_type Required
309 --
310 -- OUT
311 -- x_return_status OUT VARCHAR2
312 -- x_msg_count OUT NUMBER
313 -- x_msg_data OUT VARCHAR2
314 -- Version : Current version 1.0
315 -- Note: This automatic generated procedure definition, it includes standard IN/OUT parameters
316 -- and basic operation, developer must manually add parameters and business logic as necessary.
317 --
318 -- History
319 --
320 -- NOTE
321 --
322 -- End of Comments
323 -- ==============================================================================
324
325 PROCEDURE Update_Partner_Accesses(
326 p_api_version_number IN NUMBER,
327 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
328 p_commit IN VARCHAR2 := FND_API.G_FALSE,
329 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
330 x_return_status OUT NOCOPY VARCHAR2,
331 x_msg_count OUT NOCOPY NUMBER,
332 x_msg_data OUT NOCOPY VARCHAR2,
333 p_partner_access_rec IN partner_access_rec_type
334 )
335
336 IS
337
338 CURSOR c_get_partner_accesses(cv_partner_access_id NUMBER) IS
339 SELECT *
340 FROM PV_PARTNER_ACCESSES
341 WHERE partner_access_id = cv_partner_access_id;
342
343 L_API_NAME CONSTANT VARCHAR2(30) := 'Update_Partner_Accesses';
344 L_API_VERSION_NUMBER CONSTANT NUMBER := 1.0;
345
346 -- Local Variables
347 l_object_version_number NUMBER;
348 l_partner_access_id NUMBER;
349 l_ref_partner_access_rec c_get_Partner_Accesses%ROWTYPE ;
350 l_tar_partner_access_rec partner_access_rec_type := P_partner_access_rec;
351 l_rowid ROWID;
352 l_err_msg VARCHAR2(2000);
353 BEGIN
354 -- Standard Start of API savepoint
355 SAVEPOINT update_partner_accesses_pvt;
356
357 -- Standard call to check for call compatibility.
358 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
359 p_api_version_number,
360 l_api_name,
361 G_PKG_NAME)
362 THEN
363 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
364 END IF;
365
366
367 -- Initialize message list if p_init_msg_list is set to TRUE.
368 IF FND_API.to_Boolean( p_init_msg_list )
369 THEN
370 FND_MSG_PUB.initialize;
371 END IF;
372
373 -- Debug Message
374 IF (PV_DEBUG_HIGH_ON) THEN
375 PVX_UTILITY_PVT.debug_message('Private API: ' || l_api_name || ' Start');
376 END IF;
377
378 -- Initialize API return status to SUCCESS
379 x_return_status := FND_API.G_RET_STS_SUCCESS;
380
381 -- Debug Message
382 IF (PV_DEBUG_HIGH_ON) THEN
383 PVX_UTILITY_PVT.debug_message('Private API: - Open Cursor to Select');
384 END IF;
385
386 OPEN c_get_Partner_Accesses( l_tar_partner_access_rec.partner_access_id);
387
388 FETCH c_get_Partner_Accesses INTO l_ref_partner_access_rec ;
389
390 IF ( c_get_Partner_Accesses%NOTFOUND) THEN
391 PVX_UTILITY_PVT.Error_Message(
392 p_message_name => 'API_MISSING_UPDATE_TARGET',
393 p_token_name => 'INFO',
394 p_token_value => 'Partner_Accesses') ;
395 RAISE FND_API.G_EXC_ERROR;
396 END IF;
397
398 -- Debug Message
399 IF (PV_DEBUG_HIGH_ON) THEN
400 PVX_UTILITY_PVT.debug_message('Private API: - Close Cursor c_get_Partner_Accesses');
401 END IF;
402
403 CLOSE c_get_Partner_Accesses;
404
405 IF (l_tar_partner_access_rec.object_version_number is NULL or
406 l_tar_partner_access_rec.object_version_number = FND_API.G_MISS_NUM ) THEN
407 PVX_UTILITY_PVT.Error_Message(
408 p_message_name => 'API_VERSION_MISSING',
409 p_token_name => 'COLUMN',
410 p_token_value => 'OBJECT_VERSION_NUMBER') ;
411 raise FND_API.G_EXC_ERROR;
412 End if;
413
414 -- Check Whether record has been changed by someone else
415 IF (l_tar_partner_access_rec.object_version_number <> l_ref_partner_access_rec.object_version_number) THEN
416 PVX_UTILITY_PVT.Error_Message(
417 p_message_name => 'API_RECORD_CHANGED',
418 p_token_name => 'INFO',
419 p_token_value => 'Partner_Accesses') ;
420 raise FND_API.G_EXC_ERROR;
421 End if;
422
423 IF ( P_validation_level >= FND_API.G_VALID_LEVEL_FULL)
424 THEN
425 -- Debug Message
426 IF (PV_DEBUG_HIGH_ON) THEN
427 PVX_UTILITY_PVT.debug_message('Private API: Validate_Partner_Accesses');
428 END IF;
429
430 Validate_partner_accesses(
431 p_api_version_number => 1.0,
432 p_init_msg_list => FND_API.G_FALSE,
433 p_validation_level => p_validation_level,
434 p_partner_access_rec => p_partner_access_rec,
435 p_validation_mode => JTF_PLSQL_API.g_update,
436 x_return_status => x_return_status,
437 x_msg_count => x_msg_count,
438 x_msg_data => x_msg_data);
439 END IF;
440
441 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
442 RAISE FND_API.G_EXC_ERROR;
443 END IF;
444
445
446 -- Debug Message
447 IF (PV_DEBUG_HIGH_ON) THEN
448 PVX_UTILITY_PVT.debug_message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API: Calling update table handler');
449 END IF;
450
451 -- Invoke table handler(Pv_Partner_Accesses_Pkg.Update_Row)
452 Pv_Partner_Accesses_Pkg.Update_Row(
453 p_partner_access_id => p_partner_access_rec.partner_access_id,
454 p_partner_id => p_partner_access_rec.partner_id,
455 p_resource_id => p_partner_access_rec.resource_id,
456 p_keep_flag => p_partner_access_rec.keep_flag,
457 p_created_by_tap_flag => p_partner_access_rec.created_by_tap_flag,
458 p_access_type => p_partner_access_rec.access_type,
459 p_vad_partner_id => p_partner_access_rec.vad_partner_id,
460 p_last_update_date => SYSDATE,
461 p_last_updated_by => FND_GLOBAL.USER_ID,
462 p_last_update_login => FND_GLOBAL.conc_login_id,
463 p_object_version_number => p_partner_access_rec.object_version_number,
464 p_request_id => p_partner_access_rec.request_id,
465 p_program_application_id => p_partner_access_rec.program_application_id,
466 p_program_id => p_partner_access_rec.program_id,
467 p_program_update_date => p_partner_access_rec.program_update_date,
468 p_attribute_category => p_partner_access_rec.attribute_category,
469 p_attribute1 => p_partner_access_rec.attribute1,
470 p_attribute2 => p_partner_access_rec.attribute2,
471 p_attribute3 => p_partner_access_rec.attribute3,
472 p_attribute4 => p_partner_access_rec.attribute4,
473 p_attribute5 => p_partner_access_rec.attribute5,
474 p_attribute6 => p_partner_access_rec.attribute6,
475 p_attribute7 => p_partner_access_rec.attribute7,
476 p_attribute8 => p_partner_access_rec.attribute8,
477 p_attribute9 => p_partner_access_rec.attribute9,
478 p_attribute10 => p_partner_access_rec.attribute10,
479 p_attribute11 => p_partner_access_rec.attribute11,
480 p_attribute12 => p_partner_access_rec.attribute12,
481 p_attribute13 => p_partner_access_rec.attribute13,
482 p_attribute14 => p_partner_access_rec.attribute14,
483 p_attribute15 => p_partner_access_rec.attribute15,
484 x_return_status => x_return_status);
485
486 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
487 l_err_msg := substr(to_char(SQLCODE)||'-'||SQLERRM,1,2000);
488 FND_MESSAGE.set_name('PV', 'PV_API_OTHERS_EXCEP');
489 FND_MESSAGE.set_token('ERROR', l_err_msg);
490 FND_MSG_PUB.add;
491 IF x_return_status = FND_API.G_RET_STS_ERROR THEN
492 RAISE FND_API.G_EXC_ERROR;
493 ELSE
494 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
495 END IF;
496 END IF;
497
498 --
499 -- End of API body.
500 --
501
502 -- Standard check for p_commit
503 IF FND_API.to_Boolean( p_commit )
504 THEN
505 COMMIT WORK;
506 END IF;
507
508
509 -- Debug Message
510 IF (PV_DEBUG_HIGH_ON) THEN
511 PVX_UTILITY_PVT.debug_message('Private API: ' || l_api_name || ' End');
512 END IF;
513
514 -- Standard call to get message count and if count is 1, get message info.
515 FND_MSG_PUB.Count_And_Get
516 (p_count => x_msg_count,
517 p_data => x_msg_data
518 );
519 EXCEPTION
520
521 WHEN PVX_UTILITY_PVT.resource_locked THEN
522 x_return_status := FND_API.g_ret_sts_error;
523 PVX_UTILITY_PVT.Error_Message(p_message_name => 'PV_API_RESOURCE_LOCKED');
524
525 WHEN FND_API.G_EXC_ERROR THEN
526 ROLLBACK TO UPDATE_Partner_Accesses_PVT;
527 x_return_status := FND_API.G_RET_STS_ERROR;
528 -- Standard call to get message count and if count=1, get the message
529 FND_MSG_PUB.Count_And_Get (
530 p_encoded => FND_API.G_FALSE,
531 p_count => x_msg_count,
532 p_data => x_msg_data
533 );
534
535 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
536 ROLLBACK TO UPDATE_Partner_Accesses_PVT;
537 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
538 -- Standard call to get message count and if count=1, get the message
539 FND_MSG_PUB.Count_And_Get (
540 p_encoded => FND_API.G_FALSE,
541 p_count => x_msg_count,
542 p_data => x_msg_data
543 );
544
545 WHEN OTHERS THEN
546 ROLLBACK TO UPDATE_Partner_Accesses_PVT;
547 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
548 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
549 THEN
550 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
551 END IF;
552 -- Standard call to get message count and if count=1, get the message
553 FND_MSG_PUB.Count_And_Get (
554 p_encoded => FND_API.G_FALSE,
555 p_count => x_msg_count,
556 p_data => x_msg_data
557 );
558 End Update_Partner_Accesses;
559
560 -- ==============================================================================
561 -- Start of Comments
562 -- ==============================================================================
563 -- API Name
564 -- Delete_Partner_Accesses
565 -- Type
566 -- Private
567 -- Pre-Req
568 --
569 -- Parameters
570 --
571 -- IN
572 -- p_api_version_number IN NUMBER Required
573 -- p_init_msg_list IN VARCHAR2 Optional Default = FND_API_G_FALSE
574 -- p_commit IN VARCHAR2 Optional Default = FND_API.G_FALSE
575 -- p_validation_level IN NUMBER Optional Default = FND_API.G_VALID_LEVEL_FULL
576 -- p_partner_access_id IN NUMBER
577 -- p_object_version_number IN NUMBER Optional Default = NULL
578 --
579 -- OUT
580 -- x_return_status OUT VARCHAR2
581 -- x_msg_count OUT NUMBER
582 -- x_msg_data OUT VARCHAR2
583 -- Version : Current version 1.0
584 -- Note: This automatic generated procedure definition, it includes standard IN/OUT parameters
585 -- and basic operation, developer must manually add parameters and business logic as necessary.
586 --
587 -- History
588 --
589 -- NOTE
590 --
591 -- End of Comments
592 -- ==============================================================================
593
594 PROCEDURE Delete_Partner_Accesses(
595 p_api_version_number IN NUMBER,
596 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
597 p_commit IN VARCHAR2 := FND_API.G_FALSE,
598 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
599 x_return_status OUT NOCOPY VARCHAR2,
600 x_msg_count OUT NOCOPY NUMBER,
601 x_msg_data OUT NOCOPY VARCHAR2,
602 p_partner_access_id IN NUMBER,
603 p_object_version_number IN NUMBER
604 )
605
606 IS
607 L_API_NAME CONSTANT VARCHAR2(30) := 'Delete_Partner_Accesses';
608 L_API_VERSION_NUMBER CONSTANT NUMBER := 1.0;
609 l_object_version_number NUMBER;
610 l_err_msg VARCHAR2(2000);
611
612 BEGIN
613 -- Standard Start of API savepoint
614 SAVEPOINT delete_partner_accesses_pvt;
615
616 -- Standard call to check for call compatibility.
617 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
618 p_api_version_number,
619 l_api_name,
620 G_PKG_NAME)
621 THEN
622 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
623 END IF;
624
625
626 -- Initialize message list if p_init_msg_list is set to TRUE.
627 IF FND_API.to_Boolean( p_init_msg_list )
628 THEN
629 FND_MSG_PUB.initialize;
630 END IF;
631
632 -- Debug Message
633 IF (PV_DEBUG_HIGH_ON) THEN
634 PVX_UTILITY_PVT.debug_message('Private API: ' || l_api_name || ' Start');
635 END IF;
636
637 -- Initialize API return status to SUCCESS
638 x_return_status := FND_API.G_RET_STS_SUCCESS;
639
640 --
641 -- Api body
642 --
643
644 -- Debug Message
645 IF (PV_DEBUG_HIGH_ON) THEN
646 PVX_UTILITY_PVT.debug_message( 'Private API: Calling delete table handler');
647 END IF;
648
649 -- Invoke table handler(Pv_Partner_Accesses_Pkg.Delete_Row)
650 Pv_Partner_Accesses_Pkg.Delete_Row(
651 p_partner_access_id => p_partner_access_id,
652 p_object_version_number => p_object_version_number ,
653 x_return_status => x_return_status);
654
655 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
656 l_err_msg := substr(to_char(SQLCODE)||'-'||SQLERRM,1,2000);
657 FND_MESSAGE.set_name('PV', 'PV_API_OTHERS_EXCEP');
658 FND_MESSAGE.set_token('ERROR', l_err_msg);
659 FND_MSG_PUB.add;
660 IF x_return_status = FND_API.G_RET_STS_ERROR THEN
661 RAISE FND_API.G_EXC_ERROR;
662 ELSE
663 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
664 END IF;
665 END IF;
666
667 --
668 -- End of API body
669 --
670
671 -- Standard check for p_commit
672 IF FND_API.to_Boolean( p_commit )
673 THEN
674 COMMIT WORK;
675 END IF;
676
677 -- Debug Message
678 IF (PV_DEBUG_HIGH_ON) THEN
679 PVX_UTILITY_PVT.debug_message('Private API: ' || l_api_name || ' End');
680 END IF;
681
682 -- Standard call to get message count and if count is 1, get message info.
683 FND_MSG_PUB.Count_And_Get
684 (p_count => x_msg_count,
685 p_data => x_msg_data
686 );
687 EXCEPTION
688
689 WHEN PVX_UTILITY_PVT.resource_locked THEN
690 x_return_status := FND_API.g_ret_sts_error;
691 PVX_UTILITY_PVT.Error_Message(p_message_name => 'PV_API_RESOURCE_LOCKED');
692
693 WHEN FND_API.G_EXC_ERROR THEN
694 ROLLBACK TO DELETE_Partner_Accesses_PVT;
695 x_return_status := FND_API.G_RET_STS_ERROR;
696
697 -- Standard call to get message count and if count=1, get the message
698 FND_MSG_PUB.Count_And_Get (
699 p_encoded => FND_API.G_FALSE,
700 p_count => x_msg_count,
701 p_data => x_msg_data
702 );
703
704 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
705 ROLLBACK TO DELETE_Partner_Accesses_PVT;
706 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
707
708 -- Standard call to get message count and if count=1, get the message
709 FND_MSG_PUB.Count_And_Get (
710 p_encoded => FND_API.G_FALSE,
711 p_count => x_msg_count,
712 p_data => x_msg_data
713 );
714
715 WHEN OTHERS THEN
716 ROLLBACK TO DELETE_Partner_Accesses_PVT;
717 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
718
719 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
720 THEN
721 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
722 END IF;
723
724 -- Standard call to get message count and if count=1, get the message
725 FND_MSG_PUB.Count_And_Get (
726 p_encoded => FND_API.G_FALSE,
727 p_count => x_msg_count,
728 p_data => x_msg_data
729 );
730 End Delete_Partner_Accesses;
731
732 -- Hint: Primary key needs to be returned.
733 -- ==============================================================================
734 -- Start of Comments
735 -- ==============================================================================
736 -- API Name
737 -- Lock_Partner_Accesses
738 -- Type
739 -- Private
740 -- Pre-Req
741 --
742 -- Parameters
743 --
744 -- IN
745 -- p_api_version_number IN NUMBER Required
746 -- p_init_msg_list IN VARCHAR2 Optional Default = FND_API_G_FALSE
747 -- p_commit IN VARCHAR2 Optional Default = FND_API.G_FALSE
748 -- p_validation_level IN NUMBER Optional Default = FND_API.G_VALID_LEVEL_FULL
749 -- p_partner_access_rec IN partner_access_rec_type Required
750 --
751 -- OUT
752 -- x_return_status OUT VARCHAR2
753 -- x_msg_count OUT NUMBER
754 -- x_msg_data OUT VARCHAR2
755 -- Version : Current version 1.0
756 -- Note: This automatic generated procedure definition, it includes standard IN/OUT parameters
757 -- and basic operation, developer must manually add parameters and business logic as necessary.
758 --
759 -- History
760 --
761 -- NOTE
762 --
763 -- End of Comments
764 -- ==============================================================================
765
766 PROCEDURE Lock_Partner_Accesses(
767 p_api_version_number IN NUMBER,
768 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
769 x_return_status OUT NOCOPY VARCHAR2,
770 x_msg_count OUT NOCOPY NUMBER,
771 x_msg_data OUT NOCOPY VARCHAR2,
772 p_partner_access_id IN NUMBER,
773 p_object_version_number IN NUMBER
774 )
775
776 IS
777 L_API_NAME CONSTANT VARCHAR2(30) := 'Lock_Partner_Accesses';
778 L_API_VERSION_NUMBER CONSTANT NUMBER := 1.0;
779 L_FULL_NAME CONSTANT VARCHAR2(60) := g_pkg_name ||'.'|| l_api_name;
780 l_partner_access_id NUMBER;
781 l_err_msg VARCHAR2(2000);
782
783 BEGIN
784 -- Standard Start of API savepoint
785 SAVEPOINT Lock_Partner_Accesses;
786
787 -- Debug Message
788 IF (PV_DEBUG_HIGH_ON) THEN
789 PVX_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
790 END IF;
791
792 -- Initialize message list if p_init_msg_list is set to TRUE.
793 IF FND_API.to_Boolean( p_init_msg_list )
794 THEN
795 FND_MSG_PUB.initialize;
796 END IF;
797
798 -- Standard call to check for call compatibility.
799 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
800 p_api_version_number,
801 l_api_name,
802 G_PKG_NAME)
803 THEN
804 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
805 END IF;
806
807 -- Initialize API return status to SUCCESS
808 x_return_status := FND_API.G_RET_STS_SUCCESS;
809
810 ------------------------ lock -------------------------
811 Pv_Partner_Accesses_Pkg.Lock_Row(
812 p_partner_access_id,
813 p_object_version_number,
814 x_return_status);
815
816 IF x_return_status = FND_API.G_RET_STS_ERROR THEN
817 RAISE FND_API.G_EXC_ERROR;
818 ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
819 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
820 END IF;
821
822 -------------------- finish --------------------------
823
824 FND_MSG_PUB.count_and_get(
825 p_encoded => FND_API.g_false,
826 p_count => x_msg_count,
827 p_data => x_msg_data);
828
829 -- Debug Message
830 IF (PV_DEBUG_HIGH_ON) THEN
831 PVX_UTILITY_PVT.debug_message(l_full_name ||': End');
832 END IF;
833
834 EXCEPTION
835
836 WHEN PVX_UTILITY_PVT.resource_locked THEN
837 x_return_status := FND_API.g_ret_sts_error;
838 PVX_UTILITY_PVT.Error_Message(p_message_name => 'PV_API_RESOURCE_LOCKED');
839
840 WHEN FND_API.G_EXC_ERROR THEN
841 ROLLBACK TO Lock_Partner_Accesses;
842 x_return_status := FND_API.G_RET_STS_ERROR;
843 -- Standard call to get message count and if count=1, get the message
844 FND_MSG_PUB.Count_And_Get (
845 p_encoded => FND_API.G_FALSE,
846 p_count => x_msg_count,
847 p_data => x_msg_data
848 );
849
850 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
851 ROLLBACK TO Lock_Partner_Accesses;
852 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
853 -- Standard call to get message count and if count=1, get the message
854 FND_MSG_PUB.Count_And_Get (
855 p_encoded => FND_API.G_FALSE,
856 p_count => x_msg_count,
857 p_data => x_msg_data
858 );
859
860 WHEN OTHERS THEN
861 ROLLBACK TO Lock_Partner_Accesses;
862 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
863 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
864 THEN
865 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
866 END IF;
867 -- Standard call to get message count and if count=1, get the message
868 FND_MSG_PUB.Count_And_Get (
869 p_encoded => FND_API.G_FALSE,
870 p_count => x_msg_count,
871 p_data => x_msg_data
872 );
873 End Lock_Partner_Accesses;
874
875 PROCEDURE chk_Partner_Access_Uk_Items(
876 p_partner_access_rec IN partner_access_rec_type,
877 p_validation_mode IN VARCHAR2 := JTF_PLSQL_API.g_create,
878 x_return_status OUT NOCOPY VARCHAR2)
879 IS
880 l_valid_flag VARCHAR2(1);
881
882 BEGIN
883 x_return_status := FND_API.g_ret_sts_success;
884 IF p_validation_mode = JTF_PLSQL_API.g_create AND
885 p_partner_access_rec.partner_access_id IS NOT NULL THEN
886 l_valid_flag := PVX_UTILITY_PVT.check_uniqueness(
887 'pv_partner_accesses',
888 'partner_access_id = ''' || p_partner_access_rec.partner_access_id ||''''
889 );
890 END IF;
891
892 IF l_valid_flag = FND_API.g_false THEN
893 PVX_UTILITY_PVT.Error_Message(p_message_name => 'PV_DUPLICATE_ID');
894 x_return_status := FND_API.g_ret_sts_error;
895 END IF;
896
897 END chk_Partner_Access_Uk_Items;
898
899 PROCEDURE chk_partner_access_Req_Items(
900 p_partner_access_rec IN partner_access_rec_type,
901 p_validation_mode IN VARCHAR2 := JTF_PLSQL_API.g_create,
902 x_return_status OUT NOCOPY VARCHAR2
903 )
904 IS
905 BEGIN
906 x_return_status := FND_API.g_ret_sts_success;
907
908 IF p_validation_mode = JTF_PLSQL_API.g_create THEN
909
910 -- Check for required paramter PARTNER_ID.
911 IF p_partner_access_rec.partner_id = FND_API.G_MISS_NUM OR p_partner_access_rec.partner_id IS NULL THEN
912 PVX_UTILITY_PVT.Error_Message('PV_API_MISSING_REQ_COLUMN', 'COLUMN', 'PARTNER_ID' );
913 x_return_status := FND_API.g_ret_sts_error;
914 END IF;
915
916 -- Check for required paramter RESOURCE_ID.
917 IF p_partner_access_rec.resource_id = FND_API.G_MISS_NUM OR p_partner_access_rec.resource_id IS NULL THEN
918 PVX_UTILITY_PVT.Error_Message('PV_API_MISSING_REQ_COLUMN', 'COLUMN', 'RESOURCE_ID' );
919 x_return_status := FND_API.g_ret_sts_error;
920 END IF;
921
922 -- Check for required paramter KEEP_FLAG.
923 IF p_partner_access_rec.keep_flag = FND_API.g_miss_char OR p_partner_access_rec.keep_flag IS NULL THEN
924 PVX_UTILITY_PVT.Error_Message('PV_API_MISSING_REQ_COLUMN', 'COLUMN', 'KEEP_FLAG' );
925 x_return_status := FND_API.g_ret_sts_error;
926 END IF;
927
928 -- Check for required paramter CREATED_BY_TAP_FLAG.
929 IF p_partner_access_rec.created_by_tap_flag = FND_API.g_miss_char OR p_partner_access_rec.created_by_tap_flag IS NULL THEN
930 PVX_UTILITY_PVT.Error_Message('PV_API_MISSING_REQ_COLUMN', 'COLUMN', 'CREATED_BY_TAP_FLAG' );
931 x_return_status := FND_API.g_ret_sts_error;
932 END IF;
933
934 -- Check for required paramter ACCESS_TYPE.
935 IF p_partner_access_rec.access_type = FND_API.g_miss_char OR p_partner_access_rec.access_type IS NULL THEN
936 PVX_UTILITY_PVT.Error_Message('PV_API_MISSING_REQ_COLUMN', 'COLUMN', 'ACCESS_TYPE' );
937 x_return_status := FND_API.g_ret_sts_error;
938 END IF;
939
940 ELSE
941
942 -- Check for PARTNER_ACCESS_ID in case of Update only.
943 IF p_partner_access_rec.partner_access_id = FND_API.G_MISS_NUM THEN
944 PVX_UTILITY_PVT.Error_Message('PV_API_MISSING_REQ_COLUMN', 'COLUMN', 'PARTNER_ACCESS_ID' );
945 x_return_status := FND_API.g_ret_sts_error;
946 END IF;
947
948 -- Check for required paramter PARTNER_ID.
949 IF p_partner_access_rec.partner_id = FND_API.G_MISS_NUM THEN
950 PVX_UTILITY_PVT.Error_Message('PV_API_MISSING_REQ_COLUMN', 'COLUMN', 'PARTNER_ID' );
951 x_return_status := FND_API.g_ret_sts_error;
952 END IF;
953
954 -- Check for required paramter RESOURCE_ID.
955 IF p_partner_access_rec.resource_id = FND_API.G_MISS_NUM THEN
956 PVX_UTILITY_PVT.Error_Message('PV_API_MISSING_REQ_COLUMN', 'COLUMN', 'RESOURCE_ID' );
957 x_return_status := FND_API.g_ret_sts_error;
958 END IF;
959
960 -- Check for required paramter KEEP_FLAG.
961 IF p_partner_access_rec.keep_flag = FND_API.g_miss_char THEN
962 PVX_UTILITY_PVT.Error_Message('PV_API_MISSING_REQ_COLUMN', 'COLUMN', 'KEEP_FLAG' );
963 x_return_status := FND_API.g_ret_sts_error;
964 END IF;
965
966 -- Check for required paramter CREATED_BY_TAP_FLAG.
967 IF p_partner_access_rec.created_by_tap_flag = FND_API.g_miss_char THEN
968 PVX_UTILITY_PVT.Error_Message('PV_API_MISSING_REQ_COLUMN', 'COLUMN', 'CREATED_BY_TAP_FLAG' );
969 x_return_status := FND_API.g_ret_sts_error;
970 END IF;
971
972 -- Check for required paramter ACCESS_TYPE.
973 IF p_partner_access_rec.access_type = FND_API.g_miss_char THEN
974 PVX_UTILITY_PVT.Error_Message('PV_API_MISSING_REQ_COLUMN', 'COLUMN', 'ACCESS_TYPE' );
975 x_return_status := FND_API.g_ret_sts_error;
976 END IF;
977 END IF;
978
979 END chk_partner_access_Req_Items;
980
981 PROCEDURE chk_partner_access_Fk_Items(
982 p_partner_access_rec IN partner_access_rec_type,
983 x_return_status OUT NOCOPY VARCHAR2
984 )
985 IS
986 -- check, the supplied partner in the PV_PARTNER_PROFILES table is ACTIVE and EXISTS.
987 CURSOR l_chk_partner_active_csr(cv_partner_id IN NUMBER) IS
988 SELECT 'Y'
989 FROM pv_partner_profiles
990 WHERE partner_id = cv_partner_id
991 AND status = 'A';
992
993 -- check, the supplied resource in the JTF_RS_RESOURCE_EXTNS table is ACTIVE and EXISTS.
994 CURSOR l_chk_resource_active_csr(cv_resource_id IN NUMBER) IS
995 SELECT 'Y'
996 FROM jtf_rs_resource_extns
997 WHERE resource_id = cv_resource_id
998 AND nvl(end_date_active , sysdate) >= sysdate;
999
1000 -- Local variale declaration.
1001 l_partner_active VARCHAR2(1) := 'N';
1002 l_resource_active VARCHAR2(1) := 'N';
1003
1004 BEGIN
1005 x_return_status := FND_API.g_ret_sts_success;
1006
1007 -- check, the supplied partner is an ACTIVE partner.
1008 OPEN l_chk_partner_active_csr(p_partner_access_rec.partner_id);
1009 FETCH l_chk_partner_active_csr INTO l_partner_active;
1010
1011 IF l_chk_partner_active_csr%NOTFOUND THEN
1012 CLOSE l_chk_partner_active_csr ;
1013 PVX_UTILITY_PVT.Error_Message('PV_PARTNER_NOT_ACTIVE');
1014 x_return_status := FND_API.g_ret_sts_error;
1015 ELSE
1016 CLOSE l_chk_partner_active_csr ;
1017 END IF;
1018
1019 -- check, whether the supplied Resource is ACTIVE or NOT-ACTIVE.
1020 OPEN l_chk_resource_active_csr(p_partner_access_rec.resource_id);
1021 FETCH l_chk_resource_active_csr INTO l_resource_active;
1022
1023 IF l_chk_resource_active_csr%NOTFOUND THEN
1024 CLOSE l_chk_resource_active_csr ;
1025 PVX_UTILITY_PVT.Error_Message('PV_INVALID_RESOURCE_ID');
1026 x_return_status := FND_API.g_ret_sts_error;
1027 ELSE
1028 CLOSE l_chk_resource_active_csr ;
1029 END IF;
1030
1031 END chk_partner_access_Fk_Items;
1032
1033 PROCEDURE chk_partner_access_Items (
1034 P_partner_access_rec IN partner_access_rec_type,
1035 p_validation_mode IN VARCHAR2,
1036 x_return_status OUT NOCOPY VARCHAR2
1037 )
1038 IS
1039 l_return_status VARCHAR2(1);
1040 BEGIN
1041
1042 l_return_status := FND_API.g_ret_sts_success;
1043 -- Check Items Uniqueness API calls
1044
1045 chk_Partner_Access_Uk_Items(
1046 p_partner_access_rec => p_partner_access_rec,
1047 p_validation_mode => p_validation_mode,
1048 x_return_status => x_return_status);
1049 IF x_return_status <> FND_API.g_ret_sts_success THEN
1050 l_return_status := FND_API.g_ret_sts_error;
1051 END IF;
1052
1053 -- Check Items Required/NOT NULL API calls
1054
1055 chk_partner_access_req_items(
1056 p_partner_access_rec => p_partner_access_rec,
1057 p_validation_mode => p_validation_mode,
1058 x_return_status => x_return_status);
1059 IF x_return_status <> FND_API.g_ret_sts_success THEN
1060 l_return_status := FND_API.g_ret_sts_error;
1061 END IF;
1062 -- Check Items Foreign Keys API calls
1063
1064 chk_partner_access_FK_items(
1065 p_partner_access_rec => p_partner_access_rec,
1066 x_return_status => x_return_status);
1067 IF x_return_status <> FND_API.g_ret_sts_success THEN
1068 l_return_status := FND_API.g_ret_sts_error;
1069 END IF;
1070
1071 -- Check Items Lookups
1072 x_return_status := l_return_status;
1073
1074 END chk_partner_access_Items;
1075
1076 PROCEDURE Complete_Partner_Access_Rec (
1077 p_partner_access_rec IN partner_access_rec_type,
1078 x_complete_rec OUT NOCOPY partner_access_rec_type)
1079 IS
1080 l_return_status VARCHAR2(1);
1081
1082 CURSOR c_complete IS
1083 SELECT *
1084 FROM pv_partner_accesses
1085 WHERE partner_access_id = p_partner_access_rec.partner_access_id;
1086 l_partner_access_rec c_complete%ROWTYPE;
1087 BEGIN
1088 x_complete_rec := p_partner_access_rec;
1089
1090 OPEN c_complete;
1091 FETCH c_complete INTO l_partner_access_rec;
1092 CLOSE c_complete;
1093
1094 -- partner_access_id
1095 IF p_partner_access_rec.partner_access_id IS NULL THEN
1096 x_complete_rec.partner_access_id := l_partner_access_rec.partner_access_id;
1097 END IF;
1098
1099 -- partner_id
1100 IF p_partner_access_rec.partner_id IS NULL THEN
1101 x_complete_rec.partner_id := l_partner_access_rec.partner_id;
1102 END IF;
1103
1104 -- resource_id
1105 IF p_partner_access_rec.resource_id IS NULL THEN
1106 x_complete_rec.resource_id := l_partner_access_rec.resource_id;
1107 END IF;
1108
1109 -- keep_flag
1110 IF p_partner_access_rec.keep_flag IS NULL THEN
1111 x_complete_rec.keep_flag := l_partner_access_rec.keep_flag;
1112 END IF;
1113
1114 -- created_by_tap_flag
1115 IF p_partner_access_rec.created_by_tap_flag IS NULL THEN
1116 x_complete_rec.created_by_tap_flag := l_partner_access_rec.created_by_tap_flag;
1117 END IF;
1118
1119 -- access_type
1120 IF p_partner_access_rec.access_type IS NULL THEN
1121 x_complete_rec.access_type := l_partner_access_rec.access_type;
1122 END IF;
1123
1124 -- vad_partner_id
1125 IF p_partner_access_rec.vad_partner_id IS NULL THEN
1126 x_complete_rec.vad_partner_id := l_partner_access_rec.vad_partner_id;
1127 END IF;
1128
1129 -- last_update_date
1130 IF p_partner_access_rec.last_update_date IS NULL THEN
1131 x_complete_rec.last_update_date := l_partner_access_rec.last_update_date;
1132 END IF;
1133
1134 -- last_updated_by
1135 IF p_partner_access_rec.last_updated_by IS NULL THEN
1136 x_complete_rec.last_updated_by := l_partner_access_rec.last_updated_by;
1137 END IF;
1138
1139 -- creation_date
1140 IF p_partner_access_rec.creation_date IS NULL THEN
1141 x_complete_rec.creation_date := l_partner_access_rec.creation_date;
1142 END IF;
1143
1144 -- created_by
1145 IF p_partner_access_rec.created_by IS NULL THEN
1146 x_complete_rec.created_by := l_partner_access_rec.created_by;
1147 END IF;
1148
1149 -- last_update_login
1150 IF p_partner_access_rec.last_update_login IS NULL THEN
1151 x_complete_rec.last_update_login := l_partner_access_rec.last_update_login;
1152 END IF;
1153
1154 -- request_id
1155 IF p_partner_access_rec.request_id IS NULL THEN
1156 x_complete_rec.request_id := l_partner_access_rec.request_id;
1157 END IF;
1158
1159 -- program_application_id
1160 IF p_partner_access_rec.program_application_id IS NULL THEN
1161 x_complete_rec.program_application_id := l_partner_access_rec.program_application_id;
1162 END IF;
1163
1164 -- program_id
1165 IF p_partner_access_rec.program_id IS NULL THEN
1166 x_complete_rec.program_id := l_partner_access_rec.program_id;
1167 END IF;
1168
1169 -- program_update_date
1170 IF p_partner_access_rec.program_update_date IS NULL THEN
1171 x_complete_rec.program_update_date := l_partner_access_rec.program_update_date;
1172 END IF;
1173
1174 -- attribute_category
1175 IF p_partner_access_rec.attribute_category IS NULL THEN
1176 x_complete_rec.attribute_category := l_partner_access_rec.attribute_category;
1177 END IF;
1178
1179 -- attribute1
1180 IF p_partner_access_rec.attribute1 IS NULL THEN
1181 x_complete_rec.attribute1 := l_partner_access_rec.attribute1;
1182 END IF;
1183
1184 -- attribute2
1185 IF p_partner_access_rec.attribute2 IS NULL THEN
1186 x_complete_rec.attribute2 := l_partner_access_rec.attribute2;
1187 END IF;
1188
1189 -- attribute3
1190 IF p_partner_access_rec.attribute3 IS NULL THEN
1191 x_complete_rec.attribute3 := l_partner_access_rec.attribute3;
1192 END IF;
1193
1194 -- attribute4
1195 IF p_partner_access_rec.attribute4 IS NULL THEN
1196 x_complete_rec.attribute4 := l_partner_access_rec.attribute4;
1197 END IF;
1198
1199 -- attribute5
1200 IF p_partner_access_rec.attribute5 IS NULL THEN
1201 x_complete_rec.attribute5 := l_partner_access_rec.attribute5;
1202 END IF;
1203
1204 -- attribute6
1205 IF p_partner_access_rec.attribute6 IS NULL THEN
1206 x_complete_rec.attribute6 := l_partner_access_rec.attribute6;
1207 END IF;
1208
1209 -- attribute7
1210 IF p_partner_access_rec.attribute7 IS NULL THEN
1211 x_complete_rec.attribute7 := l_partner_access_rec.attribute7;
1212 END IF;
1213
1214 -- attribute8
1215 IF p_partner_access_rec.attribute8 IS NULL THEN
1216 x_complete_rec.attribute8 := l_partner_access_rec.attribute8;
1217 END IF;
1218
1219 -- attribute9
1220 IF p_partner_access_rec.attribute9 IS NULL THEN
1221 x_complete_rec.attribute9 := l_partner_access_rec.attribute9;
1222 END IF;
1223
1224 -- attribute10
1225 IF p_partner_access_rec.attribute10 IS NULL THEN
1226 x_complete_rec.attribute10 := l_partner_access_rec.attribute10;
1227 END IF;
1228
1229 -- attribute11
1230 IF p_partner_access_rec.attribute11 IS NULL THEN
1231 x_complete_rec.attribute11 := l_partner_access_rec.attribute11;
1232 END IF;
1233
1234 -- attribute12
1235 IF p_partner_access_rec.attribute12 IS NULL THEN
1236 x_complete_rec.attribute12 := l_partner_access_rec.attribute12;
1237 END IF;
1238
1239 -- attribute13
1240 IF p_partner_access_rec.attribute13 IS NULL THEN
1241 x_complete_rec.attribute13 := l_partner_access_rec.attribute13;
1242 END IF;
1243
1244 -- attribute14
1245 IF p_partner_access_rec.attribute14 IS NULL THEN
1246 x_complete_rec.attribute14 := l_partner_access_rec.attribute14;
1247 END IF;
1248
1249 -- attribute15
1250 IF p_partner_access_rec.attribute15 IS NULL THEN
1251 x_complete_rec.attribute15 := l_partner_access_rec.attribute15;
1252 END IF;
1253
1254 END Complete_Partner_Access_Rec;
1255
1256 PROCEDURE Default_Partner_Access_Items (
1257 p_partner_access_rec IN partner_access_rec_type ,
1258 x_partner_access_rec OUT NOCOPY partner_access_rec_type )
1259 IS
1260 l_partner_access_rec partner_access_rec_type := p_partner_access_rec;
1261 BEGIN
1262 -- Some default the setting for different column attributes.
1263 IF p_partner_access_rec.keep_flag IS NULL OR p_partner_access_rec.keep_flag = FND_API.G_MISS_CHAR THEN
1264 l_partner_access_rec.keep_flag := 'Y' ;
1265 END IF ;
1266
1267 IF p_partner_access_rec.created_by_tap_flag IS NULL OR p_partner_access_rec.created_by_tap_flag = FND_API.G_MISS_CHAR THEN
1268 l_partner_access_rec.keep_flag := 'Y' ;
1269 END IF ;
1270
1271 IF p_partner_access_rec.access_type IS NULL OR p_partner_access_rec.access_type = FND_API.G_MISS_CHAR THEN
1272 l_partner_access_rec.access_type := 'F' ;
1273 END IF ;
1274
1275 x_partner_access_rec := l_partner_access_rec;
1276 END;
1277
1278 PROCEDURE Validate_Partner_Accesses(
1279 p_api_version_number IN NUMBER,
1280 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1281 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
1282 p_partner_access_rec IN partner_access_rec_type,
1283 p_validation_mode IN VARCHAR2,
1284 x_return_status OUT NOCOPY VARCHAR2,
1285 x_msg_count OUT NOCOPY NUMBER,
1286 x_msg_data OUT NOCOPY VARCHAR2
1287 )
1288 IS
1289 L_API_NAME CONSTANT VARCHAR2(30) := 'Validate_Partner_Accesses';
1290 L_API_VERSION_NUMBER CONSTANT NUMBER := 1.0;
1291 l_object_version_number NUMBER;
1292 l_partner_access_rec partner_access_rec_type ;
1293 ld_partner_access_rec partner_access_rec_type ;
1294
1295 BEGIN
1296 -- Standard Start of API savepoint
1297 SAVEPOINT validate_partner_accesses;
1298
1299 -- Standard call to check for call compatibility.
1300 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
1301 p_api_version_number,
1302 l_api_name,
1303 G_PKG_NAME)
1304 THEN
1305 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1306 END IF;
1307
1308 -- Debug Message
1309 IF (PV_DEBUG_HIGH_ON) THEN
1310 PVX_UTILITY_PVT.debug_message('Private API: ' || l_api_name || ' Start');
1311 END IF;
1312
1313 -- Initialize message list if p_init_msg_list is set to TRUE.
1314 IF FND_API.to_Boolean( p_init_msg_list )
1315 THEN
1316 FND_MSG_PUB.initialize;
1317 END IF;
1318
1319 -- Initialize API return status to SUCCESS
1320 x_return_status := FND_API.G_RET_STS_SUCCESS;
1321
1322 IF p_validation_level >= JTF_PLSQL_API.g_valid_level_item THEN
1323 chk_partner_access_Items(
1324 p_partner_access_rec => p_partner_access_rec,
1325 p_validation_mode => p_validation_mode,
1326 x_return_status => x_return_status
1327 );
1328
1329 IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1330 RAISE FND_API.G_EXC_ERROR;
1331 ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1332 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1333 END IF;
1334 END IF;
1335
1336 IF p_validation_mode = JTF_PLSQL_API.g_create THEN
1337 Default_Partner_Access_Items (
1338 p_partner_access_rec => p_partner_access_rec ,
1339 x_partner_access_rec => ld_partner_access_rec) ;
1340 END IF ;
1341
1342 Complete_partner_access_Rec(
1343 p_partner_access_rec => ld_partner_access_rec,
1344 x_complete_rec => l_partner_access_rec
1345 );
1346
1347 IF p_validation_level >= JTF_PLSQL_API.g_valid_level_item THEN
1348 Validate_partner_access_Rec(
1349 p_api_version_number => 1.0,
1350 p_init_msg_list => FND_API.G_FALSE,
1351 x_return_status => x_return_status,
1352 x_msg_count => x_msg_count,
1353 x_msg_data => x_msg_data,
1354 p_partner_access_rec => l_partner_access_rec);
1355
1356 IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1357 RAISE FND_API.G_EXC_ERROR;
1358 ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1359 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1360 END IF;
1361 END IF;
1362
1363
1364 -- Debug Message
1365 IF (PV_DEBUG_HIGH_ON) THEN
1366 PVX_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'end');
1367 END IF;
1368
1369
1370 -- Standard call to get message count and if count is 1, get message info.
1371 FND_MSG_PUB.Count_And_Get
1372 (p_count => x_msg_count,
1373 p_data => x_msg_data
1374 );
1375 EXCEPTION
1376 WHEN PVX_UTILITY_PVT.resource_locked THEN
1377 x_return_status := FND_API.g_ret_sts_error;
1378 PVX_UTILITY_PVT.Error_Message(p_message_name => 'PV_API_RESOURCE_LOCKED');
1379
1380 WHEN FND_API.G_EXC_ERROR THEN
1381 ROLLBACK TO VALIDATE_Partner_Accesses;
1382 x_return_status := FND_API.G_RET_STS_ERROR;
1383
1384 -- Standard call to get message count and if count=1, get the message
1385 FND_MSG_PUB.Count_And_Get (
1386 p_encoded => FND_API.G_FALSE,
1387 p_count => x_msg_count,
1388 p_data => x_msg_data
1389 );
1390
1391 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1392 ROLLBACK TO VALIDATE_Partner_Accesses;
1393 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1394
1395 -- Standard call to get message count and if count=1, get the message
1396 FND_MSG_PUB.Count_And_Get (
1397 p_encoded => FND_API.G_FALSE,
1398 p_count => x_msg_count,
1399 p_data => x_msg_data
1400 );
1401
1402 WHEN OTHERS THEN
1403 ROLLBACK TO VALIDATE_Partner_Accesses;
1404 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1405
1406 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1407 THEN
1408 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
1409 END IF;
1410
1411 -- Standard call to get message count and if count=1, get the message
1412 FND_MSG_PUB.Count_And_Get (
1413 p_encoded => FND_API.G_FALSE,
1414 p_count => x_msg_count,
1415 p_data => x_msg_data
1416 );
1417 End Validate_Partner_Accesses;
1418
1419
1420 PROCEDURE Validate_Partner_Access_Rec (
1421 p_api_version_number IN NUMBER,
1422 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1423 x_return_status OUT NOCOPY VARCHAR2,
1424 x_msg_count OUT NOCOPY NUMBER,
1425 x_msg_data OUT NOCOPY VARCHAR2,
1426 p_partner_access_rec IN partner_access_rec_type
1427 )
1428 IS
1429 BEGIN
1430 -- Initialize message list if p_init_msg_list is set to TRUE.
1431 IF FND_API.to_Boolean( p_init_msg_list )
1432 THEN
1433 FND_MSG_PUB.initialize;
1434 END IF;
1435
1436 -- Initialize API return status to SUCCESS
1437 x_return_status := FND_API.G_RET_STS_SUCCESS;
1438
1439 -- Hint: Validate data
1440 -- If data not valid
1441 -- THEN
1442 -- x_return_status := FND_API.G_RET_STS_ERROR;
1443
1444 -- Validate the FLAG value for KEEP_FLAG and CREATED_BY TAP_FLAG
1445 IF ( p_partner_access_rec.keep_flag <> 'Y' AND p_partner_access_rec.keep_flag <> 'N' ) THEN
1446 PVX_UTILITY_PVT.Error_Message('PV_INVALID_FLAG');
1447 x_return_status := FND_API.G_RET_STS_ERROR;
1448 END IF;
1449
1450 IF ( p_partner_access_rec.CREATED_BY_TAP_FLAG <> 'Y' AND p_partner_access_rec.CREATED_BY_TAP_FLAG <> 'N' ) THEN
1451 PVX_UTILITY_PVT.Error_Message('PV_INVALID_FLAG');
1452 x_return_status := FND_API.G_RET_STS_ERROR;
1453 END IF;
1454
1455 -- Standard call to get message count and if count is 1, get message info.
1456 FND_MSG_PUB.Count_And_Get
1457 (p_count => x_msg_count,
1458 p_data => x_msg_data
1459 );
1460 END Validate_partner_access_Rec;
1461
1462 END PV_Partner_Accesses_PVT;