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