Ejemplo de operaciones condicionales de API web (PowerShell)

En este ejemplo de PowerShell versión 7.4.0 se muestra cómo realizar operaciones que se basan condicionalmente en la versión de la fila de tabla contenida en el servidor de Microsoft Dataverse o que el cliente mantiene actualmente. En este ejemplo se implementan las operaciones de Dataverse y la salida de la consola detalladas en Ejemplo de operaciones condicionales de API web.

Esta muestra utiliza las Funciones auxiliares de PowerShell de la Web API de Dataverse 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

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

Comprobación de la instalación

  1. Inicie 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 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. La salida debe ser similar a la 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 de PowerShell

Cómo ejecutar esta muestra

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

  2. Abra el archivo ConditionalOperations.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.

Code

El código de este ejemplo se encuentra en: PowerApps-Samples/dataverse/webapi/PS/ConditionalOperations/ConditionalOperations.ps1

Demostraciones

Este ejemplo tiene cuatro regiones:

Sección 0: Crear registros de muestra

Operaciones: cree un registro de cuenta y recupérelo para capturar el valor ETag inicial.

Sección 1: GET condicional

Operaciones:

  • Intente recuperar la cuenta mediante el encabezado If-None-Match con el valor ETag inicial, demostrando que se retorna una respuesta 304 NotModified cuando el registro no ha cambiado.
  • Actualice el número de teléfono de la cuenta.
  • Intente recuperar la cuenta de nuevo usando el encabezado If-None-Match con el valor ETag inicial, demostrando que se devuelve el registro completo porque ha sido modificado.

Sección 2: Simultaneidad optimista al eliminar y actualizar

Operaciones:

  • Intente eliminar la cuenta usando el encabezado If-Match con el valor ETag inicial, demostrando que se devuelve un error 412 PreconditionFailed cuando el valor ETag no coincide.
  • Intente actualizar la cuenta mediante el encabezado If-Match con el valor ETag inicial, mostrando que se devuelve un 412 PreconditionFailed error cuando la ETag no coincide.
  • Actualice la cuenta usando el encabezado If-Match con el valor actual de ETag, demostrando que la actualización se realiza correctamente cuando el ETag coincide.
  • Recupere la cuenta para confirmar la actualización.

Sección 3: Eliminar registros de muestra

Operaciones: Se añadió una referencia de cada registro creado de esta muestra a una lista a medida que se iba creando. Esta sección recorre esa lista y elimina cada registro.

Limpieza

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

Usar la API web de Dataverse
Realización de operaciones condicionales mediante la API web
Inicio rápido de la API web con PowerShell y Visual Studio Code
Usar PowerShell y Visual Studio Code con la API Web de Dataverse
Ejemplos de la API Web
Ejemplo de operaciones condicionales de la API web
Ejemplo de operaciones condicionales de la API web (C#)
Ejemplo de operaciones condicionales de API web (JavaScript del lado cliente)