IPowerPortalsProService

Die Benutzeroberfläche IPowerPortalsProService bietet Methoden zur Durchführung von CRUD-Operationen, zur Ausführung von Abfragen, zur Verwaltung von Beziehungen und zum Abruf von Metadaten aus Dataverse. Es ist der primäre Service für serverseitigen Datenzugriff in PowerPortalsPro.

Anmerkung

In den meisten Fällen müssen Sie nicht direkt anrufenIPowerPortalsProService. Die , MainContext, und Gitterkomponenten RecordContextübernehmen die Datenoperationen automatisch. Nutzen Sie diesen Service für benutzerdefinierte Logik, die außerhalb des Standard-Komponenten-Workflows liegt.

Server- und Client-Implementierungen

IPowerPortalsProService Wird mit zwei Implementierungen ausgeliefert, die automatisch vom Framework registriert werden – Ihr Komponentencode ist gegenüber beiden identisch, und die Laufzeit injiziert jeweils diejenige, die zum aktiven Renderkontext passt:

  • Serverimplementierung (PowerPortalsPro.Web.Server, registriert von AddPowerPortalsProWebServer) — läuft im Prozess, kommuniziert direkt mit Dataverse über IOrganizationService, und wendet Ihre ITablePermissionProvider Registrierungen vor jedem Lesen oder Schreiben an. Ausgewählt, wenn die Seite unter InteractiveServerRenderMode statischem oder statischem SSR rendert.
  • Client-Implementierung (PowerPortalsPro.Web.Client, registriert von AddPowerPortalsProWebClient) — läuft im Browser unter WebAssembly, hat überhaupt kein Dataverse SDK und serialisiert stattdessen jeden Aufruf mit JSON an den entsprechenden serverseitigen HTTP-Endpunkt (/api/table/{name}, /api/retrieveMultiple, usw.). Die Berechtigungshandler gelten weiterhin, weil die Anfrage wieder am Endpunkt des Servers landet. Siehe die Client-API-Seite für das Wire-Format und die von der Client-Implementierung aufgerufenen Routen.

Da der Vertrag identisch ist, arbeitet dieselbe Komponente in jedem Interaktivitätsmodus (Server, WebAssembly oder Auto). Code, der eine servergerenderte Seite aufruft _powerPortalsProService.RetrieveRecordAsync(...) , führt einen inprozessorientierten Dataverse-Aufruf aus; dieselbe Zeile auf einer WASM-gerenderten Seite stellt eine HTTP-Anfrage – kein Verzweiging erforderlich.

Injektion des Dienstes

Injizieren Sie IPowerPortalsProService in jede Blazor-Komponente oder -Dienstleistung über Constructor- oder Property-Injektion.

React Blazor

Abruf eines Datensatzes

Verwenden RetrieveRecordAsync Sie, um einen einzelnen Datensatz anhand von Tabellennamen und ID abzurufen. Geben Sie optional an, welche Spalten zurückgegeben werden sollen; wenn ausgelassen, werden alle Spalten zurückgegeben.

React Blazor

Abfrage mehrerer Datensätze

Verwenden RetrieveRecordsAsync Sie mit einer FetchXML-Abfragezeichenkette, um mehrere Datensätze mit Unterstützung für Filterung, Sortierung und verknüpfte Entitäten abzurufen.

React Blazor

Erstellung eines Datensatzes

Verwenden CreateRecordAsync Sie, um einen neuen Datensatz in Dataverse zu erstellen. Die Antwort enthält die ID des neu erstellten Datensatzes.

React Blazor

Aktualisierung eines Datensatzes

Verwenden Sie UpdateRecordAsync es, um einen bestehenden Datensatz zu aktualisieren. Nur die auf der Domain gesetzten TableRecord Eigenschaften werden an Dataverse gesendet.

React Blazor

Löschen eines Datensatzes

Nutze es, DeleteRecordAsync um einen Datensatz nach Tabellennamen und ID zu löschen.

React Blazor

Assoziierende Aufzeichnungen

Verwenden AssociateAsync Sie und DisassociateAsync verwalten Sie viele-zu-viele Beziehungen zwischen Datensätzen.

React Blazor

Ausführung von Anfragen

Verwenden ExecuteAsync Sie für eine einzelne Anfrage oder ExecuteMultipleAsync um mehrere Anfragen in einer einzigen Datenbanktransaktion auszuführen. Wenn eine Anfrage in einem transaktionalen Batch fehlschlägt, werden alle Änderungen zurückgesetzt.

React Blazor

Abruf von Metadaten

Verwenden RetrieveTableMetadataAsync Sie und RetrieveViewMetadataAsync um Tabellen- und Ansichtsmetadaten abzurufen. Für zwischengespeicherte Zugriffe bevorzugen ITableMetadataCache Sie stattdessen und IViewMetadataCache .

React Blazor

Arbeit mit Dateien

Verwenden GetFileInfoAsync Sie es, um Datei- oder Bildmetadaten und optional den Binärinhalt aus einer Datei- oder Bildspalte abzurufen.

React Blazor

Direkter Dataverse-Zugriff

IPowerPortalsProService deckt das ab, was ein Portal normalerweise benötigt, aber einige serverseitige Arbeiten benötigen das Dataverse-SDK selbst – eine LINQ-Abfrage mit Joins oder Aggregates, ExecuteMultipleeiner benutzerdefinierten Aktion oder jeder Nachricht, die der Dienst nicht umwickelt. Injizieren IOrganizationServiceProvider , um ein ServiceClient SDK zu erhalten und direkt zu verwenden.

