Dynamics 365のオンプレミスからクラウドへの移行で、必要な統合を確実に破壊しないために

Dynamics 365のオンプレミスからクラウドへの移行で、必要な統合を破壊しないために

アナ・ネト コネクタ, 製品とソリューション, 技術的なこと コメント

記事の最終更新日2022年3月28日

以下、見ていきましょう。 シナリオ:

Microsoft Dynamics CRMをオンプレミスで利用し、ERP(Dynamics NAV)、SharePoint、会計システムと連携している繁盛企業があります。

その結果、Dynamics 365オンラインとAzureクラウドに移行することのメリットを認識しました。しかし、Dynamics CRMからDynamics 365 Onlineにデータベースやその他の既存の統合機能を移行するための実用的なソリューションがMicrosoft社から提供されていないこともわかりました。

もし、作り手がこの問いに答えられないとしたら、この会社はどうやって願いを叶えるのだろう。

Dynamics 365のデータベースに接続するための、彼らのソリューションをご紹介します。

Dynamics CRMのオンプレミスからD365オンラインへの移行

を行うことは可能ですが Dynamics 365のオンプレミス展開Dynamics 365は、現在、ほぼすべての企業にとって最も魅力的な選択肢であると言ってもよいでしょう。

Dynamics 365のオンラインモデルとオンプレミスモデルを比較検討する中で、Dynamics 365オンラインのSaaS(Software as a Service)版には次のようなメリットがあるという結論にすぐに到達したそうです。

  • ストレスが少ない - ハードウェアやインフラを購入する必要がなく、メンテナンスも不要です。
  • コミットメント - ソフトウェアは通常、1回限りのシートごとの購入ではなく、継続的な従量課金モデルでライセンスされます。
  • 多用途 - SaaSは多くの場合、ユニバーサルアクセスを提供しており、ユーザーがインターネットに接続していれば、どのデバイス(デスクトップ、ノートパソコン、携帯電話)からもソフトウェアに接続することができます。
  • アフォーダブル - 初期投資額は、通常、オンプレミスで機器やソフトウェアを購入するよりもかなり低く抑えることができます。
  • 信頼できる - クラウドソリューションには、高可用性SLAが付属しています。

では、オンプレミスのデータベースをDynamics 365 Onlineに同期させるのは、どのくらい簡単なのだろうか。

完璧な世界ではオンプレミスのMicrosoft Dynamics CRMからDynamics 365オンラインへの移行は、オンプレミスのMicrosoft Dynamics CRMとの既存の連携も含めて簡単に行うことができます。すでにD365を導入しており、Dynamics 365のオンプレミスからクラウドへの移行を希望している場合は、さらにシンプルになるはずです。

しかし、私たちは完璧な世界に住んでいるわけではありません。それでも、たとえ クラウドへの移行は、期待するほど簡単ではない♪そこで 役立つヒントとコツ を、あなたの道しるべに。さあ、はじめましょう

Dynamics 365オンラインへの移行に際してマイクロソフトが提供するもの

FastTrackのページというのがあるんです。マイクロソフトは、ユーザーがマイクロソフトのクラウドソリューションを展開するのを支援するために、これを通じてサポートを提供しています。Microsoft 365、Dynamics 365、またはAzureの対象サブスクリプションをお持ちのお客様は、サブスクリプションの全期間中、追加費用なしでアクセスできます(記事末尾にリンクがあります)。したがって、これを利用しようとする場合は、移行しようとしているものについて、更新された適用基準を確認することをお勧めします。マイクロソフトは通常、シート数または収益に基づいてこれらを決定する。

2019年4月、マイクロソフトは「これまで、お客様がオンプレミスの展開をDynamics 365(オンライン)に簡単に移行できる仕組みがなかった」ことを認めました。これは「Microsoft Dynamics CRM on-premises to Dynamics 365 Online Migration」と題した45ページのPDF文書で告白され、その手順が説明されています(ダウンロードリンクも記事末にあります)。

