轉:SAP學習筆記(from 神話blog)

dicksonjyl560101發表於2015-04-25

SAP學習筆記
作者:神話 日期:2006-01-03


SAP學習筆記
1.如何進行Client的Copy?
 使用者(sap*)登入已經存在的Client(如:000),然後用T—CODE(SCC4)或選單(Tools->Administration-> Administration-> Client Administration->Client Maintenance)進行新Client的建立(如:建立一個新的Client《008》);
 用SAP*登入已經建立的新的Client《008》,然後進行Client Copy,即用T—CODE(SCCL)或者選單(Tools->Administration-> Administration-> Client Admin->Client Copy->Local Copy/Remote Copy) 進行Copy。[引數檔案選擇:SAP_ALL]

2.SAP的資料庫是如何劃分的?
SAP的資料庫分為兩部份,即Cross-Client和Client-Specific。Cross-Client包括Repository和其他一些東西,其中,Repository這部分組成資料字典;在Client-specific部分,包括應用程式和客戶化的表。由於有了Client-specific部分,才使得各個使用者的資料得以區分。

3.如何才能在Mini SAP中自由的進行軟體開發?
 需要打補丁
 將補丁檔案《MBSCORR01042000》複製到目錄《transtmp》下;
 cd 和執行dbenv.cmd
 cd transtmp和執行....R3trans.exe -i MBSCORR01042000
 Program generate:
Logon on MBS as BCUSER;
execute Transaction SE38;
generate SAPLSTRD and SAPDBF1S
 DDIC不能進行軟體開發,需要用BCUSER或者增加新的使用者(透過su01)進行軟體開發。
新增加的使用者,需要進行Access Key才能進行開發;
BCUSER的Access Key:29671482393151224771

