Generar un registro de resumen después de procesar registros en Jitterbit Studio
Introducción
Las integraciones de procesamiento por lotes se ejecutan sin supervisión y pueden procesar miles de registros en una sola operación. Sin un resumen posterior a la ejecución, los operadores deben leer los registros de operación en bruto para entender qué se procesó, qué tuvo éxito y qué falló. Un registro de resumen resuelve esto al recopilar una línea de resultado legible por humanos por cada registro durante el procesamiento, y luego entrega el registro completo como un archivo o correo electrónico cuando la operación finaliza.
Este patrón utiliza una variable global, summary_log, para acumular líneas de resultado durante una transformación. Cuando el procesamiento se completa, una operación de script encadenada escribe el resumen utilizando WriteFile y lo envía utilizando SendEmailMessage. Esta guía amplía el patrón descrito en Enviar una notificación por correo electrónico desde una operación de Studio, que cubre la creación y configuración de componentes de notificación por correo electrónico.
Patrón de diseño
El patrón utiliza dos operaciones en una cadena:
- Operación de procesamiento: Actividad de origen → Transformación → Actividad de destino. Un script en el nodo raíz de la transformación agrega una línea de resultado por registro a la variable global
summary_log. - Operación de script de resumen (ejecutada con éxito): Lee
summary_logy llama aWriteFilepara persistir el registro,SendEmailMessagepara entregarlo, o ambos.
Las variables globales persisten durante la duración de una cadena de operación. summary_log es escrito por la transformación y todavía está en el alcance cuando se ejecuta el script de resumen encadenado, sin necesidad de cableado adicional.
Parte 1: Acumular líneas de resultado en la transformación
-
En Studio, abre tu proyecto y abre la transformación utilizada en tu operación de procesamiento.
-
Selecciona el nodo raíz de la transformación (el nodo de instancia de origen de nivel superior), luego abre el editor de fórmulas para ese nodo.
-
Agrega un script que añada una línea de resultado a
summary_logpor cada registro. El script debe devolver un valor que pueda ser utilizado por la transformación. Usatruepara asegurar que todos los registros sean procesados:// Append a result line for this record $summary_log = $summary_log + Source.record_id + " | " + Source.name + " | processed\n"; // Increment the record count $summary_count = $summary_count + 1; // Return true so the transformation processes every record true;Reemplaza
Source.record_idySource.namecon los nombres de campo reales de tu esquema de origen.Nota
summary_logcomienza comonull. Jitterbit Script tratanullcomo una cadena vacía en la concatenación de cadenas, por lo que no se requiere inicialización explícita antes de que se añada el primer registro. -
Para incluir una línea de encabezado con la fecha de ejecución y el conteo total de registros, agrega un script de inicialización separado a la operación que se ejecute antes de la transformación, o antepone el encabezado en la operación del script de resumen después de que el procesamiento esté completo.
Consejo
Almacena el encabezado por separado en
summary_headerpara que pueda ser ensamblado después de que todos los registros sean procesados, cuandosummary_counttenga su valor final:$summary_header = "Ejecución: " + Now() + " | Registros: " + $summary_count + "\n\n";
Parte 2: Encadenar la operación del script de resumen
-
En el lienzo de diseño, haz clic derecho en la operación y selecciona Configuraciones para abrir la configuración de la operación.
-
Selecciona la pestaña Acciones.
-
Condición: Selecciona Al Éxito.
-
Acción: Selecciona Ejecutar Operación.
-
Operación: Selecciona o crea una operación de script que escriba y envíe el resumen. Si la operación aún no existe, crea una nueva operación de script, luego regresa a este diálogo de configuración para seleccionarla.
-
Haz clic en Agregar Acción, luego guarda la configuración.
La operación del script de resumen ahora se ejecuta automáticamente después de que la operación de procesamiento se complete con éxito.
Parte 3: Escribir el resumen en un archivo
En la operación del script de resumen, llama a WriteFile para escribir summary_log en una actividad de archivo de destino:
// Assemble the full log with header and body
fullLog = $summary_header + $summary_log;
// Write to the file target activity
WriteFile("<TAG>activity:target:Summary Log File</TAG>", fullLog);
Reemplace Summary Log File con el nombre de su actividad de archivo objetivo tal como aparece en el proyecto.
Nota
WriteFile es una función de Jitterbit Script, no un paso de conector de archivo. Escribe contenido en una actividad de archivo objetivo ya configurada en el proyecto. Configure la actividad objetivo con la ruta de destino y el nombre del archivo antes de llamar a WriteFile.
Consejo
Incluya la fecha de ejecución en el nombre del archivo para evitar sobrescribir registros anteriores. Configure una variable de proyecto como [run_date] en la ruta del nombre de archivo de la actividad objetivo (por ejemplo, summary_[run_date].txt), y complete $run_date en su script antes de llamar a WriteFile:
$run_date = Format(Now(), "yyyy-MM-dd");
WriteFile("<TAG>activity:target:Summary Log File</TAG>", fullLog);
Parte 4: Enviar el resumen como un correo electrónico
-
Cree un componente de notificación por correo electrónico que llevará el resumen. Para obtener instrucciones completas de configuración, consulte Enviar una notificación por correo electrónico desde una operación de Studio.
-
En el campo Asunto de la notificación, haga referencia a
summary_countpara incluir el total de registros:Procesamiento completo: $summary_count registros -
En el campo Mensaje, haga referencia a
summary_logpara incluir las líneas de resultado acumuladas:$summary_header$summary_logLas variables globales se resuelven en el momento del envío, por lo que el cuerpo del mensaje refleja los valores establecidos durante la ejecución del procesamiento.
-
En la operación del script de resumen, llame a
SendEmailMessagedespués deWriteFile(si se utiliza):SendEmailMessage("<TAG>email:Processing Summary</TAG>");Reemplace
Processing Summarycon el nombre de su componente de notificación por correo electrónico.
Verificar la integración
-
Despliegue y ejecute la operación de procesamiento contra un pequeño conjunto de datos de prueba de dos o tres registros.
-
En los registros de operación, confirme que la operación de procesamiento se completó sin errores y que la operación del script de resumen se ejecutó con éxito.
-
Si configuraste
WriteFile: verifica la ruta de destino de la actividad del archivo objetivo y confirma que se creó el archivo de resumen. Ábrelo y verifica que contenga una línea de resultado por registro más el encabezado. -
Si configuraste
SendEmailMessage: verifica la bandeja de entrada del destinatario y confirma que el correo electrónico llegó con el asunto y contenido del cuerpo esperados. -
Si el cuerpo del correo electrónico o el contenido del archivo están vacíos, confirma que el script de acumulación esté ubicado en el nodo raíz de la transformación (no en una operación de script separada) para que se ejecute una vez por registro durante la transformación.
-
Si la operación del script de resumen no se ejecuta, confirma que la acción On Success esté adjunta a la operación de procesamiento, no a una operación padre o hija en la cadena. Revisa los registros de la operación para ver si se activó la condición de éxito.
-
Si
WriteFiledevuelve un error, confirma que la actividad del archivo objetivo esté configurada correctamente y que el agente tenga acceso de escritura a la ruta de destino.