Используйте динамические значения в контроле доступа CDS
Как я могу сравнить элемент cds с возвращаемым значением функции ABAP?
Например: сотрудник назначен компании, и у компании есть заказы от клиентов. Эти заказы отображаются в таблице, и сотрудники должны видеть заказы только для той компании, в которой они работают.
Если бы сотрудник А работал в компании Б, роль была бы примерно такой:
grant select on ConsumptionViewName
where company = ‚B‘;
Теперь я хочу сделать это жестко закодированное "B" динамическим, и есть вспомогательная функция ABAP, которая возвращает работодателя сотрудника, который должен использоваться. Нет объектов авторизации, которые имеют поле для компании, возможно ли сделать это без него?
1 ответ
Вы не можете предоставить свои динамические значения для CDS DCL
,
Если подходящий объект полномочий не найден, либо вы определяете свой собственный и позволяете DCL выполнять свою работу, либо можете отфильтровать результат на уровне шлюза, отфильтровав результат с помощью вспомогательной функции ABAP.