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
Clonez ou téléchargez le référentiel Exemples PowerApps.
Ouvrez le fichier
PowerApps-Samples\dataverse\orgsvc\C#-NETCore\FileOperations\FileOperations.sln
en utilisant Visual Studio 2022.Modifiez le fichier appsettings.json. Définissez les paramètres
Url
etUsername
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.
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 :
- Initialisez le chargement avec la classe InitializeFileBlocksUploadRequest
- Traitez la réponse avec la classe InitializeFileBlocksUploadResponse pour obtenir la valeur FileContinuationToken qui sera utilisée dans toutes les requêtes suivantes.
- 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. - 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.
- 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.
- 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 :
- Si le fichier a été chargé avec succès, initialisez le téléchargement avec la Classe InitializeFileBlocksDownloadRequest
- Traitez la réponse avec la Classe InitializeFileBlocksDownloadResponse pour obtenir la valeur
FileContinuationToken
qui sera utilisée dans toutes les requêtes suivantes. - Instanciez une variable
List<byte>
pour capturer les parties du fichier lors de son téléchargement. - Téléchargez le fichier en blocs de 4 Mo avec plusieurs requêtes en utilisant la Classe DownloadBlockRequest.
- Traitez chaque réponse avec la Classe DownloadBlockResponse pour obtenir la valeur
byte[]
partielle de la propriétéData
. Ajoutez cette partie àList<byte>
. - Une fois tous les blocs reçus, renvoyez
List<byte>
en tant que tableau. - 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é).