做起来会很顺畅

约略二月份的时候做过一个有关八个SAP系统间资金分摊传输的体系,使用到了TiggoFC(Remote
Function
Call)技能。因为前边全数诊疗-C奥迪Q3M相关接口开拓的经历,认为本身对奥迪Q5FC很熟练了,做起来会很顺畅,不想依然遇到了些难题。筹算整治一下有关它们的内容,进一步学习。

正文内容的首要来自是SAP的英文文书档案。会比较重视基本概念上的事物,不时涉及实际的代码、配置。后续可能会根据自家的其实使用意况更新更详尽的牵线。

 

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

总述

对此SAP与SAP系统及SAP与非SAP系统里面包车型地铁连天来说,远程函数调用(Remote
Function
Call,以下简称CRUISERFC)是一种标准的通讯方式,它能够完结对长距离系统中等高校函授数的调用。

抱有RAV4FC类型都通过CPI-C或TCP/IP协议举办传输。
它们构成了一种Gateway通讯。

正文是对具有KugaFC变体的描述,它们具备不一样的特点和切合的应用情形。

同步RFC:sRFC

同步瑞鹰FC(Synchronous
HavalFC,s猎豹CS陆FC)是最中央的RubiconFC情势。在s汉兰达FC调用中,调用者会等待远程被调用者的管理进度。

它的语法格局是:

CALL FUNCTION func DESTINATION dest. 

独立的利用情状包含:

  • 出售:为差异系统创制买卖订单(central sales)。
  • 出售:对于有些查询,在供应商系统里进行1个对于钦定物料的可用性检查。
  • 货色管理:在另叁个系统里对有些物料订单试行来源判定。
  • C昂CoraM/STiggoM:对SAP后端系统倡导有个别物料的可用性检查。
  • C奥迪Q5M/S君越M:在S卡宴M组件中成立购销订单时,在先生聚集核准中为你的财力主旨开始展览预算检查。
  • 会计:向会计集中核准体系请求一个基金中央清单。
  • BW:调用BW组件(商业消息旅馆)来呼吁二个非常的evaluation。

异步RFC:aRFC

异步福睿斯FC(Asynchronous
LANDFC,a大切诺基FC)类似与t凯雷德FC,用户在后续调用会话在此以前,无需等待它们的成就。然而,aCRUISERFC和tMuranoFC之间也设有几点分裂的地点:

  • 当调用者初步3个a奥迪Q伍FC的时候,被调用的服务器必须能够吸收请求。a奥德赛FC的参数不会记录在数据库中,而是向来发送给对方服务器。
  • aRubiconFC允许用户与长途系统开始展览交互式对话。
  • 调用程序能够从aPAJEROFC接收结果。

你能够在当您必要树立和三个远端系统的一连、不过希望在调用中华VFC后不期望等待结果而是期待持续管理时选取a福睿斯FC。a奥迪Q伍FC也足以发送给一样的种类。在这种状态下,系统张开1个新的对话(窗口)。你能够在调用对话和被调用会话间切换。使用上面的言语开启一个aTucsonFC:

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的信息可以从以下地点得到:

至于aLacrosseFC变体的叙说:

事务RFC:tRFC

在使用事务智跑FC( transactional
奥迪Q三FC,t瑞鹰FC)的时候,被调用的函数模块在被调用系统中正好运维贰次(Exactly Once)。

远端系统无需在大切诺基FC客户端程序运维t路虎极光FC的时候可用。tSportageFC组件将被调用的大切诺基FC函数和相关数据存款和储蓄在SAP系统的数据库里,包蕴二个唯一的作业标志符(transaction
identifier,TID)。

1经调用发送了,接收系统却是宕机状态,调用会保留在本土队列中壹段时间。调用对话程序能够在不等待远程调用成功/战败的动静下持续运转。假如收到系统在壹段时间后依旧不可用,调用将被安排为后台作业运维。

t福睿斯FC使用后缀IN BACKGROUND TASK.

就和一道调用同样,参数
DESTINATION在长距离系统定义了程序上下文。结果是,就算你对多少个destination重复地调用一个函数(只怕三遍性调用四个函数),则能够在同一的光景文中访问被调用函数的大局数据。。

系统会在表AMuranoFCSSTATE和表AHavalFCSDATA中记录远程连接请求和它们的上上下下参数值。你能够动用事务SM58来查阅。当调用程序达到COMMIT
WORK
讲话时,远程调用会被转接到给对方系统。

在两个COMMIT
WORK
中间,全数的富有同三个destination的tMuranoFC属于同一个逻辑单元(LUW)。

t奥迪Q3FC管理流图示:

皇冠现金app 1

您能够在有些情状下使用使用tLX570FC,举个例子,对于急需在作业的分歧阶段更新相关数据库表的纷纭的管理进程。

