Используйте динамические значения в контроле доступа CDS

Как я могу сравнить элемент cds с возвращаемым значением функции ABAP?

Например: сотрудник назначен компании, и у компании есть заказы от клиентов. Эти заказы отображаются в таблице, и сотрудники должны видеть заказы только для той компании, в которой они работают.

Если бы сотрудник А работал в компании Б, роль была бы примерно такой:

grant select on ConsumptionViewName
    where company = ‚B‘;

Теперь я хочу сделать это жестко закодированное "B" динамическим, и есть вспомогательная функция ABAP, которая возвращает работодателя сотрудника, который должен использоваться. Нет объектов авторизации, которые имеют поле для компании, возможно ли сделать это без него?

1 ответ

Решение

Вы не можете предоставить свои динамические значения для CDS DCL,

Если подходящий объект полномочий не найден, либо вы определяете свой собственный и позволяете DCL выполнять свою работу, либо можете отфильтровать результат на уровне шлюза, отфильтровав результат с помощью вспомогательной функции ABAP.

Другие вопросы по тегам