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); } }
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; } } } } } } }