operations Paquete

Espacios de nombres de la operación para el SDK de Dataverse.

Este módulo contiene las clases de espacio de nombres de la operación que organizan las operaciones del SDK en grupos lógicos: registros, consultas y tablas.

Módulos

batch

Espacios de nombres de la operación por lotes para el SDK de Dataverse.

dataframe

Espacio de nombres de operaciones CRUD de DataFrame para el SDK de Dataverse.

files

Espacio de nombres de operaciones de archivo para el SDK de Dataverse.

query

Espacio de nombres de operaciones de consulta para el SDK de Dataverse.

records

Registre el espacio de nombres de operaciones CRUD para el SDK de Dataverse.

tables

Espacio de nombres de operaciones de metadatos de tabla para el SDK de Dataverse.

Clases

BatchDataFrameOperations

Contenedores orientados a dataframes para operaciones de registro por lotes.

Proporciona create, updatey delete que aceptanpandas.Series / pandas.DataFrame entradas y las convierten en dicts estándar antes de poner en cola en el lote. Esto permite a los autores de llamadas de ciencia de datos alimentar dataFrames directamente en un lote sin conversión manual.

Acceso a través de batch.dataframe.

Ejemplo:


   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

Espacio de nombres para operaciones por lotes (client.batch).

Acceso a través de client.batch. Use new para crear un BatchRequest generador.

Ejemplo:


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

Operaciones de consulta en .BatchRequest

Refleja client.query exactamente: los mismos nombres de método, las mismas firmas. Todos los métodos devuelven None; los resultados llegan a través de BatchResult.

No cree instancias directamente; use batch.query.

BatchRecordOperations

Registra las operaciones en un BatchRequest.

Reflejos client.records: los mismos nombres de método, las mismas firmas. Todos los métodos devuelven None; los resultados están disponibles a través de BatchResult después executede .

Métodos de disponibilidad general: retrieve (registro único) y list (varios registros, página única). get está en desuso: use retrieve en su lugar.

No cree instancias directamente; use batch.records.

BatchRequest

Generador para construir y ejecutar una solicitud de OData $batch de Dataverse.

Obtener a través new de (client.batch.new()). Agregue operaciones a través recordsde , tables, queryy dataframe, opcionalmente, agrupe las escrituras en y changeset, a continuación, llame a execute.

Las operaciones se ejecutan secuencialmente en el orden agregado. El resultado BatchResult contiene una BatchItemResponse por solicitud HTTP enviada (algunas operaciones se expanden a varias solicitudes).

Nota:

Máximo de 1000 operaciones HTTP por lote.

Ejemplo:


   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

Operaciones de metadatos de tabla en un BatchRequest.

Refleja client.tables exactamente: los mismos nombres de método, las mismas firmas. Todos los métodos devuelven None; los resultados llegan a través de BatchResult.

Nota:

tables.delete, tables.add_columns y tables.remove_columns

requerir una búsqueda de metadatos (GET EntityDefinitions) en

execute tiempo para resolver el MetadataId de la tabla.

Esta búsqueda es transparente para el autor de la llamada.

Nota:

tables.add_columns y tables.remove_columns producen uno

elemento por lotes por columna, por lo que contribuyen a varias entradas

responses.

No cree instancias directamente; use batch.tables.

ChangeSet

Un grupo transaccional de operaciones de escritura de registro único.

Todas las operaciones se realizan correctamente o se revierten juntas. Use como administrador de contexto o llame records a para agregar operaciones directamente.

No cree instancias directamente; use changeset.

Ejemplo:


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

Registre las operaciones de escritura disponibles dentro de .ChangeSet

Reflejos, pero restringidos a formularios client.records de registro único (sin creación o actualización o eliminación masivas). Solo se permiten operaciones de escritura: GET no se permite dentro de un conjunto de cambios.

No cree instancias directamente; use ChangeSet.records.

DataFrameOperations

Espacio de nombres para las operaciones CRUD de DataFrame de Pandas.

Acceso a través de client.dataframe. Proporciona contenedores orientados a DataFrame en torno a las operaciones CRUD de nivel de registro.

Ejemplo:


   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

Espacio de nombres para las operaciones de archivo.

Acceso a través de client.files. Proporciona operaciones de carga de archivos para columnas de archivo de Dataverse.

Ejemplo:


   client = DataverseClient(base_url, credential)

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

Espacio de nombres para las operaciones de consulta.

Acceso a través de client.query. Proporciona operaciones de consulta y búsqueda en tablas de Dataverse.

Ejemplo:


   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

Espacio de nombres para las operaciones CRUD de nivel de registro.

Acceso a través de client.records. Proporciona operaciones de creación, actualización, eliminación y obtención en registros individuales de Dataverse.

Ejemplo:


   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

Espacio de nombres para las operaciones de metadatos de nivel de tabla.

Acceso a través de client.tables. Proporciona operaciones para crear, eliminar, inspeccionar y enumerar tablas de Dataverse, así como agregar y quitar columnas.

Ejemplo:


   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")