Abap 在CD访问控制中使用动态值

Abap 在CD访问控制中使用动态值,abap,cds,Abap,Cds,如何将cds元素与ABAP函数的返回值进行比较 例如: 一名员工被分配到一家公司,该公司有来自客户的订单。这些订单显示在表格中,员工应该只看到他们工作的公司的订单 如果员工A为公司B工作,则角色如下: grant select on ConsumptionViewName where company = ‚B‘; 我现在想让这个硬编码的'B'动态,并且有一个ABAP帮助函数,它返回应该使用的雇员的雇主。没有任何授权对象具有公司的字段,是否可以在没有字段的情况下执行此操作?您无法为CDS

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

例如: 一名员工被分配到一家公司,该公司有来自客户的订单。这些订单显示在表格中,员工应该只看到他们工作的公司的订单

如果员工A为公司B工作,则角色如下:

grant select on ConsumptionViewName
    where company = ‚B‘;

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

您无法为
CDS DCL
提供动态值

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