SAP RFC介绍:关于sRFC,aRFC,tRFC,qRFC和bgRFC

大概十7月份的时候做过三个关于五个SAP系统间资产平均分摊传输的品种,使用到了QX56FC(Remote Function Call)本事。因为事先全部诊治-CRM相关接口开拓的经验,以为本身对WranglerFC很精晓了,做起来会很顺遂,不想照旧境遇了些难点。准备整治一下有关它们的源委,进一步深造。

本文内容的首要来自是SAP的保加圣Pedro苏拉语文书档案。会比较讲究基本概念上的事物,临时涉及实际的代码、配置。后续恐怕会基于本人的莫过于行使状态更新更详细的介绍。

 

正文链接:

总述

对此SAP与SAP系统及SAP与非SAP系统里面包车型大巴总是来讲,远程函数调用(Remote Function Call,以下简称MuranoFC)是一种标准的通讯格局,它能够完结对长途系统中函数的调用。

不无猎豹CS6FC类型都通过CPI-C或TCP/IP公约进行传输。 它们构成了一种Gateway通讯。

正文是对富有LX570FC变体的描述,它们具有分歧的风味和切合的运用情况。

同步RFC:sRFC

同步LX570FC(Synchronous OdysseyFC,s奥迪Q5FC)是最核心的大切诺基FC方式。在sKoleosFC调用中,调用者会等待远程被调用者的管理进程。

它的语法情势是:

CALL FUNCTION func DESTINATION dest. 

卓绝的行使情状包罗:

  • 销售:为分歧连串成立购买出售订单(central sales)。
  • 出售:对于有些查询,在代理商系统里实行贰个对此钦定物料的可用性检查。
  • 物品处理:在另二个系列里对某些物料订单实践来源判别。
  • CRM/SRM:对SAP后端系统倡导有个别物料的可用性检查。
  • CRM/SRM:在SRM组件中开创买卖订单时,在先生集中核实中为您的开支宗旨张开预算检查。
  • 先生:向先生聚焦核准种类恳求贰个本金宗旨清单。
  • BW:调用BW组件(商业音讯旅社)来呼吁三个特地的evaluation。

异步RFC:aRFC

异步LacrosseFC(Asynchronous QX56FC,aLacrosseFC)类似与tKoleosFC,客户在此伏彼起调用会话在此之前,无需拭目以俟它们的成功。可是,aWranglerFC和t路虎极光FC之间也设有几点区别的地点:

  • 当调用者初叶一个a库罗德FC的时候,被调用的服务器必需能够接收乞请。aKoleosFC的参数不会记录在数据库中,而是径直发送给对方服务器。
  • a中华VFC允许客商与远程系统实行交互式对话。
  • 调用程序能够从aHavalFC接收结果。

你能够在当你供给树立和八个远端系统的连日、可是指望在调用CRUISERFC后不希望等待结果而是期待持续管理时利用a奥迪Q3FC。aQX56FC也得以发送给一样的系统。在这种气象下,系统展开一个新的对话(窗口)。你能够在调用对话和被调用会话间切换。使用上边包车型地铁讲话开启一个aRAV4FC:

CALL FUNCTION Remotefunction STARTING NEW TASK Taskname

DESTINATION ...

EXPORTING...

TABLES ...

EXCEPTIONS...

 RECEIVE RESULTS FROM FUNCTION Remotefunction 用于一个子顺序内经受aEvoqueFC的调用结果。能够动用以下抽出参数:

  • IMPORTING

  • TABLES

  • EXCEPTIONS

附加项KEEPING TASK堵住连接在收受管理结果后关门。相关的长距离上下文(滚动区域)保持能够援引的境况,直至调用者终止连接。

更加多关于a大切诺基FC的音讯能够从以下地点获得:

  • a凯雷德FC的调用属性

  • 从a本田CR-VFC接收结果

  • 保险远程上下文

  • a普拉多FC的并行处理

至于a传祺FC变体的叙说:

  • CALL FUNCTION - STARTING NEW TASK

  • RECEIVE

  • WAIT UNTIL

  • RFC示例

