This topic applies only to the IBM Business Process Manager Advanced configuration.

示例:在查询中包含查询属性

本示例说明如何使用 query 方法来检索属于 BPEL 流程的任务。此流程具有定义的您想要搜索的查询属性。

例如,您想要搜索处于就绪状态的属于 BPEL 流程的所有人员任务。此流程具有值为 CID_12345 的查询属性 customerID 和名称空间。下列代码段说明了该查询的 query 方法调用:
 query ( " DISTINCT TASK.TKIID, TASK_TEMPL.NAME, TASK.STATE,  
                    PROCESS_INSTANCE.NAME",
           " QUERY_PROPERTY.NAME = 'customerID' AND " +  
           " QUERY_PROPERTY.STRING_VALUE = 'CID_12345' AND " + 
           " QUERY_PROPERTY.NAMESPACE = 
              'http://www.ibm.com/xmlns/prod/websphere/mqwf/bpel/' AND " +
           " TASK.KIND IN 
              ( TASK.KIND.KIND_HUMAN, TASK.KIND.KIND_PARTICIPATING ) AND " +  
           " TASK.STATE = TASK.STATE.STATE_READY ",
           (String)null, (String)null, (Integer)null, (TimeZone)null );
如果您现在想要将第二个查询属性添加到查询(例如,具有给定名称空间的 Priority),那么该查询的 query 方法调用如下所示:
 query ( " DISTINCT TASK.TKIID, TASK_TEMPL.NAME, TASK.STATE,  
                    PROCESS_INSTANCE.NAME",
           " QUERY_PROPERTY1.NAME = 'customerID' AND " +  
           " QUERY_PROPERTY1.STRING_VALUE = 'CID_12345' AND " + 
           " QUERY_PROPERTY1.NAMESPACE = 
                   'http://www.ibm.com/xmlns/prod/websphere/mqwf/bpel/' AND " +
           " QUERY_PROPERTY2.NAME = 'Priority' AND " +  
           " QUERY_PROPERTY2.NAMESPACE = 
                   'http://www.ibm.com/xmlns/prod/websphere/mqwf/bpel/' AND " +
           " TASK.KIND IN 
              ( TASK.KIND.KIND_HUMAN, TASK.KIND.KIND_PARTICIPATING ) AND " +  
           " TASK.STATE = TASK.STATE.STATE_READY ",
           (String)null, (String)null, (Integer)null, (TimeZone)null );
如果对查询添加多个查询属性,那么必须对所添加的每个属性进行编号,如以上代码段所示。然而,查询定制属性会影响性能;性能将随着查询中的定制属性数量增加而下降。