operations Пакет

Пространства имен операций для пакета SDK Dataverse.

Этот модуль содержит классы пространства имен операций, которые упорядочивают операции пакета SDK в логические группы: записи, запросы и таблицы.

Модули

batch

Пространства имен пакетной операции для пакета SDK dataverse.

dataframe

Пространство имен операций CRUD dataFrame для пакета SDK dataverse.

files

Пространство имен операций файлов для пакета SDK Dataverse.

query

Пространство имен операций запроса для пакета SDK Dataverse.

records

Запись пространства имен операций CRUD для пакета SDK для Dataverse.

tables

Пространство имен операций метаданных таблицы для пакета SDK dataverse.

Классы

BatchDataFrameOperations

Оболочки, ориентированные на кадры данных для операций пакетной записи.

Предоставляет createи updatedelete принимает pandas.DataFrame / pandas.Series входные данные и преобразует их в стандартные дикты перед вводом в пакет. Это позволяет вызывающим данным передавать кадры данных непосредственно в пакет без ручного преобразования.

Доступ к ней осуществляется через batch.dataframe.

Пример:


   import pandas as pd

   batch = client.batch.new()
   df = pd.DataFrame([
       {"name": "Contoso", "telephone1": "555-0100"},
       {"name": "Fabrikam", "telephone1": "555-0200"},
   ])
   batch.dataframe.create("account", df)
   result = batch.execute()
BatchOperations

Пространство имен для пакетных операций (client.batch).

Доступ к ней осуществляется через client.batch. Используется new для создания построителя BatchRequest .

Пример:


   batch = client.batch.new()
   batch.records.create("account", {"name": "Fabrikam"})
   result = batch.execute()
BatchQueryOperations

Операции запроса в объекте BatchRequest.

Зеркально client.query : те же имена методов, одни и те же сигнатуры. Все методы возвращаются None; результаты поступают через BatchResult.

Не создавайте экземпляр непосредственно; use batch.query.

BatchRecordOperations

Запись операций BatchRequestс .

Зеркальные отображения client.records: те же имена методов, одни и те же сигнатуры. Все методы возвращаются None; результаты доступны через BatchResult после execute.

Методы общедоступной версии: retrieve (одна запись) и list (многозаписная, одна страница). get не рекомендуется — используйте retrieve вместо этого.

Не создавайте экземпляр непосредственно; use batch.records.

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()
BatchTableOperations

Операции метаданных таблицы в объекте BatchRequest.

Зеркально client.tables : те же имена методов, одни и те же сигнатуры. Все методы возвращаются None; результаты поступают через BatchResult.

Note

tables.delete, tables.add_columns и tables.remove_columns

требуется поиск метаданных (GET EntityDefinitions) по адресу

execute время для разрешения метаданных таблицы.

Этот поиск является прозрачным для вызывающего объекта.

Note

tables.add_columns и tables.remove_columns каждой из них

пакетный элемент на столбец, поэтому они вносят несколько записей в

responses.

Не создавайте экземпляр непосредственно; use batch.tables.

ChangeSet

Транзакционная группа операций записи с одной записью.

Все операции выполняются успешно или откатываются вместе. Используйте в качестве диспетчера контекста или вызова records для непосредственного добавления операций.

Не создавайте экземпляр непосредственно; use changeset.

Пример:


   with batch.changeset() as cs:
       ref = cs.records.create("contact", {"firstname": "Alice"})
       cs.records.update("account", account_id, {
           "primarycontactid@odata.bind": ref
       })
ChangeSetRecordOperations

Запись операций записи, доступных ChangeSetвнутри .

Зеркальные отображения, но ограниченные одними формами client.records записей (без массового создания и обновления и удаления). Разрешены только операции записи. GET не допускается внутри набора изменений.

Не создавайте экземпляр непосредственно; use ChangeSet.records.

DataFrameOperations

Пространство имен для операций CRUD с кадрами данных Pandas.

Доступ к ней осуществляется через client.dataframe. Предоставляет оболочки, ориентированные на кадры данных, вокруг операций CRUD на уровне записей.

Пример:


   import pandas as pd

   client = DataverseClient(base_url, credential)

   # Query records as a DataFrame
   df = client.dataframe.get("account", select=["name"], top=100)

   # Create records from a DataFrame
   new_df = pd.DataFrame([{"name": "Contoso"}, {"name": "Fabrikam"}])
   new_df["accountid"] = client.dataframe.create("account", new_df)

   # Update records
   new_df["telephone1"] = ["555-0100", "555-0200"]
   client.dataframe.update("account", new_df, id_column="accountid")

   # Delete records
   client.dataframe.delete("account", new_df["accountid"])
FileOperations

Пространство имен для операций с файлами.

Доступ к ней осуществляется через client.files. Предоставляет операции отправки файлов для столбцов файлов Dataverse.

Пример:


   client = DataverseClient(base_url, credential)

   client.files.upload(
       "account", account_id, "new_Document", "/path/to/file.pdf"
   )
QueryOperations

Пространство имен для операций запроса.

Доступ к ней осуществляется через client.query. Предоставляет операции запроса и поиска в таблицах Dataverse.

Пример:


   from PowerPlatform.Dataverse.models.filters import col

   client = DataverseClient(base_url, credential)

   # Fluent query builder (recommended)
   for record in (client.query.builder("account")
                  .select("name", "revenue")
                  .where(col("statecode") == 0)
                  .order_by("revenue", descending=True)
                  .top(100)
                  .execute()):
       print(record["name"])

   # SQL query
   rows = client.query.sql("SELECT TOP 10 name FROM account ORDER BY name")
   for row in rows:
       print(row["name"])
RecordOperations

Пространство имен для операций CRUD на уровне записей.

Доступ к ней осуществляется через client.records. Предоставляет операции создания, обновления, удаления и получения операций с отдельными записями Dataverse.

Пример:


   client = DataverseClient(base_url, credential)

   # Create a single record
   guid = client.records.create("account", {"name": "Contoso Ltd"})

   # Get a record
   record = client.records.get("account", guid, select=["name"])

   # Update a record
   client.records.update("account", guid, {"telephone1": "555-0100"})

   # Delete a record
   client.records.delete("account", guid)
TableOperations

Пространство имен для операций метаданных на уровне таблицы.

Доступ к ней осуществляется через client.tables. Предоставляет операции для создания, удаления, проверки и перечисления таблиц Dataverse, а также добавления и удаления столбцов.

Пример:


   client = DataverseClient(base_url, credential)

   # Create a table
   info = client.tables.create(
       "new_Product",
       {"new_Price": "decimal", "new_InStock": "bool"},
       solution="MySolution",
   )

   # List tables
   tables = client.tables.list()

   # Get table info
   info = client.tables.get("new_Product")

   # Add columns
   client.tables.add_columns("new_Product", {"new_Rating": "int"})

   # Remove columns
   client.tables.remove_columns("new_Product", "new_Rating")

   # Delete a table
   client.tables.delete("new_Product")