最新历史版本 :新SAPBW数据集插件 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

报表服务器版本新SAP BW数据集插件版本
11.0V1.5.30

2. 准备工作编辑

2.1 开启服务

1)首先确认 SAP BW 服务器已经开启了 XMLA 服务,才能在外部软件中使用 XMLA 连接。

客户端进入 SAP 系统,按照如下路径进入:「TCODE:SICF >default_host> sap>bw」,如下图所示:

image.png

2)右击「bw」,选择「Deactivate service」,点击「确认」;再次右击「bw」选择「Activate service」,点击「确认」,确保所有的服务都已经开启。

image.png

2.2 安装插件

安装 新 SAP BW 数据集插件 

设计器插件安装方法请参照 设计器插件管理

服务器安装插件方法请参照 服务器插件管理

注1:更新重装插件后如果出现连接报错,可以重启工程解决

注2:SAP BW 插件需要授权。

注3:暂不支持 服务器部署包 下使用新 SAP BW 数据集插件。

注4:不支持 jdk5 及低于此版本的 jdk

2.3 导入文件

如需使用 JCO、BICS 连接方式,请根据自身工程的部署环境选取并导入相应文件。

2.3.1 Windows 系统服务器

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

JDK 位数JDK 版本SAP 文件包将 SAP 文件包中的文件导入对应路径
32JDK 1.8 且小版本需在 JDK8u102 以上

sapjco3_windows_32bit.rar

sapjco3.jar 放在%TOMCAT_HOME%\webapps\webroot\WEB-INF\lib路径下

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

64
JDK 1.8 且小版本需在 JDK8u102 以上

sapjco3_windows_64bit.rar

sapjco3.jar 放在%TOMCAT_HOME%\webapps\webroot\WEB-INF\lib路径下

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

注1:如果数据连接失败,可以尝试将 sapjco3.dll 文件放置在系统 jre 的 bin 目录下,例如:%JAVA_HOME%\jre\bin

注2:Windows Server 2003 和 Windows XP 的系统在连接 SAP 时,需要下载安装 Microsoft Visual C++ 2005 SP1。

2.3.2 Mac OS 系统服务器

1)点击下载驱动:libsapjco3.rar,解压后可以将其放置在%FineReport%/lib下。

2)打开设计器%FineReport%/bin,右击「designer」,选择「显示包内容」,打开 vmoptions.txt 文件,如下图所示:

3)在文件中写入:-Djava.library.path=/Applications/FineReport11/lib(放置驱动文件的路径)

注:如果同时安装了 SAP 和 SAP BW 插件,可能会存在冲突导致有某一种数据集预览报错的问题。

2.3.3 Linux 系统服务器

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

JDK 位数SAP 文件包将 SAP 文件包中的文件导入对应路径
32位

sapjco3_linux_32bit.rar

sapjco3.jar 放在%TOMCAT_HOME%\webapps\webroot\WEB-INF\lib路径下

libsapjco3.so 放在%JAVA_HOME%\jre\bin路径下

libsapjco3.so 放在usr\lib文件夹下,若 Linux 为 64 位,放到usr\lib64路径下

64位

sapjco3_linux_64bit.rar

sapjco3.jar 放在%TOMCAT_HOME%\webapps\webroot\WEB-INF\lib路径下

libsapjco3.so 放在%JAVA_HOME%\jre\bin路径下

libsapjco3.so 放在usr\lib64路径下

注:如果仍连接不了,看报错信息,例如验证 SAPJCO 失败,缺少依赖包 libstdc++.so「SAPJCO2 才需要,而 SAPJCO3 不需」,则需要安装共享库。

2.3.4 本地设计器

如果本地设计器用到 SAP 数据连接,根据安装的设计器位数,下载 Windows 系统下对应位数的 JDK1.6 版本的 SAP 文件包。


设计器位数 SAP文件包将SAP 文件包中的文件导入对应路径
32位

