Exemple : opérations sur les images en utilisant l’API Web de Dataverse
Cet exemple .NET 6.0 montre comment effectuer des opérations avec les colonnes d’image en utilisant l’API Web de Dataverse.
Cet exemple utilise le code d’assistance commun dans la Bibliothèque de classes WebAPIService (C#).
Conditions préalables
- Microsoft Visual Studio 2022
- Accédez à Dataverse avec les privilèges d’administrateur système ou de personnalisateur du système.
Comment exécuter l’exemple
Clonez ou téléchargez le référentiel Exemples PowerApps.
Ouvrez le fichier
PowerApps-Samples\dataverse\webapi\C#-NETx\ImageOperations\ImageOperations.sln
en utilisant Visual Studio 2022.Modifiez le fichier
appsettings.json
pour définir les valeurs de propriété suivantes :Property Instructions Url
URL pour votre environnement. Remplacez la valeur https://yourorg.api.crm.dynamics.com
de l’espace réservé avec la valeur de votre environnement. Voir Afficher les ressources pour les développeurs pour trouver ça.UserPrincipalName
Remplacez la valeur you@yourorg.onmicrosoft.com
de l’espace réservé avec la valeur UPN pour accéder à l’environnement.Password
Remplacez la valeur yourPassword
de l’espace réservé avec le mot de passe que vous utilisez.Enregistrer le fichier
appsettings.json
Appuyez sur F5 pour exécuter l’exemple.
Sortie de l’exemple
La sortie de l’exemple doit ressembler à ce qui suit :
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.
Montre ce qui suit
Le code de cet exemple se trouve dans le fichier Program.cs.
Le projet utilise une classe Utility
pour effectuer des opérations impliquant la création ou la récupération des données de schéma. Cette classe se trouve dans le fichier Utility.cs.
Ce projet effectue ces opérations :
Créer une colonne d’image
Cet exemple doit créer une nouvelle colonne d’image qui est l’image principale de la table du compte. Il doit également remettre le système dans son état d’origine une fois terminé. Le programme fait donc les choses suivantes dès le début :
Capturez le nom de l’image principale d’origine à l’aide de la méthode
Utility.GetTablePrimaryImageName
.Utilisez la méthode
Utility.CreateImageColumn
pour créer une nouvelle colonne d’image nomméesample_ImageColumn
sur la table du compte si elle n’existe pas déjà.Notes
Cette valeur
CanStoreFullImage
de colonne d’images est fausse.Utilisez la méthode
Utility.SetTablePrimaryImageName
pour faire de la nouvellesample_ImageColumn
la colonne d’image principale.
Créer des enregistrements de compte avec des données d’image
- Le programme parcourt en boucle une liste de cinq noms de fichiers qui correspondent aux noms des fichiers du dossier
Images
. - Pour chaque image, le programme crée un enregistrement de compte dont le
name
est défini surCanStoreFullImage false {fileName}
et le fichierbyte[]
est défini comme valeur desample_ImageColumn
. - Le programme utilise alors la méthode
Utility.UpdateCanStoreFullImage
pour définir la valeur de définition de la colonnesample_ImageColumn
CanStoreFullImage
sur vrai. - Une fois de plus, le programme passe en revue les noms de fichiers et crée cinq enregistrements de compte avec les mêmes fichiers d’image définis avec la valeur
sample_ImageColumn
. Cette fois-ci, lename
estCanStoreFullImage true {fileName}
Dans le code suivant, nous pouvons voir comment la valeur de la propriété CanStoreFullImage
modifie les données disponibles.
Récupérer les enregistrements du compte
Le code récupère les 10 enregistrements de compte créés à l’étape précédente, y compris les données d’image.
Pour chaque enregistrement de compte, les données d’image sont téléchargées dans le dossier
DownloadedImages
sous le nom{recordName}_retrieved.png
.Notes
Tous ces enregistrements sont des images de la taille d’une miniature.
Télécharger les images des enregistrements de compte
Ce programme utilise trois méthodes différentes pour télécharger des fichiers image.
Notes
Dans chaque cas, 5 des 10 opérations échouent parce qu’aucune image de taille normale n’a été téléchargée alors que la valeur CanStoreFullImage
était définie sur faux. Les enregistrements créés pendant que la valeur CanStoreFullImage
était définie sur vrai ont réussi.
Télécharger avec des actions
Le code utilise la méthode statique DownloadImageWithActions
, qui encapsule l’utilisation des actions InitializeFileBlocksDownload et DownloadBlock pour télécharger les images comme décrit dans Utiliser les messages Dataverse pour télécharger un fichier.
Notes
Ces opérations échouent lorsqu’il n’y a pas d’image en taille réelle à télécharger. Le message d’erreur est le suivant : No FileAttachment records found for imagedescriptorId: <guid> for image attribute: sample_imagecolumn of account record with id <guid>
.
Télécharger avec des blocs
Le code utilise la méthode statique DownloadImageWithChunks
, qui montre comment télécharger des images comme décrit dans Télécharger le fichier en blocs en utilisant l’API Web.
Notes
Ces opérations n’échouent pas lorsqu’il n’y a pas d’image de taille normale à télécharger, elles renvoient simplement 204 No Content
.
Télécharger avec des flux
Le code utilise la méthode statique DownloadImageWithStream
, qui montre comment télécharger des images comme décrit dans Télécharger un fichier dans une seule requête en utilisant l’API Web
Notes
Ces opérations n’échouent pas lorsqu’il n’y a pas d’image de taille normale à télécharger, elles renvoient simplement 204 No Content
.
Supprimer les données d’image
- Le programme utilise trois méthodes différentes pour illustrer la suppression des valeurs d’image, en utilisant
PATCH
,PUT
etDELETE
. - Le programme vérifie que les enregistrements ont été supprimés en les récupérant à nouveau en utilisant les mêmes critères que précédemment. La valeur de la colonne d’image est null.
Nettoyer
Pour laisser le système dans l’état antérieur à l’exécution de l’exemple, le programme effectue les opérations suivantes :
- Supprimer les enregistrements du compte.
- Rétablir la valeur d’origine de l’image principale de la table de compte.
- Supprimer la colonne d’images.
Voir aussi
Utiliser les données de colonne d’image
Utiliser des définitions de colonne d’image avec du code
Utiliser les données de colonne de fichier
Exemple : opérations sur les images en utilisant le SDK Dataverse pour .NET
Notes
Pouvez-vous nous indiquer vos préférences de langue pour la documentation ? Répondez à un court questionnaire. (veuillez noter que ce questionnaire est en anglais)
Le questionnaire vous prendra environ sept minutes. Aucune donnée personnelle n’est collectée (déclaration de confidentialité).