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

Groovy脚本修改:识别ScheduleLine数组并转换Quantity字段类型

问题解决:将ScheduleLineOrderQuantity转为数字类型并正确访问嵌套字段

问题分析

原脚本中访问_PurchaseOrderScheduleLineTP的逻辑错误,该数组是嵌套在_PurchaseOrderItem对象下的属性,不能直接全局遍历。必须先遍历每个采购订单条目,再遍历其下的计划行数组,才能完成字段类型转换。

修正后的Groovy脚本

import com.sap.gateway.ip.core.customdev.util.Message;
import java.util.HashMap;
import groovy.json.*

def Message processData(Message message) {
    def body = message.getBody(java.lang.String);
    def object = new JsonSlurper().parseText(body)

    // 处理采购订单条目内的数字字段转换
    object._PurchaseOrderItem.each{ purchaseOrderItem ->
        purchaseOrderItem.NetPriceQuantity = purchaseOrderItem.NetPriceQuantity.toDouble().intValue()
        purchaseOrderItem.NetAmount = purchaseOrderItem.NetAmount.toDouble()
        purchaseOrderItem.GrossAmount = purchaseOrderItem.GrossAmount.toDouble()
        purchaseOrderItem.OrderQuantity = purchaseOrderItem.OrderQuantity.toDouble()
        purchaseOrderItem.NetPriceAmount = purchaseOrderItem.NetPriceAmount.toDouble()

        // 处理当前条目下的计划行数组
        purchaseOrderItem._PurchaseOrderScheduleLineTP.each{ scheduleLine ->
            // 将字符串类型的ScheduleLineOrderQuantity转为整数(需保留小数可直接用toDouble())
            scheduleLine.ScheduleLineOrderQuantity = scheduleLine.ScheduleLineOrderQuantity.toDouble().intValue()
        }
    }

    message.setBody(JsonOutput.toJson(object));
    return message;
}

关键修正说明

  • 正确访问嵌套数组:在_PurchaseOrderItem的遍历循环内部,通过purchaseOrderItem._PurchaseOrderScheduleLineTP获取当前条目下的计划行数组,再逐个遍历处理。
  • 字段类型转换:调用toDouble().intValue()将字符串转为整数,若业务需要保留小数,直接使用toDouble()即可。
  • 可读性优化:将原脚本中过长的变量名简化为purchaseOrderItem、scheduleLine,避免重复的下划线前缀干扰阅读。

转换后Payload效果

_PurchaseOrderScheduleLineTP中的ScheduleLineOrderQuantity会从字符串"10"变为数字10,示例片段如下:

"_PurchaseOrderScheduleLineTP": [{
  "ScheduleLineDeliveryDate": "2024-05-14",
  "SchedLineStscDeliveryDate": "2024-05-14",
  "ScheduleLineOrderQuantity": 10,
  "PurchaseOrderQuantityUnit": "EA",
  "Currency": "USD"
}]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 22:09:50