Web API-Funktionen- und Aktionen-Beispiel
Diese Beispielgruppe veranschaulicht, wie ungebundene und gebundene Funktionen und Aktionen, einschließlich benutzerdefinierter Aktionen mithilfe dem Microsoft Dataverse Web API angerufen werden. Dieses Beispiel wurde als ein separates Projekt für die folgenden Sprachen implementiert:
- Beispiel für Funktionen und Aktionen (C#)
- Beispiele von Funktionen und Aktionen (clientseitiges JavaScript)
Dieser Artikel erläutert die Struktur und den Inhalt des Beispiels auf einer höheren, sprachneutralen Ebene. In den oben verlinkten Beispielartikeln finden Sie sprachspezifische Implementierungsdetails zur Durchführung der in diesem Artikel beschriebenen Vorgänge.
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 Diskussion zu den ausgeführten Dataverse-Web-API-Vorgängen, sowie den entsprechenden HTTP-Nachrichten und den Ausgaben, die den Konsolen zugeordnet sind.
Abschnitt 1: Ungebundene Funktion WhoAmI
WhoAmI Funktion ist eine einfache und allgemein 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": "cca3985e-c618-ea11-a811-000d3a33f066",
"UserId": "2138bd90-ec19-ea11-a811-000d3a334e11",
"OrganizationId": "f2c9290b-0806-4d48-bf9c-3814d4286755"
}
Konsolenausgabe:
WhoAmI tells us:
WhoAmIResponse.BusinessUnitId:cca3985e-c618-ea11-a811-000d3a33f066
WhoAmIResponse.UserId:2138bd90-ec19-ea11-a811-000d3a334e11
WhoAmIResponse.OrganizationId:f2c9290b-0806-4d48-bf9c-3814d4286755
Der hier abgerufene BusinessUnitId
-Wert wird in Abschnitt 8: Gebundene Aktion AddPrivilegesRole verwendet.
Abschnitt 2: Ungebundene Funktion FormatAddress
Die Funktion FormatAddress ist eine ungebundene Funktion, für die Parameter festgelegt werden müssen. Sie gibt eine Zeichenfolge zurück, die eine Adresse gemäß den landesspezifischen/regionalen Formatanforderungen darstellt.
In diesem Beispiel werden die Parameter mithilfe von Parameterwerten für Abfragezeichenfolgen festgelegt.
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/json
Antwort:
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 USA
Eine 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/json
Antwort:
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
InitializeFrom Funktion ist eine ungebundene Funktion, die Parameter benötigt. 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 zum Steuern, welche Daten kopiert werden, umfassen 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(98d463e4-6d29-ed11-9db1-00224804f8e2)
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(98d463e4-6d29-ed11-9db1-00224804f8e2)'}&@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/json
Antwort:
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(98d463e4-6d29-ed11-9db1-00224804f8e2)" }
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(98d463e4-6d29-ed11-9db1-00224804f8e2)" }
Hinweis
Wenn dieser Beziehung keine Spalten zugeordnet sind, werden nur die minimalen Spaltenwerte wie oben gezeigt eingeschlossen. In diesem Fall nur das
parentaccountid
-Lookup, um den neuen Datensatz dem Original zuzuweisen.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 mit Daten, die mit
InitializeFrom
zurückgegeben wurden.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(98d463e4-6d29-ed11-9db1-00224804f8e2)", "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(9ad463e4-6d29-ed11-9db1-00224804f8e2)
Konsolenausgabe:
New Record: { "@odata.context": "[Organization URI]/api/data/v9.2/$metadata#accounts/$entity", "@odata.type": "#Microsoft.Dynamics.CRM.account", "parentaccountid@odata.bind": "accounts(98d463e4-6d29-ed11-9db1-00224804f8e2)", "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 Funktion RetrieveCurrentOrganization gibt Informationen über die aktuelle Organisation zurück. Er benötigt einen EndpointAccessType enum Typ Wert als Parameter.
RetrieveCurrentOrganization
gibt einen RetrieveCurrentOrganizationResponse komplexen Typ zurück, der eine Detail
-Eigenschaft enthält, die ein OrganizationDetail komplexer Typ ist, der komplexe Eigenschaften hat, die den EndpointCollection komplexen Typ, EndpointType enum Typ und OrganizationState enum Typ verwenden
Hinweis
Beachten Sie, dass der AccessType
Parameterwert EndpointAccessType enum type in der URL übergeben wird. Der vollständig qualifizierte Name mit dem ausgewählten Mitgliedsnamen ist erforderlich.
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": "f2c9290b-0806-4d48-bf9c-3814d4286755",
"FriendlyName": "[Organization Name]",
"OrganizationVersion": "9.2.22074.168",
"EnvironmentId": "Default-f6976b02-5a42-4e90-ac3d-8bf516ce0859",
"DatacenterId": "695014e1-bafd-4d7e-9d3d-2261d4aaf780",
"Geo": "NA",
"TenantId": "f6976b02-5a42-4e90-ac3d-8bf516ce0859",
"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": "f2c9290b-0806-4d48-bf9c-3814d4286755",
"FriendlyName": "[Organization Name]",
"OrganizationVersion": "9.2.22074.168",
"EnvironmentId": "Default-f6976b02-5a42-4e90-ac3d-8bf516ce0859",
"DatacenterId": "695014e1-bafd-4d7e-9d3d-2261d4aaf780",
"Geo": "NA",
"TenantId": "f6976b02-5a42-4e90-ac3d-8bf516ce0859",
"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
RetrieveTotalRecordCount Funktion gibt Daten über die Gesamtzahl der Datensätze für bestimmte Entitäten zurück. Die abgefragten Daten stammen aus einer Momentaufnahme der letzten 24 Stunden, es handelt sich also nicht um eine genaue Zählung zu einem bestimmten Zeitpunkt.
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 Custom-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.
Hinweis
Wenn Sie eine gebundene Funktion oder Aktion verwenden, müssen Sie den vollständig qualifizierten Namen angeben, der Folgendes beinhaltet: Name der Microsoft.Dynamics.CRM.
+ <-Funktion oder Aktion> in der URL.
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
}
Dieses Beispiel ruft 10 Datensätze von Benutzern ab und testet jeden einzelnen, um festzustellen, ob jeder Benutzer die Sicherheitsrolle Systemadministrator hat.
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
GrantAccess Aktion ist eine ungebundene Aktion, die es erlaubt, anderen Benutzern in ihrer Umgebung bestimmte Rechte zu gewähren.
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 Funktion RetrievePrincipalAccess, um festzustellen, welche Zugriffsrechte der Benutzer für den 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/json
Antwort:
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: ShareAccess
Wenn der Benutzer AccessRights.
DeleteAccess
nicht hat, gewähren Sie dem Benutzer diesen Zugriff mithilfe derGrantAccess
-Aktion.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.0
Sobald
DeleteAccess
erteilt wurde, zeigt derselbe Aufruf von RetrievePrincipalAccess Function, dass er jetzt Zugriff hat, um diesen Datensatz zu löschen: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/json
Antwort:
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. Es ist der Weg, um einer Sicherheitsrolle Privilegien hinzuzufügen.
Der Beispielcode führt die folgenden Vorgänge aus:
Erstellen Sie eine Sicherheitsrolle. Die Rolle muss einer Unternehmenseinheit zugeordnet sein. Der ID-Wert der Geschäftseinheit wurde 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(669876fd-6d29-ed11-9db1-00224804f8e2)
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(669876fd-6d29-ed11-9db1-00224804f8e2)?$select=roleid&$expand=roleprivileges_association($select=name) HTTP/1.1 OData-MaxVersion: 4.0 OData-Version: 4.0 If-None-Match: null Accept: application/json
Antwort:
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": "669876fd-6d29-ed11-9db1-00224804f8e2", "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 prvReadSharePointDocument
Rufen Sie die Definition der Rechte
prvCreateAccount
undprvReadAccount
von privilege 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/json
Antwort:
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 von RolePrivilege ComplexType-Instanzen für die Rechte
prvCreateAccount
undprvReadAccount
vor, bei denen dieDepth
-Eigenschaft auf PrivilegeDepth.'Basic' festgelegt ist.Übergeben Sie die Liste als den
AddPrivilegesRole.Privileges
-Parameter.Anforderung:
POST [Organization Uri]/api/data/v9.2/roles(669876fd-6d29-ed11-9db1-00224804f8e2)/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.0
Rufen Sie die mit der Rolle verknüpften Berechtigungen erneut ab, um zu bestätigen, dass sie hinzugefügt wurden.
Anforderung:
GET [Organization Uri]/api/data/v9.2/roles(669876fd-6d29-ed11-9db1-00224804f8e2)?$select=roleid&$expand=roleprivileges_association($select=name) HTTP/1.1 OData-MaxVersion: 4.0 OData-Version: 4.0 If-None-Match: null Accept: application/json
Antwort:
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": "669876fd-6d29-ed11-9db1-00224804f8e2", "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
Jeder in diesem Beispiel erstellte Datensatz wurde einer Liste hinzugefügt, die am Ende gelöscht wird. Diese Datensätze werden mit einer $batch
-Anfrage gelöscht.
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(98d463e4-6d29-ed11-9db1-00224804f8e2) 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(9ad463e4-6d29-ed11-9db1-00224804f8e2) 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(669876fd-6d29-ed11-9db1-00224804f8e2) 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#)
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).