学习本章节最好是有自己的sap账号和密码,可以完整的登录,进行语法的测试,纸上谈兵不可取,多多练习敲代码才能加深自己的印象和理解。

首先建立自己的第一个abap程序

首先我们需要登录sap进入的首页面
登录首页

1. 输入t-code se38 进入程序创建界面

写好程序名称, 一般以zprograme开头,点击创建

2. 点击保存进入创建

标题: 这里写好该程序的用途,
类型: 填写可执行程序
状态: sap标准生产状态

3. 保存,最后我们将包放在TMP包下,不会印象sap端的其他程序运行

4, 创建成功,可以回家睡觉啦

语法基础以及测试效果展示

程序员的第一步,先写个helloworld把,从现在开始,你就会了一门新语言了

REPORT zprograme_test01.WRITE: 'hello world ! ' .  " write 语句, 都是以该格式进行的, .就是语句结束的标志, 所有的关键子结束都必须以  . 结尾
SKIP  .   " 跳过一行,流一行空白 与 /, 作用相同
WRITE: 'hello world2 ! ' .
WRITE : /,sy-uline .     " /, 作为空行,  sy-uline 系统变量,就是在屏幕上画一条直线
WRITE: 'hello world2 ! ' .
ULINE . " 与  sy-uline 相同的作用


效果展示

可以清晰的看到,abap程序的展示效果,以及语法的效果, 就是有点觉得,abap的语法属实有点反人类了。

不要着急,还有跟反人类的,再来看看abap的数据类型和定义把

数据类型

TYPES:BEGIN OF employee,code(10) TYPE c,name(10) TYPE c,END OF employee.   " 设置 employee 结构体,也可以叫做工作区
DATA: ls_emp TYPE TABLE OF employee .  " 内表,查询后的数据一般放在这里
DATA: wa_emp TYPE  employee .  " 正规写法, wa_表名,作为某个表的工作区,TYPES:address(50) TYPE c.  "
DATA:emp TYPE employee.
DATA:myadd TYPE address. "  实际上就是  myadd  type address 等同于  (50) type c
emp-code = '1001'.  "赋值
emp-name = '张三'.
myadd = 'this is a address'.
WRITE: / emp.
WRITE: / myadd.

数据对象

变量

变量定义包含 name length type 等, 语法如下

DATA <name> [<length>] type <type> [value <value> ] [decimal <decimal>][] 里面内容表示可选项, <> 表示名称
<name>变量名称,最长30 字符,不可包含+.,:()等字符
<length>长度,用圆括号括起来,
<type>数据类型
<value>初始值
decimal小数位
eg:
DATA: c1      TYPE c,c2      TYPE i VALUE 1 ,temp    TYPE p DECIMALS 2 VALUE 2  ,str(10) TYPE c VALUE '你好hello world 你好世界!!'.  " (10) 表示只选取 定义内容的前十个字符WRITE : c1 .
ULINE .
WRITE : c2 .
ULINE .
WRITE : temp .
ULINE .
WRITE : str.
ULINE .变量定义也可以用关键字LIKE
DATA  <name> [<length>] like<object>|<type>[ value  <value>] [ decimal  <decimals>]
TYPE 与LIKE的区别:LIKE 用在已有值的数据类型, 如系统变量, 而TYPE则是用在 定义数据类型。DATA: str2  LIKE str,tcode LIKE sy-tcode.
write: str2 .

常量

常量定义使用 CONSTANTS
CONSTANTS<常量名>[<长度> ] TYPE <数据类型> VALUE <默认值>

CONSTANTS  PI  TYPE  P  DECIMALS  5  VALUE  '3.14159'.

系统定义对象


SY-SUBRC :  系统执行某指令后,表示执行成功与否的变量,'0' 表示成功
SY-UNAME:   当前使用者登入SAP的USERNAME;
SY-DATUM:   当前系统日期;
SY-UZEIT:   当前系统时间;
SY-TCODE:   当前执行程序的Transaction code
SY-INDEX :  当前LOOP循环过的次数
SY-TABIX:   当前处理的是internal table 的第几笔
SY-MANDT:   CLIENT(客户端编号) NUMBER
SY-VLINE:    画竖线
SY-ULINE:    画横线
SKIP 空行
ULINE 画横线

结构


DATA:BEGIN OF userinf,    " 定义结构体,同时这个结构体,就像java中的对象,这些属性属于这个对象sid(10)  TYPE c,name(20) TYPE c,tel(20)  TYPE c,END OF userinf.DATA: user1 LIKE userinf,user2 LIKE userinf.  " 复制了两个对象 user1 ,user2 user1-sid = 'A00001'.
user1-name =' JERY'.
user1-tel = '010-12345678'.    "  user1 赋值
user2 = user1. " copy属性
WRITE:user1, /, user1-sid .  " 展示数据
SKIP. uline.
WRITE:'user2 : ',user2, /, user2-sid .DATA:BEGIN OF userdetail,sid(10)  TYPE c,name(20) TYPE c,birdate  TYPE d,add(50)  TYPE c,END OF userdetail.  " 一个比user更强大的对象MOVE-CORRESPONDING user1 TO userdetail . " 将user1 里面的属性复制给userdetail,同时由于电话对应字段在userdetail的第三位,就是字段类型不一致导致最后复制过去的时候,变为00000000了SKIP. uline.
WRITE:'userdetail : ',userdetail, /, userdetail-sid .