sapjco3_windows_32bit.rar

sapjco3.jar 放在%FR_HOME%\webapps\webroot\WEB-INF\lib路径下
sapjco3.dll 放在%FR_HOME%\jre\bin路径下

64位

sapjco3_windows_64bit.rar

sapjco3.jar 放在%FR_HOME%\webapps\webroot\WEB-INF\lib路径下
sapjco3.dll 放在%FR_HOME%\jre\bin路径下


2.3.5 远程设计

若是进行远程设计,需要本地环境和远程环境都放置相应文件(按对应环境参考本文 2.3.1~2.3.4 节操作)

2.4 补充 BICS 文件(选做)

V1.5.29 及之后版本的插件,为解决驱动加载问题,删除了部分 BICS JAR 包。

因此,如需使用 BICS 功能,需手动将以下 JAR 包文件放置到工程路径 %FR_HOME%\webapps\webroot\WEB-INF\lib 下。

若是进行远程设计,需要本地环境(%FR_HOME%\webapps\webroot\WEB-INF\lib)和远程环境(%Tomcat_HOME%\webapps\webroot\WEB-INF\lib)都要放置。

点击下载并解压获取 JAR 包文件:bics_lib.zip

3. SAP BW Cube编辑

3.1 定义数据连接

点击「服务器>定义数据连接」,点击「+」,选择 SAPBW Cube,根据实际环境填写 URL 、用户名、密码和数据库,点击「测试连接」,若连接成功,则会出现弹出框提示,如下图所示:
1576142612235330.png

XMLA 的 URL 的获取方法:IP 请询问 SAP 管理员,端口号有两种获取方法:

方法一:

客户端进入 SAP 系统,按照如下路径进入:

TCODE:SE37>FUNCTION MODULE>RSBB_URL_PREFIX_GET>Execute single test>Remove the default>Message Sever parameter selection>Execute

从而获取到端口号 1,然后返回上一层页面 ,不删除默认,按照如下路径进入:

Message Sever [X] >Execute

从而获取到端口号 2,尝试获取到的两个端口号,一般是端口 1 。

方法二:

客户端进入 SAP 系统,按照如下路径进入: TCODE:SICF, default_host>sap>bw>xml>soap>xmla, 在开启「bw」服务界面,找到 XMLA 服务并右键点击「测试服务」,会自动调用浏览器,这时输入「bw」登录的用户名密码,然后复制 URL 。如下图所示:

image.png

3.2 添加数据集

点击「+」,添加「SAPBW Cube数据集」,如下图所示:
1576143209957621.png

3.2.1 添加简单通用查询数据集

1)数据库连接选择新建的 SAPBW Cube 连接,点击「下拉」按钮,选择「简单通用查询」,并选择「Cube」类型,设置列轴字段,如下图所示:

1576201368352086.png

2)点击「设置」。设置行轴字段,如下图所示:

1576201544846585.png

3)点击「设置」。设置过滤条件,如下图所示:

1576201661230092.png

4)点击右上角「预览」按钮,可查看添加的数据集。假设原先有 N 个度量值,M 个维度,那么列数为 N+2M,如下图所示:

1576202356435454.png

5) SAP参数,MDX参数语法说明
①变量值,如123456,建议用[]把变量括起来(BW本身的语句美化器也会用[]括起变量),如[123456]或用双引号引起来,否则某些变量传参会报MDX语法错误,目前未知原因。
②单值变量如123456,以[变量值]传递,如[123456];
③多值变量用分号分隔,如[123456];[123456]
④区间变量,如年月区间,以冒号分隔,如[201905]:[201907]

3.2.2 添加自定义 MDX 查询数据集

数据库连接选择新建的 SAPBW Cube 连接,点击「下拉」按钮,选择 自定义 MDX 查询 ,输入查询语句。点击「确定」即可,如下图所示:

1576203660450964.png

4. SAP BW Query编辑

