ABAP開發(fā)培訓入門_第1頁
ABAP開發(fā)培訓入門_第2頁
ABAP開發(fā)培訓入門_第3頁
ABAP開發(fā)培訓入門_第4頁
ABAP開發(fā)培訓入門_第5頁
已閱讀5頁,還剩34頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

ABAP開發(fā)培訓什么是ABAP?AdvancedBusinessApplicationProgramming高級商業(yè)應用程序設計。是SAP專有的開發(fā)語言,SAP的應用程序就是用ABAP語言開發(fā)的。1精選pptABAP開發(fā)培訓ABAP的開發(fā)環(huán)境展示2精選pptABAP開發(fā)培訓SAP的三層架構表示層應用層數(shù)據(jù)庫3精選pptABAP開發(fā)培訓ABAP程序的種類報表最常見的ABAP程序,展示數(shù)據(jù),比方財務的三大報表。接口常見的接口如RFC/BAPI,iDoc,Webservice。這些都是以FunctionModule為根底的。增強對標準程序的增強(改動)。Dialog帶交互的程序,SAP標準的事物碼很多就是Dialog。4精選pptABAP開發(fā)培訓數(shù)據(jù)類型默認大小有效大小初始值說明

C11-65535SPACE文本,字符(字母數(shù)字字符)最常用的格式D88'00000000'日期

(格式:YYYYMMDD)F880浮點數(shù)。用于計算,精確范圍近似15位十進制數(shù),精確計算用PI440整型(整數(shù))。用于計算計數(shù)項目號

N11-65535'00...0'數(shù)字文本,不用于計算。會計科目,郵編等P81-160組合數(shù)

,指定長度和小數(shù)點位數(shù)。數(shù)量金額距離等,可用于計算T66'000000'時間

(格式:HHMMSS)

