声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将追究法律责任!原文链接:http://www.cnblogs.com/jiangzhengjun/p/4297274.html
不管是哪种DSO,表里的数据都会有Record Mode这一字段,NEW表与Active表里的该字段是由数据源上传上来的,而Chang Log则是由BW系统在激活时由抽取上来的数据与Change Log里原有数据进行比对得到的,并且 后像、A像 都以是 X前像+后像来记录,R像与D像 则还是以本身的像类型记录
 
(注:Push方式的Delta-Queue里的数据也会带有记录模式,这种是用户在维护数据时SAP系统记录的(并且不同的Delta Proess增量处理模式,则会导致Delta-Queue存入数据有不同的记录模式Record Mode),但不知道Pull方式的Delta-Queue是否也带?需测试
 
下面以上面文件数据源为源,来测试记录模式
 
新建标准DSO,将文件中的数据抽到此DSO中:
 

激活前,New中的数据如下,此时Record Mode并没有数据:

激活后,Active表与Change Log中的数据如下:


Active表中的Record Mode也是空的,只有Change Log表里的Record Mode有数据,且都是新像,它是由系统自己对比数据自动设置的,但是New表与Active表里的Record Mode的值是由数据源本身提供的,但此时的文件数据源没有提供,所以是空的

 
修改文件里的数据,再抽:

 
抽到DSO后激活,再看Active表与Change Log表里的数据如下:


由于500那条记录没有作修改,所以这次抽取时,Change Log没有增加与它相关的数据
从Change Log可以看出,在DSO做激活时,系统会拿本次抽上来的数据与Change Log表里的数据作比对,然后生成修改过程的数据(如前像),正是因为有了Change Log表,所以AIE增量处理方式的数据源原本数据是不能直接抽到累加型的DSO与CUBE中的,但如果中间通过标准覆盖型DSO后,就可以再将数据抽到累加型的DSO与CUBE中

问题引出:通过DSO关键值字段默认覆盖特点,上面对修改与新增都会支持的很好,如果数据源中的数据被物理删除了,那么怎么让DSO也知道呢?
其实在Transformateion中,我们可以看到Record Mode其实是技术字段,那么只要我们的上来的数据中有Record Mode这样一个字段时,实质上也是可以抽到DSO的New与Active表中的Record Mode中的:

下面我们在上面文件数据源上加上Record Mode这样一个字段:

然后在文件中也加上一列 Record Mode:

然后Transformateion做一下字段映射,映射之前需要将常量修改为直接分配规则方式:


再开始传数据,此时PSA里的数据如下:

运行信息包后,DSO表中数据如下:

此时发现将N像新增像)统一变成了X后像,即修改结果像

发现Active表里少了一条数据了,即R像的数据被删除

此时Chage Log里会增加一条R像的数据,即Active中被删除的那条数据。但1001、1002都没有变化,因为转过来时的Record Mode分别为新项与后项,最后都将它们看做是后项即修改,但数据又没有发生任何变化,所以日志表里对这两条记录没有记录任何日志
 
下面来测试一下A像(累加项),在做之前,需要重新创建另外一个DSO,其金额字段转换规则需要使用累加型(默认情况下是覆盖型的,如上面的DSO):

 
再修改文件内容,都修改成后像

在测试之前,删除数据源中PSA里以前抽的所有数据请求Request
 
再运行信息包:

运行DTP,查看DSO的Active表:

再次运行信息包与DTP后,Active表中发现Amount累加(2倍)了:

Change Log表中,后像的值都是累加后的值(2倍值),而不是传过来的文件里设置的值:

 
 
下面再次修改文件,使用A像

运行信息包与DTP后,New表:
Active表里的数据变成了3倍

Change Log表

再运行一次信息包与DTP后:


 
再修改文件成R像:

运行信息包与DTP:


此时Active里没有数据了,发现全部被删除了:

(原因:因为是R像,R像本意最终是要将记录删除的,所以Active表里的数据最后被全部删除了,既然是删除则R反冲多少已经并不重要了,重要的是要将对应的数据删除掉)

此时的日志表里的数据不会被删除(因为是日志表嘛,不会直接删除,它是要记录数据变化的整个过程的),但最终的结果也要与Active表里数据结果相同,即要求将最终的累计结果冲为零,所以最后加了以下三项反冲,但反冲的数值并不是我们文件中的值,而原来有多少就冲多少(即好比数据被删除了):

