BAPI的简单实现步骤

    技术2022-05-20  82

    BAPI的简单实现步骤

    一,创建Function Module

    1,在SM11,创建需要的structure

    2,在SE80,建Function group

    3,在SE37,创建Function Module

     

    Note:一个Function Group只能包含一个BAPI;参数传值;必须有有一个BAPIRETURN类型的EXPORT参数

     

    二,封装

    1,在SWO1,建Object Type

    2,把Function Module作为一个Method加入,utilities->API Methods->Add Method

    3,release Object和Module。使在BAPI Browser 中可以看到。也就是外部能够调用。

     

    三,调用

    1,如在另一系统中用ABAP调用,先在SM59中建RFC联到有BAPI的R/3,(ZGOGO)

    在SE38的程序中调用,Call Function "ZBAPIXXXXX" DESTINATION ZGOGO EXPORTING ...

     

    2,如用JAVA调用

    引入包;(不一定要用IBM的)

    import com.sap.rfc.*;

    import com.sap.rfc.exception.*;

    import com.ibm.sap.bapi.*;

    import com.ibm.sap.bapi.generated.*;

     

    建立连接;调用。。。(See CALL_BAPI.java)

    VBA for SAP

    Private Sub CommandButton1_Click()Set oFunction = CreateObject("SAP.LogonControl.1")Set oConnection = oFunction.NewConnectionoConnection.Client = "500"oConnection.Language = "EN"oConnection.User = "user"oConnection.Password = "pasword"oConnection.ApplicationServer = "sap1.yok.com.cn"oConnection.SystemNumber = "01"result = oConnection.Logon(0, True)Set ofun = CreateObject("SAP.FUNCTIONS")Set ofun.Connection = oConnectionSet func = ofun.Add("RFC_READ_TABLE")func.Exports("QUERY_TABLE") = "MARA"If func.Call = True ThenSet oline = func.tables.Item("DATA")Row = oline.rowcounti = 1Do While i <= Row   Cells(i, 1) = Mid(Trim(oline.Value(i, 1)), 4, 22)     i = i + 1   Loop   Else   MsgBox "FAIL"End IfEnd Sub

    VBA2 Private Sub CommandButton1_Click() Dim sapFunctionCtrl As Object         'Function Control (Collective object) Dim sapConnection As Object           'Connection object Dim theFunc As Object                 'Function object     Set sapFunctionCtrl = CreateObject("SAP.Functions") Set sapConnection = sapFunctionCtrl.Connection sapConnection.Client = "800" sapConnection.user = "user" sapConnection.Language = "EN" If sapConnection.logon(0, False) <> True Then MsgBox "No connection to R/3!" End If Set theFunc = sapFunctionCtrl.Add("ZRFCPING") If theFunc.call Then ' call the RFC FM MsgBox "RFC call is okay" End If sapFunctionCtrl.Connection.logoff Set sapConnection = Nothing Set sapFunctionCtrl = Nothing End Sub

    最新回复(0)