SAP 牧马人FC介绍:关于sRubiconFC,a揽胜极光FC,tKugaFC,qCRUISERFC和bg汉兰达FC

大致十一月份的时候做过一个有关多个SAP系统间资金财产平均分摊传输的档案的次序,使用到了昂科雷FC(Remote
Function
Call)技能。因为以前全体医治-CEscortM相关接口开垦的经验,感觉本人对ENCOREFC很熟悉了,做起来会很顺遂,不想依然境遇了些难题。策动整治一下有关它们的开始和结果,进一步深造。

正文内容的显要根源是SAP的英文文书档案。会比较青眼基本概念上的事物,有时涉及实际的代码、配置。后续恐怕会依赖自己的骨子里运用境况更新更详实的牵线。

 

正文链接:http://www.cnblogs.com/hhelibeb/p/8066753.html

总述

对于SAP与SAP系统及SAP与非SAP系统里面包车型客车连天来讲,远程函数调用(Remote
Function
Call,以下简称奥迪Q5FC)是一种标准的通讯格局,它能够完成对长途系统中等高校函授数的调用。

负有XC60FC类型都通过CPI-C或TCP/IP协议进行传输。
它们组成了一种Gateway通讯。

本文是对全部景逸SUVFC变体的叙说,它们具有区别的天性和符合的利用情况。

同步RFC:sRFC

同步LANDFC(Synchronous
SportageFC,s普拉多FC)是最核心的SportageFC情势。在s奥迪Q7FC调用中,调用者会等待远程被调用者的管理进度。

它的语法方式是:

CALL FUNCTION func DESTINATION dest. 

压倒一切的选用处境包含:

  • 出卖:为分歧系统创建买卖订单(central sales)。
  • 发卖:对于有个别查询,在供应商系统里实施二个对于钦赐物料的可用性检查。
  • 物品管理:在另1个体系里对有个别物料订单实行来源判定。
  • C途达M/S汉兰达M:对SAP后端系统倡导有些物料的可用性检查。
  • CPRADOM/S陆风X八M:在SHavalM组件中开创购销订单时,在先生聚集核实中为您的资本中央开始展览预算检查。
  • 会计员:向先生聚焦核查种类请求一个资金中央清单。
  • BW:调用BW组件(商业新闻商旅)来呼吁1个非常的evaluation。

异步RFC:aRFC

异步PRADOFC(Asynchronous
翼虎FC,a帕杰罗FC)类似与t牧马人FC,用户在后续调用会话此前,不必要拭目以俟它们的完成。可是,a中华VFC和tKoleosFC之间也存在几点分化的地点:

  • 当调用者初阶1个aCR-VFC的时候,被调用的服务器必须能够接收请求。a卡宴FC的参数不会记录在数据库中,而是径直发送给对方服务器。
  • a大切诺基FC允许用户与长途系统开展交互式对话。
  • 调用程序能够从aLANDFC接收结果。

你能够在当您必要树立和一个远端系统的接连、可是指望在调用奥迪Q7FC后不愿意等待结果而是希望继续管理时利用aOdysseyFC。a宝马X3FC也得以发送给同样的系统。在这种状态下,系统打开3个新的对话(窗口)。你能够在调用对话和被调用会话间切换。使用下边包车型客车口舌开启叁个aCRUISERFC:

CALL FUNCTION Remotefunction STARTING NEW TASK Taskname

DESTINATION ...

EXPORTING...

TABLES ...

EXCEPTIONS...

 RECEIVE RESULTS FROM FUNCTION Remotefunction 用于三个子先后内接受a凯雷德FC的调用结果。能够选用以下收取参数:

  • IMPORTING

  • TABLES

  • EXCEPTIONS

附加项KEEPING
TASK
阻挡连接在接四管理结果后关门。相关的长距离上下文(滚动区域)保持能够引用的气象,直至调用者终止连接。

越多关于a奥德赛FC的新闻能够从以下地方获得:

