TECHNISCHER BLOG

SOAP & OData Webdienste in Business Central27 Okt2019

Kategorie: Installation Tags: installation, webservices, odata, soap

Webservices in Business Central - SOAP und OData

Es gibt zwei Webdienst-Arten in Dynamics 365 Business Central TM (Navision): SOAP und OData. Auf eine Frage, welche davon besser wäre, die richtige Antwort könnte sein: "je nachdem":

  • wofür das Webservice wervendet werden sollte,
  • welsches Datenvolumen in Frage kommt,
  • die Kommunikationsrichtung (wird Navision als Webservice ausgestellt oder verbindet sich Navision zum anderen ausgestellten System über Webdienst),
  • und vielen anderen Aspekten der Kommunikationsarchitektur.

Es wäre einfach ungerecht und zu vereinfacht so zu sagen "SOAP ist fertig, tot. Jetzt wird fast alles über REST-Api verbunden". Die beiden Webservice-Arten werden zu unterschiedlichen Aufgaben verwendet. Ganz grob kann man sagen, die SOAP wird meistens dort verwendet, wo Operationen oder Aufgaben bereitgestellt werden sollten. REST/OData (OData ist eine Standarisierung von REST) wird dort verwendet, wo die Ressourcen bereitgestellt werden sollten. Die alle wichtigsten Unterschiede werden in der folgenden Tabelle zusammengefasst.

Dynamics 365 Business Central - Vergleich von OData und SOAP

Einige zusätzliche Bemerkungen zur Verwendung von Webservices in Navision:

  • In den früheren Versionen von Dynamics NAV waren Pages unpraktisch für Web-Services. XML-Ports wurden stattsdesen benutzt. (Pages waren zu kompliziert und verwirrend im Kode auf längere Zeit). Aktuell ist es anders. Es gibt eine Pageart 'API'. Diese Art von Seite kann nicht auf der Benutzeroberfläche angezeigt werden, sondern dient zum Erstellen zuverlässiger Integrationsdienste.

Dynamics 365 Business Central (Navision) - Seitenart API.

  • OData umfasst eine Abfragesprache (Synthax-Beispiel ...$filter=No eq '0001'&$select=No,Name)

  • Eine praktische OData Kommunizierensmethode in AL Kode: .NET Library HttpClient:

    • GET: HttpClient . GetAsync(method) . Result

    • POST: HttpClient . PostAsync(method,httpContent) . Result

    • PUT: HttpClient . PutAsync(method,httpContent) . Result

    • DELETE: : HttpClient . DeleteAsync(method) . Result

  • Die Methode HttpClient läuft in AL asynchron. Damit es synchron läuft, sollte die Methode HttpResponseMessage  .EnsureSuccessStatusCode() verwendet werden.

Einrichtung von Web Services in Business Central

In der Demo-Version von Business Central wurden einige gute Beispiele von Webservices schon eingerichtet. Die können im Suchenfeld schnell aufgelistet werden (Alt + Q)

Dynamics 365 Business Central (Navision) - Wiei möchten Sie weiter verfahren Seite

Auf der Liste von vorhandenen Webdiensten wählen wir den Kontenplan. In drei letzten Spalten sind schon URLs zu Webservices.

Dynamics 365 Business Central (Navision) - Webdiensten Seite

Bevor der Link aufgerufen werden kann, muss es noch geprüft werden, ob die SOAP, bzw. OData Webdienste erlaubt sind. Die können mit dem PowerShell Commandlet oder manuell in BC Administration eingerichtet werden. Tauchte ein Fehler auf beim Einschalten "Die URL-Reservierung konnte nicht hinzugefügt werden. Fehler: 87 Falscher Parameter.', kann es sein, der genutzte Name hat ein nicht erlaubtes Zeichen. Da wir in unserem Testumgebung einen lokalen Benutzer verwenden (was normallerweise nicht passiert) "Konrad Seccount", so ist der Fall.

Dynamics 365 Business Central (Navision) - Administration - Fehler beim Aufruf der Webdienst

Nicht die schönste Lösung, aber den Namen haben wir in "Lokale Benutzer und Gruppen" mit Command lusrmgr.msc entsprechend angepasst:

Lokale Benutzer und Gruppen Fenster

Nach dem Neustart der Dienst können die Webdienste mit dem Link aufgerufen werden. Dann werden wir um eine Authentifizierung gebeten

Log in zu Webdienst in Dynamics 365 Business Central (Navision)

Und dann wird die Seite als SOAP zugreifen.

