SAP ABAP - Константы и литералы
Литералы - это безымянные объекты данных, которые вы создаете в исходном коде программы. Они полностью определяются своей ценностью. Вы не можете изменить значение литерала. Константы - это именованные объекты данных, созданные статически с помощью декларативных операторов. Константа объявляется путем присвоения ей значения, которое хранится в области памяти программы. Значение, присвоенное константе, не может быть изменено во время выполнения программы. Эти фиксированные значения также можно рассматривать как литералы. Есть два типа литералов - числовые и символьные.
Числовые литералы
Числовые литералы - это последовательности цифр, которые могут иметь знак префикса. В числовых литералах нет десятичных разделителей и нет записи с мантиссой и экспонентой.
Ниже приведены несколько примеров числовых литералов -
183. 
-97. 
+326.Символьные литералы
Символьные литералы - это последовательности буквенно-цифровых символов в исходном коде программы ABAP, заключенные в одинарные кавычки. Символьные литералы, заключенные в кавычки, имеют предопределенный тип ABAP C и описываются как литералы текстового поля. Литералы, заключенные в «обратные кавычки», имеют тип ABAP STRING и описываются как строковые литералы. Длина поля определяется количеством символов.
Note - В литералах текстовых полей завершающие пробелы игнорируются, но в строковых литералах они учитываются.
Ниже приведены некоторые примеры символьных литералов.
Литералы текстового поля
REPORT YR_SEP_12. 
Write 'Tutorials Point'. 
Write / 'ABAP Tutorial'.Литералы строкового поля
REPORT YR_SEP_12. 
Write `Tutorials Point `. 
Write / `ABAP Tutorial `.Результат одинаков в обоих вышеупомянутых случаях -
Tutorials Point  
ABAP TutorialNote- Когда мы пытаемся изменить значение константы, может возникнуть синтаксическая ошибка или ошибка времени выполнения. Константы, которые вы объявляете в части объявления класса или интерфейса, принадлежат статическим атрибутам этого класса или интерфейса.
Заявление CONSTANTS
Мы можем объявить названные объекты данных с помощью оператора CONSTANTS.
Ниже приводится синтаксис -
CONSTANTS <f> TYPE <type> VALUE <val>.Оператор CONSTANTS аналогичен оператору DATA.
<f> указывает имя константы. TYPE <type> представляет константу с именем <f>, которая наследует те же технические атрибуты, что и существующий тип данных <type>. VALUE <val> присваивает начальное значение объявленному имени константы <f>.
Note- Мы должны использовать предложение VALUE в заявлении CONSTANTS. Предложение «VALUE» используется для присвоения константе начального значения во время ее объявления.
У нас есть 3 типа констант, такие как элементарные, комплексные и ссылочные константы. Следующий оператор показывает, как определять константы с помощью оператора CONSTANTS:
REPORT YR_SEP_12. 
CONSTANTS PQR TYPE P DECIMALS 4 VALUE '1.2356'. 
Write: / 'The value of PQR is:', PQR.Выход -
The value of PQR is: 1.2356Здесь он относится к элементарному типу данных и известен как элементарная константа.
Ниже приведен пример сложных констант -
BEGIN OF EMPLOYEE,  
Name(25) TYPE C VALUE 'Management Team',  
Organization(40) TYPE C VALUE 'Tutorials Point Ltd',  
Place(10) TYPE C VALUE 'India',  
END OF EMPLOYEE.В приведенном выше фрагменте кода EMPLOYEE - это сложная константа, состоящая из полей Name, Organization и Place.
Следующий оператор объявляет постоянную ссылку -
CONSTANTS null_pointer TYPE REF TO object VALUE IS INITIAL.Мы можем использовать постоянную ссылку при сравнении или можем передать ее процедурам.