通过.NET Desktop App-SDK与REST自动生成Crystal报表

2020-08-25 15:34发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)你好 我们最近升级到BI平台4...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


你好

我们最近升级到BI平台4.2 SP6和Crystal Reports 2016,它打破了.NET Windows Forms应用程序中发生的自动报告生成过程。 以前,我们使用4.0 SP6和Crystal Reports 2011,但我们有几百个报告。 当在装有Business Objects的服务器上运行时,我们的批处理报告生成过程仍然有效,但是类似的代码在开发人员或用户计算机上不起作用(DLL Hell?)

该应用程序正在使用Business Objects .NET SDK,它将连接到服务器,在信息存储中查询报表,设置报表格式选项,磁盘目标和参数,然后计划运行报表。 重复这些步骤,单击一个按钮即可生成大约70个PDF报告。

升级后,尝试从Report对象获取报告格式选项时,我们开始出错:

 InfoObjects ceInfoObjects = ceInfoStore.Query(queryString);
 InfoObject ceInfoObject = ceInfoObjects [1];
 报告ceReport =(Report)ceInfoObject;
 ReportFormatOptions rfo = ceReport.ReportFormatOptions; 

ceReport.ReportFormatOptions现在为空,我们无法使报告自动生成。

我尝试切换到使用ISReport,ISInfoStore等接口对象,但是遇到了相同的问题。

我做了一些研究,发现ReportEngine SDK不再适用于.NET,因此我假设已经弃用了用于执行此操作的某些DLL,我们需要找到另一种方法。

我开始研究RESTful Web服务,在玩了几天之后,我觉得自己也遇到了类似的问题。 我可以遍历信息存储并获取所需的报告ID,但是当我按照SAP Crystal Reports RESTful Web服务开发人员指南中的说明对报告URI进行GET时,会收到以下错误:

503调用服务时发生未知错误。 有关详细信息,请参见服务器日志。 (RWS 00007)

我打开了高级别的日志记录,然后挖掘了跟踪日志以查看是否可以确定问题,并找到了以下消息:

com.crystaldecisions.sdk.occa.infostore.internal.InfoObjects || continueUnpack():找不到插件,type = 2 com.crystaldecisions.sdk.exception.SDKException $ PluginNotFound:2插件不存在( FWM 02016)

...//异常堆栈跟踪

原因:java.lang.ClassCastException:无法将com.crystaldecisions.sdk.occa.infostore.internal.SchedulableCategoryContentInfoObject类转换为com.crystaldecisions.sdk.plugin.desktop.report.IReport

接口

类强制转换异常使我认为现在tomcat服务器上可能缺少一些JAR文件,我感觉就像是在转圈,所以我的问题是这样的:

在BI 4.2 SP6上,通过.NET Windows Forms应用程序自动生成PDF Crystal Reports并将其保存到内部网络上的文件夹的最佳方法是什么? 还能做到吗?

您有没有可以指向我的代码示例来说明如何执行此操作或类似操作?

如果您需要更多信息,代码段等,请告诉我。

1条回答
我是小鹏鹏啊
2020-08-25 16:12 .采纳回答

我们最终能够通过将BusinessObjects和CrystalDecisions库的项目引用更改为使用64位版本的DLL(而不是之前使用的32位版本)来解决该问题。 此后,格式选项不再为空,报告将按预期生成。

一周热门 更多>