Ir para o conteúdo

Funções gerais no Jitterbit Design Studio

Funções gerais incluem aquelas que não são específicas de uma atividade particular, mas encontram aplicação em praticamente qualquer script.

ArgumentList

Declaração

null ArgumentList(type var1[,... ])

Sintaxe

ArgumentList(<var1>[,... ])

Parâmetros obrigatórios

  • var1: Uma variável local a ser inicializada a partir da lista de argumentos da instância chamadora

Parâmetros opcionais

  • var2,... varN: Variáveis adicionais a serem inicializadas a partir da lista de argumentos da instância chamadora

Descrição

Essa função inicializa um conjunto de variáveis locais a partir de sua lista de argumentos.

A construção das variáveis locais depende de qual desses casos se aplica:

  • Caso 1: Mapeamentos de Transformação Quando a chamada da função é feita no mapeamento de um campo de destino. (Uma chamada para a função setinstances deve ter sido feita anteriormente.) As variáveis locais são construídas a partir das variáveis globais correspondentes na instância fornecida pela função SetInstances().
  • Caso 2: Executando um Script Quando a chamada da função é feita em um script. As variáveis locais são construídas a partir dos argumentos correspondentes na lista fornecida pela instrução runscript chamadora. Essas variáveis também podem ser acessadas por índice, como _1, _2...

Um valor nulo é retornado por essa função e pode ser ignorado. Como alternativa, consulte a função getinstance.

Exemplos

Caso 1: Mapeamentos de Transformação
// Assuming a parent mapping contains these statements:
...
s = "SELECT key_name, key_value, key_type FROM key_values";
r = DBLookupAll("<TAG>Sources/DB...</TAG>", s);
SetInstances("DETAILS", r);
...

// In the DETAILS target node, a field could have as a mapping:
<trans>
ArgumentList(key, value, type);
key + " = " + value + " (of type " + type + ")";
</trans>
Caso 2: Executando um Script
// This code fragment calls a script "CalculateDisplayString":
...
RunScript("<TAG>Scripts/CalculateDisplayString</TAG>", "John", 35);
// The result will be the string "John is 35 years old."
...

// The script "CalculateDisplayString", using names:
<trans>
ArgumentList(name, age);
name + " is " + age + " years old.";
</trans>

// Same script "CalculateDisplayString", using indices:
<trans>
// ArgumentList: name, age
_1 + " is " + _2 + " years old.";
</trans>

AutoNumber

Declaração

int AutoNumber()

Sintaxe

AutoNumber()

Descrição

Retorna o número de uma instância dentro de uma hierarquia particular.

Aviso

Esse método foi descontinuado e pode ser removido em uma versão futura do Jitterbit. Use as funções TargetInstanceCount ou SourceInstanceCount em seu lugar. A função TargetInstanceCount é equivalente a essa função.

Exemplos

Suponha que uma arquitetura de destino tenha dois registros de nível superior: PO1 e PO2:

  • PO1 é um pai de três registros filhos: PO1_record1, PO1_record2 e PO1_record3.
  • PO2 é um pai de dois registros filhos: PO2_record1 e PO2_record2.

Quando a função AutoNumber é chamada:

  • AutoNumber chamada no nível pai retorna 1 em PO1 e retorna 2 em PO2.
  • AutoNumber no nível filho de PO1 retorna 1 em PO1_record1, retorna 2 em PO1_record2 e retorna 3 em PO1_record3, já que PO1 tem 3 registros filhos.

CancelOperation

Declaração

void CancelOperation(string operationInstanceGUID)

Sintaxe

CancelOperation(<operationInstanceGUID>)

Parâmetros obrigatórios

  • operationInstanceGUID: O GUID da instância de operação a ser cancelada

Descrição

Cancela uma instância de operação particular especificada por um GUID de instância de operação.

Conforme mostrado no exemplo abaixo, chame a função GetOperationQueue para recuperar instâncias de operações em execução. O GUID da instância de operação está no índice 4 dos subarrays retornados pela função GetOperationQueue. Consulte a função GetOperationQueue para mais detalhes.

Exemplos

// Cancel all instances of a particular operation
queue = GetOperationQueue("<TAG>Operations/My Operation</TAG>");
n = Length(queue);
i = 0;
While(i < n, op_inst = queue[i][4];
  WriteToOperationLog("Canceling operation instance: " + op_inst);
  CancelOperation(op_inst);
  i++;
);

CancelOperationChain

Declaração

void CancelOperationChain(string message)

Sintaxe

CancelOperationChain(<message>)

Parâmetros obrigatórios

  • message: Se uma string não vazia, será registrada como mensagem de aviso no log de operação.

Descrição

Se a operação atual tiver operações de sucesso ou falha, chamar este método fará com que essas operações sejam canceladas. Qualquer operação vinculada por uma condição também será cancelada. No entanto, qualquer script na operação atual será concluído.

Isso pode ser útil se uma operação está sendo executada em um loop e a condição para parar o loop foi alcançada.

Exemplos

CancelOperationChain("A operação de sucesso não precisa ser executada.");

Eval

Declaração

string Eval(type expToEvaluate, type defaultResult)

Sintaxe

Eval(<expToEvaluate>, <defaultResult>)

Parâmetros obrigatórios

  • expToEvaluate: Uma expressão a ser avaliada; se válida, seu resultado será retornado
  • defaultResult: Resultado padrão a ser avaliado e retornado se expToEvaluate não for válido

Descrição

Avalia o primeiro argumento; se válido, seu resultado é retornado como uma string. Caso contrário, o valor padrão é avaliado e seus resultados são retornados como uma string.

Isso pode ser usado como uma declaração "try-catch", pois o segundo argumento será avaliado apenas se o primeiro falhar.

Nota

