DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGS_PS_UNIT_REF_HIST_PKG

Source


1 package body IGS_PS_UNIT_REF_HIST_PKG as
2 /* $Header: IGSPI89B.pls 115.7 2002/11/29 02:41:17 nsidana ship $ */
3 
4   l_rowid VARCHAR2(25);
5   old_references IGS_PS_UNIT_REF_HIST_ALL%RowType;
6   new_references IGS_PS_UNIT_REF_HIST_ALL%RowType;
7 
8   PROCEDURE Set_Column_Values (
9     p_action IN VARCHAR2,
10     x_rowid IN VARCHAR2 DEFAULT NULL,
11     x_unit_cd IN VARCHAR2 DEFAULT NULL,
12     x_version_number IN NUMBER DEFAULT NULL,
13     x_reference_cd_type IN VARCHAR2 DEFAULT NULL,
14     x_reference_cd IN VARCHAR2 DEFAULT NULL,
15     x_hist_start_dt IN DATE DEFAULT NULL,
16     x_hist_end_dt IN DATE DEFAULT NULL,
17     x_hist_who IN NUMBER DEFAULT NULL,
18     x_description IN VARCHAR2 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_org_id IN NUMBER DEFAULT NULL
25   ) AS
26 
27     CURSOR cur_old_ref_values IS
28       SELECT   *
29       FROM     IGS_PS_UNIT_REF_HIST_ALL
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.unit_cd := x_unit_cd;
51     new_references.version_number := x_version_number;
52     new_references.reference_cd_type := x_reference_cd_type;
53     new_references.reference_cd := x_reference_cd;
54     new_references.hist_start_dt := x_hist_start_dt;
55     new_references.hist_end_dt := x_hist_end_dt;
56     new_references.hist_who := x_hist_who;
57     new_references.description := x_description;
58     IF (p_action = 'UPDATE') THEN
59       new_references.creation_date := old_references.creation_date;
60       new_references.created_by := old_references.created_by;
61     ELSE
62       new_references.creation_date := x_creation_date;
63       new_references.created_by := x_created_by;
64     END IF;
65     new_references.last_update_date := x_last_update_date;
66     new_references.last_updated_by := x_last_updated_by;
67     new_references.last_update_login := x_last_update_login;
68     new_references.org_id := x_org_id;
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)
75 AS
76 BEGIN
77 
78 	IF Column_Name IS NULL Then
79 		NULL;
80 	ELSIF Upper(Column_Name)='REFERENCE_CD' Then
81 		New_References.Reference_Cd := Column_Value;
82 	ELSIF Upper(Column_Name)='REFERENCE_CD_TYPE' Then
83 		New_References.Reference_Cd_Type := Column_Value;
84 	ELSIF Upper(Column_Name)='UNIT_CD' Then
85 		New_References.Unit_Cd := Column_Value;
86 	END IF;
87 
88 
89 	IF Upper(Column_Name)='REFERENCE_CD' OR Column_Name IS NULL Then
90 		IF New_References.Reference_Cd <> UPPER(New_References.Reference_Cd) Then
91 			        Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
92                                 IGS_GE_MSG_STACK.ADD;
93 			        App_Exception.Raise_Exception;
94 		END IF;
95 	END IF;
96 
97 	IF Upper(Column_Name)='REFERENCE_CD_TYPE' OR Column_Name IS NULL Then
98 		IF New_References.Reference_Cd_Type <> UPPER(New_References.Reference_Cd_Type) Then
99 			        Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
100                                 IGS_GE_MSG_STACK.ADD;
101 			        App_Exception.Raise_Exception;
102 		END IF;
103 	END IF;
104 
105 
106 	IF Upper(Column_Name)='UNIT_CD' OR Column_Name IS NULL Then
107 		IF New_References.Unit_Cd <> UPPER(New_References.Unit_CD) Then
108 			        Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
109                                 IGS_GE_MSG_STACK.ADD;
110 			        App_Exception.Raise_Exception;
111 		END IF;
112 	END IF;
113 
114 END Check_Constraints;
115 
116   PROCEDURE Check_Parent_Existance AS
117   BEGIN
118 
119     IF (((old_references.reference_cd_type = new_references.reference_cd_type)) OR
120         ((new_references.reference_cd_type IS NULL))) THEN
121       NULL;
122     ELSE
123       IF NOT IGS_GE_REF_CD_TYPE_PKG.Get_PK_For_Validation (
124         new_references.reference_cd_type) THEN
125 				  Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
126       IGS_GE_MSG_STACK.ADD;
127 			        App_Exception.Raise_Exception;
128 	END IF;
129 
130 
131     END IF;
132 
133     IF (((old_references.unit_cd = new_references.unit_cd) AND
134          (old_references.version_number = new_references.version_number)) OR
135         ((new_references.unit_cd IS NULL) OR
136          (new_references.version_number IS NULL))) THEN
137       NULL;
138     ELSE
139       IF NOT IGS_PS_UNIT_VER_PKG.Get_PK_For_Validation (
140         new_references.unit_cd,
141         new_references.version_number) THEN
142 				  Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
143       IGS_GE_MSG_STACK.ADD;
144 			        App_Exception.Raise_Exception;
145 	END IF;
146 
147 
148     END IF;
149 
150   END Check_Parent_Existance;
151 
152   FUNCTION Get_PK_For_Validation (
153     x_unit_cd IN VARCHAR2,
154     x_version_number IN NUMBER,
155     x_reference_cd_type IN VARCHAR2,
156     x_reference_cd IN VARCHAR2,
157     x_hist_start_dt IN DATE
158     ) RETURN BOOLEAN AS
159 
160     CURSOR cur_rowid IS
161       SELECT   rowid
162       FROM     IGS_PS_UNIT_REF_HIST_ALL
163       WHERE    unit_cd = x_unit_cd
164       AND      version_number = x_version_number
165       AND      reference_cd_type = x_reference_cd_type
166       AND      reference_cd = x_reference_cd
167       AND      hist_start_dt = x_hist_start_dt
168       FOR UPDATE NOWAIT;
169 
170     lv_rowid cur_rowid%RowType;
171 
172   BEGIN
173 
174     Open cur_rowid;
175     Fetch cur_rowid INTO lv_rowid;
176 IF (cur_rowid%FOUND) THEN
177 	Close cur_rowid;
178       Return(TRUE);
179     ELSE
180 	Close cur_rowid;
181       Return(FALSE);
182     END IF;
183 
184   END Get_PK_For_Validation;
185 
186   PROCEDURE GET_FK_IGS_GE_REF_CD_TYPE (
187     x_reference_cd_type IN VARCHAR2
188     ) AS
189 
190     CURSOR cur_rowid IS
191       SELECT   rowid
192       FROM     IGS_PS_UNIT_REF_HIST_ALL
193       WHERE    reference_cd_type = x_reference_cd_type ;
194 
195     lv_rowid cur_rowid%RowType;
196 
197   BEGIN
198 
199     Open cur_rowid;
200     Fetch cur_rowid INTO lv_rowid;
201     IF (cur_rowid%FOUND) THEN
202 	Close cur_rowid;
203       Fnd_Message.Set_Name ('IGS', 'IGS_PS_URCH_RCT_FK');
204       IGS_GE_MSG_STACK.ADD;
205       App_Exception.Raise_Exception;
206       Return;
207     END IF;
208     Close cur_rowid;
209 
210   END GET_FK_IGS_GE_REF_CD_TYPE;
211 
212   PROCEDURE GET_FK_IGS_PS_UNIT_VER (
213     x_unit_cd IN VARCHAR2,
214     x_version_number IN NUMBER
215     ) AS
216 
217     CURSOR cur_rowid IS
218       SELECT   rowid
219       FROM     IGS_PS_UNIT_REF_HIST_ALL
220       WHERE    unit_cd = x_unit_cd
221       AND      version_number = x_version_number ;
222 
223     lv_rowid cur_rowid%RowType;
224 
225   BEGIN
226 
227     Open cur_rowid;
228     Fetch cur_rowid INTO lv_rowid;
229     IF (cur_rowid%FOUND) THEN
230 	Close cur_rowid;
231       Fnd_Message.Set_Name ('IGS', 'IGS_PS_URCH_UV_FK');
232       IGS_GE_MSG_STACK.ADD;
233       App_Exception.Raise_Exception;
234       Return;
235     END IF;
236     Close cur_rowid;
237 
238   END GET_FK_IGS_PS_UNIT_VER;
239 
240   PROCEDURE Before_DML (
241     p_action IN VARCHAR2,
242     x_rowid IN VARCHAR2 DEFAULT NULL,
243     x_unit_cd IN VARCHAR2 DEFAULT NULL,
244     x_version_number IN NUMBER DEFAULT NULL,
245     x_reference_cd_type IN VARCHAR2 DEFAULT NULL,
246     x_reference_cd IN VARCHAR2 DEFAULT NULL,
247     x_hist_start_dt IN DATE DEFAULT NULL,
248     x_hist_end_dt IN DATE DEFAULT NULL,
249     x_hist_who IN NUMBER DEFAULT NULL,
250     x_description IN VARCHAR2 DEFAULT NULL,
251     x_creation_date IN DATE DEFAULT NULL,
252     x_created_by IN NUMBER DEFAULT NULL,
253     x_last_update_date IN DATE DEFAULT NULL,
254     x_last_updated_by IN NUMBER DEFAULT NULL,
255     x_last_update_login IN NUMBER DEFAULT NULL,
256     x_org_id IN NUMBER DEFAULT NULL
257   ) AS
258   BEGIN
259 
260     Set_Column_Values (
261       p_action,
262       x_rowid,
263       x_unit_cd,
264       x_version_number,
265       x_reference_cd_type,
266       x_reference_cd,
267       x_hist_start_dt,
268       x_hist_end_dt,
269       x_hist_who,
270       x_description,
271       x_creation_date,
272       x_created_by,
273       x_last_update_date,
274       x_last_updated_by,
275       x_last_update_login ,
276       x_org_id
277     );
278 
279     IF (p_action = 'INSERT') THEN
280       -- Call all the procedures related to Before Insert.
281 	   IF Get_PK_For_Validation (New_References.unit_cd,
282 					    New_References.version_number,
283 					    New_References.reference_cd_type,
284 					    New_References.reference_cd,
285 					    New_References.hist_start_dt) THEN
286  		Fnd_Message.Set_Name ('IGS', 'IGS_GE_MULTI_ORG_DUP_REC');
287       IGS_GE_MSG_STACK.ADD;
288 		      App_Exception.Raise_Exception;
289 	   END IF;
290 	   Check_Constraints;
291       Check_Parent_Existance;
292     ELSIF (p_action = 'UPDATE') THEN
293       -- Call all the procedures related to Before Update.
294 	   Check_Constraints;
295       Check_Parent_Existance;
296 
297     ELSIF (p_action = 'VALIDATE_INSERT') THEN
298 	   IF Get_PK_For_Validation (New_References.unit_cd,
299 					    New_References.version_number,
300 					    New_References.reference_cd_type,
301 					    New_References.reference_cd,
302 					    New_References.hist_start_dt) THEN
303  		Fnd_Message.Set_Name ('IGS', 'IGS_GE_MULTI_ORG_DUP_REC');
304       IGS_GE_MSG_STACK.ADD;
305 		      App_Exception.Raise_Exception;
306 	   END IF;
307 	   Check_Constraints;
308    ELSIF (p_action = 'VALIDATE_UPDATE') THEN
309 	   Check_Constraints;
310 
311    END IF;
312 
313   END Before_DML;
314 
315   PROCEDURE After_DML (
316     p_action IN VARCHAR2,
317     x_rowid IN VARCHAR2
318   ) AS
319   BEGIN
320 
321     l_rowid := x_rowid;
322 
323 
324   END After_DML;
325 
326 procedure INSERT_ROW (
327   X_ROWID in out NOCOPY VARCHAR2,
328   X_UNIT_CD in VARCHAR2,
329   X_HIST_START_DT in DATE,
330   X_REFERENCE_CD in VARCHAR2,
331   X_VERSION_NUMBER in NUMBER,
332   X_REFERENCE_CD_TYPE in VARCHAR2,
333   X_HIST_END_DT in DATE,
334   X_HIST_WHO in NUMBER,
335   X_DESCRIPTION in VARCHAR2,
336   X_MODE in VARCHAR2 default 'R',
337   X_ORG_ID in NUMBER
338   ) AS
339     cursor C is select ROWID from IGS_PS_UNIT_REF_HIST_ALL
340       where UNIT_CD = X_UNIT_CD
341       and HIST_START_DT = X_HIST_START_DT
342       and REFERENCE_CD = X_REFERENCE_CD
343       and VERSION_NUMBER = X_VERSION_NUMBER
344       and REFERENCE_CD_TYPE = X_REFERENCE_CD_TYPE;
345     X_LAST_UPDATE_DATE DATE;
346     X_LAST_UPDATED_BY NUMBER;
347     X_LAST_UPDATE_LOGIN NUMBER;
348 begin
349   X_LAST_UPDATE_DATE := SYSDATE;
350   if(X_MODE = 'I') then
351     X_LAST_UPDATED_BY := 1;
352     X_LAST_UPDATE_LOGIN := 0;
353   elsif (X_MODE = 'R') then
354     X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
355     if X_LAST_UPDATED_BY is NULL then
356       X_LAST_UPDATED_BY := -1;
357     end if;
358     X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
359     if X_LAST_UPDATE_LOGIN is NULL then
360       X_LAST_UPDATE_LOGIN := -1;
361     end if;
362   else
363     FND_MESSAGE.SET_NAME( 'FND', 'SYSTEM-INVALID ARGS');
364       IGS_GE_MSG_STACK.ADD;
365     app_exception.raise_exception;
366   end if;
367 
368   Before_DML(
369   p_action => 'INSERT',
370   x_rowid =>  X_ROWID,
371   x_unit_cd => X_UNIT_CD,
372   x_version_number => X_VERSION_NUMBER,
373   x_reference_cd_type => X_REFERENCE_CD_TYPE,
374   x_reference_cd => X_REFERENCE_CD,
375   x_hist_start_dt => X_HIST_START_DT,
376   x_hist_end_dt => X_HIST_END_DT,
377   x_hist_who => X_HIST_WHO,
378   x_description => X_DESCRIPTION,
379   x_creation_date => X_LAST_UPDATE_DATE,
380   x_created_by => X_LAST_UPDATED_BY,
381   x_last_update_date => X_LAST_UPDATE_DATE,
382   x_last_updated_by => X_LAST_UPDATED_BY,
383   x_last_update_login => X_LAST_UPDATE_LOGIN,
384   x_org_id => igs_ge_gen_003.get_org_id
385   );
386 
387   insert into IGS_PS_UNIT_REF_HIST_ALL (
388     UNIT_CD,
389     VERSION_NUMBER,
390     REFERENCE_CD_TYPE,
391     REFERENCE_CD,
392     HIST_START_DT,
393     HIST_END_DT,
394     HIST_WHO,
395     DESCRIPTION,
396     CREATION_DATE,
397     CREATED_BY,
398     LAST_UPDATE_DATE,
399     LAST_UPDATED_BY,
400     LAST_UPDATE_LOGIN,
401     ORG_ID
402   ) values (
403     NEW_REFERENCES.UNIT_CD,
404     NEW_REFERENCES.VERSION_NUMBER,
405     NEW_REFERENCES.REFERENCE_CD_TYPE,
406     NEW_REFERENCES.REFERENCE_CD,
407     NEW_REFERENCES.HIST_START_DT,
408     NEW_REFERENCES.HIST_END_DT,
409     NEW_REFERENCES.HIST_WHO,
410     NEW_REFERENCES.DESCRIPTION,
411     X_LAST_UPDATE_DATE,
412     X_LAST_UPDATED_BY,
413     X_LAST_UPDATE_DATE,
414     X_LAST_UPDATED_BY,
415     X_LAST_UPDATE_LOGIN,
416     NEW_REFERENCES.ORG_ID
417   );
418 
419   open c;
420   fetch c into X_ROWID;
421   if (c%notfound) then
422     close c;
423     raise no_data_found;
424   end if;
425   close c;
426   After_DML (
427      p_action => 'INSERT',
428      x_rowid => X_ROWID
429     );
430 
431 end INSERT_ROW;
432 
433 procedure LOCK_ROW (
434   X_ROWID in VARCHAR2,
435   X_UNIT_CD in VARCHAR2,
436   X_HIST_START_DT in DATE,
437   X_REFERENCE_CD in VARCHAR2,
438   X_VERSION_NUMBER in NUMBER,
439   X_REFERENCE_CD_TYPE in VARCHAR2,
440   X_HIST_END_DT in DATE,
441   X_HIST_WHO in NUMBER,
442   X_DESCRIPTION in VARCHAR2
443 ) AS
444   cursor c1 is select
445       HIST_END_DT,
446       HIST_WHO,
447       DESCRIPTION
448     from IGS_PS_UNIT_REF_HIST_ALL
449     where ROWID = X_ROWID
450     for update nowait;
451   tlinfo c1%rowtype;
452 
453 begin
454   open c1;
455   fetch c1 into tlinfo;
456   if (c1%notfound) then
457     close c1;
458     fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
459       IGS_GE_MSG_STACK.ADD;
460     app_exception.raise_exception;
461     return;
462   end if;
463   close c1;
464 
465   if ( (tlinfo.HIST_END_DT = X_HIST_END_DT)
466       AND (tlinfo.HIST_WHO = X_HIST_WHO)
467       AND ((tlinfo.DESCRIPTION = X_DESCRIPTION)
468            OR ((tlinfo.DESCRIPTION is null)
469                AND (X_DESCRIPTION is null)))
470   ) then
471     null;
472   else
473     fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
474       IGS_GE_MSG_STACK.ADD;
475     app_exception.raise_exception;
476   end if;
477   return;
478 end LOCK_ROW;
479 
480 procedure UPDATE_ROW (
481   X_ROWID in VARCHAR2,
482   X_UNIT_CD in VARCHAR2,
483   X_HIST_START_DT in DATE,
484   X_REFERENCE_CD in VARCHAR2,
485   X_VERSION_NUMBER in NUMBER,
486   X_REFERENCE_CD_TYPE in VARCHAR2,
487   X_HIST_END_DT in DATE,
488   X_HIST_WHO in NUMBER,
489   X_DESCRIPTION in VARCHAR2,
490   X_MODE in VARCHAR2 default 'R'
491   ) AS
492     X_LAST_UPDATE_DATE DATE;
493     X_LAST_UPDATED_BY NUMBER;
494     X_LAST_UPDATE_LOGIN NUMBER;
495 begin
496   X_LAST_UPDATE_DATE := SYSDATE;
497   if(X_MODE = 'I') then
498     X_LAST_UPDATED_BY := 1;
499     X_LAST_UPDATE_LOGIN := 0;
500   elsif (X_MODE = 'R') then
501     X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
502     if X_LAST_UPDATED_BY is NULL then
503       X_LAST_UPDATED_BY := -1;
504     end if;
505     X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
506     if X_LAST_UPDATE_LOGIN is NULL then
507       X_LAST_UPDATE_LOGIN := -1;
508     end if;
509   else
510     FND_MESSAGE.SET_NAME('FND', 'SYSTEM-INVALID ARGS');
511       IGS_GE_MSG_STACK.ADD;
512     app_exception.raise_exception;
513   end if;
514 
515   Before_DML(
516   p_action => 'UPDATE',
517   x_rowid =>  X_ROWID,
518   x_unit_cd => X_UNIT_CD,
519   x_version_number => X_VERSION_NUMBER,
520   x_reference_cd_type => X_REFERENCE_CD_TYPE,
521   x_reference_cd => X_REFERENCE_CD,
522   x_hist_start_dt => X_HIST_START_DT,
523   x_hist_end_dt => X_HIST_END_DT,
524   x_hist_who => X_HIST_WHO,
525   x_description => X_DESCRIPTION,
526   x_creation_date => X_LAST_UPDATE_DATE,
527   x_created_by => X_LAST_UPDATED_BY,
528   x_last_update_date => X_LAST_UPDATE_DATE,
529   x_last_updated_by => X_LAST_UPDATED_BY,
530   x_last_update_login => X_LAST_UPDATE_LOGIN
531   );
532 
533   update IGS_PS_UNIT_REF_HIST_ALL set
534     HIST_END_DT = NEW_REFERENCES.HIST_END_DT,
535     HIST_WHO = NEW_REFERENCES.HIST_WHO,
536     DESCRIPTION = NEW_REFERENCES.DESCRIPTION,
537     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
538     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
539     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
540   where ROWID = X_ROWID
541   ;
542   if (sql%notfound) then
543     raise no_data_found;
544   end if;
545   After_DML (
546      p_action => 'UPDATE',
547      x_rowid => X_ROWID
548     );
549 end UPDATE_ROW;
550 
551 procedure ADD_ROW (
552   X_ROWID in out NOCOPY VARCHAR2,
553   X_UNIT_CD in VARCHAR2,
554   X_HIST_START_DT in DATE,
555   X_REFERENCE_CD in VARCHAR2,
556   X_VERSION_NUMBER in NUMBER,
557   X_REFERENCE_CD_TYPE in VARCHAR2,
558   X_HIST_END_DT in DATE,
559   X_HIST_WHO in NUMBER,
560   X_DESCRIPTION in VARCHAR2,
561   X_MODE in VARCHAR2 default 'R',
562   X_ORG_ID in NUMBER
563   ) AS
564   cursor c1 is select rowid from IGS_PS_UNIT_REF_HIST_ALL
565      where UNIT_CD = X_UNIT_CD
566      and HIST_START_DT = X_HIST_START_DT
567      and REFERENCE_CD = X_REFERENCE_CD
568      and VERSION_NUMBER = X_VERSION_NUMBER
569      and REFERENCE_CD_TYPE = X_REFERENCE_CD_TYPE
570   ;
571 begin
572   open c1;
573   fetch c1 into X_ROWID;
574   if (c1%notfound) then
575     close c1;
576     INSERT_ROW (
577      X_ROWID,
578      X_UNIT_CD,
579      X_HIST_START_DT,
580      X_REFERENCE_CD,
581      X_VERSION_NUMBER,
582      X_REFERENCE_CD_TYPE,
583      X_HIST_END_DT,
584      X_HIST_WHO,
585      X_DESCRIPTION,
586      X_MODE,
587      X_ORG_ID);
588     return;
589   end if;
590   close c1;
591   UPDATE_ROW (
592    X_ROWID,
593    X_UNIT_CD,
594    X_HIST_START_DT,
595    X_REFERENCE_CD,
596    X_VERSION_NUMBER,
597    X_REFERENCE_CD_TYPE,
598    X_HIST_END_DT,
599    X_HIST_WHO,
600    X_DESCRIPTION,
601    X_MODE
602    );
603 end ADD_ROW;
604 
605 procedure DELETE_ROW (
606 X_ROWID in VARCHAR2
607 ) AS
608 begin
609   Before_DML (
610      p_action => 'DELETE',
611      x_rowid => X_ROWID
612     );
613   delete from IGS_PS_UNIT_REF_HIST_ALL
614   where ROWID = X_ROWID
615   ;
616   if (sql%notfound) then
617     raise no_data_found;
618   end if;
619   After_DML (
620      p_action => 'DELETE',
621      x_rowid => X_ROWID
622     );
623 end DELETE_ROW;
624 
625 end IGS_PS_UNIT_REF_HIST_PKG;