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 actualtargetId
: Destino de tipo archivo en el proyecto actual
Parámetros opcionales
deleteSource
: Bandera booleana (por defectofalse
) 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
estrue
, el archivo se archiva (en otras palabras, se mueve) de la fuente al destino y se elimina de la fuente. - Si
deleteSource
esfalse
, 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 fuentefileFilter
: 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 fuentefileFilter
: 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 archivofilename
: 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");