一、什么是ERP
ERP 是企业资源规划(Enterprise Resource Planning)的缩写,它指的是一种
集成化的管理软件系统
,用于协调企业内部各个部门的活动,并与外部供应商、客户以及其他利益相关方进行信息和业务流程的交互。
二、什么是SAP
SAP 是德国企业系统与应用产品(Systeme, Anwendungen und Produkte in der Datenverarbeitung)的缩写,是一家全球领先的企业软件公司。同时,SAP 也是该公司开发的一套企业资源规划(ERP)软件系统的名称。
三、什么是ABAP
ABAP(Advanced Business Application Programming)是SAP的一种编程语言,专门用于开发和定制SAP系统。它是SAP系统的核心语言之一,用于创建和修改与SAP ERP系统或其他SAP组件相关的程序和业务逻辑。
四、为什么会有SAP项目
- SAP软件并不是一个最终产品,它只是一个半成品,也可以说是一套工具
- SAP软件一个人搞不定,需要不同专业知识的人才,相互配合相互协作
SAP项目介绍
SAP工作内容
五、SAP事务码
事务码 | 功能 |
---|---|
SE38 | ABAP编辑器 |
SE37 | 函数构建器 |
SE24 | 类构建器 |
SE11 | ABAP字典 |
sm12 | 解锁 |
/n | 当前页面跳转 |
/o | 打开新的窗口 |
六、基础语法
执行流程:检查–》激活–》执行
*&---------------------------------------------------------------------*
*& Report ZDEMO_LIMING
*&---------------------------------------------------------------------*
*& 作者:钟黎明
*& 创建时间 修改时间
*& 2023/7/17
*&---------------------------------------------------------------------*
REPORT zdemo_liming."report 关键字
WRITE '这是一个测试程序'."write:输出一段内容
WRITE / '第二句话'."在新的一行输出
WRITE: / 'Hello','ABAP'.
6.1 定义变量(DATA)
DATA lv_nur TYPE n LENGTH 10." 变量定义
lv_nur = 5." 变量赋值方式1
WRITE lv_nur.
WRITE lv_nur NO-ZERO.
MOVE 40 TO lv_nur." 变量赋值方式2
WRITE / lv_nur NO-ZERO.
6.2 插入空白行(SKIP)
SKIP 1(行数).
6.3 插入一条线(ULINE)
ULINE.
6.4 消息(MESSAGE)
MESSAGE '这是一个消息' TYPE 'S'.
MESSAGE '这是一个消息' TYPE 'E'.
MESSAGE '这是一个消息' TYPE 'S' DISPLAY LIKE 'E'.
基础语法总结
七、数据类型
类型 | 典型范围 |
---|---|
X | 任何字节值(00到FF) |
C | 字符型 |
N | 数字文本字段 |
D | 日期 |
T | 时间 |
I | 整型 |
F | 浮点型 |
P | 高精度浮点型 |
string | 字符串 |
*数据类型练习
*stu number n 4
*stu name c 20
*class number n 4
*gender c 1
*age i
*stu comment string
*c date d
DATA: stu_number TYPE n LENGTH 4,
stu_name TYPE c LENGTH 20,
class_number TYPE n LENGTH 4,
gender TYPE c LENGTH 1,
age TYPE i,
score TYPE f,
stu_comment TYPE string,
c_date TYPE d.
stu_number = '0001'.
stu_name = '张三'.
class_number = '0036'.
gender = 'F'.
age = 30.
score = '1.1'.
stu_comment = '这是一个string'.
c_date = '20230717'.
WRITE: / '学号:',stu_number,
/ '姓名:',stu_name,
/ '班级:',class_number,
/ '性别:',gender,
/ '年龄:',age,
/ '分数:',score,
/ '备注:',stu_comment,
/ '日期:',c_date.
复杂数据类型
TYPES: BEGIN OF ty_student,
number TYPE n LENGTH 4,
age TYPE i,
name TYPE c LENGTH 20,
END OF ty_student.
DATA ls_stu TYPE ty_student.
ls_stu-number = '1001'.
ls_stu-age = 30.
ls_stu-name = '张三'.
WRITE / : '学号:',ls_stu-number,
'年龄:',ls_stu-age,
'姓名:',ls_stu-name.
定义变量并且设置默认值(value)
DATA lv_school TYPE c LENGTH 10 VALUE 'JZJ096'.
WRITE: / '测试默认值:',lv_school.
利用其他变量定义新变量(Like)
DATA lv_class LIKE lv_school VALUE 'C001'.
WRITE: / 'class的默认值:',lv_class.
静态变量 (Paramenter)
PARAMETERS: p_name TYPE c LENGTH 10,
p_age TYPE i,
p_addres TYPE c LENGTH 40.
引用类型(REF TO)
DATA ref_1 TYPE REF TO i.
CREATE DATA ref_1.
ref_1->* = 1.
WRITE: / '引用变量:',ref_1->*.
系统变量
WRITE: / 'SY-SUBRC',SY-SUBRC,"系统执行指令之后,是否成功,0-成功,其他-有问题
/ 'SY-DATUM',SY-DATUM,"系统当前日期
/ 'SY-UZEIT',SY-UZEIT,"系统当前时间
/ 'SY-TABIX',SY-TABIX,"表的第几行
/ 'SY-INDEX',SY-INDEX,"当前循环的次数
/ 'SY-LANGU',SY-LANGU,"系统登录语言
/ 'SY-MANDT',SY-MANDT,"当前集团代码
/ 'SY-TCODE',SY-TCODE,"当前事务码
/ 'SY-UNAME',SY-UNAME."当前登录账号
常量(CONSTANTS)
CONSTANTS LC_C TYPE c LENGTH 40 VALUE 'V01'.
WRITE: / '常量:',LC_C.
定义日期格式和输出
*定义日期格式和输出
DATA LV_DATE TYPE D.
LV_DATE = SY-DATUM.
WRITE: / 'LV_DATE:',LV_DATE DD/MM/YYYY.
WRITE: / 'LV_DATE:',LV_DATE YYMMDD.
*时间
DATA LV_TIME TYPE T.
LV_TIME = SY-UZEIT.
WRITE: /(50) LV_TIME USING EDIT MASK 'Now time is __:__:__'.
*时间戳
DATA LV_TIMESTAMP TYPE TIMESTAMP.
GET TIME STAMP FIELD LV_TIMESTAMP.
WRITE: / LV_TIMESTAMP TIME ZONE SY-ZONLO.
字符串
*字符串(string)
DATA: lv_title TYPE string,
lv_len TYPE i.
lv_title = 'this is a test'.
lv_len = strlen( lv_title )."计算字符串长度
WRITE: / '长度:',lv_len .
*字符串拼接
DATA: lv_title1 TYPE string,
lv_title2 TYPE string,
lv_title3 TYPE string.
lv_title1 = 'hello'.
lv_title2 = 'ABAP'.
CONCATENATE lv_title1 lv_title2 INTO lv_title3."把lv_title1和lv_title2拼接赋值给lv_title3
WRITE: / 'lv_title3:',lv_title3.
*去空格
DATA lv_space TYPE string.
lv_space = ' aaa'.
CONDENSE lv_space.
WRITE: / 'condence:',lv_space.