원클릭으로
yida-integration
宜搭集成&自动化配置。支持创建、查询、开启、关闭集成自动化逻辑流,包括消息通知、数据增删改、条件分支等节点。适用于自动化数据联动和业务触发场景。
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
宜搭集成&自动化配置。支持创建、查询、开启、关闭集成自动化逻辑流,包括消息通知、数据增删改、条件分支等节点。适用于自动化数据联动和业务触发场景。
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
宜搭 AI 应用开发总入口技能。通过有 AI Coding 能力的智能体(悟空/Claude/Open Code 等)+ 宜搭低代码平台,实现一句话生成完整应用。 包含应用创建、表单设计、自定义页面开发、页面发布、登录态管理等完整开发流程。 当用户提到"宜搭"、"yida"、"低代码"、"创建应用"、"创建表单"、"发布页面"、"搭建"、"系统"等关键词时,使用此技能;以下情况不要触发:只是讨论通用前端/后端代码、非宜搭平台产品、或只需要解释概念而不操作宜搭资源。
SLS 日志查询工作台排查技能。用于快速定位和排查宜搭平台的页面请求、业务规则、集成自动化、 流程审批、TraceId、灰度匹配等问题。当用户提到"SLS"、"日志查询"、"排查问题"、"traceId"、 "工单排查"、"灰度匹配"、"业务规则日志"、"集成自动化日志"、"流程日志"等关键词时,使用此技能。
从钉钉闪记、会议记录或需求文档中提取产品需求,生成结构化 PRD。支持文本、图片、链接三种输入方式。适用于将会议产出快速转化为可执行需求文档。
宜搭登录态管理。默认 OAuth token 模式,access_token / refresh_token 持久化到 .cache/auth-token-<env>.json。适用于首次登录、token 失效或切换环境时获取有效 Bearer token。
退出宜搭登录,清空本地 token session。适用于需要切换账号、切换组织或重置 refresh token 时。
为已有流程表单配置审批规则(审批/办理/抄送、条件/并行分支、字段权限、跳转规则、官方组件节点透传)。适用于流程表单已创建、需要调整审批流程时。
| name | yida-integration |
| description | 宜搭集成&自动化配置。支持创建、查询、开启、关闭集成自动化逻辑流,包括消息通知、数据增删改、条件分支等节点。适用于自动化数据联动和业务触发场景。 |
yida-get-schema 获取yida-process-rule.cache/<项目名>-schema.json--spec、连接器输入等 JSON 文件必须先用结构化文件写入工具创建到 <projectRoot>/.cache/openyida/<项目名或任务名>/integration/;不要用 shell heredoc、cat/echo/printf/tee 或重定向写文件,也不要写仓库根目录或系统临时目录| 用户意图 | 触发条件 |
|---|---|
| 表单提交后自动通知 | "自动通知"、"数据变更触发"、"集成&自动化" |
| 数据操作自动化 | "自动新增"、"自动更新"、"逻辑流" |
| 人工审批流程 | → 改用 yida-process-rule |
| 异常场景 | 处理方式 |
|---|---|
| formUuid 不存在 | 不得编造,必须从已有记录或 yida-get-schema 获取 |
| 逻辑流创建失败 | 检查节点配置格式,确认触发表单和目标表单存在 |
| 通知接收人为空 | 必须指定至少一个 userId,不得留空 |
| 变量引用格式错误 | 确认使用 #{fieldId-ComponentType}# 格式 |
| 发布失败 | 检查逻辑流配置完整性,确认登录态有效 |
当 Agent 执行本技能遇到错误时,必须遵循以下默认行为:
| 错误类型 | 默认处理策略 |
|---|---|
| 命令执行失败 | 停止执行,向用户展示错误信息,询问是否重试或调整参数 |
| 参数缺失(appType/formUuid/userId 等) | 主动询问用户补充,不得猜测或编造 |
| 权限不足 / 登录态失效 | 停止执行,提示用户执行 openyida auth status 检查登录态 |
| 节点配置格式错误 | 停止执行,展示错误详情,引导用户参照文档修正配置 |
| 网络超时 | 重试 1 次,仍失败则停止并提示用户检查网络 |
| 未知错误 | 停止执行,完整展示错误信息,建议用户反馈问题 |
本技能用于在宜搭平台创建「集成&自动化」(逻辑流),支持场景:表单事件触发 → 多节点组合处理 → 钉钉工作通知 / 数据操作。
官方示例中心体现的集成范式是“表单收集数据,逻辑流处理副作用”。因此,跨表新增/更新、通知、创建待办、调用钉钉能力等提交后动作,默认用本技能;不要把这些副作用塞进表单字段 JS 或自定义页面按钮,除非用户明确要求一次性人工触发工具页。
#{fieldId-ComponentType}# 格式)openyida integration create <appType> <formUuid> <flowName> [选项]
openyida integration check <appType...> [--json] [--output result.xlsx] [--no-progress]
| 参数 | 必填 | 说明 |
|---|---|---|
appType | 是 | 应用 ID,如 APP_XXXX |
formUuid | 是 | 触发表单 UUID,如 FORM-XXXX |
flowName | 是 | 逻辑流名称 |
| 选项 | 默认值 | 说明 |
|---|---|---|
--process-code <code> | 自动生成 | 已有逻辑流的 processCode(LPROC-xxx 格式),不传则自动生成 |
--receivers <userId,...> | 空(无接收人) | 接收钉钉工作通知的用户 ID,多个用逗号分隔 |
--title <title> | 同 flowName | 通知标题,支持 #{fieldId-ComponentType}# 引用表单字段 |
--content <content> | "表单有新记录提交,请及时查看。" | 通知内容,支持 #{fieldId-ComponentType}# 引用表单字段 |
--events <insert,update> | insert | 触发事件,可选值:insert/update/delete/comment/processFinish/activityTask(也支持别名 create/approval/approvalNode),多个用逗号分隔 |
--approval-actions <agree,...> | 空 | 当 --events processFinish 或 --events activityTask 时必填;可选值:agree/disagree/terminated,多个用逗号分隔 |
--approval-node-ids <nodeId,...> | 空 | 当 --events activityTask 时必填;审批节点 ID,多个用逗号分隔 |
--trigger-condition <fieldId:fieldName:opCode:value[:componentType[:valueType]]> | 空 | 触发器过滤条件,可多次传入;示例:radioField_xxx:采购类型:Equal:材料采购:RadioField:literal |
--trigger-recursively | 关闭 | 允许自动触发,对应设计器里的“允许自动触发” |
--spec <file.json> | 不启用 | 使用结构化编排文件创建复杂自动化,支持 getSelf、dataRetrieve、dataCreate、dataUpdate、route、sendMessage、connector |
--get-self | 关闭 | 自动插入“获取自身”节点:来源表单为当前触发表,过滤条件为 pid 等于 字段 __masterdata_form_inst_id |
--get-self-field <field> | __masterdata_form_inst_id | 覆盖右侧触发事件系统字段;仅在确认环境变量名不同后使用 |
--get-self-query-field <field> | pid | 覆盖左侧查询系统字段;仅在确认平台查询字段名不同后使用 |
--data-form-uuid <formUuid> | 不启用 | 获取单条数据节点的目标表单 UUID(B 表单),传入后在触发节点和通知节点之间插入 GetSingleDataNode |
--data-condition <bFieldId:bFieldName:aFieldId[:componentType[:opCode[:valueType]]]> | 无 | 获取单条数据的过滤条件,可多次传入;格式:B表单字段ID:B表单字段名:A表单字段ID[:组件类型[:操作符[:值类型]]],组件类型默认 TextField,操作符默认 Contain |
--add-data-form-uuid <formUuid> | 不启用 | 新增数据节点的目标表单 UUID,传入后在通知节点之后插入 AddDataNode;目标必须是普通表单(如 formType=receipt),不能是流程表单(formType=process) |
--add-data-assignment <targetFieldId:valueType:value> | 无 | 新增数据的字段赋值,可多次传入;格式:目标字段ID:valueType:value,valueType 可选 processVar(引用触发表单字段)/ literal(固定值)/ column(公式) |
--initiate-approval-form-uuid <formUuid> | 不启用 | 发起审批节点的目标流程表单 UUID;当 B 是流程表单(formType=process)时必须使用它,不要用 --add-data-form-uuid |
--initiate-approval-initiator-user <userId[:name]> | 无 | 发起审批的发起人,推荐格式 01376266634908:张三;只传 userId 时设计器中会显示原始 ID。使用发起审批节点时必填 |
--initiate-approval-assignment <targetFieldId:valueType:value> | 无 | 发起审批时写入目标流程表单字段的赋值规则,可多次传入;格式同 --add-data-assignment |
--connector-mode <mode> | 自动推断 | 连接器类型;HTTP 自定义连接器使用 5,connectorId 以 Http_ 开头时会自动按 5 处理 |
--connection-id <id> | 空 | HTTP 连接器鉴权连接 ID;HTTP 连接器建议传入,否则设计器右侧配置面板可能无法加载连接实例详情 |
--connector-display-name <name> | --connector-name | 连接器展示名称,用于设计器画布和右侧配置面板 |
--publish | 不发布 | 加此标志则保存后立即发布(开启状态),否则仅保存为草稿 |
# 最简用法:表单新增时通知指定用户,仅保存草稿
openyida integration create APP_XXX FORM-XXX "新增记录通知" \
--receivers user123 \
--title "有新记录提交" \
--content "表单有新记录提交,请及时处理。"
# 引用表单字段变量,保存并发布
openyida integration create APP_XXX FORM-XXX "记录变更通知" \
--receivers user123,user456 \
--title "记录变更:#{textField_abc-TextField}#" \
--content "内容:#{textField_abc-TextField}#" \
--events insert,update,delete,comment \
--publish
# 带获取单条数据节点:触发时从 B 表单获取匹配记录,再发送通知
# --data-condition 格式:B表单字段ID:B表单字段名:A表单字段ID[:组件类型[:opCode[:valueType]]]
# 可多次传入 --data-condition 添加多个过滤条件
openyida integration create APP_XXX FORM-A-XXX "跨表通知" \
--receivers user123 \
--title "关联记录变更:#{textField_a1-TextField}#" \
--content "B表单数据已更新,请查看。" \
--events insert,update \
--data-form-uuid FORM-B-XXX \
--data-condition "textField_b1:B表单姓名字段:textField_a1:TextField" \
--publish
# 获取自身:触发后重新读取当前记录,避免流水号、定时值或触发 payload 不是最新值
openyida integration create APP_XXX FORM-A-XXX "获取自身后通知" \
--title "记录已提交" \
--content "已按表单实例ID重新读取当前记录。" \
--events insert,update \
--get-self \
--publish
# 带新增数据节点:触发时将 A 表单数据同步到 B 表单,并发送通知
# --add-data-assignment 格式:目标字段ID:valueType:value
# valueType 可选:processVar(引用触发表单字段)、literal(固定值)、column(公式)
# 可多次传入 --add-data-assignment 添加多个字段赋值
openyida integration create APP_XXX FORM-A-XXX "表单A新增后同步到表单B并通知" \
--receivers user123 \
--title "数据已同步" \
--content "表单A新增了一条记录,已自动同步到表单B。" \
--add-data-form-uuid FORM-B-XXX \
--add-data-assignment "textField_b1:processVar:textField_a1" \
--add-data-assignment "numberField_b2:literal:0" \
--add-data-assignment "textareaField_b3:column:CONCATENATE(#{textField_a1},#{textField_a2})" \
--publish
# A 流程审批完成后,发起 B 流程审批(B 是流程表单时使用)
openyida integration create APP_XXX FORM-A-XXX "A审批完成后发起B流程" \
--events processFinish \
--approval-actions agree \
--get-self \
--initiate-approval-form-uuid FORM-PROCESS-B-XXX \
--initiate-approval-initiator-user "01376266634908:张三" \
--initiate-approval-assignment "textField_b1:processVar:textField_a1" \
--initiate-approval-assignment "textareaField_b2:literal:自动发起" \
--publish
# 调用 HTTP 自定义连接器动作,并保留设计器右侧面板所需的连接器元信息
openyida integration create APP_XXX FORM-A-XXX "调用 HTTP 连接器" \
--connector-id Http_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx \
--action-id publish_month_qs \
--connection-id 28336 \
--connector-display-name "BI 后端" \
--connector-assignment "month:processVar:textField_month" \
--publish
--spec复杂自动化优先使用 --spec,不要手写 saveProcess payload。spec 的节点可以用 id 作为别名,后续用 ${别名}.fieldId 引用上游节点输出,OpenYida 会在保存前替换成真实 node_xxx。
{
"events": ["insert"],
"nodes": [
{ "id": "self", "type": "getSelf" },
{
"id": "branch",
"type": "route",
"branches": [
{
"id": "hasSelf",
"name": "已获取自身",
"conditions": [
{
"fieldId": "${self}.pid",
"fieldName": "表单实例ID",
"opCode": "ExistValue",
"componentType": "TextField"
}
],
"nodes": [
{
"id": "updateSelf",
"type": "dataUpdate",
"source": "self",
"assignments": [
{
"column": "textareaField_result",
"valueType": "literal",
"value": "已处理"
}
]
}
]
},
{
"id": "fallback",
"name": "其他情况",
"default": true,
"nodes": [
{
"id": "notice",
"type": "sendMessage",
"title": "未获取到记录",
"content": "获取自身节点无匹配结果,请检查过滤条件。"
}
]
}
]
}
]
}
openyida integration create APP_XXX FORM-XXX "获取自身后分支更新" \
--spec .cache/openyida/<项目名或任务名>/integration/get-self-update.json \
--publish
--spec文件先用 create_file / Write / file edit tool 创建。上方路径默认从 OpenYida project 工作目录执行;从 workspace 根执行命令时路径加project/前缀。
在通知标题和内容中,可以使用 #{fieldId-ComponentType}# 格式引用触发表单的字段值:
#{textField_mmq4ldti-TextField}#
#{numberField_abc123-NumberField}#
#{selectField_xyz-SelectField}#
fieldId:字段 ID(可通过 yida-get-schema 技能查询)ComponentType:字段组件类型(如 TextField、NumberField、SelectField 等)命令执行成功后,向 stdout 输出 JSON:
{
"success": true,
"published": false,
"processCode": "LPROC-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"flowName": "新增记录通知",
"appType": "APP_XXX",
"formUuid": "FORM-XXX",
"formEventTypes": ["insert"]
}
加 --publish 后 published 为 true。若发布失败,published 为 false 并附带 warning 字段说明原因。
openyida integration check APP_XXX --json
openyida integration check APP_XXX APP_YYY --output project/output/自动化异常.xlsx
openyida integration diagnose --text "连接器异常:接口参数异常"
openyida integration diagnose --file project/tickets/automation-error.txt --json
1/2/3/5/6 五类触发类型。status=2 筛选“执行异常”。integration check 会在 JSON/Excel/文本输出中附带诊断建议;注意“未发现异常日志”不等于业务一定正确,获取数据无匹配或条件未命中可能仍显示成功。integration diagnose 可离线诊断工单文本、OCR 后的截图文本或日志片段,不需要登录态。totalFlows、abnormalFlows[].processCode、自动化名称、触发表单和异常日志列表。--output <file.xlsx> 时导出 Excel,一个应用一个 sheet;无异常的应用会写入“未发现执行异常日志”,检查失败的应用会写入失败原因。--get-self,标准条件为查询侧系统字段 pid 等于触发事件字段 __masterdata_form_inst_id。不要用 formInstId = formInstId、不要用“包含”或非唯一字段做自身匹配。ISEMPTY(),不要只依赖“没有值”选项。openyida login)--process-code,调用 createLogicflow.json 接口新建绑定关系,获取真实 processCodenode_xxx 格式,随机生成)json 参数(节点定义)和 viewJson 参数(画布 Schema)saveProcess 接口(isOnline=false)保存为草稿--publish,再次调用 saveProcess 接口(isOnline=true)发布生效⚠️ 必须先调用
createLogicflow.json新建绑定关系,再调用saveProcess写入内容。直接调用saveProcess无法创建新逻辑流,只能覆盖更新已有逻辑流。
复杂节点 JSON 不再内联在主技能中,避免每次触发都占用大量上下文。需要手写或排查节点结构时,只读取对应参考文档:
快速链路:
trigger -> sendMessage -> finish
trigger -> dataRetrieve -> sendMessage -> finish
trigger -> sendMessage -> dataCreate -> finish
trigger -> dataRetrieve -> route -> condition -> dataUpdate/dataCreate -> finish
读取规则:
integration-node-schemas.md。examples.md。📖 字段赋值 valueType 规律和变量引用格式对照详见 references/integration-node-schemas.md。
📖 saveProcess、listLogicflows、switchLogicflow 接口的完整参数和返回值结构详见 references/integration-node-schemas.md。
openyida login 获取)lib/
└── integration/
└── integration-create.js # integration create 子命令实现
yida-create-app 技能获取 appTypeyida-create-form-page 技能获取 formUuidyida-get-schema 技能获取 fieldId 和 ComponentType,用于构建字段变量引用appType 和 formUuidCONCATENATE、IF、SUM 等)时,参考 yida-formula 技能(独立技能,待完善);目前已支持基础公式:
CONCATENATE(#{fieldId_a},#{fieldId_b})${nodeId}.numberField_xxx+1正向触发:
--receivers 填写的是宜搭/钉钉用户 ID(userId),不是姓名insert(新增)、update(更新)、delete(删除)、comment(评论),也支持别名 createprocessCode 格式为 LPROC- 加 38 位大写字母数字,不传则自动随机生成saveProcess,通过 isOnline 参数区分refresh_token 刷新后重试;refresh 失败时提示重新执行 openyida login