Microsoft 365 Copilot アクションのカスタム ハンドラー関数を登録します。
Syntax
Xrm.Copilot.addActionHandler(actionId, actionHandler).then(successCallback, errorCallback);
Parameters
| パラメーター名 | タイプ | 必須 | Description |
|---|---|---|---|
actionId |
文字列 | はい | 処理するアクションの一意識別子。 |
actionHandler |
Function | はい | アクションがトリガーされたときに呼び出す関数。 アクションのデータ ペイロードを引数として受け取ります。 |
successCallback |
Function | はい | 処理が成功したときに呼び出す関数。 |
errorCallback |
Function | はい | 処理が失敗したときに呼び出す関数。 |
戻り値
タイプ: Promise<void>
Remarks
同じ actionIdに対して複数のハンドラーを登録できます。 これらは順番に実行されます。 API は、同じ actionIdに対して同じ関数参照の登録を 2 回自動的に無視します。 Microsoft 365 Copilotが有効になっていない場合、API は何も行いません。
組み込みのアクション ID
次のアクション ID には、プラットフォームの既定のハンドラーが自動的に登録されています。 カスタム ハンドラーを一緒に追加することも、 removeDefaultActionHandlers を使用して既定のハンドラーを最初に削除することもできます。
| 操作 ID | Description | データ プロパティ |
|---|---|---|
MS.PA.CopilotChat.OpenRecord |
レコードを開きます。 |
entity (文字列) — テーブルの論理名。 recordId (文字列) — レコード ID |
MS.PA.CopilotChat.NavigateToView |
ビューに移動します。 |
entity (文字列) — テーブルの論理名。 fetchXml (文字列) — FetchXML クエリ |
Example
const handler = async ({ entity, recordId }) => {
// Open the record in a side pane instead of navigating away
const pane = Xrm.App.sidePanes.createPane({ canClose: true });
await pane.navigate({ pageType: "entityrecord", entityName: entity, entityId: recordId });
};
await Xrm.Copilot.addActionHandler("My.Namespace.MyActionMessage", handler);