X11-65535X'00'十六進制STRING動態(tài)長度的字符串,日志文本,描述性文字等XSTRINGASCIIABAP的數(shù)據(jù)類型-根本數(shù)據(jù)類型5精選pptABAP開發(fā)培訓用戶定義的根本數(shù)據(jù)類型完全是以預定義的根本數(shù)據(jù)類型為根底的。使用TYPES語句定義自己的根本數(shù)據(jù)類型。TYPES:NUMBERTYPEI,LENGTHTYPEPDECIMALS2,CODE(3)TYPEC.DATA:NO_FLIGHTSTYPENUMBER,NO_PASSENGERSTYPENUMBER,DISTANCETYPELENGTH,HEIGHTTYPELENGTH,CITY_CODETYPECODE,COUNTRY_CODETYPECODE.數(shù)據(jù)類型可以在程序內部定義,但只能程序內部用;也可以在程序外部定義,這樣全局都可以使用(事物碼SE11)。ABAP的數(shù)據(jù)類型-用戶定義的根本數(shù)據(jù)類型6精選pptABAP開發(fā)培訓兩種結構化數(shù)據(jù)類型:結構(Structure)和內表(InternalTable)。Structure:本質上講是一個由多個字段組成的字段串,在程序中只能存儲一條數(shù)據(jù),如果不好抽象化,可以理解為Excel的一行。InternalTable:多行多列,可以理解為一個Structure縱向拉長。內表分3種,標準表,排序表,哈希表。結構和內表可以在程序內部定義,但只能程序內部用;也可以在程序外部定義,這樣全局都可以使用(事物碼SE11)。ABAP的數(shù)據(jù)類型-結構化數(shù)據(jù)類型7精選pptABAP開發(fā)培訓TYPES語句定義類型,DATA語句聲明變量,如剛剛用到的例子:TYPES:NUMBERTYPEI,LENGTHTYPEPDECIMALS2,CODE(3)TYPEC.DATA:NO_FLIGHTSTYPENUMBER,DISTANCETYPELENGTH,CITY_CODETYPECODE,CONSTANTS語句定義常量:CONSTANTSPITYPEPDECIMALS5VALUE‘3.14159’.Hint:變量的命名參照開發(fā)標準。ABAP程序的數(shù)據(jù)定義8精選pptABAP開發(fā)培訓實際應用中,更多是直接用LIKE語句定義變量。DATA:ZMATNRLIKEMARA-MATNR,“物料號ZMTARTLIKEMARA-MTART.“物料類型或者DATAZMATNRLIKEMARA-MATNR.DATAZMTARTLIKEMARA-MTART.兩者的意義完全相同。DATA[變量名]LIKE[表-字段名]〔[結構-字段名]〕DATA[變量名]LIKE[系統(tǒng)標準變量]ABAP程序的數(shù)據(jù)定義9精選pptABAP開發(fā)培訓結構變量的定義:結構DATA:BEGINOFGS_MARC,MATNRLIKEMARC-MATNR,WERKSLIKEMARC-WERKS,PSTATLIKEMARC-PSTAT,BWTTYLIKEMARC-BWTTY,EKGRPLIKEMARC-EKGRP,ENDOFGS_MARC.這是一個5個字段的結構。G代表global,S代表Structure.結構也可以用SE11事物碼在系統(tǒng)里定義,所有程序都可以使用,但命名必須以Z開頭。Hint:結構變量的命名有規(guī)那么,參見開發(fā)標準ABAP程序的數(shù)據(jù)定義10精選pptABAP開發(fā)培訓結構變量的定義:內表DATA:BEGINOFGS_MARC,MATNRLIKEMARC-MATNR,WERKSLIKEMARC-WERKS,PSTATLIKEMARC-PSTAT,BWTTYLIKEMARC-BWTTY,EKGRPLIKEMARC-EKGRP,ENDOFGS_MARC.DATA:GT_MARCLIKESTANDARDTABLEOFGS_MARC.GT_MARC就是一個標準內表。Hint:結構變量的命名有規(guī)那么,參見開發(fā)標準ABAP程序的數(shù)據(jù)定義11精選pptABAP開發(fā)培訓結構變量的定義:結構和內表的多種定義方式鑒于SAP有大量標準的數(shù)據(jù)類型供參考,結構變量的命名有多種方式,例如:(MARC是系統(tǒng)標準表,MAAPV是標準結構,自建結構和自建表同例)結構:DATAGS_MARCLIKEMARC.內表:DATAGT_MARCLIKETABLEOFMARC.結構:DATAGS_MAAPVLIKEMAAPV.內表:DATAGT_MAAPVLIKETABLEOFMAAPV.結構:DATAGS_MARC2LIKELINEOFGT_MARC.內表:DATAGT_MAAPV2LIKETABLEOFGS_MAAPV.Hint:結構變量的命名有規(guī)那么,參見開發(fā)標準ABAP程序的數(shù)據(jù)定義12精選pptABAP開發(fā)培訓結構變量的定義:內表和工作區(qū)。工作區(qū)是相對于內表而言的,在操作內表時,系統(tǒng)需要先把數(shù)據(jù)從內表取出來存放到對應的工作區(qū),再進行相關的操作。通常情況下,定義一個內表的同時需要定義一個工作區(qū)。工作區(qū)通過結構定義。DATAGS_MARCLIKEMARC.DATAGT_MARCLIKETABLEOFMARC.結構GS_MARC就可以作為內表GT_MARC的工作區(qū)。其他定義方式同此例。ABAP程序的數(shù)據(jù)定義13精選pptABAP開發(fā)培訓結構變量的定義:表頭。DATAGT_MARCLIKEMARCOCCURS0WITHHEADERLINE.此語句會聲明一個帶有同名表頭的內表,表頭可作為工作區(qū)。這種命名方式會節(jié)省一些代碼量,但不推薦使用,容易混亂。還是推薦使用一個內表+一個工作區(qū)的方式。有些比較舊的程序用的是這種帶表頭的內表,在這些程序里,以GT_MARC為例:GT_MARC表示工作區(qū),GT_MARC-MATNR表示字段,GT_MARC[]表示整個內表。ABAP程序的數(shù)據(jù)定義14精選pptABAP開發(fā)培訓賦值:DATAVAR1(3)TYPECVALUE‘abc’.DATAVAR2(3)TYPEC.MOVEVAR1TOVAR2.VAR2=VAR1.VAR2=‘abc’.以上3條語句意義返回結果相同。賦值時注意數(shù)據(jù)格式,要求數(shù)據(jù)格式相同,或者兩邊存在轉換規(guī)那么,否那么會報錯。根本ABAP語句15精選pptABAP開發(fā)培訓運算:?二元操作符包括:+:加法-:減法*:乘法/:除法**:乘方DIV:整除忽略余數(shù)MOD:取余數(shù)?需要注意,圓括號和操作符都是關鍵字,需要跟操作數(shù)之間至少用一個空格分開。(1+2)*3應該寫成(1+2)*3根本ABAP語句16精選pptABAP開發(fā)培訓條件:根本ABAP語句IFA>B.…ELSE.…ENDIF.IF.…ELSEIF.…ELSEIF.……ENDIF.CASE

