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

Crystal Reports - Jsp integration in NetBeans 8.1

$
0
0

I have developed my dynamic web application with MVC (Java and Jsp) using NetBeans 8.1 I have also designed two reports using Crystal Reports 2008. Now I want to integrate the reports into my application (jsp). What steps can I follow to achieve this? I have attached the jsp I am using in attempting to run my report but I am stuck. Please assist.

Regards,

Fred.


The class com.azalea.ufl.BarcodeLibrary could not be instantiated as a FormulaFunctionLibrary

$
0
0

I'm getting an exception

 

com.crystaldecisions.reports.formulas.FormulaFunctionSetupException: The class com.azalea.ufl.BarcodeLibrary could not be instantiated as a FormulaFunctionLibrary.

at com.crystaldecisions.reports.formulas.FunctionManager.createExternalFunctionLibrary(SourceFile:163) ~[CrystalReportsRuntime-12.2.216.2042.jar:12.2.216.2042]

at com.crystaldecisions.reports.reportdefinition.ReportDocument.a0(SourceFile:160) [CrystalReportsRuntime-12.2.216.2042.jar:12.2.216.2042]

at com.crystaldecisions.reports.reportdefinition.ReportDocument.<clinit>(SourceFile:119) [CrystalReportsRuntime-12.2.216.2042.jar:12.2.216.2042]

at com.crystaldecisions.reports.dataengine.DataSourceManager.<clinit>(SourceFile:129) [CrystalReportsRuntime-12.2.216.2042.jar:12.2.216.2042]

at com.crystaldecisions.reports.dataengine.DataSourceManagerFactory.a(SourceFile:37) [CrystalReportsRuntime-12.2.216.2042.jar:12.2.216.2042]

at com.businessobjects.reports.reportconverter.v12.V12SaveLoader.a(SourceFile:236) [CrystalReportsRuntime-12.2.216.2042.jar:12.2.216.2042]

at com.businessobjects.reports.loader.ReportLoader.a(SourceFile:205) [CrystalReportsRuntime-12.2.216.2042.jar:12.2.216.2042]

at com.businessobjects.reports.sdk.JRCReportLoader.a(SourceFile:137) [CrystalReportsRuntime-12.2.216.2042.jar:12.2.216.2042]

at com.businessobjects.reports.sdk.JRCReportLoader.a(SourceFile:76) [CrystalReportsRuntime-12.2.216.2042.jar:12.2.216.2042]

at com.businessobjects.reports.sdk.requesthandler.ReportDocumentRequestHandler.a(SourceFile:136) [CrystalReportsRuntime-12.2.216.2042.jar:12.2.216.2042]

at com.businessobjects.reports.sdk.JRCCommunicationAdapter.<init>(SourceFile:228) [CrystalReportsRuntime-12.2.216.2042.jar:12.2.216.2042]

at com.businessobjects.sdk.erom.jrc.a.<init>(SourceFile:43) [CrystalReportsRuntime-12.2.216.2042.jar:12.2.216.2042]

at com.businessobjects.sdk.erom.jrc.ReportAgentFactory.createAgent(SourceFile:46) [CrystalReportsRuntime-12.2.216.2042.jar:12.2.216.2042]

at com.crystaldecisions.proxy.remoteagent.RemoteAgent$a.<init>(SourceFile:703) [CrystalReportsRuntime-12.2.216.2042.jar:12.2.216.2042]

at com.crystaldecisions.proxy.remoteagent.RemoteAgent.a(SourceFile:662) [CrystalReportsRuntime-12.2.216.2042.jar:12.2.216.2042]

at com.crystaldecisions.proxy.remoteagent.RemoteAgent.a(SourceFile:632) [CrystalReportsRuntime-12.2.216.2042.jar:12.2.216.2042]

at com.crystaldecisions.sdk.occa.report.application.ClientDocument.if(SourceFile:504) [CrystalReportsRuntime-12.2.216.2042.jar:12.2.216.2042]

at com.crystaldecisions.sdk.occa.report.application.ClientDocument.open(SourceFile:669) [CrystalReportsRuntime-12.2.216.2042.jar:12.2.216.2042]

at com.crystaldecisions.sdk.occa.report.application.ReportClientDocument.openReport(SourceFile:229) [CrystalReportsRuntime-12.2.216.2042.jar:12.2.216.2042]

 

 

 

What could be the reason?

Exception in Java migration from BO 3.1 to 4.1

$
0
0

Hi All,

 

We are migrating our applications from BO 3.1 to 4.1.

 

There is a java application (IBM Websphere Application Server 8.5) already written which displays crystal reports hosted on BO server. Now due to migration, there are changes that needs to be done at java end as well.

 

This is what we have done at Java end. Please confirm if I am wrong or if something more needs to be done as I am facing issues in migration f Java application:

 

 

  1. Replaced all old jar files (cecore.jar, celib.jar, ceplugins.jar, cereports.jar, cesession.jar, rasapp.jar, rascore.jar, reportSourceFactory.jar, ReportTemplate.jar, webreporting.jar, WebReportWizaed.jar) with the jar files shipped with the BO 4.1 product present in java/lib and external folders.
  2. Restarted java server and found exception (same is attached) while logon into BO server.

 

 

Please help.

Problem with a jar file rebean.wi when updating 3.1 to 4.1

$
0
0

I'm updating our java application using the SDK and I met an issue with the jar rebean.wi.jar.

 

In our jar from 3.1, we have the class com.businessobjects.rebean.wi.occa.WebiReportEngineFactory

 

But in the jar I get from the installation folder of BO 4.1, we do not have that class anymore.

 

Can you help me?

 

Thanks in advance !

Logging off / invalidating an OpenDocument session

$
0
0

We're running into a problem with the use of OpenDocument.  Specifically, after a user is done using a WebI we'd like to logoff and invalidate their session.  The logical thing to do would be to redirect their browser to the Logoff URL used when you click Log Off from the SAP Dashboard.

 

