SAP 小技巧字段的复杂数据限定

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

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

前言

SAP中有一种特殊定义的内表.

通过SELECT-OPTION 或者 RANGES 定义的内表.

这种内表可以表达丰富的数据限定逻辑.

**本文主要介绍怎么通过单字段内容维护并使用这种复杂的数据限制**

特殊内表结构

包含字段 SIGN / OPTION / LOW / HIGH

其中SIGN值

• I 包含

• E 排除

OPTION值

• EQ Equal 等于

• BT BeTween 区间

• LE Less Equal 小于等于

• GE Greater Equal 大于等于

• CP Contains Pattern 包含

• GT Greater 大于

• LT less 小于

• NE not equal 不等于

LOW

放单值或区间的低值

HIGH

放区间的高值

业务应用示例

合作伙伴的唯一性检查配置. 如果指定的业务伙伴分组需要检查唯一性(比如用名称检查), 需要限定一个检查范围(也用业务伙伴分组限定).

用户可能需要灵活的范围限定,如下

• 单值限定

• 多值限定

• 通配符限定

• 单值排除

• 区间限定

• 区间限定+单值排除

• ......

BP唯一性检查配置表(图一),其中字段ZBU_GROUP 用来限定唯一性检查的BU_GROUP范围.

(当然,我们也可以用一个从表去维护这个复杂数据限定. 但是就会从之前的单表维护变成主从表维护(可以用视图簇实现), 维护方式变得更复杂.)

为了实现这种复杂的数据限定. 引入了字段内容的复杂数据限定,如图二.

• 单值

• 多值

• 通配符

• 复杂设置

SAP 小技巧字段的复杂数据限定 - 封面图
SAP 小技巧字段的复杂数据限定 - 封面图

图一

SAP 小技巧字段的复杂数据限定 - 封面图
SAP 小技巧字段的复杂数据限定 - 封面图

图二

实现

要实现一个配置字段限定复杂的数据内容, 需要考虑如下两个方面的逻辑

• 转换

• 输入帮助

_**01** _

**转换**

单值转换成特殊内表

特殊内表转换成单值

通过SELECT-OPTION 或 RANGES 定义内表.

如下示例程序完成了单值<->内表的互相转换. 在实际使用配置表内容时会用到.

SAP 小技巧字段的复杂数据限定 - 封面图
SAP 小技巧字段的复杂数据限定 - 封面图
SAP 小技巧字段的复杂数据限定 - 封面图
SAP 小技巧字段的复杂数据限定 - 封面图

_**02** _

**输入帮助**

在示例表中ZTMM_BP_C1中, 正确维护字段内容是比较麻烦的, 虽然字段帮助中给出了样例,

但实际使用还是比较麻烦并且容易出错,因此考虑使用动态选择创建一个搜索帮助,实现这一类的字段的数据输入帮助,避免出现错误.

**为了维护简单,最好使用一个通用搜索帮助实现数据输入帮助.**

**

**

如下图,在SE16N中,可以通过搜索帮助把维护的内容放到一个选择屏幕中,用来校验复杂限制条件是否输入正确.

同时在选择屏幕中填写的内容, 也会转换成单一字段内容,填入该字段.

SAP 小技巧字段的复杂数据限定 - 封面图
SAP 小技巧字段的复杂数据限定 - 封面图
SAP 小技巧字段的复杂数据限定 - 封面图
SAP 小技巧字段的复杂数据限定 - 封面图

确认选择条件后, 通过搜索帮助输出这个拼接的字符串.双击后覆盖原字段内容

SAP 小技巧字段的复杂数据限定 - 封面图
SAP 小技巧字段的复杂数据限定 - 封面图

缺陷

目前搜索帮助没有识别字段的显示/修改模式, 呈现的动态选择屏幕都允许修改. 但是通过搜索帮助的机制限定了显示模式无法最终更新数据.

实现方式

如果字段有特定的业务含义 (比如示例的字段ZBU_GROUP,表达了合作伙伴分组的复杂限制 ),可以通过下述方式简单实现搜索帮助功能

_**01** _

**建立参考关系**

设置字段与参考表/参考字段的关系

需维护配置表ZTBC_FIELD_REF, 建立改字段与系统表/字段的关系. 以便后续动态生成选择屏幕

SAP 小技巧字段的复杂数据限定 - 封面图
SAP 小技巧字段的复杂数据限定 - 封面图

_**02** _

**设置搜索帮助**

特定字段的数据元素分配通用搜索帮助ZSH_RANGES

因为搜索帮助的参数需要限定类型. 目前固定为CHAR 200. 因此此类字段的类型需要限定为 CHAR 200.

SAP 小技巧字段的复杂数据限定 - 封面图
SAP 小技巧字段的复杂数据限定 - 封面图

_**03** _

**通用搜索帮助**

通用搜索帮助ZSH_RANGES,使用了搜索帮助出口实现上述功能

SAP 小技巧字段的复杂数据限定 - 封面图
SAP 小技巧字段的复杂数据限定 - 封面图

更复杂的场景

在动态报表中使用的场景中.

> 详见链接 无峰,公众号:ABAP 技巧与实战 [ 动态报表D-Query简介

> ](http://mp.weixin.qq.com/s?__biz=Mzg4MjA1MjE4NQ==&mid=2247486429&idx=1&sn=8cbab08040255baa4c7495e6e106230d&chksm=cf5dd6ebf82a5ffdf6cd2cca5ef3b3a298dcb7e3aac2b4cae5073af9c6720bf57b5544c57a49#rd)

允许用户设置选择字段的默认选择条件

默认选择内容字段没有具体的业务含义(无法直接关联到一个参考表/参考字段),需要通过当前行的表名/字段名建立参考关系

SAP 小技巧字段的复杂数据限定 - 封面图
SAP 小技巧字段的复杂数据限定 - 封面图

此时需要为它单独创建一个搜索帮助

添加参考表/参考字段 ,勾选IMP标记(改标记表示同一行中关联字段内容自动输入)

SAP 小技巧字段的复杂数据限定 - 封面图
SAP 小技巧字段的复杂数据限定 - 封面图

给结构中的字段分配搜索帮助

这里可以把包含当前结构的上层结构作为表名,如下图

SAP 小技巧字段的复杂数据限定 - 封面图
SAP 小技巧字段的复杂数据限定 - 封面图

实现效果

SAP 小技巧字段的复杂数据限定 - 封面图
SAP 小技巧字段的复杂数据限定 - 封面图

执行后,可以看到搜索帮助生成的复杂数据限定字符串, 双击回写到默认选择内容字段中

SAP 小技巧字段的复杂数据限定 - 封面图
SAP 小技巧字段的复杂数据限定 - 封面图

代码实现

有偿获取源代码.

对源码感兴趣的朋友可以给文章打赏(200微信豆)后,联系微信号392077索取

总结

通过在单个字段中维护复杂的数据限定条件,可以简化配置表结构(主从->单表). 当多字段都需要这种复杂数据限定时,极大的简化了配置表.

通过搜索帮助辅助实现复杂数据限定的内容,提供了一个良好的界面给用户使用.避免用户维护错误.

搜索帮助设定在数据元素或表字段层级. 会自动带入相应的屏幕界面及ALV字段中.

** THE **

** END **

**约定**

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

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

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

请微信联系管理员

syjf1976

sharry_xlp

Yannick_Duan

申请进入公众号讨论群提问或者参与话题讨论

ABAP技巧与实战

关于作者:ABAP技巧与实战

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

来源说明:本文内容由「SAP小技巧字段的复杂数据限定.md」整理生成,仅用于内部技术分享与学习交流。