Ir para o conteúdo

Funções Gerais

As funções gerais incluem aquelas funções que não são específicas para uma atividade específica, mas encontram aplicação em quase todos os script.

ArgumentList

Declaração

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

Sintaxe

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

Parâmetros Necessários

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

Parâmetros Opcionais

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

Descrição

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

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

  • Caso 1: Mapeamentos de Transformação Quando a chamada de função é feita no mapeamento de um campo de destino. (Uma chamada para a função SetInstances deve ter sido feito anteriormente.) As variáveis locais são construídas a partir das variáveis globais correspondentes na instância dada 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 chamada RunScript declaração. Essas variáveis também podem ser endereçadas por índice, como _1, _2...

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

Exemplos

Case 1: Transformation Mappings
// 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>
Case 2: Running a 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 específica.

Aviso

Este método foi obsoleto e pode ser removido em uma versão futura do Jitterbit. Use o TargetInstanceCount ou SourceInstanceCount funções em vez disso. O TargetInstanceCount função é equivalente a esta função.

Exemplos

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

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

Quando o AutoNumber função é chamada:

  • AutoNumber chamado 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, pois PO1 tem 3 registros filhos.

CancelOperation

Declaração

void CancelOperation(string operationInstanceGUID)

Sintaxe

CancelOperation(<operationInstanceGUID>)

Parâmetros Necessários

  • operationInstanceGUID: O GUID da instância da operação que deve ser cancelado

Descrição

Cancela uma instância de operação específica especificada por um GUID de instância de operação.

Como mostrado no exemplo abaixo, chame o GetOperationQueue função para recuperar instâncias de operações em execução. O GUID da instância da operação está no índice 4 das submatrizes retornadas pelo GetOperationQueue função. Veja o GetOperationQueue função para obter 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("Cancelling operation instance: " + op_inst);
  CancelOperation(op_inst);
  i++;
);

CancelOperationChain

Declaração

void CancelOperationChain(string message)

Sintaxe

CancelOperationChain(<message>)

Parâmetros Necessários

  • message: Se for uma string não vazia, ela 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 esse método fará com que essas operações sejam canceladas. Quaisquer operações vinculadas por uma condição também serão canceladas. No entanto, todos os 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 interromper o loop tiver sido atingida.

Exemplos

CancelOperationChain("The success operation does not need to run.");

Eval

Declaração

string Eval(type expToEvaluate, type defaultResult)

Sintaxe

Eval(<expToEvaluate>, <defaultResult>)

Parâmetros Necessários

  • expToEvaluate: Uma expressão a ser avaliada; se válido, seu resultado será retornado
  • defaultResult: Resultado padrão a ser avaliado e retornado se expToEvaluate não é 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 instruçã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 própria chamada da operação seja malformada ou inválida. Em vez disso, para capturar operações com falha, funções como If e GetLastError podem ser usados para obter funcionalidade semelhante. Para obter mais informações, consulte o Script na seção Práticas recomendadas 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 Necessários

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

Parâmetros Opcionais

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

Descrição

Retorna o valor de uma variável global com um determinado nome. Se for passado um array ou o nome de uma variável global que seja um array, retorna um elemento do array. Veja também os complementares Set função.

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

As matrizes são indexadas por zero; o primeiro elemento está no índice 0 e o último elemento (do array $array) está no índice [Length($array)-1].

A tentativa de recuperar um elemento além do final da matriz 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 Necessários

  • name: O nome da variável do pedaço

Descrição

Retorna o valor da variável chunk com um determinado nome. Uma variável de chunk é avaliada à medida que cada chunk de dados é processado. Um método alternativo é usar o SCOPE_CHUNK sintaxe do Set função. Veja também o SetChunkDataElement e Set funções.

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 Necessários

  • ipAddress: Uma string com um endereço IP

Descrição

Resolve um endereço IP para um nome de hospedar.

Exemplos

GetHostByIP("127.0.0.1");

GetInputString

Declaração

string GetInputString(type arg)

Sintaxe

GetInputString(<arg>)

Parâmetros Necessá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 Jitterbit padrão de um tipo de dados (como uma data ou dupla) não for adequada e a entrada "bruta" for necessária. Se esse método for chamado em um objeto que não seja uma variável global de origem, uma string vazia será retornada.

Exemplos

// The input is too large for a Jitterbit double
// return the raw input instead
$SessionId = GetInputString(root$transaction$body$GetMachineList$req$SessionID$)

GetLastOperationRunStartTime

Declaração

date GetLastOperationRunStartTime(string operationId)

Sintaxe

GetLastOperationRunStartTime(<operationId>)

Parâmetros Necessá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 de retorno é uma data (que inclui a data e a hora). Para ser usado apenas com um Agente Único.

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

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

Aviso

Esta função deve ser usada apenas com um único Agente Privado, pois não é precisa ao usar Agentes em Nuvem ou vários Agentes Privados.

Exemplos

$lastOpRun = GetLastOperationRunStartTime("<TAG>Operations/MyOperation</TAG>");
// Converting to a local time zone
$lorInMyTimeZone = ConvertTimeZone($lastOpRun,"UTC","CST");

GetName

Declaração

string GetName(type arg)

Sintaxe

GetName(<arg>)

Parâmetros Necessários

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

Descrição

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

Certas funções retornam uma matriz de variável global nomeada; 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: Uma operação no projeto atual; caso contrário, todas as operações no projeto atual são usadas

Descrição

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

O resultado é retornado como um array de arrays, com estes elementos em cada sub-array:

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

O argumento da tag de operação é opcional. Se o argumento de tag de operação estiver presente, apenas as entradas de fila para essa operação específica serão retornadas. Veja 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 em Nuvem ou vários 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 na qual o agente está sendo executado.

Exemplos

GetServerName();
// Returns the server name

GUID

Declaração

string GUID()

Sintaxe

GUID()

Descrição

Retorna uma string GUID (um identificador exclusivo globalmente, também conhecido como identificador exclusivo 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();
// Returns a string such as "c056f89d-1f45-458e-8b25-9ecf2ed10842"

IfEmpty

Declaração

type IfEmpty(type arg, type default)

Sintaxe

IfEmpty(<arg>, <default>)

Parâmetros Necessários

  • arg: Um argumento para avaliar para ver se é nulo ou uma string vazia
  • default: Valor padrão a ser retornado 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 de string do argumento for uma string vazia. Caso contrário, ele retorna o primeiro argumento. Este é um atalho para um If declaração de função:

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

Veja também o IsNull função.

Exemplos

// If the variable "myDate" is null or empty,
// returns the current date, otherwise returns "myDate"
result = IfEmpty(myDate, Now());

IfNull

Declaração

type IfNull(type arg, type default)

Sintaxe

IfNull(<arg>, <default>)

Parâmetros Necessários

  • arg: Um argumento para avaliar para ver se é nulo
  • default: Valor padrão a ser retornado se arg for nulo

Descrição

Retorna o valor padrão se o primeiro argumento for nulo, senão retorna o primeiro argumento.

Este é um atalho para um Ifdeclaração de função:

If(IsNull(arg), default, arg)

Veja também o IsNull e IfEmpty funções.

Exemplos

// If the variable "myDate" is null,
// returns the current date, otherwise returns "myDate"
result = IfNull(myDate, Now());

InitCounter

Declaração

long InitCounter(type counter[, long initialValue])

Sintaxe

InitCounter(<counter>, <initialValue>)

Parâmetros Necessá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 para definir o contador; padrão é 0

Descrição

Inicializa um contador, opcionalmente passando um valor inicial. Para ser usado apenas com um Agente Único.

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). Esse método precisa ser chamado apenas em contextos de thread único. Chamar esse método em um contexto multithread resultará em um erro. Consulte também as Considerações ao dividir.

Aviso

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

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])

Sintaxe

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

Parâmetros Necessários

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

Parâmetros Opcionais

  • arg1...argN: Uma série de argumentos que x é para ser comparado contra

Descrição

verifica para x na lista de argumentos (arg1 através 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 da lista representada pelo inteiro 1.

Se a lista contiver mais de uma instância de x, essa função retornará 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.

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

IsInteger

Declaração

bool IsInteger(type x)

Sintaxe

IsInteger(<x>)

Parâmetros Necessários

  • x: Um elemento a ser avaliado

Descrição

Retorna true se o argumento for do tipo integer ou long ou puder ser convertido para integer ou long 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 Necessá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 o IfNull e IfEmpty funções para atalhos que podem ser usados no lugar desta função.

Exemplos

// If the "POHeader.Vendor_Code" is null,
// it returns a string "VC", otherwise it returns the code
If(IsNull(POHeader.Vendor_Code), POHeader.Vendor_Code, "VC")

IsValid

Declaração

bool IsValid(type x)

Sintaxe

IsValid(<x>)

Parâmetros Necessá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 Necessá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, é feita uma tentativa de 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 o argumento for nulo ou de tipo desconhecido, 0 será 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 Necessá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. Veja também o RandomString função.

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 Necessários

  • len: Comprimento da string aleatória resultante

Parâmetros Opcionais

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

Descrição

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

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 Necessários

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

Parâmetros Opcionais

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

Descrição

Lê uma string que representa uma matriz única ou multidimensional.

A matriz é representada envolvendo os elementos da matriz com um par de chaves ({ e }). Cada elemento da matriz pode ser uma matriz 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. Aspas duplas para incluir 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 quebras de linha). Dentro da string com aspas duplas, cada aspa dupla deve ser escapada por duas aspas duplas. O segundo argumento opcional é especificar o tipo de dados do valor escalar. O tipo é considerado 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 no momento.

