浅谈基于SAP系统的远程功能调用_第1页
浅谈基于SAP系统的远程功能调用_第2页
浅谈基于SAP系统的远程功能调用_第3页
浅谈基于SAP系统的远程功能调用_第4页
浅谈基于SAP系统的远程功能调用_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

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

文档简介

1、 PAGE 60长 炼 科 技2008年 第34卷第1期刘建武. 浅谈基于SAP系统的远程功能调用 PAGE 59 浅谈基于SAP系统的远程功能调用摘要:本文介绍了SAP系统中远程功能调用的基本知识和相关概念,并对五种基本的调用类型从如何使用、何时使用以及为何使用等方面进行了一一阐述。关键词:SAPPR/3 RFC RFM SAPR/3是是德国SAPP公司研发的的基于客户/服务器环境境的系统软件件,可用于处处理一个公司司中几乎所有有的经营管理理任务,具有有功能模块化化、信息高度度共享、开放放性、用户界界面友好和安安全性高等特特点。之所以说SAPPR/3是一一个开放的系系统,一是因因为它具有专专

2、属的ABAAP语言开发发环境,能够够让开发人员员实现个性化化的功能;二二是它能够使使R/3与RR/3系统之之间、R/33与非R/33系统之间无无缝集成。就就技术角度而而言,SAPPR/3提供供了文件交换换、程序通讯讯、数据库存存取以及对标标准网络服务务的支持等通通讯手段来实实现系统内部部和系统之间间的数据交流流,从而达到到信息的高度度共享。本文所论述的RRFC(Reemote Functtion CCall)远远程功能调用用就是实现程程序通讯(即即progrram-too-proggram)的的一种方式。文文章首先简要要介绍了RFFC的基本知知识和相关概概念,然后对对RFC的五五种基本调用用类

3、型从如何何使用、什么么时候使用以以及为什么使使用等方面进进行了一一阐阐述。1 RFC简简介远程功能调用(RRFC)就是是指与调用者者不在同一个个系统的功能能函数被执行行的过程。在在技术上,SSAP允许调调用者与被调调用的功能函函数既可以属属于不同的系系统,也可以以属于同一个个系统。所运运行的系统既既可以是R/3系统之间间,也可以是是R/3与非非R/3系统统之间。在RFC中调用用者称为客户户,被调用者者称为服务器器,整个调用用过程既开始始于客户端也也结束于客户户端,按顺序序可以分成四四个步骤:第第一步,客户户端向服务器器端的功能函函数发起调用用;第二步,服服务器检测被被调用的功能能函数是否有有效

4、以及是否否允许远调用用,如果函数数正确有效则则受理调用请请求;第三步步,检测用户户是否具有函函数的调用权权限,如果权权限满足则运运行函数,并并可以返回调调用结果给客客户端;第四四步,客户端端接收到服务务器端返回的的结果,然后后根据这个结结果执行相应应的处理逻辑辑。2 RFC的的五种基本调调用类型SAPR/3提提供了五种基基本的RFCC调用类型,以以适应不同的的需求。同步型,Synnchronnous RRFC(sRRFC)收稿日期:2008-02-29作者简介:刘建武,1998年毕业于长炼职工大学,现从事于计算机软件开发工作。sRFC是一个个最普通的调调用类型,当当程序要求在在功能函数执执行完

5、成后立立即返回结果果时,使用ssRFC是一一种比较理想想的选择。然然而,此时在在如图1所示示的sRFCC通讯过程中中,客户端和和服务器端必必须同时有效效。图中DEESTINAATION的的参数被称为为目标系统,也也就是远程功功能函数(RRFM)所在在的服务器名名称。如果目目标系统参数数为空或者NONE,则表示所所调用的功能能函数在本地地运行。在ssRFC传递递到服务器后后,调用者程程序就被悬挂挂起来,一直直到RFM返返回结果为止止。首次被调调用的功能函函数都会在其其所属的系统统内创建一个个上下文环境境,同时把该该函数所在功功能组的内容容全部装载进进来,并且该该环境会一直直保持在内存存中,一直到

6、到调用者程序序发出结束会会话的指令为为止。当属于于同一个目标标系统相同函函数组的其它它函数被调用用时,不会再再创建新的会会话环境,当当前被调用的的函数可以获获取到该函数数组任何全局局变量的值,不不管它是否被被其它函数所所修改,从而而到达数据共收稿日期:2008-02-29作者简介:刘建武,1998年毕业于长炼职工大学,现从事于计算机软件开发工作。异步型,Asyynchroonous RFC(aaRFC)了能够同时调用用多个RFMM,而不必一一味地等待前前者被调用的的结果,以提提高ABAPP程序的运行行效率,使用用aRFC是一一种非常好的的选择。换句句话说,aRRFC可以让让目标系统在在接收到调

