BatchRequest 类

用于构造和执行 Dataverse OData $batch 请求的生成器。

通过 newclient.batch.new()) 获取。 添加通过 recordstablesquerydataframe(可选)写入到 a changeset,然后调用 execute的操作。

操作按添加的顺序按顺序执行。 生成的每个 BatchResult HTTP 请求都已调度一个 BatchItemResponse (某些操作扩展到多个请求)。

注释

每个批处理最多 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, {
           "[email protected]": 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 操作使用一个条目。

例外

类型 说明

如果批处理超过 1000 个操作或指定的列类型不受支持。

如果元数据预解析失败(找不到表或列) tables.deletetables.add_columnstables.remove_columns

在 HTTP 级故障(身份验证、服务器错误等)上,阻止批处理执行。