Saltar al contenido

Funciones de archivo en Jitterbit Design Studio

Las funciones de archivo permiten que los scripts manipulen archivos en los agentes, disponibles a través de fuentes, y escritos en destinos.

Nota

Se admiten caracteres especiales utilizados para codificación de porcentaje (también conocida como codificación URL) en nombres de archivos para transferencias FTP y SFTP en Design Studio.

ArchiveFile

Declaración

void ArchiveFile(string sourceId, string targetId[, bool deleteSource])

Sintaxis

ArchiveFile(<sourceId>, <targetId>[, <deleteSource>])

Parámetros requeridos

  • sourceId: Fuente de tipo archivo en el proyecto actual
  • targetId: Destino de tipo archivo en el proyecto actual

Parámetros opcionales

  • deleteSource: Bandera booleana (por defecto false) que indica si la fuente debe ser eliminada después de escribir con éxito en el destino

Descripción

Lee un archivo de una fuente de tipo archivo y lo escribe en un destino de tipo archivo. Esta función combina las funciones ReadFile y WriteFile, realiza automáticamente FlushFile, y proporciona una opción para eliminar el archivo fuente.

La fuente de tipo archivo y el destino de tipo archivo utilizados en esta llamada a la función deben estar definidos como una fuente y un destino, respectivamente, en el proyecto actual. Consulte las instrucciones sobre inserción de elementos del proyecto.

Como solo se archiva un archivo, se recomienda que la fuente se cree para devolver solo un archivo único. Si se devuelven múltiples archivos, solo se utilizará el primero.

Al igual que la función WriteFile, esta función no sobrescribirá un archivo existente en el destino.

Si la función ArchiveFile falla, la operación no falla. Un script se abortará, se añadirá una advertencia al registro de operaciones y la operación continuará.

Archiving versus copying

  • Si deleteSource es true, el archivo se archiva (en otras palabras, se mueve) de la fuente al destino y se elimina de la fuente.
  • Si deleteSource es false, el archivo se copia de la fuente al destino y permanece en la fuente.

Nota

Los puntos finales creados utilizando el valor del host subyacente del punto final de tipo de archivo se incluyen en informe de uso de puntos finales y cuentan para su licencia.

Examples

// Retrieve list of files from a source
localFiles = FileList("<TAG>Sources/Local File Source</TAG>");

// Create a global archive filename
$archiveFilename = "archive.[date]-[time]." + localFiles[0];

// Archive (moves) a file, using [archiveFilename] in the target filename(s) field
ArchiveFile("<TAG>Sources/Local File Source</TAG>",
    "<TAG>Targets/FTP Target</TAG>", true);

// Copies a file, using [archiveFilename] in the target filename(s) field
ArchiveFile("<TAG>Sources/Local File Source</TAG>",
    "<TAG>Targets/FTP Target</TAG>", false);

DeleteFile

Declaration

int DeleteFile(string sourceId[, string fileFilter])

Syntax

DeleteFile(<sourceId>[, <fileFilter>])

Required parameters

  • sourceId: Fuente de tipo archivo en el proyecto actual

Optional parameters

  • fileFilter: Filtro de archivo o nombre de archivo para anular la definición de la fuente

Description

Elimina un archivo de la fuente especificada.

La fuente de tipo archivo utilizada en esta llamada a función debe estar definida como una fuente en el proyecto actual. Consulte las instrucciones sobre inserción de elementos del proyecto.

Si el filtro de la fuente selecciona más de un archivo, se generará un error. Para eliminar múltiples archivos, utilice la función DeleteFiles en su lugar.

El método devuelve un entero de 0 o 1: devuelve 1 si el archivo fue eliminado; 0 si el archivo no pudo ser encontrado.

El segundo parámetro, fileFilter, es opcional y se puede utilizar para anular el filtro de archivo utilizado en la definición de la fuente. Se puede utilizar un nombre de archivo. Alternativamente, se puede utilizar una variable global para anular el filtro de archivo en la definición de la fuente. Las variables globales se hacen referencia como [de_name] en la definición de la fuente.

Nota

Los puntos finales creados utilizando el valor del host subyacente del punto final de tipo archivo se incluyen en informe de uso de puntos finales y cuentan para su licencia.

Examples

// Delete the file "ExampleFile.txt" from the "File Share Source"
DeleteFile("<TAG>Sources/File Share Source</TAG>", "ExampleFile.txt");

DeleteFiles

Declaration

int DeleteFiles(string sourceId[, string fileFilter])

Syntax

DeleteFiles(<sourceId>[, <fileFilter>])

