Обеспечение миграции Dynamics 365 из помещения в облако 'не уничтожит необходимые вам интеграции

Обеспечение миграции Dynamics 365 из помещения в облако не приведет к разрушению необходимых интеграций

Ана Нето Разъемы, Продукты и решения, Технический 4 Комментарии

Статья обновлена в последний раз: 28 марта 2022 года

Давайте посмотрим на следующее сценарий:

Процветающая компания использует Microsoft Dynamics CRM на месте, интегрированную с ERP (Dynamics NAV), SharePoint и бухгалтерской системой.

После некоторых исследований они осознали преимущества перехода на Dynamics 365 Online и облако Azure. Однако они также обнаружили, что Microsoft не предоставляет своим пользователям практического решения для переноса баз данных и всех других существующих интеграций из Dynamics CRM в Dynamics 365 Online.

Если у создателя программного обеспечения нет ответа на этот вопрос, то как эта компания может воплотить свои желания в жизнь?

Мы с гордостью представляем их решение для подключения к базе данных Dynamics 365.... без фактического подключения к базе данных!

Перемещение Dynamics CRM On-Prem в D365 Online

Хотя можно выполнить Развертывание Dynamics 365 в помещенияхМожно с уверенностью сказать, что использование Dynamics 365 онлайн в настоящее время является наиболее привлекательным вариантом практически для всех компаний.

Исследуя модели 1ТП22Т онлайн в сравнении с локальными, они быстро пришли к выводу, что версия 1ТП22Т онлайн "Программное обеспечение как услуга" (SaaS) имеет следующие преимущества:

  • Меньше стресса - Вам не нужно приобретать оборудование или инфраструктуру, и вам не нужно ее обслуживать.
  • Нет обязательство - Программное обеспечение, как правило, лицензируется по модели "оплата по факту", а не единовременная покупка на одно место.
  • Универсальный - SaaS часто предлагает универсальный доступ, позволяя подключаться к программному обеспечению с любого устройства (настольного компьютера, ноутбука, мобильного телефона) при условии, что у пользователя есть подключение к Интернету.
  • Доступный - Первоначальные инвестиции обычно значительно ниже, чем при покупке оборудования и программного обеспечения, установленного в помещении.
  • Надежный - Облачное решение поставляется с соглашением о высокой доступности (High Availability SLA).

Итак, насколько легко синхронизировать базы данных, находящиеся в помещениях, с Dynamics 365 Online?

В идеальном миреМиграция с Microsoft Dynamics CRM on-premises на Dynamics 365 online будет легко включать существующие интеграции с Microsoft Dynamics CRM on-premises. Это должно быть еще проще, если у вас уже есть D365 и вы хотите перейти с Dynamics 365 on premise на облако.

Однако мы живем не в идеальном мире. Тем не менее, даже если переход в облако не так прост, как хотелось бытам советы и рекомендации, которые могут помочь вас на этом пути. Давайте начнем!

Что Microsoft предлагает вам за переход на Dynamics 365 онлайн

Существует такая вещь, как страница FastTrack. Microsoft предлагает поддержку через нее, чтобы помочь своим пользователям развернуть облачные решения Microsoft. Клиенты с соответствующими требованиям подписками на Microsoft 365, Dynamics 365 или Azure могут получить доступ к ней без дополнительной платы в течение всего срока действия подписки (ссылка в конце статьи). Таким образом, если вы собираетесь воспользоваться этой возможностью, рекомендуется проверить обновленные критерии соответствия тому, что вы пытаетесь перенести. Обычно Microsoft основывает их на количестве мест или доходах.

В апреле 2019 года компания Microsoft признала, что "до недавнего времени для клиентов не существовало механизма, позволяющего легко перенести их локальное развертывание на Dynamics 365 (онлайн)". Это было признано в 45-страничном документе PDF под названием "Microsoft Dynamics CRM on-premises to Dynamics 365 Online Migration", в котором описаны шаги, которые необходимо выполнить (ссылка на скачивание также находится в конце статьи).

Могу ли я получить доступ к базе данных Dynamics?

Возможным решением этой проблемы было бы найти способ получить доступ к базе данных Dynamics 365, а затем выполнить синхронизацию с Dynamics CRM на месте. Проблема в том, что Microsoft не предоставляет доступ к внутренней базе данных Dynamics.

Это вполне логично, поскольку раскрытие внутренних баз данных SaaS-сервисов внешнему миру считается плохой практикой и может привести к значительным нарушениям безопасности или проблемам целостности данных. Вместо этого Microsoft предлагает официальный API для осуществления взаимодействия с данными в D365 в режиме онлайн.

Основная причина использования API-сервисов заключается в том, что они не нарушают внутренних бизнес-правил и ограничений, гарантируя, что клиентские приложения не будут препятствовать производительности. Они также помогают поддерживать целостность данных и согласованность внутренней базы данных. Довольно выгодно, не так ли?

Единственным недостатком является то, что для разработки процессов манипулирования данными через API требуется много навыков и времени. Кроме того, вам придется погрузиться в тонны документации, чтобы найти нужные параметры и сделать соответствующие вызовы методов и функций, предоставляемых соответствующими интерфейсами. К сожалению, так все и происходит.

Что если бы вы могли сделать это проще? Если вы знакомы с SQL, было бы здорово, если бы вы могли просто использовать свои навыки SQL и взаимодействовать с D365 API так же, как с обычной СУБД (системой управления базами данных), или, что еще лучше, если бы вы могли просто попросить Dynamics 365 синхронизировать базу данных с помощью Microsoft SQL Server Management Studio...

Что ж, у нас для вас прекрасные новости!

Подключение к D365 Online из локальной СУБД или любого клиентского приложения

Мы приветствуем вас в нашем D365 Database Sync Solution! Будучи полностью основанными на интеграционной платформе Connecting Software Connect BridgeОн создан специально для синхронизации локальных баз данных с облаком D365. Удивительно, правда?

Если вам интересно, как это работает, Connect Bridge переводит стандартный синтаксис ANSI SQL в соответствующие вызовы API.

Обеспечивая доступ к данным с помощью вызовов API (хотя вам не нужно об этом беспокоиться), это решение сохраняет целостность вашей целевой системы. Кроме того, вы получаете возможность легко взаимодействовать с любой целевой системой через стандартные SELECT, INSERT, UPDATE и DELETE заявления.

Знаете ли вы, что это значит? Вы можете подключение и вставка данных в D365 онлайн, из локальной СУБД или любого клиентского приложения!

Это особенно удобно в случае компаний, переходящих с Dynamics CRM on-prem на D365 online, у которых есть базы данных SQL on-prem или приложения, подключенные к Dynamics. К счастью, эти связи можно сохранить, внедрив Connect Bridge. Именно так поступила одна итальянская сеть супермаркетов, о чем вы можете прочитать в этой статье тематическое исследование.

Важно отметить, что если вы хотите подключиться к другим решениям Dynamics 365, таким как Dynamics 365 Business Central или Finance, это также работает! Мы вас прикроем...в конце статьи.

Теперь пришло время посмотреть, как это работает на практике. Вы можете воспользоваться бесплатной пробной версией и попробовать сами, можете попросить наших экспертов показать вам все на бесплатной демонстрации или просто читать дальше!

Из любой базы данных в Dynamics 365 Онлайн

Знаменитая база данных Adventure Works DW (Datawarehouse) от Microsoft (скачать можно в конце), будет служить нам базой для этой демонстрации. Мы покажем, как легко интегрировать существующие процессы с Microsoft Dynamics 365 Online с помощью платформы Connect Bridge.

В следующей процедуре мы будем использовать SSMS (SQL Server Management Studio) для управления базой данных SQL Server:

1 - После настройки базы данных AdventureWorks вы увидите схему базы данных в окне Object Explorer, как показано на следующем изображении.

SSMS AdventureWorks

2 - Теперь мы создадим сервер Linked Server. Для этого выполним следующие шаги обучающее видео.

 Обратите внимание, что создание соединений Linked Server с любой целевой системой с помощью коннекторов возможно, поскольку мы используем платформа 1ТП16Т. Для наших пользователей во всем мире доступно более 400 разъемов. В данном примере мы специально используем разъем Dynamics 365.

Логотипы некоторых разъемов Connect Bridge

Выбор соединителей Connecting Software в области CRM, ERP и бухгалтерского учета

3 - После настройки Linked Server будет выглядеть так, как будто вы обращаетесь к внутренней базе данных Dynamics в SSMS. На изображении ниже вы можете увидеть его с именем "D365_CRM".

Изображение

Развернув узел каталогов в TreeView, мы можем увидеть всю схему, предоставляемую Dynamics 365, точно так же, как и при обращении к обычной базе данных. Но на самом деле это абстракция, а вызовы API выполняются в фоновом режиме, чтобы сделать все так просто на переднем плане.

Использование этой трехэтапной процедуры позволит вам создать любой вид интеграции и/или настроить существующие процессы. Давайте посмотрим, для чего это используется пользователями по всему миру.

Применимость решения синхронизации между локальной и облачной средой D365

Если вы задаетесь вопросом, зачем вообще это нужно, вот два распространенных сценария, которые могут оказаться близкими к реальности:

Сценарий 1

Компания, в которой вы работаете, все еще использует Microsoft Dynamics CRM на местном уровне, и в настоящее время она находится в процессе перехода на Microsoft Dynamics 365 Online. У них есть несколько интеграций между базами данных SQL-сервера и Microsoft Dynamics CRM on-premises.

Проблема в следующем, вы не можете напрямую подключиться к базе данных Microsoft Dynamics 365 Onlineи в результате вы начинаете задумываться о том:

  • Вам придется создавать с нуля все процессы, используя Dynamics CRM SDK от Microsoft;
  • Вам придется создавать с нуля все процессы, используя Web API;
  • Для всего этого вам придется изучить C#;

Сценарий 2

Компания, в которой вы работаете, имеет разработанную на заказ ERP-систему с базой данных SQL Server в качестве внутреннего интерфейса. Они решили использовать Microsoft Dynamics 365 CRM в качестве собственной системы управления взаимоотношениями с клиентами.

Затем они хотели бы иметь возможность автоматически заполнять CRM существующими данными из ERP-системы и поддерживать согласованность обеих сторон.

Выполнить этот процесс вручную практически невозможно, поскольку существуют десятки тысяч записей, которые должны быть идентичны с обеих сторон, включая счета, контакты и продукты.

Однако, ИТ-команда компании не имеет большого опыта работы с необходимыми языками программирования и фреймворкамитакие как C#, REST-сервисы или CRM API. У них есть опыт работы с SQL, но может ли он быть полезен? Менеджеру интересно, смогут ли они:

  • Придется нанять консалтинговую компанию, чтобы она выполнила для них эту услугу.
  • Будет зависеть от указанной консалтинговой компании, которая будет поддерживать и добавлять новые функции по мере расширения бизнеса.

К счастью, ответ на все эти гипотетические вопросы таков нетИ, надеюсь, на данный момент использование приведенного выше примера напоминает о себе.

С Connect Bridge, вы можете эффективно использовать имеющиеся навыки и сохранить существующее программное обеспечение, базы данных и процессы.

Но вам не обязательно верить нам на слово. Посмотрите пошаговый пример ниже или, что еще лучше, попросите вашего бесплатная пробная версия и попробуйте сами.

Заполнение онлайн-счетов Dynamics 365 из таблицы DimCustomer базы данных Adventure Works

