SAP BW之建模之转换和DTP - 51SAP教育中心

更新时间:2024-04-22 22:48:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

SAP问答:http://www.sapzhidao.com

SAP培训:http://www.51sap.cn

如果非要把BW的应用分为几部分的话,我觉得应该分为3部分,一部分:数据源的抽取,前面我们已经介绍了数据从数据源上载的PSA的技术细节;二部分:数据的模型创建,为了适应应用的需要,按照合理的方式创建数据模型;三部分:建立在模型及数据基础上的应用,如:报表、合并、预算等。

下面介绍BW中的数据模型。BW真不愧是SAPR3的兄弟产品,它所提供的BI CONTENT内容几乎覆盖了所有的SAP业务,我们都可以找到对应的模型,进行修改,来满足我们的需求,不像SAP收购的BPC那样不好用。这样,就减少了我们建模的时间,同时也为不懂业务数据结构的BW人士,提供了捷径,这样,SAP领域就出了一个职位叫做BW顾问。有一天,有个人跟你说,他是BW顾问,那就意味着他是做抽数和激活组件的。顺便说一下,我不是BW顾问的,我只是个搞技术的。

BW中的模型简单来说,是通过DSO和CUBE来创建的。下面从数据流向的角度介绍各个模型组件:

首先提供给大家一个SAP的图,表明数据的上载流程,仅供参考:

1. 转换:

所谓ETL,即:Extraction/Transform/Load。数据上载到PSA,就是抽取(E)的过程;转换(T)是对数据进行业务上的合并、计算等操作;装载(L)即为上载到数据提供者(存储应用层数据)中。

BW中提供了可视化的转换工具,并且可以在转换的过程中,对数据进行加工,相当于R3中的增强,在应用程序运行过程中,执行我们定义的逻辑。再配合DTP(Data Transfer Process)将数据上载。

1/8

SAP问答:http://www.sapzhidao.com SAP培训:http://www.51sap.cn

SAP问答:http://www.sapzhidao.com

SAP培训:http://www.51sap.cn

以自定义的数据源为例:

可以通过拖拽的方式将字段关联,系统会按照我们定义好的转换规则将数据传输到数据目标中,默认为“直接分配”,即:将数据直接传输到数据目标,不做任何修改。BW提供给我们灵活的转换方式。下面一一介绍:

在目标字段上双击,其中的“规则类型”表明,我们使用哪种转换:

直接分配:直接赋予源字段的值

常数:不管转换规则如何,总是赋予指定的常数

2/8

SAP问答:http://www.sapzhidao.com SAP培训:http://www.51sap.cn

SAP问答:http://www.sapzhidao.com

SAP培训:http://www.51sap.cn

公式:通过指定的源字段(需要将逻辑相关的源字段指向目标字段),通过运算,将结果赋予目标字段。如果通过公式可以赋值的话,那么通过例程也可以实现,而且对于技术人员来说更容易控制。(有人说公式可以让你不用写ABAP,是个好处,那就仁者见仁了,不过,个人认为不动ABAP的BW顾问是个瘸子)

初始值:将初始值赋予目标字段。即:如果无任何特殊处理的话,就将空赋予目标字段。如0GL_ACCOUNT默认是经过ALPHA转换的,那么就将0000000000赋予目标字段。

读主数据:值是根据源字段的值,到信息对象的主数据中获取。如:我们要为货币分配公司的本位币,那么设置如下:

首先通过拖拽,将源公司代码字段与货币字段关联,然后在信息对象参考字段填上0COMP_CODE。转换时,系统会到主数据中查询对应的值,与公式相似,我们也可以通过程序的方式来实现,我们后面会主要介绍例程的方式。

例程:通过程序来改变转换逻辑。 例程主要是根据源字段提供的数据,进行运算或者多其他数据源中将值赋予目标字段。我们需要将相关联的源字段与目标字段关联。

