cancel
Showing results for 
Search instead for 
Did you mean: 

BOE SDK vs RAS SDK

Former Member
0 Kudos

Hi,

Can someone help to explain the difference between RAS SDK (using IReportAppFactory as report source) and BOE SDK (using IReportSource factory).

I have 2 RAS servers whose version is BOXI R2 SP2 (windows), SSL enabled.

On one server, both the program using BOE SDK and RAS SDK is working while on the other server, only the BOE SDK is working.

Our application is using RAS SDK so I want to know how to make it work on the other server.

The server that is working doesn't have password on the Administrator account while the other has.

But it is confirmed that the application can login to CMC without problem.

The error is cannot initialize report application session. Unable to connect to the server.

Best Regards,

Jay

Accepted Solutions (0)

Answers (5)

Answers (5)

0 Kudos

mixed questions- closing post so you can log individual questions.

Former Member
0 Kudos

Option 1:

IReportAppFactory reportAppFactory = (IReportAppFactory) enterpriseSession.getService("RASReportFactory");

IInfoObjects infoObjects = iStore.query("Select SI_ID From CI_INFOOBJECTS Where SI_NAME='" + reportName + "' And SI_INSTANCE=0");

IInfoObject infoObject = (IInfoObject)infoObjects.get(0);

// Open the report file

ReportClientDocument reportClientDoc = reportAppFactory.openDocument(infoObject,0, java.util.Locale.US);

reportClientDoc.getDatabaseController().logon("swavek", "swavek");

//Use the report document's PrintOutputController to export the report to a ByteArrayInputStream

ByteArrayInputStream byteIS = (ByteArrayInputStream) reportClientDoc.getPrintOutputController().export(ExportOptions);

I am trying to use this option. However, when I try to call the reportClientDoc.getPrintOutputController().export(...). I am getting an exception indicating that unable to connect to XXXX.RAS.rptappserver? would anyone know why I am getting this error and how I can fix it? I am able to connect and get ReportClientDocument from the factory and view the printoptions etc..however, it only happend when I try to call the export(..). method.

In our environment we Managed RAS server meaning it is running within Crystal Enterprise. When login to the console I see it as one of the process and in metrics I can see my connection and that fact I can open the document however just problem exporting it.

Any help will be greatly appreciated.

Regards,

Dilshad

Edited by: Dilshad Ahmed on Nov 5, 2008 9:35 PM

Former Member
0 Kudos

how do you create enterproseSession? i had following lines.

// Create an Enterprise session manager object.

sessionMgr = CrystalEnterprise.getSessionMgr();

//Log on to the CMS.

enterpriseSession = sessionMgr.logon(username, password, cms, auth);

Former Member
0 Kudos

Hi Jean:

I have the same thing as follows;

sessionMgr = CrystalEnterprise.getSessionMgr();

enterpriseSession = sessionMgr.logon(userName, password, aps, auth);

Everything works fine for me until I call the export method on printOutputController, thats when I get the error message. Apart from this I am able to get the ReporClientDocument object, view printoptions, even modify printoptions...it only gives me unable to connect to RAS.rptappserver error when I call the export method, passing in exportOptions.

By the way I am logging into "testserver:6400" which standard port the crystal is running,

should I be logging into some other server:port in this case to access RAS?

Any ideas anyone?

Regards,

Dilshad

Edited by: Dilshad Ahmed on Nov 5, 2008 9:59 PM

former_member203619
Contributor
0 Kudos

One possibility is that you have a firewall set up.

The SDK computer needs to communicate directly with the RAS service - so if you have a firewall in between the computer that the RAS server is on and the SDK computer - then that might be the problem.

