Sap cds view что это

Sap cds view что это. portrait. Sap cds view что это фото. Sap cds view что это-portrait. картинка Sap cds view что это. картинка portraitIlya Kaznacheev Cloud Architect | Community Leader | Public Speaker

При этом CDS является достаточно мощным механизмом, позволяющим опустить многие вычисления и выборки данных в трехуровневой архитектуре SAP с уровня приложений на уровень БД (подход, называемый “code push-down”). Вместе с использованием SAP HANA, которая умеет быстро обрабатывать такие запросы, эта технология предоставляет разработчику достаточно мощный инструмент по описанию моделей данных, которые можно затем удобно использовать в ABAP.

Однако с большой силой приходит и большая ответственность, о которой мы сегодня и поговорим. Но сперва в двух словах о том, что же такое ABAP CDS View.

##Описание моделей с использованием ABAP CDS View

Вот пример простого CDS View и сгенерированного для него запроса:

Стандартный CDS View I_MRPSalesOrder

Сгенерированный для него SQL запрос

А вот иерархическая структура, показывающая последовательность выборки данных по дереву CDS вплоть до реальных таблиц БД:

Sap cds view что это. . Sap cds view что это фото. Sap cds view что это-. картинка Sap cds view что это. картинка

Сам инструмент достаточно удобен, если речь идет именно о выборке данных, и позволят качественно отделить модель от бизнес-логики при разработке приложения. При этом многие новые технологии SAP построены именно на CDS View, например новый подход к моделированию приложений для Fiori, полностью основанной на BOPF и CDS, которая уже применяется в новых модулях для S/4, например в EHS.

Однако благодаря широким возможностям CDS View по обработке данных (а возможность применения AMDP делает их практически безграничными) появляется возможность использования технологии для решения крайне широкого спектра задач. Однако не для всего они хорошо подходят, и неправильное применение этого инструмента превращает разработку и поддержку в настоящее мучение. В этой заметке я рассмотрю основные случаи, когда стоит и не стоит использовать CDS View и некоторые особенности текущего состояния этой технологии, которые стоит знать перед тем, как начинать серьезное использование ее в проекте.

##Когда стоит использовать CDS View

###При описании моделей данных

Как следует из документации, технология была разработана для описания моделей данных, используемых в ABAP. Например, работая в SD с заказом на поставку, можно написать набор CDS View, которые будут выбирать всю необходимую информацию по заказу (при этом информация для различных статусов заказа может считываться из различных таблиц при необходимости), и формировать на ее основе единую структуру заказа со всеми необходимыми полями в виде одной готовой таблицы (или нескольких связанных таблиц, если имеют место какие-то множественные данные), которую можно просто считать в ABAP и сразу же использовать для какой-то бизнес логики, без каких-то дополнительных преобразований и считываний дополнительных данных из БД.

Концепция CDS предполагает, что все выборки, расчеты и преобразования данных, релевантных для модели, будут происходить “не выходя” из БД, а на сервер приложений будут переданы только необходимые данные и ничего лишнего. Это полностью противоречит существовавшему раньше подходу к работе с БД в SAP, в рамках которого предполагалось минимально нагружать базу, а все расчеты выполнять на сервере приложений.

Это все позволяет один раз описать модель данных с указанием всех связей между таблицами, логикой поиска и выборки данных, каких-то преобразований и агрегаций, и потом только обращаться к ней за данными, не вдаваясь в особенности реализации, и не повторяя раз за разом один и тот же код по выборке и анализу данных соответствующей сущности.

##Когда не стоит использовать CDS View

###Реализация бизнес-логики в модели

###Формирование слишком сложных моделей

Модель данных как, впрочем, и любая другая сущность не должна быть чересчур сложной и комплексной. Если вы видите, что модель получилась слишком большой, тянет данные из кучи мало связанных таблиц и имеет сложную логику, стоит остановиться и постараться разбить все это на несколько более связных моделей, которыми потом можно будет удобно оперировать в ABAP.

К тому же в БД (в частности HANA) есть ограничение по глубине селекта, и запросы начинают бодро падать в дамп на особенно крупных моделях данных. Не знаю, достиг ли я дна, или это распространенная ситуация, но нужно держать это в голове при разработке особенно всеобъемлющих CDS View.

###Формирование моделей с большим количеством условий

