public DataTable getObjects(String itemId, String revisionId, DataTable attributes) { DataTable bomList = new DataTable(); Revision[] revisions = new Revision[0]; try { String targetItemId = itemId; String targetRevId = revisionId; if (targetItemId != "" && targetItemId.Length > 6) { GetItemAndRelatedObjectsResponse response = getItem(targetItemId, targetRevId); TCBomTree bomTree = new TCBomTree(getConnection(), attributes); bomTree.ItemUID1 = response.Output[0].Item.Uid; bomTree.ItemRevUID1 = response.Output[0].ItemRevOutput[0].ItemRevision.Uid; bomTree.loadItem(); bomList = bomTree.getBOMStructure(); } setObjectPolicy(attributes); foreach (DataRow row in bomList.Rows) { Revision rev = getItem(row["BL_ITEM_ITEM_ID"].ToString(), row["BL_REV_ITEM_REVISION_ID"].ToString()).Output[0].ItemRevOutput[0].ItemRevision; foreach (DataRow attribute in attributes.Rows) { Console.WriteLine(attribute["ATTRI"].ToString().ToUpper()); try { row[attribute["ATTRI"].ToString().ToUpper()] = rev.GetPropertyDisplayableValue(attribute["ATTRI"].ToString()); } catch { if (attribute["ATYPE"].ToString().ToUpper().Equals("ITEMREV")) { row[attribute["ATTRI"].ToString().ToUpper()] = ""; } } } } } catch (NotLoadedException e) { } return(bomList); }
private GetItemAndRelatedObjectsResponse getItem(String itemId, String revisionId) { GetItemAndRelatedObjectsInfo[] itemArray = new GetItemAndRelatedObjectsInfo[1]; GetItemAndRelatedObjectsInfo itemRevInput = new GetItemAndRelatedObjectsInfo(); AttrInfo[] attrInfoArray = new AttrInfo[1]; AttrInfo attrInfo = new AttrInfo(); attrInfo.Name = "item_id"; attrInfo.Value = itemId; attrInfoArray[0] = attrInfo; ItemInfo itemInfo = new ItemInfo(); itemInfo.Ids = attrInfoArray; itemInfo.ClientId = "iteminfo1"; itemInfo.UseIdFirst = true; RevInfo revInfo = new RevInfo(); revInfo.Id = revisionId; revInfo.NRevs = 1; revInfo.ClientId = "revInfo1"; revInfo.UseIdFirst = true; revInfo.Processing = "Ids"; DatasetInfo dsInfo = new DatasetInfo(); dsInfo.ClientId = "dsInfo1"; dsInfo.Filter = new DatasetFilter(); dsInfo.Filter.Processing = "None"; itemRevInput.ItemInfo = itemInfo; itemRevInput.RevInfo = revInfo; itemArray[0] = itemRevInput; GetItemAndRelatedObjectsInfo[] itemAndRelObjInfo = new GetItemAndRelatedObjectsInfo[1]; itemAndRelObjInfo[0] = new GetItemAndRelatedObjectsInfo(); itemAndRelObjInfo[0].ItemInfo = itemInfo; itemAndRelObjInfo[0].RevInfo = revInfo; itemAndRelObjInfo[0].DatasetInfo = dsInfo; itemAndRelObjInfo[0].ClientId = "itemAndRelObj1"; GetItemAndRelatedObjectsResponse response = getDMService().GetItemAndRelatedObjects(itemAndRelObjInfo); if (response.Output[0] == null) { return(null); } if (itemId.Equals("VMT-0000006840")) { // try { // UploadDownloadFsc3 upDown = new UploadDownloadFsc3(user); // upDown.CreateItemItemRevDataset(itemId, revisionId); // upDown.AddNamedReference(); // upDown.DownloadAttachedFile(); /* Teamcenter.Soa.Client.FileManagementUtility fmu = new Teamcenter.Soa.Client.FileManagementUtility(getConnection()); * ModelObject mo = (ModelObject)itemAndRelObjInfo[0]; * GetFileResponse res = fmu.GetFileToLocation(mo, "C://WORK/TCDOWNLOAD.FILE.PDF", null, null); * * System.IO.FileInfo[] files = res.GetFiles(); * * Console.WriteLine("fileLen: " + files.Length); * Console.WriteLine("fileName: " + files[0].FullName); * * for (int j = 0; j < files.Length; j++) { * String path = files[j].FullName; * Console.WriteLine("filePath: " + path); * } * } catch( Exception e) { * Console.WriteLine(e.Message); * } */ } return(response); }