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的基本特点 ...
随机推荐
- .NET MVC5简介(四)Filter和AuthorizeAttribute权限验证
在webform中,验证的流程大致如下图: 在AOP中: 在Filter中: AuthorizeAttribute权限验证 登录后有权限控制,有的页面是需要用户登录才能访问的,需要在访问页面增加一个验 ...
- 易优CMS:关于assign你知道多少
[基础用法] 名称:assign 功能:模板文件中定义变量,可在其他标签里使用该变量 语法: {eyou:assign name='typeid' value='5' /} 文件: 无 参数: nam ...
- xml解析-jaxp添加结点
jaxp添加结点 eg: //在第一个下面添加nv / 1.创建解析器工厂 * 2.根据解析器工厂创建解析器 * 3.解析xml返回document * * 4.得到第一个p1 * -得到所有p1使用 ...
- Web安全攻防笔记-SQL注入
information_schema(MySQL5.0版本之后,MySQL数据库默认存放一个information_schema数据库) information_schema的三个表: SCHEMAT ...
- 微信小程序 + Bmob后端云
闲暇之余,写了一个私人的小程序,但由于带有商品.订单功能被拒了(腾讯太狗带了,只有商家才可以使用这种功能),没办法,不给过审,那就拿出来分享一下. 原本想的是做一个超市类的电商平台,带有下单支付等功能 ...
- Android App自动更新解决方案(DownloadManager)
一开始,我们先向服务器请求数据获取版本 public ObservableField<VersionBean> appVersion = new ObservableField<&g ...
- Tomcat下载教程
首先确定你Windows系统是64位,还是32位(现在大部分是64位) 查看操作系统位数步骤:(WindowsXP,Windows7,Windows8,Windows10查看步骤大同小异,举例Wind ...
- AtCoder - 2037 (dp)
题意 https://vjudge.net/problem/AtCoder-2037 选一些数使得和的平均值等于a,问方案数. 思路 设dp[i][j]为选i个数和为j的方案数,如果当前选了x,那么d ...
- 关于 chromedriver、IEDriverServer、geckodriver 驱动器的几项注意点
1. 下载 chromedriver 和 IEDriverServer 时,都没有对应的 win64 版本,只能选择 win32,也一样可以: 2. 下载的 IEDriverServer 的版本号和S ...
- itest(爱测试) 3.5.0 发布,开源BUG 跟踪管理& 敏捷测试管理软件
v3.5.0 下载地址 :itest下载 itest 简介:查看简介 V3.5.0 增加了 9个功能增强,和17个BUG修复 ,详情如下所述. 9个功能增强 : (1)增加xmind(思维导图) 转E ...