> For the complete documentation index, see [llms.txt](https://docs.skyone.cloud/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.skyone.cloud/espanol/skyone-studio/integraciones/flujos/gestion-de-los-flujos/flow-canva-configuracion-y-edicion-del-flujo/flujos-multicontexto/ejemplo-multicontexto-con-disparador-temporal.md).

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

<figure><img src="/files/sHRDVo2ztno7j48Q6pFB" alt=""><figcaption></figcaption></figure>

**Pasos**

[\[ **Paso 01** \] Crea el flujo monocontexto original](#paso-01-crea-el-flujo-monocontexto-original)\
[\[ **Paso 02** \] Crea las llaves de contexto](#paso-02-crea-las-llaves-de-contexto)\
[\[ **Paso 03** \] Crea el bucle del flujo](#paso-03-crea-el-bucle-del-flujo)\
[\[ **Paso 04** \] Inserta el *context finder*](#paso-04-inserta-el-context-finder)\
[\[ **Paso 05** \] Define las variables de flujo que cambian con el Contexto](#paso-05-define-las-variables-de-flujo-que-cambian-con-el-contexto)\
[\[ **Paso 06** \] Define las cuentas 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-07-crea-las-cuentas-de-contexto-para-la-base-de-datos)\
[\[ **Paso 08** \] Crea los contextos](#paso-08-crea-los-contextos)\
[\[ **Paso 09** \] Define las variables y las cuentas dentro de cada Contexto](#paso-09-define-las-variables-y-las-cuentas-dentro-de-cada-contexto)\
[\[ **Paso 10** \] Activa y ejecuta el flujo](#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.

{% hint style="warning" %}
También puedes iniciar la creación de un flujo multicontexto desde cero. Este ejemplo parte de un flujo monocontexto con fines didácticos.
{% endhint %}

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

<figure><img src="/files/FmElo88BLe1XO6uPlZai" alt=""><figcaption></figcaption></figure>

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 ](/espanol/skyone-studio/integraciones/flujos/disparadores/disparadores-temporales-adicion-y-configuracion.md)se activa cada 15 minutos.

<figure><img src="/files/Qjs9OFd5crf5KZAOV6z8" alt=""><figcaption></figcaption></figure>

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](https://www.weatherapi.com/) web donde se facilita la clave que se usará como autenticación.

<figure><img src="/files/ZUyAfjjkRpfef9ZNolub" alt=""><figcaption></figcaption></figure>

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

<figure><img src="/files/12Xh422C78VvSQvC7UGW" alt=""><figcaption></figcaption></figure>

### **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:

```json
["0001","0002","0003"]
```

<figure><img src="/files/ZMkbF3WFWFO0zgcjbz19" alt=""><figcaption></figcaption></figure>

### **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**](/espanol/skyone-studio/integraciones/flujos/modulos-de-herramientas/modulo-bucle-for.md) 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.

<figure><img src="/files/lKpYrCrQB9apgbAAsdNE" alt=""><figcaption></figcaption></figure>

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:

<figure><img src="/files/KvOPvDr1CHvDW6joYwh7" alt=""><figcaption></figcaption></figure>

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

<figure><img src="/files/ZiB5clEvWWdZQNe4JpRL" alt=""><figcaption></figcaption></figure>

&#x20;en el parámetro de flujo creado anteriormente.

<figure><img src="/files/U7NXP4PHv8soGHQYTRcN" alt=""><figcaption></figcaption></figure>

### **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"**.

<figure><img src="/files/hP1rBqjp1C0bltJNOfzu" alt=""><figcaption></figcaption></figure>

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

{% hint style="warning" %}
No es posible mover una variable de flujo a contexto.
{% endhint %}

<figure><img src="/files/HqKpDslpXdsad7PFg4Q5" alt=""><figcaption></figcaption></figure>

### **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"**.

<figure><img src="/files/O4lrk5r0NNwzWliqUbAX" alt=""><figcaption></figcaption></figure>

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

{% hint style="warning" %}
Observa que Skyone Studio asume la cuenta que ya estaba configurada previamente como parte del **"Contexto Default"**.
{% endhint %}

### **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.

<figure><img src="/files/8wcPtr6dIoqlprDwOmrk" alt=""><figcaption></figcaption></figure>

### **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"**.

<figure><img src="/files/2c9CRjMfLcqrJXdhk3UD" alt=""><figcaption></figcaption></figure>

Repite la operación para crear el contexto **User 02** con la llave **0002**, y el contexto **User 03** con la llave **0003**.&#x20;

### **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.

<figure><img src="/files/mMRl7cMfVl3pI6ofkY2d" alt=""><figcaption></figcaption></figure>

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.

<figure><img src="/files/w3nGenuLrifca8Izt7iI" alt=""><figcaption></figcaption></figure>

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.

<figure><img src="/files/6CwwDvzfXytBvXUfEQo5" alt=""><figcaption></figcaption></figure>

**Próximos pasos:**

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


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.skyone.cloud/espanol/skyone-studio/integraciones/flujos/gestion-de-los-flujos/flow-canva-configuracion-y-edicion-del-flujo/flujos-multicontexto/ejemplo-multicontexto-con-disparador-temporal.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
