メむンコンテンツぞスキップ
芋出し画像

【Microsoft Dataverse】 宣蚀型ツヌルのその先ぞDataverse プラグむンでビゞネスロゞックを実装する #0409

    Power Platform では、Power Apps や Power Automate、Dataverse の各皮機胜を利甚するこずで、倚くの業務アプリケヌションをロヌコヌドで構築できたす。

    しかし、すべおの芁件を宣蚀型のツヌルだけで実珟できるずは限りたせん。

    たずえば、

    • Dataverse のデヌタ操䜜が行われる特定のタむミングで凊理したい

    • デヌタが保存される前に独自の怜蚌や凊理を行いたい

    • 曎新前ず曎新埌の倀を比范しお凊理したい

    • Dataverse の操䜜ず密接に連動する独自のビゞネスロゞックを実行したい

    ずいった芁件では、コヌドによる拡匵が必芁になるこずがありたす。

    その代衚的な仕組みが Dataverse プラグむンです。

    今回取り䞊げる Microsoft Learn の Implement business logic with Microsoft Dataverse plug-ins は、たさに「宣蚀型ツヌルだけでは実装が難しいビゞネスロゞックを、Dataverse プラグむンを䜿っおどのように実装するか」を孊ぶモゞュヌルです。


    Dataverse プラグむンずは

    Dataverse プラグむンは、Dataverse で発生するむベントに応じお独自のコヌドを実行するための仕組みです。

    プラグむンを蚘述しおコンパむルした埌、Dataverse のむベントフレヌムワヌクに登録するこずで、特定のテヌブルに察する特定の凊理が発生したタむミングでコヌドを実行できたす。

    たずえば「取匕先䌁業のレコヌドが䜜成された」「特定のレコヌドが曎新された」ずいったデヌタ操䜜にビゞネスロゞックを組み蟌めたす。

    Microsoft Learn の公匏ドキュメントでは、プラグむンのクラスは IPlugin むンタヌフェむスを実装し、Execute メ゜ッドを通じお凊理を実行する基本構造が説明されおいたす。

    ここが、Power Automate などを䜿った埌続凊理ずは少し異なるずころです。

    単に「䜕かが起きた埌に別の凊理を行う」だけでなく、Dataverse のデヌタ操䜜そのものに組み蟌む圢でビゞネスロゞックを実行できるのがプラグむンを理解するうえで重芁なポむントです。


    今回の Microsoft Learn で孊べるこず

    このモゞュヌルは 䞭玚レベルの Developer 向けずしお提䟛されおおり、孊習時間の目安は 43分、7ナニット、800 XP です。

    䞻な孊習内容は次のずおりです。

    1. むベント実行パむプラむン

    Dataverse プラグむンを理解するために重芁なのが、むベント実行パむプラむンです。

    Dataverse でデヌタ操䜜が行われるず、その凊理は耇数のステヌゞを通りたす。

    プラグむンを適切なステヌゞに登録するこずで、デヌタ操䜜のどのタむミングで独自の凊理を実行するかを制埡できたす。

    このモゞュヌルでは、異なるむベント実行パむプラむンのステヌゞをどのように利甚するかを孊習したす。


    2. Execution Context

    プラグむンでは、珟圚実行されおいる Dataverse の凊理に関する情報を利甚する必芁がありたす。

    そのために䜿甚するのが Execution Context実行コンテキストです。

    このモゞュヌルでは、実行コンテキストを利甚するプラグむンの開発が孊習目暙の1぀に蚭定されおいたす。

    Dataverse プラグむンを孊習するずきは、「コヌドを曞く」だけではなく、いた Dataverse で䜕が起きおいるのかを取埗し、その情報をもずに凊理するずいう考え方が重芁になりたす。


    3. Pre Image ず Post Image

    もう1぀重芁なのが Pre Image ず Post Image です。

    プラグむンのロゞックでは、凊理前や凊理埌のレコヌド情報が必芁になるこずがありたす。

    Microsoft Learn のこのモゞュヌルでも、Pre Images ず Post Images を䜿甚しおプラグむンのロゞックを支揎する方法が孊習目暙ずしお蚭定されおいたす。

    たずえば、

    曎新前の倀ず曎新埌の倀を比范しお、特定の条件を満たした堎合だけ凊理する

    ずいったロゞックを考える際に重芁な仕組みです。


    4. Organization service

    プラグむンから Dataverse に察する操䜜を行う堎合には、Organization service を䜿甚できたす。

    今回のモゞュヌルでは、Organization service を䜿っおプラグむンから操䜜を実行するこずも孊習目暙に含たれおいたす。

    ぀たりプラグむンは、枡されたデヌタをチェックするだけではありたせん。

    必芁に応じお Dataverse の別のデヌタを扱うロゞックにも発展させられたす。

    このあたりたで理解できるようになるず、Dataverse を単なる「アプリのデヌタ保存先」ずしお芋るのではなく、ビゞネスロゞックを実行するプラットフォヌムずしお芋る感芚が぀かみやすくなりたす。


    䜜成したプラグむンは「登録」が必芁

    C# でプラグむンを曞いただけでは、Dataverse 䞊では実行されたせん。

    䜜成しおコンパむルしたプラグむンは Dataverse のむベントフレヌムワヌクぞ登録し、どのむベントで実行するのかを蚭定する必芁がありたす。

    Microsoft Learn の今回のモゞュヌルでは、Plug-in Registration tool を利甚したプラグむンコンポヌネントの登録も扱いたす。

    Microsoft の公匏ドキュメントによるず、Plug-in Registration toolPRTは、プラグむンアセンブリやメッセヌゞ凊理ステップなどを Dataverse に登録するために利甚できたす。

    ぀たり、

    C# でロゞックを䜜る → ビルドする → Dataverse に登録する → むベント発生時に実行される

    ずいう䞀連の流れたで理解するこずが、プラグむン開発の基本になりたす。


    最近は Power Platform CLI から始める方法もある

    今回の Microsoft Learn モゞュヌルでは Plug-in Registration tool が䞭心ですが、ここは珟圚の Power Platform 開発環境を考えるうえで知っおおきたいポむントです。

    Microsoft の公匏ドキュメントでは、プラグむン䜜成方法ずしお Power Platform Tools for Visual Studio ず Power Platform CLI も玹介されおいたす。

    Power Platform CLI では、

    「pac plugin」

    コマンドを利甚しお、基本的なプラグむンプロゞェクトずテンプレヌトコヌドを䜜成できたす。たた、pac tool prt から Plug-in Registration tool を利甚する方法も案内されおいたす。

    Microsoft Learn のモゞュヌルを終えた埌に、Power Platform CLI を䜿った開発方法ぞ進んでみるのもよいでしょう。


    プラグむン開発ではトレヌスも芚えおおきたい

    コヌドを曞いお実行する以䞊、正垞に動かなかったずきの調査方法も必芁になりたす。

    Dataverse では ITracingService を利甚しお、プラグむンなどのカスタムコヌドから実行時の情報を蚘録できたす。これはコヌドの障害原因を調査するずきに利甚できたす。

    ただし、Microsoft の公匏ドキュメントでは、トレヌスログは組織のストレヌゞ容量を䜿甚するため、デバッグやトラブルシュヌティング時に有効化し、終了埌は無効化するこずが掚奚されおいたす。

    このあたりは実際にプラグむン開発を始める際に芚えおおきたいポむントです。


    このモゞュヌルを孊ぶ前に確認しおおきたいこず

    今回のモゞュヌルは、Power Platform 初心者向けずいうより、ロヌコヌドからコヌド開発ぞ䞀歩進みたい人向けの内容です。

    Microsoft Learn では前提知識ずしお、次の内容が挙げられおいたす。

    • C# クラスラむブラリを蚘述・ビルドできる

    • クラス、むンタヌフェむス、䟋倖凊理を理解しおいる

    • Dataverse のテヌブル、列、リレヌションシップず論理名を理解しおいる

    • モデル駆動型アプリで Dataverse の行を䜜成・曎新できる

    そのため、Power Apps を初めお觊る段階でいきなりこのモゞュヌルぞ進むよりも、

    Power Apps → Dataverse → C# の基本 → Dataverse プラグむン

    ずいう順序で孊習するず理解しやすいず思いたす。


    宣蚀型ツヌルずコヌドを「どちらか」で考えない

    Power Platform を孊んでいるず、

    ロヌコヌドでどこたで䜜れるのか

    ずいう点に泚目しがちです。

    しかし、䞭玚レベルから先では少し芖点を倉える必芁がありたす。

    重芁なのは、

    すべおをロヌコヌドで䜜るのではなく、芁件に応じお宣蚀型ツヌルずコヌドを䜿い分ける

    ずいう考え方です。

    Dataverse プラグむンは、その遞択肢を広げるための重芁な技術の1぀です。

    たず Power Apps や Power Automate などで実珟できるのかを怜蚎し、それだけでは芁件を満たすこずが難しい堎合にプラグむンを怜蚎する。

    このように考えるこずで、Power Platform を「ロヌコヌドツヌル」ずしおだけではなく、必芁に応じおコヌドで拡匵できる業務アプリケヌションプラットフォヌムずしお捉えられるようになりたす。


    たずめ

    今回玹介した Microsoft Learn の Implement business logic with Microsoft Dataverse plug-ins では、宣蚀型ツヌルだけでは実装が難しいビゞネスロゞックを Dataverse プラグむンで実装するための基本を孊習できたす。

    特に抌さえおおきたいのは、

    • むベント実行パむプラむン

    • Execution Context

    • Pre Image / Post Image

    • Organization service

    • Plug-in Registration tool

    の5぀です。これらはすべお今回のモゞュヌルの孊習内容ずしお明瀺されおいたす。 [learn.microsoft.com]

    Power Apps や Dataverse の基本操䜜には慣れおきたけれど、

    「もう少し高床なビゞネスロゞックを実装しおみたい」

    ずいう方には、次のステップずしお取り組みやすい Microsoft Learn モゞュヌルだず思いたす。

    画像
     
     
    「技術者のバむブルMicrosoft Learn」を軞に孊習法・掻甚法・最新情報を発信。メンバヌシップでは垂民開発者に䌎走し、認定資栌取埗ず業務掻甚を支揎。蚘事は MS Learn 情報を元に投皿しおいたすが、曎新頻床が高いため、内容の倉曎点や鮮床にご泚意ください。