在CDS访问控制中使用动态值

问题描述:

如何将cds元素与ABAP函数的返回值进行比较?在CDS访问控制中使用动态值

举一个例子: 员工被分配到一个公司,公司有客户的订单。这些订单显示在一个表中,员工只应看到他们所在公司的订单。

如果雇员工作为公司B,作用将是这样的:

grant select on ConsumptionViewName 
    where company = ‚B‘; 

我现在想使这个硬编码的“B”动态的,有一个返回雇主的ABAP辅助函数的应该使用的员工。没有任何授权对象具有公司的字段,是否可以在没有授权对象的情况下执行?

您无法为CDS DCL提供动态值。

如果找不到合适的权威对象,您可以定义自己的权威对象并让DCL完成其工作,也可以通过使用ABAP帮助器函数筛选结果来过滤网关层的结果。