跳转到主要内容
OpenYida 提供统一的数据管理 CLI,支持对表单数据、流程实例、任务、子表单等进行完整的操作。

功能概述

表单数据

查询、创建、更新表单实例数据。

流程数据

管理流程实例、审批记录、流程状态。

任务管理

查询待办、已办、我提交的、抄送我的任务。

子表单

独立查询和管理子表单数据。

命令格式

openyida data <action> <resource> [args]
  • action: query | get | create | update | execute
  • resource: form | process | task | subform | operation-records

宜搭字段 ID 由平台随机生成(如 textField_eftt1aa5m),无法猜测或从字段名称推断。创建或更新任何记录前,必须先运行 openyida get-schema <appType> <formUuid> 获取真实字段 ID,并将字段名→ID 映射记录到 .cache/<项目名>-schema.json。写入数据后,查询至少一条记录(--size 1)确认 formData 中字段有实际值——若值为空则说明字段 ID 有误。

表单数据管理

查询表单数据

# 基本查询
openyida data query form <appType> <formUuid>

# 分页查询
openyida data query form <appType> <formUuid> --page 1 --size 50

# 条件查询
openyida data query form <appType> <formUuid> \
  --search-json '[{"key":"field_xxx","value":"value","type":"TEXT","operator":"eq","componentName":"TextField"}]'

# 查询指定实例
openyida data query form <appType> <formUuid> --inst-id <formInstId>

# 仅返回实例 ID
openyida data query form <appType> <formUuid> --ids-only

# 按创建人和日期范围过滤
openyida data query form <appType> <formUuid> \
  --originator-id <userId> \
  --create-from "2026-01-01" --create-to "2026-12-31"

可选参数

参数说明
--page N页码(默认 1
--size N每页条数(默认 20,最大 100
--search-json JSON查询条件(必须是合法 JSON,详见查询条件格式
--inst-id ID按实例 ID 查询单条记录
--ids-only仅返回实例 ID
--originator-id ID按创建人过滤
--create-from DATE过滤指定日期之后创建的记录
--create-to DATE过滤指定日期之前创建的记录
--modified-from DATE过滤指定日期之后修改的记录
--modified-to DATE过滤指定日期之前修改的记录
--dynamic-order FIELD按字段排序

获取单条数据

openyida data get form <appType> --inst-id <formInstId>

创建数据

openyida data create form <appType> <formUuid> \
  --data-json '{"field_xxx": "value", "field_yyy": 123}' \
  --dept-id <departmentId>

更新数据

openyida data update form <appType> \
  --inst-id <formInstId> \
  --data-json '{"field_xxx": "new value"}' \
  --use-latest-version y

流程数据管理

查询流程实例

# 查询流程列表
openyida data query process <appType> <formUuid> \
  --page 1 --size 20 \
  --instance-status RUNNING

# 状态可选:RUNNING(进行中)、COMPLETED(已完成)、TERMINATED(已终止)

# 仅返回实例 ID
openyida data query process <appType> <formUuid> --ids-only

# 按任务和审批结果过滤
openyida data query process <appType> <formUuid> \
  --task-id <taskId> \
  --approved-result AGREE

可选参数

参数说明
--page N页码(默认 1
--size N每页条数(默认 10,最大 100
--search-json JSON查询条件(必须是合法 JSON)
--instance-status STATUS按状态过滤:RUNNINGCOMPLETEDTERMINATED
--task-id ID按任务 ID 过滤
--approved-result RESULT按审批结果过滤:AGREEDISAGREE
--ids-only仅返回实例 ID
--originator-id ID按创建人过滤
--create-from DATE过滤指定日期之后创建的实例
--create-to DATE过滤指定日期之前创建的实例
--modified-from DATE过滤指定日期之后修改的实例
--modified-to DATE过滤指定日期之前修改的实例

获取流程详情

openyida data get process <appType> --process-inst-id <processInstanceId>

创建流程实例

openyida data create process <appType> <formUuid> \
  --process-code <processCode> \
  --data-json '{"field_xxx": "value"}' \
  --dept-id <departmentId>

更新流程实例

openyida data update process <appType> \
  --process-inst-id <processInstanceId> \
  --data-json '{"field_xxx": "updated value"}'

查询审批记录

openyida data query operation-records <appType> \
  --process-inst-id <processInstanceId>

任务管理

如果你需要查询跨应用的全局任务中心数据(无需指定 appType),请使用 openyida task-center 命令。详见 CLI 参考

查询任务列表

# 待办任务
openyida data query tasks <appType> --type todo

# 已办任务
openyida data query tasks <appType> --type done

# 我提交的
openyida data query tasks <appType> --type submitted

# 抄送我的
openyida data query tasks <appType> --type cc

# 带分页和关键词过滤
openyida data query tasks <appType> --type todo --page 1 --size 20 --keyword "紧急"

可选参数

参数说明
--type TYPE必填。 任务类型:tododonesubmittedcc
--page N页码(默认 1
--size N每页条数(默认 10,最大 100
--keyword TEXT搜索关键词
--process-codes JSON按流程编码过滤(JSON 数组)
--instance-status STATUS按流程实例状态过滤

执行任务

openyida data execute task <appType> \
  --task-id <taskId> \
  --process-inst-id <processInstanceId> \
  --out-result AGREE \
  --remark "同意,请继续推进" \
  --data-json '{"comment": "审批通过"}'
参数说明
--task-id ID必填。 任务 ID
--process-inst-id ID必填。 流程实例 ID
--out-result RESULT必填。 AGREE(同意)或 DISAGREE(不同意)
--remark TEXT必填。 审批意见
--data-json JSON审批时同步更新的表单数据
--no-execute-expressions y任务完成后跳过表达式执行

子表单管理

查询子表单数据

openyida data query subform <appType> <formUuid> \
  --inst-id <formInstId> \
  --table-field-id <fieldId> \
  --page 1 --size 20

高级用法

查询条件格式

--search-json 参数接受数组格式的查询条件。该值必须是合法 JSON——CLI 会在发送请求前验证输入,格式错误的 JSON 会被拒绝并报错。 每个条件是一个包含以下字段的对象:
字段说明
key字段 ID(如 field_xxx
value匹配值
type数据类型:TEXTNUMBERDATE
operator操作符:eqlikegtgteltlteinrange
componentName组件类型:TextFieldNumberFieldDateField
示例:
openyida data query form <appType> <formUuid> \
  --search-json '[
    {"key":"field_status","value":"approved","type":"TEXT","operator":"eq","componentName":"TextField"},
    {"key":"field_amount","value":"1000","type":"NUMBER","operator":"gte","componentName":"NumberField"}
  ]'

批量操作脚本示例

#!/bin/bash
# 批量导出表单数据

APP_TYPE="APP_XXXXXXXX"
FORM_UUID="FORM-XXXX-XXXX"
PAGE=1

while true; do
  RESULT=$(openyida data query form $APP_TYPE $FORM_UUID --page $PAGE --size 100)
  
  # 处理当前页数据
  echo "$RESULT" >> ./export.json
  
  # 检查是否还有下一页
  HAS_MORE=$(echo "$RESULT" | jq '.hasMore')
  if [ "$HAS_MORE" != "true" ]; then
    break
  fi
  
  PAGE=$((PAGE + 1))
done

注意事项

数据操作具有永久性,更新操作不可撤销。建议在执行批量操作前先进行小规模测试。
分页查询默认每页 20 条,最大支持 100 条。大量数据导出建议使用循环分页获取。