19: -- this API is used by JTT, obsoleted
20: procedure createCategory
21: (
22: p_api_version in number,
23: p_init_msg_list in varchar2 := FND_API.G_FALSE,
24: p_commit in varchar2 := FND_API.G_FALSE,
25: p_validation_level in number := FND_API.G_VALID_LEVEL_FULL,
26: x_return_status OUT NOCOPY varchar2,
27: x_msg_count OUT NOCOPY number,
20: procedure createCategory
21: (
22: p_api_version in number,
23: p_init_msg_list in varchar2 := FND_API.G_FALSE,
24: p_commit in varchar2 := FND_API.G_FALSE,
25: p_validation_level in number := FND_API.G_VALID_LEVEL_FULL,
26: x_return_status OUT NOCOPY varchar2,
27: x_msg_count OUT NOCOPY number,
28: x_msg_data OUT NOCOPY varchar2,
21: (
22: p_api_version in number,
23: p_init_msg_list in varchar2 := FND_API.G_FALSE,
24: p_commit in varchar2 := FND_API.G_FALSE,
25: p_validation_level in number := FND_API.G_VALID_LEVEL_FULL,
26: x_return_status OUT NOCOPY varchar2,
27: x_msg_count OUT NOCOPY number,
28: x_msg_data OUT NOCOPY varchar2,
29: p_parent_category_id in number,
53: procedure createCategory
54: (
55: p_category_id in number,
56: p_api_version in number,
57: p_init_msg_list in varchar2 := FND_API.G_FALSE,
58: p_commit in varchar2 := FND_API.G_FALSE,
59: p_validation_level in number := FND_API.G_VALID_LEVEL_FULL,
60: x_return_status OUT NOCOPY varchar2,
61: x_msg_count OUT NOCOPY number,
54: (
55: p_category_id in number,
56: p_api_version in number,
57: p_init_msg_list in varchar2 := FND_API.G_FALSE,
58: p_commit in varchar2 := FND_API.G_FALSE,
59: p_validation_level in number := FND_API.G_VALID_LEVEL_FULL,
60: x_return_status OUT NOCOPY varchar2,
61: x_msg_count OUT NOCOPY number,
62: x_msg_data OUT NOCOPY varchar2,
55: p_category_id in number,
56: p_api_version in number,
57: p_init_msg_list in varchar2 := FND_API.G_FALSE,
58: p_commit in varchar2 := FND_API.G_FALSE,
59: p_validation_level in number := FND_API.G_VALID_LEVEL_FULL,
60: x_return_status OUT NOCOPY varchar2,
61: x_msg_count OUT NOCOPY number,
62: x_msg_data OUT NOCOPY varchar2,
63: p_parent_category_id in number,
104: X_MSG_DATA => x_msg_data,
105: X_MSG_COUNT => x_msg_count
106: );
107:
108: if fnd_api.to_boolean( p_commit ) then
109: commit;
110: end if;
111: end createCategory;
112:
112:
113: procedure removeCategory
114: (
115: p_api_version in number,
116: p_init_msg_list in varchar2 := FND_API.G_FALSE,
117: p_commit in varchar2 := FND_API.G_FALSE,
118: p_validation_level in number := FND_API.G_VALID_LEVEL_FULL,
119: x_return_status OUT NOCOPY varchar2,
120: x_msg_count OUT NOCOPY number,
113: procedure removeCategory
114: (
115: p_api_version in number,
116: p_init_msg_list in varchar2 := FND_API.G_FALSE,
117: p_commit in varchar2 := FND_API.G_FALSE,
118: p_validation_level in number := FND_API.G_VALID_LEVEL_FULL,
119: x_return_status OUT NOCOPY varchar2,
120: x_msg_count OUT NOCOPY number,
121: x_msg_data OUT NOCOPY varchar2,
114: (
115: p_api_version in number,
116: p_init_msg_list in varchar2 := FND_API.G_FALSE,
117: p_commit in varchar2 := FND_API.G_FALSE,
118: p_validation_level in number := FND_API.G_VALID_LEVEL_FULL,
119: x_return_status OUT NOCOPY varchar2,
120: x_msg_count OUT NOCOPY number,
121: x_msg_data OUT NOCOPY varchar2,
122: p_category_id in number
146: select count( * ) into n_subcatgories
147: from cs_kb_soln_categories_b
148: where parent_category_id = p_category_id;
149:
150: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
151: -- check if the category is deletable
152: -- i.e. it does not contain sub-categories nor PUBlished child solutions
153: if( n_child_solutions <> 0 OR n_subcatgories <> 0 ) then
154: FND_MSG_PUB.initialize;
153: if( n_child_solutions <> 0 OR n_subcatgories <> 0 ) then
154: FND_MSG_PUB.initialize;
155: FND_MESSAGE.set_name('CS', 'CS_KB_C_CAT_DELETE_FAILED');
156: FND_MSG_PUB.ADD;
157: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
158: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE ,
159: p_count => X_MSG_COUNT,
160: p_data => X_MSG_DATA);
161:
154: FND_MSG_PUB.initialize;
155: FND_MESSAGE.set_name('CS', 'CS_KB_C_CAT_DELETE_FAILED');
156: FND_MSG_PUB.ADD;
157: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
158: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE ,
159: p_count => X_MSG_COUNT,
160: p_data => X_MSG_DATA);
161:
162: ELSE
181: X_RETURN_STATUS => x_return_status,
182: X_MSG_DATA => x_msg_data,
183: X_MSG_COUNT => x_msg_count
184: );
185: if fnd_api.to_boolean( p_commit ) then
186: commit;
187: end if;
188: X_RETURN_STATUS := FND_API.G_RET_STS_SUCCESS;
189:
184: );
185: if fnd_api.to_boolean( p_commit ) then
186: commit;
187: end if;
188: X_RETURN_STATUS := FND_API.G_RET_STS_SUCCESS;
189:
190: end if;
191:
192: end removeCategory;
218: procedure removeCategoryCascade
219: (
220: p_api_version in number,
221: p_category_id in number,
222: p_init_msg_list in varchar2 := FND_API.G_FALSE,
223: p_commit in varchar2 := FND_API.G_FALSE,
224: p_validation_level in number := FND_API.G_VALID_LEVEL_FULL,
225: x_return_status OUT NOCOPY varchar2,
226: x_msg_count OUT NOCOPY number,
219: (
220: p_api_version in number,
221: p_category_id in number,
222: p_init_msg_list in varchar2 := FND_API.G_FALSE,
223: p_commit in varchar2 := FND_API.G_FALSE,
224: p_validation_level in number := FND_API.G_VALID_LEVEL_FULL,
225: x_return_status OUT NOCOPY varchar2,
226: x_msg_count OUT NOCOPY number,
227: x_msg_data OUT NOCOPY varchar2
220: p_api_version in number,
221: p_category_id in number,
222: p_init_msg_list in varchar2 := FND_API.G_FALSE,
223: p_commit in varchar2 := FND_API.G_FALSE,
224: p_validation_level in number := FND_API.G_VALID_LEVEL_FULL,
225: x_return_status OUT NOCOPY varchar2,
226: x_msg_count OUT NOCOPY number,
227: x_msg_data OUT NOCOPY varchar2
228: )
243: SELECT cs_kb_soln_categories_pvt.admin_cat_fullpath_names( cp_category_id, ' > ' )
244: FROM dual;
245: begin
246: savepoint removeCategoryCascade_PVT;
247: X_RETURN_STATUS := FND_API.G_RET_STS_SUCCESS;
248:
249: -- Loop through descendent categories and delete them one by one.
250: -- The query return descendent categories from bottome up.
251: OPEN Get_Descendent_Categories(p_category_id);
258: x_msg_data => x_msg_data,
259: x_msg_count => x_msg_count);
260: -- If any of these descendent categories failed to be deleted. Rollback
261: -- and return.
262: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
263: ROLLBACK TO removeCategoryCascade_PVT;
264: --Prepare error message
265: OPEN Get_Category_Fullpath_Name(p_category_id);
266: FETCH Get_Category_Fullpath_Name INTO l_category_fullpath_name;
271: FND_MESSAGE.SET_TOKEN(TOKEN => 'CATEGORY_FULLPATH_NAME',
272: VALUE => l_category_fullpath_name,
273: TRANSLATE => true);
274: FND_MSG_PUB.ADD;
275: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE ,
276: p_count => X_MSG_COUNT,
277: p_data => X_MSG_DATA);
278: EXIT;
279: END IF;
280: END LOOP;
281: CLOSE Get_Descendent_Categories;
282:
283: -- If everything is okay and specified to commit, then commit the transaction.
284: IF X_RETURN_STATUS = FND_API.G_RET_STS_SUCCESS AND
285: fnd_api.to_boolean( p_commit ) THEN
286: COMMIT;
287: END IF;
288: end removeCategoryCascade;
281: CLOSE Get_Descendent_Categories;
282:
283: -- If everything is okay and specified to commit, then commit the transaction.
284: IF X_RETURN_STATUS = FND_API.G_RET_STS_SUCCESS AND
285: fnd_api.to_boolean( p_commit ) THEN
286: COMMIT;
287: END IF;
288: end removeCategoryCascade;
289:
290: -- this API is used by JTT, obsoleted
291: procedure updateCategory
292: (
293: p_api_version in number,
294: p_init_msg_list in varchar2 := FND_API.G_FALSE,
295: p_commit in varchar2 := FND_API.G_FALSE,
296: p_validation_level in number := FND_API.G_VALID_LEVEL_FULL,
297: x_return_status OUT NOCOPY varchar2,
298: x_msg_count OUT NOCOPY number,
291: procedure updateCategory
292: (
293: p_api_version in number,
294: p_init_msg_list in varchar2 := FND_API.G_FALSE,
295: p_commit in varchar2 := FND_API.G_FALSE,
296: p_validation_level in number := FND_API.G_VALID_LEVEL_FULL,
297: x_return_status OUT NOCOPY varchar2,
298: x_msg_count OUT NOCOPY number,
299: x_msg_data OUT NOCOPY varchar2,
292: (
293: p_api_version in number,
294: p_init_msg_list in varchar2 := FND_API.G_FALSE,
295: p_commit in varchar2 := FND_API.G_FALSE,
296: p_validation_level in number := FND_API.G_VALID_LEVEL_FULL,
297: x_return_status OUT NOCOPY varchar2,
298: x_msg_count OUT NOCOPY number,
299: x_msg_data OUT NOCOPY varchar2,
300: p_category_id in number,
321: -- this new API is called from OA, core should use this one instead
322: procedure updateCategory
323: (
324: p_api_version in number,
325: p_init_msg_list in varchar2 := FND_API.G_FALSE,
326: p_commit in varchar2 := FND_API.G_FALSE,
327: p_validation_level in number := FND_API.G_VALID_LEVEL_FULL,
328: x_return_status OUT NOCOPY varchar2,
329: x_msg_count OUT NOCOPY number,
322: procedure updateCategory
323: (
324: p_api_version in number,
325: p_init_msg_list in varchar2 := FND_API.G_FALSE,
326: p_commit in varchar2 := FND_API.G_FALSE,
327: p_validation_level in number := FND_API.G_VALID_LEVEL_FULL,
328: x_return_status OUT NOCOPY varchar2,
329: x_msg_count OUT NOCOPY number,
330: x_msg_data OUT NOCOPY varchar2,
323: (
324: p_api_version in number,
325: p_init_msg_list in varchar2 := FND_API.G_FALSE,
326: p_commit in varchar2 := FND_API.G_FALSE,
327: p_validation_level in number := FND_API.G_VALID_LEVEL_FULL,
328: x_return_status OUT NOCOPY varchar2,
329: x_msg_count OUT NOCOPY number,
330: x_msg_data OUT NOCOPY varchar2,
331: p_category_id in number,
418: l_original_visibility_id,
419: l_request_id,
420: l_return_status );
421:
422: IF l_return_status = FND_API.G_RET_STS_SUCCESS THEN
423: X_RETURN_STATUS := FND_API.G_RET_STS_SUCCESS;
424: ELSE
425: RAISE INDEX_SYNC_FAILED;
426: END IF;
419: l_request_id,
420: l_return_status );
421:
422: IF l_return_status = FND_API.G_RET_STS_SUCCESS THEN
423: X_RETURN_STATUS := FND_API.G_RET_STS_SUCCESS;
424: ELSE
425: RAISE INDEX_SYNC_FAILED;
426: END IF;
427:
436: X_RETURN_STATUS => x_return_status,
437: X_MSG_DATA => x_msg_data,
438: X_MSG_COUNT => x_msg_count
439: );
440: IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
441: RAISE CG_MEMBER_DEL_FAILED;
442: END IF;
443: end loop;
444: end loop;
458: l_original_parent_category_id,
459: l_request_id,
460: l_return_status );
461:
462: IF l_return_status = FND_API.G_RET_STS_SUCCESS THEN
463: X_RETURN_STATUS := FND_API.G_RET_STS_SUCCESS;
464: ELSE
465: RAISE INDEX_SYNC_FAILED;
466: END IF;
459: l_request_id,
460: l_return_status );
461:
462: IF l_return_status = FND_API.G_RET_STS_SUCCESS THEN
463: X_RETURN_STATUS := FND_API.G_RET_STS_SUCCESS;
464: ELSE
465: RAISE INDEX_SYNC_FAILED;
466: END IF;
467:
466: END IF;
467:
468: END IF;
469:
470: if fnd_api.to_boolean( p_commit ) then
471: commit;
472: end if;
473:
474: EXCEPTION
476: ROLLBACK TO updateCategory_PVT;
477: FND_MSG_PUB.initialize;
478: FND_MESSAGE.set_name('CS', 'CS_KB_C_DELETE_ERR');
479: FND_MSG_PUB.ADD;
480: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
481: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE ,
482: p_count => X_MSG_COUNT,
483: p_data => X_MSG_DATA);
484: WHEN INDEX_SYNC_FAILED THEN
477: FND_MSG_PUB.initialize;
478: FND_MESSAGE.set_name('CS', 'CS_KB_C_DELETE_ERR');
479: FND_MSG_PUB.ADD;
480: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
481: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE ,
482: p_count => X_MSG_COUNT,
483: p_data => X_MSG_DATA);
484: WHEN INDEX_SYNC_FAILED THEN
485: ROLLBACK TO updateCategory_PVT;
485: ROLLBACK TO updateCategory_PVT;
486: FND_MSG_PUB.initialize;
487: FND_MESSAGE.set_name('CS', 'CS_KB_SYNC_REQ_FAILED');
488: FND_MSG_PUB.ADD;
489: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
490: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE ,
491: p_count => X_MSG_COUNT,
492: p_data => X_MSG_DATA);
493:
486: FND_MSG_PUB.initialize;
487: FND_MESSAGE.set_name('CS', 'CS_KB_SYNC_REQ_FAILED');
488: FND_MSG_PUB.ADD;
489: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
490: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE ,
491: p_count => X_MSG_COUNT,
492: p_data => X_MSG_DATA);
493:
494: end updateCategory;
498: -- used, so it will always return 0.
499: procedure addSolutionToCategory
500: (
501: p_api_version in number,
502: p_init_msg_list in varchar2 := FND_API.G_FALSE,
503: p_commit in varchar2 := FND_API.G_FALSE,
504: p_validation_level in number := FND_API.G_VALID_LEVEL_FULL,
505: x_return_status OUT NOCOPY varchar2,
506: x_msg_count OUT NOCOPY number,
499: procedure addSolutionToCategory
500: (
501: p_api_version in number,
502: p_init_msg_list in varchar2 := FND_API.G_FALSE,
503: p_commit in varchar2 := FND_API.G_FALSE,
504: p_validation_level in number := FND_API.G_VALID_LEVEL_FULL,
505: x_return_status OUT NOCOPY varchar2,
506: x_msg_count OUT NOCOPY number,
507: x_msg_data OUT NOCOPY varchar2,
500: (
501: p_api_version in number,
502: p_init_msg_list in varchar2 := FND_API.G_FALSE,
503: p_commit in varchar2 := FND_API.G_FALSE,
504: p_validation_level in number := FND_API.G_VALID_LEVEL_FULL,
505: x_return_status OUT NOCOPY varchar2,
506: x_msg_count OUT NOCOPY number,
507: x_msg_data OUT NOCOPY varchar2,
508: p_solution_id in number,
571: null,
572: null
573: );
574:
575: x_return_status := fnd_api.g_ret_sts_success;
576: x_msg_count := 0;
577: x_msg_data := null;
578:
579: if fnd_api.to_boolean( p_commit ) then
575: x_return_status := fnd_api.g_ret_sts_success;
576: x_msg_count := 0;
577: x_msg_data := null;
578:
579: if fnd_api.to_boolean( p_commit ) then
580: commit;
581: end if;
582: exception
583: when DUP_VAL_ON_INDEX then
581: end if;
582: exception
583: when DUP_VAL_ON_INDEX then
584: rollback to linkSolutionToCategoryTran; -- undo changes
585: x_return_status := fnd_api.g_ret_sts_success;
586: x_msg_count := 0;
587: x_msg_data := null;
588: if fnd_api.to_boolean( p_commit ) then
589: commit;
584: rollback to linkSolutionToCategoryTran; -- undo changes
585: x_return_status := fnd_api.g_ret_sts_success;
586: x_msg_count := 0;
587: x_msg_data := null;
588: if fnd_api.to_boolean( p_commit ) then
589: commit;
590: end if;
591: when others then
592: x_return_status := fnd_api.g_ret_sts_error;
588: if fnd_api.to_boolean( p_commit ) then
589: commit;
590: end if;
591: when others then
592: x_return_status := fnd_api.g_ret_sts_error;
593: x_msg_count := 0;
594: x_msg_data := null;
595: end addSolutionToCategory;
596:
598: -- Need to handle error better.
599: procedure removeSolutionFromCategory
600: (
601: p_api_version in number,
602: p_init_msg_list in varchar2 := FND_API.G_FALSE,
603: p_commit in varchar2 := FND_API.G_FALSE,
604: p_validation_level in number := FND_API.G_VALID_LEVEL_FULL,
605: x_return_status OUT NOCOPY varchar2,
606: x_msg_count OUT NOCOPY number,
599: procedure removeSolutionFromCategory
600: (
601: p_api_version in number,
602: p_init_msg_list in varchar2 := FND_API.G_FALSE,
603: p_commit in varchar2 := FND_API.G_FALSE,
604: p_validation_level in number := FND_API.G_VALID_LEVEL_FULL,
605: x_return_status OUT NOCOPY varchar2,
606: x_msg_count OUT NOCOPY number,
607: x_msg_data OUT NOCOPY varchar2,
600: (
601: p_api_version in number,
602: p_init_msg_list in varchar2 := FND_API.G_FALSE,
603: p_commit in varchar2 := FND_API.G_FALSE,
604: p_validation_level in number := FND_API.G_VALID_LEVEL_FULL,
605: x_return_status OUT NOCOPY varchar2,
606: x_msg_count OUT NOCOPY number,
607: x_msg_data OUT NOCOPY varchar2,
608: p_solution_id in number,
616: delete from cs_kb_set_categories
617: where set_id = p_solution_id
618: and category_id = p_category_id;
619:
620: x_return_status := fnd_api.g_ret_sts_success;
621: x_msg_count := 0;
622: x_msg_data := null;
623:
624: if fnd_api.to_boolean( p_commit ) then
620: x_return_status := fnd_api.g_ret_sts_success;
621: x_msg_count := 0;
622: x_msg_data := null;
623:
624: if fnd_api.to_boolean( p_commit ) then
625: commit;
626: end if;
627:
628: exception
626: end if;
627:
628: exception
629: when others then
630: x_return_status := fnd_api.g_ret_sts_error;
631: x_msg_count := 0;
632: x_msg_data := null;
633: end removeSolutionFromCategory;
634: