Freigeben über


Beispiel: Bildvorgänge über die Dataverse-Web-API

Dieses Beispiel für .NET 6.0 veranschaulicht, wie Sie Vorgänge mit Bildspalten über die Dataverse-Web-API durchführen.

In diesem Beispiel wird der allgemeine Helfercode in der WebAPIService-Klassenbibliothek (C#) verwendet.

Anforderungen

  • Microsoft Visual Studio 2022
  • Greifen Sie mit Systemadministrator- oder Systemanpasserberechtigungen auf Dataverse zu.

Wie das Beispiel ausgeführt wird

  1. Klonen Sie das PowerApps-Beispiele-Repository oder laden Sie es herunter.

  2. Öffnen Sie die PowerApps-Samples\dataverse\webapi\C#-NETx\ImageOperations\ImageOperations.sln-Datei mit Visual Studio 2022.

  3. Bearbeiten Sie die appsettings.json-Datei, um die folgenden Eigenschaftswerte festzulegen:

    Eigenschaften Anweisungen
    Url Die Url für Ihre Umgebung. Ersetzen Sie den https://yourorg.api.crm.dynamics.com-Wert des Platzhalters durch den Wert für Ihre Umgebung. Informationen dazu finden Sie unter Entwicklerressourcen anzeigen.
    UserPrincipalName Ersetzen Sie den you@yourorg.onmicrosoft.com-Wert des Platzhalters durch den UPN-Wert, den Sie für den Zugriff auf die Umgebung verwenden.
    Password Ersetzen Sie den yourPassword-Wert des Platzhalters durch das von Ihnen verwendete Kennwort.
  4. Die Datei appsettings.json speichern

  5. Drücken Sie F5, um das Beispiel auszuführen.

Beispielausgabe

Die Ausgabe des Beispiels sollte in etwa so aussehen:

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.

Veranschaulichung

Der Code füe dieses Beispiel sind in der Datei Program.cs enthalten.

Das Projekt verwendet die Utility-Klasse, um Vorgänge zum Erstellen oder Abrufen von Schemadaten durchzuführen. Diese Klasse ist in der Datei Utility.cs enthalten.

Dieses Projekt führt diese Vorgänge aus:

Bildspalte erstellen

Dieses Beispiel muss eine neue Bildspalte erstellen, die das primäre Bild für die Kontotabelle ist. Es muss auch das System in den ursprünglichen Status zurückversetzen, wenn es fertig ist. Das Programm geht am Anfang wie folgt vor:

  1. Erfassen Sie den ursprünglichen primären Bildnamen mithilfe der Utility.GetTablePrimaryImageName-Methode.

  2. Verwenden Sie die Utility.CreateImageColumn-Methode, um eine neue Bildspalte mit dem Namen sample_ImageColumn in der Kontotabelle zu erstellen, falls sie noch nicht vorhanden ist.

    Hinweis

    Der CanStoreFullImage-Wert dieser Bildspalte ist „false“.

  3. Verwenden Sie die Utility.SetTablePrimaryImageName-Methode, um die neue sample_ImageColumn zur primären Bildspalte zu machen.

Kontodatensätze mit Bilddaten erstellen

  1. Das Programm durchläuft eine Liste mit fünf Dateinamen, die mit den Namen der Dateien im Images-Ordner übereinstimmen.
  2. Für jedes Bild erstellt das Programm einen Kontodatensatz, wobei name auf CanStoreFullImage false {fileName} festgelegt ist und die Datei byte[] als sample_ImageColumn-Wert festgelegt ist.
  3. Das Programm verwendet dann die Utility.UpdateCanStoreFullImage-Methode, um den CanStoreFullImage-Wert der Spaltendefinition sample_ImageColumn auf „true“ festzulegen.
  4. Wieder durchläuft das Programm die Dateinamen und erstellt fünf Kontodatensätze mit denselben Bilddateien, die auf den sample_ImageColumn-Wert eingestellt sind. Diesmal lautet der name wie folgt: CanStoreFullImage true {fileName}

Im folgenden Code sehen wir, wie durch Wert der Eigenschaft CanStoreFullImage verändert wird, welche Daten verfügbar sind.

Kontodatensätze abrufen

  1. Der Code ruft die 10 Kontodatensätze ab, die im vorherigen Schritt erstellt wurden, einschließlich der Bilddaten.

  2. Für jeden Kontodatensatz werden die Bilddaten in den DownloadedImages-Ordner mit dem Namen {recordName}_retrieved.png heruntergeladen.

    Hinweis

    Alle diese Datensätze sind Bilder in Miniaturansicht-Größe.

Kontodatensatzbilder herunterladen

Dieses Programm verwendet drei verschiedene Methoden, um Bilddateien herunterzuladen.

Hinweis

In jedem Fall schlagen 5 der 10 Vorgänge fehl, weil keine Bilder in voller Größe hochgeladen wurden, während CanStoreFullImage „false“ war. Bei den Datensätzen, die erstellt wurde, während CanStoreFullImage „true“ war, schlagen die Vorgänge nicht fehl.

Mit Aktionen herunterladen

Bei dem Code wird die statische DownloadImageWithActions-Methode verwendet, die die Nutzung der InitializeFileBlocksDownload- und DownloadBlock-Aktionen umfasst, um die Bilder wie in Dataverse-Nachrichten verwenden, um eine Datei herunterzuladen beschrieben herunterzuladen.

Hinweis

Diese Vorgänge schlagen fehl, wenn kein Bild in voller Größe heruntergeladen werden kann. Die Fehlermeldung ist: No FileAttachment records found for imagedescriptorId: <guid> for image attribute: sample_imagecolumn of account record with id <guid>.

Mit Blöcken herunterladen

Bei dem Code wird die statische DownloadImageWithChunks-Methode verwendet, die zeigt, wie Bilder heruntergeladen werden, wie in Datei in Blöcken mithilfe der Web-API herunterladen beschrieben.

Hinweis

Diese Vorgänge schlagen nicht fehl, wenn kein Bild in voller Größe heruntergeladen werden kann, sie geben einfach 204 No Content zurück.

Mit Stream herunterladen

Bei dem Code wird die statische DownloadImageWithStream-Methode verwendet, die zeigt, wie Bilder heruntergeladen werden, wie in Datei in einer einzelnen Anforderung mithilfe der Web-API herunterladen beschrieben

Hinweis

Diese Vorgänge schlagen nicht fehl, wenn kein Bild in voller Größe heruntergeladen werden kann, sie geben einfach 204 No Content zurück.

Bilddaten löschen

  1. Das Programm verwendet drei verschiedene Methoden, um das Löschen von Bildwerten mithilfe von PATCH, PUT und DELETE zu demonstrieren.
  2. Das Programm überprüft, ob die Datensätze gelöscht wurden, indem es die Datensätze unter Verwendung derselben Kriterien wie zuvor erneut abruft. Der Wert für die Bildspalte ist null.

Bereinigung

Um das System im Zustand vor der Ausführung des Beispiels zu belassen, bevor die Stichprobe ausgeführt wurde, führt das Programm folgende Schritte aus:

  • Kontodatensätze löschen.
  • Das primäre Bild der Kontotabelle auf den ursprünglichen Wert zurücksetzen.
  • Die Bildspalte löschen.

Siehe auch

Bildspaltendaten verwenden
Mithilfe von Code mit Bildspaltendefinitionen arbeiten
Dateispaltendaten verwenden
Beispiel: Bildvorgänge über das Dataverse-SDK für .NET

Hinweis

Können Sie uns Ihre Präferenzen für die Dokumentationssprache mitteilen? Nehmen Sie an einer kurzen Umfrage teil. (Beachten Sie, dass diese Umfrage auf Englisch ist.)

Die Umfrage dauert etwa sieben Minuten. Es werden keine personenbezogenen Daten erhoben. (Datenschutzbestimmungen).