SAP ABAP——数据类型(三)【TYPE-POOL和INCLUDE嵌套定义类型】

简介: 本文主要介绍一下SAP ABAP中的INCLUDE嵌套定义和类型组TYPE-POOL,类型组讲解主要包括了TYPE-POOL简介,TYPE-POOL的创建和使用以及常用TYPE-POOL的介绍

本文主要介绍一下SAP ABAP中的INCLUDE嵌套定义和类型组TYPE-POOL,类型组讲解主要包括了TYPE-POOL简介,TYPE-POOL的创建和使用以及常用TYPE-POOL的介绍


INCLUDE嵌套定义类型

INCLUDE嵌套定义简介

         在SAP ABAP开发中,我们可以将之前自定义的数据类型嵌套进我们新创建的数据类型中。注意使用INCLUDE嵌套语句的时候前面必须要有语句【TYPES:BEGIN OF name】,结尾要使用语句【TYPES:END OF name】

INCLUDE TYPE <type> [AS name [RENAMING WITH SUFFIX suffix]].
INCLUDE STRUCTURE <data> [AS name [RENAMING WITH SUFFIX suffix]].

INCLUDE TYPE

         INCLUDE TYPE语法只能嵌套自定义的结构体类型,其余数据类型或者变量都是不符合语法的。

TYPES: BEGIN OF TY_STU,
       TY_STU_ID   TYPE N LENGTH 8,
       TY_STU_NAME TYPE C LENGTH 10,
      END OF TY_STU.
TYPES: BEGIN OF TY_TEA,
      TY_TEA_ID   TYPE N LENGTH 8,
      TY_TEA_NAME TYPE C LENGTH 10,
     END OF TY_TEA.
*嵌套结构体类型
TYPES  BEGIN OF TY_CLASS.
         INCLUDE TYPE TY_STU.
         INCLUDE TYPE TY_TEA AS CLASS_1_TEA RENAMING WITH SUFFIX _CLASS_1,
TYPES  END OF TY_CLASS.
DATA GV_CLASS TYPE TY_CLASS.

效果演示
         上面给出了嵌套结构体类型定义结构体类型的代码示例,并且最后使用了【DATA】语句将结构体类型实例化并且加入断点进行观察,请读者仔细观察嵌套定义的效果演示和使用了[AS name [RENAMING WITH SUFFIX suffix]]语句和不使用的区别,具体效果如下图所示:

bfc299e71e6c2242f8ed6741d172269.png


INCLUDE STRUCTURE

         INCLUDE TYPE语法只能嵌套自定义的结构体变量,其余数据类型或者变量都是不符合语法的。

DATA: BEGIN OF TY_STU,
  TY_STU_ID   TYPE N LENGTH 8,
  TY_STU_NAME TYPE C LENGTH 10,
END OF TY_STU.
DATA: BEGIN OF TY_TEA,
  TY_TEA_ID   TYPE N LENGTH 8,
  TY_TEA_NAME TYPE C LENGTH 10,
END OF TY_TEA.
*嵌套结构体类型
TYPES BEGIN OF TY_CLASS.
  INCLUDE STRUCTURE TY_STU.
  INCLUDE STRUCTURE TY_TEA AS CLASS_1_TEA RENAMING WITH SUFFIX _CLASS_1.
TYPES END OF TY_CLASS.
DATA GV_CLASS TYPE TY_CLASS.

效果演示
         上面给出了嵌套结构体变量定义结构体类型的代码示例,并且最后使用了【DATA】语句将结构体类型实例化并且加入断点进行观察,请读者仔细观察嵌套定义的效果演示和使用了[AS name [RENAMING WITH SUFFIX suffix]]语句和不使用的区别,具体效果如下图所示:

09b3872e9996ea146592b62109e90d2.png

PS:关于变量【DATA】的讲解将在后续文章中讲解!!


TYPE-POOL简介

         TYPE-POOL:在SAP ABAP中意味着类型组的意思。类型组是以INCLUDE技术为基础的,可以使用类型组将用户定义的数据类型或常量存储在ABAP/4词典中;也可以在组合多种数据类型进行声明事使用类型组,以便在程序之间使用。在ABAP开发中,通常给每个模块定义相应的类型组管理经常使用的数据类型,达到模块化编程效果,也可以更加方便管理和使用数据类型。


TYPE-POOL的创建和使用

T-CODE:SE11中创建

         执行T-CODE:SE11,进入ABAP字典:初始屏幕,选择类型组,输入要定义的类型组名字(要以Z开头!),点击创建按钮,如下图所示:

8fe4de0e47990e55e29efb6d636da4a.png


维护简短描述

         在短文本框中输入该类型组的简短描述后,单机保存按钮,如下图所示:

8d1d3c27f78c4dbd209f7d33a9a6899.png


保存到包中

         选择类型组要保存到的SAP包,或者直接保存到本地对象中,如下图所示:

51169a7e5f443278784f90c637dc06c.png


源代码

         创建类型组时自动生成第一行,第二行开始可以定义以类型组名字(本案例则为ZTYPL_)开头的类型以及常数,将定义类型的代码追加到类型组中去,如下图所示:

bdea7311fae866cdcbf4ea05c10e5e8.png

TYPE-POOL ZTYPL .
TYPES:BEGIN OF ZTYPL_STU,
        ZSTU_ID   TYPE N LENGTH 8,
        ZSTU_NAME TYPE  C LENGTH 20,
      END OF  ZTYPL_STU.
TYPES:BEGIN OF ZTYPL_TEA,
       ZTEA_ID   TYPE N LENGTH 8,
       ZTEA_NAME TYPE  C LENGTH 20,
     END OF  ZTYPL_TEA.

测试使用TYPE-POOL

TYPE-POOLS: ZTYPL.
DATA:GV_STU TYPE ZTYPL_STU,
     GV_TEA TYPE ZTYPL_TEA.
GV_STU-ZSTU_ID = 20212540.
GV_STU-ZSTU_NAME = '张三'.
GV_TEA-ZTEA_ID = 44001132.
GV_TEA-ZTEA_NAME = '李四'.
WRITE:GV_STU-ZSTU_ID,GV_STU-ZSTU_NAME,/, GV_TEA-ZTEA_ID,GV_TEA-ZTEA_NAME.

效果演示
307c45f8e58184e2544598051037280.png


常用TYPE-POOL

         在ABAP ALV报表开发中,我们也经常会使用到SLIS类型组,如下图所示:

1851cf4791a301cae6ad843c49bdfd3.png

         双击SLIS我们可以进入到SLIS类型组中的源代码进行查看:

8429805f041a54f399472ffc4a92938.png

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