Unfortunately, this URL (e.g. http://hostname:8080/BOE/portal/1407311547/InfoView/logon/logoff.do?bttoken=<token>) appears to require a form of CSRF (something called the bttoken) which if omitted doesn't allow the logout to work.


I was wondering if anyone else had come up with a good solution to this problem?

 

SAP claims this isn't being addressed in older KB issues 1384496 & 1437785 although they provide a workaround for the problem in 1897531 which only works for BO 3.1.

 

Not logging off the user when they're done using the WebApp rendering the WebI isn't the end of the world, but it would be very nice to do (reset state, free up resources on BO server, free up in-use licenses, allow BO user preferences e.g. locale to take effect without waiting for a session timeout).

 

====

 

Incidentally, as a bit of a surprise to me, the following code and redirecting the user to the OpenDocument URL with a logonToken establishes two separate sessions.  Calling logoff() on the boSession below will close out the first session, but doesn't effect the OpenDocument session at all.

 

final ISessionMgr sessionMgr = CrystalEnterprise.getSessionMgr();

ITrustedPrincipal trustedPrincipal = sessionMgr.createTrustedPrincipal(boUser, boServer, boSharedKey);

IEnterpriseSession boSession = sessionMgr.logon(trustedPrincipal);


String logonToken =  boSession.getLogonTokenMgr().getDefaultToken();

// Redirect user to OpenDocument/opendoc/openDocument.jsp with token=logonToken

java.lang.NoSuchMethodError error in Java application migration from BO 3.1 to 4.1

$
0
0

Hi All,

 

We are migrating our applications from BO 3.1 to 4.1.

 

There is a java application (hosted on IBM WebSphere Application Server 8.5) already written which displays crystal reports hosted on BO server(Managed RAS). This application is being migrated by replacing all old BO jars with new 4.1 jars

 

This is what we have done at Java end. Please confirm if I am wrong or if something more needs to be done as I am facing issues in migrating Java application:

 

 

  1. Replaced all old jar files (cecore.jar, celib.jar, ceplugins.jar, cereports.jar, cesession.jar, rasapp.jar, rascore.jar, reportSourceFactory.jar, ReportTemplate.jar, webreporting.jar, WebReportWizaed.jar, activation.jar, corbaidl.jar, ebus405.jar) with the jar files shipped with the BO 4.1 product present in java/lib and external folders.
  2. Restarted java server and faced exception. The code and the exception stack trace is given below:
  3. We are able to login and query on CI_INFOOBJECTS, but exception is thrown when we try to open document.
  4. We get exception java.lang.NoSuchMethodError: com/crystaldecisions/xml/serialization/SaveOption.setSaveAsLegacyCR(Z)V

 

Code:

 

public static ReportClientDocument getReportClientDocument(IEnterpriseSession enterpriseSession, String rptName){  String className = "com.util.GetReportClientDocument";  ReportClientDocument clientDoc = null;  try{  IInfoStore iStore = (IInfoStore) enterpriseSession.getService("InfoStore",ServiceNames.OCA_I_IINFO_STORE);  IInfoObjects infoObjects = iStore.query("Select SI_ID From CI_INFOOBJECTS Where SI_NAME='" + rptName+ "' And SI_INSTANCE=0");        IInfoObject infoObject = (IInfoObject)infoObjects.get(0);        IReportAppFactory reportAppFactory = (IReportAppFactory) enterpriseSession.getService("RASReportFactory");        clientDoc = reportAppFactory.openDocument(infoObject.getID(),0, java.util.Locale.US); // Exception faced in this line         }catch (Exception e)  {  e.printStackTrace();  LogUtil.getLogger(className).error("Error while creating the ReportClientDocument, reason could be report name "+rptName+" is not same as in the BO server");  }         return clientDoc;  }
[11/16/15 14:21:46:288 IST] 0000007e SystemErr     R java.lang.NoSuchMethodError: com/crystaldecisions/xml/serialization/SaveOption.setSaveAsLegacyCR(Z)V
[11/16/15 14:21:46:288 IST] 0000007e SystemErr     R at com.crystaldecisions.sdk.occa.managedreports.ras.internal.CECORBACommunicationAdapter.<init>(CECORBACommunicationAdapter.java:132)
[11/16/15 14:21:46:288 IST] 0000007e SystemErr     R at com.crystaldecisions.sdk.occa.managedreports.ras.internal.RASReportAppFactory.getReportAppSession(RASReportAppFactory.java:673)
[11/16/15 14:21:46:289 IST] 0000007e SystemErr     R at com.crystaldecisions.sdk.occa.managedreports.ras.internal.RASReportAppFactory.openDocument(RASReportAppFactory.java:512)
[11/16/15 14:21:46:289 IST] 0000007e SystemErr     R at com.crystaldecisions.sdk.occa.managedreports.ras.internal.RASReportAppFactory.openDocument(RASReportAppFactory.java:373)
[11/16/15 14:21:46:289 IST] 0000007e SystemErr     R at com.stc.fabs.util.GetReportClientDocument.getReportClientDocument(GetReportClientDocument.java:37)
[11/16/15 14:21:46:289 IST] 0000007e SystemErr     R at com.ibm._jsp._ProfitAndLossCall._jspService(_ProfitAndLossCall.java:237)
[11/16/15 14:21:46:289 IST] 0000007e SystemErr     R at com.ibm.ws.jsp.runtime.HttpJspBase.service(HttpJspBase.java:99)
[11/16/15 14:21:46:290 IST] 0000007e SystemErr     R at javax.servlet.http.HttpServlet.service(HttpServlet.java:668)
[11/16/15 14:21:46:290 IST] 0000007e SystemErr     R at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1227)
[11/16/15 14:21:46:290 IST] 0000007e SystemErr     R at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:776)
[11/16/15 14:21:46:290 IST] 0000007e SystemErr     R at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:458)
[11/16/15 14:21:46:291 IST] 0000007e SystemErr     R at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:178)
[11/16/15 14:21:46:291 IST] 0000007e SystemErr     R at com.ibm.wsspi.webcontainer.servlet.GenericServletWrapper.handleRequest(GenericServletWrapper.java:122)
[11/16/15 14:21:46:291 IST] 0000007e SystemErr     R at com.ibm.ws.jsp.webcontainerext.AbstractJSPExtensionServletWrapper.handleRequest(AbstractJSPExtensionServletWrapper.java:216)
[11/16/15 14:21:46:291 IST] 0000007e SystemErr     R at com.ibm.ws.webcontainer.filter.WebAppFilterChain.invokeTarget(WebAppFilterChain.java:136)
[11/16/15 14:21:46:291 IST] 0000007e SystemErr     R at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:79)
[11/16/15 14:21:46:292 IST] 0000007e SystemErr     R at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:928)
[11/16/15 14:21:46:292 IST] 0000007e SystemErr     R at com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1025)
[11/16/15 14:21:46:292 IST] 0000007e SystemErr     R at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.dispatch(WebAppRequestDispatcher.java:1385)
[11/16/15 14:21:46:292 IST] 0000007e SystemErr     R at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:194)
[11/16/15 14:21:46:292 IST] 0000007e SystemErr     R at com.stc.fabs.servlet.MainServlet.invokeCommand(MainServlet.java:119)
[11/16/15 14:21:46:293 IST] 0000007e SystemErr     R at com.stc.fabs.servlet.MainServlet.service(MainServlet.java:78)
[11/16/15 14:21:46:293 IST] 0000007e SystemErr     R at javax.servlet.http.HttpServlet.service(HttpServlet.java:668)
[11/16/15 14:21:46:293 IST] 0000007e SystemErr     R at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1227)
[11/16/15 14:21:46:293 IST] 0000007e SystemErr     R at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:776)
[11/16/15 14:21:46:293 IST] 0000007e SystemErr     R at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:458)
[11/16/15 14:21:46:294 IST] 0000007e SystemErr     R at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:178)
[11/16/15 14:21:46:294 IST] 0000007e SystemErr     R at com.ibm.ws.webcontainer.filter.WebAppFilterChain.invokeTarget(WebAppFilterChain.java:136)
[11/16/15 14:21:46:294 IST] 0000007e SystemErr     R at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:97)
[11/16/15 14:21:46:294 IST] 0000007e SystemErr     R at com.stc.fabs.servlet.SessionValidatorFilter.doFilter(SessionValidatorFilter.java:55)
[11/16/15 14:21:46:294 IST] 0000007e SystemErr     R at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:195)
[11/16/15 14:21:46:295 IST] 0000007e SystemErr     R at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:91)
[11/16/15 14:21:46:295 IST] 0000007e SystemErr     R at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:928)
[11/16/15 14:21:46:295 IST] 0000007e SystemErr     R at com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1025)
[11/16/15 14:21:46:295 IST] 0000007e SystemErr     R at com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:87)
[11/16/15 14:21:46:296 IST] 0000007e SystemErr     R at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:909)
[11/16/15 14:21:46:296 IST] 0000007e SystemErr     R at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1662)
[11/16/15 14:21:46:296 IST] 0000007e SystemErr     R at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:200)
[11/16/15 14:21:46:296 IST] 0000007e SystemErr     R at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:459)
[11/16/15 14:21:46:296 IST] 0000007e SystemErr     R at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:526)
[11/16/15 14:21:46:297 IST] 0000007e SystemErr     R at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:312)
[11/16/15 14:21:46:297 IST] 0000007e SystemErr     R at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:283)
[11/16/15 14:21:46:297 IST] 0000007e SystemErr     R at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminators(NewConnectionInitialReadCallback.java:214)
[11/16/15 14:21:46:297 IST] 0000007e SystemErr     R at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:113)
[11/16/15 14:21:46:297 IST] 0000007e SystemErr     R at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:175)
[11/16/15 14:21:46:297 IST] 0000007e SystemErr     R at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
[11/16/15 14:21:46:298 IST] 0000007e SystemErr     R at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)
[11/16/15 14:21:46:298 IST] 0000007e SystemErr     R at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138)
[11/16/15 14:21:46:298 IST] 0000007e SystemErr     R at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:204)
[11/16/15 14:21:46:298 IST] 0000007e SystemErr     R at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:775)
[11/16/15 14:21:46:299 IST] 0000007e SystemErr     R at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:905)
[11/16/15 14:21:46:299 IST] 0000007e SystemErr     R at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1862)

 

