Как выучиться на ABAPера?

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

    Начну с главного — 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), а также первоначальные сведения о работе с базой данных, программировании интерфейсов пользователя и самые начальные сведения о технологиях расширения системы. По ходу курса пишется около четверти сотни программ: например, арифметический калькулятор (не бойтесь, не кнопочный) пишется много раз и всё по-разному, создается несколько диалоговых транзакций, например, вот такая, двухэкранная:



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

    Конечно, простые отчеты можно писать и в процедурном или событийно-ориентированном стилях. Однако объектно-ориентированное программирование используется в новых 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 Сертифицированный ABAPер». Есть и другие тренинги по более узким и наоборот широким вопросам с дистанционным обучением.

    Успехов!
    SAP
    Лидер рынка корпоративных приложений

    Похожие публикации

    Комментарии 28

      +8
      На практике все проще: консалтинговые компании нанимают себе стажёров на небольшую зарплату и сразу же их в бой на проект в крупную компанию, при этом не заботясь о качестве предоставляемых услуг берут за них по тарифу как за специалиста ABAP. Получаем через некоторое время либо хорошего, либо плохого специалиста.
        +2
        Не про SAP, но из той же области.
        Мне рассказывали, что OEBS в одной из крупнейшей компании России внедряли подобным образом: выделили команду от интегратора, команду для обучения от компании. Пришёл интегратор, сел на стул, достали учебники, стали учить OEBS.
        0
        Доступна ли в свободном доступе среда для обучения? Вроде Oracle XE, только от SAP
          0
          Погуглите SAP IDES или SAP mini for ABAP. Про лицензирование точно не знаю, но последний вроде как можно использовать для обучения.
            0
            SAP IDES доступен для партнеров и клиентов SAP. Можно загрузить с портала support.sap.com и использовать для учебных целей. Коммерческое использование SAP IDES запрещено в соответствии с условиями лицензионного соглашения.
            0
            Можно пользоваться учебной системой под конкретный курс — так называемый Live Access, который доступен подписчикам онлайн платформы по обучению SAP Learning Hub или скоро будет доступен вместе с курсом (обучился и тренируйся после месяца). Подробней тут: training.sap.com/shop/live-access
          0
          А что это за новые буковка «E» в имени каждого курса, и цены какие-то странные от 27 т.р. Раньше более менее стоящий курс стоил от 2000 евро.
          P.S. понял, вечерний курс, для периферии не вариант.
            0
            Новый код означает вечернее обучение (E-evening), а стоимость в вечернее время удалось оптимизировать и сделать более доступной. А для участников из других городов предусмотрен виртуальный формат, главное сообщить заранее желаемый модуль.
              0
              А у вас почему то в промо нет нигде ни слова про виртуальный формат.
              Не пишу вам в личку, потому что думаю другим тоже будет интересно узнать -расскажите про виртуальный подробнее (как, когда, сколько стоит).
                0
                Возможность удаленного участия есть на большинстве курсов SAP.

                Как: Участники подключаются к очному курсу через виртуальную комнату, получая доступ к учебным материалам, презентации тренера и системе. Есть возможность задавать свои вопросы и слышать вопросы тех, кто в классе, в ходе обучения. До 8 июля желательно сообщить, к какому модулю хотите присоединиться.
                Когда и сколько: Даты и цены те же, что и на очное обучение (обращаем внимание, что цены указаны без НДС).Только учитывайте часовые пояса – старт каждый вечер в 18.00 по МСК.
            0
            Все ничего, но меня обучили ABAP бесплатно + самообучение и давали маленькие задания для уже рабочего проекта, в итоге потом работал программером и админом кластера. Но жизнь повернулась в другую сторону и уже как 8 лет я этим не занимаюсь, да и не нужно все равно в нашем регионе ABAP'еры не нужны.
              0
              Свыше ста вакансий, а удаленки нет.
                +1
                Работают и по удаленке. Но нужно понимать, что работодатели любят контролировать рабочее время сотрудников и в описаниях вакансий о такой возможности предпочитают не упоминать.
                +4
                Я бы вам порекомендовал писать не ракламные посты, а написать нормальную интегрированную IDE, а то все так в 80-х и осталось — глаза сломаешь. Или IDE сделайте отдельным компонентом, чтобы больше операций локально кешировалось и на сервер отдавалось постепенно. Получается в зависитмости от загруженности канала, сохранение кода идет секунды, а в сулчае обрыва связи, так вообще все, что не было сохранено теряется — очень удобно! Да и в целом там мега дружелюбный UI, в духе тех же 80-х. Я видел ABAP код и SAP лет 5 назад, тогда только появилась подсветка синтаксиса, и свертка блоков. Подсветка синтаксиса появилась в конце нулевых! В конце нулевых, Карл!
                  +1
                  Подсветка цветом имеется, но нужно поставить новую версию SAP GUI.Кроме того, существуют темы для Eclipse для SAP-разработок, в частности тема для ABAP-разработок. На данный момент там можно делать отчеты, классы и интерфейсы.
                    0
                    Как-то странный ответ про подсветку. Перепишу свою мысль:
                    "- Вы слишком отстали, подсветка синтаксиса появилась в конце нулевых. (Утверждение)
                    — Подсветка цветом имеется, но нужно поставить новую версию SAP GUI."

                    Такое ощущение, что вы отвечали на вопрос «есть ли у подсветка синтаксиса».
                      0
                      Да, мы были невнимательны. Извините, пожалуйста
                  0
                  Хм. С удовольствием изучил бы Abap. Но отдавать 55 т.р. только за ознакомительный, по сути, курс(я читал BC400) как-то не готов :(
                    +1
                    оно того стоит, кроме того быстро окупится.
                      0
                      Как быстро? Сколько может получать abap'ер после курса BC400 и без какого либо опыта работа разработчиком abap?
                      Мне действительно интересно, я был бы готов сменить то, чем сейчас занимаюсь(тоже связанное с sap) на abap, но терять в деньгах из-за этого не хочу.
                        0
                        в масштабах полугода на мой взгляд данная инвестиция в себя может начать приносить прибыль.
                        здесь есть элемент удачи — если повезёт попасть на хороший проект, хорошо себя проявить, то может и быстрее.
                      0
                      Курса BC400 будет недостаточно, чтобы стать АБАПером. Чтобы начать профессиональную деятельность нужно пройти курсы BC400 + BC401 + BC430 + BC402, длятся они в общей сложности 7,5 недель. Но, как отметили ниже, это инвестиция в развитие вашей карьеры.
                        0
                        200 т.р.
                        Ок.
                        Исправьте заголовок: «Как выучиться на ABAPера — за 200 тысяч рублей».
                      0
                      Все абаперы и саперы смеются над вашим топиком. Просто потому что в курсе.
                      Но если отбросить специфику, то есть следующие факты:
                      1. Сто вакансий за полтора месяца = чуть больше 2 рабочих мест день. На всю Россию. Только по хх, но другие сайты можно не брать в расчет, так как рекрутеры спамят о вакансии везде. Абаперов без работы со стажем 5+ лет пруд пруди — можно убедится на профильных форумах.
                      2. Зарплата абапера 120т. Ведущего абапера 160т. Это средние, максимальные выше. Но можно сходить на хх и посмотреть на средние зарплаты программистов, которым не нужны дорогостоящие курсы на 2 месяца.
                        0
                        Я искренне удивлен, что этот здравомыслящий комментарий появился только сегодня. Как очень точно подметил коллега на профильном форуме: с появлением «вечернего» абапа, заниматься им стало поздно во всех смыслах этого слова"
                        Сам язык учится быстро, при наличии заинтересованности у ученика и квалифицированного учителя.Самому платить за курсы можно только родственнику миллионера. При этом, обучаясь в сап за такие-то деньжищи, абитуриент на любые вопросы чуть в сторону от темы курса будет получать ответ «это не является темой семинара, узнать ответ вы сможете на курсе XYX»(прайс вы видели).
                        Ну и как заметили выше, сам по себе абап никому не нужен. Нужны знания системы в привязке к конкретным модулям.
                        И это я еще молчу про жизнерадостные статьи на scn с заголовками «сап опять хочет уничтожить абап»
                          0
                          Абсолютно согласны! ABAP – это инструмент. И как в случае с любым инструментом, для получения результата, к нему нужно прилагать мозг. А еще лучше знания системы. И не только в конкретном модуле. Почитать TERP10 будет совсем не лишним.

                          >> И это я еще молчу про жизнерадостные статьи на scn с заголовками «сап опять хочет уничтожить абап»

                          Аргумент :)

                          Если посмотреть на версию SAP NetWeaver 7.4 и на расширение возможностей которые добавляются в ABAP с каждым новым SP – то видно, что SAP инвестирует в развитие ABAP. И весьма много. Любая компания, если не хочет развивать продукт, перестает в него инвестировать. Прописная истина, понятная без статей на SCN или где бы то ещё ни было.

                          К сожалению, не каждый разработчик отслеживает новые возможности языка. Научившись писать SQL запросы на OpenSQL идет зарабатывать свою копеечку. Да, таких много.

                          А у же если говорить про слухи, то люди в Вальдорфе говорят про SAP NetWeaver 7.6 и ABAP в Cloud … Удачи!

                            0
                            Сложно прилагать мозг для изучения системы, если официально самостоятельно это сделать нельзя в принципе. Или я что-то пропустил, и уже можно получить тестовую версию системы для самостоятельного ознакомления?

                            Вот про абап в cloud особенно жизнерадостно было в статье. да. кстати, вот и сама статья scn.sap.com/docs/DOC-41566 (к сожалению, с трубы ссылка не красиво вставляется). Обратите внимание: пишет человек, только что выпустивший на саппрессе книжку «прелести нового абап». Теперь он задается вопросом «а зачем же я ее писал-то?».

                            Ну и дальше, для решающего «а оно мне надо?», уже следует думать о перспективах системы в целом: это и политические факторы, и направленность вендора на смену принципа с «мы работаем с разными СУБД» на «только haha, только хардкор» и многое другое.

                      Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                      Самое читаемое