Quantcast
Channel: SCN : Popular Discussions - Java SDK Application Development
Viewing all 1701 articles
Browse latest View live

Unable to determine installed languages java.lang.NullPointerException

$
0
0

Hi! Each and every one here, I have a few problems, also please help me solve the: when I open a report with tell me error: 

- Unable to determine installed languages

java.lang.NullPointerException

  at java.util.Properties$LineReader.readLine(Properties.java:418)

  at java.util.Properties.load0(Properties.java:337)

  at java.util.Properties.load(Properties.java:325)

  at com.businessobjects.report.web.shared.LangPacks.loadProperties(LangPacks.java:124)

  at com.businessobjects.report.web.shared.LangPacks.getInstance(LangPacks.java:194)

  at com.businessobjects.report.web.render.ViewerRenderer.writeViewerScript(ViewerRenderer.java:494)

  at com.businessobjects.report.web.render.ViewerRenderer.renderResponse(ViewerRenderer.java:81)

  at com.businessobjects.report.web.WorkflowController.renderViewer(WorkflowController.java:553)

  at com.businessobjects.report.web.WorkflowController.doLifecycle(WorkflowController.java:276)

  at com.businessobjects.report.web.WorkflowController.doLifecycle(WorkflowController.java:162)

  at com.crystaldecisions.report.web.ServerControl._processHttpRequest(ServerControl.java:610)

  at com.crystaldecisions.report.web.ServerControl.processHttpRequest(ServerControl.java:345)

  at reporting.reportServlet.doGet(reportServlet.java:145)

  at reporting.reportServlet.doPost(reportServlet.java:168)

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

  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.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)

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

  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:310)

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

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

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

 

 

 

 

When I call on tool panel method, for example, zoom function will tell me when the error:

- Unable to set the ancestors

com.businessobjects.report.web.json.JSONException: JSONObject["ancestors"] is not a JSONArray.

  at com.businessobjects.report.web.json.JSONObject.getJSONArray(JSONObject.java:456)

  at com.businessobjects.report.web.shared.JSONParameter.getDiscreteValueFromJSON(JSONParameter.java:708)

  at com.businessobjects.report.web.shared.JSONParameter.getValueFromJSON(JSONParameter.java:635)

  at com.businessobjects.report.web.shared.JSONParameter.jsonToDefaultFieldValues(JSONParameter.java:613)

  at com.businessobjects.report.web.shared.JSONParameter.getDefaultValues(JSONParameter.java:500)

  at com.businessobjects.report.web.shared.JSONParameter.toParameterField(JSONParameter.java:920)

  at com.businessobjects.report.web.shared.ParametersHelper.jsonToFields(ParametersHelper.java:309)

  at com.businessobjects.report.web.state.ViewerState.restoreCommonState(ViewerState.java:2866)

  at com.businessobjects.report.web.state.ViewerState.restore(ViewerState.java:2769)

  at com.businessobjects.report.web.component.ViewerContainer.restoreState(ViewerContainer.java:210)

  at com.businessobjects.report.web.WorkflowController.loadViewState(WorkflowController.java:418)

  at com.businessobjects.report.web.WorkflowController.init(WorkflowController.java:393)

  at com.businessobjects.report.web.WorkflowController.doLifecycle(WorkflowController.java:252)

  at com.businessobjects.report.web.WorkflowController.doAsyncLifecycle(WorkflowController.java:106)

  at com.crystaldecisions.report.web.viewer.CrystalReportViewerUpdater._processHttpRequest(CrystalReportViewerUpdater.java:61)

  at com.crystaldecisions.report.web.ServerControl.processHttpRequest(ServerControl.java:345)

  at com.crystaldecisions.report.web.viewer.CrystalReportViewerServlet.doUpdate(CrystalReportViewerServlet.java:206)

  at com.crystaldecisions.report.web.viewer.CrystalReportViewerServlet.doPost(CrystalReportViewerServlet.java:194)

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

  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.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)

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

  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:310)

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

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

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

 

Below is my implementation code:

 

IInfoStore iStore = null;

  try {

  iStore = (IInfoStore) es.getService("","InfoStore");

  } catch (SDKException e) {

  // TODO Auto-generated catch block

  e.printStackTrace();

  }

  try {

  oInfoObjects = (IInfoObjects) iStore.query(

  "Select * from CI_INFOOBJECTS Where SI_NAME='"

  + name + "'");

  } catch (SDKException e) {

  // TODO Auto-generated catch block

  e.printStackTrace();

  }

  // retrieve the latest instance of the report

  oInfoObject = (IInfoObject) oInfoObjects.get(0);

  try {

  IReportSourceFactory factoryPS = (IReportSourceFactory) es.getService("PSReportFactory");

  reportSource = factoryPS.openReportSource((oInfoObject),

  Locale.ENGLISH);

  } catch (Exception e) {

  e.printStackTrace();

  }

  // Create a viewer, set the source to the Enterprise report

  CrystalReportViewer viewer = new CrystalReportViewer();

  try { 

     viewer.setReportSource(reportSource);

  } catch (Exception e) {

  e.printStackTrace();

  }

     viewer.setOwnPage(true);

  //viewer.setOwnForm(true);

  viewer.setHasRefreshButton(true);

  viewer.setHasSearchButton(true);   

  viewer.setPrintMode(CrPrintMode.ACTIVEX);

 

 

 

        try {

  viewer.processHttpRequest(request, response,

  getServletConfig().getServletContext(), null);

  } catch (ReportSDKExceptionBase e1) {

  // TODO Auto-generated catch block

  e1.printStackTrace();

  }


Unable to determine installed languagesand Unable to set the ancestors

$
0
0

Hi! Each and every one here, I use BI 4.0,eclipse 3.5,CrystalReports2013,tomcat run and I have a few problems, also please help me solve the when I open a Crystal Reports with tell me error:

 


one:


- Unable to determine installed languages

java.lang.NullPointerException

  at java.util.Properties$LineReader.readLine(Properties.java:418)

  at java.util.Properties.load0(Properties.java:337)

  at java.util.Properties.load(Properties.java:325)

  at com.businessobjects.report.web.shared.LangPacks.loadProperties(LangPacks.java:124)

  at com.businessobjects.report.web.shared.LangPacks.getInstance(LangPacks.java:194)

  at com.businessobjects.report.web.render.ViewerRenderer.writeViewerScript(ViewerRenderer.java:494)

  at com.businessobjects.report.web.render.ViewerRenderer.renderResponse(ViewerRenderer.java:81)

  at com.businessobjects.report.web.WorkflowController.renderViewer(WorkflowController.java:553)

  at com.businessobjects.report.web.WorkflowController.doLifecycle(WorkflowController.java:276)

  at com.businessobjects.report.web.WorkflowController.doLifecycle(WorkflowController.java:162)

  at com.crystaldecisions.report.web.ServerControl._processHttpRequest(ServerControl.java:610)

  at com.crystaldecisions.report.web.ServerControl.processHttpRequest(ServerControl.java:345)

  at reporting.reportServlet.doGet(reportServlet.java:145)

  at reporting.reportServlet.doPost(reportServlet.java:168)

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

  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.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)

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

  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:310)

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

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

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

 

two:

 

When I call on tool panel method, for example, zoom function will tell me when the error:

 

- Unable to set the ancestors

com.businessobjects.report.web.json.JSONException: JSONObject["ancestors"] is not a JSONArray.

  at com.businessobjects.report.web.json.JSONObject.getJSONArray(JSONObject.java:456)

  at com.businessobjects.report.web.shared.JSONParameter.getDiscreteValueFromJSON(JSONParameter.java:708)

  at com.businessobjects.report.web.shared.JSONParameter.getValueFromJSON(JSONParameter.java:635)

  at com.businessobjects.report.web.shared.JSONParameter.jsonToDefaultFieldValues(JSONParameter.java:613)

  at com.businessobjects.report.web.shared.JSONParameter.getDefaultValues(JSONParameter.java:500)

  at com.businessobjects.report.web.shared.JSONParameter.toParameterField(JSONParameter.java:920)

  at com.businessobjects.report.web.shared.ParametersHelper.jsonToFields(ParametersHelper.java:309)

  at com.businessobjects.report.web.state.ViewerState.restoreCommonState(ViewerState.java:2866)

  at com.businessobjects.report.web.state.ViewerState.restore(ViewerState.java:2769)

  at com.businessobjects.report.web.component.ViewerContainer.restoreState(ViewerContainer.java:210)

  at com.businessobjects.report.web.WorkflowController.loadViewState(WorkflowController.java:418)

  at com.businessobjects.report.web.WorkflowController.init(WorkflowController.java:393)

  at com.businessobjects.report.web.WorkflowController.doLifecycle(WorkflowController.java:252)

  at com.businessobjects.report.web.WorkflowController.doAsyncLifecycle(WorkflowController.java:106)

  at com.crystaldecisions.report.web.viewer.CrystalReportViewerUpdater._processHttpRequest(CrystalReportViewerUpdater.java:61)

  at com.crystaldecisions.report.web.ServerControl.processHttpRequest(ServerControl.java:345)

  at com.crystaldecisions.report.web.viewer.CrystalReportViewerServlet.doUpdate(CrystalReportViewerServlet.java:206)

  at com.crystaldecisions.report.web.viewer.CrystalReportViewerServlet.doPost(CrystalReportViewerServlet.java:194)

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

  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.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)

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

  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:310)

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

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

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

 

Below is my implementation code:

 

IInfoStore iStore = null;

  try {

  iStore = (IInfoStore) es.getService("","InfoStore");

  } catch (SDKException e) {

  // TODO Auto-generated catch block

  e.printStackTrace();

  }

  try {

  oInfoObjects = (IInfoObjects) iStore.query(

  "Select * from CI_INFOOBJECTS Where SI_NAME='"

  + name + "'");

  } catch (SDKException e) {

  // TODO Auto-generated catch block

  e.printStackTrace();

  }

  // retrieve the latest instance of the report

  oInfoObject = (IInfoObject) oInfoObjects.get(0);

  try {

  IReportSourceFactory factoryPS = (IReportSourceFactory) es.getService("PSReportFactory");

  reportSource = factoryPS.openReportSource((oInfoObject),

  Locale.ENGLISH);

  } catch (Exception e) {

  e.printStackTrace();

  }

  // Create a viewer, set the source to the Enterprise report

  CrystalReportViewer viewer = new CrystalReportViewer();

  try {

     viewer.setReportSource(reportSource);

  } catch (Exception e) {

  e.printStackTrace();

  }

     viewer.setOwnPage(true);

  //viewer.setOwnForm(true);

  viewer.setHasRefreshButton(true);

  viewer.setHasSearchButton(true);  

  viewer.setPrintMode(CrPrintMode.ACTIVEX);

        try {

  viewer.processHttpRequest(request, response,

  getServletConfig().getServletContext(), null);

  } catch (ReportSDKExceptionBase e) {

  // TODO Auto-generated catch block

  e.printStackTrace();

  }

 

web.xml:

 

  <context-param>

  <param-name>crystal_image_uri</param-name>

  <param-value>/crystalreportviewers</param-value>

  </context-param>

  <context-param>

  <param-name>crystal_image_use_relative</param-name>

  <param-value>webapp</param-value>

  </context-param>

  <servlet>

  <servlet-name>CrystalReportViewerServlet</servlet-name>

  <servlet-class>com.crystaldecisions.report.web.viewer.CrystalReportViewerServlet</servlet-class>

  </servlet>

  <servlet-mapping>

  <servlet-name>CrystalReportViewerServlet</servlet-name>

  <url-pattern>/CrystalReportViewerHandler</url-pattern>

  </servlet-mapping>

 

 

 


Issue with login into the BI Platform Server Using REST Web Services SDK

$
0
0

Hi

 

I am trying to run the following command on SP5 Patch8

 

curl -i -X "POST" -H "content-type: application/xml" -H "accept: application/xml" -d "E:\login.xml" http://localhost:6405/biprws/logon/long | find "X-SAPLogonToken: " > xsaplogontoken.txtfor /f "tokens=1,2 delims= " %a in (xsaplogontoken.txt) do @echo %b > xsaplogontoken.txt

 

The output is

Access Denied

 

When i tried to run the following command its giving the error followed, I have place login.xml in E drive

 

curl -i -X "POST" -H "content-type: application/xml" -H "accept: application/xml" -d "E\login.xml" http://localhost:6405/biprws/logon/long

 

Output:


HTTP/1.1 401 Unauthorized
Server: Apache-Coyote/1.1
Date: Fri, 07 Jun 2013 02:59:20 GMT
Content-Type: application/xml
Content-Length: 3918

<error>
    <error_code>RWS 000079</error_code>
    <message>Please validate your input. (RWS 000079)</message>
    <stack_trace>com.sap.bip.rs.exceptions.InvalidEntSessionException&#13;
        at com.sap.bip.rs.exceptions.InvalidEntSessionException.InvalidInput(Inv
alidEntSessionException.java:99)&#13;
        at com.sap.bip.rs.session.SessionFactory.getSession2(SessionFactory.java
:53)&#13;
        at com.sap.bip.rs.infostore.LogonResource.doLongFormLogon(LogonResource.
java:231)&#13;
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)&#13;
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)&#13;
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)&#13;
        at java.lang.reflect.Method.invoke(Method.java:597)&#13;
        at org.apache.cxf.service.invoker.AbstractInvoker.performInvocation(Abst
ractInvoker.java:173)&#13;
        at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker
.java:89)&#13;
        at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:153)&#13;
        at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:87)&#13;
        at org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInv
okerInterceptor.java:58)&#13;
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:44
1)&#13;
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)&#1
3;
        at java.util.concurrent.FutureTask.run(FutureTask.java:138)&#13;
        at org.apache.cxf.workqueue.SynchronousExecutor.execute(SynchronousExecu
tor.java:37)&#13;
        at org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(Se
rviceInvokerInterceptor.java:106)&#13;
        at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseIntercept
orChain.java:255)&#13;
        at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainIniti
ationObserver.java:113)&#13;
        at org.apache.cxf.transport.servlet.ServletDestination.invoke(ServletDes
tination.java:97)&#13;
        at org.apache.cxf.transport.servlet.ServletController.invokeDestination(
ServletController.java:461)&#13;
        at org.apache.cxf.transport.servlet.ServletController.invoke(ServletCont
roller.java:149)&#13;
        at com.sap.bip.rs.server.servlet.BIPServletController.invoke(BIPServletC
ontroller.java:90)&#13;
        at org.apache.cxf.transport.servlet.AbstractCXFServlet.invoke(AbstractCX
FServlet.java:148)&#13;
        at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(Ab
stractHTTPServlet.java:179)&#13;
        at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractH
TTPServlet.java:103)&#13;
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)&#13;
        at org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(Abstract
HTTPServlet.java:159)&#13;
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:290)&#13;
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:206)&#13;
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV
alve.java:233)&#13;
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextV
alve.java:191)&#13;
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j
ava:127)&#13;
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j
ava:102)&#13;
        at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:
555)&#13;
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal
ve.java:109)&#13;
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.jav
a:298)&#13;
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java
:852)&#13;
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.proce
ss(Http11Protocol.java:588)&#13;
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:48
9)&#13;
        at java.lang.Thread.run(Thread.java:722)&#13;
</stack_trace>
</error>

 

 

I am able to read the file successfully using

curl -G http://<serverName>:6405/biprws/logon/long -H accept="application/xml"

 

Please let me know what acn be the issue

 

 

Regards,

Praveen

Error: Unable to find servers in CMS - Deploying in Sun Solaris Machine

$
0
0

Hi Experts,

 

My team is developing a crystal report java application that access CR Report in the CR server X1.

The report retrieval works fine in windows dev environment (using Tomcat or Oracle App Server (OC4J)).

But when we deploy it to Oracle App server in Sun Solaris machine, we encounter this CMS server connection error.

 

[error]

08/12/01 18:40:43 com.crystaldecisions.sdk.exception.SDKException$OCAFramework: Unable to find servers in CMS <ip address> and cluster  with kind cms and extra criteria null. All such servers could be down or disabled by the administrator.

cause:com.crystaldecisions.enterprise.ocaframework.OCAFrameworkException$AllServersDown: Unable to find servers in CMS <ip address> and cluster  with kind cms and extra criteria null. All such servers could be down or disabled by the administrator.

detail:Unable to find servers in CMS <ip address> and cluster  with kind cms and extra criteria null. All such servers could be down or disabled by the administrator.

The exception originally thrown was com.crystaldecisions.enterprise.ocaframework.OCAFrameworkException$AllServersDown: Unable to find servers in CMS <ip address> and cluster  with kind cms and extra criteria null. All such servers could be down or disabled by the administrator. and had the following message: Unable to find servers in CMS 10.188.12.108 and cluster  with kind cms and extra criteria null. All such servers could be down or disabled by the administrator.

[error]

 

I'm pretty sure that that CR server is not down since we can access it in our windows machine.

This might be a common problem and experts out there can share some resolutions.

 

Thank you in advance.

 

Regards,

Rulix

Logging on to CMS using current session

$
0
0

Hi,

 

I am developing a custom web application (J2EE) using Report Engine Java SDK. As far as the app will be called by means of a URL link located in all webi documents my aim would be to reuse the existing session to perform the actions required by the custom web app. I have been reviewing the Business Intelligence platform Java SDK developer guide (Logging on to the CMS section). As far I can see BI Platform Java SDK provides several methods to login into CMS (see list below) but I have checked that any of methods support reusing a existing session to obtain an IEnterpriseSession object. (e.g: logon token sample creates the first token by creating a session)

 

- Basic logon

- Trusted Authentication     

-Logon tokens

-Serialized sessions

My doubt is: does it exist any way to retrieve the serialized session/logon tokens corresponding to a given SAP BI session in order to pass them as a parameters to a given jsp (where the token may be reused as is shown in the docs).

 

Thanks,

 

Alfons

Delivering serialized session or logon token to external web app?

$
0
0

Hello,

I have the following situation, the user logs into SAP BO 4.0 Launch pad application, he needs to start our external web application and therefore we created an hyperlink. The application opens in a new tab, that's running fine. Our application uses BO SDK to provide some functionality (browse user SAP folders, reports or so), and therefore we need to log in into the current user session.

 

Is there any way to deliver either the serialized session or logon token to external application? Are there any internal variables to be used? Or should I use totally different approach? 

 

There would be a workaround by delivering just the current BO user name to the external app, and than using a separate (administrators) login to fetch only the current user's data. But this I guess is not the right way to do the job.

 

Any help is greatly appreciated

Getting an org.apache.axis2.AxisFault: Read timed out in getDocumentInformation

$
0
0

Our users say it has worked before but now we are consistently getting a Read Timeout Error when we call getDocumentInformation from ReportEngine.

 

Does anyone have any ideas ?

 

I have the stack trace below  

 

Caused by:

org.apache.axis2.AxisFault: Read timed out

at org.apache.axis2.AxisFault.makeFault(AxisFault.java:430)

at org.apache.axis2.transport.http.HTTPSender.sendViaPost(HTTPSender.java:193)

at org.apache.axis2.transport.http.HTTPSender.send(HTTPSender.java:75)

at org.apache.axis2.transport.http.CommonsHTTPTransportSender.writeMessageWithCommons(CommonsHTTPTransportSender.java:371)

at org.apache.axis2.transport.http.CommonsHTTPTransportSender.invoke(CommonsHTTPTransportSender.java:210)

at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:531)

at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:401)

at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:228)

at org.apache.axis2.client.OperationClient.execute(OperationClient.java:163)

at com.businessobjects.dsws.reportengine.ReportEngine.getDocumentInformation(Unknown Source)

... 30 more

Caused by:

java.net.SocketTimeoutException: Read timed out

at java.net.SocketInputStream.read(SocketInputStream.java:140)

at java.io.BufferedInputStream.fill(BufferedInputStream.java:229)com.businessobjects.dsws.reportengine.ReportEngine.getDocumentInformation

Avoiding error: "The session has been logged off or has expired. (FWM 01002)" after session kill / restore

$
0
0

I have a process that is pulling security information for objects in my environment.  After a specified number of objects have been scanned, I am trying to 1) close my current user session, 2) re-open a session, then continue to 3) extract further security information.  The initial security extraction is working fine, but after I close and re-open the session, security extraction no longer works and is throwing the following error:

 

Unable to reconnect to the CMS ......:6400. The session has been logged off or has expired. (FWM 01002)

 

Although it seems I am re-creating an enterprise session with no issue, the "securitySession" is no longer active.  I say this as when I debug in Eclipse I see that there is a "m_sessionLoggedOff" property of some sort within the objSecurityInfo object (which is equal to true after logoff). 

 

Can anyone advise as to what I need to do to properly close and re-open the session in order to be able to pull security info?  Target environment is 3.1.

 

Thanks!!!

 

 

Code snippets:

 

es.logoff();   //ending my session

es = null;

psLog.println("enterprise session ended...");

 

es = CrystalEnterprise.getSessionMgr().logon(cmsusername, password, server, "secEnterprise"); 

psLog.println("created new enterprise session...");

                                               

