sap cds что это
ABAP CDS. Коротко о главном
Беглый обзор ABAP CDS, как инструмента для создания моделей данных, и их последующем применении в ABAP конструкциях
Sergey Ignatov
Очень много интересного написано про инструментарий ABAP CDS, что заострять на этом отдельно внимание, наверное, особенно и не имеет смысла. Но чтобы было к чему обратиться, если возникнет такая потребность, оставлю здесь несколько параграфов по обозначенной теме.
Что такое CDS?
Core Data Services. Инструментарий, позволяющий создавать представления/ракурсы данных посредством языка DDL (Data Definition Language). Таких представлений/ракурсов есть несколько видов, и все они достаточно хорошо описаны в справочном материале от вендора.
Важно здесь отметить, что представления/ракурсы данных могут быть использованы в ABAP программах/классах/ФМ etc., а также задействованы при создании oData сервисов (что представляет особую ценность). Еще один интересный момент связан с настройкой доступов к этим ракурсам. Но об этом я расскажу далее.
Как начать работать с этим инструментом?
Где скачать Eclipse IDE?
Пример создания CDS View
Допустим, что мне требуется создать CDS View, где будут считаны данные из двух таблиц.
Используя Eclipse IDE, я пробую создать такую модель данных.
После сохранения и активации CDS View, в back-end системе можно получить доступ к вновь созданным объектам, посредством транзакции SE11
Каким образом можно обратиться к CDS View используя ABAP?
Ответ на поставленный вопрос весьма простой. И на следующем видеофрагменте представлен пример такого обращения в ABAP программе.
Пример создания CDS Access View
Можно, как угодно плохо относиться к Eclipse IDE как к инструменту работы с объектами системы SAP, но здесь, мне кажется, можно согласиться с той точкой зрения, что он в несколько раз лучше, чем SAPGUI for Java и его «редактор» ABAP кода. Уважаемый SAP, если ты читаешь это, пожалуйста, сжалься над разработчиками и консультантами!🙏 Ну да я немного отошел от обозначенной темы.
В Eclipse IDE следует обратить внимание на периодически возникающие сообщения об ошибках/предупреждениях. В частности, после того, как вы создали и активировали новый CDS View, система предложит обратить ваше внимание на отсутствие Access Control’a для него же.
ABAP Core Data Services (CDS) has its own authorization concept CDS access controls using a data control language (DCL). The authorization concept of ABAP CDS uses conditions defined in CDS and can draw upon classical (PFCG) authorizations to check the authorizations of users.
The CDS authorization concept coexists with the classical authorization concept of Application Server ABAP (AS ABAP). You can use the concepts together or independently from another. The classical authorization concept is based on authorization objects. The authorization of a user occurs either implicitly, for example while calling a transaction, or explicitly with the statement AUTHORITY-CHECK. The CDS authorization concept is based on implicit authorization checks that occur during access attempts to CDS entities over ABAP SQL.
Посредством работы с Access Control я могу определить уровень доступа пользователя к данным, которые собираются/отображаются в созданном CDS View.
Для демонстрации простого сценария работы с этой сущностью, я настрою два варианта доступа к созданному CDS View, определив в качестве результирующего параметра, по которому будет приниматься решение о предоставлении доступа к данным, наличие в ролях пользователя объекта полномочий с определенным значением. На следующем видеофрагменте как раз про это.
Продолжая эту тему, хочется акцентировать ваше внимание на том, что в доступ к данным, отображаемым в созданном CDS View, предоставляется с через проверку на наличие у пользователя объектов полномочий, указанных в выражении aspect pfcg_auth ( S_CNTOR, CONTRYORG )
Предварительно я создал объект полномочий S_CNTOR с фильтром CONTRYORG, который в итоге должен оказаться в роли пользователя.
Тестирование доступа к View
На следующем видеофрагменте представлена последовательность действий, в результате которой создается роль, куда добавляется предварительно созданный объект полномочий S_CNTOR. Этому объекту полномочий устанавливается два значения, в соответствии с определенными в настройке для Access Control. Все это сопровождается последовательным запуском ABAP программы, где выполняется обычный SELECT по CDS View, а также непосредственный запуск просмотра данных в CDS View, но уже в Eclipse IDE.
Практика освоения ABAP CDS для непрограммистов. Часть 3
Васильев Виталий
Публикация предназначена для консультантов по различным модулям SAP ERP. Описываемая технология ABAP CDS наиболее актуальна для систем SAP S/4HANA, но может применяться и в любых системах, начиная с платформы SAP Netweaver 7.40 SPS05, независимо от используемой базы данных.
Продолжение статьи.
3. АННОТАЦИИ
3.1. Общие определения
Аннотации – это команды, имеющие специфический синтаксис и используемые в DDL-источниках для описания дополнительной семантической информации. Например, аннотации помогают организовать большую модель, выделить в ней различные уровни элементов: частные, повторно используемые, аналитические.
Совокупность доступных для использования аннотаций предопределена SAP. Она содержит ABAP-аннотации, используемые средой во время выполнения, определяющие семантику и поведение CDS-сущности. Также предусмотрены аннотации, необходимые для работы в других средах (таких как OData или UI5). Метаданные таких аннотаций доступны приложениям-потребителям через специальные API (см. Рис.58).
Рис.58. Группы аннотаций (домены)
Аннотации разбиты на группы (домены) в соответствии с областями их использования. Метаданные из аннотаций определённого домена позволяют передать в него дополнительную информацию, не меняя модели данных. Каждый домен, обращаясь к CDS, анализирует только «свои» аннотации, игнорируя сведения из остальных, предназначенных другим доменам.
3.2. Примеры аннотаций
Код любой аннотации всегда начинается со специального символа @
Приведём примеры наиболее распространённых аннотаций, которые используются в описании большинства CDS-ракурсов:
Например, аннотация @VDM.private: TRUE означает, что это частный ракурс, являющийся внутренним объектом, предназначенным для преодоления каких-то технических ограничений ABAP-модели данных. Использование этой аннотации в пользовательских разработках не допускается за исключением случаев, когда разработчик берёт создаваемый объект на поддержку.
@Analytics.dataCategory: #FACT – пример аннотации, определяющей категорию данных, описываемых в ракурсе, с точки зрения аналитических приложений. Возможные значения этой аннотации:
Таблица 1 кратко иллюстрирует различия между этими категориями данных:
Таблица 1. Аналитические категории данных
Некоторые другие аннотации будут описаны при построении демонстрационных примеров, так как там можно более наглядно пояснить предназначение этих аннотаций. Общее число аннотаций, доступных в синтаксисе CDS, очень велико. Полный их перечень может меняться в зависимости от версии используемой ABAP-системы. Однако большинство аннотаций доступны во всех версиях. Полный справочник доступных аннотаций на примере SAP Netweaver 7.5 SPS10 можно найти по ссылке.
4. ДЕМОНСТРАЦИОННАЯ МОДЕЛЬ. БАЗОВЫЕ РАКУРСЫ
4.1. Таблицы демонстрационной модели
Как уже говорилось в п. 2.4, основой для построения демо-примеров служит традиционная схема из нескольких таблиц, содержащих условную информацию о бронировании авиаперевозок. А именно, будут использованы следующие таблицы:
4.2. Создание базового ракурса
4.2.1 Создание DDL Source с помощью мастера
Простейшим примером для начала послужит создание базового ракурса, описывающего основные данные авиакомпаний. Он будет основан на таблице SCARR. Как можно видеть в транзакции SE12, таблица содержит двухсимвольные коды авиакомпаний, их текстовые названия, коды валют, используемых компаниями по умолчанию, и адреса их веб-сайтов (см. Рис.59).
Рис.59. Содержимое таблицы SCARR
Чтобы создать CDS-ракурс, необходимо открыть ADT (в среде Eclipse или в SAP HANA Studio) и соединиться с BackEnd-системой, раскрыв папку ABAP-проекта (см. Рис.54).
Затем необходимо выбрать пакет разработки, в котором будет создан ракурс. Это может быть пакет, ранее внесённый в список избранных для удобства. Либо можно раскрыть полный список доступных пакетов System Library.
Правой кнопкой вызвать контекстное меню выбранного пакета. Выбрать команду New->Other ABAP Repository Object (см. Рис.60).
1/AppData/Local/Temp/msohtmlclip1/01/clip_image011.png» />
Рис.61. Выбор типа создаваемого объекта
Нажать кнопку «Next». В следующем окне можно выбрать пакет разработки, в котором будет создан ракурс (по умолчанию там указан пакет, на котором мы выше вызывали контекстное меню), указать техническое имя ракурса и его текстовое название (см. Рис.62).
Рис.62. Мастер создания DDL Source: указание имени объекта
В рассматриваемой демонстрационной VDM соблюдается следующее соглашение о наименованиях:
Укажем значения как на Рис.63.
Рис.63. Техническое имя и название создаваемого ракурса
Затем снова нажимаем «Next». В следующем окне предлагаются опции, позволяющие включить создаваемый ракурс в ранее созданный транспортный запрос, либо создать новый запрос (см. Рис.64).
Рис.64. Мастер создания DDL Source: выбор транспортного запроса
Рис.65. Мастер создания DDL Source:выбор шаблонного кода
Вверху слева указан список шаблонов. При выборе любого шаблона вверху справа появится его краткое описание. А в нижней части окна можно видеть тот код, который по умолчанию будет вписан из шаблона в создаваемый DDL Source. Для начального примера достаточно использовать простейший шаблон Define View и нажать «Finish». В результате будет создан ракурс с выбранным техническим именем, откроется окно для редактирования кода этого ракурса и в это окно будут вписаны строки из выбранного шаблона (см. Рис.66).
Рис.66. Создание DDL Source: код, скопированный из шаблона
4.2.2 Доработка шаблонного кода: заголовок и аннотации
Слева от закрывающей фигурной скобки на Рис.66 видна пиктограмма (красный кружок с белым крестом), говорящая о наличии синтаксических ошибок. На данном этапе это естественно, так как код из шаблона ещё нужно отредактировать под наши нужды.
После оператора define view следует имя ZI_AIRLINE. По терминологии, описанной в разделе 1.1, это техническое имя для CDS View, который будет создан при активации данного DDL Source. По умолчанию это имя совпадает с именем самого DDL Source.
Вместо текста data_source_name необходимо указать имя таблицы, из которой ракурс будет получать данные. Для этого можно воспользоваться такой удобной функцией редактора в ADT, как Code Completion. Выделяем текст data_source_name и нажимаем сочетание клавиш CTRL+SPACE. Система, анализируя код, сама «понимает», что в данном месте текста нужно указать имя таблицы. И предлагает выбор из списка доступных таблиц (см. Рис.67).
Рис.67. Использование Code Completion для выбора исходной таблицы базового ракурса
Разумеется, весь список таблиц слишком велик. Чтобы сократить поиск, можно начать набор имени нужной таблицы. При каждом изменении набранного текста список в Code Completion будет обновляться, в нём останутся только те названия, которые содержат набранный нами набор символов. Например, если набрать «scar», то останутся только две таблицы (см. Рис.68).
Рис.68. Результаты контекстного поиска в Code Completion
Теперь посмотрим на аннотации, которые были автоматически добавлены в начало DDL-кода из шаблона. В первую очередь необходимо вместо текста sql_view_name в аннотации @AbapCatalog.sqlViewName указать техническое имя ракурса, под которым он будет виден в ABAP-словаре. По терминологии, описанной в разделе 1.1, это техническое имя для SQL View, который будет создан при активации данного DDL Source. Длина имени в ABAP-словаре должна быть не более 16 символов. Поэтому, если возможно, будем использовать для SQL View то же имя, что и в DDL Source, но без символов подчёркивания. Результат показан на Рис.69.
Если хотите прочитать статью полностью и оставить свои комментарии присоединяйтесь к sapland
Практика освоения ABAP CDS для непрограммистов. Часть 2
Васильев Виталий
Публикация предназначена для консультантов по различным модулям SAP ERP. Описываемая технология ABAP CDS наиболее актуальна для систем SAP S/4HANA, но может применяться и в любых системах, начиная с платформы SAP Netweaver 7.40 SPS05, независимо от используемой базы данных.
2. ИНСТАЛЛЯЦИЯ, КОНФИГУРИРОВАНИЕ, ПОДГОТОВКА ДАННЫХ для примеров
Продолжение статьи.
2.1. Настройки ABAP Backend
Как уже говорилось, функциональность ABAP CDS доступна в любых системах, начиная с SAP Netweaver 7.40 SP5. Независимо от того, на основе какой СУБД развёрнута система.
Также для корректной работы с новыми инструментами редактирования кода в среде Eclipse, необходимо в ABAP-системе активировать ряд ICF-сервисов. Это делается с помощью транзакции SICF. Как правило, данная задача также выполняется администраторами SAP Basis. Перечень необходимых сервисов приведён в разделе 3 «Activating ICF Services in Development Systems» указанного выше официального гайда.
2.2. ABAP Development Tools: общие сведения, инсталляция
2.2.1 Общие сведения
ABAP Development Tools (ADT) – это инструментарий для работы с ABAP CDS, реализованный в среде Eclipse. Разумеется, возникает вопрос – почему для работы с новыми ABAP-объектами не используется классический SAP GUI? Переход к работе в Eclipse имеет ряд преимуществ. ADT в Eclipse позволяет использовать общее удобство и гибкость Eclipse, сохраняя при этом и преимущества традиционных функций из ABAP Workbench. ADT объединяет в себе лучшие стороны обеих сред разработки. ADT повышает производительность разработчиков, предлагая улучшенную функциональность рефакторинга, завершение кода, шаблоны кода. ADT обеспечивает удобную навигацию. Работа в локально установленном ПО Eclipse позволяет застраховать разработку от аварийных потерь связи с сервером. Клиент Eclipse поддерживает возможность соединения с несколькими BackEnd-системами, работать с их кодом одновременно, быстро и удобно переключаясь. Поиск и просмотр всех CDS-объектов организованы унифицированно, через стандартный инструмент Project Explorer. Использование интегрированной среды разработки (Integrated Development Environment, IDE) позволяет создавать кросс-платформенные разработки, объединяя ABAP и не-ABAP объекты. В частности, ADT можно интегрировать с разработками в SAP UI5 и JAVA.
Рассматривается только установка ADT на компьютерах под управлением операционных систем Windows 7-10 (как 32, так и 64-битной архитектуры).
Прежде чем начинать установку ADT, необходимо установить несколько вспомогательных программ:
Инсталляция ADT может проходить двумя способами, в зависимости от того, имеет ли пользователь доступ к загрузке ПО SAP с сайта https://launchpad.support.sap.com/ (для этого необходимо иметь специальный логин, так называемый S-User). При наличии такого доступа удобнее использовать специальную версию среды Eclipse, которую можно загрузить с этого сайта. Эта версия называется SAP HANA Studio. Альтернативный вариант инсталляции ADT – через общедоступный дистрибутив среды Eclipse. В следующих подразделах описаны оба способа установки как самой среды Eclipse, так и ADT в этой среде.
2.2.2 Установка среды Eclipse
Необходимо скачать дистрибутив среды Eclipse, свободно доступный на сайте http://www.eclipse.org Традиционно один раз в году, в июне, выпускается новый релиз, получающий свой номер и условное название. На момент написания данного текста текущим является релиз версии 4.7 Oxygen. Важно: во время установки и обновления необходимо действующее подключение к интернету! Программа установки на старте предлагает выбрать один из нескольких вариантов, отличающихся набором инсталлируемых компонент. Можно выбрать первый вариант из списка (см. Рис.14).
Рис.14. Первый шаг установки Eclipse
Далее процесс установки проходит стандартно: принять лицензионное соглашение, выбрать папку для установки. При первом запуске программа предложит выбрать папку для сохранения локальных рабочих файлов (workspace). Нужно выбрать удобную папку, например – предложенную по умолчанию. И включить галку «Use this as default and do not ask again» (см. Рис.15).
Рис.15. Настройка Workspace при первом запуске Eclipse
В открывшемся рабочем окне среды Eclipse перейти по меню Window->Preferences. Появится окно всевозможных настроек. В левой части выбрать пункт Install/Update->Available Software Sites (см. Рис.16).
Рис.16. Настройка доступа Eclipse к сайтам обновлений
В этом меню можно управлять источниками, по которым происходит поиск обновлений или новых компонент для установки. Источниками могут быть сайты проекта Eclipse или локальные файлы дистрибутивов. К тем источникам, которые указаны по умолчанию, необходимо добавить источник для установки ADT. Для этого нажать кнопку «Add…» и в поле «Location» добавить адрес https://tools.hana.ondemand.com/oxygen (см. Рис.17).
Рис.17. Подключение нового сайта обновлений к Eclipse
Подтвердить адрес кнопкой «OK» и закрыть настройки кнопкой «Apply and Close». Теперь можно запустить проверку и установку обновлений среды Eclipse через меню Help->Check for Updates. Если в указанных источниках будут найдены обновления, программа выведет их список. Возможно, для продолжения установки потребуется принять лицензионные соглашения. После чего пойдёт автоматический процесс загрузки и установки требуемых файлов. По завершении этого процесса появится сообщение о том, что необходим перезапуск программы (см. Рис.18).
Рис.18. Подтверждение успешного обновления Eclipse
Для продолжения нормальной работы нужно принять это предложение и нажать «Restart Now».
2.2.3 Установка ADT в среде Eclipse
Для установки ADT требуется предварительно установить несколько дополнительных компонент. Процесс установки одинаков для всех, поэтому рассмотрим его на примере первой компоненты, которая называется «EMF Edit Data Binding». В окне Eclipse нужно выбрать пункт меню Help->Install New Software (см. Рис.19).
Рис.19. Установка дополнительных компонент в Eclipse – стартовое окно
В поле, где по умолчанию написано «type filter text», ввести название нужного компонента. Для удобства просмотра результатов рекомендуется отключить галку «Group items by category». Затем в верхней части окна раскрыть выпадающий список в поле «Work with» и выбрать из него «All Available Sites». Рекомендуется выбирать эту настройку после предыдущих, так как выбор сайтов немедленно запускает поиск по ним. И если не ввести заранее название компонента, то поиск будет долгим и выдаст огромный список лишних пунктов. А при рекомендованной последовательности результат будет таким, как показано на Рис.20. Здесь и далее на рисунках отражены версии компонент, актуальные на момент написания текста. Пользователь, применяющий описанные рекомендации, может увидеть более свежие версии.
Рис.20. Установка дополнительных компонент в Eclipse – результат поиска
Остаётся пометить галкой требуемый пункт «EMF Edit Data Binding». После этого в нижней части окна станет доступна кнопка «Next». Далее установка проходит как обычно, включая окно с принятием лицензионного соглашения и перезапуск программы.
По такому алгоритму требуется установить следующие компоненты:
Если какая-то из компонент не появляется в результатах поиска, попробуйте отключить галку «Hide items that are already installed». Тогда искомый компонент может появиться, отображённый серым цветом (см. Рис.21).
Рис.21. Проверка ранее установленных компонент Eclipse
Это значит, что компонент уже установлен и не нуждается в обновлении.
После установки всех предварительных пакетов, в окне поиска нужно вновь включить галку «Group items by category» ввести название компонента «ABAP Development Tools». Результат показан на Рис.22.
Рис.22. Установка ADT – стартовое окно
Теперь нужно или выбрать верхний компонент, или просто нажать кнопку «Select All». И далее пройти по обычному пути установки.
Чтобы убедиться в корректной установке, можно сделать следующее. Во-первых, нужно вывести в верхней части рабочего окна набор кнопок (toolbar). Если его там нет, то сначала выполнить команду меню Window->Appearance->Show Toolbar. Теперь появится кнопочное меню. В том числе кнопка «Open Perspective» (см. Рис.23).
1/AppData/Local/Temp/msohtmlclip1/02/clip_image019.png» />
Рис.23. Кнопка выбора и включения различных перспектив в Eclipse
Если установка ADT прошла правильно, то при нажатии на данную кнопку появится список, в котором будет указана перспектива ABAP (см. Рис.24).
Рис.24. Включение ABAP-перспективы в среде Eclipse
Для дальнейшей работы с ADT нужно выбрать эту перспективу и нажать Open. В кнопочном меню появится кнопка «ABAP» (крайняя справа на Рис.25):
Рис.25. Переход к работе в ранее включённой ABAP-перспективе
Окно «Welcome» заслоняет почти всё рабочее пространство. Поэтому нужно закрыть его, нажав крестик на заголовке. В результате текущим станет как раз окно ABAP (см. Рис.26).
Рис.26. Рабочий вид ABAP-перспективы
Окно «Feature Explorer» в правой части экрана тоже не потребуется для работы, оно представляет только вводную информацию для начинающих. Его также можно закрыть.
2.2.4 Установка SAP HANA Studio
Этот вариант рекомендуется для тех пользователей, которые имеют доступ к загрузке ПО с портала https://launchpad.support.sap.com/. И при этом компания, в которой работает пользователь, имеет лицензию на SAP HANA. Тогда вместо среды Eclipse удобнее использовать её специально доработанную версию, называемую SAP HANA Studio. Важное преимущество этого продукта в том, что он обновляется синхронно с выпуском новых ревизий самой SAP HANA. Поэтому всегда можно установить именно ту версию Studio, которая соответствует используемой HANA-системе.
Для установки HANA Studio потребуется скачать её дистрибутив а также специальную программу-архиватор, используемую только компанией SAP. Это так называемый SAPCAR. Найти архиватор можно следующим образом. В верхней части web-страницы выбрать из списка раздел Downloads и ввести слово SAPCAR в поле поиска (см. Рис.27).
Рис.27. Поиск архиватора SAPCAR на официальном портале SAP
Затем нажать Enter или кнопку поиска . Формируются результаты поиска. Нас интересует строка, в которой написано «Maintenance Software Component» (см. Рис.28).
Рис.28. Результаты поиска архиватора SAPCAR
Перейдя по этой ссылке, видим, что текущей версией программы SAPCAR является 7.21 (см. Рис.29).
Рис.29. Результат поиска текущей версии SAPCAR
Войдя в данный раздел, выбираем из выпадающего списка подходящую версию операционной системы. И получаем ссылку на exe-файл для скачивания (см. Рис.30).
Рис.30. Дистрибутив текущей версии SAPCAR для ОС Windows
Рекомендуется скачать этот файл в отдельную папку. Например, C:\Studio. И переименовать для удобства просто в SAPCAR.EXE.
Теперь ищем дистрибутив для самой SAP HANA Studio. Так же вносим это название в поле поиска (см. Рис.31).
Рис.31. Поиск дистрибутива SAP HANA Studio
В результатах поиска ищем строку, где указан продукт «SAP HANA STUDIO 2» с пояснением «Maintenance Software Component» (см. Рис.31a).
Рис.31a. Результаты поиска SAP HANA Studio – строка с текущей версией ПО
Перейдя по ссылке, так же выбираем из списка подходящую версию Windows. И в данном случае мы получим довольно большой список различных доступных версий для скачивания (см. Рис.32).
Рис.32. Дистрибутивы SAP HANA Studio для ОС Windows и различных ревизий HANA
Какой из этих файлов выбрать? Если предполагается работа с системой на основе SAP HANA, то лучше всего уточнить у администраторов SAP Basis, какая ревизия HANA используется в вашей системе. И скачать версию Studio с таким же номером ревизии. Например – 223.00. Загруженный файл помещаем в ту же папку C:\Studio. Для удобства его тоже можно переименовать в STUDIO2.SAR (см. Рис.33).
Если хотите прочитать статью полностью и оставить свои комментарии присоединяйтесь к sapland