DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGS_AD_IMP_NEAR_MTCH_PKG

Source


1 PACKAGE BODY igs_ad_imp_near_mtch_pkg AS
2 /* $Header: IGSAIB2B.pls 115.19 2003/05/22 13:17:56 npalanis ship $ */
3   l_rowid VARCHAR2(25);
4   old_references igs_ad_imp_near_mtch_all%RowType;
5   new_references igs_ad_imp_near_mtch_all%RowType;
6 
7   PROCEDURE Set_Column_Values (
8     p_action IN VARCHAR2,
9     x_rowid IN VARCHAR2 DEFAULT NULL,
10     x_org_id IN NUMBER DEFAULT NULL,
11     x_near_mtch_id IN NUMBER DEFAULT NULL,
12     x_interface_id IN NUMBER DEFAULT NULL,
13     x_person_id IN NUMBER DEFAULT NULL,
14     x_match_ind IN VARCHAR2 DEFAULT NULL,
15     x_action IN VARCHAR2 DEFAULT NULL,
16     x_addr_type IN VARCHAR2 DEFAULT NULL,
17     x_person_id_type IN VARCHAR2 DEFAULT NULL,
18     x_match_set_id IN NUMBER DEFAULT NULL,
19     x_creation_date IN DATE DEFAULT NULL,
20     x_created_by IN NUMBER DEFAULT NULL,
21     x_last_update_date IN DATE DEFAULT NULL,
22     x_last_updated_by IN NUMBER DEFAULT NULL,
23     x_last_update_login IN NUMBER DEFAULT NULL,
24     x_party_site_id IN NUMBER DEFAULT NULL ,
25     X_INTERFACE_RELATIONS_ID IN NUMBER DEFAULT NULL
26   ) AS
27 
28   /*************************************************************
29   Created By : amuthu
30   Date Created On : 15-May-2000
31   Purpose :
32   Know limitations, enhancements or remarks
33   Change History
34   Who             When            What
35 
36   (reverse chronological order - newest change first)
37   ***************************************************************/
38 
39     CURSOR cur_old_ref_values IS
40       SELECT   *
41       FROM     IGS_AD_IMP_NEAR_MTCH_ALL
42       WHERE    rowid = x_rowid;
43 
44   BEGIN
45 
46     l_rowid := x_rowid;
47 
48     -- Code for setting the Old and New Reference Values.
49     -- Populate Old Values.
50     Open cur_old_ref_values;
51     Fetch cur_old_ref_values INTO old_references;
52     IF (cur_old_ref_values%NOTFOUND) AND (p_action NOT IN ('INSERT','VALIDATE_INSERT')) THEN
53       Close cur_old_ref_values;
54       Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
55       IGS_GE_MSG_STACK.ADD;
56       App_Exception.Raise_Exception;
57       Return;
58     END IF;
59     Close cur_old_ref_values;
60 
61     -- Populate New Values.
62     new_references.near_mtch_id := x_near_mtch_id;
63     new_references.org_id := x_org_id;
64     new_references.interface_id := x_interface_id;
65     new_references.person_id := x_person_id;
66     new_references.match_ind := x_match_ind;
67     new_references.action := x_action;
68     new_references.addr_type := x_addr_type;
69     new_references.person_id_type := x_person_id_type;
70     new_references.match_set_id := x_match_set_id;
71     IF (p_action = 'UPDATE') THEN
72       new_references.creation_date := old_references.creation_date;
73       new_references.created_by := old_references.created_by;
74     ELSE
75       new_references.creation_date := x_creation_date;
76       new_references.created_by := x_created_by;
77     END IF;
78     new_references.last_update_date := x_last_update_date;
79     new_references.last_updated_by := x_last_updated_by;
80     new_references.last_update_login := x_last_update_login;
81     new_references.party_site_id := x_party_site_id;
82     new_references.interface_relations_id := x_interface_relations_id;
83 
84   END Set_Column_Values;
85 
86   PROCEDURE Check_Constraints (
87 		 Column_Name IN VARCHAR2  DEFAULT NULL,
88 		 Column_Value IN VARCHAR2  DEFAULT NULL ) AS
89   /*************************************************************
90   Created By : amuthu
91   Date Created On : 15-May-2000
92   Purpose :
93   Know limitations, enhancements or remarks
94   Change History
95   Who             When            What
96 
97   (reverse chronological order - newest change first)
98   ***************************************************************/
99 
100   BEGIN
101 
102     IF column_name IS NULL THEN
103       NULL;
104     ELSIF  UPPER(column_name) = 'MATCH_IND'  THEN
105       new_references.match_ind := column_value;
106     ELSIF  UPPER(column_name) = 'ACTION'  THEN
107       new_references.action := column_value;
108     END IF;
109 
110 
111 
112   -- The following code checks for check constraints on the Columns.
113     IF Upper(Column_Name) = 'ACTION' OR
114       Column_Name IS NULL THEN
115       IF NOT (new_references.action IN ('I','D'))  THEN
116 	Fnd_Message.Set_Name('IGS','IGS_GE_INVALID_VALUE');
117 	IGS_GE_MSG_STACK.ADD;
118         App_Exception.Raise_Exception;
119       END IF;
120     END IF;
121 
122 
123   END Check_Constraints;
124 
125   PROCEDURE Check_Parent_Existance AS
126   /*************************************************************
127   Created By : amuthu
128   Date Created On : 15-May-2000
129   Purpose :
130   Know limitations, enhancements or remarks
131   Change History
132   Who             When            What
133 
134   (reverse chronological order - newest change first)
135   ***************************************************************/
136 
137   BEGIN
138 
139     IF (((old_references.interface_id = new_references.interface_id)) OR
140         ((new_references.interface_id IS NULL))) THEN
141       NULL;
142     ELSIF NOT Igs_Ad_Interface_Pkg.Get_PK_For_Validation (
143         		new_references.interface_id
144 							  )  THEN
145       Fnd_Message.Set_Name ('FND','FORM_RECORD_DELETED');
146       IGS_GE_MSG_STACK.ADD;
147       App_Exception.Raise_Exception;
148     END IF;
149 
150     IF (((old_references.person_id_type = new_references.person_id_type)) OR
151         ((new_references.person_id_type IS NULL))) THEN
152       NULL;
153     ELSIF NOT Igs_Pe_Person_Id_Typ_Pkg.Get_PK_For_Validation (
154         		new_references.person_id_type
155         )  THEN
156       Fnd_Message.Set_Name ('FND','FORM_RECORD_DELETED');
157       IGS_GE_MSG_STACK.ADD;
158       App_Exception.Raise_Exception;
159     END IF;
160 
161 /*    IF (((old_references.addr_type = new_references.addr_type)) OR
162         ((new_references.addr_type IS NULL))) THEN
163       NULL;
164     ELSIF NOT Igs_Co_Addr_Type_Pkg.Get_PK_For_Validation (
165         		new_references.addr_type
166         )  THEN
167       Fnd_Message.Set_Name ('FND','FORM_RECORD_DELETED');
168       IGS_GE_MSG_STACK.ADD;
169       App_Exception.Raise_Exception;
170     END IF;
171 */
172     IF (((old_references.match_set_id = new_references.match_set_id)) OR
173         ((new_references.match_set_id IS NULL))) THEN
174       NULL;
175     ELSIF NOT Igs_Pe_Match_Sets_Pkg.Get_PK_For_Validation (
176         		new_references.match_set_id
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 
183     IF (((old_references.person_id = new_references.person_id)) OR
184         ((new_references.person_id IS NULL))) THEN
185       NULL;
186     ELSIF NOT Igs_Pe_Person_Pkg.Get_PK_For_Validation (
187         		new_references.person_id
188         )  THEN
189       Fnd_Message.Set_Name ('FND','FORM_RECORD_DELETED');
190       IGS_GE_MSG_STACK.ADD;
191       App_Exception.Raise_Exception;
192     END IF;
193 
194   END Check_Parent_Existance;
195 
196   FUNCTION Get_PK_For_Validation (
197     x_near_mtch_id IN NUMBER
198     ) RETURN BOOLEAN AS
199 
200   /*************************************************************
201   Created By : amuthu
202   Date Created On : 15-May-2000
203   Purpose :
204   Know limitations, enhancements or remarks
205   Change History
206   Who             When            What
207 
208   (reverse chronological order - newest change first)
209   ***************************************************************/
210 
211     CURSOR cur_rowid IS
212       SELECT   rowid
213       FROM     igs_ad_imp_near_mtch_all
214       WHERE    near_mtch_id = x_near_mtch_id
215       FOR UPDATE NOWAIT;
216 
217     lv_rowid cur_rowid%RowType;
218 
219   BEGIN
220     Open cur_rowid;
221     Fetch cur_rowid INTO lv_rowid;
222     IF (cur_rowid%FOUND) THEN
223       Close cur_rowid;
224       Return(TRUE);
225     ELSE
226       Close cur_rowid;
227       Return(FALSE);
228     END IF;
229   END Get_PK_For_Validation;
230 
231 
232   PROCEDURE Get_FK_Igs_Ad_Interface (
233     x_interface_id IN NUMBER
234     ) AS
235 
236   /*************************************************************
237   Created By : amuthu
238   Date Created On : 15-May-2000
239   Purpose :
240   Know limitations, enhancements or remarks
241   Change History
242   Who             When            What
243 
244   (reverse chronological order - newest change first)
245   ***************************************************************/
246 
247     CURSOR cur_rowid IS
248       SELECT   rowid
249       FROM     igs_ad_imp_near_mtch_all
250       WHERE    interface_id = x_interface_id ;
251 
252     lv_rowid cur_rowid%RowType;
253 
254   BEGIN
255 
256     Open cur_rowid;
257     Fetch cur_rowid INTO lv_rowid;
258     IF (cur_rowid%FOUND) THEN
259       Close cur_rowid;
260       Fnd_Message.Set_Name ('IGS', 'IGS_AD_AINM_AINT_FK');
261       IGS_GE_MSG_STACK.ADD;
262       App_Exception.Raise_Exception;
263       Return;
264     END IF;
265     Close cur_rowid;
266 
267   END Get_FK_Igs_Ad_Interface;
268 
269   PROCEDURE Get_FK_Igs_Co_Addr_Type (
270     x_addr_type IN VARCHAR2
271     ) AS
272 
273   /*************************************************************
274   Created By : amuthu
275   Date Created On : 15-May-2000
276   Purpose :
277   Know limitations, enhancements or remarks
278   Change History
279   Who             When            What
280 
281   (reverse chronological order - newest change first)
282   ***************************************************************/
283 
284     CURSOR cur_rowid IS
285       SELECT   rowid
286       FROM     igs_ad_imp_near_mtch_all
287       WHERE    addr_type = x_addr_type ;
288 
289     lv_rowid cur_rowid%RowType;
290 
291   BEGIN
292 
293     Open cur_rowid;
294     Fetch cur_rowid INTO lv_rowid;
295     IF (cur_rowid%FOUND) THEN
296       Close cur_rowid;
297       Fnd_Message.Set_Name ('IGS', 'IGS_AD_AINM_ADT_FK');
298       IGS_GE_MSG_STACK.ADD;
299       App_Exception.Raise_Exception;
300       Return;
301     END IF;
302     Close cur_rowid;
303 
304   END Get_FK_Igs_Co_Addr_Type;
305 
306   PROCEDURE Get_FK_Igs_Pe_Match_Sets (
307     x_match_set_id IN NUMBER
308     ) AS
309 
310   /*************************************************************
311   Created By : amuthu
312   Date Created On : 15-May-2000
313   Purpose :
314   Know limitations, enhancements or remarks
315   Change History
316   Who             When            What
317 
318   (reverse chronological order - newest change first)
319   ***************************************************************/
320 
321     CURSOR cur_rowid IS
322       SELECT   rowid
323       FROM     igs_ad_imp_near_mtch_all
324       WHERE    match_set_id = x_match_set_id ;
325 
326     lv_rowid cur_rowid%RowType;
327 
328   BEGIN
329 
330     Open cur_rowid;
331     Fetch cur_rowid INTO lv_rowid;
332     IF (cur_rowid%FOUND) THEN
333       Close cur_rowid;
334       Fnd_Message.Set_Name ('IGS', 'IGS_AD_AINM_PMS_FK');
335       IGS_GE_MSG_STACK.ADD;
336       App_Exception.Raise_Exception;
337       Return;
338     END IF;
339     Close cur_rowid;
340 
341   END Get_FK_Igs_Pe_Match_Sets;
342 
343   PROCEDURE Get_FK_Igs_Pe_Person (
344     x_person_id IN NUMBER
345     ) AS
346 
347   /*************************************************************
348   Created By : amuthu
349   Date Created On : 15-May-2000
350   Purpose :
351   Know limitations, enhancements or remarks
352   Change History
353   Who             When            What
354 
355   (reverse chronological order - newest change first)
356   ***************************************************************/
357 
358     CURSOR cur_rowid IS
359       SELECT   rowid
360       FROM     igs_ad_imp_near_mtch_all
361       WHERE    person_id = x_person_id ;
362 
363     lv_rowid cur_rowid%RowType;
364 
365   BEGIN
366 
367     Open cur_rowid;
368     Fetch cur_rowid INTO lv_rowid;
369     IF (cur_rowid%FOUND) THEN
370       Close cur_rowid;
371       Fnd_Message.Set_Name ('IGS', 'IGS_AD_AINM_PE_FK');
372       IGS_GE_MSG_STACK.ADD;
373       App_Exception.Raise_Exception;
374       Return;
375     END IF;
376     Close cur_rowid;
377 
378   END Get_FK_Igs_Pe_Person;
379 
380   PROCEDURE Before_DML (
381     p_action IN VARCHAR2,
382     x_rowid IN VARCHAR2 DEFAULT NULL,
383     x_org_id IN NUMBER DEFAULT NULL,
384     x_near_mtch_id IN NUMBER DEFAULT NULL,
385     x_interface_id IN NUMBER DEFAULT NULL,
386     x_person_id IN NUMBER DEFAULT NULL,
387     x_match_ind IN VARCHAR2 DEFAULT NULL,
388     x_action IN VARCHAR2 DEFAULT NULL,
389     x_addr_type IN VARCHAR2 DEFAULT NULL,
390     x_person_id_type IN VARCHAR2 DEFAULT NULL,
391     x_match_set_id IN NUMBER DEFAULT NULL,
392     x_creation_date IN DATE DEFAULT NULL,
393     x_created_by IN NUMBER DEFAULT NULL,
394     x_last_update_date IN DATE DEFAULT NULL,
395     x_last_updated_by IN NUMBER DEFAULT NULL,
396     x_last_update_login IN NUMBER DEFAULT NULL,
397     x_party_site_id IN NUMBER DEFAULT NULL,
398     X_INTERFACE_RELATIONS_ID IN NUMBER DEFAULT NULL
399   ) AS
400   /*************************************************************
401   Created By : amuthu
402   Date Created On : 15-May-2000
403   Purpose :
404   Know limitations, enhancements or remarks
405   Change History
406   Who             When            What
407 
408   (reverse chronological order - newest change first)
412 
409   ***************************************************************/
410 
411   BEGIN
413     Set_Column_Values (
414       p_action,
415       x_rowid,
416       x_org_id,
417       x_near_mtch_id,
418       x_interface_id,
419       x_person_id,
420       x_match_ind,
421       x_action,
422       x_addr_type,
423       x_person_id_type,
424       x_match_set_id,
425       x_creation_date,
426       x_created_by,
427       x_last_update_date,
428       x_last_updated_by,
429       x_last_update_login,
430       x_party_site_id,
431       x_interface_relations_id
432 
433     );
434 
435     IF (p_action = 'INSERT') THEN
436       -- Call all the procedures related to Before Insert.
437       IF Get_Pk_For_Validation(new_references.near_mtch_id)  THEN
438         Fnd_Message.Set_name('IGS','IGS_GE_MULTI_ORG_DUP_REC');
439 	IGS_GE_MSG_STACK.ADD;
440         App_Exception.Raise_Exception;
441       END IF;
442       Check_Constraints;
443       Check_Parent_Existance;
444     ELSIF (p_action = 'UPDATE') THEN
445       -- Call all the procedures related to Before Update.
446       Null;
447       Check_Constraints;
448       Check_Parent_Existance;
449     ELSIF (p_action = 'DELETE') THEN
450       -- Call all the procedures related to Before Delete.
451       Null;
452     ELSIF (p_action = 'VALIDATE_INSERT') THEN
453 	 -- Call all the procedures related to Before Insert.
454       IF Get_PK_For_Validation (
455     		new_references.near_mtch_id)  THEN
456         Fnd_Message.Set_name('IGS','IGS_GE_MULTI_ORG_DUP_REC');
457 	IGS_GE_MSG_STACK.ADD;
458 	App_Exception.Raise_Exception;
459       END IF;
460       Check_Constraints;
461     ELSIF (p_action = 'VALIDATE_UPDATE') THEN
462       Check_Constraints;
463     ELSIF (p_action = 'VALIDATE_DELETE') THEN
464       Null;
465     END IF;
466 
467   END Before_DML;
468 
469   PROCEDURE After_DML (
470     p_action IN VARCHAR2,
471     x_rowid IN VARCHAR2
472   ) IS
473   /*************************************************************
474   Created By : amuthu
475   Date Created On : 15-May-2000
476   Purpose :
477   Know limitations, enhancements or remarks
478   Change History
479   Who             When            What
480 
481   (reverse chronological order - newest change first)
482   ***************************************************************/
483 
484   BEGIN
485 
486     l_rowid := x_rowid;
487 
488     IF (p_action = 'INSERT') THEN
489       -- Call all the procedures related to After Insert.
490       Null;
491     ELSIF (p_action = 'UPDATE') THEN
492       -- Call all the procedures related to After Update.
493       Null;
494     ELSIF (p_action = 'DELETE') THEN
495       -- Call all the procedures related to After Delete.
496       Null;
497     END IF;
498 
499   END After_DML;
500 
501   procedure INSERT_ROW (
502     X_ROWID in out NOCOPY VARCHAR2,
503     X_ORG_ID in NUMBER,
504     x_NEAR_MTCH_ID IN OUT NOCOPY NUMBER,
505     x_INTERFACE_ID IN NUMBER,
506     x_PERSON_ID IN NUMBER,
507     x_MATCH_IND IN VARCHAR2,
508     x_ACTION IN VARCHAR2,
509     x_ADDR_TYPE IN VARCHAR2,
510     x_PERSON_ID_TYPE IN VARCHAR2,
511     x_MATCH_SET_ID IN NUMBER,
512     X_MODE in VARCHAR2 default 'R',
513     X_PARTY_SITE_ID IN NUMBER ,
514     X_INTERFACE_RELATIONS_ID IN NUMBER
515   ) AS
516   /*************************************************************
517   Created By : amuthu
518   Date Created On : 15-May-2000
519   Purpose :
520   Know limitations, enhancements or remarks
521   Change History
522   Who             When            What
523   sbaliga        12-feb-2002      Modified call to before_dml by assigning
524                                   igs_ge_gen_003.get_org_id to x_org_id as part of
525                                   SWCR006 build.
526 
527   (reverse chronological order - newest change first)
528   ***************************************************************/
529 
530     cursor C is select ROWID from IGS_AD_IMP_NEAR_MTCH_ALL
531               where NEAR_MTCH_ID= X_NEAR_MTCH_ID;
532     X_LAST_UPDATE_DATE DATE ;
533     X_LAST_UPDATED_BY NUMBER ;
534     X_LAST_UPDATE_LOGIN NUMBER ;
535     X_REQUEST_ID NUMBER;
536     X_PROGRAM_ID NUMBER;
537     X_PROGRAM_APPLICATION_ID NUMBER;
538     X_PROGRAM_UPDATE_DATE DATE;
539   begin
540     X_LAST_UPDATE_DATE := SYSDATE;
541     if(X_MODE = 'I') then
542       X_LAST_UPDATED_BY := 1;
543       X_LAST_UPDATE_LOGIN := 0;
544     elsif (X_MODE = 'R') then
545       X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
546       if X_LAST_UPDATED_BY is NULL then
547         X_LAST_UPDATED_BY := -1;
548       end if;
549       X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
550       if X_LAST_UPDATE_LOGIN is NULL then
551         X_LAST_UPDATE_LOGIN := -1;
552       end if;
553       X_REQUEST_ID := FND_GLOBAL.CONC_REQUEST_ID;
554       X_PROGRAM_ID := FND_GLOBAL.CONC_PROGRAM_ID;
555       X_PROGRAM_APPLICATION_ID := FND_GLOBAL.PROG_APPL_ID;
556       if (X_REQUEST_ID =  -1) then
557         X_REQUEST_ID := NULL;
558         X_PROGRAM_ID := NULL;
562         X_PROGRAM_UPDATE_DATE := SYSDATE;
559         X_PROGRAM_APPLICATION_ID := NULL;
560         X_PROGRAM_UPDATE_DATE := NULL;
561       else
563       end if;
564     else
565       FND_MESSAGE.SET_NAME( 'FND', 'SYSTEM-INVALID ARGS');
566       IGS_GE_MSG_STACK.ADD;
567       app_exception.raise_exception;
568     end if;
569 
570     X_NEAR_MTCH_ID := -1;
571     Before_DML(
572       p_action=>'INSERT',
573       x_org_id=>igs_ge_gen_003.get_org_id,
574       x_rowid=>X_ROWID,
575       x_near_mtch_id=>X_NEAR_MTCH_ID,
576       x_interface_id=>X_INTERFACE_ID,
577       x_person_id=>X_PERSON_ID,
578       x_match_ind=>X_MATCH_IND,
579       x_action=>X_ACTION,
580       x_addr_type=>X_ADDR_TYPE,
581       x_person_id_type=>X_PERSON_ID_TYPE,
582       x_match_set_id=>X_MATCH_SET_ID,
583       x_creation_date=>X_LAST_UPDATE_DATE,
584       x_created_by=>X_LAST_UPDATED_BY,
585       x_last_update_date=>X_LAST_UPDATE_DATE,
586       x_last_updated_by=>X_LAST_UPDATED_BY,
587       x_last_update_login=>X_LAST_UPDATE_LOGIN,
588       x_party_site_id => X_PARTY_SITE_ID,
589       x_interface_relations_id => X_INTERFACE_RELATIONS_ID);
590 
591     insert into IGS_AD_IMP_NEAR_MTCH_ALL (
592       NEAR_MTCH_ID
593       ,INTERFACE_ID
594       ,PERSON_ID
595       ,ORG_ID
596       ,MATCH_IND
597       ,ACTION
598       ,ADDR_TYPE
599       ,PERSON_ID_TYPE
600       ,MATCH_SET_ID
601       ,CREATION_DATE
602       ,CREATED_BY
603       ,LAST_UPDATE_DATE
604       ,LAST_UPDATED_BY
605       ,LAST_UPDATE_LOGIN
606       ,REQUEST_ID
607       ,PROGRAM_ID
608       ,PROGRAM_APPLICATION_ID
609       ,PROGRAM_UPDATE_DATE
610       ,PARTY_SITE_ID
611       ,INTERFACE_RELATIONS_ID
612 
613     ) values  (
614       IGS_AD_IMP_NEAR_MTCH_S.NEXTVAL
615       ,NEW_REFERENCES.INTERFACE_ID
616       ,NEW_REFERENCES.PERSON_ID
617       ,NEW_REFERENCES.ORG_ID
618       ,NEW_REFERENCES.MATCH_IND
619       ,NEW_REFERENCES.ACTION
620       ,NEW_REFERENCES.ADDR_TYPE
621       ,NEW_REFERENCES.PERSON_ID_TYPE
622       ,NEW_REFERENCES.MATCH_SET_ID
623       ,X_LAST_UPDATE_DATE
624       ,X_LAST_UPDATED_BY
625       ,X_LAST_UPDATE_DATE
626       ,X_LAST_UPDATED_BY
627       ,X_LAST_UPDATE_LOGIN
628       ,X_REQUEST_ID
629       ,X_PROGRAM_ID
630       ,X_PROGRAM_APPLICATION_ID
631       ,X_PROGRAM_UPDATE_DATE
632       ,NEW_REFERENCES.PARTY_SITE_ID
633       ,NEW_REFERENCES.INTERFACE_RELATIONS_ID )RETURNING NEAR_MTCH_ID INTO X_NEAR_MTCH_ID;
634 
635     open c;
636     fetch c into X_ROWID;
637     if (c%notfound) then
638       close c;
639       raise no_data_found;
640     end if;
641     close c;
642 
643     After_DML (
644       p_action => 'INSERT' ,
645       x_rowid => X_ROWID );
646 
647   end INSERT_ROW;
648 
649 
650   procedure LOCK_ROW (
651     X_ROWID in  VARCHAR2,
652     x_NEAR_MTCH_ID IN NUMBER,
653     x_INTERFACE_ID IN NUMBER,
654     x_PERSON_ID IN NUMBER,
655     x_MATCH_IND IN VARCHAR2,
656     x_ACTION IN VARCHAR2,
657     x_ADDR_TYPE IN VARCHAR2,
658     x_PERSON_ID_TYPE IN VARCHAR2,
659     x_MATCH_SET_ID IN NUMBER,
660     X_PARTY_SITE_ID IN NUMBER,
661     X_INTERFACE_RELATIONS_ID IN NUMBER  ) AS
662   /*************************************************************
663   Created By : amuthu
664   Date Created On : 15-May-2000
665   Purpose :
666   Know limitations, enhancements or remarks
667   Change History
668   Who             When            What
669 
670   (reverse chronological order - newest change first)
671   ***************************************************************/
672 
673     cursor c1 is select
674       INTERFACE_ID,
675       PERSON_ID,
676       MATCH_IND,
677       ACTION,
678       ADDR_TYPE,
679       PERSON_ID_TYPE,
680       MATCH_SET_ID,
681       PARTY_SITE_ID,
682       INTERFACE_RELATIONS_ID
683     from IGS_AD_IMP_NEAR_MTCH_ALL
684     where ROWID = X_ROWID
685     for update nowait;
686 
687     tlinfo c1%rowtype;
688   begin
689     open c1;
690     fetch c1 into tlinfo;
691     if (c1%notfound) then
692       fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
693       IGS_GE_MSG_STACK.ADD;
694       close c1;
695       app_exception.raise_exception;
696       return;
697     end if;
698     close c1;
699     if ( (  tlinfo.INTERFACE_ID = X_INTERFACE_ID)
700       AND (tlinfo.PERSON_ID = X_PERSON_ID)
701       AND ((tlinfo.MATCH_IND = X_MATCH_IND)
702       OR ((tlinfo.MATCH_IND is null)
703       AND (X_MATCH_IND is null)))
704       AND ((tlinfo.ACTION = X_ACTION)
705       OR ((tlinfo.ACTION is null)
706       AND (X_ACTION is null)))
707       AND (tlinfo.ADDR_TYPE = X_ADDR_TYPE OR (tlinfo.ADDR_TYPE IS NULL AND X_ADDR_TYPE IS NULL ))
708       AND (tlinfo.PERSON_ID_TYPE = X_PERSON_ID_TYPE OR (tlinfo.PERSON_ID_TYPE IS NULL AND X_PERSON_ID_TYPE IS NULL ) )
709       AND (tlinfo.MATCH_SET_ID = X_MATCH_SET_ID)
710       AND (tlinfo.PARTY_SITE_ID = X_PARTY_SITE_ID OR (tlinfo.PARTY_SITE_ID IS NULL AND X_PARTY_SITE_ID IS NULL ) )
714     else
711       AND (tlinfo.INTERFACE_RELATIONS_ID = X_INTERFACE_RELATIONS_ID OR (tlinfo.INTERFACE_RELATIONS_ID IS NULL AND X_INTERFACE_RELATIONS_ID IS NULL ) )
712     ) then
713       NULL;
715       fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
716       IGS_GE_MSG_STACK.ADD;
717       app_exception.raise_exception;
718     end if;
719     return;
720 
721   end LOCK_ROW;
722  Procedure UPDATE_ROW (
723    X_ROWID in  VARCHAR2,
724    x_NEAR_MTCH_ID IN NUMBER,
725    x_INTERFACE_ID IN NUMBER,
726    x_PERSON_ID IN NUMBER,
727    x_MATCH_IND IN VARCHAR2,
728    x_ACTION IN VARCHAR2,
729    x_ADDR_TYPE IN VARCHAR2,
730    x_PERSON_ID_TYPE IN VARCHAR2,
731    x_MATCH_SET_ID IN NUMBER,
732    X_MODE in VARCHAR2 default 'R',
733    X_PARTY_SITE_ID IN NUMBER  ,
734    X_INTERFACE_RELATIONS_ID IN NUMBER
735   ) AS
736   /*************************************************************
737   Created By : amuthu
738   Date Created On : 15-May-2000
739   Purpose :
740   Know limitations, enhancements or remarks
741   Change History
742   Who             When            What
743 
744   (reverse chronological order - newest change first)
745   ***************************************************************/
746 
747     X_LAST_UPDATE_DATE DATE ;
748     X_LAST_UPDATED_BY NUMBER ;
749     X_LAST_UPDATE_LOGIN NUMBER ;
750     X_REQUEST_ID NUMBER;
751     X_PROGRAM_ID NUMBER;
752     X_PROGRAM_APPLICATION_ID NUMBER;
753     X_PROGRAM_UPDATE_DATE DATE;
754   begin
755     X_LAST_UPDATE_DATE := SYSDATE;
756     if(X_MODE = 'I') then
757       X_LAST_UPDATED_BY := 1;
758       X_LAST_UPDATE_LOGIN := 0;
759     elsif (X_MODE = 'R') then
760       X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
761       if X_LAST_UPDATED_BY is NULL then
762         X_LAST_UPDATED_BY := -1;
763       end if;
764       X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
765       if X_LAST_UPDATE_LOGIN is NULL then
766         X_LAST_UPDATE_LOGIN := -1;
767       end if;
768     else
769       FND_MESSAGE.SET_NAME( 'FND', 'SYSTEM-INVALID ARGS');
770       IGS_GE_MSG_STACK.ADD;
771       app_exception.raise_exception;
772     end if;
773 
774     Before_DML(
775       p_action=>'UPDATE',
776       x_rowid=>X_ROWID,
777       x_near_mtch_id=>X_NEAR_MTCH_ID,
778       x_interface_id=>X_INTERFACE_ID,
779       x_person_id=>X_PERSON_ID,
780       x_match_ind=>X_MATCH_IND,
781       x_action=>X_ACTION,
782       x_addr_type=>X_ADDR_TYPE,
783       x_person_id_type=>X_PERSON_ID_TYPE,
784       x_match_set_id=>X_MATCH_SET_ID,
785       x_creation_date=>X_LAST_UPDATE_DATE,
786       x_created_by=>X_LAST_UPDATED_BY,
787       x_last_update_date=>X_LAST_UPDATE_DATE,
788       x_last_updated_by=>X_LAST_UPDATED_BY,
789       x_last_update_login=>X_LAST_UPDATE_LOGIN,
790       x_party_site_id => X_PARTY_SITE_ID,
791       x_interface_relations_id => X_INTERFACE_RELATIONS_ID);
792 
793     if (X_MODE = 'R') then
794       X_REQUEST_ID := FND_GLOBAL.CONC_REQUEST_ID;
795       X_PROGRAM_ID := FND_GLOBAL.CONC_PROGRAM_ID;
796       X_PROGRAM_APPLICATION_ID := FND_GLOBAL.PROG_APPL_ID;
797       if (X_REQUEST_ID = -1) then
798         X_REQUEST_ID := OLD_REFERENCES.REQUEST_ID;
799         X_PROGRAM_ID := OLD_REFERENCES. PROGRAM_ID;
800         X_PROGRAM_APPLICATION_ID := OLD_REFERENCES.PROGRAM_APPLICATION_ID;
801         X_PROGRAM_UPDATE_DATE := OLD_REFERENCES.PROGRAM_UPDATE_DATE;
802       else
803         X_PROGRAM_UPDATE_DATE := SYSDATE;
804       end if;
805     end if;
806 
807     update IGS_AD_IMP_NEAR_MTCH_ALL set
808       INTERFACE_ID =  NEW_REFERENCES.INTERFACE_ID,
809       PERSON_ID =  NEW_REFERENCES.PERSON_ID,
810       MATCH_IND =  NEW_REFERENCES.MATCH_IND,
811       ACTION =  NEW_REFERENCES.ACTION,
812       ADDR_TYPE =  NEW_REFERENCES.ADDR_TYPE,
813       PERSON_ID_TYPE =  NEW_REFERENCES.PERSON_ID_TYPE,
814       MATCH_SET_ID =  NEW_REFERENCES.MATCH_SET_ID,
815       LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
816       LAST_UPDATED_BY = X_LAST_UPDATED_BY,
817       LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
818       REQUEST_ID = X_REQUEST_ID,
819       PROGRAM_ID = X_PROGRAM_ID,
820       PROGRAM_APPLICATION_ID = PROGRAM_APPLICATION_ID,
821       PROGRAM_UPDATE_DATE = X_PROGRAM_UPDATE_DATE,
822       PARTY_SITE_ID = X_PARTY_SITE_ID,
823       INTERFACE_RELATIONS_ID = X_INTERFACE_RELATIONS_ID
824     where ROWID = X_ROWID;
825 
826     if (sql%notfound) then
827       raise no_data_found;
828     end if;
829 
830     After_DML (
831       p_action => 'UPDATE' ,
832       x_rowid => X_ROWID
833       );
834   end UPDATE_ROW;
835 
836 
837   procedure ADD_ROW (
838     X_ROWID in out NOCOPY VARCHAR2,
839     X_ORG_ID in NUMBER,
840     x_NEAR_MTCH_ID IN OUT NOCOPY NUMBER,
841     x_INTERFACE_ID IN NUMBER,
842     x_PERSON_ID IN NUMBER,
843     x_MATCH_IND IN VARCHAR2,
844     x_ACTION IN VARCHAR2,
845     x_ADDR_TYPE IN VARCHAR2,
846     x_PERSON_ID_TYPE IN VARCHAR2,
847     x_MATCH_SET_ID IN NUMBER,
848     X_MODE in VARCHAR2 default 'R',
849     x_PARTY_SITE_ID IN NUMBER  ,
850     X_INTERFACE_RELATIONS_ID IN NUMBER
854   Date Created On : 15-May-2000
851   ) AS
852   /*************************************************************
853   Created By : amuthu
855   Purpose :
856   Know limitations, enhancements or remarks
857   Change History
858   Who             When            What
859 
860   (reverse chronological order - newest change first)
861   ***************************************************************/
862 
863     cursor c1 is select ROWID from IGS_AD_IMP_NEAR_MTCH_ALL
864       where NEAR_MTCH_ID= X_NEAR_MTCH_ID;
865   begin
866     open c1;
867     fetch c1 into X_ROWID;
868     if (c1%notfound) then
869       close c1;
870       INSERT_ROW (
871 	X_ROWID,
872 	X_ORG_ID,
873 	X_NEAR_MTCH_ID,
874 	X_INTERFACE_ID,
875 	X_PERSON_ID,
876 	X_MATCH_IND,
877 	X_ACTION,
878 	X_ADDR_TYPE,
879 	X_PERSON_ID_TYPE,
880 	X_MATCH_SET_ID,
881 	X_MODE,
882 	X_PARTY_SITE_ID ,
883         X_INTERFACE_RELATIONS_ID);
884       return;
885     end if;
886     close c1;
887     UPDATE_ROW (
888       X_ROWID,
889       X_NEAR_MTCH_ID,
890       X_INTERFACE_ID,
891       X_PERSON_ID,
892       X_MATCH_IND,
893       X_ACTION,
894       X_ADDR_TYPE,
895       X_PERSON_ID_TYPE,
896       X_MATCH_SET_ID,
897       X_MODE,
898       X_PARTY_SITE_ID,
899       X_INTERFACE_RELATIONS_ID );
900 
901   end ADD_ROW;
902 
903 
904   procedure DELETE_ROW (
905     X_ROWID in VARCHAR2
906   ) AS
907   /*************************************************************
908   Created By : amuthu
909   Date Created On : 15-May-2000
910   Purpose :
911   Know limitations, enhancements or remarks
912   Change History
913   Who             When            What
914 
915   (reverse chronological order - newest change first)
916   ***************************************************************/
917 
918   begin
919     Before_DML (
920       p_action => 'DELETE',
921       x_rowid => X_ROWID
922     );
923 
924     delete from IGS_AD_IMP_NEAR_MTCH_ALL
925     where ROWID = X_ROWID;
926     if (sql%notfound) then
927       raise no_data_found;
928     end if;
929 
930     After_DML (
931       p_action => 'DELETE',
932       x_rowid => X_ROWID
933     );
934 
935   end DELETE_ROW;
936 
937 END igs_ad_imp_near_mtch_pkg;