Encadenar y controlar operaciones en Jitterbit Studio
Introducción
Studio proporciona dos formas de encadenar operaciones y controlar cómo se ejecutan: la herramienta Invocar Operación y la función RunOperation en un script. Ambos enfoques crean cadenas de operaciones y admiten ejecución sincrónica y asincrónica, pero son adecuados para diferentes situaciones.
| Herramienta Invocar Operación | Script con RunOperation |
|
|---|---|---|
| Configuración | Visual, arrastrar y soltar | paso de script agregado a la operación |
| Lógica condicional | No soportada | Soportada (usar If, While, etc.) |
| Captura de errores | Opciones de manejo de errores integradas | Manual con GetLastError |
| Bucles | No soportados | Soportados |
| Mejor para | Invocaciones simples y sin condiciones | Lógica de control, bucles, ramificación condicional |
Usar la herramienta Invocar Operación
La herramienta Invocar Operación es un componente del proyecto que ejecuta una operación especificada como un paso dentro de otra operación. Se encuentra en la pestaña Herramientas de la paleta de componentes de diseño.
Agregar un paso de Invocar Operación
-
En la paleta de componentes de diseño, selecciona la pestaña Herramientas.
-
Arrastra una herramienta Invocar Operación al lienzo de diseño y suéltala en la operación donde debe ocurrir la invocación.
-
La pantalla de configuración se abre automáticamente.
Configurar la herramienta Invocar Operación
-
Nombre: Ingresa un nombre para identificar esta instancia de herramienta, o selecciona Usar nombre de operación para que coincida automáticamente con el nombre de la operación que se está invocando.
-
Operación: Selecciona la operación a invocar de la lista de operaciones en el proyecto actual.
-
Tipo de ejecución: Selecciona Sincrónicamente o Asincrónicamente.
-
Sincrónicamente (por defecto): La operación invocada se ejecuta hasta completarse antes de que la operación padre continúe. Los cambios en las variables globales en la operación invocada están disponibles en la padre.
- Asincrónicamente: La operación invocada se coloca en cola y se ejecuta de manera independiente. La operación padre continúa inmediatamente sin esperar. Los cambios en las variables globales en la operación invocada no se reflejan en la padre.
Para más información, consulta Sincronización.
-
Manejo de errores (solo sincrónico):
- Generar error si la operación falla: La operación padre falla y se detiene si la operación invocada falla. Cualquier acción de On Fail acciones de operación configurada en la operación padre se ejecuta.
- Cancelar cadena de operaciones si la operación falla: La operación padre continúa hasta completarse, pero no se ejecutan más acciones de On Fail o On Success cuando finaliza.
-
Haz clic en Guardar cambios.
Nota
Una cadena de operaciones creada utilizando la herramienta Invocar operación no muestra una línea de referencia visual en el lienzo de diseño.
Usar scripts con RunOperation
Para invocación condicional, bucles o acumulación de errores, agrega un paso de script a la operación y utiliza RunOperation.
Invocación básica
<trans>
RunOperation("<TAG>operation:My Operation</TAG>");
</trans>
Por defecto, RunOperation se ejecuta sincrónicamente. Pasa false como segundo argumento para ejecutarlo asincrónicamente:
<trans>
RunOperation("<TAG>operation:My Operation</TAG>", false);
</trans>
Invocación condicional y captura de errores
Envuelve RunOperation en un If para detectar fallos y capturar el error:
<trans>
If(!RunOperation("<TAG>operation:My Operation</TAG>"),
WriteToOperationLog("Operation failed: " + GetLastError());
RaiseError(GetLastError());
);
</trans>
GetLastError recupera el mensaje de error de la operación que falló más recientemente. RaiseError detiene la operación actual y activa su acción On Fail configurada.
Enrutamiento en el contenido de la carga útil
La condición también puede probar los datos en sí mismos en lugar del resultado de una operación anterior. Este es el patrón a utilizar cuando un endpoint entrega más de un tipo de mensaje y cada tipo necesita una operación diferente:
<trans>
If($gv_messageType == "Update",
RunOperation("<TAG>operation:Process Update</TAG>");
,
RunOperation("<TAG>operation:Process Cancellation</TAG>");
);
</trans>
Para un ejemplo completo que inspecciona una carga útil XML entrante para determinar el tipo de mensaje, consulta Enrutar mensajes XML por tipo de nodo.
Scripts de controlador
Un script de controlador es una operación de script cuyo único propósito es coordinar otras operaciones. Es útil cuando:
- Una operación debe ejecutarse condicionalmente en función de variables del proyecto o valores de datos.
- Se llaman sub-operaciones desde dentro de un bucle, pasando datos de una lista a cada invocación.
- Se necesita registro de trazas entre los pasos de la operación (por ejemplo,
WriteToOperationLog("Iniciando actualización en: " + Now())).
Para un ejemplo completo de script de controlador, consulta Gestionar flujos de trabajo utilizando scripts de controlador. Para un patrón de reintento automático, consulta Reintentar una operación fallida.
Otros usos de scripts
Los scripts también se utilizan dentro de los mapeos de campos de transformación y como scripts reutilizables independientes. Si se necesita la misma lógica en más de una transformación, crea un script independiente y llámalo desde cada transformación utilizando RunScript.