Как в предыдущем пункте, речь здесь идет о сложности модели, но теперь с точки зрения логики. CDS View не поддерживают каких-либо списков значений, а добавить данные из таблицы БД в качестве списка достаточно накладно, поэтому такие вещи, которые в ABAP решались при помощи RANGE, в CDS View приходится реализовывать вручную. Иногда в результате получаются достаточно монструозные конструкции, в процессе написания которых клавиши Ctrl и C изрядно нагреваются. Поддерживать такое достаточно трудоемко, особенно когда подобные условия приходится накладывать на несколько CDS одновременно. Если есть возможность реализовать подобные ограничения силами ABAP, в большинстве случаев лучше так и сделать.

###Реализация логики, не относящейся к моделированию данных

##Особенности работы с CDS View

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

Как уже было сказано, CDS View достаточно утомительно покрывать тестами. Несмотря на то, что ADT позволяет сгенерировать необходимый boilerplate код, при минимальных изменениях все это придется редактировать вручную. А практика показывает, что минимальные изменения в логике построения модели зачастую приводят к кардинальным изменениям в составляющих модель View. Просто обратите внимание на то, что изменения в таких юнит-тестах потребуют от вас много усилий, и либо пишите тесты в самом конце разработки, либо дробите модели на какие-то более атомарные части, которые будут изменяться с меньшей вероятностью, и покрывайте тестами их.

##Что получаем в итоге

С другой стороны не стоит забывать, что технология предназначена именно для описания моделей, поэтому она крайне негативно отзывается на включение в них чужеродной логики, что приводит к болезненной и истощающей поддержке такого кода.

Используйте технологию с умом, ведь день ото дня она будет становиться только более распространенной в продуктах SAP.

Источник

ABAP CDS ViewsSap cds view что это. locate. Sap cds view что это фото. Sap cds view что это-locate. картинка Sap cds view что это. картинка locate

The data of an application is distributed across several database tables. Using ABAP CDS views, you can rearrange the table fields according to application-specific needs from the ABAP source code of your implementation.

The structure of such a view is defined by specifying the relevant database tables and the set of table fields to be used in the view.

Sap cds view что это. loio2acd1a727a024bd39eecf31869e92856 LowRes. Sap cds view что это фото. Sap cds view что это-loio2acd1a727a024bd39eecf31869e92856 LowRes. картинка Sap cds view что это. картинка loio2acd1a727a024bd39eecf31869e92856 LowRes

The CDS entity cust_book_view_entity defines a projection onto the database tables scustom and sbook by joining both tables. The generated SQL view ( CUSTOMER_VW ) comprises the ID, the name, and the booking ID of all customers for which the bookings exist.

When activating a CDS view, the following objects are created in ABAP Dictionary:

Like regular Dictionary projection views, ABAP CDS entities can be used in ABAP Open SQL for data selection. The following method lists the customer’s booking data that is stored in the underlying database tables. As demonstrated in the listing below, the CDS entity (in this case: cust_book_view_entity ) is used for data selection in the ABAP source code.

The following figure combines the main components of the view-building architecture and also displays the most important activities that are involved in the view-building process. Using a wizard within the Eclipse-based IDE, you first create the DDL source as the relevant development object. In ABAP Development Tools, the text-based DDL editor is used to write source code in which you specify the data definition for a new CDS view. For each CDS view that is defined in the DDL source, you will generate – using the activation process – exactly one SQL view and the corresponding CDS entity in the ABAP Dictionary.

Sap cds view что это. loio4e9d12a16e391014adc9fffe4e204223 LowRes. Sap cds view что это фото. Sap cds view что это-loio4e9d12a16e391014adc9fffe4e204223 LowRes. картинка Sap cds view что это. картинка loio4e9d12a16e391014adc9fffe4e204223 LowRes

When activating a DDL source, a CDS entity and SQL view form a unity within the DDL source as development object. So, after transporting a DDL source, the name of the CDS entity and SQL view can no more be changed. To rename any part of this unity, you need to delete the corresponding DDL source. Consequently, you recreate it and use the new name for the relevant part.

Источник

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, где будут считаны данные из двух таблиц.

Sap cds view что это. image 7. Sap cds view что это фото. Sap cds view что это-image 7. картинка Sap cds view что это. картинка image 7

