It's all about the answers!

Ask a question

RQM Scorecard Report Widget Error


Irell Carloe Santos (241915) | asked Feb 09 '15, 11:02 p.m.
edited Feb 10 '15, 1:15 a.m. by Geoffrey Clemm (30.1k33035)
Hi,

Kindly help with this error we've encountered.
Halfway in the display of the scorecard widget, an error appears stating:

The following items have errors:

TextData (id = 3729):
+ Cannot execute the statement.
    org.eclipse.datatools.connectivity.oda.OdaException: ORA-01795: maximum number of expressions in a list is 1000

ReportDesign (id = 1):
+ There are errors evaluating script "// Test to see if we are at the end of the results we need to create
// If so, we return false and the fetch() method will not get called again
if (typeof root == "undefined" || root == null || i >= root.ewiToDefect.length )
return false

// Set our column fields for this row of data to be added to the dataset result
// The available row columns for this dataset are defined as the 'output columns' on the dataset.
row["EWI_ITEMID"]   = root.ewiToDefect[i].ewi
row["WORKITEM_ITEMID"]  = root.ewiToDefect[i].defect
row["WORKITEM_BLOCKING"]= root.ewiToDefect[i].blocking

// lookup the associated defect and assign field values to this dataset results columns
// All the column values of the defect are defined in dataset 'Remote - Workitems'
var defect = root.defects[root.ewiToDefect[i].defect]
row["WORKITEM_NAME"]    = defect["WORKITEM_NAME"]
row["WORKITEM_ID"]     = defect["REFERENCE_ID"]
row["WORKITEM_URL"]    = defect["WORKITEM_URL"]
row["WORKITEM_STATE"]    = defect["WORKITEM_STATEID.WORKITEMSTATE_NAME"]
row["WORKITEM_RESOLVER"]  = defect["WORKITEM_RESOLVER.CONTRIBUTOR_USERID"]
row["WORKITEM_PRIORITY"]  = defect["WORKITEM_PRIORITY.WORKITEMPRIORITY_NAME"]
row["WORKITEM_SEVERITY"]  = defect["WORKITEM_SEVERITY.WORKITEMSEVERITY_NAME"]
row["WORKITEM_DATE_CREATED"] = defect["WORKITEM_DATE_CREATED_COLUMN"]
row["WORKITEM_DATE_RESOLVED"] = defect["WORKITEM_DATE_RESOLVED_COLUMN"]

// Override default text value in the DW with appropriate translated text
if ( row["WORKITEM_RESOLVER"] == "Info not available" ) {
 row["WORKITEM_RESOLVER"] = nls.getString("legend.unassigned");
}

// The DW has default dates of 1969 instead of null.  This is to work around the problem.
// If the DW has 1969, then the workitem has not been resolved and we don't want to show a date.
if (  row["WORKITEM_DATE_RESOLVED"] != null && row["WORKITEM_DATE_RESOLVED"].getTime() == 0 ) {
 row["WORKITEM_DATE_RESOLVED"] = null ;
}

// increment to get the next row of data when we are called again
i++

// return true to indicate that we should continue processing results for this dataset
return true":
{1}.
+ Data Set script method "Fetch" returned null; expected a Boolean value.


Upon investigation of the logs, it says that:

0000002a ScriptExecuto W   Fail to execute script in function __bm_FETCH(). Source:
------
" + // Test to see if we are at the end of the results we need to create
// If so, we return false and the fetch() method will not get called again
if (typeof root == "undefined" || root == null || i >= root.ewiToDefect.length )
return false

// Set our column fields for this row of data to be added to the dataset result
// The available row columns for this dataset are defined as the 'output columns' on the dataset.
row["EWI_ITEMID"]         = root.ewiToDefect[i].ewi
row["WORKITEM_ITEMID"]     = root.ewiToDefect[i].defect
row["WORKITEM_BLOCKING"]= root.ewiToDefect[i].blocking

// lookup the associated defect and assign field values to this dataset results columns
// All the column values of the defect are defined in dataset 'Remote - Workitems'
var defect = root.defects[root.ewiToDefect[i].defect]
row["WORKITEM_NAME"]             = defect["WORKITEM_NAME"]
row["WORKITEM_ID"]                 = defect["REFERENCE_ID"]
row["WORKITEM_URL"]             = defect["WORKITEM_URL"]
row["WORKITEM_STATE"]             = defect["WORKITEM_STATEID.WORKITEMSTATE_NAME"]
row["WORKITEM_RESOLVER"]        = defect["WORKITEM_RESOLVER.CONTRIBUTOR_USERID"]
row["WORKITEM_PRIORITY"]        = defect["WORKITEM_PRIORITY.WORKITEMPRIORITY_NAME"]
row["WORKITEM_SEVERITY"]        = defect["WORKITEM_SEVERITY.WORKITEMSEVERITY_NAME"]
row["WORKITEM_DATE_CREATED"]    = defect["WORKITEM_DATE_CREATED_COLUMN"]
row["WORKITEM_DATE_RESOLVED"]    = defect["WORKITEM_DATE_RESOLVED_COLUMN"]

// Override default text value in the DW with appropriate translated text
if ( row["WORKITEM_RESOLVER"] == "Info not available" ) {
    row["WORKITEM_RESOLVER"] = nls.getString("legend.unassigned");
}

// The DW has default dates of 1969 instead of null.  This is to work around the problem.
// If the DW has 1969, then the workitem has not been resolved and we don't want to show a date.
if (  row["WORKITEM_DATE_RESOLVED"] != null && row["WORKITEM_DATE_RESOLVED"].getTime() == 0 ) {
    row["WORKITEM_DATE_RESOLVED"] = null ;
}

// increment to get the next row of data when we are called again
i++

