DataverseClient Clase

Cliente de alto nivel para operaciones de Microsoft Dataverse.

Este cliente proporciona una interfaz sencilla y estable para interactuar con entornos de Dataverse a través de la API web. Controla la autenticación a través de Azure Identidad y delega las operaciones HTTP en un cliente OData interno.

Funciones clave:

  • Operaciones CRUD de OData: crear, leer, actualizar, eliminar registros

  • Consultas SQL: ejecución de SQL de solo lectura mediante el parámetro de API ?sql web

  • Metadatos de tabla: crear, inspeccionar y eliminar tablas personalizadas; crear y eliminar columnas

  • Cargas de archivos: carga de archivos en columnas de archivos con compatibilidad con fragmentación

Nota:

El cliente inicializa su cliente OData interno en primer uso, lo que permite la construcción ligera sin llamadas de red inmediatas.

Nota:

Todos los métodos que se comunican con la API web de Dataverse pueden generar

HttpError en caso de que no se realice correctamente

Respuestas HTTP (por ejemplo, 401, 403, 404, 429, 500). Método individual

docstrings solo documenta excepciones específicas del dominio.

Las operaciones se organizan en espacios de nombres:

  • client.records : crear, actualizar, eliminar y obtener registros (consultas únicas o paginadas)

  • client.query – Operaciones de consulta y búsqueda

  • client.tables : administración de metadatos de tablas y columnas

  • client.files : operaciones de carga de archivos

  • client.dataframe – contenedores de DataFrame pandas para cruD de registro

  • client.batch : procesamiento por lotes de varias operaciones en una sola solicitud HTTP

Los métodos beta v0 (client.create, client.query_sql, etc.) se quitaron en la versión 1.0 de disponibilidad general. La llamada a una genera ahora AttributeError con un mensaje que denomina el reemplazo de disponibilidad general y el comando codemod: anteriormente, estas llamadas generaron una sugerencia de migración sin AttributeError sugerencia de migración, por lo que la depuración del código migrado medio fue dolorosa. Consulte _REMOVED_BETA_METHODS.

El cliente admite el protocolo del administrador de contextos de Python para la limpieza automática de recursos y la agrupación de conexiones HTTP:

Constructor

DataverseClient(base_url: str, credential: TokenCredential, config: DataverseConfig | None = None, *, context: OperationContext | None = None)

Parámetros

Nombre Description
base_url
Requerido
str

La dirección URL del entorno de Dataverse, por ejemplo "https://org.crm.dynamics.com", . La barra diagonal final se quita automáticamente.

credential
Requerido

Credencial de identidad de Azure para la autenticación.

config

Configuración opcional para el idioma, los tiempos de espera y los reintentos. Si no se proporciona, los valores predeterminados se cargan desde from_env.

Valor predeterminado: None
context
Requerido

Objeto de contexto opcional definido por el autor de la llamada anexado al encabezado saliente User-Agent para la atribución de complementos o herramientas. No se puede usar junto con config : pase el contexto a través DataverseConfig de en su lugar.

Parámetros de palabra clave únicamente

Nombre Description
context
Valor predeterminado: None

Ejemplos

Recomendado: administrador de contextos (habilita la agrupación de conexiones HTTP):


   from azure.identity import InteractiveBrowserCredential
   from PowerPlatform.Dataverse.client import DataverseClient

   credential = InteractiveBrowserCredential()

   with DataverseClient("https://org.crm.dynamics.com", credential) as client:
       record_id = client.records.create("account", {"name": "Contoso Ltd"})
       client.records.update("account", record_id, {"telephone1": "555-0100"})
   # Session closed, caches cleared automatically

Ciclo de vida manual:


   client = DataverseClient("https://org.crm.dynamics.com", credential)
   try:
       record_id = client.records.create("account", {"name": "Contoso Ltd"})
   finally:
       client.close()

Métodos

close

Cierre el cliente y libere los recursos.

Cierra la sesión HTTP (si existe), borra las cachés internas y marca el cliente como cerrado. Seguro para llamar varias veces. Después de cerrar, cualquier operación generará RuntimeError.

Se llama automáticamente al usar el cliente como administrador de contextos.

Ejemplo:


   client = DataverseClient(base_url, credential)
   try:
       client.records.create("account", {"name": "Contoso"})
   finally:
       client.close()
flush_cache

Vaciar los metadatos o el estado del cliente almacenados en caché.

close

Cierre el cliente y libere los recursos.

Cierra la sesión HTTP (si existe), borra las cachés internas y marca el cliente como cerrado. Seguro para llamar varias veces. Después de cerrar, cualquier operación generará RuntimeError.

Se llama automáticamente al usar el cliente como administrador de contextos.

Ejemplo:


   client = DataverseClient(base_url, credential)
   try:
       client.records.create("account", {"name": "Contoso"})
   finally:
       client.close()
close() -> None

flush_cache

Vaciar los metadatos o el estado del cliente almacenados en caché.

flush_cache(kind) -> int

Parámetros

Nombre Description
kind
Requerido
str

Tipo de caché que se va a vaciar. Valores admitidos actualmente:

  • "picklist": borra la caché de etiquetas de lista desplegable usada para la conversión de etiqueta a entero.

Los tipos futuros (por ejemplo "entityset", , "primaryid") se pueden agregar sin interrumpir esta firma.

Devoluciones

Tipo Description
int

Número de entradas de caché eliminadas.

Ejemplos

Borre la caché de la lista de selección:


   removed = client.flush_cache("picklist")
   print(f"Cleared {removed} cached picklist entries")