不管是哪种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表里数据结果相同,即要求将最终的累计结果冲为零,所以最后加了以下三项反冲,但反冲的数值并不是我们文件中的值,而原来有多少就冲多少(即好比数据被删除了):
原文:https://www.cnblogs.com/jiangzhengjun/p/4297274.html

转载于:https://www.cnblogs.com/psapfans/p/10521202.html

DSO的记录模式Record Mode字段测试相关推荐

  1. Active Record Patter, Active记录模式

    活动记录模式通常用于数据驱动应用程序中的模型数据库表或视图的类,以其模型数据库表的一行由类的实例. 在这种模式类的属性将映射到相应的数据库表的列中. 类的实例方法上执行操作在数据库记录而其静态方法使用 ...

  2. PHP动态设计的设计流程,《PHP设计模式介绍》第十四章 动态记录模式

    到目前为止,您所看到的这些设计模式大大提高了代码的可读性与可维护性.然而,在WEB应用设计与开发中一个基本的需求与挑战:数据库应用,这些设计模式都没有涉及到.本章与接下来的两章-表数据网关与表数据映射 ...

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

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

  4. spring aop实践_使用Spring AOP实现活动记录模式

    spring aop实践 在课堂设计过程中,我们应就每个班级的职责分配做出决定. 如果我们选择的不错,系统将更易于理解,维护和扩展. 我们几乎所有的项目都有一个持久层,即关系数据库,文档存储或仅XML ...

  5. 使用Spring AOP实现活动记录模式

    在班级设计中,我们应就每个班级的职责分配做出决定. 如果我们选择的不错,系统将更易于理解,维护和扩展. 几乎我们所有的项目都有一个持久层,即关系数据库,文档存储或仅XML文件. 通常,您将使用DAO模 ...

  6. 电脑中毒软件都变成java图标_当前数据表有10条记录,若用函数EOF()测试结果为.T.,此时函数RECNO()值是________。 (2.0分)_学小易找答案...

    [单选题]洁净室的内表面应 [单选题]当前数据表有10条记录,若用函数EOF()测试结果为.T.,此时函数RECNO()值是________. (2.0分) [单选题]LD50与毒性评价的关系是 [单 ...

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

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

  8. mysql降序后去重_Mysql 数据记录去重后按字段排序

    实现效果:去重-取最新的-排序 例子 : 按用户ID获取历史记录中某个人的记录,要求非重复的且每条只获取最新的,同时按添加时间倒序排列的 实现 :SELECT * FROM ( SELECT * FR ...

  9. 24 SD配置-主数据-维护客户主记录中的保留字段

    业务背景:维护客户主记录中的保留字段 事务码:SPRO SPRO路径:SPRO->销售和分销->主数据->业务合作伙伴->客户->销售->维护客户主记录中的保留字段 ...

最新文章

  1. zabbix 安装时的报错mysql_connect(): Access denied for us
  2. 哥们,你侵权了,哥有权告你去!
  3. Scala中Case Class使用详细解析
  4. [笔记]C#基础入门(十四)——C#用流程图描述程序逻辑
  5. BackTrack 5 发布了 ---直接下载地址
  6. Bounce(弹走绵羊)lct裸题
  7. vueCli3 身份证正则校验
  8. 第8章 私服nexus
  9. 智慧医院建设方案_【聚焦医改】安泰创新智慧医院建设方案惊艳中国医院院长大会!...
  10. 计算机信息技术行业代码,行业代码 是什么呢
  11. 十本Java网站开发必看书籍
  12. MFiX存储ReactionRates的模块
  13. 如何高效对接第三方支付
  14. Ubuntu16.04 忘记登陆密码 重新设置密码
  15. 大数据翻页_大数据分页实现与性能优化
  16. mysql数据库自动停止_解决mysql数据库自动停止方法
  17. 大牛C++编程开发学习建议50条http://blog.csdn.net/gggg_ggg/article/details/44015409
  18. mysql 查询本月所有天数统计对应数据
  19. word 流程图制作
  20. IPD中的DCP评审

热门文章

  1. TortoiseSVN 执行清理( cleanUp )失败的解决方案
  2. c语言用指针访问简单变量,关于C语言指针,个人认为最经典、最简单的一个应用...
  3. wp友情链接php代码,为wordpress增加友情链接内页
  4. 用RT Server Customizer定制Windows 2008 R2安装光盘
  5. mysql数据库复制数据表时的风险
  6. 关于power shell
  7. 安卓7.0海信定制版新增功能
  8. 使用GDAL的MEM内存文件保存临时文件
  9. 无线(互联网)+有线(内网)上外网设置
  10. golang解决TCP粘包问题