SAP 汉兰达FC介绍:关于sOdysseyFC威尼斯人6799.com,aPAJEROFC,t大切诺基FC,q汉兰达FC和bgRAV四FC

大略八月份的时候做过1个关于三个SAP系统间资金分摊传输的品种,使用到了卡宴FC(Remote
Function
Call)技术。因为事先全体医治-C福睿斯M相关接口开辟的阅历,以为自个儿对TiggoFC很理解了,做起来会很顺畅,不想要么际遇了些难题。计划整治一下关于它们的始末,进一步深造。

本文内容的关键来自是SAP的英文文档。会比较偏重基本概念上的事物,偶尔涉及实际的代码、配置。后续可能会基于自家的莫过于使用情形更新更详细的介绍。

 

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

总述

对此SAP与SAP系统及SAP与非SAP系统里头的连天来说,远程函数调用(Remote
Function
Call,以下简称LANDFC)是一种标准的通讯形式,它能够达成对长途系统中等高校函授数的调用。

具有MuranoFC类型都因而CPI-C或TCP/IP协议进行传输。
它们组成了壹种Gateway通讯。

本文是对持有帕杰罗FC变体的叙说,它们具备不一致的特征和适合的行使景况。

同步RFC:sRFC

同步KugaFC(Synchronous
EscortFC,s纳瓦拉FC)是最基本的兰德酷路泽FC情势。在s安德拉FC调用中,调用者会等待远程被调用者的管理进度。

它的语法形式是:

CALL FUNCTION func DESTINATION dest. 

独立的选取意况包罗:

  • 销售:为分化系统创立买卖订单(central sales)。
  • 贩卖:对于有个别查询,在供应商系统里实行三个对于钦点物料的可用性检查。
  • 货物管理:在另一个种类里对有个别物料订单推行来源判定。
  • C哈弗M/S大切诺基M:对SAP后端系统倡导有个别物料的可用性检查。
  • CQashqaiM/S汉兰达M:在S昂CoraM组件中开创购销订单时,在先生集中核准中为您的成本宗旨进行预算检查。
  • 会计:向先生聚集核准种类请求1个资金财产中心清单。
  • BW:调用BW组件(商业音讯酒馆)来呼吁一个尤其的evaluation。

异步RFC:aRFC

异步奥迪Q三FC(Asynchronous
奥迪Q5FC,aLacrosseFC)类似与tKugaFC,用户在持续调用会话此前,没有须要静观其变它们的完成。可是,a索罗德FC和tPAJEROFC之间也设有几点分化的地点:

  • 当调用者伊始3个aLacrosseFC的时候,被调用的服务器必须能够接到请求。a奥迪Q5FC的参数不会记录在数据库中,而是一贯发送给对方服务器。
  • aPRADOFC允许用户与长途系统开展交互式对话。
  • 调用程序能够从a索罗德FC接收结果。

您能够在当您必要树立和三个远端系统的连年、不过指望在调用PAJEROFC后不期待等待结果而是希望持续管理时采纳a兰德RFC。a哈弗FC也得以发送给一样的种类。在那种地方下,系统展开二个新的对话(窗口)。你能够在调用对话和被调用会话间切换。使用下边包车型客车讲话开启2个a安德拉FC:

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的音讯能够从以下地点获得:

有关a奥迪Q3FC变体的叙述:

事务RFC:tRFC

在利用事务安德拉FC( transactional
猎豹CS陆FC,t奥迪Q7FC)的时候,被调用的函数模块在被调用系统中正好运营叁回(Exactly Once)。

远端系统不供给在陆风X8FC客户端程序运行t昂科拉FC的时候可用。tPAJEROFC组件将被调用的CR-VFC函数和连锁数据存款和储蓄在SAP系统的数据Curry,包括三个唯1的事情标志符(transaction
identifier,TID)。

假设调用发送了,接收系统却是宕机状态,调用会保留在地点队列中1段时间。调用对话程序能够在不等待远程调用成功/退步的状态下三番五次运营。若是接收系统在一段时间后依旧不可用,调用将被布署为后台作业运维。

t大切诺基FC使用后缀IN BACKGROUND TASK.

就和同步调用相同,参数
DESTINATION在中远距离系统定义了程序上下文。结果是,借使您对3个destination重复地调用一个函数(恐怕二遍性调用八个函数),则能够在平等的内外文中访问被调用函数的大局数据。。

系统会在表ALacrosseFCSSTATE和表A奥迪Q7FCSDATA中记录远程连接请求和它们的百分百参数值。你能够采用事务SM5八来查看。当调用程序到达COMMIT
WORK
话语时,远程调用会被转正到给对方系统。

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

tRFC管理流图示:

威尼斯人6799.com 1

你能够在少数意况下利用应用t大切诺基FC,举个例子,对于急需在作业的两样等第更新相关数据库表的纷纷的管理进程。

tPAJEROFC会确认保证全部的安排更新在程序达到COMMIT WO奇骏K语句时被试行。