//must also reinstanciate iStore for retrieving and examining additional objects downstream…

iStore = (IInfoStore) es.getService("", "InfoStore");

psLog.println("re-initialized infostore connection");


......

//now pulling security information

ISecurityInfo2 objSecurityInfo = boInfoObject.getSecurityInfo2();

IEffectivePrincipals effectivePrincipals = objSecurityInfo.getEffectivePrincipals();    //<- this is the line that throws the FWM 01002 error

Iterator objEffPrincipalIterator = effectivePrincipals.iterator();


Migrating to BI 4 - DocumentInstance.getPrompts() throws Exception

$
0
0

We are currently migrating to BI 4. The following lines of code:

 

            IWebi document = (IWebi) report;            ReportEngines reportEngines = null;            ReportEngine reportEngine = null;            DocumentInstance documentInstance = null;            try {                      reportEngines = (ReportEngines) session.getService("ReportEngines");                      reportEngine = reportEngines.getService(ReportEngines.ReportEngineType.WI_REPORT_ENGINE);                      documentInstance = reportEngine.openDocument(document.getID());                      Prompts prompts = documentInstance.getPrompts(); //this method throws exception below
...

 

throws following exception:

 

com.businessobjects.sdk.core.server.CommunicationException$UnexpectedServerException: Unable to create an instance of class 'interface com.businessobjects.sdk.core.server.IServerCommand' with qualifier 'com.sap.sl.sdk.requests.GetPromptListRequest'          at com.businessobjects.sdk.core.exception.ExceptionBuilder.make(ExceptionBuilder.java:144)          at com.businessobjects.sdk.core.exception.ExceptionBuilder.make(ExceptionBuilder.java:101)          at com.businessobjects.sdk.core.server.internal.AbstractServer.processIt(AbstractServer.java:183)          at com.businessobjects.sdk.core.server.internal.AbstractServer.process(AbstractServer.java:133)          at com.businessobjects.sdk.core.server.internal.InstanceServer.process(InstanceServer.java:94)          at com.sap.sl.sdk.services.util.ServerRequestProcessor.processServerRequest(ServerRequestProcessor.java:49)          at com.sap.sl.sdk.workspace.service.WorkspaceServiceImpl.getParametersList(WorkspaceServiceImpl.java:385)          at com.businessobjects.rebean.wi.internal.WIDocumentInstance.getParameters(WIDocumentInstance.java:1088)          at com.businessobjects.rebean.wi.internal.WIDocumentInstance.getPrompts(WIDocumentInstance.java:316)          at com.volvo.itbe.bit.burstingapi.prompts.ReportPrompts.setReportPrompts(ReportPrompts.java:42)          at com.volvo.itbe.bit.burstingapi.scheduler.ReportScheduler.execute(ReportScheduler.java:109)          at com.volvo.itbe.bit.rgds.reportGenerator.ReportGenerator.generateReport(ReportGenerator.java:118)          at com.volvo.itbe.bit.rgds.reportGenerator.WebIReportGenerator.main(WebIReportGenerator.java:42)
Caused by: com.businessobjects.sdk.core.CoreException: Unable to create an instance of class 'interface com.businessobjects.sdk.core.server.IServerCommand' with qualifier 'com.sap.sl.sdk.requests.GetPromptListRequest'          at com.businessobjects.sdk.core.internal.guice.GenericFactory.create(GenericFactory.java:115)          at com.businessobjects.sdk.core.Core.create(Core.java:521)          at com.businessobjects.sdk.core.server.internal.corba.CorbaServerImpl.doProcess(CorbaServerImpl.java:78)          at com.businessobjects.sdk.core.server.internal.AbstractServer.processIt(AbstractServer.java:171)          ... 10 more
Caused by: com.google.inject.ConfigurationException: Missing binding to com.businessobjects.sdk.core.server.IServerCommand annotated with @com.google.inject.name.Named(value=com.sap.sl.sdk.requests.GetPromptListRequest).          at com.google.inject.InjectorImpl.getProvider(InjectorImpl.java:696)          at com.google.inject.InjectorImpl.getInstance(InjectorImpl.java:724)          at com.businessobjects.sdk.core.internal.guice.GenericFactory.create(GenericFactory.java:113)          ... 13 more

 

We have included ALL BI4 java lib jars (which, btw, seems more like a quick and dirty solution) as documented in the user guide.

 

Please tell us what we are missing?

 

Cheers,

M.

PS. using BI4 SP4

 

=== EDIT ===

 

We managed to identify all required rebean libraries and this error is now resolved.

However, we are still experiencing OSGI dependency conflicts with IBM Websphere v7.5.

 

Br,

Marc.

CrystalReportViewer - Setting parameter throws ancestor error on page navigation

$
0
0

We are having web application reports in the application using BO-XI SDK Viewer API. This API approach was working fine earlier. We upgrade our reporting component to SAP BO-4 (Crystal Server 2011) due to EOL of BOXI.

 

We have updated new API’s provided by SAP as per guide.

We updated web based Crystal Report Viewer (DHTML Viewer). The crystalreportviewer folder coming with SAP CS 2011.

We applied updated patch set upto last patch released CS2011 SP4 Patch4.

We still facing issue while viewing report in DHTML viewer provided by SAP. Please advice on below.

In our web application we do have updated folder for /crystalreportviewer.

We dynamically creating enterprise session object to get client document which explained as below –

IEnterpriseSession es = null;

try{

es = sm.logon(mUser, mPassword, mAPSName, mAuthType);

}catch(Exception e){

// request dispatched to error page
}

// Get the Report Application Factory service from Crystal Enterprise

IReportAppFactory rptAppFactory = (IReportAppFactory)es.getService("", "RASReportService");

// Get the InfoStore service from Crystal Enterprise

IInfoStore infoStore = (IInfoStore)es.getService("", "InfoStore");

IInfoObjects oInfoObjects = infoStore.query(“Select * From CI_INFOOBJECTS…for RPT File.”);

ReportClientDocument clientDoc = rptAppFactory.openDocument((IInfoObject)oInfoObjects.get(0), 0, objLocale);

 

Setting parameter

 

// Setting Parameter to clientDoc

Object[] parameters = { 

                                                parseDate(fromDate),

                                                parseDate(endDate),

                                                getLanguageID(request),

                                                reportName,

                                                getLanguageID(request)

                                };                                             

Fields parameterFields = clientDoc.getDataDefController().getDataDefinition().getParameterFields();

for(int index=0; index < parameters.length; index++){

                ParameterField oldParameter = (ParameterField)parameterFields.getField(index);

                ParameterField newParameter = (ParameterField) oldParameter.clone(true);

                newParameter.getCurrentValues().removeAllElements();                                                   

                ParameterFieldDiscreteValue newDiscreteValueObj = new ParameterFieldDiscreteValue();

                newDiscreteValueObj.setValue(parameters[index]);

                newParameter.getCurrentValues().add(newDiscreteValueObj);

                ParameterFieldController paramController = clientDoc.getDataDefController().getParameterFieldController();

                paramController.modify(oldParameter, newParameter);

}

// Create an  Viewer

CrystalReportViewer viewer = new CrystalReportViewer();

//Set the name for the interactive viewer

  • viewer.setName("Crystal_Report_Viewer");
  • viewer.setDisplayPage(true);

//Set Navigation button false

  • viewer.setHasHistoryNavigationButtons(false);

//Set best fit to page true

  • viewer.setBestFitPage(true);

// Set reuse parameter on referesh

  • viewer.setReuseParameterValuesOnRefresh(true);

// Set Own Page true

  • viewer.setOwnPage(true);

// Enabled export and print button

  • viewer.setHasExportButton(true);
  • viewer.setHasPrintButton(true);

// Group Tree Removed

  • viewer.setDisplayGroupTree(false);

// Toggle group false

  • viewer.setHasToggleGroupTreeButton(false);

//viewer.refresh();

// Removed refersh button

  • viewer.setHasRefreshButton(false);
  • viewer.setPrintMode(CrPrintMode.ACTIVEX);

// Set the source for the interactive viewer to the client documents report source

  • viewer.setReportSource(clientDoc.getReportSource());

// Retain parameter and set again for pagination in viewer

setReportURL(viewer,request);

// Process the http request to view the report

  • viewer.processHttpRequest(request, response, getServletConfig().getServletContext(), out);

//response.flushBuffer();

// Close client document

  1. clientDoc.close();

// Dispose of the viewer object

  • viewer.dispose();
  1. es.logoff();

Issue we faced?

a) On Pagination thorws exception in webreportinglog as


