Funciones Generales¶
Las funciones generales incluyen aquellas funciones que no son específicas de una actividad en particular pero encuentran aplicación en casi cualquier secuencia de comandos.
ArgumentList
¶
Declaración¶
null ArgumentList(type var1[,... ])
Sintaxis¶
ArgumentList(<var1>[,... ])
Parámetros Requeridos¶
var1:
Una variable local, que se inicializará desde la lista de argumentos de la instancia de llamada
Parámetros Opcionales¶
var2,... varN
: Variables adicionales que se inicializarán desde la lista de argumentos de la instancia de llamada
Descripción¶
Esta función inicializa un conjunto de variables locales de su lista de argumentos.
La construcción de las variables locales depende de cuál de estos casos aplica:
- Caso 1: Asignaciones de Transformación Cuando la llamada de función se realiza en el mapeo de un campo objetivo. (Una llamada a la función
SetInstances
debe haberse realizado previamente.) Las variables locales se construyen a partir de las correspondientes variables globales en la instancia dada por la funciónSetInstances()
. - Caso 2: Ejecutando 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 llamada
RunScript
declaración. Estas variables también pueden ser abordadas por índice, como_1
,_2
...
Esta función devuelve un valor nulo y se puede ignorar. Como alternativa, vea 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>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>
// 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
¶
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 es posible que se elimine en una versión futura de Jitterbit. Usa el TargetInstanceCount
o SourceInstanceCount
funciones en su lugar. El TargetInstanceCount
función es equivalente a esta función.
Ejemplos¶
Suponga que una arquitectura de destino tiene dos registros de nivel superior: PO1 y PO2:
- PO1 es padre de tres registros secundarios: PO1_record1, PO1_record2 y PO1_record3.
- PO2 es padre de dos registros secundarios: PO2_record1 y PO2_record2.
Cuando el AutoNumber
función se llama:
AutoNumber
invocado en el nivel principal 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 Requeridos¶
operationInstanceGUID:
El GUID de la instancia de operación que se cancelará
Descripción¶
Cancela una instancia de operación particular especificada por un GUID de instancia de operación.
Como se muestra en el siguiente ejemplo, llame al GetOperationQueue
Función para recuperar instancias de operaciones en ejecución. El GUID de la instancia de operación se encuentra en el índice 4 de los subconjuntos devueltos por el GetOperationQueue
función. Ver el GetOperationQueue
función para más detalles.
Ejemplos¶
// 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
¶
Declaración¶
void CancelOperationChain(string message)
Sintaxis¶
CancelOperationChain(<message>)
Parámetros Requeridos¶
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, llamar a este método hará que esas operaciones se cancelen. 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 ejecuta 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 Requeridos¶
expToEvaluate:
Una expresión a evaluar; si es válido, se devolverá su resultadodefaultResult:
Resultado predeterminado para ser evaluado y devuelto 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 usar como una declaración de "intentar-atrapar" 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í tenga un formato incorrecto o no sea válida. En cambio, para capturar operaciones fallidas, funciones como If
y GetLastError
se puede utilizar para lograr una funcionalidad similar. Para obtener más información, consulte Secuencias de comandos en la sección Prácticas recomendadas para Design Studio.
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>Project Name/Sources/Source Name</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 Requeridos¶
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 el arreglo o sub-arreglo
Descripción¶
Devuelve el valor de una variable global con un nombre dado. Si se pasa una matriz o el nombre de una variable global que es una matriz, devuelve un elemento de la matriz. Véase también el complementario 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.
Los arreglos están indexados a cero; el primer elemento está en el índice 0 y el último elemento (de la matriz $array
) está en el índice [Length($array)-1]
.
Intentar recuperar un elemento más allá del final de la matriz dará como resultado un valor de retorno 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 Requeridos¶
name:
El nombre de la variable de 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 el 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 Requeridos¶
ipAddress:
Una cadena con una dirección IP
Descripción¶
Resuelve una dirección IP en un nombre de alojar.
Ejemplos¶
GetHostByIP("127.0.0.1");
GetInputString
¶
Declaración¶
string GetInputString(type arg)
Sintaxis¶
GetInputString(<arg>)
Parámetros Requeridos¶
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 doble) no es adecuada y se requiere la entrada "sin procesar". 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 Requeridos¶
operationId:
Una operación en el proyecto actual
Descripción¶
Devuelve la última fecha y hora en que se ejecutó la operación dada. El valor devuelto es una fecha (que incluye la fecha y la hora). Para ser utilizado con un solo Agente solamente.
La operación utilizada en esta llamada de función debe definirse como una operación en el proyecto actual. Consulte las instrucciones sobre insertar elementos del proyecto.
La fecha devuelta está en UTC (sin una huso horario específica). Utilizar el ConvertTimeZone
función para convertir a una hora local, como se ve en el siguiente ejemplo.
Advertencia
Esta función se debe usar solo con un solo Agente Privado, ya que no es precisa cuando se usan Agentes en Nube o múltiples Agentes Privados.
Ejemplos¶
$lastOpRun = GetLastOperationRunStartTime("<TAG>Operations/MyOperation</TAG>");
// Converting to a local time zone
$lorInMyTimeZone = ConvertTimeZone($lastOpRun,"UTC","CST");
GetName
¶
Declaración¶
string GetName(type arg)
Sintaxis¶
GetName(<arg>)
Parámetros Requeridos¶
arg:
Una variable o variable global
Descripción¶
Devuelve el nombre de una variable o una variable global.
Ciertas 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 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. Para ser utilizado con un solo Agente solamente.
El resultado se devuelve como una matriz de matrices, con estos elementos en cada submatriz:
- 0: GUID de operación (cadena)
- 1: El
IsExecuting
bandera (booleano) - 2: Marca de tiempo (fecha) de cuándo se agregó la operación a la cola
- 3: Segundos en estado actual (entero)
- 4: GUID de instancia de operación (cadena)
- 5: Nombre de la operación (cadena)
El argumento de la etiqueta de operación es opcional. Si el argumento de la etiqueta de operación está presente, solo se devolverán las entradas de la cola para esa operación en particular. Consulte las instrucciones sobre insertar elementos del proyecto.
Advertencia
Esta función se debe usar solo con un solo Agente Privado, ya que no es precisa cuando se usan Agentes en Nube o múltiples Agentes Privados.
Ejemplos¶
// 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
¶
Declaración¶
string GetServerName()
Sintaxis¶
GetServerName()
Descripción¶
Devuelve el nombre de la máquina en la que se está ejecutando 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 Requeridos¶
arg:
Un argumento para evaluar para ver si es nulo o una cadena vacíadefault
: Valor predeterminado para devolver si arg 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 Requeridos¶
arg:
Un argumento a evaluar para ver si es nulodefault
: Valor predeterminado para devolver si arg 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 Requeridos¶
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 configurar el contador; el valor predeterminado es 0
Descripción¶
Inicializa un contador, opcionalmente pasando un valor inicial. Para ser utilizado con un solo Agente solamente.
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 debe llamarse solo en contextos de subproceso único. Llamar a este método en un contexto de subprocesos múltiples dará como resultado un error. Consulte también las Consideraciones al fragmentar.
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 Requeridos¶
x:
Un elemento para ser comparado para un partido
Parámetros Opcionales¶
arg1...argN:
Una serie de argumentos quex
debe compararse con
Descripción¶
cheques para x
en la lista de argumentos (arg1
a través de argN
). Si se encuentra una coincidencia (por valor), esta función devolverá un número entero que representa la posición de la coincidencia en la lista, con la primera posición en la lista representada por el número 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 Requeridos¶
x:
Un elemento a evaluar
Descripción¶
Devuelve verdadero si el argumento es de tipo entero o largo o se puede convertir a entero o largo sin 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 Requeridos¶
x:
Un elemento a evaluar
Descripción¶
Devuelve verdadero si el argumento es nulo. Se aplica a los campos, variables y funciones de la base de datos que pueden devolver valores nulos.
Véase también el IfNull
y IfEmpty
funciones para accesos directos 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 Requeridos¶
x:
Un elemento a evaluar
Descripción¶
Devuelve verdadero si la evaluación del argumento resulta sin errores.
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 Requeridos¶
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:
- cadena: se devuelve la longitud de la cadena
- matriz: se devuelve el número de elementos de la matriz
- datos binarios: se devuelve el número 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 Requeridos¶
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 e incluyendo los valores mínimo y máximo dados. Véase también el 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 Requeridos¶
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 dada. De forma predeterminada, la función utiliza caracteres alfanuméricos; el conjunto que incluye a-z, A-Z y 0-9. Véase también el 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 Requeridos¶
arrayString
: Una representación 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 única o multidimensional.
La matriz se representa encerrando los elementos de la matriz con un par de corchetes ({
y }
). Cada elemento de la matriz puede ser una matriz o un elemento escalar separados por comas (,
). Los elementos de un arreglo deben ser todos escalares o todos arreglos.
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, tabuladores, saltos de línea o retornos de carro). Dentro de la cadena entre comillas dobles, cada comilla doble debe estar separada por dos comillas dobles. El segundo argumento opcional es 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 reinicia a 0 cada vez que se inicia un nuevo ciclo.
Nota
Este método ha quedado obsoleto y es posible que se elimine en una versión futura.
Usar SourceInstanceCount()
o TargetInstanceCount()
en cambio. TargetInstanceCount()
es equivalente a este método.
Ejemplos¶
RecordCount
devuelve un valor de 5 al generar 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:
Indicador para indicar si la operación debe ejecutarse de forma síncrona (predeterminada) o asíncrona
Descripción¶
Vuelve a ejecutar la operación actual.
El comportamiento de este método con respecto al valor devuelto y las variables globales es idéntico al RunOperation
función. Consulte esa función para obtener una descripción de cómo volver a ejecutar la operación de forma síncrona o asíncrona afecta las variables globales globales.
Advertencia
Dado que esta es una llamada recursiva, es esencial que haya una condición de parada, que probablemente incluya la CancelOperation
función. De lo contrario, terminará en un bucle infinito de llamadas de 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 Requeridos¶
operationId:
Un ID de operación en el proyecto actual. Consulte las instrucciones sobre insertar elementos del proyecto.
Parámetros Opcionales¶
runSynchronously:
Indicador para indicar si la operación debe ejecutarse de forma síncrona (predeterminada) o asíncrona
Descripción¶
Ejecuta una operación de forma sincrónica o asincrónica, siendo sincrónica la opción predeterminada.
Corriendo Sincrónicamente¶
Si run_synchronously=true
la operación llamada y cualquier operación de éxito/fallo se ejecutarán dentro de la operación actual y la operación actual esperará a que finalice toda la cadena de operación. Todas las variables globales son heredadas por la operación llamada 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. Devoluciones false
si la operación llamada resultó en una falla.
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 las operaciones anteriores. Todas las variables globales son heredadas por la operación llamada, pero los cambios en esas variables no se reflejarán en la operación actual. La operación actual continuará ejecutándose independientemente de la operación llamada y no hay garantía de qué operación terminará primero. Devoluciones 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 cualquier cambio en las variables no se refleje en ninguna otra operación.
Si la función devuelve false
para indicar una falla o si la operación llamada no se pudo poner en cola, llame GetLastError
para recuperar el mensaje de error.
Ejemplos¶
// Runs the "MyOperation"
RunOperation("<TAG>MyProject/Operations/MyOperation</TAG>");
RunOperationFromProject
¶
Declaración¶
bool RunOperationFromProject(string operationId[, bool runSynchronously])
Sintaxis¶
RunOperationFromProject(<operationId>[, <runSynchronously>])
Parámetros Requeridos¶
operationId:
Un ID de operación en un proyecto diferente implementado en el mismo ambiente que el proyecto actual.
Parámetros Opcionales¶
runSynchronously:
Indicador para indicar si la operación debe ejecutarse de forma síncrona (predeterminada) o asíncrona
Descripción¶
Ejecuta una operación de forma sincrónica o asincrónica, siendo sincrónica la opción predeterminada. Esta función, disponible a partir de versión 8.22, le permite ejecutar operaciones desde diferentes proyectos que están ubicados y ya implementados dentro del mismo ambiente que su proyecto actual. Esta función funciona de manera similar a la RunOperation
función.
Obtención del ID de la Operación¶
Para obtener el ID de operación de la operación en el otro proyecto (denominado proyecto remoto), primero debe desplegar el proyecto remoto en el mismo ambiente que el proyecto actual.
Luego, usando el Business Analyst modo de Design Studio, inserte esta función en su secuencia de comandos. El asistente que aparece le pedirá el proyecto que le gustaría usar y luego le permitirá seleccionar una de sus operaciones implementadas actualmente. Luego creará una ruta adecuada y la insertará como ID. Consulte también las instrucciones sobre insertar elementos del proyecto.
Variables Globales¶
Las variables globales establecidas en el proyecto remoto se pueden heredar, dependiendo de si la operación remota se ejecuta de forma síncrona o no. Como se describe en la siguiente sección, si se ejecutan sincrónicamente, la cadena de operación llamada hereda las variables globales y cualquier cambio en las variables globales se reflejará en la operación actual. Esto permite que un proyecto remoto se comunique con la operación de llamada.
Con el modo asíncrono, estas variables globales se pasan a la operación remota por valor en lugar de por referencia, lo que garantiza que cualquier cambio en las variables no se refleje en la operación actual.
Corriendo Sincrónicamente¶
Para runSynchronously=true
, la operación 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 llamadas. Todas las variables globales son heredadas por la cadena de operación llamada 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. Devoluciones false
si la operación llamada resultó en una falla.
Para runSynchronously=false
, este método coloca una operación en la cola de procesamiento de Jitterbit para que se procese una vez que se hayan procesado las operaciones anteriores. Todas las variables globales son heredadas por la cadena de operación llamada, pero los cambios en esas variables no se reflejarán en la operación actual. La operación actual continuará ejecutándose independientemente de la cadena de operación llamada y no hay garantía de qué operación terminará primero. Devoluciones false
si la operación no se pudo agregar a la cola.
Si la función devuelve false
para indicar un error o si la operación no se pudo poner en cola, llame GetLastError
para recuperar el mensaje de error.
Nota
La operación en el proyecto externo ya debe haberse implementado desde ese proyecto para poder usarse en un RunOperationFromProject
función en su proyecto actual.
Ejemplos¶
// Runs the "MyOperation" in the default mode of synchronously
RunOperationFromProject("<TAG>Project/MyProject/Operations/MyOperation</TAG>");
RunPlugin
¶
Declaración¶
bool RunPlugin(string pluginId)
Sintaxis¶
RunPlugin(<pluginId>)
Parámetros Requeridos¶
pluginId:
Una ID de complemento en el proyecto actual. Consulte las instrucciones sobre insertar elementos del proyecto.
Descripción¶
Ejecuta un complemento específico y luego continúa con la ejecución del secuencia de comandos actual. Si se instalan varias versiones de un complemento en un agente, se utiliza la versión más alta disponible.
En la interfaz de usuario de Design Studio, solo se muestran los complementos que se pueden ejecutar dentro de un secuencia de comandos ; los complementos que se ejecutan en fuentes, destinos y llamadas a servicios web están ocultos. Consulte las instrucciones sobre insertar elementos del proyecto.
Devoluciones true
si el complemento se completa sin errores. Devoluciones false
si el complemento no se pudo ejecutar o la implementación del complemento en sí devolvió un error. Llamar GetLastError
para recuperar el mensaje de error.
Ejemplos¶
// Runs the Jitterbit HMACSHA256Generator plugin
RunPlugin("<TAG>plugin:http://www.jitterbit.com/plugins/pipeline/user/HMACSHA256Generator</TAG>");
RunScript
¶
Declaración¶
string RunScript(string scriptId[, type var1, type var2, ..., type varN])
Sintaxis¶
RunScript(<scriptId>[, <var1>, <var2>, ..., <varN>])
Parámetros Requeridos¶
scriptId:
Un ID de secuencia de comandos en el proyecto actual. Consulte las instrucciones sobre insertar elementos del proyecto.
Parámetros Opcionales¶
var1...varN:
Variables adicionales, para pasar al secuencia de comandos que se llama
Descripción¶
Ejecuta el secuencia de comandos especificado y luego continúa con 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.
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 cadena equivalente. Los valores nulos se devuelven como un vacío string
. Las matrices se devuelven como string
; si contienen valores escalares, se pueden convertir en una matriz usando 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 de JavaScript, no se le pasará ningún argumento. Cualquier argumento incluido en la llamada a 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; esas son variables precedidas por un $
símbolo. Estos valores pueden estar disponibles dentro del secuencia de comandos de JavaScript usando el Jitterbit.GetVar
función.
Ejemplos¶
// 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
¶
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 Requeridos¶
name:
El nombre de una variable global, ya sea un escalar o una matrizvalue:
Un valor a 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 el complementario 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 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 las formas segunda y tercera, 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 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
funcionan como Length($array)
.
Los arreglos están indexados a cero; el primer elemento está en el índice 0 y el último elemento (de la matriz $array
) está en el índice [Length($array)-1]
. Los arreglos se pueden crear con el Array
o ReadArrayString
funciones
Intentar establecer un elemento más allá del final de la matriz dará como resultado que se agreguen elementos adicionales de valor nulo a la matriz según sea necesario para rellenar la matriz al 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 usar en la creación de variables globales cuyo valor es único para un fragmento en particular, y luego puede identificar ese fragmento cuando se crea un nombre de archivo o registro en un destino. Véase también el GetChunkDataElement
y SetChunkDataElement
funciona como un método alternativo que permite el uso de otros nombres de variables.
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 Requeridos¶
name
: El nombre de la variable de fragmentovalue:
El valor para establecer la variable de fragmento en
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 el 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 Requeridos¶
seconds:
El número entero de segundos para suspender la operación actual
Descripción¶
Hace que la ejecución se suspenda durante un número específico 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 asignación.
Cuando la primera instancia de origen se utiliza como generador, se devuelve 1, luego 2 y así sucesivamente.
Véase también el TargetInstanceCount
función.
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 se generará o no la instancia de destino actual.
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á 0, 1 y así sucesivamente.
Véase también el 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 Requeridos¶
operationID:
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 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 el procesamiento paralelo y luego esperar a que finalicen todas.
La operación utilizada en esta llamada de función debe definirse como una operación en el proyecto actual. Consulte las instrucciones sobre insertar elementos del proyecto.
Nota:
- Para cada operación (identificada por su
operationID
) que se va a esperar, se debe realizar una llamada a este método. - Instancias de operación que se agregan (por llamadas a la
RunOperation
función) después de realizar esta llamada no se esperan. - El usuario actual necesita 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 de 1 hora (3600 segundos) y si todas las operaciones no han finalizado dentro de 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 usando el 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 será un impacto significativo en el rendimiento, pero si se espera que sus 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>Operations/Process One Message</TAG>", false);
i++;
);
WaitForOperation("<TAG>Operations/Process One Message</TAG>");