Dynamicsのデータベースにアクセスできますか?

その場合、Dynamics 365のデータベースにアクセスし、オンプレミスのDynamics CRMと同期させる方法が考えられます。しかし、マイクロソフトはバックエンドのDynamicsデータベースへのアクセスを提供していません。

SaaSサービスのバックエンドデータベースを外部に公開することは、セキュリティ違反やデータの完全性の問題につながる可能性があるため、これは完全に理にかなっています。その代わり、マイクロソフトはD365オンラインとのデータインタラクションを実行するための公式APIを提供している。

APIサービスが利用される主な理由は、内部のビジネスルールや制約を破らないため、クライアントアプリケーションがパフォーマンスを阻害することがないことです。また、バックエンド・データベースのデータの整合性と一貫性を維持するのにも役立ちます。かなり有益でしょう?

唯一の欠点は、APIを通じてデータを操作するプロセスの開発に、多くのスキルと時間が必要なことです。さらに、正しいパラメータを発見し、関連するインターフェースが提供するメソッドや関数を適切に呼び出すために、大量のドキュメントを読み込まなければならない。残念ながら、これは仕方のないことなのです。

これをもっと簡単にできるとしたらどうでしょう。もしあなたがSQLに精通しているなら、そのSQLスキルを活用して、通常のDBMS(データベース管理システム)と同じようにD365 APIとやり取りできれば、あるいは、Microsoft SQL Server Management Studioを使ってDynamics 365にデータベースを同期させれば、素晴らしいことではないでしょうか...。

さて、そんなあなたに素敵なお知らせがあります。

ローカルDBMSや任意のクライアントアプリケーションからD365 Onlineに接続する。

へのご来場をお待ちしております。 D365 Database Sync Solution!Connecting Softwareの統合プラットフォームを全面的に採用しています。 Connect BridgeオンプレミスのデータベースをD365のクラウドと同期させるためにカスタムメイドされています。すごいでしょう?

どうなんだろうと思っていたら Connect Bridge は、ANSI 標準の SQL 構文を適切な API 呼び出しに変換します。

データへのアクセスはAPIコールで行われるようにすることで、(心配する必要はありませんが)このソリューションではターゲットシステムの整合性を確保します。加えて、どのターゲットシステムとも 標準的なSELECT、INSERT、UPDATE、DELETE の文言があります。

この意味がわかりますか?あなたは ローカルDBMSやクライアントアプリケーションからD365オンラインにデータを接続し、挿入することができます。!

特に、オンプレミスのDynamics CRMからD365オンラインに移行する企業で、オンプレミスのSQLデータベースやアプリケーションがDynamicsに接続されている場合、この機能は便利です。幸いなことに、Connect Bridgeを導入することで、これらの接続を維持することができます。これは、イタリアのスーパーマーケットチェーンが行ったことであり、次の記事で紹介されています。 ケーススタディ.

Dynamics 365 Business CentralやFinanceなど、他のDynamics 365ソリューションと接続したい場合も、同様に機能します。私たちは、あなたを応援します。記事末尾に.

さて、実際にどのような効果があるのか、見てみましょう。無料トライアルを利用して自分で試すこともできますし、私たちの専門家に無料デモで案内してもらうこともできますし、単純にこの先を読むこともできます。

任意のデータベースからDynamics 365オンラインへ

今回のデモでは、マイクロソフト社の有名なデータベース「Adventure Works DW(Datawarehouse)」(最後にダウンロードできます)をベースにしています。Connect Bridgeプラットフォームを使って、既存のプロセスをMicrosoft Dynamics 365 Onlineにシームレスに統合する方法を紹介します。

以下の手順では、SSMS(エスエルサーバーマネジメントスタジオ) を使用して、SQL Server データベースを管理します。

1 - AdventureWorksデータベースをセットアップすると、以下の画像のようにObject Explorerウィンドウにデータベースのスキーマが表示されます。

SSMS AdventureWorks