4.1 使用 Web Service 连接

4.1.1 手动搭建 Web Service

注:这里是版本 6 的操作步骤。

1)输入「soamanager」进入配置界面,如下图所示:

image.png

2)选择 Web 服务配置,如下图所示:

image.png

3)搜索并选择 query_view_data ,如下图所示:

image.png

4)点击「创建服务」,如下图所示:

image.png

5)输入服务信息和绑定信息,如下图所示:

image.png

6)选择传输级别安全、消息级别安全信息,如下图所示:

image.png

7)soap 协议默认,点击「完成」即可。

4.1.2 定义数据连接

选择「服务器>定义数据连接」,点击「+」,选择「SAPBW Query」,选择连接方式为「Web Service」,填写 URL、用户名、密码以及编码类型,点击「测试连接」,若连接成功,则会出现弹出框提示,如下图所示:
1576208259424120.png

URL格式:http://ip地址:端口号加上下图中  Berechnete Zugriffs-URL 对应的这串字符。

screenshot-1.png

4.2 使用 JCO 连接

4.2.1 创建 Query 

创建不带参数的 Query

1)登录工具 Query Designer,如下图所示:
222

2)点击「新建」,选择信息提供者创建一个新的 Query ,如下图所示:

3)点击「确定」后,如下图所示:

4)切换成行/列的设置界面,分别拖动左侧目录中的关键指标进入列面板,维度进入行面板,点击「保存」,如下图所示:

1576217752127234.png

注:维度只有展开后,图标为222的才能拖动。

5)输入描述和技术名称,点击「保存」,如下图所示:

1576217983877203.png

注:这里修改的技术名称才是 Query 的实际名字。

创建带参数的 Query

1)切换成过滤器的设置面板,将左侧维度中的需要过滤的维度某项拖入特征限制面板下,比如下图中的日历日,右击该项,点击「限制」,如下图所示:

1576218509301218.png

2)在弹出的对话框下选择显示模式为变量,创建新变量,修改变量名称,如下图所示:

1576218772757063.png

3)详细信息选项卡可设置参数表示(如:单值,多值,范围等)和参数的可选性,如下图所示:

4)点击「OK」,变量创建成功,选中创建成功的变量,将其添加到选择的选项。点击「确定」,如下图所示:
1576219181170146.png

4.2.2  预览 Query 

1)在 SAP 轻松访问中输入 rsrt2 ,进入报表预览,如下图所示:
1576220135970583.png

2)输入 Query 技术名称,点击执行,如下图所示:
1576220223514816.png

3)出现参数变量选择界面,如下图所示:

1576220533747045.png

注:如果没有必选参数,则无此步骤。

3)点击「执行」,预览结果如下图所示:

1576220326757723.png

4.2.3 定义数据连接

点击「服务器>定义数据连接」,点击「+」,择「 SAPBW Query 」,选择连接方式为 JCO ,填写相应的主机名、系统编号、语言、客户端、用户名、密码、连接池属性等信息,如下图所示:

注1:需参考本文 2.3 节导入相关 SAP 文件。

注2:新 SAP BW 数据集插件需要 V1.2 及以上版本。

1576221484689755.png

4.4 添加数据集

1)点击「+」,添加 SAPBW Query 数据集,如下图所示:

1576221614125827.png

2)设置数据集参数

数据库连接选择新建的 SAPBW Query 数据集,根据实际情况填写参数的值。若创建的 Query 设置了参数,需要添加参数。也可以勾选使用缓存、获取单位,如下图所示:

注1:这里信息提供者、Query 及参数,需要手动输入,请根据上述 Query 的创建方法,填写自己实际创建的值。

注2:参数类型仅支持单值、多值和范围,不支持选项类型。

1576224252126182.png

注:1. 使用缓存及在第二次读取数据时速度会变快,且目前缓存时间为 10 分钟,获取单位即勾选后显示字段的单位。