Não é recomendado usar esta função com RunOperation, pois sempre retornará um resultado válido após a operação ser executada, a menos que a própria chamada de operação seja malformada ou inválida. Em vez disso, para capturar operações com falha, funções como If e GetLastError podem ser usadas para alcançar funcionalidade similar. Para mais informações, consulte a seção Scripting em Melhores práticas para Design Studio.

Exemplos

// Returns a value of "100"
// the string representation of 4 multiplied by 25:
entry = Eval(4*25,"Bad Entry");

// Returns "Bad Entry", as strings cannot be multiplied:
book = "";
entry = Eval(book*36.4, "Bad Entry");

// Execute a SQL statement and terminate an operation if it fails:
results = Eval(
  DBLookup("<TAG>Project Name/Sources/Source Name</TAG>", "SELECT col FROM table"),
  RaiseError("Failed to execute SQL statement: " + GetLastError())
);

Get

Declaração

type Get(string name)

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

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

Sintaxe

Get(<name>[, <index1>, <index2>,... <indexN>])

Parâmetros obrigatórios

  • name: O nome de uma variável global, escalar ou array, ou um array

Parâmetros opcionais

  • index1,... indexN: Índices especificando o elemento desejado no array ou em um sub-array

Descrição

Retorna o valor de uma variável global com um determinado nome. Se passar um array ou o nome de uma variável global que é um array, retorna um elemento do array. Consulte também a função complementar Set.

Se o primeiro argumento for um array ou o nome de uma variável global que é um array, a função recupera um elemento específico por seu índice (ou índices para um array multidimensional como um conjunto de registros) usando os argumentos restantes.

Arrays são indexados a partir de zero; o primeiro elemento está no índice 0 e o último elemento (do array $array) está no índice [Length($array)-1].

Tentar recuperar um elemento além do final do array resultará em um valor de retorno nulo.

Exemplos

// Returns the value of the global variable "Count"
Get("Count");

// Returns the third element of an array (0-based)
Get($arr, 2);

// For arrays, this is the same as previous,
// as "arr" is equivalent to $arr in the case of arrays
Get("arr", 2);

// Returns the n-th element of the m-th array in $arr
Get($arr, m-1, n-1);

GetChunkDataElement

Declaração

type GetChunkDataElement(string name)

Sintaxe

GetChunkDataElement(<name>)

Parâmetros obrigatórios

  • name: O nome da variável de chunk

Descrição

Retorna o valor da variável de chunk com um nome específico. Uma variável de chunk é avaliada conforme cada chunk de dados é processado. Um método alternativo é usar a sintaxe SCOPE_CHUNK da função Set. Consulte também as funções SetChunkDataElement e Set.

Exemplos

// If used in a transformation mapping, this sets
// the value of the chunk variable "CustomerFileName" to
// the results of a calculation using the value of the "Customer" field
// at the time of the chunking to create a filename for that chunk:

SetChunkDataElement("CustomerFilename", "customer_" + CustomerID + ".csv");

// This global variable would be available as a variable in the
// filenames field of the connection parameters of a target as:

[CustomerFilename]

// It would also be available in scripts in the same chunk as:

GetChunkDataElement("CustomerFilename");

// With each chunk created, a unique filename for that customer ID
// will be created, such as (depending on the values of CustomerID):
customer_1009.csv
customer_2019.csv
customer_5498.csv


// Returns the value of a chunk variable
result = GetChunkDataElement("Count");

GetHostByIP

Declaração

string GetHostByIP(string ipAddress)

Sintaxe

GetHostByIP(<ipAddress>)

Parâmetros obrigatórios

  • ipAddress: Uma string com um endereço IP

Descrição

Resolve um endereço IP em um nome de host.

Exemplos

GetHostByIP("127.0.0.1");

GetInputString

Declaração

string GetInputString(type arg)

Sintaxe

GetInputString(<arg>)

Parâmetros obrigatórios

  • arg: Uma variável global

Descrição

Retorna a entrada não formatada como uma string, dada uma variável global de origem.

Isso é útil quando a representação padrão do Jitterbit de um tipo de dados (como uma data ou double) não é adequada e a entrada "bruta" é necessária. Se este método for chamado em um objeto que não é uma variável global de origem, uma string vazia será retornada.

Exemplos

// A entrada é muito grande para um double do Jitterbit
// retornar a entrada bruta em vez disso
$SessionId = GetInputString(root$transaction$body$GetMachineList$req$SessionID$)

GetLastOperationRunStartTime

Declaração

date GetLastOperationRunStartTime(string operationId)

Sintaxe

GetLastOperationRunStartTime(<operationId>)

Parâmetros obrigatórios

  • operationId: Uma operação no projeto atual

Descrição

Retorna a última data e hora em que a operação especificada foi executada. O valor retornado é uma data (que inclui a data e a hora). Para ser usado apenas com um agente único.

A operação usada nesta chamada de função deve ser definida como uma operação no projeto atual. Consulte as instruções em inserindo itens de projeto.

A data retornada está em UTC (sem um fuso horário específico). Use a função ConvertTimeZone para converter para uma hora local, conforme visto no exemplo abaixo.

Aviso

Esta função deve ser usada apenas com um agente privado único, pois não é precisa ao usar agentes de nuvem ou múltiplos agentes privados.

Exemplos

$lastOpRun = GetLastOperationRunStartTime("<TAG>Operations/MyOperation</TAG>");
// Convertendo para um fuso horário local
$lorInMyTimeZone = ConvertTimeZone($lastOpRun,"UTC","CST");

GetName

Declaração

string GetName(type arg)

Sintaxe

GetName(<arg>)

Parâmetros obrigatórios

  • arg: Uma variável ou variável global

Descrição

Retorna o nome de uma variável ou de uma variável global.

