Variables
Las variables son un tipo especial de componente utilizado para almacenar un resultado de asignación intermedio y poder seguir procesándolo. Las variables pueden ser de tipo simple (p. ej. cadena, entero, valor booleano, etc) o de tipo complejo (estructuras jerárquicas).
Una de las cosas más importantes de las variables es que son secuencias y que pueden utilizarse para crear secuencias. En este sentido el término secuencia significa "una lista de cero o más elementos" (véase Reglas y estrategias de asignación de datos). Esto permite a las variables poder procesar varios elementos durante todo el ciclo de vida de la asignación. No obstante, también puede asignar un valor a una variable una sola vez y conservarlo para el resto de la asignación (véase Cambiar el contexto y ámbito de las variables).
Variables simples
Las variables simples se generan para representar tipos atómicos como cadenas de texto, números y elementos booleanos (imagen siguiente).
Variables complejas
Las variables complejas tienen estructura en forma de árbol. Estas son las estructuras en que pueden basarse las variables complejas.
MapForce Basic Edition:
•Estructura XML Schema
MapForce Professional Edition:
•Estructura XML Schema
•Estructura de BD
MapForce Enterprise Edition:
•Estructura XML Schema
•Estructura de BD
•Estructura EDI
•Estructura FlexText
•Estructura JSON Schema
Ejemplo 1: variable basada en XML Schema
Puede crear una variable de tipo complejo suministrando un esquema XML que exprese la estructura de la variable. Si el esquema define elementos globalmente, podrá elegir cuál de ellos debe ser el nodo raíz de la estructura de la variable. Recuerde que una variable no tiene ningún archivo XML de instancia asociado sino que sus datos se calculan cuando se ejecuta la asignación.
Ejemplo 2: variable basada en una BD
Este ejemplo (imagen siguiente) solo es relevante para las ediciones MapForce Professional y Enterprise. Si elige una estructura de BD para la variable, puede elegir una tabla concreta de la base de datos como elemento raíz de la estructura de la variable.
Compute-when
En las imágenes anteriores observará que cada variable tiene un elemento llamado compute-when. Conectar este elemento es opcional y sirve para controlar cómo se debe calcular el valor de la variable en la asignación (véase Cambiar el contexto y el ámbito de las variables).
Variables simples con entradas duplicadas
Si es necesario, los elementos de la estructura de una variable se pueden duplicar para que acepten datos de más de una conexión de origen, igual que se hace con componentes estándar (véase Duplicar entradas). Sin embargo, esto no se puede hacer en las variables creadas a partir de tablas de BD. En la imagen siguiente puede ver un ejemplo de variable simple con entradas duplicadas.
Variables encadenadas vs. variables
Hasta cierto punto las variables pueden compararse con los componentes intermedios de una asignación en cadena (véase Asignaciones en cadena). Sin embargo, son mucho más flexibles y prácticas cuando no se necesita generar archivos intermedios en cada fase de la asignación. A continuación se explican las diferencias que existen entre las variables y las asignaciones en cadena.
Asignaciones en cadena | Variables |
Las asignaciones en cadena se desarrollan en dos fases totalmente independientes. Por ejemplo, imaginemos que una asignación tiene tres componentes llamados A, B y C. La ejecución de la asignación se desarrolla en dos fases: la ejecución de la asignación desde A hasta B y la ejecución de la asignación desde B hasta C. | Mientras se ejecuta la asignación, las variables se evalúan en función de su contexto y su ámbito. Su contexto y ámbito puede modificarse (véase Cambiar el contexto y ámbito de las variables). |
Cuando se ejecuta la asignación, los resultados intermedios se almacenan de forma externa en archivos.
| Cuando se ejecuta la asignación, los resultados intermedios se almacenan de forma internan. No se producen archivos externos con los resultados de la variable. |
Con el botón de vista previa se puede consultar la vista previa del resultado intermedio. | No se puede consultar la vista previa del resultado de una variable porque éste se calcula en tiempo de ejecución. Sin embargo, se puede usar el depurador para ver los datos generados por la variable (véase Depurar asignaciones). |
Nota: | no se admite el uso de variables si el lenguaje de transformación elegido es XSLT 1.0. |