4.如何進入開發介面?
透過T—CODE(SE38)或者選單(Tools->ABAP Workbench->Development->ABAP Editor就可以進入開發介面了。

5.ABAP4的命名程式規則是怎樣的?
 使用至少1個但不超過8個字元。
 不要使用下列字元:句點(.);逗號(,);空格( );括號'('')';單引號(');雙引號(");等號(=);星號(*);母音變音( , , , , , )和' ';百分號(%)和下劃線(_):
 報表程式(以列表格式輸出資料分析):Yaxxxxxx或Zaxxxxxx。用應用程式區的分類字母替換a。任何有效字元替換x。注意SAP報表程式遵守相似的命名約定:Raxxxxxx。
 任何其它ABAP/4程式(培訓程式或事務程式):SAPMYxxx或SAPMZxxx。用有效字元替換x。注意標準SAPABAP/4程式遵守相似的命名約定:SAPMaxxx,其中a代表某應用程式區。

換行輸出,用/就可以了,WRITE / ‘I am star.’


6.指定程式屬性的一些關鍵內容?
進入程式開發介面,輸入program名字後,進入程式屬性介面(Program Attributes):
 Title(標題):必須輸入項;
 Type(型別):包括Executable program(1:如同報表的獨立程式)、INCLUDE program(I:包含程式)、Module pool(M:模組儲存)
 Application(應用程式):該項能夠使系統將程式分配給適當的業務區,如:選擇Financial Accounting(F:財務會計)。
 Logical database(邏輯資料庫):僅僅應用於應用程式中的報表程式。這個屬性決定報表使用哪個邏輯資料庫來檢索資料,以及邏輯資料庫屬於哪個應用程式。應用程式中資料庫名稱必須是唯一的。但是,整個系統可以包括數個同名資料庫,因此指定應用程式很重要。如果報表程式直接讀取資料,而未使用邏輯資料庫,則應該像通常一樣指定應用程式,而將“邏輯資料庫”欄位置空。
 Selection screen(選擇螢幕版本):僅僅應用於應用程式中的報表程式。如果沒有指定選擇螢幕版本,則系統在邏輯資料庫選擇標準、報表特定引數選項的基礎上自動建立選擇螢幕;如果想使用自己的選擇螢幕,請輸入號碼同時該號碼必須小於1000。
 Editor lock(編輯器鎖定):如果設定此屬性,則其他使用者則不能修改、改名或刪除程式。只有建立使用者可以更改程式、維護屬性、文字摘要及文件或者解除鎖定。
 Fixed point arithmetic(定點算術):如果設定此屬性,系統則根據小數點位數將型別P欄位四捨五入,或用零填補。這種情況下,無論在使用者主記錄中指定了什麼,小數點字元總是句點(.)。
 Start using variant(透過變式啟動): 僅僅應用於應用程式中的報表程式。如果設定該屬性,則使用者只能透過使用變式啟動報表程式。在啟動程式之前,必須建立至少一個報表變式。

7.如何將事務程式碼分配給程式?
可以將事務程式碼分配給型別為Executable program(1)的單獨程式,以後就將程式作為事務程式碼處理。透過T—CODE(SE38)或者選單(Tools->ABAP Workbench->Development->other Tools->Transactions就可以了。

8.如何進行註釋?
可以在程式的任意處插入註釋行。在程式中有兩種方法表明註釋:
 如果要將整行變為註釋,則在行開始處輸入星號(*)。
 如果要將某行一部分註釋,則在註釋之前輸入雙引號(")。系統將由雙引號標明的註釋解釋為空格。

9.預定義的資料型別有哪幾種?
C(文字和字元):文字文字最長可達254個字元。如果需要非整型數值或較長的數字(如:'12345678901234567890'、'+0.58498'、'-8473.67'),則必須使用文字文字,該文字文字自動轉換到正確的型別。同樣,請使用文字文字表示浮點數值。
D:(日期):
F(浮點數): 對於正數和負數,型別F數值範圍是1x10**-307到1x10**308,包括0(零)。精確範圍近似為15位十進位制數,這取決於硬體平臺的浮點演算法;由於是在內部將型別F資料轉換為二進位制系統,因此可能出現舍入誤差。儘管ABAP/4處理器試圖將這些影響減至最小,但是如果要求高精度,則不應該使用型別F資料。而應代之以型別P資料;如果需要大的數值範圍,而且舍入誤差不重要,則可以使用型別F資料。
I(整型):數值範圍是-2**31到2**31-1並且僅包括整數;對算術運算的非整型結果(如分數)進行四捨五入,而不是截斷;可用於計數器、專案號、索引和時間期段等。
N(數字文字):雖然由數字組成,但不包含數值,,但這些數字不用於計算。科目號和郵編是典型的型別。
P(壓縮號):允許在小數點後有數字;型別P資料的數值範圍取決於大小和小數點後的位數,有效大小可以是從1到16位元組的任何值,將兩個十進位制數字壓縮到一個位元組,而最後一個位元組包含一個數字和符號,在小數點後最多允許14個數字;使用型別P資料時,最好將程式屬性設定為“定點演算法”,否則,將型別P數字作為整型對待;型別P資料可用於如距離、重量和錢數等數值。
T(時間):
X(十六進位制):

10.下面是系統欄位示例:
SY-SUBRC返回程式碼值(0,如果操作成功)
SY-UNAME使用者的登入名
SY-DATUM當前日期
SY-UZEIT當前時間
SY-TCODE當前事務

11.如何定義內部變數?
 DATA [()] [] [].
注:對於C和N型,如果length不輸入,則預設長度為1;對於N型變數,如果值中包括字元,則字元不起作用,只輸出數字。如果length大於實際內容的長度,則對於C型來講,以空字元來填充,對於N型來說,對0來填充。如果指定長度,但未指定型別,則建立給定長度的字元欄位。
 例子:Str=’ab123’,NStr = ‘1245ab3’,Int = 100
write 'This is star''s computer.'. 輸出:This is star’s computer.
DATA Str type C. 輸出:a
DATA Str(5) type C. 輸出:ab123
DATA NStr type N. 輸出:3
DATA NStr(7) type N. 輸出:12453
DATA NStr1 like NStr value ’1234567’. 輸出:1234567
DATA Int type I. 輸出:100
DATA Pdat(10) type p value '9.876543210' decimals 9. 輸出:9.876543210
CONSTANTS PI TYPE P DECIMALS 10 VALUE '3.1415926536'. 輸出:3.1415926536
DATA MYNAME LIKE SY-UNAME. 與系統定義的物件SY-UNAME有一樣的資料型別
 DATA SUM1 TYPE I.
DATA SUM2 TYPE I.
DATA SUM3 TYPE I.

DATA: SUM1 TYPE I,
SUM2 TYPE I,
SUM3 TYPE I,
是一樣的,這就是鏈語句。

12.如何設定欄位串和使用欄位串?
DATA: BEGIN OF ADDRESS,
NAME(20) TYPE C,
STREET(20) TYPE C,
NUMBER TYPE P,
POSTCODE(5) TYPE N,
CITY(20) TYPE C,
END OF ADDRESS.
該示例定義了一個長度為73的欄位串ADDRESS。可以透過ADDRESS-NAME、ADDRESS-STREET等定址元件。可以將長欄位串的宣告收集在包括程式中。但是,如果頻繁使用該資料結構,則最好將它們儲存在ABAP/4詞典中。

13.LIKE引數,語法如下:DATA LIKE .
利用LIKE引數,可以將已定義資料物件的資料型別分配給變數。
LIKE引數常用於附屬欄位以臨時儲存資料庫欄位的內容。如果更改資料庫欄位的屬性,則系統自動改寫備份欄位的屬性。
可將任何資料物件用於。利用LIKE引數,可以引用在ABAP/4詞典中宣告的資料物件的資料型別。
如: DATA NUMBER_1 TYPE P.
DATA NUMBER_2 LIKE NUMBER_1.
DATA MYNAME LIKE SY-UNAME.

14.STATICS 語句:
如果要在過程的執行時間之外仍保留某變數的數值,可以在該過程中利用STATICS語句定義該變數。STATICS語句是DATA語句的變異。語法如下: STATICS [] [] [].
要在過程中將欄位串定義為靜態有效,請寫:
STATICS: BEGIN OF ,
,
..............
END OF .

15.TABLES語句:TABLES
利用TABLES語句,可以建立稱為表工作區的資料物件。表工作區是參考ABAP/4詞典物件的欄位串。
是ABAP/4詞典物件的名稱,同時也是建立的表工作區的名稱。表工作區元件的順序和名稱與在ABAP/4詞典中宣告的物件相同。
要在ABAP/4詞典中建立物件,步驟:Tools->ABAP Workbench->Development->ABAP Dictionary。
表工作區提供一個介面,透過該介面可以將資料從資料庫表載入到程式,或利用開放式SQL語句修改資料庫表的內容。
要顯示錶的元件及其資料型別的列表,請在ABAP/4編輯器的命令列中(選擇“編輯->其它功能->命令輸入”)鍵入“SHOW”。
要定址表工作區的元件,可以將表名作為字首,然後用連字元新增元件:dbtab>-
例子:TABLES: SPFLI.
Select * FROM SPFLI.
WRITE: SPFLI-MANDT, SPFLI-CARRID, SPFLI-CONNID, ......
ENDSelect.
示例中,TABLES語句建立表工作區SPFLI。SPFLI與ABAP/4詞典中宣告的資料庫表SPFLI結構相同。在Select迴圈中,用屬於資料庫表SPFLI的行填充表工作區SPFLI。


15.TYPES語句:使用TYPES語句建立使用者定義的基本資料型別和結構化資料型別。
TYPES: SURNAME(20) TYPE C,
BEGIN OF ADDRESS,
NAME TYPE SURNAME,
....
END OF ADDRESS.
透過TYPES定義的型別不能直接使用,需要透過DATA進行定義其對應的變數後,使用其變數。

DATA: ADDRESS_1 TYPE ADDRESS,
ADDRESS_2 TYPE ADDRESS.

16.內表示例:下列程式是有關如何將結構化資料物件宣告為內表的示例。
PROGRAM SAPMZTST.
TYPES: BEGIN OF MYSTRING,
NUMBER TYPE I,
NAME(10) TYPE C,
END OF MYSTRING.
TYPES MYTAB TYPE MYSTRING OCCURS 5.
DATA STRING TYPE MYSTRING.
DATA ITAB TYPE MYTAB.
STRING-NUMBER = 1. STRING-NAME = 'John'.
APPEND STRING TO ITAB.
STRING-NUMBER = 2. STRING-NAME = 'Paul'.
APPEND STRING TO ITAB.
STRING-NUMBER = 3. STRING-NAME = 'Ringo'.
APPEND STRING TO ITAB.
STRING-NUMBER = 4. STRING-NAME = 'George'.
APPEND STRING TO ITAB.
LOOP AT ITAB INTO STRING.
WRITE: / STRING-NUMBER,STRING-NAME.
ENDLOOP.
該程式在螢幕上產生下列輸出:
1 John
2 Paul
3 Ringo
4 George
示例中,首先將資料型別MYSTRING定義為欄位串。然後,根據欄位串MYSTRING,用TYPES語句的OCCURS引數將資料型別MYTAB定義為內表。利用資料型別MYSTRING和MYTAB宣告資料物件STRING和ITAB。然後逐行填充內表ITAB的欄位。透過使用欄位串STRING,在螢幕上顯示ITAB的內容。

17.TYPE或TYPES所定義的變數不能直接賦值,只能透過DATA針對TYPE所定義的使用者型別進行定義變數,然後使用這個變數。


18.如何確定資料物件的長度?
Data: text(8),len type i. //定義了兩個變數
Describe field text length len. //將變數text的長度存放於變數len中
Write len. //列印變數text的長度值

19.如何確定資料物件的型別?
DATA: TEXT(8) TYPE N, TYP. //定義了兩個變數TEXT和TYP
DESCRIBE FIELD TEXT TYPE TYP. //將變數TEXT的型別存放於變數TYP中 
WRITE TYP. //列印變數TEXT的型別

19.如何確定資料物件的輸出長度?
Data: text type f, len type I, out-len type i. //定義了三個變數
Describe field text length len output-length out-len. //將變數text的長度存放於變數中
Write: len,out-len. //列印變數text的長度值

20.如何確定資料物件的小數位數?
Data: text type p decimals 2,dec. //定義了兩個變數
Describe field text decimals dec. //將變數text的長度存放於變數中
Write: dec . //列印變數text的長度值

21.如何確定轉換例程?
Data: text type n, exam type i. //定義了兩個變數
Describe field text edit mask i. //將變數text的長度存放於變數中
Write: i . //列印變數text的長度值

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29829936/viewspace-1598643/,如需轉載,請註明出處,否則將追究法律責任。

相關文章