Example #1
0
    /// <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();
            }
        }
    }
Example #2
0
    /// <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();
            }
        }
Example #5
0
        /// <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();
                    }
                }
            }
        }
Example #6
0
    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();
     }
 }
Example #10
0
        public WorkListObserver(IWorkList worklist, WorklistItem item)
        {
            Assert.ArgumentNotNull(worklist, nameof(worklist));

            _worklist = worklist;
            _item     = item;
        }
Example #11
0
        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();
                }
            }
        }
Example #12
0
    /// <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);
        }
Example #14
0
    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();
    }
Example #15
0
        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);
        }
Example #16
0
 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");
            }
        }
Example #18
0
 /// <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"));
            }
        }
Example #20
0
    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);
     }
 }
Example #22
0
        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);
        }
Example #25
0
    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;
        }
    }
Example #26
0
        public void AddWorklistItem(WorklistItem worklistItem)
        {
            if (!IsConnected)
            {
                return;
            }

            var col = db.GetCollection("worklistitems");

            col.Insert(worklistItem.ToBsonDocument());
        }
Example #27
0
        public void RemoveWorklistItem(WorklistItem worklistItem)
        {
            if (!IsConnected)
            {
                return;
            }

            var col = db.GetCollection("worklistitems");

            col.Delete(worklistItem.Id);
        }
Example #28
0
        public void UpdateWorklistItemStatus(WorklistItem worklistItem)
        {
            if (!IsConnected)
            {
                return;
            }

            var col = db.GetCollection("worklistitems");

            col.Update(worklistItem.ToBsonDocument());
        }
Example #29
0
        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;
 }
Example #32
0
 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;
 }
Example #37
0
 public MockFailedWorkflow(Context context, WorklistItem worklistItem)
     : base(context)
 {
     this.worklistItem = worklistItem;
 }