

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.

# Parámetros de página y automatización
<a name="paramters"></a>

Los parámetros son una potente función de AWS App Studio que se utiliza para transferir valores dinámicos entre distintos componentes, páginas y automatizaciones de la aplicación. Con los parámetros, puedes crear experiencias flexibles y contextuales, lo que hace que tus aplicaciones sean más receptivas y personalizadas. En este artículo se describen dos tipos de parámetros: los parámetros de página y los parámetros de automatización.

**Topics**
+ [Parámetros de página](parameters-page.md)
+ [Parámetros de automatización](parameters-automation.md)

# Parámetros de página
<a name="parameters-page"></a>

Los parámetros de página son una forma de enviar información entre páginas y, a menudo, se utilizan cuando se navega de una página a otra dentro de una aplicación de App Studio para mantener el contexto o transmitir datos. Los parámetros de página suelen constar de un nombre y un valor.

## Casos de uso de parámetros de página
<a name="parameters-pages-use-cases"></a>

Los parámetros de página se utilizan para transferir datos entre diferentes páginas y componentes de las aplicaciones de App Studio. Son especialmente útiles para los siguientes casos de uso:

1. **Búsqueda y filtrado**: cuando los usuarios buscan en la página de inicio de tu aplicación, los términos de búsqueda se pueden pasar como parámetros a la página de resultados, lo que permite que muestre solo los elementos filtrados relevantes. Por ejemplo, si un usuario busca*noise-cancelling headphones*, el parámetro con el valor se *noise-cancelling headphones* puede pasar a la página de listado de productos.

1. **Visualización de los detalles del artículo**: si un usuario hace clic en un listado, como un producto, el identificador único de ese artículo se puede pasar como parámetro a la página de detalles. Esto permite que la página de detalles muestre toda la información sobre el artículo específico. Por ejemplo, cuando un usuario hace clic en un producto de auriculares, el identificador único del producto se pasa como parámetro a la página de detalles del producto.

1. **Pasar el contexto del usuario en la navegación de la página**: a medida que los usuarios navegan entre las páginas, los parámetros pueden transmitir un contexto importante, como la ubicación del usuario, las categorías de productos preferidas, el contenido del carrito de compras y otros ajustes. Por ejemplo, cuando un usuario navega por las diferentes categorías de productos de tu aplicación, su ubicación y sus categorías preferidas se mantienen como parámetros, lo que proporciona una experiencia personalizada y coherente.

1. **Enlaces profundos**: usa los parámetros de la página para compartir o marcar un enlace a una página específica de la aplicación.

1. **Acciones de datos**: puede crear acciones de datos que acepten valores de parámetros para filtrar y consultar las fuentes de datos en función de los parámetros pasados. Por ejemplo, en la página de listado de productos, puedes crear una acción de datos que acepte `category` parámetros para buscar los productos relevantes.

## Consideraciones de seguridad de los parámetros de página
<a name="parameters-pages-security"></a>

Si bien los parámetros de página proporcionan una forma eficaz de pasar datos entre páginas, debe usarlos con precaución, ya que pueden exponer información confidencial si no se utilizan correctamente. Estas son algunas consideraciones de seguridad importantes que debes tener en cuenta:

1. **Evite exponer datos confidenciales en URLs**

   1. **Riesgo**: URLs incluidos los parámetros de acción de los datos, suelen estar visibles en los registros del servidor, el historial del navegador y otros lugares. Por ello, es fundamental evitar que se expongan datos confidenciales, como las credenciales de usuario, la información de identificación personal (PII) o cualquier otro dato confidencial, en los valores de los parámetros de la página.

   1. **Mitigación**: considere la posibilidad de utilizar identificadores que puedan asignarse de forma segura a los datos confidenciales. Por ejemplo, en lugar de pasar el nombre o la dirección de correo electrónico de un usuario como parámetro, podrías pasar un identificador único aleatorio que se pueda usar para obtener el nombre o el correo electrónico del usuario.

# Parámetros de automatización
<a name="parameters-automation"></a>

Los parámetros de automatización son una potente función de App Studio que se puede utilizar para crear automatizaciones flexibles y reutilizables mediante la transmisión de valores dinámicos de diversas fuentes, como la interfaz de usuario, otras automatizaciones o acciones de datos. Actúan como marcadores de posición que se sustituyen por valores reales cuando se ejecuta la automatización, lo que te permite usar la misma automatización con diferentes entradas cada vez. 

