需通过钉钉开放平台完成服务端接入与流程配置:一、准备开发环境与权限;二、创建应用并配置安全参数;三、创建审批模板并获取processcode;四、配置条件分支与审批节点;五、服务端发起审批实例。

如果您希望在钉钉App中为组织构建可编程、可复用的自定义审批工作流,需通过钉钉开放平台完成服务端接入与流程配置。以下是实现该目标的具体路径:
一、准备开发环境与权限
在接入审批流前,必须确保开发所需的基础工具链和权限已就位。缺少任一环节将导致API调用失败或回调无法触发。
1、下载并安装钉钉小程序IDE,用于本地调试与预览。
2、安装IntelliJ IDEA开发工具,作为后端Java服务的主要编码环境。
3、配置Java运行环境(JDK 8或以上版本),并验证java -version命令输出正常。
4、安装Maven构建工具,确保pom.xml中已引入钉钉SDK依赖:com.dingtalk.open:dingtalk-sdk-java:1.0.176。
5、安装Git客户端,并克隆企业内部审批服务代码仓库。
6、登录钉钉开发者后台,在“权限管理”中申请以下两项关键权限:审批流数据管理权限与成员信息读权限。
二、创建应用并配置安全参数
审批流的网络通信受严格白名单控制,所有服务端请求必须来自已登记的出口IP,且回调地址须提前备案。
1、进入钉钉开放平台控制台,点击“应用管理”→“创建应用”,选择“企业内部应用”类型。
2、在“开发配置”页填写服务器出口IP列表,格式为“192.168.1.100,192.168.1.101”,支持通配符如“192.168.*.*”。
3、设置重定向URL(即免登授权码跳转地址),示例:https://api.yourdomain.com/auth/callback。
4、在“HTTP可信域名”栏填写后端服务主域名,多个域名以英文逗号分隔,例如:api.yourdomain.com,static.yourdomain.com。
5、保存配置后,记录应用凭证:AppKey与AppSecret,后续调用服务端API必需使用。
三、创建审批模板并获取processCode
审批模板是工作流的结构基础,其唯一标识processCode将在服务端发起审批实例时作为必填参数传入。
1、使用企业管理员账号登录钉钉管理后台,路径为:工作台 → 应用管理 → OA审批 → 进入。
2、点击右上角“新建流程”,选择“空白模板”或基于“出差申请”等标准模板二次编辑。
3、在“基础配置”页填写流程名称、图标、可见范围,并点击“保存”获取系统生成的processCode。
4、进入“表单设计”,从控件库拖入行程明细(明细/表格)、出发时间(日期选择器)、费用总额(数字输入框)等字段。
5、对每个控件设置“字段ID”,例如费用总额字段ID设为“amount”,该ID将用于后续条件分支逻辑判断。
四、配置条件分支与审批节点
条件分支决定了审批任务如何根据表单数据动态路由至不同审批人,是实现智能流转的核心机制。
1、切换至“流程设计”页,点击“+ 添加节点”,选择“条件分支”控件。
2、点击分支节点右侧“编辑规则”,添加第一条规则:“amount
3、点击“+ 添加分支”,新增第二条规则:“amount >= 500 AND amount
4、再添加第三条规则:“amount >= 5000”,审批人指定为“CFO”角色,并勾选“会签”模式。
5、每条分支末端均需连接一个“结束节点”,确保流程有明确出口。
6、全部配置完成后点击“发布新版本”,旧流程实例仍沿用原逻辑,新提交自动启用当前版本。
五、服务端发起审批实例
前端提交表单后,后端需调用钉钉审批OpenAPI创建审批实例,该动作将触发整个工作流执行。
1、构造POST请求至接口:https://oapi.dingtalk.com/topapi/processinstance/create。
2、Header中携带access_token,该token由AppKey/AppSecret调用gettoken接口获取,有效期2小时。
3、Body中传入JSON对象,包含processCode、originatorUserId(发起人钉钉ID)、deptId(部门ID)及formComponentValues数组。
4、formComponentValues中每一项包含“name”(字段ID)与“value”(用户填写值),例如{"name":"amount","value":"6800"}。
5、请求成功返回processInstanceId,可用于后续查询审批状态或操作撤回。











