有没有办法通过类型表语法排除组件?

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 不想要的,因为我知道了

以上是关于有没有办法通过类型表语法排除组件?的主要内容,如果未能解决你的问题,请参考以下文章

AS查看依赖关系和排除依赖关系的办法

AS查看依赖关系和排除依赖关系的办法

AS查看依赖关系和排除依赖关系的办法

通过 Impala 的 Parquet 压缩类型

有没有办法从 FluentAssertions 中的 .BeEquivalentTo(..) 中排除标有 [Obsolete] 属性的属性?

循环通过排除指定工作表的工作表