ABAP 简介:数据类型, Opera教程和编辑器

⚡ 智能摘要

ABAP入门涵盖了该语言 SAP 本资源专为在 R/3 系统上构建应用程序而创建。它解释了数据类型、运算符、控制语句、内部表以及每个 ABAP 程序都从开始的 SE38 编辑器。

  • 🔤 声明语法: DATA variable_name TYPE variable_type 声明 ABAP 中的每个变量。
  • 🔢 资料类型: I、F 和 P 保存数字;C、D、N 和 T 保存字符;X 保存十六进制数据。
  • Opera目的: 算术运算符改变数值,而逻辑运算符(如 EQ、NE、GT 和 LT)则驱动决策。
  • 🔁 控制语句: IF、CASE、WHILE 和 DO 决定程序中哪些代码行实际执行。
  • 📋 内部表: 内部表在内存中存储多行数据,是每个 ABAP 报表的核心。
  • 🖥️ 责任编辑: 事务 SE38 是 ABAP 编辑器,程序可以在这里编写、检查和执行。

简介 SAP ABAP

什么是ABAP?

ABAP 代表高级业务应用程序编程。它是一种用于开发的编程语言。ping 申请 SAP R/3 系统。

ABAP 的最新版本称为 ABAP Objects,它支持面向对象的编程。 SAP 将运行使用 ABAP/4(早期 ABAP 版本)以及使用 ABAP 对象编写的应用程序。

本介绍并非旨在记录所有内容。 ABAP 语言 本书结构严谨,快速引入关键概念,让您能够开始编写可运行的程序,然后逐步学习更高级的主题。

数据类型

每个 ABAP 程序都以声明它将要处理的数据开始。

在 ABAP 中声明变量的语法 –

DATA Variable_Name TYPE Variable_Type.

计费示例:

DATA employee_number TYPE I.

以下是 ABAP 支持的数据类型列表。

数据类型 初始字段长度 有效字段长度 初始值
数字类型
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” 数字文本字段(数字字符)
T 6 6 “000000” 时间字段(格式:HHMMSS)
十六进制类型
X 1 1 - 65535 X'0 … 0′ 十六进制字段

以上八种类型是经典的定长类型。ABAP 还提供了两种可变长度类型,初学者几乎很快就会接触到它们: STRING 对于任何长度的文本,以及 XSTRING 适用于任意长度的二进制数据。

ABAP Opera职权范围

数据声明完毕后,运算符就会对其进行修改和比较。

赋值

a = 16.
MOVE 16 TO a.
WRITE a TO b.

这三个语句都用于移动值。等号是现代形式,而 MOVE 和 WRITE TO 是较旧的等效语句,您仍然会在旧程序中遇到它们。

算术运算

COMPUTE a = a * 100.

ABAP 还支持 ADD、SUB 指令。TRACT、MULTIPLY 和 DIVIDE 可以作为独立的关键字,但上面显示的 COMPUTE 形式是最常用的。

逻辑运算符

逻辑运算符返回真或假,下一节中的每个控制语句都会测试它们。每个逻辑运算符都有文字形式和符号形式,两者可以互换使用。

词形 符号形式
EQ = 等于
NE <> 不等于
GT > 比...更棒
GE >= 大于或等于
LT < Less 比
LE <= Less 大于或等于

控制声明

控制语句使用上述逻辑运算符来决定运行哪些代码行以及运行频率。

如果……结束如果

IF [NOT] exp [ AND / OR [NOT] exp ].
  ........
[ELSEIF exp.
  .......]
[ELSE.
  .......]
ENDIF.

案例陈述

CASE variable.
  WHEN value1.
    .........
  WHEN value2.
    .........
  [WHEN OTHERS.
    .........]
ENDCASE.

WHILE 循环

WHILE <logical expression>.
  .....
ENDWHILE.

DO循环

DO <n> TIMES.
  .....
ENDDO.

WHILE 循环会一直运行,直到条件成立为止。DO 循环会运行固定次数,或者无限循环,直到 EXIT 语句终止它。

ABAP 中的内部表

单个变量通常不够用。业务程序一次读取多行数据,而内部表就是将这些数据存储在内存中的结构。

