场景:企业内部开发人员不足,需要从以前集成Activiti的方式转换成集成钉钉官方OA审批流程,提高开发效率和系统稳定性。
摘要:企业内部系统集成Acitiviti开源工作流存在的问题:
-
企业需要单独搭建工作流服务,开发流程审批相关接口。
-
流程设计方式:需要在eclipse中使用bpmn插件画流程图,然后部署。
-
与前端的交互:需要前端开发人员一起介入联调工作流审核页面和动作。
-
运行维护复杂:基于以上问题,流程的修改迭代升级涉及的人员多,效率低。
企业内部集成钉钉官方OA审批流程的优势:
-
流程设计、发布、修改都可以在钉钉后台管理系统完成。
-
钉钉官方OA审批提供了统一的API调用。
-
运行维护方便:钉钉负责管理流程全生命周期,修改迭代比较方便。
企业内部系统集成钉钉官方OA审批流程的步骤:(以 绩效评价审批流程 为例)
一、钉钉中设计流程图、连接器、连接流
- 表单设计
设置字段(业务表主键id) ,作用是流程审核同意或拒绝时,可以根据id更新业务流程审核状态。
- 流程设计
流程末尾需要添加 连接器 ,实现流程审核结束后能回调业务系统更新审核状态。
- 连接器
流程审核同意执行动作
流程审批拒绝执行动作
- 连接流
流程审核拒绝的事件需要通过连接流触发
二、后端代码中集成钉钉官方OA审批API
- 表结构设计
业务数据表中设计钉钉审核流程相关字段
- 钉钉API访问工具类
例如通过钉钉 appid appsecret 获得accessToken
-
发起流程实例接口
-
查询流程审核日志接口
-
流程审核同意回调接口
此接口需要配置到钉钉连接器( 流程审核同意执行动作)中。
- 流程审核拒绝回调接口
此接口需要配置到钉钉连接器( 流程审批拒绝执行动作)中。
- 钉钉免登录接口
前端通过corpid 获得钉钉临时访问码code,再通过临时访问码code调用此接口返回当前用户的姓名、userid 钉钉用户id 系统工号 钉钉部门id列表 业务系统访问token 等信息,然后将 token 存储到 localStorage
- 检验token合法性接口
前端调用些接口判断用户登录状态是否超时,如果超时,引导用户重新登录,如果未超时,正常访问系统。
三、前端代码集成钉钉免登JSAPI
前端通过corpid 获得钉钉临时访问码code,再通过临时访问码code调用此接口返回当前用户的姓名、userid、 钉钉用户id、 系统工号、 钉钉部门id列表、 业务系统访问token 等信息,然后将 token 存储到 localStorage
这三部分内容将在后面的文章依次分享......