Una consulta almacenada es una consulta que se almacena
en la base de datos y se identifica con un nombre.
Aunque las definiciones de consulta almacenadas en la base de datos,
los elementos contenidos en la consulta almacenada se ensamblan de
forma dinámica cuando se consultan.
Todas las consultas almacenadas son de acceso público. Sin embargo, sólo puede
crear y suprimir estas consultas almacenadas si tiene derechos de administrador
de procesos o de administrador de tareas.
Puede tener consultas
almacenadas para objetos de proceso de empresa, objetos de tarea, o una
combinación de estos dos tipos de objetos.
- Crear una consulta almacenada.
Por ejemplo, el fragmento
de código siguiente crea una consulta para instancias de proceso y la guarda
con un nombre específico.
process.createStoredQuery("CustomerOrdersStartingWithA",
"DISTINCT PROCESS_INSTANCE.PIID, PROCESS_INSTANCE.NAME",
"PROCESS_INSTANCE.NAME LIKE 'A%'",
"PROCESS_INSTANCE.NAME",
null,null);
Esta consulta devuelve una
lista ordenada de todos los nombres de instancias de proceso que comienzan por
la letra A y sus ID (PIID) de instancia de proceso asociados.
- Ejecutar la consulta definida mediante la consulta almacenada.
QueryResultSet result = process.query("CustomerOrdersStartingWithA", new Integer(0));
Esta acción devolverá los objetos que cumplan los criterios.
En este caso, todos los pedidos de cliente que empiezan por A.
- Opcional: Listar las consultas almacenadas disponibles.
Por ejemplo, el fragmento de código siguiente muestra cómo obtener una
lista de consultas almacenadas para objetos de proceso:
String[] storedQuery = process.getStoredQueryNames();
- Opcional: Compruebe la consulta definida por una
consulta almacenada específica.
StoredQuery storedQuery = process.getStoredQuery("CustomerOrdersStartingWithA");
String selectClause = storedQuery.getSelectClause();
String whereClause = storedQuery.getWhereClause();
String orderByClause = storedQuery.getOrderByClause();
Integer threshold = storedQuery.getThreshold();
- Suprimir una consulta almacenada.
El siguiente
fragmento de código muestra cómo suprimir la consulta almacenada que creó en el
paso 1.
process.deleteStoredQuery("CustomerOrdersStartingWithA");