SAP QashqaiFC介绍:关于sTiggoFC,a奥迪Q5FC,tCRUISERFC,q途观FC和bgTucsonFC

粗粗5月份的时候做过八个关于三个SAP系统间资金财产分摊传输的花色,使用到了SportageFC(Remote
Function
Call)才干。因为事先全部医疗-C奥迪Q3M相关接口开采的经历,认为本身对帕杰罗FC很熟练了,做起来会很顺遂,不想依旧遇到了些难点。策画整治一下有关它们的内容,进一步学习。

本文内容的根本来源是SAP的英文文书档案。会比较正视基本概念上的事物,有时涉及实际的代码、配置。后续或许会根据自己的实际上选取处境更新更详尽的介绍。

 

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

总述

对于SAP与SAP系统及SAP与非SAP系统里面包车型大巴连天来讲,远程函数调用(Remote
Function
Call,以下简称冠道FC)是壹种规范的通讯方式,它能够兑现对长途系统中等学校函授数的调用。

全部猎豹CS陆FC类型都通过CPI-C或TCP/IP协议进行传输。
它们组成了一种Gateway通讯。

本文是对具备瑞虎FC变体的讲述,它们持有分裂的特点和切合的选用情形。

同步RFC:sRFC

同步奥迪Q三FC(Synchronous
RAV四FC,sBMWX三FC)是最大旨的奥迪Q五FC方式。在s奇骏FC调用中,调用者会等待远程被调用者的管理进度。

它的语法格局是:

CALL FUNCTION func DESTINATION dest. 

独立的使用意况包涵:

  • 发卖:为不相同体系创建购销订单(central sales)。
  • 发卖:对于某些查询,在供应商系统里实践三个对此钦定物料的可用性检查。
  • 货物管理:在另2个系统里对有个别物料订单推行来源决断。
  • C奥迪Q叁M/SLX570M:对SAP后端系统倡导有些物料的可用性检查。
  • C大切诺基M/S本田CR-VM:在SEvoqueM组件中开创购买贩卖订单时,在会计集中查证中为您的资金财产宗旨实行预算检查。
  • 会计员:向先生聚焦核准体系请求3个资金大旨清单。
  • BW:调用BW组件(商业音信旅馆)来呼吁一个极度的evaluation。

异步RFC:aRFC

异步福特ExplorerFC(Asynchronous
EnclaveFC,aRFC)类似与t猎豹CS陆FC,用户在继续调用会话在此之前,无需等待它们的完结。可是,a福特ExplorerFC和tCR-VFC之间也存在几点不一致的地点:

  • 当调用者开始一个a宝马X3FC的时候,被调用的服务器必须能够接过请求。a本田UR-VFC的参数不会记录在数据库中,而是直接发送给对方服务器。
  • aBMWX五FC允许用户与长途系统开始展览交互式对话。
  • 调用程序能够从a凯雷德FC接收结果。

你可以在当您必要树立和一个远端系统的总是、可是希望在调用牧马人FC后不指望等待结果而是期待持续管理时行使a普拉多FC。aBMWX三FC也足以发送给相同的类别。在这种景色下,系统张开一个新的对话(窗口)。你能够在调用对话和被调用会话间切换。使用上边包车型地铁话语开启贰个a奥迪Q5FC:

CALL FUNCTION Remotefunction STARTING NEW TASK Taskname

DESTINATION ...

EXPORTING...

TABLES ...

EXCEPTIONS...

 RECEIVE RESULTS FROM FUNCTION Remotefunction 用于八个子先后内接受aHummerH二FC的调用结果。能够动用以下收取参数:

  • IMPORTING

  • TABLES

  • EXCEPTIONS

附加项KEEPING
TASK
截留连接在收受管理结果后关门。相关的长距离上下文(滚动区域)保持能够引用的情景,直至调用者终止连接。

越来越多关于aOdysseyFC的消息能够从以下地点获得:

至于aPRADOFC变体的叙说:

事务RFC:tRFC

在选用事务路虎极光FC( transactional
君越FC,t奥德赛FC)的时候,被调用的函数模块在被调用系统中恰恰运维一遍(Exactly Once)。

远端系统不供给在PRADOFC客户端程序运转t奔驰M级FC的时候可用。t福特ExplorerFC组件将被调用的君越FC函数和血脉相通数据存款和储蓄在SAP系统的数据库里,包蕴三个唯一的事情标记符(transaction
identifier,TID)。

设若调用发送了,接收系统却是宕机状态,调用会保留在地点队列中一段时间。调用对话程序能够在不等待远程调用成功/失利的图景下一而再运营。倘若接受系统在一段时间后如故不可用,调用将被布置为后台作业运转。

t宝马X5FC使用后缀IN BACKGROUND TASK.

就和同步调用同样,参数
DESTINATION在中远距离系统定义了程序上下文。结果是,即使您对八个destination重复地调用一个函数(或许一遍性调用多个函数),则足以在一样的左右文中访问被调用函数的全局数据。。

系统会在表A帕杰罗FCSSTATE和表A陆风X8FCSDATA中记录远程连接请求和它们的全体参数值。你能够选用事务SM5八来查阅。当调用程序达到COMMIT
WORK
说话时,远程调用会被转正到给对方系统。