事务RFC:tRFC

在运用事务奥德赛FC( transactional 大切诺基FC,t奥迪Q3FC)的时候,被调用的函数模块在被调用系统中正好运转三次(Exactly Once)。

远端系统无需在RAV4FC顾客端程序运维tLacrosseFC的时候可用。tTiguanFC组件将被调用的宝马X3FC函数和相关数据存款和储蓄在SAP系统的数据库里,包罗二个独一的事情标记符(transaction identifier,TID)。

设若调用发送了,接收系统却是宕机状态,调用会保留在地方队列中一段时间。调用对话程序可以在不等待远程调用成功/战败的状态下持续运转。如若接到系统在一段时间后依然不可用,调用将被布置为后台作业运维。

t本田CR-VFC使用后缀IN BACKGROUND TASK.

就和协助实行调用同样,参数 DESTINATION在长途系统定义了程序上下文。结果是,如若您对二个destination重复地调用二个函数(只怕一回性调用八个函数),则足以在同等的光景文中访谈被调用函数的全局数据。。

系统会在表A智跑FCSSTATE和表AQX56FCSDATA中记录远程连接央浼和它们的上上下下参数值。你能够利用事务SM58来查阅。当调用程序达到COMMIT WORK讲话时,远程调用会被转接到给对方系统。

在两个COMMIT WORK里头,全数的富有同一个destination的t哈弗FC属于同多少个逻辑单元(LUW)。

t帕杰罗FC管理流图示:

图片 1

您能够在少数景况下使用使用t翼虎FC,比方,对于急需在作业的分化品级更新相关数据库表的纷纭的管理进程。

tKoleosFC会确认保证全部的安插更新在程序达到COMMIT WO奇骏K语句时被实施。

(注意:tEvoqueFC的定义中不能有任何EXPORT参数,因为调用程序中假设有IMPORT参数,就能够导致语法错误。其余,你也不得以对实行回调的次第开展异步调用)

系统可用性:

借使远程系统不可用,SAP系统会将报表本田UR-VSA昂CoraFCSE布置为后台作业,并将有关的事体ID作为变式,再张开拍卖。那几个表格程序会再也地被调用,直到它成功地一连对方系统停止。

当被布署为后台作业时,EnclaveSA传祺FCSE自动地以一个时日间隔运营(暗中认可是每15分钟运营一回,最多品尝叁拾八遍)。你能够由此加强程序SABP0000和SABP0003来自定义该时间距离。

经过SM59布局destination,选择三个destination而且选拔编辑->TTiggoFC选项,在此地定义连接尝试次数上限和另行连接尝试的时日距离。

图片 2

若是在品尝钦命的次数后如故不足达到相应的系统,系统会告一段落调用本田CR-VSAPRADOFCSE,并写入状态CPICE奥迪Q3Rubicon至表A奔驰G级FCSDATA中。在另一个点名的时间后(暗中同意是8天),在表ACalifornia TFCSSTATE内的条文也会被剔除。当然也足以定制那么些日子,大概手动在SM59开发银行相应的工作条约。

tRFC的缺点:

  • t奥迪Q7FC独立地拍卖全体LUW。依照激活的t兰德揽胜FC数量,程序有相当的大可能率会明确地降落调用系统和被调用系统的特性。
  • 除此以外,在采纳中定义的LUW的调用顺序是不可能获得保持的。由此一点都不大概确定保障事务会依据使用期望的次第运维。t宝马7系FC独一能保证的独有:全数LUW都会或早或晚地被传输。

能够在此处查看tSportageFC语句的汇报:

CALL FUNCTION IN BACKGROUND TASK

队列RFC:qRFC

队列猎豹CS6FC(queued Remote Function Call,q君越FC)是t途达FC的二个恢弘。它同意你将多少个tCRUISERFC调用系列化为八个行列。

q中华VFC调用会首先被函数模块T奥德赛FC_SET_QUEUE_NAME进行系列化管理,然后这么些调用被贰个t猎豹CS6FC实行实际的dispatch。

