Saltar al contenido

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í:

Single-Line Comment in Jitterbit Script
<trans>
// This is a comment
DbLookup(...)
</trans>

También puedes utilizar un comentario estilo bloque:

Multi-Line Comment in Jitterbit Script
<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:

!IsNull($org.workorder.id)

Formación

Operador Descripción
{ }

Se utiliza para construir una matriz. Ejemplos:

\(a={"Londres","París","Nueva York"};<br/>\)b={{"John",25},
{"Steve",32},
{"Daniel",26}
};
$c={"\"quoted\"", '"quoted"'};

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:

transacción de objetos fuente

Objetos Fuente

La pestaña Objetos de origen está presente solo para secuencias de comandos creados dentro de una transformación:

objetos de origen de la pestaña

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:

funciones de pestaña

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:

variables de pestaña

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 o Get 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 de 5, 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:

pestaña complementos

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:

operaciones de pestaña

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:

pestaña notificaciones

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:

secuencias de comandos de pestaña

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:

extremos de la pestaña

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:

extremos http

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:
  • CacheLookup
  • CallStoredProcedure
  • DBCloseConnection
  • DBExecute
  • DBLookup
  • DBLookupAll
  • DBRollbackTransaction
  • DBWrite
Las actividades de la base de datos se pueden utilizar con cualquier función enumerada en Funciones de la base de datos que utilizan una base de datos target como parámetro, incluyendo:
  • DBLoad
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:
  • ArchiveFile
  • Base64EncodeFile
  • DBLoad
  • DBWrite
  • DeleteFile
  • DeleteFiles
  • DirList
  • FileList
  • FlushAllFiles
  • FlushFile
  • ReadFile
  • SfLookupAllToFile
  • WriteFile
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:
  • LoginToSalesforceAndGetTimeStamp
  • SalesforceLogin
  • SetSalesforceSession
  • SfCacheLookup
  • SfLookup
  • SfLookupAll
  • SfLookupAllToFile
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:
  • NetSuiteGetSelectValue
  • NetSuiteGetServerTime
  • NetSuiteLogin

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.

Build Array
<trans>
// Script to build and return an array
a = Array();
a[Length(a)] = "A";
a[Length(a)] = "B";
a[Length(a)] = "C";
a;
</trans>
Call Script to Get Array
<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:

  1. Inicialice el diccionario usando el Dict función:

    $d = Dict();
    
  2. Cargue datos con una clave y un valor:

    $d['4011'] = 'Banana';
    $d['4063'] = 'Tomato';
    
  3. 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ía true.

    HasKey($d,'4089'); // Returns false
    

    Si la clave aún no estaba cargada, por ejemplo '4089', la clave HasKey volvería false.

  4. 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 con RunOperation, 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.