Для добавление Z полей даты на экран необходимо сделать следующие действия.:
Добавим новые даты в SPRO
Изменение доступности опций выбора в Select-Options.
Практически в каждом отчете мы используем Select-options. При этом по умолчанию нам доступны все опции выбора.
Но что делать если нам нужен только четкое равенство? Постоянно проверять ввод с экрана? Нет, можно убрать ненужные опции выбора.
для этого напишем следующий код:
Читать далее «Изменение доступности опций выбора в Select-Options.»
Регулярные выражения в ABAP
Регулярные выражения - это шаблоны для поиска в строках. Их можно
использовать для поиска, замены в строках или проверки входных данных. ABAP разработчики не очень часто используют данный функционал, хотя иногда это довольно удобно. К сожалению, и сам язык поддерживает далеко не все возможности регулярных выражений.
Нет смысла лишний раз описывать операторы, ознакомится с ним можно в документации.
Рассмотрим несколько простых примеров для поиска на конкретных примерах. Так будет немного понятнее.
Ракурс ведения таблицы. Изменить размер экрана.
При создании экрана ведения для таблицы ширина блока вывода по умолчанию составляет 80 колонок. Что составляет примерно половину экрана. Это далеко не всегда удобно.
При необходимости увеличить область вывода первое, что делает разработчик, заходит в редактор экрана и меняет ширину в ручную. Такой подход часто достаточен, но при перегенерации ракурса ведения, все ручные изменения исчезают, экран приобретает свой стандартный размер. Мелочь, а неприятно.
Недавно наткнулся на способ, позволяющий каждый раз не восстанавливать размер экрана руками, а единожды прописать ФМ, который будет сравнивать текущий размер области с необходимым и в случае несовпадения перегенерировать его с заданным размером на лету.
Читать далее «Ракурс ведения таблицы. Изменить размер экрана.»
Отменить деблокирование запроса/задачи
Для управления статусами запросов и задач можно использовать программу RDDIT076.
ABAP Daemon Framework
Демоны abap - это фоновые сеансы с неограниченным сроком жизни. Время выполнения которых, зависит только от работы сервера. В случае ошибок, возникших во время работы, демон перезапускается.
Попробуем создать простой демон для примера. Он будет следить за входом пользователя в указанную транзакцию. По большому, счету это повторение демо-примера от SAP. Можно сразу смотреть там.
Для остальных ниже:
Читать далее «ABAP Daemon Framework»
Виртуальная сортировка внутренней таблицы
В abap 7.52 появилась возможность получить порядок записи внутренней таблицы не меняя исходные данные. Т.е., например, можно виртуально отсортировать таблицу в import параметре по интересующему нас ключу.
Для этого был добавлен метод VIRTUAL_SORT класса cl_abap_itab_utilities.
Рассмотрим пример:
TRY … RETRY, CLEANUP, RESUME
Разберем несколько операторов в блокe TRY... ENDTRY.
Retry - позволяет выполнить блок TRY еще раз. Перед перезапуском блока необходимо исправить ситуацию, из-за которой случилась ошибка. В противном случае, попадем в бесконечный цикл.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
types: begin of gty_s_fio, pernr type text8, "в тестовой системе нет hr типов fio type text100, bukrs type bukrs, end of gty_s_fio. data gt_fio type table of gty_s_fio. try. data(gs_data) = gt_fio[ bukrs = '0001' ]. catch cx_root. append value #( pernr = '90000001' fio = 'Ivanov I.I.' bukrs = '0001' ) to gt_fio. retry. endtry. |
RESUME - возобновляемое исключение. Программа возвращается к работе после исключения.
LOOP AT itab – GROUP BY
Оператор GROUP BY позволяет группировать значения в цикле по ключу. В чем-то это похоже на оператор AT NEW.
Давайте попробуем обработать записи таблицы splfi по уникальным значениям carrid. Для этого пропишем следующий код:
1 2 3 4 5 6 7 8 9 10 11 |
DATA: lt_splfi TYPE TABLE OF spfli. SELECT * FROM spfli INTO TABLE lt_splfi. LOOP AT lt_splfi INTO DATA(ls_splfi) GROUP BY ( carrid = ls_splfi-carrid size = GROUP SIZE index = GROUP INDEX ) ASCENDING REFERENCE INTO DATA(rv_group). write: / rv_group->carrid. ENDLOOP. |
Оператор FILTER
ABAP 7.4 вышел уже очень давно, однако, его операторы мало кто использует. Рассмотрим сегодня оператор FILTER который позволяет выбирать данные из одной внутренней таблицы в другую по ключам.
Читать далее «Оператор FILTER»