Partage via


Exemple : opérations de fichiers en utilisant le SDK Dataverse pour .NET

Cet exemple .NET 6.0 montre comment effectuer des opérations avec les colonnes de fichier en utilisant le 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\FileOperations\FileOperations.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 file column named 'sample_FileColumn' on the account table ...
Created file column named 'sample_FileColumn' in the account table.
Created account record with accountid:5fb4f993-7c55-ed11-bba3-000d3a9933c9
Uploading file Files\25mb.pdf ...
Uploaded file Files\25mb.pdf
Downloading file from accounts(5fb4f993-7c55-ed11-bba3-000d3a9933c9)/sample_filecolumn ...
Downloaded the file to E:\GitHub\PowerApps-Samples\dataverse\webapi\C#-NETx\FileOperations\FileOperationsWithActions\bin\Debug\net6.0//downloaded-25mb.pdf.
Deleted the file using FileId.
Deleted the account record.
Deleting the file column named 'sample_filecolumn' on the account table ...
Deleted the file column named 'sample_filecolumn' in the account table.

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 de fichier

La fonction Utility.CreateFileColumn crée une colonne de fichier nommée sample_FileColumn dans la table des comptes avec une valeur MaxSizeInKb de 10 Mo.

Mettre à jour une colonne de fichier

La fonction Utility.UpdateFileColumnMaxSizeInKB met à jour la valeur MaxSizeInKb de la colonne de fichier sample_FileColumn sur 100 Mo.

Conseil : si vous souhaitez créer des scénarios d’erreur car la taille de la colonne de fichier est trop petite, commentez cette ligne.

Récupérer la valeur MaxSizeInKb de la colonne de fichier

La fonction Utility.GetFileColumnMaxSizeInKb récupère la valeur MaxSizeInKb de la colonne de fichier sample_FileColumn et la stocke dans une variable nommée fileColumnMaxSizeInKb.

Créer un enregistrement de compte

Avant qu’un fichier puisse être chargé dans la colonne de fichier, un enregistrement doit exister.

Télécharger un fichier

Pour charger un fichier PDF nommé 25MB.pdf dans la colonne de fichier sample_FileColumn de l’enregistrement de compte, cet exemple utilise une méthode statique UploadFile qui accepte tous les paramètres nécessaires pour créer les requêtes suivantes :

  1. Initialisez le chargement avec la classe InitializeFileBlocksUploadRequest
  2. Traitez la réponse avec la classe InitializeFileBlocksUploadResponse pour obtenir la valeur FileContinuationToken qui sera utilisée dans toutes les requêtes suivantes.
  3. La méthode UploadFile accepte un paramètre nommé fileColumnMaxSizeInKb et utilise cette valeur pour tester la taille du fichier. Si le fichier est plus volumineux que la limite configurée de la colonne de fichier, une erreur est générée.
  4. Fractionnez le fichier en blocs de 4 Mo et envoyez chaque bloc en utilisant la Classe UploadBlockRequest. Chaque instance doit inclure une chaîne encodée en base64 pour identifier de manière unique le bloc. Cette requête n’a aucune valeur de réponse à traiter.
  5. Une fois tous les blocs envoyés, utilisez la Classe CommitFileBlocksUploadRequest avec un tableau des valeurs de chaîne encodées en base64 pour finaliser l’opération.
  6. Traitez la réponse avec la Classe CommitFileBlocksUploadResponse pour obtenir la valeur FileId qui sera utilisée pour supprimer le fichier.

Télécharger le fichier

Pour télécharger le fichier PDF nommé 25MB.pdf qui vient d’être chargé dans la colonne de fichier sample_FileColumn de l’enregistrement de compte, cet exemple utilise une méthode statique DownloadFile qui accepte tous les paramètres nécessaires pour créer les requêtes suivantes :

  1. Si le fichier a été chargé avec succès, initialisez le téléchargement avec la Classe InitializeFileBlocksDownloadRequest
  2. Traitez la réponse avec la Classe InitializeFileBlocksDownloadResponse pour obtenir la valeur FileContinuationToken qui sera utilisée dans toutes les requêtes suivantes.
  3. Instanciez une variable List<byte> pour capturer les parties du fichier lors de son téléchargement.
  4. Téléchargez le fichier en blocs de 4 Mo avec plusieurs requêtes en utilisant la Classe DownloadBlockRequest.
  5. Traitez chaque réponse avec la Classe DownloadBlockResponse pour obtenir la valeur byte[] partielle de la propriété Data. Ajoutez cette partie à List<byte>.
  6. Une fois tous les blocs reçus, renvoyez List<byte> en tant que tableau.
  7. Le fichier est enregistré dans le répertoire actuel. Vous pouvez essayer d’ouvrir le fichier pour confirmer qu’il a été chargé et téléchargé correctement.

Supprimer le fichier

Si le fichier a été chargé avec succès, utilisez la Classe DeleteFileRequest pour supprimer le fichier en utilisant la valeur FileId renvoyée par CommitFileBlocksUploadResponse. Cette requête n’a aucune valeur de réponse à traiter.

Nettoyer

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

  • Supprimer l’enregistrement de compte
  • Supprimer la colonne de fichier

Voir aussi

Utiliser les données de colonne de fichier
Exemple : opérations de fichier en utilisant l’API Web de Dataverse
Utiliser les données de colonne d’image
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é).