SAP接口RFC

下面主要以一段程序为例介绍一下SAP接口RFC的开发思路。RFC接口程序开发,主要用的是 "SAP.Functions "这个控件,通过控件在外部程序模拟SAP   Gui   Client的用户登录和函数调用,然后返回函数的值。
 
            请看下面的程序片段和重点注解(尤其是test_Click()):
        Private   Sub   Command1_Click()
  '   定义R/3用户名和密码变量(用户名应由SAP管理员开运行函数的权限)
 Dim   logname   As   String   *   22,   password   As   String   *   22
 Call   logonr3(logname,   password)   '   调用SAP登录界面程序
 If   logflag   Then   '   调用生产、开发系统开关
  StatusBar1.Visible   =   True
  StatusBar1.SimpleText   =   "正在登录SAP   R/3系统... "
  Dim   R3AppServer   As   String,   R3Client   As   String,   R3SystemNo   As   String
  If   Form2.opPRD.Value   Then
    '   以下服务器参数请根据客户配置情况更改
   R3AppServer   =   "10.3.1.4 "   '   生产系统服务器IP
   R3Client   =   "800 "      '生产系统集团代码
   R3SystemNo   =   "00 "   '生产系统号
  Else
   R3AppServer   =   "10.3.3.1 "   '   开发系统服务器IP
   R3Client   =   "101 "
   R3SystemNo   =   "00 "
  End   If
  Unload   Form2   '   释放   Form2   ,   所有控件及值不可用
  Set   Functions   =   CreateObject( "Sap.Functions ")   '   创建RFC的本地对象
  Set   Connect   =   Functions.Connection   '   设置连接
  Connect.ApplicationServer   =   R3AppServer   '   赋值服务器IP
  Connect.Client   =   R3Client   '   赋值SAP集团代码
  Connect.Language   =   "ZH "   '   置SAP系统界面中文
  Connect.User   =   Trim(logname)   '   赋值SAP登录用户名
  Connect.password   =   Trim(password)   '   赋值SAP登录用户密码
  Connect.SystemNumber   =   R3SystemNo   '   赋值SAP系统号
  If   Not   Connect.Logon(0,   True)   Then   '   软件登录SAP并判断
   MsgBox   "登录SAP   R/3失败,请重新登录! ",   vbOKOnly   +   vbExclamation,   "系统提示 "
   Command1.SetFocus
  Else   '   登录SAP成功
   Command1.Enabled   =   False
   Command2.Enabled   =   True
   test.Enabled   =   True
  End   If
  StatusBar1.SimpleText   =   " "
  StatusBar1.Visible   =   False
 End   If
End   Sub
Private   Sub   Command2_Click()   '   注销SAP登录
 Connect.LogOff
 Command2.Enabled   =   False
 Command1.Enabled   =   True
 test.Enabled   =   False
End   Sub
Private   Sub   Command3_Click()   '   退出SAP接口演示程序
 If   Form1.Command2.Enabled   Then
  MsgBox   "退出前请断开SAP   R/3系统! ",   vbOKOnly   +   vbInformation,   "系统提示 "
 Else
  End
 End   If
End   Sub
Private   Sub   Form_Load()
 Command2.Enabled   =   False
 test.Enabled   =   False
 logoflag   =   False
End   Sub
Private   Sub   test_Click()   '   SAP   RFC远程调用处理主演示
 Dim   GetCustomers   As   Object
 Dim   Customers   As   Object
 Dim   i   As   Integer
    '   通过RFC接口远程运行SAP内部函数RFC_CUSTOMER_GET
  '   赋要调用的SAP内建函数名
 Set   GetCustomers   =   Functions.Add( "RFC_CUSTOMER_GET ")
 GetCustomers.Exports( "KUNNR ")   =   "0000000103 "   '   向函数入口赋值(客户代码)
  '   向函数入口赋查询表名称
 Set   Customers   =   GetCustomers.Tables( "CUSTOMER_T ")
 If   GetCustomers.Call   Then   '   调用成功遍历显示客户所有信息条目
  For   i   =   1   To   Customers.rowcount
   MsgBox   Customers(i,   "KUNNR ")
  Next   i
 Else
  MsgBox   "   搜索出错!   出错信息:   "   +   GetCustomers.Exception
 End   If
End   Sub  

        SAP的RFC调用是其接口技术中最简单和易用的一种方式,该方式开发比较简便,特别适合于外部报表开发,但对于大数据量的查询效率相对较低。若想提高效率需进一步学习高级的IDOC和BAPI接口开发技术。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/183242/viewspace-683331/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/183242/viewspace-683331/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值