Ejemplo: Operaciones de imagen usando la SDK de Dataverse para .NET

Este ejemplo .NET 6.0 demuestra cómo realizar operaciones con columnas de imagen utilizando la SDK web de Dataverse para .NET.

Este ejemplo usa Microsoft.PowerPlatform.Dataverse.Client.ServiceClient.

Requisitos previos

  • Microsoft Visual Studio 2022
  • Accesa a Dataverse con Administrador del sistema o privilegios de personalizador del sistema.

Cómo ejecutar el ejemplo

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

  2. Abra el archivo PowerApps-Samples\dataverse\orgsvc\C#-NETCore\ImageOperations\ImageOperations.sln usando Visual Studio 2022.

  3. Edite el archivo appsettings.json. Establezca los parámetros Url y Username de la cadena de conexión según corresponda para su entorno de prueba.

    La URL del entorno se pueden encontrar en el centro de administración Power Platform. Tiene la forma https://<environment-name>.crm.dynamics.com.

  4. Cree la solución y luego ejecute el proyecto deseado.

Cuando se ejecute el ejemplo, se le solicitará en el navegador predeterminado que seleccione una cuenta de usuario del entorno e introduzca una contraseña. Para evitar tener que hacer esto cada vez que ejecuta un ejemplo, inserte un parámetro de contraseña en la cadena de conexión en el archivo appsettings.json. Por ejemplo:

{
"ConnectionStrings": {
    "default": "AuthType=OAuth;Url=https://myorg.crm.dynamics.com;Username=someone@myorg.onmicrosoft.com;Password=mypassword;RedirectUri=http://localhost;AppId=51f81489-12ee-4a9e-aaae-a2591f45987d;LoginPrompt=Auto"
  }
}

Sugerencia

Puede establecer una variable de entorno de usuario denominada DATAVERSE_APPSETTINGS en la ruta del archivo appsettings.json almacenado en cualquier lugar de su ordenador. Los ejemplos utilizarán ese archivo de configuración de aplicaciones si la variable de entorno existe y no es nula. Asegúrese de cerrar la sesión y volver a iniciarla después de definir la variable para que surta efecto. Para establecer una variable de entorno, vaya a Configuración > Sistema > Acerca de, seleccione Configuración avanzada del sistema y luego elija Variables de entorno.

Salida de muestra

El resultado del ejemplo deberá ser ahora similar a esto:

Creating image column named 'sample_ImageColumn' on the account table ...
Created image column named 'sample_ImageColumn' in the account table.
Create 5 records while CanStoreFullImage is false.
        Created account: 'CanStoreFullImage false 144x144.png'
        Created account: 'CanStoreFullImage false 144x400.png'
        Created account: 'CanStoreFullImage false 400x144.png'
        Created account: 'CanStoreFullImage false 400x500.png'
        Created account: 'CanStoreFullImage false 60x80.png'
Set the CanStoreFullImage property to True
Create 5 records while CanStoreFullImage is true.
        Created account: 'CanStoreFullImage true 144x144.png'
        Created account: 'CanStoreFullImage true 144x400.png'
        Created account: 'CanStoreFullImage true 400x144.png'
        Created account: 'CanStoreFullImage true 400x500.png'
        Created account: 'CanStoreFullImage true 60x80.png'
Retrieving records with thumbnail images:
        Thumbnail-sized file column data saved to DownloadedImages\CanStoreFullImage false 144x144.png_retrieved.png
        Thumbnail-sized file column data saved to DownloadedImages\CanStoreFullImage false 144x400.png_retrieved.png
        Thumbnail-sized file column data saved to DownloadedImages\CanStoreFullImage false 400x144.png_retrieved.png
        Thumbnail-sized file column data saved to DownloadedImages\CanStoreFullImage false 400x500.png_retrieved.png
        Thumbnail-sized file column data saved to DownloadedImages\CanStoreFullImage false 60x80.png_retrieved.png
        Thumbnail-sized file column data saved to DownloadedImages\CanStoreFullImage true 144x144.png_retrieved.png
        Thumbnail-sized file column data saved to DownloadedImages\CanStoreFullImage true 144x400.png_retrieved.png
        Thumbnail-sized file column data saved to DownloadedImages\CanStoreFullImage true 400x144.png_retrieved.png
        Thumbnail-sized file column data saved to DownloadedImages\CanStoreFullImage true 400x500.png_retrieved.png
        Thumbnail-sized file column data saved to DownloadedImages\CanStoreFullImage true 60x80.png_retrieved.png