En una automatización, los parámetros tienen nombres únicos y puedes hacer referencia al valor de un parámetro mediante la variable params seguida del nombre del parámetro, por ejemplo. `{{params.customerId}}`

Este artículo proporciona una comprensión profunda de los parámetros de automatización, incluidos sus conceptos fundamentales, su uso y las mejores prácticas.

## Ventajas de los parámetros de automatización
<a name="parameters-automation-benefits"></a>

Los parámetros de automatización ofrecen varios beneficios, entre los que se incluye la siguiente lista:

1. **Reutilización**: al usar parámetros, puede crear automatizaciones reutilizables que se pueden personalizar con diferentes valores de entrada, lo que le permite reutilizar la misma lógica de automatización con diferentes entradas.

1. **Flexibilidad**: en lugar de codificar valores de forma rígida en una automatización, puede definir parámetros y proporcionar valores diferentes cuando sea necesario, lo que hace que sus automatizaciones sean más dinámicas y adaptables.

1. **Separación de preocupaciones**: los parámetros ayudan a separar la lógica de automatización de los valores específicos utilizados, lo que promueve la organización y el mantenimiento del código.

1. **Validación**: cada parámetro tiene un tipo de datos, como cadena, número o booleano, que se valida en tiempo de ejecución. Esto garantiza que las solicitudes con tipos de datos incorrectos se rechacen sin necesidad de un código de validación personalizado.

1. **Parámetros opcionales y obligatorios**: puede designar los parámetros de automatización como opcionales o obligatorios. Se deben proporcionar los parámetros obligatorios al ejecutar la automatización, mientras que los parámetros opcionales pueden tener valores predeterminados o omitirse. Esta flexibilidad le permite crear automatizaciones más versátiles que pueden gestionar diferentes escenarios en función de los parámetros proporcionados.

## Escenarios y casos de uso
<a name="parameters-automation-scenarios"></a>

### Escenario: recuperación de detalles del producto
<a name="parameters-automation-scenario-product-details"></a>



Imagine que tiene una automatización que recupera los detalles del producto de una base de datos en función de un identificador de producto. Esta automatización podría tener un parámetro llamado`productId`.

El `productId` parámetro actúa como un marcador de posición que puedes rellenar con el valor real del identificador del producto al ejecutar la automatización. En lugar de codificar un identificador de producto específico en la automatización, puedes definir el `productId` parámetro e introducir diferentes valores de identificador de producto cada vez que ejecutes la automatización.

Puedes llamar a esta automatización a partir de la fuente de datos de un componente, pasando el ID del producto seleccionado como `productId` parámetro mediante la sintaxis de corchetes dobles:. `{{ui.productsTable.selectedRow.id}}` De esta forma, cuando un usuario selecciona un producto de una tabla (`ui.productsTable`), la automatización recuperará los detalles del producto seleccionado pasando el identificador de la fila seleccionada como `productId` parámetro.

Como alternativa, puedes invocar esta automatización desde otra automatización que recorra una lista de productos y recupere los detalles de cada producto pasando el identificador del producto como parámetro. `productId` En este escenario, el valor del `productId` parámetro se proporcionaría dinámicamente a partir de la `{{product.id}}` expresión en cada iteración del bucle.

Al utilizar el `productId` parámetro y la sintaxis de corchetes dobles, puede hacer que esta automatización sea más flexible y reutilizable. En lugar de crear automatizaciones independientes para cada producto, puedes tener una única automatización que pueda recuperar los detalles de cualquier producto simplemente proporcionando el identificador de producto correspondiente como valor del parámetro de diferentes fuentes, como los componentes de la interfaz de usuario u otras automatizaciones.

### Escenario: manejo de parámetros opcionales con valores alternativos
<a name="parameters-automation-scenario-optional-parameters"></a>

Consideremos un escenario en el que tiene una entidad de «Tarea» con una columna obligatoria de «Propietario», pero desea que este campo sea opcional en la automatización y proporcione un valor alternativo si no se selecciona el propietario.

1. Cree una automatización con un nombre de parámetro `Owner` que se asigne al `Owner` campo de la `Task` entidad.

