数据字典篇.docx
- 文档编号:23721876
- 上传时间:2023-05-20
- 格式:DOCX
- 页数:34
- 大小:1.64MB
数据字典篇.docx
《数据字典篇.docx》由会员分享,可在线阅读,更多相关《数据字典篇.docx(34页珍藏版)》请在冰豆网上搜索。
数据字典篇
一:
数据字典相关的概念术语
1:
掌握重点介绍
1理解数据字典相关的概念术语,具体包括:
域,数据元素,字段,结构,表格类型,表,视图,索引,主键,外键,检查表,搜索帮助,锁对象,类型池,CONVERTROUTINE,表的增强,跨客户端,表格维护生成器,WHERE-USED功能运用,对象命名规则,版本控制
2掌握数据字典相关的常用工具,包括:
SE11,SE16,SE14,SE16N等
3掌握数据字典相关对象的创建,修改和查看及其作用是什么?
具体包括:
域:
掌握格式和输出属性定义,掌握valuerange含义和设定
数据元素:
定义,绑定搜索帮助和PARAMETERID,如何找到系统既有的符合我们要求的数据元素
结构的定义:
CHECKTABLE,SEARCHINGHELP的运用,货币,数量字段的参照单位问题,APPENDSTRUCTURE的运用场合,INCLUDESTRUCTURE的运用
表格类型的定义:
掌握定义及其运用场景
表的定义:
定义及表格维护生成器的运用,以及如何调整自动生成的维护界面和添加自定义逻辑控制,如何给维护程序分配TCODE
视图:
视图的定义,作用以及如何运用
1.TYPEPOOLS的引用和定义
2:
ABAP数据字典(ABAP Dictionary)
SAPABAP数据字典(ABAP Dictionary)是SAP定义和管理数据的主要工具,是 ABAPWorkbench 的重要组成部分。
通过数据字典可以定义系统中的各类数据对象,包括数据类型、数据结构、数据库表、视图等。
数据字典中的所有对象可以供所有SAP程序使用。
用户也可以创建自定义表,称之为Add-On表,一般通过字母 ‘Z’ 或者 ‘Y’ 开头定义
SAP R/3系统提供了以下 T-Code 维护ABAP数据字典:
SE80–RepositoryBrowser
SE15–RepositoryInformationSystem
SE16/SE16N–DataBrowser
SE11 – ABAPDictionary
SE13–Dictionarytechnicalsettings
SM30–MaintainTableViews
SM31–TableMaintenance
其中,SE11为数据字典的维护工具:
3:
基础数据字段对象
SAP透明表(TransparentTable),系统中存储数据的物理表;由多个Field对象组成,而Field对象则通过参考DataElement对象定义,而DataElement对象又通过参考Domain对象定义,逐层往上继承:
4:
抽象级别
Domain:
域,也称之为数据域,它是所有数据对象设置的基础;
从前面数据类型的章节中知道,ABAP有8种基本类型,然而Domain可以通过基本类型定义数据类型、格式、长度、初始化值等属性。
SAPR/3系统为Domain提供了以下基本预定义类型:
DateElement:
所有数据对象定义的基本类型,它可以以Domain作为参照对象,继承Domain的所有属性;
但是它可以在Domain的基础上重新定义相关长度、格式等属性,一个Domain下可包含多个DataElement。
Field:
透明表字段,可以作为透明表的主/外键,继承了DataElement的所有属性。
5:
Domain对象创建与维护
Domain的维护界面包括 Properties、Definition、ValueRange三个选项卡:
5.1Properties选项卡:
用于记录Domain对象的创建人、创建时间、归属开发包、语言版本属性;
5.2Defintion选项卡:
主要用于定义该Domain对象的类型;
ShortDescription:
基本描述(必输项);
DataType:
预定义数据类型;
No.Characters:
可保存数据字符最大长度;
DecimalPlaces:
小数点长度,用于数字类型;
OutputLength:
显示输出的长度;
Convers.Routine:
定义数据转换程序名;
很多数值在数据表中的保存值与其输出的表现值是不同的。
如:
计量单位PC在数据库中保存实际为ST,所以该类型需要相关程序进行转换,如:
单位转换函数格式为:
CONVERSION_EXIT_CUNIT_INPUT,此处取其CUNIT为定义转换函数,所有转换函数格式均为:
CONVERSION_EXIT_XXX_INPUT/OUTPUT,其中XXX为域定义函数名。
Sign:
是否包含负数,用于数字类型;LowerCase:
是否允许小写;SAP中字段输入值传入系统后,都会被转换为大写格式,选择选项后,可允许输入小写;
5.3ValueRange选项卡:
定义Domain数值范围,限制该Domain输入/输出值
只能输入:
C、Y、F中的一种。
6:
DataElement对象创建与维护
在DataType文本框输入域中,输入自定义的DataElement,以’Z’或’Y’开头,然后点击”Create”按钮创建DataElement;在新建DataElement时,与Domain不同的是,DataElement会弹出对话框,让你选择哪种DataElement:
DataElement:
是一般的数据类型;Structure:
结构体,在《内表与内表结构》章节中介绍过结构体,可以作为一种数据类型维护在数据字典中;TableType:
透明表类型;可以查看已存在的DataElement:
DataElement也包括4个标签选项卡:
Attribute、DataType、FurtherCharacteristics、FieldLabel。
6.1Attribute选项卡:
与Domain的Properties一致,显示创建人、创建日期等基本信息;
6.2DataType选项卡:
区分ElementaryType 和 ReferenceType;
ReferenceType 为参考数据字典中已存在的具体类定义。
ElementType 则又有两种定义方式:
1)通过Domain定义,可以输入已经定义好的Domain,而DataType、Length、DecimalPlaces等属性会继承该Domain在系统中自动带出;2)通过R/3系统预定义类型(PredefinedType)定义,需要手动设置相应参数:
a.输入R/3系统预定义类型,或按F4键,通过搜索帮助(SearchHelp)选择预定义类型;
b.在Length输入DataElement的长度;
c.DecimalPlaces用于数字类型,显示数字保留多少位小数点;若DataType为QUAN的数值类型,可在这里定义需要保留几位小数。
6.3FurtherCharacteristics选项卡:
DataElement的高级参数设置;
可以对DataElement设置其Search Help,ParameterID等。
ParameterID用于SAP屏幕间传输参数:
输出(Outbound)使用SETParameterID‘XXX’;输入(InBound)接收使用GETParameterID‘XXX’。
6.4FieldLabel选项卡选项卡:
定义该Domain在不同数值长度时,显示不同的名称;
SAP透明表的Field对象都是通过参考DataElement对象定义类型;
在输出内容时,SAP会根据输出的长度适应显示不同的名称;
通过Short、Medium、Long、Heading4种模式分别定义相应的名称。
7:
SAPR/3数据
SAPR/3系统数据库中存放的数据大致分有以下几类:
1)MasterData:
业务主数据;即:
SAP各模块中的主数据:
总账科目、供应商主数据、物料主数据等;
2)TransactionData:
业务处理数据;在业务处理操作中,生成的凭证号等数据,如:
销售订单凭证号、采购订单凭证号、收货凭证号等;
3)SystemData:
系统数据;包括ABAP程序的源码、元数据、文档等数据;
4)ConfigurationData:
配置数据;存放企业项目实施时,配置的初始化信息,如:
货币汇率、订单类型、变式等
8:
SAPTable类型
8.1TransparentTable(透明表)
透明表,透明表是一对一的表,同时存在于Dictionary和Database中,且具有完全相同的结构,有相同的名称,相同数量的字段,相同的字段名;
如若你创建一个自定义透明表的同时,完全相同的一个表将会被创建在Database中。
TransparentTable用来存储应用数据,而Pooledtable和Clustertable用来存储系统数据。
8.2TablePool 和PooledTable
TablePool是数据库中的一个Table,它存储的是PooledTable。
R/3用TablePool存储大量的(数十到数千个)小Table(每个只有10-100行)。
TablePool减少了同时打开多个小Table所需要的数据库资源。
PooledTable被SAP主要用于存储定制数据。
8.3TableCluster 和ClusterTable(簇表)
ClusterTable类似于PooledTable。
它们用来存储少数几个(大约2-10个)非常大的Table。
这几个表有相同的主键,需要同时访问它们。
TableCluster包含的Table比TablePool少的多。
与TablePool不同,TableCluster中的每个Table有相同的主键,多个不同的Table中有相同主键的行组成TableCluster中的一行。
Clustertable减少了读数据库的次数,从而提高了性能。
8.4InternalTable
内表,在ABAPProgram中的临时创建存储空间的数据表,包括有5种类型:
StandardTable,SortedTable,IndexTable,HashedTable,AnyTable(Generictype,Rarelyused)
8.5TransparentTable 与 ClusterTable的区别
TransparentTable用来直接存储数据,在系统以外可以使用OpenSQL语句直接读取Database的数据;ClusterTable和PooledTable是不能从外部访问的,因为其数据都是被聚合和汇集到一个栏位中。
简单的说:
Transparenttable:
是对应数据库中实际存在的表,可以在数据库中直接找到ClusterTable和PooledTable:
数据库表中存放的一条实际记录,可能对应的是系统中多张表中的逻辑记录
9:
透明表(TransparentTable)的创建与维护
TransparentTable界面包括5个标签选项卡:
Attribute、DeliveryandMaintenance、Fields、Entryhelp/check、Currency/QuantityFields。
9.1Attribute选项卡
Domain的Properties和DataElement的Attribute一致,显示创建人、创建日期、归属开发包、语言版本等基本信息
9.2DeliveryandMaintenance选项卡
1)DeliveryClass:
表示该表的传递类型
2)DataBrowser/TableViewMaint.:
用于确认该表数据是否允许通过表维护工具直接使用;展开选项,有三项可以选择,依次是:
有权限的维护、允许维护、不允许维护;
9.3Fields选项卡
显示TransparentTable维护的主要字段属性;包括:
Fields:
表字段名称,同一表中的字段名称不能重复;
Key:
主键,如若勾选,则表示该字段为主键,表中数据不允许重复,支持2个以上字段作为表主键;
Init:
是否为空,如若勾选,在新增数据时,该字段不能为空;
FieldType:
字段类型,为R/3系统中定义的DataElement,输入后,系统会带出相关的属性;
DataType:
数据类型,如若参照Domain定义的DataElement会带出相应的预定义数据类型,也可以通过字典维护器中的“PredefinedType“按钮,器中的“PredefinedType“按钮,
自定义基本类型:
Length:
字段内容长度
DecimalPlaces:
小数点位数
ShortDescription:
表字段描述
9.4Entryhelp/check 选项卡
数据参考关联表、SearchHelp、外键、Domain等属性信息;
因SAP使用的是关系数据库,很多主要字段可同时分布在不同表中;
为了保证这些关键字段的准确性,必须要求这些字段以某个主表的数据为参考标准,以防止用户在数据修改或新增时出错。
该选项卡中的内容信息,均为系统保留类型,在输入FieldType之后,将自动显示。
9.5Currency/QuantityFields 选项卡
货币/数量字段维护
数据表中有一些特殊单位,如货币、计量单位等。
与它们相关的数据也是直接从关联表中获取。
当创建完数量字段后,都要根据通过手工维护输入参考的货币或计量单位:
如若没有设置,创建完Add-On表之后,在激活该表时,系统会报出没有维护货币或计量单位的错误
9.6透明表的技术参数设置(TechnicalSettings )
当表字段维护成功后,还需要对表的技术参数进行设置;技术参数界面通过字典维护器工具栏的“TechnicalSettings”按钮进入:
TechnicalSettings维护界面:
1)DataClass:
设置表在数据库中的物理存储空间,以便分类与维护,默认分为几类:
2)SizeCategories:
按实际需求定义表的空间大小,以大小分为以下9种:
3)Buffering和BufferingType:
定义表的缓存空间,设置缓存空间有利于提高表的检索效率,但是同样也会加大服务器的资源损耗。
一般不建议使用缓存,如若要提高检索效率,可以通过设置表索引。
4)Logdatachanges:
此复选框设置是否会记录表数据变动情况,此功能对存储空间损耗较大,如无特殊情况不推荐使用。
9.7透明表索引(Indexes)
随着表中数据量日益增大,查询数据的速度效率也会相应的降低,可以通过对常用的字段创建索引,以提高查询效率。
在工具栏点击“Index”按钮,查看透明表中的索引:
标准表中都会创建相应字段的索引:
Add-On表中没有维护索引的话,是空白列表:
可以通过点击工具栏的新建索引按钮,创建索引:
输入索引名字:
进入索引字段维护界面:
输入索引描述及相关索引字段。
除了手工输入FieldName外,可以通过点击“TableFields”按钮,选择表中相应字段:
输入完成后,点击保存及激活按钮,激活该索引后,即可完成该设置。
10:
创建 Add-On表操作实例
结合上面内容,这里给出一个操作实例,通过最快捷方式创建一个Add-On表,
创建自定义表,自定义DataElement,自定义Domain等。
1)通过SE11进入数据字典初始化界面,在DatabaseTable处输入自定义表名称:
”ZSAPJX09“,点击”Create“按钮创建Add-On表:
2)进入维护界面后,默认位于DeliveryandMaintenance标签:
DeliveryClass:
由于为定制表,故选择C;
DataBrowser/TableViewMaint.:
允许通过维护器维护数据;
3)切换到Fields选项卡,在字段维护中输入字段,第一行必须输入MANDT字段;
因为同一个SAP可以分有多个CLIENT,不同的CLIENT数据完全不同。
实际上同一个服务器的数据都是放在相同的表中,通过MANDT字段来保存Client信息并进行区分。
所建立的数据为Client独享,MANDT为SAPTable保留字,一般情况下为必填。
MATNR为系统标准DataElement,会自动带出相应属性;
ZTESTF为自定义DataElement,由于还未定义该DataElement,所以相应属性:
Length、DecimalPlaces、SortDescription都为空,且在下边栏会有未激活的提示;
先保存表定义,然后双击ZTESTFDataElement,会弹出未创建该DataElement,让你选择是否创建:
点击”Yes”按钮,进入DataElement维护界面,并输入相应选项;
DataType选项卡:
FieldLabel选项卡:
在定义ElementType时,“ZTEST_DOMAIN”亦未定义Domain,同样的,先保存”ZTESTF”DataElement,然后双击“ZTEST_DOMAIN”,弹出提示对话框:
点击“Yes”,进入Domain维护界面,并输入相应内容:
输入完成后,检查通过后,直接保存并激活即可(每个对象创建完之后必须激活,才能使用,Domain、DataElement、Table等都一样)。
激活成功后,后退(或按“F3”键),返回到DataElement维护界面,激活”ZTESTF”DataElement:
激活DataElement成功后,再次后退,返回到定义透明表的维护界面,这时候,TESTF字段的Domain属性会自动带出:
当然,也可以先创建好自定义Domain和DataElement,然后在维护字段时,直接输入DataElement。
4)点击“TechnicalSettings”按钮,进入技术参数设置维护界面:
输入DataClass与SizeCategory,其他保持默认:
设置完成后,保存,技术参数状态会变成“Saved”:
返回字段维护界面,保存透明表并激活,即可完成Add-On表的创建:
5)Add-On表创建成功后,如若需要添加Field字段,但又不想参照DataElement定义,则可以通过PredefinedType定义;
输入新的字段名称后,点击“PredefinedType”按钮:
点击后,输入预定义类型、长度、描述,由于定义的是数值型,所以要指定保留小数点位数:
定义成功后,保存并激活,会发现出现错误:
原因在于我们新添加的字段为数值类型字段,必须维护参照的计量单位。
6)切换到Currency/QuantityFields选项卡,在MENGE字段的”ReferenceTable”和“ReferenceField”栏位位置输入参考表和参考计量单位;
一般都参考物料主数据的计量单位,分别输入”MARA“和”MEINS“。
输入完成后,保存并激活,这次就不会出现错误了。
二:
数据字典相关技术总结
1:
可维护表创建及分配事务代码
1在创建完成内表后.点击如图表格维护生成器
2:
弹出如下窗口,填写完权限组和函数组后点击查找屏幕号,维护屏幕编号处会自动填写上屏幕编号
3.完成后添加事务代码,点击CREATE(SE93)
4:
在弹出的屏幕处修改下面两个部分.
5:
完成,所添加的事务代码就可以立刻启动视图.
2:
可传输表维护
通常自建数据表,我们只需要给它建立一个表维护程序既可,供用户手动维护,用户只能维护自己client下的数据。
但也有一些情况,不让用户在自己的client随意修改数据,而是这些数据只能从别的client传输过来,就类似于一些系统的配置表,事实上自建表要做到数据可传输的也一般都是起到配置或推导替代的作用
首先,当建好表之后,在菜单栏里的实用程序(utilities)这一栏选择表格维护生成器,进入如下屏幕:
选择菜单–环境–维护对象–change,进入下一屏幕:
如上图所示进行设置既可。
这是可以试试是否成功,在表维护程序里维护一条数据,然后点保存键,如果设置成功则会蹦出一个提示创建CR的窗口,如下图:
3:
搜索帮助的创建
SAP一个很强大的功能就是无所不在的搜索帮助,如果使用系统的标准字段如MATNRAUFNR等,都会有相应的搜索帮助,但是对于自建的表格,就得自己制作搜索帮助了,下面简单介绍制作基本搜索帮助
SE11进入创建页面点击搜索帮助输入要创建的名字,如ZTEST_SERHCH_HELP
点击创建选择基本索引搜索帮助进去后会有两个页签其中ATTRIBUTE页签基本可以不去关注这里主要看一下definition页签下面介绍下definition页签的几个重要属性
1.SELECTIONMETHOD这里填的就是取数据的表
2.对话类型有ACD三个选项A和C都是先弹出选择界面然后在弹出选择列表D是跳过选择界面直接弹出选择列表这里使用C
3.SERCHHELPEXIT只是系统留下的出口,可以在这里进行数据控制,比如限制选择条件,权限检查等等
4.搜索帮助参数就是要显示出来的字段IMP就是输入字段EXP就是输出字段必须指定所在列
这样一个简单的搜索帮助就完成了
1.如果想要把搜索帮助设为某个数据元素的默认搜索帮助,进入到要设置的数据元素中去,在第三个页签中输入想要关联的搜索帮助名字,PARAMETERS为要和关联字段(搜索帮助参数中的字段)
2.如果在屏幕上想要使用自己创建的搜索帮助,可以使用下面语句
PARAMETERS:
P_MATNRTYPEMARA-MATNRMATCHCODEOBJECTZTEST_SERHCH_HELP.
3.如果先要对搜索帮助进行一些限制可以在SERCHHELPEXIT中编程首先复制系统标准函数F4IF_SHLP_EXIT_EXAMPLE到自己要创建的函数(函数和函数组的创建这里就不介绍了),改函数里面有详细的使用介绍,只要英文还行基本都可以看得懂,这里就不多说了,这里举一个例子简单说明,该例子是限制物料编号
DATA:
lw_lineTYPEddshselopt.
"设置默认的筛选条件
IFcallcontrol-step='SELECT'.
lw_line-shlpname='ZTEST'."搜索帮助名字
lw_line-shlpfield='MATNR'."要进行条件限制的字段
lw_
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据 字典