Hacer consultas de datos
El conector de Dataverse tiene algunas acciones diseñadas para recuperar datos de las tablas. En esta unidad, abordamos dos de las más habituales. La acción Obtener una fila por id. recupera una sola fila con el id. único que usted proporciona. Cuando no conoce el id. único, puede utilizar la acción Enumerar filas, que devuelve entre cero y muchas filas que coinciden con sus criterios de filtro.
Para ampliar las opciones de estas acciones, también tiene las acciones ... desde el entorno seleccionado, que le permiten usar las mismas acciones en un entorno diferente al que está generando. Exploremos algunas de las opciones disponibles para obtener datos.
Seleccionar columnas
La opción Seleccionar columnas limita las columnas que se devuelven de la acción. Debe configurar la lista de columnas en función de los datos que necesita en los pasos de flujo posteriores. Proporcionar una lista de columnas ayuda a que su flujo sea más eficiente. Asegúrese de utilizar el nombre lógico de la columna de la tabla, que puede encontrar en la sección Opciones avanzadas de las propiedades de la columna. Por ejemplo, si desea incluir las columnas Nombre y Apellido de la tabla Contacto, debe proporcionar la siguiente lista de columnas separadas por comas:
firstname,lastname
Especificar una lista de columnas limita las columnas que se muestran en contenido dinámico cuando configura pasos posteriores en el flujo. Si las columnas que espera no están visibles, marque la opción Seleccionar columnas en la acción que está recuperando los datos.
Expandir consulta
De forma predeterminada, cuando se ejecutan las acciones de recuperación de datos, solo recuperan datos de la tabla principal especificada en la acción. Puede utilizar la opción Expandir consulta para proporcionar una expresión de estilo OData para incluir datos de tablas relacionadas. Puede encontrar esta opción en Parámetros avanzados.
Por ejemplo, la tabla Cuenta tiene una relación con la tabla Contacto para indicar el contacto principal de la cuenta. El siguiente ejemplo muestra la expresión OData para incluir la columna de nombre completo y el id. del contacto principal en el resultado de la acción.
primarycontactid($select=contactid,fullname)
Si bien esta expresión incluye datos en el resultado de las acciones, no incluye las columnas de datos en el panel Contenido dinámico para su selección. Para utilizar los datos relacionados, debe utilizar una expresión de flujo de trabajo para acceder a los datos.
Usar la acción Obtener una fila por id.
Por lo general, usaría la acción Obtener una fila por id. para recuperar datos adicionales de la tabla de Dataverse como parte de una lógica de flujo. Por ejemplo, si la adición de una nueva fila de la tabla Cuenta desencadena su flujo, puede usar una acción Obtener una fila por id. para recuperar el correo electrónico del contacto principal relacionado. En ese ejemplo, no es necesario utilizar una acción Obtener una fila por id. para recuperar la cuenta porque los datos de la fila se proporcionan como salida del desencadenador.
Ocasionalmente, es posible que desee utilizar la acción Obtener una fila por id. nuevamente en su lógica de flujo para asegurarse de tener los datos más recientes. Por ejemplo, si su flujo se detuvo para un paso de aprobación, es posible que pasen un par de días desde la última vez que recuperó datos. Es posible que desee utilizar la acción Obtener una fila por id. para obtener los datos más recientes después de que se produzca la aprobación. Este enfoque evitaría que su flujo tomara medidas basadas en datos obsoletos.
Si el id. de la fila que planea crear en el paso puede ser nulo, su mejor acción sería completar una comprobación condicional del valor antes de ejecutar el paso Obtener una fila por id.. El paso falla si el id. de la fila es nulo. Otro error común es no tener permiso para leer los datos de la fila.
Usar la acción Enumerar filas
La acción Enumerar filas es importante porque puede proporcionar criterios simples o complejos para determinar qué filas de datos devuelve. La acción admite dos estilos para especificar este criterio: expresiones de estilo OData o Dataverse FetchXML. Puede utilizar ambos estilos de criterios para componer criterios simples y complejos. Básicamente, sus preferencias determinan qué estilo utilizar. Sin embargo, FetchXML cuenta con soporte de herramientas comunitarias que podrían facilitarle la creación de criterios más complejos.
Recuperar más de 5000 filas
De forma predeterminada, la acción no devuelve más de 5000 filas. Puede activar la característica Paginación desde la pestaña Configuración si necesita devolver más datos. Cuando activa la paginación, puede especificar un tamaño de página de hasta 100 000 filas. Cuando es posible más de una página de datos, debe gestionar manualmente las páginas de su flujo al obtener el token de paginación y transmitir la recuperación de las páginas posteriores. Para obtener más información, consulte Activar paginación.
Asegúrese de pensar en sus necesidades futuras porque alcanzar 5000 filas no produce un error. Además, no recibirá todos los datos. Cuando sea posible, componga sus criterios para producir los resultados más pequeños posibles para que su flujo los procese.
Utilice criterios de estilo OData
En la propiedad Filtrar filas de la acción, puede proporcionar un filtro de estilo OData para limitar las filas que se devuelven a las filas que coinciden con los criterios. Al redactar la expresión para la propiedad Filtrar filas, debe usar el nombre lógico de la columna, que puede encontrar en la sección Opciones avanzadas de la propiedad de la columna. La siguiente lógica es un ejemplo simple que filtra Contactos para devolver todas las filas con el nombre de John.
firstname eq 'John'
Además, puede utilizar operadores de filtro de consultas estándar y funciones de consulta. Por ejemplo, la siguiente lógica cambiaría el filtro para usar la función contain.
contains(firstname,'John')
Para obtener más información, consulte los ejemplos en operadores de filtro estándar y funciones de consulta.
Puede utilizar operadores lógicos como and, or y not. Por ejemplo, la siguiente lógica comprueba que la columna de ingresos esté dentro del rango 2001-99999.
revenue lt 100000 and revenue gt 2000
Puede utilizar paréntesis () con operadores lógicos para especificar la precedencia para poder evaluar una expresión compleja, de la siguiente manera:
(contains(name,'sample') or contains(name,'test')) and revenue gt 5000
También puede filtrar por datos relacionados. Por ejemplo, la siguiente expresión devolvería filas de la tabla de cuentas que tienen un contacto principal llamado Susanna.
primarycontactid/fullname eq 'Susanna (sample)'
Junto con la expresión Filtrar filas, la propiedad Ordenar por ayuda a determinar el orden de salida de las filas de la acción. Los nombres deben ser una lista de nombres de columnas lógicas separados por comas. Si solo se especifica el nombre de la columna, la columna se ordena en orden ascendente. Puede especificar un sufijo asc o desc para indicar un orden ascendente o descendente.
La propiedad Recuento de filas puede indicar cuántas filas se devuelven. Por ejemplo, si desea comprobar si existen filas coincidentes, no necesita devolver más de una fila.
Sugerencia
Al probar el flujo, puede establecer el Recuento de filas en 1 (u otro número pequeño) para acelerar las pruebas. Si su tabla tiene miles de líneas de datos, el uso de este parámetro puede ayudarle a solucionar rápidamente los problemas del flujo según lo va desarrollando.
Uso de criterios de estilo FetchXML
FetchXML es un lenguaje de consulta registrado de Dataverse y basado en XML que puede utilizar para consultar datos. Puede redactar en FetchXML y usarlo como criterio de filtro para la salida de las filas de la acción Enumerar filas. Puede redactar el XML manualmente o puede utilizar Búsqueda avanzada a partir de una aplicación basada en modelo de Power Apps para crear su filtro y, luego, descargar FetchXML.
FetchXML contiene el equivalente a las características Seleccionar columnas, Ordenar por, Ampliar consulta y Filtrar filas para los criterios de estilo OData.
La siguiente expresión es un ejemplo de FetchXML para filtrar la tabla Cuenta en filas con un estado activo y un nombre que contiene Contoso. Este ejemplo también devuelve el correo electrónico del contacto principal relacionado con la fila de la cuenta.
<fetch>
<entity name="account">
<attribute name="name"/>
<attribute name="address1_city"/>
<attribute name="primarycontactid"/>
<attribute name="telephone1"/>
<attribute name="accountid"/>
<order attribute="name" descending="false"/>
<filter type="and">
<condition attribute="statecode" operator="eq" value="0"/>
<condition attribute="name" operator="like" value="%Contoso%"/>
</filter>
<link-entity alias="accountprimarycontactidcontactcontactid" name="contact" from="contactid" to="primarycontactid" link-type="outer" visible="false">
<attribute name="emailaddress1"/>
</link-entity>
</entity>
</fetch>
Para obtener más información, consulte Usar FetchXML para crear una consulta.
Actualmente, las consultas de agregación no son compatibles cuando se utiliza la acción Enumerar filas con criterios FetchXML.