Предполагается, что в системе SAP уже существует RFC ФМ, посредством которого необходимо получить определенные данные в MS Excel.
Ниже приведен VBA код, с помощью которого будет выполнено подключение к системе и вывод полученных данных. Для простоты понимания я не стал усложнять код дополнительными проверками и различными удобствами.
'имя RFC ФМ
'вызов ФМ
'вывод полученных данных
Ниже приведен VBA код, с помощью которого будет выполнено подключение к системе и вывод полученных данных. Для простоты понимания я не стал усложнять код дополнительными проверками и различными удобствами.
Dim
fsap_obj As Object
Dim
gr_func As Object
Dim
gp_impr As Object
Dim
gp_expr As Object
Dim
gp_tabl As Object
Sub
run_rfc_fm()
'создаем объект для подключения к системе
Set
fsap_obj = CreateObject("SAP.Functions")
fsap_obj.Connection.Password
= ""
fsap_obj.Connection.system
= ""
fsap_obj.Connection.user
= ""
'возвращает True при подключении к системе и False если подключение не удалось
Connect = fsap_obj.Connection.logon(0, False)
Set gr_func
= fsap_obj.Add("ZWEB_SERVICE_TEST")
'параметр импорта в ФМ
Set gp_expr
= gr_func.exports("I_VBELN")
'параметр экспорта в ФМ
Set gp_impr
= gr_func.imports("E_COMMENT")
'возвращаемая таблица данных из ФМ
Set gp_tabl
= gr_func.tables("T_VBAP")
'передаем значение в I_VBELN
gp_expr.Value = "0000004969"
Call
gr_func.Call
'отключение от системы
fsap_obj.Connection.logoff
Call write_tab
End Sub
Public
Function write_tab()
For Row = 1
To gp_tabl.RowCount
num_p = 0
Do While num_p < gp_tabl.columnCount
num_p = num_p + 1
Лист1.Cells(Row, num_p).Value = gp_tabl.cell(Row,
num_p)
Loop
Next
Лист1.Cells(Row
+ 1, 1).Value = gp_impr
End Function