SAP入门技术分享二:数据类型

news2024/9/20 20:34:50

数据类型

  • 1.概要
  • 2.数据类型的种类
    • (1)ABAP基本数据类型
    • (2)局部数据类型
    • (3)全局数据类型
  • 3.DATA语句
    • (1)TYPE type
    • (2)LIKE num
    • (3)VALUE int
    • (4)LENGTH n
    • (5)DECIMALS n
  • 4.ABAP命名规范
    • (1)定义全局变量
    • (2)局部变量
    • (3)检查命名规则
  • 5.ABAP编辑器
  • 6.ABAP基本数据类型
    • (1)数字类型
    • (2)数字运算符
    • (3)字符串类型
    • (4)不定长ABAP基本数据类型
  • 7.Hexadecimal类型
  • 8.局部数据类型
  • 9.ABAP数据字典数据类型
    • (1)表和视图
    • (2)数据类型:数据元素、结构体、表类型。
    • (3)类型组(Type Groups)
    • (4)ABAP数据字典类型
  • 10.赋值
    • (1)给变量赋值
    • (2)利用Offset进行赋值
    • (3)结构体之间的计算操作
  • 11.定义其他变量
    • (1)常量
    • (2)静态变量
    • (3)TABLES

1.概要

数据类型(Data Type):定义变量的类型,用TYPES声明;
数据变量(Data Variable):又称数据对象,参照数据类型定义的、可以存储值的变量,在程序中是通过变量名操作该对象,用Data声明。

2.数据类型的种类

ABAP程序包含三种数据类型:

(1)ABAP基本数据类型

系统内部定义的数据类型,分类有
C、D、F、I、N、F、T、X、STRING、XSTRING。

(2)局部数据类型

只在程序块中起效,用ABAP基本数据类型定义局部数据类型,或者定义包含多个基本数据类型的结构体类型变量。

(3)全局数据类型

在所有程序中起效,用TYPE语句参考数据字典中的类型定义变量。
在这里插入图片描述

3.DATA语句

规则:用于定义数据变量,变量名包括”_”,最长可定义30位。

(1)TYPE type

在这里插入图片描述

(2)LIKE num

在这里插入图片描述

(3)VALUE int

在这里插入图片描述

(4)LENGTH n

在这里插入图片描述

(5)DECIMALS n

在这里插入图片描述

4.ABAP命名规范

规范:变量名的前两位代表范围和类型,区分符号”_”和最后单词将省略变量的具体功能。
在这里插入图片描述

(1)定义全局变量

定义全局变量以G开头,具体定义方法如下:
但变量名不宜过长,可以用”_”后第一个字母区分变量类型。
在ABAP语言中的PARAMETERS和SELECT-OPTIONS变量分别用”P”与”S”作为前缀使用。
在这里插入图片描述

(2)局部变量

在这里插入图片描述

(3)检查命名规则

检查ABAP程序是否符合命名规则的工具,事务码是SCI。
在检查变量-名称区域单击按钮,可以切换全局/局部变量检查:
在这里插入图片描述

在ABAP程序编辑器中进行代码检查:
第一步:选择程序->检查->代码分析器;
在这里插入图片描述

第二步:点击新建按钮;
在这里插入图片描述
在这里插入图片描述

第三步:默认调用基本检查变量,自动命名为DEFAULT;
在这里插入图片描述

第四步:选择编程规则->命名规则的属性按钮;
在这里插入图片描述

第五步:可以设置程序中使用变量的命名规则;
在这里插入图片描述

5.ABAP编辑器

ABAP编辑模式有下列三种功能:
(1)新版ABAP编辑模式:Front-End Editor;
(2)旧版ABAP编辑模式:Front-End Editor( Plant text mode );
(3)Back-End Editor( Line-based mode )。
可以在实用程序->设置中进行设置ABAP编辑类型:
在这里插入图片描述

6.ABAP基本数据类型

一共有八种基本数据类型,如下图所示:
在这里插入图片描述

(1)数字类型

I:整型,范围
在这里插入图片描述

F:浮点型,精度比较低
在这里插入图片描述
在这里插入图片描述

P:打包数量,需指定DECIMALS识别小数位,精度比较高
在这里插入图片描述

C:字符型,需指定长度
D:类似字符的日期型
N:数字文本字段,需指定长度,用字符串代表数字
T:类似字符的时间型
X:十六进制字段,需指定长度
创建程序时不选择固定点算法,使用Package numbers(类型P、CURR、QUAN)类型时,小数点会被忽略。
在这里插入图片描述

(2)数字运算符

基本数据类型:
在这里插入图片描述

数字运算用函数:
在这里插入图片描述

Floating-Point函数:
在这里插入图片描述

(3)字符串类型

