ICurrencyCache
Le ICurrencyCache service fournit un accès en cache à l’ensemble de transactioncurrency l’organisation ainsi qu’à la monnaie de base de l’organisation. Les monnaies sont chargées en instantané unique dès le premier accès et rafraîchies sur une fenêtre glissante grossière — les administrateurs ajoutent rarement de nouvelles monnaies, donc le cache échange une petite empreinte mémoire contre l’élimination des recherches par enregistrement sur le chemin de récupération rapide des enregistrements.
Population automatique sur les registres
En général, tu n’as pas besoin de toucher ICurrencyCache directement. Chaque fois que la récupération d’un enregistrement inclut au moins une colonne d’argent, le serveur projette transactioncurrencyid automatiquement et attache la monnaie résolue à la propriété de Currency l’enregistrement. MoneyEdit Elle consomme cela pour afficher le symbole correct dans son ornement de départ.
// « record.currency » est automatiquement rempli sur chaque enregistrement tapé
// le client revient, provenant du cache de monnaie du serveur.
const { ppp } = usePowerPortalsPro();
const account = await ppp.retrieveRecordAsync('account', id);
const symbol = account.currency?.symbol; // par exemple « $ »
const isoCode = account.currency?.isoCode; // par exemple « USD »
const name = account.currency?.name; // par exemple « dollar américain »// Pour tout enregistrement récupéré via IPowerPortalsProService :
var account = await _powerPortalsProService.RetrieveRecordAsync("account", id);
var symbol = account.Currency?.Symbol; // par exemple « $ »
var isoCode = account.Currency?.IsoCode; // par exemple « USD »
var name = account.Currency?.Name; // par exemple « dollar américain »Accès direct
Pour un code côté serveur personnalisé qui doit rechercher une monnaie par identifiant, énumérer chaque monnaie dans l’organisation (un sélectionneur de devise, un affichage du taux de change), ou résoudre la monnaie de base, injecter ICurrencyCache:
[Inject]
private ICurrencyCache _currencyCache { get; set; } = null!;
protected override async Task OnInitializedAsync()
{
// Recherche par id (par exemple depuis le transactioncurrencyid d’un enregistrement)
var currency = await _currencyCache.GetAsync(transactionCurrencyId);
// Énumérer chaque devise configurée dans l’organisation
var allCurrencies = await _currencyCache.GetAllAsync();
// Résoudre la monnaie de base de l’organisation (organization.basecurrencyid)
var baseCurrency = await _currencyCache.GetBaseCurrencyAsync();
}
Conseil
ICurrencyCacheest uniquement côté serveur. Le code côté navigateur qui nécessite la monnaie de la ligne s’afficheTableRecord.Currencydirectement (Blazor) /record.currency(React) — rempli automatiquement lorsque l’enregistrement contient une colonne d’argent.
ICurrencyCache Interface
Méthodes
Nom | Paramètres | Type | Description |
|---|---|---|---|
Get | Guid id | Currency? | Retourne la monnaie avec |
GetAll | IReadOnlyDictionary<Guid, Currency> | Retourne toutes les devises configurées dans l’organisation, indexées par id. Chargé en simple Instantané — les appelants qui itèrent le dictionnaire ne verront pas de mises à jour partielles si le Le cache se rafraîchit en plein milieu de l’énumération. | |
GetAllAsync | CancellationToken token | Task<IReadOnlyDictionary<Guid, Currency>> | Retourne de manière asynchrone toutes les devises configurées dans l’organisation, indexées par id. |
GetAsync | Guid id CancellationToken token | Task<Currency> | Retourne de manière asynchrone la monnaie avec le |
GetBaseCurrency | Currency? | La monnaie de base de l’organisation, résolue depuis | |
GetBaseCurrencyAsync | CancellationToken token | Task<Currency> | De manière asynchrone, la monnaie de base de l’organisation. |
GetGetAllGetAllAsyncGetAsyncCancellationToken token
GetBaseCurrencyGetBaseCurrencyAsyncCurrency Classe
Propriétés
Nom | Type | Par défaut | Description |
|---|---|---|---|
ExchangeRate | decimal | 1 | Taux de change par rapport à la devise de base de l’organisation, à partir du |
IsoCode | string | Le code ISO 4217 à trois lettres (par exemple | |
Name | string | Le nom de la monnaie localisée vient | |
Precision | int | 2 | Des décimales à afficher, provenant de MoneyMetadata.Precision, qui correspond à la précision au niveau de la colonne ; C’est le défaut de niveau monétaire. |
Symbol | string | Le symbole d’affichage Dataverse stocke dans |
ExchangeRateIsoCodeNamePrecisionMoneyMetadata.Precision, qui correspond à la précision au niveau de la colonne ; C’est le défaut de niveau monétaire.Symbol