Ir para o conteúdo

Jitterbit Script

Introdução

A linguagem Jitterbit Script pode ser usada em todos os tipos de scripts do 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> etiqueta 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 integradas, variáveis ou lógica 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:

Single-Line Comment in Jitterbit Script
<trans>
// This is a comment
DbLookup(...)
</trans>

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

Multi-Line Comment in 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 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. 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 estas 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:

!IsNull($org.workorder.id)

Variedade

Operador Descrição
{ }

Usado para construir um array. Exemplos:

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

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:

transação de objetos de origem

Objetos de Origem

A aba Objetos de origem está presente apenas para scripts criados em uma transformação:

objetos de origem da aba

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:

funções da aba

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:

variáveis de aba

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 ou Get funções.
  • RunScript pode passar argumentos para o script, por exemplo RunScript(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 de 5, 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:

plug-ins de aba

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 digitando 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:

operações de aba

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:

notificações da aba

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 e-mail fornecido pelo usuário. Este exemplo usa o SendEmailMessage com uma referência a uma notificação e-mail chamada Meu Exemplo de Notificação E-mail:

<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:

scripts de aba

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 função 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:

endpoints da aba

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 de extremidade 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:

endpoints http

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:
  • CacheLookup
  • CallStoredProcedure
  • DBCloseConnection
  • DBExecute
  • DBLookup
  • DBLookupAll
  • DBRollbackTransaction
  • DBWrite
As atividades de banco de dados podem ser usadas com qualquer função listada em Funções de banco de dados que usam um banco de dados target como parâmetro, incluindo:
  • DBLoad
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:
  • ArchiveFile
  • Base64EncodeFile
  • DBLoad
  • DBWrite
  • DeleteFile
  • DeleteFiles
  • DirList
  • FileList
  • FlushAllFiles
  • FlushFile
  • ReadFile
  • SfLookupAllToFile
  • WriteFile
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:
  • LoginToSalesforceAndGetTimeStamp
  • SalesforceLogin
  • SetSalesforceSession
  • SfCacheLookup
  • SfLookup
  • SfLookupAll
  • SfLookupAllToFile
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:
  • NetSuiteGetSelectValue
  • NetSuiteGetServerTime
  • NetSuiteLogin

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 um array ou o nome de uma variável global de array, você poderá 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 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.

Build 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>
Call Script to Get 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, 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:

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

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

    $d['4011'] = 'Banana';
    $d['4063'] = 'Tomato';
    
  3. 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 retornaria true.

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

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

  4. 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 com RunOperation, 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.