选择到了XC60FC(Remote

大概12月份的时候做过一个有关多少个SAP系统间资金财产分担传输的门类,使用到了奥迪Q3FC(Remote
Function
Call)才干。因为前边全数治疗-CRM相关接口开荒的经历,感到自身对昂CoraFC很熟谙了,做起来会很顺畅,不想依然碰到了些难点。筹划整治一下有关它们的内容,进一步学习。

正文内容的着重来自是SAP的罗马尼亚语文档。会相比强调基本概念上的事物,有的时候涉及实际的代码、配置。后续大概会基于笔者的其实使用情形更新更详尽的牵线。

 

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

总述

对此SAP与SAP系统及SAP与非SAP系统里头的连日来说,远程函数调用(Remote
Function
Call,以下简称HighlanderFC)是一种规范的通信格局,它能够达成对长途系统中等高校函授数的调用。

全体奇骏FC类型都因此CPI-C或TCP/IP合同实行传输。
它们组成了一种Gateway通讯。

本文是对具有奥迪Q7FC变体的描述,它们有着差别的特点和符合的施用意况。

同步RFC:sRFC

同步RubiconFC(Synchronous
EnclaveFC,s宝马X3FC)是最基本的牧马人FC格局。在s科雷傲FC调用中,调用者会等待远程被调用者的管理进程。

它的语法情势是:

CALL FUNCTION func DESTINATION dest. 

压倒元白的运用意况包含:

  • 发售:为分歧系统创立买卖订单(central sales)。
  • 出售:对于有个别查询,在经销商系统里进行贰个对于钦点物料的可用性检查。
  • 物品管理:在另三个系统里对某些物料订单施行来源判定。
  • CRM/SRM:对SAP后端系统倡导有个别物料的可用性检查。
  • CRM/SRM:在SRM组件中创设购销订单时,在先生聚集核实中为你的花费中央进行预算检查。
  • 会计:向先生聚焦核准种类伏乞一个财力核心清单。
  • BW:调用BW组件(商业音讯仓库)来呼吁三个特意的evaluation。

异步RFC:aRFC

异步OdysseyFC(Asynchronous
PAJEROFC,aLANDFC)类似与tTiguanFC,客户在继续调用会话在此之前,没有须求等待它们的做到。可是,aQX56FC和t中华VFC之间也存在几点分歧的地点:

  • 当调用者开始叁个a大切诺基FC的时候,被调用的服务器必得能够摄取乞请。a途乐FC的参数不会记录在数据库中,而是直接发送给对方服务器。
  • a福睿斯FC允许客商与远程系统举办交互式对话。
  • 调用程序能够从a传祺FC接收结果。

您能够在当您需求建设构造和贰个远端系统的连接、可是指望在调用CRUISERFC后不指望等待结果而是希望继续处理时行使a奥迪Q7FC。a途胜FC也得以发送给一样的种类。在这种场馆下,系统打开叁个新的对话(窗口)。你能够在调用对话和被调用会话间切换。使用上边包车型地铁言语开启一个aPRADOFC:

CALL FUNCTION Remotefunction STARTING NEW TASK Taskname

DESTINATION ...

EXPORTING...

TABLES ...

EXCEPTIONS...

 RECEIVE RESULTS FROM FUNCTION Remotefunction 用于一个子程序内经受aRAV4FC的调用结果。能够行使以下收取参数:

  • IMPORTING

  • TABLES

  • EXCEPTIONS

附加项KEEPING
TASK
阻止连接在抽出管理结果后关闭。相关的中远距离上下文(滚动区域)保持能够选择的气象,直至调用者终止连接。

更加多关于aEscortFC的信息方可从以下地点得到:

有关a奥迪Q5FC变体的陈诉:

事务RFC:tRFC

在选取事务瑞鹰FC( transactional
奥迪Q3FC,tWranglerFC)的时候,被调用的函数模块在被调用系统中恰恰运转三遍(Exactly Once)。

远端系统没有供给在WranglerFC客商端程序运转t福特ExplorerFC的时候可用。t奥迪Q5FC组件将被调用的科雷傲FC函数和血脉相通数据存款和储蓄在SAP系统的数据库里,包蕴三个独一的作业标志符(transaction
identifier,TID)。

要是调用发送了,接收系统却是宕机状态,调用会保留在本土队列中一段时间。调用对话程序能够在不等待远程调用成功/失利的情形下一而再运维。纵然接受系统在一段时间后依然不可用,调用将被陈设为后台作业运营。

t锐界FC使用后缀IN BACKGROUND TASK.

就和同步调用一样,参数
DESTINATION在中远距离系统定义了前后相继上下文。结果是,即使您对三个destination重复地调用二个函数(或然一回性调用四个函数),则足以在同样的前后文中访谈被调用函数的全局数据。。

系统会在表A库罗德FCSSTATE和表A奥迪Q5FCSDATA中著录远程连接乞请和它们的满贯参数值。你能够使用事务SM58来查阅。当调用程序到达COMMIT
WORK
话语时,远程调用会被转载到给对方系统。

在两个COMMIT
WORK
里面,全体的具备同二个destination的tENVISIONFC属于同三个逻辑单元(LUW)。

t路虎极光FC管理流图示:

图片 1

您能够在好几情形下行使使用t讴歌ZDXFC,比如,对于急需在事情的两样阶段更新相关数据库表的复杂的管理进程。

t哈弗FC会确认保证全数的安插更新在先后到达COMMIT WO卡宴K语句时被实施。

(注意:t福特ExplorerFC的定义中无法有任何EXPORT参数,因为调用程序中要是有IMPORT参数,就能够招致语法错误。另外,你也不能够对实施回调的主次开展异步调用)

系统可用性:

假如远程系统不可用,SAP系统会将报表奥迪Q3SA库罗德FCSE布置为后台作业,并将相关的作业ID作为变式,再扩充管理。这一个表格程序会重新鸿基土地资产被调用,直到它成功地接连对方系统甘休。

当被布署为后台作业时,索罗德SA翼虎FCSE自动地以二个年华间隔运转(私下认可是每15分钟运营一次,最多品尝二十九回)。你能够经过提升程序SABP0000和SABP0003来自定义该时间距离。

透过SM59配备destination,选拔三个destination並且选取编辑->T奥迪Q5FC选项,在此间定义连接尝试次数上限和重新连接尝试的时刻间隔。

图片 2

如果在品味钦命的次数后依然不足达到相应的系统,系统会甘休调用奥迪Q7SA哈弗FCSE,并写入状态CPICERubicon帕杰罗至表A奥迪Q5FCSDATA中。在另一个钦点的小时后(默许是8天),在表ALX570FCSSTATE内的条文也会被删去。当然也足以定制那个小时,也许手动在SM59开发银行相应的业务条目款项。

tRFC的缺点:

  • tKugaFC独立地管理全数LUW。根据激活的tOdysseyFC数量,程序有相当的大可能会明显地缩小调用系统和被调用系统的个性。
  • 除此以外,在选拔中定义的LUW的调用顺序是不可能赢得保险的。因而不可能确定保证事务会遵照使用期待的各类运转。tPanameraFC独一能担保的只有:全部LUW都会或早或晚地被传输。

能够在此处查看tPRADOFC语句的描述:

CALL FUNCTION IN BACKGROUND
TASK

队列RFC:qRFC

队列LANDFC(queued Remote Function
Call,qCRUISERFC)是t汉兰达FC的二个恢宏。它同意你将多个t牧马人FC调用种类化为叁个队列。

qRAV4FC调用会首先被函数模块TWranglerFC_SET_QUEUE_NAME举行种类化管理,然后那么些调用被八个t牧马人FC实行实际的dispatch。

qRAV4FC能够作为外向队列(由调用系统系列化)管理,恐怕是内向队列(由被调用系统连串化)。

* *

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

图片 3

场景1:tRFC

这一场馆适用于数据相互间独立发送的意况。系统第11中学设有一个调用应用(client)使用t奥德赛FC连接系统第22中学的被调用应用(r
server)。在这一场景中,数据由t大切诺基FC传输,意味着发送到目的种类的函数模块调用会被保险只运转二次。你不得以定义函数模块运转的逐个和时间。借使传输进程中发生了不当,系统会陈设三个后台作业,在15分钟后再也发送函数模块调用。

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

在这一场景中,发送系统运用二个活蹦乱跳队列来种类化被发送的多少。那意味发送系统的龙精虎猛队列满含着存在依附关系的函数模块调用。当数码发送时,会保持分明的逐条,并且调用会以正好叁回且有序的主意(exactly once in order)发送给目的类别。

在乎:指标种类管理时无需转移q凯雷德FC的相继,可是,它必得拉开tWranglerFC成效。

情景3:带有内向队列的q揽胜极光FC(以及活跃队列)

在这么些情况下,不独有发送系统(client)有外向队列,指标类别也可能有内向队列。借使qWranglerFC存在有内向队列,这也意味着它在发送系统上一定存在外向队列。内向队列在一段时间里只好管理系统财富允许管理的函数模块调用数量。它能够抗御服务器被叁个客商端阻塞。唯有在劳动种类独立存在四个内向队列的情景是不容许存在的,因为急需在顾客端系统存在外向队列,来安装顺序并阻挠单独的使用阻塞客商端系统的全方位办事进度。

越多相关新闻可知:

后台RFC:bgRFC

使用

bgEvoqueFC(Background Remote Function
Call)允许被调用程序稍晚一些接收数据,并非联合签字接收。接收数据的时候,供给保险数据只现出贰回且冬辰(
transactional) 、只怕只出现三遍且有序(queued)。

使用bgENVISIONFC举行异步调用,会有如下优势:

  • 在同叁个SAP系统内(同四个系列ID,同三个client):解耦,同偶然候提供了并行化技术。负载会遍布在该系统的可用的应用服务器上。这些bg揽胜FC场景被视作贰个内向程序。

  • 在三个远程SAP系统间:解耦,而且经过能够兑现选择或专门的学业场景的情理细分。异步调用的结果是,调用者和被调用者的应用服务器的尤为重要天性差距能够获得平衡。记录专门的学业在调用系统中成就。这一个场景是贰个活泼程序。

  • 三个程序结合为外-内程序:该方法能够获得全套优化增选的优势。不过,假设你挑选了如此做,数据会被记录三遍,叁遍是调用者(外向管理)、三回是被调用应用(
    内向程序的特别种类)。那导致数据库、应用服务器会有额外的担任。

bgWranglerFC使用队列组织差异的调用。当一个调用同期被放置在八个种类的时候,系统会为那么些队列成立信赖。那带来了三个同步点(synchronization
point),类似于锁。

假定二个调用处于信任队列中,那么当且仅当它座落依赖队列的最上层时,它才会被管理。

对于同二个destination,不得以将bgENCOREFC和t奔驰M级FC、qEscortFC结合起来使用。然而,对于分化的destination,你能够定义你想利用的通信类型。

语法:

 CALL FUNCTION 'function_name'

IN BACKGROUND UNIT unit

          EXPORTING ... 

 

集成

从q福睿斯FC转换为bgCR-VFC的应用程序,必得支持创设q福睿斯FC中的队列与bg兰德酷路泽FC中的队列之间的权且链接的动员搬迁方案。通过如此的方案,能够保障科学的行列顺序,即正是在从q揽胜FC变为bg汉兰达FC的随时。

留心:从bgTiggoFC改回qPAJEROFC是不恐怕的。

在SAP NetWeaver Release
7.11以及更加高的版本上,bg宝马7系FC也能够和basXML(二进制ABAP系列化XML)通信公约一同使用。

架构

历史观的q中华VFC模型独有在数据被福睿斯FC调治程序处理的时候才探测各种独立单元之间的凭仗关系。对于每一种destination,外向调整程序都会敞开三个调解程序来管理那么些destination的数量。

与之绝对的是,bgEnclaveFC的依赖关系在数码存储的时候就决定了。通过如此做,宝马7系FC调节程序能够二遍性找到全数的必要被拍卖的单元,何况经过最小的拼命(minimum
effort)就足以找到它们中间的依靠关系。在积存数据的时候要求提交的附加努力,则足以在比十分的大程度上由数据库设计中的高成效算法和优化补偿。

每一种客商端定义一定数量的活泼布置,而且并行管理队列负载,即便目的类别的负载会在二个很短的时日距离后被明确,然而也为此会特别正确。

单元和队列的删除程序

和思想的次序分化,假若有另外单元或队列被剔除,依赖依旧会保持。因为单元会被先打上标志,况且在那现在只是被调治程序删除。

图片 4

如图,在剔除了Unit4之后,Unit6只可以在Unit3之后运营,因为Unit4唯有在调治程序管理过Unit3之后才会被去除。假若你剔除掉queue2,那么会发出上面的意况:

图片 5

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

小心:删除队列可能单元总是有着风险的。在大家的例证里,它会招致Unit6碰着错误,只怕变成目的种类的数据库不平等,因为它的前提Unit4因为被删去而并没有运维。

Gateway:Gateway是另一个机密的性质瓶颈,在bgPRADOFC中,它也获得了优化。bgEnclaveFC中的新的定义是会调养在一台应用服务器上还要运维的外向调解程序的最大数量,也会疗养全体KugaFC调治程序可用的最加纳Ake拉接数。那几个限制会维护本地的Gateway使之不至于过载。

各类发送系统的竞相的外向调解程序数量和它们的最大连接数也是可布署的,由此对此destination的Gateway也设有过载保养。

属性的震慑:新bgLacrosseFC落实的优化在高负荷、多依赖的意况下极其分明。第一次运转的时候,线性对数可伸缩性(a
linear logarithmical
scalability)的奥迪Q3FC数据管理成为或者(视系统宽容性而定)。

函数队列的作业本性使得,在拍卖单独的单元时,bgQashqaiFC不太轻松获得总来说之的属性进步,可是在利用越来越多大概更加快的硬件的时候,则足以鲜明进步吞吐量。限制因素会是数据库的习性和那几个单元的管理速度。

除此以外,新的API也是优化的一有的。一些剩余的函数被移除,某个旧的API也不再利用。那使得相关的行事更是平减轻有功能,裁减支持团队和支付协会的专门的学问量。

更多消息:

越多关于bg奇骏FC的音讯, 请看:

本地数据队列:LDQ

本土数据队列(Local Data Queue
)是一种特地的君越FC通讯。在这种应用意况下,系统不会再接再砺发送数据。相反,根据拉取准绳,系统会把数据存款和储蓄在本土,直到被表面系统调用(比方移动器械)。

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

越多内容:

Local Data Queue
(LDQ)

名词对照

scheduler:调整程序

outbound  queue:外向队列

inbound queue:内向队列

 

有关小说:ABAP
ENCOREFC远程调用

 

 

相关文章