Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
пособие авар.doc
Скачиваний:
62
Добавлен:
02.09.2019
Размер:
2.34 Mб
Скачать

Часть II. Расширенные приемы программирования в sap bw Тип функции планирования

Тип функции планирования (ТФП) – часть функциональности BI-IP, позволяющая обрабатывать транзакционные данные с помощью языка ABAP. ТФП удобно использовать, когда данные необходимо обрабатывать с высокой скоростью, либо же алгоритм обработки не может быть построен на языке FOX.

Создание класса

ТФП реализуется в виде класса ABAP. Нужно создать новый класс в транзакции SE80 и добавить в него один из интерфейсов:

  • IF_RSPLFA_SRVTYPE_IMP_EXEC;

  • IF_RSPLFA_SRVTYPE_IMP_EXEC_REF.

Рисунок 37

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

Определение нового типа функции планирования

Создание нового ТФП производится в транзакции RSPLF1.

На первом экране нужно ввести техническое имя ТФП и нажать на кнопку «Создать».

Далее, на вкладке «Свойства» нужно ввести имя созданного класса:

Рисунок 38

Если в качестве интерфейса был выбран IF_RSPLFA_SRVTYPE_IMP_EXEC_REF, то необходимо поставить галочку «Ссылочные данные», если же IF_RSPLFA_SRVTYPE_IMP_EXEC, то галочка должна быть убрана.

Галочка на пункте «БезСозданияБлока» означает, что вызов функции планирования будет выполнен один раз над всеми данными. Иначе, вызов будет выполнен многократно над блоками данных, аналогично функциональности FOX в BI-IP.

Далее, на вкладке «Параметр» необходимо определить управляющие параметры ТФП.

Рисунок 39

Создаем новый параметр:

Рисунок 40

Для выбора предоставляются следующие типы параметров:

  1. Элементарный – выбор единственного значения любого признака;

Рисунок 41

  1. Инфо-объект инфо-провайдера – выбор какого-либо инфо-объекта из инфо-провайдера, над которым будет создана функция планирования;

Рисунок 42

  1. Выбор данных – выбор значений нескольких признаков;

Рисунок 43

  1. Структура – позволяет создавать структуру из различных параметров;

Рисунок 44

  1. Выбор показателей – выбор показателя инфо-провайдера.

Рисунок 45

Галочка «Параметр является табличным» позволяет вводить несколько значений параметра.

«Параметр структуры» позволяет присвоить параметр к какой-либо структуре (см. пункт 4).

Разработка класса Считывание значений управляющих параметров

Элементарный:

DATA:         L_R_PARAM_ELEM1 TYPE REF TO IF_RSPLFA_PARAM_ELEM.

L_R_PARAM_ELEM1 = I_R_PARAM_SET->GET_PARAM_ELEM( 'CPER' ).   L_R_PARAM_ELEM1->GET_VALUE( IMPORTING E_VALUE = L_PER ).

Выбор показателей:

DATA:

L_KYF TYPE RSIOBJNM,

L_T_KEYFNM TYPE RSPLF_T_KEYFNM,         L_R_PARAM_KEYF_SEL TYPE REF TO IF_RSPLFA_PARAM_KEYF_SEL.

  L_T_KEYFNM = L_R_PARAM_KEYF_SEL->GET_T_KEYFNM( ).   LOOP AT L_T_KEYFNM INTO L_KYF.   ENDLOOP.

Выбор данных:

DATA:       L_R_PARAM TYPE REF TO IF_RSPLFA_PARAM_DATA_SEL,         L_S_CHARSEL TYPE RSPLF_S_CHARSEL,         L_T_CHARSEL TYPE RSPLF_T_CHARSEL.

L_R_PARAM = I_R_PARAM_SET->GET_PARAM_DATA_SEL( 'REFSEL').   L_T_CHARSEL = L_R_PARAM->GET_T_SEL( ).

  LOOP AT L_T_CHARSEL INTO L_S_CHARSEL     WHERE IOBJNM = 'SFORM'.     LSR_CFORM-SIGN = L_S_CHARSEL-SIGN.     LSR_CFORM-OPTION = L_S_CHARSEL-OPT.     LSR_CFORM-LOW = L_S_CHARSEL-LOW.     LSR_CFORM-HIGH = L_S_CHARSEL-HIGH.     APPEND LSR_CFORM TO LR_CFORM.   ENDLOOP.