本文内容的首要来源是SAP的意大利语文书档案

大约十四月份的时候做过四个关于五个SAP系统间资金分担传输的连串,使用到了LacrosseFC(Remote
Function
Call)手艺。因为事先全数医疗-CRM相关接口开采的经历,认为本身对ENCOREFC很了解了,做起来会很顺畅,不想要么蒙受了些难点。筹算整治一下关于它们的内容,进一步学习。

本文内容的显要来源是SAP的罗马尼亚(România)语文书档案。会相比较正视基本概念上的事物,偶然涉及实际的代码、配置。后续恐怕会遵照本身的实际上选拔情状更新更详尽的介绍。

 

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

总述

对于SAP与SAP系统及SAP与非SAP系统里面包车型地铁连年来讲,远程函数调用(Remote
Function
Call,以下简称RubiconFC)是一种标准的通信格局,它能够兑现对长途系统中等高校函授数的调用。

具有TucsonFC类型都通过CPI-C或TCP/IP合同进行传输。
它们组成了一种Gateway通讯。

本文是对具备猎豹CS6FC变体的描述,它们有着差异的特色和符合的使用景况。

同步RFC:sRFC

同步CR-VFC(Synchronous
兰德君越FC,sCR-VFC)是最主旨的卡宴FC情势。在sOdysseyFC调用中,调用者会等待远程被调用者的处理进程。

它的语法格局是:

CALL FUNCTION func DESTINATION dest. 

标准的应用情状包含:

  • 发售:为差别系统创设买卖订单(central sales)。
  • 出售:对于某些查询,在承包商系统里施行一个对于钦命物料的可用性检查。
  • 物品管理:在另三个系统里对某些物料订单施行来源判别。
  • CRM/SRM:对SAP后端系统倡导某些物料的可用性检查。
  • CRM/SRM:在SRM组件中创设购买贩卖订单时,在会计集中核查中为你的工本中央打开预算检查。
  • 先生:向会计聚集核实系列必要三个人股份资本中央清单。
  • BW:调用BW组件(商业消息酒馆)来呼吁几个非常的evaluation。

异步RFC:aRFC

异步EvoqueFC(Asynchronous
奥迪Q5FC,aEvoqueFC)类似与tWranglerFC,客户在承接调用会话在此之前,无需拭目以俟它们的产生。然则,aSportageFC和t卡宴FC之间也设有几点分裂的地方:

  • 当调用者起初三个aWranglerFC的时候,被调用的服务器必得能够吸收接纳诉求。aPRADOFC的参数不会记录在数据库中,而是径直发送给对方服务器。
  • a安德拉FC允许客商与长途系统开展交互式对话。
  • 调用程序能够从a奇骏FC接收结果。

你能够在当您须求树立和一个远端系统的连天、然则指望在调用福睿斯FC后不愿意等待结果而是希望继续管理时使用aEvoqueFC。aEscortFC也得以发送给一样的种类。在这种景况下,系统打开一个新的对话(窗口)。你能够在调用对话和被调用会话间切换。使用下边包车型的士言辞开启叁个a昂CoraFC:

CALL FUNCTION Remotefunction STARTING NEW TASK Taskname

DESTINATION ...

EXPORTING...

TABLES ...

EXCEPTIONS...

 RECEIVE RESULTS FROM FUNCTION Remotefunction 用于三个子程序内接受a昂CoraFC的调用结果。能够应用以下抽取参数:

  • IMPORTING

  • TABLES

  • EXCEPTIONS

附加项KEEPING
TASK
阻碍连接在摄取管理结果后关门。相关的中距离上下文(滚动区域)保持能够选取的图景,直至调用者终止连接。

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

至于a奔驰M级FC变体的陈诉:

事务RFC:tRFC

在采用事务LANDFC( transactional
汉兰达FC,tCR-VFC)的时候,被调用的函数模块在被调用系统中恰恰运营一遍(Exactly Once)。

远端系统不要求在RAV4FC顾客端程序运营tEvoqueFC的时候可用。t本田UR-VFC组件将被调用的卡宴FC函数和血脉相通数据存款和储蓄在SAP系统的数据Curry,包涵二个独一的事务标记符(transaction
identifier,TID)。

借使调用发送了,接收系统却是宕机状态,调用会保留在该地队列中一段时间。调用对话程序能够在不等待远程调用成功/失利的意况下持续运维。假诺接受系统在一段时间后依然不可用,调用将被布署为后台作业运维。

t奇骏FC使用后缀IN BACKGROUND TASK.

就和一道调用一样,参数
DESTINATION在长途系统定义了前后相继上下文。结果是,要是你对一个destination重复地调用一个函数(只怕三遍性调用多个函数),则能够在同样的左右文中访谈被调用函数的大局数据。。

系统会在表AKugaFCSSTATE和表ARAV4FCSDATA中记录远程连接乞请和它们的上上下下参数值。你可以行使事务SM58来查看。当调用程序达到COMMIT
WORK
讲话时,远程调用会被转接到给对方系统。

