服务端 API/审批/常见问题
# Lark审批常见问题

使用「Lark审批」相关API时遇到的常见问题

## 1. 审批定义相关问题
**Q：三方服务页面请求头不要带上x-frame-options**

如果带上x-frame-options导致后面请求始终前面的缓存就一直打不开，同时可能出现删掉了x-frame-options，客户端不主动清除一次缓存以及服务端未生成新版本资源就始终无法打开的情况

**Q：查询审批定义中node_list怎么使用？**

主要用于对审批节点设置了发起人自选的情况（非发起人自选的节点不需要关心，会自动流转）need_approver表示是否需要发起人自选，如果需要发起人自选，则在发起实例的时候需要指定节点对应的审批人，节点ID可以使用系统自动生成的node_id或者自定义ID custom_node_id

**Q：关联外部选项说明文档中的 token 怎么写？**

需要自定义，建议生成唯一 ID

**Q：如何设置控件自定义** **ID** **？**

控件ID，可以使用自定义ID custom_id的值

**Q：审批表单控件的单选使用外部数据显示超时？**

大概4s左右才能响应数据

**Q：能不能用** **api** **修改审批定义？**

不支持，只能在后台修改

**Q：审批表单设计上，有没有可以点击链接的富文本的文本框？**

没有

**Q：外部数据没办法加入审批流的分支条件吗？**

不是所有的字段都可以作为条件，目前可以作为条件的字段：
发起人；
部分控件：单选、多选、数字、金额、计算公式、日期区间、明细汇总；
请假控件组中的假期类型、请假时长；
加班控件组中的加班类型、加班时长；
外出控件组中的外出类型、外出时长；
出差控件组中的出发地、目的地、交通工具、出差时长

**Q：“获取单个审批详情”接口返回的部门能有部门路径吗？**

没有

## 2. 审批实例相关问题

**Q：创建实例表单联系人时报错**

接口目前暂不支持表单联系人控件，长期有支持计划。（预计五月份）

**Q：“撤销操作”，回调的数据里面状态是“REVERTED”，为什么调接口获取审批实例详情里面的状态是“CANCELED”？**

接口不会返回“REVERTED”，但是事件会有区分，如果审批未审完，就取消则是“CANCELED”。审批结束，此时取消，返回的是“REVERTED”。
**Q：创建审批实例接口 department_id 字段能填根部门吗？**

不能，不支持填写根部门

**Q：单个实例详情里面task_list这个字段是会返回全部审批任务，还是只返回当前审批人的审批任务？**

返回全部审批任务

**Q：可以通过** **OpenAPI** **的方式实现审批流中节点的回退操作吗？能够审批回退重新发起新的审批？**

不支持

**Q：“创建审批实例”接口失败时相同的请求参数在1秒内调用两次，会不会产生两个审批流？**

不会，只会更新

**Q：Lark审批中，可以在人员中选择多人，那接口中，可以取到多人么？**

可以通过“获取单个审批实例详情”接口获取

**Q：获取审批结果接口，有4种类型，请假，外出，加班，出差，但是请假类型返回的interval没有值**

interval是自己申请审批的时候设置的值

**Q：”创建审批实例“接口的form要** **转义** **吗？**

需要

**Q：审批中的审批单，是不是只有发起人可以撤回？其他人没有撤回权限，是吗？**

是

**Q：创建审批时** **uuid** **一样，不管创建几次都是同一个审批实例？**

传相同的uuid会报错

**Q：“创建审批实例”的抄送人需要审批吗？**

不需要，只可以看到

**Q：instance_code 订阅审批流的这个字段是唯一的吗？**

是的

**Q：创建Lark审批的时候，外部关联的单选字段在Lark卡片里面没有显示**

由于用户侧发起请求的时候外部数据源返回接口报错，所以获取选项失败

**Q：审批事件监听的** **uuid** **，是在创建审批实例传入的uuid吗？**

事件的 uuid 是自动生成的，标识事件的唯一性，和创建的uuid没关系

**Q：审批任务被驳回后，重新提交，审批编号是会变了？**

相当于重新提交了一个新的，只是内容和之前的一样

## 3. 三方审批相关问题

**Q：使用三方审批同步审批单，但是任务没有同步/ 三方审批同意了，但是还在待办列表里？**

这种问题一般两种情况：
1. 确认下最新同步的日志信息，是否携带最新状态，可能三方系统中操作了审批，但是任务没有同步给Lark审批。
2. 使用了update模式进行同步（就是同 [同步三方审批实例](https://open.larksuite.com/document/uAjLw4CM/ukTMukTMukTM/reference/approval-v4/external_instance/create) 的参数 update_mode="UPDATE"），不仅要确保最外层的 update_time 大于上次同步的 update_time，还要确保 task_list 中和 cc_list 中的 update_time 大于上次同步的 update_time，如果外层的 update_time 小于上一次更新的，那么整个数据不更新，如果是 task_list 内的 update_time小于上一次更新时间，则只是对应的任务不更新。update_mode 如果是 "REPLACE"，不比较 update_time，会将整个请求的数据置为审批系统中的最新数据。

备注：很多用户对于三方审批的接入不是很清楚，需要一个清晰的流程图或者说明文档，大多数用户不愿意把接入文档看一遍或者忽略了接入文档，这种需要一个引导或者接入的说明简单明了

**Q：三方审接口同步成功，新增任务没有出现在审批人待办列表？**
1. 新增任务没有出现在审批人待办列表，先确认下用户ID是否正确，如果用户ID传错了，则不会出现在期望的用户待办列表。
2. 确认租户Token信息是否与用户匹配，即多租户场景，用户是否存在该租户。

**Q：三方审接口同步成功，待办列表任务删不掉或者删除任务还存在审批代办列表？**
1. 可能是同步到审批的数据在业务方系统被删除，但是同步失败或者信息丢失，可以查询用户的 [待办任务列表](https://open.larksuite.com/document/uAjLw4CM/ukTMukTMukTM/reference/approval-v4/task/query) 或者 [查询任务列表](https://open.larksuite.com/document/uAjLw4CM/ukTMukTMukTM/reference/approval-v4/task/search)，获取到审批实例的信息后，调用 [同步三方审批实例](https://open.larksuite.com/document/uAjLw4CM/ukTMukTMukTM/reference/approval-v4/external_instance/create) 的接口删除。
2. update 模式下，update_time 要大于上一次同步的时间，不然会被忽略掉，两次 task 的 update_time 一样也不会更新数据.

**Q：审批任务同步了，但是没有同意拒绝按钮**

task需要同步action_config字段，用来设置快捷审批操作

**Q：三方审批无法及时同步至待办状态**

update模式下，update_time要大于上一次同步的时间，不然会被忽略掉，两次task的update_time一样会被过滤

**Q：三方审批同步接口 必填字段过多的问题，有没有一个简单方式 只更新审批状态？**

暂不支持

## 4. 审批 Bot 相关问题

**Q：发送 Bot 成功了，但是用户并没有收到？**
可能是发送 Bot 请求参数中的uuid重复了，修改后再尝试。

