Internet-API-Funktionen- und Aktionen-Beispiel (C#)
Dieses .NET 6.0-Beispiel veranschaulicht, wie allgemeine Datenvorgänge mit der Dataverse-Web-API ausgeführt werden.
In diesem Beispiel wird der allgemeine Helfercode in der WebAPIService-Klassenbibliothek (C#) verwendet.
Anmerkung
Dieses Beispiel implementiert die Dataverse-Vorgänge sowie die Konsolenausgabe, die unter Beispiel für Web-API-Funktionen und Aktionen aufgeführt sind, und nutzt bekannte C#-Konstrukte, die in Web-API-Beispiele (C#) aufgeführt sind.
Anforderungen
- Microsoft Visual Studio 2022.
- Zugriff auf Dataverse mit Rechten, um Datenvorgänge auszuführen.
Wie man dieses Beispiel ausführt
Klonen Sie das PowerApps-Beispiele-Repository oder laden Sie es herunter.
Suchen Sie den Ordner /dataverse/webapi/C#-NETx/FunctionsAndActions/.
De Datei
FunctionsAndActions.sln
mit Visual Studio 2022 öffnenBearbeiten 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. Gehen Sie zu Entwicklerressourcen anzeigen, um die URL für Ihre Umgebung zu finden.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.Die Datei
appsettings.json
speichernDrücken Sie F5, um das Beispiel auszuführen.
Code
Der Code für dieses Beispiel ist hier: PowerApps-Beispiele/dataverse/webapi/C#-NETx/FunctionsAndActions/Program.cs
Veranschaulichung
Dieses Beispiel umfasst neun Regionen:
Abschnitt 1: Ungebundene Funktionen: WhoAmI
Vorgang: Senden Sie die WhoAmI-Funktion und empfangen Sie WhoAmIResponse ComplexType.
Abschnitt 2: Ungebundene Funktionen: FormatAddress
Vorgänge:
- Senden Sie die FormatAddress-Funktion mit Parametern für eine Adresse in den USA. Empfangen Sie FormatAddressResponse ComplexType mit der formatierten Adresse.
- Machen Sie dasselbe mit Parametern für eine Adresse in Japan.
Abschnitt 3: Ungebundene Funktionen: InitializeFrom
Vorgänge:
- Erstellen Sie einen Kontodatensatz als Originaldatensatz.
- Senden Sie die InitializeFrom-Funktion mit Parametern, die auf den erstellten Firmendatensatz verweisen. Erhalten Sie eine Antwort mit Daten, um einen neuen Kontodatensatz mit Werten aus dem ursprünglichen Datensatz zu erstellen.
- Erstellen Sie einen neuen Kontodatensatz mit den Daten aus
InitializeFromResponse
, sodass der neue Datensatz mit dem ursprünglichen Datensatz verknüpft ist und möglicherweise Daten enthält, die aus dem ursprünglichen Datensatz kopiert wurden, je nachdem, wie die Spaltenzuordnungen für die Organisation konfiguriert sind.
Abschnitt 4: Ungebundene Funktionen: RetrieveCurrentOrganization
Vorgang: Senden Sie die RetrieveCurrentOrganization-Funktion, und empfangen Sie den RetrieveCurrentOrganization-ComplexType .
Abschnitt 5: Ungebundene Funktionen: RetrieveTotalRecordCount
Vorgänge: Senden Sie die RetrieveTotalRecordCount-Funktion mit Parametern für account
- und contact
-Tabellen, und empfangen Sie den RetrieveTotalRecordCountResponse-ComplexType, der die Anzahl der Datensätze in jeder Tabelle enthält.
Abschnitt 6: Gebundene Funktionen: IsSystemAdmin
Vorgänge:
- Erkennen Sie, ob die Organisation die angepasste
sample_IsSystemAdmin
API installiert hat. - Wenn nicht, installieren Sie die Lösung in
IsSystemAdminFunction_1_0_0_0_managed.zip
, die die Custom-API enthält. - Rufen Sie 10 Systembenutzerdatensätze ab.
- Durchlaufen Sie die Datensätze mit der
sample_IsSystemAdmin
-Funktion, um zu erkennen, welche die Sicherheitsrolle Systemadministrator haben
Abschnitt 7: Ungebundene Aktionen: GrantAccess
Vorgänge:
- Erstellen Sie einen freizugebenden Firmendatensatz.
- Rufen Sie einen anderen aktivierten Benutzer als den aktuellen Benutzer ab.
- Verwenden Sie die RetrievePrincipalAccess-Funktion, um zu ermitteln, ob der andere Benutzer über AccessRights
'DeleteAccess'
für den erstellten Firmendatensatz verfügt. - Wenn er nicht über
DeleteAccess
verfügt, verwenden Sie die GrantAccess-Aktion, um diesen Zugriff für den anderen Benutzer freizugeben. - Testen Sie den Zugriff des Benutzers erneut mit
RetrievePrincipalAccess
, um zu überprüfen, ob sie jetztDeleteAccess
haben.
Abschnitt 8: Gebundene Aktionen: AddPrivilegesRole
Vorgänge:
- Erstellen Sie einen Rollen-EntityType-Datensatz, der der Geschäftseinheit des Anrufers zugeordnet ist.
- Rufen Sie den Rollendatensatz mit erweiterten Berechtigungs-EntityType-Datensätzen ab, um die standardmäßig enthaltenen Berechtigungen anzuzeigen.
- Rufen Sie Informationen über die Rechte
prvCreateAccount
undprvReadAccount
ab. - Verwenden Sie die abgerufenen Informationen zu diesen Berechtigungen, um eine Liste von RolePrivilege-ComplexType-Instanzen vorzubereiten, die als Parameter für
AddPrivilegesRole
verwendet werden sollen. - Senden Sie die AddPrivilegesRole-Aktion mit den
RolePrivilege
-Parametern. - Rufen Sie den Rollendatensatz erneut mit erweiterten Berechtigungs-EntityType-Datensätzen ab, um die Berechtigungen anzuzeigen, die jetzt die Berechtigungen
prvCreateAccount
undprvReadAccount
umfassen.
Abschnitt 9: Beispielaufzeichnungen löschen
Vorgänge: Ein Verweis auf jeden in diesem Beispiel erstellten Datensatz wurde einer Liste hinzugefügt, während sie erstellt wurde. Dieser Abschnitt sendet eine $batch
-Aufforderung zum Löschen des Datensatzes.
Bereinigung
Standardmäßig löscht dieses Beispiel alle darin erstellten Datensätze. Wenn Sie die erstellten Datensätze nach Abschluss des Beispiels anzeigen möchten, ändern Sie die deleteCreatedRecords
-Variable auf false
und Sie werden aufgefordert, zu entscheiden, ob Sie die Datensätze löschen möchten.
Siehe auch
Bedingte Vorgänge mithilfe der Web-API ausführen
Verwenden der Dataverse-Web-API
WebAPIService-Klassenbibliothek (C#)
Web API Beispiele
Beispiel grundlegender Web-API-Operationen (C#)
Web API-Abfragedatenbeispiel (C#)
Beispiel bedingter Web-API-Operationen (C#)
Beispiel für Web-API-Tabellenschemavorgänge (C#)
Web-API WebApiService-Beispiel für parallele Operationen (C#)
Beispiel für parallele Web-API-Vorgänge mit TPL Dataflow-Komponenten (C#)