[Home] [Help]
PACKAGE BODY: APPS.PSB_POS_SET_LINE_VALUES_PVT
Source
1 PACKAGE BODY PSB_Pos_Set_Line_Values_Pvt AS
2 /* $Header: PSBVSLVB.pls 120.2 2005/07/13 11:29:43 shtripat ship $ */
3
4 G_PKG_NAME CONSTANT VARCHAR2(30):= 'PSB_Pos_Set_Line_Values_Pvt';
5
6
7 /*=======================================================================+
8 | PROCEDURE Insert_Row |
9 +=======================================================================*/
10
11 PROCEDURE Insert_Row
12 (
13 p_api_version IN NUMBER,
14 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
15 p_commit IN VARCHAR2 := FND_API.G_FALSE,
16 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
17 p_return_status OUT NOCOPY VARCHAR2,
18 p_msg_count OUT NOCOPY NUMBER,
19 p_msg_data OUT NOCOPY VARCHAR2,
20 --
21 p_Row_Id IN OUT NOCOPY VARCHAR2,
22 p_Value_Sequence_Id IN OUT NOCOPY NUMBER,
23 p_Line_Sequence_Id IN NUMBER,
24 p_Attribute_Value_Id IN NUMBER,
25 p_Attribute_Value IN VARCHAR2,
26 p_Last_Update_Date IN DATE,
27 p_Last_Updated_By IN NUMBER,
28 p_Last_Update_Login IN NUMBER,
29 p_Created_By IN NUMBER,
30 p_Creation_Date IN DATE
31 )
32 IS
33 --
34 l_api_name CONSTANT VARCHAR2(30) := 'Insert_Row';
35 l_api_version CONSTANT NUMBER := 1.0;
36 --
37 CURSOR C IS
38 SELECT rowid
39 FROM psb_position_set_line_values
40 WHERE value_sequence_id = p_value_sequence_id ;
41
42 CURSOR C2 IS
43 SELECT psb_position_set_line_values_s.nextval
44 FROM dual;
45 BEGIN
46 --
47 SAVEPOINT Insert_Row_Pvt ;
48 --
49 IF NOT FND_API.Compatible_API_Call ( l_api_version,
50 p_api_version,
51 l_api_name,
52 G_PKG_NAME )
53 THEN
54 RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
55 END IF;
56 --
57
58 IF FND_API.to_Boolean ( p_init_msg_list ) THEN
59 FND_MSG_PUB.initialize ;
60 END IF;
61 --
62 p_return_status := FND_API.G_RET_STS_SUCCESS ;
63 --
64
65 IF (p_value_sequence_id is NULL) THEN
66 OPEN C2;
67
68 FETCH C2 INTO p_value_sequence_id ;
69 CLOSE C2;
70 END IF;
71
72 INSERT INTO psb_position_set_line_values(
73 value_sequence_id,
74 line_sequence_id,
75 attribute_value_id,
76 attribute_value,
77 last_update_date,
78 last_updated_by,
79 last_update_login,
80 created_by,
81 creation_date)
82 VALUES
83 (
84 p_value_sequence_id,
85 p_line_sequence_id,
86 p_attribute_value_id,
87 p_attribute_value,
88 p_last_update_date,
89 p_last_updated_by,
90 p_last_update_login,
91 p_created_by,
92 p_creation_date
93 );
94 OPEN C;
95 FETCH C INTO p_Row_Id;
96 IF (C%NOTFOUND) THEN
97 CLOSE C;
98 RAISE FND_API.G_EXC_ERROR ;
99 END IF;
100 CLOSE C;
101 --
102
103 --
104 IF FND_API.To_Boolean ( p_commit ) THEN
105 COMMIT WORK;
106 END iF;
107 --
108 FND_MSG_PUB.Count_And_Get ( p_count => p_msg_count,
109 p_data => p_msg_data );
110 --
111 EXCEPTION
112 --
113 WHEN FND_API.G_EXC_ERROR THEN
114 --
115 ROLLBACK TO Insert_Row_Pvt ;
116 p_return_status := FND_API.G_RET_STS_ERROR;
117 FND_MSG_PUB.Count_And_Get ( p_count => p_msg_count,
118 p_data => p_msg_data );
119 --
120 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
121 --
122 ROLLBACK TO Insert_Row_Pvt ;
123 p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
124 FND_MSG_PUB.Count_And_Get ( p_count => p_msg_count,
125 p_data => p_msg_data );
126 --
127 WHEN OTHERS THEN
128 --
129 ROLLBACK TO Insert_Row_Pvt ;
130 p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
131 --
132 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
133 FND_MSG_PUB.Add_Exc_Msg ( G_PKG_NAME,
134 l_api_name);
135 END if;
136 --
137 FND_MSG_PUB.Count_And_Get ( p_count => p_msg_count,
138 p_data => p_msg_data );
139 --
140 END Insert_Row;
141 /*-------------------------------------------------------------------------*/
142
143
144
145 /*==========================================================================+
146 | PROCEDURE Lock_Row |
147 +==========================================================================*/
148
149 PROCEDURE Lock_Row
150 (
151 p_api_version IN NUMBER,
152 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
153 p_commit IN VARCHAR2 := FND_API.G_FALSE,
154 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
155 p_return_status OUT NOCOPY VARCHAR2,
156 p_msg_count OUT NOCOPY NUMBER,
157 p_msg_data OUT NOCOPY VARCHAR2,
158 --
159 p_Row_Id IN VARCHAR2,
160 p_Value_Sequence_Id IN NUMBER,
161 p_Line_Sequence_Id IN NUMBER,
162 p_Attribute_Value_Id IN NUMBER,
163 p_Attribute_Value IN VARCHAR2,
164 --
165 p_row_locked OUT NOCOPY VARCHAR2
166 )
167 IS
168 --
169 l_api_name CONSTANT VARCHAR2(30) := 'Lock_Row';
170 l_api_version CONSTANT NUMBER := 1.0;
171 --
172 Counter NUMBER;
173 CURSOR C IS
174 SELECT *
175 FROM psb_position_set_line_values
176 WHERE rowid = p_Row_Id
177 FOR UPDATE of value_sequence_id NOWAIT;
178 Recinfo C%ROWTYPE;
179
180 BEGIN
181 --
182 SAVEPOINT Lock_Row_Pvt ;
183 --
184 IF NOT FND_API.Compatible_API_Call ( l_api_version,
185 p_api_version,
186 l_api_name,
187 G_PKG_NAME )
188 THEN
189 RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
190 END IF;
191 --
192
193 IF FND_API.to_Boolean ( p_init_msg_list ) THEN
194 FND_MSG_PUB.initialize ;
195 END IF;
196 --
197 p_return_status := FND_API.G_RET_STS_SUCCESS ;
198 p_row_locked := FND_API.G_TRUE ;
199 --
200 OPEN C;
201 --
202 FETCH C INTO Recinfo;
203 IF (C%NOTFOUND) then
204 CLOSE C;
205 FND_MESSAGE.Set_Name('FND', 'FORM_RECORD_DELETED');
206 FND_MSG_PUB.Add;
207 RAISE FND_API.G_EXC_ERROR ;
208 END IF;
209 CLOSE C;
210 IF
211 (
212 (Recinfo.value_sequence_id = p_value_sequence_id)
213
214 AND ( (Recinfo.line_sequence_id = p_line_sequence_id)
215 OR ( (Recinfo.line_sequence_id IS NULL)
216 AND (p_line_sequence_id IS NULL)))
217
218 AND ( (Recinfo.attribute_value_id = p_attribute_value_id)
219 OR ( (Recinfo.attribute_value_id IS NULL)
220 AND (p_attribute_value_id IS NULL)))
221
222 AND ( (Recinfo.attribute_value = p_attribute_value)
223 OR ( (Recinfo.attribute_value IS NULL)
224 AND (p_attribute_value IS NULL)))
225
226 )
227 THEN
228 Null;
229 ELSE
230 FND_MESSAGE.Set_Name('FND', 'FORM_RECORD_CHANGED');
231 FND_MSG_PUB.Add;
232 RAISE FND_API.G_EXC_ERROR ;
233 END IF;
234
235 --
236 IF FND_API.To_Boolean ( p_commit ) THEN
237 COMMIT WORK;
238 END iF;
239 --
240 FND_MSG_PUB.Count_And_Get ( p_count => p_msg_count,
241 p_data => p_msg_data );
242 --
243 EXCEPTION
244 --
245 WHEN APP_EXCEPTION.RECORD_LOCK_EXCEPTION THEN
246 --
247 ROLLBACK TO Lock_Row_Pvt ;
248 p_row_locked := FND_API.G_FALSE;
249 p_return_status := FND_API.G_RET_STS_ERROR;
250 FND_MSG_PUB.Count_And_Get ( p_count => p_msg_count,
251 p_data => p_msg_data );
252 --
253 WHEN FND_API.G_EXC_ERROR THEN
254 --
255 ROLLBACK TO Lock_Row_Pvt ;
256 p_return_status := FND_API.G_RET_STS_ERROR;
257 FND_MSG_PUB.Count_And_Get ( p_count => p_msg_count,
258 p_data => p_msg_data );
259 --
260 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
261 --
262 ROLLBACK TO Lock_Row_Pvt ;
263 p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
264 FND_MSG_PUB.Count_And_Get ( p_count => p_msg_count,
265 p_data => p_msg_data );
266 --
267 WHEN OTHERS THEN
268 --
269 ROLLBACK TO Lock_Row_Pvt ;
270 p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
271 --
272 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
273 FND_MSG_PUB.Add_Exc_Msg ( G_PKG_NAME,
274 l_api_name);
275 END if;
276 --
277 FND_MSG_PUB.Count_And_Get ( p_count => p_msg_count,
278 p_data => p_msg_data );
279 --
280 END Lock_Row;
281 /* ----------------------------------------------------------------------- */
282
283
284
285
286 /*==========================================================================+
287 | PROCEDURE Update_Row |
288 +==========================================================================*/
289
290 PROCEDURE Update_Row
291 (
292 p_api_version IN NUMBER,
293 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
294 p_commit IN VARCHAR2 := FND_API.G_FALSE,
295 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
296 p_return_status OUT NOCOPY VARCHAR2,
297 p_msg_count OUT NOCOPY NUMBER,
298 p_msg_data OUT NOCOPY VARCHAR2,
299 --
300 p_Row_Id IN VARCHAR2,
301 p_Value_Sequence_Id IN NUMBER,
302 p_Line_Sequence_Id IN NUMBER,
303 p_Attribute_Value_Id IN NUMBER,
304 p_Attribute_Value IN VARCHAR2,
305 p_Last_Update_Date IN DATE,
306 p_Last_Updated_By IN NUMBER,
307 p_Last_Update_Login IN NUMBER
308 )
309 IS
310 --
311 l_api_name CONSTANT VARCHAR2(30) := 'Update_Row';
312 l_api_version CONSTANT NUMBER := 1.0;
313 --
314 BEGIN
315 --
316 SAVEPOINT Update_Row_Pvt ;
317 --
318 IF NOT FND_API.Compatible_API_Call ( l_api_version,
319 p_api_version,
320 l_api_name,
321 G_PKG_NAME )
322 THEN
323 RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
324 END IF;
325 --
326
327 IF FND_API.to_Boolean ( p_init_msg_list ) THEN
328 FND_MSG_PUB.initialize ;
329 END IF;
330 --
331 p_return_status := FND_API.G_RET_STS_SUCCESS ;
332 --
333
334 UPDATE psb_position_set_line_values
335 SET
336 value_sequence_id = p_value_sequence_id,
337 line_sequence_id = p_line_sequence_id,
338 attribute_value_id = p_attribute_value_id,
339 attribute_value = p_attribute_value,
340 last_update_date = p_last_update_date,
341 last_updated_by = p_last_updated_by,
342 last_update_login = p_last_update_login
343 WHERE rowid = p_Row_Id;
344
345 IF (SQL%NOTFOUND) THEN
346 RAISE NO_DATA_FOUND ;
347 END IF;
348
349 --
350 IF FND_API.To_Boolean ( p_commit ) THEN
351 COMMIT WORK;
352 END iF;
353 --
354 FND_MSG_PUB.Count_And_Get ( p_count => p_msg_count,
355 p_data => p_msg_data );
356 --
357 EXCEPTION
358 --
359 WHEN FND_API.G_EXC_ERROR THEN
360 --
361 ROLLBACK TO Update_Row_Pvt ;
362 p_return_status := FND_API.G_RET_STS_ERROR;
363 FND_MSG_PUB.Count_And_Get ( p_count => p_msg_count,
364 p_data => p_msg_data );
365 --
366 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
367 --
368 ROLLBACK TO Update_Row_Pvt ;
369 p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
370 FND_MSG_PUB.Count_And_Get ( p_count => p_msg_count,
371 p_data => p_msg_data );
372 --
373 WHEN OTHERS THEN
374 --
375 ROLLBACK TO Update_Row_Pvt ;
376 p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
377 --
378 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
379 FND_MSG_PUB.Add_Exc_Msg ( G_PKG_NAME,
380 l_api_name);
381 END if;
382 --
383 FND_MSG_PUB.Count_And_Get ( p_count => p_msg_count,
384 p_data => p_msg_data );
385 --
386 END Update_Row;
387 /* ----------------------------------------------------------------------- */
388
389
390
391
392 /*==========================================================================+
393 | PROCEDURE Delete_Row |
394 +==========================================================================*/
395
396 PROCEDURE Delete_Row
397 (
398 p_api_version IN NUMBER,
399 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
400 p_commit IN VARCHAR2 := FND_API.G_FALSE,
401 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
402 p_return_status OUT NOCOPY VARCHAR2,
403 p_msg_count OUT NOCOPY NUMBER,
404 p_msg_data OUT NOCOPY VARCHAR2,
405 --
406 p_Row_Id IN VARCHAR2
407 )
408 IS
409 --
410 l_api_name CONSTANT VARCHAR2(30) := 'Delete_Row';
411 l_api_version CONSTANT NUMBER := 1.0;
412 --
413 BEGIN
414 --
415 SAVEPOINT Delete_Row_Pvt ;
416 --
417 IF NOT FND_API.Compatible_API_Call ( l_api_version,
418 p_api_version,
419 l_api_name,
420 G_PKG_NAME )
421 THEN
422 RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
423 END IF;
424 --
425
426 IF FND_API.to_Boolean ( p_init_msg_list ) THEN
427 FND_MSG_PUB.initialize ;
428 END IF;
429 --
430 p_return_status := FND_API.G_RET_STS_SUCCESS ;
431 --
432
433 --
434 -- Deleting the record in psb_position_set_line_values.
435 --
436 DELETE FROM psb_position_set_line_values
437 WHERE rowid = p_Row_Id;
438
439 IF (SQL%NOTFOUND) THEN
440 RAISE NO_DATA_FOUND ;
441 END IF;
442
443 --
444 IF FND_API.To_Boolean ( p_commit ) THEN
445 COMMIT WORK;
446 END iF;
447 --
448 FND_MSG_PUB.Count_And_Get ( p_count => p_msg_count,
449 p_data => p_msg_data );
450
451 EXCEPTION
452 --
453 WHEN FND_API.G_EXC_ERROR THEN
454 --
455 ROLLBACK TO Delete_Row_Pvt ;
456 p_return_status := FND_API.G_RET_STS_ERROR;
457 FND_MSG_PUB.Count_And_Get ( p_count => p_msg_count,
458 p_data => p_msg_data );
459 --
460 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
461 --
462 ROLLBACK TO Delete_Row_Pvt ;
463 p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
464 FND_MSG_PUB.Count_And_Get ( p_count => p_msg_count,
465 p_data => p_msg_data );
466 --
467 WHEN OTHERS THEN
468 --
469 ROLLBACK TO Delete_Row_Pvt ;
470 p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
471 --
472 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
473 FND_MSG_PUB.Add_Exc_Msg ( G_PKG_NAME,
474 l_api_name);
475 END if;
476 --
477 FND_MSG_PUB.Count_And_Get ( p_count => p_msg_count,
478 p_data => p_msg_data );
479 --
480 END Delete_Row;
481 /* ----------------------------------------------------------------------- */
482
483
484
485 /*==========================================================================+
486 | PROCEDURE Check_Unique |
487 +==========================================================================*/
488
489 PROCEDURE Check_Unique
490 (
491 p_api_version IN NUMBER,
492 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
493 p_commit IN VARCHAR2 := FND_API.G_FALSE,
494 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
495 p_return_status OUT NOCOPY VARCHAR2,
496 p_msg_count OUT NOCOPY NUMBER,
497 p_msg_data OUT NOCOPY VARCHAR2,
498 --
499 p_Row_Id IN VARCHAR2,
500 p_Line_Sequence_id IN NUMBER,
501 p_Attribute_Value_Id IN NUMBER,
502 p_Attribute_Value IN VARCHAR2,
503 p_Return_Value IN OUT NOCOPY VARCHAR2
504 )
505 IS
506 --
507 l_api_name CONSTANT VARCHAR2(30) := 'Check_Unique';
508 l_api_version CONSTANT NUMBER := 1.0;
509 --
510 l_tmp VARCHAR2(1);
511
512 /*
513 CURSOR c IS
514 SELECT '1'
515 FROM psb_position_set_line_values
516 WHERE attribute_value = p_attribute_value
517 AND ( (p_Row_Id IS NULL)
518 OR
519 (RowId <> p_Row_Id)
520 );
521 */
522
523 CURSOR c IS
524 SELECT '1'
525 FROM psb_position_set_line_values
526 WHERE line_sequence_id = p_line_sequence_id
527 AND ( p_attribute_value_id IS NULL
528 OR
529 attribute_value_id = p_attribute_value_id )
530 AND ( p_attribute_value IS NULL
531 OR
532 attribute_value = p_attribute_value )
533 AND ( p_Row_Id IS NULL
534 OR
535 RowId <> p_Row_Id
536 );
537 BEGIN
538 --
539 SAVEPOINT Check_Unique_Pvt ;
540 --
541 IF NOT FND_API.Compatible_API_Call ( l_api_version,
542 p_api_version,
543 l_api_name,
544 G_PKG_NAME )
545 THEN
546 RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
547 END IF;
548 --
549
550 IF FND_API.to_Boolean ( p_init_msg_list ) THEN
551 FND_MSG_PUB.initialize ;
552 END IF;
553 --
554 p_return_status := FND_API.G_RET_STS_SUCCESS ;
555 --
556
557 -- Checking the Psb_set_relations table for references.
558 OPEN c;
559 FETCH c INTO l_tmp;
560 --
561 -- p_Return_Value tells whether references exist or not.
562 IF l_tmp IS NULL THEN
563 p_Return_Value := 'FALSE';
564 ELSE
565 p_Return_Value := 'TRUE';
566 END IF;
567
568 CLOSE c;
569 --
570 IF FND_API.To_Boolean ( p_commit ) THEN
571 COMMIT WORK;
572 END iF;
573 --
574 FND_MSG_PUB.Count_And_Get ( p_count => p_msg_count,
575 p_data => p_msg_data );
576 --
577 EXCEPTION
578 --
579 WHEN FND_API.G_EXC_ERROR THEN
580 --
581 ROLLBACK TO Check_Unique_Pvt ;
582 p_return_status := FND_API.G_RET_STS_ERROR;
583 FND_MSG_PUB.Count_And_Get ( p_count => p_msg_count,
584 p_data => p_msg_data );
585 --
586 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
587 --
588 ROLLBACK TO Check_Unique_Pvt ;
589 p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
590 FND_MSG_PUB.Count_And_Get ( p_count => p_msg_count,
591 p_data => p_msg_data );
592 --
593 WHEN OTHERS THEN
594 --
595 ROLLBACK TO Check_Unique_Pvt ;
596 p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
597 --
598 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
599 FND_MSG_PUB.Add_Exc_Msg ( G_PKG_NAME,
600 l_api_name);
601 END if;
602 --
603 FND_MSG_PUB.Count_And_Get ( p_count => p_msg_count,
604 p_data => p_msg_data );
605 --
606 END Check_Unique;
607 /* ----------------------------------------------------------------------- */
608
609
610
611
612 /*==========================================================================+
613 | PROCEDURE Check_References |
614 +==========================================================================*/
615
616 PROCEDURE Check_References
617 (
618 p_api_version IN NUMBER,
619 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
620 p_commit IN VARCHAR2 := FND_API.G_FALSE,
621 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
622 p_return_status OUT NOCOPY VARCHAR2,
623 p_msg_count OUT NOCOPY NUMBER,
624 p_msg_data OUT NOCOPY VARCHAR2,
625 --
626 p_Account_Position_Set_Id IN NUMBER,
627 p_Return_Value IN OUT NOCOPY VARCHAR2
628 )
629 IS
630 --
631 l_api_name CONSTANT VARCHAR2(30) := 'Check_References';
632 l_api_version CONSTANT NUMBER := 1.0;
633 --
634 l_tmp VARCHAR2(1);
635
636 CURSOR c IS
637 SELECT '1'
638 FROM psb_set_relations
639 WHERE account_position_set_id = p_Account_Position_Set_Id;
640
641 BEGIN
642 --
643 SAVEPOINT Check_References_Pvt ;
644 --
645 IF NOT FND_API.Compatible_API_Call ( l_api_version,
646 p_api_version,
647 l_api_name,
648 G_PKG_NAME )
649 THEN
650 RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
651 END IF;
652 --
653
654 IF FND_API.to_Boolean ( p_init_msg_list ) THEN
655 FND_MSG_PUB.initialize ;
656 END IF;
657 --
658 p_return_status := FND_API.G_RET_STS_SUCCESS ;
659 --
660
661 -- Checking the Psb_set_relations table for references.
662 OPEN c;
663 FETCH c INTO l_tmp;
664 --
665 -- p_Return_Value tells whether references exist or not.
666 IF l_tmp IS NULL THEN
667 p_Return_Value := 'FALSE';
668 ELSE
669 p_Return_Value := 'TRUE';
670 END IF;
671
672 CLOSE c;
673 --
674 IF FND_API.To_Boolean ( p_commit ) THEN
675 COMMIT WORK;
676 END iF;
677 --
678 FND_MSG_PUB.Count_And_Get ( p_count => p_msg_count,
679 p_data => p_msg_data );
680
681 EXCEPTION
682 --
683 WHEN FND_API.G_EXC_ERROR THEN
684 --
685 ROLLBACK TO Check_References_Pvt ;
686 p_return_status := FND_API.G_RET_STS_ERROR;
687 FND_MSG_PUB.Count_And_Get ( p_count => p_msg_count,
688 p_data => p_msg_data );
689 --
690 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
691 --
692 ROLLBACK TO Check_References_Pvt ;
693 p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
694 FND_MSG_PUB.Count_And_Get ( p_count => p_msg_count,
695 p_data => p_msg_data );
696 --
697 WHEN OTHERS THEN
698 --
699 ROLLBACK TO Check_References_Pvt ;
700 p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
701 --
702 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
703 FND_MSG_PUB.Add_Exc_Msg ( G_PKG_NAME,
704 l_api_name);
705 END if;
706 --
707 FND_MSG_PUB.Count_And_Get ( p_count => p_msg_count,
708 p_data => p_msg_data );
709 --
710 END Check_References;
711 /*-------------------------------------------------------------------------*/
712
713
714 END PSB_Pos_Set_Line_Values_Pvt;