Share via


Ejemplo de funciones y acciones de la API web (C#)

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

  1. Clonar o descargar el repositorio de ejemplos de PowerApps.

  2. Localizar la carpeta /dataverse/webapi/C#-NETx/FunctionsAndActions/.

  3. Abrir el archivo FunctionsAndActions.sln usando Visual Studio 2022

  4. Editar el archivo appsettings.json para establecer los siguientes valores de propiedad:

    Property Instrucciones
    Url La URL para su entorno. Reemplazar el valor de marcador de posición https://yourorg.api.crm.dynamics.com con el valor para su entorno. Consulte Ver recursos de desarrollador para encontrar la URL de su entorno.
    UserPrincipalName Reemplazar el valor de marcador de posición you@yourorg.onmicrosoft.com con el valor de UPN que usa para acceder al entorno.
    Password Reemplazar el valor de marcador de posición yourPassword con la contraseña que utiliza.
  5. Guarde el archivo appsettings.json

  6. Presione 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 WhoAmI Function y recibir WhoAmIResponse ComplexType.

Sección 2: Funciones independientes FormatAddress

Operaciones:

  1. Enviar FormatAddress Function con parámetros para una dirección en los Estados Unidos. Recibir FormatAddressResponse ComplexType con la dirección formateada.
  2. Haga lo mismo con los parámetros para una dirección en Japón.

Sección 3: Funciones independientes InitializeFrom

Operaciones:

  1. Cree un registro de cuenta para que sea el registro original.
  2. Enviar InitializeFrom Function con parámetros que hacen referencia al registro de cuenta creado. Reciba una respuesta con datos para crear un nuevo registro de cuenta con valores del registro original.
  3. Cree un nuevo registro de cuenta utilizando los datos de InitializeFromResponse de 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: Enviar RetrieveCurrentOrganization Function y recibir RetrieveCurrentOrganization ComplexType.

Sección 5: Funciones independientes RetrieveTotalRecordCount

Operaciones: Enviar RetrieveTotalRecordCount Function con parámetros para las tablas account y contact y recibir RetrieveTotalRecordCountResponse ComplexType que contiene el número de registros en cada tabla.

Sección 6: Funciones vinculadas: IsSystemAdmin

Operaciones:

  1. Detectar si la organización tiene la API sample_IsSystemAdmin personalizada instalada.
  2. Si no, instale la solución en IsSystemAdminFunction_1_0_0_0_managed.zip con la API personalizada.
  3. Recuperar 10 registros de usuarios del sistema.
  4. Recorra los registros usando la función sample_IsSystemAdmin para detectar cuales tienen el Sistema Administrador rol de seguridad.

Sección 7: Acciones sin consolidar GrantAccess

Operaciones:

  1. Cree un registro de cuenta para compartir.
  2. Recupere un usuario habilitado que no sea el usuario actual.
  3. Utilice RetrievePrincipalAccess Function para determinar si el otro usuario tiene AccessRights'DeleteAccess' en el registro de cuenta creado.
  4. Si no tienen DeleteAccess, use GrantAccess Action para compartir este acceso con el otro usuario.
  5. Pruebe el acceso del usuario nuevamente usando RetrievePrincipalAccess para verificar que ahora tienen DeleteAccess.

Sección 8: Acciones vinculadas: AddPrivilegesRole

Operaciones:

  1. Cree un registro role EntityType asociado con la unidad de negocio de la persona que llama.
  2. Recupere el registro de roles con registros expandidos privilege EntityType para mostrar los privilegios incluidos por defecto.
  3. Recupere la información sobre los privilegiso prvCreateAccount y prvReadAccount.
  4. Use la información recuperada sobre esos privilegios para preparar una lista de instancias de RolePrivilege ComplexType para ser parámetros para AddPrivilegesRole.
  5. Envíe AddPrivilegesRole Action con los parámetros RolePrivilege.
  6. Recupere el registro de roles de nuevo con registros expandidos privilege EntityType para mostrar los privilegios ahora con los privilegios prvCreateAccount y prvReadAccount.

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#)

Nota

¿Puede indicarnos sus preferencias de idioma de documentación? Realice una breve encuesta. (tenga en cuenta que esta encuesta está en inglés)

La encuesta durará unos siete minutos. No se recopilan datos personales (declaración de privacidad).