Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Module status_0100.

ID ’ACTVT’ FIELD ’02’. | WRITE: / ’Authority-Check Error’(001). ENDCASE. | PERFORM write_list USING it_flight. | Wa_sbook-loccurkey. | SELECT-OPTIONSname FORdata_object. | CALL SCREEN 100. | CLEAR wa_sbook. | MODULE user_command_100. | SET PF-STATUSи SET TITLEBAR | DATAreference_name TYPE REF TOclass_name. |


Читайте также:
  1. Bank of Krok testing to module N1
  2. Bank of Krok testing to module N2
  3. Bank of Krok testing to module N3
  4. Check list to module 6
  5. Check list to module IV
  6. Check List to Module VI
  7. general and Morphology in particular with other Modules of Linguistics.

MODULE clear_ok_code.

 

PROCESS AFTER INPUT.

MODULE user_command_0100.


 

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

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

• внедрять GUI-заголовок

• внедрять GUI-статус (строка меню, символьная строка инструментов и строка кнопок) для списка и экрана

• выполнять ведение присвоения функциональных клавиш для экрана


 

Резюмепоглаве

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

• описывать атрибуты и преимущества ABAP-списков

• внедрять заголовки списков и столбцов

• внедрять многоуровневые списки

• внедрять интерактивные списки

• описывать свойства и преимущества экранов выбора

• внедрять опции ограничения выбора данных на экране выбора

• внедрять проверку ввода и полномочий с выводом диалога при обнаружении ошибок на экране выбора

• перечислять атрибуты экранов и пояснять преимущества их использования

• внедрять простые экраны с полями ввода и вывода и экранными кнопками, а также вызывать их из соответствующей программы

• пояснять и внедрять внутреннюю программную обработку для вызовов экранов

• внедрять GUI-заголовок

• внедрять GUI-статус (строка меню, символьная строка инструментов и строка кнопок) для списка и экрана

• выполнять ведение присвоения функциональных клавиш для экрана

 

Дополнительная информация

 

... См. статью “События” в онлайн-документации и документацию по ключевым словам для соответствующего ABAP-оператора.


 


 

Глава 10

 

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

 

Обзор главы

 

См. цели отдельных уроков в рамках этого раздела.

 

 

 
Цели главы

 

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

 

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

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

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

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

• выводить внутреннюю таблицу на экран с использованием SAP Grid

Control (ALV List Viewer)

• находить подходящие BAPI

• использовать вызовы BAPI в программе

 

 

Содержание главы

 

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

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

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

Процедура: Вывод внутренней таблицы в ALV Grid Control на экране.......................................................................375

Упражнение 19: Использование методов.............................379

Урок: Работа с BAPI...........................................................384


 

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

 

 

Обзор урока

 

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

 

 
Цели урока

 

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

 

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

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

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

 

 

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

 

В программу необходимо добавить определенную функцию. Эта функция,

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

 

 

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

 

 

 

 

 

Рисунок 194: Группа функций


 

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

 

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

 

Группа функций может содержать те же компоненты, что и исполняемая программа. Это следующие компоненты:

 

Объекты данных

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

 

Подпрограммы

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

 

Экраны

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

 

 

 

 

Рисунок 195: Функциональный модуль


 

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

краткое описание и группу функций, к которой относится данный модуль.

 

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

 

Интерфейс функционального модуля может содержать следующие элементы:

 

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

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

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

• Особые ситуации: особые ситуации могут инициироваться функциональным модулем при возникновении определенных ошибок и содержать информацию о соответствующей ошибке обработки в функциональном модуле. Особые ситуации должны обрабатываться вызывающей программой.

 

В общем случае присвоение интерфейсных параметров различным типам определяется в ABAP-словаре.


 

 

 

 
Рисунок 196: Объекты данных в группе функций

 

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

 

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

 

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


 

 

 

 
Рисунок 197: Поиск функциональных модулей

 

На рисунке выше иллюстрируются различные сценарии поиска:

 

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

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

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

 

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

 

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


 

 

 

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

 

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

 

 

 

 

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

 

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


 

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

 

 

 

 

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

 

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

 

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


 

 

 

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

 

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

 

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

 

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

 

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


 

 

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

 

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

 

В блоке EXPORTING производится передача значений в параметры импорта

функционального модуля.

 

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

 

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

 

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

в правой части – объект данных или значение вызывающей программы

(текущий параметр).


 

 

 

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

 

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

 

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

 

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

внедрить обработку особых ситуаций.


 

 

 

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

 

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

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

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

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

 

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

 

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


 

Упражнение 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.

 

 

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


 

Задание 2:

 

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

 

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

 

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

 

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

 

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


 

Решение 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): пользовательский текст справки, выводимый на экран при нажатии дополнительной кнопки.

 

 

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


 

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) См. выдержку из исходного текста в примере решения.

 

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


 

Задание 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’.


Дата добавления: 2015-11-16; просмотров: 45 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
MODULE STATUS_0100.| MESSAGE e149(bc400). ENDIF.

mybiblioteka.su - 2015-2024 год. (0.054 сек.)