SAP及ABAP綜合培訓(xùn)教案_第1頁(yè)
SAP及ABAP綜合培訓(xùn)教案_第2頁(yè)
SAP及ABAP綜合培訓(xùn)教案_第3頁(yè)
SAP及ABAP綜合培訓(xùn)教案_第4頁(yè)
SAP及ABAP綜合培訓(xùn)教案_第5頁(yè)
已閱讀5頁(yè),還剩268頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、ABAP/4培訓(xùn)SAP及ABAP概述10/12/2022張玉皎ABAP TrainingSAP及ABAP/4Overview系統(tǒng)開發(fā)發(fā)語(yǔ)言創(chuàng)建企業(yè)業(yè)報(bào)表應(yīng)用事務(wù)務(wù)開發(fā)商用文檔檔設(shè)計(jì)1/15/2020張玉皎SAP介紹ERP巨人SAP:創(chuàng)立于于1972年,ERP思想的倡倡導(dǎo)者,ERP領(lǐng)域中處處于領(lǐng)導(dǎo)導(dǎo)地位,全球最最優(yōu)秀的的企業(yè)管管理軟件件供應(yīng)商商SAP:System, Application andProductsinData Processing,即數(shù)據(jù)據(jù)處理的的系統(tǒng)、應(yīng)用和和產(chǎn)品1/15/2020張玉皎SAPR/3一體化ERP系統(tǒng)客戶/服務(wù)器FI財(cái)務(wù)會(huì)計(jì)計(jì)CO財(cái)務(wù)控制制TR司庫(kù)PS項(xiàng)目管理理W

2、F工作流程程管理IS行業(yè)解決決方案MM物料管理理HR人事管理理SD銷售與分分銷PP生產(chǎn)計(jì)劃劃QM質(zhì)量管理理PM工廠維護(hù)護(hù)后勤系統(tǒng)財(cái)務(wù)系統(tǒng)人力資源客戶及工業(yè)部門的特殊要求1/15/2020張玉皎SAP新的業(yè)務(wù)務(wù)模塊和和組件CRM顧客關(guān)系系管理SCM供應(yīng)鏈管管理BW商業(yè)信息息倉(cāng)庫(kù)APO高級(jí)計(jì)劃劃與優(yōu)化化(AdvancedPlannerandOptimizer)1/15/2020張玉皎R/3主要業(yè)務(wù)務(wù)模塊介介紹生產(chǎn)計(jì)劃劃控制物料管理理銷售與分分銷財(cái)務(wù)會(huì)計(jì)計(jì)管理會(huì)計(jì)計(jì)人力資源源1/15/2020張玉皎SAP其他業(yè)務(wù)務(wù)模塊跨應(yīng)用組組件(CA,Cross-ApplicationCompo-nents)基礎(chǔ)

3、系統(tǒng)統(tǒng)組件(BC,BasisComponents)品質(zhì)管理理(QM,Quality Management)資產(chǎn)管理理(AM,AssetsManagement)1/15/2020張玉皎SAP業(yè)務(wù)流程程S&D銷售訂單單PP主生產(chǎn)計(jì)計(jì)劃物料需求求計(jì)劃采購(gòu)訂單單庫(kù)存管理理生產(chǎn)執(zhí)行行開票運(yùn)輸生產(chǎn)訂單單發(fā)票校驗(yàn)驗(yàn)成本財(cái)務(wù)MMCO/FI1/15/2020張玉皎ERP實(shí)施步驟驟總體規(guī)劃劃,分步步實(shí)施教育和培培訓(xùn)原形測(cè)試試數(shù)據(jù)準(zhǔn)備備系統(tǒng)開發(fā)發(fā)模擬運(yùn)行行切換1/15/2020張玉皎SAP實(shí)施Roadmap1/15/2020張玉皎SAP實(shí)施結(jié)構(gòu)構(gòu)設(shè)計(jì)實(shí)施過程程中需要要多少個(gè)個(gè)R/3系統(tǒng)需要多少少個(gè)Client,具體

4、任任務(wù)是什什么各個(gè)集團(tuán)團(tuán)將如何何分布在在不同的的系統(tǒng)中中通常將“開發(fā)”、“質(zhì)質(zhì)量控制制(測(cè)試試)”、“產(chǎn)品品”分別別置于三三個(gè)不同同系統(tǒng)的的不同集集團(tuán)中1/15/2020張玉皎開發(fā)過程程中標(biāo)準(zhǔn)準(zhǔn)制定制定命名名規(guī)則:自定制的的所有對(duì)對(duì)象應(yīng)當(dāng)當(dāng)以“Z”或“Y”開頭;避避免命名名沖突界面風(fēng)格格指南:應(yīng)與SAP的標(biāo)準(zhǔn)保保持一致致文檔維護(hù)護(hù):項(xiàng)目文檔檔:項(xiàng)目目設(shè)計(jì)、實(shí)施進(jìn)進(jìn)度等最終用戶戶文檔:對(duì)象說說明、程程序說明明等技術(shù)說明明文檔:程序代代碼說明明、程序序規(guī)格等等修訂列表表維護(hù):對(duì)所有對(duì)對(duì)象的修修改清單單對(duì)象模塊塊化、在在線文檔檔標(biāo)準(zhǔn)等等1/15/2020張玉皎ABAP TrainingSAP及ABA

5、P/4Overview系統(tǒng)開發(fā)發(fā)語(yǔ)言創(chuàng)建企業(yè)業(yè)報(bào)表應(yīng)用事務(wù)務(wù)開發(fā)商用文檔檔設(shè)計(jì)1/15/2020張玉皎R/3開發(fā)平臺(tái)臺(tái)介紹R/3體系結(jié)構(gòu)構(gòu)R/3倉(cāng)庫(kù)與開開發(fā)平臺(tái)臺(tái)系統(tǒng)開發(fā)發(fā)工具第一個(gè)ABAP程序ABAP數(shù)據(jù)字典典介紹1/15/2020張玉皎R/3邏輯體系系結(jié)構(gòu)邏輯上分分為顯示示層、應(yīng)應(yīng)用層、數(shù)據(jù)庫(kù)庫(kù)層數(shù)據(jù)庫(kù)層層:主要要業(yè)務(wù)數(shù)數(shù)據(jù)及開開發(fā)過程程中的程程序和元元數(shù)據(jù)通通過關(guān)系系數(shù)據(jù)庫(kù)庫(kù)管理系系統(tǒng)進(jìn)行行操作;應(yīng)用層:從數(shù)據(jù)據(jù)層提取取數(shù)據(jù)進(jìn)進(jìn)行處理理或者存存儲(chǔ)新數(shù)數(shù)據(jù)顯示層:SAPGUI,系統(tǒng)和和用戶間間的接口口,用戶戶通過該該層訪問問系統(tǒng)應(yīng)應(yīng)用、輸輸入新數(shù)數(shù)據(jù)并接接受工作作過程的的處理結(jié)結(jié)果1/15

6、/2020張玉皎SystemArchitecture andABAP Program1/15/2020張玉皎Excerpt foranABAP Program1/15/2020張玉皎InteractionBetween ServerLayers1/15/2020張玉皎R/3倉(cāng)庫(kù)R/3倉(cāng)庫(kù)儲(chǔ)存存所有SAP系統(tǒng)開發(fā)發(fā)過程中中的對(duì)象象,這些些對(duì)象也也被稱之之為倉(cāng)庫(kù)庫(kù)對(duì)象:ABAP程序數(shù)據(jù)庫(kù)表表結(jié)構(gòu)定定義系統(tǒng)數(shù)據(jù)據(jù)類型倉(cāng)庫(kù)對(duì)象象不是企企業(yè)業(yè)務(wù)務(wù)數(shù)據(jù),而是系系統(tǒng)內(nèi)部部數(shù)據(jù),與Client無關(guān)倉(cāng)庫(kù)對(duì)象象要從R/3系統(tǒng)傳入入另一R/3系統(tǒng),需需要開發(fā)發(fā)類別輔輔助1/15/2020張玉皎Structureof

