上一篇介绍了安装和配置SharePoint 2013 Workflow,这一篇将用SharePoint 2013 Designer Workflow来实现一个多级审批工作流。

审批工作流介绍

这个Demo是基于多级审批工作流。以古代上传奏折为场景,共分为3个阶段。当创建者上传奏折时,首先会由对应的上级领导审批,审批通过,交付对应的下一级,审批拒绝时,则整个流程结束,具体的官阶信息如下所示:

然后,我们预先设定,以文档库来作为我们的上报奏折库,所以我们需要为其设定自定义的多级审批工作流。最后创建自定义的Task来存放待审批的任务。

创建多级审批工作流

  • 首先,我们可以创建多个审批Stage(阶段),每一阶段处理不同的流程,如下所示:

  • 接着,在Starting Stage,插入Set Workflow Status(设置工作流状态),输入"审批中",然后再插入Set Workflow Variable(设置工作流变量)来创建一个新变量,如下所示:

  • 然后,点击新建的变量(Approver)的Value链接,选择Define workflow lookup(定义工作流查阅项)Function,为了得到当前用户的上级领导,故在弹出的窗体中设置以下值:

  • 接上一点,一级审批者通过后,需要将任务分配给二级审批者,和上操作一样,不同之处是需要将查询条件换为FirstApprover,具体实现如下图所示:

  • 然后,我们需要最重要的一步,分配审批任务给待审批人,所以需要插入另一个Activity:Start a Task process(开始任务进程),点击these users(这些参与者)链接来负责启动任务,具体参数如下所示:

  • 最后,插入IF…ELSE条件,当审批为Approved时,跳转至Approved Stage,否则,跳转至Rejected Stage。如下所示:

  • 因为,我们工作流最终目的是实现多级审批,即一级审批通过,交给二级审批人,依次审批下去。当审批拒绝时,工作流结束,所示稍稍完善下上面的实现方式,具体流程如下实现:

  • 为了让分配的任务更加细化,让每人只能看到自己的任务,需要在Task中设置Filter,如下所示:

查找工作流异常

工作流发生异常很难找到, SharePoint 2013 Designer Workflow当发生异常时会抛出异常,比如500错误。排查这个异常非常麻烦,需要你的经验法则。比如在Workflow Management数据库中存在一张表DebugTraces会记录发生的错误,如下所示(Name为中文情况下,SharePoint会自动分配16进制的编码来表示Name,这样可能会发生一些意想不到的错误):

测试工作流

在文档库中上传一个奏折,将启动工作流,如下截图所示即为3级审批工作流审批流程日志:

小结

细心的朋友已经发现了,我没有去控制Task的权限,而是用了Filter来进行过滤。事实上,在Task任务库中,每个人(而非指定的Assign To对象)都可以启动(编辑、删除)任务。所以怎样用SharePoint Designer 2013去打断权限继承,只给Assign To的用户分配编辑权限,这实在让我很纠结。

