DataverseClient クラス
Microsoft Dataverse 操作用のクライアントの概要。
このクライアントは、Web API を介して Dataverse 環境と対話するためのシンプルで安定したインターフェイスを提供します。 Azure ID を介して認証を処理し、内部 OData クライアントに HTTP 操作を委任します。
主な機能:
OData CRUD 操作: レコードの作成、読み取り、更新、削除
SQL クエリ: Web API
?sqlパラメーターを使用して読み取り専用 SQL を実行するテーブル メタデータ: カスタム テーブルの作成、検査、および削除。列の作成と削除
ファイルのアップロード: チャンクがサポートされているファイル列にファイルをアップロードする
注
クライアントは、最初の使用時に内部 OData クライアントを遅延的に初期化し、ネットワーク呼び出しを即時に行わずに軽量な構築を可能にします。
注
Dataverse Web API と通信するすべてのメソッドは、
HttpError 成功していない場合
HTTP 応答 (例: 401、403、404、429、500)。 個別対応方式
docstrings はドメイン固有の例外のみを文書化します。
操作は名前空間に編成されます。
client.records– レコードの作成、更新、削除、および取得 (単一またはページ分割されたクエリ)client.query– クエリ操作と検索操作client.tables– テーブルと列のメタデータ管理client.files– ファイルのアップロード操作client.dataframeレコード CRUD の pandas DataFrame ラッパーclient.batch– 複数の操作を 1 つの HTTP 要求にバッチ処理する
v0 ベータメソッド (client.create、 client.query_sqlなど) は 1.0 GA で削除されました。 1 つを呼び出すと、GA 置換と codemod コマンドという名前のメッセージで AttributeError が発生するようになりました。以前は、これらの呼び出しで移行ヒントなしでベア AttributeError が発生していたため、半分に移行されたコードのデバッグは手間がかかっていました。 _REMOVED_BETA_METHODSを参照してください。
クライアントは、リソースの自動クリーンアップと HTTP 接続プールのために、Pythonのコンテキスト マネージャー プロトコルをサポートしています。
コンストラクター
DataverseClient(base_url: str, credential: TokenCredential, config: DataverseConfig | None = None, *, context: OperationContext | None = None)
パラメーター
| 名前 | 説明 |
|---|---|
|
base_url
必須
|
|
|
credential
必須
|
認証用の Azure ID 資格情報。 |
|
config
|
DataverseConfig または
None
言語、タイムアウト、再試行のオプション構成。 指定しない場合、既定値は from_envから読み込まれます。 規定値: None
|
|
context
必須
|
OperationContext または
None
プラグイン/ツール属性の送信 |
キーワードのみのパラメーター
| 名前 | 説明 |
|---|---|
|
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
パラメーター
| 名前 | 説明 |
|---|---|
|
kind
必須
|
フラッシュするキャッシュの種類。 現在サポートされている値:
今後の種類 ( |
返品
| 型 | 説明 |
|---|---|
|
削除されたキャッシュ エントリの数。 |
例
候補リスト キャッシュをクリアします。
removed = client.flush_cache("picklist")
print(f"Cleared {removed} cached picklist entries")