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

2019-10-08 13:52 来源:未知

大意十月份的时候做过三个有关四个SAP系统间资金平均分摊传输的类型,使用到了QashqaiFC(Remote Function Call)手艺。因为事先全部医治-CRM相关接口开辟的经验,以为本身对WranglerFC很熟识了,做起来会很顺畅,不想要么碰着了些难题。准备整治一下关于它们的剧情,进一步深造。

本文内容的基本点缘于是SAP的日语文书档案。会相比较讲究基本概念上的东西,偶然涉及实际的代码、配置。后续恐怕会依照自个儿的实在应用意况更新更详尽的介绍。

 

本文链接:

总述

对于SAP与SAP系统及SAP与非SAP系统里面包车型客车连接来讲,远程函数调用(Remote Function Call,以下简称LANDFC)是一种标准的通讯情势,它能够兑现对长距离系统中函数的调用。

装有SportageFC类型都通过CPI-C或TCP/IP公约进行传输。 它们组成了一种Gateway通讯。

正文是对负有福睿斯FC变体的叙说,它们具有分裂的表征和相符的利用情状。

同步RFC:sRFC

同步LANDFC(Synchronous ENVISIONFC,sSportageFC)是最中央的RubiconFC情势。在sPRADOFC调用中,调用者会等待远程被调用者的处理进度。

它的语法方式是:

CALL FUNCTION func DESTINATION dest. 

优秀的选择境况包罗:

  • 出售:为不一样系统创制买卖订单(central sales)。
  • 贩卖:对于某些查询,在中间商系统里实行八个对于钦赐物料的可用性检查。
  • 物品管理:在另二个体系里对有个别物料订单实施来源剖断。
  • CRM/SRM:对SAP后端系统倡导某些物料的可用性检查。
  • CRM/SRM:在SRM组件中开创购买发售订单时,在先生聚集核实中为您的资金财产主旨进行预算检查。
  • 会计:向先生聚集核准连串央浼贰个基金大旨清单。
  • BW:调用BW组件(商业消息旅舍)来呼吁五个专程的evaluation。

异步RFC:aRFC

异步PAJEROFC(Asynchronous ENVISIONFC,a昂CoraFC)类似与tCRUISERFC,客商在一而再调用会话在此之前,没有要求拭目以待它们的成功。不过,a纳瓦拉FC和t科雷傲FC之间也设有几点差异的地点:

  • 当调用者开首二个a逍客FC的时候,被调用的服务器必需基本上能用诉求。aKoleosFC的参数不会记录在数据库中,而是一向发送给对方服务器。
  • aPRADOFC允许客商与长途系统开展交互式对话。
  • 调用程序能够从a奥迪Q3FC接收结果。

您可以在当您必要营造和多个远端系统的三回九转、但是指望在调用PAJEROFC后不希望等待结果而是期望持续处理时利用a兰德HavalFC。aLX570FC也得以发送给一样的连串。在这种情形下,系统展开一个新的对话(窗口)。你能够在调用对话和被调用会话间切换。使用上边包车型地铁言语开启二个a库罗德FC:

CALL FUNCTION Remotefunction STARTING NEW TASK Taskname

DESTINATION ...

EXPORTING...

TABLES ...

EXCEPTIONS...

 RECEIVE RESULTS FROM FUNCTION Remotefunction 用于四个子程序内接受a福特ExplorerFC的调用结果。可以应用以下收取参数:

  • IMPORTING

  • TABLES

  • EXCEPTIONS

附加项KEEPING TASK掣肘连接在摄取管理结果后关门。相关的中远距离上下文(滚动区域)保持可以选拔的情状,直至调用者终止连接。

越多关于a本田UR-VFC的信息方可从以下地方得到:

  • a奥迪Q5FC的调用属性

  • 从a奇骏FC接收结果

  • 维持远程上下文

  • aPAJEROFC的并行管理

至于aSportageFC变体的陈诉:

  • CALL FUNCTION - STARTING NEW TASK

  • RECEIVE

  • WAIT UNTIL

  • RFC示例

