Asp.net工作流workflow实战之给书签命名(四)

之前我们的书签名字是通过手动录入的方式,在实际开发中要在流程设计的时候定义好:

namespace EazyBPMS.WorkFlow
{

    public sealed class SetStepActivity : CodeActivity
    {
        // 定义一个字符串类型的活动输入参数
        public InArgument<string> StepName { get; set; }
        public InArgument<bool> IsEnd { get; set; }

        // 如果活动返回值,则从 CodeActivity<TResult>
        // 并从 Execute 方法返回该值。
        protected override void Execute(CodeActivityContext context)
        {
            // 获取 Text 输入参数的运行时值
            string text = context.GetValue(this.StepName);
            bool end = context.GetValue(this.IsEnd);
            Guid insId = context.WorkflowInstanceId;
            //更新步骤名
            //根据流程id取得流程实例
            BLL.eazy_wf_instance instBll = new BLL.eazy_wf_instance();
            Model.eazy_wf_instance instModel = instBll.GetModel(insId);
            //根据流程实例id 和当前状态读取当前步骤
            BLL.eazy_wf_step stepBLL = new BLL.eazy_wf_step();   
            //报错的地方呢      
            EazyBPMS.Model.eazy_wf_step stepModel = stepBLL.GetCurrentModel(instModel.ID);
            stepModel.StepName = text;
            stepModel.IsEndStep = end;


            //是不是结束步骤更新一下
            if (end)
            {
                //步骤的结果 Result=“审核结果”
                stepModel.Result = "审批结束";
                //更新实例表中的状态
                instModel.Status= (short)EazyEnums.WFInstanceStatusEnum.End;
                instBll.Update(instModel);

            }
            // 更新步骤信息
            stepBLL.Update(stepModel);


        }
    }
}

 

posted @ 2016-11-12 16:05  雅比斯  阅读(883)  评论(0编辑  收藏  举报