Es bietet zwei Kunden, und der Unterschied ist entscheidend:

  • GetOrganizationService() – diejenige, zu der man standardmäßig greifen muss. Es CallerId ist der angemeldete Nutzer, daher setzt Dataverse die eigenen Rechte dieses Nutzers und die Audit-Trail-Aufzeichnungen durch, wer was getan hat.
  • GetOrganizationServiceAsApp() (eine Erweiterung in PowerPortalsPro.Xrm.Extensions) — löscht CallerId, sodass Aufrufe ausgeführt werden, wie der Anwendungsbenutzer in konfiguriert ist ConnectionOptions. Benötigt, wenn die Operation etwas liest, für das der angemeldete Benutzer keine Rechte hat, wie z. B. ein kontaktgebundener Benutzer, der einen systemuser Datensatz lesen muss.

Der zurückgegebene ServiceClient ist ein Klon und einweggefähr – wickle ihn wie oben ein using , anstatt ihn für die Lebensdauer eines Bauteils zu behalten.

Pass auf

Keiner der Clients führt den ITablePermissionProvider Code deines Portals aus – das gilt für Aufrufe, die durchgehenIPowerPortalsProServiceGetOrganizationServiceAsApp(). insbesondere umgeht auch die Sicherheit von Dataverse selbst, sodass eine dort geschriebene Abfrage alles in der Umgebung zurückgeben kann. Wenn du sie auf einem Pfad verwendest, den ein Besucher erreichen kann, filtere die Daten direkt in der Abfrage und nicht im Nachhinein.

Anmerkung

Dies ist nur serverseitig – es benötigt die Dataverse-Verbindung, daher ist sie im Serverprojekt (und in Blazor Server-Komponenten) verfügbar, aber nicht in einem WebAssembly-Client oder dem React SPA. Diese erreichen Dataverse stattdessen über die API des Portals.

IPowerPortalsProService Interface

Methoden