Se for chamado em uma condição, retorna o número da instância da última instância que foi gerada. Na primeira vez que este método é chamado em um loop, ele 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 obsoleto e pode ser removido em uma versão futura.

Usar SourceInstanceCount() ou TargetInstanceCount() em vez de. 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 em relação ao valor de retorno e variáveis globais é idêntico ao RunOperation função. Consulte essa função para obter uma descrição de como a reexecução da operação de forma síncrona ou assíncrona afeta as variáveis globais globais.

Aviso

Como esta é uma chamada recursiva, é essencial que haja uma condição de parada, provavelmente incluindo o CancelOperation função. Caso contrário, você terminará 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 Necessá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 síncrona o padrão.

Executando Sincronicamente

Se run_synchronously=true a operação chamada e quaisquer operações de sucesso/falha serão executadas dentro da operação atual e a operação atual aguardará a conclusão de toda a cadeia de operação. Todas as variáveis globais são herdadas pela operação chamada e quaisquer alterações nas variáveis globais serão refletidas na operação atual. Este é o comportamento padrão se o segundo argumento não for fornecido. devoluções false se a operação chamada resultou em falha.

Se run_synchronously=false este método coloca a operação chamada na fila de processamento Jitterbit para ser processada uma vez que todas as operações anteriores tenham sido processadas. Todas as variáveis globais são herdadas pela operação chamada, mas as alterações nessas variáveis não serão refletidas na operação atual. A operação atual continuará a ser executada independentemente da operação chamada e não há garantia de qual operação terminará primeiro. devoluções false se a operação chamada não puder ser adicionada à fila. Com o 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 quaisquer alterações nas variáveis não sejam refletidas em nenhuma outra operaçã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

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

RunOperationFromProject

Declaração

bool RunOperationFromProject(string operationId[, bool runSynchronously])

Sintaxe

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

Parâmetros Necessários

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

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 síncrona o padrão. Esta função, disponível a partir da versão 8.22, permite que você execute operações de diferentes projetos localizados e já implantados no mesmo ambiente do seu projeto atual. Esta função funciona de forma semelhante ao RunOperation função.

Obtendo o ID da Operação

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

Em seguida, usando o Analista de Negócios mode do Design Studio, insira esta função em seu script. O assistente que aparece solicitará o projeto que você gostaria de usar e, em seguida, permitirá que você selecione uma de suas operações implantadas atualmente. Em seguida, ele criará um caminho apropriado e o inserirá como ID. Veja também as instruções em inserindo itens de projeto.

Variáveis Globais

As variáveis globais definidas no projeto remoto podem ser herdadas, dependendo se a operação remota é executada de forma síncrona ou não. Conforme descrito na próxima seção, se executado de forma síncrona, as variáveis globais são herdadas pela cadeia de operação chamada e quaisquer alterações nas variáveis globais serão refletidas na operação atual. Isso permite que um projeto remoto se comunique de volta com a operação de chamada.

Com o modo assíncrono, essas variáveis globais são passadas para a operação remota por valor e não por referência, o que garante que quaisquer alterações nas variáveis não sejam refletidas na operação atual.

Executando Sincronicamente

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á a conclusão de toda a cadeia de operação chamada. Todas as variáveis globais são herdadas pela cadeia de operação chamada e quaisquer alterações nas variáveis globais serão refletidas na operação atual. Este é o comportamento padrão se o segundo argumento não for fornecido. devoluções false se a operação chamada resultou em falha.

Para runSynchronously=false, este método coloca uma operação na fila de processamento de Jitterbit para ser processada assim que qualquer operação anterior a ela for processada. Todas as variáveis globais são herdadas pela cadeia de operação chamada, mas as 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ção chamada e não há garantia de qual operação terminará primeiro. devoluções false se a operação não puder 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 um RunOperationFromProject função em seu projeto atual.

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 Necessá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 estiverem instaladas em um agente, a versão mais alta disponível será usada.

Na interface do usuário 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 origens, destinos e chamadas de serviço da web estão ocultos. Veja as instruções em inserindo itens de projeto.

