做起来会很顺遂

大概十7月份的时候做过四个有关八个SAP系统间资金财产分担传输的门类,使用到了ENCOREFC(Remote
Function
Call)技巧。因为前边全数医治-CRM相关接口开拓的经历,感觉本人对奥迪Q7FC很纯熟了,做起来会很顺遂,不想依旧境遇了些难题。准备整治一下有关它们的内容,进一步读书。

正文内容的机要缘于是SAP的匈牙利(Hungary)语文书档案。会比较珍惜基本概念上的东西,有的时候涉及实际的代码、配置。后续大概会根据小编的其实应用情况更新更详尽的牵线。

 

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

总述

对于SAP与SAP系统及SAP与非SAP系统之间的连接来讲,远程函数调用(Remote
Function
Call,以下简单的称呼ENVISIONFC)是风华正茂种标准的通讯方式,它能够兑现对长间隔系统中等高校函授数的调用。

具备悍马H2FC类型都通过CPI-C或TCP/IP左券举办传输。
它们构成了豆蔻梢头种Gateway通讯。

本文是对具有陆风X8FC变体的汇报,它们具有区别的性状和符合的应用情状。

同步RFC:sRFC

同步EvoqueFC(Synchronous
中华VFC,sOdysseyFC)是最主旨的CR-VFC情势。在s瑞虎FC调用中,调用者会等待远程被调用者的管理进程。

它的语法格局是:

CALL FUNCTION func DESTINATION dest. 

杰出的选择境况富含:

  • 发卖:为分歧系统成立买卖订单(central sales)。
  • 发售:对于有些查询,在代理商系统里进行二个对此钦赐物料的可用性检查。
  • 物品管理:在另三个系统里对有些物料订单实践来源判别。
  • CRM/SRM:对SAP后端系统倡导某些物料的可用性检查。
  • CRM/SRM:在SRM组件中创设购销订单时,在会计集中核准中为你的本金中心开展预算检查。
  • 会计师:向先生聚集核准种类央浼三个本钱中央清单。
  • BW:调用BW组件(商业消息货仓)来呼吁一个特别的evaluation。

异步RFC:aRFC

异步XC90FC(Asynchronous
WranglerFC,a昂CoraFC)类似与tXC90FC,客商在继承调用会话以前,无需静观其变它们的到位。不过,aOdysseyFC和t福特ExplorerFC之间也设有几点差异的地点:

  • 当调用者初阶八个a奇骏FC的时候,被调用的服务器必需能够吸收接纳需要。aRFC的参数不会记录在数据库中,而是径直发送给对方服务器。
  • a陆风X8FC允许客户与长途系统进行交互式对话。
  • 调用程序可以从a库罗德FC接收结果。

您能够在当你须要创立和贰个远端系统的接连几天、可是指望在调用QX56FC后不愿意等待结果而是希望持续管理时使用aRAV4FC。a奥迪Q5FC也得以发送给同样的系统。在这种景况下,系统展开三个新的对话(窗口)。你能够在调用对话和被调用会话间切换。使用上边包车型大巴讲话开启八个a奇骏FC:

CALL FUNCTION Remotefunction STARTING NEW TASK Taskname

DESTINATION ...

EXPORTING...

TABLES ...

EXCEPTIONS...

 RECEIVE RESULTS FROM FUNCTION Remotefunction 用于四个子主次内接受a奥德赛FC的调用结果。能够使用以下抽出参数:

  • IMPORTING

  • TABLES

  • EXCEPTIONS

附加项KEEPING
TASK
堵住连接在吸取管理结果后关门。相关的长途上下文(滚动区域)保持能够引用的情状,直至调用者终止连接。

越多关于a奥迪Q3FC的音信能够从以下地方得到:

关于a安德拉FC变体的陈说:

事务RFC:tRFC

在接纳事务科雷傲FC( transactional
陆风X8FC,t奥迪Q7FC)的时候,被调用的函数模块在被调用系统中恰恰运维三遍(Exactly Once)。

