Ich versuche, Kategorie-ID zu extrahieren, wenn primäre = true durch Gruppierung von Produkt-IDMule Dataweave Objekt zu Array Fehlern
%input payload application/xml
%output application/java
---
using (c=payload.catalog.*category-assignment default [])
((c default []) filter ([email protected] != "delete") groupBy [email protected] map ({
(($ default []) filter ($.primary == 'true') map ({
field3:[email protected]
}) when $.primary != null otherwise field3:""),
cat-id: [email protected] joinBy "||" ,
primary-flag:$.primary
// (($ default []) filter ($.primary matches /true/) map ({
// //ur code here when equals to shipping charges
// field3:[email protected]
// }) when $.primary != null otherwise []) ,
}))
ich mit mehrere Kombination und Filtern ausprobiert. Filter arbeitet in der Regel mit XML-Attribute, aber hier geben Ausnahme
cast to com.mulesoft.weave.model.structure.ObjectSeq (java.lang.ClassCastException). Message payload is of type: ReceiverFileInputStream
Probeneingang -
<?xml version="1.0" encoding="UTF-8"?>
<catalog xmlns="http://www.example.com/xml/impex/catalog/2006-10-31">
<category-assignment product-id="D711069" category-id="4160">
<primary>true</primary>
</category-assignment>
<category-assignment product-id="D711069" category-id="DANIEL_4160"/>
</catalog>
Irgendwelche Vorschläge hier?
habe ich versucht, einen anderen Satz von Transformation nur für Demo, nicht funktioniert -
%input payload application/xml
%output application/xml
---
Test:{((payload.catalog.*category-assignment default []) groupBy [email protected] pluck {
product-id:$$,
cat-id: [email protected] joinBy "||" ,
primary-flag:$[0].primary,
field3:[email protected][?($.primary == "true")]
})}
Ich versuche, CSV, field1 = Kategorie-ID, field2 = Produkt zu erstellen -id (Gruppierung des Produkts), field3 = Kategorie-ID, wenn primary = true –
wie oben xml, csv sollte wie D711069, 4160 aussehen || DANIEL_4160, 4160 müssen wir der Kategorie mit || folgen –
obigen Code funktioniert für einzelne Knoten wahr Kategorie-Zuordnung>, aber wenn ich mehrere Knoten übergeben, gibt es Fehler –