Name
Parameter
Typ
Beschreibung
AssociateAsyncTableRecordReference record
string relationshipName
IEnumerable<TableRecordReference> relatedRecords
EntityRole? role
CancellationToken cancellationToken
Task<AssociateResponse>
Verknüpft einen Eintrag mit einem oder mehreren verwandten Unterlagen durch eine viele-zu-viele-Beziehung.
ClearAllCachesAsyncCancellationToken cancellationToken
Task<IReadOnlyList<CacheClearResult>>
Löscht jede serverseitige Services.IClearableCache Karte (Tabelle / Ansicht / Privileg) Metadaten, Benutzerrechte, Umgebungsdatei-Einstellungen) und stellt die Lokalisierte Zeichenketten cachen atomar – die Leser sehen weiterhin das zuvor Daten geladen, bis der neue Zustand vollständig besetzt ist. Lazy Caches füllen sich auf dem Nächste Anfrage, die sie braucht. Der HTTP-Endpunkt hinter diesem Aufruf wird durch [SystemAdmin autorisieren]. Serverseitige direkte Anrufer sollten das tun Gitter entsprechend an ihrer eigenen Grenze.
ClearCacheAsyncstring name
CancellationToken cancellationToken
Task<CacheClearResult>
Löscht einen benannten Cache. Kehrt zurück, null wenn kein registrierter Cache registriert ist Cache-Übereinstimmungen name (Groß- und Kleinschreibungsunempfindlich); Fehler sind Eingewickelt im Ergebnis statt geworfen. Dasselbe Auth-Gate wie Threading.CancellationToken).
CreateFileArchiveAsyncCreateFileArchiveRequest request
CancellationToken cancellationToken
Task<FileArchiveResult>
Erstellt ein Archiv (derzeit zip; zukünftige Formate leben hinter dem CreateFileArchiveRequest.Format enum) mit allen Aufzeichnungen Dateinutzlast für das benannte Tabellen-/Spaltenpaar. Verwendet denselben pro Datensatz Permission-Chain als Threading.CancellationToken) — unbefugt / fehlend Zeilen werden stillschweigend aus dem Archiv entfernt. Doppelte Dateinamen sind eindeutig durch das Suffix '(2)',' (3)', ... so das Archiv Überschreibt niemals Einträge.
CreateRecordAsyncTableRecord record
CancellationToken cancellationToken
Task<CreateResponse>
Erstellt einen neuen Datensatz in Dataverse.
DeleteRecordAsyncstring tableLogicalName
Guid id
CancellationToken cancellationToken
Task<DeleteResponse>
Löscht einen Datensatz aus Dataverse nach Tabellennamen und Datensatz-ID.
DisassociateAsyncTableRecordReference record
string relationshipName
IEnumerable<TableRecordReference> relatedRecords
EntityRole? role
CancellationToken cancellationToken
Task<DisassociateResponse>
Entfernt eine Verbindung zwischen einem Datensatz und einem oder mehreren verwandten Datensätzen über eine viele-zu-viele-Beziehung.
DownloadLocalizationSourceAsyncstring sourceId
string culture
CancellationToken cancellationToken
Task<LocalizationDownload>
Lädt die Schlüssel herunter, eine Quelle hat zu einer Kultur beigetragen, während der meisten kürzlich aufgewärmt, als JSON im gleichen Konsumenten mit verschachtelten Objekten app.{culture}.json Dateien verwenden. Für Übersetzungsübergabe vorgesehen — Gib die Datei einem Übersetzer ab, hol eine übersetzte Version zurück und wirf sie hinein einen Lokalisierungsordner, in dem die Originalquelle überschrieben wird für diese Schlüssel bereitgestellt.
DownloadMergedLocalizationsAsyncstring culture
CancellationToken cancellationToken
Task<LocalizationDownload>
Lädt die zusammengeführten Lokalisierungsschlüssel für eine Kultur herunter – die Post-Merge Gewinnwert für jeden Schlüssel, den der Cache gespeichert hat, unabhängig davon, welchen Die Quelle lieferte es ursprünglich. Nutzen Sie dies für eine vollständige Momentaufnahme Referenz (alles, was das Portal tatsächlich für diese Kultur dienen wird) und nicht die oben beschriebene Ansicht pro Quelle.
ExecuteAsyncOrganizationRequest request
CancellationToken cancellationToken
Task<OrganizationResponse>
Führt eine einzelne Organisationsanfrage gegen Dataverse aus.
ExecuteMultipleAsyncIEnumerable<OrganizationRequest> requests
bool returnResponses
CancellationToken cancellationToken
Task<List<OrganizationResponse>>
Führt mehrere Organisationsanfragen in einer einzigen Datenbanktransaktion aus. Wenn eine Anfrage fehlschlägt, werden alle Änderungen im Batch zurückgesetzt.
GetCacheNamesAsyncCancellationToken cancellationToken
Task<IReadOnlyList<string>>
Gibt die Namen aller serverseitigen Services.IClearableCache, passend zurück. für eine Admin-Benutzeroberfläche, die pro Cache Lösch-Buttons rendern will. Dasselbe Auth-Gate wie Threading.CancellationToken) auf dem HTTP-Endpunkt gilt.
GetFileInfoAsyncstring tableName
Guid recordId
string columnName
bool includeData
CancellationToken cancellationToken
Task<FileInfo>
Ruft Dateiinformationen und optional den Binärinhalt aus einer Datei- oder Bildspalte in Dataverse ab.
GetFileInfosAsyncstring tableName
IEnumerable<Guid> recordIds
string columnName
bool includeData
CancellationToken cancellationToken
Task<IEnumerable<FileInfo>>
Batch-Abruf von Dateiinformationen für viele Datensätze derselben Tabelle / Spalte in einer einzigen Hin- und Rückfahrt. Intern fächert man die pro Platte parallel ab und gibt die kombinierte Liste zurück. Die gleiche pro-record-Permission-Handler-Kette läuft wie für der Ein-Record-Anruf; Fehlgeschlagene Nachschlage werden aus der Antwort gestrichen, anstatt Ich bin bei der ganzen Charge durchgefallen. Verwendet von FileGrids 'Download All' / 'Download Selected', damit der Client eine zip, ohne N HTTP-Anfragen abzufeuern.
GetLocalizationOverviewAsyncCancellationToken cancellationToken
Task<LocalizationOverview>
Gibt einen administrativ orientierten Schnappschuss der String-Lokalisierungspipeline zurück: die Statische Konfiguration, die das Aufwärmen sowie die Ladeaufzeichnungen pro Quelle steuerte produziert vom jüngsten Aufwärmen. Unterstützt die LokalisierungAdmin Komponente in PowerPortalsPro.Web.Blazor.FluentUI. Der HTTP-Endpunkt ist von [AuthorizeSystemAdmin] gesperrt.
GetMergedLocalizationEntriesAsyncstring culture
CancellationToken cancellationToken
Task<IReadOnlyList<MergedLocalizationEntry>>
Gibt die zusammengeführten Lokalisierungsschlüssel für eine Kultur als strukturierte Liste zurück – jede Schlüssel, den der Cache bedient, seinen Gewinnwert nach dem Merge und welche Quelle geliefert wird Dieser Wert. Gleiche Daten wie, Threading.CancellationToken) aber pro Schlüssel annotiert mit seinem Ursprung (Datei / Webressource / Dataverse-Metadaten), damit ein Administrator dies tun kann Herkunft in einem Raster inspizieren. Einträge sind nach Schlüssel sortiert.
GetOrganizationSettingsAsyncCancellationToken cancellationToken
Task<OrganizationSettings>
Ruft die organisationsweiten Einstellungen ab, die aus dem Dataverse stammen Organisationsbilanz : DefaultCurrency – die Basiswährung der Organisation, verwendet im Create-Mode Editoren (MoneyEdit), um das richtige Symbol auf brandneuen Datensätzen darzustellen. BlockedFileExtensions + MaxUploadFileSizeInBytes — Datei-Upload Constraints, die Clients spiegeln, um ungültige Dateien vor dem Roundtrip abzulehnen. Ersetzt die alten GetEnvironmentFileSettingsAsync – die beiden Dateifelder sind nun auf dieser kombinierten Reaktion ausgesetzt.
GetTablePermissionsForCurrentUserAsyncstring tableLogicalName
CancellationToken cancellationToken
Task<TableSecurityPermission>
Gibt die kombinierte Tabellen-Maske Models.TableSecurityPermission des aktuellen Benutzers zurück für tableLogicalName — die bitweise Vereinigung von Lesen / Erstellen / Schreiben / Löschen / Anhängen / Anhängen markiert jede registrierte ITablePermissionProvider, die erlaubt, für den Nutzer auf diesem Tisch. Serverseitig delegiert dies an den zwischengespeicherten ITablePermissionCache; den WASM-Client trifft einen HTTP-Endpunkt, der denselben Cache auf dem Server aufruft. Spiegelt die table-cache-Suche Blazors NewRecordGridButton / DeleteRecordGridButton bereits direkt über DI tun, und der neue Wert, den GridDataResponse trägt als TablePermissions — hier sichtbar, damit Konsumenten außerhalb des Grid-Pfades (benutzerdefiniert) Toolbars, bedingte Benutzeroberfläche, 'Kann der Benutzer X erstellen?'-Gatter überall auf der Seite erstellen) Erreiche dieselbe Antwort, ohne eine Raster-Anfrage zu stellen.
GetTablePermissionWebRolesAsyncGuid tablePermissionId
CancellationToken cancellationToken
Task<IReadOnlyList<Guid>>
Gibt die IDs der Power Pages-Webrollen zurück, für die eine Tabellenberechtigung gilt, unter erweitertem Genehmigung. Lesen Sie aus dem eigenen Datensatz der Berechtigung, denn dort bewahrt Power Pages sie auf: die Die Beziehung mspp_entitypermission virtuellen Tabelle zu mspp_webrole liest leer Auch wenn Rollen verknüpft sind. Läuft als angemeldeter Nutzer, daher wendet Dataverse deren Rechte an.
GetTranslationAvailabilityAsyncCancellationToken cancellationToken
Task<TranslationAvailability>
Gibt zurück, ob die Lokalisierungs-Übersetzungsfunktion in der aktuellen Umgebung nutzbar ist: ob der Azure-Übersetzungsdienst konfiguriert ist, ob die Übersetzung verwaltet wurde Die Lösung ist installiert, und die potenziellen Zielsprachen (die vom Portal unterstützten Kulturen annotiert mit Azure-translateability). Unterstützt die Entscheidung der LocalizationTranslator-Benutzeroberfläche Um das Übersetzungspanel anzuzeigen, eine Installationsaufforderung oder gar nichts.
GetUserTablePermissionsAsyncstring tableLogicalName
CancellationToken cancellationToken
Task<UserTablePermissions>
Die Operationen des aktuellen Benutzers in einer Tabelle, zusammen mit den Spaltenberechtigungen eines Datensatzes Sie erstellen Starts mit – welche Spalten sie beim Erstellen setzen dürfen, im Gegensatz zu den Ones Ein bestehender TableRecord.ColumnPermissions Datensatz sagt, dass sie sich ändern können. Was ein Formular im Erstellungsmodus braucht, um die Spalten darzustellen, die der Benutzer möglicherweise nicht als schreibgeschützt einstellt.
RetrieveRecordAsyncstring tableLogicalName
Guid id
IEnumerable<string> columns
CancellationToken cancellationToken
Task<TableRecord>
Ruft einen einzelnen Datensatz aus Dataverse anhand von Tabellennamen und Datensatz-ID ab.
RetrieveRecordsAsyncstring fetchXml
CancellationToken cancellationToken
Task<RetrieveRecordsResponse>
Ruft mehrere Datensätze aus Dataverse mithilfe einer FetchXML-Abfrage ab. Unterstützt Filterung, Sortierung, Auslagerung, verknüpfte Entitäten und aggregierte Abfragen.
RetrieveTableHeadersAsyncCancellationToken cancellationToken
Task<IReadOnlyList<TableHeader>>
Ruft die Identitätsebene-Metadaten ab – logisch, Schema und Anzeigename plus Ein paar Flaggen – für jeden Tisch in der Umgebung. Das günstige Gegenstück zu Threading.CancellationToken), für die Ein Fall, in dem ein Aufrufer Tabellen auflisten muss, anstatt eine zu inspizieren. A Der Abfragedesigner, der einen 'From'-Picker ausfüllt, müsste sonst abrufen vollständige Metadaten für jede Tabelle in der Umgebung, was Dutzende von Sekunden; dies ist eine einzelne Rundreise, die aus einem In-Process-Cache ausgeliefert wird, danach Der erste Anruf. Gibt jede Tabelle zurück, nicht eine berechtigungsgefilterte Teilmenge – die gleiche Haltung wie Threading.CancellationToken), die jede authentifizierte Karte bedient Ruf die Form eines beliebigen Tisches an. Anrufer, die eine engere Liste brauchen, sollten das tun Filtern TableHeader.IsValidForAdvancedFind oder wenden sie an Eigene Regeln.
RetrieveTableMetadataAsyncstring tableLogicalName
CancellationToken cancellationToken
Task<TableMetadata>
Enthält Tabellenmetadaten aus Dataverse, einschließlich Spaltendefinitionen, Beziehungen und Anzeigekonfiguration.
RetrieveTableMetadataBatchAsyncIReadOnlyList<TableMetadataRequest> requests
CancellationToken cancellationToken
Task<IReadOnlyList<TableMetadata>>
Gibt mehrere Metadaten mehrerer Tabellen in einem Aufruf zurück, jeweils auf die Spalten und Beziehungen seine Anfragenamen. Für den Anrufer, der von jedem der vielen Tabellen etwas möchte. Auflösung der Anzeige Namen hinter den Beziehungen einer Tabelle sind der motivierende Fall: die Suchspalten wohnen Sie auf den Tischen am anderen Ende jedes Punktes, also beantworten Sie es durch Threading.CancellationToken) bedeutet eine Hin- und Rückfahrt pro zugehöriger Tabelle, jeder einen ganzen Tisch zurückbringen, um ein Etikett zu lesen. Das Eingrenzen ändert, welche Spalten zurückkommen, nicht welche jede Spalte enthält: eine benannte Spalte kommt so vollständig beschrieben an, als wäre es bei einer Ganzt-Tisch-Lektüre. Spalten des Anrufers vielleicht nicht gelesen werden, werden hier genau so zurückgehalten, wie sie es sind, daher ist dies keine Möglichkeit rund um Spaltenberechtigungen. Eine Tabelle, die die Umgebung nicht hat – oder die die Anfrage falsch schreibt – fehlt aus dem Ergebnis und nicht aus einem Fehler; die Ergebnisse nach Tabellennamen abgleichen.
RetrieveViewMetadataAsyncGuid viewId
CancellationToken cancellationToken
Task<ViewMetadata>
Ruft Ansichtsmetadaten aus Dataverse ab, einschließlich der FetchXML-Abfrage, Spalten und Anzeigekonfiguration der Ansicht.
RetrieveViewsForTableAsyncstring tableLogicalName
CancellationToken cancellationToken
Task<IEnumerable<ViewMetadata>>
Ruft jeden View-Metadaten-Datensatz für eine Tabelle ab. Verwendet von Grids, die es brauchen Listen Sie die verfügbaren Ansichten auf (View-Picker, Standard-Ansichtsauflösung usw.). Die serverseitige Implementierung liest aus dem sich befindlichen IViewMetadataCache; der WASM-Client trifft auf einen HTTP-Endpunkt, der dasselbe auf dem Server tut.
SetTablePermissionWebRolesAsyncGuid tablePermissionId
IReadOnlyCollection<Guid> webRoleIds
CancellationToken cancellationToken
Task<bool>
Ersetzt die Power Pages-Webrollen, für die eine Tabellenberechtigung gilt, unter erweiterter Autorisierung. In den eigenen Datensatz der Berechtigung geschrieben, was Power Pages dazu bringt, die Sicherheit neu zu synchronisieren Rollen, die mit diesen Webrollen gepaart sind – sodass die Änderung Dataverse-Privilegien erreicht, typischerweise innerhalb der Web-Rollen, eine Minute. Eine Assoziation über die Beziehung der virtuellen Tabellen würde das nicht tun: Sie sieht gespeichert aus und gewährt nichts. Jede hinzugefügte ID muss eine Webfunktion der Website des Portals sein; eine der Berechtigungslisten werden wie gefragt beibehalten oder entfernt, selbst wenn diese Webrolle inzwischen übernommen wurde gelöscht.
TranslateLocalizationFileAsyncTranslationRequest request
CancellationToken cancellationToken
Task<TranslationResult>
Maschinell übersetzt eine hochgeladene Lokalisierungsdatei über Azure in eine oder mehrere Zielsprachen Übersetzer, Wiederverwendung des Dataverse-Übersetzungsspeichers und Meldung der Anzahl der Strings Frisch übersetzt versus wiederverwendet. Gibt pro Zielsprache eine Datei plus eine ZIP von allen zurück.
UpdateRecordAsyncTableRecord record
CancellationToken cancellationToken
Task<UpdateResponse>
Aktualisiert einen bestehenden Datensatz in Dataverse. Nur die im Datensatz gesetzten Eigenschaften werden an Dataverse gesendet.
Name: AssociateAsync
Parameter: TableRecordReference record
string relationshipName
IEnumerable<TableRecordReference> relatedRecords
EntityRole? role
CancellationToken cancellationToken
Typ: Task<AssociateResponse>
Beschreibung: Verknüpft einen Eintrag mit einem oder mehreren verwandten Unterlagen durch eine viele-zu-viele-Beziehung.
Name: ClearAllCachesAsync
Parameter: CancellationToken cancellationToken
Typ: Task<IReadOnlyList<CacheClearResult>>
Beschreibung: Löscht jede serverseitige Services.IClearableCache Karte (Tabelle / Ansicht / Privileg) Metadaten, Benutzerrechte, Umgebungsdatei-Einstellungen) und stellt die Lokalisierte Zeichenketten cachen atomar – die Leser sehen weiterhin das zuvor Daten geladen, bis der neue Zustand vollständig besetzt ist. Lazy Caches füllen sich auf dem Nächste Anfrage, die sie braucht. Der HTTP-Endpunkt hinter diesem Aufruf wird durch [SystemAdmin autorisieren]. Serverseitige direkte Anrufer sollten das tun Gitter entsprechend an ihrer eigenen Grenze.
Name: ClearCacheAsync
Parameter: string name
CancellationToken cancellationToken
Typ: Task<CacheClearResult>
Beschreibung: Löscht einen benannten Cache. Kehrt zurück, null wenn kein registrierter Cache registriert ist Cache-Übereinstimmungen name (Groß- und Kleinschreibungsunempfindlich); Fehler sind Eingewickelt im Ergebnis statt geworfen. Dasselbe Auth-Gate wie Threading.CancellationToken).
Name: CreateFileArchiveAsync
Parameter: CreateFileArchiveRequest request
CancellationToken cancellationToken
Typ: Task<FileArchiveResult>
Beschreibung: Erstellt ein Archiv (derzeit zip; zukünftige Formate leben hinter dem CreateFileArchiveRequest.Format enum) mit allen Aufzeichnungen Dateinutzlast für das benannte Tabellen-/Spaltenpaar. Verwendet denselben pro Datensatz Permission-Chain als Threading.CancellationToken) — unbefugt / fehlend Zeilen werden stillschweigend aus dem Archiv entfernt. Doppelte Dateinamen sind eindeutig durch das Suffix '(2)',' (3)', ... so das Archiv Überschreibt niemals Einträge.
Name: CreateRecordAsync
Parameter: TableRecord record
CancellationToken cancellationToken
Typ: Task<CreateResponse>
Beschreibung: Erstellt einen neuen Datensatz in Dataverse.
Name: DeleteRecordAsync
Parameter: string tableLogicalName
Guid id
CancellationToken cancellationToken
Typ: Task<DeleteResponse>
Beschreibung: Löscht einen Datensatz aus Dataverse nach Tabellennamen und Datensatz-ID.
Name: DisassociateAsync
Parameter: TableRecordReference record
string relationshipName
IEnumerable<TableRecordReference> relatedRecords
EntityRole? role
CancellationToken cancellationToken
Typ: Task<DisassociateResponse>
Beschreibung: Entfernt eine Verbindung zwischen einem Datensatz und einem oder mehreren verwandten Datensätzen über eine viele-zu-viele-Beziehung.
Name: DownloadLocalizationSourceAsync
Parameter: string sourceId
string culture
CancellationToken cancellationToken
Typ: Task<LocalizationDownload>
Beschreibung: Lädt die Schlüssel herunter, eine Quelle hat zu einer Kultur beigetragen, während der meisten kürzlich aufgewärmt, als JSON im gleichen Konsumenten mit verschachtelten Objekten app.{culture}.json Dateien verwenden. Für Übersetzungsübergabe vorgesehen — Gib die Datei einem Übersetzer ab, hol eine übersetzte Version zurück und wirf sie hinein einen Lokalisierungsordner, in dem die Originalquelle überschrieben wird für diese Schlüssel bereitgestellt.
Name: DownloadMergedLocalizationsAsync
Parameter: string culture
CancellationToken cancellationToken
Typ: Task<LocalizationDownload>
Beschreibung: Lädt die zusammengeführten Lokalisierungsschlüssel für eine Kultur herunter – die Post-Merge Gewinnwert für jeden Schlüssel, den der Cache gespeichert hat, unabhängig davon, welchen Die Quelle lieferte es ursprünglich. Nutzen Sie dies für eine vollständige Momentaufnahme Referenz (alles, was das Portal tatsächlich für diese Kultur dienen wird) und nicht die oben beschriebene Ansicht pro Quelle.
Name: ExecuteAsync
Parameter: OrganizationRequest request
CancellationToken cancellationToken
Typ: Task<OrganizationResponse>
Beschreibung: Führt eine einzelne Organisationsanfrage gegen Dataverse aus.
Name: ExecuteMultipleAsync
Parameter: IEnumerable<OrganizationRequest> requests
bool returnResponses
CancellationToken cancellationToken
Typ: Task<List<OrganizationResponse>>
Beschreibung: Führt mehrere Organisationsanfragen in einer einzigen Datenbanktransaktion aus. Wenn eine Anfrage fehlschlägt, werden alle Änderungen im Batch zurückgesetzt.
Name: GetCacheNamesAsync
Parameter: CancellationToken cancellationToken
Typ: Task<IReadOnlyList<string>>
Beschreibung: Gibt die Namen aller serverseitigen Services.IClearableCache, passend zurück. für eine Admin-Benutzeroberfläche, die pro Cache Lösch-Buttons rendern will. Dasselbe Auth-Gate wie Threading.CancellationToken) auf dem HTTP-Endpunkt gilt.
Name: GetFileInfoAsync
Parameter: string tableName
Guid recordId
string columnName
bool includeData
CancellationToken cancellationToken
Typ: Task<FileInfo>
Beschreibung: Ruft Dateiinformationen und optional den Binärinhalt aus einer Datei- oder Bildspalte in Dataverse ab.
Name: GetFileInfosAsync
Parameter: string tableName
IEnumerable<Guid> recordIds
string columnName
bool includeData
CancellationToken cancellationToken
Typ: Task<IEnumerable<FileInfo>>
Beschreibung: Batch-Abruf von Dateiinformationen für viele Datensätze derselben Tabelle / Spalte in einer einzigen Hin- und Rückfahrt. Intern fächert man die pro Platte parallel ab und gibt die kombinierte Liste zurück. Die gleiche pro-record-Permission-Handler-Kette läuft wie für der Ein-Record-Anruf; Fehlgeschlagene Nachschlage werden aus der Antwort gestrichen, anstatt Ich bin bei der ganzen Charge durchgefallen. Verwendet von FileGrids 'Download All' / 'Download Selected', damit der Client eine zip, ohne N HTTP-Anfragen abzufeuern.
Name: GetLocalizationOverviewAsync
Parameter: CancellationToken cancellationToken
Typ: Task<LocalizationOverview>
Beschreibung: Gibt einen administrativ orientierten Schnappschuss der String-Lokalisierungspipeline zurück: die Statische Konfiguration, die das Aufwärmen sowie die Ladeaufzeichnungen pro Quelle steuerte produziert vom jüngsten Aufwärmen. Unterstützt die LokalisierungAdmin Komponente in PowerPortalsPro.Web.Blazor.FluentUI. Der HTTP-Endpunkt ist von [AuthorizeSystemAdmin] gesperrt.
Name: GetMergedLocalizationEntriesAsync
Parameter: string culture
CancellationToken cancellationToken
Typ: Task<IReadOnlyList<MergedLocalizationEntry>>
Beschreibung: Gibt die zusammengeführten Lokalisierungsschlüssel für eine Kultur als strukturierte Liste zurück – jede Schlüssel, den der Cache bedient, seinen Gewinnwert nach dem Merge und welche Quelle geliefert wird Dieser Wert. Gleiche Daten wie, Threading.CancellationToken) aber pro Schlüssel annotiert mit seinem Ursprung (Datei / Webressource / Dataverse-Metadaten), damit ein Administrator dies tun kann Herkunft in einem Raster inspizieren. Einträge sind nach Schlüssel sortiert.
Name: GetOrganizationSettingsAsync
Parameter: CancellationToken cancellationToken
Typ: Task<OrganizationSettings>
Beschreibung: Ruft die organisationsweiten Einstellungen ab, die aus dem Dataverse stammen Organisationsbilanz : DefaultCurrency – die Basiswährung der Organisation, verwendet im Create-Mode Editoren (MoneyEdit), um das richtige Symbol auf brandneuen Datensätzen darzustellen. BlockedFileExtensions + MaxUploadFileSizeInBytes — Datei-Upload Constraints, die Clients spiegeln, um ungültige Dateien vor dem Roundtrip abzulehnen. Ersetzt die alten GetEnvironmentFileSettingsAsync – die beiden Dateifelder sind nun auf dieser kombinierten Reaktion ausgesetzt.
Name: GetTablePermissionsForCurrentUserAsync
Parameter: string tableLogicalName
CancellationToken cancellationToken
Typ: Task<TableSecurityPermission>
Beschreibung: Gibt die kombinierte Tabellen-Maske Models.TableSecurityPermission des aktuellen Benutzers zurück für tableLogicalName — die bitweise Vereinigung von Lesen / Erstellen / Schreiben / Löschen / Anhängen / Anhängen markiert jede registrierte ITablePermissionProvider, die erlaubt, für den Nutzer auf diesem Tisch. Serverseitig delegiert dies an den zwischengespeicherten ITablePermissionCache; den WASM-Client trifft einen HTTP-Endpunkt, der denselben Cache auf dem Server aufruft. Spiegelt die table-cache-Suche Blazors NewRecordGridButton / DeleteRecordGridButton bereits direkt über DI tun, und der neue Wert, den GridDataResponse trägt als TablePermissions — hier sichtbar, damit Konsumenten außerhalb des Grid-Pfades (benutzerdefiniert) Toolbars, bedingte Benutzeroberfläche, 'Kann der Benutzer X erstellen?'-Gatter überall auf der Seite erstellen) Erreiche dieselbe Antwort, ohne eine Raster-Anfrage zu stellen.
Name: GetTablePermissionWebRolesAsync
Parameter: Guid tablePermissionId
CancellationToken cancellationToken
Typ: Task<IReadOnlyList<Guid>>
Beschreibung: Gibt die IDs der Power Pages-Webrollen zurück, für die eine Tabellenberechtigung gilt, unter erweitertem Genehmigung. Lesen Sie aus dem eigenen Datensatz der Berechtigung, denn dort bewahrt Power Pages sie auf: die Die Beziehung mspp_entitypermission virtuellen Tabelle zu mspp_webrole liest leer Auch wenn Rollen verknüpft sind. Läuft als angemeldeter Nutzer, daher wendet Dataverse deren Rechte an.
Name: GetTranslationAvailabilityAsync
Parameter: CancellationToken cancellationToken
Typ: Task<TranslationAvailability>
Beschreibung: Gibt zurück, ob die Lokalisierungs-Übersetzungsfunktion in der aktuellen Umgebung nutzbar ist: ob der Azure-Übersetzungsdienst konfiguriert ist, ob die Übersetzung verwaltet wurde Die Lösung ist installiert, und die potenziellen Zielsprachen (die vom Portal unterstützten Kulturen annotiert mit Azure-translateability). Unterstützt die Entscheidung der LocalizationTranslator-Benutzeroberfläche Um das Übersetzungspanel anzuzeigen, eine Installationsaufforderung oder gar nichts.
Name: GetUserTablePermissionsAsync
Parameter: string tableLogicalName
CancellationToken cancellationToken
Typ: Task<UserTablePermissions>
Beschreibung: Die Operationen des aktuellen Benutzers in einer Tabelle, zusammen mit den Spaltenberechtigungen eines Datensatzes Sie erstellen Starts mit – welche Spalten sie beim Erstellen setzen dürfen, im Gegensatz zu den Ones Ein bestehender TableRecord.ColumnPermissions Datensatz sagt, dass sie sich ändern können. Was ein Formular im Erstellungsmodus braucht, um die Spalten darzustellen, die der Benutzer möglicherweise nicht als schreibgeschützt einstellt.
Name: RetrieveRecordAsync
Parameter: string tableLogicalName
Guid id
IEnumerable<string> columns
CancellationToken cancellationToken
Typ: Task<TableRecord>
Beschreibung: Ruft einen einzelnen Datensatz aus Dataverse anhand von Tabellennamen und Datensatz-ID ab.
Name: RetrieveRecordsAsync
Parameter: string fetchXml
CancellationToken cancellationToken
Typ: Task<RetrieveRecordsResponse>
Beschreibung: Ruft mehrere Datensätze aus Dataverse mithilfe einer FetchXML-Abfrage ab. Unterstützt Filterung, Sortierung, Auslagerung, verknüpfte Entitäten und aggregierte Abfragen.
Name: RetrieveTableHeadersAsync
Parameter: CancellationToken cancellationToken
Typ: Task<IReadOnlyList<TableHeader>>
Beschreibung: Ruft die Identitätsebene-Metadaten ab – logisch, Schema und Anzeigename plus Ein paar Flaggen – für jeden Tisch in der Umgebung. Das günstige Gegenstück zu Threading.CancellationToken), für die Ein Fall, in dem ein Aufrufer Tabellen auflisten muss, anstatt eine zu inspizieren. A Der Abfragedesigner, der einen 'From'-Picker ausfüllt, müsste sonst abrufen vollständige Metadaten für jede Tabelle in der Umgebung, was Dutzende von Sekunden; dies ist eine einzelne Rundreise, die aus einem In-Process-Cache ausgeliefert wird, danach Der erste Anruf. Gibt jede Tabelle zurück, nicht eine berechtigungsgefilterte Teilmenge – die gleiche Haltung wie Threading.CancellationToken), die jede authentifizierte Karte bedient Ruf die Form eines beliebigen Tisches an. Anrufer, die eine engere Liste brauchen, sollten das tun Filtern TableHeader.IsValidForAdvancedFind oder wenden sie an Eigene Regeln.
Name: RetrieveTableMetadataAsync
Parameter: string tableLogicalName
CancellationToken cancellationToken
Typ: Task<TableMetadata>
Beschreibung: Enthält Tabellenmetadaten aus Dataverse, einschließlich Spaltendefinitionen, Beziehungen und Anzeigekonfiguration.
Name: RetrieveTableMetadataBatchAsync
Parameter: IReadOnlyList<TableMetadataRequest> requests
CancellationToken cancellationToken
Typ: Task<IReadOnlyList<TableMetadata>>
Beschreibung: Gibt mehrere Metadaten mehrerer Tabellen in einem Aufruf zurück, jeweils auf die Spalten und Beziehungen seine Anfragenamen. Für den Anrufer, der von jedem der vielen Tabellen etwas möchte. Auflösung der Anzeige Namen hinter den Beziehungen einer Tabelle sind der motivierende Fall: die Suchspalten wohnen Sie auf den Tischen am anderen Ende jedes Punktes, also beantworten Sie es durch Threading.CancellationToken) bedeutet eine Hin- und Rückfahrt pro zugehöriger Tabelle, jeder einen ganzen Tisch zurückbringen, um ein Etikett zu lesen. Das Eingrenzen ändert, welche Spalten zurückkommen, nicht welche jede Spalte enthält: eine benannte Spalte kommt so vollständig beschrieben an, als wäre es bei einer Ganzt-Tisch-Lektüre. Spalten des Anrufers vielleicht nicht gelesen werden, werden hier genau so zurückgehalten, wie sie es sind, daher ist dies keine Möglichkeit rund um Spaltenberechtigungen. Eine Tabelle, die die Umgebung nicht hat – oder die die Anfrage falsch schreibt – fehlt aus dem Ergebnis und nicht aus einem Fehler; die Ergebnisse nach Tabellennamen abgleichen.
Name: RetrieveViewMetadataAsync
Parameter: Guid viewId
CancellationToken cancellationToken
Typ: Task<ViewMetadata>
Beschreibung: Ruft Ansichtsmetadaten aus Dataverse ab, einschließlich der FetchXML-Abfrage, Spalten und Anzeigekonfiguration der Ansicht.
Name: RetrieveViewsForTableAsync
Parameter: string tableLogicalName
CancellationToken cancellationToken
Typ: Task<IEnumerable<ViewMetadata>>
Beschreibung: Ruft jeden View-Metadaten-Datensatz für eine Tabelle ab. Verwendet von Grids, die es brauchen Listen Sie die verfügbaren Ansichten auf (View-Picker, Standard-Ansichtsauflösung usw.). Die serverseitige Implementierung liest aus dem sich befindlichen IViewMetadataCache; der WASM-Client trifft auf einen HTTP-Endpunkt, der dasselbe auf dem Server tut.
Name: SetTablePermissionWebRolesAsync
Parameter: Guid tablePermissionId
IReadOnlyCollection<Guid> webRoleIds
CancellationToken cancellationToken
Typ: Task<bool>
Beschreibung: Ersetzt die Power Pages-Webrollen, für die eine Tabellenberechtigung gilt, unter erweiterter Autorisierung. In den eigenen Datensatz der Berechtigung geschrieben, was Power Pages dazu bringt, die Sicherheit neu zu synchronisieren Rollen, die mit diesen Webrollen gepaart sind – sodass die Änderung Dataverse-Privilegien erreicht, typischerweise innerhalb der Web-Rollen, eine Minute. Eine Assoziation über die Beziehung der virtuellen Tabellen würde das nicht tun: Sie sieht gespeichert aus und gewährt nichts. Jede hinzugefügte ID muss eine Webfunktion der Website des Portals sein; eine der Berechtigungslisten werden wie gefragt beibehalten oder entfernt, selbst wenn diese Webrolle inzwischen übernommen wurde gelöscht.
Name: TranslateLocalizationFileAsync
Parameter: TranslationRequest request
CancellationToken cancellationToken
Typ: Task<TranslationResult>
Beschreibung: Maschinell übersetzt eine hochgeladene Lokalisierungsdatei über Azure in eine oder mehrere Zielsprachen Übersetzer, Wiederverwendung des Dataverse-Übersetzungsspeichers und Meldung der Anzahl der Strings Frisch übersetzt versus wiederverwendet. Gibt pro Zielsprache eine Datei plus eine ZIP von allen zurück.
Name: UpdateRecordAsync
Parameter: TableRecord record
CancellationToken cancellationToken
Typ: Task<UpdateResponse>
Beschreibung: Aktualisiert einen bestehenden Datensatz in Dataverse. Nur die im Datensatz gesetzten Eigenschaften werden an Dataverse gesendet.