sap abap基礎

Click here to load reader

Upload: kenneth-wong

Post on 25-Jun-2015

2.417 views

Category:

Documents


0 download

TRANSCRIPT

SAP ABAP / 4 C D YYYYMMDD '1999/12/03' F : 8 I N 011'302' P : PACKED 12.00542 T : HHMMSS '14:03:00' X : 16 '1A03' *-------------------------------------------------------------------------------------*

DATA [] [][decimals] exp: DATA : COUNTER TYPE P DECIMALS 3. NAME(10) TYPE C VALUE 'DELTA'. S_DATE TYPE D VALUE '19991203'. exp: DATA : BEGIN OF PERSON, NAME(10) TYPE C, AGE TYPE I, WEIGHT TYPE DECIMALS 2, END OF PERSON. , DATA : CONSTANTS()STATICS(). exp: CONSTANTS PI TYPE P DECIMALS 5 VALUE '3.14159'. STATICS , : STATICS [] [] []

SYST STRUCTURE,,: SY-SUBRC : ,,'0' SY-UNAME: SAP USERNAME; SY-DATUM: ; SY-UZEIT: ; SY-TCODE: Transaction code SY-INDEX : LOOP SY-TABIX: internal table SY-TMAXL: Internal table SY-SROWS: ; SY-SCOLS: ; SY-MANDT: CLIENT NUMBER SY-VLINE: SY-ULINE: TYPE Example: TYPES: BEGIN OF MYLIST, NAME(10) TYPE C, NUMBER TYPE I, END OF MYLIST. DATA LIST TYPE MYLIST. LIKE TYPE , DATA TRANSCODE LIKE SY-TCODE. LIKE , , TYPE

*-------------------------------------------------------------------------------------*

. WRITE ABAP/4 WRITE ,: WRITE: 'USER NAME IS:', SY-UNAME. . :

WRITE: [AT] [ / ] [] [()] [] : / : : ; ():() : ,: LEFT-JUSTIFIED CENTERED UNDER NO-GAP RIGHT-JUSTIFIED ,

USING EDIT MASK : , 12:03:20 USING NO EDIT MASK: NO-ZERO: NO-SIGN: 0 F()

DECIMALS : EXPOENT : ROUND : DD/MM/YY : MM/DD/YY: YY/MM/DD: YY/DD/MM MM/DD/YYYY: DD/MM/YYYY YYYY/MM/DD: YYYY/DD/MM:

CURRENCY :

1: WRITE: /10(6) 'ABCDEFGHIJK'. : ABCDEF 2: DATA: X TYPE I VALUE '11:20:30', A(5) TYPE C VALUE 'AB CDE'. WRITE: / X USING EDIT MASK '__:__:__'. WRITE: / X USING EDIT MASK '$___,___'. WRITE: / Y NO-GAP. : 11:20:30 $112,030 ABCDEF

3: DATA: LEN TYPE I VALUE 10, POS TYPE I VALUE 11, TEXT(10) VALUE '1234567890' WRITE 'The text ------------ appears in the text.'. WRITE AT POS(LEN) TEXT. WRITE TO WRITE TO WRITE TO []. DATA: NUMBER TYPE F VALUE '4.3', TEXT(10), FLOAT TYPE F, PACK TYPE P DECIMALS 1. WRITE NUMBER. WRITE NUMBER TO TEXT EXPONENT 2. WRITE / TEXT. WRITE NUMBER TO FLOAT. WRITE / FLOAT. WRITE NUMBER TO PACK. WRITE / PACK. MOVE NUMBER TO PACK. WRITE / PACK. exp: DATA: NAME(10) VALUE 'SOURCE', SOURCE(10) VALUE 'Antony', TARGET(10). ... WRITE (NAME) TO TARGET. WRITE: TARGET. exp : DATA: COUNTER TYPE I. COMPUTE COUNTER = COUNTER + 1. COUNTER = COUNTER + 1.

ADD 1 TO COUNTER.

