[Home] [Help]
PACKAGE BODY: APPS.PSB_DEFAULT_ASSIGNMENTS_PVT
Source
1 PACKAGE BODY PSB_DEFAULT_ASSIGNMENTS_PVT AS
2 /* $Header: PSBVPDAB.pls 120.2 2005/07/13 11:27:57 shtripat ship $ */
3
4 G_PKG_NAME CONSTANT VARCHAR2(30):= 'PSB_DEFAULT_ASSIGNMENTS_PVT';
5
6 /* ----------------------------------------------------------------------- */
7
8 PROCEDURE INSERT_ROW
9 ( p_api_version IN NUMBER,
10 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
11 p_commit IN VARCHAR2 := FND_API.G_FALSE,
12 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
13 p_return_status OUT NOCOPY VARCHAR2,
14 p_msg_count OUT NOCOPY NUMBER,
15 p_msg_data OUT NOCOPY VARCHAR2,
16 --
17 P_ROW_ID IN OUT NOCOPY VARCHAR2,
18 P_DEFAULT_ASSIGNMENT_ID IN NUMBER,
19 P_DEFAULT_RULE_ID in NUMBER,
20 P_ASSIGNMENT_TYPE IN VARCHAR2,
21 P_ATTRIBUTE_ID IN NUMBER,
22 P_ATTRIBUTE_VALUE_ID IN NUMBER,
23 P_ATTRIBUTE_VALUE IN VARCHAR2,
24 P_PAY_ELEMENT_ID IN NUMBER,
25 P_PAY_ELEMENT_OPTION_ID IN NUMBER,
26 P_PAY_BASIS IN VARCHAR2,
27 P_ELEMENT_VALUE_TYPE IN VARCHAR2,
28 P_ELEMENT_VALUE IN NUMBER,
29 P_CURRENCY_CODE IN VARCHAR2,
30 P_LAST_UPDATE_DATE in DATE,
31 P_LAST_UPDATED_BY in NUMBER,
32 P_LAST_UPDATE_LOGIN in NUMBER,
33 P_CREATED_BY in NUMBER,
34 P_CREATION_DATE in DATE
35 ) IS
36
37 l_api_name CONSTANT VARCHAR2(30) := 'INSERT_ROW';
38 l_api_version CONSTANT NUMBER := 1.0;
39 l_row_id varchar2(40);
40 --
41 cursor c1 is
42 select ROWID from psb_default_assignments
43 where default_rule_id = p_default_rule_id
44 and default_assignment_id = p_default_assignment_id;
45
46 BEGIN
47
48 -- Standard Start of API savepoint
49
50 SAVEPOINT INSERT_ROW_PVT;
51
52 -- Standard call to check for call compatibility.
53
54 if not FND_API.Compatible_API_Call (l_api_version,
55 p_api_version,
56 l_api_name,
57 G_PKG_NAME)
58 then
59 raise FND_API.G_EXC_UNEXPECTED_ERROR;
60 end if;
61
62 -- Initialize message list if p_init_msg_list is set to TRUE.
63
64 if FND_API.to_Boolean (p_init_msg_list) then
65 FND_MSG_PUB.initialize;
66 end if;
67
68 -- Initialize API return status to success
69
70 p_return_status := FND_API.G_RET_STS_SUCCESS;
71
72
73 -- API body
74 INSERT INTO psb_default_assignments
75 (
76 DEFAULT_ASSIGNMENT_ID ,
77 DEFAULT_RULE_ID ,
78 ASSIGNMENT_TYPE ,
79 ATTRIBUTE_ID ,
80 ATTRIBUTE_VALUE_ID ,
81 ATTRIBUTE_VALUE ,
82 PAY_ELEMENT_ID ,
83 PAY_ELEMENT_OPTION_ID ,
84 PAY_BASIS ,
85 ELEMENT_VALUE_TYPE ,
86 ELEMENT_VALUE ,
87 CURRENCY_CODE ,
88 LAST_UPDATE_DATE ,
89 LAST_UPDATED_BY ,
90 LAST_UPDATE_LOGIN ,
91 CREATED_BY ,
92 CREATION_DATE
93 )
94 VALUES
95 (
96 P_DEFAULT_ASSIGNMENT_ID ,
97 P_DEFAULT_RULE_ID ,
98 P_ASSIGNMENT_TYPE ,
99 P_ATTRIBUTE_ID ,
100 P_ATTRIBUTE_VALUE_ID ,
101 P_ATTRIBUTE_VALUE ,
102 P_PAY_ELEMENT_ID ,
103 P_PAY_ELEMENT_OPTION_ID ,
104 P_PAY_BASIS ,
105 P_ELEMENT_VALUE_TYPE ,
106 P_ELEMENT_VALUE ,
107 P_CURRENCY_CODE ,
108 P_LAST_UPDATE_DATE ,
109 P_LAST_UPDATED_BY ,
110 P_LAST_UPDATE_LOGIN ,
111 P_CREATED_BY ,
112 P_CREATION_DATE
113 );
114
115 open c1;
116 fetch c1 into P_ROW_ID;
117 if (c1%notfound) then
118 close c1;
119 raise no_data_found;
120 end if;
121 -- End of API body.
122
123 -- Standard check of p_commit.
124
125 if FND_API.to_Boolean (p_commit) then
126 commit work;
127 end if;
128
129 -- Standard call to get message count and if count is 1, get message info.
130
131 FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
132 p_data => p_msg_data);
133
134 EXCEPTION
135
136 when FND_API.G_EXC_ERROR then
137
138 rollback to INSERT_ROW_PVT;
139
140 p_return_status := FND_API.G_RET_STS_ERROR;
141
142 FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
143 p_data => p_msg_data);
144
145
146 when FND_API.G_EXC_UNEXPECTED_ERROR then
147
148 rollback to INSERT_ROW_PVT;
149
150 p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
151
152 FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
153 p_data => p_msg_data);
154
155
156 when OTHERS then
157
158 rollback to INSERT_ROW_PVT;
159
160 p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
161
162 if FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) then
163
164 FND_MSG_PUB.Add_Exc_Msg (G_PKG_NAME,
165 l_api_name);
166 end if;
167
168 FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
169 p_data => p_msg_data);
170
171 END INSERT_ROW;
172
173 PROCEDURE UPDATE_ROW
174 ( p_api_version IN NUMBER,
175 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
176 p_commit IN VARCHAR2 := FND_API.G_FALSE,
177 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
178 p_return_status OUT NOCOPY VARCHAR2,
179 p_msg_count OUT NOCOPY NUMBER,
180 p_msg_data OUT NOCOPY VARCHAR2,
181 --
182 P_ROW_ID IN VARCHAR2,
183 P_DEFAULT_ASSIGNMENT_ID IN NUMBER,
184 P_DEFAULT_RULE_ID in NUMBER,
185 P_ASSIGNMENT_TYPE IN VARCHAR2,
186 P_ATTRIBUTE_ID IN NUMBER,
187 P_ATTRIBUTE_VALUE_ID IN NUMBER,
188 P_ATTRIBUTE_VALUE IN VARCHAR2,
189 P_PAY_ELEMENT_ID IN NUMBER,
190 P_PAY_ELEMENT_OPTION_ID IN NUMBER,
191 P_PAY_BASIS IN VARCHAR2,
192 P_ELEMENT_VALUE_TYPE IN VARCHAR2,
193 P_ELEMENT_VALUE IN NUMBER,
194 P_CURRENCY_CODE IN VARCHAR2,
195 P_LAST_UPDATE_DATE in DATE,
196 P_LAST_UPDATED_BY in NUMBER,
197 P_LAST_UPDATE_LOGIN in NUMBER
198 ) IS
199
200 l_api_name CONSTANT VARCHAR2(30) := 'UPDATE_ROW';
201 l_api_version CONSTANT NUMBER := 1.0;
202
203 BEGIN
204
205 -- Standard Start of API savepoint
206
207 SAVEPOINT UPDATE_ROW_PVT;
208
209 -- Standard call to check for call compatibility.
210
211 if not FND_API.Compatible_API_Call (l_api_version,
212 p_api_version,
213 l_api_name,
214 G_PKG_NAME)
215 then
216 raise FND_API.G_EXC_UNEXPECTED_ERROR;
217 end if;
218
219 -- Initialize message list if p_init_msg_list is set to TRUE.
220
221 if FND_API.to_Boolean (p_init_msg_list) then
222 FND_MSG_PUB.initialize;
223 end if;
224
225 -- Initialize API return status to success
226
227 p_return_status := FND_API.G_RET_STS_SUCCESS;
228
229 -- API body
230 UPDATE psb_default_assignments SET
231 DEFAULT_ASSIGNMENT_ID = P_DEFAULT_ASSIGNMENT_ID,
232 DEFAULT_RULE_ID = P_DEFAULT_RULE_ID,
233 ASSIGNMENT_TYPE = P_ASSIGNMENT_TYPE,
234 ATTRIBUTE_ID = P_ATTRIBUTE_ID,
235 ATTRIBUTE_VALUE_ID = P_ATTRIBUTE_VALUE_ID,
236 ATTRIBUTE_VALUE = P_ATTRIBUTE_VALUE,
237 PAY_ELEMENT_ID = P_PAY_ELEMENT_ID,
238 PAY_ELEMENT_OPTION_ID = P_PAY_ELEMENT_OPTION_ID,
239 PAY_BASIS = P_PAY_BASIS,
240 ELEMENT_VALUE_TYPE = P_ELEMENT_VALUE_TYPE,
241 ELEMENT_VALUE = P_ELEMENT_VALUE,
242 CURRENCY_CODE = P_CURRENCY_CODE,
243 LAST_UPDATE_DATE = P_LAST_UPDATE_DATE,
244 LAST_UPDATED_BY = P_LAST_UPDATED_BY,
245 LAST_UPDATE_LOGIN = P_LAST_UPDATE_LOGIN
246 where ROWID = P_ROW_ID;
247
248 if (SQL%NOTFOUND) then
249 RAISE NO_DATA_FOUND;
250 end if;
251
252 -- End of API body.
253
254 -- Standard check of p_commit.
255
256 if FND_API.to_Boolean (p_commit) then
257 commit work;
258 end if;
259
260 -- Standard call to get message count and if count is 1, get message info.
261
262 FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
263 p_data => p_msg_data);
264
265 EXCEPTION
266
267 when FND_API.G_EXC_ERROR then
268
269 rollback to UPDATE_ROW_PVT;
270
271 p_return_status := FND_API.G_RET_STS_ERROR;
272
273 FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
274 p_data => p_msg_data);
275
276
277 when FND_API.G_EXC_UNEXPECTED_ERROR then
278
279 rollback to UPDATE_ROW_PVT;
280
281 p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
282
283 FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
284 p_data => p_msg_data);
285
286
287 when OTHERS then
288
289 rollback to UPDATE_ROW_PVT;
290
291 p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
292
293 if FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) then
294
295 FND_MSG_PUB.Add_Exc_Msg (G_PKG_NAME,
296 l_api_name);
297 end if;
298
299 FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
300 p_data => p_msg_data);
301
302 END UPDATE_ROW;
303
304
305 PROCEDURE DELETE_ROW
306 ( p_api_version IN NUMBER,
307 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
308 p_commit IN VARCHAR2 := FND_API.G_FALSE,
309 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
310 p_return_status OUT NOCOPY VARCHAR2,
311 p_msg_count OUT NOCOPY NUMBER,
312 p_msg_data OUT NOCOPY VARCHAR2,
313 --
314 P_ROW_ID IN VARCHAR2
315 ) IS
316
317 l_api_name CONSTANT VARCHAR2(30) := 'DELETE_ROW';
318 l_api_version CONSTANT NUMBER := 1.0;
319
320 BEGIN
321
322 -- Standard Start of API savepoint
323
324 SAVEPOINT DELETE_ROW_PVT;
325
326 -- Standard call to check for call compatibility.
327
328 if not FND_API.Compatible_API_Call (l_api_version,
329 p_api_version,
330 l_api_name,
331 G_PKG_NAME)
332 then
333 raise FND_API.G_EXC_UNEXPECTED_ERROR;
334 end if;
335
336 -- Initialize message list if p_init_msg_list is set to TRUE.
337
338 if FND_API.to_Boolean (p_init_msg_list) then
339 FND_MSG_PUB.initialize;
340 end if;
341
342
343 --Delete the record in the table
344 DELETE FROM psb_default_assignments
345 where rowid = p_row_id;
346
347
348 if (SQL%NOTFOUND) then
349 RAISE NO_DATA_FOUND;
350 end if;
351
352 -- Standard call to get message count and if count is 1, get message info.
353
354 FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
355 p_data => p_msg_data);
356
357 -- Standard check of p_commit.
358
359 if FND_API.to_Boolean (p_commit) then
360 commit work;
361 end if;
362
363
364 EXCEPTION
365
366 when FND_API.G_EXC_ERROR then
367
368 rollback to DELETE_ROW_PVT;
369
370 p_return_status := FND_API.G_RET_STS_ERROR;
371
372 FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
373 p_data => p_msg_data);
374
375
376 when FND_API.G_EXC_UNEXPECTED_ERROR then
377
378 rollback to DELETE_ROW_PVT;
379
380 p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
381
382 FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
383 p_data => p_msg_data);
384
385
386 when OTHERS then
387
388 rollback to DELETE_ROW_PVT;
389
390 p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
391
392 if FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) then
393
394 FND_MSG_PUB.Add_Exc_Msg (G_PKG_NAME,
395 l_api_name);
396 end if;
397
398 FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
399 p_data => p_msg_data);
400 END DELETE_ROW;
401
402 PROCEDURE LOCK_ROW(
403 p_api_version IN NUMBER,
404 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
405 p_commit IN VARCHAR2 := FND_API.G_FALSE,
406 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
407 p_return_status OUT NOCOPY VARCHAR2,
408 p_msg_count OUT NOCOPY NUMBER,
409 p_msg_data OUT NOCOPY VARCHAR2,
410 --
411 p_row_locked OUT NOCOPY VARCHAR2,
412 --
413 P_ROW_ID IN VARCHAR2,
414 P_DEFAULT_ASSIGNMENT_ID IN NUMBER,
415 P_DEFAULT_RULE_ID in NUMBER,
416 P_ASSIGNMENT_TYPE IN VARCHAR2,
417 P_ATTRIBUTE_ID IN NUMBER,
418 P_ATTRIBUTE_VALUE_ID IN NUMBER,
419 P_ATTRIBUTE_VALUE IN VARCHAR2,
420 P_PAY_ELEMENT_ID IN NUMBER,
421 P_PAY_ELEMENT_OPTION_ID IN NUMBER,
422 P_PAY_BASIS IN VARCHAR2,
423 P_ELEMENT_VALUE_TYPE IN VARCHAR2,
424 P_ELEMENT_VALUE IN NUMBER,
425 P_CURRENCY_CODE IN VARCHAR2
426 ) IS
427
428 l_api_name CONSTANT VARCHAR2(30) := 'LOCK_ROW';
429 l_api_version CONSTANT NUMBER := 1.0;
430 --
431 counter number;
432
433 CURSOR C IS SELECT * FROM psb_default_assignments
434 WHERE rowid = p_row_id
435 FOR UPDATE of default_assignment_id NOWAIT;
436 Recinfo C%ROWTYPE;
437
438 BEGIN
439 --
440 SAVEPOINT Lock_Row_Pvt ;
441 --
442 IF NOT FND_API.Compatible_API_Call ( l_api_version,
443 p_api_version,
444 l_api_name,
445 G_PKG_NAME )
446 THEN
447 RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
448 END IF;
449 --
450
454 --
451 IF FND_API.to_Boolean ( p_init_msg_list ) THEN
452 FND_MSG_PUB.initialize ;
453 END IF;
455 p_return_status := FND_API.G_RET_STS_SUCCESS ;
456 p_row_locked := FND_API.G_TRUE ;
457 --
458 OPEN C;
459 --
460 FETCH C INTO Recinfo;
461 IF (C%NOTFOUND) then
462 CLOSE C;
463 FND_MESSAGE.Set_Name('FND', 'FORM_RECORD_DELETED');
464 FND_MSG_PUB.Add;
465 RAISE FND_API.G_EXC_ERROR ;
466 END IF;
467
468 IF
469 (
470 (Recinfo.default_assignment_id = p_default_assignment_id)
471 AND (Recinfo.default_rule_id = p_default_rule_id)
472 AND (Recinfo.assignment_type = p_assignment_type)
473
474 AND ((Recinfo.attribute_id = p_attribute_id)
475 OR((Recinfo.attribute_id IS NULL)
476 AND(p_attribute_id IS NULL)))
477 AND ((Recinfo.attribute_value_id = p_attribute_value_id)
478 OR((Recinfo.attribute_value_id IS NULL)
479 AND(p_attribute_value_id IS NULL)))
480 AND ((Recinfo.attribute_value = p_attribute_value)
481 OR((Recinfo.attribute_value IS NULL)
482 AND(p_attribute_value IS NULL)))
483 AND ((Recinfo.pay_element_id = p_pay_element_id)
484 OR((Recinfo.pay_element_id IS NULL)
485 AND(p_pay_element_id IS NULL)))
486 AND ((Recinfo.pay_element_option_id = p_pay_element_option_id)
487 OR((Recinfo.pay_element_option_id IS NULL)
488 AND(p_pay_element_option_id IS NULL)))
489 AND ((Recinfo.pay_basis = p_pay_basis)
490 OR((Recinfo.pay_basis IS NULL)
491 AND(p_pay_basis IS NULL)))
492 AND ((Recinfo.element_value_type = p_element_value_type)
493 OR((Recinfo.element_value_type IS NULL)
494 AND(p_element_value_type IS NULL)))
495 AND ((Recinfo.element_value = p_element_value)
496 OR((Recinfo.element_value IS NULL)
497 AND(p_element_value IS NULL)))
498 AND ((Recinfo.currency_code = p_currency_code)
499 OR((Recinfo.currency_code IS NULL)
500 AND(p_currency_code IS NULL)))
501
502 )
503
504 THEN
505 Null;
506 ELSE
507 FND_MESSAGE.Set_Name('FND', 'FORM_RECORD_CHANGED');
508 FND_MSG_PUB.Add;
509 RAISE FND_API.G_EXC_ERROR ;
510 END IF;
511
512 --
513 IF FND_API.To_Boolean ( p_commit ) THEN
514 COMMIT WORK;
515 END iF;
516 --
517 FND_MSG_PUB.Count_And_Get ( p_count => p_msg_count,
518 p_data => p_msg_data );
519 --
520 EXCEPTION
521 --
522 WHEN APP_EXCEPTION.RECORD_LOCK_EXCEPTION THEN
523 --
524 ROLLBACK TO Lock_Row_Pvt ;
525 p_row_locked := FND_API.G_FALSE;
526 p_return_status := FND_API.G_RET_STS_ERROR;
527 FND_MSG_PUB.Count_And_Get ( p_count => p_msg_count,
528 p_data => p_msg_data );
529 --
530 WHEN FND_API.G_EXC_ERROR THEN
531 --
532 ROLLBACK TO Lock_Row_Pvt ;
533 p_return_status := FND_API.G_RET_STS_ERROR;
534 FND_MSG_PUB.Count_And_Get ( p_count => p_msg_count,
535 p_data => p_msg_data );
536 --
537 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
538 --
539 ROLLBACK TO Lock_Row_Pvt ;
540 p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
541 FND_MSG_PUB.Count_And_Get ( p_count => p_msg_count,
542 p_data => p_msg_data );
543 --
544 WHEN OTHERS THEN
545 --
546 ROLLBACK TO Lock_Row_Pvt ;
547 p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
548 --
549 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
550 FND_MSG_PUB.Add_Exc_Msg ( G_PKG_NAME,
551 l_api_name);
552 END if;
553 --
554 FND_MSG_PUB.Count_And_Get ( p_count => p_msg_count,
555 p_data => p_msg_data );
556 END LOCK_ROW;
557
558 PROCEDURE Check_Unique
559 (
560 p_api_version IN NUMBER,
561 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
562 p_commit IN VARCHAR2 := FND_API.G_FALSE,
563 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
564 p_return_status OUT NOCOPY VARCHAR2,
565 p_msg_count OUT NOCOPY NUMBER,
566 p_msg_data OUT NOCOPY VARCHAR2,
567 --
568 p_Return_Value IN OUT NOCOPY VARCHAR2,
569 --
570 P_DEFAULT_RULE_ID IN NUMBER,
571 P_DEFAULT_ASSIGNMENT_ID IN NUMBER,
572 P_ATTRIBUTE_ID IN NUMBER,
573 P_PAY_ELEMENT_ID IN NUMBER,
574 P_PAY_ELEMENT_OPTION_ID IN NUMBER
575
576 )
577 IS
578 --
579 l_api_name CONSTANT VARCHAR2(30) := 'Check_Unique';
580 l_api_version CONSTANT NUMBER := 1.0;
581 --
582 l_tmp VARCHAR2(1);
583
584 CURSOR c IS
585 SELECT '1'
586 FROM psb_default_assignments
587 WHERE ( attribute_id = p_attribute_id
588 OR pay_element_id = p_pay_element_id
589 OR (pay_element_option_id = p_pay_element_option_id
590 and pay_element_id = p_pay_element_id )
591 )
592 AND (default_rule_id = p_default_rule_id )
593 AND (default_assignment_id <> p_default_assignment_id);
594
595 BEGIN
596 --
597 SAVEPOINT Check_Unique_Pvt ;
598 --
599 IF NOT FND_API.Compatible_API_Call ( l_api_version,
600 p_api_version,
601 l_api_name,
602 G_PKG_NAME )
603 THEN
604 RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
605 END IF;
606 --
607
608 IF FND_API.to_Boolean ( p_init_msg_list ) THEN
609 FND_MSG_PUB.initialize ;
610 END IF;
611 --
612 p_return_status := FND_API.G_RET_STS_SUCCESS ;
613 --
614
615 -- Checking the Psb_set_relations table for references.
616 OPEN c;
617 FETCH c INTO l_tmp;
618 --
619 -- p_Return_Value tells whether references exist or not.
620 IF l_tmp IS NULL THEN
621 p_Return_Value := 'FALSE';
622 ELSE
623 p_Return_Value := 'TRUE';
624 END IF;
625
626 CLOSE c;
627 --
628 IF FND_API.To_Boolean ( p_commit ) THEN
629 COMMIT WORK;
630 END iF;
631 --
632 FND_MSG_PUB.Count_And_Get ( p_count => p_msg_count,
633 p_data => p_msg_data );
634 --
635 EXCEPTION
636 --
637 WHEN FND_API.G_EXC_ERROR THEN
638 --
639 ROLLBACK TO Check_Unique_Pvt ;
640 p_return_status := FND_API.G_RET_STS_ERROR;
641 FND_MSG_PUB.Count_And_Get ( p_count => p_msg_count,
642 p_data => p_msg_data );
643 --
644 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
645 --
646 ROLLBACK TO Check_Unique_Pvt ;
647 p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
648 FND_MSG_PUB.Count_And_Get ( p_count => p_msg_count,
649 p_data => p_msg_data );
650 --
651 WHEN OTHERS THEN
652 --
653 ROLLBACK TO Check_Unique_Pvt ;
654 p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
655 --
656 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
657 FND_MSG_PUB.Add_Exc_Msg ( G_PKG_NAME,
658 l_api_name);
659 END if;
660 --
661 FND_MSG_PUB.Count_And_Get ( p_count => p_msg_count,
662 p_data => p_msg_data );
663 --
664 END Check_Unique;
665
666 END PSB_DEFAULT_ASSIGNMENTS_PVT;