DataverseClient Klasse

Hoher Client für Microsoft Dataverse-Vorgänge.

Dieser Client bietet eine einfache, stabile Schnittstelle für die Interaktion mit Dataverse-Umgebungen über die Web-API. Sie verarbeitet die Authentifizierung über Azure Identität und delegiert HTTP-Vorgänge an einen internen OData-Client.

Hauptfunktionen:

  • OData CRUD-Vorgänge: Erstellen, Lesen, Aktualisieren, Löschen von Datensätzen

  • SQL-Abfragen: Ausführen von schreibgeschütztem SQL über den Web-API-Parameter ?sql

  • Tabellenmetadaten: Erstellen, Überprüfen und Löschen von benutzerdefinierten Tabellen; Erstellen und Löschen von Spalten

  • Dateiuploads: Hochladen von Dateien in Dateispalten mit Blockierungsunterstützung

Hinweis

Der Client initialisiert seinen internen OData-Client bei der ersten Verwendung lazily und ermöglicht eine einfache Konstruktion ohne sofortige Netzwerkaufrufe.

Hinweis

Alle Methoden, die mit der Dataverse-Web-API kommunizieren, können auslösen

HttpError bei nicht erfolgreicher Ausführung

HTTP-Antworten (z. B. 401, 403, 404, 429, 500). Individuelle Methode

Docstrings dokumentieren nur domänenspezifische Ausnahmen.

Vorgänge sind in Namespaces organisiert:

  • client.records – Erstellen, Aktualisieren, Löschen und Abrufen von Datensätzen (einzelne oder paginierte Abfragen)

  • client.query – Abfrage- und Suchvorgänge

  • client.tables – Verwaltung von Tabellen- und Spaltenmetadaten

  • client.files – Dateiuploadvorgänge

  • client.dataframe – Pandas DataFrame Wrapper für Datensatz CRUD

  • client.batch – Batch mehrerer Vorgänge in einer einzelnen HTTP-Anforderung

v0 Betamethoden (client.create, client.query_sqlusw.) wurden in 1.0 GA entfernt. Das Aufrufen eines wird jetzt mit einer Meldung ausgelöst AttributeError , die den GA-Ersatz und den Codemod-Befehl benennt – zuvor lösten diese Aufrufe einen bar AttributeError ohne Migrationshinweis aus, sodass das Debuggen von halb migriertem Code schmerzhaft war. Siehe _REMOVED_BETA_METHODS.

Der Client unterstützt das Kontext-Manager-Protokoll Python für die automatische Ressourcenbereinigung und http-Verbindungspooling:

Konstruktor

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

Parameter

Name Beschreibung
base_url
Erforderlich
str

Ihre Dataverse-Umgebungs-URL, z. B "https://org.crm.dynamics.com". . Der nachfolgende Schrägstrich wird automatisch entfernt.

credential
Erforderlich

Azure Identity-Anmeldeinformationen für die Authentifizierung.

config

Optionale Konfiguration für Sprache, Timeouts und Wiederholungen. Wenn nicht angegeben, werden Die Standardwerte von from_env.

Standardwert: None
context
Erforderlich

Optionales aufruferdefiniertes Kontextobjekt, das an den ausgehenden User-Agent Header für plugin/tool attribution angefügt wurde. Kann nicht zusammen mit config verwendet werden – übergeben Sie stattdessen den Kontext DataverseConfig .

Nur Schlüsselwortparameter

Name Beschreibung
context
Standardwert: None

Beispiele

Empfohlen – Kontext-Manager (ermöglicht HTTP-Verbindungspooling):


   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

Manueller Lebenszyklus:


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

Methoden

close

Schließen Sie den Client, und geben Sie Ressourcen frei.

Schließt die HTTP-Sitzung (falls vorhanden), löscht interne Caches und kennzeichnet den Client als geschlossen. Sicher, mehrmals anrufen zu können. Nach dem Schließen löst jeder Vorgang aus RuntimeError.

Wird automatisch aufgerufen, wenn der Client als Kontext-Manager verwendet wird.

Beispiel:


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

Leeren zwischengespeicherter Clientmetadaten oder -zustand.

close

Schließen Sie den Client, und geben Sie Ressourcen frei.

Schließt die HTTP-Sitzung (falls vorhanden), löscht interne Caches und kennzeichnet den Client als geschlossen. Sicher, mehrmals anrufen zu können. Nach dem Schließen löst jeder Vorgang aus RuntimeError.

Wird automatisch aufgerufen, wenn der Client als Kontext-Manager verwendet wird.

Beispiel:


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

flush_cache

Leeren zwischengespeicherter Clientmetadaten oder -zustand.

flush_cache(kind) -> int

Parameter

Name Beschreibung
kind
Erforderlich
str

Cacheart, die geleert werden soll. Derzeit unterstützte Werte:

  • "picklist": Löscht den Auswahllistenbeschriftungscache, der für die Konvertierung von Bezeichnungen in ganze Zahlen verwendet wird.

Zukünftige Arten (z. B. "entityset", ) können hinzugefügt werden, "primaryid"ohne diese Signatur zu unterbrechen.

Gibt zurück

Typ Beschreibung
int

Anzahl der entfernten Cacheeinträge.

Beispiele

Löschen Sie den Auswahllistencache:


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