# 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 ![](https://i.imgur.com/ED7Riuh.jpg) 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 ![](https://i.imgur.com/KMuu07n.png) * 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