SAP PI接口(RFC类型)在函数字段修改或增加后,出现字段映射错误问题
在解决标题所言问题之前,我们先回头看看RFC和sproxy这两种接口的优缺点。
关于PI接口的实现,目前我了解到的各大国企项目像中海油、中石化、国网等,普遍实现方式是RFC和代理类sproxy这两种。至于我现在做的国网人资项目,由于历史原因更或者是接口开发者贪图自己的方便原因,实现方式都是RFC类型(很不幸,为了项目的延续性和未来交接,那个贪图方便的人就是指我)。RFC类型较之于代理类存在了很多弊端,总体而言有以下几点:
1、RFC类型(外围服务)使用的SM59 Destination这种连接形式存在着性能瓶颈,最无法忍受的是丢数据现象。我在为薪酬组开发薪酬过账接口时,PID的环境下SM59连接丢数据现象非常严重,几乎接近50%的失败率,当然这里面存在了开发环境分配的服务器资源不足的原因,好在PIP并没有此情况,但依然无法接受。
2、当业务出现变更,调整了RFC的传入传出参数时。RFC类型的接口需要在PI的ESR配置部分重新导入函数。如果接口还在开发环节还好,如果已传生产就带来了额外的工作量。同时由于通道缓存问题,PI的IB部分也需重新激活才可以。
3、SM59创建的连接PROGRAM ID需要在环境单独创建。
4、从项目的协作角度来看,大型企业的项目组划分详细,PI和ABAP是作为两个技术部门存在的。往往ABAP开发并不了解PI的开发配置,就会出现abaper在GUI更改了RFC的参数字段,但并未通知PI人员的情况。等传到生产出现了问题,不必要的扯皮就出现了。
下表是更加详细的区别对比:

回到标题问题!
福利组的两个公积金接口,一个作为服务方,一个作为消费方。两个接口的开发过程都经历过一次小的调整。前者是RFC的传入表结构增加了一个字段,出现了字段映射错位的情况,奇怪的是错位的字段是新增字段前面的字段;在ESR重新导入RFC后,问题没有得到解决。第二个接口是传出表结构里的一个业务类型字段长度变更,变更前长度为2,测试值为Y2。变更后长度为1,值为D。但是外围系统却接受到了D2的值。在ESR重新导入RFC后,问题并没有得到解决。这两种情况在查日志时均显示正常,OM测试,ID测试均正常,并没有字段错位、长度不一致的问题。但在RFC里debug动态断点时错误又真实存在。校验了各个组件无果之后,只能祭出了最后一招,重新激活各个组件。重新激活后,问题得到了解决。后来和其他PI开发讨论这个问题时得知,其实只需要重新激活communication channel就可以,原因是xml报文形式会在CC通道里留有缓存。
RFC类型接口的的这些问题完全可以在使用代理类接口后来规避。因为代理类的参数是在PI端进行的开发配置,当业务发生更改需要改变参数时必然会经过PI,参数经过PI推送到GUI,abaper无法在GUI侧直接修改。
转自:https://www.cnblogs.com/fanjb/p/10782637.html
SAP PI接口(RFC类型)在函数字段修改或增加后,出现字段映射错误问题的更多相关文章
- SAP PI接口ESR IA配置,几种常用的 XSL 转换文档模板
在PI开发配置中字段映射一般分为Message Mapping(MM)和Imported Archives(IA)这两种形式.MM这种拉线的形式虽然看似方便,但是当接口更新和传输时往往比较麻烦,同时无 ...
- SQL替换语句之批量修改、增加、删除字段内容
语法 REPLACE ( original-string, search-string, replace-string ) 用法 update 表的名称 set 替换字段=REPLACE(替换字段,原 ...
- sqlserver 自增字段修改为普通主键字段
--增加备份字段alter Table tableName add columnNameBak bigint ; --将主键自增字段 赋值到备份字段update tableNameset column ...
- SQL替换语句 批量修改、增加、删除字段内容
sql替换语句,用该命令可以整批替换某字段的内容,也可以批量在原字段内容上加上或去掉字符. 命令总解:update 表的名称 set 此表要替换的字段名=REPLACE(此表要替换的字段名, '原来内 ...
- EF部分字段修改 自动忽略为null字段
传入一个实体 student(){id = 1,name = "测试" age = null,sex = null} 下面 是修改的方法 public async Task Edi ...
- c++指针类型的函数
下面随笔将讲述c++指针类型的函数. 原创链接:https://www.cnblogs.com/iFrank/p/14444379.html 指针类型的函数 若函数的返回值是指针,该函数就是指针类型的 ...
- java获取某一字段日期并增加7天存入另一字段
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); String dateString = format.f ...
- SAP PI开发手册-ERP发布服务供外围系统调用(RFC类型)
1转自:https://www.cnblogs.com/fanjb/p/10677018.html 8年进入国网项目后陆陆续续做了一些接口,按实现方法去分有RFC和代理类sproxy类型,按服务提供方 ...
- SAP PI入门
本教程的目的是让读者理解:SAP Process Intergration(以下简称SAP PI)是什么.我们不需要探究课题的本质,但是会讨论SAP PI的架构和不同特点.本文只会覆盖到PI的基本特点 ...
随机推荐
- C#上手练习3(while、do while语句)(添加机器人聊天)
C# while 循环与 for 循环类似,但是 while 循环一般适用于不固定次数的循环. while 循环的语法形式如下. while(布尔表达式){ 语句块;} while 语句执行的过 ...
- WPF 启动页面 (原发布 csdn 2017-06-26 19:26:01)
如果我写的有误,请及时与我联系,我立即改之以免继续误导他/她人. 如果您有好的想法或者建议,请随时与我联系. wpf软件启动时,加载启动页面.软件初始化完成之后关闭页面. App.xaml.cs代码 ...
- Java生鲜电商平台-优惠券系统的架构设计与源码解析
Java生鲜电商平台-优惠券系统的架构设计与源码解析 电商后台:实例解读促销系统 电商后台系统包括商品管理系统.采购系统.仓储系统.订单系统.促销系统.维权系统.财务系统.会员系统.权限系统等,各系统 ...
- MySQL基础(MySQL5.7安装、配置)
写在前面: MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品.MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQ ...
- Windows下Python 3.6 安装BeautifulSoup库
- - 下载安装 安装方法如下: 到 - PIP安装 如果上一种方法安装不成功,可以用第二种方法,记住,Python3.6下是pip3. 安装方法如下: pip3 install beautifuls ...
- 实战FFmpeg--编译iOS平台使用的FFmpeg库(支持arm64的FFmpeg2.6.2)
编译环境:Mac OS X 10.10.2 ,Xcode 6.3 iOS SDK 8.3 FFmpeg库的下载地址是 http://www.ffmpeg.org/releases/ . ...
- [20190531]建立job与commit.txt
[20190531]建立job与commit.txt --//昨天看链接:https://connor-mcdonald.com/2019/05/28/dbms_job-the-joy-of-tran ...
- MySQL 部署 MHA 高可用架构 (一)
MHA 官方网址 Manager : https://github.com/yoshinorim/mha4mysql-manager Node : https://github.com/yoshino ...
- jdk的一条命令查看运行参数
jps 查看运行的java进程; jinfo <pid> 查看 jvm 配置参数
- [排序][链表]Leetcode147 对链表进行插入排序
思路: 插入算法的思想很简单,此题比较为链表数据类型,方便的是不用一个一个的向后移动元素,但是找到应该插入的位置相对麻烦,因为链表只有next指针,无法快速定位要插入的位置.在链表前面插入一个空指针, ...