ABAP 调用 DLL文件

ABAP 调用 DLL文件
ABAP 调用 DLL文件

Dll文件是WINDOWS的动态链接库, 一个DLL文件就是许多函数的集合, 每个函数可以实现各种功能.

有时外部程序调用SAP 的RFC, 实现与SAP程序的接口, 是以外部程序为主; 现在终于找到以SAP程序为主调用外部程序的方法了. 就是SAP 的ABAP语言调用DLL文件中的函数实现一些功能, 例如可以用DLL文件连接外部数据库读取数据.

在网上找了好久,都没有一个完整的答案, 也没有一个完整的实例, 根据网上的各种说法, 整合到一起, 终于成功, 原来这么简单

网上有个SAP 调用JAVA 程序的方法, 但是还要在SAP中用SM59 配置什么东东,很麻烦. 一:创建DLL文件

启动VB6.0开发工具,创建ActiveX.DLL工程

在类模块中写function

'写一个函数.输入参数,返回参数加100 后的值Public Function AbapCallVbDll(ByVal n As Integer) As Long

AbapCallVbDll = n + 100

End Function

'写一个函数.输入参数,返回参数加100 后的值, 并消息框提示

Public Function VbMsg(ByVal n As Integer) As Long

VbMsg = n + 100

MsgBoxVbMsg

End Function

'写一个函数.输入数据库文件名,和查询条件,返回查询到的结果

Public Function ReadDbData(ByValDataFileName As String, ByVal key As String) As String Dim ADO As New ADODB.Connection

Dim FPQMRST As New ADODB.Recordset

ADO.ConnectionString = " Provider=Microsoft.Jet.OLEDB.4.0;" & _

"Data Source=" &DataFileName& ";Persist Security Info=False;"

If ADO.State = 0 Then ADO.Open

FPQMRST.Open "SELECT * FROM FPUSER WHERE 类别= '" & key & "'", ADO, adOpenKeyset, adLockPessimistic, adCmdText

ReadDbData = FPQMRST.Fields("签名")

End Function

生成DLL文件

注册DLL 文件

把生成的DLL文件复制到C:\windows\sysrem32下, 然后运行regsvr32 vbDllTest2.dll .需要有管理员权限

二.ABAP程序调用DLL文件

SE38新建程序后, 代码如下:

REPORT ZABAP_CALL_DLL.

INCLUDE OLE2INCL.

DATA Win32 TYPE OLE2_OBJECT.

DATA ret TYPE i.

data restr type string.

CREATE OBJECT Win32 'MyVbDllTest.VbDllTest'.

CALL METHOD OF Win32 'AbapCallVbDll' = RET

EXPORTING

#1 = 350. "调用DLL中的function AbapCallVbDll输入参数 350

write ret.

CALL METHOD OF Win32 'VbMsg' = RET

EXPORTING

#1 = 1000. "调用DLL中的显示消息的function VbMsg输入参数 1000

write ret.

"调用DLL中读取数据库的function ReadDbData输入参数数据库路径和文件名, 和一个查询条件

CALL METHOD OF Win32 'ReadDbData' = reStr

EXPORTING

#1 = 'C:\DBDATA\system1.mdb'

#2 = '收款人'.

write restr.

free win32.

运行效果:

相关主题
相关文档
最新文档