ABAP学习笔记之——第七章:ABAP数据字典

news2024/9/23 9:33:35

一、数据字典

        在 ABAP 程序里使用的所有对象 (表、视图、结构体、类型等)统称为 ABAP 数据字典。这些对象的信息叫 Metadata 或者 Data Definition,另外,ABAP 数据字典有定义和管理数据结构,集中管理系统中使用的对象的功能。

数据字典类型:

1、数据库对象:

表:存储系统中生成的数据实际物理内存,是数据库的主干。

视图:由一个以上的表逻辑性结合在一起的结构,因此没有实际存储的数据,只是结合表中的数据,主要用于查询符合条件的数据。

2、类型定义:

数据元素(基本类型与参照类型): 包含字段的描述且可以参照域生成。域是定义表字段的技术属性的对象,在 ABAP 程序中不能直接参照域定义变量。

结构体(结构体类型):由拥有类型的组件构成。

表类型:用于定义内表的技能属性,其中存在特殊结构的 Range 表类型

3、Abap工具:

二、表

表由二维结构模型(Matrix)构成。列中显示各自的名字及属性,这些称之为字段 (Field)。字段是固定的,拥有不重复的唯一的名字及属性。表可以指定一个或多个字段作为主键,并且通过这些主键控制重复数据的产生。除了主键以外的字段叫一般字段General Field)或者叫功能字段(Functional Field)。另外,表的行坐标用行(Line)、元组(Tuple)、记录 (Record)、数据 (Data) 等术语表达。

表分三种:透明表、池表、簇表。池表、簇表是把多个表组合成一个ABAP数据字典对象。 

表属性:

表字段有字段名及属性。存在主键。

表字段包含以下属性:

字段名最大长度为 16 位,要以字母开头,允许使用下画线 (_)。

主键选项定义表主键。

字段要指定为主键时选择 Key 选项。一般把唯一可以区分数据的字段设置为主键。

一个表最多可以指定 16 个主键

主键字段长度合计长度可达 120。

主键基本上都选择Initial Value

选项创建表时自动创建以主键构成的主索引。

初始值用于设置字段的初始值。

NULL与Initial value(初始值)的区别:

NULL 是指“无”。

NULL 是指不存在值。不占用内存空间。

NULL 不可能是下列值。

:0,’’,SPACE,空

NULL 不能作为分配、运算、比较用对象。

在ABAP语言中类似于IS NULLIS NOT NULL的比较运算符可以用在 SOL语句中

Initial Value 是指“有”

-Initial Value 是指存在值。因此占用内存空间。

-Initial Value 可能会是下列值。

:0,,SPACE,空

-Initial Value 可以作为分配、运算、比较用对象。

在ABAP 语言中可以使用类似于IS INITIALIS NOTINITIAL 比较运算符

字段类型定义如字符型,数字型等数据类型

字段长度定义字段可容纳的数据长度。

小数位指定小数位。

记述字段意义的内容。

表创建涉及的Delivery Class

外部键定义该表与其他表之间的关系。

一般外部键:只将检查表的一部分主键定义成了外部键。此时,在外部表中追加数据,则只会检查设定为外部键的字段是否存在。这种情况叫一般外部键定义。

静态外部键:外部键中可以指定常量。当该字段的值和常量一致时才能输入值,否则就无法输入值。

技术属性设置表数据的总件数、缓冲设定等表属性。

Include结构体:创建一个公用的结构体,当很多表重复使用相同的字段时,可直接将此结构体包含到表中。

Append结构体:在实际业务中使用的 Append 结构体是指把一个结构体追加到一个表(或结构体)的方法,换句话说,就是不用直接修改表而可以追加字段的方法。

Append 结构体有下列几种功能

在标准或者 CBO 表中追加新字段

在现存表中追加及定义外部键。

在现存表中追加检索帮助。

索引可以提高查询数据的速度,在表中创建索引。若表中已经追加了索引,则每当往表中追加数据时索引中也要一起追加,因此读取速度提高的同时插入数据的速度反而下降

 

三、结构体

        结构体 (Structure) 和表一样由字段构成,但不能存储数据,只是拥有结构。在实际数据库中不存在,而只存在于 ABAP 数据字典中,是一个类型。

        结构体在 ABAP 程序中是以参照类型或表及结构体的从属结构 (INCLUDE、APPEND)形式使用的。类似于表用TABLES 语句定义结构体,可以当个别程序的工作区使用。另外,结构体可以用于定义模块池画面(Screen)的接口及函数的参数类型。

        结构体可以包含其他结构体且可以无限包含。

四、视图

关系型数据库中存在多个表,且这些表中的数据很多情况下都是分散存在的。在这种情况下需要一次查询所有数据时就要使用视图。

 

视图类型:

数据库视图 (Database View)。

数据库视图是在多个表中提取必要的数据的视图。激活视图后在 ABAP 数据字典中可以使用,它是通过ABAP数据字典定义的,因此和一般ABAP数据字典表一样可以用OPEN SOLNATIVE SOL 从程序中读取数据。

投影视图 (Projection View)。

可以同时维护多个表中的数据的对象叫维护视图,此时表之间是由外部键连接在一起的。SAP R/3 是逻辑性单位,因此很多情况下数据都存在于多个表中。此种情况下利用维护表可以一次性查询/变更/创建所有数据。

帮助视图 (Help View)。

维护视图(Maintenance View)

创建视图可能会用上的属性工具:

视图字段选项:

 视图访问选项:

 表维护器选项:

五、表类型

表类型特性:

为了定义内表行数据类型属性与结构体的行类型

为了访问及内表数据的选项 (Access Mode)。

内表的主键(主键定义与主键范畴)。

创建表类型相关说明:

访问模式:

 主键定义:

访问模式与主键范畴:

 

RANGE表类型:RANGE 表类型是特殊表类型,在 ABAP 程序中当 RANGE 变量使用。

RNAGE 表类型是 ABAP 数据字典,因此是在所有程序中都可以使用的对象。与此相反,RANGE变量是在个别程序中用 RANGES 语定义而使用的对象。RANGES 变量的结构与带表头的 SELECT-OPTIONS 的结构相同。若从部传入值为目的的对象是 SELECT-OPTIONS,则RANGES 变量主要用于内部变量。本地 RANGE 变量使用下列语句定义。        

RANGE变量由下面4个结构组成:

SIGN: I(Inclusive), E(Exclusive)。

OPTION: EQ (等于),BT (区间值),GE (大于等于),LE (小于等于),GT(大于),LT (小于),NE(不等于),CP (包含)。

LOW: FROM值。

 

六、域

定义:域(DOMAIN)是定义字段的技术属性,是分配到数据元素中使用的对象。

定义表字段类型、长度等技术属性的对象叫域,而记述字段内容等信息的对象叫数据元素。所有表与结构体可以使用分配了域的数据元素定义字段。

 

七、数据元素

定义:数据元素就是拥有表字段的所有信息的 ABAP 数据字典对象。

数据元素与基本类型:

定义元素的技术属性方法有两种:

  • 使用域。在前面已经介绍,域是 ABAP 数据字典中独立存在的存储对象,是定义数据元素的技术属性的对象。一个域可以在多个数据元素中使用。
  • 直接使用数据类型。数据类型 (Data Type) 是事先定义在ABAP 数据字典中的经常使用的数据类型,和基本数据类型一样可以在程序内参照使用。

基本数据类型与数据字典类型

 数据字典类型种类

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

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

相关文章

Spring框架(五):SpringAop底层原理和注解配置

SpringAop底层原理和注解配置引子Aop简介利用Aop原理实现一个Demo(代理模式)Aop的xml方式实现Aop的注解方式实现总结引子 痛定思痛,主要问题出现在自己雀氏不熟悉框架底层、一些面试题,以及sql的一些情况淡忘了。 本章节的开始是…

[附源码]计算机毕业设计学生疫情防控信息填报系统Springboot程序

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

【信号去噪】基于变分贝叶斯卡尔曼滤波器实现信号滤波附matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。 🍎个人主页:Matlab科研工作室 🍊个人信条:格物致知。 更多Matlab仿真内容点击👇 智能优化算法 …

安卓APP源码和设计报告——智能垃圾桶

课程名称: 移动互联网应用开发 实验名称: 姓名/学号: 专业/班级: 指导教师: 实验时间: 一、案例功能需求 该系统是了解垃圾分类以及物品查询属于哪类垃圾的智能化APP。该系统可以实现用户登陆注册&a…

[附源码]计算机毕业设计JAVA校园摄影爱好者交流网站

[附源码]计算机毕业设计JAVA校园摄影爱好者交流网站 项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM …

Web大学生网页作业成品 基于HTML+CSS+JavaScript个人简历介绍 学生个人网站作业设计代做 学生个人网页设计作品

🎉精彩专栏推荐👇🏻👇🏻👇🏻 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业…

【历史上的今天】12 月 3 日:世界上第一条短信;Fortran 语言之父诞生;百度贴吧上线

