Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem Groovy - jak vypsat výstupní ID po sebou?

Ahoj,

mám vstup X a Y. Do každého vstupu chodí user ID's. Já si je pomocí intersectu porovnám a výstup jsou všechny Y které nejsou v X. Výstup kódu níže je tedy - [5845, 41845901, 41901]
Ještě pak přeskakuji určitá ID definované v properties jako skipIds.. Každopádně, potřeboval bych výstupní ID vypsat pod sebou. Může mi někdo pomoct ? Díky.

import com.sap.gateway.ip.core.customdev.util.Message;
import java.util.HashMap;
import groovy.xml.XmlUtil;
import groovy.xml.StreamingMarkupBuilder;
import groovy.xml.*;

def Message processData(Message message) {

// get body
def body = message.getBody(java.io.Reader);
def skipIds = message.getProperty('skipIds');
// parse xml body
def result = new XmlSlurper().parse(body);

def message1 = result.Message1;
def message2 = result.Message2;

def one = message1.X.collect { it.userId.text() }
def two = message2.Y.collect { it.userId.text() }

def intersect = one.intersect(two)
def ids = two - intersect
def newIds = [];
ids.each{ userId ->
if(!skipIds.contains(',' + userId + ',')) {
newIds.push(userId);
}
}

message.setBody(newIds.toString())

return message;

}

Změna tupého předmětu, původně: Groovy (host)

Předmět Autor Datum
message.setBody(newIds.join("\n")) Mimochodem, jsi si jistý, že tohle bude fungovat na první a posl…
Wikan 23.06.2021 10:47
Wikan
Supr, funguje, dík ! skipIds mám ozkoušené, bere to všechny a funguje to v pořádku. poslední
Grov1 23.06.2021 10:59
Grov1

Zpět do poradny Odpovědět na původní otázku Nahoru