字符串类型分为一下4种:
C:用于定义文字、数字和特殊文字
指定类型C的长度可以直接使用”()”或者关键字LENGTH
N:用于显示类型数字,以字符串形式显示整数
D:日期类型
T:事件类型

(4)不定长ABAP基本数据类型

分类:C类型和String类型。
不同:String类型当程序执行时生成动态内存。

经常使用的字符串命令:
在这里插入图片描述

单引号”’”与grave”`”的区别:

7.Hexadecimal类型

Hexadecimal(十六进制)类型是指将1B由2个码位显示的类型。


8.局部数据类型

在程序内部声明的数据类型是局部数据类型,用关键字TYPES声明。

可以用下面语句定义结构体类型:

利用INCLUDE TYPE语句可以定义嵌套结构体类型。

利用INCLUED STRUCTURE语句,可以把结构体包含到嵌套结构体中。


9.ABAP数据字典数据类型

在数据字典中的数据类型为全局数据类型,分为3种形式。

(1)表和视图

(2)数据类型:数据元素、结构体、表类型。

(3)类型组(Type Groups)

类型组(Type Group)是以INCLUDE技术为基础的,结合多种类型进行声明时使用类型组,可以在所有程序中使用。

(4)ABAP数据字典类型

在ABAP数据字典中将经常使用的数据类型事先定义的实例,如下:


10.赋值

(1)给变量赋值

MOVE TO语句与=语句相同,可进行类型转换。
MOVE-CORRESPONDING语句的俩字段名可以不相同,还经常用于不同结构体之间同名的字段赋值。
WRITE TO语句:

(2)利用Offset进行赋值

规则如下:

(3)结构体之间的计算操作

结构体之间的赋值用MOVE-CORRESPONDING语句,


11.定义其他变量

(1)常量

常量有一般常量和结构体常量两种。

(2)静态变量

在子程序块( FORM,FUNCTION )中要持续保存局部变量值时定义为静态变量( STATICS )。

(3)TABLES

使用TABLES语句定义ABAP数据字典中的数据表、视图、结构体,会生成与ABAP数据字典具有相同结构的数据对象。也就是生成一个表工作区,在程序中与结构体的用法相同。

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

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

相关文章

智能车|ROS主控与STM32建立通信软硬件全方位讲解

智能车|ROS主控与STM32建立通信软硬件全方位讲解前言智能车控制器功能通信内容硬件连接软件设置更新电平转换芯片的serial创建设备别名使用设备别名ROS与STM32串口通信代码ROS主控读取stm32发送的数据ROS主控向stm32发送数据前言 通常复杂的机器人会存在多个控制器,…

吴恩达《机器学习》——神经网络与反向传播

神经网络与反向传播1. 神经网络1.1 神经网络的前馈传播1.2 利用反向传播求梯度1.2.1 正则化梯度2. 目标函数(损失函数)2.1 PyTorch官方文档版本2.2 吴恩达讲解版本2.3 两种版本的区别在哪?2.4 正则化目标函数3. Python实现3.1 梯度校验3.2 封…

hcie-路由引入与控制

关于本实验:本实验主要介绍了路由选择工具ACL和IP-Prefix的配置,路由引入的配置以及路由策略的配置方法及注意事项。 实验目的:掌握路由选择工具的配置方法,路由策略与策略路由的配置与注意事项。 实验组网介绍: 实验…

美颜sdk人脸美妆代码分析、算法流程

美颜sdk人像美妆是非常重要的一个功能,目前深受广大用户喜爱,本篇文章小编将为大家讲解一下美颜sdk人像美妆功能的代码以及算法实现流程。 1、人像美妆算法流程 首先进行妆容模板制作,主要由Photoshop等编辑软件制作,最终由设计…

解微信弹性布局--简单搭建一个页面

Flex布局简介布局的传统解决方案,基于盒状模型,依赖 display属性 position属性 float属性什么是flex布局?Flex是Flexible Box的缩写,意为”弹性布局”,用来为盒状模型提供最大的灵活性。任何一个容器都可以指定为Fle…

SpringBoot连接MySQL报错CommunicationsException: Communications link failure

情况说明 一个定时任务查询数据进行汇总,查询时间大约在20-30秒,应用链接报错。 CommunicationsException: Communications link failureThe last packet successfully received from the server was 10,026 milliseconds ago. 环境 MySQL8.0 mysql…

Java Eclipse如何调试代码

下面通过一个简单的例子来了解一下 Eclipse 调试程序的方法。上述代码完成的主要功能是如果 i 值满足小于或等于 5 的条件,就一直执行输出语句。可以看到 for 关键字后面的小括号中有三个表达式,第一个表达式int i0的作用是定义一个 int 类型的变量并赋初…

193:vue+openlayers 多边形的绘制,编辑feature,删除所选feature和清空功能

第193个 点击查看专栏目录 本示例的目的是介绍如何在vue+openlayer中使用select来选择feature元素,选中的元素可以编辑,也可以删除,同时可以删除整个图层的source内容。 直接复制下面的 vue+openlayers源代码,操作2分钟即可运行实现效果; 注意如果OpenStreetMap无法加载,…

IOS技术分享| IOS快对讲调度场景实现

前言 “快对讲” 是基于 anyRTC 音视频技术 对讲业务的产品,为客户提供专业对讲、多媒体对讲和可视化调度功能。 主要功能包含: 频道与会话多频道对讲、监听、锁定、强拆音视频单人、多人呼叫、呼叫调度台图片、视频上报视频回传、监看位置回传即时消息…

【CUDA】C++实现warpaffine仿射变换及其逆变换

目录仿射变换矩阵工具类进行前向仿射变换:i->d进行仿射变换逆向变换d->i仿射变换矩阵工具类 假设有图片i,要将其仿射变换至图片d,使用下面的类计算仿射变换矩阵i2d及d2i: 在调用compute函数后,输入i及d的尺寸&a…

[3] Jenkins 系列:如何获取出发Jenkins Job的用户信息?

Jenkins提供两种方式的Script,一种是基于声明式的,一种是基于脚本式的。 Jenkins申明式的格式 Jenkins脚本式的格式 Jenkins 官方推荐使用申明式的方式定义Jenkins的Pipeline。 有的时候我们需要在Pipeline给开发团队发消息或者邮件,告知当…

MAC(m1)-VMWare Fusion安装CentOS7.9

下载安装VMWare Fusion,安装完成后打开 https://blog.csdn.net/ZHOU_VIP/article/details/128513824 centos7.9安装镜像拖过来: 打开自定义设置: 换文件夹: 问题出来了,点击install闪一下,就没了&#xff…

C进阶:结构体的内存对齐

目录 本篇文章注意讲解结构体的内存对齐。 🕊️🐲一.为什么存在内存对齐 🤖👻二.内存对齐规则 🐬🐱三.实例 🐇例1. 🦄 例2. 🐯例3. 😼例4. 一.为什么…

二十四节气-小寒。文案、海报分享,小寒料峭 年味渐浓。

小寒,是二十四节气中的第23个节气,冬季的第5个节气,正处在“二九”“三九”期间,可以说是一年中最冷的时段。 中国古代将“小寒”分为三候:“一候雁北乡,二候鹊始巢,三候雉始鸲。” 大雁开始向…

Java堆空间(Heap Space)

Java 堆空间(Heap Space)概述在Java程序中,堆是JVM内存空间中最大的一块,同时我们知道,每个线程都拥有一个虚拟机栈,但是堆不同,Java堆是被所有线程共享的一块内存区域,在虚拟机启动时创建。在《Java虚拟机…

STM32——TIM输入捕获

文章目录一、TIM输入捕获输入捕获简介频率测量二、通用定时器的输入捕获通道通用定时器框图通道的输出部分三、主从触发模式主模式从模式四、输入捕获基本结构五、PWMI基本结构六、输入捕获模式测频率电路设计关键代码七、PWMI模式测频率占空比电路设计关键代码八、定时器库函数…

分而治之——图的连通性问题及板子

连通性的判断 两大算法:并查集 和 图的遍历(DFS BFS) 分而治之的题目与解答 在这道题的下面 3587. 连通图 - AcWing题库 连通性的判断 两种方法 1.这里连通性的判断是判断连通分支是否包含所有的点。 2.也可以不开cnt数组,直接…

【算法】贪心算法(第四章习题解答)

4 贪心算法 4.1 若在 0−10-10−1 背包问题中, 各物品依重量递增排列时, 其价值恰好依递减序排列. 对于这个特殊的 0−10-10−1 背包问题, 设计一个有效算法找出最优解, 并说明算法的正确性. 算法设计:由题目所给的信息可以知道这种特殊的背包问题可以通过贪心算法…

基于多保真方法来估计方差和全局敏感度指数分析(Matlab代码实现)

目录 💥1 概述 📚2 运行结果 🎉3 参考文献 👨‍💻4 Matlab代码 💥1 概述 此代码实现了多保真方法来估计方差和全局敏感度指数。当模型具有不确定的输入时,模型输出也是不确定的。基于方差的…

C++与QML混合编程

一、前言 简单来说,混合编程就是通过Qml高效便捷的构建UI界面,而使用C 来实现业务逻辑和复杂算法。Qt集成了QML引擎和Qt元对象系统,使得QML很容易从C 中得到扩展,在一定的条件下,QML就可以访问QObject派生类的成员&am…