BatchRequest クラス

Dataverse OData $batch 要求を構築して実行するためのビルダー。

new (client.batch.new()) を使用して取得します。 recordstablesquerydataframeを使用して操作を追加し、必要に応じて書き込みをchangesetにグループ化してから、executeを呼び出します。

操作は、追加された順序で順番に実行されます。 結果の BatchResult には、ディスパッチされた HTTP 要求ごとに 1 つの BatchItemResponse が含まれます (一部の操作は複数の要求に拡張されます)。

Note

バッチあたり最大 1,000 の HTTP 操作。

例:


   batch = client.batch.new()
   batch.records.create("account", {"name": "Contoso"})
   batch.tables.get("account")
   with batch.changeset() as cs:
       ref = cs.records.create("contact", {"firstname": "Alice"})
       cs.records.update("account", account_id, {
           "primarycontactid@odata.bind": ref
       })
   result = batch.execute()

コンストラクター

BatchRequest(client: DataverseClient)

パラメーター

名前 説明
client
必須

メソッド

changeset

このバッチにアタッチされた新しい ChangeSet を作成します。

変更セットはすぐにバッチに追加されます。 cs.records.*を介して返されたChangeSetに追加された操作はアトミックに実行されます。

例:


   with batch.changeset() as cs:
       cs.records.create("account", {"name": "ACME"})
       cs.records.create("contact", {"firstname": "Bob"})
execute

バッチを Dataverse に送信し、すべての応答を返します。

changeset

このバッチにアタッチされた新しい ChangeSet を作成します。

変更セットはすぐにバッチに追加されます。 cs.records.*を介して返されたChangeSetに追加された操作はアトミックに実行されます。

例:


   with batch.changeset() as cs:
       cs.records.create("account", {"name": "ACME"})
       cs.records.create("contact", {"firstname": "Bob"})
changeset() -> ChangeSet

返品

説明

操作を受け取る準備が整った新しい ChangeSet

execute

バッチを Dataverse に送信し、すべての応答を返します。

execute(*, continue_on_error: bool = False) -> BatchResult

パラメーター

名前 説明
continue_on_error
必須

False (既定値) の場合、Dataverse は最初のエラーで停止し、その操作のエラーを 4xx 応答として返します。 True の場合、 Prefer: odata.continue-on-error が送信され、すべての操作が試行されます。

キーワードのみのパラメーター

名前 説明
continue_on_error
規定値: False

返品

説明

BatchResult 送信順序で HTTP 操作ごとに 1 つのエントリを持つ。

例外

説明

バッチが 1000 を超える操作、またはサポートされていない列の種類が指定されている場合。

メタデータの事前解決が失敗した場合 (テーブルまたは列が見つかりません) tables.deletetables.add_columnstables.remove_columns

バッチの実行を妨げる HTTP レベルのエラー (認証、サーバー エラーなど)。