Home
Analytics
Get error "Invalid expression to retrieve value in presentation" in Maximo 7.5
rdpeterson
<p>I have a report developed in BIRT 3.2.22, Eclipse 3.7.1 and deployed as a custom report in Maximo 7.5 that returns the error "Invalid expression to retrieve value in presentation" only when the report query returns no records. I found that if I remove the display of a global variable I created to display the parameters entered by the user in the report header section, the error no longer occurs. The value of the global variable is set conditionally in the query Open code block. The same report executed with identical parameters run in the BIRT designer returns no error message though no records are returned by the report query. I've attached a copy of the report for reference.</p><p> </p><p>I have a very similar report with nearly identical parameters and the same method of using a global variable to display user entered parameter values when the report is run, but this report returns no error when run and no rows are returned by the query.</p><p> </p><p>Does anyone have any ideas? Thanks.</p>
Find more posts tagged with
Comments
micajblock
<p>Why not just display the parameter directly like this </p><pre class="_prettyXprint">params["parmName"].value</pre><p>Why are you using a global variable?</p>
rdpeterson
<p>Thanks for responding. I originally displayed all parameters directly like that in this report, but the error persisted. I found that removing the display of all parameters eliminated the error in Maximo when the report was run when no rows were returned by the query. I have other reports similar to this one where I used the global variable to generate a string with the parameter values that are actually used rather than just displaying all of them. Most of my reports include optional parameters. Those reports don't cause the error when no rows are returned by the query, so I thought error may have something to do with the direct display of the parameters. This turned out to be false. I finally corrected the error with this report by building it completely from scratch (using a BIRT/Maximo report template, of course). I think it just may be a BIRT bug, or something in the report design file was corrupted.</p>
micajblock
<p>Is it possible the error is correct. Are you checking for null?</p>
rdpeterson
<p>Do you mean in the display of the parameters? For example:</p><p> </p><p>if(params["myParam"].value) {params["myParam"].value; }</p>
micajblock
<p>No, I meant in the code for setting you global variable.</p>
rdpeterson
<p>Yes, I perform a null check for all optional parameters in all of my reports before applying code to modify the SQL text string passed to the setQuery({sql text}) method of the data set. Here's an example from the previously errant report in question:</p><p> </p><p><strong class='bbc'>if</strong>(params["p_laborCode"].value)</p><p>{</p><p> labor_code = " and " + MXReportSqlFormat.createParamWhereClause("labor.laborcode", "=" + params["p_laborCode"].replace(/[=!,]/,""));</p><p> vars["rptParams"] = "For Employee Number " + params["p_laborCode"].replace(/[=!,]/,"");</p><p>}</p>
micajblock
<p>Shouldn't is be:</p><p>[font="calibri, sans-serif;"]<span style="font-size:11pt;">params["p_laborCode"].<strong>value</strong>.replace(/[=!,]/,""));[/font]</span></p>
rdpeterson
<p>The inclusion of the ".VALUE" property for parameters seems to be optional in various situations when running reports in both the BIRT designer and in Maximo. The code I provided without the ".value" property works perfectly in both Maximo and BIRT designer. No errors or exceptions occur.</p>
micajblock
<p>'seems' is the keyword. Obviously it did not work in certain situations. JavaScript is very forgiving in some cases. </p>
rdpeterson
<p>I'll remember to include the ".value" property from now on when calling the value of a parameter as a preventive measure in my reports knowing now that's the correct method. To test, I replaced all references to parameter values in the Open code block for the query in the version of my report returning the "Invalid expression to retrieve value in presentation (Element ID:829)" error in Maximo 7.5 with ".value.replace". Note that Element ID:829 is the display of my global variable "rptParams" in the report header section. The report returns exactly the same error message in Maximo as before. Here's the complete text of the error message:</p><p> </p><p>+ Invalid expression to retrieve value in presentation. (Element ID:829)
data.engine.InValidExpr ( 1 time(s) )
detail : org.eclipse.birt.report.engine.api.EngineException: Invalid expression to retrieve value in presentation. (Element ID:829)
at org.eclipse.birt.report.engine.executor.ExecutionContext.addException(ExecutionContext.java:1214)
at org.eclipse.birt.report.engine.executor.ExecutionContext.addException(ExecutionContext.java:1193)
at org.eclipse.birt.report.engine.internal.document.v4.DataItemExecutor.doExecute(DataItemExecutor.java:97)
at org.eclipse.birt.report.engine.internal.document.v4.ReportItemExecutor.execute(ReportItemExecutor.java:294)
at org.eclipse.birt.report.engine.internal.document.v4.ContainerExecutor.prepareChildExecutor(ContainerExecutor.java:226)
at org.eclipse.birt.report.engine.internal.document.v4.ContainerExecutor.hasNextChild(ContainerExecutor.java:110)
at org.eclipse.birt.report.engine.internal.executor.wrap.WrappedReportItemExecutor.hasNextChild(WrappedReportItemExecutor.java:86)
at org.eclipse.birt.report.engine.internal.executor.wrap.WrappedReportItemExecutor.hasNextChild(WrappedReportItemExecutor.java:86)
at org.eclipse.birt.report.engine.layout.html.HTMLAbstractLM.execute(HTMLAbstractLM.java:463)
at org.eclipse.birt.report.engine.layout.html.HTMLAbstractLM.execute(HTMLAbstractLM.java:476)
at org.eclipse.birt.report.engine.layout.html.HTMLAbstractLM.execute(HTMLAbstractLM.java:476)
at org.eclipse.birt.report.engine.layout.html.HTMLListingBandLM.intializeHeaderContent(HTMLListingBandLM.java:98)
at org.eclipse.birt.report.engine.layout.html.HTMLListingBandLM.initialize(HTMLListingBandLM.java:50)
at org.eclipse.birt.report.engine.layout.html.HTMLTableBandLM.initialize(HTMLTableBandLM.java:44)
at org.eclipse.birt.report.engine.layout.html.HTMLLayoutManagerFactory.createLayoutManager(HTMLLayoutManagerFactory.java:40)
at org.eclipse.birt.report.engine.layout.html.HTMLReportLayoutEngine.createLayoutManager(HTMLReportLayoutEngine.java:138)
at org.eclipse.birt.report.engine.layout.html.HTMLBlockStackingLM.layoutNodes(HTMLBlockStackingLM.java:48)
at org.eclipse.birt.report.engine.layout.html.HTMLStackingLM.layoutChildren(HTMLStackingLM.java:26)
at org.eclipse.birt.report.engine.layout.html.HTMLTableLM.layoutChildren(HTMLTableLM.java:132)
at org.eclipse.birt.report.engine.layout.html.HTMLAbstractLM.layout(HTMLAbstractLM.java:140)
at org.eclipse.birt.report.engine.layout.html.HTMLBlockStackingLM.layoutNodes(HTMLBlockStackingLM.java:70)
at org.eclipse.birt.report.engine.layout.html.HTMLPageLM.layout(HTMLPageLM.java:92)
at org.eclipse.birt.report.engine.layout.html.HTMLReportLayoutEngine.layout(HTMLReportLayoutEngine.java:100)
at org.eclipse.birt.report.engine.api.impl.RenderTask$PageRangeRender.render(RenderTask.java:681)
at org.eclipse.birt.report.engine.api.impl.RenderTask.render(RenderTask.java:294)
at org.eclipse.birt.report.service.ReportEngineService.renderReport(ReportEngineService.java:1585)
at org.eclipse.birt.report.service.BirtViewerReportService.getPage(BirtViewerReportService.java:204)
at org.eclipse.birt.report.service.actionhandler.AbstractGetPageActionHandler.doExecution(AbstractGetPageActionHandler.java:238)
at org.eclipse.birt.report.service.actionhandler.AbstractGetPageActionHandler.__execute(AbstractGetPageActionHandler.java:105)
at org.eclipse.birt.report.service.actionhandler.AbstractBaseActionHandler.execute(AbstractBaseActionHandler.java:90)
at org.eclipse.birt.report.soapengine.processor.AbstractBaseDocumentProcessor.__executeAction(AbstractBaseDocumentProcessor.java:47)
at org.eclipse.birt.report.soapengine.processor.AbstractBaseComponentProcessor.executeAction(AbstractBaseComponentProcessor.java:143)
at org.eclipse.birt.report.soapengine.processor.BirtDocumentProcessor.handleGetPage(BirtDocumentProcessor.java:87)
at sun.reflect.GeneratedMethodAccessor294.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
at java.lang.reflect.Method.invoke(Method.java:611)
at org.eclipse.birt.report.soapengine.processor.AbstractBaseComponentProcessor.process(AbstractBaseComponentProcessor.java:112)
at org.eclipse.birt.report.soapengine.endpoint.BirtSoapBindingImpl.getUpdatedObjects(BirtSoapBindingImpl.java:66)
at sun.reflect.GeneratedMethodAccessor264.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
at java.lang.reflect.Method.invoke(Method.java:611)
at org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java:397)
at org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:186)
at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:323)
at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:453)
at org.apache.axis.server.AxisServer.invoke(AxisServer.java:281)
at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:699)
at org.eclipse.birt.report.servlet.BirtSoapMessageDispatcherServlet.doPost(BirtSoapMessageDispatcherServlet.java:265)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:738)
at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:831)
at org.eclipse.birt.report.servlet.BirtSoapMessageDispatcherServlet.service(BirtSoapMessageDispatcherServlet.java:122)
at org.eclipse.equinox.http.servlet.internal.ServletRegistration.service(ServletRegistration.java:61)
at org.eclipse.equinox.http.servlet.internal.ProxyServlet.processAlias(ProxyServlet.java:126)
at org.eclipse.equinox.http.servlet.internal.ProxyServlet.service(ProxyServlet.java:60)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:831)
at com.ibm.tivoli.maximo.report.birt.bridge.launcher.BridgeServlet.service(BridgeServlet.java:106)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:831)
at com.ibm.ws.cache.servlet.ServletWrapper.serviceProxied(ServletWrapper.java:307)
at com.ibm.ws.cache.servlet.CacheHook.handleFragment(CacheHook.java:579)
at com.ibm.ws.cache.servlet.CacheHook.handleServlet(CacheHook.java:250)
at com.ibm.ws.cache.servlet.ServletWrapper.service(ServletWrapper.java:259)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1657)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1597)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:104)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain._doFilter(WebAppFilterChain.java:77)
at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:908)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:934)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:502)
at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:179)
at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:353)
at com.ibm.tivoli.maximo.report.birt.servlet.ReportRequestProcessServlet.processReportRequest(ReportRequestProcessServlet.java:682)
at com.ibm.tivoli.maximo.report.birt.servlet.ReportRequestProcessServlet.doPost(ReportRequestProcessServlet.java:126)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:738)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:831)
at com.ibm.ws.cache.servlet.ServletWrapper.serviceProxied(ServletWrapper.java:307)
at com.ibm.ws.cache.servlet.CacheHook.handleFragment(CacheHook.java:579)
at com.ibm.ws.cache.servlet.CacheHook.handleServlet(CacheHook.java:250)
at com.ibm.ws.cache.servlet.ServletWrapper.service(ServletWrapper.java:259)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1657)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1597)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:131)
at psdi.webclient.system.filter.HttpCrossSiteScriptingSecurity.doFilter(HttpCrossSiteScriptingSecurity.java:66)
at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:188)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:116)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain._doFilter(WebAppFilterChain.java:77)
at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:908)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:934)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:502)
at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:179)
at com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:91)
at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:864)
at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1583)
at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:186)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:445)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:504)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:301)
at com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:83)
at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165)
at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)
at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138)
at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:204)
at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:775)
at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:905)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1604)
Caused by: org.eclipse.birt.data.engine.core.DataException: Invalid expression to retrieve value in presentation.
at org.eclipse.birt.data.engine.impl.document.util.ExprResultSet.getValue(ExprResultSet.java:195)
at org.eclipse.birt.data.engine.impl.document.ResultIterator.getValue(ResultIterator.java:167)
at org.eclipse.birt.report.engine.data.dte.QueryResultSet.getValue(QueryResultSet.java:403)
at org.eclipse.birt.report.engine.internal.document.v4.DataItemExecutor.doExecute(DataItemExecutor.java:86)
... 106 more</p>
micajblock
<p>What is the exact expression you are using to display the global variable?</p>
rdpeterson
<p>vars["rptParams"].value with the ".VALUE" property added after initial drag and drop of this variable into the report section. By default, variable appears without the ".VALUE" property which I use in my other reports without any problem.</p>
micajblock
<p>Is this a parameter or a page variable?</p>
rdpeterson
<p>It's a "report variable".</p>
micajblock
<p>I apologize paramaters are:</p><pre class="_prettyXprint">params["parmName"].value</pre><p>report variables are:</p><pre class="_prettyXprint">vars["varNam"]</pre><p>Is rptParams a string?</p>
rdpeterson
<p>Yes, it's a string variable. It's generated from conditional expressions in the Open code block for the report query.</p>
micajblock
<p>and what does that code look like?</p>
rdpeterson
<p>maximoDataSet = MXReportDataSetProvider.create(<strong class='bbc'>this</strong>.getDataSource().getName(), <strong class='bbc'>this</strong>.getName());</p><p>maximoDataSet.open();</p><p> </p><p><strong class='bbc'>var</strong> sqlText = <strong class='bbc'>new</strong> String();</p><p> </p><p><strong class='bbc'>var</strong> irtcf = <strong class='bbc'>new</strong> String(); // incident report time code filter</p><p><strong class='bbc'>var</strong> date_range = <strong class='bbc'>new</strong> String();</p><p><strong class='bbc'>var</strong> labor_code = <strong class='bbc'>new</strong> String();</p><p><strong class='bbc'>var</strong> labor_group = <strong class='bbc'>new</strong> String();</p><p><strong class='bbc'>var</strong> sect_code = <strong class='bbc'>new</strong> String();</p><p><strong class='bbc'>var</strong> grp_level1 = <strong class='bbc'>new</strong> String();</p><p><strong class='bbc'>var</strong> grp_level1_srt = <strong class='bbc'>new</strong> String();</p><p> </p><p><strong class='bbc'>if</strong>(params["p_sortOption"].value == "1")</p><p>{</p><p>grp_level1 = " labor.laborcode as labgrpbyfield,";</p><p>grp_level1_srt = " order by labor.laborcode,";</p><p>}</p><p><strong class='bbc'>else</strong></p><p>{</p><p>grp_level1 = " person.displayname as labgrpbyfield,";</p><p>grp_level1_srt = " order by person.displayname,"; </p><p>}</p><p> </p><p><strong class='bbc'>if</strong>(params["p_rpt"].value == "2")</p><p>irtcf = " and (tc.gen_wo_descrip like 'ILLNESS%' or tc.gen_wo_descrip like '%REPAIR PERSONAL VEHICLE%' or tc.gen_wo_descrip like '%UNPAID%')";</p><p> </p><p><strong class='bbc'>if</strong>(params["p_laborCode"].value)</p><p>{</p><p>labor_code = " and " + MXReportSqlFormat.createParamWhereClause("labor.laborcode", "=" + params["p_laborCode"].value.replace(/[=!,]/,""));</p><p>[color=#ff0000;]vars["rptParams"] = "For Employee Number " + params["p_laborCode"].value.replace(/[=!,]/,"");[/color]</p><p>}</p><p> </p><p><strong class='bbc'>if</strong>(params["p_laborGroup"].value)</p><p>{</p><p>labor_group = " and " + MXReportSqlFormat.createParamWhereClause("upper(labor.la5)", "=" + params["p_laborGroup"].value.replace(/[=!,]/,""));</p><p>[color=#ff0000;]vars["rptParams"] = "For Labor/Person Group " + params["p_laborGroup"].value.replace(/[=!,]/,"");[/color]</p><p>}</p><p> </p><p><strong class='bbc'>if</strong>(params["p_section"].value)</p><p>{</p><p>sect_code = " and " + MXReportSqlFormat.createParamWhereClause("upper(labor.la14)", "=" + params["p_section"].value.replace(/[=!,]/,""));</p><p>[color=#ff0000;]vars["rptParams"] = "For Section Code " + params["p_section"].value.replace(/[=!,]/,"");[/color]</p><p>}</p><p> </p><p>date_range = " and startdate between to_date('" + params["p_sdate"] + "','YYYY-MM-DD') and to_date('" + params["p_edate"] + "','YYYY-MM-DD')";</p><p>[color=#ff0000;]vars["rptParams"] += " for work dates between " + params["p_sdate"] + " and " + params["p_edate"];[/color]</p><p> </p><p>sqlText = "select workorder.timecode,"</p><p>+ " labtrans.rowstamp,"</p><p>+ " labor.laborcode,"</p><p>+ " person.displayname,"</p><p>+ grp_level1</p><p>+ " labtrans.startdate,"</p><p>+ " labtrans.regularhrs,"</p><p>+ " lt.maxdayreghrs_b,"</p><p>+ " (case when lt.maxdayreghrs_b not in (8,9,10) then "</p><p>+ " (case when pc.calnum in ('M-TH','T-F','W-S') then 10"</p><p>+ " when pc.calnum = '9-80' then 9"</p><p>+ " else 8 end)"</p><p>+ " else lt.maxdayreghrs_b end) as maxdayreghrs,"</p><p>+ " pc.calnum,"</p><p>+ " workorder.description,"</p><p>+ " workorder.wonum,"</p><p>+ " labtrans.memo,"</p><p>+ " tc.gen_wo_descrip as ceq,"</p><p>+ " class.classcode,"</p><p>+ " class.title,"</p><p>+ " pc.shiftnum"</p><p>+ " "</p><p>+ " from workorder, labtrans, labor, person, personcal pc, wo_timecode_xwalk tc, class,"</p><p>+ " ("</p><p>+ " select laborcode, wknum, max(dayreghrs) as maxdayreghrs_b"</p><p>+ " from"</p><p>+ " ("</p><p>+ " select laborcode, wknum, startdate, sum(regularhrs) as dayreghrs"</p><p>+ " from"</p><p>+ " ("</p><p>+ " select laborcode, trunc(to_number(to_char(startdate,'ddd'))/7) as wknum, startdate, regularhrs"</p><p>+ " "</p><p>+ " from labtrans"</p><p>+ " where 1=1"</p><p>+ date_range</p><p>+ " )"</p><p>+ " group by laborcode, wknum, startdate"</p><p>+ " )"</p><p>+ " group by laborcode, wknum"</p><p>+ " ) lt"</p><p>+ " "</p><p>+ " where labtrans.refwo = workorder.wonum"</p><p>+ " and labor.laborcode = labtrans.laborcode"</p><p>+ " and labor.laborcode = lt.laborcode"</p><p>+ " and labor.personid = person.personid"</p><p>+ " and person.personid = pc.personid (+)"</p><p>+ " and trunc(to_number(to_char(labtrans.startdate,'ddd'))/7) = lt.wknum"</p><p>+ " and labor.la1 = class.classcode(+)"</p><p>+ " and workorder.timecode = tc.timecode"</p><p>+ " and labtrans.genapprservreceipt = 1"</p><p>+ irtcf</p><p>+ labor_code</p><p>+ labor_group</p><p>+ sect_code</p><p>+ date_range</p><p>+ " "</p><p>+ grp_level1_srt</p><p>+ " workorder.timecode,"</p><p>+ " workorder.wonum,"</p><p>+ " maxdayreghrs,"</p><p>+ " labtrans.startdate"</p><p>;</p><p> </p><p>maximoDataSet.setQuery(sqlText);</p>
micajblock
<p>I see nothing wrong with the code. Without some serious debugging, I am not sure what is wrong. BTW are the data parameters, strings or dates?</p>
rdpeterson
<p>All parameters are strings except for two that are dates: p_sdate AND p_edate</p>
micajblock
<p>Try using BIRT.formatter function to convert the date to a formatted string.</p>
rdpeterson
<p>Thanks, the function works great in BIRT, and I've employed it in other cases, but I still get the "Invalid expression to retrieve value in presentation. (Element ID:830)" where element ID 830 is the display of vars["rptParams"] string generated in the query Open block. Again, I finally just rebuilt the whole report from scratch (i.e., from a template RPTDESIGN file I created using the approved Maximo BIRT templates) with the identical (copied and pasted) code from my original report query Open block and the error on no rows returned was eliminated in Maximo. Something, somewhere much less obvious in the RPTDESIGN file may have been corrupted, perhaps one time when BIRT crashed during a design session, was actually causing the problem. </p>
micajblock
<p>Glad it worked out.</p>