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.
Erfahren Sie, wie Sie Dataverse-Tabellendefinitionen mithilfe der Web-API erstellen und aktualisieren, einschließlich der Definition einer primären Namensspalte, zum Beibehalten lokalisierter Bezeichnungen und zum Veröffentlichen von Metadatenänderungen. Sie können dieselben Vorgänge ausführen, indem Sie das SDK für .NET verwenden. Das Dataverse SDK für Python verwendet die Web-API.
Ausführliche Informationen zu 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 MSCRM.SolutionUniqueName optionalen Anforderungsheader verwenden und den Wert auf den eindeutigen Namen der Lösung festlegen, zu der sie gehört.
Erfahren Sie, wie Sie eine Lösungskomponente einer Lösung zuordnen.
Erstellen von Tabellendefinitionen
Um eine Tabellendefinition zu erstellen, POST wird die JSON-Darstellung der EntityMetadata zum EntityDefinitions Entitätssatzpfad verwendet. Die Entität muss die Definition für die primäre Namensspalte in die Attributes Sammlungswert-Navigationseigenschaft einschließen. Sie müssen keine Werte für alle Eigenschaften festlegen. Die Elemente in dieser Liste, mit Ausnahme Descriptionvon , sind erforderlich. Das Festlegen einer Beschreibung ist eine empfohlene bewährte Methode. Eigenschaftswerte, die Sie nicht angeben, werden auf Standardwerte festgelegt. Informationen zu den Standardwerten finden Sie im Beispiel im Abschnitt " Tabellendefinitionen aktualisieren". Im Beispiel in diesem Artikel werden die folgenden Entitätseigenschaften verwendet.
Erforderliche Tabelleneigenschaften
In dieser Tabelle sind die Eigenschaften aufgeführt, die beim Erstellen einer Tabellendefinition Werte enthalten müssen.
| EntityMetadata-Eigenschaft | Beispielwert |
|---|---|
SchemaName |
new_BankAccount Hinweis: Fügen Sie das Anpassungspräfix ein, das dem Lösungsherausgeber entspricht. Der Standardwert ist new_. Wählen Sie das Präfix aus, das für Ihre Lösung funktioniert, da Sie es später nicht ändern können. |
DisplayName |
Bank Account |
DisplayCollectionName |
Bank Accounts |
Description |
Contains data about customer bank accounts.| |
OwnershipType |
UserOwned | OrganizationOwned Hinweis: Die hier festgelegten Werte finden Sie unter OwnershipTypes EnumType. |
IsActivity |
false |
HasActivities |
false |
HasNotes |
false |
Zusätzlich zu den zuvor aufgeführten Eigenschaften muss die EntityMetadata.Attributes Eigenschaft ein Array enthalten, das einen StringAttributeMetadata EntityType enthält, um das primäre Namensattribut für die Entität darzustellen. Die Attributeigenschaft AttributeMetadata.IsPrimaryName muss true sein. In der folgenden Tabelle werden die im Beispiel festgelegten Eigenschaften beschrieben.
| Primäre Attribut-Eigenschaft | Beispielwert |
|---|---|
SchemaName |
new_AccountName |
RequiredLevel |
None Hinweis: Dies ist ein komplexer Typ. Die werte, die Sie hier festlegen können, finden Sie unter "AttributeRequiredLevelManagedProperty complex type " 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 |
Account Name |
Description |
Type the name of the bank account. |
IsPrimaryName |
true |
Hinweis
Wenn Sie Bezeichnungen mithilfe des komplexen Typs "Bezeichnung" erstellen oder aktualisieren, legen Sie nur die LocalizedLabels Eigenschaft fest. 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) von 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
Accept: application/json
Content-Type: application/json; charset=utf-8
OData-MaxVersion: 4.0
OData-Version: 4.0
MSCRM.SolutionUniqueName: examplesolution
{
"@odata.type": "Microsoft.Dynamics.CRM.EntityMetadata",
"SchemaName": "new_BankAccount",
"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",
"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
}
]
}
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 Bezeichnungen aktualisieren, fügen Sie einen benutzerdefinierten MSCRM.MergeLabels Anforderungsheader hinzu, um zu steuern, wie bezeichnungen in der Aktualisierung behandelt werden. 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. Legen Sie MSCRM.MergeLabels fest, dass true neue Bezeichnungen nur vorhandene Bezeichnungen überschreiben, 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.
Weitere Informationen zu unterstützten Anforderungsheadern
Von Bedeutung
Wenn Sie keine Kopfzeile einschließen MSCRM.MergeLabels , verhält sich das Standardverhalten so, als ob der Wert wäre false , und Das Update entfernt alle anderen lokalisierten Bezeichnungen.
Wenn Sie eine Tabellen- oder Spaltendefinition aktualisieren, verwenden Sie die PublishXml-Aktion , bevor die vorgenommenen Änderungen auf die modellgesteuerten Anwendungen angewendet werden. Weitere Informationen finden Sie unter Veröffentlichung anpassen.
In der Regel rufen Sie die JSON-Definition der Tabellen- oder Spaltendefinition 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". Beachten Sie, dass die JSON-Daten die Standardwerte für Eigenschaften enthalten, die nicht im Beispiel "Tabellendefinitionen erstellen " festgelegt sind.
Hinweis
In diesem Beispiel wird der LogicalName Schlüssel verwendet, um die zu aktualisierende Tabellendefinition eindeutig zu identifizieren. Sie können auch den MetadataId Primärschlüsselwert verwenden. Diese Option ist häufig einfacher als das Nachschlagen des MetadataId Werts. Weitere Informationen finden Sie unter Abrufen von Tabellendefinitionen nach Name oder MetadataId.
Anforderung:
PUT [Organization URI]/api/data/v9.2/EntityDefinitions(LogicalName='new_bankaccount') HTTP/1.1
Accept: application/json
Content-Type: application/json; charset=utf-8
OData-MaxVersion: 4.0
OData-Version: 4.0
MSCRM.MergeLabels: true
MSCRM.SolutionUniqueName: examplesolution
{
"@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#)