DBA Data[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;