原文链接: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内外码的转换,哈哈,多么标题党的文章取名相关推荐

  1. ABAP 内外码的转换

    ABAP 内外码的转换 一.前导零 1.加前导零 2.去前导零 二.WBS号 1.外码转内码 2.内码转外码 三.日期 1.内码转用户格式 2.内码转ISO格式 四.时间 1.内码转用户格式 2.内码 ...

  2. 7. 重磅硬核 | 一文聊透对象在JVM中的内存布局,以及内存对齐和压缩指针的原理及应用

    重磅硬核 | 一文聊透对象在JVM中的内存布局,以及内存对齐和压缩指针的原理及应用 大家好,我是bin,又到了每周我们见面的时刻了,我的公众号在1月10号那天发布了第一篇文章?<从内核角度看IO ...

  3. 一文读懂vuex4源码,原来provide/inject就是妙用了原型链?

    1. 前言 你好,我是若川,欢迎加我微信ruochuan12,加群长期交流学习. 这是学习源码整体架构系列 之 vuex4 源码(第十篇).学习源码整体架构系列文章(有哪些必看的JS库):jQuery ...

  4. 如何将word文档生成二维码

    最近遇到很多客户咨询如何将word文档生成二维码,如何将视频生成二维码,目前二维码中是无法直接储存word文档,视频一类的,唯一的途径就是先把文档和视频信息上传到网站服务器上,然后在二维码生成器中利用 ...

  5. 企业微信【加入群聊】群活码十问十答

    [加入群聊]用于那些场景? 二维码放到线上活动海报,线下物料或按钮形式配置到小程序等场景,用户通过扫描群二维码或点击小程序上的按钮,即可获取入群方式. 2,.群二维码的有效期是多久? 群二维码目前是没 ...

  6. [pbootcms模板]作文网站/文档下载网站源码

    正文: 这是一款文档下载网站源码,作文网站pbootcms模板,适用于学习资料.文档资源.作文网.文章下载.资讯.论文等相关网站的建设,200+整站网页,您可轻松定制. 代码放在百度网盘,直接下载可以 ...

  7. flexpaper php 代码,FlexPaper Flex在线显示PDF文档的php源码下载|FlexPaper Flex在线显示PDF文档的php源码官方下载-太平洋下载中心...

    FlexPaper Flex在线显示PDF文档的php源码是Php源码频道下深受用户喜爱的软件,太平洋下载中心提供FlexPaper Flex在线显示PDF文档的php源码官方下载.FlexPaper ...

  8. 来看阿迅为4412开发板独立文档和程序源码汇总目录

    独立文档和程序源码汇总目录,学习Linux4412开发板目录一览 部分视频观看地址( 更多视频教程可在B站上搜索'北京迅为' ) iTOP-4412精英版开发板硬件连接 https://www.bil ...

  9. 计算机毕业设计Java在线文档管理系统(源码+系统+mysql数据库+Lw文档)

    计算机毕业设计Java在线文档管理系统(源码+系统+mysql数据库+Lw文档) 计算机毕业设计Java在线文档管理系统(源码+系统+mysql数据库+Lw文档) 本源码技术栈: 项目架构:B/S架构 ...

最新文章

  1. Redis为什么变慢了?常见延迟问题定位与分析
  2. 训练大规模语音数据集后的结果分析报告
  3. sql的nvl()函数
  4. ios 带scrollView的控制器,双击“状态栏”,返回scrollView的顶部
  5. mysql gui tools 问题_Navicat与MySQL GUI Tools管理工具的优缺点对比
  6. CRM Document history DB table
  7. 《编译与反编译技术》—第1章1.7节C语言程序的编译流程
  8. 小甲鱼python课后答案40讲_小甲鱼Python 第30讲课后习题看不懂
  9. archlinux详细安装步骤_最新Centos的liunx安装宝塔的详细步骤
  10. gRPC-go源码(2):ClientConn
  11. shuipFCMS的开发记录
  12. mahony 互补滤波器
  13. 浙江省初级中级工程师职称评审条件
  14. 河北单招计算机的考试试题,河北单招试题
  15. CSRF 跨站请求伪造攻击
  16. TFN D550S 100G SDH综合测试分析仪性能如何
  17. 期权交易新手一定要认真学习的经验—(经验篇)
  18. 计算机毕业设计Java毕业生就业管理系统(源码+系统+mysql数据库+lw文档)
  19. 开启西门子1500PLC的OPCUA服务
  20. [经济]股票的基本知识和部分专业术语的解释

热门文章

  1. 好喜欢北京的爱情故事
  2. 用java实现tracert命令
  3. [python]知乎用户头像爬虫
  4. 公屏是什么意思呀_公屏是什么意思发什么好玩 | 手游网游页游攻略大全
  5. json文件访问404错误
  6. 会计要素及其确认条件、资产、负债、所有者权益、收入、费用、利润(本章重在理解)
  7. perl-编译方法(转)
  8. 逆袭者不矫情:那些悄悄变厉害的人,都在偷偷对自己下狠手
  9. 小程序歌曲播放地址获取方法
  10. 《Python深度学习》第五章-5(可视化过滤器)读书笔记