BC430-Unit2:Data Types in the ABAP Dictionary

来源:互联网 发布:知乎怎么加黑名单 编辑:程序博客网 时间:2024/05/16 12:08

~~~~~~~~~~~~【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.:输出列表中的水平线。



0 0