IPowerPortalsProService

La IPowerPortalsProService interfaz proporciona métodos para realizar operaciones CRUD, ejecutar consultas, gestionar relaciones y recuperar metadatos de Dataverse. Es el servicio principal para el acceso a datos desde el lado del servidor en PowerPortalsPro.

Nota

En la mayoría de los casos no necesitas llamar IPowerPortalsProService directamente. Los RecordContextcomponentes , MainContext, y grid gestionan automáticamente las operaciones de datos. Utiliza este servicio para lógica personalizada que esté fuera del flujo de trabajo estándar de componentes.

Implementaciones de servidor y cliente

IPowerPortalsProService viene con dos implementaciones registradas automáticamente por el framework — tu código de componentes es idéntico contra ambos, y el runtime inyecta la que coincide con el contexto de renderizado activo:

  • Implementación del servidor (PowerPortalsPro.Web.Server, registrado por AddPowerPortalsProWebServer) — se ejecuta en proceso, se comunica directamente con Dataverse a través de IOrganizationService, y aplica tus ITablePermissionProvider registros antes de cualquier lectura o escritura. Seleccionado cuando la página se renderiza bajo InteractiveServerRenderMode o SSR estático.
  • Implementación cliente (PowerPortalsPro.Web.Client, registrada por AddPowerPortalsProWebClient) — se ejecuta en el navegador bajo WebAssembly, no tiene ningún SDK Dataverse y, en su lugar, serializa cada llamada en JSON al punto final HTTP correspondiente del lado del servidor (/api/table/{name}, /api/retrieveMultiple, etc.). Los manejadores de permisos siguen aplicándose porque la solicitud vuelve a caer en el endpoint del servidor. Consulta la página de la API del cliente para el formato de cable y las rutas que llama la implementación del cliente.

Como el contrato es idéntico, el mismo componente funciona bajo cualquier modo de interactividad (Servidor, WebAssembly o Auto). El código que llama _powerPortalsProService.RetrieveRecordAsync(...) a una página renderizada por el servidor realiza una llamada Dataverse en proceso; la misma línea en una página renderizada por WASM emite una solicitud HTTP — sin necesidad de ramificación.

Inyectando el Servicio

Inyectar IPowerPortalsProService en cualquier componente o servicio de Blazor mediante inyección de constructor o propiedad.

React Blazor

Recuperación de un récord

Úsase RetrieveRecordAsync para obtener un solo registro por nombre de tabla e ID. Opcionalmente especifica qué columnas devolver; si se omite, se devuelven todas las columnas.

React Blazor

Consulta de múltiples registros

Úsalo RetrieveRecordsAsync con una cadena de consulta FetchXML para recuperar múltiples registros con filtrado, ordenación y soporte para entidades enlazadas.

React Blazor

Creación de un Registro

Úsalo CreateRecordAsync para crear un nuevo registro en Dataverse. La respuesta contiene el ID del registro recién creado.

React Blazor

Actualización de un registro

Úsalo UpdateRecordAsync para actualizar un registro existente. Solo las propiedades establecidas en el TableRecord se envían a Dataverse.

React Blazor

Eliminar un registro

Úsalo DeleteRecordAsync para eliminar un registro por nombre de la tabla e ID.

React Blazor

Registros asociados

Utiliza AssociateAsync y DisassociateAsync gestiona relaciones de muchos-a-muchos entre registros.

React Blazor

Ejecución de solicitudes

Úsala ExecuteAsync para una sola solicitud o ExecuteMultipleAsync para ejecutar múltiples solicitudes en una única transacción de base de datos. Si alguna petición en un lote transaccional falla, todos los cambios se revierten.

React Blazor

Recuperación de metadatos

Usar RetrieveTableMetadataAsync y RetrieveViewMetadataAsync recuperar metadatos de tablas y vistas. Para acceso en caché, prefiere ITableMetadataCache y IViewMetadataCache en su lugar.

React Blazor

Trabajando con archivos

Se usa GetFileInfoAsync para recuperar metadatos de archivos o imágenes y, opcionalmente, el contenido binario de una columna de archivo o imagen.

React Blazor

Acceso directo al Dataverse

IPowerPortalsProService cubre lo que normalmente necesita un portal, pero algunos trabajos del lado del servidor quieren el propio SDK de Dataverse — una consulta LINQ con uniones o agregados, ExecuteMultipleuna acción personalizada o cualquier mensaje que el servicio no envuelva. Inyecta IOrganizationServiceProvider para obtener un ServiceClient y usa el SDK directamente.

