SAP 小技巧允许 EAN 条码带有前置0

作者:ABAP技巧与实战 约 4 分钟阅读 更新日期:2025-03-02 1 年前更新 标签:ABAP, Data Engineering, SD, WM, 仓库管理, 开发, 数据工程, 销售分销

原创 无峰 [ ABAP 技巧与实战 ](javascript:void\(0\);)

**点击蓝字** 关注我们

前言

SAP 标准的条码字段 EAN11 不允许出现存在前置0的编码.

比如 02010101 输入到EAN11中会变成2010101 前置0会丢失.

这个特性将导致客户原有系统中的还有前置0的条码无法录入到ECC系统的标准EAN字段中.

解决方案一

创建一个自定义表,用来存放有前置0的EAN和没有前置0的EAN的对应关系. 这个方案比较麻烦,因为很多地方都需要去访问这个对应表,转换一下.

提出这个方案的目的仅仅是为了抛砖引玉.

解决方案二

增强调整系统标准功能,允许标准字段存放带有前置0的编码.

通过标准逻辑的跟踪. (跟踪过程比较麻烦,忽略, 直接说结果),调整以下配置和增强即可实现.

**增强的目的都是为了实现不做条码编码内容转换.**

_**01** _

**配置调整**

条码的条码号码范围配置调整为

0-ZZZZZZZZZZZZZZZ

以便允许输入所有可能的条码

_**02** _

**增强转换函数**

增强函数转换函数

CONVERSION_EXIT_EAN11_INPUT

CONVERSION_EXIT_EAN11_OUTPUT

在函数开始处使用隐式增强添加如下代码,确保转换函数直接输出输入的值, 不执行标准转换逻辑

OUTPUT = INPUT.

RETURN.

_**03** _

**增强标准函数**

同时在函数EAN_SYSTEMATIC 开始,结尾处增强添加隐式增强,添加的逻辑目的也是为了避免系统转换条码内容. 开始自定义变量保存传入的条码,

结尾把转换的条码替换成传入的条码

**开头添加代码**

DATA: LV_EAN TYPE EAN11.

LV_EAN = EAN_NEU.

**结尾添加代码**

if ean_neu <> lv_ean.

delete MARM_ITAB where ean11 = ean_neu.

delete MEAN_TAB where ean11 = ean_neu.

endif.

ean_neu = lv_ean.
ean_alt = lv_ean.

_**04** _

**效果验证**

进过上述调整后,系统标准的条码字段就可以直接录入或显示带有前置0的条码了.

SAP 小技巧允许 EAN 条码带有前置0 - 封面图
SAP 小技巧允许 EAN 条码带有前置0 - 封面图

总结

这个调整对系统的影响比较大.请确保无需使用系统标准生成EAN条码的逻辑.条码全部通过外部输入.

** THE **

** END **

**约定**

如果你对这篇文章感兴趣,请帮忙点赞,在看,分享.

( **如果你真的喜欢这篇文章,请记得回来打个赏,作为支持我继续下去的动力,这是一个正反馈过程.

越多的人打赏,作者越有动力分享,读者就能享受更多的福利.毕竟打赏的金额富不了我,穷不了你,却能支持这个公众号长久发文.** )

SAP 小技巧允许 EAN 条码带有前置0 - 封面图
SAP 小技巧允许 EAN 条码带有前置0 - 封面图

**公众号 : syjf1976_abap**

**ABAP开发技巧**

**微信号 : 392077**

**公众号主群加入受限, 请扫码加入副群后,向管理员申请加入主群**

SAP 小技巧允许 EAN 条码带有前置0 - 封面图
SAP 小技巧允许 EAN 条码带有前置0 - 封面图
ABAP技巧与实战

关于作者:ABAP技巧与实战

企业信息化与 SAP 技术顾问,长期专注 SAP ABAP、FI/CO、MM、SD 等模块的技术分享与实战经验总结。查看更多介绍

来源说明:本文内容由「SAP小技巧允许EAN条码带有前置0.md」整理生成,仅用于内部技术分享与学习交流。