7、the Repository1/15/2020張玉皎開發(fā)類別別倉(cāng)庫(kù)對(duì)象象創(chuàng)建時(shí)時(shí),需要要指定所所屬的開開發(fā)類別別倉(cāng)庫(kù)對(duì)象象在R/3倉(cāng)庫(kù)中按按照開發(fā)發(fā)類別分分類,這這些對(duì)象象的集合合形成的的組織單單元即為為開發(fā)類別別開發(fā)類別別的主要要功能是是對(duì)倉(cāng)庫(kù)庫(kù)對(duì)象進(jìn)進(jìn)行管理理(目錄錄管理及及傳輸控控制管理理等)開發(fā)類別別中所包包含的倉(cāng)倉(cāng)庫(kù)對(duì)象象可以通通過對(duì)象象瀏覽器器(SE80)查看和維維護(hù)開發(fā)類是是ABAP工作臺(tái)對(duì)對(duì)象,其其修改通通過TransportOrganizer記錄,開開發(fā)類別別的開發(fā)發(fā)類別是是其自身身1/15/2020張玉皎TransportingDevelopmentObjects1/15/

8、2020張玉皎ABAP工作臺(tái)工工具介紹紹(1)對(duì)象導(dǎo)航航器:ObjectNavigator,通過開開發(fā)類別別組織R/3對(duì)象的瀏瀏覽及維維護(hù)程序編輯輯器:ABAP Editor,編輯ABAP程序代碼碼數(shù)據(jù)建模模器:Data modeler,業(yè)務(wù)數(shù)數(shù)據(jù)建模模工具數(shù)據(jù)字典典:ABAP Dictionary,定義系系統(tǒng)數(shù)據(jù)據(jù)類型及及數(shù)據(jù)庫(kù)庫(kù)對(duì)象簡(jiǎn)單報(bào)表表創(chuàng)建器器:ABAP Query1/15/2020張玉皎ABAP工作臺(tái)工工具介紹紹(2)函數(shù)創(chuàng)建建器:FunctionBuilder,創(chuàng)建功功能模塊塊類創(chuàng)建器器:ClassBuilder,創(chuàng)建ABAP類及方法法等面向向?qū)ο笤夭藛卫L制制器:Menu P

9、ainter,用于創(chuàng)創(chuàng)建屏幕幕的標(biāo)題題、菜單單、工具具欄中的的元素及及功能設(shè)設(shè)定屏幕繪制制器:ScreenPainter,用于創(chuàng)創(chuàng)建SAP標(biāo)準(zhǔn)屏幕幕工作臺(tái)管管理器:WorkbenchOrganizer,用于管管理修改改請(qǐng)求1/15/2020張玉皎ABAP WorkbenchTools1/15/2020張玉皎對(duì)象導(dǎo)航航器ABAP工作臺(tái)的眾多開開發(fā)工具具的中心心入口,可對(duì)各各種R/3倉(cāng)庫(kù)對(duì)象象進(jìn)行維維護(hù),具具體見下下圖事務(wù)碼:SE80包括導(dǎo)航航區(qū)域、對(duì)象瀏瀏覽及工工具區(qū)域域三大塊塊導(dǎo)航區(qū)域域:對(duì)象象列表選選擇及名名稱輸入入?yún)^(qū)域?qū)ο罅斜肀恚簩?duì)象象列表機(jī)機(jī)上下文文菜單(contextmenu)工具區(qū)域

10、域:ABAP工作臺(tái)工工具、工工具欄、菜單、標(biāo)準(zhǔn)工工具欄、應(yīng)用工工具欄及及附屬窗窗口等1/15/2020張玉皎ABAP對(duì)象導(dǎo)航航器圖例例導(dǎo)航區(qū)域域工具區(qū)域域?qū)ο罅斜肀砀綄俅翱诳?/15/2020張玉皎ABAP編輯器路路徑事務(wù)碼SE381/15/2020張玉皎Abap程序及相相關(guān)介紹紹ABAP advanced business application programming是“高級(jí)級(jí)商業(yè)應(yīng)應(yīng)用編程程”的縮縮寫“HelloWorld”程序系統(tǒng)程序序?qū)嵗篈BAPDOCU、DWDM1/15/2020張玉皎ABAP(DDIC)數(shù)據(jù)字典典介紹數(shù)據(jù)字典典:定義和管管理數(shù)據(jù)據(jù)元素及及數(shù)據(jù)庫(kù)庫(kù)元素的的中心工工

11、具,所所有的數(shù)數(shù)據(jù)庫(kù)表表結(jié)構(gòu)及及系統(tǒng)全全局?jǐn)?shù)據(jù)據(jù)類型等等都需要要在其中中創(chuàng)建并并維護(hù)功能:自定義系系統(tǒng)共用用數(shù)據(jù)類類型(基本類型型、結(jié)構(gòu)構(gòu)和表)定義數(shù)據(jù)據(jù)庫(kù)對(duì)象象結(jié)構(gòu)(數(shù)據(jù)庫(kù)表表、視圖圖和索引引等)進(jìn)行屏幕幕字段的的格式化化、編輯輯,比如如F1和F4幫助事務(wù)碼:SE111/15/2020張玉皎SE111/15/2020張玉皎ABAP TrainingSAP及ABAP/4Overview系統(tǒng)開發(fā)發(fā)語(yǔ)言創(chuàng)建企業(yè)業(yè)報(bào)表應(yīng)用事務(wù)務(wù)開發(fā)商用文檔檔設(shè)計(jì)1/15/2020張玉皎企業(yè)報(bào)表表類型靜態(tài)報(bào)表表交互式報(bào)報(bào)表1/15/2020張玉皎報(bào)表格式式1/15/2020張玉皎一般報(bào)表表1/15/2020張玉皎AL

12、V報(bào)表(一)1/15/2020張玉皎ALV報(bào)表(二)1/15/2020張玉皎ABAP TrainingSAP及ABAP/4Overview系統(tǒng)開發(fā)發(fā)語(yǔ)言創(chuàng)建企業(yè)業(yè)報(bào)表應(yīng)用事務(wù)務(wù)開發(fā)商用文檔檔設(shè)計(jì)1/15/2020張玉皎對(duì)話編程程簡(jiǎn)介事務(wù)是實(shí)實(shí)施與與用戶對(duì)對(duì)話的的程序。在典典型的對(duì)對(duì)話中中,用戶戶可以以在系統(tǒng)統(tǒng)顯示示的屏幕幕上輸輸入或請(qǐng)請(qǐng)求信信息。作作為對(duì)對(duì)用戶輸輸入或或請(qǐng)求的的響應(yīng)應(yīng),程序序執(zhí)行行適當(dāng)?shù)牡膭?dòng)作作:轉(zhuǎn)到到下一一個(gè)屏幕幕,顯顯示輸出出或更更改數(shù)據(jù)據(jù)庫(kù)。SAP系統(tǒng)中的的每個(gè)個(gè)對(duì)話都都是由由動(dòng)態(tài)程程序控控制的。動(dòng)態(tài)態(tài)程序包包含一一個(gè)屏幕幕和它它的流邏邏輯并并且精確確控制制一個(gè)對(duì)對(duì)話步步

13、驟。流流邏輯輯決定在在顯示示屏幕前前(輸輸出前的的PBO處理)和和接收收到用戶戶在屏屏幕上制制作的的條目后后(輸輸入后的的PAI處理)進(jìn)進(jìn)行的的處理。1/15/2020張玉皎Dialog示例1/15/2020張玉皎ABAP TrainingSAP及ABAP/4Overview系統(tǒng)開發(fā)發(fā)語(yǔ)言創(chuàng)建企業(yè)業(yè)報(bào)表應(yīng)用事務(wù)務(wù)開發(fā)商用文檔檔設(shè)計(jì)1/15/2020張玉皎主要工具具SMARTFORMSSCRIPT1/15/2020張玉皎SMARTFORM1/15/2020張玉皎謝謝大家家Q/A1/15/2020張玉皎ABAP基礎(chǔ)ABAP語(yǔ)言概述述數(shù)據(jù)定義義基本數(shù)據(jù)據(jù)操作結(jié)構(gòu)控制制處理字符符數(shù)據(jù)使用內(nèi)表表動(dòng)態(tài)數(shù)據(jù)

14、據(jù)對(duì)象模塊化技技術(shù)錯(cuò)誤處理理程序調(diào)試試1/15/2020張玉皎ABAP語(yǔ)言概述述程序結(jié)構(gòu)構(gòu)程序類型型程序元素素語(yǔ)句格式式程序運(yùn)行行內(nèi)存管理理1/15/2020張玉皎ABAP程序結(jié)構(gòu)構(gòu)ABAP是一種事事件驅(qū)動(dòng)動(dòng)語(yǔ)言,包括:數(shù)據(jù)定義義:整個(gè)程序序中可見見的全局局?jǐn)?shù)據(jù)類類型和數(shù)數(shù)據(jù)對(duì)象象處理塊(Processingblocks):ABAP程序的主主要結(jié)構(gòu)構(gòu)單元,除數(shù)據(jù)據(jù)定義和和聲明語(yǔ)語(yǔ)句外的的所有ABAP語(yǔ)句都必必須隸屬屬于某一一個(gè)處理理塊ABAP程序基本本結(jié)構(gòu)如如下圖所所示:程序內(nèi)部全局?jǐn)?shù)據(jù)定義對(duì)話模塊事件塊子程序等ABAP程序1/15/2020張玉皎處理塊類類型事件塊(Eventblocks):

15、事件關(guān)鍵鍵字開頭頭,至下下一事件件關(guān)鍵字字出現(xiàn)(或程序結(jié)結(jié)束),無事件件結(jié)束關(guān)關(guān)鍵字報(bào)表事件件:Initialization,Start-of-selection列表事件件:At-line-selection屏幕事件件(對(duì)話事件件):Process beforeoutput, processafterinput對(duì)話模塊塊(Dialog Modules):有開始和和結(jié)束關(guān)關(guān)鍵字,用于事事務(wù)程序序設(shè)計(jì),從屬于于對(duì)話事事件,在在對(duì)話事事件塊中中調(diào)用過程(Procedure):有開始始和結(jié)束束關(guān)鍵字字,獨(dú)立立的程序序單元,包括功功能模塊塊和子程程序、ABAP對(duì)象的類類方法1/15/2020張玉皎Str

16、uctures andProcedures1/15/2020張玉皎ABAP處理塊調(diào)調(diào)用范例例REPORTz_processing_blocks.DATA:text1(20)TYPEc VALUE BasicList:,text2(20)TYPEc VALUE SecondaryList:.* Processingblock1:Eventblock-Start-of-selectionSTART-OF-SELECTION.DO5 TIMES.PERFORM frm_output_lineUSINGsy-index.ENDDO.* Processingblock2:Eventblock-atlin

17、e-selectionATLINE-SELECTION.WRITE:/ text2,sy-lsind.* Processingblock3:Procedure-subroutinefrm_output-lineFORM frm_output_lineUSINGp_index.WRITE:/ text1,sy-lsind,Value:,p_index.ENDFORM.1/15/2020張玉皎ABAP處理塊調(diào)調(diào)用范例例運(yùn)行結(jié)果果1/15/2020張玉皎ABAP語(yǔ)言概述述程序結(jié)構(gòu)構(gòu)程序類型型程序元素素語(yǔ)句格式式程序運(yùn)行行內(nèi)存管理理1/15/2020張玉皎程序類型型的設(shè)定定程序類型型包括應(yīng)用用程序類類

18、型和其其它程序序類型,在創(chuàng)建建程序時(shí)時(shí)在程序序?qū)傩灾兄性O(shè)定,如下圖圖所示:1/15/2020張玉皎應(yīng)用程序序類型可執(zhí)行程程序(ExecutableProgram):創(chuàng)建報(bào)表表,由Report關(guān)鍵字引引導(dǎo),可可包括屏屏幕,可可包含除除功能模模塊外的的所有處處理塊,可直接接在ABAP編輯器中中運(yùn)行,類型代代碼為1。對(duì)應(yīng)為為報(bào)表程程序模塊池(Module Pool):由Program關(guān)鍵字引引導(dǎo),包包括自定定義的屏屏幕和對(duì)對(duì)話模塊塊,必須須通過事事務(wù)碼運(yùn)運(yùn)行,類類型代碼碼M。對(duì)應(yīng)為為事務(wù)程程序(也叫對(duì)話話程序、動(dòng)態(tài)程程序)1/15/2020張玉皎其它程序序類型不可直接接運(yùn)行,可為ABAP程序提供供模

19、塊化化單元,包括:功能組(FunctionGroup):由Function-pool語(yǔ)句引導(dǎo)導(dǎo),包含含一個(gè)或或多個(gè)功功能模塊塊,類型型代碼為為F類庫(kù)(ClassPool):由Class-pool語(yǔ)句引導(dǎo)導(dǎo),類型型代碼K接口庫(kù)(Interface Pool):由Interface-pool語(yǔ)句引導(dǎo)導(dǎo),類型型代碼J子程序池池(Subroutinepools):由Program語(yǔ)句引導(dǎo)導(dǎo),類型型代碼S,包含子子程序代代碼或類類方法類型組(Typegroups):由Type-pool語(yǔ)句引導(dǎo)導(dǎo),在數(shù)數(shù)據(jù)字典典中定義義,無類類型代碼碼包含程序序(IncludeProgram):不需要要語(yǔ)句引引導(dǎo),類類型

20、代碼碼I,只是代代碼復(fù)用用,可直直接插入入其它程程序中,成為該該程序一一部分1/15/2020張玉皎ABAP語(yǔ)言概述述程序結(jié)構(gòu)構(gòu)程序類型型程序元素素語(yǔ)句格式式程序運(yùn)行行內(nèi)存管理理1/15/2020張玉皎程序元素素類型ABAP元素:在在ABAP編輯器中中維護(hù)的的元素屏幕元素素:通過過屏幕繪繪制器維維護(hù)的元元素GUI元素:通通過菜單單繪制器器維護(hù)的的元素1/15/2020張玉皎程序元素素源代碼(source code)變式(Variants):與選擇擇屏幕相相關(guān),用用于存放放輸入的的數(shù)據(jù)選選擇值,以便反反復(fù)調(diào)用用該程序序時(shí)重復(fù)復(fù)輸入數(shù)數(shù)據(jù)文本元素素(Textelements):存儲(chǔ)于于文本池池中的

21、文文本,包包括文本本符號(hào)、選擇文文本、列列表標(biāo)題題等文檔(Documentation):寫給用用戶的說說明,用用于解釋釋程序的的功能、使用方方法等文本元素素和文檔檔均具有語(yǔ)語(yǔ)言相關(guān)關(guān)性,可可以由系系統(tǒng)翻譯譯工具進(jìn)進(jìn)行翻譯譯1/15/2020張玉皎文本元素素維護(hù)界界面1/15/2020張玉皎屏幕元素素SAP標(biāo)準(zhǔn)屏幕幕(Screen):多用于于SAP事務(wù)程序序設(shè)計(jì),包括屏屏幕布局局(Layout)和流邏輯輯(FlowLogic)選擇屏幕幕(Selection Screen):多用于于報(bào)表程程序中接接受用戶戶輸入報(bào)報(bào)表的選選擇標(biāo)準(zhǔn)準(zhǔn),可通通過ABAP語(yǔ)句控制制其輸出出格式傳統(tǒng)列表表屏幕(Lists)

