Ejemplo: Operaciones de imagen usando la API web de Dataverse
Este ejemplo .NET 6.0 demuestra cómo realizar operaciones con columnas de imagen utilizando la API web de Dataverse.
Esta muestra utiliza el código auxiliar común de la biblioteca de clases WebAPIService (C#).
Requisitos previos
- Microsoft Visual Studio 2022
- Accesa a Dataverse con Administrador del sistema o privilegios de personalizador del sistema.
Cómo ejecutar el ejemplo
Clonar o descargar el repositorio de ejemplos de PowerApps.
Abra el archivo
PowerApps-Samples\dataverse\webapi\C#-NETx\ImageOperations\ImageOperations.sln
usando Visual Studio 2022.Editar el archivo
appsettings.json
para establecer los siguientes valores de propiedad:Property Instrucciones Url
La URL para su entorno. Reemplazar el valor de marcador de posición https://yourorg.api.crm.dynamics.com
con el valor para su entorno. Consulte Ver recursos para desarrolladores para encontrar esto.UserPrincipalName
Reemplazar el valor de marcador de posición you@yourorg.onmicrosoft.com
con el valor de UPN que usa para acceder al entorno.Password
Reemplazar el valor de marcador de posición yourPassword
con la contraseña que utiliza.Guarde el archivo
appsettings.json
Presione F5 para ejecutar el ejemplo.
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 using 3 different methods:
Download full-sized files with actions: 5 should fail
Download failed: No FileAttachment records found for imagedescriptorId: e40bdcf1-598d-ed11-81ad-000d3a9933c9 for image attribute: sample_imagecolumn of account record with id e30bdcf1-598d-ed11-81ad-000d3a9933c9
Download failed: No FileAttachment records found for imagedescriptorId: 2258d4f7-598d-ed11-81ad-000d3a9933c9 for image attribute: sample_imagecolumn of account record with id 2158d4f7-598d-ed11-81ad-000d3a9933c9
Download failed: No FileAttachment records found for imagedescriptorId: 2658d4f7-598d-ed11-81ad-000d3a9933c9 for image attribute: sample_imagecolumn of account record with id 2558d4f7-598d-ed11-81ad-000d3a9933c9
Download failed: No FileAttachment records found for imagedescriptorId: 2a58d4f7-598d-ed11-81ad-000d3a9933c9 for image attribute: sample_imagecolumn of account record with id 2958d4f7-598d-ed11-81ad-000d3a9933c9
Download failed: No FileAttachment records found for imagedescriptorId: 2e58d4f7-598d-ed11-81ad-000d3a9933c9 for image attribute: sample_imagecolumn of account record with id 2d58d4f7-598d-ed11-81ad-000d3a9933c9
Full-sized file downloaded to DownloadedImages\CanStoreFullImage true 144x144.png_downloaded_with_actions.png
Full-sized file downloaded to DownloadedImages\CanStoreFullImage true 144x400.png_downloaded_with_actions.png
Full-sized file downloaded to DownloadedImages\CanStoreFullImage true 400x144.png_downloaded_with_actions.png
Full-sized file downloaded to DownloadedImages\CanStoreFullImage true 400x500.png_downloaded_with_actions.png
Full-sized file downloaded to DownloadedImages\CanStoreFullImage true 60x80.png_downloaded_with_actions.png
Download full-sized files with chunks: 5 should fail
No full-sized image data returned because record was created while CanStoreFullImage was false.
No full-sized image data returned because record was created while CanStoreFullImage was false.
No full-sized image data returned because record was created while CanStoreFullImage was false.
No full-sized image data returned because record was created while CanStoreFullImage was false.
No full-sized image data returned because record was created while CanStoreFullImage was false.
Full-sized file downloaded to DownloadedImages\CanStoreFullImage true 144x144.png_downloaded_with_chunks_full-sized.png
Full-sized file downloaded to DownloadedImages\CanStoreFullImage true 144x400.png_downloaded_with_chunks_full-sized.png
Full-sized file downloaded to DownloadedImages\CanStoreFullImage true 400x144.png_downloaded_with_chunks_full-sized.png
Full-sized file downloaded to DownloadedImages\CanStoreFullImage true 400x500.png_downloaded_with_chunks_full-sized.png
Full-sized file downloaded to DownloadedImages\CanStoreFullImage true 60x80.png_downloaded_with_chunks_full-sized.png
Download full-sized files in single requests: 5 should fail
No full-sized image data returned because record was created while CanStoreFullImage was false.
No full-sized image data returned because record was created while CanStoreFullImage was false.
No full-sized image data returned because record was created while CanStoreFullImage was false.
No full-sized image data returned because record was created while CanStoreFullImage was false.
No full-sized image data returned because record was created while CanStoreFullImage was false.
Full-sized file downloaded to DownloadedImages\CanStoreFullImage true 144x144.png_downloaded_with_stream_full-sized.png
Full-sized file downloaded to DownloadedImages\CanStoreFullImage true 144x400.png_downloaded_with_stream_full-sized.png
Full-sized file downloaded to DownloadedImages\CanStoreFullImage true 400x144.png_downloaded_with_stream_full-sized.png
Full-sized file downloaded to DownloadedImages\CanStoreFullImage true 400x500.png_downloaded_with_stream_full-sized.png
Full-sized file downloaded to DownloadedImages\CanStoreFullImage true 60x80.png_downloaded_with_stream_full-sized.png
Deleting the image data from the columns using 3 different methods:
CanStoreFullImage false 144x144.png sample_imagecolumn deleted with PATCH
CanStoreFullImage false 144x400.png sample_imagecolumn deleted with PATCH
CanStoreFullImage false 400x144.png sample_imagecolumn deleted with PATCH
CanStoreFullImage false 400x500.png sample_imagecolumn deleted with PUT
CanStoreFullImage false 60x80.png sample_imagecolumn deleted with PUT
CanStoreFullImage true 144x144.png sample_imagecolumn deleted with PUT
CanStoreFullImage true 144x400.png sample_imagecolumn deleted with DELETE
CanStoreFullImage true 400x144.png sample_imagecolumn deleted with DELETE
CanStoreFullImage true 400x500.png sample_imagecolumn deleted with DELETE
CanStoreFullImage true 60x80.png sample_imagecolumn deleted with DELETE
Deleted the account 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. Así que el programa hace estas cosas al principio:
Capture el nombre de la imagen principal original con el método
Utility.GetTablePrimaryImageName
.Utilice el método
Utility.CreateImageColumn
para crear una nueva columna de imagen llamadasample_ImageColumn
en la tabla de cuentas si aún no existe.Nota
El valor de esta columna de imagen
CanStoreFullImage
es falso.Utilice el método
Utility.SetTablePrimaryImageName
para hacersample_ImageColumn
la columna de imagen primaria.
Crear registros de cuenta con datos de imagen
- El programa recorre una lista de cinco nombres de archivo que coinciden con los nombres de los archivos en la carpeta
Images
. - Para cada imagen, el programa crea un registro de cuenta con el
name
ajustado aCanStoreFullImage false {fileName}
y el archivobyte[]
establecido como el valorsample_ImageColumn
. - A continuación, el programa utiliza el método
Utility.UpdateCanStoreFullImage
para establecer la definición de columnasample_ImageColumn
del valorCanStoreFullImage
en verdadero. - 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 vezname
esCanStoreFullImage true {fileName}
En el siguiente código, podemos ver cómo el valor de la propiedad CanStoreFullImage
cambia qué datos están disponibles.
REcuperar los registro de cuenta
El código recupera los 10 registros de cuenta creados en el paso anterior, incluidos los datos de la imagen.
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
Este programa utiliza tres métodos diferentes para descargar archivos de imagen.
Nota
En cada caso, 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.
Descargar con Acciones
El código usa el método estático DownloadImageWithActions
, que encapsula el uso de las acciones InitializeFileBlocksDownload y DownloadBlock para descargar las imágenes como se describe en Usar Dataverse mensajes para descargar un archivo.
Nota
Estas operaciones fallan cuando no hay una imagen de tamaño completo para descargar. El mensaje de error es: No FileAttachment records found for imagedescriptorId: <guid> for image attribute: sample_imagecolumn of account record with id <guid>
.
Descargar con fragmentos
El código usa el método estático DownloadImageWithChunks
, que demuestra cómo descargar imágenes como se describe en Descargar el archivo en fragmentos usando la API web.
Nota
Estas operaciones no fallan cuando no hay una imagen de tamaño completo para descargar, simplemente devuelven 204 No Content
.
Descargar con Stream
El código usa el método estático DownloadImageWithStream
, que demuestra cómo descargar imágenes como se describe en Descargar un archivo en una única solicitud usando la API web
Nota
Estas operaciones no fallan cuando no hay una imagen de tamaño completo para descargar, simplemente devuelven 204 No Content
.
Eliminar los datos de imagen
- El programa utiliza tres métodos diferentes para demostrar la eliminación de valores de imagen, utilizando
PATCH
,PUT
yDELETE
. - El programa verifica la eliminación de los registros recuperando los registros nuevamente utilizando los mismos criterios que antes. El valor de la columna de la imagen es nulo.
Limpiar
Para dejar el sistema en el estado anterior a la ejecución del ejemplo, el programa hace lo siguiente:
- Eliminar los registros de cuenta.
- Establecer la imagen principal de la tabla de cuenta de nuevo en el valor 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 SDK de Dataverse para .NET
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).