Saltar al contenido

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 actual
  • targetId: Destino de tipo de archivo en el proyecto actual

Parámetros Opcionales

  • deleteSource: Bandera booleana (predeterminada false) 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 WriteFilefunciones, 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 elwriteFilefunció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 es true, el archivo se archiva (en otras palabras, se mueve) del origen al destino y se elimina del origen.
  • Si deleteSource es false, 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 DeleteFilesfuncionar 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 origen
  • fileFilter: 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 origen
  • fileFilter: 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 archivo
  • filename: 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 FlushAllFilesse llama. Usar DeleteFile o DeleteFilespara 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");