22、:只包含含列表輸輸出區(qū)域域,伸出出內(nèi)容通通過write和uline等ABAP語(yǔ)句生成成1/15/2020張玉皎GUI元素為屏幕的的一個(gè)組組成部分分,但設(shè)設(shè)計(jì)時(shí)獨(dú)獨(dú)立于屏屏幕存在在,各種種屏幕都都可以獨(dú)獨(dú)立分配配GUI包括屏幕幕上方的的菜單、標(biāo)準(zhǔn)工工具欄、應(yīng)用工工具欄以以及功能能鍵和功功能代碼碼等GUI元素在程程序調(diào)用用時(shí)分為為狀態(tài)(GUI status)和標(biāo)題(GUI Title)兩部分1/15/2020張玉皎ABAP語(yǔ)言概述述程序結(jié)構(gòu)構(gòu)程序類型型程序元素素語(yǔ)句格式式程序運(yùn)行行內(nèi)存管理理1/15/2020張玉皎ABAP語(yǔ)句結(jié)構(gòu)構(gòu)以一個(gè)ABAP語(yǔ)句關(guān)鍵鍵字引導(dǎo)導(dǎo),句號(hào)號(hào)結(jié)束ABAP語(yǔ)句中還還可以

23、含含附加項(xiàng)項(xiàng)和操作作元素各關(guān)鍵字字、選項(xiàng)項(xiàng)、操作作數(shù)之間間應(yīng)至少少保留一一空格范例:Reportz_simple_program.DataText(20)VALUESimple program.Start-of-selection.WRITEtext.1/15/2020張玉皎ABAP語(yǔ)句類型型(1)聲明語(yǔ)句句:用于數(shù)據(jù)據(jù)元素的的定義和和聲明(如變量)DATA,PARAMETER,TABLES,TYPES模塊化語(yǔ)語(yǔ)句:用于定義義運(yùn)行時(shí)時(shí)的處理理代碼塊塊,分為為事件關(guān)關(guān)鍵字語(yǔ)語(yǔ)句和過過程定義義關(guān)鍵字字語(yǔ)句事件關(guān)鍵鍵字包括括:AT-SELECTION-SCREEN,START-OF-SELECTIO

24、N,ATUSER-COMMAND過程定義義關(guān)鍵字字包括:FORM/ENDFORM,F(xiàn)UNCTION/ENDFUNCTION,MODULE/ENDMODULE控制語(yǔ)句句:以條件控控制程序序處理塊塊內(nèi)部的的程序流流程IF/ENDIF,WHILE/ENDWHILE,CASE/ENDCASE1/15/2020張玉皎ABAP語(yǔ)句類型型(2)調(diào)用語(yǔ)句句:用于調(diào)用用已定義義好的處處理塊PERFORM,CALL,SUBMIT,LEAVETO操作語(yǔ)句句:用于程序序內(nèi)部數(shù)數(shù)據(jù)操作作或輸出出WRITE,MOVE,ADD以及運(yùn)算算符等數(shù)據(jù)庫(kù)語(yǔ)語(yǔ)句:用于數(shù)據(jù)據(jù)庫(kù)操作作,含Open SQL和NativeSQL兩種1/15

25、/2020張玉皎語(yǔ)句鏈關(guān)鍵字“:”和“,”可以把連連續(xù)使用用的相同同關(guān)鍵字字引導(dǎo)的的語(yǔ)句連連接在一一起,以以簡(jiǎn)化代代碼,如如:WRITE:text1,text2.等價(jià)于WRITEtext1.WRITEtext2.1/15/2020張玉皎注釋“*”,在行的的開頭使使用,可可注釋該該行“”,單個(gè)雙雙引號(hào),可注釋釋該行中中其后的的文字,如下所所示*This whole lineiscommentsWRITEtext.“Contentsbehindsthis is comments1/15/2020張玉皎ABAP語(yǔ)言概述述程序結(jié)構(gòu)構(gòu)程序類型型程序元素素語(yǔ)句格式式程序運(yùn)行行內(nèi)存管理理1/15/2020張

26、玉皎程序調(diào)用用直接運(yùn)行行:在事務(wù)SE38或SA38中直接運(yùn)運(yùn)行通過系統(tǒng)統(tǒng)目錄或或者在命命令域中中輸入事事務(wù)代碼碼運(yùn)行內(nèi)部調(diào)用用:事務(wù)代碼碼調(diào)用:LEAVETOTRANSACTION,CALL TRANSACTION(調(diào)用返回回)SUBMIT,SUBMITAND RETURN(調(diào)用返回回)1/15/2020張玉皎程序結(jié)束束自動(dòng)結(jié)束束:程序序完全運(yùn)運(yùn)行,自自動(dòng)結(jié)束束強(qiáng)制結(jié)束束:通過過LEAVEPROGRAM.語(yǔ)句可以以在任意意點(diǎn)結(jié)束束程序1/15/2020張玉皎ABAP語(yǔ)言概述述程序結(jié)構(gòu)構(gòu)程序類型型程序元素素語(yǔ)句格式式程序運(yùn)行行內(nèi)存管理理1/15/2020張玉皎內(nèi)存管理理(1)運(yùn)行時(shí)內(nèi)內(nèi)存管理理與

27、用戶戶對(duì)話相相關(guān)(同一個(gè)用用戶和系系統(tǒng)進(jìn)行行最多六六個(gè)SAPGUI對(duì)話),包括SAP內(nèi)存和ABAP內(nèi)存兩部部分主對(duì)話:又稱外部部對(duì)話,用戶登登錄SAP之后,即即開始和和應(yīng)用服服務(wù)器之之間的主主對(duì)話,各對(duì)話話間無聯(lián)聯(lián)系內(nèi)部對(duì)話話:在主對(duì)話話中運(yùn)行行可執(zhí)行行程序或或者模塊塊池程序序,開始始內(nèi)部對(duì)對(duì)話調(diào)用序列列:調(diào)用不返返回,新新程序內(nèi)內(nèi)部對(duì)話話代替原原程序內(nèi)內(nèi)存,并并刪除原原程序內(nèi)內(nèi)存;調(diào)調(diào)用返回回時(shí),生生成程序序調(diào)用序序列,生生成堆棧棧,調(diào)用用結(jié)束時(shí)時(shí),恢復(fù)復(fù)上一級(jí)級(jí)程序內(nèi)內(nèi)存狀態(tài)態(tài)1/15/2020張玉皎內(nèi)存管理理(2)ABAP內(nèi)存:主對(duì)話內(nèi)內(nèi)部有一一個(gè)ABAP內(nèi)存區(qū)域域,在該該對(duì)話內(nèi)內(nèi)部,可

28、可通過EXPORTTO和IMPORTFROMMEMORY在內(nèi)存堆堆棧之間間進(jìn)行數(shù)數(shù)據(jù)傳遞遞,以隊(duì)隊(duì)列的方方式存儲(chǔ)儲(chǔ)SAP內(nèi)存:所有對(duì)話話都可以以訪問的的內(nèi)存區(qū)區(qū)域,可可在SAP各對(duì)話間間共享,通過SETPARAMETER和GETPARAMETER訪問裝載程序序:調(diào)用或執(zhí)執(zhí)行程序序時(shí),程程序?qū)嵗谎b載載到ABAP內(nèi)存,第第一個(gè)被被裝載的的程序?yàn)闉橹鞒绦蛐?;程序序裝載,觸發(fā)LOAD-OF-PROGRAM事件對(duì)象創(chuàng)建建:創(chuàng)建對(duì)象象(CREATE OBJECT),類的實(shí)實(shí)例被裝裝載到內(nèi)內(nèi)部對(duì)話話,該內(nèi)內(nèi)部對(duì)話話中的程程序及對(duì)對(duì)象都可可以使用用該類實(shí)實(shí)例1/15/2020張玉皎ABAP基礎(chǔ)ABAP語(yǔ)言

29、概述述數(shù)據(jù)定義義基本數(shù)據(jù)據(jù)操作結(jié)構(gòu)控制制處理字符符數(shù)據(jù)使用內(nèi)表表動(dòng)態(tài)數(shù)據(jù)據(jù)對(duì)象模塊化技技術(shù)錯(cuò)誤處理理1/15/2020張玉皎數(shù)據(jù)定義義與宣告告語(yǔ)句DATA:用于定定義變量量以及內(nèi)內(nèi)表、工工作區(qū)間間TYPE:定義類類型TABLES:宣告某某一個(gè)系系統(tǒng)中的的表或者者結(jié)構(gòu),以便于于程序中中使用,同時(shí)創(chuàng)創(chuàng)建表的的工作區(qū)區(qū)間CONSTANTS:定義一一個(gè)常量量Parameters、selection-options1/15/2020張玉皎數(shù)據(jù)對(duì)象象生存周期期:程序的運(yùn)運(yùn)行期保存:存儲(chǔ)于數(shù)數(shù)據(jù)庫(kù)或或者輸出出到文件件范例:DATA txt1(15) TYPEcVALUEDataObject.初始值類型為字字

