Execute Permanent Query Based On Its Name

/*
* Execute Permanent Query Based On Its Name
*
* @author David Pech <[email protected]>
*/
evaluate = { widget ->
 
def rs = widget.form.resultSet
def dataTree = rs.dataTree
// get the queries
def queries = dataTree.getQueries()
def DFQueries = queries.getItems()
// set the name of the permanent query you want to execute
// also unique part of the name will work
def queryName = "YourQueryName"
// loop through all of the permanent queries
for (i = 0; i < DFQueries.size(); i++) {
def DFQuery = DFQueries.get(i)
// if the name matches the query name, execute the query
def name = DFQuery.getHandle().getInstance().getName()
if (name.toLowerCase().contains(queryName.toLowerCase())) {
def expression = DFQuery.getExpression()
println "Executed query name: " + name
def rsLock = rs.lockable.withLock('querying') { rsEnv ->
rs.applyQuery(expression, rsEnv)
}
}
}
}