本节包括以下主题:

# 任务摘要

表单上的重点信息,无需打开表单,就可在【待办】列表中以摘要形式显示在标题栏位。

Image

设置摘要

在流程空白处,鼠标右键菜单中,打开流程属性,设置标题模板

Image

模板格式

摘要以asp.net格式定义,可以插入表单数据。

使用循环,还可以提取明细表数据。

# 条件网关

当某个流程步骤后面有多个分支,需要根据条件判断流程走向时,使用条件网关实现。

Image

条件设置

在流程上拖放条件节点,在节点连线的属性上,选择字段、转换字段类型、运算符、比较值等设置表达式即可。

Image

条件设置部分为C#语法。

当需要输入多个条件时,可使用 &&(与) ||(或) 运算,如:

Convert.ToDecimal(FormRootRow["总金额"])<=10000&&

Convert.ToString(FormRootRow["类型"])=="固定资产"

多路分支

一个条件节点可以分出多条路径,当多个条件成立时,仅执行第一个成立的条件。

比如当报销金额为25000时,仅执行大于1万部长审批。

Image

缺省路径

从条件节点连出去的线上,必需设置该路径的对应条件表达式或缺省路径。

根据表达式成立与否,决定是否走对应的路径。其他路径条件不成立时,走缺省路径。

Image

# 平行签核

多路同时审批即为平行签核。

Image

平行签核,必需由一个分流网关开始,合流网关结束。

合流时会等待所有路径审批完成。

平行签核可以嵌套。

条件设置

分流网关后的连接线上也可以设置条件,设置条件的连接线有菱形标识◇。

分流网关执行所有条件为真的路径和未设置条件的路径,

在流程上拖放条件节点,在节点连线的属性上,选择字段、转换字段类型、运算符、比较值等设置表达式即可。

Image

条件设置部分为C#语法。

当需要输入多个条件时,可使用 &&(与) ||(或) 运算,如:

Convert.ToDecimal(FormRootRow["总金额"])<=10000&&

Convert.ToString(FormRootRow["类型"])=="固定资产"

多路分支

同条件网关一样,分流网关后的连接线上也可以设置条件,设置条件的连接线有菱形标识◇。

不同的是,条件网关仅执行第一个条件为真的路径。分流网关执行所有条件为真的路径和未设置条件的路径,

比如当报销金额为25000时,执行大于1万部长审批和大于2万总监审批两条路径。

Image

缺省路径

从分流网关连出去的线上,也可以设置缺省路径。

没有条件为真时,走缺省路径。

Image

# 表单上指定处理人

可以在表单上指定处理人。

比如,任务下达流程,在表单包含处理者栏位,任务处理环节由此人负责。

Image

配置

只需在设置处理人使用表单字段即可。

Image

# 限时处理

可以为流程节点指定办结时间(截止日期)。

截止时间即将到达时,可催办(发送催办通知)。

截止时间已到仍未办理,可以执行自动处理或继续催办。

指定截止时间

在节点属性,超时页签,可以为流程指定截止时间。

Image

计算截止时间时,需要用到工作日历,设置时请不要忘记。

催办

截止时间即将到达时可提前发送催办通知,可以设置催办提前量和催办间隔。

Image

催办间隔按工作日历计算,去除节假日,不会在非工作时间发送催办通知。

逾期未处理

超时时间已到但仍未处理,可自动处理(如:自动按同意处理),也可跳转到特定关卡。

Image

未勾选过时处理,截止时间到达后,会继续催办。

# 任务通知

当新任务到达时,处理人会收到通知。

通知渠道

系统支持以多种渠道发送通知消息。

Image

将标题内容置空会使该类通知不启用。

个人接收通知渠道

企业以多种渠道发送通知,如邮件+短信+手机app推送,用户可以根据个人偏好选择通知接收渠道。

Image

通知信息内容

通过设置通知模板,在运行时可动态生成通知内容。

Image

通知模板支持:

  • 设置信息格式,带出表单数据;
  • 带出明细表信息;
  • 支持附件

