Garantire che la vostra migrazione da Dynamics 365 on premise a cloud non distrugga le integrazioni di cui avete bisogno

Assicurarsi che la migrazione da Dynamics 365 on Premise a Cloud non distrugga le integrazioni di cui avete bisogno

Ana Neto Connettori, Prodotti e soluzioni, Tecnico 4 Commenti

Articolo aggiornato l'ultima volta il: 28 marzo 2022

Diamo un'occhiata a quanto segue scenario:

Una fiorente azienda ha utilizzato Microsoft Dynamics CRM on-premises, integrato con il suo ERP (Dynamics NAV), SharePoint e un sistema di contabilità.

Dopo alcune ricerche, riconoscono i vantaggi di passare a Dynamics 365 online e al cloud Azure. Tuttavia, scoprono anche che Microsoft non fornisce ai loro utenti una soluzione pratica per trasferire i database e tutte le altre integrazioni esistenti da Dynamics CRM a Dynamics 365 Online.

Se il creatore del software non ha una risposta a questa domanda, come può questa azienda realizzare i suoi desideri?

Siamo orgogliosi di presentare la loro soluzione per connettersi al database Dynamics 365.... senza connettersi effettivamente al database!

Spostare Dynamics CRM On-Prem a D365 Online

Anche se è possibile eseguire un Dynamics 365 distribuzione on-premisesè sicuro dire che usare Dynamics 365 online è attualmente l'opzione più attraente per quasi tutte le aziende là fuori.

Mentre indagano sui modelli Dynamics 365 online vs. on-premises, raggiungono rapidamente la conclusione che la versione Software as a Service (SaaS) di Dynamics 365 online ha i seguenti vantaggi:

  • Meno stress - Non dovete acquistare hardware o infrastrutture, e non dovete mantenerle.
  • No impegno - Il software è in genere concesso in licenza su un modello continuo a pagamento piuttosto che un grande acquisto una tantum, per posto a sedere.
  • Versatile - SaaS spesso offre un accesso universale, permettendo di connettersi al software da qualsiasi dispositivo (desktop, laptop, telefono cellulare), purché l'utente abbia una connessione internet.
  • Affordable - L'investimento iniziale è di solito notevolmente inferiore all'acquisto di attrezzature e software in loco.
  • Affidabile - La soluzione cloud viene fornita con uno SLA di alta disponibilità.

Allora, quanto è facile sincronizzare i database on-premises con Dynamics 365 Online?

In un mondo perfettola migrazione da Microsoft Dynamics CRM on-premises a Dynamics 365 online includerebbe facilmente le integrazioni esistenti a Microsoft Dynamics CRM on-premises. Questo dovrebbe essere ancora più semplice nel caso in cui tu avessi già D365 e volessi andare forte di una migrazione da Dynamics 365 on premise a cloud.

Tuttavia, non viviamo in un mondo perfetto. Tuttavia, anche se passare al cloud non è così semplice come si spera, c'è consigli e trucchi che possono aiutare lungo la strada. Cominciamo!

Cosa ti offre Microsoft per il passaggio a Dynamics 365 Online

C'è questa cosa chiamata pagina FastTrack. Microsoft offre supporto attraverso di essa per aiutare i suoi utenti a distribuire le soluzioni cloud di Microsoft. I clienti con abbonamenti idonei a Microsoft 365, Dynamics 365 o Azure possono accedervi senza costi aggiuntivi per tutta la durata del loro abbonamento (link alla fine dell'articolo). Quindi, se avete intenzione di usarlo, si consiglia di controllare i criteri di ammissibilità aggiornati per ciò che si sta cercando di migrare. Microsoft di solito si basa sul numero di posti o sulle entrate.

Nell'aprile 2019, Microsoft ha riconosciuto che "Fino a poco tempo fa, non c'è stato alcun meccanismo disponibile per i clienti per spostare facilmente la loro implementazione on-premises a Dynamics 365 (online)". Questo è stato confessato in un documento PDF di 45 pagine intitolato "Microsoft Dynamics CRM on-premises to Dynamics 365 Online Migration", che descrive i passaggi da seguire (anche il link per il download è alla fine dell'articolo).

