Exemple #1
0
    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");
            }
        }
Exemple #3
0
    /// <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);
    }
Exemple #4
0
        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);
            }
        }
Exemple #5
0
        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);
            }
        }
Exemple #6
0
        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);
            }
        }
Exemple #7
0
        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);
            }
        }
Exemple #11
0
        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");
            }

        }