/// <summary>
        /// Checks to see if there is an task
        /// </summary>
        /// <param name="ProcessInstanceId"></param>
        /// <param name="ProcessName"></param>
        /// <returns></returns>
        public Boolean IsTaskFound(int ProcessInstanceId, string ProcessName)
        {
            Boolean Result = false;

            SourceCode.Workflow.Management.WorkflowManagementServer wrkmgt        = new SourceCode.Workflow.Management.WorkflowManagementServer(servername, 5555);
            SourceCode.Workflow.Management.WorklistItems            worklistItems = null;
            wrkmgt.Open();
            try
            {
                worklistItems = wrkmgt.GetWorklistItems("", "", "", "", "", "", "");


                foreach (SourceCode.Workflow.Management.WorklistItem worklistItem in worklistItems)
                {
                    if (worklistItem.ProcInstID == ProcessInstanceId)
                    {
                        Result = true;
                    }
                }
            }
            catch (Exception ex)
            {
                Result = false;
            }
            finally
            {
                wrkmgt.Connection.Close();
            }

            return(Result);
        }
        /// <summary>
        /// Gets the number of active tasks for instance of a workflow
        /// </summary>
        /// <param name="ProcessInstanceId"></param>
        /// <returns></returns>
        public int GetTaskCount(int ProcessInstanceId, string ProcessName)
        {
            int Result = 0;
            int count  = 0;

            SourceCode.Workflow.Management.WorkflowManagementServer wrkmgt        = new SourceCode.Workflow.Management.WorkflowManagementServer(servername, 5555);
            SourceCode.Workflow.Management.WorklistItems            worklistItems = null;
            wrkmgt.Open();
            try
            {
                worklistItems = wrkmgt.GetWorklistItems("", "", "", "", "", "", "");

                foreach (SourceCode.Workflow.Management.WorklistItem worklistItem in worklistItems)
                {
                    if (worklistItem.ProcInstID == ProcessInstanceId)
                    {
                        count++;
                    }
                }
                Result = count;
            }

            catch (Exception ex)
            {
                Result = 0;
            }
            finally
            {
                wrkmgt.Connection.Close();
            }

            return(Result);
        }