Posso accedere al database di Dynamics?

Una possibile soluzione per questo problema sarebbe quella di trovare un modo per accedere al database Dynamics 365 e poi andare per la sincronizzazione con il vostro Dynamics CRM on-premises. Il problema è che Microsoft non fornisce l'accesso al database Dynamics back-end.

Questo ha perfettamente senso, poiché esporre i database back-end dei servizi SaaS al mondo esterno è considerato una cattiva pratica e può portare a notevoli violazioni della sicurezza o problemi di integrità dei dati. Invece, Microsoft offre un'API ufficiale per eseguire l'interazione dei dati con D365 online.

La ragione principale per cui vengono utilizzati i servizi API è che non infrangono le regole e i vincoli interni al business, assicurando che le applicazioni client non ostacolino le prestazioni. Aiutano anche a mantenere l'integrità dei dati e la coerenza del database di back-end. Abbastanza vantaggioso, giusto?

L'unico aspetto negativo è che sono richieste molte competenze e tempo per lo sviluppo di processi per manipolare i dati attraverso l'API. Inoltre, dovrete immergervi in tonnellate di documentazione per scoprire i parametri corretti e fare le chiamate appropriate ai metodi e alle funzioni fornite dalle relative interfacce. Sfortunatamente, è solo il modo in cui funzionano le cose.

E se si potesse rendere tutto questo più semplice? Se avete familiarità con SQL, non sarebbe fantastico se poteste semplicemente sfruttare le vostre competenze SQL e interagire con l'API D365 come fareste con un normale DBMS (database management system), o meglio ancora, se poteste semplicemente far sincronizzare il database a Dynamics 365 usando Microsoft SQL Server Management Studio...

Bene, abbiamo una notizia meravigliosa per voi!

Connettersi a D365 Online da un DBMS locale o da qualsiasi applicazione client

Vi diamo il benvenuto al nostro D365 Database Sync Solution! Essendo interamente basato sulla piattaforma di integrazione di Connecting Software Connect Bridgeè fatto su misura per sincronizzare i database on-premises con il cloud D365. Incredibile, vero?

Se vi state chiedendo come funziona, Connect Bridge traduce la sintassi standard ANSI SQL nelle chiamate API appropriate.

Assicurandovi che l'accesso ai dati sia fatto con chiamate API (anche se non dovete preoccuparvene) questa soluzione mantiene l'integrità del vostro sistema di destinazione al sicuro. Inoltre, si ottiene anche la facilità di comunicare con qualsiasi sistema di destinazione tramite il SELECT, INSERT, UPDATE e DELETE standard dichiarazioni.

Sapete cosa significa questo? È possibile collegare e inserire dati in D365 online, dal vostro DBMS locale o da qualsiasi applicazione client!

Questo è particolarmente utile nel caso di aziende che migrano da Dynamics CRM on-prem a D365 online, che hanno database SQL on-prem o applicazioni collegate a Dynamics. Fortunatamente, queste connessioni possono essere mantenute implementando Connect Bridge. Questo è esattamente quello che ha fatto una catena di supermercati italiana, come potete leggere in questo caso studio.

È importante notare che se desideri connetterti ad altre soluzioni Dynamics 365, come Dynamics 365 Business Central o Finance, anche questo funziona! Ti copriamo le spalle...alla fine dell'articolo.

Ora, è il momento di vedere come funziona in pratica. Puoi andare per la prova gratuita e provarlo tu stesso, puoi chiedere ai nostri esperti di mostrartelo su una demo gratuita o puoi semplicemente continuare a leggere!

Da qualsiasi database a Dynamics 365 Online

Il famoso database Adventure Works DW (Datawarehouse) di Microsoft (download disponibile alla fine), servirà come base per questa dimostrazione. Mostreremo come sia facile integrare i vostri processi esistenti con Microsoft Dynamics 365 Online utilizzando la piattaforma Connect Bridge.

Nella seguente procedura, useremo SSMS (SQL Server Management Studio) per gestire il vostro database SQL Server:

1 - Una volta impostato il database di AdventureWorks, vedrete lo schema del database nella finestra Object Explorer, come nell'immagine seguente.