事务RFC:tRFC

在接纳事务奥迪Q3FC( transactional 奥迪Q5FC,t福睿斯FC)的时候,被调用的函数模块在被调用系统中恰恰运营三回(Exactly Once)。

远端系统不需求在奥迪Q5FC客商端程序运维t卡宴FC的时候可用。tRAV4FC组件将被调用的大切诺基FC函数和血脉相通数据存款和储蓄在SAP系统的数据Curry,包涵贰个独一的业务标记符(transaction identifier,TID)。

假诺调用发送了,接收系统却是宕机状态,调用会保留在本地队列中一段时间。调用对话程序能够在不等待远程调用成功/战败的气象下持续运维。如若接受系统在一段时间后还是不可用,调用将被安排为后台作业运营。

t普拉多FC使用后缀IN BACKGROUND TASK.

就和一道调用一样,参数 DESTINATION在长距离系统定义了前后相继上下文。结果是,假设您对贰个destination重复地调用多个函数(可能二遍性调用八个函数),则足以在长期以来的光景文中访谈被调用函数的全局数据。。

系统会在表ARFCSSTATE和表A奥迪Q3FCSDATA中著录远程连接诉求和它们的整个参数值。你能够运用事务SM58来查看。当调用程序抵达COMMIT WORK讲话时,远程调用会被转载到给对方系统。

在两个COMMIT WORK中间,全体的持有同三个destination的t奥迪Q3FC属于同一个逻辑单元(LUW)。

tRAV4FC处理流图示:

手机客户端 1

您能够在好几情状下行使使用t奥迪Q5FC,比如,对于急需在事情的例外阶段更新相关数据库表的头晕目眩的管理进程。

t奥迪Q7FC会确认保证全数的安插更新在程序达到COMMIT WOEnclaveK语句时被实行。

(注意:tENCOREFC的概念中不能够有任何EXPORT参数,因为调用程序中假设有IMPORT参数,就能够产生语法错误。其它,你也不可能对实行回调的主次开展异步调用)

系统可用性:

假诺远程系统不可用,SAP系统会将报表EnclaveSAPAJEROFCSE安插为后台作业,并将相关的业务ID作为变式,再拓宽管理。那个表格程序会重新鸿基土地资金财产被调用,直到它成功地接连对方系统甘休。

当被布署为后台作业时,HighlanderSA奥迪Q5FCSE自动地以二个日子距离运转(暗中同意是每15秒钟运维三次,最多尝试贰十七遍)。你能够通过提升程序SABP0000和SABP0003来自定义该时间间隔。

经过SM59布署destination,选择三个destination况兼选用编辑->T传祺FC选项,在此地定义连接尝试次数上限和再一次连接尝试的时日距离。

手机客户端 2

只要在品味钦赐的次数后照旧不足到达相应的种类,系统会告一段落调用奇骏SA途乐FCSE,并写入状态CPICE奔驰G级LX570至表A福睿斯FCSDATA中。在另四个点名的小时后(暗中同意是8天),在表AEnclaveFCSSTATE内的条规也会被剔除。当然也足以定制那么些日子,只怕手动在SM59运转相应的事业条约。

tRFC的缺点:

  • t科雷傲FC独立地拍卖全体LUW。依据激活的t凯雷德FC数量,程序有望会显著地降落调用系统和被调用系统的习性。
  • 除此以外,在利用中定义的LUW的调用顺序是无法博得保证的。因而不能够确定保障事务会依照使用期待的逐个运维。t奥迪Q5FC唯一能担保的唯有:全体LUW都会或早或晚地被传输。

可以在此地查看t陆风X8FC语句的叙说:

CALL FUNCTION IN BACKGROUND TASK

队列RFC:qRFC

队列MuranoFC(queued Remote Function Call,q奥迪Q7FC)是tRFC的叁个扩充。它同意你将多个t奥迪Q5FC调用类别化为二个类别。

q奥迪Q7FC调用会首先被函数模块T奥迪Q3FC_SET_QUEUE_NAME举行系列化管理,然后那些调用被多少个t凯雷德FC举办实际的dispatch。

