core:listMode="OVERWRITE"

Action

XML

Description

Input 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>

A simple shipment object with line items.

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>

The attribute core:listMode="OVERWRITE" changes the list mode from "APPEND" to "OVERWRITE".

Items are automatically resolved based on the "lineItemId" attribute.

The attribute base:keepTrees='X' is valid only for line items. Here all line items of type "X" are kept (see above).

The attribute base:keepChildren='true'is also only valid for line items. Here all subitems of lineItemId='2' are kept.

XML result

<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>

As can be seen, items 1.2, 3 and 3.1 have been removed as they are not included in the XML Update.
The positions X1 and X2 were taken over due to the attribute base:keepTrees='X'.
The position 2.2 was also kept because of the attribute base:keepChildren='true'.