• SAP BAPI的一些初级资料


    SAP BAPI的一些初级资料
     
    周围的人都比较忙,一切得靠自己学,慢慢摸索。

    BAPI有的是类,有的是函数。'Business application programming interface'的简称。

    BAPI is 'Business application programming interface', similar to API. which are stable, standardized methods to access data in R/3

    To use BAPIs to access SAP business objects you will need a good understanding of object-oriented programming. You should also have a basic knowledge of the R/3 System.

    BAPIs can be accessed from various programming environments, for example, Delphi/Connect from Inprise (formerly Borland), Microsoft’s Visual Studio, C++ and Java platforms. You must be familiar with the development environment used to access BAPIs.

    BAPIs are available from development platforms external to R/3 that support the Remote Function Call (RFC) protocol. If you are developing your application in a non-object oriented programming language, you need to have RFC programming skills to call BAPIs via RFC. In particular, you need to know how to perform RFC calls.

    ==========

    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.NewConnection
    oConnection.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 = oConnection
    Set func = ofun.Add("RFC_READ_TABLE")
    func.Exports("QUERY_TABLE") = "MARA"
    If func.Call = True Then
    Set oline = func.tables.Item("DATA")
    Row = oline.rowcount
    i = 1
    Do While i <= Row
       Cells(i, 1) = Mid(Trim(oline.Value(i, 1)), 4, 22)
         i = i + 1
       Loop
       Else
       MsgBox "FAIL"
    End If
    End 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

    其他还有很多,有几个demo~
  • 相关阅读:
    [Python]爬虫v0.1
    [Python]同是新手的我,分享一些经验
    [python]闭包到底是什么鬼?
    测试Flask应用_学习笔记
    Flask模板_学习笔记
    SQL Server Alwayson概念总结
    JDBC数据库编程:ResultSet接口
    JDBC操作,执行数据库更新操作
    接口怎么实例化?
    java数据库编程:JDBC操作及数据库
  • 原文地址:https://www.cnblogs.com/elegantok/p/1410364.html
Copyright © 2020-2023  润新知