Skip to content

AI 表格 primaryDoc 记录创建后未初始化文档容器,primary-doc-id 返回 no record #400

@Cn-cpjl

Description

@Cn-cpjl

问题描述

使用 DWS 创建/更新钉钉 AI 表格记录时,如果数据表第一列是 primaryDoc,记录本身可以创建成功,但第一列对应的文档容器不会被初始化。随后执行 dws aitable record primary-doc-id 查询该记录的 primaryDoc 文档 ID,会返回 no record

这会阻塞一个常见 agent 自动化场景:

每条分析/报告作为 AI 表格的一行,第一列 primaryDoc 放短标题,同时把完整 Markdown 报告写入该行第一列的文档区域,方便用户在记录详情里直接预览完整正文。

目前 DWS 可以创建行,但无法拿到 dentryUuid / nodeId,因此无法继续用 dws doc update 写入正文。

相关上下文:之前误提到了一个非官方仓库,这里补提到官方仓库:

环境

  • OS: Windows 10
  • Shell: Git Bash / MSYS
  • DWS version tested: v1.0.26 (2ba1dcd, 2026-05-12T08:44:49Z)
  • dws doctor: login/cache OK;当时版本检查提示已有新版本可用
  • Product: aitable + doc

复现步骤

给定一个 AI 表格数据表,其第一列字段类型为 primaryDoc

# 1. 创建记录,并给 primaryDoc 字段写入短标题
dws aitable record create \
  --base-id <BASE_ID> \
  --table-id <TABLE_ID> \
  --records '[{"cells":{"<PRIMARY_DOC_FIELD_ID>":"Test title"}}]' \
  --format json

# 2. 用返回的 recordId 查询该行 primaryDoc 对应的文档 ID
dws aitable record primary-doc-id \
  --base-id <BASE_ID> \
  --table-id <TABLE_ID> \
  --record-id <RECORD_ID> \
  --format json

期望结果

记录创建后,该行第一列 primaryDoc 应该拥有可写入的文档容器,primary-doc-id 应返回类似 dentryUuid / nodeId 的文档标识。随后可以继续执行:

dws doc update \
  --node <DENTRY_UUID> \
  --content-file report.md \
  --mode overwrite \
  --format json

实际结果

记录创建成功,但查询 primaryDoc 文档 ID 返回错误,例如:

{
  "data": {},
  "error": {
    "code": "-1",
    "message": "no record",
    "retryable": true,
    "type": "SYSTEM_ERROR"
  },
  "status": "error",
  "summary": "Failed to query cell doc for record <RECORD_ID> in table <TABLE_ID>"
}

AI 表格 UI 中记录存在,但该记录第一列文档详情区域无法通过 DWS 写入,因为拿不到任何文档 ID。

已验证失败的变体

以下方式都已测试,均不能初始化 primaryDoc 文档容器:

  1. record create 时 primaryDoc 字段写字符串标题。
  2. record create,再 record update 写同一个标题。
  3. record create 时省略 primaryDoc 字段。
  4. record create 中 primaryDoc 写对象,例如 { "markdown": "..." }{ "title": "...", "markdown": "..." }。这类值会被判为非法字段值 / 转成 [object Object]
  5. CSV 导入追加到已有表。
  6. 在同一个 Base 里新建默认带 primaryDoc 第一列的探针表,再创建记录。

当前 workaround

目前唯一稳定可自动化的替代方案是:

  1. dws doc create --markdown ... --format json 创建独立钉钉文档。
  2. 在 AI 表格里新增一个 url 字段,例如 Trace正文文档链接
  3. record update 把独立文档链接回填到该 URL 字段。

这个 workaround 可用,但体验上不等价于第一列 primaryDoc 原生文档区域。

期望支持

希望 DWS / 上游能力支持以下任一方案:

  1. aitable record create/update 在表第一列为 primaryDoc 时,能初始化该行 primaryDoc cell 的文档容器。
  2. 新增显式命令/API,用于按 baseId + tableId + recordId 初始化或创建该记录的 primaryDoc cell document。
  3. 如果 primaryDoc 文档容器初始化需要特殊 API、参数或前端交互,请在 CLI 文档中说明正确流程。

这样可以让 DWS 支持完整自动化的 AI 表格报告库:每一行既有结构化字段,也能在第一列文档区预览完整 Markdown 正文。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions