[Home] [Help]
PACKAGE BODY: APPS.CS_KB_ELE_TYPE_LINKS_PKG
Source
1 PACKAGE BODY CS_KB_ELE_TYPE_LINKS_PKG AS
2 /* $Header: cskbetlb.pls 115.13 2003/12/08 23:22:03 alawang ship $ */
3
4
5 function Create_Element_Type_Link(
6 P_LINK_TYPE in VARCHAR2,
7 P_OBJECT_CODE in VARCHAR2,
8 P_ELEMENT_TYPE_ID in NUMBER,
9 P_OTHER_ID in NUMBER,
10 P_OTHER_CODE in VARCHAR2,
11 P_ATTRIBUTE_CATEGORY in VARCHAR2,
12 P_ATTRIBUTE1 in VARCHAR2,
13 P_ATTRIBUTE2 in VARCHAR2,
14 P_ATTRIBUTE3 in VARCHAR2,
15 P_ATTRIBUTE4 in VARCHAR2,
16 P_ATTRIBUTE5 in VARCHAR2,
17 P_ATTRIBUTE6 in VARCHAR2,
18 P_ATTRIBUTE7 in VARCHAR2,
19 P_ATTRIBUTE8 in VARCHAR2,
20 P_ATTRIBUTE9 in VARCHAR2,
21 P_ATTRIBUTE10 in VARCHAR2,
22 P_ATTRIBUTE11 in VARCHAR2,
23 P_ATTRIBUTE12 in VARCHAR2,
24 P_ATTRIBUTE13 in VARCHAR2,
25 P_ATTRIBUTE14 in VARCHAR2,
26 P_ATTRIBUTE15 in VARCHAR2
27 ) return number IS
28 l_date date;
29 l_created_by number;
30 l_login number;
31 l_count pls_integer;
32 l_id number;
33 l_rowid varchar2(30);
34
35 CURSOR Check_Link_Exists IS
36 select count(*)
37 from cs_kb_ele_type_links
38 where object_code = p_object_code
39 and element_type_id = p_element_type_id
40 and other_code = p_other_code
41 and (other_id = p_other_id or (other_id is null and p_other_id is null));
42
43 CURSOR Get_Current_Link_ID IS
44 select link_id
45 from cs_kb_ele_type_links
46 where object_code = p_object_code
47 and element_type_id = p_element_type_id
48 and other_code = p_other_code
49 and (other_id = p_other_id or (other_id is null and p_other_id is null));
50 BEGIN
51
52 -- Check params
53 if(P_OBJECT_CODE is null OR P_ELEMENT_TYPE_ID is NULL OR
54 (P_OTHER_ID is null and P_OTHER_CODE is null)) then
55 goto error_found;
56 end if;
57
58 select count(*) into l_count
59 from cs_kb_element_types_b
60 where element_type_id = p_element_type_id;
61 if(l_count <= 0) then goto error_found; end if;
62
63 -- Check for duplication
64 OPEN Check_Link_Exists;
65 FETCH Check_Link_Exists INTO l_count;
66 CLOSE Check_Link_Exists;
67
68 if(l_count <= 0) then
69 begin
70 --prepare data, then insert new element
71
72 select cs_kb_ele_type_links_s.nextval into l_id from dual;
73 l_date := sysdate;
74 l_created_by := fnd_global.user_id;
75 l_login := fnd_global.login_id;
76
77 CS_KB_ELE_TYPE_LINKS_PKG.Insert_Row(
78 X_Rowid => l_rowid,
79 X_Link_Id => l_id,
80 X_Link_type => p_link_type,
81 X_Object_Code => p_object_code,
82 X_Element_Type_Id => p_element_type_id,
83 X_Other_Id => p_other_id,
84 X_Other_Code => p_other_code,
85 X_Creation_Date => l_date,
86 X_Created_By => l_created_by,
87 X_Last_Update_Date => l_date,
88 X_Last_Updated_By => l_created_by,
89 X_Last_Update_Login => l_login,
90 X_ATTRIBUTE_CATEGORY => P_ATTRIBUTE_CATEGORY,
91 X_ATTRIBUTE1 => P_ATTRIBUTE1,
92 X_ATTRIBUTE2 => P_ATTRIBUTE2,
93 X_ATTRIBUTE3 => P_ATTRIBUTE3,
94 X_ATTRIBUTE4 => P_ATTRIBUTE4,
95 X_ATTRIBUTE5 => P_ATTRIBUTE5,
96 X_ATTRIBUTE6 => P_ATTRIBUTE6,
97 X_ATTRIBUTE7 => P_ATTRIBUTE7,
98 X_ATTRIBUTE8 => P_ATTRIBUTE8,
99 X_ATTRIBUTE9 => P_ATTRIBUTE9,
100 X_ATTRIBUTE10 => P_ATTRIBUTE10,
101 X_ATTRIBUTE11 => P_ATTRIBUTE11,
102 X_ATTRIBUTE12 => P_ATTRIBUTE12,
103 X_ATTRIBUTE13 => P_ATTRIBUTE13,
104 X_ATTRIBUTE14 => P_ATTRIBUTE14,
105 X_ATTRIBUTE15 => P_ATTRIBUTE15
106 );
107 end;
108 else
109 -- If duplicated, return the id of exsiting one.
110 OPEN Get_Current_Link_ID;
111 FETCH Get_Current_Link_ID INTO l_id;
112 CLOSE Get_Current_Link_ID;
113 end if;
114
115 return l_id;
116
117 <<error_found>>
118 return ERROR_STATUS;
119
120 END Create_Element_Type_Link;
121
122
123 function Update_Element_Type_Link(
124 P_LINK_ID in NUMBER,
125 P_LINK_TYPE in VARCHAR2,
126 P_OBJECT_CODE in VARCHAR2,
127 P_ELEMENT_TYPE_ID in NUMBER,
128 P_OTHER_ID in NUMBER,
129 P_OTHER_CODE in VARCHAR2,
130 P_ATTRIBUTE_CATEGORY in VARCHAR2,
131 P_ATTRIBUTE1 in VARCHAR2,
132 P_ATTRIBUTE2 in VARCHAR2,
133 P_ATTRIBUTE3 in VARCHAR2,
134 P_ATTRIBUTE4 in VARCHAR2,
135 P_ATTRIBUTE5 in VARCHAR2,
136 P_ATTRIBUTE6 in VARCHAR2,
137 P_ATTRIBUTE7 in VARCHAR2,
138 P_ATTRIBUTE8 in VARCHAR2,
139 P_ATTRIBUTE9 in VARCHAR2,
140 P_ATTRIBUTE10 in VARCHAR2,
141 P_ATTRIBUTE11 in VARCHAR2,
142 P_ATTRIBUTE12 in VARCHAR2,
143 P_ATTRIBUTE13 in VARCHAR2,
144 P_ATTRIBUTE14 in VARCHAR2,
145 P_ATTRIBUTE15 in VARCHAR2
146 ) return number is
147 l_ret number;
148 l_date date;
149 l_updated_by number;
150 l_login number;
151 l_count pls_integer;
152 begin
153
154 -- validate params
155 if(P_LINK_ID is null ) then
156 goto error_found;
157 end if;
158
159 --prepare data, then insert new element
160 l_date := sysdate;
161 l_updated_by := fnd_global.user_id;
162 l_login := fnd_global.login_id;
163
164 CS_KB_ELE_TYPE_LINKS_PKG.Update_Row(
165 X_Link_Id => p_link_id,
166 X_Link_type => p_link_type,
167 X_Object_Code => p_object_code,
168 X_Element_Type_Id => p_element_type_id,
169 X_Other_Id => p_other_id,
170 X_Other_Code => p_other_code,
171 X_Last_Update_Date => l_date,
172 X_Last_Updated_By => l_updated_by,
173 X_Last_Update_Login => l_login,
174 X_ATTRIBUTE_CATEGORY => P_ATTRIBUTE_CATEGORY,
175 X_ATTRIBUTE1 => P_ATTRIBUTE1,
176 X_ATTRIBUTE2 => P_ATTRIBUTE2,
177 X_ATTRIBUTE3 => P_ATTRIBUTE3,
178 X_ATTRIBUTE4 => P_ATTRIBUTE4,
179 X_ATTRIBUTE5 => P_ATTRIBUTE5,
180 X_ATTRIBUTE6 => P_ATTRIBUTE6,
181 X_ATTRIBUTE7 => P_ATTRIBUTE7,
182 X_ATTRIBUTE8 => P_ATTRIBUTE8,
183 X_ATTRIBUTE9 => P_ATTRIBUTE9,
184 X_ATTRIBUTE10 => P_ATTRIBUTE10,
185 X_ATTRIBUTE11 => P_ATTRIBUTE11,
186 X_ATTRIBUTE12 => P_ATTRIBUTE12,
187 X_ATTRIBUTE13 => P_ATTRIBUTE13,
188 X_ATTRIBUTE14 => P_ATTRIBUTE14,
189 X_ATTRIBUTE15 => P_ATTRIBUTE15);
190
191 return OKAY_STATUS;
192 <<error_found>>
193 return ERROR_STATUS;
194 exception
195 when others then
196 return ERROR_STATUS;
197 end Update_Element_Type_Link;
198
199
200 function Delete_Element_Type_Link(
201 P_LINK_ID in NUMBER
202 ) return number is
203
204 begin
205 if (P_LINK_ID is null ) then return ERROR_STATUS; end if;
206
207 delete from CS_KB_ELE_TYPE_LINKS
208 where LINK_ID = P_LINK_ID;
209
210 if (sql%notfound) then
211 raise no_data_found;
212 end if;
213 return OKAY_STATUS;
214 <<error_found>>
215 return ERROR_STATUS;
216
217 end Delete_Element_Type_Link;
218
219
220 procedure INSERT_ROW (
221 X_ROWID in OUT NOCOPY VARCHAR2,
222 X_LINK_ID in NUMBER,
223 X_LINK_TYPE in varchar2,
224 X_OBJECT_CODE in varchar2,
225 X_ELEMENT_TYPE_ID in NUMBER,
226 X_OTHER_ID in NUMBER,
227 X_OTHER_CODE in varchar2,
228 X_CREATION_DATE in DATE,
229 X_CREATED_BY in NUMBER,
230 X_LAST_UPDATE_DATE in DATE,
231 X_LAST_UPDATED_BY in NUMBER,
232 X_LAST_UPDATE_LOGIN in NUMBER,
233 X_ATTRIBUTE_CATEGORY in VARCHAR2,
234 X_ATTRIBUTE1 in VARCHAR2,
235 X_ATTRIBUTE2 in VARCHAR2,
236 X_ATTRIBUTE3 in VARCHAR2,
237 X_ATTRIBUTE4 in VARCHAR2,
238 X_ATTRIBUTE5 in VARCHAR2,
239 X_ATTRIBUTE6 in VARCHAR2,
240 X_ATTRIBUTE7 in VARCHAR2,
241 X_ATTRIBUTE8 in VARCHAR2,
242 X_ATTRIBUTE9 in VARCHAR2,
243 X_ATTRIBUTE10 in VARCHAR2,
244 X_ATTRIBUTE11 in VARCHAR2,
245 X_ATTRIBUTE12 in VARCHAR2,
246 X_ATTRIBUTE13 in VARCHAR2,
247 X_ATTRIBUTE14 in VARCHAR2,
248 X_ATTRIBUTE15 in VARCHAR2) IS
249
250 cursor C is select ROWID from CS_KB_ELE_TYPE_LINKS where LINK_ID = X_LINK_ID;
251
252 BEGIN
253
254
255 insert into CS_KB_ELE_TYPE_LINKS (
256 LINK_ID,
257 LINK_TYPE,
258 OBJECT_CODE,
259 ELEMENT_TYPE_ID,
260 OTHER_ID,
261 OTHER_CODE,
262 CREATION_DATE,
263 CREATED_BY,
264 LAST_UPDATE_DATE,
265 LAST_UPDATED_BY,
266 LAST_UPDATE_LOGIN,
267 ATTRIBUTE_CATEGORY,
268 ATTRIBUTE1,
269 ATTRIBUTE2,
270 ATTRIBUTE3,
271 ATTRIBUTE4,
272 ATTRIBUTE5,
273 ATTRIBUTE6,
274 ATTRIBUTE7,
275 ATTRIBUTE8,
276 ATTRIBUTE9,
277 ATTRIBUTE10,
278 ATTRIBUTE11,
279 ATTRIBUTE12,
280 ATTRIBUTE13,
281 ATTRIBUTE14,
282 ATTRIBUTE15
283 ) values (
284 x_link_id,
285 x_link_type,
286 x_object_code,
287 x_element_type_id,
288 x_other_id,
289 x_other_code,
290 X_CREATION_DATE,
291 X_CREATED_BY,
292 X_LAST_UPDATE_DATE,
293 X_LAST_UPDATED_BY,
294 X_LAST_UPDATE_LOGIN,
295 X_ATTRIBUTE_CATEGORY,
296 X_ATTRIBUTE1,
297 X_ATTRIBUTE2,
298 X_ATTRIBUTE3,
299 X_ATTRIBUTE4,
300 X_ATTRIBUTE5,
301 X_ATTRIBUTE6,
302 X_ATTRIBUTE7,
303 X_ATTRIBUTE8,
304 X_ATTRIBUTE9,
305 X_ATTRIBUTE10,
306 X_ATTRIBUTE11,
307 X_ATTRIBUTE12,
308 X_ATTRIBUTE13,
309 X_ATTRIBUTE14,
310 X_ATTRIBUTE15
311 );
312
313 open c;
314 fetch c into X_ROWID;
315
316 if (c%notfound) then
317 close c;
318 raise no_data_found;
319 end if;
320
321 close c;
322
323 END INSERT_ROW;
324
325 procedure UPDATE_ROW (
326 X_LINK_ID in NUMBER,
327 X_LINK_TYPE in varchar2,
328 X_OBJECT_CODE in varchar2,
329 X_ELEMENT_TYPE_ID in NUMBER,
330 X_OTHER_ID in NUMBER,
331 X_OTHER_CODE in varchar2,
332 X_LAST_UPDATE_DATE in DATE,
333 X_LAST_UPDATED_BY in NUMBER,
334 X_LAST_UPDATE_LOGIN in NUMBER,
335 X_ATTRIBUTE_CATEGORY in VARCHAR2,
336 X_ATTRIBUTE1 in VARCHAR2,
337 X_ATTRIBUTE2 in VARCHAR2,
338 X_ATTRIBUTE3 in VARCHAR2,
339 X_ATTRIBUTE4 in VARCHAR2,
340 X_ATTRIBUTE5 in VARCHAR2,
341 X_ATTRIBUTE6 in VARCHAR2,
342 X_ATTRIBUTE7 in VARCHAR2,
343 X_ATTRIBUTE8 in VARCHAR2,
344 X_ATTRIBUTE9 in VARCHAR2,
345 X_ATTRIBUTE10 in VARCHAR2,
346 X_ATTRIBUTE11 in VARCHAR2,
347 X_ATTRIBUTE12 in VARCHAR2,
348 X_ATTRIBUTE13 in VARCHAR2,
349 X_ATTRIBUTE14 in VARCHAR2,
350 X_ATTRIBUTE15 in VARCHAR2
351 )IS
352
353 BEGIN
354
355 update CS_KB_ELE_TYPE_LINKS set
356
357 LINK_TYPE = X_LINK_TYPE,
358 OBJECT_CODE = X_OBJECT_CODE,
359 ELEMENT_TYPE_ID = X_ELEMENT_TYPE_ID,
360 OTHER_ID = X_OTHER_ID,
361 OTHER_CODE = X_OTHER_CODE,
362 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
363 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
364 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
365 ATTRIBUTE_CATEGORY = X_ATTRIBUTE_CATEGORY,
366 ATTRIBUTE1 = X_ATTRIBUTE1,
367 ATTRIBUTE2 = X_ATTRIBUTE2,
368 ATTRIBUTE3 = X_ATTRIBUTE3,
369 ATTRIBUTE4 = X_ATTRIBUTE4,
370 ATTRIBUTE5 = X_ATTRIBUTE5,
371 ATTRIBUTE6 = X_ATTRIBUTE6,
372 ATTRIBUTE7 = X_ATTRIBUTE7,
373 ATTRIBUTE8 = X_ATTRIBUTE8,
374 ATTRIBUTE9 = X_ATTRIBUTE9,
375 ATTRIBUTE10 = X_ATTRIBUTE10,
376 ATTRIBUTE11 = X_ATTRIBUTE11,
377 ATTRIBUTE12 = X_ATTRIBUTE12,
378 ATTRIBUTE13 = X_ATTRIBUTE13,
379 ATTRIBUTE14 = X_ATTRIBUTE14,
380 ATTRIBUTE15 = X_ATTRIBUTE15
381
382 where LINK_ID = X_LINK_ID;
383
384 if (sql%notfound) then
385 raise no_data_found;
386 end if;
387
388 END UPDATE_ROW;
389
390 PROCEDURE LOAD_ROW(
391 X_LINK_ID in NUMBER,
392 X_LINK_TYPE in varchar2,
393 X_OBJECT_CODE in varchar2,
394 X_ELEMENT_TYPE_ID in NUMBER,
395 X_OTHER_ID in NUMBER,
396 X_OTHER_CODE in varchar2,
397 x_owner in varchar2) IS
398 l_user_id number;
399 l_rowid varchar2(100);
400 begin
401
402 if (x_owner = 'SEED') then
403 l_user_id := 1;
404 else
405 l_user_id := 0;
406 end if;
407
408 CS_KB_ELE_TYPE_LINKS_PKG.Update_Row(
409 X_LINK_ID => X_LINK_ID,
410 X_LINK_TYPE => X_LINK_TYPE,
411 X_OBJECT_CODE => X_OBJECT_CODE,
412 X_ELEMENT_TYPE_ID => X_ELEMENT_TYPE_ID,
413 X_OTHER_ID => X_OTHER_ID,
414 X_OTHER_CODE => X_OTHER_CODE,
415 X_LAST_UPDATE_DATE => sysdate,
416 X_LAST_UPDATED_BY => l_user_id,
417 X_LAST_UPDATE_LOGIN => 0);
418
419 exception
420 when no_data_found then
421 CS_KB_ELE_TYPE_LINKS_PKG.Insert_Row(
422 X_Rowid => l_rowid,
423 X_Link_ID => x_link_id,
424 X_Link_Type => x_link_type,
425 X_Object_Code => x_object_code,
426 X_Element_Type_Id => x_element_type_id,
427 X_Other_Id => x_other_id,
428 X_Other_Code => x_other_code,
429 X_CREATION_DATE => sysdate,
430 X_CREATED_BY => l_user_id,
431 X_LAST_UPDATE_DATE => sysdate,
432 X_LAST_UPDATED_BY => l_user_id,
433 X_LAST_UPDATE_LOGIN => 0);
434
435 end;
436
437 end CS_KB_ELE_TYPE_LINKS_PKG;