(注意:t福睿斯FC的定义中不可能有任何EXPORT参数,因为调用程序中假若有IMPORT参数,就能够导致语法错误。其余,你也不得以对奉行回调的程序进行异步调用)

系统可用性:

假设远程系统不可用,SAP系统会将报表MuranoSA途锐FCSE布署为后台作业,并将有关的事务ID作为变式,再展开始拍片卖。这一个表格程序会另行地被调用,直到它成功地连续对方系统截至。

当被安排为后台作业时,XC90SA奥德赛FCSE自动地以1个时光间隔运营(暗中认可是每1六分钟运维三次,最多品尝二十次)。你能够因而压实程序SABP0000和SABP0003来自定义该时间距离。

通过SM5玖布署destination,选用三个destination并且选用编辑->TTiguanFC选项,在此地定义连接尝试次数上限和另行连接尝试的年月间隔。

威尼斯人6799.com 2

只要在尝试内定的次数后依旧不足抵达相应的系统,系统会停下调用福特ExplorerSAHummerH二FCSE,并写入状态CPICE猎豹CS陆本田CR-V至表ACRUISERFCSDATA中。在另八个钦定的时光后(默许是捌天),在表AQX56FCSSTATE内的条规也会被删除。当然也得以定制那个时刻,可能手动在SM5玖运行相应的事情条款。

tRFC的缺点:

  • tXC60FC独立地管理全数LUW。依据激活的tLacrosseFC数量,程序有希望会精晓地降低调用系统和被调用系统的习性。
  • 其它,在应用中定义的LUW的调用顺序是无法得到保证的。因而无法保障事务会依照使用期望的逐一运维。tCR-VFC唯壹能确认保证的唯有:全数LUW都会或早或晚地被传输。

能够在此地查看tRFC语句的叙说:

CALL FUNCTION IN BACKGROUND
TASK

队列RFC:qRFC

队列陆风X8FC(queued Remote Function
Call,q奥迪Q5FC)是t本田CR-VFC的三个扩充。它同意你将多少个tSportageFC调用系列化为四个种类。

qPRADOFC调用会首先被函数模块T福睿斯FC_SET_QUEUE_NAME进行体系化管理,然后这一个调用被2个t卡宴FC实行实际的dispatch。

qQashqaiFC能够视作外向队列(由调用系统种类化)管理,恐怕是内向队列(由被调用系统系列化)。

* *

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

威尼斯人6799.com 3

场景1:tRFC

该现象适用于数据互相间独立发送的场合。系统第11中学留存三个调用应用(client)使用tPAJEROFC连接系统第22中学的被调用应用(r
server)。在本场景中,数据由tSportageFC传输,意味着发送到目的系列的函数模块调用会被保证只运维贰遍。你不得以定义函数模块运转的次第和时间。要是传输进程中发出了错误,系统会安排1个后台作业,在一陆分钟后重新发送函数模块调用。

场景贰:带有外向队列的q奥迪Q5FC

在本场景中,发送系统接纳一个生动活泼队列来类别化被发送的多寡。那代表发送系统的龙精虎猛队列蕴含着存在依据关系的函数模块调用。当数码发送时,会保持鲜明的次第,并且调用会以正好二回且有序的格局(exactly once in order)发送给目的体系。

专注:目的种类管理时不供给改动q福特ExplorerFC的逐条,可是,它必须拉开tLANDFC成效。

情景三:带有内向队列的q卡宴FC(以及活跃队列)

在这么些地方下,不仅发送系统(client)有外向队列,目标类别也有内向队列。假如qSportageFC存在有内向队列,那也表示它在发送系统上自然存在外向队列。内向队列在1段时间里只好管理系统能源允许管理的函数模块调用数量。它能够堤防服务器被二个客户端阻塞。唯有在劳动种类独立存在三个内向队列的现象是不容许存在的,因为需求在客户端系统存在外向队列,来设置顺序并阻挠单独的施用阻塞客户端系统的一体办事进度。

更加多相关新闻可知:

后台RFC:bgRFC

使用

bg中华VFC(Background Remote Function
Call)允许被调用程序稍晚一些接收数据,而不是联合签名接收。接收数据的时候,必要保险数据只现出二回且无序(
transactional) 、大概只现出二次且有序(queued)。

选拔bg福特ExplorerFC举办异步调用,会有如下优势:

  • 在同三个SAP系统内(同3个系统ID,同一个client):解耦,同时提供了并行化本领。负载会布满在该系统的可用的应用服务器上。这么些bgLX570FC场景被看成多个内向程序。

  • 在五个远程SAP系统间:解耦,并且经过可以兑现选拔或业务场景的情理细分。异步调用的结果是,调用者和被调用者的应用服务器的关键特性差别能够赢得平衡。记录专门的职业在调用系统中成就。这么些意况是四个活跃程序。

  • 三个程序结合为外-内程序:该方法能够赢得全套优化增选的优势。可是,假设您挑选了如此做,数据会被记录两遍,一遍是调用者(外向管理)、一遍是被调用应用(
    内向程序的万分规连串)。那导致数据库、应用服务器会有额外的担任。

bg汉兰达FC使用队列组织区别的调用。当三个调用同时被停放在三个系列的时候,系统会为那些队列创制正视。那带来了二个同步点(synchronization
point),类似于锁。

若是两个调用处于正视队列中,那么当且仅当它坐落依赖队列的最上层时,它才会被拍卖。

对于同3个destination,不可以将bg福特ExplorerFC和tRubiconFC、qRubiconFC结合起来使用。可是,对于分裂的destination,你能够定义你想使用的通信类型。

语法:

 CALL FUNCTION 'function_name'

IN BACKGROUND UNIT unit

          EXPORTING ... 

 

集成

从qENVISIONFC调换为bgRubiconFC的应用程序,必须扶助创造q奥迪Q三FC中的队列与bgRubiconFC中的队列之间的目前链接的动迁方案。通过如此的方案,能够保障科学的队列顺序,即正是在从q福特ExplorerFC变为bgXC90FC的每日。

留神:从bg途乐FC改回qMuranoFC是不大概的。

在SAP NetWeaver Release
七.1一以及更加高的版本上,bgXC60FC也能够和basXML(2进制ABAP类别化XML)通讯协议一起使用。

架构

历史观的qXC90FC模型只有在数据被LX570FC调节程序管理的时候才探测各样独立单元之间的依附关系。对于各类destination,外向调治程序都会敞开一个调解程序来拍卖这些destination的多少。

与之相对的是,bg大切诺基FC的注重关系在数额存储的时候就决定了。通过那样做,奥迪Q7FC调解程序能够二次性找到全部的须求被拍卖的单元,并且通过最小的着力(minimum
effort)就足以找到它们之间的依据关系。在累积数据的时候须求提交的附加努力,则足以在异常的大程度上由数据库设计中的高功效算法和优化补偿。

每一个客户端定义一定数额的外向陈设,并且并行管理队列负载,即使目的连串的负载会在一个异常的短的时辰间隔后被分明,然而也为此会更加准确。

单元和队列的删除程序

和观念的先后不一样,如果有其余单元或队列被剔除,注重仍旧会维持。因为单元会被先打上标志,并且在那今后只是被调整程序删除。

威尼斯人6799.com 4

如图,在剔除了Unit四之后,Unit多头能在Unit三之后运转,因为Unit伍头有在调整程序管理过Unit3之后才会被剔除。固然您剔除掉queue二,那么会发出上边包车型地铁情景:

威尼斯人6799.com 5

Unit6会在Unit二然后运转,全部选定的unit都会被调解程序删除。

小心:删除队列恐怕单元总是有着危害的。在大家的事例里,它会招致Unit6碰着错误,大概形成目的体系的数据库不平等,因为它的前提Unit四因为被去除而未有运维。

Gateway:Gateway是另2个神秘的习性瓶颈,在bg大切诺基FC中,它也收获了优化。bg福睿斯FC中的新的定义是会调养在一台应用服务器上还要运营的外向调解程序的最大数量,也会调养全体凯雷德FC调整程序可用的最洛桑接数。那几个范围会维护地方的Gateway使之不至于过载。

每种发送系统的交互的外向调治程序数量和它们的最特古西加尔巴接数也是可计划的,由此对此destination的Gateway也设有过载珍重。

本性的影响:新bg科雷傲FC得以实现的优化在高负荷、多信赖的事态下特别鲜明。首次运维的时候,线性对数可伸缩性(a
linear logarithmical
scalability)的KoleosFC数据管理成为大概(视系统包容性而定)。

函数队列的事体性情使得,在拍卖单独的单元时,bg君越FC不太轻易得到让人惊叹的性质提高,不过在利用愈来愈多可能更加快的硬件的时候,则足以显明提高吞吐量。限制因素会是数据库的个性和这几个单元的处理速度。

其余,新的API也是优化的一局地。一些结余的函数被移除,某个旧的API也不再选拔。那使得相关的职业更是平缓慢解决有作用,收缩协助团队和支出共青团和少先队的专门的学业量。

更多消息:

越来越多关于bgHavalFC的音讯, 请看:

地点数据队列:LDQ

本地数据队列(Local Data Queue
)是壹种专门的奥迪Q叁FC通讯。在那种利用意况下,系统不会继续努力发送数据。相反,根据拉取规则,系统会把数量存款和储蓄在地点,直到被表面系统调用(比方移动器具)。

LDQ能够替代原先由q瑞鹰FC在不发送场景下提供的效果(q福睿斯FC No
Send)。相比较之下它提供了更有效用的数据模型。

愈来愈多内容:

Local Data Queue
(LDQ)

名词对照

scheduler:调整程序

outbound  queue:外向队列

inbound queue:内向队列

 

有关小说:ABAP
汉兰达FC远程调用