Filtering data using variables in queries

A query result returns the objects that match the query criteria. You might want to filter these results on the values of variables.

Why and when to perform this task

You can define variables that are used by a process at runtime in its process model. For these variables, you declare which parts can be queried.

For example, John Smith, calls his insurance company's service number to find out the progress of his insurance claim for his damaged car. The claims administrator uses the customer ID to the find the claim.

Steps for this task

  1. Optional: List the properties of the variables in a process that can be queried.

    Use the process template ID to identify the process. You can skip this step if you know which variables can be queried.

    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. List the process instances with variables that match the filter criteria.

    For this process, the customer ID is modeled as part of the variable customerClaim that can be queried. You can therefore use the customer's ID to find the claim.

    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 );
    This action returns a query result set that contains the process instance names and the values of the customer IDs for customers whose IDs start with Smith.
Related reference
QUERY_PROPERTY view

Copyright IBM Corporation 2005, 2006.
This information center is powered by Eclipse technology (http://www.eclipse.org)