ABAP的基本数据类型
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ABAP的基本数据类型相关的知识,希望对你有一定的参考价值。
参考技术A 数据类型的作用:用来定义数据变量。ABAP按照定义的方式
1.预定义数据类型:SAP中预定义的类型
关于预定义数据类型:
数字类型:
I(整数类型) 默认初始值是0(4Byte)
P(小数类型)默认初始值是0 在定义数据类型P时,需要指定小数位数。(8byte)(可变长度为1-16byte)
P类型1字节前两位由数字构成,后面几位是符号位。
如:DATA test TYPE P LENGTH 10 DECIMALS 3.
这里定义了一个p型变量test 长度是10,小数位数是3.
字符类型:
C(char/文本类型) 默认初始值为空(1byte)
D(日期类型) 格式为:YYYYMMDD 默认初始值是'00000000'.(8byte)sy-datum(存储当天日期的变量)
T(时间类型) 格式为: HHMMSS 默认初始值是‘000000’(6byte)sy-uzeit(存储现在时刻的变量)
字符串类型:STRING 默认长度为0,有效长度为任意长度,默认值为空字符串。
这表示定义STRING类型变量不需要指定长度
在定义预定义数据类型时,我们知道所有数据类型都具有初始值,那么使用VALUE选项就可以设置初始值
如果使用VALUE IS INITAL语句,则变量使用默认初始值。(省略此语句,结果相同)
这里就知道了预定义数据类型可以分为:1.预定义可变长度数据类型
2.预定义固定长度数据类型
在定义预定义数据类型的变量时,D,F,I不用指定长度,而C,N,X需要指定其长度,其中类型P
还需要指定小数位数。(DECIMALS).
2.全局数据类型(数据字典类型):SE11里定义的数据类型, 所有程序都可以使用的数据类型 。
全局数据类型顾名思义就是所有程序都可以使用的数据类型。
3.局部数据类型(用户自定义的数据类型):用户程序中 使用TYPES关键字来自定义的数据类型
如:TYPES ty_var_c10 TYPE c LENGTH 10. "这里就定义了一种长度为10的字符类型ty_var_c10
DATA,TYPES,和TYPE 的区别
DATA 是用来直接声明实际的变量,可以指定变量类型是 预定义类型或自定义类型
DATE c1 TYPE c LENGHT 10.
TYPES是用来定义局部数据类型的,定义的是类型而不是变量
TYPES ty_var_c10 TYPE c LENGTH 10.
这里的ty_var_c10 就时用户自定义的数据类型。
TYPE是用来指定类型的,当TYPE和DATA关键字一起使用时,则是用于定义变量的类型;
当TYPE和TYEPES关键字一起使用时,就是用于定义自定义类型。
LINK(用来定义数据变量的类型)
DATA: gv_num3 LINK gv_num1. 这里LINK的作用就是定义变量gv_num3且它的数据类型为gv_num1.
按结构区分的数据类型
基本数据类型:固定长度数据类型
可变长度数据类型
参考数据类型:数据参考类型
对象参考类型
复杂数据类型:结构类型
表类型
ABAP基本数据类型通用类型
string,在系统内部,长度可变的内置类型(string,xstring)是通过引用实际动态的 数据对象的固定内存地址来进行操作的,
因而这两种内置类型和引用类型一样,属于纵深类型。
P类型(数据)数据
是一种压缩的定点数,其数据对象占据内存字节数和数值范围取定义时指定的整个数据的大小和小数点后位数,如果不指定小数位,则将视为I类型。其有效数据大小可以是从1~31位数字,小数点后最多可以有14个数字。
P类型的数据,可以用于精确运算。
通用类型
除了object ,所有的通用类型都能直接用TYPE(如TYPE data,但没有TYPE object, object不能直接跟在TYPE后面,只能跟在TYPE REF TO 后面)
type ref to 后面可接的通用类型只能是data(数据引用)或者是object(对象引用),其他通用类型不行:
type ref to data: 表示的是数据引用data references
type ref to object:表示的是对象引用object references
扁平类型和纵深类型
扁平结构就是指变量内存中直接存储的内容,而不是地址,指针是一种典型的引用类型即纵深类型。
扁平结构:指的是所有代表实际操作内容的数据对象,因此固定长度的基本类型数据均为扁平结构数据。
纵深结构:指的是数据对象的内容为其他的内存地址区域,因而引用的数据对象是典型的纵深类型。
ABAP访问Java服务
ABAP(作为clint端),调用java(作为服务器端)
sap通过Jco反向调用JAVA的rfc服务也是简单的,只是在JAVA端需要使用Jco创建一个rfc服务,然后在sap端注册这个服务程序。
首先,Jco服务器程序需要在网关中进行注册,在SM59中,定义一个连接类型为T的远程目标。
RFC目标系统:是ABAP RFC调用java时,需要指定目标系统名,
program id 是java程序中使用的。
以上是关于ABAP的基本数据类型的主要内容,如果未能解决你的问题,请参考以下文章