💂作者简介: THUNDER王,一名热爱财税和SAP ABAP编程以及热爱分享的博主。目前于江西师范大学本科在读,同时任汉硕云(广东)科技有限公司ABAP开发顾问。在学习工作中,我通常使用偏后端的开发语言ABAP,SQL进行任务的完成,对SAP企业管理系统,SAP ABAP开发和数据库具有较深入的研究。
💅文章概要: 本文主要对SAP ABAP中数据字典数据类型进行一个分类简介,在此前文章中我们已经对数据字典数据类型有了一个最基本的了解,本文在此基础上会进行数据字典数据类型的分类讲解。
🤟每日一言: 永远年轻,永远热泪盈眶!
目录
- 前言
- 数据字典概要
- 数据库表
- 视图
- 数据元素
- 域
- 结构
- 表类型
- 类型组
- 搜索帮助
- 锁对象
- 写在最后的话
前言
本文主要对SAP ABAP中数据字典数据类型进行一个分类简介,在此前文章中我们已经对数据字典数据类型有了一个最基本的了解,本文在此基础上会进行数据字典数据类型的分类讲解。
数据字典概要
在SAP系统中,【T-CODE:SE11】
(ABAP Dictionary)是一个功能强大的工具,用于创建和维护ABAP数据字典。ABAP数据字典是一个集中的地方,用于定义和管理数据类型
。
PS:如下图所示为
ABAP字典:初始屏幕
样式
在ABAP数据字典中,存在以下若干类数据类型
:
- 数据库表
- 视图
- 数据元素
- 结构
- 表类型
- 类型组
- 域
- 搜索帮助
- 锁对象
PS:下面让我们一起来分别了解一下它们吧!
数据库表
数据库表是用于存储结构化数据的主要对象
。在【T-CODE:SE11】
中,我们可以定义表的字段、数据类型、长度、关键字和约束等。通过定义表,我们可以建立数据的结构,确保数据的一致性和完整性。
在SAP业务中所有数据都储存在【T-CODE:SE11】
中的数据库表中,数据库表
是ABAP中极为重要的数据结构之一。
另外,数据库表可以在【T-CODE:SE38】
中被用于参照定义表类型
或者结构
PS:下图是数据库表SFLIGHT的表结构展示
视图
ABAP中视图是基于一个或多个表的查询结果集
。在【T-CODE:SE11】
中,我们可以定义视图来满足特定的查询需求。通过定义视图,我们可以简化复杂的查询操作,并提供更方便的数据访问方式。
PS:视图和数据库表很像,不过通过视图我们可以隐藏一些不愿意向外界展示的数据库表中字段。
数据元素
在【T-CODE:SE11】
中,我们可以定义数据元素
,它是数据字典的基本构建块。数据元素定义了一个字段的语义和数据类型。通过定义数据元素,我们可以确保在整个系统中对相同类型数据的一致使用。数据元素还允许我们指定字段的输入和输出格式,并提供有关字段的数据类型、长度和小数位数的信息。
数据元素一般被用于维护数据库表、结构或者表类型的字段描述,又或者是在【T-CODE:SE38】
中被用于参照定义数据对象或者自定义数据类型。
PS:下图所示是SFLIGHT数据库表中CARRID字段的对应数据元素。
域
域是定义字段技术属性的一种数据结构。它包含了数据类型、长度、小数位数、输入检查规则等信息。域定义可以在多个数据元素和表中重复使用,确保了数据的一致性和标准化。通过使用域,可以减少重复定义和冗余的问题,并提高开发效率。
PS:下图所示为前面提到的S_CARR_ID数据元素所对应的域。
PS:严格来说,域与数据元素密切相关,但并不是数据字典数据类型本身。不过为了方便归类,在这里笔者将其也归类为数据字典数据类型。
结构
用听得懂的术语说出来,结构就是一张表的表头部分,如下图所示是一张EXCEL表格,其中学号。姓名,成绩
就是这张表的结构。
在ABAP中,结构是表类型和数据库表的骨架,其本身不能储存任何数据。但是结构体变量可以储存单条数据,一般来说,结构体变量在【T-CODE:SE38】
中又被称作为工作区
。
在【T-CODE:SE11】
中我们可以直接参照结构定义对应的数据库表或者表类型,而非使用数据元素。但是不能避免的是:在定义对应结构的过程中,也是需要数据元素
来进行字段的维护的。
PS:换句话说,表类型或者数据库表所有的字段构成了它们自身的结构。
表类型
对于ABAP初学者来说,表类型这里是最容易被绕晕的一个点,因为它和结构太像了!单从它们两个在【T-CODE:SE11】
中的定义方式来看,并无太大的区别。
通常,表类型是基于结构
定义的,我们可以使用结构中定义一个表类型,并为表类型指定相应的行类型
。这样,表类型就表示了一组具有相同结构的数据记录的集合。
使用表类型和结构的好处是可以提高代码的可维护性
和重用性
。通过使用表类型和结构,我们可以定义一次数据的结构,并在多个地方重复使用,避免了重复的字段定义和数据结构的不一致性。
PS:从笔者的角度来理解,结构和表类型的集合关系应该是结构包含表类型。表类型只能用于表相关的定义,而结构不仅可以用于表相关的定义,而且还能用于结构体相关的定义。关于该部分内容,后续会详细讲到!
类型组
类型组是由一组相关的数据类型组成,这些数据类型具有相似的特性或用途
。通过将相似的数据类型组织在一起,类型组提供了更好的可维护性
和可重用性
。
以下是类型组的几个关键特点
和用途:
-
(一) 组织相关数据类型
:类型组用于将相关的数据类型组织在一起,使其更易于管理和查找。通过将具有相似特性或用途的数据类型放在同一个类型组中,可以提高代码的可读性和维护性。 -
(二) 提供数据类型的命名空间
:类型组为包含的数据类型提供了一个命名空间。这意味着在同一个类型组中,数据类型可以具有相同的名称,但在不同的类型组中必须具有唯一的名称。这有助于避免数据类型名称的冲突和重复。 -
(三) 支持数据类型的分类和归类
:通过将数据类型分组到不同的类型组中,可以对数据类型进行分类和归类。例如,可以创建一个类型组用于存储所有与日期相关的数据类型,另一个类型组用于存储所有与货币相关的数据类型。这样可以更方便地管理和维护数据类型。 -
(四) 提供可重用的数据类型定义
:类型组中的数据类型可以在不同的程序和对象中重复使用。这样一来,可以避免重复定义相同的数据类型,提高开发效率并确保数据类型的一致性。 -
(五) 提供数据类型的共享
:通过类型组,可以在不同的ABAP程序之间共享数据类型。这意味着多个程序可以引用同一个类型组中的数据类型,而不需要每个程序都单独定义它们。这样可以减少冗余的代码和定义,提高代码的可维护性和一致性。
搜索帮助
搜索帮助
广义上来说并不属于ABAP数据字典数据类型,它是数据字典中的一个重要功能。搜索帮助是在数据字典中定义和管理
的一个功能,用于增强数据输入的能力。它提供了帮助用户输入数据的值列表或搜索界面
,以便更方便、准确地选择或搜索数据。搜索帮助可以与数据字典中的字段相关联,以提供更好的数据输入体验。
PS:下图为SAP系统的一个搜索帮助示例。
锁对象
在ABAP中,锁对象(Lock Object)
是一种用于管理并发访问的机制。它可以控制对特定数据或资源的同时访问,以确保数据的一致性和完整性。
锁对象定义了可锁定的数据单元或资源,并定义了锁定和释放锁的规则。通过使用锁对象,可以防止多个用户同时对同一数据进行修改
,避免数据冲突和不一致的情况发生。
PS:同搜索帮助,锁对象隶属于数据字典中ABAP工具一类,在此仅作简单介绍,详细讲解将在后续开设专门章节讲解。
写在最后的话
本文花费大量时间介绍了ABAP数据字典数据类型
,希望能帮助到各位小伙伴,码文不易,还望各位大佬们多多支持哦,你们的支持是我最大的动力!
✨ 原创不易,还希望各位大佬支持一下 \textcolor{blue}{原创不易,还希望各位大佬支持一下} 原创不易,还希望各位大佬支持一下
👍 点赞,你的认可是我创作的动力! \textcolor{9c81c1}{点赞,你的认可是我创作的动力!} 点赞,你的认可是我创作的动力!
⭐️ 收藏,你的青睐是我努力的方向! \textcolor{ed7976}{收藏,你的青睐是我努力的方向!} 收藏,你的青睐是我努力的方向!
✏️ 评论,你的意见是我进步的财富! \textcolor{98c091}{评论,你的意见是我进步的财富!} 评论,你的意见是我进步的财富!