Ir para o conteúdo

Variáveis globais

Introdução

Variáveis globais são um dos três tipos de elementos de dados globais disponíveis no Harmony. (Os outros dois tipos de elementos de dados globais — variáveis de projeto e variáveis Jitterbit — também estão disponíveis globalmente ao longo de um projeto. Eles são definidos de forma diferente, conforme descrito em Variáveis de Projeto e Variáveis Jitterbit.)

As variáveis globais são declaradas primeiro em uma operação, após o que ficam disponíveis para serem referenciadas nas mesmas operações e scripts ou em abaixo. Operações ou scripts downstream são aqueles vinculados a uma cadeia de operação ou ao RunOperation ou RunScript funções.

Variáveis globais também podem ser usadas como origem ou destino dentro da operação, conforme descrito em Fonte de variável global e Meta Variável Global.

Você pode querer usar variáveis globais se seu caso de uso envolver o compartilhamento de informações com partes subsequentes de uma cadeia de operação, como nestes exemplos:

  • Usar um valor criado em uma transformação em uma transformação posterior. Por exemplo, um ID de sessão (retornado de um serviço web de login) pode ser necessário ao chamar serviços web subsequentes para autenticação.
  • Utilizar um valor criado numa parte de uma transformação numa fase posterior dessa mesma transformação. Por exemplo, um número de registro pode ser inicializado e incrementado para cada registro inserido em um destino para identificar o seu número de item.
  • Utilizar um valor retornado em uma transformação na configuração de componentes em operações subsequentes. Por exemplo, a configuração de URL retornada por uma transformação pode ser usada para definir a URL do serviço web de uma chamada de serviço web subsequente.

Variáveis globais passam por operações encadeadas. Isso inclui operações vinculadas a uma operação anterior dentro da cadeia de operação usando eventos Em caso de sucesso ou Em caso de falha, bem como aquelas que estão vinculadas por meio do evento RunOperation() função. Variáveis globais também podem ser usadas na mesma transformação.

Variáveis globais definidas estão disponíveis na aba Elementos de dados do construtor de script, acessível nas telas de scripts e transformações.

Criar e Atualizar Variáveis globais

No Design Studio, variáveis globais são criadas ou atualizadas usando Jitterbit Script ou JavaScript.

Nomes de Variáveis globais

Os nomes das variáveis globais podem ser compostos de caracteres alfanuméricos (as letras a-z e A-Z, e os dígitos 0-9), pontos (.) e sublinhados (_). (Outros caracteres, como hífens, não são recomendados e podem causar problemas.) Os nomes de variáveis globais não diferenciam maiúsculas de minúsculas; uma variável chamada GlobalVar é tratado da mesma forma que globalvar.

Pode ser uma boa prática usar pontos ou sublinhados ao definir variáveis globais para que sejam fáceis de encontrar. Por exemplo, uma variável global criada em um Jitterbit Script chamada org.account.filename começa com org, seguido pela account, etc. organizando-o efetivamente por domínio quando em uma lista entre outras variáveis globais construídas de forma semelhante. Observe que para variáveis globais criadas em JavaScript (ou para variáveis globais do Jitterbit Script que podem ser usadas posteriormente em JavaScript), recomendamos o uso de sublinhados em vez de pontos. Usar pontos em variáveis globais definidas pelo usuário em JavaScript causa problemas em tempo de execução. Mais informações são fornecidas no JavaScript subseção abaixo.

Jitterbit Script

No Jitterbit Script usado em scripts e transformações, uma variável global pode ser definida começando com um cifrão $ ou ligando para o Set() função:

  • $: Usando o cifrão $ sintaxe, $ServerURL=URL cria ou atualiza uma variável global chamada ServerURL com o valor de URL (o nome de outra variável ou o nome de um campo em uma transformação).
  • Set: Usando o Set() função, Set("ServerURL", URL) cria ou atualiza uma variável global chamada ServerURL com o valor de URL (o nome de outra variável ou o nome de um campo em uma transformação).

JavaScript

Em JavaScript usado em scripts criada em uma operação, a sintaxe usada para definir uma variável global depende se o nome da variável global contém um ponto final:

  • Nome não inclui ponto final (recomendado): Uma variável global que não contém ponto final em seu nome pode ser criada ou atualizada usando var $<name> ou atualizado simplesmente usando $<name> sem var:

    • var $: A expressão var $ServerURL="https://www.example.com/" cria ou atualiza uma variável global ServerURL com um valor de string de https://www.example.com/. Uma nova variável global deve preceder a $ com var.
    • $: A expressão $ServerURL="https://www.example.com/" atualiza a mesma variável global ServerURL com a mesma string URL. Isto funciona apenas para variáveis globais que já existem.
  • O nome inclui um ponto (recomendado apenas para variáveis Jitterbit e valores de objetos JavaScript): Uma variável que contém pontos em seu nome pode ser atualizada ou recuperada em JavaScript somente com o Jitterbit.SetVar e Jitterbit.GetVar funções. Como essas funções não se destinam a variáveis globais definidas pelo usuário, consulte Variáveis Jitterbit Para maiores informações.

    Aviso

    O JavaScript Jitterbit.SetVar e Jitterbit.GetVar funções são projetadas especificamente para acessar as variáveis Jitterbit. Eles não devem ser usados para acessar variáveis globais definidas pelo usuário.