ULINE [AT [/][][()]]. WRITE [AT [/][][()]] SY-ULINE. AT WRITE ( 28) WRITE WRITE WRITE [AT [/][][()]] '-----...'. WRITE [AT [/][]] SY-VLINE. WRITE [AT [/][]] '|'. SKIP []. SKIP TO LINE .

.

:

: WRITE: AS SYMBOL. WRITE: AS ICON. : INCLUDE . INCLUDE . WRITE: / 'Phone symbol:', SYM_PHONE AS SYMBOL. WRITE: / 'Alarm Icon:', ICON_VOICE_OUTPUT AS ICON. ,'EDIT''Insert Statement','Write',

, SYMBOL ICON, 'Display'. *-------------------------------------------------------------------------------------* . Internal Table

ABAP/4 Internal Table Data Structure, STRUTURE, (field),,, .

Internal table : . DATA: BEGIN OF OCCURS , TYPE , [ TYPE , TYPE , : DATA OCCURS [WITH HEADER LINE] Example: DATA VECTOR TYPE I OCCURS 10 WITH HEADER LINE. . TYPES: BEGIN OF , TYPE , [ TYPE , TYPE , ] END OF . TYPES TYPE OCCURS . . DATA: BEGIN OF . INCLUDE STRUCTURE . DATA: END OF . DATA: LIKE OCCURS . exp: TYPES VECTOR TYPE I OCCURS 10. TYPES: BEGIN OF LINE, COLUMN1 TYPE I, ] END OF .

COLUMN2 TYPE I, COLUMN3 TYPE I, END OF LINE. TYPES ITAB TYPE LINE OCCURS 10. TYPES: BEGIN OF DEEPLINE, TABLE1 TYPE VECTOR, TABLE2 TYPE ITAB, END OF DEEPLINE. TYPES DEEPTABLE TYPE DEEPLINE OCCURS 10. VECTOR ITAB DEEPLINE DEEPTABLE exp : TYPES: BEGIN OF LINE, COLUMN1 TYPE I, COLUMN2 TYPE I, COLUMN3 TYPE I, END OF LINE. TYPES ITAB TYPE LINE OCCURS 10. DATA TAB1 TYPE ITAB. DATA TAB2 LIKE TAB1 WITH HEADER LINE. ( 99) ITAB DATA TYPE ITAB TAB1 ITAB DATA LIKE TAB1 TAB2 TAB2 TAB2-COLUMN1 TAB2COLUMN2 TAB2-COLUMN3 TAB2 exp : DATA FLIGHT_TAB LIKE SFLIGHT OCCURS 10. FLIGHT_TAB SFLIGHT TYPES VECTOR_TYPE TYPE I OCCURS 10. DATA VECTOR TYPE VECTOR_TYPE WITH HEADER LINE. VECTOR_TYPE I VECTOR_TYPE VECTOR WITH HEADER LINE VECTOR I VECTOR DATA VECTOR TYPE I OCCURS 10 WITH HEADER LINE. DATA OCCURS VECTOR

*-------------------------------------------------------------------------------------* 1. TYPES type. 2. TYPES type(len). 3. TYPES: BEGIN OF structype ... END OF structype. 4. TYPES itabtype {TYPE tabkind OF linetype LIKE tabkind OF lineobj} [WITH [UNIQUE|NON-UNIQUE] keydef] [INITIAL SIZE n]. 5. TYPES itabtype TYPE RANGE OF type. TYPES itabtype LIKE RANGE OF f. 6. TYPES itabtype {TYPE linetype|LIKE lineobj} OCCURS n. *-------------------------------------------------------------------------------------* APPEND LINE APPEND TO ( WORK AREA) DATA : BEGIN OF LINE, COL1 TYPE I, COL2 TYPE I, END OF LINE. DATA ITAB LIKE LINE OCCURS 10. DO 2 TIMES. LINE-COL1 = SY-INDEX. LINE-COL2 = SY-INDEX ** 2. APPEND LINE TO ITAB. ENDDO. LOOP AT ITAB INTO LINE. WRITE : / LINE-COL1,LINE-COL2. ENDLOOP. ( WORK AREA) DATA : BEGIN OF ITAB OCCURS 10, COL1 TYPE I, COL2 TYPE I, END OF ITAB. DO 2 TIMES. ITAB-COL1 = SY-INDEX.

