SAP 索罗德FC介绍:关于sOdysseyFC,a福特ExplorerFC,t瑞鹰FC,qCR-VFC和bgOdysseyFC

by admin on 2019年5月27日

大致七月份的时候做过多个关于三个SAP系统间资金分摊传输的品种,使用到了LANDFC(Remote
Function
Call)能力。因为事先全部医疗-CLX570M相关接口开垦的阅历,以为本身对奇骏FC很熟识了,做起来会很顺畅,不想要么碰着了些难点。图谋整治一下关于它们的从头到尾的经过,进一步学习。

本文内容的显要来自是SAP的英文文书档案。会比较讲究基本概念上的事物,不时涉及实际的代码、配置。后续大概会基于笔者的莫过于使用情状更新更详细的牵线。

 

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

总述

对于SAP与SAP系统及SAP与非SAP系统里面的连年来讲,远程函数调用(Remote
Function
Call,以下简称RFC)是壹种标准的通讯格局,它能够兑现对长途系统中函数的调用。

有着RFC类型都通过CPI-C或TCP/IP协议进行传输。
它们组成了1种Gateway通讯。

本文是对拥有景逸SUVFC变体的讲述,它们持有分化的特色和切合的采纳情况。

同步RFC:sRFC

同步奥德赛FC(Synchronous
HummerH二FC,sPAJEROFC)是最中央的BMWX3FC情势。在sTiggoFC调用中,调用者会等待远程被调用者的管理进程。

它的语法情势是:

CALL FUNCTION func DESTINATION dest. 

一流的使用景况包涵:

  • 贩卖:为分裂体系创立购买发卖订单(central sales)。
  • 出售:对于有个别查询,在供应商系统里进行二个对此钦命物料的可用性检查。
  • 物品管理:在另三个系统里对有些物料订单实践来源判别。
  • CBMWX三M/SQashqaiM:对SAP后端系统倡导某些物料的可用性检查。
  • CRAV4M/S汉兰达M:在S福特ExplorerM组件中开创购买发售订单时,在会计集中查证中为您的开支核心举行预算检查。
  • 会计:向会计聚焦核实种类请求二个基金大旨清单。
  • BW:调用BW组件(商业消息宾馆)来呼吁三个专程的evaluation。

异步RFC:aRFC

异步奥迪Q7FC(Asynchronous
RAV四FC,a揽胜FC)类似与t昂CoraFC,用户在三番五次调用会话在此之前,不须求等待它们的成就。但是,a卡宴FC和t君越FC之间也存在几点分裂的地方:

  • 当调用者早先一个a猎豹CS陆FC的时候,被调用的服务器必须还行请求。a牧马人FC的参数不会记录在数据库中,而是一贯发送给对方服务器。
  • aOdysseyFC允许用户与远程系统进行交互式对话。
  • 调用程序能够从a大切诺基FC接收结果。

你能够在当你供给树立和三个远端系统的接连、可是指望在调用奔驰M级FC后不愿意等待结果而是期待持续管理时使用a翼虎FC。aCRUISERFC也得以发送给一样的系统。在这种气象下,系统张开1个新的对话(窗口)。你能够在调用对话和被调用会话间切换。使用下边包车型客车口舌开启多少个a瑞虎FC:

CALL FUNCTION Remotefunction STARTING NEW TASK Taskname

DESTINATION ...

EXPORTING...

TABLES ...

EXCEPTIONS...

亚洲必赢手机入口, RECEIVE RESULTS FROM FUNCTION Remotefunction 用于二个子顺序内经受aLANDFC的调用结果。能够动用以下收取参数:

  • IMPORTING

  • TABLES

  • EXCEPTIONS

附加项KEEPING
TASK
阻拦连接在抽出管理结果后关闭。相关的中远距离上下文(滚动区域)保持能够选择的地方,直至调用者终止连接。

越来越多关于a本田CR-VFC的消息方可从以下地点获得:

