IPowerPortalsProService

IPowerPortalsProServiceインターフェースは、CRUD操作の実行、クエリの実行、リレーションシップの管理、Dataverseからのメタデータ取得の方法を提供します。PowerPortalsProにおけるサーバー側のデータアクセスの主要なサービスです。

注記

ほとんどの場合、直接電話 IPowerPortalsProService 必要はありません。 RecordContextMainContext、グリッドの各コンポーネントはデータ操作を自動的に処理します。標準コンポーネントワークフローの外にあるカスタムロジックにはこのサービスをご利用ください。

サーバーおよびクライアント実装

IPowerPortalsProService フレームワークによって自動的に登録された2つの実装が付属しています — コンポーネントコードは両方で同一であり、ランタイムはアクティブなレンダリングコンテキストに一致するものを注入します:

  • サーバー実装 (PowerPortalsPro.Web.ServerAddPowerPortalsProWebServerが登録)— プロセス中で実行し、 IOrganizationServiceを通じてDataverseと直接通信し、読み書き前に ITablePermissionHandler / ITableRecordPermissionHandler インターセプターを適用します。ページが InteractiveServerRenderMode または静的SSRでレンダリングされるときに選択されます。
  • クライアント実装 (PowerPortalsPro.Web.ClientAddPowerPortalsProWebClient登録)— ブラウザ上でWebAssemblyの下で動作し、Dataverse SDKは一切搭載せず、代わりに各呼び出しをJSONでシリアライズして対応するサーバーサイドのHTTPエンドポイント(/api/table/{name}/api/retrieveMultipleなど)に変換します。パーミッションハンドラーは、リクエストがサーバーのエンドポイントに戻るため、依然として適用されます。ワイヤー形式とクライアント実装呼び出しのルートについては、 クライアントAPI ページをご覧ください。

契約が同一であるため、同じコンポーネントはサーバー、WebAssembly、Autoのいずれかのインタラクティブモードで動作します。サーバーレンダリングされたページで _powerPortalsProService.RetrieveRecordAsync(...) を呼び出すコードは、進行中のDataverse呼び出しを行います。WASMレンダリングされたページの同じ行がHTTPリクエストを発行します — 分岐は不要です。

サービスの注入

構成ツールやプロパティ注入を通じて、任意のBlazorコンポーネントやサービスに IPowerPortalsProService を注入できます。

React
Blazor

記録の回収

テーブル名とIDで単一のレコードを取得するには、オプションで RetrieveRecordAsync を使えます。どの列を返すかを指定することもできます。省略するとすべての列が返されます。

React
Blazor

複数のレコードのクエリ

FetchXMLクエリ文字列と組み合わせた RetrieveRecordsAsync を使い、フィルタリング、ソート、リンクエンティティのサポートで複数のレコードを取得します。

React
Blazor

記録の作成

CreateRecordAsyncを使ってDataverseで新しいレコードを作成しましょう。応答には新たに作成されたレコードのIDが含まれています。

React
Blazor

記録の更新

既存のレコードを更新するには UpdateRecordAsync を使ってください。 TableRecord に設定されたプロパティのみがDataverseに送信されます。

React
Blazor

記録の削除

DeleteRecordAsyncを使ってテーブル名とIDでレコードを削除してください。

React
Blazor

記録の関連付け

AssociateAsyncDisassociateAsyncを使って、レコード間の多対多関係を管理しましょう。

React
Blazor

リクエストの実行

ExecuteAsyncを単一のリクエストに使うか、単一のデータベーストランザクションで複数のリクエストを実行するためのExecuteMultipleAsync。トランザクションバッチ内の任意のリクエストが失敗した場合、すべての変更はロールバックされます。

React
Blazor

メタデータの取得

RetrieveTableMetadataAsyncRetrieveViewMetadataAsyncを使ってテーブルやビューのメタデータを取得してください。キャッシュアクセスの場合は、ITableMetadataCacheIViewMetadataCacheを優先してください。

React
Blazor

ファイルの扱い方

GetFileInfoAsyncを使ってファイルや画像のメタデータを取得し、必要に応じてファイルや画像の列からバイナリコンテンツを取得します。

React
Blazor

IPowerPortalsProService Interface

方法