Ofrece dos clientes, y la diferencia importa:

  • GetOrganizationService() — la que debes usar por defecto. Es CallerId el usuario iniciado sesión, así que Dataverse hace cumplir los propios privilegios de ese usuario y la pista de auditoría registra quién hizo qué.
  • GetOrganizationServiceAsApp() (una extensión en PowerPortalsPro.Xrm.Extensions) — limpia CallerId, por lo que las llamadas se ejecutan como el usuario de la aplicación configurado en ConnectionOptions. Necesario cuando la operación lee algo para lo que el usuario iniciado sesión no tiene privilegios, como un usuario respaldado por contacto que debe leer un systemuser registro.

El que devuelve ServiceClient es un clon y es desechable — envuélvelo using como se ha indicado antes en lugar de retener uno durante toda la vida de un componente.

Cuidado

Ninguno de los dos clientes ejecuta el código de ITablePermissionProvider tu portal — eso se aplica a las llamadas que pasan por IPowerPortalsProService. GetOrganizationServiceAsApp() En particular, también se evita la propia seguridad de Dataverse, por lo que una consulta escrita allí puede devolver cualquier cosa del entorno. Cuando la usas en una ruta a la que puede llegar un visitante, filtra los datos en la propia consulta en lugar de después de los hechos.

Nota

Esto es solo para el lado del servidor — necesita la conexión Dataverse, por lo que está disponible en el proyecto servidor (y en los componentes de Blazor Server), pero no en un cliente WebAssembly ni en React SPA. Estos acceden a Dataverse a través de la API del portal.

IPowerPortalsProService Interface

Métodos