devoluções true se o plug-in for concluído sem erros. devoluções false se o plug-in não puder ser executado ou se a própria implementação do plug-in retornar um erro. Chamar GetLastError para recuperar a mensagem de erro.

Exemplos

// Runs the Jitterbit HMACSHA256Generator plugin
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 Necessários

Parâmetros Opcionais

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

Descrição

Executa o script especificado e 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.

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

Se forem preferidos nomes abrangentes, o ArgumentList função pode ser usada para mapear uma lista de nomes de variáveis locais para a lista de_1, _2 .... Veja o ArgumentList função para exemplos.

Aviso

O tipo de retorno é um string. Todos os outros tipos são convertidos em seus equivalentes de cadeia de caracteres. Valores nulos são retornados como um vazio string. Arrays são retornados como um string; se eles contiverem valores escalares, eles podem ser convertidos em uma matriz usando o ReadArrayString função. (Uma matriz multidimensional também pode ser convertida por ReadArrayString.)

Aviso

Se o script chamado for um script JavaScript, nenhum argumento será passado para ele. Quaisquer argumentos incluídos na chamada para o RunScript não será declarada ou disponível 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 o Jitterbit.GetVar função.

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 Necessá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 determinado nome para um valor e retorna o valor. Veja também os complementares Get função.

Primeira Forma: Escalares

Na primeira forma, 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, isso não é recomendado, pois os resultados podem ser inconsistentes. As variáveis locais não devem ser definidas por meio desse mecanismo.)

Veja os exemplos abaixo.

Segunda e Terceira Formas: Arrays

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

Se o primeiro argumento for uma matriz (ou o nome de uma variável global que seja uma matriz), você poderá definir o valor de um elemento da matriz especificando seu índice (ou índices para matrizes multidimensionais) como argumentos adicionais.

Para anexar dados a uma matriz, passe um valor de índice negativo ou o tamanho da matriz. O tamanho pode ser determinado usando o Length funciona como Length($array).

As matrizes são indexadas por 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 o Array ou ReadArrayString funções.

A tentativa de definir um elemento além do final da matriz resultará em elementos de valor nulo adicionais sendo adicionados à matriz conforme necessário para preencher a matriz com o tamanho correto.

Sintaxe do Prefixo SCOPE_CHUNK

Configurando 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 identificar esse bloco quando um nome de arquivo ou registro é criado em um destino. Veja também o GetChunkDataElement e SetChunkDataElement funciona como um método alternativo que permite o uso de outros nomes de variáveis.

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 Necessários

  • name: O nome da variável do pedaço
  • value: O valor para definir a variável chunk para

Descrição

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 o SCOPE_CHUNK sintaxe do Set função.

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

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 Necessá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

// Sleeps the current operation for 1 minute
Sleep(60);

SourceInstanceCount

Declaração

int SourceInstanceCount()

Sintaxe

SourceInstanceCount()

Descrição

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

O valor é independente se a instância de destino foi 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 gerador, 1 é retornado, depois 2 e assim por diante.

Veja também o TargetInstanceCount função.

Exemplos

// Returns the instance count of the most recent generator
currentSourceInstance = SourceInstanceCount();

TargetInstanceCount

Declaração

int TargetInstanceCount()

Sintaxe

TargetInstanceCount()

Descrição

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

Quando chamado em uma condição, ele retorna o número de instâncias de destino 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, pois, em uma condição, não se sabe se a instância de destino atual será gerada ou não.

Quando a primeira instância de destino é 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 o SourceInstanceCount função.

Exemplos

// Returns the instance count of the most recent target generator
currentTargetInstance = TargetInstanceCount();

WaitForOperation

Declaração

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

Sintaxe

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

Parâmetros Necessá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ção tenham concluído o processamento. Esse método é útil se você deseja adicionar muitas instâncias de uma operação à fila para processamento paralelo e aguardar a conclusão de todas elas.

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

Observação:

  • Para cada operação (identificada por seu operationID) que deve ser aguardado, uma chamada deve ser feita para esse método.
  • Instâncias de operação que são adicionadas (por chamadas ao RunOperation função) depois que esta chamada é feita não são esperados.
  • 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 forem concluídas dentro desse tempo, um erro será lançado. Se você espera que suas operações sejam executadas por mais tempo em condições normais, você deve aumentar o tempo limite. Você pode lidar com esse erro usando o Eval função.

O terceiro argumento (opcional) é o intervalo de votação em segundos. O intervalo de sondagem é o tempo entre as verificações da fila de operação. O intervalo de pesquisa padrão é de 10 segundos. O padrão não será um impacto significativo no desempenho, mas se for esperado que suas operações sejam executadas por um período muito longo, convém aumentar o intervalo de pesquisa.

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>");