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

时间:2017-09-05 12:10:07

标签: sap abap cds

如何将cds元素与ABAP函数的返回值进行比较?

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

如果员工A在B公司工作,那么角色将是这样的:

grant select on ConsumptionViewName
    where company = ‚B‘;

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

1 个答案:

答案 0 :(得分:2)

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

如果找不到合适的授权对象,您可以定义自己的授权对象,让DCL完成其工作。或者,您可以通过使用ABAP帮助函数过滤结果来过滤网关层(...DPC_EXT类中的方法)的结果。