Similar presentations:
Основы ABAP часть 1
1. ОСНОВЫ АВАР
Вводный курс для консультантов2016 год
2. ABAP/4
ABAP /4ABAP/4
(Advanced
Business
Application
Programming) - проприетарный внутренний язык
Краткое описание возможностей
программирования высокого уровня немецкой
Язык реализует работу с внутренними
софтверной компании SAP. Наряду с Java
структурами данных, интерфейсом пользователя
является языком создания приложений для SAP
SAP R/3, транзакциями, отчётами,
NetWeaver
Application
Server.
Синтаксис
наиболее близок к языку программирования
COBOL.
Название
Используется исключительно для бизнесприложений и промежуточного программного
История
ABAP
интерфейсами загрузки и выгрузки данных.
расшифровывается
как
обеспечения компании SAP. Имеет возможности
Advanced Business Application Programming, а
для объектно-ориентированного
цифра «4», по всей видимости, символизирует
программирования. Имеет сборщик мусора.
отношение к четвёртому поколению языков
Исходный текст ABAP компилируется
программирования. Язык был создан в 1980 году
(генерируется) в исполняемый ABAP байт-код,
для работы с системой SAP R/2, позднее
известный как «report load»[2]. Исполняется на
унаследован в SAP R/3.
виртуальной машине.
30.09.2020
3. Архитектура SAP R/3
Клиент-серверная архитектура SAP R/3:Система SAP R/3 представляет собой
трехуровневую
клиент-серверную
архитектуру:
Нижний уровень – уровень базы
данных;
Уровень приложений написанных на
ABAP для SAP R/3;
Презентационный уровень –
графический пользовательский
интерфейс (SAP GUI).
30.09.2020
R/3 Repository
Presentation
Server
Layer
Application
Server
Layer
ABAP Program
Cross-client
Database
Repository
Client-specific
Customizing tables
Application tables
ã SAP AG 1999
3
4. Инструменты ABAP (ABAP Workbench)
ABAP Workbench ToolsDebugger
Screen Painter
Menu Painter
FI
HR
SD
MM
WM
Object
Navigator
MM
Cust.
ABAP Editor
ABAP Dictionary
Function Builder
Class Builder
SAP AG 1999
30.09.2020
4
5. Инструменты ABAP (ABAP Workbench)
ABAP Workbench состоит из различных инструментов предназначенных для создания иредактирования объектов репозитария. Инструменты ABAP Workbench обеспечивают
программиста средствами разработки на протяжении полного цикла создания программы.
ABAP-редактор (ABAP Editor) предназначен для написания программного кода
ABAP-словарь (ABAP Dictionary) предназначен для хранения структуры базы данных,
определения таблиц и глобальных типов данных.
Редактор меню (Menu Painter) предназначен для разработки интерфейса пользователя (menu bar,
standard toolbar, application toolbar, function key assignment)
Редактор экранов (Screen Painter) предназначен для разработки экранного интерфейса
пользователя для диалоговых программ.
Построитель функций (Function Builder) предназначен для разработки функциональных модулей
(ФМ). ФМ - программы с предопределённым интерфейсом, входными и выходными параметрами,
доступные для вызова из любой точки системы SAP R/3
Построитель классов (Class Builder) предназначен для разработки глобальных классов
30.09.2020
5
6. ABAP-словарь
Словарь данных - хранилище
описаний структуры данных и таблиц,
с которыми работают программы.
Можно выделить следующие уровни
иерархии словаря данных: таблицы,
структуры, элементы данных и
домены;
Для работы со словарём данных
используется транзакция se11.
30.09.2020
6
7. Иерархия типов ABAP-словаря
30.09.20207
8. Иерархия типов ABAP-словаря
Элемент данных определяет смысловое назначение данных и содержит помимо техническихатрибутов (как например тип и длина поля) и презентационные - названия элемента данных
используемое как в описании структур, так и в программных интерфейсах.
Соответственно, все структурированные данные в ABAP словаре (структуры, таблицы), как
правило, строятся на элементах данных.
Домены являются самым низкоуровневым элементом ABAP словаря. При создании домена вы
должны указать базовый тип и длину. Из домена элемент данных наследует технические
атрибуты. Один и тот же домен может быть использован в определении нескольких элементов
данных.
Использование доменов позволяет избежать множества ошибок пользовательского ввода.
Система сама проверит значение и в случае чего выдаст ошибку. Использование домена
позволяет унифицировать систему, так как создается один домен для множества общих понятий.
Если появилось новое значение с развитием системы – нужно изменить только один домен, а не
всю систему.
30.09.2020
8
9. Предопределённые типы ABAP-словаря
Predefined ABAP Dictionary TypesACCP ...............
CHAR ...............
CLNT ...............
CUKY ...............
CURR ...............
DATS ...............
DEC .................
FLTP ................
INT1 .................
INT2 .................
INT4 .................
LANG ...............
LCHR ...............
LRAW ..............
NUMC ..............
PREC ...............
QUAN ..............
RAW ................
TIMS ................
VARC ...............
STRING ...........
RAWSTRING ...
UNIT .................
Accounting period YYYYMM
Character string
Client
Currency key, referenced by a CURR field
Currency field, stored as DEC
Date field (YYYYMMDD), stored as CHAR(8)
Calculation or amount field, with plus or minus sign
Floating point number with eight-byte accuracy
1 byte integer. Whole number <= 255
2 byte integer. Only for length field before LCHR or LRAW
4 byte integer. Whole number with plus or minus sign
Language key
Long character string. Must be preceded by an INT2 field.
Long byte string. Must be preceded by an INT2 field.
Character string containing only digits
Accuracy of a QUAN field.
Quantity field. Points to a units field with the type UNIT.
Uninterpreted byte sequence
Time field (HHMMSS), stored as CHAR(6)
Long character string (not supported after Release 3.0)
Character string of variable length
Byte sequence of variable length
Unit key for a QUAN field
Not
elementary
types
SAP AG 1999
30.09.2020
9
10. Объекты ABAP-словаря
Структура – набор полей с указанием
типов данных, средств поиска и
ссылочных таблиц. По своей сути,
структура это слепок одной записи
таблицы. То есть, таблица физически
хранит какие-то данные в базе данных
и таких данных может быть много.
Структура хранится только в памяти
программы и всегда содержит только
одну запись данных.
30.09.2020
10
11. Закладка «Компоненты»
30.09.202011
12. Закладка «Справка / Проверка значений ввода»
30.09.202012
13. Таблицы
Таблица - это плоская структура с
первичным ключом и набором
значений в БД.
30.09.2020
13
14. Закладка "Поля"
Закладка "Поля"30.09.2020
14
15. Элементы данных
Элемент данных – объект словаря
данных, представляющий собой
пользовательский тип данных, с
семантическим описанием объекта.
Элемент данных в отличие от домена
помимо технических характеристик
несёт на себе смысловую нагрузку и
привязан к какой-либо предметной
области.
30.09.2020
15
16. Закладка «Тип данных»
30.09.202016
17. Закладка «Дополнительные свойства»
30.09.202017
18. Закладка «Метка поля»
30.09.202018
19. Домены
Домен – объект словаря данных,
задающий область допустимых
значений, тип данных и формат
вывода для поля. Домен описывает
данные с технической точки зрения. С
помощью домена мы определяем
длину поля, тип, свойства вывода,
подпрограмму преобразования,
диапазон возможных значений.
30.09.2020
19
20. Закладка «Определение»
30.09.202020
21. Закладка «Диапазон значений»
30.09.202021
22. Как определить тип поля?
30.09.202022
23. Типы данных
Предопределённые типы. Предопределённые типы, как следует из названия, изначальнопредопределены в системе SAP и не поддаются изменению. На их основании строятся более
сложные типы данных. К предопределённым типам относятся: I (Integer), P (Point number), F
(Floating point number), C (Character), N (Numeric text), D (Date), T (Time), X (Byte), String, XString.
Локальные программные типы. Типы данных, объявленные локально в программе. Актуальны
только для программы, в которой они объявлены. Строятся на основании предопределённых
типов и типов репозитария объектов, а так же на основании ранее объявленных локальных
программных типов.
Типы репозитария объектов. Типы данных объявленные и хранящиеся в репозитарии системы.
Словарь данных - хранилище описаний структуры данных, с которыми работают программы.
Группа типов – программа, специального назначения, в которой хранятся объявления типов
данных. Группы типов и словарь данных являются частью репозитария объектов.
30.09.2020
23
24. Типы данных
30.09.202024
25. Иерархия типов данных
30.09.202025
26. Табличные типы
Иерархия табличных типов выглядит следующим образом:30.09.2020
26
27. Табличные типы
30.09.202027
28. Табличные типы
В стандартных таблицах (STANDARD TABLE) нумерация строк (индекс) являетсявнутренней. Существует возможность доступа как по индексу, так и по ключу. Этот тип таблицы
следует выбирать в том случае, когда для доступа к внутренней таблице, главным образом,
используется индекс.
В отсортированных таблицах (SORTED TABLE) записи данных автоматически
сортируются в восходящем порядке по ключевым полям. В этом случае индекс также является
внутренним. Существует возможность доступа как по индексу, так и по ключу. Этот тип таблицы
следует выбирать в том случае, когда для доступа к внутренней таблице, главным образом,
используется ключ, или если требуется автоматическая сортировка таблицы по ключу.
В хеш-таблицах (HASHED TABLE) для быстрого доступа по ключу используется
управление записями данных посредством процедуры хеширования. Ключ должен быть
уникальным. В случае хеш-таблиц возможен доступ только по ключу! Этот тип таблицы следует
выбирать в том случае, когда внутренняя таблица является чрезвычайно объемной, и
используется только доступ по ключу.
30.09.2020
28
29. ABAP-программа (взгляд пользователя)
30.09.202029
30. Взаимодействие между серверами
30.09.202030
31. Рабочий цикл ABAP-программы (старт программы)
30.09.202031
32. Контекст ABAP-программы
30.09.202032
33. Формирование селекционного экрана
30.09.202033
34. Запуск исполняемого блока
30.09.202034
35. Формирование запроса к БД
30.09.202035
36. Считывание данных из БД
30.09.202036
37. Формирование отчета
30.09.202037
38. ABAP-редактор
ABAP редактор – инструментальная
среда для просмотра, создания и
редактирования текстов исходных
ABAP-программ.
Для запуска ABAP-редактора
используется транзакция se38.
30.09.2020
38
39. Навигатор объектов
30.09.202039
40. Компоненты ABAP-программы
Components of an ABAP ProgramValues in
variants
Screens
xy
007
xz
008
Source code
Documentation
Text elements
INCLUDE mz_test_top.
INCLUDE mz_test_i01.
INCLUDE mz_test_o01.
INCLUDE mz_test_f01.
...
PROGRAM sapmz_test_.
Interface
TYPES: ...
DATA: ....
...
Hallo Welt!
Use
...
Hello world!
Integration
...
¡Hola mundo!
Object
Edit Goto
Object Edit
MODULE s_100 OUTPUT.
...
ENDMODULE.
MODULE ok_100 INPUT.
...
ENDMODULE.
Application Help
Extras Settings
Goto
ContinueExtras
System
Help
Environment System Help
Continue
First line
FirstLetzte
line Zeile
LastZurück
line
Back
Mehr Ziele Erstes Bild
FirstLetztes
screenBild
More
Tabellentyp
Table
Zurück
type
Back
LastErstes
screen
Feld
FirstLetztes
field Feld
Last field
FORM calc using ....
Changing .
...
ENDFORM.
SAP AG 1999
30.09.2020
40
41. Структура ABAP-программы
Structure of a ProgramDeclarations
Dialog module
Event block
Procedure
30.09.2020
PROGRAM sapbc402_rund_test.
TYPES: ...
DATA: ....
CONSTANTS: ...
MODULE s_100 OUTPUT.
...
ENDMODULE.
...
...
INITIALIZATION.
...
...
START-OF-SELECTION.
...
...
...
...
...
FORM calc USING
...
CHANGING ...
...
ENDFORM.
SAP AG 1999
41
42. Модуляризация ABAP-программы
Program OrganizationCreate Program
Program
Workbench Edit
SAPMZ402_RUND_TEST
Goto
Extras
Environment System Help
Object Navigator
Object name
With TOP include
Global declarations
PBO modules
PAI modules
Subroutines
SAPMZ402_RUND_TEST
Dictionary structures
Fields
PBO modules
PAI modules
Subroutines
Screens
GUI statuses
GUI titles
Transactions
Includes
MZ402_RUND_TESTTOP
MZ402_RUND_TESTO01
MZ402_RUND_TESTI01
MZ402_RUND_TESTF01
MZ402_RUND_TESTE01
Events
SAP AG 1999
30.09.2020
42
43. События ABAP-программы
LOAD-OF-PROGRAM.Обработчик события загрузки программ с типом 1, M, F, или S.
Обрабатывает единожды при запуске программы.
INITIALIZATION
Обработчик события инициализации селекционного экрана. Событие
возникает до отрисовки селекционного экрана. В нём, как правило,
инициализируют экранные поля.
AT SELECTION-SCREEN OUTPUT.
Обработчик события отрисовки селекционного экрана. Событие
возникает во время вывода селекционных полей на экран.
Используется для изменения атрибутов отображения селекционных
полей.
AT SELECTION-SCREEN
Обработчик ввода команды. Событие возникает при нажатии
управляющих кнопок на селекционном экране. На момент события
селекционный экран остается активным.
AT SELECTION-SCREEN ON sel
Обработчик ввода значения в поле sel. Событие возникает при
введении значения в поле и нажатия «Выполнить» или «Ввод».
AT SELECTION-SCREEN ON VALUE REQUEST sel
Обработчик вызова СП для поля sel. Событие возникает при клике по
кнопке СП или нажатии F4.
AT SELECTION-SCREEN ON HELP REQUEST sel
Обработчик вызова справки по полю sel. Событие возникает при
нажатии F1.
START-OF-SELECTION
Обработчик выборки данных. Событие возникает после отработки
селекционного экрана. Используется для основной выборки данных.
END-OF-SELECTION
Обработчик конца выборки данных. Событие возникает после
выполнения START-OF SELECTION. Обычно используется для вывода
данных на экран.
30.09.2020
43
44. События ABAP-программы
30.09.202044
45. Селекционный экран
Селекционным экраном называют начальный экран отчета, на которомрасполагаются параметры ограничения выборки данных этого отчета. Есть 2 вида
элементов селекционного экрана: параметры и диапазоны.
Синтаксис объявления параметров выглядит следующим образом:
PARAMETERS p
[TYPE type [DECIMALS dec]]|[LIKE g|(g)]
[DEFAULT f]
[NO-DISPLAY]
[LOWER CASE]
[OBLIGATORY]
[AS CHECKBOX]
[RADIOBUTTON GROUP radi]
[VISIBLE LENGTH vlen]
[VALUE CHECK]
[USER-COMMAND ucom].
30.09.2020
45
46. Селекционный экран параметры (пример)
*Параметр 10 значное число со знаком, 3 знака после запятой,* с начальныйм значением ‘3.1415′
PARAMETERS P_NUM(10) TYPE P DECIMALS 3 DEFAULT ‘3.1415′.
*Параметр для поля ANLA-ANLN1
PARAMETERS P_ANLN1 LIKE ANLA-ANLN1.
*Строка длиной 50 символов с видимой длиной 25 символов
PARAMETERS P_CHAR1(50) TYPE C VISIBLE LENGTH 25.
*Строка длиной 50 символов без преобразовани к верхнему регистру
PARAMETERS P_CHAR2(50) TYPE C LOWER CASE.
*Чекбокс
PARAMETERS P_FLAG TYPE FLAG AS CHECKBOX.
*Обязательный параметра для поля ANLA-BUKRS с проверкой значения
PARAMETERS P_BUKRS LIKE ANLA-BUKRS VALUE CHECK OBLIGATORY.
*Группа переключателей с командой RGR1
PARAMETERS: P_RB1 RADIOBUTTON GROUP RBGR USER-COMMAND RGR1,
P_RB2 RADIOBUTTON GROUP RBGR,
P_RB3 RADIOBUTTON GROUP RBGR.
30.09.2020
46
47. Диапазоны (select-options)
Диапазоны на селекционном экране полностью аналогичны таблицам диапазона.Синтаксис объявления параметров выглядит следующим образом:
SELECT-OPTIONS sel FOR f|(f)
[DEFAULT g [TO h] [OPTION xx SIGN s]]
[NO-DISPLAY]
[LOWER CASE]
[OBLIGATORY]
[NO-EXTENSION]
[NO INTERVALS]
[VISIBLE LENGTH vlen].
30.09.2020
47
48. Селекционный экран диапазоны (пример)
*Диапазон для ANLA-BUKRSSELECT-OPTIONS R_BUKRS FOR ANLA-BUKRS.
*Диапазон для ANLA-ANLN1 с начальными значениями
SELECT-OPTIONS R_ANLN1 FOR ANLA-ANLN1
DEFAULT ‘1*’ TO ‘2*’ OPTION BT SIGN E.
*Диапазон для ANLA-ANLN2 без расширения
SELECT-OPTIONS R_ANLN2 FOR ANLA-ANLN2 NO-EXTENSION.
*Диапазон для ANLA-ANLN2 без интервалов
SELECT-OPTIONS R_ANLKL FOR ANLA-ANLKL NO INTERVALS.
30.09.2020
48
49. Подпрограммы (perform)
FORM form[TABLES itab1 ... itabn]
[USING [VALUE(p1)| p1] … [VALUE(pn) |pn]]
[CHANGING [VALUE(p1)| p1] … [VALUE(pn) |pn]].
ENDFORM.
Вместо дополнения TABLES, по возможности используйте дополнения USING или
CHANGING. В дополнении TABLES вы можете использовать только таблицы типа
STANDARD. Описанный в дополнении TABLES формальный параметр всегда имеет строку
заголовка, даже если фактический параметр при вызове подпрограммы его не имеет. Параметр
описанный в дополнении TABLES всегда является параметром-ссылкой.
В дополнениях USING и CHANGING по умолчанию все параметры имеют тип параметрссылка. Для указания параметра-значения, имя параметра нужно заключить в «скобки»
VALUE(). Обратите внимание на то, что скобки не отделяются от имени параметра пробелами.
30.09.2020
49
50. Включения (includes)
Для обеспечения модульности при разработке программы на ABAP предусмотренывключения (includes). В общем случае включение выглядит следующим образом:
INCLUDE prog.
Где prog это имя включаемой программы. При компиляции программы весь исходный
код из prog добавляется в головную программу непосредственно в строку где указано
включение. Это позволяет делить исходный код программы на логические блоки, что ускоряет
кодирование и отладку, и делает участки кода доступными в нескольких программах
одновременно.
Разновидностью включения является включение пула типов:
TYPE-POOLS tpool.
Тип пулов фактически является аналогом включения программного кода, с той лишь
разницей, что включаются не исполняемый код, а определения типа. Создание пула типов
преследует ту же цель что и модульная разработка программы - дать возможность
использовать определения типов в нескольких программах.
30.09.2020
50
51. Текстовые элементы
30.09.202051
52. Экранный вывод
Интерфейсы взаимодействия с пользователемЭкраны используются, для отображения данных и организации
взаимодействия с пользователем. В SAP различают три, принципиально
отличающихся друг от друга, вида экранов:
Селекционный экран (screen 1000)
30.09.2020
52
53. Экранный вывод
Диалоговый экран (screen n)30.09.2020
53
54. Экранный вывод
ABAP-List (screen 120)30.09.2020
54
55. Экранный вывод
В отличии от экранов, которые содержат в себе такие элементы каквходные/выходные поля, кнопки, и создаются при помощи специального
средства – редактора экранов, ABAP-List формируется посредством ABAPкода, при помощи операторов WRITE, ULINE и SKIP.
ABAP-лист формируется интерпретатором на сервере приложений
и хранится в памяти сервера. Переход на презентационный уровень
происходит по событию LEAVE TO LIST-PROCESSING, или автоматически
после выполнения последнего блока программы.
Для отображения ABAP-List, вызывается специальный обработчик,
который формирует экран под номером 120 и размещает на нём
содержимое ABAP-списка. Таким образом, ABAP-List это экран,
формирующийся динамически посредством ABAP-кода.
30.09.2020
55
56. Экранный вывод (Оператор WRITE)
Для простейшего вывода информации напользовательский экран в ABAP используется
оператор WRITE. Данный оператор имеет
следующий синтаксис:
… YYMMDD
WRITE [</><pos><col>] <f> [<fmt_opt>].
… ROUND r
Где <fmt_opt> это опция форматирования
выводимых данных:
… UNIT u
… NO-ZERO
… NO-SIGN
… NO GROUPING
… DD/MM/YY
… MM/DD/YY
… DD/MM/YYYY
… MM/DD/YYYY
… DDMMYY
… CURRENCY w
… DECIMALS d
… TIME ZONE tz
… EXPONENT e
… NO-GAP (only with WRITE)
… LEFT-JUSTIFIED
… CENTERED
… RIGHT-JUSTIFIED
Операнд <f> может быть текстовой строкой или
переменной программы. Сформировавшийся
экран можно тут же распечатать, посредством
нажатия на клавишу «Печать».
… MMDDYY
30.09.2020
56
57. Основные конструкции ABAP
Операторы сравнения, булевы операторы30.09.2020
57
58. Основные конструкции ABAP
Арифметические операции30.09.2020
58
59. Основные конструкции ABAP
Операции над датами30.09.2020
59
60. Основные конструкции ABAP
Операции над строками. Длинна и смещение.30.09.2020
60
61. Основные конструкции ABAP
Операции над строками. Модификация.30.09.2020
61
62. Основные конструкции ABAP
Разделение, соединение строк.30.09.2020
62
63. Основные конструкции ABAP
Сравнение строк №1Оператор
Описание
CO
с1 содержит
только
символы из c2
CN
с1 содержит
только
символы не
содержащиеся
в c2
CA
с1 содержит
хотя бы один
символ из c2
NA
с1 не
содержит ни
одного
символа из c2
30.09.2020
Пример
‘ABCDE’ CO ‘XYZ’
is false;
‘ABCDE’ CO ‘AB’
is false;
‘ABCDE’ CO ‘ABCDE’ is true;
SY-FDPOS = 0.
SY-FDPOS = 2.
SY-FDPOS = 5.
‘ABCDE’ CA ‘CY’ is true; SY-FDPOS = 2.
‘ABCDE’ CA ‘XY’ is false; SY-FDPOS = 5.
63
64. Основные конструкции ABAP
Сравнение строк №2Оператор
Описание
CS
с1 содержит
подстроку c2
NS
с1 не содержит
подстроки c2
CP
вся строка с1
соответствует
шаблону c2
NP
с1 не
соответствует
шаблону c2
30.09.2020
Пример
‘ABCDE’ CS ‘CD’ is true; SY-FDPOS = 2.
‘ABCDE’ CS ‘XY’ is false; SY-FDPOS = 5.
‘ABAAA’ CS ‘AB ’ is true; SY-FDPOS = 0.
‘ ABC’ CS ‘ AB’ is true; SY-FDPOS = 1.
‘ABC DEF’ CS ‘ ’ is true; but: SY-FDPOS = 0,
‘ABCDE’
‘ABCDE’
‘ABCDE’
‘ABCDE’
‘ABCDE’
CP
CP
CP
CP
CP
‘*CD*’ is true; SY-FDPOS = 2.
‘*CD’ is false; SY-FDPOS = 5.
‘++CD+’ is true; SY-FDPOS = 0.
‘+CD*’ is false; SY-FDPOS = 5.
‘*B*D*’ is true; SY-FDPOS = 1.
64
65. Основные конструкции ABAP
Циклы.30.09.2020
65
66. Основные конструкции ABAP
Условия, переходы.30.09.2020
66
67.
Спасибо за внимание!Контактная информация
410015, г. Саратов, ул. Фабричная, д. 1
Тел.: +7 (8452) 47-09-14, 4402
E-mail: [email protected]
30.09.2020