Microsoft Dataverse y la mejora de la experiencia de origen de datos
Introducción
En mayo de 2021, muchas funciones que antes eran opcionales ahora serán el comportamiento predeterminado para todas las aplicaciones nuevas. Este artículo proporciona orientación a los usuarios que desarrollaron una aplicación antes de la introducción de nuevas funciones sobre cómo actualizar su aplicación para aprovechar las últimas funcionalidades.
Nativa Dataverse
Si creó una aplicación de lienzo con Dataverse o Dynamics 365 Connector antes de noviembre de 2019, entonces es posible que no tenga los beneficios de usar la experiencia de conexión nativa actual para Dataverse.
Si creó su aplicación antes de noviembre de 2019 y no estás usando una conexión nativa Dataverse, en Configuración, en la pestaña Próximas funciones, en la pestaña "Retirado" encontrará la opción Mejorar la experiencia origen de datos y vistas de Microsoft Dataverse junto con datos relacionales, opciones y otras características nuevas para Microsoft Dataverse.
¿Cómo me actualizo?
Actualice su aplicación inspeccionando la configuración de las características y siguiendo las instrucciones que se indican a continuación:
Los datos relacionales, los conjuntos de opciones y otras características nuevas de Microsoft Dataverse están desactivadas
Compruebe la sección Retirada en Próximas características. Si se establece en Desactivada, continúe con las instrucciones siguientes como primer paso en la conversión.
Si no ve Datos relacionales, conjuntos de opciones y otras características nuevas de Microsoft Dataverse en Configuración general o si ya está activada, omita los siguientes pasos y continúe con la siguiente sección.
Paso 1: Activar la característica Usar nombres para mostrar:
- Active la característica Usar nombres para mostrar.
- Espere a que el monitor de estado termine de analizar la aplicación.
- Guarde, cierre y vuelva a abrir la aplicación.
- Resuelva todos los errores de fórmula.
- Guarde, cierre y vuelva a abrir la aplicación.
Posibles errores y sugerencias:
Es posible que algunos de los nombres para mostrar recién mostrados entren en conflicto con los nombres para mostrar de otras tablas, campos o controles. Por ejemplo, puede tener un control y un campo con el mismo nombre. Puede cambiar el nombre del control con un valor único para corregirlo.
Para cualquier conflicto de campo y nombre de tabla, es posible que vea una fórmula que espera una tabla pero se resuelve en un nombre de campo de ámbito local.
Utilice el corchete con un símbolo @ para indicar un ámbito global para que se resuelva en la tabla; por ejemplo, [@tableName].
Paso 2: activar las características Datos relacionales, los conjuntos de opciones y otras características nuevas para Microsoft Dataverse y Usar tipos de datos GUID en lugar de cadenas:
- Active la característica Datos relacionales, los conjuntos de opciones y otras características nuevas de Microsoft Dataverse.
- Active la característica Usar tipos de datos GUID en lugar de cadenas.
- Espere a que el monitor de estado termine de analizar la aplicación.
- Resuelva todos los errores de fórmula.
- Guarde, cierre y vuelva a abrir la aplicación.
Posibles errores y sugerencias:
Es posible tener errores en esta etapa si está utilizando un campo de elección o valores de texto GUID codificados.
- Valores de elección: si está utilizando un campo de elección con un identificador de texto para el valor de elección, utilice la notación de puntos en su lugar para hacer referencia al valor de elección. Por ejemplo, cambie
Patch(Accounts, OptionSet1 = “12345”)
aPatch(Accounts, OptionSet.Item1)
dondeItem1
corresponde al valor12345
.
Más información: Ejemplos detallados. - GUID: si utiliza una cadena de GUID estática como
015e45e1044e49f388115be07f2ee116
, conviértala en una función que devuelva un objeto GUID; por ejemploGUID(“015e45e1044e49f388115be07f2ee116”)
. - Búsquedas: si está utilizando funciones de búsqueda para obtener valores de búsqueda de primer nivel, como
Lookup(Contacts, ‘contactID’ = ThisItem.ContactID”)
, considere usarThisItem.PrimaryContacts
(donde PrimaryContacts es el nombre de la tabla) en su lugar.
Mejorar la experiencia de origen de datos y las vistas de Microsoft Dataverse está desactivada
Use la siguiente instrucción para activar la característica Mejorar la experiencia de origen de datos y las vistas de Microsoft Dataverse:
- Quite las conexiones de origen de datos de Dataverse existentes.
- Active la característica Mejorar la experiencia de origen de datos y las vistas de Microsoft Dataverse:
- Agregue la conexión de Dataverse con la nueva experiencia de selección de orígenes de datos.
- Guarde la aplicación.
Nota
Si la aplicación es muy grande, la adición de las conexiones de origen de datos puede tardar unos minutos. No cierre la aplicación durante este proceso.
Conversión de aplicaciones de lienzo con Dynamics 365 Connector
Para convertir la aplicación que usa Dynamics 365 Connector, deberá quitar y agregar las conexiones a los orígenes de datos. Siga los pasos que se indican a continuación para convertir las conexiones a los orígenes de datos.
Asegúrese de que la característica Mejorar la experiencia de origen de datos y las vistas de Microsoft Dataverse está activada:
Quite las conexiones de origen de datos de Dynamics 365 existentes.
Agregue las conexiones a los orígenes de datos al Dataverse con la nueva experiencia de selección de orígenes de datos.
Nota
- Si tiene conexiones a otros entornos (distintos del actual), seleccione la categoría Tabla y luego la opción Más (...) para cambiar el entorno. Luego, puede seleccionar una tabla de un entorno diferente para agregar a su aplicación. Las conexiones entre inquilinos no funcionan con el conector nativo mejorado. Tendrá que usar la integración de datos para acceder a los datos entre inquilinos.
- Debe cumplir uno de los siguientes requisitos para poder ver un entorno al que desea agregar la conexión:
- Es el Propietario de la aplicación, o la aplicación está compartida con usted como Copropietario.
- Es miembro de al menos uno de estos roles de seguridad: Administrador de entorno, Creador de entorno o Administrador del sistema. Para obtener más información sobre los roles de seguridad en un entorno, vaya a Configurar la seguridad de los usuarios para los recursos de un entorno.
Guarde la aplicación.
Posibles errores y sugerencias:
Es posible tener errores al realizar la conversión si: no está usando nombres para mostrar, si está usando cadenas GUID o si está usando una opción.
- Si hay conflictos de nombres de control, cambie el nombre del control para que sea diferente y único.
- Para conflictos de campo y nombre de tabla, es posible que vea una fórmula que espera una tabla pero se resuelve en un nombre de campo más de ámbito local. Utilice el corchete con un símbolo @ para indicar un ámbito global para que se resuelva en la tabla; por ejemplo, [@tableName].
- Valores de elección: si está utilizando un campo de elección con un identificador de texto para el valor de elección, utilice la notación de puntos en su lugar para hacer referencia al valor de elección. Por ejemplo, cambie
Patch(Accounts, OptionSet1 = “12345”)
aPatch(Accounts, OptionSet.Item1)
dondeItem1
corresponde al valor12345
.
Más información: Ejemplos detallados. - GUID: si utiliza una cadena de GUID estática como
015e45e1044e49f388115be07f2ee116
, conviértala en una función que devuelva un objeto GUID; por ejemploGUID(“015e45e1044e49f388115be07f2ee116”)
. - Búsquedas: si está utilizando funciones de búsqueda para obtener valores de búsqueda de primer nivel, como
Lookup(Contacts, ‘contactID’ = ThisItem.ContactID”)
, considere usarThisItem.PrimaryContacts
(donde PrimaryContacts es el nombre de la tabla) en su lugar. - Para obtener referencias polimórficas, consulte la sección Ejemplos detallados a continuación.
Ejemplos detallados
Convertir su aplicación para usar los nuevos tipos de datos Conjuntos de opciones y Dos opciones con controles de soporte pueden ser un desafío al actualizar una aplicación para usar la nueva característica Mejorar la experiencia de origen de datos y vistas de Microsoft Dataverse.
Opciones
Campos separados _myfield
y _myfield_label
se utilizaron antes en elecciones. Ahora, hay un solo myfield
que se puede utilizar tanto para comparaciones independientes del entorno local como para obtener la etiqueta específica del entorno local.
Eliminar y agregar tarjetas de datos de elección
Le recomendamos eliminar las tarjetas de datos existentes y volver a agregarlas para que funcionen con su elección. Por ejemplo, si está trabajando con la tabla Cuenta y la opción Categoría, verá que la propiedad DataField de la tarjeta de datos se estableció en _accountcategorycode_label
. En la lista de campos puede ver que la tarjeta de datos tiene un tipo de Cadena:
Con la nueva característica Mejora de la experiencia de origen de datos y las vistas de Microsoft Dataverse ya no verá _accountcategorycode_label
. Se reemplaza por accountcategorycode
. La tarjeta ahora está marcada como personalizada y verá errores. Retire la tarjeta de datos antigua y agregue de nuevo la Elección. La nueva tarjeta de datos es consciente de Elección.
Editar las expresiones del filtro de opciones para usar una nueva sintaxis
Anteriormente, si deseaba usar un valor de Opción en una expresión de filtro, necesitaría usar el campo Valor. Por ejemplo:
Filter(Account,'Category Value' = "1")
Deberá editar esta fórmula. El identificador de texto de elección ya no se usa para el valor. Esta expresión debe actualizarse a:
Filter(Account, Category= ‘Category (Accounts)’.’Preferred Customer’)
'Categoría(cuentas)' es el nombre de la enumeración que se utiliza en el campo Categoría de la tabla Cuentas. Esta es una opción local. Puede leer más sobre las opciones locales y globales aquí: Opciones globales.
Edición de declaraciones de parches de opciones para usar una nueva sintaxis
A continuación se muestra un ejemplo de una declaración de parche anterior para elegir:
Patch( Accounts, First(Accounts), { ‘Category Value’: 1 } ) )
Deberá actualizar sus instrucciones para seguir este formulario:
Patch( Accounts, First(Accounts), { Category: ‘Category (Accounts)’.’Preferred Customer’ } )
Desambiguación de elección
Si el nombre de una elección campo y el nombre de la elección es el mismo, deberá eliminar la ambigüedad de la fórmula. Para continuar usando el ejemplo de Código de categoría de cuentas, el @ implica utilizar la elección, no el campo.
Filter(Accounts, 'Category Code' = [@’Category Code’].'Preferred Customer')
Dos opciones
Eliminar y agregar tarjetas de datos Sí/No
Elminar las tarjetas de datos existentes y volver a agregarlas para que funcionen con su Sí/No. Los tipos de datos se reconocieron anteriormente como booleanos simples, como verdadero/activado y falso/desactivado sin etiquetas:
Con la nueva característica Mejora de la experiencia de origen de datos y las vistas de Microsoft Dataverse, su tarjeta ahora se marcará como personalizada y verá errores. Retire la tarjeta de datos antigua y agregue de nuevo la elección. Después de agregarlo, verá un control de edición con dos opciones de forma predeterminada.
Si prefiere el interruptor de alternancia para su campo booleano, puede desbloquear la tarjeta de datos y reemplazar el control en la tarjeta de datos con un control de alternancia. También tendrá que establecer estas propiedades en este interruptor.
Toggle1.Default = ThisItem.’Do not allow Bulk Emails’
Toggle1.TrueText = ‘Do not allow Bulk Emails (Accounts)’.’Do Not Allow’
Toggle1.FalseText = ‘Do not allow Bulk Emails (Accounts)’.Allow
DataCard.Value = If( Toggle1.Value,
‘Do not allow Bulk Emails (Accounts)’.’Do Not Allow’,
‘Do not allow Bulk Emails (Accounts)’.Allow )
Refinamiento de instrucciones de parche de opción Dos
Mediante la función Patch con la opción Dos debería funcionar "tal cual". Es compatible con el uso directo de verdadero y falso, similar al booleano. La única diferencia es que si antes había puesto el valor en un control Etiqueta que mostraba verdadero y falso, ahora mostrará las etiquetas de la opción Dos.
Búsquedas polimórficas
Las directrices siguientes ayudan a actualizar su aplicación si hace referencia a campos polimórficos. Las búsquedas polimórficas, del mismo campo, admiten referencias a un conjunto restringido de varias tablas. Al igual que las referencias en otros idiomas, una referencia de registro es un puntero a un registro específico en una tabla específica. Una referencia de registro lleva la información de la tabla, lo que le permite apuntar a un registro en otras tablas, lo que difiere de una búsqueda normal que solo puede apuntar a registros en una tabla.
Obtener acceso, establecer y filtrar por el campo Propietario de un registro
Por ejemplo, el campo Propietario en una tabla puede referirse a un registro en la tabla Usuarios o Equipos. El mismo campo de búsqueda en diferentes registros podría hacer referencia a registros en diferentes tablas.
Polimórfico con Filter y Patch
Las referencias de registro se pueden usar como un registro completo:
Filter( Accounts, Owner = First( Teams ) )
Patch( Accounts, First( Accounts ), { Owner: First( Users ) })
Polimórfico con una Galería que muestra el nombre del propietario
Dado que una referencia puede apuntar a diferentes tablas, debe ser específico. No puede usar ThisItem.Owner.Name ya que el nombre campo en la tabla Equipo es Nombre de equipo y el campo nombre en la tabla Usuario es Nombre completo. Power Apps no sabrá a qué tipo de búsqueda se refiere hasta que ejecute la aplicación.
Para solucionar ese problema:
- Agregue los orígenes de datos para los tipos de entidad que podría ser el Propietario, en el ejemplo actual, Usuarios y Equipos.
- Utilice más funciones para dejar clara su intención.
Hay dos nuevas funciones que puede utilizar:
- IsType: comprueba si una referencia de registro es de un tipo de tabla en particular.
- AsType: comprueba si una referencia de registro es de un tipo de tabla en particular.
Con estas funciones, puede escribir una fórmula que muestre el nombre del propietario tomado de dos campos con nombres diferentes, según el tipo de tabla del propietario:
If( IsType( ThisItem.Owner, [@Teams]),
AsType( ThisItem.Owner, [@Teams]).'Team Name',
AsType( ThisItem.Owner, [@Users]).'Full Name' )
El operador de desambiguación global para [@Teams]
y [@Users]
se utiliza para asegurarse de que hace referencia al tipo de tabla global. Aunque en este caso no es necesario, se recomienda siempre ser claro. Las relaciones de uno a varios suelen entrar en conflicto en el ámbito de registros de la galería, y esta práctica evita esa confusión.
Acceda y configure el campo Nombre de la empresa (un tipo de datos de Cliente) de la tabla Contactos
Un campo de búsqueda Cliente es otra búsqueda polimórfica que es muy similar a Propietario. Solo puede tener un campo Propietario por tabla. Pero una tabla puede incluir cero, uno o más campos de búsqueda de clientes. La tabla del sistema Contactos incluye el campo Nombre de empresa, que es un campo de búsqueda Cliente. Lea Mostrar los campos de un cliente para obtener más información.
Acceda y configure el campo Respecto de las tablas de actividad como faxes, llamadas telefónicas, mensajes de correo electrónico
Las búsquedas polimórficas no se limitan a Cuentas y Contactos. La lista de tablas se puede ampliar con tablas personalizadas. Para el ejemplo, la tabla faxes tiene una columna de búsqueda polimórfica Con respecto a, que puede hacer referencia a Cuentas, Contactos y otras tablas. Si tiene una galería con origen de datos establecido en Faxes, puede usar la siguiente fórmula para mostrar el nombre asociado con el campo de búsqueda Referente a.
If( IsBlank( ThisItem.Regarding ), "",
IsType( ThisItem.Regarding, [@Accounts] ),
"Account: " & AsType( ThisItem.Regarding, [@Accounts] ).'Account Name',
IsType( ThisItem.Regarding, [@Contacts] ),
"Contacts: " & AsType( ThisItem.Regarding, [@Contacts] ).'Full Name',
"" )
Lea Campos de búsqueda Referente a y Relaciones referente a para obtener más información.
Obtener acceso a la lista de todas las actividades para un registro
En Dataverse, tablas como Faxes, Tareas, Correos electrónicos, Notas, Llamadas telefónicas, Cartas, y Chats están designadas como actividades. También puede crear sus propias tablas de actividad personalizadas.
Puede mostrar actividades de un tipo específico (como faxes o impuestos) o todas las actividades asociadas con una tabla, como una cuenta. Agregue la tabla de actividades y otras tablas individuales cuyos datos planea mostrar en la aplicación de lienzo.
Cada vez que agrega un registro a (por ejemplo, la tabla Tareas), se crea un registro en la tabla Actividad con los campos comunes en todas las tablas de actividad. Lea tabla de actividades para más detalles.
El siguiente ejemplo muestra que al seleccionar una cuenta, se mostrarán todas las actividades asociadas a esa cuenta:
Los registros se muestran desde la tabla Actividad. No obstante, aún puede usar la función IsType para identificar qué tipo de actividad son. De nuevo, antes de usar IsType con un tipo de tabla, debe agregar el origen de datos necesario.
Al usar esta fórmula, puede mostrar el tipo de registro en un control de etiqueta dentro de la galería:
If( IsType( ThisItem, [@Faxes] ), "Fax",
IsType( ThisItem, [@'Phone Calls'] ), "Phone Call",
IsType( ThisItem, [@'Email Messages'] ), "Email Message",
IsType( ThisItem, [@Chats] ), "Chat",
"Unknown")
Obtenga acceso a la lista de Notas para un registro
Cuando crea una tabla, puede habilitar los archivos adjuntos. Si selecciona la casilla de verificación para habilitar archivos adjuntos, creará una relación Con respecto a con la tabla Notas, como muestra este gráfico para la tabla Cuentas:
Filtering
No puede leer ni filtrar en función del campo Referente a. No obstante, está disponible la relación inversa de uno a varios de Notas. Para enumerar todas las notas asociadas a una tabla de cuentas, puede utilizar la siguiente fórmula:
First( Accounts ).Notes
Ruta
No puede establecer el campo Notas en una tabla usando Parche. Para agregar un registro a la tabla de Notas de una tabla, puede usar la función Relacionar. Primero cree la nota, como en este ejemplo:
Relate( ThisItem.Notes, Patch( Notes, Defaults( Notes ), { Title: "A new note", isdocument:'Is Document (Notes)'.No } ) )
Pasos siguientes
Vea también
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).