Diseña tu step
Antes de configurar un step de un workflow, tienes que diseñar el workflow completo y pensar qué tareas, actividades o lógica de negocio concretas ejecutará cada step. Sigue leyendo para ver un breve resumen.
Consulta la documentación de diseño de workflows para ver más detalles sobre el diseño de soluciones y enlaces a plantillas.
En resumen, para diseñar un step de un workflow, tienes que seguir la lista de acciones de abajo y considerar resumir las especificaciones de tu diseño en un diagrama del workflow.

1. Determina tus entradas y salidas
- ¿Cuál es la entrada de este step del workflow? Piensa en cuál es el state inicial, o los datos, antes de que empiece el step.
- ¿Cuál es la salida que quieres (es decir, el state final, o los datos, después de que se ejecute el step)? Piensa en qué quieres enviar a la aplicación de destino o pasar al siguiente step del workflow.
2. Mapea tus elementos de datos
Consulta esta página para ver una guía detallada sobre cómo mapear los elementos de datos, o "diccionarios de datos", entre tus aplicaciones de origen y de destino. Para empezar:
- Exporta los metadatos (o el "formulario", la "lista de campos" o los "elementos de datos") de tu aplicación de origen (entrada) y de tu aplicación de destino (salida).
- Pega los metadatos en una hoja de cálculo de Excel para crear una hoja de mapeo:

- Mapea los elementos de datos de origen y de destino, y define reglas de limpieza y transformación de los datos. Piensa en lo siguiente:
- ¿Cómo se deberían traducir los datos recolectados al modelo de datos de tu sistema de destino?
- ¿Tu sistema de destino tiene requisitos de entrada o de validación de datos?
- ¿Hay que transformar o limpiar los datos para cumplir con las respuestas anteriores?
3. Define tus métodos (GET, POST...) u operaciones (insert, update, upsert...)
- Determina qué identificadores únicos existentes puedes usar para tus datos, o créalos. Los identificadores únicos sirven para insertar y actualizar registros concretos de tus datos (por ejemplo, uuid, form_id, patient_id, etc.).
- Determina qué métodos HTTP (por ejemplo, GET, POST, PUT) u operaciones de base de datos (por ejemplo, insert, update, delete) quieres hacer en la aplicación de destino
- Revisa las funciones auxiliares del adaptor.
- Ejemplo de language-postgresql
insert(...),insertMany(...)update(...),updateMany(...)upsert(...),upsertMany(...)→ actualiza el registro si existe o lo inserta si no existe; hace referencia a un ID externo
- Ejemplo de language-dhis2 con Tracked
Entity Instances (TEI)
updateTEI(...)upsertTEI(...)
- Ejemplo de language-postgresql
Mira el siguiente ejemplo de Job expression para un step que hace un "upsert"
(actualiza o inserta) de registros en una base de datos SQL.
upsert('mainDataTable', 'AnswerId', {
AnswerId: dataValue('\_id'), //external Id for upsert
column: dataValue('firstQuestion)'),
LastUpdate: new Date().toISOString(),
Participant: dataValue('participant'),
Surveyor: dataValue('surveyor'),
...
});
Consulta la guía para escribir jobs para más información.