/// <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); }
private void BindList(string InstanceID) { DataTable dt = processHistoryBLL.GetProcessHistoryList(InstanceID); if (dt != null && dt.Rows != null && dt.Rows.Count > 0) { string formID = dt.Rows[0]["FormID"].ToString(); if (!string.IsNullOrEmpty(formID)) { SourceCode.Workflow.Management.WorklistItems items = WorkflowManage.GetNextApprover(formID); if (items != null) { foreach (SourceCode.Workflow.Management.WorklistItem item in items) { string[] nameArray = item.Actioner.Name.Split('\\'); if (nameArray != null && nameArray.Length > 1) { string domainID = nameArray[1]; DataTable employeeDataTable = processHistoryBLL.GetEmployeeInfo(domainID); DataRow dataRow = dt.NewRow(); dt.Rows.Add(dataRow); dataRow["ApproveByUserName"] = employeeDataTable == null ? string.Empty : employeeDataTable.Rows[0]["EmployeeName"].ToString(); dataRow["DepartName"] = employeeDataTable == null ? string.Empty : employeeDataTable.Rows[0]["DepartName"].ToString(); dataRow["FinishedTime"] = new DateTime(9999, 12, 31); dataRow["ApproveResult"] = "送达"; dataRow["CurrentActiveName"] = item.ActivityName; dataRow["ISSign"] = "0"; } } } } } rpViewHistory.DataSource = dt; rpViewHistory.DataBind(); }
/// <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 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); }