DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGS_PS_FACLTY_DISP_PKG

Source


1 PACKAGE BODY igs_ps_faclty_disp_pkg AS
2 /* $Header: IGSPI0PB.pls 120.1 2005/06/28 06:24:44 appldev ship $ */
3   l_rowid VARCHAR2(25);
4   old_references igs_ps_faclty_disp%RowType;
5   new_references igs_ps_faclty_disp%RowType;
6 
7   PROCEDURE Set_Column_Values (
8     p_action IN VARCHAR2,
9     x_rowid IN VARCHAR2 DEFAULT NULL,
10     x_displn_unit_id IN NUMBER DEFAULT NULL,
11     x_displn_unit_type IN VARCHAR2 DEFAULT NULL,
12     x_person_id IN NUMBER DEFAULT NULL,
13     x_displn_unit_cd IN VARCHAR2 DEFAULT NULL,
14     x_creation_date IN DATE DEFAULT NULL,
15     x_created_by IN NUMBER DEFAULT NULL,
16     x_last_update_date IN DATE DEFAULT NULL,
17     x_last_updated_by IN NUMBER DEFAULT NULL,
18     x_last_update_login IN NUMBER DEFAULT NULL
19   ) AS
20 
21   /*************************************************************
22   Created By :ssuri
23   Date Created By :11-MAY-2000
24   Purpose :NEW TABLE
25   Know limitations, enhancements or remarks
26   Change History
27   Who             When            What
28 
29   (reverse chronological order - newest change first)
30   ***************************************************************/
31 
32     CURSOR cur_old_ref_values IS
33       SELECT   *
34       FROM     IGS_PS_FACLTY_DISP
35       WHERE    rowid = x_rowid;
36 
37   BEGIN
38 
39     l_rowid := x_rowid;
40 
41     -- Code for setting the Old and New Reference Values.
42     -- Populate Old Values.
43     Open cur_old_ref_values;
44     Fetch cur_old_ref_values INTO old_references;
45     IF (cur_old_ref_values%NOTFOUND) AND (p_action NOT IN ('INSERT','VALIDATE_INSERT')) THEN
46       Close cur_old_ref_values;
47       Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
48       IGS_GE_MSG_STACK.ADD;
49       App_Exception.Raise_Exception;
50       Return;
51     END IF;
52     Close cur_old_ref_values;
53 
54     -- Populate New Values.
55     new_references.displn_unit_id := x_displn_unit_id;
56     new_references.displn_unit_type := x_displn_unit_type;
57     new_references.person_id := x_person_id;
58     new_references.displn_unit_cd := x_displn_unit_cd;
59     IF (p_action = 'UPDATE') THEN
60       new_references.creation_date := old_references.creation_date;
61       new_references.created_by := old_references.created_by;
62     ELSE
63       new_references.creation_date := x_creation_date;
64       new_references.created_by := x_created_by;
65     END IF;
66     new_references.last_update_date := x_last_update_date;
67     new_references.last_updated_by := x_last_updated_by;
68     new_references.last_update_login := x_last_update_login;
69 
70   END Set_Column_Values;
71 
72   PROCEDURE Check_Constraints (
73 		 Column_Name IN VARCHAR2  DEFAULT NULL,
74 		 Column_Value IN VARCHAR2  DEFAULT NULL ) AS
75   /*************************************************************
76   Created By :ssuri
77   Date Created By :11-MAY-2000
78   Purpose :NEW TABLE
79   Know limitations, enhancements or remarks
80   Change History
81   Who             When            What
82 
83   (reverse chronological order - newest change first)
84   ***************************************************************/
85 
86   BEGIN
87 
88       IF column_name IS NULL THEN
89         NULL;
90       ELSIF  UPPER(column_name) = 'DISPLN_UNIT_TYPE'  THEN
91         new_references.displn_unit_type := column_value;
92         NULL;
93       END IF;
94 
95 
96 
97     -- The following code checks for check constraints on the Columns.
98       IF Upper(Column_Name) = 'DISPLN_UNIT_TYPE' OR
99       	Column_Name IS NULL THEN
100         IF NOT (new_references.displn_unit_type IN ('DISCIPLINE', 'UNIT'))  THEN
101            Fnd_Message.Set_Name('IGS','IGS_GE_INVALID_VALUE');
102       IGS_GE_MSG_STACK.ADD;
103            App_Exception.Raise_Exception;
104         END IF;
105       END IF;
106 
107 
108   END Check_Constraints;
109 
110  PROCEDURE Check_Uniqueness AS
111   /*************************************************************
112   Created By :ssuri
113   Date Created By :11-MAY-2000
114   Purpose :NEW TABLE
115   Know limitations, enhancements or remarks
116   Change History
117   Who             When            What
118 
119   (reverse chronological order - newest change first)
120   ***************************************************************/
121 
122    begin
123      		IF Get_Uk_For_Validation (
124     		new_references.displn_unit_cd
125     		,new_references.displn_unit_type
126     		,new_references.person_id
127     		) THEN
128  		Fnd_Message.Set_Name ('IGS', 'IGS_GE_RECORD_ALREADY_EXISTS');
129       IGS_GE_MSG_STACK.ADD;
130 			app_exception.raise_exception;
131     		END IF;
132  END Check_Uniqueness ;
133   PROCEDURE Check_Parent_Existance AS
134   /*************************************************************
135   Created By :ssuri
136   Date Created By :11-MAY-2000
137   Purpose :NEW TABLE
138   Know limitations, enhancements or remarks
139   Change History
140   Who             When            What
141 
142   (reverse chronological order - newest change first)
143   ***************************************************************/
144 
145   BEGIN
146 
147     IF (((old_references.person_id = new_references.person_id)) OR
148         ((new_references.person_id IS NULL))) THEN
149       NULL;
150     ELSIF NOT Igs_Pe_Person_Pkg.Get_PK_For_Validation (
151         		new_references.person_id
152         )  THEN
153 	 Fnd_Message.Set_Name ('FND','FORM_RECORD_DELETED');
154       IGS_GE_MSG_STACK.ADD;
155  	 App_Exception.Raise_Exception;
156     END IF;
157 
158  --- Special Condition to check in 2 tables (The ARC Relationship )
159  IF new_references.displn_unit_type = 'UNIT'  THEN
160 
161    IF (((old_references.displn_unit_cd = new_references.displn_unit_cd)) OR
162         ((new_references.displn_unit_cd IS NULL))) THEN
163       NULL;
164     ELSIF NOT Igs_Ps_Unit_Ver_Pkg.Get_PK_For_Validation (
165         		new_references.displn_unit_cd,
166         		1
167         )  THEN
168 	 Fnd_Message.Set_Name ('FND','FORM_RECORD_DELETED');
169       IGS_GE_MSG_STACK.ADD;
170  	 App_Exception.Raise_Exception;
171     END IF;
172 
173   ELSE   --- (Arc Relation)
174 
175      IF (((old_references.displn_unit_cd = new_references.displn_unit_cd)) OR
176         ((new_references.displn_unit_cd IS NULL))) THEN
177       NULL;
178     ELSIF NOT Igs_Ps_Fld_OF_Study_Pkg.Get_PK_For_Validation (
179         		new_references.displn_unit_cd
180         )  THEN
181 	 Fnd_Message.Set_Name ('FND','FORM_RECORD_DELETED');
182       IGS_GE_MSG_STACK.ADD;
183  	 App_Exception.Raise_Exception;
184     END IF;
185 
186   END IF;   ---- (ARC Relation)
187   END Check_Parent_Existance;
188 
189   FUNCTION Get_PK_For_Validation (
190     x_displn_unit_id IN NUMBER
191     ) RETURN BOOLEAN AS
192 
193   /*************************************************************
194   Created By :ssuri
195   Date Created By :11-MAY-2000
196   Purpose :NEW TABLE
197   Know limitations, enhancements or remarks
198   Change History
199   Who             When            What
200 
201   (reverse chronological order - newest change first)
202   ***************************************************************/
203 
204     CURSOR cur_rowid IS
205       SELECT   rowid
206       FROM     igs_ps_faclty_disp
207       WHERE    displn_unit_id = x_displn_unit_id
208       FOR UPDATE NOWAIT;
209 
210     lv_rowid cur_rowid%RowType;
211 
212   BEGIN
213 
214     Open cur_rowid;
215     Fetch cur_rowid INTO lv_rowid;
216     IF (cur_rowid%FOUND) THEN
217       Close cur_rowid;
218       Return(TRUE);
219     ELSE
220       Close cur_rowid;
221       Return(FALSE);
222     END IF;
223   END Get_PK_For_Validation;
224 
225   FUNCTION Get_UK_For_Validation (
226     x_displn_unit_cd IN VARCHAR2,
227     x_displn_unit_type IN VARCHAR2,
228     x_person_id IN NUMBER
229     ) RETURN BOOLEAN AS
230 
231   /*************************************************************
232   Created By :ssuri
233   Date Created By :11-MAY-2000
234   Purpose :NEW TABLE
235   Know limitations, enhancements or remarks
236   Change History
237   Who             When            What
238 
239   (reverse chronological order - newest change first)
240   ***************************************************************/
241 
242     CURSOR cur_rowid IS
243       SELECT   rowid
244       FROM     igs_ps_faclty_disp
245       WHERE    displn_unit_cd = x_displn_unit_cd
246       AND      displn_unit_type = x_displn_unit_type
247       AND      person_id = x_person_id 	and      ((l_rowid is null) or (rowid <> l_rowid))
248 
249       ;
250     lv_rowid cur_rowid%RowType;
251 
252   BEGIN
253 
254     Open cur_rowid;
255     Fetch cur_rowid INTO lv_rowid;
256     IF (cur_rowid%FOUND) THEN
257       Close cur_rowid;
258         return (true);
259         ELSE
260        close cur_rowid;
261       return(false);
262     END IF;
263   END Get_UK_For_Validation ;
264   PROCEDURE Get_FK_Igs_Pe_Person (
265     x_person_id IN NUMBER
266     ) AS
267 
268   /*************************************************************
269   Created By :ssuri
270   Date Created By :11-MAY-2000
271   Purpose :NEW TABLE
272   Know limitations, enhancements or remarks
273   Change History
274   Who             When            What
275 
276   (reverse chronological order - newest change first)
277   ***************************************************************/
278 
279     CURSOR cur_rowid IS
280       SELECT   rowid
281       FROM     igs_ps_faclty_disp
282       WHERE    person_id = x_person_id ;
283 
284     lv_rowid cur_rowid%RowType;
285 
286   BEGIN
287 
288     Open cur_rowid;
289     Fetch cur_rowid INTO lv_rowid;
290     IF (cur_rowid%FOUND) THEN
291       Close cur_rowid;
292       Fnd_Message.Set_Name ('IGS', 'IGS_PS_FDS_PE_FK');
293       IGS_GE_MSG_STACK.ADD;
294       App_Exception.Raise_Exception;
295       Return;
296     END IF;
297     Close cur_rowid;
298 
299   END Get_FK_Igs_Pe_Person;
300 
301 
302     PROCEDURE Get_FK_Igs_Ps_Unit_Ver (
303     x_displn_unit_cd  IN VARCHAR2
304     ) AS
305 
306   /*************************************************************
307   Created By :ssuri
308   Date Created By :11-MAY-2000
309   Purpose :NEW TABLE
310   Know limitations, enhancements or remarks
311   Change History
312   Who             When            What
313 
314   (reverse chronological order - newest change first)
315   ***************************************************************/
316 
317     CURSOR cur_rowid IS
318       SELECT   rowid
319       FROM     igs_ps_faclty_disp
320       WHERE    displn_unit_cd = x_displn_unit_cd
321       AND      displn_unit_type='UNIT'	;
322 
323     lv_rowid cur_rowid%RowType;
324 
325   BEGIN
326 
327     Open cur_rowid;
328     Fetch cur_rowid INTO lv_rowid;
329     IF (cur_rowid%FOUND) THEN
330       Close cur_rowid;
331       Fnd_Message.Set_Name ('IGS', 'IGS_PS_FDS_UV_FK');
332       IGS_GE_MSG_STACK.ADD;
333       App_Exception.Raise_Exception;
334       Return;
335     END IF;
336     Close cur_rowid;
337 
338   END Get_FK_Igs_Ps_Unit_Ver;
339 
340   PROCEDURE Before_DML (
341     p_action IN VARCHAR2,
342     x_rowid IN VARCHAR2 DEFAULT NULL,
343     x_displn_unit_id IN NUMBER DEFAULT NULL,
344     x_displn_unit_type IN VARCHAR2 DEFAULT NULL,
345     x_person_id IN NUMBER DEFAULT NULL,
346     x_displn_unit_cd IN VARCHAR2 DEFAULT NULL,
347     x_creation_date IN DATE DEFAULT NULL,
348     x_created_by IN NUMBER DEFAULT NULL,
349     x_last_update_date IN DATE DEFAULT NULL,
350     x_last_updated_by IN NUMBER DEFAULT NULL,
351     x_last_update_login IN NUMBER DEFAULT NULL
352   ) AS
353   /*************************************************************
354   Created By :ssuri
355   Date Created By :11-MAY-2000
356   Purpose :NEW TABLE
357   Know limitations, enhancements or remarks
358   Change History
359   Who             When            What
360 
361   (reverse chronological order - newest change first)
362   ***************************************************************/
363 
364   BEGIN
365 
366     Set_Column_Values (
367       p_action,
368       x_rowid,
369       x_displn_unit_id,
370       x_displn_unit_type,
371       x_person_id,
372       x_displn_unit_cd,
373       x_creation_date,
374       x_created_by,
375       x_last_update_date,
376       x_last_updated_by,
377       x_last_update_login
378     );
379 
380     IF (p_action = 'INSERT') THEN
381       -- Call all the procedures related to Before Insert.
382       Null;
383 	     IF Get_Pk_For_Validation(
384     		new_references.displn_unit_id)  THEN
385 	       Fnd_Message.Set_name('IGS','IGS_GE_RECORD_ALREADY_EXISTS');
386       IGS_GE_MSG_STACK.ADD;
387 	       App_Exception.Raise_Exception;
388 	     END IF;
389       Check_Uniqueness;
390       Check_Constraints;
391       Check_Parent_Existance;
392     ELSIF (p_action = 'UPDATE') THEN
393       -- Call all the procedures related to Before Update.
394       Null;
395       Check_Uniqueness;
396       Check_Constraints;
397       Check_Parent_Existance;
398     ELSIF (p_action = 'DELETE') THEN
399       -- Call all the procedures related to Before Delete.
400       Null;
401     ELSIF (p_action = 'VALIDATE_INSERT') THEN
402 	 -- Call all the procedures related to Before Insert.
403       IF Get_PK_For_Validation (
404     		new_references.displn_unit_id)  THEN
405 	       Fnd_Message.Set_name('IGS','IGS_GE_RECORD_ALREADY_EXISTS');
406       IGS_GE_MSG_STACK.ADD;
407 	       App_Exception.Raise_Exception;
408 	     END IF;
409       Check_Uniqueness;
410       Check_Constraints;
411     ELSIF (p_action = 'VALIDATE_UPDATE') THEN
412       Check_Uniqueness;
413       Check_Constraints;
414     ELSIF (p_action = 'VALIDATE_DELETE') THEN
415       Null;
416     END IF;
417 
418   END Before_DML;
419 
420   PROCEDURE After_DML (
421     p_action IN VARCHAR2,
422     x_rowid IN VARCHAR2
423   ) IS
424   /*************************************************************
425   Created By :ssuri
426   Date Created By :11-MAY-2000
427   Purpose :NEW TABLE
428   Know limitations, enhancements or remarks
429   Change History
430   Who             When            What
431 
432   (reverse chronological order - newest change first)
433   ***************************************************************/
434 
435   BEGIN
436 
437     l_rowid := x_rowid;
438 
439     IF (p_action = 'INSERT') THEN
440       -- Call all the procedures related to After Insert.
441       Null;
442     ELSIF (p_action = 'UPDATE') THEN
443       -- Call all the procedures related to After Update.
444       Null;
445     ELSIF (p_action = 'DELETE') THEN
446       -- Call all the procedures related to After Delete.
447       Null;
448     END IF;
449 
450        l_rowid := null;
451   END After_DML;
452 
453  procedure INSERT_ROW (
454       X_ROWID in out NOCOPY VARCHAR2,
455        x_DISPLN_UNIT_ID IN OUT NOCOPY NUMBER,
456        x_DISPLN_UNIT_TYPE IN VARCHAR2,
457        x_PERSON_ID IN NUMBER,
458        x_DISPLN_UNIT_CD IN VARCHAR2,
459       X_MODE in VARCHAR2 default 'R'
460   ) AS
461   /*************************************************************
462   Created By :ssuri
463   Date Created By :11-MAY-2000
464   Purpose :NEW TABLE
465   Know limitations, enhancements or remarks
466   Change History
467   Who             When            What
468 
469   (reverse chronological order - newest change first)
470   ***************************************************************/
471 
472     cursor C is select ROWID from IGS_PS_FACLTY_DISP
473              where                 DISPLN_UNIT_ID= X_DISPLN_UNIT_ID
474 ;
475      X_LAST_UPDATE_DATE DATE ;
476      X_LAST_UPDATED_BY NUMBER ;
477      X_LAST_UPDATE_LOGIN NUMBER ;
478  begin
479      X_LAST_UPDATE_DATE := SYSDATE;
480       if(X_MODE = 'I') then
481         X_LAST_UPDATED_BY := 1;
482         X_LAST_UPDATE_LOGIN := 0;
483          elsif (X_MODE IN ('R', 'S')) then
484                X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
485             if X_LAST_UPDATED_BY is NULL then
486                 X_LAST_UPDATED_BY := -1;
487             end if;
488             X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
489          if X_LAST_UPDATE_LOGIN is NULL then
490             X_LAST_UPDATE_LOGIN := -1;
491           end if;
492        else
493         FND_MESSAGE.SET_NAME( 'FND', 'SYSTEM-INVALID ARGS');
494       IGS_GE_MSG_STACK.ADD;
495           app_exception.raise_exception;
496        end if;
497        SELECT IGS_PS_DISPLN_UNIT_CD_S.nextval into x_DISPLN_UNIT_ID FROM dual;
498    Before_DML(
499  		p_action=>'INSERT',
500  		x_rowid=>X_ROWID,
501  	       x_displn_unit_id=>X_DISPLN_UNIT_ID,
502  	       x_displn_unit_type=>X_DISPLN_UNIT_TYPE,
503  	       x_person_id=>X_PERSON_ID,
504  	       x_displn_unit_cd=>X_DISPLN_UNIT_CD,
505 	       x_creation_date=>X_LAST_UPDATE_DATE,
506 	       x_created_by=>X_LAST_UPDATED_BY,
507 	       x_last_update_date=>X_LAST_UPDATE_DATE,
508 	       x_last_updated_by=>X_LAST_UPDATED_BY,
509 	       x_last_update_login=>X_LAST_UPDATE_LOGIN);
510       IF (x_mode = 'S') THEN
511     igs_sc_gen_001.set_ctx('R');
512   END IF;
513  insert into IGS_PS_FACLTY_DISP (
514 		DISPLN_UNIT_ID
515 		,DISPLN_UNIT_TYPE
516 		,PERSON_ID
517 		,DISPLN_UNIT_CD
518 	        ,CREATION_DATE
519 		,CREATED_BY
520 		,LAST_UPDATE_DATE
521 		,LAST_UPDATED_BY
522 		,LAST_UPDATE_LOGIN
523         ) values  (
524 	        NEW_REFERENCES.DISPLN_UNIT_ID
525 	        ,NEW_REFERENCES.DISPLN_UNIT_TYPE
526 	        ,NEW_REFERENCES.PERSON_ID
527 	        ,NEW_REFERENCES.DISPLN_UNIT_CD
528 	        ,X_LAST_UPDATE_DATE
529 		,X_LAST_UPDATED_BY
530 		,X_LAST_UPDATE_DATE
531 		,X_LAST_UPDATED_BY
532 		,X_LAST_UPDATE_LOGIN
533 );
534  IF (x_mode = 'S') THEN
535     igs_sc_gen_001.unset_ctx('R');
536   END IF;
537 
538 		open c;
539 		 fetch c into X_ROWID;
540  		if (c%notfound) then
541 		close c;
542  	     raise no_data_found;
543 		end if;
544  		close c;
545     After_DML (
546 		p_action => 'INSERT' ,
547 		x_rowid => X_ROWID );
548 EXCEPTION
549   WHEN OTHERS THEN
550     IF (SQLCODE IN (-28115, -28113, -28111)) THEN
551       fnd_message.set_name ('IGS', 'IGS_SC_POLICY_EXCEPTION');
552       fnd_message.set_token ('ERR_CD', SQLCODE);
553       igs_ge_msg_stack.add;
554       igs_sc_gen_001.unset_ctx('R');
555       app_exception.raise_exception;
556     ELSE
557       igs_sc_gen_001.unset_ctx('R');
558       RAISE;
559     END IF;
560 
561 end INSERT_ROW;
562  procedure LOCK_ROW (
563       X_ROWID in  VARCHAR2,
564        x_DISPLN_UNIT_ID IN NUMBER,
565        x_DISPLN_UNIT_TYPE IN VARCHAR2,
566        x_PERSON_ID IN NUMBER,
567        x_DISPLN_UNIT_CD IN VARCHAR2  ) AS
568   /*************************************************************
569   Created By :ssuri
570   Date Created By :11-MAY-2000
571   Purpose :NEW TABLE
572   Know limitations, enhancements or remarks
573   Change History
574   Who             When            What
575 
576   (reverse chronological order - newest change first)
577   ***************************************************************/
578 
579    cursor c1 is select
580       DISPLN_UNIT_TYPE
581 ,      PERSON_ID
582 ,      DISPLN_UNIT_CD
583     from IGS_PS_FACLTY_DISP
584     where ROWID = X_ROWID
585     for update nowait;
586      tlinfo c1%rowtype;
587 begin
588   open c1;
589   fetch c1 into tlinfo;
590   if (c1%notfound) then
591     fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
592       IGS_GE_MSG_STACK.ADD;
593     close c1;
594     app_exception.raise_exception;
595     return;
596   end if;
597   close c1;
598 if ( (  tlinfo.DISPLN_UNIT_TYPE = X_DISPLN_UNIT_TYPE)
599   AND (tlinfo.PERSON_ID = X_PERSON_ID)
600   AND (tlinfo.DISPLN_UNIT_CD = X_DISPLN_UNIT_CD)
601   ) then
602     null;
603   else
604     fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
605       IGS_GE_MSG_STACK.ADD;
606     app_exception.raise_exception;
607   end if;
608   return;
609 end LOCK_ROW;
610  Procedure UPDATE_ROW (
611       X_ROWID in  VARCHAR2,
612        x_DISPLN_UNIT_ID IN NUMBER,
613        x_DISPLN_UNIT_TYPE IN VARCHAR2,
614        x_PERSON_ID IN NUMBER,
615        x_DISPLN_UNIT_CD IN VARCHAR2,
616       X_MODE in VARCHAR2 default 'R'
617   ) AS
618   /*************************************************************
619   Created By :ssuri
620   Date Created By :11-MAY-2000
621   Purpose :NEW TABLE
622   Know limitations, enhancements or remarks
623   Change History
624   Who             When            What
625 
626   (reverse chronological order - newest change first)
627   ***************************************************************/
628 
629      X_LAST_UPDATE_DATE DATE ;
630      X_LAST_UPDATED_BY NUMBER ;
631      X_LAST_UPDATE_LOGIN NUMBER ;
632  begin
633      X_LAST_UPDATE_DATE := SYSDATE;
634       if(X_MODE = 'I') then
635         X_LAST_UPDATED_BY := 1;
636         X_LAST_UPDATE_LOGIN := 0;
637          elsif (X_MODE IN ('R', 'S')) then
638                X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
639             if X_LAST_UPDATED_BY is NULL then
640                 X_LAST_UPDATED_BY := -1;
641             end if;
642             X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
643          if X_LAST_UPDATE_LOGIN is NULL then
644             X_LAST_UPDATE_LOGIN := -1;
645           end if;
646        else
647         FND_MESSAGE.SET_NAME( 'FND', 'SYSTEM-INVALID ARGS');
648       IGS_GE_MSG_STACK.ADD;
649           app_exception.raise_exception;
650        end if;
651    Before_DML(
652  		p_action=>'UPDATE',
653  		x_rowid=>X_ROWID,
654  	       x_displn_unit_id=>X_DISPLN_UNIT_ID,
655  	       x_displn_unit_type=>X_DISPLN_UNIT_TYPE,
656  	       x_person_id=>X_PERSON_ID,
657  	       x_displn_unit_cd=>X_DISPLN_UNIT_CD,
658 	       x_creation_date=>X_LAST_UPDATE_DATE,
659 	       x_created_by=>X_LAST_UPDATED_BY,
660 	       x_last_update_date=>X_LAST_UPDATE_DATE,
661 	       x_last_updated_by=>X_LAST_UPDATED_BY,
662 	       x_last_update_login=>X_LAST_UPDATE_LOGIN);
663     IF (x_mode = 'S') THEN
664     igs_sc_gen_001.set_ctx('R');
665   END IF;
666  update IGS_PS_FACLTY_DISP set
667       DISPLN_UNIT_TYPE =  NEW_REFERENCES.DISPLN_UNIT_TYPE,
668       PERSON_ID =  NEW_REFERENCES.PERSON_ID,
669       DISPLN_UNIT_CD =  NEW_REFERENCES.DISPLN_UNIT_CD,
670 	LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
671 	LAST_UPDATED_BY = X_LAST_UPDATED_BY,
672 	LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
673 	  where ROWID = X_ROWID;
674 	if (sql%notfound) then
675      fnd_message.set_name ('IGS', 'IGS_SC_POLICY_UPD_DEL_EXCEP');
676      igs_ge_msg_stack.add;
677      igs_sc_gen_001.unset_ctx('R');
678      app_exception.raise_exception;
679 	end if;
680  IF (x_mode = 'S') THEN
681     igs_sc_gen_001.unset_ctx('R');
682   END IF;
683 
684 
685  After_DML (
686 	p_action => 'UPDATE' ,
687 	x_rowid => X_ROWID
688 	);
689 EXCEPTION
690   WHEN OTHERS THEN
691     IF (SQLCODE = (-28115)) THEN
692       fnd_message.set_name ('IGS', 'IGS_SC_UPD_POLICY_EXCP');
693       fnd_message.set_token ('ERR_CD', SQLCODE);
694       igs_ge_msg_stack.add;
695       igs_sc_gen_001.unset_ctx('R');
696       app_exception.raise_exception;
697     ELSE
698       igs_sc_gen_001.unset_ctx('R');
699       RAISE;
700     END IF;
701 
702 end UPDATE_ROW;
703  procedure ADD_ROW (
704       X_ROWID in out NOCOPY VARCHAR2,
705        x_DISPLN_UNIT_ID IN OUT NOCOPY NUMBER,
706        x_DISPLN_UNIT_TYPE IN VARCHAR2,
707        x_PERSON_ID IN NUMBER,
708        x_DISPLN_UNIT_CD IN VARCHAR2,
709       X_MODE in VARCHAR2 default 'R'
710   ) AS
711   /*************************************************************
712   Created By :ssuri
713   Date Created By :11-MAY-2000
714   Purpose :NEW TABLE
715   Know limitations, enhancements or remarks
716   Change History
717   Who             When            What
718 
719   (reverse chronological order - newest change first)
720   ***************************************************************/
721 
722     cursor c1 is select ROWID from IGS_PS_FACLTY_DISP
723              where     DISPLN_UNIT_ID= X_DISPLN_UNIT_ID
724 ;
725 begin
726 	open c1;
727 		fetch c1 into X_ROWID;
728 	if (c1%notfound) then
729 	close c1;
730     INSERT_ROW (
731       X_ROWID,
732        X_DISPLN_UNIT_ID,
733        X_DISPLN_UNIT_TYPE,
734        X_PERSON_ID,
735        X_DISPLN_UNIT_CD,
736       X_MODE );
737      return;
738 	end if;
739 	   close c1;
740 UPDATE_ROW (
741       X_ROWID,
742        X_DISPLN_UNIT_ID,
743        X_DISPLN_UNIT_TYPE,
744        X_PERSON_ID,
745        X_DISPLN_UNIT_CD,
746       X_MODE );
747 end ADD_ROW;
748 procedure DELETE_ROW (
749   X_ROWID in VARCHAR2,
750   x_mode IN VARCHAR2
751 ) AS
752   /*************************************************************
753   Created By :ssuri
754   Date Created By :11-MAY-2000
755   Purpose :NEW TABLE
756   Know limitations, enhancements or remarks
757   Change History
758   Who             When            What
759 
760   (reverse chronological order - newest change first)
761   ***************************************************************/
762 
763 begin
764 Before_DML (
765 p_action => 'DELETE',
766 x_rowid => X_ROWID
767 );
768   IF (x_mode = 'S') THEN
769     igs_sc_gen_001.set_ctx('R');
770   END IF;
771  delete from IGS_PS_FACLTY_DISP
772  where ROWID = X_ROWID;
773   if (sql%notfound) then
774      fnd_message.set_name ('IGS', 'IGS_SC_POLICY_UPD_DEL_EXCEP');
775      igs_ge_msg_stack.add;
776      igs_sc_gen_001.unset_ctx('R');
777      app_exception.raise_exception;
778  end if;
779  IF (x_mode = 'S') THEN
780     igs_sc_gen_001.unset_ctx('R');
781   END IF;
782 
783 After_DML (
784  p_action => 'DELETE',
785  x_rowid => X_ROWID
786 );
787 end DELETE_ROW;
788 END igs_ps_faclty_disp_pkg;