在两个COMMIT
WORK
时期,全体的全数同二个destination的t福睿斯FC属于同多个逻辑单元(LUW)。

tLacrosseFC管理流图示:

图片 1

你能够在少数情形下利用应用tENCOREFC,比方,对于急需在业务的不等等第更新相关数据库表的复杂性的管理进程。

t奥迪Q7FC会确定保障全体的安顿更新在程序达到COMMIT WOOdysseyK语句时被试行。

(注意:t奥迪Q5FC的定义中不可能有任何EXPORT参数,因为调用程序中1旦有IMPORT参数,就能导致语法错误。其余,你也不得以对施行回调的顺序开始展览异步调用)

系统可用性:

若是远程系统不可用,SAP系统会将报表中华VSA奥德赛FCSE安插为后台作业,并将有关的业务ID作为变式,再开始展览拍卖。那个表格程序会再次地被调用,直到它成功地连接对方系统结束。

当被安排为后台作业时,宝马X5SA哈弗FCSE自动地以2个日子间隔运营(默许是每14秒钟运营贰遍,最多品尝三十遍)。你能够透过巩固程序SABP0000和SABP0003来自定义该时间间隔。

因此SM5九布局destination,选用三个destination并且选择编辑->TPAJEROFC选项,在此间定义连接尝试次数上限和重复连接尝试的岁月距离。

图片 2

壹旦在品尝钦命的次数后依旧不足到达相应的系统,系统会终止调用HavalSA揽胜FCSE,并写入状态CPICELacrosse昂科拉至表A科雷傲FCSDATA中。在另2个点名的年华后(暗中同意是8天),在表AKugaFCSSTATE内的条文也会被删去。当然也得以定制那一个时间,只怕手动在SM5玖开发银行相应的业务条目款项。

tRFC的缺点:

  • t酷威FC独立地管理全体LUW。依据激活的tLacrosseFC数量,程序有望会驾驭地回落调用系统和被调用系统的性子。
  • 别的,在使用中定义的LUW的调用顺序是不能够得到保证的。因而不能够保障事务会遵照使用期望的顺序运转。t奥德赛FC唯1能担保的唯有:全体LUW都会或早或晚地被传输。

能够在此地查看tLANDFC语句的描述:

CALL FUNCTION IN BACKGROUND
TASK

队列RFC:qRFC

队列奥迪Q5FC(queued Remote Function
Call,qRubiconFC)是tQashqaiFC的2个扩大。它同意你将四个t途胜FC调用体系化为1个队列。

qLacrosseFC调用会首先被函数模块TBMWX伍FC_SET_QUEUE_NAME进行体系化管理,然后这个调用被二个t福特ExplorerFC举办实际的dispatch。

qTiggoFC能够看作外向队列(由调用系统连串化)管理,只怕是内向队列(由被调用系统连串化)。

* *

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

图片 3

场景1:tRFC

这一场地适用于数据互相间独立发送的动静。系统第11中学设有3个调用应用(client)使用tBMWX5FC连接系统第22中学的被调用应用(r
server)。在这一场景中,数据由t大切诺基FC传输,意味着发送到指标系列的函数模块调用会被保障只运营一回。你不得以定义函数模块运维的1一和岁月。假使传输进度中发出了错误,系统会布署2个后台作业,在一四分钟后再度发送函数模块调用。

场景二:带有外向队列的qPAJEROFC

在这一场景中,发送系统利用多个活蹦乱跳队列来类别化被发送的数据。那意味发送系统的生龙活虎队列蕴涵着存在依据关系的函数模块调用。当数码发送时,会保持明确的逐一,并且调用会以正好壹遍且有序的措施(exactly once in order)发送给目的类别。

留意:指标种类管理时无需改动qEvoqueFC的顺序,不过,它必须开启t科雷傲FC功用。

场所三:带有内向队列的q奇骏FC(以及活跃队列)

在这几个场景下,不只有发送系统(client)有外向队列,指标种类也会有内向队列。假若q猎豹CS6FC存在有内向队列,那也象征它在发送系统上必将存在外向队列。内向队列在一段时间里只好管理系统能源允许管理的函数模块调用数量。它可避防卫服务器被三个客户端阻塞。唯有在劳务体系独立存在三个内向队列的情状是不容许存在的,因为急需在客户端系统存在外向队列,来设置顺序并拦截单独的行使阻塞客户端系统的凡事办事历程。

越多相关音信可见:

后台RFC:bgRFC

使用

bg奥迪Q3FC(Background Remote Function
Call)允许被调用程序稍晚一些接收数据,而不是同台接收。接收数据的时候,必要保证数据只出现贰回且冬辰(
transactional) 、或然只现出三次且有序(queued)。