模板设置将在下一节详细介绍。

通知类型

通知类型
说明
新任务通知 新任务到达时,用户接受到通知
知会通知 被别人知会时,用户接受到通知
退回通知 任务被退回时,发起人接收到通知
核准通知 任务核准时,发起人收到通知
拒绝通知 任务拒绝时,发起人收到通知
任务中止通知 运维调度时,当前正在办理的人收到通知
超时催办 限时关卡催办时,办理人接收到通知
人工催办 被人工点击催办时,审批人收到催办通知

以上通知类型,在系统安装时,都预设了缺省内容。

# 通知模板

通知模板设置使用asp.net语法,可生成各种格式的信息内容:

  • 设置信息格式,带出表单数据;
  • 带出明细表信息;
  • 支持附件。

模板继承关系

在系统管理、流程属性、流程节点上均可设置通知模板,他们的继承关系如下:

系统管理->流程属性->流程节点。

Image

模板应用规则:

  • 如果节点上不另设格式,则采用流程上的设置模板;
  • 如果流程上不另设格式,则采用系统上设置的模板。

插入表单数据

选择表单数据,将光标移到插入位置,按“插入”按钮即可。

Image

添加附件

只有邮件通知能添加附件,使用时设置附件属性,选择附件存储字段即可。

Image

# 版本控制

流程有版本控制,每一个流程实例都与版本相关。

Image

创建新版本

流程保存时可以保存为新版本。

Image

  • 流程保存为新版本后,已发起流程还是按老版本运行;
  • 新流程发起时总是使用最新版本;

修改历史流程

通常都是编辑当前活动流程,有时需要修改历史流程,如修正历史流程中的问题。

在历史流程的鼠标右键菜单中,可打开设计界面编辑流程。

Image

# 流程迁移

流程需要从一台服务器迁移到另一台服务器。比如测试系统测试完成后的流程,需要部署到正式系统。

流程迁移通常包括:流程、表单、报表。通用数据源、服务连接、ESB数据源、ESB输出流、日历等。

每个模块的内容一旦建立都有自己唯一的id,比如,表单引用的ESB数据源、流程上引用的服务连接、日历等,在引用时记录的都是内容的id,所以迁移时要配套导出所有引用的内容一起发布,才能保证数据一一对应。

这些模块的迁移和发布步骤都是一样的,下面以流程导出和发布为例,操作流程迁移。

导出流程文件

单个流程文件的导出,选中流程右键属性导出迁移包。

Image 批量流程文件的导出,切花到列表视图,选中多个流程文件,右键属性导出迁移包。

Image

流程文件导出后,以文件的形式存在,文件格式为:流程迁移包_2023-05-19.pkg

发布流程文件

在正式系统部署流程时,点击发布按钮,上传在测试环境导出的流程文件。

Image

注意:

1、发布时,若已将迁移包发布到A文件夹,下次更新时,也须在对应目录发布。

  如在测试环境导出的流程文件,发布在正式环境的A文件夹,下次更新时,也须在A文件夹发布,不可以在其他文件夹发布。

2、不同类型的迁移包,如流程、表单等,发布时也需要在对应模块发布

  如流程导出文件须在流程模块发布,不可以发布到表单目录等。

# 节点

节点类型

流程中最常用的节点,包含:开始、结束、人工处理、分支、并行流、事件等功能。

节点 图标 节点名称 描述
开始 开始事件 人工发起流程
消息开始事件 接收消息自动启动流程
定时开始事件 定时启动流程
条件开始事件 满足条件自动启动流程
信号开始事件 接收信号自动启动流程
中间事件 消息中间抛出事件 发送消息
消息中间捕获事件 接收消息
定时中间捕获事件 等待一定时间后触发后续操作,例如定时提醒、定时作业等。
升级中间抛出事件 引发升级
条件中间捕获事件 等待条件为真后触发后续操作。
补偿中间抛出事件 触发补偿
信号中间抛出事件 发送信号
信号中间捕获事件 接收信号
网关 条件网关 流程分支流转
分流网关 开启并行处理
合流网关 并行处理汇合点
事件网关 基于事件做决策,只可接定时中间捕获事件、条件中间捕获事件、信号中间捕获事件、消息中间捕获事件
任务 人工审批 最常用的审批节点,如:部长审批、经理审批
调用子流程 发起子流程,带入数据,子流程结束可返回数据

同步子流程 – 父流程等待子流程返回

异步子流程 – 父、子流程独立运行,父流程不等待子流程返回
调用ESB 与第三方系统集成,向第三方系统输出数据
发送邮件 集成邮件功能,在BPM系统向业务相关人员发送通知邮件等,可定制邮件格式、可带附件
阿里短信 集成阿里短信功能,在BPM系统向业务相关人员发送通知短信等
数据库插入 可在BPM系统或第三方数据库上运行SQL语句
数据库更新/删除 配置即可向目标数据库输出数据
Word生成 配置即可将流程表单以需要的格式,生成Word文件
Excle生成 配置即可将流程表单以需要的格式,生成Excel文件
Pdf生成 配置即可将流程表单以需要的格式,生成PDF文件
调用WebSevice 配置即可调用WebSevice向第三方系统输出数据
调用RESTful 配置即可调用RESTful向第三方系统输出数据
C#代码 直接书写C#代码,扩展流程功能,常用于输出
调用Dll 调用库dll中的方法,dll可通过上下文(Context)访问流程信息(表单数据等)
子流程 子流程 当前流程的一部分,可为一组活动创建一个范围,如:层级审批、超时等
事件子流程 由事件触发的子流程,可以在流程级别或任何子流程级别添加事件子流程。

事件子流程可以是中断的,也可以是非中断的。

事件子流程的类型有:

消息开始事件子流程、消息开始事件子流程(非中断)

定时开始事件子流程、定时开始事件子流程(非中断)

条件开始事件子流程、条件开始事件子流程(非中断)

信号开始事件子流程、信号开始事件子流程(非中断)

升级开始事件子流程、升级开始事件子流程(非中断)

补偿开始事件子流程、错误开始事件子流程。

其中,补偿开始事件子流程,永远是不中断的。错误开始事件子流程,永远是中断的。
事物子流程 事务子流程可以确保子流程中的所有活动要么全部成功完成,要么全部回滚到子流程开始时的状态。

事务子流程通常用于处理需要原子性执行的业务逻辑,例如银行转账等。
子流程(缩起) 缩起子流程可以减少流程图的复杂性,使其更容易浏览和管理。
结束 结束事件 当前执行路径结束,不会执行任何操作。
消息结束事件 当前执行路径结束,并发送消息,和消息中间抛出事件具有相同的行为和限制。
升级结束事件 当前执行路径结束,并引发升级,和升级中间抛出事件具有相同的行为和限制。
错误结束事件 当前执行路径结束,并引发错误,此错误可由匹配的错误边界事件或错误开始事件子流程捕获。
补偿结束事件 当前执行路径结束,并触发补偿,和补偿中间抛出事件具有相同的行为和限制。
信号结束事件 当前执行路径结束,并发送信号,和信号中间抛出事件具有相同的行为和限制。
终止结束事件 当前执行路径结束,并结束所在范围。

终止结束事件可以在主流程中或子流程中使用,表示结束整个流程或子流程。
取消结束事件 当前执行路径结束,并引发取消事件,该事件由取消边界事件捕获,然后取消边界事件取消事务并触发补偿,

取消结束事件只能与事务子流程结合使用。
边界事件 消息边界事件 当执行到达消息边界事件附加到的活动(任务或子流程)时,消息边界事件将捕获具有正确名称的消息。

消息边界事件捕获到对应的消息时,会中断原来的流程路径,然后创建新的的执行路径。
信号边界事件 当执行到达信号边界事件附加到的活动(任务或子流程)时,信号边界事件将捕获具有正确名称的信号。