30、符串存儲(chǔ)長(zhǎng)度度15個(gè)字節(jié)1/15/2020張玉皎數(shù)據(jù)類型型體系基本類型型(ElementTypes)分為固定定長(zhǎng)度和和可變長(zhǎng)長(zhǎng)度兩種種固定長(zhǎng)度度(C、N、T、D、I、P、F、X)可變長(zhǎng)度度String、XString復(fù)雜類型型結(jié)構(gòu)類型型:結(jié)構(gòu)構(gòu)體表類型:內(nèi)表引用類型型:基于于基本數(shù)數(shù)據(jù)定義義參考變量量的數(shù)據(jù)據(jù)參考變量量的對(duì)象象1/15/2020張玉皎基本類型型固定長(zhǎng)度度1/15/2020張玉皎基本類型型可變長(zhǎng)度度String:字符串串,如A StringXString:十六進(jìn)進(jìn)制字符符串,如如A3FF1/15/2020張玉皎補(bǔ)充文本文字字最長(zhǎng)長(zhǎng)可達(dá)255個(gè)字符。如果果某文本本文字字包含引引號(hào),

31、必須重重復(fù)引引號(hào),以以使系系統(tǒng)能夠夠?qū)?nèi)內(nèi)容識(shí)別別為文文本文字字而不不是文字字的結(jié)結(jié)尾。新壓縮類類型P在系統(tǒng)中中存放時(shí)時(shí)所占內(nèi)內(nèi)存空間間只有同同長(zhǎng)度的的浮點(diǎn)數(shù)數(shù)、整數(shù)數(shù)的一半半數(shù)字字符符N,實(shí)際上上是一個(gè)個(gè)字符串串,但是是其中的的字符只只能是數(shù)數(shù)字。如如果給該該類型變變量賦值值不足與與定義的的長(zhǎng)度,系統(tǒng)會(huì)會(huì)自動(dòng)在在左邊補(bǔ)補(bǔ)零1/15/2020張玉皎確定數(shù)據(jù)據(jù)對(duì)象屬屬性DESCRIBE語(yǔ)法格式式:DESCRIBEFIELDf LENGTH TYPE tCOMPONENTSn OUTPUT-LENGTH o DECMIALSdEDITMASK m HELP-ID h變量:LENGTH,對(duì)象長(zhǎng)長(zhǎng)度T

32、YPE,對(duì)象類類型OUTPUT-LENGT,確定輸輸出長(zhǎng)度度DECIMALS,確定P類型數(shù)據(jù)據(jù)對(duì)象的的小數(shù)位位長(zhǎng)度EDIT MASK確定在數(shù)數(shù)據(jù)字典典中定義義轉(zhuǎn)換例例程HELP-ID確定數(shù)據(jù)據(jù)字典中中定義的的F1幫助信息息1/15/2020張玉皎其他定義義方式Data AlikeB.Emp:Data:matnr likemara-matnr,datelikesy-datum.1/15/2020張玉皎ABAP基礎(chǔ)ABAP語(yǔ)言概述述數(shù)據(jù)定義義基本數(shù)據(jù)據(jù)操作結(jié)構(gòu)控制制處理字符符數(shù)據(jù)使用內(nèi)表表動(dòng)態(tài)數(shù)據(jù)據(jù)對(duì)象模塊化技技術(shù)錯(cuò)誤處理理程序調(diào)試試1/15/2020張玉皎基本的數(shù)數(shù)據(jù)操作作數(shù)據(jù)賦值值MOVE:把

33、源字字段的值值賦給目目標(biāo)變量量,如MOVE sourceTOdestination.等價(jià)于Destination= source.注意事項(xiàng)項(xiàng):源對(duì)對(duì)象和目目標(biāo)完全兼容容(類型,長(zhǎng)度等),則賦值值過程中中結(jié)果不不變不完全兼兼容但可可以進(jìn)行行類型轉(zhuǎn)轉(zhuǎn)換,按按固定的的轉(zhuǎn)換規(guī)規(guī)則轉(zhuǎn)換換不兼容且且不能轉(zhuǎn)轉(zhuǎn)換,則則不能賦賦值,提提示語(yǔ)法法錯(cuò)誤或或者編譯譯過程中中有錯(cuò)誤誤,否則則會(huì)出現(xiàn)現(xiàn)運(yùn)行時(shí)時(shí)錯(cuò)誤1/15/2020張玉皎基本的數(shù)數(shù)據(jù)操作作結(jié)構(gòu)體賦賦值兩個(gè)結(jié)構(gòu)構(gòu)體組件件結(jié)構(gòu)完完全一致致,可以以直接賦賦值,如如stur1= stur2兩結(jié)構(gòu)體體組件結(jié)結(jié)構(gòu)不完完全一致致,但有有部分組組件有對(duì)對(duì)應(yīng)關(guān)系系,可逐逐個(gè)

34、組件件賦值或或者使用用move-correspondingstru1tostru2.語(yǔ)句賦值值1/15/2020張玉皎基本的數(shù)數(shù)據(jù)操作作初始值設(shè)設(shè)定將已經(jīng)賦賦值的變變量值清清空,恢恢復(fù)為初初始狀態(tài)態(tài),采用用clear語(yǔ)句,如如:clearg_var1.Clear基本數(shù)據(jù)據(jù)類型:初始值值根據(jù)數(shù)數(shù)據(jù)類型型定Clear結(jié)構(gòu)體類類型:逐逐層、逐逐個(gè)組件件拆分按按上一規(guī)規(guī)則執(zhí)行行Clear內(nèi)表,清清除內(nèi)表表表頭數(shù)數(shù)據(jù)語(yǔ)句句為:clearit_test.;清除內(nèi)內(nèi)表標(biāo)題題數(shù)據(jù)語(yǔ)語(yǔ)句為:clearit_test.或者refresh it_test.引用類型型數(shù)據(jù):恢復(fù)初初始狀態(tài)態(tài),不指指向任何何數(shù)據(jù)對(duì)對(duì)象1

35、/15/2020張玉皎數(shù)值運(yùn)算算算術(shù)預(yù)算算語(yǔ)句1/15/2020張玉皎數(shù)值運(yùn)算算算術(shù)預(yù)算算原則運(yùn)算后賦賦值時(shí)需需要注意意類型轉(zhuǎn)轉(zhuǎn)換多種數(shù)學(xué)學(xué)表達(dá)式式共存時(shí)時(shí)注意優(yōu)優(yōu)先級(jí)除法/整除運(yùn)算算時(shí)要注注意除數(shù)數(shù)不能為為0運(yùn)算符號(hào)號(hào)及括號(hào)號(hào)都是ABAP關(guān)鍵字,前后都都需要有有空格使用P類型進(jìn)行行計(jì)算時(shí)時(shí),程序序?qū)傩訤ixedPointed arithmetic沒有選中中的話,運(yùn)算時(shí)時(shí)會(huì)被當(dāng)當(dāng)作整數(shù)數(shù)類型進(jìn)進(jìn)行處理理兩個(gè)結(jié)構(gòu)構(gòu)體同名名字段也也可以整整體進(jìn)行行算術(shù)運(yùn)運(yùn)算,語(yǔ)語(yǔ)句為ADD-CORRESPONDING,前綴和和運(yùn)算關(guān)關(guān)鍵字一一樣1/15/2020張玉皎數(shù)值運(yùn)算算任意類型型參數(shù)的的數(shù)學(xué)函函數(shù)1/15

