Saltar al contenido

Conservar Datos para Su Procesamiento Posterior Mediante el Almacenamiento Temporal

Caso de Uso

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

Nota

Este patrón de diseño usa Design Studio como ejemplo; puede aplicar los mismos conceptos en Cloud Studio usando pasos similares.

Ejemplos

Archivos Temporales

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

adjunto

En el ejemplo anterior, una consultar de Salesforce se ejecuta periódicamente, generando resultados que se escriben en un destino denominado Trabajos cancelados. En la segunda operación, se lee una fuente con el mismo nombre como entrada en una actualización de NetSuite.

Uso de 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 solo Agente Privado, entonces es el directorio temporal predeterminado del host del servidor de ese agente privado. Si el Grupo de Agentes está ejecutando 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 está escribiendo en el almacenamiento temporal en los Agentes en Nube (que están agrupados), se escribe en el alojar del servidor del agente de la nube en particular.
  • De forma predeterminada, el almacenamiento temporal se elimina después de 24 horas mediante un servicio de limpieza Jitterbit
  • Construir un origen a partir de un destino es simple: primero, cree un destino y asígnele un nombre único. Luego use la opción "Copiar a 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 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 a una fuente con el mismo nombre.

    archivo adjunto

  • En un ambiente de agentes en clúster ( 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 destinos, 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 "Anexar a archivo"). Cuando se lee el archivo, debe tratarse de tal manera que una operación posterior no continúe agregando al archivo. Cuando el archivo se lee como fuente, normalmente el archivo se elimina o se archiva. Una forma sencilla de hacerlo es elegir "Eliminar archivo" o "Renombrar 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 "Renombrar archivo" campo.).

    archivo adjunto

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

    • fecha - inserta AAAA-MM-DD
    • fecha_hora - inserta AAAA-MM-DD_HHMMSS
    • hora - inserta HHMMSS
    • ext - 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 use una variable global asignada a un GUID: $unique_filename = Guid(). Luego pase '[unique_filename]' al origen y al destino.
  • Un archivo temporal se puede leer 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 solo funciona de manera confiable si hay un solo Agente Privado.

Archivos Temporales Frente a Variables Globales Como Fuentes y Destinos

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

Ventajas de Usar Variables Globales Como Fuente 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(). Lo mismo se puede hacer en un solo 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 se pueda pasar a otras funciones, como WriteToOperationLog(), es muy conveniente. Lo mismo se puede hacer con archivos temporales, pero requiere 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 se conservan. En el caso de los archivos temporales, una operación fallida puede dejar archivos huérfanos en archivos temporales que pueden acumularse rápidamente y superar los límites de almacenamiento.

Ventajas de Usar Archivos Temporales Como Origen o Destino

  • Más fácil de depurar. Si usa 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 de palabras clave integradas para los nombres de archivo de Target. Los ejemplos son fecha, fecha_hora, secuencia, única. 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 las opciones de operación anteriores. Si se construye correctamente, un solo objetivo y fuente se pueden reutilizar en varias operaciones.