DataverseClient Klasa
Klient wysokiego poziomu dla operacji microsoft Dataverse.
Ten klient udostępnia prosty, stabilny interfejs do interakcji ze środowiskami Dataverse za pośrednictwem internetowego interfejsu API. Obsługuje uwierzytelnianie za pośrednictwem Azure Identity i deleguje operacje HTTP do wewnętrznego klienta OData.
Kluczowe możliwości:
Operacje OData CRUD: tworzenie, odczytywanie, aktualizowanie, usuwanie rekordów
Zapytania SQL: wykonywanie bazy danych SQL tylko do odczytu za pośrednictwem parametru internetowego interfejsu API
?sqlMetadane tabeli: tworzenie, inspekcja i usuwanie tabel niestandardowych; tworzenie i usuwanie kolumn
Przekazywanie plików: przekazywanie plików do kolumn plików z obsługą fragmentowania
Uwaga / Notatka
Klient leniwie inicjuje wewnętrznego klienta OData w pierwszym użyciu, co pozwala na uproszczoną konstrukcję bez natychmiastowych wywołań sieciowych.
Uwaga / Notatka
Wszystkie metody komunikujące się z internetowym interfejsem API usługi Dataverse mogą wywołać
HttpError w przypadku braku powodzenia
Odpowiedzi HTTP (np. 401, 403, 404, 429, 500). Metoda indywidualna
Dokument zawiera tylko wyjątki specyficzne dla domeny.
Operacje są zorganizowane w przestrzenie nazw:
client.records— tworzenie, aktualizowanie, usuwanie i pobieranie rekordów (zapytania pojedyncze lub podzielone na strony)client.query— operacje zapytań i wyszukiwaniaclient.tables— zarządzanie metadanymi tabel i kolumnclient.files— operacje przekazywania plikówclient.dataframe— otoki ramek danych biblioteki pandas dla rekordu CRUDclient.batch— wsadowe wiele operacji do pojedynczego żądania HTTP
Metody wersji 0 beta (client.create, client.query_sqlitp.) zostały usunięte w wersji 1.0 ogólnie dostępnej. Wywołanie jednego wywołuje AttributeError teraz z komunikatem nazewnictwa zamiany ga i polecenia codemod — wcześniej te wywołania wywołały goły AttributeError bez wskazówki migracji, więc debugowanie częściowo zmigrowanego kodu było bolesne. Zobacz _REMOVED_BETA_METHODS.
Klient obsługuje protokół menedżera kontekstu Python na potrzeby automatycznego czyszczenia zasobów i buforowania połączeń HTTP:
Konstruktor
DataverseClient(base_url: str, credential: TokenCredential, config: DataverseConfig | None = None, *, context: OperationContext | None = None)
Parametry
| Nazwa | Opis |
|---|---|
|
base_url
Wymagane
|
Adres URL środowiska Dataverse, na przykład |
|
credential
Wymagane
|
Poświadczenia tożsamości platformy Azure na potrzeby uwierzytelniania. |
|
config
|
DataverseConfig lub
None
Opcjonalna konfiguracja języka, limitów czasu i ponownych prób. Jeśli nie zostanie podana, wartości domyślne są ładowane z from_env. Domyślna wartość: None
|
|
context
Wymagane
|
OperationContext lub
None
Opcjonalny obiekt kontekstu zdefiniowany przez obiekt wywołujący dołączony do nagłówka ruchu wychodzącego |
Parametry Tylko słowo kluczowe
| Nazwa | Opis |
|---|---|
|
context
|
Domyślna wartość: None
|
Przykłady
Zalecane — menedżer kontekstu (włącza buforowanie połączeń 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
Cykl życia ręcznego:
client = DataverseClient("https://org.crm.dynamics.com", credential)
try:
record_id = client.records.create("account", {"name": "Contoso Ltd"})
finally:
client.close()
Metody
| close |
Zamknij klienta i zwolnij zasoby. Zamyka sesję HTTP (jeśli istnieje), czyści wewnętrzne pamięci podręczne i oznacza klienta jako zamknięte. Bezpieczne, aby zadzwonić wiele razy. Po zamknięciu każda operacja zgłosi wartość RuntimeError. Wywoływana automatycznie podczas korzystania z klienta jako menedżera kontekstu. Example:
|
| flush_cache |
Opróżnij buforowane metadane lub stan klienta. |
close
Zamknij klienta i zwolnij zasoby.
Zamyka sesję HTTP (jeśli istnieje), czyści wewnętrzne pamięci podręczne i oznacza klienta jako zamknięte. Bezpieczne, aby zadzwonić wiele razy. Po zamknięciu każda operacja zgłosi wartość RuntimeError.
Wywoływana automatycznie podczas korzystania z klienta jako menedżera kontekstu.
Example:
client = DataverseClient(base_url, credential)
try:
client.records.create("account", {"name": "Contoso"})
finally:
client.close()
close() -> None
flush_cache
Opróżnij buforowane metadane lub stan klienta.
flush_cache(kind) -> int
Parametry
| Nazwa | Opis |
|---|---|
|
kind
Wymagane
|
Rodzaj pamięci podręcznej do opróżnienia. Obecnie obsługiwane wartości:
Przyszłe rodzaje (np. |
Zwraca
| Typ | Opis |
|---|---|
|
Liczba usuniętych wpisów pamięci podręcznej. |
Przykłady
Wyczyść pamięć podręczną listy wyboru:
removed = client.flush_cache("picklist")
print(f"Cleared {removed} cached picklist entries")