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

news2024/11/25 16:24:21

💂作者简介: THUNDER王,一名热爱财税和SAP ABAP编程以及热爱分享的博主。目前于江西师范大学会计学专业大二本科在读,同时任汉硕云(广东)科技有限公司ABAP开发顾问。在学习工作中,我通常使用偏后端的开发语言ABAP,SQL进行任务的完成,对SAP企业管理系统,SAP ABAP开发和数据库具有较深入的研究。


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


🤟每日一言:宝剑锋从磨砺出,梅花香自苦寒来。

目录

INCLUDE嵌套简介

INCLUDE TYPE

效果演示

INCLUDE STRUCTURE

效果演示

TYPE-POOL简介

TYPE-POOL的创建和使用

T-CODE:SE11中创建

维护简短描述

保存到包中

源代码

测试使用TYPE-POOL

效果演示

常用TYPE-POOL


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]]语句和不使用的区别,具体效果如下图所示:

嵌套结构体类型定义


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]]语句和不使用的区别,具体效果如下图所示:

嵌套结构体类型定义

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


TYPE-POOL简介

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


TYPE-POOL的创建和使用

T-CODE:SE11中创建

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

T-CODE:SE11中创建


维护简短描述

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

维护简短描述


保存到包中

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

保存包


源代码

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

源代码

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.

效果演示

  • 效果演示


常用TYPE-POOL

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

SLIS


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

SLIS源代码查看

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/50617.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

威尔士和英格兰同属英国,但为啥还要在世界杯上进行PK?

聊到威尔士VS英格兰队的比赛&#xff0c;那就不得不普及一个足球常识啊。当我们打开英国的地图&#xff0c;你会发现有四个地区英格兰&#xff0c;苏格兰&#xff0c;威尔士和北爱尔兰都是属于英国的。我们还会常常看到英格兰&#xff0c;苏格兰&#xff0c;威尔士和北爱尔兰四…

JavaSE项目练习:图书管理系统

1.简介 通过前面知识&#xff1a;类&#xff0c;抽象类&#xff0c;封装&#xff0c;继承&#xff0c;多态&#xff0c;接口的学习&#xff0c;这篇文章将会通过对学习的知识点的整合运用&#xff0c;写一个小项目——图书管理系统&#xff0c;来帮助大家更好的掌握前面学习的…

物联网企业争抢「两轮车换电」赛道

两轮电动车正在攻占中国的大街小巷。 甚至无需过多的数据佐证&#xff0c;大家都可以清晰的感受到&#xff0c;“小电驴”正在加速“驰骋”。售价在千余元至万元不等的两轮电动车不仅是居民解决中距离通勤的“好帮手”&#xff0c;更是外卖员、快递员风里来雨里去的“好战友”。…

RabbitMQ镜像队列机制

镜像queue有master节点和slave节点。master和slave是针对⼀个queue而⾔的&#xff0c;⽽不是⼀个node作为所有queue的master&#xff0c;其它node作为slave。⼀个queue第⼀次创建的node为它的master节点&#xff0c;其它node为slave节点。⽆论客户端的请求打到master还是slave最…

JavaEE Bean作用域与生命周期

Bean的作用域 作用域是用来限制程序中变量的可用范围&#xff0c;Bean的作用域是Bean在Spring整个框架中的行为模式。 默认情况下&#xff0c;Spring应用上下文所有的bean都是以单例的形式创建的&#xff0c;不管给定的一个bean被注入到其他bean 多少次&#xff0c;每次所注入的…

Spring 异步@Async注解用法 Spring @Async注解用法总结 Spring @Async基本用法示例

Spring 异步Async注解用法 Spring Async注解用法总结 Spring Async基本用法示例 一、概述 在日常开发的工作中&#xff0c;经常会使用异步进行开发。Spring 提供一个简单的注解 Async &#xff0c;即可实现异步的开发&#xff0c;无需创建线程池&#xff0c;简单明了。 本文将整…

盘点 GitHub 上的神级指南

盘点 GitHub 上那些神级指南&#xff01;本次盘点都是 GitHub 上标星 10K 的开源指南。都是由中国的开发者开源&#xff0c;除了技术、教程类的指南&#xff0c;还有一些花里胡哨的东西。本期推荐开源项目目录&#xff1a;1. 计算机自学指南2. 大数据入门指南3. 程序员延寿指南…

[附源码]计算机毕业设计springboot企业人事管理系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

MASA Framework 事件总线 - 跨进程事件总线

概述 跨进程事件总线允许发布和订阅跨服务传输的消息, 服务的发布与订阅不在同一个进程中 在Masa Framework中, 跨进程总线事件提供了一个可以被开箱即用的程序 IntegrationEvents: 提供了发件箱模式 IntegrationEvents.Dapr: 借助Dapr实现了消息的发布EventLogs.EFCore: 基…

