Ejemplo n.º 1
0
        ///tss =CS-Nom
        ///cs= norm-CS
        /// <summary>
        /// 执行工作流
        /// </summary>
        /// <param name="isSubmit"></param>
        /// <returns></returns>
        bool RunWorkflow(bool isSubmit)
        {
            WorkflowDataFields fields = WorkflowContext.Current.DataFields;
            string sWorkflowNO = fields["Title"].ToString();
            bool isSuccess = true;

            DataTable dt = DataEdit1.GetResultDt(sWorkflowNO);
            if (null == dt || dt.Rows.Count == 0)
            {
                DisplayMessage("No avaliable data!");
                return false;
            }
            else
            {

                bool isSetVariable = SetWorkflowVariable(sWorkflowNO, isSubmit);
                if (!isSetVariable)
                {
                    return false;
                }

                Common comm = new Common();
                comm.DeleteData(sWorkflowNO);//删除老数据
                comm.BatchAddToListByDatatable(dt, "POTypeChangeItems");//添加新数据
                WorkflowContext context = WorkflowContext.Current;
                string sSate = CAWorkflowStatus.InProgress;

                bool IsNeedApprove = DataEdit1.IsNeedApprove();
                if (isSubmit && !IsNeedApprove)//不需要审批
                {
                    List<string> lisSucPONOs = new List<string>();
                    bool isAllUpdated = DataEdit1.UpdateToSAP(sWorkflowNO, ref lisSucPONOs);
                    if (isAllUpdated)//全部更新成功。
                    {
                        comm.UpdateOSPSuccess(sWorkflowNO);
                        sSate = CAWorkflowStatus.Completed;
                    }
                    else
                    {
                        context.UpdateWorkflowVariable("IsSubmit", false);
                        context.UpdateWorkflowVariable("IsResubmit", false);
                        context.UpdateWorkflowVariable("EditTitle", "Please complete POTypeChange:" + sWorkflowNO);
                    }
                    if (lisSucPONOs.Count > 0)
                    {
                        comm.SendNoticeMail(lisSucPONOs.ToString(), CurrentEmployee.DisplayName, sWorkflowNO);
                    }
                }
                SetListValue(sSate);
                return isSuccess;
            }
        }