[@APPNAME@] ERROR [[ACTIVE] ExecuteThread: '1' for queue: 'weblogic.kernel.Default (self-tuning)'] WebReportLogger.error(62) | Unable to set the ancestors

  1. com.businessobjects.report.web.json.JSONException: JSONObject["ancestors"] is not a JSONArray.

                at com.businessobjects.report.web.json.JSONObject.getJSONArray(JSONObject.java:456)

                at com.businessobjects.report.web.shared.JSONParameter.getDiscreteValueFromJSON(JSONParameter.java:670)

                at com.businessobjects.report.web.shared.JSONParameter.getValueFromJSON(JSONParameter.java:609)

                at com.businessobjects.report.web.shared.JSONParameter.jsonToDefaultFieldValues(JSONParameter.java:587)

                at com.businessobjects.report.web.shared.JSONParameter.getDefaultValues(JSONParameter.java:474)

                at com.businessobjects.report.web.shared.JSONParameter.toParameterField(JSONParameter.java:872)

                at com.businessobjects.report.web.shared.ParametersHelper.jsonToFields(ParametersHelper.java:309)

                at com.businessobjects.report.web.state.ViewerState.restoreCommonState(ViewerState.java:2838)

                at com.businessobjects.report.web.state.ViewerState.restore(ViewerState.java:2741)

                at com.businessobjects.report.web.component.ViewerContainer.restoreState(ViewerContainer.java:210)

                at com.businessobjects.report.web.WorkflowController.loadViewState(WorkflowController.java:418)

                at com.businessobjects.report.web.WorkflowController.init(WorkflowController.java:393)

 

b) On Export / print button nothing happened even request didn’t passed.

 

WEB-INF/web.xml entry as below.

<?xml version="1.0"?>

<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app>

               

                <context-param>

        <param-name>crystal_document_view</param-name>

                                <!-- weblayout : Fills the entire report view pane with the report. There is no grey background -->

        <param-value>weblayout</param-value>

                </context-param>

               

                <context-param>

                                <param-name>crystal_exception_log_file</param-name>

                                <param-value>webreportingexception.log</param-value>

                </context-param>

 

                <context-param>

        <param-name>crystal_exception_info</param-name>

                                <!-- long - Displays the exception information with the accompanying stack trace. -->

        <param-value>long</param-value>

                </context-param>

                <context-param>

                                <param-name>crystal_image_uri</param-name>

                                <param-value>/TangibleWebApp/crystalreportviewers</param-value>

                </context-param>

                <context-param>

        <param-name>crystal_image_use_relative</param-name>

        <param-value>webapp</param-value>

                </context-param>

                <context-param>

                                <param-name>crystal_processing_indicator_delay</param-name>

                                <param-value>100</param-value>

                </context-param>

                <context-param>

                                <param-name>crystal_use_asynchronous_requests</param-name>

                                <param-value>false</param-value>

                </context-param>

                <context-param>

                                <param-name>crystal_servlet_uri</param-name>

                                <param-value>/TangibleWebApp/CrystalReportViewerHandler</param-value>

                </context-param>

 

                <servlet>

        <servlet-name>CrystalReportViewerServlet</servlet-name>

        <servlet-class>com.crystaldecisions.report.web.viewer.CrystalReportViewerServlet</servlet-class>

                </servlet>

                <servlet-mapping>

                                <servlet-name>CrystalReportViewerServlet</servlet-name>

                                <url-pattern>/TangibleWebApp/CrystalReportViewerHandler</url-pattern>

                </servlet-mapping>

               

                <servlet>

                                <servlet-name>document</servlet-name>

                                <servlet-class>com.oreilly.servlet.OpenDoc</servlet-class>

                </servlet>

 

                <servlet>

                                <servlet-name>InitialServlet</servlet-name>

                                <servlet-class>com.servlet.InitialServlet</servlet-class>

                                <load-on-startup>1</load-on-startup>

                </servlet>

               

                <servlet>

                                <servlet-name>FactorsLogo</servlet-name>

                                <servlet-class>com.servlet.FactorsLogo</servlet-class>

                </servlet>

               

                <servlet-mapping>

                                <servlet-name>FactorsLogo</servlet-name>

                                <url-pattern>/servlet/FactorsLogo</url-pattern>

                </servlet-mapping>

               

                <servlet-mapping>

                                <servlet-name>document</servlet-name>

                                <url-pattern>/servlet/document</url-pattern>

                </servlet-mapping>

                <session-config>

                                <session-timeout>30</session-timeout>

                </session-config>

               

                <welcome-file-list>

                                <welcome-file>/tangible/index.jsp</welcome-file>

                </welcome-file-list>

               

                <listener>

                                <listener-class>com.common.util.applistener.AppListener</listener-class> 

                </listener>

</web-app>

 

Thanks in advance for your advice / suggestions.

Upload different file types to BO using JAVA SDK

$
0
0

Hi experts,

 

I m trying to upload a lot of files into Business Objects using Java SDK. For PDF files,I m using the function below to get the PluginInfo:

 

==>boInfoStore.getPluginMgr().getPluginInfo("CrystalEnterprise.PDF")

 

what about other file types: ppt, pptx, doc, docx, xls, JPG ?

 

Thank you for your help.

Abdess,

Adding A Ldap group

$
0
0

Can you please provide an alternate way of adding a new ldap group versus just creating it in CMC and then doing the ldap update from authentication in CMC? ( we are unable to us ethat at this time)


Can the following be used:

