1

Dell Boomi を使用して、あるシステムから別のシステムにデータをマッピングしています。マップで groovy を使用できますが、経験はありません。他の Boomi ツールでこれを実行しようとしましたが、スクリプトで groovy を使用する必要があると言われました。私の受信データは次のとおりです。

132265、ブラウン

132265、ゴールド

132265,グレー

132265、グリーン

出力したい:

132265,"ブラウン、ゴールド、グレー、グリーン"

うまくいけば、これは理にかなっています!これを機能させるためのグルーヴィーなコードに関するアイデアはありますか?

4

5 に答える 5

0

データが次のようなカンマ区切りのデータ文字列として入ってくると仮定します。

"132265,ブラウン 132265,ゴールド 132265,グレー 132265,グリーン 122222,レッド 122222,ホワイト"

次の Groovy スクリプト コードでうまくいくはずです。

def csvString = "132265,Brown 132265,Gold 132265,Gray 132265,Green 122222,Red 122222,White"

LinkedHashMap.metaClass.multiPut << { key, value ->
    delegate[key] = delegate[key] ?: []; delegate[key] += value
}

def map = [:]
def csv = csvString.split().collect{ entry -> entry.split(",") }
csv.each{ entry -> map.multiPut(entry[0], entry[1]) }

def result = map.collect{ k, v -> k + ',"' + v.join(",") + '"'}.join("\n")
println result

印刷します:

132265,"ブラウン、ゴールド、グレー、グリーン"
122222,"レッド、ホワイト"

于 2016-01-19T23:20:26.503 に答える