SlideShare a Scribd company logo
1 of 24
We Transform. Trust into Value
Для консультанта. Легко.Быстро.Весело.
Содержание
1. Архитектура SAP
A. Для информации (Архитектура SAP)
2. Объекты ABAP (Advanced Business Application Programming )-Программа
A. Информация о Программах
B. Типы ABAP программ
3. ФМ – Функциональный модуль
A. Информация по ФМ
4. Классы/методы и интерфейсы
A. Информация о классах и методах
B. Интерфейсы
5. Доступные расширения в ABAP - тот самый BADI
6. Синтаксис SELECT
A. SQL Join
7. Пример использования различных объектов
8. Трейс
A. Примеры
9. Системные переменные (глобальная структура SYST)
10. Организация наименований в коде
11. Помощь в тестировании разработки
12. Полезные ссылки
4/11/2024
©
2018
itelligence
2
Архитектура SAP
Для информации (Архитектура SAP)
1. Сервер базы данных. Сервер базы данных используется для хранения всех долговременных данных
(persistent data) в системе SAP R/3. Однако, не все данные SAP R/3 могут быть получены посредством
SQL, поскольку некоторые из них находятся в специальных форматах: объединенных (pool) и
кластерных (cluster) таблицах. Эти таблицы сжимают несколько логических таблиц в одну физическую
таблицу. В результате, становится невозможно устанавливать соответствие между логическими
таблицами SAP R/3, описанными в словаре данных SAP R/3, и таблицами или аналитическими
выборками, хранимыми на сервере базы данных.
2. Сервер приложений. Сервер приложений связывается с сервером базы данных и исполняет
программы (написанные на ABAP), которые реализуют бизнес-модели. В большинстве случаев, к
бизнес-логике этих программ можно получить доступ, обратившись к ABAP-функциям. Кроме того,
часть информации не хранится в таблицах, а вычисляется с помощью удаленного вызова этих
функций (RFC, remote function call) во время исполнения. Сервер приложений - этот как раз то место,
где находится SAP BAPI (Business Application Programming Interface, Бизнес-интерфейс прикладного
программирования компании SAP).
3. Сервер представления информации (презентации). Верхний уровень приложения с интерфейсом
пользователя либо (GUI графический интерфейс пользователя – локальная сеть или веб интерфейс
WUI). Сервер представления информации функционирует на рабочем месте каждого пользователя:
обрабатывает команды, вводимые с клавиатуры, управляет отображением информации и
обеспечивает связь с исполняемыми на сервере приложений программами, реализующими бизнес-
модели. При этом, клиентские машины не задействованы в выполнении бизнес-логики.
Объекты ABAP (Advanced Business Appl Programming )-
Программа
Блок обработки
Декларация переменных
Блок обработки
Вывод выходных параметров
XXX
ABAP ключевое слово
YYY
Дополнительная информация и операнды
(в зависимости от ключевого слова)
.
Точка как конец
оператора
Информация о Программах
1. ABAP редактор T-code - se38, Для настройки экранов T-code - se51, репозиторий объектов T-code –
se80
2. В любом исходном коде есть возможность определения и вызова подпрограммы c помощью
операторов FORM (определение) и PERFORM (вызов)
3. Возможность создания заготовки вызова метода, ФМ и тд. Через “Pattern”
4. При создании программы существует возможность создания экранов и пользовательского
интерфейса в отличии от ФМ и классов ( список экранов и другие параметры программы можно
увидеть в репозитории объектов – T-code – se80)
Типы ABAP программ
Существуют следующие типы ABAP программ:
1. Тип Executable Program. Не нуждаются в использовании экранов для управления диалогом с пользователем. Управление вызовами
блоков обработки контролируется процессорами среды выполнения, которая вызывает список блоков обработки в четко определенной
последовательности. Программы данного типа ориентированы в основном на создание отчетов ( отсюда REPORT). Программа типа 1
может вызываться с помощью кода транзакции (транзакция отчета).
2. Тип Мodule Pool. Наиболее важный технический атрибут программ типа М это то, что они могут управляться только с помощью логики
DynPro (пользовательский интерфейс управления приложениями на ABAP). Они могут запускаться на выполнения только с
использованием кода транзакции, который привязан к программе и одному из её экранов. Ещё одна особенность программ типа М в
том, что для неё необходимо создавать собственные экраны диалога с пользователем (с использованием Редактора Экранов).
Программа типа М может также иметь начальный экран выбора. Программы типа М называются пулами модулей и предназначены
для разработки диалоговых программ с большим набором экранов и насыщенной логикой DynPro.
3. Тип Function group. Являются контейнерами для функциональных модулей и не могут быть запущены с использованием кода
транзакции или ввода имени напрямую. Функциональные модули – это специальные подпрограммы, которые можно вызывать из
других ABAP программ. Программы этого типа называются группами функций. Группы функций и функциональные модули создаются с
использованием редактора функций.
4. Тип Class Pool. Не могут быть запущены с использованием кода транзакции или имени программы. Они являются контейнерами для
глобальных классов. Они так же известны под названием определений классов. Создаются с использованием построителя классов.
5. Тип Interface Pool. Не могут быть запущены с использованием кода транзакции или имени программы. Они являются контейнерами
для глобальных интерфейсов. Они так же известны под названием определений интерфейсов. Создаются с использованием
построителя классов.
6. Тип Subroutine Pool. Не могут быть запущены с использованием кода транзакции или имени программы. Они являются контейнерами
для подпрограмм, которые можно вызывать из других программ. Не могут содержать экранов.
7. Тип Include Program. Данный тип позволяют разбивать программу на более мелкие модули. Программу типа Incl можно вставить в
любом месте любой программы с использованием оператора INCLUDE <Имя программы типа I>. Среда разработки ABAP/4 имеет
механизм для автоматического разбиения пулов модулей и функциональных групп на несколько программ типа Include Program.
ФМ – Функциональный модуль
Построитель Функций
Пример вызова ФМ в коде
Информация по ФМ
1. Построитель Функций T-code - se37, ФМ принадлежит группе функций c общими
атрибутами
2. Возможность создания BAPI модулей – интерфейс для RFC модулей ( без commit к
БД) для вызова модуля одной системы SAP из другой системы. Пример вызов
модуля SAP Marketing на стороне SAP CRM
3. Возможность вызова модуля как Create new Task ( параллелизация процессов)
4. Веб-сервисы как правило основаны на RFC ФМ после создания ФМ в se80 Create ->
Other objects -> Enterprise Service https://www.google.ru/amp/s/signatov.com/sozdanie-
web-servisa-v-sisteme-sap/amp/
Классы/методы и интерфейсы
Класс
(формальное описание
объектов –шаблон объекта)
Класс
(формальное описание объектов –
шаблон объекта)
• Attribute1
• Attribute2
• …
• Method1
• Method2
• …
Атрибуты объектов
Методы объектов
Объекты (экземпляр-инстанция) класса
Информация о классах и методах
1. Объект в программировании — некоторая сущность в виртуальном пространстве,
обладающая определённым состоянием и поведением, имеющая заданные
значения свойств (атрибутов) и операций над ними. Как правило, при рассмотрении
объектов выделяется то, что объекты принадлежат одному или нескольким классам,
которые определяют поведение (являются моделью) объекта. Термины «экземпляр
класса» (instance) и «объект» взаимозаменяемы. Объект, созданный по шаблону
класса объектов, является экземпляром класса и наследует весь набор свойств,
методов и событий данного класса
2. Метод в объектно-ориентированном программировании — это функция или
процедура, принадлежащая какому-то классу или объекту. Как и процедура в
процедурном программировании, метод состоит из некоторого количества
операторов для выполнения какого-то действия и имеет набор входных аргументов.
Интерфейсы
1. Интерфейсом называется семейство методов и свойств, которые сгруппированы в
единое целое и инкапсулируют какую-либо определенную функциональную
возможность.
2. После того как интерфейс определен, его можно реализовать в некотором классе.
Это означает, что класс будет поддерживать все свойства и члены, определяемые
данным интерфейсом.
3. Интерфейсы не могут существовать сами по себе. Интерфейс представляет собой не
более чем просто именованный набор абстрактных членов. В интерфейсе ни у
одного из методов не должно быть тела. Это означает, что в интерфейсе вообще не
предоставляется никакой реализации. В нем указывается только, что именно
следует делать, но не как это делать.
Классы и методы - ООП
1. T-code - se24
2. Основное отличие ФМ от Классов – возможность создания объектов на основании свойств класса
(инкапсуляция, наследование и полиморфизм)
3. Возможно определение локальных типов данных для класса (для всех методов)
4. Возможно создание атрибутов класса с типом (атрибут инстанции – статический атрибут, константа)
5. Типизация методов класса
Доступные расширения в ABAP - тот самый BADI
Расширение объектов словаря
Customer Exit
Business Transaction Event (BTE)
Доступные расширения в ABAP
Расширение словаря
BADI (exit на
основании Классов и
Интерфейсов- замена
Customer Exit)
BTE (состоит из
интерфейсов и
позволяет
вызывать
реализацию ФМ
Exit
AET и RAD в
WUI
Таблицы,
элементы
данных,
домены,
средства
поиска (T-
code Se11)
User Exit (exit на
основании
программ)
Customer Exit (exit на
основании ФМ)
Синтаксис SELECT
Пример 1
Пример 2
Типы данных
Data Types
Elementary types
Fixed Length
Complex types
Reference types
Variable length
String
XString
Numeric types (P,I,F)
X
Character types (C,N,D,T)
Structure type
Table type
Object Ref.
Data Reference
Class ref
Interface ref
SQL join
Пример использования различных объектов
Что нужно сделать? Транзакция Программа Query ФМ Класс/Метод Web-сервис Пример
Отчет по данным + + + z-Query по транзакциям и MA
Массовое изменение
данных
+ + Программа для процессинга
данных MA
Интеграция с SAP-
системой
+ (RFC) Промо-коды
Стандартные
расширение
+ (BADI) Сохранение участия
Функция + + ФМ для создания MA
CRM_LOY_MA_CREATE_API
Работа с объектом
(наследование,
инкапсуляция и
полиморфизм)
+ метод по созданию MA
ZCLENC_LOY_TRANS_MANAGEMENT
-CREATE_MA_FROM_TRNS_
Интеграция с внешней
системой
+ Web-сервис для обработки данных
транзакции ОП ( WSDL – Soap)
Трейс
1. ABAP trace t-code st12
2. SQL trace t-code st05
Необходимость использования трейса.
1. Поиск программ , функциональных модулей и методов для определения их участия в процессе.
2. Поиск объектов словаря и полей с помощью SQL Trace.
Примеры
Системные переменные (глобальная структура SYST)
1. SY-DATUM - Актуальная дата сервера приложений
2. SY-UZEIT - Актуальное время сервера приложений
3. SY-INDEX – Счетчик цикла DO
4. SY-TABIX – Индекс в цикле LOOP
5. SY-DBCNT – Число считанных строк из БД
6. SY-SUBRC – Код возврата, содержит результат последней выполненной операции. SY-SUBRC = 0 в
случае успешного выполнения
7. SY-LANGU – Язык входа в систему
8. SY-BATCH – Программа выполняется в фоновом режиме
9. SY-BINPT – Программа выполняется в рамках пакетного ввода
10.SY-REPID – Имя текущей программы
11.SY-UNAME – Имя пользователя
Организация наименований в коде
https://ru.scribd.com/doc/27404905/ABAP-Programming-Tips
Помощь в тестировании разработки
1. Отладчик (Debugger)- /h – активация отладчика в GUI
2. При тестировании ФМ позволяет сохранять тестовые данные
3. При тестировании ФМ позволяет последовательно вызывать ФМ (Test Sequence)
https://wiki.scn.sap.com/wiki/display/ABAP/Function+Module+Test+Sequence
4. Возможность сохранения точек остановки в Debug, для перемещения по коду (горячие клавиши)
1. F5 – Перейти в соответствующий объект ( метод класса, программа, ФМ и тд)
2. F6 – перейти на шаг вперед в программе
3. F7 – вернуться на шаг назад
4. F8 – выполнить код до конца или ближайшей точки остановки
5. Shift+F12 – перейти на соответствующую строчку кода, на которой находится курсор ( позволяет пропускать необходимые
ветки кода )
5. При тестировании сервисов пользоваться T-code SRT_UTIL для просмотра описания в журнале
ошибок
6. Обработка дампов – T-code ST22
Полезные ссылки
1. Описание типов данных в ABAP
https://help.sap.com/saphelp_47x200/helpdata/en/d3/2e974d35c511d1829f0000e829fbfe/frameset.htm
2. Как написать свою первую программу на ABAP http://www.saptraininghq.com/how-to-create-your-first-sap-abap-program/
3. Вызов метода класса в программе https://answers.sap.com/questions/6310051/how-to-call-a-method-in-a-program.html
4. Отличие обычного ФМ – BAPI и RFC https://www.stechies.com/what-is-the-difference-between-the-normal-function-
module-and-bapi-function/
5. Список всех операторов ABAP c описанием
https://help.sap.com/saphelp_46c/helpdata/en/87/56d00722c011d2954a0000e8353423/content.htm?no_cache=true
6. Общая информация по расширениям функционала
https://wiki.scn.sap.com/wiki/display/Community/An+Introduction+to+Enhancements+and+Modifications+in+SAP+for+Begin
ners
7. Информация по расширению типа CUSTOMER EXIT
https://wiki.scn.sap.com/wiki/pages/viewpage.action?pageId=107774353 https://youtu.be/CwncMPKKlnA
8. Расширение BTE https://www.youtube.com/watch?v=b-_KW3HOv6U
9. Отличие Returning и Exporting параметров https://answers.sap.com/questions/4237018/returning-value-and-
exporting.html
10. T-code - ABAPDOCU. Стандартный курс по техникам программирования с примерами.
11. Типы Функциональных модулей - https://answers.sap.com/questions/3690985/how-many-types-of-function-modules-are-
there.html

More Related Content

Similar to Inroducing SAP ABAP - Presentation with basics SAP ABAP

C++ Базовый. Занятие 01.
C++ Базовый. Занятие 01.C++ Базовый. Занятие 01.
C++ Базовый. Занятие 01.Igor Shkulipa
 
Построение систем автоматического протоколирования Си/Си++ кода
Построение систем автоматического протоколирования Си/Си++ кодаПостроение систем автоматического протоколирования Си/Си++ кода
Построение систем автоматического протоколирования Си/Си++ кодаTatyanazaxarova
 
презентация конспекта лекций
презентация конспекта лекцийпрезентация конспекта лекций
презентация конспекта лекцийstudent_kai
 
метод организации репозитория исходного кода
метод организации репозитория исходного кодаметод организации репозитория исходного кода
метод организации репозитория исходного кодаSergii Shmarkatiuk
 
Экскурс в мир WEB разработки
Экскурс в мир WEB разработкиЭкскурс в мир WEB разработки
Экскурс в мир WEB разработкиIT-Доминанта
 
Google I/O 2016 для разработчиков
Google I/O 2016 для разработчиковGoogle I/O 2016 для разработчиков
Google I/O 2016 для разработчиковWOX APP
 
Programming Concepts
Programming ConceptsProgramming Concepts
Programming ConceptsMister_Lee
 
Шичко И. Вопросы практического применения СУБД FileMaker при решении повседне...
Шичко И. Вопросы практического применения СУБД FileMaker при решении повседне...Шичко И. Вопросы практического применения СУБД FileMaker при решении повседне...
Шичко И. Вопросы практического применения СУБД FileMaker при решении повседне...FMTeam
 
битрикс Framework сергей рыжиков
битрикс Framework   сергей рыжиковбитрикс Framework   сергей рыжиков
битрикс Framework сергей рыжиковMedia Gorod
 
Lotus Forum 2009 Websphere Portal 6.1
Lotus Forum 2009 Websphere Portal 6.1Lotus Forum 2009 Websphere Portal 6.1
Lotus Forum 2009 Websphere Portal 6.1guestcaef82
 
Joomla (Админка) www.hotwebstudio.ru
Joomla (Админка) www.hotwebstudio.ruJoomla (Админка) www.hotwebstudio.ru
Joomla (Админка) www.hotwebstudio.ruhotwebstudio.ru
 
[JAM 1.1] Symfony (Alexei Yanochkin)
[JAM 1.1] Symfony (Alexei Yanochkin)[JAM 1.1] Symfony (Alexei Yanochkin)
[JAM 1.1] Symfony (Alexei Yanochkin)Evgeny Kaziak
 
Как пройти собеседование и получить первую работу на Swift
Как пройти собеседование и получить первую работу на SwiftКак пройти собеседование и получить первую работу на Swift
Как пройти собеседование и получить первую работу на SwiftAnton Loginov
 
Как спроектировать хороший API и почему это так важно
Как спроектировать хороший API и почему это так важноКак спроектировать хороший API и почему это так важно
Как спроектировать хороший API и почему это так важноBubon Makabra
 

Similar to Inroducing SAP ABAP - Presentation with basics SAP ABAP (20)

Java 2 - Java Intro
Java 2 - Java IntroJava 2 - Java Intro
Java 2 - Java Intro
 
C++ Базовый. Занятие 01.
C++ Базовый. Занятие 01.C++ Базовый. Занятие 01.
C++ Базовый. Занятие 01.
 
Построение систем автоматического протоколирования Си/Си++ кода
Построение систем автоматического протоколирования Си/Си++ кодаПостроение систем автоматического протоколирования Си/Си++ кода
Построение систем автоматического протоколирования Си/Си++ кода
 
презентация конспекта лекций
презентация конспекта лекцийпрезентация конспекта лекций
презентация конспекта лекций
 
Genome
GenomeGenome
Genome
 
метод организации репозитория исходного кода
метод организации репозитория исходного кодаметод организации репозитория исходного кода
метод организации репозитория исходного кода
 
Экскурс в мир WEB разработки
Экскурс в мир WEB разработкиЭкскурс в мир WEB разработки
Экскурс в мир WEB разработки
 
Step 1
Step 1Step 1
Step 1
 
Google I/O 2016 для разработчиков
Google I/O 2016 для разработчиковGoogle I/O 2016 для разработчиков
Google I/O 2016 для разработчиков
 
Programming Concepts
Programming ConceptsProgramming Concepts
Programming Concepts
 
Lekcia3
Lekcia3Lekcia3
Lekcia3
 
Шичко И. Вопросы практического применения СУБД FileMaker при решении повседне...
Шичко И. Вопросы практического применения СУБД FileMaker при решении повседне...Шичко И. Вопросы практического применения СУБД FileMaker при решении повседне...
Шичко И. Вопросы практического применения СУБД FileMaker при решении повседне...
 
битрикс Framework сергей рыжиков
битрикс Framework   сергей рыжиковбитрикс Framework   сергей рыжиков
битрикс Framework сергей рыжиков
 
Lotus Forum 2009 Websphere Portal 6.1
Lotus Forum 2009 Websphere Portal 6.1Lotus Forum 2009 Websphere Portal 6.1
Lotus Forum 2009 Websphere Portal 6.1
 
Lecture 11 1
Lecture 11 1Lecture 11 1
Lecture 11 1
 
Lecture 11 1
Lecture 11 1Lecture 11 1
Lecture 11 1
 
Joomla (Админка) www.hotwebstudio.ru
Joomla (Админка) www.hotwebstudio.ruJoomla (Админка) www.hotwebstudio.ru
Joomla (Админка) www.hotwebstudio.ru
 
[JAM 1.1] Symfony (Alexei Yanochkin)
[JAM 1.1] Symfony (Alexei Yanochkin)[JAM 1.1] Symfony (Alexei Yanochkin)
[JAM 1.1] Symfony (Alexei Yanochkin)
 
Как пройти собеседование и получить первую работу на Swift
Как пройти собеседование и получить первую работу на SwiftКак пройти собеседование и получить первую работу на Swift
Как пройти собеседование и получить первую работу на Swift
 
Как спроектировать хороший API и почему это так важно
Как спроектировать хороший API и почему это так важноКак спроектировать хороший API и почему это так важно
Как спроектировать хороший API и почему это так важно
 

Inroducing SAP ABAP - Presentation with basics SAP ABAP

  • 1. We Transform. Trust into Value Для консультанта. Легко.Быстро.Весело.
  • 2. Содержание 1. Архитектура SAP A. Для информации (Архитектура SAP) 2. Объекты ABAP (Advanced Business Application Programming )-Программа A. Информация о Программах B. Типы ABAP программ 3. ФМ – Функциональный модуль A. Информация по ФМ 4. Классы/методы и интерфейсы A. Информация о классах и методах B. Интерфейсы 5. Доступные расширения в ABAP - тот самый BADI 6. Синтаксис SELECT A. SQL Join 7. Пример использования различных объектов 8. Трейс A. Примеры 9. Системные переменные (глобальная структура SYST) 10. Организация наименований в коде 11. Помощь в тестировании разработки 12. Полезные ссылки 4/11/2024 © 2018 itelligence 2
  • 4. Для информации (Архитектура SAP) 1. Сервер базы данных. Сервер базы данных используется для хранения всех долговременных данных (persistent data) в системе SAP R/3. Однако, не все данные SAP R/3 могут быть получены посредством SQL, поскольку некоторые из них находятся в специальных форматах: объединенных (pool) и кластерных (cluster) таблицах. Эти таблицы сжимают несколько логических таблиц в одну физическую таблицу. В результате, становится невозможно устанавливать соответствие между логическими таблицами SAP R/3, описанными в словаре данных SAP R/3, и таблицами или аналитическими выборками, хранимыми на сервере базы данных. 2. Сервер приложений. Сервер приложений связывается с сервером базы данных и исполняет программы (написанные на ABAP), которые реализуют бизнес-модели. В большинстве случаев, к бизнес-логике этих программ можно получить доступ, обратившись к ABAP-функциям. Кроме того, часть информации не хранится в таблицах, а вычисляется с помощью удаленного вызова этих функций (RFC, remote function call) во время исполнения. Сервер приложений - этот как раз то место, где находится SAP BAPI (Business Application Programming Interface, Бизнес-интерфейс прикладного программирования компании SAP). 3. Сервер представления информации (презентации). Верхний уровень приложения с интерфейсом пользователя либо (GUI графический интерфейс пользователя – локальная сеть или веб интерфейс WUI). Сервер представления информации функционирует на рабочем месте каждого пользователя: обрабатывает команды, вводимые с клавиатуры, управляет отображением информации и обеспечивает связь с исполняемыми на сервере приложений программами, реализующими бизнес- модели. При этом, клиентские машины не задействованы в выполнении бизнес-логики.
  • 5. Объекты ABAP (Advanced Business Appl Programming )- Программа Блок обработки Декларация переменных Блок обработки Вывод выходных параметров XXX ABAP ключевое слово YYY Дополнительная информация и операнды (в зависимости от ключевого слова) . Точка как конец оператора
  • 6. Информация о Программах 1. ABAP редактор T-code - se38, Для настройки экранов T-code - se51, репозиторий объектов T-code – se80 2. В любом исходном коде есть возможность определения и вызова подпрограммы c помощью операторов FORM (определение) и PERFORM (вызов) 3. Возможность создания заготовки вызова метода, ФМ и тд. Через “Pattern” 4. При создании программы существует возможность создания экранов и пользовательского интерфейса в отличии от ФМ и классов ( список экранов и другие параметры программы можно увидеть в репозитории объектов – T-code – se80)
  • 7. Типы ABAP программ Существуют следующие типы ABAP программ: 1. Тип Executable Program. Не нуждаются в использовании экранов для управления диалогом с пользователем. Управление вызовами блоков обработки контролируется процессорами среды выполнения, которая вызывает список блоков обработки в четко определенной последовательности. Программы данного типа ориентированы в основном на создание отчетов ( отсюда REPORT). Программа типа 1 может вызываться с помощью кода транзакции (транзакция отчета). 2. Тип Мodule Pool. Наиболее важный технический атрибут программ типа М это то, что они могут управляться только с помощью логики DynPro (пользовательский интерфейс управления приложениями на ABAP). Они могут запускаться на выполнения только с использованием кода транзакции, который привязан к программе и одному из её экранов. Ещё одна особенность программ типа М в том, что для неё необходимо создавать собственные экраны диалога с пользователем (с использованием Редактора Экранов). Программа типа М может также иметь начальный экран выбора. Программы типа М называются пулами модулей и предназначены для разработки диалоговых программ с большим набором экранов и насыщенной логикой DynPro. 3. Тип Function group. Являются контейнерами для функциональных модулей и не могут быть запущены с использованием кода транзакции или ввода имени напрямую. Функциональные модули – это специальные подпрограммы, которые можно вызывать из других ABAP программ. Программы этого типа называются группами функций. Группы функций и функциональные модули создаются с использованием редактора функций. 4. Тип Class Pool. Не могут быть запущены с использованием кода транзакции или имени программы. Они являются контейнерами для глобальных классов. Они так же известны под названием определений классов. Создаются с использованием построителя классов. 5. Тип Interface Pool. Не могут быть запущены с использованием кода транзакции или имени программы. Они являются контейнерами для глобальных интерфейсов. Они так же известны под названием определений интерфейсов. Создаются с использованием построителя классов. 6. Тип Subroutine Pool. Не могут быть запущены с использованием кода транзакции или имени программы. Они являются контейнерами для подпрограмм, которые можно вызывать из других программ. Не могут содержать экранов. 7. Тип Include Program. Данный тип позволяют разбивать программу на более мелкие модули. Программу типа Incl можно вставить в любом месте любой программы с использованием оператора INCLUDE <Имя программы типа I>. Среда разработки ABAP/4 имеет механизм для автоматического разбиения пулов модулей и функциональных групп на несколько программ типа Include Program.
  • 8. ФМ – Функциональный модуль Построитель Функций Пример вызова ФМ в коде
  • 9. Информация по ФМ 1. Построитель Функций T-code - se37, ФМ принадлежит группе функций c общими атрибутами 2. Возможность создания BAPI модулей – интерфейс для RFC модулей ( без commit к БД) для вызова модуля одной системы SAP из другой системы. Пример вызов модуля SAP Marketing на стороне SAP CRM 3. Возможность вызова модуля как Create new Task ( параллелизация процессов) 4. Веб-сервисы как правило основаны на RFC ФМ после создания ФМ в se80 Create -> Other objects -> Enterprise Service https://www.google.ru/amp/s/signatov.com/sozdanie- web-servisa-v-sisteme-sap/amp/
  • 10. Классы/методы и интерфейсы Класс (формальное описание объектов –шаблон объекта) Класс (формальное описание объектов – шаблон объекта) • Attribute1 • Attribute2 • … • Method1 • Method2 • … Атрибуты объектов Методы объектов Объекты (экземпляр-инстанция) класса
  • 11. Информация о классах и методах 1. Объект в программировании — некоторая сущность в виртуальном пространстве, обладающая определённым состоянием и поведением, имеющая заданные значения свойств (атрибутов) и операций над ними. Как правило, при рассмотрении объектов выделяется то, что объекты принадлежат одному или нескольким классам, которые определяют поведение (являются моделью) объекта. Термины «экземпляр класса» (instance) и «объект» взаимозаменяемы. Объект, созданный по шаблону класса объектов, является экземпляром класса и наследует весь набор свойств, методов и событий данного класса 2. Метод в объектно-ориентированном программировании — это функция или процедура, принадлежащая какому-то классу или объекту. Как и процедура в процедурном программировании, метод состоит из некоторого количества операторов для выполнения какого-то действия и имеет набор входных аргументов.
  • 12. Интерфейсы 1. Интерфейсом называется семейство методов и свойств, которые сгруппированы в единое целое и инкапсулируют какую-либо определенную функциональную возможность. 2. После того как интерфейс определен, его можно реализовать в некотором классе. Это означает, что класс будет поддерживать все свойства и члены, определяемые данным интерфейсом. 3. Интерфейсы не могут существовать сами по себе. Интерфейс представляет собой не более чем просто именованный набор абстрактных членов. В интерфейсе ни у одного из методов не должно быть тела. Это означает, что в интерфейсе вообще не предоставляется никакой реализации. В нем указывается только, что именно следует делать, но не как это делать.
  • 13. Классы и методы - ООП 1. T-code - se24 2. Основное отличие ФМ от Классов – возможность создания объектов на основании свойств класса (инкапсуляция, наследование и полиморфизм) 3. Возможно определение локальных типов данных для класса (для всех методов) 4. Возможно создание атрибутов класса с типом (атрибут инстанции – статический атрибут, константа) 5. Типизация методов класса
  • 14. Доступные расширения в ABAP - тот самый BADI Расширение объектов словаря Customer Exit Business Transaction Event (BTE) Доступные расширения в ABAP Расширение словаря BADI (exit на основании Классов и Интерфейсов- замена Customer Exit) BTE (состоит из интерфейсов и позволяет вызывать реализацию ФМ Exit AET и RAD в WUI Таблицы, элементы данных, домены, средства поиска (T- code Se11) User Exit (exit на основании программ) Customer Exit (exit на основании ФМ)
  • 16. Типы данных Data Types Elementary types Fixed Length Complex types Reference types Variable length String XString Numeric types (P,I,F) X Character types (C,N,D,T) Structure type Table type Object Ref. Data Reference Class ref Interface ref
  • 18. Пример использования различных объектов Что нужно сделать? Транзакция Программа Query ФМ Класс/Метод Web-сервис Пример Отчет по данным + + + z-Query по транзакциям и MA Массовое изменение данных + + Программа для процессинга данных MA Интеграция с SAP- системой + (RFC) Промо-коды Стандартные расширение + (BADI) Сохранение участия Функция + + ФМ для создания MA CRM_LOY_MA_CREATE_API Работа с объектом (наследование, инкапсуляция и полиморфизм) + метод по созданию MA ZCLENC_LOY_TRANS_MANAGEMENT -CREATE_MA_FROM_TRNS_ Интеграция с внешней системой + Web-сервис для обработки данных транзакции ОП ( WSDL – Soap)
  • 19. Трейс 1. ABAP trace t-code st12 2. SQL trace t-code st05 Необходимость использования трейса. 1. Поиск программ , функциональных модулей и методов для определения их участия в процессе. 2. Поиск объектов словаря и полей с помощью SQL Trace.
  • 21. Системные переменные (глобальная структура SYST) 1. SY-DATUM - Актуальная дата сервера приложений 2. SY-UZEIT - Актуальное время сервера приложений 3. SY-INDEX – Счетчик цикла DO 4. SY-TABIX – Индекс в цикле LOOP 5. SY-DBCNT – Число считанных строк из БД 6. SY-SUBRC – Код возврата, содержит результат последней выполненной операции. SY-SUBRC = 0 в случае успешного выполнения 7. SY-LANGU – Язык входа в систему 8. SY-BATCH – Программа выполняется в фоновом режиме 9. SY-BINPT – Программа выполняется в рамках пакетного ввода 10.SY-REPID – Имя текущей программы 11.SY-UNAME – Имя пользователя
  • 22. Организация наименований в коде https://ru.scribd.com/doc/27404905/ABAP-Programming-Tips
  • 23. Помощь в тестировании разработки 1. Отладчик (Debugger)- /h – активация отладчика в GUI 2. При тестировании ФМ позволяет сохранять тестовые данные 3. При тестировании ФМ позволяет последовательно вызывать ФМ (Test Sequence) https://wiki.scn.sap.com/wiki/display/ABAP/Function+Module+Test+Sequence 4. Возможность сохранения точек остановки в Debug, для перемещения по коду (горячие клавиши) 1. F5 – Перейти в соответствующий объект ( метод класса, программа, ФМ и тд) 2. F6 – перейти на шаг вперед в программе 3. F7 – вернуться на шаг назад 4. F8 – выполнить код до конца или ближайшей точки остановки 5. Shift+F12 – перейти на соответствующую строчку кода, на которой находится курсор ( позволяет пропускать необходимые ветки кода ) 5. При тестировании сервисов пользоваться T-code SRT_UTIL для просмотра описания в журнале ошибок 6. Обработка дампов – T-code ST22
  • 24. Полезные ссылки 1. Описание типов данных в ABAP https://help.sap.com/saphelp_47x200/helpdata/en/d3/2e974d35c511d1829f0000e829fbfe/frameset.htm 2. Как написать свою первую программу на ABAP http://www.saptraininghq.com/how-to-create-your-first-sap-abap-program/ 3. Вызов метода класса в программе https://answers.sap.com/questions/6310051/how-to-call-a-method-in-a-program.html 4. Отличие обычного ФМ – BAPI и RFC https://www.stechies.com/what-is-the-difference-between-the-normal-function- module-and-bapi-function/ 5. Список всех операторов ABAP c описанием https://help.sap.com/saphelp_46c/helpdata/en/87/56d00722c011d2954a0000e8353423/content.htm?no_cache=true 6. Общая информация по расширениям функционала https://wiki.scn.sap.com/wiki/display/Community/An+Introduction+to+Enhancements+and+Modifications+in+SAP+for+Begin ners 7. Информация по расширению типа CUSTOMER EXIT https://wiki.scn.sap.com/wiki/pages/viewpage.action?pageId=107774353 https://youtu.be/CwncMPKKlnA 8. Расширение BTE https://www.youtube.com/watch?v=b-_KW3HOv6U 9. Отличие Returning и Exporting параметров https://answers.sap.com/questions/4237018/returning-value-and- exporting.html 10. T-code - ABAPDOCU. Стандартный курс по техникам программирования с примерами. 11. Типы Функциональных модулей - https://answers.sap.com/questions/3690985/how-many-types-of-function-modules-are- there.html