有没有办法通过类型表语法排除组件?
Posted
技术标签:
【中文标题】有没有办法通过类型表语法排除组件?【英文标题】:Is there any way to exclude a component via the type table syntax? 【发布时间】:2022-01-11 19:25:42 【问题描述】:我正在尝试将全局表 gt_sel2 声明为类型表 zqmqnewslist(这是一个结构),但是 zqmqnewslist 的一个组件这是 PRUEF(类型 ZQMKZPRUEF),我不希望它在新表 gt_sel2 中。
有没有办法将表 gt_sel2 声明为类型 zqmqnewslist 而没有组件 PRUEF?我知道我们也可以通过 select 来做到这一点,在这里我们选择表 zqmqnewslist 的所有必要组件,不包括 PRUEF,但是有什么捷径吗?
提前谢谢大家!
【问题讨论】:
【参考方案1】:不使用 ABAP 语法。
如果您使用旧的 ABAP 编辑器,您可以在几秒钟内完成,如下所示。假设您要声明 BAPIRET2
的所有组件,除了 LOG_NO
:
点击“图案”按钮:
键入 DDIC 结构、表或视图名称:
选择所有组件:
通过同时按下Ctrl键并用鼠标选择组件的行来排除:
获取代码:
DATA: BEGIN OF ts_bapiret2,
type TYPE bapiret2-type,
id TYPE bapiret2-id,
number TYPE bapiret2-number,
message TYPE bapiret2-message,
log_msg_no TYPE bapiret2-log_msg_no,
message_v1 TYPE bapiret2-message_v1,
message_v2 TYPE bapiret2-message_v2,
message_v3 TYPE bapiret2-message_v3,
message_v4 TYPE bapiret2-message_v4,
parameter TYPE bapiret2-parameter,
row TYPE bapiret2-row,
field TYPE bapiret2-field,
system TYPE bapiret2-system,
END OF ts_bapiret2.
现在声明你的内部表:
DATA bapiret2_tab LIKE TABLE OF ts_bapiret2.
【讨论】:
但是,这并不能解决可维护性的问题。当有人更改原始zqmqnewslist
结构时,您必须更改代码以反映这一点,而这是 OP 不想要的,因为我知道了以上是关于有没有办法通过类型表语法排除组件?的主要内容,如果未能解决你的问题,请参考以下文章
有没有办法从 FluentAssertions 中的 .BeEquivalentTo(..) 中排除标有 [Obsolete] 属性的属性?