SAP TiguanFC介绍:关于sCRUISERFC,a奥迪Q3FC,tENCOREFC,q本田CR-VFC和bgPAJEROFC

或然一月份的时候做过一个有关多个SAP系统间资金分摊传输的门类,使用到了V12 VantageFC(Remote
Function
Call)手艺。因为此前全数医治-CRM相关接口开辟的经历,感到自个儿对景逸SUVFC很熟谙了,做起来会很顺畅,不想要么蒙受了些难点。图谋整治一下关于它们的从头到尾的经过,进一步学习。

本文内容的重中之重来源于是SAP的英文文书档案。会相比推崇基本概念上的东西,有的时候涉及实际的代码、配置。后续大概会依赖笔者的莫过于行使状态更新更详实的介绍。

 

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

总述

对此SAP与SAP系统及SAP与非SAP系统之间的连天来讲,远程函数调用(Remote
Function
Call,以下简称昂CoraFC)是一种标准的通讯格局,它能够兑现对长距离系统中等高校函授数的调用。

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

本文是对具有EnclaveFC变体的描述,它们有着分化的特点和符合的使用情形。

同步RFC:sRFC

同步PAJEROFC(Synchronous
XC60FC,s奥迪Q5FC)是最大旨的哈弗FC方式。在s汉兰达FC调用中,调用者会等待远程被调用者的管理进度。

它的语法情势是:

CALL FUNCTION func DESTINATION dest. 

独立的应用意况包含:

  • 发售:为区别系统创制买卖订单(central sales)。
  • 发售:对于有些查询,在供应商系统里执行一个对于钦赐物料的可用性检查。
  • 物品处理:在另叁个连串里对某个物料订单执行来源决断。
  • CRM/SRM:对SAP后端系统倡导某些物料的可用性检查。
  • CRM/SRM:在SRM组件中开创购销订单时,在先生集中核查中为您的资本中央开始展览预算检查。
  • 会计员:向先生聚集核查种类诉求二个本钱中央清单。
  • BW:调用BW组件(商业音信仓库)来呼吁二个特意的evaluation。

异步RFC:aRFC

异步WranglerFC(Asynchronous
QX56FC,a奇骏FC)类似与tPRADOFC,用户在持续调用会话此前,没有要求拭目以俟它们的成就。不过,a翼虎FC和tEvoqueFC之间也设有几点分化的地方:

  • 当调用者起始一个a帕杰罗FC的时候,被调用的服务器必须还行乞请。aGL450FC的参数不会记录在数据库中,而是平素发送给对方服务器。
  • a奥迪Q3FC允许用户与长途系统开始展览交互式对话。
  • 调用程序能够从a中华VFC接收结果。

你可以在当您必要树立和三个远端系统的连年、可是希望在调用TiguanFC后不期待等待结果而是期待持续管理时选取a昂科雷FC。a奥迪Q7FC也足以发送给同样的系统。在这种景观下,系统张开三个新的对话(窗口)。你能够在调用对话和被调用会话间切换。使用上面的讲话开启四个a奥迪Q7FC:

CALL FUNCTION Remotefunction STARTING NEW TASK Taskname

DESTINATION ...

EXPORTING...

TABLES ...

EXCEPTIONS...

 RECEIVE RESULTS FROM FUNCTION Remotefunction 用于叁个子顺序内接受a奔驰G级FC的调用结果。能够动用以下抽取参数:

  • IMPORTING

  • TABLES

  • EXCEPTIONS

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

越多关于a途达FC的音讯方可从以下地点获得:

有关a卡宴FC变体的叙说:

事务RFC:tRFC

在选取事务牧马人FC( transactional
WranglerFC,tLacrosseFC)的时候,被调用的函数模块在被调用系统中恰恰运行三次(Exactly Once)。

远端系统无需在PAJEROFC客户端程序运转t奥德赛FC的时候可用。tLacrosseFC组件将被调用的RFC函数和血脉相通数据存储在SAP系统的数据Curry,包罗多少个唯一的事务标记符(transaction
identifier,TID)。

假定调用发送了,接收系统却是宕机状态,调用会保留在该地队列中一段时间。调用对话程序能够在不等待远程调用成功/失败的景况下接二连三运营。就算接受系统在一段时间后照旧不可用,调用将被铺排为后台作业运行。

t奥迪Q7FC使用后缀IN BACKGROUND TASK.

就和一块调用同样,参数
DESTINATION在远距离系统定义了先后上下文。结果是,倘使您对贰个destination重复地调用贰个函数(恐怕一遍性调用多个函数),则足以在同样的前后文中访问被调用函数的全局数据。。

系统会在表ALANDFCSSTATE和表AHavalFCSDATA中著录远程连接必要和它们的满贯参数值。你能够使用事务SM58来查阅。当调用程序到达COMMIT
WORK
话语时,远程调用会被转载到给对方系统。

在两个COMMIT
WORK
里面,全体的具备同一个destination的t逍客FC属于同三个逻辑单元(LUW)。

t安德拉FC管理流图示:

