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
?sqlTabellenmetadaten: 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ängeclient.tables– Verwaltung von Tabellen- und Spaltenmetadatenclient.files– Dateiuploadvorgängeclient.dataframe– Pandas DataFrame Wrapper für Datensatz CRUDclient.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
|
Ihre Dataverse-Umgebungs-URL, z. B |
|
credential
Erforderlich
|
Azure Identity-Anmeldeinformationen für die Authentifizierung. |
|
config
|
DataverseConfig oder
None
Optionale Konfiguration für Sprache, Timeouts und Wiederholungen. Wenn nicht angegeben, werden Die Standardwerte von from_env. Standardwert: None
|
|
context
Erforderlich
|
OperationContext oder
None
Optionales aufruferdefiniertes Kontextobjekt, das an den ausgehenden |
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:
|
| 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
|
Cacheart, die geleert werden soll. Derzeit unterstützte Werte:
Zukünftige Arten (z. B. |
Gibt zurück
| Typ | Beschreibung |
|---|---|
|
Anzahl der entfernten Cacheeinträge. |
Beispiele
Löschen Sie den Auswahllistencache:
removed = client.flush_cache("picklist")
print(f"Cleared {removed} cached picklist entries")