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
Clonar o descargar el repositorio de ejemplos de PowerApps.
Abra el archivo
PowerApps-Samples\dataverse\orgsvc\C#-NETCore\ImageOperations\ImageOperations.sln
usando Visual Studio 2022.Edite el archivo appsettings.json. Establezca los parámetros
Url
yUsername
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.
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:
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 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, 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 desample_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 vez,name
se establece enCanStoreFullImage 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
El programa 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
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
- El programa elimina los datos de imagen para cada registro de cuenta configurando el valor
sample_ImageColumn
como nulo y actualizando el registro. - 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).