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