DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGS_PR_RULE_PKG

Source


1 package body IGS_PR_RULE_PKG AS
2 /* $Header: IGSQI09B.pls 115.10 2003/05/19 06:14:14 ijeddy ship $ */
3 
4   l_rowid VARCHAR2(25);
5   old_references IGS_PR_RULE_ALL%RowType;
6   new_references IGS_PR_RULE_ALL%RowType;
7 
8   PROCEDURE Set_Column_Values (
9     p_action IN VARCHAR2,
10     x_rowid IN VARCHAR2 DEFAULT NULL,
11     x_progression_rule_cat IN VARCHAR2 DEFAULT NULL,
12     x_progression_rule_cd IN VARCHAR2 DEFAULT NULL,
13     x_description IN VARCHAR2 DEFAULT NULL,
14     x_rul_sequence_number IN NUMBER DEFAULT NULL,
15     x_closed_ind IN VARCHAR2 DEFAULT NULL,
16     x_message IN VARCHAR2 DEFAULT NULL,
17     x_creation_date IN DATE DEFAULT NULL,
18     x_created_by IN NUMBER DEFAULT NULL,
19     x_last_update_date IN DATE DEFAULT NULL,
20     x_last_updated_by IN NUMBER DEFAULT NULL,
21     x_last_update_login IN NUMBER DEFAULT NULL,
22     x_org_id IN NUMBER DEFAULT NULL
23   ) AS
24 
25     CURSOR cur_old_ref_values IS
26       SELECT   *
27       FROM     IGS_PR_RULE_ALL
28       WHERE    rowid = x_rowid;
29 
30   BEGIN
31 
32     l_rowid := x_rowid;
33 
34     -- Code for setting the Old and New Reference Values.
35     -- Populate Old Values.
36     Open cur_old_ref_values;
37     Fetch cur_old_ref_values INTO old_references;
38     IF (cur_old_ref_values%NOTFOUND) AND (p_action not in ('INSERT','VALIDATE_INSERT')) THEN
39       Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
40       IGS_GE_MSG_STACK.ADD;
41 	  Close cur_old_ref_values;
42       App_Exception.Raise_Exception;
43       Return;
44     END IF;
45     Close cur_old_ref_values;
46 
47     -- Populate New Values.
48     new_references.progression_rule_cat := x_progression_rule_cat;
49     new_references.progression_rule_cd := x_progression_rule_cd;
50     new_references.description := x_description;
51     new_references.rul_sequence_number := x_rul_sequence_number;
52     new_references.closed_ind := x_closed_ind;
53     new_references.message := x_message;
54     IF (p_action = 'UPDATE') THEN
55       new_references.creation_date := old_references.creation_date;
56       new_references.created_by := old_references.created_by;
57     ELSE
58       new_references.creation_date := x_creation_date;
59       new_references.created_by := x_created_by;
60     END IF;
61     new_references.last_update_date := x_last_update_date;
62     new_references.last_updated_by := x_last_updated_by;
63     new_references.last_update_login := x_last_update_login;
64     new_references.org_id := x_org_id;
65   END Set_Column_Values;
66 
67   -- Trigger description :-
68   -- "OSS_TST".trg_prr_br_iu
69   -- BEFORE INSERT OR UPDATE
70   -- ON IGS_PR_RULE
71   -- FOR EACH ROW
72 
73   PROCEDURE BeforeRowInsertUpdate1(
74     p_inserting IN BOOLEAN DEFAULT FALSE,
75     p_updating IN BOOLEAN DEFAULT FALSE,
76     p_deleting IN BOOLEAN DEFAULT FALSE
77     ) AS
78 	v_message_name varchar2(30);
79   BEGIN
80 	-- Validate the progression IGS_RU_RULE category
81 	IF p_inserting THEN
82 /*
83 ||  Bug ID 1956374 - Removal of Duplicate Program Units from OSS.
84 ||  Changed the reference of "IGS_PR_VAL_PRR.PRGP_VAL_PRGC_CLOSED" to program unit "IGS_PR_VAL_PRA.PRGP_VAL_PRGC_CLOSED". -- kdande
85 */
86 		IF IGS_PR_VAL_PRA.prgp_val_prgc_closed (
87 					new_references.progression_rule_cat,
88 					v_message_name) = FALSE THEN
89 			Fnd_Message.Set_Name('IGS',v_message_name);
90       IGS_GE_MSG_STACK.ADD;
91 			App_Exception.Raise_Exception;
92 		END IF;
93 	END IF;
94 
95 
96   END BeforeRowInsertUpdate1;
97   PROCEDURE Check_Parent_Existance AS
98   BEGIN
99 
100     IF (((old_references.progression_rule_cat = new_references.progression_rule_cat)) OR
101         ((new_references.progression_rule_cat IS NULL))) THEN
102       NULL;
103     ELSE
104       IF NOT IGS_PR_RU_CAT_PKG.Get_PK_For_Validation (
105         new_references.progression_rule_cat
106         ) THEN
107 
108 	Fnd_Message.Set_Name('FND','FORM_RECORD_DELETED');
109       IGS_GE_MSG_STACK.ADD;
110 	App_Exception.Raise_Exception;
111 
112 	END IF;
113     END IF;
114 
115     IF (((old_references.rul_sequence_number = new_references.rul_sequence_number)) OR
116         ((new_references.rul_sequence_number IS NULL))) THEN
117       NULL;
118     ELSE
119       IF NOT IGS_RU_RULE_PKG.Get_PK_For_Validation (
120         new_references.rul_sequence_number
121         ) THEN
122 	Fnd_Message.Set_Name('FND','FORM_RECORD_DELETED');
123       IGS_GE_MSG_STACK.ADD;
124 	App_Exception.Raise_Exception;
125 
126 	END IF;
127     END IF;
128 
129   END Check_Parent_Existance;
130 
131   PROCEDURE Check_Child_Existance AS
132   BEGIN
133 
134     IGS_PR_RU_APPL_PKG.GET_FK_IGS_PR_RULE (
135       old_references.progression_rule_cat,
136       old_references.progression_rule_cd
137       );
138 
139   END Check_Child_Existance;
140 
141   FUNCTION Get_PK_For_Validation (
142     x_progression_rule_cat IN VARCHAR2,
143     x_progression_rule_cd IN VARCHAR2
144     ) RETURN BOOLEAN AS
145 
146     CURSOR cur_rowid IS
147       SELECT   rowid
148       FROM     IGS_PR_RULE_ALL
149       WHERE    progression_rule_cat = x_progression_rule_cat
150       AND      progression_rule_cd = x_progression_rule_cd
151       FOR UPDATE NOWAIT;
152 
153     lv_rowid cur_rowid%RowType;
154 
155   BEGIN
156 
157     Open cur_rowid;
158     Fetch cur_rowid INTO lv_rowid;
159 	IF (cur_rowid%FOUND) THEN
160 		Close cur_rowid;
161 		Return (TRUE);
162 	ELSE
163 		Close cur_rowid;
164 		Return (FALSE);
165 	END IF;
166 
167   END Get_PK_For_Validation;
168 
169   PROCEDURE GET_FK_IGS_PR_RU_CAT (
170     x_progression_rule_cat IN VARCHAR2
171     ) AS
172 
173     CURSOR cur_rowid IS
174       SELECT   rowid
175       FROM     IGS_PR_RULE_ALL
176       WHERE    progression_rule_cat = x_progression_rule_cat ;
177 
178     lv_rowid cur_rowid%RowType;
179 
180   BEGIN
181 
182     Open cur_rowid;
183     Fetch cur_rowid INTO lv_rowid;
184     IF (cur_rowid%FOUND) THEN
185       Fnd_Message.Set_Name ('IGS', 'IGS_PR_PRR_PRGC_FK');
186       IGS_GE_MSG_STACK.ADD;
187 	  Close cur_rowid;
188       App_Exception.Raise_Exception;
189       Return;
190     END IF;
191     Close cur_rowid;
192 
193   END GET_FK_IGS_PR_RU_CAT;
194 
195   PROCEDURE GET_FK_IGS_RU_RULE (
196     x_sequence_number IN NUMBER
197     ) AS
198 
199     CURSOR cur_rowid IS
200       SELECT   rowid
201       FROM     IGS_PR_RULE_ALL
202       WHERE    rul_sequence_number = x_sequence_number ;
203 
204     lv_rowid cur_rowid%RowType;
205 
206   BEGIN
207 
208     Open cur_rowid;
209     Fetch cur_rowid INTO lv_rowid;
210     IF (cur_rowid%FOUND) THEN
211       Fnd_Message.Set_Name ('IGS', 'IGS_PR_PRR_RUL_FK');
212       IGS_GE_MSG_STACK.ADD;
213 	  Close cur_rowid;
214       App_Exception.Raise_Exception;
215       Return;
216     END IF;
217     Close cur_rowid;
218 
219   END GET_FK_IGS_RU_RULE;
220 
221   PROCEDURE Before_DML (
222     p_action IN VARCHAR2,
223     x_rowid IN VARCHAR2 DEFAULT NULL,
224     x_progression_rule_cat IN VARCHAR2 DEFAULT NULL,
225     x_progression_rule_cd IN VARCHAR2 DEFAULT NULL,
226     x_description IN VARCHAR2 DEFAULT NULL,
227     x_rul_sequence_number IN NUMBER DEFAULT NULL,
228     x_closed_ind IN VARCHAR2 DEFAULT NULL,
229     x_message IN VARCHAR2 DEFAULT NULL,
230     x_creation_date IN DATE DEFAULT NULL,
231     x_created_by IN NUMBER DEFAULT NULL,
232     x_last_update_date IN DATE DEFAULT NULL,
233     x_last_updated_by IN NUMBER DEFAULT NULL,
234     x_last_update_login IN NUMBER DEFAULT NULL,
235     x_org_id IN NUMBER DEFAULT NULL
236   ) AS
237   BEGIN
238 
239     Set_Column_Values (
240       p_action,
241       x_rowid,
242       x_progression_rule_cat,
243       x_progression_rule_cd,
244       x_description,
245       x_rul_sequence_number,
246       x_closed_ind,
247       x_message,
248       x_creation_date,
249       x_created_by,
250       x_last_update_date,
251       x_last_updated_by,
252       x_last_update_login,
253       x_org_id
254     );
255 
256     IF (p_action = 'INSERT') THEN
257       -- Call all the procedures related to Before Insert.
258       BeforeRowInsertUpdate1 ( p_inserting => TRUE );
259        Check_Parent_Existance;
260 
261 	IF Get_PK_For_Validation (
262 	    new_references.progression_rule_cat,
263 	    new_references.progression_rule_cd
264 			    ) THEN
265 	Fnd_Message.Set_Name('IGS','IGS_GE_MULTI_ORG_DUP_REC');
266       IGS_GE_MSG_STACK.ADD;
267 	App_Exception.Raise_Exception;
268 
269 	END IF;
270   	CHECK_CONSTRAINTS;
271     ELSIF (p_action = 'UPDATE') THEN
272       -- Call all the procedures related to Before Update.
273       BeforeRowInsertUpdate1 ( p_updating => TRUE );
274        Check_Parent_Existance;
275  	CHECK_CONSTRAINTS;
276     ELSIF (p_action = 'DELETE') THEN
277       -- Call all the procedures related to Before Delete.
278       Check_Child_Existance;
279 	ELSIF (p_action = 'VALIDATE_INSERT') THEN
280 		IF Get_PK_For_Validation (
281 	    new_references.progression_rule_cat,
282 	    new_references.progression_rule_cd
283 			    ) THEN
284 	Fnd_Message.Set_Name('IGS','IGS_GE_MULTI_ORG_DUP_REC');
285       IGS_GE_MSG_STACK.ADD;
286 	App_Exception.Raise_Exception;
287 
288 	END IF;
289 		CHECK_CONSTRAINTS;
290 	ELSIF (p_action = 'VALIDATE_UPDATE') THEN
291 		CHECK_CONSTRAINTS;
292 	ELSIF (p_action = 'VALIDATE_DELETE') THEN
293 		Check_Child_Existance;
294     END IF;
295 /*
296 The (L_ROWID := null) was added by ijeddy on the 19-May-2003 as
297 part of the bug fix for bug no 2868726, (Uniqueness Check at Item Level)
298 */
299 L_ROWID := null;
300   END Before_DML;
301 
302 procedure INSERT_ROW (
303   X_ROWID in out NOCOPY VARCHAR2,
304   X_PROGRESSION_RULE_CAT in VARCHAR2,
305   X_PROGRESSION_RULE_CD in VARCHAR2,
306   X_DESCRIPTION in VARCHAR2,
307   X_RUL_SEQUENCE_NUMBER in NUMBER,
308   X_CLOSED_IND in VARCHAR2,
309   X_MESSAGE in VARCHAR2,
310   X_MODE in VARCHAR2 default 'R',
311   X_ORG_ID in NUMBER
312   ) AS
313     cursor C is select ROWID from IGS_PR_RULE_ALL
314       where PROGRESSION_RULE_CAT = X_PROGRESSION_RULE_CAT
315       and PROGRESSION_RULE_CD = X_PROGRESSION_RULE_CD;
316     X_LAST_UPDATE_DATE DATE;
317     X_LAST_UPDATED_BY NUMBER;
318     X_LAST_UPDATE_LOGIN NUMBER;
319 begin
320   X_LAST_UPDATE_DATE := SYSDATE;
321   if(X_MODE = 'I') then
322     X_LAST_UPDATED_BY := 1;
323     X_LAST_UPDATE_LOGIN := 0;
324   elsif (X_MODE = 'R') then
325     X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
326     if X_LAST_UPDATED_BY is NULL then
327       X_LAST_UPDATED_BY := -1;
328     end if;
329     X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
330     if X_LAST_UPDATE_LOGIN is NULL then
331       X_LAST_UPDATE_LOGIN := -1;
332     end if;
333   else
334     FND_MESSAGE.SET_NAME( 'FND', 'SYSTEM-INVALID ARGS');
335       IGS_GE_MSG_STACK.ADD;
336     app_exception.raise_exception;
337   end if;
338 Before_DML (
339     p_action => 'INSERT',
340     x_rowid => x_rowid,
341     x_progression_rule_cat => x_progression_rule_cat,
342     x_progression_rule_cd => x_progression_rule_cd,
343     x_description => x_description,
344     x_rul_sequence_number => x_rul_sequence_number,
345     x_closed_ind => nvl( x_closed_ind, 'N'),
346     x_message => x_message,
347     x_creation_date => x_last_update_date,
348     x_created_by =>  x_last_updated_by,
349     x_last_update_date => x_last_update_date,
350     x_last_updated_by => x_last_updated_by,
351     x_last_update_login => x_last_update_login,
352     x_org_id=>igs_ge_gen_003.get_org_id
353   ) ;
354   insert into IGS_PR_RULE_ALL (
355     PROGRESSION_RULE_CAT,
356     PROGRESSION_RULE_CD,
357     DESCRIPTION,
358     RUL_SEQUENCE_NUMBER,
359     CLOSED_IND,
360     MESSAGE,
361     CREATION_DATE,
362     CREATED_BY,
363     LAST_UPDATE_DATE,
364     LAST_UPDATED_BY,
365     LAST_UPDATE_LOGIN,
366     ORG_ID
367   ) values (
368     NEW_REFERENCES.PROGRESSION_RULE_CAT,
369     NEW_REFERENCES.PROGRESSION_RULE_CD,
370     NEW_REFERENCES.DESCRIPTION,
371     NEW_REFERENCES.RUL_SEQUENCE_NUMBER,
372     NEW_REFERENCES.CLOSED_IND,
373     NEW_REFERENCES.MESSAGE,
374     X_LAST_UPDATE_DATE,
375     X_LAST_UPDATED_BY,
376     X_LAST_UPDATE_DATE,
377     X_LAST_UPDATED_BY,
378     X_LAST_UPDATE_LOGIN,
379     NEW_REFERENCES.ORG_ID
380   );
381 
382   open c;
383   fetch c into X_ROWID;
384   if (c%notfound) then
385     close c;
386     raise no_data_found;
387   end if;
388   close c;
389 end INSERT_ROW;
390 
391 procedure LOCK_ROW (
392   X_ROWID in VARCHAR2,
393   X_PROGRESSION_RULE_CAT in VARCHAR2,
394   X_PROGRESSION_RULE_CD in VARCHAR2,
395   X_DESCRIPTION in VARCHAR2,
396   X_RUL_SEQUENCE_NUMBER in NUMBER,
397   X_CLOSED_IND in VARCHAR2,
398   X_MESSAGE in VARCHAR2
399 ) AS
400   cursor c1 is select
401       DESCRIPTION,
402       RUL_SEQUENCE_NUMBER,
403       CLOSED_IND,
404       MESSAGE
405     from IGS_PR_RULE_ALL
406     where ROWID = X_ROWID for update nowait;
407   tlinfo c1%rowtype;
408 
409 begin
410   open c1;
411   fetch c1 into tlinfo;
412   if (c1%notfound) then
413     fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
414       IGS_GE_MSG_STACK.ADD;
415 	close c1;
416     app_exception.raise_exception;
417     return;
418   end if;
419   close c1;
420 
421   if ( (tlinfo.DESCRIPTION = X_DESCRIPTION)
422       AND (tlinfo.RUL_SEQUENCE_NUMBER = X_RUL_SEQUENCE_NUMBER)
423       AND (tlinfo.CLOSED_IND = X_CLOSED_IND)
424       AND ((tlinfo.MESSAGE = X_MESSAGE)
425            OR ((tlinfo.MESSAGE is null)
426                AND (X_MESSAGE is null)))
427   ) then
428     null;
429   else
430     fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
431       IGS_GE_MSG_STACK.ADD;
432     app_exception.raise_exception;
433   end if;
434   return;
435 end LOCK_ROW;
436 
437 procedure UPDATE_ROW (
438   X_ROWID in VARCHAR2,
439   X_PROGRESSION_RULE_CAT in VARCHAR2,
440   X_PROGRESSION_RULE_CD in VARCHAR2,
441   X_DESCRIPTION in VARCHAR2,
442   X_RUL_SEQUENCE_NUMBER in NUMBER,
443   X_CLOSED_IND in VARCHAR2,
444   X_MESSAGE in VARCHAR2,
445   X_MODE in VARCHAR2 default 'R'
446   ) AS
447     X_LAST_UPDATE_DATE DATE;
448     X_LAST_UPDATED_BY NUMBER;
449     X_LAST_UPDATE_LOGIN NUMBER;
450 begin
451   X_LAST_UPDATE_DATE := SYSDATE;
452   if(X_MODE = 'I') then
453     X_LAST_UPDATED_BY := 1;
454     X_LAST_UPDATE_LOGIN := 0;
455   elsif (X_MODE = 'R') then
456     X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
457     if X_LAST_UPDATED_BY is NULL then
458       X_LAST_UPDATED_BY := -1;
459     end if;
460     X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
461     if X_LAST_UPDATE_LOGIN is NULL then
462       X_LAST_UPDATE_LOGIN := -1;
463     end if;
464   else
465     FND_MESSAGE.SET_NAME('FND', 'SYSTEM-INVALID ARGS');
466       IGS_GE_MSG_STACK.ADD;
467     app_exception.raise_exception;
468   end if;
469 Before_DML (
470     p_action => 'UPDATE',
471     x_rowid => x_rowid,
472     x_progression_rule_cat => x_progression_rule_cat,
473     x_progression_rule_cd => x_progression_rule_cd,
474     x_description => x_description,
475     x_rul_sequence_number => x_rul_sequence_number,
476     x_closed_ind => x_closed_ind,
477     x_message => x_message,
478     x_creation_date => x_last_update_date,
479     x_created_by =>  x_last_updated_by,
480     x_last_update_date => x_last_update_date,
481     x_last_updated_by => x_last_updated_by,
482     x_last_update_login => x_last_update_login
483 
484   ) ;
485 
486   update IGS_PR_RULE_ALL set
487     DESCRIPTION = NEW_REFERENCES.DESCRIPTION,
488     RUL_SEQUENCE_NUMBER = NEW_REFERENCES.RUL_SEQUENCE_NUMBER,
489     CLOSED_IND = NEW_REFERENCES.CLOSED_IND,
490     MESSAGE = NEW_REFERENCES.MESSAGE,
491     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
492     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
493     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
494   where ROWID = X_ROWID
495   ;
496   if (sql%notfound) then
497     raise no_data_found;
498   end if;
499 end UPDATE_ROW;
500 
501 procedure ADD_ROW (
502   X_ROWID in out NOCOPY VARCHAR2,
503   X_PROGRESSION_RULE_CAT in VARCHAR2,
504   X_PROGRESSION_RULE_CD in VARCHAR2,
505   X_DESCRIPTION in VARCHAR2,
506   X_RUL_SEQUENCE_NUMBER in NUMBER,
507   X_CLOSED_IND in VARCHAR2,
508   X_MESSAGE in VARCHAR2,
509   X_MODE in VARCHAR2 default 'R',
510   X_ORG_ID in NUMBER
511   ) AS
512   cursor c1 is select rowid from IGS_PR_RULE_ALL
513      where PROGRESSION_RULE_CAT = X_PROGRESSION_RULE_CAT
514      and PROGRESSION_RULE_CD = X_PROGRESSION_RULE_CD
515   ;
516 begin
517   open c1;
518   fetch c1 into X_ROWID;
519   if (c1%notfound) then
520     close c1;
521     INSERT_ROW (
522      X_ROWID,
523      X_PROGRESSION_RULE_CAT,
524      X_PROGRESSION_RULE_CD,
525      X_DESCRIPTION,
526      X_RUL_SEQUENCE_NUMBER,
527      X_CLOSED_IND,
528      X_MESSAGE,
529      X_MODE,
530      X_ORG_ID);
531     return;
532   end if;
533   close c1;
534   UPDATE_ROW (
535    X_ROWID ,
536    X_PROGRESSION_RULE_CAT,
537    X_PROGRESSION_RULE_CD,
538    X_DESCRIPTION,
539    X_RUL_SEQUENCE_NUMBER,
540    X_CLOSED_IND,
541    X_MESSAGE,
542    X_MODE
543    );
544 end ADD_ROW;
545 
546 procedure DELETE_ROW (
547   X_ROWID in VARCHAR2
548 ) is
549 begin
550 Before_DML (
551     p_action => 'DELETE',
552     x_rowid => X_ROWID
553   );
554 
555   delete from IGS_PR_RULE_ALL
556   where ROWID = X_ROWID;
557   if (sql%notfound) then
558     raise no_data_found;
559   end if;
560 
561 end DELETE_ROW;
562 
563 PROCEDURE Check_Constraints (
564 	Column_Name IN VARCHAR2 DEFAULT NULL,
565 	Column_Value IN VARCHAR2 DEFAULT NULL
566 	) AS
567 BEGIN
568 IF Column_Name is null THEN
569   NULL;
570 ELSIF upper(Column_name) = 'CLOSED_IND' THEN
571   new_references.CLOSED_IND:= COLUMN_VALUE ;
572 
573 ELSIF upper(Column_name) = 'PROGRESSION_RULE_CAT' THEN
574   new_references.PROGRESSION_RULE_CAT:= COLUMN_VALUE ;
575 
576 ELSIF upper(Column_name) = 'PROGRESSION_RULE_CD' THEN
577   new_references.PROGRESSION_RULE_CD:= COLUMN_VALUE ;
578 
579 END IF ;
580 
581 IF upper(Column_name) = 'CLOSED_IND' OR COLUMN_NAME IS NULL THEN
582   IF new_references.CLOSED_IND not in  ('Y','N') then
583     Fnd_Message.Set_Name('IGS','IGS_GE_INVALID_VALUE');
584       IGS_GE_MSG_STACK.ADD;
585     App_Exception.Raise_Exception ;
586   END IF;
587 END IF ;
588 
589 IF upper(Column_name) = 'PROGRESSION_RULE_CAT' OR COLUMN_NAME IS NULL THEN
590   IF new_references.PROGRESSION_RULE_CAT<> upper(new_references.PROGRESSION_RULE_CAT) then
591     Fnd_Message.Set_Name('IGS','IGS_GE_INVALID_VALUE');
592       IGS_GE_MSG_STACK.ADD;
593     App_Exception.Raise_Exception ;
594   END IF;
595 
596 END IF ;
597 
598 IF (Column_name) = 'PROGRESSION_RULE_CD' OR COLUMN_NAME IS NULL THEN
599   IF new_references.PROGRESSION_RULE_CD<> (new_references.PROGRESSION_RULE_CD) then
600     Fnd_Message.Set_Name('IGS','IGS_GE_INVALID_VALUE');
601       IGS_GE_MSG_STACK.ADD;
602     App_Exception.Raise_Exception ;
603   END IF;
604 
605 END IF ;
606 
607 END Check_Constraints;
608 
609 end IGS_PR_RULE_PKG;