You are on page 1of 55

www.hand-china.

com

SAP
--

20150304
1.0

HAND Enterprise Solutions Company Ltd.


www.hand-china.com

logo

ABAP

SAP

ABAP

Demo

ABAP

ABAP
ABAP/4
1.ABAP/4 TCode:SE38
2. TCode:SE80
Report ABAP/4
Tcode:SE38

Tcode:SE80

ABAP

ABAP

ABAP
/ Used List

F1

ABAP

*
"
PROGRAM SAPMTEST.
* The following line contains a WRITE statement
WRITE 'First Program'.

" Output on List

ABAP

Demo

10

11

Type

Lengt Range
h

C
D
F
I

1
8
8
4

N
P
T
X

1
8
6
1

1-65535Byte
8Byte
8Byte
-2^31

2^31-1
1-65535Byte
1-16Byte
6Byte
1-65535Byte

Initial
Value

Description

Space
00000000
0
0

, Program
, YYYYMMDD

000
0
000000
X00

, HHMMSS
16

12

name, type, length structure ,


DATA ,
DATA: S1 TYPE I value 12,
SUM TYPE I.

CONSTANTS ,
PI 5 3.14159,
CONSTANTS PI TYPE P DECIMALS 5 VALUE 3.14159.

13

,
SPACE

SY-SUBRC , 0
SY-UNAME logon
SY-DATUM
SY-UZEIT
SY-TCODE transaction code
SY-COLNO
SY-LINNO

14


TYPE

TYPES <t> ... [TYPE <type>|LIKE <obj>]


Example:
TYPES: BEGIN OF MYLIST,
NAME(10) TYPE C,
NUMBER1 TYPE I,
NUMBER2 TYPE p DECIMALS 2,
END OF MYLIST.
DATA LIST TYPE MYLIST.

15

LIKE
TYPE ,
DATA TRANSCODE LIKE SY-TCODE.
LIKE , , TYPE

TYPE type
LIKE object,

16


DATA
: DATA <f> [<length>] <type> [<value>] [<decimals>]
<f>: , 30 , + . , : ( )
<length><type>: , LINE(20) TYPE C. MYNAME LIKE SYUNAME.
<value>:
<decimals>:
: DATA: COUNTER TYPE P VALUE 1,
FLAG TYPE C VALUE IS INITIAL,
WEIGHT TYPE P DECIMALS 2 VALUE 1.25.

17


:
DATA: BEGIN OF ADDRESS,
NAME(10) TYPE C ,
NUMBER TYPE P,
END OF ADDRESS.
, ADDRESS-NAME
DATA: wa_struct TYPE struct,
number LIKE wa_struct-number_2,
date
LIKE sy-datum,
time
TYPE t,
text
TYPE string .
DATA: counter TYPE p VALUE 1,
date TYPE d VALUE '19980601',
flag TYPE n VALUE IS INITIAL.

18

CONSTANTS

:
CONSTANTS <c> [<length>] <type> [<value>]
[<decimals>]
: CONSTANTS: CNAME(10) VALUE ,
BIRTH_DAY TYPE D VALUE 19650201.
CONSTANTS: BEGIN OF myaddress,
name(20) TYPE c VALUE 'Fred Flintstone',
number TYPE p VALUE 11,
postcode(5) TYPE n VALUE 98765,
ref_c1
TYPE REF TO C1 VALUE IS INITIAL.
END OF myaddress.

19


TABLES

Table Work Area , ABAP/4 (Dictionary


Object),
SQL
: TABLES <dbtab>
: TABLES: SPFL.
SELECT * FROM SPFL.
WRITE: SPFL-MANDT, SPFL-CARRID,SPFL-CONNECTION.
ENDSELECT.

20


Write
ABAP/4 Write
Write
, :
WRITE This is sample.
WRITE: COMPANY:,STFL-CARRID.
Write AT [/] [<pos>] [(<len>)]
/ : pos : X (len):

21

MOVE <F1> TO <F2>


F1 F2 , F2 = F1
M_NAME = CHER.
Offset
MOVE <F1> [+<O1>] TO <F2> [+<O2>]

DATA: F1(10) TYPE C VALUE ABCDEFGHIJ.


F2(5) TYPE C.
F2 = F1+3(5). 4 5 , F2 = DEFGH

