DBA Data[Home] [Help]

PACKAGE BODY: APPS.CS_KB_SET_ELE_TYPES_PKG

Source


1 PACKAGE BODY CS_KB_SET_ELE_TYPES_PKG AS
2 /* $Header: cskbsetb.pls 115.15 2003/11/19 23:39:36 mkettle ship $ */
3 
4 function Create_Set_Ele_Type(
5   P_SET_TYPE_ID in NUMBER,
6   P_ELEMENT_TYPE_ID in NUMBER,
7   P_ELEMENT_TYPE_ORDER in NUMBER,
8   P_OPTIONAL_FLAG in VARCHAR2,
9   P_ATTRIBUTE_CATEGORY in VARCHAR2,
10   P_ATTRIBUTE1 in VARCHAR2,
11   P_ATTRIBUTE2 in VARCHAR2,
12   P_ATTRIBUTE3 in VARCHAR2,
13   P_ATTRIBUTE4 in VARCHAR2,
14   P_ATTRIBUTE5 in VARCHAR2,
15   P_ATTRIBUTE6 in VARCHAR2,
16   P_ATTRIBUTE7 in VARCHAR2,
17   P_ATTRIBUTE8 in VARCHAR2,
18   P_ATTRIBUTE9 in VARCHAR2,
19   P_ATTRIBUTE10 in VARCHAR2,
20   P_ATTRIBUTE11 in VARCHAR2,
21   P_ATTRIBUTE12 in VARCHAR2,
22   P_ATTRIBUTE13 in VARCHAR2,
23   P_ATTRIBUTE14 in VARCHAR2,
24   P_ATTRIBUTE15 in VARCHAR2
25 ) return number IS
26   l_date  date;
27   l_created_by number;
28   l_login number;
29 BEGIN
30 
31   -- Check params
32   if(P_SET_TYPE_ID is null OR P_ELEMENT_TYPE_ID is NULL) then
33     goto error_found;
34   end if;
35 
36   l_date := sysdate;
37   l_created_by := fnd_global.user_id;
38   l_login := fnd_global.login_id;
39 
40   insert into CS_KB_SET_ELE_TYPES (
41     SET_TYPE_ID,
42     ELEMENT_TYPE_ID,
43     ELEMENT_TYPE_ORDER,
44     OPTIONAL_FLAG,
45     CREATION_DATE,
46     CREATED_BY,
47     LAST_UPDATE_DATE,
48     LAST_UPDATED_BY,
49     LAST_UPDATE_LOGIN,
50     ATTRIBUTE_CATEGORY,
51     ATTRIBUTE1,
52     ATTRIBUTE2,
53     ATTRIBUTE3,
54     ATTRIBUTE4,
55     ATTRIBUTE5,
56     ATTRIBUTE6,
57     ATTRIBUTE7,
58     ATTRIBUTE8,
59     ATTRIBUTE9,
60     ATTRIBUTE10,
61     ATTRIBUTE11,
62     ATTRIBUTE12,
63     ATTRIBUTE13,
64     ATTRIBUTE14,
65     ATTRIBUTE15
66   ) values (
67     P_SET_TYPE_ID,
68     P_ELEMENT_TYPE_ID,
69     P_ELEMENT_TYPE_ORDER,
70     P_OPTIONAL_FLAG,
71     l_date,
72     l_created_by,
73     l_date,
74     l_created_by,
75     l_login,
76     P_ATTRIBUTE_CATEGORY,
77     P_ATTRIBUTE1,
78     P_ATTRIBUTE2,
79     P_ATTRIBUTE3,
80     P_ATTRIBUTE4,
81     P_ATTRIBUTE5,
82     P_ATTRIBUTE6,
83     P_ATTRIBUTE7,
84     P_ATTRIBUTE8,
85     P_ATTRIBUTE9,
86     P_ATTRIBUTE10,
87     P_ATTRIBUTE11,
88     P_ATTRIBUTE12,
89     P_ATTRIBUTE13,
90     P_ATTRIBUTE14,
91     P_ATTRIBUTE15
92     );
93 
94   return OKAY_STATUS;
95   <<error_found>>
96   return ERROR_STATUS;
97 
98 END Create_Set_Ele_Type;
99 
100 
101 function Update_Set_Ele_Type(
102   P_SET_TYPE_ID in NUMBER,
103   P_ELEMENT_TYPE_ID in NUMBER,
104   P_ELEMENT_TYPE_ORDER in NUMBER,
105   P_OPTIONAL_FLAG in VARCHAR2,
106   P_ATTRIBUTE_CATEGORY in VARCHAR2,
107   P_ATTRIBUTE1 in VARCHAR2,
108   P_ATTRIBUTE2 in VARCHAR2,
109   P_ATTRIBUTE3 in VARCHAR2,
110   P_ATTRIBUTE4 in VARCHAR2,
111   P_ATTRIBUTE5 in VARCHAR2,
112   P_ATTRIBUTE6 in VARCHAR2,
113   P_ATTRIBUTE7 in VARCHAR2,
114   P_ATTRIBUTE8 in VARCHAR2,
115   P_ATTRIBUTE9 in VARCHAR2,
116   P_ATTRIBUTE10 in VARCHAR2,
117   P_ATTRIBUTE11 in VARCHAR2,
118   P_ATTRIBUTE12 in VARCHAR2,
119   P_ATTRIBUTE13 in VARCHAR2,
120   P_ATTRIBUTE14 in VARCHAR2,
121   P_ATTRIBUTE15 in VARCHAR2
122 ) return number is
123   l_ret number;
124   l_date  date;
125   l_updated_by number;
126   l_login number;
127 begin
128 
129   -- validate params
130   if(P_SET_TYPE_ID is null OR P_ELEMENT_TYPE_ID is null) then
131     goto error_found;
132   end if;
133 
134   l_date := sysdate;
135   l_updated_by := fnd_global.user_id;
136   l_login := fnd_global.login_id;
137 
138   update CS_KB_SET_ELE_TYPES set
139     ELEMENT_TYPE_ORDER = P_ELEMENT_TYPE_ORDER,
140     OPTIONAL_FLAG = P_OPTIONAL_FLAG,
141     LAST_UPDATE_DATE = l_date,
142     LAST_UPDATED_BY = l_updated_by,
143     LAST_UPDATE_LOGIN = l_login,
144     ATTRIBUTE_CATEGORY = P_ATTRIBUTE_CATEGORY,
145     ATTRIBUTE1 = P_ATTRIBUTE1,
146     ATTRIBUTE2 = P_ATTRIBUTE2,
147     ATTRIBUTE3 = P_ATTRIBUTE3,
148     ATTRIBUTE4 = P_ATTRIBUTE4,
149     ATTRIBUTE5 = P_ATTRIBUTE5,
150     ATTRIBUTE6 = P_ATTRIBUTE6,
151     ATTRIBUTE7 = P_ATTRIBUTE7,
152     ATTRIBUTE8 = P_ATTRIBUTE8,
153     ATTRIBUTE9 = P_ATTRIBUTE9,
154     ATTRIBUTE10 = P_ATTRIBUTE10,
155     ATTRIBUTE11 = P_ATTRIBUTE11,
156     ATTRIBUTE12 = P_ATTRIBUTE12,
157     ATTRIBUTE13 = P_ATTRIBUTE13,
158     ATTRIBUTE14 = P_ATTRIBUTE14,
159     ATTRIBUTE15 = P_ATTRIBUTE15
160   where SET_TYPE_ID = P_SET_TYPE_ID
161   and ELEMENT_TYPE_ID = P_ELEMENT_TYPE_ID;
162 
163   if (sql%notfound) then
164     raise no_data_found;
165   end if;
166 
167   return OKAY_STATUS;
168   <<error_found>>
169   return ERROR_STATUS;
170 exception
171   when others then
172     return ERROR_STATUS;
173 end Update_Set_Ele_Type;
174 
175 function Delete_Set_Ele_Type (
176   P_SET_TYPE_ID in NUMBER,
177   P_ELEMENT_TYPE_ID in NUMBER
178 ) return number is
179 l_count number;
180 begin
181   if (P_SET_TYPE_ID is null or P_ELEMENT_TYPE_ID is null) then return ERROR_STATUS;  end if;
182 
183 --  select count(*) into l_count
184 --    from cs_kb_set_eles where Set_Id In (
185 --    Select e.Set_Id from cs_kb_set_eles e, cs_kb_sets_b s, cs_kb_elements_b t
186 --    where t.element_type_id = p_element_type_id and s.set_type_id = p_set_type_id and
187 --    e.Set_Id = s.Set_Id and e.Element_Id = t.Element_Id);
188   select /*+ INDEX(s) */ count(*) into l_count
189     from cs_kb_sets_b s
190     where s.set_type_id = p_set_type_id
191     and s.status <> 'OBS'
192     and (s.latest_version_flag = 'Y' OR s.viewable_version_flag = 'Y')
193     and exists (select 'x'
194                 from cs_kb_set_eles se,
195                      cs_kb_elements_b e
196                 where se.element_id = e.element_id
197                 and se.set_id = s.set_id
198                 and e.element_type_id = p_element_type_id
199                 and e.status <> 'OBS');
200   if(l_count > 0) then
201     fnd_message.set_name('CS', 'CS_KB_C_SET_TYPE_WITH_SET');
202  --   fnd_msg_pub.Add;
203  --   raise FND_API.G_EXC_ERROR;
204     return ERROR_STATUS;
205   end if;
206 
207   delete from CS_KB_SET_ELE_TYPES
208   where SET_TYPE_ID = P_SET_TYPE_ID
209   and ELEMENT_TYPE_ID = P_ELEMENT_TYPE_ID;
210 
211   if (sql%notfound) then
212     raise no_data_found;
213   end if;
214    return OKAY_STATUS;
215   <<error_found>>
216   return ERROR_STATUS;
217 
218 end Delete_Set_Ele_Type;
219 
220 procedure INSERT_ROW (
221   X_ROWID in OUT NOCOPY VARCHAR2,
222   X_SET_TYPE_ID in NUMBER,
223   X_ELEMENT_TYPE_ID in NUMBER,
224   X_ELEMENT_TYPE_ORDER in NUMBER,
225   X_OPTIONAL_FLAG in VARCHAR2,
226   X_CREATION_DATE in DATE,
227   X_CREATED_BY in NUMBER,
228   X_LAST_UPDATE_DATE in DATE,
229   X_LAST_UPDATED_BY in NUMBER,
230   X_LAST_UPDATE_LOGIN in NUMBER,
231   X_ATTRIBUTE_CATEGORY in VARCHAR2,
232   X_ATTRIBUTE1 in VARCHAR2,
233   X_ATTRIBUTE2 in VARCHAR2,
234   X_ATTRIBUTE3 in VARCHAR2,
235   X_ATTRIBUTE4 in VARCHAR2,
236   X_ATTRIBUTE5 in VARCHAR2,
237   X_ATTRIBUTE6 in VARCHAR2,
238   X_ATTRIBUTE7 in VARCHAR2,
239   X_ATTRIBUTE8 in VARCHAR2,
240   X_ATTRIBUTE9 in VARCHAR2,
241   X_ATTRIBUTE10 in VARCHAR2,
242   X_ATTRIBUTE11 in VARCHAR2,
243   X_ATTRIBUTE12 in VARCHAR2,
244   X_ATTRIBUTE13 in VARCHAR2,
245   X_ATTRIBUTE14 in VARCHAR2,
246   X_ATTRIBUTE15 in VARCHAR2) IS
247 
248   cursor C is select ROWID from CS_KB_SET_ELE_TYPES where SET_TYPE_ID = X_SET_TYPE_ID
249                                                     AND   ELEMENT_TYPE_ID = X_ELEMENT_TYPE_ID;
250 
251 BEGIN
252 
253 
254   insert into CS_KB_SET_ELE_TYPES (
255     SET_TYPE_ID,
256     ELEMENT_TYPE_ID,
257     ELEMENT_TYPE_ORDER,
258     OPTIONAL_FLAG,
259     CREATION_DATE,
260     CREATED_BY,
261     LAST_UPDATE_DATE,
262     LAST_UPDATED_BY,
263     LAST_UPDATE_LOGIN,
264     ATTRIBUTE_CATEGORY,
265     ATTRIBUTE1,
266     ATTRIBUTE2,
267     ATTRIBUTE3,
268     ATTRIBUTE4,
269     ATTRIBUTE5,
270     ATTRIBUTE6,
271     ATTRIBUTE7,
272     ATTRIBUTE8,
273     ATTRIBUTE9,
274     ATTRIBUTE10,
275     ATTRIBUTE11,
276     ATTRIBUTE12,
277     ATTRIBUTE13,
278     ATTRIBUTE14,
279     ATTRIBUTE15
280   ) values (
281     X_SET_TYPE_ID,
282     X_ELEMENT_TYPE_ID,
283     X_ELEMENT_TYPE_ORDER,
284     X_OPTIONAL_FLAG,
285     X_CREATION_DATE,
286     X_CREATED_BY,
287     X_LAST_UPDATE_DATE,
288     X_LAST_UPDATED_BY,
289     X_LAST_UPDATE_LOGIN,
290     X_ATTRIBUTE_CATEGORY,
291     X_ATTRIBUTE1,
292     X_ATTRIBUTE2,
293     X_ATTRIBUTE3,
294     X_ATTRIBUTE4,
295     X_ATTRIBUTE5,
296     X_ATTRIBUTE6,
297     X_ATTRIBUTE7,
298     X_ATTRIBUTE8,
299     X_ATTRIBUTE9,
300     X_ATTRIBUTE10,
301     X_ATTRIBUTE11,
302     X_ATTRIBUTE12,
303     X_ATTRIBUTE13,
304     X_ATTRIBUTE14,
305     X_ATTRIBUTE15
306     );
307 
308   open c;
309   fetch c into X_ROWID;
310 
311   if (c%notfound) then
312       close c;
313       raise no_data_found;
314   end if;
315 
316   close c;
317 
318 END INSERT_ROW;
319 
320 procedure UPDATE_ROW (
321   X_SET_TYPE_ID in NUMBER,
322   X_ELEMENT_TYPE_ID in NUMBER,
323   X_ELEMENT_TYPE_ORDER in NUMBER,
324   X_OPTIONAL_FLAG in VARCHAR2,
325   X_LAST_UPDATE_DATE in DATE,
326   X_LAST_UPDATED_BY in NUMBER,
327   X_LAST_UPDATE_LOGIN in NUMBER,
328   X_ATTRIBUTE_CATEGORY in VARCHAR2,
329   X_ATTRIBUTE1 in VARCHAR2,
330   X_ATTRIBUTE2 in VARCHAR2,
331   X_ATTRIBUTE3 in VARCHAR2,
332   X_ATTRIBUTE4 in VARCHAR2,
333   X_ATTRIBUTE5 in VARCHAR2,
334   X_ATTRIBUTE6 in VARCHAR2,
335   X_ATTRIBUTE7 in VARCHAR2,
336   X_ATTRIBUTE8 in VARCHAR2,
337   X_ATTRIBUTE9 in VARCHAR2,
338   X_ATTRIBUTE10 in VARCHAR2,
339   X_ATTRIBUTE11 in VARCHAR2,
340   X_ATTRIBUTE12 in VARCHAR2,
341   X_ATTRIBUTE13 in VARCHAR2,
342   X_ATTRIBUTE14 in VARCHAR2,
343   X_ATTRIBUTE15 in VARCHAR2
344 ) IS
345 
346 BEGIN
347 
348   update CS_KB_SET_ELE_TYPES set
349 
350     ELEMENT_TYPE_ORDER = X_ELEMENT_TYPE_ORDER,
351     OPTIONAL_FLAG = X_OPTIONAL_FLAG,
352     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
353     LAST_UPDATED_BY =  X_LAST_UPDATED_BY,
354     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
355     ATTRIBUTE_CATEGORY = X_ATTRIBUTE_CATEGORY,
356     ATTRIBUTE1 = X_ATTRIBUTE1,
357     ATTRIBUTE2 = X_ATTRIBUTE2,
358     ATTRIBUTE3 = X_ATTRIBUTE3,
359     ATTRIBUTE4 = X_ATTRIBUTE4,
360     ATTRIBUTE5 = X_ATTRIBUTE5,
361     ATTRIBUTE6 = X_ATTRIBUTE6,
362     ATTRIBUTE7 = X_ATTRIBUTE7,
363     ATTRIBUTE8 = X_ATTRIBUTE8,
364     ATTRIBUTE9 = X_ATTRIBUTE9,
365     ATTRIBUTE10 = X_ATTRIBUTE10,
366     ATTRIBUTE11 = X_ATTRIBUTE11,
367     ATTRIBUTE12 = X_ATTRIBUTE12,
368     ATTRIBUTE13 = X_ATTRIBUTE13,
369     ATTRIBUTE14 = X_ATTRIBUTE14,
370     ATTRIBUTE15 = X_ATTRIBUTE15
371   where SET_TYPE_ID = X_SET_TYPE_ID
372   and ELEMENT_TYPE_ID = X_ELEMENT_TYPE_ID;
373 
374   if (sql%notfound) then
375     raise no_data_found;
376   end if;
377 
378 END UPDATE_ROW;
379 
380 PROCEDURE LOAD_ROW(
381         x_set_type_id in number,
382         x_element_type_id in number,
383         x_element_type_order in number,
384         x_optional_flag in varchar2,
385 	x_owner in varchar2) IS
386    l_user_id number;
387    l_rowid varchar2(100);
388 begin
389 
390     if (x_owner = 'SEED') then
391            l_user_id := 1;
392     else
396     CS_KB_SET_ELE_TYPES_PKG.Update_Row(
393            l_user_id := 0;
394     end if;
395 
397     X_Set_Type_Id => x_set_type_id,
398     X_Element_Type_Id => x_element_type_id,
399     X_ELEMENT_TYPE_ORDER => x_element_type_order,
400     X_OPTIONAL_FLAG => x_optional_flag,
401     X_LAST_UPDATE_DATE => sysdate,
402     X_LAST_UPDATED_BY => l_user_id,
403     X_LAST_UPDATE_LOGIN => 0);
404 
405     exception
406       when no_data_found then
407   	CS_KB_SET_ELE_TYPES_PKG.Insert_Row(
408     		X_Rowid => l_rowid,
409     		X_SET_TYPE_ID => x_set_type_id,
410                 X_ELEMENT_TYPE_ID => x_element_type_id,
411 	        X_ELEMENT_TYPE_ORDER => x_element_type_order,
412 	        X_OPTIONAL_FLAG => x_optional_flag,
413 	        X_CREATION_DATE => sysdate,
414 	        X_CREATED_BY => l_user_id,
415 		X_LAST_UPDATE_DATE => sysdate,
416 	        X_LAST_UPDATED_BY => l_user_id,
417                 X_LAST_UPDATE_LOGIN => 0);
418 
419 end;
420 
421 end CS_KB_SET_ELE_TYPES_PKG;