# approval instances get 获取单个审批实例详情(用户级只读操作)。适合在执行 approve / reject / transfer / rollback / cancel / cc / remind 之前,先查看审批表单、当前节点、任务列表、审批动态和整体状态。 需要的 scopes: ["approval:instance:read"] ## 命令 ```bash # 按实例 Code 查询详情 lark-cli approval instances get --params '{"instance_code":""}' --as user # 表格格式输出,便于快速浏览顶层字段 lark-cli approval instances get --params '{"instance_code":""}' --format table --as user # 预览 API 调用,不执行 lark-cli approval instances get --params '{"instance_code":""}' --as user --dry-run ``` ## 参数 | 参数 | 必填 | 说明 | |------|------|------| | `--params '{...}'` | 是 | 查询参数,使用 JSON 传入 | | `instance_code` | 是 | 审批实例 Code | | `locale` | 否 | 返回语言,例如 `zh-CN`、`en-US`、`ja-JP` | | `user_id_type` | 否 | 用户 ID 类型:`user_id`、`union_id`、`open_id` | | `--as user` | 否 | 建议显式指定用户身份;审批实例详情查询通常应使用用户身份 | | `--format` | 否 | 输出格式:`json`(默认)、`ndjson`、`table`、`csv` | | `--dry-run` | 否 | 预览 API 调用,不执行 | ## 常见输入来源 如果你已经有实例 Code,可直接查询: ```bash lark-cli approval instances get --params '{"instance_code":""}' --as user ``` 如果你还没有实例 Code,可先从以下命令获取: ```bash # 查询我发起的审批实例 lark-cli approval instances initiated --params '{"page_size":20}' --as user # 或从任务列表里拿到关联实例 Code lark-cli approval tasks query --params '{"topic":"1"}' --as user ``` ## 输出重点字段 返回结果中常见字段: | 字段 | 说明 | |------|------| | `instance_code` | 审批实例 Code | | `serial_number` | 审批单编号 | | `definition_code` | 审批定义 Code | | `definition_name` | 审批名称 | | `user_id` | 发起审批的用户 ID | | `department_id` | 发起人所在部门 ID | | `status` | 审批实例状态,见下方“status 枚举” | | `reverted` | 单据是否已被撤销 | | `start_time` | 审批创建时间 | | `end_time` | 审批完成时间,未完成时通常为 `0` | | `form` | 表单数据,JSON 字符串 | | `current_nodes` | 当前审批节点列表 | | `tasks` | 审批任务列表 | | `operation_records` | 审批动态,例如通过、拒绝、转交、加签、回退、撤回、抄送 | | `comments` | 评论列表 | ## status 枚举 | 值 | 含义 | |----|------| | `PENDING` | 审批中 | | `APPROVED` | 已通过 | | `REJECTED` | 已拒绝 | | `CANCELED` | 已撤回 | | `DELETED` | 已删除 | ## current_nodes 重点字段 `current_nodes` 常用于判断审批流当前卡在哪一层: | 字段 | 说明 | |------|------------------------------------------| | `current_nodes[].node_id` | 当前审批节点 ID | | `current_nodes[].node_name` | 当前审批节点名称 | | `current_nodes[].type` | 审批方式:`AND` 会签、`OR` 或签、`SEQUENTIAL` 依次审批等 | | `current_nodes[].approvers[].task_id` | 当前审批人关联任务 ID | | `current_nodes[].approvers[].user_id` | 当前审批人用户 ID | ## tasks 重点字段 `tasks` 常用于把实例和具体审批任务关联起来: | 字段 | 说明 | |------|------| | `tasks[].id` | 审批任务 ID | | `tasks[].node_id` | 任务所属节点 ID | | `tasks[].node_name` | 任务所属节点名称 | | `tasks[].user_id` | 审批人用户 ID | | `tasks[].status` | 任务状态:`PENDING`、`APPROVED`、`REJECTED`、`TRANSFERRED`、`DONE` | | `tasks[].start_time` | 任务开始时间 | | `tasks[].end_time` | 任务完成时间 | ## operation_records 重点字段 `operation_records` 常用于审计审批过程: | 字段 | 说明 | |------|------| | `operation_records[].type` | 事件类型,如 `PASS`、`REJECT`、`TRANSFER`、`ROLLBACK`、`CANCEL`、`CC` | | `operation_records[].create_time` | 事件发生时间 | | `operation_records[].user_id` | 触发该事件的用户 ID | | `operation_records[].task_id` | 关联任务 ID | | `operation_records[].node_id` | 关联节点 ID | | `operation_records[].comment` | 理由 / 备注 | | `operation_records[].cc_user_ids` | 被抄送人列表(抄送事件时) | ## 使用建议 - **这是最适合做“详情确认”的只读命令**:当你已经拿到 `instance_code`,需要确认表单、当前节点、任务状态、审批动态时,优先使用它。 - **在执行写操作前先看详情**:例如做 `tasks rollback` 前确认可退回节点,做 `instances cancel` 前确认实例状态,做 `tasks remind` 前确认当前任务是否仍待处理。 - **`form` 是 JSON 字符串**:调用方通常还需要再解析一层,才能拿到表单字段值。 - **`current_nodes` 和 `tasks` 可以联动看**:前者看“当前卡在哪个节点”,后者看“每个任务目前由谁处理、状态如何”。 - **`operation_records` 适合做时间线回溯**:例如排查谁转交过、谁加签过、什么时候撤回或抄送过。 - **优先显式传 `locale` 和 `user_id_type`**:这样 agent 更容易理解返回文本和 ID 语义,减少歧义。 ## 输出与后续操作 读取详情后,常见下一步: ```bash # 同意审批任务 lark-cli approval tasks approve --data '{"instance_code":"","task_id":""}' --as user --yes # 撤回审批实例 lark-cli approval instances cancel --data '{"instance_code":""}' --as user --yes # 催办审批任务 lark-cli approval tasks remind --data '{"instance_code":"","task_ids":[""]}' --as user --yes ```