Dependencias de datos y consideraciones de tiempo - AWS Estudio de aplicaciones

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Dependencias de datos y consideraciones de tiempo

Al crear aplicaciones complejas en App Studio, es fundamental comprender y gestionar las dependencias de datos entre los diferentes componentes de datos, como los formularios, las vistas de detalles y los componentes basados en la automatización. Es posible que los componentes de datos y las automatizaciones no completen la recuperación o ejecución de los datos al mismo tiempo, lo que puede provocar problemas de tiempo, errores y comportamientos inesperados. Si eres consciente de los posibles problemas de sincronización y sigues las prácticas recomendadas, puedes crear experiencias de usuario más fiables y coherentes en tus aplicaciones de App Studio.

Algunos posibles problemas son los siguientes:

  1. Conflictos de tiempo de renderización: los componentes de datos pueden renderizarse en un orden que no se alinea con sus dependencias de datos, lo que podría provocar inconsistencias o errores visuales.

  2. Tiempo de ejecución de la automatización: las tareas de automatización pueden completarse antes de que los componentes se hayan cargado por completo, lo que provoca errores de ejecución en tiempo de ejecución.

  3. Bloqueos de componentes: los componentes que funcionan con automatizaciones pueden bloquearse si las respuestas no son válidas o si la automatización no ha terminado de ejecutarse.

Ejemplo: detalles del pedido e información del cliente

Este ejemplo demuestra cómo las dependencias entre los componentes de los datos pueden provocar problemas de sincronización y posibles errores en la visualización de los datos.

Considere una aplicación con los dos componentes de datos siguientes en la misma página:

  • Un componente de detalle (orderDetails) que busca los datos de los pedidos.

  • Un componente de detalle (customerDetails) que muestra los detalles del cliente relacionados con el pedido.

En esta aplicación, hay dos campos en el componente de orderDetails detalles, configurados con los siguientes valores:

// 2 text fields within the orderDetails detail component // Info from orderDetails Component {{ui.orderDetails.data[0].name}} // Info from customerDetails component {{ui.customerDetails.data[0].name}} // Problematic reference

En este ejemplo, el orderDetails componente intenta mostrar el nombre del cliente haciendo referencia a los datos del customerDetails componente. Esto es problemático, ya que el orderDetails componente puede renderizarse antes de customerDetails que haya obtenido sus datos. Si la recuperación de los datos del customerDetails componente se retrasa o falla, el orderDetails componente mostrará información incompleta o incorrecta.

Mejores prácticas de temporización y dependencia de los datos

Usa las siguientes prácticas recomendadas para mitigar los problemas de dependencia de los datos y de temporización en tu aplicación de App Studio:

  1. Usa la representación condicional: solo renderiza componentes o muestra datos cuando confirmes que están disponibles. Utilice sentencias condicionales para comprobar la presencia de datos antes de mostrarlos. En el siguiente fragmento se muestra un ejemplo de sentencia condicional:

    {{ui.someComponent.data ? ui.someComponent.data.fieldName : "Loading..."}}
  2. Gestione la visibilidad de los componentes secundarios: en el caso de componentes como Stepflow, Form o Detail que representan los componentes secundarios antes de que se carguen sus datos, configure manualmente la visibilidad de los componentes secundarios. En el siguiente fragmento se muestra un ejemplo de cómo configurar la visibilidad en función de la disponibilidad de los datos del componente principal:

    {{ui.parentComponent.data ? true : false}}
  3. Utilice consultas de unión: cuando sea posible, utilice consultas de unión para obtener datos relacionados en una sola consulta. Esto reduce el número de recuperaciones de datos independientes y minimiza los problemas de temporización entre los componentes de datos.

  4. Implemente la gestión de errores en las automatizaciones: Implemente una gestión sólida de los errores en sus automatizaciones para gestionar con fluidez los escenarios en los que los datos esperados no estén disponibles o se reciban respuestas no válidas.

  5. Utilice el encadenamiento opcional: al acceder a propiedades anidadas, utilice el encadenamiento opcional para evitar errores si una propiedad principal no está definida. En el siguiente fragmento se muestra un ejemplo de encadenamiento opcional:

    {{ui.component.data?.[0]?.fieldSystemName}}