我们在ABAP数据字典的事务码SE11中创建数据类型(Datatype)时:可以选择创建的类型是数据元素、结构还是表类型,三者的排列方式从从上到下如下图所示。本文详细介绍了这三种数据类型的联系和使用分析。简而言之,数据元素是点,结构是线,表类型是面。作者为什么这么说?仔细听我说。ABAP数据元素(dataelement)ABAP数据元素是ABAP编程语言中对预定义数据类型的封装。这些预定义数据类型的列表如下图所示:有些ABAP初学者对此并不了解。既然ABAP编程语言提供了那么多预定义的数据类型,为什么我们还要花心思去创建DataElement呢?这不是多余的吗??其实并不是。ABAP编程语言仅仅从技术层面为我们提供了上图所示的数据类型。数据元素在技术层面之上为这些数据类型增加了商业意义。比如CHAR40,从这个描述中,我们只能知道这是一个长度为40的字符类型。在此基础上,在SAPCRM产品中创建了一个名为COMT_PRODUCT_ID的DataElement。从ShortDescription字段和Domain字段我们可以一眼看出这个DataElement所描述的业务含义就是产品ID。该数据元素还可以绑定搜索帮助。这些附加属性不能直接在纯技术类型CHAR40上维护。关于Structure与TableType和DataElement的使用差异介绍,请参考作者这篇文章。
