Saltar al contenido

Funciones de Archivo

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

Nota

Caracteres especiales utilizados para codificación porcentual (también conocido como codificación URL) los nombres de archivo son compatibles con las 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: Indicador booleano (predeterminado false) que indica si la fuente debe eliminarse después de escribir con éxito 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 de origen.

El origen de tipo de archivo y el destino de tipo de archivo 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 que la fuente se cree 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 la operación y la operación continuará.

Archivar Frente a 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 [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

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 una 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 DeleteFilesfunción en su lugar.

El método devuelve un número entero de 0 o 1: devuelve 1 si se eliminó el archivo; 0 si no se pudo encontrar el archivo.

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

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 del origen especificado.

La fuente de tipo de archivo utilizada en esta llamada de función debe definirse como una 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 específica 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 función en su lugar.

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

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 una 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 archivo utilizado en la definición de origen. Se puede utilizar un nombre de archivo. Como alternativa, se puede usar una variable global para anular el filtro de archivo en la definición de origen. Las variables globales se referencian como [de_name] en la definición de origen.

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 archivo contenidos en una fuente. Esta será la misma lista de archivos recibidos cuando se prueba la conexión de un origen 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 una 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 archivo utilizado en la definición de origen. Se puede utilizar un nombre de archivo. Como alternativa, se puede usar una variable global para anular el filtro de archivo en la definición de origen. Las variables globales se referencian como [de_name] en la definición de origen.

El método devuelve una matriz que contiene los nombres de archivo 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 archivo con WriteFile().

El destino de 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 se llaman con un targetId como argumento, todos los archivos escritos usando ese destino serán vaciados (vea el FlushFile función). Si FlushAllFiles se llama sin un argumento, todos los archivos escritos usando WriteFile a cualquier objetivo se mantendrá en sus respectivos objetivos.

Véase también el FlushFiles función.

Advertencia

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

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 archivo 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 de 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 usar 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.

Como alternativa, se puede utilizar una variable global para anular el nombre de archivo en la definición de destino. Las variables globales se referencian como [de_name] en la definición de destino. Si se usa un nombre de archivo anulado, cada búfer se vacía por separado para cada nombre único.

Véase también el FlushAllFiles función.

Advertencia

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

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 una fuente en el proyecto actual. Consulte las instrucciones sobre insertar elementos del proyecto.

El método devuelve el contenido del archivo señalado por 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 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 utilizar un nombre de archivo. Como alternativa, se puede usar una variable global para anular el filtro de archivo en la definición de origen. Las variables globales se referencian como [de_name] en la definición de origen.

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 la 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 normalmente solo leerá una parte del archivo. Si el archivo tiene contenido binario, utilice 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 a escribir en el archivo
  • filename: Nombre de archivo para anular la definición de destino

Descripción

escribe el fileContents al tipo de archivo de destino 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 de 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. Como alternativa, se puede utilizar una variable global para anular el nombre de archivo en la definición de destino. Las variables globales se referencian 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 la operación y la operación continuará.

Amortiguación y Lavado

El contenido del archivo se almacena en búfer localmente hasta que FlushFile o FlushAllFiles se invoca en el destino o la transformación finaliza correctamente. 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 archivo se identifica de forma única por el objetivo (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.

Los archivos no se escriben realmente 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 correctamente o cuando FlushFile o FlushAllFiles se llama en el secuencia de comandos.

Véase también el FlushAllFiles y FlushFiles funciones

Advertencia

Si ya existe un archivo especificado para escritura, se generará un error cuando FlushFileo FlushAllFilesse llama. Usar DeleteFileo DeleteFilespara eliminar archivos existentes antes de vaciar.

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");