Los filtros y los criterios de selección se definen durante el desarrollo de la tabla de consulta
utilizando Query Table Builder, que utiliza una sintaxis similar a las cláusulas WHERE de SQL. Utilice estos
filtros y criterios de selección claramente definidos para especificar las condiciones que se basan en los atributos de las
tablas de consulta.
Para obtener información sobre la instalación de Query Table Builder,
consulte el sitio web de SupportPacs. Busque la sección PA71 WebSphere Process Server - Query Table Builder. Para acceder al enlace, consulte la sección de referencias relacionadas de este tema.
Atributos
Los atributos utilizados en una expresión
hacen referencia a los atributos de tabla de consulta. En función de la ubicación de la expresión, están disponibles distintos atributos. Para el desarrollador
de cliente, los filtros de consulta pasados a la API de tabla de consulta son la única ubicación donde se pueden utilizar expresiones. Para desarrolladores de tablas de consulta compuestas, existen otras varias ubicaciones donde se pueden utilizar expresiones. En la tabla siguiente
se describen los atributos disponibles en las distintas ubicaciones.
Tabla 1. Atributos para expresiones de tabla de consulta| Dónde |
Expresión |
Atributos disponibles |
| API de tabla de consulta |
Filtro de consulta |
- Todos los atributos definidos en la tabla de consulta.
- Si se utiliza autorización basada en instancia, todos los atributos definidos en las tablas
de consulta WORK_ITEM, con el prefijo 'WI.'.
Ejemplos: - STATE=STATE_READY, si la tabla de consulta contiene un atributo STATE y si se ha definido
una constante STATE_READY para este atributo.
- STATE=STATE_READY AND WI.REASON=REASON_POTENTIAL_OWNER,
si la tabla de consulta contiene un atributo STATE y la tabla de consulta utiliza autorización basada en instancia.
|
| Tabla de consulta compuesta |
Filtro de tabla de consulta |
| Filtro de tabla de consulta primaria |
- Todos los atributos definidos para la tabla de consulta primaria.
Ejemplo:- STATE=STATE_READY, si la tabla de consulta contiene un atributo STATE y se ha definido una constante
STATE_READY para este atributo.
|
| Filtro de autorización |
- Todos los atributos definidos en la tabla de consulta predefinida WORK_ITEM,
con el prefijo 'WI.'.
Ejemplo:- WI.REASON=REASON_POTENTIAL_OWNER
|
| Criterio de selección |
- Todos los atributos definidos en la tabla de consulta conectada relacionada.
Ejemplo: - LOCALE='en_US', si la tabla de consulta conectada contiene un atributo LOCALE, como por
ejemplo la tabla de consulta TASK_DESC.
|
| Criterios de selección definidos para tablas de consultas suplementarias (con la opción
optimizeForFiltering habilitada) |
- Todos los atributos definidos en la tabla de consulta suplementaria.
Ejemplo:- VALUE='xyz', si la tabla de consultas suplementaria adjunta contiene un atributo con
este valor.
|
En la figura siguiente se muestran las diversas ubicaciones de filtros y criterios de selección
en expresiones, y se incluyen ejemplos:
Figura 1. Filtros y criterios de selección en expresiones
Expresiones
Las expresiones tienen la sintaxis siguiente:
expression ::= atributo op_binario valor |
atributo op_unario |
atributo op_lista lista |
(expresión) |
expresión AND expresión |
expresión> OR expresión
Se aplican las reglas siguientes:
- AND tiene prioridad sobre OR.
Las subexpresiones se conectan utilizando AND y OR.
- Se pueden utilizar delimitadores para agrupar expresiones y deben estar equilibrados.
Ejemplos:
- STATE = STATE_READY
- NAME IS NOT NULL
- STATE IN (2, 5, STATE_FINISHED)
- ((PRIORITY=1) OR (WI.REASON=2)) AND (STATE=2)
Una expresión se ejecuta en un ámbito determinado que determina los atributos que son válidos
para la expresión. Los criterios de selección, o los filtros de consulta, se ejecutan en el ámbito
de la tabla de consulta en la que se ejecuta la consulta.
La tabla siguiente es para una consulta que se ejecuta en la tabla de consulta TASK predefinida:
'(STATE=STATE_READY AND WI.REASON=REASON_POTENTIAL_OWNER)
OR (WI.REASON=REASON_OWNER)'
Operadores binarios
Están disponibles los siguientes operadores binarios:
op_binario ::= = | < | > | <> | <= | >= | LIKE | NOT LIKE
Se aplican las reglas siguientes:
- El operando del lado izquierdo de un operador binario debe hacer referencia a un atributo de una tabla de consulta.
- El operando del lado derecho de un operador binario debe ser un valor literal, un valor de constante o un parámetro.
- Los operadores LIKE y NOT LIKE son los únicos válidos para atributos
de tipo de atributo STRING.
- El operando del lado izquierdo y el operando del lado derecho deben ser tipos de atributo compatibles.
- Los parámetros de usuario deben ser compatibles con el tipo de atributo del atributo del lado izquierdo.
Ejemplos:
- STATE > 2
- NAME LIKE 'start%'
- STATE <> PARAM(elEstado)
Operadores unarios
Están disponibles los siguientes operadores unarios:
op_unario ::= IS NULL | IS NOT NULL
Se aplican las reglas siguientes:
- El operando del lado izquierdo de un operador binario debe hacer referencia a un atributo de una tabla de consulta. Los atributos
válidos dependen de la ubicación del filtro o criterio de selección.
- Se comprueban todos los atributos para ver si tienen valores nulos, por ejemplo: CUSTOMER
IS NOT NULL.
Ejemplo:
DESCRIPTION IS NOT NULL
Operadores de lista
Están disponibles los operadores de lista siguientes:
op_lista ::= IN | NOT IN
Se aplican las reglas siguientes:
- El lado derecho de un operador de lista no se debe sustituir por un parámetro de usuario.
- Se pueden utilizar parámetros de usuario dentro de la lista del operando del lado derecho.
Ejemplo:
STATE IN (STATE_READY, STATE_RUNNING, PARAM(st), 1)
Las listas se representan de la forma siguiente:
lista ::= valor [, lista]
Se aplican las reglas siguientes:
- El lado derecho de un operador de lista no se debe sustituir por un parámetro de usuario.
- Se pueden utilizar parámetros de usuario dentro de la lista del operando del lado derecho.
Ejemplos:
- (2, 5, 8)
- (STATE_READY, STATE_CLAIMED)
Valores
En expresiones, un valor es uno de los tipos siguientes:
- Constante: un valor de constante, que se define para el atributo
de una tabla de consulta predefinida. Por ejemplo, STATE_READY se
define para el atributo STATE de la tabla de consulta TASK.
- Literal: cualquier valor codificado por el software.
- Parámetro: se sustituye un parámetro cuando la consulta se ejecuta
con un valor específico.
Hay constantes disponibles para algunos atributos de tablas de consulta predefinidas. Para
obtener información sobre las constantes que están disponibles en los atributos de
las tablas de consulta predefinidas, consulte la información sobre las
vistas predefinidas. Sólo las
constantes que definen valores de entero se exponen con las tablas de consulta. Además, en lugar
de constantes, se pueden utilizar valores literales relacionados o parámetros.
Ejemplos:
- STATE_READY en el atributo STATE de la tabla de consulta TASK
se puede utilizar en un filtro para comprobar si la tarea se encuentra en estado preparado.
- REASON_POTENTIAL_OWNER en el atributo REASON de la tabla de consulta
WORK_ITEM se puede utilizar en un filtro para comprobar si el usuario que ejecuta la consulta
contra una tabla de consulta es un propietario potencial.
- El filtro de consulta STATE=STATE_READY es el mismo que STATE=2,
si la consulta se ejecuta en la tabla de consulta TASK.
También se pueden utilizar literales en las expresiones. Se debe utilizar una sintaxis
especial para las indicaciones de fecha y hora y los ID.
Ejemplos:
- STATE=1
- NAME='elNombre'
- CREATED > TS ('2008-11-26 T12:00:00')
- TKTID=ID('_TKT:801a011e.9d57c52.ab886df6.1fcc0000')
Los
parámetros en las expresiones permiten la capacidad de dinamización de tablas de consulta compuestas. Existen
parámetros de usuario y parámetros del sistema:
- Los parámetros de usuario se especifican utilizando PARAM (nombre).
Este parámetro se debe proporcionar cuando se ejecuta la consulta. Se pasa como una
instancia de la clase com.ibm.bpe.api.Parameter a la API de tabla de consulta.
- Los parámetros del sistema son parámetros que se proporcionan en tiempo de ejecución,
sin que se especifiquen cuando se ejecuta la consulta. Están disponibles los parámetros
del sistema $USER y $LOCALE.
- $USER, que es una serie, contiene el valor del usuario que ejecuta la consulta.
- $LOCALE, que es una serie, contiene el valor del entorno local que se utiliza
cuando se ejecuta la consulta. Un ejemplo de valor de $LOCALE es 'en_US'.
Puede especificar un parámetro en los criterios de selección de un tabla de consulta conectada que seleccionada
en un entorno local específico. Por ejemplo, si la tabla de consulta primaria es TASK en una tabla de consulta compuesta y una
tabla de consulta conectada es TASK_DESC. La lista siguiente contiene
ejemplos de parámetros:
- STATE=PARAM(elEstado)
- LOCALE=$LOCALE
- OWNER=$USER