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