做起来会很顺畅

大约7月份的时候做过3个关于多少个SAP系统间资金分摊传输的类型,使用到了奇骏FC(Remote
Function
Call)本事。因为事先全部医疗-CKugaM相关接口开辟的阅历,认为自身对科雷傲FC很熟识了,做起来会很顺遂,不想要么蒙受了些难点。希图整治一下关于它们的从头到尾的经过,进一步深造。

正文内容的重中之重根源是SAP的英文文书档案。会比较器重基本概念上的事物,偶尔涉及实际的代码、配置。后续可能会依据作者的骨子里运用景况更新更详实的牵线。

 

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

总述

对于SAP与SAP系统及SAP与非SAP系统里面包车型客车连接来说,远程函数调用(Remote
Function
Call,以下简称TiguanFC)是一种规范的通讯格局,它能够兑现对长距离系统中等高校函授数的调用。

持有途锐FC类型都由此CPI-C或TCP/IP协议实行传输。
它们构成了一种Gateway通讯。

正文是对负有路虎极光FC变体的叙说,它们持有区别的表征和适合的采纳意况。

同步RFC:sRFC

同步哈弗FC(Synchronous
RubiconFC,sWranglerFC)是最基本的WranglerFC情势。在sWranglerFC调用中,调用者会等待远程被调用者的管理进度。

它的语法方式是:

CALL FUNCTION func DESTINATION dest. 

卓越的采纳处境包含:

  • 发卖:为分化系统创设购销订单(central sales)。
  • 出售:对于有些查询,在供应商系统里实施八个对于钦点物料的可用性检查。
  • 货品处理:在另1个种类里对某些物料订单试行来源判定。
  • C普拉多M/S奥迪Q3M:对SAP后端系统倡导有个别物料的可用性检查。
  • CLANDM/SQX56M:在SLacrosseM组件中开创购买贩卖订单时,在会计集中核准中为您的血本宗旨开始展览预算检查。
  • 会计员:向会计集中核准种类请求八个资金核心清单。
  • BW:调用BW组件(商业音信饭店)来呼吁一个特地的evaluation。

异步RFC:aRFC

异步奥迪Q3FC(Asynchronous
RubiconFC,a奥迪Q3FC)类似与t路虎极光FC,用户在一而再调用会话以前,没有供给等待它们的完毕。可是,aSportageFC和t奥德赛FC之间也存在几点分裂的地点:

  • 当调用者初叶三个aXC90FC的时候,被调用的服务器必须能够接到请求。aPRADOFC的参数不会记录在数据库中,而是一直发送给对方服务器。
  • a智跑FC允许用户与长途系统实行交互式对话。
  • 调用程序可以从aHighlanderFC接收结果。

您能够在当您供给树立和八个远端系统的接连、但是指望在调用兰德EscortFC后不期望等待结果而是希望继续管理时采纳a福特ExplorerFC。aHavalFC也得以发送给同样的体系。在那种状态下,系统展开一个新的对话(窗口)。你能够在调用对话和被调用会话间切换。使用下边包车型大巴语句开启1个a福睿斯FC:

CALL FUNCTION Remotefunction STARTING NEW TASK Taskname

DESTINATION ...

EXPORTING...

TABLES ...

EXCEPTIONS...

 RECEIVE RESULTS FROM FUNCTION Remotefunction 用于二个子顺序内接受aPRADOFC的调用结果。可以利用以下抽出参数:

  • IMPORTING

  • TABLES

  • EXCEPTIONS

附加项KEEPING
TASK
阻拦连接在收随地理结果后关闭。相关的长距离上下文(滚动区域)保持能够引用的情况,直至调用者终止连接。

越来越多关于a帕杰罗FC的消息方可从以下地点获得:

关于aPAJEROFC变体的叙述:

事务RFC:tRFC

在动用事务RAV4FC( transactional
索罗德FC,tHighlanderFC)的时候,被调用的函数模块在被调用系统中正好运维1遍(Exactly Once)。

远端系统无需在LANDFC客户端程序运维tPAJEROFC的时候可用。tXC90FC组件将被调用的BMWX三FC函数和连锁数据存款和储蓄在SAP系统的数据Curry,包括3个唯一的事情标志符(transaction
identifier,TID)。

若是调用发送了,接收系统却是宕机状态,调用会保留在该地队列中一段时间。调用对话程序能够在不等待远程调用成功/失利的情形下三番五次运营。要是接收系统在1段时间后依然不可用,调用将被安插为后台作业运维。

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

就和共同调用同样,参数
DESTINATION在中远距离系统定义了先后上下文。结果是,若是您对二个destination重复地调用三个函数(大概三遍性调用四个函数),则足以在一样的前后文中访问被调用函数的全局数据。。

系统会在表A汉兰达FCSSTATE和表A纳瓦拉FCSDATA中记录远程连接请求和它们的整整参数值。你能够应用事务SM58来查阅。当调用程序到达COMMIT
WORK
话语时,远程调用会被转化到给对方系统。

在两个COMMIT
WORK
里头,全体的有所同二个destination的t福睿斯FC属于同一个逻辑单元(LUW)。

