独自のメッセージを作成する
Microsoft Dataverse はメッセージを使用して API を公開します。 既成のメッセージが多く用意されていますので、ご利用ください。 カスタム メッセージは通常、新しいドメイン固有の機能を追加して、複数のメッセージ要求を 1 つの要求に結合するために使用されます。 たとえば、サポート コール センターで、Create
、Assign
、およびUpdate
メッセージを単一の新しいEscalate
メッセージと結合することがあります。
カスタム メッセージを定義する方法は 2 つあります。
カスタム メッセージ メソッド | 内容 |
---|---|
カスタム プロセス アクション | 単に カスタム アクション とも呼ばれ、これらは長年 Dataverse の一部でした。 カスタム プロセス アクションは、ワークフロー デザイナーを使ってカスタム メッセージを定義するコードを使用しない手法です。 これらのワークフローのロジックは、カスタム ワークフロー活動を使用してコードで拡張することもできます。 詳細情報 : コードによるカスタム プロセス アクションの使用 |
カスタム API | カスタム アクションの概念を拡張し、ワークフロー デザイナーでは制限されない機能を開発者に提供します。 詳細: カスタム API の作成と使用 |
多くの開発者は、ワークフロー デザイナーにロジックを実装せずに、単に新しいメッセージを作成するためにカスタム プロセス アクションを作成してきました。 代わりに、カスタム アクションによって作成されたメッセージのプラグインを登録して、すべてのロジックを実装します。 カスタム API 機能により、このパターンは、開発者がワークフロー デザイナーや、ワークフロー デザイナーが依存する技術に依存することなく Dataverse を拡張するためのファースト クラス機能となります。
カスタム プロセス アクションとカスタム API の比較
次の表で、さまざまな機能の一部を説明します。
機能 | カスタム プロセス アクション | カスタム API | 内容 |
---|---|---|---|
ワークフローを使用した宣言型ロジック | はい | いいえ | ワークフロー アクションは、クラシック ワークフロー デザイナーを使用してコードを記述せずにロジックを定義できます。 カスタム API は、サーバーに適用されるロジックを実装するために .NET で記述されたプラグインが必要です。 |
特定の権限が必要 | いいえ | はい | カスタム API を使用すると、ユーザーがメッセージを呼び出すために特定の権限が必要であることを指定できます。 ユーザーがセキュリティ ロールまたはチーム メンバーシップとしてその権限を持っていない場合、エラーが返されます。 |
コードを使用してメイン操作ロジックを定義 | はい | はい | カスタム プロセス アクションでは、メインのオペレーションは、カスタム ワークフロー アクティビティを含むことができるワークフロー定義を処理します。 これらのカスタム ワークフロー活動のコードは、ワークフロー内の他のロジックと一緒にメイン操作で処理されます。 カスタム プロセス アクションにカスタム ワークフロー アクティビティが含まれていない場合、開発者はイベント パイプラインの事後操作ステージにロジックを追加してロジックを定義することがよくあります。 カスタム API を使用すると、メッセージ作成者はプラグインの種類をカスタム API に関連付けるだけで、メイン操作ロジックを提供できます。 詳細: イベント実行パイプライン |
他のプラグインによる拡張のブロック | はい | はい | カスタム プロセス アクションのメッセージに登録されているサード パーティ製プラグインの実行を許可する場合は、IsCustomProcessingStepAllowedForOtherPublishers マネージド プロパティを true に設定します。 false に設定した場合、プラグインのステップがメッセージに登録されている場合、同じソリューション発行者のプラグインのみが実行されます。カスタム API の場合、任意のプラグインの手順を登録するか、非同期プラグインのみを登録するかは、AllowedCustomProcessingStepType で設定します。 詳細: カスタム処理手順の種類を選択する |
メッセージの非公開化 | いいえ | はい | カスタム プロセス アクションを使用してメッセージを作成すると、そのメッセージはエンドポイントで公開され、他のユーザーが見つけて使用できるようになります。 作成したメッセージに他のユーザーが依存している場合、将来、入力または出力パラメーターの署名を削除、名前変更、または変更すると、そのユーザーのコードは破損します。 自分のメッセージを他のユーザーが使用しないようにする場合は、非公開メッセージとしてマークを付けることができます。 これは、作成したメッセージを使用して他のユーザーをサポートしていないことを示し、Web API $Metadata Service 定義によって公開される使用可能な関数またはアクションの定義に含まれません。 これらのメッセージを呼び出すクラスは、コード生成ツールでは生成されませんが、使用することは可能です。 詳細: カスタム API を非公開にする場合 |
ローカライズ可能な名前と説明 | いいえ | はい | カスタム プロセス アクションでは、カスタム アクションのフレンドリ名と、使用する入力および出力パラメーターを指定できますが、これらの値はローカライズできません。 カスタム API を使用すると、ローカライズ可能な名前と説明を提供できます。 これらのローカライズされた文字列は、メッセージを使用するための UI を提供するコントロールにバインドできます。 詳細: ローカライズされたラベル値 |
OData 関数の作成 | いいえ | はい | Dataverse Web API は OData Web サービスです。 OData には、アクション & 関数 の 2 種類の操作があります。
カスタム プロセス アクションは常にアクションです。 カスタム API には、カスタム関数を定義するオプションが用意されています。 詳細: 関数を作成する場合 |
テーブルにバインドされないグローバルな操作を作成する | はい | はい | どちらも、テーブルにバインドされないグローバル メッセージを定義する機能を備えています。 |
操作をテーブルにバインドする | はい | はい | どちらも、テーブルにバインドすることで、特定のテーブル レコードへの参照を渡す機能を備えています。 |
テーブル コレクションへの操作の割り当て | いいえ | はい | オペレーションをテーブル コレクションにバインドすることで、カスタム API のシグネチャを別の方法で定義することができます。 これはエンティティのコレクションを入力パラメーターとして渡しませんが、操作のコンテキストをそのタイプのテーブル コレクションに制限します。 これは、操作が特定のタイプのテーブル コレクションで機能する場合、または操作がそのタイプのコレクションを返す場合に使用します。 |
ソリューションを編集してカスタム API を作成または変更 | いいえ | はい | Power Platform と連携する製品を構築および保守する ISV は、ソリューションを含む ALM プラクティスを適用します。 ソリューション内のデータは通常、ソース コード リポジトリにチェックインされ、変更を適用する開発者によってチェックアウトされます。 カスタム プロセス アクションは、ソリューションの一部として転送される XAML Windows Workflow Foundation ドキュメントによって定義されます。 ただし、ワークフロー デザイナー以外での新規ワークフロー定義を作成したり、既存のワークフロー定義を編集したりすることはサポートされていません。 カスタム API 定義は、一連のフォルダーと XML ドキュメントを介してソリューションに含まれるソリューション対応コンポーネントです。 これらのファイルとファイル構造により、API をある環境から別の環境に転送できます。 これらはプレーン テキスト ファイルであるため、変更を加えたり、これらのファイルを操作して新しい API を定義したりできます。 カスタム API を定義するこの方法がサポートされています。 詳細: ソリューション ファイルを使用したカスタム API を作成する。 |
2 分の時間制限の対象 | いいえ | はい | カスタム API のメイン操作を実装するプラグインには、実行の完了までに 2 分の時間制限があります。 カスタム プロセス アクションは、厳密には 2 分に制限されているわけではありません。 ワークフロー ロジックのステップにカスタム ワークフローのアクティビティが含まれている場合、その部分は 2 分に制限されます。 ただし、ワークフロー全体を無期限に実行することはできません。 長時間実行されるカスタム プロセス アクションが失敗する原因となる制限は他にもあります。 詳細: 長時間の操作を監視する |
次のステップ
コードによるカスタム プロセス アクションの使用
カスタム API の作成と使用
注意
ドキュメントの言語設定についてお聞かせください。 簡単な調査を行います。 (この調査は英語です)
この調査には約 7 分かかります。 個人データは収集されません (プライバシー ステートメント)。