Saltar al contenido

Conservar Datos para Su Posterior Procesamiento Mediante Almacenamiento Temporal

Caso de Uso

Un patrón común al integrar datos es el uso de archivos para almacenar temporalmente datos que se utilizan como parte del proceso de transformación o movimiento de datos del origen al destino.

Nota

Este patrón de diseño utiliza Design Studio como ejemplo; puedes aplicar los mismos conceptos en Cloud Studio siguiendo pasos similares.

Ejemplos

Archivos Temporales

Un patrón típico es consultar una fuente, guardar el resultado en un archivo temporal y luego leer el resultado en el siguiente paso.

adjunto

En el ejemplo anterior, se ejecuta periódicamente una consultar de Salesforce, lo que genera un resultado que se escribe en un destino llamado Trabajos cancelados. En la segunda operación, se lee una fuente con el mismo nombre como entrada en una actualización de NetSuite.

Utilice Consideraciones de Almacenamiento Temporal

  • El almacenamiento temporal se escribe en el directorio temporal del sistema operativo predeterminado en el Agente que realiza el trabajo. En el caso de un único Agente Privado, entonces es el directorio temporal predeterminado del host del servidor de ese Agente Privado. Si el Grupo de Agentes ejecuta más de un Agente Privado, entonces es el directorio temporal en el alojar del servidor para cualquier Agente en particular que esté haciendo el trabajo. Si escribe en Almacenamiento temporal en Agentes en Nube (que están agrupados), se escribe en el alojar del servidor de cualquier agente de nube en particular.
  • De forma predeterminada, el almacenamiento temporal se elimina después de 24 horas mediante un servicio de limpieza de Jitterbit.
  • Crear una fuente a partir de un destino es simple: primero, cree un destino y asígnele un nombre único. Luego use la opción "Copiar a una nueva fuente" para crear la fuente usando el mismo nombre de archivo (haga clic derecho en el nombre de destino en el árbol de Elementos del proyecto en el panel en el lado izquierdo de la pantalla y seleccione "Copiar a una nueva fuente" en el menú desplegable). El destino y las fuentes son en realidad independientes, por lo que cambiar unilateralmente un nombre de archivo en un destino no afecta una fuente del mismo nombre.

    adjunto

  • En un ambiente de agentes agrupados ( Agentes en Nube), siempre que las operaciones que utilizan el almacenamiento temporal estén vinculadas (encadenadas), todas las lecturas y escrituras de archivos temporales se realizarán en el mismo alojar del servidor.

  • Para los objetivos, el valor predeterminado es sobrescribir el archivo. Esto se puede cambiar con la opción "Agregar a archivo" (haga doble clic en el objetivo, haga clic en Opciones y haga clic en la casilla de verificación "Agregar a archivo"). Cuando se lee el archivo, es necesario tratarlo de manera que una operación posterior no continúe agregándose al archivo. Cuando el archivo se lee como fuente, normalmente el archivo se elimina o se archiva. Una forma sencilla de hacer esto es elegir "Eliminar archivo" o "Cambiar nombre de archivo" en la fuente (haga doble clic en la fuente, haga clic en Opciones y haga clic en la casilla de verificación "Eliminar archivo" o ingrese un nombre en "Cambiar nombre de archivo"). campo.).

    adjunto

  • Hay varias palabras clave entre corchetes que se pueden utilizar en el nombre del archivo:

    • fecha - inserta AAAA-MM-DD
    • fecha_hora - inserta AAAA-MM-DD_HHMMSS
    • hora - inserta HHMMSS
    • text - sustituye la extensión del archivo
    • archivo - sustituye el nombre del archivo
    • secuencia - inserta el número de secuencia (1,2,3) del archivo
    • único - inserta un GUID para crear un nombre de archivo único. Si se usa esto, la operación de 'lectura' tendrá que usar un tipo de fuente de "Usar fuente de operación anterior" o un comodín en la fuente.
      • Es posible construir su propia parte de nombre de archivo 'única' creando un secuencia de comandos previo a la operación que utilice una variable global asignada a un guid: $unique_filename = Guid(). Luego pase '[unique_filename]' al origen y al destino.
  • Se puede leer un archivo temporal en el estudio creando un secuencia de comandos con la función ReadFile(): ReadFile("\<TAG>Sources/test\</TAG>"). Luego pruebe el secuencia de comandos. Tenga en cuenta que esto sólo funciona de manera confiable si hay un único Agente Privado.

Archivos Temporales Frente a Variables Globales Como Orígenes y Destinos

En lugar de leer y escribir en archivos temporales en un agente, es posible utilizar una variable global.

Ventajas de Utilizar Variables Globales Como Origen o Destino

  • Más fácil de escribir. Para escribir en un archivo temporal en un secuencia de comandos, se necesitan dos funciones: WriteFile() y FlushFile(). Se puede hacer lo mismo en un único secuencia de comandos simplemente asignando un valor a una variable, como $foo="123","456","789".
  • Más fácil de usar en funciones. Tener una variable global que pueda pasarse a otras funciones, como WriteToOperationLog(), es muy conveniente. Se puede hacer lo mismo con archivos temporales, pero requiere un ReadFile() para obtener los datos.
  • Sin limpieza. Dado que se trata de variables globales, cuando la operación se completa, ya sea con éxito o no, los datos no persisten. En el caso de los archivos temporales, una operación fallida puede dejar archivos temporales huérfanos que pueden acumularse rápidamente y superar los límites de almacenamiento.

Ventajas de Utilizar Archivos Temporales Como Origen o Destino

  • Más fácil de depurar. Si utiliza un Agente Privado, tener acceso al archivo real puede ser muy útil para depurar los detalles de la integración.
  • Rico en funciones. Hay muchas funciones útiles integradas de palabras clave para los nombres de archivos de Target. Algunos ejemplos son fecha, fecha_hora, secuencia, único. También puede usar SCOPE_CHUNK para dividir archivos temporales en fragmentos.
  • Muchas opciones y más control. Tipo de fin de línea, opciones para escribir encabezados, agregar al archivo, no crear archivos vacíos, codificación y compresión de caracteres.
  • Dinámico. Las entradas de ruta y nombre de archivo se pueden completar con una variable global, lo que permite establecer los valores en función de opciones de operación anteriores. Si se construye correctamente, múltiples operaciones pueden reutilizar un único destino y fuente.