你的位置:首页 > 软件开发 > ASP.net > Workflow笔记3——BookMark和持久化

Workflow笔记3——BookMark和持久化

发布时间:2016-12-18 14:00:03
BookMark我们在平时的工作流使用中,并不是直接这样一气呵成将整个工作流直接走完的,通常一个流程到了某一个节点,该流程节点的操作人,可能并不会马上去处理该流程,而只有当处理人处理了该流程,流程才会继续往下走。对于不同流程节点的处理人,他所能处理的是不同的流程节点。就好像我们看 ...

Workflow笔记3——BookMark和持久化

BookMark

我们在平时的工作流使用中,并不是直接这样一气呵成将整个工作流直接走完的,通常一个流程到了某一个节点,该流程节点的操作人,可能并不会马上去处理该流程,而只有当处理人处理了该流程,流程才会继续往下走。对于不同流程节点的处理人,他所能处理的是不同的流程节点。

就好像我们看书,我们需要书签来标识,我现在已经看到哪个地方了,工作流也是一样的,我需要通过书签,来确定不同角色的人能处理的是哪一个流程。

1、在项目WindowsWorkFlowApp中,新建“代码活动” BookMarkCodeActivity

修改继承类为NativeActivity,Execute方法的参数类型变为NativeActivityContext类型了。代码如下:

  public sealed class BookMarkCodeActivity : NativeActivity  {    // 定义一个字符串类型的活动输入参数    public InArgument<get='_blank'>string> BookMarkName { get; set; }    //定义一个输出参数,用来做流程判断,相当于模拟用户处理流程节点的操作    public OutArgument<int> Num { get; set; }    // 创建一个BookMark,让流程停下来    protected override void Execute(NativeActivityContext context)    {      // 1.获取BookMark名称      string strBookMarkName = context.GetValue(BookMarkName);      // 2.创建BookMark      context.CreateBookmark(strBookMarkName,new BookmarkCallback(PreExecuteWorkFlow));    }    /// <summary>    /// 注意,一定要记得注意重写此属性,并返回true,否则后面运行会报错    /// </summary>    protected override bool CanInduceIdle    {      get      {        return true;// base.CanInduceIdle;      }    }    /// <summary>    /// 继续执行下一个状态前,必须先执行该方法。    /// </summary>    /// <param name="context"></param>    /// <param name="bookmark">书签</param>    /// <param name="value">传递过来的值</param>    public void PreExecuteWorkFlow(NativeActivityContext context, Bookmark bookmark, object value)    {      context.SetValue(Num, Convert.ToInt32(value));    }}

原标题:Workflow笔记3——BookMark和持久化

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录