IPowerPortalsProService

L’interface IPowerPortalsProService fournit des méthodes pour effectuer des opérations CRUD, exécuter des requêtes, gérer les relations et récupérer des métadonnées depuis Dataverse. C’est le principal service d’accès aux données côté serveur dans PowerPortalsPro.

Note

Dans la plupart des cas, vous n’avez pas besoin d’appeler IPowerPortalsProService directement. Les RecordContextcomposants , MainContext, et grid gèrent automatiquement les opérations de données. Utilisez ce service pour une logique personnalisée qui sort du flux de travail standard des composants.

Implémentations serveur et client

IPowerPortalsProService livré avec deux implémentations enregistrées automatiquement par le framework — votre code composant est identique contre les deux, et l’exécution injecte celle correspondant au contexte de rendu actif :

  • Implémentation serveur (PowerPortalsPro.Web.Server, enregistrée par AddPowerPortalsProWebServer) — s’exécute en cours, communique directement avec Dataverse via IOrganizationService, et applique vos ITablePermissionProvider enregistrements avant toute lecture ou écriture. Sélectionné lorsque la page est affichée sous InteractiveServerRenderMode ou sous SSR statique.
  • Implémentation client (PowerPortalsPro.Web.Client, enregistrée par AddPowerPortalsProWebClient) — s’exécute dans le navigateur via WebAssembly, ne possède aucun SDK Dataverse, et sérialise à la place chaque appel en JSON vers le point de terminaison HTTP côté serveur correspondant (/api/table/{name}, /api/retrieveMultiple, etc.). Les gestionnaires de permissions s’appliquent toujours car la requête se retrouve sur le point d’arrivée du serveur. Consultez la page API client pour le format de câble et les routes appelées par l’implémentation client.

Parce que le contrat est identique, le même composant fonctionne sous n’importe quel mode d’interactivité (Serveur, WebAssembly ou Auto). Le code qui appelle _powerPortalsProService.RetrieveRecordAsync(...) une page rendue par serveur effectue un appel Dataverse en cours ; la même ligne dans une page rendue par WASM émet une requête HTTP — aucun branchement nécessaire.

Injection du Service

Injecter IPowerPortalsProService dans tout composant ou service Blazor via l’injection de constructeur ou de propriété.

React Blazor

Récupérer un dossier

Utilisez RetrieveRecordAsync pour récupérer un seul enregistrement par nom de table et ID. Spécifiez optionnellement quelles colonnes retourner ; si elles sont omises, toutes les colonnes sont retournées.

React Blazor

Requête de plusieurs enregistrements

Utilisez RetrieveRecordsAsync avec une chaîne de requête FetchXML pour récupérer plusieurs enregistrements avec filtrage, tri et support des entités liées.

React Blazor

Création d’un dossier

Utilisez-le CreateRecordAsync pour créer un nouvel enregistrement dans Dataverse. La réponse contient l’ID du nouvel enregistrement créé.

React Blazor

Mise à jour d’un enregistrement

À utiliser UpdateRecordAsync pour mettre à jour un enregistrement existant. Seules les propriétés définies sur le TableRecord sont envoyées à Dataverse.

React Blazor

Suppression d’un enregistrement

À utiliser DeleteRecordAsync pour supprimer un enregistrement par le nom de la table et l’ID.

React Blazor

Records associés

Utilisez AssociateAsync et DisassociateAsync gérez les relations de plusieurs-à-plusieurs entre les enregistrements.

React Blazor

Exécution des requêtes

Utilisez ExecuteAsync pour une seule requête ou ExecuteMultipleAsync pour exécuter plusieurs requêtes dans une même transaction de base de données. Si une requête dans un lot transactionnel échoue, toutes les modifications sont annulées.

React Blazor

Récupération des métadonnées

Utiliser RetrieveTableMetadataAsync et RetrieveViewMetadataAsync récupérer les métadonnées de table et de vue. Pour l’accès en cache, préférez ITableMetadataCache et IViewMetadataCache à la place.

React Blazor

Travailler avec les fichiers

À utiliser GetFileInfoAsync pour récupérer des métadonnées de fichiers ou d’images et, éventuellement, le contenu binaire d’un fichier ou d’une colonne d’image.

React Blazor

Accès direct aux Dataverses

IPowerPortalsProService couvre ce dont un portail a normalement besoin, mais certains travaux côté serveur demandent le SDK Dataverse lui-même — une requête LINQ avec jointures ou agrégés, ExecuteMultipleune action personnalisée, ou tout message que le service ne fait pas en enveloppe. Injecter IOrganizationServiceProvider pour obtenir un ServiceClient et utiliser directement le SDK.

Elle propose deux clients, et la différence est importante :

  • GetOrganizationService() — celui à atteindre par défaut. C’est CallerId l’utilisateur connecté, donc Dataverse applique les privilèges propres de cet utilisateur et la trace d’audit enregistre qui a fait quoi.
  • GetOrganizationServiceAsApp() (une extension dans PowerPortalsPro.Xrm.Extensions) — efface CallerId, donc les appels s’exécutent comme l’utilisateur de l’application configuré dans ConnectionOptions. Nécessaire lorsque l’opération lit quelque chose pour lequel l’utilisateur connecté n’a aucun privilège, comme un utilisateur soutenu par contact devant lire un systemuser enregistrement.

Le contenu retourné ServiceClient est un clone et est jetable — emballez-le using comme indiqué plus haut plutôt que de le conserver pendant toute la durée de vie d’un composant.

Attention

Aucun des deux clients n’exécute le code de ITablePermissionProvider votre portail — cela s’applique aux appels qui passent par IPowerPortalsProService. GetOrganizationServiceAsApp() en particulier contourne aussi la sécurité de Dataverse lui-même, donc une requête écrite là peut retourner n’importe quoi dans l’environnement. Lorsque vous l’utilisez sur un chemin accessible par un visiteur, filtrez les données dans la requête elle-même plutôt qu’après coup.

Note

C’est uniquement côté serveur — il faut la connexion Dataverse, donc elle est disponible dans le projet serveur (et dans les composants Blazor Server), mais pas dans un client WebAssembly ni dans React SPA. Ces éléments atteignent Dataverse via l’API du portail à la place.

IPowerPortalsProService Interface

Méthodes

Nom
Paramètres
Type
Description
AssociateAsyncTableRecordReference record
string relationshipName
IEnumerable<TableRecordReference> relatedRecords
EntityRole? role
CancellationToken cancellationToken
Task<AssociateResponse>
Associe un dossier à un ou plusieurs documents apparentés via une relation de plusieurs à plusieurs.
ClearAllCachesAsyncCancellationToken cancellationToken
Task<IReadOnlyList<CacheClearResult>>
Efface chaque côté Services.IClearableCache serveur (table / vue / privilège métadonnées, privilèges par utilisateur, paramètres de fichiers d’environnement) et reconstruit le Localed-Strings en cache atomiquement — les lecteurs continuent de voir les précédents chargé jusqu’à ce que le nouvel état soit entièrement rempli. Rechargement des caches paresseux sur le Prochaine demande qui en a besoin. Le point de terminaison HTTP derrière cet appel est verrouillé par [AuthorizeSystemAdmin]. Les appelants directs côté serveur devraient Porte approprié à leur propre limite.
ClearCacheAsyncstring name
CancellationToken cancellationToken
Task<CacheClearResult>
Efface un cache nommé. Revient null quand aucun enregistrement n’est enregistré les correspondances name de cache (insensibles aux majuscules) ; les échecs sont Enveloppé dans le résultat plutôt que jeté. Même porte d’authentification que Threading.CancellationToken).
CreateFileArchiveAsyncCreateFileArchiveRequest request
CancellationToken cancellationToken
Task<FileArchiveResult>
Construit une archive (actuellement en zip ; les formats futurs sont en cours derrière le CreateFileArchiveRequest.Format enum) contenant chaque enregistrement Charge utile pour la paire table/colonne nommée. Utilise la même charge par enregistrement Chaîne de permissions en tant Threading.CancellationToken) que — non autorisée / manquante les lignes sont silencieusement supprimées de l’archive. Les noms de fichiers en double sont désambiguïsé par le suffixe « (2) »,« (3) », ... ainsi l’archive Ne remplace jamais les entrées.
CreateRecordAsyncTableRecord record
CancellationToken cancellationToken
Task<CreateResponse>
Crée un nouvel enregistrement dans Dataverse.
DeleteRecordAsyncstring tableLogicalName
Guid id
CancellationToken cancellationToken
Task<DeleteResponse>
Supprime un enregistrement de Dataverse par le nom de la table et l’identifiant de l’enregistrement.
DisassociateAsyncTableRecordReference record
string relationshipName
IEnumerable<TableRecordReference> relatedRecords
EntityRole? role
CancellationToken cancellationToken
Task<DisassociateResponse>
Supprime une association entre un enregistrement et un ou plusieurs documents liés via une relation plusieurs-à-plusieurs.
DownloadLocalizationSourceAsyncstring sourceId
string culture
CancellationToken cancellationToken
Task<LocalizationDownload>
Téléchargements des clés qu’une source a contribuées à une culture durant le plus récent échauffement, comme JSON dans le même consommateur en forme d’objet imbriqué app.{culture}.json utilisent les fichiers. Destiné à la transmission de traduction — Donne le fichier à un traducteur, récupère une version traduite, dépose-le un dossier de localisation où il supprime la source originale fourni pour ces clés.
DownloadMergedLocalizationsAsyncstring culture
CancellationToken cancellationToken
Task<LocalizationDownload>
Télécharge les clés de localisation fusionnées pour une culture — la post-fusion valeur gagnante pour chaque clé stockée par le cache, quelle qu’elle soit Source l’a fourni à l’origine. Utilisez cela pour un instantané complet référence (tout ce que le portail servira réellement à cette culture) plutôt que la vision par source ci-dessus.
ExecuteAsyncOrganizationRequest request
CancellationToken cancellationToken
Task<OrganizationResponse>
Exécute une seule requête d’organisation contre Dataverse.
ExecuteMultipleAsyncIEnumerable<OrganizationRequest> requests
bool returnResponses
CancellationToken cancellationToken
Task<List<OrganizationResponse>>
Exécute plusieurs requêtes d’organisation dans une seule transaction de base de données. Si une requête échoue, toutes les modifications du lot sont annulées.
GetCacheNamesAsyncCancellationToken cancellationToken
Task<IReadOnlyList<string>>
Retourne les noms de chaque côté Services.IClearableCacheserveur , approprié pour une interface d’administration qui veut afficher les boutons de nettoyage par cache. Même porte d’authentification comme Threading.CancellationToken) s’applique au point de terminaison HTTP.
GetFileInfoAsyncstring tableName
Guid recordId
string columnName
bool includeData
CancellationToken cancellationToken
Task<FileInfo>
Récupère les informations du fichier et, éventuellement, le contenu binaire à partir d’une colonne de fichier ou d’image dans Dataverse.
GetFileInfosAsyncstring tableName
IEnumerable<Guid> recordIds
string columnName
bool includeData
CancellationToken cancellationToken
Task<IEnumerable<FileInfo>>
Récupération par lots d’informations de fichiers pour de nombreux enregistrements de la même table / colonne En un seul aller-retour. En interne, les récupérations par disque sont en parallèle et Retourne la liste combinée. La même chaîne de gestionnaire d’autorisations par enregistrement s’exécute comme pour l’appel à un seul disque ; Les recherches ratées sont supprimées de la réponse plutôt que Échouer à tout le lot. Utilisé par « Download All » / « Download Select » de FileGrid afin que le client puisse créer un zip sans lancer N requêtes HTTP.
GetLocalizationOverviewAsyncCancellationToken cancellationToken
Task<LocalizationOverview>
Retourne un instantané destiné à l’administrateur du pipeline de localisation de chaînes : le Configuration statique qui alimentait le réchauffement ainsi que les enregistrements de charge par source produit par le dernier échauffement. Soutient le LocalizationAdmin dans PowerPortalsPro.Web.Blazor.FluentUI. Le point de terminaison HTTP est verrouillé par [AuthorizeSystemAdmin].
GetMergedLocalizationEntriesAsyncstring culture
CancellationToken cancellationToken
Task<IReadOnlyList<MergedLocalizationEntry>>
Retourne les clés de localisation fusionnées d’une culture sous forme de liste structurée — chaque Clé que le cache servira, sa valeur gagnante après la fusion, et la source fournie Cette valeur. Mêmes données que Threading.CancellationToken) mais par clé annoté avec son origine (fichier / ressource web / métadonnées Dataverse) afin qu’un administrateur puisse Inspectez la provenance dans une grille. Les entrées sont triées par clé.
GetOrganizationSettingsAsyncCancellationToken cancellationToken
Task<OrganizationSettings>
Récupère les paramètres organisationnels provenant du Dataverse Bilan de l’organisation : DefaultCurrency — la monnaie de base de l’organisation, utilisée par le mode création des éditeurs (MoneyEdit) pour afficher le bon symbole sur les disques tout neufs. BlockedFileExtensions + MaxUploadFileSizeInBytes — envoi de fichier Les contraintes que les clients miroirent pour rejeter les fichiers invalides avant le aller-retour. Remplace l’ancien GetEnvironmentFileSettingsAsync — les deux champs de fichier sont maintenant exposés à cette réponse combinée.
GetTablePermissionsForCurrentUserAsyncstring tableLogicalName
CancellationToken cancellationToken
Task<TableSecurityPermission>
Retourne le masque combiné au niveau Models.TableSecurityPermission de la table de l’utilisateur actuel pour tableLogicalName — l’union bit par bit de Lire / Créer / Écrire / Suppression / Ajout / Ajout / Ajout des indicateurs permettant à tout ITablePermissionProvider enregistré autorisé pour cet utilisateur sur cette table. côté serveur, cela délègue à la cache ITablePermissionCache mise en cache ; le client WASM atteint un point de terminaison HTTP qui appelle le même cache sur le serveur. Imite le Recherche de cache-table Blazor’s NewRecordGridButton / DeleteRecordGridButton le fait déjà directement via DI, et la nouvelle valeur que porte le GridDataResponse est TablePermissions — exposé ici pour que les consommateurs hors du chemin de la grille (personnalisés barres d’outils, interface conditionnelle, portes « L’utilisateur peut-il créer X ? » n’importe où sur la page) Obtenez la même réponse sans lancer une requête en grille.
GetTablePermissionWebRolesAsyncGuid tablePermissionId
CancellationToken cancellationToken
Task<IReadOnlyList<Guid>>
Renvoie les identifiants des rôles web Power Pages auxquels une permission de table s’applique, sous enhanced Autorisation. Lisez à partir du propre enregistrement de la permission, car c’est là que Power Pages les conserve : le mspp_entitypermission relation de la table virtuelle avec mspp_webrole est vide même lorsque les rôles sont liés. S’exécute en tant qu’utilisateur connecté, donc Dataverse applique leurs privilèges.
GetTranslationAvailabilityAsyncCancellationToken cancellationToken
Task<TranslationAvailability>
Indique si la fonction de localisation-traduction est utilisable dans l’environnement actuel : si le service de traduction Azure est configuré, si la traduction a été gérée La solution est installée, et les langues cibles candidates (les cultures prises en charge par le portail annoté avec la tradupabilité Azure). Soutient la décision de l’interface utilisateur de LocalizationTranslator pour montrer le panneau de traduction, une invite d’installation, ou rien.
GetUserTablePermissionsAsyncstring tableLogicalName
CancellationToken cancellationToken
Task<UserTablePermissions>
Les opérations de l’utilisateur actuel sur une table, ainsi que les permissions de colonne, un enregistrement Ils créent des débuts par — quelles colonnes ils peuvent définir lors de la création, par opposition à celles Un dossier TableRecord.ColumnPermissions existant indique qu’ils peuvent changer. Ce dont un formulaire en mode création a besoin pour afficher les colonnes, l’utilisateur ne peut pas le définir en lecture seule.
RetrieveRecordAsyncstring tableLogicalName
Guid id
IEnumerable<string> columns
CancellationToken cancellationToken
Task<TableRecord>
Récupère un seul enregistrement depuis Dataverse par nom de table et identifiant d’enregistrement.
RetrieveRecordsAsyncstring fetchXml
CancellationToken cancellationToken
Task<RetrieveRecordsResponse>
Récupère plusieurs enregistrements depuis Dataverse à l’aide d’une requête FetchXML. Prend en charge le filtrage, le tri, la pagination, les entités liées et les requêtes agrégées.
RetrieveTableHeadersAsyncCancellationToken cancellationToken
Task<IReadOnlyList<TableHeader>>
Récupère les métadonnées au niveau identité — logique, schéma et nom d’affichage plus Quelques drapeaux — pour chaque table de l’environnement. L’équivalent bon marché de Threading.CancellationToken), pour le Cas où un appelant doit lister des tables plutôt que d’en inspecter une. A Le concepteur de requêtes qui remplit un sélecteur « de » devrait autrement récupérer Métadonnées complètes pour chaque table de l’environnement, ce qui coûte des dizaines de secondes ; il s’agit d’un aller-retour unique, servi depuis un cache en cours de traitement après Le premier appel. Retourne chaque table, pas un sous-ensemble filtré par les permissions — la même posture que Threading.CancellationToken), qui sert tout authentifié Appeler la forme de n’importe quelle table. Les appelants qui ont besoin d’une liste plus étroite devraient le faire Filtrer ou TableHeader.IsValidForAdvancedFind appliquer leur Ses propres règles.
RetrieveTableMetadataAsyncstring tableLogicalName
CancellationToken cancellationToken
Task<TableMetadata>
Récupère les métadonnées des tables depuis Dataverse, y compris les définitions de colonnes, les relations et la configuration d’affichage.
RetrieveTableMetadataBatchAsyncIReadOnlyList<TableMetadataRequest> requests
CancellationToken cancellationToken
Task<IReadOnlyList<TableMetadata>>
Retourne les métadonnées de plusieurs tables en un seul appel, chacune resserrée aux colonnes et ses noms de demandes. Pour l’appelant qui veut un peu de chacun des nombreux tableaux. Résolution de l’affichage Les noms derrière les relations d’un tableau constituent le cas motivant : les colonnes de recherche Vivre sur les tables à l’autre bout de chacune, donc il faut y répondre Threading.CancellationToken) signifie un aller-retour par table liée, chacun On retourne une table entière pour lire une étiquette. Le rétrécissement change quelles colonnes reviennent, pas ce que chacune porte : une colonne nommée arrive aussi complètement décrit qu’à partir d’une lecture complète du tableau. Colonnes de l’appelant On peut ne pas lire ici exactement comme ils sont là, donc ce n’est pas une méthode Autour des autorisations de colonnes. Une table que l’environnement ne possède pas — ou dont la requête fait une faute d’orthographe — est absente à partir du résultat plutôt qu’à une erreur ; faire correspondre les résultats par nom de table.
RetrieveViewMetadataAsyncGuid viewId
CancellationToken cancellationToken
Task<ViewMetadata>
Récupère les métadonnées de la vue depuis Dataverse, y compris la requête FetchXML de la vue, les colonnes et la configuration d’affichage.
RetrieveViewsForTableAsyncstring tableLogicalName
CancellationToken cancellationToken
Task<IEnumerable<ViewMetadata>>
Récupère chaque enregistrement de métadonnées de vue pour une table. Utilisé par des grilles qui doivent énumérer les vues disponibles (view-picker, résolution de la vue par défaut, etc.). L’implémentation côté serveur lit depuis IViewMetadataCache en cours ; le client WASM accède à un point de terminaison HTTP qui fait de même sur le serveur.
SetTablePermissionWebRolesAsyncGuid tablePermissionId
IReadOnlyCollection<Guid> webRoleIds
CancellationToken cancellationToken
Task<bool>
Remplace les rôles web Power Pages auxquels s’applique une autorisation de table, sous autorisation améliorée. Écrit dans le propre enregistrement de la permission, ce qui fait que Power Pages resynchronise la sécurité des rôles associés à ces rôles web — de sorte que le changement atteint les privilèges Dataverse, généralement au sein de une minute. Une association via la relation des tables virtuelles ne le ferait pas : elle semble sauvegardée et n’accorde rien. Chaque identifiant ajouté doit être un rôle web du site du portail ; un des Les listes de permissions sont conservées ou supprimées selon la demande, même si ce rôle web a depuis été utilisé supprimé.
TranslateLocalizationFileAsyncTranslationRequest request
CancellationToken cancellationToken
Task<TranslationResult>
Traduit automatiquement un fichier de localisation téléchargé en une ou plusieurs langues cibles via Azure Traducteur, réutilisation de la mémoire de traduction Dataverse et rapport du nombre de chaînes de caractères Traduit fraîchement versus réutilisé. Un fichier par langue cible plus un zip de tout.
UpdateRecordAsyncTableRecord record
CancellationToken cancellationToken
Task<UpdateResponse>
Met à jour un enregistrement existant dans Dataverse. Seules les propriétés définies sur l’enregistrement sont envoyées à Dataverse.
Nom: AssociateAsync
Paramètres: TableRecordReference record
string relationshipName
IEnumerable<TableRecordReference> relatedRecords
EntityRole? role
CancellationToken cancellationToken
Type: Task<AssociateResponse>
Description: Associe un dossier à un ou plusieurs documents apparentés via une relation de plusieurs à plusieurs.
Nom: ClearAllCachesAsync
Paramètres: CancellationToken cancellationToken
Type: Task<IReadOnlyList<CacheClearResult>>
Description: Efface chaque côté Services.IClearableCache serveur (table / vue / privilège métadonnées, privilèges par utilisateur, paramètres de fichiers d’environnement) et reconstruit le Localed-Strings en cache atomiquement — les lecteurs continuent de voir les précédents chargé jusqu’à ce que le nouvel état soit entièrement rempli. Rechargement des caches paresseux sur le Prochaine demande qui en a besoin. Le point de terminaison HTTP derrière cet appel est verrouillé par [AuthorizeSystemAdmin]. Les appelants directs côté serveur devraient Porte approprié à leur propre limite.
Nom: ClearCacheAsync
Paramètres: string name
CancellationToken cancellationToken
Type: Task<CacheClearResult>
Description: Efface un cache nommé. Revient null quand aucun enregistrement n’est enregistré les correspondances name de cache (insensibles aux majuscules) ; les échecs sont Enveloppé dans le résultat plutôt que jeté. Même porte d’authentification que Threading.CancellationToken).
Nom: CreateFileArchiveAsync
Paramètres: CreateFileArchiveRequest request
CancellationToken cancellationToken
Type: Task<FileArchiveResult>
Description: Construit une archive (actuellement en zip ; les formats futurs sont en cours derrière le CreateFileArchiveRequest.Format enum) contenant chaque enregistrement Charge utile pour la paire table/colonne nommée. Utilise la même charge par enregistrement Chaîne de permissions en tant Threading.CancellationToken) que — non autorisée / manquante les lignes sont silencieusement supprimées de l’archive. Les noms de fichiers en double sont désambiguïsé par le suffixe « (2) »,« (3) », ... ainsi l’archive Ne remplace jamais les entrées.
Nom: CreateRecordAsync
Paramètres: TableRecord record
CancellationToken cancellationToken
Type: Task<CreateResponse>
Description: Crée un nouvel enregistrement dans Dataverse.
Nom: DeleteRecordAsync
Paramètres: string tableLogicalName
Guid id
CancellationToken cancellationToken
Type: Task<DeleteResponse>
Description: Supprime un enregistrement de Dataverse par le nom de la table et l’identifiant de l’enregistrement.
Nom: DisassociateAsync
Paramètres: TableRecordReference record
string relationshipName
IEnumerable<TableRecordReference> relatedRecords
EntityRole? role
CancellationToken cancellationToken
Type: Task<DisassociateResponse>
Description: Supprime une association entre un enregistrement et un ou plusieurs documents liés via une relation plusieurs-à-plusieurs.
Nom: DownloadLocalizationSourceAsync
Paramètres: string sourceId
string culture
CancellationToken cancellationToken
Type: Task<LocalizationDownload>
Description: Téléchargements des clés qu’une source a contribuées à une culture durant le plus récent échauffement, comme JSON dans le même consommateur en forme d’objet imbriqué app.{culture}.json utilisent les fichiers. Destiné à la transmission de traduction — Donne le fichier à un traducteur, récupère une version traduite, dépose-le un dossier de localisation où il supprime la source originale fourni pour ces clés.
Nom: DownloadMergedLocalizationsAsync
Paramètres: string culture
CancellationToken cancellationToken
Type: Task<LocalizationDownload>
Description: Télécharge les clés de localisation fusionnées pour une culture — la post-fusion valeur gagnante pour chaque clé stockée par le cache, quelle qu’elle soit Source l’a fourni à l’origine. Utilisez cela pour un instantané complet référence (tout ce que le portail servira réellement à cette culture) plutôt que la vision par source ci-dessus.
Nom: ExecuteAsync
Paramètres: OrganizationRequest request
CancellationToken cancellationToken
Type: Task<OrganizationResponse>
Description: Exécute une seule requête d’organisation contre Dataverse.
Nom: ExecuteMultipleAsync
Paramètres: IEnumerable<OrganizationRequest> requests
bool returnResponses
CancellationToken cancellationToken
Type: Task<List<OrganizationResponse>>
Description: Exécute plusieurs requêtes d’organisation dans une seule transaction de base de données. Si une requête échoue, toutes les modifications du lot sont annulées.
Nom: GetCacheNamesAsync
Paramètres: CancellationToken cancellationToken
Type: Task<IReadOnlyList<string>>
Description: Retourne les noms de chaque côté Services.IClearableCacheserveur , approprié pour une interface d’administration qui veut afficher les boutons de nettoyage par cache. Même porte d’authentification comme Threading.CancellationToken) s’applique au point de terminaison HTTP.
Nom: GetFileInfoAsync
Paramètres: string tableName
Guid recordId
string columnName
bool includeData
CancellationToken cancellationToken
Type: Task<FileInfo>
Description: Récupère les informations du fichier et, éventuellement, le contenu binaire à partir d’une colonne de fichier ou d’image dans Dataverse.
Nom: GetFileInfosAsync
Paramètres: string tableName
IEnumerable<Guid> recordIds
string columnName
bool includeData
CancellationToken cancellationToken
Type: Task<IEnumerable<FileInfo>>
Description: Récupération par lots d’informations de fichiers pour de nombreux enregistrements de la même table / colonne En un seul aller-retour. En interne, les récupérations par disque sont en parallèle et Retourne la liste combinée. La même chaîne de gestionnaire d’autorisations par enregistrement s’exécute comme pour l’appel à un seul disque ; Les recherches ratées sont supprimées de la réponse plutôt que Échouer à tout le lot. Utilisé par « Download All » / « Download Select » de FileGrid afin que le client puisse créer un zip sans lancer N requêtes HTTP.
Nom: GetLocalizationOverviewAsync
Paramètres: CancellationToken cancellationToken
Type: Task<LocalizationOverview>
Description: Retourne un instantané destiné à l’administrateur du pipeline de localisation de chaînes : le Configuration statique qui alimentait le réchauffement ainsi que les enregistrements de charge par source produit par le dernier échauffement. Soutient le LocalizationAdmin dans PowerPortalsPro.Web.Blazor.FluentUI. Le point de terminaison HTTP est verrouillé par [AuthorizeSystemAdmin].
Nom: GetMergedLocalizationEntriesAsync
Paramètres: string culture
CancellationToken cancellationToken
Type: Task<IReadOnlyList<MergedLocalizationEntry>>
Description: Retourne les clés de localisation fusionnées d’une culture sous forme de liste structurée — chaque Clé que le cache servira, sa valeur gagnante après la fusion, et la source fournie Cette valeur. Mêmes données que Threading.CancellationToken) mais par clé annoté avec son origine (fichier / ressource web / métadonnées Dataverse) afin qu’un administrateur puisse Inspectez la provenance dans une grille. Les entrées sont triées par clé.
Nom: GetOrganizationSettingsAsync
Paramètres: CancellationToken cancellationToken
Type: Task<OrganizationSettings>
Description: Récupère les paramètres organisationnels provenant du Dataverse Bilan de l’organisation : DefaultCurrency — la monnaie de base de l’organisation, utilisée par le mode création des éditeurs (MoneyEdit) pour afficher le bon symbole sur les disques tout neufs. BlockedFileExtensions + MaxUploadFileSizeInBytes — envoi de fichier Les contraintes que les clients miroirent pour rejeter les fichiers invalides avant le aller-retour. Remplace l’ancien GetEnvironmentFileSettingsAsync — les deux champs de fichier sont maintenant exposés à cette réponse combinée.
Nom: GetTablePermissionsForCurrentUserAsync
Paramètres: string tableLogicalName
CancellationToken cancellationToken
Type: Task<TableSecurityPermission>
Description: Retourne le masque combiné au niveau Models.TableSecurityPermission de la table de l’utilisateur actuel pour tableLogicalName — l’union bit par bit de Lire / Créer / Écrire / Suppression / Ajout / Ajout / Ajout des indicateurs permettant à tout ITablePermissionProvider enregistré autorisé pour cet utilisateur sur cette table. côté serveur, cela délègue à la cache ITablePermissionCache mise en cache ; le client WASM atteint un point de terminaison HTTP qui appelle le même cache sur le serveur. Imite le Recherche de cache-table Blazor’s NewRecordGridButton / DeleteRecordGridButton le fait déjà directement via DI, et la nouvelle valeur que porte le GridDataResponse est TablePermissions — exposé ici pour que les consommateurs hors du chemin de la grille (personnalisés barres d’outils, interface conditionnelle, portes « L’utilisateur peut-il créer X ? » n’importe où sur la page) Obtenez la même réponse sans lancer une requête en grille.
Nom: GetTablePermissionWebRolesAsync
Paramètres: Guid tablePermissionId
CancellationToken cancellationToken
Type: Task<IReadOnlyList<Guid>>
Description: Renvoie les identifiants des rôles web Power Pages auxquels une permission de table s’applique, sous enhanced Autorisation. Lisez à partir du propre enregistrement de la permission, car c’est là que Power Pages les conserve : le mspp_entitypermission relation de la table virtuelle avec mspp_webrole est vide même lorsque les rôles sont liés. S’exécute en tant qu’utilisateur connecté, donc Dataverse applique leurs privilèges.
Nom: GetTranslationAvailabilityAsync
Paramètres: CancellationToken cancellationToken
Type: Task<TranslationAvailability>
Description: Indique si la fonction de localisation-traduction est utilisable dans l’environnement actuel : si le service de traduction Azure est configuré, si la traduction a été gérée La solution est installée, et les langues cibles candidates (les cultures prises en charge par le portail annoté avec la tradupabilité Azure). Soutient la décision de l’interface utilisateur de LocalizationTranslator pour montrer le panneau de traduction, une invite d’installation, ou rien.
Nom: GetUserTablePermissionsAsync
Paramètres: string tableLogicalName
CancellationToken cancellationToken
Type: Task<UserTablePermissions>
Description: Les opérations de l’utilisateur actuel sur une table, ainsi que les permissions de colonne, un enregistrement Ils créent des débuts par — quelles colonnes ils peuvent définir lors de la création, par opposition à celles Un dossier TableRecord.ColumnPermissions existant indique qu’ils peuvent changer. Ce dont un formulaire en mode création a besoin pour afficher les colonnes, l’utilisateur ne peut pas le définir en lecture seule.
Nom: RetrieveRecordAsync
Paramètres: string tableLogicalName
Guid id
IEnumerable<string> columns
CancellationToken cancellationToken
Type: Task<TableRecord>
Description: Récupère un seul enregistrement depuis Dataverse par nom de table et identifiant d’enregistrement.
Nom: RetrieveRecordsAsync
Paramètres: string fetchXml
CancellationToken cancellationToken
Type: Task<RetrieveRecordsResponse>
Description: Récupère plusieurs enregistrements depuis Dataverse à l’aide d’une requête FetchXML. Prend en charge le filtrage, le tri, la pagination, les entités liées et les requêtes agrégées.
Nom: RetrieveTableHeadersAsync
Paramètres: CancellationToken cancellationToken
Type: Task<IReadOnlyList<TableHeader>>
Description: Récupère les métadonnées au niveau identité — logique, schéma et nom d’affichage plus Quelques drapeaux — pour chaque table de l’environnement. L’équivalent bon marché de Threading.CancellationToken), pour le Cas où un appelant doit lister des tables plutôt que d’en inspecter une. A Le concepteur de requêtes qui remplit un sélecteur « de » devrait autrement récupérer Métadonnées complètes pour chaque table de l’environnement, ce qui coûte des dizaines de secondes ; il s’agit d’un aller-retour unique, servi depuis un cache en cours de traitement après Le premier appel. Retourne chaque table, pas un sous-ensemble filtré par les permissions — la même posture que Threading.CancellationToken), qui sert tout authentifié Appeler la forme de n’importe quelle table. Les appelants qui ont besoin d’une liste plus étroite devraient le faire Filtrer ou TableHeader.IsValidForAdvancedFind appliquer leur Ses propres règles.
Nom: RetrieveTableMetadataAsync
Paramètres: string tableLogicalName
CancellationToken cancellationToken
Type: Task<TableMetadata>
Description: Récupère les métadonnées des tables depuis Dataverse, y compris les définitions de colonnes, les relations et la configuration d’affichage.
Nom: RetrieveTableMetadataBatchAsync
Paramètres: IReadOnlyList<TableMetadataRequest> requests
CancellationToken cancellationToken
Type: Task<IReadOnlyList<TableMetadata>>
Description: Retourne les métadonnées de plusieurs tables en un seul appel, chacune resserrée aux colonnes et ses noms de demandes. Pour l’appelant qui veut un peu de chacun des nombreux tableaux. Résolution de l’affichage Les noms derrière les relations d’un tableau constituent le cas motivant : les colonnes de recherche Vivre sur les tables à l’autre bout de chacune, donc il faut y répondre Threading.CancellationToken) signifie un aller-retour par table liée, chacun On retourne une table entière pour lire une étiquette. Le rétrécissement change quelles colonnes reviennent, pas ce que chacune porte : une colonne nommée arrive aussi complètement décrit qu’à partir d’une lecture complète du tableau. Colonnes de l’appelant On peut ne pas lire ici exactement comme ils sont là, donc ce n’est pas une méthode Autour des autorisations de colonnes. Une table que l’environnement ne possède pas — ou dont la requête fait une faute d’orthographe — est absente à partir du résultat plutôt qu’à une erreur ; faire correspondre les résultats par nom de table.
Nom: RetrieveViewMetadataAsync
Paramètres: Guid viewId
CancellationToken cancellationToken
Type: Task<ViewMetadata>
Description: Récupère les métadonnées de la vue depuis Dataverse, y compris la requête FetchXML de la vue, les colonnes et la configuration d’affichage.
Nom: RetrieveViewsForTableAsync
Paramètres: string tableLogicalName
CancellationToken cancellationToken
Type: Task<IEnumerable<ViewMetadata>>
Description: Récupère chaque enregistrement de métadonnées de vue pour une table. Utilisé par des grilles qui doivent énumérer les vues disponibles (view-picker, résolution de la vue par défaut, etc.). L’implémentation côté serveur lit depuis IViewMetadataCache en cours ; le client WASM accède à un point de terminaison HTTP qui fait de même sur le serveur.
Nom: SetTablePermissionWebRolesAsync
Paramètres: Guid tablePermissionId
IReadOnlyCollection<Guid> webRoleIds
CancellationToken cancellationToken
Type: Task<bool>
Description: Remplace les rôles web Power Pages auxquels s’applique une autorisation de table, sous autorisation améliorée. Écrit dans le propre enregistrement de la permission, ce qui fait que Power Pages resynchronise la sécurité des rôles associés à ces rôles web — de sorte que le changement atteint les privilèges Dataverse, généralement au sein de une minute. Une association via la relation des tables virtuelles ne le ferait pas : elle semble sauvegardée et n’accorde rien. Chaque identifiant ajouté doit être un rôle web du site du portail ; un des Les listes de permissions sont conservées ou supprimées selon la demande, même si ce rôle web a depuis été utilisé supprimé.
Nom: TranslateLocalizationFileAsync
Paramètres: TranslationRequest request
CancellationToken cancellationToken
Type: Task<TranslationResult>
Description: Traduit automatiquement un fichier de localisation téléchargé en une ou plusieurs langues cibles via Azure Traducteur, réutilisation de la mémoire de traduction Dataverse et rapport du nombre de chaînes de caractères Traduit fraîchement versus réutilisé. Un fichier par langue cible plus un zip de tout.
Nom: UpdateRecordAsync
Paramètres: TableRecord record
CancellationToken cancellationToken
Type: Task<UpdateResponse>
Description: Met à jour un enregistrement existant dans Dataverse. Seules les propriétés définies sur l’enregistrement sont envoyées à Dataverse.