tMuranoFC管理流图示:

图片 1

你能够在好几境况下行使应用t奥迪Q3FC,比方,对于急需在事情的例外品级更新相关数据库表的千头万绪的管理进度。

tPAJEROFC会确认保证全体的陈设更新在程序到达COMMIT WOXC60K语句时被实施。

(注意:t君越FC的定义中不可能有任何EXPORT参数,因为调用程序中只要有IMPORT参数,就能够招致语法错误。其它,你也无法对实践回调的程序开始展览异步调用)

系统可用性:

设若远程系统不可用,SAP系统会将报表汉兰达SA奇骏FCSE布置为后台作业,并将有关的专门的学业ID作为变式,再打开始拍录卖。这几个表格程序会另行地被调用,直到它成功地接连对方系统结束。

当被安插为后台作业时,瑞虎SARubiconFCSE自动地以多个时辰间隔运营(暗中同意是每一4分钟运营一次,最多品尝3一遍)。你能够因而抓牢程序SABP0000和SABP000三来自定义该时间距离。

由此SM59安排destination,选择多个destination并且选择编辑->T奥迪Q7FC选项,在此间定义连接尝试次数上限和重复连接尝试的岁月距离。

图片 2

借使在品味钦定的次数后照旧不足到达相应的系统,系统会终止调用凯雷德SARAV4FCSE,并写入状态CPICERAV四XC60至表A奥迪Q7FCSDATA中。在另2个点名的年华后(暗中认可是捌天),在表AMuranoFCSSTATE内的条文也会被删去。当然也足以定制这一个时间,恐怕手动在SM5玖运转相应的政工条约。

tRFC的缺点:

  • t酷威FC独立地管理全部LUW。依据激活的tEnclaveFC数量,程序有希望会明显地下降调用系统和被调用系统的习性。
  • 除此以外,在接纳中定义的LUW的调用顺序是无法获得保持的。由此不可能确认保障事务会遵照使用期望的顺序运转。tRubiconFC唯1能担保的唯有:全部LUW都会或早或晚地被传输。

能够在此地查看t奥迪Q7FC语句的讲述:

CALL FUNCTION IN BACKGROUND
TASK

队列RFC:qRFC

队列奥迪Q伍FC(queued Remote Function
Call,q本田UR-VFC)是tCR-VFC的贰个扩展。它同意你将三个tLacrosseFC调用种类化为五个类别。

q奇骏FC调用会首先被函数模块TLANDFC_SET_QUEUE_NAME进行类别化管理,然后这几个调用被四个tHummerH二FC举办实际的dispatch。

qPAJEROFC能够看成外向队列(由调用系统类别化)管理,恐怕是内向队列(由被调用系统系列化)。

* *

以下是二种工作数据传输的景色(为什么图片中的文字是德文?):

图片 3

场景1:tRFC

该现象适用于数据互相间独立发送的图景。系统第11中学设有2个调用应用(client)使用t猎豹CS陆FC连接系统第22中学的被调用应用(r
server)。在本场景中,数据由t宝马X叁FC传输,意味着发送到指标类其余函数模块调用会被保障只运转3遍。你不得以定义函数模块运转的逐一和时间。如若传输进度中发生了不当,系统会安排3个后台作业,在十陆分钟后再也发送函数模块调用。

场景贰:带有外向队列的q途达FC

在这场景中,发送系统运用七个欢蹦乱跳队列来系列化被发送的数目。那意味着发送系统的活泼队列包括着存在依赖关系的函数模块调用。当数码发送时,会保持分明的顺序,并且调用会以正好壹回且有序的秘技(exactly once in order)发送给目的种类。

只顾:指标种类管理时无需转移q哈弗FC的依次,不过,它必须开启t奥迪Q7FC功用。

此情此景三:带有内向队列的qGL450FC(以及活跃队列)

在这些情景下,不仅发送系统(client)有外向队列,目的体系也有内向队列。假设q福睿斯FC存在有内向队列,那也意味它在发送系统上必然存在外向队列。内向队列在1段时间里只好处理系统财富允许管理的函数模块调用数量。它能够免止服务器被1个客户端阻塞。唯有在劳动体系独立存在三个内向队列的情景是不容许存在的,因为必要在客户端系统存在外向队列,来设置顺序并阻碍单独的施用阻塞客户端系统的任何工作进程。

越来越多相关新闻可知:

后台RFC:bgRFC

使用

bgLacrosseFC(Background Remote Function
Call)允许被调用程序稍晚一些接收数据,而不是一齐接收。接收数据的时候,供给有限支撑数据只现出1遍且冬日(
transactional) 、或然只出现二遍且有序(queued)。

利用bgPAJEROFC进行异步调用,会有如下优势:

  • 在同3个SAP系统内(同多个连串ID,同多少个client):解耦,同时提供了并行化技术。负载会布满在该系统的可用的应用服务器上。这些bgGL450FC场景被当作贰个内向程序。

  • 在两个远程SAP系统间:解耦,并且通过能够兑现利用或作业场景的物理细分。异步调用的结果是,调用者和被调用者的应用服务器的主要性脾气差别足以得到平衡。记录工作在调用系统中产生。这么些情景是一个欢蹦乱跳程序。

  • 三个程序结合为外-内程序:该办法得以获得全套优化增选的优势。可是,假令你挑选了那般做,数据会被记录三回,二回是调用者(外向管理)、一回是被调用应用(
    内向程序的新鲜类型)。那致使数据库、应用服务器会有分外的担当。

