Как использовать CDS из ABAP SQL, используя значение ассоциации в условии WHERE? - PullRequest
2 голосов
/ 02 апреля 2020

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

define view ZNOTIF as select from qmel as notif
    association [0..*] to ZNOTIF_STATUS as _status on _status.object_num = notif.objnr
{
    key notif.qmnum        as notif_id,
    notif.objnr            as object_num,
    notif.qmart            as type,
    notif.qmtxt            as description, 
    _status
}

Теперь я хотел бы использовать этот CDS в ABAP, выбирая все уведомления с указанным c статусом (и без увеличение кардинальности, если это возможно).

Примерно так, но, конечно, здесь есть синтаксическая ошибка:

SELECT notif_id,
       type,
       description
  FROM ZNOTIF
  INTO TABLE @DATA(notifs)
  WHERE \_status-status_id = 'STATUS_FILTER_VALUE'. "Syntax error

Можно ли как-нибудь это сделать?

1 Ответ

2 голосов
/ 03 апреля 2020
SELECT DISTINCT notif_id,
   type,
   description
FROM ZNOTIF
WHERE \_status[ (*) ]-status_id = 'STATUS_FILTER_VALUE'
INTO TABLE @DATA(notifs).
...