core:listMode="OVERWRITE"

Aktion

XML

Beschreibung

Eingabe XML

<shp:Shipment xmlns:shp='SCM.SHIPMENT' xmlns:core='CORESYSTEM'>
<lineItems>
<lineItem lineItemId='1' numberOfPackages='10' />
<lineItem lineItemId='1.1' numberOfPackages='11' />
<lineItem lineItemId='1.2' numberOfPackages='12' />
<lineItem lineItemId='2' numberOfPackages='20' />
<lineItem lineItemId='2.1' numberOfPackages='21' />
<lineItem lineItemId='2.2' numberOfPackages='22' />
<lineItem lineItemId='3' numberOfPackages='30' />
<lineItem lineItemId='3.1' numberOfPackages='31' />
<lineItem lineItemId='X1' numberOfPackages='91' />
<lineItem lineItemId='X2' numberOfPackages='92' />
</lineItems>
</shp:Shipment>

Ein einfaches Sendungsobjekt mit Positionen

Update XML

<shp:Shipment xmlns:shp='SCM.SHIPMENT' xmlns:core='CORESYSTEM' xmlns:base='SCM.BASE'>
<lineItems core:listMode="OVERWRITE" base:keepTrees='X'>
<lineItem lineItemId='1' numberOfPackages='100' />
<lineItem lineItemId='1.1' numberOfPackages='110' />
<lineItem lineItemId='2' numberOfPackages='200' base:keepChildren='true' />
<lineItem lineItemId='2.1' numberOfPackages='210' />
</lineItems>
</shp:Shipment>

Das Attribut core:listMode="OVERWRITE" ändert den Listenmodus von "APPEND" auf "OVERWRITE".

Positionen werden automatisch anhand des Attributs "lineItemId" aufgelöst.

Das Attribut base:keepTrees='X' ist nur für Positionen gültig. Hierbei werden alle Positionen vom typ "X" behalten (siehe Oben)

Das Attribut base:keepChildren='true' ist ebenfalls nur für Positionen gültig. Hierbei werden alle Subpositionen von lineItemId='2' behalten

Ergebnis XML

<shp:Shipment xmlns:shp='SCM.SHIPMENT' xmlns:core='CORESYSTEM'>
<lineItems>
<lineItem lineItemId='1' numberOfPackages='100' />
<lineItem lineItemId='1.1' numberOfPackages='110' />
<lineItem lineItemId='2' numberOfPackages='200' />
<lineItem lineItemId='2.1' numberOfPackages='210' />
<lineItem lineItemId='2.2' numberOfPackages='22' />
<lineItem lineItemId='X1' numberOfPackages='91' />
<lineItem lineItemId='X2' numberOfPackages='92' />
</lineItems>
</shp:Shipment>

Wie zu sehen ist, wurden die Positionen 1.2, 3 und 3.1 entfernt, da diese nicht im Update XML enthalten sind.
Die Positionen X1 und X2 wurden aufgrund des Attributs base:keepTrees='X' übernommen.
Die Position 2.2 wurde wegen dem Attribut base:keepChildren='true' ebenfalls beibehalten.