[Home] [Help]
PACKAGE BODY: APPS.PV_TAP_ACCESS_TERRS_PVT
Source
1 PACKAGE BODY PV_TAP_ACCESS_TERRS_PVT as
2 /* $Header: pvxvtrab.pls 115.1 2003/10/17 09:52:51 rdsharma noship $ */
3 -- ===============================================================
4 -- Start of Comments
5 -- Package name
6 -- PV_TAP_ACCESS_TERRS_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_TAP_ACCESS_TERRS_PVT';
21 G_FILE_NAME CONSTANT VARCHAR2(12) := 'pvxvtrab.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_Tap_Access_Terrs
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_tap_access_terrs_rec IN tap_access_terrs_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_Tap_Access_Terrs(
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_tap_access_terrs_rec IN tap_access_terrs_rec_type := g_miss_tap_access_terrs_rec
76 )
77 IS
78 L_API_NAME CONSTANT VARCHAR2(30) := 'Create_Tap_Access_Terrs';
79 L_API_VERSION_NUMBER CONSTANT NUMBER := 1.0;
80 l_return_status_full VARCHAR2(1);
81 l_object_version_number NUMBER := 1;
82 l_org_id NUMBER ;
83 l_partner_access_id NUMBER;
84 l_terr_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 BEGIN
91 -- Standard Start of API savepoint
92 SAVEPOINT Create_Tap_Access_Terrs_Pvt;
93
94 -- Standard call to check for call compatibility.
95 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
96 p_api_version_number,
97 l_api_name,
98 G_PKG_NAME)
99 THEN
100 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
101 END IF;
102
103 -- Initialize message list if p_init_msg_list is set to TRUE.
104 IF FND_API.to_Boolean( p_init_msg_list )
105 THEN
106 FND_MSG_PUB.initialize;
107 END IF;
108
109 -- Debug Message
110 IF (PV_DEBUG_HIGH_ON) THEN
111 PVX_Utility_PVT.debug_message('Private API: ' || l_api_name || ' start');
112 END IF;
113
114 -- Initialize API return status to SUCCESS
115 x_return_status := FND_API.G_RET_STS_SUCCESS;
116
117 -- =========================================================================
118 -- Validate Environment
119 -- =========================================================================
120
121 IF FND_GLOBAL.USER_ID IS NULL
122 THEN
123 PVX_Utility_PVT.Error_Message(p_message_name => 'USER_PROFILE_MISSING');
124 RAISE FND_API.G_EXC_ERROR;
125 END IF;
126
127 IF ( P_validation_level >= FND_API.G_VALID_LEVEL_FULL)
128 THEN
129 -- Debug Message
130 IF (PV_DEBUG_HIGH_ON) THEN
131 PVX_Utility_PVT.debug_message('Private API: Validate_Tap_Access_Terrs');
132 END IF;
133
134 -- Invoke validation procedures
135 Validate_Tap_Access_Terrs(
136 p_api_version_number => 1.0,
137 p_init_msg_list => FND_API.G_FALSE,
138 p_validation_level => p_validation_level,
139 p_validation_mode => JTF_PLSQL_API.g_create,
140 p_tap_access_terrs_rec => p_tap_access_terrs_rec ,
141 x_return_status => x_return_status,
142 x_msg_count => x_msg_count,
143 x_msg_data => x_msg_data);
144 END IF;
145
146 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
147 RAISE FND_API.G_EXC_ERROR;
148 END IF;
149
150 -- Local variable initialization
151
152 l_partner_access_id := p_tap_access_terrs_rec.partner_access_id;
153 l_terr_id := p_tap_access_terrs_rec.terr_id;
154
155 -- Debug Message
156 IF (PV_DEBUG_HIGH_ON) THEN
157 PVX_Utility_PVT.debug_message( 'Private API: Calling create table handler');
158 END IF;
159
160 -- Invoke table handler(Pv_Territory_Accesses_Pkg.Insert_Row)
161 Pv_Tap_Access_Terrs_Pkg.Insert_Row(
162 p_partner_access_id => p_tap_access_terrs_rec.partner_access_id,
163 p_terr_id => p_tap_access_terrs_rec.terr_id,
164 p_last_update_date => SYSDATE,
165 p_last_updated_by => FND_GLOBAL.USER_ID,
166 p_creation_date => SYSDATE,
167 p_created_by => FND_GLOBAL.USER_ID,
168 p_last_update_login => FND_GLOBAL.conc_login_id,
169 p_object_version_number => l_object_version_number,
170 p_request_id => p_tap_access_terrs_rec.request_id,
171 p_program_application_id => p_tap_access_terrs_rec.program_application_id,
172 p_program_id => p_tap_access_terrs_rec.program_id,
173 p_program_update_date => p_tap_access_terrs_rec.program_update_date,
174 x_return_status => x_return_status);
175
176 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
177 l_err_msg := substr(to_char(SQLCODE)||'-'||SQLERRM,1,2000);
178 FND_MESSAGE.set_name('PV', 'PV_API_OTHERS_EXCEP');
179 FND_MESSAGE.set_token('ERROR', l_err_msg);
180 FND_MSG_PUB.add;
181 IF x_return_status = FND_API.G_RET_STS_ERROR THEN
182 RAISE FND_API.G_EXC_ERROR;
183 ELSE
184 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
185 END IF;
186 END IF;
187 --
188 -- End of API body
189 --
190
191 -- Standard check for p_commit
192 IF FND_API.to_Boolean( p_commit )
193 THEN
194 COMMIT WORK;
195 END IF;
196
197
198 -- Debug Message
199 IF (PV_DEBUG_HIGH_ON) THEN
200 PVX_Utility_PVT.debug_message('Private API: ' || l_api_name || 'end');
201 END IF;
202
203 -- Standard call to get message count and if count is 1, get message info.
204 FND_MSG_PUB.Count_And_Get
205 (p_count => x_msg_count,
206 p_data => x_msg_data
207 );
208
209 EXCEPTION
210 WHEN PVX_Utility_PVT.resource_locked THEN
211 x_return_status := FND_API.g_ret_sts_error;
212 PVX_Utility_PVT.Error_Message(p_message_name => 'PV_API_RESOURCE_LOCKED');
213
214 WHEN FND_API.G_EXC_ERROR THEN
215 ROLLBACK TO Create_Tap_Access_Terrs_Pvt;
216 x_return_status := FND_API.G_RET_STS_ERROR;
217 -- Standard call to get message count and if count=1, get the message
218 FND_MSG_PUB.Count_And_Get (
219 p_encoded => FND_API.G_FALSE,
220 p_count => x_msg_count,
221 p_data => x_msg_data
222 );
223
224 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
225 ROLLBACK TO Create_Tap_Access_Terrs_Pvt;
226 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
227
228 -- Standard call to get message count and if count=1, get the message
229 FND_MSG_PUB.Count_And_Get (
230 p_encoded => FND_API.G_FALSE,
231 p_count => x_msg_count,
232 p_data => x_msg_data
233 );
234
235 WHEN OTHERS THEN
236 ROLLBACK TO Create_Tap_Access_Terrs_Pvt;
237 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
238
239 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
240 THEN
241 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
242 END IF;
243
244 -- Standard call to get message count and if count=1, get the message
245 FND_MSG_PUB.Count_And_Get (
246 p_encoded => FND_API.G_FALSE,
247 p_count => x_msg_count,
248 p_data => x_msg_data
249 );
250 End Create_Tap_Access_Terrs;
251
252
253 -- ==============================================================================
254 -- Start of Comments
255 -- ==============================================================================
256 -- API Name
257 -- Update_Tap_Access_Terrs
258 -- Type
259 -- Private
260 -- Pre-Req
261 --
262 -- Parameters
263 --
264 -- IN
265 -- p_api_version_number IN NUMBER Required
266 -- p_init_msg_list IN VARCHAR2 Optional Default = FND_API_G_FALSE
267 -- p_commit IN VARCHAR2 Optional Default = FND_API.G_FALSE
268 -- p_validation_level IN NUMBER Optional Default = FND_API.G_VALID_LEVEL_FULL
269 -- p_tap_access_terrs_rec IN tap_access_terrs_rec_type Required
270 --
271 -- OUT
272 -- x_return_status OUT VARCHAR2
273 -- x_msg_count OUT NUMBER
274 -- x_msg_data OUT VARCHAR2
275 -- Version : Current version 1.0
276 -- Note: This automatic generated procedure definition, it includes standard IN/OUT parameters
277 -- and basic operation, developer must manually add parameters and business logic as necessary.
278 --
279 -- History
280 --
281 -- NOTE
282 --
283 -- End of Comments
284 -- ==============================================================================
285
286 PROCEDURE Update_Tap_Access_Terrs(
287 p_api_version_number IN NUMBER,
288 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
289 p_commit IN VARCHAR2 := FND_API.G_FALSE,
290 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
291 x_return_status OUT NOCOPY VARCHAR2,
292 x_msg_count OUT NOCOPY NUMBER,
293 x_msg_data OUT NOCOPY VARCHAR2,
294 p_tap_access_terrs_rec IN tap_access_terrs_rec_type
295 )
296 IS
297
298 CURSOR c_get_territory_accesses(cv_partner_access_id NUMBER,cv_terr_id NUMBER) IS
299 SELECT *
300 FROM PV_TAP_ACCESS_TERRS
301 WHERE partner_access_id = cv_partner_access_id
302 AND terr_id = cv_terr_id;
303
304 L_API_NAME CONSTANT VARCHAR2(30) := 'Update_Tap_Access_Terrs';
305 L_API_VERSION_NUMBER CONSTANT NUMBER := 1.0;
306
307 -- Local Variables
308 l_object_version_number NUMBER;
309 l_partner_access_id NUMBER;
310 l_terr_id NUMBER;
311 l_ref_territory_access_rec c_get_Territory_Accesses%ROWTYPE ;
312 l_tar_tap_access_terrs_rec tap_access_terrs_rec_type := p_tap_access_terrs_rec;
313 l_rowid ROWID;
314 l_err_msg VARCHAR(2000);
315
316 BEGIN
317 -- Standard Start of API savepoint
318 SAVEPOINT Update_Tap_Access_Terrs_Pvt;
319
320 -- Standard call to check for call compatibility.
321 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
322 p_api_version_number,
323 l_api_name,
324 G_PKG_NAME)
325 THEN
326 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
327 END IF;
328
329
330 -- Initialize message list if p_init_msg_list is set to TRUE.
331 IF FND_API.to_Boolean( p_init_msg_list )
332 THEN
333 FND_MSG_PUB.initialize;
334 END IF;
335
336
337 -- Debug Message
338 IF (PV_DEBUG_HIGH_ON) THEN
339 PVX_Utility_PVT.debug_message('Private API: ' || l_api_name || ' Start');
340 END IF;
341
342 -- Initialize API return status to SUCCESS
343 x_return_status := FND_API.G_RET_STS_SUCCESS;
344
345 -- Debug Message
346 IF (PV_DEBUG_HIGH_ON) THEN
347 PVX_Utility_PVT.debug_message('Private API: - Open Cursor to Select');
348 END IF;
349
350 OPEN c_get_Territory_Accesses(
351 l_tar_tap_access_terrs_rec.partner_access_id ,
352 l_tar_tap_access_terrs_rec.terr_id );
353
354 FETCH c_get_Territory_Accesses INTO l_ref_territory_access_rec ;
355
356 IF ( c_get_Territory_Accesses%NOTFOUND) THEN
357 PVX_Utility_PVT.Error_Message(
358 p_message_name => 'API_MISSING_UPDATE_TARGET',
359 p_token_name => 'INFO',
360 p_token_value => 'Territory_Accesses') ;
361
362 RAISE FND_API.G_EXC_ERROR;
363 END IF;
364
365 -- Debug Message
366 IF (PV_DEBUG_HIGH_ON) THEN
367 PVX_Utility_PVT.debug_message('Private API: - Close Cursor c_get_Territory_Accesses;');
368 END IF;
369
370 CLOSE c_get_Territory_Accesses;
371
372 If (l_tar_tap_access_terrs_rec.object_version_number is NULL or
373 l_tar_tap_access_terrs_rec.object_version_number = FND_API.G_MISS_NUM ) Then
374 PVX_Utility_PVT.Error_Message(
375 p_message_name => 'API_VERSION_MISSING',
376 p_token_name => 'COLUMN',
377 p_token_value => 'OBJECT_VERSION_NUMBER') ;
378 raise FND_API.G_EXC_ERROR;
379 End if;
380
381 -- Check Whether record has been changed by someone else
382 If (l_tar_tap_access_terrs_rec.object_version_number <> l_ref_territory_access_rec.object_version_number) Then
383 PVX_Utility_PVT.Error_Message(
384 p_message_name => 'API_RECORD_CHANGED',
385 p_token_name => 'INFO',
386 p_token_value => 'Territory_Accesses') ;
387 raise FND_API.G_EXC_ERROR;
388 End if;
389
390 IF ( P_validation_level >= FND_API.G_VALID_LEVEL_FULL)
391 THEN
392 -- Debug Message
393 IF (PV_DEBUG_HIGH_ON) THEN
394 PVX_Utility_PVT.debug_message('Private API: Validate_Territory_Accesses');
395 END IF;
396
397 -- Invoke validation procedures
398 Validate_Tap_Access_Terrs(
399 p_api_version_number => 1.0,
400 p_init_msg_list => FND_API.G_FALSE,
401 p_validation_level => p_validation_level,
402 p_validation_mode => JTF_PLSQL_API.g_update,
403 p_tap_access_terrs_rec => p_tap_access_terrs_rec,
404 x_return_status => x_return_status,
405 x_msg_count => x_msg_count,
406 x_msg_data => x_msg_data);
407 END IF;
408
409 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
410 RAISE FND_API.G_EXC_ERROR;
411 END IF;
412
413
414 -- Debug Message
415 IF (PV_DEBUG_HIGH_ON) THEN
416 PVX_Utility_PVT.debug_message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API: Calling update table handler');
417 END IF;
418
419 -- Invoke table handler(Pv_Territory_Accesses_Pkg.Update_Row)
420 Pv_Tap_Access_Terrs_Pkg.Update_Row(
421 p_partner_access_id => p_tap_access_terrs_rec.partner_access_id,
422 p_terr_id => p_tap_access_terrs_rec.terr_id,
423 p_last_update_date => SYSDATE,
424 p_last_updated_by => FND_GLOBAL.USER_ID,
425 p_last_update_login => FND_GLOBAL.conc_login_id,
426 p_object_version_number => p_tap_access_terrs_rec.object_version_number,
427 p_request_id => p_tap_access_terrs_rec.request_id,
428 p_program_application_id => p_tap_access_terrs_rec.program_application_id,
429 p_program_id => p_tap_access_terrs_rec.program_id,
430 p_program_update_date => p_tap_access_terrs_rec.program_update_date,
431 x_return_status => x_return_status);
432
433 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
434 l_err_msg := substr(to_char(SQLCODE)||'-'||SQLERRM,1,2000);
435 FND_MESSAGE.set_name('PV', 'PV_API_OTHERS_EXCEP');
436 FND_MESSAGE.set_token('ERROR', l_err_msg);
437 FND_MSG_PUB.add;
438 IF x_return_status = FND_API.G_RET_STS_ERROR THEN
439 RAISE FND_API.G_EXC_ERROR;
440 ELSE
441 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
442 END IF;
443 END IF;
444 --
445 -- End of API body.
446 --
447
448 -- Standard check for p_commit
449 IF FND_API.to_Boolean( p_commit )
450 THEN
451 COMMIT WORK;
452 END IF;
453
454
455 -- Debug Message
456 IF (PV_DEBUG_HIGH_ON) THEN
457 PVX_Utility_PVT.debug_message('Private API: ' || l_api_name || ' End');
458 END IF;
459
460 -- Standard call to get message count and if count is 1, get message info.
461 FND_MSG_PUB.Count_And_Get
462 (p_count => x_msg_count,
463 p_data => x_msg_data
464 );
465 EXCEPTION
466
467 WHEN PVX_Utility_PVT.resource_locked THEN
468 x_return_status := FND_API.g_ret_sts_error;
469 PVX_Utility_PVT.Error_Message(p_message_name => 'PV_API_RESOURCE_LOCKED');
470
471 WHEN FND_API.G_EXC_ERROR THEN
472 ROLLBACK TO Update_Tap_Access_Terrs_Pvt;
473 x_return_status := FND_API.G_RET_STS_ERROR;
474
475 -- Standard call to get message count and if count=1, get the message
476 FND_MSG_PUB.Count_And_Get (
477 p_encoded => FND_API.G_FALSE,
478 p_count => x_msg_count,
479 p_data => x_msg_data
480 );
481
482 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
483 ROLLBACK TO Update_Tap_Access_Terrs_Pvt;
484 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
485
486 -- Standard call to get message count and if count=1, get the message
487 FND_MSG_PUB.Count_And_Get (
488 p_encoded => FND_API.G_FALSE,
489 p_count => x_msg_count,
490 p_data => x_msg_data
491 );
492
493 WHEN OTHERS THEN
494 ROLLBACK TO Update_Tap_Access_Terrs_Pvt;
495 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
496
497 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
498 THEN
499 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
500 END IF;
501
502 -- Standard call to get message count and if count=1, get the message
503 FND_MSG_PUB.Count_And_Get (
504 p_encoded => FND_API.G_FALSE,
505 p_count => x_msg_count,
506 p_data => x_msg_data
507 );
508 End Update_Tap_Access_Terrs;
509
510 -- ==============================================================================
511 -- Start of Comments
512 -- ==============================================================================
513 -- API Name
514 -- Delete_Tap_Access_Terrs
515 -- Type
516 -- Private
517 -- Pre-Req
518 --
519 -- Parameters
520 --
521 -- IN
522 -- p_api_version_number IN NUMBER Required
523 -- p_init_msg_list IN VARCHAR2 Optional Default = FND_API_G_FALSE
524 -- p_commit IN VARCHAR2 Optional Default = FND_API.G_FALSE
525 -- p_validation_level IN NUMBER Optional Default = FND_API.G_VALID_LEVEL_FULL
526 -- p_partner_access_id IN NUMBER
527 -- p_terr_id IN NUMBER
528 -- p_object_version_number IN NUMBER Optional Default = NULL
529 --
530 -- OUT
531 -- x_return_status OUT VARCHAR2
532 -- x_msg_count OUT NUMBER
533 -- x_msg_data OUT VARCHAR2
534 -- Version : Current version 1.0
535 -- Note: This automatic generated procedure definition, it includes standard IN/OUT parameters
536 -- and basic operation, developer must manually add parameters and business logic as necessary.
537 --
538 -- History
539 --
540 -- NOTE
541 --
542 -- End of Comments
543 -- ==============================================================================
544
545 PROCEDURE Delete_Tap_Access_Terrs(
546 p_api_version_number IN NUMBER,
547 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
548 p_commit IN VARCHAR2 := FND_API.G_FALSE,
549 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
550 x_return_status OUT NOCOPY VARCHAR2,
551 x_msg_count OUT NOCOPY NUMBER,
552 x_msg_data OUT NOCOPY VARCHAR2,
553 p_partner_access_id IN NUMBER,
554 p_terr_id IN NUMBER,
555 p_object_version_number IN NUMBER
556 )
557
558 IS
559 L_API_NAME CONSTANT VARCHAR2(30) := 'Delete_Tap_Access_Terrs';
560 L_API_VERSION_NUMBER CONSTANT NUMBER := 1.0;
561 l_object_version_number NUMBER;
562 l_err_msg VARCHAR(2000);
563 BEGIN
564 -- Standard Start of API savepoint
565 SAVEPOINT Delete_Tap_Access_Terrs;
566
567 -- Standard call to check for call compatibility.
568 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
569 p_api_version_number,
570 l_api_name,
571 G_PKG_NAME)
572 THEN
573 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
574 END IF;
575
576 -- Initialize message list if p_init_msg_list is set to TRUE.
577 IF FND_API.to_Boolean( p_init_msg_list )
578 THEN
579 FND_MSG_PUB.initialize;
580 END IF;
581
582 -- Debug Message
583 IF (PV_DEBUG_HIGH_ON) THEN
584 PVX_Utility_PVT.debug_message('Private API: ' || l_api_name || ' Start');
585 END IF;
586
587 -- Initialize API return status to SUCCESS
588 x_return_status := FND_API.G_RET_STS_SUCCESS;
589
590 --
591 -- Api body
592 --
593
594 -- Debug Message
595 IF (PV_DEBUG_HIGH_ON) THEN
596 PVX_Utility_PVT.debug_message( 'Private API: Calling delete table handler');
597 END IF;
598
599 -- Invoke table handler(Pv_Territory_Accesses_Pkg.Delete_Row)
600
601 Pv_Tap_Access_Terrs_Pkg.Delete_Row(
602 p_partner_access_id => p_partner_access_id,
603 p_terr_id => p_terr_id,
604 p_object_version_number => p_object_version_number ,
605 x_return_status => x_return_status );
606
607 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
608 l_err_msg := substr(to_char(SQLCODE)||'-'||SQLERRM,1,2000);
609 FND_MESSAGE.set_name('PV', 'PV_API_OTHERS_EXCEP');
610 FND_MESSAGE.set_token('ERROR', l_err_msg);
611 FND_MSG_PUB.add;
612 IF x_return_status = FND_API.G_RET_STS_ERROR THEN
613 RAISE FND_API.G_EXC_ERROR;
614 ELSE
615 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
616 END IF;
617 END IF;
618
619 --
620 -- End of API body
621 --
622
623 -- Standard check for p_commit
624 IF FND_API.to_Boolean( p_commit )
625 THEN
626 COMMIT WORK;
627 END IF;
628
629 -- Debug Message
630 IF (PV_DEBUG_HIGH_ON) THEN
631 PVX_Utility_PVT.debug_message('Private API: ' || l_api_name || ' End');
632 END IF;
633
634 -- Standard call to get message count and if count is 1, get message info.
635 FND_MSG_PUB.Count_And_Get
636 (p_count => x_msg_count,
637 p_data => x_msg_data
638 );
639 EXCEPTION
640
641 WHEN PVX_Utility_PVT.resource_locked THEN
642 x_return_status := FND_API.g_ret_sts_error;
643 PVX_Utility_PVT.Error_Message(p_message_name => 'PV_API_RESOURCE_LOCKED');
644
645 WHEN FND_API.G_EXC_ERROR THEN
646 ROLLBACK TO DELETE_Territory_Accesses_Pvt;
647 x_return_status := FND_API.G_RET_STS_ERROR;
648
649 -- Standard call to get message count and if count=1, get the message
650 FND_MSG_PUB.Count_And_Get (
651 p_encoded => FND_API.G_FALSE,
652 p_count => x_msg_count,
653 p_data => x_msg_data
654 );
655
656 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
657 ROLLBACK TO Delete_Tap_Access_Terrs_Pvt;
658 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
659
660 -- Standard call to get message count and if count=1, get the message
661 FND_MSG_PUB.Count_And_Get (
662 p_encoded => FND_API.G_FALSE,
663 p_count => x_msg_count,
664 p_data => x_msg_data
665 );
666
667 WHEN OTHERS THEN
668 ROLLBACK TO Delete_Tap_Access_Terrs_Pvt;
669 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
670
671 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
672 THEN
673 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
674 END IF;
675
676 -- Standard call to get message count and if count=1, get the message
677 FND_MSG_PUB.Count_And_Get (
678 p_encoded => FND_API.G_FALSE,
679 p_count => x_msg_count,
680 p_data => x_msg_data
681 );
682
683 End Delete_Tap_Access_Terrs;
684
685 -- Hint: Primary key needs to be returned.
686 -- ==============================================================================
687 -- Start of Comments
688 -- ==============================================================================
689 -- API Name
690 -- Lock_Tap_Access_Terrs
691 -- Type
692 -- Private
693 -- Pre-Req
694 --
695 -- Parameters
696 --
697 -- IN
698 -- p_api_version_number IN NUMBER Required
699 -- p_init_msg_list IN VARCHAR2 Optional Default = FND_API_G_FALSE
700 -- p_commit IN VARCHAR2 Optional Default = FND_API.G_FALSE
701 -- p_validation_level IN NUMBER Optional Default = FND_API.G_VALID_LEVEL_FULL
702 -- p_tap_access_terrs_rec IN tap_access_terrs_rec_type Required
703 --
704 -- OUT
705 -- x_return_status OUT VARCHAR2
706 -- x_msg_count OUT NUMBER
707 -- x_msg_data OUT VARCHAR2
708 -- Version : Current version 1.0
709 -- Note: This automatic generated procedure definition, it includes standard IN/OUT parameters
710 -- and basic operation, developer must manually add parameters and business logic as necessary.
711 --
712 -- History
713 --
714 -- NOTE
715 --
716 -- End of Comments
717 -- ==============================================================================
718
719 PROCEDURE Lock_Tap_Access_Terrs(
720 p_api_version_number IN NUMBER,
721 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
722
723 x_return_status OUT NOCOPY VARCHAR2,
724 x_msg_count OUT NOCOPY NUMBER,
725 x_msg_data OUT NOCOPY VARCHAR2,
726 p_partner_access_id IN NUMBER,
727 p_terr_id IN NUMBER,
728 p_object_version_number IN NUMBER
729 )
730
731 IS
732 L_API_NAME CONSTANT VARCHAR2(30) := 'Lock_Tap_Access_Terrs';
733 L_API_VERSION_NUMBER CONSTANT NUMBER := 1.0;
734 L_FULL_NAME CONSTANT VARCHAR2(60) := g_pkg_name ||'.'|| l_api_name;
735 l_partner_access_id NUMBER;
736 l_terr_id NUMBER;
737 l_err_msg VARCHAR(2000);
738 BEGIN
739 -- Standard Start of API savepoint
740 SAVEPOINT Lock_Tap_Access_Terrs;
741
742 -- Debug Message
743 IF (PV_DEBUG_HIGH_ON) THEN
744 PVX_Utility_PVT.debug_message('Private API: ' || l_api_name || 'start');
745 END IF;
746
747 -- Initialize message list if p_init_msg_list is set to TRUE.
748 IF FND_API.to_Boolean( p_init_msg_list )
749 THEN
750 FND_MSG_PUB.initialize;
751 END IF;
752
753 -- Standard call to check for call compatibility.
754 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
755 p_api_version_number,
756 l_api_name,
757 G_PKG_NAME)
758 THEN
759 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
760 END IF;
761
762 -- Initialize API return status to SUCCESS
763 x_return_status := FND_API.G_RET_STS_SUCCESS;
764
765 ------------------------ lock -------------------------
766 Pv_Tap_Access_Terrs_Pkg.Lock_Row(
767 p_partner_access_id,
768 p_terr_id,
769 p_object_version_number,
770 x_return_status);
771
772 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
773 l_err_msg := substr(to_char(SQLCODE)||'-'||SQLERRM,1,2000);
774 FND_MESSAGE.set_name('PV', 'PV_API_OTHERS_EXCEP');
775 FND_MESSAGE.set_token('ERROR', l_err_msg);
776 FND_MSG_PUB.add;
777 IF x_return_status = FND_API.G_RET_STS_ERROR THEN
778 RAISE FND_API.G_EXC_ERROR;
779 ELSE
780 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
781 END IF;
782 END IF;
783
784 -------------------- finish --------------------------
785 FND_MSG_PUB.count_and_get(
786 p_encoded => FND_API.g_false,
787 p_count => x_msg_count,
788 p_data => x_msg_data);
789
790 -- Debug Message
791 IF (PV_DEBUG_HIGH_ON) THEN
792 PVX_Utility_PVT.debug_message(l_full_name ||': End');
793 END IF;
794 EXCEPTION
795 WHEN PVX_Utility_PVT.resource_locked THEN
796 x_return_status := FND_API.g_ret_sts_error;
797 PVX_Utility_PVT.Error_Message(p_message_name => 'PV_API_RESOURCE_LOCKED');
798
799 WHEN FND_API.G_EXC_ERROR THEN
800 ROLLBACK TO Lock_Tap_Access_Terrs;
801 x_return_status := FND_API.G_RET_STS_ERROR;
802
803 -- Standard call to get message count and if count=1, get the message
804 FND_MSG_PUB.Count_And_Get (
805 p_encoded => FND_API.G_FALSE,
806 p_count => x_msg_count,
807 p_data => x_msg_data
808 );
809
810 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
811 ROLLBACK TO Lock_Tap_Access_Terrs;
812 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
813
814 -- Standard call to get message count and if count=1, get the message
815 FND_MSG_PUB.Count_And_Get (
816 p_encoded => FND_API.G_FALSE,
817 p_count => x_msg_count,
818 p_data => x_msg_data
819 );
820
821 WHEN OTHERS THEN
822 ROLLBACK TO Lock_Tap_Access_Terrs;
823 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
824
825 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
826 THEN
827 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
828 END IF;
829
830 -- Standard call to get message count and if count=1, get the message
831 FND_MSG_PUB.Count_And_Get (
832 p_encoded => FND_API.G_FALSE,
833 p_count => x_msg_count,
834 p_data => x_msg_data
835 );
836 End Lock_Tap_Access_Terrs;
837
838 PROCEDURE Chk_Terr_Access_Uk_Items(
839 p_tap_access_terrs_rec IN tap_access_terrs_rec_type,
840 p_validation_mode IN VARCHAR2 := JTF_PLSQL_API.g_create,
841 x_return_status OUT NOCOPY VARCHAR2)
842 IS
843 l_valid_flag VARCHAR2(1):= 'N';
844 CURSOR l_Chk_Terr_Access_Uk_csr(cv_partner_access_id NUMBER,
845 cv_terr_id NUMBER ) IS
846 SELECT 'Y'
847 FROM PV_TAP_ACCESS_TERRS
848 WHERE partner_access_id = cv_partner_access_id
849 AND terr_id = cv_terr_id;
850
851 BEGIN
852 x_return_status := FND_API.g_ret_sts_success;
853 IF p_validation_mode = JTF_PLSQL_API.g_create AND
854 p_tap_access_terrs_rec.partner_access_id IS NOT NULL AND
855 p_tap_access_terrs_rec.terr_id IS NOT NULL
856 THEN
857 OPEN l_Chk_Terr_Access_Uk_csr(p_tap_access_terrs_rec.partner_access_id,
858 p_tap_access_terrs_rec.terr_id);
859 FETCH l_Chk_Terr_Access_Uk_csr INTO l_valid_flag;
860 IF (l_Chk_Terr_Access_Uk_csr%FOUND) THEN
861 CLOSE l_Chk_Terr_Access_Uk_csr;
862 PVX_Utility_PVT.Error_Message(p_message_name => 'PV_DUPLICATE_ID');
863 x_return_status := FND_API.g_ret_sts_error;
864 ELSE
865 CLOSE l_Chk_Terr_Access_Uk_csr;
866 END IF;
867 END IF;
868
869 END Chk_Terr_Access_Uk_Items;
870
871 PROCEDURE Chk_Terr_Access_Req_Items(
872 p_tap_access_terrs_rec IN tap_access_terrs_rec_type,
873 p_validation_mode IN VARCHAR2 := JTF_PLSQL_API.g_create,
874 x_return_status OUT NOCOPY VARCHAR2
875 )
876 IS
877 BEGIN
878 x_return_status := FND_API.g_ret_sts_success;
879
880 IF p_validation_mode = JTF_PLSQL_API.g_create THEN
881
882 -- Check for required paramter PARTNER_ACCESS_ID.
883 IF p_tap_access_terrs_rec.partner_access_id = FND_API.G_MISS_NUM OR p_tap_access_terrs_rec.partner_access_id IS NULL THEN
884 PVX_Utility_PVT.Error_Message('PV_API_MISSING_REQ_COLUMN', 'COLUMN', 'PARTNER_ACCESS_ID' );
885 x_return_status := FND_API.g_ret_sts_error;
886 END IF;
887
888 -- Check for required paramter TERR_ID.
889 IF p_tap_access_terrs_rec.terr_id = FND_API.G_MISS_NUM OR p_tap_access_terrs_rec.terr_id IS NULL THEN
890 PVX_Utility_PVT.Error_Message('PV_API_MISSING_REQ_COLUMN', 'COLUMN', 'TERR_ID' );
891 x_return_status := FND_API.g_ret_sts_error;
892 END IF;
893
894 ELSE
895
896 -- Check for required paramter PARTNER_ACCESS_ID.
897 IF p_tap_access_terrs_rec.partner_access_id = FND_API.G_MISS_NUM THEN
898 PVX_Utility_PVT.Error_Message('PV_API_MISSING_REQ_COLUMN', 'COLUMN', 'PARTNER_ACCESS_ID' );
899 x_return_status := FND_API.g_ret_sts_error;
900 END IF;
901
902 -- Check for required paramter TERR_ID.
903 IF p_tap_access_terrs_rec.terr_id = FND_API.G_MISS_NUM THEN
904 PVX_Utility_PVT.Error_Message('PV_API_MISSING_REQ_COLUMN', 'COLUMN', 'TERR_ID' );
905 x_return_status := FND_API.g_ret_sts_error;
906 END IF;
907
908 END IF;
909
910
911 END Chk_Terr_Access_Req_Items;
912
913 PROCEDURE Chk_Terr_Access_Fk_Items(
914 p_tap_access_terrs_rec IN tap_access_terrs_rec_type,
915 x_return_status OUT NOCOPY VARCHAR2
916 )
917 IS
918 -- check, the supplied partner_access_id in the PV_PARTNER_ACCESSES table EXISTS.
919 CURSOR l_chk_paccess_active_csr(cv_partner_access_id IN NUMBER) IS
920 SELECT 'Y'
921 FROM pv_partner_accesses
922 WHERE partner_access_id = cv_partner_access_id;
923
924 -- check, the supplied territory in the JTF_TERR_ALL table is ACTIVE and EXISTS.
925 CURSOR l_chk_terr_active_csr(cv_terr_id IN NUMBER) IS
926 SELECT 'Y'
927 FROM jtf_terr_all
928 WHERE terr_id = cv_terr_id
929 AND nvl(end_date_active , sysdate) >= sysdate;
930
931 -- Local variale declaration.
932 l_paccess_exist VARCHAR2(1) := 'N';
933 l_terr_active VARCHAR2(1) := 'N';
934 BEGIN
935 x_return_status := FND_API.g_ret_sts_success;
936
937 -- check, the supplied partner_access_id exists in the table.
938 OPEN l_chk_paccess_active_csr(p_tap_access_terrs_rec.partner_access_id);
939 FETCH l_chk_paccess_active_csr INTO l_paccess_exist;
940
941 IF l_chk_paccess_active_csr%NOTFOUND THEN
942 CLOSE l_chk_paccess_active_csr ;
943 PVX_UTILITY_PVT.Error_Message('PV_NO_RECORD_FOUND');
944 x_return_status := FND_API.g_ret_sts_error;
945 ELSE
946 CLOSE l_chk_paccess_active_csr ;
947 END IF;
948
949 -- check, the supplied Territory should exists and Active.
950 OPEN l_chk_terr_active_csr(p_tap_access_terrs_rec.terr_id);
951 FETCH l_chk_terr_active_csr INTO l_paccess_exist;
952 IF l_chk_terr_active_csr%NOTFOUND THEN
953 CLOSE l_chk_terr_active_csr ;
954 PVX_UTILITY_PVT.Error_Message('PV_TERR_NOT_ACTIVE','TERR_ID',p_tap_access_terrs_rec.terr_id);
955 x_return_status := FND_API.g_ret_sts_error;
956 ELSE
957 CLOSE l_chk_terr_active_csr;
958 END IF;
959
960 END Chk_Terr_Access_Fk_Items;
961
962 PROCEDURE Chk_Tap_Access_Terrs_Items (
963 p_tap_access_terrs_rec IN tap_access_terrs_rec_type,
964 p_validation_mode IN VARCHAR2,
965 x_return_status OUT NOCOPY VARCHAR2
966 )
967 IS
968 l_return_status VARCHAR2(1);
969 BEGIN
970
971 l_return_status := FND_API.g_ret_sts_success;
972 -- Check Items Uniqueness API calls
973 Chk_Terr_Access_Uk_Items(
974 p_tap_access_terrs_rec => p_tap_access_terrs_rec,
975 p_validation_mode => p_validation_mode,
976 x_return_status => l_return_status);
977 IF l_return_status <> FND_API.g_ret_sts_success THEN
978 x_return_status := FND_API.g_ret_sts_error;
979 END IF;
980
981 -- Check Items Required/NOT NULL API calls
982 Chk_Terr_Access_req_items(
983 p_tap_access_terrs_rec => p_tap_access_terrs_rec,
984 p_validation_mode => p_validation_mode,
985 x_return_status => l_return_status);
986 IF l_return_status <> FND_API.g_ret_sts_success THEN
987 x_return_status := FND_API.g_ret_sts_error;
988 END IF;
989
990 -- Check Items Foreign Keys API calls
991 Chk_Terr_Access_FK_items(
992 p_tap_access_terrs_rec => p_tap_access_terrs_rec,
993 x_return_status => l_return_status);
994 IF l_return_status <> FND_API.g_ret_sts_success THEN
995 x_return_status := FND_API.g_ret_sts_error;
996 END IF;
997
998 END Chk_Tap_Access_Terrs_Items;
999
1000 PROCEDURE Complete_Territory_Access_Rec (
1001 p_tap_access_terrs_rec IN tap_access_terrs_rec_type,
1002 x_complete_rec OUT NOCOPY tap_access_terrs_rec_type)
1003 IS
1004 l_return_status VARCHAR2(1);
1005
1006 CURSOR c_complete IS
1007 SELECT *
1008 FROM pv_tap_access_terrs
1009 WHERE partner_access_id = p_tap_access_terrs_rec.partner_access_id
1010 AND terr_id = p_tap_access_terrs_rec.terr_id;
1011
1012 l_tap_access_terrs_rec c_complete%ROWTYPE;
1013 BEGIN
1014 x_complete_rec := p_tap_access_terrs_rec;
1015
1016
1017 OPEN c_complete;
1018 FETCH c_complete INTO l_tap_access_terrs_rec;
1019 CLOSE c_complete;
1020
1021 -- partner_access_id
1022 IF p_tap_access_terrs_rec.partner_access_id IS NULL THEN
1023 x_complete_rec.partner_access_id := l_tap_access_terrs_rec.partner_access_id;
1024 END IF;
1025
1026 -- terr_id
1027 IF p_tap_access_terrs_rec.terr_id IS NULL THEN
1028 x_complete_rec.terr_id := l_tap_access_terrs_rec.terr_id;
1029 END IF;
1030
1031 -- last_update_date
1032 IF p_tap_access_terrs_rec.last_update_date IS NULL THEN
1033 x_complete_rec.last_update_date := l_tap_access_terrs_rec.last_update_date;
1034 END IF;
1035
1036 -- last_updated_by
1037 IF p_tap_access_terrs_rec.last_updated_by IS NULL THEN
1038 x_complete_rec.last_updated_by := l_tap_access_terrs_rec.last_updated_by;
1039 END IF;
1040
1041 -- creation_date
1042 IF p_tap_access_terrs_rec.creation_date IS NULL THEN
1043 x_complete_rec.creation_date := l_tap_access_terrs_rec.creation_date;
1044 END IF;
1045
1046 -- created_by
1047 IF p_tap_access_terrs_rec.created_by IS NULL THEN
1048 x_complete_rec.created_by := l_tap_access_terrs_rec.created_by;
1049 END IF;
1050
1051 -- last_update_login
1052 IF p_tap_access_terrs_rec.last_update_login IS NULL THEN
1053 x_complete_rec.last_update_login := l_tap_access_terrs_rec.last_update_login;
1054 END IF;
1055
1056 -- request_id
1057 IF p_tap_access_terrs_rec.request_id IS NULL THEN
1058 x_complete_rec.request_id := l_tap_access_terrs_rec.request_id;
1059 END IF;
1060
1061 -- program_application_id
1062 IF p_tap_access_terrs_rec.program_application_id IS NULL THEN
1063 x_complete_rec.program_application_id := l_tap_access_terrs_rec.program_application_id;
1064 END IF;
1065
1066 -- program_id
1067 IF p_tap_access_terrs_rec.program_id IS NULL THEN
1068 x_complete_rec.program_id := l_tap_access_terrs_rec.program_id;
1069 END IF;
1070
1071 -- program_update_date
1072 IF p_tap_access_terrs_rec.program_update_date IS NULL THEN
1073 x_complete_rec.program_update_date := l_tap_access_terrs_rec.program_update_date;
1074 END IF;
1075
1076 END Complete_Territory_Access_Rec;
1077
1078 PROCEDURE Default_Territory_Access_Items (
1079 p_tap_access_terrs_rec IN tap_access_terrs_rec_type ,
1080 x_tap_access_terrs_rec OUT NOCOPY tap_access_terrs_rec_type )
1081 IS
1082 l_tap_access_terrs_rec tap_access_terrs_rec_type := p_tap_access_terrs_rec;
1083 BEGIN
1084
1085 IF p_tap_access_terrs_rec.last_update_login IS NULL OR p_tap_access_terrs_rec.last_update_login = FND_API.G_MISS_NUM THEN
1086 l_tap_access_terrs_rec.last_update_login := FND_GLOBAL.user_id ;
1087 END IF ;
1088
1089 IF p_tap_access_terrs_rec.last_update_date IS NULL OR p_tap_access_terrs_rec.last_update_date = FND_API.G_MISS_DATE THEN
1090 l_tap_access_terrs_rec.last_update_date := sysdate;
1091 END IF ;
1092
1093 IF p_tap_access_terrs_rec.last_updated_by IS NULL OR p_tap_access_terrs_rec.last_updated_by = FND_API.G_MISS_NUM THEN
1094 l_tap_access_terrs_rec.last_updated_by := FND_GLOBAL.user_id ;
1095 END IF ;
1096
1097 IF p_tap_access_terrs_rec.creation_date IS NULL OR p_tap_access_terrs_rec.creation_date = FND_API.G_MISS_DATE THEN
1098 l_tap_access_terrs_rec.creation_date := sysdate ;
1099 END IF ;
1100
1101 IF p_tap_access_terrs_rec.created_by IS NULL OR p_tap_access_terrs_rec.created_by = FND_API.G_MISS_NUM THEN
1102 l_tap_access_terrs_rec.created_by := FND_GLOBAL.user_id ;
1103 END IF ;
1104
1105 IF p_tap_access_terrs_rec.object_version_number IS NULL OR p_tap_access_terrs_rec.object_version_number = FND_API.G_MISS_NUM THEN
1106 l_tap_access_terrs_rec.object_version_number := 1 ;
1107 END IF ;
1108
1109 x_tap_access_terrs_rec := l_tap_access_terrs_rec;
1110
1111 END;
1112
1113 PROCEDURE Validate_Tap_Access_Terrs(
1114 p_api_version_number IN NUMBER,
1115 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1116 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
1117 p_validation_mode IN VARCHAR2,
1118 p_tap_access_terrs_rec IN tap_access_terrs_rec_type,
1119 x_return_status OUT NOCOPY VARCHAR2,
1120 x_msg_count OUT NOCOPY NUMBER,
1121 x_msg_data OUT NOCOPY VARCHAR2
1122 )
1123 IS
1124 L_API_NAME CONSTANT VARCHAR2(30) := 'Validate_Tap_Access_Terrs';
1125 L_API_VERSION_NUMBER CONSTANT NUMBER := 1.0;
1126 l_object_version_number NUMBER;
1127 l_tap_access_terrs_rec tap_access_terrs_rec_type ;
1128
1129 BEGIN
1130 -- Standard Start of API savepoint
1131 SAVEPOINT Validate_Tap_Access_Terrs_Pvt;
1132
1133 -- Standard call to check for call compatibility.
1134 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
1135 p_api_version_number,
1136 l_api_name,
1137 G_PKG_NAME)
1138 THEN
1139 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1140 END IF;
1141
1142
1143 -- Initialize message list if p_init_msg_list is set to TRUE.
1144 IF FND_API.to_Boolean( p_init_msg_list )
1145 THEN
1146 FND_MSG_PUB.initialize;
1147 END IF;
1148
1149 -- Initialize API return status to SUCCESS
1150 x_return_status := FND_API.G_RET_STS_SUCCESS;
1151
1152
1153 IF p_validation_level >= JTF_PLSQL_API.g_valid_level_item THEN
1154 Chk_Tap_Access_Terrs_Items(
1155 p_tap_access_terrs_rec => p_tap_access_terrs_rec,
1156 p_validation_mode => p_validation_mode,
1157 x_return_status => x_return_status
1158 );
1159
1160 IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1161 RAISE FND_API.G_EXC_ERROR;
1162 ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1163 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1164 END IF;
1165 END IF;
1166
1167 IF p_validation_mode = JTF_PLSQL_API.g_create THEN
1168 Default_Territory_Access_Items(
1169 p_tap_access_terrs_rec => p_tap_access_terrs_rec ,
1170 x_tap_access_terrs_rec => l_tap_access_terrs_rec) ;
1171 END IF ;
1172
1173 Complete_territory_access_Rec(
1174 p_tap_access_terrs_rec => l_tap_access_terrs_rec,
1175 x_complete_rec => l_tap_access_terrs_rec
1176 );
1177
1178 IF p_validation_level >= JTF_PLSQL_API.g_valid_level_item THEN
1179 Validate_Tap_Access_Terrs_Rec(
1180 p_api_version_number => 1.0,
1181 p_init_msg_list => FND_API.G_FALSE,
1182 x_return_status => x_return_status,
1183 x_msg_count => x_msg_count,
1184 x_msg_data => x_msg_data,
1185 p_tap_access_terrs_rec => l_tap_access_terrs_rec);
1186
1187 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW) THEN
1188 PVX_Utility_PVT.debug_message('After Validate_Tap_Access_Terrs_Rec...');
1189 END IF;
1190
1191 IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1192 RAISE FND_API.G_EXC_ERROR;
1193 ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1194 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1195 END IF;
1196 END IF;
1197
1198 -- Debug Message
1199 PVX_Utility_PVT.debug_message('Private API: ' || l_api_name || 'end');
1200
1201 -- Standard call to get message count and if count is 1, get message info.
1202 FND_MSG_PUB.Count_And_Get
1203 (p_count => x_msg_count,
1204 p_data => x_msg_data
1205 );
1206 EXCEPTION
1207
1208 WHEN PVX_Utility_PVT.resource_locked THEN
1209 x_return_status := FND_API.g_ret_sts_error;
1210 PVX_Utility_PVT.Error_Message(p_message_name => 'PV_API_RESOURCE_LOCKED');
1211
1212 WHEN FND_API.G_EXC_ERROR THEN
1213 ROLLBACK TO Validate_Tap_Access_Terrs_Pvt;
1214 x_return_status := FND_API.G_RET_STS_ERROR;
1215 -- Standard call to get message count and if count=1, get the message
1216 FND_MSG_PUB.Count_And_Get (
1217 p_encoded => FND_API.G_FALSE,
1218 p_count => x_msg_count,
1219 p_data => x_msg_data
1220 );
1221
1222 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1223 ROLLBACK TO Validate_Tap_Access_Terrs_Pvt;
1224 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1225 -- Standard call to get message count and if count=1, get the message
1226 FND_MSG_PUB.Count_And_Get (
1227 p_encoded => FND_API.G_FALSE,
1228 p_count => x_msg_count,
1229 p_data => x_msg_data
1230 );
1231
1232 WHEN OTHERS THEN
1233 ROLLBACK TO Validate_Tap_Access_Terrs_Pvt;
1234 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1235 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1236 THEN
1237 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
1238 END IF;
1239 -- Standard call to get message count and if count=1, get the message
1240 FND_MSG_PUB.Count_And_Get (
1241 p_encoded => FND_API.G_FALSE,
1242 p_count => x_msg_count,
1243 p_data => x_msg_data
1244 );
1245 End Validate_Tap_Access_Terrs;
1246
1247 PROCEDURE Validate_Tap_Access_Terrs_Rec (
1248 p_api_version_number IN NUMBER,
1249 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1250 x_return_status OUT NOCOPY VARCHAR2,
1251 x_msg_count OUT NOCOPY NUMBER,
1252 x_msg_data OUT NOCOPY VARCHAR2,
1253 p_tap_access_terrs_rec IN tap_access_terrs_rec_type
1254 )
1255 IS
1256 BEGIN
1257 -- Initialize message list if p_init_msg_list is set to TRUE.
1258 IF FND_API.to_Boolean( p_init_msg_list )
1259 THEN
1260 FND_MSG_PUB.initialize;
1261 END IF;
1262
1263
1264 -- Initialize API return status to SUCCESS
1265 x_return_status := FND_API.G_RET_STS_SUCCESS;
1266
1267 -- Hint: Validate data
1268 -- If data not valid
1269 -- THEN
1270 -- x_return_status := FND_API.G_RET_STS_ERROR;
1271
1272 -- Debug Message
1273 PVX_Utility_PVT.debug_message('Private API: Validate_dm_model_rec');
1274 -- Standard call to get message count and if count is 1, get message info.
1275 FND_MSG_PUB.Count_And_Get
1276 (p_count => x_msg_count,
1277 p_data => x_msg_data
1278 );
1279 END Validate_Tap_Access_Terrs_Rec;
1280
1281 END PV_TAP_ACCESS_TERRS_PVT;