附: 思维导图,ppt等文件

ABAP基本语法(一)附带思维导图学习材料等相关推荐

  1. 当初我要是这么学习「进程和线程」就好了(附带思维导图)

    作者 | cxuan 来源 | Java建设者 本文思维导图 我们平常说的进程和线程更多的是基于编程语言的角度来说的,那么你真的了解什么是线程和进程吗?那么我们就从操作系统的角度来了解一下什么是进程和 ...

  2. iMindMap12免费下载安装激活教程及如何免费用思维导图学习

    iMindMap思维导图相信你也有过这样的经历,在学习知识的时候,总是在本子上密密麻麻地记录着各种各样的笔记,然而到了考试复习的时候,就拼命地翻书,到了考试,还是有些知识点记不起来.这就说明,这种记笔 ...

  3. 你还在为怎么学习烦恼嘛?思维导图学习法

    Preface 在上篇文章学Java该学什么?中描述Java知识体系时,我用到了一种工具-思维导图来建立起整个Java学习中的知识点.而这种方法被称之为思维导图学习法: 思维导图学习法是我近来开始最常 ...

  4. 思维导图学习 | 第四篇:java学习特别篇,java正确的学习姿势

    配套Ximnd学习导图下载地址 java思维导图:https://gitee.com/1341541819.com/java_xmind/tree/master 写在最后 欢迎关注.喜欢.和点赞后续将 ...

  5. 21天学通c语言思维导图,21天思维导图学习 ----开发脑洞、助力成长

    kk      第一次知道"思维导图"这个词,是在参加Grace创办的第一期"成长集训营".她建议我们用思维导图的方式去完成每天的思考作业,了解和认知也仅在于它 ...

  6. 思维导图学习法 金融学基础课程思维导图分享

    这是我本人总结的思维导图学习法,我将其用于五门金融学基础课程的学习,受益颇多,在此进行分享 MAC和IOS用户推荐下载MindNode 链接下载:https://pan.baidu.com/s/1qO ...

  7. 思维导图学习---计算机相关基础思维导图(1)

    思维导图学习-计算机相关思维导图(1) 1. 计算机概论思维导图:下载地址 2. 计算机系统基础思维导图:下载地址 3. 计算机组成与系统架构思维导图:下载地址 4. 计算机组成原理思维导图:

  8. 思维导图学习法——记忆曲线

    又是一年九月来临,都说新学期新气象,你是不是还在为新的一学期新的课程烦恼呢?一叠叠的书本和复习资料是不是还记不住呢?小编在学习时也总是感叹自己的大脑容量为什么不能再大一点呢,或者是有哆啦A梦一样的记忆 ...

  9. XMind课堂之思维导图学习法

    思维导图,作为一种有效的图形思维工具越来越受大众欢迎,无论是学生.老师还是上班族,思维导图可以说是必备技能.但是,很多人在接触思维导图时会显得有些焦急,不知道怎么开始去学习它,小编为了带你们走出这类的 ...

最新文章

  1. 使用Python,OpenCV读取视频的每一帧,修改后写入视频
  2. Spring原理简述
  3. Python判断字符串是否xx开始或结尾
  4. 编译bluez-5.25 通过 Linux环境下运行
  5. 前端学习(3167):react-hello-react之鼠标移入效果
  6. 前端学习(2866):自定义组件库效果演示
  7. solarwinds ipam功能说明手册
  8. 如何爬取了知乎用户信息,并做了简单的分析
  9. java mongodb 语句,MongoDB语句
  10. 学习Spring(四) -- Spring的继承与依赖
  11. k8s数据持久化实验
  12. 行程匹配的算法python_节约里程算法的python实现
  13. 产品设计:《广告设计与创意》
  14. swfupload 无法加载_解决SWFUpload的按钮图片加载慢的问题
  15. 设置hyper-v虚拟机的enhanced session mode
  16. HTML网页图片背景以及图片自适应设置
  17. 日更文章到底难不难?
  18. .Net再次使用FlashPaper
  19. Spring Boot 2.2.x Junit4 升级为Junit5 后的变化、对比 找不到 org.junit.jupiter.api.Test
  20. ununtun学习系列1--- sudo update与upgrade区别

热门文章

  1. Kubernetes哪一点最打动你?或者,它发布过的哪一项特性让你认为最厉害?
  2. “钢铁侠”把特斯拉送上太空,可你知道发射卫星有多难吗?
  3. 俄罗斯方块的简单实现
  4. Excel如何在姓名与字母之间加空格
  5. android.graphics.bitmap jar,Android入门之画图详解
  6. .net framework 官方下载地址
  7. centos彻底删除文件夹、文件命令
  8. 牛小刚的Spring自学笔记之IOC
  9. Unity3d之坦克大战(二)
  10. ym——android源代码大放送(实战开发必备)