在这里我们实现一个测试的逻辑:如果公司代码为1003,那么将会计年度作为值赋予0BALANCE,当然,这只是简单的测试。

首先,将公司和会计年度与0BALANCE关联。

3/8

SAP问答:http://www.sapzhidao.com SAP培训:http://www.51sap.cn

SAP问答:http://www.sapzhidao.com

SAP培训:http://www.51sap.cn

双击0BALANCE,选择“例程”转换类型,BW把我们导航到例程的界面:

例程中,系统将我们关联的字段集合到了source_fields中,我们只需要直接调用

source_fields-bukrs和source_fields-gjahr就可以了,然后将值赋值给RESULT。这样,我们就实现了数据转换的自定义。同理,专家例程,也是通过这种方式来实现的,大家有兴趣可以看一看。

4/8

SAP问答:http://www.sapzhidao.com SAP培训:http://www.51sap.cn

SAP问答:http://www.sapzhidao.com

SAP培训:http://www.51sap.cn

集合:对于key figure的转换,存在“集合”的选择,在转换到DSO时,可以选择“覆盖”和“合计”,对于转换到CUBE,只能选择“合计”,具体选择哪一项是与数据源的DELTA属性有关的,具体请参考DELTA管理

http://community.kingdee.com/pages/chunguangz/blog/archive/2010/03/21/401977.aspx

时间处理:转换时,对于时间可以实现自动转换,如:20100101->2010001;20100101->2010; 单位处理:

在我们创建DSO和CUBE的时候,当添加key figure,系统会自动为我们添加其对应的单位信息对象。也就是说如果一个模型(DSO,CUBE)中的两个key figure拥有相同的单位信

5/8

SAP问答:http://www.sapzhidao.com SAP培训:http://www.51sap.cn

SAP问答:http://www.sapzhidao.com

SAP培训:http://www.51sap.cn

息对象,但却有不同的含义,那么在做报表的时候显示会有问题,因为报表中,BW是按照信息对象的设置,到数据记录中对应的单位信息对象的值的。

当转换到DSO时,单位信息对象是作为目标字段存在于转换中,我们需要将值与对象分别关联

当转换到CUBE时,单位信息对象是做为单位维存在的,在转换中不能直接看到单位信息对象,但要将单位与keyfigure关联,在目标字段中维护:

6/8

SAP问答:http://www.sapzhidao.com SAP培训:http://www.51sap.cn

SAP问答:http://www.sapzhidao.com

SAP培训:http://www.51sap.cn

开始例程:用于在转换之前,对数据做预处理,如:删除余额为0的项目等。

结束例程:

7/8

SAP问答:http://www.sapzhidao.com SAP培训:http://www.51sap.cn

SAP问答:http://www.sapzhidao.com

SAP培训:http://www.51sap.cn

在转换后对数据进行整理,一般,转换过程中涉及到读取数据库等耗资源的操作时,我们会将转换逻辑写到结束例程中。

规则组:规则组的作用有时候会很有用,其作用是,将数据源中的一条数据,转换为几条数据。如:我们源数据中一条数据包含了1-12月的余额,可以通过规则组,分解非12条数据。 数据源结构如下:

公司 年度 科目 1月 2月 1003 2010 A10000 100.00 200.00 目标结构如下:

公司 期间 科目 余额 1003 2010001 A10000 100.00 1003 2010002 A10000 200.00 因为比较简单,此处不再介绍操作步骤。

2. DTP

DTP即:Data Tranfer Process,DTP实际执行传输的动作,是上载的主要工具,我们在应用中并不需要对它研究太多。我们创建了转换之后,当我们创建DTP,系统会为我们生成建议,一般我们使用默认设置即可,此处不做详细介绍。

8/8

SAP问答:http://www.sapzhidao.com SAP培训:http://www.51sap.cn

本文来源:https://www.bwwdw.com/article/4bbp.html

Top