Используя 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, который в итоге должен оказаться в роли пользователя.

Sap cds view что это. image 8. Sap cds view что это фото. Sap cds view что это-image 8. картинка Sap cds view что это. картинка image 8

Тестирование доступа к View

На следующем видеофрагменте представлена последовательность действий, в результате которой создается роль, куда добавляется предварительно созданный объект полномочий S_CNTOR. Этому объекту полномочий устанавливается два значения, в соответствии с определенными в настройке для Access Control. Все это сопровождается последовательным запуском ABAP программы, где выполняется обычный SELECT по CDS View, а также непосредственный запуск просмотра данных в CDS View, но уже в Eclipse IDE.

Источник

ABAP Blog

Все о разработке в решениях от SAP

ABAP Blog

Все о разработке в решениях от SAP

Ссылки

Цитаты

Чистый код может читаться и усовершенствоваться другими разработчиками, кроме его исходного автора. Для него написаны модульные и приемочные тесты. В чистом
коде используются содержательные имена. Для выполнения одной операции в нем используется один путь (вместо нескольких разных). Чистый код обладает минимальными зависимостями, которые явно определены, и четким, минимальным API. Код должен быть грамотным, потому что в зависимости от языка не вся необходимая информация может быть четко выражена в самом коде.

Д. Томас

Новое

Последние комментарии

ABAP CDS (Core Data Services)

Начиная с версии ABAP 7.4. нам стала доступна новая технология описания моделей данных в словаре – ABAP CDS (CDS – Core Data Services). Данная технология позволяет описывать модели данных на более продвинутом уровне, нежели это можно было делать стандартными словарными вьюшками. Она так же позволяет оптимизировать работу с данными за счёт вынесения вычислений на уровень СУБД (Code-to-Data), что актуально для HANA.

Кроме ABAP CDS, есть так же отдельная реализация для HANA – HANA CDS. Как понятно из названия, одна реализация используется в ABAP разработке, другая в HANA Native разработке. Horst Keller в своём блоге более подробно рассматривает разницу в обоих реализациях.

ABAP CDS поддерживается сервером приложений ABAP вне зависимости от того, какая СУБД будет им использована, однако некоторые специфические вещи могут и не поддерживаться (В ABAP 7.4. нет поддержки параметров у CDS для всех СУБД, она появилась только с ABAP 7.5. Кроме того, скорость работы CDS на HANA и Oracle может быть различной).

В статье будет рассмотрена версия ABAP CDS для ABAP 7.4, с некоторыми комментариями относительно ABAP 7.5.

Прежде чем приступать к примерам, рассмотрим основные понятия в контексте ABAP CDS:

Sap cds view что это. Untitled Diagram 1. Sap cds view что это фото. Sap cds view что это-Untitled Diagram 1. картинка Sap cds view что это. картинка Untitled Diagram 1

Упомянутые выше аннотации это своего рода мета-информация об объекте CDS, которая может в себя включать как настройки (буферизация, ссылочные поля для валюты и т.п.), так и только описательные данные (текстовое описание поля, описание DB View и прочее).

Подробная информация о существующих аннотациях есть в документации (для ABAP 7.5).

В ABAP 7.5 с помощью аннотаций можно даже опубликовать OData сервис на базе CDS View, при этом используя описательные аннотации можно задавать свойства UI элементов в UI5 (Fiori) приложениях (ABAP 7.5 SP01 и выше). Блог, в котором рассматриваются эти и другие возможности аннотаций (ABAP 7.5).

Работа с CDS View

Создание

