Saltar al contenido

Variables Globales

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 Jitterbit) también están disponibles globalmente en todo un proyecto. Se configuran de manera diferente, como se describe en Variables del proyecto y Variables de Jitterbit.)

Las variables globales se declaran primero en una operación, después de lo cual quedan disponibles para ser referenciadas en las mismas operaciones y secuencias de comandos abajo en la cadena. Las operaciones o secuencias de comandos posteriores son aquellas que están vinculadas dentro de una cadena de operación o el RunOperation o RunScript funciones.

Las variables globales también se pueden utilizar como origen o destino dentro de la operación como se describe en Fuente de variable global y Objetivo variable global.

Es posible que desee utilizar variables globales si su caso de uso implica compartir información con partes posteriores de una cadena de operación, como en estos ejemplos:

  • Utilizar un valor creado en una transformación en una transformación posterior. Por ejemplo, es posible que se requiera un ID de sesión (devuelto por un servicio web de inicio de sesión) al llamar a servicios web posteriores para la autenticación.
  • Utilizar un valor creado en una parte de una transformación en una etapa posterior de esa misma transformación. Por ejemplo, un número de registro puede inicializarse e incrementarse para cada registro insertado en un objetivo para identificar su número de artículo.
  • Utilizar 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 se puede utilizar para configurar la URL del servicio web de una llamada de servicio web posterior.

Las variables globales pasan por operaciones encadenadas. Estas incluyen operaciones que están vinculadas a una operación anterior dentro de la cadena de operación mediante eventos On Success o On Failure, así como aquellas que están vinculadas a través del RunOperation() función. 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 Elementos de datos del generador de secuencia de comandos, accesible desde las pantallas de secuencias de comandos y transformaciones.

Crear y Actualizar Variables Globales

En Design Studio, las variables globales se crean o actualizan usando 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 guiones, que pueden causar problemas). Los nombres de variables globales no distinguen entre mayúsculas y minúsculas; una variable llamada GlobalVar se trata igual 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 llamado org.account.filename empieza con org, seguido por account, etc. organizándolo 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 luego podrían usarse en JavaScript) recomendamos usar guiones bajos en lugar de puntos. El uso de puntos en variables globales definidas por el usuario en JavaScript causa problemas en tiempo de ejecución. Se proporciona más información en JavaScript subsección siguiente.

Jitterbit Script

En Jitterbit Script utilizado dentro de secuencias de comandos y transformaciones, una variable global se puede definir comenzando con un signo de dólar $ o llamando al Set() función:

  • $: Usando el signo del dólar $ sintaxis, $ServerURL=URL crea o actualiza una variable global llamada ServerURL con el valor de URL (el nombre de otra variable o el nombre de un campo en una transformación).
  • Set: Utilizando el Set() función, Set("ServerURL", URL) crea o actualiza una variable global llamada ServerURL con el valor de URL (el nombre de otra variable o el nombre de un campo en una transformación).

Javascript

En JavaScript utilizado dentro de secuencias de comandos creado dentro de una operación, la sintaxis utilizada para configurar 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 se puede crear o actualizar usando var $<name> o actualizado simplemente usando $<name> sin var:

    • var $: La expresion var $ServerURL="https://www.example.com/" crea o actualiza una variable global ServerURL con un valor de cadena de https://www.example.com/. Una nueva variable global debe preceder a la $ con var.
    • $: La expresion $ServerURL="https://www.example.com/" actualiza la misma variable global ServerURL con la misma cadena URL. Esto funciona sólo para variables globales que ya existen.
  • El nombre incluye un punto (recomendado solo para variables Jitterbit y valores de objetos de JavaScript): Una variable que contiene puntos en su nombre se puede actualizar o recuperar en JavaScript solo con el Jitterbit.SetVar y Jitterbit.GetVar funciones. Como estas funciones no están destinadas a variables globales definidas por el usuario, consulte Variables de Jitterbit para más información.

    Advertencia

    El JavaScript Jitterbit.SetVar y Jitterbit.GetVar las funciones están diseñadas específicamente para acceder a las variables Jitterbit predefinidas. no deben usarse para acceder a variables globales definidas por el usuario.

Recuperar Valores de Variables Globales en Secuencias de Comandos o Transformaciones

En Design Studio, el valor de una variable global se puede devolver usando Jitterbit Script o JavaScript.

Jitterbit Script

En secuencias de comandos y transformaciones, puedes comenzar con un signo de dólar. $ seguido del nombre de la variable global o utilice el Get() función para recuperar el valor de una variable global:

  • $: Precedido por un signo de dólar $, el ejemplo de código $ServerURL devuelve el valor de la variable global ServerURL.
  • Get: Utilizando el Get() función, el ejemplo de código Get("ServerURL") devuelve el valor de la variable global ServerURL.

Javascript

En los secuencias de comandos 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 expresion $ServerURL recupera el valor de la variable global llamada ServerURL.
  • Nombres con puntos (recomendado solo para variables 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 el Jitterbit.SetVar y Jitterbit.GetVar funciones. Como estas funciones no están destinadas a variables globales definidas por el usuario, consulte Variables de Jitterbit para más información.

    Advertencia

    El JavaScript Jitterbit.SetVar y Jitterbit.GetVar las funciones están diseñadas específicamente para acceder a las variables Jitterbit predefinidas. no deben usarse para acceder a variables globales definidas por el usuario.

    En JavaScript, no mezcle y combine su uso de SetVar (y GetVar) con $-prefijo al configurar (y recuperar) una variable. Utilice sólo una sintaxis. Mezclar dos sintaxis diferentes para la misma variable puede causar problemas en tiempo de ejecución.

    Si falla un JavaScript, se pierden todos los cambios realizados en el valor de una variable global. Sólo si el JavaScript se completa correctamente, los valores de las variables globales modificadas estarán disponibles fuera del secuencia de comandos.

Utilice Variables Globales en las Pantallas de Definición

En una pantalla de definición (como durante la configuración de fuentes o destinos), puede hacer referencia a variables globales utilizando el [GlobalVariableName{DefaultValue}] sintaxis.

Por ejemplo, para proporcionar un valor para la URL de un servidor en una llamada de servicio web, puede utilizar la sintaxis de variable global [ServerURL] en lugar de un valor codificado. El valor asignado a la variable global. ServerURL luego se usaría en tiempo de ejecución.

Para especificar un valor predeterminado, utilice llaves { } inmediatamente después del nombre de la variable global entre corchetes [ ]. Por ejemplo, lo siguiente evaluará el valor de la variable global ServerURL si la variable está definida; si no está definido, http://server/index.asp se utiliza:

[ServerURL{http://server/index.asp}]

En tiempo de ejecución de operación, un valor predeterminado definido en una pantalla de definición se utiliza sólo si el valor de la variable no se ha establecido durante el tiempo de tiempo de ejecución. Esto es diferente durante prueba de secuencia de comandos, donde, como aún no se habrá creado una instancia de ningún valor de secuencia de comandos arriba en la cadena, se utiliza en su lugar cualquier valor predeterminado definido dentro de una pantalla de definición.

Consejo

Cuando se utiliza una variable global en una cláusula WHERE, como dentro de una base de datos o una consultar de Salesforce, recomendamos especificar un valor predeterminado para que sea posible realizar pruebas de secuencia de comandos. De lo contrario, como una variable global obtiene su valor en tiempo de ejecución, durante la prueba la sintaxis puede no ser válida si no se ha especificado ningún valor predeterminado.

Si no desea que se interprete la variable global, utilice una barra invertida "\"para escapar del conjunto de corchetes"[" y "]". Esto puede resultar útil temporalmente durante la prueba. Por ejemplo, la siguiente expresión no utilizará el valor de ServerURL (incluso si está definido) pero en su lugar 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 se interpretará como el inicio de una secuencia de escape si va seguida de un corchete establecido "[" y "]".

Se pueden utilizar 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á definido; de lo contrario \\server\share\"value of Directory" se utilizará.

Para evitar este problema, se recomienda convertir las rutas de los archivos al formato URL (p. ej. C:/directory/path).

Tutoriales Variables Globales

Consulte estas secciones para obtener sugerencias sobre el uso de variables globales en sus proyectos:

Comprobar 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 GlobalVariableNameaún no ha sido definido. Esto se puede utilizar para comprobar si se ha definido una variable global o no.

Establecer y Acceder a Variables de Matriz

Puede crear matrices de variables globales, también conocidas como variables de matriz. Vea Matrices para obtener información sobre cómo configurar y recuperar valores de variables de matriz.