SAP ABAP - Переменные
Переменные - это именованные объекты данных, используемые для хранения значений в выделенной области памяти программы. Как следует из названия, пользователи могут изменять содержимое переменных с помощью операторов ABAP. Каждая переменная в ABAP имеет определенный тип, который определяет размер и структуру памяти переменной; диапазон значений, которые можно сохранить в этой памяти; и набор операций, которые можно применить к переменной.
Вы должны объявить все переменные, прежде чем их можно будет использовать. Основная форма объявления переменной -
DATA <f> TYPE <type> VALUE <val>.
Здесь <f> указывает имя переменной. Имя переменной может содержать до 30 символов. <type> указывает тип переменной. Любой тип данных с полностью указанными техническими атрибутами известен как <тип>. <val> указывает начальное значение переменной <f>. Если вы определяете элементарную переменную фиксированной длины, оператор DATA автоматически заполняет значение переменной начальным значением, зависящим от типа. Другие возможные значения для <val> могут быть литералом, константой или явным предложением, например Is INITIAL.
Ниже приведены действительные примеры объявления переменных.
DATA d1(2) TYPE C.
DATA d2 LIKE d1.
DATA minimum_value TYPE I VALUE 10.
В приведенном выше фрагменте кода d1 - это переменная типа C, d2 - это переменная типа d1, а minimum_value - это переменная целочисленного типа ABAP I.
В этой главе объясняются различные типы переменных, доступные в ABAP. В ABAP есть три типа переменных:
- Статические переменные
- Справочные переменные
- Системные переменные
Статические переменные
Статические переменные объявляются в подпрограммах, функциональных модулях и статических методах.
Время жизни связано с контекстом объявления.
С помощью оператора CLASS-DATA вы можете объявлять переменные внутри классов.
Оператор 'PARAMETERS' может использоваться для объявления объектов элементарных данных, которые связаны с полями ввода на экране выбора.
Вы также можете объявить внутренние таблицы, связанные с полями ввода на экране выбора, используя оператор SELECT-OPTIONS.
Ниже приведены соглашения, используемые при именовании переменной:
Для имен переменных нельзя использовать специальные символы, такие как «t» и «,».
Имя предопределенных объектов данных изменить нельзя.
Имя переменной не может совпадать с каким-либо ключевым словом или предложением ABAP.
Имя переменных должно передавать значение переменной без дополнительных комментариев.
Дефисы зарезервированы для обозначения компонентов структур. Поэтому в именах переменных следует избегать дефисов.
Символ подчеркивания можно использовать для разделения составных слов.
Эта программа показывает, как объявить переменную с помощью оператора PARAMETERS -
REPORT ZTest123_01.
PARAMETERS: NAME(10) TYPE C,
CLASS TYPE I,
SCORE TYPE P DECIMALS 2,
CONNECT TYPE MARA-MATNR.
Здесь NAME представляет параметр из 10 символов, CLASS указывает параметр целочисленного типа с размером по умолчанию в байтах, SCORE представляет параметр упакованного типа со значениями до двух десятичных знаков, а CONNECT относится к типу MARA-MATNF словаря ABAP. .
Приведенный выше код дает следующий вывод -
Справочные переменные
Синтаксис объявления ссылочных переменных -
DATA <ref> TYPE REF TO <type> VALUE IS INITIAL.
В дополнении REF TO объявляется ссылочная переменная ref.
В спецификации после REF TO указывается статический тип ссылочной переменной.
Статический тип ограничивает набор объектов, на которые может ссылаться <ref>.
Динамический тип ссылочной переменной - это тип данных или класс, к которому она в настоящее время относится.
Статический тип всегда более общий или такой же, как динамический тип.
Добавление TYPE используется для создания связанного ссылочного типа и в качестве начального значения, и после добавления VALUE можно указать только IS INITIAL.
пример
CLASS C1 DEFINITION.
PUBLIC SECTION.
DATA Bl TYPE I VALUE 1.
ENDCLASS. DATA: Oref TYPE REF TO C1 ,
Dref1 LIKE REF TO Oref,
Dref2 TYPE REF TO I .
CREATE OBJECT Oref.
GET REFERENCE OF Oref INTO Dref1.
CREATE DATA Dref2.
Dref2→* = Dref1→*→Bl.
В приведенном выше фрагменте кода объявлены ссылка на объект Oref и две ссылочные переменные данных Dref1 и Dref2.
Обе ссылочные переменные данных полностью типизированы и могут быть разыменованы с помощью оператора разыменования → * в позициях операндов.
Системные переменные
Системные переменные ABAP доступны из всех программ ABAP.
Эти поля фактически заполняются средой выполнения.
Значения в этих полях указывают на состояние системы в любой момент времени.
Вы можете найти полный список системных переменных в таблице SYST в SAP.
Доступ к отдельным полям структуры SYST можно получить, используя «SYST-» или «SY-».
пример
REPORT Z_Test123_01.
WRITE:/'SY-ABCDE', SY-ABCDE,
/'SY-DATUM', SY-DATUM,
/'SY-DBSYS', SY-DBSYS,
/'SY-HOST ', SY-HOST,
/'SY-LANGU', SY-LANGU,
/'SY-MANDT', SY-MANDT,
/'SY-OPSYS', SY-OPSYS,
/'SY-SAPRL', SY-SAPRL,
/'SY-SYSID', SY-SYSID,
/'SY-TCODE', SY-TCODE,
/'SY-UNAME', SY-UNAME,
/'SY-UZEIT', SY-UZEIT.
Приведенный выше код дает следующий вывод -
SY-ABCDE ABCDEFGHIJKLMNOPQRSTUVWXYZ
SY-DATUM 12.09.2015
SY-DBSYS ORACLE
SY-HOST sapserver
SY-LANGU EN
SY-MANDT 800
SY-OPSYS Windows NT
SY-SAPRL 700
SY-SYSID DMO
SY-TCODE SE38
SY-UNAME SAPUSER
SY-UZEIT 14:25:48