Dynamics 365 のカスタム開発にはさまざまな手法があり、用途や要件に応じて適切な手法を選択することが重要です。以下、それぞれの詳細解説とユースケースを説明します。
Plugin(プラグイン)
概要:
- サーバーサイド(C#)で実行されるカスタムコード
- Dynamics 365 のイベント(Create、Update、Delete など)にフックし、ビジネスロジックを実装
- SDKを通じてEntityのデータ操作が可能
ユースケース:
✅ データの自動補完・検証:
- 取引先企業の登録時に、必要な関連データ(担当者情報など)を自動作成
✅ トランザクション管理: - Opportunity(商談)が成約したら、関連する Quote(見積)を自動で確定
✅ 外部システムとの連携: - データが変更されたら、Azure Service Bus 経由で外部システムへ通知
JavaScript(JS)
概要:
- クライアントサイド(ブラウザ側)で動作するスクリプト
- フォームやビューの動的な変更、UIカスタマイズを実装
- Web API を利用し、データの取得や更新も可能
ユースケース:
✅ フォームの動的制御:
- 商談の「金額」が一定額以上なら、特定のフィールドを必須にする
✅ リアルタイムバリデーション: - メールアドレスのフォーマットチェックを即座に行う
✅ データ取得 & UI更新: - 取引先企業を選択すると、関連する住所を自動入力
WebResource(ウェブリソース)
概要:
- JavaScript、HTML、CSS、画像、XML などを格納するためのリソース
- より複雑なUIを実装する際に利用可能
ユースケース:
✅ カスタム検索パネル:
- Dynamics 365 のエンティティデータを検索する独自のUIを実装
✅ チャートのカスタマイズ: - Power BI よりも自由度の高いダッシュボードを作成
✅ 画像や動画の埋め込み: - 商品データに関連する画像や動画を表示
Power Automate(Flow)
概要:
- ローコード/ノーコードでのワークフロー自動化ツール
- Dynamics 365 のデータ変更をトリガーに、他のシステムと連携可能
ユースケース:
✅ 見積書の自動送信:
- 商談が成立したら、自動で PDF 見積書を生成し、顧客にメール送信
✅ 承認ワークフロー: - 契約書が作成されたら、マネージャーに承認依頼を送信
✅ 外部サービスとの連携: - Salesforce からデータを取得し、Dynamics 365 に登録
Azure Functions / Logic Apps
概要:
- Dynamics 365 から外部システムとの高度な連携が必要な場合に利用
- Azure Functions は C# や JavaScript を用いたサーバーレス開発
- Logic Apps はノーコードで API 連携可能
ユースケース:
✅ データのバッチ処理:
- 夜間に顧客データを外部システムと同期
✅ サードパーティ API 連携: - Dynamics 365 のデータを Salesforce や SAP と連携
✅ AI 活用: - 顧客からの問い合わせを AI(Azure OpenAI)で解析し、自動分類
PCF(PowerApps Component Framework)
概要:
- Dynamics 365 の UI を拡張するカスタムコントロールを作成
- React や TypeScript を用いて開発
- モデル駆動アプリやキャンバスアプリで利用可能
ユースケース:
✅ カスタム入力フォーム:
- 直感的な UI(ドラッグ & ドロップ、スライダーなど)を実装
✅ グラフやデータ可視化: - Dynamics 365 のデータをリアルタイムで表示
✅ 外部データとの統合: - Google マップを埋め込み、顧客の所在地を表示
Custom API(旧Custom Action)
概要:
- Dynamics 365 の Web API をカスタマイズし、独自のエンドポイントを提供
- 他のシステムやワークフローから利用可能
ユースケース:
✅ カスタム業務プロセス:
- 特定の処理を API 経由で呼び出し、ワークフローをシンプル化
✅ 外部システム連携: - ERP システムから注文情報を受け取る REST API を提供
✅ 複雑なビジネスロジックの実装: - 取引先情報の一括更新を API 経由で実行
Virtual Entities
概要:
- 外部データをリアルタイムで参照する仮想エンティティ
- 実データを Dynamics 365 にインポートせずに利用可能
ユースケース:
✅ 外部データを CRM 内で利用:
- SQL Server にある受注情報を Dynamics 365 の画面で表示
✅ ERP との統合: - SAP の在庫データを仮想エンティティとして表示
✅ データ同期不要: - 外部データを即座に参照し、不要なデータ移行を削減
Embedded Canvas App
概要:
- キャンバスアプリを Dynamics 365 のフォームに埋め込み可能
- 柔軟な UI と外部データ連携を実現
ユースケース:
✅ カスタムオーダー管理:
- PowerApps でオーダー入力 UI を作成し、Dynamics 365 のデータと統合
✅ 外部データ表示: - SharePoint に保存された契約書リストを CRM 内で表示
✅ 顧客とのやり取りを最適化: - LINE や WhatsApp のメッセージ履歴を CRM に統合
開発手法まとめ
Dynamics 365 のカスタム開発手法 まとめ
手法 | 主な用途 | 特徴・詳細 |
---|
Plugin(プラグイン) | サーバーサイドのビジネスロジックの自動化 | C#で開発し、レコードの作成・更新・削除などのイベントにフックして実行。データの検証・補完、外部システムとの連携に適用。 |
JavaScript(JS) | クライアントサイドのUIカスタマイズ | フォームのフィールド制御、リアルタイムバリデーション、Web APIを利用したデータ取得・更新が可能。 |
WebResource(ウェブリソース) | カスタムUIコンポーネント | HTML、CSS、JavaScriptを用いて、標準フォームの制約を超えたUIを構築。カスタム検索パネルやダッシュボードに利用。 |
Power Automate(旧Flow) | ローコードでのワークフロー自動化 | ノーコードでトリガーベースのプロセスを作成。見積書の自動送信、承認フロー、外部システム連携などを実装可能。 |
Azure Functions / Logic Apps | 外部システム連携・バッチ処理 | Dynamics 365 のデータを外部システムと統合したり、AI解析や夜間バッチ処理などをサーバーレス環境で実行。 |
PCF(PowerApps Component Framework) | 高度なカスタムUI | ReactやTypeScriptを用いて、標準UIでは実現できない高度なインタラクティブコンポーネントを作成。 |
Custom API(カスタムAPI) | Dynamics 365 のWeb API拡張 | 既存のWeb APIを拡張し、外部システムやワークフローからカスタムエンドポイントを呼び出し可能にする。 |
Virtual Entities(仮想エンティティ) | 外部データのリアルタイム参照 | Dynamics 365 にデータを格納せずに、外部DBやERPなどの情報をリアルタイムで表示。 |
Embedded Canvas App(埋め込みキャンバスアプリ) | PowerAppsの統合 | Dynamics 365 のフォーム内にキャンバスアプリを埋め込み、外部データやカスタムUIを表示。 |
Dynamics 365 のカスタム開発は、サーバーサイド(Plugin、Azure Functions)、クライアントサイド(JavaScript、PCF)、ローコード/ノーコード(Power Automate、Embedded Canvas App)など、さまざまなアプローチがあります。
- リアルタイムでデータを処理したい場合 → Plugin
- フォームの見た目や動作をカスタマイズしたい場合 → JavaScript / WebResource
- ノーコードでワークフローを自動化したい場合 → Power Automate
- 外部システムと連携し、高度なデータ処理を行いたい場合 → Azure Functions / Logic Apps
- 標準UIでは実現できない独自のUIを作りたい場合 → PCF
- 外部データを直接CRMに統合し、リアルタイムで利用したい場合 → Virtual Entities
- PowerAppsを活用し、柔軟なUIや外部データ連携を実現したい場合 → Embedded Canvas App
これらのカスタマイズ手法を適切に選択・組み合わせることで、Dynamics 365 の柔軟性と拡張性を最大限に活用し、業務に最適なソリューションを構築できます。
コメント