Certas funções retornam uma matriz de variável global nomeada; se definida, esta função recupera o nome do valor.

Exemplos

x = {a="var1", b="var2"};
GetName(x[0]);
// Returns the string "a"
GetName(x)[0];
// Also returns the string "a"
// The source is a simple text and [] represents the source element
values = GetSourceInstanceArray([]);
// Returns the first field name of the source element
GetName(values[0]);

GetOperationQueue

Declaração

array GetOperationQueue([string operationTag])

Sintaxe

GetOperationQueue([<operationTag>])

Parâmetros opcionais

  • operationTag: Uma operação no projeto atual; caso contrário, utiliza-se todas as operações no projeto atual

Descrição

Retorna o conteúdo da fila de operações como uma matriz. Apenas operações para as quais o usuário atual tem acesso de leitura serão retornadas. Para ser utilizado com um único agente apenas.

O resultado é retornado como uma matriz de matrizes, com estes elementos em cada submatriz:

  • 0: GUID da operação (string)
  • 1: O sinalizador IsExecuting (booleano)
  • 2: Timestamp (data) de quando a operação foi adicionada à fila
  • 3: Segundos no status atual (inteiro)
  • 4: GUID da instância de operação (string)
  • 5: Nome da operação (string)

O argumento de tag de operação é opcional. Se o argumento de tag de operação estiver presente, apenas as entradas da fila para essa operação específica serão retornadas. Consulte as instruções em inserindo itens de projeto.

Aviso

Esta função deve ser usada apenas com um único agente privado, pois não é precisa ao usar agentes na nuvem ou múltiplos agentes privados.

Exemplos

// Write the queue for a particular operation to the operation log:
queue = GetOperationQueue("<TAG>Operations/MyOperation</TAG>");
n = Length(queue);
i = 0;
// Loop over the queue entries
While(i < n,
  WriteToOperationLog("Queue Entry: GUID=" +
    queue[i][0] + "; IsExecuting=" + queue[i][1] +
    "; Added at: " + queue[i][2] );
  i++;
);

GetServerName

Declaração

string GetServerName()

Sintaxe

GetServerName()

Descrição

Retorna o nome da máquina em que o agente está sendo executado.

Exemplos

GetServerName();
// Retorna o nome do servidor

GUID

Declaração

string GUID()

Sintaxe

GUID()

Descrição

Retorna uma string GUID (um identificador único globalmente, também conhecido como identificador único universal ou UUID).

O formato do GUID é xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx, onde M é a versão (4) e N é a variante (8).

Exemplos

GUID();
// Retorna uma string como "c056f89d-1f45-458e-8b25-9ecf2ed10842"

IfEmpty

Declaração

type IfEmpty(type arg, type default)

Sintaxe

IfEmpty(<arg>, <default>)

Parâmetros obrigatórios

  • arg: Um argumento para avaliar se é nulo ou uma string vazia
  • default: Valor padrão a retornar se arg for nulo ou uma string vazia

Descrição

Retorna o valor padrão se o primeiro argumento for nulo ou se a representação em string do argumento for uma string vazia. Caso contrário, retorna o primeiro argumento. Este é um atalho para uma declaração de função If:

If(IsNull(arg)|Length(arg)==0, default, arg)

Consulte também a função IsNull.

Exemplos

// Se a variável "myDate" for nula ou vazia,
// retorna a data atual, caso contrário retorna "myDate"
result = IfEmpty(myDate, Now());

IfNull

Declaração

type IfNull(type arg, type default)

Sintaxe

IfNull(<arg>, <default>)

Parâmetros obrigatórios

  • arg: Um argumento a ser avaliado para verificar se é nulo
  • default: Valor padrão a retornar se arg for nulo

Descrição

Retorna o valor padrão se o primeiro argumento for nulo, caso contrário retorna o primeiro argumento.

Trata-se de um atalho para uma declaração da função If:

If(IsNull(arg), default, arg)

Consulte também as funções IsNull e IfEmpty.

Nota

Se jitterbit.target.xml.include_nil_attribute for definido como true a montante das funções IfNull ou IsNull, as funções avaliarão uma string vazia como um valor não nulo ao usar versões de agente 11.43 ou posteriores.

Exemplos

// Se a variável "myDate" for nula,
// retorna a data atual, caso contrário retorna "myDate"
result = IfNull(myDate, Now());

InitCounter

Declaração

long InitCounter(type counter[, long initialValue])

Sintaxe

InitCounter(<counter>, <initialValue>)

Parâmetros obrigatórios

  • counter: O nome de uma variável ou uma referência a uma variável global a ser usada como contador

Parâmetros opcionais

  • initialValue: O valor inicial a definir para o contador; o padrão é 0

Descrição

Inicializa um contador, opcionalmente passando um valor inicial. Para ser usado com um único agente apenas.

Se nenhum valor inicial for definido, o valor inicial será definido como 0. O primeiro argumento é o nome de uma variável ou uma referência a uma variável (consulte os exemplos). Este método precisa ser chamado apenas em contextos single-threaded. Chamar este método em um contexto multi-threaded resultará em um erro. Consulte também as Considerações ao fazer chunking.

Aviso

Esta função deve ser usada apenas com um único Agente, pois resulta em um erro em um contexto com múltiplos Agentes.

Exemplos

// Initialize counter to 0 using the name of a global variable
InitCounter("counter");

// Initialize counter to 100 using a reference to a global variable
InitCounter($counter, 100);

InList

Declaração

int InList(type x[, type arg1, ... type argN])

Tipos de dados suportados para type

int, float, long, double, string, bool, date, binary, collection, map

Sintaxe

InList(<x>[, <arg1>, ... <argN>])

Parâmetros obrigatórios

  • x: Um elemento a ser comparado para encontrar uma correspondência