ITAB-COL2 = SY-INDEX ** 2. APPEND ITAB. ENDDO. LOOP AT ITAB. WRITE : / ITAB-COL1,ITAB-COL2. ENDLOOP. exp: DATA: BEGIN OF ITAB OCCURS 10, COL1 TYPE C, COL2 TYPE I, END OF ITAB. DO 3 TIMES. APPEND INITIAL LINE TO ITAB. ITAB-COL1 = SY-INDEX. ITAB-COL2 = SY-INDEX ** 2. APPEND ITAB. ENDDO. LOOP AT ITAB. WRITE: / ITAB-COL1, ITAB-COL2. ENDLOOP. . ( Internal table ) : APPEND LINES OF [FROM ] [TO ] TO . ,. APPEND LINES OF ITAB TO JTAB. COLLECT LINE COLLECT Internal table , APPEND : COLLECT ,. : COLLECT [ INTO ] DATA: BEGIN OF ITAB OCCURS 3, COL1(3) TYPE C, COL2 TYPE I, ITAB-COL2 = 10. ITAB-COL2 = 20. END OF ITAB. ITAB-COL1 = 'ABC'. COLLECT ITAB. ITAB-COL1 = 'XYZ'.

COLLECT ITAB. ITAB-COL1 = 'ABC'. COLLECT ITAB. , internal table 2 , : ITAB-COL1 'ABC' 'XYZ' ITAB-COL2 90 20 ITAB-COL2 = 80.

*-------------------------------------------------------------------------------------* INSERT LINE internal table . : INSERT [ INTO] [INITIAL LINE INTO ] [INDEX ] : INSERT LINES OF [FROM TO ] INTO INDEX : work area,. [INITIAL LINE INTO] :. : internal table [INDEX ]: internal table .() Example: DATA: BEGIN OF LINE, COL1 TYPE I, COL2 TYPE I, END OF LINE. DATA ITAB LIKE LINE OCCURS 10. DO 3 TIMES. LINE-COL1 = SY-INDEX *10. LINE-COL2 = SY-INDEX *20. APPEND LINE INTO ITAB. ENDDO. LINE-COL1=100. LINE-COL2=200. INSERT LINE INTO ITAB INDEX 2. " 2 LOOP AT ITAB INTO LINE. WRITE: / SY-TABIX,LINE-COL1,LINE-COL2. "SY-TABIX Table ENDLOOP. : 1 2 10 100 20 200 "

3 4

20 30

40 60

Internal Table : INSERT LINES OF [FROM TO ] TO INDEX , , Example: APPEND LINES OF ITAB TO JTAB INDEX 3. ITAB JTAB , *-------------------------------------------------------------------------------------* internal table : LOOP AT [INTO ][FROM TO ][WHERE ] ENDLOOP. Example: LOOP AT ITAB INTO LINE WHERE COL1 >100. WRITE: / SY-TABIX,LINE-COL1. ENDLOOP. COL1 > 100 : READ TABLE [INTO ] [INDEX / WITH KEY ] . () DATA: BEGIN OF ITAB OCCURS 10, COL1 TYPE I, COL2 TYPE I, END OF ITAB. DO 10 TIMES. ITAB-COL1 = SY-INDEX. ITAB-COL2 = SY-INDEX * 2. APPEND ITAB. ENDDO. READ TABLE ITAB INDEX 3. (: READ TABLE ITAB WITH KEY COL1 = 3.) WRITE: / 'ITAB-COL1 = ', ITAB-COL1, 'ITAB-COL2 = ', ITAB-COL2.