内部表是一种动态数组。它没有固定的大小,只在程序运行期间存在,它是数据库和屏幕之间移动行的标准方法。

" Declare an internal table and a work area
DATA: lt_employees TYPE TABLE OF pa0001,
      ls_employee  TYPE pa0001.

" Fill it from the database
SELECT * FROM pa0001 INTO TABLE lt_employees UP TO 10 ROWS.

" Read it row by row
LOOP AT lt_employees INTO ls_employee.
  WRITE: / ls_employee-pernr, ls_employee-ename.
ENDLOOP.

以上三个操作涵盖了大部分日常工作:声明表,使用 SELECT 语句填充表,然后使用 LOOP AT 语句遍历表。APPEND 语句添加一行,READ TABLE 语句查找一行,DELETE 语句删除符合条件的行。

ABAP/4 编辑器

以上所有语法都输入在同一个地方。

交易 SE38 打开 ABAP 编辑器,作为开发人员,您将在这里花费大部分时间创建和修改程序。

ABAP/4 编辑器

ABAP/4 编辑器,事务代码 SE38

如何编写你的第一个 ABAP 程序

以上屏幕将显示以下步骤。按照以下步骤操作,几分钟内即可生成一份工作报告。

  1. 打开编辑器。 输入交易代码 SE38 ,在 SAP 在图形用户界面命令字段中按回车键。
  2. 请说出程序名称。 输入一个以……开头的名称 Z or Y, 例如 ZHELLO_WORLD这两个字母是客户命名空间, SAP 保证升级过程中绝不会覆盖这些文件。
  3. 创建它。 点击 创建输入简短描述,然后选择 可执行程序 作为类型。
  4. 分配一个包裹。 选择 本地对象 用于练习。本地对象会保留在您的系统中,无需传输请求。
  5. 编写代码。
REPORT zhello_world.

DATA employee_name TYPE string.
employee_name = 'Guru99'.

WRITE: / 'Hello, ABAP!',
       / 'Welcome', employee_name.
  1. 检查语法。 媒体中心 Ctrl + F2键状态栏会报告任何错误以及导致错误的那一行代码。
  2. 激活程序。 媒体中心 Ctrl + F3键不活动的程序无法运行。
  3. 执行。 媒体中心 F8输出列表打开并显示两条 WRITE 行。

WRITE 语句中的斜杠会强制换行。去掉斜杠会将所有内容打印在一行上,这是大多数初学者最先养成的格式化习惯。

常用 ABAP 事务 Codes

几个简单的事务代码几乎就能满足新手 ABAP 开发人员的所有需求。

交易 目的
SE38 ABAP编辑器。创建、编辑、检查和运行程序。
SE80 对象导航器。一个用于管理程序、类、包和屏幕的统一工作台。
SE11 ABAP 字典。定义和检查数据库表、数据元素和域。
SE16N 数据浏览器。无需编写 SELECT 语句即可查看任何表的内容。
SE37 函数构建器。创建和测试函数模块。
SE24 类生成器。为 ABAP 对象创建全局类。
ST22 转储分析。读取程序终止时的运行时错误。

SE38 和 SE11 足以生成一份初步报告。一旦程序崩溃,ST22 就成为这组报告中最有价值的。

常见问题

Z 和 Y 构成客户命名空间。 SAP 该命名空间绝不会发布带有这些前缀的对象,因此升级不会覆盖您的程序。但该命名空间之外的名称可能会被替换。

ABAP/4 是过程式版本,基于报表和子例程构建。ABAP Objects 则增加了类、接口和继承。两者运行在同一系统中,因此新旧代码可以共存。

使用 P 类型(压缩类型)。它能精确存储小数,这正是货币计算所需要的。F 类型是浮点数,会引入舍入误差,导致财务总额不可靠。

是的。AI 助手可以解释转储文件,将伪代码翻译成 ABAP 代码,并提供更简洁的循环建议。务必运行语法检查,因为生成的代码可能会引用系统中不存在的表。

未经审查不可直接使用。生成的代码通常会忽略授权检查、性能规则以及 ABAP Cloud 已发布的 API 列表。请将其视为初稿,然后像测试任何代码一样进行测试。

总结一下这篇文章: