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了。