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

BC400_RU_ECC_2005

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

BC400

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

Рисунок 198: Пример функционального модуля с диалогом пользователя (I)

Во многих ABAP-программах после выбора опции Отменить выводится экран подтверждения. На этом экране отображается стандартный текст “ Данные будут потеряны ”, а также произвольно задаваемый текст (см.

рисунок выше). Пользователь может выбрать вариант Да или Нет.

Рисунок 199: Пример функционального модуля с диалогом пользователя (II)

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

 

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

351

06-04-2006

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

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

BC400

При вызове этого функционального модуля может осуществляться передача этому модулю дополнительных текстов заголовков посредством соответствующих параметров импорта. Функциональный модуль передает экран своей группы функций, который содержит текстовые строки и заголовок, а также кнопки Да и Нет. Затем посредством параметра экспорта ANSWER в вызывающую программу передается информация о кнопке, нажатой пользователем.

Рисунок 200: Интерфейс функционального модуля

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

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

352

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

 

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

06-04-2006

BC400

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

Рисунок 201: Документация и среда тестирования

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

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

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

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

 

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

353

06-04-2006

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

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

BC400

Рисунок 202: Вызов функционального модуля

Вызов функциональных модулей производится посредством ABAP-оператора CALL FUNCTION. В нем указывается имя функционального модуля заглавными буквами в одинарных кавычках.

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

Вблоке IMPORTING вызова производится присвоение параметрам экспорта приемных переменных, посредством которых осуществляется получение результатов вызова.

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

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

354

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

 

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

06-04-2006

BC400

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

Рисунок 203: Генерация исходного текста для вызова функционального модуля

При внедрении вызовов в исходном тексте рекомендуется создавать вызовы посредством кнопки Модель во избежание ошибок в написании текста. Кроме того, можно вывести группу функций в области навигации и затем создать вызов функционального модуля в исходном тексте путем перетаскивания в область редактора.

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

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

 

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

355

06-04-2006

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

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

BC400

Рисунок 204: Обработка особых ситуаций

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

ситуацию. В результате обработка функционального модуля прерывается, и происходит возврат в вызывающую программу. Если возникшая особая ситуация присутствует в блоке EXCEPTIONS данного вызова, то в системное поле sy-subrc вызывающей программы вводится указанный код возврата. Проверка этого поля после вызова позволяет определить, была ли инициирована особая ситуация, и если да, то какая именно, после чего выполнить соответствующую обработку. Если при выполнении функционального модуля особые ситуации отсутствовали, поле sy-subrc вызывающей программы содержит нулевое значение.

Кроме того, существует возможность определения возврата некоторых из возможных особых ситуаций и задания другого кода возврата для всех не указанных особых ситуаций. Для этого необходимо ввести формальную особую ситуацию OTHERS с требуемым (произвольным) кодом возврата.

При выполнении вызова все особые ситуации должны выявляться и соответствующим образом обрабатываться программой. Если

инициированная особая ситуация не выявлена, возникнет динамическая ошибка.

356

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

 

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

06-04-2006

BC400

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

Упражнение 18: Использование функциональных модулей

Цели упражнения

Выполнив это упражнение, вы сможете

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

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

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

При выборе функции Отменить на экране программы происходит обработка диалогового окна подтверждения. Кроме того, при выборе опции Сохранить производится обновление записи данных в таблице базы данных.

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

Задание 1:

Внедрение стандартного диалога подтверждения для функции Отменить

1.Расширьте программу ZBC400_##_DYNPRO_1 или скопируйте шаблон SAPBC400UDS_DYNPRO_4 в новую программу

ZBC400_##_DYNPRO_5.

2.Вывод диалогового окна подтверждения для функции Отменить инициируется функциональным модулем POPUP_TO_CONFIRM. Изучите интерфейс функционального модуля, прочтите документацию и протестируйте функциональный модуль в среде тестирования.

3.В GUI-статусе экрана активируйте функцию Отменить (код функции

"RW").

4.Расширьте модуль USER_COMMAND_0100 и проанализируйте код функции для функции Отменить. Затем внедрите вызов функционального модуля POPUP_TO_CONFIRM с использованием кнопки Модель. Определите следующую реакцию на ответ пользователя, возвращаемый функциональным модулем:

- если пользователь выбрал отмену, для параметра следующего экрана динамически устанавливается значение "0";

- в противном случае выполняется переход к экрану 100.

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

 

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

357

06-04-2006

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

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

BC400

Задание 2:

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

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

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

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

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

358

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

 

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

06-04-2006

BC400

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

Решение 18: Использование функциональных модулей

Задание 1:

Внедрение стандартного диалога подтверждения для функции Отменить

1.Расширьте программу ZBC400_##_DYNPRO_1 или скопируйте шаблон SAPBC400UDS_DYNPRO_4 в новую программу

ZBC400_##_DYNPRO_5.

a)Этот шаг выполняется в соответствии с обычной процедурой.

2.Вывод диалогового окна подтверждения для функции Отменить инициируется функциональным модулем POPUP_TO_CONFIRM. Изучите интерфейс функционального модуля, прочтите документацию и протестируйте функциональный модуль в среде тестирования.

a)Этот шаг выполняется в соответствии с описанием в учебных материалах.

Обязательные параметры импорта:

TEXT_QUESTION (макс. 80 знаков): вопрос в диалоговом окне.

Необязательные параметры импорта:

TITLEBAR (макс. 40 знаков): заголовок диалогового окна.

DIAGNOSE_OBJECT(SE61, тип DT): дополнительный диагностический текст, выводимый над текстом вопроса в диалоговом окне.

TEXT_BUTTON_1 (макс. 8 знаков): текст на первой кнопке.

ICON_BUTTON_1 (макс. 30 знаков): имя пиктограммы на первой кнопке (таблица ICON).

TEXT_BUTTON_2 (макс. 8 знаков): текст на второй кнопке.

ICON_BUTTON_2 (макс. 30 знаков): имя пиктограммы на второй кнопке (таблица ICON).

DEFAULT_BUTTON ("1", "2" или "A"): кнопка с присвоением по умолчанию.

DISPLAY_CANCEL_BUTTON ("X". " ’’): отображение кнопки Отменить.

USERDEFINED_F1_HELP (SE61, тип DT):

пользовательский текст справки, выводимый на экран при нажатии дополнительной кнопки.

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

 

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

359

06-04-2006

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

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

BC400

START_COLUMN (тип SY-CUCOL): начальный столбец диалогового окна.

START_ROW (тип SY-CUROW): начальная строка диалогового окна.

POPUP_TYPE (тип ICON-NAME): пиктограмма, выводимая рядом с текстом вопроса в диалоговом окне.

IV_QUICKINFO_BUTTON_1 (макс. 132 знака):

всплывающая подсказка для первой кнопки.

IV_QUICKINFO_BUTTON_2 (макс. 132 знака):

всплывающая подсказка для второй кнопки. Параметр экспорта (всегда является необязательным):

ANSWER (значение: "1", "2", "A"): ответ, выбранный пользователем.

Необязательные табличные параметры:

PARAMETER (тип строки SPAR): таблица переноса для параметров в текстах диагнозов и вопросов.

Особые ситуации:

TEXT_NOT_FOUND: диагностический текст не найден.

3.В GUI-статусе экрана активируйте функцию Отменить (код функции

"RW").

a)Этот шаг выполняется в соответствии с обычной процедурой.

4.Расширьте модуль USER_COMMAND_0100 и проанализируйте код функции для функции Отменить. Затем внедрите вызов функционального модуля POPUP_TO_CONFIRM с использованием кнопки Модель. Определите следующую реакцию на ответ пользователя, возвращаемый функциональным модулем:

- если пользователь выбрал отмену, для параметра следующего экрана динамически устанавливается значение "0";

- в противном случае выполняется переход к экрану 100.

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

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

360

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

 

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

06-04-2006

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