<%@ page import = "com.crystaldecisions.sdk.framework.*"%>
<%@ page import = "com.crystaldecisions.sdk.exception.*"%>
<%@ page import = "com.crystaldecisions.sdk.occa.infostore.*"%>
<%@ page import = "com.crystaldecisions.sdk.occa.security.*"%>
<%@ page import = "com.crystaldecisions.sdk.occa.pluginmgr.*"%>
<%@ page import = "com.crystaldecisions.sdk.plugin.desktop.user.*"%>
<%@ page import = "com.crystaldecisions.sdk.plugin.desktop.usergroup.*"%>
<%@ page import = " com.crystaldecisions.sdk.plugin.desktop.common.*"%>
<%@ page import = "java.util.*"%>

<html>
<head>
<title>Add User Group</title>
</head>
<body>

<%
// Set the logon information
    String boUser = "Administrator";
    String boPassword = "";
    String boCmsName = "localhost";
    String boAuthType = "secEnterprise";

// Declare Variables
    IInfoStore boInfoStore=null;
IInfoObjects boInfoObjects=null;
SDKException failure = null;
IEnterpriseSession boEnterpriseSession = null;
   
IPluginMgr boPluginMgr = null; //Plugin Manager returned from InfoStore
    IPluginInfo boUserGroupPlugin = null; //User PluginInfo object
    IInfoObjects boNewInfoObjects = null; //new collection created from InfoStore
    IInfoObject boNewUserGroup = null;
    IUserGroup boUserGroupPluginInfo = null; //IUser interface to allow us to change user specific settings
    IInfoObject boExistingUser = null;
    Set boUserList = null;
   
   try{
        // Logon and obtain an Enterprise Session
     boEnterpriseSession = CrystalEnterprise.getSessionMgr().logon( boUser, boPassword, boCmsName, boAuthType);

        boInfoStore = (IInfoStore) boEnterpriseSession.getService("", "InfoStore");
       
   //Retrieve the PluginManager and use it to retrieve User plug-in.
        boPluginMgr = boInfoStore.getPluginMgr();
        boUserGroupPlugin = boPluginMgr.getPluginInfo("CrystalEnterprise.UserGroup");
       
   //Create a new, empty InfoObjects collection.
        boNewInfoObjects = boInfoStore.newInfoObjectCollection();

        //Add the plug-in to the collection.  This creates a new InfoObject that represents a new User
        boNewUserGroup = boNewInfoObjects.add(boUserGroupPlugin);

        //Set the name and description of the User.
        boNewUserGroup.setTitle("New User Group");
        boNewUserGroup.setDescription("A new user group created by AddUserGroup.jsp");

        //cast the InfoObject as an IUserGroup to retrieve the Set object
        boUserGroupPluginInfo = (IUserGroup) boNewUserGroup;
        boUserList = boUserGroupPluginInfo.getUsers();

        //retrieve the SI_ID of the user we wish to add to the group
        //assign this ID value to an Integer object
        boExistingUser = (IInfoObject)boInfoStore.query("SELECT SI_ID From CI_SYSTEMOBJECTS Where SI_PROGID='CrystalEnterprise.User' and SI_NAME = 'Guest'").get(0);
     Integer userID = new Integer(boExistingUser.properties().getProperty("SI_ID").toString());
       
        //add the Integer object to the Set object returend above
        boUserList.add(userID);

        //Commit the changes to the InfoStore.
        boInfoStore.commit(boNewInfoObjects);
        out.println("The New User Group has been created!");
     }
    catch(SDKException e)
    {
        out.println(e.getMessage());
    }
    finally
    {
     boEnterpriseSession.logoff();
    }
%>

</body>
</html>

Error: Unable to find servers in CMS - Deploying in Sun Solaris Machine

$
0
0

Hi Experts,

 

My team is developing a crystal report java application that access CR Report in the CR server X1.

The report retrieval works fine in windows dev environment (using Tomcat or Oracle App Server (OC4J)).

But when we deploy it to Oracle App server in Sun Solaris machine, we encounter this CMS server connection error.

 

[error]

08/12/01 18:40:43 com.crystaldecisions.sdk.exception.SDKException$OCAFramework: Unable to find servers in CMS <ip address> and cluster  with kind cms and extra criteria null. All such servers could be down or disabled by the administrator.

cause:com.crystaldecisions.enterprise.ocaframework.OCAFrameworkException$AllServersDown: Unable to find servers in CMS <ip address> and cluster  with kind cms and extra criteria null. All such servers could be down or disabled by the administrator.

detail:Unable to find servers in CMS <ip address> and cluster  with kind cms and extra criteria null. All such servers could be down or disabled by the administrator.

The exception originally thrown was com.crystaldecisions.enterprise.ocaframework.OCAFrameworkException$AllServersDown: Unable to find servers in CMS <ip address> and cluster  with kind cms and extra criteria null. All such servers could be down or disabled by the administrator. and had the following message: Unable to find servers in CMS 10.188.12.108 and cluster  with kind cms and extra criteria null. All such servers could be down or disabled by the administrator.

[error]

 

I'm pretty sure that that CR server is not down since we can access it in our windows machine.

This might be a common problem and experts out there can share some resolutions.

 

Thank you in advance.

 

Regards,

Rulix

Business Objects sessions bleeding together with OpenDoc reports

$
0
0

I have a custom application that logs a user into Business Objects, and calls OpenDoc using the generated loginToken. I store the Business Objects session in the application session. If you log into the application as one user and open a report with the following query:

<br><br>

SELECT  mtf.id
FROM  mtf,  facilities,  users
WHERE  facilities.id = mtf.id  AND facilities.id = users.facility_id   AND users.login_name = @Variable('BOUSER')

<br><br>

The query runs correctly and returns the correct result. If you log out of the application without closing the browser window, log in as a different user and run the same report you get the result the first user got, as if the @Variable('BOUSER') was returning the first username.

<br><br>

Each user is logged into Business Objects with their own username, I have verified this in the code. I aslo verified that When the first user logs out of the application the Business Objects session is destroyed, and a new one created for the second user. Looking at the HTTP headers I have seen that when the first user logs in and opens a report the following cookie gets set:

<br><br>

HTTP/1.1 200 OK

Set-Cookie:

InfoViewses=3%261%2C8P%264E%3D1704Jk1XlRb8I5GtMTG1%2C8P%26Tn%3D%7B3%26.1%3D%7B3%262%3D1608%2C03%26O%3DFavoritesFolder%2C0P%7D%2C2z%26.2%3D%7B3%262%3

D1609%2C03%26O%3DPersonalCategory%2C0P%7D%2C2z%26.3%3D%7B3%262%3D1610%2C03%26O%3DInbox%2C0P%7D%2C2z%26U%3D3%2C03%7D%2C%3Fz%264F%3D1607%2C8P%26S5%2C8

8%26Tm%3D3650%2C83%265U%3D1705JEngK4tWp4tT87D21704Jk1XlRb8I5GtMTG1%2C8P%2635%3Dtestuser1%2C8P%2663%3Dtoken%2C8P%26pa%2C8P%262r%3Ddev-bo.company.com%

3A6400%2C8P%263k%3D%40dev-bo.company.com%2C8P; Path=/; HttpOnly

<br><br>

The second user who logs in already has this set with the same value, including the testuser1 string which is the username of the first user. This is the only place I can see the username getting passed around.

<br><br>

 

This is how I log users in to Business Objects and get the logon Token:

<br><br>

IEnterpriseSession session = CrystalEnterprise.getSessionMgr().logon(username, defaultPassword, cmsHostName + ":" + cmsPort, authType);
String logonToken = session.getLogonTokenMgr().getDefaultToken();

<br><br>

 

This is how I launch the reports:

<br><br>

String url = serverUrl + "/OpenDocument/opendoc/openDocument.jsp?sIDType=CUID&sType=wid&sRefesh=Y&iDocID=" + reportCuid + "&token=" + logonToken;

<br><br>

 

This problem does not occur with logging in and out of infoview. I am using Business Objects XI 3.1 SP2

<br><br>

Thanks for your help

<br><br>

Tim

 

Edited by: twkatadin on Dec 18, 2009 3:17 AM

BOXI 3.1 Reports losing universe connection when exported

$
0
0

We have a BOXI 3.1 environment where we have the server software on one server, the CMC and InfoView running on another server, and a thrid application server running our custom java app with the OpenDocument and AnalyticalReporting war files. These war files are simply taken out of the server setup as is, the only change we make is to the web.xml where we add in our security configuration so that they are part of our session management scheme. We log the user in behind the scenes with the SDK when they hit the reports section of our application. We generate a list of the reports and then use OpenDoc calls to display them. We also have the WebIntelligence applet in our application for report creation.

 

We have recently found that reports that the users create through our application do not contain a reference to the universe. When I run a query on CI_INFOOBJECTS the si_universe field for these reports has SI_TOTAL = 0. When we create reports using the same user account in InfoView, the si_universe field has 1 = [universe id] and SI_TOTAL = 1. There is also more information in the SI_WEBI_DOC_PROPERTIES about the universe for reports created in InfoView; for example:

 

InfoView created report: <WEBI_DP DPNAME="Query 1" DPID="DP0" DSNAME="Blood Inventory Report Universe" DSID="UnivCUID=AT6v3dFe6ddBn8WIr60gFaw;UnivID=874;ShortName=Blood_Inventory_Report_Universe;UnivName=Blood Inventory Report Universe"/>

 

Custom app created report: <WEBI_DP DPNAME="Query 1" DPID="DP0" DSNAME="Blood Inventory Report Universe" DSID="UnivID=874"/>

 

The reports run fine in the environment they were created in, but when we export them to a biar file and import them on another environment they give a "Universe not found" WIS00501 error when refreshing data or trying to edit the query. Reports created through InfoView with the same user account export and run fine on the new environment.

 

I have tried to go into InfoView on the source tier both as the user and as administrator and re-select the universe, re-run the query, and save the report. This does not add the universe association. In the destination tier I can not edit the query on these reports, the applet just hangs when I try.

 

Has anyone run into this before? Any ideas of why this is occurring or how we can reassociate existing reports with the universe in the original environment?

 

Thanks for your help with this

Tim


Delivering serialized session or logon token to external web app?

$
0
0

Hello,

I have the following situation, the user logs into SAP BO 4.0 Launch pad application, he needs to start our external web application and therefore we created an hyperlink. The application opens in a new tab, that's running fine. Our application uses BO SDK to provide some functionality (browse user SAP folders, reports or so), and therefore we need to log in into the current user session.

 

Is there any way to deliver either the serialized session or logon token to external application? Are there any internal variables to be used? Or should I use totally different approach? 

 

There would be a workaround by delivering just the current BO user name to the external app, and than using a separate (administrators) login to fetch only the current user's data. But this I guess is not the right way to do the job.

 

Any help is greatly appreciated

Report Page Size/Orientation. Interface PageInfo in BI 4.0?

$
0
0

  Hi,

 

   The development of the SAP BI 4.0 SDK Customization that we are planning requires to identify the Page Orientation (Landscape/Portratit) and size (A3/A4) of a given report. By checking the Report Engine SDK Javadoc this info may be easily retrieved from methods provided by the pageInfo interface. But  documentation clearly states that ¨¨This interface is no longer functional from the SAP BusinessObjects XI 4.0 release onwards."

 

My question is: Does it exist any way to obtain this info using Java Report Engine SDK in BI 4.0? If not does it exists any other SDK (Restful web services?) that could provide this info?

 

Thanks

 

Alfons

How to get the universe metadata information (class , tables...) through JSP coding ?

$
0
0

Hi,

 

     I am new to BO. I am developing tool which will extract the metadat information of report and universe using JSP (java ) in BO XI R2 . My problem is how to get universe metadata ? i listed the universe name by quering the CI_APPOBJECTS table. i couldn't get other information (Class and objects in the universe ).. I need the advice or idea or code to complete work... Please help to resolve my problem..

 

 

Thanks Advance

CrystalReportViewer - Setting parameter throws ancestor error on page navigation

$
0
0

We are having web application reports in the application using BO-XI SDK Viewer API. This API approach was working fine earlier. We upgrade our reporting component to SAP BO-4 (Crystal Server 2011) due to EOL of BOXI.

 

We have updated new API’s provided by SAP as per guide.

We updated web based Crystal Report Viewer (DHTML Viewer). The crystalreportviewer folder coming with SAP CS 2011.

We applied updated patch set upto last patch released CS2011 SP4 Patch4.

We still facing issue while viewing report in DHTML viewer provided by SAP. Please advice on below.

In our web application we do have updated folder for /crystalreportviewer.

We dynamically creating enterprise session object to get client document which explained as below –

IEnterpriseSession es = null;

try{

es = sm.logon(mUser, mPassword, mAPSName, mAuthType);

}catch(Exception e){

// request dispatched to error page
}

// Get the Report Application Factory service from Crystal Enterprise

IReportAppFactory rptAppFactory = (IReportAppFactory)es.getService("", "RASReportService");

// Get the InfoStore service from Crystal Enterprise

IInfoStore infoStore = (IInfoStore)es.getService("", "InfoStore");

IInfoObjects oInfoObjects = infoStore.query(“Select * From CI_INFOOBJECTS…for RPT File.”);

ReportClientDocument clientDoc = rptAppFactory.openDocument((IInfoObject)oInfoObjects.get(0), 0, objLocale);

 

Setting parameter

 

// Setting Parameter to clientDoc

Object[] parameters = { 

                                                parseDate(fromDate),

                                                parseDate(endDate),

                                                getLanguageID(request),

                                                reportName,

                                                getLanguageID(request)

                                };                                             

Fields parameterFields = clientDoc.getDataDefController().getDataDefinition().getParameterFields();

for(int index=0; index < parameters.length; index++){

                ParameterField oldParameter = (ParameterField)parameterFields.getField(index);

                ParameterField newParameter = (ParameterField) oldParameter.clone(true);

                newParameter.getCurrentValues().removeAllElements();                                                   

                ParameterFieldDiscreteValue newDiscreteValueObj = new ParameterFieldDiscreteValue();

                newDiscreteValueObj.setValue(parameters[index]);

                newParameter.getCurrentValues().add(newDiscreteValueObj);

                ParameterFieldController paramController = clientDoc.getDataDefController().getParameterFieldController();

                paramController.modify(oldParameter, newParameter);

}

// Create an  Viewer