Parâmetros opcionais

  • arg1...argN: Uma série de argumentos contra os quais x será comparado

Descrição

Verifica se x está na lista de argumentos (arg1 até argN). Se uma correspondência (por valor) for encontrada, esta função retornará um inteiro representando a posição da correspondência na lista, com a primeira posição na lista sendo representada pelo inteiro 1.

Se a lista contiver mais de uma instância de x, esta função retorna a posição da primeira correspondência (a correspondência com o índice de posição mais baixo). 0 será retornado se a lista não contiver um valor correspondente ou se apenas um único argumento for fornecido.

Importante

A função InList oferece suporte a vários tipos de dados convertendo-os implicitamente em strings antes da avaliação. Por exemplo:

  • 123 e "123" são iguais.
  • 4.5 e "4.5" são iguais.
  • true e "1" são iguais.
  • false e "0" são iguais.
  • Date("7/15/2025") e "2025-07-15" são iguais.

Exemplos

InList("x","a","b","c","x");
// Returns 4

InList("a","a","b","c","a");
// Returns 1

InList("x","a","b","c");
// Returns 0

InList("x");
// Returns 0

InList("1", 123, "12", true);
// Returns 3 due to implicit conversion

IsInteger

Declaração

bool IsInteger(type x)

Sintaxe

IsInteger(<x>)

Parâmetros obrigatórios

  • x: Um elemento a ser avaliado

Descrição

Retorna verdadeiro se o argumento é do tipo inteiro ou longo ou pode ser convertido para um inteiro ou longo sem perda de informações.

Exemplos

$s="1";
IsInteger($s);
// Returns true
$s="1a";
IsInteger($s);
// Returns false
$s=12.12;
IsInteger($s);
// Returns false
$s=12.00;
IsInteger($s);
// Returns true

IsNull

Declaração

bool IsNull(type x)

Sintaxe

IsNull(<x>)

Parâmetros obrigatórios

  • x: Um elemento a ser avaliado

Descrição

Retorna verdadeiro se o argumento é nulo. Aplica-se a campos de banco de dados, variáveis e funções que podem retornar nulos.

Consulte também as funções IfNull e IfEmpty para atalhos que podem ser usados em vez desta função.

Nota

Se jitterbit.target.xml.include_nil_attribute for definido como true antes das funções IfNull ou IsNull, as funções avaliarão uma string vazia como um valor não nulo ao usar versões de agente 11.43 ou posteriores.

Exemplos

// Se "POHeader.Vendor_Code" for nulo,
// retorna a string "VC", caso contrário retorna o código
If(IsNull(POHeader.Vendor_Code), POHeader.Vendor_Code, "VC")

IsValid

Declaração

bool IsValid(type x)

Sintaxe

IsValid(<x>)

Parâmetros obrigatórios

  • x: Um elemento a ser avaliado

Descrição

Retorna verdadeiro se a avaliação do argumento resulta sem um erro.

Exemplos

IsValid(Date("abc"))
// Returns false, since the string "abc"
// cannot be successfully converted to a date

IsValid(3/0)
// Returns false, since division by 0
// is not permitted

IsValid(0/3)
// Returns true, since 0/3 is a legal expression
// evaluating to 0

Length

Declaração

int Length(type x)

Sintaxe

Length(<x>)

Parâmetros obrigatórios

  • x: Um elemento a ser avaliado

Descrição

Retorna o comprimento do argumento de entrada.

O comportamento deste método depende do tipo de argumento:

  • string: o comprimento da string é retornado
  • array: o número de elementos no array é retornado
  • dados binários: o número de bytes é retornado
  • Para todos os outros tipos, tenta-se converter o argumento para uma string e retorna-se o comprimento da string resultante.
  • Se o argumento não puder ser convertido para uma string, ou o argumento for nulo ou de um tipo desconhecido, 0 é retornado.

Exemplos

// String length:
Length("Mississippi"); // returns 11

// Array length:
// Count the number of email address nodes
$nodes = SelectNodesFromXMLAny("cust:EmailAddress", Customer$Any#.,
"cust=urn:xmlns:25hoursaday-com:customer");
Length($nodes);

// Binary arguments:
Length(HexToBinary("b2082fee"));
// Returns 4, because the input is a 4-byte binary value

// Numeric arguments:
Length(1234567); // Returns 7
Length(123.45678); // Returns 9

// Miscellaneous:
Length(true); // Returns 1
Length(Now()); // Returns 19 since the default date format is "yyyy-MM-DD hh:mm:ss"
Length(Null()); // Returns 0

Null

Declaração

null Null()

Sintaxe

Null()

Descrição

Retorna null.

Exemplos

Esta função pode ser usada para inserir um valor null em colunas específicas de um banco de dados.

Random

Declaração

int Random(int min, int max)

Sintaxe

Random(<min>, <max>)

Parâmetros obrigatórios

  • min: Valor inteiro do número aleatório mínimo
  • max: Valor inteiro do número aleatório máximo

Descrição

Gera um número inteiro aleatório entre e incluindo os valores mínimo e máximo fornecidos. Consulte também a função RandomString.

Exemplos

// Creates a random number from 0 to 9999999 (inclusive)
Random(0, 9999999);


// Creates a random number from 1 to 10
Random(1, 10);
// Returns a random 7-character string
// using the characters "0123456789"
RandomString(7, "0123456789");

// Returns a random 5-digit hexadecimal string
RandomString(5, "0123456789ABCDEF");

// Returns a random 7-digit integer string
// with no leading zeroes
RandomString(1, "123456789") +
  RandomString(6, "0123456789");

RandomString

Declaração

string RandomString(int len[, string chars])

Sintaxe

RandomString(<len>[, <chars>])

Parâmetros obrigatórios

  • len: Comprimento da string aleatória resultante

