一般情况下,建层级的步骤是:先给个空的层级,然后建转换和DTP.
就是告诉这个信息对象,我要生成层级,你得给我空间储存。然后我来抽取层级。
但是如果我们手动创建层级,也是可以的。
接下来我们看个实例。
分割线-这篇我是8月7号写的,原先人家的需求是,想要在SAC里面能使用时间层级。那人也是个新手。是SAC的新手。
然后我们聊了一下,然后他说3个星期弄好吧。
咯~这都四个星期了,我还以为这周是第三周呢。
我还没开始呢。
需求
他这个需求吧,很模糊。因为他这个菜鸟也跟我差不多,啥也不知道。
俩菜鸟在一起探讨需求能讨论出个啥来。
而且他就给我整了一句话,在别的CP里面他看到了日历日这个信息对象,他想在A这个CP里面也能用这个对象。
听听,这叫啥需求?
别的composite provider里面有,那是人家数据源有。你这个连底层数据从哪来都没跟我说,就说要。这本菜鸟弱弱的觉得有点不靠谱。
然后我去查了,日历日是确实没有的,因为底层数据源没有这个字段,只有个财务周期,到月份的。那勉强能从这个周期给你分出个年,月,季度来。
没有日这个粒度。
跟他讲了半天,他说他的目标是要在SAC上面做个story,然后需要用时间的层级。
这个我就一知半解了。因为SAC我还没看,然后如果要时间层级。其实时间还是有的,只不过是凭证日期。
我考虑下,也许要从凭证日期下手。
我看都没看,我觉得他俩都是特性,那就是展示在报表里,应该是个文本。
我来验证下:
反正先不管这俩日期到底啥意思,在报表里,就长这样。看起来就是个日期格式,好像也没啥啊。是个日期格式的,有点的。看到这个,我其实脑袋瓜子是锈的。我没意识到这就是个DATS格式。我回过头来写这句话才发现。
实现
先不管了,我先去给它关联到0CALDAY。
描述要改回来,不然自动变掉了,不过下面那两个,我不太明白啥区别。
SAP 给的解释是:
还挺长的***
更改特性类型字段属性:
可以直接更改属性,或者指定一个连接到info object的或者open ODS view的字段,然后该字段可以传递不同属性到你的这个更改字段。
也就是,用了人家的属性。
SAP给的图是这样的:
在output界面可以看到所有CP的字段,你选了一个字段后,可以在右边更改或定义属性。
在Association下面呢,你可以关联一个infoobject (charateristic/time或者Unit类型),或者是一个Open ODS view.
如果BW系统包含关联的info object,推荐你用。这就意味着,你可以使用这个info object的主数据。(哦~,是这么回事啊)
被关联的信息对象的默认属性和描述会被提供。但是你可以改掉这个属性。
你可以选择在query中是展示哪一个名字:
- Usage of system-wide unique name:生成一个名字
- direct usage of associated object by name:就用这个关联的信息对象的名字。
还有的,不列了*****
看了他解释,好了,我貌似懂了点。
我不管,我先来看报表里有没有变化。
怪了,AFO打不开了。
只能BW来看了。
没啥差的,我看了。
原先这个document date就是个DAT类型的,8位的。所以它就展示成这样。
那这个类型吧,就只能是0CALDAY了。
一开始我还不太懂。
现在我知道关联了这个0CALDAY就可以用它主数据了。
那我想,我可以给0CALDAY建个层级。
问题来了,我不会建层级啊。😂
虚拟时间层级
好了, 到标题了。
我怎么建层级呢?
我脑子一片浆糊。
这个是个day级别的,日跟着月变,月是跟着年变的,到元旦得变啊。有闰年啥的。
不能我自己闷头猛建吧。
肯定有啥玄机在里面。
我看这个calday的层级,是空的。
其实我也帮别人加载过层级,从文本文件来的。我上次加载出错了,那个人跟我说他要重跑下macro,要跑很长时间,他用宏跑的。我对这个excel的宏一窍不通。我也不知道怎么弄。我不能写个宏吧。
我找啊找,找到了这个:
激活虚拟时间层级。
释放时间特性的层级。
他是个虚拟的,不是存在数据库表上的。在主内存里虚拟生成。
不知道啥意思。
不管了,来搞。RSRHIERARCHYVIRT
在Date下面我倒是看到了几个绿的层级,可是我怎么用它呢。
我怎么知道它关联到哪个的?我需要时间来研究下这个。
这么多乱起八糟的层级,我想用个day相关的。
我现在只知道这个是虚拟的,不存在数据库表里。也就是说我看不了,只能是要在报表里展示的时候能打开。
以下是我找到的:
在General Setting下面,我原先以为这个Time Interval不用看,原来这个时间范围就是时间层级要用的。这个我们可以改。
然后到这个虚拟时间层级来,左边的是可用的有层级的时间特性,右边上面是所有可用的层级,如果双击激活了,就变绿了,可以在右边下面进行设置具体的start level,从哪一层下钻,和描述啊,技术名啊。
这一套挺简单的。我就不再演示了。
我看见这个Date.
我又是孤陋寡闻了,我想把它这个技术名显示出来。
我想看看这个date到底是谁。
F1不管用,算了我放弃了。
这个Date系统里就一个,层级表空的。然后参考它的是0CALDAY。
这个0CALDAY吧,我先去建个query来看它能否启用上面的层级。
我本来想找个其他的用这个0CALDAY的CP,但是此刻,系统已经告诉我,在我刚关联的CP里已经有这个0CALDAY了。
那我就用这个CP来建个query吧。
哈哈,这还真有。我郁闷了半天,我说怎么activate Hierarchy那里不能点啊,原来要先点这个。
选中之后就自动勾了。
年月日,哈哈。
今天先到这里。
下一步我还得告诉那个菜鸟,怎么在SAC里面弄这个时间层级。
等我这个初级菜鸟看了SAC的介绍再说😂😂