BW建模转换和DTP.docx
- 文档编号:23842850
- 上传时间:2023-05-21
- 格式:DOCX
- 页数:10
- 大小:247.83KB
BW建模转换和DTP.docx
《BW建模转换和DTP.docx》由会员分享,可在线阅读,更多相关《BW建模转换和DTP.docx(10页珍藏版)》请在冰豆网上搜索。
BW建模转换和DTP
BW建模转换和DTP
如果非要把BW的应用分为几部分的话,我觉得应该分为3部分,一部分:
数据源的抽取,前面我们已经介绍了数据从数据源上载的PSA的技术细节;二部分:
数据的模型创建,为了适应应用的需要,按照合理的方式创建数据模型;三部分:
建立在模型及数据基础上的应用,如:
报表、合并、预算等。
下面介绍BW中的数据模型。
BW真不愧是SAPR3的兄弟产品,它所提供的BICONTENT内容几乎覆盖了所有的SAP业务,我们都可以找到对应的模型,进行修改,来满足我们的需求,不像SAP收购的BPC那样不好用。
这样,就减少了我们建模的时间,同时也为不懂业务数据结构的BW人士,提供了捷径,这样,SAP领域就出了一个职位叫做BW顾问。
有一天,有个人跟你说,他是BW顾问,那就意味着他是做抽数和激活组件的。
顺便说一下,我不是BW顾问的,我只是个搞技术的。
BW中的模型简单来说,是通过DSO和CUBE来创建的。
下面从数据流向的角度介绍各个模型组件:
首先提供给大家一个SAP的图,表明数据的上载流程,仅供参考:
1.转换:
所谓ETL,即:
Extraction/Transform/Load。
数据上载到PSA,就是抽取(E)的过程;转换(T)是对数据进行业务上的合并、计算等操作;装载(L)即为上载到数据提供者(存储应用层数据)中。
BW中提供了可视化的转换工具,并且可以在转换的过程中,对数据进行加工,相当于R3中的增强,在应用程序运行过程中,执行我们定义的逻辑。
再配合DTP(DataTransferProcess)将数据上载。
以自定义的数据源为例:
可以通过拖拽的方式将字段关联,系统会按照我们定义好的转换规则将数据传输到数据目标中,默认为“直接分配”,即:
将数据直接传输到数据目标,不做任何修改。
BW提供给我们灵活的转换方式。
下面一一介绍:
在目标字段上双击,其中的“规则类型”表明,我们使用哪种转换:
直接分配:
直接赋予源字段的值
常数:
不管转换规则如何,总是赋予指定的常数
公式:
通过指定的源字段(需要将逻辑相关的源字段指向目标字段),通过运算,将结果赋予目标字段。
如果通过公式可以赋值的话,那么通过例程也可以实现,而且对于技术人员来说更容易控制。
(有人说公式可以让你不用写ABAP,是个好处,那就仁者见仁了,不过,个人认为不动ABAP的BW顾问是个瘸子)
初始值:
将初始值赋予目标字段。
即:
如果无任何特殊处理的话,就将空赋予目标字段。
如0GL_ACCOUNT默认是经过ALPHA转换的,那么就将0000000000赋予目标字段。
读主数据:
值是根据源字段的值,到信息对象的主数据中获取。
如:
我们要为货币分配公司的本位币,那么设置如下:
首先通过拖拽,将源公司代码字段与货币字段关联,然后在信息对象参考字段填上0COMP_CODE。
转换时,系统会到主数据中查询对应的值,与公式相似,我们也可以通过程序的方式来实现,我们后面会主要介绍例程的方式。
例程:
通过程序来改变转换逻辑。
例程主要是根据源字段提供的数据,进行运算或者多其他数据源中将值赋予目标字段。
我们需要将相关联的源字段与目标字段关联。
在这里我们实现一个测试的逻辑:
如果公司代码为1003,那么将会计年度作为值赋予0BALANCE,当然,这只是简单的测试。
首先,将公司和会计年度与0BALANCE关联。
双击0BALANCE,选择“例程”转换类型,BW把我们导航到例程的界面:
例程中,系统将我们关联的字段集合到了source_fields中,我们只需要直接调用source_fields-bukrs和source_fields-gjahr就可以了,然后将值赋值给RESULT。
这样,我们就实现了数据转换的自定义。
同理,专家例程,也是通过这种方式来实现的,大家有兴趣可以看一看。
集合:
对于keyfigure的转换,存在“集合”的选择,在转换到DSO时,可以选择“覆盖”和“合计”,对于转换到CUBE,只能选择“合计”,具体选择哪一项是与数据源的DELTA属性有关的,具体请参考DELTA管理
时间处理:
转换时,对于时间可以实现自动转换,如:
20100101->2010001;20100101->2010;
单位处理:
在我们创建DSO和CUBE的时候,当添加keyfigure,系统会自动为我们添加其对应的单位信息对象。
也就是说如果一个模型(DSO,CUBE)中的两个keyfigure拥有相同的单位信息对象,但却有不同的含义,那么在做报表的时候显示会有问题,因为报表中,BW是按照信息对象的设置,到数据记录中对应的单位信息对象的值的。
当转换到DSO时,单位信息对象是作为目标字段存在于转换中,我们需要将值与对象分别关联
当转换到CUBE时,单位信息对象是做为单位维存在的,在转换中不能直接看到单位信息对象,但要将单位与keyfigure关联,在目标字段中维护:
开始例程:
用于在转换之前,对数据做预处理,如:
删除余额为0的项目等。
结束例程:
在转换后对数据进行整理,一般,转换过程中涉及到读取数据库等耗资源的操作时,我们会将转换逻辑写到结束例程中。
规则组:
规则组的作用有时候会很有用,其作用是,将数据源中的一条数据,转换为几条数据。
如:
我们源数据中一条数据包含了1-12月的余额,可以通过规则组,分解非12条数据。
数据源结构如下:
公司年度科目1月2月
10032010A10000100.00200.00
目标结构如下:
公司期间科目余额
10032010001A10000100.00
10032010002A10000200.00
因为比较简单,此处不再介绍操作步骤。
2.DTP
DTP即:
DataTranferProcess,DTP实际执行传输的动作,是上载的主要工具,我们在应用中并不需要对它研究太多。
我们创建了转换之后,当我们创建DTP,系统会为我们生成建议,一般我们使用默认设置即可,此处不做详细介绍。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- BW 建模 转换 DTP