精品SAP,ABAP,Programming-Introduction

精品SAP ABAP Programming-Introduction Introduction to ABAP/4 Author Date Dec, 2002 Overview SAP/R3的應用程式是在ABAP Workbench 環境中開發, 使用的程式語言SAP命名為ABAP/4Advanced Business Application Programming, 依不同的功能, 程式型態Program Type可分成 Type 1 Type 1 程式執行過程首先讓User輸入參數在輸入選擇畫面上, 根據參數條件自Database中讀取資料, 最後將結果顯示在輸出畫面上, 這種程式在SAP上通常稱為報表程式Reports, 你也可以在程式中使用指令去執行另一支報表程式, 將輸入參數傳入. Type M 使用畫面程序控制Screen flow logic control處理程式不同功能, 執行需使用Transaction code啟動程式的第一個畫面Initial screen, 處理的畫面要使用Screen Painter設計工具, 整個程式由許多的screen所組成, 也被稱作為module pools. Type F Type F 程式包含數個Function modules, 不能由transaction code 啟動而是另一支程式所呼叫執行, 因可包含許多的 Function modules, 也被稱作為Function groups. 使用的開發工具為Function Builder. Type K 不能由transaction code 啟動, 包含數個global classes , Type K程式稱為class definitions. 使用 Class Builder 為開發工具. Type J 同樣不能由transaction code 啟動, 包含數個global interface , Type K程式稱為interface definitions. 使用 Class Builder 為開發工具. Type S 不能由transaction code 啟動, 包含數個副程式subroutine, Type S程式稱為subroutine pool, 不能包含screen敘述. Type I Type I 程式稱為includes, 目的在減少程式碼, 可以在另一支ABAP program 使用INCLUDE指令將Type I的程式包含進來, 通常使用在資料宣告及程式區塊 ABAP Statement 附註說明Comments 在每列程式的第一個位置標明 * 或在同一列的任一位置以 “ 標示. 程式每列第一個字必須是 ABAP指令, 如 WRITE ‘TEST PROGRAM’. 每列程式的最後必須以 . 標示程式結束. 指令的型態可分成 宣告資料Declarative Statements 宣告程式執行所需變數名稱, 如 TYPES, DATA, TABLES 模組宣告指令Modularization Statements 在ABAP程式中宣告模組敘述 Event Keywords AT SELECTION SCREEN, START-OF-SELECTION, AT USER-COMMAND Defining keywords ..... END, FUNCTION ... ENDFUNCTION, MODULE ... ENDMODULE. 控制指令Control Statements 根據資料值條件執行程序, 如IF, WHILE, CASE 呼叫指令Call Statements 呼叫模組程式敘述modulation statement, 如PER, CALL, SET USER-COMMAND, , LEAVE TO 運算指令Operational Statements 執行資料的運算如 WRITE, MOVE, ADD 資料庫指令Database Statements 執行資料庫檔案的處理, 可使用Open SQL或Native SQL語法. Open SQL Open SQL 依循標準SQL92 語法, 透過資料庫介面至資料庫處理資料, 如SELECT, INSERT, and DELETE. 但不包含資料檔定義語法, 如CREATE TABLE 或 CREATE INDEX. Native SQL Native SQL 直接存取資料庫不透過資料庫介面, 在一般的ABAP程式並不使用.只使用在某些特殊資料庫處理, 如Data Dictionary即是使用Native SQL去Create Table Creating and Change Program Using ABAP Editor 使用ABAP Editor直接來編輯程式, 執行Transaction code SE38Tools- ABAP Workbench - User Interface - ABAP Editor. .Source Code ABAP 程式編輯畫面. Variants 定義程式執行時輸入欄位的值, 存入指定Variant名稱, 執行程式時可供選取. Attributes 定義程式的各項屬性參數. 1.Title程式描述或功能說明 2.Type cute mode 1 Stand-along Program 如Reports I Include Program M Module Pool F Function Group S Subroutine Pool 3.Status Program development status P SAP standard production program K Customer production program S System program T Test program 4.Application 程式所屬的application module, 如F表 Financial acounting 5.Development class 用於同一SAP系統中各個program, 用於傳至另一SAP系統, 測試程式可使用TMP Documentation 撰寫程式相關的程式文件. Text elements 指定程式text elements 的內容, 用在程式執行時的輸入提示敘述或報表輸出. Begin to Writing ABAB Program 以撰寫顯示系統日期時間的程式為例, 需求輸出為 This is my first ABAP Program System Date 12/29/2002 System Time 165851 Step1 Assign Program Name 執行Transaction code SE38Tools- ABAP Workbench - User Interface - ABAP Editor. 輸入程式名稱為ZCHOU2002001, 第一個字母Z或Y表Add-on Program, 按 Step2 Edit Program Attribution 輸入Title, Type及Status後按 Step3 Assign Development Class 輸入指定的Development Class, 如果僅為測試目的, 選擇 Step4 Writing Program Source WRITE指令為將之後的資料輸出在螢幕上, 加上 / 表示跳列 Step5 Statement Syntax Check 選擇 Program- Check- Syntax check或按 Ctrl F2檢查語法是否無誤, 需完全沒有錯誤程式才可執行. Step6 Save Program 選擇 Program- Save或按 Ctrl S貯存程式. Step7 Active Program 選擇 Program- Active或按 Ctrl F3 Active程式, 如果程式未Active則僅能使用ABAP Editor執行, 不能使用Transaction code或由另一程式呼叫. Step8 cute Program 選擇 Program- cute或按 F8執行程式. Step9 Display Result 如果程式無誤會至輸出畫面顯示結果 Step10 Left Display Screen 按下 或F3回Source Screen, 恭喜你 你已經完成你第一個ABAP/4 Program. Data Type SAP的資料型態名稱最長為30個字元, 使用型態可分成三類 Predefined Data Type 由SAP系統定義的資料型態, 做為程式中資料宣告及檔案欄位型態, 有下列幾種 Type Length Range Initial Value Description C 1 1-65535Byte Space 字串資料, 如’Program’ F 8 8Byte 0 浮點數 P 8 1-16Byte 0 Packed 數, 用在小數點數 I 4 -231至231-1 0 整數 N 1 1-65535Byte ‘000’ 數值所組成的字串 D 8 8Byte ‘00000000’ 日期資料, 格式為YYYYMMDD T 6 6Byte ‘000000’ 時間資料, 格式為HHMMSS X 1 1-65535Byte X’00’ 16進位數 STRING Dynamic 1-65535Byte Space 長度不固定的字串 Local Data Type in Program 用在程式中宣告自定的資料型態, 使用 TYPES 指令宣告 TYPES [TYPE / LIKE ] Example TYPES length TYPE I. Example TYPES name10 TYPE C. Example TYPES BEGIN OF perso