36、/2020張玉皎數(shù)值運(yùn)算算浮點(diǎn)數(shù)類類型的數(shù)數(shù)學(xué)函數(shù)數(shù)1/15/2020張玉皎數(shù)值運(yùn)算算時(shí)間日期期運(yùn)算系統(tǒng)將日日期時(shí)間間先轉(zhuǎn)換換為數(shù)值值類型,根據(jù)這這兩種特特殊的類類型進(jìn)行行合理的的增減,如下所所示DATA:seconds TYPEi,hoursTYPE i,time1TYPE tVALUE100000,time2TYPE tVALUE080000.seconds =time1-time2.hours= seconds/3600.WRITE:/ Seconds betweentime1and time2:, seconds,/ Hoursbetweentime1and time2:, hours

37、.1/15/2020張玉皎數(shù)據(jù)輸出出基本輸出出格式數(shù)據(jù)輸出出及格式式化語(yǔ)句句:WRITE,ULINE, FORMAT,SKIP.基本輸出出語(yǔ)法如如下:WRITE/f.ULINE.FORMATcolor.SKIP n.1/15/2020張玉皎基本數(shù)據(jù)據(jù)類型的的默認(rèn)輸輸出模式式1/15/2020張玉皎格式化輸輸出(write語(yǔ)句)語(yǔ)法格式式:write f.具體的格格式化選選項(xiàng)請(qǐng)參參考F1幫助在用戶主主記錄中中,可以以設(shè)置輸輸出時(shí)顯顯示的日日期分隔隔符、小小數(shù)點(diǎn)字字符和千千分符等等選項(xiàng),進(jìn)入方方式為:任意一一SAP屏幕的菜菜單System-UserProfile-Own data1/15/2020

38、張玉皎邏輯表達(dá)達(dá)式基本格式式: f1 f2通用邏輯輯表達(dá)式式列表1/15/2020張玉皎邏輯表達(dá)達(dá)式特殊操作作符ISINITIAL:檢查變變量是否否是初始始值BETWEEN:檢查對(duì)對(duì)象的值值是否屬屬于特定定范圍之之間: f1 betweenf2and f3 IN:用于檢檢查數(shù)據(jù)據(jù)對(duì)象的的內(nèi)容是是否遵從從某個(gè)選選擇表的的邏輯條條件選擇表:一種特特殊的內(nèi)內(nèi)表,每每一行包包含一個(gè)個(gè)特定的的邏輯條條件,DATA seltablike range of f.組合邏輯輯表達(dá)式式:AND, OR,NOT,如下IF( ALTN) and(N GT F).1/15/2020張玉皎邏輯表達(dá)達(dá)式比較兩種種類型數(shù)數(shù)據(jù)

39、兼容類型型:不需要做做轉(zhuǎn)換,按照通通常的比比較方式式進(jìn)行不兼容類類型:可轉(zhuǎn)換的的則先轉(zhuǎn)轉(zhuǎn)換,轉(zhuǎn)轉(zhuǎn)換規(guī)則則:操作數(shù)之之一為F類型,則則其他操操作數(shù)轉(zhuǎn)轉(zhuǎn)為F類型操作數(shù)無無F類型,之之一為P類型,則則其他操操作數(shù)轉(zhuǎn)轉(zhuǎn)為P類型無F,P類型,之之一為T或D類型,其其他操作作數(shù)轉(zhuǎn)為為T或D類型無F,P,T,D類型,之之一為C類型且其其他為X類型,X類型轉(zhuǎn)為為C類型操作數(shù)之之一為C類型,其其他為N類型,則則兩種類類型均轉(zhuǎn)轉(zhuǎn)換為P類型比較結(jié)構(gòu)構(gòu)化數(shù)據(jù)據(jù):可轉(zhuǎn)轉(zhuǎn)換,則則逐個(gè)組組件比較較;若不不可轉(zhuǎn)換換,則先先轉(zhuǎn)為C類型在比比較比較內(nèi)表表:首先先決定于于行數(shù),若行數(shù)數(shù)相同,則逐行行逐個(gè)組組件進(jìn)行行比較;如果使使用

40、等于于之外的的操作副副,則系系統(tǒng)找到到不對(duì)等等的組件件即停止止比較并并返回結(jié)結(jié)果1/15/2020張玉皎ABAP基礎(chǔ)ABAP語(yǔ)言概述述數(shù)據(jù)定義義基本數(shù)據(jù)據(jù)操作結(jié)構(gòu)控制制處理字符符數(shù)據(jù)使用內(nèi)表表動(dòng)態(tài)數(shù)據(jù)據(jù)對(duì)象模塊化技技術(shù)錯(cuò)誤處理理程序調(diào)試試1/15/2020張玉皎結(jié)構(gòu)控制制程序處理理塊內(nèi)部部的代碼碼由下列列三種結(jié)結(jié)構(gòu)組織織順序結(jié)構(gòu)構(gòu):程序序順序執(zhí)執(zhí)行分支結(jié)構(gòu)構(gòu):根據(jù)據(jù)不同的的條件執(zhí)執(zhí)行不同同的語(yǔ)句句塊循環(huán)結(jié)構(gòu)構(gòu):反復(fù)復(fù)執(zhí)行某某個(gè)語(yǔ)句句塊在ABAP中,控制制結(jié)構(gòu)都都是在程程序處理理塊內(nèi)部部的,作作用范圍圍不能超超出一個(gè)個(gè)處理塊塊,所以以稱為處處理塊內(nèi)內(nèi)部塊內(nèi)內(nèi)部控制制1/15/2020張玉皎分支控

41、制制包括兩種種分支控控制條件分支支語(yǔ)句:IF/ENDIFIfconditions.elseifconditions.Endif.CASE/ENDCASECASE f.when f1 orf2orwhen when others.Endcase.1/15/2020張玉皎循環(huán)控制制無條件循循環(huán)無條件循循環(huán),使使用DO語(yǔ)句實(shí)現(xiàn)現(xiàn)DOntimes.ENDDO.N用于控制制循環(huán)次次數(shù),可可以是數(shù)數(shù)字或者者變量如如果N為0或者負(fù)數(shù)數(shù),則不不進(jìn)入該該循環(huán);如果不不限定N的值,則則需要用用EXIT(推出當(dāng)前前循環(huán)),STOP或REJECT等語(yǔ)句強(qiáng)強(qiáng)制結(jié)束束循環(huán),避免死死循環(huán)系統(tǒng)變量量SY-INDEX為已經(jīng)處處

42、理過的的循環(huán)次次數(shù)值,DO循環(huán)可以以嵌套,SY-INDEX為當(dāng)前循循環(huán)的次次數(shù)1/15/2020張玉皎無條件循循環(huán)范例例REPORTz_do_loop.DATA:out_indexTYPEi,in_indexTYPEi.DO2 TIMES.out_index=sy-index.WRITE:/ out_index.SKIP.DO3 TIMES.in_index= sy-index.WRITE:out_index NO-GAP,-NO-GAP,in_indexLEFT-JUSTIFIED.ENDDO.SKIP.ENDDO.1/15/2020張玉皎條件循環(huán)環(huán)使用WHILE語(yǔ)句實(shí)現(xiàn)現(xiàn),進(jìn)入循循環(huán)之前前

43、,先檢檢查語(yǔ)句句中邏輯輯表達(dá)式式的值,如果為為真,執(zhí)執(zhí)行后面面的語(yǔ)句句;當(dāng)邏邏輯值不不再為真真或者執(zhí)執(zhí)行到中中止語(yǔ)句句時(shí),結(jié)結(jié)束循環(huán)環(huán),語(yǔ)句句格式如如下:WHILE.ENDWHILE.SY-INDEX包含已執(zhí)執(zhí)行的循循環(huán)次數(shù)數(shù),可以以嵌套循循環(huán),要要避免死死循環(huán)問問題,一一般需要要在程序序中修改改邏輯表表達(dá)式某某變量值值,確保保一定次次數(shù)后語(yǔ)語(yǔ)句條件件為假,否則語(yǔ)語(yǔ)句塊中中必須含含有循環(huán)環(huán)中止語(yǔ)語(yǔ)句1/15/2020張玉皎條件循環(huán)環(huán)語(yǔ)句范范例REPORTz_while_loop.DATA:g_lenth TYPEi,g_str01(30)TYPE cVALUEBeijing2008.WHILE

