BatchRequest Класс

Построитель для создания и выполнения запроса OData $batch Dataverse.

Получите через new (client.batch.new()). Добавление операций с помощью records, tablesqueryиdataframe, при необходимости, группирование записываются в changeset, а затем вызываетсяexecute.

Операции выполняются последовательно в добавленном порядке. Результирующий BatchResult запрос содержит один по протоколу BatchItemResponse HTTP-запроса (некоторые операции расширяются до нескольких запросов).

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)

Параметры

Имя Описание
client
Обязательно

Методы

changeset

Создайте новый ChangeSet присоединенный к этому пакету.

Набор изменений добавляется в пакет немедленно. Операции, добавленные к возвращаемой ChangeSet через cs.records.* атомарную операцию.

Пример:


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

Отправьте пакет в Dataverse и верните все ответы.

changeset

Создайте новый ChangeSet присоединенный к этому пакету.

Набор изменений добавляется в пакет немедленно. Операции, добавленные к возвращаемой ChangeSet через cs.records.* атомарную операцию.

Пример:


   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 отправляется и выполняется попытка всех операций.

Параметры Keyword-Only

Имя Описание
continue_on_error
Default value: False

Возвращаемое значение

Тип Описание

BatchResult с одной записью для каждой операции HTTP в порядке отправки.

Исключения

Тип Описание

Если пакет превышает 1000 операций или указан неподдерживаемый тип столбца.

Если предварительное разрешение метаданных завершается ошибкой (таблица или столбец не найдено) tables.deletetables.add_columnstables.remove_columns

При сбоях уровня HTTP (проверка подлинности, ошибка сервера и т. д.), которые препятствуют выполнению пакета.