名称
パラメータ
種類
概要
AssociateAsyncTableRecordReference record
string relationshipName
IEnumerable<TableRecordReference> relatedRecords
EntityRole? role
Task<AssociateResponse>
多対多関係を通じて、1つまたは複数の関連レコードとレコードを関連付けます。
ClearAllCachesAsyncTask<IReadOnlyList<CacheClearResult>>
サーバー側のすべての Services.IClearableCache (テーブル/ビュー/特権)をクリアします メタデータ、ユーザーごとの権限、環境ファイル設定)をまとめて再構築します。 局所化された文字列は原子的にキャッシュされます — 読者は以前のものを引き続き見ることができます 新しい状態が完全に埋め尽くされるまでデータを読み込みます。レイジーキャッシュのリフィルは 次に彼らが必要なリクエストです。 この呼び出しの背後にあるHTTPエンドポイントは、 [Authorize(Roles = 'SystemAdmin')]。サーバー側の直接発信者は 自分の境界線で適切にゲートを設置してください。
ClearCacheAsyncstring name
Task<CacheClearResult>
名前のあるキャッシュを1つクリアします。登録されていない場合は返品 null キャッシュマッチは name (大文字に区別されません);失敗は以下の通りです。 投げるのではなく、結果に包まれている。同じ認証ゲート IPowerPortalsProService.ClearAllCachesAsync
CreateFileArchiveAsyncCreateFileArchiveRequest request
Task<FileArchiveResult>
アーカイブを構築する(現在はzipファイル、将来のフォーマットは CreateFileArchiveRequest.Format 列挙)を含むすべてのレコードの 指定されたテーブル/カラムペアのファイルペイロード。同じレコード単位を使用しています 許可チェーンを String,System.Boolean) として — 不正/欠落 アーカイブから行が静かに削除されます。重複するファイル名は以下の通りです。 接尾辞 「(2)」(3)」で区別されています...それで、アーカイブ エントリーを上書きしないでください。
CreateRecordAsyncTableRecord record
Task<CreateResponse>
Dataverseで新しいレコードを作成します。
DeleteRecordAsyncstring tableLogicalName
Guid id
Task<DeleteResponse>
Dataverseからテーブル名とレコードIDでレコードを削除します。
DisassociateAsyncTableRecordReference record
string relationshipName
IEnumerable<TableRecordReference> relatedRecords
EntityRole? role
Task<DisassociateResponse>
多対多の関係を通じて、レコードと1つ以上の関連レコードとの関連付けを除去します。
DownloadLocalizationSourceAsyncstring sourceId
string culture
Task<LocalizationDownload>
鍵のダウンロードは、最も多くの文化に貢献した一つのソースです 最近のウォームアップで、同じ入れ子オブジェクト形状のJSONのコンシューマーとして app.{culture}.json ファイルが使います。翻訳の引き継ぎを意図しています — ファイルを翻訳者に渡し、翻訳版を取り戻し、それを投函します 元のソースを上書きするローカライゼーションフォルダです その鍵のために用意された。
DownloadMergedLocalizationsAsyncstring culture
Task<LocalizationDownload>
ある文化の統合済みローカリゼーションキーをダウンロードします — ポストマージ キャッシュに保存されているすべての鍵に対して勝利値が、どの鍵であっても 元々はソースが提供していました。これを完全なスナップショットに使ってください 参考資料(ポータルがその文化で実際に機能するすべての情報) 上記の各情報源視点ではなく、
ExecuteAsyncOrganizationRequest request
Task<OrganizationResponse>
Dataverseに対して単一の組織リクエストを実行します。
ExecuteMultipleAsyncIEnumerable<OrganizationRequest> requests
bool returnResponses
Task<List<OrganizationResponse>>
単一のデータベーストランザクションで複数の組織リクエストを実行します。 リクエストが失敗した場合、バッチ内のすべての変更がロールバックされます。
GetCacheNamesAsyncTask<IReadOnlyList<string>>
適切なサーバー側の Services.IClearableCacheの名前を返します キャッシュごとにクリアボタンをレンダリングしたい管理者UI向けに。同じ認証ゲート HTTPエンドポイントに適用される IPowerPortalsProService.ClearAllCachesAsync
GetFileInfoAsyncstring tableName
Guid recordId
string columnName
bool includeData
Task<FileInfo>
Dataverseのファイルや画像列からファイル情報およびオプションでバイナリコンテンツを取得します。
GetFileInfosAsyncstring tableName
IEnumerable<Guid> recordIds
string columnName
bool includeData
Task<IEnumerable<FileInfo>>
同じテーブル/カラムの多くのレコードのファイル情報をバッチで取得する 往復で。内部では、レコードごとのフィートが並列に並列でフェッチアウトされ、 結合されたリストを返します。レコードごとの権限ハンドラーチェーンは、の場合と同じように動作します シングルレコードコール;検索に失敗した場合は応答から除外されます。 バッチ全体が失敗した。 FileGridの「すべてダウンロード」/「選択済みダウンロード」で使われ、クライアントが N個のHTTPリクエストを発生させずにzipを送ること。
GetLocalizationOverviewAsyncTask<LocalizationOverview>
文字列ローカリゼーションパイプラインの管理者向けスナップショットを返します: ウォームアップを駆動する静的設定とソースごとの負荷記録 直近のウォームアップによって生まれた。ロー カリゼーション管理者を支持しています component in PowerPortalsPro.Web.Blazor.FluentUI. HTTPエンドポイントは [Authorize(Roles = 'SystemAdmin')]によってゲートされます。
GetMergedLocalizationEntriesAsyncstring culture
Task<IReadOnlyList<MergedLocalizationEntry>>
1つの文化の統合されたローカライゼーションキーを構造化されたリストとして返します — キャッシュが提供するキー、マージ後の勝利値、そしてどのソースが提供されるか その価値。データと同じですが、キーごとに表示されます DownloadMergedLocalizationsAsync(System.String) 管理者が作成元(ファイル/ウェブリソース/Dataverseメタデータ)を注釈付けし、 グリッド状の出所を調べてください。エントリーはキーごとにソートされています。
GetOrganizationSettingsAsyncTask<OrganizationSettings>
Dataverseから得た組織全体の設定を取得 組織 記録: DefaultCurrency — 組織の基本通貨で、作成モードで使用されます 編集者(MoneyEdit)が新しいレコードに正しいシンボルを表示します。 BlockedFileExtensions + MaxUploadFileSizeInBytes — ファイルアップロード 制約はクライアントが往復前に無効なファイルを拒否するためにミラーします。 レガシーの GetEnvironmentFileSettingsAsync — 2つのファイルフィールドを置き換えます この複合的な回答で暴露されています。
GetTablePermissionsForCurrentUserAsyncstring tableLogicalName
Task<TableSecurityPermission>
現在のユーザーのテーブルレベルの複合マスク Models.TableSecurityPermission 返します tableLogicalName — Read / Create / Write / のビットごとの和集合 Delete / Append / AppendTo は、 ITablePermissionHandler が許可する登録済みフラグです そのテーブルのユーザーのためです。 サーバー側ではキャッシュされた ITablePermissionCacheに委任されます。WASMクライアント 同じキャッシュをサーバー上で呼び出すHTTPエンドポイントに当たる。ミラー table-cache lookup Blazor's NewRecordGridButton / DeleteRecordGridButton すでにDIで直接行っており、GridDataResponseが持つ新しい値は次のようになります。 TablePermissions — ここではグリッドパス外の消費者(カスタム)を公開しています ツールバー、条件付きUI、「ユーザーがXを作成できますか?」ゲートなど、ページ上のどこでも)などで、 グリッドクエリを発射せずに同じ答えに到達できます。
GetTranslationAvailabilityAsyncTask<TranslationAvailability>
ローカライズ・翻訳機能が現在の環境で使用可能かどうかを返します: Azure翻訳サービスが設定されているか、翻訳が管理されているか ソリューションがインストールされ、候補言語(ポータルがサポートする文化)が対象となります Azure翻訳性で注釈付き)。 LocalizationTranslator UIの決定を支持します 翻訳パネルやインストールプロンプトを表示する、あるいは何も表示しない。
RetrieveRecordAsyncstring tableLogicalName
Guid id
IEnumerable<string> columns
Task<TableRecord>
Dataverseからテーブル名とレコードIDで単一のレコードを取得します。
RetrieveRecordsAsyncstring fetchXml
Task<RetrieveRecordsResponse>
FetchXMLクエリを用いてDataverseから複数のレコードを取得します。 フィルタリング、ソート、ページング、リンクエンティティ、集約クエリをサポートしています。
RetrieveTableMetadataAsyncstring tableLogicalName
Task<TableMetadata>
Dataverseからテーブルのメタデータを取得し、列定義、関係、表示設定などを含みます。
RetrieveViewMetadataAsyncGuid viewId
Task<ViewMetadata>
Dataverseからビューメタデータを取得し、ビューのFetchXMLクエリ、列、表示設定などが含まれます。
RetrieveViewsForTableAsyncstring tableLogicalName
Task<IEnumerable<ViewMetadata>>
テーブルのすべてのビューメタデータレコードを取得します。必要なグリッドで使われる 利用可能なビュー(ビューピッカー、デフォルトビュー解像度など)を列挙します。 サーバー側の実装は、進行中の IViewMetadataCacheから読み込みます。 WASMクライアントはHTTPエンドポイントに到達し、そのエンドポイントはサーバー上で同じ処理を行います。
TranslateLocalizationFileAsyncTranslationRequest request
Task<TranslationResult>
アップロードされたローカライゼーションファイルをAzure経由で1つ以上のターゲット言語に機械翻訳します TranslatorはDataverse翻訳メモリを再利用し、文字列数を報告します。 新たに翻訳されたものと再利用されたもの。ターゲット言語ごとに1つのファイルとすべてのzipファイルを返します。
UpdateRecordAsyncTableRecord record
Task<UpdateResponse>
Dataverseの既存のレコードを更新します。レコード上に設定されたプロパティのみがDataverseに送信されます。
名称: AssociateAsync
パラメータ: TableRecordReference record
string relationshipName
IEnumerable<TableRecordReference> relatedRecords
EntityRole? role
種類: Task<AssociateResponse>
概要: 多対多関係を通じて、1つまたは複数の関連レコードとレコードを関連付けます。
名称: ClearAllCachesAsync
種類: Task<IReadOnlyList<CacheClearResult>>
概要: サーバー側のすべての Services.IClearableCache (テーブル/ビュー/特権)をクリアします メタデータ、ユーザーごとの権限、環境ファイル設定)をまとめて再構築します。 局所化された文字列は原子的にキャッシュされます — 読者は以前のものを引き続き見ることができます 新しい状態が完全に埋め尽くされるまでデータを読み込みます。レイジーキャッシュのリフィルは 次に彼らが必要なリクエストです。 この呼び出しの背後にあるHTTPエンドポイントは、 [Authorize(Roles = 'SystemAdmin')]。サーバー側の直接発信者は 自分の境界線で適切にゲートを設置してください。
名称: ClearCacheAsync
パラメータ: string name
種類: Task<CacheClearResult>
概要: 名前のあるキャッシュを1つクリアします。登録されていない場合は返品 null キャッシュマッチは name (大文字に区別されません);失敗は以下の通りです。 投げるのではなく、結果に包まれている。同じ認証ゲート IPowerPortalsProService.ClearAllCachesAsync
名称: CreateFileArchiveAsync
パラメータ: CreateFileArchiveRequest request
種類: Task<FileArchiveResult>
概要: アーカイブを構築する(現在はzipファイル、将来のフォーマットは CreateFileArchiveRequest.Format 列挙)を含むすべてのレコードの 指定されたテーブル/カラムペアのファイルペイロード。同じレコード単位を使用しています 許可チェーンを String,System.Boolean) として — 不正/欠落 アーカイブから行が静かに削除されます。重複するファイル名は以下の通りです。 接尾辞 「(2)」(3)」で区別されています...それで、アーカイブ エントリーを上書きしないでください。
名称: CreateRecordAsync
パラメータ: TableRecord record
種類: Task<CreateResponse>
概要: Dataverseで新しいレコードを作成します。
名称: DeleteRecordAsync
パラメータ: string tableLogicalName
Guid id
種類: Task<DeleteResponse>
概要: Dataverseからテーブル名とレコードIDでレコードを削除します。
名称: DisassociateAsync
パラメータ: TableRecordReference record
string relationshipName
IEnumerable<TableRecordReference> relatedRecords
EntityRole? role
種類: Task<DisassociateResponse>
概要: 多対多の関係を通じて、レコードと1つ以上の関連レコードとの関連付けを除去します。
名称: DownloadLocalizationSourceAsync
パラメータ: string sourceId
string culture
種類: Task<LocalizationDownload>
概要: 鍵のダウンロードは、最も多くの文化に貢献した一つのソースです 最近のウォームアップで、同じ入れ子オブジェクト形状のJSONのコンシューマーとして app.{culture}.json ファイルが使います。翻訳の引き継ぎを意図しています — ファイルを翻訳者に渡し、翻訳版を取り戻し、それを投函します 元のソースを上書きするローカライゼーションフォルダです その鍵のために用意された。
名称: DownloadMergedLocalizationsAsync
パラメータ: string culture
種類: Task<LocalizationDownload>
概要: ある文化の統合済みローカリゼーションキーをダウンロードします — ポストマージ キャッシュに保存されているすべての鍵に対して勝利値が、どの鍵であっても 元々はソースが提供していました。これを完全なスナップショットに使ってください 参考資料(ポータルがその文化で実際に機能するすべての情報) 上記の各情報源視点ではなく、
名称: ExecuteAsync
パラメータ: OrganizationRequest request
種類: Task<OrganizationResponse>
概要: Dataverseに対して単一の組織リクエストを実行します。
名称: ExecuteMultipleAsync
パラメータ: IEnumerable<OrganizationRequest> requests
bool returnResponses
種類: Task<List<OrganizationResponse>>
概要: 単一のデータベーストランザクションで複数の組織リクエストを実行します。 リクエストが失敗した場合、バッチ内のすべての変更がロールバックされます。
名称: GetCacheNamesAsync
種類: Task<IReadOnlyList<string>>
概要: 適切なサーバー側の Services.IClearableCacheの名前を返します キャッシュごとにクリアボタンをレンダリングしたい管理者UI向けに。同じ認証ゲート HTTPエンドポイントに適用される IPowerPortalsProService.ClearAllCachesAsync
名称: GetFileInfoAsync
パラメータ: string tableName
Guid recordId
string columnName
bool includeData
種類: Task<FileInfo>
概要: Dataverseのファイルや画像列からファイル情報およびオプションでバイナリコンテンツを取得します。
名称: GetFileInfosAsync
パラメータ: string tableName
IEnumerable<Guid> recordIds
string columnName
bool includeData
種類: Task<IEnumerable<FileInfo>>
概要: 同じテーブル/カラムの多くのレコードのファイル情報をバッチで取得する 往復で。内部では、レコードごとのフィートが並列に並列でフェッチアウトされ、 結合されたリストを返します。レコードごとの権限ハンドラーチェーンは、の場合と同じように動作します シングルレコードコール;検索に失敗した場合は応答から除外されます。 バッチ全体が失敗した。 FileGridの「すべてダウンロード」/「選択済みダウンロード」で使われ、クライアントが N個のHTTPリクエストを発生させずにzipを送ること。
名称: GetLocalizationOverviewAsync
種類: Task<LocalizationOverview>
概要: 文字列ローカリゼーションパイプラインの管理者向けスナップショットを返します: ウォームアップを駆動する静的設定とソースごとの負荷記録 直近のウォームアップによって生まれた。ロー カリゼーション管理者を支持しています component in PowerPortalsPro.Web.Blazor.FluentUI. HTTPエンドポイントは [Authorize(Roles = 'SystemAdmin')]によってゲートされます。
名称: GetMergedLocalizationEntriesAsync
パラメータ: string culture
種類: Task<IReadOnlyList<MergedLocalizationEntry>>
概要: 1つの文化の統合されたローカライゼーションキーを構造化されたリストとして返します — キャッシュが提供するキー、マージ後の勝利値、そしてどのソースが提供されるか その価値。データと同じですが、キーごとに表示されます DownloadMergedLocalizationsAsync(System.String) 管理者が作成元(ファイル/ウェブリソース/Dataverseメタデータ)を注釈付けし、 グリッド状の出所を調べてください。エントリーはキーごとにソートされています。
名称: GetOrganizationSettingsAsync
種類: Task<OrganizationSettings>
概要: Dataverseから得た組織全体の設定を取得 組織 記録: DefaultCurrency — 組織の基本通貨で、作成モードで使用されます 編集者(MoneyEdit)が新しいレコードに正しいシンボルを表示します。 BlockedFileExtensions + MaxUploadFileSizeInBytes — ファイルアップロード 制約はクライアントが往復前に無効なファイルを拒否するためにミラーします。 レガシーの GetEnvironmentFileSettingsAsync — 2つのファイルフィールドを置き換えます この複合的な回答で暴露されています。
名称: GetTablePermissionsForCurrentUserAsync
パラメータ: string tableLogicalName
種類: Task<TableSecurityPermission>
概要: 現在のユーザーのテーブルレベルの複合マスク Models.TableSecurityPermission 返します tableLogicalName — Read / Create / Write / のビットごとの和集合 Delete / Append / AppendTo は、 ITablePermissionHandler が許可する登録済みフラグです そのテーブルのユーザーのためです。 サーバー側ではキャッシュされた ITablePermissionCacheに委任されます。WASMクライアント 同じキャッシュをサーバー上で呼び出すHTTPエンドポイントに当たる。ミラー table-cache lookup Blazor's NewRecordGridButton / DeleteRecordGridButton すでにDIで直接行っており、GridDataResponseが持つ新しい値は次のようになります。 TablePermissions — ここではグリッドパス外の消費者(カスタム)を公開しています ツールバー、条件付きUI、「ユーザーがXを作成できますか?」ゲートなど、ページ上のどこでも)などで、 グリッドクエリを発射せずに同じ答えに到達できます。
名称: GetTranslationAvailabilityAsync
種類: Task<TranslationAvailability>
概要: ローカライズ・翻訳機能が現在の環境で使用可能かどうかを返します: Azure翻訳サービスが設定されているか、翻訳が管理されているか ソリューションがインストールされ、候補言語(ポータルがサポートする文化)が対象となります Azure翻訳性で注釈付き)。 LocalizationTranslator UIの決定を支持します 翻訳パネルやインストールプロンプトを表示する、あるいは何も表示しない。
名称: RetrieveRecordAsync
パラメータ: string tableLogicalName
Guid id
IEnumerable<string> columns
種類: Task<TableRecord>
概要: Dataverseからテーブル名とレコードIDで単一のレコードを取得します。
名称: RetrieveRecordsAsync
パラメータ: string fetchXml
種類: Task<RetrieveRecordsResponse>
概要: FetchXMLクエリを用いてDataverseから複数のレコードを取得します。 フィルタリング、ソート、ページング、リンクエンティティ、集約クエリをサポートしています。
名称: RetrieveTableMetadataAsync
パラメータ: string tableLogicalName
種類: Task<TableMetadata>
概要: Dataverseからテーブルのメタデータを取得し、列定義、関係、表示設定などを含みます。
名称: RetrieveViewMetadataAsync
パラメータ: Guid viewId
種類: Task<ViewMetadata>
概要: Dataverseからビューメタデータを取得し、ビューのFetchXMLクエリ、列、表示設定などが含まれます。
名称: RetrieveViewsForTableAsync
パラメータ: string tableLogicalName
種類: Task<IEnumerable<ViewMetadata>>
概要: テーブルのすべてのビューメタデータレコードを取得します。必要なグリッドで使われる 利用可能なビュー(ビューピッカー、デフォルトビュー解像度など)を列挙します。 サーバー側の実装は、進行中の IViewMetadataCacheから読み込みます。 WASMクライアントはHTTPエンドポイントに到達し、そのエンドポイントはサーバー上で同じ処理を行います。
名称: TranslateLocalizationFileAsync
パラメータ: TranslationRequest request
種類: Task<TranslationResult>
概要: アップロードされたローカライゼーションファイルをAzure経由で1つ以上のターゲット言語に機械翻訳します TranslatorはDataverse翻訳メモリを再利用し、文字列数を報告します。 新たに翻訳されたものと再利用されたもの。ターゲット言語ごとに1つのファイルとすべてのzipファイルを返します。
名称: UpdateRecordAsync
パラメータ: TableRecord record
種類: Task<UpdateResponse>
概要: Dataverseの既存のレコードを更新します。レコード上に設定されたプロパティのみがDataverseに送信されます。