44、g_str01 NE space.g_lenth =sy-index.SHIFTg_str01.ENDWHILE.skip 5.WRITE:/ Lengthofg_str01:,g_lenth.注釋:該該程序確確定字符符串的有有效長(zhǎng)度度,每次次執(zhí)行循循環(huán)時(shí),將字符符串左移移一位,直到其其僅包含含空格為為止1/15/2020張玉皎循環(huán)的中中止無條件循循環(huán):設(shè)設(shè)定循環(huán)環(huán)次數(shù)實(shí)實(shí)現(xiàn)中止止條件循環(huán)環(huán):在循循環(huán)過程程中修改改邏輯表表達(dá)式中中變量的的值,使使條件語(yǔ)語(yǔ)句為假假?gòu)?qiáng)制結(jié)束束循環(huán)語(yǔ)語(yǔ)句CONTINUE用于無條件中止當(dāng)前前循環(huán),運(yùn)行該該語(yǔ)句后后跳過當(dāng)當(dāng)前語(yǔ)句句塊所有有生于語(yǔ)語(yǔ)句執(zhí)行行但并非結(jié)結(jié)束循環(huán)

45、環(huán),而是是開始下下一輪循循環(huán)或條條件判斷斷CHECK用于有條件中止當(dāng)前前循環(huán),與CONTINUE語(yǔ)句類似似EXIT,無條件件中止循循環(huán),系系統(tǒng)退出出當(dāng)前循環(huán)環(huán),繼續(xù)執(zhí)執(zhí)行當(dāng)前循環(huán)環(huán)后面的代代碼,嵌嵌套循環(huán)環(huán)時(shí)執(zhí)行行上一級(jí)級(jí)循環(huán)STOP、REJECT,退出循循環(huán)并無無條件結(jié)結(jié)束程序序1/15/2020張玉皎循環(huán)中止止范例REPORTz_terminate_loop.DO4 TIMES.IFsy-index= 2.CONTINUE.ENDIF.WRITEsy-index.ENDDO.SKIP.DO4 TIMES.CHECKsy-indexBETWEEN 2AND 3.WRITEsy-index.E

46、NDDO.SKIP.DO4 TIMES.IFsy-index= 3.EXIT.ENDIF.WRITEsy-index.ENDDO.1/15/2020張玉皎ABAP基礎(chǔ)ABAP語(yǔ)言概述述數(shù)據(jù)定義義基本數(shù)據(jù)據(jù)操作結(jié)構(gòu)控制制處理字符符數(shù)據(jù)使用內(nèi)表表動(dòng)態(tài)數(shù)據(jù)據(jù)對(duì)象模塊化技技術(shù)錯(cuò)誤處理理程序調(diào)試試1/15/2020張玉皎處理字符符數(shù)據(jù)字符數(shù)據(jù)據(jù)操作連接字符符串拆分字符符串查找字符符串替換字符符串內(nèi)容容確定字符符串長(zhǎng)度度其他操作作語(yǔ)句字符串比比較定位操作作字符串串1/15/2020張玉皎字符數(shù)據(jù)據(jù)操作連接字符符串語(yǔ)句關(guān)鍵鍵字:CONCATENATEconcatenates1 sn intos_dest s

47、eparatedbysep連接字符符串s1sn并將結(jié)果果賦給字字符串s_destseparatedby用于指定定一個(gè)字字符(串)作為分隔隔符如果連接接字符串串后的總總長(zhǎng)度超超過目標(biāo)標(biāo)字符串串長(zhǎng)度,則把結(jié)結(jié)果截?cái)鄶嗪筚x值值;一旦旦出現(xiàn)截截?cái)嗲闆r況,sy-subrc為4,否則為為0為了避免免截?cái)?,可以把把目?biāo)字字符串定定義為string類型1/15/2020張玉皎連接字符符串范例例REPORTz_string_concatenate.data:g_s1(9)type cvalueFirstname,g_s2(10)type cvalueSecondname,g_s3(20)type c,g_sp(

48、1)type cvalue.concatenateg_s1 g_s2intog_s3.write/ g_s3.concatenateg_s1 g_s2intog_s3 separatedbyg_sp.write/ g_s3.1/15/2020張玉皎字符數(shù)據(jù)據(jù)操作拆分使用SPLIT語(yǔ)句可將將字符串串拆分未未多個(gè)小小串splitsourceatsep intos1sn.在源字符符串中搜搜索分隔隔符(sep),并根據(jù)據(jù)該分隔隔符把源源串拆分分為多個(gè)個(gè)小串并并放到目目標(biāo)字串串s1sn中子串中不不包括分分隔符與連接語(yǔ)語(yǔ)句類似似,如果果目標(biāo)字字串長(zhǎng)度度不夠會(huì)會(huì)進(jìn)行截截?cái)啵仪襰y-subrc為4,否則為為

49、0如果源串串拆分的的字串?dāng)?shù)數(shù)量多于于目標(biāo)字字串?dāng)?shù)量量,則源源串最后后剩余部部分包括括其后的的分隔符符都將寫寫入最后后一個(gè)字字串??煽刹捎脙?nèi)內(nèi)表來避避免這種種情況1/15/2020張玉皎字符串拆拆分范例例REPORTz_string_split.DATA:text TYPEstring,itab TYPETABLEOFstring.text =ABAPisaprogramminglanguage.SPLITtext AT space INTOTABLEitab.LOOP AT itabINTOtext.WRITE/ text.ENDLOOP.1/15/2020張玉皎字符數(shù)據(jù)據(jù)操作查找字串串使用s

50、earch語(yǔ)句:searchcforstr.在變量C中查詢字符串str,如果找找到,sy-subrc返回0,sy-fdpos返回變量量C中該字符符串的位位置(從左算起起的字符符偏移量量),否則將將sy-subrc返回4字符串str,可以使使用通配配符*,也也可以設(shè)設(shè)定保存存或者忽忽略str末尾的空空格,如如下所示示:str,搜索str并忽略尾尾部空格格.str.,搜索str不忽略尾尾部空格格*str,搜索以以str結(jié)尾的單單詞str*,搜索以以str開頭的單單詞注意:?jiǎn)螁卧~是指指以符號(hào)號(hào)(空格,標(biāo)點(diǎn)符號(hào)號(hào),其他字符符)分隔的字字串1/15/2020張玉皎查找字符符串范例例REPORTz_str

51、ing_search.DATA g_str(30)TYPE cVALUEThisisatest sentence.WRITE:/ Searched,SY-SUBRC,SY-FDPOS.SEARCHg_strFOR X.WRITE:/ X,sy-subrcUNDERSY-SUBRC,sy-fdposUNDERSY-FDPOS.SEARCHg_strFOR e .WRITE:/ e,sy-subrcUNDERSY-SUBRC,sy-fdposUNDERSY-FDPOS.SEARCHg_strFOR .e.WRITE:/ .e.,sy-subrc UNDER SY-SUBRC,sy-fdposUND

52、ERSY-FDPOS.SEARCHg_strFOR *e.WRITE:/ *e,sy-subrcUNDERSY-SUBRC,sy-fdposUNDERSY-FDPOS.SEARCHg_strFOR s*.WRITE:/ s*,sy-subrcUNDERSY-SUBRC,sy-fdposUNDERSY-FDPOS.1/15/2020張玉皎字符數(shù)據(jù)據(jù)操作替換字符符串內(nèi)容容用其他字字符串替替換字段段的某些些部分,使用replace str1withstr2 intos_dest lengthl先對(duì)字段段s_dest進(jìn)行搜索索,發(fā)現(xiàn)現(xiàn)字串str1即用str2替換第一一次出現(xiàn)現(xiàn)的部分分如果指定定leng

