How about assigning project to object ?
What you need is
1) Object to which project to be assigned //Get the object by UIDs using API loadObjects belong to class DataManagementService
2) Project -> TC_Project object
How do you find the project using Project ID ?
To find the project you need savedQuery which should be available in Teamcenter Query Builder,If not available create it which will query using Project ID
Lets find TC project object by executing savedqueries (in our case __rr_get_projects)
Note: Must read code comment
ServiceData serviceData = projectLevelSecurityService.assignOrRemoveObjects(assignedOrRemoved Objects);
What you need is
1) Object to which project to be assigned //Get the object by UIDs using API loadObjects belong to class DataManagementService
2) Project -> TC_Project object
How do you find the project using Project ID ?
To find the project you need savedQuery which should be available in Teamcenter Query Builder,If not available create it which will query using Project ID
Lets find TC project object by executing savedqueries (in our case __rr_get_projects)
Note: Must read code comment
public ModelObject findProject(Connection connection, String projectIds) { ImanQuery query = null; //SavedQueryService class is in package com.teamcenter.services.strong.query SavedQueryService queryService = SavedQueryService.getService(connection); try { GetSavedQueriesResponse savedQueries = queryService.getSavedQueries(); //Get all the savedQueries from Teamcenter if (savedQueries.queries.length == 0) { return null; } for (int i = 0; i < savedQueries.queries.length; i++) { if (savedQueries.queries[i].name.equals("__rr_get_projects")) //Find the query which we need { query = savedQueries.queries[i].query;//Query found break; } } } catch (ServiceException e) { System.out.println(e.getMessage()); return null; } if (query == null) { System.out.println("__rr_get_projects query not found"); 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 ModelObject[0]; savedQueryInput[0].entries = new String[]{"Project ID" };//Query Condition attribute savedQueryInput[0].values = new String[1]; savedQueryInput[0].values[0] = projectIds;//Value for Project ID Attribute savedQueryInput[0].maxNumToInflate = 25; //Execute query ExecuteSavedQueriesResponse savedQueryResult = queryService.executeSavedQueries(savedQueryInput); SavedQueryResults found = savedQueryResult.arrayOfResults[0]; // System.out.println("Found Users:"); //Found output objects on query execution ModelObject[] modelObjs = found.objects; return modelObjs[0];//Project object we need } catch (Exception e) { System.out.println(e.getMessage()); return null; } }Assign project to object modl
public void assignProjectToItem(Connection localConnection,String projectId,ModelObject modl) throws Exception { ModelObject[] modelObjectsItems = new ModelObject[1]; modelObjectsItems[0] = modl; TC_Project[] projects = new TC_Project[1]; //Create array of TC_Project ModelObject project = findProject(localConnection, projectId ) ; if( project != null ) { //System.out.println("................................owning project found.................................."); projects[0] = (TC_Project) project; //Add project found to the Project array } else { System.out.println("................ Project not found ................"); throw new eQMIException("The configured EPI-Project is not found in Teamcenter.","Assigning the project - The configured EPI-Project is not found in Teamcenter."); } //ProjectLevelSecurityService is from package com.teamcenter.services.strong.core ProjectLevelSecurityService projectLevelSecurityService = ProjectLevelSecurityService.getService(localConnection); AssignedOrRemovedObjects[] assignedOrRemovedObjects = new AssignedOrRemovedObjects[1]; AssignedOrRemovedObjects assignedOrRemovedObject = new AssignedOrRemovedObjects(); assignedOrRemovedObject.objectToAssign = modelObjectsItems; assignedOrRemovedObject.projects = projects; assignedOrRemovedObjects[0] = assignedOrRemovedObject; ServiceData serviceData = projectLevelSecurityService.assignOrRemoveObjects(assignedOrRemovedObjects); for(int i=0 ; i < serviceData.sizeOfPartialErrors() ; i++) { ErrorStack errorStack = serviceData.getPartialError(i); String errorMsg = errorStack.getMessages()[0]; int errorCode = errorStack.getCodes()[0]; throw new eQMIException("Assigning the project: " +errorCode+" - ", "Assigning the project - "+errorMsg); } System.out.println( "****************************** Project modified successfuly ******************************"); }Explanation : Important API
ServiceData serviceData = projectLevelSecurityService.assignOrRemoveObjects(assignedOrRemoved Objects);
No comments:
Post a Comment