Ir para o conteúdo

Funções de Arquivo

As funções de arquivo permitem que os scripts manipulem arquivos em agentes, disponíveis por meio de origens e gravados em destinos.

Nota

Caracteres especiais usados para codificação de porcentagem (também conhecido como codificação de URL) nomes de arquivos são suportados para transferências FTP e SFTP no Design Studio.

ArchiveFile

Declaração

void ArchiveFile(string sourceId, string targetId[, bool deleteSource])

Sintaxe

ArchiveFile(<sourceId>, <targetId>[, <deleteSource>])

Parâmetros Necessários

  • sourceId: Origem do tipo de arquivo no projeto atual
  • targetId: Destino do tipo de arquivo no projeto atual

Parâmetros Opcionais

  • deleteSource: Sinalizador booleano (padrão false) indicando se a origem deve ser excluída após a gravação bem-sucedida no destino

Descrição

Lê um arquivo de uma fonte de tipo de arquivo e o grava em um destino de tipo de arquivo. Esta função combina o ReadFile e WriteFilefunções, executa automaticamente FlushFile, e fornece uma opção para excluir o arquivo de origem.

A origem do tipo de arquivo e o destino do tipo de arquivo usados nesta chamada de função devem ser definidos como origem e destino, respectivamente, no projeto atual. Veja as instruções em inserindo itens de projeto.

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á usado.

Como oWriteFile função, esta função não substituirá um arquivo existente no destino.

Se o ArchiveFile função falhar, a operação não falhará. Um script será interrompido, um aviso 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 é copiado da origem para o destino e permanece na origem.

INFO: Esta função está disponível no Harmony versão 8.26 e mais alto.

Exemplos

// 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

Declaração

int DeleteFile(string sourceId[, string fileFilter])

Sintaxe

DeleteFile(<sourceId>[, <fileFilter>])

Parâmetros Necessários

  • sourceId: Origem do tipo de arquivo no projeto atual

Parâmetros Opcionais

  • fileFilter: Filtro de arquivo ou nome de arquivo para substituir a definição de origem

Descrição

Exclui um arquivo da fonte especificada.

A origem do tipo de arquivo usada nesta chamada de função deve ser definida como uma origem no projeto atual. Veja as instruções em inserindo itens de projeto.

Se o filtro de origem selecionar mais de um arquivo, um erro será lançado. Para excluir vários arquivos, use o DeleteFiles função em vez disso.

O método retorna um inteiro de 0 ou 1: ele 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 definição de origem. Um nome de arquivo pode ser usado. Como alternativa, uma variável global pode ser usada para substituir o filtro de arquivo na definição de origem. As variáveis globais são referenciadas como [de_name] na definição de origem.

Exemplos

// Delete the file "ExampleFile.txt" from the "File Share Source"
DeleteFile("<TAG>Sources/File Share Source</TAG>", "ExampleFile.txt");

DeleteFiles

Declaração

int DeleteFiles(string sourceId[, string fileFilter])

Sintaxe

DeleteFiles(<sourceId>[, <fileFilter>])

Parâmetros Necessários

  • sourceId: Origem do tipo de arquivo no projeto atual

Parâmetros Opcionais

  • fileFilter: Filtro de arquivo ou nome de arquivo para substituir a definição de origem

Descrição

Exclui um ou mais arquivos da fonte especificada.

A origem do tipo de arquivo usada nesta chamada de função deve ser definida como uma origem no projeto atual. Veja as instruções em inserindo itens de projeto.

Esse método excluirá vários arquivos, se algum for encontrado, com base no filtro de arquivo da definição de origem. Um 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 fonte não puder ser encontrado, um erro será lançado. Se isso for uma possibilidade, a função deve ser agrupada em um Eval função.

Para excluir um único arquivo, use o DeleteFile função em vez disso.

O segundo parâmetro, fileFilter, é opcional e pode ser usado para substituir o filtro de arquivo usado na definição de origem. Um nome de arquivo pode ser usado. Como alternativa, uma variável global pode ser usada para substituir o filtro de arquivo na definição de origem. As variáveis globais são referenciadas como [de_name] na definição de origem.

Exemplos

// Delete all text (".txt") files in the source "File Source"
DeleteFiles("<TAG>Sources/File Source</TAG>","*.txt");

DirList

Declaração

array DirList(string sourceId[, string path, string fileFilter])

Sintaxe

DirList(<sourceId>[, <path>, <fileFilter>])

Parâmetros Necessários

  • sourceId: Origem do tipo de arquivo no projeto atual

Parâmetros Opcionais

  • path: Caminho do arquivo para substituir a definição de origem
  • fileFilter: Filtro de arquivo ou nome de arquivo para substituir a definição de origem

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 origem do tipo de arquivo usada nesta chamada de função deve ser definida como uma origem no projeto atual. Veja as instruções em inserindo itens de projeto.

O parâmetro fileFilter é opcional e pode ser usado para substituir o filtro de arquivo usado na definição de origem. Um nome de arquivo pode ser usado. Como alternativa, uma variável global pode ser usada para substituir o filtro de arquivo na definição de origem. As variáveis globais são referenciadas como [de_name] na definição de origem.

Exemplos

// 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

Declaração

array FileList(string sourceId[, string path, string fileFilter])

Sintaxe

FileList(<sourceId>[, <path>, <fileFilter>])

Parâmetros Necessários

  • sourceId: Origem do tipo de arquivo no projeto atual

Parâmetros Opcionais

  • path: Caminho do arquivo para substituir a definição de origem
  • fileFilter: Filtro de arquivo ou nome de arquivo para substituir a definição de origem

Descrição

