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 Umsetzung unseres Projekts zu beschleunigen und somit kosteneffizient für unsere Kunden zu agieren, setzen wir erfolgreich unser eigenes Framework – smart CONNECT – als Integrationskatalysator ein. Dieses von uns entwickelte Framework bietet standardisierte Möglichkeiten, Daten effizient 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 zuverlässiger Datenspeicher dient dabei der Azure Service Bus. Daten werden zu smart CONNECT über eine benutzerfreundliche .NET API übertragen und ggf. wieder abgeholt. Die Anbindung gestaltet sich dabei sehr einfach, da die Konnektoren leicht zu entwickeln, zu deployen und zu überwachen sind. Damit schaffen wir eine effiziente Grundlage für reibungslose Integrationen und ermöglichen unseren Kunden erhebliche Einsparungen.

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 Integration haben wir jedoch die Potenziale der Azure Logic Apps genutzt, um den Aufwand beim Verbindungsaufbau, der Authentifizierung und der Gestaltung von Anfragen zu ersparen.

Der Zugriff erfolgt dabei über einen Nutzer aus der Domäne des CRMs, der über ausreichende Berechtigungen verfügen muss, um die erforderlichen Aktionen durchzuführen. Unsere Erfahrung hat gezeigt, dass die Berechtigung eines Gast-Nutzers aus einer anderen Domäne nicht ausreichend ist. Durch die Integration von Azure Logic Apps optimieren wir diesen Prozess erheblich, um eine effiziente Anbindung an das D365 CRM zu gewährleisten.

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.

Im Falle der Business Central-Anbindung liegt der Schwerpunkt hauptsächlich auf der Erstellung eines Jobs, der bei Aktualisierung eines Datensatzes ein Update an unseren Web Service sendet. Die Middleware-Anbindung gestaltet sich besonders unkompliziert und zügig, insbesondere durch den Einsatz von smart CONNECT. Dadurch konnten wir das Projekt innerhalb weniger Tage erfolgreich abschließen.

 
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

Kontaktanfrage