Вступ до ABAP: Типи даних, Operaтори та редактор – Підручник

⚡ Розумний підсумок

Вступ до ABAP охоплює мову SAP створено для створення застосунків у системі R/3. У цьому ресурсі пояснюються типи даних, оператори, керуючі оператори, внутрішня таблиця та редактор SE38, з якого починається кожна програма ABAP.

  • 🔤 Синтаксис оголошення: DATA variable_name TYPE variable_type оголошує кожну змінну в ABAP.
  • 🔢 Типи даних: I, F та P містять числа; C, D, N та T містять символи; X містить шістнадцяткові дані.
  • Operaторс: Арифметичні оператори змінюють значення, тоді як логічні оператори, такі як EQ, NE, GT та LT, керують рішеннями.
  • 🔁 Контрольні твердження: IF, CASE, WHILE та DO визначають, які рядки програми фактично виконуються.
  • 📋 Внутрішні таблиці: Внутрішня таблиця містить кілька рядків у пам'яті та є робочою конячкою кожного звіту ABAP.
  • 🖥️ Редактор: Транзакція SE38 – це редактор ABAP, де пишуться, перевіряються та виконуються програми.

Введення в SAP ABAP

Що таке ABAP?

ABAP розшифровується як Advanced Business Application Programming (розширене програмування бізнес-додатків). Це мова програмування для розробкиping заявки для SAP система R/3.

Найновіша версія ABAP називається ABAP Objects та підтримує об'єктно-орієнтоване програмування. SAP запускатиме програми, написані за допомогою ABAP/4, попередньої версії ABAP, а також програми, що використовують об’єкти ABAP.

Цей вступ не має на меті задокументувати все мова ABAP конструкція. Вона швидко знайомить вас з ключовими поняттями, щоб ви могли почати писати робочі програми, а потім перейти до складніших тем.

Типи даних

Кожна ABAP-програма починається з оголошення даних, з якими вона працюватиме.

Синтаксис для оголошення змінної в ABAP –

DATA Variable_Name TYPE Variable_Type.

приклад:

DATA employee_number TYPE I.

Нижче наведено список типів даних, що підтримуються ABAP.

Тип даних Початкова довжина поля Припустима довжина поля Початкове значення Сенс
Числові типи
I 4 4 0 Ціле число (ціле число)
F 8 8 0 Число з плаваючою комою
P 8 1 - 16 0 Запакований номер
Типи символів
C 1 1 - 65535 «…» Текстове поле (буквено-цифрові символи)
D 8 8 "00000000" Поле дати (формат: РРРРММДД)
N 1 1 - 65535 '0 ... 0' Числове текстове поле (цифрові символи)
T 6 6 "000000" Поле часу (формат: ГГММСС)
Шістнадцятковий тип
X 1 1 - 65535 X'0 … 0′ Шістнадцяткове поле

Вісім вищезазначених типів – це класичні типи фіксованої довжини. ABAP також пропонує два типи змінної довжини, з якими початківці знайомляться майже одразу: STRING для тексту будь-якої довжини та XSTRING для двійкових даних будь-якої довжини.

ABAP Operaторс

Після оголошення даних саме оператори змінюють їх та порівнюють.

Присвоєння значень

a = 16.
MOVE 16 TO a.
WRITE a TO b.

Усі три оператори переміщують значення. Знак рівності – це сучасна форма, тоді як MOVE та WRITE TO – це старіші еквіваленти, які ви все ще зустрінете у застарілих програмах.

Арифметичні дії

COMPUTE a = a * 100.

ABAP також підтримує ADD, SUBTRACT, MULTIPLY та DIVIDE як самостійні ключові слова, але форма COMPUTE, показана вище, використовується найчастіше.

Логічні оператори

Логічні оператори повертають значення true або false, і саме їх перевіряє кожен керуючий оператор у наступному розділі. Кожен з них має словоформу та символьну форму, і ці дві форми є взаємозамінними.

Форма слова Форма символу Сенс
EQ = Дорівнює
NE <> Не дорівнює
GT > Більш чим
GE >= Більше або дорівнює
LT < Less ніж
LE <= Less ніж або дорівнює

Контрольні заяви

Керуючі оператори використовують вищезгадані логічні оператори, щоб визначити, які рядки коду виконуватимуться та як часто.

ЯКЩО … КІНЕЦЬ ЯКЩО

IF [NOT] exp [ AND / OR [NOT] exp ].
  ........
[ELSEIF exp.
  .......]
[ELSE.
  .......]
ENDIF.

Оператор CASE

CASE variable.
  WHEN value1.
    .........
  WHEN value2.
    .........
  [WHEN OTHERS.
    .........]
ENDCASE.

Цикл WHILE

WHILE <logical expression>.
  .....
ENDWHILE.

цикл DO

DO <n> TIMES.
  .....
ENDDO.

Цикл WHILE виконується доти, доки виконується його умова. Цикл DO виконується фіксовану кількість разів або нескінченно, доки його не зупинить оператор EXIT.

Внутрішні таблиці в ABAP

Одних змінних рідко буває достатньо. Бізнес-програми зчитують багато рядків одночасно, а внутрішня таблиця — це структура, яка зберігає їх у пам'яті.

Внутрішня таблиця — це динамічний масив. Вона не має фіксованого розміру, існує лише протягом виконання програми та є стандартним способом переміщення рядків між базою даних та екраном.

" Declare an internal table and a work area
DATA: lt_employees TYPE TABLE OF pa0001,
      ls_employee  TYPE pa0001.

" Fill it from the database
SELECT * FROM pa0001 INTO TABLE lt_employees UP TO 10 ROWS.

" Read it row by row
LOOP AT lt_employees INTO ls_employee.
  WRITE: / ls_employee-pernr, ls_employee-ename.
ENDLOOP.

Три вищезазначені операції охоплюють більшість повсякденної роботи: оголошення таблиці, заповнення її за допомогою SELECT, а потім виконання циклу LOOP AT. APPEND додає рядок, READ TABLE знаходить рядок, а DELETE видаляє рядки, що відповідають умові.

Редактор ABAP/4

Весь вищезазначений синтаксис набрано в одному місці.

Угода SE38 відкриває редактор ABAP, де ви як розробник проводитимете більшу частину свого часу, створюючи та змінюючи програми.

Редактор ABAP/4

Редактор ABAP/4, транзакція SE38

Як написати свою першу програму ABAP

На екрані вище показано наступні кроки. Наведена нижче послідовність дозволяє створити робочий звіт за кілька хвилин.

  1. Відкрийте редактор. Введіть код транзакції SE38 , SAP Поле команди графічного інтерфейсу та натисніть Enter.
  2. Назвіть програму. Введіть ім'я, що починається з Z or YНаприклад ZHELLO_WORLDЦі дві літери — це простір імен клієнта, і SAP гарантує, що вони ніколи не будуть перезаписані під час оновлення.
  3. Створіть його. Натисніть Створити, введіть короткий опис і виберіть Виконувана програма як тип.
  4. Призначити пакет. Оберіть Локальний об'єкт для практичної роботи. Локальний об'єкт залишається у вашій системі та не потребує запиту на транспортування.
  5. Напишіть код.
REPORT zhello_world.

DATA employee_name TYPE string.
employee_name = 'Guru99'.

WRITE: / 'Hello, ABAP!',
       / 'Welcome', employee_name.
  1. Перевірте синтаксис. Преса Ctrl + F2У рядку стану повідомляється про будь-яку помилку та рядок, який її спричинив.
  2. Активуйте програму. Преса Ctrl + F3Неактивна програма не може працювати.
  3. Виконати. Преса F8Відкриється список виводу, в якому відображаються обидва рядки WRITE.

Коса риска в операторі WRITE змушує перехід на новий рядок. Її видалення друкує все в одному рядку, що є першою звичкою форматування, яку засвоює більшість новачків.

Звичайна транзакція ABAP Codes

Кілька кодів транзакцій охоплюють майже все, що потрібно новачкові ABAP-розробнику.

Угода Мета
SE38 Редактор ABAP. Створення, редагування, перевірка та запуск програм.
SE80 Навігатор об'єктів. Єдине робоче місце для програм, класів, пакетів та екранів.
SE11 Словник ABAP. Визначення та перевірка таблиць бази даних, елементів даних та доменів.
SE16N Браузер даних. Перегляд вмісту будь-якої таблиці без написання оператора SELECT.
SE37 Конструктор функцій. Створення та тестування функціональних модулів.
SE24 Конструктор класів. Створення глобальних класів для об'єктів ABAP.
ST22 Аналіз дампа. Зчитування помилки виконання під час завершення програми.

SE38 та SE11 достатньо для створення першого звіту. ST22 стає найціннішим у групі в момент збою програми.

Поширені запитання

Z та Y утворюють простір імен клієнта. SAP ніколи не постачає об'єкти з цими префіксами, тому оновлення не може перезаписати вашу програму. Імена поза цим простором імен ризикують бути заміненими.

ABAP/4 — це процедурна версія, побудована на звітах та підпрограмах. Об'єкти ABAP додають класи, інтерфейси та успадкування. Обидва працюють в одній системі, тому старий та новий код співіснують.

Використовуйте P, упакований тип. Він точно зберігає десяткові дроби, що й потрібно для грошей. Тип F — це число з плаваючою комою, яке вводить помилки округлення, що роблять фінансові підсумки ненадійними.

Так. Помічник ШІ може пояснити дамп, перекласти псевдокод у ABAP та запропонувати чистіший LOOP. Завжди запускайте перевірку синтаксису, оскільки згенерований код може посилатися на таблиці, яких бракує у вашій системі.

Не без перевірки. Згенерований код часто ігнорує перевірки авторизації, правила продуктивності та список API, випущених ABAP Cloud. Ставтеся до нього як до першого чернетки, а потім тестуйте його, як будь-який інший код.

Підсумуйте цей пост за допомогою: