本节包括以下主题:
# 任务摘要
表单上的重点信息,无需打开表单,就可在【待办】列表中以摘要形式显示在标题栏位。

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

模板格式
摘要以asp.net格式定义,可以插入表单数据。
使用循环,还可以提取明细表数据。
# 表单上指定处理人
可以在表单上指定处理人。
比如,任务下达流程,在表单包含处理者栏位,任务处理环节由此人负责。

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

# 限时处理
可以为流程节点指定办结时间(截止日期)。
截止时间即将到达时,可催办(发送催办通知)。
截止时间已到仍未办理,可以执行自动处理或继续催办。
指定截止时间
在节点属性,超时页签,可以为流程指定截止时间。

计算截止时间时,需要用到工作日历,设置时请不要忘记。
催办
截止时间即将到达时可提前发送催办通知,可以设置催办提前量和催办间隔。

催办间隔按工作日历计算,去除节假日,不会在非工作时间发送催办通知。
逾期未处理
超时时间已到但仍未处理,可自动处理(如:自动按同意处理),也可跳转到特定关卡。

未勾选过时处理,截止时间到达后,会继续催办。
# 任务通知
当新任务到达时,处理人会收到通知。
通知渠道
系统支持以多种渠道发送通知消息。

将标题内容置空会使该类通知不启用。
个人接收通知渠道
企业以多种渠道发送通知,如邮件+短信+手机app推送,用户可以根据个人偏好选择通知接收渠道。

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

通知模板支持:
- 设置信息格式,带出表单数据;
 - 带出明细表信息;
 - 支持附件
 
模板设置将在下一节详细介绍。
通知类型
| 通知类型 | 说明 | 
|---|---|
| 新任务通知 | 新任务到达时,用户接受到通知 | 
| 知会通知 | 被别人知会时,用户接受到通知 | 
| 退回通知 | 任务被退回时,发起人接收到通知 | 
| 核准通知 | 任务核准时,发起人收到通知 | 
| 拒绝通知 | 任务拒绝时,发起人收到通知 | 
| 任务中止通知 | 运维调度时,当前正在办理的人收到通知 | 
| 超时催办 | 限时关卡催办时,办理人接收到通知 | 
| 人工催办 | 被人工点击催办时,审批人收到催办通知 | 
以上通知类型,在系统安装时,都预设了缺省内容。
# 通知模板
通知模板设置使用asp.net语法,可生成各种格式的信息内容:
- 设置信息格式,带出表单数据;
 - 带出明细表信息;
 - 支持附件。
 
模板继承关系
在系统管理、流程属性、流程节点上均可设置通知模板,他们的继承关系如下:
系统管理->流程属性->流程节点。

模板应用规则:
- 如果节点上不另设格式,则采用流程上的设置模板;
 - 如果流程上不另设格式,则采用系统上设置的模板。
 
插入表单数据
选择表单数据,将光标移到插入位置,按“插入”按钮即可。

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

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

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

- 流程保存为新版本后,已发起流程还是按老版本运行;
 - 新流程发起时总是使用最新版本;
 
修改历史流程
通常都是编辑当前活动流程,有时需要修改历史流程,如修正历史流程中的问题。
在历史流程的鼠标右键菜单中,可打开设计界面编辑流程。

# 流程迁移
流程需要从一台服务器迁移到另一台服务器。比如测试系统测试完成后的流程,需要部署到正式系统。
流程迁移通常包括:流程、表单、报表。通用数据源、服务连接、ESB数据源、ESB输出流、日历等。
每个模块的内容一旦建立都有自己唯一的id,比如,表单引用的ESB数据源、流程上引用的服务连接、日历等,在引用时记录的都是内容的id,所以迁移时要配套导出所有引用的内容一起发布,才能保证数据一一对应。
这些模块的迁移和发布步骤都是一样的,下面以流程导出和发布为例,操作流程迁移。
导出流程文件
单个流程文件的导出,选中流程右键属性导出迁移包。
批量流程文件的导出,切花到列表视图,选中多个流程文件,右键属性导出迁移包。

流程文件导出后,以文件的形式存在,文件格式为:流程迁移包_2023-05-19.pkg
发布流程文件
在正式系统部署流程时,点击发布按钮,上传在测试环境导出的流程文件。

注意:
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)访问流程信息(表单数据等) | ||
| 子流程 | 子流程 | 当前流程的一部分,可为一组活动创建一个范围,如:层级审批、超时等 | |
| 事件子流程 | 由事件触发的子流程,可以在流程级别或任何子流程级别添加事件子流程。 事件子流程可以是中断的,也可以是非中断的。 事件子流程的类型有: 消息开始事件子流程、消息开始事件子流程(非中断) 定时开始事件子流程、定时开始事件子流程(非中断) 条件开始事件子流程、条件开始事件子流程(非中断) 信号开始事件子流程、信号开始事件子流程(非中断) 升级开始事件子流程、升级开始事件子流程(非中断) 补偿开始事件子流程、错误开始事件子流程。 其中,补偿开始事件子流程,永远是不中断的。错误开始事件子流程,永远是中断的。  | ||
| 事物子流程 | 事务子流程可以确保子流程中的所有活动要么全部成功完成,要么全部回滚到子流程开始时的状态。 事务子流程通常用于处理需要原子性执行的业务逻辑,例如银行转账等。  | ||
| 子流程(缩起) | 缩起子流程可以减少流程图的复杂性,使其更容易浏览和管理。 | ||
| 结束 | 结束事件 | 当前执行路径结束,不会执行任何操作。 | |
| 消息结束事件 | 当前执行路径结束,并发送消息,和消息中间抛出事件具有相同的行为和限制。 | ||
| 升级结束事件 | 当前执行路径结束,并引发升级,和升级中间抛出事件具有相同的行为和限制。 | ||
| 错误结束事件 | 当前执行路径结束,并引发错误,此错误可由匹配的错误边界事件或错误开始事件子流程捕获。 | ||
| 补偿结束事件 | 当前执行路径结束,并触发补偿,和补偿中间抛出事件具有相同的行为和限制。 | ||
| 信号结束事件 | 当前执行路径结束,并发送信号,和信号中间抛出事件具有相同的行为和限制。 | ||
| 终止结束事件 | 当前执行路径结束,并结束所在范围。 终止结束事件可以在主流程中或子流程中使用,表示结束整个流程或子流程。  | ||
| 取消结束事件 | 当前执行路径结束,并引发取消事件,该事件由取消边界事件捕获,然后取消边界事件取消事务并触发补偿, 取消结束事件只能与事务子流程结合使用。  | ||
| 边界事件 | 消息边界事件 | 当执行到达消息边界事件附加到的活动(任务或子流程)时,消息边界事件将捕获具有正确名称的消息。 消息边界事件捕获到对应的消息时,会中断原来的流程路径,然后创建新的的执行路径。  | |
| 信号边界事件 | 当执行到达信号边界事件附加到的活动(任务或子流程)时,信号边界事件将捕获具有正确名称的信号。 信号边界事件捕获到对应的信号时,会中断原来的流程路径,然后创建新的的执行路径。  | ||
| 定时边界事件 | 计时器边界事件充当秒表和闹钟。当执行到达边界事件附加到的活动时,将启动计时器。 计时器边界事件触发时,会中断原来的流程路径,然后创建新的的执行路径。  | ||
| 升级边界事件 | 升级边界事件捕获在定义它的活动范围内引发的升级。 升级边界事件只能附加到子流程上,因为升级只能由升级中间抛出事件或升级结束事件引发。 升级边界事件捕获到对应的升级时,会中断原来的流程路径,然后创建新的的执行路径。  | ||
| 条件边界事件 | 当任务或子流程正在执行时,如果条件被满足,那么附加到其上的条件边界事件就会被触发。 条件边界事件触发时,会中断原来的流程路径,然后创建新的的执行路径。  | ||
| 错误边界事件 | 错误边界事件捕获在定义它的活动范围内引发的错误。 定义错误边界事件在子流程上最有意义,因为子流程为子流程内的所有活动创建范围。 错误边界事件捕获到对应的错误时,会中断原来的流程路径,然后创建新的的执行路径。 错误边界事件永远是中断的。  | ||
| 取消边界事件 | 取消边界事情只能在事务子流程中使用。 取消事务时,将触发事务子流程边界上的附加取消边界事件。 触发取消边界事件时,它首先中断当前范围内的所有活动执行。 接下来,它开始补偿事务范围内的所有活动补偿边界事件。 补偿是同步执行的,即边界事件在补偿完成之前等待离开事务。 补偿完成后,沿取消边界事件路径继续执行。 取消边界事件永远是中断的。  | ||
| 补偿边界事件 | 补偿边界事件可用于将补偿处理程序附加到任务或子流程。 补偿边界事件永远是不中断的。  | ||
| 消息边界事件(非中断) | 当执行到达消息边界事件附加到的活动(任务或子流程)时,消息边界事件将捕获具有正确名称的消息。 非中断,意思是不中断原来的流程路径,并且,会创建一个额外的执行路径,并沿消息边界路径执行。  | ||
| 定时边界事件(非中断) | 计时器边界事件充当秒表和闹钟。当执行到达边界事件附加到的活动时,将启动计时器。 非中断,意思是不中断原来的流程路径,并且,会创建一个额外的执行路径,并沿定时边界路径执行。  | ||
| 升级边界事件(非中断) | 升级边界事件捕获在定义它的活动范围内引发的升级。 升级边界事件只能附加到子流程上,因为升级只能由升级中间抛出事件或升级结束事件引发。 非中断,意思是不中断原来的流程路径,并且,会创建一个额外的执行路径,并沿升级边界路径执行。  | ||
| 条件边界事件(非中断) | 当任务或子流程正在执行时,如果条件被满足,那么附加到其上的条件边界事件就会被触发。 非中断,意思是不中断原来的流程路径,并且,会创建一个额外的执行路径,并沿条件边界路径执行。  | ||
| 信号边界事件(非中断) | 当执行到达信号边界事件附加到的活动(任务或子流程)时,信号边界事件将捕获具有正确名称的信号。 非中断,意思是不中断原来的流程路径,并且,会创建一个额外的执行路径,并沿信号边界路径执行。  | 
常用节点属性





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

处理人可以是:组织内的人员、角色、表单字段上指定的人员,还可以使用自定义代码指定。
多个处理人
有时我们看到流程只要一个人处理即可,但却指定了多个处理人,此时多个处理人之间形成候补关系。
指定多个处理人适用以下场景:
- 集团中存在特例,个别部门没有经理,则由副经理处理;
 - 第一处理人外出,由第二处理人处理,而不是由第一处理人指定的代理人处理。
 
候补处理人与代理人
候补处理人由流程指定,代表公司策略。
代理人由处理人指定,代表个人意愿。
公司策略高于个人意愿,也就是说先找第一处理人、第二处理人,当第一、第二都外出,再依次找他们的代理人。