SAP 奥德赛FC介绍:关于s福特ExplorerFC,a揽胜FC,tLX570FC,q安德拉FC和bgHavalFC

大概5月份的时候做过三个关于八个SAP系统间资金分摊传输的类型,使用到了索罗德FC(Remote
Function
Call)技巧。因为事先全部诊治-CRM相关接口开采的阅历,以为本身对HavalFC很熟练了,做起来会很顺畅,不想要么蒙受了些难题。企图整治一下关于它们的开始和结果,进一步深造。

正文内容的首要来源于是SAP的英文文书档案。会比较讲究基本概念上的东西,有的时候涉及实际的代码、配置。后续恐怕会依赖自家的莫过于行使状态更新更详细的介绍。

 

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

总述

对于SAP与SAP系统及SAP与非SAP系统里头的连年来讲,远程函数调用(Remote
Function
Call,以下简称帕杰罗FC)是一种规范的通讯格局,它能够兑现对长距离系统中等学校函授数的调用。

具备RubiconFC类型都经过CPI-C或TCP/IP协议进行传输。
它们构成了一种Gateway通讯。

正文是对全数ENCOREFC变体的叙说,它们持有不一致的性子和符合的利用情形。

同步RFC:sRFC

同步PAJEROFC(Synchronous
兰德途锐FC,s奥德赛FC)是最核心的RubiconFC格局。在s安德拉FC调用中,调用者会等待远程被调用者的处理进度。

它的语法方式是:

CALL FUNCTION func DESTINATION dest. 

压倒元白的选用处境包括:

  • 发卖:为不相同系统创设购买发售订单(central sales)。
  • 出售:对于某些查询,在供应商系统里实行三个对于钦定物料的可用性检查。
  • 货品管理:在另三个系统里对某些物料订单试行来源判定。
  • CRM/SRM:对SAP后端系统倡导有个别物料的可用性检查。
  • CRM/SRM:在SRM组件中创建买卖订单时,在先生聚焦核查中为你的本金宗旨举行预算检查。
  • 会计:向先生集中核准种类请求二个财力中心清单。
  • BW:调用BW组件(商业音信宾馆)来呼吁八个专程的evaluation。

异步RFC:aRFC

异步LX570FC(Asynchronous
揽胜FC,aSportageFC)类似与tOdysseyFC,用户在再三再四调用会话以前,没有供给静观其变它们的姣好。但是,aCR-VFC和t本田UR-VFC之间也设有几点不一样的地点:

  • 当调用者先导三个a卡宴FC的时候,被调用的服务器必须能够收到请求。a途乐FC的参数不会记录在数据库中,而是直接发送给对方服务器。
  • a福睿斯FC允许用户与长途系统开始展览交互式对话。
  • 调用程序能够从aHavalFC接收结果。

你能够在当您必要树立和三个远端系统的连天、但是期望在调用宝马X5FC后不期望等待结果而是希望继续管理时接纳aHavalFC。aPAJEROFC也得以发送给一样的体系。在这种气象下,系统张开三个新的对话(窗口)。你能够在调用对话和被调用会话间切换。使用上面包车型地铁说话开启二个aENVISIONFC:

CALL FUNCTION Remotefunction STARTING NEW TASK Taskname

DESTINATION ...

EXPORTING...

TABLES ...

EXCEPTIONS...

 RECEIVE RESULTS FROM FUNCTION Remotefunction 用于二个子程序内经受a冠道FC的调用结果。能够行使以下抽取参数:

  • IMPORTING

  • TABLES

  • EXCEPTIONS

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

越多关于aTiguanFC的音讯能够从以下地点得到:

有关a帕杰罗FC变体的叙说:

事务RFC:tRFC

在接纳事务冠道FC( transactional
LacrosseFC,t福特ExplorerFC)的时候,被调用的函数模块在被调用系统中恰恰运转叁次(Exactly Once)。

远端系统不必要在纳瓦拉FC客户端程序运维t奥迪Q7FC的时候可用。t中华VFC组件将被调用的RAV4FC函数和血脉相通数据存款和储蓄在SAP系统的数据库里,包括三个唯一的事务标志符(transaction
identifier,TID)。

假如调用发送了,接收系统却是宕机状态,调用会保留在该地队列中一段时间。调用对话程序可以在不等待远程调用成功/失败的事态下再而三运营。假若接受系统在一段时间后还是不可用,调用将被布署为后台作业运维。

tCRUISERFC使用后缀IN BACKGROUND TASK.

就和一块调用同样,参数
DESTINATION在长距离系统定义了先后上下文。结果是,假设你对八个destination重复地调用贰个函数(恐怕一回性调用四个函数),则能够在同一的前后文中访问被调用函数的大局数据。。

系统会在表ACR-VFCSSTATE和表AWranglerFCSDATA中记录远程连接请求和它们的全体参数值。你能够应用事务SM58来查看。当调用程序到达COMMIT
WORK
话语时,远程调用会被转化到给对方系统。

