[Home] [Help]
PACKAGE BODY: APPS.PV_GE_CHKLST_PVT
Source
1 PACKAGE BODY PV_Ge_Chklst_PVT as
2 /* $Header: pvxvgcib.pls 120.2 2005/08/26 10:19:32 appldev ship $ */
3 -- ===============================================================
4 -- Start of Comments
5 -- Package name
6 -- PV_Ge_Chklst_PVT
7 -- Purpose
8 --
9 -- History
10 -- 15 Nov 2002 anubhavk created
11 -- 19 Nov 2002 anubhavk Updated - For NOCOPY by running nocopy.sh
12 --
13 -- NOTE
14 --
15 -- This Api is generated with Latest version of
16 -- Rosetta, where g_miss indicates NULL and
17 -- NULL indicates missing value. Rosetta Version 1.55
18 -- End of Comments
19 -- ===============================================================
20
21
22 G_PKG_NAME CONSTANT VARCHAR2(30):= 'PV_Ge_Chklst_PVT';
23 G_FILE_NAME CONSTANT VARCHAR2(12) := 'pvxvgcib.pls';
24
25 -- G_USER_ID NUMBER := FND_GLOBAL.USER_ID;
26 -- G_LOGIN_ID NUMBER := FND_GLOBAL.CONC_LOGIN_ID;
27 --
28 -- Foreward Procedure Declarations
29 --
30
31 PROCEDURE Default_Ge_Chklst_Items (
32 p_ge_chklst_rec IN ge_chklst_rec_type ,
33 x_ge_chklst_rec OUT NOCOPY ge_chklst_rec_type
34 ) ;
35
36
37
38 -- Hint: Primary key needs to be returned.
39 -- ==============================================================================
40 -- Start of Comments
41 -- ==============================================================================
42 -- API Name
43 -- Create_Ge_Chklst
44 -- Type
45 -- Private
46 -- Pre-Req
47 --
48 -- Parameters
49 --
50 -- IN
51 -- p_api_version_number IN NUMBER Required
52 -- p_init_msg_list IN VARCHAR2 Optional Default = FND_API_G_FALSE
53 -- p_commit IN VARCHAR2 Optional Default = FND_API.G_FALSE
54 -- p_validation_level IN NUMBER Optional Default = FND_API.G_VALID_LEVEL_FULL
55 -- p_ge_chklst_rec IN ge_chklst_rec_type Required
56 --
57 -- OUT
58 -- x_return_status OUT VARCHAR2
59 -- x_msg_count OUT NUMBER
60 -- x_msg_data OUT VARCHAR2
61 -- Version : Current version 1.0
62 -- Note: This automatic generated procedure definition, it includes standard IN/OUT parameters
63 -- and basic operation, developer must manually add parameters and business logic as necessary.
64 --
65 -- History
66 --
67 -- NOTE
68 --
69 -- End of Comments
70 -- ==============================================================================
71
72 PV_DEBUG_HIGH_ON CONSTANT boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_HIGH);
73 PV_DEBUG_LOW_ON CONSTANT boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW);
74 PV_DEBUG_MEDIUM_ON CONSTANT boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_MEDIUM);
75
76 PROCEDURE Create_Ge_Chklst(
77 p_api_version_number IN NUMBER,
78 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
79 p_commit IN VARCHAR2 := FND_API.G_FALSE,
80 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
81
82 x_return_status OUT NOCOPY VARCHAR2,
83 x_msg_count OUT NOCOPY NUMBER,
84 x_msg_data OUT NOCOPY VARCHAR2,
85
86 p_ge_chklst_rec IN ge_chklst_rec_type := g_miss_ge_chklst_rec,
87 x_checklist_item_id OUT NOCOPY NUMBER
88 )
89
90 IS
91 L_API_NAME CONSTANT VARCHAR2(30) := 'Create_Ge_Chklst';
92 L_API_VERSION_NUMBER CONSTANT NUMBER := 1.0;
93 l_return_status_full VARCHAR2(1);
94 l_object_version_number NUMBER := 1;
95 l_org_id NUMBER := FND_API.G_MISS_NUM;
96 l_checklist_item_id NUMBER;
97 l_dummy NUMBER;
98 l_ge_chklst_rec ge_chklst_rec_type := p_ge_chklst_rec;
99 l_sequence_num NUMBER :=0;
100 CURSOR c_id IS
101 SELECT pv_ge_chklst_items_b_s.NEXTVAL
102 FROM dual;
103
104 CURSOR c_id_exists (l_id IN NUMBER) IS
105 SELECT 1
106 FROM PV_GE_CHKLST_ITEMS_B
107 WHERE checklist_item_id = l_id;
108 BEGIN
109 -- Standard Start of API savepoint
110 SAVEPOINT create_ge_chklst_pvt;
111
112 -- Standard call to check for call compatibility.
113 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
114 p_api_version_number,
115 l_api_name,
116 G_PKG_NAME)
117 THEN
118 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
119 END IF;
120
121
122 -- Initialize message list if p_init_msg_list is set to TRUE.
123 IF FND_API.to_Boolean( p_init_msg_list )
124 THEN
125 FND_MSG_PUB.initialize;
126 END IF;
127
128
129
130 -- Debug Message
131 IF (PV_DEBUG_HIGH_ON) THEN
132
133 PVX_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
134 END IF;
135
136
137
138 -- Initialize API return status to SUCCESS
139 x_return_status := FND_API.G_RET_STS_SUCCESS;
140
141
142 -- Local variable initialization
143
144 IF p_ge_chklst_rec.checklist_item_id IS NULL OR p_ge_chklst_rec.checklist_item_id = FND_API.g_miss_num THEN
145 LOOP
146 l_dummy := NULL;
147 OPEN c_id;
148 --FETCH c_id INTO l_checklist_item_id; anubhav changed to
149 FETCH c_id INTO l_ge_chklst_rec.checklist_item_id;
150 CLOSE c_id;
151
152 --OPEN c_id_exists(l_checklist_item_id);
153 OPEN c_id_exists(l_ge_chklst_rec.checklist_item_id);
154 FETCH c_id_exists INTO l_dummy;
155 CLOSE c_id_exists;
156 EXIT WHEN l_dummy IS NULL;
157 END LOOP;
158 ELSE
159 --l_checklist_item_id := p_pgc_items_rec.checklist_item_id;
160 l_ge_chklst_rec.checklist_item_id := p_ge_chklst_rec.checklist_item_id;
161 END IF;
162
163 -- =========================================================================
164 -- Validate Environment
165 -- =========================================================================
166
167 IF FND_GLOBAL.USER_ID IS NULL
168 THEN
169 PVX_UTILITY_PVT.Error_Message(p_message_name => 'USER_PROFILE_MISSING');
170 RAISE FND_API.G_EXC_ERROR;
171 END IF;
172
173
174
175 IF ( P_validation_level >= FND_API.G_VALID_LEVEL_FULL)
176 THEN
177 -- Debug message
178 IF (PV_DEBUG_HIGH_ON) THEN
179
180 PVX_UTILITY_PVT.debug_message('Private API: Validate_Ge_Chklst');
181 END IF;
182
183 -- Populate the default required items Anubhav
184 l_ge_chklst_rec.last_update_date := SYSDATE;
185 l_ge_chklst_rec.last_updated_by := FND_GLOBAL.user_id;
186 l_ge_chklst_rec.creation_date := SYSDATE;
187 l_ge_chklst_rec.created_by := FND_GLOBAL.user_id;
188 l_ge_chklst_rec.last_update_login := FND_GLOBAL.conc_login_id;
189 l_ge_chklst_rec.object_version_number := l_object_version_number;
190
191 -- Invoke validation procedures
192 Validate_ge_chklst(
193 p_api_version_number => 1.0,
194 p_init_msg_list => FND_API.G_FALSE,
195 p_validation_level => p_validation_level,
196 p_validation_mode => JTF_PLSQL_API.g_create,
197 --p_ge_chklst_rec => p_ge_chklst_rec,
198 p_ge_chklst_rec => l_ge_chklst_rec,
199 x_return_status => x_return_status,
200 x_msg_count => x_msg_count,
201 x_msg_data => x_msg_data);
202 END IF;
203
204 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
205 RAISE FND_API.G_EXC_ERROR;
206 END IF;
207
208 -- Local variable initialization
209
210 -- Debug Message
211 IF (PV_DEBUG_HIGH_ON) THEN
212
213 PVX_UTILITY_PVT.debug_message( 'Private API: Calling create table handler');
214 END IF;
215
216 -- Adding the call to get the latest sequence number
217 FOR cur IN (SELECT MAX(sequence_num) temp_sequence_num from pv_ge_chklst_items_vl where (used_by_entity_id = p_ge_chklst_rec.used_by_entity_id ))
218 LOOP
219
220 l_sequence_num := cur.temp_sequence_num;
221 END LOOP;
222
223 l_sequence_num := NVL(l_sequence_num,0) +1 ;
224
225
226 -- Invoke table handler(Pv_Ge_Chklst_Pkg.Insert_Row)
227 Pv_Ge_Chklst_Pkg.Insert_Row(
228 px_checklist_item_id => l_ge_chklst_rec.checklist_item_id,
229 px_object_version_number => l_object_version_number,
230 p_arc_used_by_entity_code => p_ge_chklst_rec.arc_used_by_entity_code,
231 p_used_by_entity_id => p_ge_chklst_rec.used_by_entity_id,
232 p_sequence_num => l_sequence_num,
233 p_is_required_flag => p_ge_chklst_rec.is_required_flag,
234 p_enabled_flag => p_ge_chklst_rec.enabled_flag,
235 p_created_by => FND_GLOBAL.USER_ID,
236 p_creation_date => SYSDATE,
237 p_last_updated_by => FND_GLOBAL.USER_ID,
238 p_last_update_date => SYSDATE,
239 p_last_update_login => FND_GLOBAL.conc_login_id,
240 p_checklist_item_name => p_ge_chklst_rec.checklist_item_name
241 );
242
243 x_checklist_item_id := l_checklist_item_id;
244 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
245 RAISE FND_API.G_EXC_ERROR;
246 END IF;
247 --
248 -- End of API body
249 --
250
251 -- Standard check for p_commit
252 IF FND_API.to_Boolean( p_commit )
253 THEN
254 COMMIT WORK;
255 END IF;
256
257
258 -- Debug Message
259 IF (PV_DEBUG_HIGH_ON) THEN
260
261 PVX_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'end');
262 END IF;
263
264
265 -- Standard call to get message count and if count is 1, get message info.
266 FND_MSG_PUB.Count_And_Get
267 (p_count => x_msg_count,
268 p_data => x_msg_data
269 );
270 EXCEPTION
271
272 WHEN PVX_UTILITY_PVT.resource_locked THEN
273 x_return_status := FND_API.g_ret_sts_error;
274 PVX_UTILITY_PVT.Error_Message(p_message_name => 'PV_API_RESOURCE_LOCKED');
275
276 WHEN FND_API.G_EXC_ERROR THEN
277 ROLLBACK TO CREATE_Ge_Chklst_PVT;
278 x_return_status := FND_API.G_RET_STS_ERROR;
279 -- Standard call to get message count and if count=1, get the message
280 FND_MSG_PUB.Count_And_Get (
281 p_encoded => FND_API.G_FALSE,
282 p_count => x_msg_count,
283 p_data => x_msg_data
284 );
285
286 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
287 ROLLBACK TO CREATE_Ge_Chklst_PVT;
288 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
289 -- Standard call to get message count and if count=1, get the message
290 FND_MSG_PUB.Count_And_Get (
291 p_encoded => FND_API.G_FALSE,
292 p_count => x_msg_count,
293 p_data => x_msg_data
294 );
295
296 WHEN OTHERS THEN
297 ROLLBACK TO CREATE_Ge_Chklst_PVT;
298 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
299 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
300 THEN
301 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
302 END IF;
303 -- Standard call to get message count and if count=1, get the message
304 FND_MSG_PUB.Count_And_Get (
305 p_encoded => FND_API.G_FALSE,
306 p_count => x_msg_count,
307 p_data => x_msg_data
308 );
309 End Create_Ge_Chklst;
310
311 /*********************
312 *
313 *
314 * Copy_Row
315 *
316 *
317 *********************/
318 PROCEDURE Copy_Row
319 (
320 p_api_version_number IN NUMBER
321 ,p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE
322 ,p_commit IN VARCHAR2 := FND_API.G_FALSE
323 ,p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL
324 ,x_return_status OUT NOCOPY VARCHAR2
325 ,x_msg_count OUT NOCOPY NUMBER
326 ,x_msg_data OUT NOCOPY VARCHAR2
327 ,p_src_object_id IN NUMBER
328 ,p_tar_object_id IN NUMBER
329 )
330
331 IS
332
333
334 CURSOR c_get_chklst_rec (cv_program_id IN NUMBER) IS
335 SELECT sequence_num, is_required_flag, enabled_flag
336 FROM pv_ge_chklst_items_b
337 WHERE arc_used_by_entity_code = 'PRGM' AND used_by_entity_id = cv_program_id
338 order by checklist_item_id;
339
340 CURSOR c_get_chklst_tl_rec (cv_program_id IN NUMBER) IS
341 SELECT tl.checklist_item_id, checklist_item_name, source_lang, language
342 FROM pv_ge_chklst_items_b b, pv_ge_chklst_items_tl tl
343 WHERE b.checklist_item_id = tl.checklist_item_id
344 AND b.arc_used_by_entity_code = 'PRGM'
345 AND b.used_by_entity_id = cv_program_id
346 order by tl.checklist_item_id;
347
348 CURSOR c_id IS
349 SELECT pv_ge_chklst_items_b_s.NEXTVAL
350 FROM dual;
351
352 CURSOR c_id_exists (l_id IN NUMBER) IS
353 SELECT 1
354 FROM pv_ge_chklst_items_b
355 WHERE checklist_item_id = l_id;
356
357 l_checklist_item_id NUMBER;
358 l_object_version_number NUMBER;
359 L_API_NAME CONSTANT VARCHAR2(30) := 'Copy_Row - Checklist';
360 L_API_VERSION_NUMBER CONSTANT NUMBER := 1.0;
361
362 l_dummy NUMBER;
363 elmt_count NUMBER;
364
365 type numArray is table of number index by binary_integer;
366 type varcharArray is table of VARCHAR2(240) index by binary_integer;
367
368 checklist_item_id_array numArray;
369 old_checklist_item_id_array numArray;
370 new_checklist_item_id_array numArray;
371 sequence_num_array numArray;
372 is_required_flag_array varcharArray;
373 enabled_flag_array varcharArray;
374 checklist_item_name_array varcharArray;
375 source_lang_array varcharArray;
376 language_array varcharArray;
377
378 BEGIN
379 -- Standard Start of API savepoint
380 SAVEPOINT Copy_Row;
381
382 -- Standard call to check for call compatibility.
383 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
384 p_api_version_number,
385 l_api_name,
386 G_PKG_NAME)
387 THEN
388 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
389 END IF;
390
391
392 -- Initialize message list if p_init_msg_list is set to TRUE.
393 IF FND_API.to_Boolean( p_init_msg_list )
394 THEN
395 FND_MSG_PUB.initialize;
396 END IF;
397
398 -- Debug Message
399 IF (PV_DEBUG_HIGH_ON) THEN
400 PVX_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
401 END IF;
402
403
404 -- Initialize API return status to SUCCESS
405 x_return_status := FND_API.G_RET_STS_SUCCESS;
406
407
408 OPEN c_get_chklst_rec (p_src_object_id);
409 LOOP
410 PVX_UTILITY_PVT.debug_message('Private API: ' || l_api_name || ' : inside loop');
411 FETCH c_get_chklst_rec bulk collect into
412 sequence_num_array, is_required_flag_array, enabled_flag_array
413 LIMIT 100;
414 PVX_UTILITY_PVT.debug_message(l_api_name || 'sequence_num_array.count =' || to_char(sequence_num_array.count));
415
416 for i in 1..sequence_num_array.count LOOP
417 PVX_UTILITY_PVT.debug_message(l_api_name || 'testing1');
418
419 l_dummy := NULL;
420 OPEN c_id;
421 LOOP
422 PVX_UTILITY_PVT.debug_message(l_api_name || 'testing2');
423 FETCH c_id INTO checklist_item_id_array(i);
424 OPEN c_id_exists(checklist_item_id_array(i));
425 FETCH c_id_exists INTO l_dummy;
426 CLOSE c_id_exists;
427 EXIT WHEN l_dummy IS NULL;
428 END LOOP;
429 CLOSE c_id;
430 PVX_UTILITY_PVT.debug_message(l_api_name || 'checklist_item_id_array(i) =' || to_char(checklist_item_id_array(i)));
431
432 END LOOP;
433
434
435 PVX_UTILITY_PVT.debug_message('Private API: ' || l_api_name || ' : insert into b table');
436
437 forall i in 1..checklist_item_id_array.count
438 INSERT INTO pv_ge_chklst_items_b(
439 checklist_item_id,
440 object_version_number,
441 arc_used_by_entity_code,
442 used_by_entity_id,
443 sequence_num,
444 is_required_flag,
445 enabled_flag,
446 created_by,
447 creation_date,
448 last_updated_by,
449 last_update_date,
450 last_update_login
451 )
452 VALUES
453 (
454 checklist_item_id_array(i),
455 1,
456 'PRGM',
457 p_tar_object_id,
458 sequence_num_array(i),
459 is_required_flag_array(i),
460 enabled_flag_array(i),
461 FND_GLOBAL.USER_ID,
462 SYSDATE,
463 FND_GLOBAL.USER_ID,
464 SYSDATE,
465 FND_GLOBAL.CONC_LOGIN_ID
466 );
467
468 exit when c_get_chklst_rec%notfound;
469 END LOOP;
470 Close c_get_chklst_rec;
471
472
473 open c_get_chklst_tl_rec(p_src_object_id);
474 LOOP
475
476 Fetch c_get_chklst_tl_rec bulk collect into
477 old_checklist_item_id_array, checklist_item_name_array, source_lang_array, language_array limit 100;
478
479 elmt_count := 1;
480 for k in 1..old_checklist_item_id_array.count loop
481 if ((k <> 1) and (old_checklist_item_id_array(k) <> old_checklist_item_id_array(k-1))) then
482 elmt_count := elmt_count + 1;
483 end if;
484 PVX_UTILITY_PVT.debug_message(l_api_name || 'k = ' || to_char(k));
485 PVX_UTILITY_PVT.debug_message(l_api_name || 'elmt_count = ' || to_char(elmt_count));
486 new_checklist_item_id_array(k) := checklist_item_id_array(elmt_count);
487
488 end loop;
489
490 Forall j in 1..old_checklist_item_id_array.count
491 --PVX_UTILITY_PVT.debug_message(l_api_name || 'insert into pv_checklist_items_tl');
492 INSERT INTO pv_ge_chklst_items_tl(
493 checklist_item_id,
494 language ,
495 last_update_date ,
496 last_updated_by ,
497 creation_date ,
498 created_by ,
499 last_update_login ,
500 source_lang ,
501 checklist_item_name
502 )
503 values
504 (
505 new_checklist_item_id_array(j),
506 language_array(j),
507 SYSDATE,
508 FND_GLOBAL.USER_ID,
509 SYSDATE,
510 FND_GLOBAL.USER_ID,
511 FND_GLOBAL.CONC_LOGIN_ID,
512 source_lang_array(j),
513 checklist_item_name_array(j)
514 );
515
516 exit when c_get_chklst_tl_rec%notfound;
517 END LOOP;
518 close c_get_chklst_tl_rec;
519
520 -- Check for commit
521 IF FND_API.to_boolean(p_commit) THEN
522 COMMIT;
523 END IF;
524
525 FND_MSG_PUB.count_and_get(
526 p_encoded => FND_API.g_false
527 ,p_count => x_msg_count
528 ,p_data => x_msg_data
529 );
530
531 EXCEPTION
532
533 WHEN PVX_Utility_PVT.resource_locked THEN
534 x_return_status := FND_API.g_ret_sts_error;
535 PVX_Utility_PVT.Error_Message(p_message_name => 'PV_API_RESOURCE_LOCKED');
536
537 WHEN FND_API.G_EXC_ERROR THEN
538 ROLLBACK TO Copy_Row;
539 x_return_status := FND_API.G_RET_STS_ERROR;
540 -- Standard call to get message count and if count=1, get the message
541 FND_MSG_PUB.Count_And_Get (
542 p_encoded => FND_API.G_FALSE,
543 p_count => x_msg_count,
544 p_data => x_msg_data
545 );
546
547 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
548 ROLLBACK TO Copy_Row;
549 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
550 -- Standard call to get message count and if count=1, get the message
551 FND_MSG_PUB.Count_And_Get (
552 p_encoded => FND_API.G_FALSE,
553 p_count => x_msg_count,
554 p_data => x_msg_data
555 );
556
557 WHEN OTHERS THEN
558 ROLLBACK TO Copy_Row;
559 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
560 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
561 THEN
562 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
563 END IF;
564 -- Standard call to get message count and if count=1, get the message
565 FND_MSG_PUB.Count_And_Get (
566 p_encoded => FND_API.G_FALSE,
567 p_count => x_msg_count,
568 p_data => x_msg_data
569 );
570
571 END Copy_Row;
572
573 -- ==============================================================================
574 -- Start of Comments
575 -- ==============================================================================
576 -- API Name
577 -- Update_Ge_Chklst
578 -- Type
579 -- Private
580 -- Pre-Req
581 --
582 -- Parameters
583 --
584 -- IN
585 -- p_api_version_number IN NUMBER Required
586 -- p_init_msg_list IN VARCHAR2 Optional Default = FND_API_G_FALSE
587 -- p_commit IN VARCHAR2 Optional Default = FND_API.G_FALSE
588 -- p_validation_level IN NUMBER Optional Default = FND_API.G_VALID_LEVEL_FULL
589 -- p_ge_chklst_rec IN ge_chklst_rec_type Required
590 --
591 -- OUT
592 -- x_return_status OUT VARCHAR2
593 -- x_msg_count OUT NUMBER
594 -- x_msg_data OUT VARCHAR2
595 -- Version : Current version 1.0
596 -- Note: This automatic generated procedure definition, it includes standard IN/OUT parameters
597 -- and basic operation, developer must manually add parameters and business logic as necessary.
598 --
599 -- History
600 --
601 -- NOTE
602 --
603 -- End of Comments
604 -- ==============================================================================
605
606 PROCEDURE Update_Ge_Chklst(
607 p_api_version_number IN NUMBER,
608 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
609 p_commit IN VARCHAR2 := FND_API.G_FALSE,
610 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
611
612 x_return_status OUT NOCOPY VARCHAR2,
613 x_msg_count OUT NOCOPY NUMBER,
614 x_msg_data OUT NOCOPY VARCHAR2,
615
616 p_ge_chklst_rec IN ge_chklst_rec_type
617 )
618
619 IS
620
621
622 CURSOR c_get_ge_chklst(checklist_item_id NUMBER) IS
623 SELECT *
624 FROM PV_GE_CHKLST_ITEMS_B
625 WHERE checklist_item_id = p_ge_chklst_rec.checklist_item_id;
626 -- Hint: Developer need to provide Where clause
627
628
629 L_API_NAME CONSTANT VARCHAR2(30) := 'Update_Ge_Chklst';
630 L_API_VERSION_NUMBER CONSTANT NUMBER := 1.0;
631 -- Local Variables
632 l_object_version_number NUMBER;
633 l_checklist_item_id NUMBER;
634 l_ref_ge_chklst_rec c_get_Ge_Chklst%ROWTYPE ;
635 l_tar_ge_chklst_rec ge_chklst_rec_type := P_ge_chklst_rec;
636 l_rowid ROWID;
637
638 BEGIN
639 -- Standard Start of API savepoint
640 SAVEPOINT update_ge_chklst_pvt;
641
642 -- Standard call to check for call compatibility.
643 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
644 p_api_version_number,
645 l_api_name,
646 G_PKG_NAME)
647 THEN
648 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
649 END IF;
650
651
652 -- Initialize message list if p_init_msg_list is set to TRUE.
653 IF FND_API.to_Boolean( p_init_msg_list )
654 THEN
655 FND_MSG_PUB.initialize;
656 END IF;
657
658
659
660 -- Debug Message
661 IF (PV_DEBUG_HIGH_ON) THEN
662
663 PVX_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
664 END IF;
665
666
667
668 -- Initialize API return status to SUCCESS
669 x_return_status := FND_API.G_RET_STS_SUCCESS;
670
671 -- Debug Message
672 IF (PV_DEBUG_HIGH_ON) THEN
673
674 PVX_UTILITY_PVT.debug_message('Private API: - Open Cursor to Select');
675 END IF;
676
677 OPEN c_get_Ge_Chklst( l_tar_ge_chklst_rec.checklist_item_id);
678
679 FETCH c_get_Ge_Chklst INTO l_ref_ge_chklst_rec ;
680
681 If ( c_get_Ge_Chklst%NOTFOUND) THEN
682 PVX_UTILITY_PVT.Error_Message(p_message_name => 'API_MISSING_UPDATE_TARGET',
683 p_token_name => 'INFO',
684 p_token_value => 'Ge_Chklst') ;
685 RAISE FND_API.G_EXC_ERROR;
686 END IF;
687 -- Debug Message
688 IF (PV_DEBUG_HIGH_ON) THEN
689
690 PVX_UTILITY_PVT.debug_message('Private API: - Close Cursor');
691 END IF;
692 CLOSE c_get_Ge_Chklst;
693
694
695 If (l_tar_ge_chklst_rec.object_version_number is NULL or
696 l_tar_ge_chklst_rec.object_version_number = FND_API.G_MISS_NUM ) Then
697 PVX_UTILITY_PVT.Error_Message(p_message_name => 'API_VERSION_MISSING',
698 p_token_name => 'COLUMN',
699 p_token_value => 'Last_Update_Date') ;
700 raise FND_API.G_EXC_ERROR;
701 End if;
702 -- Check Whether record has been changed by someone else
703 If (l_tar_ge_chklst_rec.object_version_number <> l_ref_ge_chklst_rec.object_version_number) Then
704 PVX_UTILITY_PVT.Error_Message(p_message_name => 'API_RECORD_CHANGED',
705 p_token_name => 'INFO',
706 p_token_value => 'Ge_Chklst') ;
707 raise FND_API.G_EXC_ERROR;
708 End if;
709
710
711 IF ( P_validation_level >= FND_API.G_VALID_LEVEL_FULL)
712 THEN
713 -- Debug message
714 IF (PV_DEBUG_HIGH_ON) THEN
715
716 PVX_UTILITY_PVT.debug_message('Private API: Validate_Ge_Chklst');
717 END IF;
718
719 -- Invoke validation procedures
720 Validate_ge_chklst(
721 p_api_version_number => 1.0,
722 p_init_msg_list => FND_API.G_FALSE,
723 p_validation_level => p_validation_level,
724 p_validation_mode => JTF_PLSQL_API.g_update,
725 p_ge_chklst_rec => p_ge_chklst_rec,
726 x_return_status => x_return_status,
727 x_msg_count => x_msg_count,
728 x_msg_data => x_msg_data);
729 END IF;
730
731 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
732 RAISE FND_API.G_EXC_ERROR;
733 END IF;
734
735
736 -- Debug Message
737 --IF (PV_DEBUG_HIGH_ON) THENPVX_UTILITY_PVT.debug_message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API: Calling update table handler');END IF;
738
739 -- Invoke table handler(Pv_Ge_Chklst_Pkg.Update_Row)
740 Pv_Ge_Chklst_Pkg.Update_Row(
741 p_checklist_item_id => p_ge_chklst_rec.checklist_item_id,
742 p_object_version_number => p_ge_chklst_rec.object_version_number,
743 p_arc_used_by_entity_code => p_ge_chklst_rec.arc_used_by_entity_code,
744 p_used_by_entity_id => p_ge_chklst_rec.used_by_entity_id,
745 p_sequence_num => p_ge_chklst_rec.sequence_num,
746 p_is_required_flag => p_ge_chklst_rec.is_required_flag,
747 p_enabled_flag => p_ge_chklst_rec.enabled_flag,
748 p_last_updated_by => FND_GLOBAL.USER_ID,
749 p_last_update_date => SYSDATE,
750 p_last_update_login => FND_GLOBAL.conc_login_id,
751 p_checklist_item_name => p_ge_chklst_rec.checklist_item_name
752 );
753 --
754 -- End of API body.
755 --
756
757 -- Standard check for p_commit
758 IF FND_API.to_Boolean( p_commit )
759 THEN
760 COMMIT WORK;
761 END IF;
762
763
764 -- Debug Message
765 IF (PV_DEBUG_HIGH_ON) THEN
766
767 PVX_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'end');
768 END IF;
769
770
771 -- Standard call to get message count and if count is 1, get message info.
772 FND_MSG_PUB.Count_And_Get
773 (p_count => x_msg_count,
774 p_data => x_msg_data
775 );
776 EXCEPTION
777
778 WHEN PVX_UTILITY_PVT.resource_locked THEN
779 x_return_status := FND_API.g_ret_sts_error;
780 PVX_UTILITY_PVT.Error_Message(p_message_name => 'PV_API_RESOURCE_LOCKED');
781
782 WHEN FND_API.G_EXC_ERROR THEN
783 ROLLBACK TO UPDATE_Ge_Chklst_PVT;
784 x_return_status := FND_API.G_RET_STS_ERROR;
785 -- Standard call to get message count and if count=1, get the message
786 FND_MSG_PUB.Count_And_Get (
787 p_encoded => FND_API.G_FALSE,
788 p_count => x_msg_count,
789 p_data => x_msg_data
790 );
791
792 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
793 ROLLBACK TO UPDATE_Ge_Chklst_PVT;
794 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
795 -- Standard call to get message count and if count=1, get the message
796 FND_MSG_PUB.Count_And_Get (
797 p_encoded => FND_API.G_FALSE,
798 p_count => x_msg_count,
799 p_data => x_msg_data
800 );
801
802 WHEN OTHERS THEN
803 ROLLBACK TO UPDATE_Ge_Chklst_PVT;
804 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
805 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
806 THEN
807 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
808 END IF;
809 -- Standard call to get message count and if count=1, get the message
810 FND_MSG_PUB.Count_And_Get (
811 p_encoded => FND_API.G_FALSE,
812 p_count => x_msg_count,
813 p_data => x_msg_data
814 );
815 End Update_Ge_Chklst;
816
817
818 -- ==============================================================================
819 -- Start of Comments
820 -- ==============================================================================
821 -- API Name
822 -- Delete_Ge_Chklst
823 -- Type
824 -- Private
825 -- Pre-Req
826 --
827 -- Parameters
828 --
829 -- IN
830 -- p_api_version_number IN NUMBER Required
831 -- p_init_msg_list IN VARCHAR2 Optional Default = FND_API_G_FALSE
832 -- p_commit IN VARCHAR2 Optional Default = FND_API.G_FALSE
833 -- p_validation_level IN NUMBER Optional Default = FND_API.G_VALID_LEVEL_FULL
834 -- p_checklist_item_id IN NUMBER
835 -- p_object_version_number IN NUMBER Optional Default = NULL
836 --
837 -- OUT
838 -- x_return_status OUT VARCHAR2
839 -- x_msg_count OUT NUMBER
840 -- x_msg_data OUT VARCHAR2
841 -- Version : Current version 1.0
842 -- Note: This automatic generated procedure definition, it includes standard IN/OUT parameters
843 -- and basic operation, developer must manually add parameters and business logic as necessary.
844 --
845 -- History
846 --
847 -- NOTE
848 --
849 -- End of Comments
850 -- ==============================================================================
851
852 PROCEDURE Delete_Ge_Chklst(
853 p_api_version_number IN NUMBER,
854 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
855 p_commit IN VARCHAR2 := FND_API.G_FALSE,
856 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
857 x_return_status OUT NOCOPY VARCHAR2,
858 x_msg_count OUT NOCOPY NUMBER,
859 x_msg_data OUT NOCOPY VARCHAR2,
860 p_checklist_item_id IN NUMBER,
861 p_object_version_number IN NUMBER
862 )
863
864 IS
865 L_API_NAME CONSTANT VARCHAR2(30) := 'Delete_Ge_Chklst';
866 L_API_VERSION_NUMBER CONSTANT NUMBER := 1.0;
867 l_object_version_number NUMBER;
868
869 BEGIN
870 -- Standard Start of API savepoint
871 SAVEPOINT delete_ge_chklst_pvt;
872
873 -- Standard call to check for call compatibility.
874 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
875 p_api_version_number,
876 l_api_name,
877 G_PKG_NAME)
878 THEN
879 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
880 END IF;
881
882
883 -- Initialize message list if p_init_msg_list is set to TRUE.
884 IF FND_API.to_Boolean( p_init_msg_list )
885 THEN
886 FND_MSG_PUB.initialize;
887 END IF;
888
889
890
891 -- Debug Message
892 IF (PV_DEBUG_HIGH_ON) THEN
893
894 PVX_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
895 END IF;
896
897
898
899 -- Initialize API return status to SUCCESS
900 x_return_status := FND_API.G_RET_STS_SUCCESS;
901
902 --
903 -- Api body
904 --
905 -- Debug Message
906 IF (PV_DEBUG_HIGH_ON) THEN
907
908 PVX_UTILITY_PVT.debug_message( 'Private API: Calling delete table handler');
909 END IF;
910
911 -- Invoke table handler(Pv_Ge_Chklst_Pkg.Delete_Row)
912 Pv_Ge_Chklst_Pkg.Delete_Row(
913 p_checklist_item_id => p_checklist_item_id,
914 p_object_version_number => p_object_version_number );
915 --
916 -- End of API body
917 --
918
919 -- Standard check for p_commit
920 IF FND_API.to_Boolean( p_commit )
921 THEN
922 COMMIT WORK;
923 END IF;
924
925
926 -- Debug Message
927 IF (PV_DEBUG_HIGH_ON) THEN
928
929 PVX_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'end');
930 END IF;
931
932
933 -- Standard call to get message count and if count is 1, get message info.
934 FND_MSG_PUB.Count_And_Get
935 (p_count => x_msg_count,
936 p_data => x_msg_data
937 );
938 EXCEPTION
939
940 WHEN PVX_UTILITY_PVT.resource_locked THEN
941 x_return_status := FND_API.g_ret_sts_error;
942 PVX_UTILITY_PVT.Error_Message(p_message_name => 'PV_API_RESOURCE_LOCKED');
943
944 WHEN FND_API.G_EXC_ERROR THEN
945 ROLLBACK TO DELETE_Ge_Chklst_PVT;
946 x_return_status := FND_API.G_RET_STS_ERROR;
947 -- Standard call to get message count and if count=1, get the message
948 FND_MSG_PUB.Count_And_Get (
949 p_encoded => FND_API.G_FALSE,
950 p_count => x_msg_count,
951 p_data => x_msg_data
952 );
953
954 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
955 ROLLBACK TO DELETE_Ge_Chklst_PVT;
956 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
957 -- Standard call to get message count and if count=1, get the message
958 FND_MSG_PUB.Count_And_Get (
959 p_encoded => FND_API.G_FALSE,
960 p_count => x_msg_count,
961 p_data => x_msg_data
962 );
963
964 WHEN OTHERS THEN
965 ROLLBACK TO DELETE_Ge_Chklst_PVT;
966 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
967 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
968 THEN
969 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
970 END IF;
971 -- Standard call to get message count and if count=1, get the message
972 FND_MSG_PUB.Count_And_Get (
973 p_encoded => FND_API.G_FALSE,
974 p_count => x_msg_count,
975 p_data => x_msg_data
976 );
977 End Delete_Ge_Chklst;
978
979
980
981 -- Hint: Primary key needs to be returned.
982 -- ==============================================================================
983 -- Start of Comments
984 -- ==============================================================================
985 -- API Name
986 -- Lock_Ge_Chklst
987 -- Type
988 -- Private
989 -- Pre-Req
990 --
991 -- Parameters
992 --
993 -- IN
994 -- p_api_version_number IN NUMBER Required
995 -- p_init_msg_list IN VARCHAR2 Optional Default = FND_API_G_FALSE
996 -- p_commit IN VARCHAR2 Optional Default = FND_API.G_FALSE
997 -- p_validation_level IN NUMBER Optional Default = FND_API.G_VALID_LEVEL_FULL
998 -- p_ge_chklst_rec IN ge_chklst_rec_type Required
999 --
1000 -- OUT
1001 -- x_return_status OUT VARCHAR2
1002 -- x_msg_count OUT NUMBER
1003 -- x_msg_data OUT VARCHAR2
1004 -- Version : Current version 1.0
1005 -- Note: This automatic generated procedure definition, it includes standard IN/OUT parameters
1006 -- and basic operation, developer must manually add parameters and business logic as necessary.
1007 --
1008 -- History
1009 --
1010 -- NOTE
1011 --
1012 -- End of Comments
1013 -- ==============================================================================
1014
1015 PROCEDURE Lock_Ge_Chklst(
1016 p_api_version_number IN NUMBER,
1017 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1018
1019 x_return_status OUT NOCOPY VARCHAR2,
1020 x_msg_count OUT NOCOPY NUMBER,
1021 x_msg_data OUT NOCOPY VARCHAR2,
1022
1023 p_checklist_item_id IN NUMBER,
1024 p_object_version IN NUMBER
1025 )
1026
1027 IS
1028 L_API_NAME CONSTANT VARCHAR2(30) := 'Lock_Ge_Chklst';
1029 L_API_VERSION_NUMBER CONSTANT NUMBER := 1.0;
1030 L_FULL_NAME CONSTANT VARCHAR2(60) := g_pkg_name ||'.'|| l_api_name;
1031 l_checklist_item_id NUMBER;
1032
1033 BEGIN
1034
1035 -- Debug Message
1036 IF (PV_DEBUG_HIGH_ON) THEN
1037
1038 PVX_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
1039 END IF;
1040
1041
1042 -- Initialize message list if p_init_msg_list is set to TRUE.
1043 IF FND_API.to_Boolean( p_init_msg_list )
1044 THEN
1045 FND_MSG_PUB.initialize;
1046 END IF;
1047
1048
1049
1050 -- Standard call to check for call compatibility.
1051 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
1052 p_api_version_number,
1053 l_api_name,
1054 G_PKG_NAME)
1055 THEN
1056 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1057 END IF;
1058
1059
1060
1061 -- Initialize API return status to SUCCESS
1062 x_return_status := FND_API.G_RET_STS_SUCCESS;
1063
1064
1065 ------------------------ lock -------------------------
1066 Pv_Ge_Chklst_Pkg.Lock_Row(l_checklist_item_id,p_object_version);
1067
1068
1069 -------------------- finish --------------------------
1070 FND_MSG_PUB.count_and_get(
1071 p_encoded => FND_API.g_false,
1072 p_count => x_msg_count,
1073 p_data => x_msg_data);
1074 IF (PV_DEBUG_HIGH_ON) THEN
1075
1076 PVX_UTILITY_PVT.debug_message(l_full_name ||': end');
1077 END IF;
1078 EXCEPTION
1079
1080 WHEN PVX_UTILITY_PVT.resource_locked THEN
1081 x_return_status := FND_API.g_ret_sts_error;
1082 PVX_UTILITY_PVT.Error_Message(p_message_name => 'PV_API_RESOURCE_LOCKED');
1083
1084 WHEN FND_API.G_EXC_ERROR THEN
1085 ROLLBACK TO LOCK_Ge_Chklst_PVT;
1086 x_return_status := FND_API.G_RET_STS_ERROR;
1087 -- Standard call to get message count and if count=1, get the message
1088 FND_MSG_PUB.Count_And_Get (
1089 p_encoded => FND_API.G_FALSE,
1090 p_count => x_msg_count,
1091 p_data => x_msg_data
1092 );
1093
1094 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1095 ROLLBACK TO LOCK_Ge_Chklst_PVT;
1096 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1097 -- Standard call to get message count and if count=1, get the message
1098 FND_MSG_PUB.Count_And_Get (
1099 p_encoded => FND_API.G_FALSE,
1100 p_count => x_msg_count,
1101 p_data => x_msg_data
1102 );
1103
1104 WHEN OTHERS THEN
1105 ROLLBACK TO LOCK_Ge_Chklst_PVT;
1106 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1107 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1108 THEN
1109 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
1110 END IF;
1111 -- Standard call to get message count and if count=1, get the message
1112 FND_MSG_PUB.Count_And_Get (
1113 p_encoded => FND_API.G_FALSE,
1114 p_count => x_msg_count,
1115 p_data => x_msg_data
1116 );
1117 End Lock_Ge_Chklst;
1118
1119
1120
1121
1122 PROCEDURE check_Ge_Chklst_Uk_Items(
1123 p_ge_chklst_rec IN ge_chklst_rec_type,
1124 p_validation_mode IN VARCHAR2 := JTF_PLSQL_API.g_create,
1125 x_return_status OUT NOCOPY VARCHAR2)
1126 IS
1127 l_valid_flag VARCHAR2(1);
1128
1129 BEGIN
1130 x_return_status := FND_API.g_ret_sts_success;
1131 IF p_validation_mode = JTF_PLSQL_API.g_create
1132 AND p_ge_chklst_rec.checklist_item_id IS NOT NULL
1133 THEN
1134 l_valid_flag := PVX_UTILITY_PVT.check_uniqueness(
1135 'pv_ge_chklst_items_b',
1136 'checklist_item_id = ''' || p_ge_chklst_rec.checklist_item_id ||''''
1137 );
1138 END IF;
1139
1140 IF l_valid_flag = FND_API.g_false THEN
1141 PVX_UTILITY_PVT.Error_Message(p_message_name => 'PV_checklist_item_id_DUPLICATE');
1142 x_return_status := FND_API.g_ret_sts_error;
1143 END IF;
1144
1145 END check_Ge_Chklst_Uk_Items;
1146
1147
1148
1149 PROCEDURE check_Ge_Chklst_Req_Items(
1150 p_ge_chklst_rec IN ge_chklst_rec_type,
1151 p_validation_mode IN VARCHAR2 := JTF_PLSQL_API.g_create,
1152 x_return_status OUT NOCOPY VARCHAR2
1153 )
1154 IS
1155 BEGIN
1156 x_return_status := FND_API.g_ret_sts_success;
1157
1158 IF p_validation_mode = JTF_PLSQL_API.g_create THEN
1159
1160
1161 IF p_ge_chklst_rec.checklist_item_id = FND_API.G_MISS_NUM OR p_ge_chklst_rec.checklist_item_id IS NULL THEN
1162 PVX_UTILITY_PVT.Error_Message('AMS_API_MISSING_FIELD', 'MISS_FIELD', 'CHECKLIST_ITEM_ID' );
1163 x_return_status := FND_API.g_ret_sts_error;
1164 END IF;
1165
1166
1167 IF p_ge_chklst_rec.object_version_number = FND_API.G_MISS_NUM OR p_ge_chklst_rec.object_version_number IS NULL THEN
1168 PVX_UTILITY_PVT.Error_Message('AMS_API_MISSING_FIELD', 'MISS_FIELD', 'OBJECT_VERSION_NUMBER' );
1169 x_return_status := FND_API.g_ret_sts_error;
1170 END IF;
1171
1172
1173 IF p_ge_chklst_rec.arc_used_by_entity_code = FND_API.g_miss_char OR p_ge_chklst_rec.arc_used_by_entity_code IS NULL THEN
1174 PVX_UTILITY_PVT.Error_Message('AMS_API_MISSING_FIELD', 'MISS_FIELD', 'ARC_USED_BY_ENTITY_CODE' );
1175 x_return_status := FND_API.g_ret_sts_error;
1176 END IF;
1177
1178
1179 IF p_ge_chklst_rec.used_by_entity_id = FND_API.G_MISS_NUM OR p_ge_chklst_rec.used_by_entity_id IS NULL THEN
1180 PVX_UTILITY_PVT.Error_Message('AMS_API_MISSING_FIELD', 'MISS_FIELD', 'USED_BY_ENTITY_ID' );
1181 x_return_status := FND_API.g_ret_sts_error;
1182 END IF;
1183
1184
1185 IF p_ge_chklst_rec.sequence_num = FND_API.G_MISS_NUM OR p_ge_chklst_rec.sequence_num IS NULL THEN
1186 PVX_UTILITY_PVT.Error_Message('AMS_API_MISSING_FIELD', 'MISS_FIELD', 'SEQUENCE_NUM' );
1187 x_return_status := FND_API.g_ret_sts_error;
1188 END IF;
1189
1190
1191 IF p_ge_chklst_rec.is_required_flag = FND_API.g_miss_char OR p_ge_chklst_rec.is_required_flag IS NULL THEN
1192 PVX_UTILITY_PVT.Error_Message('AMS_API_MISSING_FIELD', 'MISS_FIELD', 'IS_REQUIRED_FLAG' );
1193 x_return_status := FND_API.g_ret_sts_error;
1194 END IF;
1195
1196
1197 IF p_ge_chklst_rec.enabled_flag = FND_API.g_miss_char OR p_ge_chklst_rec.enabled_flag IS NULL THEN
1198 PVX_UTILITY_PVT.Error_Message('AMS_API_MISSING_FIELD', 'MISS_FIELD', 'ENABLED_FLAG' );
1199 x_return_status := FND_API.g_ret_sts_error;
1200 END IF;
1201
1202
1203 ELSE
1204
1205
1206 IF p_ge_chklst_rec.checklist_item_id = FND_API.G_MISS_NUM THEN
1207 PVX_UTILITY_PVT.Error_Message('AMS_API_MISSING_FIELD', 'MISS_FIELD', 'CHECKLIST_ITEM_ID' );
1208 x_return_status := FND_API.g_ret_sts_error;
1209 END IF;
1210
1211
1212 IF p_ge_chklst_rec.object_version_number = FND_API.G_MISS_NUM THEN
1213 PVX_UTILITY_PVT.Error_Message('AMS_API_MISSING_FIELD', 'MISS_FIELD', 'OBJECT_VERSION_NUMBER' );
1214 x_return_status := FND_API.g_ret_sts_error;
1215 END IF;
1216
1217
1218 IF p_ge_chklst_rec.arc_used_by_entity_code = FND_API.g_miss_char THEN
1219 PVX_UTILITY_PVT.Error_Message('AMS_API_MISSING_FIELD', 'MISS_FIELD', 'ARC_USED_BY_ENTITY_CODE' );
1220 x_return_status := FND_API.g_ret_sts_error;
1221 END IF;
1222
1223
1224 IF p_ge_chklst_rec.used_by_entity_id = FND_API.G_MISS_NUM THEN
1225 PVX_UTILITY_PVT.Error_Message('AMS_API_MISSING_FIELD', 'MISS_FIELD', 'USED_BY_ENTITY_ID' );
1226 x_return_status := FND_API.g_ret_sts_error;
1227 END IF;
1228
1229
1230 IF p_ge_chklst_rec.sequence_num = FND_API.G_MISS_NUM THEN
1231 PVX_UTILITY_PVT.Error_Message('AMS_API_MISSING_FIELD', 'MISS_FIELD', 'SEQUENCE_NUM' );
1232 x_return_status := FND_API.g_ret_sts_error;
1233 END IF;
1234
1235
1236 IF p_ge_chklst_rec.is_required_flag = FND_API.g_miss_char THEN
1237 PVX_UTILITY_PVT.Error_Message('AMS_API_MISSING_FIELD', 'MISS_FIELD', 'IS_REQUIRED_FLAG' );
1238 x_return_status := FND_API.g_ret_sts_error;
1239 END IF;
1240
1241
1242 IF p_ge_chklst_rec.enabled_flag = FND_API.g_miss_char THEN
1243 PVX_UTILITY_PVT.Error_Message('AMS_API_MISSING_FIELD', 'MISS_FIELD', 'ENABLED_FLAG' );
1244 x_return_status := FND_API.g_ret_sts_error;
1245 END IF;
1246 END IF;
1247
1248 END check_Ge_Chklst_Req_Items;
1249
1250
1251
1252 PROCEDURE check_Ge_Chklst_Fk_Items(
1253 p_ge_chklst_rec IN ge_chklst_rec_type,
1254 x_return_status OUT NOCOPY VARCHAR2
1255 )
1256 IS
1257 BEGIN
1258 x_return_status := FND_API.g_ret_sts_success;
1259
1260 -- Enter custom code here
1261
1262 END check_Ge_Chklst_Fk_Items;
1263
1264
1265
1266 PROCEDURE check_Ge_Chklst_Lookup_Items(
1267 p_ge_chklst_rec IN ge_chklst_rec_type,
1268 x_return_status OUT NOCOPY VARCHAR2
1269 )
1270 IS
1271 BEGIN
1272 x_return_status := FND_API.g_ret_sts_success;
1273
1274 -- Enter custom code here
1275
1276 END check_Ge_Chklst_Lookup_Items;
1277
1278
1279
1280 PROCEDURE Check_Ge_Chklst_Items (
1281 P_ge_chklst_rec IN ge_chklst_rec_type,
1282 p_validation_mode IN VARCHAR2,
1283 x_return_status OUT NOCOPY VARCHAR2
1284 )
1285 IS
1286 l_return_status VARCHAR2(1);
1287 BEGIN
1288
1289 l_return_status := FND_API.g_ret_sts_success;
1290 -- Check Items Uniqueness API calls
1291
1292 check_Ge_chklst_Uk_Items(
1293 p_ge_chklst_rec => p_ge_chklst_rec,
1294 p_validation_mode => p_validation_mode,
1295 x_return_status => x_return_status);
1296 IF x_return_status <> FND_API.g_ret_sts_success THEN
1297 l_return_status := FND_API.g_ret_sts_error;
1298 END IF;
1299
1300 -- Check Items Required/NOT NULL API calls
1301
1302 check_ge_chklst_req_items(
1303 p_ge_chklst_rec => p_ge_chklst_rec,
1304 p_validation_mode => p_validation_mode,
1305 x_return_status => x_return_status);
1306 IF x_return_status <> FND_API.g_ret_sts_success THEN
1307 l_return_status := FND_API.g_ret_sts_error;
1308 END IF;
1309 -- Check Items Foreign Keys API calls
1310
1311 check_ge_chklst_FK_items(
1312 p_ge_chklst_rec => p_ge_chklst_rec,
1313 x_return_status => x_return_status);
1314 IF x_return_status <> FND_API.g_ret_sts_success THEN
1315 l_return_status := FND_API.g_ret_sts_error;
1316 END IF;
1317 -- Check Items Lookups
1318
1319 check_ge_chklst_Lookup_items(
1320 p_ge_chklst_rec => p_ge_chklst_rec,
1321 x_return_status => x_return_status);
1322 IF x_return_status <> FND_API.g_ret_sts_success THEN
1323 l_return_status := FND_API.g_ret_sts_error;
1324 END IF;
1325
1326 x_return_status := l_return_status;
1327
1328 END Check_ge_chklst_Items;
1329
1330
1331
1332
1333
1334 PROCEDURE Complete_Ge_Chklst_Rec (
1335 p_ge_chklst_rec IN ge_chklst_rec_type,
1336 x_complete_rec OUT NOCOPY ge_chklst_rec_type)
1337 IS
1338 l_return_status VARCHAR2(1);
1339
1340 CURSOR c_complete IS
1341 SELECT *
1342 FROM pv_ge_chklst_items_b
1343 WHERE checklist_item_id = p_ge_chklst_rec.checklist_item_id;
1344 l_ge_chklst_rec c_complete%ROWTYPE;
1345 BEGIN
1346 x_complete_rec := p_ge_chklst_rec;
1347
1348
1349 OPEN c_complete;
1350 FETCH c_complete INTO l_ge_chklst_rec;
1351 CLOSE c_complete;
1352
1353 -- checklist_item_id
1354 IF p_ge_chklst_rec.checklist_item_id IS NULL THEN
1355 x_complete_rec.checklist_item_id := l_ge_chklst_rec.checklist_item_id;
1356 END IF;
1357
1358 -- object_version_number
1359 IF p_ge_chklst_rec.object_version_number IS NULL THEN
1360 x_complete_rec.object_version_number := l_ge_chklst_rec.object_version_number;
1361 END IF;
1362
1363 -- arc_used_by_entity_code
1364 IF p_ge_chklst_rec.arc_used_by_entity_code IS NULL THEN
1365 x_complete_rec.arc_used_by_entity_code := l_ge_chklst_rec.arc_used_by_entity_code;
1366 END IF;
1367
1368 -- used_by_entity_id
1369 IF p_ge_chklst_rec.used_by_entity_id IS NULL THEN
1370 x_complete_rec.used_by_entity_id := l_ge_chklst_rec.used_by_entity_id;
1371 END IF;
1372
1373 -- sequence_num
1374 IF p_ge_chklst_rec.sequence_num IS NULL THEN
1375 x_complete_rec.sequence_num := l_ge_chklst_rec.sequence_num;
1376 END IF;
1377
1378 -- is_required_flag
1379 IF p_ge_chklst_rec.is_required_flag IS NULL THEN
1380 x_complete_rec.is_required_flag := l_ge_chklst_rec.is_required_flag;
1381 END IF;
1382
1383 -- enabled_flag
1384 IF p_ge_chklst_rec.enabled_flag IS NULL THEN
1385 x_complete_rec.enabled_flag := l_ge_chklst_rec.enabled_flag;
1386 END IF;
1387
1388 -- created_by
1389 IF p_ge_chklst_rec.created_by IS NULL THEN
1390 x_complete_rec.created_by := l_ge_chklst_rec.created_by;
1391 END IF;
1392
1393 -- creation_date
1394 IF p_ge_chklst_rec.creation_date IS NULL THEN
1395 x_complete_rec.creation_date := l_ge_chklst_rec.creation_date;
1396 END IF;
1397
1398 -- last_updated_by
1399 IF p_ge_chklst_rec.last_updated_by IS NULL THEN
1400 x_complete_rec.last_updated_by := l_ge_chklst_rec.last_updated_by;
1401 END IF;
1402
1403 -- last_update_date
1404 IF p_ge_chklst_rec.last_update_date IS NULL THEN
1405 x_complete_rec.last_update_date := l_ge_chklst_rec.last_update_date;
1406 END IF;
1407
1408 -- last_update_login
1409 IF p_ge_chklst_rec.last_update_login IS NULL THEN
1410 x_complete_rec.last_update_login := l_ge_chklst_rec.last_update_login;
1411 END IF;
1412 -- Note: Developers need to modify the procedure
1413 -- to handle any business specific requirements.
1414 END Complete_Ge_Chklst_Rec;
1415
1416
1417
1418
1419 PROCEDURE Default_Ge_Chklst_Items ( p_ge_chklst_rec IN ge_chklst_rec_type ,
1420 x_ge_chklst_rec OUT NOCOPY ge_chklst_rec_type )
1421 IS
1422 l_ge_chklst_rec ge_chklst_rec_type := p_ge_chklst_rec;
1423 BEGIN
1424 -- Developers should put their code to default the record type
1425 -- e.g. IF p_campaign_rec.status_code IS NULL
1426 -- OR p_campaign_rec.status_code = FND_API.G_MISS_CHAR THEN
1427 -- l_campaign_rec.status_code := 'NEW' ;
1428 -- END IF ;
1429 --
1430 NULL ;
1431 END;
1432
1433
1434
1435
1436 PROCEDURE Validate_Ge_Chklst(
1437 p_api_version_number IN NUMBER,
1438 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1439 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
1440 p_ge_chklst_rec IN ge_chklst_rec_type,
1441 p_validation_mode IN VARCHAR2,
1442 x_return_status OUT NOCOPY VARCHAR2,
1443 x_msg_count OUT NOCOPY NUMBER,
1444 x_msg_data OUT NOCOPY VARCHAR2
1445 )
1446 IS
1447 L_API_NAME CONSTANT VARCHAR2(30) := 'Validate_Ge_Chklst';
1448 L_API_VERSION_NUMBER CONSTANT NUMBER := 1.0;
1449 l_object_version_number NUMBER;
1450 l_ge_chklst_rec ge_chklst_rec_type;
1451 l_ge_chklst_rec_out ge_chklst_rec_type;
1452
1453 BEGIN
1454 -- Standard Start of API savepoint
1455 SAVEPOINT validate_ge_chklst_;
1456
1457 -- Standard call to check for call compatibility.
1458 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
1459 p_api_version_number,
1460 l_api_name,
1461 G_PKG_NAME)
1462 THEN
1463 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1464 END IF;
1465
1466
1467 -- Initialize message list if p_init_msg_list is set to TRUE.
1468 IF FND_API.to_Boolean( p_init_msg_list )
1469 THEN
1470 FND_MSG_PUB.initialize;
1471 END IF;
1472
1473
1474 IF p_validation_level >= JTF_PLSQL_API.g_valid_level_item THEN
1475 Check_ge_chklst_Items(
1476 p_ge_chklst_rec => p_ge_chklst_rec,
1477 p_validation_mode => p_validation_mode,
1478 x_return_status => x_return_status
1479 );
1480
1481 IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1482 RAISE FND_API.G_EXC_ERROR;
1483 ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1484 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1485 END IF;
1486 END IF;
1487
1488 IF p_validation_mode = JTF_PLSQL_API.g_create THEN
1489 Default_Ge_Chklst_Items (p_ge_chklst_rec => p_ge_chklst_rec ,
1490 x_ge_chklst_rec => l_ge_chklst_rec) ;
1491 END IF ;
1492
1493
1494 Complete_ge_chklst_Rec(
1495 p_ge_chklst_rec => l_ge_chklst_rec,
1496 x_complete_rec => l_ge_chklst_rec_out
1497 );
1498
1499 l_ge_chklst_rec := l_ge_chklst_rec_out;
1500
1501 IF p_validation_level >= JTF_PLSQL_API.g_valid_level_item THEN
1502 Validate_ge_chklst_Rec(
1503 p_api_version_number => 1.0,
1504 p_init_msg_list => FND_API.G_FALSE,
1505 x_return_status => x_return_status,
1506 x_msg_count => x_msg_count,
1507 x_msg_data => x_msg_data,
1508 p_ge_chklst_rec => l_ge_chklst_rec);
1509
1510 IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1511 RAISE FND_API.G_EXC_ERROR;
1512 ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1513 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1514 END IF;
1515 END IF;
1516
1517
1518 -- Debug Message
1519 IF (PV_DEBUG_HIGH_ON) THEN
1520
1521 PVX_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
1522 END IF;
1523
1524
1525
1526 -- Initialize API return status to SUCCESS
1527 x_return_status := FND_API.G_RET_STS_SUCCESS;
1528
1529
1530 -- Debug Message
1531 IF (PV_DEBUG_HIGH_ON) THEN
1532
1533 PVX_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'end');
1534 END IF;
1535
1536
1537 -- Standard call to get message count and if count is 1, get message info.
1538 FND_MSG_PUB.Count_And_Get
1539 (p_count => x_msg_count,
1540 p_data => x_msg_data
1541 );
1542 EXCEPTION
1543
1544 WHEN PVX_UTILITY_PVT.resource_locked THEN
1545 x_return_status := FND_API.g_ret_sts_error;
1546 PVX_UTILITY_PVT.Error_Message(p_message_name => 'PV_API_RESOURCE_LOCKED');
1547
1548 WHEN FND_API.G_EXC_ERROR THEN
1549 ROLLBACK TO VALIDATE_Ge_Chklst_;
1550 x_return_status := FND_API.G_RET_STS_ERROR;
1551 -- Standard call to get message count and if count=1, get the message
1552 FND_MSG_PUB.Count_And_Get (
1553 p_encoded => FND_API.G_FALSE,
1554 p_count => x_msg_count,
1555 p_data => x_msg_data
1556 );
1557
1558 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1559 ROLLBACK TO VALIDATE_Ge_Chklst_;
1560 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1561 -- Standard call to get message count and if count=1, get the message
1562 FND_MSG_PUB.Count_And_Get (
1563 p_encoded => FND_API.G_FALSE,
1564 p_count => x_msg_count,
1565 p_data => x_msg_data
1566 );
1567
1568 WHEN OTHERS THEN
1569 ROLLBACK TO VALIDATE_Ge_Chklst_;
1570 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1571 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1572 THEN
1573 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
1574 END IF;
1575 -- Standard call to get message count and if count=1, get the message
1576 FND_MSG_PUB.Count_And_Get (
1577 p_encoded => FND_API.G_FALSE,
1578 p_count => x_msg_count,
1579 p_data => x_msg_data
1580 );
1581 End Validate_Ge_Chklst;
1582
1583
1584 PROCEDURE Validate_Ge_Chklst_Rec (
1585 p_api_version_number IN NUMBER,
1586 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1587 x_return_status OUT NOCOPY VARCHAR2,
1588 x_msg_count OUT NOCOPY NUMBER,
1589 x_msg_data OUT NOCOPY VARCHAR2,
1590 p_ge_chklst_rec IN ge_chklst_rec_type
1591 )
1592 IS
1593 BEGIN
1594 -- Initialize message list if p_init_msg_list is set to TRUE.
1595 IF FND_API.to_Boolean( p_init_msg_list )
1596 THEN
1597 FND_MSG_PUB.initialize;
1598 END IF;
1599
1600
1601
1602 -- Initialize API return status to SUCCESS
1603 x_return_status := FND_API.G_RET_STS_SUCCESS;
1604
1605 -- Hint: Validate data
1606 -- If data not valid
1607 -- THEN
1608 -- x_return_status := FND_API.G_RET_STS_ERROR;
1609
1610 -- Debug Message
1611 IF (PV_DEBUG_HIGH_ON) THEN
1612
1613 PVX_UTILITY_PVT.debug_message('Private API: Validate_dm_model_rec');
1614 END IF;
1615 -- Standard call to get message count and if count is 1, get message info.
1616 FND_MSG_PUB.Count_And_Get
1617 (p_count => x_msg_count,
1618 p_data => x_msg_data
1619 );
1620 END Validate_ge_chklst_Rec;
1621
1622 PROCEDURE Check_Item_In_Chklst_Resp (
1623 p_checklist_item_id IN NUMBER,
1624 x_response OUT NOCOPY NUMBER
1625 )
1626 IS
1627 l_response NUMBER;
1628 BEGIN
1629 l_response := 0;
1630
1631 FOR cur IN (SELECT 1 FROM pv_ge_chklst_responses WHERE checklist_item_id = p_checklist_item_id)
1632 LOOP
1633
1634 l_response :=1;
1635 EXIT WHEN l_response = 1;
1636
1637 END LOOP;
1638
1639 x_response := l_response;
1640
1641 END Check_Item_In_Chklst_Resp;
1642
1643
1644
1645
1646 END PV_Ge_Chklst_PVT;