Ejemplo: Multicontexto con Disparador Temporal

Este ejemplo ilustra la creación de un flujo multicontexto a partir de un disparador temporal. Los contextos son programados internamente a partir de una variable de flujo.

Definición del Flujo En este ejemplo, presentamos un escenario de integración entre un sistema web que provee información meteorológica y una base de datos Postgres. La información meteorológica se obtiene de forma recurrente mediante un disparador temporal. En cada lectura también registramos la información relevante en una base de datos para que pueda ser consultada posteriormente.

La lectura de la información meteorológica requiere la especificación de la localidad sobre la cual se proporcionarán los datos actuales. Además, es necesario proporcionar un token de acceso para que la API funcione correctamente.

Inicialmente crearemos un flujo monocontexto (convencional) que recupera los datos de una única localidad y los almacena en una sola base de datos. Luego ampliaremos ese mismo flujo para poder realizar la lectura de la información meteorológica de múltiples localidades usando cuentas de acceso distintas y almacenar la información de cada localidad en una base de datos diferente. Para ello utilizaremos las herramientas de multicontexto de Skyone Studio.

Pasos

[ Paso 01 ] Crea el flujo monocontexto original [ Paso 02 ] Crea las llaves de contexto [ Paso 03 ] Crea el bucle del flujo [ Paso 04 ] Inserta el context finder [ Paso 05 ] Define las variables de flujo que cambian con el Contexto [ Paso 06 ] Define las cuentas que cambian con el Contexto [ Paso 07 ] Crea las cuentas de Contexto para la Base de Datos [ Paso 08 ] Crea los contextos [ Paso 09 ] Define las variables y las cuentas dentro de cada Contexto [ Paso 10 ] Activa y ejecuta el flujo


Paso a paso

Paso 01: Crea el flujo monocontexto original

Comienza creando la versión monocontexto del flujo para que podamos validar de forma más sencilla su correcto funcionamiento. La versión monocontexto es simplemente una versión convencional del flujo que opera con un único contexto. Una vez que esa versión esté funcional, la transformaremos en multicontexto.

El flujo original con el que trabajaremos se parece al de la figura siguiente.

Periódicamente, el flujo consulta la Weather API y obtiene la información meteorológica de una determinada localidad. A continuación, un módulo de base de datos almacena la información relevante en una base de datos Postgres.

El disparador temporal se activa cada 15 minutos.

La Weather API requiere únicamente dos variables. La primera es la localidad para la que se solicitan los datos. Proporcionamos este parámetro mediante una variable de flujo previamente configurada.

El segundo parámetro es una clave de autenticación para acceder a la Weather API. El acceso a la API es público, pero requiere un registro previo en el sitio web donde se facilita la clave que se usará como autenticación.

Los datos devueltos por la Weather API se almacenan en la base de datos Postgres.

Paso 02: Crea las llaves de contexto

Este flujo tiene un disparador temporal y no recibe información externa en su inicialización. Por esa razón, la información de contexto se almacenará dentro del propio flujo mediante una variable de flujo.

En la versión multicontexto, este mismo flujo se ejecutará múltiples veces, pero en cada una utilizará información diferente de ciudades, claves de acceso a la Weather API y cuentas de base de datos. Para ello, vamos a crear una llave de contexto que nos permitirá identificar esa información. La llave de contexto puede ser cualquier identificador único. Podemos usar información de userid como números secuenciales, tales como: 0001, 0002, 0003 y así sucesivamente.

Crea un parámetro de flujo del tipo array. Puedes nombrarlo como userid_list y asignarle como valor la lista de userids que definirán los contextos, por ejemplo:

Paso 03: Crea el bucle del flujo

Vamos a ejecutar el mismo procedimiento para cada contexto. Para ello, crearemos un bucle definiendo qué sección del flujo se ejecutará repetidamente.

Inserta los módulos de herramienta Loop For según la imagen siguiente. Realizaremos la lectura de los datos meteorológicos y la correspondiente escritura en la base de datos para cada contexto.

Especifica como lista de control el parámetro de flujo recién creado userid_list. De esta manera, el bucle se ejecutará una vez por cada llave de contexto.

Paso 04: Inserta el "Context Finder"

Cada vez que Skyone Studio recorra el bucle, se deberá utilizar un contexto diferente. Para ello, colocaremos el "Context Finder" dentro del bucle.

Inserta el "Context Finder" según se muestra en la imagen siguiente:

