Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Archived » BIRT » task.setParameterValue
task.setParameterValue [message #831080] Wed, 28 March 2012 12:50 Go to next message
Sergey Syr is currently offline Sergey SyrFriend
Messages: 19
Registered: February 2012
Junior Member
Hi! I have a problem.
I want set param on xml, its Date type. Date Format: yyyy-MM-dd
And I see interested error

Quote:

SEVERE: org.eclipse.birt.report.engine.api.impl.ParameterValidationException: The type of parameter "DateParameter" is expected as "date", not "java.util.Date".




fragment code
                          if (p.type.equals(Param.TYPE_DATE))
                          {
       	                    SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
                            formatter.setLenient (false);
                             try
                               {
                                Date date = formatter.parse(Date2SQL(p.value));
                                task.setParameterValue(paramName, date);
                               }
                             catch (Exception Ex)
                               {
                               //
                               }   


fragment xml
        <scalar-parameter name="DateParameter" id="98">
            <text-property name="promptText">Дата</text-property>
            <property name="valueType">static</property>
            <property name="dataType">date</property>
            <property name="distinct">true</property>
            <simple-property-list name="defaultValue">
                <value type="constant">2001-12-31</value>
            </simple-property-list>
            <list-property name="selectionList"/>
            <property name="paramType">simple</property>
            <property name="controlType">text-box</property>
            <structure name="format">
                <property name="category">Unformatted</property>
            </structure>
        </scalar-parameter>


Re: task.setParameterValue [message #831603 is a reply to message #831080] Thu, 29 March 2012 04:56 Go to previous messageGo to next message
Sergey Syr is currently offline Sergey SyrFriend
Messages: 19
Registered: February 2012
Junior Member
Interested moment
thats void, continue..
                  if (p.type.equals(Param.TYPE_DATE_TIME))
                          {                                
       	                    SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm");
                            formatter.setLenient (false);
                             try
                               {
                                Date date = formatter.parse(p.value.replaceAll(p.value.substring(0, 10), Date2SQL(p.value.substring(0, 10))));
                                task.setParameterValue(paramName,date);
                               }
                             catch (Exception Ex)
                               {
                               //
                               }      
                             
                            //
                          }


This fragment work!

I see my changed DataTime parameter on report form

p.value - String parameter value from enter form
Date2SQL - formated String from "dd.MM.yyyy" to "yyyy-MM-dd"
(p.value.replaceAll(p.value.substring(0, 10), Date2SQL(p.value.substring(0, 10)))) - formated String from "dd.MM.yyyy HH:mm" to "yyyy-MM-dd HH:mm"



what do you think about IScalarParameterDefn.TYPE_DATE ?
Re: task.setParameterValue [message #832187 is a reply to message #831603] Thu, 29 March 2012 22:02 Go to previous messageGo to next message
Jason Weathersby is currently offline Jason WeathersbyFriend
Messages: 9167
Registered: July 2009
Senior Member

The Date parameter should be able to take a java.sql or java.util date.
Can you post the complete stack trace?

Jason

On 3/29/2012 12:56 AM, Sergey Syr wrote:
> Interested moment
> thats void, continue..
> if (p.type.equals(Param.TYPE_DATE_TIME))
> { SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm");
> formatter.setLenient (false);
> try
> {
> Date date = formatter.parse(p.value.replaceAll(p.value.substring(0, 10),
> Date2SQL(p.value.substring(0, 10))));
> task.setParameterValue(paramName,date);
> }
> catch (Exception Ex)
> {
> //
> } //
> }
>
> This fragment work!
>
> I see my changed DataTime parameter on report form
>
> p.value - String parameter value from enter form
> Date2SQL - formated String from "dd.MM.yyyy" to "yyyy-MM-dd"
> (p.value.replaceAll(p.value.substring(0, 10),
> Date2SQL(p.value.substring(0, 10)))) - formated String from "dd.MM.yyyy
> HH:mm" to "yyyy-MM-dd HH:mm"
>
>
>
> what do you think about IScalarParameterDefn.TYPE_DATE ?
Re: task.setParameterValue [message #834654 is a reply to message #832187] Mon, 02 April 2012 08:13 Go to previous messageGo to next message
Sergey Syr is currently offline Sergey SyrFriend
Messages: 19
Registered: February 2012
Junior Member
Hello!
task.run
and...

SEVERE: org.eclipse.birt.report.engine.api.impl.ParameterValidationException: The type of parameter "DateParameter" is expected as "date", not "java.util.Date".
at org.eclipse.birt.report.engine.api.impl.EngineTask.validateParameterValueType(EngineTask.java:885)
at org.eclipse.birt.report.engine.api.impl.EngineTask.validateAbstractScalarParameter(EngineTask.java:841)
at org.eclipse.birt.report.engine.api.impl.EngineTask.access$0(EngineTask.java:768)
at org.eclipse.birt.report.engine.api.impl.EngineTask$ParameterValidationVisitor.visitScalarParameter(EngineTask.java:698)
at org.eclipse.birt.report.engine.api.impl.EngineTask$ParameterVisitor.visit(EngineTask.java:1432)
at org.eclipse.birt.report.engine.api.impl.EngineTask.doValidateParameters(EngineTask.java:682)
at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.doRun(RunAndRenderTask.java:94)
at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.run(RunAndRenderTask.java:77)
at com.mecheltrans.test_1.BirtReporter.BirtReport.run(BirtReport.java:319)
at com.mecheltrans.test_1.BirtReporter.test.outReport(test.java:120)
at com.mecheltrans.test_1.BirtReporter.test.processRequest(test.java:79)
at com.mecheltrans.test_1.BirtReporter.test.doPost(test.java:33)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:754)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1539)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:281)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:98)
at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:91)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:162)
at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:330)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:231)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:174)
at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:828)
at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:725)
at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1019)
at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:225)
at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
at com.sun.grizzly.ContextTask.run(ContextTask.java:71)
at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
at java.lang.Thread.run(Thread.java:662)

INFO: The type of parameter "DateParameter" is expected as "date", not "java.util.Date".
Re: task.setParameterValue [message #835714 is a reply to message #834654] Tue, 03 April 2012 15:28 Go to previous messageGo to next message
Jason Weathersby is currently offline Jason WeathersbyFriend
Messages: 9167
Registered: July 2009
Senior Member

Can you try opening the report and setting the parameter type as a Date
Time instead of a Date?

Jason

On 4/2/2012 4:13 AM, Sergey Syr wrote:
> Hello!
> task.run and...
>
> SEVERE:
> org.eclipse.birt.report.engine.api.impl.ParameterValidationException:
> The type of parameter "DateParameter" is expected as "date", not
> "java.util.Date".
> at
> org.eclipse.birt.report.engine.api.impl.EngineTask.validateParameterValueType(EngineTask.java:885)
>
> at
> org.eclipse.birt.report.engine.api.impl.EngineTask.validateAbstractScalarParameter(EngineTask.java:841)
>
> at
> org.eclipse.birt.report.engine.api.impl.EngineTask.access$0(EngineTask.java:768)
>
> at
> org.eclipse.birt.report.engine.api.impl.EngineTask$ParameterValidationVisitor.visitScalarParameter(EngineTask.java:698)
>
> at
> org.eclipse.birt.report.engine.api.impl.EngineTask$ParameterVisitor.visit(EngineTask.java:1432)
>
> at
> org.eclipse.birt.report.engine.api.impl.EngineTask.doValidateParameters(EngineTask.java:682)
>
> at
> org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.doRun(RunAndRenderTask.java:94)
>
> at
> org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.run(RunAndRenderTask.java:77)
>
> at com.mecheltrans.test_1.BirtReporter.BirtReport.run(BirtReport.java:319)
> at com.mecheltrans.test_1.BirtReporter.test.outReport(test.java:120)
> at com.mecheltrans.test_1.BirtReporter.test.processRequest(test.java:79)
> at com.mecheltrans.test_1.BirtReporter.test.doPost(test.java:33)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:754)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
> at
> org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1539)
> at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:281)
>
> at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
>
> at
> org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655)
>
> at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595)
> at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:98)
> at
> com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:91)
>
> at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:162)
>
> at
> org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:330)
>
> at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:231)
> at
> com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:174)
>
> at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:828)
> at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:725)
> at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1019)
> at
> com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:225)
>
> at
> com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
>
> at
> com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
> at
> com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
> at
> com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
> at
> com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
>
> at
> com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
>
> at com.sun.grizzly.ContextTask.run(ContextTask.java:71)
> at
> com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
>
> at
> com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
>
> at java.lang.Thread.run(Thread.java:662)
>
> INFO: The type of parameter "DateParameter" is expected as "date", not
> "java.util.Date".
Re: task.setParameterValue [message #836124 is a reply to message #835714] Wed, 04 April 2012 05:08 Go to previous messageGo to next message
Sergey Syr is currently offline Sergey SyrFriend
Messages: 19
Registered: February 2012
Junior Member
DateTime type mismatching for Date parameter, because working another handler
DateTime type working totally normal.
                          if (p.type.equals(Param.TYPE_DATE_TIME))
                          {                                
       	                    SimpleDateFormat formatter = new SimpleDateFormat("dd.MM.yyyy HH:mm");
                            formatter.setLenient (false);
                             try
                               {
                                Date date = formatter.parse(p.value);
                                task.setParameterValue(paramName,date);
                               }
                             catch (Exception Ex)
                               {
                               //
                               }      
                             
                            //
                          }
                          if (p.type.equals(Param.TYPE_DATE))
                          {
       	                    SimpleDateFormat formatter = new SimpleDateFormat("dd.MM.yyyy");
                            formatter.setLenient (false);
                             try
                               {
                                Date date = formatter.parse(p.value);
                                task.setParameterValue(paramName, date);
                               }
                             catch (Exception Ex)
                               {
                               //
                               }                                                                                           
                          }

                          if (p.type.equals(Param.TYPE_DECIMAL))
                          {                      
                              Double n = Double.parseDouble(p.value.replace(',', '.'));
                              task.setParameterValue(paramName, n);                                                                                      

                          }
                          if (p.type.equals(Param.TYPE_INTEGER))
                          {
                            task.setParameterValue(paramName, (new Integer(p.value)));
                          }


//...etceteras, and so forth, and so on...

Re: task.setParameterValue [message #836178 is a reply to message #836124] Wed, 04 April 2012 07:02 Go to previous messageGo to next message
Sergey Syr is currently offline Sergey SyrFriend
Messages: 19
Registered: February 2012
Junior Member
Jason, what class You use for Birt Date type?
Can I see path to him?
Re: task.setParameterValue [message #837401 is a reply to message #836178] Thu, 05 April 2012 16:14 Go to previous messageGo to next message
Jason Weathersby is currently offline Jason WeathersbyFriend
Messages: 9167
Registered: July 2009
Senior Member

I believe this is using java.sql.Date for a Date parameter.

Jason

On 4/4/2012 3:02 AM, Sergey Syr wrote:
> Jason, what class You use for Birt Date type?
> Can I see path to him?
Re: task.setParameterValue [message #837772 is a reply to message #837401] Fri, 06 April 2012 04:28 Go to previous messageGo to next message
Sergey Syr is currently offline Sergey SyrFriend
Messages: 19
Registered: February 2012
Junior Member
Thank You!
I to come to a conclusion, use DateTime type, but parsing field another.
Because parameter probably DataTime type for SQL query.
Re: task.setParameterValue [message #1818449 is a reply to message #831080] Mon, 16 December 2019 14:17 Go to previous message
Andy K  is currently offline Andy K Friend
Messages: 5
Registered: November 2018
Junior Member

task.setParameterValue(paramName, java.sql.Date.valueOf(str));
Previous Topic:Hit OOM (java.lang.OutOfMemoryError)
Next Topic:Creating a batch job that runs multiple BIRT reports and exports to PPTX
Goto Forum:
  


Current Time: Tue Apr 23 06:45:49 GMT 2024

Powered by FUDForum. Page generated in 0.03281 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top