Retorna uma lista de nomes de arquivos contidos em uma origem. Esta será a mesma lista de arquivos recebidos quando a conexão de uma fonte de tipo de arquivo é testada, a menos que um filtro de arquivo seja especificado para substituir o filtro especificado na configuração da atividade.

A origem do tipo de arquivo usada nesta chamada de função deve ser definida como uma origem no projeto atual. Veja as instruções em inserindo itens de projeto.

O parâmetro path é opcional e pode ser usado para substituir o caminho usado na definição de origem.

O parâmetro fileFilter é opcional e pode ser usado para substituir o filtro de arquivo usado na definição de origem. Um nome de arquivo pode ser usado. Como alternativa, uma variável global pode ser usada para substituir o filtro de arquivo na definição de origem. As variáveis globais são referenciadas como [de_name] na definição de origem.

O método retorna uma matriz contendo os nomes de arquivo correspondentes ao filtro de arquivo da origem ou à origem substituída.

Exemplos

// 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

Declaração

void FlushAllFiles([string targetId])

Sintaxe

FlushAllFiles([<targetId>])

Parâmetros Opcionais

  • targetId: Destino do tipo de arquivo no projeto atual

Descrição

Persiste dados gravados em um buffer de arquivo com WriteFile().

O destino do tipo de arquivo usado nesta chamada de função deve ser definido como um destino no projeto atual. Veja as instruções em inserindo itens de projeto.

Se FlushAllFiles são chamados com um targetId como argumento, todos os arquivos gravados usando esse destino serão liberados (consulte o FlushFile função). Se FlushAllFiles é chamado sem um argumento, todos os arquivos gravados usando WriteFile a quaisquer alvos serão persistidos em seus respectivos alvos.

Veja também o FlushFiles função.

Aviso

Se um arquivo especificado para gravação já existir, um erro será lançado quando FlushFile ou FlushAllFiles é chamado. Usar DeleteFile ou DeleteFiles para remover os arquivos existentes antes da descarga.

Exemplos

// 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

Declaração

void FlushFile(string targetId[, string filename])

Sintaxe

FlushFile(<targetId>[, <filename>])

Parâmetros Necessários

  • targetId: Destino do tipo de arquivo no projeto atual

Parâmetros Opcionais

  • filename: Nome do arquivo para substituir a definição de destino

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 do tipo de arquivo usado nesta chamada de função deve ser definido como um destino no projeto atual. Veja as instruções em inserindo itens de projeto.

O parâmetro opcional, filename, pode ser usado para substituir o nome do arquivo usado na definição de destino se ele tiver sido substituído da mesma forma na chamada para o WriteFile função. Liberar um arquivo que nunca foi gravado não tem efeito.

Como alternativa, uma variável global pode ser usada para substituir o nome do arquivo na definição de destino. As variáveis globais são referenciadas como [de_name] na definição de destino. 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á lançado quando FlushFile ou FlushAllFiles é chamado. Usar DeleteFile ou DeleteFiles para remover os arquivos existentes antes da descarga.

Exemplos

// 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

Declaração

string ReadFile(string sourceId[, string fileFilter])

Sintaxe

ReadFile(<sourceId>[, <fileFilter>])

Parâmetros Necessários

  • sourceId: Origem do tipo de arquivo no projeto atual

Parâmetros Opcionais

  • fileFilter: Filtro de arquivo ou nome de arquivo para substituir a definição de origem

Descrição

Lê o conteúdo de um arquivo de uma fonte.

A origem do tipo de arquivo usada nesta chamada de função deve ser definida como uma origem no projeto atual. Veja as instruções em inserindo itens de projeto.

O método retorna o conteúdo do arquivo apontado pela fonte. Caso o filtro de origem selecione mais de um arquivo, será utilizado o primeiro. 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 definição de origem. Um nome de arquivo pode ser usado. Como alternativa, uma variável global pode ser usada para substituir o filtro de arquivo na definição de origem. As variáveis globais são referenciadas como [de_name] na definição de origem.

A partir do Harmony versão 8.20, se o ReadFile() função falhar, a operação não falhará. Um script será interrompido, um aviso 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 geralmente lê apenas uma parte do arquivo. Se o arquivo tiver conteúdo binário, use o Base64EncodeFile para ler todo o conteúdo do arquivo.

Exemplos

$fileContents = ReadFile("<TAG>Sources/File Share Source</TAG>")

WriteFile

Declaração

void WriteFile(string targetId, type fileContents[, string filename])

Sintaxe

WriteFile(<targetId>, <fileContents>[, <filename>])

Parâmetros Necessários

  • targetId: Destino do tipo de arquivo no projeto atual

Parâmetros Opcionais

  • fileContents: Dados a serem gravados no arquivo
  • filename: Nome do arquivo para substituir a definição de destino

Descrição

escreve o fileContents para o destino do tipo de arquivo especificado por targetId. Se fileContents é do tipo binário, os dados binários são gravados no arquivo. Em todos os outros casos, uma representação de string dos dados é gravada.

O destino do tipo de arquivo usado nesta chamada de função deve ser definido como um destino no projeto atual. Veja as instruções em inserindo itens de projeto.

O terceiro parâmetro, filename, é opcional e pode ser usado para substituir o nome do arquivo usado no destino. Como alternativa, uma variável global pode ser usada para substituir o nome do arquivo na definição de destino. As variáveis globais são referenciadas como [de_name] na definição de destino.

Esse 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.

A partir do Harmony versão 8.20, se o WriteFile() função falhar, a operação não falhará. Um script será interrompido, um aviso adicionado ao log da operação e a operação continuará.

Buffering e Flushing

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 do tipo de arquivo real 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á lançado quando FlushFileou FlushAllFilesé chamado. Usar DeleteFileou DeleteFilespara remover os arquivos existentes antes da descarga.

Exemplos

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