• ADSO的Remodeling


    为什么要搞这个remodeling
    在这里插入图片描述
    为甚要搞ADOS的remodeling。
    新的ADSO上来之后,带来很多新功能,取代原始DSO和infocube。不仅以标准,写优化,数据集市,直接更新来分类,而且还有字段代替infoobject,新的分区和索引等等啥的,还有增强的主数据检查,还有数据温度分层概念。就是很有意思。

    那么其中有这个remodeling的概念是个啥?
    在什么情况下需要搞这个remodeling?

    我今天就遇到了这个,因为我这个ADSO已经有数据了。
    但是我需要改变这个ADSO的结构。我删掉了一些属性,删掉了它的key,换成了新的key。然而我忘记先删除原来的数据了。

    当我激活这个ADSO的时候,它让我去remodeling。
    那这个remodeling的流程是啥?
    在这里插入图片描述
    原先的remodeling为了自动化你的更改需求,现在4HANA了之后,infoobject还是能用。但是ADSO换地方了。在它自己的details里就有。
    在这里插入图片描述
    我这里出现了一个警告,我点了这个remodeling的警告之后,就会带我进入一个remodeling的request。
    那也就是说,其实这些remodeling的功能是包含在这个request里面的:
    在这里插入图片描述
    如果直接点击details里的remodeling,会出现如下:
    在这里插入图片描述
    这就意味着,我这个remodeling是去改ADSO的表的数据的。因为我要保证这个ADSO的完整性和一致性。
    于是,可以理解为,其实这个ADSO激活流程是:激活+重构
    激活是元数据修改了,但是并不对交易数据和主数据做修改。(也就是我新建一个ADSO,这个空的ADSO我可以做任何除了对KEY的修改,激活后这个ADSO就可以用)
    重构是对ADSO的交易数据或关联主数据有影响,可能要导致一些参照完整性检查和数据更改。需要做一个check。

    当有了一个重构的请求了,那就要去执行。在RSMONITOR里面能看,或者就直接点击这个警告,去网页看。

    这里插一句,因为我是删掉了key,所以是需要重构的。一般如果删掉或者增加一个非key的字段,是不会要求重构的。因为HANA后台表直接就insert或者drop一个列,很快。只是单纯的元数据更新。就是说你去删掉一个infoobject的非key属性,也就会直接把这列删掉,不需要做啥。

    如果你说这是个警告,你不管这个警告,不去做这个remodeling,那会发生什么?
    当你去传输的时候,你会get一个return code 4.
    为啥?SAP记录传输的都有版本。Version。
    你的每次更改都会有个新的版本号。这个BW里面的TLOGO版本,会在你的更改历史里面看到。
    哎,又得扯远。
    BW的对象都会有版本信息:
    在这里插入图片描述
    在这里插入图片描述
    有了版本信息,你可以看到上次激活版本,和当前更改版本。当你修改之后,还未完全激活,比如我这个,需要做一个remodeling的,虽然我去激活了这个ADSO,但是它给我的版本是M,我新改的东西都在M里,旧的还在A里。
    这个可以追踪你的更改。你能看到你新版本改了啥。
    TLOGO就是个BW对象类型。意思是Transportable Object Type.可传输的对象类型。能被包在你的请求里的。
    在这里插入图片描述
    我如果要记录所有对象的版本更改信息,得在这里做配置
    在这里插入图片描述
    在啥时候记录版本信息?
    在这里插入图片描述
    默认对于所有的都是before export和after import都要记。都要创建版本。
    但咱肯定不能所有都这么搞。你可以自己对一些特定的对象做版本信息记录的修改,ADSO改成before activation。ELEM的query就得把所有版本记录都关掉,要不然得记多少。
    后面自己定制的会覆盖前面的all。
    一般咱会把ADSO,HCPR,IOBJ,TRFN的before activation都打开。
    IOBJ必然要打开的,不然你这个改的时候,ADSO不知道要重构把你这个infoobject的更改拿过来的。

    正因为有了这个版本管理,你才能比较不同的版本,而且可以回到之前的版本。
    在这里插入图片描述
    在这里插入图片描述
    也就是原先版本管理那里的revert和compare。不过咱一般也用不上。
    而且你有没有权限搞revert,还要看你的授权对象S_RS_HIST有啥权限。给没给你改。
    在这里插入图片描述
    那么所有的更改嘞,都会放在后台表RSOTLOGOHISTORY
    啥时候,传输号,用户ID。
    然后呢,这个表会迅速的扩大,所以要搞定期清理。或者用RSO_DELETE_TLOGO_HISTORY这个report去删除。
    在这里插入图片描述
    在这里插入图片描述

    接下来继续回来瞎唠。
    return code 4 这当然是个警告。
    我没直接传,但是我看到别人如果加了一个新的compound对象不做重构,那会有如下的详细解释:
    在这里插入图片描述
    那你就得去做重构,因为这个有SID检查,需要新生成SID啊。
    你不去做重构,那ADSO就还在旧的state。还是个M状态。
    而且会影响到这个请求里的转换啥的。

    而且这个重构,得在每个系统都做。
    你如果不做,那么旧版本会用来做数据抽取和报表展现,你新加的字段不会起作用。直到重构完成。
    所以去run:
    在这里插入图片描述

  • 相关阅读:
    编写 GPT 提示词的公式 + 资源分享
    制作一个简单HTML静态网页(HTML+CSS)
    常用的英文缩写总结,专业术语
    Rapid普通版DVSSL
    接入小程序国产操作系统装上双翼
    【已连接kafka成功】Kafka生产者初始化
    C++对多继承的理解
    jQuery 中的 bind(), live(), delegate(), on()的区别
    Laravel/Lumen 任务调度简易入门说明
    绘制动图,金星木星月亮太阳绕圆
  • 原文地址:https://blog.csdn.net/weixin_45689053/article/details/126223817