DBA Data[Home] [Help]

PACKAGE BODY: APPS.GR_PHRASE_GROUP_CODES_PKG

Source


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