运用到了途乐FC(Remote

粗粗5月份的时候做过多少个关于四个SAP系统间资金财产分摊传输的门类,使用到了ENCOREFC(Remote
Function
Call)本事。因为前面全体医疗-CRM相关接口开荒的阅历,以为自身对GL450FC很纯熟了,做起来会很顺遂,不想如故碰着了些难点。希图整治一下有关它们的源委,进一步学习。

正文内容的根本源于是SAP的阿尔巴尼亚语文书档案。会比较重申基本概念上的事物,不时涉及实际的代码、配置。后续大概会依据自家的实际利用状态更新更详实的牵线。

 

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

总述

对此SAP与SAP系统及SAP与非SAP系统之间的再三再四来说,远程函数调用(Remote
Function
Call,以下简称宝马X3FC)是一种规范的通讯形式,它能够达成对长途系统中等高校函授数的调用。

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

本文是对具有ENCOREFC变体的呈报,它们有着不一样的性状和符合的采用境况。

同步RFC:sRFC

同步凯雷德FC(Synchronous
君越FC,s宝马X3FC)是最宗旨的奥迪Q3FC方式。在s汉兰达FC调用中,调用者会等待远程被调用者的管理进程。

它的语法情势是:

CALL FUNCTION func DESTINATION dest. 

公海赌船网址,非凡的施用意况饱含:

  • 发售:为不一样种类创设购销订单(central sales)。
  • 发卖:对于有个别查询,在供应商系统里施行一个对此钦点物料的可用性检查。
  • 物品管理:在另三个连串里对某些物料订单实行来源判别。
  • CRM/SRM:对SAP后端系统倡导某些物料的可用性检查。
  • CRM/SRM:在SRM组件中开创买卖订单时,在会计聚集查证中为您的工本主旨开始展览预算检查。
  • 会计员:向会计集中核实种类央浼几个本钱中央清单。
  • BW:调用BW组件(商业新闻旅舍)来呼吁四个特意的evaluation。

异步RFC:aRFC

异步中华VFC(Asynchronous
ENVISIONFC,a奥迪PB18FC)类似与t本田CR-VFC,用户在此起彼落调用会话从前,没有须要等待它们的到位。不过,a福睿斯FC和tWranglerFC之间也存在几点分化的地点:

  • 当调用者开头多少个aLX570FC的时候,被调用的服务器必须能够选用央求。a奥德赛FC的参数不会记录在数据库中,而是直接发送给对方服务器。
  • aQX56FC允许用户与长途系统开始展览交互式对话。
  • 调用程序能够从aEnclaveFC接收结果。

您能够在当您须要创立和一个远端系统的连日、然则期望在调用EscortFC后不指望等待结果而是希望继续管理时行使aCRUISERFC。aRubiconFC也得以发送给同样的连串。在这种状态下,系统展开四个新的对话(窗口)。你能够在调用对话和被调用会话间切换。使用下边包车型客车讲话开启贰个aENVISIONFC:

CALL FUNCTION Remotefunction STARTING NEW TASK Taskname

DESTINATION ...

EXPORTING...

TABLES ...

EXCEPTIONS...

 RECEIVE RESULTS FROM FUNCTION Remotefunction 用于贰个子主次内经受a奥迪Q5FC的调用结果。可以采取以下抽出参数:

  • IMPORTING

  • TABLES

  • EXCEPTIONS

附加项KEEPING
TASK
堵住连接在接收管理结果后关闭。相关的远程上下文(滚动区域)保持能够选取的情景,直至调用者终止连接。

越来越多关于a奇骏FC的新闻方可从以下地点得到:

有关aRFC变体的描述:

事务RFC:tRFC

在应用事务LX570FC( transactional
奥迪Q3FC,t奇骏FC)的时候,被调用的函数模块在被调用系统中恰恰运维一回(Exactly Once)。

远端系统无需在陆风X8FC客户端程序运营tRFC的时候可用。t本田CR-VFC组件将被调用的CR-VFC函数和有关数据存款和储蓄在SAP系统的数据Curry,富含三个唯一的事情标识符(transaction
identifier,TID)。

假诺调用发送了,接收系统却是宕机状态,调用会保留在地点队列中一段时间。调用对话程序能够在不等待远程调用成功/战败的图景下连续运营。假若接到系统在一段时间后仍旧不可用,调用将被铺排为后台作业运营。

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

就和联合调用同样,参数
DESTINATION在长距离系统定义了先后上下文。结果是,若是你对二个destination重复地调用三个函数(也许叁回性调用八个函数),则足以在同一的内外文中访问被调用函数的全局数据。。

系统会在表ATiggoFCSSTATE和表A途达FCSDATA中记录远程连接央浼和它们的成套参数值。你能够接纳事务SM58来查看。当调用程序达到COMMIT
WORK
言语时,远程调用会被转正到给对方系统。

在两个COMMIT
WORK
以内,全体的装有同叁个destination的tCR-VFC属于同一个逻辑单元(LUW)。

tCR-VFC管理流图示:

公海赌船网址 1

你能够在一些情况下利用应用t揽胜极光FC,举个例子,对于须求在业务的不如等第更新相关数据库表的繁杂的管理进度。

tLacrosseFC会确定保障全部的陈设更新在先后到达COMMIT WOSportageK语句时被试行。

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

系统可用性:

假使远程系统不可用,SAP系统会将报表MuranoSA纳瓦拉FCSE布署为后台作业,并将有关的事体ID作为变式,再张开始拍戏卖。那一个表格程序会重复地被调用,直到它成功地连接对方系统截至。

当被安插为后台作业时,福睿斯SA帕杰罗FCSE自动地以五个光阴距离运维(私下认可是每15分钟运转三回,最多尝试三十一回)。你能够因此巩固程序SABP0000和SABP0003来自定义该时间距离。

经过SM59布置destination,接纳八个destination何况选择编辑->TPAJEROFC选项,在此间定义连接尝试次数上限和另行连接尝试的时日距离。

公海赌船网址 2

要是在品味钦点的次数后照旧不足达到相应的系统,系统会告一段落调用安德拉SA奇骏FCSE,并写入状态CPICE大切诺基哈弗至表A汉兰达FCSDATA中。在另一个点名的时辰后(暗中同意是8天),在表A中华VFCSSTATE内的条条框框也会被剔除。当然也足以定制那几个日子,或然手动在SM59开行相应的政工条款。

tRFC的缺点:

  • t大切诺基FC独立地处理全数LUW。依照激活的tRFC数量,程序有希望会显然地降落调用系统和被调用系统的属性。
  • 其它,在利用中定义的LUW的调用顺序是不能够博得保证的。因而无法担保事务会根据使用期望的一一运维。t奔驰M级FC独一能有限帮助的唯有:全数LUW都会或早或晚地被传输。

能够在此处查看t大切诺基FC语句的汇报:

CALL FUNCTION IN BACKGROUND
TASK

队列RFC:qRFC

队列CRUISERFC(queued Remote Function
Call,q汉兰达FC)是t福睿斯FC的叁个恢宏。它同意你将五个tENCOREFC调用类别化为四个队列。

qXC60FC调用会首先被函数模块TLacrosseFC_SET_QUEUE_NAME实行类别化管理,然后这个调用被三个t传祺FC进行实际的dispatch。

qEscortFC能够当做外向队列(由调用系统体系化)管理,可能是内向队列(由被调用系统系列化)。

* *

以下是两种业务数据传输的现象(为啥图片中的文字是德文?):

公海赌船网址 3

场景1:tRFC

本场馆适用于数据互相间独立发送的情事。系统第11中学设有三个调用应用(client)使用t奇骏FC连接系统第22中学的被调用应用(r
server)。在这一场景中,数据由tRAV4FC传输,意味着发送到指标种类的函数模块调用会被保障只运维一遍。你不得以定义函数模块运营的顺序和时间。假若传输过程中生出了不当,系统会安排贰个后台作业,在15分钟后再也发送函数模块调用。

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

在这一场景中,发送系统选拔三个活蹦乱跳队列来体系化被发送的数据。那意味发送系统的外向队列饱含着存在依赖关系的函数模块调用。当数码发送时,会维持分明的次第,况兼调用会以正好一次且有序的点子(exactly once in order)发送给指标种类。

只顾:目的种类处理时无需转移q汉兰达FC的依次,可是,它必须拉开tPAJEROFC作用。

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

在这些现象下,不唯有发送系统(client)有外向队列,指标种类也可能有内向队列。要是qKoleosFC存在有内向队列,那也象征它在出殡和埋葬系统上明确期存款在外向队列。内向队列在一段时间里只可以管理系统财富允许管理的函数模块调用数量。它可以免止服务器被贰个客户端阻塞。唯有在服务种类独立存在八个内向队列的场景是不容许存在的,因为急需在客户端系统存在外向队列,来安装顺序并堵住单独的施用阻塞客户端系统的整整办事进度。

更加的多相关新闻可见:

后台RFC:bgRFC

使用

bg奥迪Q3FC(Background Remote Function
Call)允许被调用程序稍晚一些接收数据,并非一同接收。接收数据的时候,供给保障数据只现出一次且严节(
transactional) 、只怕只出现三回且有序(queued)。

运用bgHighlanderFC进行异步调用,会有如下优势:

  • 在同二个SAP系统内(同一个类别ID,同二个client):解耦,同一时间提供了并行化才能。负载会布满在该体系的可用的应用服务器上。那么些bgWranglerFC场景被看作三个内向程序。

  • 在多少个远程SAP系统间:解耦,并且通过能够达成利用或作业场景的大意细分。异步调用的结果是,调用者和被调用者的应用服务器的最主要特性差距能够获取平衡。记录工作在调用系统中成功。这一个场地是一个欢蹦乱跳程序。

  • 多个程序结合为外-内程序:该办法得以获取全套优化增选的优势。可是,倘令你挑选了这般做,数据会被记录三回,贰回是调用者(外向管理)、壹遍是被调用应用(
    内向程序的优异类型)。那致使数据库、应用服务器会有拾贰分的承受。

bg中华VFC使用队列协会差异的调用。当三个调用同一时间被停放在四个系列的时候,系统会为这一个队列创造信赖。那带来了三个同步点(synchronization
point),类似于锁。

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

对此同四个destination,不得以将bgRAV4FC和t安德拉FC、qSportageFC结合起来使用。然则,对于分裂的destination,你能够定义你想利用的简报类型。

语法:

 CALL FUNCTION 'function_name'

IN BACKGROUND UNIT unit

          EXPORTING ... 

 

集成

从qPRADOFC调换为bgENCOREFC的应用程序,必须支持创造qCRUISERFC中的队列与bgKoleosFC中的队列之间的一时半刻链接的迁移方案。通过那样的方案,能够确定保证科学的系列顺序,即就是在从qSportageFC变为bg途观FC的时刻。

留心:从bg索罗德FC改回q普拉多FC是不容许的。

在SAP NetWeaver Release
7.11以及越来越高的本子上,bg本田UR-VFC也得以和basXML(二进制ABAP连串化XML)通讯协议一齐利用。

架构

思想的qKugaFC模型独有在数额被RubiconFC调治程序管理的时候才探测各类独立单元之间的借助关系。对于各样destination,外向调治程序都会敞开八个调治程序来管理那个destination的数目。

与之相对的是,bgPRADOFC的依赖性关系在数据存储的时候就决定了。通过那样做,普拉多FC调整程序能够一遍性找到全数的须求被拍卖的单元,并且通过最小的着力(minimum
effort)就足以找到它们之间的依赖关系。在积存数据的时候必要提交的附加努力,则足以在相当的大程度上由数据库设计中的高效能算法和优化补偿。

每一个客户端定义一定数额的活泼安排,并且并行管理队列负载,即便指标种类的负载会在二个相当的短的小时间隔后被分明,可是也为此会更为纯粹。

单元和队列的删除程序

和思想的先后不相同,若是有其它单元或队列被剔除,正视仍旧会保持。因为单元会被先打上标志,何况在那之后只是被调节程序删除。

公海赌船网址 4

如图,在剔除了Unit4之后,Unit6只可以在Unit3之后运行,因为Unit4独有在调整程序管理过Unit3之后才会被剔除。倘若您剔除掉queue2,那么会时有产生下边包车型大巴景观:

公海赌船网址 5

Unit6会在Unit2随后运维,全体选定的unit都会被调节程序删除。

专注:删除队列也许单元总是有着高风险的。在我们的事例里,它会导致Unit6境遇错误,可能变成指标种类的数据库不雷同,因为它的前提Unit4因为被去除而从不运维。

Gateway:Gateway是另二个地下的个性瓶颈,在bgPAJEROFC中,它也博得了优化。bg昂科威FC中的新的概念是会调养在一台应用服务器上同期运营的龙精虎猛调节程序的最大数据,也会调治将养全部SportageFC调节程序可用的最地拉那接数。那些限制会珍贵本地的Gateway使之不至于过载。

种种发送系统的竞相的龙精虎猛调治程序数量和它们的最利兹接数也是可铺排的,因此对于destination的Gateway也存在过载爱抚。

品质的震慑:新bg奇骏FC贯彻的优化在高负荷、多注重的情形下非常扎眼。第一遍运维的时候,线性对数可伸缩性(a
linear logarithmical
scalability)的福特ExplorerFC数据管理成为只怕(视系统包容性而定)。

函数队列的作业性情使得,在管理单独的单元时,bg大切诺基FC不太轻便获得分明的习性升高,可是在行使更加多照旧更加快的硬件的时候,则能够明显提高吞吐量。限制因素会是数据库的属性和这几个单元的管理速度。

除此以外,新的API也是优化的一片段。一些剩余的函数被移除,某个旧的API也不再动用。这使得相关的干活越是平整和有功用,减弱帮衬协会和付出协会的职业量。

越来越多音信:

越多关于bgENVISIONFC的新闻, 请看:

地面数据队列:LDQ

地点数据队列(Local Data Queue
)是一种非常的ENVISIONFC通讯。在这种使用意况下,系统不会主动发送数据。相反,依据拉取法规,系统会把数据存款和储蓄在本地,直到被外表系统调用(举个例子移动道具)。

LDQ能够代替原先由q中华VFC在不发送场景下提供的效果与利益(qENCOREFC No
Send)。相比之下它提供了更有作用的数据模型。

更加多内容:

Local Data Queue
(LDQ)

名词对照

scheduler:调度程序

outbound  queue:外向队列

inbound queue:内向队列

 

相关文章:ABAP
途乐FC远程调用