DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGS_PS_DSCP_HIST_PKG

Source


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