var.

WHEN

a.…

WHEN

b.…

WHEN

OTHERS.…

ENDCASE.17精選pptABAP開發(fā)培訓循環(huán):ABAP的循環(huán)分四種:DO.WHILE.……ENDDO.ENDWHILE.LOOPSELECT.……ENDLOOP.ENDSELECT.根本ABAP語句18精選pptABAP開發(fā)培訓循環(huán):DO…ENDDO.DO和ENDDO之間的語句塊會無限運行,直到遇到條件控制的跳出循環(huán)語句如EXIT等。在DO語句中還可以指定最多運行的次數(shù),否那么的話,將會出現(xiàn)無限循環(huán)無限循環(huán)。WHILE…ENDWHILE.在WHILE和ENDWHILE之間的語句塊會一直執(zhí)行,直到不再滿足WHILE后面所指定的條件。WHILE循環(huán)用的不多。根本ABAP語句19精選pptABAP開發(fā)培訓循環(huán):LOOP…ENDLOOP.循環(huán)讀取內表的數(shù)據(jù)到工作區(qū),供程序處理。實際應用最多的循環(huán)語句。一般情況下ABAP推薦把數(shù)據(jù)從數(shù)據(jù)庫(硬盤)讀到內表(內存),幾乎有程序就有內表,有內表就有LOOP循環(huán)。SELECT…ENDSELECT.循環(huán)讀數(shù)據(jù)庫。影響效率,不建議使用,建議用FORALLENTRIESIN語句一次性把數(shù)據(jù)讀入內表。根本ABAP語句20精選pptABAP開發(fā)培訓消息:MESSAGE語句向程序的用戶發(fā)送對話消息,使用MESSAGE語句必須指定三位數(shù)的消息號和消息類。MESSAGEE001(ZFI001)。事物碼SE91維護消息類和消息。也可以在程序里寫硬消息:MESSAGE‘程序運行錯誤’TYPE‘E’.但不推薦使用這種不標準的方式。根本ABAP語句21精選pptABAP開發(fā)培訓操作結構和內表:結構訪問結構里的字段。GS_MARC-MATNR.結構里最常用的語句是MOVE-CORRESPONDING語句。把一個結構的內容同時全部拷貝到另一個結構中。只有源結構和目標結構中有相同名稱的組件才會拷貝,而目標結構中名稱無法對應的組件保持不變。需要注意,如果兩個結構中同名的組件有不同定義的話,拷貝時可能會出錯。根本ABAP語句22精選pptABAP開發(fā)培訓操作結構和內表:內表訪問單條記錄–一般來說,需要一個與內表行結構相同相同的工作區(qū)來處理單條記錄。–APPEND:往內表的最后追加一條記錄,只能用于標準表。–INSERT:向內表插入一條記錄,在標準表里跟APPEND的效果一樣,在排序表里就插入到鍵指定的位置,在哈希表里那么根據(jù)哈希運算法那么插入到指定位置。–READTABLE:把表的指定行拷貝到結構中。–MODIFY:使用結構的內容重寫表的指定行。–DELETE:刪除表的指定行。COLLECT:把結構中的內容累加到內表具有相同鍵的行上,這時,只有非鍵字段才執(zhí)行累加,并且只有非鍵字段都是數(shù)值的時候才能執(zhí)行這個語句。一般內表里多個字段需要同時匯總時會用到COLLECT語句,比方財務的一些報表。根本ABAP語句23精選pptABAP開發(fā)培訓操作結構和內表:內表訪問多條記錄(結果集)處理結果集合–LOOP…ENDLOOP:LOOP語句一條一條的讀出內表的數(shù)據(jù)行,寫入INTO字句指定的結構中,結構的內容可用于輸出,或者修改后寫回內表。–DELETE:刪除滿足條件的所有行。–INSERT:把一個內表中的多行拷貝到另一個內表中。–APPEND:把一個內表中的多行追加到另一個標準表中。–想修改內表的某一行只能先把那行讀到工作區(qū),修改工作區(qū)后再寫回內表,而不能以數(shù)組的方法訪問到內表的指定一行,這是跟其他語言很不一樣的地方。根本ABAP語句24精選pptABAP開發(fā)培訓操作結構和內表:內表使用索引讀表〔標準表和排序表〕–LOOP中用FROM-TO子句可以讀指定索引段的記錄。–READ中用INDEX子句可以讀指定索引的一條記錄。使用條件讀表–LOOP中用WHERE子句可以讀滿足一定條件的記錄。–READ中用WithKEY子句可以讀滿足主鍵條件的記錄。內表排序–標準表和排序表可以使用SORT語句對指定字段進行排序,如果沒有指定升序或者降序就默認使用升序。根本ABAP語句25精選pptABAP開發(fā)培訓操作結構和內表:內表–REFRESH:去除整個內表的內容,釋放局部內存,保存一些以備后續(xù)操作。–CLEAR:對于沒有表頭的內表,跟REFRESH一樣,去除內表的內容。對于有表頭的內表,那么只初始化表頭。–FREE:去除整個內表的內容,釋放所有內存。在程序里,當內表以后不再使用的時候可以使用FREE,這樣能盡量多釋放一些不用的內存。根本ABAP語句26精選pptABAP開發(fā)培訓數(shù)據(jù)獲取SAP后臺可以連接多種數(shù)據(jù)庫,ORACLE,DB2,SQLSERVER,SYBASE…

