前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >SAP ABAP——数据类型(一)【数据类型概要及分类】

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

作者头像
THUNDER王
发布2023-02-23 13:05:37
发布2023-02-23 13:05:37
68000
代码可运行
举报
运行总次数:0
代码可运行

💬个人网站:【芒果个人日志】​​​​​​ 💬原文地址: SAP ABAP——数据类型(一)【数据类型概要及分类】 - 芒果个人日志 (wyz-math.cn)

💂作者简介: THUNDER王,一名热爱财税和SAP ABAP编程以及热爱分享的博主。目前于江西师范大学会计学专业大二本科在读,同时任汉硕云(广东)科技有限公司ABAP开发顾问。在学习工作中,我通常使用偏后端的开发语言ABAP,SQL进行任务的完成,对SAP企业管理系统,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种数据类型,它们是用于专门维护数据元素所使用的,列举如下:

维护数据元素所使用的数据类型

数据类型

简短描述

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

数据字典数据类型

数据字典类型

解释说明

数据元素

最基本的数据单位,没有结构,定义了数据库表中字段的描述,使用预定义的数据类型或参考类型对字段特征进行描述。

结构

由数据元素或者其他的数据类型组成的一个特定结构。与用户自定义的结构并无本质上的区别,只不过数据字典数据类型中的结构是全局性、永久性的,而用户自定义的结构是局部性、暂时性的。

表类型

TABLE类型的数据元素,可存放多行数据。与用户自定义的表类型并无本质上的区别,只不过数据字典数据类型中的表类型是全局性、永久性的,而用户自定义的表类型是局部性、暂时性的。

数据库表

数据库表是数据库中实际存放数据的地方,由行(记录)和列(字段)组成。在数据字典里可以创建数据库表,并且表中的列通过数据元素来定义。

视图

视图是一个或者多个数据库表的逻辑表现形式,它本身不存储数据。视图有4种类型: 1. Database view :对一张或者多张表按照连接条件和选择条件筛选后的数据显示的视图。连接条件自己定义.连接条件是inner join。一张表的视图可以维护数据,维护了视图之后,表的数据也改变。 多张表的视图只能显示。 2. Projection view: 数据来自一张表,用于屏蔽一些字段(一般用于保护数据时使用). 3. Maintenance view: 允许你进行对几个表的数据进行修改,参与连接的表必须存在外键,他们的连接条件是不能自定义的。要维护和显示数据必须要生成表格维护对话框(在“表格维护生成器”中维护),所有主键要在视图的字段里 4. Help view: 该类视图可以用搜索帮助的“selection method”中使用,参与连接表必须存在外键.

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

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

代码语言:javascript
代码运行次数:0
运行
复制
DATA:GT_SFLIGHT TYPE TABLE OF SFLIGHT."参照数据库表SFLIGHT定义内表变量
     GS_SFLIGHT TYPE SFLIGHT. "参照数据库表SFLIGHT定义结构体变量

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

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

代码语言:javascript
代码运行次数:0
运行
复制
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.

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

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

要参照的数据元素

代码语言:javascript
代码运行次数:0
运行
复制
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】关键字来自定义数据类型,下面给出具体的案例代码:

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

代码语言:javascript
代码运行次数:0
运行
复制
TYPES:BEGIN OF TY_TEST,"参照系统预定义数据类型定义结构体类型
  COL1 TYPE C,
  COL2 TYPE I,
  COL3 TYPE P,
  COL4 TYPE N,
  END OF TY_TEST.

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

代码语言:javascript
代码运行次数:0
运行
复制
TYPES:TY_TAB_VBAK TYPE TABLE OF VBAK,"参照数据库表VBAK定义表类型
      TY_VBAK TYPE VBAK. "参照数据库表VBAK定义结构体类型

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

代码语言:javascript
代码运行次数:0
运行
复制
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.

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

代码语言:javascript
代码运行次数:0
运行
复制
 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.

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

代码语言:javascript
代码运行次数:0
运行
复制
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_SFLIGHTS定义表类型
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-01-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 数据类型内涵
  • 数据类型分类
  • 预定义数据类型
  • 数据字典数据类型
    • - 案例代码演示(参照数据库表定义)
    • - 案例代码演示(参照数据库表字段定义)
    • - 案例代码演示(参照数据元素定义)
  • 用户自定义数据类型
    • - 案例代码演示(参照预定义数据类型定义结构体类型)
    • - 案例代码演示(参照全局数据库表定义表类型和结构体类型)
    • - 案例代码演示(参照全局数据库表中字段定义结构体类型)
    • - 案例代码演示(参照全局数据元素定义结构体类型)
    • - 案例代码演示(参照自定义结构体类型定义表类型)
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档