DataverseClient 類別
Microsoft Dataverse 營運的高階客戶端。
此用戶端提供簡單且穩定的介面,透過 Web API 與 Dataverse 環境互動。 它透過 Azure 身份處理認證,並將 HTTP 操作委派給內部的 OData 用戶端。
主要功能:
OData CRUD 操作:建立、讀取、更新、刪除紀錄
SQL 查詢:透過 Web API
?sql參數執行唯讀 SQL資料表元資料:建立、檢查及刪除自訂資料表;建立與刪除欄位
檔案上傳:將檔案上傳到支援分塊的檔案欄位
備註
用戶端在首次使用時會懶散地初始化內部 OData 用戶端,允許輕量級建置而無需立即呼叫網路。
備註
所有與 Dataverse Web API 通訊的方法可能會產生
HttpError 關於未成功
HTTP 回應(例如 401、403、404、429、500)。 個別方法
docstring 僅記錄域特定例外。
操作組織於命名空間中:
client.records– 建立、更新、刪除及取得紀錄(單次或分頁查詢)client.query– 查詢與搜尋操作client.tables– 表格與欄位元資料管理client.files– 檔案上傳操作client.dataframe– pandas DataFrame 封裝器用於記錄 CRUDclient.batch– 將多個操作批次化成單一 HTTP 請求
v0 beta 方法(、client.createclient.query_sql 等)在 1.0 GA 中被移除。 現在 AttributeError 呼叫 GA 會收到訊息,並指定 GA 替換和 codemod 指令——以前這些呼叫只會發出一個空洞 AttributeError 且沒有遷移提示,因此除錯半遷移的程式碼非常痛苦。 請參見_REMOVED_BETA_METHODS。
用戶端支援 Python 的上下文管理器協定,用於自動資源清理與 HTTP 連線池:
建構函式
DataverseClient(base_url: str, credential: TokenCredential, config: DataverseConfig | None = None, *, context: OperationContext | None = None)
參數
| 名稱 | Description |
|---|---|
|
base_url
必要
|
例如 |
|
credential
必要
|
Azure Identity credential for authentication. |
|
config
|
語言、超時和重試的可選設定。 若未提供,預設值將從 載入 from_env。 預設值: None
|
|
context
必要
|
可選地附加在外掛 |
僅限關鍵字的參數
| 名稱 | Description |
|---|---|
|
context
|
預設值: None
|
範例
推薦 – 情境管理器 (啟用 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
手動生命週期:
client = DataverseClient("https://org.crm.dynamics.com", credential)
try:
record_id = client.records.create("account", {"name": "Contoso Ltd"})
finally:
client.close()
方法
| close |
關閉客戶端並釋放資源。 關閉 HTTP 會話(如果有的話)、清除內部快取,並將客戶端標記為關閉。 可以多次打電話。 成交後,任何操作都會被提升 RuntimeError。 當使用客戶端作為上下文管理器時,會自動呼叫。 範例:
|
| flush_cache |
清除快取的客戶端元資料或狀態。 |
close
關閉客戶端並釋放資源。
關閉 HTTP 會話(如果有的話)、清除內部快取,並將客戶端標記為關閉。 可以多次打電話。 成交後,任何操作都會被提升 RuntimeError。
當使用客戶端作為上下文管理器時,會自動呼叫。
範例:
client = DataverseClient(base_url, credential)
try:
client.records.create("account", {"name": "Contoso"})
finally:
client.close()
close() -> None
flush_cache
清除快取的客戶端元資料或狀態。
flush_cache(kind) -> int
參數
| 名稱 | Description |
|---|---|
|
kind
必要
|
快取類型會沖洗。 目前支援的價值觀:
未來類型(例如 |
傳回
| 類型 | Description |
|---|---|
|
移除的快取條目數量。 |
範例
清除選擇清單快取:
removed = client.flush_cache("picklist")
print(f"Cleared {removed} cached picklist entries")