Parâmetros opcionais

  • chars: String contendo caracteres que serão usados na string aleatória resultante

Descrição

Gera uma string aleatória do comprimento fornecido. Por padrão, a função usa caracteres alfanuméricos; o conjunto que inclui a-z, A-Z e 0-9. Consulte também a função Random.

Exemplos

// Creates a random 5-digit hexadecimal string
RandomString(5, "0123456789ABCDEF");

// Creates a random 7-digit integer string
// with no leading zeroes
RandomString(1, "123456789") + RandomString(6, "0123456789");

ReadArrayString

Declaração

array ReadArrayString(string arrayString[, string type])

Sintaxe

ReadArrayString(<arrayString>[, <type>])

Parâmetros obrigatórios

  • arrayString: Uma representação em string de um array

Parâmetros opcionais

  • type: Uma string descrevendo o tipo que a string do array representa, como "string", "int", "double", "bool"

Descrição

Lê uma string que representa um array uni ou multidimensional.

O array é representado envolvendo elementos do array com um par de chaves ({ e }). Cada elemento do array pode ser um array ou um elemento escalar separado por vírgula (,). Os elementos em um array devem ser todos escalares ou todos arrays.

O valor escalar pode ser representado por uma string CSV. As aspas duplas para envolver a string são opcionais, a menos que a string contenha caracteres especiais como ",{}\n (aspas duplas, vírgula, chaves, tabulações, quebras de linha ou retornos de carro). Dentro da string entre aspas duplas, cada aspa dupla deve ser escapada com duas aspas duplas. O segundo argumento opcional é para especificar o tipo de dados do valor escalar. O tipo é assumido como string se não for explicitamente especificado.

Exemplos

// One-dimensional array with four string values
ReadArrayString("{John,Steve,Dave,Eric}");

// One-dimensional array with three boolean values
ReadArrayString("{1,0,1}", "bool");

