SAP ABAP——数据类型(一)【数据类型概要及分类】

简介: 本文主要介绍一下SAP ABAP中关于数据类型的概要以及分类,其中数据类型包括预定义的数据类型,数据字典数据类型,用户自定义数据类型,下面将依次对其进行讲解

本文主要介绍一下SAP ABAP中关于数据类型的概要以及分类,其中数据类型包括预定义的数据类型,数据字典数据类型,用户自定义数据类型,下面将依次对其进行讲解


数据类型内涵

          数据类型描述了数据对象的技术属性(类型和长度),用于定义数据对象,并且本身不能被直接引用或赋值,是一种用来约束数据的解释

ps:数据对象是如(如文本、变量、常量),或者DATA 关键字用来声明的变量或者实体结构具有实际的内存空间


数据类型分类

数据类型分类 解释
预定义数据类型 SAP中预定义的数据类型(整数型、浮点型、文本型、日期型......)
数据字典数据类型 T-CODE SE11中定义的数据类型(包括数据元素,结构,表类型,数据库表,视图,类/接口)
用户自定义数据类型 用户程序中使用TYPES关键字自定义的数据类型

预定义数据类型

          预定义的数据类型包括两种,一种是在系统中已经预定义好的数据类型,在T-CODE:SE38 ABAP编辑器中定义数据对象时可以直接使用的,其中大致有如下最常用的8种:

数据类型 默认长度 有效长度 默认值 解释说明
I 4 4 0 整型
F 8 8 0 浮点型
P 8 1~16 0 压缩数类型(将两个十进制数字压缩到一个字节)
C 1 1~65535 '...' 文本型
D 8 8 '00000000' 日期型(YYYYMMDD)
N 1 1~65535 '0...0' 数字字符串类型(0~9之间的字符组成的数字字符串)
T 6 6 '000000' 时间类型(格式:HHMMSS)
STRING 0 ANY SPACE 字符串类型

          此外在T-CODE:SE11中定义数据元素时还有31种数据类型,它们是用于专门维护数据元素所使用的,列举如下:

ce0ee3a8c6f5c3fc6a05d02e5a7d2fb.png

数据类型 简短描述
ACCP 过账期间YYYYMM
CHAR 字符串
CLNT 集团
CUKY 货币字段的货币码
CURR 采用BCD格式的货币字段
DF16_DEC 以BCD格式保存的十进制浮点数
DF16_RAW 以二进制数字形式保存的十进制浮点数
DF16_SCL 具有比例的十进制浮点数(已弃用)
DF34_DEC 以BCD格式保存的十进制浮点数
DF34_RAW 以二进制数字形式保存的十进制浮点数
DF34_SCL 具有比例的十进制浮点数(已弃用)
DATS 使用格式YYYYMMDD的日期
DEC 采用BCD格式的压缩数字
FLTP 浮点数
INT1 1字节整数,0到255
INT2 2字节整数,-32768到32767
INT4 4字节整数,-2147483648到2147483467
INT8 8字节整数
LANG 语言代码
LCHR 长字节串
LRAW 长字节字符串
NUMC 数字文本
PREC 过时数据类型
QUAN 采用BCD格式的数量字段
RAW 字节序列
RAWSTRING 字节字符串(BLOB)
SSTRING 字符串
STRING 字符串(CLOB)
TIMS 格式为HHMMSS的时间
UNIT 数量字段的单元码
VARC 过时数据类型

数据字典数据类型

          ABAP数据字典是定义和管理数据元素及数据库元素的中心工具,系统的所有全局数据类型以及数据库表结构等都需要在数据字典中创建和维护。数据字典保证了数据的完整性,一致性,安全性。

ec0626188fde2950b06e8637c7e821b.png

数据字典类型 解释说明
数据元素 最基本的数据单位,没有结构,定义了数据库表中字段的描述,使用预定义的数据类型或参考类型对字段特征进行描述。
结构 由数据元素或者其他的数据类型组成的一个特定结构。与用户自定义的结构并无本质上的区别,只不过数据类型中的结构是全局性、永久性的,而用户自定义的结构是局部性、暂时性的。
表类型 TABLE类型的数据元素,可存放多行数据。与用户自定义的表类型并无本质上的区别,只不过数据类型中的表类型是全局性、永久性的,而用户自定义的表类型是局部性、暂时性的。
数据库表 数据库表是数据库中实际存放数据的地方,由行(记录)和列(字段)组成。在数据字典里可以创建数据库表,并且表中的列通过数据元素来定义。
视图 视图是一个或者多个数据库表的逻辑表现形式,它本身不存储数据。视图有4种类型:
1. Database view :对一张或者多张表按照连接条件和选择条件筛选后的数据显示的视图。连接条件自己定义.连接条件是inner join。一张表的视图可以维护数据,维护了视图之后,表的数据也改变。 多张表的视图只能显示。
2. Projection view:
数据来自一张表,用于屏蔽一些字段(一般用于保护数据时使用).
3. Maintenance view:
允许你进行对几个表的数据进行修改,参与连接的表必须存在外键,他们的连接条件是不能自定义的。要维护和显示数据必须要生成表格维护对话框(在“表格维护生成器”中维护),所有主键要在视图的字段里
4. Help view:
该类视图可以用搜索帮助的“selection method”中使用,参与连接表必须存在外键.

          以上所列举的全局数据字典数据类型在程序中都是可以直接被用来参照定义的。比如说在程序中数据库表可以被用来参照定义相同结构的表类型或者内表或者结构;数据库表中某一字段亦可被用来参照定义局部结构体类型或者局部结构体变量中的字段。总而言之,数据字典中的数据类型可以全局使用,并且可以被参照定义的方式有多种多样,读者可以自行去尝试!下面给出几段示例代码和效果


案例代码演示(参照数据库表定义)

DATA:GT_SFLIGHT TYPE TABLE OF SFLIGHT."参照数据库表SFLIGHT定义内表变量
     GS_SFLIGHT TYPE SFLIGHT. "参照数据库表SFLIGHT定义结构体变量
TYPES:TY_SFLIGHT TYPE SFLIGHT,    " 参照数据库表SFLIGHT定义结构体类型
      TY_TAB_SFLIGHT TYPE SFLIGHT. "参照数据库表SFLIGHT定义表类型

案例代码演示(参照数据库表字段定义)

DATA:BEGIN OF GS_SFLIGHT,"参照数据库表SFLIGHT字段定义结构体变量
      ZCARRID TYPE SFLIGHT-CARRID,
      ZCONNID TYPE SFLIGHT-CONNID,
      ZFLDATE TYPE SFLIGHT-FLDATE,
      ZPRICE  TYPE SFLIGHT-PRICE,
     END OF GS_SFLIGHT.
TYPES:BEGIN OF TY_SFLIGHT, "参照数据库表SFLIGHT字段定义结构体类型
        ZCARRID TYPE SFLIGHT-CARRID,
        ZCONNID TYPE SFLIGHT-CONNID,
        ZFLDATE TYPE SFLIGHT-FLDATE,
        ZPRICE  TYPE SFLIGHT-PRICE,
     END OF TY_SFLIGHT.

案例代码演示(参照数据元素定义)

要参照的数据元素如下蓝框所示:

cc5be3e9b2111d1edc3182c94a1bb73.png

DATA:BEGIN OF GS_SFLIGHT,"参照数据库表SFLIGHT数据元素定义结构体变量
  ZCARRID TYPE S_CARR_ID,
  ZCONNID TYPE S_CONN_ID,
  ZFLDATE TYPE S_DATE,
  ZPRICE  TYPE S_PRICE,
END OF GS_SFLIGHT.
TYPES:BEGIN OF TY_SFLIGHT, "参照数据库表SFLIGHT数据元素定义结构体类型
  ZCARRID TYPE S_CARR_ID,
  ZCONNID TYPE S_CONN_ID,
  ZFLDATE TYPE S_DATE,
  ZPRICE  TYPE S_PRICE,
END OF TY_SFLIGHT.

用户自定义数据类型

          用户自定义的数据类型是指在程序内部定义的数据类型,是用户基于全局数据字典数据类型或者预定义数据类型再定义的新的类型,也可以是用户参照已经在程序中自定义的数据类型再定义的新的类型。这些类型只能在用户创建的程序内部可见,其他程序是不能访问到它们的。在程序中通过使用【TYPES】关键字来自定义数据类型,下面给出具体的案例代码:


案例代码演示(参照预定义数据类型定义结构体类型)

TYPES:BEGIN OF TY_TEST,"参照系统预定义数据类型定义结构体类型
  COL1 TYPE C,
  COL2 TYPE I,
  COL3 TYPE P,
  COL4 TYPE N,
  END OF TY_TEST.

案例代码演示(参照全局数据库表定义表类型和结构体类型)

TYPES:TY_TAB_VBAK TYPE TABLE OF VBAK,"参照数据库表VBAK定义表类型
      TY_VBAK TYPE VBAK. "参照数据库表VBAK定义结构体类型

案例代码演示(参照全局数据库表中字段定义结构体类型)

TYPES:BEGIN OF TY_SFLIGHT, "参照数据库表SFLIGHT字段定义结构体类型
            ZCARRID TYPE SFLIGHT-CARRID,
            ZCONNID TYPE SFLIGHT-CONNID,
            ZFLDATE TYPE SFLIGHT-FLDATE,
            ZPRICE  TYPE SFLIGHT-PRICE,
         END OF TY_SFLIGHT.

案例代码演示(参照全局数据元素定义结构体类型)

TYPES:BEGIN OF TY_SFLIGHT, "参照数据库表SFLIGHT数据元素定义结构体类型
      ZCARRID TYPE S_CARR_ID,
      ZCONNID TYPE S_CONN_ID,
      ZFLDATE TYPE S_DATE,
      ZPRICE  TYPE S_PRICE,
    END OF TY_SFLIGHT.

案例代码演示(参照自定义结构体类型定义表类型)

TYPES:BEGIN OF TY_SFLIGHT,
  ZCARRID TYPE S_CARR_ID,
  ZCONNID TYPE S_CONN_ID,
  ZFLDATE TYPE S_DATE,
  ZPRICE  TYPE S_PRICE,
END OF TY_SFLIGHT.
 TYPES:TY_TAB_SFLIGHT TYPE TABLE OF TY_SFLIGHT."参照自定义的结构体类型TY_SFL
目录
相关文章
SAP ABAP 程序调用设置成后台作业模式
ABAP 程序调用设置成后台作业模式
516 0
|
SQL
SAP ABAP-OPENSQL-数值函数简介
S4中针对OPENSQL新提供一些函数
139 0
|
SQL
SAP ABAP-OPENSQL-字符串函数介绍
S4中SQL新语法字符串函数
209 0
|
SQL
SAP ABAP-OPENSQL-日期/时间戳函数
S4提供针对OPENSQL一些新的SQL函数调用,本文展示相关函数的使用
651 0
SAP ABAP-删除工序示例代码
ABAP-删除工序示例代码
171 0
SAP ABAP 检查事务码权限
检查用户是否有自开发事务码的权限
157 0
|
BI
SAP ABAP在线预览文档对象的开发实现
应用场景:有些定制化开发(报表/功能增强等)完成之后,客户需要将其操作手册或者相关文档放在某个报表的初始画面,供实际操作者在线查阅,当然这个功能也同样类似于模板的下载,这里就以在线预览(直接打开)为例进行说明。
225 0
SAP MM/FI_运费处理方式
常见的采购运费处理方式
SAP MM 途损处理方式
通常客户采购业务需求提到货物运输有损耗,需要针对此业务给出合理方案输出,下面笔者针对此类业务分析下各种实现方案的可行性!
SAP MM初阶之事务代码MIGO界面批次拆分最多输入15行?
SAP MM初阶之事务代码MIGO界面批次拆分最多输入15行?
SAP MM初阶之事务代码MIGO界面批次拆分最多输入15行?