Comprender los orígenes de datos para las aplicaciones de lienzo

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 para la Empresa. Las aplicaciones obtienen acceso a estos orígenes de datos a través de Conexiones.

En este artículo se describen los diferentes tipos de orígenes de datos y cómo trabajar con orígenes de datos de tabla.

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 para la Empresa, 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, resulta muy fácil crear una aplicación que lea y escriba datos en un origen de datos. Para empezar, lea el artículo 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 está en la propia aplicación y no tiene el respaldo de una conexión a un servicio en la nube, por lo que la información no se puede compartir entre los distintos dispositivos de un mismo usuario ni entre usuarios. Las colecciones se pueden cargar y guardar localmente.

Tipos de tablas

Las tablas internas de una aplicación de Power Apps son valores fijos, como un número o una cadena son un valor. Las tablas internas no se almacenan en ningún lugar, solo 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.

    Nota

    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.

Creación de 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, los orígenes de datos de la colección se pueden crear y modificar dentro de una aplicación, pero son temporales.

Visualización de uno o varios registros

Flujo de información cuando una aplicación lee la información en un origen de datos. El diagrama anterior 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

En la sección anterior se ha explicado cómo leer un origen de datos. Tenga en cuenta que las flechas del diagrama anterior son unidireccionales. Los cambios en un origen de datos no se recuperan a través de la 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.

Tenga en cuenta que, para modificar un registro existente de un origen de datos, debe provenir originalmente del origen de datos. El registro puede haber viajado a través de 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. Esto es importante porque 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.

Flujo de información para actualizar un origen de datos. El 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 normalmente se establece en el campo del registro ThisItem del formulario. Luego, los controles de la tarjeta de entrada tomarán sus valores de entrada de Default. Normalmente este comportamiento no es preciso modificarlo.
  • 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 este comportamiento no es preciso modificarlo.
  • 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 ello:

  • Comentarios inmediatos para el usuario. El mejor momento para corregir un problema es cuando ocurre, cuando está fresco en la mente del usuario. Cada vez que se toca o se pulsa una tecla, puede texto en rojo que identifica un problema.
  • 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 y el que usuario debe esperar.

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.

Control de errores

Ya ha validado el registro. Ha llegado el momento de actualizar el registro 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. Es preciso que responda 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 mostrar todos los clientes cuyo StatusCode sea "Platinum" en New York City. Y supongamos también que la tabla de clientes contiene millones de registros.

Lógicamente, no desea incorporar todos esos millones de clientes a la aplicación para elegir los que desee. Lo que realmente desea es que la elección se realice dentro del servicio en la nube en que está almacenada la 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. Para aprender a hacerlo, lea la información existente acerca de la delegación.

Colecciones

Las colecciones son un tipo especial de origen de datos. Se encuentran en la propia aplicación y no tienen el respaldo de una conexión a un servicio en la nube, por lo que la información no se puede compartir entre los distintos dispositivos de un mismo usuario ni entre usuarios. Funcionan como cualquier otro origen de datos, con algunas excepciones:

  • Las colecciones se pueden crear dinámicamente con la función Collect. No es preciso establecerse con antelación, como debe hacerse con orígenes de datos basados en conexión.
  • 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.

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