Freigeben über


Komplexe Web-API- und Enumerationstypen

Innerhalb des CSDL-$metadata-Dokuments gibt es ComplexType- und EnumType-Elemente.

Komplexe Typen

Komplexe Typen sind schlüssellose strukturierte Typen, die aus einer Reihe von Eigenschaften bestehen. Komplexe Typen werden häufig als Eigenschaftswerte in Tabellendefinitionen oder als Parameter oder Rückgabewerte für Vorgänge verwendet.

Beispielsweise gibt die WhoAmI-Funktion diesen komplexen Typ "WhoAmIResponse" zurück:

<ComplexType Name="WhoAmIResponse">  
  <Property Name="BusinessUnitId" Type="Edm.Guid" Nullable="false" />  
  <Property Name="UserId" Type="Edm.Guid" Nullable="false" />  
  <Property Name="OrganizationId" Type="Edm.Guid" Nullable="false" />  
</ComplexType>

Enumerationstypen

Enumerationstypen sind benannte Grundtypen, deren Werte benannte Konstanten mit zugrunde liegenden ganzzahligen Werten sind.

Der folgende XML-Knoten ist beispielsweise die Definition des AccessRights-Enumerationstyps.

<EnumType Name="AccessRights">  
  <Member Name="None" Value="0" />  
  <Member Name="ReadAccess" Value="1" />  
  <Member Name="WriteAccess" Value="2" />  
  <Member Name="AppendAccess" Value="4" />  
  <Member Name="AppendToAccess" Value="16" />  
  <Member Name="CreateAccess" Value="32" />  
  <Member Name="DeleteAccess" Value="65536" />  
  <Member Name="ShareAccess" Value="262144" />  
  <Member Name="AssignAccess" Value="524288" />  
</EnumType>

Der AccessRights Enumerationstyp wird für die AccessMask Eigenschaft des komplexen Typs PrincipalAccess verwendet, der zum Festlegen des PrincipalAccess Parameters für die ModifyAccess-Aktion verwendet wird. Verwenden Sie diese Aktion, um den Zugriff beim Freigeben eines Datensatzes zu ändern.

Im folgenden Beispiel werden die Zugriffsrechte ReadAccess, WriteAccess, DeleteAccess, AppendAccess und AssignAccess auf den account-Datensatz gewährt, der mit dem Parameter Target für den systemuser festgelegt ist, der durch die Eigenschaft Principal des komplexen Typs PrincipalAccess bestimmt wird.

Anforderung:

POST [Organization URI]/api/data/v9.2/ModifyAccess
OData-Version: 4.0
OData-MaxVersion: 4.0
Content-Type: application/json; charset=UTF-8
Accept: application/json

{
    "Target": {
        "accountid": "cbcf8bbc-aa41-ec11-8c62-000d3a53893c",
        "@odata.type": "Microsoft.Dynamics.CRM.account"
    },
    "PrincipalAccess": {
        "Principal": {
            "systemuserid": "8061643d-ebf7-e811-a974-000d3a1e1c9a",
            "@odata.type": "Microsoft.Dynamics.CRM.systemuser"
        },
        "AccessMask": "ReadAccess,WriteAccess,DeleteAccess,AppendAccess,AssignAccess"
    }
}

Antwort:

HTTP/1.1 204 No Content

Nächste Schritte

Ausführen von Vorgängen mithilfe der Web-API.

Siehe auch

Web-API-Typen und -Vorgänge
Web-API-Dienstdokumente
Web-API EntityTypes
Web-API-Eigenschaften
Web-API-Navigationseigenschaften
Web-API-Aktionen
Web-API-Funktionen
Verwenden der Dataverse-Web-API
OData Version 4.0. Komplexer Typ
OData Version 4.0-Enumerationstyp