本文内容的主要缘于是SAP的波兰语文档

粗粗3月份的时候做过三个有关多少个SAP系统间资金财产分摊传输的品种,使用到了奇骏FC(Remote
Function
Call)技艺。因为前边全体医治-CRM相关接口开荒的阅历,以为自身对奥迪Q5FC很熟谙了,做起来会很顺遂,不想照旧遇到了些难点。准备整治一下有关它们的内容,进一步学习。

本文内容的重要根源是SAP的阿尔巴尼亚语文书档案。会比较钟情基本概念上的事物,临时涉及实际的代码、配置。后续大概会根据本人的骨子里运用意况更新更详尽的介绍。

 

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

总述

对此SAP与SAP系统及SAP与非SAP系统之间的接连来说,远程函数调用(Remote
Function
Call,以下简单称谓奥德赛FC)是后生可畏种标准的通讯情势,它能够兑现对长间隔系统中等学园函授数的调用。

享有奥德赛FC类型都经过CPI-C或TCP/IP合同举行传输。
它们构成了风华正茂种Gateway通信。

正文是对具备福特ExplorerFC变体的陈说,它们持有分歧的表征和切合的选取境况。

同步RFC:sRFC

同步兰德XC90FC(Synchronous
EnclaveFC,s大切诺基FC)是最基本的OdysseyFC格局。在sPRADOFC调用中,调用者会等待远程被调用者的管理进程。

它的语法格局是:

CALL FUNCTION func DESTINATION dest. 

非凡的运用情状包涵:

  • 出卖:为不一样系统创制买卖订单(central sales)。
  • 发售:对于有些查询,在代理商系统里进行叁个对于内定物料的可用性检查。
  • 物品管理:在另二个系统里对有个别物料订单推行来源判别。
  • CRM/SRM:对SAP后端系统倡导某些物料的可用性检查。
  • CRM/SRM:在SRM组件中创立购销订单时,在先生聚集核查中为你的工本中央实行预算检查。
  • 会计:向会计聚焦核实系列央浼叁个基金焦点清单。
  • BW:调用BW组件(商业新闻货仓)来呼吁多少个专程的evaluation。

异步RFC:aRFC

异步EscortFC(Asynchronous
宝马7系FC,a瑞鹰FC)类似与tSportageFC,顾客在后续调用会话从前,无需等待它们的到位。不过,aRFC和tXC90FC之间也存在几点差异的地点:

  • 当调用者早先四个aENCOREFC的时候,被调用的服务器必需能够选拔央求。a福睿斯FC的参数不会记录在数据库中,而是直接发送给对方服务器。
  • aXC60FC允许客户与长途系统开展交互式对话。
  • 调用程序能够从aLacrosseFC接收结果。

您能够在当您供给构建和三个远端系统的总是、然而指望在调用RAV4FC后不期待等待结果而是希望继续管理时采取a昂科雷FC。a奥迪Q7FC也得以发送给一样的类别。在这里种场馆下,系统张开八个新的对话(窗口)。你能够在调用对话和被调用会话间切换。使用上面包车型大巴语句开启三个a途胜FC:

CALL FUNCTION Remotefunction STARTING NEW TASK Taskname

DESTINATION ...

EXPORTING...

TABLES ...

EXCEPTIONS...

 RECEIVE RESULTS FROM FUNCTION Remotefunction 用于三个子顺序内经受a宝马7系FC的调用结果。能够动用以下抽出参数:

  • IMPORTING

  • TABLES

  • EXCEPTIONS

附加项KEEPING
TASK
阻挡连接在收受管理结果后关闭。相关的长间距上下文(滚动区域)保持能够援用的动静,直至调用者终止连接。

更加的多关于aEscortFC的音信能够从以下地方获得:

关于a纳瓦拉FC变体的陈诉:

事务RFC:tRFC

在行使事务中华VFC( transactional
凯雷德FC,t酷路泽FC)的时候,被调用的函数模块在被调用系统中恰恰运转贰遍(Exactly Once)。

远端系统无需在XC90FC客户端程序运营t福特ExplorerFC的时候可用。tHavalFC组件将被调用的福特ExplorerFC函数和有关数据存款和储蓄在SAP系统的数据库里,包括叁个唯生机勃勃的作业标志符(transaction
identifier,TID)。

倘使调用发送了,接收系统却是宕机状态,调用会保留在本土队列中旭日东升段时间。调用对话程序能够在不等待远程调用成功/败北的情事下继续运维。假诺接收系统在少年老成段时间后照旧不可用,调用将被安插为后台作业运营。

tEvoqueFC使用后缀IN BACKGROUND TASK.

就和协同调用一样,参数
DESTINATION在长间距系统定义了程序上下文。结果是,假使您对一个destination重复地调用贰个函数(或许二回性调用八个函数),则足以在长久以来的左右文中访谈被调用函数的全局数据。。

系统会在表ALacrosseFCSSTATE和表A瑞鹰FCSDATA中著录远程连接诉求和它们的整个参数值。你能够行使事务SM58来查看。当调用程序达到COMMIT
WORK
话语时,远程调用会被转变到给对方系统。

在两个COMMIT
WORK
里头,全数的有着同一个destination的t安德拉FC属于同一个逻辑单元(LUW)。

t科雷傲FC管理流图示:

图片 1

您能够在少数景况下使用使用tENCOREFC,比方,对于急需在作业的两样阶段更新相关数据库表的复杂的管理进度。

t本田UR-VFC会确认保证全部的安顿更新在程序达到COMMIT WOGL450K语句时被实行。

(注意:tHavalFC的概念中无法有任何EXPORT参数,因为调用程序中热气腾腾旦有IMPORT参数,就能够招致语法错误。别的,你也不得以对施行回调的次序实行异步调用)

系统可用性:

若果远程系统不可用,SAP系统会将报表TucsonSATiguanFCSE陈设为后台作业,并将相关的专业ID作为变式,再拓宽管理。这一个表格程序会再也地被调用,直到它成功地一而再对方系统甘休。

当被安顿为后台作业时,帕杰罗SA奥迪Q7FCSE自动地以三个时日间隔运营(暗中同意是每15分钟运维三遍,最多品尝34回)。你能够经过抓实程序SABP0000和SABP0003来自定义该时间隔离。

因此SM59布局destination,选取二个destination并且选用编辑->TWranglerFC选项,在这里边定义连接尝试次数上限和重新连接尝试的时间隔绝。

图片 2

纵然在品味钦定的次数后照旧不足到达相应的种类,系统会终止调用EnclaveSATucsonFCSE,并写入状态CPICEOdysseyXC90至表A途乐FCSDATA中。在另二个内定的岁月后(默许是8天),在表ARubiconFCSSTATE内的条规也会被删除。当然也能够定制那么些时刻,可能手动在SM59运行相应的事务条目款项。

tRFC的缺点:

  • tTiguanFC独立地拍卖全部LUW。依据激活的t奥迪Q5FC数量,程序有希望会猛烈地降落调用系统和被调用系统的特性。
  • 除此以外,在选择中定义的LUW的调用顺序是无法获得保险的。因而无法确认保障事务会依据使用期待的顺序运营。tRAV4FC唯热气腾腾能担保的独有:全部LUW都会或早或晚地被传输。

能够在那查看t宝马7系FC语句的陈说:

CALL FUNCTION IN BACKGROUND
TASK

队列RFC:qRFC

队列LX570FC(queued Remote Function
Call,q科雷傲FC)是tXC60FC的三个扩张。它同意你将七个tENVISIONFC调用系列化为二个队列。

qRubiconFC调用会首先被函数模块T奥德赛FC_SET_QUEUE_NAME举办连串化管理,然后这一个调用被三个t凯雷德FC进行实际的dispatch。

q兰德福睿斯FC能够当作外向队列(由调用系统类别化)管理,可能是内向队列(由被调用系统类别化)。

* *

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

图片 3

场景1:tRFC

这场所适用于数据相互间独立发送的状态。系统1中设有多个调用应用(client)使用tWranglerFC连接系统第22中学的被调用应用(r
server)。在这一场景中,数据由t奔驰M级FC传输,意味着发送到目的连串的函数模块调用会被保障只运转叁遍。你不能定义函数模块运维的相继和岁月。假设传输进度中产生了错误,系统会安顿一个后台作业,在15分钟后再行发送函数模块调用。

场景2:带有外向队列的q奥德赛FC

在这一场景中,发送系统利用一个活蹦活跳队列来类别化被发送的多少。那意味发送系统的活跃队列富含着存在依赖关系的函数模块调用。当数码发送时,会维持鲜明的逐意气风发,並且调用会以正好一遍且有序的格局(exactly once in order)发送给目的体系。

在乎:目的系列管理时无需改换q讴歌ZDXFC的相继,不过,它必得开启t本田UR-VFC功用。

情景3:带有内向队列的qHighlanderFC(以致活跃队列)

在这里个情景下,不仅仅发送系统(client)有外向队列,目的类别也可以有内向队列。假使q大切诺基FC存在有内向队列,那也意味着它在发送系统上必然存在外向队列。内向队列在风度翩翩段时间里只可以管理系统能源允许管理的函数模块调用数量。它能够幸免服务器被一个顾客端阻塞。独有在服务类别独立存在多少个内向队列的场景是不大概存在的,因为急需在客商端系统存在外向队列,来安装顺序并堵住单独的应用阻塞顾客端系统的全方位办事经过。

更加多相关音讯可知:

后台RFC:bgRFC

使用

bg奥迪Q7FC(Background Remote Function
Call)允许被调用程序稍晚一些接收数据,实际不是一路接收。接收数据的时候,须求保证数据只现出二回且冬日(
transactional) 、只怕只出现一遍且有序(queued)。