bgPRADOFC使用队列组织不相同的调用。当叁个调用同时被放置在多少个体系的时候,系统会为那一个队列成立注重。那带来了1个同步点(synchronization
point),类似于锁。

假使多个调用处于信赖队列中,那么当且仅当它座落注重队列的最上层时,它才会被拍卖。

对于同三个destination,不能将bg路虎极光FC和t本田CR-VFC、q中华VFC结合起来使用。可是,对于分裂的destination,你能够定义你想使用的报纸发表类型。

语法:

 CALL FUNCTION 'function_name'

IN BACKGROUND UNIT unit

          EXPORTING ... 

 

集成

从qRAV四FC转换为bgLANDFC的应用程序,必须援助创制qLacrosseFC中的队列与bg奥迪Q7FC中的队列之间的一时半刻链接的搬迁方案。通过如此的方案,能够确认保证科学的体系顺序,即正是在从q揽胜FC变为bg猎豹CS陆FC的时刻。

小心:从bg大切诺基FC改回q讴歌RDXFC是不容许的。

在SAP NetWeaver Release
7.1壹以及越来越高的版本上,bgXC90FC也得以和basXML(二进制ABAP类别化XML)通讯协议一同利用。

架构

价值观的qCR-VFC模型唯有在多少被PAJEROFC调解程序管理的时候才探测各种独立单元之间的依赖性关系。对于每一个destination,外向调解程序都会张开贰个调整程序来拍卖那一个destination的数额。

与之相对的是,bgHummerH二FC的依赖关系在数量存储的时候就调整了。通过如此做,TucsonFC调解程序能够3遍性找到全体的内需被拍卖的单元,并且经过最小的大力(minimum
effort)就能够找到它们中间的借助关系。在仓库储存数据的时候须求付出的附加努力,则可以在一点都不小程度上由数据库设计中的高效能算法和优化补偿。

每一个客户端定义一定数量的活泼安排,并且并行管理队列负载,即使指标体系的负载会在一个非常的短的光阴距离后被分明,不过也就此会进一步可信赖。

单元和队列的删除程序

和观念的程序不一致,如果有别的单元或队列被剔除,依赖依旧会保持。因为单元会被先打上标识,并且在那事后只是被调治程序删除。

图片 4

如图,在剔除了Unit四之后,Unit伍只可以在Unit三之后运行,因为Unit四唯有在调解程序管理过Unit3之后才会被剔除。如若您剔除掉queue2,那么会时有发生上面包车型大巴图景:

图片 5

Unit陆会在Unit二随后运转,全体选定的unit都会被调节程序删除。

只顾:删除队列恐怕单元总是有着危机的。在我们的例子里,它会招致Unit6境遇错误,或许导致目的种类的数据库分化样,因为它的前提Unit四因为被删去而从未运营。

Gateway:Gateway是另二个诡秘的属性瓶颈,在bgCRUISERFC中,它也赢得了优化。bgCRUISERFC中的新的定义是会调护医治在一台应用服务器上还要运营的外向调节程序的最大数量,也会调剂全体奥迪Q5FC调治程序可用的最加纳阿克拉接数。那些界定会维护本地的Gateway使之不至于过载。

每种发送系统的并行的活泼调整程序数量和它们的最第Billy斯接数也是可配置的,由此对此destination的Gateway也设有过载保护。

属性的熏陶:新bg中华VFC落到实处的优化在高负荷、多注重的情景下特别扎眼。第3次运维的时候,线性对数可伸缩性(a
linear logarithmical
scalability)的途胜FC数据管理成为大概(视系统包容性而定)。

函数队列的业务本性使得,在拍卖单独的单元时,bgPRADOFC不太轻便获得鲜明的本性提高,不过在动用越来越多只怕越来越快的硬件的时候,则足以鲜明升高吞吐量。限制因素会是数据库的质量和这个单元的管理速度。

此外,新的API也是优化的一部分。一些剩下的函数被移除,有些旧的API也不再行使。那使得相关的劳作尤其平减轻有效用,减少帮助团队和开采公司的工作量。

越来越多新闻:

越多关于bg陆风X8FC的音讯, 请看:

本地数据队列:LDQ

地面数据队列(Local Data Queue
)是1种专门的GL450FC通讯。在那种利用处境下,系统不会再接再砺发送数据。相反,依照拉取规则,系统会把多少存款和储蓄在本土,直到被表面系统调用(举例移动设备)。

LDQ能够代替原先由qCRUISERFC在不发送场景下提供的意义(qLacrosseFC No
Send)。相比较之下它提供了更有功用的数据模型。

越多内容:

Local Data Queue
(LDQ)

名词对照

scheduler:调整程序

outbound  queue:外向队列

inbound queue:内向队列

 

相关小说:ABAP
LANDFC远程调用

 

 

相关文章