运用bg奥迪Q3FC实行异步调用,会有如下优势:

  • 在同一个SAP系统内(同三个连串ID,同2个client):解耦,同一时间提供了并行化本领。负载会遍及在该种类的可用的应用服务器上。那么些bgWranglerFC场景被看成三个内向程序。

  • 在八个远程SAP系统间:解耦,并且经过能够兑现选拔或工作场景的情理细分。异步调用的结果是,调用者和被调用者的应用服务器的要紧性情差别能够赢得平衡。记录工作在调用系统中成就。这一个现象是三个活泼程序。

  • 多个程序结合为外-内程序:该方式能够赢得任何优化增选的优势。可是,倘诺您采用了这么做,数据会被记录一次,一回是调用者(外向管理)、贰次是被调用应用(
    内向程序的非正规连串)。那形成数据库、应用服务器会有卓殊的负担。

bg揽胜FC使用队列组织不一致的调用。当1个调用同不时候被停放在多少个类别的时候,系统会为这几个队列创造正视。这带来了2个同步点(synchronization
point),类似于锁。

假若二个调用处于依赖队列中,那么当且仅当它置身重视队列的最上层时,它才会被管理。

对于同3个destination,不得以将bgLacrosseFC和tPAJEROFC、q帕杰罗FC结合起来使用。可是,对于分化的destination,你能够定义你想选择的电视发表类型。

语法:

 CALL FUNCTION 'function_name'

IN BACKGROUND UNIT unit

          EXPORTING ... 

 

集成

从qENVISIONFC转变为bg福睿斯FC的应用程序,必须支持成立qRAV肆FC中的队列与bgEnclaveFC中的队列之间的一时半刻链接的迁徙方案。通过如此的方案,能够保险科学的队列顺序,固然是在从qCR-VFC变为bgENVISIONFC的天天。

专注:从bg本田CR-VFC改回qXC60FC是不容许的。

在SAP NetWeaver Release
柒.1一以及越来越高的本子上,bgLANDFC也可以和basXML(贰进制ABAP体系化XML)通讯协议一齐行使。

架构

观念的qXC90FC模型唯有在数码被昂CoraFC调整程序管理的时候才探测种种独立单元之间的倚重关系。对于每种destination,外向调治程序都会开启2个调治程序来管理那么些destination的数码。

与之相对的是,bg奥德赛FC的借助关系在多少存储的时候就决定了。通过那样做,LacrosseFC调治程序能够叁次性找到全体的急需被拍卖的单元,并且通过最小的努力(minimum
effort)就足以找到它们之间的信赖关系。在积存数据的时候必要交给的附加努力,则足以在相当的大程度上由数据库设计中的高功效算法和优化补偿。

各样客户端定义一定数额的外向安插,并且并行管理队列负载,就算指标类其余负载会在一个很短的小运间隔后被分明,不过也为此会越来越标准。

单元和队列的删除程序

和历史观的次第分裂,若是有别的单元或队列被删除,注重依旧会维持。因为单元会被先打上标识,并且在那之后只是被调治程序删除。

图片 4

如图,在剔除了Unit四之后,Unit陆头能在Unit3之后运转,因为Unit伍唯有在调治程序管理过Unit三之后才会被删除。要是您剔除掉queue二,那么会发出上边的气象:

图片 5

Unit陆会在Unit2今后运营,全体选定的unit都会被调解程序删除。

留意:删除队列可能单元总是有着危机的。在大家的例证里,它会形成Unit6遭遇错误,也许变成指标连串的数据库不等同,因为它的前提Unit4因为被剔除而并未有运转。

Gateway:Gateway是另三个机密的质量瓶颈,在bg瑞鹰FC中,它也得到了优化。bg奇骏FC中的新的定义是会调治将养在一台应用服务器上同时运行的活跃调治程序的最大数目,也会调治将养全体揽胜极光FC调解程序可用的最重庆接数。这几个限制会维护当地的Gateway使之不至于过载。

各样发送系统的互相的活跃调治程序数量和它们的最明斯克接数也是可配备的,由此对于destination的Gateway也存在过载爱戴。

属性的熏陶:新bg陆风X捌FC完结的优化在高负荷、多依赖的情况下极度分明。第贰回运转的时候,线性对数可伸缩性(a
linear logarithmical
scalability)的牧马人FC数据管理成为恐怕(视系统包容性而定)。

函数队列的事体天性使得,在管理单独的单元时,bg福睿斯FC不太轻易获得斐然的脾性升高,可是在选择更加多如故更加快的硬件的时候,则能够一览无余提高吞吐量。限制因素会是数据库的性质和那么些单元的管理速度。

别的,新的API也是优化的1部分。一些盈余的函数被移除,有个别旧的API也不再使用。这使得相关的专业尤其平整和有成效,裁减支持团队和花费集团的工作量。

更加多音信:

越多关于bg福睿斯FC的音讯, 请看:

本土数据队列:LDQ

地面数据队列(Local Data Queue
)是①种特地的LacrosseFC通讯。在这种利用情状下,系统不会再接再砺发送数据。相反,按照拉取规则,系统会把数量存储在地面,直到被表面系统调用(比如移动器材)。

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

愈来愈多内容:

Local Data Queue
(LDQ)

名词对照

scheduler:调整程序

outbound  queue:外向队列

inbound queue:内向队列

 

有关小说:ABAP
兰德冠道FC远程调用

 

 

相关文章

发表评论

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

网站地图xml地图