SAP数据接口文档.doc

上传人:11****ws 文档编号:2993674 上传时间:2019-05-16 格式:DOC 页数:11 大小:769.39KB
下载 相关 举报
SAP数据接口文档.doc_第1页
第1页 / 共11页
SAP数据接口文档.doc_第2页
第2页 / 共11页
SAP数据接口文档.doc_第3页
第3页 / 共11页
SAP数据接口文档.doc_第4页
第4页 / 共11页
SAP数据接口文档.doc_第5页
第5页 / 共11页
点击查看更多>>
资源描述

1、 相关技术简介RFC ( Romote Function Call,远程函数调用 ) 接口模式RFC 是 SAP 系统和其他(SAP 或非 SAP)系统间的一个重要而常用的双向接口技术,也被视为 SAP 与外部通信的基本协议。简单地说,RFC 过程就是系统调用当前系统外的程序模块,从而实现某个功能,而且调用系统和被调用系统中至少有一个必须是 SAP ABAP 系统。这种远程功能调用也可在同一系统内部进行(如本地 SAP 系统内的远程调用) ;但通常情况下,调用程序和被调用程序处于不同系统。SAP 系统 RFC 应用的原理很简单,有一些类似于三层构架的 C/S 系统,第三方的客户程序通过接口调用

2、 SAP 内部的标准或自定义函数,获得函数返回的数据进行处理后显示或打印。优点:SAP 的 RFC 调用是其接口技术中最简单和易用的一种方式,该方式开发比较简便,特别适合于外部报表开发。缺点:但对于大数据量的查询效率相对较低。如果有大数据量开发很多使用 IDOC 和 BAPI 接口开发技术 RFC 接口方案开发量小,实施简单,很快就能满足客户需求,如在外部系统打印报表,或外部系统获取 SAP 简单的数据信息进行加工处理等。但这种方案只能满足客户简单的需求。BAPI (Business Application Programming Interface)接口模式 BAPI 是 Business

3、Application Programming Interface 的缩写, 是 SAP 为 3.0 版本以上提供的基于企业目标(Business Object) 技术的接口应用界面。SAP 在 3.0 版本以上采用了Object-oriented 技术,逻辑定义了 SAP R/3 系统的所有功能目标,并且将所有的目标(Objects) 和 BAPIs 存储于企业目标库 BOR(Business Objects Repository). SAP R/3 企业目标的目标类型(Object Type) 相当于目标设计语言中类(Class) 的概念,其定义结构由以下几部分组成:基本数据-所有目标类的

4、通用属性,如目标标识和默认方法(Method) 。接口界面-目标的方法(Method), 事件(Event), 特征(Attributes) 。键(Key Fields)-供 BOR 中目标检索使用方法(Methods)- 对目标进行所要求的各种操作。特征(Attibutes)- 描述目标特征。事件(Events)- 触发以改变目标状态。BAPI 是一个标准化的开放接口。BAPI 是 SAP 提供给用户的一些标准函数,比如创建销售订单的函数 ,只要给定相应的参数,就可以实现特定的功能.它也克服了很多 BDC 存在的固有 BUG.优点:BAPI 是外部系统对 SAP 标准业务进行调用的一种方式,

5、当外部系统有对 SAP 标准业务关联较紧密的功能性开发调用时较适合。缺点:但当外部系统与 SAP 系统间有大数据量的交付,并且分布广,网络状况较差情况下不适合。这种模式,也是只需写少量的代码就能实现,并且满足了客户对 SAP 业务模块对象化的应用,这种模式需要在 SAP 业务模块进行适量的配置,这是目前小业务数据量交付的常用接口模式,因为外部系统只需给出调用的输入参数,在获取SAP 的输出参数,但 SAP 系统自身处理相应业务逻辑,这增加了 SAP 服务器负载,并且不适宜分布较广的系统间大数据量的交付ALE(Application Link and Enabling )/IDocs(Inter

6、mediate DOCument)接口模式ALE 是 Application Link and Enabling 的缩写,是 SAP 专门为 SAP 与 SAP 之间所设计的整合中间件。IDocs 是中介文本 (Intermediate DOCument) 的缩写,是 SAP 提供的系统整合专用的数据/消息格式。ALE 在 SAP 3.0 版本开始就作为 SAP 整个应用体系的一部分,为分布式数据交换提供了可靠安全的通讯机制。ALE 的设计,原本作为两个 SAP 流程之间的一种消息传递服务(Messaging Service) ,使 SAP 与 SAP 的业务流程之间企业数据能够有效的交换,为

