乐趣区

关于abap:ABAP-include-structure-的一个具体用法

在客户零碎中应用 append structure 加强 SAP 构造或 SAP 表,这种行为并不形成批改 (modification)。这一点在 SAP 官网 失去确认。

为客户零碎中的 SAP 对象创立的附加构造,位于客户命名空间(或非凡开发我的项目合作伙伴的命名空间)中,因而不会被降级笼罩。

SAP 倡议客户的加强开发,也应用来自客户名称空间的名称创立这种类型的追加构造的组件,以防止命名抵触。降级后,关联的附加构造将再次附加到 SAP 批改的表中。

构造的组件能够通过在 ABAP 字典中蕴含其余构造的组件来定义,包含数据库表或视图。这些被蕴含的构造被称为 include 构造(或简称 includes)。从技术角度看,include 构造被 include 的构造援用了被 include 的构造,每当这个构造发生变化时,都会相应地批改。蕴含构造自身能够蕴含蕴含构造,最大嵌套深度为九个蕴含。

下图的 CRMT_ORDERADM_H_EXT 就是一个 include structure:

这个 include structure 里又蕴含了两层嵌套的 include structure,如下图黄色区域所示:

  • CRMT_ORDER_EDIT_INFO
  • INCL_EEW_ORDERADM_H

当一个 include structure 被蕴含到一个已有构造时,并没有创立子结构,这意味着 include structure 里的组件字段被插入,就如同它们是在这个地位独自指定的一样,并且它们像间接定义的组件一样被解决。能够依据须要组合惯例组件和蕴含构造。

当一个构造作为蕴含构造被蕴含时,它能够被调配一个组名和一个三字符后缀。

  • 在 ABAP 程序中,组的名称是援用构造申明的数据对象的附加寻址选项。所蕴含构造的所有组件都能够应用此名称一起寻址,或者能够应用名称后的结构组件选择器 (-) 寻址单个组件。
  • 在组件名称后附加一个后缀以重命名每个组件并防止组件之间的命名抵触。蕴含在带有后缀的构造中的蕴含构造的组件的原始名称不能超过 27 个字符。

ABAP 零碎里的 demo structure DEMO_WEEK, 演示了组名和三字符后缀的一个例子:

在这个构造里,它反复蕴含了五次 include structure DEMO_DAY.

DEMO_DAY 里,蕴含两个字段 work 和 free,然而这两个字段通过 DEMO_DAY 这个 include structure 被蕴含到 DEMO_WEEK 之后,通过三字符后缀,

就产生了举世无双的命名:WORK< 三字符后缀 >,比方 WORK_MO, WORK_TU 等等。

退出移动版