后台直接使用代码发起钉钉审批

1. 首先文档还是要看的

https://open-doc.dingtalk.com/microapp/serverapi2/cmct1a

image.png

既然他这里的代码可以直接用 那我们直接用就行了,所以我们的目的很明确,把这个代码里的参数填写完,然后开始调用

ps: 记得下载 jar 包

在这里我必须要吐槽钉钉的文档和客服,文档写的不够细致。比如发起审批时关于后台代码控件怎么填写,在https://open-doc.dingtalk.com/microapp/serverapi2/cmct1a这一页里面没有具体说明,后来居然在另一页找到了,https://open-doc.dingtalk.com/microapp/serverapi2/ebkwx8

开始放代码

ps: 发起审批的时候需要发起人 id,审批人 id, 部门 id 等都需要自己用代码去钉钉查询,而查询这些你必须有 appKey 和 appsecret(这是两个码),要找到这个码就必须要有钉钉的管理员账号才能去后台找到这个码。上述的这些流程跟着文档都可以找到,这里就不仔细贴了。

比如:查询 userid 需要查询通讯录

1. 参数列表

accessToken:每次访问之前都要先获取 accessToken 此码 7200 秒之后自动过期,参考完档使用方法获取,这个在代码里也有

approvers:审批人 userid,当此属性不为空时,审批里面只支持四种控件:【单行输入框】、【多行输入框】、【图片】、【明细】,其中【明细】控件里可以添加另外的三种控件

originatorUserId:审批发起人 userid

deptId: 部门 id

ccList: 抄送人编码

ccPosition:抄送时机

processCode: 发起审批自然要指定发起那个审批, 每个审批都有一个唯一的编码,此编码在审批编辑的页面 url 里可以找到
image.png

formComponentValues:这个 list 里面用来装
OapiProcessinstanceCreateRequest.FormComponentValueVo 这个类有三个属性 name value extValue,审批里每一个组件对应一个该对象,比如要给下图的第一个控件赋值,那么你就需要新建一个该对象然后 name=“测试但行输入框” value=‘你要给的值’,反正代码里和表单里的对应关系就这样,具体控件的赋值和限制请参考https://open-doc.dingtalk.com/microapp/serverapi2/ebkwx8,请耐心看下去
image.png
ps: 钉钉的文档是真的混乱 我在写上面的时候发现他一个页面有多个版本
image.png
image.png
下面这个的说明比较完整 https://open-doc.dingtalk.com/microapp/serverapi2/cmct1a
2. 审批回调
PostTest.java

https://open-doc.dingtalk.com/microapp/serverapi2/tvu5f4