Выбор из сущности CDS по сравнению с представлением базы данных CDS
В ABAP CDS SAP, define view
оператор используется для создания представления CDS. Этот объект имеет имя сущности CDS, как оно выглядит в редакторе и пакетах, но также имеет AbapCatalog.sqlViewName
аннотация, которая должна быть другой. Документация define view
синтаксис имеет некоторую информацию:
Два объекта создаются для представления CDS (CDS ABAP), которое определяется с помощью DEFINE VIEW. Имя должно быть указано для каждого из двух объектов:
Имя CDS_DB_VIEW представления базы данных CDS должно быть указано в кавычках после аннотации @AbapCatalog.sqlViewName. Обычные правила для представлений словаря ABAP применяются к этому имени, и оно не чувствительно к регистру (оно преобразуется внутри в заглавные буквы). Связанное представление SQL создается под этим именем в базе данных.
Имя cds_entity объекта CDS определяется после ключевых слов DEFINE VIEW (DEFINE является необязательным). Не нужно указывать кавычки. Это имя соответствует правилам просмотра базы данных CDS, но может иметь длину 30 мест.
Оба имени находятся в пространстве имен типов данных в словаре ABAP и должны быть уникальными. Эти два имени могут использоваться в других операторах DDL или в программах ABAP для доступа к представлению CDS.
В нем упоминаются некоторые другие различия, такие как сущность, недоступная в инструментах словаря данных SAP (SE11, SE16), и тот факт, что выбор из сущности всегда выполняется в строгом режиме, но кикер:
В DDL CDS и в ABAP представление CDS может быть адресовано как представление базы данных CDS CDS_DB_VIEW и как объект CDS cds_entity. Однако настоятельно рекомендуется использовать только объект CDS.
Когда я выполняю оба простых запроса, я замечаю, что при выборе из объекта столбец MANDT отсутствует, но этот столбец присутствует при выборе из представления базы данных CDS.
Итак, какие реальные различия между представлением базы данных и сущностью CDS следует учитывать разработчикам при работе с представлениями CDS?
1 ответ
Вам больше не нужно запрашивать представление базы данных ABAP CDS и ограничивать свои запросы для использования сущности ABAP CDS. Хотя запрос к представлению базы данных возможен в NetWeaver 7.40, в более ранних выпусках он устарел. Так что не беспокойтесь о базе данных View:-)
См. Документацию по: Устаревший доступ к представлениям CDS в Open SQL:
Чтобы сохранить согласованность поведения и использовать только определенные свойства представления CDS, для доступа к представлению CDS следует использовать только имя объекта CDS.
Прямой доступ к просмотру базы данных CDS запрещен в строгом режиме с версии 7.50.
Что касается работы с клиентом, вам следует сосредоточиться на поведении клиента объекта CDS. Описаны различные варианты обработки клиента ABAP CDS.