有关aTucsonFC变体的叙述:

事务RFC:tRFC

在利用事务PRADOFC( transactional
PAJEROFC,t瑞鹰FC)的时候,被调用的函数模块在被调用系统中正好运营叁遍(Exactly Once)。

远端系统不须要在PRADOFC客户端程序运维t翼虎FC的时候可用。t奥迪Q三FC组件将被调用的汉兰达FC函数和连锁数据存款和储蓄在SAP系统的数据Curry,包含1个唯1的事体标志符(transaction
identifier,TID)。

若果调用发送了,接收系统却是宕机状态,调用会保留在地方队列中一段时间。调用对话程序可以在不等待远程调用成功/退步的图景下持续运转。假使接收系统在一段时间后仍然不可用,调用将被陈设为后台作业运转。

tTucsonFC使用后缀IN BACKGROUND TASK.

就和联合调用同样,参数
DESTINATION在长途系统定义了先后上下文。结果是,假使你对一个destination重复地调用1个函数(或许二遍性调用七个函数),则足以在同样的前后文中访问被调用函数的全局数据。。

系统会在表A奥迪Q5FCSSTATE和表A景逸SUVFCSDATA中著录远程连接请求和它们的百分之百参数值。你能够动用事务SM58来查阅。当调用程序到达COMMIT
WORK
讲话时,远程调用会被转接到给对方系统。

在两个COMMIT
WORK
里头,全数的保有同一个destination的t本田CR-VFC属于同2个逻辑单元(LUW)。

t汉兰达FC管理流图示:

亚洲必赢手机入口 1

您能够在某个意况下使用使用t中华VFC,举个例子,对于要求在作业的区别阶段更新相关数据库表的眼花缭乱的管理进程。

tCR-VFC会确认保障全部的布署更新在先后达到COMMIT WOCRUISERK语句时被实行。

(注意:tLacrosseFC的概念中不能有任何EXPORT参数,因为调用程序中只要有IMPORT参数,就能够产生语法错误。其余,你也无法对施行回调的程序实行异步调用)

系统可用性:

假设远程系统不可用,SAP系统会将报表索罗德SA科雷傲FCSE陈设为后台作业,并将相关的事务ID作为变式,再实行拍卖。这几个表格程序会另行地被调用,直到它成功地接连对方系统停止。

当被布署为后台作业时,帕杰罗SA奔驰G级FCSE自动地以贰个时光间隔运维(默许是每16分钟运营贰回,最多尝试二十五遍)。你能够经过加强程序SABP0000和SABP000三来自定义该时间距离。

透过SM59计划destination,选拔二个destination并且选拔编辑->TMuranoFC选项,在这里定义连接尝试次数上限和重新连接尝试的时光间隔。

亚洲必赢手机入口 2

要是在尝试钦点的次数后照旧不足达到相应的连串,系统会截至调用LacrosseSA安德拉FCSE,并写入状态CPICESportage奥迪Q5至表A大切诺基FCSDATA中。在另二个钦赐的时日后(暗中认可是八天),在表A宝马X3FCSSTATE内的条目也会被去除。当然也得以定制这一个小时,只怕手动在SM5玖起动相应的事务条款。

tRFC的缺点:

  • t奥迪Q5FC独立地拍卖全部LUW。遵照激活的t科雷傲FC数量,程序有希望会领悟地下降调用系统和被调用系统的品质。
  • 其它,在采用中定义的LUW的调用顺序是不可能猎取保持的。由此不能够保险事务会依据使用期望的次第运维。tEscortFC唯一能确保的唯有:全数LUW都会或早或晚地被传输。

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

CALL FUNCTION IN BACKGROUND
TASK

队列RFC:qRFC

队列QX56FC(queued Remote Function
Call,q宝马7系FC)是tHummerH二FC的五个恢弘。它同意你将几个t奇骏FC调用种类化为贰个行列。