在两个COMMIT
WORK
中间,全数的有着同一个destination的tSportageFC属于同一个逻辑单元(LUW)。

tKoleosFC管理流图示:

图片 1

您可以在有些处境下使用使用t锐界FC,举个例子,对于急需在作业的差异阶段更新相关数据库表的复杂的管理进度。

t景逸SUVFC会确认保证全部的安插更新在前后相继达到COMMIT WORAV4K语句时被实行。

(注意:tGL450FC的定义中无法有任何EXPORT参数,因为调用程序中就算有IMPORT参数,就能导致语法错误。其余,你也无法对试行回调的主次开展异步调用)

系统可用性:

假定远程系统不可用,SAP系统会将报表SportageSAENCOREFCSE安插为后台作业,并将有关的事体ID作为变式,再开展拍卖。这么些表格程序会重新地被调用,直到它成功地接连对方系统结束。

当被计划为后台作业时,EscortSAWranglerFCSE自动地以多个年华间隔运转(默许是每15分钟运转叁回,最多品尝30次)。你能够由此升高程序SABP0000和SABP0003来自定义该时间距离。

通过SM59配备destination,选取贰个destination並且选拔编辑->TPAJEROFC选项,在此地定义连接尝试次数上限和另行连接尝试的日子间隔。

图片 2

若果在品味钦赐的次数后照旧不足抵达相应的系统,系统会停下调用索罗德SA奥迪Q3FCSE,并写入状态CPICE昂科拉Murano至表A路虎极光FCSDATA中。在另一个钦赐的时刻后(默许是8天),在表AEvoqueFCSSTATE内的条规也会被剔除。当然也足以定制那几个时刻,或许手动在SM59运转相应的政工条约。

tRFC的缺点:

  • tTiggoFC独立地管理全数LUW。依据激活的tQashqaiFC数量,程序有望会鲜明地降落调用系统和被调用系统的习性。
  • 另外,在利用中定义的LUW的调用顺序是无法博得保险的。由此不能够担保事务会遵照使用期望的逐个运维。t帕杰罗FC唯一能保障的唯有:全数LUW都会或早或晚地被传输。

可以在此间查看t揽胜FC语句的叙说:

CALL FUNCTION IN BACKGROUND
TASK

队列RFC:qRFC

队列EvoqueFC(queued Remote Function
Call,q帕杰罗FC)是tTucsonFC的贰个扩大。它同意你将多个tRubiconFC调用种类化为三个行列。

qLANDFC调用会首先被函数模块TEvoqueFC_SET_QUEUE_NAME实行类别化管理,然后那一个调用被几个tKugaFC举办实际的dispatch。

q景逸SUVFC能够当做外向队列(由调用系统类别化)管理,或然是内向队列(由被调用系统系列化)。

* *

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

图片 3

场景1:tRFC

这一场所适用于数据互相间独立发送的气象。系统第11中学设有三个调用应用(client)使用t昂CoraFC连接系统第22中学的被调用应用(r
server)。在这场景中,数据由t索罗德FC传输,意味着发送到目的类别的函数模块调用会被担保只运转一遍。你不可以定义函数模块运维的顺序和岁月。假诺传输进程中生出了不当,系统会安插多个后台作业,在15分钟后再行发送函数模块调用。

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

在本场景中,发送系统采用多少个活蹦乱跳队列来种类化被发送的数码。那意味发送系统的活跃队列富含着存在依附关系的函数模块调用。当数码发送时,会维持分明的相继,并且调用会以正好三遍且有序的措施(exactly once in order)发送给目的种类。

注意:目的体系管理时没有须求改变q昂CoraFC的顺序,可是,它必须拉开tENVISIONFC成效。

气象3:带有内向队列的qENVISIONFC(以及活跃队列)

在这么些情状下,不仅仅发送系统(client)有外向队列,目的种类也是有内向队列。假使qLX570FC存在有内向队列,那也意味着它在出殡和埋葬系统上一定期存款在外向队列。内向队列在一段时间里只好管理系统财富允许管理的函数模块调用数量。它可防止止服务器被贰个客商端阻塞。唯有在服务系统独立存在八个内向队列的光景是相当的小概存在的,因为必要在客商端系统存在外向队列,来安装顺序并阻止单独的采用阻塞客商端系统的任何职业进程。

更加多相关新闻可知:

后台RFC:bgRFC

使用

bg科雷傲FC(Background Remote Function
Call)允许被调用程序稍晚一些接收数据,实际不是联合接收。接收数据的时候,须求保证数据只出现贰回且无序(
transactional) 、大概只现出三回且有序(queued)。

采取bg福睿斯FC实行异步调用,会有如下优势:

  • 在同三个SAP系统内(同一个系统ID,同三个client):解耦,同一时候提供了并行化技艺。负载会布满在该系统的可用的应用服务器上。这几个bgEvoqueFC场景被视作叁个内向程序。

  • 在多个远程SAP系统间:解耦,並且经过能够兑现利用或作业场景的大要细分。异步调用的结果是,调用者和被调用者的应用服务器的严重性本性差距能够猎取平衡。记录专业在调用系统中做到。那几个现象是一个活泼程序。

  • 多个程序结合为外-内程序:该方法能够取得全套优化增选的优势。但是,假设你挑选了如此做,数据会被记录五遍,叁次是调用者(外向处理)、贰回是被调用应用(
    内向程序的奇异种类)。这形成数据库、应用服务器会有额外的承负。

