Criteria Based on Evaluating Values Against the Execution of a Program Object

Kernel where clause evaluation includes the possibility to evaluate a value or set of values against the execution of a JPO.

For example:

MQL> temp query bus Person * * where "VALUE SMATCHLIST program[emxPerson -method 
getStrRolesSymbolicAssigned ${OBJECTID} '${TYPE}'] '|'"

When using this capability there are several factors to consider:

  • If the JPO returns multiple values, then the JPO will return elements with a delimiter that matches the last parameter of the SMATCHLIST statement. (In the example a '|' )
  • If the value you compare against contains multiple clauses, these values are separated into distinct where clause elements. For example:
     temp query bus Person * * where "VALUE1 SMATCHLIST program[emxPerson -method 
    getStrRolesSymbolicAssigned ${OBJECTID} '${TYPE}'] '|' OR VALUE2 SMATCHLIST 
    program[emxPerson -method getStrRolesSymbolicAssigned ${OBJECTID} '${TYPE}'] '|' "
  • VALUE contains wildcard characters.
  • Performance must be profiled for any use case using this technique because it depends on the efficiency of the JPO.