// Two-dimensional array
// The first array element is an array with three string values
// The second array element is an array with two string values
// The second element of the second array contains a trailing line break
ReadArrayString('{{abc,"a,b","a""b"},{"de","d
"}}');

RecordCount

Declaração

int RecordCount()

Sintaxe

RecordCount()

Descrição

Retorna o número da instância do loop de destino que está sendo gerado atualmente.

Se for chamado em uma condição, retorna o número da instância da última instância gerada. A primeira vez que este método é chamado em um loop, retorna 0 (zero) se chamado em uma condição; caso contrário, retorna 1 (um). O contador é redefinido para 0 cada vez que um novo loop é iniciado.

Nota

Este método foi descontinuado e pode ser removido em uma versão futura.

Use SourceInstanceCount() ou TargetInstanceCount() em vez disso. TargetInstanceCount() é equivalente a este método.

Exemplos

RecordCount retorna um valor de 5 ao gerar a quinta linha em um nó de loop de destino.

ReRunOperation

Declaração

bool ReRunOperation([bool runSynchronously])

Sintaxe

ReRunOperation([<runSynchronously>])

Parâmetros opcionais

  • runSynchronously: Sinalizador para indicar se a operação deve ser executada de forma síncrona (padrão) ou assíncrona

Descrição

Executa novamente a operação atual.

O comportamento deste método com relação ao valor de retorno e variáveis globais é idêntico à função RunOperation. Consulte essa função para obter uma descrição de como a execução novamente da operação de forma síncrona ou assíncrona afeta as variáveis globais.

Nota

Esta função também está sujeita ao mesmo limite de nível de agente em chamadas síncronas feitas dentro de um único loop While, e compartilha sua contagem cumulativa com RunOperation e RunOperationFromProject. Consulte a observação em RunOperation para obter detalhes.

Aviso

Como se trata de uma chamada recursiva, é essencial que haja uma condição de parada, provavelmente incluindo a função CancelOperation. Caso contrário, você acabará em um loop infinito de chamadas de operação.

Exemplos

ReRunOperation();
// Re-runs the current operation synchronously
ReRunOperation(false);
// Re-runs the current operation asynchronously

RunOperation

Declaração

bool RunOperation(string operationId[, bool runSynchronously])

Sintaxe

RunOperation(<operationId>[, <runSynchronously>])

Parâmetros obrigatórios

Parâmetros opcionais

  • runSynchronously: Sinalizador para indicar se a operação deve ser executada de forma síncrona (padrão) ou assíncrona

Descrição

Executa uma operação de forma síncrona ou assíncrona, sendo o modo síncrono o padrão.

Sincronicidade

Se run_synchronously for true, a operação ou cadeia de operação invocada (filha) será executada sequencialmente a partir da operação (pai) invocadora. Todas as variáveis globais são herdadas pela operação filha e qualquer alteração nas variáveis globais será refletida na operação pai. Este é o comportamento padrão se o segundo argumento não for fornecido. Retorna false se a operação chamada resultou em uma falha.

Se run_synchronously for false, a operação ou cadeia de operação invocada (filha) será executada simultaneamente com a operação (pai) invocadora. A operação chamada é adicionada à fila de processamento do Jitterbit para ser processada assim que as operações anteriores tiverem sido processadas. Todas as variáveis globais são herdadas pela operação filha, mas alterações nessas variáveis não serão refletidas na operação pai. A operação pai continuará executando independentemente da operação filha e não há garantia sobre qual operação terminará primeiro. Retorna false se a operação filha não puder ser adicionada à fila. No modo assíncrono, essas variáveis globais são passadas para a operação chamada por valor e não por referência, o que garante que qualquer alteração nas variáveis não seja refletida em nenhuma outra operação.

Para obter mais informações, consulte Sincronicidade conforme descrito para a ferramenta Invocar Operação do Studio. O mesmo conceito geral se aplica ao Design Studio.

Nota

As operações chamadas com essa função são encadeadas e serão executadas no mesmo agente da operação chamadora, independentemente da sincronicidade.

Se a função retornar false para indicar uma falha ou se a operação chamada não puder ser enfileirada, chame GetLastError para recuperar a mensagem de erro.

Nota

Um limite no nível do agente também limita o número de chamadas síncronas de RunOperation feitas dentro de um único loop While (50 por padrão). Isso é separado de MaxOperationStackDepth, que limita chamadas síncronas de operações aninhadas em vez de chamadas repetidas dentro de um loop. RunOperation, RunOperationFromProject e ReRunOperation compartilham uma única contagem cumulativa por loop, portanto chamar qualquer uma delas sincronamente dentro do mesmo loop conta para o mesmo limite. Se o limite for atingido, RunOperation retorna false e a operação chamadora continua sendo executada. O log de operações também registra uma entrada identificando a operação invocada por nome (voltando para seu GUID se o nome não puder ser resolvido) quando o limite foi atingido, e GetLastError retorna essas mesmas informações de identificação. Em agentes privados, você pode configurar o limite e se uma operação pode substituí-lo no arquivo jitterbit.conf seção [OperationEngine].

Exemplos

// Runs the "MyOperation"
RunOperation("<TAG>MyProject/Operations/MyOperation</TAG>");

RunOperationFromProject

Declaração

bool RunOperationFromProject(string operationId[, bool runSynchronously])

Sintaxe

RunOperationFromProject(<operationId>[, <runSynchronously>])

Parâmetros obrigatórios

  • operationId: Uma ID de operação em um projeto diferente implantado no mesmo ambiente que o projeto atual.

Parâmetros opcionais

  • runSynchronously: Flag para indicar se a operação deve ser executada sincronamente (padrão) ou assincronamente

Descrição

Executa uma operação sincronamente ou assincronamente, sendo o padrão a execução síncrona. Essa função, disponível a partir da versão 8.22, permite executar operações de diferentes projetos que estão localizados e já implantados no mesmo ambiente que seu projeto atual. Essa função funciona de forma semelhante à função RunOperation.

Obtendo a ID da operação

Para obter a operationID da operação no outro projeto (referido como o projeto remoto), você deve primeiro implantar o projeto remoto no mesmo ambiente que o projeto atual.

Em seguida, usando o modo Analista de negócios do Design Studio, insira essa função em seu script. O assistente que aparecerá solicitará o projeto que você gostaria de usar e permitirá que você selecione uma de suas operações atualmente implantadas. Ele criará um caminho apropriado e o inserirá como a ID. Consulte também as instruções sobre inserção de itens de projeto.

Variáveis globais

As variáveis globais definidas no projeto remoto podem ser herdadas, dependendo de se a operação remota é executada sincronamente ou não. Como descrito na próxima seção, se executada sincronamente, as variáveis globais são herdadas pela cadeia de operações chamada e qualquer alteração nas variáveis globais será refletida na operação atual. Isso permite que um projeto remoto se comunique de volta para a operação chamadora.

Com o modo assíncrono, essas variáveis globais são passadas para a operação remota por valor em vez de por referência, o que garante que qualquer alteração nas variáveis não seja refletida na operação atual.

Executando de forma síncrona

Para runSynchronously=true, a operação e quaisquer operações de sucesso ou falha serão executadas dentro da operação atual e a operação atual aguardará até que toda a cadeia de operações chamada seja concluída. Todas as variáveis globais são herdadas pela cadeia de operações chamada e qualquer alteração nas variáveis globais será refletida na operação atual. Este é o comportamento padrão se o segundo argumento não for fornecido. Retorna false se a operação chamada resultou em falha.

Para runSynchronously=false, esse método coloca uma operação na fila de processamento do Jitterbit para ser processada assim que quaisquer operações que a antecedem forem processadas. Todas as variáveis globais são herdadas pela cadeia de operações chamada, mas alterações nessas variáveis não serão refletidas na operação atual. A operação atual continuará a ser executada independentemente da cadeia de operações chamada e não há garantia de qual operação será concluída primeiro. Retorna false se a operação não pôde ser adicionada à fila.

Se a função retornar false para indicar uma falha ou se a operação não pôde ser enfileirada, chame GetLastError para recuperar a mensagem de erro.

Nota

A operação no projeto externo já deve ter sido implantada a partir desse projeto para ser usada em uma função RunOperationFromProject no seu projeto atual.

Nota

Um limite em nível de agente também limita o número de chamadas síncronas de RunOperationFromProject feitas dentro de um único loop While (50 por padrão). Isso é separado de MaxOperationStackDepth, que limita chamadas de operação síncronas aninhadas em vez de chamadas repetidas dentro de um loop. RunOperation, RunOperationFromProject e ReRunOperation compartilham uma única contagem cumulativa por loop, portanto, chamar qualquer um deles de forma síncrona dentro do mesmo loop conta para o mesmo limite. Se o limite for atingido, RunOperationFromProject retorna false e a operação de chamada continua em execução. O log de operações também registra uma entrada identificando a operação invocada por nome (retornando ao seu GUID se o nome não puder ser resolvido) quando o limite foi atingido, e GetLastError retorna essas mesmas informações de identificação. Em agentes privados, é possível configurar o limite e se uma operação pode substituí-lo na seção [OperationEngine] do arquivo jitterbit.conf.

Exemplos

// Runs the "MyOperation" in the default mode of synchronously
RunOperationFromProject("<TAG>Project/MyProject/Operations/MyOperation</TAG>");

RunPlugin

Declaração

bool RunPlugin(string pluginId)

Sintaxe

RunPlugin(<pluginId>)

Parâmetros obrigatórios

Descrição

Executa um plug-in especificado e continua a execução do script atual. Se várias versões de um plug-in forem instaladas em um agente, a versão mais recente disponível será usada.

Na interface do Design Studio, apenas os plug-ins que podem ser executados dentro de um script são exibidos; plug-ins que são executados em fontes, destinos e chamadas de serviço web são ocultos. Consulte as instruções sobre inserção de itens de projeto.

Retorna true se o plugin é concluído sem erros. Retorna false se o plugin não pôde ser executado ou a implementação do plugin retornou um erro. Chame GetLastError para recuperar a mensagem de erro.

Exemplos

// Executa o plugin Jitterbit HMACSHA256Generator
RunPlugin("<TAG>plugin:http://www.jitterbit.com/plugins/pipeline/user/HMACSHA256Generator</TAG>");

RunScript

Declaração

string RunScript(string scriptId[, type var1, type var2, ..., type varN])

Sintaxe

RunScript(<scriptId>[, <var1>, <var2>, ..., <varN>])

Parâmetros obrigatórios

Parâmetros opcionais

  • var1...varN: Variáveis adicionais a serem passadas para o script sendo chamado

Descrição

Executa o script especificado e continua a execução do script atual. Este método retorna, com sucesso, o valor de retorno do script chamado como uma string.

Uma lista de valores pode ser passada para uma função RunScript como variáveis de entrada. O script criará variáveis locais usando esses valores com nomes padrão como _1, _2 ....

Se nomes mais descritivos forem preferidos, a função ArgumentList pode ser usada para mapear uma lista de nomes de variáveis locais para a lista de _1, _2 .... Consulte a função ArgumentList para obter exemplos.

Aviso

O tipo de retorno é uma string. Todos os outros tipos são convertidos para seu equivalente em string. Valores nulos são retornados como uma string vazia. Arrays são retornados como uma string; se contiverem valores escalares, podem ser convertidos para um array usando a função ReadArrayString. (Um array multidimensional também pode ser convertido por ReadArrayString.)

Aviso

Se o script chamado for um script JavaScript, ele não receberá argumentos. Quaisquer argumentos incluídos na chamada para a função RunScript não serão declarados ou disponibilizados no script JavaScript. O único método para passar informações para um script JavaScript é usar variáveis globais; essas são variáveis precedidas por um símbolo $. Esses valores podem ser disponibilizados dentro do script JavaScript usando a função Jitterbit.GetVar.

Nota

Chamar Unmap dentro de um script invocado por RunScript não tem efeito no mapeamento do campo de chamada, porque RunScript retorna o resultado do script chamado como uma string em vez de propagar o sinal de unmap. Chame Unmap diretamente na expressão de mapeamento do próprio campo de destino.

Exemplos

// Runs the script "CalculateSomething"
RunScript("<TAG>Scripts/CalculateSomething</TAG>");

RunScript("<TAG>Scripts/CalculateSomething</TAG>", "abc", 1);
// Sends the script "CalculateSomething" the string "abc" and the number 1
// Inside "CalculateSomething", these will be available as _1 and _2

Set

Declaração

type Set(string name, type value)

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

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

Sintaxe

Set(<name>, <value>[, <index1>, <index2>, ..., <indexN>])

Parâmetros obrigatórios

  • name: O nome de uma variável global, escalar ou array
  • value: Um valor a ser atribuído à variável global

Parâmetros opcionais

  • index1...indexN: Índice ou índices usados para descrever a posição de um elemento ao definir um elemento em um array

Descrição

Define o valor de uma variável global com um nome determinado para um valor e retorna o valor. Consulte também a função complementar Get.

Primeira forma: escalares

Na primeira forma, o nome da string de uma variável global é definido usando o nome e o valor fornecidos.

(Embora uma variável *local* possa ser passada como referência, não é recomendado, pois os resultados podem ser inconsistentes. Variáveis locais não devem ser definidas através deste mecanismo.)

Veja os exemplos abaixo.

Segunda e terceira formas: arrays

Na segunda e terceira formas, argumentos adicionais fornecem os índices para definir um elemento em um array.

Se o primeiro argumento for um array (ou o nome de uma variável global que é um array), você pode definir o valor de um elemento do array especificando seu índice (ou índices para arrays multidimensionais) como argumentos adicionais.

Para adicionar dados a um array, passe um valor de índice negativo ou o tamanho do array. O tamanho pode ser determinado usando a função Length como Length($array).

Arrays são indexados a partir de zero; o primeiro elemento está no índice 0 e o último elemento (do array $array) está no índice [Length($array)-1]. Arrays podem ser criados com as funções Array ou ReadArrayString.

Tentar definir um elemento além do final do array resultará na adição de elementos com valor nulo adicionais ao array conforme necessário para preencher o array até o tamanho correto.

Sintaxe do prefixo SCOPE_CHUNK

Definir um nome de variável que é prefixado com a frase SCOPE_CHUNK criará uma variável global que é avaliada conforme cada bloco de dados é processado. Isso pode ser usado na criação de variáveis globais cujo valor é único para um bloco específico e pode então identificar esse bloco quando um nome de arquivo ou registro é criado em um destino. Veja também as funções GetChunkDataElement e SetChunkDataElement como um método alternativo que permite o uso de outros nomes de variáveis.

Aviso

A sintaxe do prefixo SCOPE_CHUNK não é suportada em operações com uma transformação que usa mapeamento condicional.

Exemplos

// Scalars:
// All of these forms are equivalent:
// they increase the global variable "count" by 1
result1 = Set("count", Get("count")+1);
$count++;
$count = $count + 1;

// Arrays:
// Appending a value to the array "arr"
// These are equivalent
Set($arr, "value", -1);
Set($arr, "value", Length($arr));

// Set the n:th entry in an array "arr"
// to the string "value"
Set($arr, "value", n-1);

// Set the n:th entry of the m:th array
// of "record_set"
Set($record_set, "value", m-1, n-1);

// SCOPE_CHUNK Prefix:
// Example from a mapping using the SCOPE_CHUNK syntax to
// create a global variable that is unique in value to a
// particular chunk.
// It uses the field "CustomerID" to identify the chunk:

Set("SCOPE_CHUNK_CustomerID",
    "customer_"+CustomerID+".csv");

// This variable will be available in the filenames field of
// the connection parameters of a target as:

[SCOPE_CHUNK_CustomerID]

// With each chunk created, a unique filename for that
// customer ID will be created, such as (depending on the
// values of Customer ID):
customer_1009.csv
customer_2019.csv
customer_5498.csv

SetChunkDataElement

Declaração

type SetChunkDataElement(string name, type value)

Sintaxe

SetChunkDataElement(<name>, <value>)

Parâmetros obrigatórios

  • name: O nome da variável de bloco
  • value: O valor a ser definido para a variável de bloco

Descrição

Define o valor de uma variável de bloco especificada e retorna o valor. Uma variável de bloco é avaliada conforme cada bloco de dados é processado. Um método alternativo é usar a sintaxe SCOPE_CHUNK da função Set.

Veja também as funções GetChunkDataElement e Set.

Exemplos

// If used in a transformation mapping, this sets
// the value of the chunk variable "CustomerFileName"
// to the results of a calculation using the value of
// the "Customer" field at the time of the chunking
// to create a filename for that chunk:

SetChunkDataElement("CustomerFilename",
    "customer_"+CustomerID+".csv");

// This global variable would be available as a
// variable in the filenames field of the connection
// parameters of a target as:

[CustomerFilename]

// It would also be available in scripts in the same
// chunk as:

GetChunkDataElement("CustomerFilename");

// With each chunk created, a unique filename for that
// customer ID will be created, such as (depending on
// the values of Customer ID):
customer_1009.csv
customer_2019.csv
customer_5498.csv

Sleep

Declaração

void Sleep(int seconds)

Sintaxe

Sleep(<seconds>)

Parâmetros obrigatórios

  • seconds: O número inteiro de segundos para suspender a operação atual

Descrição

Faz com que a execução seja suspensa por um número especificado de segundos.

Exemplos

// Suspende a operação atual por 1 minuto
Sleep(60);

SourceInstanceCount

Declaração

int SourceInstanceCount()

Sintaxe

SourceInstanceCount()

Descrição

Retorna a contagem de instâncias do gerador mais recente.

O valor é independente de a instância de destino ter sido gerada ou não; o mesmo valor é retornado se chamado em um script de condição ou em um script de mapeamento.

Quando a primeira instância de origem é usada como geradora, 1 é retornado, depois 2, e assim por diante.

Consulte também a função TargetInstanceCount.

Exemplos

// Retorna a contagem de instâncias do gerador mais recente
currentSourceInstance = SourceInstanceCount();

TargetInstanceCount

Declaração

int TargetInstanceCount()

Sintaxe

TargetInstanceCount()

Descrição

Retorna a contagem de instâncias de um nó de loop alvo gerador.

Quando chamada em uma condição, retorna o número de instâncias alvo que foram geradas até o momento para o nó de loop atual. O número retornado por este método será um a menos se for chamado em uma condição, já que em uma condição não se sabe se a instância alvo atual será gerada ou não.

Quando a primeira instância alvo é gerada, 1 é retornado, depois 2, e assim por diante. Se chamado em uma condição, a sequência será, em vez disso, 0, 1, e assim por diante.

Consulte também a função SourceInstanceCount.

Exemplos

// Retorna a contagem de instâncias do gerador alvo mais recente
currentTargetInstance = TargetInstanceCount();

WaitForOperation

Declaração

void WaitForOperation(string operationId[, int timeOutSec, int pollIntervalSec])

Sintaxe

WaitForOperation(<operationId>[, <timeOutSec>, <pollIntervalSec>])

Parâmetros obrigatórios

  • operationID: Uma operação no projeto atual

Parâmetros opcionais

  • timeOutSec: Uma variável local
  • pollIntervalSec: Uma variável local

Descrição

Interrompe a execução de um script ou mapeamento até que todas as instâncias da operação especificada atualmente na fila de operações terminem de ser processadas. Este método é útil se você quiser adicionar várias instâncias de uma operação à fila para processamento paralelo e depois aguardar que todas terminem.

A operação usada nesta chamada de função deve ser definida como uma operação no projeto atual. Consulte as instruções sobre inserção de itens de projeto.

Nota:

  • Para cada operação (identificada pelo seu operationID) que será aguardada, uma chamada a este método deve ser feita.
  • Instâncias de operação que são adicionadas (por chamadas à função RunOperation) após esta chamada ser feita não são aguardadas.
  • O usuário atual precisa ter acesso de leitura para a operação sendo aguardada.

O segundo argumento (opcional) é o tempo limite em segundos. O tempo limite padrão é 1 hora (3600 segundos) e se todas as operações não tiverem terminado neste período, um erro será lançado. Se você espera que suas operações sejam executadas por mais tempo em condições normais, deve aumentar o tempo limite. Você pode tratar este erro usando a função Eval.

O terceiro argumento (opcional) é o intervalo de sondagem em segundos. O intervalo de sondagem é o tempo entre verificações da fila de operações. O intervalo de sondagem padrão é 10 segundos. O padrão não será um impacto significativo no desempenho, mas se suas operações forem executadas por um tempo muito longo, você pode querer aumentar o intervalo de sondagem.

Exemplos

// Add ten operation instances to the queue
// and wait for all of them to finish
i = 0;
while(i < 10,
  RunOperation("<TAG>Operations/Process One Message</TAG>", false);
  i++;
);

WaitForOperation("<TAG>Operations/Process One Message</TAG>");