Funções de arquivo no Jitterbit Integration Studio
As funções de arquivo permitem que scripts manipulem arquivos em agentes, disponíveis através de atividades baseadas em arquivos configuradas que podem ser usadas como fontes ou destinos.
Note
Caracteres especiais usados para codificação percentual (também conhecida como codificação de URL) em nomes de arquivos são suportados para transferências FTP e SFTP no Integration Studio.
ArchiveFile
Declaração
void ArchiveFile(string sourceId, string targetId[, bool deleteSource])
Sintaxe
ArchiveFile(<sourceId>, <targetId>[, <deleteSource>])
Parâmetros obrigatórios
sourceId
: Um caminho de referência de string para uma atividade associada a um endpoint do tipo arquivo no projeto atualtargetId
: Um caminho de referência de string para uma atividade associada a um endpoint do tipo arquivo no projeto atual
Parâmetros opcionais
deleteSource
: Flag booleano (padrãofalse
) indicando se a fonte deve ser deletada após a gravação bem-sucedida no destino
Descrição
Lê um arquivo de uma atividade de fonte do tipo arquivo e o grava em uma atividade de destino do tipo arquivo. Esta função combina as funções ReadFile
e WriteFile
, executa automaticamente FlushFile
e fornece uma opção para deletar o arquivo fonte.
A fonte e o destino usados nesta chamada de função devem ser definidos como atividades associadas a endpoints do tipo arquivo no projeto atual. Isso inclui atividades configuradas de Compartilhamento de Arquivos, FTP, HTTP, Armazenamento Local e Armazenamento Temporário. Para mais informações, consulte as instruções sobre como inserir endpoints na seção Endpoints em Jitterbit Script.
Como apenas um arquivo é arquivado, é recomendável que a fonte seja criada para retornar apenas um único arquivo. Se vários arquivos forem retornados, apenas o primeiro será utilizado.
Como a função WriteFile
, esta função não sobrescreverá um arquivo existente no destino.
Se a função ArchiveFile
falhar, a operação não falha. Um script será abortado, um aviso será adicionado ao log da operação e a operação continuará.
Arquivar versus copiar
- Se
deleteSource
fortrue
, o arquivo é arquivado (em outras palavras, movido) da origem para o destino e removido da origem. - Se
deleteSource
forfalse
, o arquivo é copiado da origem para o destino e permanece na origem.
Nota
Os endpoints criados usando o valor do host subjacente do endpoint do tipo arquivo estão incluídos na reportagem de uso de endpoints e contam para sua licença.
Exemplos
// Retrieve list of files from a source
localFiles = FileList("<TAG>activity:localstorage/Local Storage Endpoint/localstorage_read/CSV Files</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>activity:localstorage/Local Storage Endpoint/localstorage_read/CSV Files</TAG>",
"<TAG>activity:ftp/FTP Endpoint/ftp_write/FTP Files</TAG>", true);
// Copies a file, using [archiveFilename] in the target filename(s) field
ArchiveFile("<TAG>activity:localstorage/Local Storage Endpoint/localstorage_read/CSV Files</TAG>",
"<TAG>activity:ftp/FTP Endpoint/ftp_write/FTP Files</TAG>", false);
DeleteFile
Declaração
int DeleteFile(string sourceId[, string fileFilter])
Sintaxe
DeleteFile(<sourceId>[, <fileFilter>])
Parâmetros obrigatórios
sourceId
: Um caminho de referência de string para uma atividade associada a um endpoint do tipo arquivo no projeto atual
Parâmetros opcionais
fileFilter
: Filtro de arquivo ou nome de arquivo para substituir a configuração da atividade
Descrição
Exclui um arquivo da origem especificada.
A origem usada nesta chamada de função deve ser definida como uma atividade associada a um endpoint do tipo arquivo no projeto atual. Isso inclui atividades configuradas de Compartilhamento de Arquivos, FTP, HTTP, Armazenamento Local e Armazenamento Temporário. Para mais informações, consulte as instruções sobre como inserir endpoints na seção Endpoints em Jitterbit Script.
Se o filtro de origem selecionar mais de um arquivo, um erro será gerado. Para excluir vários arquivos, use a função DeleteFiles
.
O método retorna um inteiro que pode ser 0 ou 1: retorna 1 se o arquivo foi excluído; 0 se o arquivo não pôde ser encontrado.
O segundo parâmetro, fileFilter
, é opcional e pode ser usado para substituir o filtro de arquivo utilizado na configuração da atividade. Um nome de arquivo pode ser usado. Alternativamente, uma variável global pode ser utilizada para substituir o filtro de arquivo na configuração da atividade. Variáveis globais são referenciadas como [de_name]
na configuração da atividade.
Nota
Os endpoints criados usando o valor do host subjacente do endpoint do tipo de arquivo estão incluídos no relatório de uso de endpoints e contam para sua licença.
Exemplos
// Delete the file "ExampleFile.txt" from the "CSV Files"
DeleteFile("<TAG>activity:localstorage/Local Storage Endpoint/localstorage_read/CSV Files</TAG>",
"ExampleFile.txt");
DeleteFiles
Declaração
int DeleteFiles(string sourceId[, string fileFilter])
Sintaxe
DeleteFiles(<sourceId>[, <fileFilter>])
Parâmetros obrigatórios
sourceId
: Um caminho de referência de string para uma atividade associada a um endpoint do tipo de arquivo no projeto atual
Parâmetros opcionais
fileFilter
: Filtro de arquivo ou nome de arquivo para substituir a configuração da atividade
Descrição
Exclui um ou mais arquivos da fonte especificada.
A fonte utilizada nesta chamada de função deve ser definida como uma atividade associada a um endpoint do tipo de arquivo no projeto atual. Isso inclui atividades configuradas de Compartilhamento de Arquivos, FTP, HTTP, Armazenamento Local e Armazenamento Temporário. Para mais informações, consulte as instruções sobre como inserir endpoints na seção Endpoints em Jitterbit Script.
Este método irá deletar múltiplos arquivos, caso algum seja encontrado, com base no filtro de arquivos da configuração da atividade. Um inteiro é retornado especificando quantos arquivos foram deletados. Retornar 0 significa que nenhum arquivo correspondente ao filtro de arquivos foi encontrado.
Se um caminho especificado na origem não puder ser encontrado, um erro será gerado. Se essa for uma possibilidade, a função deve ser envolvida em uma função Eval
.
Para deletar um único arquivo, use a função DeleteFile
.
O segundo parâmetro, fileFilter
, é opcional e pode ser usado para substituir o filtro de arquivos utilizado na configuração da atividade. Um nome de arquivo pode ser usado. Alternativamente, uma variável global pode ser usada para substituir o filtro de arquivos na configuração da atividade. Variáveis globais são referenciadas como [de_name]
na configuração da atividade.
Nota
Endpoints criados usando o valor do host subjacente do endpoint do tipo de arquivo estão incluídos no relatório de uso de endpoints e contam para sua licença.
Exemplos
// Delete all text (".txt") files in the "FTP Files"
DeleteFiles("<TAG>activity:ftp/FTP Endpoint/ftp_read/FTP Files</TAG>", "*.txt");
DirList
Declaração
array DirList(string sourceId[, string path, string fileFilter])
Sintaxe
DirList(<sourceId>[, <path>, <fileFilter>])
Parâmetros obrigatórios
sourceId
: Um caminho de referência em string para uma atividade associada a um endpoint do tipo de arquivo no projeto atual
Parâmetros opcionais
path
: Caminho do arquivo para substituir a configuração da atividade**fileFilter
:** Filtro de arquivos ou nome de arquivo para substituir a configuração da atividade
Descrição
Retorna uma lista de diretórios contidos em uma origem, especificando opcionalmente um caminho e um filtro para restringir os resultados.
Este método retorna um array contendo os nomes dos diretórios.
A fonte utilizada nesta chamada de função deve ser definida como uma atividade associada a um endpoint do tipo arquivo no projeto atual. Isso inclui atividades configuradas de Compartilhamento de Arquivos, FTP, HTTP, Armazenamento Local e Armazenamento Temporário. Para mais informações, consulte as instruções sobre como inserir endpoints na seção Endpoints em Jitterbit Script.
O parâmetro fileFilter
é opcional e pode ser usado para substituir o filtro de arquivo utilizado na configuração da atividade. Um nome de arquivo pode ser utilizado. Alternativamente, uma variável global pode ser usada para substituir o filtro de arquivo na configuração da atividade. Variáveis globais são referenciadas como [de_name]
na configuração da atividade.
Nota
Endpoints criados usando o valor do host subjacente do endpoint do tipo arquivo estão incluídos na reportagem de uso de endpoints e contam para sua licença.
Exemplos
// Returns the count of the list of all the text
// files (".txt") in the "example" folder of the
// File Share Read "File Share"
Length(DirList("<TAG>activity:fileshare/File Share Endpoint/fileshare_read/File Share</TAG>",
"\\\\server\\example","*.txt"));
FileList
Declaração
array FileList(string sourceId[, string path, string fileFilter])
Sintaxe
FileList(<sourceId>[, <path>, <fileFilter>])
Parâmetros obrigatórios
sourceId
: Um caminho de referência de string para uma atividade associada a um endpoint do tipo arquivo no projeto atual
Parâmetros opcionais
path
: Caminho do arquivo para substituir a configuração da atividadefileFilter
: Filtro de arquivo ou nome de arquivo para substituir a configuração da atividade
Descrição
Retorna uma lista de nomes de arquivos contidos em uma fonte. Esta será a mesma lista de arquivos recebida quando a conexão de uma fonte do tipo arquivo é testada, a menos que um filtro de arquivo seja especificado para substituir o filtro especificado na configuração da atividade.
A fonte utilizada nesta chamada de função deve ser definida como uma atividade associada a um endpoint do tipo arquivo no projeto atual. Isso inclui atividades configuradas de Compartilhamento de Arquivos, FTP, HTTP, Armazenamento Local e Armazenamento Temporário. Para mais informações, consulte as instruções sobre como inserir endpoints na seção Endpoints em Jitterbit Script.
O parâmetro path
é opcional e pode ser usado para substituir o caminho utilizado na configuração da atividade.
O parâmetro fileFilter
é opcional e pode ser usado para substituir o filtro de arquivo utilizado na configuração da atividade. Um nome de arquivo pode ser utilizado. Alternativamente, uma variável global pode ser usada para substituir o filtro de arquivo na configuração da atividade. Variáveis globais são referenciadas como [de_name]
na configuração da atividade.
O método retorna um array contendo os nomes dos arquivos que correspondem ao filtro de arquivo da atividade de origem ou à origem substituída.
Nota
Endpoints criados usando o valor do host subjacente do endpoint do tipo arquivo estão incluídos na reportagem de uso de endpoints e contam para sua licença.
Exemplos
// Retorna a contagem da lista de todos os
// arquivos no endpoint FTP "FTP Files"
Length(FileList("<TAG>activity:ftp/FTP Endpoint/ftp_read/FTP Files</TAG>"));
FlushAllFiles
Declaração
void FlushAllFiles([string targetId])
Sintaxe
FlushAllFiles([<targetId>])
Parâmetros opcionais
targetId
: Um caminho de referência de string para uma atividade associada a um endpoint do tipo arquivo no projeto atual
Descrição
Persiste dados escritos em um buffer de arquivo com WriteFile
.
O alvo usado nesta chamada de função deve ser definido como uma atividade associada a um endpoint do tipo arquivo no projeto atual. Isso inclui atividades configuradas de Compartilhamento de Arquivos, FTP, HTTP, Armazenamento Local e Armazenamento Temporário. Para mais informações, consulte as instruções sobre como inserir endpoints na seção Endpoints em Jitterbit Script.
Se FlushAllFiles
for chamado com um targetId
como argumento, todos os arquivos escritos usando esse alvo serão descartados (veja a função FlushFile
). Se FlushAllFiles
for chamado sem um argumento, todos os arquivos escritos usando WriteFile
para quaisquer atividades usadas como alvos serão persistidos em seus respectivos alvos.
Veja também a função FlushFiles
.
Aviso
Se um arquivo especificado para gravação já existir, um erro será gerado quando FlushFile
ou FlushAllFiles
for chamado. Use DeleteFile
ou DeleteFiles
para remover arquivos existentes antes de descartar.
Nota
Endpoints criados usando o valor do host subjacente do endpoint do tipo arquivo estão incluídos na reportagem de uso de endpoints e contam para sua licença.
Examples
// Write the value of "contents1" to the file specified by
// the FTP Write activity "FTP Files"
WriteFile("<TAG>activity:ftp/FTP Endpoint/ftp_write/FTP Files</TAG>",
contents1);
// Write the value of "contents2" to a file "copy.txt", overriding
// that specified by the FTP Write activity "FTP Files"
WriteFile("<TAG>activity:ftp/FTP Endpoint/ftp_write/FTP Files</TAG>",
contents2, "copy.txt");
// Flush both files to the FTP Write activity "FTP Files"
FlushAllFiles("<TAG>activity:ftp/FTP Endpoint/ftp_write/FTP Files</TAG>");
FlushFile
Declaration
void FlushFile(string targetId[, string filename])
Syntax
FlushFile(<targetId>[, <filename>])
Required parameters
targetId
: Um caminho de referência de string para uma atividade associada a um endpoint do tipo arquivo no projeto atual
Optional parameters
filename
: Nome do arquivo para substituir a configuração da atividade
Description
Persiste dados escritos em um buffer de arquivo com WriteFile
. Quando FlushFile
é chamado, o conteúdo atual do buffer é escrito no alvo e o buffer local é descartado.
O destino usado nesta chamada de função deve ser definido como uma atividade associada a um endpoint do tipo arquivo no projeto atual. Isso inclui atividades configuradas de Compartilhamento de Arquivos, FTP, HTTP, Armazenamento Local e Armazenamento Temporário. Para mais informações, consulte as instruções sobre como inserir endpoints na seção Endpoints em Jitterbit Script.
O parâmetro opcional, filename
, pode ser usado para substituir o nome do arquivo usado na configuração da atividade se ele tiver sido igualmente substituído na chamada da função WriteFile
. Descartar um arquivo que nunca foi escrito não tem efeito.
Alternativamente, uma variável global pode ser usada para substituir o nome do arquivo na configuração da atividade. Variáveis globais são referenciadas como [de_name]
na configuração da atividade. Se um nome de arquivo substituto for usado, cada buffer é descartado separadamente para cada nome único.
Veja também a função FlushAllFiles
.
Aviso
Se um arquivo especificado para gravação já existir, um erro será gerado quando FlushFile
ou FlushAllFiles
for chamado. Use DeleteFile
ou DeleteFiles
para remover arquivos existentes antes de descartar.
Nota
Endpoints criados usando o valor do host subjacente do endpoint do tipo arquivo estão incluídos na reportagem de uso de endpoints e contam para sua licença.
Exemplos
// Write the variable "contents" to the file specified by
// the FTP Write activity "FTP Files"
WriteFile("<TAG>activity:ftp/FTP Endpoint/ftp_write/FTP Files</TAG>",
contents);
// Flushing (actually writing) to the activity
FlushFile("<TAG>activity:ftp/FTP Endpoint/ftp_write/FTP Files</TAG>");
// Write to another file (overriding the filename in the target)
WriteFile("<TAG>activity:ftp/FTP Endpoint/ftp_write/FTP Files</TAG>",
contents, "test.txt");
// Flushing the "test.txt" file explicitly
FlushFile("<TAG>activity:ftp/FTP Endpoint/ftp_write/FTP Files</TAG>",
"test.txt");
ReadFile
Declaração
string ReadFile(string sourceId[, string fileFilter])
Sintaxe
ReadFile(<sourceId>[, <fileFilter>])
Parâmetros obrigatórios
sourceId
: Um caminho de referência de string para uma atividade associada a um endpoint do tipo arquivo no projeto atual
Parâmetros opcionais
fileFilter
: Filtro de arquivo ou nome de arquivo para substituir a configuração da atividade
Descrição
Lê o conteúdo de um arquivo de uma fonte.
A fonte utilizada nesta chamada de função deve ser definida como uma atividade associada a um endpoint do tipo arquivo no projeto atual. Isso inclui atividades configuradas de Compartilhamento de Arquivo, FTP, HTTP, Armazenamento Local e Armazenamento Temporário. Para mais informações, consulte as instruções sobre como inserir endpoints na seção Endpoints em Jitterbit Script.
O método retorna o conteúdo do arquivo apontado pela fonte. Se o filtro da fonte selecionar mais de um arquivo, o primeiro será utilizado. Recomenda-se especificar uma fonte que identifique de forma única um único arquivo.
O parâmetro fileFilter
é opcional e pode ser usado para substituir o filtro de arquivo utilizado na configuração da atividade. Um nome de arquivo pode ser utilizado. Alternativamente, uma variável global pode ser usada para substituir o filtro de arquivo na configuração da atividade. Variáveis globais são referenciadas como [de_name]
na configuração da atividade.
Se a função ReadFile()
falhar, a operação não falha. Um script será abortado, um aviso será adicionado ao log da operação e a operação continuará.
Este método pode ser usado para ler dados de uma fonte HTTP. Nesse caso, todas as variáveis Jitterbit $jitterbit.source.http.*
serão preenchidas.
Aviso
Esta função não funciona de forma confiável com arquivos que têm conteúdo binário, pois geralmente lê apenas uma parte do arquivo. Se o arquivo tiver conteúdo binário, use a função Base64EncodeFile em vez disso para ler todo o conteúdo do arquivo.
Nota
Endpoints criados usando o valor do host subjacente do endpoint do tipo arquivo estão incluídos na relatório de uso de endpoints e contam para sua licença.
Exemplos
$fileContents = ReadFile("<TAG>activity:ftp/FTP Endpoint/ftp_read/FTP Files</TAG>")
WriteFile
Declaração
void WriteFile(string targetId, type fileContents[, string filename])
Sintaxe
WriteFile(<targetId>, <fileContents>[, <filename>])
Parâmetros obrigatórios
targetId
: Um caminho de referência em string para uma atividade associada a um endpoint do tipo arquivo no projeto atual
Parâmetros opcionais
fileContents
: Dados a serem escritos no arquivofilename
: Nome do arquivo para substituir a configuração da atividade
Descrição
Escreve os fileContents
no destino especificado por targetId
. Se fileContents
for do tipo binário, os dados binários são escritos no arquivo. Em todos os outros casos, uma representação em string dos dados é escrita.
O destino utilizado nesta chamada de função deve ser definido como uma atividade associada a um endpoint do tipo arquivo no projeto atual. Isso inclui atividades configuradas de Compartilhamento de Arquivos, FTP, HTTP, Armazenamento Local e Armazenamento Temporário. Para mais informações, consulte as instruções sobre como inserir endpoints na seção Endpoints em Jitterbit Script.
O terceiro parâmetro, filename
, é opcional e pode ser usado para substituir o nome do arquivo utilizado na configuração da atividade. Alternativamente, uma variável global pode ser usada para substituir o nome do arquivo na configuração da atividade. Variáveis globais são referenciadas como [de_name]
na configuração da atividade.
Este método também pode ser usado para escrever/postar dados em um destino HTTP. Nesse caso, as variáveis $jitterbit.target.http.*
serão preenchidas.
Se a função WriteFile()
falhar, a operação não falha. Um script será abortado, um aviso será adicionado ao log da operação e a operação continuará.
Buffer e flush
O conteúdo do arquivo é armazenado em buffer localmente até que FlushFile
ou FlushAllFiles
seja chamado no destino ou a transformação seja concluída com sucesso. Chamar WriteFile
várias vezes sem chamar FlushFile
irá adicionar dados ao buffer atual e tudo será escrito no destino do tipo arquivo apenas quando for liberado. Um buffer de arquivo é identificado de forma única pelo destino (e potencialmente pelo filename
); por exemplo, o mesmo destino pode ser usado para escrever em arquivos diferentes no mesmo diretório especificando um nome de arquivo e cada buffer de arquivo será separado.
Os arquivos não são realmente escritos no destino em uma transformação de teste, a menos que FlushFile
ou FlushAllFiles
seja chamado. Se uma transformação for executada em uma operação ou como parte de uma operação de teste, o arquivo será escrito quando a transformação for concluída com sucesso ou quando FlushFile
ou FlushAllFiles
for chamado no script.
Veja também as funções FlushAllFiles
e FlushFiles
.
Aviso
Se um arquivo especificado para escrita já existir, um erro será gerado quando FlushFile
ou FlushAllFiles
for chamado. Use DeleteFile
ou DeleteFiles
para remover arquivos existentes antes de liberar.
Nota
Endpoints criados usando o valor do host subjacente do endpoint do tipo arquivo estão incluídos na reportagem de uso de endpoints e contam para sua licença.
Exemplos
// Write "contents" to a file in an activity
WriteFile("<TAG>activity:ftp/FTP Endpoint/ftp_write/FTP Files</TAG>", contents);
// Use the filename "test.txt" instead of
// what is defined in an activity
WriteFile("<TAG>activity:ftp/FTP Endpoint/ftp_write/FTP Files</TAG>", contents, "test.txt");