[Home] [Help]
PACKAGE BODY: APPS.GR_TOXIC_EFFECT_B_PKG
Source
1 PACKAGE BODY GR_TOXIC_EFFECT_B_PKG AS
2 /*$Header: GRHITEB.pls 115.7 2002/10/28 21:17:58 gkelly ship $*/
3 PROCEDURE Insert_Row
4 (p_commit IN VARCHAR2,
5 p_called_by_form IN VARCHAR2,
6 p_toxic_effect_code IN VARCHAR2,
7 p_created_by IN NUMBER,
8 p_creation_date IN DATE,
9 p_last_updated_by IN NUMBER,
10 p_last_update_date IN DATE,
11 p_last_update_login IN NUMBER,
12 x_rowid OUT NOCOPY VARCHAR2,
13 x_return_status OUT NOCOPY VARCHAR2,
14 x_oracle_error OUT NOCOPY NUMBER,
15 x_msg_data OUT NOCOPY VARCHAR2)
16 IS
17
18 /* Alpha Variables */
19
20 L_RETURN_STATUS VARCHAR2(1) := 'S';
21 L_KEY_EXISTS VARCHAR2(1);
22 L_MSG_DATA VARCHAR2(2000);
23 L_ROWID VARCHAR2(18);
24
25 /* Number Variables */
26
27 L_ORACLE_ERROR NUMBER;
28
29 /* Exceptions */
30
31 FOREIGN_KEY_ERROR EXCEPTION;
32 ITEM_EXISTS_ERROR EXCEPTION;
33 ROW_MISSING_ERROR EXCEPTION;
34
35 /* Declare cursors */
36
37
38 BEGIN
39 /* Initialization Routine */
40
41 SAVEPOINT Insert_Row;
42 x_return_status := 'S';
43 x_oracle_error := 0;
44 x_msg_data := NULL;
45
46 /* Now call the check foreign key procedure */
47
48 Check_Foreign_Keys
49 (p_toxic_effect_code,
50 l_return_status,
51 l_oracle_error,
52 l_msg_data);
53
54 IF l_return_status <> 'S' THEN
55 RAISE Foreign_Key_Error;
56 END IF;
57
58 /* Now check the primary key doesn't already exist */
59
60 Check_Primary_Key
61 (p_toxic_effect_code,
62 'F',
63 l_rowid,
64 l_key_exists);
65
66 IF FND_API.To_Boolean(l_key_exists) THEN
67 RAISE Item_Exists_Error;
68 END IF;
69
70 INSERT INTO gr_toxic_effects_b
71 (toxic_effect_code,
72 created_by,
73 creation_date,
74 last_updated_by,
75 last_update_date,
76 last_update_login)
77 VALUES
78 (p_toxic_effect_code,
79 p_created_by,
80 p_creation_date,
81 p_last_updated_by,
82 p_last_update_date,
83 p_last_update_login);
84
85 /* Now get the row id of the inserted record */
86
87 Check_Primary_Key
88 (p_toxic_effect_code,
89 'F',
90 l_rowid,
91 l_key_exists);
92
93 IF FND_API.To_Boolean(l_key_exists) THEN
94 x_rowid := l_rowid;
95 ELSE
96 RAISE Row_Missing_Error;
97 END IF;
98
99 /* Check the commit flag and if set, then commit the work. */
100
101 IF FND_API.To_Boolean(p_commit) THEN
102 COMMIT WORK;
103 END IF;
104
105 EXCEPTION
106
107 WHEN Foreign_Key_Error THEN
108 ROLLBACK TO SAVEPOINT Insert_Row;
109 x_return_status := l_return_status;
110 x_oracle_error := l_oracle_error;
111 FND_MESSAGE.SET_NAME('GR',
112 'GR_FOREIGN_KEY_ERROR');
113 FND_MESSAGE.SET_TOKEN('TEXT',
114 l_msg_data,
115 FALSE);
116 IF FND_API.To_Boolean(p_called_by_form) THEN
117 APP_EXCEPTION.Raise_Exception;
118 ELSE
119 x_msg_data := FND_MESSAGE.Get;
120 END IF;
121
122 WHEN Item_Exists_Error THEN
123 ROLLBACK TO SAVEPOINT Insert_Row;
124 x_return_status := 'E';
125 x_oracle_error := APP_EXCEPTION.Get_Code;
126 FND_MESSAGE.SET_NAME('GR',
127 'GR_RECORD_EXISTS');
128 FND_MESSAGE.SET_TOKEN('CODE',
129 p_toxic_effect_code,
130 FALSE);
131 IF FND_API.To_Boolean(p_called_by_form) THEN
132 APP_EXCEPTION.Raise_Exception;
133 ELSE
134 x_msg_data := FND_MESSAGE.Get;
135 END IF;
136
137 WHEN Row_Missing_Error THEN
138 ROLLBACK TO SAVEPOINT Insert_Row;
139 x_return_status := 'E';
140 x_oracle_error := APP_EXCEPTION.Get_Code;
141 FND_MESSAGE.SET_NAME('GR',
142 'GR_NO_RECORD_INSERTED');
143 FND_MESSAGE.SET_TOKEN('CODE',
144 p_toxic_effect_code,
145 FALSE);
146 IF FND_API.To_Boolean(p_called_by_form) THEN
147 APP_EXCEPTION.Raise_Exception;
148 ELSE
149 x_msg_data := FND_MESSAGE.Get;
150 END IF;
151
152 WHEN OTHERS THEN
153 ROLLBACK TO SAVEPOINT Insert_Row;
154 x_return_status := 'U';
155 x_oracle_error := APP_EXCEPTION.Get_Code;
156 l_msg_data := APP_EXCEPTION.Get_Text;
157 FND_MESSAGE.SET_NAME('GR',
158 'GR_UNEXPECTED_ERROR');
159 FND_MESSAGE.SET_TOKEN('TEXT',
160 l_msg_data,
161 FALSE);
162 IF FND_API.To_Boolean(p_called_by_form) THEN
163 APP_EXCEPTION.Raise_Exception;
164 ELSE
165 x_msg_data := FND_MESSAGE.Get;
166 END IF;
167
168 END Insert_Row;
169
170 PROCEDURE Update_Row
171 (p_commit IN VARCHAR2,
172 p_called_by_form IN VARCHAR2,
173 p_rowid IN VARCHAR2,
174 p_toxic_effect_code IN VARCHAR2,
175 p_created_by IN NUMBER,
176 p_creation_date IN DATE,
177 p_last_updated_by IN NUMBER,
178 p_last_update_date IN DATE,
179 p_last_update_login IN NUMBER,
180 x_return_status OUT NOCOPY VARCHAR2,
181 x_oracle_error OUT NOCOPY NUMBER,
182 x_msg_data OUT NOCOPY VARCHAR2)
183 IS
184
185 /* Alpha Variables */
186
187 L_RETURN_STATUS VARCHAR2(1) := 'S';
188 L_MSG_DATA VARCHAR2(2000);
189
190 /* Number Variables */
191
192 L_ORACLE_ERROR NUMBER;
193
194 /* Exceptions */
195
196 FOREIGN_KEY_ERROR EXCEPTION;
197 ROW_MISSING_ERROR EXCEPTION;
198 BEGIN
199
200 /* Initialization Routine */
201
202 SAVEPOINT Update_Row;
203 x_return_status := 'S';
204 x_oracle_error := 0;
205 x_msg_data := NULL;
206
207 /* Now call the check foreign key procedure */
208
209 Check_Foreign_Keys
210 (p_toxic_effect_code,
211 l_return_status,
212 l_oracle_error,
213 l_msg_data);
214
215 IF l_return_status <> 'S' THEN
216 RAISE Foreign_Key_Error;
217 ELSE
218 UPDATE gr_toxic_effects_b
219 SET toxic_effect_code = p_toxic_effect_code,
220 created_by = p_created_by,
221 creation_date = p_creation_date,
222 last_updated_by = p_last_updated_by,
223 last_update_date = p_last_update_date,
224 last_update_login = p_last_update_login
225 WHERE rowid = p_rowid;
226
227 IF SQL%NOTFOUND THEN
228 RAISE Row_Missing_Error;
229 END IF;
230 END IF;
231
232 /* Check if do the commit */
233
234 IF FND_API.To_Boolean(p_commit) THEN
235 COMMIT WORK;
236 END IF;
237
238 EXCEPTION
239
240 WHEN Foreign_Key_Error THEN
241 ROLLBACK TO SAVEPOINT Update_Row;
242 x_return_status := l_return_status;
243 x_oracle_error := l_oracle_error;
244 FND_MESSAGE.SET_NAME('GR',
245 'GR_FOREIGN_KEY_ERROR');
246 FND_MESSAGE.SET_TOKEN('TEXT',
247 l_msg_data,
248 FALSE);
249 IF FND_API.To_Boolean(p_called_by_form) THEN
250 APP_EXCEPTION.Raise_Exception;
251 ELSE
252 x_msg_data := FND_MESSAGE.Get;
253 END IF;
254
255 WHEN Row_Missing_Error THEN
256 ROLLBACK TO SAVEPOINT Update_Row;
257 x_return_status := 'E';
258 x_oracle_error := APP_EXCEPTION.Get_Code;
259 FND_MESSAGE.SET_NAME('GR',
260 'GR_NO_RECORD_INSERTED');
261 FND_MESSAGE.SET_TOKEN('CODE',
262 p_toxic_effect_code,
263 FALSE);
264 IF FND_API.To_Boolean(p_called_by_form) THEN
265 APP_EXCEPTION.Raise_Exception;
266 ELSE
267 x_msg_data := FND_MESSAGE.Get;
268 END IF;
269
270 WHEN OTHERS THEN
271 ROLLBACK TO SAVEPOINT Update_Row;
272 x_return_status := 'U';
273 x_oracle_error := APP_EXCEPTION.Get_Code;
274 l_msg_data := APP_EXCEPTION.Get_Text;
275 FND_MESSAGE.SET_NAME('GR',
276 'GR_UNEXPECTED_ERROR');
277 FND_MESSAGE.SET_TOKEN('TEXT',
278 l_msg_data,
279 FALSE);
280 IF FND_API.To_Boolean(p_called_by_form) THEN
281 APP_EXCEPTION.Raise_Exception;
282 ELSE
283 x_msg_data := FND_MESSAGE.Get;
284 END IF;
285
286 END Update_Row;
287
288 PROCEDURE Lock_Row
289 (p_commit IN VARCHAR2,
290 p_called_by_form IN VARCHAR2,
291 p_rowid IN VARCHAR2,
292 p_toxic_effect_code IN VARCHAR2,
293 p_created_by IN NUMBER,
294 p_creation_date IN DATE,
295 p_last_updated_by IN NUMBER,
296 p_last_update_date IN DATE,
297 p_last_update_login IN NUMBER,
298 x_return_status OUT NOCOPY VARCHAR2,
299 x_oracle_error OUT NOCOPY NUMBER,
300 x_msg_data OUT NOCOPY VARCHAR2)
301 IS
302
303 /* Alpha Variables */
304
305 L_RETURN_STATUS VARCHAR2(1) := 'S';
306 L_MSG_DATA VARCHAR2(2000);
307
308 /* Number Variables */
309
310 L_ORACLE_ERROR NUMBER;
311
312 /* Exceptions */
313
314 NO_DATA_FOUND_ERROR EXCEPTION;
315 RECORD_CHANGED_ERROR EXCEPTION;
316
317 /* Define the cursors */
318
319 CURSOR c_lock_toxic_effect
320 IS
321 SELECT last_update_date
322 FROM gr_toxic_effects_b
323 WHERE rowid = p_rowid
324 FOR UPDATE NOWAIT;
325 LockEffectRcd c_lock_toxic_effect%ROWTYPE;
326 BEGIN
327
328 /* Initialization Routine */
329
330 SAVEPOINT Lock_Row;
331 x_return_status := 'S';
332 x_oracle_error := 0;
333 x_msg_data := NULL;
334
335 /* Now lock the record */
336
337 OPEN c_lock_toxic_effect;
338 FETCH c_lock_toxic_effect INTO LockEffectRcd;
339 IF c_lock_toxic_effect%NOTFOUND THEN
340 CLOSE c_lock_toxic_effect;
341 RAISE No_Data_Found_Error;
342 END IF;
343 CLOSE c_lock_toxic_effect;
344
345 IF LockEffectRcd.last_update_date <> p_last_update_date THEN
346 RAISE RECORD_CHANGED_ERROR;
347 END IF;
348
349 IF FND_API.To_Boolean(p_commit) THEN
350 COMMIT WORK;
351 END IF;
352
353 EXCEPTION
354
355 WHEN No_Data_Found_Error THEN
356 ROLLBACK TO SAVEPOINT Lock_Row;
357 x_return_status := 'E';
358 FND_MESSAGE.SET_NAME('GR',
359 'GR_RECORD_NOT_FOUND');
360 FND_MESSAGE.SET_TOKEN('CODE',
361 p_toxic_effect_code,
362 FALSE);
363 IF FND_API.To_Boolean(p_called_by_form) THEN
364 APP_EXCEPTION.Raise_Exception;
365 ELSE
366 x_msg_data := FND_MESSAGE.Get;
367 END IF;
368
369 WHEN RECORD_CHANGED_ERROR THEN
370 ROLLBACK TO SAVEPOINT Lock_Row;
371 X_return_status := 'E';
372 FND_MESSAGE.SET_NAME('FND',
373 'FORM_RECORD_CHANGED');
374 IF FND_API.To_Boolean(p_called_by_form) THEN
375 APP_EXCEPTION.Raise_Exception;
376 ELSE
377 x_msg_data := FND_MESSAGE.Get;
378 END IF;
379 WHEN APP_EXCEPTION.RECORD_LOCK_EXCEPTION THEN
380 ROLLBACK TO SAVEPOINT Lock_Row;
381 x_return_status := 'L';
382 x_oracle_error := APP_EXCEPTION.Get_Code;
383 IF NOT (FND_API.To_Boolean(p_called_by_form)) THEN
384 FND_MESSAGE.SET_NAME('GR',
385 'GR_ROW_IS_LOCKED');
386 x_msg_data := FND_MESSAGE.Get;
387 END IF;
388
389 WHEN OTHERS THEN
390 ROLLBACK TO SAVEPOINT Lock_Row;
391 x_return_status := 'U';
392 x_oracle_error := APP_EXCEPTION.Get_Code;
393 l_msg_data := APP_EXCEPTION.Get_Text;
394 FND_MESSAGE.SET_NAME('GR',
395 'GR_UNEXPECTED_ERROR');
396 FND_MESSAGE.SET_TOKEN('TEXT',
397 l_msg_data,
398 FALSE);
399 IF FND_API.To_Boolean(p_called_by_form) THEN
400 APP_EXCEPTION.Raise_Exception;
401 ELSE
402 x_msg_data := FND_MESSAGE.Get;
403 END IF;
404
405 END Lock_Row;
406
407 PROCEDURE Delete_Row
408 (p_commit IN VARCHAR2,
409 p_called_by_form IN VARCHAR2,
410 p_rowid IN VARCHAR2,
411 p_toxic_effect_code IN VARCHAR2,
412 p_created_by IN NUMBER,
413 p_creation_date IN DATE,
414 p_last_updated_by IN NUMBER,
415 p_last_update_date IN DATE,
416 p_last_update_login IN NUMBER,
417 x_return_status OUT NOCOPY VARCHAR2,
418 x_oracle_error OUT NOCOPY NUMBER,
419 x_msg_data OUT NOCOPY VARCHAR2)
420 IS
421 /* Alpha Variables */
422
423 L_RETURN_STATUS VARCHAR2(1) := 'S';
424 L_MSG_DATA VARCHAR2(2000);
425
426 /* Number Variables */
427
428 L_ORACLE_ERROR NUMBER;
429
430 /* Exceptions */
431
432 CHECK_INTEGRITY_ERROR EXCEPTION;
433 ROW_MISSING_ERROR EXCEPTION;
434 PRAGMA EXCEPTION_INIT(Row_Missing_Error,100);
435
436 BEGIN
437
438 /* Initialization Routine */
439
440 SAVEPOINT Delete_Row;
441 x_return_status := 'S';
442 x_oracle_error := 0;
443 x_msg_data := NULL;
444
445 /* Now call the check integrity procedure */
446
447 Check_Integrity
448 (p_called_by_form,
449 p_toxic_effect_code,
450 l_return_status,
451 l_oracle_error,
452 l_msg_data);
453
454 IF l_return_status <> 'S' THEN
455 RAISE Check_Integrity_Error;
456 END IF;
457
458 DELETE FROM gr_toxic_effects_b
459 WHERE rowid = p_rowid;
460
461 /* Check the commit flag and if set, then commit the work. */
462
463 IF FND_API.TO_Boolean(p_commit) THEN
464 COMMIT WORK;
465 END IF;
466
467 EXCEPTION
468
469 WHEN Check_Integrity_Error THEN
470 ROLLBACK TO SAVEPOINT Delete_Row;
471 x_return_status := l_return_status;
472 x_oracle_error := l_oracle_error;
473 x_msg_data := l_msg_data;
474 IF FND_API.To_Boolean(p_called_by_form) THEN
475 APP_EXCEPTION.Raise_Exception;
476 ELSE
477 x_msg_data := FND_MESSAGE.Get;
478 END IF;
479
480 WHEN Row_Missing_Error THEN
481 ROLLBACK TO SAVEPOINT Delete_Row;
482 x_return_status := 'E';
483 x_oracle_error := APP_EXCEPTION.Get_Code;
484 FND_MESSAGE.SET_NAME('GR',
485 'GR_RECORD_NOT_FOUND');
486 FND_MESSAGE.SET_TOKEN('CODE',
487 p_toxic_effect_code,
488 FALSE);
489 IF FND_API.To_Boolean(p_called_by_form) THEN
490 APP_EXCEPTION.Raise_Exception;
491 ELSE
492 x_msg_data := FND_MESSAGE.Get;
493 END IF;
494
495 WHEN OTHERS THEN
496 ROLLBACK TO SAVEPOINT Delete_Row;
497 x_return_status := 'U';
498 x_oracle_error := APP_EXCEPTION.Get_Code;
499 l_msg_data := APP_EXCEPTION.Get_Text;
500 l_msg_data := APP_EXCEPTION.Get_Text;
501 FND_MESSAGE.SET_NAME('GR',
502 'GR_UNEXPECTED_ERROR');
503 FND_MESSAGE.SET_TOKEN('TEXT',
504 l_msg_data,
508 ELSE
505 FALSE);
506 IF FND_API.To_Boolean(p_called_by_form) THEN
507 APP_EXCEPTION.Raise_Exception;
509 x_msg_data := FND_MESSAGE.Get;
510 END IF;
511
512 END Delete_Row;
513
514 PROCEDURE Check_Foreign_Keys
515 (p_toxic_effect_code IN VARCHAR2,
516 x_return_status OUT NOCOPY VARCHAR2,
517 x_oracle_error OUT NOCOPY NUMBER,
518 x_msg_data OUT NOCOPY VARCHAR2)
519 IS
520
521 /* Alpha Variables */
522
523 L_RETURN_STATUS VARCHAR2(1) := 'S';
524 L_MSG_DATA VARCHAR2(2000);
525 L_ROWID VARCHAR2(18);
526 L_KEY_EXISTS VARCHAR2(1);
527
528 /* Number Variables */
529
530 L_ORACLE_ERROR NUMBER;
531
532
533 BEGIN
534
535 /* Initialization Routine */
536
537 SAVEPOINT Check_Foreign_Keys;
538 x_return_status := 'S';
539 x_oracle_error := 0;
540 x_msg_data := NULL;
541
542 /* No foreign keys need to be checked */
543
544 EXCEPTION
545
546 WHEN OTHERS THEN
547 ROLLBACK TO SAVEPOINT Check_Foreign_Keys;
548 x_return_status := 'U';
549 x_oracle_error := APP_EXCEPTION.Get_Code;
550 l_msg_data := APP_EXCEPTION.Get_Text;
551 FND_MESSAGE.SET_NAME('GR',
552 'GR_UNEXPECTED_ERROR');
553 FND_MESSAGE.SET_TOKEN('TEXT',
554 l_msg_data,
555 FALSE);
556 x_msg_data := FND_MESSAGE.Get;
557
558 END Check_Foreign_Keys;
559
560 PROCEDURE Check_Integrity
561 (p_called_by_form IN VARCHAR2,
562 p_toxic_effect_code IN VARCHAR2,
563 x_return_status OUT NOCOPY VARCHAR2,
564 x_oracle_error OUT NOCOPY NUMBER,
565 x_msg_data OUT NOCOPY VARCHAR2)
566 IS
567
568 /* Alpha Variables */
569
570 L_RETURN_STATUS VARCHAR2(1) := 'S';
571 L_MSG_DATA VARCHAR2(2000);
572
573 /* Number Variables */
574
575 L_ORACLE_ERROR NUMBER;
576 L_RECORD_COUNT NUMBER;
577
578 /* Exceptions */
579 INTEGRITY_ERROR EXCEPTION;
580 /* Define Cursors */
581
582 CURSOR c_get_item_toxic
583 IS
584 SELECT COUNT(*)
585 FROM gr_item_toxic
586 WHERE toxic_effect_code = p_toxic_effect_code;
587 ToxicRecord c_get_item_toxic%ROWTYPE;
588
589 BEGIN
590
591 /*
592 ** Initialization Routine
593 */
594 SAVEPOINT Check_Integrity;
595 x_return_status := 'S';
596 x_oracle_error := 0;
597 x_msg_data := NULL;
598 l_record_count := 0;
599
600 OPEN c_get_item_toxic;
601 FETCH c_get_item_toxic INTO l_record_count;
602 CLOSE c_get_item_toxic;
603
604 IF l_record_count <> 0 THEN
605 l_return_status := 'E';
606 l_msg_data := l_msg_data || ' gr_item_toxic';
607 END IF;
608 /*
609 ** Now sort out the error messaging
610 */
611 IF l_return_status <> 'S' THEN
612 RAISE INTEGRITY_ERROR;
613 END IF;
614
615 EXCEPTION
616
617 WHEN INTEGRITY_ERROR THEN
618 x_return_status := 'E';
619 FND_MESSAGE.SET_NAME('GR',
620 'GR_INTEGRITY_HEADER');
621 FND_MESSAGE.SET_TOKEN('CODE',
622 p_toxic_effect_code,
623 FALSE);
624 FND_MESSAGE.SET_TOKEN('TABLES',
625 l_msg_data,
626 FALSE);
627 IF FND_API.To_Boolean(p_called_by_form) THEN
628 APP_EXCEPTION.Raise_Exception;
629 ELSE
630 x_msg_data := FND_MESSAGE.Get;
631 END IF;
632 WHEN OTHERS THEN
633 ROLLBACK TO SAVEPOINT Check_Integrity;
634 x_return_status := 'U';
635 x_oracle_error := APP_EXCEPTION.Get_Code;
636 l_msg_data := APP_EXCEPTION.Get_Text;
637 FND_MESSAGE.SET_NAME('GR',
638 'GR_UNEXPECTED_ERROR');
639 FND_MESSAGE.SET_TOKEN('TEXT',
640 l_msg_data,
641 FALSE);
642 IF FND_API.To_Boolean(p_called_by_form) THEN
643 APP_EXCEPTION.Raise_Exception;
644 ELSE
645 x_msg_data := FND_MESSAGE.Get;
646 END IF;
647
648 END Check_Integrity;
649
650 PROCEDURE Check_Primary_Key
651 (p_toxic_effect_code IN VARCHAR2,
652 p_called_by_form IN VARCHAR2,
653 x_rowid OUT NOCOPY VARCHAR2,
654 x_key_exists OUT NOCOPY VARCHAR2)
655 IS
656 /* Declare any variables and the cursor */
657
658 L_MSG_DATA VARCHAR2(2000);
659
660 CURSOR c_get_toxic_effect_rowid
661 IS
662 SELECT te.rowid
663 FROM gr_toxic_effects_b te
664 WHERE te.toxic_effect_code = p_toxic_effect_code;
665 ToxicEffectRecord c_get_toxic_effect_rowid%ROWTYPE;
666
667 BEGIN
668
669 x_key_exists := 'F';
670 OPEN c_get_toxic_effect_rowid;
671 FETCH c_get_toxic_effect_rowid INTO ToxicEffectRecord;
672 IF c_get_toxic_effect_rowid%FOUND THEN
673 x_key_exists := 'T';
674 x_rowid := ToxicEffectRecord.rowid;
675 ELSE
676 x_key_exists := 'F';
677 END IF;
678 CLOSE c_get_toxic_effect_rowid;
679
680 EXCEPTION
681
682 WHEN Others THEN
683 l_msg_data := APP_EXCEPTION.Get_Text;
684 FND_MESSAGE.SET_NAME('GR',
685 'GR_UNEXPECTED_ERROR');
686 FND_MESSAGE.SET_TOKEN('TEXT',
687 l_msg_data,
688 FALSE);
689 IF FND_API.To_Boolean(p_called_by_form) THEN
690 APP_EXCEPTION.Raise_Exception;
691 END IF;
692
693 END Check_Primary_Key;
694
695 END GR_TOXIC_EFFECT_B_PKG;