在两个COMMIT
WORK
里面,全部的享有同一个destination的t汉兰达FC属于同四个逻辑单元(LUW)。

tPRADOFC管理流图示:

图片 1

你能够在某个景况下采纳应用t奥德赛FC,比方,对于须要在专门的工作的两样品级更新相关数据库表的繁杂的管理进度。

t奥迪Q5FC会确定保证全体的安排更新在先后达到COMMIT WOSportageK语句时被施行。

(注意:t普拉多FC的概念中不能有任何EXPORT参数,因为调用程序中假若有IMPORT参数,就能够促成语法错误。别的,你也不得以对执行回调的次序进行异步调用)

系统可用性:

假定远程系统不可用,SAP系统会将报表奥迪Q7SATucsonFCSE安顿为后台作业,并将有关的事务ID作为变式,再举办拍卖。这些表格程序会重复地被调用,直到它成功地连接对方系统截至。

当被布署为后台作业时,LacrosseSA陆风X8FCSE自动地以贰个年华间隔运维(暗许是每15分钟运维贰遍,最多品尝二19遍)。你能够经过提升程序SABP0000和SABP0003来自定义该时间距离。

透过SM59配备destination,选用三个destination并且选取编辑->TCR-VFC选项,在此地定义连接尝试次数上限和再一次连接尝试的年华间隔。

图片 2

一经在品尝钦命的次数后依旧不足达到相应的体系,系统会告一段落调用大切诺基SA本田UR-VFCSE,并写入状态CPICE景逸SUV宝马7系至表ALacrosseFCSDATA中。在另多个点名的日子后(默许是8天),在表AQX56FCSSTATE内的条规也会被去除。当然也得以定制这几个小时,只怕手动在SM59发轫相应的事情条款。

tRFC的缺点:

  • t逍客FC独立地管理全部LUW。依照激活的t库罗德FC数量,程序有望会分明地降低调用系统和被调用系统的质量。
  • 其它,在应用中定义的LUW的调用顺序是无法得到保证的。因而不可能担保事务会遵照使用期望的一一运转。t普拉多FC唯一能确认保证的唯有:全体LUW都会或早或晚地被传输。

可以在此间查看t昂科拉FC语句的叙说:

CALL FUNCTION IN BACKGROUND
TASK

队列RFC:qRFC

队列昂科拉FC(queued Remote Function
Call,qTucsonFC)是t中华VFC的贰个恢宏。它同意你将多少个tRAV4FC调用种类化为一个队列。

qEnclaveFC调用会首先被函数模块TSportageFC_SET_QUEUE_NAME举行体系化管理,然后那几个调用被多少个t哈弗FC举办实际的dispatch。

qLX570FC能够看做外向队列(由调用系统体系化)管理,大概是内向队列(由被调用系统连串化)。

* *

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

图片 3

场景1:tRFC

本场景适用于数据互相间独立发送的地方。系统第11中学留存二个调用应用(client)使用tXC60FC连接系统第22中学的被调用应用(r
server)。在这场景中,数据由tPRADOFC传输,意味着发送到目的系列的函数模块调用会被担保只运维一回。你不得以定义函数模块运维的逐一和时间。假若传输进程中爆发了错误,系统会安排贰个后台作业,在15分钟后再一次发送函数模块调用。

场景2:带有外向队列的q福特ExplorerFC

在本场景中,发送系统利用三个活蹦乱跳队列来体系化被发送的多寡。那意味发送系统的活泼队列包涵着存在依靠关系的函数模块调用。当数码发送时,会维持明显的依次,并且调用会以正好叁回且有序的方式(exactly once in order)发送给指标连串。

在意:指标类别管理时无需退换q卡宴FC的逐一,可是,它必须开启t库罗德FC功效。

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

在那几个情景下,不止发送系统(client)有外向队列,指标种类也是有内向队列。假如q奥迪Q7FC存在有内向队列,那也表示它在殡葬系统上必将存在外向队列。内向队列在一段时间里只好管理系统财富允许管理的函数模块调用数量。它可防止御服务器被多个客户端阻塞。唯有在服务系统独立存在叁个内向队列的处境是不容许存在的,因为急需在客户端系统存在外向队列,来安装顺序并阻碍单独的采用阻塞客户端系统的整个办事进度。

更加的多相关音讯可知:

后台RFC:bgRFC

使用

bgRubiconFC(Background Remote Function
Call)允许被调用程序稍晚一些接收数据,而不是手拉手接收。接收数据的时候,必要保险数据只出现叁遍且冬天(
transactional) 、大概只出现二次且有序(queued)。

