DBA Data[Home] [Help]

PACKAGE BODY: APPS.CS_KB_ELEMENT_LINKS_PKG

Source


1 PACKAGE BODY CS_KB_ELEMENT_LINKS_PKG AS
2 /* $Header: cskbellb.pls 120.0 2005/06/01 14:43:12 appldev noship $ */
3 
4 function Create_Element_Link(
5   P_LINK_TYPE in VARCHAR,
6   P_OBJECT_CODE in VARCHAR,
7   P_ELEMENT_ID in NUMBER,
8   P_OTHER_ID in NUMBER,
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   l_count pls_integer;
30   l_id number;
31   l_rowid varchar2(30);
32 BEGIN
33 
34   -- Check params
35   if(P_OBJECT_CODE is null OR P_ELEMENT_ID is NULL OR
36      (P_OTHER_ID is null
37      )) then
38     fnd_message.set_name('CS', 'CS_KB_C_MISS_PARAM');
39     fnd_msg_pub.Add;
40     goto error_found;
41   end if;
42 
43   --prepare data, then insert new element
44 
45   select cs_kb_element_links_s.nextval into l_id from dual;
46   l_date := sysdate;
47   l_created_by := fnd_global.user_id;
48   l_login := fnd_global.login_id;
49 
50   CS_KB_ELEMENT_LINKS_PKG.Insert_Row(
51     X_Rowid => l_rowid,
52     X_Link_Id => l_id,
53     X_Link_type => p_link_type,
54     X_Object_Code => p_object_code,
55     X_Element_Id => p_element_id,
56     X_Other_Id => p_other_id,
57     X_Creation_Date => l_date,
58     X_Created_By => l_created_by,
59     X_Last_Update_Date => l_date,
60     X_Last_Updated_By => l_created_by,
61     X_Last_Update_Login => l_login,
62     X_ATTRIBUTE_CATEGORY => P_ATTRIBUTE_CATEGORY,
63     X_ATTRIBUTE1 => P_ATTRIBUTE1,
64     X_ATTRIBUTE2 => P_ATTRIBUTE2,
65     X_ATTRIBUTE3 => P_ATTRIBUTE3,
66     X_ATTRIBUTE4 => P_ATTRIBUTE4,
67     X_ATTRIBUTE5 => P_ATTRIBUTE5,
68     X_ATTRIBUTE6 => P_ATTRIBUTE6,
69     X_ATTRIBUTE7 => P_ATTRIBUTE7,
70     X_ATTRIBUTE8 => P_ATTRIBUTE8,
71     X_ATTRIBUTE9 => P_ATTRIBUTE9,
72     X_ATTRIBUTE10 => P_ATTRIBUTE10,
73     X_ATTRIBUTE11 => P_ATTRIBUTE11,
74     X_ATTRIBUTE12 => P_ATTRIBUTE12,
75     X_ATTRIBUTE13 => P_ATTRIBUTE13,
76     X_ATTRIBUTE14 => P_ATTRIBUTE14,
77     X_ATTRIBUTE15 => P_ATTRIBUTE15
78    );
79 
80    return l_id;
81 
82   <<error_found>>
83   return ERROR_STATUS;
84 
85 END Create_Element_Link;
86 
87 
88 function Update_Element_Link(
89   P_LINK_ID in NUMBER,
90   P_LINK_TYPE in VARCHAR,
91   P_OBJECT_CODE in VARCHAR,
92   P_ELEMENT_ID in NUMBER,
93   P_OTHER_ID in NUMBER,
94   P_ATTRIBUTE_CATEGORY in VARCHAR2,
95   P_ATTRIBUTE1 in VARCHAR2,
96   P_ATTRIBUTE2 in VARCHAR2,
97   P_ATTRIBUTE3 in VARCHAR2,
98   P_ATTRIBUTE4 in VARCHAR2,
99   P_ATTRIBUTE5 in VARCHAR2,
100   P_ATTRIBUTE6 in VARCHAR2,
101   P_ATTRIBUTE7 in VARCHAR2,
102   P_ATTRIBUTE8 in VARCHAR2,
103   P_ATTRIBUTE9 in VARCHAR2,
104   P_ATTRIBUTE10 in VARCHAR2,
105   P_ATTRIBUTE11 in VARCHAR2,
106   P_ATTRIBUTE12 in VARCHAR2,
107   P_ATTRIBUTE13 in VARCHAR2,
108   P_ATTRIBUTE14 in VARCHAR2,
109   P_ATTRIBUTE15 in VARCHAR2
110 ) return number is
111   l_ret number;
112   l_date  date;
113   l_updated_by number;
114   l_login number;
115   l_count pls_integer;
116 begin
117 
118   -- validate params
119   if(P_LINK_ID is null or
120      P_OBJECT_CODE is null OR P_ELEMENT_ID is NULL OR
121      (P_OTHER_ID is null
122      )) then
123     fnd_message.set_name('CS', 'CS_KB_C_MISS_PARAM');
124     fnd_msg_pub.Add;
125     goto error_found;
126   end if;
127 
128   --prepare data, then insert new element
129   l_date := sysdate;
130   l_updated_by := fnd_global.user_id;
131   l_login := fnd_global.login_id;
132 
133   CS_KB_ELEMENT_LINKS_PKG.Update_Row(
134     X_Link_Id => p_link_id,
135     X_Link_type => p_link_type,
136     X_Object_Code => p_object_code,
137     X_Element_Id => p_element_id,
138     X_Other_Id => p_other_id,
139     X_Last_Update_Date => l_date,
140     X_Last_Updated_By => l_updated_by,
141     X_Last_Update_Login => l_login,
142     X_ATTRIBUTE_CATEGORY => P_ATTRIBUTE_CATEGORY,
143     X_ATTRIBUTE1 => P_ATTRIBUTE1,
144     X_ATTRIBUTE2 => P_ATTRIBUTE2,
145     X_ATTRIBUTE3 => P_ATTRIBUTE3,
146     X_ATTRIBUTE4 => P_ATTRIBUTE4,
147     X_ATTRIBUTE5 => P_ATTRIBUTE5,
148     X_ATTRIBUTE6 => P_ATTRIBUTE6,
149     X_ATTRIBUTE7 => P_ATTRIBUTE7,
150     X_ATTRIBUTE8 => P_ATTRIBUTE8,
151     X_ATTRIBUTE9 => P_ATTRIBUTE9,
152     X_ATTRIBUTE10 => P_ATTRIBUTE10,
153     X_ATTRIBUTE11 => P_ATTRIBUTE11,
154     X_ATTRIBUTE12 => P_ATTRIBUTE12,
155     X_ATTRIBUTE13 => P_ATTRIBUTE13,
156     X_ATTRIBUTE14 => P_ATTRIBUTE14,
157     X_ATTRIBUTE15 => P_ATTRIBUTE15);
158 
159   return OKAY_STATUS;
160   <<error_found>>
161     return ERROR_STATUS;
162 exception
163   when others then
164     return ERROR_STATUS;
165 end Update_Element_Link;
166 
167 function Delete_Element_Link_W_Obj_Code(
168   p_element_id    in Number,
169   p_object_code   in Varchar2,
170   p_other_id      in Number
171 ) return number is
172 
173 begin
174   if(P_ELEMENT_ID is null or
175      P_OBJECT_CODE is null OR P_OTHER_ID is NULL ) then
176 
177     if fnd_msg_pub.Check_Msg_Level( fnd_msg_pub.G_MSG_LVL_ERROR) then
178       fnd_message.set_name('CS', 'CS_KB_C_MISS_PARAM');
179       fnd_msg_pub.Add;
180     end if;
181     raise FND_API.G_EXC_ERROR;
182     --goto error_found;
183   end if;
184 
185 
186   DELETE FROM CS_KB_ELEMENT_LINKS where Element_Id = p_element_id
187    and Object_Code = p_object_code
188    and Other_Id = p_other_id;
189 
190    return OKAY_STATUS;
191   <<error_found>>
192   return ERROR_STATUS;
193 
194 end Delete_Element_Link_W_Obj_Code;
195 
196 
197 function Delete_Element_Link(
198   P_LINK_ID in NUMBER
199 ) return number is
200 
201 begin
202   if (P_LINK_ID is null ) then return ERROR_STATUS;  end if;
203 
204   delete from CS_KB_ELEMENT_LINKS
205   where LINK_ID = P_LINK_ID;
206 
207   return OKAY_STATUS;
208   <<error_found>>
209   return ERROR_STATUS;
210 
211 end Delete_Element_Link;
212 
213 procedure INSERT_ROW (
214   X_ROWID in OUT NOCOPY VARCHAR2,
215   X_LINK_ID in NUMBER,
216   X_LINK_TYPE in VARCHAR2,
217   X_OBJECT_CODE in VARCHAR2,
218   X_ELEMENT_ID in NUMBER,
219   X_OTHER_ID in NUMBER,
220   X_CREATION_DATE in DATE,
221   X_CREATED_BY in NUMBER,
222   X_LAST_UPDATE_DATE in DATE,
223   X_LAST_UPDATED_BY in NUMBER,
224   X_LAST_UPDATE_LOGIN in NUMBER,
225   X_ATTRIBUTE_CATEGORY in VARCHAR2,
226   X_ATTRIBUTE1 in VARCHAR2,
227   X_ATTRIBUTE2 in VARCHAR2,
228   X_ATTRIBUTE3 in VARCHAR2,
229   X_ATTRIBUTE4 in VARCHAR2,
230   X_ATTRIBUTE5 in VARCHAR2,
231   X_ATTRIBUTE6 in VARCHAR2,
232   X_ATTRIBUTE7 in VARCHAR2,
233   X_ATTRIBUTE8 in VARCHAR2,
234   X_ATTRIBUTE9 in VARCHAR2,
235   X_ATTRIBUTE10 in VARCHAR2,
236   X_ATTRIBUTE11 in VARCHAR2,
237   X_ATTRIBUTE12 in VARCHAR2,
238   X_ATTRIBUTE13 in VARCHAR2,
239   X_ATTRIBUTE14 in VARCHAR2,
240   X_ATTRIBUTE15 in VARCHAR2) IS
241 
242   cursor C is select ROWID from CS_KB_ELEMENT_LINKS where LINK_ID = X_LINK_ID;
243 
244 
245 BEGIN
246 
247   insert into CS_KB_ELEMENT_LINKS (
248     LINK_ID,
249     LINK_TYPE,
250     OBJECT_CODE,
251     ELEMENT_ID,
252     OTHER_ID,
253     CREATION_DATE,
254     CREATED_BY,
255     LAST_UPDATE_DATE,
256     LAST_UPDATED_BY,
257     LAST_UPDATE_LOGIN,
258     ATTRIBUTE_CATEGORY,
259     ATTRIBUTE1,
260     ATTRIBUTE2,
261     ATTRIBUTE3,
262     ATTRIBUTE4,
263     ATTRIBUTE5,
264     ATTRIBUTE6,
265     ATTRIBUTE7,
266     ATTRIBUTE8,
267     ATTRIBUTE9,
268     ATTRIBUTE10,
269     ATTRIBUTE11,
270     ATTRIBUTE12,
271     ATTRIBUTE13,
272     ATTRIBUTE14,
273     ATTRIBUTE15
274   ) values (
275     X_LINK_ID,
276     X_LINK_TYPE,
277     X_OBJECT_CODE,
278     X_ELEMENT_ID,
279     X_OTHER_ID,
280     X_CREATION_DATE,
281     X_CREATED_BY,
282     X_LAST_UPDATE_DATE,
283     X_LAST_UPDATED_BY,
284     X_LAST_UPDATE_LOGIN,
285     X_ATTRIBUTE_CATEGORY,
286     X_ATTRIBUTE1,
287     X_ATTRIBUTE2,
288     X_ATTRIBUTE3,
289     X_ATTRIBUTE4,
290     X_ATTRIBUTE5,
291     X_ATTRIBUTE6,
292     X_ATTRIBUTE7,
293     X_ATTRIBUTE8,
294     X_ATTRIBUTE9,
295     X_ATTRIBUTE10,
296     X_ATTRIBUTE11,
297     X_ATTRIBUTE12,
298     X_ATTRIBUTE13,
299     X_ATTRIBUTE14,
300     X_ATTRIBUTE15
301     );
302 
303   open c;
304   fetch c into X_ROWID;
305 
306   if (c%notfound) then
307       close c;
308       raise no_data_found;
309   end if;
310 
311   close c;
312 
313 END INSERT_ROW;
314 
315 procedure UPDATE_ROW (
316   X_LINK_ID in NUMBER,
317   X_LINK_TYPE in VARCHAR2,
318   X_OBJECT_CODE in VARCHAR2,
319   X_ELEMENT_ID in NUMBER,
320   X_OTHER_ID in NUMBER,
321   X_LAST_UPDATE_DATE in DATE,
322   X_LAST_UPDATED_BY in NUMBER,
323   X_LAST_UPDATE_LOGIN in NUMBER,
324   X_ATTRIBUTE_CATEGORY in VARCHAR2,
325   X_ATTRIBUTE1 in VARCHAR2,
326   X_ATTRIBUTE2 in VARCHAR2,
327   X_ATTRIBUTE3 in VARCHAR2,
328   X_ATTRIBUTE4 in VARCHAR2,
329   X_ATTRIBUTE5 in VARCHAR2,
330   X_ATTRIBUTE6 in VARCHAR2,
331   X_ATTRIBUTE7 in VARCHAR2,
332   X_ATTRIBUTE8 in VARCHAR2,
333   X_ATTRIBUTE9 in VARCHAR2,
334   X_ATTRIBUTE10 in VARCHAR2,
335   X_ATTRIBUTE11 in VARCHAR2,
336   X_ATTRIBUTE12 in VARCHAR2,
337   X_ATTRIBUTE13 in VARCHAR2,
338   X_ATTRIBUTE14 in VARCHAR2,
339   X_ATTRIBUTE15 in VARCHAR2
340 ) IS
341 
342 BEGIN
343 
344   update CS_KB_ELEMENT_LINKS set
345 
346     LINK_TYPE = X_LINK_TYPE,
347     OBJECT_CODE = X_OBJECT_CODE,
348     ELEMENT_ID = X_ELEMENT_ID,
349     OTHER_ID  = X_OTHER_ID,
350     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
351     LAST_UPDATED_BY =  X_LAST_UPDATED_BY,
352     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
353     ATTRIBUTE_CATEGORY = X_ATTRIBUTE_CATEGORY,
354     ATTRIBUTE1 = X_ATTRIBUTE1,
355     ATTRIBUTE2 = X_ATTRIBUTE2,
356     ATTRIBUTE3 = X_ATTRIBUTE3,
357     ATTRIBUTE4 = X_ATTRIBUTE4,
358     ATTRIBUTE5 = X_ATTRIBUTE5,
359     ATTRIBUTE6 = X_ATTRIBUTE6,
360     ATTRIBUTE7 = X_ATTRIBUTE7,
361     ATTRIBUTE8 = X_ATTRIBUTE8,
362     ATTRIBUTE9 = X_ATTRIBUTE9,
363     ATTRIBUTE10 = X_ATTRIBUTE10,
364     ATTRIBUTE11 = X_ATTRIBUTE11,
365     ATTRIBUTE12 = X_ATTRIBUTE12,
366     ATTRIBUTE13 = X_ATTRIBUTE13,
367     ATTRIBUTE14 = X_ATTRIBUTE14,
368     ATTRIBUTE15 = X_ATTRIBUTE15
369   where LINK_ID = X_LINK_ID;
370 
371   if (sql%notfound) then
372     raise no_data_found;
373   end if;
374 
375 END UPDATE_ROW;
376 
377 
378 end CS_KB_ELEMENT_LINKS_PKG;