public void deleteItems_single(ModelObject items) //throws ServiceException { // Get the service stub DataManagementService dmService = DataManagementService.getService(Session.getConnection()); // ***************************** // Execute the service operation // ***************************** ServiceData serviceData = dmService.DeleteObjects(new ModelObject[] { items }); // The AppXPartialErrorListener is logging the partial errors returned // In this simple example if any partial errors occur we will throw a // ServiceException if (serviceData.sizeOfPartialErrors() > 0) { throw new ServiceException("DataManagementService.deleteObjects returned a partial error."); } }
public void updateItem(String codeNumber, String name, String longDetail) { try { DataManagementService dmService = DataManagementService.getService(Session2.getConnection()); ModelObject itemObj = findModel(cfg.get("query_builder_ItemById_name") , new string[] { cfg.get("query_builder_ItemById_queryKey") }, new string[] { codeNumber }); var item = new ItemElementProperties(); item.ItemElement = itemObj; item.Name = name; //Hashtable kv = new Hashtable(); //kv.Add("object_desc", longDetail); //item.ItemElemAttributes = kv; CreateOrUpdateItemElementsResponse rsp = dmService.CreateOrUpdateItemElements(new ItemElementProperties[] { item }); } catch (Exception) { } }
private static void getUsers(ModelObject[] objects) { if (objects == null) { return; } DataManagementService dmService = DataManagementService.getService(Session.getConnection()); ArrayList unKnownUsers = new ArrayList(); for (int i = 0; i < objects.Length; i++) { if (!(objects[i] is WorkspaceObject)) { continue; } WorkspaceObject wo = (WorkspaceObject)objects[i]; User owner = null; try { owner = (User)wo.Owning_user; String userName = owner.User_name; } catch (NotLoadedException /*e*/) { if (owner != null) { unKnownUsers.Add(owner); } } } User[] users = new User[unKnownUsers.Count]; unKnownUsers.CopyTo(users); String[] attributes = { "user_name" }; // ***************************** // Execute the service operation // ***************************** dmService.GetProperties(users, attributes); }
public void changeOnwer(String userName, ModelObject modl) { DataManagementService dmService = DataManagementService.getService(Session.getConnection()); //ModelObject user = findUser(userName); ModelObject user = findModel(cfg.get("query_builder_userByUname_name") , new string[] { cfg.get("query_builder_userByUname_queryKey") }, new string[] { userName }); if (null == user) { throw new Exception("构建器查找用户失败,请确认申请人在TC是否存在。"); } //根据USER查找GROUP dmService.GetProperties(new ModelObject[] { user }, new string[] { "default_group" }); ModelObject userGroup = user.GetProperty("default_group").ModelObjectValue; if (null == userGroup) { throw new Exception("构建器查找用户组失败。"); } ObjectOwner[] ownerData = new ObjectOwner[1]; ObjectOwner ownrObj = new ObjectOwner(); ownrObj.Object = modl; ownrObj.Group = (Teamcenter.Soa.Client.Model.Strong.Group)userGroup; ownrObj.Owner = (Teamcenter.Soa.Client.Model.Strong.User)user; ownerData[0] = ownrObj; ServiceData returnData = dmService.ChangeOwnership(ownerData); if (returnData.sizeOfPartialErrors() > 0) { throw new Exception("修改所有者失败" + returnData.GetPartialError(0).Messages[0]); } }
/** * Revise Items * * @param revisionIds Map of Revsion IDs * @param itemRevs Array of ItemRevisons * * @return Map of Old ItemRevsion(key) to new ItemRevision(value) * * @throws ServiceException If any partial errors are returned */ public void reviseItems(Hashtable revisionIds, ItemRevision[] itemRevs) //throws ServiceException { // Get the service stub DataManagementService dmService = DataManagementService.getService(Session.getConnection()); ReviseInfo[] reviseInfo = new ReviseInfo[itemRevs.Length]; for (int i = 0; i < itemRevs.Length; i++) { RevisionIds rev = (RevisionIds)revisionIds[i]; reviseInfo[i] = new ReviseInfo(); reviseInfo[i].BaseItemRevision = itemRevs[i]; reviseInfo[i].ClientId = itemRevs[i].Uid + "--" + i; reviseInfo[i].Description = "describe testRevise"; reviseInfo[i].Name = "testRevise"; reviseInfo[i].NewRevId = rev.NewRevId; } // ***************************** // Execute the service operation // ***************************** ReviseResponse2 revised = dmService.Revise2(reviseInfo); // before control is returned the ChangedHandler will be called with // newly created Item and ItemRevisions // The AppXPartialErrorListener is logging the partial errors returned // In this simple example if any partial errors occur we will throw a // ServiceException if (revised.ServiceData.sizeOfPartialErrors() > 0) { throw new ServiceException("DataManagementService.revise returned a partial error."); } }
/** * Reserve a number Item and Revision Ids * * @param numberOfIds Number of IDs to generate * @param type Type of IDs to generate * * @return An array of Item and Revision IDs. The size of the array is equal * to the input numberOfIds * * @throws ServiceException If any partial errors are returned */ public ItemIdsAndInitialRevisionIds[] generateItemIds(int numberOfIds, String type) // throws ServiceException { // Get the service stub DataManagementService dmService = DataManagementService.getService(MyFormAppSession.getConnection()); GenerateItemIdsAndInitialRevisionIdsProperties[] properties = new GenerateItemIdsAndInitialRevisionIdsProperties[1]; GenerateItemIdsAndInitialRevisionIdsProperties property = new GenerateItemIdsAndInitialRevisionIdsProperties(); property.Count = numberOfIds; property.ItemType = type; property.Item = null; // Not used properties[0] = property; // ***************************** // Execute the service operation // ***************************** GenerateItemIdsAndInitialRevisionIdsResponse response = dmService.GenerateItemIdsAndInitialRevisionIds(properties); // The AppXPartialErrorListener is logging the partial errors returned // In this simple example if any partial errors occur we will throw a // ServiceException if (response.ServiceData.sizeOfPartialErrors() > 0) { throw new ServiceException("DataManagementService.generateItemIdsAndInitialRevisionIds returned a partial error."); } // The return is a map of ItemIdsAndInitialRevisionIds keyed on the // 0-based index of requested IDs. Since we only asked for IDs for one // data type, the map key is '0' Int32 bIkey = 0; Hashtable allNewIds = response.OutputItemIdsAndInitialRevisionIds; ItemIdsAndInitialRevisionIds[] myNewIds = (ItemIdsAndInitialRevisionIds[])allNewIds[bIkey]; return(myNewIds); }
public void reviseItem(ModelObject obj) //throws ServiceException { DataManagementService dmService = DataManagementService.getService(Session.getConnection()); ReviseInfo rev = new ReviseInfo(); rev.BaseItemRevision = new ItemRevision(null, obj.Uid); rev.ClientId = "Maxtt_Test" + "--" + "01"; rev.Description = "describe testRevise"; rev.Name = "testRevise"; rev.NewRevId = "01"; //额外的表单属性 PropertyNameValueInfo info = new PropertyNameValueInfo(); info.PropertyName = "object_desc"; info.PropertyValues = new string[] { "newid1" }; rev.NewItemRevisionMasterProperties.PropertyValueInfo = new PropertyNameValueInfo[] { info }; //rev.NewItemRevisionMasterProperties.Form = new Teamcenter.Soa.Client.Model.Strong.Form(null, obj.Uid); // ***************************** // Execute the service operation // ***************************** ReviseResponse2 revised = dmService.Revise2(new ReviseInfo[] { rev }); // before control is returned the ChangedHandler will be called with // newly created Item and ItemRevisions // The AppXPartialErrorListener is logging the partial errors returned // In this simple example if any partial errors occur we will throw a // ServiceException if (revised.ServiceData.sizeOfPartialErrors() > 0) { throw new ServiceException("DataManagementService.revise returned a partial error."); } }
/** * Create ItemMasterForm and ItemRevisionMasterForm * * @param IMFormName Name of ItemMasterForm * @param IMFormType Type of ItemMasterForm * @param IRMFormName Name of ItemRevisionMasterForm * @param IRMFormType Type of ItemRevisionMasterForm * @param parent The container object that two * newly-created forms will be added into. * @return ModelObject[] Array of forms * * @throws ServiceException If any partial errors are returned */ public ModelObject[] createForms(String IMFormName, String IMFormType, String IRMFormName, String IRMFormType, ModelObject parent, bool saveDB) //throws ServiceException { //Get the service stub DataManagementService dmService = DataManagementService.getService(MyFormAppSession.getConnection()); FormInfo[] inputs = new FormInfo[2]; inputs[0] = new FormInfo(); inputs[0].ClientId = "1"; inputs[0].Description = ""; inputs[0].Name = IMFormName; inputs[0].FormType = IMFormType; inputs[0].SaveDB = saveDB; inputs[0].ParentObject = parent; inputs[1] = new FormInfo(); inputs[1].ClientId = "2"; inputs[1].Description = ""; inputs[1].Name = IRMFormName; inputs[1].FormType = IRMFormType; inputs[1].SaveDB = saveDB; inputs[1].ParentObject = parent; CreateOrUpdateFormsResponse response = dmService.CreateOrUpdateForms(inputs); if (response.ServiceData.sizeOfPartialErrors() > 0) { throw new ServiceException("DataManagementService.createForms returned a partial error."); } ModelObject[] forms = new ModelObject [inputs.Length]; for (int i = 0; i < inputs.Length; ++i) { forms[i] = response.Outputs[i].Form; } return(forms); }
public void reviseItem(ModelObject obj, String Name, String longDetail, String productionType, String item_revision_id) //throws ServiceException { String newVersionNumber = (int.Parse(item_revision_id) + 1).ToString().PadLeft(2, '0'); DataManagementService dmService = DataManagementService.getService(Session2.getConnection()); ReviseInfo rev = new ReviseInfo(); rev.BaseItemRevision = new ItemRevision(null, obj.Uid); rev.ClientId = Name + "/" + newVersionNumber; rev.Description = ""; rev.Name = Name; rev.NewRevId = newVersionNumber; //额外的表单属性 PropertyNameValueInfo info = new PropertyNameValueInfo(); info.PropertyName = cfg.get("exAttr_productionType"); info.PropertyValues = new string[] { productionType }; PropertyNameValueInfo info2 = new PropertyNameValueInfo(); info2.PropertyName = cfg.get("exAttr_detail"); info2.PropertyValues = new string[] { longDetail }; rev.NewItemRevisionMasterProperties.PropertyValueInfo = new PropertyNameValueInfo[] { info, info2 }; // ***************************** ReviseResponse2 revised = dmService.Revise2(new ReviseInfo[] { rev }); if (revised.ServiceData.sizeOfPartialErrors() > 0) { throw new ServiceException("DataManagementService.revise returned a partial error." + revised.ServiceData.GetPartialError(0).Messages[0]); } }
public void changeOnwer(String userName, String groupName, ModelObject modl) { //ModelObject user = findUser(userName); ModelObject user = findModel("__WEB_find_user", new string[] { "User ID" }, new string[] { userName }); if (null == user) { return; } //ModelObject userGroup = findGroup(groupName); ModelObject userGroup = findModel("__WEB_group", new string[] { "Name" }, new string[] { groupName }); if (null == userGroup) { return; } DataManagementService dmService = DataManagementService.getService(Session.getConnection()); ObjectOwner[] ownerData = new ObjectOwner[1]; ObjectOwner ownrObj = new ObjectOwner(); ownrObj.Object = modl; ownrObj.Group = (Teamcenter.Soa.Client.Model.Strong.Group)userGroup; ownrObj.Owner = (Teamcenter.Soa.Client.Model.Strong.User)user; ownerData[0] = ownrObj; ServiceData returnData = dmService.ChangeOwnership(ownerData); if (returnData.sizeOfPartialErrors() > 0) { throw new Exception("Change ownership service: 005" + "Change ownership service - "); } }
public String deleteItem(String codeNumber) { String Msg = "执行成功"; DataManagementService dmService = DataManagementService.getService(Session2.getConnection()); ////删除前,取消发布 //ModelObject itemReversion = findModel("", new string[] { "iid" }, new string[] { codeNumber }); ////取消发布流程 //workflow_publish("", itemReversion); //调用查询构建器,查询ITEM ModelObject itemObj = findModel(cfg.get("query_builder_ItemById_name") , new string[] { cfg.get("query_builder_ItemById_queryKey") }, new string[] { codeNumber }); ServiceData serviceData = dmService.DeleteObjects(new ModelObject[] { itemObj }); //if (serviceData.sizeOfPartialErrors() > 0) //{ // Msg = "删除ITEM失败,已发布的ITEM不能删除或无权限删除:" + serviceData.GetPartialError(0).Messages[0]; // throw new Exception("删除ITEM失败,已发布的ITEM不能删除或无权限删除:" + serviceData.GetPartialError(0).Messages[0]); //} return(Msg); }
/** * Create Items * * @param itemIds Array of Item and Revision IDs * @param itemType Type of item to create * * @return Set of Items and ItemRevisions * * @throws ServiceException If any partial errors are returned */ public CreateItemsOutput[] createItems(ItemIdsAndInitialRevisionIds[] itemIds, String itemType) // throws ServiceException { // Get the service stub DataManagementService dmService = DataManagementService.getService(MyFormAppSession.getConnection()); // Populate form type GetItemCreationRelatedInfoResponse relatedResponse = dmService.GetItemCreationRelatedInfo(itemType, null); String[] formTypes = new String[0]; if (relatedResponse.ServiceData.sizeOfPartialErrors() > 0) { throw new ServiceException("DataManagementService.getItemCretionRelatedInfo returned a partial error."); } formTypes = new String[relatedResponse.FormAttrs.Length]; for (int i = 0; i < relatedResponse.FormAttrs.Length; i++) { FormAttributesInfo attrInfo = relatedResponse.FormAttrs[i]; formTypes[i] = attrInfo.FormType; } ItemProperties[] itemProps = new ItemProperties[itemIds.Length]; for (int i = 0; i < itemIds.Length; i++) { // Create form in cache for form property population ModelObject[] forms = createForms(itemIds[i].NewItemId, formTypes[0], itemIds[i].NewRevId, formTypes[1], null, false); ItemProperties itemProperty = new ItemProperties(); itemProperty.ClientId = "AppX-Test"; itemProperty.ItemId = itemIds[i].NewItemId; itemProperty.RevId = itemIds[i].NewRevId; itemProperty.Name = "AppX-Test"; itemProperty.Type = itemType; itemProperty.Description = "Test Item for the SOA AppX sample application."; itemProperty.Uom = ""; // Retrieve one of form attribute value from Item master form. ServiceData serviceData = dmService.GetProperties(forms, new String[] { "project_id" }); if (serviceData.sizeOfPartialErrors() > 0) { throw new ServiceException("DataManagementService.getProperties returned a partial error."); } Property property = null; try { property = forms[0].GetProperty("project_id"); } catch (NotLoadedException /*ex*/) {} // Only if value is null, we set new value if (property == null || property.StringValue == null || property.StringValue.Length == 0) { itemProperty.ExtendedAttributes = new ExtendedAttributes[1]; ExtendedAttributes theExtendedAttr = new ExtendedAttributes(); theExtendedAttr.Attributes = new Hashtable(); theExtendedAttr.ObjectType = formTypes[0]; theExtendedAttr.Attributes["project_id"] = "project_id"; itemProperty.ExtendedAttributes[0] = theExtendedAttr; } itemProps[i] = itemProperty; } // ***************************** // Execute the service operation // ***************************** CreateItemsResponse response = dmService.CreateItems(itemProps, null, ""); // before control is returned the ChangedHandler will be called with // newly created Item and ItemRevisions // The AppXPartialErrorListener is logging the partial errors returned // In this simple example if any partial errors occur we will throw a // ServiceException if (response.ServiceData.sizeOfPartialErrors() > 0) { throw new ServiceException("DataManagementService.createItems returned a partial error."); } return(response.Output); }
private CreateItemsOutput[] createECNItems(ItemIdsAndInitialRevisionIds[] itemIds, string itemType) // throws ServiceException { // Get the service stub DataManagementService dmService = DataManagementService.getService(Session.getConnection()); // Populate form type GetItemCreationRelatedInfoResponse relatedResponse = dmService.GetItemCreationRelatedInfo(itemType, null); String[] formTypes = new String[0]; if (relatedResponse.ServiceData.sizeOfPartialErrors() > 0) { throw new ServiceException("DataManagementService.getItemCretionRelatedInfo returned a partial error."); } formTypes = new String[relatedResponse.FormAttrs.Length]; for (int i = 0; i < relatedResponse.FormAttrs.Length; i++) { FormAttributesInfo attrInfo = relatedResponse.FormAttrs[i]; formTypes[i] = attrInfo.FormType; } ItemProperties[] itemProps = new ItemProperties[itemIds.Length]; for (int i = 0; i < itemIds.Length; i++) { CreateIn itemInput = new CreateIn(); itemInput.Data.BoName = "A9_AutoCN"; VecStruct PropValueVec1 = new VecStruct(); PropValueVec1.StringVec = new String[] { "Synopsis_name" }; itemInput.Data.StringProps.Add("object_name", PropValueVec1); CreateInput itemRevisionInput = new CreateInput(); itemRevisionInput.BoName = "A9_AutoCNRevision"; VecStruct PropValueVec2 = new VecStruct(); PropValueVec2.StringVec = new String[] { "test revision desc" }; itemRevisionInput.StringProps.Add("object_desc", PropValueVec2); DateTime currentdate = DateTime.Now; DateTime SyncStartdate = new DateTime(currentdate.Year, currentdate.Month, currentdate.Day, currentdate.Hour, currentdate.Minute, currentdate.Second); String SyncStartdateStr = SyncStartdate.ToString("yyyyMMMddHHmmsssss"); VecStruct PropValueVec4 = new VecStruct(); PropValueVec4.StringVec = new String[] { SyncStartdateStr }; itemRevisionInput.DateProps.Add("a9_EstImpDate", PropValueVec4); itemInput.Data.CompoundCreateInput.Add("revision", itemRevisionInput); CreateIn[] itemInputarray = new CreateIn[1]; itemInputarray[0] = itemInput; CreateResponse cresponse = dmService.CreateObjects(itemInputarray); if (cresponse.ServiceData.sizeOfPartialErrors() > 0) { throw new ServiceException("DataManagementService.CreateObjects returned a partial error." + cresponse.ServiceData.GetPartialError(0)); } //--------------------------------------------------------------------------------- //// Create form in cache for form property population //ModelObject[] forms = createForms(itemIds[i].NewItemId, formTypes[0], // itemIds[i].NewRevId, formTypes[1], // null, false); //ItemProperties itemProperty = new ItemProperties(); //itemProperty.ClientId = "AppX-Test"; //itemProperty.ItemId = itemIds[i].NewItemId; //itemProperty.RevId = itemIds[i].NewRevId; //itemProperty.Name = "AppX-Test"; //itemProperty.Type = itemType; //itemProperty.Description = "Test Item for the SOA AppX sample application."; //itemProperty.Uom = ""; //// Retrieve one of form attribute value from Item master form. //ServiceData serviceData = dmService.GetProperties(forms, new String[] { "project_id" }); //if (serviceData.sizeOfPartialErrors() > 0) // throw new ServiceException("DataManagementService.getProperties returned a partial error."); //Property property = null; //try //{ // property = forms[0].GetProperty("project_id"); //} //catch (NotLoadedException /*ex*/) { } //// Only if value is null, we set new value //if (property == null || property.StringValue == null || property.StringValue.Length == 0) //{ // itemProperty.ExtendedAttributes = new ExtendedAttributes[1]; // ExtendedAttributes theExtendedAttr = new ExtendedAttributes(); // theExtendedAttr.Attributes = new Hashtable(); // theExtendedAttr.ObjectType = formTypes[0]; // theExtendedAttr.Attributes["project_id"] = "project_id"; // itemProperty.ExtendedAttributes[0] = theExtendedAttr; //} //itemProps[i] = itemProperty; } //// ***************************** //// Execute the service operation //// ***************************** //CreateItemsResponse response = dmService.CreateItems(itemProps, null, ""); //// before control is returned the ChangedHandler will be called with //// newly created Item and ItemRevisions //// The AppXPartialErrorListener is logging the partial errors returned //// In this simple example if any partial errors occur we will throw a //// ServiceException //if (response.ServiceData.sizeOfPartialErrors() > 0) // throw new ServiceException("DataManagementService.createItems returned a partial error."); CreateItemsResponse response = null; return(response.Output); }
public void queryItems() { ImanQuery query = null; // Get the service stub SavedQueryService queryService = SavedQueryService.getService(Session.getConnection()); DataManagementService dmService = DataManagementService.getService(Session.getConnection()); try { // ***************************** // Execute the service operation // ***************************** GetSavedQueriesResponse savedQueries = queryService.GetSavedQueries(); if (savedQueries.Queries.Length == 0) { Console.Out.WriteLine("There are no saved queries in the system."); return; } // Find one called 'Item Name' for (int i = 0; i < savedQueries.Queries.Length; i++) { if (savedQueries.Queries[i].Name.Equals("MY_WEB_ITEM_REVISION")) { query = savedQueries.Queries[i].Query; break; } } } catch (ServiceException e) { Console.Out.WriteLine("GetSavedQueries service request failed."); Console.Out.WriteLine(e.Message); return; } if (query == null) { Console.WriteLine("There is not an 'Item Name' query."); return; } try { // Search for all Items, returning a maximum of 25 objects QueryInput[] savedQueryInput = new QueryInput[1]; savedQueryInput[0] = new QueryInput(); savedQueryInput[0].Query = query; savedQueryInput[0].MaxNumToReturn = 25; savedQueryInput[0].LimitList = new Teamcenter.Soa.Client.Model.ModelObject[0]; //savedQueryInput[0].Entries = new String[] { "Name", "ItemID" }; //savedQueryInput[0].Values = new String[2]; //savedQueryInput[0].Values[0] = "Maxtt-Test"; //savedQueryInput[0].Values[1] = "000090"; savedQueryInput[0].Entries = new String[] { "iid", "vid" }; savedQueryInput[0].Values = new String[] { "*90", "001" }; //***************************** //Execute the service operation //***************************** SavedQueriesResponse savedQueryResult = queryService.ExecuteSavedQueries(savedQueryInput); QueryResults found = savedQueryResult.ArrayOfResults[0]; System.Console.Out.WriteLine(""); System.Console.Out.WriteLine("Found Items:"); // Page through the results 10 at a time for (int i = 0; i < found.ObjectUIDS.Length; i += 10) { int pageSize = (i + 10 < found.ObjectUIDS.Length) ? 10 : found.ObjectUIDS.Length - i; String[] uids = new String[pageSize]; for (int j = 0; j < pageSize; j++) { uids[j] = found.ObjectUIDS[i + j]; } ServiceData sd = dmService.LoadObjects(uids); ModelObject[] foundObjs = new ModelObject[sd.sizeOfPlainObjects()]; for (int k = 0; k < sd.sizeOfPlainObjects(); k++) { foundObjs[k] = sd.GetPlainObject(k); } Session.printObjects(foundObjs); } } catch (ServiceException e) { Console.Out.WriteLine("ExecuteSavedQuery service request failed."); Console.Out.WriteLine(e.Message); return; } }
//重构查询器 /// <summary> /// /// </summary> /// <param name="queryName">查询构建器的主键名称</param> /// <param name="keys">查询条件key</param> /// <param name="values">查询 条件values</param> /// <returns></returns> public ModelObject findModel(String queryName, String[] keys, string[] values) { ImanQuery query = null; // Get the service stub SavedQueryService queryService = SavedQueryService.getService(Session.getConnection()); DataManagementService dmService = DataManagementService.getService(Session.getConnection()); try { // ***************************** // Execute the service operation // ***************************** GetSavedQueriesResponse savedQueries = queryService.GetSavedQueries(); if (savedQueries.Queries.Length == 0) { return(null); } // Find one called 'Item Name' for (int i = 0; i < savedQueries.Queries.Length; i++) { if (savedQueries.Queries[i].Name.Equals(queryName)) { query = savedQueries.Queries[i].Query; break; } } } catch (ServiceException e) { return(null); } if (query == null) { return(null); } try { SavedQueryInput[] savedQueryInput = new SavedQueryInput[1]; savedQueryInput[0] = new SavedQueryInput(); savedQueryInput[0].Query = query; savedQueryInput[0].MaxNumToReturn = 25; savedQueryInput[0].LimitListCount = 0; savedQueryInput[0].LimitList = new Teamcenter.Soa.Client.Model.ModelObject[0]; savedQueryInput[0].Entries = keys;//Attribute in Query to search by savedQueryInput[0].Values = values; savedQueryInput[0].MaxNumToReturn = 25; ExecuteSavedQueriesResponse savedQueryResult = queryService.ExecuteSavedQueries(savedQueryInput); SavedQueryResults found = savedQueryResult.ArrayOfResults[0]; ModelObject[] modelObjs = found.Objects; return(modelObjs[0]); } catch (ServiceException e) { return(null); } }
public void createMyItem(string itemType) { try { // Get the service stub DataManagementService dmService = DataManagementService.getService(Session.getConnection()); ObjectOwner objectOwner = new ObjectOwner(); //根据物料号创建ITEMID ItemProperties itemProperty = new ItemProperties(); itemProperty.ClientId = "Maxtt-Test-demo10"; //物料名称 itemProperty.ItemId = "000092"; //物料代码 itemProperty.RevId = "00"; //版本 itemProperty.Name = "Maxtt-Test"; //物料名称 itemProperty.Type = itemType; //创建ITEM的类型 itemProperty.Description = "Test Item for the SOA AppX sample application.Hello"; //描述 //test itemProperty.Uom = "PCS"; //单位 //增加额外属性 itemProperty.ExtendedAttributes = new ExtendedAttributes[2]; //增加多少个? ExtendedAttributes[] theExtendedAttr = new ExtendedAttributes[2]; //第1个 theExtendedAttr[0] = new ExtendedAttributes(); theExtendedAttr[0].Attributes = new Hashtable(); theExtendedAttr[0].ObjectType = "Item Master"; //对应哪个form表 theExtendedAttr[0].Attributes["project_id"] = "project_id"; itemProperty.ExtendedAttributes[0] = theExtendedAttr[0]; //第2个 theExtendedAttr[1] = new ExtendedAttributes(); theExtendedAttr[1].Attributes = new Hashtable(); theExtendedAttr[1].ObjectType = "ItemRevision Master"; //对应哪个form表 theExtendedAttr[1].Attributes["user_data_2"] = "data_2"; itemProperty.ExtendedAttributes[1] = theExtendedAttr[1]; //链接服务器创建 CreateItemsResponse response = dmService.CreateItems(new ItemProperties[] { itemProperty }, null, ""); //调用查询构建器,查询ITEM和ITEMRevision ModelObject itemObj = findModel("Item ID", new string[] { "Item ID" }, new string[] { itemProperty.ItemId }); ModelObject itemReversion = findModel("MY_WEB_ITEM_REVISION", new string[] { "iid", "vid" }, new string[] { itemProperty.ItemId, itemProperty.RevId }); //修改ITEM所有者 //changeOnwer("maxtt", "项目管理", itemObj); //changeOnwer("maxtt", "项目管理", itemReversion); //新增版本--不能修改所有者不是infodba用户的ITEM //reviseItem(itemReversion); //修改原有的版本 //deleteItems_single(itemReversion); //发布流程 wf("MyRelease", itemReversion); } //catch (ServiceException e) catch (Exception e) { System.Console.Out.WriteLine(e.Message); } }
private static ModelObject[] QueryObjects(String QueryName, String[] SQEntries, String[] SQValues) { ImanQuery query = null; List <String> ObjectidList = new List <String>(); // Get the service stub SavedQueryService queryService = SavedQueryService.getService(Teamcenter.ClientX.Session.getConnection()); DataManagementService dmService = DataManagementService.getService(Teamcenter.ClientX.Session.getConnection()); try { GetSavedQueriesResponse savedQueries = queryService.GetSavedQueries(); if (savedQueries.Queries.Length == 0) { Console.Out.WriteLine("There are no saved queries in the system."); return(null); } // Find one called 'Item Name' for (int i = 0; i < savedQueries.Queries.Length; i++) { if (savedQueries.Queries[i].Name.Equals(QueryName)) { query = savedQueries.Queries[i].Query; break; } } } catch (ServiceException e) { Console.Out.WriteLine("GetSavedQueries service request failed."); Console.Out.WriteLine(e.Message); return(null); } if (query == null) { Console.WriteLine("There is no saved Query with the name\"" + QueryName + "\" query."); return(null); } try { // Search for all Items, returning a maximum of 25 objects QueryInput[] savedQueryInput = new QueryInput[1]; savedQueryInput[0] = new QueryInput(); savedQueryInput[0].Query = query; savedQueryInput[0].MaxNumToReturn = 0; savedQueryInput[0].LimitList = new Teamcenter.Soa.Client.Model.ModelObject[0]; savedQueryInput[0].Entries = SQEntries; // new String[] { "ID" }; savedQueryInput[0].Values = SQValues; //new String[1]; //savedQueryInput[0].Values[0] = "*"; //***************************** //Execute the service operation //***************************** SavedQueriesResponse savedQueryResult = queryService.ExecuteSavedQueries(savedQueryInput); QueryResults found = savedQueryResult.ArrayOfResults[0]; System.Console.Out.WriteLine(""); System.Console.Out.WriteLine("Found Items:"); String[] uids = new String[found.ObjectUIDS.Length]; // Page through the results 10 at a time for (int i = 0; i < found.ObjectUIDS.Length; i++) { uids[i] = found.ObjectUIDS[i]; } ServiceData sd = dmService.LoadObjects(uids); ModelObject[] foundObjs = new ModelObject[sd.sizeOfPlainObjects()]; for (int k = 0; k < sd.sizeOfPlainObjects(); k++) { foundObjs[k] = sd.GetPlainObject(k); } //Teamcenter.ClientX.Session.printObjects(foundObjs); return(foundObjs); } catch (ServiceException e) { Console.Out.WriteLine("ExecuteSavedQuery service request failed."); Console.Out.WriteLine(e.Message); return(null); } return(null); }
/// <summary> /// </summary> /// <param name="itemType">创建TC中ITEM的类型</param> /// <param name="codeNumber">物料号</param> /// <param name="CodeName">物料名称</param> /// <param name="longDetail">详细描述</param> /// <param name="unit">单位</param> /// <param name="productionType">物料属性(自制、外购、委外)</param> /// <param name="ReqName">物料申请人</param> public String createTCItem(String codeNumber, String CodeName, String longDetail, String unit, String productionType, String ReqName, String group) { String erroMsg = ""; //处理详细描述,10-79插入详细描述,80-90不插入详细描述 longDetail = codeNumber.Length < 2 ? "" : (codeNumber.Substring(0, 2).CompareTo("80") >= 0 ? "" : longDetail); String itemType = codeNumber.Length >= 2 && codeNumber.Substring(0, 2).Equals("80") ? cfg.get("CPTyep") : cfg.get("LBJType"); try { DataManagementService dmService = DataManagementService.getService(Session.getConnection()); //查询最新的ITEM版本 //ModelObject LastestRevision = findModel("MY_WEB_ITEM_REVISION", new string[] { "iid" }, new string[] { codeNumber }); ModelObject LastestRevision = findModel(cfg.get("query_builder_lastestRevisionById_name") , new string[] { cfg.get("query_builder_lastestRevisionById_queryKey") }, new string[] { codeNumber }); if (null != LastestRevision && !string.IsNullOrEmpty(LastestRevision.Uid)) { dmService.GetProperties(new ModelObject[] { LastestRevision }, new string[] { "release_status_list" }); dmService.GetProperties(new ModelObject[] { LastestRevision }, new string[] { "item_revision_id" }); dmService.GetProperties(new ModelObject[] { LastestRevision }, new string[] { "object_name" }); dmService.GetProperties(new ModelObject[] { LastestRevision }, new string[] { "IMAN_master_form_rev" }); var master = LastestRevision.GetProperty("IMAN_master_form_rev").ModelObjectArrayValue[0]; dmService.GetProperties(new ModelObject[] { master }, new string[] { cfg.get("exAttr_detail") }); dmService.GetProperties(new ModelObject[] { LastestRevision }, new string[] { "IMAN_specification" }); String item_revision_id = LastestRevision.GetProperty("item_revision_id").StringValue.ToString(); //如果名称、规格相同,不执行更新。 if (LastestRevision.GetProperty("object_name").StringValue.Equals(CodeName) && master.GetProperty(cfg.get("exAttr_detail")).StringValue.Equals(longDetail)) { return(erroMsg); } if (LastestRevision.GetProperty("IMAN_specification").ModelObjectArrayValue.Length > 0) { return(codeNumber + "/" + item_revision_id + ":有图纸,请在TC中更新。"); } ModelObject release_status_obj = null; if (LastestRevision.GetProperty("release_status_list").ModelObjectArrayValue.Length > 0) { release_status_obj = LastestRevision.GetProperty("release_status_list").ModelObjectArrayValue[0]; dmService.GetProperties(new ModelObject[] { release_status_obj }, new string[] { "name" }); } String release_status = null == release_status_obj ? "" : release_status_obj.GetProperty("name").StringValue; //查询是否存在未发布版本 if (!release_status.Equals(cfg.get("publish_status_value"))) { workflow_publish(cfg.get("publish_workflow"), LastestRevision); } //创建新版本前,修改ITEM数据 updateItem(codeNumber, CodeName, longDetail); //创建新版本 reviseItem(LastestRevision, CodeName, longDetail, productionType, item_revision_id); } else { //开始新增ITEM //根据物料号创建ITEMID ItemProperties itemProperty = new ItemProperties(); itemProperty.Type = itemType; //创建ITEM的类型 itemProperty.ItemId = codeNumber; //物料代码 itemProperty.Name = CodeName; //物料名称 itemProperty.RevId = "00"; //版本 itemProperty.Description = ""; //描述 itemProperty.Uom = unit; //单位 //增加额外属性-对于同一个form,只用一次ExtendedAttributes,多个属性写在Hashtable上 ExtendedAttributes exAttr = new ExtendedAttributes(); exAttr.Attributes = new Hashtable(); exAttr.ObjectType = itemType + "RevisionMaster"; //对应哪个form表 exAttr.Attributes[cfg.get("exAttr_productionType")] = productionType; exAttr.Attributes[cfg.get("exAttr_detail")] = longDetail; itemProperty.ExtendedAttributes = new ExtendedAttributes[] { exAttr }; //创建前查找文件路径 var RootFile = (Teamcenter.Soa.Client.Model.Strong.Folder)findModel(cfg.get("query_builder_folder_name") , new string[] { cfg.get("query_builder_folder_queryKey1"), cfg.get("query_builder_folder_queryKey2") } , new string[] { cfg.get("query_builder_folder_queryval1"), cfg.get("query_builder_folder_queryval2") }); var TargetFolder = findFolder(group, RootFile, cfg.get("group_split_flag")); //链接服务器创建Item CreateItemsResponse response = dmService.CreateItems(new ItemProperties[] { itemProperty }, TargetFolder, "contents"); //CreateItemsResponse response = dmService.CreateItems(new ItemProperties[] { itemProperty }, null, ""); if (response.ServiceData.sizeOfPartialErrors() > 0) { return("创建ITEM失败。" + response.ServiceData.GetPartialError(0).Messages[0]); } //结束新增ITEM //新增完后附加文件。 ModelObject itemReversion2add = findModel(cfg.get("query_builder_lastestRevisionById_name") , new string[] { cfg.get("query_builder_lastestRevisionById_queryKey") }, new string[] { codeNumber }); //ModelObject datasets = createEmptyFile("Text",codeNumber, "./template/url.txt", "Text"); //createRelations(itemReversion2add, datasets, "IMAN_specification"); //changeOnwer(ReqName, datasets); //创建dataset并关联,修改所有者 if (codeNumber.Length > 4 && //codeNumber.Substring(0,2).CompareTo("80") >= 0) codeNumber.Substring(0, 2).Equals("80")) { var subCodeNumber = codeNumber.Substring(0, 4); var uploadCfgPramary = subCodeNumber.Equals("8102") || subCodeNumber.Equals("8301") ? "uploadFile_part" : "uploadFile_asm"; var cfgList = cfg.tc[uploadCfgPramary].ToObject <ArrayList>(); foreach (var uploadObj in cfgList) { var uploadCfg = JObject.Parse(uploadObj.ToString()); ModelObject datasets_temp = createEmptyFile(uploadCfg["datasetType"].ToString() , codeNumber , uploadCfg["filePath"].ToString() , uploadCfg["fileRefName"].ToString() , itemReversion2add , uploadCfg["relationType"].ToString() ); //createRelations(itemReversion2add, datasets_temp, uploadCfg["relationType"].ToString()); changeOnwer(ReqName, datasets_temp); } } } //调用查询构建器,查询ITEM和ITEMRevision ModelObject itemObj = findModel(cfg.get("query_builder_ItemById_name") , new string[] { cfg.get("query_builder_ItemById_queryKey") }, new string[] { codeNumber }); ModelObject itemReversion = findModel(cfg.get("query_builder_lastestRevisionById_name") , new string[] { cfg.get("query_builder_lastestRevisionById_queryKey") }, new string[] { codeNumber }); if (null == itemObj || null == itemReversion) { return("查询构建器失败。"); } //修改所有者 changeOnwer(ReqName, itemObj); changeOnwer(ReqName, itemReversion); //发布-外购件 if (codeNumber.Length >= 2 && (codeNumber.Substring(0, 2).CompareTo("80") < 0)) { workflow_publish(cfg.get("publish_workflow"), itemReversion); } } catch (Exception e) { deleteItem(codeNumber); throw e; } return(erroMsg); }
public ModelObject createEmptyFile(String datasetType, String datasetName, String filePath, String fileRefName, ModelObject container, String relationType) { var dmService = DataManagementService.getService(Session.getConnection()); FileManagementUtility fmsFileManagement = new FileManagementUtility(Session.getConnection(), null, null, new[] { cfg.get("Fms_BootStrap_Urls") }, cfg.get("file_temp")); //FileManagementUtility fmsFileManagement = new FileManagementUtility(Session.getConnection()); // Create a Dataset DatasetProperties2 props = new DatasetProperties2(); //props.ClientId = "datasetWriteTixTestClientId"; //props.Type = "Text"; //props.Name = "Sample-FMS-Upload-maxtt"; //props.Description = "Testing put File"; props.ClientId = datasetName + "ClientId"; props.Type = datasetType; props.Name = datasetName; props.Container = container; props.RelationType = relationType; CreateDatasetsResponse resp = dmService.CreateDatasets2(new DatasetProperties2[] { props }); // Create a file to associate with dataset var file = new FileInfo(filePath); if (!file.Exists) { throw new Exception("要上传的文件不存在,上传文件失败!"); } DatasetFileInfo fileInfo = new DatasetFileInfo(); fileInfo.ClientId = "file_1"; //fileInfo.FileName = "./template/url.txt"; fileInfo.FileName = file.FullName; fileInfo.NamedReferencedName = fileRefName; fileInfo.IsText = false; fileInfo.AllowReplace = false; DatasetFileInfo[] fileInfos = { fileInfo }; GetDatasetWriteTicketsInputData inputData = new GetDatasetWriteTicketsInputData(); inputData.Dataset = resp.Output[0].Dataset; inputData.CreateNewVersion = false; inputData.DatasetFileInfos = fileInfos; GetDatasetWriteTicketsInputData[] inputs = { inputData }; ServiceData response = fmsFileManagement.PutFiles(inputs); if (response.sizeOfPartialErrors() > 0) { System.Console.Out.WriteLine("FileManagementService single upload returned partial errrors: " + response.sizeOfPartialErrors()); } //add relation ModelObject datasets = inputs[0].Dataset; return(datasets); }