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