7、两个独立的 SAP 之间提供了的系统整合服务。不过,随着应用的发展,ALE/IDocs 接口机制也已然成为与其它非 SAP 系统的标准的整合方式。ALE 的机制代替了原来的 SAP 所提供的批数据通讯 BDC(Batch Data Communication) 方式顾名思义,BDC 为系统之间提供了简单的数据批处理服务,还不能作为一种中间件技术,它没有提供系统之间进行无缝整合所要求的纠错功能、系统管理和其它安全措施。ALE 这些方面却处理的很好IDoc 是 EDI(电子数据接口)的一种标准,它是 SAP 系统支持的唯一一种 EDI 标准, 所以,在 SAP系统中,不用考虑 EDI 各个标准的转

8、换问题 ALE/IDocs 模式适合有大数据量交付,系统间网络状况较差,且分布较广的 SAP 系统与非SAP 系统间的集成接口模式SAP.NET 可以实现与 SAP 系统的 IDOC,FM,BAPI,RFC ,web service 方式的连接,进行交互,其中 web service 是未来 SAP 与外界进行交互技术发展的趋势,也是 ESOA 的实现之一。SAP.NET 可以实现与 SAP 系统的 IDOC,FM,BAPI,RFC ,web service 方式的连接,进行交互,其中 web service 是未来 SAP 与外界进行交互技术发展的趋势,也是 ESOA 的实现之一。开发步骤:

9、这个实例使用 BAPI_USER_GET_DETAIL 做为 receiver interface 和用户定义 outbound 同步interface。创建 response message mapping 。创建 interface mapping 。创建 sender communication channel 类型是 SOAP adapter ,使用 outbound synchronous interface 创建 receiver communication channel 创建 receiver determination在 ID 端定义 web service,创建 WSDL

10、outbound synchronous ,URL http:/host:port/XISOAPAdapter/MessageServlet?channel=party:service:channel 在.net 开发环境下加入 web 引用,可以用本地文件,或者远程 URL。编译后会生成 CS 的类文件,关于 的应用可以查看 安装后的 DEMO,很好,很强大。在线等 vb 与 sap 接口的问题 (从 sap 读取数据中文不能正确显示)利用 Visual Basic 开发 SAP 接口程序初探2005-11-18 09:16 作者:冯强出处:天极开发责任编辑:方舟 SAP R/3 系统是

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

12、,远程函数调用)。SAP 系统 RFC 调用的原理其实很简单,有一些类似于三层构架的 C/S 系统,第三方的客户程序通过接口调用 SAP 内部的标准或自定义函数,获得函数返回的数据进行处理后显示或打印。下面是 RFC 调用的模型: 本文主要不是讨论 SAP R/3 函数的开发,因为使用 SAP 的公司一般都有专门的 ABAP 开发人员。大家如果有机会接触 ABAP 平台,可以通过事务代码 SE37 进入 ABAP 开发平台的“函数编制器“进行函数开发测试。如图:下面主要以 VB 为例介绍一下 SAP 接口 RFC 的开发思路。在 SAP 客户端 SAP Gui Client 安装的时候,注意选

13、择安装附带的 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 登

14、录界面程序If logflag Then 调用生产、开发系统开关StatusBar1.Visible = TrueStatusBar1.SimpleText = “正在登录 SAP R/3 系统.“Dim R3AppServer As String, R3Client As String, R3SystemNo As StringIf Form2.opPRD.Value Then 以下服务器参数请根据客户配置情况更改R3AppServer = “10.3.1.4“ 生产系统服务器 IPR3Client = “800“ 生产系统集团代码R3SystemNo = “00“ 生产系统号ElseR3A

15、ppServer = “10.3.3.1“ 开发系统服务器 IPR3Client = “101“R3SystemNo = “00“End IfUnload Form2 释放 Form2 , 所有控件及值不可用Set Functions = CreateObject(“Sap.Functions“) 创建 RFC 的本地对象Set Connect = Functions.Connection 设置连接Connect.ApplicationServer = R3AppServer 赋值服务器 IPConnect.Client = R3Client 赋值 SAP 集团代码Connect.Langua

16、ge = “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.SetFocusElse 登录 SAP 成功Comma

17、nd1.Enabled = FalseCommand2.Enabled = Truetest.Enabled = TrueEnd IfStatusBar1.SimpleText = “StatusBar1.Visible = FalseEnd IfEnd SubPrivate Sub Command2_Click() 注销 SAP 登录Connect.LogOffCommand2.Enabled = FalseCommand1.Enabled = Truetest.Enabled = FalseEnd SubPrivate Sub Command3_Click() 退出 SAP 接口演示程序I

