Lenguaje de Script de Jitterbit en Studio
Introducción
El lenguaje de Script de Jitterbit se puede utilizar en todo tipo de scripts dentro de Harmony, incluyendo operaciones y transformaciones. Los scripts se crean en el lenguaje de Script de Jitterbit por defecto. Esta página proporciona información específica sobre el lenguaje de Script de Jitterbit, como sintaxis, tipos de datos, operadores, secuencias de escape y estructuras de control. También consulte páginas relacionadas sobre crear un script, usar el editor de scripts y probar un script.
Sintaxis
En el Script de Jitterbit, los scripts deben estar encerrados dentro de una etiqueta de apertura <trans> y una etiqueta de cierre </trans>, a menos que se utilicen funciones que específicamente requieran que el código se coloque fuera de estas etiquetas, como varias funciones de base de datos.
Dentro de esas etiquetas, un Script de Jitterbit consiste en funciones integradas, variables o lógica a ejecutar, separadas por un punto y coma (;).
El resultado que se devuelve es el valor retornado de la última declaración del script antes de la etiqueta de cierre </trans>.
Comentarios
Dentro de las etiquetas <trans> ... </trans>, el uso de dos barras diagonales // marca el inicio de un comentario de una sola línea y afecta el texto hasta el final de esa línea. Los comentarios no son parte del script que se ejecuta ni del resultado transformado.
Por ejemplo, un comentario en una sola línea podría verse así:
<trans>
// This is a comment
DbLookup(...)
</trans>
También se puede usar un comentario de estilo bloque:
<trans>
/* This is a multi-line comment
This line is also a comment
This is the final line of the comment */
DbLookup(...)
</trans>
Estructuras de control
El lenguaje de Script de Jitterbit no incluye declaraciones de control como bucles if o while. En su lugar, se pueden utilizar funciones de Jitterbit para lograr la misma funcionalidad.
Consulte las funciones Case, If y While en Funciones lógicas. La función Eval en Funciones generales se puede utilizar como una declaración de "try-catch".
Se permite un máximo de 50,000 iteraciones de bucle para cada bucle individual en los Scripts de Jitterbit. Para aumentar el número permitido de iteraciones por bucle, consulte jitterbit.scripting.while.max_iterations en Variables de Jitterbit para scripting.
Expresiones regulares
Harmony admite expresiones regulares como medio para especificar y reconocer cadenas de texto, incluidos caracteres, palabras o patrones de caracteres particulares. Harmony admite la sintaxis de expresiones regulares del lenguaje de programación Perl 5.
<trans>
RegExMatch(<input>,<expression>,...)
</trans>
Secuencias de escape
Harmony reconoce estas secuencias de escape cuando se utilizan en cadenas literales:
| Secuencia | Definición |
|---|---|
\t |
Tabulación |
\r |
Retorno de carro |
\n |
Nueva línea |
Las cadenas literales deben estar rodeadas por comillas dobles (") o comillas simples (').
Cualquier otra comilla debe ser escapada si se utiliza en la cadena. Por ejemplo:
$str = "String with line break.\nThat's the last line.";
$str = 'Rob "The Gronk" Gronkowski';
$str = "Rob \"The Gronk\" Gronkowski";
Operadores
Este es un resumen de los operadores admitidos por Jitterbit Script. Jitterbit Script intenta convertir los argumentos para habilitar la operación. Si esto no es posible, se informa un error.
Aritmética
| Operador | Descripción |
|---|---|
+ |
Suma dos números o concatena dos cadenas. Si se suma una cadena a cualquier otra cosa, ambos argumentos se convierten en cadenas. Si ambos argumentos son números, el resultado es de tipo doble. |
++ |
Incrementa el valor en 1. Ejemplo: $count++; si se antepone, la asignación precede al incremento. |
+= |
Concatena una cadena o suma números a la variable objetivo. Ejemplo: $count+=2 es lo mismo que $count=$count+2. |
- |
Resta dos números. El resultado es de tipo doble. |
-- |
Decrementa un valor en 1. Ejemplo: $count--; si se antepone, la asignación precede al decremento. |
-= |
Resta números de la variable objetivo. Ejemplo: $count-=2 es lo mismo que $count=$count-2. |
/ |
Divide dos números. El resultado es de tipo doble. |
* |
Multiplica dos números. El resultado es de tipo doble. |
^ |
Eleva el primer argumento a la potencia del segundo argumento. Si ambos argumentos son enteros, el resultado es un entero. |
Lógico
| Operador | Descripción |
|---|---|
& |
Operador lógico AND. El resultado es de tipo booleano. También se puede usar &&. Este siempre es un operador de cortocircuito, lo que significa que si el argumento de la izquierda evalúa a falso, el argumento de la derecha no se evalúa. |
| |
Operador lógico OR. El resultado es de tipo booleano. También se puede usar ||. Este siempre es un operador de cortocircuito, lo que significa que si el argumento de la izquierda evalúa a verdadero, el argumento de la derecha no se evalúa. |
Comparación
Utiliza los siguientes operadores para comparar los valores de dos argumentos del mismo tipo de dato:
| Operador | Descripción |
|---|---|
= |
Asigna a una variable. El argumento de la derecha se asigna al argumento de la izquierda. |
== |
Operador de equivalencia. Devuelve verdadero si los argumentos son iguales. Devuelve falso si no son iguales. |
!= |
Operador de no equivalencia. Devuelve verdadero si los argumentos no son iguales. Devuelve falso si son iguales. |
<><=>= |
Operadores de comparación. Devuelven verdadero o falso. |
Nota
No se admite la comparación de argumentos de diferentes tipos de datos.
Negación
| Operador | Descripción |
|---|---|
! |
Operador de negación. Convierte un valor verdadero en falso y viceversa. Ejemplo: |
Array
| Operador | Descripción |
|---|---|
{ } |
Se utiliza para construir un array. Ejemplos: |
Precedencia de operadores
Esta tabla muestra la precedencia de los operadores, de mayor a menor:
| Operadores | Descripción |
|---|---|
() |
Paréntesis para agrupar |
{ } |
Llaves para arrays |
++ -- - |
operadores unarios pre y post |
^ |
Potencia |
! |
Negación |
* / |
Multiplicación, división |
+ - |
Suma, resta |
< > == != <= >= |
Operadores de comparación |
& && |
AND lógico |
| || |
OR lógico |
= += -= |
Asignación |
Paleta de componentes
La paleta de componentes de script proporciona acceso a varios componentes que se pueden utilizar dentro de un script. Se pueden usar componentes dentro de un script arrastrándolos o haciendo doble clic en ellos desde la paleta de componentes, utilizando la función de autocompletar, o escribiendo o pegando manualmente la sintaxis correcta.
Nota
Si un script llama a otros componentes del proyecto que aún no se han desplegado, esos componentes deben ser desplegados antes de que se pueda ejecutar el script con éxito.
Puedes acceder a la paleta de componentes de script en el lado derecho del diseñador de proyectos y del editor de scripts:

Objetos de origen
La pestaña Objetos de Origen está presente solo para scripts creados dentro de una transformación.
Dentro de un script de transformación, puedes hacer referencia a los datos de origen insertando la ruta de referencia de un campo, o puedes hacer referencia a los nodos de datos de origen insertando la ruta de referencia de un nodo. Insertar la ruta de referencia de un campo en un script de transformación mapea el objeto de origen a un campo de destino (ver Mapeo de objetos de origen). Aunque los nodos no se pueden mapear a campos de destino, pueden ser utilizados como argumentos con algunas funciones XML y funciones de diccionario y arreglo. Los nodos también se pueden usar para crear condiciones en nodos de destino (ver Agregar lógica condicional).
Para agregar una ruta de referencia de campo o nodo a un script de transformación (Jitterbit Script solamente), utiliza uno de estos métodos:
- Arrastra el objeto desde la paleta al script para insertar la ruta de referencia del objeto.
- Haz doble clic en el objeto en la paleta para insertar la ruta de referencia del objeto en la ubicación del cursor dentro del script.
- Ingresa manualmente la ruta de referencia al objeto de origen.
Este ejemplo asigna un objeto de origen a una variable global en un mapeo de transformación:
<trans>
$org.calculate.operand1=root$transaction.request$body$Calculate$input.Operand1$;
</trans>
Este ejemplo utiliza una ruta de nodo con una función XML:
<trans>
GetXMLString([root$transaction.response$body$queryResponse$result$records.Case$Account$]);
</trans>
Para obtener información sobre cómo se construyen las rutas de referencia de campo y nodo, consulta Notación de ruta de referencia en Conceptos clave.
Funciones
La pestaña Funciones proporciona una lista de funciones disponibles para usar en un script.
Dentro de un script, puedes usar funciones insertando la sintaxis de la función.
Para agregar la sintaxis de la función a un script (Jitterbit Script o JavaScript), utiliza uno de estos métodos:
- Arrastra la función desde la paleta al script para insertar la sintaxis de la función.
- Haz doble clic en la función en la paleta para insertar la sintaxis de la función en la ubicación del cursor dentro del script. Al insertar la sintaxis de la función, el primer argumento de la función se resalta y el cursor se mueve al final del argumento.
- Comienza a escribir el nombre de la función y luego presiona
Control+Spacepara mostrar una lista de sugerencias de autocompletado. Selecciona una función para insertar la sintaxis de la función. - Ingresa manualmente la sintaxis de la función.
Para más información, consulta la documentación de cada función por categoría en Funciones.
Variables
La pestaña Variables proporciona acceso a variables que están disponibles para hacer referencia globalmente a lo largo de un proyecto, incluyendo variables globales, variables de proyecto y variables de Jitterbit.
Dentro de un script, puedes usar variables insertando la sintaxis de la variable (consulta la documentación de cada tipo de variable en Variables).
Para agregar la sintaxis de la variable a un script (Jitterbit Script o JavaScript), utiliza uno de estos métodos:
- Arrastra la variable desde la paleta al script para insertar la sintaxis de la variable.
- Haz doble clic en la variable en la paleta para insertar la sintaxis de la variable en la ubicación del cursor dentro del script.
- Comienza a escribir el nombre de la variable y luego presiona
Control+Spacepara mostrar una lista de sugerencias de autocompletado. Selecciona una variable para insertar la sintaxis de la variable. - Ingresa manualmente la sintaxis de la variable.
Las variables globales se acceden ya sea escribiendo un signo $ antes del nombre de la variable o utilizando las funciones Set y Get.
Los nombres de las variables globales pueden estar compuestos por estos caracteres: letras (a-z, A-Z), números (0-9), puntos y guiones bajos. No se recomiendan otros caracteres, como los guiones, ya que pueden causar problemas. (Tenga en cuenta que en el caso de variables locales, el carácter de punto tampoco se recomienda).
Este ejemplo hace referencia a una variable global utilizando $ para crear un diccionario global:
<trans>
$org.lookup.currency=Dict();
$org.lookup.currency[1]="USD";
$org.lookup.currency[2]="EUR";
</trans>
Este ejemplo asigna una variable global a otra variable global utilizando las funciones Set y Get:
<trans>
Set("op2", Get("op"));
</trans>
Tenga en cuenta que para ciertas variables de Jitterbit, debido a que incluyen un guión, debe hacer referencia a ellas utilizando las funciones Set o Get:
<trans>
Get("jitterbit.source.http.response.header.Content-Type");
</trans>
Las variables locales, aunque no están listadas dentro de la pestaña Variables, no se enumeran porque no están disponibles globalmente. Sin embargo, aún puede usarlas localmente dentro de un script. Las variables locales tienen estas características:
- Una variable local se define y se utiliza solo dentro de un script específico. Por lo tanto, no hay preocupación por el conflicto entre el valor de una variable local en el script actual frente al valor de una variable local con el mismo nombre en otro script.
- La variable local no puede ser definida o recuperada por las funciones
SetoGet. RunScriptpuede pasar argumentos al script, por ejemploRunScript(SCRIPT_ID, 5, "abc",...). Los valores en el script pueden asignarse a variables locales predefinidas_1,_2,.... En este ejemplo,_1representa el valor entero de5, mientras que_2representa el valor de cadena"abc". La variable local debe definirse antes de poder ser referenciada, excepto en el caso de los argumentos de entrada_1,_2,...descritos anteriormente.- La función
ArgumentListestá disponible para redefinir una lista de variables locales como argumentos de entrada.
Para obtener información más detallada sobre cada tipo de variable y ejemplos, consulta Variables.
Plugins
La pestaña Plugins proporciona una lista de plugins que se pueden ejecutar dentro de un script.
Dentro de un script, se puede usar un plugin como argumento para la función RunPlugin insertando la ruta de referencia del plugin (ver Plugins llamados en un script).
Para agregar una ruta de referencia de plugin a un script (solo Jitterbit Script), utiliza uno de estos métodos:
- Arrastra el plugin desde la paleta al script para insertar tanto la función
RunPlugincomo la referencia del plugin. - Haz doble clic en el plugin en la paleta para insertar la referencia del plugin en la ubicación del cursor dentro del script.
- Comienza a escribir el nombre del plugin y luego presiona
Control+Spacepara mostrar una lista de sugerencias de autocompletar. Selecciona un plugin para insertar la referencia del plugin. - Ingresa manualmente la referencia del plugin.
La referencia del plugin está contenida dentro de las etiquetas <TAG> y </TAG> y se construye con el tipo del componente del proyecto (plugin), seguido de dos puntos (:), seguido del nombre del plugin del manifiesto XML. Este ejemplo utiliza la función RunPlugin con una referencia al plugin HMAC-SHA1 generator:
<trans>
RunPlugin("<TAG>plugin:http://www.jitterbit.com/plugins/pipeline/user/HMACSHA1Generator</TAG>");
</trans>
Ten en cuenta que el nombre del plugin del manifiesto XML no es necesariamente el mismo que el nombre de visualización en la Consola de Administración.
Nota
Solo se enumeran los plugins que están disponibles para usar dentro de un script. Se pueden aplicar plugins adicionales en una actividad dentro de una operación. Para obtener documentación sobre el uso de plugins, incluyendo cómo configurar un plugin a nivel de actividad y establecer variables globales, consulta las secciones bajo Plugins.
Operations
El pestaña de Operaciones proporciona una lista de operaciones en el proyecto que están disponibles para hacer referencia en un script.
Dentro de un script, se puede usar una operación como argumento para funciones insertando la ruta de referencia de la operación.
Para agregar una ruta de referencia de operación a un script (Jitterbit Script solamente), utiliza uno de estos métodos:
- Arrastra la operación desde la paleta al script para insertar tanto la función
RunOperationcomo la referencia de la operación. - Haz doble clic en la operación en la paleta para insertar la referencia de la operación en la ubicación del cursor dentro del script.
- Comienza a escribir el nombre de la operación y luego presiona
Control+Spacepara mostrar una lista de sugerencias de autocompletado. Selecciona una operación para insertar la referencia de la operación. - Ingresa manualmente la referencia de la operación.
La referencia de la operación está contenida dentro de las etiquetas <TAG> y </TAG> y se construye con el tipo del componente del proyecto (operation), seguido de dos puntos (:), seguido del nombre de la operación proporcionado por el usuario. Este ejemplo utiliza la función RunOperation con una referencia a una operación llamada My Example Operation:
<trans>
RunOperation("<TAG>operation:My Example Operation</TAG>");
</trans>
Además de usar la función RunOperation, también se puede usar la referencia de la operación con otras funciones de la pestaña de Funciones que toman la referencia de la operación como argumento. Estas incluyen funciones listadas en Funciones generales que utilizan un operationInstanceGUID, operationId o operationTag como parámetro. Por ejemplo:
CancelOperationGetLastOperationRunStartTimeGetOperationQueueRunOperationWaitForOperation
Notificaciones
La pestaña de Notificaciones proporciona una lista de notificaciones en el proyecto que están disponibles para hacer referencia en un script.
Dentro de un script, se puede hacer referencia a una notificación como argumento para la función SendEmailMessage insertando la ruta de referencia de la notificación.
Para agregar una ruta de referencia de notificación a un script (Jitterbit Script únicamente), utiliza uno de estos métodos:
- Arrastra la notificación desde la paleta al script para insertar tanto la función
SendEmailMessagecomo la referencia de notificación. - Haz doble clic en la notificación en la paleta para insertar la referencia de notificación en la ubicación del cursor dentro del script.
- Comienza a escribir el nombre de la notificación y luego presiona
Control+Spacepara mostrar una lista de sugerencias de autocompletado. Selecciona una notificación para insertar la referencia de notificación. - Ingresa manualmente la referencia de notificación.
La referencia de notificación está contenida dentro de las etiquetas <TAG> y </TAG> y se construye con el tipo del componente del proyecto (email), seguido de dos puntos (:), seguido del nombre de la notificación por correo electrónico proporcionado por el usuario. Este ejemplo utiliza la función SendEmailMessage con una referencia a una notificación por correo electrónico llamada My Example Email Notification:
<trans>
SendEmailMessage("<TAG>email:My Example Email Notification<TAG>");
</trans>
Scripts
La pestaña Scripts proporciona una lista de todos los demás scripts de componentes de proyecto independientes en el proyecto — escritos en Jitterbit Script o JavaScript — que están disponibles para hacer referencia en un script.
Dentro de un script, puedes hacer referencia a otro script como un argumento para la función RunScript insertando la ruta de referencia del script.
Para agregar una ruta de referencia de script a un script (Jitterbit Script únicamente), utiliza uno de estos métodos:
- Arrastra el script desde la paleta al script para insertar tanto la función
RunScriptcomo la referencia del script. - Haz doble clic en el script en la paleta para insertar la referencia del script en la ubicación del cursor dentro del script.
- Comienza a escribir el nombre del script y luego presiona
Control+Spacepara mostrar una lista de sugerencias de autocompletado. Selecciona un script para insertar la referencia del script. - Ingresa manualmente la referencia del script.
La referencia del script se encuentra dentro de las etiquetas <TAG> y </TAG> y está construida con el tipo del componente del proyecto (script), seguido de dos puntos (:), seguido del nombre del script proporcionado por el usuario. Este ejemplo utiliza la función RunScript con una referencia a un script llamado My Example Script:
<trans>
RunScript("<TAG>script:My Example Script</TAG>");
</trans>
Endpoints
La pestaña Endpoints proporciona una lista de endpoints en el proyecto que están disponibles para hacer referencia en un script.
Dentro de un script, se pueden referenciar endpoints como un argumento para funciones insertando la ruta de referencia de conexión o actividad.
Para agregar una ruta de referencia de conexión o actividad a un script (Jitterbit Script o JavaScript), utiliza uno de estos métodos:
- Arrastra la conexión o actividad desde la paleta al script para insertar la referencia apropiada.
- Haz doble clic en la conexión o actividad en la paleta para insertar la referencia apropiada en la ubicación del cursor dentro del script.
- Comienza a escribir el nombre de la conexión o actividad y luego presiona
Control+Spacepara mostrar una lista de sugerencias de autocompletado. Selecciona una conexión o actividad para insertar la referencia apropiada. - Ingresa manualmente la referencia de conexión o actividad.
Los tipos de endpoints que se pueden usar dentro de los scripts dependen de si hay funciones que admiten tomar el tipo específico de referencia de conexión o actividad como argumento. Las referencias de endpoints deben usarse en conjunto con esas funciones para ser válidas en el script.
Las conexiones y actividades que se pueden usar en el script aparecen dentro de categorías que enumeran la cantidad de cada elemento disponible bajo cada categoría. Los nombres de las actividades están precedidos por corchetes cuadrados que contienen el tipo de interacción con el recurso de datos que es específico para el tipo de actividad (por ejemplo, Read, Write, Query, Upsert, GET, POST, etc.). Para que aparezcan aquí, las conexiones y actividades deben estar ya configuradas dentro del proyecto. Por ejemplo, si hay una única conexión HTTP configurada en el proyecto, con dos actividades configuradas utilizando esa conexión, aparecerán agrupadas de la siguiente manera:

Las referencias de conexión están contenidas dentro de las etiquetas <TAG> y </TAG> y se construyen con el tipo del componente del proyecto (endpoint), seguido de dos puntos (:), seguido del tipo de endpoint, seguido del nombre de conexión proporcionado por el usuario. Por ejemplo:
<TAG>endpoint:database/Mi Base de Datos de Ejemplo</TAG>
Las referencias de actividad son más largas, ya que la referencia de conexión de la que están asociadas también debe incluirse en la ruta. Las referencias de actividad están contenidas dentro de las etiquetas <TAG> y </TAG> y se construyen con el tipo del componente del proyecto (activity), seguido de dos puntos (:), seguido del tipo y nombre de la conexión, seguido del tipo de actividad, seguido del nombre de actividad proporcionado por el usuario. Por ejemplo:
<TAG>activity:database/Mi Base de Datos de Ejemplo/database_query/Consultar Empleados</TAG>
Dependiendo del tipo específico de conexión o actividad que se enumera a continuación, puedes usar funciones de la pestaña Funciones que toman una referencia de conector como argumento. Las funciones descritas a continuación están disponibles para ser utilizadas con las conexiones y actividades enumeradas.
| Categoría | Descripción | Uso de Componentes como Parámetros de Función |
|---|---|---|
| Endpoints de Base de Datos | Esta categoría incluye cualquier conexión de Base de Datos configurada y actividades asociadas, ambas pueden ser utilizadas en scripts dependiendo de la función específica. | Las conexiones de base de datos pueden ser utilizadas con cualquier función enumerada en Funciones de Base de Datos que utilice un databaseId como parámetro, incluyendo:
target de base de datos como parámetro, incluyendo:
|
| Endpoints de Compartición de Archivos Endpoints de FTP Endpoints de HTTP Endpoints de Almacenamiento Local Endpoints de Almacenamiento Temporal |
Estas categorías incluyen cualquier conexión de Compartición de Archivos, FTP, HTTP, Almacenamiento Local, y Almacenamiento Temporal configurada (que no puede ser utilizada en un script) y actividades asociadas (que pueden ser utilizadas en un script). Nota Aunque también se incluye una categoría de API Endpoints, las conexiones y actividades de API no pueden ser utilizadas en un script. |
Las actividades incluidas (excepto las actividades de API) pueden ser utilizadas con cualquier función enumerada en Funciones Criptográficas, Funciones de Base de Datos, Funciones de Archivos, o Funciones de Salesforce que utilicen un sourceId o targetId como parámetro, incluyendo estas:
|
| Endpoints de Salesforce | Esta categoría incluye cualquier conexión de Salesforce configurada (que puede ser utilizada en un script). Las actividades de Salesforce no están incluidas, ya que no pueden ser utilizadas en un script. | Las conexiones de Salesforce pueden ser utilizadas con cualquier función enumerada en Funciones de Salesforce que utilice un salesforceOrg como parámetro, incluyendo:
|
| Endpoints de NetSuite | Esta categoría incluye cualquier conexión de NetSuite configurada (que puede ser utilizada en un script). Las actividades de NetSuite no están incluidas, ya que no pueden ser utilizadas en un script. | Las conexiones de NetSuite pueden ser utilizadas con cualquier función enumerada en Funciones de NetSuite que utilice un netSuiteOrg como parámetro, incluyendo:
|
Tipos de datos
Todos los objetos de origen y las variables globales que no son nulas tienen un tipo de dato asociado. Varios tipos de datos se pueden cambiar utilizando las funciones en la categoría de Funciones de conversión.
Estos tipos de datos son compatibles en Jitterbit Scripts:
| Tipo | Descripción | Clasificación |
|---|---|---|
binary |
Binario | Datos |
bit |
Bit | Datos |
bool |
Boolean | Lógico |
int |
Entero | Numérico |
decimal |
Decimal | Numérico |
double |
Doble | Numérico |
float |
Flotante | Numérico |
long |
Largo | Numérico |
date |
Fecha | Fecha y Hora |
timespan |
Intervalo de tiempo (Fecha con hora) | Fecha y Hora |
string |
Cadena | Cadena |
array |
Arreglo | Colección |
dictionary |
Diccionario (también conocido como mapa) |
Colección |
instance |
Instancia en una fuente de datos o destino | Esquema |
node |
Nodo en un esquema de una fuente de datos o destino | Esquema |
type |
Cualquiera de estos tipos | Datos |
null |
Valor nulo | Datos |
var |
Referencia de variable, ya sea local o global | Script |
Arreglos
Un arreglo es una colección de variables. Cada miembro de la colección puede ser de cualquier tipo compatible, incluidos los arreglos. Los miembros de un arreglo se pueden acceder utilizando los métodos Get y Set o utilizando la sintaxis [] array. Los arreglos son indexados desde cero, y los índices son numéricos, secuenciales y no se pueden omitir.
Puedes también crear arreglos de variables globales. Una variable global de arreglo es un arreglo de otras variables globales que a su vez pueden ser arreglos.
Establecer un arreglo
Puedes establecer valores en un arreglo utilizando la función Set con esta sintaxis:
type Set(string name, type value [, int index1, int index2, ...])
Esto establece el valor de la variable global con el nombre dado a value, y devuelve el valor. Si el primer argumento es un arreglo o el nombre de una variable global de arreglo, puedes establecer el valor de una variable de arreglo especificando su índice (o índices para arreglos multidimensionales) como el tercer argumento.
No todos los elementos en un arreglo tienen que ser del mismo tipo. Por ejemplo, puedes crear un arreglo que contenga una fecha, un entero y una cadena. Incluso puedes crear arreglos dentro de otros arreglos.
Este ejemplo crea un arreglo con tres variables de diferentes tipos donde cada entrada representa la fecha y hora actuales:
<trans>
$right_now = Now();
Set($now, $right_now, 0);
Set($now, Long($right_now), 1);
Set($now, String($right_now), 2);
</trans>
Como los arreglos son indexados desde cero, el primer elemento está en el índice 0 y el último elemento está en el índice (tamaño-1). Para agregar datos a un arreglo, pasa ya sea un valor de índice negativo o el tamaño del arreglo (Length($arr)). Establecer un elemento con un índice mayor que el tamaño del arreglo resulta en un error de índice fuera de rango. También se pueden establecer elementos de datos no de arreglo utilizando la sintaxis $de_name.
Aquí hay ejemplos de establecer valores en un arreglo:
// Set the n:th entry in an array to the string "value"
Set($arr, "value", n-1);
// Another way to set the n:th entry of an array
Set($arr, "value", Length($arr));
// Sets the value to a new variable at the end of the array
Set($arr, "value", -1);
// Set the n:th entry of the m:th array
Set($record_set, "value", m-1, n-1);
Consejo
Para una sintaxis adicional que se puede utilizar para definir valores en un arreglo, consulta Funciones de diccionario y arreglo.
Acceder a un arreglo
Puedes acceder a los elementos de un arreglo utilizando el método Get con esta sintaxis:
type Get(string name[, int index1, int index2, ...])
Esto devuelve el valor de la variable global con el nombre dado. Si el primer argumento es un arreglo o el nombre de una variable global de arreglo, puedes obtener una variable específica especificando su índice (o índices para un arreglo multidimensional como un conjunto de registros) como el segundo argumento.
Algunas funciones tienen valores de retorno de tipo array. Por ejemplo, SelectNodesFromXMLAny devuelve los resultados de una consulta XPath como un array. Como otro ejemplo, DbExecute devuelve un conjunto de registros como un array bidimensional: filas primero, luego columnas. Esto devuelve los datos seleccionados como un array de arrays (representando las filas y columnas seleccionadas):
<trans>
$resultSet = DbExecute("<TAG>endpoint:database/My Database</TAG>", "select Result from SimpleCalculatorResults");
$firstRow = Get($resultSet, 0);
$thirdColumnOfSecondRow = $resultSet[2][3];
$secondColumnOfThirdRow = Get($resultSet, 3, 2);
</trans>
Los arrays tienen índices que comienzan en cero. Para acceder a la n-ésima variable de un array llamado "arr", usa Get("arr", n-1). Para arrays multidimensionales, necesitas especificar todos los índices. Para acceder a la columna n-ésima de la fila m-ésima en un array llamado ResultSet, usarías Get("ResultSet", m-1, n-1). Intentar obtener una variable más allá del final del array resulta en un error de índice fuera de rango.
Estos son ejemplos de cómo recuperar valores de un array:
// Return the third array variable
Get($arr, 2);
// Another way to return the third array variable
Get("arr", 2);
// Get the n:th variable of the m:th array in arr
Get($arr, m-1, n-1);
Este ejemplo muestra cómo puedes primero crear un script que construya y devuelva un array. El segundo bloque muestra cómo ejecutar ese script y asignar su valor devuelto a una variable.
<trans>
// Script to build and return an array
a = Array();
a[Length(a)] = "A";
a[Length(a)] = "B";
a[Length(a)] = "C";
a;
</trans>
<trans>
// Call the script to retrieve the array
$Arr = RunScript("<TAG>script:Build Array</TAG>");
</trans>
Consejo
Para obtener una sintaxis adicional que se puede usar para acceder a valores en un array, consulta Funciones de diccionario y array.
Diccionarios
En Jitterbit Script, un diccionario es un tipo especial de array de variable global que contiene pares clave-valor. Los pasos y funciones son:
-
Inicializa el diccionario usando la función
Dict:$d = Dict(); -
Carga datos con una clave y un valor:
$d['4011'] = 'Banana'; $d['4063'] = 'Tomato'; -
Verifica si la clave ya existe en el diccionario usando la función
HasKey:HasKey($d,'4011'); // Devuelve trueEn el ejemplo, ya hemos cargado la clave '4011', por lo que
HasKeydevolveríatrue.HasKey($d,'4089'); // Devuelve false
Si la clave no estuviera ya cargada, por ejemplo '4089', el HasKey devolvería false.
-
Busca el valor en el diccionario pasando la clave y obteniendo de vuelta el valor:
$d['4011']; // Devuelve 'Banana'En este ejemplo, el valor devuelto sería
Banana.
Con los diccionarios, ten en cuenta estas características:
- El alcance de los diccionarios está limitado al flujo de trabajo. Por ejemplo, si una operación carga
$MyDictcon 10,000 registros, solo aquellas operaciones que están vinculadas utilizando caminos de "éxito" o "fracaso", o conRunOperation, tienen acceso a ese diccionario. Pero, si una operación utiliza fragmentación y subprocesos, y tiene una transformación que llena un diccionario, el diccionario es inconsistente. Esto se debe a que Harmony no toma los valores asignados a las variables por múltiples hilos de operación y los concatena en un solo conjunto de valores. Esto es cierto para todas las variables o arreglos globales. Usa los valores predeterminados de fragmentación/subprocesos al construir una operación que llena diccionarios. - Los diccionarios, debido a que utilizan una búsqueda binaria, son rápidos para encontrar claves y devolver valores. Una clave generalmente se puede encontrar en cinco o seis intentos. En contraste, compara este tipo de búsqueda con recorrer un arreglo de 10,000 registros para encontrar una clave.
- Los diccionarios no se escriben en memoria, por lo que no impactan materialmente la memoria del servidor disponible para el procesamiento.