Zorg ervoor dat uw Dynamics 365 on premise naar cloud migratie de integraties die u nodig hebt niet tenietdoet

Zorg ervoor dat uw Dynamics 365 on Premise naar Cloud migratie de integraties die u nodig heeft niet tenietdoet

Ana Neto Connectoren, Producten en oplossingen, Technisch 4 Opmerkingen

Artikel laatst bijgewerkt op: 28 maart 2022

Laten we eens kijken naar het volgende scenario:

Een bloeiend bedrijf gebruikt Microsoft Dynamics CRM on-premises, geïntegreerd met hun ERP (Dynamics NAV), SharePoint, en een boekhoudsysteem.

Na wat onderzoek zien ze de voordelen van de overstap naar Dynamics 365 online en Azure cloud. Ze komen er echter ook achter dat Microsoft hun gebruikers geen praktische oplossing biedt voor het overzetten van de databases en alle andere bestaande integraties van Dynamics CRM naar Dynamics 365 Online.

Als de maker van de software geen antwoord heeft op deze vraag, hoe kan dit bedrijf dan zijn wensen in vervulling doen gaan?

Met trots presenteren wij hun oplossing om verbinding te maken met de Dynamics 365 database.... zonder daadwerkelijk verbinding te maken met de database!

Dynamics CRM on-prem verplaatsen naar D365 Online

Hoewel het mogelijk is om een Dynamics 365 op locatiekan veilig worden gesteld dat het gebruik van Dynamics 365 online momenteel de meest aantrekkelijke optie is voor bijna alle bedrijven die er zijn.

Bij hun onderzoek naar de Dynamics 365 online vs. on-premises modellen, komen zij al snel tot de conclusie dat de Software as a Service (SaaS) versie van Dynamics 365 online de volgende voordelen biedt:

  • Minder stress - U hoeft geen hardware of infrastructuur aan te schaffen, en u hoeft het niet te onderhouden.
  • Geen verbintenis - De software wordt meestal in licentie gegeven volgens een doorlopend pay-as-you-go-model in plaats van een eenmalige aankoop per stoel.
  • Veelzijdig - SaaS biedt vaak universele toegang, zodat u vanaf elk apparaat (desktop, laptop, mobiele telefoon) verbinding kunt maken met de software, op voorwaarde dat de gebruiker een internetverbinding heeft.
  • Betaalbaar - De initiële investering is meestal aanzienlijk lager dan de aankoop van on-premise apparatuur en software.
  • Betrouwbaar - De cloud-oplossing wordt geleverd met een High Availability SLA.

Hoe gemakkelijk is het dan om lokale databases te synchroniseren met Dynamics 365 Online?

In een perfecte wereldDe migratie van Microsoft Dynamics CRM on-premises naar Dynamics 365 online zou eenvoudig de bestaande integraties met Microsoft Dynamics CRM on-premises omvatten. Dit zou nog eenvoudiger moeten zijn in het geval u al D365 had en een migratie van Dynamics 365 on premise naar cloud wilde uitvoeren.

Wij leven echter niet in een volmaakte wereld. Niettemin, zelfs als overstappen naar de cloud is niet zo eenvoudig als je zou hopendaar tips en trucs die kunnen helpen je onderweg. Laten we beginnen!

Wat Microsoft u biedt voor de overstap naar Dynamics 365 Online

Er is zoiets als de FastTrack pagina. Microsoft biedt via deze pagina ondersteuning om gebruikers te helpen bij de implementatie van Microsoft cloud-oplossingen. Klanten met een in aanmerking komend abonnement op Microsoft 365, Dynamics 365 of Azure kunnen hiertoe toegang krijgen zonder extra kosten gedurende de gehele looptijd van hun abonnement (link aan het einde van het artikel). Dus, als u van plan bent om dit te gebruiken, is het raadzaam om de bijgewerkte geschiktheidscriteria te controleren voor wat u probeert te migreren. Microsoft baseert deze meestal op het aantal seats of inkomsten.

In april 2019 erkende Microsoft dat "er tot voor kort geen mechanisme beschikbaar was voor klanten om hun on-premises deployment eenvoudig te verplaatsen naar Dynamics 365 (online)". Dit werd opgebiecht in een PDF-document van 45 pagina's met de titel "Microsoft Dynamics CRM on-premises to Dynamics 365 Online Migration", waarin de te volgen stappen worden beschreven (downloadlink staat ook aan het einde van het artikel).