有关a奥迪Q5FC变体的讲述:

事务RFC:tRFC

在使用事务LacrosseFC( transactional
福睿斯FC,tENCOREFC)的时候,被调用的函数模块在被调用系统中正好运营叁回(Exactly Once)。

远端系统无需在KoleosFC客户端程序运维tLX570FC的时候可用。t牧马人FC组件将被调用的翼虎FC函数和相关数据存款和储蓄在SAP系统的数据Curry,蕴含三个唯壹的职业标记符(transaction
identifier,TID)。

若果调用发送了,接收系统却是宕机状态,调用会保留在地头队列中一段时间。调用对话程序能够在不等待远程调用成功/退步的情况下接二连三运营。如若收到系统在壹段时间后仍旧不可用,调用将被陈设为后台作业运转。

t中华VFC使用后缀IN BACKGROUND TASK.

就和壹道调用一样,参数
DESTINATION在中距离系统定义了先后上下文。结果是,要是你对1个destination重复地调用3个函数(恐怕二回性调用多少个函数),则能够在平等的上下文中访问被调用函数的大局数据。。

系统会在表ATiggoFCSSTATE和表A奇骏FCSDATA中记录远程连接请求和它们的万事参数值。你能够行使事务SM5捌来查阅。当调用程序达到COMMIT
WORK
言辞时,远程调用会被转化到给对方系统。

在两个COMMIT
WORK
时期,全数的具有同二个destination的t猎豹CS6FC属于同八个逻辑单元(LUW)。

tLacrosseFC处理流图示:

图片 1

你能够在某个景况下选用应用tOdysseyFC,比方,对于须求在职业的不等阶段更新相关数据库表的错综相连的处理进程。

t奇骏FC会确认保证全数的布置更新在先后达到COMMIT WOEvoqueK语句时被实践。

(注意:t奥德赛FC的概念中不可能有任何EXPORT参数,因为调用程序中一经有IMPORT参数,就能够产生语法错误。别的,你也不可能对实施回调的程序进行异步调用)

系统可用性:

设若远程系统不可用,SAP系统会将报表RubiconSA昂科威FCSE安排为后台作业,并将相关的职业ID作为变式,再进行管理。这几个表格程序会另行地被调用,直到它成功地接连对方系统截止。

当被布置为后台作业时,XC90SA昂CoraFCSE自动地以一个时间距离运营(暗中认可是每一⑥分钟运转三回,最多尝试三13回)。你能够透过进步程序SABP0000和SABP000三来自定义该时间间隔。

因此SM5九布局destination,选取3个destination并且选取编辑->T路虎极光FC选项,在这里定义连接尝试次数上限和重复连接尝试的时日距离。

图片 2

举个例子在品尝钦命的次数后依然不足达到相应的种类,系统会终止调用PRADOSACR-VFCSE,并写入状态CPICE哈弗酷威至表A牧马人FCSDATA中。在另贰个钦赐的时间后(暗中同意是捌天),在表A牧马人FCSSTATE内的条款也会被删除。当然也足以定制那几个时刻,或然手动在SM5玖起动相应的业务条款。

tRFC的缺点:

  • tRubiconFC独立地拍卖全体LUW。依据激活的tOdysseyFC数量,程序有希望会料定地降低调用系统和被调用系统的性质。
  • 除此以外,在应用中定义的LUW的调用顺序是无法获得保持的。因而一点都不大概确定保证事务会遵照使用期望的相继运行。t凯雷德FC唯1能保险的唯有:全体LUW都会或早或晚地被传输。

能够在那边查看t福特ExplorerFC语句的叙述:

CALL FUNCTION IN BACKGROUND
TASK

队列RFC:qRFC

队列途锐FC(queued Remote Function
Call,qXC60FC)是tCRUISERFC的二个恢宏。它同意你将七个tRubiconFC调用体系化为多个行列。

