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:
- Inicio rápido de la API web con PowerShell y Visual Studio Code
- Use PowerShell y Visual Studio Code con la API web de Dataverse
Estos artículos tienen los mismos requisitos previos.
Instale o verifique que lo siguiente esté instalado
Instale Visual Studio Code. Consulte Descargar Visual Studio Code
Instalar la extensión de PowerShell para Visual Studio Code. Consulte PowerShell para Visual Studio Code
Instale PowerShell 7.4 o superior. Consulte Instalar PowerShell en Windows, Linux y macOS
Instale el módulo Az PowerShell versión 11.1.0 o superior. Consulte Instalar Azure PowerShell
Para actualizar una instalación existente a la última versión, use
Update-Module -Name Az -Force
Verificar instalación
Abra Visual Studio Code.
En el menú Terminal, seleccione Nueva terminal.
En el panel de navegación de Visual Studio Code, seleccione el icono para la extensión de PowerShell.
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
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/
, dondeyourorg.crm
es diferente. - Comprensión básica de lenguaje de scripting PowerShell
Cómo ejecutar esta muestra
Clonar o descargar el repositorio de ejemplos de PowerApps.
Abra el archivo
/dataverse/webapi/PS/MetadataOperations/MetadataOperationsSample.ps1
usando Visual Studio CodeEdite esta línea para usar la URL del entorno al que quiere conectarse:
Connect 'https://yourorg.crm.dynamics.com/' # change this
(Opcional) Configure la variable
$deleteCreatedRecords
a$false
si no desea eliminar los registros que crea esta muestra.Presione F5 para ejecutar el ejemplo.
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:
- Crear una nueva tabla propiedad del usuario
sample_BankAccount
enviando una solicitudPOST
a/EntityDefinitions
. - Recuperar la tabla creada enviando una solicitud
GET
a/EntityDefinitions(LogicalName='sample_bankaccount')
. - Actualizar la tabla creada enviando una solicitud
PUT
a/EntityDefinitions(LogicalName='sample_bankaccount')
.
Sección 2: Crear, recuperar y actualizar columnas
Operaciones:
- Intente recuperar una columna booleana
sample_boolean
enviando una solicitudGET
a/EntityDefinitions(LogicalName='sample_bankaccount')/Attributes(LogicalName='sample_boolean')
. - Si la columna aún no existe, cree una nueva columna booleana
sample_boolean
para la tablasample_BankAccount
enviando una solicitudPOST
a/EntityDefinitions(LogicalName='sample_bankaccount')/Attributes
. - Actualizar la columna booleana
sample_boolean
enviando una solicitudPUT
a/EntityDefinitions(LogicalName='sample_bankaccount')/Attributes(LogicalName='sample_boolean')
. - Actualice las etiquetas de opción para la columna booleana
sample_boolean
mediante la acción UpdateOptionValue. - Intente recuperar una columna de fecha y hora
sample_datetime
para la tablasample_BankAccount
y créela si no existe. - Intente recuperar una columna decimal
sample_decimal
para la tablasample_BankAccount
y créela si no existe. - Intente recuperar una columna entero
sample_integer
para la tablasample_BankAccount
y créela si no existe. - Intente recuperar una columna memorándum
sample_memo
para la tablasample_BankAccount
y créela si no existe. - Intente recuperar una columna dinero
sample_money
para la tablasample_BankAccount
y créela si no existe. - Intente recuperar una columna elección
sample_choice
para la tablasample_BankAccount
y créela si no existe. - Agregue una nueva opción a la columna
sample_choice
usando la acción InsertOptionValue. - Cambie el orden de las opciones de la columna
sample_choice
usando la acción OrderOption. - Elimina una de las opciones de la columna
sample_choice
usando la acción DeleteOptionValue. - Intente recuperar una columna de elección múltiple
sample_multiselectchoice
para la tablasample_BankAccount
y créela si no existe. - 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:
- Cree una nueva opción global denominada
sample_colors
enviando una solicitudPOST
a/GlobalOptionSetDefinitions
. - Recupere la opción global
sample_colors
enviando una solicitudGET
a/GlobalOptionSetDefinitions(<id value>)
. - Cree una nueva columna de elección
sample_colors
para la tablasample_BankAccount
usando la elección globalsample_colors
enviando una solicitudPOST
a/EntityDefinitions(LogicalName='sample_bankaccount')/Attributes
y asociándola a la elección global.
Sección 4: Crear relación con el cliente
Operaciones:
- Cree una nueva columna de cliente
sample_customerid
para la tablasample_BankAccount
usando la acción CreateCustomerRelationships. - Recupere la columna de cliente
sample_customerid
enviando una solicitudGET
a/EntityDefinitions(LogicalName='sample_bankaccount')/Attributes(LogicalName='sample_customerid')
. - 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:
- Verifique que la tabla
sample_BankAccount
sea elegible para ser referenciada en una relación de 1:N usando la función CanBeReferenced. - Verifique que la tabla
contact
sea elegible para referenciar otras tablas en una relación de 1:N usando la función CanBeReferencing. - Identifique qué otras tablas puede referenciar la tabla
sample_BankAccount
en una relación de 1:N usando la función GetValidReferencingEntities. - Cree una relación 1:N entre las tablas
sample_BankAccount
ycontact
enviando una solicitudPOST
a/RelationshipDefinitions
. - 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:
- Cree una relación N:1 entre las tablas
sample_BankAccount
yaccount
enviando una solicitudPOST
a/RelationshipDefinitions
. - 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:
- Verifique que las tablas
sample_BankAccount
ycontact
sean elegibles para participar en una relación de N:N usando la función CanManyToMany. - Verifique que las tablas
sample_BankAccount
ycontact
sean elegibles para participar en una relación de N:N usando la función GetValidManyToMany. - Cree una relación N:N entre las tablas
sample_BankAccount
ycontact
enviando una solicitudPOST
a/RelationshipDefinitions
. - 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:
- Importe la solución exportada en la Sección 8 usando la acción ImportSolution.
- Consulte la tabla de soluciones para obtener el
solutionid
de la solución importada. - 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).