Jitterbit Script
Introducción
El lenguaje Jitterbit Script se puede utilizar en todo tipo de secuencias de comandos dentro de Harmony, incluso dentro de operaciones y transformaciones. Los Secuencias de Comandos se crean en lenguaje Jitterbit Script de forma predeterminada. Esta página proporciona información específica del lenguaje Jitterbit Script, como sintaxis, tipos de datos, operadores, secuencias de escape y estructuras de control. Consulte también las páginas relacionadas para crear un secuencia de comandos, usando el editor de secuencia de comandos y probando un secuencia de comandos.
Sintaxis
En Jitterbit Script, los secuencias de comandos deben estar encerrados dentro de un <trans>
etiqueta de apertura y </trans>
etiqueta de cierre, a menos que se utilicen funciones que requieran específicamente que se coloque código fuera de estas etiquetas, como varias Funciones de base de datos.
Dentro de esas etiquetas, un Jitterbit Script consta de funciones, variables o lógica integradas para ejecutar, separadas por un punto y coma (;
).
El resultado que se devuelve es el valor devuelto de la última declaración del secuencia de comandos antes del cierre. </trans>
etiqueta.
Comentarios
Dentro de <trans>
... </trans>
etiquetas, el uso de dos barras diagonales //
marca el comienzo de un comentario de una sola línea y afecta el texto hasta el final de esa línea. Los comentarios no forman parte del secuencia de comandos 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 puedes utilizar un comentario 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 Jitterbit Script no incluye declaraciones de control como if
o while
bucles. En su lugar, puede utilizar funciones Jitterbit para lograr la misma funcionalidad.
Ver el Case
, If
, y While
funciones en Funciones lógicas. El Eval
función en Funciones generales se puede utilizar como una declaración "try-catch".
Se permite un máximo de 50.000 iteraciones de bucle para cada bucle individual en Jitterbit Secuencias de Comandos. Para aumentar el número permitido de iteraciones por bucle, consulte jitterbit.scripting.while.max_iterations
en Secuencias de comandos de variables Jitterbit.
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 de lenguaje de programación Perl 5.
<trans>
RegExMatch(<input>,<expression>,...)
</trans>
Secuencias de Escape
Harmony reconoce estas secuencias de escape cuando se usan en cadenas literales:
Secuencia | Definición |
---|---|
\t | Pestaña |
\r | Retorno de carro |
\n | Nueva línea |
Las cadenas literales deben estar entre comillas dobles ("
) o comillas simples ('
).
Cualquier otra comilla debe tener carácter de escape si se usa 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 soportados 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 |
---|---|
+ | Agrega dos números o concatena dos cadenas. Si se agrega 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 tiene prefijo, la asignación precede al incremento. |
+= | Concatena una cadena o agrega números a la variable de destino. Ejemplo: $count+=2 es lo mismo que $count=$count+2 . |
- | Resta dos números. El resultado es de tipo doble. |
-- | Disminuye un valor en 1. Ejemplo: $count--; si tiene prefijo, 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 números enteros, el resultado es un número entero. |
Lógico
Operador | Descripción |
---|---|
& | Operador lógico AND. El resultado es de tipo booleano. && también puede ser usado. Este es siempre un operador de cortocircuito, lo que significa que si el argumento de la izquierda se evalúa como falso, el argumento de la derecha no se evalúa. |
| | Operador lógico OR. El resultado es de tipo booleano. || también puede ser usado. Este es siempre un operador de cortocircuito, lo que significa que si el argumento de la izquierda se evalúa como verdadero, el argumento de la derecha no se evalúa. |
Comparación
Utilice los siguientes operadores para comparar los valores de dos argumentos del mismo tipo de datos:
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 no equivalente. Devuelve verdadero si los argumentos no son iguales. Devuelve falso si son iguales. |
< > <= >= | Operadores de comparación. Devuelve 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:
|
Formación
Operador | Descripción |
---|---|
{ } | Se utiliza para construir una matriz. Ejemplos:
|
Precedencia del Operador
Esta tabla muestra la precedencia de los operadores, de mayor a menor:
Operadores | Descripción |
---|---|
() | Paréntesis para agrupar |
{ } | Tirantes para matrices |
++ -- - | operadores pre y post unarios |
^ | Poder |
! | Negación |
* / | Multiplicación, división |
+ - | Suma, resta |
< > == != <= >= | Operadores de comparación |
& && | Y lógico |
| || | O lógico |
= += -= | Tarea |
Paleta de Componentes
La paleta de componentes de secuencias de comandos proporciona acceso a varios componentes que se pueden utilizar dentro de un secuencia de comandos. Puede usar componentes dentro de una secuencia de comandos arrastrándolos o haciendo doble clic en ellos desde la paleta de componentes, usando la función de autocompletar o escribiendo o pegando manualmente la sintaxis correcta.
Nota
Si un secuencia de comandos llama a otros componentes del proyecto que aún no se han implementado, esos componentes deben desplegarse antes de que pueda ejecutar el secuencia de comandos correctamente.
Puede acceder a la paleta de componentes de secuencias de comandos en el lado derecho del diseñador de proyectos y del editor de secuencia de comandos:
Objetos Fuente
La pestaña Objetos de origen está presente solo para secuencias de comandos creados dentro de una transformación:
Dentro de un secuencia de comandos de transformación, puede hacer referencia a datos de origen insertando la ruta de referencia de un campo, o puede hacer referencia a nodos de datos de origen insertando la ruta de referencia de un nodo. Al insertar la ruta de referencia de un campo en un secuencia de comandos de transformación, se asigna el objeto de origen a un campo de destino (consulte Asignación de objetos de origen). Aunque los nodos no se pueden asignar a campos de destino, se pueden utilizar como argumentos con algunas funciones XML y Diccionario y funciones de matriz. Los nodos también se pueden utilizar para crear condiciones en los nodos de destino (consulte Mapeo condicional).
Para agregar una ruta de referencia de campo o nodo a un secuencia de comandos de transformación ( Jitterbit Script únicamente), utilice uno de estos métodos:
- Arrastre el objeto desde la paleta al secuencia de comandos para insertar la ruta de referencia del objeto.
- Haga doble clic en el objeto en la paleta para insertar la ruta de referencia del objeto en la ubicación del cursor dentro del secuencia de comandos.
- Introduzca manualmente la ruta de referencia al objeto de origen.
Este ejemplo asigna un objeto de origen a una variable global en una asignación 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 campos y nodos, consulte Notación de ruta de referencia en Nodos y campos.
Funciones
La pestaña Funciones proporciona una lista de funciones disponibles para usar en un secuencia de comandos:
Dentro de un secuencia de comandos, puede utilizar funciones insertando la sintaxis de la función.
Para agregar la sintaxis de la función a un secuencia de comandos (Jitterbit Script o JavaScript), utilice uno de estos métodos:
- Arrastre la función desde la paleta al secuencia de comandos para insertar la sintaxis de la función.
- Haga 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 secuencia de comandos. 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.
- Comience a escribir el nombre de la función y luego presione
Control+Space
para mostrar una lista de sugerencias de autocompletar. Seleccione una función para insertar la sintaxis de la función. - Introduzca manualmente la sintaxis de la función.
Para obtener más información, consulte 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 en todo un proyecto, incluidas variables globales, variables del proyecto, y variables de Jitterbit:
Dentro de un secuencia de comandos, puede usar variables insertando la sintaxis de la variable (consulte la documentación para cada tipo de variable en Variables).
Para agregar la sintaxis de la variable a un secuencia de comandos (Jitterbit Script o JavaScript), utilice uno de estos métodos:
- Arrastre la variable desde la paleta al secuencia de comandos para insertar la sintaxis de la variable.
- Haga doble clic en la variable en la paleta para insertar la sintaxis de la variable en la ubicación del cursor dentro del secuencia de comandos.
- Comience a escribir el nombre de la variable y luego presione
Control+Space
para mostrar una lista de sugerencias de autocompletar. Seleccione una variable para insertar la sintaxis de la variable. - Introduzca manualmente la sintaxis de la variable.
Se accede a las variables globales escribiendo un $
firmar antes del nombre de la variable o usando el Set
y Get
funciones.
Los nombres de las variables globales se pueden componer de estos caracteres: letras (a-z, A-Z), números (0-9), puntos y guiones bajos. Otros caracteres, como los guiones, no se recomiendan y pueden causar problemas. (Tenga en cuenta que en el caso de variables locales, tampoco se recomienda el carácter de punto.)
Este ejemplo hace referencia a una variable global usando $
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 usando el Set
y Get
funciones:
<trans>
Set("op2", Get("op"));
</trans>
Tenga en cuenta que para ciertas variables Jitterbit, debido a que incluyen un guión, debe hacer referencia a ellas usando el Set
o Get
funciones:
<trans>
Get("jitterbit.source.http.response.header.Content-Type");
</trans>
Variables locales, aunque no figuran en la pestaña Variables, no aparecen porque no están disponibles globalmente. Sin embargo, aún puedes usarlos localmente dentro de un secuencia de comandos. Las variables locales tienen estas características:
- Una variable local se define y utiliza sólo dentro de un secuencia de comandos específico. Por lo tanto, el conflicto entre el valor de una variable local en el secuencia de comandos actual y el valor de una variable local con el mismo nombre en otro secuencia de comandos no es motivo de preocupación.
- La variable local no puede ser definida ni recuperada por el
Set
oGet
funciones. RunScript
puede pasar argumentos al secuencia de comandos, por ejemplo.RunScript(SCRIPT_ID, 5, "abc",...)
. Los valores en el secuencia de comandos se pueden asignar a variables locales predefinidas._1
,_2
,...
. En este ejemplo,_1
representa el valor entero de5
, mientras_2
representa el valor de la cadena"abc"
. La variable local debe definirse antes de poder hacer referencia a ella, excepto en el caso de los argumentos de entrada._1
,_2
,...
descrito arriba.- El
ArgumentList
la función está 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, consulte Variables.
Complementos
La pestaña Complementos proporciona una lista de complementos que se pueden ejecutar dentro de un secuencia de comandos:
Dentro de un secuencia de comandos, puede utilizar un complemento como argumento para el RunPlugin
función insertando la ruta de referencia del complemento (consulte Complementos llamados en un Secuencia de Comandos).
Para agregar una ruta de referencia de complemento a un secuencia de comandos (Jitterbit Script únicamente), utilice uno de estos métodos:
- Arrastre el complemento desde la paleta al secuencia de comandos para insertar tanto el
RunPlugin
función y la referencia del complemento. - Haga doble clic en el complemento en la paleta para insertar la referencia del complemento en la ubicación del cursor dentro del secuencia de comandos.
- Comience a escribir el nombre del complemento y luego presione
Control+Space
para mostrar una lista de sugerencias de autocompletar. Seleccione un complemento para insertar la referencia del complemento. - Ingrese manualmente la referencia del complemento.
La referencia del complemento está contenida dentro <TAG>
y </TAG>
etiquetas y se construye a partir del tipo de componente del proyecto (plugin
), seguido de dos puntos (:
), seguido del nombre del complemento del manifiesto XML. Este ejemplo utiliza el RunPlugin
función con una referencia al Generador HMAC-SHA1 complemento:
<trans>
RunPlugin("<TAG>plugin:http://www.jitterbit.com/plugins/pipeline/user/HMACSHA1Generator</TAG>");
</trans>
Tenga en cuenta que el nombre del complemento del manifiesto XML no es necesariamente el mismo que el nombre para mostrar en Management Console.
Nota
Solo se enumeran los complementos que están disponibles para usar dentro de un secuencia de comandos. Se pueden aplicar complementos adicionales a una actividad dentro de una operación. Para obtener documentación sobre el uso de complementos, incluido cómo configurar un complemento en el nivel de actividad y establecer variables globales, consulte las secciones en Complementos.
Operaciones
La pestaña Operaciones proporciona una lista de operaciones en el proyecto que están disponibles para hacer referencia en un secuencia de comandos:
Dentro de un secuencia de comandos, puede utilizar 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 secuencia de comandos (Jitterbit Script únicamente), utilice uno de estos métodos:
- Arrastre la operación desde la paleta al secuencia de comandos para insertar tanto el
RunOperation
función y la referencia de operación. - Haga 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 secuencia de comandos.
- Comience a escribir el nombre de la operación y luego presione
Control+Space
para mostrar una lista de sugerencias de autocompletar. Seleccione una operación para insertar la referencia de la operación. - Introducir manualmente la referencia de operación.
La referencia de operación está contenida dentro <TAG>
y </TAG>
etiquetas y se construye a partir del tipo de componente del proyecto (operation
), seguido de dos puntos (:
), seguido del nombre de la operación proporcionado por el usuario. Este ejemplo utiliza el RunOperation
función con una referencia a una operación denominada Mi operación de ejemplo:
<trans>
RunOperation("<TAG>operation:My Example Operation</TAG>");
</trans>
Además de utilizar el RunOperation
función, también puede usar la referencia de operación con otras funciones de la pestaña Funciones que toman la referencia de operación como argumento. Estas incluyen funciones enumeradas en Funciones generales que utilizan un operationInstanceGUID
, operationId
, o operationTag
como parámetro. Por ejemplo:
CancelOperation
GetLastOperationRunStartTime
GetOperationQueue
RunOperation
WaitForOperation
Notificaciones
La pestaña Notificaciones proporciona una lista de notificaciones en el proyecto que están disponibles para consultar en un secuencia de comandos:
Dentro de un secuencia de comandos, puede hacer referencia a una notificación como argumento para SendEmailMessage
funcionan insertando la ruta de referencia de notificación.
Para agregar una ruta de referencia de notificación a un secuencia de comandos (Jitterbit Script únicamente), utilice uno de estos métodos:
- Arrastre la notificación desde la paleta al secuencia de comandos para insertar tanto el
SendEmailMessage
función y la referencia de notificación. - Haga doble clic en la notificación en la paleta para insertar la referencia de notificación en la ubicación del cursor dentro del secuencia de comandos.
- Comience a escribir el nombre de la notificación y luego presione
Control+Space
para mostrar una lista de sugerencias de autocompletar. Seleccione una notificación para insertar la referencia de la notificación. - Introduzca manualmente la referencia de la notificación.
La referencia de la notificación está contenida en <TAG>
y </TAG>
etiquetas y se construye a partir del tipo de componente del proyecto (email
), seguido de dos puntos (:
), seguido del nombre de la notificación correo proporcionado por el usuario. Este ejemplo utiliza el SendEmailMessage
función con una referencia a una notificación correo denominada Mi ejemplo de notificación Correo:
<trans>
SendEmailMessage("<TAG>email:My Example Email Notification<TAG>");
</trans>
Secuencias de Comandos
La pestaña Secuencias de Comandos proporciona una lista de todos los demás secuencias de comandos de componentes independientes del proyecto, escritos en Jitterbit Script o JavaScript - que están disponibles para hacer referencia en un secuencia de comandos:
Dentro de un secuencia de comandos, puede hacer referencia a otro secuencia de comandos como argumento para RunScript
funcionan insertando la ruta de referencia del secuencia de comandos.
Para agregar una ruta de referencia de secuencia de comandos a una secuencia de comandos (Jitterbit Script únicamente), utilice uno de estos métodos:
- Arrastre el secuencia de comandos desde la paleta al secuencia de comandos para insertar tanto el
RunScript
función y la referencia del secuencia de comandos. - Haga doble clic en el secuencia de comandos en la paleta para insertar la referencia del secuencia de comandos en la ubicación del cursor dentro del secuencia de comandos.
- Comience a escribir el nombre del secuencia de comandos y luego presione
Control+Space
para mostrar una lista de sugerencias de autocompletar. Seleccione un secuencia de comandos para insertar la referencia del secuencia de comandos. - Introduzca manualmente la referencia del secuencia de comandos.
La referencia del secuencia de comandos está contenida en <TAG>
y </TAG>
etiquetas y se construye a partir del tipo de componente del proyecto (script
), seguido de dos puntos (:
), seguido del nombre del secuencia de comandos proporcionado por el usuario. Este ejemplo utiliza el RunScript
función con una referencia a un secuencia de comandos llamado Mi script de ejemplo:
<trans>
RunScript("<TAG>script:My Example Script</TAG>");
</trans>
Extremos
La pestaña Extremos proporciona una lista de extremos en el proyecto que están disponibles para hacer referencia en un secuencia de comandos:
Dentro de un secuencia de comandos, puede hacer referencia a extremos como argumento para funciones insertando la ruta de referencia de conexión o actividad.
Para agregar una ruta de conexión o referencia de actividad a un secuencia de comandos (Jitterbit Script o JavaScript), utilice uno de estos métodos:
- Arrastre la conexión o actividad desde la paleta al secuencia de comandos para insertar la referencia adecuada.
- Haga doble clic en la conexión o actividad en la paleta para insertar la referencia adecuada en la ubicación del cursor dentro del secuencia de comandos.
- Comience a escribir el nombre de la conexión o actividad y luego presione
Control+Space
para mostrar una lista de sugerencias de autocompletar. Seleccione una conexión o actividad para insertar la referencia adecuada. - Introducir manualmente la referencia de conexión o actividad.
Los tipos de extremos que se pueden usar dentro de los secuencias de comandos dependen de si hay funciones que admitan tomar el tipo específico de conexión o referencia de actividad como argumento. Las referencias de extremo deben usarse junto con esas funciones para que sean válidas en el secuencia de comandos.
Las conexiones y actividades que se pueden utilizar en el secuencia de comandos aparecen dentro de categorías que enumeran el número de cada elemento disponible en cada categoría. Los nombres de las actividades están precedidos por corchetes que contienen el tipo de interacción con el recurso de datos que es específico del tipo de actividad (por ejemplo, lectura, escritura, consulta, inserción, GET, POST, etc.). Para aparecer aquí, las conexiones y actividades ya deben estar configuradas dentro del proyecto. Por ejemplo, si hay una única conexión HTTP configurada en el proyecto, con dos actividades configuradas usando esa conexión, aparecen agrupadas de la siguiente manera:
Las referencias de conexión están contenidas en <TAG>
y </TAG>
etiquetas y se construyen a partir del tipo de componente del proyecto (endpoint
), seguido de dos puntos (:
), seguido del tipo de extremo, seguido del nombre de conexión proporcionado por el usuario. Por ejemplo:
<TAG>endpoint:database/My Example Database</TAG>
Las referencias de actividades son más largas, ya que en la ruta también se debe incluir la referencia de conexión desde la que están asociadas. Las referencias de actividades están contenidas en <TAG>
y </TAG>
etiquetas y se construyen a partir del tipo de 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 la actividad proporcionado por el usuario. Por ejemplo:
<TAG>activity:database/My Example Database/database_query/Query Employees</TAG>
Dependiendo de la conexión específica o el tipo de actividad que se detalla a continuación, puede usar funciones de la pestaña Funciones que toman una referencia de conector como argumento. Las funciones que se describen a continuación están disponibles para usarse con las conexiones y actividades enumeradas.
Categoría | Descripción | Uso de componentes como parámetros de función |
---|---|---|
Extremos de base de datos | Esta categoría incluye cualquier Base de datos configurada conexiones y actividades asociadas, las cuales se pueden usar en secuencias de comandos dependiendo de la función específica. | Las conexiones de base de datos se pueden utilizar con cualquiera de las funciones enumeradas en Funciones de base de datos que utilizan un databaseId como parámetro, incluyendo:
target como parámetro, incluyendo:
|
Extremos de archivos compartidos Extremos FTP Extremos HTTP Extremos de almacenamiento local Extremos de almacenamiento temporal | Estas categorías incluyen cualquier Archivo compartido configurado, FTP, HTTP, Almacenamiento local y Almacenamiento temporal conexiones (que no se pueden usar en un secuencia de comandos) y actividades asociadas (que se pueden usar en un secuencia de comandos). Nota Aunque también se incluye una categoría API Extremos, API las conexiones y actividades no se pueden utilizar en un secuencia de comandos. | Las actividades incluidas (excepto las actividades API) se pueden utilizar con cualquier función enumerada en Funciones criptográficas, Funciones de base de datos, Funciones de archivo, o Funciones de Salesforce que utilizan un sourceId o targetId como parámetro, incluidos estos:
|
Extremos de Salesforce | Esta categoría incluye cualquier Salesforce configurado conexiones (que se pueden utilizar en un secuencia de comandos). Las actividades de Salesforce no están incluidas, ya que no se pueden utilizar en un secuencia de comandos. | Las conexiones de Salesforce se pueden utilizar con cualquier función enumerada en Funciones de Salesforce que utilizan un salesforceOrg como parámetro, incluyendo:
|
Extremos NetSuite | Esta categoría incluye cualquier NetSuite configurado conexiones (que se pueden utilizar en un secuencia de comandos). Las actividades de NetSuite no están incluidas, ya que no se pueden utilizar en un secuencia de comandos. | Las conexiones NetSuite se pueden utilizar con cualquiera de las funciones enumeradas en Funciones NetSuite que utilizan 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 datos asociado. Se pueden cambiar varios tipos de datos usando las funciones en Funciones de conversión categoría.
Estos tipos de datos son compatibles con Jitterbit Secuencias de Comandos:
Tipo | Descripción | Clasificación |
---|---|---|
binary | Binario | Datos |
bit | Poco | Datos |
bool | booleano | Lógico |
int | Entero | Numérico |
decimal | decimales | Numérico |
double | Doble | Numérico |
float | Flotador | 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 | Matriz | Colección |
dictionary | Diccionario (también conocido como map ) | Colección |
instance | Instancia en un origen o destino de datos | Esquema |
node | Nodo en un esquema de un origen o destino de datos | Esquema |
type | Cualquiera de estos tipos | Datos |
null | Valor nulo | Datos |
var | Referencia de variable, ya sea local o global | Secuencia de Comandos |
Matrices
Una matriz es una colección de variables. Cada miembro de la colección puede ser de cualquier tipo admitido, incluidas las matrices. Se puede acceder a los miembros de una matriz usando el Get
y Set
métodos o utilizando el [] array
sintaxis. Las matrices tienen un índice cero y los índices son numéricos, secuenciales y no se pueden omitir.
También puede crear matrices de variables globales. Una variable global de matriz es una matriz de otras variables globales que a su vez pueden ser matrices.
Establecer una Matriz
Puede establecer valores en una matriz usando el Set
funcionar 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 en valor y devuelve el valor. Si el primer argumento es una matriz o el nombre de una variable global de matriz, puede establecer el valor de una variable de matriz especificando su índice (o índices para matrices multidimensionales) como tercer argumento.
No todos los elementos de una matriz tienen que ser del mismo tipo. Por ejemplo, puede crear una matriz que contenga una fecha, un número entero y una cadena. Incluso puedes crear matrices dentro de otras matrices.
Este ejemplo crea una matriz 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 las matrices tienen un índice cero, el primer elemento está en el índice 0 y el último elemento está en el índice (tamaño-1). Para agregar datos a una matriz, pase un valor de índice negativo o el tamaño de la matriz (Length($arr)
). Configurar un elemento con un índice mayor que el tamaño de la matriz da como resultado un error de índice fuera de rango. La configuración de elementos de datos que no son de matriz también se puede realizar utilizando el $de_name
sintaxis.
A continuación se muestran ejemplos de configuración de valores en una matriz:
// 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 obtener sintaxis adicional que se puede utilizar para definir valores en una matriz, consulte Diccionario y funciones de matriz.
Acceder a una Matriz
Puede acceder a los elementos de una matriz utilizando el Get
método con esta sintaxis:
type Get(string name[, int index1, int index2, ...])
Esto devuelve el valor de la variable global con el nombre de pila. Si el primer argumento es una matriz o el nombre de una variable global de matriz, puede obtener una variable específica especificando su índice (o índices para una matriz multidimensional como un conjunto de registros) como segundo argumento.
Algunas funciones tienen valores de retorno de matriz. Por ejemplo, SelectNodesFromXMLAny
devuelve los resultados de una consultar XPath como una matriz. Como otro ejemplo, DbExecute
devuelve un conjunto de registros como una matriz bidimensional: primero las filas, luego las columnas. Esto devuelve los datos seleccionados como una matriz de matrices (que representan 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>
Las matrices están indexadas a cero. Para acceder a la n:ésima variable de una matriz llamada "arr"
, usar Get("arr", n-1)
. Para matrices multidimensionales, debe especificar todos los índices. Para acceder al n:th
columna de la m:th
fila en una matriz llamada ResultSet
usarías Get("ResultSet", m-1, n-1)
. Intentar obtener una variable más allá del final de la matriz da como resultado un error de matriz fuera de rango.
Estos son ejemplos de cómo recuperar valores de una matriz:
// 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 puede crear primero un secuencia de comandos que genere y devuelva una matriz. El segundo bloque muestra cómo ejecutar ese secuencia de comandos 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 sintaxis adicional que se puede utilizar para acceder a valores en una matriz, consulte Diccionario y funciones de matriz.
Diccionarios
En Jitterbit Script, un diccionario es un tipo especial de matriz de variables globales que contiene pares clave-valor. Los pasos y funciones son:
-
Inicialice el diccionario usando el
Dict
función:$d = Dict();
-
Cargue datos con una clave y un valor:
$d['4011'] = 'Banana'; $d['4063'] = 'Tomato';
-
Compruebe si la clave ya existe en el diccionario usando el
HasKey
función:HasKey($d,'4011'); // Returns true
En el ejemplo, ya hemos cargado la clave '4011', por lo que
HasKey
volveríatrue
.HasKey($d,'4089'); // Returns false
Si la clave aún no estaba cargada, por ejemplo '4089', la clave
HasKey
volveríafalse
. -
Busque el valor en el diccionario pasando la clave y recuperando el valor:
$d['4011']; // Returns 'Banana'
En este ejemplo, el valor devuelto sería
Banana
.
Con los diccionarios, tenga en cuenta estas características:
- El alcance de los diccionarios se limita al flujo de trabajo. Por ejemplo, si una operación carga
$MyDict
con 10.000 registros, sólo aquellas operaciones que están vinculadas utilizando rutas "en caso de éxito" o "en caso de error", o conRunOperation
, tener acceso a ese diccionario. Pero, si una operación utiliza fragmentación de datos y subprocesamiento 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 subprocesos de operación y los concatena en un único conjunto de valores. Esto es cierto para todas las variables o matrices globales. Utilice los valores predeterminados de fragmentación de datos/subprocesamiento al crear una operación que complete diccionarios. - Los diccionarios, debido a que utilizan una búsqueda binaria, son rápidos para encontrar claves y devolver valores. Por lo general, se puede encontrar una clave en cinco o seis intentos. Por el contrario, compare este tipo de búsqueda con recorrer una matriz de 10.000 registros para encontrar una clave.
- Los diccionarios no se escriben en la memoria, por lo que no afectan materialmente la memoria disponible del servidor para su procesamiento.