Ir para o conteúdo

Linguagem de Script Jitterbit no Studio

Introdução

A linguagem de Script Jitterbit pode ser utilizada em todos os tipos de scripts dentro do Harmony, incluindo operações e transformações. Scripts são criados na linguagem de Script Jitterbit por padrão. Esta página fornece informações específicas sobre a linguagem de Script Jitterbit, como sintaxe, tipos de dados, operadores, sequências de escape e estruturas de controle. Veja também páginas relacionadas sobre criação de um script, uso do editor de scripts e teste de um script.

Sintaxe

Na linguagem de Script Jitterbit, os scripts devem estar encapsulados dentro de uma tag de abertura <trans> e uma tag de fechamento </trans>, a menos que se utilizem funções que chamam especificamente para que o código seja colocado fora dessas tags, como várias funções de Banco de Dados.

Dentro dessas tags, um Script Jitterbit consiste em funções embutidas, variáveis ou lógica a ser executada, separadas por um ponto e vírgula (;).

O resultado retornado é o valor retornado da última instrução do script antes da tag de fechamento </trans>.

Comentários

Dentro das tags <trans> ... </trans>, o uso de duas barras para frente // marca o início de um comentário de uma linha e afeta o texto até o final daquela linha. Comentários não fazem parte do script que é executado ou do resultado transformado.

Por exemplo, um comentário em uma única linha pode parecer assim:

Comentário de Uma Linha em Jitterbit Script
<trans>
// This is a comment
DbLookup(...)
</trans>

Você também pode usar um comentário em estilo de bloco:

Comentário de Múltiplas Linhas em Jitterbit Script
<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 de Script Jitterbit não inclui instruções de controle como if ou loops while. Em vez disso, você pode usar funções Jitterbit para alcançar a mesma funcionalidade.

Veja as funções Case, If e While em Funções Lógicas. A função Eval em Funções Gerais pode ser utilizada como uma instrução "try-catch".

Um máximo de 50.000 iterações de loop é permitido para cada loop individual em Scripts Jitterbit. Para aumentar o número permitido de iterações por loop, consulte jitterbit.scripting.while.max_iterations em Variáveis Jitterbit de Scripting.

Expressões regulares

Harmony suporta expressões regulares como meio de especificar e reconhecer cadeias de texto, incluindo caracteres, palavras ou padrões de caracteres específicos. Harmony suporta a sintaxe de expressões regulares da linguagem de programação Perl 5.

<trans>
RegExMatch(<input>,<expression>,...)
</trans>

Sequências de escape

Harmony reconhece estas sequências de escape quando usadas em cadeias literais:

Sequência Definição
\t Tabulação
\r Retorno de carro
\n Nova linha

