SAP数据源目录和BW中数据源目录以及源数据的加载/转换

这也是很小的一个题目:
可能以后会扩展:

在BW的Data Source里,选择源系统为SAP的话,可以看到所有该SAP系统的数据源文件夹,这些数据源的文件夹有个称呼:应用组件。

从SAP源加载主数据

那么BW是怎么访问SAP的数据源的呢?
为了访问SAP的data source,把数据映射到BW的infoprovider里面。我们必须得告诉BW 数据源的名字和字段。
这个过程就是复制data source元数据。

现在,在我们BW的数据源下面,我们可以看到很多应用组件。
在这里插入图片描述
这些目录都是固定的。
就是在SAP的RSA5下面的:
在这里插入图片描述
如果你对比发现BW的应用组件比RSA5的少,那是因为没有复制元数据的组件在BW这里被隐藏了。
需要打开:
在这里插入图片描述

现在你只需要在应用组件上右击,点击复制元数据
在这里插入图片描述
当然现在你还能自己建了。
这些都可以在BW这边直接做了,因为反正你RFC和SAP相连了。

或者你去SAP用SBIW自己建个数据源,一般我们都是基于视图建数据源。
在这里插入图片描述
在这里插入图片描述
或者在BW里面的原系统下面,右键定制提取器,然后登陆到SAP的SBIW下面。
在这里插入图片描述

以上SAP都代表ERP系统。

如果你觉得你要新建的数据源不属于现存的所有组件,那你就新建一个组件文件夹也是可以的:
在SBIW下选择一般数据源的后处理,在层级中插入你要新加的组件名称,然后更改描述,保存。
在这里插入图片描述
你新建数据源的时候,是要选择应用程序组件的。也就是你要建在哪个组件下面。
在这里插入图片描述
然后选择要传出去的字段。
在这里插入图片描述
这个从源系统加载主数据就直接略过了,反正已经复制了数据源,不管是你自己建的,还是系统已经有了,下一步就是直接建个DTP,建个转换到info object(前提是这个info object是有主数据或文本的)然后选择抽取方式:全量或者增量,有时间限制的弄个filter就行了。
抽完主数据或者文本,在info object里面看一下就行了。

数据源巨多的,用个infosource就行了。

从SAP源系统加载交易数据

举个例子:数据源是0CO_OM_CCA_1
InfoSource: Cost Centers and Costs
提取结构上写是个infosource 这个我也不懂。大概是用info source作为不同数据源的统一目标源。
在这里插入图片描述


先来看转换。有以下几个按钮,比较有用。
1 可以看小图大概有多少字段
2 看到技术字段请求号
3 查看详细转换
在这里插入图片描述
3 打开后就是这样:
在这里插入图片描述

转换的作用

转换其实是个规则,通过每个数据的转换规则处理每个数据包中的每个数据记录的每个字段。(包啥的在DTP里)
从上面这个转换我们就能看到每条数据包含多少个字段了。
一般每个包里会包含多少条记录都是要在DTP里设置好的。那你是一个包一个包的抽数据的,所以转换也是一个包一个包的处理。
包大了,处理的就慢。(前提是你有转换规则,如果直接拉数,那就无所谓,转换查找要时间)

规则从开始例程,结束或者专家例程里弄,还有字段里也能弄。

开始例程

转换开始时,给每个数据包运行的ABAP。执行完计算后,存储在全局的数据结构或者表里。(存储器驻留数据转换程序的缓冲区)
从其他的例程可以访问这个结构或者表。(从缓冲去读取或者再写入缓冲区)

作用: 转换开始前的数据准备,基于包
比如:删除一些不要求更新的记录,将数据表缓冲到内部表以用于转换
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
从表读到工作区。
如果处理的数据很多,这样就避免单个规则多次访问数据库,直接访问缓冲区能提高性能。

字段分配

对于简单的字段映射,无需ABAP编码设置常量值,或者用公式的话,这里的字段分配就是在开始例程之后,对数据包的每个数据记录上的对应字段进行转换。
直连就是直接分配,下面这个是写个码。
在这里插入图片描述
也可以换成其他的类型,看需要:
在这里插入图片描述
源可以多个字段,目标一般一个字段。
我们还是来细细看看上面那些选项吧

no transformation

这个一般不选吧。。。

constant

指定常量

direct assignment

直连,从源头填充。或者拉一个同类型的匹配。如果你拉的同类型但是单位不同的,比如说货币单位或者是数量单位,那得用货币单位、计量单位转换功能转换下源单位为目标单位。

formula

通过公式计算值来更新info object

read master data

读取的是一个info object的主数据。
这种就是,目标里有个字段,在源里没有直接匹配的字段,但是在源的一个信息对象的属性里有匹配的字段。比如说目标中有公司代码,源里只有成本中心,但是成本中心有个公司代码属性,那我可以从这个成本中心的主数据表来读取公司代码,来填充目标的公司代码。
那如果你成本中心的主数据改了,这里也要改的。

routine

这是个字段例程,只有一个返回值,这个有选项是对该info object的所有属性有效,还是只对显示属性有效。

规则组:rule group

那这个组到底干嘛来的呢?
好像不怎么知道。
一般在交易数据里我只看到了standard group和 technical group
标准组就是所有的字段和转换规则。
在这里插入图片描述
技术组一般就一个record mode
在这里插入图片描述
但是那里还写了new rule group.
那是干嘛的呢?

这个的解释就比较有意思了,但是我们没这么用。

从上面我们看到了,一个转换里面可以有很多rule group的。每一个规则组就确定了一组转换规则。

想象一下,你的源有:

订单日期
交货日期
订单数量
交货数量

目标只有一个日期特性:0CALDAY
那么我们可以拆分规则组,规则组1:如果关键值是订单数量,更新订单日期到0CALDAY
规则组2:如果关键值是交货数量,更新交货日期到0CALDAY

(当然这个也可以写代码来实现)

结束例程

数据后处理,逐个包的转换后执行。
比如删除某些不需要的数据。

专家例程

特殊用途的自己编程的转换。
得要自己搞到监控器的消息传输啥的,要不然没办法监控DTP。如果你已经见了转换规则,然后又建了专家例程,那这些转换规则会被删除。

集合类型

有一点要讲的是,关键值的集合类型。这些都是指定在主键相同的时候的关键值的更新方式。合计啦,最小值啦,最大值啦。
info object里面好像只有覆盖。
DSO好像可以选择覆盖或者其他集合方式。

猜你喜欢

转载自blog.csdn.net/weixin_45689053/article/details/111036315
今日推荐