ABAP 字典
ABAP 字典
📊 数据库语言分类
SQL的两个组成部分
| 分类 | 功能 | 示例命令 |
|---|---|---|
| DML (数据操作语言) | 查询和更新数据 | SELECT, INSERT, UPDATE, DELETE |
| DDL (数据定义语言) | 定义数据库结构 | CREATE TABLE, CREATE INDEX, DROP TABLE, ALTER TABLE |
ABAP与字典的关系
- ABAP程序:处理SQL的DML部分
- ABAP字典:处理SQL的DDL部分
🗃️ ABAP字典概念
字典定义
ABAP字典是驻留在SAP数据库中的元数据(即关于数据的数据)以及由数据库维护的元数据。
字典功能
graph TB
A[ABAP字典] --> B[创建和管理数据定义]
A --> C[创建表结构]
A --> D[创建数据元素]
A --> E[创建域]
A --> F[创建视图]
A --> G[定义类型]
🔧 字典中的基本类型
三种基本类型
| 类型 | 描述 | 用途 |
|---|---|---|
| 数据元素 | 定义数据类型、长度和小数位数 | 描述基本数据类型 |
| 结构 | 可以具有任何类型的组件 | 复合数据类型 |
| 表类型 | 描述内部表的结构 | 内部表定义 |
全局区域概念
字典被称为全局区域,因为:
- 字典中的对象对所有ABAP程序都是全局的
- ABAP程序中的数据可以通过引用这些Dictionary全局对象来声明
- 避免了数据定义的重复
🎯 字典的主要任务
实现的功能
强制数据完整性
- 确保数据的一致性和有效性
- 实施业务规则和约束
管理数据定义
- 避免数据定义的冗余
- 统一数据标准
紧密集成
- 与ABAP开发工作台紧密集成
- 提供统一的开发环境
🏗️ 数据结构示例
客户数据结构示例
graph TD
A[客户结构] --> B[名称]
A --> C[地址]
A --> D[电话]
B --> B1[名字]
B --> B2[姓氏]
C --> C1[街道]
C --> C2[城市]
C --> C3[邮编]
D --> D1[电话号码1]
D --> D2[电话号码2]
D --> D3[电话号码3]
类型说明
| 组件 | 类型 | 说明 |
|---|---|---|
| 名称 | 结构 | 包含名字和姓氏 |
| 地址 | 结构 | 包含街道、城市、邮编 |
| 电话 | 表类型 | 客户可以有多个电话号码 |
🔍 字典支持的编辑工具
搜索工具
- 搜索帮助:帮助用户输入有效数据
- 输入帮助:提供数据选择功能
锁定工具
- 锁定对象:保护数据完整性
- 锁机制:防止并发访问冲突
📝 对象激活机制
自动创建过程
当对象被激活时:
- 字典对象在底层数据库中自动创建
- 生成相应的数据库结构
- 创建索引和约束
开发工作台集成
graph LR
A[ABAP开发工作台] --> B[ABAP字典]
B --> C[数据定义]
B --> D[数据库对象]
B --> E[编辑工具]
💡 字典使用场景
1. 功能模块接口
1 | * 功能模块接口参数类型定义 |
2. 数据库表定义
1 | * 使用字典类型定义数据库表 |
3. 数据类型声明
1 | * 引用字典中的数据元素 |