Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Este ejemplo .NET 6.0 demuestra cómo realizar operaciones de datos comunes utilizando la API web de Dataverse.
Esta muestra utiliza el código auxiliar común de la biblioteca de clases WebAPIService (C#).
Nota
Este ejemplo implementa las operaciones de Dataverse y la salida de la consola detalladas en el Ejemplo de funciones y acciones de la API web y utiliza las construcciones comunes de C# que se describen en Ejemplos de API web (C#).
Requisitos previos
- Microsoft Visual Studio 2022.
- Acceso a Dataverse con privilegios para realizar operaciones de datos.
Cómo ejecutar esta muestra
Clonar o descargar el repositorio de ejemplos de PowerApps.
Localizar la carpeta /dataverse/webapi/C#-NETx/FunctionsAndActions/.
Abrir el archivo
FunctionsAndActions.slnusando Visual Studio 2022Editar el archivo
appsettings.jsonpara establecer los siguientes valores de propiedad:Property Instrucciones UrlLa URL para su entorno. Reemplazar el valor de marcador de posición https://yourorg.api.crm.dynamics.comcon el valor para su entorno. Consulte Ver recursos de desarrollador para encontrar la URL de su entorno.UserPrincipalNameReemplazar el valor de marcador de posición you@yourorg.onmicrosoft.comcon el valor de UPN que usa para acceder al entorno.PasswordReemplazar el valor de marcador de posición yourPasswordcon la contraseña que utiliza.Guarde el archivo
appsettings.jsonPresione F5 para ejecutar el ejemplo.
Código
El código para este ejemplo está aquí: PowerApps-Samples/dataverse/webapi/C#-NETx/FunctionsAndActions/Program.cs
Demostraciones
Este ejemplo tiene nueve regiones:
Sección 1: Funciones independientes WhoAmI
Operación: enviar la función WhoAmI y recibir WhoAmIResponse ComplexType.
Sección 2: Funciones independientes FormatAddress
Operaciones:
- Envíe la función FormatAddress con parámetros para una dirección en Estados Unidos. Reciba ComplexType de FormatAddressResponse con la dirección formateada.
- Haga lo mismo con los parámetros para una dirección en Japón.
Sección 3: Funciones independientes InitializeFrom
Operaciones:
- Cree un registro de cuenta para que sea el registro original.
- Envíe la función InitializeFrom con parámetros que hagan referencia al registro de cuenta creado. Reciba una respuesta con datos para crear un nuevo registro de cuenta con valores del registro original.
- Cree un nuevo registro de cuenta utilizando los datos de
InitializeFromResponsede modo que el nuevo registro se asocie con el registro original y posiblemente contenga datos copiados del registro original, según cómo se configuren las asignaciones de columnas para la organización.
Sección 4: Funciones independientes RetrieveCurrentOrganization
Operación: Envíe la función RetrieveCurrentOrganization y reciba RetrieveCurrentOrganization ComplexType.
Sección 5: Funciones independientes RetrieveTotalRecordCount
Operaciones: envíe la función RetrieveTotalRecordCount con parámetros para account y contact tablas y reciba RetrieveTotalRecordCountResponse ComplexType que contiene el número de registros de cada tabla.
Sección 6: Funciones vinculadas: IsSystemAdmin
Operaciones:
- Detectar si la organización tiene la API
sample_IsSystemAdminpersonalizada instalada. - Si no, instale la solución en
IsSystemAdminFunction_1_0_0_0_managed.zipcon la API personalizada. - Recuperar 10 registros de usuarios del sistema.
- Recorra los registros usando la función
sample_IsSystemAdminpara detectar cuales tienen el Sistema Administrador rol de seguridad.
Sección 7: Acciones sin consolidar GrantAccess
Operaciones:
- Cree un registro de cuenta para compartir.
- Recupere un usuario habilitado que no sea el usuario actual.
- Use la función RetrievePrincipalAccess para determinar si el otro usuario tiene AccessRights
'DeleteAccess'en el registro de la cuenta creado. - Si no tienen
DeleteAccess, use la acción GrantAccess para compartir este acceso con el otro usuario. - Pruebe el acceso del usuario nuevamente usando
RetrievePrincipalAccesspara verificar que ahora tienenDeleteAccess.
Sección 8: Acciones vinculadas: AddPrivilegesRole
Operaciones:
- Cree un registro EntityType de rol asociado a la unidad de negocio del autor de la llamada.
- Recupere el registro de rol con los registros expandidos de EntityType de privilegio para mostrar los privilegios incluidos de manera predeterminada.
- Recupere la información sobre los privilegiso
prvCreateAccountyprvReadAccount. - Utilice la información recuperada sobre esos privilegios para preparar una lista de instancias de ComplexType RolePrivilege que serán parámetros para
AddPrivilegesRole. - Envíe la acción AddPrivilegesRole con los parámetros
RolePrivilege. - Recupere el registro de rol de nuevo con el EntityType de privilegio expandido para mostrar los privilegios que incluyen ahora los privilegios
prvCreateAccountyprvReadAccount.
Sección 9: Eliminar registros de muestra
Operaciones: se agregó una referencia a cada registro creado en esta muestra a una lista a medida que se creaba. Esta sección envía una solicitud $batch para la eliminación del registro.
Limpiar
De forma predeterminada, esta muestra elimina todos los registros creados en ella. Si desea ver los registros creados después de completar la muestra, cambie la variable deleteCreatedRecords a false y se le pedirá que decida si desea eliminar los registros.
Consulte también
Realizar operaciones condicionales mediante la API web
Usar la API web de Dataverse
Biblioteca de clases WebAPIService (C#)
Ejemplos de la API web
Ejemplo de operaciones básicas de la API web (C#)
Ejemplo de datos de consulta de API web (C#)
Ejemplo de operaciones condicionales de la API web (C#)
Ejemplo de operaciones de esquema de tabla de API web (C#)
Ejemplo de operaciones en paralelo de la API web WebApiService (C#)
Ejemplo de operaciones paralelas de API web con componentes de flujo de datos TPL (C#)