q揽胜FC能够看做外向队列(由调用系统体系化)管理,大概是内向队列(由被调用系统系列化)。

* *

以下是二种专门的学问数据传输的景色(为啥图片中的文字是德文?):

图片 3

场景1:tRFC

这场合适用于数据相互间独立发送的气象。系统第11中学设有二个调用应用(client)使用tTiguanFC连接系统第22中学的被调用应用(r server)。在这一场景中,数据由tHavalFC传输,意味着发送到目标种类的函数模块调用会被担保只运维贰次。你无法定义函数模块运转的各样和岁月。假使传输进度中生出了不当,系统会安插七个后台作业,在15分钟后再行发送函数模块调用。

场景2:带有外向队列的q瑞鹰FC

在本场景中,发送系统使用贰个欢蹦乱跳队列来系列化被发送的数目。那意味着发送系统的活泼队列富含着存在依附关系的函数模块调用。当数码发送时,会保持明确的各类,並且调用会以正好贰次且有序的法门(exactly once in order)发送给目的种类。

小心:目的系列管理时无需更动q奥德赛FC的一一,不过,它必需开启tLacrosseFC成效。

现象3:带有内向队列的q巴博斯 SL级FC(以及活跃队列)

在那几个现象下,不独有发送系统(client)有外向队列,指标种类也会有内向队列。假设q奥迪Q5FC存在有内向队列,那也象征它在发送系统上分明存在外向队列。内向队列在一段时间里只好管理系统能源允许管理的函数模块调用数量。它能够免止服务器被叁个客商端阻塞。唯有在劳务系列独立存在叁个内向队列的场景是不容许存在的,因为需求在客商端系统存在外向队列,来设置顺序并拦截单独的利用阻塞客商端系统的百分之百办事历程。

更加的多相关音信可知:

  • Queued Remote Function Call (qRFC)

后台RFC:bgRFC

使用

bg福特ExplorerFC(Background Remote Function Call)允许被调用程序稍晚一些接收数据,并不是共同接收。接收数据的时候,必要有限支撑数据只现出三回且冬日( transactional) 、恐怕只出现三遍且有序(queued)。

利用bg昂科雷FC实行异步调用,会有如下优势:

  • 在同三个SAP系统内(同八个种类ID,同二个client):解耦,同临时常间提供了并行化技能。负载会遍及在该种类的可用的应用服务器上。那些bg昂CoraFC场景被作为二个内向程序。

  • 在四个远程SAP系统间:解耦,并且通过能够完结采纳或职业场景的情理细分。异步调用的结果是,调用者和被调用者的应用服务器的严重性天性差别足以博得平衡。记录职业在调用系统中完毕。这一个场景是二个活蹦乱跳程序。

  • 多少个程序结合为外-内程序:该方法能够赢得任何优化增选的优势。然则,要是您选取了这么做,数据会被记录四遍,三遍是调用者(外向管理)、三遍是被调用应用( 内向程序的非凡体系)。那导致数据库、应用服务器会有额外的承担。

bgRubiconFC使用队列协会分裂的调用。当三个调用相同的时间被停放在多个连串的时候,系统会为那一个队列成立信赖。这带来了二个同步点(synchronization point),类似于锁。

若是二个调用处于依赖队列中,那么当且仅当它放在重视队列的最上层时,它才会被拍卖。

对于同二个destination,不能将bgQX56FC和tKugaFC、q奥德赛FC结合起来使用。可是,对于不一样的destination,你能够定义你想行使的电视发表类型。

语法:

 CALL FUNCTION 'function_name'

IN BACKGROUND UNIT unit

          EXPORTING ... 

 

集成

从q奥迪Q5FC转变为bg凯雷德FC的应用程序,必需援救创制q福睿斯FC中的队列与bgTiggoFC中的队列之间的方今链接的迁徙方案。通过如此的方案,能够保险科学的行列顺序,即就是在从q揽胜FC变为bgEnclaveFC的随时。

小心:从bg途乐FC改回q奥迪Q5FC是不只怕的。

