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 los resultados de la consola detallados en Ejemplo de operaciones de esquema de tabla de Web API y emplea las funciones auxiliares de Dataverse Web API PowerShell para gestionar la autenticación y proporcionar funciones reutilizables que permitan 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

Este ejemplo debe 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 Nuevo terminal.

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

  4. Copie y pegue el siguiente script en la ventana de 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 del 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 mediante 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: crear 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 componentes de la solución tienen sus nombres prefijados con el prefijo de personalización del publicador.

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 de tipo memo sample_memo para la tabla sample_BankAccount y crearla 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 las relaciones creadas para la columna de cliente mediante el envío de solicitudes de 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 GET solicitud 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 mediante el envío de una solicitud de 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 GET solicitud 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
Uso de la API web con definiciones de tabla
Ejemplos de la API Web
Ejemplo de operaciones básicas de la API web (PowerShell)
Ejemplo de búsqueda de varias tablas de api web (PowerShell)