DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGS_PE_DATA_GROUPS_PKG

Source


1 PACKAGE BODY igs_pe_data_groups_pkg AS
2 /* $Header: IGSNI60B.pls 120.1 2006/01/25 09:14:22 skpandey noship $ */
3 /******************************************************
4 Created By : nigupta
5 Date Created By : 11-MAY-2000
6 Purpose : To create Table Handler
7 Know limitations, enhancements or remarks : None
8 Change History
9 Who             When            What
10 
11 
12 (reverse chronological order - newest change first)
13 ********************************************************/
14 
15   l_rowid VARCHAR2(25);
16   old_references igs_pe_data_groups_all%RowType;
17   new_references igs_pe_data_groups_all%RowType;
18 
19   PROCEDURE Set_Column_Values (
20     p_action IN VARCHAR2,
21     x_rowid IN VARCHAR2 DEFAULT NULL,
22     x_data_group_id IN NUMBER DEFAULT NULL,
23     x_data_group IN VARCHAR2 DEFAULT NULL,
24     x_description IN VARCHAR2 DEFAULT NULL,
25     x_lvl IN VARCHAR2 DEFAULT NULL,
26     x_lvl_description IN VARCHAR2 DEFAULT NULL,
27     x_closed_ind IN VARCHAR2 DEFAULT NULL,
28     x_creation_date IN DATE DEFAULT NULL,
29     x_created_by IN NUMBER DEFAULT NULL,
30     x_last_update_date IN DATE DEFAULT NULL,
31     x_last_updated_by IN NUMBER DEFAULT NULL,
32     x_last_update_login IN NUMBER DEFAULT NULL,
33     X_ORG_ID in NUMBER default NULL
34   ) AS
35 
36 /******************************************************
37 Created By : nigupta
38 Date Created By : 11-MAY-2000
39 Purpose : To Set Column Values
40 Know limitations, enhancements or remarks : None
41 Change History
42 Who             When            What
43 
44 
45 (reverse chronological order - newest change first)
46 ********************************************************/
47 
48     CURSOR cur_old_ref_values IS
49       SELECT   *
50       FROM     igs_pe_data_groups_all
51       WHERE    rowid = x_rowid;
52 
53   BEGIN
54 
55     l_rowid := x_rowid;
56 
57     -- Code for setting the Old and New Reference Values.
58     -- Populate Old Values.
59     Open cur_old_ref_values;
60     Fetch cur_old_ref_values INTO old_references;
61     IF (cur_old_ref_values%NOTFOUND) AND (p_action NOT IN ('INSERT','VALIDATE_INSERT')) THEN
62       Close cur_old_ref_values;
63       Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
64       IGS_GE_MSG_STACK.ADD;
65       App_Exception.Raise_Exception;
66       Return;
67     END IF;
68     Close cur_old_ref_values;
69 
70     -- Populate New Values.
71     new_references.data_group_id := x_data_group_id;
72     new_references.data_group := x_data_group;
73     new_references.description := x_description;
74     new_references.lvl := x_lvl;
75     new_references.lvl_description := x_lvl_description;
76     new_references.closed_ind := x_closed_ind;
77     new_references.org_id := x_org_id;
78     IF (p_action = 'UPDATE') THEN
79       new_references.creation_date := old_references.creation_date;
80       new_references.created_by := old_references.created_by;
81     ELSE
82       new_references.creation_date := x_creation_date;
83       new_references.created_by := x_created_by;
84     END IF;
85     new_references.last_update_date := x_last_update_date;
86     new_references.last_updated_by := x_last_updated_by;
87     new_references.last_update_login := x_last_update_login;
88 
89   END Set_Column_Values;
90 
91   PROCEDURE Check_Constraints (
92                  Column_Name IN VARCHAR2  DEFAULT NULL,
93                  Column_Value IN VARCHAR2  DEFAULT NULL ) AS
94 
95 /******************************************************
96 Created By : nigupta
97 Date Created By : 11-MAY-2000
98 Purpose : To Check Constraints
99 Know limitations, enhancements or remarks : None
100 Change History
101 Who             When            What
102 
103 
104 (reverse chronological order - newest chanfe first)
105 ********************************************************/
106 
107   BEGIN
108 
109       IF column_name IS NULL THEN
110         NULL;
111       ELSIF  UPPER(column_name) = 'CLOSED_IND'  THEN
112         new_references.closed_ind := column_value;
113         NULL;
114       END IF;
115 
116 
117 
118     -- The following code checks for check constraints on the Columns.
119       IF Upper(Column_Name) = 'CLOSED_IND' OR
120         Column_Name IS NULL THEN
121         IF NOT (new_references.closed_ind IN ('Y', 'N'))  THEN
122            Fnd_Message.Set_Name('IGS','IGS_GE_INVALID_VALUE');
123       IGS_GE_MSG_STACK.ADD;
124            App_Exception.Raise_Exception;
125         END IF;
126       END IF;
127 
128      IF column_name IS NULL THEN
129         NULL;
130       ELSIF  UPPER(column_name) = 'LVL'  THEN
131         new_references.lvl := column_value;
132         NULL;
133       END IF;
134 
135     -- The following code checks for check constraints on the Columns.
136       IF Upper(Column_Name) = 'LVL' OR
137         Column_Name IS NULL THEN
138         IF NOT (new_references.lvl  IN (1,2,3,4,5))  THEN
139            Fnd_Message.Set_Name('IGS','IGS_GE_INVALID_VALUE');
140           IGS_GE_MSG_STACK.ADD;
141            App_Exception.Raise_Exception;
142         END IF;
143       END IF;
144 
145 
146   END Check_Constraints;
147 
148    PROCEDURE Check_Uniqueness AS
149 /******************************************************
150 Created By : nigupta
151 Date Created By : 11-MAY-2000
152 Purpose : To Check Constraints
153 Know limitations, enhancements or remarks : None
154 Change History
155 Who             When            What
156 
157 
158 (reverse chronological order - newest chanfe first)
159 ********************************************************/
160    Begin
161         IF Get_Uk_For_Validation (
162         new_references.data_group
163         ) THEN
164         Fnd_Message.Set_Name ('IGS', 'IGS_GE_MULTI_ORG_DUP_REC');
165         IGS_GE_MSG_STACK.ADD;
166         app_exception.raise_exception;
167         END IF;
168  END Check_Uniqueness ;
169 
170   FUNCTION Get_PK_For_Validation (
171     x_data_group_id IN NUMBER
172     ) RETURN BOOLEAN AS
173 
174 /******************************************************
175 Created By : nigupta
176 Date Created By : 11-MAY-2000
177 Purpose : To enforce Primary Key validation
178 Know limitations, enhancements or remarks : None
179 Change History
180 Who             When            What
181 skpandey        24-JAN-2006     Bug#3686681: Full table scan Issue. Removed Upper to optimize query.
182 (reverse chronological order - newest change first)
183 ********************************************************/
184 
185     CURSOR cur_rowid IS
186       SELECT   rowid
187       FROM     igs_pe_data_groups_all
188       WHERE    data_group_id = UPPER(X_data_group_id);
189 
190     lv_rowid cur_rowid%RowType;
191 
192   BEGIN
193 
194     Open cur_rowid;
195     Fetch cur_rowid INTO lv_rowid;
196     IF (cur_rowid%FOUND) THEN
197       Close cur_rowid;
198       Return(TRUE);
199     ELSE
200       Close cur_rowid;
201       Return(FALSE);
202     END IF;
203   END Get_PK_For_Validation;
204 
205    FUNCTION Get_UK_For_Validation (
206     x_data_group IN VARCHAR2
207     ) RETURN BOOLEAN AS
208 /******************************************************
209 Created By : nigupta
210 Date Created By : 11-MAY-2000
211 Purpose : To enforce Primary Key validation
212 Know limitations, enhancements or remarks : None
213 Change History
214 Who             When            What
215 
216 
217 (reverse chronological order - newest chanfe first)
218 ********************************************************/
219     CURSOR cur_rowid IS
220       SELECT   rowid
221       FROM     igs_pe_data_groups_all
222       WHERE    data_group = x_data_group
223       and      ((l_rowid is null) or (rowid <> l_rowid));
224 
225     lv_rowid cur_rowid%RowType;
226 
227   BEGIN
228 
229     Open cur_rowid;
230     Fetch cur_rowid INTO lv_rowid;
231     IF (cur_rowid%FOUND) THEN
232       Close cur_rowid;
233         Return (TRUE);
234         ELSE
235        close cur_rowid;
236       return(false);
237     END IF;
238   END Get_UK_For_Validation ;
239 
240 FUNCTION val_data_group(p_data_group_id IN NUMBER ,
241                         p_message_name OUT NOCOPY VARCHAR2 )
242 RETURN BOOLEAN IS
243    v_closed_ind  igs_pe_data_groups_all.closed_ind%TYPE;
244    CURSOR  c_get_closed_ind ( cp_data_group igs_pe_data_groups_all.data_group_id%TYPE) IS
245    SELECT  closed_ind
246    FROM    igs_pe_data_groups_all
247    WHERE   data_group_id = cp_data_group;
248 
249 BEGIN
250    p_message_name := NULL;
251    OPEN c_get_closed_ind(p_data_group_id);
252    FETCH c_get_closed_ind INTO v_closed_ind;
253    IF (c_get_closed_ind%NOTFOUND) THEN
254       CLOSE c_get_closed_ind;
255       RETURN TRUE;
256    END IF;
257    CLOSE c_get_closed_ind;
258    IF (v_closed_ind = 'Y') THEN
259       p_message_name := 'IGS_PE_DATA_CLOSED';
260       RETURN FALSE;
261    END IF;
262    RETURN TRUE;
263 END val_data_group;
264 
265   PROCEDURE Before_DML (
266     p_action IN VARCHAR2,
267     x_rowid IN VARCHAR2 DEFAULT NULL,
268     x_data_group_id IN NUMBER DEFAULT NULL,
269     x_data_group IN VARCHAR2 DEFAULT NULL,
270     x_description IN VARCHAR2 DEFAULT NULL,
271     x_lvl IN VARCHAR2 DEFAULT NULL,
272     x_lvl_description IN VARCHAR2 DEFAULT NULL,
273     x_closed_ind IN VARCHAR2 DEFAULT NULL,
274     x_creation_date IN DATE DEFAULT NULL,
275     x_created_by IN NUMBER DEFAULT NULL,
276     x_last_update_date IN DATE DEFAULT NULL,
277     x_last_updated_by IN NUMBER DEFAULT NULL,
278     x_last_update_login IN NUMBER DEFAULT NULL,
279     X_ORG_ID in NUMBER default NULL
280   ) AS
281 
282 /******************************************************
283 Created By : nigupta
284 Date Created By : 11-MAY-2000
285 Purpose : To check Before DML
286 Know limitations, enhancements or remarks : None
287 Change History
288 Who             When            What
289 
290 
291 (reverse chronological order - newest change first)
292  asbala          18-JUL-03        2885709, made l_rowid := null at the end of before_dml
293 ********************************************************/
294 
295   BEGIN
296 
297     Set_Column_Values (
298       p_action,
299       x_rowid,
300       x_data_group_id,
301       x_data_group,
302       x_description,
303       x_lvl,
304       x_lvl_description,
305       x_closed_ind,
306       x_creation_date,
307       x_created_by,
308       x_last_update_date,
309       x_last_updated_by,
310       x_last_update_login ,
311       x_org_id
312     );
313 
314     IF (p_action = 'INSERT') THEN
315       -- Call all the procedures related to Before Insert.
316       Null;
317              IF Get_Pk_For_Validation(
318                 new_references.data_group_id)  THEN
319                Fnd_Message.Set_name('IGS','IGS_GE_MULTI_ORG_DUP_REC');
320                IGS_GE_MSG_STACK.ADD;
321                App_Exception.Raise_Exception;
322              END IF;
323       Check_Constraints;
324       Check_Uniqueness;
325     ELSIF (p_action = 'UPDATE') THEN
326       -- Call all the procedures related to Before Update.
327       Null;
328       Check_Constraints;
329       Check_Uniqueness;
330     ELSIF (p_action = 'VALIDATE_INSERT') THEN
331          -- Call all the procedures related to Before Insert.
332       IF Get_PK_For_Validation (
333                 new_references.data_group_id)  THEN
334                Fnd_Message.Set_name('IGS','IGS_GE_MULTI_ORG_DUP_REC');
335       IGS_GE_MSG_STACK.ADD;
336                App_Exception.Raise_Exception;
337              END IF;
338       Check_Constraints;
339 
340     ELSIF (p_action = 'VALIDATE_UPDATE') THEN
341       Check_Constraints;
342 
343     END IF;
344     l_rowid:=null;
345   END Before_DML;
346 
347   PROCEDURE After_DML (
348     p_action IN VARCHAR2,
349     x_rowid IN VARCHAR2
350   ) IS
351 
352 /******************************************************
353 Created By : nigupta
354 Date Created By : 11-MAY-2000
355 Purpose : To check After DML
356 Know limitations, enhancements or remarks : None
357 Change History
358 Who             When            What
359 asbala        21-JUL-03      2885709 Made l_rowid:=null in the end
360 
361 (reverse chronological order - newest change first)
362 ********************************************************/
363 
364   BEGIN
365 
366     l_rowid := x_rowid;
367 
368     IF (p_action = 'INSERT') THEN
369       -- Call all the procedures related to After Insert.
370       Null;
371     ELSIF (p_action = 'UPDATE') THEN
372       -- Call all the procedures related to After Update.
373       Null;
374     END IF;
375 
376     l_rowid:=null;
377 
378   END After_DML;
379 
380  procedure INSERT_ROW (
381       X_ROWID in out NOCOPY VARCHAR2,
382        x_DATA_GROUP_ID IN OUT NOCOPY NUMBER,
383        x_DATA_GROUP IN VARCHAR2,
384        x_DESCRIPTION IN VARCHAR2,
385        x_LVL IN VARCHAR2,
386        x_LVL_DESCRIPTION IN VARCHAR2,
387        x_CLOSED_IND IN VARCHAR2,
388       X_MODE in VARCHAR2 default 'R'  ,
389        X_ORG_ID in NUMBER
390   ) AS
391 
392 /******************************************************
393 Created By : nigupta
394 Date Created By : 11-MAY-2000
395 Purpose : To insert row
396 Know limitations, enhancements or remarks : None
397 Change History
398 Who             When            What
399 
400 
401 (reverse chronological order - newest chanfe first)
402 ********************************************************/
403 
404     cursor C is select ROWID from igs_pe_data_groups_all
405              where                 DATA_GROUP_ID= X_DATA_GROUP_ID
406 ;
407      X_LAST_UPDATE_DATE DATE ;
408      X_LAST_UPDATED_BY NUMBER ;
409      X_LAST_UPDATE_LOGIN NUMBER ;
410  begin
411      X_LAST_UPDATE_DATE := SYSDATE;
412       if(X_MODE = 'I') then
413         X_LAST_UPDATED_BY := 1;
414         X_LAST_UPDATE_LOGIN := 0;
415          elsif (X_MODE = 'R') then
416                X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
417             if X_LAST_UPDATED_BY is NULL then
418                 X_LAST_UPDATED_BY := -1;
419             end if;
420             X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
421          if X_LAST_UPDATE_LOGIN is NULL then
422             X_LAST_UPDATE_LOGIN := -1;
423           end if;
424        else
425         FND_MESSAGE.SET_NAME( 'FND', 'SYSTEM-INVALID ARGS');
426       IGS_GE_MSG_STACK.ADD;
427           app_exception.raise_exception;
428        end if;
429 
430 Select IGS_PE_DATA_GROUPS_S.NEXTVAL into X_DATA_GROUP_ID From Dual;
431 
432    Before_DML(
433                 p_action=>'INSERT',
434                 x_rowid=>X_ROWID,
435                x_data_group_id=>X_DATA_GROUP_ID,
436                x_data_group=>X_DATA_GROUP,
437                x_description=>X_DESCRIPTION,
438                x_lvl=>X_LVL,
439                x_lvl_description=>X_LVL_DESCRIPTION,
440                x_closed_ind=>X_CLOSED_IND,
441                x_creation_date=>X_LAST_UPDATE_DATE,
442                x_created_by=>X_LAST_UPDATED_BY,
446                x_org_id=>igs_ge_gen_003.get_org_id
443                x_last_update_date=>X_LAST_UPDATE_DATE,
444                x_last_updated_by=>X_LAST_UPDATED_BY,
445                x_last_update_login=>X_LAST_UPDATE_LOGIN,
447 );
448      insert into igs_pe_data_groups_all (
449                 DATA_GROUP_ID
450                 ,DATA_GROUP
451                 ,DESCRIPTION
452                 ,LVL
453                 ,LVL_DESCRIPTION
454                 ,CLOSED_IND
455                 ,CREATION_DATE
456                 ,CREATED_BY
457                 ,LAST_UPDATE_DATE
458                 ,LAST_UPDATED_BY
459                 ,LAST_UPDATE_LOGIN,
460                  ORG_ID
461         ) values  (
462                 NEW_REFERENCES.DATA_GROUP_ID
463                 ,NEW_REFERENCES.DATA_GROUP
464                 ,NEW_REFERENCES.DESCRIPTION
465                 ,NEW_REFERENCES.LVL
466                 ,NEW_REFERENCES.LVL_DESCRIPTION
467                 ,NEW_REFERENCES.CLOSED_IND
468                 ,X_LAST_UPDATE_DATE
469                 ,X_LAST_UPDATED_BY
470                 ,X_LAST_UPDATE_DATE
471                 ,X_LAST_UPDATED_BY
472                 ,X_LAST_UPDATE_LOGIN,
473               NEW_REFERENCES.ORG_ID
474 );
475                 open c;
476                  fetch c into X_ROWID;
477                 if (c%notfound) then
478                 close c;
479              raise no_data_found;
480                 end if;
481                 close c;
482     After_DML (
483                 p_action => 'INSERT' ,
484                 x_rowid => X_ROWID );
485 end INSERT_ROW;
486 
487  procedure LOCK_ROW (
488       X_ROWID in  VARCHAR2,
489        x_DATA_GROUP_ID IN NUMBER,
490        x_DATA_GROUP IN VARCHAR2,
491        x_DESCRIPTION IN VARCHAR2,
492        x_LVL IN VARCHAR2,
493        x_LVL_DESCRIPTION IN VARCHAR2,
494        x_CLOSED_IND IN VARCHAR2
495  )
496        AS
497 
498 /******************************************************
499 Created By : nigupta
500 Date Created By : 11-MAY-2000
501 Purpose : To Lock Row
502 Know limitations, enhancements or remarks : None
503 Change History
504 Who             When            What
505 
506 
507 (reverse chronological order - newest change first)
508 ********************************************************/
509 
510    cursor c1 is select
511       DATA_GROUP
512 ,      DESCRIPTION
513 ,      LVL
514 ,      LVL_DESCRIPTION
515 ,      CLOSED_IND
516     from igs_pe_data_groups_all
517     where ROWID = X_ROWID
518     for update nowait;
519      tlinfo c1%rowtype;
520 begin
521   open c1;
522   fetch c1 into tlinfo;
523   if (c1%notfound) then
524     fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
525       IGS_GE_MSG_STACK.ADD;
526     close c1;
527     app_exception.raise_exception;
528     return;
529   end if;
530   close c1;
531 if ( (  tlinfo.DATA_GROUP = X_DATA_GROUP)
532   AND (tlinfo.DESCRIPTION = X_DESCRIPTION)
533   AND (tlinfo.LVL = X_LVL)
534   AND (tlinfo.LVL_DESCRIPTION = X_LVL_DESCRIPTION)
535   AND (tlinfo.CLOSED_IND = X_CLOSED_IND)
536   ) then
537     null;
538   else
539     fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
540       IGS_GE_MSG_STACK.ADD;
541     app_exception.raise_exception;
542   end if;
543   return;
544 end LOCK_ROW;
545 
546  Procedure UPDATE_ROW (
547       X_ROWID in  VARCHAR2,
548        x_DATA_GROUP_ID IN NUMBER,
549        x_DATA_GROUP IN VARCHAR2,
550        x_DESCRIPTION IN VARCHAR2,
551        x_LVL IN VARCHAR2,
552        x_LVL_DESCRIPTION IN VARCHAR2,
553        x_CLOSED_IND IN VARCHAR2,
554       X_MODE in VARCHAR2 default 'R'
555   ) AS
556 
557 /******************************************************
558 Created By : nigupta
559 Date Created By : 11-MAY-2000
560 Purpose : To Update Row
561 Know limitations, enhancements or remarks : None
562 Change History
563 Who             When            What
564 
565 
566 (reverse chronological order - newest change first)
567 ********************************************************/
568 
569      X_LAST_UPDATE_DATE DATE ;
570      X_LAST_UPDATED_BY NUMBER ;
571      X_LAST_UPDATE_LOGIN NUMBER ;
572  begin
573      X_LAST_UPDATE_DATE := SYSDATE;
574       if(X_MODE = 'I') then
575         X_LAST_UPDATED_BY := 1;
576         X_LAST_UPDATE_LOGIN := 0;
577          elsif (X_MODE = 'R') then
578                X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
579             if X_LAST_UPDATED_BY is NULL then
580                 X_LAST_UPDATED_BY := -1;
581             end if;
582             X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
583          if X_LAST_UPDATE_LOGIN is NULL then
584             X_LAST_UPDATE_LOGIN := -1;
585           end if;
586        else
587         FND_MESSAGE.SET_NAME( 'FND', 'SYSTEM-INVALID ARGS');
588       IGS_GE_MSG_STACK.ADD;
589           app_exception.raise_exception;
590        end if;
591    Before_DML(
592                 p_action=>'UPDATE',
593                 x_rowid=>X_ROWID,
594                x_data_group_id=>X_DATA_GROUP_ID,
595                x_data_group=>X_DATA_GROUP,
596                x_description=>X_DESCRIPTION,
597                x_lvl=>X_LVL,
598                x_lvl_description=>X_LVL_DESCRIPTION,
599                x_closed_ind=>X_CLOSED_IND,
600                x_creation_date=>X_LAST_UPDATE_DATE,
601                x_created_by=>X_LAST_UPDATED_BY,
602                x_last_update_date=>X_LAST_UPDATE_DATE,
603                x_last_updated_by=>X_LAST_UPDATED_BY,
604                x_last_update_login=>X_LAST_UPDATE_LOGIN
605 );
606    update igs_pe_data_groups_all set
607       DATA_GROUP =  NEW_REFERENCES.DATA_GROUP,
608       DESCRIPTION =  NEW_REFERENCES.DESCRIPTION,
609       LVL =  NEW_REFERENCES.LVL,
610       LVL_DESCRIPTION =  NEW_REFERENCES.LVL_DESCRIPTION,
611       CLOSED_IND =  NEW_REFERENCES.CLOSED_IND,
612         LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
613         LAST_UPDATED_BY = X_LAST_UPDATED_BY,
614         LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
615           where ROWID = X_ROWID;
616         if (sql%notfound) then
617                 raise no_data_found;
618         end if;
619 
620  After_DML (
621         p_action => 'UPDATE' ,
622         x_rowid => X_ROWID
623         );
624 end UPDATE_ROW;
625 
626  procedure ADD_ROW (
627       X_ROWID in out NOCOPY VARCHAR2,
628        x_DATA_GROUP_ID IN OUT NOCOPY NUMBER,
629        x_DATA_GROUP IN VARCHAR2,
630        x_DESCRIPTION IN VARCHAR2,
631        x_LVL IN VARCHAR2,
632        x_LVL_DESCRIPTION IN VARCHAR2,
633        x_CLOSED_IND IN VARCHAR2,
634       X_MODE in VARCHAR2 default 'R'  ,
635        X_ORG_ID in NUMBER
636   ) AS
637 
638 /******************************************************
639 Created By : nigupta
640 Date Created By : 11-MAY-2000
641 Purpose : To Add Row
642 Know limitations, enhancements or remarks : None
643 Change History
644 Who             When            What
645 
646 
647 (reverse chronological order - newest change first)
648 ********************************************************/
649 
650     cursor c1 is select ROWID from igs_pe_data_groups_all
651              where     DATA_GROUP_ID= X_DATA_GROUP_ID
652 ;
653 begin
654         open c1;
655                 fetch c1 into X_ROWID;
656         if (c1%notfound) then
657         close c1;
658     INSERT_ROW (
659       X_ROWID,
660        X_DATA_GROUP_ID,
661        X_DATA_GROUP,
662        X_DESCRIPTION,
663        X_LVL,
664        X_LVL_DESCRIPTION,
665        X_CLOSED_IND,
666       X_MODE,
667       x_org_id
668  );
669      return;
670         end if;
671            close c1;
672 UPDATE_ROW (
673       X_ROWID,
674        X_DATA_GROUP_ID,
675        X_DATA_GROUP,
676        X_DESCRIPTION,
677        X_LVL,
678        X_LVL_DESCRIPTION,
679        X_CLOSED_IND,
680       X_MODE
681 );
682 end ADD_ROW;
683 
684 END igs_pe_data_groups_pkg;