SAP接口编程-RFC系列04 : 动态调用SAP函数

动态调用 FM

对于 Function module(FM) 的调用,VB 语言可以使用动态调用的方法,代码看起来比较简洁。其他语言是否可以用这种方式,没有测试过。

动态调用 FM,Exception 必须作为第一个参数。直接看代码吧。

Public Sub GetCompanyCodeData_Method2()
    Dim functions As SAPFunctionsOCX.SAPFunctions

    ' FM的输出参数,都是structure
    Dim ret As SAPFunctionsOCX.Structure          'return
    Dim coCdDetail As SAPFunctionsOCX.Structure   'company code detail
    Dim addrData As SAPFunctionsOCX.Structure     'address data
    Dim ex As String                              'exception

    ' 登陆SAP
    Call Logon

    ' 如果连接成功,调用BAPI
    If sapConnection.IsConnected <> tloRfcConnected Then
       MsgBox "连接失败."
       Exit Sub
    End If

    Set functions = New SAPFunctionsOCX.SAPFunctions
    Set functions.Connection = sapConnection

    ' 动态调用BAPI_COMPANYCODE_GETDETAIL
    ' exception必须放在第一个参数位置
    functions.BAPI_COMPANYCODE_GETDETAIL _
                ex, _
                COMPANYCODEID:="0001", _
                RETURN:=ret, _
                COMPANYCODE_DETAIL:=coCdDetail, _
                COMPANYCODE_ADDRESS:=addrData

    ' 确定没有Exceptions
    If ex <> "" Then
        Exit Sub
    End If

    ' 输出company code detail
    Dim i As Integer
    For i = 1 To coCdDetail.ColumnCount
        Debug.Print coCdDetail.ColumnName(i) & ":" & coCdDetail.Value(i)
    Next

    ' Logoff
    Call Logoff
End Sub
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值