// If your activity returns a value, derive from CodeActivity<TResult>
        // and return the value from the Execute method.
        protected override void Execute(CodeActivityContext context)
        {
            // Obtain the runtime value of the Text input argument
            //string text = context.GetValue(this.Text);

            #region Initiate an application
            ////Put the info of the step of initiating an application into step table
            WF_StepInfo initStep = new WF_StepInfo()
            {
                Title         = string.Empty,
                Comment       = string.Empty,
                FlowTo        = context.GetValue <int>(FlowTo),
                InstanceId    = Guid.Empty,
                IsEndStep     = false,
                IsStartStep   = true,
                ParentStepID  = -1,
                ProcessBy     = context.GetValue <int>(ProcessBy),
                ProcessTime   = DateTime.Now,
                StepName      = "Initiate Application",
                SubTime       = DateTime.Now,
                IsProcessed   = true,
                WF_InstanceID = context.GetValue <int>(WF_InstanceID)
            };

            IWF_StepInfoService stepService = new WF_StepInfoService();
            stepService.AddEntity(initStep);
            #endregion

            WF_StepInfo pmStep = new WF_StepInfo()
            {
                Comment       = string.Empty,
                FlowTo        = 0,
                InstanceId    = Guid.Empty,
                IsEndStep     = false,
                IsStartStep   = true,
                ParentStepID  = initStep.ID,
                ProcessBy     = (int)initStep.FlowTo,
                ProcessTime   = DateTime.Now,
                WF_InstanceID = initStep.WF_InstanceID,
                SubTime       = DateTime.Now,
                StepName      = "PM Validation",
                IsProcessed   = false,
                StepResult    = (short)WFEnum.WFEnum.IsContinue
            };
            stepService.AddEntity(pmStep);
            context.SetValue(NextStepBookMarkName, pmStep.StepName);
        }
Exemple #2
0
        public ActionResult StartWorkflow(WF_Instance wF_Instance)
        {
            //将流程列表中添加数据
            wF_Instance.ApplicationId = Convert.ToInt32(Guid.Empty);
            wF_Instance.Result        = 0 + "";
            wF_Instance.StartedBy     = loginUser.id.ToString();
            wF_Instance.Status        = 0 + "";
            wF_Instance.SubTime       = DateTime.Now;
            wF_Instance.WF_TempID     = int.Parse(Request["hiddenTempId"]);
            WF_InstanceService.AddEntity(wF_Instance);
            //然后启动流程
            var dict = new Dictionary <string, object> {
                { "TempBookMarkName", "总监审批" }
            };

            Guid guid = Guid.Empty;

            WorkflowApplicationHelper.CreateWorkflow(new FincalActivity(), dict, out guid);

            wF_Instance.ApplicationId = Convert.ToInt32(guid);

            //保存步骤
            WF_StepInfo stepInfo = new WF_StepInfo();

            stepInfo.ChildStepID   = 0;
            stepInfo.Comment       = "开始进行财务审批";
            stepInfo.DelFlag       = 0;
            stepInfo.IsProcessed   = true;
            stepInfo.IsStartStep   = true;
            stepInfo.IsEndStep     = false;
            stepInfo.ProcessBy     = loginUser.id;
            stepInfo.ParentStepID  = 0;
            stepInfo.ParentStepID  = 0;
            stepInfo.ProcessTime   = DateTime.Now;
            stepInfo.Remark        = "开始财务审批";
            stepInfo.StepName      = "第一步";
            stepInfo.StepResult    = 1 + "";
            stepInfo.SubTime       = DateTime.Now;
            stepInfo.Title         = "开始财务审批";
            stepInfo.WF_InstanceID = wF_Instance.ID;

            WF_StepInfoService.AddEntity(stepInfo);

            //保存步骤
            WF_StepInfo masterStepInfo = new WF_StepInfo();

            masterStepInfo.ChildStepID   = 0;
            masterStepInfo.Comment       = "总监开始进行财务审批";
            masterStepInfo.DelFlag       = 0;
            masterStepInfo.IsProcessed   = false;
            masterStepInfo.IsStartStep   = false;
            masterStepInfo.IsEndStep     = false;
            masterStepInfo.ProcessBy     = int.Parse(Request["FlowTo"]);
            masterStepInfo.ParentStepID  = 0;
            masterStepInfo.ParentStepID  = 0;
            masterStepInfo.ProcessTime   = DateTime.Now;
            masterStepInfo.Remark        = "总监开始财务审批";
            masterStepInfo.StepName      = "总监审批";
            masterStepInfo.StepResult    = 1 + "";
            masterStepInfo.SubTime       = DateTime.Now;
            masterStepInfo.Title         = "开始财务审批";
            masterStepInfo.WF_InstanceID = wF_Instance.ID;

            WF_StepInfoService.AddEntity(masterStepInfo);

            return(Content("ok"));
        }