Cadeias literais devem estar cercadas por aspas duplas (") ou aspas simples (').

Qualquer outra aspa deve ser escapada se usada na cadeia. 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 Script Jitterbit. O Script Jitterbit tenta converter os argumentos para permitir a operação. Se isso não for possível, um erro é relatado.

Aritmética

Operador Descrição
+ Adiciona dois números ou concatena duas cadeias. Se uma cadeia for adicionada a qualquer outra coisa, ambos os argumentos são convertidos em cadeias. Se ambos os argumentos forem números, o resultado é do tipo double.
++ Incrementa o valor em 1. Exemplo: $count++; se prefixado, a atribuição precede o incremento.
+= Concatena uma cadeia ou adiciona números à variável alvo. Exemplo: $count+=2 é o mesmo que $count=$count+2.
- Subtrai dois números. O resultado é do tipo double.
-- Decrementa um valor em 1. Exemplo: $count--; se prefixado, a atribuição precede o decremento.
-= Subtrai números da variável alvo. 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 é um inteiro.

Lógico

Operador Descrição
& Operador lógico E. 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 é avaliado.
| Operador lógico OU. 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 é avaliado.

Comparação

Use os seguintes operadores para comparar os valores de dois argumentos do mesmo tipo de dado:

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 não forem iguais.
!= Operador de não equivalência. Retorna verdadeiro se os argumentos não forem iguais. Retorna falso se forem iguais.
<
>
<=
>=
Operadores de comparação. Retorna verdadeiro ou falso.

Nota

Comparar argumentos de diferentes tipos de dados não é suportado.

Negação

Operador Descrição
!

Operador de negação. Converte um valor verdadeiro em falso e vice-versa. Exemplo:

!IsNull($org.workorder.id)

Array

Operador Descrição
{ }

Usado para construir um array. Exemplos:

\(a={"Londres","Paris","Nova Iorque"};<br/>\)b={{"John",25},
{"Steve",32},
{"Daniel",26}
};
$c={"\"quoted\"", '"quoted"'};

Precedência dos operadores

Esta tabela mostra a precedência dos operadores, do mais alto para o mais baixo:

Operadores Descrição
() Parênteses para agrupamento
{ } Chaves para arrays
++ -- - operadores unários pré e pós
^ Potência
! Negação
* / Multiplicação, divisão
+ - Adição, subtração
< > == != <= >= Operadores de comparação
& && E lógico
| || OU lógico
= += -= Atribuição

Paleta de componentes

A paleta de componentes de script fornece acesso a vários componentes que podem ser usados dentro de um script. Você pode usar componentes dentro de um script arrastando ou clicando duas vezes neles na paleta de componentes, usando o recurso de autocompletar ou digitando ou colando manualmente a sintaxe correta.

Nota

Se um script chamar outros componentes do projeto que ainda não foram implantados, esses componentes devem ser implantados antes que você possa executar o script com sucesso.

Você pode acessar a paleta de componentes de script no lado direito do designer de projetos e do editor de scripts:

source objects transaction

Objetos de origem

A aba Objetos de Origem está presente apenas para scripts criados dentro de uma transformação.

Dentro de um script de transformação, você pode referenciar dados de origem inserindo o caminho de referência de um campo, ou pode referenciar nós de dados de origem inserindo o caminho de referência de um 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 (veja 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 array. Os nós também podem ser usados para criar condições em nós de destino (veja Adicionar lógica condicional).

Para adicionar um caminho de referência de campo ou nó a um script de transformação (Jitterbit Script apenas), use um destes métodos:

  • Arraste o objeto da paleta para 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.
  • Digite 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 informações sobre como os caminhos de referência de campo e nó são construídos, veja Notação de caminho de referência em Conceitos-chave.

Funções

A aba Funções fornece uma lista de funções disponíveis para uso em um script.

Dentro de um script, é possível usar funções inserindo a sintaxe da função.

Para adicionar a sintaxe da função a um script (Jitterbit Script ou JavaScript), utilize um dos seguintes 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 na localização 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, em seguida, pressione Control+Space para exibir uma lista de sugestões de autocompletar. Selecione uma função para inserir a sintaxe da função.
  • Digite manualmente a sintaxe da função.

Para 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 globalmente em um projeto, incluindo variáveis globais, variáveis de projeto e variáveis Jitterbit.

Dentro de um script, é possível usar variáveis inserindo a sintaxe da variável (consulte a documentação para cada tipo de variável em Variáveis).

Para adicionar a sintaxe da variável a um script (Jitterbit Script ou JavaScript), utilize um dos seguintes 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 na localização do cursor dentro do script.
  • Comece a digitar o nome da variável e, em seguida, pressione Control+Space para exibir uma lista de sugestões de autocompletar. Selecione uma variável para inserir a sintaxe da variável.
  • Digite manualmente a sintaxe da variável.

Variáveis globais são acessadas digitando um sinal de $ antes do nome da variável ou usando as funções Set e Get.

Os nomes das variáveis globais podem ser compostos por estes 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 caractere ponto 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 as funções Set e Get:

<trans>
Set("op2", Get("op"));
</trans>

Observe que, para certas variáveis do Jitterbit, como incluem um hífen, você deve referenciá-las usando as funções Set ou Get:

<trans>
Get("jitterbit.source.http.response.header.Content-Type");
</trans>

Variáveis locais, embora não listadas na aba Variáveis, não estão listadas porque não estão disponíveis globalmente. No entanto, você ainda pode usá-las localmente dentro de um script. As variáveis locais têm estas características:

  • Uma variável local é definida e usada apenas dentro de um script específico. Portanto, o conflito entre o valor de uma variável local no script atual e 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 pelas funções Set ou Get.
  • RunScript pode passar argumentos para o script, por exemplo RunScript(SCRIPT_ID, 5, "abc",...). Valores no script podem ser atribuídos a variáveis locais pré-definidas _1, _2, .... Neste exemplo, _1 representa o valor inteiro de 5, enquanto _2 representa o valor string "abc". A variável local deve ser definida antes de poder ser referenciada, exceto no caso dos argumentos de entrada _1, _2, ... descritos acima.
  • A função ArgumentList 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.

Plugins

A aba Plugins fornece uma lista de plugins que podem ser executados dentro de um script.

Dentro de um script, você pode usar um plugin como argumento para a função RunPlugin 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 apenas), use um dos seguintes métodos:

  • Arraste o plugin da paleta para o script para inserir tanto a função RunPlugin quanto a referência do plugin.
  • Clique duas vezes no plugin na paleta para inserir a referência do plugin na localização do cursor dentro do script.
  • Comece a digitar o nome do plugin e, em seguida, pressione Control+Space para exibir uma lista de sugestões de autocompletar. Selecione um plugin para inserir a referência do plugin.
  • Digite manualmente a referência do plugin.

A referência do plugin está contida dentro das tags <TAG> e </TAG> e é composta pelo tipo do componente do projeto (plugin), seguido por dois pontos (:), seguido pelo nome do plugin do manifesto XML. Este exemplo usa a função RunPlugin com uma referência ao plugin HMAC-SHA1 generator:

<trans>
RunPlugin("<TAG>plugin:http://www.jitterbit.com/plugins/pipeline/user/HMACSHA1Generator</TAG>");
</trans>

Observe que o nome do plugin do manifesto XML não é necessariamente o mesmo que o nome exibido no Console de Gerenciamento.

Nota

Apenas plugins que estão disponíveis para uso dentro de um script são listados. Plugins adicionais podem ser aplicados em uma atividade dentro de uma operação. Para documentação sobre o uso de plugins, incluindo como configurar um plugin 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 um 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 apenas), use um dos seguintes métodos:

  • Arraste a operação da paleta para o script para inserir tanto a função RunOperation quanto a referência da operação.
  • Clique duas vezes na operação na paleta para inserir a referência da operação na localização do cursor dentro do script.
  • Comece a digitar o nome da operação e, em seguida, pressione Control+Space para exibir uma lista de sugestões de autocompletar. Selecione uma operação para inserir a referência da operação.
  • Digite manualmente a referência da operação.