Required parameters

  • sourceId: Fuente de tipo archivo en el proyecto actual

Optional parameters

  • fileFilter: Filtro de archivo o nombre de archivo para anular la definición de la fuente

Description

Elimina uno o más archivos de la fuente especificada.

La fuente de tipo archivo utilizada en esta llamada a función debe estar definida como una fuente en el proyecto actual. Consulte las instrucciones sobre inserción de elementos del proyecto.

Este método eliminará múltiples archivos, si se encuentran, según el filtro de archivo de la definición de la fuente. Se devuelve un entero que especifica cuántos archivos fueron eliminados. Devolver 0 significa que no se encontraron archivos que coincidan con el filtro de archivo.

Si no se puede encontrar una ruta especificada en la fuente, se lanzará un error. Si esa es una posibilidad, la función debe estar envuelta en una función Eval.

Para eliminar un solo archivo, utilice la función DeleteFile en su lugar.

El segundo parámetro, fileFilter, es opcional y se puede utilizar para anular el filtro de archivo utilizado en la definición de la fuente. Se puede utilizar un nombre de archivo. Alternativamente, se puede utilizar una variable global para anular el filtro de archivo en la definición de la fuente. Las variables globales se hacen referencia como [de_name] en la definición de la fuente.

Nota

Los puntos finales creados utilizando el valor del host subyacente del punto final de tipo archivo se incluyen en informe de uso de puntos finales y cuentan para su licencia.

Examples

// Delete all text (".txt") files in the source "File Source"
DeleteFiles("<TAG>Sources/File Source</TAG>","*.txt");

DirList

Declaration

array DirList(string sourceId[, string path, string fileFilter])

Syntax

DirList(<sourceId>[, <path>, <fileFilter>])

Required parameters

  • sourceId: Fuente de tipo archivo en el proyecto actual

Optional parameters

  • path: Ruta del archivo para anular la definición de la fuente
  • fileFilter: Filtro de archivo o nombre de archivo para anular la definición de la fuente

Description

Devuelve una lista de directorios contenidos en una fuente, especificando opcionalmente una ruta y un filtro para restringir los resultados.

Este método devuelve un array que contiene los nombres de los directorios.

La fuente de tipo archivo utilizada en esta llamada a función debe estar definida como una fuente en el proyecto actual. Consulte las instrucciones sobre inserción de elementos del proyecto.

El parámetro fileFilter es opcional y se puede utilizar para anular el filtro de archivo utilizado en la definición de la fuente. Se puede utilizar un nombre de archivo. Alternativamente, se puede utilizar una variable global para anular el filtro de archivo en la definición de la fuente. Las variables globales se hacen referencia como [de_name] en la definición de la fuente.

Nota

Los puntos finales creados utilizando el valor del host subyacente del punto final de tipo archivo se incluyen en informe de uso de puntos finales y cuentan para su licencia.

Examples

// Returns the count of the list of all the text files (".txt")
// in the "example" folder of the source "File Share Source"
Length(DirList("<TAG>Sources/File Share Source</TAG>",
    "\\\\server\\example","*.txt"));

FileList

Declaración

array FileList(string sourceId[, string path, string fileFilter])

Sintaxis

FileList(<sourceId>[, <path>, <fileFilter>])

Parámetros requeridos

  • sourceId: Fuente de tipo archivo en el proyecto actual

Parámetros opcionales

  • path: Ruta del archivo para anular la definición de la fuente
  • fileFilter: Filtro de archivo o nombre de archivo para anular la definición de la fuente

Descripción

Devuelve una lista de nombres de archivos contenidos en una fuente. Esta será la misma lista de archivos recibida cuando se prueba la conexión de una fuente de tipo archivo, a menos que se especifique un filtro de archivo para anular el filtro especificado en la configuración de la actividad.

La fuente de tipo archivo utilizada en esta llamada a la función debe estar definida como una fuente en el proyecto actual. Consulte las instrucciones sobre inserción de elementos del proyecto.

El parámetro path es opcional y se puede usar para anular la ruta utilizada en la definición de la fuente.

El parámetro fileFilter es opcional y se puede usar para anular el filtro de archivo utilizado en la definición de la fuente. Se puede usar un nombre de archivo. Alternativamente, se puede usar una variable global para anular el filtro de archivo en la definición de la fuente. Las variables globales se hacen referencia como [de_name] en la definición de la fuente.

El método devuelve un array que contiene los nombres de archivos que coinciden con el filtro de archivo de la fuente o la fuente anulada.

Nota

Los puntos finales creados utilizando el valor del host subyacente del punto final de tipo archivo se incluyen en informes de uso de puntos finales y cuentan para su licencia.