I have ensured that all new jars files are available in class path. Am I missing something? Please help.

use opendocument 4.1 like opendocument 3.1 ...upppsss

$
0
0

First of all ...... let me explainwhat I mean

My problem is thatwe have over1000 WebIntelligenct documents that includeall kinds of callsaccording to opendocumentBOXI31 format, so thatnowwe havemigrated toSAPBO4.1is hell and a nightmareupdatingthem.

 

Now calls are something like:

 

http://servername:8080/OpenDocument/opendoc/

 

SAPBO 4.1 something like:

 

http://servername:8080/BOE/OpenDocument/opendoc

 


  My questionis whether ...... there issome way that I can redirector use parameters that allow modify opendocumentpropertiesor unfortunately we need a smalldevelopment with theSDK.

  Please, I needurgentassistance

  Thank you very muchtoeveryone in advance

Required Jar Files

$
0
0

HI,

 

In which jar file, I can get the following classes.

 

1. com.crystaldecisions.sdk.occa.report.application.ReportClientDocument

2. com.crystaldecisions.report.web.viewer.CrystalReportViewer

 

 

 

Thanks & Regards,

Molay Dutta


Exception when code to logoff enterprise session is added in jsp

$
0
0

Hi

 

I have a java application which connects to BO 4.1 server. We are in the migration phase of application from BO 3.1 to 4.1.

 

I have added new jars and am able to view report properly.

 

But, in one scenario where code to log off enterprise session is added at the end of jsp, exception is encountered.

 

I would like to know if adding code to logoff is necessary? If not then won't it keep occupying resources at BO server which may impact BO server performance?  Please help.

 

Firstly, below is the jsp code:

 

JSP code:

 

String rptName = ReportConstants.RPT_PROFIT_AND_LOSS;
ReportClientDocument clientDoc = null;
CrystalReportEnterpriseSession crystalReportEnterpriseSession = new CrystalReportEnterpriseSession();
IEnterpriseSession  enterpriseSession = crystalReportEnterpriseSession.getEnterpriseSession();
clientDoc = GetReportClientDocument.getReportClientDocument(enterpriseSession,rptName);
CrystalReportViewer viewer = null ;
viewer = new CrystalReportViewer();
viewer.setReportSource(clientDoc.getReportSource());
viewer.setOwnPage(true);
viewer.setDisplayPage(true);
viewer.setDisplayGroupTree(false);
viewer.setDisplayToolbar(true);
viewer.setEnableLogonPrompt(true);
viewer.setEnableParameterPrompt(true);
viewer.setHasLogo(true);
viewer.setHasExportButton(true);
viewer.setHasGotoPageButton(true);
viewer.setHasPageNavigationButtons(true);
viewer.setHasPrintButton(true);
viewer.setHasRefreshButton(false);
viewer.setHasSearchButton(false);
viewer.processHttpRequest(request,response , getServletContext(), null);
viewer.dispose();
enterpriseSession.logoff(); // exception encountered at this line. If this line is commented, code works properly and report is displayed

Exception stack trace:

 

