カスタム ロジック

完了

Microsoft Dataverse には、カスタム ロジックを実行するさまざまな方法が用意されています。

次に示すように、Dataverse でカスタム ビジネス ロジックを適用するためのオプションが複数用意されています。

  • ビジネス ルール
  • 従来型のワークフロー
  • Power Automate クラウド フロー
  • ビジネス プロセス フロー
  • 計算列
  • ロールアップ列
  • プラグイン
  • カスタム ワークフロー アセンブリ
  • カスタム アクション
  • カスタム API
  • クライアント側スクリプト
  • Power Apps Component Framework コード コンポーネント
  • Azure Service Bus および Event Hubs 統合
  • Webhook

カスタム ロジックの作成

ソリューション アーキテクトは、どの Microsoft Power Platform を使用し、そのコンポーネントがソリューションのどこで使用されるかを決定できる必要があります。 それぞれのオプションに長所と短所があるため、この決定にルールはありません。

たとえば、次のような制限が生じる場合があります。

  • 計算列またはロールアップ列から Power Automate フローをトリガーすることはできません。
  • ロールアップ列は、1 時間おきにのみ再計算されます。
  • ビジネス ルールは、自身のテーブルではフォーム上の列にのみアクセスできます。
  • 従来型のワークフローは 1 対多のリレーションシップの行にアクセスできません。
  • ビジネス ルールによって変更されたデータは、JavaScript を使用して作成された OnChange イベントをトリガーしません。

この制限の一覧はすべてを網羅しているわけではありません。

コードなし/ロー コード アプローチやコード ファースト アプローチは、正しい戦略ではありません。状況に応じてそれぞれのメリットを判断する必要があります。 ソリューション アーキテクトとして成功を収めるには、これらのオプションの機能を理解することが必須です。

同期処理と非同期処理の比較

カスタム ロジックは、同期的または非同期的に実装できます。 ソリューション アーキテクトは、カスタム ロジック操作を同期的に実行するか非同期的に実行するかを検討する必要があります。

同期処理と非同期処理の図。

処理が同期的に実行される場合、すべての処理が完了するまでユーザーの画面がブロックされます。 処理は、データがデータベースに保存される前または後にデータを変更できます。 同期呼び出しによって処理に加わるオーバーヘッドは最小限ですが、同期トランザクション内のすべての処理は合計 2 分に制限されます。 この制限は固定されており、変更できません。 Dataverse プラグインおよび従来型のワークフローは、同期的に実行できます。 ビジネス ルールは、スコープがテーブルに設定されている場合に同期的に実行されます。

処理が非同期的に実行される場合、ユーザーの画面は、データがデータベースに保存されると戻ります。 処理はキューに追加され、後で実行されます。これは、ワークロードに応じて数秒後、数分後、または数時間後の場合もあります。 非同期とは、ユーザーが結果を表示するために画面を更新する必要があるという意味です。 非同期ジョブの実行では、追加のオーバーヘッドが発生します。 このプラットフォームでは、AsyncOperation テーブルと WorkflowLog テーブルに行が作成されます。 これらの行は、処理の開始時、進行中、完了後に更新されます。 行は自動的に削除されるように設定できます。 Dataverse プラグインおよび従来型のワークフローは、非同期的に実行できます。 Power Automate クラウド フローは非同期的に実行されます。

クライアント処理とサーバー処理の比較

ソリューション アーキテクトは、ロジックがどこで実行されるのかを理解する必要があります。

キャンバス アプリの数式、モデル駆動型フォーム スクリプト、ビジネス ルール、Power Apps component framework ロジックはユーザー インターフェイスで行され、すぐに結果がユーザーに表示されます。 ただし、このロジックは、ロジックが実装されているアプリでのみ適用されます。

プラグイン、Power Automate クラウド フロー、従来型のワークフロー、ビジネス ルール (スコープがテーブルに設定されている) は、アプリ、フロー、または API 呼び出しによってデータがサーバーに送信される場合にのみ実行されます。 サービス カスタム ロジックの結果は、データの更新時にのみアプリに表示されます。 サーバー ロジックは、アプリ、フロー、または API が使用される場合のみ適用されます。

Microsoft Power Platform により、実行できる呼び出しの数に制限が課されます。 ソリューション アーキテクトは、このような制限を念頭に置いてソリューションを設計する必要があります。