Ejemplos

// Devuelve el conteo de la lista de
// todos los archivos en la fuente "Fuente de Compartición de Archivos"
Length(FileList("<TAG>Sources/File Share Source</TAG>"));

FlushAllFiles

Declaración

void FlushAllFiles([string targetId])

Sintaxis

FlushAllFiles([<targetId>])

Parámetros opcionales

  • targetId: Objetivo de tipo archivo en el proyecto actual

Descripción

Persiste los datos escritos en un búfer de archivo con WriteFile().

El objetivo de tipo archivo utilizado en esta llamada a la función debe estar definido como un objetivo en el proyecto actual. Consulte las instrucciones sobre inserción de elementos del proyecto.

Si se llama a FlushAllFiles con un targetId como argumento, todos los archivos escritos utilizando ese objetivo serán vaciados (consulte la función FlushFile). Si se llama a FlushAllFiles sin un argumento, todos los archivos escritos utilizando WriteFile a cualquier objetivo serán persistidos a sus respectivos objetivos.

Consulte también la función FlushFiles.

Advertencia

Si un archivo especificado para escritura ya existe, se lanzará un error cuando se llame a FlushFile o FlushAllFiles. Use DeleteFile o DeleteFiles para eliminar archivos existentes antes de vaciar.

Nota

Los puntos finales creados utilizando el valor del host subyacente del punto final de tipo archivo se incluyen en informe de uso de puntos finales y cuentan para su licencia.

Ejemplos

// Write "contents1" to the file specified by the FTP target
WriteFile("<TAG>Targets/FTP Target</TAG>", contents1);

// Write "contents2" to a file "copy.txt",
// overriding that specified by the FTP target
WriteFile("<TAG>Targets/FTP Target</TAG>", contents2, "copy.txt");

// Flush both files to the target
FlushAllFiles("<TAG>Targets/FTP Target</TAG>");

FlushFile

Declaración

void FlushFile(string targetId[, string filename])

Sintaxis

FlushFile(<targetId>[, <filename>])

Parámetros requeridos

  • targetId: Objetivo de tipo archivo en el proyecto actual

Parámetros opcionales

  • filename: Nombre del archivo para sobrescribir la definición del objetivo

Descripción

Persiste los datos escritos en un búfer de archivo con WriteFile. Cuando se llama a FlushFile, el contenido actual del búfer se escribe en el objetivo y el búfer local se descarta.

El objetivo de tipo archivo utilizado en esta llamada a función debe estar definido como un objetivo en el proyecto actual. Consulte las instrucciones sobre inserción de elementos del proyecto.

El parámetro opcional, filename, se puede utilizar para sobrescribir el nombre del archivo utilizado en la definición del objetivo si se sobrescribió de manera similar en la llamada a la función WriteFile. Vaciar un archivo que nunca ha sido escrito no tiene efecto.

Alternativamente, se puede utilizar una variable global para sobrescribir el nombre del archivo en la definición del objetivo. Las variables globales se hacen referencia como [de_name] en la definición del objetivo. Si se utiliza un nombre de archivo de sobrescritura, cada búfer se vacía por separado para cada nombre único.

Consulte también la función FlushAllFiles.

Advertencia

Si un archivo especificado para escritura ya existe, se generará un error cuando se llame a FlushFile o FlushAllFiles. Utilice DeleteFile o DeleteFiles para eliminar archivos existentes antes de vaciar.

Nota

Los puntos finales creados utilizando el valor del host subyacente del punto final de tipo archivo se incluyen en informe de uso de puntos finales y cuentan para su licencia.

Ejemplos

// Writing the variable "contents" to a target
WriteFile("<TAG>Targets/FTP Target</TAG>", contents);

// Flushing (actually writing) to the target
FlushFile("<TAG>Targets/FTP Target</TAG>");

// Write another file (overriding the filename in the target)
WriteFile("<TAG>Targets/FTP Target</TAG>", contents, "test.txt");

// Flushing the "test.txt" file explicitly
FlushFile("<TAG>Targets/FTP Target</TAG>", "test.txt");

ReadFile

Declaración

string ReadFile(string sourceId[, string fileFilter])

Sintaxis

ReadFile(<sourceId>[, <fileFilter>])

Parámetros requeridos

  • sourceId: Fuente de tipo archivo en el proyecto actual

Parámetros opcionales

  • fileFilter: Filtro de archivo o nombre de archivo para anular la definición de origen

Descripción

Lee el contenido de un archivo desde un origen.