q奥迪Q7FC调用会首先被函数模块T安德拉FC_SET_QUEUE_NAME实行种类化管理,然后这一个调用被三个t本田UR-VFC举行实际的dispatch。

q奥迪Q5FC能够看成外向队列(由调用系统类别化)管理,或然是内向队列(由被调用系统类别化)。

* *

以下是二种职业数据传输的景色(为啥图片中的文字是German?):

亚洲必赢手机入口 3

场景1:tRFC

该现象适用于数据相互间独立发送的景色。系统1中留存多个调用应用(client)使用tLANDFC连接系统2中的被调用应用(r
server)。在这场景中,数据由t福睿斯FC传输,意味着发送到指标连串的函数模块调用会被担保只运营贰次。你无法定义函数模块运维的逐1和岁月。假设传输进程中发生了不当,系统会安插三个后台作业,在十六分钟后重新发送函数模块调用。

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

在这一场景中,发送系统运用三个活蹦乱跳队列来种类化被发送的数码。那意味发送系统的外向队列包蕴着存在依附关系的函数模块调用。当数码发送时,会维持分明的各样,并且调用会以正好叁回且有序的章程(exactly once in order)发送给目的类别。

在意:指标连串管理时无需改换q福特ExplorerFC的相继,不过,它必须拉开t奥迪Q7FC功用。

气象三:带有内向队列的qCR-VFC(以及活跃队列)

在那个场景下,不止发送系统(client)有外向队列,指标种类也会有内向队列。假使qQashqaiFC存在有内向队列,那也表示它在发送系统上必将存在外向队列。内向队列在壹段时间里只好管理系统财富允许管理的函数模块调用数量。它能够堤防服务器被四个客户端阻塞。唯有在劳动体系独立存在贰个内向队列的场馆是不容许存在的,因为供给在客户端系统存在外向队列,来设置顺序并阻碍单独的使用阻塞客户端系统的整个专业进度。

越来越多相关音信可知:

后台RFC:bgRFC

使用

bg本田UR-VFC(Background Remote Function
Call)允许被调用程序稍晚一些接收数据,而不是一起接收。接收数据的时候,须要有限支持数据只现出一回且冬日(
transactional) 、大概只现出三次且有序(queued)。

动用bgOdysseyFC举办异步调用,会有如下优势:

  • 在同一个SAP系统内(同3个连串ID,同三个client):解耦,同一时间提供了并行化技能。负载会布满在该系统的可用的应用服务器上。这么些bg中华VFC场景被看做一个内向程序。

  • 在八个远程SAP系统间:解耦,并且经过能够兑现利用或业务场景的大要细分。异步调用的结果是,调用者和被调用者的应用服务器的基本点脾性差别能够收获平衡。记录工作在调用系统中做到。那几个现象是1个活泼程序。

  • 多个程序结合为外-内程序:该措施能够收获任何优化增选的优势。可是,假若您选取了那般做,数据会被记录一遍,贰遍是调用者(外向管理)、贰次是被调用应用(
    内向程序的异样体系)。这致使数据库、应用服务器会有额外的承负。

bg锐界FC使用队列组织差异的调用。当一个调用相同的时候被停放在八个体系的时候,系统会为这么些队列创制重视。那带来了叁个同步点(synchronization
point),类似于锁。

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

对此同3个destination,不得以将bg奥迪Q五FC和t路虎极光FC、qLacrosseFC结合起来使用。可是,对于区别的destination,你能够定义你想利用的通信类型。

语法:

 CALL FUNCTION 'function_name'

IN BACKGROUND UNIT unit

          EXPORTING ... 

 

集成

从qCR-VFC转变为bgENVISIONFC的应用程序,必须支持成立q奥迪Q三FC中的队列与bgRFC中的队列之间的权且链接的动员搬迁方案。通过那样的方案,能够保险科学的行列顺序,即就是在从q奥迪Q7FC变为bg奔驰G级FC的随时。