[11/19/15 11:00:57:603 IST] 0000009d SystemOut     O [2015-11-19 11:00:57,392] [ERROR] [com.crystaldecisions.sdk.occa.managedreports.ras.internal.CECORBACommunicationAdapter] CECORBACommunicationAdapter.request() Throwable - Unable to reconnect to the CMS DEV-BOBI-01.devsntg.com:6400. The session has been logged off or has expired. (FWM 01002) 
[11/19/15 11:00:58:375 IST] 0000009d SystemOut     O ERROR [WebContainer : 4] (WebReportLogger.java:62) - Unable to process listener
com.crystaldecisions.sdk.occa.report.lib.ReportSDKServerException: Unable to connect to the server: DEV_BOBI_01.CrystalReports2013ReportApplicationServer. --- Unable to reconnect to the CMS DEV-BOBI-01.devsntg.com:6400. The session has been logged off or has expired. (FWM 01002)---- Error code:-2147217387 [CRSDK00000847] Error code name:connectServer  at com.crystaldecisions.sdk.occa.report.lib.ReportSDKServerException.throwReportSDKServerException(ReportSDKServerException.java:115)  at com.crystaldecisions.sdk.occa.managedreports.ras.internal.CECORBACommunicationAdapter.request(CECORBACommunicationAdapter.java:369)  at com.crystaldecisions.proxy.remoteagent.AdapterCommunicationChannel.send(AdapterCommunicationChannel.java:88)  at com.crystaldecisions.proxy.remoteagent.RemoteAgent.send(RemoteAgent.java:805)  at com.crystaldecisions.proxy.remoteagent.RemoteAgent.flushActions(RemoteAgent.java:414)  at com.crystaldecisions.proxy.remoteagent.RemoteAgent.flushSync(RemoteAgent.java:434)  at com.crystaldecisions.sdk.occa.report.application.ControllerBase.send(ControllerBase.java:203)  at com.crystaldecisions.sdk.occa.report.application.ReportSource.sendRequest(ReportSource.java:1759)  at com.crystaldecisions.sdk.occa.report.application.ReportSource.getPage(ReportSource.java:968)  at com.crystaldecisions.sdk.occa.report.application.AdvancedReportSource.getPage(AdvancedReportSource.java:345)  at com.businessobjects.report.web.event.PageListener.renderContentLocally(PageListener.java:379)  at com.businessobjects.report.web.event.PageListener.getPage(PageListener.java:180)  at com.businessobjects.report.web.event.PageListener.updatePage(PageListener.java:121)  at com.businessobjects.report.web.event.UpdatePageEvent.processListener(UpdatePageEvent.java:47)  at com.businessobjects.report.web.event.ViewerBroadcaster.broadCastEvent(ViewerBroadcaster.java:136)  at com.businessobjects.report.web.event.ViewerBroadcaster.broadcast(ViewerBroadcaster.java:110)  at com.businessobjects.report.web.event.EventQueue.processEvents(EventQueue.java:53)  at com.businessobjects.report.web.component.ViewerContainer.processEvents(ViewerContainer.java:1490)  at com.businessobjects.report.web.WorkflowController.doEventProcessing(WorkflowController.java:373)  at com.businessobjects.report.web.WorkflowController.doLifecycle(WorkflowController.java:275)  at com.businessobjects.report.web.WorkflowController.doAsyncLifecycle(WorkflowController.java:108)  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:595)  at javax.servlet.http.HttpServlet.service(HttpServlet.java:668)  at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1227)  at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:776)  at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:458)  at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:178)  at com.ibm.ws.webcontainer.filter.WebAppFilterChain.invokeTarget(WebAppFilterChain.java:136)  at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:79)  at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:928)  at com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1025)  at com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:87)  at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:909)  at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1662)  at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:200)  at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:459)  at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:526)  at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:312)  at com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:88)  at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:175)  at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)  at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)  at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138)  at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:204)  at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:775)  at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:905)  at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1862)
Caused by: com.crystaldecisions.enterprise.ocaframework.IManagedService$ManagedLogoffException: Unable to reconnect to the CMS DEV-BOBI-01.devsntg.com:6400. The session has been logged off or has expired. (FWM 01002)  at com.crystaldecisions.enterprise.ocaframework.ManagedService.invoke(ManagedService.java:315)  at com.crystaldecisions.sdk.occa.managedreports.ras.internal._DTSRequestProxy.DoRequestBlocking(_DTSRequestProxy.java:70)  at com.crystaldecisions.sdk.occa.managedreports.ras.internal.CECORBACommunicationAdapter.sendCORBARequest(CECORBACommunicationAdapter.java:464)  at com.crystaldecisions.sdk.occa.managedreports.ras.internal.CECORBACommunicationAdapter.request(CECORBACommunicationAdapter.java:294)  ... 49 more
[11/19/15 11:00:58:388 IST] 0000009d SystemOut     O ERROR [WebContainer : 4] (WebReportLogger.java:62) - Unable to process events
com.crystaldecisions.sdk.occa.report.lib.ReportSDKServerException: Unable to connect to the server: DEV_BOBI_01.CrystalReports2013ReportApplicationServer. --- Unable to reconnect to the CMS DEV-BOBI-01.devsntg.com:6400. The session has been logged off or has expired. (FWM 01002)---- Error code:-2147217387 [CRSDK00000847] Error code name:connectServer  at com.crystaldecisions.sdk.occa.report.lib.ReportSDKServerException.throwReportSDKServerException(ReportSDKServerException.java:115)  at com.crystaldecisions.sdk.occa.managedreports.ras.internal.CECORBACommunicationAdapter.request(CECORBACommunicationAdapter.java:369)  at com.crystaldecisions.proxy.remoteagent.AdapterCommunicationChannel.send(AdapterCommunicationChannel.java:88)  at com.crystaldecisions.proxy.remoteagent.RemoteAgent.send(RemoteAgent.java:805)  at com.crystaldecisions.proxy.remoteagent.RemoteAgent.flushActions(RemoteAgent.java:414)  at com.crystaldecisions.proxy.remoteagent.RemoteAgent.flushSync(RemoteAgent.java:434)  at com.crystaldecisions.sdk.occa.report.application.ControllerBase.send(ControllerBase.java:203)  at com.crystaldecisions.sdk.occa.report.application.ReportSource.sendRequest(ReportSource.java:1759)  at com.crystaldecisions.sdk.occa.report.application.ReportSource.getPage(ReportSource.java:968)  at com.crystaldecisions.sdk.occa.report.application.AdvancedReportSource.getPage(AdvancedReportSource.java:345)  at com.businessobjects.report.web.event.PageListener.renderContentLocally(PageListener.java:379)  at com.businessobjects.report.web.event.PageListener.getPage(PageListener.java:180)  at com.businessobjects.report.web.event.PageListener.updatePage(PageListener.java:121)  at com.businessobjects.report.web.event.UpdatePageEvent.processListener(UpdatePageEvent.java:47)  at com.businessobjects.report.web.event.ViewerBroadcaster.broadCastEvent(ViewerBroadcaster.java:136)  at com.businessobjects.report.web.event.ViewerBroadcaster.broadcast(ViewerBroadcaster.java:110)  at com.businessobjects.report.web.event.EventQueue.processEvents(EventQueue.java:53)  at com.businessobjects.report.web.component.ViewerContainer.processEvents(ViewerContainer.java:1490)  at com.businessobjects.report.web.WorkflowController.doEventProcessing(WorkflowController.java:373)  at com.businessobjects.report.web.WorkflowController.doLifecycle(WorkflowController.java:275)  at com.businessobjects.report.web.WorkflowController.doAsyncLifecycle(WorkflowController.java:108)  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:595)  at javax.servlet.http.HttpServlet.service(HttpServlet.java:668)  at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1227)  at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:776)  at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:458)  at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:178)  at com.ibm.ws.webcontainer.filter.WebAppFilterChain.invokeTarget(WebAppFilterChain.java:136)  at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:79)  at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:928)  at com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1025)  at com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:87)  at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:909)  at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1662)  at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:200)  at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:459)  at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:526)  at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:312)  at com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:88)  at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:175)  at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)  at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)  at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138)  at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:204)  at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:775)  at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:905)  at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1862)
Caused by: com.crystaldecisions.enterprise.ocaframework.IManagedService$ManagedLogoffException: Unable to reconnect to the CMS DEV-BOBI-01.devsntg.com:6400. The session has been logged off or has expired. (FWM 01002)  at com.crystaldecisions.enterprise.ocaframework.ManagedService.invoke(ManagedService.java:315)  at com.crystaldecisions.sdk.occa.managedreports.ras.internal._DTSRequestProxy.DoRequestBlocking(_DTSRequestProxy.java:70)  at com.crystaldecisions.sdk.occa.managedreports.ras.internal.CECORBACommunicationAdapter.sendCORBARequest(CECORBACommunicationAdapter.java:464)  at com.crystaldecisions.sdk.occa.managedreports.ras.internal.CECORBACommunicationAdapter.request(CECORBACommunicationAdapter.java:294)  ... 49 more
[11/19/15 11:00:58:963 IST] 0000009d SystemOut     O ERROR [WebContainer : 4] (WebReportLogger.java:62) - Unable to complete lifecycle
com.businessobjects.report.web.shared.WebReportingException: The viewer could not process an event. Unable to connect to the server: DEV_BOBI_01.CrystalReports2013ReportApplicationServer. --- Unable to reconnect to the CMS DEV-BOBI-01.devsntg.com:6400. The session has been logged off or has expired. (FWM 01002) [CRSDK00000847] ---- Error code:0 [CRWEB00000119]  at com.businessobjects.report.web.shared.WebReportingException.throwWebReportingException(WebReportingException.java:71)  at com.businessobjects.report.web.component.ViewerContainer.processEvents(ViewerContainer.java:1503)  at com.businessobjects.report.web.WorkflowController.doEventProcessing(WorkflowController.java:373)  at com.businessobjects.report.web.WorkflowController.doLifecycle(WorkflowController.java:275)  at com.businessobjects.report.web.WorkflowController.doAsyncLifecycle(WorkflowController.java:108)  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:595)  at javax.servlet.http.HttpServlet.service(HttpServlet.java:668)  at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1227)  at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:776)  at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:458)  at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:178)  at com.ibm.ws.webcontainer.filter.WebAppFilterChain.invokeTarget(WebAppFilterChain.java:136)  at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:79)  at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:928)  at com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1025)  at com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:87)  at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:909)  at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1662)  at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:200)  at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:459)  at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:526)  at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:312)  at com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:88)  at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:175)  at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)  at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)  at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138)  at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:204)  at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:775)  at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:905)  at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1862)
Caused by: com.crystaldecisions.sdk.occa.report.lib.ReportSDKServerException: Unable to connect to the server: DEV_BOBI_01.CrystalReports2013ReportApplicationServer. --- Unable to reconnect to the CMS DEV-BOBI-01.devsntg.com:6400. The session has been logged off or has expired. (FWM 01002)---- Error code:-2147217387 [CRSDK00000847] Error code name:connectServer  at com.crystaldecisions.sdk.occa.report.lib.ReportSDKServerException.throwReportSDKServerException(ReportSDKServerException.java:115)  at com.crystaldecisions.sdk.occa.managedreports.ras.internal.CECORBACommunicationAdapter.request(CECORBACommunicationAdapter.java:369)  at com.crystaldecisions.proxy.remoteagent.AdapterCommunicationChannel.send(AdapterCommunicationChannel.java:88)  at com.crystaldecisions.proxy.remoteagent.RemoteAgent.send(RemoteAgent.java:805)  at com.crystaldecisions.proxy.remoteagent.RemoteAgent.flushActions(RemoteAgent.java:414)  at com.crystaldecisions.proxy.remoteagent.RemoteAgent.flushSync(RemoteAgent.java:434)  at com.crystaldecisions.sdk.occa.report.application.ControllerBase.send(ControllerBase.java:203)  at com.crystaldecisions.sdk.occa.report.application.ReportSource.sendRequest(ReportSource.java:1759)  at com.crystaldecisions.sdk.occa.report.application.ReportSource.getPage(ReportSource.java:968)  at com.crystaldecisions.sdk.occa.report.application.AdvancedReportSource.getPage(AdvancedReportSource.java:345)  at com.businessobjects.report.web.event.PageListener.renderContentLocally(PageListener.java:379)  at com.businessobjects.report.web.event.PageListener.getPage(PageListener.java:180)  at com.businessobjects.report.web.event.PageListener.updatePage(PageListener.java:121)  at com.businessobjects.report.web.event.UpdatePageEvent.processListener(UpdatePageEvent.java:47)  at com.businessobjects.report.web.event.ViewerBroadcaster.broadCastEvent(ViewerBroadcaster.java:136)  at com.businessobjects.report.web.event.ViewerBroadcaster.broadcast(ViewerBroadcaster.java:110)  at com.businessobjects.report.web.event.EventQueue.processEvents(EventQueue.java:53)  at com.businessobjects.report.web.component.ViewerContainer.processEvents(ViewerContainer.java:1490)  ... 33 more
Caused by: com.crystaldecisions.enterprise.ocaframework.IManagedService$ManagedLogoffException: Unable to reconnect to the CMS DEV-BOBI-01.devsntg.com:6400. The session has been logged off or has expired. (FWM 01002)  at com.crystaldecisions.enterprise.ocaframework.ManagedService.invoke(ManagedService.java:315)  at com.crystaldecisions.sdk.occa.managedreports.ras.internal._DTSRequestProxy.DoRequestBlocking(_DTSRequestProxy.java:70)  at com.crystaldecisions.sdk.occa.managedreports.ras.internal.CECORBACommunicationAdapter.sendCORBARequest(CECORBACommunicationAdapter.java:464)  at com.crystaldecisions.sdk.occa.managedreports.ras.internal.CECORBACommunicationAdapter.request(CECORBACommunicationAdapter.java:294)

