Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En Power Apps, la mayoría de las aplicaciones de lienzo utilizan información externa que está almacenada en servicios en la nube denominados Orígenes de datos. Uno de los ejemplos más frecuentes son tablas que pertenecen a archivos de Excel guardados en OneDrive. Las aplicaciones obtienen acceso a estos orígenes de datos a través de Conexiones.
En este artículo se describen los distintos tipos de orígenes de datos y cómo trabajar con orígenes de datos de tabla, como cómo controlar la delegación, el control de errores y los problemas comunes.
Resulta muy fácil crear una aplicación que realice operaciones básicas de lectura y escritura en un origen de datos. Pero a veces desea más control sobre cómo fluyen los datos dentro y fuera de la aplicación. En este artículo se describe cómo proporcionan más control las funciones Patch, DataSourceInfo, Validate y Errors.
Tipos de orígenes de datos
Los orígenes de datos pueden estar conectados a un servicio en la nube, o bien pueden ser locales a una aplicación.
Orígenes de datos conectados
Los orígenes de datos más frecuentes son las tablas, que se pueden usar tanto para recuperar como para guardar información. Puede utilizar las conexiones con los orígenes de datos para leer y escribir información en libros de Microsoft Excel, listas creadas usando Microsoft Lists, bibliotecas de SharePoint, tablas SQL y muchos otros formatos, que pueden guardarse en servicios en la nube tales como OneDrive, DropBox y SQL Server.
Los orígenes de datos distintos de las tablas incluyen el correo electrónico, los calendarios, Twitter y las notificaciones, pero en este artículo no se habla de otros tipos de orígenes de datos.
Orígenes de datos locales
Con los controles Galería, Mostrar formulario y Editar formulario, puede crear una aplicación que lea y escriba datos desde un origen de datos. Para empezar, consulte Introducción a los formularios de datos.
Cuando se solicita a Power Apps que cree una aplicación a partir de los datos, se utilizan estos controles. En segundo plano, la aplicación utiliza una tabla interna para almacenar y manipular los datos procedentes del origen de datos.
Un tipo especial de origen de datos es la colección, que es local para la aplicación y no está respaldada por una conexión a un servicio en la nube. Por lo tanto, la información no se puede compartir entre dispositivos para el mismo usuario o entre usuarios. Las colecciones se pueden cargar y guardar localmente.
Tipos de tablas
Las tablas internas de una aplicación son valores fijos, como un número o una cadena son un valor. Las tablas internas no se almacenan en ningún lugar, pero existen en la memoria de la aplicación. La estructura y los datos de una tabla no se pueden modificar directamente. En su lugar, lo que puede hacer es crear una nueva tabla a través de una fórmula: dicha fórmula se usa para hacer una copia modificada de la tabla original.
Las tablas externas se almacenan en un origen de datos para su posterior recuperación y uso compartido. Power Apps proporciona "conexiones" para leer y escribir los datos almacenados. En una conexión se puede acceder a varias tablas de información. Seleccione las tablas que desea utilizar en la aplicación y cada una de ellas pasará a ser un origen de datos independiente.
Para obtener más información, consulte Trabajar con tablas, donde se proporcionan más detalles acerca de las tablas internas, pero también se explican las tablas externas que residen en un servicio en la nube.
Trabajar con tablas
Los orígenes de datos en tabla se pueden usar del mismo modo que se usa una tabla interna de Power Apps. Al igual que una tabla interna, cada origen de datos tiene registros, columnas y propiedades que se pueden usar en las fórmulas. Además:
El origen de datos tiene los mismos nombres de columna y tipos de datos que la tabla subyacente de la conexión.
Note
Para orígenes de datos de SharePoint y Excel que contienen nombres de columna con espacios, Power Apps los sustituye por "_x0020_". Por ejemplo, el Nombre de columna en SharePoint o Excel aparecerá como "Column_x0020_Name" en Power Apps cuando se muestre en el diseño de datos o se use en una fórmula.
El origen de datos se carga desde el servicio automáticamente cuando se carga la aplicación. Con la función Refresh se puede forzar la actualización de los datos.
Cuando los usuarios ejecutan una aplicación, pueden crear, modificar y eliminar registros, y aplicar esos cambios posteriormente a la tabla subyacente del servicio.
- Los registros se pueden crear con las funciones Patch y Collect.
- Los registros se pueden modificar con las funciones Patch, Update y UpdateIf.
- Los registros se pueden quitar con las funciones Remove y RemoveIf.
- Los errores que se producen al trabajar con un origen de datos están disponibles a través de la función Errors.
Las funciones DataSourceInfo, Defaults y Validate proporcionan información acerca del origen de datos que se puede usar para optimizar la experiencia del usuario.
Crear orígenes de datos
Power Apps no se puede usar para crear un origen de datos conectado ni para modificar su estructura; el origen de datos ya debe existir en algún servicio. Por ejemplo, para crear una tabla en un libro de Excel almacenado en OneDrive, primero es preciso usar Excel Online en OneDrive para crear un libro. Después, se crea una conexión a él desde la aplicación.
Sin embargo, las fuentes de datos de la colección se pueden crear y modificar dentro de una aplicación, aunque solo son temporales.
Visualización de uno o varios registros
Este diagrama muestra el flujo de información cuando una aplicación la lee de un origen de datos:
- La información se almacena y comparte a través de un servicio de almacenamiento (en este caso, Microsoft Lists o SharePoint Online).
- Una conexión hace que esta información esté disponible para la aplicación. La conexión se encarga de autenticación del usuario que va a acceder a la información.
- Cuando se inicia la aplicación, o cuando se pulsa la función Refresh, la información se extrae de la conexión y llega a un origen de datos de la aplicación para su uso local.
- Las fórmulas se usan para leer la información y exponerla en controles que el usuario pueda ver. Para mostrar los registros de un origen de datos, use una galería en una pantalla y conecte la propiedad Items al origen de datos: Galería.Items = DataSource. Para conectar los controles dentro de la galería a la galería, use la propiedad Default de los controles.
- El origen de datos también es una tabla. Por tanto, puede usar Filter, Sort, AddColumns y otras funciones para refinar y aumentar el origen de datos antes de usarlo en su conjunto. También puede usar Lookup, First, Last y otras funciones para trabajar con los registros individuales.
Modificación de un registro
Las flechas del diagrama anterior son unidireccionales. Los cambios en un origen de datos no se reflejan a través de las mismas fórmulas con las que se recuperaron los datos. En su lugar, se utilizan fórmulas nuevas. A menudo no se utiliza la misma pantalla para editar un registro que para explorar los registros, sobre todo en los dispositivos móviles.
Para modificar un registro existente de un origen de datos, debe provenir originalmente del origen de datos. El registro puede aparecer en una galería, una variable de contexto y cualquier número de fórmulas, pero su origen debe de poder rastrearse hasta el origen de datos. Hay información adicional que acompaña al registro que lo identifica de forma única, lo que garantiza que el registro que se modifica es el correcto.
Este diagrama anterior muestra el flujo de información para actualizar un origen de datos:
- Un control Editar formulario proporciona un contenedor para las tarjetas de entrada, que se componen de controles de entrada de usuario, como un control de entrada de texto o un control deslizante. Las propiedades DataSource e Item se utilizan para identificar el registro que se va a editar.
- Cada tarjeta de entrada tiene una propiedad Default, que se establece en el campo del registro ThisItem del formulario. Los controles de la tarjeta de entrada toman sus valores de entrada de Default. Normalmente, no necesitas modificar esta configuración por defecto.
- Cada tarjeta de entrada expone una propiedad Update. Dicha propiedad asigna la entrada del usuario a un campo específico del registro para reescribir en el origen de datos. Normalmente, no es necesario modificar esta propiedad.
- Un botón o un control de imagen de la pantalla permite al usuario guardar los cambios en el registro. La fórmula OnSelect del control llama a la función SubmitForm para realizar este trabajo. SubmitForm lee todas las propiedades Update de las tarjetas y lo utiliza para reescribir en el origen de datos.
- A veces surgirán problemas. Una conexión de red puede estar inactiva o el servicio realiza una comprobación de validación sin que lo sepa la aplicación. Las propiedades Error y ErrorKind del control del formulario hacen que esta información está disponible, por lo que se puede mostrar al usuario.
Para lograr un mayor control sobre el proceso, también se pueden usar las funciones Patch y Errors. El control Editar formulario expone una propiedad Updates para que pueda leer los valores de los campos del formulario. Esta propiedad también se puede utilizar para llamar a un conector personalizado en una conexión, omitiendo completamente las funciones Patch y SubmitForm.
Validación
Antes de realizar cualquier cambio en un registro, la aplicación debe hacer todo lo posible por asegurarse de que el cambio será aceptable. Hay dos motivos para comprobarlo:
- Comentarios inmediatos para el usuario. El mejor momento para corregir un problema es cuando ocurre, cuando está fresco en la mente del usuario. Literalmente con cada toque o pulsación de tecla, puede aparecer texto en rojo que identifique un problema con su entrada.
- Menor tráfico de red y menor latencia de los usuarios. La detección de un mayor número de problemas en la aplicación implica que habrá menos conversaciones a través de la red para detectar y solucionar problemas. Cada conversación lleva su tiempo durante el cual el usuario debe esperar antes de poder continuar.
Power Apps ofrece dos herramientas para la validación:
- El origen de datos puede proporcionar información sobre lo que es valido, y lo que no lo es. Por ejemplo, los números pueden tener valores mínimo y máximo, y puede que se requieran una o varias entradas. Para acceder a esta información, puede usar la función DataSourceInfo.
- La función Validate usa esta misma información para comprobar el valor de una sola columna o de todo un registro.
Gestión de errores
Ahora que ha validado su registro, actualícelo con Patch.
Sin embargo, aún puede haber un problema. La red no está activa, se produce un error en la validación en el servicio o el usuario no tiene los permisos adecuados, por nombrar algunos de los posibles errores con que puede toparse la aplicación. Su aplicación debe responder correctamente en situaciones de error, es decir, que proporcione al usuario no solo información, sino también una forma de salir de dichas situaciones.
Si los errores se producen en un origen de datos, la aplicación registra automáticamente la información del error y la pone a disposición del usuario a través de la función Errors. Los errores están asociados a los registros que tenían los problemas. Si el problema puede corregirlo el usuario, como por ejemplo, un problema de validación, puede volver a enviar el registro y los errores desaparecerán.
Si se produce un error cuando un registro se crea con Patch o Collect, no hay registro con los que se puedan asociar los errores. En este caso, la función Patch devolverá un espacio en blanco que puede utilizarse como argumento de registro en Errors. Los errores de creación se eliminan con la siguiente operación.
La función Errors devuelve una tabla de información del error. Dicha información puede incluir información de una columna, en caso de que el error se pueda atribuir a una columna concreta. Utilice mensajes de error de nivel de columna en los controles de etiqueta que estén cerca del lugar en que se encuentra la columna en la pantalla de edición. Utilice mensajes de error de nivel de registro donde el valor de Columna en la tabla de errores esté en blanco, en una ubicación próxima al botón Guardar de todo el registro.
Trabajar con orígenes de datos grandes
Cuando se crean informes de orígenes de datos de gran tamaño (quizás millones de registros), se desea minimizar el tráfico de red. Supongamos que desea informar sobre todos los Clientes que tienen un StatusCode de Platinum en la ciudad de Nueva York. Su tabla de clientes contiene millones de registros.
No quieres traer a esos millones de clientes a tu aplicación y luego elegir los que quieras. La elección debería ocurrir dentro del servicio en la nube donde está almacenada su tabla, y enviar a través de la red solo los registros seleccionados.
Aunque no todas, muchas de las funciones que puede usar para elegir los registros se pueden delegar, lo que significa que se ejecutan en el servicio en la nube. Más información sobre Delegación.
Importante
De forma predeterminada, Power Apps recupera solo los primeros registros 500 de un origen de datos. Puede aumentar este límite a un máximo de 2000 registros en la configuración de la aplicación. Si el origen de datos contiene más registros y la fórmula no es totalmente delegable, aparece un triángulo de advertencia de delegación amarilla en Power Apps Studio. Cuando vea esta advertencia, es posible que la aplicación no devuelva todos los registros coincidentes en tiempo de ejecución. Para evitar la pérdida de datos en grandes conjuntos de datos, use funciones delegables como Filter y Sort con orígenes de datos admitidos o considere la posibilidad de usar Microsoft Dataverse, lo que tiene compatibilidad con la delegación más amplia.
Identificar y resolver avisos de delegación
Una advertencia sobre delegación a menudo aparece en la barra de fórmulas como un triángulo amarillo cuando Power Apps no puede delegar una operación de fórmula en la fuente de datos, pero no todos los casos no delegables muestran esta advertencia. Para comprobar si una fórmula es delegable:
- Seleccione el control o la fórmula que procesa el origen de datos.
- Busque un icono de triángulo amarillo en Power Apps Studio.
- Pase el cursor sobre el triángulo para leer el mensaje de advertencia de delegación.
Para resolver problemas de delegación:
- Reemplace funciones no delegables (como Search para las columnas de texto de SharePoint) por alternativas delegables siempre que sea posible.
- Cambie a Microsoft Dataverse como origen de datos para obtener la compatibilidad con la delegación más amplia.
- Use vistas del lado servidor (para SharePoint) o procedimientos almacenados (para SQL) para filtrar previamente los datos.
- Para solucionar problemas de delegación que no están marcados, use Live Monitor en Herramientas Avanzadas para inspeccionar las consultas que envía Power Apps y los datos devueltos de cada origen de datos. Para obtener más información, consulte Depuración de aplicaciones de lienzo con Monitor en directo.
Collections
Las colecciones son un tipo especial de origen de datos. Son locales para la aplicación y no están respaldados por una conexión a un servicio en la nube. Por lo tanto, la información no se puede compartir entre dispositivos para el mismo usuario o entre usuarios.
Las colecciones funcionan como cualquier otro origen de datos, con algunas excepciones:
- Las colecciones se pueden crear dinámicamente con la función Collect. No tienen que establecerse con anticipación, como lo hacen los orígenes de datos basadas en conexiones.
- Las columnas de una colección pueden modificarse en cualquier momento mediante la función Collect.
- Las colecciones permiten duplicar registros. En una colección puede haber más de una copia del mismo registro. Las funciones como Remove operarán en la primera coincidencia que encuentran, salvo que se haya usado el argumento Todos.
- Puede usar las funciones SaveData y LoadData para guardar y volver a cargar una copia de la colección. La información se almacena en una ubicación privada a la que no pueden acceder otros usuarios, aplicaciones o dispositivos.
- Puede usar los controles Exportar e Importar para guardar y volver a cargar una copia de la colección en un archivo con el que el usuario puede interactuar.
Para obtener más información acerca de cómo trabajar con una colección como origen de datos, consulte Creación y actualización de una colección en una aplicación.
Las colecciones se usan normalmente para almacenar el estado global de la aplicación. Para conocer las opciones disponibles para administrar el estado, consulte Trabajar con variables.
Solución de problemas comunes del origen de datos
Mi galería solo muestra 500 registros
De forma predeterminada, Power Apps recupera solo los primeros 500 registros de un origen de datos. Si en su galería faltan registros, es probable que tenga un problema de delegación. Busque una advertencia de triángulo amarillo en la fórmula Elementos de la galería y asegúrese de que la fórmula de filtro que usa es delegable para el origen de datos. Consulte Trabajar con orígenes de datos de gran tamaño para conocer los pasos de resolución.
Los nombres de columna muestran x0020 en mis fórmulas
Si el SharePoint list o tabla de Excel tiene nombres de columna con espacios (por ejemplo, My Column), Power Apps reemplaza los espacios por _x0020_ en fórmulas (por ejemplo, MyTable.My_x0020_Column). Este es el comportamiento esperado. Cambie el nombre de la columna de los datos de origen para quitar espacios o siga usando el nombre codificado en las fórmulas.
Los cambios en el origen de datos no aparecen en mi aplicación
Si los datos subyacentes han cambiado externamente (por ejemplo, se ha agregado un registro en SharePoint), la aplicación no detecta automáticamente los cambios mientras se ejecuta. Use la función Refresh para forzar a la aplicación a volver a cargar los datos actuales. Por ejemplo, agregue un botón con OnSelect = Refresh(MyDataSource).
¿Cuándo debo usar Patch en lugar de SubmitForm?
Use SubmitForm cuando utilice un control Edit form: controla la validación, la asignación de campos y la visualización de errores automáticamente. Utilice Patch cuando lo necesite:
- Actualice un registro sin un control de formulario.
- Actualice solo campos específicos sin afectar a otros usuarios.
- Escribir en varias fuentes de datos en una sola operación.
- Cree una experiencia de guardado completamente personalizada.
Información relacionada
- Visión general de delegación para aplicaciones de lienzo
- Funciones y orígenes de datos delegables en aplicaciones de canvas
- Descripción de los formularios de aplicación de lienzo
- Trabajar con tablas en aplicaciones canvas
- Trabajando con variables en aplicaciones canvas
- Crear y actualizar una colección en aplicaciones de lienzo