22

CLEAR <f>
,

DATA N TYPE I VALUE 100.


CLEAR N.
N 0
refresh Tables;

23

CONCATENATE <c1> ... <cn> INTO <c> [SEPARATED BY <s>].


DATA: C1(10) VALUE 'Sum', C2(3) VALUE 'mer', C3(5) VALUE 'holi ',
C4(10) VALUE 'day', C5(30), SEP(3) VALUE ' - '.
CONCATENATE C1 C2 C3 C4 INTO C5.
WRITE C5.
Summerholiday
CONCATENATE C1 C2 C3 C4 INTO C5 SEPARATED BY SEP.
WRITE / C5.
Sum - mer - holi - day

24

**

DIV

MOD

25

,
DATA: Mdata TYPE D.
Mdate = SY-DATUM. 19971015
Mdate+6(2) = 01 Mdate 19971001
Mdate = Mdate - 1 Mdate 19970931

hhmmss, 212030 21:20:30

DATA: HOURS TYPE I,


MINUTES TYPE I,
T2 TYPE T VALUE 200000,
T1 TYPE T VALUE 183000.
HOURS = (T2 - T1) / 3600.
MINUTES = (T2 T1) / 60.

26

=
EQ

<>
<
><
NE
LT

<=

>

LE
GT

>=

AND

GE

OR

NOT

27


IF
IF < 1>.
< 1 >
ELSEIF < 2>.
< 2>
ELSEIF < 3>.
< 3>
..
ELSE.
<else >
ENDIF.
.

IF 3 < 8.
WRITE / 3 is less than 8.
ENDIF.

28


CASE
CASE < f>.
WHEN < 1>.
< 1>
WHEN < 2>.
< 2>
.
WHEN OTHERS.
<others >
ENDCASE.

S = A.
CASE S.
WHEN X.
WRITE / String is X.
WHEN OTHERS.
WRITE / String is not X.
ENDCASE.

29

DO [n TIMES] [VARYING <f> FROM <start> TO


<end>].
< >
ENDDO.
1
DO 2 TIMES.
WRITE / X.
ENDDO.
:
X
X
2
DO VARYING I FROM 1 TO 10.
S = S + I.
ENDDO.
WRITE: / ,1+2+3++10=,S
: 1+2+3++10=55
Sy-index

30


WHILE
WHILE < >.
< >
ENDWHILE
: I = 1.
S=0.
WHILE I <= 10.
S = S + I.
I = I + 1.
ENDWHILE.
WRITE: / 1+2+3++10=,S.
: 1+2+3++10=55

31


CONTINUE
CONTINUE

DO 3 TIMES.
IF SY-INDEX = 2.
CONTINUE.
WRITE / SY-INDEX.
ENDDO.
:
1
3

32


CHECK < >
CHECK
DO 5 TIMES.
CHECK SY-INDEX BETWEEN 2 AND 4.
WRITE / SY-INDEX.
ENDDO.
2
3
4

33


EXIT

DO 10 TIMES.
IF SY-INDEX = 4.
EXIT.
ENDIF
WRITE / SY-INDEX.
ENDDO.
:
1
2
3

34

DO .
< >
ENDDO.
EXIT

35

ABAP

Demo

36

DELETE INSERT MODIFY LOOP READ



SY-TABIX

38

DATA
DATA , HEADER LINE, HEADER LINE
,
DATA <f> <type> OCCURS <n> [WITH HEADER LINE]

DATA VECTOR TYPE I OCCURS 10 WITH HEADER LINE.

39

,
DATA: BEGIN OF <f> OCCURS <n>,
<component >
END OF <f>.
DATA: BEGIN OF ITAB OCCURS 10,
COL1 TYPE I,
COL2 TYPE I,
END OF ITAB.

TYPES: BEGIN OF ty_bkpf,


bukrs TYPE bkpf-bukrs,
belnr TYPE bkpf-belnr,
gjahr TYPE bkpf-gjahr,
END OF ty_bkpf.
DATA: it_bkpf TYPE TABLE OF ty_bkpf .
Standard Sorted Hashed Standard
Sorted Index

40