To extract variables and variable formulas from Webi Report in BO 4.1

$
0
0

Hello Experts,

 

I need to extract the variables and variable formulas used in a Webi report in BO 4.1

 

I got a solution for getting variable by using methods from ReportDictionary and VariableExpression interface.

But these interface are no longer functional from SAP BO XI 4.0 release.

I searched a lot in SCN community but i didnt get any solution for this.

 

Can anyone suggest a solution/ sdk methods available for this in BO 4.1

 

Thanks in advance.

 

Regards,

Preethi M

Viewing Crystal Reports Enterprise using Java SDK?

$
0
0

Hi,

 

I am trying to use Java SDK to view Crystal Reports enterprise but I get this message. Standard Crystal reports work fine. I am trying to enhance our current custom application running on SAP Portal 7.31 to view Enterprise reports. I even tried using the library files from the enterprise version of Crystal reports but get the same message. Any help would be appreciated.

 

cause:com.crystaldecisions.sdk.occa.report.lib.ReportSDKException: This release does not support opening SAP Crystal Reports for Enterprise reports.---- Error code:-2147467231 [CRSDK00002515] Error code name:notSupported

Saving and Scheduling Reports using BO SDK based on specific group

$
0
0

Hi ,

 

 

Can below mentioned requirements are possible using BO Java SDK or Restful web services?

 

 

-   Saving/exporting and scheduling reports

-   Only specific users within a group should be able to save ,schedule reports and have access to Live Office

-   All users should be able to export using pdf

-   Revoke all users accessing LiveOffice

Bulk Update database properties in Crystal Reports

$
0
0

Hello Everyone

 

In my situation for one of the apps, I have more than 200 reports organized in diff folders. For both migrating these reports from one environment to other and for updating databases password, I had a need to update database credentials in bulk for all reports.

 

I am putting the code here, in case anyone needs this in a similar situation.

 

 

public class dbUpdate {

 

 

