【ABAP】数据类型(三)「数据字典数据类型」

news2024/9/21 0:47:13

在这里插入图片描述

💂作者简介: 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}{评论,你的意见是我进步的财富!} 评论,你的意见是我进步的财富!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/675731.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Unity简单的移动相机

Unity3D制作一个会移动的方块(还不会移动照相机)_SMG_DSG的博客-CSDN博客 接着上一次的文章代码,我们继续写,其实简单的移动也是非常简单,我们只需要使用一个相机一直面对着方块的函数就行了 好了,废话不…

Tkinter之窗口布局介绍

Tkinter之窗口布局介绍 关于Python 的Tkinter窗口基础可参见https://blog.csdn.net/cnds123/article/details/127227651 Tkinter 之几何管理器(geometry manager),也叫布局(layout),是用来控制窗体中小部…

STM32单片机(八)DMA直接存储器存取----第二节:DMA直接存储器存取练习(DMA数据转运和DMA+AD多通道)

❤️ 专栏简介:本专栏记录了从零学习单片机的过程,其中包括51单片机和STM32单片机两部分;建议先学习51单片机,其是STM32等高级单片机的基础;这样再学习STM32时才能融会贯通。 ☀️ 专栏适用人群 :适用于想要…

PyTorch深度学习实战(4)——常用激活函数和损失函数详解

PyTorch深度学习实战(4)——常用激活函数和损失函数详解 0. 前言1. 常用激活函数1.1 Sigmoid 激活函数1.2 Tanh 激活函数1.3 ReLU 激活函数1.4 线性激活函数1.5 Softmax 激活函数 2. 常用损失函数2.1 均方误差2.2 平均绝对误差2.3 分类交叉熵 2.4 实现自…

分享一组开关按钮

先看效果&#xff1a; 再看代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>豆子开关</title><style>* {margin: 0;padding: 0;box-sizing: border-box;-webkit-tap-hi…

STM32单片机(八)DMA直接存储器存取----第一节:DMA直接存储器存取

❤️ 专栏简介&#xff1a;本专栏记录了从零学习单片机的过程&#xff0c;其中包括51单片机和STM32单片机两部分&#xff1b;建议先学习51单片机&#xff0c;其是STM32等高级单片机的基础&#xff1b;这样再学习STM32时才能融会贯通。 ☀️ 专栏适用人群 &#xff1a;适用于想要…

使用Python制作简单的图表并设置图表元素

案例01 在python中制作简单的图表 import matplotlib.pyplot as plt # 导入matplotlib模块 x [1, 2, 3, 4, 5, 6] # 给出x坐标的数据 y [2, 4, 6, 8, 10, 12] # 给出y坐标的数据 plt.plot(x, y, color red, linewidth 3, linestyle solid) # 绘制折线图 plt.show() # …

动态库的入口——VCRT(DLL)和CRT(SO)

摘要&#xff1a;为了更加深入的理解动态库的加载初始化过程&#xff0c;本文根据VCRT和Linux-CRT的代码实现详细描述了windows和linux平台下对应动态库加载时会进行哪些工作。本文重点关注全局变量的初始化时机&#xff0c;以及是否有其他额外的操作。   关键字&#xff1a;…

被微服务循环依赖调用坑了 !

最近的迭代转测后&#xff0c;遇到了一个比较有意思的问题。系统在测试环境整体运行还算平稳&#xff0c;但是过一段时间之后&#xff0c;就开始有接口超时了&#xff0c;日志中出现非常多的 “java.net.SocketTimeoutException: Read timed out”。 试了几次重启大法&#xf…

用魔法打败魔法!用AI制作AI分割数据集!

本节内容我们使用SAM将边界框转换为分割数据集&#xff0c;这对于实例分割数据集的制作非常有用&#xff0c;下面我会一步步给出我的代码&#xff0c;希望对你有用。 有兴趣的朋友可以研究一下这本书&#xff0c;详细的介绍了数据集制作到分割的实际项目应用&#xff01; 步骤 …

【 计算机组成原理 】期末重点

