Tabellendefinitionen über die Web-API erstellen und aktualisieren

Die Web-API unterstützt das Arbeiten mit Beziehungsdefinitionen (Metadaten). Die in Tabellenbeziehungsdefinitionen beschriebenen Konzepte gelten auch für die Web-API.

Eignung für Beziehungen

Bevor Sie eine Tabelle (Enität) erstellen, müssen Sie bestätigen, ob die Tabelle geeignet ist, um an der Beziehung teilzunehmen. Sie können die Aktionen verwenden, die in der folgenden Tabelle aufgeführt sind, um die Eignung zu bestimmen. Diese Aktionen entsprechen den in Berechtigung für Tabellenbeziehungen beschriebenen SDK für .NET-Nachrichten.

Aktion Beschreibung
CanBeReferenced Action Überprüft, ob die angegebene Entität als primäre Entität (eins) in einer 1:n-Beziehung verwendet werden kann.
CanBeReferencing Action Überprüft, ob die angegebene Entität als verweisende Entität (viele) in einer 1:n-Beziehung verwendet werden kann.
CanManyToMany Action Überprüft, ob die Entität an einer n:n-Beziehung teilnehmen kann.
GetValidManyToMany Function Gibt den Satz von Entitäten zurück, die an einer n:n-Beziehung teilnehmen können.
GetValidReferencedEntities Function Gibt den Satz von Entitäten zurück, der als die primäre Entität (eins) von der angegebenen Entität in einer 1: n-Beziehung gültig ist.
GetValidReferencingEntities Function Gibt den Satz von Entitäten zurück, der als die verknüpfte Entität (viele) mit der angegebenen Entität in einer 1:n-Beziehung gültig ist.

Erstellen einer 1:n-Beziehung

Wenn Sie eine 1:n-Beziehung erstellen, definieren Sie sie, indem Sie den OneToManyRelationshipMetadata EntityType verwenden. Die Definition umfasst das Suchattribut, da mit dem LookupAttributeMetadata EntityType definiert wird, und erfordert auch komplexe Eigenschaften unter Verwendung von AssociatedMenuConfiguration ComplexType, CascadeConfiguration ComplexType, Label ComplexType und LocalizedLabel ComplexType. Das Suchattribut wird auf die einzelwertige Navigationseigenschaft des OneToManyRelationshipMetadata-Objekts festgelegt und wird gleichzeitig mit der tiefen Einfügung erstellt. Mehr Informationen: Erstellen Sie verwandte Tabellenzeilen in einem Vorgang und Metadaten für Tabellenbeziehungen

Wenn Sie einen benutzerdefinierten Navigationseigenschaftennamen für eine 1:n-Beziehung anwenden, können Sie Werte für die Eigenschaften ReferencingEntityNavigationPropertyName und ReferencedEntityNavigationPropertyName festlegen.

Nachdem Sie den erforderlichen JSON generiert haben, um die Beziehung und das Suchattribut zu definieren, POST der JSON zum RelationshipDefinitions Entitätssatz wird festgelegt. Sie müssen den @odata.type Eigenschaftswert von Microsoft.Dynamics.CRM.OneToManyRelationshipMetadata einschließen, um die Art der Beziehung zu klären, die Sie erstellen, da mit demselben Entitätssatz viele-zu-viele Beziehungen erstellt werden. Der URI für die resultierende Beziehung wird in der Antwort zurückgegeben.

Anforderung:

POST [Organization URI]/api/data/v9.2/RelationshipDefinitions HTTP/1.1  
Accept: application/json  
Content-Type: application/json; charset=utf-8  
OData-MaxVersion: 4.0  
OData-Version: 4.0  
  
{  
 "SchemaName": "new_contact_new_bankaccount",  
 "@odata.type": "Microsoft.Dynamics.CRM.OneToManyRelationshipMetadata",  
 "AssociatedMenuConfiguration": {  
  "Behavior": "UseCollectionName",  
  "Group": "Details",  
  "Label": {  
   "@odata.type": "Microsoft.Dynamics.CRM.Label",  
   "LocalizedLabels": [  
    {  
     "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",  
     "Label": "Bank Accounts",  
     "LanguageCode": 1033  
    }  
   ],  
   "UserLocalizedLabel": {  
    "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",  
    "Label": "Bank Accounts",  
    "LanguageCode": 1033  
   }  
  },  
  "Order": 10000  
 },  
 "CascadeConfiguration": {  
  "Assign": "Cascade",  
  "Delete": "Cascade",  
  "Merge": "Cascade",  
  "Reparent": "Cascade",  
  "Share": "Cascade",  
  "Unshare": "Cascade"  
 },  
 "ReferencedAttribute": "contactid",  
 "ReferencedEntity": "contact",  
 "ReferencingEntity": "new_bankaccount",  
 "Lookup": {  
  "AttributeType": "Lookup",  
  "AttributeTypeName": {  
   "Value": "LookupType"  
  },  
  "Description": {  
   "@odata.type": "Microsoft.Dynamics.CRM.Label",  
   "LocalizedLabels": [  
    {  
     "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",  
     "Label": "The owner of the account",  
     "LanguageCode": 1033  
    }  
   ],  
   "UserLocalizedLabel": {  
    "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",  
    "Label": "The owner of the account",  
    "LanguageCode": 1033  
   }  
  },  
  "DisplayName": {  
   "@odata.type": "Microsoft.Dynamics.CRM.Label",  
   "LocalizedLabels": [  
    {  
     "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",  
     "Label": "Account Owner",  
     "LanguageCode": 1033  
    }  
   ],  
   "UserLocalizedLabel": {  
    "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",  
    "Label": "Account Owner",  
    "LanguageCode": 1033  
   }  
  },  
  "RequiredLevel": {  
   "Value": "ApplicationRequired",  
   "CanBeChanged": true,  
   "ManagedPropertyLogicalName": "canmodifyrequirementlevelsettings"  
  },  
  "SchemaName": "new_AccountOwner",  
  "@odata.type": "Microsoft.Dynamics.CRM.LookupAttributeMetadata"  
 }  
}  

