Ejemplo de operaciones de esquema de tabla de API web (C#)

Este ejemplo de .NET 6.0 muestra cómo realizar operaciones que crean y modifican definiciones de tablas, columnas y relaciones mediante 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 operaciones de esquema de tabla de la API web y utiliza las construcciones comunes de C# que se describen en Ejemplos de API web (C#).

Requisitos previos

Los siguientes elementos son necesarios para compilar y ejecutar este ejemplo:

  • 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/MetadataOperations/.

  3. Abrir el archivo MetadataOperations.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 para desarrolladores para encontrar esto.
    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/MetadataOperations/Program.cs

Demostraciones

Esta muestra tiene 11 regiones:

Sección 0: Crear un editor y una solución

Operaciones: cree un registro de solución y un registro de editor asociado.

Nota

Todos los componentes de la solución creados en este ejemplo se asociarán a la solución para que puedan exportarse. Para operaciones sin un mensaje con nombre, esta asociación se crea usando el encabezado de solicitud MSCRM.SolutionUniqueName que establece el nombre único de la solución establecido como valor. Todos los nombres de los componentes de la solución tienen el prefijo de personalización del editor.

Sección 1: Crear, recuperar y actualizar una tabla

Operaciones:

  1. Crear una nueva tabla propiedad del usuario sample_BankAccount enviando una solicitud POST a /EntityDefinitions.
  2. Recuperar la tabla creada enviando una solicitud GET a /EntityDefinitions(LogicalName='sample_bankaccount').
  3. Actualizar la tabla creada enviando una solicitud PUT a /EntityDefinitions(LogicalName='sample_bankaccount').

Sección 2: Crear, recuperar y actualizar columnas

Operaciones:

  1. Crear una nueva columna booleana sample_boolean para la tabla sample_BankAccount enviando una solicitud POST a /EntityDefinitions(LogicalName='sample_bankaccount')/Attributes.
  2. Recuperar la columna booleana sample_boolean enviando una solicitud GET a /EntityDefinitions(LogicalName='sample_bankaccount')/Attributes(LogicalName='sample_boolean').
  3. Actualizar la columna booleana sample_boolean enviando una solicitud PUT a /EntityDefinitions(LogicalName='sample_bankaccount')/Attributes(LogicalName='sample_boolean').
  4. Actualizar las etiquetas de opción para la columna booleana sample_boolean usando UpdateOptionValue Action.
  5. Crear y recuperar una nueva columna datetime sample_datetime para la tabla sample_BankAccount.
  6. Crear y recuperar una nueva columna decimal sample_decimal para la tabla sample_BankAccount.
  7. Crear y recuperar una nueva columna de enteros sample_integer para la tabla sample_BankAccount.
  8. Crear y recuperar una nueva columna de notas sample_memo para la tabla sample_BankAccount.
  9. Crear y recuperar una nueva columna de dinero sample_money para la tabla sample_BankAccount.
  10. Crear y recuperar una nueva columna de opción sample_choice para la tabla sample_BankAccount.
  11. Agregue una opción nueva a la columna sample_choice usando InsertOptionValue Action.
  12. Cambie el orden de las opciones de la columna sample_choice usando OrderOption Action.
  13. Elimine una de las opciones de la columna sample_choice usando DeleteOptionValue Action.
  14. Cree y recupere una nueva columna de selección múltiple sample_multiselectchoice para la tabla sample_BankAccount.
  15. Cree una nueva opción de Estado para la tabla sample_BankAccount usando InsertStatusValue Action.

Sección 3: Crear y usar OptionSet global

Operaciones:

  1. Cree una nueva opción global denominada sample_colors enviando una solicitud POST a /GlobalOptionSetDefinitions.
  2. Recupere la opción global sample_colors enviando una solicitud GET a /GlobalOptionSetDefinitions(<id value>).
  3. Cree una nueva columna de elección sample_colors para la tabla sample_BankAccount usando la elección global sample_colors enviando una solicitud POST a /EntityDefinitions(LogicalName='sample_bankaccount')/Attributes y asociándola a la elección global.

Sección 4: Crear relación con el cliente

Operaciones:

  1. Cree una nueva columna de cliente sample_customerid para la tabla sample_BankAccount usando CreateCustomerRelationships Action.
  2. Recupere la columna de cliente sample_customerid enviando una solicitud GET a /EntityDefinitions(LogicalName='sample_bankaccount')/Attributes(LogicalName='sample_customerid').
  3. Recupere el Relaciones creado para la columna del cliente enviando solicitudes GET a /RelationshipDefinitions(<id>)/Microsoft.Dynamics.CRM.OneToManyRelationshipMetadata .`.

Sección 5: Crear y recuperar una relación de uno a muchos

Operaciones:

  1. Verifique que la tabla sample_BankAccount es elegible para ser referenciada en una relación 1:N usando CanBeReferenced Function.
  2. Verifique que la tabla contact es elegible para hacer referencia a otras tablas en una relación 1:N usando CanBeReferencing Function.
  3. Identifique qué otras tablas pueden hacer referncia a la tabla sample_BankAccount en una relación 1:N usando GetValidReferencingEntities Function.
  4. Cree una relación 1:N entre las tablas sample_BankAccount y contact enviando una solicitud POST a /RelationshipDefinitions.
  5. Recupere la relación 1:N enviando una solicitud GET a /RelationshipDefinitions(<id>)/Microsoft.Dynamics.CRM.OneToManyRelationshipMetadata.

Sección 6: Crear y recuperar una relación de muchos a uno

Operaciones:

  1. Cree una relación N:1 entre las tablas sample_BankAccount y account enviando una solicitud POST a /RelationshipDefinitions.
  2. Recupere la relación N:1 enviando una solicitud GET a /RelationshipDefinitions(<id>)/Microsoft.Dynamics.CRM.OneToManyRelationshipMetadata.

Sección 7: Crear y recuperar una relación de muchos a muchos

Operaciones:

  1. Verifique que las tablas sample_BankAccount y contact son elegibles para participar en una relación N:N usando CanManyToMany Function.
  2. Verifique que las tablas sample_BankAccount y contact son elegibles para participar en una relación N:N usando GetValidManyToMany Function.
  3. Cree una relación N:N entre las tablas sample_BankAccount y contact enviando una solicitud POST a /RelationshipDefinitions.
  4. Recupere la relación N:N enviando una solicitud GET a /RelationshipDefinitions(<id>)/Microsoft.Dynamics.CRM.ManyToManyRelationshipMetadata.

Sección 8: Exportar una solución administrada

Operaciones: Exportar la solución creada en Sección 0: Crear publicador y solución que contiene los elementos creados en esta muestra usando el ExportSolution Action.

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. En este ejemplo, todos los registros se eliminan mediante una operación $batch.

Sección 10: Importar y eliminar una solución administrada

Operaciones:

  1. Importe la solución exportada en la Sección 8 utilizando ImportSolution Action.
  2. Consulte la tabla de soluciones para obtener el solutionid de la solución importada.
  3. Elimine la solución importada usando el solutionid.

Limpiar

Por defecto esta muestra eliminará 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

Usar la API web de Dataverse
Biblioteca de clases WebAPIService (C#)
Utilizar la API web con definiciones de tabla
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 funciones y acciones de la 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).