public static bool GoToActitvy(int wfId, string activityName) { WorkflowManagementServer svr = new WorkflowManagementServer(K2ServerName, uint.Parse(K2ServerPort)); svr.Open(); return(svr.GotoActivity(wfId, activityName)); }
private void btnDuplicate_Click(object sender, EventArgs e) { try { Connection cnx = new Connection(); cnx.Open(ConfigurationManager.AppSettings["K2ServerName"]); SourceCode.Workflow.Client.ProcessInstance pi = cnx.CreateProcessInstance(txtProcessFullName.Text); pi.Folio = txtFolio.Text; foreach (DataGridViewRow item in dgvDatafields.Rows) { pi.DataFields[item.Cells[0].Value.ToString()].Value = item.Cells[1].Value.ToString(); } cnx.StartProcessInstance(pi); int newProcId = pi.ID; cnx.Close(); if (ddlActivities.SelectedIndex > 1) { WorkflowManagementServer wms = new WorkflowManagementServer(); wms.CreateConnection(); wms.Connection.Open(ConfigurationManager.AppSettings["K2MgmCnxString"]); wms.GotoActivity(newProcId, ddlActivities.SelectedItem.ToString()); wms.Connection.Close(); } MessageBox.Show("L'instance à été dupliquée. (ID: " + newProcId.ToString() + ")", "PI Management"); } catch (Exception ex) { MessageBox.Show(ex.Message, "PI Manager eror"); } }
/// <summary> /// 跳转 /// </summary> /// <param name="procInstID"></param> /// <param name="activityName"></param> /// <returns></returns> bool GoToActitvy(int procInstID, string activityName) { WorkflowManagementServer svr = new WorkflowManagementServer(); svr.CreateConnection(); svr.Connection.Open(WorkflowHelper.GetConnString4Management()); bool flag = svr.GotoActivity(procInstID, activityName); svr.Connection.Close(); return(flag); }
private void RunGotoActivity(DataTable results = null) { int processInstanceId = base.GetIntProperty(Constants.SOProperties.ProcessInstanceManagement.ProcessInstanceId); bool ignoreProcessInstanceNotExists = base.GetBoolProperty(Constants.SOProperties.ProcessInstanceManagement.IgnoreProcessInstanceNotExists); string activityName = base.GetStringProperty(Constants.SOProperties.ProcessInstanceManagement.ActivityName); string activitySystemName = String.Empty; bool gotoActivityResult = false; WorkflowManagementServer mngServer = this.ServiceBroker.K2Connection.GetConnection <WorkflowManagementServer>(); using (mngServer.Connection) { ProcessInstanceCriteriaFilter filter = new ProcessInstanceCriteriaFilter(); filter.AddRegularFilter(ProcessInstanceFields.ProcInstID, Comparison.Equals, processInstanceId); ProcessInstances procInsts = mngServer.GetProcessInstancesAll(filter); if (!ignoreProcessInstanceNotExists & procInsts.Count == 0) { throw new ApplicationException(String.Format(Resources.ProcessInstanceNotFound, processInstanceId)); } if (procInsts.Count > 0) { int procId = procInsts[0].ProcID; processInstanceId = procInsts[0].ID; Activities procActivities = mngServer.GetProcActivities(procId); foreach (Activity act in procActivities) { if (act.DisplayName == activityName || act.Name == activityName) { activitySystemName = act.Name; } } if (string.IsNullOrEmpty(activitySystemName)) { throw new ApplicationException(String.Format(Resources.RequiredPropertyNotFound, activityName)); } gotoActivityResult = mngServer.GotoActivity(processInstanceId, activitySystemName); } } if (results != null) { DataRow row = results.NewRow(); row[Constants.SOProperties.ProcessInstanceManagement.ActivityName] = activityName + " (" + activitySystemName + ")"; row[Constants.SOProperties.ProcessInstanceManagement.ProcessInstanceId] = processInstanceId; row[Constants.SOProperties.ProcessInstanceManagement.GoToActivityResult] = gotoActivityResult; results.Rows.Add(row); } }
private void GotoActivity() { int processInstanceId = base.GetIntProperty(Constants.SOProperties.ProcessInstanceManagement.ProcessInstanceId); string activityName = base.GetStringProperty(Constants.SOProperties.ProcessInstanceManagement.ActivityName); WorkflowManagementServer mngServer = this.ServiceBroker.K2Connection.GetConnection <WorkflowManagementServer>(); using (mngServer.Connection) { ProcessInstanceCriteriaFilter filter = new ProcessInstanceCriteriaFilter(); filter.AddRegularFilter(ProcessInstanceFields.ProcInstID, Comparison.Equals, processInstanceId); ProcessInstances procInsts = mngServer.GetProcessInstancesAll(filter); if (procInsts.Count == 0) { throw new ApplicationException(String.Format(Resources.ProcessInstanceNotFound, processInstanceId)); } mngServer.GotoActivity(procInsts[0].ID, activityName); } }
private void GotoActivity() { int processInstanceId = base.GetIntProperty(Constants.SOProperties.ProcessInstanceManagement.ProcessInstanceId); string activityName = base.GetStringProperty(Constants.SOProperties.ProcessInstanceManagement.ActivityName); WorkflowManagementServer mngServer = new WorkflowManagementServer(); using (mngServer.CreateConnection()) { mngServer.Open(BaseAPIConnectionString); ProcessInstanceCriteriaFilter filter = new ProcessInstanceCriteriaFilter(); filter.AddRegularFilter(ProcessInstanceFields.ProcInstID, Comparison.Equals, processInstanceId); ProcessInstances procInsts = mngServer.GetProcessInstancesAll(filter); if (procInsts.Count == 0) { throw new ApplicationException(String.Format("Sorry, process instance with id {0} not found.", processInstanceId)); } mngServer.GotoActivity(procInsts[0].ID, activityName); } }
private void GotoActivity() { int processInstanceId = base.GetIntProperty(Constants.SOProperties.ProcessInstanceManagement.ProcessInstanceId); string activityName = base.GetStringProperty(Constants.SOProperties.ProcessInstanceManagement.ActivityName); string activitySystemName = String.Empty; WorkflowManagementServer mngServer = this.ServiceBroker.K2Connection.GetConnection <WorkflowManagementServer>(); using (mngServer.Connection) { ProcessInstanceCriteriaFilter filter = new ProcessInstanceCriteriaFilter(); filter.AddRegularFilter(ProcessInstanceFields.ProcInstID, Comparison.Equals, processInstanceId); ProcessInstances procInsts = mngServer.GetProcessInstancesAll(filter); if (procInsts.Count == 0) { throw new ApplicationException(String.Format(Resources.ProcessInstanceNotFound, processInstanceId)); } int procId = procInsts[0].ProcID; Activities procActivities = mngServer.GetProcActivities(procId); foreach (Activity act in procActivities) { if (act.DisplayName == activityName || act.Name == activityName) { activitySystemName = act.Name; } } if (string.IsNullOrEmpty(activitySystemName)) { throw new ApplicationException(String.Format(Resources.RequiredPropertyNotFound, activityName)); } mngServer.GotoActivity(procInsts[0].ID, activitySystemName); } }
public LIM.ProcessInstance GotoActivities() { List<LIM.ProcessInstance> results = new List<ProcessInstance>(); WorkflowManagementServer svr = new WorkflowManagementServer("localhost", 5555); try { svr.Open(); svr.GotoActivity(this.ProcessInstanceId, this.ActivityName, this.SecondActivityName); } catch (Exception ex) { //forcedStop = false; this.ResultStatus = "Exception"; this.ResultMessage = ex.GetBaseException().Message; return this; } finally { try { svr.Connection.Close(); svr.Connection.Dispose(); } catch { } svr = null; } this.ResultStatus = "Success"; return this; }
new string[] { "ProcessInstanceId", "NewVersion", "ActivityName", "ResultStatus", "ResultMessage" })] // , "IsDefaultVersion", "VersionDate", "VersionDescription", "VersionLabel", "VersionNumber" public LIM.ProcessInstance MigrateProcessInstance() { List<LIM.ProcessInstance> results = new List<ProcessInstance>(); WorkflowManagementServer svr = new WorkflowManagementServer("localhost", 5555); try { svr.Open(); svr.StopProcessInstances(this.ProcessInstanceId); svr.SetProcessInstanceVersion(this.ProcessInstanceId, this.NewVersion); if (!string.IsNullOrWhiteSpace(this.ActivityName)) { svr.GotoActivity(this.ProcessInstanceId, ActivityName); } else { svr.StartProcessInstances(this.ProcessInstanceId); } } catch (Exception ex) { this.ResultStatus = "Exception"; this.ResultMessage = ex.GetBaseException().Message; return this; } finally { try { svr.Connection.Close(); svr.Connection.Dispose(); } catch { } svr = null; } this.ResultStatus = "Success"; return this; }
private void GotoActivity() { int processInstanceId = base.GetIntProperty(Constants.SOProperties.ProcessInstanceManagement.ProcessInstanceId); string activityName = base.GetStringProperty(Constants.SOProperties.ProcessInstanceManagement.ActivityName); WorkflowManagementServer mngServer = new WorkflowManagementServer(); using (mngServer.CreateConnection()) { mngServer.Open(BaseAPIConnectionString); ProcessInstanceCriteriaFilter filter = new ProcessInstanceCriteriaFilter(); filter.AddRegularFilter(ProcessInstanceFields.ProcInstID, Comparison.Equals, processInstanceId); ProcessInstances procInsts = mngServer.GetProcessInstancesAll(filter); if (procInsts.Count == 0) { throw new ApplicationException(String.Format("Sorry, process instance with id {0} not found.", processInstanceId)); } mngServer.GotoActivity(procInsts[0].ID, activityName); } }
private void btnDuplicate_Click(object sender, EventArgs e) { try { Connection cnx = new Connection(); cnx.Open(ConfigurationManager.AppSettings["K2ServerName"]); SourceCode.Workflow.Client.ProcessInstance pi = cnx.CreateProcessInstance(txtProcessFullName.Text); pi.Folio = txtFolio.Text; foreach (DataGridViewRow item in dgvDatafields.Rows) { pi.DataFields[item.Cells[0].Value.ToString()].Value = item.Cells[1].Value.ToString(); } cnx.StartProcessInstance(pi); int newProcId= pi.ID; cnx.Close(); if (ddlActivities.SelectedIndex > 1) { WorkflowManagementServer wms = new WorkflowManagementServer(); wms.CreateConnection(); wms.Connection.Open(ConfigurationManager.AppSettings["K2MgmCnxString"]); wms.GotoActivity(newProcId, ddlActivities.SelectedItem.ToString()); wms.Connection.Close(); } MessageBox.Show("L'instance à été dupliquée. (ID: " + newProcId.ToString() + ")", "PI Management"); } catch (Exception ex) { MessageBox.Show(ex.Message, "PI Manager eror"); } }