注册通行证 用户名 密码
  • 文章投稿
  • 博客
  • 论坛
  • 设为首页
  • 加入收藏
jztop.com网络技术
  • 首页
  • | iT新闻
  • | 操作系统
  • | 组网建网
  • | 网络安全
  • | 程序开发
  • | 办公一族
  • | 工具软件
  • | 网页制作
  • | 多媒体制作
  • | 网吧技术
  • | 服务器
  • | 专题教程
Vista | 软件评测 | 系统备份 | 优化 | 进程 | 聊天 | 病毒 | Linux | 黑客 | 防火墙 | 数据库 | Web开发 | Java | Word | 游戏 | 32位开发 | 移动开发
当前位置:首页 > 程序开发 > 微软开发专栏 > VB.NET 内容正文:利用Visual Basic开发SAP接口程序初探

利用Visual Basic开发SAP接口程序初探

发布时间:2006-03-10 20:43:00 来源:友佳学院 网友评论 0 条

  SAP R/3系统是业界最先进、最稳定的ERP系统,国际和国内大型企业采用该系统的比例遥遥领先于其它ERP系统的总和。SAP R/3内建了二次开发平台,使用的开发语言叫做ABAP,是一种类似于COBOL的编程语言。ABAP在报表输出方面功能相对较弱(只能按行打印在屏幕上或者导出到Excel中处理),所以日常工作中经常需要在外部开发程序。通过程序接口自动读取SAP R/3的数据表(视图),在外部进行处理和利用水晶报表等工具生成符合中国人习惯的报表样式。

  SAP R/3的接口方式主要有RFC、IDOC、BAPI三种,本文要介绍的是相对比较简单的RFC(Romote Function Call,远程函数调用)。SAP系统RFC调用的原理其实很简单,有一些类似于三层构架的C/S系统,第三方的客户程序通过接口调用SAP内部的标准或自定义函数,获得函数返回的数据进行处理后显示或打印。下面是RFC调用的模型:


  本文主要不是讨论SAP R/3函数的开发,因为使用SAP的公司一般都有专门的ABAP开发人员。大家如果有机会接触ABAP平台,可以通过事务代码SE37进入ABAP开发平台的"函数编制器"进行函数开发测试。如图:

  下面主要以VB为例介绍一下SAP接口RFC的开发思路。在SAP客户端SAP Gui Client安装的时候,注意选择安装附带的SDK包(最保险是选择完全安装)。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接口开发技术。

相关文章
  • 用VB备份和恢复SQL Server数据库的方法
  • 定时提醒你休息的脚本
  • 如何编写高质量的VB代码
  • 继往开来 Visual Baisc 2005初体验
  • 给用和学VB的朋友打打气,同时分享创业故事
【评论】【收藏本文】【打印】【关闭】
上一篇文章:定时提醒你休息的脚本
下一篇文章:在VB 2005中定制自己的异常
讨论区
查看
已有 0 位对此新闻感兴趣的网友发表了看法
匿名发表
注册通行证 登陆
图文阅读推荐
推荐阅讯
  • VB实现SQL Server 2000存储过程调用
  • 在Visual Studio 2005中实现VB重构
  • 探索VB系列中的事件处理的奥秘
  • VBScript教程 第四课 VBScript变量
  • Visual Basic通用报表设计小结
  • VB6中使用错误处理对程序速度的影响
  • 利用VB设计聊天室
  • VB“超频”秘籍之给字符串提速
  • 用代码实现ListView控件的行间隔颜色
  • VB6如何在托盘中写入应用程序图标
阅读排行
  • 1.通过实例学VB—创建简单的个人通讯录
  • 2.如何编写高质量的VB代码
  • 3.在VB的ListView控件中动态加载记录
  • 4.用VB备份和恢复SQL Server数据库的方法
  • 5.利用VB学做“黑客”程序
  • 6.掌握VB中的ADO数据对象编程
  • 7.将程序加入启动组
  • 8.VB程序中用ADO对象动态创建数据库和表
  • 9.VB与Excel2000实现复杂报表打印
  • 10.六天学会Visual Basic数据库编程
专题教程
  • 大话G游 专题:手机病毒揭密
  • ARP攻击防范与解决方案 路由故障处理手册
  • Picasa中文版_Picasa教程 专题:清除流氓软件
  • Firefox专题 seo搜索引擎优化专区
  • 重装Windows必知的事情 装机之必备软件大行动
病毒专杀栏
  • 杀毒软件反被病毒杀 连"救命"都不能喊
  • 金山ARP防火墙
  • 还原卡神话破灭“机器狗”病毒来势汹汹
  • cctv经济半小时:你的手机现在安全吗?
  • 新挂马方式开始流行 ARP挂马称雄局域网
  • 木马和病毒清除的通用解法
  • IP地址不再冲突 查找ARP攻击者元凶
  • 教你几招识别和防御Web网页木马
  • 分析:封杀BT只是暂时的止痛药
  • QQ爆危险漏洞,“QQ游戏邀请大盗”邀请你玩病
关于我们 | 诚聘英才 | 联系我们 | 版权声明 | 网站大事 | 网站地图 | 意见建议
CopyRight 2005-2007 Jztop.Com 版权所有 未经许可 请勿转载