OData-Schema auslesen

OData ist ein HTTP-basiertes Protokoll (und damit plattformunabhängig), das Zugriffe auf Datenservices erlaubt. Dabei steht direkt über die URL eine Abfragesprache zur Verfügung, die beliebig spezifische Abfragen der vorhandenen Daten-Ressourcen erlaubt. Zudem können auch Daten geschrieben und gelöscht werden. Im Grunde ist OData eine Art SQL für das Web. Details sehen Sie sich bitte unter http://www.odata.org an. Dort finden Sie auch zahlreiche Tutorials.

OData bietet zudem Metadaten (XML-Schema-Dateien), die die Struktur dieser Datenservices beschreibt. Mit diesem Plugin können Sie eine OData-Schema-Datei auslesen und sich daraus eine Quell- oder Ziel-Struktur erzeugen lassen.

Die Schema-Datei direkt hochladen


(1) Laden der $metadata Datei: Hier können Sie die EDMX-Datei ( Entity Data Model XML ) "$metadata" direkt hochladen, falls Sie eine verfügbar haben. Alternativ können Sie eine URL angeben, unter welcher diese verfügbar ist. Siehe hierzu auch den folgenden Abschnitt. Wichtiger Hinweis: Es werden Dateien in Version 4 erwartet. Hier eine Beispieldatei: $metadata.

(2) Entität (Objekt) auswählen: Hier können Sie in einer Auswahlliste eines der in der Schema-Datei vorhandenen Entitäten auswählen.

(3) Enthaltene Referenzen auswählen: Optional können Sie zusätzlich in der jeweiligen Entität vorhandene Referenzen auswählen. Dabei wird aber lediglich eine Ebene nach unten ausgelesen.

(4) Struktur erzeugen für: Wählen Sie hier aus, ob Sie eine Quell- oder Zielstruktur benötigen und drücken Sie den Button, um diese in die Zwischenablage zu speichern. Öffnen Sie anschließend Ihr Profil und fügen Sie über das Kontextmenü die Struktur ein.

Die Schema-Datei $metadata per URL abfragen


Um zu erläutern, wie man die $metadata-Datei per URL bekommt, möchten wir hier auf die Beispiel-Services auf der offiziellen OData-Seite verweisen: https://services.odata.org/.

Wählen Sie dort den Read-Only-Service https://services.odata.org/V3/OData/OData.svc/.

Fügen Sie nun zu dieser URL noch den Suffix $metadata hinzu, dann erhalten Sie die gewünschte Schema-Datei. Allerdings bekommen Sie hier eine Datei der Version 1 (siehe erste Zeile am Ende), wir benötigen aber Version 4. Ändern Sie deshalb den Link bitte ab in https://services.odata.org/V4/OData/OData.svc/$metadata.

Diese URL können Sie nun auch in der GUI eintragen.


(5) Kanal-Feld: Hier kann ein Kanal des Typs "HTTP" ausgewählt werden.

(6) Zertifikats-Auswahl: Wenn (7) eine HTTPS-URL ist, kann man optional ein Client-Zertifikat zuordnen. Dazu wählt man eines der eigenen Zertifikate aus.

(7) URL: Die URL zum Abfragen der Datei.

(8) HTTP-Header anpassen: Beim Drücken dieses Buttons erscheint ein Dialog zur Eingabe zusätzlicher HTTP-Request-Header. Sowohl für den Header-Namen, als auch für den Wert können Variablen ausgewertet werden. Syntax: @<Variablenname>@.

(9) Via DMZ: Wenn gesetzt, dann wird anstatt vom internen Integration Server vom DMZ-Server aus gesendet (falls vorhanden).

(10) $metadata abfragen: Drücken Sie diesen Button, um die Datei über die URL auszulesen. Der Rest funktioniert dann wie beim direkten Hochladen der Datei.

Auslesen von Daten


Um nun Daten per OData für die erzeugte Eingangsstruktur abzufragen, verwenden Sie die folgende Abfrage-URL:

https://services.odata.org/V4/OData/OData.svc/Suppliers

Probieren Sie es einmal in einem normalen Browser aus. Als Ergebnis erhalten Sie Daten im JSON-Format.

Hier ist ein Beispiel-Profil dazu: Profile-OData_example.pak

Schreiben, Updaten und Löschen von Daten


Zum Schreiben und Updaten von Daten würden Sie eine JSON-Datei an einen OData-Service schicken (zum Löschen genügt eine URL-Anweisung). Sie würden sich also analog über die XML-Metadatei in einem Profil eine Zielstruktur erzeugen und sich daraus z. B. mit der JsonCreationUnit eine JSON-Datei erzeugen, die Sie dann per HTTP-Antwortweg an den OData-Service schicken würden. Das soll an dieser Stelle aber nur angedeutet werden. Das Prinzip sollte aber klar sein. Details zum Schreiben, Updaten und Löschen von Daten finden Sie unter http://www.odata.org beschrieben.

Hinweis: Je nachdem ob gelesen, geschrieben, upgedated oder gelöscht wird, ist eine unterschiedliche HTTP-Methode (GET, POST, PATCH, DELETE) notwendig. Im Profil oben wird z. B. GET verwendet. Siehe https://www.odata.org/getting-started/basic-tutorial.

Hinweis: Beim Auslesen, Schreiben, Updaten und Löschen sind wir immer Client. Wir stellen keinen OData-Dienst als Server zur Verfügung.