DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGS_AD_INTERFACE_CTL_PKG

Source


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