# Business Action Automation Visual Config ## 背景 对象设计器原先把“动作配置”做成独立入口,并直接暴露 `START_FLOW`、`DOMAIN_ACTION`、`QUANTITY`、`FOREACH` 等底层动作 DSL。普通业务用户无法理解,也和已有“关系与级联”“单据流程”“自定义按钮”“流程设计器节点审批动作”边界混淆。 ## 目标 将对象设计中的明细关系、选择器、字段映射和审批后关系处理统一收敛到“关系与级联”: - 不向普通用户暴露 `START_FLOW`、`DOMAIN_ACTION`、`QUANTITY` 等内部技术类型。 - 明确配置边界: - 发起审批、流程绑定、状态字段归“单据流程”。 - 同意、驳回、退回、会签等审批办理动作归真实流程设计器节点配置。 - 自定义按钮只作为入口和可见性配置,不承担底层动作编排。 - 明细关系、子表选择器、字段回填和审批通过后的关系处理归“关系与级联”。 - 使用“关系与级联”的可视化配置生成现有 `designerOptions.actions[].actionConfig`,兼容既有后端执行 DSL。 - 字段映射从对象主表字段、子表字段和循环上下文动态生成,不写死采购、物料或库存字段。 - 明细关系、子表字段和选择器回填配置以“关系与级联”为唯一来源;普通用户不再进入第二个“自动化动作”配置页重复维护子表路径、循环变量或字段元数据。 ## 非目标 - 不新增第二套审批节点配置 UI。 - 不改变 Flowable BPMN 节点权限、审批人、驳回策略的配置归属。 - 不修改后端动作执行 DSL 协议。 - 不把采购单字段写死进平台前端或后端代码。 ## 用户体验要求 ### 普通模式 “关系与级联”应按业务概念展示: - 左侧步骤:基础信息、匹配与回显、新增/编辑内嵌、子表选择器、字段映射、审批后处理、字段联动。 - 右侧卡片按步骤分区展示,避免把所有配置堆在一个长表单里。 - 审批后处理必须嵌在当前关系内,用户只选择主表字段和明细字段,不需要理解循环、集合路径或动作步骤。 - 字段用途使用通用中文:归属字段(主表)、对象字段(明细)、备用对象字段(明细)、数量字段(明细)。选项来自对象设计字段,不写死采购、物料、仓库等业务字段。 - 普通模式不能展示 `record.children.*`、`item.xxx`、`itemAlias`、`indexAlias` 等内部表达式。历史配置无法识别时,显示“未识别字段/关系,请在关系与级联中维护”的中文提示。 ### 高级模式 保留 JSON 高级配置作为开发者兜底,但必须折叠隐藏,不能作为主入口。 ## 验收标准 - 普通对象设计器左侧不再把后端动作 DSL 作为独立一级入口展示;审批后关系处理在“关系与级联”内配置,代码应用可保留“业务处理”入口。 - 普通配置界面不出现 `START_FLOW`、`DOMAIN_ACTION`、`QUANTITY`、`FOREACH` 等技术值。 - 采购入库动作能被识别为: - 触发场景:流程通过后 - 处理明细:采购明细 - 业务动作:增加数量 - 字段映射:归属字段、对象字段、数量字段、来源明细 - 用户能通过下拉选择字段路径完成 `itemCodeFallbackFields` 这类兜底字段配置。 - 用户配置入库、出库等自动化时只在“关系与级联”维护明细关系、选择器、字段映射和审批后字段用途;不需要在两个地方重复配置子表关系。 - 保存后仍写回现有 `designerOptions.actions`,后端执行逻辑无协议变化。 ## 风险 - 旧动作 DSL 结构可能存在多种历史写法,前端解析必须宽容。 - 过度抽象会让用户仍看不懂,因此首期只覆盖低代码闭环高频动作:流程结果回调、遍历明细、数量台账、字段映射。