Kan ik toegang krijgen tot de Dynamics database?

Een mogelijke oplossing voor dat probleem zou zijn om een manier te vinden om toegang te krijgen tot de Dynamics 365 database en dan te gaan voor de synchronisatie met uw Dynamics CRM on-premises. Het probleem is dat Microsoft geen toegang biedt tot de back-end Dynamics database.

Dit is volkomen logisch, aangezien het blootstellen van back-end databases van SaaS-diensten aan de buitenwereld wordt beschouwd als een slechte praktijk en kan leiden tot aanzienlijke beveiligingsinbreuken of problemen met de integriteit van gegevens. In plaats daarvan biedt Microsoft een officiële API om de gegevensinteractie met D365 online uit te voeren.

De belangrijkste reden waarom API-diensten worden gebruikt, is dat zij de interne bedrijfsregels en -beperkingen niet doorbreken, zodat de client-toepassingen de prestaties niet belemmeren. Ze helpen ook de gegevensintegriteit en -consistentie van de back-end database te behouden. Nogal gunstig, niet?

Het enige nadeel is dat er veel vaardigheden en tijd nodig zijn voor de ontwikkeling van processen om gegevens via de API te manipuleren. Bovendien moet u in tonnen documentatie duiken om de juiste parameters te ontdekken en de juiste aanroepen te doen naar de methoden en functies die door de relevante interfaces worden geboden. Helaas, zo werkt het nu eenmaal.

Wat als u dit eenvoudiger zou kunnen maken? Als u bekend bent met SQL, zou het dan niet geweldig zijn als u gewoon uw SQL-vaardigheden kon gebruiken en kon communiceren met de D365 API zoals u dat zou doen met een gewoon DBMS (database management systeem), of nog beter, als u Dynamics 365 gewoon de database kon laten synchroniseren met Microsoft SQL Server Management Studio...

Nou, we hebben geweldig nieuws voor je!

Verbinding maken met D365 Online vanuit een lokale DBMS of een clienttoepassing

Wij heten u welkom in onze D365 Database Sync Solution! Volledig gebaseerd op het integratieplatform van Connecting Software Connect Bridge, is het op maat gemaakt om on-premises databases te synchroniseren met de D365 cloud. Verbazingwekkend, toch?

Als je je afvraagt hoe het werkt, Connect Bridge vertaalt de ANSI standaard SQL syntaxis in de juiste API aanroepen.

Door ervoor te zorgen dat de toegang tot gegevens gebeurt met API-calls (hoewel u zich daar geen zorgen over hoeft te maken) houdt deze oplossing de integriteit van uw doelsysteem beveiligd. Plus, u krijgt ook het gemak om te communiceren met elk doelsysteem via de standaard SELECT, INSERT, UPDATE en DELETE verklaringen.

Weet je wat dit betekent? U kunt online verbinding maken met en gegevens invoegen in D365, vanuit uw lokale DBMS of een clienttoepassing!

Dit is vooral handig in het geval van bedrijven die migreren van Dynamics CRM on-prem naar D365 online, en die on-prem SQL databases of applicaties hebben die verbonden zijn met Dynamics. Gelukkig kunnen deze verbindingen behouden blijven door Connect Bridge te implementeren. Dit is precies wat een Italiaanse supermarktketen heeft gedaan, zoals u kunt lezen in deze casestudy.

Het is belangrijk te weten dat dit ook werkt als u verbinding wilt maken met andere Dynamics 365-oplossingen, zoals Dynamics 365 Business Central of Finance! We hebben uw rug...aan het eind van het artikel.

Nu is het tijd om te zien hoe dit in de praktijk werkt. U kunt het gratis uitproberen en zelf proberen, u kunt onze experts vragen u rond te leiden op een gratis demo of u kunt gewoon verder lezen!

Van elke database naar Dynamics 365 Online

De beroemde Adventure Works DW (Datawarehouse) database van Microsoft (download beschikbaar aan het eind), gaat dienen als onze basis voor deze demonstratie. We zullen laten zien hoe naadloos het is om uw bestaande processen te integreren met Microsoft Dynamics 365 Online met behulp van het Connect Bridge Platform.

In de volgende procedure zullen we SSMS gebruiken (SQL Server Management Studio) om uw SQL Server Database te beheren:

1 - Zodra u de AdventureWorks database hebt opgezet, ziet u het schema van de database in het Object Explorer venster, zoals in de volgende afbeelding.