信号边界事件捕获到对应的信号时,会中断原来的流程路径,然后创建新的的执行路径。
定时边界事件 计时器边界事件充当秒表和闹钟。当执行到达边界事件附加到的活动时,将启动计时器。

计时器边界事件触发时,会中断原来的流程路径,然后创建新的的执行路径。
升级边界事件 升级边界事件捕获在定义它的活动范围内引发的升级。

升级边界事件只能附加到子流程上,因为升级只能由升级中间抛出事件或升级结束事件引发。

升级边界事件捕获到对应的升级时,会中断原来的流程路径,然后创建新的的执行路径。
条件边界事件 当任务或子流程正在执行时,如果条件被满足,那么附加到其上的条件边界事件就会被触发。

条件边界事件触发时,会中断原来的流程路径,然后创建新的的执行路径。
错误边界事件 错误边界事件捕获在定义它的活动范围内引发的错误。

定义错误边界事件在子流程上最有意义,因为子流程为子流程内的所有活动创建范围。

错误边界事件捕获到对应的错误时,会中断原来的流程路径,然后创建新的的执行路径。

错误边界事件永远是中断的。
取消边界事件 取消边界事情只能在事务子流程中使用。

取消事务时,将触发事务子流程边界上的附加取消边界事件。

触发取消边界事件时,它首先中断当前范围内的所有活动执行。

接下来,它开始补偿事务范围内的所有活动补偿边界事件。

补偿是同步执行的,即边界事件在补偿完成之前等待离开事务。

补偿完成后,沿取消边界事件路径继续执行。

取消边界事件永远是中断的。
补偿边界事件 补偿边界事件可用于将补偿处理程序附加到任务或子流程。

补偿边界事件永远是不中断的。
消息边界事件(非中断) 当执行到达消息边界事件附加到的活动(任务或子流程)时,消息边界事件将捕获具有正确名称的消息。

非中断,意思是不中断原来的流程路径,并且,会创建一个额外的执行路径,并沿消息边界路径执行。
定时边界事件(非中断) 计时器边界事件充当秒表和闹钟。当执行到达边界事件附加到的活动时,将启动计时器。

非中断,意思是不中断原来的流程路径,并且,会创建一个额外的执行路径,并沿定时边界路径执行。
升级边界事件(非中断) 升级边界事件捕获在定义它的活动范围内引发的升级。

升级边界事件只能附加到子流程上,因为升级只能由升级中间抛出事件或升级结束事件引发。

非中断,意思是不中断原来的流程路径,并且,会创建一个额外的执行路径,并沿升级边界路径执行。
条件边界事件(非中断) 当任务或子流程正在执行时,如果条件被满足,那么附加到其上的条件边界事件就会被触发。

非中断,意思是不中断原来的流程路径,并且,会创建一个额外的执行路径,并沿条件边界路径执行。
信号边界事件(非中断) 当执行到达信号边界事件附加到的活动(任务或子流程)时,信号边界事件将捕获具有正确名称的信号。

非中断,意思是不中断原来的流程路径,并且,会创建一个额外的执行路径,并沿信号边界路径执行。

常用节点属性

Image

Image

Image

Image

Image

# 处理人

一个流程节点可以指定一个或多个处理人。

Image

处理人可以是:组织内的人员、角色、表单字段上指定的人员,还可以使用自定义代码指定。

多个处理人

有时我们看到流程只要一个人处理即可,但却指定了多个处理人,此时多个处理人之间形成候补关系。

指定多个处理人适用以下场景:

  • 集团中存在特例,个别部门没有经理,则由副经理处理;
  • 第一处理人外出,由第二处理人处理,而不是由第一处理人指定的代理人处理。

候补处理人与代理人

候补处理人由流程指定,代表公司策略。

代理人由处理人指定,代表个人意愿。

公司策略高于个人意愿,也就是说先找第一处理人、第二处理人,当第一、第二都外出,再依次找他们的代理人。