You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置可创建任意数量对象的OMA动作?

解决方案:实现OMA动作创建任意数量指定对象

1. 用自定义脚本动作替代可视化UI配置

OMA的可视化Rules/Form区域仅支持静态数量配置,要实现动态数量创建,直接使用自定义Groovy脚本动作是最直接的方式:

  • 在动作创建界面选择「Script Action」类型
  • 编写脚本接收用户输入的数量和主键列表,循环创建对象:
    // 获取用户输入的创建数量(表单参数名设为createCount)
    def createCount = context.getParameter("createCount") as Integer
    // 获取多值主键参数(表单参数名设为objectIds)
    def objectIds = context.getParameterValues("objectIds") as List<String>
    
    // 校验数量与主键列表长度一致
    if (createCount != objectIds.size()) {
        throw new IllegalArgumentException("创建数量与提供的主键数量不匹配,请检查输入")
    }
    
    // 循环创建并赋值
    for (int i = 0; i < createCount; i++) {
        def newObj = context.createObject("你的目标对象类型API名称")
        newObj.setAttribute("主键字段的API名称", objectIds[i])
        // 可添加其他属性的赋值逻辑
        newObj.save()
    }
    

2. 配置动态表单参数匹配脚本

在动作的「Form」区域添加两个参数:

  • 整数类型参数createCount:让用户输入要创建的对象数量
  • 多值字符串参数objectIds:开启「允许输入多个值」,用户可逐个填入每个对象的主键
  • 额外添加表单验证规则:确保createCount的数值和objectIds的输入条目数一致,避免数据不匹配

3. 备选方案:文件上传批量创建

如果用户习惯用文件批量提供主键,可配置文件上传参数替代手动输入:

def uploadFile = context.getParameter("uploadFile") as File
def reader = new BufferedReader(new FileReader(uploadFile))
String line
while ((line = reader.readLine()) != null) {
    def objectId = line.trim()
    if (objectId) {
        def newObj = context.createObject("你的目标对象类型API名称")
        newObj.setAttribute("主键字段的API名称", objectId)
        newObj.save()
    }
}
reader.close()

内容的提问来源于stack exchange,提问作者Max Magid

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 15:15:59