在CDS访问控制中使用动态值
问题描述:
如何将cds元素与ABAP函数的返回值进行比较?在CDS访问控制中使用动态值
举一个例子: 员工被分配到一个公司,公司有客户的订单。这些订单显示在一个表中,员工只应看到他们所在公司的订单。
如果雇员工作为公司B,作用将是这样的:
grant select on ConsumptionViewName
where company = ‚B‘;
我现在想使这个硬编码的“B”动态的,有一个返回雇主的ABAP辅助函数的应该使用的员工。没有任何授权对象具有公司的字段,是否可以在没有授权对象的情况下执行?
答
您无法为CDS DCL
提供动态值。
如果找不到合适的权威对象,您可以定义自己的权威对象并让DCL完成其工作,也可以通过使用ABAP帮助器函数筛选结果来过滤网关层的结果。