dataApi オブジェクトのアクション メソッドと関数メソッドを使用して、ページにバインドされた Dataverse カスタム API を呼び出します。
Note
アクション メソッドと関数メソッドは、共有 dataApi コントラクトでは省略可能です。 一部のホストでは実装されないため、メソッドを呼び出す前にメソッドが存在することを確認してください。 存在するメソッドは、操作がページにバインドされているか、ランタイムに対して有効になっているか、現在のユーザーに対して許可されていることを意味するものではありません。 コネクタ メソッドとは異なり、これらのメソッドは予期されるエラーをスローしません。代わりに、 ok: false とエラー コードで解決されます。 結果の ok プロパティと error プロパティを明示的に処理します。
listBoundActions は、検出が有効な場合に現在のランタイム構成でページに対して許可されるアクションと関数を返します。現在のユーザーが、表示されているすべての操作を実行するために必要な Dataverse 特権を保持することは保証されません。
| メソッド | Description |
|---|---|
executeAction |
ページにバインドされた Dataverse カスタム API をアクションとして呼び出します。 |
executeFunction |
ページにバインドされた Dataverse カスタム API を関数として呼び出します。 |
listBoundActions |
ページにバインドされた Dataverse カスタム API (アクションと関数) を一覧表示します。 |
executeAction メソッド
作成者がページにバインドした Dataverse カスタム API をアクション (データを変更する可能性があるメッセージ) として呼び出します。
Parameters
この必須パラメーターの値を設定します。
| Name | タイプ | Description |
|---|---|---|
request |
DataverseActionRequest | 呼び出すアクションとその入力パラメーター。 |
DataverseActionRequest
| Name | タイプ | Description |
|---|---|---|
name |
string |
new_ApproveExpenseReportなど、パブリッシャープレフィックスが付いたカスタム API の一意の名前。 |
parameters |
object |
(省略可能)アクションに必要な入力パラメーター。パラメーターの一意の名前でキー指定されます。 |
boundTo |
object |
(省略可能)エンティティ バインド アクションのターゲット行参照 (entityName と id)。 グローバル (バインドされていない) アクションの場合は省略します。 |
Returns
DataverseActionResult を含む Promise。 このメソッドは、予期されるエラー (403 アクセス許可エラー、400 無効なパラメーター、操作がバインドまたは有効になっていないなど) をスローすることはありません。代わりに、 ok プロパティを確認します。
DataverseActionResult
| Name | タイプ | Description |
|---|---|---|
ok |
boolean |
アクションが成功したかどうかを示します。 |
status |
number |
Dataverse によって返される HTTP 状態コード、または HTTP 状態が使用できない場合に 0 。
0状態は、ランタイムが送信前に呼び出しを拒否したことを意味する場合があります (たとえば、not_enabled、not_bound、not_permitted、wrong_operation_kind、invalid_parameter、またはinvalid_bound_to)、要求が HTTP 応答なしで失敗したか、結果が不明 (indeterminateがtrue)。
error.codeとindeterminateを使用して、これらのケースを区別します。 |
outputs |
object |
アクションによって返される出力パラメーター。一意の名前でキー指定されます。 出力のないアクションの場合は空です。 |
indeterminate |
boolean |
(省略可能) true タイムアウトまたはその他のディスパッチ後のエラーが、サーバーがアクションをコミットした可能性があることを意味する場合。は自動的に再試行しません。 |
error |
object |
(省略可能)コンピューターが読み取り可能なcodeやサニタイズされたmessageなど、okがfalseされた場合のエラーの詳細。
code は、 not_enabled、 not_bound、 not_permitted、 wrong_operation_kind、 invalid_parameter、 invalid_bound_to、 indeterminate、または networkのいずれか、または Dataverse がエラー応答を返したときにアクションの HTTP 状態コード (たとえば、 "404") として、または HTTP 状態が使用できなかったときに "0" です。
not_permitted は、アクションまたは関数が生成ページの環境の許可リストに含まれていないことを意味します。現在のユーザーが、それを実行するための Dataverse 特権を保持しているかどうかは示されません。 特権エラーは、通常、エラー コードが"403"status: 403として発生します。ホストが HTTP 状態を判断できない場合は、代わりにstatus: 0を返します。 |
executeAction の例
if (!dataApi.executeAction) {
throw new Error("executeAction isn't available on this page.");
}
const result = await dataApi.executeAction({
name: "new_ApproveExpenseReport",
parameters: { comments: "Approved by manager" },
boundTo: { entityName: "new_expensereport", id: "30dc51e9-947d-47d8-ad48-4fc48fba4a95" },
});
if (result.ok) {
console.log(result.outputs);
}
else {
console.log(result.error?.code);
}
executeFunction メソッド
作成者がページにバインドした Dataverse カスタム API を関数として呼び出します (GET セマンティクスを持つ読み取り専用メッセージ)。
Parameters
この必須パラメーターの値を設定します。
| Name | タイプ | Description |
|---|---|---|
request |
DataverseFunctionRequest | 呼び出す関数とその入力パラメーター。 |
DataverseFunctionRequest
| Name | タイプ | Description |
|---|---|---|
name |
string |
new_GetExchangeRateなど、パブリッシャープレフィックスが付いたカスタム API の一意の名前。 |
parameters |
object |
(省略可能)パラメーターの一意の名前でキー指定された、関数に必要な入力パラメーター。 |
boundTo |
object |
(省略可能)エンティティ バインド関数のターゲット行参照 (entityName と id)。 グローバル (非連結) 関数の場合は省略します。 |
Returns
DataverseActionResult を含む Promise。
executeActionと同様に、このメソッドは予期されたエラーをスローしません。代わりに、okプロパティを確認してください。
executeFunction の例
if (!dataApi.executeFunction) {
throw new Error("executeFunction isn't available on this page.");
}
const result = await dataApi.executeFunction({
name: "new_GetExchangeRate",
parameters: { currencyCode: "EUR" },
});
if (result.ok) {
console.log(result.outputs);
}
listBoundActions メソッド
作成者がページにバインドした Dataverse カスタム API (アクションと関数) を一覧表示します。
Parameters
None.
Returns
DataverseActionInfo エントリの配列を含む promise。 ランタイムに対して検出が有効になっていない場合は、空の配列を返します。
DataverseActionInfo
DataverseActionInfo は、ライブ Dataverse メタデータではなく、このアクションまたは関数にバインドされたページの作成者を反映します。 入力フォームの作成や出力の検証には使用しないでください。実際の Dataverse カスタム API 定義に対してパラメーター要件と出力図形を検証します。
| Name | タイプ | Description |
|---|---|---|
name |
string |
Dataverse カスタム API の一意の (論理) 名前。 |
displayName |
string |
カスタム API の表示名。 |
isFunction |
boolean |
true Dataverse カスタム API が関数である場合 (読み取り専用)。 false 、この値がバインド時に記録されなかった場合など、アクションの場合に使用します。 |
bindingType |
string |
バインドの種類: "Global" または "Entity"。 |
boundEntityLogicalName |
string |
(省略可能) bindingType が "Entity"されている場合に、アクションまたは関数がバインドされるテーブル。 |
parameters |
Object[] |
Dataverse カスタム API がページにバインドされたときに記録された入力パラメーター。各パラメーターには、 name と declaredKindが含まれます。
type は常に "unknown" であり、 optional は常に false されます。どちらも Dataverse カスタム API の実際のメタデータを反映しません。 |
outputs |
Object[] |
常に空の配列。 バインド検出では、出力パラメーターは記録されません。 |
listBoundActions 例
const actions = await dataApi.listBoundActions?.();