Номер версии Parse() с заводным? [P2]

Заранее спасибо!Если это поможет, это мой начальный пост . В качестве входных данных у меня есть этот json:

      {
    "BidId": "ID1088622222",
    "ItemNumber": "4.3.9",
    "CodiceNegoziazione": "Doc104222222",
    "CreationDate": "Wed, 15 Jun, 2022",
    "ProjectId": "WS1042222222",
    "ProjectOwner": "Silvia Gani",
    "ProjectTitle": "gara import Europa Y2022-2023",
    "CompanyCode": "A222 Olivetti",
    "PurchasingOrganization": "",
    "PurchasingGroup": "",
    "PaymentTerms": "",
    "Currency": "EUR",
    "EventType": "RFP",
    "EventOwner": "Silvia Gani",
    "EventId": "Doc1042222222",
    "EventTitle": "gara Import Europa Y2022-2023",
    "SupplierOrgName": "ARCESE",
    "SupplierOrgId": "buyersystemid:acm_2222",
    "SectionLot": "GERMANIA (Emmer)",
    "ItemName": "CAMION COMPLETO (EURO)",
    "Type": "Line Item",
    "SubmissionDate": "Mon, 4 Jul, 2022",
    "Price": "1530",
    "Quantity": "1",
    "ExtendedPrice": "1530",
    "MaterialGroup": "",
    "RequestedDeliveryDate": "",
    "BidCurrency": "EUR",
    "BidExtendedPrice": "1530",
    "BidSavings": "0",
    "BidPrice": "1530",
    "AwardAllocationPercentage": "100"
}


Я хотел бы настроить эту часть кода:

      class Version {
   int major
   Integer minor, patch
   @Override String toString() {
       return [major, minor, patch].findAll().join('.')
   }
}

def parseVersion(String versionString) {
    if (!versionString) return null
    int[] tokens = versionString.split(/\./).collect { it as int }
    return new Version(
        major: tokens[0],
        minor: tokens.length > 1 ? tokens[1] : null,
        patch: tokens.length > 2 ? tokens[2] : null,
    )
}

class Payload {
   String ItemNumber
}

Payload payload = new Payload(ItemNumber: "2.4")
Version version = parseVersion(payload.ItemNumber?.trim())
printf("Major version : %d%n", version.major)
printf("Minor version : %s%n", version.minor ?: "<UNSET>")
printf("Patch version : %s%n", version.patch ?: "<UNSET>")
printf("Full version  : %s%n", version)

В этом заводном скрипте:

      import com.sap.gateway.ip.core.customdev.util.Message;
import java.util.HashMap;
import groovy.json.*
def Message processData(Message message) {

//Body
def body = message.getBody(String.class);

def jsonSlurper = new JsonSlurper()
def list = jsonSlurper.parseText(body)

def ItemNumber = list.get("ItemNumber")
def Price = list.get("Price")
def Quantity = list.get("Quantity")
def ExtendedPrice = list.get("ExtendedPrice")
def BidExtendedPrice = list.get("BidExtendedPrice")
def BidTotalCost = list.get("BidTotalCost")
def BidSavings = list.get("BidSavings")
def BidPrice = list.get("BidPrice")
def RfqItemNumber = list.get("RfqItemNumber")
def AwardAllocationPercentage = list.get("AwardAllocationPercentage")

if (ItemNumber?.trim()){
    list.ItemNumber = Double.parseDouble(ItemNumber.toString());
}

if (Price?.trim()){
    list.Price = Double.parseDouble(Price.toString());
}

if (Quantity?.trim()){
    list.Quantity= Double.parseDouble(Quantity.toString());
}

if (ExtendedPrice?.trim()){
    list.ExtendedPrice= Double.parseDouble(ExtendedPrice.toString());
}

if (BidExtendedPrice?.trim()){
    list.BidExtendedPrice= Double.parseDouble(BidExtendedPrice.toString());
}

if (BidTotalCost?.trim()){
    list.BidTotalCost= Double.parseDouble(BidTotalCost.toString())
}
    

if (BidSavings?.trim()){
    list.BidSavings= Double.parseDouble(BidSavings.toString());
}

if (BidPrice?.trim()){
    list.BidPrice= Double.parseDouble(BidPrice.toString());
}

if (RfqItemNumber?.trim() && RfqItemNumber != 'null'){
    list.RfqItemNumber= Integer.parseInt(RfqItemNumber.toString());
}else if (RfqItemNumber == 'null'){
    list.RfqItemNumber = null
}

if (AwardAllocationPercentage?.trim()){
    list.AwardAllocationPercentage= Double.parseDouble(AwardAllocationPercentage.toString());
}

def jsonOP = JsonOutput.toJson(list)

message.setBody(jsonOP)
return message;
}

Цель состоит в том, чтобы проанализировать поле ItemNumber. (Из "ItemNumber": "4.4.5" --> "ItemNumber": 4.4.5)

Желаемый результат:

      {"BidId":"ID1088625754","ItemNumber":4.4.5,"CodiceNegoziazione":"Doc1042163109","CreationDate":"Wed, 15 Jun, 2022","ProjectId":"WS1042082696","ProjectOwner":"Silvia Ganio Mego","ProjectTitle":"gara import Europa Y2022-2023","CompanyCode":"A200 Olivetti S.p.A.","PurchasingOrganization":"","PurchasingGroup":"","PaymentTerms":"","Currency":"EUR","EventType":"RFP","EventOwner":"Silvia Ganio Mego","EventId":"Doc1042163109","EventTitle":"gara Import Europa Y2022-2023","SupplierOrgName":"ARCESE TRASPORTI S.P.A.","SupplierOrgId":"buyersystemid:acm_36628101|sap:0000333441|networkid:an01009585103","SectionLot":"GERMANIA (Emmerich)","ItemName":"CAMION COMPLETO (EURO)","Type":"Line Item","SubmissionDate":"Mon, 4 Jul, 2022","Price":1530.0,"Quantity":1.0,"ExtendedPrice":1530.0,"MaterialGroup":"","RequestedDeliveryDate":"","BidCurrency":"EUR","BidExtendedPrice":1530.0,"BidSavings":0.0,"BidPrice":1530.0,"AwardAllocationPercentage":100.0}

Я попытался настроить приведенную выше часть кода в groovy, но все равно получаю "ItemNumber": "4.4.5" . Если я попробую код в groovy ide, он будет работать нормально. Я не настолько знаком со всем этим, не так давно в этой области.

0 ответов

Другие вопросы по тегам