Compartir a través de


Ejemplo de operaciones de esquema de tabla de API web (PowerShell)

Este ejemplo de PowerShell demuestra cómo realizar operaciones que crean y modifican definiciones de tablas, columnas y relaciones mediante la Web API de Dataverse.

Este ejemplo implementa las operaciones de Dataverse y resultados de la consola que se detallan en Ejemplo de operaciones de esquema de tabla de Web API y utiliza Dataverse Web API PowerShell. Funciones auxiliares para gestionar la autenticación y proporcionar funciones reutilizables para realizar operaciones comunes. Se hace referencia a estos scripts utilizando abastecimiento de puntos con las siguientes líneas:

. $PSScriptRoot\..\Core.ps1
. $PSScriptRoot\..\TableOperations.ps1
. $PSScriptRoot\..\CommonFunctions.ps1
. $PSScriptRoot\..\MetadataOperations.ps1

Nota

Esta muestra debería funcionar con Windows, Linux y macOS, pero solo se ha probado en Windows.

Requisitos previos

Antes de ejecutar este ejemplo, debe leer estos artículos que explican los conceptos y patrones utilizados en estos ejemplos:

Estos artículos tienen los mismos requisitos previos.

Instale o verifique que lo siguiente esté instalado

Verificar instalación

  1. Abra Visual Studio Code.

  2. En el menú Terminal, seleccione Nueva terminal.

  3. En el panel de navegación de Visual Studio Code, seleccione el icono para la extensión de PowerShell.

  4. Copie y pegue el script siguiente en la ventana de la terminal de Visual Studio Code:

    Write-Host 'PowerShell Version:'$PSVersionTable.PSVersion.ToString()
    Write-Host 'PowerShell Az version:'(Get-InstalledModule Az).Version
    
  5. Presione Entrar. El resultado debería similar al siguiente:

    PowerShell Version: 7.4.0
    PowerShell Az version: 11.1.0
    

Si no ve resultados como este, instale o actualice los requisitos previos.

También necesitará

  • Una cuenta de usuario válida para un entorno de Dataverse
  • La dirección URL al entorno de Dataverse al que quiere conectarse. Consulte Ver recursos para desarrolladores para saber cómo encontrarlo. Se parece a esto: https://yourorg.crm.dynamics.com/, donde yourorg.crm es diferente.
  • Comprensión básica de lenguaje de scripting PowerShell

Cómo ejecutar esta muestra

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

  2. Abra el archivo /dataverse/webapi/PS/MetadataOperations/MetadataOperationsSample.ps1 usando Visual Studio Code

  3. Edite esta línea para usar la URL del entorno al que quiere conectarse:

    Connect 'https://yourorg.crm.dynamics.com/' # change this

  4. (Opcional) Configure la variable $deleteCreatedRecords a $false si no desea eliminar los registros que crea esta muestra.

  5. Presione F5 para ejecutar el ejemplo.

  6. La primera vez que ejecuta el ejemplo se abre una ventana del navegador. En la ventana del navegador, ingrese o seleccione las credenciales que desea usar para autenticarse.

Para conectarse como un usuario diferente, ejecute el Comando Disconnect-AzAccount e inténtelo de nuevo.

Código

El código para este ejemplo está en: PowerApps-Samples/dataverse/webapi/PS/MetadataOperations/MetadataOperationsSample.ps1

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. Intente recuperar una columna booleana sample_boolean enviando una solicitud GET a /EntityDefinitions(LogicalName='sample_bankaccount')/Attributes(LogicalName='sample_boolean').
  2. Si la columna aún no existe, cree una nueva columna booleana sample_boolean para la tabla sample_BankAccount enviando una solicitud POST a /EntityDefinitions(LogicalName='sample_bankaccount')/Attributes.
  3. Actualizar la columna booleana sample_boolean enviando una solicitud PUT a /EntityDefinitions(LogicalName='sample_bankaccount')/Attributes(LogicalName='sample_boolean').
  4. Actualice las etiquetas de opción para la columna booleana sample_boolean mediante la acción UpdateOptionValue.
  5. Intente recuperar una columna de fecha y hora sample_datetime para la tabla sample_BankAccount y créela si no existe.
  6. Intente recuperar una columna decimal sample_decimal para la tabla sample_BankAccount y créela si no existe.
  7. Intente recuperar una columna entero sample_integer para la tabla sample_BankAccount y créela si no existe.
  8. Intente recuperar una columna memorándum sample_memo para la tabla sample_BankAccount y créela si no existe.
  9. Intente recuperar una columna dinero sample_money para la tabla sample_BankAccount y créela si no existe.
  10. Intente recuperar una columna elección sample_choice para la tabla sample_BankAccount y créela si no existe.
  11. Agregue una nueva opción a la columna sample_choice usando la acción InsertOptionValue.
  12. Cambie el orden de las opciones de la columna sample_choice usando la acción OrderOption.
  13. Elimina una de las opciones de la columna sample_choice usando la acción DeleteOptionValue.
  14. Intente recuperar una columna de elección múltiple sample_multiselectchoice para la tabla sample_BankAccount y créela si no existe.
  15. Cree una nueva opción de Estado para la tabla sample_BankAccount usando la acción InsertStatusValue.

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 la acción CreateCustomerRelationships.
  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 sea elegible para ser referenciada en una relación de 1:N usando la función CanBeReferenced.
  2. Verifique que la tabla contact sea elegible para referenciar otras tablas en una relación de 1:N usando la función CanBeReferencing.
  3. Identifique qué otras tablas puede referenciar la tabla sample_BankAccount en una relación de 1:N usando la función GetValidReferencingEntities.
  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 sean elegibles para participar en una relación de N:N usando la función CanManyToMany.
  2. Verifique que las tablas sample_BankAccount y contact sean elegibles para participar en una relación de N:N usando la función GetValidManyToMany.
  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: Exporte la solución creada en Sección 0: Crear editor y solución que contiene los elementos creados en este ejemplo usando la Acción ExportSolution.

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, los registros se eliminan en el orden inverso al que se crearon.

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

Operaciones:

  1. Importe la solución exportada en la Sección 8 usando la acción ImportSolution.
  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
Utilizar la API web con definiciones de tabla
Ejemplos de la API web
Ejemplo de operaciones básicas de la API web (PowerShell)

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