当前位置: 首页 > web >正文

【ABAP4】基本语法1

ABAP基本语法

  • ABAP句法规则
  • 数据
    • 基本数据声明
      • 声明变量的方式
      • 常量声明
    • 数据对象——结构
    • 数据对象——内部表
      • 概念
      • 特点
      • 分类
      • 内部表的声明
      • 内部表的赋值
  • 数据库访问

ABAP句法规则

ABAP由若干单独语句组成,每个语句以句点结束,第一个单词一般为关键字。一句语句可由多行组成,一行中可以有多个语句。

数据

基本数据声明

变量遵循“先声明后使用”原则。

声明变量的方式

DATA:<变量名称> TYPE [ABAP标准类型|用户自定义类型].

1、 基本数据类型:

数据类型初始长度有效长度初始值值域
C11-65535-
N11-65535-
D88‘00000000’-
T66‘000000’-
X11-65535-
I440
P81-160根据长度和小数点位置决定
F880

C:字符变量,初始长度为1,有效长度1-65535
N:数字,初始长度1,有效长度1-65535
D:日期,初始长度8
T:时间
P:带小数位
I:整型
F:浮点型。使用科学计数法

DATA: W_CHAR TYPE C,W_MULCHAR(20) TYPE C,W_INTERGER TYPE I VALUE 6.
DATA:<变量名称> LIKE 数据对象.

LIKE语句是变量继承数据对象的类型

常量声明

关键字为:CONSTANTS。相同业务定义为常量,赋初值,在使用的过程中不可以修改。

types:ABAP_bool TYPE C LENGTH 1.
CONSTANTS:ABAP_true TYPE abap_bool value 'X'ABAP_false TYPE abap_bool value ' ',ABAP_undefined TYPE abap_bool value '-',ABAP_on TYPE abap_bool value 'X',ABAP_off TYPE abap_bool value ' '.

数据对象——结构

1、定义结构
定义结构类似于定义表,结构里的字段相当于表中的字段。结构的声明有两种方法:

  • 使用程序预定义的结构类型
TYPE:BEGIN OF <结构类型><项目1> TYPE <类型1>,<项目2> TYPE <类型2>,...END OF <结构型>.
DATA:<结构型> TYPE <结构型>.
  • 使用数据字典中预定义的表或者构造
DATA:<结构名> TYPE <数据字典-表(结构)>.

2、结构的赋值

DATA(struct_test) = VALUE TY_COLLMNS2(COLN1=1 COLN2-COLS1=1 COLN2-COLS2=2).DATA(struct_test1) = VALUE TY_COLLMNS2(COLN1=1 COLN2=VALUE #(COLS1=1 COLS2=2)).

数据对象——内部表

概念

内表是一种临时表,建立在本地的内存空间中,不占用系统资源,并且存取速度快。

特点

内部表是ABAP/4中最核心的处理对象
内部表用来处理增删改查一系列具有相同结构的数据
内部表涵盖了在其他编程语言中的数组的功能
内部表只存在于ABAP/4程序运行的内存空间
内部表能够自动完成相关的内存管理。

分类

有序表和无序表。有序表分为标准表和排序表,一般是用的标准表。
1、标准表以Index进行排序,可使用Index和key访问。排序表以Key进行排序,也可使用Index和key访问。
2、无序表不按照任何规则进行排列,只能按照Key来进行访问。

内部表的声明

TYPES: BEGIN OF STRUCT,ID TYPE <数据库表中的字段>,...END OF STRUCT.
DATA: <表名> TYPE STANDARD TABLE OF STRUCT.

内部表的赋值

ITAB = VALUE #(直接赋值).

数据库访问

有两种访问的方式,一是Open SQL,它是SAP ABAP/4访问数据库的语法的集合;二是Native SQL,直接执行底层数据库。
TIPS:
ABAP/4语法还挺多的,就不放在一起了,下一篇博客见~

http://www.xdnf.cn/news/18817.html

相关文章:

  • CI/CD企业案例详解
  • Linux下usb设备驱动涉及的结构体
  • 记一次生产环境Hbase填坑之路、Hbase客户端登陆、kerberos认证、端口列表、Pod上手撕代码【Hbase最佳实践】
  • 酶 EC number 预测工具CLEAN的安装和使用
  • Java 线程池详解:原理、使用与源码深度解析
  • 从全栈开发到微服务架构:一次真实的Java面试实录
  • 【图像处理基石】如何把非笑脸转为笑脸?
  • Git连接Github远程仓库的代理设置
  • Java:HashSet的使用
  • Linux shell脚本条件循环
  • 基础篇(下):神经网络与反向传播(程序员视角)
  • 【论文阅读 | arXiv 2025 | WaveMamba:面向RGB-红外目标检测的小波驱动Mamba融合方法】
  • Multitouch for mac 触控板手势增强软件
  • Zynq开发实践(Verilog、仿真、FPGA和芯片设计)
  • RAG智能问答为什么需要进行Rerank?
  • 【K8s】整体认识K8s之namespace
  • 低功耗模式DMA数据搬运问题解析
  • 模块测试与低功耗模式全攻略
  • 【Java】springboot的自动配置
  • 谷德红外温度传感器在 3D 打印领域应用探究
  • Rust 登堂 生命周期(一)
  • 纯血鸿蒙下的webdav库
  • 最近遇到的几个JVM问题
  • JVM OOM问题排查与解决思路
  • Flask蓝图:模块化开发的利器
  • HarmonyOS NEXT系列之元服务框架ASCF
  • 第04章 SPSS简介与数据库构建
  • 【机器学习】9 Generalized linear models and the exponential family
  • BQTLOCK 勒索软件即服务出现,拥有复杂的规避策略
  • 大白话解析:多证明验证(Merkle Multi-Proof)​