问题描述
需要使用 SOA Java 开发方式对ItemRevision进行revise。
Revise Item Revision后,需要上传新的文件,以Dataset形式存在,以上代码默认将原ItemRevision中的Dataset保留,需要将两者之间的关系剪除。
解决方案:
public boolean reviseItem(Item item, String newRevId) throws Exception{
boolean isRevised = false;
DataManagementService dmService = DataManagementService.getService(con);
ItemRevision latestIRev = getLatestItemRevision(item);
if(compareRevision(latestIRev,newRevId)) {
ReviseInfo[] reviseInfo = new ReviseInfo[1];
reviseInfo[0] = new ReviseInfo();
reviseInfo[0].baseItemRevision = latestIRev;
reviseInfo[0].newRevId = newRevId;
ReviseResponse2 revised = dmService.revise2(reviseInfo);
if (revised.serviceData.sizeOfPartialErrors() == 0) isRevised = true;
}
return isRevised;
}
public void cutDataset(ItemRevision resRev, Dataset ds) {
DataManagementService dmService = DataManagementService.getService(con);
com.teamcenter.services.strong.core._2006_03.DataManagement.Relationship[] relInput = new com.teamcenter.services.strong.core._2006_03.DataManagement.Relationship[1];
relInput[0] = new com.teamcenter.services.strong.core._2006_03.DataManagement.Relationship();
relInput[0].primaryObject = resRev;
relInput[0].relationType = "IMAN_specification";
relInput[0].secondaryObject = ds;
dmService.deleteRelations(relInput);
}