Funções de Arquivo
As funções de arquivo permitem que scripts manipulem arquivos em agentes, disponíveis por meio de atividades configuradas baseadas em arquivos que podem ser usadas como origens ou destinos.
Nota
Caracteres especiais usados para codificação percentual (também conhecido como codificação de URL) são compatíveis com transferências FTP e SFTP no Cloud 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 de tipo de arquivo no projeto atual**targetId
:** Um caminho de referência de string para uma atividade associada a um endpoint de tipo de arquivo no projeto atual
Parâmetros Opcionais
deleteSource
: Sinalizador booleano (padrãofalse
) indicando se a fonte deve ser excluída após gravar com sucesso no destino
Descrição
Lê um arquivo de uma atividade de origem do tipo de arquivo e grava-o em uma atividade de destino do tipo de arquivo. Esta função combina o ReadFile
e WriteFile
funções, executa automaticamente FlushFile
e fornece uma opção para excluir o arquivo de origem.
A origem e o destino usados nesta chamada de função devem ser definidos como atividades associadas aos endpoints do tipo arquivo no projeto atual. Isso inclui atividades configuradas de compartilhamento de arquivos, FTP, HTTP, armazenamento local e armazenamento temporário. Para obter mais informações, consulte as instruções sobre como inserir endpoints em Endpoints seção em Jitterbit Script.
Como apenas um arquivo é arquivado, recomenda-se que a fonte seja criada para retornar apenas um único arquivo. Se vários arquivos forem retornados, apenas o primeiro será usado.
Como o WriteFile
função, esta função não substituirá um arquivo existente no destino.
Se o ArchiveFile
função falha, 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
étrue
, o arquivo é arquivado (em outras palavras, movido) da origem para o destino e removido da origem. - Se
deleteSource
éfalse
, o arquivo será copiado da origem para o destino e permanecerá na origem.
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 [nome do arquivo] 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 [nome do arquivo] 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 de 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 arquivo da origem especificada.
A origem usada nesta chamada de função deve ser definida como uma atividade associada a um endpoint de tipo de arquivo no projeto atual. Isso inclui atividades configuradas de compartilhamento de arquivos, FTP, HTTP, armazenamento local e armazenamento temporário. Para obter mais informações, consulte as instruções sobre como inserir endpoints em Endpoints seção em Jitterbit Script.
Se o filtro de origem selecionar mais de um arquivo, um erro será gerado. Para excluir vários arquivos, use o DeleteFiles
funcionar em vez disso.
O método retorna um número inteiro 0 ou 1: retorna 1 se o arquivo foi excluído; 0 se o arquivo não puder ser encontrado.
O segundo parâmetro, fileFilter
, é opcional e pode ser usado para substituir o filtro de arquivo usado 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 arquivo na configuração da atividade. Variáveis globais são referenciadas como [de_name]
na configuração da atividade.
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 de 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 origem especificada.
A origem usada nesta chamada de função deve ser definida como uma atividade associada a um endpoint de tipo de arquivo no projeto atual. Isso inclui atividades configuradas de compartilhamento de arquivos, FTP, HTTP, armazenamento local e armazenamento temporário. Para obter mais informações, consulte as instruções sobre como inserir endpoints em Endpoints seção em Jitterbit Script.
Este método excluirá vários arquivos, se algum for encontrado, com base no filtro de arquivo da configuração da atividade. Um número inteiro é retornado especificando quantos arquivos foram excluídos. Retornar 0 significa que nenhum arquivo correspondente ao filtro de arquivo foi encontrado.
Se um caminho especificado na origem não puder ser encontrado, um erro será gerado. Se isso for uma possibilidade, a função deve ser envolvida em um Eval
função.
Para excluir um único arquivo, use o DeleteFile
funcionar em vez disso.
O segundo parâmetro, fileFilter
, é opcional e pode ser usado para substituir o filtro de arquivo usado 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 arquivo na configuração da atividade. Variáveis globais são referenciadas como [de_name]
na configuração da atividade.
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 de string para uma atividade associada a um endpoint de tipo de arquivo no projeto atual
Parâmetros Opcionais
path
: Caminho do arquivo para substituir a configuração da atividade**fileFilter
:** Filtro de arquivo ou nome de arquivo para substituir a configuração da atividade
Descrição
Retorna uma lista de diretórios contidos em uma fonte, especificando opcionalmente um caminho e um filtro para restringir os resultados.
Este método retorna um array contendo os nomes dos diretórios.
A origem usada nesta chamada de função deve ser definida como uma atividade associada a um endpoint de tipo de arquivo no projeto atual. Isso inclui atividades configuradas de compartilhamento de arquivos, FTP, HTTP, armazenamento local e armazenamento temporário. Para obter mais informações, consulte as instruções sobre como inserir endpoints em Endpoints seção em Jitterbit Script.
O parâmetro fileFilter
é opcional e pode ser usado para substituir o filtro de arquivo usado 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 arquivo na configuração da atividade. Variáveis globais são referenciadas como [de_name]
na configuração da atividade.
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 de tipo de 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 recebidos quando a conexão de uma origem de tipo de arquivo for testada, a menos que um filtro de arquivo seja especificado para substituir o filtro especificado na configuração da atividade.
A origem usada nesta chamada de função deve ser definida como uma atividade associada a um endpoint de tipo de arquivo no projeto atual. Isso inclui atividades configuradas de compartilhamento de arquivos, FTP, HTTP, armazenamento local e armazenamento temporário. Para obter mais informações, consulte as instruções sobre como inserir endpoints em Endpoints seção em Jitterbit Script.
O parâmetro path
é opcional e pode ser usado para substituir o caminho usado na configuração da atividade.
O parâmetro fileFilter
é opcional e pode ser usado para substituir o filtro de arquivo usado 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 arquivo na configuração da atividade. Variáveis globais são referenciadas como [de_name]
na configuração da atividade.
O método retorna uma matriz contendo os nomes de arquivos que correspondem ao filtro de arquivo da atividade de origem ou à origem substituída.
Exemplos
// Returns the count of the list of all the
// files in the FTP endpoint "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 de tipo de arquivo no projeto atual
Descrição
Persiste dados gravados em um buffer de arquivo com WriteFile
.
O destino usado nesta chamada de função deve ser definido como uma atividade associada a um endpoint de tipo de arquivo no projeto atual. Isso inclui atividades configuradas de compartilhamento de arquivos, FTP, HTTP, armazenamento local e armazenamento temporário. Para obter mais informações, consulte as instruções sobre como inserir endpoints em Endpoints seção em Jitterbit Script.
Se FlushAllFiles
é chamado com um targetId
como argumento, todos os arquivos escritos usando esse alvo serão liberados (veja o FlushFile
função). Se FlushAllFiles
é chamado sem argumento, todos os arquivos escritos usando WriteFile
a quaisquer atividades utilizadas como metas serão persistidas em suas respectivas metas.
Veja também o FlushFiles
função.
Aviso
Se um arquivo especificado para gravação já existir, um erro será gerado quando FlushFile
ou FlushAllFiles
é chamado. Usar DeleteFile
ou DeleteFiles
para remover os arquivos existentes antes de liberar.
Exemplos
// 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
Declaração
void FlushFile(string targetId[, string filename])
Sintaxe
FlushFile(<targetId>[, <filename>])
Parâmetros Obrigatórios
targetId
: Um caminho de referência de string para uma atividade associada a um endpoint de tipo de arquivo no projeto atual
Parâmetros Opcionais
filename
: Nome do arquivo para substituir a configuração da atividade
Descrição
Persiste dados gravados em um buffer de arquivo com WriteFile
. Quando FlushFile
é chamado, o conteúdo atual do buffer é gravado no destino e o buffer local é descartado.
O destino usado nesta chamada de função deve ser definido como uma atividade associada a um endpoint de tipo de arquivo no projeto atual. Isso inclui atividades configuradas de compartilhamento de arquivos, FTP, HTTP, armazenamento local e armazenamento temporário. Para obter mais informações, consulte as instruções sobre como inserir endpoints em Endpoints seção 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 substituído de forma semelhante na chamada para o WriteFile
função. Liberar um arquivo que nunca foi gravado 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 de substituição for usado, cada buffer será liberado separadamente para cada nome exclusivo.
Veja também o FlushAllFiles
função.
Aviso
Se um arquivo especificado para gravação já existir, um erro será gerado quando FlushFile
ou FlushAllFiles
é chamado. Usar DeleteFile
ou DeleteFiles
para remover os arquivos existentes antes de liberar.
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 de 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
Lê o conteúdo de um arquivo de uma origem.
A origem usada nesta chamada de função deve ser definida como uma atividade associada a um endpoint de tipo de arquivo no projeto atual. Isso inclui atividades configuradas de compartilhamento de arquivos, FTP, HTTP, armazenamento local e armazenamento temporário. Para obter mais informações, consulte as instruções sobre como inserir endpoints em Endpoints seção em Jitterbit Script.
O método retorna o conteúdo do arquivo apontado pela fonte. Caso o filtro de origem selecione mais de um arquivo, o primeiro será utilizado. Recomenda-se especificar uma fonte que identifique exclusivamente um único arquivo.
O parâmetro fileFilter
é opcional e pode ser usado para substituir o filtro de arquivo usado 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 arquivo na configuração da atividade. Variáveis globais são referenciadas como [de_name]
na configuração da atividade.
Se o ReadFile()
função falha, 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, todos os Jitterbit $jitterbit.source.http.*
variáveis serão preenchidas.
Aviso
Esta função não funciona de forma confiável com arquivos que possuem conteúdo binário, pois normalmente lê apenas uma parte do arquivo. Se o arquivo tiver conteúdo binário, use o Base64EncodeFile funcionam para ler todo o conteúdo do arquivo.
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 de string para uma atividade associada a um endpoint de tipo de arquivo no projeto atual
Parâmetros Opcionais
fileContents
: Dados a serem gravados no arquivofilename
: Nome do arquivo para substituir a configuração da atividade
Descrição
Escreve o fileContents
para o alvo especificado por targetId
. Se fileContents
for do tipo binário, os dados binários serão gravados no arquivo. Em todos os outros casos, uma representação em string dos dados é gravada.
O destino usado nesta chamada de função deve ser definido como uma atividade associada a um endpoint de tipo de arquivo no projeto atual. Isso inclui atividades configuradas de compartilhamento de arquivos, FTP, HTTP, armazenamento local e armazenamento temporário. Para obter mais informações, consulte as instruções sobre como inserir endpoints em Endpoints seção em Jitterbit Script.
O terceiro parâmetro, filename
, é opcional e pode ser usado para substituir o nome do arquivo usado 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 gravar/postar dados em um destino HTTP. Nesse caso, $jitterbit.target.http.*
variáveis serão preenchidas.
Se o WriteFile()
função falha, 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 Descarga
O conteúdo do arquivo é armazenado em buffer localmente até que FlushFile
ou FlushAllFiles
é chamado no destino ou a transformação é concluída com êxito. Chamando WriteFile
várias vezes sem ligar FlushFile
anexará dados ao buffer atual e tudo será gravado no destino real do tipo de arquivo somente quando for liberado. Um buffer de arquivo é identificado exclusivamente pelo destino (e potencialmente pelo filename
); por exemplo, o mesmo destino pode ser usado para gravar 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 gravados no destino em uma transformação de teste, a menos que FlushFile
ou FlushAllFiles
é chamado. Se uma transformação for executada em uma operação ou como parte de uma operação de teste, o arquivo será gravado quando a transformação for concluída com êxito ou quando FlushFile
ou FlushAllFiles
é chamado no script.
Veja também o FlushAllFiles
e FlushFiles
funções.
Aviso
Se um arquivo especificado para gravação já existir, um erro será gerado quando FlushFile
ou FlushAllFiles
é chamado. Usar DeleteFile
ou DeleteFiles
para remover os arquivos existentes antes de liberar.
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");