239: l_latest_set_id NUMBER;
240:
241: BEGIN
242:
243: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
244:
245: SELECT locked_by
246: INTO l_locked_by
247: FROM CS_KB_SETS_B
257: UPDATE CS_KB_SETS_B
258: SET locked_by = P_USER_ID
259: WHERE set_id = P_SET_ID;
260:
261: X_RETURN_STATUS := FND_API.G_RET_STS_SUCCESS;
262: ELSE
263: FND_MSG_PUB.initialize;
264: FND_MESSAGE.set_name('CS', 'CS_KB_C_SOL_LOCKED_BY_USER');
265: FND_MSG_PUB.ADD;
262: ELSE
263: FND_MSG_PUB.initialize;
264: FND_MESSAGE.set_name('CS', 'CS_KB_C_SOL_LOCKED_BY_USER');
265: FND_MSG_PUB.ADD;
266: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
267: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE ,
268: p_count => X_MSG_COUNT,
269: p_data => X_MSG_DATA);
270: END IF;
263: FND_MSG_PUB.initialize;
264: FND_MESSAGE.set_name('CS', 'CS_KB_C_SOL_LOCKED_BY_USER');
265: FND_MSG_PUB.ADD;
266: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
267: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE ,
268: p_count => X_MSG_COUNT,
269: p_data => X_MSG_DATA);
270: END IF;
271:
272:
273: EXCEPTION
274: WHEN OTHERS THEN
275: FND_MESSAGE.set_name('CS', 'CS_KB_C_UNEXP_ERR');
276: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
277:
278: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count,
279: p_data => x_msg_data);
280: END Snatch_Lock_From_User;
684: FROM cs_lookups
685: WHERE lookup_type = 'CS_KB_INTERNAL_CODES'
686: AND lookup_code = upper(p_status);
687: IF(l_count<1) THEN
688: RETURN fnd_api.g_false;
689: ELSE
690: RETURN fnd_api.g_true;
691: END IF;
692:
686: AND lookup_code = upper(p_status);
687: IF(l_count<1) THEN
688: RETURN fnd_api.g_false;
689: ELSE
690: RETURN fnd_api.g_true;
691: END IF;
692:
693: RETURN fnd_api.g_true;
694:
689: ELSE
690: RETURN fnd_api.g_true;
691: END IF;
692:
693: RETURN fnd_api.g_true;
694:
695: END Is_Status_Valid;
696:
697: -- Api's used in 11.5.10 by OAF:
751: AND nvl(End_Date_Active, sysdate+1);
752:
753:
754: BEGIN
755: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
756:
757: -- Check Security
758: OPEN Check_Visibility;
759: FETCH Check_Visibility INTO l_vis_count;
762: IF l_vis_count = 0 THEN
763: FND_MSG_PUB.initialize;
764: FND_MESSAGE.set_name('CS', 'CS_KB_INV_SOLN_VIS');
765: FND_MSG_PUB.ADD;
766: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
767: X_SET_ID := -1;
768: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE ,
769: p_count => X_MSG_COUNT,
770: p_data => X_MSG_DATA);
764: FND_MESSAGE.set_name('CS', 'CS_KB_INV_SOLN_VIS');
765: FND_MSG_PUB.ADD;
766: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
767: X_SET_ID := -1;
768: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE ,
769: p_count => X_MSG_COUNT,
770: p_data => X_MSG_DATA);
771: ELSE
772: -- check params
773: IF(p_set_type_id IS NULL OR p_name IS NULL) THEN
774: FND_MSG_PUB.initialize;
775: FND_MESSAGE.set_name('CS', 'CS_KB_C_MISS_PARAM');
776: FND_MSG_PUB.ADD;
777: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
778: X_SET_ID := -1;
779: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE ,
780: p_count => X_MSG_COUNT,
781: p_data => X_MSG_DATA);
775: FND_MESSAGE.set_name('CS', 'CS_KB_C_MISS_PARAM');
776: FND_MSG_PUB.ADD;
777: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
778: X_SET_ID := -1;
779: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE ,
780: p_count => X_MSG_COUNT,
781: p_data => X_MSG_DATA);
782:
783: ELSE
789: IF(l_count <1) THEN
790: FND_MSG_PUB.initialize;
791: FND_MESSAGE.set_name('CS', 'CS_KB_C_INVALID_SET_TYPE_ID');
792: FND_MSG_PUB.ADD;
793: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
794: X_SET_ID := -2;
795: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE ,
796: p_count => X_MSG_COUNT,
797: p_data => X_MSG_DATA);
791: FND_MESSAGE.set_name('CS', 'CS_KB_C_INVALID_SET_TYPE_ID');
792: FND_MSG_PUB.ADD;
793: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
794: X_SET_ID := -2;
795: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE ,
796: p_count => X_MSG_COUNT,
797: p_data => X_MSG_DATA);
798:
799: ELSE
804: IF l_dummy Is Null Then
805: FND_MSG_PUB.initialize;
806: FND_MESSAGE.set_name('CS', 'CS_KB_EXPIRED_SOLUTION_TYPE');
807: FND_MSG_PUB.ADD;
808: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
809: X_SET_ID := -4;
810: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE ,
811: p_count => X_MSG_COUNT,
812: p_data => X_MSG_DATA);
806: FND_MESSAGE.set_name('CS', 'CS_KB_EXPIRED_SOLUTION_TYPE');
807: FND_MSG_PUB.ADD;
808: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
809: X_SET_ID := -4;
810: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE ,
811: p_count => X_MSG_COUNT,
812: p_data => X_MSG_DATA);
813: ELSE
814: --check status
825: IF(l_count >0) THEN
826: FND_MSG_PUB.initialize;
827: FND_MESSAGE.set_name('CS', 'CS_KB_C_DUP_SET_NAME');
828: FND_MSG_PUB.ADD;
829: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
830: X_SET_ID := -3;
831: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE ,
832: p_count => X_MSG_COUNT,
833: p_data => X_MSG_DATA);
827: FND_MESSAGE.set_name('CS', 'CS_KB_C_DUP_SET_NAME');
828: FND_MSG_PUB.ADD;
829: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
830: X_SET_ID := -3;
831: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE ,
832: p_count => X_MSG_COUNT,
833: p_data => X_MSG_DATA);
834: ELSE
835:
849: IF x_set_id is NULL OR x_set_number is null THEN
850: FND_MSG_PUB.initialize;
851: FND_MESSAGE.set_name('CS', 'CS_KB_C_MISS_PARAM');
852: FND_MSG_PUB.ADD;
853: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
854: X_SET_ID := -1;
855: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE ,
856: p_count => X_MSG_COUNT,
857: p_data => X_MSG_DATA);
851: FND_MESSAGE.set_name('CS', 'CS_KB_C_MISS_PARAM');
852: FND_MSG_PUB.ADD;
853: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
854: X_SET_ID := -1;
855: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE ,
856: p_count => X_MSG_COUNT,
857: p_data => X_MSG_DATA);
858:
859: ELSE
900: x_end_active_date => NULL,
901: x_priority_code => 4,
902: x_visibility_id => p_visibility_id );
903:
904: X_RETURN_STATUS := FND_API.G_RET_STS_SUCCESS;
905:
906: UPDATE CS_KB_SETS_B
907: SET LATEST_VERSION_FLAG = null --'N'
908: WHERE SET_NUMBER = x_set_number
937:
938: EXCEPTION
939: WHEN OTHERS THEN
940: FND_MESSAGE.set_name('CS', 'CS_KB_C_UNEXP_ERR');
941: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
942:
943: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count,
944: p_data => x_msg_data);
945: END Create_Solution;
1002: AND sysdate BETWEEN nvl(Start_Date_Active, sysdate-1)
1003: AND nvl(End_Date_Active, sysdate+1);
1004:
1005: BEGIN
1006: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
1007:
1008: -- Check Security
1009: OPEN Check_Visibility;
1010: FETCH Check_Visibility INTO l_vis_count;
1013: IF l_vis_count = 0 THEN
1014: FND_MSG_PUB.initialize;
1015: FND_MESSAGE.set_name('CS', 'CS_KB_INV_SOLN_VIS');
1016: FND_MSG_PUB.ADD;
1017: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
1018: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE ,
1019: p_count => X_MSG_COUNT,
1020: p_data => X_MSG_DATA);
1021: ELSE
1014: FND_MSG_PUB.initialize;
1015: FND_MESSAGE.set_name('CS', 'CS_KB_INV_SOLN_VIS');
1016: FND_MSG_PUB.ADD;
1017: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
1018: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE ,
1019: p_count => X_MSG_COUNT,
1020: p_data => X_MSG_DATA);
1021: ELSE
1022: -- validate params
1023: IF(p_set_number IS NULL OR p_set_id IS NULL OR p_set_type_id IS NULL ) THEN
1024: FND_MSG_PUB.initialize;
1025: FND_MESSAGE.set_name('CS', 'CS_KB_C_MISS_PARAM');
1026: FND_MSG_PUB.ADD;
1027: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
1028: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE ,
1029: p_count => X_MSG_COUNT,
1030: p_data => X_MSG_DATA);
1031: ELSE
1024: FND_MSG_PUB.initialize;
1025: FND_MESSAGE.set_name('CS', 'CS_KB_C_MISS_PARAM');
1026: FND_MSG_PUB.ADD;
1027: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
1028: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE ,
1029: p_count => X_MSG_COUNT,
1030: p_data => X_MSG_DATA);
1031: ELSE
1032:
1037: IF(l_count <1) THEN
1038: FND_MSG_PUB.initialize;
1039: FND_MESSAGE.set_name('CS', 'CS_KB_C_INVALID_SET_TYPE_ID');
1040: FND_MSG_PUB.ADD;
1041: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
1042: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE ,
1043: p_count => X_MSG_COUNT,
1044: p_data => X_MSG_DATA);
1045:
1038: FND_MSG_PUB.initialize;
1039: FND_MESSAGE.set_name('CS', 'CS_KB_C_INVALID_SET_TYPE_ID');
1040: FND_MSG_PUB.ADD;
1041: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
1042: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE ,
1043: p_count => X_MSG_COUNT,
1044: p_data => X_MSG_DATA);
1045:
1046: ELSE
1059: If l_dummy Is Null Then
1060: FND_MSG_PUB.initialize;
1061: FND_MESSAGE.set_name('CS', 'CS_KB_END_DATED_TYPE');
1062: FND_MSG_PUB.ADD;
1063: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
1064: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE ,
1065: p_count => X_MSG_COUNT,
1066: p_data => X_MSG_DATA);
1067: End If;
1060: FND_MSG_PUB.initialize;
1061: FND_MESSAGE.set_name('CS', 'CS_KB_END_DATED_TYPE');
1062: FND_MSG_PUB.ADD;
1063: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
1064: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE ,
1065: p_count => X_MSG_COUNT,
1066: p_data => X_MSG_DATA);
1067: End If;
1068: End If;
1069:
1070: IF l_dummy is not null THEN
1071:
1072: -- IF status valid
1073: IF(Is_Status_Valid(p_status) = FND_API.g_false) THEN
1074: FND_MSG_PUB.initialize;
1075: FND_MESSAGE.set_name('CS', 'CS_KB_C_INVALID_SET_STATUS');
1076: FND_MSG_PUB.ADD;
1077: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
1073: IF(Is_Status_Valid(p_status) = FND_API.g_false) THEN
1074: FND_MSG_PUB.initialize;
1075: FND_MESSAGE.set_name('CS', 'CS_KB_C_INVALID_SET_STATUS');
1076: FND_MSG_PUB.ADD;
1077: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
1078: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE ,
1079: p_count => X_MSG_COUNT,
1080: p_data => X_MSG_DATA);
1081: ELSE
1074: FND_MSG_PUB.initialize;
1075: FND_MESSAGE.set_name('CS', 'CS_KB_C_INVALID_SET_STATUS');
1076: FND_MSG_PUB.ADD;
1077: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
1078: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE ,
1079: p_count => X_MSG_COUNT,
1080: p_data => X_MSG_DATA);
1081: ELSE
1082:
1090: IF(l_count >0) THEN
1091: FND_MSG_PUB.initialize;
1092: FND_MESSAGE.set_name('CS', 'CS_KB_C_DUP_SET_NAME');
1093: FND_MSG_PUB.ADD;
1094: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
1095: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE ,
1096: p_count => X_MSG_COUNT,
1097: p_data => X_MSG_DATA);
1098: ELSE
1091: FND_MSG_PUB.initialize;
1092: FND_MESSAGE.set_name('CS', 'CS_KB_C_DUP_SET_NAME');
1093: FND_MSG_PUB.ADD;
1094: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
1095: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE ,
1096: p_count => X_MSG_COUNT,
1097: p_data => X_MSG_DATA);
1098: ELSE
1099:
1141: x_end_active_date => null,
1142: x_priority_code => 4,
1143: x_visibility_id => p_visibility_id );
1144:
1145: X_RETURN_STATUS := FND_API.G_RET_STS_SUCCESS;
1146:
1147: END IF; -- check unique solution title (except those with same set_number)
1148:
1149: END IF; --valid status
1159: EXCEPTION
1160: WHEN OTHERS THEN
1161: FND_MESSAGE.set_name('CS', 'CS_KB_C_UPDATE_ERR');
1162: FND_MSG_PUB.ADD;
1163: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1164: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE ,
1165: p_count => X_MSG_COUNT,
1166: p_data => X_MSG_DATA);
1167: END Update_Solution;
1160: WHEN OTHERS THEN
1161: FND_MESSAGE.set_name('CS', 'CS_KB_C_UPDATE_ERR');
1162: FND_MSG_PUB.ADD;
1163: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1164: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE ,
1165: p_count => X_MSG_COUNT,
1166: p_data => X_MSG_DATA);
1167: END Update_Solution;
1168:
1205: -- test varchar2(10);
1206: l_dup_count NUMBER;
1207:
1208: BEGIN
1209: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
1210: X_RETURN := -1;
1211: SAVEPOINT START_OF_SUBMIT;
1212:
1213: IF FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL THEN
1260: -- Start_Wf is an Internal api that performs the following:
1261: -- 1) Clone Solution
1262: -- 2) Send Notification via Oracle WorkFlow
1263:
1264: X_RETURN_STATUS := FND_API.G_RET_STS_SUCCESS;
1265:
1266: CS_KB_WF_PKG.Start_Wf( p_set_number => p_set_number,
1267: p_set_id => p_set_id,
1268: p_new_step => p_new_step,
1277: FND_MESSAGE.SET_TOKEN(TOKEN => 'ERROR_MSG',
1278: VALUE => l_errormsg,
1279: TRANSLATE => true);
1280: FND_MSG_PUB.ADD;
1281: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
1282: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE ,
1283: p_count => X_MSG_COUNT,
1284: p_data => X_MSG_DATA);
1285: END IF;
1278: VALUE => l_errormsg,
1279: TRANSLATE => true);
1280: FND_MSG_PUB.ADD;
1281: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
1282: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE ,
1283: p_count => X_MSG_COUNT,
1284: p_data => X_MSG_DATA);
1285: END IF;
1286:
1306: FND_MESSAGE.SET_TOKEN(TOKEN => 'ERROR_MSG',
1307: VALUE => SQLERRM,
1308: TRANSLATE => true);
1309: FND_MSG_PUB.ADD;
1310: X_RETURN_STATUS := FND_API.G_RET_STS_UNEXP_ERROR;
1311: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE ,
1312: p_count => X_MSG_COUNT,
1313: p_data => X_MSG_DATA);
1314:
1307: VALUE => SQLERRM,
1308: TRANSLATE => true);
1309: FND_MSG_PUB.ADD;
1310: X_RETURN_STATUS := FND_API.G_RET_STS_UNEXP_ERROR;
1311: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE ,
1312: p_count => X_MSG_COUNT,
1313: p_data => X_MSG_DATA);
1314:
1315: END Submit_Solution;
1503: 'SAV',
1504: NULL, --p_flow_details_id
1505: l_current_user);
1506:
1507: X_RETURN_STATUS := FND_API.G_RET_STS_SUCCESS;
1508:
1509: ELSE
1510: -- If Not Published assign the lock to the current version for
1511: -- the current user
1512:
1513: IF (l_locked_by = -1) THEN
1514: -- Soln is unlocked so lock with current user
1515: Set_Lock_Info(p_set_id, l_current_user, sysdate);
1516: X_RETURN_STATUS := FND_API.G_RET_STS_SUCCESS;
1517:
1518: ELSIF (l_locked_by = l_current_user) THEN
1519: -- Current User already has the lock, ignore - do nothing
1520: X_RETURN_STATUS := FND_API.G_RET_STS_SUCCESS;
1516: X_RETURN_STATUS := FND_API.G_RET_STS_SUCCESS;
1517:
1518: ELSIF (l_locked_by = l_current_user) THEN
1519: -- Current User already has the lock, ignore - do nothing
1520: X_RETURN_STATUS := FND_API.G_RET_STS_SUCCESS;
1521: ELSE
1522: -- Another user has locked the Solution
1523: -- return unsuccessful
1524: FND_MSG_PUB.initialize;
1523: -- return unsuccessful
1524: FND_MSG_PUB.initialize;
1525: FND_MESSAGE.set_name('CS', 'CS_KB_C_SOL_LOCKED_BY_USER');
1526: FND_MSG_PUB.ADD;
1527: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
1528: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE ,
1529: p_count => X_MSG_COUNT,
1530: p_data => X_MSG_DATA);
1531:
1524: FND_MSG_PUB.initialize;
1525: FND_MESSAGE.set_name('CS', 'CS_KB_C_SOL_LOCKED_BY_USER');
1526: FND_MSG_PUB.ADD;
1527: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
1528: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE ,
1529: p_count => X_MSG_COUNT,
1530: p_data => X_MSG_DATA);
1531:
1532: END IF;
1537: -- return unsuccessful
1538: FND_MSG_PUB.initialize;
1539: FND_MESSAGE.set_name('CS', 'CS_KB_CHECK_OUT_CHANGED');
1540: FND_MSG_PUB.ADD;
1541: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
1542: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE ,
1543: p_count => X_MSG_COUNT,
1544: p_data => X_MSG_DATA);
1545: END IF;
1538: FND_MSG_PUB.initialize;
1539: FND_MESSAGE.set_name('CS', 'CS_KB_CHECK_OUT_CHANGED');
1540: FND_MSG_PUB.ADD;
1541: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
1542: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE ,
1543: p_count => X_MSG_COUNT,
1544: p_data => X_MSG_DATA);
1545: END IF;
1546: EXCEPTION
1545: END IF;
1546: EXCEPTION
1547: WHEN OTHERS THEN
1548: FND_MESSAGE.set_name('CS', 'CS_KB_C_UNEXP_ERR');
1549: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1550: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count,
1551: p_data => x_msg_data);
1552: END CheckOut_Solution;
1553:
1556: --category. Otherwise, the existing link to P_SRC_CAT_ID will be removed.
1557: --
1558: PROCEDURE Move_Solutions(
1559: p_api_version in number,
1560: p_init_msg_list in varchar2 := FND_API.G_FALSE,
1561: p_commit in varchar2 := FND_API.G_FALSE,
1562: p_validation_level in number := FND_API.G_VALID_LEVEL_FULL,
1563: x_return_status OUT NOCOPY varchar2,
1564: x_msg_count OUT NOCOPY number,
1557: --
1558: PROCEDURE Move_Solutions(
1559: p_api_version in number,
1560: p_init_msg_list in varchar2 := FND_API.G_FALSE,
1561: p_commit in varchar2 := FND_API.G_FALSE,
1562: p_validation_level in number := FND_API.G_VALID_LEVEL_FULL,
1563: x_return_status OUT NOCOPY varchar2,
1564: x_msg_count OUT NOCOPY number,
1565: x_msg_data OUT NOCOPY varchar2,
1558: PROCEDURE Move_Solutions(
1559: p_api_version in number,
1560: p_init_msg_list in varchar2 := FND_API.G_FALSE,
1561: p_commit in varchar2 := FND_API.G_FALSE,
1562: p_validation_level in number := FND_API.G_VALID_LEVEL_FULL,
1563: x_return_status OUT NOCOPY varchar2,
1564: x_msg_count OUT NOCOPY number,
1565: x_msg_data OUT NOCOPY varchar2,
1566: P_SET_IDS IN JTF_NUMBER_TABLE,
1584: l_count NUMBER;
1585:
1586: BEGIN
1587: SAVEPOINT MOVE_SOLUTIONS;
1588: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
1589: IF FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL THEN
1590: FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, 'csk.plsql.CS_KB_SOLUTION_PVT.Move_Solutions.begin',
1591: 'User='||fnd_global.user_id);
1592: END IF;
1659: --Mark solution for index update.
1660: CS_KB_SYNC_INDEX_PKG.Mark_Idxs_For_Multi_Soln(P_SET_IDS);
1661:
1662: --Return.
1663: X_RETURN_STATUS := FND_API.G_RET_STS_SUCCESS;
1664:
1665: IF FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL THEN
1666: FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, 'csk.plsql.CS_KB_SOLUTION_PVT.Move_Solutions.begin',
1667: 'Status='||X_RETURN_STATUS);
1666: FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, 'csk.plsql.CS_KB_SOLUTION_PVT.Move_Solutions.begin',
1667: 'Status='||X_RETURN_STATUS);
1668: END IF;
1669:
1670: if fnd_api.to_boolean( p_commit ) then
1671: commit;
1672: end if;
1673:
1674: EXCEPTION
1681:
1682: FND_MSG_PUB.initialize;
1683: FND_MESSAGE.set_name('CS', 'CS_KB_INV_API_SOLN_CAT_ID');
1684: FND_MSG_PUB.ADD;
1685: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
1686: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE ,
1687: p_count => X_MSG_COUNT,
1688: p_data => X_MSG_DATA);
1689: WHEN INVALID_SET_CATEGORY_LINK THEN
1682: FND_MSG_PUB.initialize;
1683: FND_MESSAGE.set_name('CS', 'CS_KB_INV_API_SOLN_CAT_ID');
1684: FND_MSG_PUB.ADD;
1685: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
1686: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE ,
1687: p_count => X_MSG_COUNT,
1688: p_data => X_MSG_DATA);
1689: WHEN INVALID_SET_CATEGORY_LINK THEN
1690: ROLLBACK TO MOVE_SOLUTIONS;
1695:
1696: FND_MSG_PUB.initialize;
1697: FND_MESSAGE.set_name('CS', 'CS_KB_INV_SET_CAT_LINK');
1698: FND_MSG_PUB.ADD;
1699: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
1700: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE ,
1701: p_count => X_MSG_COUNT,
1702: p_data => X_MSG_DATA);
1703: WHEN OTHERS THEN
1696: FND_MSG_PUB.initialize;
1697: FND_MESSAGE.set_name('CS', 'CS_KB_INV_SET_CAT_LINK');
1698: FND_MSG_PUB.ADD;
1699: X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
1700: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE ,
1701: p_count => X_MSG_COUNT,
1702: p_data => X_MSG_DATA);
1703: WHEN OTHERS THEN
1704: ROLLBACK TO MOVE_SOLUTIONS;
1702: p_data => X_MSG_DATA);
1703: WHEN OTHERS THEN
1704: ROLLBACK TO MOVE_SOLUTIONS;
1705: FND_MESSAGE.set_name('CS', 'CS_KB_C_UNEXP_ERR');
1706: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1707: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count,
1708: p_data => x_msg_data);
1709: END Move_Solutions;
1710:
1771: x_return_status := 'S';
1772: EXCEPTION
1773: WHEN OTHERS THEN
1774: FND_MESSAGE.set_name('CS', 'CS_KB_C_UNEXP_ERR');
1775: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1776: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count,
1777: p_data => x_msg_data);
1778: ROLLBACK TO CS_KB_ULOCK_SOLUTION;
1779: END unlock_solution;