企业想要做好数据分析,可以试试瓴羊Quick BI

企业的数字化发展已经成为了一个发展的方向&#xff0c;可是各个企业如何才可以实现数字化发展确实成为了难题。从很多企业的内部发展中来讲&#xff0c;每一个部分的数据化的分析都已经成为了行业的难点&#xff0c;如何做好这些分析工作确实是很关键的内容。 而在具体数字化…

艾美捷细胞低密度脂肪酸(LDL)摄取试剂盒的功能应用

胆固醇是一种重要的细胞成分&#xff0c;维持胆固醇稳态对正常生理功能至关重要。血浆胆固醇水平升高与各种病理状况有关&#xff0c;最明显的是冠心病&#xff0c;高胆固醇水平导致动脉泡沫细胞形成和斑块堆积&#xff0c;可能导致心脏病发作或中风。细胞胆固醇代谢和血浆胆固…

教育在线学习系统,教育培训都能用,支持多个终端

随着居家隔离不断反复&#xff0c;在线教育也成为了居家学习的必备工具之一。常用的方式就是在线教育培训。教育在线学习系统为教育行业的发展提供了有效工具&#xff0c;推动着教育行业逐步转型到线上线下的教育模式。学生在家通过手机就能随时随地学习&#xff0c;非常的方便…

基于矩阵分解模型的协同过滤理论概述(涉及到SVD,SVD++,TimeSVD++)

前言 本篇文章是对博客&#xff1a;从item-base到svd再到rbm&#xff0c;多种Collaborative Filtering(协同过滤算法)从原理到实现的补全&#xff0c;感谢该作者的分享 本文补全的内容为&#xff1a; SVD中 yjy_jyj​的实际含义理解&#xff0c;以及对应的梯度下降公式TimeS…

[附源码]JAVA毕业设计高校校园社交网络(系统+LW)

[附源码]JAVA毕业设计高校校园社交网络&#xff08;系统LW&#xff09; 目运行 环境项配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术…

高通导航器软件开发包使用指南(15)

高通导航器软件开发包使用指南&#xff08;15&#xff09;9 基本参数调整9.1关键调谐参数9.2调整过程9.2.1传感器方向9.2.2电子速度控制器&#xff08;ESC&#xff09;9.2.3螺旋桨和电机特性9.2.4指定车辆总质量的参数9.2.5最小和最大推力命令9.2.6推进器配置9.2.7姿态控制增益…

魔兽世界服务端源码各个重要文件详细情况说明开服一条龙

魔兽服务端开服源文件各文件翻译 很多文件在服务器中我们知道是跟什么有关&#xff0c;但就是不知道其作用是什么。就算我们知道在这些地方中的文件都是有着不小的作用。但是由于不知道各个文件代表的是什么意思所以在面对这些文件的时候都会有无从下手的感觉&#xff0c;所以…

入耳式无线蓝牙耳机哪款好?无线入耳蓝牙耳机推荐

随着近几年蓝牙耳机的快速发展&#xff0c;使用蓝牙耳机的人也越来越多&#xff0c;可供人们选择的蓝牙耳机也有很多。那么&#xff0c;在现如今的蓝牙耳机市场中&#xff0c;哪款无线蓝牙耳机好&#xff1f;下面&#xff0c;我来给大家推荐几款无线入耳蓝牙耳机&#xff0c;可…

HTML+CSS+JavaScript仿京东购物网站制作 html静态网页设计制作 dw静态网页成品模板素材网页 web前端网页设计与制作 div静态网页设计

HTML实例网页代码, 本实例适合于初学HTML的同学。该实例里面有设置了css的样式设置&#xff0c;有div的样式格局&#xff0c;这个实例比较全面&#xff0c;有助于同学的学习,本文将介绍如何通过从头开始设计个人网站并将其转换为代码的过程来实践设计。 ⚽精彩专栏推荐&#x1…

JavaWeb中的VUE快速入门

目录 概述: Vue的安装 Vue的常用指令 通过VUE高效提交表单调用接口请求 Vue的生命周期 概述: Vue是一套前端框架&#xff0c;免除原生JavaScript中的DOM操作&#xff0c;简化书写。Vue为当前的国内前端主流框架&#xff0c;基于MVVM&#xff08;Model-View-ViewModel&…

kubernetes之pod详解

pod详解 文章目录pod详解Pod生命周期一、创建和终止二、 初始化容器Pod调度定向调度亲和性调度污点和容忍Pod生命周期 我们一般将pod对象从创建至终的这段时间范围称为pod的生命周期&#xff0c;它主要包含下面的过程&#xff1a; pod创建过程运行初始化容器&#xff08;init …