CrystalReportViewer viewer = new CrystalReportViewer();

//Set the name for the interactive viewer

  • viewer.setName("Crystal_Report_Viewer");
  • viewer.setDisplayPage(true);

//Set Navigation button false

  • viewer.setHasHistoryNavigationButtons(false);

//Set best fit to page true

  • viewer.setBestFitPage(true);

// Set reuse parameter on referesh

  • viewer.setReuseParameterValuesOnRefresh(true);

// Set Own Page true

  • viewer.setOwnPage(true);

// Enabled export and print button

  • viewer.setHasExportButton(true);
  • viewer.setHasPrintButton(true);

// Group Tree Removed

  • viewer.setDisplayGroupTree(false);

// Toggle group false

  • viewer.setHasToggleGroupTreeButton(false);

//viewer.refresh();

// Removed refersh button

  • viewer.setHasRefreshButton(false);
  • viewer.setPrintMode(CrPrintMode.ACTIVEX);

// Set the source for the interactive viewer to the client documents report source

  • viewer.setReportSource(clientDoc.getReportSource());

// Retain parameter and set again for pagination in viewer

setReportURL(viewer,request);

// Process the http request to view the report

  • viewer.processHttpRequest(request, response, getServletConfig().getServletContext(), out);

//response.flushBuffer();

// Close client document

  1. clientDoc.close();

// Dispose of the viewer object

  • viewer.dispose();
  1. es.logoff();

Issue we faced?

a) On Pagination thorws exception in webreportinglog as


[@APPNAME@] ERROR [[ACTIVE] ExecuteThread: '1' for queue: 'weblogic.kernel.Default (self-tuning)'] WebReportLogger.error(62) | Unable to set the ancestors

  1. com.businessobjects.report.web.json.JSONException: JSONObject["ancestors"] is not a JSONArray.

                at com.businessobjects.report.web.json.JSONObject.getJSONArray(JSONObject.java:456)

                at com.businessobjects.report.web.shared.JSONParameter.getDiscreteValueFromJSON(JSONParameter.java:670)

                at com.businessobjects.report.web.shared.JSONParameter.getValueFromJSON(JSONParameter.java:609)

                at com.businessobjects.report.web.shared.JSONParameter.jsonToDefaultFieldValues(JSONParameter.java:587)

                at com.businessobjects.report.web.shared.JSONParameter.getDefaultValues(JSONParameter.java:474)

                at com.businessobjects.report.web.shared.JSONParameter.toParameterField(JSONParameter.java:872)

                at com.businessobjects.report.web.shared.ParametersHelper.jsonToFields(ParametersHelper.java:309)

                at com.businessobjects.report.web.state.ViewerState.restoreCommonState(ViewerState.java:2838)

                at com.businessobjects.report.web.state.ViewerState.restore(ViewerState.java:2741)

                at com.businessobjects.report.web.component.ViewerContainer.restoreState(ViewerContainer.java:210)

                at com.businessobjects.report.web.WorkflowController.loadViewState(WorkflowController.java:418)

                at com.businessobjects.report.web.WorkflowController.init(WorkflowController.java:393)

 

b) On Export / print button nothing happened even request didn’t passed.

 

WEB-INF/web.xml entry as below.

<?xml version="1.0"?>

<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app>

               

                <context-param>

        <param-name>crystal_document_view</param-name>

                                <!-- weblayout : Fills the entire report view pane with the report. There is no grey background -->

        <param-value>weblayout</param-value>

                </context-param>

               

                <context-param>

                                <param-name>crystal_exception_log_file</param-name>

                                <param-value>webreportingexception.log</param-value>

                </context-param>

 

                <context-param>

        <param-name>crystal_exception_info</param-name>

                                <!-- long - Displays the exception information with the accompanying stack trace. -->

        <param-value>long</param-value>

                </context-param>

                <context-param>

                                <param-name>crystal_image_uri</param-name>

                                <param-value>/TangibleWebApp/crystalreportviewers</param-value>

                </context-param>

                <context-param>

        <param-name>crystal_image_use_relative</param-name>

        <param-value>webapp</param-value>

                </context-param>

                <context-param>

                                <param-name>crystal_processing_indicator_delay</param-name>

                                <param-value>100</param-value>

                </context-param>

                <context-param>

                                <param-name>crystal_use_asynchronous_requests</param-name>

                                <param-value>false</param-value>

                </context-param>

                <context-param>

                                <param-name>crystal_servlet_uri</param-name>

                                <param-value>/TangibleWebApp/CrystalReportViewerHandler</param-value>

                </context-param>

 

                <servlet>

        <servlet-name>CrystalReportViewerServlet</servlet-name>

        <servlet-class>com.crystaldecisions.report.web.viewer.CrystalReportViewerServlet</servlet-class>

                </servlet>

                <servlet-mapping>

                                <servlet-name>CrystalReportViewerServlet</servlet-name>

                                <url-pattern>/TangibleWebApp/CrystalReportViewerHandler</url-pattern>

                </servlet-mapping>

               

                <servlet>

                                <servlet-name>document</servlet-name>

                                <servlet-class>com.oreilly.servlet.OpenDoc</servlet-class>

                </servlet>

 

                <servlet>

                                <servlet-name>InitialServlet</servlet-name>

                                <servlet-class>com.servlet.InitialServlet</servlet-class>

                                <load-on-startup>1</load-on-startup>

                </servlet>

               

                <servlet>

                                <servlet-name>FactorsLogo</servlet-name>

                                <servlet-class>com.servlet.FactorsLogo</servlet-class>

                </servlet>

               

                <servlet-mapping>

                                <servlet-name>FactorsLogo</servlet-name>

                                <url-pattern>/servlet/FactorsLogo</url-pattern>

                </servlet-mapping>

               

                <servlet-mapping>

                                <servlet-name>document</servlet-name>

                                <url-pattern>/servlet/document</url-pattern>

                </servlet-mapping>

                <session-config>

                                <session-timeout>30</session-timeout>

                </session-config>

               

                <welcome-file-list>

                                <welcome-file>/tangible/index.jsp</welcome-file>

                </welcome-file-list>

               

                <listener>

                                <listener-class>com.common.util.applistener.AppListener</listener-class> 

                </listener>

</web-app>

 

Thanks in advance for your advice / suggestions.

Could not initialize class com.businessobjects.bcm.BCM

$
0
0

Hi!

 

We have java sdk-application working with bo3.1 and now we want to upgrade it to work with bo4.1!

 

We have updated the jar-files, but still it complains about initializing the BCM-class.

 

org.springframework.web.util.NestedServletException: Handler processing failed; nested exception is java.lang.NoClassDefFoundError: Could not initialize class com.businessobjects.bcm.BCM

 

Note that the error is not ClassNotFoundException. It finds the class, but cannot initialize it?

 

I have this bcm.jar in our war-package and I have also tried to put it to tomcat/lib -folder. Doesn't help! We have tomcat 6.

If I remove the bcm.jar, then it gives ClassNotFoundException for BCMException-class which is also in the bcm-jar like the BCM-class itself.

 

Does anyone have an idea what to do?

 

Thanks!

Viewing all 1701 articles
Browse latest View live




Latest Images