cancel
Showing results for 
Search instead for 
Did you mean: 

Getting java.lang.NullPointerException when setting prompts for webi using Java SDK

Former Member
0 Kudos

Hi,

Environment: SAP BI 4.1 SP05 Patch 4

Windows OS of BO Server: Windows 2012

We are using Java SDK in our application UI to refresh a webi report, set prompts and save the report as PDF or Excel. We have copied all the jars from the BI 4.1 server to our app server.

Given below is the code snippet where we are getting the error :-

1. Prompts prompts = document.getPrompts();
2.
3.  if(prompts != null && prompts.getCount()>0){
4.    String[] ls_parmValue = (String[])lmap_xiPromptValues.get(ls_promName);
5.        prompt.enterValues(ls_parmValue);
6.  }
7. document.setPrompts();


We are getting error at line #7.


Prompt name: FromDate

Prompt Value: 05/07/2015


Error text:

  1. java.lang.NullPointerException

      at com.sap.sl.common.impl.FieldImpl.setDateTime(FieldImpl.java:246)

      at com.businessobjects.rebean.wi.internal.dp.prompt.FormatNumberHelper.formatStringToField(FormatNumberHelper.java:140)

      at com.businessobjects.rebean.wi.internal.dp.prompt.WIPrompt.prepareAnswers(WIPrompt.java:157)

      at com.businessobjects.rebean.wi.internal.dp.prompt.WIPrompts.provideAnswers(WIPrompts.java:99)

      at com.businessobjects.rebean.wi.internal.WIDocumentInstance.setPrompts(WIDocumentInstance.java:626)

      at com.jpm.aqueduct.reports.reportViewServlet.doProcess(reportViewServlet.java:204)

      at com.jpm.aqueduct.reports.reportViewServlet.doGet(reportViewServlet.java:46)

      at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)

      at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)

      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)

      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)

      at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:749)

      at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:487)

      at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:412)

      at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:339)

      at com.jpm.aqueduct.reports.reportViewServlet.doProcess(reportViewServlet.java:313)

      at com.jpm.aqueduct.reports.reportViewServlet.doGet(reportViewServlet.java:46)

      at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)

      at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)

      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)

      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)

      at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:749)

      at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:487)

      at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:412)

      at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:339)

      at com.jpm.aqueduct.reports.reportViewServlet.doProcess(reportViewServlet.java:313)

      at com.jpm.aqueduct.reports.reportViewServlet.doGet(reportViewServlet.java:46)

      at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)

      at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)

      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)

      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)

      at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)

      at org.apache.catalina.core.StandardContextValve.__invoke(StandardContextValve.java:123)

      at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java)

      at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)

      at org.apache.catalina.core.StandardHostValve.__invoke(StandardHostValve.java:171)

      at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java)

      at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)

      at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)

      at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)

      at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)

      at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1041)

      at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:603)

      at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)

      at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)

      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)

      at java.lang.Thread.run(Thread.java:619)

Let us know if any insight into what could be going wrong here.

Accepted Solutions (0)

Answers (1)

Answers (1)

Former Member
0 Kudos

Check the format of the date and pass it as per the format to your code.

Use the below function on the prompt to get the input format for the prompt.

Prompt.getInputFormat()

Thanks,

Prithvi

Former Member
0 Kudos

Hi Prithvi,

Thanks for the quick reply. We checked the Prompt.getInputFormat string. The value that we get from that method is :  M'/'d'/'yyyy h':'mm':'ss a

I am assuming the character ' is just to encapsulate / and : . The format would be M/d/yyyy hh:mm:ss am.

Right?

Regards,

Kashif

Former Member
0 Kudos

Yes right, something  like

05/07/2015 12:00:00 AM

Thanks,

Prithvi