SAP RFC介绍.docx_第1页
SAP RFC介绍.docx_第2页
SAP RFC介绍.docx_第3页
SAP RFC介绍.docx_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第一部分 RFC技术什么是RFC?RFC是SAP系统和其他(SAP或非SAP)系统间的一个重要而常用的双向接口技术,也被视为SAP与外部通信的基本协议。简单地说,RFC过程就是系统调用当前系统外的程序模块,从而实现某个功能,而且调用系统和被调用系统中至少有一个必须是SAP ABAP系统。这种远程功能调用也可在同一系统内部进行(如本地SAP系统内的远程调用);但通常情况下,调用程序和被调用程序处于不同系统。RFC调用过程 在系统间通信过程中,需区分发送系统和接受系统。RFC调用请求从发送系统(调用系统)中传至接收系统(被调用系统,也称远程系统或目标系统),发送请求的系统在通信过程中又称为RFC客户端,通信另一方则称为RFC服务器。RFC客户端发起远程功能调用以执行RFC服务器提供的功能。 其中,调用系统和被调用系统均可以是SAP系统和非SAP系统,此外还可以在SAP系统内部将特定应用服务器指定为目标系统。RFC通信的情况 根据通信方向和系统类型,共有如下三种RFC通信: *两个独立的SAP系统之间的通信; *SAPA系统作为调用系统,与外部远程系统(非SAP ABAP系统)通信; *外部系统作为调用系统,与SAP系统通信。RFC接口系统 SAP调用远程功能的能力是通过RFC接口系统(RFC interface system)实现的。根据调用方向的不同(SAP系统调用其他模块或其他系统调用SAP模块),RFC接口提供以下两种服务。(1)ABAP程序的调用接口(2)非SAP ABAP程序的调用接口。RFC通信模式同步通信和异步通信:同步通信时间上允许误差较小,异步通信时间上允许一定的误差。同步调用的优缺点:1)优点:可以及时将数据返还给发送系统;2)缺点:系统对话时必须保证两个系统处于活动状态,否则对话出现中断,影响业务应用的处理。异步调用的优缺点:1)优点:不需要接收系统随时可用,如系统升级、维护等不影响请求发送系统的业务处理;2)缺点:不适用于要求及时响应的处理过程。RFC版本包含的五种版本? 1、同步RFC(sRFC, synchronous RFC)是RFC的第一个版本,它要求连接的双方是同步的工作方式,即都是在可用状态才能够实现成功调用。2、异步RFC(aRFC,asynchronous RFC)这种RFC可以实现异步的RFC调用方式,它可以进行多个并发调用,并且不要求被调用系统的可用状态。发出调用系统会一直尝试直到获得被调用系统的应答。它通常用于当你需要提高系统并行调用多个RFC的效率,相对于强制等待程序的结果,它的效率更高。3、事物RFC(tRFC,transactional RFC)是对aRFC进行相关技术改进后的一个RFC版本,其于aRFC相同点是实现异步调用,其优点是可以将多个调用进行LUW分组处理, 并只执行一次运行。现在aRFC基本上已经停用。4、队列RFC(qRFC,queue(d) RFC)是tRFC的一个增强版本,它保证了所传输数据的处理次序,并可用于SAP-SAP及SAP-non SAP。5、并行RFC(pRFC,Parallel RFC)是一种特殊的RFC,它是aRFC的一种扩展类型。因为它改善了系统的性能,在执行大量的aRFC时。SAP 使用它在MRP里面提高速度。但是它只能执行在同一个系统和同一个client里。五种RFC调用特性对比:执行时间处理模式交互对话状态查询sRFC立即执行同步支持不提供aRFC立即执行异步支持不提供tRFC需等待异步,一次执行不支持提供qRFC需等待异步,一次顺序执行不支持提供pRFC立即执行异步不建议使用不提供RFM: Function-Attributes-Processing Type-Remote-Enable ModuleRFM定义要点:1)参数声明必须是具体类型(不可以 Type any);2)参数必须指定为值传递(Pass Value);3)表类型参数系统隐式进行值传递。4)对于字符型参数,调用方实参的定义长度应 = 被调用方形参定义长度。5)异常处理。基于类的异常不能通过远程调用抛回。 RFC有2个预设系统异常,调用系统必须接收:SYSTEM_FAILURE/ COMMUNICATION_FAILURERFC远程目标维护及调用首先,输入TCODE SM59其次,可以添加一个连接类型,其中包含如下类型(1)类型2( R/2连接),指定R/2系统作为目标系统。(2)类型3(ABAP连接或R/3连接),指定SAP ABAP系统作为目标系统。(3)类型 (内部连接) ,与当前系统连接到同一数据库的ABAP系统。(4)类型 L(逻辑目标): 该条目不指定连接系统,而是参照物理目标生成Technical Settings.(5)Target system: 目标系统名称。(6)Message server 目标系统的消息服务器 T-CODE RZ03 Service 栏中带有”M”字符的 为消息服务器。(7)Group 服务器组 Tcode SMLG 可以查看。(8)Target host (目标系统的主机或IP地址) SM51 中的HOST name字段。(9)System number(目标系统的系统编号),设定Logon/Security 选项卡,Trusted system对于类型3的远程目标,可将服务器系统设定为可信任系统,则RFC用户无需对该系统再设定登陆密码,其次,要设定同步或异步的调用方式。如果同步RFC的调用方式,同步RFC要求远程系统在调用时可用,调用程序的处理暂停,并等待远程function module调用的返回结构后再继续。语法如下:CALL FUNCTIOAN rfm_name DESTINATION dest .如果是异步的话,异步RFC也要求RFC服务器系统在调用时可用,被调用的function module 将立即启动并运行,区别于同步调用,调用程序不等待远程调用结果,而继续运行,远程功能处理与调用程序的处理过程相分离,功能返回结果可以在后续过程中被接收。语法如下:CALL FUNCTION rfm_name START NEW TASK taskname .异步RFC调用时接收结果CALL FUNCTION rfm_name START NEW TASK taskname PERFORMING return_form ON END OF TASK子程序必须存在于程序中FORM return_form USING taskname. RECEIVE RESULTS FROM FUNCTION rfm_name.ENDFORM第三,进行异步RFC方式的RFM调用RFC实际上是异步RFC调用的应用之一,异步RFC调用适用于多个SAP ABAP系统间的并行处理(不支持非SAP系统),可以在同一个系统内部使用异步RFC调用,并将部分处理负载转移到其它的应用服务器上,如果不现实指定异步RFC调用的目标,则在同一应用服务器内,也可以通过本地异步RFC调用实现多个工作过程的并行处理。分组并行处理的语法如下:CALL FUNCTION rfm_nameSTARTING NEW TASK taskname DESTINATION IN GROUP g1 .EXCEPTION RESOURCE_FAILURE = .并行处理条件是,逻辑独立的工作单元(logically-independent units of work):并行处理并不适合需要顺序进行的数据处理。各个数据处理过程不能具有依赖关系。ABAP要求是被调用的功能模块程序中不能包含使用目标back的远程功能调用。调用程序不能在异步调用之后生成新的内部会话,不能通过 call function starting new task destination in group 语句启动外部程序,系统资源要求是为了处理并行作业, sap系统中至少要有三个对话工作过程。 调度队列(dispatcher queue)必须低于10%满载,而且至少要有一个空闲对话工作过程用于处理并行作业中的任务,并保留两个空闲的工作过程处理系统登陆及管理任务。第四,设置事务性RFC。通过事务RFC调用,可以将多个逻辑上相关的远程调用绑定到一个LUW上.在该LUW内,所有调用按其调用顺序,在目标系统的相同程序上下文中以单个事务的方式执行,要么执行所有,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论