/// <summary> /// 获取反加签处理人 /// </summary> /// <param name="sn"></param> /// <param name="Account"></param> public static string GetBackToPreApproverUser(string sn, string Account) { using (Connection conn = new Connection()) { try { conn.Open(K2ServerName, GetConnString()); conn.RevertUser(); conn.ImpersonateUser(Account); WorklistItem wli = conn.OpenWorklistItem(sn); string addApproversBy = wli.ActivityInstanceDestination.DataFields["AddApproversBy"].Value.ToString(); string[] arrPreApprovers = addApproversBy.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries); string lastPreApprover = arrPreApprovers[arrPreApprovers.Length - 1]; return(lastPreApprover); } catch { return(""); } finally { conn.Close(); } } }
/// <summary> /// 加签 /// </summary> /// <param name="sn"></param> /// <param name="Account"></param> /// <param name="nextUser"></param> public static void ForwardToNextApprover(string sn, string Account, string nextUser) { using (Connection conn = new Connection()) { try { conn.Open(K2ServerName, GetConnString()); conn.RevertUser(); conn.ImpersonateUser(Account); WorklistItem wli = conn.OpenWorklistItem(sn); string addApproversBy = wli.ActivityInstanceDestination.DataFields["AddApproversBy"].Value.ToString(); addApproversBy += Account + ";"; wli.ActivityInstanceDestination.DataFields["AddApproversBy"].Value = addApproversBy; wli.Actions["更新"].Execute(); wli.Redirect(nextUser); } catch { throw; } finally { conn.Close(); } } }
internal void ActionWorklistItem(string serialNumber, string actionName) { try { OpenConnection(); WorklistItem item = _cnn.OpenWorklistItem(serialNumber, "ASP", true); foreach (SourceCode.Workflow.Client.Action action in item.Actions) { if (action.Name == actionName) { action.Execute(); } } CloseConnection(); } catch (Exception ex) { throw(ex); } finally { _cnn.Dispose(); } }
internal DataTable GetWorklistItemActions(string serialNumber) { DataTable result = new DataTable("WorklistAction"); result.Columns.Add("ActionName", typeof(string)); try { OpenConnection(); WorklistItem item = _cnn.OpenWorklistItem(serialNumber, "ASP", false); foreach (SourceCode.Workflow.Client.Action action in item.Actions) { DataRow row = result.NewRow(); row["ActionName"] = action.Name; result.Rows.Add(row); } return(result); } catch (Exception ex) { throw(ex); } finally { _cnn.Dispose(); } }
/// <summary> /// 获取流程变量 /// </summary> /// <param name="sn">流程SN</param> /// <param name="FieldNames">要获取的变量的List</param> /// <returns>变量的List</returns> public static void GetProcessDataFields(string sn, string currentUser, CDataFields dataFields) { using (Connection conn = new Connection()) { try { ConnectionSetup conSetup = GetConnectionSetup(); conn.Open(conSetup); conn.ImpersonateUser(currentUser); WorklistItem listItem = conn.OpenWorklistItem(sn); GetDataFields(listItem, dataFields); } catch { throw; } finally { try { conn.RevertUser(); } catch { } if (conn != null) { conn.Close(); } } } }
public static bool GetActivityDataField(string sn, string fieldName, string UserAccount, out string value) { using (Connection conn = new Connection()) { try { conn.Open(K2ServerName, GetConnString()); conn.RevertUser(); conn.ImpersonateUser(UserAccount); WorklistItem wlItem = conn.OpenWorklistItem(sn); value = wlItem.ActivityInstanceDestination.DataFields[fieldName].Value.ToString(); return(true); } catch { value = ""; return(false); } finally { conn.Close(); } } }
internal DataTable ReleaseWorklistItem(string serialNumber) { DataTable result = new DataTable("WorklistAction"); result.Columns.Add("ErrorMessageBlankIfNoError", typeof(string)); DataRow row = result.NewRow(); row["ErrorMessageBlankIfNoError"] = string.Empty; try { OpenConnection(); WorklistItem item = _cnn.OpenWorklistItem(serialNumber, "ASP", true); item.Release(); } catch (Exception ex) { if (ex.Message.ToLower().Contains("worklist")) { row["ErrorMessageBlankIfNoError"] = "You cannot work on this item. Another user may have opened it before you. Refresh the list and try again."; } else { throw (ex); } } finally { _cnn.Dispose(); } result.Rows.Add(row); return(result); }
public void AddItem(WorklistItem item) { lock (locker) { WorklistItems.Add(item); } }
/// <summary> /// 页面加载 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void Page_Load(object sender, EventArgs e) { //防止二次提交 ScriptManager.RegisterOnSubmitStatement(Page, typeof(Page), "Go_disabled", "disabledButton('lbAgree');disabledButton('lbReject');disabledButton('lbSubmit');"); ScriptManager.RegisterStartupScript(Page, typeof(Page), "Clear_disabled", "enableButton('lbAgree');enableButton('lbReject');enableButton('lbSubmit');", true); if (!IsPostBack) { ViewState["IsSubmit"] = false; if (!string.IsNullOrEmpty(Request.QueryString["sn"])) { WorkflowHelper.CurrentUser = "******" + _BPMContext.CurrentUser.LoginId; sn.Value = Request.QueryString["sn"]; WorklistItem listItem = WorkflowHelper.GetWorklistItemWithSN(sn.Value, "founder\\" + _BPMContext.CurrentUser.LoginId); taskID.Value = listItem.ID.ToString(); nodeID.Value = listItem.ActivityInstanceDestination.ActID.ToString(); nodeName.Value = listItem.ActivityInstanceDestination.Name; InitApproveOpinion(nodeName.Value); } if (!string.IsNullOrEmpty(Request.QueryString["id"])) { ViewState["FormID"] = _BPMContext.ProcInst.FormId; BindFormData(); } else { ExceptionHander.GoToErrorPage(); } ShowButton(); InitCheckBoxList(); InitCheckButton(); InitLeader(); } }
public WorkListObserver(IWorkList worklist, WorklistItem item) { Assert.ArgumentNotNull(worklist, nameof(worklist)); _worklist = worklist; _item = item; }
public void ShowView() { foreach (IWorkList worklist in GetWorklists()) { // after Pro start up there is no view yet if (!_viewsByWorklistName.ContainsKey(worklist.Name)) { WorklistItem item = ProjectItemUtils.Get <WorklistItem>(worklist.Name); Assert.NotNull(item); _viewsByWorklistName.Add(worklist.Name, new WorkListObserver(worklist, item)); } IWorkListObserver view = _viewsByWorklistName[worklist.Name]; if (_layersByWorklistName.TryGetValue(worklist.Name, out FeatureLayer layer)) { view.Show(layer.Name); } else { view.Show(); } } }
/// <summary> /// 反加签(提交步骤) /// </summary> /// <param name="sn"></param> /// <param name="action"></param> /// <param name="opinion"></param> /// <returns></returns> public bool BackToPreApprover(string sn, string action, string opinion, string customActiveName = "") { if (string.IsNullOrWhiteSpace(opinion)) { opinion = action; } WorklistItem listItem = null; try { listItem = WorkflowHelper.GetWorklistItemWithSN(sn, _BPMContext.CurrentUser.ApprovalUser); } catch { return(false); } string currentActiveName = string.IsNullOrWhiteSpace(customActiveName) ? listItem.ActivityInstanceDestination.Name : customActiveName; bool isSuccess = WorkflowHelper.BackToPreApprover(sn, _BPMContext.CurrentUser.ApprovalUser); if (isSuccess) { AddApprovalOption(action, opinion, "2", currentActiveName); return(true); } return(false); }
/// <summary> /// Convert work item to task view model. /// </summary> /// <param name="item">The work item.</param> /// <returns></returns> private TaskViewModel ConvertTask(WorklistItem item) { TaskViewModel task = new TaskViewModel { AllocatedUser = item.AllocatedUser, DataID = UtilityService.DatafieldToInt(item.ProcessInstance.DataFields["DataID"]), Step = UtilityService.DatafieldToInt(item.ProcessInstance.DataFields["CurrentStep"]), StartDate = item.ProcessInstance.StartDate, Folder = item.ProcessInstance.Folder, Name = item.ProcessInstance.Name, FullName = item.ProcessInstance.FullName, Folio = item.ProcessInstance.Folio, ReceivedDate = UtilityService.DatafieldToDateTime(item.ProcessInstance.DataFields["ReceivedDate"], item.ProcessInstance.StartDate), RequesterName = UtilityService.DatafieldToString(item.ProcessInstance.DataFields["Requester"]), ProcessCode = UtilityService.DatafieldToString(item.ProcessInstance.DataFields["ProcessCode"]) }; task.Data = $"{item.Data}&ProcessCode={UtilityService.DatafieldToString(item.ProcessInstance.DataFields["ProcessCode"])}" + $"&DataID={UtilityService.DatafieldToString(item.ProcessInstance.DataFields["DataID"])}"; string currentStep = UtilityService.DatafieldToString(item.ProcessInstance.DataFields["CurrentStep"]); if (!string.IsNullOrEmpty(currentStep)) { task.Data = string.Format(task.Data + "&Step={0}", currentStep); } return(task); }
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { //string currentUser = new IdentityUser().GetEmployee().LoginId; //UploadAttachments1._BPMContext.LoginId = currentUser; ViewState["IsSubmit"] = false; if (!string.IsNullOrEmpty(Request.QueryString["sn"])) { sn.Value = Request.QueryString["sn"]; WorklistItem listItem = WorkflowHelper.GetWorklistItemWithSN(sn.Value, "founder\\" + _BPMContext.CurrentUser.LoginId); taskID.Value = listItem.ID.ToString(); nodeID.Value = listItem.ActivityInstanceDestination.ActID.ToString(); nodeName.Value = listItem.ActivityInstanceDestination.Name; InitApproveOpinion(nodeName.Value); } if (!string.IsNullOrEmpty(Request.QueryString["id"])) { FormId = _BPMContext.ProcInst.FormId; InitFormData(); } else { ExceptionHander.GoToErrorPage(); } } //Countersign1.SimulateUser = ViewState["loginName"].ToString(); //FlowRelated1.SimulateUser = ViewState["loginName"].ToString(); ShowButton(); SetMenu(); }
public string RecallAction(string UserId, string ProcInstID, string ActionName, string Comment) { string result = ""; try { WorkflowFacade workfacade = new WorkflowFacade(); WorklistItem worklist = workfacade.GetWorklistItemsWithRecallByProcess(UserId, ProcInstID, "Applicant Recall"); if (worklist != null) { workfacade.ExecuteAction(UserId, worklist.SN, ActionName, Comment); result = "Success"; } else { result = "Failed"; throw new System.ArgumentException("Unable to recall the task"); } } catch (Exception ex) { result = "Failed"; throw ex; } return(result); }
public static WorklistItem GetWorklistItem(int processInstanceId) { using (Connection conn = new Connection()) { WorklistItem retitem = null; try { conn.Open(K2ServerName, GetConnString()); Worklist list = conn.OpenWorklist(); foreach (WorklistItem item in list) { //item.ProcessInstance.Originator发起人 if (item.ProcessInstance.ID == processInstanceId) { retitem = item; } } } catch { throw; } finally { conn.Close(); } return(retitem); } }
//add comments samples public static void AddCommentsSamples() { using (Connection K2Conn = new Connection()) { //dummy values for process instance ID and activity instance ID int processInstanceId = 1; int activityInstanceDestinationID = 10; //adding a comment //Add a Comment using the Connection class and the Process Instance's ID IWorkflowComment comment = K2Conn.AddComment(processInstanceId, "Hello World"); //Add a Comment using the Connection class and the Worklist Item's SerialNumber IWorkflowComment comment2 = K2Conn.AddComment("[_serialNo]", "Hello World"); //Add a Comment using the Connection class and the Process Instance's ID and Activity Instance Destination's ID IWorkflowComment comment3 = K2Conn.AddComment(processInstanceId, activityInstanceDestinationID, "Hello World"); //Add a Comment using the Process Instance ProcessInstance procinst = K2Conn.OpenProcessInstance(processInstanceId); IWorkflowComment procInstComment = procinst.AddComment("Hello World"); //Add a Comment using the WorklistItem WorklistItem worklistItem = K2Conn.OpenWorklistItem("[_serialNo]"); IWorkflowComment WLItemComment = worklistItem.AddComment("Hello World"); } }
/// <summary> /// /// </summary> /// <param name="sn"></param> /// <param name="FieldNames"></param> /// <returns></returns> public static Dictionary <string, string> GetDataField(string sn, string[] FieldNames, string UserAccount) { using (Connection conn = new Connection()) { try { conn.Open(K2ServerName, GetConnString()); conn.RevertUser(); conn.ImpersonateUser(UserAccount); WorklistItem wlItem = wlItem = conn.OpenWorklistItem(sn); Dictionary <string, string> dictionary = new Dictionary <string, string>(); foreach (string fieldName in FieldNames) { dictionary.Add(fieldName, wlItem.ProcessInstance.DataFields[fieldName].Value.ToString()); } return(dictionary); } catch { throw; } finally { conn.Close(); } } }
//add attachments samples public static void AddAttachmentsSamples() { using (Connection K2Conn = new Connection()) { //dummy values for process instance ID and activity instance ID int processInstanceId = 1; int activityInstanceDestinationID = 10; string fileName = "Report1.pdf"; //Add an Attachment using the Connection class and the Process Instance's ID IWorkflowAttachment _attachment = K2Conn.AddAttachment(processInstanceId, fileName, GetFile("Report1.pdf")); //Add an Attachment using the Connection class and the Worklist Item's SerialNumber IWorkflowAttachment _attachment1 = K2Conn.AddAttachment("[_serialNo]", fileName, GetFile("Report1.pdf")); //Add an Attachment using the Connection class and the Process Instance's ID and Activity Instance Destination's ID IWorkflowAttachment _attachment2 = K2Conn.AddAttachment(processInstanceId, activityInstanceDestinationID, fileName, GetFile("Report1.pdf")); //Add an Attachment using the Process Instance ProcessInstance _processInstance = K2Conn.OpenProcessInstance(processInstanceId); IWorkflowAttachment _attachment3 = _processInstance.AddAttachment(fileName, GetFile("Report1.pdf")); //Add an Attachment using the WorklistItem WorklistItem _worklistItem = K2Conn.OpenWorklistItem("[_serialNo]"); IWorkflowAttachment _attachment4 = _worklistItem.AddAttachment(fileName, GetFile("Report1.pdf")); //Async exampe, where you create the attachment first and then upload the file //Add an 'empty' attachment IWorkflowAttachment _attachment5 = K2Conn.AddAttachment(processInstanceId, fileName, null); //now upload the attachment's file. //Note. You can only upload the file once and only for an 'empty' attachment. //Note. This can be used for async purposes, to create the metadata first and secondly upload the file. IAttachment attachmentWithContent = K2Conn.UploadAttachmentContent(_attachment.Id, GetFile("Report1.pdf")); } }
public static bool ApproveProcess(string sn, string action, string currentUser) { using (Connection conn = new Connection()) { bool result = false; try { conn.Open(K2ServerName, GetConnString()); conn.RevertUser(); conn.ImpersonateUser(currentUser); WorklistItem wlItem = conn.OpenWorklistItem(sn); wlItem.Actions[action].Execute(); result = true; } catch { throw; } finally { conn.Close(); } return(result); } }
public void RemoveItem(WorklistItem item) { lock (locker) { WorklistItems.Remove(item); } }
public void OpenWorklistItemOnErrorStatus() { string SN = "5094_50"; this.context.UserName = @"HK\CCCHEUNG"; WorklistItem wlItem = this.wfclient.OpenWorklistItem(this.context, SN); // Assert.IsNotNull(wlItem); }
public WorklistItemInstance(ObjectInstance prototype, WorklistItem worklistItem) : this(prototype) { if (worklistItem == null) { throw new ArgumentNullException("worklistItem"); } m_worklistItem = worklistItem; }
/// <summary> /// Redirect Task Function. /// </summary> /// <param name="serialNumber">THe identity workflow.</param> /// <param name="destinationTask">The Redirect to User.</param> /// <returns></returns> public string RedirectTask(string serialNumber, string destinationTask) { string result = string.Empty; WorklistItem worklistItem = _connection.OpenWorklistItem(serialNumber, "ASP", true); worklistItem.Redirect(destinationTask); return(result); }
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { if (!string.IsNullOrEmpty(Request.QueryString["sn"])) { WorkflowHelper.CurrentUser = "******" + _BPMContext.CurrentUser.LoginId; sn.Value = Request.QueryString["sn"]; WorklistItem listItem = WorkflowHelper.GetWorklistItemWithSN(sn.Value, "founder\\" + _BPMContext.CurrentUser.LoginId); taskID.Value = listItem.ID.ToString(); nodeID.Value = listItem.ActivityInstanceDestination.ActID.ToString(); nodeName.Value = listItem.ActivityInstanceDestination.Name; } ///加载页面数据 string instId = Request.QueryString["id"]; if (!string.IsNullOrEmpty(instId)) { WorkFlowInstance info = new WF_WorkFlowInstance().GetWorkFlowInstanceById(instId); FormId = info.FormId; FormTitle = info.FormTitle; InitFormData(); } else { ExceptionHander.GoToErrorPage(); } } //初始化勾选部门 InitCheckButton(); ShowButton(); SetMenu(); //判断分公司和物业集团显示 if (StartDeptId.Contains("S366-S976")) { Company.Visible = false; Group.Visible = true; Group1.Visible = false; IsReportToWY.Visible = false; } else if (!StartDeptId.Contains("S366-S976") && cblIsReportToWY.SelectedItem.Value == "1") { Company.Visible = true; Company1.Visible = true; Group.Visible = true; IsReportToGroup.Visible = false; } else if (!StartDeptId.Contains("S366-S976") && cblIsReportToWY.SelectedItem.Value == "0") { Company.Visible = true; Company1.Visible = false; Group.Visible = false; IsReportToGroup.Visible = false; } }
public void AddWorklistItem(WorklistItem worklistItem) { if (!IsConnected) { return; } var col = db.GetCollection("worklistitems"); col.Insert(worklistItem.ToBsonDocument()); }
public void RemoveWorklistItem(WorklistItem worklistItem) { if (!IsConnected) { return; } var col = db.GetCollection("worklistitems"); col.Delete(worklistItem.Id); }
public void UpdateWorklistItemStatus(WorklistItem worklistItem) { if (!IsConnected) { return; } var col = db.GetCollection("worklistitems"); col.Update(worklistItem.ToBsonDocument()); }
public bool ReleaseWorklistItem(string serialNo) { WorklistItem wi = GetWorklistItem(serialNo); if (wi != null) { _server.ReleaseWorklistItem(wi.ID); return(true); } return(false); }
protected void Page_Load(object sender, EventArgs e) { string methodName = "Page_Load"; Logger.Write(this.GetType(), EnumLogLevel.Info, className + ":" + methodName + ":" + Pkurg.PWorldBPM.Common.Log.MessageType.IN); if (!IsPostBack) { string currentUser = new IdentityUser().GetEmployee().LoginId; UploadAttachments1._BPMContext.LoginId = currentUser; ViewState["IsSubmit"] = false; ViewState["loginName"] = currentUser.ToLower().Replace(@"k2:founder\", "").Replace(@"founder\", ""); WorkflowHelper.CurrentUser = ViewState["loginName"].ToString(); BFEmployee bfEmployee = new BFEmployee(); EmployeeAdditional employeeaddInfo = bfEmployee.GetEmployeeAdditionalByLoginName(ViewState["loginName"].ToString()); currentEmployee = bfEmployee.GetEmployeeByEmployeeCode(employeeaddInfo.EmployeeCode); Session["CurrentEmployee"] = currentEmployee; if (!string.IsNullOrEmpty(Request.QueryString["sn"])) { sn.Value = Request.QueryString["sn"]; WorklistItem listItem = WorkflowHelper.GetWorklistItemWithSN(sn.Value); taskID.Value = listItem.ID.ToString(); nodeID.Value = listItem.ActivityInstanceDestination.ActID.ToString(); nodeName.Value = listItem.ActivityInstanceDestination.Name; InitApproveOpinion(nodeName.Value); } if (!string.IsNullOrEmpty(Request.QueryString["id"])) { WorkFlowInstance info = new WF_WorkFlowInstance().GetWorkFlowInstanceById(Request.QueryString["id"]); ViewState["FormID"] = info.FormId; InintData(); } else { ContractID = BPMHelp.GetSerialNumber("SQ_");; tbNumber.Text = ContractID; ViewState["FormID"] = ContractID; } //tbPerson.Text = CurrentEmployee.EmployeeName; } Countersign1.SimulateUser = ViewState["loginName"].ToString(); FlowRelated1.SimulateUser = ViewState["loginName"].ToString(); Logger.Write(this.GetType(), EnumLogLevel.Info, className + ":" + methodName + ":" + Pkurg.PWorldBPM.Common.Log.MessageType.OUT); ShowButton(); }
internal virtual void PopulateDataRow(WorklistItem item, DataRow row) { row["AllocatedUser"] = item.AllocatedUser; row["Data"] = item.Data; row["ID"] = item.ID; row["Link"] = "<hyperlink><link>" + HttpUtility.HtmlEncode(item.Data) + "</link><display>Open</display></hyperlink>"; row["SerialNumber"] = item.SerialNumber; row["Status"] = item.Status; row["ActivityID"] = item.ActivityInstanceDestination.ActID; row["ActivityInstanceID"] = item.ActivityInstanceDestination.ActInstID; row["ActivityName"] = item.ActivityInstanceDestination.Name; row["Priority"] = item.ActivityInstanceDestination.Priority; row["StartDate"] = item.EventInstance.StartDate; row["ActivityInstanceDestinationID"] = item.ActivityInstanceDestination.ID; row["ProcessInstanceID"] = item.ProcessInstance.ID; row["ProcessFullName"] = item.ProcessInstance.FullName; row["ProcessName"] = item.ProcessInstance.Name; row["Folio"] = item.ProcessInstance.Folio; row["EventInstanceName"] = item.EventInstance.Name; }
private void AddRowToDataTable(DataTable table, WorklistItem wli) { DataRow dr = table.NewRow(); dr[Constants.SOProperties.ClientWorklist.ProcessName] = wli.ProcessInstance.Name; dr[Constants.SOProperties.ClientWorklist.ProcessFolder] = wli.ProcessInstance.Folder; dr[Constants.SOProperties.ClientWorklist.ProcessFullname] = wli.ProcessInstance.FullName; dr[Constants.SOProperties.ClientWorklist.ProcessDescription] = wli.ProcessInstance.Description; dr[Constants.SOProperties.ClientWorklist.ProcessMetadata] = wli.ProcessInstance.MetaData; dr[Constants.SOProperties.ClientWorklist.ProcessStatus] = wli.ProcessInstance.Status1; dr[Constants.SOProperties.ClientWorklist.ProcessPriority] = wli.ProcessInstance.Priority; dr[Constants.SOProperties.ClientWorklist.ProcessStartdate] = wli.ProcessInstance.StartDate; dr[Constants.SOProperties.ClientWorklist.ProcessExpectedDuration] = wli.ProcessInstance.ExpectedDuration; dr[Constants.SOProperties.ClientWorklist.ProcessGuid] = wli.ProcessInstance.Guid; dr[Constants.SOProperties.ClientWorklist.ProcessId] = wli.ProcessInstance.ID; dr[Constants.SOProperties.ClientWorklist.ActivityId] = wli.ActivityInstanceDestination.ID; dr[Constants.SOProperties.ClientWorklist.ActivityName] = wli.ActivityInstanceDestination.Name; dr[Constants.SOProperties.ClientWorklist.ActivityPriority] = wli.ActivityInstanceDestination.Priority; dr[Constants.SOProperties.ClientWorklist.ActivityDescription] = wli.ActivityInstanceDestination.Description; dr[Constants.SOProperties.ClientWorklist.ActivityMetadata] = wli.ActivityInstanceDestination.MetaData; dr[Constants.SOProperties.ClientWorklist.ActivityStartdate] = wli.ActivityInstanceDestination.StartDate; dr[Constants.SOProperties.ClientWorklist.ActivityExpectedDuration] = wli.ActivityInstanceDestination.ExpectedDuration; dr[Constants.SOProperties.ClientWorklist.EventId] = wli.EventInstance.ID; dr[Constants.SOProperties.ClientWorklist.EventName] = wli.EventInstance.Name; dr[Constants.SOProperties.ClientWorklist.EventMetadata] = wli.EventInstance.MetaData; dr[Constants.SOProperties.ClientWorklist.EventDescription] = wli.EventInstance.Description; dr[Constants.SOProperties.ClientWorklist.EventPriority] = wli.EventInstance.Priority; dr[Constants.SOProperties.ClientWorklist.EventStartDate] = wli.EventInstance.StartDate; dr[Constants.SOProperties.ClientWorklist.EventExpectedDuration] = wli.EventInstance.ExpectedDuration; dr[Constants.SOProperties.ClientWorklist.WorklistItemStatus] = wli.Status; dr[Constants.SOProperties.ClientWorklist.Folio] = wli.ProcessInstance.Folio; dr[Constants.SOProperties.ClientWorklist.Data] = wli.Data; dr[Constants.SOProperties.ClientWorklist.SerialNumber] = wli.SerialNumber; dr[Constants.SOProperties.ClientWorklist.OriginalDestination] = wli.AllocatedUser; table.Rows.Add(dr); }
internal override void PopulateDataRow(WorklistItem item, DataRow row) { base.PopulateDataRow(item, row); row["ActivityInstanceDestinationID"] = item.ActivityInstanceDestination.ID; row["ActivityDescription"] = item.ActivityInstanceDestination.Description; row["ActivityMetaData"] = item.ActivityInstanceDestination.MetaData; row["ActivityExpectedDuration"] = item.ActivityInstanceDestination.ExpectedDuration; row["ProcessDescription"] = item.ProcessInstance.Description; row["ProcessMetaData"] = item.ProcessInstance.MetaData; row["ProcessPriority"] = item.ProcessInstance.Priority; row["ProcessInstanceStartDate"] = item.ProcessInstance.StartDate; }
/// <summary> /// Returns the value of the WorklistItem value for the provided field. /// </summary> /// <param name="selectedWorklistItem">Opened K2 Worklist reference</param> /// <param name="fieldName"></param> /// <returns>Value of K2 Process Data field </returns> public static string GetDataFieldValue(WorklistItem selectedWorklistItem, string fieldName) { return (from DataField item in selectedWorklistItem.ProcessInstance.DataFields where item.Name.ToUpper() == fieldName.ToUpper() select item).Count() == 1 ? selectedWorklistItem.ProcessInstance.DataFields[fieldName].Value.ToString() : string.Empty; }
public WorkflowItem(WorklistItem wlItem) { DateTime startDate = wlItem.ActivityInstanceDestination.StartDate; try { if (wlItem.ActivityInstanceDestination.DataFields.Count != 0) { if ((wlItem.ActivityInstanceDestination.DataFields["SLAStartDate"].Value != null) && (wlItem.ActivityInstanceDestination.DataFields["SLAStartDate"].ValueType == DataType.TypeDate)) { startDate = (DateTime)wlItem.ActivityInstanceDestination.DataFields["SLAStartDate"].Value; } } } catch { // Gulp! } // get the data from the worklist StartDate = startDate; Activity = wlItem.ActivityInstanceDestination.Name; TaskURL = wlItem.Data; SerialNumber = wlItem.SerialNumber; ProcInstId = wlItem.ProcessInstance.ID; AllocatedUser = string.Empty; CanRelease = false; IsForeign = false; IsResubmission = false; IsUrgent = false; WorkflowType = WorfklowItemType.Normal; // get the status for the item switch (wlItem.Status) { case WorklistStatus.Available: { AllocatedUser = wlItem.AllocatedUser.Substring(wlItem.AllocatedUser.IndexOf(":", StringComparison.Ordinal) + 1); if (!string.IsNullOrEmpty(AllocatedUser)) AllocatedUser = string.Empty; Status = WorkflowItemStatus.Available; } break; case WorklistStatus.Allocated: { AllocatedUser = wlItem.AllocatedUser.Substring(wlItem.AllocatedUser.IndexOf(":", StringComparison.Ordinal) + 1); Status = WorkflowItemStatus.Allocated; if (!string.IsNullOrEmpty(AllocatedUser)) { AllocatedUser = AllocatedUser; } } break; case WorklistStatus.Open: { Status = WorkflowItemStatus.Open; CanRelease = true; AllocatedUser = wlItem.AllocatedUser.Substring(wlItem.AllocatedUser.IndexOf(":", StringComparison.Ordinal) + 1); if (!string.IsNullOrEmpty(AllocatedUser)) AllocatedUser = AllocatedUser; } break; } // get the information from the folio string folio = wlItem.ProcessInstance.Folio; string[] foliofields = folio.Split('/'); if (foliofields.Length > 1) UWR = foliofields[1].Trim(); if (foliofields.Length > 2) PolicyID = foliofields[2].Trim(); if (foliofields.Length > 4) Insured = foliofields[4].Trim(); if (IsExternalWordings(Activity)) { WorkflowType = WorfklowItemType.ContractCertainty; if (foliofields.Length > 5) IsResubmission = (foliofields[5].Trim().ToLower() == "true"); if (foliofields.Length > 6) IsUrgent = (foliofields[6].Trim().ToLower() == "true"); if (foliofields.Length > 7) IsForeign = (foliofields[7].Trim().ToLower() == "true"); BPC = (foliofields.Length > 3) ? foliofields[3].Trim() : String.Empty; } else { Office = (foliofields.Length > 3) ? foliofields[3].Trim() : String.Empty; } // get the Query Response and Risk Based Peer Review string riskBasedPeerReview = GetDataFieldValue(wlItem, "NeedsUROReview"); string queryRespondedOS = GetDataFieldValue(wlItem, "OS PR Query Responded"); string queryRespondedPR = GetDataFieldValue(wlItem, "PR Query Responded"); string queryRespondedURO = GetDataFieldValue(wlItem, "URO Query Responded"); if (!string.IsNullOrEmpty(queryRespondedOS) && queryRespondedOS.ToLower() == "true") HasQueryResponse = true; else if (!string.IsNullOrEmpty(queryRespondedPR) && queryRespondedPR.ToLower() == "true") HasQueryResponse = true; else if (!string.IsNullOrEmpty(queryRespondedURO) && queryRespondedURO.ToLower() == "true") HasQueryResponse = true; else HasQueryResponse = false; if (!string.IsNullOrEmpty(riskBasedPeerReview) && riskBasedPeerReview.ToLower() == "true") IsRiskBasedPeerReview = true; else IsRiskBasedPeerReview = false; }
private DataRow CreateWorklistItemRow(DataTable table, WorklistItem wlItem) { DataRow r = table.NewRow(); r[Constants.Properties.ManagementWorklist.ActivityId] = wlItem.ActID; r[Constants.Properties.ManagementWorklist.ActivityInstanceDestinationId] = wlItem.ActInstDestID; r[Constants.Properties.ManagementWorklist.ActivityInstanceId] = wlItem.ActInstID; r[Constants.Properties.ManagementWorklist.ActivityName] = wlItem.ActivityName; r[Constants.Properties.ManagementWorklist.Destination] = wlItem.Destination; //TODO: r[CoProperties.ManagementWorklistProperty.DestinationType] = wlItem.; r[Constants.Properties.ManagementWorklist.EventId] = wlItem.EventID; r[Constants.Properties.ManagementWorklist.EventName] = wlItem.EventName; r[Constants.Properties.ManagementWorklist.Folio] = wlItem.Folio; r[Constants.Properties.ManagementWorklist.ProcessInstanceId] = wlItem.ProcInstID; r[Constants.Properties.ManagementWorklist.ProcessStatus] = wlItem.ProcessInstanceStatus.ToString(); r[Constants.Properties.ManagementWorklist.ProcessName] = wlItem.ProcName; r[Constants.Properties.ManagementWorklist.StartDate] = wlItem.StartDate; r[Constants.Properties.ManagementWorklist.WorklistItemStatus] = wlItem.Status.ToString(); r[Constants.Properties.ManagementWorklist.WorklistItemId] = wlItem.ID; return r; }
public MockFailedWorkflow(Context context, WorklistItem worklistItem) : base(context) { this.worklistItem = worklistItem; }