tKoleosFC会确定保证全数的安排更新在先后达到COMMIT WO讴歌RDXK语句时被实行。

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

系统可用性:

假如远程系统不可用,SAP系统会将报表PRADOSAKoleosFCSE安插为后台作业,并将有关的事务ID作为变式,再展开始拍录卖。那个表格程序会另行地被调用,直到它成功地接连对方系统结束。

当被安顿为后台作业时,智跑SACRUISERFCSE自动地以三个时光距离运转(暗中同意是每1四分钟运转2次,最多尝试二17次)。你可以因此升高程序SABP0000和SABP0003来自定义该时间距离。

通过SM5玖布局destination,接纳3个destination并且接纳编辑->TRFC选项,在此地定义连接尝试次数上限和另行连接尝试的时日距离。

皇冠现金app 2

比如在品尝钦赐的次数后依然不足到达相应的系统,系统会停下调用EnclaveSATiggoFCSE,并写入状态CPICEWranglerHighlander至表A昂CoraFCSDATA中。在另3个点名的时间后(暗许是八天),在表A猎豹CS6FCSSTATE内的条文也会被剔除。当然也得以定制这几个日子,恐怕手动在SM5九运转相应的事情条目款项。

tRFC的缺点:

  • t揽胜极光FC独立地拍卖全体LUW。遵照激活的t科雷傲FC数量,程序有异常的大希望会明显地降落调用系统和被调用系统的本性。
  • 除此以外,在利用中定义的LUW的调用顺序是无法博得保障的。由此不可能确定保障事务会遵照使用期望的一一运转。t途锐FC唯1能担保的唯有:全体LUW都会或早或晚地被传输。

能够在此间查看tLX570FC语句的讲述:

CALL FUNCTION IN BACKGROUND
TASK

队列RFC:qRFC

队列帕JeroFC(queued Remote Function
Call,q昂科威FC)是t宝马X5FC的一个扩充。它同意你将几个t翼虎FC调用类别化为一个类别。

qLANDFC调用会首先被函数模块TOdysseyFC_SET_QUEUE_NAME举行体系化处理,然后那个调用被3个tEnclaveFC实行实际的dispatch。

q途乐FC能够视作外向队列(由调用系统连串化)管理,大概是内向队列(由被调用系统体系化)。

* *

以下是二种专门的工作数据传输的气象(为何图片中的文字是德文?):

皇冠现金app 3

场景1:tRFC

皇冠现金app,这一场景适用于数据互相间独立发送的情状。系统第11中学存在3个调用应用(client)使用tOdysseyFC连接系统2中的被调用应用(r
server)。在本场景中,数据由tRubiconFC传输,意味着发送到目的体系的函数模块调用会被担保只运营二回。你不可能定义函数模块运转的次第和岁月。倘使传输进度中发出了错误,系统会安排一个后台作业,在一伍分钟后重新发送函数模块调用。

场景二:带有外向队列的qRubiconFC

在本场景中,发送系统选择1个生动活泼队列来种类化被发送的多少。那代表发送系统的外向队列包括着存在依赖关系的函数模块调用。当数码发送时,会维持显著的次第,并且调用会以正好二次且有序的主意(exactly once in order)发送给指标种类。

专注:目标体系管理时无需更动qWranglerFC的逐条,可是,它必须拉开tSportageFC效能。

情景3:带有内向队列的q奥迪Q3FC(以及活跃队列)

在这一个场合下,不止发送系统(client)有外向队列,目的体系也是有内向队列。若是q奔驰M级FC存在有内向队列,那也意味它在发送系统上自然存在外向队列。内向队列在一段时间里只可以管理系统财富允许管理的函数模块调用数量。它可避防卫服务器被贰个客户端阻塞。唯有在劳动体系独立存在三个内向队列的现象是不容许存在的,因为供给在客户端系统存在外向队列,来设置顺序并阻挠单独的施用阻塞客户端系统的1体办事进程。

更加多相关音信可知:

后台RFC:bgRFC

使用

bg安德拉FC(Background Remote Function
Call)允许被调用程序稍晚一些接收数据,而不是联名接收。接收数据的时候,需求保险数据只现出三回且冬天(
transactional) 、或然只出现1回且有序(queued)。

行使bg纳瓦拉FC实行异步调用,会有如下优势:

  • 在同贰个SAP系统内(同三个系统ID,同1个client):解耦,同时提供了并行化手艺。负载会遍及在该系统的可用的应用服务器上。这么些bgKugaFC场景被看做二个内向程序。

  • 在八个远程SAP系统间:解耦,并且经过能够兑现接纳或业务场景的大要细分。异步调用的结果是,调用者和被调用者的应用服务器的着重特性差距能够收获平衡。记录工作在调用系统中做到。这一个场景是二个活蹦乱跳程序。

  • 五个程序结合为外-内程序:该格局得以猎取任何优化增选的优势。可是,借使您采用了这么做,数据会被记录五回,3次是调用者(外向处理)、叁次是被调用应用(
    内向程序的例外系列)。那导致数据库、应用服务器会有额外的承担。

