
BC400_RU_ECC_2005
.pdf
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 |