本主题仅适用于 IBM Business Automation Workflow Advanced 配置。

在查询中使用变量来过滤数据

查询结果返回与查询条件匹配的对象。 您可能想根据变量值对这些结果进行过滤。

关于本任务

在其流程模型中,您可以在运行时定义流程使用的变量。 对于这些变量,必须声明可以查询的部件。

例如,John Smith 拨打了保险公司的热线电话,以了解他的车辆受损保险索赔进度。 索赔管理员使用客户标识来查找该项索赔。

过程

  1. 可选: 列出进程中可查询的变量的属性。

    使用流程模板标识来标识流程。 如果您知道可查询变量,那么可以跳过此步骤。

    List variableProperties = process.getQueryProperties(ptid);
    for (int i = 0; i < variableProperties.size(); i++)
    {
       QueryProperty queryData = (QueryProperty)variableProperties.get(i);
       String variableName = queryData.getVariableName(); 
       String name         = queryData.getName();
       int mappedType      = queryData.getMappedType(); 
       ...
    } 
                 
  2. 列示具有与过滤器条件匹配的变量的流程实例。

    对于此流程,客户标识已建模为可查询的变量 customerClaim 的一部分。 因此,可以使用客户标识来查找索赔信息。

    QueryResultSet result = process.query
        ("PROCESS_INSTANCE.NAME, QUERY_PROPERTY.STRING_VALUE",
    		   "QUERY_PROPERTY.VARIABLE_NAME = 'customerClaim' AND " + 
    		   "QUERY_PROPERTY.NAME = 'customerID' AND " +
    		   "QUERY_PROPERTY.STRING_VALUE like 'Smith%'",
          (String)null, (Integer)null, 
          (Integer)null, (TimeZone)null );
    
    此操作返回一个查询结果集,该结果集包含起始标识为 Smith 的客户的流程实例名和客户标识值。