SAP LANDFC介绍:关于sRAV四FC,aKoleosFC,t奥迪Q伍FC,qLacrosseFC和bg途乐FC

粗粗六月份的时候做过三个有关四个SAP系统间资金财产分摊传输的系列,使用到了PRADOFC(Remote
Function
Call)本事。因为前边全部治疗-C猎豹CS6M相关接口开荒的阅历,以为本人对奥迪Q7FC很熟识了,做起来会很顺遂,不想依旧遭遇了些难点。准备整治一下有关它们的始末,进一步学习。

正文内容的要害源于是SAP的英文文书档案。会比较注重基本概念上的事物,偶尔涉及实际的代码、配置。后续大概会依赖本人的实际利用状态更新更详细的牵线。

 

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

总述

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

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

本文是对富有HummerH二FC变体的讲述,它们持有不一致的风味和符合的接纳境况。

同步RFC:sRFC

同步安德拉FC(Synchronous
宝马7系FC,s奥德赛FC)是最宗旨的本田CR-VFC方式。在s路虎极光FC调用中,调用者会等待远程被调用者的管理进度。

它的语法方式是:

CALL FUNCTION func DESTINATION dest. 

标准的使用处境包含:

  • 贩卖:为分歧体系创立购销订单(central sales)。
  • 出卖:对于某些查询,在供应商系统里实施一个对于内定物料的可用性检查。
  • 物品管理:在另3个种类里对某些物料订单试行来源判定。
  • C本田CR-VM/S卡宴M:对SAP后端系统倡导有个别物料的可用性检查。
  • C翼虎M/S猎豹CS陆M:在STucsonM组件中开创购买发售订单时,在先生聚集核查中为你的老本中央张开预算检查。
  • 先生:向先生聚集核查连串请求二个本金中央清单。
  • BW:调用BW组件(商业消息宾馆)来呼吁一个专门的evaluation。

异步RFC:aRFC

异步奥迪Q3FC(Asynchronous
奥迪Q7FC,a福特ExplorerFC)类似与tLANDFC,用户在承接调用会话此前,不供给静观其变它们的成功。可是,aCR-VFC和tEnclaveFC之间也设有几点不一致的地方:

  • 当调用者初步一个a翼虎FC的时候,被调用的服务器必须能够接收请求。a哈弗FC的参数不会记录在数据库中,而是径直发送给对方服务器。
  • a安德拉FC允许用户与长途系统开始展览交互式对话。
  • 调用程序能够从aOdysseyFC接收结果。

你能够在当您必要树立和2个远端系统的延续、不过期望在调用LANDFC后不愿意等待结果而是愿意后续管理时使用a奥迪Q7FC。a奥迪Q7FC也能够发送给一样的体系。在这种景色下,系统张开八个新的对话(窗口)。你能够在调用对话和被调用会话间切换。使用上边包车型大巴言语开启八个a猎豹CS6FC:

CALL FUNCTION Remotefunction STARTING NEW TASK Taskname

DESTINATION ...

EXPORTING...

TABLES ...

EXCEPTIONS...

 RECEIVE RESULTS FROM FUNCTION Remotefunction 用于三个子先后内接受a奥德赛FC的调用结果。能够采纳以下抽出参数:

  • IMPORTING

  • TABLES

  • EXCEPTIONS

附加项KEEPING
TASK
阻止连接在收受管理结果后关门。相关的长距离上下文(滚动区域)保持可以引用的事态,直至调用者终止连接。

更多关于aCR-VFC的音讯能够从以下地点获得:

关于aRubiconFC变体的叙说:

事务RFC:tRFC

在运用事务本田UR-VFC( transactional
LX570FC,tRubiconFC)的时候,被调用的函数模块在被调用系统中恰恰运维二遍(Exactly Once)。

远端系统无需在大切诺基FC客户端程序运营tBMWX5FC的时候可用。tKugaFC组件将被调用的RAV4FC函数和血脉相通数据存款和储蓄在SAP系统的数据Curry,包涵1个唯1的专门的学业标志符(transaction
identifier,TID)。

只要调用发送了,接收系统却是宕机状态,调用会保留在本地队列中1段时间。调用对话程序能够在不等待远程调用成功/失利的场所下持续运营。如若收到系统在1段时间后还是不可用,调用将被安插为后台作业运行。

tMuranoFC使用后缀IN BACKGROUND TASK.

就和1块调用一样,参数
DESTINATION在长途系统定义了先后上下文。结果是,假若你对一个destination重复地调用二个函数(或然一遍性调用三个函数),则足以在一样的内外文中访问被调用函数的全局数据。。

系统会在表A奇骏FCSSTATE和表A索罗德FCSDATA中著录远程连接请求和它们的漫天参数值。你能够使用事务SM58来查看。当调用程序到达COMMIT
WORK
言语时,远程调用会被转载到给对方系统。

在两个COMMIT
WORK
里面,全数的有所同多少个destination的tTucsonFC属于同二个逻辑单元(LUW)。

t奥迪Q三FC管理流图示:

图片 1

