Разбить строку на подстроки (SUBSTRING) ABAP

Разбиение строки ABAP с примерами

Существует множество вариантов разбиения строки на части в зависимости от поставленной задачи.
Есть задачи в которых есть необходимость выделить подстроку из строки по определённым критериям. Для решения данной задачи отлично подходит функция substring с множеством своих вариантов. Рассмотрим подробнее каждый из них:

SUBSTRING

Функция SUBSTRING возвращает подстроку длины равной len при этом берёт данную строку с отступом равным off.

В нашем случае результатом выполнения функции будет: CD

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

Результатом выделения подстроки будет строка: 2020. Как для первого так и для второго выражения.

Важным ограничением этого способа является то, что если при обращении к строке происходит выход за её границы произойдёт ошибка. Пример ошибочного обращения:

SUBSTRING ABAP Разделение строки на подстроки

SUBSTRING_FROM

Возвращает подстроку начиная с первого вхождения символов sub включая эти символы и до конца строки. По результату получим: EFGH

SUBSTRING_BEFORE

Возвращает подстроку начиная с первого символа строки до первого вхождения символов sub НЕ включая эти символы.
По результату получим: AB

SUBSTRING_TO

Возвращает подстроку начиная с первого символа строки до первого вхождения символов sub включая эти символы.
По результату получим: ABCD

SPLIT

Так же бывают задачи разбиения одной строки на несколько подстрок.
Разбиение строки оператором SPLIT по заданному разделителю

По итогу выполнения программы переменным будут присвоены следующие значения:

Шаблоны как разбить строку на подстроки определённой длины.

Рассмотрим пример использования в задаче. Часто бывает, что стандартный метод или ФМ принимает на вход не строку, а таблицу с последовательностями символов определённой длины. Пример использования конструкции для решения задачи в статье: Вывод текста в окне, а так это подробно разобрано в видео к этой статье.

Шаблон с использованием SUBSTRING:

Короткий шаблон получения подстрок ABAP определённой длины:

Шаблон с использованием ФМ HR_RU_SLPIT_STRING0:

Использование этого ФМ показано на примере заполнения полей имени при создании кредитора.

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