7、用用请求后立即即将控制权交交还给调用者者程序,以使使后续的RFFM能够毫无无耽搁地被调调用。从图22所示aRFFC的调用过过程看,与ssRFC相比比就语法角度度而言aRFFC多了一条条语句STARTTING NNEW TAASK。这表示每每个aRFC都要创创建自己的会会话环境,不不管所调用的的功能函数是是否相同。一一旦功能函数数执行完毕,无无需调用者程程序发送任何何命令,所建建立的上下文文会话环境将将自动图1 同步调用关闭。虽虽然aRFCC在功能函数数执行完毕之之前就交还了了控制权,但但是只要添加加一条PERFOORMINGG funcc1 ON END OOF TASSK语句,并编编写代码实

8、现现相应的回调调函数funnc1,调用用者程序仍然然可以获得来来自RFM的的运行结果。因因此对于aRRFC来说,是是否捕获返回回结果完全取取决于调用者者程序的需要要,不管怎样样都不会影响响程序的执行行效率,使用用起来非常方方便灵活。如如图2所示。图1 同步调用图2图2 异步调用图2 异步调用 事务型,Traansacttiona图2 异步调用 tRFC能够将将一个或多个个RFM组织织起来形成一一个工作进程程逻辑单元(LLUW),所所有的RFMM都在这个LLUW中顺序序执行,并且且每个RFMM只执行一次次。也就是说说,如果其中中任何一个RRFM调用出出错,属于同同一个LUWW的后续RFFM将不会

9、执执行。tRFFC提供了错错误跟踪机制制,可以记录录从调用请求求发送到函数数执行完成整整个过程的错错误信息。用用户可以通过过事务码SMM58查看到到所产生的这这些错误信息息,以便对调调用程序或目目标系统作相相应的修改或或调整。因此此,tRFCC非常适用于于生成后勤业业务凭证或财财务凭证记帐帐的情况,它它能够完全确确保凭证生成成或记帐的唯唯一性。与ssRFC和aRFC相比比,tRFCC必须使用提提交语句COMMIIT WORRK,相应的功功能函数才会会在目标系统统中执行。同同时使用tRRFC也可以以省去程序员员自己编写错错误处理代码码的时间和精精力。就调用用语法而言,tFRC比sRFC多了一条I

10、N BACKGROUND TASK语句。就调用过程而言,tFRC与aRFC类似,同样是在功能函数接收到调用请求之后立即将控制权交还给调用者程序。队列型,Queeued RRFC(qRRFC)虽然tRFC可可以确保属于于同一个LUUW的RFMM能够顺序执执行,但是如如果存在多个个LUW也按按次序执行时时,使用qRRFC则完全全可以满足需需求,因此可可以说qRFFC实际上是是tRFC的一一种扩展。与与tRFC相比比,相同的是是所有功能函函数必须在接接收到提交命命令之后才会会执行,不同同的是在每一一次调用RFFC之前都必必须先调用TRFC_SET_QQUEUE_NAME函数,以确确定tRFCC的执行

11、顺序序。qRFCC的这种函数数执行次序控控制机制被称称为队列,它它可以分为外外向队列和内内向队列。当当调用者程序序与被调用的的功能函数不在同一个系统统时,qRFFC执行顺序序由外向队列列控制,反之则由内内向队列控制制。并发型,Parrallell RFC(pRFC)pRFC被认为为是aRFCC的一种扩展展,因为它在在执行效率非非常显著,远远比aRFCC要高。当存存在大量的RRFC需要异异步调用时,使使用pRFCC是一种十分分谨慎和可靠靠的选择(例例如:在进行行MRP运算算时,如果使使用pRFCC可以大大提提高执行效率率和业务的处处理能力)。与与aRFC相比比,pRFCC更加智能化化,它会在目目

12、标系统内存存吃紧或者多多个进程占用用相同资源的的情况下等待待功能函数调调用的最佳时时机,并不会会象aRFCC那样不考虑虑任何环境因因素而造成服服务器过载,致致使系统性能能严重下降甚甚至死机。之之所以说pRRFC运行效效率高,是因因为它可以用用参数DESTIINATIOON IN GROUPP指定功能函函数运行的应应用服务器组组(在事务码码RZ12中中维护),利利用RFC本本身自有的负负载均衡机制制,将RFCC分配到属于于同一组的不不同应用服务务器上运行。以上阐述的RFFC调用类型型各有各的利利弊和侧重点点,它们适用用于不同的情情况,实现不不同的目的。我我们可以从图图3所示六个个方面来对这这五种

13、RFCC调用类型进进行一个总的的比较。表1 五种基基本调用类型型对比同步型(sRFFC)异步型(aRFFC)事务型(tRFFC)队列型(qRFFC)并发型(pRFFC)运行时间立即执行立即执行等待提交等待提交立即执行处理类型同步异步异步(EO)异步(EOIOO)异步输出参数支持支持不支持不支持支持切换用户支持支持支持支持不支持对话交互支持支持不支持不支持不推荐运行检测不支持不支持支持支持不支持EO=Exacctly OOnce(执执行一次)EEOIO=EExactlly Oncce In Orderr(按顺序执执行一次)执行时间使用sRFC、aRFC和pRFC时,只只要调用请求求一旦被目标标系

