Главная страница

Руководство для участников курса Версия курса 2й квартал 2005 г. Продолжительность курса 5 Дн. Номер материала 50072594


Скачать 38.91 Mb.
НазваниеРуководство для участников курса Версия курса 2й квартал 2005 г. Продолжительность курса 5 Дн. Номер материала 50072594
АнкорBC400_RU_ECC_2005.pdf
Дата13.04.2017
Размер38.91 Mb.
Формат файлаpdf
Имя файлаBC400_RU_ECC_2005.pdf
ТипРуководство
#4748
страница20 из 23
1   ...   15   16   17   18   19   20   21   22   23
Глава 10: Повторно используемые компоненты
BC400
Свойства функционального модуля включают в себя, помимо прочего,
краткое описание и группу функций, к которой относится данный модуль.
Как и в случае с подпрограммами, функциональный модуль может содержать
определения локальных типов и объектов данных. Они будут доступны только в пределах функционального модуля.
Интерфейс функционального модуля может содержать следующие элементы:

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

Параметры экспорта: выходные данные функционального модуля могут поступать в вызывающую программу посредством присвоения
“приемной переменной”. Параметры экспорта всегда являются необязательными.

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

Особые ситуации: особые ситуации могут инициироваться функциональным модулем при возникновении определенных ошибок и содержать информацию о соответствующей ошибке обработки в функциональном модуле. Особые ситуации должны обрабатываться вызывающей программой.
В общем случае присвоение интерфейсных параметров различным типам определяется в ABAP-словаре.
348
© 2006 г. SAP AG All rights reserved. Авторские права защищены.
06-04-2006

BC400
Урок: Работа с функциональными модулями
Рисунок 196: Объекты данных в группе функций
При вызове программой функционального модуля загружается вся соответствующая группа функций, после чего выполняется соответствующий модуль. Группа функций остается загруженной в рабочую память до закрытия вызывающей программы. При этом вызов другого функционального модуля, входящего в эту группу, обрабатывается без повторной загрузки и с теми же самыми глобальными данными группы функций.
Таким образом, при вызове функционального модуля, осуществляющего запись каких-либо значений в глобальные данных группы функций, другие функциональные модули в этой группе функций могут обращаться к этим данным в случае, если они вызываются в том же сеансе выполнения программы.
Помимо глобальных данных группы функций, функциональный модуль может также обращаться к собственным локально определенным объектам данных, а также собственным интерфейсным параметрам. Последние используются для получения данных или их передачи в вызывающую программу.
06-04-2006
© 2006 г. SAP AG All rights reserved. Авторские права защищены.
349

Глава 10: Повторно используемые компоненты
BC400
Рисунок 197: Поиск функциональных модулей
На рисунке выше иллюстрируются различные сценарии поиска:

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

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

Поиск в программе следует использовать в тех случаях, когда необходимо найти функциональный модуль, вызываемый в имеющейся программе.
После нахождения функционального модуля необходимо выяснить, был ли он деблокирован (атрибуты функциональных модулей), поскольку возможность ведения и совместимость "снизу вверх" обеспечиваются только при использовании деблокированных функциональных модулей. Поэтому рекомендуется использовать только те функциональные модули, которые были деблокированы.
Для получения информации о функциональных возможностях и других характеристиках функционального модуля см. документацию по конкретному функциональному модулю.
350
© 2006 г. SAP AG All rights reserved. Авторские права защищены.
06-04-2006

BC400
Урок: Работа с функциональными модулями
Рисунок 198: Пример функционального модуля с диалогом
пользователя (I)
Во многих ABAP-программах после выбора опции Отменить выводится экран подтверждения. На этом экране отображается стандартный текст “
Данные будут потеряны ”, а также произвольно задаваемый текст (см.
рисунок выше). Пользователь может выбрать вариант Да или Нет.
Рисунок 199: Пример функционального модуля с диалогом
пользователя (II)
Этот диалог интегрирован в функциональный модуль, который также можно использовать в собственных программах.
06-04-2006
© 2006 г. SAP AG All rights reserved. Авторские права защищены.
351

Глава 10: Повторно используемые компоненты
BC400
При вызове этого функционального модуля может осуществляться передача этому модулю дополнительных текстов заголовков посредством соответствующих параметров импорта. Функциональный модуль передает экран своей группы функций, который содержит текстовые строки и заголовок, а также кнопки Да и Нет. Затем посредством параметра экспорта
ANSWER в вызывающую программу передается информация о кнопке,
нажатой пользователем.
Рисунок 200: Интерфейс функционального модуля
Интерфейс функционального модуля включает в себя параметры импорта и экспорта, изменяемые параметры и особые ситуации.
Параметры, которые являются обязательными, должны передаваться вместе с данными при вызове функционального модуля. Для получения информации о дополнительных параметрах и условиях, при которых необходимо их указание, см. документацию по функциональному модулю и интерфейсным параметрам.
352
© 2006 г. SAP AG All rights reserved. Авторские права защищены.
06-04-2006

BC400
Урок: Работа с функциональными модулями
Рисунок 201: Документация и среда тестирования
Функциональные модули можно протестировать в среде тестирования.
Шаблон ввода позволяет задавать значения соответствующих параметров импорта и изменяемых параметров. Можно также перейти в режим отладки. После выполнения выводятся значения изменяемых параметров и параметров экспорта.
Если функциональный модуль инициирует особую ситуацию вследствие ошибки, на экран выводится информация об этой ошибке и текст сообщения
(при его наличии).
Кроме того, отображается время выполнения. К обработке применяются те же ограничения, что и в случае динамического анализа. Поэтому следует повторить тестирование несколько раз с указанием одних и тех же данных.
Кроме того, можно сохранить тестовые данные в каталоге тестовых данных и создать тестовые последовательности.
06-04-2006
© 2006 г. SAP AG All rights reserved. Авторские права защищены.
353

Глава 10: Повторно используемые компоненты
BC400
Рисунок 202: Вызов функционального модуля
Вызов функциональных модулей производится посредством ABAP-оператора
CALL FUNCTION
. В нем указывается имя функционального модуля заглавными буквами в одинарных кавычках.
В блоке EXPORTING производится передача значений в параметры импорта
функционального модуля.
В блоке IMPORTING вызова производится присвоение параметрам экспорта
приемных переменных, посредством которых осуществляется получение результатов вызова.
Со стороны вызывающей программы может осуществляться экспорт значений в параметры импорта функционального модуля и импорт значений в приемные переменные, присвоенные параметрам экспорта этого функционального модуля.
В синтаксисе вызова в левой части присвоения параметра всегда должно быть указано имя интерфейсного параметра (формальный параметр), а в правой части – объект данных или значение вызывающей программы
(текущий параметр).
354
© 2006 г. SAP AG All rights reserved. Авторские права защищены.
06-04-2006

BC400
Урок: Работа с функциональными модулями
Рисунок 203: Генерация исходного текста для вызова функционального
модуля
При внедрении вызовов в исходном тексте рекомендуется создавать вызовы посредством кнопки Модель во избежание ошибок в написании текста. Кроме того, можно вывести группу функций в области навигации и затем создать вызов функционального модуля в исходном тексте путем перетаскивания в область редактора.
При этом генерируется весь синтаксис вызова. Это означает, что перечисляются все интерфейсные параметры, а также особые ситуации.
Необязательная информация в вызове отмечается как комментарий.
После этого необходимо ввести текущие параметры и, при необходимости,
внедрить обработку особых ситуаций.
06-04-2006
© 2006 г. SAP AG All rights reserved. Авторские права защищены.
355

Глава 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.
Продолжение на следующей странице
06-04-2006
© 2006 г. SAP AG All rights reserved. Авторские права защищены.
357

Глава 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):
пользовательский текст справки, выводимый на экран при нажатии дополнительной кнопки.
Продолжение на следующей странице
06-04-2006
© 2006 г. SAP AG All rights reserved. Авторские права защищены.
359

Глава 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

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.
Продолжение на следующей странице
06-04-2006
© 2006 г. SAP AG All rights reserved. Авторские права защищены.
361

1   ...   15   16   17   18   19   20   21   22   23


написать администратору сайта