DataverseClient Classe

Client de haut niveau pour les opérations Microsoft Dataverse.

Ce client fournit une interface simple et stable pour interagir avec les environnements Dataverse via l’API web. Il gère l’authentification via Azure Identity et délègue les opérations HTTP à un client OData interne.

Fonctionnalités clés :

  • Opérations CRUD OData : créer, lire, mettre à jour, supprimer des enregistrements

  • Requêtes SQL : exécuter SQL en lecture seule via le paramètre d’API ?sql web

  • Métadonnées de table : créer, inspecter et supprimer des tables personnalisées ; créer et supprimer des colonnes

  • Chargements de fichiers : charger des fichiers dans des colonnes de fichiers avec prise en charge de segmentation

Note

Le client initialise automatiquement son client OData interne lors de la première utilisation, ce qui permet une construction légère sans appels réseau immédiats.

Note

Toutes les méthodes qui communiquent avec l’API Web Dataverse peuvent déclencher

HttpError sur la non-réussite

Réponses HTTP (par exemple, 401, 403, 404, 429, 500). Méthode individuelle

docstrings documente uniquement les exceptions spécifiques au domaine.

Les opérations sont organisées en espaces de noms :

  • client.records : créer, mettre à jour, supprimer et obtenir des enregistrements (requêtes uniques ou paginés)

  • client.query – opérations de requête et de recherche

  • client.tables – gestion des métadonnées de table et de colonne

  • client.files – Opérations de chargement de fichiers

  • client.dataframe – wrappers DataFrame pandas pour l’enregistrement CRUD

  • client.batch : traitement par lots de plusieurs opérations dans une requête HTTP unique

Les méthodes bêta v0 (client.create, client.query_sqletc.) ont été supprimées en disponibilité générale 1.0. L’appel d’un message se déclenche AttributeError maintenant avec un message nommant le remplacement en disponibilité générale et la commande codemod . Auparavant, ces appels ont déclenché un indicateur de migration sans AttributeError indicateur de migration, de sorte que le débogage du code à moitié migré était douloureux. Voir _REMOVED_BETA_METHODS.

Le client prend en charge le protocole de gestionnaire de contexte de Python pour le nettoyage automatique des ressources et le regroupement de connexions HTTP :

Constructeur

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

Paramètres

Nom Description
base_url
Obligatoire
str

URL de votre environnement Dataverse, par exemple "https://org.crm.dynamics.com". La barre oblique de fin est automatiquement supprimée.

credential
Obligatoire

Informations d’identification d’identité Azure pour l’authentification.

config

Configuration facultative pour la langue, les délais d’attente et les nouvelles tentatives. S’il n’est pas fourni, les valeurs par défaut sont chargées à partir de from_env.

Valeur par défaut: None
context
Obligatoire

Objet de contexte facultatif défini par l’appelant ajouté à l’en-tête sortant User-Agent pour l’attribution de plug-in/tool. Impossible d’utiliser conjointement avec config : passez le contexte à DataverseConfig la place.

Paramètres de mot clé uniquement

Nom Description
context
Valeur par défaut: None

Exemples

Recommandé : gestionnaire de contexte (active le regroupement de connexions 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

Cycle de vie manuel :


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

Méthodes

close

Fermez le client et relâchez les ressources.

Ferme la session HTTP (le cas échéant), efface les caches internes et marque le client comme fermé. Sécurité pour appeler plusieurs fois. Après la fermeture, toute opération se déclenche RuntimeError.

Appelé automatiquement lors de l’utilisation du client en tant que gestionnaire de contexte.

Exemple :


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

Videz les métadonnées ou l’état du client mis en cache.

close

Fermez le client et relâchez les ressources.

Ferme la session HTTP (le cas échéant), efface les caches internes et marque le client comme fermé. Sécurité pour appeler plusieurs fois. Après la fermeture, toute opération se déclenche RuntimeError.

Appelé automatiquement lors de l’utilisation du client en tant que gestionnaire de contexte.

Exemple :


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

flush_cache

Videz les métadonnées ou l’état du client mis en cache.

flush_cache(kind) -> int

Paramètres

Nom Description
kind
Obligatoire
str

Type de cache à vider. Valeurs actuellement prises en charge :

  • "picklist": efface le cache d’étiquettes de liste de sélection utilisé pour la conversion d’étiquette en entier

Les types futurs (par exemple "entityset", , "primaryid") peuvent être ajoutés sans rompre cette signature.

Retours

Type Description
int

Nombre d’entrées de cache supprimées.

Exemples

Effacez le cache de la liste de sélection :


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