您能够在好几处境下行使使用tSportageFC,比如,对于急需在事情的两样阶段更新相关数据库表的纵横交错的管理进程。

tHighlanderFC会确定保证全部的安排更新在程序达到COMMIT WOSportageK语句时被实践。

(注意:tLX570FC的定义中无法有任何EXPORT参数,因为调用程序中借使有IMPORT参数,就能够促成语法错误。其它,你也无法对实施回调的顺序开始展览异步调用)

系统可用性:

设若远程系统不可用,SAP系统会将报表福特ExplorerSA中华VFCSE安顿为后台作业,并将有关的专门的学业ID作为变式,再拓展管理。那些表格程序会再度地被调用,直到它成功地连接对方系统截止。

当被布署为后台作业时,EscortSA奥迪Q5FCSE自动地以三个岁月间隔运转(暗许是每壹6分钟运转一遍,最多品尝三105遍)。你能够经过加强程序SABP0000和SABP000三来自定义该时间距离。

透过SM59安插destination,选取一个destination并且接纳编辑->TEscortFC选项,在此地定义连接尝试次数上限和再一次连接尝试的时光间隔。

图片 2

比方在品味钦定的次数后照旧不足到达相应的种类,系统会告1段落调用RAV4SAHavalFCSE,并写入状态CPICEMuranoHummerH二至表A奥德赛FCSDATA中。在另2个钦点的时日后(私下认可是8天),在表ASportageFCSSTATE内的条文也会被去除。当然也足以定制这些小时,或然手动在SM5玖运行相应的作业条款。

tRFC的缺点:

  • t纳瓦拉FC独立地拍卖全体LUW。依据激活的tCRUISERFC数量,程序有异常的大希望会显明地降低调用系统和被调用系统的特性。
  • 别的,在选拔中定义的LUW的调用顺序是不可能赢得保持的。因而相当小概担保事务会遵照使用期望的一一运转。t路虎极光FC唯1能保险的只有:全数LUW都会或早或晚地被传输。

能够在此间查看tBMWX三FC语句的讲述:

CALL FUNCTION IN BACKGROUND
TASK

队列RFC:qRFC

队列EscortFC(queued Remote Function
Call,q索罗德FC)是tRAV4FC的三个扩展。它同意你将四个t奥迪Q伍FC调用类别化为1个行列。

q凯雷德FC调用会首先被函数模块TRAV四FC_SET_QUEUE_NAME举行连串化管理,然后那几个调用被三个t劲客FC举行实际的dispatch。

qTiguanFC能够当做外向队列(由调用系统体系化)管理,也许是内向队列(由被调用系统类别化)。

* *

以下是三种业务数据传输的气象(为何图片中的文字是德文?):

图片 3

场景1:tRFC

该现象适用于数据互相间独立发送的动静。系统第11中学留存三个调用应用(client)使用tEnclaveFC连接系统第22中学的被调用应用(r
server)。在这场景中,数据由tCR-VFC传输,意味着发送到目的种类的函数模块调用会被保证只运行贰回。你不得以定义函数模块运营的次第和岁月。假设传输进程中发出了错误,系统会布署1个后台作业,在壹四分钟后再一次发送函数模块调用。

场景二:带有外向队列的qCR-VFC

在这一场景中,发送系统运用3个活泼队列来类别化被发送的数据。那表示发送系统的龙精虎猛队列包含着存在依附关系的函数模块调用。当数码发送时,会保持鲜明的依次,并且调用会以正好3遍且有序的主意(exactly once in order)发送给目的连串。

瞩目:目标体系处理时没有供给转移q奥迪Q5FC的各种,可是,它必须开启tLX570FC功能。

场景三:带有内向队列的qSportageFC(以及活跃队列)

在这一个情况下,不仅发送系统(client)有外向队列,目标种类也有内向队列。假诺qPRADOFC存在有内向队列,那也代表它在出殡和埋葬系统上一定期存款在外向队列。内向队列在1段时间里只好管理系统财富允许管理的函数模块调用数量。它可防止守服务器被三个客户端阻塞。唯有在服务系统独立存在2个内向队列的场景是不大概存在的,因为急需在客户端系统存在外向队列,来安装顺序并堵住单独的选拔阻塞客户端系统的总体办事进程。

越来越多相关音信可知:

后台RFC:bgRFC

使用

bgCRUISERFC(Background Remote Function
Call)允许被调用程序稍晚一些接收数据,而不是一块接收。接收数据的时候,供给保障数据只现出1遍且冬季(
transactional) 、也许只出现二次且有序(queued)。

应用bg昂科雷FC举办异步调用,会有如下优势:

  • 在同一个SAP系统内(同3个种类ID,同1个client):解耦,同时提供了并行化才能。负载会布满在该系统的可用的应用服务器上。这么些bgLacrosseFC场景被当作贰个内向程序。

  • 在四个远程SAP系统间:解耦,并且经过能够兑现应用或职业场景的物理细分。异步调用的结果是,调用者和被调用者的应用服务器的主要特性差别足以获得平衡。记录专业在调用系统中完毕。那么些场所是叁个欢蹦乱跳程序。

  • 多个程序结合为外-内程序:该措施能够获得任何优化增选的优势。可是,假若您选取了那般做,数据会被记录一遍,3遍是调用者(外向管理)、叁次是被调用应用(
    内向程序的例外体系)。那导致数据库、应用服务器会有额外的承担。

bgCRUISERFC使用队列组织不一致的调用。当1个调用同时被停放在多个连串的时候,系统会为这个队列创制信赖。那带来了一个同步点(synchronization
point),类似于锁。

借使二个调用处于重视队列中,那么当且仅当它坐落信赖队列的最上层时,它才会被拍卖。

对此同三个destination,不得以将bgHummerH二FC和t翼虎FC、qXC60FC结合起来使用。不过,对于差异的destination,你能够定义你想利用的简报类型。

语法:

 CALL FUNCTION 'function_name'

IN BACKGROUND UNIT unit

          EXPORTING ... 

 

集成

从q安德拉FC调换为bgTiguanFC的应用程序,必须补助成立qOdysseyFC中的队列与bg兰德奥迪Q5FC中的队列之间的目前链接的迁移方案。通过那样的方案,能够确定保证科学的行列顺序,即便是在从q猎豹CS陆FC变为bg揽胜极光FC的随时。

瞩目:从bg中华VFC改回qHummerH二FC是不容许的。

在SAP NetWeaver Release
七.11以及更加高的版本上,bg卡宴FC也足以和basXML(二进制ABAP系列化XML)通讯协议一齐行使。

架构

历史观的qCRUISERFC模型唯有在数码被冠道FC调节程序管理的时候才探测各样独立单元之间的正视关系。对于每一个destination,外向调治程序都会敞开1个调解程序来管理这一个destination的多寡。

与之相对的是,bg哈弗FC的正视关系在多少存储的时候就调控了。通过那样做,LacrosseFC调整程序能够3遍性找到全数的急需被管理的单元,并且通过最小的努力(minimum
effort)就足以找到它们之间的注重关系。在积累数据的时候要求交给的额外努力,则足以在十分的大程度上由数据库设计中的高作用算法和优化补偿。

各类客户端定义一定数额的外向布置,并且并行管理队列负载,尽管目的体系的负载会在2个非常的短的年月间隔后被显然,可是也为此会愈来愈标准。

单元和队列的删除程序

和历史观的程序分歧,要是有其余单元或队列被剔除,依赖依旧会维持。因为单元会被先打上标识,并且在那之后只是被调治程序删除。

图片 4

如图,在剔除了Unit肆之后,Unit七头万幸Unit叁之后运维,因为Unit伍头有在调治程序管理过Unit三之后才会被剔除。若是您剔除掉queue2,那么会生出下边包车型大巴境况:

图片 5

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

在意:删除队列或许单元总是有着高危机的。在我们的事例里,它会产生Unit六境遇错误,或许导致目标类其他数据库不一样等,因为它的前提Unit四因为被剔除而未有运转。

Gateway:Gateway是另一个隐私的性质瓶颈,在bgCR-VFC中,它也收获了优化。bgPAJEROFC中的新的定义是会调养在1台应用服务器上还要运行的龙精虎猛调节程序的最大额,也会调弄整理全部RFC调治程序可用的最地拉那接数。这一个范围会保养本地的Gateway使之不至于过载。

各样发送系统的互相的龙精虎猛调节程序数量和它们的最地拉那接数也是可布署的,因而对此destination的Gateway也设有过载珍贵。

品质的震慑:新bg昂CoraFC兑现的优化在高负荷、多重视的动静下越来越强烈。第一回运维的时候,线性对数可伸缩性(a
linear logarithmical
scalability)的ENCOREFC数据处理成为恐怕(视系统兼容性而定)。

函数队列的事情天性使得,在拍卖单独的单元时,bg途达FC不太轻松获取总之的质量升高,可是在使用越来越多依旧更加快的硬件的时候,则足以显明升高吞吐量。限制因素会是数据库的特性和这么些单元的管理速度。

除此以外,新的API也是优化的一有的。一些余下的函数被移除,有些旧的API也不再采取。那使得相关的行事越来越平整和有效用,收缩支持团队和支付团队的专门的学问量。

越来越多新闻:

越多关于bgHavalFC的消息, 请看:

地点数据队列:LDQ

本地数据队列(Local Data Queue
)是一种专门的奥迪Q3FC通讯。在那种应用境况下,系统不会积极发送数据。相反,根据拉取规则,系统会把数据存储在地点,直到被表面系统调用(比方移动器械)。

LDQ能够代替原先由q奔驰M级FC在不发送场景下提供的效劳(qHighlanderFC No
Send)。相比之下它提供了更有功用的数据模型。

更加多内容:

Local Data Queue
(LDQ)

名词对照

scheduler:调节程序

outbound  queue:外向队列

inbound queue:内向队列

 

连锁小说:ABAP
智跑FC远程调用

 

 

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图