2016-12-15 4 views
1

В SAP ABAP CDS оператор define view используется для создания представления CDS. Этот объект имеет имя объекта CDS, которое отображается в редакторе и пакетах, но также содержит аннотацию AbapCatalog.sqlViewName, которая должна быть другой. The documentation of the define view syntax имеет некоторую информацию:Выбор из объекта CDS в сравнении с представлением базы данных CDS

Для объекта CDS (ABAP CDS), который определяется с помощью DEFINE VIEW, создаются два объекта. Имя должно быть указано для каждого из двух объектов:

  • Имени CDS_DB_VIEW в представлении базы данных CDS должен быть указан в кавычках после аннотации @ AbapCatalog.sqlViewName. Обычные правила для представлений словаря ABAP применяются к этому имени, и он не учитывает регистр (он трансформируется внутри заглавных букв). Соответствующее представление SQL создается под этим именем в базе данных.

  • Название cds_entity объекта CDS определяется после ключевых слов DEFINE VIEW (DEFINE не является обязательным). Никаких кавычек не нужно указывать. Это имя следует правилам представления базы данных CDS, но может иметь длину 30 мест.

Оба названия находятся в пространстве имен типов данных в ABAP Dictionary и должны быть уникальными. Эти два имени могут использоваться в других операциях DDL или в программах ABAP для доступа к представлению CDS.

Он упоминает некоторые другие различия, такие, как компания не доступна в словаре данных инструментов компании SAP (SE11, SE16) и тот факт, что выбирает из сущности всегда работает в strict mode но кикер:

В DDL CDS и в ABAP, вид CDS можно рассматривать как представление базы данных CDS CDS_DB_VIEW и как объект CDS cds_entity. Настоятельно рекомендуется, однако , что используется только объект CDS.

Когда я бегу как в простом запросе, я заметил, что при выборе из сущности нет столбца Мандт, но этот столбец является присутствует при выборе с точки зрения базы данных CDS.

Итак, каковы реальные различия между представлением базы данных и объектом CDS, которые разработчики должны учитывать при работе с представлениями CDS?

ответ

2

Вы больше не должны запрашивать представление базы данных ABAP CDS и ограничивать свои запросы на использование объекта ABAP CDS. Хотя запрос в представлении базы данных возможен в NetWeaver 7.40, он устарел в более высоких версиях. Так что не беспокойтесь о базе данных View :-)

Смотрите документацию: Obsolete Access to CDS Views in Open SQL:

Чтобы сохранить поведение последовательным и использовать только определенные свойства через CDS просмотра, только имя объекта CDS следует использовать для доступа к представлению CDS.

Прямой доступ к представлению базы данных CDS: запрещено в строгом режиме с версии 7.50.

В отношении обработки клиента вы должны, таким образом, сосредоточиться на поведении клиента объекта CDS. Различные варианты описаны ABAP CDS Client Handling.

+0

«Надеюсь, что это помогает». «Это христианин, спасибо за ваш вклад и ссылки. Я скопировал отредактированный ответ и добавил соответствующий раздел документа, чтобы избежать гниения ссылки. Добро пожаловать на сайт, кстати. – Lilienthal

Смежные вопросы