: ITAB-COL1 = ITAB-COL2 = Example: READ TABLE ITAB INTO LINE INDEX 5 ITAB 5 , LINE : READ TABLE INTO Example: ITAB-COL1 = 'ABC'. READ TABLE ITAB INTO LINE. ITAB COL1 ABC , LINE SY-SUBRC 0, 4, work area *-------------------------------------------------------------------------------------* internal table : MODIFY [FROM ][INDEX ][TRANSPORTING ][WHERE ] . READ TABLE ITAB INDEX 3. LINE-COL1 = 29. MODIFY ITAB FROM LINE TRANSPORTING COL1. COL1 29. . T_SALARY - salary = 50. MODIFY T_SALARY TRANSPORTING salary WHERE birthday = '1999/12/06'. DELETE internal table : DELETE INDEX . : DELETE [FROM TO ] [WHERE ] Internal table SORT [][BY ] : DESCENDING ASCENDING, Default ASCENDING. : . Example: SORT ITAB DESCENDING BY COL2. 3 6.

ITAB COL2 *-------------------------------------------------------------------------------------* OCCURS DESCRIBE DESCRIBE TABLE [LINES ] [OCCURS ]. LINES OCCURS DATA: BEGIN OF LINE, COL1 TYPE I, COL2 TYPE I, END OF LINE. DATA ITAB LIKE LINE OCCURS 10. DATA: LIN TYPE I, OCC TYPE I. DESCRIBE TABLE ITAB LINES LIN OCCURS OCC. WRITE: / LIN, OCC. DO 1000 TIMES. LINE-COL1 = SY-INDEX. LINE-COL2 = SY-INDEX ** 2. APPEND LINE TO ITAB. ENDDO. DESCRIBE TABLE ITAB LINES LIN OCCURS OCC. WRITE: / LIN, OCC. 0 1.000 10 10

ITAB DESCRIBE *-------------------------------------------------------------------------------------* SUM. work area , LOOP . : LOOP AT ITAB INTO LINE. SUM. ENDLOOP. WRITE: / LINE-COL1, LINE-COL2. LINE-COL1 LINE-COL2 internal table

REFRESH . . HEADER LINE Internal Table , CLEAR . Header Line. HEADER LINE Internal Table , FREE . .(Release) Internal Table , REFRESH

CLEAR

CLEAR CLEAR . exp: DATA NUMBER TYPE I VALUE '10'. WRITE NUMBER. CLEAR NUMBER. WRITE / NUMBER. 10 0 CLEAR NUMBER 10 0 *-------------------------------------------------------------------------------------* ADD THEN UNTIL GIVING . ... ADD THEN UNTIL TO . ADD DATA: BEGIN OF SERIES, N1 TYPE I VALUE 10, N2 TYPE I VALUE 20,

N3 TYPE I VALUE 30, N4 TYPE I VALUE 40, N5 TYPE I VALUE 50, N6 TYPE I VALUE 60, END OF SERIES. DATA SUM TYPE I. ADD SERIES-N1 THEN SERIES-N2 UNTIL SERIES-N5 GIVING SUM. WRITE SUM. ADD SERIES-N2 THEN SERIES-N3 UNTIL SERIES-N6 TO SUM. WRITE / SUM. 150 350 N1 N5 SUM N2 N6 SUM *-------------------------------------------------------------------------------------*

ABAP/4 , PARAMETERS SELECTION-OPTIONS: 1. PARAMETER: 2. SELECTION-OPTIONS: PARAMETERS , BASIC INPUT , F () : PARAMETERS [DEFAULT ] [LOWER CASE] [OBLIGATORY] [AS CHECKBOX] [RADIOBUTTON GROUP ] Example: PARAMETERS: NAME(8), AGE TYPE I, BIRTH TYPE D. : MM/DD/YY , MM/DD/YYYY, MMDDYY MMDDYYYY , 020165 1965 02 01 , 02/01/65 , 1950 2049 1. DEFAULT

Example: PARAMETERS: COMPANY(20) DEFAULT 'DELTA', BIRTH TYPE D DEFAULT '19650201'. 2. LOWER CASE ABAP/4 , , 3. OBLIGATORY , ? , . 4. AS CHECKBOX CHECKBOX Example: PARAMETERS: TAX AS CHECKBOX DEFAULT 'X', NTD AS CHECKBOX. :

5.