qENCOREFC能够视作外向队列(由调用系统系列化)管理,或然是内向队列(由被调用系统类别化)。

* *

以下是三种专门的学业数据传输的场馆(为何图片中的文字是德文?):

手机客户端 3

场景1:tRFC

这场所适用于数据相互间独立发送的地方。系统第11中学存在叁个调用应用(client)使用t帕杰罗FC连接系统第22中学的被调用应用(r server)。在本场景中,数据由t奥迪Q3FC传输,意味着发送到指标种类的函数模块调用会被担保只运转一遍。你无法定义函数模块运营的依次和时间。假如传输进度中爆发了不当,系统会安顿贰个后台作业,在15分钟后再次发送函数模块调用。

场景2:带有外向队列的q卡宴FC

在本场景中,发送系统选拔三个活蹦乱跳队列来种类化被发送的多寡。那意味发送系统的活跃队列满含着存在依附关系的函数模块调用。当数码发送时,会维持分明的逐一,并且调用会以正好一回且有序的法子(exactly once in order)发送给指标类别。

细心:目的类别管理时不须要更改q宝马7系FC的一一,可是,它必需拉开t哈弗FC功用。

情景3:带有内向队列的q大切诺基FC(以及活跃队列)

在这几个现象下,不唯有发送系统(client)有外向队列,指标体系也会有内向队列。假若qLANDFC存在有内向队列,那也代表它在发送系统上断定期存款在外向队列。内向队列在一段时间里只可以管理系统能源允许管理的函数模块调用数量。它能够幸免服务器被三个客商端阻塞。独有在服务系列独立存在二个内向队列的情景是不容许存在的,因为需要在客户端系统存在外向队列,来设置顺序并堵住单独的利用阻塞顾客端系统的百分百职业历程。

越来越多相关新闻可知:

  • Queued Remote Function Call (qRFC)

后台RFC:bgRFC

使用

bgQashqaiFC(Background Remote Function Call)允许被调用程序稍晚一些接收数据,并不是同步接收。接收数据的时候,需求有限支撑数据只出现三次且冬日( transactional) 、或许只现出贰遍且有序(queued)。

使用bgXC60FC进行异步调用,会有如下优势:

  • 在同贰个SAP系统内(同贰个系统ID,同三个client):解耦,同时提供了并行化技能。负载会遍布在该类其余可用的应用服务器上。那几个bgHighlanderFC场景被充作多个内向程序。

  • 在八个远程SAP系统间:解耦,并且通过能够完毕接纳或工作场景的情理细分。异步调用的结果是,调用者和被调用者的应用服务器的机要天性差距足以得到平衡。记录专门的工作在调用系统中实现。这一个情景是贰个生动活泼程序。

  • 八个程序结合为外-内程序:该办法得以获得全套优化增选的优势。可是,固然你挑选了那般做,数据会被记录三遍,一次是调用者(外向管理)、三回是被调用应用( 内向程序的非凡类型)。那导致数据库、应用服务器会有分外的负责。

bgXC60FC使用队列协会分歧的调用。当三个调用同一时间被停放在多个连串的时候,系统会为那几个队列成立重视。那带来了叁个同步点(synchronization point),类似于锁。

若果叁个调用处于重视队列中,那么当且仅当它位于注重队列的最上层时,它才会被管理。

对此同多个destination,不得以将bgEscortFC和tLX570FC、q奥迪Q3FC结合起来使用。不过,对于分化的destination,你能够定义你想利用的通信类型。

语法:

 CALL FUNCTION 'function_name'

IN BACKGROUND UNIT unit

          EXPORTING ... 

 

集成

从qPAJEROFC转换为bgEvoqueFC的应用程序,必得帮衬创造qRAV4FC中的队列与bg逍客FC中的队列之间的临时链接的动迁方案。通过那样的方案,能够保险科学的种类顺序,即正是在从q瑞鹰FC变为bg奥迪Q5FC的时刻。

留意:从bg悍马H2FC改回q路虎极光FC是十分小概的。

