Download presentation
Presentation is loading. Please wait.
Published byHector Clyde McLaughlin Modified over 9 years ago
1
Report Layout Report Heading Report Body Column Heading Report Title
2
Standard Page Heading Execute
3
Report Statement : Standard Heading REPORT [NO STANDARD PAGE HEADING]. REPORT ztest1 NO STANDARD PAGE HEADING.
4
No Standard Page Heading Execute
5
WRITE …Column Number… WRITE: 10 ‘Hello’, 50 ‘World’.
6
Report Statement : Line Size REPORT [LINE-SIZE no. of columns]. REPORT ztest LINE-SIZE 255. sy-linsz
7
Exercise Column : 50Column : 170
8
WRITE Statement * Write data WRITE ‘Hello World’. WRITE: ‘OK’, ‘Test data’. WRITE: /15(10) ‘ABCDEFGHIJKLMNOPQ’. WRITE /20 ‘Test data’.
9
Breaking to a New Line * Write data WRITE: / ‘First Line’, ‘Data 1’, / ‘Second Line’,‘Data 2’, /(20) ‘Third Line’,‘Data 3’, /35 ‘Fourth Line’,‘Data 4’. sy-colno
10
Exercise Column : 50 Line : 1 Column : 170 Line : 2
11
Creating Lists ABAP statement that create list WRITE ULINE SKIP The complete report list will appears automatically at the end of the processing block
12
List Buffer Dialog WP TaskHandler Dynpro Processor ABAP Processor Local Memory Memory Space DB Interface List Buffer WRITE,SKIP,ULINE User Context
13
Inserting Blank Lines(SKIP) *Skip Statement SKIP. WRITE: ‘Hello World’, sy-linno. SKIP. WRITE: ‘Test 1’. SKIP 5. WRITE: ‘Test 2’. SKIP TO LINE 20. WRITE ‘This is line 20’.
14
NEW-LINE NEW-LINE WRITE ‘Hello World’. NEW-LINE. WRITE ‘OK’. WRITE ‘Hello World’. WRITE / ‘OK’. =
15
Exercise Column : 50 Line : 5 Column : 170 Line : 7
16
Inserting Horizontal Lines(ULINE) * Uline WRITE: ‘Hello World’. ULINE /1(20). WRITE: /(20) sy-uline. WRITE: / sy-vline, 20 sy-vline. ULINE /(20). WRITE: / ‘This is an underline’. ULINE.
17
Frame Example
18
Frame ULINE: /1(45). WRITE: /1 sy-vline, 'Column #1', 15 sy-vline, 'Column #2', 30 sy-vline, 'Column #3', 45 sy-vline. ULINE /(45).
19
Exercise I sy-datum sy-uzeit 80 205580
20
FORMAT Statement FORMAT [COLOR ]. [COLOR OFF].
21
FORMAT Statement FORMAT COLOR 1. WRITE: / ‘Hello World’, ‘Test’ COLOR 7. FORMAT COLOR OFF.
22
FORMAT COLOR FORMAT COLOR col_heading. “color 1 FORMAT COLOR col_normal. “color 2 FORMAT COLOR col_total. “color 3 FORMAT COLOR col_key. “color 4 FORMAT COLOR col_positive. “color 5 FORMAT COLOR col_negative. “color 6 FORMAT COLOR col_group. “color 7 FORMAT COLOR col_background. “color 0
23
Color Using Example
24
Exercise I
25
Text Symbol Text Element Text Symbols Text Symbol Text Text 2 Text 1 REPORT ztest. WRITE: text-001, text-002. 001 002
26
Text Symbol WRITE: / text-001.
27
CONSTANTS * Constant variable CONSTANTS ctext TYPE string VALUE ‘Hello World’. WRITE / ctext.
28
Text Symbol : Language Translation
30
Options of the WRITE Statement * Write Syntax WRITE var [NO-ZERO] [NO-SIGN] [NO-GROUPING] [NO-GAP] [DECIMALS no of decimals]
31
Suppressing Zero With Blanks (NO-ZERO) * No Zero DATA: number(10) TYPE N VALUE 23. WRITE: number, number NO-ZERO.
32
Suppressing Number(+ / -) Sign * No Sign DATA: v_integer TYPE i VALUE -1. WRITE: v_integer, v_integer NO-SIGN.
33
NO-GROUPING * No grouping DATA: v_integer TYPE i VALUE 120000. WRITE: v_integer, v_integer NO-GROUPING.
34
NO-GAP * No gap WRITE: ‘Hello’ NO-GAP, ‘World’.
35
DECIMALS * Decimals DATA: v_pack TYPE P DECIMALS 4 VALUE ‘1234.5678’. WRITE: v_pack, v_pack DECIMALS 2.
36
Formatting Options * Format options of WRITE statement * LEFT-JUSTIFIED for Numeric data * RIGHT-JUSTIFIED for Character data * CENTERED DATA tmp1(20) VALUE ‘test’. WRITE: tmp1 CENTERED. test tmp1
37
STRLEN Built-in Function DATA: tmp(20) VALUE ‘Test String’, count TYPE i. count = strlen( tmp ). WRITE count.
38
Include Program You can create a program with program type include program in the program attribute Include program do not have to have an introductory statement During the syntax check and during program generation by the ABAP compiler, the INCLUDE statement is replaced by the source text of the defined include program DATA tmp(10). DATA tmp1 TYPE i. DATA tmp2 TYPE p. DATA tmp3. Include Program : ZINCLUDE1 REPORT ztest1. INCLUDE zinclude1. … REPORT ztest2. INCLUDE zinclude1. …
39
Flow Control in ABAP
40
Branching ==> IF, CASE. Looping ==> DO, WHILE.
41
IF Statement IF. ELSEIF. ELSEIF. ELSE. ENDIF.
42
IF Statement IF sy-mandt = ‘100’. WRITE: / ‘This is Production Client’. ELSEIF sy-mandt = ‘800’ or sy-mandt = ‘805’. WRITE: / ‘This is Training Client’. WRITE / sy-mandt. ELSE. WRITE: / ‘This is Test Client’. ENDIF.
43
CASE Statement CASE. WHEN. WHEN.... WHEN OTHERS. ENDCASE.
44
CASE Statement CASE sy-mandt. WHEN ‘100’. WRITE: / ‘This is Production Client’. WHEN ‘800’ or ‘805’. WRITE: / ‘This is Training Client’. WRITE / sy-mandt. WHEN OTHERS. WRITE: / ‘This is Test Client’. ENDCASE.
45
DO Statement DO. WRITE sy-index. IF sy-index = 3. EXIT. ENDIF. WRITE: sy-index. ENDDO. Loop Counter
46
DO Statement DO 10 TIMES. WRITE / sy-index. ENDDO. Loop Counter
47
WHILE Statement DATA: count TYPE i value 1. WHILE count <> 4. WRITE: sy-index. count = count + 1. ENDWHILE. Loop Counter WHILE sy-index <> 4. WRITE: sy-index. ENDWHILE.
48
Logical Expressions >,GT <,LT >=, =>, GE <=, =<, LE =, EQ <>, ><, NE BETWEEN AND IS INITIAL
49
Arithmetic Operators +, -, *, /, ** DIV MOD Example : 9 / 2 = 4.5 9 DIV 2 = 4.0 9 MOD 2 = 1 2 ** 4 = 16
50
ABAP : Data Retrieval Open SQL (SELECT)
51
SAP System : 3 Tier Client/Server DB Server SAP Application Server SAP GUI Presentation Server SAP GUI
52
SAP SYSTEM (3 Tier Architecture) Presentation Layer (Windows based) Application Layer (Windows Server/UNIX) Database Server Database Layer (Windows Server/UNIX) M SAP Instance Oracle Informix DB2 MS SQL Server MaxDB G Dispatcher Request Queue D D B V S E SAP Buffer (Shared Mem) SAP GUI
53
Database Server Application Server Dispatcher Request Queue DDDB … SAP Buffer Program … User Context Area 1 3 4 6 79 10 11 Report zpsm1. Tables customers. Select single * from customers where id = 1. Write: / customers-name. 5 Execute ABAP stateme nt Check Program in Program Buffer Roll in 8 Load&Generate Program SQL Request Send List Generate Screen(List) Send Request Request List 2 Search for free WP Store request to queue Send request to WP SAP GUI REPOSRC Report zpsm1. Tables customers. Select single * from customers where id = 1. Write: / customers-name. SAP System : Dialog Processing customers
54
TaskHandler DYNPRO Processor ABAP Processor Local Memory Memory Space DB Interface List Buffer Database Server Dialog Work Process User Context Dialog Work Process Architecture Result Set Memory
55
Open SQL SELECT...
56
Data Objects : Tables Structure Memory Space Structure Tables Structure Internal Table Variable Constants
57
DB Interface SAP Application Server Local Memory Dialog WP TaskHandler DB Interface Result Set Database Server ~ 32 KB in length ABAP Processor DYNPRO Memory Space List Buffer
58
Example Tables in DB carridconnidcityfromcitytodistance LH0400LANY100 LH0402BKNY540 SQ0110SQBK250 id namecity 1JohnNew York 2PeterSingapore 3DavidLondon customers spfli
59
Example Tables in DB carridconnidfldateprice LH040020010101150 LH040020010110145 LH040020010228130 SQ01102001022675 sflight
60
SELECT Overview SELECT Which Columns? FROM Which Table? INTO Where to place? WHERE Which Lines?
61
SELECT Statement Select multiple records from database Select single record from database SELECT * FROM customers. … ENDSELECT. SELECT SINGLE * FROM customers WHERE id = 1. …
62
SELECT Multiple Records : SPFLI TABLES spfli. SELECT * FROM spfli. WRITE: / spfli-carrid, spfli-connid, spfli-cityfrom, spfli-cityto. ENDSELECT. spfli-carrid spfli-connid spfli-cityfrom spfli-cityto
63
SELECT Multiple Records : SFLIGHT TABLES sflight. SELECT * FROM sflight. WRITE: / sflight-carrid, sflight-connid, sflight-fldate, sflight-price. ENDSELECT. sflight-carrid sflight-connid sflight-fldate sflight-price
64
Exercise CUSTOMERS-ID CUSTOMERS-NAME CUSTOMERS-CITY
65
SELECT Multiple Records : CUSTOMERS TABLES customers. SELECT * FROM customers. WRITE: / customers-id, customers-name, customers-city. ENDSELECT.
66
Dialog WP TaskHandler DYNPRO Processor ABAP Processor Database Local Memory DB Interface Result Set Memory Space List buffer User Context
67
SELECT Statement Working Steps 1. Transform open SQL to DB SQL and return result set into result set work area SELECT * FROM customers. … ENDSELECT. SELECT * FROM customers; 2. Loop with data in result set and transfer each record to work area in memory space SELECT * FROM customers. … ENDSELECT. Table Structure in Memory Space sy-subrc = 0 ABAP Processor DB Interface
68
Select Multiple Records : SPFLI TABLES spfli. SELECT * FROM spfli. WRITE: / spfli-carrid, spfli-connid, spfli-cityfrom,spfli-cityto. ENDSELECT.
69
SELECT Statement Working Steps 1. Transform open SQL to DB SQL and return result set into result set work area SELECT * FROM spfli. … ENDSELECT. SELECT * FROM spfli; 2. Loop with data in result set and transfer each record to work area in memory space SELECT * FROM spfli. … ENDSELECT. Table Structure in Memory Space sy-subrc = 0 ABAP Processor DB Interface
70
SELECT Multiple Records : CUSTOMERS TABLES customers. SELECT * FROM customers. WRITE: / customers-id, customers-name, customers-city. ENDSELECT.
71
SELECT INTO Table Structure TABLES customers. SELECT * FROM customers INTO customers. WRITE: / customers-id, customers-name, customers-city. ENDSELECT.
72
SELECT … INTO Work Area DATA wa LIKE customers. SELECT * FROM customers INTO wa. WRITE: / wa-id, wa-name, wa-city. ENDSELECT.
73
Table TRBAT
74
SELECT … FROM … TABLES trbat. SELECT * FROM trbat. WRITE: / trbat-function. ENDSELECT.
75
SELECT Statement : No Data Found 1. Transform open SQL to DB SQL and return result set into result set work area (If no data found in DB table) SELECT * FROM trbat. … ENDSELECT. SELECT * FROM trbat; 2. Go to statement after ENDSELECT SELECT * FROM trbat. … ENDSELECT. sy-subrc > 0 ABAP Processor DB Interface
76
SELECT … FROM … TABLES trbat. SELECT * FROM trbat. WRITE: / trbat-function. ENDSELECT. IF sy-subrc <> 0. WRITE: / ‘No data found!!!’. ENDIF.
77
SELECT Multiple Records TABLES customers. SELECT * FROM customers. WRITE: / customers-id, customers-name, customers-city. ENDSELECT. IF sy-subrc <> 0. WRITE: / ‘No Data Found’. ENDIF.
78
Exercise I customers-id customers-name customers-city
79
SELECT with WHERE Clause
80
Loop Processing with Restriction TABLES customers. SELECT * FROM customers WHERE city = ‘Bangkok’. WRITE: / customers-id, customers-name. ENDSELECT. IF sy-subrc <> 0. WRITE / ‘no data’. ENDIF.
81
Loop Processing with Restriction TABLES spfli. SELECT * FROM spfli WHERE cityfrom = ‘FRANKFURT’. WRITE: / spfli-carrid, spfli-cityto. ENDSELECT. IF sy-subrc <> 0. WRITE / ‘no data’. ENDIF.
82
Select With Range TABLESsflight. SELECT * FROM sflight WHERE price BETWEEN 100 AND 1000. WRITE: / sflight-carrid, sflight-connid, sflight-price. ENDSELECT.
83
SELECT … With IN List TABLES sflight. SELECT * FROM sflight WHERE price IN ( 100, 1000 ). WRITE:/ sflight-carrid, sflight-connid, sflight-price. ENDSELECT.
84
SELECT … With Template TABLES customers. SELECT * FROM customers WHERE name LIKE ‘_r%’. WRITE: / customers-id,customers-name. ENDSELECT.
85
Select Single Record
86
TABLES customers. SELECT SINGLE * FROM customers WHERE id = 1. IF sy-subrc = 0. WRITE: / customers-id, customers-name, customers-city, customers-discount. ELSE. WRITE: / ‘Data not found’. ENDIF.
87
Select Column List
88
Select * : Example SELECT * bkpf-belnr bkpf-gjahr
89
Select Column : Using Structure bkpf-belnr bkpf-gjahr
90
SELECT …* FROM … TABLES customers. SELECT * FROM customers. WRITE: / customers-id, customers-name, customers-city. ENDSELECT. IF sy-subrc <> 0. WRITE: / ‘No data found’. ENDIF.
91
Reading Selected Column DATA: BEGIN OF wa, id LIKE customers-id, name LIKE customers-name, city LIKE customers-city, END OF wa. SELECT id name city INTO wa FROM customers. WRITE: / wa-id, wa-name, wa-city. ENDSELECT. IF sy-subrc <> 0. WRITE / ‘No Data found’. ENDIF. customers-id customers-name customers-city 1 2
92
Exercise I customers-id customers-name customers-city ห้ามใช้ SELECT *
93
ABAP : Inner Join
94
Flight Data Model
96
Tables Join Question: Select carrid, connid and cityto from spfli and fldate,price from sflight where carrid = ‘ LH ’ spfli-carrid spfli-connid sflight-fldate spfli-cityto sflight-price เงื่อนไข : ให้แสดงข้อมูลเฉพาะสายการบิน ‘LH’ เท่านั้น
97
Open SQL – Inner Join TABLES: spfli,sflight. SELECT spfli~carrid spfli~connid sflight~fldate spfli~cityto sflight~price INTO (spfli-carrid, spfli-connid, sflight-fldate, spfli-cityto, sflight-price) FROM spfli INNER JOIN sflight ON spfli~carrid = sflight~carrid AND spfli~connid = sflight~connid WHERE spfli~carrid = ‘LH’. WRITE: / spfli-carrid, spfli-connid, sflight-fldate, spfli-cityto, sflight-price. ENDSELECT.
98
Open SQL – Inner Join TABLES: A,B. SELECT A~a B~b B~c INTO (A-a,B-b,B-c) FROM A INNER JOIN B ON A~b = B~b. WRITE: / A-a,B-b,B-c. ENDSELECT. ab a1b1 a2b2 Table : A bc b1c1 b2c2 b3c3 Table : B A-a B-b B-c
99
SELECT INNER JOIN Working Steps 1. Transform open SQL to DB SQL and return result set into result set work area SELECT A~a B~b B~c …. FROM A INNER JOIN B … ENDSELECT. SELECT A.a, B.b, B.c FROM A,B WHERE A.b = B.b; 2. Loop with data in result set and transfer each record to work area in memory space SELECT A~a B~b B~c … ENDSELECT. Tables Structure in Memory Space sy-subrc = 0 ABAP Processor DB Interface
100
Open SQL – Inner Join ab a1b1 a2b2 Table : A bc b1c1 b2c2 b3c3 Table : B A~aB~bB~c a1b1c1 a2b2c2 Single Result Table(Result set) Select … inner join.. Endselect. Database Server Application Server 1 2
101
Open SQL – Alias Table Name TABLES: spfli,sflight. SELECT a~carrid a~connid b~fldate a~cityto b~price INTO (spfli-carrid, spfli-connid, sflight-fldate, spfli-cityto, sflight-price) FROM spfli AS a INNER JOIN sflight AS b ON a~carrid = b~carrid and a~connid = b~connid WHERE a~carrid = ‘LH’. WRITE: / spfli-carrid, spfli-connid, sflight-fldate, spfli-cityto, sflight-price. ENDSELECT.
102
Exercise : Sale Document VBAK-VBELN VBAK-ERDAT VBAK-KUNNR VBAP-MATNR VBAP-NETWR Document Number (VBAK-VBELN) ‘ 0000004970 ’
103
Open SQL – Inner Join > 2 Tables TABLES: A,B,C. SELECT A~a B~c C~y INTO (A-a,B-c,C-y) FROM A INNER JOIN B ON A~b = B~b INNER JOIN C ON C~x = B~c. WRITE: / A-a,B-c,C-y. ENDSELECT. ab …… Table : A bc …... … …… Table : B xy …... Table : C A-a B-c C-y
104
Flight Data Model
105
Open SQL – Inner Join > 2 Tables REPORT ZINNERJOIN02 NO STANDARD PAGE HEADING. TABLES: sflight,sbook,scustom. SELECT a~carrid a~connid a~fldate b~bookid b~customid c~name b~luggweight INTO (sflight-carrid,sflight-connid,sflight-fldate, sbook-bookid,sbook-customid,scustom-name,sbook-luggweight) FROM sflight AS a INNER JOIN sbook AS b ON a~carrid = b~carrid AND a~connid = b~connid AND a~fldate = b~fldate INNER JOIN scustom AS c ON c~id = b~customid. WRITE: / sflight-carrid,sflight-connid,sflight-fldate, sbook-bookid,sbook-customid,scustom-name,sbook-luggweight. ENDSELECT. SFLIGHT-CARRID SFLIGHT-CONNID SFLIGHT-FLDATE SBOOK-BOOKID SBOOK-CUSTOMID SCUSTOM-NAME SBOOK-LUGGWEIGHT
106
Exercise : Sale Document VBAK-VBELN VBAK-ERDAT KNA1-NAME1 VBAP-MATNR VBAP-NETWR Document Number (VBAK-VBELN) = ‘0000004970’
107
Flight Data Model
108
Flight Information : Inner Join SFLIGHT-CARRID SCARR-CARRNAME SFLIGHT-CONNID SFLIGHT-FLDATE SBOOK-BOOKID SBOOK-CUSTOMID SCUSTOM-NAME SBOOK-LUGGWEIGHT
109
Internal Table
110
Data Objects : Internal Table Memory Space Structure Tables Structure Internal Table Variable Constants
111
INTERNAL TABLE wa (Structure) idnamecity Internal Table tab (Internal Table) idnamecity Header Line Table Bodies ‘00000000’ Structure
112
DATA:BEGIN OF wa, id LIKE customers-id, name LIKE customers-name, city LIKE customers-city, END OF wa. wa-id = 1. wa-name = ‘John’. wa-city = ‘Bangkok’. WRITE: / wa-id, wa-name.
113
INTERNAL TABLE DATA:BEGIN OF tab OCCURS 10, id LIKE customers-id, name LIKE customers-name, city LIKE customers-city, END OF tab.
114
INTERNAL TABLE DATA:BEGIN OF tab OCCURS 0, id LIKE customers-id, name LIKE customers-name, city LIKE customers-city, END OF tab.
115
USING ABAP DICTIONARY STRUCTURE DATA:BEGIN OF tab OCCURS 0. INCLUDE STRUCTURE customers. DATAEND OF tab.
116
INTERNAL TABLE USING LIKE DATA tab LIKE customers OCCURS 0 WITH HEADER LINE. idnamecity Header Line Table Bodies 8 KB tab (Internal Table) ‘00000000’
117
Append And Read Data DATA tab LIKE customers OCCURS 0 WITH HEADER LINE. tab-id = 1. tab-name = ‘John’. tab-city = ‘Bangkok’. APPEND tab. tab-id = 2. tab-name = ‘Peter’. tab-city = ‘London’. APPEND tab. LOOP AT tab. WRITE: / tab-id, tab-name, tab-city. ENDLOOP.
118
Reading Data From Internal Table DATA tab LIKE customers OCCURS 0 WITH HEADER LINE. SELECT * FROM customers INTO TABLE tab. IF sy-subrc = 0. LOOP AT tab. WRITE: / tab-id, tab-name,tab-city. ENDLOOP. ELSE. WRITE: / ‘No Data’. ENDIF.
119
Access Database Without Internal Table
120
Access Database Using Internal Table
121
BKPF-BELNR BKPF-GJAHR
122
SELECT … ENDSELECT Dialog WP TaskHandler DYNPRO Processor ABAP Processor Database Local Memory Memory Space DB Interface 00000001 John 00000002 Peter 00000003 David List buffer Result Set 3 | David WA Structure 1 2
123
SELECT …INTO TABLE … Dialog WP TaskHandler DYNPRO Processor ABAP Processor Database Local Memory Memory Space DB Interface List buffer Result Set 1 2 Internal Table
124
Reading Data From Internal Table DATA: BEGIN OF tab OCCURS 0, id LIKE customers-id, name LIKE customers-name, END OF tab. SELECT id name FROM customers INTO TABLE tab. IF sy-subrc = 0. LOOP AT tab. WRITE: / tab-id, tab-name. ENDLOOP. ELSE. WRITE: / ‘No Data’. ENDIF. 1 2 3 customers-id customers-name
125
Exercise I : Change Using Internal Table
126
SORTING INTERNAL TABLE (SORT) DATA tab LIKE customers OCCURS 0 WITH HEADER LINE. … SORT tab BY name. SORT tab BY name ASCENDING city DESCENDING.
127
INTERNAL TABLE PROCESSING... LOOP AT tab. WRITE: / tab-d, tab-name. ENDLOOP. LOOP AT tab WHERE city = ‘Bangkok’. WRITE: / tab-id, tab-name. ENDLOOP. LOOP AT tab FROM 1 TO 10. WRITE: / sy-tabix,tab-id, tab-name. ENDLOOP. Record Pointer
128
Internal Table Template Condition DATA tab LIKE customers OCCURS 0 WITH HEADER LINE.... LOOP AT tab WHERE name CP ‘+r*’....
129
Reading Single Record DATA tab LIKE customers OCCURS 0 WITH HEADER LINE.... SORT tab BY name city. READ TABLE tab WITH KEY name = ‘John’ city = ‘Bangkok’ BINARY SEARCH. IF sy-subrc = 0. WRITE: / tab-id, tab-name, tab-city, tab-telephone. ENDIF.
130
Reading Single Record using Index... READ TABLE tab INDEX 3. IF sy-subrc = 0. WRITE: / tab-id, tab-name. ENDIF.
131
DELETING Data in INTERNAL TABLE CLEAR tab. REFRESH tab. FREE tab. DATA tab LIKE sflight OCCURS 0 WITH HEADER LINE.
132
SELECT … INNER JOIN TABLES: scarr,spfli. SELECT spfli~carrid scarr~carrname spfli~connid INTO (spfli-carrid, scarr-carrname, spfli~connid) FROM spfli INNER JOIN scarr ON spfli~carrid = scarr~carrid. WRITE: / spfli-carrid, scarr-carrname, spfli~connid. ENDSELECT. SPFLI-CARRID SCARR-CARRNAME SPFLI-CONNID
133
Inner Join using Internal Table DATA: BEGIN OF tab OCCURS 0, carrid LIKE spfli-carrid, carrname LIKE scarr-carrname, connid LIKE spfli-connid, END OF tab. SELECT spfli~carrid scarr~carrname spfli~connid INTO TABLE tab FROM spfli INNER JOIN scarr ON spfli~carrid = scarr~carrid. … LOOP AT tab. WRITE: / tab-carrid,tab-carrname,tab-connid. ENDLOOP. SPFLI-CARRID SCARR-CARRNAME SPFLI-CONNID
134
Exercise : Using Internal Table VBAK-VBELN VBAK-ERDAT VBAK-KUNNR VBAP-MATNR VBAP-NETWR Document Number (VBAK-VBELN) = ‘0000004970’
135
Event-driven Programming
136
Application Driven Programming REPORT ztest. DATA: today TYPE D. today = ‘19991231’. today = today + 1. WRITE: / today.
137
Event-Driven Programming DATA tmp TYPE i. AT LINE-SELECTION. WRITE: / ‘This is ’. WRITE: ‘Detail List’. START-OF-SELECTION. WRITE: / ‘This is ’. WRITE: / ‘Basic List’.
138
Events START-OF-SELECTION. AT LINE-SELECTION. INITIALIZATION. AT SELECTION-SCREEN.
139
AT LINE-SELECTION Event (Drill-down Report)
140
Database Server Application Server Dispatcher Request Queue DDDB … SAP Buffer Program … User Context Area 1 3 4 6 7 9 10 11 Report zpsm1. Tables customers. Select single * from customers where id = 1. Write: / customers-name. 5 Execute ABAP statement Check Program in Program Buffer Roll in 8 Load&Generate Program SQL Request Send List Generate Screen(List) Send Request Request List 2 Search for free WP Store request to queue Send request to WP SAP GUI.. D010S Report zpsm1. Tables customers. Select single * from customers where id = 1. Write: / customers-name. SAP System : Dialog Processing customers 12 Roll out
141
TaskHandler DYNPRO Processor ABAP Processor Local Memory Memory Space DB Interface List Buffer Database Server Dialog Work Process User Context Dialog Work Process Architecture Result Set Memory Server
142
Database Server Application Server Dispatcher Request Queue DDDB … SAP Buffer Program … User Context Area 1 3 4 6 7 9 10 11 Report zpsm1. Tables customers. Select single * from customers where id = 1. Write: / customers-name. 5 Execute ABAP statement Check Program in Program Buffer Roll in 8 Load&Generate Program SQL Request Send List Generate Screen(List) Send Request Request List 2 Search for free WP Store request to queue Send request to WP SAP GUI.. D010S Report zpsm1. Tables customers. Select single * from customers where id = 1. Write: / customers-name. Dialog Processing : Roll Out customers 12 Roll out
143
AT LINE-SELECTION START-OF-SELECTION. WRITE: ‘Basic List’. AT LINE-SELECTION. WRITE: ‘Detail List’. (Basic list) Double Click WRITE, ULINE
144
AT LINE-SELECTION 1. Double Click 2. Choose Button 3. Hotspot
145
Navigating Between Lists Basic list Detail list 20 Exit Detail list 1 Detail list 2 ABAP Editor Back Cancel
146
Runtime Error : Detail List > 20
147
Detail List and SY-LSIND START-OF-SELECTION. WRITE: ‘Basic List’. AT LINE-SELECTION. CASE sy-lsind. WHEN 1. WRITE: ‘Detail List :’,sy-lsind. WHEN 2. WRITE: ‘Detail List :’,sy-lsind. ENDCASE. Detail list : 2 SY-LSIND = 2 Detail list : 1 SY-LSIND = 1 Basic list
148
At Line Selection TABLES customers. START-OF-SELECTION. SELECT * FROM customers. WRITE: / customers-name. ENDSELECT. AT LINE-SELECTION. WRITE: ‘You Choose :’, customers-name.
149
At Line Selection(Hide Statement) TABLES customers. START-OF-SELECTION. SELECT * FROM customers. WRITE: / customers-name. HIDE customers-name. ENDSELECT. AT LINE-SELECTION. WRITE: ‘You Choose :’,customers- name. HIDE area of list level 1 line Field name Value 1 customers-name John 2 customers-name Peter 3 customers-name David John Peter David List Buffer
150
Hide Area in List Dialog WP TaskHandler DYNPRO Processor ABAP Processor Database Local Memory Memory Space DB Interface Lis t b uffer Result Set Memory Database Server Application Server 3 | David |.... Customers Structure John Peter David Basic List HIDE area of list level 1 line Field name Value 1 customers-name John 2 customers-name Peter 3 customers-name David
151
At Line Selection(Hide Statement) HIDE area of list level 1 line Field name Value 1 customers-name John 2 customers-name Peter 3 customers-name David JohnPeter David You choose : Peter Basic List Detail List SY-LILLI = 2 3 | Peter |.... Customers Structure 1 2 3 4 At Line-selection 5
152
HIDE area of list level 1 line Field name Value 1 customers-id 00000001 1 customers-name John 2 customers-id 00000002 2 customers-name Peter … At Line Selection(Hide Statement) TABLES customers. START-OF-SELECTION. SELECT * FROM customers. WRITE: / customers-id,customers- name. HIDE: customers-id,customers-name. ENDSELECT. AT LINE-SELECTION. WRITE: ‘You Choose :’, customers-id, customers-name. 00000001 John 00000002 Peter 00000003 David List Buffer
153
At Line Selection(Hide Statement) HIDE area of list level 1 line Field name Value … … … 2 customers-id 00000002 2 customers-name Peter 3 customers-id 00000003 … 00000001 John 00000002 Peter 00000003 David You choose : 00000002 Peter Basic List Detail List SY-LILLI = 2 2 | Peter |.... Customers Structure 1 2 3 4 At Line-selection 5
154
At Line Selection TABLES: spfli,sflight. START-OF-SELECTION. SELECT * FROM spfli. WRITE: / spfli-carrid, spfli- connid, spfli-cityto. HIDE: spfli-carrid, spfli- connid. ENDSELECT. AT LINE-SELECTION. SELECT * FROM sflight WHERE carrid = spfli-carrid AND connid = spfli-connid. WRITE: / spfli-carrid, spfli- connid,sflight-fldate. ENDSELECT. Basic List (SPFLI) Detail List (SFLIGHT) ZATLINE4
155
Exercise : Flight Information Basic List Drill-down Level 1 SCARR SPFLI
156
Good Program DATA: BEGIN OF tab_spfli OCCURS 0, carrid LIKE spfli-carrid, connid LIKE spfli-connid, cityto LIKE spfli-cityto, END OF tab_spfli. DATA: BEGIN OF tab_sflight OCCURS 0, carrid LIKE sflight-carrid, connid LIKE sflight-connid, fldate LIKE sflight-fldate, END OF tab_sflight. START-OF-SELECTION. SELECT carrid connid cityto FROM spfli INTO TABLE tab_spfli. IF sy-subrc = 0. LOOP AT tab_spfli. WRITE: / tab_spfli-carrid,tab_spfli-connid, tab_spfli-cityto. HIDE: tab_spfli-carrid,tab_spfli-connid. ENDLOOP. ELSE. WRITE: / 'No data found'. ENDIF. AT LINE-SELECTION. CASE sy-lsind. WHEN 1. SELECT carrid connid fldate INTO TABLE tab_sflight FROM sflight WHERE carrid = tab_spfli-carrid AND connid = tab_spfli-connid. LOOP AT tab_sflight. WRITE: / tab_sflight-carrid,tab_sflight-connid, tab_sflight-fldate. ENDLOOP. ENDCASE.
157
Exercise : Sale Document Basic List Drill-down Level 1 VBAK VBAP
158
Selection Screen
159
PARAMETERS Statement SELECT-OPTIONS Statement
160
PARAMETERS
161
PARAMETERS: tmp1(10) TYPE c, tmp2(10) TYPE c LOWER CASE, tmp3 LIKE sy-datum DEFAULT sy-datum, tmp4 TYPE d DEFAULT '19991231', tmp5 TYPE i, tmp6 TYPE p DECIMALS 2, tmp7(5) TYPE n, airline1(3), airline2 LIKE spfli-carrid. DATA id LIKE customers-id. START-OF-SELECTION. WRITE: / tmp1,tmp2,tmp3,tmp4,tmp5,tmp6,tmp7,airline1,airline2,id.
162
PARAMETERS Example TABLES customers. PARAMETERS pid LIKE customers-id. START-OF-SELECTION. SELECT SINGLE * FROM customers WHERE id = pid. IF sy-subrc = 0. WRITE: / customers-name. ELSE. WRITE: / ‘No data found’. ENDIF.
163
Selection-Text By default, the System displays the name of the selection as text on the Selection Screen You Should use the Text element/Selection texts function to store a text line for each Selection Criterion.
164
PARAMETERS : Check box PARAMETERS tmp AS CHECKBOX DEFAULT ‘X’.
165
PARAMETERS : Radio Button PARAMETERS: test1 RADIOBUTTON GROUP grp1, test2 RADIOBUTTON GROUP grp1.
166
RADIOBUTTON : SAP ECC 6.0
167
Required Field with PARAMETERS PARAMETERS tmp LIKE sy- datum OBLIGATORY.
168
ABAP Exercise
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.