Personalizar las asignaciones de tablas y columnas

Puede asignar columnas entre tablas que tienen una relación. Esto le permite establecer valores predeterminados para un registro creado en el contexto de otro registro. Use las herramientas de personalización en la aplicación de asignar tablas; consulte Asignar columnas.

Comportamiento en la aplicación

La asignación en Microsoft Dataverse simplifica la entrada de datos cuando se crean nuevos registros que están asociados con otro registro. Cuando una tabla tiene una relación con otra tabla, puede crear nuevos registros de tablas relacionadas con la pestaña Crear relacionadas de la cinta de opciones. Al crear un nuevo registro de esta forma, los datos asignados del registro primario se copian al formulario para el nuevo registro relacionado. Al asignar columnas de tabla, se controlan los datos que se copian agregando nuevas asignaciones en la relación entre las dos tablas. Si crea un registro sin usar la vista asociada de la tabla primaria, los datos no se asignarán.

Por ejemplo, es posible que desee configurar una asignación entre las columnas de dirección en cuentas y las columnas de dirección en contactos. Con esta asignación, cuando un usuario agrega un contacto asociado a una cuenta específica, las columnas de dirección del contacto se rellenan automáticamente.

Puede asignar una columna a varias columnas de destino. Por ejemplo, puede asignar la información de dirección de una cuenta a las direcciones de facturación y envío de un pedido.

La asignación se aplica antes de que se cree un nuevo registro relacionado. Los usuarios pueden hacer cambios antes de guardar el registro. Los cambios posteriores que se realicen en el registro principal no se aplicarán al registro relacionado.

Usar datos de asignación de tablas y columnas

Uso de la API web

Al trabajar con la API web, puede utilizar InitializeFrom Function para crear registros nuevos en el contexto de registros existentes donde existe una asignación entre las tablas.

La respuesta recibida de la solicitud InitializeFrom consta de valores de columnas asignados entre la tabla de origen, la tabla de destino y el GUID del registro primario. La asignación de columnas entre las tablas que tienen una relación es diferente para conjuntos de tablas diferentes y se puede personalizar, por lo que la respuesta de la solicitud de la función InitializeFrom puede variar para organizaciones y tablas diferentes. Cuando se pasa esta respuesta en el cuerpo de la solicitud de creación del nuevo registro, estos valores de columna se replican en el nuevo registro. Los valores de las columnas asignados personalizados también se definen en el nuevo registro durante el proceso.

Nota

Para determinar si se pueden asignar dos tablas, utilice la siguiente solicitud de API web:
GET [Organization URI]/api/data/v9.0/entitymaps?$select=sourceentityname,targetentityname&$orderby=sourceentityname

Para obtener más información, consulte Crear un nuevo registro a partir de otro registro.

Usar SDK para .NET

Al crear registros nuevos en el contexto de un registro existente donde existe una asignación entre las tablas, puede usar el mensaje InitializeFromRequest para definir un nuevo registro que contiene los valores especificados en la asignación. A continuación, ya podrá usar el método IOrganizationService. Create para guardar el registro. De esta manera, se aplican todas las asignaciones definidas.

Se crean los mapas válidos de tablas cuando se crea una relación. Use la relación entity_map_attribute_maps para recuperar las asignaciones de columnas para el par de tablas especificadas por el mapa de tablas.
Puede crear o actualizar registros de asignación de columnas. Los siguientes requisitos deben cumplirse para las asignaciones de columnas:

  • El tipo de AttributeMetadata debe coincidir.
  • La longitud del campo de destino no puede ser más corta que la columna de origen.
  • El formato debe coincidir.
  • La columna de destino no se debe usar en otra asignación.
  • La columna de origen debe estar visible en el formulario.
  • La columna de destino debe ser un campo en el que un usuario pueda especificar datos.
  • Los valores de identificador de dirección no se pueden asignar.
  • Columnas PartyList, donde AttributeMetadata.AttributeType es AttributeTypeCode.PartyList, no pueden asignarse.

Columnas de asignación automática entre tablas

Puede editar asignaciones de columnas entre tablas para relaciones que admitan la asignación.

Además de crear cada asignación de columna manualmente, puede usar el mensaje AutoMapEntity (clase AutoMapEntity Action o AutoMapEntityRequest) para generar un nuevo conjunto de asignaciones de columnas. Este mensaje realiza la acción encontrada en la opción del menú Generar asignaciones en el menú Más acciones de la barra de herramientas (consulte Generar asignaciones de columnas automáticamente). Este mensaje asigna todas las columnas entre las dos tablas relacionadas donde los nombres de columna y los tipos son idénticos. Este mensaje se proporciona como aumento de la productividad, de modo que no es necesario agregar manualmente todas las asignaciones de columnas. En su lugar, puede generar un conjunto de asignaciones potenciales y reducir la cantidad de trabajo manual para agregar o quitar asignaciones individuales para adaptarse a sus requisitos.

Nota

Generar asignaciones automáticamente de esta manera quitará cualquier asignación de columna definida anteriormente y puede incluir asignaciones que no desee.

Recuperar las asignaciones de tablas y columnas

Una forma sencilla de ver las asignaciones que se han realizado es usar la siguiente consulta de FetchXML. Para obtener más información sobre cómo ejecutar esta consulta, vea Consultar datos mediante FetchXML.


<fetch version='1.0' mapping='logical' distinct='false'>
   <entity name='entitymap'>
      <attribute name='sourceentityname'/>
      <attribute name='targetentityname'/>
      <link-entity name='attributemap' alias='attributemap' to='entitymapid' from='entitymapid' link-type='inner'>
         <attribute name='sourceattributename'/>
         <attribute name='targetattributename'/>
      </link-entity>
   </entity>
 </fetch>

Consulte también

Asignar columnas

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).