SAP BOBJ Data Services如何连接BW

SAP DS现在不但支持BW作为源和目标,由于Netweaver ODP,还支持BW的数据源。于是客户在越来越多的考虑使用DS这个专业的ETL工具。这篇文章介绍了如何用DS将数据加载到BW。

 

 

原文地址 http://scn.sap.com/docs/DOC-29394

介绍

该文档描述了BOBJ DS和SAP BW的配置。该配置手册也可以用于基于BW的解决方案,如DSiM(Demand Signal Management), 它对于数据被加载到BW作为类似BI Content使用之前有特殊的数据清洗和调和需求。

该“how-to手册”提供了在DS和BW间创建RFC连接的步骤。这包括使用哪种连接类型和如何配置的配置建议。该手册也提供了一些最佳实践和解决问题的方法来避免在使用BO DS新数据源类型时经常碰到的费力的排错儿、这种办法和错误处理。

前提

应用版本

SAP Data Service 4.0

Designer 14.0.2.435

JobServer 14.0.2.435

JobEngine 14.0.2.435

SAP BW 7.31

SAP NOTE 1727378

安装

SAP BusinessObjects Data Services 4.0 SP2(14.0.2.0)

Data Services - BW数据传输的背景

Data Services可以被用于SAP BW的传输加载过程,特别是对于非SAP数据。
以下是在SAP BW传输加载过程中使用DS功能的步骤:
1)加载非SAP数据到DS引擎
2)在DS的数据上执行数据加工操作
3)将数据加载到SAP BW

DS的数据加载到BW有两种方式:
1)BW控制
2)DS控制

第一种情况需要手动创建InfoPackage。这里你可以利用BW里的BO “Data Serivces”源系统类型来简化工作。你需要填写作业名字(或者如果你在源系统属性里输入一个data store,BW将自动生成)因为当infopackage被运行时那个作业将在data services里启动。

第二种情况里,作业已经被BO data services启动。它将生成一个DS生成的infopackage,因为BW需要一个可以附加BW数据加载请求的对象。在生成infopackage之后,BO DS远程启动infopackage并取回数据加载请求。通过这个请求,DS可以开始发送数据到BW。因此,infopackage到BO DS的调用(也发生在infopackage被远程启动时)是被BO DS忽视的。

由于这个原因,infopacakge的内容在第二种情况里是完全不相关的。但是如果你在第一种情况里误用了这样一个infopackage,BO DS会报错,因为它生成占位infopackage的方法对它自身来说是不一致的(因为在特定使用场景下,这是被忽略的)。

BW - 创建RFC连接

连接SAP BW与Data Services

为了能够在SAP BW和DS之间交换数据和元数据,我们必须首先在系统间建立连接。

在SAP BW这端,是通过创建一个源系统(在BW 3.X老版本里叫外部源系统)来实现的,而在DS里我们必须创建一个datastore. 请注意,在BW 7.3x里有一种叫做BO DataServics新的源系统。这应该帮助在数据传输时获得更好的性能。

进入BW系统
运行事务代码RSA1
在左边建模导航面板里选择源系统。
选择BO DataServices,右键点击选择创建。

1

输入逻辑系统名字和源系统名字,点击继续。
2

Data Services将启动一个RFC服务器程序并且告诉SAP它已经准备好接受RFC请求。为了在SAP BW系统里标识自己为RFC服务器,系统间要交换一个关键字,在下面的截图里是“BOE_DS_SRY_vmw4698”。这就是注册的服务器程序,DS RFC服务器将自己注册到SAP。因此,在DS一端使用RFC服务器调用时提供同样的程序ID。源系统的其它设置可以保持缺省。保存以完成源系统的定义。

3

BO Data Services - 配置RFC连接

在这一节,我们将创建源系统并且在DS端启动RFC服务器。从DS 3.2版本开始,RFC服务器被放入management console中。
所以我们启动management console,展开到新的“SAP Connections”节点并且打开“RFC Server interface”选项。在配置标签中,加入一个新的RFC服务器以便它能用program_ID注册自己到SAP系统.

5

启动RFC服务器。

6

BW - 测试RFC连接

登录到SAP BW。
运行SM59。
选择文件夹TCP/IP连接并双击建立的RFC连接。
7

点击连接测试。

8

状态栏会显示连接成功与否。

创建BW数据源

登陆SAP BW系统。运行RSA1。

在模型下选择源系统,双击创建的BO DS连接。右键单击源系统,然后创建或者映射某个RFC连接需要的数据源。也可以激活和安装BI Content,DS就可以使用相应的schema或者数据结构。

在BO Data Services里BW作为目标系统

登录到SAP BO Data services designer。

BO DS Designer将用来创建作业和用于数据整合与清洗的查询。

现在我们想映射和选择创建好的主数据和事务数据源。在BO DS designer的local object library里双机创建的datastore。

10

通过选择相应的主数据 事务数据传输结构导入BW数据源。在这些树状结构分支下,你只能选择“导入”。

11