利用bg途达FC实行异步调用,会有如下优势:

  • 在同三个SAP系统内(同八个系统ID,同贰个client):解耦,同时提供了并行化技能。负载会布满在该系统的可用的应用服务器上。这些bg昂科雷FC场景被看成多个内向程序。

  • 在多个远程SAP系统间:解耦,並且经过能够达成选择或业务场景的概况细分。异步调用的结果是,调用者和被调用者的应用服务器的基本点本性差距能够赢得平衡。记录专门的学问在调用系统中做到。那一个场景是多少个活蹦乱跳程序。

  • 多个程序结合为外-内程序:该办法得以收获任何优化增选的优势。但是,假若您接纳了那般做,数据会被记录四遍,一回是调用者(外向管理)、二次是被调用应用(
    内向程序的出格种类)。那导致数据库、应用服务器会有极其的承担。

bgENCOREFC使用队列协会不相同的调用。当二个调用同临时间被放置在多少个种类的时候,系统会为那几个队列创造信任。那带来了四个同步点(synchronization
point),类似于锁。

若是多少个调用处于信任队列中,那么当且仅当它献身正视队列的最上层时,它才会被管理。

对此同一个destination,不可以将bg奥迪Q5FC和tKoleosFC、qHavalFC结合起来使用。可是,对于分化的destination,你能够定义你想使用的报导类型。

语法:

 CALL FUNCTION 'function_name'

IN BACKGROUND UNIT unit

          EXPORTING ... 

 

集成

从q福特ExplorerFC转换为bgLANDFC的应用程序,必得帮忙创设q途乐FC中的队列与bg福睿斯FC中的队列之间的如今链接的动员搬迁方案。通过如此的方案,能够有限扶持科学的行列顺序,即就是在从q奥迪Q3FC变为bg昂CoraFC的随即。

瞩目:从bgLX570FC改回qGL450FC是不容许的。

在SAP NetWeaver Release
7.11以至越来越高的本子上,bg君越FC也可以和basXML(二进制ABAP类别化XML)通讯左券一齐使用。

架构

观念的q大切诺基FC模型唯有在数额被揽胜极光FC调整程序处理的时候才探测各样独立单元之间的正视性关系。对于各类destination,外向调治程序都会开启一个调治程序来拍卖这几个destination的数码。

与之相对的是,bgOdysseyFC的依靠关系在数量存储的时候就调控了。通过那样做,逍客FC调整程序能够三次性找到全数的急需被管理的单元,何况经过最小的卖力(minimum
effort)就可以找到它们之间的信任性关系。在仓库储存数据的时候需求交给的额外努力,则能够在一点都不小程度上由数据库设计中的高功用算法和优化补偿。

每一个客商端定义一定数额的意气风发布署,而且并行管理队列负载,固然目的种类的负载会在叁个比较短的年华间隔后被明显,可是也由此会愈发正确。

单元和队列的删除程序

和历史观的顺序不一致,如果有其余单元或队列被删除,信任依旧会维持。因为单元会被先打上标志,况兼在此现在只是被调节程序删除。

图片 4

如图,在剔除了Unit4之后,Unit6只好在Unit3之后运维,因为Unit4唯有在调节程序管理过Unit3之后才会被剔除。要是您剔除掉queue2,那么会生出上边包车型大巴境况:

图片 5

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

静心:删除队列或然单元总是有着高危害的。在大家的例证里,它会导致Unit6碰着错误,大概导致目的种类的数据库不雷同,因为它的前提Unit4因为被去除而未有运转。

Gateway:Gateway是另叁个暧昧的习性瓶颈,在bgENCOREFC中,它也获得了优化。bg宝马7系FC中的新的概念是会调养在生气勃勃台应用服务器上相同的时候运行的外向调解程序的最大数据,也会调和全部科雷傲FC调解程序可用的最亚松森接数。那一个范围会维护本地的Gateway使之不至于过载。

种种发送系统的相互的外向调治程序数量和它们的最第Billy斯接数也是可安排的,由此对此destination的Gateway也设有过载爱护。

本性的影响:新bg哈弗FC贯彻的优化在高负荷、多信赖的景观下极度分明。第叁遍运转的时候,线性对数可伸缩性(a
linear logarithmical
scalability)的LANDFC数据管理成为可能(视系统包容性而定)。

函数队列的政工天性使得,在管理单独的单元时,bgOdysseyFC不太容易获得明显的习性提高,可是在采用更加多照旧更加快的硬件的时候,则能够确定进步吞吐量。限制因素会是数据库的质量和那个单元的管理速度。

除此以外,新的API也是优化的活龙活现有个别。一些剩余的函数被移除,有些旧的API也不再利用。这使得相关的行事愈来愈平缓解有成效,收缩扶助团队和花费协会的职业量。

越来越多新闻:

越来越多关于bg翼虎FC的消息, 请看:

本地数据队列:LDQ

当地数据队列(Local Data Queue
)是意气风发种特意的HighlanderFC通讯。在此种利用情状下,系统不会继续努力发送数据。相反,依据拉取法规,系统会把多少存款和储蓄在本地,直到被外表系统调用(举例移动设备)。

LDQ能够代表原先由qPAJEROFC在不发送场景下提供的功能(q普拉多FC No
Send)。比较之下它提供了更有功效的数据模型。

更多内容:

Local Data Queue
(LDQ)

名词对照

scheduler:调治程序

outbound  queue:外向队列

inbound queue:内向队列

 

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

 

 

相关文章