注:2. 参数名一定要写键值,且只能写键值。

3)点击「预览」,弹出参数框,选择「确定」,即可查看预览数据,如下图所示:

1576224545592574.png

1576224693833006.png

5. SAP BW BICS编辑

注1:bics 不支持 hierarchy 层级。

注2:需参考本文 2.3 、2.4 节操作导入相关 SAP、BICS 文件。

5.1 定义数据连接

1)点击「服务器>定义数据连接」.点击「+」,选择「SAPBW BICS」。如下图所示:

2)根据实际环境填写 主机名、用户名、密码 等。点击「测试连接」,若连接成功,则会提示连接成功。如下图所示:

注:SAP BW 重新增 cube 后,需要点击连接界面中的「清除连接缓存」,新的cube才会显示。

5.2 添加数据集

1)点击「+」,选择「SAPBW BICS数据集」。如下图所示:

2)选择「数据库连接」,选择「cube」后再选择行和列,输入参数值,进行查询。如下图所示:

建议用户从下拉中选择 cube,而不是手动输入 cube 名。如果必须手动输入,请确保在输入完成后,按下键盘上的「Enter」键,将输入的内容键入 FineReport。

18.png

参数示例
参数类型赋值
SAP_DATE单值11.2011

SAP_VARPOSITION

多值40100,40101 (多值之间用 , 分隔)
SAP_INTERVAL范围参数40100,101314 (范围书写使用 ,分隔)

注1:插件使用单线程访问,若需要频繁访问或查询速度较慢,建议点击界面中的「使用缓存」以防止查询阻塞

注2:BICS 的参数类型只支持单值、多值、范围三种

注3:产品在参数展示界面增加了「*」用于提醒用户必须输入的参数值

6. 注意事项编辑

6.1 连接不上 BW,显示连接错误

1)检查 bw 中的 XMLA 服务有没有打开。

2)使用浏览器访问 URL:http://[ip]:[port]/sap/bw/xml/soap/xmla?sap-client=***,看是否可以访问。

3)URL 是否正确,只需要点击获取默认 URL 之后,修改 IP 和 port,末尾加上客户号(客户号的获取请询问管理员,一般为 3 位数字如 000,100,800 ) 示例如下:

jdbc:xmla:Server=http://[ip]:[port]/sap/bw/xml/soap/xmla?sap-client=***

4)检查使用的域名不是 IP 导致连不上,域名 ping 不通。

6.2 获取数据出不来

XMLA 协议限制,数据量大就会导致服务报错,只能支持到万级别的行数。

6.3 Query 连接方式支持情况

1)FineReport 中使用 Cube 方式连接时,不支持展示在 Query designer 中所做的应用部分;使用 Query 方式连接则支持。

2)FineReport 中的 Query 不支持自由特性。

3)FineReport 中的 Query 不支持「选择选项」的参数类型,只支持单值、多值、范围、层次节点。

6.4 SAP 参数联动模板参数无效

1)问题描述

新建数据集时,SAP 参数通过公式引用模板参数,联动无效。

2)解决方案

目前不支持 SAP 参数跟模板参数进行联动,新建 SAP 参数替换掉模板参数,SAP 参数之间是支持联动的。

6.5 SAP BW Query 取数显示为空

1)问题描述

连接 SAP BW Query 可以成功,但无法访问到具体数据,且提示报错:

SwingWorker-pool-4-thread-10 ERROR [standard] Cannot find Body Info!

AWT-EventQueue-0 ERROR [standard] node has no children‘

2)解决方案

数据连接时不要使用自己拼接的 URL ,需要使用 Web Service 的 URL 。如下图所示:

Snag_4cd4f2.png

获取 Web Service 默认 URL 格式的方法如下:

数据连接方式选择Web Service,点击获取默认 URL 按钮Snag_55f956.png,URL 编辑框中会自动显示默认的 Web Service URL 格式,将其中的某些参数修改成自己环境下的即可。