  public static void main(String[] args) throws ReportSDKException, FileNotFoundException, IOException {

    Properties prop = new Properties();

    prop.load(new FileInputStream("config/setup.properties"));

   

       String UpdateDBProps = prop.getProperty("UpdateDBProps");

       String encryptPass = prop.getProperty("encryptPass");

       String decryptPass = prop.getProperty("decryptPass");

       String TopLevelFolder = prop.getProperty("TopLevelFolder");

       String BOCmcHostPort = prop.getProperty("BOCmcHostPort");

       String BOUserName = prop.getProperty("BOUserName");

       String BOPassword = prop.getProperty("BOPassword");

       String dbServerName = prop.getProperty("dbServerName");

       String dbuserName = prop.getProperty("dbuserName");

       String dbpassword = prop.getProperty("dbpassword");

       String logFile = prop.getProperty("logFile");

      

       logger.setLogFilename(logFile);

      

       try

       {

    

      if (encryptPass.equalsIgnoreCase("true")) {

       String eBOPassword= AESencrypt.encrypt(BOPassword)  ;

       String edbpassword= AESencrypt.encrypt(dbpassword)  ;

       logger.write("boPass Plain: " + BOPassword + " boPass Encrypted: "  + eBOPassword);

       logger.write("dbPass Plain: " + dbpassword + " dbPass Encrypted: "  + edbpassword);

       System.exit(0);

     } //if encryptpass is true

    

      if (decryptPass.equalsIgnoreCase("true")) {

        String dBOPassword= AESencrypt.decrypt(BOPassword)  ;

        String ddbpassword= AESencrypt.decrypt(dbpassword)  ;

        logger.write("boPass Plain: " + BOPassword + " boPass Decrypted: "  + dBOPassword);

        logger.write("dbPass Plain: " + dbpassword + " dbPass Decrypted: "  + ddbpassword);

        System.exit(0);

     } //if decryptpass is true

    

         dbpassword = AESencrypt.decrypt(dbpassword);

         BOPassword = AESencrypt.decrypt(BOPassword);

       }

       catch (Exception ex)

       {

         ex.printStackTrace();

       }

             

       //System.out.println("BOCmcHostPort:" + BOCmcHostPort + " dbServerName:" + dbServerName + " dbuserName:" + dbuserName + " dbpassword: " + dbpassword + " Plain");

       logger.write("Update DB: "+ UpdateDBProps + " Root Folder: " + TopLevelFolder + " BOCmcHostPort:" + BOCmcHostPort + " dbServerName:" + dbServerName + " dbuserName:" + dbuserName + " dbpassword: " + dbpassword + " Plain");

       logger.write("Date Timestamp Reportpath and name; existing Original dbserver name/password - Custom DBserver name/password and if updated dbserver name/password - Custom DBserver name/password ");

   Integer TopLevelSIID = Integer.parseInt(TopLevelFolder);

 

  // TODO Auto-generated method stub

        String auth = "secEnterprise";

              

        IEnterpriseSession enterpriseSession = null;

        ISessionMgr sessionMgr = null;//CrystalEnterprise.getSessionMgr();   

        //Exception failure = null;

        boolean loggedIn = true;

 

 

        //ReportClientDocument clientDoc = null;

 

 

        if (enterpriseSession == null)

        {

           try

           {

           sessionMgr = CrystalEnterprise.getSessionMgr();

 

 

           enterpriseSession = sessionMgr.logon(BOUserName, BOPassword, BOCmcHostPort, auth);

           logger.write("LOGIN SUCCESSFUL\n");

          

           }  //try

           catch (Exception error)

           {

           loggedIn = false;

           String failure = "error";

           }  //catch

 

 

           if (!loggedIn)

           {

       

            System.out.println("\nLOGIN FAILED\n");

            logger.write("FAILED LOGIN\n");

           }  //if not logged in

           else

           {

           // Query for all Crystal reports from the Enterprise CMS.

            try {

             IInfoStore iStore = (IInfoStore) enterpriseSession.getService("InfoStore");

             // Get all branches

             IInfoObjects branches = iStore.query("Select SI_ID From CI_INFOOBJECTS Where SI_INSTANCE=0 AND SI_KIND=Folder AND SI_PARENT_FOLDER= " + TopLevelSIID);

             //Check this for recursive - This is customized for Global Billing - Top Root folder/Branch/Batched or ondemand 

             System.out.println("\nTop Level Folder = " + TopLevelSIID + " Member Count= " + branches.getResultSize());

                for (Integer b =0; b < branches.getResultSize(); b++) { // for each branch SIID

                IInfoObject binfoObject = (IInfoObject) branches.get(b);

              String branchName = binfoObject.getTitle();

              Integer branchSIID = binfoObject.getID();

              //logger.write("SI_ID - " + branchSIID + " Branch Name - "+ branchName);

              String query="Select SI_ID From CI_INFOOBJECTS Where SI_INSTANCE=0 AND SI_KIND=Folder AND SI_PARENT_FOLDER= " + branchSIID;

              IInfoObjects folders=iStore.query(query); //batch or ondemand

              for (Integer c =0; c < folders.getResultSize(); c++) { // for each branch SIID

                  IInfoObject cinfoObject = (IInfoObject) folders.get(c);

              String cfolderName = cinfoObject.getTitle();

              Integer cfolderSIID = cinfoObject.getID();

              //logger.write("SI_ID - " + cfolderSIID + " demand or batch - "+ cfolderName);

              //Get all Reports of above folder

              String rquery="Select SI_ID From CI_INFOOBJECTS Where SI_INSTANCE=0 AND SI_PARENT_FOLDER= " + cfolderSIID;

              IInfoObjects cfolders=iStore.query(rquery); //batch or ondemand

            

             for (Integer i = 0 ; i < cfolders.getResultSize(); i++ ) {

              IInfoObject infoObject = (IInfoObject) cfolders.get(i);

                        

              String reportName = infoObject.getTitle();

              Integer reportSIID = infoObject.getID();

              //logger.write(branchName + "/" + cfolderName + "/"+ reportName);

              //logger.write("SI_ID - " + reportSIID + " and Report Name - "+ reportName);

              //Specify SI ID for testing

                      

              query="SELECT SI_ID, SI_NAME, SI_LOGONINFO, SI_PROCESSINFO FROM CI_INFOOBJECTS WHERE SI_INSTANCE='false' AND SI_PROGID='CrystalEnterprise.Report' AND SI_ID="+ reportSIID;

              //** Below for testing Single reports

              reportSIID=48848;

              query= query + " AND SI_ID= " + reportSIID + " AND SI_PARENT_FOLDER= " + cfolderSIID;

              //** Below for testing Single reports

              IInfoObjects reports=iStore.query(query);

              if (reports.getResultSize() > 0) {

              IReport report=(IReport)reports.get(0);

              //IProperties reportp=(IProperties)reports.get(0);

              IReportProcessingInfo pluginInterface=(IReportProcessingInfo)report.getPluginProcessingInterface("CrystalReport");

              ISDKList dbLogons=pluginInterface.getReportLogons();

              IReportLogon dbLogon=(IReportLogon)dbLogons.get(0);

              String cdbserver=dbLogon.getCustomServerName();

              String cuser=dbLogon.getCustomUserName();

              String odbserver=dbLogon.getServerName();

              String ouser=dbLogon.getUserName();

            

              //Update db credentials only if UpdateDBProps=true

              if (UpdateDBProps.equalsIgnoreCase("true")) {

                dbLogon.setCustomPassword(dbpassword);

                dbLogon.setCustomUserName(dbuserName);

                dbLogon.setCustomServerName(dbServerName);

                dbLogon.setCustomServerType(IReportLogon.CeReportServerType.ORACLE);

                //update table prefix

                ISDKSet tprefixes = dbLogon.getReportTablePrefixes();

                if (tprefixes != null && !tprefixes.isEmpty()) {

                Iterator tps = tprefixes.iterator();

                IReportTablePrefix prefix = null;

                if (tps.hasNext()) {

                  prefix = (IReportTablePrefix) tps.next();

                }

                prefix.setMappedTablePrefix(dbuserName.toUpperCase()); //may not need . - +"."

                prefix.setUseMappedTablePrefix(true);

               

                } //table prefix   

                dbLogon.setPromptOnDemandViewing(false);

                dbLogon.setOriginalDataSource(false);

                dbLogon.setReportLogonMode(1); //#3942# - 1

             

                //save above values

                report.save();

                             

              } // if UpdateDBProps=true

            

              ISDKList AdbLogons=pluginInterface.getReportLogons();

              IReportLogon AdbLogon=(IReportLogon)AdbLogons.get(0);

            

              //cdbdriver=dbLogon.getDatabaseServerType();

              String acdbserver=AdbLogon.getCustomServerName();

              String acuser=AdbLogon.getCustomUserName();

              String aodbserver=AdbLogon.getServerName();

              String aouser=AdbLogon.getUserName();

              String eocred= odbserver + "/" + ouser;

              String uocred= aodbserver +"/" + aouser;

              String eccred = cdbserver + "/" + cuser;

              String uccred = acdbserver + "/" + acuser;

              String dbCred= eocred + " - " + eccred;

              if (UpdateDBProps.equalsIgnoreCase("true")) {

              dbCred= dbCred + " Updated "+ uocred + " - " + uccred;

              }

              logger.write(branchName + "/" + cfolderName + "/"+ reportName + " ; " + dbCred);

               } //if query returned values                

             } //For on demad or batch           

            } //for all reports

              } //for each branch

         } catch(SDKException re){

                   re.printStackTrace();

                  }

         } //else if logged in

     }  //if null session manager

 

        logger.write("GB Report dbUpdater Completed Successfully ");     

  } //main 

 

} //outermost class

 

 