SSMS AdventureWorks

2 - We gaan nu de gekoppelde server aanmaken. Daarvoor volgen we de stappen op deze videoinstructie.

 Merk op dat het maken van Linked Server verbindingen naar elk doelsysteem, door middel van connectoren, mogelijk is omdat we gebruik maken van de Connect Bridge Platform. Er zijn wereldwijd meer dan 400 connectoren beschikbaar voor onze gebruikers. Voor dit voorbeeld gebruiken we specifiek de Dynamics 365 connector.

Logo's van enkele van de Connect Bridge connectoren

Connecting Software's selectie van connectoren op het gebied van CRM, ERP en boekhouding

3 - Zodra de gekoppelde server is ingesteld, zal het lijken alsof u toegang heeft tot de back-end database van Dynamics in SSMS. In de afbeelding hieronder ziet u het met de naam "D365_CRM".

Afbeelding

Door de catalogi node in de TreeView uit te klappen, kunnen we het volledige schema van Dynamics 365 zien, net zoals je zou zien bij toegang tot een gewone database. Maar dit is in feite een abstractie met API calls die op de achtergrond lopen om het aan de voorkant zo eenvoudig te maken.

Met deze 3-stappen procedure kunt u elke vorm van integratie creëren en/of bestaande processen aanpassen. Laten we eens kijken waar gebruikers over de hele wereld dit voor gebruiken.

Toepasbaarheid van de On-prem naar D365 Cloud Sync-oplossing

Voor het geval u zich afvraagt waarom u dit überhaupt zou moeten doen, zijn hier twee veel voorkomende scenario's die dicht bij huis kunnen raken:

Scenario 1

Het bedrijf waarvoor u werkt, gebruikt nog steeds Microsoft Dynamics CRM on-premises, en zij zijn momenteel bezig met de migratie naar Microsoft Dynamics 365 Online. Zij hebben verschillende integraties tussen van hun SQL-server databases naar hun Microsoft Dynamics CRM on-premises.

Het probleem is, u kunt niet rechtstreeks verbinding maken met de Microsoft Dynamics 365 Online databaseen als gevolg daarvan, begin je je af te vragen of:

  • U zult alle processen vanaf nul moeten creëren met behulp van de Dynamics CRM SDK van Microsoft;
  • U moet alle processen die gebruik maken van de Web API vanaf nul creëren;
  • U zult C# moeten leren om dit allemaal te kunnen doen;

Scenario 2

Het bedrijf waarvoor u werkt, heeft een op maat gemaakt ERP-systeem met een SQL Server-database als back-end. Ze besluiten om Microsoft Dynamics 365 CRM te gebruiken als hun eigen Customer Relationship Management System.

Vervolgens zouden zij graag de mogelijkheid hebben om het CRM op een geautomatiseerde manier te vullen met bestaande gegevens uit hun ERP-systeem en beide zijden consistent te houden.

Dit proces handmatig uitvoeren is praktisch onmogelijk omdat er tienduizenden records zijn die aan beide zijden identiek moeten zijn, met inbegrip van rekeningen, contacten en producten.

Maar, het IT-team van de onderneming heeft niet veel ervaring met de nodige programmeertalen en frameworkszoals C#, REST services of de CRM API. Ze hebben wel ervaring met SQL, maar kan dat van nut zijn? De manager vraagt zich af of ze:

  • Zal een adviesbureau moeten inhuren om deze dienst voor hen te verrichten.
  • Zal afhangen van het genoemde consultancybedrijf om nieuwe functies te onderhouden en toe te voegen naarmate hun bedrijf zich uitbreidt.

Gelukkig is het antwoord op al deze hypothetische vragen geenen hopelijk doet het gebruik van bovenstaand voorbeeld op dit moment een belletje rinkelen.

Met Connect Bridge, u kunt uw bestaande vaardigheden op een efficiënte manier inzetten EN uw bestaande software, databanken en processen behouden.

Maar je hoeft ons niet op ons woord te geloven. Bekijk het stap-voor-stap voorbeeld hieronder, of, nog beter, vraag om uw gratis proefversie en probeer het zelf eens.

Invullen van Dynamics 365 Online Accounts uit Adventure Works Databasetabel DimCustomer

