您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > SAP ABAP Programming-Introduction
IntroductiontoABAP/4Author:Date:Dec,2002OverviewSAP/R3的應用程式是在ABAPWorkbench環境中開發,使用的程式語言SAP命名為ABAP/4(AdvancedBusinessApplicationProgramming),依不同的功能,程式型態(ProgramType)可分成:Type1Type1程式執行過程首先讓User輸入參數在輸入選擇畫面上,根據參數條件自Database中讀取資料,最後將結果顯示在輸出畫面上,這種程式在SAP上通常稱為報表程式(Reports),你也可以在程式中使用Submit指令去執行另一支報表程式,將輸入參數傳入.TypeM使用畫面程序控制(Screenflowlogiccontrol)處理程式不同功能,執行需使用Transactioncode啟動程式的第一個畫面(Initialscreen),處理的畫面要使用ScreenPainter設計工具,整個程式由許多的screen所組成,也被稱作為modulepools.TypeFTypeF程式包含數個Functionmodules,不能由transactioncode啟動而是另一支程式所呼叫執行,因可包含許多的Functionmodules,也被稱作為Functiongroups.使用的開發工具為FunctionBuilder.TypeK不能由transactioncode啟動,包含數個globalclasses,TypeK程式稱為classdefinitions.使用ClassBuilder為開發工具.TypeJ同樣不能由transactioncode啟動,包含數個globalinterface,TypeK程式稱為interfacedefinitions.使用ClassBuilder為開發工具.TypeS不能由transactioncode啟動,包含數個副程式(subroutine),TypeS程式稱為subroutinepool,不能包含screen敘述.TypeITypeI程式稱為includes,目的在減少程式碼,可以在另一支ABAPprogram使用INCLUDE指令將TypeI的程式包含進來,通常使用在資料宣告及程式區塊ABAPStatement附註說明(Comments):在每列程式的第一個位置標明*或在同一列的任一位置以標示.程式每列第一個字必須是ABAP指令,如WRITE‘TESTPROGRAM’.每列程式的最後必須以.標示程式結束.指令的型態可分成:宣告資料(DeclarativeStatements)宣告程式執行所需變數名稱,如TYPES,DATA,TABLES模組宣告指令(ModularizationStatements)在ABAP程式中宣告模組敘述:EventKeywordsATSELECTIONSCREEN,START-OF-SELECTION,ATUSER-COMMANDDefiningkeywordsFORM.....ENDFORM,FUNCTION...ENDFUNCTION,MODULE...ENDMODULE.控制指令(ControlStatements)根據資料值條件執行程序,如IF,WHILE,CASE呼叫指令(CallStatements)呼叫模組程式敘述(modulationstatement),如PERFORM,CALL,SETUSER-COMMAND,SUBMIT,LEAVETO運算指令(OperationalStatements)執行資料的運算如WRITE,MOVE,ADD資料庫指令(DatabaseStatements)執行資料庫檔案的處理,可使用OpenSQL或NativeSQL語法.OpenSQLOpenSQL依循標準SQL92語法,透過資料庫介面至資料庫處理資料,如SELECT,INSERT,andDELETE.但不包含資料檔定義語法,如CREATETABLE或CREATEINDEX.NativeSQLNativeSQL直接存取資料庫不透過資料庫介面,在一般的ABAP程式並不使用.只使用在某些特殊資料庫處理,如DataDictionary即是使用NativeSQL去CreateTableCreatingandChangeProgramUsingABAPEditor使用ABAPEditor直接來編輯程式,執行TransactioncodeSE38(Tools-ABAPWorkbench-UserInterface-ABAPEditor)..SourceCodeABAP程式編輯畫面.Variants定義程式執行時輸入欄位的值,存入指定Variant名稱,執行程式時可供選取.Attributes定義程式的各項屬性參數.(1).Title:程式描述或功能說明(2).Type:Executemode:1:Stand-alongProgram如ReportsI:IncludeProgramM:ModulePoolF:FunctionGroupS:SubroutinePool(3).Status:Programdevelopmentstatus:P:SAPstandardproductionprogramK:CustomerproductionprogramS:SystemprogramT:Testprogram(4).Application:程式所屬的applicationmodule,如F表Financialacounting(5).Developmentclass:用於同一SAP系統中各個program,用於傳至另一SAP系統,測試程式可使用$TMPDocumentation撰寫程式相關的程式文件.Textelements指定程式textelements的內容,用在程式執行時的輸入提示敘述或報表輸出.BegintoWritingABABProgram以撰寫顯示系統日期時間的程式為例,需求輸出為:ThisismyfirstABAPProgramSystemDate:12/29/2002SystemTime:16:58:51Step1:AssignProgramName執行TransactioncodeSE38(Tools-ABAPWorkbench-UserInterface-ABAPEditor).輸入程式名稱為ZCHOU2002001,第一個字母Z或Y表Add-onProgram,按Step2:EditProgramAttribution輸入Title,Type及Status後按Step3:AssignDevelopmentClass輸入指定的DevelopmentClass,如果僅為測試目的,選擇Step4:WritingProgramSourceWRITE指令為將之後的資料輸出在螢幕上,加上/表示跳列Step5:StatementSyntaxCheck選擇Program-Check-Syntaxcheck或按Ctrl+F2檢查語法是否無誤,需完全沒有錯誤程式才可執行.Step6:SaveProgram選擇Program-Save或按Ctrl+S貯存程式.Step7:ActiveProgram選擇Program-Active或按Ctrl+F3Active程式,如果程式未Active則僅能使用ABAPEditor執行,不能使用Transactioncode或由另一程式呼叫.Step8:ExecuteProgram選擇Program-Execute或按F8執行程式.Step9:DisplayResult如果程式無誤會至輸出畫面顯示結果:Step10:LeftDisplayScreen按下或F3回SourceScreen,恭喜你!你已經完成你第一個ABAP/4Program.DataTypeSAP的資料型態名稱最長為30個字元,使用型態可分成三類:PredefinedDataType由SAP系統定義的資料型態,做為程式中資料宣告及檔案欄位型態,有下列幾種:TypeLengthRangeInitialValueDescriptionC11-65535ByteSpace字串資料,如’Program’F88Byte0浮點數P81-16Byte0Packed數,用在小數點數I4-2^31至2^31-10整數N11-65535Byte‘00…0’數值所組成的字串D88Byte‘00000000’日期資料,格式為YYYYMMDDT66Byte‘000000’時間資料,格式為HHMMSSX11-65535ByteX’00’16進位數STRINGDynamic1-65535ByteSpace長度不固定的字串LocalDataTypeinProgram用在程式中宣告自定的資料型態,使用TYPES指令宣告:TYPEST[TYPEtype/LIKEobject]Example:TYPES:lengthTYPEI.Example:TYPES:name(10)TYPEC.Example:TYPES:BEGINOFperson,Name(10)TYPEC,Tel(25)TYPEC,ENDOFperson.Example:TYPES:ty_pTYPEp.DATA:gv_pTYPEty_p.gv_p=1.DataTypeinABAPDictionary資料型態名稱由ABAPDictionary(TransactioncodeSE11)定義,如上圖標示資料型態名稱為VBAK-NETWR,長度及其它屬性在DataElement“NETWR_AK”定義DataObjectsDataObjects存在於程式執行期間(runtime),在程式中先宣告ObjectName,自資料庫檔案或程式運算得到的結果都要先存入DataObject中供程式其它指令執行.Literals以下是合法的資料表示:NumericData1000-3500‘125.56’‘12E2’???小數點數及科學符號資料前後必須以‘標示.TextData‘Neihu,Taipei’‘Kenny”sDocument’字串前後必須以‘標示.TextSymbols在ABAPEditor中的TextElements指定,SymbolID為3碼,習慣上自001開始編碼:如上圖範例,程式中使用為WRITE:/text-001.輸出結果為:DeltaElectronicsInc,Variables名稱最長為30Character,第一個字元必須為英文字母(A-Z),由文數字及特殊字元組成(_)所組成,避免使用特殊符號,使用DATA指令宣告:Example:DATA:ageTYPEI.Predefineddatatype使用TYPE參數Example:DATA:moneyLIKEVBAK-NETWR.DictionaryObject使用LIKE參數Example:DATA:BEGINOFADDRESS,CITY(20)TYPEC,STREET(30)TYPEC,TELLIKEADRC-TELFX,ENDOFADDRESS.宣告StructureADDRESS包含CITY,STREET,TEL欄位.ConstantsConstants為在程式中所指定的固定值,名稱長度最長30個字元,Syntax:CONSTANTSObject[TYPES/LIKEdatatype][DECIMALSn][VALUEconst/VALUESISINITIAL]Example:CONSTANTS:companyLIKEVBAK-BUKRSVALUES‘TW00’.Example:CONSTANTSpdateTYPESDVALUESSY-DATUM.PredefinedDataObjects由SAP系統定義的DataObjects,如:SPACEDataType為C,長度1個字元,是一個Constant,值為空白字元.SystemObjectSY-SUBRC系統執行傳回值,0表示成功SY-UN
本文标题:SAP ABAP Programming-Introduction
链接地址:https://www.777doc.com/doc-13436 .html