A referência da operação está contida dentro das tags <TAG> e </TAG> e é construída a partir do tipo do componente do projeto (operation), seguido por dois pontos (:), seguido pelo nome da operação fornecido pelo usuário. Este exemplo usa a função RunOperation com uma referência a uma operação chamada My Example Operation:

<trans>
RunOperation("<TAG>operation:My Example Operation</TAG>");
</trans>

Além de usar a função RunOperation, você também pode usar a referência da operação com outras funções da aba Funções que aceitam a referência da 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 referenciar uma notificação como um argumento para a função SendEmailMessage inserindo o caminho de referência da notificação.

Para adicionar um caminho de referência de notificação a um script (Jitterbit Script apenas), use um dos seguintes métodos:

  • Arraste a notificação da paleta para o script para inserir tanto a função SendEmailMessage quanto a referência da notificação.
  • Clique duas vezes na notificação na paleta para inserir a referência da notificação na localização do cursor dentro do script.
  • Comece a digitar o nome da notificação e, em seguida, pressione Control+Space para exibir uma lista de sugestões de autocompletar. Selecione uma notificação para inserir a referência da notificação.
  • Digite manualmente a referência da notificação.

A referência da notificação está contida dentro das tags <TAG> e </TAG> e é composta pelo tipo do componente do projeto (email), seguido por dois pontos (:), seguido pelo nome da notificação de email fornecido pelo usuário. Este exemplo usa a função SendEmailMessage com uma referência a uma notificação de email chamada Minha Notificação de Email de Exemplo:

<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, é possível referenciar outro script como um argumento para a função RunScript inserindo o caminho de referência do script.

Para adicionar um caminho de referência de script a um script (Jitterbit Script apenas), use um dos seguintes métodos:

  • Arraste o script da paleta para o script para inserir tanto a função RunScript quanto a referência do script.
  • Clique duas vezes no script na paleta para inserir a referência do script na localização do cursor dentro do script.
  • Comece a digitar o nome do script e, em seguida, pressione Control+Space para exibir uma lista de sugestões de autocompletar. Selecione um script para inserir a referência do script.
  • Digite manualmente a referência do script.

A referência do script está contida dentro das tags <TAG> e </TAG> e é composta pelo tipo do componente do projeto (script), seguido por dois pontos (:), seguido pelo nome do script fornecido pelo usuário. Este exemplo usa a função RunScript com uma referência a um script chamado Meu Exemplo de Script:

<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 referenciar 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 na localização do cursor dentro do script.
  • Comece a digitar o nome da conexão ou atividade e, em seguida, pressione Control+Space para exibir uma lista de sugestões de autocompletar. Selecione uma conexão ou atividade para inserir a referência apropriada.
  • Digite manualmente a referência da conexão ou atividade.

Os tipos de endpoints que podem ser usados dentro dos scripts dependem se existem funções que suportam receber o tipo específico de referência de conexão ou atividade como argumento. As referências de endpoint devem ser usadas em conjunto com essas funções para serem válidas no script.

As 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 que é específico para o tipo de atividade (por exemplo, Ler, Escrever, Consultar, Upsert, GET, POST, etc.). Para aparecer aqui, as conexões e atividades devem já 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 aparecem agrupadas da seguinte forma:

endpoints HTTP

Referências de conexão estão contidas dentro das tags <TAG> e </TAG> e são construídas a partir 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>

Referências de atividade são mais longas, pois a referência de conexão da qual estão associadas também deve ser incluída no caminho. Referências de atividade estão contidas dentro das tags <TAG> e </TAG> e são construídas a partir 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 do tipo específico de conexão ou atividade listado abaixo, você pode usar funções da aba Funções que aceitam uma referência de conector como argumento. As funções descritas abaixo estão disponíveis para serem usadas 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 quaisquer conexões Banco de Dados configuradas e atividades associadas, ambas podendo ser usadas em scripts dependendo da função específica. Conexões de banco de dados podem ser usadas com quaisquer funções listadas em Funções de Banco de Dados que utilizam um databaseId como parâmetro, incluindo:
  • CacheLookup
  • CallStoredProcedure
  • DBCloseConnection
  • DBExecute
  • DBLookup
  • DBLookupAll
  • DBRollbackTransaction
  • DBWrite
Atividades de banco de dados podem ser usadas com quaisquer funções listadas em Funções de Banco de Dados que utilizam um target de banco de dados como parâmetro, incluindo:
  • DBLoad
Endpoints de Compartilhamento de Arquivos
Endpoints de FTP
Endpoints de HTTP
Endpoints de Armazenamento Local
Endpoints de Armazenamento Temporário
Estas categorias incluem quaisquer conexões Compartilhamento de Arquivos, FTP, HTTP, Armazenamento Local, e Armazenamento Temporário configuradas (que não podem ser usadas em um script) e atividades associadas (que podem ser usadas em um script).