SSMS AdventureWorks

2 - Ora creeremo il Linked Server. Per questo seguiremo i passi di questo video tutorial.

 Si noti che la creazione di connessioni Linked Server a qualsiasi sistema di destinazione, per mezzo di connettori, è possibile perché stiamo usando il Piattaforma Connect Bridge. Ci sono più di 400 connettori disponibili per i nostri utenti in tutto il mondo. Per questo esempio, usiamo specificamente il connettore Dynamics 365.

Loghi di alcuni connettori Connect Bridge

La selezione di connettori di Connecting Software nelle aree CRM, ERP e contabilità

3 - Una volta che il Linked Server è impostato, sembrerà come se si stesse accedendo al database back-end di Dynamics in SSMS. Nell'immagine qui sotto potete vederlo con il nome "D365_CRM".

Immagine

Espandendo il nodo cataloghi nella TreeView, possiamo vedere l'intero schema fornito da Dynamics 365, proprio come si vedrebbe accedendo ad un normale database. Ma questa è, in effetti, un'astrazione con chiamate API in esecuzione in background per rendere questo semplice nel front-end.

L'utilizzo di questa procedura in 3 fasi vi permetterà di creare qualsiasi tipo di integrazione e/o di personalizzare i processi esistenti. Diamo un'occhiata a cosa usano gli utenti di tutto il mondo.

Applicabilità della soluzione On-prem a D365 Cloud Sync

Nel caso in cui vi stiate chiedendo perché mai avreste bisogno di farlo, ecco due scenari comuni che possono colpire da vicino:

Scenario 1

L'azienda per cui lavori usa ancora Microsoft Dynamics CRM on-premises, e sono attualmente in procinto di migrare a Microsoft Dynamics 365 Online. Hanno diverse integrazioni tra i loro database del server SQL e il loro Microsoft Dynamics CRM on-premises.

Il problema è, non puoi connetterti direttamente al database di Microsoft Dynamics 365 Onlinee, di conseguenza, si comincia a chiedersi se:

  • Dovrete creare da zero tutti i processi utilizzando il Dynamics CRM SDK di Microsoft;
  • Dovrete creare, da zero, tutti i processi utilizzando l'API Web;
  • Dovrete imparare C# per fare tutto questo;

Scenario 2

L'azienda per cui lavori ha un sistema ERP fatto su misura con un database SQL Server come back-end. Decidono di usare Microsoft Dynamics 365 CRM come loro sistema di gestione delle relazioni con i clienti.

Poi, vorrebbero avere la possibilità di popolare il CRM con i dati esistenti dal loro sistema ERP in modo automatico e mantenere entrambi i lati coerenti.

Fare questo processo manualmente è praticamente impossibile, dato che ci sono decine di migliaia di record che devono essere identici da entrambe le parti, tra cui conti, contatti e prodotti.

Tuttavia, il team IT dell'azienda non ha molta esperienza con i linguaggi di programmazione e i framework necessaricome C#, servizi REST o l'API del CRM. Hanno esperienza con SQL, ma può essere utile? Il manager si chiede se:

  • Dovranno assumere una società di consulenza che esegua questo servizio per loro.
  • Dipenderà dalla suddetta società di consulenza per mantenere e aggiungere nuove funzionalità man mano che il loro business si espande.

Per fortuna, la risposta a tutte queste domande ipotetiche è no, e si spera che a questo punto l'uso dell'esempio di cui sopra suoni un campanello.

Con Connect Bridge, potete sfruttare le vostre competenze esistenti in modo efficiente E mantenere i vostri software, database e processi esistenti.

Ma non devi crederci sulla parola. Guarda l'esempio passo dopo passo qui sotto, o, ancora meglio, chiedi il tuo prova gratuita e provate voi stessi.

Popolamento dei conti online Dynamics 365 dalla tabella DimCustomer del database di Adventure Works