El "Context Finder" requiere como parámetro la llave de contexto que se va a utilizar. Pasa el valor del elemento que se está usando en el módulo. De esta manera, estaremos proporcionando los valores de userid definidos

en el parámetro de flujo creado anteriormente.

Paso 05: Define las variables de flujo que cambian con el Contexto

Necesitamos indicar cuáles son las variables que se modificarán de acuerdo con el Contexto.

En el flujo original existen dos variables de flujo que variarán según el contexto. Ambas son utilizadas como variables por la Weather API:

  • location

  • key_

Necesitamos configurar para que ambas se definan por contexto. Para ello, accede a la definición de estas variables en "Contexto" > "Variables".

En caso de que accedas a través de "Configuraciones", observa que estarán en "Variables", en la pestaña "Contexto".

Paso 06: Define las cuentas que cambian con el Contexto

Necesitamos indicar cuáles son las cuentas que se modificarán de acuerdo con el Contexto.

En el flujo original, solo hay una cuenta que variará según el contexto. Se trata de la cuenta de acceso a la base de datos Postgres.

Accede al módulo de la base de datos y selecciona la opción: "Utilizar contexto en este componente".

Haz clic en "Siguiente". Puedes probar nuevamente el módulo y luego hacer clic en "Guardar".

Paso 07: Crea las cuentas de Contexto para la Base de Datos

Cada contexto accederá a su propia cuenta. Para ello, es necesario definir cuentas individuales.

Accede a Configuraciones > Cuentas conectadas. En "Administrar cuenta conectada", selecciona la opción "Base de Datos" y en Base de Datos: POSTGRESQL. Crea las cuentas de acceso a la base de datos.

Paso 08: Crea los Contextos

Cada contexto corresponde a un conjunto de variables y cuentas que se accederán cuando se identifique el contexto. En este paso, creamos los contextos y asignamos una llave que permite localizarlos.

En el panel principal de edición del flujo, haz clic en "Contexto". Inicialmente, solo está presente el contexto "Default". Vamos a crear los contextos adicionales para nuestro ejemplo.

Haz clic en "Agregar contexto". Especifica un nombre para el primer contexto, por ejemplo, "User 01", y asigna un valor a la llave. Este es el valor que será buscado por el "Context Finder" para identificar el contexto. Ingresa el valor 0001 y haz clic en "Guardar".

Repite la operación para crear el contexto User 02 con la llave 0002, y el contexto User 03 con la llave 0003.

Paso 09: Define las variables y las cuentas dentro de cada contexto

Define los valores de las variables y asigna las cuentas para cada contexto.

Con los contextos creados, puedes editar tus variables y definir las cuentas que cada contexto debe utilizar. Haz clic en el lápiz del contexto User 01 para editar sus valores. Observa que en la pestaña "Variables" tienes acceso a la definición de las variables location y key_ para este contexto. Haz clic en el lápiz junto a cada variable y define sus valores.

En la pestaña "Cuentas Conectadas" puedes ver todos los módulos que requieren cuentas de contexto. En este ejemplo, solo existe el módulo de la base de datos Postgres que requiere la definición de una cuenta. Haz clic en el selector de cuentas y especifica una de las cuentas de base de datos que creaste anteriormente; en este ejemplo se seleccionó la cuenta User 01 DB. Guarda y cierra para volver a la edición de contexto.

Repite la edición de variables y cuentas para los demás contextos. En este ejemplo utilizamos la información de la tabla siguiente para la configuración. Necesitarás usar tus propias llaves de acceso para configurar la variable key_ de acceso a la Weather API.

Contexto
llave
location
key_
cuenta

User 01

0001

Sao Paulo

1f4efae6226c4e04a81140559220607

User 01 DB

User 02

0002

New York

f2fc5cb46fb74fe9b9d142517220607

User 02 DB

User 03

0003

Tokyo

8d91cdcb8c373805981143223220607

User 03 DB

Paso 10: Activa y ejecuta el flujo

Puedes verificar el correcto funcionamiento del flujo mediante los registros (logs) disponibles en Skyone Studio.

Activa el flujo y haz clic en "Ejecución manual". Espera a que finalice la ejecución y revisa los registros. Observa que el "Context Finder" localiza la información de contexto cada vez que el flujo pasa por el bucle.

Próximos pasos:

Crea un flujo que reciba la llave de contexto a partir de información externa.

Last updated