一
前言
数据字典是ABAP中最基本的知识,充分使用数据字典可以给你的程序提供一些基本功能(帮助,搜索帮助,数据校验等)
这些功能可以改善程序对用户的友好度
本文主要介绍数据字典提供的基本功能
希望本文对你的ABAP编程习惯能有一些积极的影响.
二
基本功能
数据字典给ABAP程序提供如下基本功能
F1帮助
F4搜索帮助
数据校验
日志记录
填入之前使用的值
多语言支持
SAP逻辑锁
......
三
F1帮助
通过数据元素文档获取
定义的表或者结构字段使用数据元素提供字段的基本属性.可以在数据元素的文档功能中维护该字段的详细解释. 这样,所有用到这个字段的界面(SCREEN,ALV等),都可以直接通过F1获取到字段的帮助.
给字段添加详细描述是很好的习惯.用户或其它开发可以通过字段帮助了解到这个字段在程序中的具体作用.
可以在帮助中把这个字段对业务的影响,相关配置点,相关功能,维护方式,维护示例,对程序作用等等信息详细的写出来.
图一是维护数据元素文档的方式
图二是在SE16N界面(ALV界面)中在该字段按F1功能键获取的帮助信息
图一
图二
四
F4搜索帮助
SAP系统数据字典通过以下层级提供搜索帮助功能,
域值
外键表(包括文本表)
数据元素搜索帮助
表字段搜索帮助获取
在表维护界面(SE11)可以看到字段搜索帮助的来源(优先级4>3>2>1)
在通过外键表获取输入帮助的时候, 外键表最好维护一个文本表,否则搜索帮助中只有关键字,没有描述信息.
图三:搜索帮助来源是域值,数据元素搜索帮助,字段搜索帮助
图四:搜索帮助来源是外键表
图五:文本表和主表外键关系
使用数据字典的搜索帮助是程序获取搜索帮助的基本方法,程序中也可以通过语句设置特定的搜索帮助.
图三
图四
图五
五
数据校验
通过域值限制或外键表获取数据校验
域定义中,可以通过固定值,范围值或值表校验数据内容(图六)
可以通过表中定义外键关系限制校验数据内容(图七)
在SCREEN或者ALV中如果输入值超出限定,系统会给出报错信息.
如图八,通过SE16N(ALV)维护EKKO时, 输入凭证类型ZP99超出了限定,系统报错
需要注意的是,外键有可能是联合主键, 如果定义外键时没有把相关表的联合主键都定义进去, 则会出现数据无法维护的情况(通过SE16N无法维护)
需要说明的是,这些校验在输入界面上自动触发(输入界面上的字段必须参考数据字典字段). 通过SQL语句写入数据不会触发这些校验
图六
图七
图八
六
日志记录
设置数据元素change documnet 记录的开关(图九). 勾选更改文档标记后, 通过SAP标准变更文档对象(SCDO),就能记录字段级别的内容变更日志.
表技术设计中的日志数据记录.(图十). 勾选日志数据更改后, 同时设置系统参数 rec/client 系统就会把表内容的变更记录下来,通过事务代码SCU3可以查看这些变更的日志
注意: 尽量只对配置表勾选日志数据记录,对业务表勾选并激活参数将导致数据库资源的大量占用.
图九
图十
图十一
七
填入之前使用的值
通过数据元素的参数ID 可以为屏幕字段设置参数ID. 参数ID可以保留上次录入的内容,下次在该字段上自动带出.
八
多语言支持
数据元素的描述在界面上会自动带出, 并且可以通过标准翻译功能翻译到其它语言中,切换登录语言后,系统会自动切换对应语言的描述显示在屏幕上.
标准翻译功能 (SE63)
快速翻译功能 详见连接无峰,公众号:ABAP 技巧与实战SAP开发框架系列之 快速翻译功能
九
SAP逻辑锁
定义锁对象,会自动生成相应的加锁,解锁函数. 通过对加锁函数的调用, 会生成一个逻辑锁(通过SM12可以查看系统中的所有逻辑锁).
十
总结
SAP数据字典给ABAP程序提供了很多基本功能.
因此在定义数据字典的时候遵照以下规则
尽量使用数据元素/域定义字段属性
尽量通过域值或者外键表限定字段内容
尽量使用文本表定义编码的描述
尽量在数据元素中添加帮助文本
尽量在数据元素中绑定搜索帮助
勾选数据元素的更改文档标记
......
在开发程序的时候,更多的使用数据字典对象,可以让程序附带数据字典提供的基本功能,尤其是帮助功能.更多的帮助信息可以让程序更易懂,更容易被用户使用.
THE
END