问题描述
是否有一种通过SOA编程执行“另存为”操作的方法?
目标是能够将具有关系和属性的数据集从一个项目转移到另一个项目。我在SOA文档中发现了几个可以引用的对象。
SaveAsInput类:此结构用于捕获保存业务对象所需的输入。 Teamcenter.Services.Strong.Core._2011_06.DataManagement in TcSoaCoreStrong
SaveAsIn类:此结构包含要保存的对象以及要保存的对象的附加对象的相应DeepcopyData。 Teamcenter.Services.Strong.Core._2011_06.DataManagement in TcSoaCoreStrong
SaveAsNewItemInfo类:此数据结构包含现有和新的对象信息,另存为新的Item操作。 Teamcenter.Services.Strong.Core._2008_06.DataManagement in TcSoaCoreStrong
SaveAsNewItemResponse2 :数据结构包含该操作的返回信息。
Teamcenter.Services.Strong.Core._2008_06.DataManagement in TcSoaCoreStrong
有人有任何实现或有关它的更多信息吗?
解决方法
最后我找到了解决方案,这是实现的一个示例:
SaveAsNewItemInfo newItemInfo = new SaveAsNewItemInfo();
newItemInfo.BaseItemRevision = dm.getItemRevision("BaseItem_id","BaseRev_id");
newItemInfo.ClientId = "clientID";
newItemInfo.Description = "TestDescription";
newItemInfo.Name = "TestName";
newItemInfo.NewItemId = "Item_id";
newItemInfo.NewRevId = "Rev_id";
SaveAsNewItemInfo[] newItemList = new SaveAsNewItemInfo[] { newItemInfo };
try
{
SaveAsNewItemResponse2 createObjResponse = dmService.SaveAsNewItem2(newItemList);
for (int i = 0; i < createObjResponse.ServiceData.sizeOfPartialErrors(); i++)
{
ErrorStack list = createObjResponse.ServiceData.GetPartialError(i);
}
}
catch (ServiceException e)
{
Console.WriteLine(e.Message);
}