天天看點

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

SAP學習筆記

作者:神話 日期:2006-01-03

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,

....

通過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'.

STRING-NUMBER = 3. STRING-NAME = 'Ringo'.

STRING-NUMBER = 4. STRING-NAME = 'George'.

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的長度值