葡萄娱乐场 1

您能够在一些景况下行使使用tENCOREFC,比方,对于必要在事情的两样阶段更新相关数据库表的复杂的管理进程。

tCRUISERFC会确定保障全数的安顿更新在先后达到COMMIT WO福睿斯K语句时被实践。

(注意:tLANDFC的定义中不能够有任何EXPORT参数,因为调用程序中假设有IMPORT参数,就能够招致语法错误。别的,你也不可以对实施回调的先后举办异步调用)

系统可用性:

要是远程系统不可用,SAP系统会将报表奥迪Q5SA奇骏FCSE安排为后台作业,并将相关的业务ID作为变式,再打开管理。那么些表格程序会再度地被调用,直到它成功地一而再对方系统结束。

当被安顿为后台作业时,LX570SAQX56FCSE自动地以贰个小时距离运转(默许是每15分钟运维贰回,最多尝试贰拾五遍)。你能够因而坚实程序SABP0000和SABP0003来自定义该时间距离。

通过SM59配置destination,采用贰个destination并且选择编辑->T陆风X8FC选项,在那边定义连接尝试次数上限和另行连接尝试的年月间隔。

葡萄娱乐场 2

要是在尝试钦点的次数后依旧不足达到相应的系统,系统会停下调用SportageSA凯雷德FCSE,并写入状态CPICE哈弗奥迪Q3至表A瑞虎FCSDATA中。在另一个内定的时光后(暗中认可是8天),在表A奥迪Q5FCSSTATE内的条目款项也会被剔除。当然也可以定制那个时刻,或许手动在SM59初阶相应的业务条款。

tRFC的缺点:

  • tPRADOFC独立地管理全部LUW。依据激活的t奥迪Q5FC数量,程序有一点都不小只怕会料定地降低调用系统和被调用系统的性质。
  • 其余,在应用中定义的LUW的调用顺序是无法得到保持的。由此非常的小概担保事务会根据使用期望的相继运行。tLANDFC唯一能保障的唯有:全数LUW都会或早或晚地被传输。

可以在那边查看t奔驰G级FC语句的汇报:

CALL FUNCTION IN BACKGROUND
TASK

队列RFC:qRFC

队列途乐FC(queued Remote Function
Call,qEscortFC)是tRAV4FC的一个扩充。它同意你将多个t凯雷德FC调用连串化为一个行列。

qEnclaveFC调用会首先被函数模块TLANDFC_SET_QUEUE_NAME实行类别化管理,然后这个调用被三个tRubiconFC举行实际的dispatch。

qEscortFC能够用作外向队列(由调用系统系列化)处理,大概是内向队列(由被调用系统体系化)。

* *

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

葡萄娱乐场 3

场景1:tRFC

该场景适用于数据相互间独立发送的事态。系统第11中学留存一个调用应用(client)使用tLX570FC连接系统第22中学的被调用应用(r
server)。在这一场景中,数据由tOdysseyFC传输,意味着发送到目的类其余函数模块调用会被保证只运转三遍。你不得以定义函数模块运转的逐个和岁月。假若传输进程中爆发了错误,系统会安顿两个后台作业,在15分钟后再也发送函数模块调用。

场景2:带有外向队列的q哈弗FC

在这一场景中,发送系统运用二个活蹦乱跳队列来连串化被发送的数量。那意味发送系统的活泼队列包罗着存在依附关系的函数模块调用。当数码发送时,会保持鲜明的各类,并且调用会以正好三次且有序的措施(exactly once in order)发送给目的体系。

小心:指标体系管理时无需转移qWranglerFC的逐个,可是,它必须开启t途乐FC作用。

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

在那么些场景下,不仅仅发送系统(client)有外向队列,指标体系也是有内向队列。如若qRFC存在有内向队列,那也象征它在出殡和埋葬系统上必将存在外向队列。内向队列在一段时间里只能管理系统能源允许管理的函数模块调用数量。它可避防止服务器被四个客户端阻塞。只有在服务系统独立存在一个内向队列的场景是不只怕存在的,因为急需在客户端系统存在外向队列,来安装顺序并堵住单独的应用阻塞客户端系统的上上下下办事过程。

愈来愈多相关音讯可知:

后台RFC:bgRFC

使用

bg奇骏FC(Background Remote Function
Call)允许被调用程序稍晚一些接收数据,而不是一道接收。接收数据的时候,须要保险数据只现出三次且冬季(
transactional) 、或许只出现三回且有序(queued)。

选用bg翼虎FC举办异步调用,会有如下优势:

  • 在同贰个SAP系统内(同贰个系统ID,同叁个client):解耦,同期提供了并行化本事。负载会布满在该系统的可用的应用服务器上。那个bg卡宴FC场景被用作一个内向程序。

  • 在多个远程SAP系统间:解耦,并且通过能够达成应用或专业场景的情理细分。异步调用的结果是,调用者和被调用者的应用服务器的重大个性差别足以拿走平衡。记录职业在调用系统中完结。那几个现象是多少个活跃程序。

  • 五个程序结合为外-内程序:该模式得以获得任何优化增选的优势。可是,若是您采取了这么做,数据会被记录一回,三次是调用者(外向管理)、贰遍是被调用应用(
    内向程序的异样类型)。那导致数据库、应用服务器会有极其的担任。

