core:mode="NO_RESOLVE" (Überspringen des Abrufs bestehender Objektdaten)

Das Steuerattribut core:mode="NO_RESOLVE" (früher core:skipResolve="true") kann gesetzt werden, um festzulegen, dass für einen bestimmten Knoten in einem Import die bereits vorliegenden Objektdaten beim Import nicht "aufgelöst" werden sollen.

Der Zweck dieser Option erschließt sich im Vergleich mit dem Standardverhalten:

  • Ist der Wert des Attributs core:mode für einen Knoten nicht NO_RESOLVE, werden vor dem Aktualisieren die zugehörigen Objektdaten "aufgelöst", also aus dem übergeordneten Objekt gelesen, um dann vom Import definierte Aktualisierungen auf diese Daten anzuwenden. Die Importdaten werden also auf die betreffenden Objekteigenschaften abgebildet ("hinein-ge-merged") und alle im Import nicht erwähnten Merkmale des Objekts bleiben unverändert erhalten.

  • Lautet der Wert des Attributs core:mode für einen Knoten NO_RESOLVE, der sich auf ein geeignetes Datenobjekt innerhalb der aktualisierten Entität bezieht, dann werden bestehende Detaildaten für das betreffende Objekt beim Import nicht geladen, sondern ignoriert. Effektiv wird das Datenobjekt ausschließlich aus den im Import gelieferten Informationen neu aufgebaut und alle nicht erwähnten Merkmale sind nach dem Import verschwunden.

Die Option kann für sehr überschaubare Datenobjekte, etwa ein einzelnes Attribut, eingesetzt werden, aber auch für größere "Aggregate" wie eine Adresse in einem Adressattribut mit einer potenziell recht komplexen inneren Struktur (inkl. eigener Attribute).

Nicht anwendbar ist das Steuerattribut nur für spezielle Bestandteile der Struktur, v. a. die sogenannten Wrapper, die zum Aufzählen von Elementen wie Attributen im <attributes>-Knoten oder Positionen im <lineItems> -Knoten verwendet werden.

Beispiel: Aktualisieren des Werts für ein Datumsattribut mit und ohne "Auflösen" des Objekts

Innerhalb einer Bestellung definiert das Datumsattribut "Lieferdatum fix" (DELIVERY_FIXED) ein konkretes Zeitfenster (mit Uhrzeiten) für die Anlieferung:

Ansicht der Erfassungsmaske

Objektdaten des Attributs

images/download/attachments/201675365/image2020-7-24_17-7-19-version-1-modificationdate-1747138136446-api-v2.png

Die Eingabe erfolgt in der Standardzeitzone "Europe/Berlin".

<ord:OrderDate id="3651" ... >
<value dateType="DELIVERY_FIXED">
<date start="1595926800000" end="1595948400000" timeZone="Europe/Berlin"/>
</value>
</ord:OrderDate>

Zu einem bestimmten Zeitpunkt vor der Anlieferung soll das Zeitfenster durch einen konkreten Zeitpunkt ersetzen werden. Entsprechende Daten stellt eine Schnittstelle bereit, die den erwarteten Lieferzeitpunkt in der Zeitzone am Zielort überträgt.

Lieferzeitpunkt und Zeitzone sollen beim Import in das Datumsattribut als start und timeZone übernommen werden. Der Wert für end darf verworfen werden.

Der rechts abgebildete Import verwendet die Aktion UPDATE.

  • Im hier nur angedeuteten search-Knoten muss die betreffende Bestellung per Suche eindeutig identifiziert werden.


  • Im attributes-Knoten erscheint ein OrderDate-Element (Datumsattribut) für den Datumstyp DELIVERY_FIXED für dessen Wert der Import nur die Merkmale start und timeZone liefert. Allerdings beinhaltet der date-Knoten auch das Attribut core:mode="NO_RESOLVE".

Der nicht erwähnte end-Wert (das "Bis"-Datum des Bereichs) wird deshalb anders als per Standard üblich gelöscht.

<?xml version="1.0" encoding="UTF-8"?>
<core:Import ... action="UPDATE">
<search> ... </search>
<ord:Order>
<attributes>
<ord:OrderDate>
<value dateType="DELIVERY_FIXED">
<date core:mode="NO_RESOLVE" start="1595968200000" timeZone="Pacific/Auckland"></date>
</value>
</ord:OrderDate>
</attributes>
</ord:Order>
</core:Import>

Ergebnis nach dem Import:

Ansicht der Erfassungsmaske

Objektdaten des Attributs

images/download/attachments/201675365/image2020-7-24_17-26-20-version-1-modificationdate-1747138136443-api-v2.png

Die Zeitzone erscheint als Tooltip für die Kalender-Symbole.

<ord:OrderDate id="3651" ... >
<value dateType="DELIVERY_FIXED">
<date start="1595968200000" timeZone="Pacific/Auckland"/>
</value>
</ord:OrderDate>

ANMERKUNG◄ Das Datumsbereich-Element in der Erfassungsmaske setzt wegen dem fehlenden "Bis"-Datum das "Von"-Datum in beiden Feldern an. Das "Bis"-Element könnte aber z. B. automatisch ausgeblendet werden, wenn es mit dem "Von"-Datum übereinstimmt.