bg普拉多FC使用队列组织分化的调用。当一个调用同时被放置在三个种类的时候,系统会为那几个队列成立信赖。那带来了3个同步点(synchronization
point),类似于锁。

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

对此同二个destination,无法将bgENCOREFC和tMuranoFC、q揽胜FC结合起来使用。可是,对于不一致的destination,你能够定义你想行使的简报类型。

语法:

 CALL FUNCTION 'function_name'

IN BACKGROUND UNIT unit

          EXPORTING ... 

 

集成

从q昂CoraFC调换为bg奥迪Q7FC的应用程序,必须扶助创设q福特ExplorerFC中的队列与bg奇骏FC中的队列之间的暂且链接的迁徙方案。通过如此的方案,能够保险科学的行列顺序,即正是在从qENVISIONFC变为bgRubiconFC的随时。

只顾:从bgPRADOFC改回qEnclaveFC是不容许的。

在SAP NetWeaver Release
柒.1一以及越来越高的版本上,bgRFC也能够和basXML(二进制ABAP连串化XML)通讯协议一齐使用。

架构

价值观的q奥迪Q3FC模型唯有在数额被智跑FC调节程序管理的时候才探测各种独立单元之间的借助关系。对于每种destination,外向调治程序都会展开3个调解程序来管理那些destination的数据。

与之相对的是,bg帕杰罗FC的依赖性关系在数量存储的时候就决定了。通过如此做,XC60FC调治程序能够1次性找到全数的须求被处理的单元,并且通过最小的大力(minimum
effort)就足以找到它们之间的依附关系。在储存数据的时候供给付出的附加努力,则足以在十分大程度上由数据库设计中的高功效算法和优化补偿。

各个客户端定义一定数量的活泼安插,并且并行管理队列负载,即便指标类别的负载会在1个异常的短的岁月距离后被明确,可是也就此会越来越准确。

单元和队列的删除程序

和观念的顺序分化,借使有其余单元或队列被去除,正视依然会保持。因为单元会被先打上标志,并且在那事后只是被调节程序删除。

皇冠现金app 4

如图,在剔除了Unit4之后,Unit6头能在Unit3之后运营,因为Unit玖唯有在调节程序管理过Unit三之后才会被去除。假如你剔除掉queue二,那么会发出上边包车型地铁景况:

皇冠现金app 5

Unit陆会在Unit2随后运转,全部选定的unit都会被调节程序删除。

只顾:删除队列或然单元总是有着风险的。在大家的例证里,它会招致Unit陆际遇错误,或然导致指标类别的数据库分歧,因为它的前提Unit4因为被删去而并未有运营。

Gateway:Gateway是另2个私房的性质瓶颈,在bgOdysseyFC中,它也博得了优化。bgSportageFC中的新的概念是会调护医治在一台应用服务器上同时运维的活泼调节程序的最大数目,也会调和全体普拉多FC调解程序可用的最亚松森接数。那一个限制会爱惜本地的Gateway使之不至于过载。

各样发送系统的互相的活跃调解程序数量和它们的最地拉这接数也是可配备的,因而对此destination的Gateway也设有过载爱戴。

脾气的影响:新bg奥迪Q3FC兑现的优化在高负荷、多信赖的意况下特别引人侧目。第2遍运转的时候,线性对数可伸缩性(a
linear logarithmical
scalability)的帕JeroFC数据管理成为或然(视系统兼容性而定)。

函数队列的事务特性使得,在管理单独的单元时,bgENCOREFC不太轻巧获得明显的习性进步,然则在应用越来越多照旧越来越快的硬件的时候,则能够分明进步吞吐量。限制因素会是数据库的品质和那个单元的管理速度。

此外,新的API也是优化的1部分。一些剩余的函数被移除,有个别旧的API也不再利用。这使得相关的行事更是平缓解有功能,收缩帮忙协会和开支组织的职业量。

更加多音讯:

更多关于bgKoleosFC的消息, 请看:

本地数据队列:LDQ

本土数据队列(Local Data Queue
)是1种特意的EscortFC通讯。在这种应用景况下,系统不会积极性发送数据。相反,依据拉取规则,系统会把数量存款和储蓄在地面,直到被表面系统调用(举个例子移动器具)。

LDQ能够代表原先由q中华VFC在不发送场景下提供的成效(q大切诺基FC No
Send)。相比之下它提供了更有效用的数据模型。

越来越多内容:

Local Data Queue
(LDQ)

名词对照

scheduler:调解程序

outbound  queue:外向队列

inbound queue:内向队列

 

连带文章:ABAP
BMWX叁FC远程调用

 

 

相关文章