SharePoint 2013 实现多级审批工作流的更多相关文章

  1. 跟我学SharePoint 2013视频培训课程—— 审批、拒绝列表项(13)

    课程简介 第13天,怎样在SharePoint 2013中审批.拒绝列表项. 视频 SharePoint 2013 交流群 41032413

  2. SharePoint 2013 Designer工作流——Parallel Block的应用

    参考目录 安装和配置SharePoint 2013 Workflow SharePoint 2013 实现多级审批工作流 在自定义Workflow时,往往会遇到这样场景,某个审批需要被多人查阅,每个查 ...

  3. SharePoint 2013 工作流之年假审批Designer配置篇

    本文介绍SharePoint 2013 使用Designer工具,设计年假审批工作流,由于流程所用的条件和操作都比较简单,所以演示为主,最后附流程图和流程的文本图,有兴趣的可以参照实验.如果对于Des ...

  4. SharePoint 2013 状态机工作流之日常报销示例

    简单介绍下状态机工作流,状态机工作流提供了一系列的状态.工作流从初始状态开始,到终止状态结束.两个状态之间定义行为进行过渡.通常情况下,状态机工作流对事件作出反应,事件的发生将会使状态发生改变. 1. ...

  5. SharePoint 2013 工作流之使用Designer配置示例篇

    在SharePoint 2013中,支持SharePoint Designer 2013(以下简称SPD)配置简单的工作流,完成我们的业务需要.下面,我们就举一个小例子,实现SPD配置工作流. 1. ...

  6. SharePoint 2013 工作流设计之Designer 使用“可视化视图”

    SharePoint 2013增强了工作流功能,而Designer里面也添加了可视化设计视图,也就是类似Visio的设计视图(需要Visio 2013支持),下面我们简单介绍下,在可视化视图下,使用工 ...

  7. SharePoint 2013 工作流平台的选项不可用

    问题描述 当我想创建一个SharePoint 2013 工作流的时候,打开SharePoint 2013 Designer(一下简称SPD),发现没有SharePoint 2013 工作流的选项.原来 ...

  8. SharePoint 2013 工作流之使用Visio设计篇

    SharePoint 2013增强了工作流,不仅仅基于WorkFlow Foundation 4.0了,设计方式也不仅仅是Designer,还包括Visio中设计,下面我们就一个简单的例子,介绍下. ...

  9. SharePoint 2013 工作流之Visual Studio开发示例篇

    SharePoint 2013引用了WF4.0 Foundation,支持使用Designer和Visio进行设计,但是功能受限,而Visual Studio可以开发功能更加丰富的工作流,下面我们简单 ...

随机推荐

  1. ccc如何在一台windows主机上搭建mysql主从复制

    参考:http://www.cnblogs.com/wzjbk/p/6266899.htmlc 进入mysql: 进入到mysql的bin目录下才可以输入 mysql -hlocalhost -uro ...

  2. ubuntu 上使用valgrind

    Valgrind是一个GPL的软件,用于Linux(For x86, amd64 and ppc32)程序的内存调试和代码剖析.你可以在它的环境中运行你的程序来监视内存的使用情况,比如C 语言中的ma ...

  3. C#正则表达式 - 精通版

    1.正则所需要的命名空间是 using System.Text.RegularExpressions 2.创建Regex对象 new Regex(string pattern,RegexOptions ...

  4. vuejs组件交互 - 01 - 父子组件之间的数据交互

    父子组件之间的数据交互遵循: props down - 子组件通过props接受父组件的数据 events up - 父组件监听子组件$emit的事件来操作数据 示例 子组件的点击事件函数中$emit ...

  5. SpringBoot使用JSP渲染页面

    1.pom.xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId& ...

  6. C++11新特性之 std::forward(完美转发)(转)

    我们也要时刻清醒,有时候右值会转为左值,左值会转为右值. (也许“转换”二字用的不是很准确) 如果我们要避免这种转换呢? 我们需要一种方法能按照参数原来的类型转发到另一个函数中,这才完美,我们称之为完 ...

  7. python str方法之ljust、rjust、center

    # -*- coding: cp936 -*- #python 27 #xiaodeng #str方法之ljust.rjust.center #http://www.runoob.com/python ...

  8. Docker Swarm Mode无法增加管理节点

    这两天用Docker Swarm Mode,加入新的管理节点会报以下错误(在/var/log/messages文件中可以看到): Handler for POST /v1.37/swarm/join ...

  9. 在Docker容器中运行Spring Boot的jar包 jar外的配置文件无法生效

    Spring Boot加载配置文件,默认会从几个固定位置搜索一下看看有没有配置文件 ——application.properties或者bootstrap.properties(如果你使用了sprin ...

  10. RHEL7体验KVM虚拟机

    KVM是基于内核2.6+的虚拟化,前提是硬件须支持虚拟化! Red Hat Enterprise Virtualization-Management,即RHEV-M(管理多个RHEV-H系统) 虚拟化 ...