Поиск…


литералы

ABAP предлагает три разных оператора для объявления строковых или char-подобных переменных

Символы Внутренний тип длина название
'...' С 1-255 Chars текстовые полевые литералы
`...` CString 0-255 символов текстовые строковые литералы
| ... | CString 0-255 символов шаблонные литералы

Обратите внимание, что диапазон длины применяется только к жестко закодированным значениям. Внутренне переменные CString имеют произвольную длину, а переменные типа C всегда имеют фиксированную длину.

Строковые шаблоны

Строковые шаблоны - это удобный способ смешивания литералов с значениями из переменных:

WRITE |Hello, { lv_name }, nice to meet you!|.

Он также может форматировать такие вещи, как даты. Чтобы использовать формат даты входа в систему:

WRITE |The order was completed on { lv_date DATE = USER } and can not be changed|.

Поддерживаются вызовы функциональных методов и выражения:

WRITE |Your token is { to_upper( lv_token ) }|.
WRITE |Version is: { cond #( when lv_date < sy-datum then 'out of date' else 'up to date' ) }|.

Внимание! Прямое внедрение временных результатов (например, методов-вызовов) внутри шаблонов строк может привести к серьезным проблемам с производительностью (подробнее об этом читайте здесь ). Хотя использование его внутри редко исполняемых утверждений в порядке, это заставляет вашу программу быстро замедляться в циклах.

Конкатенация строк

Строковые и char-подобные переменные могут быть объединены с помощью команды ABAP CONCATENATE . Требуется дополнительная переменная для хранения результатов.

Пример:

CONCATENATE var1 var2 var3 INTO result.
"result now contains the values of var1, var2 & var3 stringed together without spaces

стенография

Более поздние версии ABAP предлагают очень короткий вариант конкатенации с использованием && (оператор цепочки).

DATA(lw_result) = `Sum: ` && lw_sum.

Внимание! Стоит отметить, что использование временных результатов в сочетании с оператором Chaining внутри петель может привести к огромным проблемам с производительностью из-за растущих инструкций по копированию (подробнее об этом здесь ).



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow