Як вивчитися на АВАРера?

Привіт, Хабр!

Почну з головного — ABAP-розробники потрібні. А для тих хто сумнівається — тільки за останні півтора місяці на HH з'явилося понад 100 вакансій, в тому числі від провідних російських і світових брендів.

ABAP виник у 80-ті роки двадцятого століття і продовжує розвиватися. За три десятки років він увібрав в себе безліч парадигм програмування — тут і процедурне, і подієво-орієнтоване і об'єктно-орієнтоване — все це в рамках структурного програмування в стилі Дэйкстры (з неодмінними ENDIF, ENDCASE, різними іншими ENDЧТОТОТАМ і навіть ENDSELECT, незвичним для знавців SQL). Велика кількість парадигм значно розширює кругозір, але трохи ускладнює вивчення мови.

В принципі, якщо серед вас є ентузіасти, вони можуть вчити його і по стандартній документації. Хоча це не так просто: потрібно писати свої програми, потрібна система, яка постане не на будь-яке залізо і не забуваємо про ліцензії, але найсумніше, що це довго. Документації багато, і не від вогкості — мову за три десятки років увібрав у себе багато чого, а викинути старе не легко: є така «священна корова» — сумісність версій. Для вивчення ABAP SAP була розроблена спеціальна програма курсів, охоплення тим якій з одного боку дещо перевершує Академію для консультантів TAW10/TAW20, з іншого успішне засвоєння достатньо для сертифікації Associate development consultant. Які курси потрібні і навіщо? Спробую відповісти на ці питання, коротко опишу, через що і, головне, в якому порядку, доведеться пройти новачкам, ну і, звичайно, готовий відповісти на питання. З вами я — ABAP-тренер, since 1998.

Отже, почнемо! Якщо ви не знайомі з пристроєм SAP платформи в цілому, то починати потрібно з букваря. Курс під кодовому назвою «SAPTECE. Введення в архітектуру SAP NetWeaver» потрібен, щоб розуміти, як SAP працює. Він дає загальні відомості про архітектуру технологічній платформі SAP NetWeaver: що таке інстанція сервера додатків, чим вона займається, що таке робочий процес, які вони бувають і чому так багато, що таке розробка, мандант, системний ландшафт, транспортна система і що вона робить, самі загальні відомості про інтеграційні можливості.

Наступний етап це «BC400E. ABAP інструментальні засоби: основи» . Вчимо матчастину! АВАРером після цього курсу, на жаль, поки не станеш, але простенькі програмки писати вже можна: обчислення, звернення до бази даних, нескладні діалоги. Курс дає введення в інструментарій розробника та загальні відомості про мову ABAP, про декларування даних про основних операторів, про модуляризації (а в ABAP існує п'ять категорій процесингових блоків, дві з них не можуть бути викликані з-під ABAP), а також початкові відомості про роботу з базою даних, програмування інтерфейсів користувача і початкові відомості про технології розширення системи. По ходу курсу пишеться близько чверті сотні програм: наприклад, арифметичний калькулятор (не бійтеся, не кнопковий) пишеться багато разів і по-різному, створюється кілька діалогових транзакцій, наприклад, ось така, двухэкранная:



На місці з'ясовуємо, що таке транзакція в розумінні ABAP (думаєте atomicity, consistency, isolation, and durability?… ммм, аж ніяк), і які вони бувають, крім діалогових. Курс призначений для розробників, але в цілому підійде для майбутніх адміністраторів і буде корисний тим, хто планує спеціалізуватися в області інтеграційних технологій і тим, кому за родом своєї діяльності доводиться пояснюватися з АВАРерами.

Звичайно, прості звіти можна писати і в процедурному або подієво-орієнтованому стилі. Однак об'єктно-орієнтоване програмування використовується в нових SAP розробках повсюдно. Зокрема, створено багато класів, що здійснюють елегантне пред'явлення даних. Набагато простіше використовувати ці готові класи, ніж щоразу винаходити велосипед. Крім того, нові технології розширень широко використовують об'єктно-орієнтоване програмування. Та й взагалі це тепер магістральний напрям у ABAP, так що хочеш – не хочеш, а знати доведеться. Курс «BC401E. ABAP об'єкти» висвітлює особливості об'єктно-орієнтованого програмування на ABAP: розглядаються синтаксичні конструкції, інструменти та деякі напрямки використання. Об'єктно-орієнтований ABAP не має множинного спадкування, замість чого застосовуються інтерфейси, так що цей курс буде більш зрозумілий java-розробників. Ось так, наприклад, виглядає класова діаграма фінального вправи:



Легко здогадатися, що набагато простіше визначити типи даних з відповідними до них интерактивностями централізовано, на рівні створення описів, ніж кожен раз програмувати. SAP-системи містять центральне місце, де описані різні типи даних часто використовуються інтерактивні служби — Словник. Його декларації багаторазово спрощує подальше програмування. Якщо вже на чомусь економити, то не на вивченні словника, оскільки імперативні мови програмування все-таки більш або менш схожі, а Словник – це окрема «родзинка». На курсі «BC430E. Словник-довідник даних» розглядаються визначення доменів, елементів даних, структур, типів табличних, таблиць у базі даних, ракурсів бази та ведення, кластерів ведення, пошукових механізмів і механізмів забезпечення цілісності даних: фіксованих значень доменів і зовнішніх ключів.

Повільно, але впевнено ми рухаємося до мети — підібралися до курсу «BC402E. Поглиблене ABAP програмування» про те, як писати не дуже погані програми. Тут піднімаються тонкі питання, важливі для написання ефективних програм: пристрій пам'яті, виклик програм, декларування і передача даних і параметрів, динамічні конструкції програмування, динамічне визначення типів і динамічне створення даних, також наводиться додаткові відомості щодо операторам Open SQL і деякі інші смаколики.
Навіщо ж потрібен динамізм? Ну от є така таблиця, BSEG, вона містить позиції фінансових документів. В ній, наприклад, близько 340 полів. Зрозуміло, що пересічному користувачеві потрібні значення далеко не всіх полів. Можна одержати дані у внутрішню таблицю повної структури, але така структура буде надмірною, адже користувачеві потрібні не всі дані, а зберігати порожнє місце – це занадто марнотратно по пам'яті. Можна було б визначити заздалегідь декілька структур, що комбінують потрібні поля в потрібному порядку. Але таких комбінацій (кількість підмножин множини з 340 елементів) буде 2^(340-1) – 1 ~ 10^(329). Це дуже велике число. Для порівняння, число атомів в спостережуваної всесвіту оцінюється як ~ 10^(81). Тобто заздалегідь створити всі можливі опису практично неможливо. Ось в такому разі і доведеться для економного витрачання пам'яті динамічно створювати тип даних потрібний саме під цю вибірку.
Рухаємося далі. Класичні екрани складають основу візуального інтерфейсу SAP-систем. Існує кілька способів створити різні способи їх перетворення в html. Але досі основа стандартних діалогів саме вони. Та й взагалі треба знати, як створюються діалоги. Курс «ВС410. Розробка діалогових програм» висвітлює технологію стандартних діалогових екранів Dynpro. Цей курс потрібен всім тим, хто буде створювати діалоги. Серед іншого буде розглянуто програмування подэкранов, картотечних блоків та екранних таблиць, програмування реакції на помилки. Весь тиждень буде писатися одна одноэкранная діалогова транзакція. Приблизно ось з таким екраном.



Щось подібне вже було в курсі BC400E? Там був грід, навігація по якому обробляється локально на клієнтському робочому місці, стало бути сервер додатків (і виконується на ньому ABAP-програма) нічого не знає про навігацію. Тут же екранна таблиця, навігація по якій обробляється на сервері додатків. Відповідно транзакції, що використовують екранні таблиці можуть бути придатні для пакетного введення. Плюс програмування картотечних блоків, перевірок коректності введення, так і інші прибамбаси.

Звичайно, у власників SAP-систем є можливість і право модифікувати програми у відповідності зі специфічними вимоги свого бізнесу. А от коли від SAP прийде нова версія програмного забезпечення, тут починається коригування модифікацій (modification adjustment). Прийняти рішення потрібно по кожній з модифікацій. SAP передбачив набір технологій, що дозволяє так змінювати роботу стандартного програмного забезпечення, що коригування модифікацій не потрібно. Це і називається розширенням. Курс«BC425E. Розширення і модифікації» розглядає класичні технології розширень: розширення словникових визначень, кастомер-экзиты і BAdI. Крім розширення програм, розглядаються розширення меню і екранів, також розглядаються модифікації, у тому числі юзер-экзиты. Курс потрібен всім, хто буде збагачувати стандарт власними розширеннями.

Для доступу до стандартної функціональності SAP, використовує класичні екрани, описані в курсі BC410E потрібне спеціальне програмне забезпечення SAP GUI. Таке ПЗ встановлюється на робочих місцях співробітників. Але важко очікувати, що будь-який клієнт, що бажає переглянути, наприклад, прайс-лист компанії, буде встановлювати у себе цей самий SAP GUI. А ось Web-браузери – річ, поширена практично повсюдно. Інтерфейс Web Dynpro дозволяє здійснювати доступ до функціональності SAP безпосередньо з web-браузера. Так ось курс «NET310E. Основи ABAP Web Dynpro» дає початкові відомості про технології і вчить створювати досить розвинені програми. Розглядаються наступні теми: компоненти архітектури, визначення зовнішнього формату, програмування контролерів, модуляризація Web Dynpro, динамічна модифікація, конфігурація, персоналізація, розширення. Ось приклад Web Dynpro додатки з цього курсу:



В цілому, я описав основні курси з ABAP, всі вони входячи в програму «ABAP2 Сертифікований АВАРер». Є й інші тренінги з більш вузьким і навпаки широким питань з дистанційним навчанням.

Успіхів!

Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.