一文聊清楚SAP内外码的转换,哈哈,多么标题党的文章取名
原文链接:https://mp.weixin.qq.com/s/-pH3SN0p8chu4dXR1jajwQ
大家可以关注我个人公众号,所有分享内容,会在公众号第一时间推送,且阅读排版更好。
愿大家的学习,轻松且愉快。
如果大家觉得有用,希望转发关注,谢谢
导读
SAP的表设计,有些字段是有内外码关系的。
当我们在功能开发说明书中,写取值逻辑时,如果忽略了内外码的转换,就可能出现,逻辑写的没问题,但是就是取不到值;或者BAPI入参赋值没问题,但是,就是无法正确调用。
这时,我们就要考虑内外码转换的问题了。
以前也写过这个内外码转换,但是觉得写的并不全面,本篇就尽量全面地分享一下这个技术点。
以前写的文章:https://mp.weixin.qq.com/s/kTMLX4zhz-ZZ9ahdeM-gyg
正文
什么是内外码转换?
在SAP系统中,实际已内码作为存储,外码作为显示的字段;换句话说,我们在系统操作界面直接查看到的值,往往是外码,而真正在表里存储的值是内码。
我们以PS模块中的WBS字段,做一下说明;
WBS是典型的内外码转换的字段,如上图,我们使用CJ20N查看到的是:C/0000-034-4
可是,当我们使用存储WBS的表PRSP中查看时,我们查看到的值是:00003044
这就是典型的有内外码转换关系的字段。
可是有人问了?咦,我在表里查询的时候,咋就还是前台显示的字段呢?比如如下图所示,这是为什么呢?
这实际上是SAP为了方便我们查看和校验,在SE11、SE16N等查看透明表的事务码中,带了内外码转化的功能;
如下图,当我们勾选了“存在检查转换”时,系统就会将内码转换为外码,进行显示了。
是什么实现了内外码的转换?
对于WBS这个字段来说,是以下函数
CONVERSION_EXIT_ABPSP_INPUT
CONVERSION_EXIT_ABPSP_OUTPUT
当我们使用SE11等查看表时,勾选“存在检查转换”,系统会根据相应字段,取到相应的转换函数,将内码转化成外码进行显示,如下图。
当然下图是SAP标准代码,其实没必要深入研究,截图只是为了效果展示。
换句话说:在SAP的前台操作时,针对这类有内外码转换关系的字段,我们看到的是外码,实际上,SAP已经在界面展示的程序中,调用了相关函数,并进行了转化。
这里给大家分享一下,实际项目中,关于这个问题,非常容易犯错,而且经常犯错的几个点:
1.BAPI的调用
我们在调用BAPI时,大多数情况下,赋值就得用内码。
比如上述举例的WBS,在调用WBS相关BAPI时,得赋值00003044,而不是C/0000-034-4。
那么这个时候,我们就需要用相关函数将外码,转化成内码,再给BAPI赋值。
2.写取值逻辑时,要注意取值
这个原理和1差不多,当我们取值的时候,如果程序直接取"PRPS-PSPNR",并放在内表中进行loop,此时,很有可能取的是一堆数字的内码。
然后,接着用“C/0000-034-4”等的外码值,进行相等或者不相等的判断,你测试时,会发现怎么都没法实现测试效果;
万一ABAP顾问,和业务顾问都不了解这个点,那么,三个人也得郁闷一对半了。别问我曾经郁闷了多久。
3.BDC和BAPI的区别
很多顾问在面试的时候,可能会被问到采用BDC和BAPI的方式,到底有什么区别呢?
这个内外码的转换就是区别的一种;
BDC录屏的方式,本质上就是模拟人的前台操作,那么输入值的时候,得和人操作系统一样,应该输入外码,比如WBS,我们输入的时候就得输入外码;
而BAPI调用赋值的时候,大多数时候需要用内码,也就是需要我们把外码转化成内码,再进行赋值处理。
内外码转换函数的查找和测试
同样的,我们依旧以WBS为例,测试一下内外码转换函数的测试效果。
函数的展示和执行事务码:SE37;
除了外码转内码,我们还有内码转外码的需求,比如我们自开发一个WBS查询的报表,用户不可能去看一堆数字。如下图:
可是除了WBS,还有哪些字段具有内外码转换这一特点的呢?
常见的比如:
语言:前台显示是ZH,实际表里存的是1;前台是EN,实际存的是E等;
物料主数据上的“单位”,如下图,虽然前台录入时的值BOT,但是如果你调用BAPI,还是赋值BOT就会报错,应该赋值BT;
物料编号,内码显示物料编号有前导零,可是外码显示没有,如下图。
我们不可能把所有字段都记住。
以下方法,可以帮助大家看看字段有没有,内外码转储的特点:
我们可以查看字段的数据类型,看看数据类型中,有没有转换例程,如果有就说明此字段涉及内外码转换;
双击转换例程,还能查看到相应转换函数:
其他字段,大家可以自行研究测试哦;
这篇基本把内外码的问题聊完整了~~~祝大家工作顺利~
一文聊清楚SAP内外码的转换,哈哈,多么标题党的文章取名相关推荐
- ABAP 内外码的转换
ABAP 内外码的转换 一.前导零 1.加前导零 2.去前导零 二.WBS号 1.外码转内码 2.内码转外码 三.日期 1.内码转用户格式 2.内码转ISO格式 四.时间 1.内码转用户格式 2.内码 ...
- 7. 重磅硬核 | 一文聊透对象在JVM中的内存布局,以及内存对齐和压缩指针的原理及应用
重磅硬核 | 一文聊透对象在JVM中的内存布局,以及内存对齐和压缩指针的原理及应用 大家好,我是bin,又到了每周我们见面的时刻了,我的公众号在1月10号那天发布了第一篇文章?<从内核角度看IO ...
- 一文读懂vuex4源码,原来provide/inject就是妙用了原型链?
1. 前言 你好,我是若川,欢迎加我微信ruochuan12,加群长期交流学习. 这是学习源码整体架构系列 之 vuex4 源码(第十篇).学习源码整体架构系列文章(有哪些必看的JS库):jQuery ...
- 如何将word文档生成二维码
最近遇到很多客户咨询如何将word文档生成二维码,如何将视频生成二维码,目前二维码中是无法直接储存word文档,视频一类的,唯一的途径就是先把文档和视频信息上传到网站服务器上,然后在二维码生成器中利用 ...
- 企业微信【加入群聊】群活码十问十答
[加入群聊]用于那些场景? 二维码放到线上活动海报,线下物料或按钮形式配置到小程序等场景,用户通过扫描群二维码或点击小程序上的按钮,即可获取入群方式. 2,.群二维码的有效期是多久? 群二维码目前是没 ...
- [pbootcms模板]作文网站/文档下载网站源码
正文: 这是一款文档下载网站源码,作文网站pbootcms模板,适用于学习资料.文档资源.作文网.文章下载.资讯.论文等相关网站的建设,200+整站网页,您可轻松定制. 代码放在百度网盘,直接下载可以 ...
- flexpaper php 代码,FlexPaper Flex在线显示PDF文档的php源码下载|FlexPaper Flex在线显示PDF文档的php源码官方下载-太平洋下载中心...
FlexPaper Flex在线显示PDF文档的php源码是Php源码频道下深受用户喜爱的软件,太平洋下载中心提供FlexPaper Flex在线显示PDF文档的php源码官方下载.FlexPaper ...
- 来看阿迅为4412开发板独立文档和程序源码汇总目录
独立文档和程序源码汇总目录,学习Linux4412开发板目录一览 部分视频观看地址( 更多视频教程可在B站上搜索'北京迅为' ) iTOP-4412精英版开发板硬件连接 https://www.bil ...
- 计算机毕业设计Java在线文档管理系统(源码+系统+mysql数据库+Lw文档)
计算机毕业设计Java在线文档管理系统(源码+系统+mysql数据库+Lw文档) 计算机毕业设计Java在线文档管理系统(源码+系统+mysql数据库+Lw文档) 本源码技术栈: 项目架构:B/S架构 ...
最新文章
- Redis为什么变慢了?常见延迟问题定位与分析
- 训练大规模语音数据集后的结果分析报告
- sql的nvl()函数
- ios 带scrollView的控制器,双击“状态栏”,返回scrollView的顶部
- mysql gui tools 问题_Navicat与MySQL GUI Tools管理工具的优缺点对比
- CRM Document history DB table
- 《编译与反编译技术》—第1章1.7节C语言程序的编译流程
- 小甲鱼python课后答案40讲_小甲鱼Python 第30讲课后习题看不懂
- archlinux详细安装步骤_最新Centos的liunx安装宝塔的详细步骤
- gRPC-go源码(2):ClientConn
- shuipFCMS的开发记录
- mahony 互补滤波器
- 浙江省初级中级工程师职称评审条件
- 河北单招计算机的考试试题,河北单招试题
- CSRF 跨站请求伪造攻击
- TFN D550S 100G SDH综合测试分析仪性能如何
- 期权交易新手一定要认真学习的经验—(经验篇)
- 计算机毕业设计Java毕业生就业管理系统(源码+系统+mysql数据库+lw文档)
- 开启西门子1500PLC的OPCUA服务
- [经济]股票的基本知识和部分专业术语的解释