Подготовка

  1. Создайте следующие триггеры:

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

    CREATE TRIGGER [dbo].[OnDimCustomerInsert .] ON [dbo].[DimCustomer] ПОСЛЕ ИНСЕРТ

    AS

    НАЧАЛО РАБОТЫ

           SET                               NOCOUNT ON

     

           ДЕКЛАРЕ @SQL                      VARCHAR(255)

           ДЕКЛАРЕ @AccountId                VARCHAR(255)

           ДЕКЛАРЕ @Имя первого лица                VARCHAR(255)

           ДЕКЛАРЕ @Фамилия                 VARCHAR(255)

           ДЕКЛАРЕ @MiddleName               VARCHAR(255)

          

           ВЫБОРИТЬ @Имя первого лица       = [Имя],

                  @Фамилия        = [Фамилия],

                  @MiddleName      = [MiddleName]

           ОТ ОТМЕНЯЕТСЯ;

           ВЫБОРИТЬ @SQL = ФОРМАТМЕССАЖ('ИНСТРУМЕНТ В СЧЕТ (Имя) VALUES(''%s'); SELECT SCOPE_IDENTITY();',

           @Имя первого лица + '-' + '-' + @Фамилия)

          

           CREATE ТАБЛИЦА #AccountId(ID VARCHAR(255))

           ИНСЕРТ #AccountId

           EXEC(@SQL) AT D365_CRM

     

           ВЫБОРИТЬ @AccountId = ID с #AccountId

           ОБНАРУЖЕНИЕ DimCustomer SET CustomerAlternateKey = @AccountId где Имя = @Имя первого лица и MiddleName = @MiddleName и Фамилия = @Фамилия

     

           ПРИНТ @Имя первого лица + ' ' + @MiddleName + ' ' + @Фамилия;

    КОНЕЦ

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

    CREATE TRIGGER [dbo].[OnDimCustomerUpdate .] ON [dbo].[DimCustomer] ПОСЛЕ ОБНАРУЖЕНИЕ

    AS

    НАЧАЛО РАБОТЫ

           SET                               NOCOUNT ON

     

           ДЕКЛАРЕ @SQL                      VARCHAR(255)

           ДЕКЛАРЕ @AccountId                VARCHAR(255)

           ДЕКЛАРЕ @Имя первого лица                VARCHAR(255)

           ДЕКЛАРЕ @Фамилия                 VARCHAR(255)

           ДЕКЛАРЕ @MiddleName               VARCHAR(255)

          

           ВЫБОРИТЬ @Счёт       = [CustomerAlternateKey],

                  @Имя       = [Имя],

                  @Фамилия        = [Фамилия],

                  @MiddleName      = [MiddleName]

           ОТ ОТМЕНЯЕТСЯ;

     

           ВЫБОРИТЬ @SQL = ФОРМАТМЕССАЖ('UPDATE ACCOUNT SET Name=''%s'' WHERE ACCOUNTID=''%s''', @Имя первого лица + '-' + '-' + @Фамилия, @AccountId)

           EXEC(@SQL) AT D365_CRM;

           ПРИНТ @Имя первого лица + ' ' + @MiddleName + ' ' + @Фамилия;

     

    КОНЕЦ

    2. Ваше окно SSMS Object Explorer теперь должно содержать два новых триггера и выглядеть следующим образом:
    Изображение
    3 -Откройте ваш экземпляр Dynamics 365 Online и перейдите в раздел "Счета". На следующем шаге мы вставим 3 новые записи для 'ABC Technology', 'Billy Charity' и 'Tom Cat'. На данный момент их все еще нет в учетных записях.
    Изображение

    Тестирование

     1 - В SSMS откройте новое окно запроса и вставьте следующее:

    ИНСЕРТ INTO [AdventureWorksDW].[dbo].[DimCustomer] (Имя, MiddleName, Фамилия, CustomerAlternateKey) значения ('ABC Technology', '' ,'GMB', 'CT0001');

    ИНСЕРТ INTO [AdventureWorksDW].[dbo].[DimCustomer] (Имя, MiddleName, Фамилия, CustomerAlternateKey) значения ('Billy Charity', '' ,'SA', 'CT0002');

    ИНСЕРТ INTO [AdventureWorksDW].[dbo].[DimCustomer] (Имя, MiddleName, Фамилия, CustomerAlternateKey) значения ('Tom Cat', '' ,'ORG', 'CT0003');

     

    ВЫБОРИТЬ * ОТ DimCustomer ГДЕ Имя = 'ABC Technology';

    ВЫБОРИТЬ * ОТ DimCustomer ГДЕ Имя = 'Billy Charity';

    ВЫБОРИТЬ * ОТ DimCustomer ГДЕ Имя = 'Tom Cat';

    2 - Запустите скрипты, нажав F5 или кнопку Execute в SSMS.
    SSMS Выполнить AdventureWorks
    Теперь в таблицу DimCustomer необходимо вставить 3 дополнительные записи.
    Изображение
    3 - Вернитесь к учетным записям Dynamics 365 и обновите их. Бинго!
    Изображение

    3 новых аккаунта были добавлены в Dynamics 365, не трогая Dynamics 365. Круто, правда?

    Но подождите секунду, в таблице DimCustomer поле CustomerAlternateKey имеет странное число. Это не те значения, которые мы вставили в первую очередь. Вместо них мы имеем уникальный ID счета, сгенерированный в Dynamics 365. Как такое возможно?

    Если вы внимательно посмотрите на триггер OnDimCustomerInsert, то заметите, что SELECT SCOPE_IDENTITY(); отвечает за возврат идентификатора счета, который будет использоваться для обновления таблицы DimCustomer. Это будет крайне важно для выполнения обновления существующих счетов в Dynamics 365 при изменении записи в таблице DimCustomer.

    Чтобы доказать нашу правоту, обновите созданные записи, выполнив в СУБД следующий код:

    ОБНАРУЖЕНИЕ [AdventureWorksDW].[dbo].[DimCustomer] SET Фамилия = 'LTD' ГДЕ CustomerAlternateKey = 'account(9a1bc5cb-6ad7-e811-a96f-000d3a2cb90b)';

    ПРИМЕЧАНИЕ: ЗАМЕНИТЬ СТРОКУ account(9a1bc5cb-6ad7-e811-a96f-000d3a2cb90b) СО ЗНАЧЕНИЯМИ, ГЕНЕРИРУЕМЫМИ В ВАШЕМ ОКРУЖЕНИИ.

    После выполнения обновлений для 3 учетных записей, вот результат в Dynamics 365.
    Изображение

    Мило!

    В заключении

    Это простые примеры, но они демонстрируют, как это работает на практике. Это масштабируемое и мощное решение, которое позволяет вам беспрепятственно:

    • Централизуйте все, что ранее было связано с вашей локальной системой Dynamics.
    • Переход на онлайн-версию Dynamics и сохранение нормальной работы существующих интеграций.

    И, что не менее важно:

    • Нет необходимости изучать новую технологию или язык программирования! Это как можно проще.
    • Вы можете улучшить процесс, изменив триггеры.

    Также, Если вы сразу прокрутили вниз, чтобы узнать, к каким еще решениям Dynamics 365 можно легко подключиться с помощью Connect Bridge, то это та самая часть!

    К ним относятся:

    Такое наслаждение!

    Если у вас есть какие-либо комментарии или предложения, напишите их в поле ниже, и мы ответим как можно скорее.

    Почему клиенты используют Connect Bridge

    Посмотри короткое видео, чтобы узнать:
    Изображение

    Ссылки на ресурсы

    Статья обновлена в последний раз: 28 марта 2022 года

    Ана Нето - Технический советник, автор.

    Ана Нето
    технический консультант 1ТП17Т

    Автор:

    Я работаю инженером-разработчиком программного обеспечения с 1997 года, с недавней любовью к письму и публичным выступлениям.  У вас есть вопросы или комментарии по поводу данного сообщения или по поводу Connect Bridge? С удовольствием выслушаю ваши отзывы!

     ana@connecting-software.com


    Соавторы: Джефферсон Кэндзи Такахаси, Диого Гувейя

    Комментарии 4

    1. Выглядит интересно - как насчет внедрения бизнес-правил, например, у нас есть потребность в получении транзакций из наших POS-терминалов (данные в таблицах SQL) в Business Central - так как насчет варианта использования, когда в продаже задействован клиент или продукт, которого нет в D365?

    2. Post
      Автор

      Привет, Пол,

      Если вы можете получить данные из вашего POS-терминала в таблицах SQL, и они следуют структуре, которую вы можете понять, то вы можете использовать Connect Bridge чтобы все попало в "Бизнес-Центр". Если в продаже участвует покупатель или продукт, которого нет в D365, вам нужно решить, что делать, например, вы можете использовать общего покупателя или продукт, или вы можете создавать новые на лету.

      Мы свяжемся с вами через электронную почту, которую вы указали, чтобы изучить эту опцию с вами.

      Ана Нето

    Добавить комментарий

    Ваш адрес email не будет опубликован.