4.5 KiB
4.5 KiB
审批提单值来源
目的
本文用于回答一个固定问题:在调用 approval instances create 发起原生审批实例时,每个要填写的值从哪里拿。
阅读顺序固定如下:
lark-approval-initiate.md中的创建请求参数、节点参数和返回结果说明approval approvals get返回的form/node_listlark-approval-instance-form-control-parameters.md- 本文
总原则
lark-approval-initiate.md决定创建请求字段名、字段层级、节点参数结构。approvals.get.form决定控件id、type、选项值范围、子控件结构。approvals.get.node_list决定节点 key、是否必须补审批人、是否允许多人。lark-approval-instance-form-control-parameters.md决定各控件value的最终结构。- 除非本文明确允许,否则不要猜值来源,不要把展示文案直接当成可提交值。
默认来源
- 审批定义、
approval_code、is_external、create_link等基础信息,默认从approval approvals search获取。 - 控件
id、type、选项值、子控件结构,默认从approval approvals get.form获取。 - 节点 key、
need_approver、approver_chosen_multi等节点信息,默认从approval approvals get.node_list获取。 - 本文只补充 这些默认来源之外 的取值规则,以及当前必须由用户直接提供的值。
控件值来源规则
联系人 contact
- 只推荐写
open_ids。 - 不再推荐双写
value(user_id)+open_ids,避免复杂度继续上升。 - 如果用户给的是姓名、邮箱或账号,先用
lark-contact解析成open_id。
部门 department
- 最优先:用户直接提供
open_department_id。 - 若用户说“我的部门”或“张三的部门”,先用
lark-contact查询对应人员信息,再取其所属部门里的open_department_id。 - 如果查到该人员只有一个部门,可直接使用。
- 如果查到多个部门,不自动猜,必须让用户明确选一个,或直接输入
open_department_id。 - 如果仍无法确定,则明确告知当前不支持自动决定部门值。
附件 attachmentV2
- 当前
lark-approval不负责上传文件。 - 用户必须直接提供 file code。
- 如果用户无法提供 file code,应明确告知当前无法仅通过
lark-approval完成该控件提单。
图片 image / imageV2
- 当前
lark-approval不负责上传图片。 - 用户必须直接提供 file code。
- 如果用户无法提供 file code,应明确告知当前无法仅通过
lark-approval完成该控件提单。
文档 document
- 用户可直接提供
token/document_id。 - 如果用户给的是飞书文档链接,应先尝试从链接中提取 token。
- 若链接提取失败,再要求用户手动输入 token。
关联审批 connect
- 用户直接提供目标审批实例的
instance_code。 - 当前不默认做“搜索关联实例再反查 code”的自动流程。
地址 address
- 用户直接提供地理库
id。 - 若用户无法提供该
id,当前不支持自动取值。
特殊控件组
以下控件组的结构仍按 lark-approval-instance-form-control-parameters.md 组装:
leaveGroupV2workGroupoutGroupshiftGroup
补充规则:
- 控件组自身和子控件的
id/type从approval approvals get.form中识别。 - 组内单选/多选或业务枚举值,优先从
approval approvals get.form返回的选项结构中取。 - 不要把控件组整体当成普通字符串或扁平对象提交。
不支持自动准备的值
以下值当前不建议由 lark-approval 自动准备:
- 文件上传后的 file code
- 图片上传后的 file code
- 地址控件的地理库
id - 无法唯一确定的部门
open_department_id
遇到这类值时,应明确告诉用户需要提供什么,而不是继续猜测。
最小决策表
| 场景 | 处理 |
|---|---|
| 用户说“找张三当审批人” | 用 lark-contact 解析张三,取 open_id |
| 用户说“我的部门” | 先查当前用户部门;若多个部门,让用户选 |
| 用户给了文档链接 | 先尝试提取 token |
| 用户要填图片/附件 | 要求直接提供 file code |
| 用户要填关联审批 | 要求直接提供 instance_code |
| 用户要填地址 | 要求直接提供地理库 id |