53、th,則只搜搜索前L個(gè)字節(jié)如果SY-SUBRC返回為0,則找到到并替換換成功,否則為為進(jìn)行任任何替換換1/15/2020張玉皎替換字符符串范例例REPORTz_string_replace.DATA nameTYPE =Michael-Cheong.WRITE:/ notreplaced:,name.WHILEsy-subrc= 0.REPLACE -WITH INTO name.ENDWHILE.WRITE:/ replaced:,name.1/15/2020張玉皎字符數(shù)據(jù)據(jù)操作確定字串串長(zhǎng)度字符串長(zhǎng)長(zhǎng)度:從從首字符符開始到到最后一一個(gè)非空空字符的的長(zhǎng)度,即不包包括結(jié)尾

54、尾空格,使用:n =STRLEN(str).將操作數(shù)數(shù)str作為字符符數(shù)據(jù)類類型處理理,不考考慮其實(shí)實(shí)際類型型,也不不進(jìn)行轉(zhuǎn)轉(zhuǎn)換,范范例如下下:REPORTz_strlen.DATA:text(24)type cVALUEABAPLanguage,lenTYPEi.Len=strlen( text).Write:/ Lengthof,text,is,len.1/15/2020張玉皎字符數(shù)據(jù)據(jù)操作其他操作作語(yǔ)句SHIFT,將字符符串整體體或者字字串進(jìn)行行位移CONDENSE,刪除字字符串中中多于的的空格TRANSLATE,字符轉(zhuǎn)轉(zhuǎn)換CONVERT TEXT創(chuàng)建一個(gè)個(gè)可以排排序的格格式OVERLA

55、Y用一個(gè)字字符串覆覆蓋另一一個(gè)字符符串1/15/2020張玉皎字符數(shù)據(jù)據(jù)比較1/15/2020張玉皎定位操作作字串通過制定定長(zhǎng)度及及偏移量量來操作作指定的的部分字字串,語(yǔ)語(yǔ)句為:s+o(L)對(duì)變量S從第o+1位開始且且長(zhǎng)度為為L(zhǎng)的部分執(zhí)執(zhí)行該語(yǔ)語(yǔ)句的操操作,如如果未指指定長(zhǎng)度度,則對(duì)對(duì)第o+1位至程序序末尾之之間的所所有位進(jìn)進(jìn)行處理理,偏移量和和長(zhǎng)度可可以為變變量動(dòng)態(tài)態(tài)指定,但是只只能是如如下情況況:MOVE賦值;WRITETO賦值;ASSIGN分配給字字段符號(hào)號(hào);PERFORM將數(shù)據(jù)傳傳給子程程序。范范例如下下:REPORTz_string_comparison.DATA:f1(8)VALU

56、EABCDEFGH,f2(20)VALUE12345678901234567890.f2+6(5) =f1+3(5).1/15/2020張玉皎系統(tǒng)變量量所有的系系統(tǒng)字段段存放于于結(jié)構(gòu)SYST中,可以以通過SE11來瀏覽SY-SUBRC,該變量量是多數(shù)數(shù)命令行行執(zhí)行成成功與否否的標(biāo)志志,比如如數(shù)據(jù)庫(kù)庫(kù)操作、功能函函數(shù)調(diào)用用等等,0表示操作作成功,其他為為操作失失敗。是是ABAP編程中最最常用、最有用用的系統(tǒng)統(tǒng)變量1/15/2020張玉皎建表Data elementDomin1/15/2020張玉皎謝謝大家家Q/A1/15/2020張玉皎ABAP基礎(chǔ)ABAP語(yǔ)言概述述數(shù)據(jù)定義義基本數(shù)據(jù)據(jù)操作結(jié)構(gòu)控

57、制制處理字符符數(shù)據(jù)使用內(nèi)表表動(dòng)態(tài)數(shù)據(jù)據(jù)對(duì)象模塊化技技術(shù)錯(cuò)誤處理理程序調(diào)試試1/15/2020張玉皎結(jié)構(gòu)、工工作區(qū)、內(nèi)表結(jié)構(gòu)(Structure)工作區(qū)(Work area)內(nèi)表(Innertable)1/15/2020張玉皎結(jié)構(gòu)屬于復(fù)雜雜類型,內(nèi)容包包含定義義的數(shù)據(jù)據(jù)字段TYPES:BEGINOFline,idTYPE i,name(30),agetypei,ENDOFline.1/15/2020張玉皎內(nèi)表工工作區(qū)內(nèi)表:用用于在程程序運(yùn)行行期間存存儲(chǔ)多行行結(jié)構(gòu)相相同的數(shù)數(shù)據(jù)工作區(qū):內(nèi)表是按按行進(jìn)進(jìn)行訪問問的。必須使使用某某個(gè)工作作區(qū)域域作為與與表格格互相傳傳輸數(shù)數(shù)據(jù)的接接口。工作區(qū)與與內(nèi)表的的

58、定義data:wa_linetypeline,it_line typetableofline.表頭行(withheaderline):隱式式工作區(qū)區(qū)讀取數(shù)據(jù)據(jù)行更新數(shù)據(jù)據(jù)行工作區(qū)內(nèi)表1/15/2020張玉皎內(nèi)表的分分類內(nèi)表種類類:標(biāo)準(zhǔn)準(zhǔn)表排序表哈希表1/15/2020張玉皎定義內(nèi)表表語(yǔ)法格式式:TYPES|DATA itabTYPE|LIKEtablekindOFLINETYPE|LINEOBJECTWITHkey INITIAL SIZEnwithheaderline.tablekind:內(nèi)表類型型linetype| lineobject:行結(jié)構(gòu)構(gòu)key:表關(guān)鍵字字Initial sizen

59、:內(nèi)表分分配的初初始內(nèi)存存大小with headerline:定義表頭頭行1/15/2020張玉皎內(nèi)表的重重要概念念邏輯索引引對(duì)于標(biāo)準(zhǔn)準(zhǔn)表和排排序表,每一條條數(shù)據(jù)記記錄都有有一個(gè)邏邏輯索引引在對(duì)標(biāo)準(zhǔn)準(zhǔn)表和排排序表進(jìn)進(jìn)行插入入、刪除除、附加加操作的的時(shí)候,系統(tǒng)自自動(dòng)的對(duì)對(duì)每一條條數(shù)據(jù)記記錄賦一一個(gè)邏輯輯索引,記錄該該數(shù)據(jù)記記錄在該該內(nèi)表中中的邏輯輯位置(第X行)對(duì)于標(biāo)準(zhǔn)準(zhǔn)表和排排序表,可以通通過邏輯輯索引操操作數(shù)據(jù)據(jù)行,關(guān)關(guān)鍵字為為INDEXn,表示讀讀取第多多少行數(shù)數(shù)據(jù)記錄錄1/15/2020張玉皎內(nèi)表的重重要系統(tǒng)統(tǒng)變量SY-TABIX,當(dāng)前內(nèi)內(nèi)表的當(dāng)當(dāng)前數(shù)據(jù)據(jù)記錄的的邏輯索索引值內(nèi)表嵌套套循

60、環(huán)時(shí)時(shí),如果果需要使使用到sy-tabix變量,請(qǐng)請(qǐng)盡量把把sy-tabix賦給一個(gè)個(gè)變量再再進(jìn)行處處理1/15/2020張玉皎內(nèi)表類型型標(biāo)準(zhǔn)表標(biāo)準(zhǔn)表(standardtable或者省略略關(guān)鍵字字):系統(tǒng)為每每一行數(shù)數(shù)據(jù)生成成一個(gè)邏邏輯索引引;填充標(biāo)準(zhǔn)準(zhǔn)表時(shí),可附加加在現(xiàn)有有行之后后或者是是插入到到指定位位置;程序?qū)?nèi)內(nèi)表的尋尋址操作作可以通通過關(guān)鍵鍵字或者者索引進(jìn)進(jìn)行;對(duì)內(nèi)表進(jìn)進(jìn)行插入入、刪除除等操作作時(shí),其其數(shù)據(jù)行行在內(nèi)存存中的位位置不變變,系統(tǒng)統(tǒng)近重新新排列各各數(shù)據(jù)行行的索引引值不能定義義唯一關(guān)關(guān)鍵字,相同關(guān)關(guān)鍵字的的數(shù)據(jù)可可重復(fù)出出現(xiàn)標(biāo)準(zhǔn)表的的另一種種定義方方式:data:begino

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論