远端系统无需在RubiconFC客商端程序运转t奥迪Q7FC的时候可用。tCR-VFC组件将被调用的翼虎FC函数和血脉相通数据存款和储蓄在SAP系统的数据Curry,包罗二个唯风度翩翩的事体标志符(transaction
identifier,TID)。

比如调用发送了,接收系统却是宕机状态,调用会保留在地面队列中旭日初升段时间。调用对话程序能够在不等待远程调用成功/退步的意况下继续运维。假诺收到系统在大器晚成段时间后照旧不可用,调用将被安排为后台作业运行。

t奥德赛FC使用后缀IN BACKGROUND TASK.

就和一齐调用同样,参数
DESTINATION在中间隔系统定义了程序上下文。结果是,若是您对多个destination重复地调用一个函数(可能一遍性调用多少个函数),则能够在平等的前后文中访谈被调用函数的大局数据。。

系统会在表ATiguanFCSSTATE和表ACR-VFCSDATA中记录远程连接哀告和它们的整整参数值。你能够动用事务SM58来查阅。当调用程序达到COMMIT
WORK
话语时,远程调用会被转接到给对方系统。

在两个COMMIT
WORK
里面,全体的保有同一个destination的t传祺FC属于同三个逻辑单元(LUW)。

t凯雷德FC处理流图示:

图片 1

你能够在少数情况下使用应用tKoleosFC,比方,对于急需在作业的比不上品级更新相关数据库表的目眩神摇的管理进度。

t奥迪Q7FC会确认保障全数的安排更新在程序达到COMMIT WO奥迪Q5K语句时被推行。

(注意:tOdysseyFC的概念中无法有任何EXPORT参数,因为调用程序中后生可畏旦有IMPORT参数,就能够招致语法错误。此外,你也不得以对实践回调的前后相继实行异步调用)

系统可用性:

借使远程系统不可用,SAP系统会将报表奥迪Q5SA安德拉FCSE布署为后台作业,并将相关的作业ID作为变式,再拓宽管理。这一个表格程序会重新鸿基土地资金财产被调用,直到它成功地三番五次对方系统截止。

当被安插为后台作业时,奥迪Q7SA揽胜极光FCSE自动地以八个小时间距运维(暗中认可是每15分钟运营三回,最多品尝44遍)。你能够通过加强程序SABP0000和SABP0003来自定义该时间间距。

透过SM59配备destination,选用二个destination並且选择编辑->T奥德赛FC选项,在这里处定义连接尝试次数上限和再一次连接尝试的时间间距。

图片 2

假使在品尝钦赐的次数后如故不足到达相应的种类,系统会截止调用帕杰罗SARFCSE,并写入状态CPICERAV4福睿斯至表A奇骏FCSDATA中。在另贰个钦命的年月后(暗许是8天),在表A奥德赛FCSSTATE内的条目款项也会被去除。当然也足以定制那一个时辰,只怕手动在SM59起动相应的事务条款。

tRFC的缺点:

  • tKugaFC独立地管理全体LUW。依据激活的t普拉多FC数量,程序有希望会鲜明地回退调用系统和被调用系统的性质。
  • 其他,在运用中定义的LUW的调用顺序是无法获取保险的。因此不能够担保事务会依据使用期望的逐一运维。tEscortFC唯少年老成能保障的唯有:全体LUW都会或早或晚地被传输。

可以在这里边查看tLacrosseFC语句的叙述:

CALL FUNCTION IN BACKGROUND
TASK

队列RFC:qRFC

队列猎豹CS6FC(queued Remote Function
Call,qEvoqueFC)是t本田CR-VFC的四个扩张。它同意你将多个t翼虎FC调用连串化为二个队列。

qENVISIONFC调用会首先被函数模块TCRUISERFC_SET_QUEUE_NAME进行种类化管理,然后那一个调用被三个tOdysseyFC举行实际的dispatch。

q福特ExplorerFC能够作为外向队列(由调用系统体系化)管理,只怕是内向队列(由被调用系统类别化)。

* *

以下是三种职业数据传输的场地(为何图片中的文字是德文?):

图片 3

场景1:tRFC

这场景适用于数据互相间独立发送的情状。系统第11中学存在一个调用应用(client)使用tSportageFC连接系统第22中学的被调用应用(r
server)。在这一场景中,数据由t奥迪Q3FC传输,意味着发送到指标类别的函数模块调用会被担保只运维贰次。你不可以定义函数模块运营的逐风流倜傥和岁月。假如传输进度中发生了不当,系统会安排贰个后台作业,在15秒钟后再度发送函数模块调用。

场景2:带有外向队列的qTiggoFC

在这场景中,发送系统采用八个生动活泼队列来种类化被发送的数据。那代表发送系统的意气风发队列包括着存在依附关系的函数模块调用。当数码发送时,会保持显明的风流倜傥生气勃勃,并且调用会以正好一回且有序的主意(exactly once in order)发送给目的连串。

在乎:目的系列管理时没有供给改造qKoleosFC的相继,但是,它必得拉开t本田UR-VFC作用。

场景3:带有内向队列的qCRUISERFC(以至活跃队列)

在这里个场景下,不止发送系统(client)有外向队列,指标种类也可以有内向队列。假设q牧马人FC存在有内向队列,那也象征它在出殡和安葬系统上必定将存在外向队列。内向队列在生机勃勃段时间里只可以管理系统能源允许处理的函数模块调用数量。它能够幸免服务器被五个顾客端阻塞。独有在服务系统独立存在二个内向队列的场景是不恐怕存在的,因为需求在顾客端系统存在外向队列,来设置顺序并阻止单独的应用阻塞顾客端系统的百分百工作经过。

越来越多相关音信可以预知:

后台RFC:bgRFC

使用

bgRAV4FC(Background Remote Function
Call)允许被调用程序稍晚一些接收数据,实际不是一齐接收。接收数据的时候,必要保障数据只现身贰回且冬辰(
transactional) 、也许只现出三回且有序(queued)。

选用bg凯雷德FC进行异步调用,会有如下优势:

  • 在同三个SAP系统内(同一个系统ID,同贰个client):解耦,同期提供了并行化能力。负载会分布在该系统的可用的应用服务器上。那些bg奇骏FC场景被看成三个内向程序。

  • 在五个远程SAP系统间:解耦,而且经过能够兑现应用或作业场景的物理细分。异步调用的结果是,调用者和被调用者的应用服务器的关键性格差别可以赢得平衡。记录专门的学业在调用系统中达成。这一个现象是三个活跃程序。

  • 五个程序结合为外-内程序:该方法得以获取全套优化增选的优势。可是,若是你挑选了如此做,数据会被记录三回,一遍是调用者(外向管理)、二次是被调用应用(
    内向程序的出格类型)。那致使数据库、应用服务器会有极度的承受。

bg大切诺基FC使用队列协会不一致的调用。当三个调用同期被停放在五个类别的时候,系统会为那么些队列创造正视。那带来了七个同步点(synchronization
point),类似于锁。

假设三个调用处于信任队列中,那么当且仅当它放在依赖队列的最上层时,它才会被拍卖。

对于同八个destination,不能够将bgRAV4FC和tEvoqueFC、q奥迪Q7FC结合起来使用。可是,对于分裂的destination,你能够定义你想行使的报纸发表类型。

语法:

 CALL FUNCTION 'function_name'

IN BACKGROUND UNIT unit

          EXPORTING ... 

 

集成

从qPAJEROFC调换为bg汉兰达FC的应用程序,必得援救成立q奥迪Q3FC中的队列与bgEvoqueFC中的队列之间的这几天链接的迁徙方案。通过如此的方案,能够保险科学的行列顺序,即就是在从qLANDFC变为bg福睿斯FC的随即。

在乎:从bg福特ExplorerFC改回qSportageFC是不恐怕的。

在SAP NetWeaver Release
7.11甚至越来越高的版本上,bg安德拉FC也足以和basXML(二进制ABAP系列化XML)通讯合同一齐行使。

架构

价值观的q阿斯顿·马丁DB9FC模型只有在数码被库罗德FC调治程序管理的时候才探测各样独立单元之间的依据关系。对于各样destination,外向调解程序都会张开四个调整程序来拍卖那一个destination的数量。

与之相对的是,bg凯雷德FC的依靠关系在数据存储的时候就决定了。通过那样做,瑞鹰FC调解程序能够一回性找到全体的内需被拍卖的单元,何况通过最小的极力(minimum
effort)就足以找到它们之间的信赖关系。在存款和储蓄数据的时候必要提交的附加努力,则足以在极大程度上由数据库设计中的高成效算法和优化补偿。

每一种顾客端定义一定数量的意气风发布置,並且并行管理队列负载,即使指标体系的负载会在贰个十分的短的小运输间距离后被鲜明,不过也由此会更加的可信赖。

单元和队列的删除程序

和思想的程序分化,要是有别的单元或队列被剔除,依赖依然会维持。因为单元会被先打上标志,而且在这里之后只是被调解程序删除。

图片 4

如图,在剔除了Unit4之后,Unit6只可以在Unit3之后运维,因为Unit4唯有在调整程序管理过Unit3之后才会被剔除。即使你剔除掉queue2,那么会产生下边包车型地铁状态:

图片 5

Unit6会在Unit2事后运转,全数选定的unit都会被调解程序删除。

小心:删除队列或然单元总是有着风险的。在大家的例子里,它会招致Unit6碰着错误,可能变成指标连串的数据库不平等,因为它的前提Unit4因为被删去而并未有运转。

Gateway:Gateway是另三个诡秘的性质瓶颈,在bgEscortFC中,它也获取了优化。bg库罗德FC中的新的定义是会调养在蒸蒸日上台应用服务器上还要运营的活泼调节程序的最大数量,也会调剂全部讴歌RDXFC调节程序可用的最亚松森接数。这个限制会珍贵本地的Gateway使之不至于过载。

各种发送系统的相互的活泼调解程序数量和它们的最辛辛那提接数也是可配备的,因而对于destination的Gateway也存在过载爱慕。

质量的震慑:新bg牧马人FC兑现的优化在高负荷、多重视的事态下极度精晓。第一遍运营的时候,线性对数可伸缩性(a
linear logarithmical
scalability)的普拉多FC数据处理成为或许(视系统兼容性而定)。

函数队列的事体天性使得,在处理单独的单元时,bg大切诺基FC不太轻便取得显然的习性进步,可是在行使更加的多依然更加快的硬件的时候,则能够肯定提高吞吐量。限制因素会是数据库的质量和这几个单元的管理速度。

另外,新的API也是优化的意气风发部分。一些剩余的函数被移除,某个旧的API也不再利用。那使得相关的做事尤其平减轻有成效,减弱扶植协会和成本组织的职业量。

越来越多音讯:

更加的多关于bg普拉多FC的新闻, 请看:

本地数据队列:LDQ

本土数据队列(Local Data Queue
)是意气风发种极其的卡宴FC通信。在这里种利用情形下,系统不会积极性发送数据。相反,依据拉取准则,系统会把数量存款和储蓄在本土,直到被外表系统调用(比如移动设备)。

LDQ能够替代原先由q揽胜FC在不发送场景下提供的功力(qTiguanFC No
Send)。相比之下它提供了更有功效的数据模型。

越来越多内容:

Local Data Queue
(LDQ)

名词对照

scheduler:调解程序

outbound  queue:外向队列

inbound queue:内向队列

 

连锁小说:ABAP
XC60FC远程调用

 

 

相关文章