En este tema se describe cómo seleccionar una variable para
una acción Extraer en la lista de variables de la ventana Seleccionar
variable
Sugerencia: para crear rápidamente una acción Extraer con una variable configurada correctamente: - Pulse Añadir nueva variable en el panel superior de la
ventana para crear una nueva variable y añadirla a la lista de variables.
- Seleccione la nueva variable.
- Seleccione las opciones de extracción que desee utilizar en el panel inferior de la
ventana.
- Pulse Aceptar.
La ventana crea la acción Extraer y
configura la variable para que coincida con los requisitos de almacenamiento de las
opciones de extracción especificadas (consulte la sección
Configuración automática de la variable seleccionada).
Este tema incluye los subtemas siguientes:
La lista de variables disponibles
La lista de variables disponibles para una nueva acción Extraer se muestra en el panel
superior de la ventana Seleccionar variable.
La lista
incluye todas las variables en el mensaje de variables del flujo actual (el flujo que se
está registrando) que pueden utilizarse con la nueva acción Extraer (dependiendo de las
opciones de extracción especificadas).
Nota: La lista incluye toda variable de tipo serie
que haya utilizado previamente en el flujo actual como una variable Insertar, una
variable Extraer o una variable de bucle.
Las
características relevantes de una variable Extraer son:
- El tipo de variable (variable simple o variable de matriz; consulte la sección
Tipo de variable).
- La cardinalidad de la variable, que se muestra en la segunda columna del panel
superior (consulte la sección Cardinalidad).
- La valor máximo de iteraciones de la variable, que se muestra en la tercera columna
del panel superior, si está registrando actualmente un bucle (consulte la sección
Máximo de iteraciones). No todas las variables tienen esta
característica.
El objetivo de estas características es simplificar la complejidad
relativa de la estructura de datos subyacente de la variable.
Configuración automática de la variable
seleccionada
Para que se realice la configuración automática, la variable
seleccionada en el panel superior de la ventana debe tener las siguientes
características:
- Debe ser una variable simple (es decir, no una variable de matriz ni una estructura
de datos compleja); y
- No debe haberse utilizado previamente en el flujo como la variable de una acción
Extraer, una acción Insertar o una variable de bucle.
Si se cumplen estas
condiciones, cuando pulse Aceptar en la ventana
Seleccionar variable, la ventana configura automáticamente la
variable seleccionada para que coincida con los requisitos de almacenamiento de las
opciones de extracción especificadas en el panel inferior de la ventana (consulte
Sugerencia: para crear rápidamente una acción
Extraer con una variable configurada correctamente).
La configuración
automática de una variable consiste en la modificación (si es necesario) de las
características de la variable seleccionada, incluido el tipo de variable (simple o de
matriz), el valor de cardinalidad y el valor de máximo de iteraciones.
Por
ejemplo, supongamos que las opciones de extracción especifican que el texto se va a leer
en un área rectangular de la pantalla de aplicación que tiene un tamaño de 5 filas por 30
columnas, y que el texto se va a almacenar en una variable de matriz, utilizando una
instancia aparte de la variable para cada iteración de un bucle, con un máximo de 20
iteraciones de bucle. Para alojar estos requisitos, la variable se configura
automáticamente para tener las siguientes propiedades:
- Tipo de datos: una variable de matriz
- Cardinalidad: 5
- Máximo de iteraciones: 20.
Una vez configurada una variable para una
determinada acción Extraer, la configuración es permanente. No obstante, puede reutilizar
la variable con otras acciones Extraer, siempre que las características de la variable
coincidan con los requisitos de las opciones de extracción especificadas.
Nota: En la
configuración automática, las características de la variable (el tipo de variable, la
cardinalidad y el máximo de iteraciones) se establecen cambiando el tipo de datos
subyacente y el tamaño de la variable. En el ejemplo anterior, la variable simple
original es una variable de tipo serie. La configuración se realiza sustituyendo la
variable de tipo serie original por una matriz de matrices de series. La matriz exterior
tiene 20 elementos (máximo de iteraciones) y cada uno de sus elementos es una matriz de 5
elementos de serie (cardinalidad). Consulte
Visualizar la estructura de datos de una variable Extraer.
Las características de la variable deben
coincidir con las opciones de extracción:
La ventana Seleccionar
variable requiere que las características de la variable seleccionada
coincidan exactamente con los requisitos de almacenamiento de las opciones de extracción
especificadas. Si este requisito no se cumple, la ventana mostrará un mensaje de error
donde se describe la falta de coincidencia.
Importante: Esta regla no se aplica si utiliza la característica de configuración automática de la
ventana Seleccionar variable en una nueva variable, o en una
variable que no se ha utilizado previamente en una acción Extraer, en una acción Insertar
o como una variable de bucle en el mismo flujo. La configuración automática establece las
características de la variable para que coincidan con las opciones de extracción
especificadas.
Las características de la variable seleccionada incluyen el
tipo (consulte la sección Tipo de variable), la cardinalidad
(consulte la sección Cardinalidad) y el valor de
máximo de iteraciones, si existe (consulte la sección
Máximo de iteraciones).
A continuación, se proporcionan algunos ejemplos de este tipo
de error:- Error en el tipo de variable: la variable seleccionada es una variable simple (cardinalidad
= 1) y las opciones de extracción requieren una variable de matriz (cardinalidad > 1), o viceversa.
- Error en la cardinalidad: la cardinalidad de la variable de matriz seleccionada no es igual
al número de filas del área rectangular que se va a extraer.
- Error en el máximo de iteraciones: el valor de máximo de iteraciones de la variable no es
igual al valor especificado en el campo Número máximo de iteraciones.
Para obtener una descripción más detallada, consulte
Reutilización de una variable configurada
previamente.
Para resolver este tipo de error:
- Verifique que las opciones de extracción que ha especificado son de hecho las que
desea utilizar.
- Si desea reutilizar una variable configurada previamente, seleccione una variable en
la lista cuyas características coincidan con los requisitos de almacenamiento de las
opciones de extracción.
- De manera opcional, seleccione una variable simple y deje que la ventana configure
automáticamente la variable con las características correctas (consulte la sección
Configuración automática de la variable seleccionada).
Reutilización de una variable configurada previamente:
La
ventana Seleccionar variable protege una variable configurada para
que no se reconfigure en un tipo de variable diferente más adelante en el mismo flujo.
Por lo tanto, se aplican algunas restricciones cuando se selecciona una variable en la
ventana Seleccionar variable para utilizarse en una acción
Insertar, en una acción Extraer o como una variable de bucle, y se ha utilizado
previamente la variable para uno de los mismos tres objetivos en el mismo flujo:
Tipo de variable y cardinalidad: - Si ha utilizado previamente la variable como una variable simple, no podrá
reutilizarla más adelante como una variable de matriz, y viceversa (consulte la sección
Tipo de variable).
- Si ha utilizado previamente la variable con una cardinalidad de un determinado valor
(por ejemplo, 10), no podrá utilizar más adelante la variable con una cardinalidad
diferente (por ejemplo, 9 o 11) (consulte la sección
Cardinalidad).
Tabla 1. Reutilización de una variable en una acción Extraer, en una acción Insertar o
como una variable de bucle: tipo de variable y cardinalidad| Uso anterior: |
El nuevo uso no puede ser: |
- Acción Extraer:
- Extraer un campo en una variable
- Extraer un área en una variable simple
- Acción Insertar
- Variable de bucle
|
|
|
|
- Acción Extraer:
- Extraer un campo en una variable
- Extraer un área en una variable simple
- Acción Insertar
- Variable de bucle
|
- Acción Extraer:
- Variable de matriz con cardinalidad == un valor N
|
- Acción Extraer:
- Variable de matriz con cardinalidad !=N
|
Máximo de iteraciones:- Si ha utilizado previamente una variable para datos no iterativos (consulte
Datos iterativos y datos no
iterativos), no podrá utilizar más adelante la variable para datos iterativos, y
viceversa.
- Si ha utilizado previamente la variable con un determinado valor de máximo de
iteraciones (por ejemplo, 30), no podrá utilizar más adelante la variable
con un número diferente de máximo de iteraciones (por ejemplo, 29 o 31).
Tabla 2. Reutilización de una variable en una acción Extraer, en una acción Insertar o
como una variable de bucle: máximo de iteraciones| Uso anterior: |
El nuevo uso no puede ser: |
- Acción Extraer, datos no iterativos
- Acción Insertar
- Variable de bucle
|
- Acción Extraer, datos iterativos
|
- Acción Extraer, datos iterativos
|
- Acción Extraer, datos no iterativos
- Acción Insertar
- Variable de bucle
|
- Acción Extraer:
- Máximo de iteraciones ==
un valor M
|
- Acción Extraer:
- Máximo de iteraciones !=
M
|
Longitud de las variables: la
ventana Seleccionar variable no requiere que especifique el número de caracteres que puede
contener una variable simple (una variable de tipo serie) o un elemento de una matriz (cada elemento es una serie).
Crear una nueva variable para la lista
Para crear una nueva variable pulsando Añadir nueva variable y
escriba un nombre de variable. La ventana crea una nueva variable simple (de hecho, una
nueva variable de tipo serie; consulte la sección
Tipo de variable) y la añade a la lista de variables
disponibles.
Si una nueva variable o una variable simple no utilizada previamente
es la variable seleccionada cuando pulsa Aceptar, la ventana
configura automáticamente esta variable con las características necesarias para las
opciones de extracción seleccionadas (consulte la sección
Configuración automática de la variable seleccionada).
Tipo de variable
En la ventana
Seleccionar variable, el tipo de una variable puede ser
simple (es decir, no una matriz ni una estructura de datos compleja) o
matriz.
Una variable simple se implementa como una variable de tipo serie. Una variable de matriz se implementa como una matriz de series (consulte la
Tabla 3).
El valor de cardinalidad de una variable indica si el tipo de
la variable es simple o matriz (de nuevo, consulte la Tabla 3).
Tabla 3. Tipo de variable | Tipo de variable: |
Implementada como: |
Cardinalidad: |
| Simple |
Una variable de tipo serie |
1 |
| Matriz |
Una matriz de series |
>1 |
Para
obtener más información sobre la estructura de datos subyacente de las variables Extraer,
consulte la sección Visualizar la estructura de datos de una variable Extraer.
Cardinalidad
La segunda
columna de la ventana Seleccionar variable muestra el valor de
Cardinalidad de cada variable.
La cardinalidad de una
variable es significativa si desea que la acción Extraer lea el texto mostrado en un área
rectangular de la pantalla de aplicación y lo almacene en una variable de matriz. (Cada
fila del texto extraído se escribe en un elemento sucesivo de la matriz, empezando por el
elemento [1].)
El valor de cardinalidad de una variable de matriz indica el número
máximo de filas de texto que puede contener la variable de matriz, que es igual al número
de elementos de matriz de la variable de matriz. Ejemplos:
- Una variable de matriz con una cardinalidad igual a 10 tiene 10 elementos y puede
mantener 10 filas de texto de una acción Extraer.
- Una variable de matriz con una cardinalidad igual a 24 tiene 24 elementos y puede
mantener 24 filas de texto de una acción Extraer.
La ventana muestra un
mensaje de error si la variable seleccionada tiene una cardinalidad (por ejemplo, 10) que
no coincide con el número de filas de texto (por ejemplo, 9 u 11) en el área rectangular
especificada (consulte la sección Configuración automática de la variable seleccionada).
Un uso secundario del valor de cardinalidad de una variable es indicar si la variable es
una variable simple o una variable de matriz (consulte la sección
Tabla 3).
Máximo de iteraciones
La tercera
columna de la ventana Seleccionar variable muestra el valor de
Máximo de iteraciones de cada variable, si la variable posee esta
característica.
Esta columna sólo aparece cuando está registrando un bucle.
El valor de máximo de iteraciones de una variable es significativo cuando selecciona el
recuadro de selección Extraer datos cada iteración del bucle en el
panel inferior de la ventana (consulte la sección
Extraer datos cada iteración del bucle).
La selección de este recuadro de selección indica que en cada iteración del bucle, cuando
se ejecuta la acción Extraer, la acción Extraer escribe el texto extraído en una
instancia aparte de la variable especificada, en lugar de en una instancia individual de
la variable especificada (consulte la sección
Número máximo de iteraciones).
La ventana
muestra un mensaje de error si la variable seleccionada tiene un valor máximo de
iteraciones que no coincide con el valor especificado en el campo Número
máximo de iteraciones de la ventana (consulte las secciones
Las características de la variable deben coincidir con las opciones de extracción: y
Número máximo de iteraciones).
Visualizar la estructura de datos
de una variable Extraer
Las estructuras de datos de los distintos tipos de
variables Extraer se describen en:
Asimismo, puede ver o
modificar la estructura de datos real de una variable en los siguientes contextos:
- El editor de mensajes permite ver, modificar y crear variables en el mensaje de
variables del flujo.
- El editor de correlaciones permite ver y modificar gráficamente las correlaciones
de datos entre las variables de las rutinas de correlación del flujo. Las correlaciones
se utilizan para implementar acciones Extraer, entre otros usos (consulte el tema
Trabajar con correlaciones y transformaciones en el editor de correlaciones).
- También en el editor de correlaciones, la característica Asistencia de
contenido del área de entrada Condición enumera en
ESQL todos los campos accesibles de las variables de origen y destino (consulte el tema
Especificar una condición para una correlación).
Estructura de datos de las variables
Extraer: Caso no iterativo
En este subtema se describe la estructura de datos
de las variables Extraer en el caso "no iterativo", es decir, cuando el recuadro de
selección
Extraer datos cada iteración del bucle está
deseleccionado o no aparece en la ventana
Seleccionar variable. En
este escenario:
- La acción Extraer no está dentro de un registro de bucle; o bien
- La acción Extraer está en un registro de bucle, pero almacena el texto extraído en la
misma instancia de la variable Extraer en cada iteración del bucle.
Tabla 4 describe
las estructuras de datos utilizadas en este caso, según las opciones de Extraer que elija:
Tabla 4. Estructura de datos de las variables
Extraer: Caso no iterativo| Extraer de un campo o área: |
Tipo de variable de destino: |
Cardinalidad: |
Enumeración de los elementos de la variable
utilizando ESQL (ejemplos): |
Texto extraído por la acción Extraer
(ejemplos): |
| Campo |
Variable simple (serie) |
1 |
v_Flow.strName |
'ABC Supplies' |
| Área |
Variable simple (serie) |
1 |
v_Flow.strList |
'ABC Supplies,FGH Papers ,JKL Foods ,NOP Metals '
(con una coma como delimitador entre las filas)
|
| Variable de matriz (matriz de series) |
4 (en este ejemplo) |
v_Flow.arrNames[1]
v_Flow.arrNames[2]
v_Flow.arrNames[3]
v_Flow.arrNames[4]
|
'ABC Supplies'
'FGH Papers '
'JKL Foods '
'NOP Metals '
|
Tal como muestra la tabla, los distintos
requisitos de almacenamiento para una acción Extraer en el caso no iterativo son los siguientes:
El texto extraído de un campo debe almacenarse en una variable simple:
- La variable simple es una variable de tipo serie:
- En general, una variable simple es una variable escalar (no una matriz o una
estructura de datos compleja).
- Para una acción Extraer, la variable simple debe ser una variable de tipo serie.
La
ventana Seleccionar variable no muestra variables simples que no
sean variables de tipo serie.
- Una nueva variable que se crea pulsando Añadir nueva variable
es una variable de tipo serie.
- La cardinalidad de una variable simple es siempre 1.
El texto extraído de un área rectangular de la pantalla de aplicación debe almacenarse en una variable simple o
en una variable de matriz:
- Una variable simple:
- Como en el caso del texto extraído de un campo, una variable simple es una variable
de tipo serie.
- Consulte los comentarios anteriores sobre una variable simple en la descripción del
texto extraído de un campo.
- El texto de un área rectangular se almacena como una serie individual en la variable de
tipo serie.
- Una variable de matriz:
- Una variable de matriz es una matriz de series.
- Cada fila de texto del área rectangular de la pantalla de aplicación se almacena en
un elemento de la variable de matriz, empezando por el elemento [1].
- Cardinalidad:
- El valor de cardinalidad de la variable de matriz es el número de elementos de matriz
que contiene la variable de matriz.
- El valor de cardinalidad de la variable de matriz debe coincidir con el número de
filas de texto en el área rectangular.
Estructura de datos de las variables
Extraer: Caso iterativo
En este subtema se describe la estructura de datos de
las variables Extraer en el caso "iterativo", es decir, cuando el recuadro de selección
Extraer datos cada iteración del bucle está seleccionado en la
ventana Seleccionar variable. En este escenario, la acción Extraer
está en un registro de bucle y está configurada para almacenar el texto extraído en una
instancia aparte de la variable Extraer en cada iteración del bucle.
Tabla 5 describe las estructuras de datos utilizadas en este caso, según las
opciones de Extraer que elija. Observe cómo, en la última columna, los ejemplos de texto muestran sólo el texto
extraído en la primera iteración del bucle:
Tabla 5. Opciones con la acción Extraer: Caso iterativo, suponiendo un máximo de 3
iteraciones de bucleTipo
de
extracción:
|
Tipo de variable de destino: |
Cardinalidad:
|
Máximo de iteraciones: |
Enumeración de los elementos de la variable
utilizando ESQL (ejemplos): |
Texto extraído en la primera iteración del
bucle (ejemplos): |
| Campo |
Un elemento en una matriz de variables de tipo serie |
1 |
3 (ejemplo) |
v_Flow.cd_LOOP[1].cd_DATA
v_Flow.cd_LOOP[2].cd_DATA
v_Flow.cd_LOOP[3].cd_DATA
|
Texto extraído en la primera iteración del bucle y almacenado
en el primer elemento de matriz: 'ABC Supplies'
se almacena en:v_Flow.cd_LOOP[1].cd_DATA
|
| Área |
Un elemento en una matriz de variables de tipo serie |
1 |
3 (ejemplo) |
v_Flow.cd.cd_LOOP[1].cd_DATA
v_Flow.cd.cd_LOOP[2].cd_DATA
v_Flow.cd.cd_LOOP[3].cd_DATA
|
Texto extraído en la primera iteración del bucle y almacenado
en el primer elemento de matriz: 'ABC Supplies,FGH Papers ,JKL Foods ,NOP Metals '
(con una coma como delimitador entre las filas) se almacena en
v_Flow.cd.cd_LOOP[1].cd_DATA
|
| Una matriz de matrices de series |
4 (en este ejemplo) |
3 (ejemplo) |
v_Flow.cd.cd_LOOP[1].cd_DATA[1]
v_Flow.cd.cd_LOOP[1].cd_DATA[2]
v_Flow.cd.cd_LOOP[1].cd_DATA[3]
v_Flow.cd.cd_LOOP[1].cd_DATA[4]
v_Flow.cd.cd_LOOP[2].cd_DATA[1]
v_Flow.cd.cd_LOOP[2].cd_DATA[2]
v_Flow.cd.cd_LOOP[2].cd_DATA[3]
v_Flow.cd.cd_LOOP[2].cd_DATA[4]
v_Flow.cd.cd_LOOP[3].cd_DATA[1]
v_Flow.cd.cd_LOOP[3].cd_DATA[2]
v_Flow.cd.cd_LOOP[3].cd_DATA[3]
v_Flow.cd.cd_LOOP[3].cd_DATA[4]
|
Texto extraído en la primera iteración del bucle y
almacenado en el primer elemento de matriz: 'ABC Supplies'
'FGH Papers '
'JKL Foods '
'NOP Metals '
se almacena env_Flow.cd.cd_LOOP[1].cd_DATA[1]
v_Flow.cd.cd_LOOP[1].cd_DATA[2]
v_Flow.cd.cd_LOOP[1].cd_DATA[3]
v_Flow.cd.cd_LOOP[1].cd_DATA[4]
|
Tal como muestra la tabla, los distintos
requisitos de almacenamiento para una acción Extraer en el caso no iterativo son los siguientes:
Para cada instancia aparte de la variable Extraer, la estructura de datos es la
misma que en el caso no iterativo que se ha descrito en el tema anterior. Es decir:
- El texto extraído de un campo debe almacenarse en una variable simple (una variable
de tipo serie).
- El texto extraído de un área rectangular debe almacenarse:
- En una variable simple (una variable de tipo serie) como una serie individual;
- En una variable de matriz (una matriz de series) que tenga el mismo número de
elementos que el número de filas de texto en el área rectangular.
(Consulte la sección
Estructura de datos de las variables Extraer: Caso no iterativo.)
La variable Extraer es una variable de matriz que contiene todas las instancias
aparte como sus elementos de matriz:
- Para el texto extraído de un campo:
- El texto extraído es el texto contenido en el campo.
- La variable de matriz es una matriz de series.
- Cada elemento de matriz es una serie que contiene el texto extraído del campo en una
iteración del bucle.
- Para el texto extraído de un área rectangular de la pantalla de aplicación:
- Si el texto se almacena en una variable simple:
- El texto extraído es una serie individual de caracteres que contiene todo el texto
del área rectangular.
- La variable de matriz es una matriz de series.
- Cada elemento de matriz es una serie que contiene el texto extraído del área
rectangular en una iteración del bucle.
- Si el texto se almacena en una variable de matriz:
- El texto extraído es una matriz de series, donde cada elemento de la matriz contiene
una fila de texto del área rectangular.
- La variable de matriz es una matriz de matrices de series.
- Cada elemento de matriz es una matriz de series que contiene las filas del texto
extraído del área rectangular en una iteración del bucle.
- Efecto del valor de número máximo de iteraciones de la variable:
- En cada caso, el valor de número máximo de iteraciones de la variable debe ser el
mismo que el valor especificado en el campo Máximo de iteraciones
de la ventana.
- Este valor es:
- El número de iteraciones para las que la variable puede almacenar instancias.
- El número de elementos de la matriz grande.
- El número máximo de iteraciones que podrá ejecutarse el bucle en el tiempo de
ejecución.