Enjoy !!!

Develop a java code to automate the recurring instances of webi reports

$
0
0

The application has to be developed using SAP BO sdk for WEBI.

 

Objective:

The objective of the assignment is to develop a java code to automate the recurring instances of webi reports and send it to the specified path.

 

 

Customer Requirements:

  • The program must authenticate the user and login using Windows AD authentication type.
  • The values for the prompts and different combinations of the values must be fetched by the program from database/list of values/excel sheet etc.
  • The webi report has to be run for different values of prompts
  • The application developed should support all types of output formats supported by BO.
  • The application should be generic so that it could be run on different webi reports.

How to set Default DateTime values in Crystal Reports 2008

$
0
0

Hi All,

 

I'm using Crystal Reports 2008. I have two fields FromDate and ToDate in reports. While running report, FromDate field should be displayed with CurrentDate + 00:00:00 in the UI and for ToDate it should be displayed with CurrentDate + 23:59:59 format.

 

I have tried the below things, But still I want to set CurrentDate + 00:00:00 time in DateTime field.


"In CR 2008 you would set the time portion to 00:00:00 in this way:

 

1) Edit the date/time parameter and look for the 'Default Value' option; it would be blank

2) Set this to 00:00:00

 

This would default the calendar to 12/30/1899 00:00:00. The only worry here is, when you click on the calendar icon you would be presented with the calendar for the year 1899 and it is painstaking to scroll all the way to the current year."

 

I found one solution in SAP forum and I have added the below lines in Record Selection formula,

 

{@FromDate} = date(@CurrentDate)+time(00,00,00)

{@ToDate} = date(@CurrentDate)+time(23,59,59)

 

When I run the report, I still getting the empty values in the input parameters screen.

 

Am I missing anything? Kindly help

 

Thanks,

Ramesh Kumar G.


Using Java Api to change the Managed Relational Connection to a database in a Crystal report

$
0
0

I am newer to crystal reports and I am working with your api right now and need some help understanding how it works. I am trying to change a shared connection (database connection) from dev to qa by using your java api. I am working in Crystal Enterprise BO 4.0 or 4.1.  I have tried several different ways and a couple different jar files. I am have used the ones that came with the eclipse down load and I have used the the ones that come from the Crystal enterprise down load.  I get this error when running the ones that come with the enterprise down load. Do I need to set up the server? Where do I do that if I do? this error comes when I try and open the report using the Enterprise jar files

com.crystaldecisions12.sdk.occa.report.lib.ReportSDKServerException: There is no server specified.---- Error code:-2147217390 Error code name:serverNotFound

com.crystaldecisions12.sdk.occa.report.lib.ReportSDKClientDocException: The document has not been opened.---- Error code:-2147215349 Error code name:docNotReady

Exception in thread "main" java.io.IOException: com.crystaldecisions12.sdk.occa.report.lib.ReportSDKClientDocException: The document has not been opened.---- Error code:-2147215349 Error code name:docNotReady

    at lib.CrystalReportParseUtility$1.visitFile(CrystalReportParseUtility.java:143)

    at lib.CrystalReportParseUtility$1.visitFile(CrystalReportParseUtility.java:1)

    at java.nio.file.Files.walkFileTree(Unknown Source)

    at java.nio.file.Files.walkFileTree(Unknown Source)

    at lib.CrystalReportParseUtility.main(CrystalReportParseUtility.java:129)

Caused by: com.crystaldecisions12.sdk.occa.report.lib.ReportSDKClientDocException: The document has not been opened.---- Error code:-2147215349 Error code name:docNotReady

    at com.crystaldecisions12.sdk.occa.report.lib.ReportSDKClientDocException.throwReportSDKClientDocException(SourceFile:69)

    at com.crystaldecisions12.sdk.occa.report.application.ReportClientDocument.saveAs(SourceFile:2312)

    at lib.CrystalReportParseUtility$1.visitFile(CrystalReportParseUtility.java:140)

    ... 4 more

 

 

The second error I get. This error I get when I try to run

    final String DBUSERNAME = "Username";
   final String DBPASSWORD = "password";
   PropertyBag bag;

   

    Map<ITable, ITable> oldNewMap = new HashMap<ITable, ITable>();

   for(Object table :databaseController.getDatabase().getTables()) {
   ITable t = (ITable)((ITable)table).clone(true);
   bag = t.getConnectionInfo().getAttributes();
   bag.replace("Info Object Cuid", "djjdjfkdkgfehherhehr_emrjr");
   t.getConnectionInfo().setAttributes( bag);  
   t.getConnectionInfo().setUserName(DBUSERNAME);
   t.getConnectionInfo().setPassword(DBPASSWORD);
   oldNewMap.put((ITable)table, t);
//   System.out.println( t.getConnectionInfo().getAttributes().get("Info Object Cuid"));
//   System.out.println(" Attribute " +t.getConnectionInfo().getAttributes().get("Info Object Cuid")+ "Database DLL" +
//   t.getConnectionInfo().getAttributes().get("Database DLL") + "Property ID " + t.getConnectionInfo().getAttributes().getPropertyIDs() +
//   "password" + t.getConnectionInfo().getPassword() + "class Name "  + t.getConnectionInfo().getClass() +
//   " Username " + t.getConnectionInfo().getUserName() + "kind "   + t.getConnectionInfo().getKind() );
   }
   for (Entry<ITable, ITable> e : oldNewMap.entrySet()) {
   databaseController.setTableLocation(e.getKey(), e.getValue());
   }  
  

    }

   

