ABAP Basic Concept (1) ABAP程式編輯工具 資料型態 變數 常用系統參數

Slides:



Advertisements
Similar presentations
作業一 : USING DBMS ( 使用 DB2 及 SQL 基本練習 ) 報告人:學生楊群期 學號: 課程 : 高等資料庫 講師 : 楊維邦教授.
Advertisements

第一單元 建立java 程式.
An Introduction to Database Systems
第 2 章 初探 C++.
資料庫設計 Database Design.
PL/SQL程序设计 过程, 函数 Trigger 对象关系数据库技术.
第2章 数据定义功能 创建表 在关系型数据模型中,表(Table)是最基本的数据结构。
Google App Engine Google 應用服務引擎.
Chapter 5 迴圈.
Lotus Domino R7 Designer
資料庫結構與組織.
第十一章 結構.
Chapter 1 用VC++撰寫程式 Text book: Ivor Horton.
ABAP Dictionary What is ABAP Dictionary ? Domain Data Element Table
Visual C++ introduction
Chap 10 SQL定義、操作與控制指令.
Basis基本操作、使用者 管理與權限設定
第3章 變數、資料型別與運算子.
列舉(enum).
資料庫操作.
第4章(2) 空间数据库 —关系数据库 北京建筑工程学院 王文宇.
課程名稱:資料庫系統 授課老師:李春雄 博士
ABAP Basic Concept (2) 運算子 控制式與迴圈 SQL指令 Subroutines Event Block
計算機概論 第十章 檔案與資料庫管理系統 陳維魁/陳邦治 旗標出版社.
類別(class) 類別class與物件object.
SQL Stored Procedure SQL 預存程序.
SAP 架構及基本操作 SAP前端軟體安裝與登入 Logical View of the SAP System SAP登入 IDES
安裝JDK 安裝Eclipse Eclipse 中文化
第3章 變數、資料型別與運算子 3-1 變數與資料型別的基礎 3-2 變數的命名與宣告 3-3 資料型別 3-4 運算式與運算子
第九單元 Classes and data abstraction I
App Inventor2呼叫PHP存取MySQL
Dialog Programming What is Dialog Programming? 新增Screen與設定Attributes
Ch4.SQL Server 2005資料庫組成員元件介紹
Java 程式設計 講師:FrankLin.
ABAP程式設計 課程簡介 靜宜大學資管系 楊子青 2011年9月13日.
第一單元 建立java 程式.
Ch20. 計算器 (Mac 版本).
SAP R/3架構及前端軟體安裝 Logical View of the R/3 System SAP Frontend 6.2安裝
成品检查报告 Inspection Report
软件工程 第四章 软件设计 软件过程设计技术与工具.
软件设计任务 从工程管理的角度来看,软件设计分两步完成。 概要设计,将软件需求转化为数据结构和软件的系统结构。
BC430 ABAP Dictionary Views、 Search Help 報告者:林聖期、程汎汝.
SAP Query 建立User Group (SQ03) 建立Infoset (SQ02)
CH1 我的第一個App與變數宣告.
從 ER 到 Logical Schema ──兼談Schema Integration
GUI Title and GUI Status
GridView.
GridView操作 (II).
Report Programming Selection Screens 報表之Output格式設定 Detail list
認識常數與變數 學習C++所提供的各種基本資料型態 瞭解溢位的發生 學習認識資料型態之間的轉換
Inheritance -II.
计算机问题求解 – 论题1-5 - 数据与数据结构 2018年10月16日.
Dialog Programming What is Dialog Programming? 新增Screen與設定Attributes
SAP 架構及基本操作 SAP前端軟體安裝與登入 Logical View of the SAP System SAP登入 IDES
Create and Use the Authorization Objects in ABAP
函數應用(二)與自定函數.
陣列與結構.
第六章 类属B树索引技术 对基于树的索引方法给出一种通用算法。该算法是建立在类属B树的概念之上开发的。它将类型系统开放,使系统能支持用户自定义的数据类型、函数和某些特殊的查询谓词的集合。并且,将新的数据类型、函数、查询谓词等登记到数据库管理系统中,
GUI Title and GUI Status
本章主題 C++的程式結構 資料型態與宣告 算術運算 簡易的輸入輸出指令 程式編譯(Compile)的過程與原理.
数据块中的数据存储 目录 页 数据存储区 … ……… 数据块 (DB) … STEP 7数据类型概述 STEP 7基本数据类型
GUI Title and GUI Status
SAP 架構及前端軟體安裝 Logical View of the SAP System SAP Frontend 7.1安裝 SAP登入
Programming & Language Telling the computer what to do
Report Programming Selection Screens 報表之Output格式設定 Detail list
ABAP Basic Concept (2) 運算子 控制式與迴圈 Subroutines Event Block
SQLite資料庫 靜宜大學資管系 楊子青.
数据库应用技术 天津电大 翟迎建.
ABAP Basic Concept (2) 運算子 控制式與迴圈 Subroutines Event Block
InputStreamReader Console Scanner
Presentation transcript:

ABAP Basic Concept (1) ABAP程式編輯工具 資料型態 變數 常用系統參數 ABAP Editor、Object Navigator 資料型態 簡單型態、自定型態、自定結構型態 變數 Element Data Object Work Area Internal Table:型態定義、變數宣告、操作 常用系統參數

1. ABAP程式編輯工具 ABAP Editor (SE38) Object Navigator (SE80) 或Tools → ABAP Workbench → Development→ User Interface → ABAP Editor 編輯、編譯與執行程式 SAP規定user欲create之objects名稱,必需以z為開頭 Object Navigator (SE80) 或Tools → ABAP Workbench → Overview → Object Navigator 協助使用者尋找物件(程式) 、將程式中的物件列出 結合ABAP Editor,可直接編寫程式

ABAP Editor進入畫面 若要找zyy開頭之程式, 可輸入zyy*,再按F4 Program name Check Activate Execute 若要找zyy開頭之程式, 可輸入zyy*,再按F4

Object Navigator進入畫面 Program 可用來找想要的程式 Development class可建立class來存放user所建立的program, table Program 可用來找想要的程式 會將中間碼放到Server

Object Navigator內頁畫面 program可以在這裡閱讀、修改或執行 程式內所使用的物件列表

2. 資料型態 簡單型態 自定型態 自定結構型態

2.1 簡單型態 ABAP 預先定義的簡單型態 C Character N Numeric Text D Date (YYYYMMDD) T Time (HHMMSS) I Integer F Floating Point Number X Byte P Packet Number (格式化數值) …

2.2 自定型態 TYPES <user defined type> TYPE <basic type> Ex: 定義My_Type1為6個字元之字串: TYPES My_Type1(6) TYPE C. TYPES My_Type2 TYPE My_Type1. TYPES <user defined type> LIKE <abap-dictionary field> Ex: TYPES MY_TYPE3 LIKE BKPF-BUKRS. (表格-欄位)

2.3 自定結構型態 TYPES: BEGIN OF <structure name>, <field1-name > TYPE (LIKE) <type> , <field2-name > TYPE (LIKE) <type> , …. , END OF <structure name>.

資料型態定義舉例 TYPES FIELD1 TYPE C. TYPES: BEGIN OF MY_STRUC1, FIELD2 TYPE I, FIELD3 TYPE MY_STRUC1-FIELD1, FIELD4 TYPE FIELD1, FIELD5 LIKE BKPF-BUKRS, END OF MY_STRUC1.

資料型態定義舉例 (Cont.) TYPES: BEGIN OF MY_STRUC2, FIELD6 TYPE C, FIELD7 TYPE I, END OF MY_STRUC2. BEGIN OF MY_STRUC3. INCLUDE TYPE MY_STRUC1 AS STRUC1. INCLUDE TYPE MY_STRUC2 AS STRUC2. TYPES: END OF MY_STRUC3.

3. 變數 ABAP提供三種不同的變數: Element Data Object Work Area Internal Table 單值變數 以多個欄位表示多個值(類似record) Internal Table 類似table的概念,多行多列

變數宣告語法 DATA <varname> TYPE <ABAP dictionary type> <user defined type> DATA <varname> LIKE <data object> TYPE+型態 LIKE+資料(變數)物件

3.1 Element Data Object 宣告變數與常數值 Variable,例如: Constants,例如: DATA MY_DATA1(10) TYPE C. DATA MY_DATA2 TYPE I. MY_DATA1 = 'test'. MY_DATA2 = 1234. DATA MY_DATA3(10) TYPE C VALUE 'pucsim'. WRITE: MY_DATA1, MY_DATA2 , MY_DATA3. Constants,例如: CONSTANTS pi TYPE P DECIMALS 4 VALUE '3.1415' .

