DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGS_RE_CDT_FLD_OF_SY_PKG

Source


1 package body IGS_RE_CDT_FLD_OF_SY_PKG as
2 /* $Header: IGSRI04B.pls 120.1 2005/07/04 00:41:28 appldev ship $ */
3   -------------------------------------------------------------------------------------------
4   --Change History:
5   --Who         When            What
6   --smadathi    24-AUG-2001     Bug No. 1956374 .The call to igs_re_val_cafos.genp_val_sdtt_sess
7   --                            is changed to igs_as_val_suaap.genp_val_sdtt_sess
8   -------------------------------------------------------------------------------------------
9   l_rowid VARCHAR2(25);
10   old_references IGS_RE_CDT_FLD_OF_SY%RowType;
11   new_references IGS_RE_CDT_FLD_OF_SY%RowType;
12 
13   PROCEDURE Set_Column_Values (
14     p_action IN VARCHAR2,
15     x_rowid IN VARCHAR2 DEFAULT NULL,
16     x_person_id IN NUMBER DEFAULT NULL,
17     x_ca_sequence_number IN NUMBER DEFAULT NULL,
18     x_field_of_study IN VARCHAR2 DEFAULT NULL,
19     x_percentage IN NUMBER DEFAULT NULL,
20     x_creation_date IN DATE DEFAULT NULL,
21     x_created_by IN NUMBER DEFAULT NULL,
22     x_last_update_date IN DATE DEFAULT NULL,
23     x_last_updated_by IN NUMBER DEFAULT NULL,
24     x_last_update_login IN NUMBER DEFAULT NULL
25   ) AS
26 
27     CURSOR cur_old_ref_values IS
28       SELECT   *
29       FROM     IGS_RE_CDT_FLD_OF_SY
30       WHERE    rowid = x_rowid;
31 
32   BEGIN
33 
34     l_rowid := x_rowid;
35 
36     -- Code for setting the Old and New Reference Values.
37     -- Populate Old Values.
38     Open cur_old_ref_values;
39     Fetch cur_old_ref_values INTO old_references;
40     IF (cur_old_ref_values%NOTFOUND) AND (p_action NOT IN  ('INSERT', 'VALIDATE_INSERT')) THEN
41       Close cur_old_ref_values;
42       Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
43       IGS_GE_MSG_STACK.ADD;
44       App_Exception.Raise_Exception;
45       Return;
46     END IF;
47     Close cur_old_ref_values;
48 
49     -- Populate New Values.
50     new_references.person_id := x_person_id;
51     new_references.ca_sequence_number := x_ca_sequence_number;
52     new_references.field_of_study := x_field_of_study;
53     new_references.percentage := x_percentage;
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 
65   END Set_Column_Values;
66 
67   PROCEDURE BeforeRowInsertUpdateDelete1(
68     p_inserting IN BOOLEAN DEFAULT FALSE,
69     p_updating IN BOOLEAN DEFAULT FALSE,
70     p_deleting IN BOOLEAN DEFAULT FALSE
71     ) AS
72 	v_message_name		VARCHAR2(30);
73   BEGIN
74 	-- Turn off trigger validation when performing insert of IGS_RE_CANDIDATURE details
75 	-- as a result of IGS_PS_COURSE transfer
76 	IF igs_as_val_suaap.genp_val_sdtt_sess('ENRP_INS_CA_TRNSFR') THEN
77 		IF p_inserting  THEN
78 			-- Validate field of study.
79 			IF IGS_RE_VAL_CAFOS.resp_val_cafos_fos (
80 				new_references.person_id,
81 				new_references.ca_sequence_number,
82 				new_references.FIELD_OF_STUDY,
83 				v_message_name) = FALSE THEN
84 					Fnd_Message.Set_Name ('IGS', v_message_name);
85 					IGS_GE_MSG_STACK.ADD;
86 					App_Exception.Raise_Exception;
87 			END IF;
88 		END IF;
89 		IF p_inserting OR
90 			p_updating OR
91 			p_deleting THEN
92 			-- Validate updates are allowed
93 /*
94 ||  Bug ID 1956374 - Removal of Duplicate Program Units from OSS.
95 ||  Changed the reference of "IGS_RE_VAL_CAFOS.RESP_VAL_CA_CHILDUPD" to program unit "IGS_RE_VAL_CAH.RESP_VAL_CA_CHILDUPD". -- kdande
96 */
97 			IF IGS_RE_VAL_CAH.resp_val_ca_childupd (
98 				new_references.person_id,
99 				new_references.ca_sequence_number,
100 				v_message_name) = FALSE THEN
101 					Fnd_Message.Set_Name ('IGS', v_message_name);
102 					IGS_GE_MSG_STACK.ADD;
103 					App_Exception.Raise_Exception;
104 			END IF;
105 		END IF;
106 	END IF;
107   END BeforeRowInsertUpdateDelete1;
108 
109  PROCEDURE Check_Constraints (
110   Column_Name in VARCHAR2 DEFAULT NULL ,
111   Column_Value in VARCHAR2 DEFAULT NULL
112   ) AS
113  BEGIN
114 
115  if Column_Name is null then
116    NULL;
117  ELSIF upper(Column_name) = 'FIELD_OF_STUDY' THEN
118    new_references.FIELD_OF_STUDY := COLUMN_VALUE ;
119  ELSIF upper(Column_name) = 'PERCENTAGE' THEN
120    new_references.PERCENTAGE := IGS_GE_NUMBER.to_num(COLUMN_VALUE) ;
121  ELSIF upper(Column_name) = 'CA_SEQUENCE_NUMBER' THEN
122    new_references.CA_SEQUENCE_NUMBER := IGS_GE_NUMBER.to_num(COLUMN_VALUE) ;
123  end if;
124 
125   IF upper(column_name) = 'FIELD_OF_STUDY' OR COLUMN_NAME IS NULL THEN
126     IF new_references.FIELD_OF_STUDY <> upper(new_references.FIELD_OF_STUDY) then
127 	  Fnd_Message.Set_Name('IGS','IGS_GE_INVALID_VALUE');
128 	  IGS_GE_MSG_STACK.ADD;
129 	  App_Exception.Raise_Exception ;
130 	END IF;
131   END IF;
132 
133   IF upper(column_name) = 'PERCENTAGE' OR COLUMN_NAME IS NULL THEN
134     IF new_references.PERCENTAGE < 1 OR new_references.PERCENTAGE > 100 THEN
135 	  Fnd_Message.Set_Name('IGS','IGS_GE_INVALID_VALUE');
136 	  IGS_GE_MSG_STACK.ADD;
137 	  App_Exception.Raise_Exception ;
138 	END IF;
139   END IF;
140 
141   IF upper(column_name) = 'CA_SEQUENCE_NUMBER' OR COLUMN_NAME IS NULL THEN
142     IF new_references.CA_SEQUENCE_NUMBER < 1 OR new_references.CA_SEQUENCE_NUMBER > 999999 then
143 	  Fnd_Message.Set_Name('IGS','IGS_GE_INVALID_VALUE');
144 	  IGS_GE_MSG_STACK.ADD;
145 	  App_Exception.Raise_Exception ;
146 	END IF;
147   END IF;
148 
149  END Check_Constraints ;
150 
151 
152   PROCEDURE Check_Parent_Existance AS
153   BEGIN
154 
155     IF (((old_references.person_id = new_references.person_id) AND
156          (old_references.ca_sequence_number = new_references.ca_sequence_number)) OR
157         ((new_references.person_id IS NULL) OR
158          (new_references.ca_sequence_number IS NULL))) THEN
159       NULL;
160     ELSE
161       IF NOT IGS_RE_CANDIDATURE_PKG.Get_PK_For_Validation (
162         new_references.person_id,
163         new_references.ca_sequence_number
164         ) THEN
165      	     Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
166      	     IGS_GE_MSG_STACK.ADD;
167              App_Exception.Raise_Exception;
168        END IF;
169     END IF;
170 
171     IF (((old_references.field_of_study = new_references.field_of_study)) OR
172         ((new_references.field_of_study IS NULL))) THEN
173       NULL;
174     ELSE
175       IF NOT IGS_PS_FLD_OF_STUDY_PKG.Get_PK_For_Validation (
176         new_references.field_of_study
177         ) THEN
178      	     Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
179      	     IGS_GE_MSG_STACK.ADD;
180              App_Exception.Raise_Exception;
181        END IF;
182     END IF;
183 
184   END Check_Parent_Existance;
185 
186   FUNCTION Get_PK_For_Validation (
187     x_person_id IN NUMBER,
188     x_ca_sequence_number IN NUMBER,
189     x_field_of_study IN VARCHAR2
190     )
191   RETURN BOOLEAN AS
192 
193     CURSOR cur_rowid IS
194       SELECT   rowid
195       FROM     IGS_RE_CDT_FLD_OF_SY
196       WHERE    person_id = x_person_id
197       AND      ca_sequence_number = x_ca_sequence_number
198       AND      field_of_study = x_field_of_study
199       FOR UPDATE NOWAIT;
200 
201     lv_rowid cur_rowid%RowType;
202 
203   BEGIN
204 
205     Open cur_rowid;
206     Fetch cur_rowid INTO lv_rowid;
207     IF (cur_rowid%FOUND) THEN
208 	Close cur_rowid;
209  	RETURN(TRUE);
210     ELSE
211         Close cur_rowid;
212         RETURN(FALSE);
213     END IF;
214 
215   END Get_PK_For_Validation;
216 
217   PROCEDURE GET_FK_IGS_RE_CANDIDATURE (
218     x_person_id IN NUMBER,
219     x_sequence_number IN NUMBER
220     ) AS
221 
222     CURSOR cur_rowid IS
223       SELECT   rowid
224       FROM     IGS_RE_CDT_FLD_OF_SY
225       WHERE    person_id = x_person_id
226       AND      ca_sequence_number = x_sequence_number ;
227 
228     lv_rowid cur_rowid%RowType;
229 
230   BEGIN
231 
232     Open cur_rowid;
233     Fetch cur_rowid INTO lv_rowid;
234     IF (cur_rowid%FOUND) THEN
235       Close cur_rowid;
236       Fnd_Message.Set_Name ('IGS', 'IGS_RE_CAFOS_CA_FK');
237       IGS_GE_MSG_STACK.ADD;
238       App_Exception.Raise_Exception;
239       Return;
240     END IF;
241     Close cur_rowid;
242 
243   END GET_FK_IGS_RE_CANDIDATURE;
244 
245 
246   PROCEDURE Before_DML (
247     p_action IN VARCHAR2,
248     x_rowid IN VARCHAR2 DEFAULT NULL,
249     x_person_id IN NUMBER DEFAULT NULL,
250     x_ca_sequence_number IN NUMBER DEFAULT NULL,
251     x_field_of_study IN VARCHAR2 DEFAULT NULL,
252     x_percentage IN NUMBER DEFAULT NULL,
253     x_creation_date IN DATE DEFAULT NULL,
254     x_created_by IN NUMBER DEFAULT NULL,
255     x_last_update_date IN DATE DEFAULT NULL,
256     x_last_updated_by IN NUMBER DEFAULT NULL,
257     x_last_update_login IN NUMBER DEFAULT NULL
258   ) AS
259   BEGIN
260 
261     Set_Column_Values (
262       p_action,
263       x_rowid,
264       x_person_id,
265       x_ca_sequence_number,
266       x_field_of_study,
267       x_percentage,
268       x_creation_date,
269       x_created_by,
270       x_last_update_date,
271       x_last_updated_by,
272       x_last_update_login
273     );
274 
275     IF (p_action = 'INSERT') THEN
276       -- Call all the procedures related to Before Insert.
277       BeforeRowInsertUpdateDelete1 ( p_inserting => TRUE );
278       IF Get_PK_For_Validation (
279 	    new_references.person_id,
280 	    new_references.ca_sequence_number,
281 	    new_references.field_of_study
282       ) THEN
283 
284 	 Fnd_Message.Set_Name ('IGS', 'IGS_GE_RECORD_ALREADY_EXISTS');
285 	 IGS_GE_MSG_STACK.ADD;
286          App_Exception.Raise_Exception;
287      END IF;
288       Check_Constraints;
289       Check_Parent_Existance;
290     ELSIF (p_action = 'UPDATE') THEN
291       -- Call all the procedures related to Before Update.
292       BeforeRowInsertUpdateDelete1 ( p_updating => TRUE );
293       Check_Constraints;
294       Check_Parent_Existance;
295     ELSIF (p_action = 'DELETE') THEN
296       -- Call all the procedures related to Before Delete.
297       BeforeRowInsertUpdateDelete1 ( p_deleting => TRUE );
298     ELSIF (p_action = 'VALIDATE_INSERT') THEN
299       IF Get_PK_For_Validation (
300 	    new_references.person_id,
301 	    new_references.ca_sequence_number,
302 	    new_references.field_of_study
303       ) THEN
304 
305 	 Fnd_Message.Set_Name ('IGS', 'IGS_GE_RECORD_ALREADY_EXISTS');
306 	 IGS_GE_MSG_STACK.ADD;
307          App_Exception.Raise_Exception;
308      END IF;
309       Check_Constraints;
310     ELSIF (p_action = 'VALIDATE_UPDATE') THEN
311       Check_Constraints;
312     END IF;
313   END Before_DML;
314 
315 procedure INSERT_ROW (
316   X_ROWID in out NOCOPY VARCHAR2,
317   X_PERSON_ID in NUMBER,
318   X_CA_SEQUENCE_NUMBER in NUMBER,
319   X_FIELD_OF_STUDY in VARCHAR2,
320   X_PERCENTAGE in NUMBER,
321   X_MODE in VARCHAR2 default 'R'
322   ) as
323     cursor C is select ROWID from IGS_RE_CDT_FLD_OF_SY
324       where PERSON_ID = X_PERSON_ID
325       and CA_SEQUENCE_NUMBER = X_CA_SEQUENCE_NUMBER
326       and FIELD_OF_STUDY = X_FIELD_OF_STUDY;
327     X_LAST_UPDATE_DATE DATE;
328     X_LAST_UPDATED_BY NUMBER;
329     X_LAST_UPDATE_LOGIN NUMBER;
330 begin
331   X_LAST_UPDATE_DATE := SYSDATE;
332   if(X_MODE = 'I') then
333     X_LAST_UPDATED_BY := 1;
334     X_LAST_UPDATE_LOGIN := 0;
335   elsif (X_MODE IN ('R', 'S')) then
336     X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
337     if X_LAST_UPDATED_BY is NULL then
338       X_LAST_UPDATED_BY := -1;
339     end if;
340     X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
341     if X_LAST_UPDATE_LOGIN is NULL then
342       X_LAST_UPDATE_LOGIN := -1;
343     end if;
344   else
345     FND_MESSAGE.SET_NAME( 'FND', 'SYSTEM-INVALID ARGS');
346     IGS_GE_MSG_STACK.ADD;
347     app_exception.raise_exception;
348   end if;
349 
350   Before_DML (
351     p_action => 'INSERT',
352     x_rowid => X_ROWID,
353     x_person_id => X_PERSON_ID,
354     x_ca_sequence_number => X_CA_SEQUENCE_NUMBER,
355     x_field_of_study => X_FIELD_OF_STUDY,
356     x_percentage => X_PERCENTAGE,
357     x_created_by => X_LAST_UPDATED_BY ,
358     x_creation_date => X_LAST_UPDATE_DATE,
359     x_last_updated_by => X_LAST_UPDATED_BY,
360     x_last_update_date => X_LAST_UPDATE_DATE,
361     x_last_update_login => X_LAST_UPDATE_LOGIN
362   );
363 
364   IF (x_mode = 'S') THEN
365     igs_sc_gen_001.set_ctx('R');
366   END IF;
367   insert into IGS_RE_CDT_FLD_OF_SY (
368     PERSON_ID,
369     CA_SEQUENCE_NUMBER,
370     FIELD_OF_STUDY,
371     PERCENTAGE,
372     CREATION_DATE,
373     CREATED_BY,
374     LAST_UPDATE_DATE,
375     LAST_UPDATED_BY,
376     LAST_UPDATE_LOGIN
377   ) values (
378     NEW_REFERENCES.PERSON_ID,
379     NEW_REFERENCES.CA_SEQUENCE_NUMBER,
380     NEW_REFERENCES.FIELD_OF_STUDY,
381     NEW_REFERENCES.PERCENTAGE,
382     X_LAST_UPDATE_DATE,
383     X_LAST_UPDATED_BY,
384     X_LAST_UPDATE_DATE,
385     X_LAST_UPDATED_BY,
386     X_LAST_UPDATE_LOGIN
387   );
388  IF (x_mode = 'S') THEN
389     igs_sc_gen_001.unset_ctx('R');
390   END IF;
391 
392 
393   open c;
394   fetch c into X_ROWID;
395   if (c%notfound) then
396     close c;
397     raise no_data_found;
398   end if;
399   close c;
400 
401 EXCEPTION
402   WHEN OTHERS THEN
403     IF (SQLCODE IN (-28115, -28113, -28111)) THEN
404       fnd_message.set_name ('IGS', 'IGS_SC_POLICY_EXCEPTION');
405       fnd_message.set_token ('ERR_CD', SQLCODE);
406       igs_ge_msg_stack.add;
407       igs_sc_gen_001.unset_ctx('R');
408       app_exception.raise_exception;
409     ELSE
410       igs_sc_gen_001.unset_ctx('R');
411       RAISE;
412     END IF;
413 
414 end INSERT_ROW;
415 
416 procedure LOCK_ROW (
417   X_ROWID in VARCHAR2,
418   X_PERSON_ID in NUMBER,
419   X_CA_SEQUENCE_NUMBER in NUMBER,
420   X_FIELD_OF_STUDY in VARCHAR2,
421   X_PERCENTAGE in NUMBER
422 ) as
423   cursor c1 is select
424       PERCENTAGE
425     from IGS_RE_CDT_FLD_OF_SY
426     where ROWID = X_ROWID
427     for update nowait;
428   tlinfo c1%rowtype;
429 
430 begin
431   open c1;
432   fetch c1 into tlinfo;
433   if (c1%notfound) then
434     close c1;
435     fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
436     app_exception.raise_exception;
437     return;
438   end if;
439   close c1;
440 
441   if ( (tlinfo.PERCENTAGE = X_PERCENTAGE)
442   ) then
443     null;
444   else
445     fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
446     app_exception.raise_exception;
447   end if;
448   return;
449 end LOCK_ROW;
450 
451 procedure UPDATE_ROW (
452   X_ROWID in VARCHAR2,
453   X_PERSON_ID in NUMBER,
454   X_CA_SEQUENCE_NUMBER in NUMBER,
455   X_FIELD_OF_STUDY in VARCHAR2,
456   X_PERCENTAGE in NUMBER,
457   X_MODE in VARCHAR2 default 'R'
458   ) as
459     X_LAST_UPDATE_DATE DATE;
460     X_LAST_UPDATED_BY NUMBER;
461     X_LAST_UPDATE_LOGIN NUMBER;
462 begin
463   X_LAST_UPDATE_DATE := SYSDATE;
464   if(X_MODE = 'I') then
465     X_LAST_UPDATED_BY := 1;
466     X_LAST_UPDATE_LOGIN := 0;
467   elsif (X_MODE IN ('R', 'S')) then
468     X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
469     if X_LAST_UPDATED_BY is NULL then
470       X_LAST_UPDATED_BY := -1;
471     end if;
472     X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
473     if X_LAST_UPDATE_LOGIN is NULL then
474       X_LAST_UPDATE_LOGIN := -1;
475     end if;
476   else
477     FND_MESSAGE.SET_NAME('FND', 'SYSTEM-INVALID ARGS');
478     IGS_GE_MSG_STACK.ADD;
479     app_exception.raise_exception;
480   end if;
481 
482   Before_DML (
483     p_action => 'UPDATE',
484     x_rowid => X_ROWID,
485     x_person_id => X_PERSON_ID,
486     x_ca_sequence_number => X_CA_SEQUENCE_NUMBER,
487     x_field_of_study => X_FIELD_OF_STUDY,
488     x_percentage => X_PERCENTAGE,
489     x_created_by => X_LAST_UPDATED_BY ,
490     x_creation_date => X_LAST_UPDATE_DATE,
491     x_last_updated_by => X_LAST_UPDATED_BY,
492     x_last_update_date => X_LAST_UPDATE_DATE,
493     x_last_update_login => X_LAST_UPDATE_LOGIN
494   );
495 
496   IF (x_mode = 'S') THEN
497     igs_sc_gen_001.set_ctx('R');
498   END IF;
499   update IGS_RE_CDT_FLD_OF_SY set
500     PERCENTAGE = NEW_REFERENCES.PERCENTAGE,
501     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
502     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
503     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
504   where ROWID = X_ROWID;
505 
506   if (sql%notfound) then
507      fnd_message.set_name ('IGS', 'IGS_SC_POLICY_UPD_DEL_EXCEP');
508      igs_ge_msg_stack.add;
509      igs_sc_gen_001.unset_ctx('R');
510      app_exception.raise_exception;
511  end if;
512  IF (x_mode = 'S') THEN
513     igs_sc_gen_001.unset_ctx('R');
514   END IF;
515 
516 
517 EXCEPTION
518   WHEN OTHERS THEN
519     IF (SQLCODE = (-28115)) THEN
520       fnd_message.set_name ('IGS', 'IGS_SC_UPD_POLICY_EXCP');
521       fnd_message.set_token ('ERR_CD', SQLCODE);
522       igs_ge_msg_stack.add;
523       igs_sc_gen_001.unset_ctx('R');
524       app_exception.raise_exception;
525     ELSE
526       igs_sc_gen_001.unset_ctx('R');
527       RAISE;
528     END IF;
529 
530 end UPDATE_ROW;
531 
532 procedure ADD_ROW (
533   X_ROWID in out NOCOPY VARCHAR2,
534   X_PERSON_ID in NUMBER,
535   X_CA_SEQUENCE_NUMBER in NUMBER,
536   X_FIELD_OF_STUDY in VARCHAR2,
537   X_PERCENTAGE in NUMBER,
538   X_MODE in VARCHAR2 default 'R'
539   ) as
540   cursor c1 is select rowid from IGS_RE_CDT_FLD_OF_SY
541      where PERSON_ID = X_PERSON_ID
542      and CA_SEQUENCE_NUMBER = X_CA_SEQUENCE_NUMBER
543      and FIELD_OF_STUDY = X_FIELD_OF_STUDY
544   ;
545 begin
546   open c1;
547   fetch c1 into X_ROWID;
548   if (c1%notfound) then
549     close c1;
550     INSERT_ROW (
551      X_ROWID,
552      X_PERSON_ID,
553      X_CA_SEQUENCE_NUMBER,
554      X_FIELD_OF_STUDY,
555      X_PERCENTAGE,
556      X_MODE);
557     return;
558   end if;
559   close c1;
560   UPDATE_ROW (
561    X_ROWID,
562    X_PERSON_ID,
563    X_CA_SEQUENCE_NUMBER,
564    X_FIELD_OF_STUDY,
565    X_PERCENTAGE,
566    X_MODE);
567 end ADD_ROW;
568 
569 procedure DELETE_ROW (
570   X_ROWID in VARCHAR2,
571   x_mode IN VARCHAR2
572   ) as
573 begin
574 
575   Before_DML (
576     p_action => 'DELETE',
577     x_rowid => X_ROWID
578    );
579 
580   IF (x_mode = 'S') THEN
581     igs_sc_gen_001.set_ctx('R');
582   END IF;
583   delete from IGS_RE_CDT_FLD_OF_SY
584   where ROWID = X_ROWID;
585 
586   if (sql%notfound) then
587      fnd_message.set_name ('IGS', 'IGS_SC_POLICY_UPD_DEL_EXCEP');
588      igs_ge_msg_stack.add;
589      igs_sc_gen_001.unset_ctx('R');
590      app_exception.raise_exception;
591  end if;
592  IF (x_mode = 'S') THEN
593     igs_sc_gen_001.unset_ctx('R');
594   END IF;
595 
596 
597 end DELETE_ROW;
598 
599 end IGS_RE_CDT_FLD_OF_SY_PKG;