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