Antwort:

HTTP/1.1 204 No Content  
OData-Version: 4.0  
OData-EntityId: [Organization URI]/api/data/v9.2/RelationshipDefinitions(d475020f-5d7c-e511-80d2-00155d2a68d2)  

Erstellen einer n:n-Beziehung

Wenn Sie einen benutzerdefinierten Navigationseigenschaftennamen für eine n:n-Beziehung anwenden, können Sie Werte für die Eigenschaften Entity1NavigationPropertyName und Entity2NavigationPropertyName festlegen.

Nachdem Sie den erforderlichen JSON generiert haben, um die Beziehung und das Suchattribut zu definieren, POST der JSON zum RelationshipDefinitions Entitätssatz wird festgelegt. Sie müssen den @odata.type Eigenschaftswert von Microsoft.Dynamics.CRM.ManyToManyRelationshipMetadata einschließen, um die Art der Beziehung zu klären, die Sie erstellen, da mit demselben Entitätssatz eine-zu-viele Beziehungen erstellt werden. Der URI für die resultierende Beziehung wird in der Antwort zurückgegeben.

Anforderung:

POST [Organization URI]/api/data/v9.2/RelationshipDefinitions HTTP/1.1  
Accept: application/json  
Content-Type: application/json; charset=utf-8  
OData-MaxVersion: 4.0  
OData-Version: 4.0  
  
{  
 "SchemaName": "new_accounts_campaigns",  
 "@odata.type": "Microsoft.Dynamics.CRM.ManyToManyRelationshipMetadata",  
 "Entity1AssociatedMenuConfiguration": {  
  "Behavior": "UseLabel",  
  "Group": "Details",  
  "Label": {  
   "@odata.type": "Microsoft.Dynamics.CRM.Label",  
   "LocalizedLabels": [  
    {  
     "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",  
     "Label": "Account",  
     "LanguageCode": 1033  
    }  
   ],  
   "UserLocalizedLabel": {  
    "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",  
    "Label": "Account",  
    "LanguageCode": 1033  
   }  
  },  
  "Order": 10000  
 },  
 "Entity1LogicalName": "account",  
 "Entity2AssociatedMenuConfiguration": {  
  "Behavior": "UseLabel",  
  "Group": "Details",  
  "Label": {  
   "@odata.type": "Microsoft.Dynamics.CRM.Label",  
   "LocalizedLabels": [  
    {  
     "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",  
     "Label": "Campaign",  
     "LanguageCode": 1033  
    }  
   ],  
   "UserLocalizedLabel": {  
    "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",  
    "Label": "Campaign",  
    "LanguageCode": 1033  
   }  
  },  
  "Order": 10000  
 },  
 "Entity2LogicalName": "campaign",  
 "IntersectEntityName": "new_accounts_campaigns"  
}  

Antwort:

HTTP/1.1 204 No Content  
OData-Version: 4.0  
OData-EntityId: [Organization URI]/api/data/v9.2/RelationshipDefinitions(420245fa-c77c-e511-80d2-00155d2a68d2)    

Erstellen von Beziehungen, um eine Suche in mehreren Tabellen zu unterstützen

Suchtypspalten mit mehreren Tabellen ermöglichen es einem Benutzer, eine bestimmte Tabelle zu verwenden, die mehrere Eins-zu-Viele-(1:M-)Beziehungen mit anderen Tabellen in der Umgebung hat. Eine einzelne Suchtypspalte kann auf mehrere andere Tabellen verweisen. Ein Suchwert, der an die Spalte mit mehreren Tabellen übermittelt wird, wird mit einem Datensatz in einer der verknüpften Tabellen abgeglichen.

Mehr Informationen: Verwenden von Suchspalten mit mehreren Tabellen

Aktualisieren von Beziehungen

Wie in Aktualisieren Sie die Tabellendefinitionen diskutiert aktualisieren Sie Beziehungen mithilfe der HTTP-PUT-Methode, um die vorhandene Definition durch Änderungen zu ersetzen, die Sie anwenden möchten. Sie können einzelne Eigenschaften nicht wie bei Geschäftsdatentabellen mit der HTTP-PATCH-Methode bearbeiten. Wie mit Entitäten und Attributen können Sie eine MSCRM.MergeLabels-Kopfzeile mit dem auf true gesetzten Wertsatz aufnehmen, um das Überschreiben von lokalisierten Beschriftungen zu vermeiden, die in dem Update enthalten sind, und Sie müssen die Anpassungen veröffentlichen, damit sie im System aktiv sind.

Beziehungen löschen

Wenn Sie eine Beziehung mit der Web-API löschen möchten, können Sie die HTTP DELETE-Methode mit dem URI für die Beziehung verwenden.

Siehe auch

Verwenden Sie die Web-API mit Tabellendefinitionen
Abfragen von Tabellendefinitionen mithilfe der Web-API
Rufen Sie Tabellendefinitionen nach Name oder MetadataId ab
Modellieren Sie Tabellen und Spalten mithilfe der Web-API
Beispiel für Web-API-Tabellenschemavorgänge
Beispiel für Web-API-Tabellenschemavorgänge (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).