Меню

Вызов RFC ФМ из документов MS Office с помощью VBA

|

Иногда в процессе, например, миграции данных у заказчика возникает желание реализовать миграцию данных через "кнопку в файле Excel". Как сделать это технически? Опишу вкратце возможный вариант реализации, надеюсь, кому-нибудь такая возможность пригодится.

Иногда в процессе, например, миграции данных у заказчика возникает желание реализовать миграцию данных через "кнопку в файле Excel". Процесс выглядит примерно так: пользователь выгружает данные из не-SAP системы в файл Excel. Далее нажимает кнопку "загрузить данные в SAP" и получает сообщение о статусе загрузки данных «загруженные/не загруженные данные» в SAP R/3.

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

Для начала необходимо установить соединение с системой с помощью написания кода VBA (Рис.1). Здесь создается объект gr_r3 с помощью которого идет взаимодействие между Excel и SAP R/3. Параметр ABAPDebug помогает подключиться к SAP R/3 в режиме отладки.

Рис. 1 Код функции установки соединения с SAP R/3 системой

Метод «logon» вызывает SAPGui для подключения к системе (Рис.2).

Рис.2 SAP logon

Отключение от SAP осуществляется с использованием следюующих операторов (Рис.3)

Рис.3 Отключение от SAP

Для передачи данных между Excel и SAP будем использовать RFC функциональный модуль ZTST_TEST_RFC с импортным параметром I_PARAM и таблицей IT_TABLE. Инициализация параметров осуществляется  следующим образом (Рис.4):

Рис.4 Инициализация параметров RFC ФМ

Для запуска ФМ используется метод Call, он возвращает статус выполнения (успешно/не успешно).

Рис.5

Если хотите прочитать статью полностью и оставить свои комментарии присоединяйтесь к sapland

У вас уже есть учетная запись?

Войти

Обсуждения Количество комментариев2

Комментарий от  

Олег Башкатов

  |  11 февраля 2015, 13:27

секрет можно дополнить использованием ABAP in Eclipse:
сколь угодно сессий
сколь угодно запусков

Комментарий от  

Илья Филимонов

  |  13 февраля 2015, 04:24

Cуществует некая особенность при получении параметров соединения с системой Backend'a, в случае работы с BEx Analyzer'ом.
Если вы выполнили LogOn введя логин и пароль средствами BEx'а, то все параметры соединения доступны для анализа.
Если вы выполнили LogOn в BEx Analyzer со стороны Backend'a (тр. RRMX), то параметры соединения отсутствуют, словно выполнена имитация.
Сурово.