Funções gerais no Jitterbit Integration Studio
Funções gerais incluem aquelas que não são específicas para uma interação particular, mas podem ser aplicadas em quase qualquer script.
ArgumentList
Declaração
null ArgumentList(tipo 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
Esta 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 dada pela funçãoSetInstances
. - 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 esta função e pode ser ignorado. Como alternativa, veja a função GetInstance
.
Exemplos
// Assuming a parent mapping contains these statements:
...
s = "SELECT key_name, key_value, key_type FROM key_values";
r = DBLookupAll("<TAG>endpoint:database/My Database</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>
// This code fragment calls a script
// "CalculateDisplayString":
...
RunScript("<TAG>script: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 específica.
Aviso
Este método foi descontinuado e pode ser removido em uma versão futura do Jitterbit. Use as funções TargetInstanceCount
ou SourceInstanceCount
em vez disso. A função TargetInstanceCount
é equivalente a esta 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, uma vez que PO1 tem 3 registros filhos.
CancelOperation
Declaração
void CancelOperation(string operationInstanceGUID)
Sintaxe
CancelOperation(<operationInstanceGUID>)
Parâmetros obrigatórios
operationInstanceGUID
: O caminho de referência em string para a operação no projeto atual que deve ser cancelada
Descrição
Cancela uma operação específica indicada pelo caminho de referência da operação. Para mais informações, consulte as instruções sobre como inserir operações na seção Operações em Jitterbit Script.
Como mostrado no exemplo abaixo, chame a função GetOperationQueue
para recuperar instâncias de operações em execução. O GUID da instância da operação está no índice 4 dos sub-arrays retornados pela função GetOperationQueue
. Consulte a função GetOperationQueue
para detalhes.
Exemplos
// Cancel all instances of a particular
// operation
opt = "<TAG>operation:My Operation</TAG>";
queue = GetOperationQueue(opt);
n = Length(queue);
i = 0;
message = "Cancelling operation instance: ";
While(i < n, op_inst = queue[i][4];
WriteToOperationLog(message + 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 uma mensagem de aviso no log da 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, quaisquer scripts na operação atual serão concluídos.
Isso pode ser útil se uma operação estiver 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á retornadodefaultResult
: Resultado padrão a ser avaliado e retornado seexpToEvaluate
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 execução da operação, a menos que a chamada da operação em si esteja malformada ou inválida. Em vez disso, para capturar operações falhadas, funções como If
e GetLastError
podem ser usadas para alcançar funcionalidade semelhante. Para mais informações, consulte a seção Scripting nas melhores práticas do Harmony.
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>endpoint:database/My Database</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(<nome>[, <índice1>, <índice2>,... <índiceN>])
Parâmetros obrigatórios
nome
: O nome de uma variável global, seja um escalar ou um array, ou um array
Parâmetros opcionais
índice1,... índiceN
: Índices que especificam o elemento desejado no array ou em um sub-array
Descrição
Retorna o valor de uma variável global com um nome dado. Se passado um array ou o nome de uma variável global que é um array, retorna um elemento do array. Veja 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 pelo seu índice (ou índices para um array multidimensional, como um conjunto de registros) usando os argumentos restantes.
Os 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(<nome>)
Parâmetros obrigatórios
nome
: O nome da variável de chunk
Descrição
Retorna o valor da variável de chunk com um nome dado. Uma variável de chunk é avaliada à medida que cada chunk de dados é processado. Um método alternativo é usar a sintaxe SCOPE_CHUNK
da função Set
. Veja 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 para 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 se a representação padrão do Jitterbit de um tipo de dado (como uma data ou um double) não for adequada e a entrada "bruta" for necessária. Se este método for chamado em um objeto que não é uma variável global de origem, uma string vazia é retornada.
Exemplos
// A entrada é muito grande para um double do Jitterbit
// retorna 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
: Um caminho de referência em string para uma operação no projeto atual
Descrição
Retorna a última data e hora em que a operação dada foi executada. O valor retornado é uma data (que inclui a data e a hora). Deve ser usado apenas com um único agente privado.
A operação utilizada nesta chamada de função deve ser definida como uma operação no projeto atual. Para mais informações, consulte as instruções sobre como inserir operações na seção Operations em Jitterbit Script.
A data retornada está em UTC (sem um fuso horário específico). Use a função ConvertTimeZone
para converter para um horário local, como visto no exemplo abaixo.
Aviso
Esta função deve ser usada apenas com um único agente privado, pois não é precisa quando se utiliza agentes em nuvem ou múltiplos agentes privados.
Exemplos
op = "<TAG>operation:MyOperation</TAG>";
lastOpRun = GetLastOperationRunStartTime(op);
// Converting to a local time zone
$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 um array de variáveis globais nomeadas; se definido, 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
: Um caminho de referência de string para uma operação no projeto atual; caso contrário, todas as operações no projeto atual são utilizadas
Descrição
Retorna o conteúdo da fila de operações como um array. Apenas operações para as quais o usuário atual tem acesso de leitura serão retornadas. Deve ser usado com um único agente privado.
O resultado é retornado como um array de arrays, com os seguintes elementos em cada sub-array:
0
: GUID da operação (string)1
: O flagIsExecuting
(booleano)2
: Timestamp (data) de quando a operação foi adicionada à fila3
: Segundos no status atual (inteiro)4
: GUID da instância da operação (string)5
: Nome da operação (string)
O argumento do tag da operação é opcional. Se o argumento do tag da operação estiver presente, apenas as entradas da fila para essa operação específica serão retornadas. Para mais informações, consulte as instruções sobre como inserir operações na seção Operations em Jitterbit Script.
Aviso
Esta função deve ser usada apenas com um único agente privado, pois não é precisa ao usar agentes em nuvem ou múltiplos agentes privados.
Exemplos
// Write the queue for a particular operation to
// the operation log:
op = "<TAG>operation:MyOperation</TAG>";
queue = GetOperationQueue(op);
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 globalmente único, 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 a ser avaliado para verificar se é nulo ou uma string vaziadefault
: Valor padrão a ser retornado searg
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)
Veja 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 é nulodefault
: Valor padrão a ser retornado searg
for nulo
Descrição
Retorna o valor padrão se o primeiro argumento for nulo, caso contrário, retorna o primeiro argumento.
Este é um atalho para uma declaração da função If
:
If(IsNull(arg), default, arg)
Veja também as funções IsNull
e IfEmpty
.
Nota
Se jitterbit.target.xml.include_nil_attribute
estiver 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 do 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 ser definido para o contador; o padrão é 0
Descrição
Inicializa um contador, passando opcionalmente um valor inicial. Deve ser usado apenas com um único agente.
Se nenhum valor inicial for definido, o valor inicial é definido como 0. O primeiro argumento é o nome de uma variável ou uma referência a uma variável (veja os exemplos). Este método deve ser chamado apenas em contextos de thread única. Chamar este método em um contexto de múltiplas threads resultará em um erro. Veja também Usar variáveis com chunking em Opções de operação.
Aviso
Esta função deve ser usada apenas com um único Agente, pois resulta em um erro em um contexto de múltiplos Agentes.
Examples
// 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
Declaration
int InList(type x[, type arg1, ... type argN])
Supported data types for type
int
, float
, long
, double
, string
, bool
, date
, binary
, collection
, map
Syntax
InList(<x>[, <arg1>, ... <argN>])
Required parameters
x
: Um elemento a ser comparado para uma correspondência
Optional parameters
arg1...argN
: Uma série de argumentos com os quaisx
deve ser comparado
Description
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, sendo a primeira posição na lista 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 menor índice de posição). 0 é retornado se a lista não contiver um valor correspondente ou se apenas um único argumento for fornecido.
Importante
A função InList
suporta múltiplos 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.
Examples
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 for do tipo inteiro ou longo ou puder ser convertido para um inteiro ou longo sem perda de informação.
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 for nulo. Aplica-se a campos de banco de dados, variáveis e funções que podem retornar nulos.
Veja 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
estiver 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 do agente 11.43 ou posteriores.
Exemplos
// Se o "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 resultar sem 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 do 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 em uma string, e o comprimento da string resultante é retornado.
- Se o argumento não puder ser convertido em uma string, ou se 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 nulo.
Exemplos
Esta função pode ser usada para inserir um valor nulo 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ínimomax
: Valor inteiro do número aleatório máximo
Descrição
Gera um número inteiro aleatório entre os valores mínimo e máximo fornecidos, inclusive. Veja 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 especificado. Por padrão, a função utiliza caracteres alfanuméricos; o conjunto que inclui a-z, A-Z e 0-9. Veja 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 unidimensional ou multidimensional.
O array é representado envolvendo os 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 delimitar a string são opcionais, a menos que a string contenha caracteres especiais como ",{}\n (aspas duplas, vírgula, colchetes, tabulações, quebras de linha ou retornos de carro). Dentro da string entre aspas duplas, cada aspas dupla deve ser escapada por duas aspas duplas. O segundo argumento opcional serve para especificar o tipo de dado do valor escalar. O tipo é considerado 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 que foi 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 enquanto gera a quinta linha em um nó de loop de destino.
ReRunOperation
Declaração
bool ReRunOperation([bool runSynchronously])
Sintaxe
ReRunOperation([<runSynchronously>])
Parâmetros opcionais
runSynchronously
: Flag para indicar se a operação deve ser executada de forma síncrona (o padrão) ou assíncrona.
Descrição
Reexecuta a operação atual.
O comportamento deste método em relação ao valor de retorno e às variáveis globais é idêntico à função RunOperation
. Consulte essa função para uma descrição de como reexecutar a operação de forma síncrona ou assíncrona afeta as variáveis globais.
Warning
Como esta é 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
operationId
: Um caminho de referência de string para uma operação no projeto atual
Parâmetros opcionais
runSynchronously
: Flag para indicar se a operação deve ser executada de forma síncrona (o padrão) ou assíncrona
Descrição
Invoca uma operação de forma síncrona ou assíncrona, sendo a síncrona o padrão.
A operação utilizada nesta chamada de função deve ser definida como uma operação no projeto atual. Para mais informações, consulte as instruções sobre como inserir operações na seção Operações em Jitterbit Script.
Sincronização
Se run_synchronously
for true
, a operação (filha) invocada ou cadeia de operações será executada sequencialmente a partir da operação (pai) invocadora. Todas as variáveis globais são herdadas pela operação filha e quaisquer alterações nas variáveis globais serão refletidas na operação pai. Este é o comportamento padrão se o segundo argumento não for fornecido. Retorna false
se a operação chamada resultar em uma falha.
Se run_synchronously
for false
, a operação (filha) invocada ou cadeia de operações será executada simultaneamente com a operação invocadora (pai). A operação chamada é adicionada à fila de processamento do Jitterbit para ser processada assim que quaisquer operações que a precedem forem concluídas. Todas as variáveis globais são herdadas pela operação filha, mas as alterações nessas variáveis não serão refletidas na operação pai. A operação pai continuará a ser executada 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, em vez de por referência, o que garante que quaisquer alterações nas variáveis não sejam refletidas em nenhuma outra operação.
Para mais informações, consulte Sincronismo conforme descrito para a ferramenta Invocar Operação (Beta).
Nota
Operações chamadas com esta função são encadeadas e serão executadas no mesmo agente que a operação chamadora, independentemente da sincronização.
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.
Exemplos
// Executa a "MyOp"
RunOperation("<TAG>operation:MyOp</TAG>");
RunPlugin
Declaração
bool RunPlugin(string pluginId)
Sintaxe
RunPlugin(<pluginId>)
Parâmetros obrigatórios
pluginId
: Um caminho de referência de string para um plugin no projeto atual
Descrição
Executa um plugin especificado e, em seguida, continua a execução do script atual. Se várias versões de um plugin estiverem instaladas em um agente, a versão mais alta disponível é utilizada.
Na interface do Integration Studio, apenas os plugins que podem ser executados dentro de um script são exibidos; plugins que são executados em atividades estão ocultos. Para mais informações, consulte as instruções sobre como inserir plugins na seção Plugins em Jitterbit Script.
Retorna true
se o plugin for concluído sem erros. Retorna false
se o plugin não puder ser executado ou se a implementação do plugin retornar um erro. Chame GetLastError
para recuperar a mensagem de erro.
Exemplos
// Executa o plugin Jitterbit HMACSHA1Generator
RunPlugin("<TAG>plugin:http://www.jitterbit.com/plugins/pipeline/user/HMACSHA1Generator</TAG>");
RunScript
Declaração
string RunScript(string scriptId[, type var1, type var2, ..., type varN])
Sintaxe
RunScript(<scriptId>[, <var1>, <var2>, ..., <varN>])
Parâmetros obrigatórios
scriptId
: Um caminho de referência em string para um script no projeto atual
Parâmetros opcionais
var1...varN
: Variáveis adicionais a serem passadas para o script chamado
Descrição
Executa o script especificado e, em seguida, continua a execução do script atual. Este método retorna, em caso de sucesso, o valor de retorno do script chamado como uma string.
O script utilizado nesta chamada de função deve ser definido como um Jitterbit Script ou JavaScript no projeto atual. Para mais informações, consulte as instruções sobre como inserir scripts em Jitterbit Script ou JavaScript.
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 abrangentes 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 exemplos.
Aviso
O tipo de retorno é um 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 em 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á nenhum argumento. Quaisquer argumentos incluídos na chamada da função RunScript
não serão declarados ou estarão disponíveis 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
.
Exemplos
// Runs the script "CalculateStuff"
RunScript("<TAG>script:CalculateStuff</TAG>");
RunScript("<TAG>script:CalculateStuff</TAG>",
"abc", 1);
// Sends the script "CalculateStuff" the
// string "abc" and the number 1
// Inside "CalculateStuff", 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(<nome>, <valor>[, <índice1>, <índice2>, ..., <índiceN>])
Parâmetros obrigatórios
nome
: O nome de uma variável global, seja um escalar ou um arrayvalor
: Um valor a ser atribuído à variável global
Parâmetros opcionais
índice1...índiceN
: Í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 dado para um valor e retorna o valor. Consulte também a função complementar Get
.
Primeiro formulário: escalares
No primeiro formulário, um nome de 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 é aconselhável, pois os resultados podem ser inconsistentes. Variáveis locais não são destinadas a serem definidas por meio desse mecanismo.)
Veja os exemplos abaixo.
Segundo e terceiro formulários: arrays
Nos segundo e terceiro formulários, 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 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 à medida que cada bloco de dados é processado. Isso pode ser usado na criação de variáveis globais cujo valor é exclusivo 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.
Veja exemplos adicionais de uso de SCOPE_CHUNK
para dividir dados CSV planos ou dados JSON hierárquicos em Dividir um arquivo em registros individuais.
Atenção
A sintaxe do prefixo SCOPE_CHUNK
não é suportada em operações com uma transformação que utiliza mapeamento condicional.
Examples
// 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
Declaration
type SetChunkDataElement(string name, type value)
Syntax
SetChunkDataElement(<name>, <value>)
Required parameters
name
: O nome da variável de chunkvalue
: O valor a ser atribuído à variável de chunk
Description
Define o valor de uma variável de chunk especificada e retorna o valor. Uma variável de chunk é avaliada à medida que cada chunk 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
.
Examples
// 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
Declaration
void Sleep(int seconds)
Syntax
Sleep(<seconds>)
Required parameters
seconds
: O número inteiro de segundos para suspender a operação atual
Description
Causa a suspensão da execução por um número especificado de segundos.
Examples
// Suspende a operação atual por 1 minuto
Sleep(60);
SourceInstanceCount
Declaration
int SourceInstanceCount()
Sintaxe
SourceInstanceCount()
Descrição
Retorna a contagem de instâncias do gerador mais recente.
O valor é independente de o alvo ter sido gerado 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 gerador, 1 é retornado, depois 2, e assim por diante.
Veja também a função TargetInstanceCount
.
Veja um exemplo adicional de uso de SourceInstanceCount
em Dividir um arquivo em registros individuais usando SourceInstanceCount
.
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 de alvo gerador.
Quando chamado em uma condição, retorna o número de instâncias de alvo que foram geradas até agora para o nó de loop atual. O número retornado por este método será um a menos se chamado em uma condição, pois, em uma condição, não se sabe se a instância de alvo atual será gerada ou não.
Quando a primeira instância de alvo é gerada, 1 é retornado, depois 2, e assim por diante. Se chamado em uma condição, a sequência será 0, 1, e assim por diante.
Veja também a função SourceInstanceCount
.
Exemplos
// Retorna a contagem de instâncias do gerador de 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
: Um caminho de referência de string para uma operação no projeto atual
Parâmetros opcionais
timeOutSec
: Uma variável localpollIntervalSec
: 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 tenham terminado de processar. Este método é útil se você deseja adicionar muitas instâncias de uma operação à fila para processamento paralelo e, em seguida, aguardar que todas elas terminem.
A operação utilizada nesta chamada de função deve ser definida como uma operação no projeto atual. Para mais informações, consulte as instruções sobre como inserir operações na seção Operations em Jitterbit Script.
Nota:
- Para cada operação (identificada pelo seu
operationID
) que deve ser aguardada, uma chamada deve ser feita a este método. - Instâncias de operação que são adicionadas (por chamadas à função
RunOperation
) após esta chamada não são aguardadas. - O usuário atual precisa ter acesso de leitura para a operação que está sendo aguardada.
O segundo argumento (opcional) é o tempo limite em segundos. O tempo limite padrão é de 1 hora (3600 segundos) e, se todas as operações não tiverem terminado dentro desse tempo, um erro será gerado. Se você espera que suas operações levem mais tempo em condições normais, deve aumentar o tempo limite. Você pode lidar com esse erro usando a função Eval
.
O terceiro argumento (opcional) é o intervalo de verificação em segundos. O intervalo de verificação é o tempo entre as verificações da fila de operações. O intervalo de verificação padrão é de 10 segundos. O padrão não terá um impacto significativo no desempenho, mas se suas operações forem esperadas para rodar por um tempo muito longo, você pode querer aumentar o intervalo de verificação.
Exemplos
// Add ten operation instances to the queue
// and wait for all of them to finish
i = 0;
while(i < 10,
RunOperation("<TAG>operation:MyOperation</TAG>", false);
i++;
);
WaitForOperation("<TAG>operation:MyOperation</TAG>");