Создать CDS View можно только из ABAP Development Tools (Eclipse plugin, скачать можно с сайта: https://tools.hana.ondemand.com). Для этого необходимо сначала создать ABAP проект в системе, а затем добавить к нему новый объект:

Sap cds view что это. CreateDDL. Sap cds view что это фото. Sap cds view что это-CreateDDL. картинка Sap cds view что это. картинка CreateDDL

В 7.5 путь в мастере несколько отличается, CDS вынесены в отдельную папку.

Далее указывается имя DDL объекта CDS:

Sap cds view что это. DDLDefenition. Sap cds view что это фото. Sap cds view что это-DDLDefenition. картинка Sap cds view что это. картинка DDLDefenition

На следующем шаге необходимо указать настройки транспорта, а после него выбрать шаблон CDS который будет вставлен в DDL по умолчанию:

Sap cds view что это. CDSTemplate. Sap cds view что это фото. Sap cds view что это-CDSTemplate. картинка Sap cds view что это. картинка CDSTemplate

Eclipse позволяет самим определять шаблоны DDL через настройки:

Sap cds view что это. DefineTemplate. Sap cds view что это фото. Sap cds view что это-DefineTemplate. картинка Sap cds view что это. картинка DefineTemplate

После выбора шаблона по умолчанию, нажимаем на кнопку finish и имеем следующий результат:

Источник

ABAP для SAP HANA. Что следует помнить

Эта страница представляет собой заметку новичка в SAP HANA, который пытается понять и запомнить новые термины.

Wiki говорит нам, что SAP HANA (High Performance Analytic Appliance) — это in-memory СУБД, которая использует поколоночное хранение данных, разработанная и продаваемая SAP SE. Архитектура HANA обеспечивает как высокоскоростную обработку транзакций, так и работу со сложными аналитическими запросами.

Инновации в оборудовании (многоядерная архитектура центральных процессоров и 64-разрядное адресное пространство) позволили SAP разработать HANA.

Аналогично, инновации в программном обеспечении (постолбцовое хранение данных, улучшенные алгоритмы сжатия) способствовали ее эволюции.

HANA поддерживает комбинации интерактивной обработки транзакций (OLTP) и интерактивной аналитической обработки (OLAP).

SAP NetWeaver 7.4, доступный с мая 2013 года, представляет собой версию, которая в настоящее время полностью оптимизирована для HANA. Он также облегчает разработку приложений для современных браузеров и мобильных устройств из-за встроенного инструментария разработки пользовательского интерфейса для HTML5 (адаптация SAP стандарта HTML5, известного как SAPUI5) и возможностей SAP NetWeaver Gateway.

Как уже было сказано выше в основе HANA лежит высокопроизводительная in-memory база данных. Она может управлять структурированными и неструктурированными данными, поддерживает как транзакционные, так и аналитические варианты использования.

Имеются стандартные интерфейсы баз данных, такие как JDBC и ODBC. Короче говоря, SAP HANA — это реляционная система управления БД (RBDMS), предлагающая интерфейс SQL и изоляцию транзакций.

Постолбцовое хранилище данных

Таблица базы данных концептуально представляет собой двумерную структуру данных, организованную в строках и столбцах. Компьютерная память, напротив, организована как линейная структура. Таблица может быть представлена ​​в порядке строк или столбцов. Строковая организация хранит таблицу в виде последовательности записей. И наоборот, в хранилище столбцов записи столбца хранятся в смежных ячейках памяти. Для запроса выбирается только соответствующий столбец, что уменьшает количество обрабатываемых данных.

С помощью столбчатых данных операции над отдельными столбцами, такие как поиск или агрегация, могут быть реализованы как циклы над массивом, хранящимся в смежных ячейках памяти. Такая операция имеет высокую пространственную локальность и может эффективно выполняться в кэше ЦП. С хранилищем, ориентированным на строки, такая же операция будет намного медленнее, поскольку данные одного и того же столбца распределяются по всей памяти, а CPU замедляется ошибками кеша. HANA поддерживает оба варианта, но особенно оптимизирована для хранения столбцов.

Постолбцовое хранилище данных обеспечивает высокоэффективное сжатие. Если столбец отсортирован, смежные значения часто повторяются. HANA использует высокоэффективные методы сжатия, такие как кодирование длин серий, кластерное кодирование и словарный метод кодирования. При словарном кодировании столбцы хранятся в виде последовательностей битовых целых чисел. Это означает, что проверка на равенство может выполняться по целым числам; например, во время операций сканирования или объединения. Это намного быстрее, чем сравнение, например, строковых значений.

Постолбцовое хранилище во многих случаях устраняет необходимость в индексах. Хранение данных в столбцах функционально аналогично наличию встроенного индекса для каждого столбца. Скорость сканирования столбцов в in-memory хранилище и механизмы сжатия, особенно словарный метод сжатия, позволяют выполнять операции чтения с очень высокой производительностью. Во многих случаях необязательно иметь дополнительные индексы. Устранение дополнительных индексов уменьшает сложность и устраняет усилия по определению и поддержанию метаданных.

В HANA используется сжатие со словарем, которое реализуется для таблиц с постолбцовым хранением данных путем сортировки словаря по отдельными значениями столбца. Каждый столбец использует массив целочисленных значений, которые представляют позиции фактических значений в словаре.

Таблицы с постолбцовым хранением данных рекомендуется использовать тогда, когда в них содержится огромное количество данных, которые часто просматриваются или агрегируются, а также когда таблица содержит много столбцов, а типичные запросы имеют доступ только к нескольким из них.

Транспортный контейнер SAP HANA (HTC):

С помощью SAP NetWeaver 7.4 приложения, содержащие объекты разработки ABAP и HANA, теперь могут легко разрабатываться, обновляться, исправляться и расширяться. Как обычно делается по соображениям обеспечения качества, различные сущности ABAP и HANA должны переноситься через системный ландшафт; как правило, от системы разработки до тестирования, а затем до продуктивной системы. Здесь стоит рассказать о SAP HANA Transport Container (HTC).

HTC — это объект разработки ABAP. Он необходим для интеграции содержимого репозитория HANA в стандартную систему изменений и транспорта (CTS).

Начиная с AS ABAP 7.4, HTC легко интегрируется в транспортный органайзер AS ABAP и интегрирует содержимое хранилища HANA в CTS. Это обеспечивает эффективный процесс доставки приложений, построенных на ABAP (скажем, метода) и контента HANA (например, AMDP), или просто ABAP для приложений SAP HANA между системами SAP с помощью проверенного транспортного механизма ABAP.

ABAP в Eclipse

Инструменты разработки ABAP для SAP NetWeaver идеально сочетаются с технологией SAP HANA Studio и SAP in-memory, позволяя выполнять высокопроизводительную разработку приложений поверх SAP HANA. Они значительно увеличивает производительность разработчика ABAP благодаря богатому опыту и гибкости Eclipse, новым возможностям для реализации сложного исходного кода, ориентированного на задачи бизнеса и тестирование. Также, они позволяют кросс-платформенную разработку приложений, интегрируя средства разработки ABAP и другие в одну среду IDE на основе Eclipse.

Open и Native SQL

Open SQL позволяет нам получить доступ к таблицам баз данных, объявленных в ABAP Dictionary независимо от базы данных, которую использует система R/3.

Native SQL позволяет нам использовать SQL-запросы в программе ABAP. Это означает, что мы можем использовать таблицы базы данных, которые не используются в ABAP Dictionary, и, следовательно, интегрировать данные, которые не являются частью системы R/3.

Как правило, программа ABAP, содержащая SQL-запросы, специфичные для базы данных, не будет работать в разных системах баз данных. Если ваша программа будет использоваться на нескольких платформах базы данных, используйте только инструкции Open SQL.

Обратите внимание на то, что любой ABAP-код не будет демонстрировать резкое повышение производительности автоматически. Чтобы максимально использовать потенциал SAP HANA, наш пользовательский код должен соответствовать расширенным рекомендациям по производительности SQL.

ABAP Test Cockpit (ATC)

ATC может использоваться для проверки ABAP кода — поиска проблем и их исправления (если необходимо) перед переходом на HANA. Чтобы избежать проблем, проверка интерфейса ADBC ​​(ABAP Database Connectivity) в Code Inspector должна быть выполнена до перехода на SAP HANA. Монитор проверки (SRTCM) можно использовать для получения дополнительной информации во времени выполнения. Проверка PERFORMANCE_DB может использоваться для анализа возможности оптимизации производительности до перехода на HANA.

SQL Monitor (SQLM) можно использовать для захвата SQL-профиля системы ABAP. Данными SQL Monitor’а можно обменивать между двумя системами, создавая моментальный снимок данных, экспортируя его в файловую систему, а затем импортируя его в целевую систему. SQL-профиль бизнес-процессов в продуктивной системе может быть захвачен потому, что SQL Monitor вводит только минимальные издержки на производительность.

Рабочий список настройки производительности SQL (SWLT) позволяет сопоставить результаты анализа исходного кода ABAP с данными времени выполнения SQL. В отчете приведен список с потенциальными проблемами. Мы должны начать исследовать те, которые находятся наверху. Нам нужно установить, насколько мы хотим оптимизировать код. Работая с этими настройками проверьте, соответствуют ли исправления/оптимизации нашим определенным требованиям или определенным бизнес-требованиям.

Средство просмотра списка SAP со встроенным доступом к данным (ALV с IDA) основано на принципе выбора только тех данных, которые будут отображаться из базы данных, и над которыми будут выполнять вычисления, агрегация и группировка на уровне базы данных.

Сдвиг парадигмы кода в базу данных

Парадигма Code-to-Data помогает повысить производительность кода ABAP в котором интенсивно используются запросы данных. Это достигается тем, что возможности SAP HANA in-memory позволяют выполнять вычисления на уровне базы данных, что помогает избежать ненужного перемещения данных. Мы должны учитывать тот факт, что SAP HANA и AS ABAP используют системы разных типов, когда мы следуем парадигме Code-to-Data с использованием Native SQL. Производительность также может быть увеличена за счет использования новых функций в Open SQL с использованием AMDP и с использованием объектов представления, предоставляемых расширенными возможностями определения представлений.

Core Data Services (CDS) и AMDP (ABAP управляемые процедуры базы данных) артефакты ABAP могут быть созданы и поддерживаться с помощью средств разработки ABAP для SAP NetWeaver.

Core Data Services (CDS)

CDS — это механизм для переноса логики в базу данных. Мы передаем эту эффективную инновацию, чтобы поместить код и выполнить логику в самой базе данных. Итак, простыми словами, CDS помогает нам управлять нашей логикой в ​​базе данных.

Теперь давайте рассмотрим формальное определение и объяснения. Core Data Services — это SQL более высокого порядка, который освобождает разработчиков приложений от написания низкоуровневого SQL-кода автоматически генерируя требуемый код, а также формирует основу для унифицированных моделей данных в контексте SAP HANA.

Предполагается, что SAP HANA сможет потреблять различные источники данных на одном и том же семантическом уровне независимо от того, поставляются ли они программой ABAP или моделью SAP BusinessObjects. Основные сервисы данных включены как часть расширенных приложений приложений SAP HANA, сервер приложений, поставляемый с SAP NetWeaver 7.4 SPS 05 и SAP HANA с SPS 06.

CDS View собой набор языков и сервисов для определения и потребления семантически богатых моделей данных. Язык описания данных, язык управления данными и язык манипулирования данными включены в CDS. CDS можно использовать с помощью предварительного просмотра данных в инструментах разработки ABAP для SAP NetWeaver а также в качестве источника данных в объявлении FROM Open SQL запроса.

Условные выражения, такие как функции COALESCE и оператор CASE в списке проекций, могут использоваться в Core Data Services View (CDS). Поле из проекционного списка другого CDS View, используемого в предложении FROM и строковые константы, литеральные значения и функции агрегирования по полям таблиц ABAP Dictionary, используемых в предложении FROM, могут быть включены в проекционный список (CDS). Мы можем использовать статический метод use_features класса cl_abap_dbfeatures, чтобы проверить, могут ли Core Data Services View со скалярными входными параметрами использоваться в запросах Open SQL в системе. CDS теперь поддерживает LEFT OUTER JOIN и RIGHT OUTER JOIN. Целевой объект ассоциации является обязательным при определении ассоциации в CDS.

Опция «Map to Data source» в SAP NetWeaver Gateway Service Builder (транзакция SEGW) может использоваться для реализации потребления Core Data Services. Источник DDL (DDLS), в котором определено CDS View, включается в транспортный запрос, когда мы переносим Core Data Services (CDS). CDS View также могут быть расширены с помощью инструкции EXTEND VIEW программно.

Усовершенствования, включенные в CDS:

По словам непрофессионала, аннотации и ассоциации — это расширения CDS для SQL.

Ассоциации в Core Data Services(CDS) View могут быть использованы в объявлении FROM, WHERE и HAVING и в списке проекций. Основной целью ассоциаций в Core Data Services является определение отношений между сущностями. Таблицы словаря, CDS View и Dictionary View могут использоваться в качестве источника данных в CDS View. Говоря простыми словами, в инструкции SELECT (Open SQL) можно указать таблицы словаря ABAP, CDS View, словарные представления.

При использовании Ассоциации в CDS используются выражения пути, JOIN создается в лежащей в основе базе данных.

Преимущества замены оператора JOIN Ассоциацией в представлении CDS состоят в том, что ассоциацию можно использовать с помощью простого выражения пути. При этом условия ON для объединения генерируются автоматически. Ассоциация также может быть раскрыта.

Аннотация «AbapCatalog.sqlViewName» является обязательной для определения CDS View. Аннотация AbapCatalog.Buffering применяется во всем CDS View. Другими словами, аннотации представляют собой метаданные, специфичные для домена. Символ @ (at) используется для маскировки аннотаций в CDS views.

Основным преимуществом использования CDS в SAP NetWeaver Application Server ABAP является то, что мы можем определить сложные модели данных, которые могут быть использованы в простой инструкции Open SQL SELECT, и мы можем использовать расширенную функциональность, чтобы перенести код в слой базы данных. Важно отметить, что скалярные входные параметры зависят от базы данных. Таким образом, если мы планируем использовать CDS View, используя объявление FROM Open SQL запроса со скалярным входным параметром, нам нужно иметь в виду, что запрос не может быть выполнен во всех сертифицированных SAP базах данных для зависимых от базы данных скалярных входных параметров.

Управление ABAP процедурами базы данных (AMDP)

ABAP процедуры базы данных — это новая функция AS ABAP, позволяющая разработчикам писать процедуры базы данных непосредственно в ABAP. AMDP можно рассматривать как функцию, сохраненную и выполняемую в базе данных. Язык реализации варьируется от одной базы данных к другой. В SAP HANA это SQL. Использование AMDP позволяет разработчикам создавать и выполнять эти процедуры базы данных в среде ABAP с использованием методов ABAP и типов данных ABAP.

Говоря простым языком, AMDP — это не что иное, как контейнер методов. Сама процедура развертывается и выполняется в базе данных HANA. Процедура управляемой базы данных ABAP следует принципу «сверху вниз». Чтобы реализовать метод AMDP нам необходимо реализовать (обязательно) интерфейс IF_AMDP_MARKER_HDB. Элементы языка ABAP LANGUAGE db_lang (db_lang = SQLSCRIPT …), FOR db (db = HDB …) и BY DATABASE PROCEDURE являются обязательными для реализации метода в качестве процедуры управляемой базы данных ABAP. AMDP также может улучшить производительность преобразования данных в процессе извлечения, преобразования и загрузки в BW. Мы можем использовать процедуру ABAP управляемой базы данных в вашем ABAP-коде, вызвав соответствующий метод класса ABAP. Управление исходными кодами с использованием транспортной инфраструктуры ABAP, статические синтаксические проверки кода базы данных и независимость базы данных — это преимущества использования AMDP.

AMDP имеет некоторые ограничения.

Параметры EXPPORT, IMPORT и CHANGED разрешены.

Методы с возвращаемыми (RETURNING) параметрами не могут быть реализованы как AMDP.

Параметры метода должны быть таблицами или скалярными типами.

Параметры метода должны передаваться по значению.

Подключение к базе данных ABAP (ADBC)

ABAP Database Connectivity (ADBC) — это API для собственного SQL-интерфейса AS ABAP, основанного на объектах ABAP. Методы ADBC ​​позволяют: отправлять специфичные SQL-команды в систему базы данных и обрабатывать результат; устанавливать и администрировать подключения к базе данных. Native SQL предоставляет исключительно статический доступ к интерфейсу Native SQL. ADBC ​​делает возможным объектно-ориентированный и динамический доступ.

API ADBC ​​использует классы CL_SQL_STATEMENT и CL_SQL_RESULT_SET. Нам нужно привязать ссылку на внутреннюю таблицу в качестве выходного параметра к экземпляру CL_SQL_RESULT_SET. Получить результат, используя метод next_package класса CL_SQL_RESULT_SET, для получения результирующего набора во внутреннюю таблицу после выполнения Native SQL-запроса. Далее, получить перечень информации можно используя соответствующий ADBC API метод.

Пожалуйста, следите за обновлениями о HANA. Я покажу вам, как получить бесплатный доступ к платформе SAP HANA Cloud. Да, это действительно бесплатно! Я уже проверил. Для этого я использовал Eclipse Studio. В следующих статьях я подробно расскажу Вам, как вы можете его легко настроить.

Спасибо большое за уделенное время!!

Подробнее о ABAP CDS можно почитать здесь: ABAP CDS (Core Data Services)

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *