~~~~~~~~~~~~【Lesson 1:Working with Domains and Data Elements】~~~~~~~~~~~~
1.Data Types
1)Cross-program(globally known) data types可在ABAP Dictionary中被定义。
2)ABAP Dictionary:Initial Screen,在Data Type域中有如下基本类型:
· Data element
· Structure
· Table type
3)组成结构
· Data elements使用domains或者integrated types来定义自己的technical properties。
· ABAP程序不可以访问domains来定义data objects。
2.Domains
1)Domains主要管理data elements的technical properties。不可在程序、表等中直接使用。
2)Domain由以下部分组成:
· Format:data type和字符数,如果是数字的,还可以指定小数位数。常用data types如下:
· Output characteristics:值输入/输出的最大长度,包括逗号和小数点。当Format下的字符数被指定,会自动计算该值,但允许你手动修改。它决定screens及selection screen如何显示。
3)对于特定data types如DEC, FLTP, QUAN和CURR,+/-sign是可选的。如果选中,则第一个字符会保留用来放+/-,即允许输入的字符数会比规定的少1。
4)对于字符型的data types,还应该确定是否允许小写,若不允许,则所有小写会转换为大写。
5)还可以定义值的取值范围用来做input checks。
3.Data Elements
1)除了technical properties,还包括semantic properties。主要特性如下:
· Field ID & Translation
· Search Help
· SET/GET Parameters
2)可用于screens,search helps,ABAP programs和complex data types。
3)可以维护field labels,它们将会在screens或selection screen上显示,从而解释field中的内容。每个field label都需要指定最大长度,需要注意的是field label是可以被翻译成不同语言的,所以最大长度还需要考虑其他语言中field label的长度。
4)Search help可以被附加到data element。
4.SET/GET Parameter
1)可以保存用户的输入,从而避免重复输入相同的值。
2)用户退出screen时,系统将值存进parameter。在随后的screen中若有一个基于相同打他 element的输入域,系统会读取parameter中的值,并将它入到输入域中来避免用户重复输入。
3)SET/GET Parameter为每个session保存值,直到用户推出登录。
5.The Reference Type
1)可将data element创建为引用类型,被引用的类型可以是dictionary中的任意类型或通用类型,如ANY, OBJECT,DATA。
2)若引用ANY类型,则既可以指向objects也可指向data。
5.Exercise
1)Transaction Code:SE11
~~~~~~~~~~~~~~~~【Lesson 2:Working with Flat Structures】~~~~~~~~~~~~~~~~
1.简单的和嵌套的Structure
1)组成Structure的components可以是以下格式:
· Data elements
· Integrated types
· Table Types(ITAB)
· Definition of database tables and database views
· other structure types
2)对于一个事实上是二维的object,如果它的fields通过包含一个view或DB tables被整合到一个structure中,则这个structure生成的data object依然是扁平且一维的。
3)当你用table type来定义component时,一般都会创建一个deep structure。尽管这个component是二维的,但该structure中的其他components依然是一维的(扁平的)
2.Flat Structure
1)Flat Structure:structure最简单的形式,所有的fields都是data elements类型。基于这种structure的data objects一般都是一维的(与类表、二维的data objects相反)。
3.简单Structure的使用示例
DATA wa_adr TYPE address.
wa_adr-street = 'Neurott Str. 15a'.
wa_adr-zipcode = 'D-69190'.
wa_adr-city = 'Walldorf'.
4.Nested Structure
1)Nested Structure:用其他structured object做component。
5.嵌套structure的使用示例
DATA wa_pers TYPE person.
wa_pers-name-firstname = 'Hans'.
wa_pers-name-lastname = 'Hans'.
wa_pers-address-street = 'Neurott Str. 15a'.
wa_pers-address-zipcode = 'D-69190'.
wa_pers-address-city = 'Walldorf'.
6.Exercise
1)在component中引用
~~~~~~~~~~【Lesson 3:Working with Table Types and Deep Structures】~~~~~~~~~~
1.Deep Structure
1)Deep Structure:至少有一个field是table type。
2)对于每个Internal table,系统会在主存中创建一个二维数组。
3)注意:DB table只能包含flat structure。
2.Type Group
1)Type Group可被用来定义你自己的全局的、复杂的data type及全局常量。
2)Type Group中data type及constant的名字应该以Type Group名字开头。
TYPE-POOL zmytp.
TYPES zmytp——percentage(3) TYPE p DECTMALS 2.
CONSTANTS zmytp_pi TYPE f VALUE '3.14'.
3)4.5a版本后Type Group已过时,其功能可以通过structure实现。
2.Exercise
1)ULINE.:输出列表中的水平线。