webhook节点推送说明
说明
通过该接口,可以将每刻审批单的全数据推送至外部系统,外部系统接收到审批单数据后,可以执行您在该节点需要执行的操作,例如可唤起OA流程实例,发起对应的OA审批,或者在您的系统中保存单据,保存财务信息等。
步骤说明
- 首先我们需要在每刻报销->设置->单据与流程->选择某一流程->设置webhook节点->
填写接口地址
- 推送模式,需要在该webhook节点根据实际业务做选择,效果说明可点击外部系统推送说明
- 在设定好接口地址后可以开始对webhook接口推送数据的接入工作
开发方式可以使用通过单据获取webhook的formData数据接口,也可以直接在本地debug进行
4.
由于不同的自定义表单会有不同的数据列,所以会导致每刻系统推出去的数据相关key也不一致,所以相关开发工作需要针对各个自定义表单进行,每个单据类型都会有其固定key的字段具体可以参考表单formData格式说明
。
5.
首先在表单编辑器中打开开发者模式,然后选择某一自定义控件,根据右侧出现的开发者选项内容中的业务编码去填写自己所需要的key值(保证在表单内唯一),这样webhook推送数据的时候就会按照用户设置的业务编码作为字段key值推送出去。注:新增字段在未保存前是没有样例数据的。样例数据是该字段在webhook推送出去时所模拟的数据结构,方便用户开发。
WebHook接口说明
请求方式
POST
请求参数
参数说明
参数名称 |
参数类型 |
是否必须 |
参数说明 |
entCode |
String |
是 |
每刻企业code |
processInstanceId |
String |
是 |
每刻流程实例Id |
formDataCode |
String |
是 |
您的单据内码 |
formCode |
String |
是 |
您的单据号 |
formType |
String |
是 |
REIMBURSE表示报销单, PRECONSUME表示申请单,LOAN借款单,REPAYMENT还款单,CONTRACT合同 |
tasks |
List<Task> |
是 |
具体任务信息 |
taskId |
String |
是 |
每刻流程节点Id(对应更新接口的processTaskId) |
formData |
List<FormData> |
是 |
表单信息,详情需要查看文档末尾的每刻推送的formData字段格式 |
viewLinks |
List<ViewLink> |
是 |
单据页面链接(仅轻表单类型会返回) |
logs |
List<Log> |
是 |
流程日志 |
Task类型字段说明
参数名称 |
参数类型 |
是否必填 |
参数说明 |
procInstId |
String |
否 |
流程实例id |
taskId |
String |
否 |
流程任务id |
state |
String |
否 |
流程节点状态,自己定义即可 |
operators |
String |
自由节点非必填 |
节点人员信息 |
taskName |
String |
是 |
节点名称 |
freeNode |
String |
是 |
自由节点标记 |
skip |
boolean |
否 |
是否自动通过标记位 |
category |
String |
否 |
节点分类:审批、审核、支付之类的 |
countersign |
String |
否 |
会签节点标记 |
ViewLink 类型字段说明
参数名称 |
参数类型 |
是否必填 |
参数说明 |
appKey |
String |
是 |
应用类型,COMMON表示不同客户端公用 |
url |
String |
是 |
链接,get请求 |
Log 类型字段说明
参数名称 |
参数类型 |
是否必填 |
参数说明 |
log |
String |
是 |
日志的文本信息 |
comment |
String |
是 |
日志操作者的备注文本信息 |
operatorName |
boolean |
否 |
日志操作者的名称 |
processNodeSubType |
String |
否 |
节点分类:审批、审核、支付之类的 |
taskName |
String |
否 |
任务名称 |
optTime |
long |
否 |
日志记录时间 |
参数示例
{
"entCode": "xxxxxxxxx",
"processInstanceId": "xxxxxxxx",
"formDataCode": "xxxxxxxx",
"formCode": "xxxxxxxx",
"formType": "xxxxxx",
"taskId": "95ec969a-276e-11ee-b919-0a580af4735b",
"tasks": [
{
"procInstId": "id",
"taskId": "id",
"state": "TEST",
"operators": [
{
"code": "zhangsan01",
"name": "张三",
"userEmployeeId": "employee_id",
"description": "部门名称",
"sourceAvatar": "https://static.dingtalk.com/media/lADPDgQ9qTGE0sPNA2LNA2I_866_866.jpg"
}
],
"taskName": "审批或节点",
"freeNode": false,
"skip": false,
"category": "审批",
"countersign": false
}
],
"formData": {
xxxxx
},
"viewLinks": [
{
"appKey": "COMMON",
"url": "https://dt-uat2.maycur.com/h5/?platform=countrygarden&corpId=EC1803221E23UHXD&webHashRoute=/home/lite/view/LIT19092423N9OC1S/null/MINE&H5HashRoute=/liteView/view/LIT19092423N9OC1S"
}
],
"logs": [
{
"log": "[xxx]审批通过",
"comment": "备注",
"operatorName": [
"aa",
"bb"
],
"processNodeSubType": "审批节点",
"taskName": "领导审批",
"optTime": 123141231
}
]
}
响应参数
参数说明
参数名称 |
参数类型 |
是否必填 |
参数说明 |
formCode |
String |
是 |
您的单据code,如果响应中存在该参数,我们会更新每刻单据上的code |
externalProcInstId |
String |
否 |
您的单据流程Id,我们会更新每刻单据上的code,为空会覆盖 |
参数示例
{
"success": true,
"errorMsg": "xxxxx",
"data": {
"formCode": "",
"externalProcInstId": ""
}
}