数据加载及错误数据记录处理示例

来源:互联网 发布:程思佳淘宝小模特女童 编辑:程序博客网 时间:2024/05/20 00:37

 1、先来认识下我这个InfoCube, 三个Dimensions,三个Key Figures。很简单的,我这次是用csv文件倒入它的交易数据。

     

2、对应我的csv文件的数据如下,A列就是Customer ID, B列是Sales Representative - New 1, C列是Material Number, D列是Price of Material, E列是0Currency,F列是Sales quantity, G列是0Unit. 请注意黄色部分,下面还有说明。

3、创建Transformation, 这一步就不详细说明了。现在只截个图来看看

4、重头戏来了,创建一个DTP,其中“更新”选项卡中,勾上“NO update without Master Data”. 这个选项是表示当上传的数据有数据据是不存在主数据表中的,就报错。这就是我上面黄色的那部分,MAT080是主数据表(IO_R_MAT)中不存在。那到时上传就会报错,也正是我要模拟的场景。其它的没什么特别,激活DTP。

5、打开刚才激活的DTP,并将其处于edit 状态。

6、设置DTP每一步骤的临时存储表。临时存储表用于存储数据传输步骤中处理的数据记录,既有正确记录,也有错误的记录,并用不同的状态加以标志。还有用临时存储表对错误记录进行处理,而不必重新从源对象中加载数据,不会对性能造成大影响。

7、勾上Prepare Error handing和RSDS DS……. 打勾。返回DTP界面。

8、创建Error DTPs。点击“Creating Error DTPs”按钮。系统会问你是否要保存,按“Yes”.

9、刷新树结构,发现这里有2个DTP了,一个是用于传输入数据的DTP,另一个是用于处理错误数据后再上传的DTP。

10、用infoPackage把CSV的数据load到PSA,再用第一个DTP上传数据看看。有错了,用右边的放大镜按钮可以查看临时存储数据表里的数据。有兴趣的点入看看。

11、这里我点上面的Error Stack,将数据修改,准备再上传。在这里我将MAT080改为主数据中有的MAT001.保存退出。

12、修改完之后,执行Error DTP.

13、执行成功了。

有了这个,那么当我们发现数据上传不了时,发现错误,不必劳心劳力从源系统中重新倒入,在错误堆栈修改后,直接从临时存储表中上传就OK了。