历史版本12 :SAP的RFC接口调用 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 描述编辑

SAP 作为独立的系统,与其它系统进行交互的时候,主要是两种方式:

  • 底层数据库直接交互;

  • 通过 SAP 专门的 RFC 接口进行数据调用。

SAP 现在主要的数据库平台有两种关系型数据库,Oracle 和 DB2,第一种方式 FineReport 通过 JDBC 的方式直连 SAP 数据库来解决,但是使用这种方式,制作人员需要对 SAP 数据库了解比较深,并且数据库可以对其他软件开放。下面主要介绍第二种方式。

注:现在推荐使用 SAP 插件,只有在插件取数出现问题,就可以使用下面的方法来还原问题


2. 设计思路编辑

首先通过 Java 类文件建立和 SAP 的连接,然后通过程序数据集接口,将 RFC 调出来的数据进行虚拟二维表封装,调用虚拟二维表,进行报表的制作。

3. 实现步骤编辑

3.1 建立连接

通过 ConnectSAPServer 类实现与 SAP 的连接,类文件的代码如下:

https://git.fanruan.com/demo/example/src/release/10.0/src/main/java/com/fr/function/ConnectSAPServer.java

3.2 程序数据集调用

1)定义程序数据集

数据库连接上之后,定义程序数据集,通过我们的程序数据源接口将数据转换成虚拟表,类文件具体代码如下:

https://git.fanruan.com/demo/example/src/release/10.0/src/main/java/com/fr/data/ParamSAPDataTest.java

2)配置程序数据集

详细配置步骤请查看:简单程序数据集

4. 总结编辑

通过 RFC 接口这种方式避免了直连数据库的问题,而这些 RFC 参数和调用表结构网上或者 SAP 供应商都会提供,不过缺点在于需要写类文件来获取数据,报表多的时候比较麻烦,如果要达到一些图表联动等效果,需要在类里面写参数,修改起来不是很方便,需要技术人员进行报表制作,业务人员比较困难。