RADIOBUTTON GROUP RADIO BUTTON GROUP Example: PARAMETERS: BOY RADIOBUTTON GROUP SEX DEFAULT 'X', GIRL RADIOBUTTON GROUP SEX.

exp : TABLES SPLFI. PARAMETERS: LOW LIKE SPFLI-CARRID, HIGH LIKE SPFLI-CARRID. SELECT * FROM SPLFI WHERE CARRID BETWEEN LOW AND HIGH. ........ ENDSELECT. *-------------------------------------------------------------------------------------* SELECTION-OPTIONS SELECTION-OPTIONS internal table , Internal table , :SIGN,OPTION,LOW,HIGH.. , SELECT TABLE , Internal Table , : 1. SIGN: I: E: 2. OPTION: EQ(),NE(),GT(),LE(),CP(),NP() 3. LOW:

4. HIGH: : SELECTION-OPTIONS FOR Example: TABLES SPFLI. SELECT-OPTIONS AIRLINE FOR SPFLI-CONNID. AIRLINE, SPFLI CONNID 1. DEFAULT TO Example: SELECT-OPTIONS AIRLINE FOR SPFLI-CONNID DEFAULT '2042' TO '4555'. 2. 3. 4. 5. NO-EXTENSION NO INTERVALS LOWER CASE OBLIGATORY Multi-Option

*-------------------------------------------------------------------------------------* SELECT , SELECT 1. WHERE Example: TABLES SPFLI. SELECT-OPTIONS AIRLINE FOR SPFLI-CONNID. SELECT * FROM SPFLI WHERE CONNID IN AIRLINE. WRITE: / SPFLI-CONNID,SPFLI-CITYFROM,SPFLI-CITYTO. ENDSELECT. 2. CHECK Example: TABLES SPFLI. SELECT-OPTIONS AIRLINE FOR SPFLI-CONNID. SELECT * FROM SPFLI. CHECK AIRLINE.

WRITE: / SPFLI-CONNID,SPFLI-CITYFROM,SPFLI-CITYTO. ENDSELECT. * exp: TABLES SPFLI. SELECT-OPTIONS: S_CARRID FOR SPFLI-CARRID, S_CITYFR FOR SPFLI-CITYFROM, S_CITYTO FOR SPFLI-CITYTO, S_CONNID FOR SPFLI-CONNID. SELECT * FROM SPFLI. CHECK: SPFLI-CARRID IN S_CARRID, SPFLI-CITYFR IN S_CITYFR, SPFLI-CITYTO IN S_CITYTO, SPFLI-CONNID IN S_CONNID. WRITE: / SPFLI-CARRID, SPFLI-CONNID, SPFLI-CITYFROM, SPFLI-CITYTO. ENDSELECT. 3. IF IN Example: SELECT-OPTIONS AIRLINE FOR SPFLI-CONNID. SELECT * FROM SPFLI. IF SPFLI-CONNID IN AIRLINE. WRITE: / SPFLI-CONNID,SPFLI-CITYFROM,SPFLI-CITYTO. ENDIF. ENDSELECT. *-------------------------------------------------------------------------------------* SELECTION-SCREEN 1. : SELECTION-SCREEN SKIP [] Example: SELECTION-SCREEN SKIP 2. 2. : SELECTION-SCREEN ULINE / (length)

