Убрать двойные полосы прокрутки у АЛВ

При создании экрана может произойти задвоение полос прокрутки. Или же наоборот, целевая область будет непропорционально мала.

Для примера создадим экран следующего вида:

При этом если ваш монитор мал, можно увидеть следующую ситуацию:

Отобразилось по одной полосе прокрутки для каждого элемента. На большом экране, наоборот, элементы могут занимать только малу часть экрана.

Читать далее «Убрать двойные полосы прокрутки у АЛВ»

Хранение файлов в MIME репозитории

Для хранения файлов в SAP используется mime репозиторий.  Работать с репозиторием осуществляется в транзакции se80. 

Первым делом создадим папку, в которой планируем хранить файлы.



Читать далее «Хранение файлов в MIME репозитории»

Типы RFC в SAP

Remote Function Call (RFC) - стандартный интерфейс связи между SAP системами. RFC функцию можно выполнить в другой системе.

Существует несколько видов RFC функций.

sRFC 

sRFC - синхронные RFC. Данный вид RFC выполняется на принципах синхронной связи. Т.е. целевая система должна быть доступна в данный момент, а система из которой вызывается RFC ожидает выполнения. Применение данных RFC  целесообразно когда требуется получить данные из целевой системы. Например, при работе в ERP требуется чтение данных какой-либо таблицы в HR системе.
ФМ должен иметь тип выполнения - "Дистанционный модуль".

Читать далее «Типы RFC в SAP»

Дружба ABAP Objects. Получить доступ к приватному атрибуту

Обычно доступ к приватным и защищенным атрибутам объекта запрещен из-за пределов класса. Но порой необходимо нарушить эту концепцию по тем или иным причинам. Для этого в ABAP существует "дружба".
Класс может предоставить дружбу другим классам и интерфейсам. Этим друзьям предоставляется доступ ко всем компонентам класса, предлагающего дружбу, независимо от их раздела видимости или добавления READ-ONLY.

Пример:

Читать далее «Дружба ABAP Objects. Получить доступ к приватному атрибуту»

Маски в ABAP и SQL

Файловая система Open SQL ABAP
Любое кол-во символов * % *
Один любой символ ? _ +

Давайте рассмотрим примеры поиска
SQL используется оператор LIKE

Внутренние таблицы ABAP используем оператор CP и NP для:
Чтение по маске:

 

Удаление по маске(проверить возможность установить CP NP)
и использовать RANGE

Эскейп символ.

Немного усложним задачу, что если в искомой строке уже будет  специальный
символ. Например, мы хотим выбрать строку "В молоке 30% жирности"
Для этого и существуют дополнение ESCAPE. SAP рекомендует использоать символ "#"

Пример:

Для внутренних таблиц аналогично, но работает без дополнения:

 

Блокировки SAP. Позитивные\Негативные. Пример блокировок

Блокировка - отметка записи в базе данных на время проведения операции(INSERT, UPDATE и т.д.). Служит для предотвращения коллизий при доступе к записи и устанавливается на время операции на уровне БД. SAP для своей системы позволяет создал свою концепцию блокировок, которая позволяет блокировать определенные данные на все время работы транзакции.

Читать далее «Блокировки SAP. Позитивные\Негативные. Пример блокировок»

Виртуальная сортировка внутренней таблицы

В abap 7.52 появилась возможность получить порядок записи внутренней таблицы не меняя исходные данные. Т.е., например, можно  виртуально отсортировать таблицу в import параметре по интересующему нас ключу.
Для этого был добавлен метод VIRTUAL_SORT класса cl_abap_itab_utilities.
Рассмотрим пример:

Читать далее «Виртуальная сортировка внутренней таблицы»

TRY … RETRY, CLEANUP, RESUME

Разберем несколько операторов в блокe TRY... ENDTRY.

Retry -  позволяет выполнить блок TRY  еще раз. Перед  перезапуском блока  необходимо  исправить ситуацию, из-за которой случилась ошибка. В противном случае, попадем в бесконечный цикл.  

RESUME - возобновляемое исключение. Программа возвращается к работе после исключения.

Читать далее «TRY … RETRY, CLEANUP, RESUME»

LOOP AT itab – GROUP BY

Оператор GROUP BY позволяет группировать значения в цикле по ключу. В чем-то это похоже на оператор AT NEW.

Давайте попробуем обработать записи таблицы splfi по уникальным значениям carrid. Для этого пропишем следующий код:

Читать далее «LOOP AT itab – GROUP BY»

Оператор FILTER

ABAP 7.4 вышел уже очень давно, однако, его операторы мало кто использует. Рассмотрим сегодня оператор FILTER который позволяет выбирать данные из одной внутренней таблицы в другую по ключам.
Читать далее «Оператор FILTER»