This topic applies only to the IBM Business Process Manager Advanced configuration.

Filtros y criterios de selección de tablas de consulta

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 expresionesFiltros 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