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 |
Die Eingabe erfolgt in der Standardzeitzone "Europe/Berlin". |
<ord:OrderDate id="3651" ... > |
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.
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"?> |
Ergebnis nach dem Import:
Ansicht der Erfassungsmaske |
Objektdaten des Attributs |
Die Zeitzone erscheint als Tooltip für die Kalender-Symbole. |
<ord:OrderDate id="3651" ... > |
►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.