Append
1 APPEND [<wa>] TO <itab>.
<itab> headline
2 APPEND <itab>.
<itab> headline
1 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.
SY-INDEX Counter
LINE-COL2 = SY-INDEX **2.
APPEND LINE INTO ITAB.
ENDDO.
LOOP AT ITAB INTO LINE.
ITAB
WRITE: / LINE-COL1,LINE-COL2.
ENDLOOP.
:
1
1
2
4

41


2 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.
ITAB
WRITE: / ITAB-COL1,ITAB-COL2.
ENDLOOP.
:
1
1
2
4

42

APPEND LINES OF <itab1> [FROM <n1>] [TO <n2>] TO <itab2>


<itab1> <itab2> , <n1> <n2>
APPEND LINES OF ITAB TO JTAB. ITAB JTAB

43

standard key( )
COLLECT [<wa> INTO] <itab>
DATA: BEGIN OF ITAB OCCURS 3,
COL1(3) TYPE C,
COL2 TYPE I,
END OF ITAB.
ITAB-COL1 = ABC. ITAB COL2 = 10.
COLLECT ITAB.
ITAB-COL1 = XYZ. ITAB-COL2 = 20.
COLLECT ITAB.
ITAB-COL1 = ABC. ITAB-COL2 = 30.
COLLECT ITAB. COL2 COL1=ABC
LOOP AT ITAB.
WRITE: / ITAB-COL1,ITAB-COL2.
ENDLOOP.
:
ABC 40
XYZ 20

44

45

1| INSERT [<wa> INTO] [Table] <itab> [INDEX <idx>]


<itab> headline
2| INSERT <itab>
<itab> headline
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
ENDLOOP.
:
1
10
20
2
100 200
3
20
40
4
30
60

LOOP AT <itab> [INTO <wa>] [FROM <n1> TO <n2>] [WHERE <condition>]


<loop expression>
ENDLOOP.
,
1 LOOP AT ITAB INTO LINE WHERE COL1 >100.
WRITE: / SY-TABIX,LINE-COL1.
ENDLOOP.
COL1 > 100

46

READ Table <itab> [INTO <wa>] INDEX <idx>


<idx>
1 READ Table IT_ITAB INTO WA_LINE INDEX 5
IT_ITAB 5 , WA_LINE
IT_ITAB HEADLINE
2

READ Table IT_TC INDEX SY-TABIX. IT_TC HEADLINE


headline HEADLINE

READ Table <itab> INTO WITH key key = value

47

MODIFY <itab> [FROM <wa>] [INDEX <idx>] [TRANSPORTING <f1>


<f2>]
[WHERE < >]
TRANSPORTING <f1> ..<f2> :
1 LINE-COL1 = 4.
LINE-COL2 = 100.
MODIFY ITAB FROM LINE. LINE
2 LINE-COL1 = 10.
MODIFY ITAB FROM LINE INDEX 3 TRANSPORTING COL1.
COL1 10

48

1 DELETE <itab> INDEX <idx>


1 DELETE ITAB INDEX 4.

2
DELETE <itab> [FROM <n1> TO <n2>] [WHERE < >]
2 DELETE ITAB FROM 3 TO 10.
3 10

49

SORT <itab> [ASCENDING |DESCENDING] [BY <f1>] .


DESCENDING ASCENDING <f1>:
1 SORT ITAB DESCENDING BY COL2. ITAB COL2
2 SORT ITAB BY ZXHINMEI WERKS.

50


LOOP
LOOP AT < > [WHERE].

ENDDLOOP.
HEADLINE
LOOP AT IT_TAB.
IT_TAB-COL1 = 2.
MODIFY IT_TAB
ENDLOOP.
HEADLINE
LOOP AT IT_TAB_NOHEADLING INTO WA_TAB.
WA_TAB-COL1 = 2.
MODIFY IT_TAB FROM WA_TAB.
ENDLOOP.

51

1 DESCRIBE <itab> [LINES < lin>] [OCCURS <n>] [KIND <k>].


LINES , <lin>
OCCURS , <n>
KIND , <k> T Standard tables , S
Sorted tables , H Hashed tables
DESCIBE Table F LINES V_LEN.

52

ABAP

Demo

53

DEMO

C:\Users\
mp037.GLOBAL\Desktop\ABAP\ZZ

54

Thank You !

HAND Enterprise Solutions Company Ltd.


www.hand-china.com
55

You might also like