Variables globales en Jitterbit Design Studio
Introducción
Las variables globales son uno de los tres tipos de elementos de datos globales disponibles en Harmony. (Los otros dos tipos de elementos de datos globales—variables de proyecto y variables de Jitterbit—también están disponibles globalmente a lo largo de un proyecto. Se establecen de manera diferente, como se describe en Variables de proyecto y Variables de Jitterbit.)
Las variables globales se declaran primero en una operación, después de lo cual se vuelven disponibles para ser referenciadas en las mismas operaciones o en scripts posteriores. Las operaciones o scripts posteriores son aquellos que están vinculados dentro de una cadena de operaciones o las funciones RunOperation
o RunScript
.
Las variables globales también se pueden usar como fuente o destino dentro de la operación, como se describe en Fuente de variable global y Destino de variable global.
Puede que desee usar variables globales si su caso de uso implica compartir información con partes posteriores de una cadena de operaciones, como en estos ejemplos:
- Usar un valor creado en una transformación en una transformación posterior. Por ejemplo, puede ser necesario un ID de sesión (devuelto por un servicio web de inicio de sesión) al llamar a servicios web posteriores para autenticación.
- Usar un valor creado en una parte de una transformación en una etapa posterior de esa misma transformación. Por ejemplo, se puede inicializar y aumentar un número de registro para cada registro insertado en un destino para identificar su número de ítem.
- Usar un valor devuelto en una transformación en la configuración de componentes en operaciones posteriores. Por ejemplo, la configuración de URL devuelta por una transformación puede usarse para establecer la URL del servicio web de una llamada a un servicio web posterior.
Las variables globales se transmiten a través de operaciones encadenadas. Estas incluyen operaciones que están vinculadas a una operación anterior dentro de la cadena de operaciones utilizando eventos de On Success o On Failure, así como aquellas que están vinculadas a través de la función RunOperation()
. Las variables globales también se pueden utilizar dentro de la misma transformación.
Las variables globales definidas están disponibles en la pestaña Data Elements del generador de scripts accesible desde las pantallas de scripts y transformaciones.
Crear y actualizar variables globales
En Design Studio, las variables globales se crean o actualizan utilizando Jitterbit Script o JavaScript.
Nombres de variables globales
Los nombres de las variables globales pueden estar compuestos por caracteres alfanuméricos (las letras a-z y A-Z, y los dígitos 0-9), puntos (.) y guiones bajos (_). (No se recomiendan otros caracteres, como los guiones, ya que pueden causar problemas). Los nombres de las variables globales no son sensibles a mayúsculas; una variable llamada GlobalVar
se trata de la misma manera que globalvar
.
Puede ser una buena práctica utilizar puntos o guiones bajos al definir variables globales para que sean fáciles de encontrar. Por ejemplo, una variable global creada en un Jitterbit Script llamada org.account.filename
comienza con org
, seguida de account
, etc., organizándola efectivamente por dominio cuando está en una lista entre otras variables globales construidas de manera similar. Tenga en cuenta que para las variables globales creadas en JavaScript (o para las variables globales de Jitterbit Script que podrían usarse más tarde en JavaScript) se recomienda utilizar guiones bajos en lugar de puntos. Usar puntos en variables globales definidas por el usuario en JavaScript causa problemas en tiempo de ejecución. Se proporciona más información en la subsección JavaScript a continuación.
Jitterbit Script
En Jitterbit Script utilizado dentro de scripts y transformaciones, una variable global se puede definir comenzando con un signo de dólar $
o llamando a la función Set()
:
$:
Usando la sintaxis del signo de dólar$
,$ServerURL=URL
crea o actualiza una variable global llamadaServerURL
con el valor deURL
(el nombre de otra variable o el nombre de un campo en una transformación).Set:
Usando la funciónSet()
,Set("ServerURL", URL)
crea o actualiza una variable global llamadaServerURL
con el valor deURL
(el nombre de otra variable o el nombre de un campo en una transformación).
JavaScript
En JavaScript utilizado dentro de scripts creados dentro de una operación, la sintaxis utilizada para establecer una variable global depende de si el nombre de la variable global contiene un punto:
-
El nombre no incluye un punto (recomendado): Una variable global que no contiene un punto en su nombre puede ser creada o actualizada usando
var $<name>
o actualizada simplemente usando$<name>
sinvar
:var $
: La expresiónvar $ServerURL="https://www.example.com/"
crea o actualiza una variable globalServerURL
con un valor de cadena dehttps://www.example.com/
. Una nueva variable global debe preceder el$
convar
.$
: La expresión$ServerURL="https://www.example.com/"
actualiza la misma variable globalServerURL
con la misma URL de cadena. Esto solo funciona para variables globales que ya existen.
-
El nombre incluye un punto (recomendado solo para variables de Jitterbit y valores de objetos de JavaScript): Una variable que contiene puntos en su nombre puede ser actualizada o recuperada en JavaScript solo con las funciones
Jitterbit.SetVar
yJitterbit.GetVar
. Como estas funciones no están destinadas a variables globales definidas por el usuario, consulte variables de Jitterbit para más información.Advertencia
Las funciones de JavaScript
Jitterbit.SetVar
yJitterbit.GetVar
están diseñadas específicamente para acceder a las variables de Jitterbit predefinidas. No deben ser utilizadas para acceder a variables globales definidas por el usuario.
Recuperar valores de variables globales en scripts o transformaciones
En Design Studio, el valor de una variable global se puede devolver utilizando Jitterbit Script o JavaScript.
Jitterbit Script
En scripts y transformaciones, se puede comenzar con un signo de dólar $
seguido del nombre de la variable global o usar la función Get()
para recuperar el valor de una variable global:
$
: Antecedido por un signo de dólar$
, el ejemplo de código$ServerURL
devuelve el valor de la variable globalServerURL
.Get
: Usando la funciónGet()
, el ejemplo de códigoGet("ServerURL")
devuelve el valor de la variable globalServerURL
.
JavaScript
En scripts de JavaScript dentro de una operación, la sintaxis utilizada para recuperar una variable global depende de si el nombre de la variable global contiene un punto:
-
El nombre no incluye un punto (recomendado): El valor de una variable global que no contiene un punto en su nombre se puede recuperar comenzando con un signo de dólar
$
:$
: Prefijado con un signo de dólar$
, la expresión$ServerURL
recupera el valor de la variable global llamadaServerURL
.
-
Nombres con puntos (recomendado solo para variables de Jitterbit y valores de objetos de JavaScript): Una variable que contiene un punto en su nombre se puede actualizar o recuperar en JavaScript solo con las funciones
Jitterbit.SetVar
yJitterbit.GetVar
. Como estas funciones no están destinadas a variables globales definidas por el usuario, consulte variables de Jitterbit para más información.Advertencia
Las funciones de JavaScript
Jitterbit.SetVar
yJitterbit.GetVar
están diseñadas específicamente para acceder a las variables de Jitterbit predefinidas. No deben usarse para acceder a variables globales definidas por el usuario.En JavaScript, no mezcles y combines el uso de
SetVar
(yGetVar
) con el prefijo$
al establecer (y recuperar) una variable. Usa solo una sintaxis. Mezclar las dos sintaxis diferentes para la misma variable puede causar problemas en tiempo de ejecución.Si un JavaScript falla, cualquier cambio realizado en el valor de una variable global se pierde. Solo si el JavaScript se completa con éxito, los valores de las variables globales modificadas están disponibles fuera del script.
Usar variables globales en pantallas de definición
En una pantalla de definición (como durante la configuración de fuentes o destinos), puedes hacer referencia a variables globales utilizando la sintaxis [GlobalVariableName{DefaultValue}]
.
Por ejemplo, para proporcionar un valor para una URL de servidor en una llamada a un servicio web, puedes usar la sintaxis de variable global [ServerURL]
en lugar de un valor codificado. El valor asignado a la variable global ServerURL
se utilizará en tiempo de ejecución.
Para especificar un valor predeterminado, usa llaves {
}
inmediatamente después del nombre de la variable global dentro de los corchetes [ ]
. Por ejemplo, lo siguiente evaluará al valor de la variable global ServerURL
si la variable está definida; si no está definida, se utiliza http://server/index.asp
:
[ServerURL{http://server/index.asp}]
En tiempo de ejecución de la operación, un valor predeterminado definido en una pantalla de definición se utiliza solo si el valor de la variable no se ha establecido durante el tiempo de ejecución. Esto es diferente durante la prueba de scripts, donde—como cualquier valor de script anterior aún no se habrá instanciado— se utiliza cualquier valor predeterminado definido dentro de una pantalla de definición en su lugar.
Consejo
Al usar una variable global en una cláusula WHERE, como dentro de una consulta de base de datos o Salesforce, recomendamos especificar un valor predeterminado para que sea posible la prueba de scripts. De lo contrario, como una variable global obtiene su valor en tiempo de ejecución, durante la prueba la sintaxis puede ser inválida si no se ha especificado un valor predeterminado.
Si no desea que la variable global sea interpretada, use una barra invertida "\
" para escapar el conjunto de corchetes "[
" y "]
". Esto puede ser útil temporalmente mientras se prueba. Por ejemplo, la siguiente expresión no utilizará el valor de ServerURL
(incluso si está definido) sino que siempre usará http://server/index.asp
:
\[ServerURL{http://server/index.asp}]
Precaución
Dentro de las rutas de archivo que contienen barras invertidas, una sola barra invertida será interpretada como el inicio de una secuencia de escape si es seguida por un conjunto de corchetes "[
" y "]
".
Se pueden usar barras invertidas adicionales para lograr el resultado deseado. Por ejemplo, \\server\share\\[Directory{testing}]
será interpretado como \\server\share\testing
si la variable Directory
no está definida; de lo contrario, se usará \\server\share\"valor de Directory"
.
Para evitar este problema, se recomienda convertir las rutas de archivo al formato de URL (por ejemplo, C:/directory/path
).
Cómo usar variables globales
Consulte estas secciones para obtener consejos sobre el uso de variables globales en sus proyectos:
Verificar valores nulos o indefinidos
Un elemento de datos global que no ha sido definido se considera que tiene un valor nulo.
Por ejemplo, IsNull(Get("GlobalVariableName"))
devuelve verdadero si una variable global con el nombre GlobalVariableName
no ha sido definida aún. Esto se puede usar para verificar si una variable global ha sido definida o no.
Establecer y acceder a variables de matriz
Puede crear arreglos de variables globales, también conocidos como variables de matriz. Consulte Arreglos para obtener información sobre cómo establecer y recuperar valores de variables de matriz.