Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Sie können alle gleichen Vorgänge für Tabellendefinitionen mithilfe der Web-API ausführen, die Sie mit dem SDK für .NET verwenden können. Dieser Artikel konzentriert sich auf die Arbeit mit Tabellendefinitionen (Metadaten) mithilfe der Web-API. Details zu den Tabellendefinitionseigenschaften finden Sie unter Anpassen von Tabellendefinitionen und EntityMetadata EntityType.
Tipp
Entitäten, Attribute und globale Optionssätze (auch als Tabellen, Spalten und Auswahlmöglichkeiten bezeichnet) sind alle Lösungskomponenten. Wenn Sie sie erstellen, können Sie sie einer Lösung zuordnen, indem Sie den Anforderungsheader MSCRM.SolutionUniqueName verwenden und den Wert auf den eindeutigen Namen der Lösung festlegen, zu der sie gehört.
Erstellen von Tabellendefinitionen
Um eine Tabellendefinition zu erstellen, POST Sie die JSON-Darstellung der Entitätsdefinitionsdaten an den EntityDefinitions-Entitätssatzpfad. Die Entität muss die Definition für das primäre Namensattribute enthalten. Sie müssen keine Werte für alle Eigenschaften festlegen. Die Elemente in dieser Liste mit Ausnahme der Beschreibung sind erforderlich, obwohl das Festlegen einer Beschreibung eine empfohlene bewährte Methode ist. Eigenschaftswerte, die Sie nicht angeben, werden auf Standardwerte festgelegt. Um die Standardwerte zu verstehen, sehen Sie sich das Beispiel im Abschnitt " Tabellendefinitionen aktualisieren" an. Im Beispiel in diesem Artikel werden die folgenden Entitätseigenschaften verwendet.
| EntityMetadata-Eigenschaft | Wert |
|---|---|
SchemaName |
new_BankAccount
Anmerkung: Sie sollten das Anpassungspräfix angeben, das dem Lösungsherausgeber entspricht. Hier wird der Standardwert "new_" verwendet, Aber Sie sollten das Präfix auswählen, das für Ihre Lösung funktioniert. |
DisplayName |
Bankkonto |
DisplayCollectionName |
Bankkonten |
Description |
Eine Entität zum Speichern von Informationen über Kundenbankkonten. |
OwnershipType |
UserOwned
Anmerkung: Die hier festgelegten Werte finden Sie unter OwnershipTypes EnumType. |
IsActivity |
Falsch |
HasActivities |
Falsch |
HasNotes |
Falsch |
Zusätzlich zu den zuvor aufgeführten Eigenschaften muss die EntityMetadataAttributes Eigenschaft ein Array enthalten, das einen StringAttributeMetadata EntityType enthält, um das primäre Namensattribut für die Entität darzustellen. Die Attributeigenschaft IsPrimaryName muss true sein. In der folgenden Tabelle werden die im Beispiel festgelegten Eigenschaften beschrieben.
| Primäre Attribut-Eigenschaft | Wert |
|---|---|
SchemaName |
new_AccountName |
RequiredLevel |
Nichts Anmerkung: Die hier festgelegten Werte finden Sie unter "AttributeRequiredLevelManagedProperty ComplexType " und "AttributeRequiredLevel EnumType". |
MaxLength |
100 |
FormatName |
Text Anmerkung: Das primäre Name-Attribut muss das Textformat verwenden. Formatoptionen, die für andere Zeichenfolgenattribute verfügbar sind, finden Sie unter Zeichenfolgenformate. |
DisplayName |
Kontoname |
Description |
Geben Sie den Namen des Bankkontos ein. |
IsPrimaryName |
Wahr |
Hinweis
Wenn Sie Bezeichnungen mit dem Label ComplexType erstellen oder aktualisieren, müssen Sie die LocalizedLabels Eigenschaft nur festlegen. Der UserLocalizedLabel zurückgegebene Wert basiert auf der Spracheinstellung des Benutzers und ist schreibgeschützt.
Das folgende Beispiel zeigt die Erstellung einer benutzerdefinierten Tabelle mit dem Eigenschaftensatz. Die Sprache ist Englisch mit der Gebietsschema-ID (LCID) 1033. Gültige Gebietsschema-ID-Werte finden Sie unter Gebietsschema-ID-Diagramm (LCID).
Anforderung:
POST [Organization URI]/api/data/v9.2/EntityDefinitions HTTP/1.1
MSCRM.SolutionUniqueName: examplesolution
Accept: application/json
Content-Type: application/json; charset=utf-8
OData-MaxVersion: 4.0
OData-Version: 4.0
{
"@odata.type": "Microsoft.Dynamics.CRM.EntityMetadata",
"Attributes": [
{
"AttributeType": "String",
"AttributeTypeName": {
"Value": "StringType"
},
"Description": {
"@odata.type": "Microsoft.Dynamics.CRM.Label",
"LocalizedLabels": [
{
"@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
"Label": "Type the name of the bank account",
"LanguageCode": 1033
}
]
},
"DisplayName": {
"@odata.type": "Microsoft.Dynamics.CRM.Label",
"LocalizedLabels": [
{
"@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
"Label": "Account Name",
"LanguageCode": 1033
}
]
},
"IsPrimaryName": true,
"RequiredLevel": {
"Value": "None",
"CanBeChanged": true,
"ManagedPropertyLogicalName": "canmodifyrequirementlevelsettings"
},
"SchemaName": "new_AccountName",
"@odata.type": "Microsoft.Dynamics.CRM.StringAttributeMetadata",
"FormatName": {
"Value": "Text"
},
"MaxLength": 100
}
],
"Description": {
"@odata.type": "Microsoft.Dynamics.CRM.Label",
"LocalizedLabels": [
{
"@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
"Label": "An entity to store information about customer bank accounts",
"LanguageCode": 1033
}
]
},
"DisplayCollectionName": {
"@odata.type": "Microsoft.Dynamics.CRM.Label",
"LocalizedLabels": [
{
"@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
"Label": "Bank Accounts",
"LanguageCode": 1033
}
]
},
"DisplayName": {
"@odata.type": "Microsoft.Dynamics.CRM.Label",
"LocalizedLabels": [
{
"@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
"Label": "Bank Account",
"LanguageCode": 1033
}
]
},
"HasActivities": false,
"HasNotes": false,
"IsActivity": false,
"OwnershipType": "UserOwned",
"SchemaName": "new_BankAccount"
}
Antwort:
HTTP/1.1 204 No Content
OData-Version: 4.0
OData-EntityId: [Organization URI]/api/data/v9.2/EntityDefinitions(00aa00aa-bb11-cc22-dd33-44ee44ee44ee)
Aktualisieren von Tabellendefinitionen
Von Bedeutung
Sie können die Methode nicht zum Aktualisieren von PATCH Datenmodellentitäten verwenden. Die Tabellendefinitionen weisen die Parität mit der SDK für .NET UpdateEntityRequest-Klasse auf, die die Entitätsdefinition durch die enthaltene ersetzt.
Daher müssen Sie beim Aktualisieren von Datenmodellentitäten die PUT Methode verwenden und alle vorhandenen Eigenschaften einschließen, die Sie nicht ändern möchten.
Sie können einzelne Eigenschaften nicht aktualisieren.
Wenn Sie Tabellendefinitionen mit Beschriftungen aktualisieren, sollten Sie einen benutzerdefinierte MSCRM.MergeLabels-Anforderungsheader hinzufügen, um zu steuern, wie Beschriftungen im Update behandelt werden sollen. Wenn eine Bezeichnung für ein Element bereits Bezeichnungen für andere Sprachen enthält und Sie sie mit einer Bezeichnung aktualisieren, die nur eine Bezeichnung für eine bestimmte Sprache enthält, steuert die MSCRM.MergeLabels Kopfzeile, ob die vorhandenen Bezeichnungen überschrieben oder die neue Bezeichnung mit vorhandenen Sprachbezeichnungen zusammengeführt werden soll. Wenn MSCRM.MergeLabels auf true festgelegt ist, überschreiben alle neuen definierten Beschriftungen nur dann vorhandene Bezeichnungen, wenn der Sprachcode übereinstimmt. Wenn Sie die vorhandenen Bezeichnungen überschreiben möchten, um nur die von Ihnen festgelegten Bezeichnungen einzuschließen, setzen Sie MSCRM.MergeLabels auf false.
Von Bedeutung
Wenn Sie die Kopfzeile MSCRM.MergeLabels nicht einschließen, verhält sich das System standardmäßig so, als wäre der Wert false und alle lokalisierten Labels, die nicht in Ihrem Update enthalten sind, werden verloren.
Wenn Sie eine Tabellen- oder Spaltendefinition aktualisieren, müssen Sie die PublishXml-Aktion oder die PublishAllXml-Aktion verwenden, bevor die von Ihnen vorgenommenen Änderungen auf die Anwendung angewendet werden. Weitere Informationen: Veröffentlichen von Anpassungen
In der Regel rufen Sie die JSON-Definition des Entitätsattributs ab und ändern die Eigenschaften, bevor Sie sie zurücksenden. Das folgende Beispiel enthält alle Definitionseigenschaften der Tabelle, die im Beispiel zum Erstellen von Tabellendefinitionen erstellt wurde, aber mit der DisplayName Änderung in "Bankgeschäftsname". Es kann hilfreich sein, zu beachten, dass der JSON-Code hier die Standardwerte für Eigenschaften bereitstellt, die im Beispiel " Tabellendefinitionen erstellen" nicht festgelegt sind.
Hinweis
Einige der folgenden Beispiele verwenden den MetadataId Primärschlüsselwert. Sie können aber auch den LogicalName alternativen Schlüssel verwenden, um auf Schemaentitäten zu verweisen. Weitere Informationen: Abrufen von Tabellendefinitionen nach Name oder MetadataId
Anforderung:
PUT [Organization URI]/api/data/v9.2/EntityDefinitions(00aa00aa-bb11-cc22-dd33-44ee44ee44ee) HTTP/1.1
MSCRM.SolutionUniqueName: examplesolution
Accept: application/json
Content-Type: application/json; charset=utf-8
OData-MaxVersion: 4.0
OData-Version: 4.0
MSCRM.MergeLabels: true
{
"@odata.context": "[Organization URI]/api/data/v9.2/$metadata#EntityDefinitions/$entity",
"ActivityTypeMask": 0,
"AutoRouteToOwnerQueue": false,
"CanTriggerWorkflow": true,
"Description": {
"LocalizedLabels": [
{
"Label": "An entity to store information about customer bank accounts",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "edc3abd7-c5ae-4822-a3ed-51734fdd0469",
"HasChanged": null
}
]
},
"DisplayCollectionName": {
"LocalizedLabels": [
{
"Label": "Bank Accounts",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "7c758e0c-e9cf-4947-93b0-50ec30b20f60",
"HasChanged": null
}
]
},
"DisplayName": {
"@odata.type": "Microsoft.Dynamics.CRM.Label",
"LocalizedLabels": [
{
"@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
"Label": "Bank Business Name",
"LanguageCode": 1033
}
]
},
"EntityHelpUrlEnabled": false,
"EntityHelpUrl": null,
"IsDocumentManagementEnabled": false,
"IsOneNoteIntegrationEnabled": false,
"IsInteractionCentricEnabled": false,
"IsKnowledgeManagementEnabled": false,
"AutoCreateAccessTeams": false,
"IsActivity": false,
"IsActivityParty": false,
"IsAuditEnabled": {
"Value": false,
"CanBeChanged": true,
"ManagedPropertyLogicalName": "canmodifyauditsettings"
},
"IsAvailableOffline": false,
"IsChildEntity": false,
"IsAIRUpdated": false,
"IsValidForQueue": {
"Value": false,
"CanBeChanged": true,
"ManagedPropertyLogicalName": "canmodifyqueuesettings"
},
"IsConnectionsEnabled": {
"Value": false,
"CanBeChanged": true,
"ManagedPropertyLogicalName": "canmodifyconnectionsettings"
},
"IconLargeName": null,
"IconMediumName": null,
"IconSmallName": null,
"IsCustomEntity": true,
"IsBusinessProcessEnabled": false,
"IsCustomizable": {
"Value": true,
"CanBeChanged": true,
"ManagedPropertyLogicalName": "iscustomizable"
},
"IsRenameable": {
"Value": true,
"CanBeChanged": true,
"ManagedPropertyLogicalName": "isrenameable"
},
"IsMappable": {
"Value": true,
"CanBeChanged": false,
"ManagedPropertyLogicalName": "ismappable"
},
"IsDuplicateDetectionEnabled": {
"Value": false,
"CanBeChanged": true,
"ManagedPropertyLogicalName": "canmodifyduplicatedetectionsettings"
},
"CanCreateAttributes": {
"Value": true,
"CanBeChanged": false,
"ManagedPropertyLogicalName": "cancreateattributes"
},
"CanCreateForms": {
"Value": true,
"CanBeChanged": true,
"ManagedPropertyLogicalName": "cancreateforms"
},
"CanCreateViews": {
"Value": true,
"CanBeChanged": true,
"ManagedPropertyLogicalName": "cancreateviews"
},
"CanCreateCharts": {
"Value": true,
"CanBeChanged": true,
"ManagedPropertyLogicalName": "cancreatecharts"
},
"CanBeRelatedEntityInRelationship": {
"Value": true,
"CanBeChanged": true,
"ManagedPropertyLogicalName": "canberelatedentityinrelationship"
},
"CanBePrimaryEntityInRelationship": {
"Value": true,
"CanBeChanged": true,
"ManagedPropertyLogicalName": "canbeprimaryentityinrelationship"
},
"CanBeInManyToMany": {
"Value": true,
"CanBeChanged": true,
"ManagedPropertyLogicalName": "canbeinmanytomany"
},
"CanEnableSyncToExternalSearchIndex": {
"Value": true,
"CanBeChanged": true,
"ManagedPropertyLogicalName": "canenablesynctoexternalsearchindex"
},
"SyncToExternalSearchIndex": false,
"CanModifyAdditionalSettings": {
"Value": true,
"CanBeChanged": true,
"ManagedPropertyLogicalName": "canmodifyadditionalsettings"
},
"CanChangeHierarchicalRelationship": {
"Value": true,
"CanBeChanged": true,
"ManagedPropertyLogicalName": "canchangehierarchicalrelationship"
},
"IsOptimisticConcurrencyEnabled": true,
"ChangeTrackingEnabled": false,
"IsImportable": true,
"IsIntersect": false,
"IsMailMergeEnabled": {
"Value": true,
"CanBeChanged": true,
"ManagedPropertyLogicalName": "canmodifymailmergesettings"
},
"IsManaged": false,
"IsEnabledForCharts": true,
"IsEnabledForTrace": false,
"IsValidForAdvancedFind": true,
"IsVisibleInMobile": {
"Value": false,
"CanBeChanged": true,
"ManagedPropertyLogicalName": "canmodifymobilevisibility"
},
"IsVisibleInMobileClient": {
"Value": false,
"CanBeChanged": true,
"ManagedPropertyLogicalName": "canmodifymobileclientvisibility"
},
"IsReadOnlyInMobileClient": {
"Value": false,
"CanBeChanged": true,
"ManagedPropertyLogicalName": "canmodifymobileclientreadonly"
},
"IsOfflineInMobileClient": {
"Value": false,
"CanBeChanged": true,
"ManagedPropertyLogicalName": "canmodifymobileclientoffline"
},
"DaysSinceRecordLastModified": 0,
"IsReadingPaneEnabled": true,
"IsQuickCreateEnabled": false,
"LogicalName": "new_bankaccount",
"ObjectTypeCode": 10009,
"OwnershipType": "UserOwned",
"PrimaryNameAttribute": "new_accountname",
"PrimaryImageAttribute": null,
"PrimaryIdAttribute": "new_bankaccountid",
"Privileges": [
{
"CanBeBasic": true,
"CanBeDeep": true,
"CanBeGlobal": true,
"CanBeLocal": true,
"CanBeEntityReference": false,
"CanBeParentEntityReference": false,
"Name": "prvCreatenew_BankAccount",
"PrivilegeId": "d1a8de4b-27df-42e1-bc5c-b863e002b37f",
"PrivilegeType": "Create"
},
{
"CanBeBasic": true,
"CanBeDeep": true,
"CanBeGlobal": true,
"CanBeLocal": true,
"CanBeEntityReference": false,
"CanBeParentEntityReference": false,
"Name": "prvReadnew_BankAccount",
"PrivilegeId": "726043b1-de2c-487e-9d6d-5629fca2bf22",
"PrivilegeType": "Read"
},
{
"CanBeBasic": true,
"CanBeDeep": true,
"CanBeGlobal": true,
"CanBeLocal": true,
"CanBeEntityReference": false,
"CanBeParentEntityReference": false,
"Name": "prvWritenew_BankAccount",
"PrivilegeId": "fa50c539-b6c7-4eaf-bd49-fd8224bc51b6",
"PrivilegeType": "Write"
},
{
"CanBeBasic": true,
"CanBeDeep": true,
"CanBeGlobal": true,
"CanBeLocal": true,
"CanBeEntityReference": false,
"CanBeParentEntityReference": false,
"Name": "prvDeletenew_BankAccount",
"PrivilegeId": "17c1fd6e-f856-45e7-b563-796f53108b85",
"PrivilegeType": "Delete"
},
{
"CanBeBasic": true,
"CanBeDeep": true,
"CanBeGlobal": true,
"CanBeLocal": true,
"CanBeEntityReference": false,
"CanBeParentEntityReference": false,
"Name": "prvAssignnew_BankAccount",
"PrivilegeId": "133ca81d-668e-4c19-a71e-10c6dfe099cd",
"PrivilegeType": "Assign"
},
{
"CanBeBasic": true,
"CanBeDeep": true,
"CanBeGlobal": true,
"CanBeLocal": true,
"CanBeEntityReference": false,
"CanBeParentEntityReference": false,
"Name": "prvSharenew_BankAccount",
"PrivilegeId": "15f27df4-9c67-47c9-b1f1-274e1c44f24a",
"PrivilegeType": "Share"
},
{
"CanBeBasic": true,
"CanBeDeep": true,
"CanBeGlobal": true,
"CanBeLocal": true,
"CanBeEntityReference": false,
"CanBeParentEntityReference": false,
"Name": "prvAppendnew_BankAccount",
"PrivilegeId": "ac8b1920-8f93-4e9d-94e3-c680e2a2f228",
"PrivilegeType": "Append"
},
{
"CanBeBasic": true,
"CanBeDeep": true,
"CanBeGlobal": true,
"CanBeLocal": true,
"CanBeEntityReference": false,
"CanBeParentEntityReference": false,
"Name": "prvAppendTonew_BankAccount",
"PrivilegeId": "f63a5f46-3bc7-4eac-81d0-7f77f566ef46",
"PrivilegeType": "AppendTo"
}
],
"RecurrenceBaseEntityLogicalName": null,
"ReportViewName": "Filterednew_BankAccount",
"SchemaName": "new_BankAccount",
"IntroducedVersion": "1.0",
"IsStateModelAware": true,
"EnforceStateTransitions": false,
"EntityColor": null,
"LogicalCollectionName": "new_bankaccounts",
"CollectionSchemaName": "new_BankAccounts",
"EntitySetName": "new_bankaccounts",
"IsEnabledForExternalChannels": false,
"IsPrivate": false,
"MetadataId": "00aa00aa-bb11-cc22-dd33-44ee44ee44ee",
"HasChanged": null
}
Antwort:
HTTP/1.1 204 No Content
OData-Version: 4.0
Siehe auch
Verwenden der Web-API mit Microsoft Dataverse-Metadaten
Erstellen und Aktualisieren von Spaltendefinitionen mithilfe der Web-API
Abfragen von Tabellendefinitionen mithilfe der Web-API
Abrufen von Tabellendefinitionen nach Name oder MetadataId
Modelltabellenbeziehungen mithilfe der Web-API
Arbeiten mit Tabellendefinitionen mithilfe des SDK für .NET
Spaltendefinitionen (Attribut)
Beispiel für Web-API-Tabellenschemavorgänge
Beispiel für Web-API-Tabellen-Schemaoperationen (C#)