注意:从bg牧马人FC改回qLX570FC是不恐怕的。

在SAP NetWeaver Release
七.1一以及更加高的版本上,bg奥德赛FC也足以和basXML(贰进制ABAP连串化XML)通讯协议一同行使。

架构

古板的qTucsonFC模型只有在数额被牧马人FC调治程序管理的时候才探测各样独立单元之间的借助关系。对于每个destination,外向调治程序都会议及展览开3个调整程序来拍卖这么些destination的数据。

与之相对的是,bg凯雷德FC的注重性关系在数据存储的时候就调控了。通过如此做,福特ExplorerFC调整程序能够一回性找到全数的急需被拍卖的单元,并且经过最小的全力(minimum
effort)就能够找到它们中间的重视关系。在蕴藏数据的时候供给交给的附加努力,则能够在比异常的大程度上由数据库设计中的高成效算法和优化补偿。

每一个客户端定义一定数量的生龙活虎安插,并且并行处理队列负载,即使指标类别的负载会在三个相当的短的小运距离后被分明,不过也由此会更纯粹。

单元和队列的删除程序

和守旧的主次差异,要是有任何单元或队列被删除,正视依旧会保持。因为单元会被先打上标志,并且在那之后只是被调整程序删除。

亚洲必赢手机入口 4

如图,在剔除了Unit四之后,Unit九头可以在Unit3之后运营,因为Unit七只有在调整程序管理过Unit3之后才会被删除。如若你剔除掉queue2,那么会时有产生上边包车型客车情事:

亚洲必赢手机入口 5

Unit6会在Unit二从此运营,全数选定的unit都会被调节程序删除。

瞩目:删除队列也许单元总是有着风险的。在大家的事例里,它会变成Unit陆遇到错误,恐怕形成指标类其余数据库分化样,因为它的前提Unit4因为被剔除而从不运维。

Gateway:Gateway是另贰个暧昧的习性瓶颈,在bg陆风X八FC中,它也取得了优化。bgPAJEROFC中的新的定义是会调弄整理在1台应用服务器上还要运营的活跃调整程序的最大数目,也会调弄整理全体揽胜FC调解程序可用的最特古西加尔巴接数。那几个范围会维护本地的Gateway使之不至于过载。

种种发送系统的互相的活跃调治程序数量和它们的最加纳Ake拉接数也是可配备的,由此对于destination的Gateway也设有过载珍重。

质量的震慑:新bgOdysseyFC实现的优化在高负荷、多信赖的气象下非常精通。第2遍运转的时候,线性对数可伸缩性(a
linear logarithmical
scalability)的MuranoFC数据管理成为大概(视系统包容性而定)。

函数队列的事体个性使得,在处理单独的单元时,bg福睿斯FC不太轻易得到举世瞩目标性质升高,不过在选用越来越多照旧更加快的硬件的时候,则能够鲜明升高吞吐量。限制因素会是数据库的本性和这个单元的管理速度。

除此以外,新的API也是优化的一局地。一些剩余的函数被移除,有个别旧的API也不再选取。那使得相关的工作愈发平缓解有功效,收缩协理团队和付出团队的职业量。

越多消息:

越多关于bg福睿斯FC的新闻, 请看:

地面数据队列:LDQ

地点数据队列(Local Data Queue
)是一种特意的兰德CR-VFC通讯。在这种应用意况下,系统不会积极发送数据。相反,依据拉取规则,系统会把数量存款和储蓄在地面,直到被外表系统调用(例如移动设备)。

LDQ能够代替原先由q瑞虎FC在不发送场景下提供的效应(qLANDFC No
Send)。相比较之下它提供了更有成效的数据模型。

越来越多内容:

Local Data Queue
(LDQ)

名词对照

scheduler:调解程序

outbound  queue:外向队列

inbound queue:内向队列

 

连带小说:ABAP
LX570FC远程调用

 

 

发表评论

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

网站地图xml地图