Ir para o conteúdo

Persistir Dados Usando Variáveis de Projeto, Cache em Nuvem Ou Armazenamento Temporário

Introdução

Vários métodos podem ser usados para armazenar dados na nuvem Harmony, como usar variáveis de projeto, usar funções de cache em nuvem ou usar armazenamento temporário.

Variáveis do Projeto

Variáveis de projeto são variáveis estáticas pré-inicializadas que podem ser consideradas constantes de projeto. Eles podem ser editados no Cloud Studio (consulte Variáveis do projeto) ou o Management Console (consulte Projetos).

Um exemplo de uso de variáveis de projeto é para credenciais de endpoint. Ao usar variáveis de projeto, diferentes ambientes de endpoint (que geralmente possuem credenciais diferentes) podem ser aplicados a diferentes ambientes do Harmony e editado por meio do Management Console. Isso permite um processo de negócios em que um usuário com direitos do Management Console pode alterar credenciais sem precisar de acesso ao Cloud Studio e ao designer do projeto.

Um segundo exemplo é usar variáveis de projeto para armazenar sinalizadores usados pela lógica de integração que podem personalizar o comportamento da integração. Se um único projeto for desenvolvido, mas usado para endpoints diferentes, uma variável booleana do projeto (como Send_PO_Number) poderá ser verificada pela lógica da transformação para o campo PO Number. Se o valor da variável do projeto for false, então o UnMap poderia ser usada para "desligar" esse campo e não incluí-lo em uma transformação relevante.

Funções de Cache em Nuvem

As funções de cache em nuvem ReadCache e WriteCache são usados para atribuir espaços de dados que estão disponíveis em projetos e ambientes. Um valor armazenado em cache fica visível para todas as operações em execução no mesmo escopo até expirar, independentemente de como a operação foi iniciada ou em qual agente ela é executada. Armazenando dados em cache no Harmony, em vez de depender de armazenamentos de dados locais ou específicos do agente, como Armazenamento temporário, os dados podem ser compartilhados entre operações separadas e entre projetos.

Estes são usos adicionais do cache em nuvem:

  • Os dados podem ser compartilhados entre operações assíncronas dentro de um projeto.
  • Erros gerados em diferentes operações podem ser armazenados em um cache comum. Ao acumular resultados operação dessa maneira, alertas mais abrangentes podem ser criados.
  • Os tokens de login podem ser compartilhados entre operações.

Armazenamento Temporário

Armazenamento temporário os endpoints são frequentemente usados em operações na nuvem e em agentes privados. Eles são distintos de Armazenamento local endpoints, que só podem ser usados em agentes privados.

Ao usar um endpoint de armazenamento temporário, os arquivos temporários são gravados e lidos no diretório temporário do sistema operacional padrão no agente que está executando o trabalho:

  • No caso de um único agente privado, o diretório de armazenamento temporário é o diretório temporário padrão do servidor do agente privado.
  • Se você estiver usando mais de um agente privado, agrupado em um grupo de agentes privados, o diretório de armazenamento temporário será o diretório temporário padrão do servidor de agente privado específico que está executando o trabalho.
  • Como os agentes em nuvem são agrupados em um grupo de agentes em nuvem, o diretório de armazenamento temporário é o diretório temporário padrão do servidor do agente em nuvem específico que está executando o trabalho.

Em um grupo de agentes clusterizados (agentes privados ou de nuvem), desde que as operações que usam o armazenamento temporário estejam vinculadas (encadeadas), todas as leituras e gravações do armazenamento temporário acontecerão no mesmo servidor do agente. No entanto, se Chain A gravar em seu armazenamento temporário myfile e a Cadeia B lê de seu armazenamento temporário myfile, e as duas cadeias não estão encadeadas uma à outra, a ação de leitura de armazenamento temporário em Chain B pode não ser lida do mesmo agente no qual foi gravada por Chain A.

Ao usar o armazenamento temporário, lembre-se destas diretrizes:

  • Ao usar agentes privados, para tornar seu projeto à prova de atualização, use armazenamento temporário de forma que a mudança de um único agente privado para um grupo de agentes com múltiplos agentes não exija refatoração.

  • Ao usar um grupo de agentes clusterizados (agentes privados ou de nuvem), para garantir que o servidor do agente onde o armazenamento temporário é gravado seja o mesmo servidor de onde o armazenamento temporário será lido, certifique-se de que quaisquer referências ao armazenamento temporário Ler* As atividades * e **Write estão na mesma cadeia de operação.

  • O armazenamento temporário em agentes privados é excluído após 24 horas por padrão pelo serviço de limpeza de arquivos Jitterbit. A frequência do serviço de limpeza pode ser configurada por meio do arquivo de configuração do agente privado debaixo de [FileCleanup] seção. No entanto, em agentes de nuvem, arquivos temporários podem ser excluídos imediatamente.

  • Os agentes de nuvem têm um limite de tamanho de arquivo de armazenamento temporário de 50 GB por arquivo. Arquivos temporários maiores que 50 GB são possíveis somente ao usar agentes privados.

  • Ao gravar no armazenamento temporário, o padrão é sobrescrever arquivos. Isso pode ser alterado com a caixa de seleção Anexar ao arquivo em uma Atividade de gravação de armazenamento temporário. Normalmente, isso requer que, após a leitura da fonte, o arquivo seja excluído ou arquivado. Uma maneira simples de fazer isso é usar as opções de pós-processamento Excluir arquivo ou Renomear arquivo em uma atividade de Leitura de armazenamento temporário.

  • Palavras-chave do nome do arquivo estão disponíveis e podem ser usados ao criar um nome de arquivo.

  • Um arquivo em armazenamento temporário pode ser lido construindo um script com o ReadFile função. Por exemplo: ReadFile("<TAG>activity:tempstorage/Temporary Storage/tempstorage_read/Read</TAG>"). Tenha em mente que isso funciona de forma confiável somente se houver um único agente privado.

Em alguns casos, pode ser vantajoso usar uma Variável em vez de um endpoint de armazenamento temporário. Consulte a seção Armazenamento variável versus armazenamento temporário em Variável global versus armazenamento temporário para uma comparação dessas duas abordagens diferentes e para recomendações sobre quando cada uma é apropriada.