SOAP Beispiel

SOAP Beispiel in Dynamics 365 Business Central (Navision)

Vorhandene Methoden in den SOAP-Webdiensten:

  • Codeunits: alle Funktionen mit Parameter
  • XML-Ports: Als Parameter in der Funktion in der Codeunit
  • Pages:
    • Create
    • CreateMultiple
    • Read
    • ReadMultiple
    • Update
    • UpdateMultiple
    • Delete
    • IsUpdated
    • ReadByRecID
    • GetRecIDFromKey
    • Delete_<PagePartName>
ODATA Beispiel

Ausgangs-URL: http://x2:15048/BC150/OData/Company('CRONUS%20AG')/Kontenplan. Das Ergebnis:

REST OData Beispiel in Dynamics 365 Business Central (Navision)

Microsoft Richtlinien zum REST-API Entwicklung finden sich unter diesem Link. In unserem nächsten Schritt werden Filter angesetzt, um zu zeigen einige wichtigsten Features von OData - die Absprachmöglichkeiten. Dazu brauchen wir die folgenden Filter Operationen:

ODATA REST Filter Operationen

Und ein eigenes Beispiel mit einer REST-Api REQUEST. Strukturiertes URL-Request: http://x2:15048/BC150/OData/Company('CRONUS%20AG')/Kontenplan?$filter=No eq '0001'&$select=No,Name. Das Ergebnis:

Gefilterte OData REST Webdienst in Dynamics 365 Business Central (Navision)

Beispielsweise Webservises in Navision

In den folgen Beiträgen haben wir zwei Beispiele von REST-OData detailliert gezeigt.

  1. REST-OData Webservice zur Generierung vor QR-Kode-Bilder: Beitrag

Business Central - REST-OData Webservice zu QR-Kode-Bild generierung.

  1. REST-Apis in Business Central. Ein Beitrag, wie die vorhandenen REST-Apis mit Postman kommuniziert werden können.

Business Central - REST-Api Testen mit Postman

Dynamics 365 Business Central TM (Navision) Entwickler und Berater View Konrad Buczkowski's LinkedIn profile Konrad Buczkowski

Wir verwenden Cookies
Einige von ihnen sind essenziell (z.B. speichern von gewählten Optionen des Lizenzrechners), während andere uns helfen unsere Website bei Werbung zu analysieren. Sie können dies akzeptieren oder ablehnen sowie diese Einstellungen jederzeit aufrufen und Cookies auch nachträglich abwählen (im Fußbereich unserer Website unter "Cookies Einrichtung"). Nähere Hinweise in unserer Datenschutzerklärung.
Individuelle Cookie Einstellungen
Notwendig ( 3 / 3 )
Notwendige Cookies helfen dabei, eine Webseite nutzbar zu machen, indem sie Grundfunktionen wie Seitennavigation und Zugriff auf sichere Bereiche der Webseite ermöglichen. Die Webseite kann ohne diese Cookies nicht richtig funktionieren.
v
Details in dieser Gruppe einblendenDetails in dieser Gruppe ausblenden
  • AkzeptiertNameKonfigurierungscookieAnbieterseccount.comZweckSpeichert vom Besucher in einem Feld ausgewählte Einstellungen.Cookie Namemod_cookies_125Cookie Laufzeit1 Jahr
  • AkzeptiertNameSessionAnbieterSeccount.comZweckCookies, die für die Sessionsitzung auf der Website verantwortlich sind.Cookie Names81a877_vv, s81a877_verify, s81a877, s81a877_v, c_verifyCookie Laufzeit1 Tag, Session
  • AkzeptiertNameCookiesAnbieterSeccount.comZweckCookies, die die Verwendung von Cookies bestätigen.Cookie Namec_verifyCookie Laufzeit38 Monate
Statistiken ( 1 / 1 )
Statistik-Cookies helfen Webseiten-Besitzern zu verstehen, wie Besucher mit Webseiten interagieren, indem Informationen anonym gesammelt und gemeldet werden.
v
Details in dieser Gruppe einblendenDetails in dieser Gruppe ausblenden
  • AkzeptiertNameGoogle AnalyticsAnbieterGoogle LLCZweckRegistriert eine eindeutige ID, die verwendet wird, um statistische Daten dazu, wie der Besucher die Website nutzt, zu generieren.Datenschutzerklärunghttps://policies.google.com/privacyCookie Name_ga,_gat,_gidCookie Laufzeit24 Monate
aaa1604053742