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
IPowerPortalsProServicedirectamente. LosRecordContextcomponentes ,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 porAddPowerPortalsProWebServer) — se ejecuta en proceso, se comunica directamente con Dataverse a través deIOrganizationService, y aplica tusITablePermissionProviderregistros antes de cualquier lectura o escritura. Seleccionado cuando la página se renderiza bajoInteractiveServerRenderModeo SSR estático. - Implementación cliente (
PowerPortalsPro.Web.Client, registrada porAddPowerPortalsProWebClient) — 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.
// usePowerPortalsPro() devuelve el cliente tipado que el framework despacha
// cada llamada CRUD a pasar. El objeto 'ppp' expone recuperar / crear /
// actualizar / eliminar / asociar / ejecutarMúltiples métodos / metadatos / archivos
// frente al entorno Dataverse configurado.
import { usePowerPortalsPro } from '@powerportalspro/react';
function MyComponent() {
const { ppp } = usePowerPortalsPro();
// ...
}[Inject]
private IPowerPortalsProService _powerPortalsProService { get; set; } = null!;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.
// Recuperar todas las columnas
const account = await ppp.retrieveRecordAsync('account', accountId);
// Recuperar solo columnas específicas
const account = await ppp.retrieveRecordAsync('account', accountId, [
'name', 'telephone1', 'address1_city',
]);// Recuperar todas las columnas
var account = await _powerPortalsProService.RetrieveRecordAsync("account", accountId);
// Recuperar solo columnas específicas
var account = await _powerPortalsProService.RetrieveRecordAsync("account", accountId,
new[] { "name", "telephone1", "address1_city" });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.
const fetchXml = `<fetch>
<entity name='contact'>
<attribute name='fullname' />
<attribute name='emailaddress1' />
<filter>
<condition attribute='parentcustomerid' operator='eq' value='...' />
</filter>
<order attribute='fullname' />
</entity>
</fetch>`;
const response = await ppp.retrieveRecordsAsync(fetchXml);
for (const record of response.tableRecords) {
// Procesar cada registro
}var fetchXml = @"<fetch>
<entity name='contact'>
<attribute name='fullname' />
<attribute name='emailaddress1' />
<filter>
<condition attribute='parentcustomerid' operator='eq' value='...' />
</filter>
<order attribute='fullname' />
</entity>
</fetch>";
var response = await _powerPortalsProService.RetrieveRecordsAsync(fetchXml);
foreach (var record in response.TableRecords)
{
// Procesar cada registro
}Creación de un Registro
Úsalo CreateRecordAsync para crear un nuevo registro en Dataverse. La respuesta contiene el ID del registro recién creado.
// TableRecord utiliza un mapa de 'propiedades' de objetos ColumnValue tipados con clave
// por nombre de columna. El helper createTableRecord construye la forma del alambre y
// sella un '_idForCreate' temporal para que las referencias entre registros puedan resolverse
// dentro de un solo lote Crear + Asociar antes de que el servidor asigne el
// Real ID.
import { createTableRecord } from '@powerportalspro/react';
const newContact = createTableRecord('contact', {
firstname: { type: 'string', value: 'John' },
lastname: { type: 'string', value: 'Doe' },
});
const response = await ppp.createRecordAsync(newContact);
const newRecordId = response.id;var newContact = new TableRecord { TableName = "contact" };
newContact["firstname"] = new StringValue("John");
newContact["lastname"] = new StringValue("Doe");
var response = await _powerPortalsProService.CreateRecordAsync(newContact);
var newRecordId = response.Id;Actualización de un registro
Úsalo UpdateRecordAsync para actualizar un registro existente. Solo las propiedades establecidas en el TableRecord se envían a Dataverse.
const recordToUpdate = createTableRecord('contact', {
telephone1: { type: 'string', value: '555-1234' },
}, { id: contactId });
await ppp.updateRecordAsync(recordToUpdate);var recordToUpdate = new TableRecord
{
TableName = "contact",
Id = contactId
};
recordToUpdate["telephone1"] = new StringValue("555-1234");
await _powerPortalsProService.UpdateRecordAsync(recordToUpdate);Eliminar un registro
Úsalo DeleteRecordAsync para eliminar un registro por nombre de la tabla e ID.
await ppp.deleteRecordAsync('contact', contactId);await _powerPortalsProService.DeleteRecordAsync("contact", contactId);Registros asociados
Utiliza AssociateAsync y DisassociateAsync gestiona relaciones de muchos-a-muchos entre registros.
// Asociado
const account = { tableName: 'account', id: accountId };
const regions = [
{ tableName: 'ppp_region', id: regionId1 },
{ tableName: 'ppp_region', id: regionId2 },
];
await ppp.associateAsync(account, 'ppp_Account_ppp_Region_ppp_Region', regions);
// Disociación
await ppp.disassociateAsync(account, 'ppp_Account_ppp_Region_ppp_Region', regions);// Asociado
var account = new TableRecordReference("account", accountId);
var regions = new List<TableRecordReference>
{
new TableRecordReference("ppp_region", regionId1),
new TableRecordReference("ppp_region", regionId2),
};
await _powerPortalsProService.AssociateAsync(account, "ppp_Account_ppp_Region_ppp_Region", regions);
// Disociación
await _powerPortalsProService.DisassociateAsync(account, "ppp_Account_ppp_Region_ppp_Region", regions);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.
// Ejecuta múltiples solicitudes en una sola transacción. Cada solicitud es un objeto de unión etiquetada discriminado por 'tipo'.
const requests = [
{ type: 'create', record: contact },
{ type: 'update', record: account },
];
const responses = await ppp.executeMultipleAsync(requests, { returnResponses: true });// Ejecutar múltiples solicitudes en una sola transacción
var requests = new List<OrganizationRequest>
{
new CreateRequest(contact),
new UpdateRequest(account),
};
var responses = await _powerPortalsProService.ExecuteMultipleAsync(requests, returnResponses: true);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.
const tableMetadata = await ppp.retrieveTableMetadataAsync('contact');
const viewMetadata = await ppp.retrieveViewMetadataAsync(viewId);var tableMetadata = await _powerPortalsProService.RetrieveTableMetadataAsync("contact");
var viewMetadata = await _powerPortalsProService.RetrieveViewMetadataAsync(viewId);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.
// Obtener solo metadatos de archivos
const fileInfo = await ppp.getFileInfoAsync('contact', contactId, 'ppp_contract');
// Obtener metadatos de archivos y contenido binario
const fileWithData = await ppp.getFileInfoAsync(
'contact', contactId, 'ppp_contract', { includeData: true },
);
const bytes = fileWithData.fileData;// Obtener solo metadatos de archivos
var fileInfo = await _powerPortalsProService.GetFileInfoAsync("contact", contactId, "ppp_contract");
// Obtener metadatos de archivos y contenido binario
var fileWithData = await _powerPortalsProService.GetFileInfoAsync("contact", contactId, "ppp_contract", includeData: true);
var bytes = fileWithData.FileData;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. EsCallerIdel 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 enPowerPortalsPro.Xrm.Extensions) — limpiaCallerId, por lo que las llamadas se ejecutan como el usuario de la aplicación configurado enConnectionOptions. 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 unsystemuserregistro.
@using PowerPortalsPro.Dataverse.Linq
@using PowerPortalsPro.Xrm.Extensions
@using PowerPortalsPro.Xrm.Services
@inject IOrganizationServiceProvider _organizationServiceProvider
@code {
private async Task LoadAsync()
{
// Runs as the signed-in user — Dataverse enforces their privileges.
using var service = _organizationServiceProvider.GetOrganizationService();
var contacts = await service.Queryable("contact")
.Where(c => c.GetAttributeValue<string>("lastname") == "Smith")
.ToListAsync();
}
}
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
ITablePermissionProvidertu portal — eso se aplica a las llamadas que pasan porIPowerPortalsProService.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 |
|---|---|---|---|
AssociateAsync | TableRecordReference 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. |
ClearAllCachesAsync | CancellationToken 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. |
ClearCacheAsync | string 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). |
CreateFileArchiveAsync | CreateFileArchiveRequest 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 |
CreateRecordAsync | TableRecord record CancellationToken cancellationToken | Task<CreateResponse> | Crea un nuevo registro en Dataverse. |
DeleteRecordAsync | string tableLogicalName Guid id CancellationToken cancellationToken | Task<DeleteResponse> | Elimina un registro de Dataverse por nombre de tabla e ID de registro. |
DisassociateAsync | TableRecordReference 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. |
DownloadLocalizationSourceAsync | string 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 |
DownloadMergedLocalizationsAsync | string 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. |
ExecuteAsync | OrganizationRequest request CancellationToken cancellationToken | Task<OrganizationResponse> | Ejecuta una única solicitud de organización contra Dataverse. |
ExecuteMultipleAsync | IEnumerable<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. |
GetCacheNamesAsync | CancellationToken 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. |
GetFileInfoAsync | string 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. |
GetFileInfosAsync | string 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. |
GetLocalizationOverviewAsync | CancellationToken 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 |
GetMergedLocalizationEntriesAsync | string 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. |
GetOrganizationSettingsAsync | CancellationToken cancellationToken | Task<OrganizationSettings> | Recupera la configuración organizacional obtenida del Dataverse Récord
|
GetTablePermissionsForCurrentUserAsync | string 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 |
GetTablePermissionWebRolesAsync | Guid 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. |
GetTranslationAvailabilityAsync | CancellationToken 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 |
GetUserTablePermissionsAsync | string 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. |
RetrieveRecordAsync | string tableLogicalName Guid id IEnumerable<string> columns CancellationToken cancellationToken | Task<TableRecord> | Recupera un único registro de Dataverse por nombre de tabla e ID de registro. |
RetrieveRecordsAsync | string 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. |
RetrieveTableHeadersAsync | CancellationToken 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. 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. 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. |
RetrieveTableMetadataAsync | string tableLogicalName CancellationToken cancellationToken | Task<TableMetadata> | Recupera metadatos de tablas de Dataverse, incluyendo definiciones de columnas, relaciones y configuración de visualización. |
RetrieveTableMetadataBatchAsync | IReadOnlyList<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. Threading.CancellationToken) significa un viaje de ida y vuelta según la tabla relacionada, cada una devolviendo una tabla entera para leer una etiqueta. |
RetrieveViewMetadataAsync | Guid 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. |
RetrieveViewsForTableAsync | string 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 |
SetTablePermissionWebRolesAsync | Guid 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. |
TranslateLocalizationFileAsync | TranslationRequest 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. |
UpdateRecordAsync | TableRecord record CancellationToken cancellationToken | Task<UpdateResponse> | Actualiza un registro existente en Dataverse. Solo se envían las propiedades establecidas en el registro a Dataverse. |
AssociateAsyncstring relationshipName
IEnumerable<TableRecordReference> relatedRecords
EntityRole? role
CancellationToken cancellationToken
ClearAllCachesAsyncServices.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. ClearCacheAsyncCancellationToken cancellationToken
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).CreateFileArchiveAsyncCancellationToken cancellationToken
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 CreateRecordAsyncCancellationToken cancellationToken
DeleteRecordAsyncGuid id
CancellationToken cancellationToken
DisassociateAsyncstring relationshipName
IEnumerable<TableRecordReference> relatedRecords
EntityRole? role
CancellationToken cancellationToken
DownloadLocalizationSourceAsyncstring culture
CancellationToken cancellationToken
DownloadMergedLocalizationsAsyncCancellationToken cancellationToken
ExecuteAsyncCancellationToken cancellationToken
ExecuteMultipleAsyncbool returnResponses
CancellationToken cancellationToken
GetCacheNamesAsyncServices.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.GetFileInfoAsyncGuid recordId
string columnName
bool includeData
CancellationToken cancellationToken
GetFileInfosAsyncIEnumerable<Guid> recordIds
string columnName
bool includeData
CancellationToken cancellationToken
GetLocalizationOverviewAsyncGetMergedLocalizationEntriesAsyncCancellationToken cancellationToken
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.GetOrganizationSettingsAsync-
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.
GetTablePermissionsForCurrentUserAsyncCancellationToken cancellationToken
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 GetTablePermissionWebRolesAsyncCancellationToken cancellationToken
GetTranslationAvailabilityAsyncGetUserTablePermissionsAsyncCancellationToken cancellationToken
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.RetrieveRecordAsyncGuid id
IEnumerable<string> columns
CancellationToken cancellationToken
RetrieveRecordsAsyncCancellationToken cancellationToken
RetrieveTableHeadersAsyncThreading.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. 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. RetrieveTableMetadataAsyncCancellationToken cancellationToken
RetrieveTableMetadataBatchAsyncCancellationToken cancellationToken
Threading.CancellationToken) significa un viaje de ida y vuelta según la tabla relacionada, cada una devolviendo una tabla entera para leer una etiqueta. RetrieveViewMetadataAsyncCancellationToken cancellationToken
RetrieveViewsForTableAsyncCancellationToken cancellationToken
SetTablePermissionWebRolesAsyncIReadOnlyCollection<Guid> webRoleIds
CancellationToken cancellationToken
TranslateLocalizationFileAsyncCancellationToken cancellationToken
UpdateRecordAsyncCancellationToken cancellationToken
