查询结果返回与查询条件匹配的对象。 您可能想根据变量值对这些结果进行过滤。
关于本任务
在其流程模型中,您可以在运行时定义流程使用的变量。 对于这些变量,必须声明可以查询的部件。
例如,John Smith 拨打了保险公司的热线电话,以了解他的车辆受损保险索赔进度。 索赔管理员使用客户标识来查找该项索赔。
过程
- 可选: 列出进程中可查询的变量的属性。
使用流程模板标识来标识流程。 如果您知道可查询变量,那么可以跳过此步骤。
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();
...
}
- 列示具有与过滤器条件匹配的变量的流程实例。
对于此流程,客户标识已建模为可查询的变量 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 的客户的流程实例名和客户标识值。