每種數(shù)據(jù)庫都有自己特點的SQL語法,不可能在開發(fā)時根據(jù)后臺數(shù)據(jù)庫的種類選擇SQL語法,所以SAP用的是無關SQL標準的開放SQL,執(zhí)行時由SAP負責轉化成各種數(shù)據(jù)庫能運行的SQL。數(shù)據(jù)庫操作27精選pptABAP開發(fā)培訓數(shù)據(jù)獲取使用開放SQL的SELECT語句來執(zhí)行查詢,它包含幾個根本的組成局部。?根本語法:SELECT<fields>FROM<table>INTO<target>[WHERE<condition>]?SELECT后面的塊說明了需要讀表的哪些字段。?FROM后面的塊說明了需要讀哪個數(shù)據(jù)源〔數(shù)據(jù)源可以是表或者視圖〕。?INTO后面的塊說明了讀出的字段要放到哪個目標數(shù)據(jù)對象中(結構或內表)。?WHERE后面的塊說明了讀數(shù)據(jù)的根本條件,可選。SELECTMATNRWERKSPSTATBWTTYEKGRPINTOTABLEGT_MARCFROMMARCWHEREWERKS=‘1000’.數(shù)據(jù)庫操作28精選pptABAP開發(fā)培訓數(shù)據(jù)獲取獲取單條數(shù)據(jù)用SELECTSINGLE語句。如果目標結構的數(shù)據(jù)結構與查詢字段的順序不一致,或者使用*這樣的通配符來指定查詢字段,就需要CORRESPONDINGFIELDSOF子句,它會自動在源字段和目標字段之間找名稱相同的項自動對應填入。這是常用的方式。SELECTSINGLE*INTOCORRESPODINGFIELDSOFGS_MARCFROMMARCWHEREMATNR=‘000000001’ANDWERKS=‘1000’.SELECTSINGLE語句是在數(shù)據(jù)庫表所有的KEY鍵都被用到的時候使用的,執(zhí)行效率很高,可以用*。數(shù)據(jù)庫操作29精選pptABAP開發(fā)培訓一個常見的報表的組成選擇屏幕。輸入數(shù)據(jù)的篩選條件。數(shù)據(jù)定義。定義程序中用到的變量和常量,包括單個變量、結構、內表等。數(shù)據(jù)獲取。一般是通過一定的條件從數(shù)據(jù)庫讀取出來,或者上傳的TXT/EXCEL文檔。數(shù)據(jù)處理。按照FUNCTIONSPEC的要求,對獲得的數(shù)據(jù)進行處理〔增\刪\改\BAPI〕。展示。輸出處理好的數(shù)據(jù)。報表程序介紹30精選pptABAP開發(fā)培訓選擇屏幕-屏幕元素定義PARAMETERS:

P_WERKS

LIKE

MARD-WERKS

OBLIGATORY.“工廠

SELECT-OPTIONS:

S_MATNR

FOR

MARD-MATNR,“物料

S_LGORT

FOR

MARD-LGORT,“庫存地點

S_LFGJA

FOR

MARD-LFGJA,“年度

S_LFMON

FOR

MARD-LFMON.“月度報表程序介紹31精選pptABAP開發(fā)培訓選擇屏幕-屏幕效果報表程序介紹32精選pptABAP開發(fā)培訓選擇屏幕-數(shù)據(jù)定義TABLES:

MARD,MAKT.

DATA:

BEGIN

OF

GS_MARD,

MATNR

LIKE

MARD-MATNR,

WERKS

LIKE

MARD-WERKS,

LGORT

LIKE

MARD-LGORT,

PSTAT

LIKE

MARD-PSTAT,

LFGJA

LIKE

MARD-LFGJA,

LFMON

LIKE

MARD-LFMON,

LABST

LIKE

MARD-LABST,

MAKTX

LIKE

MAKT-MAKTX,

END

OF

GS_MARD.

DATA

GT_MARD

LIKE

TABLE

OF

GS_MARD.

報表程序介紹33精選pptABAP開發(fā)培訓選擇屏幕-屏幕輸出相關數(shù)據(jù)定義TYPE-POOLS:

SLIS.

**ALV

變量定義.

DATA:

WS_FIELDCAT

TYPE

SLIS_T_FIELDCAT_ALV

WITH

HEADER

LINE,

I_FIELDCAT1

TYPE

SLIS_T_FIELDCAT_ALV

WITH

HEADER

LINE.

DATA:

WS_FIELDGROUPS_TAB

TYPE

SLIS_T_SP_GROUP_ALV,

WS_LAYOUT

TYPE

SLIS_LAYOUT_ALV,

WS_SORTFIELDS_TAB

TYPE

SLIS_T_SORTINFO_ALV

WITH

HEADER

LINE,

WS_EVENTS

TYPE

SLIS_T_EVENT.

DATA:

V_REPID

LIKE

SY-REPID.

報表程序介紹34精選pptABAP開發(fā)培訓數(shù)據(jù)獲取和處理

SELECT

A~MATNR

A~WERKS

A~LGORT

A~PSTAT

A~LFGJA

A~LFMON

A~LABST

B~MAKTX

INTO

TABLE

GT_MARD

FROM

MARD

AS

A

INNER

JOIN

MAKT

AS

B

ON

A~MATNR

=

B~MATNR

WHERE

B~SPRAS

=

'1'

AND

A~WERKS

=

P_WERKS

AND

A~MATNR

IN

S_MATNR

AND

A~LGORT

IN

S_LGORT

AND

A~LFGJA

IN

S_LFGJA

AND

A~LFMON

IN

S_LFMON.

DELETE

GT_MARD

WHERE

MAKTX

IS

INITIAL.報表程序介紹35精選pptABAP開發(fā)培訓輸出-構建輸出元素

WS_FIELDCAT-TABNAME

=

‘GT_MARD’.

WS_FIELDCAT-FIELDNAME

=

‘MATNR’.

“字段名

WS_FIELDCAT-SELTEXT_L

=

‘物料’.

〞字段文本

WS_FIELDCAT-COL_POS

=

1.

“輸出位置

WS_FIELDCAT-OUTPUTLEN

=

18.

〞輸出長度

WS_FIELDCAT-DATATYPE

=

‘CHAR’.

“字段類型

APPEND

WS_FIELDCAT.

CLEAR

WS_FIELDCAT.相當于把內表的數(shù)據(jù)再附加一些展示時用的屬性。

報表程序介紹36精選pptABAP開發(fā)培訓輸出-展示效果設置

WS_LAYOUT-ZEBRA

=

'X'

溫馨提示

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

評論

0/150

提交評論