Preparazione

  1. Creare i seguenti trigger:

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

    CREARE TRIGGER [dbo].[OnDimCustomerInsert] SU [dbo].[DimCustomer] DOPO INSERIRE

    AS

    INIZIO

           SET                               NOCOUNT SU

     

           DICHIARAZIONE @SQL                      VARCHAR(255)

           DICHIARAZIONE @AccountId                VARCHAR(255)

           DICHIARAZIONE @NomeNome                VARCHAR(255)

           DICHIARAZIONE @Cognome                 VARCHAR(255)

           DICHIARAZIONE @MiddleName               VARCHAR(255)

          

           SELEZIONARE @NomeNome       = [Nome di battesimo],

                  @Cognome        = [Cognome],

                  @MiddleName      = [MiddleName]

           DA INSERITO;

           SELEZIONARE @SQL = FORMATMESSAGGIO(INSERIRE IN CONTO (Nome) VALORI(''%s''); SELEZIONARE SCOPO_IDENTITÀ_IDENTITA'();'.,

           @NomeNome + '-' + '-' + @Cognome)

          

           CREARE TABELLA #AccountId(ID VARCHAR(255))

           INSERIRE #AccountId

           EXEC(@SQL) AT D365_CRM

     

           SELEZIONARE @AccountId = ID da #AccountId

           AGGIORNA DimCustomer SET CustomerAlternateKey = @AccountId dove NomeNome = @NomeNome e MiddleName = @MiddleName e Cognome = @Cognome

     

           STAMPA @NomeNome + ' ' + @MiddleName + ' ' + @Cognome;

    FINE

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

    CREARE TRIGGER [dbo].[OnDimCustomerUpdate] SU [dbo].[DimCustomer] DOPO AGGIORNA

    AS

    INIZIO

           SET                               NOCOUNT SU

     

           DICHIARAZIONE @SQL                      VARCHAR(255)

           DICHIARAZIONE @AccountId                VARCHAR(255)

           DICHIARAZIONE @NomeNome                VARCHAR(255)

           DICHIARAZIONE @Cognome                 VARCHAR(255)

           DICHIARAZIONE @MiddleName               VARCHAR(255)

          

           SELEZIONARE @AccountId       = [CustomerAlternateKey],

                  @NomeNome       = [NomeNome],

                  @Cognome        = [Cognome],

                  @MiddleName      = [MiddleName]

           DA INSERITO;

     

           SELEZIONARE @SQL = FORMATMESSAGGIO('UPDATE ACCOUNT SET Name=''%s'' WHERE ACCOUNTID=''%s''', @NomeNome + '-' + '-' + @Cognome, @AccountId)

           EXEC(@SQL) AT D365_CRM;

           STAMPA @NomeNome + ' ' + @MiddleName + ' ' + @Cognome;

     

    FINE

    2. La finestra di SSMS Object Explorer dovrebbe ora contenere due nuovi trigger e assomigliare a questo:
    Immagine
    3 - Aprite la vostra istanza di Dynamics 365 Online e navigate fino alla sezione Conti. Inseriremo 3 nuovi record per 'ABC Technology', 'Billy Charity', e 'Tom Cat' al prossimo passo. A questo punto, non sono ancora in Accounts.
    Immagine

    Test

     1 - In SSMS aprite una nuova finestra di query e incollate quanto segue:

    INSERIRE INTO [AdventureWorksDW].[dbo].[DimCustomer] (NomeNome, MiddleName, Cognome, CustomerAlternateKey) valori (Tecnologia ABC, '' ,'GMB', 'CT0001');

    INSERIRE INTO [AdventureWorksDW].[dbo].[DimCustomer] (NomeNome, MiddleName, Cognome, CustomerAlternateKey) valori ('Billy Charity', '' ,'SA', CT0002);

    INSERIRE INTO [AdventureWorksDW].[dbo].[DimCustomer] (NomeNome, MiddleName, Cognome, CustomerAlternateKey) valori ('Tom Cat', '' ,'ORG', CT0003);

     

    SELEZIONARE * DA DimCustomer DOVE NomeNome = Tecnologia ABC;

    SELEZIONARE * DA DimCustomer DOVE NomeNome = 'Billy Charity';

    SELEZIONARE * DA DimCustomer DOVE NomeNome = 'Tom Cat';

    2 - Esegui gli script premendo F5 o il pulsante Execute in SSMS.
    SSMS Eseguire AdventureWorks
    Ora si dovrebbero inserire 3 record aggiuntivi nella tabella DimCustomer.
    Immagine
    3 - Naviga indietro ai tuoi account Dynamics 365 e aggiorna. Bingo!
    Immagine

    3 nuovi account sono stati aggiunti a Dynamics 365 senza toccare Dynamics 365. Forte, vero?

    Ma aspettate un attimo, nella tabella DimCustomer, il campo CustomerAlternateKey ha un numero strano. Non sono i valori che abbiamo inserito all'inizio. Invece, abbiamo l'ID unico dell'account generato in Dynamics 365. Com'è possibile?

    Se guardate attentamente il trigger OnDimCustomerInsert, noterete che SELECT SCOPE_IDENTITY(); è responsabile della restituzione dell'ID del conto che sarà usato per aggiornare la tabella DimCustomer. Questo sarà fondamentale per eseguire gli aggiornamenti sui conti esistenti in Dynamics 365 quando un record viene modificato nella tabella DimCustomer.

    Per dimostrare la nostra tesi, aggiornare i record creati eseguendo in SSMS il seguente codice:

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

    NOTA: SOSTITUIRE LA STRINGA account(9a1bc5cb-6ad7-e811-a96f-000d3a2cb90b) CON I VALORI GENERATI NEL VOSTRO AMBIENTE.

    Dopo aver eseguito gli aggiornamenti per i 3 account, ecco il risultato in Dynamics 365.
    Immagine

    Che bello!

    In conclusione

    Questi sono semplici esempi, ma dimostrano come funziona in pratica. È una soluzione scalabile e potente che permette di senza soluzione di continuità:

    • Centralizza tutto ciò che era precedentemente collegato al vostro Dynamics on-prem.
    • Passare alla versione online di Dynamics e mantenere le integrazioni esistenti che funzionano normalmente.

    E, non meno importante:

    • Non c'è bisogno di imparare nessuna nuova tecnologia o linguaggio di programmazione! È più facile di così non si può.
    • È possibile migliorare il processo modificando i trigger.

    Inoltre, se siete subito scesi per scoprire a quali altre soluzioni Dynamics 365 potete facilmente collegarvi usando Connect Bridge, questa è quella parte!

    Essi sono:

    Che meraviglia!

    Se hai commenti o suggerimenti, scrivili nello spazio sottostante e ti risponderemo al più presto.

    Perché i clienti utilizzano Connect Bridge

    Guarda un breve video per scoprirlo:
    Immagine

    Link alle risorse

    Articolo aggiornato l'ultima volta il: 28 marzo 2022

    Ana Neto - Consulente tecnico, Autore

    Ana Neto
    technical consulente presso Connecting Software

    Autore:

    Sono un ingegnere del software dal 1997, con un amore più recente per la scrittura e per i discorsi pubblici.  Avete domande o commenti su questo post o su Connect Bridge? Mi piacerebbe avere il vostro feedback!

     ana@connecting-software.com


    Collaboratori: Jefferson Kenji Takahashi, Diogo Gouveia

    Commenti 4

    1. Sembra interessante - che ne è dell'applicazione delle regole aziendali? Ad esempio, abbiamo la necessità di ottenere le transazioni dai nostri POS (dati in tabelle SQL) in Business Central - quindi che ne è del caso d'uso in cui la vendita coinvolge un cliente e/o un prodotto che non esiste nel D365?

    2. Messaggio
      Autore

      Ciao Paul,

      Se si possono ottenere i dati che si hanno dal proprio POS nelle tabelle SQL e seguono una struttura comprensibile, allora si può utilizzare Connect Bridge per far entrare tutto in Business Central. Se la vendita riguarda un cliente e/o un prodotto che non esiste nel D365, è necessario decidere cosa fare, ad esempio si potrebbe utilizzare un cliente o un prodotto generico o crearne di nuovi al volo.

      Ci metteremo in contatto con voi attraverso l'e-mail da voi indicata per esplorare con voi questa opzione.

      Ana Neto

    Lascia un commento

    Il tuo indirizzo email non sarà pubblicato.