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 chamadaServerURL
com o valor deURL
(o nome de outra variável ou o nome de um campo em uma transformação).Set:
Usando oSet()
função,Set("ServerURL", URL)
cria ou atualiza uma variável global chamadaServerURL
com o valor deURL
(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>
semvar
:var $
: A expressãovar $ServerURL="https://www.example.com/"
cria ou atualiza uma variável globalServerURL
com um valor de string dehttps://www.example.com/
. Uma nova variável global deve preceder a$
comvar
.$
: A expressão$ServerURL="https://www.example.com/"
atualiza a mesma variável globalServerURL
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
eJitterbit.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
eJitterbit.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 globalServerURL
.Get
: Usando oGet()
função, o exemplo de códigoGet("ServerURL")
retorna o valor da variável globalServerURL
.
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 chamadaServerURL
.
-
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
eJitterbit.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
eJitterbit.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
(eGetVar
) 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 GlobalVariableName
ainda 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.