What would happen is that you would be able to log onto Enterprise (Since most people open up the 6400 ports for the CMS - but when the SDK machine tried to communicate with the RAS server it would fail and give an error message similar to what you are seeing.

Shawn

ted_ueda
Employee
Employee
0 Kudos

> The error is cannot initialize report application session. Unable to connect to the server.

Are you using unmanaged RAS, i.e., setting the ReportClientDocument.setReportAppServer(...)? You may not want to do this, if so.

Is your intent, on the other hand, to use managed RAS, i.e., the IReportAppFactory? Is the RAS server up and accessible?

Sincerely,

Ted Ueda

Former Member
0 Kudos

Hi Ted,

We are using managed RAS and the server is up and accessible. We cannot understand whay in one RAS server, our application is ok but in another RAS server, it doesnt want to connect.

Is there a way to diagnose if there are problems with the setup?

Many Thanks

Jaimie

Former Member
0 Kudos

Ted,

I use unmanaged RAS, setting ReportClientDocument.setReportAppServer(...), I had error cannot initialize report application session. Unable to connect to the server.

Why I should not do it? If i really need to do so, what steps should I take?

thank you

-Jean

0 Kudos

Hi Jean and Jaimie,

If you have Business Objects Enterprise you should also have a support contract and can log this case on line and have a dedicated Engineer work with you directly. This may go beyond the scope of this Forum to answer your questions. If logs are required to be passed you will not be able to attach to the Forum note.

If you have a User account please log a case by clicking on the Report A Product Error tab and fill in all the info. If you don't have an account find out who your SAP Account Administrator is and they can create one for you.

Thank you

Don

ted_ueda
Employee
Employee
0 Kudos

Did you specify the RAS server name, and the port number in the argument?

Did you specify the same port number in the RAS server commandline, using -ipport <number here>?

You need to do this for unmanaged RAS.

Sincerely,

Ted Ueda

Former Member
0 Kudos

Hi, guys

I think I should state my situation clearly. I do not have Business Object Enterprise, I only have Crystal Report 2008 installed. the initialize() failed in the following code.

// open Session

ReportAppSession ras = new ReportAppSession();

ras.createService("com.crystaldecisions.sdk.occa.report.application.ReportClientDocument");

ras.setReportAppServer("jzhang:1566");

ras.initialize();

Thank you in advance,

-Jean

ted_ueda
Employee
Employee
0 Kudos

Do you have Crystal Reports 2008 or Crystal Reports Server 2008 or Crystal Reports Server Embedded 2008.

If you only have Crystal Reports 2008, then you wouldn't have the RAS server.

If you do have CRS or CRSE, then in the RAS command-line add:

-ipport 1566

Sincerely,

Ted Ueda

Former Member
0 Kudos

Thank you!

Former Member
0 Kudos

Ted,

We are evaluating reporting tool for our java application. To create PDF reports using the following options, Crystal Reports takes triple time than JasperReports. Is there other approach to generate PDF reports? Thank you!

Option 1:

IReportAppFactory reportAppFactory = (IReportAppFactory) enterpriseSession.getService("RASReportFactory");

IInfoObjects infoObjects = iStore.query("Select SI_ID From CI_INFOOBJECTS Where SI_NAME='" + reportName + "' And SI_INSTANCE=0");

IInfoObject infoObject = (IInfoObject)infoObjects.get(0);

// Open the report file

ReportClientDocument reportClientDoc = reportAppFactory.openDocument(infoObject,0, java.util.Locale.US);

reportClientDoc.getDatabaseController().logon("swavek", "swavek");

//Use the report document's PrintOutputController to export the report to a ByteArrayInputStream

ByteArrayInputStream byteIS = (ByteArrayInputStream) reportClientDoc.getPrintOutputController().export(ReportExportFormat.PDF);

..........

Option 2:

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

IInfoObjects infoObjects = iStore.query("Select SI_ID From CI_INFOOBJECTS Where SI_NAME='" + reportName + "' And SI_INSTANCE=0");

IInfoObject infoObject = (IInfoObject)infoObjects.get(0);

// Set SchedulingInfo

ISchedulingInfo scheduleInfo = infoObject.getSchedulingInfo();

scheduleInfo.setRightNow(true);

// Set ReportFormatOptions. If default setting is set in CMc, do not need to set it.

IReportFormatOptions reportFormatOptions = ((IReport) infoObject).getReportFormatOptions();

reportFormatOptions.setFormat(IReportFormatOptions.CeReportFormat.PDF);

// run the report now

iStore.schedule(infoObjects);

Former Member
0 Kudos

Hi Jaimie

IReportAppFactory

This interface provides a common service point for accessing a ReportClientDocument. A ReportClientDocument object provides methods for modifying a report. To get the IReportAppFactory interface, you must call IEnterpriseSession getService method as follows:

IReportAppFactory reportAppFactory = (IReportAppFactory) es.getService("","RASReportFactory").

Note: This interface can only be used when the Report Application Server is running as server component within the BusinessObjects Enterprise framework.

IReportSourceFactory

This interface provides a common service point for opening a ReportSource client object that communicates with a Page Server in the BusinessObjects Enterprise environment.

**********************************************************

You need to use the RAS SDK in the same way as you are using on the other server.

You need to pass the login credentials in the jsp code that you would be using on your server which has the username and password.

Hope this helps.

Thanks

Soni