El origen de tipo archivo utilizado en esta llamada a función debe estar definido como un origen en el proyecto actual. Consulte las instrucciones sobre inserción de elementos del proyecto.

El método devuelve el contenido del archivo al que apunta el origen. Si el filtro de origen selecciona más de un archivo, se utilizará el primero. Se recomienda especificar un origen que identifique de manera única un solo archivo.

El parámetro fileFilter es opcional y se puede utilizar para anular el filtro de archivo utilizado en la definición de origen. Se puede usar un nombre de archivo. Alternativamente, se puede usar una variable global para anular el filtro de archivo en la definición de origen. Las variables globales se hacen referencia como [de_name] en la definición de origen.

A partir de Harmony versión 8.20, si la función ReadFile() falla, la operación no falla. Un script se abortará, se añadirá una advertencia al registro de operaciones y la operación continuará.

Este método se puede utilizar para leer datos de un origen HTTP. En ese caso, todas las variables de Jitterbit $jitterbit.source.http.* se poblarán.

Advertencia

Esta función no funciona de manera confiable con archivos que tienen contenido binario, ya que generalmente solo leerá una porción del archivo. Si el archivo tiene contenido binario, utilice la función Base64encodefile en su lugar para leer el contenido completo del archivo.

Nota

Los puntos finales creados utilizando el valor del host subyacente del punto final de tipo archivo se incluyen en informe de uso de puntos finales y cuentan para su licencia.

Ejemplos

$fileContents = ReadFile("<TAG>Sources/File Share Source</TAG>")

WriteFile

Declaración

void WriteFile(string targetId, type fileContents[, string filename])

Sintaxis

WriteFile(<targetId>, <fileContents>[, <filename>])

Parámetros requeridos

  • targetId: Objetivo de tipo archivo en el proyecto actual

Parámetros opcionales

  • fileContents: Datos que se escribirán en el archivo
  • filename: Nombre del archivo para sobrescribir la definición del objetivo

Descripción

Escribe los fileContents en el objetivo de tipo archivo especificado por targetId. Si fileContents es de tipo binario, los datos binarios se escriben en el archivo. En todos los demás casos, se escribe una representación en cadena de los datos.

El objetivo de tipo archivo utilizado en esta llamada a la función debe estar definido como un objetivo en el proyecto actual. Consulte las instrucciones sobre insertar elementos del proyecto.

El tercer parámetro, filename, es opcional y se puede utilizar para sobrescribir el nombre del archivo utilizado en el objetivo. Alternativamente, se puede utilizar una variable global para sobrescribir el nombre del archivo en la definición del objetivo. Las variables globales se hacen referencia como [de_name] en la definición del objetivo.

Este método también se puede utilizar para escribir/publicar datos en un objetivo HTTP. En ese caso, las variables $jitterbit.target.http.* se poblarán.

A partir de Harmony versión 8.20, si la función WriteFile() falla, la operación no falla. Un script se abortará, se añadirá una advertencia al registro de operaciones y la operación continuará.

Buffering y flushing

Los contenidos del archivo se almacenan en búfer localmente hasta que se llame a FlushFile o FlushAllFiles en el objetivo o la transformación finalice con éxito. Llamar a WriteFile varias veces sin llamar a FlushFile añadirá datos al búfer actual y todo se escribirá en el objetivo de tipo archivo real solo cuando se vacíe. Un búfer de archivo se identifica de manera única por el objetivo (y potencialmente el filename); por ejemplo, el mismo objetivo se puede utilizar para escribir en diferentes archivos en el mismo directorio especificando un nombre de archivo y cada búfer de archivo será separado.

Los archivos no se escriben realmente en el destino en una transformación de prueba a menos que se llame a FlushFile o FlushAllFiles. Si se ejecuta una transformación en una operación o como parte de una operación de prueba, el archivo se escribirá cuando la transformación finalice con éxito o cuando se llame a FlushFile o FlushAllFiles en el script.

Consulte también las funciones FlushAllFiles y FlushFiles.

Advertencia

Si un archivo especificado para escritura ya existe, se generará un error cuando se llame a FlushFile o FlushAllFiles. Use DeleteFile o DeleteFiles para eliminar archivos existentes antes de vaciar.

Nota

Los puntos finales creados utilizando el valor del host subyacente del punto final de tipo archivo se incluyen en informe de uso de puntos finales y cuentan para su licencia.

Examples

// Write "contents" to a file in a target
WriteFile("<TAG>Targets/FTP Target</TAG>", contents);

// Use the filename "test.txt" instead of
// what is defined in the target
WriteFile("<TAG>Targets/FTP Target</TAG>", contents, "test.txt");