点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)嗨, 我正在编写CDS视图,并...
点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)嗨, 我正在编写CDS视图,并...
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
嗨,
我正在编写CDS视图,并希望引入与代码关联的文本描述,但是我遇到了许多不同的方法来以会话语言获取这些描述。 是其中的任何一种"正确"方法吗?
例如,这是一个CDS视图,该视图带回一个会计科目表代码及其描述:
定义视图ZTEXT_TEST1 从t004中选择 将[0 .. *]与I_ChartOfAccountsText关联为_Text 在$ projection.ChartOfAccounts = _Text.ChartOfAccounts { 关键ktopl为ChartOfAccounts, _Text.ChartOfAccountsName } 哪里 ktopl ='0MB1'
这显然会带回表T004T中维护的每种语言文本的记录,这不是我想要的
因此,为了只获取一个文本,我可以将会话语言放入关联中(这与在ABAP中进行编码的方式类似):
将[0 .. *]与I_ChartOfAccountsText关联为_Text 在$ projection.ChartOfAccounts = _Text.ChartOfAccounts 和_Text.Language = $ session.system_language
或者我可以在路径表达式上放置一个过滤器:
{ 关键ktopl为ChartOfAccounts, _Text [1:Language = $ session.system_language] .ChartOfAccountsName }
我还没有找到将语言限制放在WHERE子句中的方法,因为它返回了以下错误(我不太了解!):
其中 ktopl ='0MB1' 和_Text.Language = $ session.system_language 此处不允许"到很多"关联(基数[n .. *])
这些方法中有没有一种是标准的方法,还是有我不知道的更好的方法?
谢谢,
安德鲁
您好安德鲁·福特汉姆(Andrew Fordham),
我已经在大多数标准CDS中使用 第一种方法(基于条件)。 但是您可以尝试使用 vizplan 看看是否第一种方法和 第二种方法使用 vizplan 可以对性能进行任何重大更改。 对我而言,第二种方法不是很容易理解,因此更喜欢第一种。 我们通常使用第二种方法直接显示关联字段,并且不通过其内部的过滤器。
但这对我来说是一个新的学习,因为有了你。 谢谢:)
关于where条件方法,我相信它将与Joins一起使用,并且不确定是否可以与关联一起使用,不确定该错误。 您是否在1..1关联上尝试过这种方法? 因为当我尝试时,它没有给出错误并且执行了它,但是它没有过滤数据,所以我假设这种情况下添加了关联过滤器,而这种情况根本不支持条件
谢谢,
Mahesh
感谢Mahesh。 似乎没有明确的答案。 也许我来看看ST05,看看是否有什么不同。
一周热门 更多>