DSO的记录模式Record Mode字段测试的更多相关文章

  1. 增量处理属性之记录模式(Record Modes)

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  2. .NET应用架构设计—适当使用活动记录模式代替领域模型模式

    阅读目录: 1.背景介绍 2.简单介绍领域模型模式.活动记录模式 3.活动记录模式的简单示例及要点 4.总结 1.背景介绍 对软件开发方法论有兴趣的博友应该发现最近“领域驱动设计”慢慢的被人发现被人实 ...

  3. salesforce 零基础学习(三十五) 通过Process Builder和Approval Processes锁定记录(Lock Record)

    有的时候我们可能有这样的需求,当某个字段为特定的值情况下,便锁定此条记录,仅允许Profile为System Admin的用户修改或者解锁,其他的用户只能查看此条记录,不能修改此条记录,这种情况下我们 ...

  4. (4.7)mysql备份还原——深入解析二进制日志(3)binlog的三种日志记录模式详解

    关键词:binlog模式,binlog,二进制日志,binlog日志 目录概述 0.binlog概述 查看binlog日志参数设置: show variables like '%log_bin%'; ...

  5. Dynamics CRM2016 Web API之更新记录的单个属性字段值

    在web api中提供了对单个属性的更新接口,这和查询中查询单个属性类似,对这个接口我个人也是比较喜欢的. var id = "{D1E50347-86EB-E511-9414-ADA183 ...

  6. 读书笔记《PHP高级程序设计、模式、框架与测试》

    序言 闲来无事,下载了一些电子书,然后看书名不错<PHP高级程序设计_模式.框架与测试>,翻了一下虽然书有点老了但是讲的内容经常会碰到!给大家推荐一下,然后这里放上我的读书笔记,每日更新. ...

  7. mysql 记录(record)

    以下内容来源于<mysql内核:Innodb存储引擎 卷1> 简单介绍物理记录和大记录.仅为理解mysql 索引基础 存储结构这一章节而写. mysql的默认存储引擎为Innodb.Inn ...

  8. 非 GUI 模式运行 JMeter 压力测试

    非 GUI 模式,即命令行模式,运行 JMeter 测试脚本能够大大缩减所需要的系统资源. 使用命令:jmeter -n -t <testplan filename> -l <lis ...

  9. Oracle的日志记录模式

    本篇摘自 http://www.cnblogs.com/cnjava/archive/2012/04/09/2439497.html --=============================== ...

随机推荐

  1. 1.初识Shell脚本语言

    PS:在做Linux下STM8固件升级项目中,需要让CPU通过I2C总线给STM8传输数据,刚开始一个一个的敲,很浪费时间,用shell脚本大大提高了数据传输效率,它是用户与内核进行交互操作的一种接口 ...

  2. 创建redis集群

    假设你已经安装好了redis ,如果还没有请安装 将多个实例跑起来 创建一个目录,比如 redis-cluster 把redis-server拷贝到这个目录下 在目录下为每一个实例创建一个文件夹 在每 ...

  3. lua自定义迭代器

    迭代器 http://www.tutorialspoint.com/lua/lua_iterators.htm 迭代器能够让你遍历某个集合或者容器中的每一个元素. 对于lua来说, 集合通常指代 ta ...

  4. Scala:没有continue,break怎么办?

    scala自身是没有continue,break这两个语法关键词的. 但是实际上我们还是很希望有这两个语法,那么我们是否可以自己实现呢? 从官网上搜索,我们可以找到一下关于break的类相关资料: B ...

  5. 空间不支持openssl解决办法

    windows server2003 系统 IIS6.0 ,支付宝担保交易功能不能用,提示您的空间不支持openssl 解决办法如下:1.在C:\WINDOWS 下打开php.ini 将 extens ...

  6. mysql 5.0.46安装配置

    http://os.chinaunix.net/a2008/0801/986/000000986346.shtml RPM包和源码包存放位置 /usr/local/src 源码包编译安装位置(pref ...

  7. 浅谈Java中的引用

    在Java语言中,引用是指,某一个数据,代表的是另外一块内存的的起始地址,那么我们就称这个数据为引用. 在JVM中,GC回收的大致准则,是认定如果不能从根节点,根据引用的不断传递,最终指向到一块内存区 ...

  8. jQuery EasyUI 使用笔记

    大家有四次抢票机会.第一次是放票时间之后的30分钟.第二次机会是开车前的15天.第三个机会是开车前的48小时.第四个机会是开车前的24小时. $("#gys_key").combo ...

  9. jquery网页换肤+jquery的cookie+动态调用css样式文件,可以的

    比较具有参考性,代码全贴(当然,还需要一张图片需要的留个邮箱,看到就发) 贴在这儿吧,修改一下css的引用位置应该可以用 <%@ page language="java" c ...

  10. Openbox中指定目录打开程序

    现在遇到这样的情况,在浏览器的下载中,点击在文件夹中显示, 结果这个使用系统调用的是Baobab,一款分析磁盘使用情况的软件,而不是使用目录浏览程序,例如nautilus 查询后知道,系统使用xdg- ...