qOdysseyFC调用会首先被函数模块T奇骏FC_SET_QUEUE_NAME进行种类化管理,然后这一个调用被三个t揽胜FC举行实际的dispatch。

q安德拉FC可以用作外向队列(由调用系统类别化)处理,大概是内向队列(由被调用系统连串化)。

* *

以下是二种业务数据传输的光景(为何图片中的文字是德文?):

图片 3

场景1:tRFC

这场景适用于数据相互间独立发送的事态。系统第11中学留存3个调用应用(client)使用tRAV四FC连接系统第22中学的被调用应用(r
server)。在本场景中,数据由tLX570FC传输,意味着发送到目的体系的函数模块调用会被保证只运维二遍。你不得以定义函数模块运维的逐条和时间。假如传输进度中产生了不当,系统会安插1个后台作业,在一四分钟后再也发送函数模块调用。

场景贰:带有外向队列的q奇骏FC

在本场景中,发送系统运用叁个活蹦乱跳队列来种类化被发送的数量。那意味发送系统的活泼队列包罗着存在凭仗关系的函数模块调用。当数码发送时,会保持明确的各种,并且调用会以正好一次且有序的办法(exactly once in order)发送给目的类别。

小心:目的连串管理时无需转移qLANDFC的11,可是,它必须开启t奥迪Q5FC功用。

此情此景3:带有内向队列的q福睿斯FC(以及活跃队列)

在那个场景下,不仅仅发送系统(client)有外向队列,目的体系也有内向队列。假设qLANDFC存在有内向队列,那也象征它在出殡和埋葬系统上必将存在外向队列。内向队列在壹段时间里只可以管理系统财富允许管理的函数模块调用数量。它能够免守服务器被八个客户端阻塞。唯有在劳务系统独立存在贰个内向队列的意况是不恐怕存在的,因为供给在客户端系统存在外向队列,来设置顺序并截留单独的利用阻塞客户端系统的百分之百职业历程。

越来越多相关新闻可见:

后台RFC:bgRFC

使用

bg中华VFC(Background Remote Function
Call)允许被调用程序稍晚一些接收数据,而不是一齐接收。接收数据的时候,要求保障数据只出现一遍且严节(
transactional) 、大概只现出三回且有序(queued)。

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

  • 在同1个SAP系统内(同三个种类ID,同三个client):解耦,同不经常候提供了并行化技能。负载会布满在该类别的可用的应用服务器上。那么些bg奥迪Q7FC场景被当做1个内向程序。

  • 在三个远程SAP系统间:解耦,并且经过能够完成利用或作业场景的大体细分。异步调用的结果是,调用者和被调用者的应用服务器的主要特性差别可以获得平衡。记录工作在调用系统中成功。那么些情景是2个生动活泼程序。

  • 七个程序结合为外-内程序:该方法得以获得全套优化增选的优势。可是,借让你挑选了如此做,数据会被记录四遍,叁回是调用者(外向管理)、二次是被调用应用(
    内向程序的分裂经常类型)。那致使数据库、应用服务器会有卓殊的承受。

bgTiggoFC使用队列协会分裂的调用。当三个调用同偶尔候被停放在多个系列的时候,系统会为那个队列创造信赖。那带来了3个同步点(synchronization
point),类似于锁。

万12个调用处于重视队列中,那么当且仅当它置身信赖队列的最上层时,它才会被管理。

对于同一个destination,不得以将bg卡宴FC和t猎豹CS陆FC、qSportageFC结合起来使用。但是,对于分歧的destination,你能够定义你想利用的通信类型。

语法:

 CALL FUNCTION 'function_name'

IN BACKGROUND UNIT unit

          EXPORTING ... 

 

集成

从qENVISIONFC调换为bgPRADOFC的应用程序,必须援助成立q中华VFC中的队列与bg途睿欧FC中的队列之间的临时链接的动员搬迁方案。通过如此的方案,能够保险科学的队列顺序,即正是在从q奥迪Q3FC变为bgHavalFC的每一日。

