DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGS_RU_NAMED_RULE_PKG

Source


1 package body IGS_RU_NAMED_RULE_PKG as
2 /* $Header: IGSUI09B.pls 115.9 2003/01/06 07:59:40 nshee ship $ */
3 
4   l_rowid VARCHAR2(25);
5   old_references IGS_RU_NAMED_RULE%RowType;
6   new_references IGS_RU_NAMED_RULE%RowType;
7 
8   PROCEDURE Set_Column_Values (
9     p_action IN VARCHAR2,
10     x_rowid IN VARCHAR2 ,
11     x_rul_sequence_number IN NUMBER ,
12     x_rud_sequence_number IN NUMBER ,
13     x_message_rule IN NUMBER ,
14     x_rug_sequence_number IN NUMBER ,
15     x_rule_text IN VARCHAR2 ,
16     x_creation_date IN DATE ,
17     x_created_by IN NUMBER ,
18     x_last_update_date IN DATE ,
19     x_last_updated_by IN NUMBER ,
20     x_last_update_login IN NUMBER
21 ) IS
22 
23     CURSOR cur_old_ref_values IS
24       SELECT   *
25       FROM     IGS_RU_NAMED_RULE
26       WHERE    rowid = x_rowid;
27 
28   BEGIN
29 
30     l_rowid := x_rowid;
31 
32     -- Code for setting the Old and New Reference Values.
33     -- Populate Old Values.
34     Open cur_old_ref_values;
35     Fetch cur_old_ref_values INTO old_references;
36     IF (cur_old_ref_values%NOTFOUND) AND (p_action NOT IN ('INSERT', 'VALIDATE_INSERT')) THEN
37       Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
38       IGS_RU_GEN_006.SET_TOKEN(' IGS_RU_NAMED_RULE  : P_ACTION INSERT VALIDATE_INSERT   : IGSUI09B.PLS');
39       IGS_GE_MSG_STACK.ADD;
40       App_Exception.Raise_Exception;
41       Close cur_old_ref_values;
42       Return;
43     END IF;
44     Close cur_old_ref_values;
45 
46     -- Populate New Values.
47     new_references.rul_sequence_number := x_rul_sequence_number;
48     new_references.rud_sequence_number := x_rud_sequence_number;
49     new_references.message_rule := x_message_rule;
50     new_references.rug_sequence_number := x_rug_sequence_number;
51     new_references.rule_text := x_rule_text;
52     IF (p_action = 'UPDATE') THEN
53       new_references.creation_date := old_references.creation_date;
54       new_references.created_by := old_references.created_by;
55     ELSE
56       new_references.creation_date := x_creation_date;
57       new_references.created_by := x_created_by;
58     END IF;
59     new_references.last_update_date := x_last_update_date;
60     new_references.last_updated_by := x_last_updated_by;
61     new_references.last_update_login := x_last_update_login;
62 
63   END Set_Column_Values;
64 PROCEDURE Check_Constraints (
65 	 Column_Name	IN	VARCHAR2	,
66 	 Column_Value 	IN	VARCHAR2
67 )
68  IS
69  BEGIN
70 IF Column_Name is null THEN
71   NULL;
72 ELSIF upper(Column_name) = 'MESSAGE_RULE' THEN
73   new_references.MESSAGE_RULE:= igs_ge_number.to_num(COLUMN_VALUE) ;
74 
75 ELSIF upper(Column_name) = 'RUG_SEQUENCE_NUMBER' THEN
76   new_references.RUG_SEQUENCE_NUMBER:= igs_ge_number.to_num(COLUMN_VALUE) ;
77 
78 ELSIF upper(Column_name) = 'RUD_SEQUENCE_NUMBER' THEN
79   new_references.RUD_SEQUENCE_NUMBER:= igs_ge_number.to_num(COLUMN_VALUE) ;
80 
81 END IF ;
82 
83 IF upper(Column_name) = 'MESSAGE_RULE' OR COLUMN_NAME IS NULL THEN
84   IF new_references.MESSAGE_RULE < 1 or new_references.MESSAGE_RULE > 999999 then
85     Fnd_Message.Set_Name('IGS','IGS_GE_INVALID_VALUE');
86 	 IGS_GE_MSG_STACK.ADD;
87     App_Exception.Raise_Exception ;
88   END IF;
89 
90 END IF ;
91 
92  --Added following check as part of bug 2441196, this check should be there in check_constraint since rule_text is not null field.
93 IF upper(Column_name) = 'RULE_TEXT' OR COLUMN_NAME IS NULL THEN
94   IF new_references.RULE_TEXT IS NULL 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) = 'RUG_SEQUENCE_NUMBER' OR COLUMN_NAME IS NULL THEN
102   IF new_references.RUG_SEQUENCE_NUMBER < 1 or new_references.RUG_SEQUENCE_NUMBER > 999999 then
103     Fnd_Message.Set_Name('IGS','IGS_GE_INVALID_VALUE');
104 	 IGS_GE_MSG_STACK.ADD;
105     App_Exception.Raise_Exception ;
106   END IF;
107 
108 END IF ;
109 
110 IF upper(Column_name) = 'RUD_SEQUENCE_NUMBER' OR COLUMN_NAME IS NULL THEN
111   IF new_references.RUD_SEQUENCE_NUMBER < 1 or new_references.RUD_SEQUENCE_NUMBER > 999999 then
112     Fnd_Message.Set_Name('IGS','IGS_GE_INVALID_VALUE');
113 	 IGS_GE_MSG_STACK.ADD;
114     App_Exception.Raise_Exception ;
115   END IF;
116 
117 END IF ;
118  END Check_Constraints;
119 
120   PROCEDURE Check_Parent_Existance IS
121   BEGIN
122 
123     IF (((old_references.rud_sequence_number = new_references.rud_sequence_number)) OR
124         ((new_references.rud_sequence_number IS NULL))) THEN
125       NULL;
126     ELSE
127 IF NOT IGS_RU_DESCRIPTION_PKG.Get_PK_For_Validation (
128         new_references.rud_sequence_number
129         ) THEN
130      Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
131      IGS_RU_GEN_006.SET_TOKEN(' IGS_RU_DESCRIPTION  : P_ACTION Check_Parent_Existance  rud_sequence_number  : IGSUI09B.PLS');
132      IGS_GE_MSG_STACK.ADD;
133      App_Exception.Raise_Exception;
134  END IF;
135     END IF;
136 
137     IF (((old_references.rug_sequence_number = new_references.rug_sequence_number)) OR
138         ((new_references.rug_sequence_number IS NULL))) THEN
139       NULL;
140     ELSE
141 IF NOT IGS_RU_GROUP_PKG.Get_PK_For_Validation (
142         new_references.rug_sequence_number
143         ) THEN
144      Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
145      IGS_RU_GEN_006.SET_TOKEN(' IGS_RU_GROUP  : P_ACTION Check_Parent_Existance  rug_sequence_number  : IGSUI09B.PLS');
146      IGS_GE_MSG_STACK.ADD;
147      App_Exception.Raise_Exception;
148  END IF;
149     END IF;
150 
151     IF (((old_references.rul_sequence_number = new_references.rul_sequence_number)) OR
152         ((new_references.rul_sequence_number IS NULL))) THEN
153       NULL;
154     ELSE
155 IF NOT IGS_RU_RULE_PKG.Get_PK_For_Validation (
156         new_references.rul_sequence_number
157         ) THEN
158      Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
159      IGS_RU_GEN_006.SET_TOKEN(' IGS_RU_RULE  : P_ACTION Check_Parent_Existance  rul_sequence_number  : IGSUI09B.PLS');
160      IGS_GE_MSG_STACK.ADD;
161      App_Exception.Raise_Exception;
162  END IF;
163     END IF;
164 
165     IF (((old_references.message_rule = new_references.message_rule)) OR
166         ((new_references.message_rule IS NULL))) THEN
167       NULL;
168     ELSE
169 IF NOT IGS_RU_RULE_PKG.Get_PK_For_Validation (
170         new_references.message_rule
171         ) THEN
172      Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
173      IGS_RU_GEN_006.SET_TOKEN(' IGS_RU_RULE  : P_ACTION Check_Parent_Existance message_rule  : IGSUI09B.PLS');
174 	  IGS_GE_MSG_STACK.ADD;
175      App_Exception.Raise_Exception;
176  END IF;
177     END IF;
178 
179   END Check_Parent_Existance;
180 
181   PROCEDURE Check_Child_Existance IS
182   BEGIN
183 
184     IGS_RU_ITEM_PKG.GET_FK_IGS_RU_NAMED_RULE (
185       old_references.rul_sequence_number
186       );
187 
188     IGS_RU_CALL_RULE_PKG.GET_FK_IGS_RU_NAMED_RULE (
189       old_references.rul_sequence_number
190       );
191 
192     IGS_RU_CALL_PKG.GET_FK_IGS_RU_NAMED_RULE (
193       old_references.rul_sequence_number
194       );
195 
196   END Check_Child_Existance;
197 
198 FUNCTION Get_PK_For_Validation (
199     x_rul_sequence_number IN NUMBER
200     ) RETURN BOOLEAN
201 IS
202     CURSOR cur_rowid IS
203       SELECT   rowid
204       FROM     IGS_RU_NAMED_RULE
205       WHERE    rul_sequence_number = x_rul_sequence_number
206       FOR UPDATE NOWAIT;
207 
208     lv_rowid cur_rowid%RowType;
209 
210   BEGIN
211 
212     Open cur_rowid;
213     Fetch cur_rowid INTO lv_rowid;
214  IF (cur_rowid%FOUND) THEN
215        Close cur_rowid;
216        Return (TRUE);
217  ELSE
218        Close cur_rowid;
219        Return (FALSE);
220  END IF;
221 
222   END Get_PK_For_Validation;
223 
224   PROCEDURE GET_FK_IGS_RU_DESCRIPTION (
225     x_sequence_number IN NUMBER
226     ) IS
227 
228     CURSOR cur_rowid IS
229       SELECT   rowid
230       FROM     IGS_RU_NAMED_RULE
231       WHERE    rud_sequence_number = x_sequence_number ;
232 
233     lv_rowid cur_rowid%RowType;
234 
235   BEGIN
236 
237     Open cur_rowid;
238     Fetch cur_rowid INTO lv_rowid;
239     IF (cur_rowid%FOUND) THEN
240       Close cur_rowid;
241       Fnd_Message.Set_Name ('IGS', 'IGS_RU_NR_RUD_FK');
242 	   IGS_GE_MSG_STACK.ADD;
243       App_Exception.Raise_Exception;
244       Return;
245     END IF;
246     Close cur_rowid;
247 
248   END GET_FK_IGS_RU_DESCRIPTION;
249 
250   PROCEDURE GET_FK_IGS_RU_GROUP (
251     x_sequence_number IN NUMBER
252     ) IS
253 
254     CURSOR cur_rowid IS
255       SELECT   rowid
256       FROM     IGS_RU_NAMED_RULE
257       WHERE    rug_sequence_number = x_sequence_number ;
258 
259     lv_rowid cur_rowid%RowType;
260 
261   BEGIN
262 
263     Open cur_rowid;
264     Fetch cur_rowid INTO lv_rowid;
265     IF (cur_rowid%FOUND) THEN
266       Close cur_rowid;
267       Fnd_Message.Set_Name ('IGS', 'IGS_RU_NR_RUG_FK');
268 	   IGS_GE_MSG_STACK.ADD;
269       App_Exception.Raise_Exception;
270       Return;
271     END IF;
272     Close cur_rowid;
273 
274   END GET_FK_IGS_RU_GROUP;
275 
276   PROCEDURE GET_FK_IGS_RU_RULE (
277     x_sequence_number IN NUMBER
278     ) IS
279 
280     CURSOR cur_rowid IS
281       SELECT   rowid
282       FROM     IGS_RU_NAMED_RULE
283       WHERE    rul_sequence_number = x_sequence_number
284       OR       message_rule = x_sequence_number ;
285 
286     lv_rowid cur_rowid%RowType;
287 
288   BEGIN
289 
290     Open cur_rowid;
291     Fetch cur_rowid INTO lv_rowid;
292     IF (cur_rowid%FOUND) THEN
293       Close cur_rowid;
294       Fnd_Message.Set_Name ('IGS', 'IGS_RU_NR_RUL_FK');
295 	   IGS_GE_MSG_STACK.ADD;
296       App_Exception.Raise_Exception;
297       Return;
298     END IF;
299     Close cur_rowid;
300 
301   END GET_FK_IGS_RU_RULE;
302 
303   PROCEDURE Before_DML (
304     p_action IN VARCHAR2,
305     x_rowid IN VARCHAR2 ,
306     x_rul_sequence_number IN NUMBER ,
307     x_rud_sequence_number IN NUMBER ,
308     x_message_rule IN NUMBER ,
309     x_rug_sequence_number IN NUMBER ,
310     x_rule_text IN VARCHAR2 ,
311     x_creation_date IN DATE ,
312     x_created_by IN NUMBER ,
313     x_last_update_date IN DATE ,
314     x_last_updated_by IN NUMBER ,
315     x_last_update_login IN NUMBER
316   ) IS
317   BEGIN
318 
319     Set_Column_Values (
320       p_action,
321       x_rowid,
322       x_rul_sequence_number,
323       x_rud_sequence_number,
324       x_message_rule,
325       x_rug_sequence_number,
326       x_rule_text,
327       x_creation_date,
328       x_created_by,
329       x_last_update_date,
330       x_last_updated_by,
331       x_last_update_login
332     );
333  IF (p_action = 'INSERT') THEN
334        -- Call all the procedures related to Before Insert.
335       IF  Get_PK_For_Validation (
336           new_references.rul_sequence_number
337 		) THEN
338          Fnd_Message.Set_Name ('IGS', 'IGS_GE_RECORD_ALREADY_EXISTS');
339 		  IGS_GE_MSG_STACK.ADD;
340           App_Exception.Raise_Exception;
341       END IF;
342       Check_Constraints;
343       Check_Parent_Existance;
344  ELSIF (p_action = 'UPDATE') THEN
345        -- Call all the procedures related to Before Update.
346        Check_Constraints;
347        Check_Parent_Existance;
348  ELSIF (p_action = 'DELETE') THEN
349        -- Call all the procedures related to Before Delete.
350        Check_Child_Existance;
351  ELSIF (p_action = 'VALIDATE_INSERT') THEN
352       IF  Get_PK_For_Validation (
353           new_references.rul_sequence_number
354 		) THEN
355          Fnd_Message.Set_Name ('IGS', 'IGS_GE_RECORD_ALREADY_EXISTS');
356 		  IGS_GE_MSG_STACK.ADD;
357           App_Exception.Raise_Exception;
358       END IF;
359       Check_Constraints;
360  ELSIF (p_action = 'VALIDATE_UPDATE') THEN
361        Check_Constraints;
362  ELSIF (p_action = 'VALIDATE_DELETE') THEN
363       Check_Child_Existance;
364  END IF;
365   END Before_DML;
366 
367   PROCEDURE After_DML (
368     p_action IN VARCHAR2,
369     x_rowid IN VARCHAR2
370   ) IS
371   BEGIN
372 
373     l_rowid := x_rowid;
374 
375   END After_DML;
376 
377 procedure INSERT_ROW (
378   X_ROWID in out NOCOPY VARCHAR2,
379   X_RUL_SEQUENCE_NUMBER in NUMBER,
380   X_RUD_SEQUENCE_NUMBER in NUMBER,
381   X_MESSAGE_RULE in NUMBER,
382   X_RUG_SEQUENCE_NUMBER in NUMBER,
383   X_RULE_TEXT in VARCHAR2,
384   X_MODE in VARCHAR2
385   ) is
386     cursor C is select ROWID from IGS_RU_NAMED_RULE
387       where RUL_SEQUENCE_NUMBER = X_RUL_SEQUENCE_NUMBER;
388     X_LAST_UPDATE_DATE DATE;
389     X_LAST_UPDATED_BY NUMBER;
390     X_LAST_UPDATE_LOGIN NUMBER;
391 begin
392   X_LAST_UPDATE_DATE := SYSDATE;
393   if(X_MODE = 'I') then
394     X_LAST_UPDATED_BY := 1;
395     X_LAST_UPDATE_LOGIN := 0;
396   elsif (X_MODE = 'R') then
397     X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
398     if X_LAST_UPDATED_BY is NULL then
399       X_LAST_UPDATED_BY := -1;
400     end if;
401     X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
402     if X_LAST_UPDATE_LOGIN is NULL then
403       X_LAST_UPDATE_LOGIN := -1;
404     end if;
405   else
406     FND_MESSAGE.SET_NAME( 'FND', 'SYSTEM-INVALID ARGS');
407 	 IGS_GE_MSG_STACK.ADD;
408     app_exception.raise_exception;
409   end if;
410 
411 
412   Before_DML(
413    p_action=>'INSERT',
414    x_rowid=>X_ROWID,
415    x_message_rule=>X_MESSAGE_RULE,
416    x_rud_sequence_number=>X_RUD_SEQUENCE_NUMBER,
417    x_rug_sequence_number=>X_RUG_SEQUENCE_NUMBER,
418    x_rul_sequence_number=>X_RUL_SEQUENCE_NUMBER,
419    x_rule_text=>X_RULE_TEXT,
420    x_creation_date=>X_LAST_UPDATE_DATE,
421    x_created_by=>X_LAST_UPDATED_BY,
422    x_last_update_date=>X_LAST_UPDATE_DATE,
423    x_last_updated_by=>X_LAST_UPDATED_BY,
424    x_last_update_login=>X_LAST_UPDATE_LOGIN
425    );
426 
427   insert into IGS_RU_NAMED_RULE (
428     RUL_SEQUENCE_NUMBER,
429     RUD_SEQUENCE_NUMBER,
430     MESSAGE_RULE,
431     RUG_SEQUENCE_NUMBER,
432     RULE_TEXT,
433     CREATION_DATE,
434     CREATED_BY,
435     LAST_UPDATE_DATE,
436     LAST_UPDATED_BY,
437     LAST_UPDATE_LOGIN
438   ) values (
439     NEW_REFERENCES.RUL_SEQUENCE_NUMBER,
440     NEW_REFERENCES.RUD_SEQUENCE_NUMBER,
441     NEW_REFERENCES.MESSAGE_RULE,
442     NEW_REFERENCES.RUG_SEQUENCE_NUMBER,
443     NEW_REFERENCES.RULE_TEXT,
444     X_LAST_UPDATE_DATE,
445     X_LAST_UPDATED_BY,
446     X_LAST_UPDATE_DATE,
447     X_LAST_UPDATED_BY,
448     X_LAST_UPDATE_LOGIN
449   );
450 
451   open c;
452   fetch c into X_ROWID;
453   if (c%notfound) then
454     close c;
455     raise no_data_found;
456   end if;
457   close c;
458 
459   After_DML (
460     p_action => 'INSERT',
461     x_rowid => X_ROWID);
462 
463 end INSERT_ROW;
464 
465 procedure LOCK_ROW (
466   X_ROWID in VARCHAR2,
467   X_RUL_SEQUENCE_NUMBER in NUMBER,
468   X_RUD_SEQUENCE_NUMBER in NUMBER,
469   X_MESSAGE_RULE in NUMBER,
470   X_RUG_SEQUENCE_NUMBER in NUMBER,
471   X_RULE_TEXT in VARCHAR2
472 ) is
473   cursor c1 is select
474       RUD_SEQUENCE_NUMBER,
475       MESSAGE_RULE,
476       RUG_SEQUENCE_NUMBER,
477       RULE_TEXT
478     from IGS_RU_NAMED_RULE
479     where ROWID = X_ROWID for update nowait;
480   tlinfo c1%rowtype;
481 
482 begin
483   open c1;
484   fetch c1 into tlinfo;
485   if (c1%notfound) then
486     fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
487     IGS_RU_GEN_006.SET_TOKEN(' IGS_RU_NAMED_RULE  : P_ACTION LOCK_ROW message_rule  : IGSUI09B.PLS');
488     IGS_GE_MSG_STACK.ADD;
489     app_exception.raise_exception;
490     close c1;
491     return;
492   end if;
493   close c1;
494 
495   if ( (tlinfo.RUD_SEQUENCE_NUMBER = X_RUD_SEQUENCE_NUMBER)
496       AND ((tlinfo.MESSAGE_RULE = X_MESSAGE_RULE)
497            OR ((tlinfo.MESSAGE_RULE is null)
498                AND (X_MESSAGE_RULE is null)))
499       AND ((tlinfo.RUG_SEQUENCE_NUMBER = X_RUG_SEQUENCE_NUMBER)
500            OR ((tlinfo.RUG_SEQUENCE_NUMBER is null)
501                AND (X_RUG_SEQUENCE_NUMBER is null)))
502       AND (tlinfo.RULE_TEXT = X_RULE_TEXT)
503   ) then
504     null;
505   else
506     fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
507     IGS_RU_GEN_006.SET_TOKEN(' IGS_RU_NAMED_RULE  : P_ACTION LOCK_ROW FORM_RECORD_CHANGED  : IGSUI09B.PLS');
508 	 IGS_GE_MSG_STACK.ADD;
509     app_exception.raise_exception;
510   end if;
511   return;
512 end LOCK_ROW;
513 
514 procedure UPDATE_ROW (
515   X_ROWID in VARCHAR2,
516   X_RUL_SEQUENCE_NUMBER in NUMBER,
517   X_RUD_SEQUENCE_NUMBER in NUMBER,
518   X_MESSAGE_RULE in NUMBER,
519   X_RUG_SEQUENCE_NUMBER in NUMBER,
520   X_RULE_TEXT in VARCHAR2,
521   X_MODE in VARCHAR2
522   ) is
523     X_LAST_UPDATE_DATE DATE;
524     X_LAST_UPDATED_BY NUMBER;
525     X_LAST_UPDATE_LOGIN NUMBER;
526 begin
527   X_LAST_UPDATE_DATE := SYSDATE;
528   if(X_MODE = 'I') then
529     X_LAST_UPDATED_BY := 1;
530     X_LAST_UPDATE_LOGIN := 0;
531   elsif (X_MODE = 'R') then
532     X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
533     if X_LAST_UPDATED_BY is NULL then
534       X_LAST_UPDATED_BY := -1;
535     end if;
536     X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
537     if X_LAST_UPDATE_LOGIN is NULL then
538       X_LAST_UPDATE_LOGIN := -1;
539     end if;
540   else
541     FND_MESSAGE.SET_NAME('FND', 'SYSTEM-INVALID ARGS');
542 	 IGS_GE_MSG_STACK.ADD;
543     app_exception.raise_exception;
544   end if;
545 
546 
547   Before_DML(
548    p_action=>'UPDATE',
549    x_rowid=>X_ROWID,
550    x_message_rule=>X_MESSAGE_RULE,
551    x_rud_sequence_number=>X_RUD_SEQUENCE_NUMBER,
552    x_rug_sequence_number=>X_RUG_SEQUENCE_NUMBER,
553    x_rul_sequence_number=>X_RUL_SEQUENCE_NUMBER,
554    x_rule_text=>X_RULE_TEXT,
555    x_creation_date=>X_LAST_UPDATE_DATE,
556    x_created_by=>X_LAST_UPDATED_BY,
557    x_last_update_date=>X_LAST_UPDATE_DATE,
558    x_last_updated_by=>X_LAST_UPDATED_BY,
559    x_last_update_login=>X_LAST_UPDATE_LOGIN
560    );
561 
562   update IGS_RU_NAMED_RULE set
563     RUD_SEQUENCE_NUMBER = NEW_REFERENCES.RUD_SEQUENCE_NUMBER,
564     MESSAGE_RULE = NEW_REFERENCES.MESSAGE_RULE,
565     RUG_SEQUENCE_NUMBER = NEW_REFERENCES.RUG_SEQUENCE_NUMBER,
566     RULE_TEXT = NEW_REFERENCES.RULE_TEXT,
567     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
568     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
569     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
570   where ROWID = X_ROWID
571   ;
572   if (sql%notfound) then
573     raise no_data_found;
574   end if;
575 
576 
577   After_DML (
578     p_action => 'UPDATE',
579     x_rowid => X_ROWID);
580 
581 end UPDATE_ROW;
582 
583 procedure ADD_ROW (
584   X_ROWID in out NOCOPY VARCHAR2,
585   X_RUL_SEQUENCE_NUMBER in NUMBER,
586   X_RUD_SEQUENCE_NUMBER in NUMBER,
587   X_MESSAGE_RULE in NUMBER,
588   X_RUG_SEQUENCE_NUMBER in NUMBER,
589   X_RULE_TEXT in VARCHAR2,
590   X_MODE in VARCHAR2
591   ) is
592   cursor c1 is select rowid from IGS_RU_NAMED_RULE
593      where RUL_SEQUENCE_NUMBER = X_RUL_SEQUENCE_NUMBER
594   ;
595 begin
596   open c1;
597   fetch c1 into X_ROWID;
598   if (c1%notfound) then
599     close c1;
600     INSERT_ROW (
601      X_ROWID,
602      X_RUL_SEQUENCE_NUMBER,
603      X_RUD_SEQUENCE_NUMBER,
604      X_MESSAGE_RULE,
605      X_RUG_SEQUENCE_NUMBER,
606      X_RULE_TEXT,
607      X_MODE);
608     return;
609   end if;
610   close c1;
611   UPDATE_ROW (
612    X_ROWID,
613    X_RUL_SEQUENCE_NUMBER,
614    X_RUD_SEQUENCE_NUMBER,
615    X_MESSAGE_RULE,
616    X_RUG_SEQUENCE_NUMBER,
617    X_RULE_TEXT,
618    X_MODE);
619 end ADD_ROW;
620 
621 procedure DELETE_ROW (
622   X_ROWID in VARCHAR2
623 ) is
624 begin
625 
626   Before_DML (
627     p_action => 'DELETE',
628     x_rowid => X_ROWID);
629 
630   delete from IGS_RU_NAMED_RULE
631   where ROWID = X_ROWID;
632   if (sql%notfound) then
633     raise no_data_found;
634   end if;
635 
636   After_DML (
637     p_action => 'DELETE',
638     x_rowid => X_ROWID);
639 
640 end DELETE_ROW;
641 
642 end IGS_RU_NAMED_RULE_PKG;