ICurrencyCache
ICurrencyCacheサービスは組織のtransactioncurrencyセットと組織の基本通貨へのキャッシュアクセスを提供します。通貨は初回アクセス時に単一のスナップショットとして読み込まれ、粗いスライドウィンドウで更新されます。管理者はめったに新しい通貨を追加しないため、キャッシュはホットレコード取得パス上のレコードごとの通貨検索を省くためにわずかなメモリ容量を節約します。
記録上の自動人口
通常、直接触れる必要 ICurrencyCache ありません。レコードのフェッチに少なくとも1つのマネーカラムが含まれている場合、サーバーは自動でプロジェクト transactioncurrencyid し、解決された通貨をレコードの Currency プロパティに付与します。 MoneyEdit その開始装飾に正しいシンボルを生成するためにその消費を行います。
// 入力されたすべてのレコードに自動的に「record.currency」が入力されます
// クライアントの返金は、サーバーの通貨キャッシュからソースされています。
const { ppp } = usePowerPortalsPro();
const account = await ppp.retrieveRecordAsync('account', id);
const symbol = account.currency?.symbol; // 例:「$」
const isoCode = account.currency?.isoCode; // 例:「USD」
const name = account.currency?.name; // 例:「米ドル」// IPowerPortalsProServiceを通じて取得された記録に対して:
var account = await _powerPortalsProService.RetrieveRecordAsync("account", id);
var symbol = account.Currency?.Symbol; // 例:「$」
var isoCode = account.Currency?.IsoCode; // 例:「USD」
var name = account.Currency?.Name; // 例:「米ドル」直接アクセス
idで通貨を調べたり、組織内のすべての通貨を列挙したり(通貨選択機能、為替レート表示)、またはベース通貨を解決する必要があるカスタムサーバーサイドコードの場合、 ICurrencyCacheを注入します:
[Inject]
private ICurrencyCache _currencyCache { get; set; } = null!;
protected override async Task OnInitializedAsync()
{
// IDによる検索(例:レコードのtransactioncurrencyidから)
var currency = await _currencyCache.GetAsync(transactionCurrencyId);
// 組織内で設定されたすべての通貨を列挙します
var allCurrencies = await _currencyCache.GetAllAsync();
// 組織の基本通貨(organization.basecurrencyid)を解決します。
var baseCurrency = await _currencyCache.GetBaseCurrencyAsync();
}
ヒント
ICurrencyCacheサーバーサイドのみです。行の通貨が必要なブラウザ側のコードは、TableRecord.Currency(Blazor)/record.currency(React)を直接読み込み、レコードにマネーカラムが含まれると自動的に入力されます。
ICurrencyCache Interface
方法
名称 | パラメータ | 種類 | 概要 |
|---|---|---|---|
Get | Guid id | Currency? | 指定された |
GetAll | IReadOnlyDictionary<Guid, Currency> | 組織内で設定されたすべての通貨を、IDでキー化して返します。単体としてロード スナップショット — 辞書を反復する呼び出し者は、 キャッシュは列挙中の更新を行います。 | |
GetAllAsync | CancellationToken token | Task<IReadOnlyDictionary<Guid, Currency>> | 非同期に組織内で設定されたすべての通貨をidでキーで返します。 |
GetAsync | Guid id CancellationToken token | Task<Currency> | 非同期に指定された |
GetBaseCurrency | Currency? | 組織の基本通貨は | |
GetBaseCurrencyAsync | CancellationToken token | Task<Currency> | 組織の基本通貨を非同期で返還します。 |
名称:
Getパラメータ:
Guid id
種類:
Currency?
概要:
指定されたトランザクション通貨 IDで通貨を返す、または Dataverseに一致するレコードが存在しない場合にnullとなります。
名称:
GetAll種類:
IReadOnlyDictionary<Guid, Currency>
概要:
組織内で設定されたすべての通貨を、IDでキー化して返します。単体としてロード スナップショット — 辞書を反復する呼び出し者は、 キャッシュは列挙中の更新を行います。
名称:
GetAllAsyncパラメータ:
CancellationToken token
種類:
Task<IReadOnlyDictionary<Guid, Currency>>
概要:
非同期に組織内で設定されたすべての通貨をidでキーで返します。
名称:
GetAsyncパラメータ:
Guid id
CancellationToken token
CancellationToken token
種類:
Task<Currency>
概要:
非同期に指定された transactioncurrencyid で通貨を返します。 または一致するレコードが存在しない場合は null となります。
名称:
GetBaseCurrency種類:
Currency?
概要:
組織の基本通貨は organization.basecurrencyid から解決されました。 transactioncurrencyid がnullのレコードのフォールバックとして使用される — マルチ通貨に全く関与していないテーブルに典型的なことです。返還 組織の記録が解決できない場合(それも同様に)は null となります より深いDataverse接続性の問題を示しています)。
名称:
GetBaseCurrencyAsyncパラメータ:
CancellationToken token
種類:
Task<Currency>
概要:
組織の基本通貨を非同期で返還します。
Currency クラス
性質
名称 | 種類 | デフォルト | 概要 |
|---|---|---|---|
ExchangeRate | decimal | 1 | 組織の基準通貨に対する為替レートからの為 |
IsoCode | string | ISO 4217の3文字コード(例: | |
Name | string | localized | |
Precision | int | 2 | 小数点で表示する場所は、 MoneyMetadata.Precisionとは独立して、 これはカラムレベルの精度です。これが通貨レベルのデフォルトです。 |
Symbol | string | Dataverseの表示シンボルは |
名称:
ExchangeRate種類:
decimal
デフォルト:
1
概要:
組織の基準通貨に対する為替レートからの為 替 レートです。 1.0 基礎通貨そのものに対してです。主に診断や高度な表示のために表面化されています シナリオ — エディターはローカルで変換を行いません。
名称:
IsoCode種類:
string
概要:
ISO 4217の3文字コード(例:USD 、EUR、 JPY )です。読み上げてみろ isocurrencycode 。ARIAラベルや文化認識型フォーマットのバックアップに便利です。
名称:
Name種類:
string
概要:
localized currencyname (例: US Dollar )から来た通貨名。使用中 ピッカー、ツールチップ、アクセシビリティテキストで。
名称:
Precision種類:
int
デフォルト:
2
概要:
小数点で表示する場所は、 currencyprecision から提供。2に戻る Dataverseがフィールドをnullから離れるとき。
MoneyMetadata.Precisionとは独立して、 これはカラムレベルの精度です。これが通貨レベルのデフォルトです。名称:
Symbol種類:
string
概要:
Dataverseの表示シンボルは currencysymbol で格納されます — 最大5文字まで、 通常は単一のUnicodeグリフ($ 、 € 、 £ 、 ¥ )ですが、 時折、単一のグリフ形態を持たない通貨用の短い文字列が使われることもあります (フランス 、 kr 、 R$ )または組織固有のカスタム値を。逐語的に表示 エディタ内では — Unicode + font フォールバックがすべてのグリフをカバーします。SVGのサイドカーもありません。