Example: SELECTION-SCREEN ULINE /10(30). 10 30 3. : SELECTION-SCREEN COMMENT / (length) Example: REMARK = 'Pls enter your name'. SELECTION-SCREEN COMMENT /10(30) REMARK. 4. : SELECTION-SCREEN BEGIN OF LINE. SELECTION-SCREEN END OF LINE. Example: SELECTION-SCREEN BEGIN OF LINE. SELECTION-SCREEN POSITION 20. PARAMETERS NAME(10). SELECTION-SCREEN POSITION 40. PARAMETERS BIRTH TYPE D. SELECTION-SCREEN END OF LINE. 20 NAME , 40 BIRTH 5. BLOCK PANEL : SELECTION-SCREEN BEGIN OF BLOCK [WITH FRAME [TITLE ]. . SELECTION-SCREEN END OF BLOCK . Example: SELECTION-SCREEN BEGIN OF BLOCK RADIO PARAMETER R1 RADIOBUTTON GROUP GR1. PARAMETER R2 RADIOBUTTON GROUP GR1. PARAMETER R3 RADIOBUTTON GROUP GR1. SELECTION-SCREEN END OF BLOCK RADIO. *-------------------------------------------------------------------------------------* SQL WITH FRAME .

ABAP4 , TABLE ,. SQL . ABAP/4 SQL TABLE,SQL DDL(DATA DEFINE LANGUAGE) DML(DATA MULTIPULATION LANGUAGE),DDL , CREATE , DML , SELECT, INSERT . SQL OPEN SQL NATIVE SQL . OPEN SQL SQL , ABAP/4 , OPEN SQL Databases Command BUFFER,. NATIVE SQL SQL , Databases . OPEN SQL SELECT : SELECT [INTO ] [FROM ] [WHERE ] [GROUP BY ] [ORDER BY ] : work area TABLE : SY-SUBRC = 0 0 SY-DBLNT: . : EXIT. . CHECK .,,, .

SELECT .ENDSELECT.. : TABLES MARD. SELECT [DISTINCT] * FROM MARD WHERE MATNR = '3520421700'. . ENDSELECT. ( MARD =3520421700 )

Example: TABLES SPFLI. SELECT SINGLE * FROM SPFLI WHERE PLANT ='CHUNGLI' AND TEL='4526174'. WRITE: / SPFLI-COMPANY,SPFLI-PLANT,SPFLI-TEL. work area , Internal table . : ... INTO ... INTO CORRESPONDING FIELDS OF ... INTO (f1, ..., fn) . ... INTO TABLE ... INTO CORRESPONDING FIELDS OF TABLE ... APPENDING TABLE ... APPENDING CORRESPONDING FIELDS OF TABLE : TABLES MARD. DATA: BEGIN OF ITAB OCCURS 10, MATNR LIKE MARD-MATNR, WERKS LIKE MARD-WERKS, LGORT LIKE MARD-LGORT, LABST LIKE MARD-LABST, END OF ITAB. SELECT MATNR WERKS LGORT LABST INTO CORRESPONDING FIELDS OF ITAB FROM MARD WHERE MATNR = '3520421700'. APPEND ITAB. CLEAR ITAB. ENDSELECT. ( Internal table ITAB ) DATA: BEGIN OF WA, LINE(240), END OF WA. DATA NAME(10). NAME = 'SPFLI'. SELECT * FROM (NAME) INTO WA.

WRITE: / WA-LINE. ENDSELECT. SPFLI NAMESELECT SPFLI WA WA SPFLI . . TABLES MARD. SELECT MATNR MTART MAKTX INTO (t_matnr, t_mtart, maktx) FROM MARD WHERE MATNR = '3520421700'. . ENDSELECT. ( MARD =3520421700 , t_matnr, t_mtart, maktx ) Example: TABLES SPFLI. DATA WA LIKE TABLES. SELECT * FROM SPFLI INTO WA. WRITE: / WA-COMPANY,WA-PLANT. ENDSELECT. WA . Initial Table : SELECT .. INTO TABLE Example: TABLES SPFLI. DATA ITAB LIKE SPFLI OCCURS 10 WITH HEADER LINE. SELECT * FROM SPFLI INTO ITAB. 10 (Initial Table ) ITAB SELECT .. INTO TABLE PACKAGE SIZE Example: TABLES SPFLI. DATA ITAB LIKE SPFLI OCCURS 10 WITH HEADER LINE. SELECT * FROM SPFLI INTO ITAB PACKAGE SIZE 5. 5

exp : TABLES SPFLI. DATA: BEGIN OF WA, NUMBER TYPE I VALUE 1, CITYFROM LIKE SPFLI-CITYFROM, CITYTO LIKE SPFLI-CITYTO, END OF WA. SELECT * FROM SPFLI INTO CORRESPONDING FIELDS OF WA. WRITE: / WA-NUMBER, WA-CITYFROM, WA-CITYTO. ENDSELECT.

SPFLI CITYFROM CITYTO WA WA NUMBER *-------------------------------------------------------------------------------------* TABLES SBOOK. SELECT * FROM SBOOK WHERE CARRID = 'LH' AND CONNID = '0400' AND FLDATE = '19950228' ORDER BY BOOKID ASCENDING. WRITE: / SBOOK-BOOKID, SBOOK-CUSTOMID, SBOOK-CUSTTYPE, SBOOK-SMOKER, SBOOK-LUGGWEIGHT, SBOOK-WUNIT, SBOOK-INVOICE. ENDSELECT. ( ORDER BY ) *-------------------------------------------------------------------------------------*

(1) BETWEEN AND : WHERE YEAR BETWEEN 1995 AND 2000. (2) LIKE : WHERE NAME LIKE 'MIKE%'. ('%')

(3) IN () . : WHERE PLANT IN ('CHUNGLI', 'TAOYUAN','LIUTU'). ( PLANT 'CHUNGLI''TAOYUAN''LIUTU'). (4) ORDER BY (1). ..ORDER BY PRIMARY KEY. PRIMARY KEY (2)ORDER BY [DESCENDING] [DESCENDING] Example: SELECT * FROM IM ORDER BY PART . *-------------------------------------------------------------------------------------* INSERT work area Internal Table : INSERT INTO VALUES : DATA: BEGIN OF WA, CODE(6) TYPE C, NAME(30) TYPE C, END OF WA. DATA: VEN LIKE WA OCCURS 10. WA-CODE = '530120'. WA-NAME = 'XINGDA ELECTRONICS CO.,LTD'. INSERT INTO VEN VALUES WA . work area internal table ,: INSERT : DATA: BEGIN OF WA OCCURS 10, CODE(6) TYPE C, NAME(30) TYPE C, END OF WA. WA-CODE = '530120'. WA-NAME = 'XINGDA ELECTRONICS CO., LTD'. INSERT WA. Internal table INSERT

: INSERT FROM TABLE [ACCEPTING DUPLICATE KEY] NULL ,[ACCEPTING DUPLICATE KEY] PRIMARY KEY .

1. Work Area : INSERT INTO VALUES Example: TABLES SPFLI. DATA WA LIKE SPFLI. WA-NO = '34051920'. WA-COMPANY='DELTA'. INSERT SPFLI VALUES WA. ITAB SPFLI , INSERT SPFLI FROM ITAB. SPFLI-NO='34299876'. SPFLI-COMPANY='HP'. INSERT SPFLI FROM SPFLI. Work Area SPFLI SPFLI Work Area SPFLI SPFLI , INSERT SPFLI. 2. Internal Table : INSERT FROM TABLE [ACCEPTING DUPLICATE KEY] NULL , [ACCEPTING DUPLICATE KEY] primary key, SY-SUBRC 4 Example: TABLES SPFLI. DATA ITAB LIKE SPFLI OCCURS 10 WITH HEADER LINE. ITAB-NO = '34051920'. ITAB-COMPANY = 'DELTA'. APPEND ITAB. . INSERT SPFLI FROM TABLE ITAB

ACCEPTING DUPLICATE KEY. *-------------------------------------------------------------------------------------* UPDATE

1. Primary Key : UPDATE FROM Example: TABLES SPFLI. DATA WA LIKE SPFLI. WA-NO='34051920'. WA-COMPANY='DELTA'. UPDATE SPFLI FROM WA. SPFLI Primary Key NO, NO='34051920' , COMPANY DELTA 2. : UPDATE SET < f1>= WHERE Example: UPDATE SPFLI SET NO='34051920' COMPANY = 'DELTA' WHERE TEL='4526107'. *-------------------------------------------------------------------------------------* 3. MODIFY MODIFY [FROM ]. Primary Key , , : MODIFY FROM Example: WA-NO='34051920'. WA-COMPANY='DELTA'. MODIFY SPFLI FROM WA.

4. DELETE DELETE [FROM ]. : DELETE [WHERE ]

1. Primary Key : DELETE FROM Example: TABLES SPFLI. DATA WA LIKE SPFLI. WA-NO='34051920'. WA-COMPANY='DELTA'. DELETE SPFLI FROM WA. SPFLI Primary Key NO, NO='34051920' ,

2. : DELETE FROM WHERE Example: DELETE FROM SPFLI WHERE AREA = 'AMERICAN'. *-------------------------------------------------------------------------------------* 5. DATABASE CURSOR Database Cursor , SELECT , Work Area , . 1. Database Cursor : OPEN CURSOR FOR SELECT WHERE Example: TABLES SPFLI. DATA: WA LIKE SPFLI, C1 TYPE CURSOR. OPEN CURSOR C1 FOR SELECT * FROM SPFLI WHERE AREA ='TAIWAN'.

2. Database Cursor Work Area : FETCH NEXT CURSOR INTO Example: FETCH NEXT CURSOR C1 INTO WA. Cursor WA, , SY-SUBRC 0. Database Cursor : CLOSE CURSOR Example: CLOSE CURSOR C1. *-------------------------------------------------------------------------------------* COMMIT WORK & ROLLBACK WORK , COMMIT WORK ,: COMMIT WORK. , , ROLLBACK WORK, COMMIT WORK , : ROLLBACK WORK. *-------------------------------------------------------------------------------------* NATIVE SQL : EXEC SQL [PERFORMING ]. ENDEXEC. . EXEC SQL. CREATE TABLE AVERI_CLNT ( CLIENT CHAR(3) NOT NULL, ARG1 ARG2 CHAR(3) NOT NULL, CHAR(3) NOT NULL,

FUNCTION CHAR(10) NOT NULL, PRIMARY KEY (CLIENT, ARG1, ARG2) ) ENDEXEC. . DATA: F1(3), F2(3), F3(3). F3 = ' 1 '

EXEC SQL. SELECT CLIENT, ARG1 INTO :F1, :F2 FROM AVERI_CLNT WHERE ARG2 = :F3 ENDEXEC PERFORMING : NATIVE SQL SELECT ,, PERFORMING , FORM ., EXIT FORM SQL . : DATA: F1(3), F2(3), F3(3). F3 = '010' EXEC SQL PERFORMING WRITE_AVERI_CLNT. SELECT CLIENT, ARG1 INTO :F1, :F2 FROM AVERI_CLNT WHERE ARG2 = :F3 ENDEXEC. FORM WRITE_AVERI_CLNT. WRITE: / F1, F2. ENDFORM. DATA: BEGIN OF WA, NAME(8), AGE TYPE I, END OF WA. DATA F1 TYPE I. FI = 20. EXEC SQL PERFORMING OUTPUT. SELECT NAME,AGE INTO :WA FROM NAME_TABLE WHERE AGE >= :F1. ENDEXEC.. FORM OUTPUT. WRITE: / WA-NAME,WA-AGE. ENDFORM. : a. b. NATIVE SQL TABLE MANDT(client), NATIVE SQL SELECT CHECK ;

Client;

c. d. e. f.

SAP R/3 , Database , NATIVE NATIVE SQL ;,.. TABLE FIELD ,. NATIVE SQL ,".

SQL CONNECT ;

*-------------------------------------------------------------------------------------*

1. IF : IF . ELSEIF . ELSEIF . .. ELSE. ENDIF. (1). . (2). ELSE , ELSE IF Example: IF 3 > 8. WRITE / '3 is less than 8'. ENDIF.

2. CASE : CASE . WHEN . WHEN . .

WHEN OTHERS. ENDCASE. Example: S = 'A'. CASE S. WHEN 'X'. WRITE / 'String is X'. WHEN OTHERS. WRITE / 'String is not X'. ENDCASE. 1. : DO [n TIMES] [VARYING FROM TO . ENDDO. Example: DO 2 TIMES. WRITE / 'X'. ENDDO. : X X DO VARYING I FROM1 TO 10. S = S + I. ENDDO. WRITE: / ,'1+2+3++10=',S : 1+2+3++10=55 2. : WHILE . ENDWHILE Example: I = 1. S=0.

WHILE I