練習A 宣告單值變數 (程式名稱zyyxx_ex_a) 定義一個使用者自訂型態MY_TYPE,且MY_TYPE的型態為C、長度為10 宣告一個變數MY_DATA1,其型態為MY_TYPE 的型態,並在宣告時給初始值。 宣告一個變數MY_DATA2,其型態為MY_DATA1的型態,宣告後再設定此變數的值。 將以上兩變數印出。

練習A參考解答 REPORT zyytc_ex_a. TYPES MY_TYPE(10) TYPE C. DATA MY_DATA1 TYPE MY_TYPE VALUE 'george'. DATA MY_DATA2 LIKE MY_DATA1. MY_DATA2 = 'yang'. WRITE: MY_Data1, MY_DATA2. Test按鈕看程式執行結果

Work Area中各欄位所存值以 <Work Area>-<Field name>與 將多個變數組合在一個物件中,以利資料的處理 基本上就是一個Structure,或是Record 兩種宣告方法 先定義structure type,再提供給Work Area使用 DATA <name> TYPE <structure type> 直接定義 DATA : BEGIN OF wa_struc , field1 TYPE <type>, field2 TYPE <type>, END OF wa_struc. Work Area中各欄位所存值以 <Work Area>-<Field name>與 之對應

Work Area (Cont.) 複製資料: MOVE-CORRESPONDING <wa1> TO <wa2> PS: 二者皆有之欄位才會進行複製

Work Area舉例 TYPES: BEGIN OF MY_STRUC1, FIELD1(10) TYPE C, FIELD2 TYPE I, FIELD3(5) TYPE N, END OF MY_STRUC1. DATA WA_MYDATA1 TYPE MY_STRUC1. WA_MYDATA1-FIELD1 = 'MY_DATA1-C'. WA_MYDATA1-FIELD2 = 11111. WA_MYDATA1-FIELD3 = '12345'. WRITE: WA_MYDATA1-FIELD1, WA_MYDATA1-FIELD2, WA_MYDATA1-FIELD3.

Work Area舉例 (Cont.) DATA: BEGIN OF WA_MYDATA2, FIELD1(10) TYPE C, FIELD2 TYPE I, FIELD3(5) TYPE N, END OF WA_MYDATA2. WA_MYDATA2-FIELD1 = 'MY_DATA2-C'. WA_MYDATA2-FIELD2 = 22222. WA_MYDATA2-FIELD3 = '67890'. WRITE: / WA_MYDATA2-FIELD1, WA_MYDATA2-FIELD2, WA_MYDATA2-FIELD3. MOVE-CORRESPONDING WA_MYDATA2 TO WA_MYDATA1. WRITE: / WA_MYDATA1-FIELD1, WA_MYDATA1-FIELD2, WA_MYDATA1-FIELD3.

練習B 宣告Work Area變數 (程式名稱zyyxx_ex_b) 自定一個Structure type,包含2個欄位(NAME為10個字元;AGE為整數) 宣告第一個Work Area變數,使用上述之自訂Structure type,並令NAME為'Tom',AGE為22 宣告第二個Work Area變數,並直接定義其結構,包含2個欄位 (NAME為10個字元;INCOME為整數) ,並令NAME為'Peter',INCOME為28000 複製第二個Work Area變數至第一個Work Area變數 將以上兩變數的所有欄位值印出。

練習B參考解答 REPORT zyytc_ex_b. TYPES: BEGIN OF TCYANG_STRUCTURE, NAME(10) TYPE C, AGE TYPE I, END OF TCYANG_STRUCTURE. DATA PERSON1 TYPE TCYANG_STRUCTURE. PERSON1-NAME = 'Tom'. PERSON1-AGE = 22.

練習B參考解答 (Cont.) DATA: BEGIN OF PERSON2, NAME(10) TYPE C, INCOME TYPE I, END OF PERSON2. PERSON2-NAME = 'Peter'. PERSON2-INCOME = 28000. MOVE-CORRESPONDING PERSON2 TO PERSON1. WRITE: / PERSON1-NAME, PERSON1-AGE. WRITE: / PERSON2-NAME, PERSON2-INCOME.

