通过holdedcli安全操作Holded ERP以读取和更新数据。用于用户请求读取、搜索、创建、更新或删除Holded实体时。
使用 holdedcli 读取和修改持有的数据, 并使用安全、 可重复的工作流程是一项面向实际任务的技能,主要用于确认技术先决条件;发现可用带有持有动作列表的行动。
从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;
若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
使用 holdedcli 以安全、可重复的工作流读取和修改 Holded 数据。
holded actions list 发现可用操作。holded actions describe --json 检查所选操作的详细信息。--json 参数,并汇总返回的 ID、HTTP 状态码及已应用的变更。holded helpholded auth status 或环境变量 HOLDED_API_KEY--json)POST、PUT、PATCH 或 DELETE 操作均视为写操作。GET 操作(如存在,也包括 HEAD)均视为读操作。holded actions list,再执行 holded actions describe --json ,以验证该操作支持的路径、查询参数与请求体参数。docType=purchase,并在 JSON 请求体中包含 "isReceipt": true。由于 holdedcli 基于 Holded 官方 API Schema 进行校验(该 Schema 不含 isReceipt 字段),因此必须使用 --skip-validation 标志。ok、go ahead、continue)时直接执行写操作,须先澄清意图。执行任何写操作前,需展示以下信息:
action_id 或 operation_id)。--path、--query 及请求体参数(--body 或 --body-file)。格式如下:
此操作将在 Holded 中修改数据。 Action:( ) Changes: <简要变更摘要> Command: holded actions run ... --json 您是否确认我应精确执行此命令?(请回复“yes”或“confirm”)
仅在收到明确肯定回复后方可执行。
holded actions list --json(可配合 --filter)定位目标操作。holded actions describe --json 验证其支持的路径/查询/请求体参数。holded actions run ... --json 。holded actions describe --json 确认必填/可选参数。docType=purchase 且请求体中包含 "isReceipt": true,并启用 --skip-validation 标志。status_code、影响的 ID、API 响应正文)。holded auth set --api-key "$HOLDED_API_KEY" holded auth status holded ping --json holded actions list --json holded actions list --filter contacts --json holded actions describe invoice.get-contact --json holded actions run invoice.get-contact --path contactId=--json
对于较长的请求体,推荐使用 --body-file:
holded actions run invoice.update-contact --path contactId=--body-file payload.json --json
采购收据规则(采购票据必需):
holded actions describe invoice.create-document --json
holded actions run invoice.create-document
--path docType=purchase
--body '{"isReceipt": true, "date": 1770764400, "contactId": "", "items": [{"name": "Description", "units": 1, "subtotal": 29.4, "tax": 0}]}'
--skip-validation
--json
重要说明:
--skip-validation 标志,因为 holdedcli 默认依据 Holded 官方 API Schema 进行校验,而该 Schema 未定义 isReceipt 字段。subtotal 字段(而非 price),这是 Holded API 实际期望的字段名。时间戳计算示例(Python):
from datetime import datetime, timezone, timedelta # 计算 2026 年 2 月 11 日 00:00(马德里时间)对应的时间戳: dt = datetime(2026, 2, 11, 0, 0, 0, tzinfo=timezone(timedelta(hours=1))) print(int(dt.timestamp())) # 1770764400
⚠️ 创建任何费用单据前,务必核查以下规则:
| 费用类型 | IVA 可抵扣 | 费用可抵扣 | 会计科目 |
|---|---|---|---|
| 餐饮/餐食 | ❌ 否 | ✅ 是(需附合理说明) | 629 |
| 差旅交通 | ❌ 否 | ✅ 是 | 629 |
| 燃油费 | ⚠️ 混合情形 | ✅ 是 | 625/622 |
| 办公用品 | ✅ 是 | ✅ 是 | 600/602 |
| 保险费 | ⚠️ 混合情形 | ✅ 是 | 625 |
创建单据前,务必核实:
需避免的常见错误:餐饮类费用切勿设置 tax: 10 或 tax: 21 —— 除非是具备充分佐证的商务活动,否则餐费 IVA 不可抵扣。
MISSING_API_KEY 错误,请通过 --api-key 参数、HOLDED_API_KEY 环境变量或 holded auth set 命令配置 API 密钥。ACTION_NOT_FOUND 错误,请先运行 holded actions list --json 列出全部操作,并使用 --filter 过滤查找。INVALID_BODY 错误,请在执行前校验 JSON 格式有效性。API_ERROR 错误,请记录 status_code 及相关 API 响应片段并上报。{baseDir}/references/holdedcli-reference.md 获取常用命令与筛选准则。holded actions list --jsonholded actions describe --json 相关专题
热门下载
相关下载
精品课程
共6课时 | 54.7万人学习
共89课时 | 134.1万人学习
共49课时 | 82.6万人学习
最新文章