Nombre
Parámetros
Tipo
Descripción
AssociateAsyncTableRecordReference record
string relationshipName
IEnumerable<TableRecordReference> relatedRecords
EntityRole? role
CancellationToken cancellationToken
Task<AssociateResponse>
Asocia un registro con uno o más registros relacionados mediante una relación de muchos a muchos.
ClearAllCachesAsyncCancellationToken cancellationToken
Task<IReadOnlyList<CacheClearResult>>
Limpia todos los servidores Services.IClearableCache (tabla / vista / privilegio metadatos, privilegios por usuario, configuración del archivo de entorno) y reconstruye el Localized-strings en caché atómicamente — los lectores continúan viendo lo que antes Datos cargados hasta que el nuevo estado esté completamente poblado. Las cachés perezosas se recargan en el Próxima petición que los necesite. El punto final HTTP detrás de esta llamada está bloqueado por [AuthorizeSystemAdmin]. Los llamantes directos del lado del servidor deberían Puerta apropiadamente en su propio límite.
ClearCacheAsyncstring name
CancellationToken cancellationToken
Task<CacheClearResult>
Limpia una caché con nombre. Devuelve null cuando no está registrada coincidencias name de caché (insensibles a mayúsculas y minúsculas); los fallos son Envuelto en el resultado en lugar de lanzado. Misma puerta de autenticación que Threading.CancellationToken).
CreateFileArchiveAsyncCreateFileArchiveRequest request
CancellationToken cancellationToken
Task<FileArchiveResult>
Construye un archivo (actualmente zip; formatos futuros en activo detrás del CreateFileArchiveRequest.Format enum) que contiene los registros de todos los registros carga útil de archivo para el par de tablas/columnas nombradas. Utiliza la misma cantidad por registro Cadena de permisos como Threading.CancellationToken) — no autorizada / perdida las filas se eliminan silenciosamente del archivo. Los nombres duplicados de archivos son desambiguado mediante sufijos ' (2)',' (3)', ... así el archivo nunca sobrescribe las entradas.
CreateRecordAsyncTableRecord record
CancellationToken cancellationToken
Task<CreateResponse>
Crea un nuevo registro en Dataverse.
DeleteRecordAsyncstring tableLogicalName
Guid id
CancellationToken cancellationToken
Task<DeleteResponse>
Elimina un registro de Dataverse por nombre de tabla e ID de registro.
DisassociateAsyncTableRecordReference record
string relationshipName
IEnumerable<TableRecordReference> relatedRecords
EntityRole? role
CancellationToken cancellationToken
Task<DisassociateResponse>
Elimina una asociación entre un registro y uno o más registros relacionados mediante una relación de muchos a muchos.
DownloadLocalizationSourceAsyncstring sourceId
string culture
CancellationToken cancellationToken
Task<LocalizationDownload>
Descargas las claves que una fuente aportó a una cultura durante la mayoría calentamiento reciente, como JSON en el mismo consumidor con forma de objeto anidado app.{culture}.json archivos utilizados. Destinado a la transferencia de traducción — Entrega el archivo a un traductor, recupera una versión traducida, y mételo una carpeta de localización donde sobrescribe la fuente original proporcionado para esas llaves.
DownloadMergedLocalizationsAsyncstring culture
CancellationToken cancellationToken
Task<LocalizationDownload>
Descarga las claves de localización fusionadas para una cultura: la post-fusión valor ganador para cada clave almacenada en la caché, independientemente de cuál La fuente lo proporcionó originalmente. Utiliza esto para una instantánea completa referencia (todo lo que el portal realmente servirá para esa cultura) en lugar de la visión por fuente anterior.
ExecuteAsyncOrganizationRequest request
CancellationToken cancellationToken
Task<OrganizationResponse>
Ejecuta una única solicitud de organización contra Dataverse.
ExecuteMultipleAsyncIEnumerable<OrganizationRequest> requests
bool returnResponses
CancellationToken cancellationToken
Task<List<OrganizationResponse>>
Ejecuta múltiples solicitudes de organización en una única transacción de base de datos. Si alguna petición falla, todos los cambios en el lote se revierten.
GetCacheNamesAsyncCancellationToken cancellationToken
Task<IReadOnlyList<string>>
Devuelve los nombres de cada lado Services.IClearableCachedel servidor , adecuado para una interfaz de administrador que quiere renderizar botones de limpieza por caché. Misma puerta de autenticación como Threading.CancellationToken) se aplica en el punto final HTTP.
GetFileInfoAsyncstring tableName
Guid recordId
string columnName
bool includeData
CancellationToken cancellationToken
Task<FileInfo>
Recupera información de archivos y, opcionalmente, el contenido binario de una columna de archivo o imagen en Dataverse.
GetFileInfosAsyncstring tableName
IEnumerable<Guid> recordIds
string columnName
bool includeData
CancellationToken cancellationToken
Task<IEnumerable<FileInfo>>
Recuperación por lotes de información de archivo para muchos registros de la misma tabla o columna en un solo viaje de ida y vuelta. Internamente ventila el disco por disco en paralelo y devuelve la lista combinada. La misma cadena de manejadores de permisos por registro se ejecuta que para la llamada de disco único; Las búsquedas fallidas se eliminan de la respuesta en lugar de suspendiendo todo el lote. Usado por el sistema 'Descargar todo' / 'Descargar seleccionado' de FileGrid para que el cliente pueda construir un zip sin disparar N solicitudes HTTP.
GetLocalizationOverviewAsyncCancellationToken cancellationToken
Task<LocalizationOverview>
Devuelve una instantánea dirigida al administrador de la canalización de localización de cadenas: la Configuración estática que impulsaba el calentamiento más los registros de carga por fuente producido por el calentamiento más reciente. Respalda a LocalizationAdmin componente en PowerPortalsPro.Web.Blazor.FluentUI. El punto final HTTP está bloqueado por [AuthorizeSystemAdmin].
GetMergedLocalizationEntriesAsyncstring culture
CancellationToken cancellationToken
Task<IReadOnlyList<MergedLocalizationEntry>>
Devuelve las claves de localización fusionadas de una cultura como una lista estructurada — cada Clave la caché que servirá, su valor ganador tras la fusión y qué fuente se suministró Ese valor. Mismos datos que Threading.CancellationToken) pero por clave anotado con su origen (archivo / recurso web / metadatos Dataverse) para que un administrador pueda Inspecciona la procedencia en una cuadrícula. Las entradas se ordenan por clave.
GetOrganizationSettingsAsyncCancellationToken cancellationToken
Task<OrganizationSettings>
Recupera la configuración organizacional obtenida del Dataverse Récord de la organización : DefaultCurrency — la moneda base de la organización, utilizada por create-mode editores (MoneyEdit) para mostrar el símbolo correcto en discos completamente nuevos. BlockedFileExtensions + MaxUploadFileSizeInBytes — carga de archivos las restricciones que los clientes reflejan para rechazar archivos inválidos antes del viaje de ida y vuelta. Sustituye el antiguo GetEnvironmentFileSettingsAsync — los dos campos de archivo ahora están expuestos a esta respuesta combinada.
GetTablePermissionsForCurrentUserAsyncstring tableLogicalName
CancellationToken cancellationToken
Task<TableSecurityPermission>
Devuelve la máscara combinada a nivel Models.TableSecurityPermission de tabla del usuario actual para tableLogicalName — la unión bit a bit de Leer / Crear / Escribir / Eliminar / Añadir / Anexar / Añadir A cualquier proveedor de permisos registrado permite para ese usuario en esa mesa. En el lado del servidor, esto delega a la caché ITablePermissionCache; el cliente WASM alcanza un punto final HTTP que llama a la misma caché en el servidor. Refleja el búsqueda en la caché de tabla NuevoRegistroBotón de la Cuadrícula de Blazor / SuprimirRegistroBotón de la Cuadrícula ya lo hacen directamente vía DI, y el nuevo valor que lleva GridDataResponse como TablePermissions — expuestos aquí para que los consumidores estén fuera del camino de la cuadrícula (personalizados barras de herramientas, interfaz condicional, puertas '¿Puede el usuario crear X?' en cualquier parte de la página) sí Llega a la misma respuesta sin lanzar una consulta en cuadrícula.
GetTablePermissionWebRolesAsyncGuid tablePermissionId
CancellationToken cancellationToken
Task<IReadOnlyList<Guid>>
Devuelve los ids de los roles web de Power Pages a los que se aplica un permiso de tabla, bajo enhanced autorización. Lee del propio registro del permiso, porque ahí es donde Power Pages los guarda: el mspp_entitypermission relación de la mesa virtual con mspp_webrole se nota vacío incluso cuando los roles están vinculados. Se ejecuta como usuario iniciado sesión, por lo que Dataverse aplica sus privilegios.
GetTranslationAvailabilityAsyncCancellationToken cancellationToken
Task<TranslationAvailability>
Devuelve si la función de localización-traducción es utilizable en el entorno actual: si el servicio de traducción de Azure está configurado, si la traducción gestionada se instala la solución y los idiomas objetivo candidatos (las culturas soportadas por el portal anotado con Azure-translatability). Respalda la decisión de la interfaz de LocalizationTranslator para mostrar el panel de traducción, un prompt de instalación o nada.
GetUserTablePermissionsAsyncstring tableLogicalName
CancellationToken cancellationToken
Task<UserTablePermissions>
Las operaciones del usuario actual en una tabla, junto con los permisos de columna, un registro crean comienzas con — qué columnas pueden establecer al crear, en lugar de las que Un TableRecord.ColumnPermissions registro existente dice que pueden cambiar. Lo que un formulario en modo de creación necesita para renderizar las columnas que el usuario puede no configurar como solo lectura.
RetrieveRecordAsyncstring tableLogicalName
Guid id
IEnumerable<string> columns
CancellationToken cancellationToken
Task<TableRecord>
Recupera un único registro de Dataverse por nombre de tabla e ID de registro.
RetrieveRecordsAsyncstring fetchXml
CancellationToken cancellationToken
Task<RetrieveRecordsResponse>
Recupera múltiples registros de Dataverse usando una consulta FetchXML. Soporta filtrado, ordenación, paginación, entidades enlazadas y consultas agregadas.
RetrieveTableHeadersAsyncCancellationToken cancellationToken
Task<IReadOnlyList<TableHeader>>
Recupera los metadatos a nivel identidad — lógico, esquema y nombre de visualización más unas cuantas banderas — para cada mesa del entorno. La contraparte barata de Threading.CancellationToken), para el Caso en el que un llamante necesita listar tablas en lugar de inspeccionar una. A El diseñador de consultas que llena un selector 'de' tendría que recuperar metadatos completos para cada tabla en el entorno, lo que cuesta decenas de segundos; es un viaje de ida y vuelta único, servido desde una caché en proceso después de La primera llamada. Devuelve todas las tablas, no un subconjunto filtrado por permisos — la misma postura que Threading.CancellationToken), que sirve a cualquier autenticado Llamar la forma de cualquier mesa. Los llamantes que necesiten una lista más estrecha deberían Filtra o TableHeader.IsValidForAdvancedFind aplica su Reglas propias.
RetrieveTableMetadataAsyncstring tableLogicalName
CancellationToken cancellationToken
Task<TableMetadata>
Recupera metadatos de tablas de Dataverse, incluyendo definiciones de columnas, relaciones y configuración de visualización.
RetrieveTableMetadataBatchAsyncIReadOnlyList<TableMetadataRequest> requests
CancellationToken cancellationToken
Task<IReadOnlyList<TableMetadata>>
Devuelve los metadatos de varias tablas en una sola llamada, cada una reducida a las columnas y relaciones sus nombres de petición. Para el que llama y quiere un poco de cada una de las muchas mesas. Resolver la pantalla El caso motivador es los nombres detrás de las relaciones de una tabla: las columnas de búsqueda Viven en las mesas al otro extremo de cada una, así que respondiendo a través Threading.CancellationToken) significa un viaje de ida y vuelta según la tabla relacionada, cada una devolviendo una tabla entera para leer una etiqueta. El estrechamiento cambia qué columnas regresan, no qué lleva cada una: una columna con nombre llega tan completamente descrito como lo haría en una lectura de tabla completa. Columnas al llamador puede que no se lean aquí exactamente como están allí, así que esto no es una forma Alrededor de los permisos de columna. Falta una tabla que el entorno no tenga —o que la petición se escriba mal— a partir del resultado en lugar de un error; corresponde los resultados por nombre de la tabla.
RetrieveViewMetadataAsyncGuid viewId
CancellationToken cancellationToken
Task<ViewMetadata>
Recupera metadatos de la vista de Dataverse, incluyendo la consulta FetchXML de la vista, columnas y configuración de visualización.
RetrieveViewsForTableAsyncstring tableLogicalName
CancellationToken cancellationToken
Task<IEnumerable<ViewMetadata>>
Recupera todos los registros de metadatos de la vista para una tabla. Usado por cuadrículas que necesitan enumerar las vistas disponibles (selector de vistas, resolución de vista predeterminada, etc.). La implementación del lado del servidor lee desde IViewMetadataCache en proceso; el cliente WASM accede a un endpoint HTTP que hace lo mismo en el servidor.
SetTablePermissionWebRolesAsyncGuid tablePermissionId
IReadOnlyCollection<Guid> webRoleIds
CancellationToken cancellationToken
Task<bool>
Sustituye los roles web de Power Pages a los que se aplica un permiso de tabla, bajo autorización mejorada. Escrito en el propio registro del permiso, que es lo que hace que Power Pages vuelva a sincronizar la seguridad roles emparejados con esos roles web — de modo que el cambio llega a los privilegios de Dataverse, normalmente dentro de un minuto. Una asociación a través de la relación entre las tablas virtuales no lo haría: parece guardada y no concede nada. Cada ID añadido debe ser un rol web del sitio del portal; uno de los Las listas de permisos ya se mantienen o se eliminan según se pide, incluso si ese rol web ya se ha establecido desde entonces Eliminado.
TranslateLocalizationFileAsyncTranslationRequest request
CancellationToken cancellationToken
Task<TranslationResult>
Traduce automáticamente un archivo de localización subido a uno o más idiomas destino a través de Azure Traductor, reutilizando la memoria de traducción de Dataverse y reportando cuántas cadenas había Recién traducido frente a reutilizado. Devuelve un archivo por idioma destino más un zip de todos.
UpdateRecordAsyncTableRecord record
CancellationToken cancellationToken
Task<UpdateResponse>
Actualiza un registro existente en Dataverse. Solo se envían las propiedades establecidas en el registro a Dataverse.
Nombre: AssociateAsync
Parámetros: TableRecordReference record
string relationshipName
IEnumerable<TableRecordReference> relatedRecords
EntityRole? role
CancellationToken cancellationToken
Tipo: Task<AssociateResponse>
Descripción: Asocia un registro con uno o más registros relacionados mediante una relación de muchos a muchos.
Nombre: ClearAllCachesAsync
Parámetros: CancellationToken cancellationToken
Tipo: Task<IReadOnlyList<CacheClearResult>>
Descripción: Limpia todos los servidores Services.IClearableCache (tabla / vista / privilegio metadatos, privilegios por usuario, configuración del archivo de entorno) y reconstruye el Localized-strings en caché atómicamente — los lectores continúan viendo lo que antes Datos cargados hasta que el nuevo estado esté completamente poblado. Las cachés perezosas se recargan en el Próxima petición que los necesite. El punto final HTTP detrás de esta llamada está bloqueado por [AuthorizeSystemAdmin]. Los llamantes directos del lado del servidor deberían Puerta apropiadamente en su propio límite.
Nombre: ClearCacheAsync
Parámetros: string name
CancellationToken cancellationToken
Tipo: Task<CacheClearResult>
Descripción: Limpia una caché con nombre. Devuelve null cuando no está registrada coincidencias name de caché (insensibles a mayúsculas y minúsculas); los fallos son Envuelto en el resultado en lugar de lanzado. Misma puerta de autenticación que Threading.CancellationToken).
Nombre: CreateFileArchiveAsync
Parámetros: CreateFileArchiveRequest request
CancellationToken cancellationToken
Tipo: Task<FileArchiveResult>
Descripción: Construye un archivo (actualmente zip; formatos futuros en activo detrás del CreateFileArchiveRequest.Format enum) que contiene los registros de todos los registros carga útil de archivo para el par de tablas/columnas nombradas. Utiliza la misma cantidad por registro Cadena de permisos como Threading.CancellationToken) — no autorizada / perdida las filas se eliminan silenciosamente del archivo. Los nombres duplicados de archivos son desambiguado mediante sufijos ' (2)',' (3)', ... así el archivo nunca sobrescribe las entradas.
Nombre: CreateRecordAsync
Parámetros: TableRecord record
CancellationToken cancellationToken
Tipo: Task<CreateResponse>
Descripción: Crea un nuevo registro en Dataverse.
Nombre: DeleteRecordAsync
Parámetros: string tableLogicalName
Guid id
CancellationToken cancellationToken
Tipo: Task<DeleteResponse>
Descripción: Elimina un registro de Dataverse por nombre de tabla e ID de registro.
Nombre: DisassociateAsync
Parámetros: TableRecordReference record
string relationshipName
IEnumerable<TableRecordReference> relatedRecords
EntityRole? role
CancellationToken cancellationToken
Tipo: Task<DisassociateResponse>
Descripción: Elimina una asociación entre un registro y uno o más registros relacionados mediante una relación de muchos a muchos.
Nombre: DownloadLocalizationSourceAsync
Parámetros: string sourceId
string culture
CancellationToken cancellationToken
Tipo: Task<LocalizationDownload>
Descripción: Descargas las claves que una fuente aportó a una cultura durante la mayoría calentamiento reciente, como JSON en el mismo consumidor con forma de objeto anidado app.{culture}.json archivos utilizados. Destinado a la transferencia de traducción — Entrega el archivo a un traductor, recupera una versión traducida, y mételo una carpeta de localización donde sobrescribe la fuente original proporcionado para esas llaves.
Nombre: DownloadMergedLocalizationsAsync
Parámetros: string culture
CancellationToken cancellationToken
Tipo: Task<LocalizationDownload>
Descripción: Descarga las claves de localización fusionadas para una cultura: la post-fusión valor ganador para cada clave almacenada en la caché, independientemente de cuál La fuente lo proporcionó originalmente. Utiliza esto para una instantánea completa referencia (todo lo que el portal realmente servirá para esa cultura) en lugar de la visión por fuente anterior.
Nombre: ExecuteAsync
Parámetros: OrganizationRequest request
CancellationToken cancellationToken
Tipo: Task<OrganizationResponse>
Descripción: Ejecuta una única solicitud de organización contra Dataverse.
Nombre: ExecuteMultipleAsync
Parámetros: IEnumerable<OrganizationRequest> requests
bool returnResponses
CancellationToken cancellationToken
Tipo: Task<List<OrganizationResponse>>
Descripción: Ejecuta múltiples solicitudes de organización en una única transacción de base de datos. Si alguna petición falla, todos los cambios en el lote se revierten.
Nombre: GetCacheNamesAsync
Parámetros: CancellationToken cancellationToken
Tipo: Task<IReadOnlyList<string>>
Descripción: Devuelve los nombres de cada lado Services.IClearableCachedel servidor , adecuado para una interfaz de administrador que quiere renderizar botones de limpieza por caché. Misma puerta de autenticación como Threading.CancellationToken) se aplica en el punto final HTTP.
Nombre: GetFileInfoAsync
Parámetros: string tableName
Guid recordId
string columnName
bool includeData
CancellationToken cancellationToken
Tipo: Task<FileInfo>
Descripción: Recupera información de archivos y, opcionalmente, el contenido binario de una columna de archivo o imagen en Dataverse.
Nombre: GetFileInfosAsync
Parámetros: string tableName
IEnumerable<Guid> recordIds
string columnName
bool includeData
CancellationToken cancellationToken
Tipo: Task<IEnumerable<FileInfo>>
Descripción: Recuperación por lotes de información de archivo para muchos registros de la misma tabla o columna en un solo viaje de ida y vuelta. Internamente ventila el disco por disco en paralelo y devuelve la lista combinada. La misma cadena de manejadores de permisos por registro se ejecuta que para la llamada de disco único; Las búsquedas fallidas se eliminan de la respuesta en lugar de suspendiendo todo el lote. Usado por el sistema 'Descargar todo' / 'Descargar seleccionado' de FileGrid para que el cliente pueda construir un zip sin disparar N solicitudes HTTP.
Nombre: GetLocalizationOverviewAsync
Parámetros: CancellationToken cancellationToken
Tipo: Task<LocalizationOverview>
Descripción: Devuelve una instantánea dirigida al administrador de la canalización de localización de cadenas: la Configuración estática que impulsaba el calentamiento más los registros de carga por fuente producido por el calentamiento más reciente. Respalda a LocalizationAdmin componente en PowerPortalsPro.Web.Blazor.FluentUI. El punto final HTTP está bloqueado por [AuthorizeSystemAdmin].
Nombre: GetMergedLocalizationEntriesAsync
Parámetros: string culture
CancellationToken cancellationToken
Tipo: Task<IReadOnlyList<MergedLocalizationEntry>>
Descripción: Devuelve las claves de localización fusionadas de una cultura como una lista estructurada — cada Clave la caché que servirá, su valor ganador tras la fusión y qué fuente se suministró Ese valor. Mismos datos que Threading.CancellationToken) pero por clave anotado con su origen (archivo / recurso web / metadatos Dataverse) para que un administrador pueda Inspecciona la procedencia en una cuadrícula. Las entradas se ordenan por clave.
Nombre: GetOrganizationSettingsAsync
Parámetros: CancellationToken cancellationToken
Tipo: Task<OrganizationSettings>
Descripción: Recupera la configuración organizacional obtenida del Dataverse Récord de la organización : DefaultCurrency — la moneda base de la organización, utilizada por create-mode editores (MoneyEdit) para mostrar el símbolo correcto en discos completamente nuevos. BlockedFileExtensions + MaxUploadFileSizeInBytes — carga de archivos las restricciones que los clientes reflejan para rechazar archivos inválidos antes del viaje de ida y vuelta. Sustituye el antiguo GetEnvironmentFileSettingsAsync — los dos campos de archivo ahora están expuestos a esta respuesta combinada.
Nombre: GetTablePermissionsForCurrentUserAsync
Parámetros: string tableLogicalName
CancellationToken cancellationToken
Tipo: Task<TableSecurityPermission>
Descripción: Devuelve la máscara combinada a nivel Models.TableSecurityPermission de tabla del usuario actual para tableLogicalName — la unión bit a bit de Leer / Crear / Escribir / Eliminar / Añadir / Anexar / Añadir A cualquier proveedor de permisos registrado permite para ese usuario en esa mesa. En el lado del servidor, esto delega a la caché ITablePermissionCache; el cliente WASM alcanza un punto final HTTP que llama a la misma caché en el servidor. Refleja el búsqueda en la caché de tabla NuevoRegistroBotón de la Cuadrícula de Blazor / SuprimirRegistroBotón de la Cuadrícula ya lo hacen directamente vía DI, y el nuevo valor que lleva GridDataResponse como TablePermissions — expuestos aquí para que los consumidores estén fuera del camino de la cuadrícula (personalizados barras de herramientas, interfaz condicional, puertas '¿Puede el usuario crear X?' en cualquier parte de la página) sí Llega a la misma respuesta sin lanzar una consulta en cuadrícula.
Nombre: GetTablePermissionWebRolesAsync
Parámetros: Guid tablePermissionId
CancellationToken cancellationToken
Tipo: Task<IReadOnlyList<Guid>>
Descripción: Devuelve los ids de los roles web de Power Pages a los que se aplica un permiso de tabla, bajo enhanced autorización. Lee del propio registro del permiso, porque ahí es donde Power Pages los guarda: el mspp_entitypermission relación de la mesa virtual con mspp_webrole se nota vacío incluso cuando los roles están vinculados. Se ejecuta como usuario iniciado sesión, por lo que Dataverse aplica sus privilegios.
Nombre: GetTranslationAvailabilityAsync
Parámetros: CancellationToken cancellationToken
Tipo: Task<TranslationAvailability>
Descripción: Devuelve si la función de localización-traducción es utilizable en el entorno actual: si el servicio de traducción de Azure está configurado, si la traducción gestionada se instala la solución y los idiomas objetivo candidatos (las culturas soportadas por el portal anotado con Azure-translatability). Respalda la decisión de la interfaz de LocalizationTranslator para mostrar el panel de traducción, un prompt de instalación o nada.
Nombre: GetUserTablePermissionsAsync
Parámetros: string tableLogicalName
CancellationToken cancellationToken
Tipo: Task<UserTablePermissions>
Descripción: Las operaciones del usuario actual en una tabla, junto con los permisos de columna, un registro crean comienzas con — qué columnas pueden establecer al crear, en lugar de las que Un TableRecord.ColumnPermissions registro existente dice que pueden cambiar. Lo que un formulario en modo de creación necesita para renderizar las columnas que el usuario puede no configurar como solo lectura.
Nombre: RetrieveRecordAsync
Parámetros: string tableLogicalName
Guid id
IEnumerable<string> columns
CancellationToken cancellationToken
Tipo: Task<TableRecord>
Descripción: Recupera un único registro de Dataverse por nombre de tabla e ID de registro.
Nombre: RetrieveRecordsAsync
Parámetros: string fetchXml
CancellationToken cancellationToken
Tipo: Task<RetrieveRecordsResponse>
Descripción: Recupera múltiples registros de Dataverse usando una consulta FetchXML. Soporta filtrado, ordenación, paginación, entidades enlazadas y consultas agregadas.
Nombre: RetrieveTableHeadersAsync
Parámetros: CancellationToken cancellationToken
Tipo: Task<IReadOnlyList<TableHeader>>
Descripción: Recupera los metadatos a nivel identidad — lógico, esquema y nombre de visualización más unas cuantas banderas — para cada mesa del entorno. La contraparte barata de Threading.CancellationToken), para el Caso en el que un llamante necesita listar tablas en lugar de inspeccionar una. A El diseñador de consultas que llena un selector 'de' tendría que recuperar metadatos completos para cada tabla en el entorno, lo que cuesta decenas de segundos; es un viaje de ida y vuelta único, servido desde una caché en proceso después de La primera llamada. Devuelve todas las tablas, no un subconjunto filtrado por permisos — la misma postura que Threading.CancellationToken), que sirve a cualquier autenticado Llamar la forma de cualquier mesa. Los llamantes que necesiten una lista más estrecha deberían Filtra o TableHeader.IsValidForAdvancedFind aplica su Reglas propias.
Nombre: RetrieveTableMetadataAsync
Parámetros: string tableLogicalName
CancellationToken cancellationToken
Tipo: Task<TableMetadata>
Descripción: Recupera metadatos de tablas de Dataverse, incluyendo definiciones de columnas, relaciones y configuración de visualización.
Nombre: RetrieveTableMetadataBatchAsync
Parámetros: IReadOnlyList<TableMetadataRequest> requests
CancellationToken cancellationToken
Tipo: Task<IReadOnlyList<TableMetadata>>
Descripción: Devuelve los metadatos de varias tablas en una sola llamada, cada una reducida a las columnas y relaciones sus nombres de petición. Para el que llama y quiere un poco de cada una de las muchas mesas. Resolver la pantalla El caso motivador es los nombres detrás de las relaciones de una tabla: las columnas de búsqueda Viven en las mesas al otro extremo de cada una, así que respondiendo a través Threading.CancellationToken) significa un viaje de ida y vuelta según la tabla relacionada, cada una devolviendo una tabla entera para leer una etiqueta. El estrechamiento cambia qué columnas regresan, no qué lleva cada una: una columna con nombre llega tan completamente descrito como lo haría en una lectura de tabla completa. Columnas al llamador puede que no se lean aquí exactamente como están allí, así que esto no es una forma Alrededor de los permisos de columna. Falta una tabla que el entorno no tenga —o que la petición se escriba mal— a partir del resultado en lugar de un error; corresponde los resultados por nombre de la tabla.
Nombre: RetrieveViewMetadataAsync
Parámetros: Guid viewId
CancellationToken cancellationToken
Tipo: Task<ViewMetadata>
Descripción: Recupera metadatos de la vista de Dataverse, incluyendo la consulta FetchXML de la vista, columnas y configuración de visualización.
Nombre: RetrieveViewsForTableAsync
Parámetros: string tableLogicalName
CancellationToken cancellationToken
Tipo: Task<IEnumerable<ViewMetadata>>
Descripción: Recupera todos los registros de metadatos de la vista para una tabla. Usado por cuadrículas que necesitan enumerar las vistas disponibles (selector de vistas, resolución de vista predeterminada, etc.). La implementación del lado del servidor lee desde IViewMetadataCache en proceso; el cliente WASM accede a un endpoint HTTP que hace lo mismo en el servidor.
Nombre: SetTablePermissionWebRolesAsync
Parámetros: Guid tablePermissionId
IReadOnlyCollection<Guid> webRoleIds
CancellationToken cancellationToken
Tipo: Task<bool>
Descripción: Sustituye los roles web de Power Pages a los que se aplica un permiso de tabla, bajo autorización mejorada. Escrito en el propio registro del permiso, que es lo que hace que Power Pages vuelva a sincronizar la seguridad roles emparejados con esos roles web — de modo que el cambio llega a los privilegios de Dataverse, normalmente dentro de un minuto. Una asociación a través de la relación entre las tablas virtuales no lo haría: parece guardada y no concede nada. Cada ID añadido debe ser un rol web del sitio del portal; uno de los Las listas de permisos ya se mantienen o se eliminan según se pide, incluso si ese rol web ya se ha establecido desde entonces Eliminado.
Nombre: TranslateLocalizationFileAsync
Parámetros: TranslationRequest request
CancellationToken cancellationToken
Tipo: Task<TranslationResult>
Descripción: Traduce automáticamente un archivo de localización subido a uno o más idiomas destino a través de Azure Traductor, reutilizando la memoria de traducción de Dataverse y reportando cuántas cadenas había Recién traducido frente a reutilizado. Devuelve un archivo por idioma destino más un zip de todos.
Nombre: UpdateRecordAsync
Parámetros: TableRecord record
CancellationToken cancellationToken
Tipo: Task<UpdateResponse>
Descripción: Actualiza un registro existente en Dataverse. Solo se envían las propiedades establecidas en el registro a Dataverse.