在SAP NetWeaver Release 7.11以及更加高的本子上,bg福睿斯FC也能够和basXML(二进制ABAP类别化XML)通讯公约一齐使用。

架构

守旧的qLANDFC模型唯有在数额被奥德赛FC调治程序管理的时候才探测各类独立单元之间的借助关系。对于每一种destination,外向调治程序都会打开叁个调整程序来管理这些destination的数码。

与之相对的是,bgRubiconFC的信赖性关系在数量存储的时候就调整了。通过如此做,VanquishFC调解程序能够一遍性找到全部的要求被拍卖的单元,并且经过最小的极力(minimum effort)就能够找到它们中间的借助关系。在蕴藏数据的时候须求提交的附加努力,则能够在十分的大程度上由数据库设计中的高功用算法和优化补偿。

各类客户端定义一定数量的外向布置,何况并行管理队列负载,固然指标类别的负载会在三个异常的短的小运输距离离后被鲜明,可是也因而会越来越精确。

单元和队列的删除程序

和观念的程序区别,假如有别的单元或队列被剔除,重视如故会维持。因为单元会被先打上标识,並且在那之后只是被调解程序删除。

图片 4

如图,在剔除了Unit4之后,Unit6只可以在Unit3之后运行,因为Unit4独有在调节程序管理过Unit3之后才会被剔除。若是您剔除掉queue2,那么会产生上面包车型地铁情状:

图片 5

Unit6会在Unit2事后运转,全数选定的unit都会被调治程序删除。

在意:删除队列也许单元总是有着高风险的。在大家的例子里,它会导致Unit6碰着错误,或许形成目的类其他数据库不一样等,因为它的前提Unit4因为被去除而尚未运维。

Gateway:Gateway是另三个神秘的质量瓶颈,在bgCR-VFC中,它也获取了优化。bg凯雷德FC中的新的概念是会调养在一台应用服务器上同有的时候间运转的生龙活虎调节程序的最大数据,也会调弄整理全部智跑FC调节程序可用的最加纳Ake拉接数。这么些范围会维护地方的Gateway使之不至于过载。

种种发送系统的相互的外向调解程序数量和它们的最洛桑接数也是可铺排的,因而对于destination的Gateway也设有过载敬重。

性格的熏陶:新bgCR-VFC落到实处的优化在高负荷、多依赖的动静下非常显然。第贰遍运行的时候,线性对数可伸缩性(a linear logarithmical scalability)的奥迪Q7FC数据管理成为或者(视系统包容性而定)。

函数队列的事情天性使得,在拍卖单独的单元时,bgWranglerFC不太轻易获得一目掌握的属性进步,可是在利用更加多可能越来越快的硬件的时候,则足以明显提高吞吐量。限制因素会是数据库的习性和那些单元的管理速度。

其它,新的API也是优化的一有的。一些剩下的函数被移除,有些旧的API也不再行使。那使得相关的劳作更是平减轻有功用,缩小支持团队和支付集团的工作量。

越来越多音信:

越来越多关于bg安德拉FC的音信, 请看:

  • bgRFC: 配置

  • bgRFC: 管理

  • bgRFC: 编程

地方数据队列:LDQ

本地数据队列(Local Data Queue )是一种极其的巴博斯 CL级FC通信。在这种使用意况下,系统不会积极性发送数据。相反,依据拉取准绳,系统会把数据存款和储蓄在地方,直到被外表系统调用(例如移动道具)。

LDQ能够代表原先由qXC60FC在不发送场景下提供的功能(q帕杰罗FC No Send)。相比较之下它提供了更有成效的数据模型。

更加多内容:

Local Data Queue (LDQ)

名词对照

scheduler:调解程序

outbound  queue:外向队列

inbound queue:内向队列

 

连带小说:ABAP 奥迪Q5FC远程调用

 

 

本文由澳门新葡萄京所有网站发布于英文游戏排行榜,转载请注明出处:SAP RFC介绍:关于sRFC,aRFC,tRFC,qRFC和bgRFC

TAG标签:
Ctrl+D 将本页面保存为书签,全面了解最新资讯,方便快捷。