Skip to main content

dws-report-entry-submit-pitfalls

DWS `report entry submit` 自动化提交模式:contents JSON 格式、contentType/type映射、重复key检查、附件上传流程。

Informações da origem

Repositório
crimsonblazezero/Zero-Tools
Última atividade na origem
3 de agosto de 2026 às 15:27
Idioma detectado do SKILL.md
chinês
Estrelas
0
Forks
0

Opções de instalação

Por padrão, está selecionado o prompt que primeiro revisa a origem. Você pode mudar para um comando direto ou baixar uma cópia local.

Revise os arquivos de origem

Leia o SKILL.md e os arquivos complementares exibidos pelo SkillsMP antes de decidir se vai instalar.

Exibindo SKILL.md

SKILL.md
Instruções da origem · Visualização somente leitura
name
dws-report-entry-submit-pitfalls
description
DWS `report entry submit` 自动化提交模式:contents JSON 格式、contentType/type映射、重复key检查、附件上传流程。
tags
["dws","report","entry-submit","pitfalls"]
# DWS Report Entry Submit — 自动化提交模式 ## 目的 本文件记录通过 `dws report entry submit`(或 CLI wrapper)向钉钉日志模板批量写入内容的正确方法,以及高频坑点。 ## 关键规则 ### 1. `contentType` 必须与 `type` 匹配 | `type` | 含义 | `contentType` | |--------|------|---------------| | `1` | 文本 | `markdown` | | `2` | 数字 | `origin` | | `9` | 附件 | `origin` | **错误示例**: `type: 1, contentType: "origin"` → 被拒绝,报 `business_error` **正确示例**: `type: 1, contentType: "markdown"` **正确示例**: `type: 2, contentType: "origin"` ### 2. `(key, sort)` 必须唯一 一份 `--contents-file` 中的每项,`key` + `sort` 组合不可重复。如果同一个模板字段出现两遍(例如给两个人各写一份同样的字段名),会报错: ``` [INPUT_INVALID_JSON] contents[18].content must be a string ``` 这个错误信息具有误导性——实际原因是模板字段重复,不是内容类型不对。 **对策**: 多人场景请拆分为多个 JSON 文件分别提交,或使用 `--dd-from` / `--to-user-ids` 一次提交一份报告给团队。 ### 3. 所有 `content` 值必须是字符串 即使字段是数字类型(`type=2`),`content` 也必须是字符串。提交前统一转义: ```python item['content'] = str(item['content']) ``` ### 4. 模板 `field_type=16` 需降级映射 模板里有些控件的 `field_type=16`(长文本/表格类),`entry submit` 不直接接受该值,会报错: ``` [INPUT_INVALID_JSON] contents[60].type="16" is invalid; use template get field_type ``` **对策**: 将其映射为 `type=1` + `contentType=markdown` ### 5. 上传附件后再提交 如果模板包含附件字段(`field_sort=56`),需要先通过 `dws drive upload --file-name` 上传,拿到 `fileId`,再填入 `content`: ```bash dws drive upload --file-name "周报.xlsx" --file-path "./周报.xlsx" # 返回: {"fileId": "pYLaezmVNeXkg99DtPP7gp2bWrMqPxX6", ...} # JSON 中添加: # { # "key": "附件", # "sort": "56", # "content": "pYLaezmVNeXkg99DtPP7gp2bWrMqPxX6", # "contentType": "origin", # "type": "9" # } ``` ## 完整提交流程 ```bash # Step 1: 读取模板结构 dws report template detail --name "运营周复盘(周一9:00前提交)" --format json # Step 2: 生成 contents JSON(注意上述 1–4 规则) # Step 3: 如果有附件,先上传获取 fileId dws drive upload --file-name "运营周会数据收集_王祎.xlsx" \ --file-path "C:\Users\...\运营周会数据收集_王祎.xlsx" # Step 4: 验证 JSON python -m json.tool dws_weekly_contents.json | grep -c '"sort"' # 检查非空/无重复 # Step 5: 提交 dws report entry submit \ --template-id <templateId> \ --contents-file "<jsonPath>" \ --yes \ --format json # 加 --verbose 获取更详细的错误定位 ``` ## 错误排查速查 | 错误片段 | 实际原因 | 解法 | |---------|---------|------| | `content must be a string` | (key, sort) 重复 | 确保 JSON 中每项唯一 | | `contentType="text" is invalid for type=2` | contentType 和 type 不匹配 | type=1→markdown, type=2/9→origin | | `type="16" is invalid` | 模板类型不支持 | 映射为 type=1+markdown | | `success=false ... PARAM_ERROR` | 格式校验失败 | 加 `--verbose` 看具体 contents 位置 | | `report entry submit` 返回 `business error` | 可能是上面任一原因 | 先验 (key,sort) 唯一性、再验 type/contentType 映射 |
Ver no GitHub