有关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 GroupFunction Group属性必须为RFC

  3.Business Object

  4.使用BAPI WIZARDAPI Method

  这样BAPI可以被外部程序

  5.Function Module符合BOR Method

  4.BAPI Function Module,

  Business Object Type,

  BAPIBOR的一Method

  SAP BAPI

  BAPI Business Application Programming Interface.

  BAPISAP以外程序访问SAP内部数据和程序的准方式

  ?

  BAPISAP内部以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,在SE37Function Module

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

二,封装

1,在SWO1,建Object Type

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

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

三,

1,如在另一系中用ABAP用,先在SM59中建RFC到有BAPIR/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,普通的Module Function(Remoto Function call(RFC))也可被调用

你可能感兴趣的:(function,object,Module,SAP,interface,structure)