文章目录 前言第一章 【计算机系统概论】1.1 知识点1.1核心例题 第二章 【运算方法和运算器】2.1 知识点2.2 核心例题 第三章 【存储系统】3.1 知识点3.2 核心例题 第四章 【指令系统】4.1 知识点4.2 核心例题 第五章 【中央处理器】5.1 知识点5.2 核心例题 第六章6.1 知识点6.…

【MSP432电机驱动学习—上篇】TB6612带稳压电机驱动模块、MG310电机、霍尔编码器

所用控制板型号&#xff1a;MSP432P401r 今日终于得以继续我的电赛小车速通之路&#xff1a; 苏轼云 “ 素面常嫌粉涴 &#xff0c; 洗妆不褪朱红。 ” 这告诫我们不能只注重在表面粉饰虚伪的自己&#xff0c;要像梅花一样&#xff0c;不断磨砺自己的内在~ 后半句是 “…

JavaSE基础语法--类和对象

在Java中&#xff0c;一切皆为对象&#xff0c;类和对象是一个抽象的概念。我们可以从面向过程来过渡到面向对象。 那么什么是面向过程呢&#xff1f; 举一个简单的例子&#xff0c;现实生活中&#xff0c;你需要买一台手机的时候会经历如下步骤&#xff1a; 这里的每一步都可…

【python程序设计】——期末大作业

【python程序设计】——期末大作业&#x1f60e; 前言&#x1f64c;一、所用技术&#xff1a;二、 系统设计三、 系统实现3.1 核心功能代码实现&#xff1a;3.2 演示结果展示 总结撒花&#x1f49e; &#x1f60e;博客昵称&#xff1a;博客小梦 &#x1f60a;最喜欢的座右铭&am…

yaffs格式的根文件系统制作

linux内核启动后&#xff0c;它接下来要做的事就是启动应用程序&#xff0c;而应用程序在哪里呢&#xff0c;类比windows&#xff0c;启动时要读取c盘&#xff0c;所以linux的文件系统就类似于c盘&#xff0c;并且我们使用的ls、cp等一些类命令&#xff08;本质是应用程序&…

JavaScript 手写代码 第二期

文章目录 1.为什么要手写代码&#xff1f;2. 手写代码2.1 手写实现判断类型函数2.1.1 前置知识2.1.1 手写实现 2.2 手写实现aplly,call,bind方法2.2.1 基本使用2.2.2 实现思路2.2.3 手写实现 1.为什么要手写代码&#xff1f; 我们在日常开发过程中&#xff0c;往往都是取出来直…

Linux(centos7)缺失.bashrc文件登录出现bash-4.2

一、问题描述 最近遇到几次登陆linux&#xff08;centos7.5&#xff09;系统后&#xff0c;虽然在/root用户下&#xff0c;但出现了如下界面&#xff1a; 二、解决思路 使用不同的linux发行版本&#xff0c;&#xff08;比如&#xff1a;IP为*...90,以下简称90&#xff09;会…

课程19:个人中心功能与提示优化

🚀前言 本文是《.Net Core从零学习搭建权限管理系统》教程专栏的课程(点击链接,跳转到专栏主页,欢迎订阅,持续更新…) 专栏介绍:以实战为线索,基于.Net 7 + REST + Vue、前后端分离,不依赖任何第三方框架,从零一步一步讲解权限管理系统搭建。 专栏适用于人群:We…

Android中加载一张大图,如何正常显示且不发生OOM ?

问题 在Android中&#xff0c;获取一个1000*20000(宽1000px&#xff0c;高20000px)的大图&#xff0c;如何正常加载显示且不发生OOM呢? 分析 Android系统会为应用分配一定大小的堆内存 而如果遇到高分辨率图片时&#xff0c;如果它的配置为ARGB(每个像素占4Byte) 那么它要消…

深度学习(23)——YOLO系列(2)

深度学习&#xff08;23&#xff09;——YOLO系列&#xff08;2&#xff09; 文章目录 深度学习&#xff08;23&#xff09;——YOLO系列&#xff08;2&#xff09;1. model2. dataset3. utils4. test/detect5. detect全过程 今天先写YOLO v3的代码&#xff0c;后面再出v5&…