Funciones de Archivo
Las funciones de archivo permiten que los secuencias de comandos manipulen archivos en los agentes, disponibles a través de fuentes y escritos en destinos.
Nota
Caracteres especiales utilizados para codificación porcentual (también conocido como codificación URL) los nombres de archivos son compatibles con 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 de archivo en el proyecto actualtargetId
: Destino de tipo de archivo en el proyecto actual
Parámetros Opcionales
deleteSource
: Bandera booleana (predeterminadafalse
) que indica si la fuente se eliminará después de escribir correctamente en el destino
Descripción
Lee un archivo de un origen de tipo de archivo y lo escribe en un destino de tipo de archivo. Esta función combina la ReadFile
y WriteFile
funciones, realiza automáticamente FlushFile
y proporciona una opción para eliminar el archivo fuente.
El tipo de archivo fuente y el tipo de archivo destino utilizados en esta llamada de función deben definirse como origen y destino, respectivamente, en el proyecto actual. Consulte las instrucciones sobre insertar elementos del proyecto.
Como solo se archiva un archivo, se recomienda crear la fuente para devolver solo un archivo. Si se devuelven varios archivos, solo se utilizará el primero.
Como elwriteFile
función, esta función no sobrescribirá un archivo existente en el destino.
Si el ArchiveFile
la función falla, la operación no falla. Se cancelará un secuencia de comandos, se agregará una advertencia al registro de operación y la operación continuará.
Archivar Versus Copiar
- Si
deleteSource
estrue
, el archivo se archiva (en otras palabras, se mueve) del origen al destino y se elimina del origen. - Si
deleteSource
esfalse
, el archivo se copia del origen al destino y permanece en el origen.
INFO: Esta función está disponible en Harmony versión 8.26 y más alto.
Ejemplos
// 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 [nombre de archivo] in the target filename(s) field
ArchiveFile("<TAG>Sources/Local File Source</TAG>",
"<TAG>Targets/FTP Target</TAG>", true);
// Copies a file, using [nombre de archivo] in the target filename(s) field
ArchiveFile("<TAG>Sources/Local File Source</TAG>",
"<TAG>Targets/FTP Target</TAG>", false);
DeleteFile
Declaración
int DeleteFile(string sourceId[, string fileFilter])
Sintaxis
DeleteFile(<sourceId>[, <fileFilter>])
Parámetros Requeridos
sourceId
: Fuente de tipo de 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
Elimina un archivo de la fuente especificada.
La fuente de tipo de archivo utilizada en esta llamada de función debe definirse como fuente en el proyecto actual. Consulte las instrucciones sobre insertar elementos del proyecto.
Si el filtro de origen selecciona más de un archivo, se generará un error. Para eliminar varios archivos, utilice el DeleteFiles
funcionar en su lugar.
El método devuelve un número entero de 0 o 1: devuelve 1 si el archivo fue eliminado; 0 si no se pudo encontrar el archivo.
El segundo parámetro, fileFilter
, es opcional y se puede utilizar para anular el filtro de archivos utilizado en la definición de origen. Se puede utilizar un nombre de archivo. Alternativamente, se puede utilizar una variable global para anular el filtro de archivos en la definición de origen. Se hace referencia a las variables globales como [de_name]
en la definición de fuente.
Ejemplos
// Delete the file "ExampleFile.txt" from the "File Share Source"
DeleteFile("<TAG>Sources/File Share Source</TAG>", "ExampleFile.txt");
DeleteFiles
Declaración
int DeleteFiles(string sourceId[, string fileFilter])
Sintaxis
DeleteFiles(<sourceId>[, <fileFilter>])
Parámetros Requeridos
sourceId
: Fuente de tipo de 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
Elimina uno o más archivos de la fuente especificada.
La fuente de tipo de archivo utilizada en esta llamada de función debe definirse como fuente en el proyecto actual. Consulte las instrucciones sobre insertar elementos del proyecto.
Este método eliminará varios archivos, si se encuentra alguno, según el filtro de archivos de la definición de origen. Se devuelve un número entero que especifica cuántos archivos se eliminaron. Devolver 0 significa que no se encontraron archivos que coincidan con el filtro de archivos.
Si no se puede encontrar una ruta especificada en la fuente, se generará un error. Si esa es una posibilidad, la función debe estar envuelta en un Eval
función.
Para eliminar un solo archivo, utilice el DeleteFile
funcionar en su lugar.
El segundo parámetro, fileFilter
, es opcional y se puede utilizar para anular el filtro de archivos utilizado en la definición de origen. Se puede utilizar un nombre de archivo. Alternativamente, se puede utilizar una variable global para anular el filtro de archivos en la definición de origen. Se hace referencia a las variables globales como [de_name]
en la definición de fuente.
Ejemplos
// Delete all text (".txt") files in the source "File Source"
DeleteFiles("<TAG>Sources/File Source</TAG>","*.txt");
DirList
Declaración
array DirList(string sourceId[, string path, string fileFilter])
Sintaxis
DirList(<sourceId>[, <path>, <fileFilter>])
Parámetros Requeridos
sourceId
: Fuente de tipo de archivo en el proyecto actual
Parámetros Opcionales
path
: Ruta del archivo para anular la definición de origenfileFilter
: Filtro de archivo o nombre de archivo para anular la definición de origen
Descripción
Devuelve una lista de directorios contenidos en una fuente, especificando opcionalmente una ruta y un filtro para restringir los resultados.
Este método devuelve una matriz que contiene los nombres de los directorios.
La fuente de tipo de archivo utilizada en esta llamada de función debe definirse como fuente en el proyecto actual. Consulte las instrucciones sobre insertar elementos del proyecto.
El parámetro fileFilter
es opcional y se puede utilizar para anular el filtro de archivos utilizado en la definición de origen. Se puede utilizar un nombre de archivo. Alternativamente, se puede utilizar una variable global para anular el filtro de archivos en la definición de origen. Se hace referencia a las variables globales como [de_name]
en la definición de fuente.
Ejemplos
// 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 de archivo en el proyecto actual
Parámetros Opcionales
path
: Ruta del archivo para anular la definición de origenfileFilter
: Filtro de archivo o nombre de archivo para anular la definición de origen
Descripción
Devuelve una lista de nombres de archivos contenidos en una fuente. Esta será la misma lista de archivos recibidos cuando se prueba la conexión de una fuente de tipo de archivo, a menos que se especifique un filtro de archivos para anular el filtro especificado en la configuración de la actividad.
La fuente de tipo de archivo utilizada en esta llamada de función debe definirse como fuente en el proyecto actual. Consulte las instrucciones sobre insertar elementos del proyecto.
El parámetro path
es opcional y se puede utilizar para anular la ruta utilizada en la definición de origen.
El parámetro fileFilter
es opcional y se puede utilizar para anular el filtro de archivos utilizado en la definición de origen. Se puede utilizar un nombre de archivo. Alternativamente, se puede utilizar una variable global para anular el filtro de archivos en la definición de origen. Se hace referencia a las variables globales como [de_name]
en la definición de fuente.
El método devuelve una matriz que contiene los nombres de archivos que coinciden con el filtro de archivos de la fuente o la fuente anulada.
Ejemplos
// Returns the count of the list of
// all the files in the source "File Share Source"
Length(FileList("<TAG>Sources/File Share Source</TAG>"));
FlushAllFiles
Declaración
void FlushAllFiles([string targetId])
Sintaxis
FlushAllFiles([<targetId>])
Parámetros Opcionales
targetId
: Destino de tipo de archivo en el proyecto actual
Descripción
Persiste los datos escritos en un búfer de archivos con WriteFile()
.
El destino del tipo de archivo utilizado en esta llamada de función debe definirse como un destino en el proyecto actual. Consulte las instrucciones sobre insertar elementos del proyecto.
Si FlushAllFiles
son llamados con un targetId
como argumento, todos los archivos escritos utilizando ese destino se eliminarán (consulte la FlushFile
función). Si FlushAllFiles
se llama sin argumento, todos los archivos escritos usando WriteFile
a cualquier objetivo se mantendrá en sus respectivos objetivos.
Ver también el FlushFiles
función.
Advertencia
Si un archivo especificado para escritura ya existe, se generará un error cuando FlushFile
o FlushAllFiles
se llama. Usar DeleteFile
o DeleteFiles
para eliminar los archivos existentes antes de vaciarlos.
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
: Destino de tipo de archivo en el proyecto actual
Parámetros Opcionales
filename
: Nombre de archivo para anular la definición de destino
Descripción
Persiste los datos escritos en un búfer de archivos con WriteFile
. Cuando FlushFile
se llama, el contenido actual del búfer se escribe en el destino y el búfer local se descarta.
El destino del tipo de archivo utilizado en esta llamada de función debe definirse como un destino en el proyecto actual. Consulte las instrucciones sobre insertar elementos del proyecto.
El parámetro opcional, filename
, se puede utilizar para anular el nombre de archivo utilizado en la definición de destino si se anuló de manera similar en la llamada al WriteFile
función. Vaciar un archivo en el que nunca se ha escrito no tiene ningún efecto.
Alternativamente, se puede utilizar una variable global para anular el nombre del archivo en la definición de destino. Se hace referencia a las variables globales como [de_name]
en la definición de destino. Si se utiliza un nombre de archivo de anulación, cada búfer se vacía por separado para cada nombre único.
Ver también el FlushAllFiles
función.
Advertencia
Si un archivo especificado para escritura ya existe, se generará un error cuando FlushFile
o FlushAllFiles
se llama. Usar DeleteFile
o DeleteFiles
para eliminar los archivos existentes antes de vaciarlos.
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 de 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 de una fuente.
La fuente de tipo de archivo utilizada en esta llamada de función debe definirse como fuente en el proyecto actual. Consulte las instrucciones sobre insertar elementos del proyecto.
El método devuelve el contenido del archivo al que apunta la fuente. Si el filtro de origen selecciona más de un archivo, se utilizará el primero. Se recomienda especificar una fuente que identifique de forma única un único archivo.
El parámetro fileFilter
es opcional y se puede utilizar para anular el filtro de archivos utilizado en la definición de origen. Se puede utilizar un nombre de archivo. Alternativamente, se puede utilizar una variable global para anular el filtro de archivos en la definición de origen. Se hace referencia a las variables globales como [de_name]
en la definición de fuente.
A partir de Harmony versión 8.20, Si el ReadFile()
la función falla, la operación no falla. Se cancelará un secuencia de comandos, se agregará una advertencia al registro de operación y la operación continuará.
Este método se puede utilizar para leer datos de una fuente HTTP. En ese caso, todo Jitterbit $jitterbit.source.http.*
Se completarán las variables.
Advertencia
Esta función no funciona de manera confiable con archivos que tienen contenido binario, ya que generalmente leerá solo una parte del archivo. Si el archivo tiene contenido binario, use Base64EncodeFile funcionan en su lugar para leer todo el contenido del archivo.
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
: Destino de tipo de archivo en el proyecto actual
Parámetros Opcionales
fileContents
: Datos que se escribirán en el archivofilename
: Nombre de archivo para anular la definición de destino
Descripción
Escribe el fileContents
al destino del tipo de 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 de cadena de los datos.
El destino del tipo de archivo utilizado en esta llamada de función debe definirse como un destino en el proyecto actual. Consulte las instrucciones sobre insertar elementos del proyecto.
El tercer parámetro, filename
, es opcional y se puede utilizar para anular el nombre de archivo utilizado en el destino. Alternativamente, se puede utilizar una variable global para anular el nombre del archivo en la definición de destino. Se hace referencia a las variables globales como [de_name]
en la definición de destino.
Este método también se puede utilizar para escribir/publicar datos en un destino HTTP. En ese caso, $jitterbit.target.http.*
Se completarán las variables.
A partir de Harmony versión 8.20, Si el WriteFile()
la función falla, la operación no falla. Se cancelará un secuencia de comandos, se agregará una advertencia al registro de operación y la operación continuará.
Almacenamiento en Búfer y Lavado
El contenido del archivo se almacena localmente hasta que FlushFile
o FlushAllFiles
se llama en el objetivo o la transformación finaliza con éxito. Vocación WriteFile
varias veces sin llamar FlushFile
agregará datos al búfer actual y todo se escribirá en el destino del tipo de archivo real solo cuando se vacíe. Un búfer de archivos está identificado de forma única por el destino (y potencialmente por el filename
); por ejemplo, se puede usar el mismo destino para escribir en diferentes archivos en el mismo directorio especificando un nombre de archivo y cada búfer de archivo estará separado.
En realidad, los archivos no se escriben en el destino en una transformación de prueba a menos que FlushFile
o FlushAllFiles
se llama. 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 exitosamente o cuando FlushFile
o FlushAllFiles
se llama en el secuencia de comandos.
Ver también el FlushAllFiles
y FlushFiles
funciones.
Advertencia
Si un archivo especificado para escritura ya existe, se generará un error cuando FlushFile
o FlushAllFiles
se llama. Usar DeleteFile
o DeleteFiles
para eliminar los archivos existentes antes de vaciarlos.
Ejemplos
// 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");