14、统接受功功能函数就会会立即执行,而而tRFC和qRFC则必必须要等到提提交指令的发发出功能函数数才得以调用用。处理类型在五种调用类型型中只有sRRFC使用得得最频繁,因因为它代码简简单、容易调调试,并且无无需编写回调调函数就可以以轻松获取RRFM的调用用结果。其余余四种类型都都属于异步调调用,虽然代代码比sRFFC较为复杂杂,但是执行行效率却远远远高于sRFFC。其中,tRRFC和qRFC还能能够控制功能能函数的执行行次序。输出参数aRFC和pRRFC可以通通过回调函数数的机制获取取到来自RFFM的结果,而而tRFC和qRFC则没没有获取返回回结果的能力力。切换用户当RFM被调用用之前,必须须

15、事先使用事事务码SM559在调用者者系统中创建建一个RFCC连接,这个个连接包含了了登录目标系系统的方式以以及用户和集集团号等信息息。在五种调调用类型中除除了pRFCC以外,其余余四种类型都都可以随时指指定登录目标标系统的用户户或集团,即即切换用户。对话交互在sRFC和aaRFC中允允许出现与用用户进行交互互的对话框界界面(GUII),而在ttRFC和qRFC中则则不能出现任任何GUI交交互动作。虽虽然pRFCC也允许对话话交互,但是是SAP不推推荐这样做。运行监测在五种调用类型型中只有tRRFC和qRFC具有有运行情况的的跟踪监测功功能,即查看看RFC运行行日志。其中中事务码SMM58用于监

16、监测tRFCC,事务码SSMQ1用于于检测qRFFC的外向队队列,事务码码SMQ2用用于检测qRRFC的内向向队列。4 RFC的的通讯处理周周期每一个RFC请请求的生成就就表示一次RRFC通讯处处理周期的开开始,它以工工作进程的形形式存在,其其中包含了连连接参数、登登录信息和运运行时数据等等内容。连接参数连接参数含了目目标服务器的的宿主机名和和端口号,这这些技术性设设置都在SMM59中进行行维护。登录信息登录信息包含了了相关用户在在目标系统中中的属性,例例如:登录语语言、集团号号和用户名等等。运行时数据运行时数据包含含了功能函数数的名字和相相关参数,例如:输入入参数、输出出参数和表参参数等。每

17、次次RFC通讯讯处理开始时时,客户端网网关就会打开开一个与服务务器网关的连连接,然后把把调用请求序序列化传送过过去,接着服服务器网关还还原序列化的的内容成请求求后分配给能能够处理它的的工作进程,最最后将处理结结果返回给客客户端网关,并并释放相关资资源供其它进进程使用。5 结束语在日常的工作实实践中,RFFC广泛应用用于系统集成成方面,包括括R/3系统之之间以及R/3与非R/3系统之之间,它能够够在很短的时时间内以最小小的代价实现现各个系统之之间的数据交交换,达到信信息共享的目目的。随着SSAP系统的的不断推广和和广泛应用,对对于ABAPP开发人员来来说,非常有有可能会遇到到需要使用RRFC的情

18、况况,因此如何何正确选择适适合的RFCC类型就成了了解决问题的的关键。希望望本文所阐述述的内容能够够起到参考的的作用,给他他们一些启发发和提示。参考文献1 周旋(译译). SAAP R/33技术与实现现. 机械工业业出版社,22001年版版2 黄佳. SAP程序序设计. 机械工业业出版社,22005年版版3 黄佳. SAP业务务数据传输指指南.人民邮电业业出版社,22006年版版4 SAP标标准教材BCC415,SSAP公司22002年版版二联合以实际行行动迎接设备备大检查近日,二联合积积极开展查隐隐患抓整改,整整资料搞演练练等系列活动动,以实际行行动迎接总公公司设备大检检查。 为为了把迎检工工作抓实抓细细,二联合首首先从员工的的行为规范抓抓起,每天值值班干部查检检员工是否按按规定穿戴着着装,发现不不符合要求的的严格考核兑兑现。积极开开展查隐患抓抓整改活动,分分工艺、设备备、安全、综综合四路对全全装置设备进进行拉网式隐隐患大排查,共共查出各类隐隐患6项,及及时联系有关关单位限期整整改完。对以以往查出的问问题,重点整整治。当班发发现的问题,实实行即查即改改,事不过班班。狠抓设备备的维护保养养,对烟机等等大型机组特特护设备,加加强振动监测测和故障处理理,使其保持持在安全高效效状态下运行行。对机动设设备的润滑油油采取不定期期抽查,发现现有乳化变质质和泄漏的,及及时更换处

温馨提示

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

评论

0/150

提交评论