In this article, you can learn How to get a model object from Item Id by using Teamcenter Soa calls.
Note:Below code snippet is written in C# soa calls, By using this you can write java soa calls. Major different is , if here class is like " Teamcenter.Services.Strong.Core.DataManagementService" means in Java " teamcenter.services.strong.sore.dataManagementService ". Please ask your doubts in comment .Will reply as soon as possible .
public static ModelObject getModelObj(string Item_ID)
{
setObjectPolicyForRevProps();
Teamcenter.Services.Strong.Core.DataManagementService dmService = Teamcenter.Services.Strong.Core.DataManagementService.getService(Teamcenter.ClientX.Session.getConnection());
Teamcenter.Services.Strong.Query._2010_09.SavedQuery.SavedQuery queryService = Teamcenter.Services.Strong.Query.SavedQueryService.getService(Teamcenter.ClientX.Session.getConnection());
Teamcenter.Services.Strong.Query._2010_09.SavedQuery.BusinessObjectQueryInput[] inputs = new Teamcenter.Services.Strong.Query._2010_09.SavedQuery.BusinessObjectQueryInput[1];
inputs[0] = new Teamcenter.Services.Strong.Query._2010_09.SavedQuery.BusinessObjectQueryInput();
inputs[0].MaxNumToReturn = 0;
inputs[0].TypeName = "P7MCPgPart";
inputs[0].Clauses = new Teamcenter.Services.Strong.Query._2010_09.SavedQuery.BusinessObjectQueryClause[1];
inputs[0].Clauses[0] = new Teamcenter.Services.Strong.Query._2010_09.SavedQuery.BusinessObjectQueryClause();
inputs[0].Clauses[0].PropName = "item_id";
inputs[0].Clauses[0].MathOperator = "=";
inputs[0].Clauses[0].PropValue = Item_ID;
Teamcenter.Services.Strong.Query._2007_09.SavedQuery.SavedQueriesResponse newsavedQry_resp = queryService.ExecuteBusinessObjectQueries(inputs);
Teamcenter.Services.Strong.Query._2007_09.SavedQuery.QueryResults[] output_objs = newsavedQry_resp.ArrayOfResults;
if (output_objs[0].ObjectUIDS.Length > 0)
{
String[] uid = output_objs[0].ObjectUIDS;
ServiceData sData = dmService.LoadObjects(uid);
itemModelObject = (ModelObject)sData.GetPlainObject(0);
return itemModelObject;
}
return itemModelObject;
}
Hey, Thanks for sharing the code snippet . Using this example i am trying to get the ModelObject from Item ID
ReplyDeleteThe below code returns 0 objects as the output of business item query. The Item that I am querying for exists in Teamcenter.Could you take a look at the method and suggest if something needs to be modified in the below attached method in order to get ModelObject from the Item ID
public static ModelObject getModelObj(string Item_ID)
{
ModelObject itemModelObject = default(ModelObject);
Teamcenter.Services.Strong.Core.DataManagementService dmService = Teamcenter.Services.Strong.Core.DataManagementService.getService(Teamcenter.ClientX.Session.getConnection());
Teamcenter.Services.Strong.Query._2010_09.SavedQuery.SavedQuery queryService = Teamcenter.Services.Strong.Query.SavedQueryService.getService(Teamcenter.ClientX.Session.getConnection());
Teamcenter.Services.Strong.Query._2010_09.SavedQuery.BusinessObjectQueryInput[] inputs = new Teamcenter.Services.Strong.Query._2010_09.SavedQuery.BusinessObjectQueryInput[1];
inputs[0] = new Teamcenter.Services.Strong.Query._2010_09.SavedQuery.BusinessObjectQueryInput();
inputs[0].MaxNumToReturn = 0;
inputs[0].TypeName = "ItemRevision";
inputs[0].Clauses = new Teamcenter.Services.Strong.Query._2010_09.SavedQuery.BusinessObjectQueryClause[2];
inputs[0].Clauses[0] = new Teamcenter.Services.Strong.Query._2010_09.SavedQuery.BusinessObjectQueryClause();
inputs[0].Clauses[0].PropName = "item_id";
inputs[0].Clauses[0].MathOperator = "=";
inputs[0].Clauses[0].PropValue = Item_ID;
inputs[0].Clauses[1] = new Teamcenter.Services.Strong.Query._2010_09.SavedQuery.BusinessObjectQueryClause();
inputs[0].Clauses[1].MathOperator = "=";
inputs[0].Clauses[1].LogicOperator = "AND";
inputs[0].Clauses[1].PropName = "item_revision_id";
inputs[0].Clauses[1].PropValue = "A";
Teamcenter.Services.Strong.Query._2007_09.SavedQuery.SavedQueriesResponse newsavedQry_resp = queryService.ExecuteBusinessObjectQueries(inputs);
Teamcenter.Services.Strong.Query._2007_09.SavedQuery.QueryResults[] output_objs = newsavedQry_resp.ArrayOfResults;
if (output_objs[0].ObjectUIDS.Length > 0)
{
String[] uid = output_objs[0].ObjectUIDS;
ServiceData sData = dmService.LoadObjects(uid);
itemModelObject = (ModelObject)sData.GetPlainObject(0);
return itemModelObject;
}
return itemModelObject;
}