从BW导入所有你想用DS传输的数据源。

注意事项 BW 7.30 - Data services 4.0

计划或者执行一个BW加载任务有两种方法:

1)从DS系统计划或者执行BW加载作业。在这种情况下,你应该在SAP BW系统(RSA1)里创建BODS源系统(SAPDS_SOURCE)并不用设置任何属性。它只想一个单独的RFC目标(SM59),例如SAPDS。SAPDS可以只想一个program id DSPORGID。

2)从BW计划或者执行BW加载作业。在这种情况下,你应该创建另一个BODS源系统(SAPBWDS_SOURCE)并设置属性。它指向一个单独的RFC目标,比如SAPBWDS。SAPBWDS可以指向DSPROGID。

a. 如果你不设置属性,你需要在infopackage的第三方参数设置处提供资源库的名字,jobserver名字和job名字。

b. 这个选项也让SAPGUI用户能够自动创建BW DataSource并从源表(如oracle)里获取结构信息。请参考下面的外部系统章节。

通过SAP BW 7.30 - Data Services 4.0 的外部系统

BW 7.30和Data Services 4.0有模型集成功能,这使你不必为了连接任何第三方系统获得数据而离开BW data warehousing workbench。但是由于DS是单独的一套系统,有一些前提,你需要在DS上完成以后才能从BW系统里进行远程函数调用。

打开DS management console

登陆并进入administrator。首先你需要的是一个SAP连接,比如一个监听BW的RFC服务器。 进入“RFC server interface configuration”并增加一个连接。

12

在ABAP一端的连接类型是“registered server program”,你需要输入登陆信息将这个程序注册到SAP应用服务器。处于这个原因,在DS里你需要为每个SAP应用服务器一个单独的RFC服务器配置。赋给它们同样的”RFC programID”并记下来。在这个例子里,我们使用“DI_GEMINI”。在稍后当你建立从BW到DS的连接时,你将用到它。

现在,登录到BW data warehousing workbench然后使用外部系统连接。在这个例子里,我们连接到一个MySQL数据库。

现在我们不使用“data services system”因为我们想连接到一个(外部的)MySQL数据库并且调用几个源系统数据库,比如“sales database”。

13

14

一旦创建好了“外部系统”类型的源系统,输入你之前记录的RFC program id。保存并测试。

15

当你退出,应该出现两个屏幕。你需要输入DS系统的资源库名字和job server名字。你可以使用值提示来获取准确的名字。

16

第二个“属性”屏幕会弹出,用来定义DS的对象“datastore”。为了定义,需要登录到BW的用户名和密码。为了获得MySQL数据库上的业务数据,必须通过DS定义另一个datastore。这次是源data store。

17

如果没有连接到外部数据库的datastore,你可以输入新的名字并单击“创建”按钮。系统会提示使用哪种类型的datastore。在这个例子里,MySQL是没有change-delta capture(译:用来捕获变更数据进行差异传输的数据库特性)关系型数据库管理系统,我们选择“RDBMSDataStore”而不是“CDCRDBMSDataStore”。配置列变成可输入。扎这个例子里,配置被自动命名为DEFAULT。但是配置的类型需要通过值列表选择。

18

在这个例子里数据源是一个ODBC数据源而不是BW。因为MySQL数据库通过ODBC技术访问,你需要输入数据库的名字 用户名 密码来连接到数据库。为了输入密码,点击输入框来弹出另一个窗口输入密码。确认所有的屏幕后,DS会创建两个前面提到的datastore并且按照BW系统里设置的参数保存它们的名字和资源库的名字 job server信息。datastore配置本身并不会保存在BW中,但是你可以通过点击编辑按钮来更改,这些信息就会从DS里取出。

典型错误和支持

关于在DS生成的infopackage在BW里的invalid jobname parameter错误,请遵循下面的临时方案在BW里移除资源库名字。

error

运行SE16。打开表RSBOBJDS_LOGSYS。删除REPOSITORY JOBSERVER。删除DS生成infopackage并再次运行DS作业创建新的infopackage。 你可以参考SAP NOTE 1727378。

在一些文档里,作者建议填全资源库 jobname,这可能被误解。这这种情况下(使用DS生成的infopackage)将导致这个错误。

因此,对于使用BO DS类型数据源的DS生成的infopackage,请不要填写第三方选择标签。它应该像下面这样保持空值。

parameter

另外,需要记住,对于在BW创建和触发的infopackage,你必须填写资源库和jobname参数。

文档参考

http://wiki.sdn.sap.com/wiki/display/EIM/Run+the+DataServices+3.2+RFC+Server

http://wiki.sdn.sap.com/wiki/display/BOBJ/How+To+Use+BusinessObjects+Data+Services+in+SAP+BI+staging+process

http://scn.sap.com/people/thomas.rinneberg/blog/2011/03/03/bw-730-modeling-integration-between-sap-business-objects-data-services-and-bw-part-1-of-2-connect-source-system

猜你喜欢

转载自sap.iteye.com/blog/1872477
今日推荐