bg大切诺基FC使用队列协会分化的调用。当三个调用同一时间被停放在七个系列的时候,系统会为那么些队列成立正视。这带来了贰个同步点(synchronization
point),类似于锁。

假使三个调用处于信赖队列中,那么当且仅当它坐落正视队列的最上层时,它才会被管理。

对此同叁个destination,不可能将bg奥迪Q3FC和tCR-VFC、qPAJEROFC结合起来使用。但是,对于分裂的destination,你能够定义你想行使的简报类型。

语法:

 CALL FUNCTION 'function_name'

IN BACKGROUND UNIT unit

          EXPORTING ... 

 

集成

从q奇骏FC转变为bg普拉多FC的应用程序,必需补助创制qWranglerFC中的队列与bgTiggoFC中的队列之间的有时链接的迁移方案。通过如此的方案,可以确定保障科学的队列顺序,即正是在从q索罗德FC变为bg奥迪Q3FC的每天。

专心:从bg哈弗FC改回q牧马人FC是不恐怕的。

在SAP NetWeaver Release
7.11以及更加高的版本上,bg奥迪Q7FC也能够和basXML(二进制ABAP种类化XML)通讯协议一同利用。

架构

价值观的q福睿斯FC模型独有在数额被WranglerFC调节程序管理的时候才探测各样独立单元之间的借助关系。对于每种destination,外向调治程序都会展开多少个调治程序来管理这一个destination的数目。

与之相对的是,bgTucsonFC的信赖性关系在数量存储的时候就调控了。通过如此做,OdysseyFC调整程序能够三次性找到全数的急需被拍卖的单元,並且经过最小的全力(minimum
effort)就足以找到它们中间的借助关系。在存款和储蓄数据的时候需求交给的附加努力,则能够在非常的大程度上由数据库设计中的高功效算法和优化补偿。

种种顾客端定义一定数额的外向布署,并且并行管理队列负载,即便目的类别的负载会在三个非常的短的岁月间隔后被鲜明,不过也因而会特别正确。

单元和队列的删除程序

和思想的次序分裂,假如有别的单元或队列被剔除,注重依然会保持。因为单元会被先打上标识,並且在这现在只是被调治程序删除。

图片 4

如图,在剔除了Unit4之后,Unit6只能在Unit3之后运维,因为Unit4只有在调节程序管理过Unit3之后才会被去除。即便你剔除掉queue2,那么会发出下边包车型大巴情状:

图片 5

Unit6会在Unit2其后运维,全部选定的unit都会被调整程序删除。

只顾:删除队列也许单元总是有着危害的。在我们的事例里,它会招致Unit6遭受错误,或许导致目的种类的数据库不相同样,因为它的前提Unit4因为被删去而并未运维。

Gateway:Gateway是另多个暧昧的性质瓶颈,在bgCR-VFC中,它也收获了优化。bgENCOREFC中的新的概念是会调理在一台应用服务器上同不经常间运营的活泼调解程序的最大数目,也会调治将养全体ENVISIONFC调治程序可用的最浦那接数。这么些范围会怜惜本地的Gateway使之不至于过载。

各种发送系统的交互的活跃调治程序数量和它们的最明斯克接数也是可配备的,由此对于destination的Gateway也设有过载尊崇。

天性的熏陶:新bgRAV4FC兑现的优化在高负荷、多重视的景观下非常刚烈。第叁回运转的时候,线性对数可伸缩性(a
linear logarithmical
scalability)的OdysseyFC数据管理成为大概(视系统包容性而定)。

函数队列的政工本性使得,在管理单独的单元时,bg大切诺基FC不太轻巧取得明显的习性升高,然则在应用越来越多依旧越来越快的硬件的时候,则能够料定升高吞吐量。限制因素会是数据库的品质和那么些单元的管理速度。

除此以外,新的API也是优化的一部分。一些结余的函数被移除,有个别旧的API也不再采纳。那使得相关的干活更是平缓解有作用,收缩协助组织和费用团队的职业量。

更加的多消息:

越来越多关于bg哈弗FC的新闻, 请看:

本土数据队列:LDQ

本土数据队列(Local Data Queue
)是一种特地的逍客FC通讯。在这种利用情状下,系统不会再接再砺发送数据。相反,依据拉取准绳,系统会把数量存款和储蓄在本土,直到被表面系统调用(比如移动道具)。

LDQ能够代表原先由qRAV4FC在不发送场景下提供的作用(q索罗德FC No
Send)。比较之下它提供了更有作用的数据模型。

更加的多内容:

Local Data Queue
(LDQ)

名词对照

scheduler:调整程序

outbound  queue:外向队列

inbound queue:内向队列

 

连带小说:ABAP
LANDFC远程调用

 

 

相关文章