Zum Hauptinhalt springen
Inkrementelle Updates

Teilweise Datensatzaktualisierungen in der REST-API

Lenka Haringerová avatar
Verfasst von Lenka Haringerová
Vor über 3 Jahren aktualisiert

ABRA Flexi erlaubt partielle Updates von Datensätzen (Änderungen von Werten). Wenn Sie Datensätze aktualisieren, geben Sie nur die Attribute an, die Sie ändern möchten. Wenn Sie ein leeres Attribut angeben, wird der Attributwert gelöscht.

<?xml version="1.0"?>
<winstrom version="1.0">
  <cenik id="123">
    <nameA>Neuer Name</nameA>
    <!-- Wert geändert -->
    <ean/>
    <!-- Wert gelöscht -->
  </cenik>
</winstrom>

Löschen von Elementen

Die meisten Datensätze können Artikel enthalten (z. B. Rechnung). Diese Elemente können hinzugefügt und gelöscht werden. Wenn für ein Element kein Bezeichner angegeben ist, ist die Reihenfolge des Elements ausschlaggebend. Es wird empfohlen, auch eine externe Kennung für Artikel aufzunehmen, da zusätzliche Informationen (z. B. aus welchem Lager der Artikel ausgegeben wurde) mit dem Artikel verknüpft werden können. Wenn die Artikel nur auftragsbezogen verwaltet werden und der Datensatz am Anfang eingefügt wird, werden die Werte überschrieben, aber die verknüpften Informationen bleiben mit den ursprünglichen Datensätzen erhalten. Dieses Verfahren ist daher nicht für Updates geeignet.

Alle Elemente aktualisieren

Wenn beim Aktualisieren von Elementen kein Bezeichner angegeben wird, werden immer Datensätze hinzugefügt. Wenn Sie die Liste der Datensätze ersetzen und damit alle Elemente löschen möchten, die beim Aktualisieren nicht aufgeführt werden, verwenden Sie das Attribut removeAll="true":

<?xml version="1.0"?>
<winstrom version="1.0">
  <invoice-issued id="123">
    <invoice-item removeAll="true">
      <invoice-issued-item><id>14</id> &#x22EE; </invoice-issued-item>
    </invoice-item>
  </invoice-issued>
</winstrom>

In diesem Fall werden alle nicht aufgeführten Elemente gelöscht. Die aufgelisteten Elemente werden aktualisiert/aktualisiert.

Die gleiche Anfrage, umgeschrieben im JSON-Format, würde wie folgt aussehen:

null

Um ausgewählte Elemente direkt zu löschen, kann das Attribut action="delete" verwendet werden, siehe Ausführen von Aktionen.

Es können interne Abhängigkeiten zwischen Elementen bestehen, so dass ein Element, das nicht explizit geändert wird, während einer Aktualisierung geändert werden kann.

Das Aktualisieren von Etiketten funktioniert nach einem ähnlichen Prinzip wie das Aktualisieren von Artikeln.

Hat dies deine Frage beantwortet?