Power Platform Day Summer ’20 登壇メモ


Power Platform Day Summer ’20にて 「Dynamics 365 BC + CDS でローコードに ERP を拡張 」というテーマで話をさせていただきました。

準備不足&生来の話下手でうまく伝えきれなかったところがあるので、おさらい+フォローとしてメモを残します。

発表骨子

  • 2020年春の大型アップデートでDyanmics 365 Business Central と Common Data Serviceの連携が強化された。(以下D365BCまたはBC、CDSと略記)
  • 具体的にはCDSのエンティティとBCのテーブルを関連付けを設定しておけば、双方向でデータがバックグラウンド同期される。
  • 例えばCDSの取引先エントリの取引先名を変更すると、BCの得意先マスタレコードの得意先名称が更新される。逆にBCの得意先マスタレコードを変更するとCDSが更新される。
  • 同期は定期バックグラウンドだけでなく、マニュアルで同期のトリガーを引くこともできる。
  • CDSのカスタムエンティティとBCのカスタマイズテーブル(アドオンテーブル)を紐づけて同期をとることも可能。その場合は若干のコーディングが必要。Docsのサンプルに従って作成してみたところ600行くらいのコードで実現できた。
  • 今回最も価値があると(個人的に)思ったのはCDS→BCの連携が正式にサポートされたこと。
  • BC→CDSの連携は従来からできていた。具体的にはPowerAppsのデータ統合プロジェクト改めデータフロー機能を使えばBCのテーブルとCDSのエンティティを関連付けて定期的にバックグラウンド同期したりマニュアルでスポット的に同期をとることもできた。
  • CDS→BCについてはMicrosoft Flow改めPower Automate で一応実現できてはいた。「一応」とつけたのは、BCコネクタが2年くらいずっとプレビューのままだから。
  • BCとCRM(D365 for Sales)との連携は実は2年くらい前から実現されていた。だが、カスタムエンティティとBCのカスタマイズテーブルが連携できないという問題があった。(実は出来たのかもしれないが、、自分が成功していない。)また、そもそもCRMのライセンスが必要になる。
  • CRM連携についてはD365 for SalesをCRMとして本格的にガッツリ使うのであればD365BC-D365 for Sales連携を使うべきだろう。当然D365 for Salesはパッケージとして提供されており、開発者によって日々機能の改善が行われているのだから。
  • 一方、そこまで本格的にCRMをやらずに簡易的に顧客管理したい・案件管理したいだけのレベルであればBC-CDS連携でよいのではないかと思う。要はやりたいことのレベルに応じて使い分けるべき。ライセンス料と相談しながら。
  • D365 for Salesを使わないとした場合、BCにカスタマイズでCRM機能を乗せるのではなく、BCは標準で使用し、簡易CRM機能はCDSに作ってBC-CDS連携するのがよいと考える。
  • 理由はBCをカスタマイズしないほうがコストが安くつくから。具体的な話は田中科学機器製作様への導入事例参照。
  • 使い方の一例としては、営業側はCDSで見込み顧客情報を入力し、取引開始の確定度が高まったある時点でCDSからBCに連携する使い方が考えられる。例えば、初めて資料請求リクエストが来た取引先をERPの得意先マスタに登録するか?というと一般的にはやりたくないだろう。
  • 従来は高い金を払ってERP側にカスタマイズを盛り込むか、ERP側で実装せずにバッサリ切り捨てるかの2択だったが、BC-CDS連携が強化されたことによりその中間が実現できるようになった。
  • BC-CDS連携は非常に強力な武器であり、ローコーディングでERPを早く導入できる大きな可能性を秘めている

 

関連情報

Dynamics 365 BC と CDS の連携に関するリリース記事はこちら
https://docs.microsoft.com/en-us/dynamics365-release-plan/2020wave1/dynamics365-business-central/business-central-integration-common-data-service
Dynamicsは年に2回大きなアップデートがあります。ちなみに小さなアップデートは毎月あります。年2回の大きなアップデートはこのようにDocsにて数か月も前から内容がアナウンスされます。

実演したデモ(D365BCの得意先とCDSの取引先の連携)の元ネタ記事はこちら
https://www.d3654.be/d365bc-integration-with-cds01/
全6回シリーズで解説しています。イベントでは5分くらいで駆け足で見せましたが、ブログではStep by Stepで解説しています。前提条件とかもきちんと書いているので、がんばれば自分で環境作って再現できるはずです。BCの環境構築とかO365あらためM365のアカウントの作り方も初回記事にリンクつけてます。

実演したデモ(D365BCのカスタムテーブルとCDSのカスタムエンティティの連携)の元ネタ記事はこち
https://docs.microsoft.com/en-us/dynamics365/business-central/dev-itpro/administration/administration-custom-cds-integration
DocsのWalkThroughそのままやっただけです。が、何か所かトラップがあったのでそのままではうまくいきませんw。そのうち追加で解説記事を書くつもりです。

BCとCRM連携についての元ネタ記事はこちら
https://www.d3654.be/?s=Sales
見づらくてすみません。何を血迷ったのか1日1記事書くという一人アドベントカレンダーに挑戦した月でして、行き詰ったところをそのまま行き詰ったまま記事にしてます。BCは当時「Dynamics 365 for Financial」という製品名でした。

Power Apps データフローの検証記事はこちら
https://www.d3654.be/cds-dataintegration-from-d365bc/
当時はデータ統合プロジェクトという名称でした。若干UI変わったかもしれませんが、、おおむね同じ手順でできると思います。

BCのコネクタがプレビューな件のソースはこちら
https://docs.microsoft.com/ja-jp/connectors/dynamicssmbsaas/
久しぶりに見に行きましたがやっぱりプレビューのままでした。。docsの文書では汎用的にテーブル指定して連携できるっぽく読めますが、実際には特定のテーブルしかできません。昨年秋にBCのイベントがベルギーで開催されたときになぜプレビューのままか?と現地のMVPに聞いたのですが「俺も意味ワカンネーって思ってる」(意訳)という答えが返ってきましたw

CDSとかモデル駆動型アプリを触って理解したい、という方はこちらをどうぞ。
https://www.d3654.be/power-platform-day-winter-2019-handson/
アカウントの登録からサブスクリプションの登録まで懇切丁寧に解説してます。去年の冬のイベントでハンズオンした時のテキストです。

BCをノンカスタマイズで導入してMicrosoft社の事例に取り上げられた話
https://www.tanaka-sci.com/news/20200217.php
Power Platform Day Winter’19で話をさせてもらった件です。

 

QA補足

Q. Business Centralの日本語は提供されていないか?
Microsoft社からは提供されていません。日本とかタイとかベトナムとか、おおむねアジア圏はその国/地域のローカルパートナーが言語対応や商習慣対応(ex.日本だと月締め請求書とか、中国だと金税とか)をアドオンソリューションとして提供しています。日本ならこちらへどうぞ。

Q.自分で日本語対応するのは可能か?
言語パック作るのは可能は可能ですが、結構大変です。やってみたらわかります。理解を深めるためにやるのはアリだと思いますが、ビジネスにするには相当大変だと思います。こればっかりは先行者が有利なので。


Q. 複数CDSとBC環境をつなげるか?
ちょっと違ったニュアンスの質問だったかも。システム的には上の記事で試してもらえればわかりますが、BCの一つの会社に1つのCDS連携設定画面があり、1件だけCDSの環境を指定できます。よって、BCの会社とCDSの環境は1:1である必要があります。N:1または1:Nにするには、、いくつか方法はありますが、要件しだいでベストの方法は異なります。

※思い出したら随時追加するかもです。

返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です