Я пытаюсь получить список действительного состояния системы для объекта уведомления, чтобы не проверять все уведомления в таблице, я хочу выполнить выбор, проверяя только данные за последние 2 года.
Возможно, есть лучшее решение для моей проблемы, но мне все еще интересно это техническое ограничение. Насколько мне известно, состояние системы в SAP является жестко заданным и не может быть определено для объекта по какой-либо таблице (SAP может добавить новый статус системы в любой момент).
Я попытался создать представленное ниже представление CDS, но функция dats_add_months
не может использоваться в условии where, есть ли решение для этого? Обратите внимание, что у 7.50 нет параметра сеанса для системной даты, поэтому я использую переменную среды:
define view ZNOTIF_SYS_STATUS
with parameters sydat : abap.dats @<Environment.systemField: #SYSTEM_DATE
as select distinct from qmel as notif
inner join jest as notif_status on notif_status.objnr = notif.objnr
and notif_status.inact = ''
inner join tj02t as sys_status on sys_status.istat = notif_status.stat
and sys_status.spras = $session.system_language
{
key sys_status.txt04 as statusID,
sys_status.txt30 as description
} where notif.erdat > dats_add_months($parameters.sydat, -12, '') //THIS CAN'T BE USED!!