SPA/GPA параметры в ABAP

В этой заметке несколько слов о том, как можно индивидуализировать работу ваших ABAP программ. Под индивидуализацией я понимаю использование параметров, которым могут быть присвоены какие-то значения, что в свою очередь отразится на логике работы вашей разработки. Итак, SPA/GPA параметры в ABAP.

Что это такое? Вкратце.

В двух словах, SET/GET параметры (SPA/GPA) - объекты (суть переменные), хранящиеся в пользовательской памяти, доступ к которым можно получить посредством ABAP.

См. SPA/GPA parameter

Also called SET/GET parameter. Data objects in the user memory that can be accessed in ABAP programs. SPA/GPA parameters are set using SET PARAMETER and read using GET PARAMETER. Input fields on dynpros can be associated with SPA/GPA parameters and be given default values when the dynpro is called. Conversely, user input in fields of this type is persisted in the associated SPA/GPA parameters. The names of SPA/GPA parameters are managed in the database table TPARA.

Для чего они могут мне понадобиться?

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

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

Справочный материал

См. Parameters in the User Memory

Создание параметров

Основные данные по SPA/GPA параметрам хранятся в таблице TPARA

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

Присвоение параметров

Присвоение параметров может быть выполнено пользователем самостоятельно в транзакции SU3

Массовое присвоение параметров может быть выполнено посредством транзакции SU10.

N.B. Обратите внимание на то, что пользовательские параметры хранятся в таблице USR05

Пример работы с SPA/GPA параметрами в ABAP программе

Давайте рассмотрим простой пример. В зависимости от принимаемого параметром значения, выведем какую-нибудь ересь на экран.

Исходный код программы


REPORT zparam_get_demo.
 
DATA: lv_param TYPE char15.
 
GET PARAMETER ID 'ZDEMO_PARAM' FIELD lv_param.
 
TRANSLATE lv_param TO UPPER CASE.
 
CASE lv_param.
  WHEN ''.
    WRITE:/ 'Empty'.
  WHEN 'DEMO_VAL'.
    WRITE:/ 'From love to signatov.com'.
  WHEN OTHERS.
    WRITE:/ 'Could not find the value for this parameter'.
ENDCASE.

В профиле пользователя значение параметра выглядит следующим образом

Тестируем