Начиная с версии 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.

Читать далее

office-configuration-tool

Очень часто в процессе разработки необходимо предоставить гибкость программного решения, в зависимости от каких-либо требований, определенными теми или иными настройками. Подобная гибкость в SAP системах традиционно решается путём определения пользовательских настроек в транзакции SPRO.  В статье будет рассмотрен способ определения своих настроек на базе ведения многоуровневого кластера ракурсов и создание ссылки на него в SPRO.

Читать далее

Первый способ: найти в SPRO, для этого необходимо зайти в транзакцию SM30 и нажать кнопку настройка:

sm30

Первый способ работает не всегда:

sm30_error

Второй способ: открыть на просмотр таблицу TSTCP – параметры транзакции (например, через SE11):

tstcp

Результат:

se11_result

Заходим на просмотр данных таблицы (например табл. plaf):

В строке команд набираем /h (отладка). Жмем Enter, попадаем в отладчик. В переменную CODE вместо SHOW ставим EDIT жмем F8. Результат:

Для удаления записи можно воспользоваться командой DELE.

Данный способ работает так же через транзакцию SE16. Кроме того вы можете отредактировать запись выполнив следующий ФМ: SE16N_INTERFACE, с параметрами — I_EDIT = X I_SAPEDIT = X.

UPD. Еще один способ в транзакции SE16N, на первом экране упасть в отладку и заполнить значение структуры GD-EDIT = ‘X’. Откроется удобный ALV редактор.

Когда таблица расширяется (например предусмотренной для расширения структурой — для стандартных таблиц или новым полем для своих), если база управляется СУБД Oracle (в других не проверял), в том случае если в таблице уже существовали записи, новые поля не устанавливаются в Initial значения по этим записям. Таким образом следующий запрос не вернет результатов:

По умолчанию Oracle ставит данное поле в NULL значение (для всех старых записей в таблице), NULL — означает что данному полю никогда не присваивалось значение. Для обхода этой ситуации необходимо либо проверять поле на NULL

либо поставить галочку напротив «НачЗнач» в определении структуры (при активации таблицы значения всех старых записей по новым полям будут перезаписаны в Initial (значения по умолчанию).