Базовая процедура SAP

В SAP-источнике данных базовой процедурой является функциональный модуль, где тип входного параметра является базовым скалярным или базовым табличным. Базовый табличный тип является плоской таблицей, а базовый скалярный - тип, основанный на базовом простом ABAP-типе. Работа в терминах SAP ведется с параметрами экспорта и импорта в построителе функций. Взаимодействие между «Форсайт. Мобильной платформой» и «SAP NetWeaver Platform» осуществляется через механизм удалённого вызова функции (RFC). Удалённые вызовы функции осуществляются от имени зарегистрированного пользователя системы «SAP NetWeaver Platform» с обязательным указанием логина пользователя и пароля.

Примечание. Типы входных параметром должны объявляться через словарные домены. Например, если строковый входной параметр функционального модуля объявляется встроенным ABAP-типом string, то мобильная платформа выведет ошибку о том, что функциональный модуль не является базовой хранимой процедурой. Для избежания ошибки объявляйте строковый параметр через словарный домен.

Для разработки базовой процедуры приведена таблица с базовыми ABAP-типами и соответствующими внутренними типами платформы:

Базовые ABAP-типы

Внутренний тип платформы

C

text

STRING (g)

text

N

text

D

text

T

text

I

bigint

b

bigint

s

bigint

P

double

F

double

X

bytea

XSTRING (y)

bytea

Подробное описание типов можно найти в Predefined Elementary ABAP Types.

Важно. Базовые ABAP-типы не поддерживают значение NULL. ABAP-тип D (дата) поддерживает особое значение 0000-00-00, которого нет в Григорианском календаре. Значению 0000-00-00 ABAP-типа D соответствует значение внутреннего типа платформы text. Других случаев, когда ABAP-значению соответствует значение NULL внутреннего типа, нет.

Пример подготовки источника данных SAP

Для подготовки источника данных SAP:

  1. Запустите приложение SAP Logon.

  2. Выберите подключаемый сервер и введите учётные данные.

  3. Создайте «Тип таблицы» для возвращаемых данных:

    1. Запустите транзакцию «SE11» на панели инструментов и установите переключатель «Тип данных»:

    1. Задайте название типа данных, начиная с буквы «Z», например, «Z_MEINS_STUDY_15».

    2. Нажмите кнопку «Создать». После выполнения действия установите переключатель «Тип таблицы» в всплывающем окне:

  1. Заполните поля:

  1. Нажмите кнопку «Сохранить» и активируйте объект с помощью кнопки .

После выполнения действий будет открыто окно «Создание записи каталога объектов»:

  1. Прикрепите разработку к пакету с помощью кнопки «Локальный объект».

  2. Запустите транзакцию «SE37» на панели инструментов.

  3. Введите наименование нового функционального модуля «Z_STUDY_MEINS_15» в поле «Функциональный модуль»:

  1. Нажмите кнопку «Создать».

После выполнения действия будет открыто окно «Создание функционального модуля»:

  1. Прикрепите функциональный модуль к группе функций «Z_STUDY» и задайте краткий текст.

  2. Нажмите кнопку «Сохранить».

После выполнения действия будет открыто окно «Построитель функций».

  1. Перейдите на вкладку «Импорт» в окне «Построитель функций»:

Отметьте флажками параметры «Необязательный» и «Перенос значения».

После выполнения действий в поле «Краткий текст» отобразится «Базисная единица измерения».

  1. Перейдите на вкладку «Экспорт» в окне «Построитель функций»:

Отметьте флажком параметр «Перенос значения».

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

  1. Перейдите на вкладку «Свойства» в окне «Построитель функций»:

В группе «Вид выполнения» установите переключатель «Дистанционный модуль».

  1. Активируйте функциональный модуль с помощью кнопки .

Примечание. При активации может потребоваться выбор функции из списка локальных объектов. Выберите созданный функциональный модуль «Z_STUDY_MEINS_15».

После выполнения действия в строке статуса отобразится «Объект(ы) активирован(а)».

  1. Перейдите на вкладку «Исходный текст» и создайте программу с кодом:

DATA:
    lv_meins TYPE t006a-msehi,
    lr_meins TYPE RANGE OF t006a-msehi,
    ls_meins LIKE LINE 
OF lr_meins.

  
IF iv_meins IS NOT INITIAL.
    CALL 
FUNCTION 'conversion_exit_alpha_input'
      EXPORTING
        input  = lv_meins
      IMPORTING
        output = lv_meins.

    ls_meins = 
'IEQ'.
    ls_meins-low = lv_meins.
    APPEND ls_meins 
TO lr_meins.
  ENDIF.

  
SELECT * INTO CORRESPONDING FIELDS OF TABLE et_data
     
FROM t006a
    WHERE
    spras = 
'EN'
    
AND msehi IN lr_meins.

  1. Активируйте программу с помощью кнопки .

  2. Запустите программу:

    1. Протестируйте программу с помощью кнопки .

    2. Запустите программу с помощью кнопки «Выполнить» или клавиши F8:

После выполнения действий программа будет запущена.

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

Для полного просмотра результата выполнения программы нажмите на пиктограмму таблицы.

Для получения данных разработчик приложения может обращаться к подготовленному источнику данных через API-запросы.

См. также:

Настройка интеграции с табличными источниками данных | Базовая процедура Postgres