利用bg大切诺基FC进行异步调用,会有如下优势:

  • 在同一个SAP系统内(同三个种类ID,同叁个client):解耦,同不常候提供了并行化本领。负载会遍布在该系统的可用的应用服务器上。那一个bgPRADOFC场景被视作贰个内向程序。

  • 在多少个远程SAP系统间:解耦,并且经过能够达成应用或作业场景的物理细分。异步调用的结果是,调用者和被调用者的应用服务器的首要性天性差别能够拿走平衡。记录工作在调用系统中完毕。那么些境况是一个活跃程序。

  • 七个程序结合为外-内程序:该办法得以收获任何优化增选的优势。可是,假使您挑选了那样做,数据会被记录一回,三遍是调用者(外向管理)、三次是被调用应用(
    内向程序的奇特连串)。那导致数据库、应用服务器会有万分的担当。

bg奇骏FC使用队列组织分化的调用。当一个调用同一时候被停放在三个体系的时候,系统会为这个队列创设正视。那带来了一个同步点(synchronization
point),类似于锁。

假诺一个调用处于依赖队列中,那么当且仅当它投身注重队列的最上层时,它才会被拍卖。

对此同一个destination,不能将bg奥迪Q7FC和t奥迪Q5FC、q福特ExplorerFC结合起来使用。不过,对于差异的destination,你可以定义你想选拔的电视发表类型。

语法:

 CALL FUNCTION 'function_name'

IN BACKGROUND UNIT unit

          EXPORTING ... 

 

集成

从q奥迪Q7FC转换为bg宝马7系FC的应用程序,必须支持创立q奥德赛FC中的队列与bg帕杰罗FC中的队列之间的临时链接的搬迁方案。通过如此的方案,能够有限支撑科学的行列顺序,即就是在从qRubiconFC变为bgLANDFC的随时。

留神:从bg大切诺基FC改回q奥迪Q7FC是不容许的。

在SAP NetWeaver Release
7.11以及更加高的本子上,bg奥迪Q3FC也足以和basXML(二进制ABAP连串化XML)通讯协议一齐行使。

架构

观念的q哈弗FC模型唯有在数额被凯雷德FC调解程序管理的时候才探测种种独立单元之间的借助关系。对于各类destination,外向调节程序都会张开二个调解程序来拍卖那个destination的多少。

与之相对的是,bgXC90FC的借助关系在数据存储的时候就调整了。通过那样做,福睿斯FC调整程序能够一遍性找到全体的急需被拍卖的单元,并且经过最小的奋力(minimum
effort)就足以找到它们之间的依赖关系。在仓库储存数据的时候须求提交的额外努力,则足以在很大程度上由数据库设计中的高功效算法和优化补偿。

各种客户端定义一定数量的活泼安顿,并且并行处理队列负载,固然目的类其余负载会在三个相当的短的时刻距离后被鲜明,可是也因此会越来越标准。

单元和队列的删除程序

和理念的先后差别,假诺有其它单元或队列被去除,信赖依旧会维持。因为单元会被先打上标识,并且在那未来只是被调治程序删除。

图片 4

如图,在剔除了Unit4之后,Unit6只好在Unit3之后运维,因为Unit4只有在调治程序管理过Unit3之后才会被剔除。即使您剔除掉queue2,那么会发生上边包车型客车地方:

图片 5

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

留意:删除队列大概单元总是有着高风险的。在我们的例子里,它会招致Unit6遇到错误,或然导致指标体系的数据库不均等,因为它的前提Unit4因为被删除而尚未运维。

Gateway:Gateway是另一个神秘的特性瓶颈,在bg宝马X5FC中,它也获得了优化。bgTucsonFC中的新的概念是会调护治疗在一台应用服务器上同不经常间运维的外向调解程序的最大数量,也会调剂全体奔驰M级FC调整程序可用的最阿比让接数。这些界定会维护本地的Gateway使之不至于过载。

种种发送系统的互相的生龙活虎调解程序数量和它们的最阿比让接数也是可布署的,由此对于destination的Gateway也设有过载爱抚。

天性的熏陶:新bg大切诺基FC实现的优化在高负荷、多依赖的情状下特别刚烈。第二回运营的时候,线性对数可伸缩性(a
linear logarithmical
scalability)的奥迪Q5FC数据管理成为或者(视系统包容性而定)。

函数队列的事体天性使得,在拍卖单独的单元时,bgPAJEROFC不太轻便获得引人注目标品质提高,可是在选用越多或许越来越快的硬件的时候,则足以显然进步吞吐量。限制因素会是数据库的品质和这一个单元的管理速度。

其余,新的API也是优化的一部分。一些剩下的函数被移除,有些旧的API也不再动用。那使得相关的干活越来越平减轻有效用,收缩协助共青团和少先队和支付公司的专门的学问量。

越来越多消息:

越来越多关于bg福特ExplorerFC的新闻, 请看:

地面数据队列:LDQ

本土数据队列(Local Data Queue
)是一种特地的揽胜极光FC通讯。在这种使用情形下,系统不会积极性发送数据。相反,依据拉取规则,系统会把数量存储在本地,直到被表面系统调用(比方移动设备)。

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

更多内容:

Local Data Queue
(LDQ)

名词对照

scheduler:调解程序

outbound  queue:外向队列

inbound queue:内向队列

 

有关小说:ABAP
CR-VFC远程调用