Ejemplo n.º 3
0
        public static List <ProcessDataFields> WorkflowXMLDataFieldsExplorer(int ProcessId)
        {
            List <ProcessDataFields> list = new List <ProcessDataFields>();

            SourceCode.Workflow.Management.WorkflowManagementServer wrkmgt = new SourceCode.Workflow.Management.WorkflowManagementServer("dlx", 5555);
            try
            {
                wrkmgt.Open();
                SourceCode.Workflow.Management.Criteria.ProcessCriteriaFilter cf = new SourceCode.Workflow.Management.Criteria.ProcessCriteriaFilter();



                foreach (SourceCode.Workflow.Management.ProcessXMLField df in wrkmgt.GetProcessXMLFields(ProcessId))
                {
                    list.Add(DataFields(df));
                }
            }
            catch (Exception ex)
            {
                list.Add(new ProcessDataFields
                {
                    MetaData = ex.Message,
                    Name     = ex.Source,
                    Category = "Workflow XML Datafield Error"
                });
            }
            finally
            {
                wrkmgt.Connection.Close();
            }
            return(list);
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Gets the details of particular workflow
        /// </summary>
        /// <param name="ProcessId"></param>
        /// <returns></returns>
        public static Process GetWorkflow(int ProcessId)
        {
            Process wkf = new Process();

            SourceCode.Workflow.Management.WorkflowManagementServer wrkmgt = new SourceCode.Workflow.Management.WorkflowManagementServer();
            wrkmgt.Connection.Open(ConnectToK2());
            try
            {
                wrkmgt.Open();


                wkf = BuildWorkflow(wrkmgt.GetProcess(ProcessId));
            }
            catch (Exception ex)
            {
                wkf.Description = ex.Message;
                wkf.Name        = ex.Source;
                wkf.MetaData    = "Workflow Error";
            }
            finally
            {
                wrkmgt.Connection.Close();
            }
            return(wkf);
        }
        /// <summary>
        /// Gets all the activities that are in a workflow
        /// </summary>
        /// <param name="ProcId"></param>
        /// <returns></returns>
        public List <ActivityDesign> GetWorkflowActivities(int ProcId)
        {
            List <ActivityDesign> list = new List <ActivityDesign>();

            SourceCode.Workflow.Management.WorkflowManagementServer workflowServer = new SourceCode.Workflow.Management.WorkflowManagementServer(servername, 5555);
            workflowServer.Open();
            try
            {
                foreach (SourceCode.Workflow.Management.Activity activity in workflowServer.GetProcActivities(ProcId))
                {
                    list.Add(new ActivityDesign
                    {
                        ID          = activity.ID,
                        Name        = activity.Name,
                        Description = activity.Description
                    });
                }
            }
            catch (Exception ex)
            {
                list.Add(new ActivityDesign
                {
                    ID          = 0,
                    Name        = "Error",
                    Description = ex.Message
                });
            }
            finally
            {
                workflowServer.Connection.Close();
            }
            return(list);
        }
 /// <summary>
 /// Initial for k2 connection.
 /// </summary>
 /// <param name="model"></param>
 public void Initial(K2ProfileModel model)
 {
     _model = this.SetValue(model.UserName, model.Password, model.ImpersonateUser);
     if (model.Management)
     {
         _connectionManagement = this.ConnectionManagement(_model);
     }
     else
     {
         _connection = this.Connection(_model);
     }
 }
        /// <summary>
        /// Open connection management k2.
        /// </summary>
        /// <param name="model">The value for connect k2.</param>
        /// <returns></returns>
        private SourceCode.Workflow.Management.WorkflowManagementServer ConnectionManagement(K2ConnectModel model)
        {
            var managementServer = new SourceCode.Workflow.Management.WorkflowManagementServer();

            try
            {
                model.K2Profile.UserName = ConfigurationManager.AppSettings[ConstantValueService.K2_ADMINUSERNAME];
                model.K2Profile.Password = ConfigurationManager.AppSettings[ConstantValueService.K2_ADMINPASSWORD];
                model.Port = Convert.ToInt32(ConfigurationManager.AppSettings[ConstantValueService.K2_MANAGEMENT_PORT]);
                string connectionString = this.GetConnectionString(model);
                managementServer.Open(connectionString);
            }
            catch (Exception ex)
            {
                throw new Exception("Unable to create management connection : " + ex.ToString());
            }
            return(managementServer);
        }
        /// <summary>
        /// Open connection management k2.
        /// </summary>
        /// <param name="model">The value for connect k2.</param>
        /// <returns></returns>
        private SourceCode.Workflow.Management.WorkflowManagementServer ConnectionManagement(K2ConnectModel model)
        {
            var managementServer = new SourceCode.Workflow.Management.WorkflowManagementServer();

            try
            {
                model.K2Profile.UserName = ConfigSetting.K2AdminUserName;
                model.K2Profile.Password = ConfigSetting.K2AdminPassword;
                model.Port = Convert.ToInt32(ConfigSetting.K2ManagementPort);
                string connectionString = this.GetConnectionString(model);
                managementServer.Open(connectionString);
            }
            catch (Exception ex)
            {
                throw new Exception("Unable to create management connection : " + ex.ToString());
            }
            return(managementServer);
        }
        /// <summary>
        /// Gets details about the task
        /// </summary>
        /// <param name="ProcessInstanceId"></param>
        /// <returns></returns>
        public List <tasklist> GetTask(string ProcessInstanceId, string ProcessName)
        {
            int ProcInstId = 0;

            int.TryParse(ProcessInstanceId, out ProcInstId);

            List <tasklist> list = new List <tasklist>();

            SourceCode.Workflow.Management.WorkflowManagementServer wrkmgt        = new SourceCode.Workflow.Management.WorkflowManagementServer(servername, 5555);
            SourceCode.Workflow.Management.WorklistItems            worklistItems = null;
            wrkmgt.Open();
            try
            {
                worklistItems = wrkmgt.GetWorklistItems("", "", "", "", "", "", "");

                foreach (SourceCode.Workflow.Management.WorklistItem worklistItem in worklistItems)
                {
                    if (worklistItem.ProcInstID == ProcInstId)
                    {
                        var x = worklistItem.ActivityName;

                        list.Add(new tasklist
                        {
                            Status        = worklistItem.Status.ToString(),
                            Destination   = worklistItem.Destination,
                            EventName     = worklistItem.EventName,
                            ActInstDestID = worklistItem.ActInstDestID.ToString(),
                            ActivityName  = worklistItem.ActivityName,
                            SerialNumber  = (ProcessInstanceId + "_" + worklistItem.ActInstDestID)
                        });
                    }
                }
            }
            catch (Exception ex)
            {
                // Result = false;
            }
            finally
            {
                wrkmgt.Connection.Close();
            }

            return(list);
        }
Ejemplo n.º 10
0
        public static List <ProcessEvents> WorkflowEventsExplorer(int ActivityId)
        {
            List <ProcessEvents> list = new List <ProcessEvents>();

            SourceCode.Workflow.Management.WorkflowManagementServer wrkmgt = new SourceCode.Workflow.Management.WorkflowManagementServer("dlx", 5555);
            try
            {
                wrkmgt.Open();


                foreach (SourceCode.Workflow.Management.Event act in wrkmgt.GetActivityEvents(ActivityId))
                {
                    list.Add(new ProcessEvents
                    {
                        UseTrans         = act.UseTrans,
                        Pos              = act.Pos,
                        Excep            = act.Excep,
                        EventType        = act.EventType.ToString(),
                        CredentialUser   = act.CredentialUser,
                        Code             = act.Code,
                        Description      = act.Description,
                        ExpectedDuration = act.ExpectedDuration,
                        ID       = act.ID,
                        MetaData = act.MetaData,
                        Name     = act.Name,
                        Priority = act.Priority
                    });
                }
            }
            catch (Exception ex)
            {
                list.Add(new ProcessEvents
                {
                    MetaData    = ex.Message,
                    Name        = ex.Source,
                    Description = "Workflow Activity Error"
                });
            }
            finally
            {
                wrkmgt.Connection.Close();
            }
            return(list);
        }
        /// <summary>
        /// Gets a list of all the workflows
        /// </summary>
        /// <returns></returns>
        public List <Workflow> GetProcesses()
        {
            List <Workflow> list = new List <Workflow>();

            SourceCode.Workflow.Management.WorkflowManagementServer workflowServer = new SourceCode.Workflow.Management.WorkflowManagementServer(servername, 5555);
            workflowServer.Open();
            try
            {
                SourceCode.Workflow.Management.Criteria.ProcessCriteriaFilter filter = new SourceCode.Workflow.Management.Criteria.ProcessCriteriaFilter();
                SourceCode.Workflow.Management.Processes processes = workflowServer.GetProcesses(filter);
                foreach (SourceCode.Workflow.Management.Process process in processes)
                {
                    if (process.DefaultVersion == true)
                    {
                        list.Add(
                            new Workflow
                        {
                            ID   = process.ProcID,
                            Name = process.FullName
                        }

                            );
                    }
                }
            }
            catch (Exception ex)
            {
                list.Add(
                    new Workflow
                {
                    ID   = 0,
                    Name = ex.Message
                }

                    );
            }
            finally
            {
                workflowServer.Connection.Close();
            }
            return(list);
        }
Ejemplo n.º 12
0
        public static List <ProcessActivities> WorkflowActivitiesExplorer(int ProcessId)
        {
            List <ProcessActivities> list = new List <ProcessActivities>();

            SourceCode.Workflow.Management.WorkflowManagementServer wrkmgt = new SourceCode.Workflow.Management.WorkflowManagementServer("dlx", 5555);
            try
            {
                wrkmgt.Open();


                foreach (SourceCode.Workflow.Management.Activity act in wrkmgt.GetProcActivities(ProcessId))
                {
                    list.Add(new ProcessActivities
                    {
                        Description      = act.Description,
                        ExpectedDuration = act.ExpectedDuration,
                        ID       = act.ID,
                        IsStart  = act.IsStart,
                        MetaData = act.MetaData,
                        Name     = act.Name,
                        Priority = act.Priority
                    });
                }
            }
            catch (Exception ex)
            {
                list.Add(new ProcessActivities
                {
                    MetaData    = ex.Message,
                    Name        = ex.Source,
                    Description = "Workflow Activity Error"
                });
            }
            finally
            {
                wrkmgt.Connection.Close();
            }
            return(list);
        }
Ejemplo n.º 13
0
        public static bool DeleteProcessInstance(int proinstaceid)
        {
            bool result = false;

            SourceCode.Workflow.Management.WorkflowManagementServer wms = new SourceCode.Workflow.Management.WorkflowManagementServer();
            try
            {
                wms.Open(ConfigurationManager.AppSettings["K2ConnectionDel"]);
                //这个false代表是否会删除K2ServerLog中的数据,false代表不删除,true代表删除
                wms.DeleteProcessInstances(proinstaceid, false);
                result = true;
            }
            catch (Exception)
            {
                result = false;
                throw;
            }
            finally
            {
                wms.Connection.Close();
            }
            return(result);
        }
Ejemplo n.º 14
0
        /// <summary>
        /// Returns a list of all the workflows on the environment
        /// </summary>
        /// <returns></returns>
        public static List <Process> WorkflowExplorer()
        {
            List <Process> list = new List <Process>();

            SourceCode.Workflow.Management.WorkflowManagementServer wrkmgt = new SourceCode.Workflow.Management.WorkflowManagementServer();
            wrkmgt.Connection.Open(ConnectToK2());
            try
            {
                wrkmgt.Open();
                SourceCode.Workflow.Management.Criteria.ProcessCriteriaFilter cf = new SourceCode.Workflow.Management.Criteria.ProcessCriteriaFilter();

                SourceCode.Workflow.Management.Processes processes = wrkmgt.GetProcesses(cf);


                foreach (SourceCode.Workflow.Management.Process process in processes)
                {
                    if (process.DefaultVersion == true)
                    {
                        list.Add(BuildWorkflow(process));
                    }
                }
            }
            catch (Exception ex)
            {
                list.Add(new Process
                {
                    Description = ex.Message,
                    Name        = ex.Source,
                    MetaData    = "Workflow Error"
                });
            }
            finally
            {
                wrkmgt.Connection.Close();
            }
            return(list);
        }
Ejemplo n.º 15
0
        public static List<WorkFlowActivities> WorkflowActivitiesExplorer(int ProcessId)
        {
            List<WorkFlowActivities> list = new List<WorkFlowActivities>();
            SourceCode.Workflow.Management.WorkflowManagementServer wrkmgt = new SourceCode.Workflow.Management.WorkflowManagementServer("dlx", 5555);
            try
            {
                wrkmgt.Open();

                foreach (SourceCode.Workflow.Management.Activity act in wrkmgt.GetProcActivities(ProcessId))
                {

                    list.Add(new WorkFlowActivities
                    {
                      Description =  act.Description,
                      ExpectedDuration =  act.ExpectedDuration,
                       ID = act.ID,
                      IsStart =  act.IsStart,
                       MetaData = act.MetaData,
                       Name = act.Name,
                       Priority = act.Priority

                    });
                }

            }
            catch (Exception ex)
            {
                list.Add(new WorkFlowActivities
                {

                    MetaData = ex.Message,
                    Name = ex.Source,
                    Description = "Workflow Activity Error"

                });
            }
            finally
            {

                wrkmgt.Connection.Close();
            }
            return list;
        }
Ejemplo n.º 16
0
        public static List<WorkFlowEvents> WorkflowEventsExplorer(int ActivityId)
        {
            List<WorkFlowEvents> list = new List<WorkFlowEvents>();
            SourceCode.Workflow.Management.WorkflowManagementServer wrkmgt = new SourceCode.Workflow.Management.WorkflowManagementServer("dlx", 5555);
            try
            {
                wrkmgt.Open();

                foreach (SourceCode.Workflow.Management.Event act in wrkmgt.GetActivityEvents(ActivityId))
                {

                    list.Add(new WorkFlowEvents
                    {
                       UseTrans = act.UseTrans,
                       Pos = act.Pos,
                       Excep = act.Excep,
                       EventType = act.EventType.ToString(),
                        CredentialUser = act.CredentialUser,
                       Code = act.Code,
                         Description = act.Description,
                        ExpectedDuration = act.ExpectedDuration,
                        ID = act.ID,
                         MetaData = act.MetaData,
                        Name = act.Name,
                        Priority = act.Priority

                    });
                }

            }
            catch (Exception ex)
            {
                list.Add(new WorkFlowEvents
                {

                    MetaData = ex.Message,
                    Name = ex.Source,
                    Description = "Workflow Activity Error"

                });
            }
            finally
            {

                wrkmgt.Connection.Close();
            }
            return list;
        }
Ejemplo n.º 17
0
        public static List<WorkFlow> WorkflowExplorer()
        {
            List<WorkFlow> list = new List<WorkFlow>();
            SourceCode.Workflow.Management.WorkflowManagementServer wrkmgt = new SourceCode.Workflow.Management.WorkflowManagementServer("dlx", 5555);
            try
            {
                wrkmgt.Open();
                SourceCode.Workflow.Management.Criteria.ProcessCriteriaFilter cf = new SourceCode.Workflow.Management.Criteria.ProcessCriteriaFilter();

                SourceCode.Workflow.Management.Processes processes = wrkmgt.GetProcesses(cf);

                foreach (SourceCode.Workflow.Management.Process process in processes)
                {
                    if (process.DefaultVersion == true)
                    {
                        list.Add(new WorkFlow
                        {
                            Description = process.VersionDesc,
                            Name = process.FullName,
                            guid = process.ProcGuid,
                            displayname = process.FullName,
                            Instances = process.Instances.Count,
                            Version = process.VersionNumber.ToString(),
                            ProcessId = process.ProcID,
                            MetaData = process.MetaData,
                            Priority = process.Priority,
                            ProcSetID = process.ProcSetID

                        });
                    }

                }

            }
            catch (Exception ex)
            {
                list.Add(new WorkFlow
                {

                    Description = ex.Message,
                    Name = ex.Source,
                    MetaData = "Workflow Error"

                });
            }
            finally
            {

                wrkmgt.Connection.Close();
            }
            return list;
        }
Ejemplo n.º 18
0
        public static List<WorkFlowDataFields> WorkflowXMLDataFieldsExplorer(int ProcessId)
        {
            List<WorkFlowDataFields> list = new List<WorkFlowDataFields>();
            SourceCode.Workflow.Management.WorkflowManagementServer wrkmgt = new SourceCode.Workflow.Management.WorkflowManagementServer("dlx", 5555);
            try
            {
                wrkmgt.Open();
                SourceCode.Workflow.Management.Criteria.ProcessCriteriaFilter cf = new SourceCode.Workflow.Management.Criteria.ProcessCriteriaFilter();

                foreach (SourceCode.Workflow.Management.ProcessXMLField df in wrkmgt.GetProcessXMLFields(ProcessId))
                {

                    list.Add(new WorkFlowDataFields
                    {
                        Audit = df.Audit,
                        Category = df.Category,
                        Hidden = df.Hidden,
                        InitialValue = df.InitialValue.ToString(),
                        MetaData = df.MetaData,
                        Name = df.Name,
                        OnDemand = df.OnDemand,
                        Type = df.Type.ToString()

                    });
                }

            }
            catch (Exception ex)
            {
                list.Add(new WorkFlowDataFields
                {

                    MetaData = ex.Message,
                    Name = ex.Source,
                    Category = "Workflow XML Datafield Error"

                });
            }
            finally
            {

                wrkmgt.Connection.Close();
            }
            return list;
        }