RQM Scorecard Report Widget Error
Hi,
Kindly help with this error we've encountered.
Halfway in the display of the scorecard widget, an error appears stating:
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()
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
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.
// 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}.
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
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
https://jazz.net/jazz/web/projects/Jazz%20Foundation#action=com.ibm.team.workitem.viewWorkItem&id=288331
Comments
Hi,
It is version 4.0.5 (RJF-I20131025-1325).
and how can it be fixed? Thanks.
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.