自建数据源(RSO2),并支持增量

ECC端的SBIW界面也可通过BW系统远程登录进入:
8fad12a8-1689-4ce0-b8f6-f7fc73816f3c
 
远程登录到ECC源系统,进行数据源的创建与配置:
57f4f39f-d01b-43be-b4dc-d5705ae1950a
在ECC端输入SBIW:
5d914a98-d1e2-4443-a697-65c82bde6e5d
fbf929df-1c28-4942-a05f-970eb5bce0bf
 
下面以物料主数据的文本为例:
c1482c94-0f97-46e8-a636-68e9bc7d3120
0c94685f-de78-4cbf-ae2e-42cc0d76f200
如果不需要某个表里的所有字段,则可以单独为这个表创建一个视图,选择需要的字段,再以这个视图为基础创建数据源
 
06de8290-1fb2-4e44-89e5-7ea8f8abb327
 
下面需要将数据源复制到BW系统中,并且激活后,才能在BW系统里使用,进入到BW系统中:
bfa90974-def2-4d9e-a4ee-236351cae0c7
63f8aac7-38cd-48de-974b-e6fcf2931ad6
dcb030a1-960f-4d5c-93f4-c67cab0cadbb 0eb44bfb-c6c8-4422-aafe-3619d8264c40
a897b2cb-6dd5-43de-b6b3-2db450651663
不等于表示数据源还未激活,需激活才能使用,将数据切换到编辑模式再进行激活(激活过程会为数据源生成相应的PSA物理表):
7fe38dfe-57bb-496b-b4a0-c96932585a94
下面就可以通过该数据源抽数了
 
创建信息包:
3d60b60c-94e2-431c-817c-6e4351251f72
 
发现该数据源目录只支持全量加载,可以使用RSA2来查看数据源是否支持增量,以及增量处理模式:
ef11440b-7d93-46e1-8dcf-baed2abbad6d
d4c14e62-67f3-44ca-a1fb-25b18640a7e7
还可以通过RSA6来查看数据源是否支持增量(但查出来的信息没有RSA2详细):
327b8648-756b-4632-84e2-50ff9e2b42eb
ad1890f2-6444-4201-992f-dab2fd8ca399
只有在通过RSO2创建数据源时,才可以设置是否支持增量:
046788b8-4d4c-4820-9c4f-6ee630cc806c
现假设每天0点启动任务抽数,并抽一天的数据,则需抽从昨天0点到今天0点的数据,任务也是0点起动,但在昨天 23:59分时,用户在维护一张单子,在今天零晨1点才做完保存,但记录的是修改时间还是昨天昨天 23:59分,如果任务在0点准时启动,并且在半小时就抽完了,则这一条在昨天昨天 23:59分修改的数据就会抽不到,明天再启动任务更抽不到,所以就会用到下面两个安全值设定:
Safety Interval Upper Limit:安全上限,将抽取的时间向前推多少秒,这样虽然今天抽不上那条昨天 23:59分修改的数据,但明天0点抽取时一定会抽上来,这种安全设置不好的就是会抽设置时间段的重复数据,不过即使重复数据只要是放入覆盖DSO是没有问题的,但放入合计累加的DSO就会有问题了
Safety Interval Lower Limit:安全下限,这种就是直接将抽取任务向后推多少秒后再执行,假设是2小时,这样那昨天 23:59分修改今天零晨1点的数据就会被抽上来,不用等到明天再抽,这种方式较前一种没有重复数据,但会推迟抽数的完成时间点
 
并且选择增量的字段不能再为作Data Selection字段,因为被用作增量的字段会自动变灰:
22e169b4-7fb5-40f9-b840-1a753e8f42c6
 
注:自建数据源只支持Pull方式的增量方式(所以与财务模块数据源一样也不支持删除),因为我们不可能像为LO后勤数据源那样,给它们用推的方式主动向Delta-Queue里存增量数据,因为推的方式需要在数据源端使用代码来实现的。而Pull的方式则会简单很多,它是基于某个字段来筛选出发生变化的数据来的。
当使用RSO2设置增量数据以“New Status for Changed Records”方式记录时,数据源增量处理方式则为AIE
cee8d69d-fc4b-4dab-8859-012ecd47b8b1
当使用RSO2设置增量数据以“Additive Delta”方式记录时,数据源增量处理方式则为ADD
37635a5f-0fb6-4bd7-940e-9851e3ad0c00 6e6480aa-6083-46d0-9ae4-2038281ac171
 
下面开始测试AIE增量处理方式的自建数据源:
684eaf48-6116-4d1e-be63-516848db664d 5e0c23b2-c1b8-4544-8a1b-5cc6b125e52d 0c3216b3-7827-4047-bd55-5eff9cd0e693 44670914-5fe3-4fee-942f-33809b57699c
注:自建数据源也是有Delta-Queue的(就像财务模块数据一样)
 
新创建一个订单:
5d4d91ad-8448-4976-8450-e40472af6efc 
当创建好订单后,如果现在就去查看ZVBAK的Delta-Queue,则是没有数据的,因为自建数据都是Pull的方式,所以一定要运行BW端的增量信息包才会向此Delta-Queue里存一份数据
 
下面创建增量信息包后,运行ZVBAK Delta-Queue里是否有增量数据:
b9ef1ad4-8c6d-426a-81e5-102b50b919be a189e074-afcb-4532-a6e7-4349ffa3eb75 
但运行完增量信息包后,查看监视器,发现也没有增量数据上来,怪哉?!
a71f0519-0951-41c0-972f-a582e863ca5a
12944订单号没有抽上来的原因是,该自建数据源是基于 “Numeric Pointer”类型的 VBELN 字段作的增量,但Pointer当前的状态值已经到S-6102,在BW拉数据的时候,是要从大于S-6102开始才认为是增量数据,所以12944订单无法抽上来:
e7e6cbaf-6592-4867-b25b-4be3b2afec27
(注:这个Pointer 在这里是不能修改的,是由系统自动填充的,但会随着增量数据的抽取而自动修改,它记录了增量抽到哪个位置来了)
 
通过SE11查看,VBAK里最大单号就是S-6102,因为先前的初始化信息我们选择的是“只打标记,不传数据”,这样目前VBAK里的数据认为已经抽过了,所以打完初始化标记后,Current Status指针的值就会VBAK表里编号最大的订单号
458da87d-9f89-483f-835d-f0d4a7f39020
注:该示例是以VBELN为基础的增量字段,但实际上并不合适,因为VBELN订单号可能含有非数字,作为Numeric Pointer的增量字段,要求字段必须是纯数字类型的字段,这样新增数据时,最新的数据就会在最后,这样增量抽取时才不会有问题
 
RSA3:可在ECC端对数据源进行预提测试
187e4bb2-8094-4c52-9382-90c767d6764f
posted @ 2015-02-21 14:13  江正军  阅读(5698)  评论(1编辑  收藏  举报