Recuperar Valores de Variáveis globais em Scripts Ou Transformações

No Design Studio, o valor de uma variável global pode ser retornado usando Jitterbit Script ou JavaScript.

Jitterbit Script

Em scripts e transformações, você pode começar com um cifrão $ seguido pelo nome da variável global ou use o Get() função para recuperar o valor de uma variável global:

  • $: Prefaciado com um cifrão $, o exemplo de código $ServerURL retorna o valor da variável global ServerURL.
  • Get: Usando o Get() função, o exemplo de código Get("ServerURL") retorna o valor da variável global ServerURL.

JavaScript

Em scripts JavaScript dentro de uma operação, a sintaxe usada para recuperar uma variável global depende se o nome da variável global contém um ponto:

  • O nome não inclui um ponto final (recomendado): O valor de uma variável global que não contém um ponto final em seu nome pode ser recuperado começando com um cifrão $:

    • $: Prefixado com um cifrão $, a expressão $ServerURL recupera o valor da variável global chamada ServerURL.
  • Nomes com pontos (recomendados apenas para variáveis Jitterbit e valores de objetos JavaScript): Uma variável que contém um ponto em seu nome pode ser atualizada ou recuperada em JavaScript somente com o Jitterbit.SetVar e Jitterbit.GetVar funções. Como essas funções não se destinam a variáveis globais definidas pelo usuário, consulte Variáveis Jitterbit Para maiores informações.

    Aviso

    O JavaScript Jitterbit.SetVar e Jitterbit.GetVar funções são projetadas especificamente para acessar as variáveis Jitterbit. Eles não devem ser usados para acessar variáveis globais definidas pelo usuário.

    Em JavaScript, não misture e combine seu uso de SetVar (e GetVar) com $-prefixação ao definir (e recuperar) uma variável. Use apenas uma sintaxe. Misturar as duas sintaxes diferentes para a mesma variável pode causar problemas em tempo de execução.

    Se um JavaScript falhar, quaisquer alterações feitas no valor de uma variável global serão perdidas. Somente se o JavaScript for concluído com êxito os valores das variáveis globais modificados estarão disponíveis fora do script.

Use Variáveis globais em Telas de Definição

Em uma tela de definição (como durante a configuração de origens ou destinos), você pode fazer referência a variáveis globais usando o comando [GlobalVariableName{DefaultValue}] sintaxe.

Por exemplo, para fornecer um valor para uma URL de servidor em uma chamada de serviço web, você pode usar a sintaxe da variável global [ServerURL] em vez de um valor codificado. O valor atribuído à variável global ServerURL seria então usado em tempo de execução.

Para especificar um valor padrão, use chaves { } imediatamente após o nome da variável global entre colchetes [ ]. Por exemplo, o seguinte será avaliado como o valor da variável global ServerURL se a variável estiver definida; se não for definido, http://server/index.asp é usado:

[ServerURL{http://server/index.asp}]

No tempo de execução da operação, um valor padrão definido em uma tela de definição será usado somente se o valor da variável não tiver sido definido durante o tempo de tempo de execução. Isso é diferente durante teste de script, onde — como quaisquer valores de script acima na cadeia ainda não terão sido instanciados — qualquer valor padrão definido em uma tela de definição será usado.

Dica

Ao usar uma variável global em uma cláusula WHERE, como em um banco de dados ou consultar do Salesforce, recomendamos especificar um valor padrão para que o teste de script seja possível. Caso contrário, como uma variável global obtém seu valor em tempo de execução, durante o teste a sintaxe poderá ser inválida se nenhum valor padrão tiver sido especificado.

Se você não quiser que a variável global seja interpretada, use uma barra invertida "\"para escapar do conjunto de colchetes"[" e "]". Isso pode ser útil temporariamente durante o teste. Por exemplo, a expressão a seguir não usará o valor de ServerURL (mesmo que esteja definido), mas sempre usará http://server/index.asp:

\[ServerURL{http://server/index.asp}]

Cuidado

Dentro de caminhos de arquivo que contenham barras invertidas, uma única barra invertida será interpretada como iniciando uma sequência de escape se for seguida por um colchete definido "[" e "]".

Barras invertidas adicionais podem ser usadas para obter o resultado desejado. Por exemplo, \\server\share\\[Directory{testing}] será interpretado como \\server\share\testing se a variável Directory não está definido; de outra forma \\server\share\"value of Directory" será usado.

Para evitar esse problema, é recomendado converter os caminhos dos arquivos para o formato URL (por exemplo, C:/directory/path).

Tutoriais Sobre Variáveis globais

Consulte estas seções para dicas sobre como usar variáveis globais em seus projetos:

Verifique Se Há Valores Nulos Ou Indefinidos

Um elemento de dados global que não foi definido é considerado como tendo um valor nulo.

Por exemplo, IsNull(Get("GlobalVariableName")) retorna verdadeiro se uma variável global com o nome GlobalVariableNameainda não foi definido. Isto pode ser usado para verificar se uma variável global foi definida ou não.

Definir e Acessar Variáveis de Array

Você pode criar matrizes de variáveis globais, também conhecidas como variáveis de matriz. Consulte Matrizes para obter informações sobre como configurar e recuperar valores de variáveis de matriz.