Nota

Embora uma categoria de Endpoints de API também esteja incluída, conexões e atividades de API não podem ser usadas em um script.

As atividades incluídas (exceto atividades de API) podem ser usadas com quaisquer funções listadas em Funções Criptográficas, Funções de Banco de Dados, Funções de Arquivo, ou Funções do Salesforce que utilizam um sourceId ou targetId como parâmetro, incluindo estas:
  • ArchiveFile
  • Base64EncodeFile
  • DBLoad
  • DBWrite
  • DeleteFile
  • DeleteFiles
  • DirList
  • FileList
  • FlushAllFiles
  • FlushFile
  • ReadFile
  • SfLookupAllToFile
  • WriteFile
Endpoints do Salesforce Esta categoria inclui quaisquer conexões Salesforce configuradas (que podem ser usadas em um script). Atividades do Salesforce não estão incluídas, pois não podem ser usadas em um script. Conexões do Salesforce podem ser usadas com quaisquer funções listadas em Funções do Salesforce que utilizam um salesforceOrg como parâmetro, incluindo:
  • LoginToSalesforceAndGetTimeStamp
  • SalesforceLogin
  • SetSalesforceSession
  • SfCacheLookup
  • SfLookup
  • SfLookupAll
  • SfLookupAllToFile
Endpoints do NetSuite Esta categoria inclui quaisquer conexões NetSuite configuradas (que podem ser usadas em um script). Atividades do NetSuite não estão incluídas, pois não podem ser usadas em um script. Conexões do NetSuite podem ser usadas com quaisquer funções listadas em Funções do NetSuite que utilizam um netSuiteOrg como parâmetro, incluindo:
  • NetSuiteGetSelectValue
  • NetSuiteGetServerTime
  • NetSuiteLogin

Tipos de dados

Todos os objetos de origem e variáveis globais que não são nulos têm um tipo de dado associado a eles. Vários tipos de dados podem ser alterados usando as funções na categoria de Funções de conversão.

Os seguintes tipos de dados são suportados em Scripts Jitterbit:

Tipo Descrição Classificação
binary Binário Dados
bit Bit Dados
bool Boolean Lógico
int Inteiro Numérico
decimal Decimal Numérico
double Duplo Numérico
float Flutuante Numérico
long Longa Numérico
date Data Data e Hora
timespan Intervalo de tempo (Data com hora) Data e Hora
string Cadeia de caracteres String
array Array Coleção
dictionary Dicionário (também conhecido como map) Coleção
instance Instância em uma fonte de dados ou alvo Esquema
node Nó em um esquema de uma fonte de dados ou alvo Esquema
type Qualquer um desses tipos Dados
null Valor nulo Dados
var Referência de variável, local ou global Script

Arrays

Um array é uma coleção de variáveis. Cada membro na coleção pode ser de qualquer tipo suportado, incluindo arrays. Os membros de um array podem ser acessados usando os métodos Get e Set ou usando a sintaxe [] array. Arrays são indexados a partir de zero, e os índices são numéricos, sequenciais e não podem ser pulados.

Você também pode criar arrays de variáveis globais. Uma variável global de array é um array de outras variáveis globais que, por sua vez, podem ser arrays.

Definir um array

Você pode definir valores em um array usando a função Set com esta sintaxe:

type Set(string name, type value [, int index1, int index2, ...])

Isso define o valor da variável global com o nome dado para o valor e retorna o valor. Se o primeiro argumento for um array ou o nome de uma variável global de array, você pode definir o valor de uma variável de array especificando seu índice (ou índices para arrays multidimensionais) como o terceiro argumento.

