Ejemplo de operaciones de esquema de tabla de API web
Esta colección de solicitudes y respuestas http demuestra cómo realizar operaciones seleccionadas que modifican el esquema de Dataverse, o metadatos, usando la Ejemplo de operaciones de esquema de tabla de la API web (C#)
En este artículo se describe un conjunto común de operaciones implementadas por cada ejemplo en este grupo. Este artículo describe las solicitudes y respuestas HTTP y la salida de texto que realiza cada muestra sin los detalles específicos del idioma. Consulte las descripciones específicas del idioma y los ejemplos individuales para obtener más información acerca de cómo se realizan estas operaciones.
Demostraciones
Este ejemplo se divide en las siguientes secciones, que contienen operaciones de datos de consulta de la API web de Dataverse que se describen minuciosamente en los artículos conceptuales asociados especificados.
Nota
Para razones de brevedad, se han omitido los encabezados HTTP menos pertinentes. Las URL de los registros variarán con la dirección de la organización base y los id. establecidos por el servidor de Dataverse.
Sección 0: Crear un editor y una solución
Cree primero el editor, ya que la solución debe estar relacionada con él. Todos los elementos creados o modificados en esta muestra utilizan los valores Publisher
customizationprefix
ycustomizationoptionvalueprefix
.Solicitud:
POST [Organization Uri]/api/data/v9.2/publishers HTTP/1.1 OData-MaxVersion: 4.0 OData-Version: 4.0 If-None-Match: null Accept: application/json { "friendlyname": "Example Publisher", "uniquename": "examplepublisher", "description": "An example publisher for samples", "customizationprefix": "sample", "customizationoptionvalueprefix": 72700 }
Respuesta:
HTTP/1.1 204 NoContent OData-Version: 4.0 OData-EntityId: [Organization Uri]/api/data/v9.2/publishers(a78ab7fc-102a-ed11-9db1-00224804f8e2)
Salida de la consola:
Created publisher Example Publisher
A continuación, cree la solución relacionada con el editor.
Nota
Muchos de los elementos creados o actualizados en este ejemplo utilizarán el valor
uniquename
de esta solución con el encabezado de solicitudMSCRM.SolutionUniqueName
para que los cambios se incluyan como parte de esta solución. Algunas acciones tienen un parámetroSolutionUniqueName
que hace lo mismo. Al final de este ejemplo, esta solución se exportará y contendrá las definiciones de todos los elementos creados y modificados en este ejemplo.Solicitud:
POST [Organization Uri]/api/data/v9.2/solutions HTTP/1.1 OData-MaxVersion: 4.0 OData-Version: 4.0 If-None-Match: null Accept: application/json { "friendlyname": "Example Solution", "uniquename": "examplesolution", "description": "An example solution for samples", "version": "1.0.0.0", "publisherid@odata.bind": "publishers(a78ab7fc-102a-ed11-9db1-00224804f8e2)" }
Respuesta:
HTTP/1.1 204 NoContent OData-Version: 4.0 OData-EntityId: [Organization Uri]/api/data/v9.2/solutions(5472b902-112a-ed11-9db1-00224804f8e2)
Salida de la consola:
Created solution Example Solution
Sección 1: Crear, recuperar y actualizar una tabla
Cree la tabla
sample_BankAccount
.Estas propiedades son requeridas:
SchemaName
,DisplayName
,DisplayCollectionName
,HasNotes
,HasActivities
yPrimaryNameAttribute
, que deben incluir el valorLogicalName
de la columna de nombre principal.La tabla también debe incluir una columna StringAttributeMetadata en la colección
Attributes
que sea la columna de nombre principal de la tabla. Esa definición de columna debe tener valoresSchemaName
,MaxLength
yDisplayName
, yIsPrimaryName
debe establecerse en verdadero.Nota
El encabezado de solicitud
MSCRM.SolutionUniqueName: examplesolution
asocia esta tabla a la solución. El valorSchemaName
(sample_BankAccount
) incluye el prefijo de personalización del editor.Solicitud:
POST [Organization Uri]/api/data/v9.2/EntityDefinitions HTTP/1.1 MSCRM.SolutionUniqueName: examplesolution OData-MaxVersion: 4.0 OData-Version: 4.0 If-None-Match: null Accept: application/json { "@odata.type": "Microsoft.Dynamics.CRM.EntityMetadata", "Description": { "@odata.type": "Microsoft.Dynamics.CRM.Label", "LocalizedLabels": [ { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "A table to store information about customer bank accounts", "LanguageCode": 1033, "IsManaged": false } ], "UserLocalizedLabel": { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "A table to store information about customer bank accounts", "LanguageCode": 1033, "IsManaged": false } }, "DisplayCollectionName": { "@odata.type": "Microsoft.Dynamics.CRM.Label", "LocalizedLabels": [ { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "Bank Accounts", "LanguageCode": 1033, "IsManaged": false } ], "UserLocalizedLabel": { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "Bank Accounts", "LanguageCode": 1033, "IsManaged": false } }, "DisplayName": { "@odata.type": "Microsoft.Dynamics.CRM.Label", "LocalizedLabels": [ { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "Bank Account", "LanguageCode": 1033, "IsManaged": false } ], "UserLocalizedLabel": { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "Bank Account", "LanguageCode": 1033, "IsManaged": false } }, "HasActivities": false, "HasNotes": false, "OwnershipType": "UserOwned", "PrimaryNameAttribute": "sample_name", "SchemaName": "sample_BankAccount", "Attributes": [ { "@odata.type": "Microsoft.Dynamics.CRM.StringAttributeMetadata", "AttributeType": "String", "AttributeTypeName": { "Value": "StringType" }, "MaxLength": 100, "Description": { "@odata.type": "Microsoft.Dynamics.CRM.Label", "LocalizedLabels": [ { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "The primary attribute for the Bank Account entity.", "LanguageCode": 1033, "IsManaged": false } ], "UserLocalizedLabel": { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "The primary attribute for the Bank Account entity.", "LanguageCode": 1033, "IsManaged": false } }, "DisplayName": { "@odata.type": "Microsoft.Dynamics.CRM.Label", "LocalizedLabels": [ { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "Account Name", "LanguageCode": 1033, "IsManaged": false } ], "UserLocalizedLabel": { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "Account Name", "LanguageCode": 1033, "IsManaged": false } }, "IsPrimaryName": true, "RequiredLevel": { "Value": "None", "CanBeChanged": false, "ManagedPropertyLogicalName": "canmodifyrequirementlevelsettings" }, "SchemaName": "sample_Name" } ] }
Respuesta:
HTTP/1.1 204 NoContent OData-Version: 4.0 OData-EntityId: [Organization Uri]/api/data/v9.2/EntityDefinitions(5872b902-112a-ed11-9db1-00224804f8e2)
Salida de la consola:
Sending request to create the sample_BankAccount table... Created sample_BankAccount table.
Recupere la definición de tabla
sample_BankAccount
.- Esta operación de recuperación no incluye ninguna
$select
para filtrar las propiedades devueltas porque estos datos se modifican y se envían para actualizar la definición de la tabla usandoPUT
, que sobrescribe el valor existente. - Esta consulta tampoco incluye
$expand
para incluir datos relacionados, como atributos, porque los datos relacionados deben actualizarse por separado.
Nota
Esta solicitud y otras en esta muestra usan el encabezado
Consistency: Strong
. Utilice este encabezado cuando recupere los cambios de definición de metadatos directamente después de aplicarlos. Los cambios de metadatos se almacenan en caché por razones de rendimiento y una solicitud de un elemento recién creado puede devolver un 404 porque aún no se ha almacenado en caché. El almacenamiento en caché puede tardar 30 segundos. Este encabezado obligará al servidor a leer la última versión, incluidos sus cambios. Al usar este encabezado, niega la ganancia de rendimiento que proporciona el almacenamiento en caché, por lo que solo debe usarlo en escenarios como este ejemplo donde está recuperando los cambios que acaba de realizar. Más información: Encabezados HTTP > Otros encabezados.Solicitud:
GET [Organization Uri]/api/data/v9.2/EntityDefinitions(LogicalName='sample_bankaccount') HTTP/1.1 Consistency: Strong OData-MaxVersion: 4.0 OData-Version: 4.0 If-None-Match: null Accept: application/json
Respuesta:
HTTP/1.1 200 OK OData-Version: 4.0 { "@odata.context": "[Organization Uri]/api/data/v9.2/$metadata#EntityDefinitions/$entity", "ActivityTypeMask": 0, "AutoRouteToOwnerQueue": false, "CanTriggerWorkflow": true, "EntityHelpUrlEnabled": false, "EntityHelpUrl": null, "IsDocumentManagementEnabled": false, "IsOneNoteIntegrationEnabled": false, "IsInteractionCentricEnabled": false, "IsKnowledgeManagementEnabled": false, "IsSLAEnabled": false, "IsBPFEntity": false, "IsDocumentRecommendationsEnabled": false, "IsMSTeamsIntegrationEnabled": false, "SettingOf": null, "DataProviderId": null, "DataSourceId": null, "AutoCreateAccessTeams": false, "IsActivity": false, "IsActivityParty": false, "IsRetrieveAuditEnabled": false, "IsRetrieveMultipleAuditEnabled": false, "IsArchivalEnabled": false, "IsAvailableOffline": false, "IsChildEntity": false, "IsAIRUpdated": false, "IconLargeName": null, "IconMediumName": null, "IconSmallName": null, "IconVectorName": null, "IsCustomEntity": true, "IsBusinessProcessEnabled": false, "SyncToExternalSearchIndex": false, "IsOptimisticConcurrencyEnabled": true, "ChangeTrackingEnabled": false, "IsImportable": true, "IsIntersect": false, "IsManaged": false, "IsEnabledForCharts": true, "IsEnabledForTrace": false, "IsValidForAdvancedFind": true, "DaysSinceRecordLastModified": 0, "MobileOfflineFilters": "", "IsReadingPaneEnabled": true, "IsQuickCreateEnabled": false, "LogicalName": "sample_bankaccount", "ObjectTypeCode": 10393, "OwnershipType": "UserOwned", "PrimaryNameAttribute": "sample_name", "PrimaryImageAttribute": null, "PrimaryIdAttribute": "sample_bankaccountid", "RecurrenceBaseEntityLogicalName": null, "ReportViewName": "Filteredsample_BankAccount", "SchemaName": "sample_BankAccount", "IntroducedVersion": "1.0.0.0", "IsStateModelAware": true, "EnforceStateTransitions": false, "ExternalName": null, "EntityColor": null, "LogicalCollectionName": "sample_bankaccounts", "ExternalCollectionName": null, "CollectionSchemaName": "sample_BankAccounts", "EntitySetName": "sample_bankaccounts", "IsEnabledForExternalChannels": false, "IsPrivate": false, "UsesBusinessDataLabelTable": false, "IsLogicalEntity": false, "HasNotes": false, "HasActivities": false, "HasFeedback": false, "IsSolutionAware": false, "CreatedOn": "2022-09-01T16:13:40Z", "ModifiedOn": "2022-09-01T16:13:40Z", "HasEmailAddresses": false, "OwnerId": null, "OwnerIdType": 8, "OwningBusinessUnit": null, "MetadataId": "5872b902-112a-ed11-9db1-00224804f8e2", "HasChanged": null, "Description": { "LocalizedLabels": [ { "Label": "A table to store information about customer bank accounts", "LanguageCode": 1033, "IsManaged": false, "MetadataId": "daf026b7-dfde-4b7b-8e52-91f31b098a9d", "HasChanged": null } ], "UserLocalizedLabel": { "Label": "A table to store information about customer bank accounts", "LanguageCode": 1033, "IsManaged": false, "MetadataId": "daf026b7-dfde-4b7b-8e52-91f31b098a9d", "HasChanged": null } }, "DisplayCollectionName": { "LocalizedLabels": [ { "Label": "Bank Accounts", "LanguageCode": 1033, "IsManaged": false, "MetadataId": "5c598c79-b89d-4679-8a40-9562d0a1e4fb", "HasChanged": null } ], "UserLocalizedLabel": { "Label": "Bank Accounts", "LanguageCode": 1033, "IsManaged": false, "MetadataId": "5c598c79-b89d-4679-8a40-9562d0a1e4fb", "HasChanged": null } }, "DisplayName": { "LocalizedLabels": [ { "Label": "Bank Account", "LanguageCode": 1033, "IsManaged": false, "MetadataId": "4e4c3fdc-7711-4b43-8eba-9155bb7100c0", "HasChanged": null } ], "UserLocalizedLabel": { "Label": "Bank Account", "LanguageCode": 1033, "IsManaged": false, "MetadataId": "4e4c3fdc-7711-4b43-8eba-9155bb7100c0", "HasChanged": null } }, "IsAuditEnabled": { "Value": false, "CanBeChanged": true, "ManagedPropertyLogicalName": "canmodifyauditsettings" }, "IsValidForQueue": { "Value": false, "CanBeChanged": true, "ManagedPropertyLogicalName": "canmodifyqueuesettings" }, "IsConnectionsEnabled": { "Value": false, "CanBeChanged": true, "ManagedPropertyLogicalName": "canmodifyconnectionsettings" }, "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" }, "CanBeInCustomEntityAssociation": { "Value": true, "CanBeChanged": true, "ManagedPropertyLogicalName": "canbeincustomentityassociation" }, "CanEnableSyncToExternalSearchIndex": { "Value": true, "CanBeChanged": true, "ManagedPropertyLogicalName": "canenablesynctoexternalsearchindex" }, "CanModifyAdditionalSettings": { "Value": true, "CanBeChanged": true, "ManagedPropertyLogicalName": "canmodifyadditionalsettings" }, "CanChangeHierarchicalRelationship": { "Value": true, "CanBeChanged": true, "ManagedPropertyLogicalName": "canchangehierarchicalrelationship" }, "CanChangeTrackingBeEnabled": { "Value": true, "CanBeChanged": true, "ManagedPropertyLogicalName": "canchangetrackingbeenabled" }, "IsMailMergeEnabled": { "Value": false, "CanBeChanged": true, "ManagedPropertyLogicalName": "canmodifymailmergesettings" }, "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" }, "Privileges": [ { "CanBeBasic": true, "CanBeDeep": true, "CanBeGlobal": true, "CanBeLocal": true, "CanBeEntityReference": false, "CanBeParentEntityReference": false, "Name": "prvCreatesample_BankAccount", "PrivilegeId": "44f00701-716e-4584-8bab-cb0d263c070b", "PrivilegeType": "Create" }, { "CanBeBasic": true, "CanBeDeep": true, "CanBeGlobal": true, "CanBeLocal": true, "CanBeEntityReference": false, "CanBeParentEntityReference": false, "Name": "prvReadsample_BankAccount", "PrivilegeId": "9cad3243-d0fe-467e-a731-c8b3416a6252", "PrivilegeType": "Read" }, { "CanBeBasic": true, "CanBeDeep": true, "CanBeGlobal": true, "CanBeLocal": true, "CanBeEntityReference": false, "CanBeParentEntityReference": false, "Name": "prvWritesample_BankAccount", "PrivilegeId": "dc5465ed-223f-4b13-a272-fff25e5b5270", "PrivilegeType": "Write" }, { "CanBeBasic": true, "CanBeDeep": true, "CanBeGlobal": true, "CanBeLocal": true, "CanBeEntityReference": false, "CanBeParentEntityReference": false, "Name": "prvDeletesample_BankAccount", "PrivilegeId": "9a409df2-ca4a-4ad9-8218-df88424dd7a0", "PrivilegeType": "Delete" }, { "CanBeBasic": true, "CanBeDeep": true, "CanBeGlobal": true, "CanBeLocal": true, "CanBeEntityReference": false, "CanBeParentEntityReference": false, "Name": "prvAssignsample_BankAccount", "PrivilegeId": "73bf7dd3-f532-4468-abfe-84bbf0eae058", "PrivilegeType": "Assign" }, { "CanBeBasic": true, "CanBeDeep": true, "CanBeGlobal": true, "CanBeLocal": true, "CanBeEntityReference": false, "CanBeParentEntityReference": false, "Name": "prvSharesample_BankAccount", "PrivilegeId": "292f6e27-9603-4835-882d-e28c175432ed", "PrivilegeType": "Share" }, { "CanBeBasic": true, "CanBeDeep": true, "CanBeGlobal": true, "CanBeLocal": true, "CanBeEntityReference": false, "CanBeParentEntityReference": false, "Name": "prvAppendsample_BankAccount", "PrivilegeId": "42401aa6-6447-4fdc-9679-bcb89b62bd76", "PrivilegeType": "Append" }, { "CanBeBasic": true, "CanBeDeep": true, "CanBeGlobal": true, "CanBeLocal": true, "CanBeEntityReference": false, "CanBeParentEntityReference": false, "Name": "prvAppendTosample_BankAccount", "PrivilegeId": "847ba62d-2f33-4208-87e6-52532b331f60", "PrivilegeType": "AppendTo" } ], "Settings": [] }
Salida de la consola:
El ejemplo muestra el JSON recuperado del servidor.
- Esta operación de recuperación no incluye ninguna
Actualice la tabla
sample_BankAccount
. Los únicos valores que se modifican sonHasActivities
yDescription
, pero debe enviar la definición completa conPUT
.Solicitud:
PUT [Organization Uri]/api/data/v9.2/EntityDefinitions(LogicalName='sample_bankaccount') HTTP/1.1 MSCRM.SolutionUniqueName: examplesolution MSCRM.MergeLabels: true OData-MaxVersion: 4.0 OData-Version: 4.0 If-None-Match: null Accept: application/json { "@odata.type": "Microsoft.Dynamics.CRM.EntityMetadata", "ActivityTypeMask": 0, "AutoCreateAccessTeams": false, "AutoRouteToOwnerQueue": false, "CanBeInCustomEntityAssociation": { "@odata.type": "Microsoft.Dynamics.CRM.BooleanManagedProperty", "Value": true, "CanBeChanged": true, "ManagedPropertyLogicalName": "canbeincustomentityassociation" }, "CanBeInManyToMany": { "@odata.type": "Microsoft.Dynamics.CRM.BooleanManagedProperty", "Value": true, "CanBeChanged": true, "ManagedPropertyLogicalName": "canbeinmanytomany" }, "CanBePrimaryEntityInRelationship": { "@odata.type": "Microsoft.Dynamics.CRM.BooleanManagedProperty", "Value": true, "CanBeChanged": true, "ManagedPropertyLogicalName": "canbeprimaryentityinrelationship" }, "CanBeRelatedEntityInRelationship": { "@odata.type": "Microsoft.Dynamics.CRM.BooleanManagedProperty", "Value": true, "CanBeChanged": true, "ManagedPropertyLogicalName": "canberelatedentityinrelationship" }, "CanChangeHierarchicalRelationship": { "@odata.type": "Microsoft.Dynamics.CRM.BooleanManagedProperty", "Value": true, "CanBeChanged": true, "ManagedPropertyLogicalName": "canchangehierarchicalrelationship" }, "CanChangeTrackingBeEnabled": { "@odata.type": "Microsoft.Dynamics.CRM.BooleanManagedProperty", "Value": true, "CanBeChanged": true, "ManagedPropertyLogicalName": "canchangetrackingbeenabled" }, "CanCreateAttributes": { "@odata.type": "Microsoft.Dynamics.CRM.BooleanManagedProperty", "Value": true, "CanBeChanged": false, "ManagedPropertyLogicalName": "cancreateattributes" }, "CanCreateCharts": { "@odata.type": "Microsoft.Dynamics.CRM.BooleanManagedProperty", "Value": true, "CanBeChanged": true, "ManagedPropertyLogicalName": "cancreatecharts" }, "CanCreateForms": { "@odata.type": "Microsoft.Dynamics.CRM.BooleanManagedProperty", "Value": true, "CanBeChanged": true, "ManagedPropertyLogicalName": "cancreateforms" }, "CanCreateViews": { "@odata.type": "Microsoft.Dynamics.CRM.BooleanManagedProperty", "Value": true, "CanBeChanged": true, "ManagedPropertyLogicalName": "cancreateviews" }, "CanEnableSyncToExternalSearchIndex": { "@odata.type": "Microsoft.Dynamics.CRM.BooleanManagedProperty", "Value": true, "CanBeChanged": true, "ManagedPropertyLogicalName": "canenablesynctoexternalsearchindex" }, "CanModifyAdditionalSettings": { "@odata.type": "Microsoft.Dynamics.CRM.BooleanManagedProperty", "Value": true, "CanBeChanged": true, "ManagedPropertyLogicalName": "canmodifyadditionalsettings" }, "CanTriggerWorkflow": true, "ChangeTrackingEnabled": false, "CollectionSchemaName": "sample_BankAccounts", "DaysSinceRecordLastModified": 0, "Description": { "@odata.type": "Microsoft.Dynamics.CRM.Label", "LocalizedLabels": [ { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "Contains information about customer bank accounts", "LanguageCode": 1033, "IsManaged": false } ], "UserLocalizedLabel": { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "Contains information about customer bank accounts", "LanguageCode": 1033, "IsManaged": false } }, "DisplayCollectionName": { "@odata.type": "Microsoft.Dynamics.CRM.Label", "LocalizedLabels": [ { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "Bank Accounts", "LanguageCode": 1033, "IsManaged": false, "MetadataId": "5c598c79-b89d-4679-8a40-9562d0a1e4fb" } ], "UserLocalizedLabel": { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "Bank Accounts", "LanguageCode": 1033, "IsManaged": false, "MetadataId": "5c598c79-b89d-4679-8a40-9562d0a1e4fb" } }, "DisplayName": { "@odata.type": "Microsoft.Dynamics.CRM.Label", "LocalizedLabels": [ { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "Bank Account", "LanguageCode": 1033, "IsManaged": false, "MetadataId": "4e4c3fdc-7711-4b43-8eba-9155bb7100c0" } ], "UserLocalizedLabel": { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "Bank Account", "LanguageCode": 1033, "IsManaged": false, "MetadataId": "4e4c3fdc-7711-4b43-8eba-9155bb7100c0" } }, "EnforceStateTransitions": false, "EntityHelpUrlEnabled": false, "EntitySetName": "sample_bankaccounts", "HasActivities": true, "HasFeedback": false, "HasNotes": false, "IntroducedVersion": "1.0.0.0", "IsActivity": false, "IsActivityParty": false, "IsAIRUpdated": false, "IsAuditEnabled": { "@odata.type": "Microsoft.Dynamics.CRM.BooleanManagedProperty", "Value": false, "CanBeChanged": true, "ManagedPropertyLogicalName": "canmodifyauditsettings" }, "IsAvailableOffline": false, "IsBPFEntity": false, "IsBusinessProcessEnabled": false, "IsChildEntity": false, "IsConnectionsEnabled": { "@odata.type": "Microsoft.Dynamics.CRM.BooleanManagedProperty", "Value": false, "CanBeChanged": true, "ManagedPropertyLogicalName": "canmodifyconnectionsettings" }, "IsCustomEntity": true, "IsCustomizable": { "@odata.type": "Microsoft.Dynamics.CRM.BooleanManagedProperty", "Value": true, "CanBeChanged": true, "ManagedPropertyLogicalName": "iscustomizable" }, "IsDocumentManagementEnabled": false, "IsDocumentRecommendationsEnabled": false, "IsDuplicateDetectionEnabled": { "@odata.type": "Microsoft.Dynamics.CRM.BooleanManagedProperty", "Value": false, "CanBeChanged": true, "ManagedPropertyLogicalName": "canmodifyduplicatedetectionsettings" }, "IsEnabledForCharts": true, "IsEnabledForExternalChannels": false, "IsEnabledForTrace": false, "IsImportable": true, "IsInteractionCentricEnabled": false, "IsIntersect": false, "IsKnowledgeManagementEnabled": false, "IsLogicalEntity": false, "IsMailMergeEnabled": { "@odata.type": "Microsoft.Dynamics.CRM.BooleanManagedProperty", "Value": false, "CanBeChanged": true, "ManagedPropertyLogicalName": "canmodifymailmergesettings" }, "IsManaged": false, "IsMappable": { "@odata.type": "Microsoft.Dynamics.CRM.BooleanManagedProperty", "Value": true, "CanBeChanged": false, "ManagedPropertyLogicalName": "ismappable" }, "IsMSTeamsIntegrationEnabled": false, "IsOfflineInMobileClient": { "@odata.type": "Microsoft.Dynamics.CRM.BooleanManagedProperty", "Value": false, "CanBeChanged": true, "ManagedPropertyLogicalName": "canmodifymobileclientoffline" }, "IsOneNoteIntegrationEnabled": false, "IsOptimisticConcurrencyEnabled": true, "IsPrivate": false, "IsQuickCreateEnabled": false, "IsReadingPaneEnabled": true, "IsReadOnlyInMobileClient": { "@odata.type": "Microsoft.Dynamics.CRM.BooleanManagedProperty", "Value": false, "CanBeChanged": true, "ManagedPropertyLogicalName": "canmodifymobileclientreadonly" }, "IsRenameable": { "@odata.type": "Microsoft.Dynamics.CRM.BooleanManagedProperty", "Value": true, "CanBeChanged": true, "ManagedPropertyLogicalName": "isrenameable" }, "IsSLAEnabled": false, "IsSolutionAware": false, "IsStateModelAware": true, "IsValidForAdvancedFind": true, "IsValidForQueue": { "@odata.type": "Microsoft.Dynamics.CRM.BooleanManagedProperty", "Value": false, "CanBeChanged": true, "ManagedPropertyLogicalName": "canmodifyqueuesettings" }, "IsVisibleInMobile": { "@odata.type": "Microsoft.Dynamics.CRM.BooleanManagedProperty", "Value": false, "CanBeChanged": true, "ManagedPropertyLogicalName": "canmodifymobilevisibility" }, "IsVisibleInMobileClient": { "@odata.type": "Microsoft.Dynamics.CRM.BooleanManagedProperty", "Value": false, "CanBeChanged": true, "ManagedPropertyLogicalName": "canmodifymobileclientvisibility" }, "LogicalCollectionName": "sample_bankaccounts", "LogicalName": "sample_bankaccount", "MobileOfflineFilters": "", "ObjectTypeCode": 10393, "OwnershipType": "UserOwned", "PrimaryIdAttribute": "sample_bankaccountid", "PrimaryNameAttribute": "sample_name", "Privileges": [ { "@odata.type": "Microsoft.Dynamics.CRM.SecurityPrivilegeMetadata", "CanBeBasic": true, "CanBeDeep": true, "CanBeGlobal": true, "CanBeLocal": true, "CanBeEntityReference": false, "CanBeParentEntityReference": false, "Name": "prvCreatesample_BankAccount", "PrivilegeId": "44f00701-716e-4584-8bab-cb0d263c070b", "PrivilegeType": "Create" }, { "@odata.type": "Microsoft.Dynamics.CRM.SecurityPrivilegeMetadata", "CanBeBasic": true, "CanBeDeep": true, "CanBeGlobal": true, "CanBeLocal": true, "CanBeEntityReference": false, "CanBeParentEntityReference": false, "Name": "prvReadsample_BankAccount", "PrivilegeId": "9cad3243-d0fe-467e-a731-c8b3416a6252", "PrivilegeType": "Read" }, { "@odata.type": "Microsoft.Dynamics.CRM.SecurityPrivilegeMetadata", "CanBeBasic": true, "CanBeDeep": true, "CanBeGlobal": true, "CanBeLocal": true, "CanBeEntityReference": false, "CanBeParentEntityReference": false, "Name": "prvWritesample_BankAccount", "PrivilegeId": "dc5465ed-223f-4b13-a272-fff25e5b5270", "PrivilegeType": "Write" }, { "@odata.type": "Microsoft.Dynamics.CRM.SecurityPrivilegeMetadata", "CanBeBasic": true, "CanBeDeep": true, "CanBeGlobal": true, "CanBeLocal": true, "CanBeEntityReference": false, "CanBeParentEntityReference": false, "Name": "prvDeletesample_BankAccount", "PrivilegeId": "9a409df2-ca4a-4ad9-8218-df88424dd7a0", "PrivilegeType": "Delete" }, { "@odata.type": "Microsoft.Dynamics.CRM.SecurityPrivilegeMetadata", "CanBeBasic": true, "CanBeDeep": true, "CanBeGlobal": true, "CanBeLocal": true, "CanBeEntityReference": false, "CanBeParentEntityReference": false, "Name": "prvAssignsample_BankAccount", "PrivilegeId": "73bf7dd3-f532-4468-abfe-84bbf0eae058", "PrivilegeType": "Assign" }, { "@odata.type": "Microsoft.Dynamics.CRM.SecurityPrivilegeMetadata", "CanBeBasic": true, "CanBeDeep": true, "CanBeGlobal": true, "CanBeLocal": true, "CanBeEntityReference": false, "CanBeParentEntityReference": false, "Name": "prvSharesample_BankAccount", "PrivilegeId": "292f6e27-9603-4835-882d-e28c175432ed", "PrivilegeType": "Share" }, { "@odata.type": "Microsoft.Dynamics.CRM.SecurityPrivilegeMetadata", "CanBeBasic": true, "CanBeDeep": true, "CanBeGlobal": true, "CanBeLocal": true, "CanBeEntityReference": false, "CanBeParentEntityReference": false, "Name": "prvAppendsample_BankAccount", "PrivilegeId": "42401aa6-6447-4fdc-9679-bcb89b62bd76", "PrivilegeType": "Append" }, { "@odata.type": "Microsoft.Dynamics.CRM.SecurityPrivilegeMetadata", "CanBeBasic": true, "CanBeDeep": true, "CanBeGlobal": true, "CanBeLocal": true, "CanBeEntityReference": false, "CanBeParentEntityReference": false, "Name": "prvAppendTosample_BankAccount", "PrivilegeId": "847ba62d-2f33-4208-87e6-52532b331f60", "PrivilegeType": "AppendTo" } ], "ReportViewName": "Filteredsample_BankAccount", "SchemaName": "sample_BankAccount", "Settings": [], "SyncToExternalSearchIndex": false, "UsesBusinessDataLabelTable": false, "MetadataId": "5872b902-112a-ed11-9db1-00224804f8e2" }
Respuesta:
HTTP/1.1 204 NoContent OData-Version: 4.0 OData-EntityId: [Organization Uri]/api/data/v9.2/EntityDefinitions(LogicalName='sample_bankaccount')
Salida de la consola:
Sending request to update the sample_BankAccount table... Updated the Bank Account table
Sección 2: Crear, recuperar y actualizar columnas
Esta sección crea y recupera un grupo seleccionado de definiciones de columna. Cada uno de estos tipos se derivan de AttributeMetadata EntityType por lo que comparten la mayoría de las mismas propiedades comunes. Sin embargo, cada tipo derivado tiene algunas propiedades especiales.
Columna booleana
Cree una columna booleana usando BooleanAttributeMetadata EntityType. A pesar del nombre, las columnas booleanas tienen una propiedad
OptionSet
al igual que las columnas de elección. Sin embargo, siempre tienen solo dos opciones:TrueOption
con valor 1 yFalseOption
con valor 0.Solicitud:
POST [Organization Uri]/api/data/v9.2/EntityDefinitions(LogicalName='sample_bankaccount')/Attributes HTTP/1.1 MSCRM.SolutionUniqueName: examplesolution OData-MaxVersion: 4.0 OData-Version: 4.0 If-None-Match: null Accept: application/json { "@odata.type": "Microsoft.Dynamics.CRM.BooleanAttributeMetadata", "AttributeType": "Boolean", "AttributeTypeName": { "Value": "BooleanType" }, "DefaultValue": false, "OptionSet": { "@odata.type": "Microsoft.Dynamics.CRM.BooleanOptionSetMetadata", "TrueOption": { "Value": 1, "Label": { "@odata.type": "Microsoft.Dynamics.CRM.Label", "LocalizedLabels": [ { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "True", "LanguageCode": 1033, "IsManaged": false } ], "UserLocalizedLabel": { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "True", "LanguageCode": 1033, "IsManaged": false } } }, "FalseOption": { "Value": 0, "Label": { "@odata.type": "Microsoft.Dynamics.CRM.Label", "LocalizedLabels": [ { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "False", "LanguageCode": 1033, "IsManaged": false } ], "UserLocalizedLabel": { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "False", "LanguageCode": 1033, "IsManaged": false } } }, "OptionSetType": "Boolean" }, "Description": { "@odata.type": "Microsoft.Dynamics.CRM.Label", "LocalizedLabels": [ { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "Boolean Attribute", "LanguageCode": 1033, "IsManaged": false } ], "UserLocalizedLabel": { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "Boolean Attribute", "LanguageCode": 1033, "IsManaged": false } }, "DisplayName": { "@odata.type": "Microsoft.Dynamics.CRM.Label", "LocalizedLabels": [ { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "Sample Boolean", "LanguageCode": 1033, "IsManaged": false } ], "UserLocalizedLabel": { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "Sample Boolean", "LanguageCode": 1033, "IsManaged": false } }, "RequiredLevel": { "Value": "None", "CanBeChanged": false, "ManagedPropertyLogicalName": "canmodifyrequirementlevelsettings" }, "SchemaName": "sample_Boolean" }
Respuesta:
HTTP/1.1 204 NoContent OData-Version: 4.0 OData-EntityId: [Organization Uri]/api/data/v9.2/EntityDefinitions(LogicalName='sample_bankaccount')/Attributes(73f33b3d-112a-ed11-9db1-00224804f8e2)
Recupere la columna booleana que incluye
$expand=OptionSet
para que se puedan recuperar las opciones.Nota
La URL de esta solicitud incluye
/Microsoft.Dynamics.CRM.BooleanAttributeMetadata
, que realiza una operación de conversión necesaria para devolver cualquier propiedad que no esté definida en AttributeMetadata EntityType. Sin esto, no es posible la expansión deOptionSet
.Solicitud:
GET [Organization Uri]/api/data/v9.2/EntityDefinitions(LogicalName='sample_bankaccount')/Attributes(LogicalName='sample_boolean')/Microsoft.Dynamics.CRM.BooleanAttributeMetadata?$expand=OptionSet HTTP/1.1 Consistency: Strong OData-MaxVersion: 4.0 OData-Version: 4.0 If-None-Match: null Accept: application/json
Respuesta:
HTTP/1.1 200 OK OData-Version: 4.0 { "@odata.context": "[Organization Uri]/api/data/v9.2/$metadata#EntityDefinitions('sample_bankaccount')/Attributes/Microsoft.Dynamics.CRM.BooleanAttributeMetadata(OptionSet())/$entity", "MetadataId": "73f33b3d-112a-ed11-9db1-00224804f8e2", "HasChanged": null, "AttributeOf": null, "AttributeType": "Boolean", "ColumnNumber": 35, "DeprecatedVersion": null, "IntroducedVersion": "1.0.0.0", "EntityLogicalName": "sample_bankaccount", "IsCustomAttribute": true, "IsPrimaryId": false, "IsValidODataAttribute": true, "IsPrimaryName": false, "IsValidForCreate": true, "IsValidForRead": true, "IsValidForUpdate": true, "CanBeSecuredForRead": true, "CanBeSecuredForCreate": true, "CanBeSecuredForUpdate": true, "IsSecured": false, "IsRetrievable": false, "IsFilterable": false, "IsSearchable": false, "IsManaged": false, "LinkedAttributeId": null, "LogicalName": "sample_boolean", "IsValidForForm": true, "IsRequiredForForm": false, "IsValidForGrid": true, "SchemaName": "sample_Boolean", "ExternalName": null, "IsLogical": false, "IsDataSourceSecret": false, "InheritsFrom": null, "CreatedOn": "2022-09-01T16:15:08Z", "ModifiedOn": "2022-09-01T16:15:08Z", "SourceType": 0, "AutoNumberFormat": null, "DefaultValue": false, "FormulaDefinition": "", "SourceTypeMask": 0, "AttributeTypeName": { "Value": "BooleanType" }, "Description": { "LocalizedLabels": [ { "Label": "Boolean Attribute", "LanguageCode": 1033, "IsManaged": false, "MetadataId": "ea50b52d-53e4-4f8d-82ce-8f74a7554800", "HasChanged": null } ], "UserLocalizedLabel": { "Label": "Boolean Attribute", "LanguageCode": 1033, "IsManaged": false, "MetadataId": "ea50b52d-53e4-4f8d-82ce-8f74a7554800", "HasChanged": null } }, "DisplayName": { "LocalizedLabels": [ { "Label": "Sample Boolean", "LanguageCode": 1033, "IsManaged": false, "MetadataId": "9e4daa21-8774-4de9-b467-d046389459dc", "HasChanged": null } ], "UserLocalizedLabel": { "Label": "Sample Boolean", "LanguageCode": 1033, "IsManaged": false, "MetadataId": "9e4daa21-8774-4de9-b467-d046389459dc", "HasChanged": null } }, "IsAuditEnabled": { "Value": true, "CanBeChanged": true, "ManagedPropertyLogicalName": "canmodifyauditsettings" }, "IsGlobalFilterEnabled": { "Value": false, "CanBeChanged": true, "ManagedPropertyLogicalName": "canmodifyglobalfiltersettings" }, "IsSortableEnabled": { "Value": false, "CanBeChanged": true, "ManagedPropertyLogicalName": "canmodifyissortablesettings" }, "IsCustomizable": { "Value": true, "CanBeChanged": true, "ManagedPropertyLogicalName": "iscustomizable" }, "IsRenameable": { "Value": true, "CanBeChanged": true, "ManagedPropertyLogicalName": "isrenameable" }, "IsValidForAdvancedFind": { "Value": true, "CanBeChanged": true, "ManagedPropertyLogicalName": "canmodifysearchsettings" }, "RequiredLevel": { "Value": "None", "CanBeChanged": false, "ManagedPropertyLogicalName": "canmodifyrequirementlevelsettings" }, "CanModifyAdditionalSettings": { "Value": true, "CanBeChanged": true, "ManagedPropertyLogicalName": "canmodifyadditionalsettings" }, "Settings": [], "OptionSet": { "MetadataId": "74f33b3d-112a-ed11-9db1-00224804f8e2", "HasChanged": null, "IsCustomOptionSet": true, "IsGlobal": false, "IsManaged": false, "Name": "sample_bankaccount_sample_boolean", "ExternalTypeName": null, "OptionSetType": "Boolean", "IntroducedVersion": "1.0.0.0", "Description": { "LocalizedLabels": [ { "Label": "Boolean Attribute", "LanguageCode": 1033, "IsManaged": false, "MetadataId": "76f33b3d-112a-ed11-9db1-00224804f8e2", "HasChanged": null } ], "UserLocalizedLabel": { "Label": "Boolean Attribute", "LanguageCode": 1033, "IsManaged": false, "MetadataId": "76f33b3d-112a-ed11-9db1-00224804f8e2", "HasChanged": null } }, "DisplayName": { "LocalizedLabels": [ { "Label": "Sample Boolean", "LanguageCode": 1033, "IsManaged": false, "MetadataId": "75f33b3d-112a-ed11-9db1-00224804f8e2", "HasChanged": null } ], "UserLocalizedLabel": { "Label": "Sample Boolean", "LanguageCode": 1033, "IsManaged": false, "MetadataId": "75f33b3d-112a-ed11-9db1-00224804f8e2", "HasChanged": null } }, "IsCustomizable": { "Value": true, "CanBeChanged": true, "ManagedPropertyLogicalName": "iscustomizable" }, "TrueOption": { "Value": 1, "Color": null, "IsManaged": false, "ExternalValue": "", "ParentValues": [], "MetadataId": null, "HasChanged": null, "Label": { "LocalizedLabels": [ { "Label": "True", "LanguageCode": 1033, "IsManaged": false, "MetadataId": "12049c5f-e99d-453f-8315-3933512539a1", "HasChanged": null } ], "UserLocalizedLabel": { "Label": "True", "LanguageCode": 1033, "IsManaged": false, "MetadataId": "12049c5f-e99d-453f-8315-3933512539a1", "HasChanged": null } }, "Description": { "LocalizedLabels": [], "UserLocalizedLabel": null } }, "FalseOption": { "Value": 0, "Color": null, "IsManaged": false, "ExternalValue": "", "ParentValues": [], "MetadataId": null, "HasChanged": null, "Label": { "LocalizedLabels": [ { "Label": "False", "LanguageCode": 1033, "IsManaged": false, "MetadataId": "e3d4c2b1-ad54-4d3a-8e01-f759da0e476f", "HasChanged": null } ], "UserLocalizedLabel": { "Label": "False", "LanguageCode": 1033, "IsManaged": false, "MetadataId": "e3d4c2b1-ad54-4d3a-8e01-f759da0e476f", "HasChanged": null } }, "Description": { "LocalizedLabels": [], "UserLocalizedLabel": null } } } }
Salida de la consola:
Original Option Labels: True Option Label:'True' Value: 1 False Option Label:'False' Value: 0
Actualice la columna booleana. Los únicos cambios son en las propiedades
DisplayName
,Description
yRequiredLevel
, pero se incluye toda la definición porque se usaPUT
.Nota
A pesar de que la propiedad
OptionSet
está incluida en esta carga útil, los cambios en las opciones no se aplicarían porque no se consideran parte de la definición de la columna. Deben actualizarse por separado y este ejemplo le mostrará cómo hacerlo en los siguientes pasos.Solicitud:
PUT [Organization Uri]/api/data/v9.2/EntityDefinitions(LogicalName='sample_bankaccount')/Attributes(LogicalName='sample_boolean') HTTP/1.1 MSCRM.SolutionUniqueName: examplesolution MSCRM.MergeLabels: true OData-MaxVersion: 4.0 OData-Version: 4.0 If-None-Match: null Accept: application/json { "@odata.type": "Microsoft.Dynamics.CRM.BooleanAttributeMetadata", "AttributeType": "Boolean", "AttributeTypeName": { "Value": "BooleanType" }, "DefaultValue": false, "FormulaDefinition": "", "SourceTypeMask": 0, "OptionSet": { "@odata.type": "Microsoft.Dynamics.CRM.BooleanOptionSetMetadata", "TrueOption": { "Value": 1, "Label": { "@odata.type": "Microsoft.Dynamics.CRM.Label", "LocalizedLabels": [ { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "True", "LanguageCode": 1033, "IsManaged": false, "MetadataId": "12049c5f-e99d-453f-8315-3933512539a1" } ], "UserLocalizedLabel": { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "True", "LanguageCode": 1033, "IsManaged": false, "MetadataId": "12049c5f-e99d-453f-8315-3933512539a1" } }, "Description": { "@odata.type": "Microsoft.Dynamics.CRM.Label", "LocalizedLabels": [], "UserLocalizedLabel": { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "LanguageCode": 0, "IsManaged": false } }, "IsManaged": false, "ExternalValue": "" }, "FalseOption": { "Value": 0, "Label": { "@odata.type": "Microsoft.Dynamics.CRM.Label", "LocalizedLabels": [ { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "False", "LanguageCode": 1033, "IsManaged": false, "MetadataId": "e3d4c2b1-ad54-4d3a-8e01-f759da0e476f" } ], "UserLocalizedLabel": { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "False", "LanguageCode": 1033, "IsManaged": false, "MetadataId": "e3d4c2b1-ad54-4d3a-8e01-f759da0e476f" } }, "Description": { "@odata.type": "Microsoft.Dynamics.CRM.Label", "LocalizedLabels": [], "UserLocalizedLabel": { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "LanguageCode": 0, "IsManaged": false } }, "IsManaged": false, "ExternalValue": "" }, "OptionSetType": "Boolean", "Description": { "@odata.type": "Microsoft.Dynamics.CRM.Label", "LocalizedLabels": [ { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "Boolean Attribute", "LanguageCode": 1033, "IsManaged": false, "MetadataId": "76f33b3d-112a-ed11-9db1-00224804f8e2" } ], "UserLocalizedLabel": { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "Boolean Attribute", "LanguageCode": 1033, "IsManaged": false, "MetadataId": "76f33b3d-112a-ed11-9db1-00224804f8e2" } }, "DisplayName": { "@odata.type": "Microsoft.Dynamics.CRM.Label", "LocalizedLabels": [ { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "Sample Boolean", "LanguageCode": 1033, "IsManaged": false, "MetadataId": "75f33b3d-112a-ed11-9db1-00224804f8e2" } ], "UserLocalizedLabel": { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "Sample Boolean", "LanguageCode": 1033, "IsManaged": false, "MetadataId": "75f33b3d-112a-ed11-9db1-00224804f8e2" } }, "IntroducedVersion": "1.0.0.0", "IsCustomizable": { "@odata.type": "Microsoft.Dynamics.CRM.BooleanManagedProperty", "Value": true, "CanBeChanged": true, "ManagedPropertyLogicalName": "iscustomizable" }, "IsCustomOptionSet": true, "IsGlobal": false, "IsManaged": false, "Name": "sample_bankaccount_sample_boolean", "MetadataId": "74f33b3d-112a-ed11-9db1-00224804f8e2" }, "CanBeSecuredForCreate": true, "CanBeSecuredForRead": true, "CanBeSecuredForUpdate": true, "CanModifyAdditionalSettings": { "@odata.type": "Microsoft.Dynamics.CRM.BooleanManagedProperty", "Value": true, "CanBeChanged": true, "ManagedPropertyLogicalName": "canmodifyadditionalsettings" }, "ColumnNumber": 35, "Description": { "@odata.type": "Microsoft.Dynamics.CRM.Label", "LocalizedLabels": [ { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "Boolean Attribute Updated", "LanguageCode": 1033, "IsManaged": false } ], "UserLocalizedLabel": { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "Boolean Attribute Updated", "LanguageCode": 1033, "IsManaged": false } }, "DisplayName": { "@odata.type": "Microsoft.Dynamics.CRM.Label", "LocalizedLabels": [ { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "Sample Boolean Updated", "LanguageCode": 1033, "IsManaged": false } ], "UserLocalizedLabel": { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "Sample Boolean Updated", "LanguageCode": 1033, "IsManaged": false } }, "EntityLogicalName": "sample_bankaccount", "IntroducedVersion": "1.0.0.0", "IsAuditEnabled": { "@odata.type": "Microsoft.Dynamics.CRM.BooleanManagedProperty", "Value": true, "CanBeChanged": true, "ManagedPropertyLogicalName": "canmodifyauditsettings" }, "IsCustomAttribute": true, "IsCustomizable": { "@odata.type": "Microsoft.Dynamics.CRM.BooleanManagedProperty", "Value": true, "CanBeChanged": true, "ManagedPropertyLogicalName": "iscustomizable" }, "IsDataSourceSecret": false, "IsFilterable": false, "IsGlobalFilterEnabled": { "@odata.type": "Microsoft.Dynamics.CRM.BooleanManagedProperty", "Value": false, "CanBeChanged": true, "ManagedPropertyLogicalName": "canmodifyglobalfiltersettings" }, "IsLogical": false, "IsManaged": false, "IsPrimaryId": false, "IsPrimaryName": false, "IsRenameable": { "@odata.type": "Microsoft.Dynamics.CRM.BooleanManagedProperty", "Value": true, "CanBeChanged": true, "ManagedPropertyLogicalName": "isrenameable" }, "IsRequiredForForm": false, "IsRetrievable": false, "IsSearchable": false, "IsSecured": false, "IsSortableEnabled": { "@odata.type": "Microsoft.Dynamics.CRM.BooleanManagedProperty", "Value": false, "CanBeChanged": true, "ManagedPropertyLogicalName": "canmodifyissortablesettings" }, "IsValidForAdvancedFind": { "@odata.type": "Microsoft.Dynamics.CRM.BooleanManagedProperty", "Value": true, "CanBeChanged": true, "ManagedPropertyLogicalName": "canmodifysearchsettings" }, "IsValidForCreate": true, "IsValidForForm": true, "IsValidForGrid": true, "IsValidForRead": true, "IsValidForUpdate": true, "LogicalName": "sample_boolean", "RequiredLevel": { "Value": "ApplicationRequired", "CanBeChanged": false, "ManagedPropertyLogicalName": "canmodifyrequirementlevelsettings" }, "SchemaName": "sample_Boolean", "SourceType": 0, "MetadataId": "73f33b3d-112a-ed11-9db1-00224804f8e2" }
Respuesta:
HTTP/1.1 204 NoContent OData-Version: 4.0 OData-EntityId: [Organization Uri]/api/data/v9.2/EntityDefinitions(LogicalName='sample_bankaccount')/Attributes(LogicalName='sample_boolean')
Salida de la consola:
Updated Boolean Column properties
Valores de opción de actualización
Actualice cada una de las opciones booleanas usando UpdateOptionValue Action.
Nota
Aquí estamos aplicando cambios a las opciones en un atributo booleano, pero usará UpdateOptionValue
para opciones en cualquier tipo de columna que las use excepto columnas status
, donde debe utilizar UpdateStateValue Action.
Cambie el valor de la etiqueta
TrueOption
a 'Arriba'.Solicitud:
POST [Organization Uri]/api/data/v9.2/UpdateOptionValue HTTP/1.1 OData-MaxVersion: 4.0 OData-Version: 4.0 If-None-Match: null Accept: application/json { "AttributeLogicalName": "sample_boolean", "EntityLogicalName": "sample_bankaccount", "Value": 1, "Label": { "@odata.type": "Microsoft.Dynamics.CRM.Label", "LocalizedLabels": [ { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "Up", "LanguageCode": 1033, "IsManaged": false } ], "UserLocalizedLabel": { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "Up", "LanguageCode": 1033, "IsManaged": false } }, "MergeLabels": true }
Respuesta:
HTTP/1.1 204 NoContent OData-Version: 4.0
Cambie el valor de la etiqueta
FalseOption
a 'Abajo'.Solicitud:
POST [Organization Uri]/api/data/v9.2/UpdateOptionValue HTTP/1.1 OData-MaxVersion: 4.0 OData-Version: 4.0 If-None-Match: null Accept: application/json { "AttributeLogicalName": "sample_boolean", "EntityLogicalName": "sample_bankaccount", "Value": 0, "Label": { "@odata.type": "Microsoft.Dynamics.CRM.Label", "LocalizedLabels": [ { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "Down", "LanguageCode": 1033, "IsManaged": false } ], "UserLocalizedLabel": { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "Down", "LanguageCode": 1033, "IsManaged": false } }, "MergeLabels": true }
Respuesta:
HTTP/1.1 204 NoContent OData-Version: 4.0
Salida de la consola:
Updated option labels
Recupere los valores de opción modificados para la columna booleana usando la misma consulta que antes:
Salida de la consola:
Updated Option Labels: Updated True Option Label:'Up' Value: 1 Updated False Option Label:'Down' Value: 0
Columna DateTime
Cree una columna DateTime mediante DateTimeAttributeMetadata EntityType.
Solicitud:
POST [Organization Uri]/api/data/v9.2/EntityDefinitions(LogicalName='sample_bankaccount')/Attributes HTTP/1.1 MSCRM.SolutionUniqueName: examplesolution OData-MaxVersion: 4.0 OData-Version: 4.0 If-None-Match: null Accept: application/json { "@odata.type": "Microsoft.Dynamics.CRM.DateTimeAttributeMetadata", "AttributeType": "DateTime", "AttributeTypeName": { "Value": "DateTimeType" }, "Format": "DateOnly", "ImeMode": "Disabled", "DateTimeBehavior": { "Value": "DateOnly" }, "Description": { "@odata.type": "Microsoft.Dynamics.CRM.Label", "LocalizedLabels": [ { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "DateTime Attribute", "LanguageCode": 1033, "IsManaged": false } ], "UserLocalizedLabel": { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "DateTime Attribute", "LanguageCode": 1033, "IsManaged": false } }, "DisplayName": { "@odata.type": "Microsoft.Dynamics.CRM.Label", "LocalizedLabels": [ { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "Sample DateTime", "LanguageCode": 1033, "IsManaged": false } ], "UserLocalizedLabel": { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "Sample DateTime", "LanguageCode": 1033, "IsManaged": false } }, "RequiredLevel": { "Value": "None", "CanBeChanged": false, "ManagedPropertyLogicalName": "canmodifyrequirementlevelsettings" }, "SchemaName": "sample_DateTime" }
Respuesta:
HTTP/1.1 204 NoContent OData-Version: 4.0 OData-EntityId: [Organization Uri]/api/data/v9.2/EntityDefinitions(LogicalName='sample_bankaccount')/Attributes(f1db3d43-112a-ed11-9db1-00224804f8e2)
Salida de la consola:
Created DateTime column with id:f1db3d43-112a-ed11-9db1-00224804f8e2
Recupere los valores seleccionados de la columna DateTime.
Solicitud:
GET [Organization Uri]/api/data/v9.2/EntityDefinitions(LogicalName='sample_bankaccount')/Attributes(LogicalName='sample_datetime')/Microsoft.Dynamics.CRM.DateTimeAttributeMetadata?$select=SchemaName,Format,DateTimeBehavior HTTP/1.1 Consistency: Strong OData-MaxVersion: 4.0 OData-Version: 4.0 If-None-Match: null Accept: application/json
Respuesta:
HTTP/1.1 200 OK OData-Version: 4.0 { "@odata.context": "[Organization Uri]/api/data/v9.2/$metadata#EntityDefinitions('sample_bankaccount')/Attributes/Microsoft.Dynamics.CRM.DateTimeAttributeMetadata(SchemaName,Format,DateTimeBehavior)/$entity", "SchemaName": "sample_DateTime", "Format": "DateOnly", "MetadataId": "f1db3d43-112a-ed11-9db1-00224804f8e2", "DateTimeBehavior": { "Value": "DateOnly" } }
Salida de la consola:
Retrieved Datetime column properties: DateTime Format:'DateOnly' DateTime DateTimeBehavior:'DateOnly'
Columna decimal
Cree una columna Decimal usando DecimalAttributeMetadata EntityType.
Solicitud:
POST [Organization Uri]/api/data/v9.2/EntityDefinitions(LogicalName='sample_bankaccount')/Attributes HTTP/1.1 MSCRM.SolutionUniqueName: examplesolution OData-MaxVersion: 4.0 OData-Version: 4.0 If-None-Match: null Accept: application/json { "@odata.type": "Microsoft.Dynamics.CRM.DecimalAttributeMetadata", "AttributeType": "Decimal", "AttributeTypeName": { "Value": "DecimalType" }, "MaxValue": 100.0, "MinValue": 0.0, "Precision": 1, "Description": { "@odata.type": "Microsoft.Dynamics.CRM.Label", "LocalizedLabels": [ { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "Decimal Attribute", "LanguageCode": 1033, "IsManaged": false } ], "UserLocalizedLabel": { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "Decimal Attribute", "LanguageCode": 1033, "IsManaged": false } }, "DisplayName": { "@odata.type": "Microsoft.Dynamics.CRM.Label", "LocalizedLabels": [ { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "Sample Decimal", "LanguageCode": 1033, "IsManaged": false } ], "UserLocalizedLabel": { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "Sample Decimal", "LanguageCode": 1033, "IsManaged": false } }, "RequiredLevel": { "Value": "None", "CanBeChanged": false, "ManagedPropertyLogicalName": "canmodifyrequirementlevelsettings" }, "SchemaName": "sample_Decimal" }
Respuesta:
HTTP/1.1 204 NoContent OData-Version: 4.0 OData-EntityId: [Organization Uri]/api/data/v9.2/EntityDefinitions(LogicalName='sample_bankaccount')/Attributes(f2db3d43-112a-ed11-9db1-00224804f8e2)
Salida de la consola:
Created Decimal column with id:f2db3d43-112a-ed11-9db1-00224804f8e2
Recupere los valores seleccionados de la columna Decimal.
Solicitud:
GET [Organization Uri]/api/data/v9.2/EntityDefinitions(LogicalName='sample_bankaccount')/Attributes(LogicalName='sample_decimal')/Microsoft.Dynamics.CRM.DecimalAttributeMetadata?$select=SchemaName,MaxValue,MinValue,Precision HTTP/1.1 Consistency: Strong OData-MaxVersion: 4.0 OData-Version: 4.0 If-None-Match: null Accept: application/json
Respuesta:
HTTP/1.1 200 OK OData-Version: 4.0 { "@odata.context": "[Organization Uri]/api/data/v9.2/$metadata#EntityDefinitions('sample_bankaccount')/Attributes/Microsoft.Dynamics.CRM.DecimalAttributeMetadata(SchemaName,MaxValue,MinValue,Precision)/$entity", "SchemaName": "sample_Decimal", "MaxValue": 100, "MinValue": 0, "Precision": 1, "MetadataId": "f2db3d43-112a-ed11-9db1-00224804f8e2" }
Salida de la consola:
Retrieved Decimal column properties: Decimal MaxValue:100 Decimal MinValue:0 Decimal Precision:1
Columnas de enteros
Cree una columna de enteros usando IntegerAttributeMetadata EntityType.
Solicitud:
POST [Organization Uri]/api/data/v9.2/EntityDefinitions(LogicalName='sample_bankaccount')/Attributes HTTP/1.1 MSCRM.SolutionUniqueName: examplesolution OData-MaxVersion: 4.0 OData-Version: 4.0 If-None-Match: null Accept: application/json { "@odata.type": "Microsoft.Dynamics.CRM.IntegerAttributeMetadata", "AttributeType": "Integer", "AttributeTypeName": { "Value": "IntegerType" }, "MaxValue": 100, "MinValue": 0, "Format": "None", "SourceTypeMask": 0, "Description": { "@odata.type": "Microsoft.Dynamics.CRM.Label", "LocalizedLabels": [ { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "Integer Attribute", "LanguageCode": 1033, "IsManaged": false } ], "UserLocalizedLabel": { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "Integer Attribute", "LanguageCode": 1033, "IsManaged": false } }, "DisplayName": { "@odata.type": "Microsoft.Dynamics.CRM.Label", "LocalizedLabels": [ { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "Sample Integer", "LanguageCode": 1033, "IsManaged": false } ], "UserLocalizedLabel": { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "Sample Integer", "LanguageCode": 1033, "IsManaged": false } }, "RequiredLevel": { "Value": "None", "CanBeChanged": false, "ManagedPropertyLogicalName": "canmodifyrequirementlevelsettings" }, "SchemaName": "sample_Integer" }
Respuesta:
HTTP/1.1 204 NoContent OData-Version: 4.0 OData-EntityId: [Organization Uri]/api/data/v9.2/EntityDefinitions(LogicalName='sample_bankaccount')/Attributes(f5db3d43-112a-ed11-9db1-00224804f8e2)
Salida de la consola:
Created Integer column with id:f5db3d43-112a-ed11-9db1-00224804f8e2
Recupere los valores seleccionados de la columna de enteros.
Solicitud:
GET [Organization Uri]/api/data/v9.2/EntityDefinitions(LogicalName='sample_bankaccount')/Attributes(LogicalName='sample_integer')/Microsoft.Dynamics.CRM.IntegerAttributeMetadata?$select=SchemaName,MaxValue,MinValue,Format HTTP/1.1 Consistency: Strong OData-MaxVersion: 4.0 OData-Version: 4.0 If-None-Match: null Accept: application/json
Respuesta:
HTTP/1.1 200 OK OData-Version: 4.0 { "@odata.context": "[Organization Uri]/api/data/v9.2/$metadata#EntityDefinitions('sample_bankaccount')/Attributes/Microsoft.Dynamics.CRM.IntegerAttributeMetadata(SchemaName,MaxValue,MinValue,Format)/$entity", "SchemaName": "sample_Integer", "MaxValue": 100, "MinValue": 0, "Format": "None", "MetadataId": "f5db3d43-112a-ed11-9db1-00224804f8e2" }
Salida de la consola:
Retrieved Integer column properties: Integer MaxValue:100 Integer MinValue:0 Integer Format:None
Columna de notas
Cree una columna de notas usando MemoAttributeMetadata EntityType.
Solicitud:
POST [Organization Uri]/api/data/v9.2/EntityDefinitions(LogicalName='sample_bankaccount')/Attributes HTTP/1.1 MSCRM.SolutionUniqueName: examplesolution OData-MaxVersion: 4.0 OData-Version: 4.0 If-None-Match: null Accept: application/json { "@odata.type": "Microsoft.Dynamics.CRM.MemoAttributeMetadata", "AttributeType": "Memo", "AttributeTypeName": { "Value": "MemoType" }, "Format": "TextArea", "ImeMode": "Disabled", "MaxLength": 500, "IsLocalizable": false, "Description": { "@odata.type": "Microsoft.Dynamics.CRM.Label", "LocalizedLabels": [ { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "Memo Attribute", "LanguageCode": 1033, "IsManaged": false } ], "UserLocalizedLabel": { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "Memo Attribute", "LanguageCode": 1033, "IsManaged": false } }, "DisplayName": { "@odata.type": "Microsoft.Dynamics.CRM.Label", "LocalizedLabels": [ { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "Sample Memo", "LanguageCode": 1033, "IsManaged": false } ], "UserLocalizedLabel": { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "Sample Memo", "LanguageCode": 1033, "IsManaged": false } }, "RequiredLevel": { "Value": "None", "CanBeChanged": false, "ManagedPropertyLogicalName": "canmodifyrequirementlevelsettings" }, "SchemaName": "sample_Memo" }
Respuesta:
HTTP/1.1 204 NoContent OData-Version: 4.0 OData-EntityId: [Organization Uri]/api/data/v9.2/EntityDefinitions(LogicalName='sample_bankaccount')/Attributes(f6db3d43-112a-ed11-9db1-00224804f8e2)
Salida de la consola:
Created Memo column with id:f6db3d43-112a-ed11-9db1-00224804f8e2
Recupere los valores seleccionados de la columna de notas.
Solicitud:
GET [Organization Uri]/api/data/v9.2/EntityDefinitions(LogicalName='sample_bankaccount')/Attributes(LogicalName='sample_memo')/Microsoft.Dynamics.CRM.MemoAttributeMetadata?$select=SchemaName,Format,ImeMode,MaxLength HTTP/1.1 Consistency: Strong OData-MaxVersion: 4.0 OData-Version: 4.0 If-None-Match: null Accept: application/json
Respuesta:
HTTP/1.1 200 OK OData-Version: 4.0 { "@odata.context": "[Organization Uri]/api/data/v9.2/$metadata#EntityDefinitions('sample_bankaccount')/Attributes/Microsoft.Dynamics.CRM.MemoAttributeMetadata(SchemaName,Format,ImeMode,MaxLength)/$entity", "SchemaName": "sample_Memo", "Format": "TextArea", "ImeMode": "Disabled", "MaxLength": 500, "MetadataId": "f6db3d43-112a-ed11-9db1-00224804f8e2" }
Salida de la consola:
Retrieved Memo column properties: Memo Format:TextArea Memo ImeMode:Disabled Memo MaxLength:500
Columna de moneda
Crear una columna de moneda mediante MoneyAttributeMetadata EntityType.
Solicitud:
POST [Organization Uri]/api/data/v9.2/EntityDefinitions(LogicalName='sample_bankaccount')/Attributes HTTP/1.1 MSCRM.SolutionUniqueName: examplesolution OData-MaxVersion: 4.0 OData-Version: 4.0 If-None-Match: null Accept: application/json { "@odata.type": "Microsoft.Dynamics.CRM.MoneyAttributeMetadata", "AttributeType": "Money", "AttributeTypeName": { "Value": "MoneyType" }, "ImeMode": "Disabled", "MaxValue": 1000.0, "MinValue": 0.0, "Precision": 1, "PrecisionSource": 1, "SourceTypeMask": 0, "IsBaseCurrency": false, "Description": { "@odata.type": "Microsoft.Dynamics.CRM.Label", "LocalizedLabels": [ { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "Money Attribute", "LanguageCode": 1033, "IsManaged": false } ], "UserLocalizedLabel": { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "Money Attribute", "LanguageCode": 1033, "IsManaged": false } }, "DisplayName": { "@odata.type": "Microsoft.Dynamics.CRM.Label", "LocalizedLabels": [ { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "Sample Money", "LanguageCode": 1033, "IsManaged": false } ], "UserLocalizedLabel": { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "Sample Money", "LanguageCode": 1033, "IsManaged": false } }, "RequiredLevel": { "Value": "None", "CanBeChanged": false, "ManagedPropertyLogicalName": "canmodifyrequirementlevelsettings" }, "SchemaName": "sample_Money" }
Respuesta:
HTTP/1.1 204 NoContent OData-Version: 4.0 OData-EntityId: [Organization Uri]/api/data/v9.2/EntityDefinitions(LogicalName='sample_bankaccount')/Attributes(fddb3d43-112a-ed11-9db1-00224804f8e2)
Salida de la consola:
Created Money column with id:fddb3d43-112a-ed11-9db1-00224804f8e2
Recupere los valores seleccionados de la columna de moneda.
Solicitud:
GET [Organization Uri]/api/data/v9.2/EntityDefinitions(LogicalName='sample_bankaccount')/Attributes(LogicalName='sample_money')/Microsoft.Dynamics.CRM.MoneyAttributeMetadata?$select=SchemaName,MaxValue,MinValue,Precision,PrecisionSource,ImeMode HTTP/1.1 Consistency: Strong OData-MaxVersion: 4.0 OData-Version: 4.0 If-None-Match: null Accept: application/json
Respuesta:
HTTP/1.1 200 OK OData-Version: 4.0 { "@odata.context": "[Organization Uri]/api/data/v9.2/$metadata#EntityDefinitions('sample_bankaccount')/Attributes/Microsoft.Dynamics.CRM.MoneyAttributeMetadata(SchemaName,MaxValue,MinValue,Precision,PrecisionSource,ImeMode)/$entity", "SchemaName": "sample_Money", "MaxValue": 1000.0, "MinValue": 0.0, "Precision": 1, "PrecisionSource": 1, "ImeMode": "Disabled", "MetadataId": "fddb3d43-112a-ed11-9db1-00224804f8e2" }
Salida de la consola:
Retrieved Money column properties: Money MaxValue:1000 Money MinValue:0 Money Precision:1 Money PrecisionSource:1 Money ImeMode:Disabled
Columna de lista de selección
Cree una columna de opciones (lista de selección) usando PicklistAttributeMetadata EntityType con un conjunto de opciones local.
Solicitud:
POST [Organization Uri]/api/data/v9.2/EntityDefinitions(LogicalName='sample_bankaccount')/Attributes HTTP/1.1 MSCRM.SolutionUniqueName: examplesolution OData-MaxVersion: 4.0 OData-Version: 4.0 If-None-Match: null Accept: application/json { "@odata.type": "Microsoft.Dynamics.CRM.PicklistAttributeMetadata", "AttributeType": "Picklist", "AttributeTypeName": { "Value": "PicklistType" }, "SourceTypeMask": 0, "OptionSet": { "@odata.type": "Microsoft.Dynamics.CRM.OptionSetMetadata", "Options": [ { "Value": 727000000, "Label": { "@odata.type": "Microsoft.Dynamics.CRM.Label", "LocalizedLabels": [ { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "Bravo", "LanguageCode": 1033, "IsManaged": false } ], "UserLocalizedLabel": { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "Bravo", "LanguageCode": 1033, "IsManaged": false } } }, { "Value": 727000001, "Label": { "@odata.type": "Microsoft.Dynamics.CRM.Label", "LocalizedLabels": [ { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "Delta", "LanguageCode": 1033, "IsManaged": false } ], "UserLocalizedLabel": { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "Delta", "LanguageCode": 1033, "IsManaged": false } } }, { "Value": 727000002, "Label": { "@odata.type": "Microsoft.Dynamics.CRM.Label", "LocalizedLabels": [ { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "Alpha", "LanguageCode": 1033, "IsManaged": false } ], "UserLocalizedLabel": { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "Alpha", "LanguageCode": 1033, "IsManaged": false } } }, { "Value": 727000003, "Label": { "@odata.type": "Microsoft.Dynamics.CRM.Label", "LocalizedLabels": [ { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "Charlie", "LanguageCode": 1033, "IsManaged": false } ], "UserLocalizedLabel": { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "Charlie", "LanguageCode": 1033, "IsManaged": false } } }, { "Value": 727000004, "Label": { "@odata.type": "Microsoft.Dynamics.CRM.Label", "LocalizedLabels": [ { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "Foxtrot", "LanguageCode": 1033, "IsManaged": false } ], "UserLocalizedLabel": { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "Foxtrot", "LanguageCode": 1033, "IsManaged": false } } } ], "IsGlobal": false, "OptionSetType": "Picklist" }, "Description": { "@odata.type": "Microsoft.Dynamics.CRM.Label", "LocalizedLabels": [ { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "Choice Attribute", "LanguageCode": 1033, "IsManaged": false } ], "UserLocalizedLabel": { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "Choice Attribute", "LanguageCode": 1033, "IsManaged": false } }, "DisplayName": { "@odata.type": "Microsoft.Dynamics.CRM.Label", "LocalizedLabels": [ { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "Sample Choice", "LanguageCode": 1033, "IsManaged": false } ], "UserLocalizedLabel": { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "Sample Choice", "LanguageCode": 1033, "IsManaged": false } }, "RequiredLevel": { "Value": "None", "CanBeChanged": false, "ManagedPropertyLogicalName": "canmodifyrequirementlevelsettings" }, "SchemaName": "sample_Choice" }
Respuesta:
HTTP/1.1 204 NoContent OData-Version: 4.0 OData-EntityId: [Organization Uri]/api/data/v9.2/EntityDefinitions(LogicalName='sample_bankaccount')/Attributes(4a154e49-112a-ed11-9db1-00224804f8e2)
Salida de la consola:
Created Choice column with id:4a154e49-112a-ed11-9db1-00224804f8e2
Recuperar opciones de la columna de elección usando
$select=SchemaName&$expand=OptionSet
.Solicitud:
GET [Organization Uri]/api/data/v9.2/EntityDefinitions(LogicalName='sample_bankaccount')/Attributes(LogicalName='sample_choice')/Microsoft.Dynamics.CRM.PicklistAttributeMetadata?$select=SchemaName&$expand=OptionSet HTTP/1.1 Consistency: Strong OData-MaxVersion: 4.0 OData-Version: 4.0 If-None-Match: null Accept: application/json
Respuesta:
HTTP/1.1 200 OK OData-Version: 4.0 { "@odata.context": "[Organization Uri]/api/data/v9.2/$metadata#EntityDefinitions('sample_bankaccount')/Attributes/Microsoft.Dynamics.CRM.PicklistAttributeMetadata(SchemaName,OptionSet())/$entity", "SchemaName": "sample_Choice", "MetadataId": "4a154e49-112a-ed11-9db1-00224804f8e2", "OptionSet": { "MetadataId": "4b154e49-112a-ed11-9db1-00224804f8e2", "HasChanged": null, "IsCustomOptionSet": true, "IsGlobal": false, "IsManaged": false, "Name": "sample_bankaccount_sample_choice", "ExternalTypeName": null, "OptionSetType": "Picklist", "IntroducedVersion": "1.0.0.0", "ParentOptionSetName": null, "Description": { "LocalizedLabels": [ { "Label": "Choice Attribute", "LanguageCode": 1033, "IsManaged": false, "MetadataId": "4d154e49-112a-ed11-9db1-00224804f8e2", "HasChanged": null } ], "UserLocalizedLabel": { "Label": "Choice Attribute", "LanguageCode": 1033, "IsManaged": false, "MetadataId": "4d154e49-112a-ed11-9db1-00224804f8e2", "HasChanged": null } }, "DisplayName": { "LocalizedLabels": [ { "Label": "Sample Choice", "LanguageCode": 1033, "IsManaged": false, "MetadataId": "4c154e49-112a-ed11-9db1-00224804f8e2", "HasChanged": null } ], "UserLocalizedLabel": { "Label": "Sample Choice", "LanguageCode": 1033, "IsManaged": false, "MetadataId": "4c154e49-112a-ed11-9db1-00224804f8e2", "HasChanged": null } }, "IsCustomizable": { "Value": true, "CanBeChanged": true, "ManagedPropertyLogicalName": "iscustomizable" }, "Options": [ { "Value": 727000000, "Color": null, "IsManaged": false, "ExternalValue": "", "ParentValues": [], "MetadataId": null, "HasChanged": null, "Label": { "LocalizedLabels": [ { "Label": "Bravo", "LanguageCode": 1033, "IsManaged": false, "MetadataId": "bc8d1815-75b7-4c13-b618-7959aaf4abb6", "HasChanged": null } ], "UserLocalizedLabel": { "Label": "Bravo", "LanguageCode": 1033, "IsManaged": false, "MetadataId": "bc8d1815-75b7-4c13-b618-7959aaf4abb6", "HasChanged": null } }, "Description": { "LocalizedLabels": [], "UserLocalizedLabel": null } }, { "Value": 727000001, "Color": null, "IsManaged": false, "ExternalValue": "", "ParentValues": [], "MetadataId": null, "HasChanged": null, "Label": { "LocalizedLabels": [ { "Label": "Delta", "LanguageCode": 1033, "IsManaged": false, "MetadataId": "c3613791-85a0-41ac-8575-91aca4bb91e8", "HasChanged": null } ], "UserLocalizedLabel": { "Label": "Delta", "LanguageCode": 1033, "IsManaged": false, "MetadataId": "c3613791-85a0-41ac-8575-91aca4bb91e8", "HasChanged": null } }, "Description": { "LocalizedLabels": [], "UserLocalizedLabel": null } }, { "Value": 727000002, "Color": null, "IsManaged": false, "ExternalValue": "", "ParentValues": [], "MetadataId": null, "HasChanged": null, "Label": { "LocalizedLabels": [ { "Label": "Alpha", "LanguageCode": 1033, "IsManaged": false, "MetadataId": "8db04562-9ec3-4014-a170-0482bbb94e44", "HasChanged": null } ], "UserLocalizedLabel": { "Label": "Alpha", "LanguageCode": 1033, "IsManaged": false, "MetadataId": "8db04562-9ec3-4014-a170-0482bbb94e44", "HasChanged": null } }, "Description": { "LocalizedLabels": [], "UserLocalizedLabel": null } }, { "Value": 727000003, "Color": null, "IsManaged": false, "ExternalValue": "", "ParentValues": [], "MetadataId": null, "HasChanged": null, "Label": { "LocalizedLabels": [ { "Label": "Charlie", "LanguageCode": 1033, "IsManaged": false, "MetadataId": "d00dc11e-ed91-478b-ac78-86b6784326ad", "HasChanged": null } ], "UserLocalizedLabel": { "Label": "Charlie", "LanguageCode": 1033, "IsManaged": false, "MetadataId": "d00dc11e-ed91-478b-ac78-86b6784326ad", "HasChanged": null } }, "Description": { "LocalizedLabels": [], "UserLocalizedLabel": null } }, { "Value": 727000004, "Color": null, "IsManaged": false, "ExternalValue": "", "ParentValues": [], "MetadataId": null, "HasChanged": null, "Label": { "LocalizedLabels": [ { "Label": "Foxtrot", "LanguageCode": 1033, "IsManaged": false, "MetadataId": "36a565b7-cd21-4505-812b-5567c28eec23", "HasChanged": null } ], "UserLocalizedLabel": { "Label": "Foxtrot", "LanguageCode": 1033, "IsManaged": false, "MetadataId": "36a565b7-cd21-4505-812b-5567c28eec23", "HasChanged": null } }, "Description": { "LocalizedLabels": [], "UserLocalizedLabel": null } } ] } }
Salida de la consola:
Retrieved Choice column options: Value:727000000 Label:Bravo Value:727000001 Label:Delta Value:727000002 Label:Alpha Value:727000003 Label:Charlie Value:727000004 Label:Foxtrot
Agregar una opción al conjunto de opciones local
Agregue una opción a la columna de elección usando InsertOptionValue Action.
Nota
InsertOptionValue
y las siguientes acciones para trabajar con opciones tiene un parámetroSolutionUniqueName
para que establezca el nombre único de la solución en lugar de usar el encabezado de solicitudMSCRM.SolutionUniqueName
.Solicitud:
POST [Organization Uri]/api/data/v9.2/InsertOptionValue HTTP/1.1 OData-MaxVersion: 4.0 OData-Version: 4.0 If-None-Match: null Accept: application/json { "AttributeLogicalName": "sample_choice", "EntityLogicalName": "sample_bankaccount", "Value": 727000005, "Label": { "@odata.type": "Microsoft.Dynamics.CRM.Label", "LocalizedLabels": [ { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "Echo", "LanguageCode": 1033, "IsManaged": false } ], "UserLocalizedLabel": { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "Echo", "LanguageCode": 1033, "IsManaged": false } }, "SolutionUniqueName": "examplesolution" }
Respuesta:
HTTP/1.1 200 OK OData-Version: 4.0 { "@odata.context": "[Organization Uri]/api/data/v9.2/$metadata#Microsoft.Dynamics.CRM.InsertOptionValueResponse", "NewOptionValue": 727000005 }
Salida de la consola:
Added new option with label 'Echo'
Recupere las opciones de la columna de elección nuevamente usando la misma consulta que antes:
Salida de la consola:
The option values for the picklist: Value: 727000000, Label:Bravo Value: 727000001, Label:Delta Value: 727000002, Label:Alpha Value: 727000003, Label:Charlie Value: 727000004, Label:Foxtrot Value: 727000005, Label:Echo
Opciones para reordenar la columna de opciones
Reordene las opciones de la columna de opciones mediante OrderOption Action.
Solicitud:
POST [Organization Uri]/api/data/v9.2/OrderOption HTTP/1.1 OData-MaxVersion: 4.0 OData-Version: 4.0 If-None-Match: null Accept: application/json { "EntityLogicalName": "sample_bankaccount", "AttributeLogicalName": "sample_choice", "Values": [ 727000002, 727000000, 727000003, 727000001, 727000005, 727000004 ], "SolutionUniqueName": "examplesolution" }
Respuesta:
HTTP/1.1 204 NoContent OData-Version: 4.0
Salida de la consola:
Options re-ordered.
Recupere las opciones de la columna Elección nuevamente usando la misma consulta que antes para ver las opciones en el nuevo orden.
Salida de la consola:
The option values for the picklist in the new order: Value: 727000002, Label:Alpha Value: 727000000, Label:Bravo Value: 727000003, Label:Charlie Value: 727000001, Label:Delta Value: 727000005, Label:Echo Value: 727000004, Label:Foxtrot
Eliminar valor de opción local
Elimine una opción mediante DeleteOptionValue Action.
Solicitud:
POST [Organization Uri]/api/data/v9.2/DeleteOptionValue HTTP/1.1 OData-MaxVersion: 4.0 OData-Version: 4.0 If-None-Match: null Accept: application/json { "AttributeLogicalName": "sample_choice", "EntityLogicalName": "sample_bankaccount", "Value": 727000004 }
Respuesta:
HTTP/1.1 204 NoContent OData-Version: 4.0
Salida de la consola:
Deleting a local option value... Local OptionSet option value deleted.
Columna de lista de selección múltiple
Cree una columna de opciones de selección múltiple usando MultiSelectPicklistAttributeMetadata EntityType.
Solicitud:
POST [Organization Uri]/api/data/v9.2/EntityDefinitions(LogicalName='sample_bankaccount')/Attributes HTTP/1.1 MSCRM.SolutionUniqueName: examplesolution OData-MaxVersion: 4.0 OData-Version: 4.0 If-None-Match: null Accept: application/json { "@odata.type": "Microsoft.Dynamics.CRM.MultiSelectPicklistAttributeMetadata", "AttributeType": "Virtual", "AttributeTypeName": { "Value": "MultiSelectPicklistType" }, "SourceTypeMask": 0, "OptionSet": { "@odata.type": "Microsoft.Dynamics.CRM.OptionSetMetadata", "Options": [ { "Value": 727000000, "Label": { "@odata.type": "Microsoft.Dynamics.CRM.Label", "LocalizedLabels": [ { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "Appetizer", "LanguageCode": 1033, "IsManaged": false } ], "UserLocalizedLabel": { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "Appetizer", "LanguageCode": 1033, "IsManaged": false } } }, { "Value": 727000001, "Label": { "@odata.type": "Microsoft.Dynamics.CRM.Label", "LocalizedLabels": [ { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "Entree", "LanguageCode": 1033, "IsManaged": false } ], "UserLocalizedLabel": { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "Entree", "LanguageCode": 1033, "IsManaged": false } } }, { "Value": 727000002, "Label": { "@odata.type": "Microsoft.Dynamics.CRM.Label", "LocalizedLabels": [ { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "Dessert", "LanguageCode": 1033, "IsManaged": false } ], "UserLocalizedLabel": { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "Dessert", "LanguageCode": 1033, "IsManaged": false } } } ], "IsGlobal": false, "OptionSetType": "Picklist" }, "Description": { "@odata.type": "Microsoft.Dynamics.CRM.Label", "LocalizedLabels": [ { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "MultiSelect Choice Attribute", "LanguageCode": 1033, "IsManaged": false } ], "UserLocalizedLabel": { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "MultiSelect Choice Attribute", "LanguageCode": 1033, "IsManaged": false } }, "DisplayName": { "@odata.type": "Microsoft.Dynamics.CRM.Label", "LocalizedLabels": [ { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "Sample MultiSelect Choice", "LanguageCode": 1033, "IsManaged": false } ], "UserLocalizedLabel": { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "Sample MultiSelect Choice", "LanguageCode": 1033, "IsManaged": false } }, "RequiredLevel": { "Value": "None", "CanBeChanged": false, "ManagedPropertyLogicalName": "canmodifyrequirementlevelsettings" }, "SchemaName": "sample_MultiSelectChoice" }
Respuesta:
HTTP/1.1 204 NoContent OData-Version: 4.0 OData-EntityId: [Organization Uri]/api/data/v9.2/EntityDefinitions(LogicalName='sample_bankaccount')/Attributes(2c1c3050-112a-ed11-9db1-00224804f8e2)
Salida de la consola:
Creating a MultiSelect Choice column... Created MultiSelect Choice column with id:2c1c3050-112a-ed11-9db1-00224804f8e2
Recupere las opciones de la columna de selección múltiple usando
GET EntityDefinitions(LogicalName='sample_bankaccount')/Attributes(LogicalName='sample_multiselectchoice')/Microsoft.Dynamics.CRM.MultiSelectPicklistAttributeMetadata?$select=SchemaName&$expand=OptionSet
Salida de la consola:
The option values for the multi-select choice column: Value: 727000000, Label:Appetizer Value: 727000001, Label:Entree Value: 727000002, Label:Dessert
Insertar valor de estado
Use InsertStatusValue Action para agregar una nueva opción a una columna statuscode
. Debe especificar para qué StateCode
es válido.
Nota
Observe que el valor devuelto se aplica al valor del editor customizationoptionvalueprefix
(72700) automáticamente.
Solicitud:
POST [Organization Uri]/api/data/v9.2/InsertStatusValue HTTP/1.1
OData-MaxVersion: 4.0
OData-Version: 4.0
If-None-Match: null
Accept: application/json
{
"AttributeLogicalName": "statuscode",
"EntityLogicalName": "sample_bankaccount",
"Label": {
"@odata.type": "Microsoft.Dynamics.CRM.Label",
"LocalizedLabels": [
{
"@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
"Label": "Frozen",
"LanguageCode": 1033,
"IsManaged": false
}
],
"UserLocalizedLabel": {
"@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
"Label": "Frozen",
"LanguageCode": 1033,
"IsManaged": false
}
},
"StateCode": 1,
"SolutionUniqueName": "examplesolution"
}
Respuesta:
HTTP/1.1 200 OK
OData-Version: 4.0
{
"@odata.context": "[Organization Uri]/api/data/v9.2/$metadata#Microsoft.Dynamics.CRM.InsertStatusValueResponse",
"NewOptionValue": 727000000
}
Salida de la consola:
Created new Status value:727000000
Sección 3: Crear y usar OptionSet global
Cree una opción global (conjunto de opciones). Este conjunto de opciones se llama
sample_colors
y contiene opciones para rojo, amarillo y verde.Nota
La solicitud especifica los valores de opción utilizando el editor
customizationoptionvalueprefix
.Solicitud:
POST [Organization Uri]/api/data/v9.2/GlobalOptionSetDefinitions HTTP/1.1 MSCRM.SolutionUniqueName: examplesolution OData-MaxVersion: 4.0 OData-Version: 4.0 If-None-Match: null Accept: application/json { "@odata.type": "Microsoft.Dynamics.CRM.OptionSetMetadata", "Options": [ { "Value": 727000000, "Label": { "@odata.type": "Microsoft.Dynamics.CRM.Label", "LocalizedLabels": [ { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "Red", "LanguageCode": 1033, "IsManaged": false } ], "UserLocalizedLabel": { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "Red", "LanguageCode": 1033, "IsManaged": false } } }, { "Value": 727000001, "Label": { "@odata.type": "Microsoft.Dynamics.CRM.Label", "LocalizedLabels": [ { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "Yellow", "LanguageCode": 1033, "IsManaged": false } ], "UserLocalizedLabel": { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "Yellow", "LanguageCode": 1033, "IsManaged": false } } }, { "Value": 727000002, "Label": { "@odata.type": "Microsoft.Dynamics.CRM.Label", "LocalizedLabels": [ { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "Green", "LanguageCode": 1033, "IsManaged": false } ], "UserLocalizedLabel": { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "Green", "LanguageCode": 1033, "IsManaged": false } } } ], "Description": { "@odata.type": "Microsoft.Dynamics.CRM.Label", "LocalizedLabels": [ { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "Color Choice", "LanguageCode": 1033, "IsManaged": false } ], "UserLocalizedLabel": { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "Color Choice", "LanguageCode": 1033, "IsManaged": false } }, "DisplayName": { "@odata.type": "Microsoft.Dynamics.CRM.Label", "LocalizedLabels": [ { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "Colors", "LanguageCode": 1033, "IsManaged": false } ], "UserLocalizedLabel": { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "Colors", "LanguageCode": 1033, "IsManaged": false } }, "Name": "sample_colors", "OptionSetType": "Picklist" }
Respuesta:
HTTP/1.1 204 NoContent OData-Version: 4.0 OData-EntityId: [Organization Uri]/api/data/v9.2/GlobalOptionSetDefinitions(7cfd8c56-112a-ed11-9db1-00224804f8e2)
Salida de la consola:
Created a new global option set with id:7cfd8c56-112a-ed11-9db1-00224804f8e2
Recupere las opciones de elección global.
Solicitud:
GET [Organization Uri]/api/data/v9.2/GlobalOptionSetDefinitions(7cfd8c56-112a-ed11-9db1-00224804f8e2)/Microsoft.Dynamics.CRM.OptionSetMetadata HTTP/1.1 Consistency: Strong OData-MaxVersion: 4.0 OData-Version: 4.0 If-None-Match: null Accept: application/json
Respuesta:
HTTP/1.1 200 OK OData-Version: 4.0 { "@odata.context": "[Organization Uri]/api/data/v9.2/$metadata#GlobalOptionSetDefinitions/Microsoft.Dynamics.CRM.OptionSetMetadata/$entity", "ParentOptionSetName": null, "IsCustomOptionSet": true, "IsGlobal": true, "IsManaged": false, "Name": "sample_colors", "ExternalTypeName": null, "OptionSetType": "Picklist", "IntroducedVersion": "1.0.0.0", "MetadataId": "7cfd8c56-112a-ed11-9db1-00224804f8e2", "HasChanged": null, "Options": [ { "Value": 727000000, "Color": null, "IsManaged": false, "ExternalValue": "", "ParentValues": [], "MetadataId": null, "HasChanged": null, "Label": { "LocalizedLabels": [ { "Label": "Red", "LanguageCode": 1033, "IsManaged": false, "MetadataId": "2c1fa94f-3714-4615-995b-690158d0d989", "HasChanged": null } ], "UserLocalizedLabel": { "Label": "Red", "LanguageCode": 1033, "IsManaged": false, "MetadataId": "2c1fa94f-3714-4615-995b-690158d0d989", "HasChanged": null } }, "Description": { "LocalizedLabels": [], "UserLocalizedLabel": null } }, { "Value": 727000001, "Color": null, "IsManaged": false, "ExternalValue": "", "ParentValues": [], "MetadataId": null, "HasChanged": null, "Label": { "LocalizedLabels": [ { "Label": "Yellow", "LanguageCode": 1033, "IsManaged": false, "MetadataId": "a499c2fe-c13a-4c1e-b190-db8ae74396f5", "HasChanged": null } ], "UserLocalizedLabel": { "Label": "Yellow", "LanguageCode": 1033, "IsManaged": false, "MetadataId": "a499c2fe-c13a-4c1e-b190-db8ae74396f5", "HasChanged": null } }, "Description": { "LocalizedLabels": [], "UserLocalizedLabel": null } }, { "Value": 727000002, "Color": null, "IsManaged": false, "ExternalValue": "", "ParentValues": [], "MetadataId": null, "HasChanged": null, "Label": { "LocalizedLabels": [ { "Label": "Green", "LanguageCode": 1033, "IsManaged": false, "MetadataId": "8378af2c-4b68-4ea4-ad37-e676f696e1ba", "HasChanged": null } ], "UserLocalizedLabel": { "Label": "Green", "LanguageCode": 1033, "IsManaged": false, "MetadataId": "8378af2c-4b68-4ea4-ad37-e676f696e1ba", "HasChanged": null } }, "Description": { "LocalizedLabels": [], "UserLocalizedLabel": null } } ], "Description": { "LocalizedLabels": [ { "Label": "Color Choice", "LanguageCode": 1033, "IsManaged": false, "MetadataId": "7efd8c56-112a-ed11-9db1-00224804f8e2", "HasChanged": null } ], "UserLocalizedLabel": { "Label": "Color Choice", "LanguageCode": 1033, "IsManaged": false, "MetadataId": "7efd8c56-112a-ed11-9db1-00224804f8e2", "HasChanged": null } }, "DisplayName": { "LocalizedLabels": [ { "Label": "Colors", "LanguageCode": 1033, "IsManaged": false, "MetadataId": "7dfd8c56-112a-ed11-9db1-00224804f8e2", "HasChanged": null } ], "UserLocalizedLabel": { "Label": "Colors", "LanguageCode": 1033, "IsManaged": false, "MetadataId": "7dfd8c56-112a-ed11-9db1-00224804f8e2", "HasChanged": null } }, "IsCustomizable": { "Value": true, "CanBeChanged": true, "ManagedPropertyLogicalName": "iscustomizable" } }
Salida de la consola:
List the retrieved options for the colors global option set: Value: 727000000 Label:Red Value: 727000001 Label:Yellow Value: 727000002 Label:Green
Cree una columna de opciones que el conjunto de opciones global. Asocie la definición de columna al conjunto de opciones global usando:
"GlobalOptionSet@odata.bind": "/GlobalOptionSetDefinitions(7cfd8c56-112a-ed11-9db1-00224804f8e2)"
.Solicitud:
POST [Organization Uri]/api/data/v9.2/EntityDefinitions(LogicalName='sample_bankaccount')/Attributes HTTP/1.1 MSCRM.SolutionUniqueName: examplesolution OData-MaxVersion: 4.0 OData-Version: 4.0 If-None-Match: null Accept: application/json { "@odata.type": "Microsoft.Dynamics.CRM.PicklistAttributeMetadata", "AttributeType": "Picklist", "AttributeTypeName": { "Value": "PicklistType" }, "SourceTypeMask": 0, "GlobalOptionSet@odata.bind": "/GlobalOptionSetDefinitions(7cfd8c56-112a-ed11-9db1-00224804f8e2)", "Description": { "@odata.type": "Microsoft.Dynamics.CRM.Label", "LocalizedLabels": [ { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "Colors Global Picklist Attribute", "LanguageCode": 1033, "IsManaged": false } ], "UserLocalizedLabel": { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "Colors Global Picklist Attribute", "LanguageCode": 1033, "IsManaged": false } }, "DisplayName": { "@odata.type": "Microsoft.Dynamics.CRM.Label", "LocalizedLabels": [ { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "Sample Colors", "LanguageCode": 1033, "IsManaged": false } ], "UserLocalizedLabel": { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "Sample Colors", "LanguageCode": 1033, "IsManaged": false } }, "RequiredLevel": { "Value": "None", "CanBeChanged": false, "ManagedPropertyLogicalName": "canmodifyrequirementlevelsettings" }, "SchemaName": "sample_Colors" }
Respuesta:
HTTP/1.1 204 NoContent OData-Version: 4.0 OData-EntityId: [Organization Uri]/api/data/v9.2/EntityDefinitions(LogicalName='sample_bankaccount')/Attributes(81fd8c56-112a-ed11-9db1-00224804f8e2)
Salida de la consola:
Created Choice column with id:81fd8c56-112a-ed11-9db1-00224804f8e2 using colors global optionset.
Sección 4: Crear relación con el cliente
Use CreateCustomerRelationships Action para crear una relación con el cliente. Esta acción agrega una columna de búsqueda para la tabla
sample_BankAccount
que permite establecer un registroaccount
ocontact
.CreateCustomerRelationships
tiene un parámetroLookup
ComplexLookupAttributeMetadata ComplexType y un parámetroOneToManyRelationships
que contienen un par de relaciones definidas mediante ComplexOneToManyRelationshipMetadata ComplexType.Solicitud:
POST [Organization Uri]/api/data/v9.2/CreateCustomerRelationships HTTP/1.1 OData-MaxVersion: 4.0 OData-Version: 4.0 If-None-Match: null Accept: application/json { "Lookup": { "@odata.type": "Microsoft.Dynamics.CRM.ComplexLookupAttributeMetadata", "AttributeType": "Lookup", "AttributeTypeName": { "Value": "LookupType" }, "Format": "None", "Targets": [ "account", "contact" ], "ColumnNumber": 0, "Description": { "@odata.type": "Microsoft.Dynamics.CRM.Label", "LocalizedLabels": [ { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "The owner of the bank account", "LanguageCode": 1033, "IsManaged": false } ], "UserLocalizedLabel": { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "The owner of the bank account", "LanguageCode": 1033, "IsManaged": false } }, "DisplayName": { "@odata.type": "Microsoft.Dynamics.CRM.Label", "LocalizedLabels": [ { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "Bank Account owner", "LanguageCode": 1033, "IsManaged": false } ], "UserLocalizedLabel": { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "Bank Account owner", "LanguageCode": 1033, "IsManaged": false } }, "RequiredLevel": { "Value": "ApplicationRequired", "CanBeChanged": false, "ManagedPropertyLogicalName": "canmodifyrequirementlevelsettings" }, "SchemaName": "sample_CustomerId", "SourceType": 0 }, "OneToManyRelationships": [ { "@odata.type": "Microsoft.Dynamics.CRM.ComplexOneToManyRelationshipMetadata", "ReferencedEntity": "account", "ReferencingEntity": "sample_bankaccount", "RelationshipBehavior": 0, "RelationshipType": "OneToManyRelationship", "SchemaName": "sample_BankAccount_Customer_Account", "SecurityTypes": "None" }, { "@odata.type": "Microsoft.Dynamics.CRM.ComplexOneToManyRelationshipMetadata", "ReferencedEntity": "contact", "ReferencingEntity": "sample_bankaccount", "RelationshipBehavior": 0, "RelationshipType": "OneToManyRelationship", "SchemaName": "sample_BankAccount_Customer_Contact", "SecurityTypes": "None" } ], "SolutionUniqueName": "examplesolution" }
Respuesta:
HTTP/1.1 200 OK OData-Version: 4.0 { "@odata.context": "[Organization Uri]/api/data/v9.2/$metadata#Microsoft.Dynamics.CRM.CreateCustomerRelationshipsResponse", "RelationshipIds": [ "84fd8c56-112a-ed11-9db1-00224804f8e2", "8dfd8c56-112a-ed11-9db1-00224804f8e2" ], "AttributeId": "59478264-16af-4bcc-8baa-b154df0d6767" }
Use el CreateCustomerRelationshipsResponse.
AttributeId
Valor para recuperar la propiedadTargets
de la columna de búsqueda para la relación con el cliente.Solicitud:
GET [Organization Uri]/api/data/v9.2/EntityDefinitions(LogicalName='sample_bankaccount')/Attributes(LogicalName='sample_customerid')/Microsoft.Dynamics.CRM.LookupAttributeMetadata?$select=Targets HTTP/1.1 Consistency: Strong OData-MaxVersion: 4.0 OData-Version: 4.0 If-None-Match: null Accept: application/json
Respuesta:
HTTP/1.1 200 OK OData-Version: 4.0 { "@odata.context": "[Organization Uri]/api/data/v9.2/$metadata#EntityDefinitions('sample_bankaccount')/Attributes/Microsoft.Dynamics.CRM.LookupAttributeMetadata(Targets)/$entity", "Targets": [ "account", "contact" ], "MetadataId": "59478264-16af-4bcc-8baa-b154df0d6767" }
Salida de la consola:
The Target values of the Lookup column created: account contact
Use el CreateCustomerRelationshipsResponse.
RelationshipIds
valores para recuperar las relaciones para la columna del cliente.Primero para la relación con
account
:Solicitud:
GET [Organization Uri]/api/data/v9.2/RelationshipDefinitions(84fd8c56-112a-ed11-9db1-00224804f8e2)/Microsoft.Dynamics.CRM.OneToManyRelationshipMetadata HTTP/1.1 Consistency: Strong OData-MaxVersion: 4.0 OData-Version: 4.0 If-None-Match: null Accept: application/json
Respuesta:
HTTP/1.1 200 OK OData-Version: 4.0 { "@odata.context": "[Organization Uri]/api/data/v9.2/$metadata#RelationshipDefinitions/Microsoft.Dynamics.CRM.OneToManyRelationshipMetadata/$entity", "ReferencedAttribute": "accountid", "ReferencedEntity": "account", "ReferencingAttribute": "sample_customerid", "ReferencingEntity": "sample_bankaccount", "IsHierarchical": false, "EntityKey": null, "IsRelationshipAttributeDenormalized": false, "ReferencedEntityNavigationPropertyName": "sample_BankAccount_Customer_Account", "ReferencingEntityNavigationPropertyName": "sample_CustomerId_account", "RelationshipBehavior": 1, "IsDenormalizedLookup": null, "DenormalizedAttributeName": null, "IsCustomRelationship": true, "IsValidForAdvancedFind": true, "SchemaName": "sample_BankAccount_Customer_Account", "SecurityTypes": "Append", "IsManaged": false, "RelationshipType": "OneToManyRelationship", "IntroducedVersion": "1.0.0.0", "MetadataId": "84fd8c56-112a-ed11-9db1-00224804f8e2", "HasChanged": null, "AssociatedMenuConfiguration": { "Behavior": "UseCollectionName", "Group": "Details", "Order": 10000, "IsCustomizable": true, "Icon": null, "ViewId": "00000000-0000-0000-0000-000000000000", "AvailableOffline": true, "MenuId": null, "QueryApi": null, "Label": { "LocalizedLabels": [], "UserLocalizedLabel": null } }, "CascadeConfiguration": { "Assign": "NoCascade", "Delete": "RemoveLink", "Archive": "RemoveLink", "Merge": "Cascade", "Reparent": "NoCascade", "Share": "NoCascade", "Unshare": "NoCascade", "RollupView": "NoCascade" }, "RelationshipAttributes": [], "IsCustomizable": { "Value": true, "CanBeChanged": true, "ManagedPropertyLogicalName": "iscustomizable" } }
Luego para la relación con
contact
:Solicitud:
GET [Organization Uri]/api/data/v9.2/RelationshipDefinitions(8dfd8c56-112a-ed11-9db1-00224804f8e2)/Microsoft.Dynamics.CRM.OneToManyRelationshipMetadata HTTP/1.1 Consistency: Strong OData-MaxVersion: 4.0 OData-Version: 4.0 If-None-Match: null Accept: application/json
Respuesta:
HTTP/1.1 200 OK OData-Version: 4.0 { "@odata.context": "[Organization Uri]/api/data/v9.2/$metadata#RelationshipDefinitions/Microsoft.Dynamics.CRM.OneToManyRelationshipMetadata/$entity", "ReferencedAttribute": "contactid", "ReferencedEntity": "contact", "ReferencingAttribute": "sample_customerid", "ReferencingEntity": "sample_bankaccount", "IsHierarchical": false, "EntityKey": null, "IsRelationshipAttributeDenormalized": false, "ReferencedEntityNavigationPropertyName": "sample_BankAccount_Customer_Contact", "ReferencingEntityNavigationPropertyName": "sample_CustomerId_contact", "RelationshipBehavior": 1, "IsDenormalizedLookup": null, "DenormalizedAttributeName": null, "IsCustomRelationship": true, "IsValidForAdvancedFind": true, "SchemaName": "sample_BankAccount_Customer_Contact", "SecurityTypes": "Append", "IsManaged": false, "RelationshipType": "OneToManyRelationship", "IntroducedVersion": "1.0.0.0", "MetadataId": "8dfd8c56-112a-ed11-9db1-00224804f8e2", "HasChanged": null, "AssociatedMenuConfiguration": { "Behavior": "UseCollectionName", "Group": "Details", "Order": 10000, "IsCustomizable": true, "Icon": null, "ViewId": "00000000-0000-0000-0000-000000000000", "AvailableOffline": true, "MenuId": null, "QueryApi": null, "Label": { "LocalizedLabels": [], "UserLocalizedLabel": null } }, "CascadeConfiguration": { "Assign": "NoCascade", "Delete": "RemoveLink", "Archive": "RemoveLink", "Merge": "Cascade", "Reparent": "NoCascade", "Share": "NoCascade", "Unshare": "NoCascade", "RollupView": "NoCascade" }, "RelationshipAttributes": [], "IsCustomizable": { "Value": true, "CanBeChanged": true, "ManagedPropertyLogicalName": "iscustomizable" } }
Salida de la consola:
The Schema Names of the relationships created: sample_BankAccount_Customer_Account sample_BankAccount_Customer_Contact
Sección 5: Crear y recuperar una relación de uno a muchos
Antes de crear una relación mediante código, debe confirmar que la relación es válida. Los diseñadores de Power Apps usan funciones especiales para mostrarle qué combinaciones son válidas. Puede usar las mismas funciones en su código para detectar si una relación en particular se puede crear o no.
Validar la idoneidad de la relación de 1:N
CanBeReferenced Function le indica si una tabla puede ser la tabla principal (uno) en una relación de uno a varios.
Solicitud:
POST [Organization Uri]/api/data/v9.2/CanBeReferenced HTTP/1.1 OData-MaxVersion: 4.0 OData-Version: 4.0 If-None-Match: null Accept: application/json { "EntityName": "sample_bankaccount" }
Respuesta:
HTTP/1.1 200 OK OData-Version: 4.0 { "@odata.context": "[Organization Uri]/api/data/v9.2/$metadata#Microsoft.Dynamics.CRM.CanBeReferencedResponse", "CanBeReferenced": true }
Salida de la consola:
The sample_BankAccount table is eligible to be a primary table in a one-to-many relationship.
CanBeReferencing Function indica si la tabla especificada puede ser la tabla de referencia en una relación de uno a varios. La tabla de referencia es la tabla a la que se le ha agregado una columna de búsqueda para que sea "varios" en la relación de uno a varios.
Solicitud:
POST [Organization Uri]/api/data/v9.2/CanBeReferencing HTTP/1.1 OData-MaxVersion: 4.0 OData-Version: 4.0 If-None-Match: null Accept: application/json { "EntityName": "contact" }
Respuesta:
HTTP/1.1 200 OK OData-Version: 4.0 { "@odata.context": "[Organization Uri]/api/data/v9.2/$metadata#Microsoft.Dynamics.CRM.CanBeReferencingResponse", "CanBeReferencing": true }
Salida de la consola:
The contact table is eligible to be a related table in a one-to-many relationship.
Identificar entidades de referencia potenciales
En el contexto de una tabla específica que puede ser la tabla parmary en una relación de uno a muchos, use GetValidReferencingEntities Function para identificar qué otras tablas pueden ser las relacionadas con él.
Solicitud:
GET [Organization Uri]/api/data/v9.2/GetValidReferencingEntities(ReferencedEntityName='sample_bankaccount') HTTP/1.1
OData-MaxVersion: 4.0
OData-Version: 4.0
If-None-Match: null
Accept: application/json
Respuesta:
HTTP/1.1 200 OK
OData-Version: 4.0
{
"@odata.context": "[Organization Uri]/api/data/v9.2/$metadata#Microsoft.Dynamics.CRM.GetValidReferencingEntitiesResponse",
"EntityNames": [
"msdyn_slakpi",
"workflowbinary",
"apisettings",
"flowsession",
"knowledgearticle",
"socialprofile",
"goal",
"metric",
"goalrollupquery",
"mailbox",
"position",
"channelaccessprofile",
"externalparty",
"channelaccessprofilerule",
"channelaccessprofileruleitem",
"sample_bankaccount",
"privilegesremovalsetting",
"knowledgebaserecord",
"msdyn_insightsstorevirtualentity",
"aaduser",
"sharepointdocument",
"msfp_unsubscribedrecipient",
"msdyn_dataflow",
"flowmachineimage",
"queueitem",
"appointment",
"msdyn_federatedarticleincident",
"msfp_surveyresponse",
"msdyn_dataflowrefreshhistory",
"mailmergetemplate",
"contact",
"organizationdatasyncstate",
"bot",
"knowledgearticleviews",
"slaitem",
"msfp_question",
"category",
"connection",
"newprocess",
"msfp_survey",
"emailserverprofile",
"appnotification",
"feedback",
"activityfileattachment",
"organizationdatasyncsubscriptionentity",
"msdyn_nonrelationalds",
"expiredprocess",
"msfp_surveyinvite",
"msfp_alert",
"businessunit",
"msfp_alertrule",
"slakpiinstance",
"email",
"datasyncstate",
"msdyn_entityrefreshhistory",
"msdyn_componentlayerdatasource",
"account",
"kbarticle",
"systemuser",
"task",
"letter",
"reportcategory",
"phonecall",
"actioncard",
"msdyn_kmfederatedsearchconfig",
"featurecontrolsetting",
"translationprocess",
"recurringappointmentmaster",
"externalpartyitem",
"msdyn_aibdatasetfile",
"socialactivity",
"flowmachineimageversion",
"fax",
"msdyn_kbattachment",
"serviceplanmapping",
"msdyn_knowledgearticletemplate",
"msfp_emailtemplate",
"conversationtranscript",
"sharepointsite",
"processstage",
"msfp_localizedemailtemplate",
"queue",
"msdyn_richtextfile",
"msdyn_serviceconfiguration",
"team",
"sharedlinksetting",
"territory",
"msdyn_federatedarticle",
"msdyn_knowledgepersonalfilter",
"sharepointdocumentlocation",
"chat",
"msfp_fileresponse",
"msfp_satisfactionmetric",
"msdyn_aibfeedbackloop",
"msdyn_customcontrolextendedsettings",
"msfp_surveyreminder",
"msfp_questionresponse",
"msfp_project"
]
}
Salida de la consola:
The contact table is in the list of potential referencing entities for sample_BankAccount.
Crear una relación de 1:N
La siguiente solicitud crea una relación de uno a varios entre sample_BankAccount
y las tablas de contactos con una columna de búsqueda agregada a la tabla contact
.
Solicitud:
POST [Organization Uri]/api/data/v9.2/RelationshipDefinitions HTTP/1.1
MSCRM.SolutionUniqueName: examplesolution
OData-MaxVersion: 4.0
OData-Version: 4.0
If-None-Match: null
Accept: application/json
{
"@odata.type": "Microsoft.Dynamics.CRM.OneToManyRelationshipMetadata",
"AssociatedMenuConfiguration": {
"Behavior": "UseLabel",
"Group": "Details",
"Label": {
"@odata.type": "Microsoft.Dynamics.CRM.Label",
"LocalizedLabels": [
{
"@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
"Label": "Cardholders",
"LanguageCode": 1033,
"IsManaged": false
}
],
"UserLocalizedLabel": {
"@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
"Label": "Cardholders",
"LanguageCode": 1033,
"IsManaged": false
}
},
"Order": 10000,
"ViewId": "00000000-0000-0000-0000-000000000000"
},
"CascadeConfiguration": {
"Assign": "NoCascade",
"Delete": "RemoveLink",
"Merge": "Cascade",
"Reparent": "NoCascade",
"Share": "NoCascade",
"Unshare": "NoCascade",
"RollupView": "NoCascade"
},
"IsHierarchical": false,
"ReferencedAttribute": "sample_bankaccountid",
"ReferencedEntity": "sample_bankaccount",
"ReferencingEntity": "contact",
"Lookup": {
"@odata.type": "Microsoft.Dynamics.CRM.LookupAttributeMetadata",
"AttributeType": "Lookup",
"AttributeTypeName": {
"Value": "LookupType"
},
"Format": "None",
"Description": {
"@odata.type": "Microsoft.Dynamics.CRM.Label",
"LocalizedLabels": [
{
"@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
"Label": "The bank account this contact has access to.",
"LanguageCode": 1033,
"IsManaged": false
}
],
"UserLocalizedLabel": {
"@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
"Label": "The bank account this contact has access to.",
"LanguageCode": 1033,
"IsManaged": false
}
},
"DisplayName": {
"@odata.type": "Microsoft.Dynamics.CRM.Label",
"LocalizedLabels": [
{
"@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
"Label": "Bank Account",
"LanguageCode": 1033,
"IsManaged": false
}
],
"UserLocalizedLabel": {
"@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
"Label": "Bank Account",
"LanguageCode": 1033,
"IsManaged": false
}
},
"SchemaName": "sample_BankAccountId"
},
"IsCustomRelationship": false,
"IsManaged": false,
"IsValidForAdvancedFind": false,
"RelationshipType": "OneToManyRelationship",
"SchemaName": "sample_BankAccount_Contacts",
"SecurityTypes": "None"
}
Respuesta:
HTTP/1.1 204 NoContent
OData-Version: 4.0
OData-EntityId: [Organization Uri]/api/data/v9.2/RelationshipDefinitions(991efd5f-112a-ed11-9db1-00224804f8e2)
Salida de la consola:
Creating a one-to-many relationship...
Created one-to-many relationship: RelationshipDefinitions(991efd5f-112a-ed11-9db1-00224804f8e2)
Recuperar una relación de 1:N
La siguiente solicitud recupera la relación creada por la solicitud anterior.
Nota
Porque RelationshipDefinitions
contiene definiciones de relación de uno a muchos y de muchos a muchos, debe incluir lo siguiente en la URL para convertir al tipo que desea recuperar: /Microsoft.Dynamics.CRM.OneToManyRelationshipMetadata
.
De lo contrario, el valor devuelto será RelationshipMetadataBase EntityType y no incluirá las propiedades específicas del OneToManyRelationshipMetadata EntityType.
Solicitud:
GET [Organization Uri]/api/data/v9.2/RelationshipDefinitions(991efd5f-112a-ed11-9db1-00224804f8e2)/Microsoft.Dynamics.CRM.OneToManyRelationshipMetadata HTTP/1.1
Consistency: Strong
OData-MaxVersion: 4.0
OData-Version: 4.0
If-None-Match: null
Accept: application/json
Respuesta:
HTTP/1.1 200 OK
OData-Version: 4.0
{
"@odata.context": "[Organization Uri]/api/data/v9.2/$metadata#RelationshipDefinitions/Microsoft.Dynamics.CRM.OneToManyRelationshipMetadata/$entity",
"ReferencedAttribute": "sample_bankaccountid",
"ReferencedEntity": "sample_bankaccount",
"ReferencingAttribute": "sample_bankaccountid",
"ReferencingEntity": "contact",
"IsHierarchical": false,
"EntityKey": null,
"IsRelationshipAttributeDenormalized": false,
"ReferencedEntityNavigationPropertyName": "sample_BankAccount_Contacts",
"ReferencingEntityNavigationPropertyName": "sample_BankAccountId",
"RelationshipBehavior": 1,
"IsDenormalizedLookup": null,
"DenormalizedAttributeName": null,
"IsCustomRelationship": true,
"IsValidForAdvancedFind": false,
"SchemaName": "sample_BankAccount_Contacts",
"SecurityTypes": "Append",
"IsManaged": false,
"RelationshipType": "OneToManyRelationship",
"IntroducedVersion": "1.0.0.0",
"MetadataId": "991efd5f-112a-ed11-9db1-00224804f8e2",
"HasChanged": null,
"AssociatedMenuConfiguration": {
"Behavior": "UseLabel",
"Group": "Details",
"Order": 10000,
"IsCustomizable": true,
"Icon": null,
"ViewId": "00000000-0000-0000-0000-000000000000",
"AvailableOffline": true,
"MenuId": null,
"QueryApi": null,
"Label": {
"LocalizedLabels": [
{
"Label": "Cardholders",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "a99a420f-6778-4f2f-b42b-64bc84b2c2d2",
"HasChanged": null
}
],
"UserLocalizedLabel": {
"Label": "Cardholders",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "a99a420f-6778-4f2f-b42b-64bc84b2c2d2",
"HasChanged": null
}
}
},
"CascadeConfiguration": {
"Assign": "NoCascade",
"Delete": "RemoveLink",
"Archive": "RemoveLink",
"Merge": "NoCascade",
"Reparent": "NoCascade",
"Share": "NoCascade",
"Unshare": "NoCascade",
"RollupView": "NoCascade"
},
"RelationshipAttributes": [],
"IsCustomizable": {
"Value": true,
"CanBeChanged": true,
"ManagedPropertyLogicalName": "iscustomizable"
}
}
Salida de la consola:
Retrieved relationship: sample_BankAccount_Contacts
Sección 6: Crear y recuperar una relación de muchos a uno
Una relación de varios a uno es simplemente una relación uno a varios vista desde la otra dirección. Los siguientes ejemplos crean una columna de búsqueda denominada sample_relatedaccountid
en la tabla sample_BankAccount
que hace referencia a una fila en la tabla account
.
Crear una relación de N:1
Solicitud:
POST [Organization Uri]/api/data/v9.2/RelationshipDefinitions HTTP/1.1
MSCRM.SolutionUniqueName: examplesolution
OData-MaxVersion: 4.0
OData-Version: 4.0
If-None-Match: null
Accept: application/json
{
"@odata.type": "Microsoft.Dynamics.CRM.OneToManyRelationshipMetadata",
"AssociatedMenuConfiguration": {
"Behavior": "UseLabel",
"Group": "Details",
"Label": {
"@odata.type": "Microsoft.Dynamics.CRM.Label",
"LocalizedLabels": [
{
"@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
"Label": "Related Bank Accounts",
"LanguageCode": 1033,
"IsManaged": false
}
],
"UserLocalizedLabel": {
"@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
"Label": "Related Bank Accounts",
"LanguageCode": 1033,
"IsManaged": false
}
},
"Order": 10000,
"ViewId": "00000000-0000-0000-0000-000000000000"
},
"CascadeConfiguration": {
"Assign": "NoCascade",
"Delete": "RemoveLink",
"Merge": "Cascade",
"Reparent": "NoCascade",
"Share": "NoCascade",
"Unshare": "NoCascade",
"RollupView": "NoCascade"
},
"IsHierarchical": false,
"ReferencedAttribute": "accountid",
"ReferencedEntity": "account",
"ReferencingEntity": "sample_bankaccount",
"Lookup": {
"@odata.type": "Microsoft.Dynamics.CRM.LookupAttributeMetadata",
"AttributeType": "Lookup",
"AttributeTypeName": {
"Value": "LookupType"
},
"Format": "None",
"Description": {
"@odata.type": "Microsoft.Dynamics.CRM.Label",
"LocalizedLabels": [
{
"@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
"Label": "An Account related to the bank account.",
"LanguageCode": 1033,
"IsManaged": false
}
],
"UserLocalizedLabel": {
"@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
"Label": "An Account related to the bank account.",
"LanguageCode": 1033,
"IsManaged": false
}
},
"DisplayName": {
"@odata.type": "Microsoft.Dynamics.CRM.Label",
"LocalizedLabels": [
{
"@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
"Label": "Related Account",
"LanguageCode": 1033,
"IsManaged": false
}
],
"UserLocalizedLabel": {
"@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
"Label": "Related Account",
"LanguageCode": 1033,
"IsManaged": false
}
},
"SchemaName": "sample_RelatedAccountId"
},
"IsCustomRelationship": false,
"IsManaged": false,
"IsValidForAdvancedFind": false,
"RelationshipType": "OneToManyRelationship",
"SchemaName": "sample_Account_BankAccounts",
"SecurityTypes": "None"
}
Respuesta:
HTTP/1.1 204 NoContent
OData-Version: 4.0
OData-EntityId: [Organization Uri]/api/data/v9.2/RelationshipDefinitions(0901c466-112a-ed11-9db1-00224804f8e2)
Salida de la consola:
Created many-to-one relationship: RelationshipDefinitions(0901c466-112a-ed11-9db1-00224804f8e2)
Recuperar una relación de N:1
Solicitud:
GET [Organization Uri]/api/data/v9.2/RelationshipDefinitions(0901c466-112a-ed11-9db1-00224804f8e2)/Microsoft.Dynamics.CRM.OneToManyRelationshipMetadata HTTP/1.1
Consistency: Strong
OData-MaxVersion: 4.0
OData-Version: 4.0
If-None-Match: null
Accept: application/json
Respuesta:
HTTP/1.1 200 OK
OData-Version: 4.0
{
"@odata.context": "[Organization Uri]/api/data/v9.2/$metadata#RelationshipDefinitions/Microsoft.Dynamics.CRM.OneToManyRelationshipMetadata/$entity",
"ReferencedAttribute": "accountid",
"ReferencedEntity": "account",
"ReferencingAttribute": "sample_relatedaccountid",
"ReferencingEntity": "sample_bankaccount",
"IsHierarchical": false,
"EntityKey": null,
"IsRelationshipAttributeDenormalized": false,
"ReferencedEntityNavigationPropertyName": "sample_Account_BankAccounts",
"ReferencingEntityNavigationPropertyName": "sample_RelatedAccountId",
"RelationshipBehavior": 1,
"IsDenormalizedLookup": null,
"DenormalizedAttributeName": null,
"IsCustomRelationship": true,
"IsValidForAdvancedFind": false,
"SchemaName": "sample_Account_BankAccounts",
"SecurityTypes": "Append",
"IsManaged": false,
"RelationshipType": "OneToManyRelationship",
"IntroducedVersion": "1.0.0.0",
"MetadataId": "0901c466-112a-ed11-9db1-00224804f8e2",
"HasChanged": null,
"AssociatedMenuConfiguration": {
"Behavior": "UseLabel",
"Group": "Details",
"Order": 10000,
"IsCustomizable": true,
"Icon": null,
"ViewId": "00000000-0000-0000-0000-000000000000",
"AvailableOffline": true,
"MenuId": null,
"QueryApi": null,
"Label": {
"LocalizedLabels": [
{
"Label": "Related Bank Accounts",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "b2ad2cce-5c7c-46aa-8bbf-7903d33ef019",
"HasChanged": null
}
],
"UserLocalizedLabel": {
"Label": "Related Bank Accounts",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "b2ad2cce-5c7c-46aa-8bbf-7903d33ef019",
"HasChanged": null
}
}
},
"CascadeConfiguration": {
"Assign": "NoCascade",
"Delete": "RemoveLink",
"Archive": "RemoveLink",
"Merge": "Cascade",
"Reparent": "NoCascade",
"Share": "NoCascade",
"Unshare": "NoCascade",
"RollupView": "NoCascade"
},
"RelationshipAttributes": [],
"IsCustomizable": {
"Value": true,
"CanBeChanged": true,
"ManagedPropertyLogicalName": "iscustomizable"
}
}
Salida de la consola:
Retrieved relationship: sample_Account_BankAccounts
Sección 7: Crear y recuperar una relación de muchos a muchos
Al igual que uno a muchos Relaciones, hay funciones especiales utilizadas por los diseñadores en Power Apps para evitar combinaciones no válidas al crear muchos a muchos Relaciones.
Validar la idoneidad de la relación de N:N
CanManyToMany Function indica si una tabla puede participar en una relación de varios a varios. Entonces, esta solicitud prueba la tabla
contact
.Solicitud:
POST [Organization Uri]/api/data/v9.2/CanManyToMany HTTP/1.1 OData-MaxVersion: 4.0 OData-Version: 4.0 If-None-Match: null Accept: application/json { "EntityName": "contact" }
Respuesta:
HTTP/1.1 200 OK OData-Version: 4.0 { "@odata.context": "[Organization Uri]/api/data/v9.2/$metadata#Microsoft.Dynamics.CRM.CanManyToManyResponse", "CanManyToMany": true }
Salida de la consola:
The contact table can participate in many-to-many relationships.
Esta solicitud realiza la misma prueba en la tabla
sample_bankaccount
.Solicitud:
POST [Organization Uri]/api/data/v9.2/CanManyToMany HTTP/1.1 OData-MaxVersion: 4.0 OData-Version: 4.0 If-None-Match: null Accept: application/json { "EntityName": "sample_bankaccount" }
Respuesta:
HTTP/1.1 200 OK OData-Version: 4.0 { "@odata.context": "[Organization Uri]/api/data/v9.2/$metadata#Microsoft.Dynamics.CRM.CanManyToManyResponse", "CanManyToMany": true }
Salida de la consola:
The sample_bankaccount table can participate in many-to-many relationships.
Identificar entidades potenciales para relaciones de N:N
Use GetValidManyToMany Function para obtener una lista de tablas que pueden participar en erlaciones de varios a varios.
Solicitud:
GET [Organization Uri]/api/data/v9.2/GetValidManyToMany HTTP/1.1
OData-MaxVersion: 4.0
OData-Version: 4.0
If-None-Match: null
Accept: application/json
Respuesta:
HTTP/1.1 200 OK
OData-Version: 4.0
{
"@odata.context": "[Organization Uri]/api/data/v9.2/$metadata#Microsoft.Dynamics.CRM.GetValidManyToManyResponse",
"EntityNames": [
"msdyn_slakpi",
"workflowbinary",
"apisettings",
"flowsession",
"theme",
"knowledgearticle",
"socialprofile",
"goal",
"position",
"externalparty",
"channelaccessprofileruleitem",
"routingruleitem",
"sample_bankaccount",
"synapselinkexternaltablestate",
"synapsedatabase",
"msdyn_aimodel",
"aaduser",
"applicationuser",
"msfp_unsubscribedrecipient",
"msdyn_aiconfiguration",
"msdyn_dataflow",
"flowmachineimage",
"queueitem",
"synapselinkschedule",
"msdyn_federatedarticleincident",
"flowmachine",
"synapselinkprofile",
"msdyn_dataflowrefreshhistory",
"solutioncomponentrelationshipconfiguration",
"contact",
"organizationdatasyncstate",
"botcomponent",
"bot",
"msdyn_componentlayer",
"msdyn_odatav4ds",
"msfp_question",
"msdyn_aibfile",
"msdyn_solutionhistorydatasource",
"msdyn_solutionhealthruleset",
"newprocess",
"connectionreference",
"msdyn_knowledgemanagementsetting",
"msdyn_pmrecording",
"msfp_survey",
"msdyn_aibdatasetscontainer",
"package",
"msdyn_solutioncomponentsummary",
"msdyn_helppage",
"appnotification",
"organizationdatasyncsubscriptionentity",
"msdyn_aiodtrainingboundingbox",
"msdyn_nonrelationalds",
"expiredprocess",
"msdyn_analysisresultdetail",
"msfp_alertrule",
"msdyn_solutioncomponentcountsummary",
"msdyn_kalanguagesetting",
"transactioncurrency",
"exportsolutionupload",
"msdyn_pmprocessusersettings",
"datasyncstate",
"msdyn_entityrefreshhistory",
"msdyn_analysisresult",
"msdyn_componentlayerdatasource",
"account",
"kbarticle",
"systemuser",
"task",
"msdyn_analysisjob",
"solutioncomponentconfiguration",
"msdyn_knowledgesearchfilter",
"stagesolutionupload",
"msdyn_pmtemplate",
"phonecall",
"msdyn_solutioncomponentdatasource",
"environmentvariablevalue",
"msdyn_aitemplate",
"userrating",
"synapselinkprofileentity",
"featurecontrolsetting",
"translationprocess",
"msdyn_pminferredtask",
"customapirequestparameter",
"externalpartyitem",
"msdyn_aibdatasetfile",
"flowmachinegroup",
"flowmachineimageversion",
"msdyn_aibdatasetrecord",
"msdyn_kbattachment",
"msdyn_aifptrainingdocument",
"customapiresponseproperty",
"msdyn_knowledgearticletemplate",
"msdyn_aiodimage",
"msdyn_knowledgesearchinsight",
"msfp_emailtemplate",
"catalog",
"msdyn_knowledgeinteractioninsight",
"conversationtranscript",
"msdyn_pmanalysishistory",
"msdyn_datalakeds",
"canvasappextendedmetadata",
"msfp_localizedemailtemplate",
"msdynce_botcontent",
"queue",
"msdyn_solutionhealthruleargument",
"msdyn_aibfileattacheddata",
"msdyn_richtextfile",
"msdyn_kmpersonalizationsetting",
"msdyn_aiodtrainingimage",
"msdyn_serviceconfiguration",
"msdyn_knowledgearticleimage",
"team",
"territory",
"msdyn_solutioncomponentcountdatasource",
"catalogassignment",
"msdyn_federatedarticle",
"msdyn_solutionhealthrule",
"msdyn_solutionhistory",
"msdyn_knowledgepersonalfilter",
"organizationdatasyncsubscription",
"solutioncomponentbatchconfiguration",
"connector",
"solutioncomponentattributeconfiguration",
"synapselinkprofileentitystate",
"msdyn_aiodlabel",
"customapi",
"msdyn_aibdataset",
"msfp_fileresponse",
"environmentvariabledefinition",
"msdyn_analysiscomponent",
"msfp_satisfactionmetric",
"msdyn_tour",
"msdyn_customcontrolextendedsettings",
"msfp_surveyreminder",
"virtualentitymetadata",
"msfp_questionresponse",
"msfp_project"
]
}
Salida de la consola:
Contact is in the list of potential tables for N:N.
sample_BankAccount is in the list of potential tables for N:N.
Crear una relación de N:N
Esta solicitud crea una relación de varios a varios entre las tablas sample_BankAccount
y Contact
.
Solicitud:
POST [Organization Uri]/api/data/v9.2/RelationshipDefinitions HTTP/1.1
MSCRM.SolutionUniqueName: examplesolution
OData-MaxVersion: 4.0
OData-Version: 4.0
If-None-Match: null
Accept: application/json
{
"@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": "Bank Accounts",
"LanguageCode": 1033,
"IsManaged": false
}
],
"UserLocalizedLabel": {
"@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
"Label": "Bank Accounts",
"LanguageCode": 1033,
"IsManaged": false
}
},
"Order": 10000,
"ViewId": "00000000-0000-0000-0000-000000000000"
},
"Entity1LogicalName": "sample_bankaccount",
"Entity2AssociatedMenuConfiguration": {
"Behavior": "UseLabel",
"Group": "Details",
"Label": {
"@odata.type": "Microsoft.Dynamics.CRM.Label",
"LocalizedLabels": [
{
"@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
"Label": "Contacts",
"LanguageCode": 1033,
"IsManaged": false
}
],
"UserLocalizedLabel": {
"@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
"Label": "Contacts",
"LanguageCode": 1033,
"IsManaged": false
}
},
"Order": 10000,
"ViewId": "00000000-0000-0000-0000-000000000000"
},
"Entity2LogicalName": "contact",
"IntersectEntityName": "sample_sample_BankAccounts_Contacts",
"IsCustomRelationship": false,
"IsManaged": false,
"IsValidForAdvancedFind": false,
"RelationshipType": "OneToManyRelationship",
"SchemaName": "sample_sample_BankAccounts_Contacts",
"SecurityTypes": "None"
}
Respuesta:
HTTP/1.1 204 NoContent
OData-Version: 4.0
OData-EntityId: [Organization Uri]/api/data/v9.2/RelationshipDefinitions(55c9f86c-112a-ed11-9db1-00224804f8e2)
Salida de la consola:
Created Many-to-Many relationship at: RelationshipDefinitions(55c9f86c-112a-ed11-9db1-00224804f8e2)
Recuperar una relación N:N
Esta solicitud recupera la relación varios a varios creada por la solicitud anterior.
Nota
Como se mencionaba antes, como RelationshipDefinitions
contiene definiciones de relación de uno a muchos y de muchos a muchos, debe incluir lo siguiente en la URL para convertir al tipo que desea recuperar: /Microsoft.Dynamics.CRM.ManyToManyRelationshipMetadata
.
De lo contrario, el valor devuelto será RelationshipMetadataBase EntityType y no incluirá las propiedades específicas del ManyToManyRelationshipMetadata EntityType.
Solicitud:
GET [Organization Uri]/api/data/v9.2/RelationshipDefinitions(55c9f86c-112a-ed11-9db1-00224804f8e2)/Microsoft.Dynamics.CRM.ManyToManyRelationshipMetadata HTTP/1.1
Consistency: Strong
OData-MaxVersion: 4.0
OData-Version: 4.0
If-None-Match: null
Accept: application/json
Respuesta:
HTTP/1.1 200 OK
OData-Version: 4.0
{
"@odata.context": "[Organization Uri]/api/data/v9.2/$metadata#RelationshipDefinitions/Microsoft.Dynamics.CRM.ManyToManyRelationshipMetadata/$entity",
"Entity1LogicalName": "sample_bankaccount",
"Entity2LogicalName": "contact",
"IntersectEntityName": "sample_sample_bankaccounts_contacts",
"Entity1IntersectAttribute": "sample_bankaccountid",
"Entity2IntersectAttribute": "contactid",
"Entity1NavigationPropertyName": "sample_sample_BankAccounts_Contacts",
"Entity2NavigationPropertyName": "sample_sample_BankAccounts_Contacts",
"IsCustomRelationship": true,
"IsValidForAdvancedFind": false,
"SchemaName": "sample_sample_BankAccounts_Contacts",
"SecurityTypes": "None",
"IsManaged": false,
"RelationshipType": "ManyToManyRelationship",
"IntroducedVersion": "1.0.0.0",
"MetadataId": "55c9f86c-112a-ed11-9db1-00224804f8e2",
"HasChanged": null,
"Entity1AssociatedMenuConfiguration": {
"Behavior": "UseLabel",
"Group": "Details",
"Order": 10000,
"IsCustomizable": true,
"Icon": null,
"ViewId": "00000000-0000-0000-0000-000000000000",
"AvailableOffline": true,
"MenuId": null,
"QueryApi": null,
"Label": {
"LocalizedLabels": [
{
"Label": "Bank Accounts",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "271999d1-6fd9-4413-b027-f2a1b231e0a4",
"HasChanged": null
}
],
"UserLocalizedLabel": {
"Label": "Bank Accounts",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "271999d1-6fd9-4413-b027-f2a1b231e0a4",
"HasChanged": null
}
}
},
"Entity2AssociatedMenuConfiguration": {
"Behavior": "UseLabel",
"Group": "Details",
"Order": 10000,
"IsCustomizable": true,
"Icon": null,
"ViewId": "00000000-0000-0000-0000-000000000000",
"AvailableOffline": true,
"MenuId": null,
"QueryApi": null,
"Label": {
"LocalizedLabels": [
{
"Label": "Contacts",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "1fcff441-9a41-42b1-a0d9-e92daa47230f",
"HasChanged": null
}
],
"UserLocalizedLabel": {
"Label": "Contacts",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "1fcff441-9a41-42b1-a0d9-e92daa47230f",
"HasChanged": null
}
}
},
"IsCustomizable": {
"Value": true,
"CanBeChanged": true,
"ManagedPropertyLogicalName": "iscustomizable"
}
}
Salida de la consola:
Retrieved Many-to-Many relationship:sample_sample_BankAccounts_Contacts
Sección 8: Exportar una solución administrada
Use ExportSolution Action para exportar la solución como administrada. Esta acción incluye muchos modificadores que puede usar para incluir información adicional como parte de la solución, pero en este caso, todas esas opciones están desactivadas. Más información: Trabajar con soluciones
Solicitud:
POST [Organization Uri]/api/data/v9.2/ExportSolution HTTP/1.1
OData-MaxVersion: 4.0
OData-Version: 4.0
If-None-Match: null
Accept: application/json
{
"SolutionName": "examplesolution",
"Managed": true,
"ExportAutoNumberingSettings": false,
"ExportCalendarSettings": false,
"ExportCustomizationSettings": false,
"ExportEmailTrackingSettings": false,
"ExportGeneralSettings": false,
"ExportMarketingSettings": false,
"ExportOutlookSynchronizationSettings": false,
"ExportRelationshipRoles": false,
"ExportIsvConfig": false,
"ExportSales": false,
"ExportExternalApplications": false
}
Respuesta:
HTTP/1.1 200 OK
OData-Version: 4.0
{
"@odata.context": "[Organization Uri]/api/data/v9.2/$metadata#Microsoft.Dynamics.CRM.ExportSolutionResponse",
"ExportSolutionFile": "[ Binary content removed for brevity]"
}
Salida de la consola:
Solution Exported to E:\GitHub\PowerApps-Samples\dataverse\webapi\C#-NETx\MetadataOperations\bin\Debug\net6.0\examplesolution.zip
Sección 9: Eliminar registros de muestra
Las referencias a todos los registros creados en esta muestra se han agregado a una lista. En esta sección, todos los registros creados se eliminan mediante una operación $batch
.
Solicitud:
POST [Organization Uri]/api/data/v9.2/$batch HTTP/1.1
OData-MaxVersion: 4.0
OData-Version: 4.0
If-None-Match: null
Accept: application/json
--batch_d6cb9873-6b53-490d-942d-0bea79b8ba9a
Content-Type: application/http
Content-Transfer-Encoding: binary
Content-Length: 136
DELETE /api/data/v9.2/RelationshipDefinitions(991efd5f-112a-ed11-9db1-00224804f8e2) HTTP/1.1
--batch_d6cb9873-6b53-490d-942d-0bea79b8ba9a
Content-Type: application/http
Content-Transfer-Encoding: binary
Content-Length: 130
DELETE /api/data/v9.2/EntityDefinitions(5872b902-112a-ed11-9db1-00224804f8e2) HTTP/1.1
--batch_d6cb9873-6b53-490d-942d-0bea79b8ba9a
Content-Type: application/http
Content-Transfer-Encoding: binary
Content-Length: 122
DELETE /api/data/v9.2/solutions(5472b902-112a-ed11-9db1-00224804f8e2) HTTP/1.1
--batch_d6cb9873-6b53-490d-942d-0bea79b8ba9a
Content-Type: application/http
Content-Transfer-Encoding: binary
Content-Length: 123
DELETE /api/data/v9.2/publishers(a78ab7fc-102a-ed11-9db1-00224804f8e2) HTTP/1.1
--batch_d6cb9873-6b53-490d-942d-0bea79b8ba9a
Content-Type: application/http
Content-Transfer-Encoding: binary
Content-Length: 139
DELETE /api/data/v9.2/GlobalOptionSetDefinitions(7cfd8c56-112a-ed11-9db1-00224804f8e2) HTTP/1.1
--batch_d6cb9873-6b53-490d-942d-0bea79b8ba9a--
Respuesta:
HTTP/1.1 200 OK
OData-Version: 4.0
--batchresponse_9fa66f62-38d1-4890-91ce-4185fd556745
Content-Type: application/http
Content-Transfer-Encoding: binary
HTTP/1.1 204 No Content
OData-Version: 4.0
--batchresponse_9fa66f62-38d1-4890-91ce-4185fd556745
Content-Type: application/http
Content-Transfer-Encoding: binary
HTTP/1.1 204 No Content
OData-Version: 4.0
--batchresponse_9fa66f62-38d1-4890-91ce-4185fd556745
Content-Type: application/http
Content-Transfer-Encoding: binary
HTTP/1.1 204 No Content
OData-Version: 4.0
--batchresponse_9fa66f62-38d1-4890-91ce-4185fd556745
Content-Type: application/http
Content-Transfer-Encoding: binary
HTTP/1.1 204 No Content
OData-Version: 4.0
--batchresponse_9fa66f62-38d1-4890-91ce-4185fd556745
Content-Type: application/http
Content-Transfer-Encoding: binary
HTTP/1.1 204 No Content
OData-Version: 4.0
--batchresponse_9fa66f62-38d1-4890-91ce-4185fd556745--
Salida de la consola:
Deleting created records...
Sección 10: Importar y eliminar una solución administrada
Este paso importa solución administrada exportado en Sección 8: Exportar solución administrada utilizando el ImportSolution Action.
Solicitud:
POST [Organization Uri]/api/data/v9.2/ImportSolution HTTP/1.1 OData-MaxVersion: 4.0 OData-Version: 4.0 If-None-Match: null Accept: application/json { "OverwriteUnmanagedCustomizations": false, "PublishWorkflows": false, "CustomizationFile": "[ Binary content removed for brevity]", "ImportJobId": "00000000-0000-0000-0000-000000000000" }
Respuesta:
HTTP/1.1 204 NoContent OData-Version: 4.0
Salida de la consola:
Sending request to import the examplesolution solution... Solution imported as a managed solution.
Obtenga el
solutionid
de la solución administrada poruniquename
para que pueda eliminarlo.Solicitud:
GET [Organization Uri]/api/data/v9.2/solutions?$select=solutionid&$filter=uniquename%20eq%20'examplesolution' HTTP/1.1 OData-MaxVersion: 4.0 OData-Version: 4.0 If-None-Match: null Accept: application/json
Respuesta:
HTTP/1.1 200 OK OData-Version: 4.0 { "@odata.context": "[Organization Uri]/api/data/v9.2/$metadata#solutions(solutionid)", "value": [ { "@odata.etag": "W/\"13291034\"", "solutionid": "07439497-6992-4e30-81e0-628a91984af5" } ] }
Eliminar una solución administrada
Este paso final elimina el solución administrada importado para devolver el sistema al estado original.
Solicitud:
DELETE [Organization Uri]/api/data/v9.2/solutions(07439497-6992-4e30-81e0-628a91984af5) HTTP/1.1
OData-MaxVersion: 4.0
OData-Version: 4.0
If-None-Match: null
Accept: application/json
Respuesta:
HTTP/1.1 204 NoContent
OData-Version: 4.0
Salida de la consola:
Sending request to delete the examplesolution solution...
Managed solution deleted.
--Metadata Operations sample completed--
Consulte también
Usar la API web de Dataverse
Utilizar la API web con definiciones de tabla
Consultar definiciones de tabla con la API web
Crear y actualizar definiciones de tabla mediante la API web
Crear y actualizar relaciones de tabla mediante la API web
Crear y actualizar selecciones (conjuntos de opciones) mediante la API web
Ejemplo de operaciones de esquema de tabla de API web (C#)
Nota
¿Puede indicarnos sus preferencias de idioma de documentación? Realice una breve encuesta. (tenga en cuenta que esta encuesta está en inglés)
La encuesta durará unos siete minutos. No se recopilan datos personales (declaración de privacidad).