BatchRequest 類別

用於建構與執行 Dataverse OData $batch 請求的建置器。

透過 newclient.batch.new()) 取得。 將 、 、 和 的運算recordstables相加,或選擇性地將寫入 changeset,然後呼叫 executedataframequery

操作依加的順序依序執行。 結果 BatchResult 是每個 HTTP 請求被 BatchItemResponse 派遣一個(有些操作會擴展為多個請求)。

Note

每批次最多 1000 次 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)

參數

名稱 Description
client
必要

方法

changeset

在這個批次上建立一個新的 ChangeSet 附加連結。

變更集會立即加入批次。 透過原子執行,回傳ChangeSetcs.records.*的操作會被加到中。

範例:


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

將批次提交給 Dataverse,並回傳所有回應。

changeset

在這個批次上建立一個新的 ChangeSet 附加連結。

變更集會立即加入批次。 透過原子執行,回傳ChangeSetcs.records.*的操作會被加到中。

範例:


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

傳回

類型 Description

一個全新的 ChangeSet 、待接收的營運。

execute

將批次提交給 Dataverse,並回傳所有回應。

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

參數

名稱 Description
continue_on_error
必要

當 False(預設值)時,Dataverse 會在第一次失敗時停止,並以 4xx 回應回傳該操作的錯誤。 當 為真時, Prefer: odata.continue-on-error 會被傳送,所有運算都會被嘗試。

僅限關鍵字的參數

名稱 Description
continue_on_error
預設值: False

傳回

類型 Description

BatchResult 每個 HTTP 操作依提交順序輸入一個項目。

例外狀況

類型 Description

若批次超過 1000 次操作或指定不支援欄位類型。

若元資料預解析失敗(找不到資料表或欄位),則 tables.deletetables.add_columnstables.remove_columns

在 HTTP 層級的失敗(如認證、伺服器錯誤等)導致批次無法執行時。