日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

有关BAPI

發布時間:2025/3/20 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 有关BAPI 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

BAPI(business application programming interface)是面向對象程序設計方法中的一組程序接口。它允許程序員通過SAP將第三方軟件整合成R/3專有產品。為了完成一些特殊的商業任務,如上傳交易數據等,R/3系統中內置了BAPI。

  ABAP中有關BAPI的介紹

  1.BAPI – business application programming interface

  2.它實際上是一種特殊的Remote Function Modules (RFC)是為了提供使用外部程序來進行交易活動

  3.它提供的基于企業目標(Business Object) 技術的接口應用界面

  4.SAP采用了Object-oriented技術,邏輯定義了SAP R/3系統的所有功能目標,并且將所有的目標(Objects) 和BAPIs存儲于企業勘昕釨OR(Business Objects Repository).

  5.SAP R/3 企業目標的目標類型(Object Type) 相當于目標設計語言中類(Class) 的概念,其定義結構由以下幾部分組成:基本數據,接口界面,鍵(Key Fields),方法(Methods),特征(Attributes),事件(Events)

  --如何創建BAPI程序

  1.定義BAPI Structure (Structure不能在BAPI中重復使用,因為一旦BAPI被釋放,其Structure被凍結)

  2.創建FUNCTION MODULE

  每個BAPI必須有自己的Function Group,Function Group屬性必須為RFC

  3.創建Business Object

  4.使用BAPI WIZARD創建API Method

  這樣BAPI可以被外部程序調用

  5.Function Module符合BOR Method

  4.釋放BAPI Function Module,

  釋放Business Object Type,

  釋放BAPI作為BOR的一種Method

  SAP BAPI

  BAPI是 Business Application Programming Interface的縮寫.

  BAPI是SAP以外程序訪問SAP內部數據和程序的標準方式

  ?

  BAPI在SAP系統內部以Function Modulede的方式實現.所有的BAPI Function都

  - 支持Remote Function Call (RFC)

  - 處理過程中不激活對話窗口

  ?

  BAPI是被定義為Business Object Repository(BOR)中的SAP Business Object類型或SAP interface類型的方法,并且以Function Module方式實現的. 這種定義和實現分離的方式是我們可以通過2中方式訪問BAPI.

  - 通過面向對象的方法調用BOR中的BAPI

  - 通過RFC直接調用Function Module

?

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

?


總結

以上是生活随笔為你收集整理的有关BAPI的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。