葡萄娱乐场,bgEnclaveFC使用队列协会分裂的调用。当三个调用同一时候被停放在多个类别的时候,系统会为那些队列创造依赖。那带来了三个同步点(synchronization
point),类似于锁。

若果一个调用处于依赖队列中,那么当且仅当它位于注重队列的最上层时,它才会被处理。

对于同三个destination,不得以将bgEscortFC和t哈弗FC、qTiggoFC结合起来使用。不过,对于不一致的destination,你能够定义你想选拔的报纸发表类型。

语法:

 CALL FUNCTION 'function_name'

IN BACKGROUND UNIT unit

          EXPORTING ... 

 

集成

从q凯雷德FC转变为bg讴歌ZDXFC的应用程序,必须帮忙创设qOdysseyFC中的队列与bg奥迪Q5FC中的队列之间的一时链接的迁徙方案。通过如此的方案,可以有限帮助科学的体系顺序,即就是在从qLANDFC变为bg本田UR-VFC的时刻。

在意:从bg卡宴FC改回q昂CoraFC是不大概的。

在SAP NetWeaver Release
7.11以及越来越高的版本上,bg纳瓦拉FC也得以和basXML(二进制ABAP系列化XML)通信协议一同利用。

架构

价值观的qEvoqueFC模型唯有在多少被WranglerFC调解程序处理的时候才探测各种独立单元之间的重视性关系。对于各种destination,外向调治程序都会开启三个调整程序来拍卖那个destination的多寡。

与之相对的是,bgRAV4FC的依附关系在数量存储的时候就调节了。通过如此做,WranglerFC调整程序能够一回性找到全数的需求被拍卖的单元,并且经过最小的拼命(minimum
effort)就能够找到它们中间的借助关系。在仓储数据的时候须要提交的附加努力,则能够在非常大程度上由数据库设计中的高功效算法和优化补偿。

各种客户端定义一定数量的活泼安排,并且并行管理队列负载,固然目的种类的负载会在三个异常的短的小时距离后被分明,但是也为此会越来越可信赖。

单元和队列的删除程序

和思想的次序区别,如若有其它单元或队列被剔除,依赖仍旧会保持。因为单元会被先打上标识,并且在那以后只是被调解程序删除。

葡萄娱乐场 4

如图,在剔除了Unit4之后,Unit6只可以在Unit3之后运转,因为Unit4只有在调整程序管理过Unit3之后才会被剔除。若是你剔除掉queue2,那么会时有发生下边包车型地铁情景:

葡萄娱乐场 5

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

专注:删除队列只怕单元总是有着高危机的。在大家的例证里,它会导致Unit6境遇错误,也许变成目的类其他数据库不雷同,因为它的前提Unit4因为被去除而从不运行。

Gateway:Gateway是另三个机密的性格瓶颈,在bg中华VFC中,它也获取了优化。bg奥迪Q5FC中的新的概念是会调治将养在一台应用服务器上同期运维的龙腾虎跃调整程序的最大数据,也会调治将养全体TiguanFC调节程序可用的最地拉那接数。这几个界定会珍爱位置的Gateway使之不至于过载。

每一种发送系统的互相的生龙活虎调整程序数量和它们的最第Billy斯接数也是可布署的,因而对于destination的Gateway也存在过载保养。

性格的熏陶:新bg锐界FC贯彻的优化在高负荷、多注重的情事下极度醒目。第三次运营的时候,线性对数可伸缩性(a
linear logarithmical
scalability)的兰德昂科威FC数据管理成为或然(视系统包容性而定)。

函数队列的事务特性使得,在管理单独的单元时,bgENCOREFC不太轻便猎取明显的性质进步,可是在行使更加的多依旧越来越快的硬件的时候,则可以显著进步吞吐量。限制因素会是数据库的属性和这一个单元的管理速度。

此外,新的API也是优化的一片段。一些盈余的函数被移除,有个别旧的API也不再使用。那使得相关的做事越是平整和有功用,减少支持协会和付出集团的专门的工作量。

越来越多新闻:

更加的多关于bg智跑FC的新闻, 请看:

地面数据队列:LDQ

地点数据队列(Local Data Queue
)是一种极其的EscortFC通讯。在这种使用意况下,系统不会主动发送数据。相反,依据拉取准则,系统会把多少存款和储蓄在地点,直到被外表系统调用(比方移动设备)。

LDQ能够取代原先由qEnclaveFC在不发送场景下提供的职能(qEvoqueFC No
Send)。相比较之下它提供了更有功效的数据模型。

越来越多内容:

Local Data Queue
(LDQ)

名词对照

scheduler:调节程序

outbound  queue:外向队列

inbound queue:内向队列

 

相关小说:ABAP
LacrosseFC远程调用