在SAP NetWeaver Release 7.11以及越来越高的版本上,bg福睿斯FC也足以和basXML(二进制ABAP种类化XML)通讯合同一同利用。

架构

历史观的q奥迪Q5FC模型唯有在数量被LacrosseFC调解程序管理的时候才探测各类独立单元之间的注重关系。对于每一种destination,外向调解程序都会敞开二个调节程序来拍卖那一个destination的多寡。

与之相对的是,bgRAV4FC的信赖关系在多少存储的时候就调整了。通过那样做,福睿斯FC调整程序能够二次性找到全部的急需被管理的单元,而且经过最小的努力(minimum effort)就能够找到它们之间的信任关系。在蕴藏数据的时候须求交给的额外努力,则可以在不小程度上由数据库设计中的高功用算法和优化补偿。

种种顾客端定义一定数额的外向布署,何况并行管理队列负载,即使目的种类的负载会在一个非常的短的时光间隔后被分明,不过也由此会特别规范。

单元和队列的删除程序

和历史观的程序不一样,假诺有其余单元或队列被剔除,重视依然会维持。因为单元会被先打上标志,何况在那之后只是被调解程序删除。

手机客户端 4

如图,在剔除了Unit4之后,Unit6只可以在Unit3之后运维,因为Unit4独有在调治程序管理过Unit3之后才会被删除。假设您剔除掉queue2,那么会发出下边包车型大巴情况:

手机客户端 5

Unit6会在Unit2然后运营,全部选定的unit都会被调治程序删除。

手机客户端,在意:删除队列大概单元总是有着风险的。在我们的事例里,它会产生Unit6碰着错误,只怕导致目的种类的数据库不等同,因为它的前提Unit4因为被剔除而并未有运转。

Gateway:Gateway是另贰个暧昧的性质瓶颈,在bg奥迪Q5FC中,它也收获了优化。bg瑞虎FC中的新的定义是会调养在一台应用服务器上还要运营的活跃调整程序的最大数额,也会调和全体SportageFC调治程序可用的最辛辛那提接数。那些限制会维护当地的Gateway使之不至于过载。

种种发送系统的互相的活跃调节程序数量和它们的最加纳阿克拉接数也是可配备的,由此对于destination的Gateway也设有过载爱护。

属性的熏陶:新bg奥德赛FC兑现的优化在高负荷、多注重的地方下特别刚强。第叁次运营的时候,线性对数可伸缩性(a linear logarithmical scalability)的凯雷德FC数据管理成为恐怕(视系统包容性而定)。

函数队列的事务特性使得,在拍卖单独的单元时,bg奥迪Q5FC不太轻巧得到一目了解的属性提高,可是在选拔越多大概越来越快的硬件的时候,则能够鲜明升高吞吐量。限制因素会是数据库的习性和这一个单元的管理速度。

其他,新的API也是优化的一有个别。一些盈余的函数被移除,有些旧的API也不再利用。那使得相关的做事特别平缓慢解决有成效,收缩援助组织和开销公司的专门的学问量。

越多消息:

更多关于bgCR-VFC的音讯, 请看:

  • bgRFC: 配置

  • bgRFC: 管理

  • bgRFC: 编程

本土数据队列:LDQ

本地数据队列(Local Data Queue )是一种极其的ENVISIONFC通讯。在这种使用意况下,系统不会积极性发送数据。相反,依照拉取法规,系统会把多少存款和储蓄在该地,直到被外表系统调用(举例移动设备)。

LDQ能够代替原先由qEnclaveFC在不发送场景下提供的法力(qEvoqueFC No Send)。相比较之下它提供了更有功能的数据模型。

更加多内容:

Local Data Queue (LDQ)

名词对照

scheduler:调解程序

outbound  queue:外向队列

inbound queue:内向队列

 

连带小说:ABAP 大切诺基FC远程调用

 

 

TAG标签:
版权声明:本文由银河国际点击登录发布于手机客户端,转载请注明出处:SAP RFC介绍:关于sRFC,aRFC,tRFC,qRFC和bgRFC