Microsoft Dynamics 365 CRM mit Business Central über Azure clever verbinden

Microsoft Dynamics 365 CRM

Moderne Geschäftsprozesse verbinden mehrere Systeme, die ihre Informationen in unterschiedlicher Form bereitstellen. Obgleich diese von demselben Hersteller sind, gibt es oft keine einfache Möglichkeit die Daten, wie z.B. den Kundenstamm, zwischen den Systemen zu teilen und zu synchronisieren. Hierzu werden Integrations-Lösungen erstellt, welche sich um die Aufbereitung und den Versand von Daten zwischen den Endsystemen kümmern.

Ein besonderes Augenmerk soll in diesem Blog-Artikel auf das Microsoft D365 CRM und Business Central gelegt werden. Der Versand der Daten läuft über unsere Lösung das smart CONNECT Framework ab.

smart CONNECT Frameworks

Das Geheimnis des smart CONNECT Frameworks

Um die Realisierung des Projektes zu beschleunigen und dadurch für unseren Kunden Geld zu sparen, haben wir unser eigenes Framework – smart CONNECT als Integrationskatalysator eingesetzt. Das von uns entwickelte Framework stellt standardisierte Möglichkeiten bereit, Daten von einem Endpunkt zu einem oder mehreren Endpunkten über Azure im Rahmen von EAI Szenarien zu übertragen. Dabei stellt smart CONNECT schon im Vorfeld viele notwendige Integrationsfunktionalitäten (wie Monitoring, Reprozessing, End to End Verschlüsselung, automatische Fehlerbehandlung, dynamisches Mapping, Übertragung von PDF-Dokumenten etc.) zur Verfügung.
Die Realisierung der Anbindungen der Endsysteme wird dabei mittels eines oder mehrerer Konnektoren verwirklicht, welcher in Form von Azure Functions in der Cloud gehostet werden. Als Datenspeicher dient im Hintergrund, in unserem Beispiel, der Azure Service Bus. Daten werden zum smart CONNECT über eine .NET API übertragen und ggf. wieder abgeholt. Die Anbindung ist dabei sehr einfach, da die Konnektoren leicht zu entwickeln, zu deployen und zu überwachen sind.

BizTalk 2020
Dashboard

Anbindung der CRM Endpunkte

Der vermutlich spannendste Teil der Anbindung. Oftmals wird das D365 CRM über bereitgestellte WebServices angesprochen oder über das CRM SDK eine Verbindung aufgebaut und verwaltet. Für unsere Anbindung haben wir jedoch die Möglichkeiten der Azure Logic Apps aufgegriffen, um uns den Aufwand des Verbindungsaufbaus, der Authentifizierung und der Anfragen-Gestaltung zu ersparen.

Der Zugriff erfolgt dabei über einen User aus der Domäne des CRMs. Dieser muss über genügend Rechte verfügen um die entsprechenden Aktionen auch ausführen zu können. Einen Gast-User aus einer anderen Domäne zu berechtigen hat nach unseren Erfahrungen nicht ausgereicht.

CRM Endpunkte

Die Logic Apps haben eine Vielzahl von Konnektoren, welche mittels Drag & Drop einfach in einen Workflow eingebaut werden können. Unter anderem erlauben diese auch mit einem D365 CRM zu interagieren. Erstellen von neuen Datensätzen, Ändern oder auch Löschen ist alles bereits vordefiniert und auch das Reagieren auf Änderungen im CRM ist leicht umzusetzen.

So haben wir zwei Logic Apps entworfen:

CRM EMPFÄNGER

Wenn es Änderungen auf Seiten des CRMs gibt, so z.B. ein neuer Auftrag (SalesOrder) angelegt wird, werden die Änderungen erfasst und der komplette Datensatz in einem JSON Format von der Logic App abgeholt. Hier ist auf Seiten des CRMs keine weitere Einstellung notwendig. Dieser Prozess weißt Verzögerung auf, da das CRM hier periodisch abgefragt wird. Das mögliche Intervall reicht von Sekunden bis hin zu Tagen und sollte daher für jedes Anwendungsszenario genügen.

Record Azure

CRM Sender

Sobald ein neuer oder geänderter Datensatz an das CRM gesendet werden soll, wird dieser an die REST-URL der Logic App geschickt und über den Logic App Konnektor an das CRM weitergeleitet. Da das D365 CRM viele Entitäten über Referenzen in Form von GUIDs auflöst, ist es hier eventuell notwendig weitere Anfragen an das CRM zu machen, um gegebenenfalls Kunden anhand von Namen oder eindeutigen Merkmalen aufzuschlüsseln. In unserem Beispiel übertragen wir hier Verkaufsrechnungen (Invoices) und setzten aus Einfachheitsgründen feste Kunden und Preislisten.

CRM rechnungen

Anbindung der Business Central Endpunkte

Business Central sprechen wir über SOAP-WebServices an, die von Business Central bereitgestellt werden. Das Senden von neuen Datensätzen erfolgt über eine Azure Function, die an das smart CONNECT Framework angebunden ist. Diese Azure Function kennt die Adresse des entsprechenden Web Services, welcher Funktionen wie Read, Create, Update und Delete bereitstellt. Anhand der gegebenen Daten aus dem CRM wird die Operation ermittelt und anschließend die entsprechende Funktion des Web Services aufgerufen. Die WSDL des Dienstes wurde dazu genutzt einen einfachen Client zu erstellen und diesen in den Code für die Azure Function einzubinden.

Central Endpunkte

Resümee

Die Verbindung der Systeme funktioniert stabil und ist zuverlässig. Der Funktionsumfang der Logic Apps erlaubt uns einen einfachen Zugriff auf das Microsoft D365 CRM und erspart uns Daten über den Organisations-WebService zu beziehen. Dadurch entfällt der komplette Aufwand der Anbindung, Authentifizierung und Schemaerstellung.
Für die Anbindung von Business Central ist der größere Teil die Erstellung eines Jobs, welcher bei Aktualisierung eines Datensatzes ein Update an unseren Web Service schickt. Die Anbindung aus Sicht der Middleware ist hier insbesondere mit dem Einsatz von smart CONNECT recht einfach und schnell umzusetzen. So waren wir innerhalb weniger Tagen mit dem Projekt fertig.

 
Data Passion Milen & Carsten
Data Passion Milen & Carsten
HABEN WIR
IHR INTERESSE
GEWECKT?
Schreiben Sie uns eine kurze E-Mail oder rufen Sie uns einfach an! Wir kümmern uns um Ihr Anliegen innerhalb der nächsten 24 Stunden.

Tel.: +49 (40) 6963816–0
Tel.: +49 (151) 1176898-0
E-Mail: [email protected]

Kontaktanfrage