[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;