Skip to Content
avatar image
Former Member

BOE SDK vs RAS SDK

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

Add comment
10|10000 characters needed characters exceeded

  • Get RSS Feed

5 Answers

  • avatar image
    Former Member
    Oct 17, 2008 at 03:09 PM

    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

    Add comment
    10|10000 characters needed characters exceeded

  • Oct 17, 2008 at 03:16 PM

    > 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

    Add comment
    10|10000 characters needed characters exceeded

    • Former Member Ted Ueda

      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);

  • Oct 22, 2008 at 08:05 PM

    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

    Add comment
    10|10000 characters needed characters exceeded

  • avatar image
    Former Member
    Nov 05, 2008 at 08:35 PM

    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

    Add comment
    10|10000 characters needed characters exceeded

    • Former Member Former Member

      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

  • Mar 10, 2009 at 12:32 AM

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

    Add comment
    10|10000 characters needed characters exceeded