// 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); }
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")); }