# SAP ABAP Memo
###### tags: `SAP` `ABAP`
[A Very Good Reference(in Japanese)](https://it-biz.online/sap/abap-abc/#toc4)
[技術總結 之後再來看](https://www.cnblogs.com/jiangzhengjun/p/7264657.html#_Toc410466841)
---
## Data & Types
* Syntax: 一定要先宣告
```
TYPES type_name TYPE data_type
DATA variable_name TYPE vaiable_TYPE.
e.g. DATA EMPLOYEE_NUMBER TYPE I.
```
* 口訣:**types聲明類型,data聲明變數,變數要有類型**
* Data Types

DTIF固定長度
其餘不固定
另,可以利用TYPES語法創造非SAP Dictionary提供的data type
例如:
```
* 這是一個長度為15的char類型名為text1
TYPES text1(15) TYPE C.
DATA var TYPE text1.
* 這是一個名為t_staff的表狀data
TYPES: BEGIN OF t_staff,
no(3) TYPE N,
name(20) TYPE String,
END OF t_staff.
* 設定一個變數staff其資料類型為t_staff
DATA staff TYPE t_staff.
```
* Processing Data
賦值:
a = 16. / MOVE 16 TO a. / WRITE a TO b.
用第一種即可
計算:
(COMPUTE) b = a * 100.
---
## 流程控制
* if... else if...else
```
IF 條件.
do something.
ELSEIF 條件.
do something.
ELSE.
do something.
ENDIF.
```
ELSEIF & ELSE are not mandatory, but **ENDIF is**.
* while loop
```
WHILE 條件.
do something.
ENDWHILE.
```
* 邏輯運算子
不等於為<>
其餘都一樣
---
## System Variables
* Frequently Used System Variable

* SY-SUBRC (similar to Boolean but the type is integer)
RC stands for Return Code
SY-SUBRC = 0 -> success
SY-SUBRC = 4 -> failure
SY-SUBRC = 8 -> special type of failure
通常的寫法為 "判斷SY-SUBRC=0 or SY-SUBRC<>0" 即可
---
## Data Dictionary
* 作用:創建與管理Data
* Domain, Data Element, Table
Domain定義Data Element的屬性(例如type, length等等)
Data Element組成Table