什么是 SAP ABAP 的 include structure
2023-01-01 本文已影响0人
_扫地僧_
结构(注意 structure 并不是
数据库表或视图)可以作为包含结构(include structures
)包含在数据库表中。
只有当一个结构的组件满足所有的表字段先决条件时,该结构才能包含在表中。 特别注意一点,包含的结构不能包含任何子结构(sub structure)。 必须通过定义后缀来绕过任何命名冲突。
与在常规结构中一样,可以为 include 指定一个组的名称。
当包含一个结构时,它的所有字段都可以标记为 key 字段。 然后必须将 include 结构插入现有的 key 字段中或直接插入它们
之后。 包含结构的各个字段本身不能设置为 key 字段。
当包含一个包含结构时,可以为整个结构设置初始值标志。 在这种情况下,设置了此属性的包含结构中的那些字段也保留其属性。 如果未为包含的包含结构设置初始值标志,则其字段均不具有此属性。
包含结构的字段仍然是结构的一部分。 它们只能使用结构进行编辑,对结构所做的任何更改都会应用于所有包括数据库表。包含的包含结构的字段也可以转换为不再与最初包含的结构相关联的数据库表的直接字段。
下图是一个例子:
结构的长度受到限制,以满足所有支持的数据库平台的要求。但是可以用 一个标注来标记表,以允许在需要实现某些 feature 的情况下绕过此限制。 当使用 Open SQL 访问以这种方式标记的表时,会出现语法检查警告。 该警告表明必须进行跨平台的替换实现。ABAP 开发类 CL_ABAP_DBFEATURES 可用于识别当前数据库系统支持的限制。