Funciones generales en Jitterbit Integration Studio
Las funciones generales incluyen aquellas funciones que no son específicas de una interacción particular pero que se pueden aplicar en casi cualquier secuencia de comandos.
ArgumentList
Declaración
null ArgumentList(type var1[,... ])
Sintaxis
ArgumentList(<var1>[,... ])
Parámetros necesarios
var1
: Una variable local que se inicializará a partir de la lista de argumentos de la instancia que realiza la llamada
Parámetros opcionales
var2,... varN
: Variables adicionales que se inicializarán desde la lista de argumentos de la instancia que realiza la llamada
Descripción
Esta función inicializa un conjunto de variables locales a partir de su lista de argumentos.
La construcción de las variables locales depende de cuál de estos casos se aplique:
- Caso 1: Mapeos de Transformación Cuando la llamada a la función se realiza en el mapeo de un campo de destino. (Una llamada a la función
SetInstances
debe haberse realizado previamente.) Las variables locales se construyen a partir de las variables globales correspondientes en la instancia dada por la funciónSetInstances
. - Caso 2: Ejecución de un Secuencia de comandos Cuando la llamada a la función se realiza en un secuencia de comandos, las variables locales se construyen a partir de los argumentos correspondientes en la lista proporcionada por la función que realiza la llamada.
RunScript
declaración. Estas variables también pueden abordarse por índice, como_1
,_2
...
Esta función devuelve un valor nulo que puede ignorarse. Como alternativa, consulte la función GetInstance
.
Ejemplos
// 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
Declaración
int AutoNumber()
Sintaxis
AutoNumber()
Descripción
Devuelve el número de una instancia dentro de una jerarquía particular.
Advertencia
Este método ha quedado obsoleto y puede eliminarse en una versión futura de Jitterbit. Utilice el TargetInstanceCount
o SourceInstanceCount
funciones en su lugar. El TargetInstanceCount
La función es equivalente a esta función.
Ejemplos
Supongamos que una arquitectura de destino tiene dos registros de nivel superior: PO1 y PO2:
- PO1 es un padre de tres registros secundarios: PO1_record1, PO1_record2 y PO1_record3.
- PO2 es un padre de dos registros secundarios: PO2_record1 y PO2_record2.
Cuando el AutoNumber()
La función se llama:
AutoNumber()
La llamada en el nivel padre devuelve 1 en PO1 y devuelve 2 en PO2.AutoNumber()
En el nivel secundario de PO1, devuelve 1 en PO1_record1, devuelve 2 en PO1_record2 y devuelve 3 en PO1_record3, ya que PO1 tiene 3 registros secundarios.
CancelOperation
Declaración
void CancelOperation(string operationInstanceGUID)
Sintaxis
CancelOperation(<operationInstanceGUID>)
Parámetros necesarios
operationInstanceGUID
: La ruta de referencia de la cadena a la operación en el proyecto actual que se va a cancelar
Descripción
Cancela una operación particular especificada por la ruta de referencia de la operación. Para obtener más información, consulte las instrucciones sobre cómo insertar operaciones en Operaciones sección en Jitterbit Script.
Como se muestra en el ejemplo a continuación, llame al GetOperationQueue
Función para recuperar instancias de operaciones en ejecución. El GUID de la instancia de operación está en el índice 4 de las submatrices devueltas por la GetOperationQueue
función. Ver la GetOperationQueue
Función para más detalles.
Ejemplos
// 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
Declaración
void CancelOperationChain(string message)
Sintaxis
CancelOperationChain(<message>)
Parámetros necesarios
message
: Si es una cadena no vacía, se registrará como un mensaje de advertencia en el registro de operación.
Descripción
Si la operación actual tiene operaciones exitosas o fallidas, al llamar a este método se cancelarán esas operaciones. También se cancelarán todas las operaciones vinculadas por una condición. Sin embargo, se completarán todos los secuencias de comandos de la operación actual.
Esto puede ser útil si una operación se está ejecutando en un bucle y se ha alcanzado la condición para detener el bucle.
Ejemplos
CancelOperationChain("The success operation does not need to run.");
Eval
Declaración
string Eval(type expToEvaluate, type defaultResult)
Sintaxis
Eval(<expToEvaluate>, <defaultResult>)
Parámetros necesarios
expToEvaluate
: Una expresión a evaluar; si es válida, se devolverá su resultadodefaultResult
: Resultado predeterminado que se evaluará y devolverá siexpToEvaluate
no es válido
Descripción
Evalúa el primer argumento; si es válido, su resultado se devuelve como una cadena. De lo contrario, se evalúa el valor predeterminado y sus resultados se devuelven como una cadena.
Esto se puede utilizar como una declaración "try-catch", ya que el segundo argumento se evaluará solo si el primero falla.
Nota
No se recomienda utilizar esta función con RunOperation
ya que siempre devolverá un resultado válido después de que se ejecute la operación a menos que la llamada a la operación en sí esté mal formada o no sea válida. En cambio, para capturar operaciones fallidas, se utilizan funciones como If
y GetLastError
Se puede utilizar para lograr una funcionalidad similar. Para obtener más información, consulte Scripting sección en Mejores prácticas de Harmony.
Ejemplos
// 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
Declaración
type Get(string name)
type Get(string name[, int index1, int index2,... int indexN])
type Get(array name[, int index1, int index2,... int indexN])
Sintaxis
Get(<name>[, <index1>, <index2>,... <indexN>])
Parámetros necesarios
name
: El nombre de una variable global, ya sea un escalar o una matriz, o una matriz
Parámetros opcionales
index1,... indexN
: Índices que especifican el elemento deseado en la matriz o una submatriz
Descripción
Devuelve el valor de una variable global con un nombre determinado. Si se pasa una matriz o el nombre de una variable global que es una matriz, devuelve un elemento de la matriz. Consulte también la función complementaria Set
función.
Si el primer argumento es una matriz o el nombre de una variable global que es una matriz, la función recupera un elemento específico por su índice (o índices para una matriz multidimensional como un conjunto de registros) utilizando los argumentos restantes.
Las matrices tienen un índice cero; el primer elemento está en el índice 0 y el último elemento (de la matriz $array
) está en el índice [Length($array)-1]
.
Si se intenta recuperar un elemento que se encuentra más allá del final de la matriz, el valor de retorno será nulo.
Ejemplos
// 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
Declaración
type GetChunkDataElement(string name)
Sintaxis
GetChunkDataElement(<name>)
Parámetros necesarios
name
: El nombre de la variable del fragmento
Descripción
Devuelve el valor de la variable de fragmento con un nombre determinado. Una variable de fragmento se evalúa a medida que se procesa cada fragmento de datos. Un método alternativo es utilizar el SCOPE_CHUNK
sintaxis de la Set
función. Véase también la SetChunkDataElement
y Set
funciones.
Ejemplos
// 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
Declaración
string GetHostByIP(string ipAddress)
Sintaxis
GetHostByIP(<ipAddress>)
Parámetros necesarios
ipAddress
: Una cadena con una dirección IP
Descripción
Resuelve una dirección IP a un nombre de alojar.
Ejemplos
GetHostByIP("127.0.0.1");
GetInputString
Declaración
string GetInputString(type arg)
Sintaxis
GetInputString(<arg>)
Parámetros necesarios
arg
: Una variable global
Descripción
Devuelve la entrada sin formato como una cadena dada una variable global de origen.
Esto es útil si la representación Jitterbit estándar de un tipo de datos (como una fecha o un doble) no es adecuada y se requiere la entrada "sin formato". Si se llama a este método en un objeto que no es una variable global de origen, se devuelve una cadena vacía.
Ejemplos
// The input is too large for a Jitterbit double
// return the raw input instead
$SessionId = GetInputString(root$transaction$body$GetMachineList$req$SessionID$)
GetLastOperationRunStartTime
Declaración
date GetLastOperationRunStartTime(string operationId)
Sintaxis
GetLastOperationRunStartTime(<operationId>)
Parámetros necesarios
operationId
: Una ruta de referencia de cadena a una operación en el proyecto actual
Descripción
Devuelve la última fecha y hora en que se ejecutó la operación indicada. El valor de retorno es una fecha (que incluye la fecha y la hora). Solo se debe utilizar con un único agente privado.
La operación utilizada en esta llamada de función debe estar definida como una operación en el proyecto actual. Para obtener más información, consulte las instrucciones sobre cómo insertar operaciones en Operaciones sección en Jitterbit Script.
La fecha devuelta está en UTC (sin una huso horario específica). Utilice el ConvertTimeZone
Función para convertir a hora local, como se ve en el ejemplo siguiente.
Advertencia
Esta función solo se debe utilizar con un único agente privado, ya que no es precisa cuando se utilizan agentes en la nube o múltiples agentes privados.
Ejemplos
op = "<TAG>operation:MyOperation</TAG>";
lastOpRun = GetLastOperationRunStartTime(op);
// Converting to a local time zone
$lorInMyTimeZone = ConvertTimeZone(lastOpRun,
"UTC", "CST");
GetName
Declaración
string GetName(type arg)
Sintaxis
GetName(<arg>)
Parámetros necesarios
arg
: Una variable o variable global
Descripción
Devuelve el nombre de una variable o una variable global.
Algunas funciones devuelven una matriz de variables globales con nombre; si está definida, esta función recupera el nombre del valor.
Ejemplos
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
Declaración
array GetOperationQueue([string operationTag])
Sintaxis
GetOperationQueue([<operationTag>])
Parámetros opcionales
operationTag
: Una ruta de referencia de cadena a una operación en el proyecto actual; de lo contrario, se utilizan todas las operaciones en el proyecto actual
Descripción
Devuelve el contenido de la cola de operación como una matriz. Solo se devolverán las operaciones para las que el usuario actual tenga acceso de lectura. Solo se debe utilizar con un único agente privado.
El resultado se devuelve como una matriz de matrices, con estos elementos en cada submatriz:
0
: GUID de la operación (cadena)1
: ElIsExecuting
bandera (booleano)2
:Marca de tiempo (fecha) de cuando se agregó la operación a la cola3
: Segundos en el estado actual (entero)4
: GUID de la instancia de operación (cadena)5
: Nombre de la operación (cadena)
El argumento de etiqueta de operación es opcional. Si el argumento de etiqueta de operación está presente, solo se devolverán las entradas de cola para esa operación en particular. Para obtener más información, consulte las instrucciones sobre cómo insertar operaciones en Operaciones sección en Jitterbit Script.
Advertencia
Esta función solo se debe utilizar con un único agente privado, ya que no es precisa cuando se utilizan agentes en la nube o múltiples agentes privados.
Ejemplos
// 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
Declaración
string GetServerName()
Sintaxis
GetServerName()
Descripción
Devuelve el nombre de la máquina en la que se ejecuta el agente.
Ejemplos
GetServerName();
// Returns the server name
GUID
Declaración
string GUID()
Sintaxis
GUID()
Descripción
Devuelve una cadena GUID (un identificador único global, también conocido como identificador único universal o UUID).
El formato del GUID es xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx
, donde M es la versión (4) y N es la variante (8).
Ejemplos
GUID();
// Returns a string such as "c056f89d-1f45-458e-8b25-9ecf2ed10842"
IfEmpty
Declaración
type IfEmpty(type arg, type default)
Sintaxis
IfEmpty(<arg>, <default>)
Parámetros necesarios
arg
: Un argumento para evaluar si es nulo o una cadena vacíadefault
: Valor predeterminado a devolver siarg
es nulo o una cadena vacía
Descripción
Devuelve el valor predeterminado si el primer argumento es nulo o si la representación de cadena del argumento es una cadena vacía. De lo contrario, devuelve el primer argumento. Este es un atajo para un If
Declaración de función:
If(IsNull(arg)|
|Length(arg)==0, default, arg)
Véase también el IsNull
función.
Ejemplos
// If the variable "myDate" is null or empty,
// returns the current date, otherwise returns "myDate"
result = IfEmpty(myDate, Now());
IfNull
Declaración
type IfNull(type arg, type default)
Sintaxis
IfNull(<arg>, <default>)
Parámetros necesarios
arg
: Un argumento para evaluar si es nulodefault
: Valor predeterminado a devolver siarg
es nulo
Descripción
Devuelve el valor predeterminado si el primer argumento es nulo; de lo contrario, devuelve el primer argumento.
Este es un atajo para un If
Declaración de función:
If(IsNull(arg), default, arg)
Véase también el IsNull
y IfEmpty
funciones.
Ejemplos
// If the variable "myDate" is null,
// returns the current date, otherwise returns "myDate"
result = IfNull(myDate, Now());
InitCounter
Declaración
long InitCounter(type counter[, long initialValue])
Sintaxis
InitCounter(<counter>, <initialValue>)
Parámetros necesarios
counter
: El nombre de una variable o una referencia a una variable global que se utilizará como contador
Parámetros opcionales
initialValue
: El valor inicial para establecer el contador; el valor predeterminado es 0
Descripción
Inicializa un contador y, opcionalmente, pasa un valor inicial. Solo se debe utilizar con un solo agente.
Si no se establece ningún valor inicial, el valor inicial se establece en 0. El primer argumento es el nombre de una variable o una referencia a una variable (consulte los ejemplos). Este método solo debe llamarse en contextos de un solo subproceso. Llamar a este método en un contexto de múltiples subprocesos generará un error. Consulte también Usar variables con fragmentación de datos en Opciones de operación.
Advertencia
Esta función debe usarse solo con un solo Agente, ya que genera un error en un contexto de múltiples Agente.
Ejemplos
// 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
Declaración
int InList(type x[, type arg1, ... type argN])
Sintaxis
InList(<x>[, <arg1>, ... <argN>])
Parámetros necesarios
x
: Un elemento que se va a comparar para obtener una coincidencia
Parámetros opcionales
arg1...argN
: Una serie de argumentos quex
debe compararse con
Descripción
Comprobaciones de x
en la lista de argumentos (arg1
a través de argN
). Si se encuentra una coincidencia (por valor), esta función devolverá un entero que representa la posición de la coincidencia en la lista, siendo la primera posición de la lista representada por el entero 1.
Si la lista contiene más de una instancia de x, esta función devuelve la posición de la primera coincidencia (la coincidencia con el índice de posición más bajo). Se devuelve 0 si la lista no contiene un valor coincidente o si solo se proporciona un único argumento.
Ejemplos
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
Declaración
bool IsInteger(type x)
Sintaxis
IsInteger(<x>)
Parámetros necesarios
x
: Un elemento a evaluar
Descripción
Devuelve verdadero si el argumento es de tipo entero o largo o se puede convertir a un entero o largo sin ninguna pérdida de información.
Ejemplos
$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
Declaración
bool IsNull(type x)
Sintaxis
IsNull(<x>)
Parámetros necesarios
x
: Un elemento a evaluar
Descripción
Devuelve verdadero si el argumento es nulo. Se aplica a campos de base de datos, variables y funciones que pueden devolver valores nulos.
Consulte también IfNull
y IfEmpty
Funciones para atajos que se pueden utilizar en lugar de esta función.
Ejemplos
// 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
Declaración
bool IsValid(type x)
Sintaxis
IsValid(<x>)
Parámetros necesarios
x
: Un elemento a evaluar
Descripción
Devuelve verdadero si la evaluación del argumento no arroja ningún error.
Ejemplos
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
Declaración
int Length(type x)
Sintaxis
Length(<x>)
Parámetros necesarios
x
: Un elemento a evaluar
Descripción
Devuelve la longitud del argumento de entrada.
El comportamiento de este método depende del tipo de argumento:
- string: Se devuelve la longitud de la cadena
- array: Se devuelve la cantidad de elementos en la matriz
- binary data: Se devuelve la cantidad de bytes
- Para todos los demás tipos, se intenta convertir el argumento en una cadena y se devuelve la longitud de la cadena resultante.
- Si el argumento no se puede convertir en una cadena, o el argumento es nulo o de un tipo desconocido, se devuelve 0.
Ejemplos
// 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
Declaración
null Null()
Sintaxis
Null()
Descripción
Devuelve nulo.
Ejemplos
Esta función se puede utilizar para insertar un valor nulo en columnas específicas de una base de datos.
Random
Declaración
int Random(int min, int max)
Sintaxis
Random(<min>, <max>)
Parámetros necesarios
min
: Valor entero del número aleatorio mínimomax
: Valor entero del número aleatorio máximo
Descripción
Genera un número entero aleatorio entre los valores mínimo y máximo indicados, incluidos ambos. Véase también RandomString
función.
Ejemplos
// 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
Declaración
string RandomString(int len[, string chars])
Sintaxis
RandomString(<len>[, <chars>])
Parámetros necesarios
len
: Longitud de la cadena aleatoria resultante
Parámetros opcionales
chars
: Cadena que contiene caracteres que se utilizarán en la cadena aleatoria resultante
Descripción
Genera una cadena aleatoria de la longitud indicada. De forma predeterminada, la función utiliza caracteres alfanuméricos; el conjunto que incluye a-z, A-Z y 0-9. Consulte también Random
función.
Ejemplos
// 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
Declaración
array ReadArrayString(string arrayString[, string type])
Sintaxis
ReadArrayString(<arrayString>[, <type>])
Parámetros necesarios
arrayString
: Una representación en forma de cadena de una matriz
Parámetros opcionales
type
: Una cadena que describe el tipo que representa la cadena de matriz, como"string"
,"int"
,"double"
,"bool"
Descripción
Lee una cadena que representa una matriz unidimensional o multidimensional.
La matriz se representa encerrando los elementos de la matriz con un par de llaves ('{' y '}'). Cada elemento de la matriz puede ser una matriz o un elemento escalar separado por coma (','). Los elementos de una matriz deben ser todos escalares o todas matrices.
El valor escalar se puede representar mediante una cadena CSV. Las comillas dobles para encerrar la cadena son opcionales, a menos que la cadena contenga caracteres especiales como ",{}\n (comillas dobles, coma, corchetes, tabulaciones, saltos de línea o retornos de carro). Dentro de la cadena entre comillas dobles, cada comilla doble debe ir precedida de dos comillas dobles. El segundo argumento opcional es para especificar el tipo de datos del valor escalar. Se supone que el tipo es una cadena si no se especifica explícitamente.
Ejemplos
// 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
Declaración
int RecordCount()
Sintaxis
RecordCount()
Descripción
Devuelve el número de instancia del bucle de destino que se está generando actualmente.
Si se llama en una condición, devuelve el número de instancia de la última instancia que se generó. La primera vez que se llama a este método en un bucle, devuelve 0 (cero) si se llama en una condición; de lo contrario, devuelve 1 (uno). El contador se restablece a 0 cada vez que se inicia un nuevo bucle.
Nota
Este método ha quedado obsoleto y puede eliminarse en una versión futura.
Uso SourceInstanceCount
o TargetInstanceCount
en cambio. TargetInstanceCount
es equivalente a este método.
Ejemplos
RecordCount()
devuelve un valor de 5 mientras genera la quinta línea en un nodo de bucle de destino.
ReRunOperation
Declaración
bool ReRunOperation([bool runSynchronously])
Sintaxis
ReRunOperation([<runSynchronously>])
Parámetros opcionales
runSynchronously
: Bandera para indicar si la operación debe ejecutarse sincrónicamente (predeterminado) o asincrónicamente
Descripción
Vuelve a ejecutar la operación actual.
El comportamiento de este método con respecto al valor de retorno y las variables globales es idéntico al RunOperation
función. Consulte esa función para obtener una descripción de cómo la repetición de la operación de forma sincrónica o asincrónica afecta las variables globales.
Advertencia
Dado que se trata de una llamada recursiva, es esencial que exista una condición de detención, que probablemente incluya la CancelOperation
función. De lo contrario, terminará en un bucle infinito de llamadas a operación.
Ejemplos
ReRunOperation();
// Re-runs the current operation synchronously
ReRunOperation(false);
// Re-runs the current operation asynchronously
RunOperation
Declaración
bool RunOperation(string operationId[, bool runSynchronously])
Sintaxis
RunOperation(<operationId>[, <runSynchronously>])
Parámetros necesarios
operationId
: Una ruta de referencia de cadena a una operación en el proyecto actual
Parámetros opcionales
runSynchronously
: Bandera para indicar si la operación debe ejecutarse sincrónicamente (predeterminado) o asincrónicamente
Descripción
Ejecuta una operación de forma sincrónica o asincrónica, siendo sincrónico el valor predeterminado.
La operación utilizada en esta llamada de función debe estar definida como una operación en el proyecto actual. Para obtener más información, consulte las instrucciones sobre cómo insertar operaciones en Operaciones sección en Jitterbit Script.
Corriendo sincronizadamente
Si run_synchronously=true
la operación llamada y cualquier operación exitosa o fallida se ejecutarán dentro de la operación actual y la operación actual esperará a que finalice toda la cadena de operación. La operación llamada hereda todas las variables globales y cualquier cambio en las variables globales se reflejará en la operación actual. Este es el comportamiento predeterminado si no se proporciona el segundo argumento. Devuelve false
Si la operación llamada resultó en un error.
Si run_synchronously=false
este método coloca la operación llamada en la cola de procesamiento de Jitterbit para que se procese una vez que se hayan procesado todas las operaciones anteriores. La operación llamada hereda todas las variables globales, pero los cambios en esas variables no se reflejarán en la operación actual. La operación actual seguirá ejecutándose independientemente de la operación llamada y no hay garantía de qué operación finalizará primero. Devuelve false
Si la operación llamada no se pudo agregar a la cola. Con el modo asincrónico, estas variables globales se pasan a la operación llamada por valor en lugar de por referencia, lo que garantiza que los cambios en las variables no se reflejen en ninguna otra operación.
Nota
Las operaciones llamadas con esta función están encadenadas y se ejecutarán en el mismo agente que la operación que las llama, independientemente de la sincronicidad.
Si la función retorna false
para indicar una falla o si la operación llamada no pudo ser puesta en cola, llamar GetLastError
para recuperar el mensaje de error.
Ejemplos
// Runs the "MyOp"
RunOperation("<TAG>operation:MyOp</TAG>");
RunPlugin
Declaración
bool RunPlugin(string pluginId)
Sintaxis
RunPlugin(<pluginId>)
Parámetros necesarios
pluginId
: Una ruta de referencia de cadena a un complemento en el proyecto actual
Descripción
Ejecuta un complemento específico y luego continúa la ejecución del secuencia de comandos actual. Si hay varias versiones de un complemento instaladas en un agente, se utiliza la versión más alta disponible.
En el Integration Studio En la interfaz de usuario, solo se muestran los complementos que se pueden ejecutar dentro de un secuencia de comandos; los complementos que se ejecutan en actividades están ocultos. Para obtener más información, consulte las instrucciones sobre cómo insertar complementos en Complementos sección en Jitterbit Script.
Devoluciones true
Si el complemento se completa sin errores, devuelve false
Si no se pudo ejecutar el complemento o la despliegue del complemento en sí devolvió un error. Llamar GetLastError
para recuperar el mensaje de error.
Ejemplos
// Runs the Jitterbit HMACSHA1Generator plugin
RunPlugin("<TAG>plugin:http://www.jitterbit.com/plugins/pipeline/user/HMACSHA1Generator</TAG>");
RunScript
Declaración
string RunScript(string scriptId[, type var1, type var2, ..., type varN])
Sintaxis
RunScript(<scriptId>[, <var1>, <var2>, ..., <varN>])
Parámetros necesarios
scriptId
: Una ruta de referencia de cadena a un secuencia de comandos en el proyecto actual
Parámetros opcionales
var1...varN
: Variables adicionales, que se pasarán al secuencia de comandos que se está llamando
Descripción
Ejecuta el secuencia de comandos especificado y luego continúa la ejecución del secuencia de comandos actual. Este método devuelve, en caso de éxito, el valor de retorno del secuencia de comandos llamado como una cadena.
El secuencia de comandos utilizado en esta llamada de función debe definirse como un Jitterbit Script o JavaScript en el proyecto actual. Para obtener más información, consulte las instrucciones sobre cómo insertar secuencias de comandos en Jitterbit Script o JavaScript.
Se puede pasar una lista de valores a un RunScript
funcionan como variables de entrada. El secuencia de comandos creará variables locales utilizando estos valores con nombres predeterminados como _1, _2 ...
.
Si se prefieren nombres completos, el ArgumentList
La función se puede utilizar para asignar una lista de nombres de variables locales a la lista de_1, _2 ...
Ver el ArgumentList
función para ejemplos.
Advertencia
El tipo de retorno es un string
Todos los demás tipos se convierten a su equivalente de cadena. Los valores nulos se devuelven como un valor vacío. string
Las matrices se devuelven como una string
; si contienen valores escalares, se pueden convertir en una matriz utilizando el ReadArrayString
función. (Una matriz multidimensional también se puede convertir mediante ReadArrayString
.)
Advertencia
Si el secuencia de comandos llamado es un secuencia de comandos JavaScript, no se le pasarán argumentos. Cualquier argumento incluido en la llamada al script RunScript
La función no se declarará ni estará disponible en el secuencia de comandos de JavaScript. El único método para pasar información a un secuencia de comandos de JavaScript es usar variables globales; estas son variables precedidas por una $
símbolo. Estos valores pueden estar disponibles dentro del secuencia de comandos JavaScript usando el Jitterbit.GetVar
función.
Ejemplos
// 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
Declaración
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])
Sintaxis
Set(<name>, <value>[, <index1>, <index2>, ..., <indexN>])
Parámetros necesarios
name
: El nombre de una variable global, ya sea un escalar o una matrizvalue
: Un valor que se asignará a la variable global
Parámetros opcionales
index1...indexN
: Índice o índices utilizados para describir la posición de un elemento si se establece un elemento en una matriz
Descripción
Establece el valor de una variable global con un nombre determinado en un valor y devuelve el valor. Véase también la función complementaria Get
función.
Primera forma: escalares
En la primera forma, se establece un nombre de cadena de una variable global utilizando el nombre y el valor proporcionados.
(Aunque se puede pasar una variable local como referencia, no se recomienda hacerlo ya que los resultados pueden ser inconsistentes. Las variables locales no están diseñadas para establecerse a través de este mecanismo).
Vea los ejemplos a continuación.
Segunda y tercera forma: matrices
En la segunda y tercera forma, los argumentos adicionales proporcionan los índices para establecer un elemento en una matriz.
Si el primer argumento es una matriz (o el nombre de una variable global que es una matriz), puede establecer el valor de un elemento de la matriz especificando su índice (o índices para matrices multidimensionales) como argumentos adicionales.
Para agregar datos a una matriz, pase un valor de índice negativo o el tamaño de la matriz. El tamaño se puede determinar utilizando el Length
funcionar como Length($array)
.
Las matrices tienen un índice cero; el primer elemento está en el índice 0 y el último elemento (de la matriz) $array
) está en el índice [Length($array)-1]
Las matrices se pueden crear con cualquiera de los dos Array
o ReadArrayString
funciones.
Si se intenta establecer un elemento más allá del final de la matriz, se agregarán elementos de valor nulo adicionales a la matriz según sea necesario para rellenarla hasta el tamaño correcto.
Sintaxis del prefijo SCOPE_CHUNK
Establecer un nombre de variable que tenga como prefijo la frase SCOPE_CHUNK
creará una variable global que se evalúa a medida que se procesa cada fragmento de datos. Esto se puede utilizar en la creación de variables globales cuyo valor es exclusivo de un fragmento en particular y luego puede identificar ese fragmento cuando se crea un nombre de archivo o un registro en un destino. Consulte también GetChunkDataElement
y SetChunkDataElement
funciona como un método alternativo que permite el uso de otros nombres de variables.
Vea ejemplos adicionales de uso SCOPE_CHUNK
para dividir datos CSV planos o datos JSON jerárquicos en Dividir un archivo en registros individuales.
Precaución
La SCOPE_CHUNK
La sintaxis de prefijo no se admite en operaciones con una transformación que utiliza mapeo condicional.
Ejemplos
// 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
Declaración
type SetChunkDataElement(string name, type value)
Sintaxis
SetChunkDataElement(<name>, <value>)
Parámetros necesarios
name
: El nombre de la variable del fragmentovalue
: El valor en el que se establecerá la variable del fragmento
Descripción
Establece el valor de una variable de fragmento especificada y devuelve el valor. Una variable de fragmento se evalúa a medida que se procesa cada fragmento de datos. Un método alternativo es utilizar el SCOPE_CHUNK
sintaxis de la Set
función.
Véase también la GetChunkDataElement
y Set
funciones.
Ejemplos
// 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
Declaración
void Sleep(int seconds)
Sintaxis
Sleep(<seconds>)
Parámetros necesarios
seconds
: El número entero de segundos para suspender la operación actual
Descripción
Hace que la ejecución se suspenda durante una cantidad específica de segundos.
Ejemplos
// Sleeps the current operation for 1 minute
Sleep(60);
SourceInstanceCount
Declaración
int SourceInstanceCount()
Sintaxis
SourceInstanceCount()
Descripción
Devuelve el recuento de instancias del generador más reciente.
El valor es independiente de si la instancia de destino se ha generado o no; se devuelve el mismo valor si se llama en un secuencia de comandos de condición o en un secuencia de comandos de mapeo.
Cuando se utiliza la primera instancia de origen como generador, se devuelve 1, luego 2, y así sucesivamente.
Véase también el TargetInstanceCount
función.
Vea un ejemplo adicional de uso SourceInstanceCount
en Dividir un archivo en registros individuales usando SourceInstanceCount
.
Ejemplos
// Returns the instance count of the most recent generator
currentSourceInstance = SourceInstanceCount();
TargetInstanceCount
Declaración
int TargetInstanceCount()
Sintaxis
TargetInstanceCount()
Descripción
Devuelve el recuento de instancias de un nodo de bucle de destino generador.
Cuando se llama en una condición, devuelve el número de instancias de destino que se han generado hasta el momento para el nodo de bucle actual. El número devuelto por este método será uno menos si se llama en una condición, ya que, en una condición, no se sabe si la instancia de destino actual se generará o no.
Cuando se genera la primera instancia de destino, se devuelve 1, luego 2, y así sucesivamente. Si se llama en una condición, la secuencia será en su lugar 0, 1, y así sucesivamente.
Consulte también SourceInstanceCount
función.
Ejemplos
// Returns the instance count of the most recent target generator
currentTargetInstance = TargetInstanceCount();
WaitForOperation
Declaración
void WaitForOperation(string operationId[, int timeOutSec, int pollIntervalSec])
Sintaxis
WaitForOperation(<operationId>[, <timeOutSec>, <pollIntervalSec>])
Parámetros necesarios
operationID
: Una ruta de referencia de cadena a una operación en el proyecto actual
Parámetros opcionales
timeOutSec
: Una variable localpollIntervalSec
: Una variable local
Descripción
Detiene la ejecución de un secuencia de comandos o una asignación hasta que todas las instancias de la operación especificada que se encuentran actualmente en la cola de operación hayan terminado de procesarse. Este método es útil si desea agregar muchas instancias de una operación a la cola para su procesamiento en paralelo y luego esperar a que todas terminen.
La operación utilizada en esta llamada de función debe estar definida como una operación en el proyecto actual. Para obtener más información, consulte las instrucciones sobre cómo insertar operaciones en Operaciones sección en Jitterbit Script.
Nota:
- Para cada operación (identificada por su
operationID
) que se debe esperar, se debe realizar una llamada a este método. - Instancias de operación que se agregan (mediante llamadas al método
RunOperation
función) después de que se realiza esta llamada no se esperan. - El usuario actual debe tener acceso de lectura para la operación que se está esperando.
El segundo argumento (opcional) es el tiempo de espera en segundos. El tiempo de espera predeterminado es 1 hora (3600 segundos) y si todas las operaciones no han finalizado en este tiempo, se generará un error. Si espera que sus operaciones se ejecuten durante más tiempo en condiciones normales, debe aumentar el tiempo de espera. Puede manejar este error utilizando el comando Eval
función.
El tercer argumento (opcional) es el intervalo de sondeo en segundos. El intervalo de sondeo es el tiempo entre las comprobaciones de la cola de operación. El intervalo de sondeo predeterminado es de 10 segundos. El valor predeterminado no afectará significativamente al rendimiento, pero si se espera que las operaciones se ejecuten durante mucho tiempo, es posible que desee aumentar el intervalo de sondeo.
Ejemplos
// 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>");