Voorbereiding

  1. Maak de volgende triggers:

    --*****************************************************************************

    CREATE TRIGGER [dbo].[OnDimCustomerInsert] OP [dbo].[DimCustomer] AFTER INSERT

    AS

    BEGIN

           SET                               NOCOUNT OP

     

           DECLARE @SQL                      VARCHAR(255)

           DECLARE @AccountId                VARCHAR(255)

           DECLARE @Voornaam                VARCHAR(255)

           DECLARE @Achternaam                 VARCHAR(255)

           DECLARE @Tussenvoegsel               VARCHAR(255)

          

           SELECTEER @Voornaam       = [Voornaam],

                  @Achternaam        = [Achternaam],

                  @Tussenvoegsel      = [Tussenvoegsel]

           VAN INSERTED;

           SELECTEER @SQL = FORMATMESSAGE("INSERT INTO ACCOUNT (Naam) VALUES(''%s''); SELECT SCOPE_IDENTITY();,

           @Voornaam + '-' + '-' + @Achternaam)

          

           CREATE TABEL #AccountId(ID VARCHAR(255))

           INSERT #AccountId

           EXEC(@SQL) AT D365_CRM

     

           SELECTEER @AccountId = ID van #AccountId

           UPDATE DimCustomer SET CustomerAlternateKey = @AccountId waarbij Voornaam = @Voornaam en Tussenvoegsel = @Tussenvoegsel en Achternaam = @Achternaam

     

           PRINT @Voornaam + ' ' + @Tussenvoegsel + ' ' + @Achternaam;

    EINDE

    --*****************************************************************************

    CREATE TRIGGER [dbo].[OnDimCustomerUpdate] OP [dbo].[DimCustomer] AFTER UPDATE

    AS

    BEGIN

           SET                               NOCOUNT OP

     

           DECLARE @SQL                      VARCHAR(255)

           DECLARE @AccountId                VARCHAR(255)

           DECLARE @Voornaam                VARCHAR(255)

           DECLARE @Achternaam                 VARCHAR(255)

           DECLARE @Tussenvoegsel               VARCHAR(255)

          

           SELECTEER @AccountId       = [CustomerAlternateKey],

                  @Voornaam       = [Voornaam],

                  @Achternaam        = [Achternaam],

                  @Tussenvoegsel      = [Tussenvoegsel]

           VAN INSERTED;

     

           SELECTEER @SQL = FORMATMESSAGE(UPDATE ACCOUNT SET Name=''%s'' WHERE ACCOUNTID=''%s'', @Voornaam + '-' + '-' + @Achternaam, @AccountId)

           EXEC(@SQL) AT D365_CRM;

           PRINT @Voornaam + ' ' + @Tussenvoegsel + ' ' + @Achternaam;

     

    EINDE

    2. Uw SSMS Object Explorer venster zou nu twee nieuwe triggers moeten bevatten en er als volgt uit moeten zien:
    Afbeelding
    3 -Open je Dynamics 365 Online instance en navigeer naar de Accounts. We zullen 3 nieuwe records invoegen voor 'ABC Technology', 'Billy Charity', en 'Tom Cat' bij de volgende stap. Op dit moment staan ze nog niet in Accounts.
    Afbeelding

    Test

     1 - Open in SSMS een nieuw queryvenster en plak het volgende:

    INSERT INTO [AdventureWorksDW].[dbo].[DimCustomer] (Voornaam, Tussenvoegsel, Achternaam, CustomerAlternateKey) waarden (ABC Technologie, '' ,GMB, CT0001);

    INSERT INTO [AdventureWorksDW].[dbo].[DimCustomer] (Voornaam, Tussenvoegsel, Achternaam, CustomerAlternateKey) waarden (Billy Charity, '' ,SA, CT0002);

    INSERT INTO [AdventureWorksDW].[dbo].[DimCustomer] (Voornaam, Tussenvoegsel, Achternaam, CustomerAlternateKey) waarden (Tom Cat, '' ,"ORG, CT0003);

     

    SELECTEER * VAN DimCustomer WAAR Voornaam = ABC Technologie;

    SELECTEER * VAN DimCustomer WAAR Voornaam = Billy Charity;

    SELECTEER * VAN DimCustomer WAAR Voornaam = Tom Cat;

    2 - Start de scripts door op F5 te drukken of op de Execute knop in SSMS.
    SSMS AdventureWorks uitvoeren
    U zou nu 3 bijkomende records moeten ingevoegd hebben in de DimCustomer tabel.
    Afbeelding
    3 - Navigeer terug naar je Dynamics 365 Accounts en ververs. Bingo!
    Afbeelding

    3 nieuwe accounts werden toegevoegd aan Dynamics 365 zonder Dynamics 365 aan te raken. Cool, toch?

    Maar wacht eens even, in de tabel DimCustomer, heeft het veld CustomerAlternateKey een vreemd nummer. Het zijn niet de waarden die we in de eerste plaats hebben ingevoegd. In plaats daarvan hebben we de unieke ID van de rekening gegenereerd in Dynamics 365. Hoe is dat mogelijk?

    Als je goed kijkt naar de trigger OnDimCustomerInsert, zul je zien dat SELECT SCOPE_IDENTITY(); verantwoordelijk is voor het teruggeven van de rekening-ID die zal worden gebruikt om de tabel DimCustomer bij te werken. Dat zal cruciaal zijn om updates uit te voeren op bestaande rekeningen in Dynamics 365 wanneer een record in de tabel DimCustomer wordt gewijzigd.

    Om ons punt te bewijzen, werk de records bij door in SSMS de volgende code uit te voeren:

    UPDATE [AdventureWorksDW].[dbo].[DimCustomer] SET Achternaam = LTD WAAR CustomerAlternateKey = 'account(9a1bc5cb-6ad7-e811-a96f-000d3a2cb90b)';

    NOOT: VERVANG DE STRING account(9a1bc5cb-6ad7-e811-a96f-000d3a2cb90b) MET DE WAARDEN DIE IN UW OMGEVING WORDEN GEGENEREERD.

    Na het uitvoeren van de updates voor de 3 accounts, is hier het resultaat in Dynamics 365.
    Afbeelding

    Lief!

    Conclusie

    Dit zijn eenvoudige voorbeelden, maar ze laten wel zien hoe dit in de praktijk werkt. Het is een schaalbare en krachtige oplossing die u in staat stelt om naadloos:

    • Centraliseer alles wat voorheen verbonden was met uw on-prem Dynamics.
    • Ga over naar de online versie van Dynamics en laat de bestaande integraties normaal werken.

    En, niet het minst belangrijke:

    • Het is niet nodig om een nieuwe technologie of programmeertaal te leren! Het is zo makkelijk als het kan.
    • U kunt het proces verbeteren door de triggers aan te passen.

    Ook, Als u meteen naar beneden bent gescrold om uit te zoeken met welke andere Dynamics 365-oplossingen u gemakkelijk Connect Bridge kunt aansluiten, dan is dit het gedeelte!

    Dat zijn ze:

    Wat een traktatie!

    Als u opmerkingen of suggesties heeft, schrijf ze dan in de ruimte hieronder en we zullen zo snel mogelijk reageren.

    Waarom klanten Connect Bridge gebruiken

    Bekijk een korte video om erachter te komen:
    Afbeelding

    Hulpbron links

    Artikel laatst bijgewerkt op: 28 maart 2022

    Ana Neto - Technisch adviseur, Auteur

    Ana Neto
    technisch adviseur bij Connecting Software

    Auteur:

    Ik ben software-ingenieur sinds 1997, met een recentere liefde voor schrijven en spreken in het openbaar.  Hebt u vragen of opmerkingen over dit bericht of over Connect Bridge? Ik zou graag uw feedback hebben!

     ana@connecting-software.com


    Medewerkers: Jefferson Kenji Takahashi, Diogo Gouveia

    Opmerkingen 4

    1. Ziet er interessant uit - hoe zit het met business rule enforcement? We moeten bijvoorbeeld transacties van onze POS (gegevens in SQL-tabellen) in Business Central krijgen - dus hoe zit het met het use case waarbij de verkoop een klant en/of product betreft die niet bestaat in D365?

    2. Post
      Auteur

      Hoi Paul,

      Als je de gegevens die je van je POS hebt in de SQL tabellen kunt krijgen en ze volgen een structuur die je kunt begrijpen, dan kun je Connect Bridge om alles in Business Central te krijgen. Als de verkoop een klant en/of product betreft die niet in D365 bestaan, moet u beslissen wat u gaat doen. U kunt bijvoorbeeld een generieke klant of generiek product gebruiken, of u kunt direct nieuwe klanten of producten aanmaken.

      Wij zullen contact met u opnemen via het door u opgegeven e-mailadres om deze optie met u te verkennen.

      Ana Neto

    Geef een reactie

    Het e-mailadres wordt niet gepubliceerd.