怎么用一个planning ADSO和一个characteristic实现保存评论
迪丽瓦拉
2025-06-01 00:15:58
0

这个真是个头疼的话题。我怎么在一个input-ready的query保存用户的评论,而且随后能轻易看到这个用户的评论。

那么首先第一个问题就来了,我要怎么让一个评论能被输入到query里?

对于不同的用户,我要让他对自己公司的收入或者支出金额,或者是随意的资产负债表的金额值做一个评论,然后保存到query里。首先就得有这个评论的特性信息对象characteristic。

 1. 得建一个特性的infoobject,因为要输入文本,数据类型是CHAR,大小写要区分,长度定为250,不要主数据或文本。

2. 把这个infoobject加到一个planning ADSO里。放到data里,不能是key。 这个ADSO是直接更新的Planning ADSO

放到data下,在属性里选择use characteristic as key figure。这样的话,这个ADSO就会把这个infoobject的填入值当成一个字段。当填入以后,再基于这个ADSO做query,可以把这个infoobject当成特性维度来用。

 3.把这个ADSO加到CP里。分配字段的时候就能看到,除了这个ZCOMMENT信息对象,其实还会有一个自动生成的关键值叫1KYF_ZCOMMENT。这个是SAP自动生成的。

这个关键值就是你用来填评论的了。另外一个特性comment是用来展示评论的。也就是说,类似planning的功能,你得是一个关键值才能让你填值,但是我们这里把这个特性用成了关键值,SAP会自动生成这个关键值的信息对象。因为我们最后要用这个CP来做planning和reporting两个query,所以我们把这两个comment都给分配到target去。

4. 基于这个CP我们要再建一个AL,因为最后的query都是要从这个AL出的。我们要在这个AL上建一个input-ready的query,那么百分百的,要把这个1KYF_COMMENT给加进去。加且只加这个1KYF的,不要加另外一个特性的。AL作为一个用来集中数据集字段的虚拟infoprovider,只需要加你需要的字段就好。

 5.接下来要去做query了,query的属性要选in input mode.然后就是按一般的关键值特性的列处理方法来做了,把这个值要保存到对应的planning的ADSO里,所以在infoprovider下面要限制为你要保存进的ADSO,也就是上面建的ADSO。

在列计划属性里,由于我在行里用到了层级区间,所以选择的是复制分解,也就是我只要在一个父节点上写了一个评论,那么所有子节点都会复制这个评论。

 由于我们要填的是文本,它不能被聚集。如果你不选按复制分解,那你就要让Aggregation level里的所有特性值的组合都有一个唯一的条目,能够唯一确定你填入的评论文本。这样系统才能知道最后怎么去保存你填入的值,或者你就把所有的AL里的特性都下钻到最底层,然后去填评论文本。所以在设计AL的时候,只放你最后需要的特性或者关键值。因为基于一个CP你能建很多的AL的。在特定AL上建input-ready的query比较省力。这个由于我们的特性是CHAR的,所以不能输一些特殊字符。

 

 

 

 

 

 

相关内容