DBA Data[Home] [Help]

PACKAGE BODY: APPS.CS_KB_SETS_PKG

Source


1 PACKAGE BODY CS_KB_SETS_PKG AS
2 /* $Header: cskbsb.pls 120.0 2005/06/01 15:19:23 appldev noship $ */
3 /*=======================================================================+
4  |  Copyright (c) 1999 Oracle Corporation Redwood Shores, California, USA|
5  |                            All rights reserved.                       |
6  +=======================================================================+
7  | FILENAME cskbsb.pls
8  | DESCRIPTION
9  |   PL/SQL body for package:  CS_KB_SETS_PKG
10  |   This contains Table Handlers for CS_KB_SETS_B / _TL
11  |
12  |   HISTORY
13  |     10.18.99    A. WONG Created
14  |     01.05.00    HBALA   Added LOAD_ROW, TRANSLATE_ROW
15  |     18-Aug-2003 MKETTLE 11.5.10 Cleanup - Reinstated use of Table
16  |                         Handlers
17  |     17-May-2005 MKETTLE Cleanup - Removed unused Apis: Does_Set_Exist
18  *=======================================================================*/
19 
20  -- Private apis
21  PROCEDURE Get_Who(
22    X_SYSDATE  OUT NOCOPY date,
23    X_USER_ID  OUT NOCOPY number,
24    X_LOGIN_ID OUT NOCOPY number)
25  IS
26  BEGIN
27   X_SYSDATE := sysdate;
28   X_USER_ID := fnd_global.user_id;
29   X_LOGIN_ID := fnd_global.login_id;
30  END Get_Who;
31 
32  --Table Handlers:
33  PROCEDURE Insert_Row(
34    X_ROWID              IN OUT NOCOPY VARCHAR2,
35    X_SET_ID             IN NUMBER,
36    X_SET_NUMBER         IN VARCHAR2,
37    X_SET_TYPE_ID        IN NUMBER,
38    X_SET_NAME           IN VARCHAR2,
39    X_GROUP_FLAG         IN NUMBER,
40    X_STATUS             IN VARCHAR2,
41    X_ACCESS_LEVEL       IN NUMBER,
42    X_NAME               IN VARCHAR2,
43    X_DESCRIPTION        IN VARCHAR2,
44    X_CREATION_DATE      IN DATE,
45    X_CREATED_BY         IN NUMBER,
46    X_LAST_UPDATE_DATE   IN DATE,
47    X_LAST_UPDATED_BY    IN NUMBER,
48    X_LAST_UPDATE_LOGIN  IN NUMBER,
49    X_LOCKED_BY          IN NUMBER,
50    X_LOCK_DATE          IN DATE,
51    X_ATTRIBUTE_CATEGORY IN VARCHAR2,
52    X_ATTRIBUTE1         IN VARCHAR2,
53    X_ATTRIBUTE2         IN VARCHAR2,
54    X_ATTRIBUTE3         IN VARCHAR2,
55    X_ATTRIBUTE4         IN VARCHAR2,
56    X_ATTRIBUTE5         IN VARCHAR2,
57    X_ATTRIBUTE6         IN VARCHAR2,
58    X_ATTRIBUTE7         IN VARCHAR2,
59    X_ATTRIBUTE8         IN VARCHAR2,
60    X_ATTRIBUTE9         IN VARCHAR2,
61    X_ATTRIBUTE10        IN VARCHAR2,
62    X_ATTRIBUTE11        IN VARCHAR2,
63    X_ATTRIBUTE12        IN VARCHAR2,
64    X_ATTRIBUTE13        IN VARCHAR2,
65    X_ATTRIBUTE14        IN VARCHAR2,
66    X_ATTRIBUTE15        IN VARCHAR2,
67    X_EMPLOYEE_ID        IN NUMBER,
68    X_PARTY_ID           IN NUMBER,
69    X_START_ACTIVE_DATE  IN DATE,
70    X_END_ACTIVE_DATE    IN DATE,
71    X_PRIORITY_CODE      IN NUMBER,
72    X_VISIBILITY_ID      IN NUMBER )
73  IS
74 
75   CURSOR c IS
76   SELECT rowid
77   FROM CS_KB_SETS_B
78   WHERE set_id = x_set_id;
79  BEGIN
80 
81   INSERT INTO CS_KB_SETS_B (
82     set_id,
83     set_number,
84     set_type_id,
85     set_name,
86     group_flag,
87     status,
88     access_level,
89     creation_date,
90     created_by,
91     last_update_date,
92     last_updated_by,
93     last_update_login,
94     locked_by,
95     lock_date,
96     attribute_category,
97     attribute1,
98     attribute2,
99     attribute3,
100     attribute4,
101     attribute5,
102     attribute6,
103     attribute7,
104     attribute8,
105     attribute9,
106     attribute10,
107     attribute11,
108     attribute12,
109     attribute13,
110     attribute14,
111     attribute15,
112     employee_id,
113     party_id,
114     start_active_date,
115     end_active_date,
116     priority_code,
117     original_author,
118     original_author_date,
119     visibility_id,
120     latest_version_flag,
121     USAGE_SCORE )
122   VALUES (
123     x_set_id,
124     x_set_number,
125     x_set_type_id,
126     x_set_name,
127     x_group_flag,
128     x_status,
129     null, --l_access_level, --Commented out 14-Jul-2003 - Not required in 11.5.10
130     x_creation_date,
131     x_created_by,
132     x_last_update_date,
133     x_last_updated_by,
134     x_last_update_login,
135     x_locked_by,
136     x_lock_date,
137     x_attribute_category,
138     x_attribute1,
139     x_attribute2,
140     x_attribute3,
141     x_attribute4,
142     x_attribute5,
143     x_attribute6,
144     x_attribute7,
145     x_attribute8,
146     x_attribute9,
147     x_attribute10,
148     x_attribute11,
149     x_attribute12,
150     x_attribute13,
151     x_attribute14,
152     x_attribute15,
153     x_employee_id,
154     x_party_id,
155     x_start_active_date,
156     x_end_active_date,
157     4, --l_priority_code,
158     x_created_by,
159     x_creation_date,
160     x_visibility_id,
161     'Y',
162     0 );
163 
164   INSERT INTO CS_KB_SETS_TL (
165     set_id,
166     name,
167     description,
168     creation_date,
169     created_by,
170     last_update_date,
171     last_updated_by,
172     last_update_login,
173     language,
174     source_lang
175   ) SELECT
176     x_set_id,
177     x_name,
178     x_description,
179     x_creation_date,
180     x_created_by,
181     x_last_update_date,
182     x_last_updated_by,
183     x_last_update_login,
184     l.language_code,
185     USERENV('LANG')
186   FROM fnd_languages l
187   WHERE l.installed_flag IN ('I', 'B')
188   AND NOT EXISTS
189     (SELECT NULL
190      FROM CS_KB_SETS_TL t
191      WHERE t.set_id = x_set_id
192      AND t.language = l.language_code);
193 
194   OPEN c;
195   FETCH c INTO x_rowid;
196   IF (c%NOTFOUND) THEN
197     CLOSE c;
198     RAISE NO_DATA_FOUND;
199   END IF;
200   CLOSE c;
201 
202  END Insert_Row;
203 
204 
205  PROCEDURE Lock_Row (
206    X_SET_ID             IN NUMBER,
207    X_SET_NUMBER         IN VARCHAR2,
208    X_SET_TYPE_ID        IN NUMBER,
209    X_SET_NAME           IN VARCHAR2,
210    X_GROUP_FLAG         IN NUMBER,
211    X_STATUS             IN VARCHAR2,
212    X_ACCESS_LEVEL       IN NUMBER,
213    X_NAME               IN VARCHAR2,
214    X_DESCRIPTION        IN VARCHAR2,
215    X_LOCKED_BY          IN NUMBER,
216    X_LOCK_DATE          IN DATE,
217    X_ATTRIBUTE_CATEGORY IN VARCHAR2,
218    X_ATTRIBUTE1         IN VARCHAR2,
219    X_ATTRIBUTE2         IN VARCHAR2,
220    X_ATTRIBUTE3         IN VARCHAR2,
221    X_ATTRIBUTE4         IN VARCHAR2,
222    X_ATTRIBUTE5         IN VARCHAR2,
223    X_ATTRIBUTE6         IN VARCHAR2,
224    X_ATTRIBUTE7         IN VARCHAR2,
225    X_ATTRIBUTE8         IN VARCHAR2,
226    X_ATTRIBUTE9         IN VARCHAR2,
227    X_ATTRIBUTE10        IN VARCHAR2,
228    X_ATTRIBUTE11        IN VARCHAR2,
229    X_ATTRIBUTE12        IN VARCHAR2,
230    X_ATTRIBUTE13        IN VARCHAR2,
231    X_ATTRIBUTE14        IN VARCHAR2,
232    X_ATTRIBUTE15        IN VARCHAR2,
233    X_EMPLOYEE_ID        IN NUMBER,
234    X_PARTY_ID           IN NUMBER,
235    X_START_ACTIVE_DATE  IN DATE,
236    X_END_ACTIVE_DATE    IN DATE,
237    X_PRIORITY_CODE      IN NUMBER )
238  IS
239   CURSOR c IS
240    SELECT
241       set_id,
242       set_number,
243       set_type_id,
244       set_name,
245       group_flag,
246       status,
247       access_level,
248       locked_by,
249       lock_date,
250       attribute_category,
251       attribute1,
252       attribute2,
253       attribute3,
254       attribute4,
255       attribute5,
256       attribute6,
257       attribute7,
258       attribute8,
259       attribute9,
260       attribute10,
261       attribute11,
262       attribute12,
263       attribute13,
264       attribute14,
265       attribute15,
266       employee_id,
267       party_id,
268       start_active_date,
269       end_active_date,
270       priority_code
271    FROM CS_KB_SETS_B
272    WHERE set_id = x_set_id
273    FOR UPDATE OF set_id NOWAIT;
274 
275   recinfo c%ROWTYPE;
276 
277   CURSOR c1 IS
278    SELECT
279       name,
280       description,
281       decode(language, USERENV('LANG'), 'Y', 'N') baselang
282    FROM CS_KB_SETS_TL
283    WHERE set_id = x_set_id
284    AND USERENV('LANG') IN (language, source_lang)
285    FOR UPDATE OF set_id NOWAIT;
286 
287  BEGIN
288   OPEN c;
289   FETCH c INTO recinfo;
290   IF (c%NOTFOUND) THEN
291     CLOSE c;
292     FND_MESSAGE.set_name('FND', 'FORM_RECORD_DELETED');
293     APP_EXCEPTION.raise_exception;
294   END IF;
295   CLOSE c;
296   IF (    ((recinfo.attribute_category = x_attribute_category)
297            OR ((recinfo.attribute_category IS NULL) AND (x_attribute_category IS NULL)))
298       AND ((recinfo.attribute1 = x_attribute1)
299            OR ((recinfo.attribute1 IS NULL) AND (x_attribute1 IS NULL)))
300       AND ((recinfo.attribute2 = x_attribute2)
301            OR ((recinfo.attribute2 IS NULL) AND (x_attribute2 IS NULL)))
302       AND ((recinfo.attribute3 = x_attribute3)
303            OR ((recinfo.attribute3 IS NULL) AND (x_attribute3 IS NULL)))
304       AND ((recinfo.attribute4 = x_attribute4)
305            OR ((recinfo.attribute4 IS NULL) AND (x_attribute4 IS NULL)))
306       AND ((recinfo.attribute5 = x_attribute5)
307            OR ((recinfo.attribute5 IS NULL) AND (x_attribute5 IS NULL)))
308       AND ((recinfo.attribute6 = x_attribute6)
309            OR ((recinfo.attribute6 IS NULL) AND (x_attribute6 IS NULL)))
310       AND ((recinfo.attribute7 = x_attribute7)
311            OR ((recinfo.attribute7 IS NULL) AND (x_attribute7 IS NULL)))
312       AND ((recinfo.attribute8 = x_attribute8)
313            OR ((recinfo.attribute8 IS NULL) AND (x_attribute8 IS NULL)))
314       AND ((recinfo.attribute9 = x_attribute9)
315            OR ((recinfo.attribute9 IS NULL) AND (x_attribute9 IS NULL)))
316       AND ((recinfo.attribute10 = x_attribute10)
317            OR ((recinfo.attribute10 IS NULL) AND (x_attribute10 IS NULL)))
318       AND ((recinfo.attribute11 = x_attribute11)
319            OR ((recinfo.attribute11 IS NULL) AND (x_attribute11 IS NULL)))
320       AND ((recinfo.attribute12 = x_attribute12)
321            OR ((recinfo.attribute12 IS NULL) AND (x_attribute12 IS NULL)))
322       AND ((recinfo.attribute13 = x_attribute13)
323            OR ((recinfo.attribute13 IS NULL) AND (x_attribute13 IS NULL)))
324       AND ((recinfo.attribute14 = x_attribute14)
325            OR ((recinfo.attribute14 IS NULL) AND (x_attribute14 IS NULL)))
326       AND ((recinfo.attribute15 = x_attribute15)
327            OR ((recinfo.attribute15 IS NULL) AND (x_attribute15 IS NULL)))
328       AND ((recinfo.employee_id = x_employee_id)
329            OR ((recinfo.employee_id IS NULL) AND (x_employee_id IS NULL)))
330       AND ((recinfo.party_id = x_party_id)
331            OR ((recinfo.party_id IS NULL) AND (x_party_id IS NULL)))
332       AND ((recinfo.group_flag = x_group_flag)
333            OR ((recinfo.group_flag IS NULL) AND (x_group_flag IS NULL)))
334       AND ((recinfo.status = x_status)
335            OR ((recinfo.status IS NULL) AND (x_status IS NULL)))
336       AND ((recinfo.access_level = x_access_level)
337            OR ((recinfo.access_level IS NULL) AND (x_access_level IS NULL)))
338       AND ((recinfo.set_type_id = x_set_type_id)
339            OR ((recinfo.set_type_id IS NULL) AND (x_set_type_id IS NULL)))
340       AND ((recinfo.set_number = x_set_number)
341            OR ((recinfo.set_number IS NULL) AND (x_set_number IS NULL)))
342       AND ((recinfo.set_id = x_set_id)
343            OR ((recinfo.set_id IS NULL) AND (x_set_id IS NULL)))
344       AND ((recinfo.locked_by = x_locked_by)
345            OR ((recinfo.locked_by IS NULL) AND (x_locked_by IS NULL)))
346       AND ((recinfo.lock_date = x_lock_date)
347            OR ((recinfo.lock_date IS NULL) AND (x_lock_date IS NULL)))
348       AND ((recinfo.set_name = x_set_name)
349            OR ((recinfo.set_name IS NULL) AND (x_set_name IS NULL)))
350       AND ((recinfo.start_active_date = x_start_active_date)
351            OR ((recinfo.start_active_date IS NULL) AND (x_start_active_date IS NULL)))
352       AND ((recinfo.end_active_date = x_end_active_date)
353            OR ((recinfo.end_active_date IS NULL) AND (x_end_active_date IS NULL)))
354       AND ((recinfo.priority_code = x_priority_code)
355            OR ((recinfo.priority_code IS NULL) AND (x_priority_code IS NULL)))
356   ) THEN
357     NULL;
358   ELSE
359     FND_MESSAGE.set_name('FND', 'FORM_RECORD_CHANGED');
360     APP_EXCEPTION.raise_exception;
361   END IF;
362 
363   FOR tlinfo IN c1 LOOP
364     IF (tlinfo.baselang = 'Y') THEN
365       IF (    ((tlinfo.name = x_name)
366                OR ((tlinfo.name IS NULL) AND (x_name IS NULL)))
367           AND ((tlinfo.description = x_description)
368                OR ((tlinfo.description IS NULL) AND (x_description IS NULL)))
369       ) THEN
370         NULL;
371       ELSE
372         FND_MESSAGE.set_name('FND', 'FORM_RECORD_CHANGED');
373         APP_EXCEPTION.raise_exception;
374       END IF;
375     END IF;
376   END LOOP;
377   RETURN;
378  END Lock_Row;
379 
380 
381  PROCEDURE Update_Row (
382    X_SET_ID             IN NUMBER,
383    X_SET_NUMBER         IN VARCHAR2,
384    X_SET_TYPE_ID        IN NUMBER,
385    X_SET_NAME           IN VARCHAR2,
386    X_GROUP_FLAG         IN NUMBER,
387    X_STATUS             IN VARCHAR2,
388    X_ACCESS_LEVEL       IN NUMBER,
389    X_NAME               IN VARCHAR2,
390    X_DESCRIPTION        IN VARCHAR2,
391    X_LAST_UPDATE_DATE   IN DATE,
392    X_LAST_UPDATED_BY    IN NUMBER,
393    X_LAST_UPDATE_LOGIN  IN NUMBER,
394    X_LOCKED_BY          IN NUMBER,
395    X_LOCK_DATE          IN DATE,
396    X_ATTRIBUTE_CATEGORY IN VARCHAR2,
397    X_ATTRIBUTE1         IN VARCHAR2,
398    X_ATTRIBUTE2         IN VARCHAR2,
399    X_ATTRIBUTE3         IN VARCHAR2,
400    X_ATTRIBUTE4         IN VARCHAR2,
401    X_ATTRIBUTE5         IN VARCHAR2,
402    X_ATTRIBUTE6         IN VARCHAR2,
403    X_ATTRIBUTE7         IN VARCHAR2,
404    X_ATTRIBUTE8         IN VARCHAR2,
405    X_ATTRIBUTE9         IN VARCHAR2,
406    X_ATTRIBUTE10        IN VARCHAR2,
407    X_ATTRIBUTE11        IN VARCHAR2,
408    X_ATTRIBUTE12        IN VARCHAR2,
409    X_ATTRIBUTE13        IN VARCHAR2,
410    X_ATTRIBUTE14        IN VARCHAR2,
411    X_ATTRIBUTE15        IN VARCHAR2,
412    X_EMPLOYEE_ID        IN NUMBER,
413    X_PARTY_ID           IN NUMBER,
414    X_START_ACTIVE_DATE  IN DATE,
415    X_END_ACTIVE_DATE    IN DATE,
416    X_PRIORITY_CODE      IN NUMBER,
417    X_VISIBILITY_ID      IN NUMBER )
418  IS
419 
420  BEGIN
421 
422   UPDATE CS_KB_SETS_B SET
423     set_type_id = x_set_type_id,
424     set_name = x_set_name,
425     group_flag = x_group_flag,
426     status = x_status,
427     --access_level = l_access_level,
428     last_update_date = x_last_update_date,
429     last_updated_by = x_last_updated_by,
430     last_update_login = x_last_update_login,
431     locked_by = x_locked_by,
432     lock_date = x_lock_date,
433     attribute_category = x_attribute_category,
434     attribute1 = x_attribute1,
435     attribute2 = x_attribute2,
436     attribute3 = x_attribute3,
437     attribute4 = x_attribute4,
438     attribute5 = x_attribute5,
442     attribute9 = x_attribute9,
439     attribute6 = x_attribute6,
440     attribute7 = x_attribute7,
441     attribute8 = x_attribute8,
443     attribute10 = x_attribute10,
444     attribute11 = x_attribute11,
445     attribute12 = x_attribute12,
446     attribute13 = x_attribute13,
447     attribute14 = x_attribute14,
448     attribute15 = x_attribute15,
449     employee_id = x_employee_id,
450     party_id = x_party_id,
451     start_active_date = x_start_active_date,
452     end_active_date = x_end_active_date,
453     --priority_code = l_priority_code,
454     visibility_id = x_visibility_id
455   WHERE set_id = x_set_id;
456 
457   IF (SQL%NOTFOUND) THEN
458     RAISE NO_DATA_FOUND;
459   END IF;
460 
461   UPDATE CS_KB_SETS_TL SET
462     name = x_name,
463     description = x_description,
464     last_update_date = x_last_update_date,
465     last_updated_by = x_last_updated_by,
466     last_update_login = x_last_update_login,
467     source_lang = USERENV('LANG')
468   WHERE set_id = x_set_id
469   AND USERENV('LANG') IN (language, source_lang);
470 
471   IF (SQL%NOTFOUND) THEN
472     RAISE NO_DATA_FOUND;
473   END IF;
474 
475  END Update_Row;
476 
477 
478  PROCEDURE Delete_Row (
479    X_SET_NUMBER IN VARCHAR2 )
480  IS
481 
482  CURSOR c IS
483   SELECT set_id
484   FROM CS_KB_SETS_B
485   WHERE set_number = X_SET_NUMBER;
486 
487  BEGIN
488 
489   FOR rec IN c LOOP
490     DELETE FROM CS_KB_SETS_TL
491     WHERE set_id = rec.set_id;
492   END LOOP;
493 
494   DELETE FROM CS_KB_SETS_B
495   WHERE set_number = x_set_number;
496   IF (SQL%NOTFOUND) THEN
497     RAISE NO_DATA_FOUND;
498   END IF;
499 
500  END Delete_Row;
501 
502 
503  PROCEDURE Add_Language
504  IS
505 
506  BEGIN
507 
508   DELETE FROM CS_KB_SETS_TL t
509   WHERE NOT EXISTS
510     (SELECT NULL
511      FROM CS_KB_SETS_B b
512      WHERE b.set_id = t.set_id );
513 
514   UPDATE CS_KB_SETS_TL T SET (
515       name,
516       description
517     ) = (SELECT
518       b.name,
519       b.description
520     FROM CS_KB_SETS_TL b
521     WHERE b.set_id = t.set_id
522     AND b.language = t.source_lang)
523   WHERE (
524       t.set_id,
525       t.language
526   ) IN (SELECT
527       subt.set_id,
528       subt.language
529     FROM CS_KB_SETS_TL subb, CS_KB_SETS_TL subt
530     WHERE subb.set_id = subt.set_id
531     AND subb.language = subt.source_lang
532     AND (subb.name <> subt.name
533       OR (subb.name IS NULL AND subt.name IS NOT NULL)
534       OR (subb.name IS not NULL AND subt.name IS NULL)
535       OR subb.description <> subt.description
536       OR (subb.description IS NULL AND subt.description IS NOT NULL)
537       OR (subb.description IS NOT NULL AND subt.description IS NULL)
538   ));
539 
540   INSERT INTO CS_KB_SETS_TL (
541     set_id,
542     name,
543     description,
544     creation_date,
545     created_by,
546     last_update_date,
547     last_update_login,
548     last_updated_by,
549     language,
550     source_lang
551   ) SELECT
552     b.set_id,
553     b.name,
554     b.description,
555     b.creation_date,
556     b.created_by,
557     b.last_update_date,
558     b.last_update_login,
559     b.last_updated_by,
560     l.language_code,
561     b.source_lang
562   FROM CS_KB_SETS_TL b, fnd_languages l --bayu
563   WHERE l.installed_flag IN ('I', 'B')
564   AND b.language = USERENV('LANG')
565   AND NOT EXISTS
566     (SELECT NULL
567     FROM CS_KB_SETS_TL t
568     WHERE t.set_id = b.set_id
569     AND t.language = l.language_code);
570 
571  END Add_Language;
572 
573 
574  PROCEDURE Translate_Row(
575    X_SET_ID     IN NUMBER,
576    X_SET_NUMBER IN VARCHAR2,
577    X_OWNER      IN VARCHAR2,
578    X_NAME       IN VARCHAR2) IS
579  BEGIN
580 
581   UPDATE CS_KB_SETS_TL SET
582 	name = x_name,
583 	last_update_date  = SYSDATE,
584     last_updated_by   = decode(x_owner, 'SEED', 1, 0),
585     last_update_login = 0,
586     source_lang       = USERENV('LANG')
587   WHERE set_id = X_SET_ID
588   AND USERENV('LANG') IN (language, source_lang);
589 
590  END Translate_Row;
591 
592 
593  PROCEDURE Load_Row(
594    X_SET_ID        IN NUMBER,
595    X_SET_NUMBER    IN VARCHAR2,
596    X_SET_TYPE_ID   IN NUMBER,
597    X_STATUS        IN VARCHAR2,
598    X_ACCESS_LEVEL  IN NUMBER,
599    X_OWNER         IN VARCHAR2,
600    X_NAME          IN VARCHAR2,
601    X_VISIBILITY_ID IN NUMBER)
602  IS
603 
604   l_user_id NUMBER;
605   l_rowid VARCHAR2(100);
606   l_locked_by NUMBER;
607   l_lock_date DATE;
608 
609  BEGIN
610 
611     IF (x_owner = 'SEED') THEN
612       l_user_id := 1;
613     ELSE
614       l_user_id := 0;
615     END IF;
616 
617     CS_KB_SOLUTION_PVT.Get_Lock_Info(x_set_number, l_locked_by, l_lock_date);
618 
619     Update_Row(
620       x_set_id => x_set_id,
621       x_set_number => x_set_number,
622       x_set_type_id => x_set_type_id,
623       x_set_name => NULL,
624       x_group_flag => NULL,
625       x_status => x_status,
626       x_access_level => x_access_level,
627       x_name => x_name,
628       x_description => NULL,
629       x_last_update_date => SYSDATE,
630       x_last_updated_by => l_user_id,
631       x_last_update_login => 0,
632       x_locked_by => l_locked_by,
633       x_lock_date => l_lock_date,
634       x_visibility_id => x_visibility_id);
635 
636  EXCEPTION
637   WHEN NO_DATA_FOUND THEN
638         	Insert_Row(
639        		  x_rowid => l_rowid,
640               x_set_id => x_set_id,
641               x_set_number => x_set_number,
642               x_set_type_id => x_set_type_id,
643               x_set_name => NULL,
644               x_group_flag => NULL,
645               x_status => x_status,
646               x_access_level => x_access_level,
647               x_name => x_name,
648               x_description => NULL,
649     		  x_creation_date => SYSDATE,
650     		  x_created_by => l_user_id,
651     		  x_last_update_date => SYSDATE,
652     		  x_last_updated_by => l_user_id,
653     		  x_last_update_login => 0,
654               x_locked_by => NULL,
655               x_lock_date => NULL,
656               x_visibility_id => x_visibility_id);
657 
658  END Load_Row;
659 
660 
661 END CS_KB_SETS_PKG;