// return true to indicate that we should continue processing results for this dataset
return true + "
-----
A BIRT exception occurred. See next exception for more information.
Error evaluating Javascript expression. Script engine error: TypeError: Cannot read property "WORKITEM_NAME" from undefined (/report/data-sets/script-data-set[@id="3880"]/method[@name="fetch"]#15)
 Script source: /report/data-sets/script-data-set[@id="3880"]/method[@name="fetch"], line: 0, text:
__bm_FETCH()
                                 org.eclipse.birt.data.engine.core.DataException: Fail to execute script in function __bm_FETCH(). Source:
------
" + // Test to see if we are at the end of the results we need to create
// If so, we return false and the fetch() method will not get called again
if (typeof root == "undefined" || root == null || i >= root.ewiToDefect.length )
return false

// Set our column fields for this row of data to be added to the dataset result
// The available row columns for this dataset are defined as the 'output columns' on the dataset.
row["EWI_ITEMID"]         = root.ewiToDefect[i].ewi
row["WORKITEM_ITEMID"]     = root.ewiToDefect[i].defect
row["WORKITEM_BLOCKING"]= root.ewiToDefect[i].blocking

// lookup the associated defect and assign field values to this dataset results columns
// All the column values of the defect are defined in dataset 'Remote - Workitems'
var defect = root.defects[root.ewiToDefect[i].defect]
row["WORKITEM_NAME"]             = defect["WORKITEM_NAME"]
row["WORKITEM_ID"]                 = defect["REFERENCE_ID"]
row["WORKITEM_URL"]             = defect["WORKITEM_URL"]
row["WORKITEM_STATE"]             = defect["WORKITEM_STATEID.WORKITEMSTATE_NAME"]
row["WORKITEM_RESOLVER"]        = defect["WORKITEM_RESOLVER.CONTRIBUTOR_USERID"]
row["WORKITEM_PRIORITY"]        = defect["WORKITEM_PRIORITY.WORKITEMPRIORITY_NAME"]
row["WORKITEM_SEVERITY"]        = defect["WORKITEM_SEVERITY.WORKITEMSEVERITY_NAME"]
row["WORKITEM_DATE_CREATED"]    = defect["WORKITEM_DATE_CREATED_COLUMN"]
row["WORKITEM_DATE_RESOLVED"]    = defect["WORKITEM_DATE_RESOLVED_COLUMN"]

// Override default text value in the DW with appropriate translated text
if ( row["WORKITEM_RESOLVER"] == "Info not available" ) {
    row["WORKITEM_RESOLVER"] = nls.getString("legend.unassigned");
}

// The DW has default dates of 1969 instead of null.  This is to work around the problem.
// If the DW has 1969, then the workitem has not been resolved and we don't want to show a date.
if (  row["WORKITEM_DATE_RESOLVED"] != null && row["WORKITEM_DATE_RESOLVED"].getTime() == 0 ) {
    row["WORKITEM_DATE_RESOLVED"] = null ;
}

// increment to get the next row of data when we are called again
i++

// return true to indicate that we should continue processing results for this dataset
return true + "
-----
A BIRT exception occurred. See next exception for more information.
Error evaluating Javascript expression. Script engine error: TypeError: Cannot read property "WORKITEM_NAME" from undefined (/report/data-sets/script-data-set[@id="3880"]/method[@name="fetch"]#15)
 Script source: /report/data-sets/script-data-set[@id="3880"]/method[@name="fetch"], line: 0, text:
__bm_FETCH()

And

Caused by: org.eclipse.birt.data.engine.core.DataException: A BIRT exception occurred. See next exception for more information.
Error evaluating Javascript expression. Script engine error: TypeError: Cannot read property "WORKITEM_NAME" from undefined (/report/data-sets/script-data-set[@id="3880"]/method[@name="fetch"]#15)
 Script source: /report/data-sets/script-data-set[@id="3880"]/method[@name="fetch"], line: 0, text:
__bm_FETCH()
    at org.eclipse.birt.data.engine.core.DataException.wrap(DataException.java:118)
    at org.eclipse.birt.data.engine.script.ScriptEvalUtil.evaluateJSAsExpr(ScriptEvalUtil.java:1005)
    at org.eclipse.birt.data.engine.script.JSMethodRunner.runScript(JSMethodRunner.java:138)
    ... 121 more
Caused by: org.eclipse.birt.core.exception.CoreException: Error evaluating Javascript expression. Script engine error: TypeError: Cannot read property "WORKITEM_NAME" from undefined (/report/data-sets/script-data-set[@id="3880"]/method[@name="fetch"]#15)
 Script source: /report/data-sets/script-data-set[@id="3880"]/method[@name="fetch"], line: 0, text:
__bm_FETCH()

One answer



permanent link
Don Yang (7.7k21109138) | answered Feb 09 '15, 11:58 p.m.
What version of RQM do you use? it is likely you are hitting the defect:
https://jazz.net/jazz/web/projects/Jazz%20Foundation#action=com.ibm.team.workitem.viewWorkItem&id=288331



Comments
Irell Carloe Santos commented Feb 10 '15, 12:02 a.m.

Hi,

It is version 4.0.5 (RJF-I20131025-1325).


Irell Carloe Santos commented Feb 10 '15, 12:05 a.m.

and how can it be fixed? Thanks.


Don Yang commented Feb 10 '15, 12:14 a.m.

Upgrade is the best option.
For example, you can test with v5.0.2(latest) with your data in a testing environment and once it works for you(not only for this issue, I understand that many users will have a test before upgrading their production environment), you can go to production.

Your answer


Register or to post your answer.


Dashboards and work items are no longer publicly available, so some links may be invalid. We now provide similar information through other means. Learn more here.