Datensätze mit OData aktualisieren

Abgeschlossen

Sie müssen die PUT-Anfrage verwenden, um einen vorhandenen Datensatz mithilfe von OData zu aktualisieren. Ähnlich wie bei der POST-Anfrage müssen Sie den Datensatz im Hauptteil der Anforderung als JSON-Dokument bereitstellen. Dieses Mal müssen Sie jedoch auch den Primärschlüssel des Datensatzes in der URL angeben.

Darüber hinaus muss Business Central sicherstellen, dass Sie die neueste Version eines Datensatzes aktualisieren. Aus diesem Grund wird ein Parallelitätstoken verwendet. Sie müssen dieses Token als HTTP-Header in der Anfrage senden. Anschließend kann Business Central in der Datenbank überprüfen, ob Sie die neueste Version eines Datensatzes aktualisieren und ob in der Zwischenzeit kein anderer Benutzer den Datensatz aktualisiert hat. Sie sollten zuerst die Details eines bestimmten Datensatzes anfordern, bevor Sie die Werte aktualisieren können, um dieses Token abzurufen. Wenn Sie eine GET-Anfrage durchführen, um Daten abzurufen, erhalten Sie ein JSON-Dokument mit einem @odata.etag-Schlüssel im Dokument. Der Wert dieses Schlüssels ist Ihr Parallelitätstoken und muss kopiert und in Ihrer PUT-Anfrage verwendet werden.

Screenshot des OData-etag-Beispiels

Der Wert „etag“ sollte als If-Match-HTTP-Kopfzeile gesendet werden. Sie können Überschriften auswählen und dann eine If-Match-Kopfzeile mit dem Wert des „etag“ hinzufügen, wie im folgenden Beispiel gezeigt.

Der @odata.etag-Wert ist ein Zeichenfolgenwert in einem JSON-Dokument. Ein Zeichenfolgenwert in einem JSON-Dokument beginnt und endet immer mit einem “ (doppeltes Anführungszeichen). Aber weil der @odata.etag-Wert selbst auch das doppelte Anführungszeichen im Zeichenfolgewert enthät, sind die doppelten Anführungszeichen im @odata.etag sind Escape-Zeichen. Wenn Sie den Wert des etag in der If-Match-Kopfzeile verwenden, müssen Sie diese Escape-Zeichen entfernen.

Dies bedeutet, dass ein Wert von:

W/\"JzQ0O3ZSUjBKTVdWenZvZ3IyTGlFSStWbllUVUNkdUZVQmxSV3p1dk1xMFo4REU9MTswDsn\"

Wird:

W/"JzQ0O3ZSUjBKTVdWenZvZ3IyTGlFSStWbllUVUNkdUZVQmxSV3p1dk1xMFo4REU9MTswDsn"

Beachten Sie auch, dass die URL auf einen bestimmten Datensatz abzielt: den Debitorendatensatz mit dem Primärschlüssel 10000.

Screenshot der „If-Match“-Kopfzeile mit dem Wert der Eigenschaft „etag“ ein