1. Como el `Owner` campo es obligatorio en la entidad, el `Owner` parámetro se sincronizará con la configuración requerida.

1. Para que el `Owner` parámetro sea opcional en la automatización, desactive la `required` configuración de este parámetro.

1. En tu lógica de automatización, puedes usar una expresión como`{{params.Owner || currentUser.userId}}`. Esta expresión comprueba si se proporciona el `Owner` parámetro. Si no se proporciona, recurrirá al ID del usuario actual como propietario.

1. De esta forma, si el usuario no selecciona un propietario en un formulario o componente, la automatización asignará automáticamente al usuario actual como propietario de la tarea.

Al cambiar la `required` configuración del `Owner` parámetro y utilizar una expresión alternativa, puede desacoplarlo del requisito del campo de entidad, hacerlo opcional en la automatización y proporcionar un valor predeterminado cuando no se proporciona el parámetro.

## Definir los tipos de parámetros de automatización
<a name="parameters-automation-create"></a>

Al utilizar los tipos de parámetros para especificar los tipos de datos y establecer los requisitos, puede controlar las entradas de sus automatizaciones. Esto ayuda a garantizar que sus automatizaciones funcionen de forma fiable con las entradas esperadas.

### Sincronizar los tipos de una entidad
<a name="parameters-automation-synchronize-entity"></a>

La sincronización dinámica de los tipos de parámetros y los requisitos de las definiciones de los campos de la entidad agiliza la creación de automatizaciones que interactúan con los datos de la entidad, lo que garantiza que el parámetro siempre refleje los requisitos y el tipo de campo de la entidad más recientes.

El siguiente procedimiento detalla los pasos generales para sincronizar los tipos de parámetros de una entidad:

1. Cree una entidad con campos escritos (por ejemplo, booleanos, numéricos, etc.) y márquelos según sea necesario.

1. Crea una nueva automatización.

1. Añada parámetros a la automatización y, al elegir el **tipo**, elija el campo de entidad con el que desee sincronizar. El tipo de datos y la configuración requerida se sincronizarán automáticamente desde el campo de entidad mapeado

1. Si es necesario, puede anular la configuración «obligatoria» cambiándola para cada parámetro. on/off Esto significa que el estado requerido no se mantendrá sincronizado con el campo de la entidad, pero de lo contrario, permanecerá sincronizado.

### Definir los tipos manualmente
<a name="parameters-automation-custom-types"></a>

También puede definir los tipos de parámetros manualmente sin sincronizarlos desde una entidad

Al definir los tipos de parámetros personalizados, puede crear automatizaciones que acepten tipos de entrada específicos y gestionen los parámetros opcionales o obligatorios según sea necesario, sin depender de las asignaciones de campos de las entidades.

1. Cree una entidad con campos escritos (por ejemplo, booleanos, numéricos, etc.) y márquelos según sea necesario.

1. Crea una nueva automatización.

1. Añada parámetros a la automatización y, al elegir el **tipo**, elija el tipo deseado.

## Configuración de valores dinámicos para pasarlos a los parámetros de automatización
<a name="parameters-automation-pass-values"></a>

Una vez que haya definido los parámetros para una automatización, puede pasarles valores al invocar la automatización. Puede pasar los valores de los parámetros de dos maneras:

1. **Activadores de componentes**: si invoca la automatización desde un activador de componentes, por ejemplo, al hacer clic en un botón, puede utilizar JavaScript expresiones para transferir valores del contexto del componente. Por ejemplo, si tiene un campo de entrada de texto llamado`emailInput`, puede pasar su valor al parámetro de correo electrónico con la siguiente expresión:`ui.emailInput.value`.

1. **Otras automatizaciones**: si invoca la automatización desde otra automatización, puede usar JavaScript expresiones para pasar valores del contexto de la automatización. Por ejemplo, puedes pasar el valor de otro parámetro o el resultado de un paso de acción anterior.

## Escriba seguridad
<a name="parameters-automation-type-safety"></a>

Al definir los parámetros con tipos de datos específicos, como cadena, número o booleano, puede asegurarse de que los valores que se transmiten a la automatización son del tipo esperado.

**nota**  
En App Studio, las fechas son fechas de cadena ISO y también se validarán.

Esta seguridad de tipos ayuda a evitar los desajustes de tipos, lo que puede provocar errores o comportamientos inesperados en la lógica de automatización. Por ejemplo, si define un parámetro como a`Number`, puede estar seguro de que cualquier valor que se le pase a ese parámetro será un número y no tendrá que realizar comprobaciones de tipo ni conversiones adicionales en la automatización.

## Validación
<a name="parameters-automation-validation"></a>

Puedes añadir reglas de validación a tus parámetros para asegurarte de que los valores que se transfieran a la automatización cumplan ciertos criterios.

Si bien App Studio no proporciona ajustes de validación integrados para los parámetros, puedes implementar validaciones personalizadas añadiendo una JavaScript acción a la automatización que genere un error si se infringen determinadas restricciones.

En el caso de los campos de entidad, se admite un subconjunto de reglas de validación, como minimum/maximum los valores. Sin embargo, no se validan en el nivel de automatización, solo en la capa de datos, cuando se ejecutan acciones de Create/Update/Delete registro.

## Mejores prácticas para los parámetros de automatización
<a name="parameters-automation-best-practices"></a>

Para garantizar que sus parámetros de automatización estén bien diseñados, sean fáciles de mantener y fáciles de usar, siga estas prácticas recomendadas:

1. **Utilice nombres de parámetros descriptivos**: elija nombres de parámetros que describan claramente el propósito o el contexto del parámetro.

1. **Proporcione descripciones de los parámetros**: aproveche el campo **Descripción** al definir los parámetros para explicar su propósito, sus limitaciones y sus expectativas. Estas descripciones aparecerán en los JSDoc comentarios al hacer referencia al parámetro, así como en cualquier interfaz de usuario en la que los usuarios deban proporcionar valores para los parámetros al invocar la automatización.

1. **Utilice los tipos de datos adecuados**: considere detenidamente el tipo de datos de cada parámetro en función de los valores de entrada esperados, por ejemplo: cadena, número, booleano u objeto.

1. **Valide los valores de los parámetros**: implemente las comprobaciones de validación adecuadas en su automatización para asegurarse de que los valores de los parámetros cumplen los requisitos específicos antes de continuar con otras acciones.

1. **Usa valores alternativos o predeterminados**: si bien App Studio no admite actualmente la configuración de valores predeterminados para los parámetros, puedes implementar valores alternativos o predeterminados al consumir los parámetros de tu lógica de automatización. Por ejemplo, puedes usar una expresión como esta `{{ params.param1 || "default value" }}` para proporcionar un valor predeterminado si el `param1` parámetro no se proporciona o tiene un valor falso.

1. **Mantenga la coherencia de los parámetros**: si tiene varias automatizaciones que requieren parámetros similares, intente mantener la coherencia en los nombres de los parámetros y los tipos de datos en todas esas automatizaciones.

1. **Documente el uso de los parámetros**: mantenga una documentación clara para sus automatizaciones, incluidas las descripciones de cada parámetro, su propósito, los valores esperados y cualquier ejemplo o caso extremo relevante.

1. **Revisa y refactoriza con frecuencia**: revisa periódicamente tus automatizaciones y sus parámetros, y refactoriza o consolida los parámetros según sea necesario para mejorar la claridad, la capacidad de mantenimiento y la reutilización.

1. **Limite la cantidad de parámetros: si bien los parámetros** proporcionan flexibilidad, demasiados parámetros pueden hacer que una automatización sea compleja y difícil de usar. Intente lograr un equilibrio entre flexibilidad y simplicidad limitando el número de parámetros a solo lo necesario.

1. **Considere la posibilidad de agrupar parámetros: si tiene que definir varios parámetros relacionados, considere agruparlos en un solo *Object* parámetro**.

1. **Preocupaciones distintas**: evite usar un único parámetro para múltiples propósitos o combinar valores no relacionados en un solo parámetro. Cada parámetro debe representar una preocupación o dato distinto.

1. **Utilice alias de parámetros**: si tiene parámetros con nombres largos o complejos, considere la posibilidad de utilizar alias o versiones abreviadas dentro de la lógica de automatización para mejorar la legibilidad y el mantenimiento.

Si sigue estas prácticas recomendadas, puede asegurarse de que sus parámetros de automatización estén bien diseñados, sean fáciles de mantener y fáciles de usar, lo que, en última instancia, mejorará la calidad y la eficiencia generales de sus automatizaciones.