Example #1
0
        public void ExceuteOperation(DELInstanceSpecificArgs isa, DELInstanceGeneralArgs iga, PLMServerEventArgs sea)
        {
            Guid processDefinitionID = isa.ProcessInstance.ProcessDefinitionID;
            Guid activityDefinitionID = isa.ActivityInstance.ActivityDefinitionID;
            Guid operationID = isa.OperationRelationship.OperationID;
            Guid processInstanceID = isa.OperationRelationship.ProcessInstanceID;
            int executeOrder = isa.OperationRelationship.ExecuteOrder;
            var nodeName = isa.ActivityInstance.Name;
            try
            {
                List<string> fenceList = new List<string>();
                List<string> heziList = new List<string>();
                QRBPMProcessor qritem = new QRBPMProcessor();
                DELBPMEntityList list2 = new DELBPMEntityList();

                var s = qritem.GetProcessDataInstanceList(sea.Operator, processInstanceID, out list2, true, true);

                foreach (DELProcessDataInstance d in list2)
                {
                    if (d.DataType == 9)
                    {
                        foreach (DELRGroupDataIns seww in d.ObjectOrVarList)
                        {
                            if (seww.BOClassName == "FENCE")
                                fenceList.Add(seww.BOID);
                            if (seww.BOClassName == "HEZI")
                                heziList.Add(seww.BOID);
                        }
                    }
                }
                new WGT2DOSSIOR(sea.Operator, sea.DBParam, nodeName == "外供电子版").Run(heziList);
                //DEPSOption userGlobalOption = new DAOption2(sea.DBParam).GetUserGlobalOption(sea.Operator);
                //new ServerSplitTask(sea.DBParam).Split(processInstanceID, sea.Operator, userGlobalOption);
            }
            catch (Exception exception)
            {
                PLMEventLog.WriteExceptionLog(exception);
            }
        }
Example #2
0
 internal static void CommitWorkItem(DEBusinessItem item)
 {
     BPMProcessor processor = new BPMProcessor();
     ArrayList processInstanceListByObject = processor.GetProcessInstanceListByObject(item.MasterOid, item.RevNum);
     if ((processInstanceListByObject != null) && (processInstanceListByObject.Count != 0))
     {
         ArrayList list2 = new ArrayList();
         DELProcessInsProperty property = null;
         foreach (DELProcessInsProperty property2 in processInstanceListByObject)
         {
             if (!(property2.State != "Running"))
             {
                 property = property2;
                 break;
             }
         }
         if (property != null)
         {
             DELBPMEntityList theActivityInstanceList = new DELBPMEntityList();
             BPMClient client = new BPMClient();
             processor.GetActivityInstancesList(item.Revision.Creator, property.ID, out theActivityInstanceList, false);
             foreach (DELActivityInstance instance in theActivityInstanceList)
             {
                 DELBPMEntityList theWorkItemList = new DELBPMEntityList();
                 processor.GetWorkItemList(item.Revision.Creator, instance.ID, out theWorkItemList, false);
                 if (instance.DState == "Activated")
                 {
                     foreach (DELWorkItem item2 in theWorkItemList)
                     {
                         if ((item2.State == "Running") || (item2.State == "Accepted"))
                         {
                             client.CompleteWorkItem(item2);
                         }
                         else if (item2.State == "Assigned")
                         {
                             client.CompleteWorkItem(item2);
                             break;
                         }
                     }
                 }
             }
         }
     }
 }