3.3 Internal Table 與DB中table的概念相同 有多個欄位並且可儲存多筆資料(多個structure的集合) 類似MS ADO物件中的 Recordset Key access Table scan Binary Search Hash Function Access Using Mostly index Mostly key Key only Uniqueness Non-unique Unique/ Non-unique Unique

(1) Internal Table Type型態定義 TYPES itabtype TYPE <tabkind> OF <structure type> [WITH <key>] Tabkind有三種:STANDARD TABLE, SORTED TABLE, HASHED TABLE 範例:定義ITAB為sorted table,參考line之結構型態,並以COLUMN1為unique key 。 TYPES: BEGIN OF LINE, COLUMN1 TYPE I, COLUMN2 TYPE I, COLUMN3 TYPE I, END OF LINE. TYPES ITAB TYPE SORTED TABLE OF LINE WITH UNIQUE KEY COLUMN1.

(2) Internal Table變數宣告 Reference to Declared Internal Table Types DATA <itab> TYPE <itabtype> [WITH HEADER LINE]. WITH HEADER line: declares an extra data object with the same name. You use it as a work area when working with the internal table.

Internal Table with Header Lines DATA <itab> TYPE <itabtype> WITH HEADER LINE Header Line <itab> Internal Table <itab> DATA <itab> TYPE <itabtype> Work Area <wa> Internal Table <itab>

Internal Table變數宣告 (Cont.) Declaring New Internal Tables DATA <itab> TYPE <tabkind> OF <structure type或abap table> WITH <key> [WITH HEADER LINE]. 範例:宣告ITAB為 hashed table,參考ABAP Dictionary中的SPFLI表格,並以CARRID及CONNID 為 unique key。 DATA ITAB TYPE HASHED TABLE OF SPFLI WITH UNIQUE KEY CARRID CONNID.

(3) Internal Table操作 INDEX ?

Internal Table操作 (Cont.) 列印Table中之所有records LOOP AT TABLE名稱 WRITE:/ TABLE名稱-欄位 ENDLOOP 補充 SKIP 跳一行 ULINE 畫一條線 WRITE: / 由新的一行開始列印

Internal Table舉例 TYPES: BEGIN OF MY_STRUC, NAME(10) TYPE C, AGE TYPE I, END OF MY_STRUC. TYPES TAB1 TYPE STANDARD TABLE OF MY_STRUC. DATA ITAB1 TYPE TAB1 WITH HEADER LINE. DATA ITAB2 TYPE STANDARD TABLE OF MY_STRUC WITH HEADER LINE. DATA PERSON1 TYPE MY_STRUC. DATA PERSON2 TYPE MY_STRUC. DATA PERSON3 TYPE MY_STRUC.

Internal Table舉例 (Cont.) PERSON1-NAME = 'George'. PERSON1-AGE = 34. PERSON2-NAME = 'Tom'. PERSON2-AGE = 22. PERSON3-NAME = 'Doris'. PERSON3-AGE = 30. APPEND PERSON1 TO ITAB1. APPEND PERSON2 TO ITAB1. WRITE: / 'APPEND TABLE:'. LOOP AT ITAB1 . WRITE : / ITAB1-NAME, ITAB1-AGE. ENDLOOP.

練習C 使用Internal Table變數 (程式名稱zyyxx_ex_c) 繼續前兩頁實例,將PERSON1及PERSON2分別新增於ITAB2表格中。 PERSON3插入於ITAB2表格之第二筆記錄。 跳一行,再印出一條線。 印出『INSERT TABLE:』之標題。 將ITAB2的所有記錄之各個欄位全部印出。

練習C參考解答 APPEND PERSON1 TO ITAB2. APPEND PERSON2 TO ITAB2. INSERT PERSON3 INTO ITAB2 INDEX 2. SKIP. ULINE. WRITE: / 'INSERT TABLE:'. LOOP AT ITAB2 . WRITE : / ITAB2-NAME, ITAB2-AGE. ENDLOOP.

4. 常用系統參數 Sy-datum Sy-uzeit Sy-subrc Sy-lsind Date and time, current application server date Sy-uzeit Date and time, current application server time Sy-subrc Return value, return value after ABAP statements Ex: 搜尋資料庫時,至少找到一筆資料,則其值為 0 Sy-lsind List processing, details list index (表示Detail List處在第幾層)