生成ページのデータバース アクションと関数メソッド

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?.();