您的当前位置:首页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 MsgBox VbMsg End Function

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

Public Function ReadDbData(ByVal DataFileName 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 & \"'\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.

运行效果:

因篇幅问题不能全部显示,请点此查看更多更全内容