Exemple : opérations sur les images en utilisant le kit SDK Dataverse pour .NET

Cet exemple .NET 6.0 montre comment effectuer des opérations avec les colonnes d’images en utilisant le kit SDK Dataverse pour .NET.

Cet exemple utilise Microsoft.PowerPlatform.Dataverse.Client.ServiceClient.

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

  1. Clonez ou téléchargez le référentiel Exemples PowerApps.

  2. Ouvrez le fichier PowerApps-Samples\dataverse\orgsvc\C#-NETCore\ImageOperations\ImageOperations.sln en utilisant Visual Studio 2022.

  3. Modifiez le fichier appsettings.json. Définissez les paramètres Url et Username de la chaîne de connexion en fonction de votre environnement de test.

    L’URL de l’environnement se trouve dans le centre d’administration Power Platform. Elle se présente sous la forme https://<environment-name>.crm.dynamics.com.

  4. Générez la solution, puis exécutez le projet souhaité.

Lors de l’exécution de l’exemple, vous serez invité dans le navigateur par défaut à sélectionner un compte d’utilisateur de l’environnement et à saisir un mot de passe. Pour éviter d’effectuer cette opération à chaque fois que vous exécutez un exemple, insérez un paramètre de mot de passe dans la chaîne de connexion du fichier appsettings.json. Par exemple :

{
"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"
  }
}

Conseil

Vous pouvez définir une variable d’environnement utilisateur nommée DATAVERSE_APPSETTINGS sur le chemin d’accès du fichier appsettings.json stocké n’importe où sur votre ordinateur. Les exemples utiliseront ce fichier appsettings si la variable d’environnement existe et n’est pas nulle. Assurez-vous de vous déconnecter et de vous reconnecter après avoir défini la variable pour qu’elle prenne effet. Pour définir une variable d’environnement, accédez à Paramètres > Système > À propos de, sélectionnez Paramètres système avancés, puis choisissez Variables d’environnement.

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

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é. Les étapes suivantes sont donc réalisées :

  1. Capturez le nom de l’image principale d’origine à l’aide de la méthode Utility.GetTablePrimaryImageName.

  2. Utilisez la méthode Utility.CreateImageColumn pour créer une nouvelle colonne d’image nommée sample_ImageColumn sur la table du compte si elle n’existe pas déjà.

    Notes

    Cette valeur CanStoreFullImage de colonne d’images est fausse.

  3. Utilisez la méthode Utility.SetTablePrimaryImageName pour faire de sample_ImageColumn l’image principale.

Créer des enregistrements de compte avec des données d’image

  1. Le programme parcourt en boucle une liste de cinq noms de fichiers qui correspondent aux noms des fichiers du dossier Images.
  2. Pour chaque image, il crée un enregistrement de compte dont le name est défini sur CanStoreFullImage false {fileName} et le fichier byte[] est défini comme valeur de sample_ImageColumn.
  3. Le programme utilise alors la méthode Utility.UpdateCanStoreFullImage pour définir la valeur de définition sample_ImageColumn CanStoreFullImage sur vrai.
  4. 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, le name est défini comme suit : CanStoreFullImage true {fileName}.

Dans le programme suivant, nous pouvons voir comment la valeur de la propriété CanStoreFullImage modifie les données disponibles.

Récupérer les enregistrements du compte

  1. Le programme récupère les 10 enregistrements de compte créés à l’étape précédente, y compris les données d’image.

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

Le programme utilise la méthode statique DownloadFile, qui encapsule l’utilisation des classes InitializeFileBlocksDownloadRequest et DownloadBlockRequest pour télécharger les fichiers.

Notes

On s’attend à ce que 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.

Supprimer les données d’image

  1. Le programme supprime les données d’image pour chaque enregistrement de compte en définissant la valeur sample_ImageColumn comme null et en mettant à jour l’enregistrement.
  2. Le programme vérifie la suppression en recherchant à nouveau les enregistrements en utilisant les mêmes critères que précédemment. Aucune valeur n’est renvoyée pour l’attribut CanStoreFullImage car il est défini sur null.

Nettoyer

Pour laisser le système dans l’état antérieur à l’exécution de l’exemple, il effectue les opérations suivantes :

  • Supprimer les enregistrements du compte
  • Rétablir l’image principale à l’état d’origine
  • 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 l’API Web de Dataverse

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