整理 | 王启隆 透过「历史上的今天」,从过去看未来,从现在亦可以改变未来。 今天是 2022 年 12 月 3 日,在 21 年前的今天,电动平衡车(Segway)问世;电动平衡车是一种电力驱动、具有自我平衡能力…

教师教学质量评价管理系统(ASP.net+SqlServer)

目录 摘 要 I Abstract II 目录 III 第一章 引言 1 1.1 课题的背景和意义 1 1.2 教学质量评价信息系统的发展 1 1.2.1 国外主要教育评价方法 1 1.2.2我国高校教师教学评价的发展 2 第二章 开发技术简介 3 2.1 .NET框架简介 3 2.2 ASP.NET简介 4 2.3 SQL Server 2008数据库 5 第…

Cinema 4D初学者终极指南

Cinema 4D初学者终极指南 通过此 Cinema 4D 课程将您的设计技能提升到一个新的水平,进入 3rd Dimension 课程英文名:Cinema 4D Masterclass The Ultimate Guide for Beginners 此视频教程共5.0小时,中英双语字幕,画质清晰无水印…

[附源码]Python计算机毕业设计Django面包连锁店管理系统

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

北京一互联网公司被端,所有开发被全部带走!

△Hollis, 一个对Coding有着独特追求的人△这是Hollis的第 407 篇原创分享作者 l Hollis来源 l Hollis(ID:hollischuang)近日,北京市朝阳公安分局对外公开,按照公安部“净网”专项行动整体部署,朝阳警方深入…

视觉SLAM十四讲ch4笔记——李群与李代数

文章目录视觉SLAM十四讲ch4——李群与李代数4.1 李群李代数基础4.2 指数映射和对数映射4.2.1 so(3)↔SO(3)so(3) \leftrightarrow SO(3)so(3)↔SO(3)4.2.2 se(3)↔SE(3)se(3) \leftrightarrow SE(3)se(3)↔SE(3)4.2.3 小总结:so(3)↔SO(3)so(3) \leftrightarrow SO(…

AOP工作流程

由于AOP是基于Spring容器管理的bean做的增强,所以整个工作过程需要从Spring加载bean说起: 流程1:Spring容器启动 容器启动就需要去加载bean,哪些类需要被加载呢? 需要被增强的类,如:BookServiceImpl 通知类,如:MyAdvice 注意此时bean对象还没…

【POJ No. 3468】 简单的整数问题 A Simple Problem with Integers

【POJ No. 3468】 简单的整数问题 A Simple Problem with Integers 北大OJ 题目地址 其实这道题之前也已经 做过了 https://blog.csdn.net/weixin_44226181/article/details/128112081 上次就 直接用的区间更新 和区间查询。这次 我们使用 分块方法实现一次。 【题意】 有N…

IDEA搭建Android开发环境及创建Helloword项目并运行

IDEA开发Android环境搭建 安装jdk JDK版本 :jdk-8u161-windows-x64.exe 链接:https://pan.baidu.com/s/1leC6nilGeCEYsD99Rlt5hQ 提取码:0epq 配置环境变量 配置成功会出现如下所示 安装sdk 安装完成后,SDK的目录如下&#…

数据分享|R语言分析上海空气质量指数数据:kmean聚类、层次聚类、时间序列分析:arima模型、指数平滑法...

全文链接:http://tecdat.cn/?p30131最近我们被客户要求撰写关于上海空气质量指数的研究报告。本文向大家介绍R语言对上海PM2.5等空气质量数据(查看文末了解数据免费获取方式)间的相关分析和预测分析,主要内容包括其使用实例&…

[附源码]计算机毕业设计学习互助辅助系统Springboot程序

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

菜谱APP源码和设计报告

《移动互联开发》 课程作业 学 院: 班 级: 学 号: 姓 名: 日 期: 设计要求(提交文档时需删除): 1.本课程设计作为《Android 程序设计》的期末考查内容。 2.任务安排: &…

WAVE SUMMIT+2022飞桨平台新升级 全面支撑大模型研发与产业化

11月30日,由深度学习技术及应用国家工程研究中心主办的WAVE SUMMIT 2022深度学习开发者峰会如期举行。峰会上,百度AI技术生态总经理马艳军发布了飞桨深度学习平台的最新技术和生态进展,全新发布飞桨开源框架2.4版本,带来业界首个端…

在Linux中部署运维监控系统WGCLOUD

在公网IP为x.x.x.x,安装CentOS8或Alibaba Cloud Linux 3.2104 LTS 64位系统的服务器(服务端)上,先安装jdk8,然后安装数据库mariadb-10.5,最后进行server安装。 在需要监控的安装CentOS8或Alibaba Cloud L…