DataSink Report - Parameter not found
I have been trying to capture the request and response payloads of a RESTful webservice in the SOAP-UI test runs, via. the use of DataSink. In order to visualize, the set up is as below: Properties in the DataSink (as Subreport)have also been set as seen below : Next, I created a subReport named it UniRestService. Below is the code : SubReport Name: UniRestService ReportType: TestCase Scope: Project DataSource: Data Sink <jasperReport xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="report name" language="groovy" pageWidth="535" pageHeight="842" columnWidth="535" leftMargin="0" rightMargin="0" topMargin="0" bottomMargin="0" xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <template>"../../styles.jrtx"</template> <field name="sessionId" class="java.lang.String"/> <field name="request" class="java.lang.String"/> <field name="response" class="java.lang.String"/> <columnHeader> <band height="37"> <staticText> <reportElement style="SmallHeader" x="0" y="0" width="535" height="34"/> <textElement textAlignment="Left" verticalAlignment="Middle"> <font size="14" isBold="true" isUnderline="true"/> </textElement> <text>API Execution Details</text> </staticText> </band> </columnHeader> <detail> <band height="120"> <staticText> <reportElement x="0" y="0" width="67" height="20"/> <textElement> <font isBold="true" isUnderline="true"/> </textElement> <text>Session ID</text> </staticText> <textField isStretchWithOverflow="true"> <reportElement x="67" y="0" width="100" height="20"/> <textFieldExpression>$F{sessionId}</textFieldExpression> </textField> <staticText> <reportElement x="0" y="20" width="67" height="20"/> <textElement> <font isBold="true" isUnderline="true"/> </textElement> <text>Request :</text> </staticText> <textField isStretchWithOverflow="true"> <reportElement x="67" y="20" width="468" height="20"/> <textFieldExpression>$F{request}</textFieldExpression> </textField> <staticText> <reportElement x="0" y="40" width="67" height="20"/> <textElement> <font isBold="true" isUnderline="true"/> </textElement> <text>Response:</text> </staticText> <textField isStretchWithOverflow="true"> <reportElement x="67" y="40" width="468" height="20"/> <textFieldExpression>$F{response}</textFieldExpression> </textField> </band> </detail> </jasperReport> Next, I created the the main report named : test, Below is the configuration screenshot: And the correponding code is below : <jasperReport xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="ReportTemplate" language="groovy" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="30" bottomMargin="30" xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <template>"../../styles.jrtx"</template> <!--FIELDS & PARAMS--> <title> <band height="70"> <textField> <reportElement x="159" y="13" width="229" height="42"/> <textElement> <font size="26"/> </textElement> <textFieldExpression class="java.lang.String">$F{name} + " Report"</textFieldExpression> </textField> </band> </title> <pageHeader> <band/> </pageHeader> <detail> <band height="122"> <!--SUBREPORTS UNDER HERE--> <subreport isUsingCache="true"> <reportElement positionType="Float" isPrintRepeatedValues="false" x="0" y="0" width="500" height="30"/> <dataSourceExpression><![CDATA[$P{dataSink}]]></dataSourceExpression> <subreportExpression><![CDATA["subreport:UniRestService"]]></subreportExpression> </subreport> </band> </detail> </jasperReport> I have also tried with the the following dataSourceExpression in the code snippet above : <dataSourceExpression><$P{dataSink}></dataSourceExpression> <subreportExpression><"subreport:UniRestService"></subreportExpression> In either cases, I get the following error, from the error.log. Sun Nov 01 10:44:10 EST 2015:ERROR:net.sf.jasperreports.engine.design.JRValidationException: Report design not valid : 1. Parameter not found : dataSink net.sf.jasperreports.engine.design.JRValidationException: Report design not valid : 1. Parameter not found : dataSink at net.sf.jasperreports.engine.design.JRAbstractCompiler.verifyDesign(JRAbstractCompiler.java:258) at net.sf.jasperreports.engine.design.JRAbstractCompiler.compileReport(JRAbstractCompiler.java:140) at net.sf.jasperreports.engine.JasperCompileManager.compileReport(JasperCompileManager.java:215) at com.eviware.soapui.reporting.engine.jasper.GenerateJasperReport.createReport(SourceFile:409) at com.eviware.soapui.reporting.engine.jasper.GenerateJasperReport$ReportFillWorker.construct(SourceFile:382) at com.eviware.soapui.support.swing.SwingWorkerDelegator.construct(SwingWorkerDelegator.java:46) at com.eviware.soapui.support.swing.SwingWorker$2.run(SwingWorker.java:131) at java.lang.Thread.run(Unknown Source) Any help is much appreciated here. Thanks in advance.Solved3.5KViews0likes1CommentDataSink SubReport
Hello, I have added a DataSink SubReport with no problem to TestCaseReport.jrxml. You can see the code in TestCaseReport.jrxml below: <subreport> <reportElement positionType="Float" isPrintRepeatedValues="false" x="1" y="51" width="535" height="30" isRemoveLineWhenBlank="true"/> <dataSourceExpression><![CDATA[$P{DataSink}]]></dataSourceExpression> <subreportExpression class="java.lang.String"><![CDATA["subreport:testSubReport"]]></subreportExpression> </subreport> and subreport testSubReport code below: <jasperReport xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="report name" language="groovy" pageWidth="535" pageHeight="842" columnWidth="535" leftMargin="0" rightMargin="0" topMargin="0" bottomMargin="0" xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <template>"../../styles.jrtx"</template> <field name="testNamePrint" class="java.lang.String"/> <columnHeader> <band height="59"> <staticText> <reportElement style="ColumnHeader" x="0" y="35" width="535" height="20"/> <textElement textAlignment="Left" verticalAlignment="Middle"/> <text>Tests Run from Data Driven .csv File</text> </staticText> </band> </columnHeader> <detail> <band height="21"> <textField> <reportElement x="0" y="1" width="535" height="20"/> <textElement textAlignment="Left" verticalAlignment="Top"/> <textFieldExpression class="java.lang.String">$F{testNamePrint}</textFieldExpression> </textField> </band> </detail> </jasperReport> After that I am able to set up a DataSink test step and select subreport and I will have the testNamePrint column of dataSink print on my TestCaseReport. The problem comes when I try to add the same subreport to TestCaseResultsReport.jrxml in order to have the same in the report when a generate it from TestSuiteReport that has TestCaseResultsReport as a subreport. I am adding the same subreport code (1st posted here) to TestCaseResultsReport.jrxml but it is not working. I guess that it is because of dataSourceExpresion field. Any solution or comments to help with this issue. Thanks in advance.1.5KViews0likes1Comment