ucReportSetUdfMultiSql
Purpose
ucReportSetUdfMultiSql is used to override the SQL statement used to look up multi-value UDF’s.
Applies To
Search & Reporting screens
Signature
public String ucReportSetUdfMultiSql (
String[] udfName, // database name of the UDF
String sqlStatement, // standard sql statement
String problemKey, // alias for the problem id
String idList,
boolean doTitleMap) // in clause for problem ids
Notes
This can be used to retrieve arbitrary information to display, using the multi value UDF list handling.
Example
public String ucReportSetUdfMultiSql(
String[] udfName, // database name of the UDF
String sqlStatement, // standard sql statement
String itemKeyAlias, // alias for the item id
String idList, // in clause for item ids.
boolean doTitleMap) {
if (udfName == null || udfName.length() == 0)
udfName = "RELATED_ISSUES";
if (!"RELATED_ISSUES".equalsIgnoreCase(udfName) )
return sqlStatement ;
return "select i.item_id " + problemKey + ", '" + udfName
+ "' UDF_NAME, i2.item_id TITLE " +
" from (select item_id from item where item_id in " + idList + ") i,
item i2, " +
" (select item_id, value_number from udf, item_udf " +
" where udf.name = 'PARENT_ID' and item_udf.udf_id = udf.udf_id) iu, " +
" (select item_id, value_number from udf, item_udf " +
" where udf.name = 'PARENT_ID' and item_udf.udf_id = udf.udf_id) iu2" +
// include dummy parameter bind condition which will do nothing
" where ? = '" + udfName + "'" +
// exclude the current bug from the list
" and i2.item_id != i.item_id " +
" and (" +
" (i2.item_id = iu.item_id and iu.value_number
= i.item_id and iu2.item_id
= iu.item_id and iu2.value_number= iu.value_number) " +// direct children
"or (i2.item_id = iu.value_number and iu.item_id
= i.item_id and iu2.item_id = iu.item_id
and iu2.value_number= iu.value_number) " +// parent
"or (i2.item_id = iu2.item_id and iu2.value_number
= iu.item_id and iu.value_number = i.item_id) " + // direct grandchildren
" or (i2.item_id = iu2.item_id and iu2.value_number
= iu.value_number and iu.item_id = i.item_id) " + // peers
" or (i2.item_id = iu2.value_number and iu2.item_id
= iu.value_number and iu.item_id = i.item_id) " + // grandparent
" ) order by " + problemKey + ",UDF_NAME, TITLE" ;
}
return sqlStatement;
}