Nem todos os itens em um array precisam ser do mesmo tipo. Por exemplo, você pode criar um array que contém uma data, um 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 a partir de zero, o primeiro elemento está no índice 0 e o último elemento está no índice (tamanho-1). Para adicionar 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 do array resulta em um erro de índice fora do intervalo. Definir elementos de dados que não são arrays também pode ser feito usando a sintaxe $de_name.

Aqui estão exemplos de definição de valores em um array:

// 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, veja Funções de dicionário e array.

Acessar um array

Você pode acessar os itens de um array usando o método Get com esta sintaxe:

type Get(string name[, int index1, int index2, ...])

Isso retorna o valor da variável global com o nome dado. Se o primeiro argumento for um array ou o nome de uma variável global de array, você pode obter uma variável específica especificando seu índice (ou índices para um array multidimensional, como um conjunto de registros) como o segundo argumento.

Algumas funções têm valores de retorno em array. Por exemplo, SelectNodesFromXMLAny retorna os resultados de uma consulta XPath como um array. Como outro exemplo, DbExecute retorna um conjunto de registros como um array bidimensional: linhas primeiro, depois colunas. Isso retorna os dados selecionados como um array de arrays (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>

Os arrays são indexados a partir de zero. Para acessar a n-ésima variável de um array chamado "arr", use Get("arr", n-1). Para arrays multidimensionais, é necessário especificar todos os índices. Para acessar a coluna n-ésima da linha m-ésima em um array chamado ResultSet, você usaria Get("ResultSet", m-1, n-1). Tentar obter uma variável além do final do array resulta em um erro de índice fora do intervalo.

Estes são exemplos de como recuperar 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 de seu valor retornado a uma variável.

Construir Array
<trans>
// Script to build and return an array
a = Array();
a[Length(a)] = "A";
a[Length(a)] = "B";
a[Length(a)] = "C";
a;
</trans>
Chamar Script para Obter Array
<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, veja Funções de dicionário e array.

Dicionários

No Jitterbit Script, um dicionário é um tipo especial de array de variável global que contém pares de chave-valor. Os passos e funções são:

  1. Inicialize o dicionário usando a função Dict:

    $d = Dict();
    
  2. Carregue dados com uma chave e um valor:

    $d['4011'] = 'Banana';
    $d['4063'] = 'Tomate';
    
  3. Verifique se a chave já existe no dicionário usando a função HasKey:

    HasKey($d,'4011'); // Retorna true
    

    No exemplo, já carregamos a chave '4011', então HasKey retornaria true.

    HasKey($d,'4089'); // Retorna false
    

Se a chave não estivesse carregada, por exemplo '4089', o HasKey retornaria false.

  1. Procure o valor no dicionário passando a chave e obtendo o valor de volta:

    $d['4011']; // Retorna 'Banana'
    

    Neste exemplo, o valor retornado seria Banana.

Com dicionários, mantenha essas características em mente:

  • O escopo dos dicionários é limitado ao fluxo de trabalho. Por exemplo, se uma operação carregar $MyDict com 10.000 registros, apenas aquelas operações que estão vinculadas usando caminhos "em sucesso" ou "em falha", ou com RunOperation, têm acesso a esse dicionário. Mas, se uma operação usar fragmentação e threading, e tiver uma transformação que popula um dicionário, o dicionário se torna inconsistente. Isso ocorre porque o Harmony não considera os valores atribuídos a variáveis por múltiplas threads de operação e não os concatena em um único conjunto de valores. Isso é verdade para todas as variáveis ou arrays globais. Use os valores padrão de fragmentação/threading ao construir uma operação que popula dicionários.
  • Dicionários, porque utilizam uma busca binária, são rápidos para encontrar chaves e retornar valores. Uma chave pode geralmente ser encontrada em cinco a seis tentativas. Em contraste, compare esse tipo de busca a percorrer um array de 10.000 registros para encontrar uma chave.
  • Dicionários não são gravados na memória, portanto, não impactam materialmente a memória disponível do servidor para processamento.