SAP的RFC接口调用例子

编辑
  • 文档创建者:文档助手1
  • 浏览次数:9315次
  • 编辑次数:16次
  • 最近更新:Carly 于 2019-09-11
  • 1. 描述

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

    • 底层数据库直接交互;

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

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

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

    2. 设计思路

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

    3. 实现步骤

    3.1 增加 SAP JAR 包

    报表工程部署在 Windows 系统的服务器下,以 Tomcat 为例。

    注:下文中使用到的 SAP 的 JAR 包文件请到 SAP 官网下载,可以联系技术支持 QQ:800049425 协助下载。

    JDK 位数JDK 版本文件包SAP 文件导入位置
    32位JDK1.4sapjco2_window_32bitsapjco.jar 放在%TOMCAT_HOME%\lib路径下

    librfc32.dll 放在C:\Windows\System32路径下

    sapjcorfc.dll 放在C:\Windows\System32路径下

    JAK1.5以上sapjco3_windows_32bitsapjco3.jar 放在%TOMCAT_HOME%\lib路径下
    sapjco3.dll 放在C:\Windows\System32路径下
    64位JDK1.4sapjco2_window_32bitsapjco.jar 放在%TOMCAT_HOME%\lib路径下

    librfc32.dll 放在C:\Windows\System32路径下

    sapjcorfc.dll 放在C:\Windows\System32路径下

    JAK1.5以上sapjco3_windows_32bitsapjco3.jar 放在%TOMCAT_HOME%\lib路径下
    sapjco3.dll 放在C:\Windows\System32文件夹下

    3.2 建立 SAP 连接

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

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

    注:连接步骤请参考:Eclipse中启动设计器

    3.3 定义程序数据集

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

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

    3.4 配置程序数据集

    详细配置步骤请参见:简单程序数据集

    配置完成后可在设计器成功新建程序数据集,如下图所示:


    4. 总结

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

    附件列表


    主题: 二次开发
    标签: 暂无标签
    如果您认为本文档还有待完善,请编辑

    文档内容仅供参考,如果你需要获取更多帮助,付费/准付费客户请咨询帆软技术支持
    关于技术问题,您还可以前往帆软社区,点击顶部搜索框旁边的提问按钮
    若您还有其他非技术类问题,可以联系帆软传说哥(qq:1745114201

    此页面有帮助吗?只是浏览 [ 去社区提问 ]