18、f Form1.Command2.Enabled ThenMsgBox “退出前请断开 SAP R/3 系统!“, vbOKOnly + vbInformation, “系统提示“ElseEndEnd IfEnd SubPrivate Sub Form_Load()Command2.Enabled = Falsetest.Enabled = Falselogoflag = FalseEnd SubPrivate Sub test_Click() SAP RFC 远程调用处理主演示Dim GetCustomers As ObjectDim Customers As ObjectDim i As

19、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

20、.rowcountMsgBox Customers(i, “KUNNR“)Next iElseMsgBox “ 搜索出错! 出错信息: “ + GetCustomers.ExceptionEnd IfEnd Sub SAP 的 RFC 调用是其接口技术中最简单和易用的一种方式,该方式开发比较简便,特别适合于外部报表开发,但对于大数据量的查询效率相对较低。大家在熟练掌握后,可以进一步学习高级的 IDOC 和 BAPI 接口开发技术。 利用 Visual Basic 开发 SAP 接口程序初探2005-11-18 09:16 作者:冯强出处:天极开发责任编辑:方舟 SAP R/3 系统是业界最先进

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

22、调用)。SAP 系统 RFC 调用的原理其实很简单,有一些类似于三层构架的 C/S 系统,第三方的客户程序通过接口调用 SAP 内部的标准或自定义函数,获得函数返回的数据进行处理后显示或打印。下面是 RFC 调用的模型: 本文主要不是讨论 SAP R/3 函数的开发,因为使用 SAP 的公司一般都有专门的 ABAP 开发人员。大家如果有机会接触 ABAP 平台,可以通过事务代码 SE37 进入 ABAP 开发平台的“函数编制器“进行函数开发测试。如图:下面主要以 VB 为例介绍一下 SAP 接口 RFC 的开发思路。在 SAP 客户端 SAP Gui Client 安装的时候,注意选择安装附带

23、的 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 登录界面程序

24、If logflag Then 调用生产、开发系统开关StatusBar1.Visible = TrueStatusBar1.SimpleText = “正在登录 SAP R/3 系统.“Dim R3AppServer As String, R3Client As String, R3SystemNo As StringIf Form2.opPRD.Value Then 以下服务器参数请根据客户配置情况更改R3AppServer = “10.3.1.4“ 生产系统服务器 IPR3Client = “800“ 生产系统集团代码R3SystemNo = “00“ 生产系统号ElseR3AppSer

25、ver = “10.3.3.1“ 开发系统服务器 IPR3Client = “101“R3SystemNo = “00“End IfUnload Form2 释放 Form2 , 所有控件及值不可用Set Functions = CreateObject(“Sap.Functions“) 创建 RFC 的本地对象Set Connect = Functions.Connection 设置连接Connect.ApplicationServer = R3AppServer 赋值服务器 IPConnect.Client = R3Client 赋值 SAP 集团代码Connect.Language =

26、“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.SetFocusElse 登录 SAP 成功Command1.E

27、nabled = FalseCommand2.Enabled = Truetest.Enabled = TrueEnd IfStatusBar1.SimpleText = “StatusBar1.Visible = FalseEnd IfEnd SubPrivate Sub Command2_Click() 注销 SAP 登录Connect.LogOffCommand2.Enabled = FalseCommand1.Enabled = Truetest.Enabled = FalseEnd SubPrivate Sub Command3_Click() 退出 SAP 接口演示程序If For

28、m1.Command2.Enabled ThenMsgBox “退出前请断开 SAP R/3 系统!“, vbOKOnly + vbInformation, “系统提示“ElseEndEnd IfEnd SubPrivate Sub Form_Load()Command2.Enabled = Falsetest.Enabled = Falselogoflag = FalseEnd SubPrivate Sub test_Click() SAP RFC 远程调用处理主演示Dim GetCustomers As ObjectDim Customers As ObjectDim i As Integ

29、er 通过 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.rowcountMsgBox Customers(i, “KUNNR“)Next iElseMsgBox “ 搜索出错! 出错信息: “ + GetCustomers.ExceptionEnd IfEnd Sub SAP 的 RFC 调用是其接口技术中最简单和易用的一种方式,该方式开发比较简便,特别适合于外部报表开发,但对于大数据量的查询效率相对较低。大家在熟练掌握后,可以进一步学习高级的 IDOC 和 BAPI 接口开发技术。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 实用文档资料库 > 策划方案

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。