Attempt to download full-size images for all 10 records. 5 should fail.
        Download failed: No FileAttachment records found for imagedescriptorId: a81a473d-3a8d-ed11-81ad-000d3a993550 for image attribute: sample_imagecolumn of account record with id a51a473d-3a8d-ed11-81ad-000d3a993550
        Download failed: No FileAttachment records found for imagedescriptorId: 2a813f43-3a8d-ed11-81ad-000d3a993550 for image attribute: sample_imagecolumn of account record with id 29813f43-3a8d-ed11-81ad-000d3a993550
        Download failed: No FileAttachment records found for imagedescriptorId: 2e813f43-3a8d-ed11-81ad-000d3a993550 for image attribute: sample_imagecolumn of account record with id 2d813f43-3a8d-ed11-81ad-000d3a993550
        Download failed: No FileAttachment records found for imagedescriptorId: 34813f43-3a8d-ed11-81ad-000d3a993550 for image attribute: sample_imagecolumn of account record with id 32813f43-3a8d-ed11-81ad-000d3a993550
        Download failed: No FileAttachment records found for imagedescriptorId: 3d813f43-3a8d-ed11-81ad-000d3a993550 for image attribute: sample_imagecolumn of account record with id 3c813f43-3a8d-ed11-81ad-000d3a993550
        Full-sized file downloaded to DownloadedImages\CanStoreFullImage true 144x144.png_downloaded.png
        Full-sized file downloaded to DownloadedImages\CanStoreFullImage true 144x400.png_downloaded.png
        Full-sized file downloaded to DownloadedImages\CanStoreFullImage true 400x144.png_downloaded.png
        Full-sized file downloaded to DownloadedImages\CanStoreFullImage true 400x500.png_downloaded.png
        Full-sized file downloaded to DownloadedImages\CanStoreFullImage true 60x80.png_downloaded.png
Deleted the records created for this sample.
Deleting the image column named 'sample_ImageColumn' on the account table ...
Deleted the image column named 'sample_ImageColumn' in the account table.
Sample completed.

Demostraciones

El código para este ejemplo se incluye en el archivo Program.cs.

El proyecto usa una clase Utility para realizar operaciones que impliquen la creación o recuperación de datos de esquema. Esta clase está en el archivo Utility.cs.

Este proyecto realiza estas operaciones:

Crear una columna de imagen automática

Esta muestra necesita crear una nueva columna de imagen que sea la imagen principal para la tabla de cuentas. También debe devolver el sistema al estado original cuando haya terminado. Por lo que se realizan estos pasos:

  1. Capture el nombre de la imagen principal original con el método Utility.GetTablePrimaryImageName .

  2. Utilice el método Utility.CreateImageColumn para crear una nueva columna de imagen llamada sample_ImageColumn en la tabla de cuentas si aún no existe.

    Nota

    El valor de esta columna de imagen CanStoreFullImage es falso.

  3. Utilice el método Utility.SetTablePrimaryImageName para hacer sample_ImageColumn la imagen primaria.

Crear registros de cuenta con datos de imagen

  1. El programa recorre una lista de cinco nombres de archivo que coinciden con los nombres de los archivos en la carpeta Images.
  2. Para cada imagen, crea un registro de cuenta con el name ajustado a CanStoreFullImage false {fileName} y el archivo byte[] establecido como el valor sample_ImageColumn.
  3. A continuación, el programa utiliza el método Utility.UpdateCanStoreFullImage para establecer la definición de sample_ImageColumn del valor CanStoreFullImage en verdadero.
  4. Una vez más, el programa recorre los nombres de los archivos y crea cinco registros de cuenta con los mismos archivos de imagen establecidos en el valor sample_ImageColumn. Esta vez, name se establece en CanStoreFullImage true {fileName}.

En el siguiente programa, podemos ver cómo el valor de la propiedad CanStoreFullImage cambia qué datos están disponibles.

REcuperar los registro de cuenta

  1. El programa recupera los 10 registros de cuenta creados en el paso anterior, incluidos los datos de la imagen.

  2. Para cada registro de cuenta, los datos de la imagen se descargan en la carpeta DownloadedImages con el nombre {recordName}_retrieved.png.

    Nota

    Todos estos registros son imágenes en miniatura.

Descargar las imágenes del registro de cuenta

El programa utiliza el método estático DownloadFile, que encapsula el uso de las clases InitializeFileBlocksDownloadRequest y DownloadBlockRequest para descargar los archivos.

Nota

Se espera que 5 de las 10 operaciones fallen porque no se cargaron imágenes de tamaño completo mientras CanStoreFullImage era falso Esos registros se crearon mientras CanStoreFullImage era verdadero y fueron correctos.

Eliminar los datos de imagen

  1. El programa elimina los datos de imagen para cada registro de cuenta configurando el valor sample_ImageColumn como nulo y actualizando el registro.
  2. El programa verifica la eliminación recuperando los registros nuevamente utilizando los mismos criterios que antes. No se devuelve ningún valor para el atributo CanStoreFullImage porque es nulo.

Limpiar

Para dejar el sistema en el estado anterior a la ejecución del ejemplo, hace lo siguiente:

  • Eliminar los registros de cuenta
  • Establecer la imagen principal de nuevo en el original
  • Eliminar la columna de imagen

Consulte también

Usar datos de columna de imagen
Trabajar con definiciones de columna de imagen mediante código
Usar datos de columna de archivo
Ejemplo: Operaciones de imagen usando la API web de Dataverse

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