Exemple #1
0
        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.");
            }
        }
Exemple #2
0
 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)
     {
     }
 }
Exemple #3
0
        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);
        }
Exemple #4
0
        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]);
            }
        }
Exemple #5
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.");
            }
        }
Exemple #6
0
        /**
         * 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);
        }
Exemple #7
0
        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.");
            }
        }
Exemple #8
0
        /**
         * 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);
        }
Exemple #9
0
        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]);
            }
        }
Exemple #10
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 - ");
            }
        }
Exemple #11
0
        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);
        }
Exemple #12
0
        /**
         * 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);
        }
Exemple #13
0
        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);
        }
Exemple #14
0
        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;
            }
        }
Exemple #15
0
        //重构查询器
        /// <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);
            }
        }
Exemple #16
0
        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);
            }
        }
Exemple #17
0
        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);
        }
Exemple #18
0
        /// <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);
        }
Exemple #19
0
        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);
        }