Anmerkung
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen, dich anzumelden oder die Verzeichnisse zu wechseln.
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen , die Verzeichnisse zu wechseln.
In dieser Beispielgruppe wird veranschaulicht, wie gebundene und ungebundene Funktionen und Aktionen, einschließlich benutzerdefinierter Aktionen, mithilfe der Microsoft Dataverse-Web-API ausgeführt werden. Das Beispiel wird als separates Projekt für die folgenden Sprachen implementiert:
- Beispiel für Funktionen und Aktionen (C#)
- Beispiele von Funktionen und Aktionen (clientseitiges JavaScript)
- Web-API-Funktionen und -Aktionen (Beispiel) (PowerShell)
Dieser Artikel erläutert die Struktur und den Inhalt des Beispiels auf einer höheren, sprachneutralen Ebene. Informationen zu sprachspezifischen Implementierungsdetails zum Ausführen der in diesem Artikel beschriebenen Vorgänge finden Sie in den verknüpften Beispielartikeln.
Veranschaulichung
Dieses Beispiel ist in die folgenden Prinzipal-Abschnitte unterteilt, die Web-API-Funktionen und Vorgänge enthalten, die in den zugehörigen konzeptionellen Artikeln ausführlicher behandelt werden.
Die folgenden Abschnitte enthalten eine kurze Erläuterung der Dataverse-Web-API-Vorgänge sowie die entsprechenden HTTP-Nachrichten und die zugehörige Konsolenausgabe.
Abschnitt 1: Ungebundene Funktion WhoAmI
Die WhoAmI-Funktion ist eine einfache und häufig verwendete ungebundene Funktion.
Anforderung:
GET [Organization Uri]/api/data/v9.2/WhoAmI HTTP/1.1
OData-MaxVersion: 4.0
OData-Version: 4.0
If-None-Match: null
Accept: application/json
Antwort:
HTTP/1.1 200 OK
OData-Version: 4.0
{
"@odata.context": "[Organization Uri]/api/data/v9.2/$metadata#Microsoft.Dynamics.CRM.WhoAmIResponse",
"BusinessUnitId": "11bb11bb-cc22-dd33-ee44-55ff55ff55ff",
"UserId": "22cc22cc-dd33-ee44-ff55-66aa66aa66aa",
"OrganizationId": "00aa00aa-bb11-cc22-dd33-44ee44ee44ee"
}
Konsolenausgabe:
WhoAmI tells us:
WhoAmIResponse.BusinessUnitId:11bb11bb-cc22-dd33-ee44-55ff55ff55ff
WhoAmIResponse.UserId:22cc22cc-dd33-ee44-ff55-66aa66aa66aa
WhoAmIResponse.OrganizationId:00aa00aa-bb11-cc22-dd33-44ee44ee44ee
Verwenden Sie den BusinessUnitId hier abgerufenen Wert in Abschnitt 8: Bound Action AddPrivilegesRole.
Abschnitt 2: Ungebundene Funktion FormatAddress
Die FormatAddress-Funktion ist eine ungebundene Funktion, die Parameter erfordert. Sie gibt eine Zeichenfolge zurück, die eine Adresse gemäß den spezifischen Anforderungen des Landes oder des regionalen Formats darstellt.
Legen Sie in diesem Beispiel die Parameter mithilfe von Abfragezeichenfolgenparameterwerten fest.
Eine Anfrage nach einer Adresse in den Vereinigten Staaten:
Anforderung:
GET [Organization Uri]/api/data/v9.2/FormatAddress(Line1=@p1,City=@p2,StateOrProvince=@p3,PostalCode=@p4,Country=@p5)?@p1='123%20Maple%20St.'&@p2='Seattle'&@p3='WA'&@p4='98007'&@p5='USA' HTTP/1.1 OData-MaxVersion: 4.0 OData-Version: 4.0 If-None-Match: null Accept: application/jsonAntwort:
HTTP/1.1 200 OK OData-Version: 4.0 { "@odata.context": "[Organization Uri]/api/data/v9.2/$metadata#Microsoft.Dynamics.CRM.FormatAddressResponse", "Address": "123 Maple St.\r\nSeattle, WA 98007\r\nUSA" }Konsolenausgabe:
USA Formatted Address: 123 Maple St. Seattle, WA 98007 USAEine Anfrage nach einer Adresse in Japan.
Anforderung:
GET [Organization Uri]/api/data/v9.2/FormatAddress(Line1=@p1,City=@p2,StateOrProvince=@p3,PostalCode=@p4,Country=@p5)?@p1='1-2-3%20Sakura'&@p2='Nagoya'&@p3='Aichi'&@p4='455-2345'&@p5='JAPAN' HTTP/1.1 OData-MaxVersion: 4.0 OData-Version: 4.0 If-None-Match: null Accept: application/jsonAntwort:
HTTP/1.1 200 OK OData-Version: 4.0 { "@odata.context": "[Organization Uri]/api/data/v9.2/$metadata#Microsoft.Dynamics.CRM.FormatAddressResponse", "Address": "455-2345\r\nAichi\r\nNagoya\r\n1-2-3 Sakura\r\nJAPAN" }Konsolenausgabe:
JAPAN Formatted Address: 455-2345 Aichi Nagoya 1-2-3 Sakura JAPAN
Abschnitt 3: Ungebundene Funktion InitializeFrom
Die Funktion InitializeFrom ist eine ungebundene Funktion, die Parameter erfordert. Diese Funktion gibt die Daten für einen neuen Datensatz zurück, der im Kontext eines vorhandenen Datensatzes erstellt werden soll. Abhängig von den Konfigurationsdaten, um zu steuern, welche Daten kopiert werden sollen, enthält die zurückgegebenen Datensatzdaten Daten, die aus dem ursprünglichen Datensatz kopiert wurden.
Weitere Informationen:
- Erstellen Sie einen Datensatz aus einem anderen Datensatz
- Tabellenspalten zuordnen
- Anpassen von Tabellen- und Spalten-Zuordnungen
Erstellen Sie einen Datensatz als Originaldatensatz:
Anforderung:
POST [Organization Uri]/api/data/v9.2/accounts HTTP/1.1 OData-MaxVersion: 4.0 OData-Version: 4.0 If-None-Match: null Accept: application/json { "accountcategorycode": 1, "address1_addresstypecode": 3, "address1_city": "Redmond", "address1_country": "USA", "address1_line1": "123 Maple St.", "address1_name": "Corporate Headquarters", "address1_postalcode": "98000", "address1_shippingmethodcode": 4, "address1_stateorprovince": "WA", "address1_telephone1": "555-1234", "customertypecode": 3, "description": "Contoso is a business consulting company.", "emailaddress1": "info@contoso.com", "industrycode": 7, "name": "Contoso Consulting", "numberofemployees": 150, "ownershipcode": 2, "preferredcontactmethodcode": 2, "telephone1": "(425) 555-1234" }Antwort:
HTTP/1.1 204 NoContent OData-Version: 4.0 OData-EntityId: [Organization Uri]/api/data/v9.2/accounts(22cc22cc-dd33-ee44-ff55-66aa66aa66aa)Verwenden Sie
InitializeFrom, um die Daten für einen neuen Datensatz aus dem ursprünglichen Datensatz zu erhalten.Anforderung:
GET [Organization Uri]/api/data/v9.2/InitializeFrom(EntityMoniker=@p1,TargetEntityName=@p2,TargetFieldType=@p3)?@p1={'@odata.id':'accounts(22cc22cc-dd33-ee44-ff55-66aa66aa66aa)'}&@p2='account'&@p3=Microsoft.Dynamics.CRM.TargetFieldType'ValidForCreate' HTTP/1.1 OData-MaxVersion: 4.0 OData-Version: 4.0 If-None-Match: null Accept: application/jsonAntwort:
HTTP/1.1 200 OK Preference-Applied: return=representation OData-Version: 4.0 { "@odata.context": "[Organization Uri]/api/data/v9.2/$metadata#accounts/$entity", "@odata.type": "#Microsoft.Dynamics.CRM.account", "parentaccountid@odata.bind": "accounts(22cc22cc-dd33-ee44-ff55-66aa66aa66aa)" }Konsolenausgabe:
New data based on original record: { "@odata.context": "[Organization URI]/api/data/v9.2/$metadata#accounts/$entity", "@odata.type": "#Microsoft.Dynamics.CRM.account", "parentaccountid@odata.bind": "accounts(22cc22cc-dd33-ee44-ff55-66aa66aa66aa)" }Anmerkung
Wenn für diese Beziehung keine Spalten zugeordnet sind, werden nur die minimalen Spaltenwerte eingeschlossen, wie im vorherigen Beispiel gezeigt. In diesem Fall ist der einzige Wert der
parentaccountid-Lookup, um den neuen Datensatz dem Original zuzuordnen.Wenn alle verfügbaren Spalten für diese Beziehung zugeordnet sind, enthält der zurückgegebene Wert z.B. mehr Daten aus dem ursprünglichen Datensatz:
{ "@odata.context": "[Organization URI]/api/data/v9.2/$metadata#accounts/$entity", "@odata.type": "#Microsoft.Dynamics.CRM.account", "territorycode": 1, "address2_freighttermscode": 1, "address2_shippingmethodcode": 1, "address1_telephone1": "555-1234", "accountclassificationcode": 1, "creditonhold": false, "donotbulkemail": false, "donotsendmm": false, "emailaddress1": "info@contoso.com", "address1_line1": "123 Maple St.", "customertypecode": 3, "ownershipcode": 2, "businesstypecode": 1, "donotpostalmail": false, "donotbulkpostalmail": false, "name": "Contoso Consulting", "address1_city": "Redmond", "description": "Contoso is a business consulting company.", "donotemail": false, "address2_addresstypecode": 1, "donotphone": false, "statuscode": 1, "address1_name": "Corporate Headquarters", "followemail": true, "preferredcontactmethodcode": 2, "numberofemployees": 150, "industrycode": 7, "telephone1": "(425) 555-1234", "address1_shippingmethodcode": 4, "donotfax": false, "address1_addresstypecode": 3, "customersizecode": 1, "marketingonly": false, "accountratingcode": 1, "shippingmethodcode": 1, "address1_country": "USA", "participatesinworkflow": false, "accountcategorycode": 1, "address1_postalcode": "98000", "address1_stateorprovince": "WA", "parentaccountid@odata.bind": "accounts(fe9873ac-2f1b-ed11-b83e-00224837179f)" }Erstellen Sie einen neuen Datensatz mithilfe der von
InitializeFromzurückgegebenen Daten.Anforderung:
POST [Organization Uri]/api/data/v9.2/accounts HTTP/1.1 OData-MaxVersion: 4.0 OData-Version: 4.0 If-None-Match: null Accept: application/json { "@odata.context": "[Organization Uri]/api/data/v9.2/$metadata#accounts/$entity", "@odata.type": "#Microsoft.Dynamics.CRM.account", "parentaccountid@odata.bind": "accounts(22cc22cc-dd33-ee44-ff55-66aa66aa66aa)", "name": "Contoso Consulting Chicago Branch", "address1_city": "Chicago", "address1_line1": "456 Elm St.", "address1_name": "Chicago Branch Office", "address1_postalcode": "60007", "address1_stateorprovince": "IL", "address1_telephone1": "(312) 555-3456", "numberofemployees": 12 }Antwort:
HTTP/1.1 204 NoContent OData-Version: 4.0 OData-EntityId: [Organization Uri]/api/data/v9.2/accounts(33dd33dd-ee44-ff55-aa66-77bb77bb77bb)Konsolenausgabe:
New Record: { "@odata.context": "[Organization URI]/api/data/v9.2/$metadata#accounts/$entity", "@odata.type": "#Microsoft.Dynamics.CRM.account", "parentaccountid@odata.bind": "accounts(22cc22cc-dd33-ee44-ff55-66aa66aa66aa)", "name": "Contoso Consulting Chicago Branch", "address1_city": "Chicago", "address1_line1": "456 Elm St.", "address1_name": "Chicago Branch Office", "address1_postalcode": "60007", "address1_stateorprovince": "IL", "address1_telephone1": "(312) 555-3456", "numberofemployees": 12 }
Abschnitt 4: Ungebundene Funktion RetrieveCurrentOrganization
Die RetrieveCurrentOrganization-Funktion gibt Informationen zur aktuellen Organisation zurück. Er benötigt einen EndpointAccessType enum Typ Wert als Parameter.
RetrieveCurrentOrganization gibt einen komplexen RetrieveCurrentOrganizationResponse-Typ zurück, der eine Detail Eigenschaft enthält, die einen komplexen Typ "OrganizationDetail" darstellt. Dieser komplexe Typ verfügt über Eigenschaften, die den komplexen Typ "EndpointCollection", den Enumerationstyp "EndpointType" und den Enumerationstyp "OrganizationState" verwenden.
Anmerkung
Die URL übergibt den AccessTypeEnum-Typ-Parameterwert EndpointAccessType. Es benötigt den vollqualifizierten Namen mit dem ausgewählten Mitgliedsnamen.
Anforderung:
GET [Organization Uri]/api/data/v9.2/RetrieveCurrentOrganization(AccessType=@p1)?@p1=Microsoft.Dynamics.CRM.EndpointAccessType'Default' HTTP/1.1
OData-MaxVersion: 4.0
OData-Version: 4.0
If-None-Match: null
Accept: application/json
Antwort:
HTTP/1.1 200 OK
OData-Version: 4.0
{
"@odata.context": "[Organization Uri]/api/data/v9.2/$metadata#Microsoft.Dynamics.CRM.RetrieveCurrentOrganizationResponse",
"Detail": {
"OrganizationId": "11bb11bb-cc22-dd33-ee44-55ff55ff55ff",
"FriendlyName": "[Organization Name]",
"OrganizationVersion": "9.2.22074.168",
"EnvironmentId": "Default-aaaabbbb-0000-cccc-1111-dddd2222eeee",
"DatacenterId": "695014e1-bafd-4d7e-9d3d-2261d4aaf780",
"Geo": "NA",
"TenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee",
"UrlName": "org619726b5",
"UniqueName": "org0335df44",
"State": "Enabled",
"Endpoints": {
"Count": 3,
"IsReadOnly": false,
"Keys": [
"WebApplication",
"OrganizationService",
"OrganizationDataService"
],
"Values": [
"[Organization URI]/",
"[Organization URI]/XRMServices/2011/Organization.svc",
"[Organization URI]/XRMServices/2011/OrganizationData.svc"
]
}
}
}
Konsolenausgabe:
Data returned with RetrieveCurrentOrganizationResponse:
{
"OrganizationId": "11bb11bb-cc22-dd33-ee44-55ff55ff55ff",
"FriendlyName": "[Organization Name]",
"OrganizationVersion": "9.2.22074.168",
"EnvironmentId": "Default-aaaabbbb-0000-cccc-1111-dddd2222eeee",
"DatacenterId": "695014e1-bafd-4d7e-9d3d-2261d4aaf780",
"Geo": "NA",
"TenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee",
"UrlName": "org619726b5",
"UniqueName": "org0335df44",
"Endpoints": {
"Count": 3,
"IsReadOnly": false,
"Keys": [
"WebApplication",
"OrganizationService",
"OrganizationDataService"
],
"Values": [
"[Organization URI]/",
"[Organization URI]/XRMServices/2011/Organization.svc",
"[Organization URI]/XRMServices/2011/OrganizationData.svc"
]
},
"State": "Enabled"
}
Abschnitt 5: Ungebundene Funktion RetrieveTotalRecordCount
Die RetrieveTotalRecordCount-Funktion gibt Daten zur Gesamtzahl der Datensätze für bestimmte Entitäten zurück. Die Funktion ruft Daten aus einer Momentaufnahme ab, die weniger als 24 Stunden alt ist, sodass es sich nicht um eine genaue Anzahl zu einem bestimmten Zeitpunkt handelt.
Anforderung:
GET [Organization Uri]/api/data/v9.2/RetrieveTotalRecordCount(EntityNames=@p1)?@p1=["account","contact"] HTTP/1.1
OData-MaxVersion: 4.0
OData-Version: 4.0
If-None-Match: null
Accept: application/json
Antwort:
HTTP/1.1 200 OK
OData-Version: 4.0
{
"@odata.context": "[Organization Uri]/api/data/v9.2/$metadata#Microsoft.Dynamics.CRM.RetrieveTotalRecordCountResponse",
"EntityRecordCountCollection": {
"Count": 2,
"IsReadOnly": false,
"Keys": [
"account",
"contact"
],
"Values": [
19,
3
]
}
}
Konsolenausgabe:
The number of records for each table according to RetrieveTotalRecordCount:
account:19
contact:3
Abschnitt 6: Gebundene Funktion IsSystemAdmin benutzerdefinierte API
Um eine gebundene Funktion zu demonstrieren, importiert dieses Beispiel eine angepasste Nachricht, die in einer Lösung definiert wurde, bevor dieser Teil des Beispiels ausgeführt wird.
Das Beispiel verwendet die angepasste Nachricht sample_IsSystemAdmin, die über eine Custom-API definiert wird. Details zu dieser Custom-API finden Sie hier: Beispiel: IsSystemAdmin Custom-API.
Anmerkung
Wenn Sie eine gebundene Funktion oder Aktion verwenden, müssen Sie den vollständig qualifizierten Namen angeben, der Microsoft.Dynamics.CRM. + <Funktions- oder Aktionsname> in der URL enthält.
Anforderung:
GET [Organization Uri]/api/data/v9.2/systemusers(ce31e691-f559-ec11-8f8f-000d3a308de4)/Microsoft.Dynamics.CRM.sample_IsSystemAdmin HTTP/1.1
OData-MaxVersion: 4.0
OData-Version: 4.0
If-None-Match: null
Accept: application/json
Antwort:
HTTP/1.1 200 OK
OData-Version: 4.0
{
"@odata.context": "[Organization Uri]/api/data/v9.2/$metadata#Microsoft.Dynamics.CRM.sample_IsSystemAdminResponse",
"HasRole": false
}
In diesem Beispiel werden 10 Benutzerdatensätze abgerufen und jeder benutzer getestet, um zu ermitteln, ob jeder Benutzer über die Sicherheitsrolle "Systemadministrator" verfügt.
Konsolenausgabe:
Der tatsächliche Wert der Namen hängt von den Personen in Ihrer Umgebung ab.
Top 10 users and whether they have System Administrator role.
Gediminas Matulis does not have the System Administrator role.
Gaby Frost does not have the System Administrator role.
Henrikas Martinkus does not have the System Administrator role.
Alain Davignon HAS the System Administrator role.
Isobel Macintyre HAS the System Administrator role.
Ale Laukaitiene HAS the System Administrator role.
Rudabeh Yekta HAS the System Administrator role.
Grazina Januliene HAS the System Administrator role.
Pranciskus Sukys HAS the System Administrator role.
Asha Sawant HAS the System Administrator role.
Ein weiteres Beispiel für eine gebundene Funktion finden Sie in der Verwendung der Funktion RetrievePrincipalAccess im nächsten Beispiel.
Abschnitt 7: Ungebundene Aktion GrantAccess
Mithilfe der GrantAccess-Aktion können Benutzer bestimmte Berechtigungen für andere Benutzer in ihrer Umgebung freigeben.
Der Beispielcode demonstriert die folgenden Vorgänge:
Erstellen Sie einen freizugebenden Datensatz.
Suchen Sie einen anderen aktivierten Benutzer als den aktuellen Benutzer.
Verwenden Sie die RetrievePrincipalAccess-Funktion , um zu überprüfen, welche Zugriffsrechte der Benutzer für den von Ihnen erstellten Datensatz hat.
Anforderung:
GET [Organization Uri]/api/data/v9.2/systemusers(ce31e691-f559-ec11-8f8f-000d3a308de4)/Microsoft.Dynamics.CRM.RetrievePrincipalAccess(Target=@p1)?@p1={'@odata.id':'accounts(659876fd-6d29-ed11-9db1-00224804f8e2)'} HTTP/1.1 OData-MaxVersion: 4.0 OData-Version: 4.0 If-None-Match: null Accept: application/jsonAntwort:
HTTP/1.1 200 OK OData-Version: 4.0 { "@odata.context": "[Organization Uri]/api/data/v9.2/$metadata#Microsoft.Dynamics.CRM.RetrievePrincipalAccessResponse", "AccessRights": "ShareAccess" }Konsolenausgabe:
Testing user: Gediminas Matulis Current users access: ShareAccessWenn der Benutzer nicht über AccessRights
DeleteAccessverfügt, gewähren Sie dem Benutzer diesen Zugriff mithilfe derGrantAccessAktion.Anforderung:
POST [Organization Uri]/api/data/v9.2/GrantAccess HTTP/1.1 OData-MaxVersion: 4.0 OData-Version: 4.0 If-None-Match: null Accept: application/json { "Target": { "accountid": "659876fd-6d29-ed11-9db1-00224804f8e2", "@odata.type": "Microsoft.Dynamics.CRM.account" }, "PrincipalAccess": { "AccessMask": "DeleteAccess", "Principal": { "systemuserid": "ce31e691-f559-ec11-8f8f-000d3a308de4", "@odata.type": "Microsoft.Dynamics.CRM.systemuser" } } }Antwort:
HTTP/1.1 204 NoContent OData-Version: 4.0Nach dem Erteilen
DeleteAccesszeigt derselbe Aufruf der RetrievePrincipalAccess-Funktion an, dass der Benutzer jetzt Zugriff auf das Löschen dieses Datensatzes hat:Anforderung:
GET [Organization Uri]/api/data/v9.2/systemusers(ce31e691-f559-ec11-8f8f-000d3a308de4)/Microsoft.Dynamics.CRM.RetrievePrincipalAccess(Target=@p1)?@p1={'@odata.id':'accounts(659876fd-6d29-ed11-9db1-00224804f8e2)'} HTTP/1.1 OData-MaxVersion: 4.0 OData-Version: 4.0 If-None-Match: null Accept: application/jsonAntwort:
HTTP/1.1 200 OK OData-Version: 4.0 { "@odata.context": "[Organization Uri]/api/data/v9.2/$metadata#Microsoft.Dynamics.CRM.RetrievePrincipalAccessResponse", "AccessRights": "DeleteAccess, ShareAccess" }Konsolenausgabe:
Gediminas Matulis was granted DeleteAccess
Abschnitt 8: Gebundene Aktion AddPrivilegesRole
AddPrivilegesRole Aktion ist eine Aktion, die an den Rollen Entität Typ gebunden ist. Verwenden Sie sie, um einer Sicherheitsrolle Berechtigungen hinzuzufügen.
Der Beispielcode führt die folgenden Vorgänge aus:
Erstellen Sie eine Sicherheitsrolle. Sie müssen die Rolle mit einer Geschäftseinheit verknüpfen. Sie haben den Wert der Geschäftseinheits-ID in Abschnitt 1: Ungebundene Funktion WhoAmI abgerufen.
Anforderung:
POST [Organization Uri]/api/data/v9.2/roles HTTP/1.1 OData-MaxVersion: 4.0 OData-Version: 4.0 If-None-Match: null Accept: application/json { "businessunitid@odata.bind": "businessunits(cca3985e-c618-ea11-a811-000d3a33f066)", "name": "Test Role" }Antwort:
HTTP/1.1 204 NoContent OData-Version: 4.0 OData-EntityId: [Organization Uri]/api/data/v9.2/roles(44ee44ee-ff55-aa66-bb77-88cc88cc88cc)Rufen Sie die Rolle ab und erweitern Sie die sammlungsbewertete
roleprivileges_association-Navigationseigenschaft, um die in der Rolle enthaltenen Berechtigungen einzuschließen.Anforderung:
GET [Organization Uri]/api/data/v9.2/roles(44ee44ee-ff55-aa66-bb77-88cc88cc88cc)?$select=roleid&$expand=roleprivileges_association($select=name) HTTP/1.1 OData-MaxVersion: 4.0 OData-Version: 4.0 If-None-Match: null Accept: application/jsonAntwort:
HTTP/1.1 200 OK ETag: W/"13278232" OData-Version: 4.0 { "@odata.context": "[Organization Uri]/api/data/v9.2/$metadata#roles(roleid,roleprivileges_association(name))/$entity", "@odata.etag": "W/\"13278232\"", "roleid": "44ee44ee-ff55-aa66-bb77-88cc88cc88cc", "roleprivileges_association": [ { "@odata.etag": "W/\"142279\"", "name": "prvReadSharePointData", "privilegeid": "fecbd29c-df64-4ede-a611-47226b402c22" }, { "@odata.etag": "W/\"142304\"", "name": "prvReadSdkMessage", "privilegeid": "94c3ac2c-eb23-41cb-a903-4e2e49e910b4" }, { "@odata.etag": "W/\"142421\"", "name": "prvWriteSharePointData", "privilegeid": "cfdd12cf-090b-4599-8302-771962d2350a" }, { "@odata.etag": "W/\"142477\"", "name": "prvReadSdkMessageProcessingStepImage", "privilegeid": "122e085f-8c52-47e8-8415-875dee1c961e" }, { "@odata.etag": "W/\"142695\"", "name": "prvReadSdkMessageProcessingStep", "privilegeid": "db10a828-ec49-4035-8b7e-c58efaf169ec" }, { "@odata.etag": "W/\"142713\"", "name": "prvReadPluginAssembly", "privilegeid": "f5b50296-a212-488a-be92-cbcca8971717" }, { "@odata.etag": "W/\"142735\"", "name": "prvCreateSharePointData", "privilegeid": "5eb85025-363b-46ea-a77e-ce24159cd231" }, { "@odata.etag": "W/\"142740\"", "name": "prvReadPluginType", "privilegeid": "9365005c-4703-473b-8d3c-d073cfd8670c" }, { "@odata.etag": "W/\"142761\"", "name": "prvReadSharePointDocument", "privilegeid": "d71fc8d0-99bc-430e-abd7-d95c64f11e9c" } ] }Zeigen Sie die Anzahl der Berechtigungen an, die standardmäßig für die neue Rolle erstellt wurden.
Konsolenausgabe:
Number of privileges in new role: 9 prvReadSharePointData prvReadSdkMessage prvWriteSharePointData prvReadSdkMessageProcessingStepImage prvReadSdkMessageProcessingStep prvReadPluginAssembly prvCreateSharePointData prvReadPluginType prvReadSharePointDocumentRufen Sie die Definition der
prvCreateAccount- undprvReadAccount-Berechtigungen aus der Berechtigung EntityType ab.Anforderung:
GET [Organization Uri]/api/data/v9.2/privileges?$select=name&$filter=name eq 'prvCreateAccount' or name eq 'prvReadAccount' HTTP/1.1 OData-MaxVersion: 4.0 OData-Version: 4.0 If-None-Match: null Accept: application/jsonAntwort:
HTTP/1.1 200 OK OData-Version: 4.0 { "@odata.context": "[Organization Uri]/api/data/v9.2/$metadata#privileges(name)", "value": [ { "@odata.etag": "W/\"142189\"", "name": "prvReadAccount", "privilegeid": "886b280c-6396-4d56-a0a3-2c1b0a50ceb0" }, { "@odata.etag": "W/\"142359\"", "name": "prvCreateAccount", "privilegeid": "d26fe964-230b-42dd-ad93-5cc879de411e" } ] }Bereiten Sie eine Liste der Instanzen RolePrivilege ComplexType für die
prvCreateAccount- undprvReadAccount-Berechtigungen vor, wobei dieDepth-Eigenschaft auf PrivilegeDepth „Grundlegend“ festgelegt ist.Übergeben Sie die Liste als den
AddPrivilegesRole.Privileges-Parameter.Anforderung:
POST [Organization Uri]/api/data/v9.2/roles(44ee44ee-ff55-aa66-bb77-88cc88cc88cc)/Microsoft.Dynamics.CRM.AddPrivilegesRole HTTP/1.1 OData-MaxVersion: 4.0 OData-Version: 4.0 If-None-Match: null Accept: application/json { "Privileges": [ { "Depth": "Basic", "PrivilegeId": "886b280c-6396-4d56-a0a3-2c1b0a50ceb0", "BusinessUnitId": "cca3985e-c618-ea11-a811-000d3a33f066", "PrivilegeName": "prvReadAccount" }, { "Depth": "Basic", "PrivilegeId": "d26fe964-230b-42dd-ad93-5cc879de411e", "BusinessUnitId": "cca3985e-c618-ea11-a811-000d3a33f066", "PrivilegeName": "prvCreateAccount" } ] }Antwort:
HTTP/1.1 204 NoContent OData-Version: 4.0Rufen Sie die Berechtigungen ab, die der Rolle zugeordnet sind, um zu bestätigen, dass Sie sie hinzugefügt haben.
Anforderung:
GET [Organization Uri]/api/data/v9.2/roles(44ee44ee-ff55-aa66-bb77-88cc88cc88cc)?$select=roleid&$expand=roleprivileges_association($select=name) HTTP/1.1 OData-MaxVersion: 4.0 OData-Version: 4.0 If-None-Match: null Accept: application/jsonAntwort:
HTTP/1.1 200 OK ETag: W/"13278248" OData-Version: 4.0 { "@odata.context": "[Organization Uri]/api/data/v9.2/$metadata#roles(roleid,roleprivileges_association(name))/$entity", "@odata.etag": "W/\"13278248\"", "roleid": "44ee44ee-ff55-aa66-bb77-88cc88cc88cc", "roleprivileges_association": [ { "@odata.etag": "W/\"142189\"", "name": "prvReadAccount", "privilegeid": "886b280c-6396-4d56-a0a3-2c1b0a50ceb0" }, { "@odata.etag": "W/\"142279\"", "name": "prvReadSharePointData", "privilegeid": "fecbd29c-df64-4ede-a611-47226b402c22" }, { "@odata.etag": "W/\"142304\"", "name": "prvReadSdkMessage", "privilegeid": "94c3ac2c-eb23-41cb-a903-4e2e49e910b4" }, { "@odata.etag": "W/\"142359\"", "name": "prvCreateAccount", "privilegeid": "d26fe964-230b-42dd-ad93-5cc879de411e" }, { "@odata.etag": "W/\"142421\"", "name": "prvWriteSharePointData", "privilegeid": "cfdd12cf-090b-4599-8302-771962d2350a" }, { "@odata.etag": "W/\"142477\"", "name": "prvReadSdkMessageProcessingStepImage", "privilegeid": "122e085f-8c52-47e8-8415-875dee1c961e" }, { "@odata.etag": "W/\"142695\"", "name": "prvReadSdkMessageProcessingStep", "privilegeid": "db10a828-ec49-4035-8b7e-c58efaf169ec" }, { "@odata.etag": "W/\"142713\"", "name": "prvReadPluginAssembly", "privilegeid": "f5b50296-a212-488a-be92-cbcca8971717" }, { "@odata.etag": "W/\"142735\"", "name": "prvCreateSharePointData", "privilegeid": "5eb85025-363b-46ea-a77e-ce24159cd231" }, { "@odata.etag": "W/\"142740\"", "name": "prvReadPluginType", "privilegeid": "9365005c-4703-473b-8d3c-d073cfd8670c" }, { "@odata.etag": "W/\"142761\"", "name": "prvReadSharePointDocument", "privilegeid": "d71fc8d0-99bc-430e-abd7-d95c64f11e9c" } ] }Konsolenausgabe:
Number of privileges after: 11 prvReadAccount prvReadSharePointData prvReadSdkMessage prvCreateAccount prvWriteSharePointData prvReadSdkMessageProcessingStepImage prvReadSdkMessageProcessingStep prvReadPluginAssembly prvCreateSharePointData prvReadPluginType prvReadSharePointDocument
Abschnitt 9: Beispielaufzeichnungen löschen
Fügen Sie jeden datensatz, den Sie in diesem Beispiel erstellen, zu einer Liste hinzu, damit Sie sie am Ende löschen können. Verwenden Sie eine $batch Anforderung zum Löschen dieser Datensätze.
Anforderung:
POST [Organization Uri]/api/data/v9.2/$batch HTTP/1.1
OData-MaxVersion: 4.0
OData-Version: 4.0
If-None-Match: null
Accept: application/json
--batch_d6010246-cd97-429f-bc05-cf20054cfe8a
Content-Type: application/http
Content-Transfer-Encoding: binary
Content-Length: 121
DELETE /api/data/v9.2/accounts(22cc22cc-dd33-ee44-ff55-66aa66aa66aa) HTTP/1.1
--batch_d6010246-cd97-429f-bc05-cf20054cfe8a
Content-Type: application/http
Content-Transfer-Encoding: binary
Content-Length: 121
DELETE /api/data/v9.2/accounts(33dd33dd-ee44-ff55-aa66-77bb77bb77bb) HTTP/1.1
--batch_d6010246-cd97-429f-bc05-cf20054cfe8a
Content-Type: application/http
Content-Transfer-Encoding: binary
Content-Length: 122
DELETE /api/data/v9.2/solutions(b37bc86a-4c3a-41be-b35d-ddfd129276c5) HTTP/1.1
--batch_d6010246-cd97-429f-bc05-cf20054cfe8a
Content-Type: application/http
Content-Transfer-Encoding: binary
Content-Length: 121
DELETE /api/data/v9.2/accounts(659876fd-6d29-ed11-9db1-00224804f8e2) HTTP/1.1
--batch_d6010246-cd97-429f-bc05-cf20054cfe8a
Content-Type: application/http
Content-Transfer-Encoding: binary
Content-Length: 118
DELETE /api/data/v9.2/roles(44ee44ee-ff55-aa66-bb77-88cc88cc88cc) HTTP/1.1
--batch_d6010246-cd97-429f-bc05-cf20054cfe8a--
Antwort:
HTTP/1.1 200 OK
OData-Version: 4.0
--batchresponse_cb852192-c300-4ed7-a54f-dc5fc7ee27c3
Content-Type: application/http
Content-Transfer-Encoding: binary
HTTP/1.1 204 No Content
OData-Version: 4.0
--batchresponse_cb852192-c300-4ed7-a54f-dc5fc7ee27c3
Content-Type: application/http
Content-Transfer-Encoding: binary
HTTP/1.1 204 No Content
OData-Version: 4.0
--batchresponse_cb852192-c300-4ed7-a54f-dc5fc7ee27c3
Content-Type: application/http
Content-Transfer-Encoding: binary
HTTP/1.1 204 No Content
OData-Version: 4.0
--batchresponse_cb852192-c300-4ed7-a54f-dc5fc7ee27c3
Content-Type: application/http
Content-Transfer-Encoding: binary
HTTP/1.1 204 No Content
OData-Version: 4.0
--batchresponse_cb852192-c300-4ed7-a54f-dc5fc7ee27c3
Content-Type: application/http
Content-Transfer-Encoding: binary
HTTP/1.1 204 No Content
OData-Version: 4.0
--batchresponse_cb852192-c300-4ed7-a54f-dc5fc7ee27c3--
Konsolenausgabe:
Deleting created records.
Siehe auch
Verwenden der Dataverse-Web-API
Nutzen von Web-API-Funktionen
Web-API-Aktionen verwenden
Internet-API-Funktionen- und Aktionen-Beispiel (C#)
Beispiele von Funktionen und Aktionen (clientseitiges JavaScript)
Web-API-Funktionen und -Aktionen (Beispiel) (PowerShell)