10641 [main] ERROR com.businessobjects.reports.sdk.JRCCommunicationAdapter  -  detected an exception: Error finding JNDI name (w12374)

    at com.crystaldecisions.reports.queryengine.Connection.t4(SourceFile:3024)

    at com.crystaldecisions.reports.queryengine.Table.vc(SourceFile:2417)

    at com.crystaldecisions.reports.dataengine.datafoundation.AddDatabaseTableCommand.new(SourceFile:529)

    at com.crystaldecisions.reports.common.CommandManager.a(SourceFile:71)

    at com.crystaldecisions.reports.common.Document.a(SourceFile:203)

    at com.businessobjects.reports.sdk.requesthandler.f.a(SourceFile:175)

    at com.businessobjects.reports.sdk.requesthandler.DatabaseRequestHandler.byte(SourceFile:1079)

    at com.businessobjects.reports.sdk.JRCCommunicationAdapter.do(SourceFile:1166)

    at com.businessobjects.reports.sdk.JRCCommunicationAdapter.if(SourceFile:660)

    at com.businessobjects.reports.sdk.JRCCommunicationAdapter.a(SourceFile:166)

    at com.businessobjects.reports.sdk.JRCCommunicationAdapter$2.a(SourceFile:528)

    at com.businessobjects.reports.sdk.JRCCommunicationAdapter$2.call(SourceFile:526)

    at com.crystaldecisions.reports.common.ThreadGuard.syncExecute(SourceFile:102)

    at com.businessobjects.reports.sdk.JRCCommunicationAdapter.for(SourceFile:524)

    at com.businessobjects.reports.sdk.JRCCommunicationAdapter.int(SourceFile:423)

    at com.businessobjects.reports.sdk.JRCCommunicationAdapter.request(SourceFile:351)

    at com.businessobjects.sdk.erom.jrc.a.a(SourceFile:54)

    at com.businessobjects.sdk.erom.jrc.a.execute(SourceFile:67)

    at com.crystaldecisions.proxy.remoteagent.RemoteAgent$a.execute(SourceFile:716)

    at com.crystaldecisions.proxy.remoteagent.CommunicationChannel.a(SourceFile:125)

    at com.crystaldecisions.proxy.remoteagent.RemoteAgent.a(SourceFile:537)

    at com.crystaldecisions.sdk.occa.report.application.ds.a(SourceFile:186)

    at com.crystaldecisions.sdk.occa.report.application.an.a(SourceFile:108)

    at com.crystaldecisions.sdk.occa.report.application.b0.if(SourceFile:148)

    at com.crystaldecisions.sdk.occa.report.application.b0.b(SourceFile:95)

    at com.crystaldecisions.sdk.occa.report.application.bb.int(SourceFile:96)

    at com.crystaldecisions.proxy.remoteagent.UndoUnitBase.performDo(SourceFile:151)

    at com.crystaldecisions.proxy.remoteagent.UndoUnitBase.a(SourceFile:106)

    at com.crystaldecisions.sdk.occa.report.application.DatabaseController.a(SourceFile:2159)

    at com.crystaldecisions.sdk.occa.report.application.DatabaseController.a(SourceFile:543)

    at com.crystaldecisions.sdk.occa.report.application.DatabaseController.a(SourceFile:3898)

    at com.crystaldecisions.sdk.occa.report.application.DatabaseController.setTableLocation(SourceFile:2906)

    at com.lds.eim.crpu.CrystalReportParseUtility.switch_tables(CrystalReportParseUtility.java:119)

    at com.lds.eim.crpu.CrystalReportParseUtility.crystaldatabaseconnection(CrystalReportParseUtility.java:83)

    at com.lds.eim.crpu.CrystalReportParseUtility.access$4(CrystalReportParseUtility.java:75)

    at com.lds.eim.crpu.CrystalReportParseUtility$1.visitFile(CrystalReportParseUtility.java:137)

    at com.lds.eim.crpu.CrystalReportParseUtility$1.visitFile(CrystalReportParseUtility.java:1)

    at java.nio.file.Files.walkFileTree(Unknown Source)

    at java.nio.file.Files.walkFileTree(Unknown Source)

    at com.lds.eim.crpu.CrystalReportParseUtility.main(CrystalReportParseUtility.java:127)

Please help me to know if this is possible with the api so I can either give up or or solve it/ what I am missing

BO SDK code for Universe

$
0
0

Hi Experts,

 

I am trying to create a JSP page which will be used  to change universe object name without using IDT using BO SDK.

 

We are using Bo 4.0 SP6 and we generate the Universe with class name same as table name and columns name as objects names.I need a script which will modify these object name in the Universe with proper name.I have some information that we can use SL SDK to achieve the same.

 

Could you please guide me with some start points on SL SDK.I have some  prior experience in SDK programming but most of them are to extract information from CMS repo.

Thanks in advance for your help and guidance.

 

Regards

Kishore

OopenDocument and IFrame to open BO documents in the same html page

$
0
0

Hi experts,

 

I have I requirement to open BO document inside an HTML page that contains other components, So I use the IFrame flag to open the BO document:

 

<iframe name="StartTDB" src="http://*.*.*.*:8081/BOE/OpenDocument/opendoc/openDocument.jsp?iDocID=AcElQAZ8KrVPqqY9jOazmiQ&sIDType=CUID&token=<jsp:getProperty name="SAPBOSession" property="token" />" height="500px" width="940px">

  Votre navigateur ne supporte pas les iframes

  </iframe>

 

The issue I have is that sometimes th BO document get opened inside the IFrame (Image 1), and sometimes it reloads all the html page to only open the BO document (Image 2)!!

 

Image 1:

cas2.PNG

 

 

 

Image2:

cas1.PNG

 

Thank's a lot for your help.

 

Abdess,

Java code for user-wise report access list

$
0
0

Dear All,

 

I have a very big requirement and I have no idea where to begin. I only have a limited experience with SAP BI's Java SDK and has mostly used it for just generating list of all reports with their folder path or list of all users in a group.

 

This time though I have a big ambition (or at least I think it would be a difficult one to pull off)

 

What I need

Is a list of all reports with all users who has access to it and the access level they have.

It needs to have following columns

 

Report Name, Full Report Path, User ID (and Name if possible), Access level

 

I am also trying to write a code for list of reports and the user groups that has to it.


What I have

I know how to retrieve the list of all reports and I know how to retrieve list of users. But what I don't know is how to connect them or to get the access level they have.

 

So if anyone can help me out, it would be great. It would be even more great if I could have a ready to use code! I know it is too much to ask, but as I said I am a novice to Java part and if you give me pieces, it would take me days to stitch em up and make a full code.

 

So if there are any kind ones out there, please help!

 

Thanks.


Retrieve universe metadata .

$
0
0

Hi All,

 

How to retrieve Alias Tables and Derived Tables details using java SDK?

 

Need sample code.

 

Thanks and regards,

Viewing all 1701 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>