Простые типы
Типы данных делятся на три категории: стандартные, локальные и глобальные.
Стандартные типы бывают фиксированной, заданной или переменной длины.
Стандартные типы могут использоваться для определения локальных типов данных. Локальные типы существуют только в программе и могут использоваться только в ней. Локальный тип определяется служебным словом TYPES.
Глобальные типы определяются в ABAP-словаре и могут использоваться во всей системе (во всей рассматриваемой SAP-системе).
Структуры
Структуры содержат фиксированное число полей и служат для объединения простых полей в более сложный, например, данные о сотруднике. Структуры объявляются служебными словами BEGIN OF и END OF.
Аналогично можно объявить тип структуры, чтобы в дальнейшем использовать его для объявления полей.
Для обращения к полю структуры надо указать её имя и через дефис имя поля.
Системные поля
В системе предусмотрена глобальная структура SYST, которая хранит системные данные. Доступ к ней в программе осуществляется по имени SY. Некоторые значения системных переменных указаны ниже.
Типы данных делятся на три категории: стандартные, локальные и глобальные.
Стандартные типы бывают фиксированной, заданной или переменной длины.
Фиксированной длины | |
D | Дата (Date) |
Формат – ГГГГММДД | |
Длина – 8 | |
Значение по умолчанию – ‘00000000’ | |
T | Время (Time) |
Формат – ЧЧММСС | |
Длина – 6 | |
Значение по умолчанию – ‘000000’ | |
I | Целое число (Integer) |
Длина – 4 | |
Значение по умолчанию – 0 | |
F | Число с плавающей запятой (Float) |
Длина – 8 | |
Значение по умолчанию – 0.0 | |
Заданной длины | |
C | Последовательность символов (Character) |
Длина по умолчанию – 1 | |
Значение по умолчанию – ‘’ (пустая строка) | |
N | Последовательность числовых символов (Numericalcharacter) |
Длина по умолчанию – 1 | |
Значение по умолчанию – ‘0’ | |
X | Байтовая последовательность (Hexadecimal) |
Длина по умолчанию – 1 | |
Значение по умолчанию – ‘00’ | |
P | Упакованное число (Packed number) |
Длина по умолчанию – 8 | |
Значение по умолчанию – 0 | |
Переменной длины | |
STRING | Последовательность символов переменной длины (String) |
XSTRING | Байтовая последовательность переменной длины (Hexadecimal string) |
Поле – это переменная, которая хранит данные. Поля объявляются служебным словом DATA с указанием типа данных, а также длины и количества десятичных разрядов, если это применимо.
" Объявление поля name символьного типа длиной 30 символов DATA name TYPE c LENGTH 30. " Также длину поля можно указать в скобках DATA name(30) TYPE c. " Можно задать начальное значение поля служебным словом VALUE DATA name(30) TYPE c VALUE 'John'. " Если не указан тип поля, по умолчанию используется " символьный тип C DATA name(30) VALUE 'John'. " Если не указана длина поля, используется длина по умолчанию " для указанного типа DATA flag TYPE c. " Объявление поля flag символьного типа длиной 1 символ DATA flag. " Объявление поля count целого типа DATA count TYPE i. " Объявление поля amount упакованного типа длиной 10 " с количеством десятичных разрядов 3 DATA amount(10) TYPE p DECIMALS 3.
Объявление нескольких полей можно объединить, поставив после DATA двоеточие и записав объявление полей через запятую.
DATA: name(30), count TYPE i, flag.
При объявлении упакованного типа надо учитывать, что на один символ приходится полбайта, включая знак числа. Т.е. при указании длины 10 подразумевается, что итоговая разрядность числа будет 16 (1 символ определяет знак числа +/-, 3 символа приходится на десятичную часть и оставшиеся 16 символов – на целую часть). Таким образом, диапазон чисел, которые может хранить поле amount из последнего примера от -9 999 999 999 999 999,999 до 9 999 999 999 999 999,999.
Чтобы определить поле того же типа, что и ранее объявленное, вместо TYPE используется LIKE.
Чтобы определить поле того же типа, что и ранее объявленное, вместо TYPE используется LIKE.
DATA: first_name(50) TYPE c, last_name LIKE first_name.
Константа определяется словом CONSTANTS с указанием типа, длины и числа десятичных разрядов аналогично объявлению полей. Дополнение VALUE для константы обязательно. Таким образом определяется её значение.
CONSTANTS name_john TYPE c LENGTH 30 VALUE 'John'.
Стандартные типы могут использоваться для определения локальных типов данных. Локальные типы существуют только в программе и могут использоваться только в ней. Локальный тип определяется служебным словом TYPES.
" Определяется символьный тип длиной 30 символов TYPES t_name(30). " Определяется поле типа t_name DATA name TYPE t_name.
Глобальные типы определяются в ABAP-словаре и могут использоваться во всей системе (во всей рассматриваемой SAP-системе).
Структуры
Структуры содержат фиксированное число полей и служат для объединения простых полей в более сложный, например, данные о сотруднике. Структуры объявляются служебными словами BEGIN OF и END OF.
DATA: BEGIN OF employee, first_name(50), last_name(50), birthday TYPE d, END OF employee.
TYPES: BEGIN OF t_employee, first_name(50), last_name(50), birthday TYPE d, END OF t_employee. DATA: employee TYPE t_employee.
Для обращения к полю структуры надо указать её имя и через дефис имя поля.
employee-first_name = 'John'. employee-last_name = 'Smith'. employee-birthday = '19820101'.
Системные поля
В системе предусмотрена глобальная структура SYST, которая хранит системные данные. Доступ к ней в программе осуществляется по имени SY. Некоторые значения системных переменных указаны ниже.
SY-DATUM | Актуальная дата сервера приложений |
SY-UZEIT | Актуальное время сервера приложений |
SY-INDEX | Счетчик цикла DO |
SY-TABIX | Индекс в цикле LOOP |
SY-SUBRC | Код возврата, содержит результат последней выполненной операции. SY-SUBRC = 0 в случае успешного выполнения. |
SY-LANGU | Язык входа в систему |
SY-BATCH | Программа выполняется в фоновом режиме |
SY-BINPT | Программа выполняется в рамках пакетного ввода |
SY-REPID | Имя текущей программы |
SY-UNAME | Имя пользователя |
Спасибо!
ОтветитьУдалитьПожалуйста!
Удалить