Р. Кречмер, В. Вейс - Разработка приложений SAP R3 на языке АВАР4. Р. Кречмер, В. Вейс - Разработка приложений SAP R3 на языке АВАР. Разработкаприложений sap r3Рюдигер Кречмерна языкеВольфганг Вейс
Скачать 28.36 Mb.
|
Классы разработки Классы разработки обеспечивают создание крупных прикладных программ в распределенной среде. Набор объектов разработки (например, программы или таблицы Dictionary) образует класс разработки, который может быть преобразован в компоненты системы R/3, Обычно объекты приложения внутри класса разработки тесно связаны друг с другом (как элементы прикладной задачи), но очень слабо за- висят от остальной части системы. Используя Object Browser, на экран можно вывести объекты, принадлежащие одному классу разра- ботки. Для этого нужно просто ввести имя класса на первом экране Object Browser и нажать кнопку Display (рис. D.1). Пример класса с именем SLDB приведен на рис. D.2. За каждый класс разработки отвечает конкретный разработчик. При создании класса (например, ZTST) его следует присоединить к системе R/3 (называемой системой для интеграции - integration system), в которой объекты данного класса создаются и изменяются {например, ABC). Одновременно нужно задать систему, предназначенную для последующего объединения разрабатываемых объектов (consolida- tion system). В эту систему по умолчанию будут передаваться объекты из данного класса разработки (на- пример, система XYZ). Для того чтобы узнать имена систем integration и consolidation, нужно дважды щелкнуть мышью на имени класса разработки на экране Development Class (класс разработки), который приведен на рис. D.2. В результате раскроется экран, аналогичный показанному на рис. D.3 для класса Если создается новый объект (например, программа для вывода на экран имен клиентов), тесно связанный с существующим (например, с программой вывода на экран фамилий клиентов), то ему сле- дует назначить тот же класс разработки, к которому принадлежит существующий (рис. D.4). Новый класс разработки задается только в том случае, если создаваемый объект фактически не связан ни с одним из существующих. Работа групп разработчиков в распределенной среде 333 Рис. D.1 Экран Object Browser, на котором отображен класс разработки SLDB Рис. D.2 Список объектов, принадлежащих классу разработки SLDB Новый класс разработки создается на экране Object Browser при создании нового объекта и задании его атрибутов. Для этого на экране Object Browser нужно включить радиокнопку Development Class и задать имя нового класса в соответствующем поле ввода. После щелчка мышью на кнопке Display сис- тема выведет на экран диалоговое окно с запросом на подтверждение создания данного класса разра- ботки. Для подтверждения нажмите кнопку Yes. Тогда на следующем экране система предложит задать атрибуты нового класса. Сохраните введенные значения, щелкнув на кнопке Save. Соглашение об име- нах системы R/3 определяет, что имена всех классов, создаваемых разработчиками, должны начинаться с букв Y — Z, поскольку система R/3 написана на языке АВАР/4 и тоже использует классы разработки и соглашение об именах. Поэтому, если разработчик в качестве первой буквы имени класса разработки применяет другой (не Y — Z) символ, данный класс может оказаться внутренним классом самой системы R/3, а это способно привести к конфликту или к перезаписи внутреннего класса. 334 Приложение D Рис. D.3 Информация о системах integration и consolidation для класса разработки SLDB Рис. D.4 Назначение класса разработки для программы Создание заданий (Tasks) и запросы на изменения (Change Requests) Как было сказано ранее, новые и измененные объекты должны быть приписаны не только к классу, но и к некоторым заданиям (Tasks). В свою очередь, группа заданий образует запрос на изменение (Change Request). К одному заданию могут принадлежать несколько объектов, а запрос на изменение может состоять из нескольких заданий. Каждое задание связано с конкретным разработчиком и содер- жит объекты (программы, структуры Dictionary и т.д.), принадлежащие этому разработчику. При создании или изменении объекта система строит запрос на изменение и задание. После этого, запрашивая (за несколько шагов) необходимую информацию, она заполняет запрос на изменение. Так, Работа групп разработчиков в распределенной среде 335 разработчик должен кратко описать причину построения нового запроса и затем задокументировать детали (например, как изменение повлияет на функциональные возможности системы). Всякий раз, когда к проекту присоединяется новый разработчик, он должен быть добавлен к списку запроса на изменение. Система автоматически строит задание для нового разработчика. Можно изме- нить владельца задания, однако это делается исключительно до начала выполнения запроса на измене ние. Объекты, включенные в задание, разрешено изменять только его владельцу. Реализация заданий и запросов на изменения Для управления запросами на изменения и их передачи используется утилита Workbench Organizer. Доступ к ней можно получить из экрана Object Browser, последовательно указав элементы: Environment Workbench Organizer. После появления основного экрана Workbench Organizer (рис. D.5) можно щелкнуть мышью на экранной кнопке Display в левой его части. Тогда на экран будут выведены все запросы на изменения, принадлежащие данному разработчику. Рис. D.5 Начальный экран Workbench Organizer По умолчанию запрос разработчика строится на основе имени, которое он ввел при регистрации в системе. Это имя система переносит в поле Request For User (запрос пользователя) (рис. D.6). Разблокировка запроса на изменение подразумевает автоматическую передачу объектов запроса из системы разработки в целевую систему. Однако перед снятием блокировки запроса на изменение необ- ходимо исполнить все задания этого запроса. На экране Workbench Organizer: Requests нужно выбрать необходимое задание (Task) и щелкнуть мышью на кнопке Release (освободить) инструментальной ли- нейки приложения (Application). Сняв блокировку всех заданий, точно так же можно разблокировать запрос на изменение. На экране Workbench Organizer Requests следует выбрать нужный запрос на изменение (Change Request) и затем щелкнуть мышью на кнопке Release инструментальной линейки Application. В дальнейшем объекты будут экспортированы из системы разработки и импортированы в целевую систему. Объекты, принадлежащие разблокированным заданиям, останутся заблокированными до тех пор, пока не окажется разблокирован соответствующий запрос на изменение и не будут экспортированы все объекты (т.е. разработчик не сможет использовать их в новом задании). Для исполнения такой передачи объектов между компонентами распределенной среды разработчику не требуется специальных знаний, касающихся операционной системы. Утилита Workbench Organizer обеспечивает все средства для передачи разблокированных объектов. Для этого на линейке меню Workbench нужно указать последовательность: Goto Logs (журнал регистрации) > Transport Log (транспортный журнал). На экране должен появиться транспортный журнал. При этом рекомендуется проверить, не возникли ли ошибки импорта на уровне целевой системы. При коллективной разработке приложений утилита Workbench Organizer обеспечивает все организационные аспекты разработки. 336 Приложение D Рис. D.6 Экран Workbench Organizer Requests, показывающий Change Requests пользователя Приложение Е Важнейшие системные поля АВАР/4 338 Приложение Е Важнейшие системные поля АВАР/4 Системное поле Значение Дата Время sy-tzone Сдвиг временной зоны относительно времени по Гринвичу Бремя активного светового дня Номер клиента sy-uname Пользователь sy-iangu Ключ языка регистрации в системе SAP sy-sysid Идентификатор системы Версия системы sy-dbsys СУБД sy-opsys Операционная система Код транзакции Основная программа sy-repid Имя отчета Значение кода возврата Индекс цикла sy-tabix Строка таблицы sy-fdpos Положение текстовой строки Число элементов с операциями базы данных sy-batch Активная фоновая обработка Номер текущего экрана Экранная группа текущего экрана Текущий статус GUI Идентификатор сообщения sy-msgty Тип сообщения (Е, I, W...) Номер сообщения Переменная сообщения sy-msgv2 Переменная сообщения Переменная сообщения sy-msgv4 Переменная сообщения Подчеркивание Вертикальная линия sy-pagno Текущая страница Текущий столбец Текущая строка списка Число строк в списке Положение курсора (столбец) sy-curow Положение курсора (строка) Номер стекового списка sy-winco Столбец курсора в окне Строка курсора в окне sy-tvarO Текстовая переменная для элементов текста Текстовая переменная для элементов текста Текстовая переменная для элементов текста Текстовая переменная для элементов текста Важнейшие системные поля АВАР/4 339 Системное поле Значение sy-tvar4 Текстовая переменная для элементов текста sy-tvar5 Текстовая переменная для элементов текста sy-var6 Текстовая переменная для элементов текста sy-tvar7 Текстовая переменная для элементов текста sy-tvar8 Текстовая переменная для элементов текста sy-tvar9 Текстовая переменная для элементов текста Описание всех системных полей можно получить, воспользовавшись функцией Help для структуры sy при работе с утилитой редактирования (Editor). Команда add append assign at line-selection at new at selection screen call function call method call screen call transaction case/endcase clear close dataset commit compute concatenate constants controls create object data delete do/enddo else exit export field-symbols format generate subroutine pool get get property hide if/endif import include insert leave message Назначение Суммирование содержимого двух полей Добавление новой строки в конец внутренней таблицы Присвоение полю типа field-symbols значения любого поля Событие, связанное с двойным щелчком мышью Управляющее прерывание для внутренней таблицы Событие, характеризующее действия пользователя на экране выбора (например, ввод данных) Вызов функции Вызов метода внешнего объекта Передача в программу полного экрана или диалогового окна Начало транзакции Ограничители программного блока оператора case Ввод новых значений переменной Закрытие файла Фиксация изменений в базе данных Вычисление значений арифметического выражения Операция конкатенации полей Определение констант Определение управляющего элемента Создание внешнего объекта Определение переменной Удаление объекта из таблицы базы данных или внутренней таблицы Цикл Ветвление, используемое при обработке программного блока if/endif Завершение текущей обработки Экспорт объектов данных Объявление полей типа "Скобки", определяющие тело подпрограммы Установка или изменение формата вывода Создание временной программы Событие для обработки логической базы данных Передача атрибутов внешнего объекта Процесс, имеющий целью скрыть (сделать невидимым) значение поля Ограничители программного блока оператора if/endif Импорт объектов данных Включение файла с исходным текстом в программу Ввод новых строк в таблицу базы данных или внутреннюю таблицу Прекращение обработки Цикл по строкам внутренней таблицы Вывод сообщения на экран Команда modify module/ end module move new-line new-page open dataset parameters perform program raise read dataset read table receive refresh replace report rollback work search select select-options set pfstatus set property set screen shift sort split statics submit tables transfer translate types update window write Назначение Изменение таблицы базы данных или внутренней таблицы Определение модуля в диалоговом экране Пересылка содержимого объектов данных Создание новой строки во время обработки списка Открытие новой страницы во время обработки списка Открытие файла Определение входного параметра на экране выбора Вызов подпрограммы Определение программы Поднятие флага исключения Чтение записи из файла Чтение элемента из внутренней таблицы Получение результатов выполнения функции, работающей в асинхронном режиме Инициализация управляющего элемента или внутренней таблицы Замена первого вхождения текста в текстовую строку Определение отчета Отмена всех изменений, сделанных в базе данных с момента последней фиксации изменений Поиск строки в объекте данных Извлечение набора данных из таблицы базы данных или представления Определение составного критерия выборки на экране выбора Задание статуса графического пользовательского интерфейса (GUI) Задание свойства внешнего объекта Задание номера следующего экрана Сдвиг поля Сортировка элементов внутренней таблицы Разбивка строки по символам-разделителям Событие, предшествующее первому доступу к таблице логической базы данных Определение статических переменных в подпрограмме Запуск отчета на выполнение Определение рабочей области таблицы Событие, соответствующее заголовку страницы Пересылка поля в файл Замена символов в текстовой строке Добавление в групповой тип новых типов и констант Определение типов данных Изменение значений в таблице базы данных Вывод диалогового окна на экран со списком Вывод на экран поля в виде списка |