OA流程图绘制指南

必填与非必填参数




OA系统架构图设计 oa系统流程图_数据


OA系统架构图设计 oa系统流程图_数据_02


自下而上查询时是否允许下级查看


OA系统架构图设计 oa系统流程图_启动流程_03


当前流程属于哪个部门 可不填默认使用添加人部门

业务流程除了审核分组不用填其余都是必填项

指定流程申请人或部门

点击空白处 → 右下角 就会出现如下


OA系统架构图设计 oa系统流程图_数据_04


分别用于设置部门和用户都可以设置多个

指定任务审核人

把任务节点设置为用户节点 右侧便会出现如下 可设置审核人和部门都可以设置多个


OA系统架构图设计 oa系统流程图_activiti创建子流程_05


节点

会签配置


OA系统架构图设计 oa系统流程图_数据_06


isSequential=false时,表示的并行执行,即该节点下的多条任务可以同时执行。

activiti:collection:执行该会签环节的参与人,此处是使用的一个名叫publicityList的流程变量

activiti:elementVariable:表示的是每一个分支都有一个名叫publicity的流程变量,和上方的activiti:assignee结合


OA系统架构图设计 oa系统流程图_OA系统架构图设计_07


OA系统架构图设计 oa系统流程图_启动流程_08


根据规范的要求,每个上级流程为每个实例创建分支时都要提供如下变量:

nrOfInstances:实例总数 会签人数

nrOfActiveInstances:当前活动的,比如,还没完成的,实例数量。 对于顺序执行的多实例,值一直为1。

nrOfCompletedInstances:已经完成实例的数目。

设置会签受理人


OA系统架构图设计 oa系统流程图_启动流程_09


OA系统架构图设计 oa系统流程图_抛出异常_10


需要注意的是当流程的变量名称不能重名否则会被覆盖

回调


OA系统架构图设计 oa系统流程图_activiti创建子流程_11


OA系统架构图设计 oa系统流程图_activiti创建子流程_12


注意一下:提供给oa模块获取业务申请数据的控制器和提供给oa模块做审核完成后回调的控制器 类的命名和接口uri都用上图中的那种
AppInfoController @RequestMapping("/api/v1/app_info")
ProcessCallBackController @RequestMapping("/api/v1/process_call_back")

接口uri调用实现接口里面的 path常量就行了

添加对应流程的路由


OA系统架构图设计 oa系统流程图_启动流程_13


添加新类型审核

添加常量

增加流程前缀在OA的接口项目中BusinessProcessKey常量类 增加模块名在 ModuleName常量类如我要给用户配置一个审核如下


OA系统架构图设计 oa系统流程图_OA系统架构图设计_14


OA系统架构图设计 oa系统流程图_抛出异常_15


之后再按上面添加相应的用户流程

在OA创建相应的接口


OA系统架构图设计 oa系统流程图_抛出异常_16


命名统一加上模块名前缀 后缀统一使用AppInfoClient,CallbackClient

再到OA的ProcessHandle类中的 getApi方法增加对应的case即可


OA系统架构图设计 oa系统流程图_抛出异常_17


启动自动完成流程注意事项

  1. 启动自动完成流程时会执行回调 但是调用方启动流程方法还没执行完 使用了事务话那么会导致数据没有提交 会导致执行回调查询时查不到数据,
  2. 保存数据需要放在启动申请之前 防止自动流程申请时回调查询不到数据以及申请时就流程结束了触发的回调

正确做法如下:把执行保存的代码再放到一个方法中 再在上面加上事务 不要直接与逻辑代码写在一起加事务


OA系统架构图设计 oa系统流程图_activiti创建子流程_18


启动和回调的事务处理

回调Callback接口

实现回调接口 如果回调执行异常则直接抛出异常即可,OA这边会捕获异常记录后

抛出进行回滚


OA系统架构图设计 oa系统流程图_启动流程_19


启动流程

启动流程中如果出现了异常OA则会回滚抛出 因此只需要捕获是否有异常如果没有异常则正常提交


OA系统架构图设计 oa系统流程图_OA系统架构图设计_20


如果是批量启动则不会抛出异常 需通过isSuccessfulStartup字段进行判断是否启动成功