Jitterbit Script
Introdução
A linguagem Jitterbit Script pode ser usada em todos os tipos de scripts no Harmony, inclusive em operações e transformações. Os Scripts são criados na linguagem Jitterbit Script por padrão. Esta página fornece informações específicas da linguagem Jitterbit Script, como sintaxe, tipos de dados, operadores, sequências de escape e estruturas de controle. Veja também as páginas relacionadas para criar um script, usando o editor de script e testando um script.
Sintaxe
No Jitterbit Script, os scripts devem ser colocados dentro de um <trans>
tag de abertura e </trans>
tag de fechamento, a menos que use funções que exigem especificamente que o código seja colocado fora dessas tags, como várias Funções de banco de dados.
Dentro dessas tags, um Jitterbit Script consiste em funções, variáveis ou lógica integradas para execução, separadas por ponto e vírgula (;
).
O resultado retornado é o valor retornado da última instrução do script antes do fechamento </trans>
marcação.
Comentários
Dentro do <trans>
... </trans>
tags, o uso de duas barras //
marca o início de um comentário de linha única e afeta o texto até o final dessa linha. Os comentários não fazem parte do script executado ou do resultado transformado.
Por exemplo, um comentário em uma única linha pode ter a seguinte aparência:
<trans>
// This is a comment
DbLookup(...)
</trans>
Você também pode usar um comentário em estilo de bloco:
<trans>
/* This is a multi-line comment
This line is also a comment
This is the final line of the comment */
DbLookup(...)
</trans>
Estruturas de Controle
A linguagem Jitterbit Script não inclui instruções de controle como if
ou while
rotações. Em vez disso, você pode usar funções Jitterbit para obter a mesma funcionalidade.
Veja o Case
, If
, e While
funções em Funções Lógicas. O Eval
função em Funções Gerais pode ser usado como uma instrução "try-catch".
Um máximo de 50.000 iterações de loop são permitidas para cada loop individual em Jitterbit Scripts. Para aumentar o número permitido de iterações por loop, consulte jitterbit.scripting.while.max_iterations
em Script de variáveis Jitterbit.
Expressões Regulares
O Harmony oferece suporte a expressões regulares como meio de especificar e reconhecer sequências de texto, incluindo caracteres, palavras ou padrões de caracteres específicos. O Harmony suporta a sintaxe de expressão regular do linguagem de programação Perl 5.
<trans>
RegExMatch(<input>,<expression>,...)
</trans>
Sequências de Fuga
O Harmony reconhece essas sequências de escape quando usadas em strings literais:
Sequência | Definição |
---|---|
\t | Guia |
\r | Retorno de transporte |
\n | Nova linha |
Strings literais devem ser colocadas entre aspas duplas ("
) ou aspas simples ('
).
Qualquer outra citação deve ser escapada se usada na string. Por exemplo:
$str = "String with line break.\nThat's the last line.";
$str = 'Rob "The Gronk" Gronkowski';
$str = "Rob \"The Gronk\" Gronkowski";
Operadores
Este é um resumo dos operadores suportados pelo Jitterbit Script. O Jitterbit Script tenta converter os argumentos para ativar a operação. Se isso não for possível, um erro será relatado.
Aritmética
Operador | Descrição |
---|---|
+ | Adiciona dois números ou concatena duas strings. Se uma string for adicionada a qualquer outra coisa, ambos os argumentos serão convertidos em strings. Se ambos os argumentos forem números, o resultado será do tipo double. |
++ | Aumenta o valor em 1. Exemplo: $count++; se prefixado, a atribuição precede o incremento. |
+= | Concatena uma string ou adiciona números à variável de destino. Exemplo: $count+=2 é o mesmo que $count=$count+2 . |
- | Subtrai dois números. O resultado é do tipo double. |
-- | Diminui um valor em 1. Exemplo: $count--; se prefixado, a atribuição precede o decremento. |
-= | Subtrai números da variável de destino. Exemplo: $count-=2 é o mesmo que $count=$count-2 . |
/ | Divide dois números. O resultado é do tipo double. |
* | Multiplica dois números. O resultado é do tipo double. |
^ | Eleva o primeiro argumento à potência do segundo argumento. Se ambos os argumentos forem inteiros, o resultado será um inteiro. |
Lógico
Operador | Descrição |
---|---|
& | Operador lógico AND. O resultado é do tipo booleano. && também pode ser usado. Este é sempre um operador de curto-circuito, o que significa que se o argumento da esquerda for avaliado como falso, o argumento da direita não será avaliado. |
| | Operador lógico OR. O resultado é do tipo booleano. || também pode ser usado. Este é sempre um operador de curto-circuito, o que significa que se o argumento da esquerda for avaliado como verdadeiro, o argumento da direita não será avaliado. |
Comparação
Use os seguintes operadores para comparar os valores de dois argumentos do mesmo tipo de dados:
Operador | Descrição |
---|---|
= | Atribui a uma variável. O argumento da direita é atribuído ao argumento da esquerda. |
== | Operador de equivalência. Retorna verdadeiro se os argumentos forem iguais. Retorna falso se eles não forem iguais. |
!= | Operador não equivalente. Retorna verdadeiro se os argumentos não forem iguais. Retorna falso se forem iguais. |
< > <= >= | Operadores de comparação. Retorna verdadeiro ou falso. |
Nota
A comparação de argumentos de diferentes tipos de dados não é suportada.
Negação
Operador | Descrição |
---|---|
! | Operador de negação. Converte um valor verdadeiro em falso e vice-versa. Exemplo:
|
Variedade
Operador | Descrição |
---|---|
{ } | Usado para construir um array. Exemplos:
|
Operador Precedente
Esta tabela mostra a precedência dos operadores, do maior para o menor:
Operadores | Descrição |
---|---|
() | Parênteses para agrupamento |
{ } | Chaves para matrizes |
++ -- - | operadores pré e pós-unários |
^ | Poder |
! | Negação |
* / | Multiplicação, divisão |
+ - | Adição, subtração |
< > == != <= >= | Operadores de comparação |
& && | Lógico E |
| || | OU lógico |
= += -= | Atribuição |
Paleta de Componentes
A paleta de componentes de script fornece acesso a vários componentes que podem ser usados em um script. Você pode usar componentes em um script arrastando ou clicando duas vezes neles na paleta de componentes, usando o recurso de preenchimento automático ou digitando ou colando manualmente a sintaxe correta.
Nota
Se um script chamar outros componentes do projeto que ainda não foram implementados, esses componentes deverão ser implementados antes que você possa executar o script com êxito.
Você pode acessar a paleta de componentes de script no lado direito do designer de projeto e do editor de script:
Objetos de Origem
A aba Objetos de origem está presente apenas para scripts criados em uma transformação:
Dentro de um script de transformação, você pode fazer referência a dados de origem inserindo um caminho de referência de campo ou pode fazer referência a nós de dados de origem inserindo um caminho de referência de nó. Inserir o caminho de referência de um campo em um script de transformação mapeia o objeto de origem para um campo de destino (consulte Mapeando objetos de origem). Embora os nós não possam ser mapeados para campos de destino, eles podem ser usados como argumentos com algumas Funções XML e Funções de dicionário e matriz. Os nós também podem ser usados para criar condições nos nós de destino (consulte Mapeamento Condicional).
Para adicionar um caminho de referência de campo ou nó a um script de transformação ( Jitterbit Script somente), use um destes métodos:
- Arraste o objeto da paleta até o script para inserir o caminho de referência do objeto.
- Clique duas vezes no objeto na paleta para inserir o caminho de referência do objeto na localização do cursor dentro do script.
- Insira manualmente o caminho de referência para o objeto de origem.
Este exemplo atribui um objeto de origem a uma variável global em um mapeamento de transformação:
<trans>
$org.calculate.operand1=root$transaction.request$body$Calculate$input.Operand1$;
</trans>
Este exemplo usa um caminho de nó com uma função XML:
<trans>
GetXMLString([root$transaction.response$body$queryResponse$result$records.Case$Account$]);
</trans>
Para obter informações sobre como os caminhos de referência de campo e nó são construídos, consulte Notação de caminho de referência em Nós e Campos.
Funções
A aba Funções fornece uma lista de funções disponíveis para uso em um script:
Dentro de um script, você pode usar funções inserindo a sintaxe da função.
Para adicionar a sintaxe da função a um script (Jitterbit Script ou JavaScript), use um destes métodos:
- Arraste a função da paleta para o script para inserir a sintaxe da função.
- Clique duas vezes na função na paleta para inserir a sintaxe da função no local do cursor dentro do script. Ao inserir a sintaxe da função, o primeiro argumento da função fica destacado e o cursor é movido para o final do argumento.
- Comece a digitar o nome da função e pressione
Control+Space
para exibir uma lista de sugestões de preenchimento automático. Selecione uma função para inserir a sintaxe da função. - Insira manualmente a sintaxe da função.
Para obter mais informações, consulte a documentação de cada função por categoria em Funções.
Variáveis
A aba Variáveis fornece acesso a variáveis que estão disponíveis para referência global em todo um projeto, incluindo variáveis globais, variáveis do projeto e variáveis Jitterbit:
Dentro de um script, você pode usar variáveis inserindo a sintaxe da variável (veja a documentação de cada tipo de variável em Variáveis).
Para adicionar a sintaxe da variável a um script (Jitterbit Script ou JavaScript), use um destes métodos:
- Arraste a variável da paleta para o script para inserir a sintaxe da variável.
- Clique duas vezes na variável na paleta para inserir a sintaxe da variável no local do cursor dentro do script.
- Comece digitando o nome da variável e pressione
Control+Space
para exibir uma lista de sugestões de preenchimento automático. Selecione uma variável para inserir a sintaxe da variável. - Insira manualmente a sintaxe da variável.
Variáveis globais são acessadas digitando um $
assinar antes do nome da variável ou usando o Set
e Get
funções.
Os nomes das variáveis globais podem ser compostos a partir destes caracteres: letras (a-z, A-Z), números (0-9), pontos e sublinhados. Outros caracteres, como hífens, não são recomendados e podem causar problemas. (Observe que no caso de variáveis locais, o ponto final também não é recomendado.)
Este exemplo faz referência a uma variável global usando $
para criar um dicionário global:
<trans>
$org.lookup.currency=Dict();
$org.lookup.currency[1]="USD";
$org.lookup.currency[2]="EUR";
</trans>
Este exemplo atribui uma variável global a outra variável global usando o Set
e Get
funções:
<trans>
Set("op2", Get("op"));
</trans>
Observe que para determinadas variáveis Jitterbit, como elas incluem um hífen, você deve referenciá-las usando o método Set
ou Get
funções:
<trans>
Get("jitterbit.source.http.response.header.Content-Type");
</trans>
Variáveis locais, embora não estejam listados na aba Variáveis, não estão listados porque não estão disponíveis globalmente. No entanto, você ainda pode usá-los localmente em um script. As variáveis locais têm estas características:
- Uma variável local é definida e usada somente dentro de um script específico. Portanto, o conflito entre o valor de uma variável local no script atual versus o valor de uma variável local com o mesmo nome em outro script não é uma preocupação.
- A variável local não pode ser definida ou recuperada pelo
Set
ouGet
funções. RunScript
pode passar argumentos para o script, por exemploRunScript(SCRIPT_ID, 5, "abc",...)
. Os valores no script podem ser atribuídos a variáveis locais predefinidas_1
,_2
,...
. Neste exemplo,_1
representa o valor inteiro de5
, enquanto_2
representa o valor da string"abc"
. A variável local deve ser definida antes de poder ser referenciada, exceto no caso dos argumentos de entrada_1
,_2
,...
descrito acima.- O
ArgumentList
a função está disponível para redefinição de uma lista de variáveis locais como argumentos de entrada.
Para informações mais detalhadas sobre cada tipo de variável e exemplos, consulte Variáveis.
Plug-ins
A aba Plugins fornece uma lista de plug-ins que podem ser executados dentro de um script:
Dentro de um script, você pode usar um plugin como argumento para o RunPlugin
função inserindo o caminho de referência do plugin (veja Plugins Chamados em um Script).
Para adicionar um caminho de referência de plugin a um script (Jitterbit Script somente), use um destes métodos:
- Arraste o plugin da paleta para o script para inserir ambos os
RunPlugin
função e a referência do plugin. - Clique duas vezes no plugin na paleta para inserir a referência do plugin no local do cursor dentro do script.
- Comece a digitar o nome do plugin e pressione
Control+Space
para exibir uma lista de sugestões de preenchimento automático. Selecione um plugin para inserir a referência do plugin. - Insira manualmente a referência do plugin.
A referência do plugin está contida em <TAG>
e </TAG>
tags e é construído do tipo do componente do projeto (plugin
), seguido por dois pontos (:
), seguido pelo nome do plugin do manifesto XML. Este exemplo usa o RunPlugin
função com uma referência ao Gerador HMAC-SHA1 plugar:
<trans>
RunPlugin("<TAG>plugin:http://www.jitterbit.com/plugins/pipeline/user/HMACSHA1Generator</TAG>");
</trans>
Observe que o nome do plug-in do manifesto XML não é necessariamente igual ao nome de exibição no Management Console.
Nota
Somente plug-ins disponíveis para uso em um script são listados. Plugins adicionais podem ser aplicados em uma atividade dentro de uma operação. Para obter documentação sobre o uso de plug-ins, incluindo como configurar um plug-in no nível da atividade e definir variáveis globais, consulte as seções em Plugins.
Operações
A aba Operações fornece uma lista de operações no projeto que estão disponíveis para referência em um script:
Dentro de um script, você pode usar uma operação como argumento para funções inserindo o caminho de referência da operação.
Para adicionar um caminho de referência de operação a um script (Jitterbit Script somente), use um destes métodos:
- Arraste a operação da paleta para o script para inserir os dois
RunOperation
função e a referência de operação. - Clique duas vezes na operação na paleta para inserir a referência da operação no local do cursor dentro do script.
- Comece a digitar o nome da operação e pressione
Control+Space
para exibir uma lista de sugestões de preenchimento automático. Selecione uma operação para inserir a referência da operação. - Insira manualmente a referência de operação.
A referência da operação está contida em <TAG>
e </TAG>
tags e é construído do tipo do componente do projeto (operation
), seguido por dois pontos (:
), seguido pelo nome da operação fornecido pelo usuário. Este exemplo usa o RunOperation
função com uma referência a uma operação chamada Minha operação de exemplo:
<trans>
RunOperation("<TAG>operation:My Example Operation</TAG>");
</trans>
Além de usar o RunOperation
função, você também pode usar a referência de operação com outras funções da aba Funções que usam a referência de operação como argumento. Isso inclui funções listadas em Funções Gerais que usam um operationInstanceGUID
, operationId
, ou operationTag
como parâmetro. Por exemplo:
CancelOperation
GetLastOperationRunStartTime
GetOperationQueue
RunOperation
WaitForOperation
Notificações
A aba Notificações fornece uma lista de notificações no projeto que estão disponíveis para referência em um script:
Dentro de um script, você pode fazer referência a uma notificação como argumento para o SendEmailMessage
função inserindo o caminho de referência da notificação.
Para adicionar um caminho de referência de notificação a um script (Jitterbit Script somente), use um destes métodos:
- Arraste a notificação da paleta para o script para inserir os
SendEmailMessage
função e a referência de notificação. - Clique duas vezes na notificação na paleta para inserir a referência da notificação no local do cursor dentro do script.
- Comece a digitar o nome da notificação e pressione
Control+Space
para exibir uma lista de sugestões de preenchimento automático. Selecione uma notificação para inserir a referência da notificação. - Insira manualmente a referência da notificação.
A referência da notificação está contida em <TAG>
e </TAG>
tags e é construído do tipo do componente do projeto (email
), seguido por dois pontos (:
), seguido pelo nome da notificação email fornecido pelo usuário. Este exemplo usa o SendEmailMessage
com uma referência a uma notificação email chamada Meu Exemplo de Notificação Email:
<trans>
SendEmailMessage("<TAG>email:My Example Email Notification<TAG>");
</trans>
Scripts
A aba Scripts fornece uma lista de todos os outros scripts de componentes de projeto independentes no projeto - escritos em Jitterbit Script ou JavaScript — que estão disponíveis para referência em um script:
Dentro de um script, você pode fazer referência a outro script como argumento para o RunScript
função inserindo o caminho de referência do script.
Para adicionar um caminho de referência de script a um script (Jitterbit Script somente), use um destes métodos:
- Arraste o script da paleta para o script para inserir os
RunScript
e a referência do script. - Clique duas vezes no script na paleta para inserir a referência do script no local do cursor dentro do script.
- Comece a digitar o nome do script e pressione
Control+Space
para exibir uma lista de sugestões de preenchimento automático. Selecione um script para inserir a referência do script. - Insira manualmente a referência do script.
A referência do script está contida em <TAG>
e </TAG>
tags e é construído do tipo do componente do projeto (script
), seguido por dois pontos (:
), seguido pelo nome do script fornecido pelo usuário. Este exemplo usa o RunScript
função com uma referência a um script chamado Meu script de exemplo:
<trans>
RunScript("<TAG>script:My Example Script</TAG>");
</trans>
Endpoints
A aba Endpoints fornece uma lista de endpoints no projeto que estão disponíveis para referência em um script:
Dentro de um script, você pode fazer referência a endpoints como um argumento para funções inserindo o caminho de referência da conexão ou da atividade.
Para adicionar um caminho de referência de conexão ou atividade a um script (Jitterbit Script ou JavaScript), use um destes métodos:
- Arraste a conexão ou atividade da paleta para o script para inserir a referência apropriada.
- Clique duas vezes na conexão ou atividade na paleta para inserir a referência apropriada no local do cursor dentro do script.
- Comece a digitar o nome da conexão ou atividade e pressione
Control+Space
para exibir uma lista de sugestões de preenchimento automático. Selecione uma conexão ou atividade para inserir a referência apropriada. - Insira manualmente a referência de conexão ou atividade.
Os tipos de endpoints que podem ser usados em scripts dependem de haver funções que suportem o tipo específico de conexão ou referência de atividade como argumento. As referências de endpoint devem ser usadas em conjunto com essas funções para serem válidas no script.
Conexões e atividades que podem ser usadas no script aparecem dentro de categorias que listam o número de cada item disponível em cada categoria. Os nomes das atividades são precedidos por colchetes contendo o tipo de interação com o recurso de dados específico do tipo de atividade (por exemplo, Leitura, Gravação, Consulta, Upsert, GET, POST, etc.). Para aparecer aqui, as conexões e atividades já devem estar configuradas dentro do projeto. Por exemplo, se houver uma única conexão HTTP configurada no projeto, com duas atividades configuradas usando essa conexão, elas aparecerão agrupadas da seguinte forma:
As referências de conexão estão contidas em <TAG>
e </TAG>
tags e são construídas do tipo do componente do projeto (endpoint
), seguido por dois pontos (:
), seguido pelo tipo de endpoint, seguido pelo nome da conexão fornecido pelo usuário. Por exemplo:
<TAG>endpoint:database/My Example Database</TAG>
As referências de atividade são mais longas, pois a referência de conexão à qual estão associadas também deve ser incluída no caminho. As referências de atividades estão contidas em <TAG>
e </TAG>
tags e são construídas do tipo do componente do projeto (activity
), seguido por dois pontos (:
), seguido pelo tipo e nome da conexão, seguido pelo tipo de atividade, seguido pelo nome da atividade fornecido pelo usuário. Por exemplo:
<TAG>activity:database/My Example Database/database_query/Query Employees</TAG>
Dependendo da conexão específica ou do tipo de atividade listado abaixo, você pode usar funções da aba Funções que usam uma referência de conector como argumento. As funções descritas abaixo estão disponíveis para serem utilizadas com as conexões e atividades listadas.
Categoria | Descrição | Uso de Componentes como Parâmetros de Função |
---|---|---|
Endpoints de banco de dados | Esta categoria inclui qualquer Banco de dados conexões e atividades associadas, ambas podendo ser usadas em scripts dependendo da função específica. | As conexões de banco de dados podem ser usadas com qualquer função listada em Funções de banco de dados que usam um databaseId como parâmetro, incluindo:
target como parâmetro, incluindo:
|
Endpoints de compartilhamento de arquivos Endpoints FTP Endpoints HTTP Endpoints de armazenamento local Endpoints de armazenamento temporário | Essas categorias incluem qualquer Compartilhamento de arquivos, FTP, HTTP, Armazenamento local e Armazenamento temporário conexões (que não podem ser usadas em um script) e atividades associadas (que podem ser usadas em um script). Nota Embora uma categoria API Endpoints também esteja incluída, API conexões e atividades não podem ser usadas em um script. | As atividades incluídas (exceto atividades de API) podem ser usadas com qualquer função listada em Funções criptográficas, Funções de banco de dados, Funções de arquivo ou Funções do Salesforce que usam um sourceId ou targetId como parâmetro, incluindo estes:
|
Endpoints do Salesforce | Esta categoria inclui qualquer Salesforce conexões (que podem ser usadas em um script). As atividades do Salesforce não estão incluídas, pois não podem ser usadas em um script. | As conexões do Salesforce podem ser usadas com qualquer função listada em Funções do Salesforce que usam um salesforceOrg como parâmetro, incluindo:
|
Endpoints NetSuite | Esta categoria inclui qualquer NetSuite configurado conexões (que podem ser usadas em um script). As atividades do NetSuite não estão incluídas, pois não podem ser usadas em um script. | As conexões NetSuite podem ser usadas com qualquer função listada em Funções NetSuite que usam um netSuiteOrg como parâmetro, incluindo:
|
Tipos de Dados
Todos os objetos de origem e variáveis globais que não são nulos possuem um tipo de dados associado a eles. Vários tipos de dados podem ser alterados usando as funções em Funções de conversão categoria.
Estes tipos de dados são suportados em Scripts Jitterbit:
Tipo | Descrição | Classificação |
---|---|---|
binary | Binário | Dados |
bit | Pouco | Dados |
bool | Booleano | Lógico |
int | Inteiro | Numérico |
decimal | Decimais | Numérico |
double | Duplo | Numérico |
float | Flutuar | Numérico |
long | Longo | Numérico |
date | Data | Data e hora |
timespan | Timespan (data com hora) | Data e hora |
string | Corda | Corda |
array | Matriz | Coleção |
dictionary | Dicionário (também conhecido como map ) | Coleção |
instance | Instância em uma fonte ou destino de dados | Esquema |
node | Nó em um esquema de uma fonte ou destino de dados | Esquema |
type | Qualquer um desses tipos | Dados |
null | Valor nulo | Dados |
var | Referência de variável, local ou global | Script |
Matrizes
Uma matriz é uma coleção de variáveis. Cada membro da coleção pode ser de qualquer tipo compatível, incluindo matrizes. Os membros de um array podem ser acessados usando o Get
e Set
métodos ou usando o [] array
sintaxe. As matrizes são indexadas em zero e os índices são numéricos, sequenciais e não podem ser ignorados.
Você também pode criar matrizes de variáveis globais. Uma variável global de matriz é uma matriz de outras variáveis globais que, por sua vez, podem ser matrizes.
Definir uma Matriz
Você pode definir valores em uma matriz usando o Set
função com esta sintaxe:
type Set(string name, type value [, int index1, int index2, ...])
Isso define o valor da variável global com o nome fornecido como valor e retorna o valor. Se o primeiro argumento for uma matriz ou o nome de uma variável global de matriz, você poderá definir o valor de uma variável de matriz especificando seu índice (ou índices para matrizes multidimensionais) como o terceiro argumento.
Nem todos os itens de uma matriz precisam ser do mesmo tipo. Por exemplo, você pode criar uma matriz que contenha uma data, um número inteiro e uma string. Você pode até criar arrays dentro de outros arrays.
Este exemplo cria um array com três variáveis de tipos diferentes onde cada entrada representa a data e hora atuais:
<trans>
$right_now = Now();
Set($now, $right_now, 0);
Set($now, Long($right_now), 1);
Set($now, String($right_now), 2);
</trans>
Como os arrays são indexados em zero, o primeiro elemento está no índice 0 e o último elemento está no índice (tamanho 1). Para anexar dados a um array, passe um valor de índice negativo ou o tamanho do array (Length($arr)
). Definir um elemento com um índice maior que o tamanho da matriz resulta em um erro de índice fora do intervalo. A configuração de elementos de dados não array também pode ser feita usando o $de_name
sintaxe.
Aqui estão alguns exemplos de configuração de valores em uma matriz:
// Set the n:th entry in an array to the string "value"
Set($arr, "value", n-1);
// Another way to set the n:th entry of an array
Set($arr, "value", Length($arr));
// Sets the value to a new variable at the end of the array
Set($arr, "value", -1);
// Set the n:th entry of the m:th array
Set($record_set, "value", m-1, n-1);
Dica
Para sintaxe adicional que pode ser usada para definir valores em um array, consulte Funções de dicionário e array.
Acesse um Array
Você pode acessar os itens de um array usando o Get
método com esta sintaxe:
type Get(string name[, int index1, int index2, ...])
Isso retorna o valor da variável global com o nome fornecido. Se o primeiro argumento for uma matriz ou o nome de uma variável global de matriz, você poderá obter uma variável específica especificando seu índice (ou índices para uma matriz multidimensional, como um conjunto de registros) como o segundo argumento.
Algumas funções têm valores de retorno de matriz. Por exemplo, SelectNodesFromXMLAny
retorna os resultados de uma consultar XPath como uma matriz. Como outro exemplo, DbExecute
retorna um conjunto de registros como uma matriz bidimensional: primeiro as linhas e depois as colunas. Isso retorna os dados selecionados como uma matriz de matrizes (representando as linhas e colunas selecionadas):
<trans>
$resultSet = DbExecute("<TAG>endpoint:database/My Database</TAG>", "select Result from SimpleCalculatorResults");
$firstRow = Get($resultSet, 0);
$thirdColumnOfSecondRow = $resultSet[2][3];
$secondColumnOfThirdRow = Get($resultSet, 3, 2);
</trans>
As matrizes são indexadas a zero. Para acessar a n:ésima variável de um array chamado "arr"
, usar Get("arr", n-1)
. Para arrays multidimensionais você precisa especificar todos os índices. Para acessar o n:th
coluna do m:th
linha em uma matriz chamada ResultSet
você usaria Get("ResultSet", m-1, n-1)
. A tentativa de obter uma variável além do final do array resulta em um erro de array fora do intervalo.
Estes são exemplos de recuperação de valores de um array:
// Return the third array variable
Get($arr, 2);
// Another way to return the third array variable
Get("arr", 2);
// Get the n:th variable of the m:th array in arr
Get($arr, m-1, n-1);
Este exemplo mostra como você pode primeiro criar um script que constrói e retorna um array. O segundo bloco mostra a execução desse script e a atribuição do valor retornado a uma variável.
<trans>
// Script to build and return an array
a = Array();
a[Length(a)] = "A";
a[Length(a)] = "B";
a[Length(a)] = "C";
a;
</trans>
<trans>
// Call the script to retrieve the array
$Arr = RunScript("<TAG>script:Build Array</TAG>");
</trans>
Dica
Para sintaxe adicional que pode ser usada para acessar valores em um array, consulte Funções de dicionário e array.
Dicionários
No Jitterbit Script, um dicionário é um tipo especial de array de variáveis globais que contém pares de valores-chave. As etapas e funções são:
-
Inicialize o dicionário usando o
Dict
função:$d = Dict();
-
Carregue os dados com uma chave e um valor:
$d['4011'] = 'Banana'; $d['4063'] = 'Tomato';
-
Verifique se a chave já existe no dicionário usando o
HasKey
função:HasKey($d,'4011'); // Returns true
No exemplo, já carregamos a chave '4011' então
HasKey
retornariatrue
.HasKey($d,'4089'); // Returns false
Se a chave ainda não estiver carregada, por exemplo '4089', o
HasKey
retornariafalse
. -
Procure o valor no dicionário passando a chave e recuperando o valor:
$d['4011']; // Returns 'Banana'
Neste exemplo, o valor retornado seria
Banana
.
Com dicionários, tenha em mente estas características:
- O escopo dos dicionários é limitado ao workflow. Por exemplo, se uma operação carregar
$MyDict
com 10.000 registros, somente as operações vinculadas usando caminhos "em caso de sucesso" ou "em caso de falha", ou comRunOperation
, tenha acesso a esse dicionário. Mas, se uma operação usar fragmentação de dados e threading e tiver uma transformação que preencha um dicionário, o dicionário será inconsistente. Isso ocorre porque o Harmony não pega os valores atribuídos às variáveis por vários threads de operação e os concatena em um único conjunto de valores. Isto é verdade para todas as variáveis ou matrizes globais. Use os valores padrão de fragmentação de dados/threading ao criar uma operação que preencha dicionários. - Os dicionários, por usarem uma pesquisa binária, são rápidos em encontrar chaves e retornar valores. Uma chave geralmente pode ser encontrada em cinco a seis tentativas. Em contraste, compare esse tipo de pesquisa com o loop através de uma matriz de 10.000 registros para encontrar uma chave.
- Os dicionários não são gravados na memória, portanto não afetam materialmente a memória disponível do servidor para processamento.