Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Puede realizar todas las mismas operaciones en las definiciones de tabla mediante la API web que puede usar con el SDK para .NET. Este artículo se centra en trabajar con definiciones de tabla (metadatos) mediante la API web. Para encontrar detalles sobre las propiedades de definición de tabla, consulte Personalización de definiciones de tabla y EntityMetadata EntityType.
Sugerencia
Las entidades, los atributos y los conjuntos de opciones globales (también conocidos como tablas, columnas y opciones) son todos los componentes de la solución. Al crearlos, puede asociarlos a una solución mediante el MSCRM.SolutionUniqueName encabezado de solicitud y establecer el valor en el nombre único de la solución de la que debe formar parte.
Creación de definiciones de tabla
Para crear una definición de tabla, POST la representación JSON de los datos de definición de entidad en la ruta establecida de la entidad EntityDefinitions. La entidad debe incluir la definición del atributo de nombre principal. No es necesario establecer valores para todas las propiedades. Los elementos de esta lista, excepto descripción, son necesarios, aunque establecer una descripción es un procedimiento recomendado. Los valores de propiedad que no especifique se establecen en valores predeterminados. Para comprender los valores predeterminados, examine el ejemplo de la sección Actualizar definiciones de tabla . En el ejemplo de este artículo se usan las siguientes propiedades de entidad.
| Propiedad EntityMetadata | Importancia |
|---|---|
SchemaName |
new_BankAccount
Nota: Debe incluir el prefijo de personalización que coincida con el publicador de soluciones. Aquí se usa el valor predeterminado "new_", pero debe elegir el prefijo que funciona para la solución. |
DisplayName |
Cuenta bancaria |
DisplayCollectionName |
Cuentas bancarias |
Description |
Una entidad para almacenar información sobre las cuentas bancarias del cliente. |
OwnershipType |
UserOwned
Nota: Para conocer los valores que puede establecer aquí, consulte OwnershipTypes EnumType. |
IsActivity |
false |
HasActivities |
false |
HasNotes |
false |
Además de las propiedades enumeradas anteriormente, la EntityMetadataAttributes propiedad debe contener una matriz que incluya un StringAttributeMetadata EntityType para representar el atributo de nombre principal de la entidad. La propiedad de atributo IsPrimaryName debe ser true. En la tabla siguiente se describen las propiedades establecidas en el ejemplo.
| Propiedad del atributo primario | Importancia |
|---|---|
SchemaName |
new_AccountName |
RequiredLevel |
Ninguno Nota: Para conocer los valores que puede establecer aquí, vea AttributeRequiredLevelManagedProperty ComplexType y AttributeRequiredLevel EnumType. |
MaxLength |
100 |
FormatName |
Text Nota: El atributo de nombre principal debe usar el formato Text. Para ver las opciones de formato disponibles para otros atributos de cadena, consulte Formatos de cadena. |
DisplayName |
Nombre de cuenta |
Description |
Escriba el nombre de la cuenta bancaria. |
IsPrimaryName |
true |
Nota:
Al crear o actualizar etiquetas mediante Label ComplexType, solo tiene que establecer la LocalizedLabels propiedad . El UserLocalizedLabel valor devuelto se basa en la preferencia de idioma del usuario y es de solo lectura.
En el ejemplo siguiente se muestra la creación de una tabla personalizada con el conjunto de propiedades. El idioma es inglés con el identificador de configuración regional (LCID) de 1033. Los valores de identificadores de configuración regional válidos pueden encontrarse en el gráfico de identificadores de configuración regional (LCID).
Solicitud:
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"
}
Respuesta:
HTTP/1.1 204 No Content
OData-Version: 4.0
OData-EntityId: [Organization URI]/api/data/v9.2/EntityDefinitions(00aa00aa-bb11-cc22-dd33-44ee44ee44ee)
Actualizar definiciones de tabla
Importante
No se puede usar el PATCH método para actualizar las entidades del modelo de datos. Las definiciones de tabla tienen paridad con el SDK para la clase UpdateEntityRequest de .NET, reemplazando la definición de entidad con la incluida.
Por lo tanto, debe usar el PUT método al actualizar las entidades del modelo de datos y tener cuidado de incluir todas las propiedades existentes que no pretende cambiar.
No se pueden actualizar propiedades individuales.
Al actualizar las definiciones de tabla con etiquetas, debe incluir un encabezado de solicitud personalizado MSCRM.MergeLabels para controlar cómo se deben manejar las etiquetas en la actualización. Si una etiqueta de un elemento ya tiene etiquetas para otros idiomas y la actualiza con una etiqueta que contiene solo una etiqueta para un idioma específico, el MSCRM.MergeLabels encabezado controla si se sobrescriben las etiquetas existentes o se combina la nueva etiqueta con cualquier etiqueta de idioma existente. Con MSCRM.MergeLabels establecido en true, las nuevas etiquetas definidas solo sobrescribirán las etiquetas existentes cuando coincida el código de idioma. Si desea sobrescribir las etiquetas existentes para incluir solo las etiquetas que usted especifique, establezca MSCRM.MergeLabels en false.
Importante
Si no incluye un MSCRM.MergeLabels encabezado, el comportamiento predeterminado es como si el valor fuera false y se perderán las etiquetas localizadas que no se incluyan en la actualización.
Al actualizar una definición de tabla o columna, debe usar la acción PublishXml o La acción PublishAllXml antes de aplicar los cambios que realice a la aplicación. Más información: Publicar personalizaciones
Normalmente, recuperas la definición JSON del atributo de la entidad y modificas las propiedades antes de enviarlo. En el ejemplo siguiente se incluyen todas las propiedades de definición de la tabla creada en el ejemplo Crear definiciones de tabla , pero con el DisplayName modificado a "Bank Business Name". Puede ser útil tener en cuenta que el JSON aquí proporciona los valores predeterminados para las propiedades que no se establecen en el ejemplo Crear definiciones de tabla .
Nota:
Algunos de los ejemplos siguientes usan el valor de la clave principal MetadataId. Pero también puede usar la LogicalName clave alternativa para hacer referencia a entidades de esquema. Más información: Recuperación de definiciones de tabla por nombre o MetadataId
Solicitud:
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
}
Respuesta:
HTTP/1.1 204 No Content
OData-Version: 4.0
Consulte también
Uso de la API web con metadatos de Microsoft Dataverse
Creación y actualización de definiciones de columna mediante la API web
Consultar definiciones de tabla con la API web
Recuperar definiciones de tabla por nombre o MetadataId
Modelar relaciones de tabla mediante la API web
Trabajar con definiciones de tabla mediante el SDK para .NET
Definiciones de columna (atributo)
Ejemplo de operaciones de esquema de tabla de API web
Ejemplo de operaciones de esquema de tabla de API web (C#)