Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

BC400_RU_ECC_2005

.pdf
Скачиваний:
1462
Добавлен:
21.05.2015
Размер:
40.8 Mб
Скачать

BC400

Урок: Работа с функциональными модулями

Задание 2:

Обновление таблицы базы данных согласно данным, введенным пользователем

1.Измените процесс обработки кода функции SAVE для вызова функционального модуля BC400_UPDATE_BOOK с целью обновления базы данных.

a)См. выдержку из исходного текста в примере решения.

2.Добавьте перенос введенных пользователем данных в функциональный модуль согласно их типу, а также обработку особых ситуаций в функциональном модуле.

a)См. выдержку из исходного текста в примере решения.

3.Если база данных была обновлена успешно, происходит возврат к основному списку с выводом сообщения 148 класса сообщений BC400 (соответствующий тип сообщения: "S").

В противном случае выводится сообщение об ошибке 149 класса сообщений BC400 (тип сообщения: "E").

a)См. выдержку из исходного текста в примере решения.

Результат

Выдержка из исходного текста SAPBC400UDS_DYNPRO_5:

MODULE user_command_0100 INPUT.

CASE ok_code.

WHEN ’BACK’.

SET SCREEN 0.

WHEN ’RW’.

CALL FUNCTION ’POPUP_TO_CONFIRM’

EXPORTING

 

 

titlebar

= text-002

text_question

= text-001

display_cancel_button = space

IMPORTING

 

 

answer

 

= answer.

CASE answer.

 

 

WHEN ’1’.

 

 

SET SCREEN

0.

 

WHEN ’2’.

 

 

SET SCREEN

100.

 

ENDCASE.

 

 

WHEN ’SAVE’.

MOVE-CORRESPONDING sdyn_book TO wa_sbook.

Продолжение на следующей странице

 

© 2006 г. SAP AG All rights reserved. Авторские

361

06-04-2006

права защищены.

Глава 10: Повторно используемые компоненты

BC400

CALL FUNCTION ’BC400_UPDATE_BOOK’

 

 

EXPORTING

 

 

iv_book = wa_sbook

 

 

EXCEPTIONS

 

 

book_not_found

= 1

 

update_sbook_rejected

= 2

 

book_locked

= 3

 

currency_conversion_error

= 4

 

OTHERS

= 5.

IF sy-subrc = 0.

 

MESSAGE s148(bc400).

 

SET SCREEN 0.

 

ELSE.

 

 

MESSAGE e149(bc400).

 

ENDIF.

 

ENDCASE.

 

 

ENDMODULE.

" USER_COMMAND_0100

INPUT

362

© 2006 г. SAP AG All rights reserved. Авторские

 

права защищены.

06-04-2006

BC400

Урок: Работа с функциональными модулями

Резюме по уроку

Теперь вы сможете:

выполнять поиск функциональных модулей

получать информацию о функциональных возможностях и способах использования функциональных модулей

вызывать функциональный модуль в программе

 

© 2006 г. SAP AG All rights reserved. Авторские

363

06-04-2006

права защищены.

Глава 10: Повторно используемые компоненты

BC400

Урок: Работа с методами

Обзор урока

Множество функций в SAP-системе реализовано в форме классов или методов. На этом уроке описывается ряд базовых объектно-ориентированных элементов синтаксиса ABAP-объектов, при этом в качестве примера используется ALV List Viewer. ALV List Viewer можно использовать для вывода на экране графически отформатированной внутренней таблицы.

Этот урок не содержит полную информацию о программировании ALV List Viewer и включает в себя лишь краткое описание преимуществ имеющихся классов и методов.

Цели урока

Прослушав этот урок, вы сможете

выполнять базовые шаги объектно-ориентированного программирования ABAP (создание инстанций и вызов методов) для использования классов и методов, имеющихся в стандартной SAP-системе

выводить внутреннюю таблицу на экран с использованием SAP Grid Control (ALV List Viewer)

Практический пример

В программе необходимо задействовать стандартные функции, инкапсулированные в глобальные классы.

364

© 2006 г. SAP AG All rights reserved. Авторские

 

права защищены.

06-04-2006

BC400

Урок: Работа с методами

Работа с методами

Рисунок 205: Классы и объекты

Класс представляет собой формальное описание объектов (инстанций).

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

Вкачестве несложного примера рассмотрим бронирование рейсов. Каждая инстанция этого класса соответствует одной фактической брони и имеет собственные атрибуты, специфичные для брони, такие как идентификатор брони, дата бронирования, флаг отмены и т. д. Метод инстанции бронирования может, например, инициировать отмену бронирования. Вызов этого метода инстанции фактической брони приводит к изменению соответствующего атрибута брони, в данном случае “ флага отмены ”.

Классы могут быть определены локально в пределах программы или глобально в библиотеке классов.

 

© 2006 г. SAP AG All rights reserved. Авторские

365

06-04-2006

права защищены.

Глава 10: Повторно используемые компоненты

BC400

В поставляемой SAP-системе имеется множество глобальных классов с методами, которые имеют все необходимые функциональные возможности для многократного использования. Следовательно, эти классы и методы также относятся к многократно используемым компонентам.

Рекомендация: Язык ABAP был расширен SAP и дополнен объектно-ориентированными элементами синтаксиса (ABAP-объектами) в версии 4.6 и выше. Однако вследствие ограниченности времени в данном курсе описываются не все эти компоненты. На этом уроке иллюстрируются только базовые шаги, предоставляющие возможность использования классов и методов, поставляемых SAP. Для получения более подробной информации об объектно-ориентированном программировании см. курс BC401.

Рисунок 206: Создание объектов и вызов методов

Инстанции не имеют имен, поэтому для получения возможности создания инстанций классов и обращения к ним необходимо определить ссылочные переменные. Они являются указателями, которые могут обозначать соответствующие инстанции. Ссылочные переменные имеют имена, которые могут использоваться для обращения к соответствующим инстанциям.

Ссылочные переменные определяются следующим образом:

366

© 2006 г. SAP AG All rights reserved. Авторские

 

права защищены.

06-04-2006

BC400

Урок: Работа с методами

DATA reference_name TYPE REF TO class_name.

После запуска программы ссылочная переменная содержит начальное значение (“ т.е. не указывает на какую-либо инстанцию ”). После того, как она в первый раз будет использована для создания инстанции, ее начальное значение изменяется на обозначение этой инстанции.

Критерии выбора определяются при помощи оператора

CREATE OBJECT reference_name.

посредством которого создается инстанция класса, указанного в определении ссылочных переменных. После этого ссылочная переменная будет указывать на эту созданную инстанцию.

При использовании оператора CREATE OBJECT может потребоваться перенос данных в параметры импорта специального метода CONSTRUCTOR

. Этот специальный метод выполняется автоматически непосредственно после создания инстанции. В процессе его выполнения происходит передача значений в соответствующие атрибуты новой инстанции на основе его параметров импорта.

Вызов методов инстанции осуществляется посредством оператора

CALL METHOD reference_name->method_name.

В отличие от вызова функционального модуля, в данном случае указания имени метода недостаточно. Необходимо также указать соответствующую инстанцию, поскольку в программе могут существовать несколько инстанций данного класса.

 

© 2006 г. SAP AG All rights reserved. Авторские

367

06-04-2006

права защищены.

Глава 10: Повторно используемые компоненты

BC400

Рисунок 207: Пример стандартных классов: классы управляющих элементов EnjoySAP

В SAP версии 4.6 и выше имеется множество управляющих элементов EnjoySAP, посредством которых можно создавать более эргономичные и интересные экраны. На рисунке выше показано несколько таких управляющих элементов:

Управляющий элемент сетки предназначен для вывода на экран внутренней таблицы с использованием таких функций, как сортировка, фильтрация, суммирование и т.д.

Управляющий элемент для изображения предназначен для вывода на экран изображения.

Управляющий элемент для HTML Viewer предназначен для вывода на экран HTML-файла или веб-страницы.

Управляющий элемент дерева предназначен для вывода на экран иерархического списка древовидной структуры.

Обращение к управляющим элементам выполняется посредством классов и методов, имеющихся в стандартной поставляемой SAP-системе. Далее описывается использование класса CL_GUI_ALV_GRID в целях иллюстрации многократного использования существующих классов для обращения к наиболее интересному и популярному компоненту ALV Grid Control.

368

© 2006 г. SAP AG All rights reserved. Авторские

 

права защищены.

06-04-2006

BC400

Урок: Работа с методами

Для получения подробной информации обо всех управляющих элементах EnjoySAP и их взаимодействии см. курс BC412.

Рисунок 208: Пример приложения: ALV Grid Control

Компонент ALV Grid Control, также называемый SAP List Viewer (ALV), используется для вывода на экране внутренней таблицы. Он имеет множество пользовательских функций.

Пользователь может изменять ширину столбцов на экране; кроме того, ширина может автоматически корректироваться в соответствии с

выводимыми данными. Расположение выводимых столбцов также можно изменять путем перетаскивания.

Стандартные кнопки управления могут использоваться, помимо прочего, для выполнения следующих функций:

При просмотре подробных данных выводятся поля, которые были выбраны ранее в модальном диалоговом окне при помощи курсора.

Функция сортировки позволяет пользователю задать ряд критериев для сортировки столбцов.

В пределах выбранной области можно использовать функцию поиска для нахождения определенной строки символов в строках или столбцах.

Можно подсчитать сумму по одному или каждому из нескольких столбцов с числовыми значениями. Функция Промежуточные суммы позволяет создавать списки уровней сортировки. Перед применением

 

© 2006 г. SAP AG All rights reserved. Авторские

369

06-04-2006

права защищены.

Глава 10: Повторно используемые компоненты

BC400

этой функции можно выбрать требуемые столбцы с нечисловыми значениями, в этом случае на экран будут выведены соответствующие итоговые значения.

Кроме того, можно выполнить функции Печать и Выгрузка путем нажатия соответствующих кнопок.

Пользователь может сохранить свои настройки в управляющем элементе сетки в качестве варианта просмотра и повторно использовать их в дальнейшем.

Рисунок 209: Архитектура выполнения SAP-управляющего элемента сетки

Управляющие элементы EnjoySAP всегда должны быть интегрированы в управляющий элемент SAP-контейнера (далее – контейнер). Контейнер должен быть интегрирован в подготовленную область управляющего элемента на экране. (См. левую часть вышеприведенного рисунка.)

С точки зрения GUI, для внедрения управляющего элемента сетки и контейнера соответствующие инстанции должны быть созданы как заместители в программе. Эти инстанции можно использовать для адресации элементов GUI. Для этого в SAP-системе имеются стандартные классы, из которых можно генерировать инстанции управляющих элементов сетки и контейнера.

370

© 2006 г. SAP AG All rights reserved. Авторские

 

права защищены.

06-04-2006

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]