Слайд 1BC 400
Введение в
ABAP-инструментальные средства
Юрий Шарапов
Слайд 3Порядок изложения материала
выборка данных
средства анализа программ
повторно используемые компоненты
потоки данных
Слайд 4Взаимодействие между различными уровнями сервера
Слайд 5Передача экрана выбора из исполняющей системы
Слайд 6Вставка значений ввода в объекты данных
Слайд 7Запрос программы на чтение из базы данных
Слайд 10Репозитарий
включает в себя все объекты разработки системы
Слайд 12Информационная система репозитария se84
для поиска объектов репозитария независимых от приложения
Слайд 13Иерархия приложений SAP se81
для поиска объектов репозитария зависимых от приложения
Слайд 14Навигатор по объектам se80
Инструментальная
область
Область
навигации
Слайд 15Инструменты ABAP-инструментальных средств
Позволяет вывести на экран список необходимых объектов репозитария
Слайд 16Организация разработок
Проект
Задача
Задача
Задача
Задача
Пакет
Программа
ФМ
Экран
Определение таблицы
Запрос
на изменение
Слайд 17Закрытие проектов разработок
После выполнения своей задачи разработки сотрудник проекта производит
проверку качества и деблокирует свою задачу в запросе на изменение
Номер
запроса
Руководитель проекта
Номер задачи
Исполнитель
задачи
Объект репозитария, кот. обрабатывает исполнитель
Слайд 18Закрытие проекта через деблокирование запроса
Слайд 20Преимущество работы с запросами на изменение
1. каждый сотрудник может отслеживать свои
действия по проекту;
2. объекты разработки могут обрабатывать все члены проекта, для
остальных объекты заблокированы до завершения проекта;
3. объединенный перенос объектов разработки обеспечивается автоматически путем присвоения объектов запросу на изменение
Слайд 22Создание пакета
Прикладной компонент
местоположение пакета в пределах иерархии приложений
Компонент программного обеспечения
для
собственных разработок необходимо ввести HOME
Уровень переноса
определяет целевую систему переноса
Тип пакета
стандартный
(может содержать объекты репозитария и другие пакеты);
основной (может содержать только другие пакеты);
пакет структур (может содержать только основные пакеты)
Слайд 25Код возврата операторов
sy-subrc!!!
Слайд 26Неактивные и активные объекты разработки
Слайд 27Этапы активации
1. сохранение объекта как неактивной версии;
3. замена ранее активной версии на
неактивную;
2. проверка синтаксиса или непротиворечивости неактивной версии;
4. создание соответствующего динамического объекта для
выполнения (в случае программы)
Слайд 28Запуск версий
Активная версия – если программа запускается с использованием контекстного
меню области навигации или посредством транзакции. Выполняется компиляция LOAD, сгенерированная
при последней активации
Неактивная версия – если запускается версия загруженная в редактор при помощи кнопки F8. Из нее создается и выполняется временный динамический объект.
Слайд 29Транзакция SAP
прикладная программа, выполняющая бизнес-процесс в системе, осуществляющая над данными
определенный логически завершенный набор действий
способ запуска программы
технически - это "ярлык"
для вызова программы на ABAP/4
Слайд 31Преобразование с помощью прозрачных таблиц
При активации прозрачной таблицы в базе
данных автоматически создается таблица с тем же именем
Слайд 32Элемент данных и домен
Элементы данных для определения внутренних программных переменных
или описания полей прозрачных таблиц
Слайд 33Техническая структура прозрачной таблицы
Слайд 34Прозрачные таблицы
в ABAP-словаре
Ключевые поля
Слайд 35Элементы словаря для определения
объектов данных в программе
Слайд 36Определение элемента с помощью словаря
Использование семантических свойств соответствующего элемента
Слайд 38Типы данных в ABAP
Типы
Стандартные
Пользовательские
Полные
Неполные
Слайд 39Полные типы
D (Date), ГГГГММДД, длина. 8(фиксированная)
T (Time), ЧЧММСС, длина. 6
(фиксированная)
XSTRING Тип байтовой последовательности динамической длины (HeXadecimal string)
I (Integer), длина
4 (фиксированная)
F (Floating), длина 8 (фиксированная)
STRING Тип символьной строки динамической длины
Слайд 40Неполные типы
C Тип символьной строки (Character)
P Тип упакованного числа (Packed
number), можно указать количество десятичных знаков
N Тип числовой символьной строки
(Numerical character)
X Тип для байтовой последовательности (HeXadecimal string)
Во всех неполных типах необходимо указать фиксированную длину
Слайд 42Виды переменных и типов
Виды
Программируемые
Словарные
Глобальные
Локальные
Описываются в репозитарии
Описываются внутри подпрограмм
Описываются в TOP-include
Слайд 45Примеры определения элементарных объектов данных
ссылка на уже определенный объект данных
Слайд 46Некоторые особенности описания переменных
* инициализация
DATA: l_p1 TYPE c VALUE ‘*’.
*
Одно и то же
DATA: l_p2(1) TYPE c.
DATA: l_p2 TYPE c.
DATA:
l_p2.
Слайд 48Базовые операторы
MOVE var1 TO var2. (возможен конфликт типов)
CLEAR var1. (присваивает
специфичное начальное значение)
+ сложение
- вычитание
* умножение
/ деление
** возведение в степень
DIV
деление на целое число без остатка
MOD деление на целое число с остатком
Слайд 49Приоритет опреаций
выражения в скобках ( )
возведение в степень 2**a
умножение/деление *
/
сложение/вычитание + -
Слайд 50Некоторые особенности
Скобки и арифметические операции являются ключевыми словами ABAP. Должны
быть отделены от других слов по крайней мере одним пробелом
Некоторые
функции для различных типов данных предварительно определяются в среде выполнения ABAP. length = STRLEN( cityfrom ) .
Слайд 52Циклы
1. Безусловные/управляемые индексом циклы
2. Управляемые заголовком циклы
3. Циклы считывания
Слайд 54Отладка программы
Способы запуска отладки:
2. Поставить break-point на нужной строке и
запустить программу (возможна только для активированных программ)
1. В области навигации
для программы в контекстном меню выберите Выполнить → Отладка.
3. Использование ключа /h
Слайд 55Точка наблюдения
представляет собой точку прерывания, зависящую от содержимого поля
Слайд 56Структуры
в ABAP-словаре
Простая структура
Сложная структура (включает другие структуры или таблицы)
Для описания
в программе используется:
1. структура, определенная в словаре
2. прозрачная таблица (как
тип структуры)
3. тип структуры, локально описанный в программе
Слайд 58MOVE-CORRESPONDING
Перенос данных между компонентами, которые имеют одно и то же
имя в исходной и целевой структуре
Слайд 59Внутренние таблицы
Внутренняя таблица – это объект данных, в котором во
время выполнения хранятся одинаково структурированные записи данных
Слайд 61Виды внутренних таблиц
Стандартная
DATA lt_tab TYPE STANDARD TABLE OF ts_tab.
Хешированная
DATA lt_tab
TYPE HASHED TABLE OF ts_tab.
Сортированная
DATA lt_tab TYPE SORT TABLE
OF ts_tab.
Слайд 63Стандартная внутренняя таблица
Применяется
когда главным образом для доступа к внутренней таблице,
используется индекс
в разных частях программы необходима сортировка по разным полям
таблицы
Относится к индексному типу таблиц, т.к. возможно считывание записей по индексу
Одно и то же
DATA lt_tab TYPE STANDARD TABLE OF ts_tab.
DATA lt_tab TYPE TABLE OF ts_tab.
Слайд 64Сортированная внутренняя таблица
Нельзя использовать оператор SORT для сортировки, т.е. нельзя
сортировать программно
Относится к индексному типу таблиц, т.к. возможно считывание записей
по индексу
Применяется когда главным образом для доступа к внутренней таблице, используется ключ, или если требуется автоматическая сортировка таблицы по ключу
Нельзя использовать оператор APPEND для добавления строк в таблицу, только INSERT
Слайд 65Хешированная внутренняя таблица
НЕ относится к индексному типу таблиц, т.к. нельзя
считывать записи по индексу, только по ключу
Применяется, когда внутренняя таблица
чрезвычайно объемна и возможно обращение по ключу
Слайд 66Три части объявления внутренней таблицы
DATA lt_tab TYPE SORTED TABLE OF scarr
WITH UNIQUE KEY carrid.
тип таблицы
ключ таблицы
вид таблицы
Слайд 67Описание внутренней таблицы через тип таблицы
Слайд 68Описание внутренней таблицы через программируемые типы
Слайд 69Независимое описание внутренней таблицы
Слайд 70Возможные определения внутренних таблиц
Слайд 76Добавление записей в таблицу
Запись в таблицу
INTO TABLE itab
Добавление записей
в таблицу
APPENDING TABLE itab
Слайд 78SY-DBCNT
Количество считанных записей
Слайд 79Считывание данных из таблиц с мандантом
SELECT *
FROM SPFLY
CLIENT SPECIFIED
INTO …
WHERE
mandt = 402 AND carrid = ‘AA’.
Информация о текущем манданте
в поле sy-mandt
Слайд 80Первичный индекс
состоит из всех ключевых полей таблицы базы данных и
создается автоматически
используется для ускорения доступа при выборе по всем ключевым
полям или части ключевых полей, выровненной по левому краю
Слайд 83Использование ракурса БД
Ракурс БД не содержит избыточные данные
Слайд 85Объекты полномочий и полномочия
из таблицы TACT
Слайд 86Проверка на любое значение поля CARRID
AUTHORITY-CHECK OBJECT ’S_CARRID’
ID ’CARRID’ DUMMY
ID
’ACTVT’ FIELD ’02’.
Слайд 88Создание объектов полномочий su21
Слайд 89Проверка полномочий в программе
Обязательно!!!
Слайд 91Динамический анализ производительности программы
позволяет измерить рабочие характеристики программ и получить
подробный отчет о производительности
может использоваться для поиска в программе блоков
исходного текста с низкой производительностью и их корректировки
Слайд 93Выполнение динамического анализа
Слайд 94Результаты динамического анализа
Слайд 97Необходимость использования подпрограмм
Слайд 103События ABAP
Динамические значения по умолчанию
Проверка полномочий
Основная обработка
Слайд 106AT LINE-SELECTION
инициируется двойным щелчком пользователя по списку, который создается операторами
WRITE
может использоваться для вывода подробной информации по выбранной строке списка
Слайд 112Перевод текстовых элементов
Перейти к → Перевод
Слайд 115Создание нескольких
вторичных списков
Слайд 116Пример использования вторичного списка
Слайд 119Семантическая информация о глобальных типах
Слайд 122Особенности варианта
Варианты с префиксом "CUS&" – системные варианты. Они переносятся
как обычные объекты репозитария и не зависят от манданта.
Инструментальные средства
→ Запрос на перенос для указания подлежащих переносу вариантов и запроса на перенос. Перенос выполняется после деблокирования запроса.
Пользовательские варианты зависят от манданта и должны переноситься отдельно.
Перейти к → Варианты для перехода к функции управления вариантами программы. Выполнить ведение вариантов с учетом требуемых значений и атрибутов.
Слайд 123Использование критериев выбора (SELECT-OPTIONS)
Слайд 125Обязательные столбцы
SELECT-OPTIONS
sign (включение)
I – включить, Е – исключить
option
EQ – равенство,
BT – между
low (нижняя граница)
high (верхняя граница)
Слайд 130Вызов экрана
CALL SCREEN num.
CALL SCREEN 0. – возвращение к предыдущему
экрану
Слайд 133Создание полей со ссылкой на ABAP-словарь
Слайд 134Оператор TABLES
Используется для определения структурной переменной с типом и именем,
совпадающим с типом и именем ссылочной структуры словаря в программе
(например, прозрачная таблица). Эта структурная переменная служит интерфейсом между программой и экраном.
Слайд 135Создание полей со ссылкой на ABAP-словарь
Слайд 143SET SCREEN
используется для динамической перезаписи следующего экрана по умолчанию, указанного
в атрибутах экрана
Слайд 145Случайный перенос OK_CODE
Нажатие Enter по умолчанию не приводит к вставке
кода функции в ok_code, а инициирует перенос ok_code из экрана
в PAI
Слайд 146Предотвращение случайных кодов функций
Слайд 148GUI-заголовок
1.это заголовок текущего экрана
2.максимальная длина 20 символов
3. наследуется всеми последующими экранам
4. если
каждый из последующих экранов должен иметь собственный заголовок, необходимо создать
отдельный заголовок для каждого экрана
Слайд 149GUI-статус
1. Строка меню (главное меню)
2. Функциональные клавиши (горячие клавиши)
3. Строка кнопок (кнопки панели
инструментов)
Слайд 150Наследование статуса следующими экранами
Слайд 151Многократное использование с переопределением
ссылки на соответствующие подобъекты уже созданного статуса
Слайд 153Ведение строки меню в редакторе меню
≤ 8 меню
Слайд 154Присвоение функциональных клавиш
1
2
3
OK_CODE!!!
Слайд 155Определение ссылок на подобъекты доступного статуса
Слайд 156Установка активности и неактивности функций в статусе
Слайд 159Функциональный модуль (ФМ)
подпрограмма с определенной функцией, централизованно хранящуюся в библиотеке
функций SAP-системы
имеет интерфейс для импорта или экспорта параметров
Основная цель применения
- многократное использование
Слайд 161Особые ситуации
инициируются при возникновении определенных ошибок
содержат информацию о соответствующей ошибке
обработки
должны обрабатываться вызывающей программой
Слайд 163Особенности вызова ФМ
При вызове программой ФМ загружается вся соответствующая группа
функций, после чего выполняется ФМ.
ГФ остается загруженной в рабочую память
до закрытия вызывающей программы
Вызов другого ФМ этой группы функций, обрабатывается без повторной загрузки и с теми же самыми глобальными данными группы функций.
Слайд 166Пример ФМ с диалогом
Диалог интегрирован в ФМ, который также можно
использовать в собственных программах
Слайд 170Генерация исходного текста для вызова ФМ
Слайд 173Определение классов
Классы могут быть определены:
локально в пределах программы
глобально в библиотеке
классов
se24
Слайд 174Создание объектов и вызов методов
Ссылочная переменная
Создание объекта
Вызов метода
Слайд 175CONSTRUCTOR
выполняется автоматически непосредственно после создания инстанции
в процессе его выполнения происходит
передача значений в соответствующие атрибуты новой инстанции на основе его
параметров импорта
Слайд 176Классы управляющих
элементов EnjoySAP
Слайд 180Важные методы для класса управляющих элементов сетки
Слайд 181Создание элемента экрана "Область специального
управляющего элемента"