In diesem Beitrag zeigen wir ein Beispiel von OData REST Web-Service in Dynamics 365 Business Central (TM) On-Premise. Eine notwendige Einrichtung zur Verwendung von .NET Interoperability wird hier gezeigt. Das Beispiel kommt aus einer Session von NAV TECH Days 2015. Damals wurde die Version Dynamics NAV 2016 (9.00) verwendet. Jetzt bilden wir die Web-Service in AL und in Business Central 2019 wave 2 (Version 15).
Wir wollen in unserem Business Case einen QR-Code Bild des Debitoren Webseite auf der Debitoren-Karte speichern, damit Anwender schnell mit einem Scanner die Webseite des Kunden öffnen können. Zum diesem Zweck nutzen wir eine OData REST Service, die unter diese Adresse http://barcodes4.me/ zur Verfügung gestellt wird. Ähnlich, wie in NAV Tech Days, bauen wir eine Funktionalität, die ein QR-Code Bild als Stream auf der 'Customer' Tabelle in einem neuen Feld gespeichert wird. Dazu brauchen wir .NET Klassen. Die OData wird mit .NET Klasse System.Net.Http.HttpResponseMessage behandelt. Wir bauen eine spezielle CodeUnit, die alle diese Aufgaben übernimmt. Bevor wir mit OData los gehen, wir müssen folgende andere Anpassungen im Business Central vornehmen:
Jetzt können wir mit unserer Hauptaufgabe anfangen. Die ist einen Web-Service Call mit REST aufbauen und der als Response empfangenes Bild zu bearbeiten und auf der Tabelle zu speichern. Der Synthax der REST Request ist auf der Seite http://barcodes4.me/apidocumentation#qr zu finden:
In der Codeunit müssen definiert werden:
Wir bauen eine allgemeine AL Methode, die erlaubt alle REST Methoden zu aufrufen (GET,POST,PUT,DELETE). Es kann zu anderen Zwecken verwendet werden. Im Beispiel brauchen wir nur GET. Die Methode hat einen Responseparamterart 'Text'. Im Beispiel wird er auch nicht verwendet, weil die REST-Response einen Stream übergibt.
Der Ablauf wird in den folgenden Sektionen ausgeführt:
Das Ergebnis ist hier zu sehen:
Dynamics 365 Business Central(TM) (Navision) Entwickler und Berater Konrad Buczkowski