GL数据源提取

FI由于比较复杂,内部财报,外部财务报表要多份。
一开始呢,ECC不同Schema下面放不同的数据来满足不同财报的要求。
比如总账和分类账数据会有重复的,放在不同地方。时间长了数据就乱了。
然后就有了新GL,就是说数据集中存放来支持不同报表需求。新Schema来存放ECC FI的数据,BI Content也有了新extractor,infoProvider和queries。

1. 标准GL数据源

随便找一个数据源来看看。
在这里插入图片描述
有增量提取,看看是什么增量方式:
在这里插入图片描述
是个AIED:

在这里插入图片描述
有删除标志后像。那就是说,增量过程中,更新的会有后像,删除的会有D标志。那么对于这种情况呢,如果目标是Cube类型ADSO,也就是所有特性都是Key。那么考虑一下,针对所有特性都是Key的Cube,只能是所有关键值都被累加了。那么这个显然是不行的。我们需要的是后像覆盖前像值。也就是关键值更新是overwrite。
在这里插入图片描述
除了覆盖以外,对于这种数据源,增量过程中有个安全区间。

2. 安全区间

安全区间低值,默认是一个小时。
也就是说在上次delta更新后,我下次再取delta的值的时候,会把delta抽取时间往前推一个小时。
也就是说我DTP如果在处理链里是每天早上5点开始跑去抽数,那么我实际抽取时间不是昨天的5AM到今天的5AM。开始时间将会是4AM。那么这个中间昨天4AM到昨天5AM的记录会有重复的,即使重复了也会因为它是AIED有后像而被覆盖(ADSO是overwrite)。
那么为什么要这么个安全区间呢?哪些数据源有安全区间呢?怎么去改这个安全区间呢?

  1. 安全区间的值默认设置是1小时。那首先要了解安全区间为了防止哪种情况:数据丢失。
    数据丢失是由于不同应用服务器分配的时间戳有差别。系统时间可能会有45分钟的差距。
    数据更新时间和时间戳会有差异,数据更新保存时,这个更新保存在后台执行的时间和时间戳实际上是不匹配的。时间戳显示是03:55AM更新保存,而实际上是04:05AM保存好了到数据库表中。
    那么我04:00AM去抽数的时候,这条并没有保存到数据库表上去,我也就抽不到这条。可是它显示是03:55AM保存好了的。
    那么第二天我去抽的时候,从04:00AM去抽,就抽不到这条了,这个它就漏掉了。
  2. 数据源New GL,FI_SL,EC_PCA会设置安全区间。
    那么还有一个安全区间高值。啥意思呢?默认一小时,系统只抽取一小时之前保存好了的数值。为了怕你这近一个小时数据改了,删了的。就导致可能出现,我刚把你数据提取过来,结果这个数据在ERP中已经不在了。

对于ADD增量模式(0FI_GL_11)和NEWE模式(0EC_PCA_3/3FI_SL_XX_SI)都要设安全区间高值。
AIED模式的0FI_GL_10 一定要有安全区间低值。
AIED的0FI_GL_14你可以有一个,或者都有。那么对于这些数据源,低值可以很低,高值可以很高。或者系统默认1小时。
3. 安全区间在那里改?FAGL_BW_DELTASAFE_SET
在这里插入图片描述
在这里也能看到值。
在这里插入图片描述

2.1 更改0FI_AR_4/0FI_AP_4 delta时间由一天一次为一天数次

https://launchpad.support.sap.com/#/notes/991429
看上面这个note。
https://help.sap.com/saphelp_sfin200/helpdata/en/87/2f6152b82bf35fe10000000a423f68/frameset.htm
FI GL报表在S4里面合并。看上面。
在这里插入图片描述
在这里插入图片描述

总结一下,对于FIGL的数据,上层不能是Cube类型,因为会累加。
由于它的源上对数据源增量做了安全区间的处理,如果你用了CUBE的累加,那么数据会出错。只能是覆盖。

对于安全区间,实际上你有了高值,就不需要低值了。
对于高值,由于BW本来就不是实时数据,那么我把抽取时限人为的向前挪一个小时。也就是当下这一个小时内的数据不取。前段抽取时间也往前挪一个小时。

总结:
安全低值就是重复过去。你说只要昨天的数据,那么我给你昨天的再加上前一个小时的。很安全,就是有一小时的重复。所以不能加载到Cube里面去累加。
安全高值就是时间的倒退。上次我抽取呢是抽取到10点的数据。那现在到12点半了,我系统有好多新数据了,我要去抽了。不设置的话系统会去抽上次10点到现在12点半的数据。那我现在设置高值是1小时,就等于你说现在是12点半,我说现在是11点半,我减去1小时的时间,现在我只会去抽10点到11点半的数了。那么下次呢,我就会从这个11点半开始再往后抽到当前时间前一个小时。这样没有数据的重复就是最新数据来不了。也不会缺值的。因为你11点半那个时间戳保存的数据,即使过了半小时到12点才保存到系统数据库,那么我12点半也已经有了。于是我此时去抽11点半的数据,是不会遗漏的。

我觉得解释的很清楚了。

Supongo que te gusta

Origin blog.csdn.net/weixin_45689053/article/details/120922676
Recomendado
Clasificación