1. 概述
报表服务器版本 | 新SAP BW数据集插件版本 |
---|---|
11.0 | V1.5.30 |
2. 准备工作
2.1 开启服务
首先确认 SAP BW 服务器已经开启了 XMLA 服务,才能在外部软件中使用 XMLA 连接。
1)客户端进入 SAP 系统,点击「TCODE:SICF >default_host> sap>bw」。
2)右击「bw」,选择「Deactivate service」,点击「确认」。
3)再次右击「bw」选择「Activate service」,点击「确认」。确保所有的服务都已经开启。
2.2 安装插件
设计器插件安装方法请参照 设计器插件管理
服务器安装插件方法请参照 服务器插件管理
注1:更新重装插件后如果出现连接报错,可以重启工程解决。
注2:SAP BW 插件需要购买授权。
注3:请确保工程JDK版本为 1.8 且小版本在 JDK8u102 以上。
2.3 导入文件
如需使用 JCO、BICS 连接方式,请根据自身工程的部署环境选取并导入相应文件。
如进行远程设计,需要本地环境和远程环境都放置相应文件。
1)下载对应版本并解压文件夹,获得sapjco3.jar、sapjco3.dll文件。
2)登录服务器,找到/webapps/webroot/WEB-INF/plugins目录下的SAP插件文件夹。
3)将sapjco3.jar、sapjco3.dll文件上传到SAP插件文件夹中即可
4)如需远程设计,请选择本地电脑环境对应的sapjco3.jar、sapjco3.dll文件,上传到本地设计器%FR_HOME%\webapps\webroot\WEB-INF\plugins和%FR_HOME%\plugins两个目录下的SAP插件文件夹中
5)重启工程后生效。
服务器 | SAP 文件包 |
---|---|
Linux64 | |
Linux32 | |
Windows64 | |
Windows32 | |
Mac OS | libsapjco3.rar |
注1:Windows Server 2003 和 Windows XP 的系统在连接 SAP 时,需要下载安装 Microsoft Visual C++ 2005 SP1。
注2:如果同时安装了 SAP 和 SAP BW 插件,可能会存在冲突导致有某一种数据集预览报错的问题。
注3:如果数据连接失败,可以尝试将 sapjco3.dll 文件放置在系统 jre 的 bin 目录下,例如:%JAVA_HOME%\jre\bin
注4:如果仍连接不了,看报错信息,例如验证 SAPJCO 失败,缺少依赖包 libstdc++.so「SAPJCO2 才需要,而 SAPJCO3 不需」,则需要安装共享库。
注5:MAC OS系统,需要在vmoptions.txt文件中写入-Djava.library.path=/放置驱动文件的路径
打开设计器%FineReport%/bin,右击「designer」,选择「显示包内容」,打开 vmoptions.txt 文件
在文件中写入:-Djava.library.path=/Applications/FineReport10.0/lib(放置驱动文件的路径)
2.4 补充 BICS 文件(选做)
V1.5.29 及之后版本的插件,为解决驱动加载问题,删除了部分 BICS JAR 包。
如需使用 BICS 功能,需手动将以下 JAR 包文件放置到工程路径/webapps/webroot/WEB-INF/plugins目录下的SAP插件文件夹下。
若是进行远程设计,需要本地环境和远程环境都要放置。
点击下载并解压获取 JAR 包文件:bics_lib.zip
3. SAP BW Cube
3.1 定义数据连接
点击「服务器>定义数据连接」,点击「+」,选择 SAPBW Cube,根据实际环境填写 URL 、用户名、密码和数据库,点击「测试连接」,若连接成功,则会出现弹出框提示,如下图所示:
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 。如下图所示:
3.2 添加数据集
点击「+」,添加「SAPBW Cube数据集」,如下图所示:
3.2.1 添加简单通用查询数据集
1)数据库连接选择新建的 SAPBW Cube 连接,点击「下拉」按钮,选择「简单通用查询」,并选择「Cube」类型,设置列轴字段,如下图所示:
2)点击「设置」。设置行轴字段,如下图所示:
3)点击「设置」。设置过滤条件,如下图所示:
4)点击右上角「预览」按钮,可查看添加的数据集。假设原先有 N 个度量值,M 个维度,那么列数为 N+2M,如下图所示:
5) SAP参数,MDX参数语法说明
①变量值,如123456,建议用[]把变量括起来(BW本身的语句美化器也会用[]括起变量),如[123456]或用双引号引起来,否则某些变量传参会报MDX语法错误,目前未知原因。
②单值变量如123456,以[变量值]传递,如[123456];
③多值变量用分号分隔,如[123456];[123456]
④区间变量,如年月区间,以冒号分隔,如[201905]:[201907]
3.2.2 添加自定义 MDX 查询数据集
数据库连接选择新建的 SAPBW Cube 连接,点击「下拉」按钮,选择 自定义 MDX 查询 ,输入查询语句。点击「确定」即可,如下图所示:
4. SAP BW Query
4.1 使用 Web Service 连接
4.1.1 手动搭建 Web Service
注:这里是版本 6 的操作步骤。
1)输入「soamanager」进入配置界面,如下图所示:
2)选择 Web 服务配置,如下图所示:
3)搜索并选择 query_view_data ,如下图所示:
4)点击「创建服务」,如下图所示:
5)输入服务信息和绑定信息,如下图所示:
6)选择传输级别安全、消息级别安全信息,如下图所示:
7)soap 协议默认,点击「完成」即可。
4.1.2 定义数据连接
选择「服务器>定义数据连接」,点击「+」,选择「SAPBW Query」,选择连接方式为「Web Service」,填写 URL、用户名、密码以及编码类型,点击「测试连接」,若连接成功,则会出现弹出框提示,如下图所示:
URL格式:http://ip地址:端口号加上下图中 Berechnete Zugriffs-URL 对应的这串字符。
4.2 使用 JCO 连接
4.2.1 创建 Query
创建不带参数的 Query
1)登录工具 Query Designer,如下图所示:
2)点击「新建」,选择信息提供者创建一个新的 Query ,如下图所示:
3)点击「确定」后,如下图所示:
4)切换成行/列的设置界面,分别拖动左侧目录中的关键指标进入列面板,维度进入行面板,点击「保存」,如下图所示:
注:维度只有展开后,图标为的才能拖动。
5)输入描述和技术名称,点击「保存」,如下图所示:
注:这里修改的技术名称才是 Query 的实际名字。
创建带参数的 Query
1)切换成过滤器的设置面板,将左侧维度中的需要过滤的维度某项拖入特征限制面板下,比如下图中的日历日,右击该项,点击「限制」,如下图所示:
2)在弹出的对话框下选择显示模式为变量,创建新变量,修改变量名称,如下图所示:
3)详细信息选项卡可设置参数表示(如:单值,多值,范围等)和参数的可选性,如下图所示:
4)点击「OK」,变量创建成功,选中创建成功的变量,将其添加到选择的选项。点击「确定」,如下图所示:
4.2.2 预览 Query
1)在 SAP 轻松访问中输入 rsrt2 ,进入报表预览,如下图所示:
2)输入 Query 技术名称,点击执行,如下图所示:
3)出现参数变量选择界面,如下图所示:
注:如果没有必选参数,则无此步骤。
3)点击「执行」,预览结果如下图所示:
4.2.3 定义数据连接
点击「服务器>定义数据连接」,点击「+」,选择「 SAPBW Query 」,选择连接方式为 JCO ,填写相应的主机名、系统编号、语言、客户端、用户名、密码、连接池属性等信息,如下图所示:
注1:需参考本文 2.3 节导入相关 SAP 文件。
注2:新 SAP BW 数据集插件需要 V1.2 及以上版本。
4.3 添加数据集
1)点击「+」,添加 SAPBW Query 数据集,如下图所示:
2)设置数据集参数
数据库连接选择新建的 SAPBW Query 数据集,根据实际情况填写参数的值。若创建的 Query 设置了参数,需要添加参数。也可以勾选使用缓存、获取单位,如下图所示:
注1:这里信息提供者、Query 及参数,需要手动输入,请根据上述 Query 的创建方法,填写自己实际创建的值。
注2:参数类型仅支持单值、多值和范围,不支持选项类型。
注:1. 使用缓存及在第二次读取数据时速度会变快,且目前缓存时间为 10 分钟,获取单位即勾选后显示字段的单位。
注:2. 参数名一定要写键值,且只能写键值。
3)点击「预览」,弹出参数框,选择「确定」,即可查看预览数据,如下图所示:
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。
参数示例 | 参数类型 | 赋值 |
---|---|---|
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 。如下图所示:
获取 Web Service 默认 URL 格式的方法如下:
数据连接方式选择Web Service,点击获取默认 URL 按钮,URL 编辑框中会自动显示默认的 Web Service URL 格式,将其中的某些参数修改成自己环境下的即可。