管理存储查询

执行本任务的原因和时间

存储查询是指存储在数据库中并由名称标识的查询。虽然查询定义存储在数据库中,但存储查询中包含的项是在它们被查询时以动态方式组装的。所有存储查询都可供任何人访问。但是,仅当您具有业务流程管理员或任务管理员权限时,才能创建和删除这些存储查询。您可以使用业务流程对象或任务对象的存储查询,也可以同时使用这两种对象类型的存储查询。

本任务的步骤

  1. 创建存储查询。

    例如,以下代码段为流程实例创建查询并使用特定的名称来保存该查询。

    process.createStoredQuery("CustomerOrdersStartingWithA",
                 "DISTINCT PROCESS_INSTANCE.PIID, PROCESS_INSTANCE.NAME",
                 "PROCESS_INSTANCE.NAME LIKE 'A%'",
                 "PROCESS_INSTANCE.NAME",
                  null,null); 

    此查询返回所有以字母 A 开头的流程实例名及其相关流程实例标识(PIID)的有序列表。

  2. 运行由存储查询定义的查询。
    QueryResultSet result = process.query("CustomerOrdersStartingWithA",
                   new Integer(0));
    此操作返回满足条件的对象。在本例中,此操作返回所有以 A 开头的客户订单。
  3. 可选: 列示可用的存储查询。

    例如,以下代码段说明如何获取流程对象的存储查询列表。

    String[] storedQuery = process.getStoredQueryNames();
  4. 可选: 检查由特定存储查询定义的查询。
    StoredQuery storedQuery = process.getStoredQuery("CustomerOrdersStartingWithA");
    String selectClause = storedQuery.getSelectClause();
    String whereClause = storedQuery.getWhereClause();
    String orderByClause = storedQuery.getOrderByClause();
    Integer threshold = storedQuery.getThreshold();
  5. 删除存储查询。

    以下代码段说明如何删除步骤 1 中创建的存储查询。

    process.deleteStoredQuery("CustomerOrdersStartingWithA");

使用条款 |


(c) Copyright IBM Corporation 2005, 2006.
本信息中心基于 Eclipse 技术(http://www.eclipse.org)。