2 - これから、Linked Serverを作成します。そのためには、次のステップに従います。 ビデオチュートリアル.

 コネクタを使用して、任意のターゲットシステムへのLinked Server接続を作成できることに注意してください。 Connect Bridgeプラットフォーム.400以上のコネクタがあり、世界中のユーザーが容易に利用することができます。この例では、特にDynamics 365コネクタを使用します。

Connect Bridgeコネクタのロゴマーク(一部

Connecting SoftwareのCRM、ERP、会計分野でのコネクタの選択について

3 - Linked Serverが設定されると、SSMSでDynamicsのバックエンドデータベースにアクセスしているように見えます。下の画像では、"Linked Server "という名前で表示されています。D365_CRM」です。

イメージ

TreeViewのcatalogsノードを展開すると、通常のデータベースにアクセスしたときと同じように、Dynamics 365が提供するスキーマの全体像を確認することができます。しかし、これは実際には、フロントエンドでこのようにシンプルにするために、バックグラウンドでAPIコールが実行されている抽象化されたものなのです。

この3つのステップを踏むことで、あらゆる種類の統合や既存のプロセスのカスタマイズが可能になります。それでは、世界中のユーザーがどのように活用しているのか見てみましょう。

オンプレミスとD365のクラウド同期ソリューションの適用性

そもそもなぜこんなことが必要なのかと思われる方のために、身近にありそうな2つのシナリオをご紹介します。

シナリオ1

あなたの勤める会社では、現在もオンプレミスでMicrosoft Dynamics CRMを使用しており、Microsoft Dynamics 365 Onlineへの移行を進めているところです。SQLサーバーのデータベースとオンプレミスのMicrosoft Dynamics CRMの間にいくつかの統合があります。

問題は Microsoft Dynamics 365 Onlineのデータベースに直接接続できない。という疑問が湧いてきます。

  • マイクロソフト社のDynamics CRM SDKを使用して、すべてのプロセスを一から作成する必要があります。
  • Web APIを利用した処理を全て一から作成する必要があります。
  • これらを行うためには、C#を習得する必要があります。

シナリオ2

あなたの勤める会社は、SQL ServerデータベースをバックエンドとするカスタムメイドのERPシステムを持っています。彼らは、独自の顧客関係管理システムとしてMicrosoft Dynamics 365 CRMを使用することを決定しました。

そして、ERPシステムからCRMに既存のデータを自動入力し、両者の整合性を保つことを希望しています。

アカウント、コンタクト、製品など、双方で同一にする必要があるレコードは数万件に及ぶため、この作業を手作業で行うのは現実的に不可能である。

しかし。 自社のIT部門が、必要なプログラミング言語やフレームワークの使用経験が少ない。C#、RESTサービス、CRM APIなど。SQLの経験もあるが、それが役に立つのか?と、マネージャーは考えています。

  • このサービスを行うには、コンサルタント会社に依頼する必要があります。
  • 事業拡大に伴う新機能の保守・追加については、当該コンサルタント会社に依存することになる。

ありがたいことに、これらすべての仮説的な質問に対する答えは ノーと、この時点で、上の例の使い方がピンときたと思います。

と一緒に Connect Bridge。 既存のスキルを効率的に活用し、既存のソフトウェア、データベース、プロセスを維持することができます。

しかし、私たちの言葉を鵜呑みにする必要はありません。以下のステップバイステップの例を見てください。 フリートライアル を、ご自身で試してみてください。

アドベンチャーワークスのデータベーステーブルDimCustomerからDynamics 365オンラインアカウントに入力する

準備

  1. 以下のトリガーを作成します。

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

    CREATE TRIGGER [ディーボ].[OnDimCustomerInsert] オン [ディーボ].[DimCustomer] アフター INSERT

    エーエス

    ビギン

           セット                               ノーカウント オン

     

           DECLARE エスキューエル                      VARCHAR(255)

           DECLARE @AccountId                VARCHAR(255)

           DECLARE 名前                VARCHAR(255)

           DECLARE @ラストネーム                 VARCHAR(255)

           DECLARE @ミドルネーム               VARCHAR(255)

          

           セレクト 名前       = [FirstName】(ファーストネーム],

                  @ラストネーム        = [ラストネーム],

                  @ミドルネーム      = [ミドルネーム]

           フロム インサート;

           セレクト エスキューエル = フォーマット・メッセージ('INSERT INTO ACCOUNT (Name) VALUES(''%s''); SELECT SCOPE_IDENTITY();',

           名前 + '-' + '-' + @ラストネーム)

          

           CREATE テーブル #AccountId(ID VARCHAR(255))

           INSERT #AccountId

           エグゼック(エスキューエル) エーティー D365_CRM

     

           セレクト @AccountId = ID から #AccountId

           アップデイト DimCustomer セット CustomerAlternateKey = @AccountId 孰れ ファーストネーム = 名前 そして ミドルネーム = @ミドルネーム そして ラストネーム = @ラストネーム

     

           PRINT 名前 + ' ' + @ミドルネーム + ' ' + @ラストネーム;

    終了

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

    CREATE TRIGGER [ディーボ].[OnDimCustomerUpdate] オン [ディーボ].[DimCustomer] アフター アップデイト

    エーエス

    ビギン

           セット                               ノーカウント オン

     

           DECLARE エスキューエル                      VARCHAR(255)

           DECLARE @AccountId                VARCHAR(255)

           DECLARE 名前                VARCHAR(255)

           DECLARE @ラストネーム                 VARCHAR(255)

           DECLARE @ミドルネーム               VARCHAR(255)

          

           セレクト アカウントID       = [CustomerAlternateKey]です。,

                  @ファーストネーム       = [ファーストネーム],

                  @ラストネーム        = [ラストネーム],

                  @ミドルネーム      = [ミドルネーム]

           フロム インサート;

     

           セレクト エスキューエル = フォーマット・メッセージ('UPDATE ACCOUNT SET Name=''%s'' WHERE ACCOUNTID=''%s'''です。, 名前 + '-' + '-' + @ラストネーム, @AccountId)

           エグゼック(エスキューエル) エーティー D365_CRM;

           PRINT 名前 + ' ' + @ミドルネーム + ' ' + @ラストネーム;

     

    終了

    2.SSMSオブジェクトエクスプローラーウィンドウに2つの新しいトリガーが含まれ、以下のように表示されるはずです。
    イメージ
    3 -Dynamics 365 Online のインスタンスを開き、Accounts に移動します。次のステップで、'ABC Technology', 'Billy Charity', 'Tom Cat'の3つの新しいレコードを挿入する予定です。この時点では、これらのレコードはまだアカウントにありません。
    イメージ

    テスト

     1 - SSMSで新しいクエリウィンドウを開き、以下を貼り付けます。

    INSERT イントゥ [アドベンチャーワークスDW].[ディーボ].[DimCustomer] (ファーストネーム, ミドルネーム, ラストネーム, CustomerAlternateKey) 価値観 ('ABCテクノロジー', '' ,'GMB', 'CT0001');

    INSERT イントゥ [アドベンチャーワークスDW].[ディーボ].[DimCustomer] (ファーストネーム, ミドルネーム, ラストネーム, CustomerAlternateKey) 価値観 (ビリー・チャリティー」。, '' ,'SA', 'CT0002');

    INSERT イントゥ [アドベンチャーワークスDW].[ディーボ].[DimCustomer] (ファーストネーム, ミドルネーム, ラストネーム, CustomerAlternateKey) 価値観 ('トムキャット', '' ,'ORG'です。, 'CT0003');

     

    セレクト * フロム DimCustomer WHERE ファーストネーム = 'ABCテクノロジー';

    セレクト * フロム DimCustomer WHERE ファーストネーム = ビリー・チャリティー」。;

    セレクト * フロム DimCustomer WHERE ファーストネーム = 'トムキャット';

    2 - F5キーを押すか、SSMSの実行ボタンでスクリプトを実行します。
    SSMSによるAdventureWorksの実行
    DimCustomerテーブルに3つの追加レコードが挿入されているはずです。
    イメージ
    3 - Dynamics 365のアカウントに戻り、更新してください。ビンゴ!
    イメージ

    Dynamics 365を触ることなく、3つの新しいアカウントが追加されました。クールでしょう?

    でもちょっと待てよ、DimCustomerテーブルのCustomerAlternateKeyというフィールドに変な数字が入ってる。そもそも挿入した値ではないのです。代わりに、Dynamics 365で生成されたアカウントのユニークIDが入っています。そんなことがあるのでしょうか?

    OnDimCustomerInsert トリガーをよく見ると、SELECT SCOPE_IDENTITY(); が DimCustomer テーブルを更新するために使用されるアカウント ID を返す役割を担っていることに気づかれるかと思います。これは、DimCustomer テーブルのレコードが変更されたときに、Dynamics 365 の既存のアカウントに対して更新を実行するために非常に重要です。

    ポイントを証明するために、SSMSで以下のコードを実行して作成されたレコードを更新してください。

    アップデイト [アドベンチャーワークスDW].[ディーボ].[DimCustomer] セット ラストネーム = 'LTD' WHERE CustomerAlternateKey = 'account(9a1bc5cb-6ad7-e811-a96f-000d3a2cb90b)';

    note: 文字列を置き換える account(9a1bc5cb-6ad7-e811-a96f-000d3a2cb90b) を、あなたの環境で生成された値で上書きしてください。

    3つのアカウントに対してアップデートを実行した結果、Dynamics 365では以下のようになりました。
    イメージ

    いいね!

    おわりに

    これらは簡単な例ですが、これが実際にどのように機能するかを示しています。これは拡張性のある強力なソリューションで、次のようなことが可能です。 シームレス:

    • オンプレミスのDynamicsに接続されていたものをすべて一元管理します。
    • Dynamicsのオンライン版に移行しても、既存の統合機能は正常に動作します。

    そして、何より重要なのは

    • 新しい技術やプログラミング言語の習得は不要です!それは いとも簡単に.
    • トリガーを変更することで、処理を強化することができます。

    また Connect Bridgeを使用して簡単に接続できる他のDynamics 365ソリューションがどれなのか、すぐにスクロールダウンした方は、この部分をご覧ください。

    それらは

    こんなご褒美があるんですね。

    ご意見、ご感想がありましたら、下記のスペースにご記入ください。

    Connect Bridgeをご利用いただく理由

    短い動画を見てみましょう。
    イメージ

    リソースリンク

    記事の最終更新日2022年3月28日

    アナ・ネト - テクニカルアドバイザー, 著者

    アナ・ネト
    技術顧問@Connecting Software

    著者。

    私は1997年からソフトウェアエンジニアをしていますが、最近は文章を書いたり、人前で話したりすることが好きになりました。  この投稿の内容やConnect Bridgeに関する質問やコメントはありますか? 是非、ご意見をお聞かせください

     ana@connecting-software.com


    投稿者 ジェファーソン高橋健司、ディオゴ・グーヴェイア

    コメント 4

    1. 面白そうだ - ビジネスルールの施行についてはどうですか? 例えば、我々はビジネスセントラルに私たちのPOS(SQLテーブルのデータ)からトランザクションを取得する必要があります - 販売はD365に存在しない顧客や製品が含まれていますので、どのような使用例についてはどうですか?

    2. 投稿
      作者

      やあ ポール

      POSから取得したデータをSQLテーブルで取得し、それが理解できる構造に従っている場合は Connect Bridge をクリックして、すべてをBusiness Centralに取り込むことができます。販売にD365に存在しない顧客や製品が含まれている場合、何をすべきかを決める必要があります。

      このオプションをご希望の方は、ご指定のメールでご連絡いたします。

      アナ・ネト

    コメントを残す

    メールアドレスが公開されることはありません。