0

我们有一个客户端,它使用 SDK 在 Business Objects Embedded Report Server 上调用报表。我们可以登录,但是在调用 openDocument 方法时,出现了问题。

代码:

     //LOGON
IEnterpriseSession session = sessionMgr.logon(username, password, clusterNode,     authType);
IInfoStore infoStore = (IInfoStore)session.getService("InfoStore");

//GET REPORT OBJECT
String queryForFolder = "Select SI_ID, SI_NAME From CI_INFOOBJECTS Where SI_NAME = '" + folderName + "'";
IInfoObjects queryForFolderResult = infoStore.query(queryForFolder);
 if (queryForFolderResult.isEmpty())
 {
   throw new Exception("No Folder Found");
 }
 //report folder found
 IInfoObject reportFolder = (IInfoObject)queryForFolderResult.get(0);

String queryForFile = "Select SI_ID, SI_NAME From CI_INFOOBJECTS Where SI_NAME = '" + reportFile + "'" + " and SI_PARENTID = " + reportFolder ;

IReportAppFactory reportAppFactory = (IReportAppFactory)session.getService("RASReportFactory");
IInfoObjects queryForFileResult = infoStore.query(queryForFile);

if (queryForFileResult.isEmpty())
{
  throw new Exception("Report file not found");
}
//report found
IReport report = (IReport)queryForFileResult.get(0);

//OPEN REPORT
clientDoc = reportAppFactory.openDocument(report, 0, locale); /*row 58 in exception*/

例外:

com.crystaldecisions.sdk.occa.report.lib.ReportSDKServerException: Unable to connect  to the server: . - Server  not found or server may be down---- Error code:-2147217387 Error code name:connectServer
at com.crystaldecisions.sdk.occa.managedreports.ras.internal.RASReportAppFactory.a(Unknown Source)
at com.crystaldecisions.sdk.occa.managedreports.ras.internal.RASReportAppFactory.a(Unknown Source)
at com.crystaldecisions.sdk.occa.managedreports.ras.internal.RASReportAppFactory.a(Unknown Source)
at com.crystaldecisions.sdk.occa.managedreports.ras.internal.RASReportAppFactory.openDocument(Unknown Source)
at com.reportclient.MyReportClient.getReportFromInfoStore(MyReportClient.java:58)
... 28 more
Caused by: com.crystaldecisions.sdk.occa.report.lib.ReportSDKServerException: Unable to connect to the server: . - Server  not found or server may be down---- Error code:-2147217387 Error code name:connectServer
at com.crystaldecisions.sdk.occa.report.lib.ReportSDKServerException.throwReportSDKServerException(Unknown Source)
at com.crystaldecisions.sdk.occa.managedreports.ras.internal.CECORBACommunicationAdapter.connect(Unknown Source)
... 32 more
Caused by: com.crystaldecisions.enterprise.ocaframework.OCAFrameworkException$NotFoundInDirectory: Server  not found or server may be down
at com.crystaldecisions.enterprise.ocaframework.j.find(Unknown Source)
at com.crystaldecisions.enterprise.ocaframework.AbstractServerHandler.buildServerInfo(Unknown Source)
at com.crystaldecisions.enterprise.ocaframework.AbstractServerHandler.buildClusterInfo(Unknown Source)
at com.crystaldecisions.enterprise.ocaframework.aa.for(Unknown Source)
at com.crystaldecisions.enterprise.ocaframework.ServiceMgr.for(Unknown Source)
at com.crystaldecisions.enterprise.ocaframework.o.a(Unknown Source)
at com.crystaldecisions.enterprise.ocaframework.o.a(Unknown Source)
at com.crystaldecisions.enterprise.ocaframework.o.a(Unknown Source)
at com.crystaldecisions.enterprise.ocaframework.p.a(Unknown Source)
at com.crystaldecisions.enterprise.ocaframework.ServiceMgr.getManagedService(Unknown Source)
... 33 more

登录时通信显然有效。如果您有任何想法或知道我可以去哪里寻找答案,请告诉我。:)

问候,卡尔

4

2 回答 2

1

经过一些进一步的研究,这是我发现的。第一个错误是由于使用了早期版本的 BO SDK。第二个错误“CORBA 通信失败:原因[错误号 WSAETIMEDOUT]”在 iiop 端口未打开时发生。我通过设置 SDK 侦听器端口解决了这个问题(在文档http://www.sdn.sap.com/irj/boc/go/portal/prtroot/docs/library/uuid/0047e5f4-3140-2b10-1bae- de175e4c741c?QuickLink=index&overridelayout=true)并三重检查防火墙是否打开。

于 2010-06-14T06:26:05.150 回答
0

我猜测您正在使用的 ReportEngine 变量 reportAppFactory 对于您尝试打​​开的文档类型不正确。

另一种可能性是这是一个 DeskI 报表,它正在寻找能够打开文档的连接服务器组件。

如果您可以提供更多详细信息,我会尽力提供帮助。

于 2010-05-13T20:47:15.597 回答