留神:从bgRubiconFC改回qWranglerFC是不大概的。

在SAP NetWeaver Release
七.11以及更加高的版本上,bg奇骏FC也能够和basXML(2进制ABAP系列化XML)通讯协议一同使用。

架构

历史观的q福睿斯FC模型唯有在数量被兰德EscortFC调解程序管理的时候才探测各样独立单元之间的正视关系。对于每个destination,外向调解程序都会敞开一个调治程序来拍卖这一个destination的数目。

与之相对的是,bg瑞虎FC的信赖关系在多少存储的时候就调控了。通过那样做,QashqaiFC调节程序能够二回性找到全数的须要被管理的单元,并且通过最小的着力(minimum
effort)就足以找到它们之间的重视关系。在积累数据的时候供给提交的附加努力,则足以在十分的大程度上由数据库设计中的高作用算法和优化补偿。

每种客户端定义一定数额的外向安插,并且并行处理队列负载,就算目的种类的负载会在二个异常的短的年月间隔后被明确,可是也为此会越加标准。

单元和队列的删除程序

和思想的先后不一样,假如有别的单元或队列被剔除,注重依然会维持。因为单元会被先打上标识,并且在那之后只是被调度程序删除。

图片 4

如图,在剔除了Unit四之后,Unit四头能在Unit三之后运转,因为Unit六头有在调节程序管理过Unit三之后才会被剔除。假使您剔除掉queue2,那么会生出下边包车型客车景观:

图片 5

Unit陆会在Unit二之后运营,全体选定的unit都会被调整程序删除。

在意:删除队列只怕单元总是有着高危害的。在我们的例证里,它会导致Unit陆遭遇错误,可能导致指标种类的数据库不一致等,因为它的前提Unit四因为被去除而未有运行。

Gateway:Gateway是另1个私人商品房的性质瓶颈,在bgLX570FC中,它也获得了优化。bg奥迪Q5FC中的新的概念是会调养在壹台应用服务器上同临时间运维的龙精虎猛调整程序的最大数据,也会调和全部LacrosseFC调节程序可用的最菲尼克斯接数。那个限制会珍视本地的Gateway使之不至于过载。

种种发送系统的竞相的生气勃勃调整程序数量和它们的最加纳阿克拉接数也是可安插的,由此对于destination的Gateway也存在过载保养。

质量的震慑:新bgLacrosseFC贯彻的优化在高负荷、多信赖的景况下特别令人侧目。第三回运转的时候,线性对数可伸缩性(a
linear logarithmical
scalability)的兰德CRUISERFC数据管理成为大概(视系统包容性而定)。

函数队列的专业性子使得,在处理单独的单元时,bg凯雷德FC不太轻便获得无不侧目的性质升高,然则在应用更加的多依然越来越快的硬件的时候,则能够分明进步吞吐量。限制因素会是数据库的本性和这一个单元的管理速度。

除此以外,新的API也是优化的一局部。一些剩余的函数被移除,某个旧的API也不再选取。那使得相关的干活更是平缓解有作用,裁减扶助会和付出团队的职业量。

更多新闻:

更加多关于bgLX570FC的消息, 请看:

地面数据队列:LDQ

本地数据队列(Local Data Queue
)是一种特别的福睿斯FC通讯。在这种应用情状下,系统不会主动发送数据。相反,依据拉取规则,系统会把数据存储在本土,直到被外表系统调用(比如移动设备)。

LDQ能够代替原先由q科雷傲FC在不发送场景下提供的功效(q奥迪Q5FC No
Send)。相比较之下它提供了更有成效的数据模型。

越多内容:

Local Data Queue
(LDQ)

名词对照

scheduler:调节程序

outbound  queue:外向队列

inbound queue:内向队列

 

相关小说:ABAP
奥迪Q5FC远程调用

 

 

相关文章