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 ?sql

  • Metadane 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 wyszukiwania

  • client.tables — zarządzanie metadanymi tabel i kolumn

  • client.files — operacje przekazywania plików

  • client.dataframe — otoki ramek danych biblioteki pandas dla rekordu CRUD

  • client.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
str

Adres URL środowiska Dataverse, na przykład "https://org.crm.dynamics.com". Ukośnik końcowy jest automatycznie usuwany.

credential
Wymagane

Poświadczenia tożsamości platformy Azure na potrzeby uwierzytelniania.

config

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

Opcjonalny obiekt kontekstu zdefiniowany przez obiekt wywołujący dołączony do nagłówka ruchu wychodzącego User-Agent na potrzeby przypisania wtyczki/narzędzia. Nie można używać razem z config — zamiast tego przekazuj kontekst za pośrednictwem DataverseConfig .

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:


   client = DataverseClient(base_url, credential)
   try:
       client.records.create("account", {"name": "Contoso"})
   finally:
       client.close()
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
str

Rodzaj pamięci podręcznej do opróżnienia. Obecnie obsługiwane wartości:

  • "picklist": Czyści pamięć podręczną etykiet listy wyboru używaną do konwersji etykiet do liczby całkowitej

Przyszłe rodzaje (np. "entityset", "primaryid") mogą być dodawane bez przerywania tego podpisu.

Zwraca

Typ Opis
int

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")