Action Spec

表达对象类型上自定义动作的定义语义。

资源类型与自然键

资源类型自然键说明
ACTION${objectRef.name}.${name}对象下的动作名称;objectRef.name 标识所属对象,name 在对象内唯一

ActionSpecDTO

字段类型说明
namestring名称,作为对象下动作的自然键
displayNamestring未使用。显示名称占位字段,当前写入服务不消费。
descriptionstring未使用。描述占位字段,当前写入服务不消费。
objectRefResourceRefDTO所属对象引用;投影层仅消费 objectRef.name
typeActionTypeEnum动作类型;仅在创建时消费,更新时不允许修改类型
bindingTypeBindingTypeEnum绑定类型
inputSchemaInputSchemaDTO输入参数模式
visibilityRuleVisibilityRuleDTO可见性规则
executionExecutionDTO执行配置;序列化到 uiMetaJson.execution
sideEffectsList<SideEffectDTO>副作用列表;当前仅消费 UPDATE_FIELD 类型

所属对象引用 (objectRef)

Action 投影层通过 objectRef.name 定位所属 ObjectType。

字段类型说明
kindstring未使用。Action 场景不消费资源类型字段。
namestring所属对象的自然键名称;必填
apiNamestring未使用。Action 场景不消费 API 名称字段,仅使用 name。

输入参数 (inputSchema / InputParameterDTO)

InputSchemaDTO

字段类型说明
parametersList<InputParameterDTO>参数列表

InputParameterDTO

写入服务会遍历 parameters 生成 JSON Schema 的 properties。

字段类型说明
namestring参数名称;作为 JSON Schema 的 properties 键
displayNamestring未使用。参数显示名称占位字段。
dataTypePropertyDataTypeEnum数据类型;映射为 JSON Schema 的 type(枚举名小写)
requiredBoolean未使用。参数是否必填占位字段。
defaultValueObject默认值;写入 JSON Schema 的 default
descriptionstring参数描述;写入 JSON Schema 的 description

可见性规则 (visibilityRule)

VisibilityRuleDTO

字段类型说明
ruleTypeVisibilityRuleTypeEnum规则类型
conditionstring条件表达式;ruleType = CONDITIONAL 时消费
requiredRolesList<string>所需角色列表;ruleType = ROLE_BASED 时消费

执行配置 (execution)

ExecutionDTO

字段类型说明
executionTypeExecutionTypeEnum执行类型
configMap<string, object>执行配置参数;整体透传到运行态

副作用 (sideEffects)

SideEffectDTO

字段类型说明
typestring副作用类型;当前仅 UPDATE_FIELD 被写入 writeTemplateJson
targetObjectRefResourceRefDTO未使用。目标对象引用占位字段。
targetPropertyApiNamestring目标属性 API 名称;UPDATE_FIELD 场景必填
valueObject副作用值;以 $ 开头表示从输入参数取值(value_type = INPUT),否则为常量(value_type = CONSTANT)
conditionstring未使用。触发条件占位字段。

枚举取值

ActionTypeEnum

枚举值说明
UPDATE_FIELD更新字段
CREATE_OBJECT创建对象
DELETE_OBJECT删除对象
UPSERT_OBJECT创建或更新对象
LINK_OBJECT关联对象
UNLINK_OBJECT解除关联
FUNCTION_BACKED函数 backed

BindingTypeEnum

枚举值说明
SINGLE_INSTANCE单对象动作
TRANSITION状态迁移动作
SIDE_EFFECT副作用动作
QUERY查询动作
VALIDATION校验动作

ExecutionTypeEnum

枚举值说明
IMMEDIATE立即执行
SCHEDULED计划执行
WORKFLOW工作流执行
FUNCTION函数执行

VisibilityRuleTypeEnum

枚举值说明
ALWAYS始终可见
CONDITIONAL条件可见
ROLE_BASED基于角色可见

消费位置

  • foundry-action-biz: ActionDefinitionWriteService.upsertAction 将字段投影到 fd_action_def。
    • name、type(仅创建)、bindingType、inputSchema、execution、visibilityRule、sideEffects 参与写库。
    • type 在更新请求中被忽略,不允许修改动作类型。
    • sideEffects 中非 UPDATE_FIELD 类型被跳过;UPDATE_FIELD 会生成 writeTemplateJson.patches。
  • foundry-action-biz: ActionDomainProjectionAdapter 从 objectRef.name 解析所属对象名后调用 actionDefinitionApi.upsertAction。

示例

actions:
  - name: approveOrder
    displayName: 审批订单            # 未使用
    description: 审批通过当前订单    # 未使用
    objectRef:
      kind: ObjectType               # 未使用
      name: Order
      apiName: order                 # 未使用
    type: UPDATE_FIELD
    bindingType: SINGLE_INSTANCE
    inputSchema:
      parameters:
        - name: approvedBy
          dataType: STRING
          description: 审批人
        - name: comment
          dataType: STRING
          defaultValue: "同意"
    execution:
      executionType: IMMEDIATE
      config:
        confirm: true
    visibilityRule:
      ruleType: CONDITIONAL
      condition: "status == 'PENDING'"
      requiredRoles:
        - role.approver
    sideEffects:
      - type: UPDATE_FIELD
        targetObjectRef: null        # 未使用
        targetPropertyApiName: status
        value: APPROVED
        condition: null              # 未使用
      - type: UPDATE_FIELD
        targetPropertyApiName: approvedBy
        value: "$approvedBy"

相关文档